@charset "UTF-8";
/**
 * Toolkit styles
 */
@import url("https://fonts.googleapis.com/css2?family=Inter:wght@100;300;400;500;700;800&display=swap");
@font-face {
  font-family: "icomoon";
  src: url("../fonts/icomoon/fonts/icomoon.eot?ky3t56");
  src: url("../fonts/icomoon/fonts/icomoon.eot?ky3t56#iefix") format("embedded-opentype"), url("../fonts/icomoon/fonts/icomoon.ttf?ky3t56") format("truetype"), url("../fonts/icomoon/fonts/icomoon.woff?ky3t56") format("woff"), url("../fonts/icomoon/fonts/icomoon.svg?ky3t56#icomoon") format("svg");
  font-weight: normal;
  font-style: normal;
  font-display: block; }

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

.icon-email:before {
  content: ""; }

.icon-minus:before {
  content: ""; }

.icon-plus:before {
  content: ""; }

.icon-twitter:before {
  content: ""; }

.icon-pinterest:before {
  content: ""; }

.icon-facebook:before {
  content: ""; }

.icon-instagram:before {
  content: ""; }

.icon-cart:before {
  content: ""; }

.icon-avatar:before {
  content: ""; }

.icon-chevron-down:before {
  content: ""; }

.icon-zoom:before {
  content: ""; }

.icon-star:before {
  content: ""; }

.icon-arrow_right:before {
  content: ""; }

.icon-phone:before {
  content: ""; }

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

audio,
canvas,
video {
  display: inline-block; }

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

[hidden] {
  display: none; }

/* ==========================================================================
   Base
   ========================================================================== */
/*
 * 1. Sets default font family to sans-serif.
 * 2. Prevents iOS text size adjust after orientation change, without disabling
 *    user zoom.
 */
html {
  font-family: sans-serif;
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%; }

body {
  margin: 0; }

/* ==========================================================================
   Links
   ========================================================================== */
/*
 * Addresses `outline` inconsistency between Chrome and other browsers.
 */
a:focus {
  outline: thin dotted; }

/*
 * Improves readability when focused and also mouse hovered in all browsers.
 */
a:active,
a:hover {
  outline: 0; }

/* ==========================================================================
   Typography
   ========================================================================== */
/*
 * Addresses `h1` font sizes within `section` and `article` in Firefox 4+,
 * Safari 5, and Chrome.
 */
h1 {
  font-size: 2em; }

/*
 * Addresses styling not present in IE 8/9, Safari 5, and Chrome.
 */
abbr[title] {
  border-bottom: 1px dotted; }

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

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

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

/*
 * Corrects font family set oddly in Safari 5 and Chrome.
 */
code,
kbd,
pre,
samp {
  font-family: monospace, serif;
  font-size: 1em; }

/*
 * Improves readability of pre-formatted text in all browsers.
 */
pre {
  white-space: pre;
  white-space: pre-wrap;
  word-wrap: break-word; }

/*
 * Sets consistent quote types.
 */
q {
  quotes: "\201C" "\201D" "\2018" "\2019"; }

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

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

sup {
  top: -0.5em; }

sub {
  bottom: -0.25em; }

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

/*
 * Corrects overflow displayed oddly in IE 9.
 */
svg:not(:root) {
  overflow: hidden; }

/* ==========================================================================
   Figures
   ========================================================================== */
/*
 * Addresses margin not present in IE 8/9 and Safari 5.
 */
figure {
  margin: 0; }

/* ==========================================================================
   Forms
   ========================================================================== */
/*
 * Define consistent border, margin, and padding.
 */
fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em; }

/*
 * 1. Corrects color not being inherited in IE 8/9.
 * 2. Remove padding so people aren't caught out if they zero out fieldsets.
 */
legend {
  border: 0;
  /* 1 */
  padding: 0;
  /* 2 */ }

/*
 * 1. Corrects font family not being inherited in all browsers.
 * 2. Corrects font size not being inherited in all browsers.
 * 3. Addresses margins set differently in Firefox 4+, Safari 5, and Chrome
 */
button,
input,
select,
textarea {
  font-family: inherit;
  font-size: 100%;
  margin: 0; }

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

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

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

/*
 * 1. Addresses box sizing set to `content-box` in IE 8/9.
 * 2. Removes excess padding in IE 8/9.
 */
input[type="checkbox"],
input[type="radio"] {
  box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */ }

/*
 * 1. Addresses `appearance` set to `searchfield` in Safari 5 and Chrome.
 * 2. Addresses `box-sizing` set to `border-box` in Safari 5 and Chrome
 *    (include `-moz` to future-proof).
 */
input[type="search"] {
  -webkit-appearance: textfield;
  box-sizing: content-box; }

/*
 * Removes inner padding and search cancel button in Safari 5 and Chrome
 * on OS X.
 */
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none; }

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

/*
 * 1. Removes default vertical scrollbar in IE 8/9.
 * 2. Improves readability and alignment in all browsers.
 */
textarea {
  overflow: auto;
  /* 1 */
  vertical-align: top;
  /* 2 */ }

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

/*
* Scut, a collection of Sass utilities
* to ease and improve our implementations of common style-code patterns.
* v1.4.0
* Docs at http://davidtheclark.github.io/scut
*/
/**
 * Foundation for Sites by ZURB
 * Version 6.4.1
 * foundation.zurb.com
 * Licensed under MIT Open Source
 */
/*!
Chosen, a Select Box Enhancer for jQuery and Prototype
by Patrick Filler for Harvest, http://getharvest.com

Version 1.8.7
Full source at https://github.com/harvesthq/chosen
Copyright (c) 2011-2018 Harvest http://getharvest.com

MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md
This file is generated by `grunt build`, do not edit it by hand.
*/
/* @group Base */
.chosen-container {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  font-size: 13px;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none; }

.chosen-container * {
  box-sizing: border-box; }

.chosen-container .chosen-drop {
  position: absolute;
  top: 100%;
  z-index: 1010;
  width: 100%;
  border: 1px solid #aaa;
  border-top: 0;
  background: #fff;
  box-shadow: 0 4px 5px rgba(0, 0, 0, 0.15);
  clip: rect(0, 0, 0, 0);
  -webkit-clip-path: inset(100% 100%);
  clip-path: inset(100% 100%); }

.chosen-container.chosen-with-drop .chosen-drop {
  clip: auto;
  -webkit-clip-path: none;
  clip-path: none; }

.chosen-container a {
  cursor: pointer; }

.chosen-container .search-choice .group-name, .chosen-container .chosen-single .group-name {
  margin-right: 4px;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  font-weight: normal;
  color: #999999; }

.chosen-container .search-choice .group-name:after, .chosen-container .chosen-single .group-name:after {
  content: ":";
  padding-left: 2px;
  vertical-align: top; }

/* @end */
/* @group Single Chosen */
.chosen-container-single .chosen-single {
  position: relative;
  display: block;
  overflow: hidden;
  padding: 0 0 0 8px;
  height: 25px;
  border: 1px solid #aaa;
  border-radius: 5px;
  background-color: #fff;
  background: linear-gradient(#fff 20%, #f6f6f6 50%, #eee 52%, #f4f4f4 100%);
  background-clip: padding-box;
  box-shadow: 0 0 3px #fff inset, 0 1px 1px rgba(0, 0, 0, 0.1);
  color: #444;
  text-decoration: none;
  white-space: nowrap;
  line-height: 24px; }

.chosen-container-single .chosen-default {
  color: #999; }

.chosen-container-single .chosen-single span {
  display: block;
  overflow: hidden;
  margin-right: 26px;
  text-overflow: ellipsis;
  white-space: nowrap; }

.chosen-container-single .chosen-single-with-deselect span {
  margin-right: 38px; }

.chosen-container-single .chosen-single abbr {
  position: absolute;
  top: 6px;
  right: 26px;
  display: block;
  width: 12px;
  height: 12px;
  background: url("chosen-sprite.png") -42px 1px no-repeat;
  font-size: 1px; }

.chosen-container-single .chosen-single abbr:hover {
  background-position: -42px -10px; }

.chosen-container-single.chosen-disabled .chosen-single abbr:hover {
  background-position: -42px -10px; }

.chosen-container-single .chosen-single div {
  position: absolute;
  top: 0;
  right: 0;
  display: block;
  width: 18px;
  height: 100%; }

.chosen-container-single .chosen-single div b {
  display: block;
  width: 100%;
  height: 100%;
  background: url("chosen-sprite.png") no-repeat 0px 2px; }

.chosen-container-single .chosen-search {
  position: relative;
  z-index: 1010;
  margin: 0;
  padding: 3px 4px;
  white-space: nowrap; }

.chosen-container-single .chosen-search input[type="text"] {
  margin: 1px 0;
  padding: 4px 20px 4px 5px;
  width: 100%;
  height: auto;
  outline: 0;
  border: 1px solid #aaa;
  background: url("chosen-sprite.png") no-repeat 100% -20px;
  font-size: 1em;
  font-family: sans-serif;
  line-height: normal;
  border-radius: 0; }

.chosen-container-single .chosen-drop {
  margin-top: -1px;
  border-radius: 0 0 4px 4px;
  background-clip: padding-box; }

.chosen-container-single.chosen-container-single-nosearch .chosen-search {
  position: absolute;
  clip: rect(0, 0, 0, 0);
  -webkit-clip-path: inset(100% 100%);
  clip-path: inset(100% 100%); }

/* @end */
/* @group Results */
.chosen-container .chosen-results {
  color: #444;
  position: relative;
  overflow-x: hidden;
  overflow-y: auto;
  margin: 0 4px 4px 0;
  padding: 0 0 0 4px;
  max-height: 240px;
  -webkit-overflow-scrolling: touch; }

.chosen-container .chosen-results li {
  display: none;
  margin: 0;
  padding: 5px 6px;
  list-style: none;
  line-height: 15px;
  word-wrap: break-word;
  -webkit-touch-callout: none; }

.chosen-container .chosen-results li.active-result {
  display: list-item;
  cursor: pointer; }

.chosen-container .chosen-results li.disabled-result {
  display: list-item;
  color: #ccc;
  cursor: default; }

.chosen-container .chosen-results li.highlighted {
  background-color: #3875d7;
  background-image: linear-gradient(#3875d7 20%, #2a62bc 90%);
  color: #fff; }

.chosen-container .chosen-results li.no-results {
  color: #777;
  display: list-item;
  background: #f4f4f4; }

.chosen-container .chosen-results li.group-result {
  display: list-item;
  font-weight: bold;
  cursor: default; }

.chosen-container .chosen-results li.group-option {
  padding-left: 15px; }

.chosen-container .chosen-results li em {
  font-style: normal;
  text-decoration: underline; }

/* @end */
/* @group Multi Chosen */
.chosen-container-multi .chosen-choices {
  position: relative;
  overflow: hidden;
  margin: 0;
  padding: 0 5px;
  width: 100%;
  height: auto;
  border: 1px solid #aaa;
  background-color: #fff;
  background-image: linear-gradient(#eee 1%, #fff 15%);
  cursor: text; }

.chosen-container-multi .chosen-choices li {
  float: left;
  list-style: none; }

.chosen-container-multi .chosen-choices li.search-field {
  margin: 0;
  padding: 0;
  white-space: nowrap; }

.chosen-container-multi .chosen-choices li.search-field input[type="text"] {
  margin: 1px 0;
  padding: 0;
  height: 25px;
  outline: 0;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none;
  color: #999;
  font-size: 100%;
  font-family: sans-serif;
  line-height: normal;
  border-radius: 0;
  width: 25px; }

.chosen-container-multi .chosen-choices li.search-choice {
  position: relative;
  margin: 3px 5px 3px 0;
  padding: 3px 20px 3px 5px;
  border: 1px solid #aaa;
  max-width: 100%;
  border-radius: 3px;
  background-color: #eeeeee;
  background-image: linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%);
  background-size: 100% 19px;
  background-repeat: repeat-x;
  background-clip: padding-box;
  box-shadow: 0 0 2px #fff inset, 0 1px 0 rgba(0, 0, 0, 0.05);
  color: #333;
  line-height: 13px;
  cursor: default; }

.chosen-container-multi .chosen-choices li.search-choice span {
  word-wrap: break-word; }

.chosen-container-multi .chosen-choices li.search-choice .search-choice-close {
  position: absolute;
  top: 4px;
  right: 3px;
  display: block;
  width: 12px;
  height: 12px;
  background: url("chosen-sprite.png") -42px 1px no-repeat;
  font-size: 1px; }

.chosen-container-multi .chosen-choices li.search-choice .search-choice-close:hover {
  background-position: -42px -10px; }

.chosen-container-multi .chosen-choices li.search-choice-disabled {
  padding-right: 5px;
  border: 1px solid #ccc;
  background-color: #e4e4e4;
  background-image: linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%);
  color: #666; }

.chosen-container-multi .chosen-choices li.search-choice-focus {
  background: #d4d4d4; }

.chosen-container-multi .chosen-choices li.search-choice-focus .search-choice-close {
  background-position: -42px -10px; }

.chosen-container-multi .chosen-results {
  margin: 0;
  padding: 0; }

.chosen-container-multi .chosen-drop .result-selected {
  display: list-item;
  color: #ccc;
  cursor: default; }

/* @end */
/* @group Active  */
.chosen-container-active .chosen-single {
  border: 1px solid #5897fb;
  box-shadow: 0 0 5px rgba(0, 0, 0, 0.3); }

.chosen-container-active.chosen-with-drop .chosen-single {
  border: 1px solid #aaa;
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
  background-image: linear-gradient(#eee 20%, #fff 80%);
  box-shadow: 0 1px 0 #fff inset; }

.chosen-container-active.chosen-with-drop .chosen-single div {
  border-left: none;
  background: transparent; }

.chosen-container-active.chosen-with-drop .chosen-single div b {
  background-position: -18px 2px; }

.chosen-container-active .chosen-choices {
  border: 1px solid #5897fb;
  box-shadow: 0 0 5px rgba(0, 0, 0, 0.3); }

.chosen-container-active .chosen-choices li.search-field input[type="text"] {
  color: #222 !important; }

/* @end */
/* @group Disabled Support */
.chosen-disabled {
  opacity: 0.5 !important;
  cursor: default; }

.chosen-disabled .chosen-single {
  cursor: default; }

.chosen-disabled .chosen-choices .search-choice .search-choice-close {
  cursor: default; }

/* @end */
/* @group Right to Left */
.chosen-rtl {
  text-align: right; }

.chosen-rtl .chosen-single {
  overflow: visible;
  padding: 0 8px 0 0; }

.chosen-rtl .chosen-single span {
  margin-right: 0;
  margin-left: 26px;
  direction: rtl; }

.chosen-rtl .chosen-single-with-deselect span {
  margin-left: 38px; }

.chosen-rtl .chosen-single div {
  right: auto;
  left: 3px; }

.chosen-rtl .chosen-single abbr {
  right: auto;
  left: 26px; }

.chosen-rtl .chosen-choices li {
  float: right; }

.chosen-rtl .chosen-choices li.search-field input[type="text"] {
  direction: rtl; }

.chosen-rtl .chosen-choices li.search-choice {
  margin: 3px 5px 3px 0;
  padding: 3px 5px 3px 19px; }

.chosen-rtl .chosen-choices li.search-choice .search-choice-close {
  right: auto;
  left: 4px; }

.chosen-rtl.chosen-container-single .chosen-results {
  margin: 0 0 4px 4px;
  padding: 0 4px 0 0; }

.chosen-rtl .chosen-results li.group-option {
  padding-right: 15px;
  padding-left: 0; }

.chosen-rtl.chosen-container-active.chosen-with-drop .chosen-single div {
  border-right: none; }

.chosen-rtl .chosen-search input[type="text"] {
  padding: 4px 5px 4px 20px;
  background: url("chosen-sprite.png") no-repeat -30px -20px;
  direction: rtl; }

.chosen-rtl.chosen-container-single .chosen-single div b {
  background-position: 6px 2px; }

.chosen-rtl.chosen-container-single.chosen-with-drop .chosen-single div b {
  background-position: -12px 2px; }

/* @end */
/* @group Retina compatibility */
@media only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (min-resolution: 144dpi), only screen and (min-resolution: 1.5dppx) {
  .chosen-rtl .chosen-search input[type="text"],
  .chosen-container-single .chosen-single abbr,
  .chosen-container-single .chosen-single div b,
  .chosen-container-single .chosen-search input[type="text"],
  .chosen-container-multi .chosen-choices .search-choice .search-choice-close,
  .chosen-container .chosen-results-scroll-down span,
  .chosen-container .chosen-results-scroll-up span {
    background-image: url("chosen-sprite@2x.png") !important;
    background-size: 52px 37px !important;
    background-repeat: no-repeat !important; } }

/* @end */
/*
 *  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;
    touch-action: manipulation;
    -moz-backface-visibility: hidden;
    /* fix firefox animation glitch */ }
  .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-wrapper,
  .owl-carousel .owl-item {
    -webkit-backface-visibility: hidden;
    -moz-backface-visibility: hidden;
    -ms-backface-visibility: hidden;
    -webkit-transform: translate3d(0, 0, 0);
    -moz-transform: translate3d(0, 0, 0);
    -ms-transform: translate3d(0, 0, 0); }
  .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%; }
  .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;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none; }
  .owl-carousel .owl-nav button.owl-prev,
  .owl-carousel .owl-nav button.owl-next,
  .owl-carousel button.owl-dot {
    background: none;
    color: inherit;
    border: none;
    padding: 0 !important;
    font: inherit; }
  .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 {
    -ms-touch-action: pan-y;
        touch-action: pan-y;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none; }
  .owl-carousel.owl-grab {
    cursor: move;
    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 {
  transition: height 500ms ease-in-out; }

/*
 * 	Owl Carousel - Lazy Load Plugin
 */
.owl-carousel .owl-item {
  /**
			This is introduced due to a bug in IE11 where lazy loading combined with autoheight plugin causes a wrong
			calculation of the height of the owl-item that breaks page layouts
		 */ }
  .owl-carousel .owl-item .owl-lazy {
    opacity: 0;
    transition: opacity 400ms ease; }
  .owl-carousel .owl-item .owl-lazy[src^=""], .owl-carousel .owl-item .owl-lazy:not([src]) {
    max-height: 0; }
  .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;
  transition: -webkit-transform 100ms ease;
  transition: 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;
  transition: opacity 400ms ease; }

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

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

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

/**
     * Remove the outline on focused links when they are also active or hovered
     * in all browsers (opinionated).
     */
a:active,
a:hover {
  outline-width: 0; }

/* Text-level semantics
       ========================================================================== */
/**
     * 1. Remove the bottom border in 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 */
  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"] {
  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 */ }

/**
     * Change the border, margin, and padding in all browsers (opinionated).
     */
fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em; }

/**
     * 1. Correct the text wrapping in Edge and IE.
     * 2. Correct the color inheritance from `fieldset` elements in IE.
     * 3. Remove the padding so developers are not caught out when they zero out
     *    `fieldset` elements in all browsers.
     */
legend {
  box-sizing: border-box;
  /* 1 */
  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; }

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

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

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

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

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

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

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

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

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

pre {
  overflow: auto; }

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

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

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

.row {
  max-width: 90rem;
  margin-right: auto;
  margin-left: auto; }
  .row::before, .row::after {
    display: table;
    content: ' ';
    -ms-flex-preferred-size: 0;
        flex-basis: 0;
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1; }
  .row::after {
    clear: both; }
  .row.collapse > .column, .row.collapse > .columns {
    padding-right: 0;
    padding-left: 0; }
  .row .row {
    margin-right: -0.625rem;
    margin-left: -0.625rem; }
    @media print, screen and (min-width: 40em) {
      .row .row {
        margin-right: -0.9375rem;
        margin-left: -0.9375rem; } }
    @media print, screen and (min-width: 64em) {
      .row .row {
        margin-right: -0.9375rem;
        margin-left: -0.9375rem; } }
    .row .row.collapse {
      margin-right: 0;
      margin-left: 0; }
  .row.expanded {
    max-width: none; }
    .row.expanded .row {
      margin-right: auto;
      margin-left: auto; }
  .row:not(.expanded) .row {
    max-width: none; }
  .row.gutter-small > .column, .row.gutter-small > .columns {
    padding-right: 0.625rem;
    padding-left: 0.625rem; }
  .row.gutter-medium > .column, .row.gutter-medium > .columns {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem; }

.column, .columns {
  width: 100%;
  float: left;
  padding-right: 0.625rem;
  padding-left: 0.625rem; }
  @media print, screen and (min-width: 40em) {
    .column, .columns {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }
  .column:last-child:not(:first-child), .columns:last-child:not(:first-child) {
    float: right; }
  .column.end:last-child:last-child, .end.columns:last-child:last-child {
    float: left; }

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

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

.small-1 {
  width: 8.33333%; }

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

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

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

.small-2 {
  width: 16.66667%; }

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

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

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

.small-3 {
  width: 25%; }

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

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

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

.small-4 {
  width: 33.33333%; }

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

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

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

.small-5 {
  width: 41.66667%; }

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

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

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

.small-6 {
  width: 50%; }

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

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

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

.small-7 {
  width: 58.33333%; }

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

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

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

.small-8 {
  width: 66.66667%; }

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

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

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

.small-9 {
  width: 75%; }

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

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

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

.small-10 {
  width: 83.33333%; }

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

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

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

.small-11 {
  width: 91.66667%; }

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

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

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

.small-12 {
  width: 100%; }

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

.small-up-1 > .column, .small-up-1 > .columns {
  float: left;
  width: 100%; }
  .small-up-1 > .column:nth-of-type(1n), .small-up-1 > .columns:nth-of-type(1n) {
    clear: none; }
  .small-up-1 > .column:nth-of-type(1n+1), .small-up-1 > .columns:nth-of-type(1n+1) {
    clear: both; }
  .small-up-1 > .column:last-child, .small-up-1 > .columns:last-child {
    float: left; }

.small-up-2 > .column, .small-up-2 > .columns {
  float: left;
  width: 50%; }
  .small-up-2 > .column:nth-of-type(1n), .small-up-2 > .columns:nth-of-type(1n) {
    clear: none; }
  .small-up-2 > .column:nth-of-type(2n+1), .small-up-2 > .columns:nth-of-type(2n+1) {
    clear: both; }
  .small-up-2 > .column:last-child, .small-up-2 > .columns:last-child {
    float: left; }

.small-up-3 > .column, .small-up-3 > .columns {
  float: left;
  width: 33.33333%; }
  .small-up-3 > .column:nth-of-type(1n), .small-up-3 > .columns:nth-of-type(1n) {
    clear: none; }
  .small-up-3 > .column:nth-of-type(3n+1), .small-up-3 > .columns:nth-of-type(3n+1) {
    clear: both; }
  .small-up-3 > .column:last-child, .small-up-3 > .columns:last-child {
    float: left; }

.small-up-4 > .column, .small-up-4 > .columns {
  float: left;
  width: 25%; }
  .small-up-4 > .column:nth-of-type(1n), .small-up-4 > .columns:nth-of-type(1n) {
    clear: none; }
  .small-up-4 > .column:nth-of-type(4n+1), .small-up-4 > .columns:nth-of-type(4n+1) {
    clear: both; }
  .small-up-4 > .column:last-child, .small-up-4 > .columns:last-child {
    float: left; }

.small-up-5 > .column, .small-up-5 > .columns {
  float: left;
  width: 20%; }
  .small-up-5 > .column:nth-of-type(1n), .small-up-5 > .columns:nth-of-type(1n) {
    clear: none; }
  .small-up-5 > .column:nth-of-type(5n+1), .small-up-5 > .columns:nth-of-type(5n+1) {
    clear: both; }
  .small-up-5 > .column:last-child, .small-up-5 > .columns:last-child {
    float: left; }

.small-up-6 > .column, .small-up-6 > .columns {
  float: left;
  width: 16.66667%; }
  .small-up-6 > .column:nth-of-type(1n), .small-up-6 > .columns:nth-of-type(1n) {
    clear: none; }
  .small-up-6 > .column:nth-of-type(6n+1), .small-up-6 > .columns:nth-of-type(6n+1) {
    clear: both; }
  .small-up-6 > .column:last-child, .small-up-6 > .columns:last-child {
    float: left; }

.small-up-7 > .column, .small-up-7 > .columns {
  float: left;
  width: 14.28571%; }
  .small-up-7 > .column:nth-of-type(1n), .small-up-7 > .columns:nth-of-type(1n) {
    clear: none; }
  .small-up-7 > .column:nth-of-type(7n+1), .small-up-7 > .columns:nth-of-type(7n+1) {
    clear: both; }
  .small-up-7 > .column:last-child, .small-up-7 > .columns:last-child {
    float: left; }

.small-up-8 > .column, .small-up-8 > .columns {
  float: left;
  width: 12.5%; }
  .small-up-8 > .column:nth-of-type(1n), .small-up-8 > .columns:nth-of-type(1n) {
    clear: none; }
  .small-up-8 > .column:nth-of-type(8n+1), .small-up-8 > .columns:nth-of-type(8n+1) {
    clear: both; }
  .small-up-8 > .column:last-child, .small-up-8 > .columns:last-child {
    float: left; }

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

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

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

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

.small-centered {
  margin-right: auto;
  margin-left: auto; }
  .small-centered, .small-centered:last-child:not(:first-child) {
    float: none;
    clear: both; }

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

@media print, screen and (min-width: 40em) {
  .medium-1 {
    width: 8.33333%; }
  .medium-push-1 {
    position: relative;
    left: 8.33333%; }
  .medium-pull-1 {
    position: relative;
    left: -8.33333%; }
  .medium-offset-0 {
    margin-left: 0%; }
  .medium-2 {
    width: 16.66667%; }
  .medium-push-2 {
    position: relative;
    left: 16.66667%; }
  .medium-pull-2 {
    position: relative;
    left: -16.66667%; }
  .medium-offset-1 {
    margin-left: 8.33333%; }
  .medium-3 {
    width: 25%; }
  .medium-push-3 {
    position: relative;
    left: 25%; }
  .medium-pull-3 {
    position: relative;
    left: -25%; }
  .medium-offset-2 {
    margin-left: 16.66667%; }
  .medium-4 {
    width: 33.33333%; }
  .medium-push-4 {
    position: relative;
    left: 33.33333%; }
  .medium-pull-4 {
    position: relative;
    left: -33.33333%; }
  .medium-offset-3 {
    margin-left: 25%; }
  .medium-5 {
    width: 41.66667%; }
  .medium-push-5 {
    position: relative;
    left: 41.66667%; }
  .medium-pull-5 {
    position: relative;
    left: -41.66667%; }
  .medium-offset-4 {
    margin-left: 33.33333%; }
  .medium-6 {
    width: 50%; }
  .medium-push-6 {
    position: relative;
    left: 50%; }
  .medium-pull-6 {
    position: relative;
    left: -50%; }
  .medium-offset-5 {
    margin-left: 41.66667%; }
  .medium-7 {
    width: 58.33333%; }
  .medium-push-7 {
    position: relative;
    left: 58.33333%; }
  .medium-pull-7 {
    position: relative;
    left: -58.33333%; }
  .medium-offset-6 {
    margin-left: 50%; }
  .medium-8 {
    width: 66.66667%; }
  .medium-push-8 {
    position: relative;
    left: 66.66667%; }
  .medium-pull-8 {
    position: relative;
    left: -66.66667%; }
  .medium-offset-7 {
    margin-left: 58.33333%; }
  .medium-9 {
    width: 75%; }
  .medium-push-9 {
    position: relative;
    left: 75%; }
  .medium-pull-9 {
    position: relative;
    left: -75%; }
  .medium-offset-8 {
    margin-left: 66.66667%; }
  .medium-10 {
    width: 83.33333%; }
  .medium-push-10 {
    position: relative;
    left: 83.33333%; }
  .medium-pull-10 {
    position: relative;
    left: -83.33333%; }
  .medium-offset-9 {
    margin-left: 75%; }
  .medium-11 {
    width: 91.66667%; }
  .medium-push-11 {
    position: relative;
    left: 91.66667%; }
  .medium-pull-11 {
    position: relative;
    left: -91.66667%; }
  .medium-offset-10 {
    margin-left: 83.33333%; }
  .medium-12 {
    width: 100%; }
  .medium-offset-11 {
    margin-left: 91.66667%; }
  .medium-up-1 > .column, .medium-up-1 > .columns {
    float: left;
    width: 100%; }
    .medium-up-1 > .column:nth-of-type(1n), .medium-up-1 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-1 > .column:nth-of-type(1n+1), .medium-up-1 > .columns:nth-of-type(1n+1) {
      clear: both; }
    .medium-up-1 > .column:last-child, .medium-up-1 > .columns:last-child {
      float: left; }
  .medium-up-2 > .column, .medium-up-2 > .columns {
    float: left;
    width: 50%; }
    .medium-up-2 > .column:nth-of-type(1n), .medium-up-2 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-2 > .column:nth-of-type(2n+1), .medium-up-2 > .columns:nth-of-type(2n+1) {
      clear: both; }
    .medium-up-2 > .column:last-child, .medium-up-2 > .columns:last-child {
      float: left; }
  .medium-up-3 > .column, .medium-up-3 > .columns {
    float: left;
    width: 33.33333%; }
    .medium-up-3 > .column:nth-of-type(1n), .medium-up-3 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-3 > .column:nth-of-type(3n+1), .medium-up-3 > .columns:nth-of-type(3n+1) {
      clear: both; }
    .medium-up-3 > .column:last-child, .medium-up-3 > .columns:last-child {
      float: left; }
  .medium-up-4 > .column, .medium-up-4 > .columns {
    float: left;
    width: 25%; }
    .medium-up-4 > .column:nth-of-type(1n), .medium-up-4 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-4 > .column:nth-of-type(4n+1), .medium-up-4 > .columns:nth-of-type(4n+1) {
      clear: both; }
    .medium-up-4 > .column:last-child, .medium-up-4 > .columns:last-child {
      float: left; }
  .medium-up-5 > .column, .medium-up-5 > .columns {
    float: left;
    width: 20%; }
    .medium-up-5 > .column:nth-of-type(1n), .medium-up-5 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-5 > .column:nth-of-type(5n+1), .medium-up-5 > .columns:nth-of-type(5n+1) {
      clear: both; }
    .medium-up-5 > .column:last-child, .medium-up-5 > .columns:last-child {
      float: left; }
  .medium-up-6 > .column, .medium-up-6 > .columns {
    float: left;
    width: 16.66667%; }
    .medium-up-6 > .column:nth-of-type(1n), .medium-up-6 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-6 > .column:nth-of-type(6n+1), .medium-up-6 > .columns:nth-of-type(6n+1) {
      clear: both; }
    .medium-up-6 > .column:last-child, .medium-up-6 > .columns:last-child {
      float: left; }
  .medium-up-7 > .column, .medium-up-7 > .columns {
    float: left;
    width: 14.28571%; }
    .medium-up-7 > .column:nth-of-type(1n), .medium-up-7 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-7 > .column:nth-of-type(7n+1), .medium-up-7 > .columns:nth-of-type(7n+1) {
      clear: both; }
    .medium-up-7 > .column:last-child, .medium-up-7 > .columns:last-child {
      float: left; }
  .medium-up-8 > .column, .medium-up-8 > .columns {
    float: left;
    width: 12.5%; }
    .medium-up-8 > .column:nth-of-type(1n), .medium-up-8 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-8 > .column:nth-of-type(8n+1), .medium-up-8 > .columns:nth-of-type(8n+1) {
      clear: both; }
    .medium-up-8 > .column:last-child, .medium-up-8 > .columns:last-child {
      float: left; }
  .medium-collapse > .column, .medium-collapse > .columns {
    padding-right: 0;
    padding-left: 0; }
  .medium-collapse .row {
    margin-right: 0;
    margin-left: 0; }
  .expanded.row .medium-collapse.row {
    margin-right: 0;
    margin-left: 0; }
  .medium-uncollapse > .column, .medium-uncollapse > .columns {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem; }
  .medium-centered {
    margin-right: auto;
    margin-left: auto; }
    .medium-centered, .medium-centered:last-child:not(:first-child) {
      float: none;
      clear: both; }
  .medium-uncentered,
  .medium-push-0,
  .medium-pull-0 {
    position: static;
    float: left;
    margin-right: 0;
    margin-left: 0; } }

@media print, screen and (min-width: 64em) {
  .large-1 {
    width: 8.33333%; }
  .large-push-1 {
    position: relative;
    left: 8.33333%; }
  .large-pull-1 {
    position: relative;
    left: -8.33333%; }
  .large-offset-0 {
    margin-left: 0%; }
  .large-2 {
    width: 16.66667%; }
  .large-push-2 {
    position: relative;
    left: 16.66667%; }
  .large-pull-2 {
    position: relative;
    left: -16.66667%; }
  .large-offset-1 {
    margin-left: 8.33333%; }
  .large-3 {
    width: 25%; }
  .large-push-3 {
    position: relative;
    left: 25%; }
  .large-pull-3 {
    position: relative;
    left: -25%; }
  .large-offset-2 {
    margin-left: 16.66667%; }
  .large-4 {
    width: 33.33333%; }
  .large-push-4 {
    position: relative;
    left: 33.33333%; }
  .large-pull-4 {
    position: relative;
    left: -33.33333%; }
  .large-offset-3 {
    margin-left: 25%; }
  .large-5 {
    width: 41.66667%; }
  .large-push-5 {
    position: relative;
    left: 41.66667%; }
  .large-pull-5 {
    position: relative;
    left: -41.66667%; }
  .large-offset-4 {
    margin-left: 33.33333%; }
  .large-6 {
    width: 50%; }
  .large-push-6 {
    position: relative;
    left: 50%; }
  .large-pull-6 {
    position: relative;
    left: -50%; }
  .large-offset-5 {
    margin-left: 41.66667%; }
  .large-7 {
    width: 58.33333%; }
  .large-push-7 {
    position: relative;
    left: 58.33333%; }
  .large-pull-7 {
    position: relative;
    left: -58.33333%; }
  .large-offset-6 {
    margin-left: 50%; }
  .large-8 {
    width: 66.66667%; }
  .large-push-8 {
    position: relative;
    left: 66.66667%; }
  .large-pull-8 {
    position: relative;
    left: -66.66667%; }
  .large-offset-7 {
    margin-left: 58.33333%; }
  .large-9 {
    width: 75%; }
  .large-push-9 {
    position: relative;
    left: 75%; }
  .large-pull-9 {
    position: relative;
    left: -75%; }
  .large-offset-8 {
    margin-left: 66.66667%; }
  .large-10 {
    width: 83.33333%; }
  .large-push-10 {
    position: relative;
    left: 83.33333%; }
  .large-pull-10 {
    position: relative;
    left: -83.33333%; }
  .large-offset-9 {
    margin-left: 75%; }
  .large-11 {
    width: 91.66667%; }
  .large-push-11 {
    position: relative;
    left: 91.66667%; }
  .large-pull-11 {
    position: relative;
    left: -91.66667%; }
  .large-offset-10 {
    margin-left: 83.33333%; }
  .large-12 {
    width: 100%; }
  .large-offset-11 {
    margin-left: 91.66667%; }
  .large-up-1 > .column, .large-up-1 > .columns {
    float: left;
    width: 100%; }
    .large-up-1 > .column:nth-of-type(1n), .large-up-1 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-1 > .column:nth-of-type(1n+1), .large-up-1 > .columns:nth-of-type(1n+1) {
      clear: both; }
    .large-up-1 > .column:last-child, .large-up-1 > .columns:last-child {
      float: left; }
  .large-up-2 > .column, .large-up-2 > .columns {
    float: left;
    width: 50%; }
    .large-up-2 > .column:nth-of-type(1n), .large-up-2 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-2 > .column:nth-of-type(2n+1), .large-up-2 > .columns:nth-of-type(2n+1) {
      clear: both; }
    .large-up-2 > .column:last-child, .large-up-2 > .columns:last-child {
      float: left; }
  .large-up-3 > .column, .large-up-3 > .columns {
    float: left;
    width: 33.33333%; }
    .large-up-3 > .column:nth-of-type(1n), .large-up-3 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-3 > .column:nth-of-type(3n+1), .large-up-3 > .columns:nth-of-type(3n+1) {
      clear: both; }
    .large-up-3 > .column:last-child, .large-up-3 > .columns:last-child {
      float: left; }
  .large-up-4 > .column, .large-up-4 > .columns {
    float: left;
    width: 25%; }
    .large-up-4 > .column:nth-of-type(1n), .large-up-4 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-4 > .column:nth-of-type(4n+1), .large-up-4 > .columns:nth-of-type(4n+1) {
      clear: both; }
    .large-up-4 > .column:last-child, .large-up-4 > .columns:last-child {
      float: left; }
  .large-up-5 > .column, .large-up-5 > .columns {
    float: left;
    width: 20%; }
    .large-up-5 > .column:nth-of-type(1n), .large-up-5 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-5 > .column:nth-of-type(5n+1), .large-up-5 > .columns:nth-of-type(5n+1) {
      clear: both; }
    .large-up-5 > .column:last-child, .large-up-5 > .columns:last-child {
      float: left; }
  .large-up-6 > .column, .large-up-6 > .columns {
    float: left;
    width: 16.66667%; }
    .large-up-6 > .column:nth-of-type(1n), .large-up-6 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-6 > .column:nth-of-type(6n+1), .large-up-6 > .columns:nth-of-type(6n+1) {
      clear: both; }
    .large-up-6 > .column:last-child, .large-up-6 > .columns:last-child {
      float: left; }
  .large-up-7 > .column, .large-up-7 > .columns {
    float: left;
    width: 14.28571%; }
    .large-up-7 > .column:nth-of-type(1n), .large-up-7 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-7 > .column:nth-of-type(7n+1), .large-up-7 > .columns:nth-of-type(7n+1) {
      clear: both; }
    .large-up-7 > .column:last-child, .large-up-7 > .columns:last-child {
      float: left; }
  .large-up-8 > .column, .large-up-8 > .columns {
    float: left;
    width: 12.5%; }
    .large-up-8 > .column:nth-of-type(1n), .large-up-8 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-8 > .column:nth-of-type(8n+1), .large-up-8 > .columns:nth-of-type(8n+1) {
      clear: both; }
    .large-up-8 > .column:last-child, .large-up-8 > .columns:last-child {
      float: left; }
  .large-collapse > .column, .large-collapse > .columns {
    padding-right: 0;
    padding-left: 0; }
  .large-collapse .row {
    margin-right: 0;
    margin-left: 0; }
  .expanded.row .large-collapse.row {
    margin-right: 0;
    margin-left: 0; }
  .large-uncollapse > .column, .large-uncollapse > .columns {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem; }
  .large-centered {
    margin-right: auto;
    margin-left: auto; }
    .large-centered, .large-centered:last-child:not(:first-child) {
      float: none;
      clear: both; }
  .large-uncentered,
  .large-push-0,
  .large-pull-0 {
    position: static;
    float: left;
    margin-right: 0;
    margin-left: 0; } }

.column-block {
  margin-bottom: 1.25rem; }
  .column-block > :last-child {
    margin-bottom: 0; }
  @media print, screen and (min-width: 40em) {
    .column-block {
      margin-bottom: 1.875rem; }
      .column-block > :last-child {
        margin-bottom: 0; } }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

li {
  font-size: inherit; }

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

ol {
  margin-left: 1.25rem; }

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

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

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

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

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

figure {
  margin: 0; }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.input-group-field {
  border-radius: 0;
  -webkit-box-flex: 1;
      -ms-flex: 1 1 0px;
          flex: 1 1 0px;
  height: auto;
  min-width: 0; }

.input-group-button {
  padding-top: 0;
  padding-bottom: 0;
  text-align: center;
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto; }
  .input-group-button a,
  .input-group-button input,
  .input-group-button button,
  .input-group-button label {
    height: 2.5rem;
    padding-top: 0;
    padding-bottom: 0;
    font-size: 1rem; }

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

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

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

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

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

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

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

.hide {
  display: none !important; }

.invisible {
  visibility: hidden; }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.menu-centered > .menu {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center; }
  .menu-centered > .menu li {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center; }
    .menu-centered > .menu li .submenu li {
      -webkit-box-pack: start;
          -ms-flex-pack: start;
              justify-content: flex-start; }

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

/*! * [Unit Space](https://github.com/kevinmack18/SASS-Margin-and-Padding-Starter) */
*, *:before, *:after {
  box-sizing: border-box; }

@media screen and (min-width: 960px) {
  .padding, .padding-top {
    padding-top: 16px !important; } }

@media screen and (max-width: 960px) {
  .padding, .padding-top {
    padding-top: 16px !important; } }

@media screen and (min-width: 960px) {
  .padding, .padding-right {
    padding-right: 16px !important; } }

@media screen and (max-width: 960px) {
  .padding, .padding-right {
    padding-right: 16px !important; } }

@media screen and (min-width: 960px) {
  .padding, .padding-bottom {
    padding-bottom: 16px !important; } }

@media screen and (max-width: 960px) {
  .padding, .padding-bottom {
    padding-bottom: 16px !important; } }

@media screen and (min-width: 960px) {
  .padding, .padding-left {
    padding-left: 16px !important; } }

@media screen and (max-width: 960px) {
  .padding, .padding-left {
    padding-left: 16px !important; } }

@media screen and (min-width: 960px) {
  .spacing {
    padding-top: 32px !important; } }

@media screen and (max-width: 960px) {
  .spacing {
    padding-top: 16px !important; } }

@media screen and (min-width: 960px) {
  .spacing {
    padding-right: 32px !important; } }

@media screen and (max-width: 960px) {
  .spacing {
    padding-right: 16px !important; } }

@media screen and (min-width: 960px) {
  .spacing {
    padding-bottom: 32px !important; } }

@media screen and (max-width: 960px) {
  .spacing {
    padding-bottom: 16px !important; } }

@media screen and (min-width: 960px) {
  .spacing {
    padding-left: 32px !important; } }

@media screen and (max-width: 960px) {
  .spacing {
    padding-left: 16px !important; } }

@media screen and (min-width: 960px) {
  .padding--2x, .padding-top--2x {
    padding-top: 32px !important; } }

@media screen and (max-width: 960px) {
  .padding--2x, .padding-top--2x {
    padding-top: 16px !important; } }

@media screen and (min-width: 960px) {
  .padding--2x, .padding-right--2x {
    padding-right: 32px !important; } }

@media screen and (max-width: 960px) {
  .padding--2x, .padding-right--2x {
    padding-right: 16px !important; } }

@media screen and (min-width: 960px) {
  .padding--2x, .padding-bottom--2x {
    padding-bottom: 32px !important; } }

@media screen and (max-width: 960px) {
  .padding--2x, .padding-bottom--2x {
    padding-bottom: 16px !important; } }

@media screen and (min-width: 960px) {
  .padding--2x, .padding-left--2x {
    padding-left: 32px !important; } }

@media screen and (max-width: 960px) {
  .padding--2x, .padding-left--2x {
    padding-left: 16px !important; } }

@media screen and (min-width: 960px) {
  .padding--3halves, .padding-top--3halves {
    padding-top: 24px !important; } }

@media screen and (max-width: 960px) {
  .padding--3halves, .padding-top--3halves {
    padding-top: 16px !important; } }

@media screen and (min-width: 960px) {
  .padding--3halves, .padding-right--3halves {
    padding-right: 24px !important; } }

@media screen and (max-width: 960px) {
  .padding--3halves, .padding-right--3halves {
    padding-right: 16px !important; } }

@media screen and (min-width: 960px) {
  .padding--3halves, .padding-bottom--3halves {
    padding-bottom: 24px !important; } }

@media screen and (max-width: 960px) {
  .padding--3halves, .padding-bottom--3halves {
    padding-bottom: 16px !important; } }

@media screen and (min-width: 960px) {
  .padding--3halves, .padding-left--3halves {
    padding-left: 24px !important; } }

@media screen and (max-width: 960px) {
  .padding--3halves, .padding-left--3halves {
    padding-left: 16px !important; } }

.padding--half, .padding-top--half {
  padding-top: 8px !important; }

.padding--half, .padding-right--half {
  padding-right: 8px !important; }

.padding--half, .padding-bottom--half {
  padding-bottom: 8px !important; }

.padding--half, .padding-left--half {
  padding-left: 8px !important; }

@media screen and (min-width: 960px) {
  .margin, .margin-top, .spacing-verticals {
    margin-top: 16px !important; } }

@media screen and (max-width: 960px) {
  .margin, .margin-top, .spacing-verticals {
    margin-top: 16px !important; } }

@media screen and (min-width: 960px) {
  .margin, .margin-right {
    margin-right: 16px !important; } }

@media screen and (max-width: 960px) {
  .margin, .margin-right {
    margin-right: 16px !important; } }

@media screen and (min-width: 960px) {
  .margin, .margin-bottom, .spacing-verticals {
    margin-bottom: 16px !important; } }

@media screen and (max-width: 960px) {
  .margin, .margin-bottom, .spacing-verticals {
    margin-bottom: 16px !important; } }

@media screen and (min-width: 960px) {
  .margin, .margin-left {
    margin-left: 16px !important; } }

@media screen and (max-width: 960px) {
  .margin, .margin-left {
    margin-left: 16px !important; } }

@media screen and (min-width: 960px) {
  .margin--2x, .margin-top--2x {
    margin-top: 32px !important; } }

@media screen and (max-width: 960px) {
  .margin--2x, .margin-top--2x {
    margin-top: 16px !important; } }

@media screen and (min-width: 960px) {
  .margin--2x, .margin-right--2x {
    margin-right: 32px !important; } }

@media screen and (max-width: 960px) {
  .margin--2x, .margin-right--2x {
    margin-right: 16px !important; } }

@media screen and (min-width: 960px) {
  .margin--2x, .margin-bottom--2x {
    margin-bottom: 32px !important; } }

@media screen and (max-width: 960px) {
  .margin--2x, .margin-bottom--2x {
    margin-bottom: 16px !important; } }

@media screen and (min-width: 960px) {
  .margin--2x, .margin-left--2x {
    margin-left: 32px !important; } }

@media screen and (max-width: 960px) {
  .margin--2x, .margin-left--2x {
    margin-left: 16px !important; } }

@media screen and (min-width: 960px) {
  .margin--3halves, .margin-top--3halves {
    margin-top: 24px !important; } }

@media screen and (max-width: 960px) {
  .margin--3halves, .margin-top--3halves {
    margin-top: 16px !important; } }

@media screen and (min-width: 960px) {
  .margin--3halves, .margin-right--3halves {
    margin-right: 24px !important; } }

@media screen and (max-width: 960px) {
  .margin--3halves, .margin-right--3halves {
    margin-right: 16px !important; } }

@media screen and (min-width: 960px) {
  .margin--3halves, .margin-bottom--3halves {
    margin-bottom: 24px !important; } }

@media screen and (max-width: 960px) {
  .margin--3halves, .margin-bottom--3halves {
    margin-bottom: 16px !important; } }

@media screen and (min-width: 960px) {
  .margin--3halves, .margin-left--3halves {
    margin-left: 24px !important; } }

@media screen and (max-width: 960px) {
  .margin--3halves, .margin-left--3halves {
    margin-left: 16px !important; } }

.margin--half, .margin-top--half {
  margin-top: 8px !important; }

.margin--half, .margin-right--half {
  margin-right: 8px !important; }

.margin--half, .margin-bottom--half {
  margin-bottom: 8px !important; }

.margin--half, .margin-left--half {
  margin-left: 8px !important; }

@media screen and (min-width: 960px) {
  .padding--verticals {
    padding-top: 16px; } }

@media screen and (max-width: 960px) {
  .padding--verticals {
    padding-top: 16px; } }

@media screen and (min-width: 960px) {
  .padding--verticals {
    padding-bottom: 16px; } }

@media screen and (max-width: 960px) {
  .padding--verticals {
    padding-bottom: 16px; } }

@media screen and (min-width: 960px) {
  .padding--verticals {
    padding-left: 16px; } }

@media screen and (max-width: 960px) {
  .padding--verticals {
    padding-left: 16px; } }

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

.padding-left-none {
  padding-left: 0 !important; }

.padding-right-none {
  padding-right: 0 !important; }

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

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

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

/*
  Colors: Primary/White/Dark
  ".button--primary", .button--white, .button--dark {}

  Sizes: Small/Medium/Large
  .button--small, ".button--medium", .button--large {}

  Border: Gradient/White
  .button--border__gradient, .button--border__white {}

  Type: Fill/Hollow 
  ".button--fill", .button--hollow {}
*/
button, .button {
  position: relative;
  background: #EE1BB6;
  border: none;
  padding: 0 35px;
  height: 60px;
  line-height: 60px;
  margin: 0px;
  font-weight: 500;
  font-size: 22px;
  transition: all 0.25s ease-out, color 0.25s ease-out;
  /* Border */
  /* Sizes */
  /* Colors */
  /* Types */ }
  button[class*=button--border], .button[class*=button--border] {
    margin-bottom: 5px;
    margin-right: 5px; }
    button[class*=button--border]:before, .button[class*=button--border]:before {
      content: "";
      position: absolute;
      z-index: 2;
      top: 0px;
      left: 0px;
      right: 0px;
      bottom: 0px;
      border: 7px solid #EE1BB6;
      transition: all 0.25s ease-out, color 0.25s ease-out; }
    button[class*=button--border]:after, .button[class*=button--border]:after {
      content: "";
      position: absolute;
      top: 0px;
      left: 0px;
      right: 0px;
      bottom: 0px;
      border: 2px solid white;
      -webkit-transform: translate(4px, 4px);
              transform: translate(4px, 4px); }
    button[class*=button--border].button--border__gradient, .button[class*=button--border].button--border__gradient {
      margin-bottom: 5px;
      margin-right: 5px; }
      button[class*=button--border].button--border__gradient:before, .button[class*=button--border].button--border__gradient:before {
        content: "";
        position: absolute;
        z-index: 2;
        top: 0px;
        left: 0px;
        right: 0px;
        bottom: 0px;
        border: 7px solid #EE1BB6;
        transition: all 0.25s ease-out, color 0.25s ease-out; }
      button[class*=button--border].button--border__gradient:after, .button[class*=button--border].button--border__gradient:after {
        content: "";
        position: absolute;
        top: 0px;
        left: 0px;
        right: 0px;
        bottom: 0px;
        border: 2px solid white;
        -webkit-transform: translate(4px, 4px);
                transform: translate(4px, 4px); }
      button[class*=button--border].button--border__gradient:after, .button[class*=button--border].button--border__gradient:after {
        border: 2px solid #7983FF;
        border-image-source: linear-gradient(90deg, #EE1BB6, #7983FF);
        border-image-slice: 1; }
  button:active, button:focus, button:hover, .button:active, .button:focus, .button:hover {
    background: #c70f96;
    outline: none; }
    button:active:before, button:focus:before, button:hover:before, .button:active:before, .button:focus:before, .button:hover:before {
      border-color: #c70f96; }
  button.button--small, .woocommerce-message button.button, .woocommerce-Message button.button, .product-card__body button.button, body.woocommerce-checkout .woocommerce-form-coupon button.button, .button.button--small, .woocommerce-message .button, .woocommerce-Message .button, .product-card__body .button, .shop_table tbody tr a.button, .shop_table tfoot tr a.button, body.woocommerce-checkout .woocommerce-form-coupon .button {
    padding: 0 20px;
    height: 46px;
    line-height: 46px;
    font-weight: 300; }
  button.button--medium, .woocommerce-cart .woocommerce-cart-form__contents tbody tr .actions .actions-buttons > button.button, .woocommerce-cart .woocommerce-cart-form__contents tbody tr .actions .coupon button.button, button.newsletter-section__form-button, .customer-service__buttons button.button, .button.button--medium, .woocommerce-cart .woocommerce-cart-form__contents tbody tr .actions .actions-buttons > .button, .woocommerce-cart .woocommerce-cart-form__contents tbody tr .actions .coupon .button, .button.newsletter-section__form-button, .customer-service__buttons .button {
    padding: 0 40px;
    height: 54px;
    line-height: 54px; }
  button.button--large, .woocommerce-cart .cart-collaterals .cart_totals .wc-proceed-to-checkout button.button, .button.button--large, .woocommerce-cart .cart-collaterals .cart_totals .wc-proceed-to-checkout .button {
    padding: 0 40px;
    height: 68px;
    line-height: 68px;
    font-size: 23px;
    letter-spacing: -0.5px; }
  button.button--white, .button.button--white {
    background: white;
    color: #2C2934; }
    button.button--white:before, .button.button--white:before {
      border-color: white !important; }
    button.button--white:active, button.button--white:focus, button.button--white:hover, .button.button--white:active, .button.button--white:focus, .button.button--white:hover {
      background: #e6e6e6;
      color: #2C2934; }
      button.button--white:active:before, button.button--white:focus:before, button.button--white:hover:before, .button.button--white:active:before, .button.button--white:focus:before, .button.button--white:hover:before {
        border-color: #e6e6e6 !important; }
  button.button--dark, .button.button--dark {
    background: #2C2934; }
    button.button--dark:before, .button.button--dark:before {
      border-color: #2C2934 !important; }
    button.button--dark:active, button.button--dark:focus, button.button--dark:hover, .button.button--dark:active, .button.button--dark:focus, .button.button--dark:hover {
      background: #443f51; }
      button.button--dark:active:before, button.button--dark:focus:before, button.button--dark:hover:before, .button.button--dark:active:before, .button.button--dark:focus:before, .button.button--dark:hover:before {
        border-color: #443f51 !important; }
  button.button--hollow, .button.button--hollow {
    background: transparent;
    border: 2px solid #2C2934;
    color: #2C2934;
    line-height: 56px; }
    button.button--hollow:active, button.button--hollow:focus, button.button--hollow:hover, .button.button--hollow:active, .button.button--hollow:focus, .button.button--hollow:hover {
      background: #EE1BB6;
      border: 2px solid #EE1BB6;
      color: white; }
    button.button--hollow.button--small, .woocommerce-message button.button--hollow.button, .woocommerce-Message button.button--hollow.button, .product-card__body button.button--hollow.button, body.woocommerce-checkout .woocommerce-form-coupon button.button--hollow.button, .button.button--hollow.button--small, .woocommerce-message .button.button--hollow, .woocommerce-Message .button.button--hollow, .product-card__body .button.button--hollow, .shop_table tbody tr a.button.button--hollow, .shop_table tfoot tr a.button.button--hollow, body.woocommerce-checkout .woocommerce-form-coupon .button.button--hollow {
      line-height: 42px; }
    button.button--hollow.button--medium, .woocommerce-cart .woocommerce-cart-form__contents tbody tr .actions .actions-buttons > button.button--hollow.button, .woocommerce-cart .woocommerce-cart-form__contents tbody tr .actions .coupon button.button--hollow.button, button.button--hollow.newsletter-section__form-button, .customer-service__buttons button.button--hollow.button, .button.button--hollow.button--medium, .woocommerce-cart .woocommerce-cart-form__contents tbody tr .actions .actions-buttons > .button.button--hollow, .woocommerce-cart .woocommerce-cart-form__contents tbody tr .actions .coupon .button.button--hollow, .button.button--hollow.newsletter-section__form-button, .customer-service__buttons .button.button--hollow {
      line-height: 50px; }

.f-item-preview > button, .f-item-preview > .button, .f-preview__dark > button, .f-preview__dark > .button {
  margin: 10px; }

a.add-button, .product-card-small__add a.button, .add-button, .product-card-small__add .button {
  padding: 0px;
  height: auto;
  line-height: initial;
  font-size: 0px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; }
  a.add-button:before, .product-card-small__add a.button:before, .add-button:before, .product-card-small__add .button:before {
    content: "+";
    display: inline-block;
    text-align: center;
    line-height: 24px;
    border-radius: 100px;
    font-size: 34px;
    font-weight: 100;
    width: 29px;
    height: 29px;
    vertical-align: text-top;
    background: #2C2934;
    color: white;
    margin-right: 7px; }
  a.add-button:after, .product-card-small__add a.button:after, .add-button:after, .product-card-small__add .button:after {
    content: 'Add';
    display: inline-block;
    color: #2C2934;
    font-size: 22px;
    font-weight: 300; }
  a.add-button.add-button--primary:after, .product-card-small.product-card-small--dark a.add-button:after, .product-card-small.product-card-small--dark .product-card-small__add a.button:after, .product-card-small__add .product-card-small.product-card-small--dark a.button:after, .product-card-small__add a.add-button--primary.button:after, .add-button.add-button--primary:after, .product-card-small.product-card-small--dark .add-button:after, .product-card-small.product-card-small--dark .product-card-small__add .button:after, .product-card-small__add .product-card-small.product-card-small--dark .button:after, .product-card-small__add .add-button--primary.button:after {
    color: white; }
  a.add-button.add-button--primary:before, .product-card-small.product-card-small--dark a.add-button:before, .product-card-small.product-card-small--dark .product-card-small__add a.button:before, .product-card-small__add .product-card-small.product-card-small--dark a.button:before, .product-card-small__add a.add-button--primary.button:before, .add-button.add-button--primary:before, .product-card-small.product-card-small--dark .add-button:before, .product-card-small.product-card-small--dark .product-card-small__add .button:before, .product-card-small__add .product-card-small.product-card-small--dark .button:before, .product-card-small__add .add-button--primary.button:before {
    background: #EE1BB6;
    box-shadow: 0 2px 15px 0 rgba(0, 0, 0, 0.5); }
  a.add-button.add-button--blue:after, .product-card-small__add a.add-button--blue.button:after, .add-button.add-button--blue:after, .product-card-small__add .add-button--blue.button:after {
    color: white;
    font-weight: 500; }
  a.add-button.add-button--blue:before, .product-card-small__add a.add-button--blue.button:before, .add-button.add-button--blue:before, .product-card-small__add .add-button--blue.button:before {
    background: #00b1ff; }

.wpcf7 {
  width: 100%; }

.submit-wrapper {
  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;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; }
  .submit-wrapper .wpcf7-submit {
    margin-left: 10px;
    background-color: #ee1bb7;
    border: none;
    padding: 19px 10px;
    min-width: 260px;
    font-size: 23px;
    font-weight: 500;
    text-align: center;
    color: #ffffff; }

div.wpcf7-response-output {
  margin: 20px 0; }

.wpcf7-form-control-wrap input, .wpcf7-form-control-wrap textarea {
  border-radius: 4px;
  border: solid 1px #d3dee3;
  background-color: #ffffff;
  box-shadow: none;
  padding: 13px 20px;
  height: auto;
  font-size: 20px;
  line-height: 1.6;
  letter-spacing: -0.5px;
  color: #08131f; }

.wpcf7-form-control-wrap textarea {
  height: 200px; }

body .woocommerce-notices-wrapper {
  max-width: 90rem;
  margin-right: auto;
  margin-left: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-flow: row wrap;
      flex-flow: row wrap;
  margin-bottom: 10px;
  position: relative;
  z-index: 10;
  display: block; }

body .woocommerce-notices-wrapper:empty {
  display: none; }

.woocommerce-message, .woocommerce-error, .woocommerce-success, .woocommerce-Message, .woocommerce-info {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
  max-width: 100%;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  max-width: 100%;
  width: 100%;
  color: white;
  margin: 0;
  margin-bottom: 10px;
  padding: 10px;
  list-style: none; }
  @media print, screen and (min-width: 40em) {
    .woocommerce-message, .woocommerce-error, .woocommerce-success, .woocommerce-Message, .woocommerce-info {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }
  .woocommerce-message a, .woocommerce-error a, .woocommerce-success a, .woocommerce-Message a, .woocommerce-info a {
    color: white;
    text-decoration: underline; }

.woocommerce-message .button, .woocommerce-Message .button {
  background: transparent;
  border: 2px solid #2C2934;
  color: #2C2934;
  line-height: 56px;
  margin-right: 10px;
  color: white;
  border-color: white;
  text-decoration: none; }
  .woocommerce-message .button:active, .woocommerce-message .button:focus, .woocommerce-message .button:hover, .woocommerce-Message .button:active, .woocommerce-Message .button:focus, .woocommerce-Message .button:hover {
    background: #EE1BB6;
    border: 2px solid #EE1BB6;
    color: white; }
  .woocommerce-message .button.button--small, .woocommerce-message .button, .woocommerce-message .woocommerce-Message .button, .woocommerce-Message .woocommerce-message .button, .woocommerce-message .product-card__body .button, .product-card__body .woocommerce-message .button, .woocommerce-message .shop_table tbody tr a.button, .shop_table tbody tr .woocommerce-message a.button, .woocommerce-message .shop_table tfoot tr a.button, .shop_table tfoot tr .woocommerce-message a.button, .woocommerce-message body.woocommerce-checkout .woocommerce-form-coupon .button, body.woocommerce-checkout .woocommerce-form-coupon .woocommerce-message .button, .woocommerce-Message .button.button--small, .woocommerce-Message .woocommerce-message .button, .woocommerce-message .woocommerce-Message .button, .woocommerce-Message .button, .woocommerce-Message .product-card__body .button, .product-card__body .woocommerce-Message .button, .woocommerce-Message .shop_table tbody tr a.button, .shop_table tbody tr .woocommerce-Message a.button, .woocommerce-Message .shop_table tfoot tr a.button, .shop_table tfoot tr .woocommerce-Message a.button, .woocommerce-Message body.woocommerce-checkout .woocommerce-form-coupon .button, body.woocommerce-checkout .woocommerce-form-coupon .woocommerce-Message .button {
    line-height: 42px; }
  .woocommerce-message .button.button--medium, .woocommerce-message .woocommerce-cart .woocommerce-cart-form__contents tbody tr .actions .actions-buttons > .button, .woocommerce-cart .woocommerce-cart-form__contents tbody tr .actions .woocommerce-message .actions-buttons > .button, .woocommerce-message .woocommerce-cart .woocommerce-cart-form__contents tbody tr .actions .coupon .button, .woocommerce-cart .woocommerce-cart-form__contents tbody tr .actions .coupon .woocommerce-message .button, .woocommerce-message .button.newsletter-section__form-button, .woocommerce-message .customer-service__buttons .button, .customer-service__buttons .woocommerce-message .button, .woocommerce-Message .button.button--medium, .woocommerce-Message .woocommerce-cart .woocommerce-cart-form__contents tbody tr .actions .actions-buttons > .button, .woocommerce-cart .woocommerce-cart-form__contents tbody tr .actions .woocommerce-Message .actions-buttons > .button, .woocommerce-Message .woocommerce-cart .woocommerce-cart-form__contents tbody tr .actions .coupon .button, .woocommerce-cart .woocommerce-cart-form__contents tbody tr .actions .coupon .woocommerce-Message .button, .woocommerce-Message .button.newsletter-section__form-button, .woocommerce-Message .customer-service__buttons .button, .customer-service__buttons .woocommerce-Message .button {
    line-height: 50px; }
  .woocommerce-message .button:active, .woocommerce-message .button:focus, .woocommerce-message .button:hover, .woocommerce-Message .button:active, .woocommerce-Message .button:focus, .woocommerce-Message .button:hover {
    background: transparent;
    color: white;
    border: 2px solid white; }

.chosen-container-single .chosen-single, .chosen-container-active.chosen-with-drop .chosen-single {
  background: white;
  border-radius: 4px;
  border: solid 1px #b7c4c9;
  box-shadow: none;
  height: 54px;
  padding: 0 17px;
  color: #08131f;
  font-size: 20px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; }

.chosen-container-single .chosen-drop {
  margin-top: 10px;
  border: none;
  box-shadow: none;
  background-color: #737373;
  border-radius: 5px; }

.chosen-container-single .chosen-single div {
  width: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding-right: 10px; }

.chosen-container-single .chosen-single div b {
  background-image: none !important;
  height: auto; }
  .chosen-container-single .chosen-single div b:before {
    /* use !important to prevent issues with browser extensions that change fonts */
    font-family: 'icomoon' !important;
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    /* Better Font Rendering =========== */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    content: "";
    font-size: 30px;
    color: #EE1BB6; }

.chosen-container .chosen-results {
  padding: 0px;
  margin: 0px;
  margin-bottom: 12px;
  margin-top: 12px; }

.chosen-container .chosen-results li {
  padding: 10px 17px;
  padding-bottom: 9px;
  color: white;
  font-size: 20px;
  line-height: 1.4em; }

.chosen-container .chosen-results li.highlighted {
  background: none;
  opacity: 0.7; }

.chosen-container-single .chosen-search {
  padding: 5px 7px; }

.chosen-container-single .chosen-search input[type="text"] {
  box-shadow: none;
  background: rgba(0, 0, 0, 0.1);
  border: none;
  padding: 7px 7px;
  color: white;
  font-size: 1rem;
  border-radius: 5px; }

.chosen-container .chosen-results li.no-results {
  background: none; }

.product-card {
  transition: box-shadow 0.25s ease-out;
  position: relative;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column; }
  .product-card:hover {
    box-shadow: 0 0 20px rgba(0, 0, 50, 0.3); }
  .product-card .added_to_cart {
    margin-left: 10px; }

.product-card__head {
  position: relative; }
  .product-card__head > a {
    position: absolute;
    display: block;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0; }

.product-card__image {
  padding-top: 87.5%;
  background-size: cover;
  background-position: center; }

.product-card__brand {
  position: absolute;
  top: 24px;
  left: 20px;
  padding: 5px 30px;
  background: rgba(0, 0, 0, 0.3);
  border-radius: 100px;
  color: white;
  text-transform: uppercase;
  backdrop-filter: blur(30px);
  background-color: rgba(115, 115, 115, 0.4);
  letter-spacing: -0.5px;
  font-size: 16px; }

.product-card__body {
  border: 1px solid #F0F0F0;
  background: white;
  padding: 19px 20px;
  padding-right: 30px;
  padding-bottom: 30px;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column; }
  .product-card__body .button {
    background: transparent;
    border: 2px solid #2C2934;
    color: #2C2934;
    line-height: 56px; }
    .product-card__body .button:active, .product-card__body .button:focus, .product-card__body .button:hover {
      background: #EE1BB6;
      border: 2px solid #EE1BB6;
      color: white; }
    .product-card__body .button.button--small, .product-card__body .woocommerce-message .button, .woocommerce-message .product-card__body .button, .product-card__body .woocommerce-Message .button, .woocommerce-Message .product-card__body .button, .product-card__body .button, .product-card__body .shop_table tbody tr a.button, .shop_table tbody tr .product-card__body a.button, .product-card__body .shop_table tfoot tr a.button, .shop_table tfoot tr .product-card__body a.button, .product-card__body body.woocommerce-checkout .woocommerce-form-coupon .button, body.woocommerce-checkout .woocommerce-form-coupon .product-card__body .button {
      line-height: 42px; }
    .product-card__body .button.button--medium, .product-card__body .woocommerce-cart .woocommerce-cart-form__contents tbody tr .actions .actions-buttons > .button, .woocommerce-cart .woocommerce-cart-form__contents tbody tr .actions .product-card__body .actions-buttons > .button, .product-card__body .woocommerce-cart .woocommerce-cart-form__contents tbody tr .actions .coupon .button, .woocommerce-cart .woocommerce-cart-form__contents tbody tr .actions .coupon .product-card__body .button, .product-card__body .button.newsletter-section__form-button, .product-card__body .customer-service__buttons .button, .customer-service__buttons .product-card__body .button {
      line-height: 50px; }

.product-card__info {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column; }

.product-card__title {
  font-size: 24px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between; }

.product-card__subtitle {
  font-size: 20px;
  color: #08131f;
  opacity: 0.5;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1; }

.product-card__add {
  margin-top: 20px; }

.product-card__price {
  color: #2c2934;
  font-size: 31px;
  font-weight: 300; }
  .product-card__price .price {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse;
    -webkit-box-align: end;
        -ms-flex-align: end;
            align-items: flex-end; }
    .product-card__price .price ins {
      text-decoration: none; }
    .product-card__price .price del {
      font-size: 20px;
      opacity: 0.5; }

.f-item-preview > .product-card {
  width: 418px; }

.product-card-small {
  transition: box-shadow 0.25s ease-out;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column; }
  .product-card-small:hover {
    box-shadow: 0 0 20px rgba(0, 0, 50, 0.3); }
  .product-card-small .added_to_cart {
    margin-top: 10px; }

.product-card-small__head {
  position: relative;
  z-index: 5; }
  .product-card-small__head > a {
    position: absolute;
    display: block;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0; }

.product-card-small__image {
  padding-top: 100%;
  background-size: cover;
  background-position: center;
  border-radius: 4px; }

.product-card-small__body {
  border: solid 1px #d3dee3;
  padding: 20px;
  padding-left: 18px;
  padding-top: 15px;
  padding-bottom: 18px;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  margin-top: -5px;
  background: white; }
  .product-card-small--dark .product-card-small__body {
    border: none;
    backdrop-filter: blur(29px);
    background: rgba(122, 122, 122, 0.7); }
    .product-card-small--dark .product-card-small__body * {
      color: white; }

.product-card-small__info {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between; }

.product-card-small__title {
  letter-spacing: -0.5px;
  font-size: 22px;
  font-weight: 500;
  margin-bottom: 4px;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1; }

.product-card-small__price {
  font-size: 28px;
  color: #EE1BB6; }
  .product-card-small__price .price {
    position: relative; }
    .product-card-small__price .price del {
      font-size: 20px;
      position: absolute;
      right: -10px;
      top: 50%;
      -webkit-transform: translate(100%, -50%);
              transform: translate(100%, -50%);
      opacity: 0.7; }

.product-card-small__add {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column; }
  .product-card-small__add .button {
    background: none !important; }

.f-item-preview > .product-card-small {
  width: 297px; }

.banner {
  /* Permalink - use to edit and share this gradient: https://colorzilla.com/gradient-editor/#1e5799+0,7db9e8+100 */
  background: #EE1BB6;
  /* Old browsers */
  /* FF3.6-15 */
  /* Chrome10-25,Safari5.1-6 */
  background: linear-gradient(to right, #EE1BB6 0%, #7983FF 100%);
  /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#EE1BB6', endColorstr='#7983FF',GradientType=1 );
  /* IE6-9 */
  padding: 20px;
  width: 100%; }
  .banner.banner--height {
    height: 100%; }
  .banner.banner--hidden .banner__content {
    overflow: hidden; }

.section__body > .banner {
  margin: 20px; }

.banner__content {
  background: white;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  padding: 20px 0; }
  @media screen and (min-width: 40em) {
    .banner__content {
      min-height: 400px; } }
  .banner--height .banner__content {
    height: 100%; }
  @media screen and (max-width: 39.9375em) {
    .banner__content {
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
          -ms-flex-direction: column;
              flex-direction: column; } }

.banner__image {
  position: relative;
  -webkit-box-flex: 4;
      -ms-flex: 4;
          flex: 4; }
  @media screen and (min-width: 40em) {
    .banner__image img {
      min-width: 600px;
      position: absolute;
      top: 50%;
      -webkit-transform: translateY(-54%) translateX(-10px);
              transform: translateY(-54%) translateX(-10px);
      right: 0px; } }
  @media screen and (max-width: 39.9375em) {
    .banner__image img {
      -webkit-transform: scale(1.15);
              transform: scale(1.15);
      -webkit-transform-origin: 50% 100%;
              transform-origin: 50% 100%;
      margin-top: -20px; } }

.banner__info {
  -webkit-box-flex: 3;
      -ms-flex: 3;
          flex: 3;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; }
  @media screen and (max-width: 39.9375em) {
    .banner__info {
      padding: 20px; } }
  .banner__info .button {
    margin-bottom: 5px;
    margin-right: 5px;
    background: #2C2934; }
    .banner__info .button:before {
      content: "";
      position: absolute;
      z-index: 2;
      top: 0px;
      left: 0px;
      right: 0px;
      bottom: 0px;
      border: 7px solid #EE1BB6;
      transition: all 0.25s ease-out, color 0.25s ease-out; }
    .banner__info .button:after {
      content: "";
      position: absolute;
      top: 0px;
      left: 0px;
      right: 0px;
      bottom: 0px;
      border: 2px solid white;
      -webkit-transform: translate(4px, 4px);
              transform: translate(4px, 4px); }
    .banner__info .button:after {
      border: 2px solid #7983FF;
      border-image-source: linear-gradient(90deg, #EE1BB6, #7983FF);
      border-image-slice: 1; }
    .banner__info .button:before {
      border-color: #2C2934 !important; }
    .banner__info .button:active, .banner__info .button:focus, .banner__info .button:hover {
      background: #443f51; }
      .banner__info .button:active:before, .banner__info .button:focus:before, .banner__info .button:hover:before {
        border-color: #443f51 !important; }

.banner__info-inner {
  width: 80%;
  margin: 0 auto;
  margin-top: -20px; }
  @media screen and (max-width: 39.9375em) {
    .banner__info-inner {
      width: 100%;
      margin-top: 0px; } }

.banner__title {
  font-size: 58px;
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -0.5px;
  color: #2C2934;
  margin-bottom: 20px; }
  @media screen and (max-width: 39.9375em) {
    .banner__title {
      font-size: 42px;
      font-weight: bold;
      line-height: 1.14;
      margin-bottom: 40px; } }

.carousel {
  position: relative;
  max-width: 100%;
  width: 100%; }
  .carousel--nav-mobile-center .carousel {
    margin-top: 36px; }

.carousel__nav {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  position: absolute;
  top: -40px;
  right: 20px;
  z-index: 10; }
  .carousel--nav-mobile-center .carousel__nav {
    right: 50%;
    -webkit-transform: translate(50%);
            transform: translate(50%); }

.carousel__prev {
  margin-right: 10px; }
  .carousel__prev:before {
    display: inline-block;
    /* use !important to prevent issues with browser extensions that change fonts */
    font-family: 'icomoon' !important;
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    /* Better Font Rendering =========== */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    content: "";
    -webkit-transform: scaleX(-1);
            transform: scaleX(-1);
    color: #2c2934;
    font-size: 30px; }

.carousel__page {
  font-size: 20px;
  font-weight: 500;
  color: #2c2934; }

.carousel__next {
  margin-left: 10px; }
  .carousel__next:before {
    /* use !important to prevent issues with browser extensions that change fonts */
    font-family: 'icomoon' !important;
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    /* Better Font Rendering =========== */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    content: "";
    color: #2c2934;
    font-size: 30px; }

.carousel__items .owl-dots {
  display: none; }

.carousel__items .owl-stage-outer {
  padding-top: 20px;
  padding-bottom: 20px; }

@media screen and (max-width: 39.9375em) {
  .carousel__items .owl-item {
    -webkit-transform: translateX(-20px);
            transform: translateX(-20px); } }

@media screen and (min-width: 40em) {
  .carousel__items .owl-item {
    transition: -webkit-transform 0.4s;
    transition: transform 0.4s;
    -webkit-transform: translateX(-20px);
            transform: translateX(-20px); }
    .carousel__items .owl-item.active {
      -webkit-transform: translateX(0px) !important;
              transform: translateX(0px) !important; }
      .carousel__items .owl-item.active ~ .owl-item {
        -webkit-transform: translateX(20px);
                transform: translateX(20px); } }

.section--light .carousel__page {
  color: white; }

.section--light .carousel__prev, .section--light .carousel__next {
  margin-right: 10px; }
  .section--light .carousel__prev:before, .section--light .carousel__next:before {
    color: white; }

.shop_table {
  width: 100%; }
  .shop_table thead tr {
    border-bottom: 1px solid #CCCCCC; }
    .shop_table thead tr th {
      font-size: 18px;
      line-height: 1.89;
      color: rgba(8, 19, 31, 0.5);
      text-align: left;
      font-weight: normal;
      text-transform: uppercase;
      padding: 4px 10px; }
  .shop_table tbody tr, .shop_table tfoot tr {
    border-bottom: 1px solid #CCCCCC; }
    .shop_table tbody tr td, .shop_table tbody tr th, .shop_table tfoot tr td, .shop_table tfoot tr th {
      padding: 4px 10px; }
    .shop_table tbody tr a.button, .shop_table tfoot tr a.button {
      background: transparent;
      border: 2px solid #2C2934;
      color: #2C2934;
      line-height: 56px; }
      .shop_table tbody tr a.button:active, .shop_table tbody tr a.button:focus, .shop_table tbody tr a.button:hover, .shop_table tfoot tr a.button:active, .shop_table tfoot tr a.button:focus, .shop_table tfoot tr a.button:hover {
        background: #EE1BB6;
        border: 2px solid #EE1BB6;
        color: white; }
      .shop_table tbody tr a.button.button--small, .shop_table tbody tr .woocommerce-message a.button, .woocommerce-message .shop_table tbody tr a.button, .shop_table tbody tr .woocommerce-Message a.button, .woocommerce-Message .shop_table tbody tr a.button, .shop_table tbody tr .product-card__body a.button, .product-card__body .shop_table tbody tr a.button, .shop_table tbody tr a.button, .shop_table tbody tfoot tr a.button, .shop_table tfoot tbody tr a.button, .shop_table tbody tr body.woocommerce-checkout .woocommerce-form-coupon a.button, body.woocommerce-checkout .woocommerce-form-coupon .shop_table tbody tr a.button, .shop_table tfoot tr a.button.button--small, .shop_table tfoot tr .woocommerce-message a.button, .woocommerce-message .shop_table tfoot tr a.button, .shop_table tfoot tr .woocommerce-Message a.button, .woocommerce-Message .shop_table tfoot tr a.button, .shop_table tfoot tr .product-card__body a.button, .product-card__body .shop_table tfoot tr a.button, .shop_table tfoot tbody tr a.button, .shop_table tbody tfoot tr a.button, .shop_table tfoot tr a.button, .shop_table tfoot tr body.woocommerce-checkout .woocommerce-form-coupon a.button, body.woocommerce-checkout .woocommerce-form-coupon .shop_table tfoot tr a.button {
        line-height: 42px; }
      .shop_table tbody tr a.button.button--medium, .shop_table .woocommerce-cart .woocommerce-cart-form__contents tbody tr .actions .actions-buttons > a.button, .woocommerce-cart .woocommerce-cart-form__contents .shop_table tbody tr .actions .actions-buttons > a.button, .shop_table .woocommerce-cart .woocommerce-cart-form__contents tbody tr .actions .coupon a.button, .woocommerce-cart .woocommerce-cart-form__contents .shop_table tbody tr .actions .coupon a.button, .shop_table tbody tr a.button.newsletter-section__form-button, .shop_table tbody tr .customer-service__buttons a.button, .customer-service__buttons .shop_table tbody tr a.button, .shop_table tfoot tr a.button.button--medium, .shop_table tfoot .woocommerce-cart .woocommerce-cart-form__contents tbody tr .actions .actions-buttons > a.button, .woocommerce-cart .woocommerce-cart-form__contents tbody .shop_table tfoot tr .actions .actions-buttons > a.button, .shop_table tfoot .woocommerce-cart .woocommerce-cart-form__contents tbody tr .actions .coupon a.button, .woocommerce-cart .woocommerce-cart-form__contents tbody .shop_table tfoot tr .actions .coupon a.button, .shop_table tfoot tr a.button.newsletter-section__form-button, .shop_table tfoot tr .customer-service__buttons a.button, .customer-service__buttons .shop_table tfoot tr a.button {
        line-height: 50px; }
    .shop_table tbody tr td, .shop_table tfoot tr td {
      font-size: 18px;
      line-height: 2;
      color: #08131f; }
      .shop_table tbody tr td .woocommerce-shipping-methods, .shop_table tfoot tr td .woocommerce-shipping-methods {
        list-style: none;
        margin: 0px; }
        .shop_table tbody tr td .woocommerce-shipping-methods li label, .shop_table tfoot tr td .woocommerce-shipping-methods li label {
          font-size: 18px;
          color: rgba(8, 19, 31, 0.5);
          font-weight: normal; }
    .shop_table tbody tr th, .shop_table tfoot tr th {
      text-align: left;
      font-size: 18px;
      line-height: 1.89;
      color: rgba(8, 19, 31, 0.5);
      text-transform: uppercase;
      font-weight: normal; }
  .shop_table tfoot tr:not(:last-child) {
    border-bottom: none; }
  .shop_table tfoot tr td, .shop_table tfoot tr th {
    padding: 4px 10px; }
  .shop_table tfoot tr th {
    text-align: right; }

.wc-item-meta {
  word-break: break-word; }

.testimonial-card {
  box-shadow: 0 2px 13px 0 rgba(139, 139, 139, 0.29);
  background-color: white;
  padding: 45px;
  padding-top: 43px;
  padding-left: 90px; }
  @media screen and (max-width: 39.9375em) {
    .testimonial-card {
      padding: 26px;
      padding-left: 68px; } }

.testimonial-card__name {
  font-size: 22px;
  font-weight: bold;
  color: #2C2934;
  margin-bottom: 23px;
  position: relative; }
  @media screen and (max-width: 39.9375em) {
    .testimonial-card__name {
      margin-bottom: 6px; } }
  .testimonial-card__name:before {
    /* use !important to prevent issues with browser extensions that change fonts */
    font-family: 'icomoon' !important;
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    /* Better Font Rendering =========== */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    content: "";
    position: absolute;
    top: 50%;
    left: -39px;
    font-size: 34px;
    -webkit-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%); }
    @media screen and (max-width: 39.9375em) {
      .testimonial-card__name:before {
        font-size: 26px;
        left: -30px; } }
    .testimonial-card--instagram .testimonial-card__name:before {
      /* use !important to prevent issues with browser extensions that change fonts */
      font-family: 'icomoon' !important;
      speak: none;
      font-style: normal;
      font-weight: normal;
      font-variant: normal;
      text-transform: none;
      line-height: 1;
      /* Better Font Rendering =========== */
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      content: ""; }
    .testimonial-card--twitter .testimonial-card__name:before {
      /* use !important to prevent issues with browser extensions that change fonts */
      font-family: 'icomoon' !important;
      speak: none;
      font-style: normal;
      font-weight: normal;
      font-variant: normal;
      text-transform: none;
      line-height: 1;
      /* Better Font Rendering =========== */
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      content: ""; }
    .testimonial-card--pinterest .testimonial-card__name:before {
      /* use !important to prevent issues with browser extensions that change fonts */
      font-family: 'icomoon' !important;
      speak: none;
      font-style: normal;
      font-weight: normal;
      font-variant: normal;
      text-transform: none;
      line-height: 1;
      /* Better Font Rendering =========== */
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      content: ""; }

.testimonial-card__content {
  opacity: 0.3;
  font-size: 18px;
  line-height: 1.5;
  color: #2C2934; }
  @media screen and (max-width: 39.9375em) {
    .testimonial-card__content {
      margin-left: -45px; } }

.f-item-preview > .testimonial-card {
  width: 437px;
  margin: 6px;
  display: inline-block; }

.header-product {
  display: -webkit-box !important;
  display: -ms-flexbox !important;
  display: flex !important;
  -webkit-box-align: center !important;
      -ms-flex-align: center !important;
          align-items: center !important;
  padding-right: 25px !important; }

.header-product__image-holder {
  width: 120px;
  margin-right: 15px;
  position: relative; }

.header-product__image {
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  width: 120px;
  height: 135px;
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat; }

.header-product__name {
  letter-spacing: -0.5px;
  font-size: 26px;
  font-weight: 500;
  color: white;
  margin-bottom: 8px; }

.header-product__price {
  letter-spacing: -0.5px;
  font-size: 24px;
  font-weight: 500;
  color: white;
  margin-bottom: 8px; }

.photo-card {
  box-shadow: 0 0 12px rgba(0, 0, 50, 0.2); }

.photo-card__head {
  position: relative;
  z-index: 5; }

.photo-card__image {
  padding-top: 100%;
  background-size: cover;
  background-position: center; }

.photo-card__body {
  padding: 15px 9px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row; }

.photo-card__user-image-holder {
  padding-right: 10px; }

.photo-card__user-image {
  width: 50px;
  height: 50px;
  border-radius: 100px;
  background-size: cover;
  background-position: center; }

.photo-card__user-name {
  opacity: 0.5;
  font-size: 21px;
  letter-spacing: -0.5px;
  color: #08131f; }

.photo-card__user-username {
  opacity: 0.3;
  letter-spacing: normal;
  color: #08131f;
  font-size: 12px; }

.f-item-preview > .photo-card {
  width: 255px; }

.site-header {
  background: #2C2934;
  border-bottom: 1px solid transparent;
  z-index: 9999;
  position: relative; }
  @media screen and (max-width: 63.9375em) {
    .site-header {
      position: relative;
      z-index: 100; } }
  @media screen and (min-width: 64em) {
    .site-header.site-header--light:not(.submenu-open) {
      z-index: unset;
      background: transparent;
      border-bottom: 1px solid #ececec; } }

.site-header__container {
  max-width: 90rem;
  margin-right: auto;
  margin-left: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-flow: row nowrap;
      flex-flow: row nowrap;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  position: relative; }
  @media screen and (max-width: 63.9375em) {
    .site-header__container {
      height: 67px; } }

.site-header__brand {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  margin-left: 30px; }
  @media print, screen and (min-width: 40em) {
    .site-header__brand {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }
  @media screen and (max-width: 63.9375em) {
    .site-header__brand {
      margin-left: 20px;
      max-width: 160px; } }

.site-header__logo {
  width: 160px; }
  @media screen and (max-width: 63.9375em) {
    .site-header__logo {
      max-width: 100%;
      width: 25vw; } }

.site-header__navigation {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  max-width: 90rem;
  margin-right: auto;
  margin-left: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-flow: row wrap;
      flex-flow: row wrap;
  margin-right: 20px;
  z-index: 10;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; }
  @media print, screen and (min-width: 40em) {
    .site-header__navigation {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }
  @media screen and (max-width: 63.9375em) {
    .site-header__navigation {
      margin-right: 0px; } }

.site-header__hamburger {
  background: none;
  min-width: 30px;
  height: 20px;
  border-top: 2px solid white;
  border-bottom: 2px solid white;
  padding: 0px;
  transition: all 0.15s ease-in-out; }
  @media screen and (min-width: 64em) {
    .site-header--light:not(.submenu-open) .site-header__hamburger {
      border-color: #2C2934; } }
  @media screen and (max-width: 63.9375em) {
    .site-header__hamburger {
      margin-left: 20px; } }
  .site-header__hamburger:before, .site-header__hamburger:after {
    content: '';
    height: 2px;
    background: white;
    left: 0;
    right: 0;
    top: calc( 50% - 1px);
    position: absolute;
    transition: all 0.2s ease-in-out; }
    @media screen and (min-width: 64em) {
      .site-header--light:not(.submenu-open) .site-header__hamburger:before, .site-header--light:not(.submenu-open) .site-header__hamburger:after {
        background: #2C2934; } }
  .site-header__hamburger:hover, .site-header__hamburger:focus, .site-header__hamburger:active {
    background: none; }
  .site-header__hamburger.site-header__hamburger--close {
    border-top-color: transparent;
    border-bottom-color: transparent; }
    .site-header__hamburger.site-header__hamburger--close:before {
      -webkit-transform: rotate(-45deg);
              transform: rotate(-45deg);
      border-radius: 1px; }
    .site-header__hamburger.site-header__hamburger--close:after {
      -webkit-transform: rotate(45deg);
              transform: rotate(45deg);
      border-radius: 1px; }
  @media screen and (min-width: 64em) {
    .site-header__hamburger {
      display: none; } }

@media screen and (min-width: 64em) {
  .site-header__mobile-menu {
    display: -webkit-box !important;
    display: -ms-flexbox !important;
    display: flex !important;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center; } }

@media screen and (max-width: 63.9375em) {
  .site-header__mobile-menu {
    position: fixed;
    left: 0;
    right: 0;
    top: 67px;
    height: calc(100vh - 67px);
    overflow-y: auto;
    z-index: 10;
    background: #2C2934;
    border-top: 1px solid #3D3A43;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column; } }

@media screen and (max-width: 63.9375em) {
  .mobile-menu-open {
    overflow-y: hidden; } }

@media screen and (max-width: 63.9375em) {
  .site-header__menu {
    width: 100%;
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1; } }

@media screen and (min-width: 64em) {
  .site-header__menu .sub-menu {
    display: none !important; } }

.site-header__menu > .menu {
  position: initial; }
  @media screen and (max-width: 63.9375em) {
    .site-header__menu > .menu {
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
          -ms-flex-direction: column;
              flex-direction: column;
      width: 100%; } }

@media screen and (max-width: 63.9375em) {
  .site-header__menu > .menu > .menu-item > a {
    font-size: 25px;
    font-weight: bold;
    line-height: 1;
    color: #ffffff;
    padding: 20px;
    border-bottom: 1px solid #3D3A43;
    outline: none; }
  .site-header__menu > .menu > .menu-item.menu-item-has-children > a {
    position: relative; }
    .site-header__menu > .menu > .menu-item.menu-item-has-children > a:before {
      /* use !important to prevent issues with browser extensions that change fonts */
      font-family: 'icomoon' !important;
      speak: none;
      font-style: normal;
      font-weight: normal;
      font-variant: normal;
      text-transform: none;
      line-height: 1;
      /* Better Font Rendering =========== */
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      content: "";
      position: absolute;
      font-size: 40px;
      right: 20px;
      top: 50%;
      -webkit-transform: translateY(-50%) scaleY(-1);
              transform: translateY(-50%) scaleY(-1);
      color: rgba(255, 255, 255, 0.5);
      transition: all 0.3s; }
  .site-header__menu > .menu > .menu-item.sub-menu-open.menu-item-has-children > a:before {
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
    color: white; }
  .site-header__menu > .menu > .menu-item > .sub-menu {
    max-width: 90rem;
    margin-right: auto;
    margin-left: auto;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-flow: row wrap;
        flex-flow: row wrap;
    list-style: none;
    margin: 0px;
    border-bottom: 1px solid #3D3A43;
    position: relative;
    padding: 15px 0; }
    .site-header__menu > .menu > .menu-item > .sub-menu:before {
      /* Permalink - use to edit and share this gradient: https://colorzilla.com/gradient-editor/#1e5799+0,7db9e8+100 */
      background: #EE1BB6;
      /* Old browsers */
      /* FF3.6-15 */
      /* Chrome10-25,Safari5.1-6 */
      background: linear-gradient(to right, #EE1BB6 0%, #7983FF 100%);
      /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
      filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#EE1BB6', endColorstr='#7983FF',GradientType=1 );
      /* IE6-9 */
      content: '';
      height: 2px;
      position: absolute;
      top: 0;
      left: 0;
      right: 0; }
    .site-header__menu > .menu > .menu-item > .sub-menu .menu-item {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 50%;
              flex: 0 0 50%;
      max-width: 50%;
      padding-right: 0;
      padding-left: 0;
      max-width: 50%; }
      .site-header__menu > .menu > .menu-item > .sub-menu .menu-item a {
        padding: 15px 20px;
        font-size: 21px;
        line-height: 1.5;
        color: rgba(255, 255, 255, 0.8);
        white-space: normal; } }

@media screen and (min-width: 64em) {
  .site-header__menu > .menu > .menu-item > a {
    font-size: 22px;
    font-weight: 500;
    color: white;
    padding: 0 26px;
    margin-top: 13px;
    position: relative;
    height: 107px;
    line-height: 100px; } }
  @media screen and (min-width: 64em) and (min-width: 64em) {
    .site-header--light:not(.submenu-open) .site-header__menu > .menu > .menu-item > a {
      color: #2C2934; } }

@media screen and (min-width: 64em) {
  .site-header__menu > .menu > .menu-item:hover > .sub-menu {
    display: block !important;
    position: absolute;
    left: 0px;
    right: 0px;
    list-style: none;
    padding: 0px;
    margin: 0px;
    padding-top: 7px;
    text-align: center; }
    .site-header__menu > .menu > .menu-item:hover > .sub-menu:before {
      /* Permalink - use to edit and share this gradient: https://colorzilla.com/gradient-editor/#1e5799+0,7db9e8+100 */
      background: #EE1BB6;
      /* Old browsers */
      /* FF3.6-15 */
      /* Chrome10-25,Safari5.1-6 */
      background: linear-gradient(to right, #EE1BB6 0%, #7983FF 100%);
      /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
      filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#EE1BB6', endColorstr='#7983FF',GradientType=1 );
      /* IE6-9 */
      background-attachment: fixed;
      content: '';
      position: absolute;
      top: 0;
      left: calc( (100vw - 100%) / -2);
      width: 100vw;
      height: 7px;
      z-index: 10; }
    .site-header__menu > .menu > .menu-item:hover > .sub-menu:after {
      content: '';
      background: #2C2934;
      position: absolute;
      left: calc( (100vw - 100%) / -2);
      width: 100vw;
      top: 7px;
      bottom: 0;
      z-index: 15; }
    .site-header__menu > .menu > .menu-item:hover > .sub-menu > * {
      position: relative;
      z-index: 30; }
    .site-header__menu > .menu > .menu-item:hover > .sub-menu > .menu-item {
      display: inline-block; }
      .site-header__menu > .menu > .menu-item:hover > .sub-menu > .menu-item > a {
        opacity: 0.5;
        font-size: 22px;
        color: white;
        padding: 34px 20px; }
  .site-header__menu > .menu > .menu-item:hover > a, .site-header__menu > .menu > .menu-item.current-menu-item > a {
    /* Permalink - use to edit and share this gradient: https://colorzilla.com/gradient-editor/#1e5799+0,7db9e8+100 */
    background: #EE1BB6;
    /* Old browsers */
    /* FF3.6-15 */
    /* Chrome10-25,Safari5.1-6 */
    background: linear-gradient(to right, #EE1BB6 0%, #7983FF 100%);
    /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#EE1BB6', endColorstr='#7983FF',GradientType=1 );
    /* IE6-9 */
    background-attachment: fixed; } }
  @media screen and (min-width: 64em) and (min-width: 64em) {
    .site-header--light:not(.submenu-open) .site-header__menu > .menu > .menu-item:hover > a, .site-header--light:not(.submenu-open) .site-header__menu > .menu > .menu-item.current-menu-item > a {
      background: none;
      color: #EE1BB6; } }

@media screen and (min-width: 64em) {
    .site-header__menu > .menu > .menu-item:hover > a:before, .site-header__menu > .menu > .menu-item.current-menu-item > a:before {
      /* Permalink - use to edit and share this gradient: https://colorzilla.com/gradient-editor/#1e5799+0,7db9e8+100 */
      background: #EE1BB6;
      /* Old browsers */
      /* FF3.6-15 */
      /* Chrome10-25,Safari5.1-6 */
      background: linear-gradient(to right, #EE1BB6 0%, #7983FF 100%);
      /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
      filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#EE1BB6', endColorstr='#7983FF',GradientType=1 );
      /* IE6-9 */
      content: '';
      position: absolute;
      height: 5px;
      left: 0;
      right: 0;
      top: -13px; } }

@media screen and (max-width: 63.9375em) {
  .site-header__menu > .menu > .menu-item.megamenu > .sub-menu > .menu-item:not(.mobile-item) {
    display: none !important; } }

@media screen and (min-width: 64em) {
  .site-header__menu > .menu > .menu-item.megamenu:hover > .sub-menu {
    max-width: 90rem;
    margin-right: auto;
    margin-left: auto;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-flow: row wrap;
        flex-flow: row wrap;
    display: flex !important;
    padding-top: 0px;
    padding-left: 30px; }
    .site-header__menu > .menu > .menu-item.megamenu:hover > .sub-menu:before {
      height: auto;
      bottom: 0;
      z-index: 15; }
    .site-header__menu > .menu > .menu-item.megamenu:hover > .sub-menu:after {
      top: 50%;
      box-shadow: 0 2px 30px 0 rgba(0, 0, 0, 0.5);
      z-index: 10; }
    .site-header__menu > .menu > .menu-item.megamenu:hover > .sub-menu > .menu-item {
      padding-top: 25px;
      padding-bottom: 25px; }
      .site-header__menu > .menu > .menu-item.megamenu:hover > .sub-menu > .menu-item:not(.product-column) {
        -webkit-box-flex: 1;
            -ms-flex: 1 1 0px;
                flex: 1 1 0px;
        padding-right: 0.625rem;
        padding-left: 0.625rem;
        min-width: 0; } }
      @media screen and (min-width: 64em) and (min-width: 40em) {
        .site-header__menu > .menu > .menu-item.megamenu:hover > .sub-menu > .menu-item:not(.product-column) {
          padding-right: 0.9375rem;
          padding-left: 0.9375rem; } }

@media screen and (min-width: 64em) {
      .site-header__menu > .menu > .menu-item.megamenu:hover > .sub-menu > .menu-item.product-column {
        -webkit-box-flex: 0;
            -ms-flex: 0 0 auto;
                flex: 0 0 auto;
        padding-right: 0.625rem;
        padding-left: 0.625rem;
        border-left: 1px solid rgba(236, 236, 236, 0.2); } }
      @media screen and (min-width: 64em) and (min-width: 40em) {
        .site-header__menu > .menu > .menu-item.megamenu:hover > .sub-menu > .menu-item.product-column {
          padding-right: 0.9375rem;
          padding-left: 0.9375rem; } }

@media screen and (min-width: 64em) {
        .site-header__menu > .menu > .menu-item.megamenu:hover > .sub-menu > .menu-item.product-column > .sub-menu,
        .site-header__menu > .menu > .menu-item.megamenu:hover > .sub-menu > .menu-item.product-column > .sub-menu > .menu-item,
        .site-header__menu > .menu > .menu-item.megamenu:hover > .sub-menu > .menu-item.product-column > .sub-menu > .menu-item > .header-product {
          height: 100%; } }
      @media screen and (min-width: 64em) and (max-width: 74.9375em) {
        .site-header__menu > .menu > .menu-item.megamenu:hover > .sub-menu > .menu-item.product-column:last-child {
          display: none; } }

@media screen and (min-width: 64em) {
      .site-header__menu > .menu > .menu-item.megamenu:hover > .sub-menu > .menu-item > a {
        display: none; }
      .site-header__menu > .menu > .menu-item.megamenu:hover > .sub-menu > .menu-item > .sub-menu {
        display: block !important;
        list-style: none;
        margin: 0;
        text-align: left; }
        .site-header__menu > .menu > .menu-item.megamenu:hover > .sub-menu > .menu-item > .sub-menu > .menu-item > a {
          font-size: 22px;
          color: white;
          padding: 9px 0; } }

.site-header__mobile-product-wrapper {
  -ms-flex-negative: 1;
      flex-shrink: 1;
  margin: 20px 15px; }

.site-header__mobile-product:empty {
  display: none; }

@media screen and (max-width: 63.9375em) {
  .site-header__mobile-product {
    /* Permalink - use to edit and share this gradient: https://colorzilla.com/gradient-editor/#1e5799+0,7db9e8+100 */
    background: #EE1BB6;
    /* Old browsers */
    /* FF3.6-15 */
    /* Chrome10-25,Safari5.1-6 */
    background: linear-gradient(to right, #EE1BB6 0%, #7983FF 100%);
    /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#EE1BB6', endColorstr='#7983FF',GradientType=1 );
    /* IE6-9 */
    border-radius: 22px;
    padding: 20px 10px;
    list-style: none;
    max-width: 370px;
    margin: 0 auto; }
    .site-header__mobile-product .header-product__image-holder {
      max-width: 170px;
      width: 60%;
      margin-right: 20px; }
    .site-header__mobile-product .header-product__image {
      width: 100%;
      padding-top: 115%; }
    .site-header__mobile-product .header-product__info {
      position: relative;
      top: -4 px; }
    .site-header__mobile-product .header-product__price {
      font-size: 40px;
      font-weight: 500; }
    .site-header__mobile-product .header-product__add .add-button:before, .site-header__mobile-product .header-product__add .product-card-small__add .button:before, .product-card-small__add .site-header__mobile-product .header-product__add .button:before {
      width: 37px;
      height: 37px;
      font-size: 41px;
      line-height: 31px; }
    .site-header__mobile-product .header-product__add .add-button:after, .site-header__mobile-product .header-product__add .product-card-small__add .button:after, .product-card-small__add .site-header__mobile-product .header-product__add .button:after {
      font-size: 27px;
      font-weight: 500; } }

.footer-section__social.site-header__mobile-social {
  margin-top: 20px;
  margin-bottom: 0px;
  -ms-flex-negative: 1;
      flex-shrink: 1;
  -webkit-box-flex: 0;
      -ms-flex: none;
          flex: none; }
  @media screen and (min-width: 64em) {
    .footer-section__social.site-header__mobile-social {
      display: none; } }

.site-header__mobile-copyright {
  font-size: 17px;
  line-height: 2.59;
  text-align: center;
  color: rgba(255, 255, 255, 0.5);
  margin-bottom: 20px;
  -ms-flex-negative: 1;
      flex-shrink: 1; }
  @media screen and (min-width: 64em) {
    .site-header__mobile-copyright {
      display: none; } }

.site-header__user-menu .menu {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding-left: 10px; }
  .site-header__user-menu .menu > li > a {
    font-size: 22px;
    font-weight: 500;
    color: white;
    padding: 0 0.7rem;
    margin-top: 13px;
    position: relative;
    height: 107px;
    line-height: 100px; }
    @media screen and (min-width: 64em) {
      .site-header--light:not(.submenu-open) .site-header__user-menu .menu > li > a {
        color: #2C2934; } }
    @media screen and (max-width: 63.9375em) {
      .site-header__user-menu .menu > li > a {
        margin: 0px;
        height: 67px;
        line-height: 67px;
        font-size: 20px; } }

.menu__account-item a span {
  display: inline-block;
  vertical-align: middle;
  position: relative;
  width: 40px;
  height: 40px;
  border: 1px solid #d3dee3;
  border-radius: 1000px;
  line-height: 42px;
  text-align: center; }
  .menu__account-item a span:before {
    /* use !important to prevent issues with browser extensions that change fonts */
    font-family: 'icomoon' !important;
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    /* Better Font Rendering =========== */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    content: "";
    font-size: 20px;
    color: #d3dee3; }

.site-header__cart {
  position: relative;
  line-height: initial;
  display: inline-block;
  vertical-align: middle; }
  .site-header__cart span {
    display: block;
    width: 24px;
    height: 24px;
    background-color: #ee1bb7;
    border-radius: 120px;
    font-size: 15px;
    font-weight: 500;
    color: white;
    text-align: center;
    line-height: 23px;
    position: absolute;
    top: 2px;
    right: -12px; }
    @media screen and (max-width: 63.9375em) {
      .site-header__cart span {
        font-size: 13px;
        width: 20px;
        height: 20px;
        line-height: 20px;
        right: -8px; } }
  .site-header__cart:before {
    /* use !important to prevent issues with browser extensions that change fonts */
    font-family: 'icomoon' !important;
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    /* Better Font Rendering =========== */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    content: "";
    font-size: 36px;
    color: #d3dee3; }
    @media screen and (max-width: 63.9375em) {
      .site-header__cart:before {
        font-size: 30px; } }

.header-title {
  background-size: cover;
  background-position: center; }
  .header-title:not(.header-title__image) {
    max-width: 85rem;
    margin-right: auto;
    margin-left: auto;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-flow: row wrap;
        flex-flow: row wrap; }
  .header-title:not(.header-title__image) .header-title__title {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    max-width: 100%;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    max-width: 100%;
    font-size: 58px;
    line-height: 1.25;
    font-weight: 800;
    letter-spacing: -0.5px;
    color: #2C2934;
    text-align: left;
    width: 100%;
    margin-top: 60px;
    margin-bottom: 0px; }
    @media print, screen and (min-width: 40em) {
      .header-title:not(.header-title__image) .header-title__title {
        padding-right: 0.9375rem;
        padding-left: 0.9375rem; } }
    @media screen and (max-width: 63.9375em) {
      .header-title:not(.header-title__image) .header-title__title {
        font-size: 50px;
        line-height: 0.55em; } }
    @media screen and (max-width: 39.9375em) {
      .header-title:not(.header-title__image) .header-title__title {
        font-size: 40px;
        line-height: 0.45em; } }
  .header-title.header-title__image {
    overflow: hidden; }
  .header-title.header-title__image .header-title__title {
    position: absolute;
    bottom: 0;
    left: 5%;
    font-size: 180px;
    font-weight: 800;
    line-height: 0.6em;
    letter-spacing: -0.5px;
    color: #ffffff;
    white-space: nowrap; }
    @media screen and (max-width: 74.9375em) {
      .header-title.header-title__image .header-title__title {
        font-size: 150px; } }
    @media screen and (max-width: 63.9375em) {
      .header-title.header-title__image .header-title__title {
        font-size: 100px;
        line-height: 0.55em; } }
    @media screen and (max-width: 39.9375em) {
      .header-title.header-title__image .header-title__title {
        font-size: 70px;
        line-height: 0.45em; } }

.header-title__container {
  max-width: 90rem;
  margin-right: auto;
  margin-left: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-flow: row wrap;
      flex-flow: row wrap;
  position: relative; }
  .header-title__image .header-title__container {
    height: 370px; }
    @media screen and (max-width: 74.9375em) {
      .header-title__image .header-title__container {
        height: 330px; } }
    @media screen and (max-width: 63.9375em) {
      .header-title__image .header-title__container {
        height: 290px; } }
    @media screen and (max-width: 39.9375em) {
      .header-title__image .header-title__container {
        height: 250px; } }

.section > *:first-child {
  padding-top: 50px; }
  .section--subtitle.section > *:first-child {
    padding-top: 20px; }

.section > *:last-child {
  padding-bottom: 50px; }
  .section--subtitle.section > *:last-child {
    padding-bottom: 0px; }

.section.section--border-top > *:first-child {
  border-top: 1px solid #c3cad7; }

.section.section--border-bottom > *:last-child {
  border-bottom: 1px solid #c3cad7; }

.section.section--border-full-top {
  border-top: 1px solid #c3cad7; }

.section.section--border-full-bottom {
  border-bottom: 1px solid #c3cad7; }

.section.section--offset-large {
  margin-top: -150px; }

.section.section--dark {
  background: #2C2934; }

.section.section--light {
  background: #e8e8e8; }

.section.section--lighter {
  background: #f5f8fa; }

.section.section--compact > *:first-child {
  padding-top: 25px; }

.section.section--compact > *:last-child {
  padding-bottom: 25px; }

.section.section--compact + .section--compact > *:first-child {
  padding-top: 0px; }

.section__header {
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column; }

.section__header, .section__options, .section__body {
  max-width: 75rem;
  margin-right: auto;
  margin-left: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-flow: row wrap;
      flex-flow: row wrap; }
  .section--full .section__header, .section--full .section__options, .section--full .section__body {
    max-width: initial; }
  .section--narrow .section__header, .section--narrow .section__options, .section--narrow .section__body {
    max-width: 68.75rem;
    margin-right: auto;
    margin-left: auto;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-flow: row wrap;
        flex-flow: row wrap; }
  .section--wide .section__header, .section--wide .section__options, .section--wide .section__body {
    max-width: 85rem;
    margin-right: auto;
    margin-left: auto;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-flow: row wrap;
        flex-flow: row wrap; }
  .section--wider .section__header, .section--wider .section__options, .section--wider .section__body {
    max-width: 90rem;
    margin-right: auto;
    margin-left: auto;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-flow: row wrap;
        flex-flow: row wrap; }

.section__title {
  font-size: 58px;
  font-weight: 800;
  letter-spacing: -0.5px;
  text-align: center;
  color: #2c2934;
  margin-bottom: 25px;
  width: 100%; }
  .section--compact .section__title {
    text-align: left;
    font-size: 28px;
    font-weight: bold;
    line-height: 1;
    letter-spacing: -0.5px;
    margin-bottom: 0px;
    margin-left: 20px; }
  .section--dark .section__title {
    color: white; }
  @media screen and (max-width: 63.9375em) {
    .section__title {
      font-size: 50px; } }
  @media screen and (max-width: 39.9375em) {
    .section__title {
      font-size: 36px; } }

.section__subtitle {
  font-size: 22px;
  line-height: 1.64;
  text-align: center;
  color: rgba(8, 19, 31, 0.5);
  margin-bottom: 85px;
  width: 100%; }
  .section--subtitle .section__subtitle {
    margin-bottom: 10px; }
  .section--dark .section__subtitle {
    color: rgba(255, 255, 255, 0.5); }
  .section--narrow-subtitle .section__subtitle {
    width: 660px;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto; }
  @media screen and (max-width: 63.9375em) {
    .section__subtitle {
      font-size: 20px; } }
  @media screen and (max-width: 39.9375em) {
    .section__subtitle {
      font-size: 18px; } }

.section__options {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  margin-bottom: 33px; }

.section__option {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  margin: 5px 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; }
  @media print, screen and (min-width: 40em) {
    .section__option {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }
  .section__option label {
    font-size: 22px;
    font-weight: 500;
    letter-spacing: -0.5px;
    color: #08131f;
    margin-right: 25px; }
  @media screen and (max-width: 63.9375em) {
    .section__option {
      width: 100%; }
      .section__option label {
        width: 90px; }
      .section__option label + * {
        -webkit-box-flex: 1;
            -ms-flex-positive: 1;
                flex-grow: 1; }
      .section__option .chosen-container {
        width: 100% !important; } }

.section--narrow-col.section--col-3 .section__body {
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between; }

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

.section--reverse .section__body {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse; }

.section__column-page-content {
  width: 100%; }

.section__column .woocommerce {
  width: 100%; }

.section--col-1 > .section__body > .section__column, .woocommerce.columns-1 > .section__column {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
  max-width: 100%;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  max-width: 100%;
  margin-top: 0px; }
  @media print, screen and (min-width: 40em) {
    .section--col-1 > .section__body > .section__column, .woocommerce.columns-1 > .section__column {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }
  .section--col-1 > .section__body > .section__column:nth-child(1) ~ .section__column, .woocommerce.columns-1 > .section__column:nth-child(1) ~ .section__column {
    margin-top: 70px; }
    @media screen and (max-width: 63.9375em) {
      .upsells.section--col-1 > .section__body > .section__column:nth-child(1) ~ .section__column, .woocommerce.columns-1 > .section__column:nth-child(1) ~ .section__column {
        margin-top: 30px; } }

.section--col-2 > .section__body > .section__column, .woocommerce.columns-2 > .section__column {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 0;
      -ms-flex: 0 0 50%;
          flex: 0 0 50%;
  max-width: 50%;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  max-width: 50%;
  margin-top: 0px; }
  @media print, screen and (min-width: 40em) {
    .section--col-2 > .section__body > .section__column, .woocommerce.columns-2 > .section__column {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }
  .section--col-2 > .section__body > .section__column:nth-child(2) ~ .section__column, .woocommerce.columns-2 > .section__column:nth-child(2) ~ .section__column {
    margin-top: 70px; }
    @media screen and (max-width: 63.9375em) {
      .upsells.section--col-2 > .section__body > .section__column:nth-child(2) ~ .section__column, .woocommerce.columns-2 > .section__column:nth-child(2) ~ .section__column {
        margin-top: 30px; } }
  @media screen and (max-width: 39.9375em) {
    .section--col-2 > .section__body > .section__column, .woocommerce.columns-2 > .section__column {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 100%;
              flex: 0 0 100%;
      max-width: 100%;
      padding-right: 0.625rem;
      padding-left: 0.625rem;
      max-width: 100%;
      margin-top: 0px; } }
  @media screen and (max-width: 39.9375em) and (min-width: 40em) {
    .section--col-2 > .section__body > .section__column, .woocommerce.columns-2 > .section__column {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }
  @media screen and (max-width: 39.9375em) {
      .section--col-2 > .section__body > .section__column:nth-child(1) ~ .section__column, .woocommerce.columns-2 > .section__column:nth-child(1) ~ .section__column {
        margin-top: 70px; } }
    @media screen and (max-width: 39.9375em) and (max-width: 63.9375em) {
      .upsells.section--col-2 > .section__body > .section__column:nth-child(1) ~ .section__column, .woocommerce.columns-2 > .section__column:nth-child(1) ~ .section__column {
        margin-top: 30px; } }

.section--col-4 > .section__body > .section__column, .woocommerce.columns-4 > .section__column {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 0;
      -ms-flex: 0 0 25%;
          flex: 0 0 25%;
  max-width: 25%;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  max-width: 25%;
  margin-top: 0px; }
  @media print, screen and (min-width: 40em) {
    .section--col-4 > .section__body > .section__column, .woocommerce.columns-4 > .section__column {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }
  .section--col-4 > .section__body > .section__column:nth-child(4) ~ .section__column, .woocommerce.columns-4 > .section__column:nth-child(4) ~ .section__column {
    margin-top: 70px; }
    @media screen and (max-width: 63.9375em) {
      .upsells.section--col-4 > .section__body > .section__column:nth-child(4) ~ .section__column, .woocommerce.columns-4 > .section__column:nth-child(4) ~ .section__column {
        margin-top: 30px; } }
  @media screen and (max-width: 63.9375em) {
    .section--col-4 > .section__body > .section__column, .woocommerce.columns-4 > .section__column {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 50%;
              flex: 0 0 50%;
      max-width: 50%;
      padding-right: 0.625rem;
      padding-left: 0.625rem;
      max-width: 50%;
      margin-top: 0px; } }
  @media screen and (max-width: 63.9375em) and (min-width: 40em) {
    .section--col-4 > .section__body > .section__column, .woocommerce.columns-4 > .section__column {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }
  @media screen and (max-width: 63.9375em) {
      .section--col-4 > .section__body > .section__column:nth-child(2) ~ .section__column, .woocommerce.columns-4 > .section__column:nth-child(2) ~ .section__column {
        margin-top: 70px; } }
    @media screen and (max-width: 63.9375em) and (max-width: 63.9375em) {
      .upsells.section--col-4 > .section__body > .section__column:nth-child(2) ~ .section__column, .woocommerce.columns-4 > .section__column:nth-child(2) ~ .section__column {
        margin-top: 30px; } }
  @media screen and (max-width: 39.9375em) {
    .section--col-4 > .section__body > .section__column, .woocommerce.columns-4 > .section__column {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 100%;
              flex: 0 0 100%;
      max-width: 100%;
      padding-right: 0.625rem;
      padding-left: 0.625rem;
      max-width: 100%;
      margin-top: 0px; } }
  @media screen and (max-width: 39.9375em) and (min-width: 40em) {
    .section--col-4 > .section__body > .section__column, .woocommerce.columns-4 > .section__column {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }
  @media screen and (max-width: 39.9375em) {
      .section--col-4 > .section__body > .section__column:nth-child(1) ~ .section__column, .woocommerce.columns-4 > .section__column:nth-child(1) ~ .section__column {
        margin-top: 70px; } }
    @media screen and (max-width: 39.9375em) and (max-width: 63.9375em) {
      .upsells.section--col-4 > .section__body > .section__column:nth-child(1) ~ .section__column, .woocommerce.columns-4 > .section__column:nth-child(1) ~ .section__column {
        margin-top: 30px; } }

.section--col-3 > .section__body > .section__column, .woocommerce.columns-3 > .section__column {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 0;
      -ms-flex: 0 0 33.33333%;
          flex: 0 0 33.33333%;
  max-width: 33.33333%;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  max-width: 33.33333%;
  margin-top: 0px; }
  @media print, screen and (min-width: 40em) {
    .section--col-3 > .section__body > .section__column, .woocommerce.columns-3 > .section__column {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }
  .section--col-3 > .section__body > .section__column:nth-child(3) ~ .section__column, .woocommerce.columns-3 > .section__column:nth-child(3) ~ .section__column {
    margin-top: 70px; }
    @media screen and (max-width: 63.9375em) {
      .upsells.section--col-3 > .section__body > .section__column:nth-child(3) ~ .section__column, .woocommerce.columns-3 > .section__column:nth-child(3) ~ .section__column {
        margin-top: 30px; } }
  .section--col-3 > .section__body > .section__column.section__column--2x, .woocommerce.columns-3 > .section__column.section__column--2x {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 66.66667%;
            flex: 0 0 66.66667%;
    max-width: 66.66667%;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    max-width: 66.66667%; }
    @media print, screen and (min-width: 40em) {
      .section--col-3 > .section__body > .section__column.section__column--2x, .woocommerce.columns-3 > .section__column.section__column--2x {
        padding-right: 0.9375rem;
        padding-left: 0.9375rem; } }

.section--narrow-col.section--col-3 > .section__body > .section__column {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 30%;
          flex: 0 0 30%;
  max-width: 30%;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  max-width: 30%;
  margin-top: 0px; }
  @media print, screen and (min-width: 40em) {
    .section--narrow-col.section--col-3 > .section__body > .section__column {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }
  .section--narrow-col.section--col-3 > .section__body > .section__column:nth-child(3) ~ .section__column {
    margin-top: 70px; }
    @media screen and (max-width: 63.9375em) {
      .upsells.section--narrow-col.section--col-3 > .section__body > .section__column:nth-child(3) ~ .section__column {
        margin-top: 30px; } }

@media screen and (max-width: 63.9375em) {
  .section--col-3 > .section__body .section__column, .woocommerce.columns-3 > .section__column {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 50%;
            flex: 0 0 50%;
    max-width: 50%;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    max-width: 50%;
    margin-top: 0px; } }
  @media screen and (max-width: 63.9375em) and (min-width: 40em) {
    .section--col-3 > .section__body .section__column, .woocommerce.columns-3 > .section__column {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }

@media screen and (max-width: 63.9375em) {
    .section--col-3 > .section__body .section__column:nth-child(2) ~ .section__column, .woocommerce.columns-3 > .section__column:nth-child(2) ~ .section__column {
      margin-top: 70px; } }
    @media screen and (max-width: 63.9375em) and (max-width: 63.9375em) {
      .upsells.section--col-3 > .section__body .section__column:nth-child(2) ~ .section__column, .woocommerce.columns-3 > .section__column:nth-child(2) ~ .section__column {
        margin-top: 30px; } }

@media screen and (max-width: 63.9375em) {
    .section--col-3 > .section__body .section__column.section__column--2x, .woocommerce.columns-3 > .section__column.section__column--2x {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 100%;
              flex: 0 0 100%;
      max-width: 100%;
      padding-right: 0.625rem;
      padding-left: 0.625rem;
      max-width: 100%; } }
    @media screen and (max-width: 63.9375em) and (min-width: 40em) {
      .section--col-3 > .section__body .section__column.section__column--2x, .woocommerce.columns-3 > .section__column.section__column--2x {
        padding-right: 0.9375rem;
        padding-left: 0.9375rem; } }

@media screen and (max-width: 63.9375em) {
  .section--narrow-col.section--col-3 > .section__body > .section__column {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 50%;
            flex: 0 0 50%;
    max-width: 50%;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    max-width: 50%;
    margin-top: 0px; } }
  @media screen and (max-width: 63.9375em) and (min-width: 40em) {
    .section--narrow-col.section--col-3 > .section__body > .section__column {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }

@media screen and (max-width: 63.9375em) {
    .section--narrow-col.section--col-3 > .section__body > .section__column:nth-child(2) ~ .section__column {
      margin-top: 70px; } }
    @media screen and (max-width: 63.9375em) and (max-width: 63.9375em) {
      .upsells.section--narrow-col.section--col-3 > .section__body > .section__column:nth-child(2) ~ .section__column {
        margin-top: 30px; } }

@media screen and (max-width: 39.9375em) {
  .section--col-3 > .section__body > .section__column, .woocommerce.columns-3 > .section__column {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    max-width: 100%;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    max-width: 100%;
    margin-top: 0px; } }
  @media screen and (max-width: 39.9375em) and (min-width: 40em) {
    .section--col-3 > .section__body > .section__column, .woocommerce.columns-3 > .section__column {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }

@media screen and (max-width: 39.9375em) {
    .section--col-3 > .section__body > .section__column:nth-child(1) ~ .section__column, .woocommerce.columns-3 > .section__column:nth-child(1) ~ .section__column {
      margin-top: 70px; } }
    @media screen and (max-width: 39.9375em) and (max-width: 63.9375em) {
      .upsells.section--col-3 > .section__body > .section__column:nth-child(1) ~ .section__column, .woocommerce.columns-3 > .section__column:nth-child(1) ~ .section__column {
        margin-top: 30px; } }

@media screen and (max-width: 39.9375em) {
  .section--narrow-col.section--col-3 > .section__body > .section__column {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    max-width: 100%;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    max-width: 100%;
    margin-top: 0px; } }
  @media screen and (max-width: 39.9375em) and (min-width: 40em) {
    .section--narrow-col.section--col-3 > .section__body > .section__column {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }

@media screen and (max-width: 39.9375em) {
    .section--narrow-col.section--col-3 > .section__body > .section__column:nth-child(1) ~ .section__column {
      margin-top: 70px; } }
    @media screen and (max-width: 39.9375em) and (max-width: 63.9375em) {
      .upsells.section--narrow-col.section--col-3 > .section__body > .section__column:nth-child(1) ~ .section__column {
        margin-top: 30px; } }

.woocommerce.columns-3 {
  max-width: 90rem;
  margin-right: auto;
  margin-left: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-flow: row wrap;
      flex-flow: row wrap; }

.section__column-image {
  margin-bottom: 13px; }

.section__column-title {
  font-size: 24px;
  font-weight: bold;
  letter-spacing: -0.5px;
  color: #08131f; }
  .section--dark .section__column-title {
    color: white; }

.section__column-content {
  font-size: 20px;
  line-height: 1.7;
  color: rgba(8, 19, 31, 0.5); }
  .section--dark .section__column-content {
    color: rgba(255, 255, 255, 0.5); }

.footer-section {
  background: #2C2934;
  padding: 60px 0; }
  @media screen and (max-width: 39.9375em) {
    .footer-section {
      padding-top: 0px; } }

.footer-section__menus > .menu {
  max-width: 90rem;
  margin-right: auto;
  margin-left: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-flow: row wrap;
      flex-flow: row wrap;
  -webkit-box-flex: 1;
      -ms-flex: 1 1 0px;
          flex: 1 1 0px;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  min-width: 0;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  position: relative;
  right: -2%; }
  @media print, screen and (min-width: 40em) {
    .footer-section__menus > .menu {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }
  @media screen and (max-width: 74.9375em) {
    .footer-section__menus > .menu {
      right: 0px; } }
  @media screen and (max-width: 39.9375em) {
    .footer-section__menus > .menu {
      margin-bottom: 20px;
      padding: 0px; } }
  .footer-section__menus > .menu > .menu-item {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 19.04762%;
            flex: 0 0 19.04762%;
    max-width: 19.04762%;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    max-width: 19.04762%; }
    @media print, screen and (min-width: 40em) {
      .footer-section__menus > .menu > .menu-item {
        padding-right: 0.9375rem;
        padding-left: 0.9375rem; } }
    @media screen and (max-width: 74.9375em) {
      .footer-section__menus > .menu > .menu-item {
        -webkit-box-flex: 0;
            -ms-flex: 0 0 25%;
                flex: 0 0 25%;
        max-width: 25%;
        padding-right: 0.625rem;
        padding-left: 0.625rem;
        max-width: 25%; } }
  @media screen and (max-width: 74.9375em) and (min-width: 40em) {
    .footer-section__menus > .menu > .menu-item {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }
    @media screen and (max-width: 50em) {
      .footer-section__menus > .menu > .menu-item {
        -webkit-box-flex: 0;
            -ms-flex: 0 0 50%;
                flex: 0 0 50%;
        max-width: 50%;
        padding-right: 0.625rem;
        padding-left: 0.625rem;
        max-width: 50%; } }
  @media screen and (max-width: 50em) and (min-width: 40em) {
    .footer-section__menus > .menu > .menu-item {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }
    @media screen and (max-width: 39.9375em) {
      .footer-section__menus > .menu > .menu-item {
        -webkit-box-flex: 0;
            -ms-flex: 0 0 100%;
                flex: 0 0 100%;
        max-width: 100%;
        padding-right: 0;
        padding-left: 0;
        max-width: 100%;
        margin-left: -10px;
        margin-right: -10px; }
        .footer-section__menus > .menu > .menu-item.menu-item-has-children > a {
          position: relative; }
          .footer-section__menus > .menu > .menu-item.menu-item-has-children > a:before {
            /* use !important to prevent issues with browser extensions that change fonts */
            font-family: 'icomoon' !important;
            speak: none;
            font-style: normal;
            font-weight: normal;
            font-variant: normal;
            text-transform: none;
            line-height: 1;
            /* Better Font Rendering =========== */
            -webkit-font-smoothing: antialiased;
            -moz-osx-font-smoothing: grayscale;
            content: "";
            position: absolute;
            font-size: 40px;
            right: 20px;
            top: 50%;
            -webkit-transform: translateY(-50%) scaleY(-1);
                    transform: translateY(-50%) scaleY(-1);
            color: rgba(255, 255, 255, 0.5);
            transition: all 0.3s; }
        .footer-section__menus > .menu > .menu-item.sub-menu-open.menu-item-has-children > a:before {
          -webkit-transform: translateY(-50%);
                  transform: translateY(-50%);
          color: white; } }
    .footer-section__menus > .menu > .menu-item > a {
      font-size: 22px;
      font-weight: bold;
      line-height: 1.82;
      color: #ffffff;
      padding-bottom: 4px;
      outline: none; }
      @media screen and (max-width: 39.9375em) {
        .footer-section__menus > .menu > .menu-item > a {
          font-size: 25px;
          font-weight: bold;
          padding: 11px;
          border-bottom: 1px solid #3D3A43; } }
    .footer-section__menus > .menu > .menu-item > .sub-menu {
      list-style: none;
      margin: 0; }
      @media screen and (min-width: 40em) {
        .footer-section__menus > .menu > .menu-item > .sub-menu {
          display: block !important; } }
      @media screen and (max-width: 39.9375em) {
        .footer-section__menus > .menu > .menu-item > .sub-menu {
          max-width: 90rem;
          margin-right: auto;
          margin-left: auto;
          display: -webkit-box;
          display: -ms-flexbox;
          display: flex;
          -ms-flex-flow: row wrap;
              flex-flow: row wrap;
          border-bottom: 1px solid #3D3A43;
          padding-top: 10px;
          padding-bottom: 10px;
          position: relative; }
          .footer-section__menus > .menu > .menu-item > .sub-menu:before {
            /* Permalink - use to edit and share this gradient: https://colorzilla.com/gradient-editor/#1e5799+0,7db9e8+100 */
            background: #EE1BB6;
            /* Old browsers */
            /* FF3.6-15 */
            /* Chrome10-25,Safari5.1-6 */
            background: linear-gradient(to right, #EE1BB6 0%, #7983FF 100%);
            /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
            filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#EE1BB6', endColorstr='#7983FF',GradientType=1 );
            /* IE6-9 */
            content: '';
            height: 2px;
            position: absolute;
            top: 0;
            left: 0;
            right: 0; } }
      @media screen and (max-width: 39.9375em) {
        .footer-section__menus > .menu > .menu-item > .sub-menu > .menu-item {
          -webkit-box-flex: 0;
              -ms-flex: 0 0 50%;
                  flex: 0 0 50%;
          max-width: 50%;
          padding-right: 0.625rem;
          padding-left: 0.625rem;
          max-width: 50%; } }
  @media screen and (max-width: 39.9375em) and (min-width: 40em) {
    .footer-section__menus > .menu > .menu-item > .sub-menu > .menu-item {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }
      .footer-section__menus > .menu > .menu-item > .sub-menu > .menu-item > a {
        opacity: 0.5;
        font-size: 20px;
        line-height: 1;
        color: #ffffff;
        padding-top: 10px;
        padding-bottom: 10px; }
        @media screen and (max-width: 39.9375em) {
          .footer-section__menus > .menu > .menu-item > .sub-menu > .menu-item > a {
            padding-top: 20px;
            padding-bottom: 20px;
            white-space: normal;
            line-height: 1.2;
            position: relative; } }

.footer-section__social {
  max-width: 90rem;
  margin-right: auto;
  margin-left: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-flow: row wrap;
      flex-flow: row wrap;
  -webkit-box-flex: 1;
      -ms-flex: 1 1 0px;
          flex: 1 1 0px;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  min-width: 0;
  margin-top: 10px;
  margin-bottom: 35px; }
  @media print, screen and (min-width: 40em) {
    .footer-section__social {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }
  @media screen and (max-width: 39.9375em) {
    .footer-section__social {
      margin-bottom: 20px; } }
  .footer-section__social ul {
    list-style: none;
    margin: 0;
    text-align: center;
    width: 100%; }
    .footer-section__social ul li {
      display: inline-block;
      padding: 0 13px; }
      .footer-section__social ul li a {
        display: inline-block;
        color: #7983FF;
        font-size: 22px;
        padding: 10px; }

.footer-section__social-facebook a:before {
  /* use !important to prevent issues with browser extensions that change fonts */
  font-family: 'icomoon' !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: ""; }

.footer-section__social-twitter a:before {
  /* use !important to prevent issues with browser extensions that change fonts */
  font-family: 'icomoon' !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: ""; }

.footer-section__social-instagram a:before {
  /* use !important to prevent issues with browser extensions that change fonts */
  font-family: 'icomoon' !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: ""; }

.footer-section__social-pinterest a:before {
  /* use !important to prevent issues with browser extensions that change fonts */
  font-family: 'icomoon' !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: ""; }

.footer-section__copyright-row {
  max-width: 90rem;
  margin-right: auto;
  margin-left: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-flow: row wrap;
      flex-flow: row wrap;
  -webkit-box-flex: 1;
      -ms-flex: 1 1 0px;
          flex: 1 1 0px;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  min-width: 0; }
  @media print, screen and (min-width: 40em) {
    .footer-section__copyright-row {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }

.footer-section__copyright {
  width: 900px;
  max-width: 100%;
  margin: 0 auto;
  text-align: center;
  opacity: 0.5;
  font-size: 16px;
  color: #ffffff; }
  @media screen and (max-width: 39.9375em) {
    .footer-section__copyright {
      font-size: 13px; } }

.brands-section > *:last-child {
  padding-bottom: 0px; }

.brands {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  height: 1000px;
  width: 100%; }
  @media screen and (min-width: 40em) {
    .brands {
      position: relative; }
      .brands:before {
        content: '';
        position: absolute;
        height: 90px;
        top: 0px;
        left: 0;
        right: 0;
        background-repeat: no-repeat;
        background-size: 100% 100%;
        -webkit-transform: scaleY(-1) scaleX(1) ;
                transform: scaleY(-1) scaleX(1) ;
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'  height='50' width='400' preserveAspectRatio='none'%3E\a           %3Cpolygon points='320,20 400,50 0,50' style='fill:%23e8e8e8;' /%3E\a         %3C/svg%3E"); } }
  @media screen and (max-width: 39.9375em) {
    .brands {
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
          -ms-flex-direction: column;
              flex-direction: column;
      height: auto;
      padding-bottom: 20px; } }

.brands__section {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column; }
  @media screen and (max-width: 39.9375em) {
    .brands__section {
      -webkit-box-flex: 1 !important;
          -ms-flex: 1 !important;
              flex: 1 !important;
      display: block; } }
  .brands__section > .brands__section {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row; }
    @media screen and (max-width: 39.9375em) {
      .brands__section > .brands__section {
        -webkit-box-flex: 1 !important;
            -ms-flex: 1 !important;
                flex: 1 !important; } }
    @media screen and (max-width: 74.9375em) {
      .brands__section > .brands__section {
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column; } }
    .brands__section > .brands__section > .brands__section {
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
          -ms-flex-direction: column;
              flex-direction: column; }
      @media screen and (max-width: 39.9375em) {
        .brands__section > .brands__section > .brands__section {
          -webkit-box-flex: 1 !important;
              -ms-flex: 1 !important;
                  flex: 1 !important; } }

.brands__item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  padding-left: 20px;
  padding-right: 20px;
  background-size: cover;
  background-position: center; }
  @media screen and (max-width: 39.9375em) {
    .brands__item {
      margin: 10px 20px;
      padding-top: 100px;
      border-radius: 7px;
      -webkit-box-flex: 1 !important;
          -ms-flex: 1 !important;
              flex: 1 !important; } }

.brands__item-content {
  text-align: center;
  padding-bottom: 50px;
  padding-top: 50px; }
  @media screen and (max-width: 39.9375em) {
    .brands__item-content {
      padding-bottom: 30px; } }
  .brands__item-content .button {
    margin-bottom: 5px;
    margin-right: 5px;
    background: white;
    color: #2C2934; }
    .brands__item-content .button:before {
      content: "";
      position: absolute;
      z-index: 2;
      top: 0px;
      left: 0px;
      right: 0px;
      bottom: 0px;
      border: 7px solid #EE1BB6;
      transition: all 0.25s ease-out, color 0.25s ease-out; }
    .brands__item-content .button:after {
      content: "";
      position: absolute;
      top: 0px;
      left: 0px;
      right: 0px;
      bottom: 0px;
      border: 2px solid white;
      -webkit-transform: translate(4px, 4px);
              transform: translate(4px, 4px); }
    .brands__item-content .button:before {
      border-color: white !important; }
    .brands__item-content .button:active, .brands__item-content .button:focus, .brands__item-content .button:hover {
      background: #e6e6e6;
      color: #2C2934; }
      .brands__item-content .button:active:before, .brands__item-content .button:focus:before, .brands__item-content .button:hover:before {
        border-color: #e6e6e6 !important; }

.brands__item-title {
  font-size: 51px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: -0.5px;
  color: #ffffff;
  margin-bottom: 20px; }
  @media screen and (max-width: 39.9375em) {
    .brands__item-title {
      font-size: 35px;
      font-weight: bold;
      line-height: 1.83;
      text-align: center;
      color: #ffffff; } }

body.woocommerce-checkout .section__column {
  max-width: 600px !important;
  margin: 0 auto; }

body.woocommerce-checkout .form-row > label {
  font-size: 14px;
  font-weight: 500;
  color: #2c2934; }

body.woocommerce-checkout .form-row abbr, body.woocommerce-checkout .form-row abbr[title] {
  text-decoration: none;
  cursor: unset;
  border-bottom: none; }

body.woocommerce-checkout .woocommerce-form-coupon-toggle {
  margin-bottom: 10px; }
  body.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info {
    display: block;
    padding: 10px;
    color: white; }
    body.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info a {
      color: white;
      text-decoration: underline; }

body.woocommerce-checkout .woocommerce-checkout-review-order-table dl.variation dt.variation-Model {
  display: none; }

body.woocommerce-checkout .woocommerce-form-coupon .form-row {
  text-align: right; }

body.woocommerce-checkout #order_review_heading, body.woocommerce-checkout .woocommerce-billing-fields > h3, body.woocommerce-checkout #order_review h3 {
  font-size: 28px;
  font-weight: bold;
  line-height: 1.5;
  letter-spacing: -0.5px;
  color: #08131f;
  margin-bottom: 30px;
  margin-top: 40px;
  margin-bottom: 10px; }

body.woocommerce-checkout .woocommerce-checkout-payment {
  margin-top: 20px; }

body.woocommerce-checkout .wc_payment_methods {
  list-style: none;
  margin-left: 0; }
  body.woocommerce-checkout .wc_payment_methods .payment_method_stripe > label {
    display: none; }

[type='text'], [type='password'], [type='date'], [type='datetime'], [type='datetime-local'], [type='month'], [type='week'], [type='email'], [type='number'], [type='search'], [type='tel'], [type='time'], [type='url'], [type='color'],
textarea {
  min-height: 54px;
  border-radius: 4px;
  border: solid 1px #d3dee3;
  background-color: #ffffff;
  outline: none;
  box-shadow: none;
  padding: 5px 15px;
  font-size: 20px;
  line-height: 1.6;
  letter-spacing: 0.22px;
  color: #2c2934;
  margin-bottom: 0px; }

/* Select2 */
.select2-container--default .select2-selection--single .select2-selection__arrow {
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%); }

.select2-container--default .select2-selection--single {
  min-height: 54px;
  border-radius: 4px;
  border: solid 1px #d3dee3;
  background-color: #ffffff;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  outline: none;
  box-shadow: none; }
  .select2-container--default .select2-selection--single:focus {
    border-radius: 4px;
    border: solid 1px #d3dee3; }

.select2-container--default .select2-selection--single .select2-selection__rendered {
  font-size: 20px;
  line-height: 1.6;
  letter-spacing: 0.22px;
  color: rgba(8, 19, 31, 0.3);
  margin-bottom: 0px; }

.select2-dropdown {
  border-color: #d3dee3; }

.select2-container--default .select2-search--dropdown .select2-search__field {
  border-radius: 4px;
  border: solid 1px #d3dee3;
  background-color: #ffffff;
  outline: none;
  box-shadow: none;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.22px;
  color: rgba(8, 19, 31, 0.3); }

.squip-community > *:first-child {
  padding-top: 0px; }

.squip-community > *:last-child {
  padding-bottom: 0px; }

.squip-community__social {
  max-width: 90rem;
  margin-right: auto;
  margin-left: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-flow: row wrap;
      flex-flow: row wrap;
  max-width: initial;
  width: 100%; }

.squip-community__social-item {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 25%;
          flex: 0 0 25%;
  max-width: 25%;
  padding-right: 0;
  padding-left: 0;
  max-width: 25%;
  height: 35vw;
  min-height: 200px;
  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;
  background-size: cover;
  background-position: center; }
  @media screen and (max-width: 63.9375em) {
    .squip-community__social-item {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 50%;
              flex: 0 0 50%;
      max-width: 50%;
      padding-right: 0;
      padding-left: 0;
      max-width: 50%; } }

.squip-community__social-title {
  font-size: 39px;
  font-weight: 300;
  line-height: 1.64;
  text-align: center;
  color: #ffffff;
  margin-top: 50px; }
  .squip-community__social-item--fb .squip-community__social-title:before {
    /* use !important to prevent issues with browser extensions that change fonts */
    font-family: 'icomoon' !important;
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    /* Better Font Rendering =========== */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    content: ""; }
  .squip-community__social-item--tw .squip-community__social-title:before {
    /* use !important to prevent issues with browser extensions that change fonts */
    font-family: 'icomoon' !important;
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    /* Better Font Rendering =========== */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    content: ""; }
  .squip-community__social-item--in .squip-community__social-title:before {
    /* use !important to prevent issues with browser extensions that change fonts */
    font-family: 'icomoon' !important;
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    /* Better Font Rendering =========== */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    content: ""; }
  .squip-community__social-item--pi .squip-community__social-title:before {
    /* use !important to prevent issues with browser extensions that change fonts */
    font-family: 'icomoon' !important;
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    /* Better Font Rendering =========== */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    content: ""; }
  .squip-community__social-title:before {
    font-size: 100px;
    color: white;
    display: block;
    margin-bottom: 30px; }
  @media screen and (max-width: 63.9375em) {
    .squip-community__social-title {
      font-size: 25px;
      margin-top: 35px; }
      .squip-community__social-title:before {
        font-size: 70px; } }
  @media screen and (max-width: 39.9375em) {
    .squip-community__social-title:before {
      margin-bottom: 10px;
      font-size: 64px; } }

.hero {
  padding-bottom: 100px;
  padding-top: 50px;
  overflow: visible; }
  @media screen and (max-width: 39.9375em) {
    .hero {
      padding-top: 0px; } }

.hero__container {
  max-width: 90rem;
  margin-right: auto;
  margin-left: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-flow: row wrap;
      flex-flow: row wrap; }

@media screen and (max-width: 39.9375em) {
  .hero__dots {
    display: none; } }

.hero__carousel .owl-stage-outer {
  padding-top: 120px;
  margin-top: -120px; }
  @media screen and (max-width: 39.9375em) {
    .hero__carousel .owl-stage-outer {
      margin-top: -140px; } }

.hero__carousel .owl-item:nth-child(3) .owl-dots .owl-dot:nth-child(1) {
  background: #2C2934; }

.hero__carousel .owl-item:nth-child(4) .owl-dots .owl-dot:nth-child(2) {
  background: #2C2934; }

.hero__carousel .owl-item:nth-child(5) .owl-dots .owl-dot:nth-child(3) {
  background: #2C2934; }

.hero__carousel .owl-item:nth-child(6) .owl-dots .owl-dot:nth-child(4) {
  background: #2C2934; }

.hero__carousel .owl-item:nth-child(7) .owl-dots .owl-dot:nth-child(5) {
  background: #2C2934; }

.hero__carousel .owl-item:nth-child(8) .owl-dots .owl-dot:nth-child(6) {
  background: #2C2934; }

.hero__carousel .owl-item:nth-child(9) .owl-dots .owl-dot:nth-child(7) {
  background: #2C2934; }

.hero__carousel .owl-dots {
  margin-top: 15%;
  width: 530px;
  max-width: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; }
  .hero__carousel .owl-dots .owl-dot {
    height: 6px;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    background: rgba(44, 41, 52, 0.2);
    margin-right: 15px; }
    .hero__carousel .owl-dots .owl-dot.active {
      background: #2C2934; }

.hero__carousel > .owl-dots {
  margin-top: 0px;
  padding-left: 25px;
  padding-right: 10px;
  width: 100%; }
  @media screen and (min-width: 40em) {
    .hero__carousel > .owl-dots {
      display: none; } }

@media screen and (max-width: 39.9375em) {
  .hero__carousel .owl-nav {
    display: none; } }

.hero__carousel .owl-nav .owl-prev, .hero__carousel .owl-nav .owl-next {
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  position: absolute;
  top: 45%; }
  .hero__carousel .owl-nav .owl-prev.owl-prev, .hero__carousel .owl-nav .owl-next.owl-prev {
    left: 10px; }
    .hero__carousel .owl-nav .owl-prev.owl-prev:before, .hero__carousel .owl-nav .owl-next.owl-prev:before {
      display: inline-block;
      /* use !important to prevent issues with browser extensions that change fonts */
      font-family: 'icomoon' !important;
      speak: none;
      font-style: normal;
      font-weight: normal;
      font-variant: normal;
      text-transform: none;
      line-height: 1;
      /* Better Font Rendering =========== */
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      content: "";
      -webkit-transform: scaleX(-1);
              transform: scaleX(-1);
      color: #2c2934;
      font-size: 50px; }
  .hero__carousel .owl-nav .owl-prev.owl-next, .hero__carousel .owl-nav .owl-next.owl-next {
    right: 10px; }
    .hero__carousel .owl-nav .owl-prev.owl-next:before, .hero__carousel .owl-nav .owl-next.owl-next:before {
      /* use !important to prevent issues with browser extensions that change fonts */
      font-family: 'icomoon' !important;
      speak: none;
      font-style: normal;
      font-weight: normal;
      font-variant: normal;
      text-transform: none;
      line-height: 1;
      /* Better Font Rendering =========== */
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      content: "";
      color: #2c2934;
      font-size: 50px; }

.hero__item {
  max-width: 90rem;
  margin-right: auto;
  margin-left: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-flow: row wrap;
      flex-flow: row wrap; }
  @media screen and (max-width: 39.9375em) {
    .hero__item {
      -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; } }

.hero__image {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 50%;
          flex: 0 0 50%;
  max-width: 50%;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  max-width: 50%; }
  @media print, screen and (min-width: 40em) {
    .hero__image {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }
  @media screen and (max-width: 39.9375em) {
    .hero__image {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 100%;
              flex: 0 0 100%;
      max-width: 100%;
      padding-right: 0.625rem;
      padding-left: 0.625rem;
      max-width: 100%;
      margin-bottom: 40px; } }
  @media screen and (max-width: 39.9375em) and (min-width: 40em) {
    .hero__image {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }
  .hero__image img {
    margin-top: -10vw; }
    @media screen and (min-width: 75em) {
      .hero__image img {
        margin-top: -120px; } }
    @media screen and (max-width: 63.9375em) {
      .hero__image img {
        margin-top: -4vw; } }
    @media screen and (max-width: 39.9375em) {
      .hero__image img {
        margin-top: 0vw; } }

.hero__content {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 50%;
          flex: 0 0 50%;
  max-width: 50%;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  max-width: 50%;
  padding-bottom: 50px; }
  @media print, screen and (min-width: 40em) {
    .hero__content {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }
  @media screen and (max-width: 39.9375em) {
    .hero__content {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 100%;
              flex: 0 0 100%;
      max-width: 100%;
      padding-right: 0.625rem;
      padding-left: 0.625rem;
      max-width: 100%;
      width: 100%; } }
  @media screen and (max-width: 39.9375em) and (min-width: 40em) {
    .hero__content {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }

.hero__title {
  font-size: 60px;
  font-weight: 800;
  letter-spacing: -0.5px;
  color: #2C2934; }
  @media screen and (max-width: 63.9375em) {
    .hero__title {
      font-size: 40px; } }

.hero__subtitle {
  font-size: 22px;
  line-height: 1.64;
  letter-spacing: -0.5px;
  color: #EE1BB6;
  text-transform: uppercase;
  margin-bottom: 20px; }
  @media screen and (max-width: 63.9375em) {
    .hero__subtitle {
      font-size: 20px; } }

.hero__copy {
  width: 450px;
  max-width: 90%;
  font-size: 22px;
  line-height: 1.64;
  color: rgba(44, 41, 52, 0.5); }
  @media screen and (max-width: 63.9375em) {
    .hero__copy {
      font-size: 18px; } }
  .hero__copy .button {
    margin-top: 20px;
    margin-bottom: 5px;
    margin-right: 5px;
    margin-bottom: 5px;
    margin-right: 5px;
    background: #2C2934; }
    .hero__copy .button:before {
      content: "";
      position: absolute;
      z-index: 2;
      top: 0px;
      left: 0px;
      right: 0px;
      bottom: 0px;
      border: 7px solid #EE1BB6;
      transition: all 0.25s ease-out, color 0.25s ease-out; }
    .hero__copy .button:after {
      content: "";
      position: absolute;
      top: 0px;
      left: 0px;
      right: 0px;
      bottom: 0px;
      border: 2px solid white;
      -webkit-transform: translate(4px, 4px);
              transform: translate(4px, 4px); }
    .hero__copy .button:before {
      content: "";
      position: absolute;
      z-index: 2;
      top: 0px;
      left: 0px;
      right: 0px;
      bottom: 0px;
      border: 7px solid #EE1BB6;
      transition: all 0.25s ease-out, color 0.25s ease-out; }
    .hero__copy .button:after {
      content: "";
      position: absolute;
      top: 0px;
      left: 0px;
      right: 0px;
      bottom: 0px;
      border: 2px solid white;
      -webkit-transform: translate(4px, 4px);
              transform: translate(4px, 4px); }
    .hero__copy .button:after {
      border: 2px solid #7983FF;
      border-image-source: linear-gradient(90deg, #EE1BB6, #7983FF);
      border-image-slice: 1; }
    .hero__copy .button:before {
      border-color: #2C2934 !important; }
    .hero__copy .button:active, .hero__copy .button:focus, .hero__copy .button:hover {
      background: #443f51; }
      .hero__copy .button:active:before, .hero__copy .button:focus:before, .hero__copy .button:hover:before {
        border-color: #443f51 !important; }

.brand-hero {
  background-size: cover;
  background-position: center;
  padding-top: 70px;
  padding-bottom: 200px;
  position: relative; }
  .brand-hero:after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 250px;
    /* Permalink - use to edit and share this gradient: https://colorzilla.com/gradient-editor/#ffffff+0,ffffff+100&0+0,1+100 */
    /* FF3.6-15 */
    /* Chrome10-25,Safari5.1-6 */
    background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, white 100%);
    /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00ffffff', endColorstr='#ffffff',GradientType=0 );
    /* IE6-9 */ }

.brand-hero__container {
  max-width: 90rem;
  margin-right: auto;
  margin-left: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-flow: row wrap;
      flex-flow: row wrap;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between; }

.brand-hero__content {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  width: 420px;
  max-width: 100%;
  margin-top: 30px; }
  @media print, screen and (min-width: 40em) {
    .brand-hero__content {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }

.brand-hero__logo {
  margin-bottom: 50px;
  max-width: 210px; }

.brand-hero__title {
  font-size: 48px;
  font-weight: bold;
  line-height: 1.33;
  letter-spacing: -0.47px;
  color: white; }

.brand-hero__copy {
  font-size: 20px;
  line-height: 1.7;
  color: white;
  margin-bottom: 40px; }

.brand-hero__action {
  font-size: 20px;
  font-weight: 500;
  letter-spacing: -0.45px;
  color: #ffffff; }

.brand-hero__image {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 54.16667%;
          flex: 0 0 54.16667%;
  max-width: 54.16667%;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  max-width: 54.16667%;
  z-index: 5; }
  @media print, screen and (min-width: 40em) {
    .brand-hero__image {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }

.product-details {
  padding-top: 80px;
  padding-bottom: 100px;
  position: relative;
  /* Permalink - use to edit and share this gradient: https://colorzilla.com/gradient-editor/#2c2934+7,2c2934+27,6b5f77+100 */
  background: #2c2934;
  /* Old browsers */
  /* FF3.6-15 */
  /* Chrome10-25,Safari5.1-6 */
  background: linear-gradient(to bottom, #2C2934 7%, #2C2934 27%, #6b5f77 100%);
  /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#2C2934', endColorstr='#6b5f77',GradientType=0 );
  /* IE6-9 */
  position: relative; }
  .product-details:after {
    content: '';
    position: absolute;
    height: 100px;
    bottom: 0px;
    left: 0;
    right: 0;
    background-repeat: no-repeat;
    background-size: 100% 100%;
    -webkit-transform: scaleY(-1) scaleX(1) ;
            transform: scaleY(-1) scaleX(1) ;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'  height='50' width='400' preserveAspectRatio='none'%3E\a           %3Cpolygon points='280,0 0,0 0,50' style='fill:white;' /%3E\a           %3Cpolygon points='280,0 400,0 400,50' style='fill:white;' /%3E\a         %3C/svg%3E"); }
  @media screen and (max-width: 63.9375em) {
    .product-details {
      padding-top: 10px; } }
  .product-details.product-details--light {
    background: white !important; }
  .product-details.product-details--themed {
    padding-top: 280px;
    background: white; }
    .product-details.product-details--themed .product-details__container {
      z-index: 10;
      position: relative; }
    .product-details.product-details--themed:before {
      content: '';
      background-size: cover;
      background-position: center;
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      height: 600px; }
    .product-details.product-details--themed:after {
      content: '';
      /* Permalink - use to edit and share this gradient: https://colorzilla.com/gradient-editor/#ffffff+0,ffffff+100&0+0,1+100 */
      /* FF3.6-15 */
      /* Chrome10-25,Safari5.1-6 */
      background: linear-gradient(to bottom, white 0%, rgba(255, 255, 255, 0) 100%);
      /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
      filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#00ffffff',GradientType=0 );
      /* IE6-9 */
      position: absolute;
      top: 200px;
      left: 0;
      right: 0;
      height: 400px; }

.product-details__container {
  max-width: 90rem;
  margin-right: auto;
  margin-left: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-flow: row wrap;
      flex-flow: row wrap;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between; }
  .product-details__container .woocommerce-product-gallery {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 50%;
            flex: 0 0 50%;
    max-width: 50%;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    max-width: 50%;
    position: relative; }
    @media print, screen and (min-width: 40em) {
      .product-details__container .woocommerce-product-gallery {
        padding-right: 0.9375rem;
        padding-left: 0.9375rem; } }
    @media screen and (max-width: 63.9375em) {
      .product-details__container .woocommerce-product-gallery {
        -webkit-box-flex: 0;
            -ms-flex: 0 0 100%;
                flex: 0 0 100%;
        max-width: 100%;
        padding-right: 0.625rem;
        padding-left: 0.625rem;
        max-width: 100%; } }
  @media screen and (max-width: 63.9375em) and (min-width: 40em) {
    .product-details__container .woocommerce-product-gallery {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }
    .product-details__container .woocommerce-product-gallery .woocommerce-product-gallery__trigger {
      font-size: 0px;
      position: absolute;
      top: 10px;
      left: 25px;
      z-index: 6; }
      .product-details__container .woocommerce-product-gallery .woocommerce-product-gallery__trigger:before {
        /* use !important to prevent issues with browser extensions that change fonts */
        font-family: 'icomoon' !important;
        speak: none;
        font-style: normal;
        font-weight: normal;
        font-variant: normal;
        text-transform: none;
        line-height: 1;
        /* Better Font Rendering =========== */
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
        content: "";
        font-size: 26px;
        color: #2C2934; }
    .product-details__container .woocommerce-product-gallery .woocommerce-product-gallery__image {
      border-radius: 4px; }
      .product-details__container .woocommerce-product-gallery .woocommerce-product-gallery__image img {
        border-radius: 4px;
        min-width: 100%; }
    .product-details__container .woocommerce-product-gallery .flex-control-thumbs {
      max-width: 90rem;
      margin-right: auto;
      margin-left: auto;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -ms-flex-flow: row wrap;
          flex-flow: row wrap;
      list-style: none;
      margin-bottom: 20px;
      margin-top: 20px;
      position: relative; }
      .product-details__container .woocommerce-product-gallery .flex-control-thumbs .owl-nav button {
        position: absolute;
        top: 0;
        bottom: 0;
        width: 20px;
        height: 100%;
        background: rgba(0, 0, 0, 0.4);
        border-radius: 2px; }
        .product-details__container .woocommerce-product-gallery .flex-control-thumbs .owl-nav button:not(.disabled):hover {
          background: rgba(0, 0, 0, 0.6); }
        .product-details__container .woocommerce-product-gallery .flex-control-thumbs .owl-nav button.disabled {
          opacity: 0.3; }
        .product-details__container .woocommerce-product-gallery .flex-control-thumbs .owl-nav button span {
          font-size: 20px;
          color: white; }
        .product-details__container .woocommerce-product-gallery .flex-control-thumbs .owl-nav button.owl-next {
          right: 0; }
      .product-details__container .woocommerce-product-gallery .flex-control-thumbs li {
        cursor: pointer; }
        .product-details__container .woocommerce-product-gallery .flex-control-thumbs li img {
          width: 100%;
          border-radius: 4px; }
          .product-details__container .woocommerce-product-gallery .flex-control-thumbs li img.flex-active {
            border: 2px solid #EE1BB6; }
  .product-details__container .entry-summary {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 45.83333%;
            flex: 0 0 45.83333%;
    max-width: 45.83333%;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    max-width: 45.83333%; }
    @media print, screen and (min-width: 40em) {
      .product-details__container .entry-summary {
        padding-right: 0.9375rem;
        padding-left: 0.9375rem; } }
    @media screen and (max-width: 63.9375em) {
      .product-details__container .entry-summary {
        -webkit-box-flex: 0;
            -ms-flex: 0 0 100%;
                flex: 0 0 100%;
        max-width: 100%;
        padding-right: 0.625rem;
        padding-left: 0.625rem;
        max-width: 100%; } }
  @media screen and (max-width: 63.9375em) and (min-width: 40em) {
    .product-details__container .entry-summary {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }

.entry-summary {
  /* Tabs */ }
  .entry-summary .product_brand_logo {
    margin-bottom: 30px; }
    .entry-summary .product_brand_logo img {
      width: 300px;
      max-width: 100%; }
    @media screen and (max-width: 63.9375em) {
      .entry-summary .product_brand_logo {
        margin: 20px 0 10px; } }
  .entry-summary .woocommerce-product-gallery {
    padding-left: 0px;
    padding-right: 0px; }
  .entry-summary .product_title {
    font-size: 51px;
    font-weight: 800;
    margin-bottom: 0px;
    color: white; }
    .product-details--light .entry-summary .product_title {
      color: #2C2934; }
    @media screen and (max-width: 63.9375em) {
      .entry-summary .product_title {
        font-size: 42px; } }
  .entry-summary .product_subtitle {
    font-size: 30px;
    color: rgba(255, 255, 255, 0.5); }
    .product-details--light .entry-summary .product_subtitle {
      color: rgba(44, 41, 52, 0.7); }
    @media screen and (max-width: 63.9375em) {
      .entry-summary .product_subtitle {
        font-size: 18px; } }
  .entry-summary .product_category a {
    font-size: 18px;
    line-height: 1.89;
    letter-spacing: -0.45px;
    color: #EE1BB6;
    text-transform: uppercase; }
  .entry-summary .product_sku {
    font-size: 14px;
    line-height: 2.43;
    color: rgba(255, 255, 255, 0.3);
    text-transform: uppercase; }
    .product-details--light .entry-summary .product_sku {
      color: rgba(44, 41, 52, 0.3); }
  .entry-summary .product-info {
    width: 470px;
    max-width: 100%; }
    @media screen and (max-width: 63.9375em) {
      .entry-summary .product-info {
        width: 100%; } }
  .entry-summary .product-info__tabs {
    padding: 0;
    margin: 0;
    list-style: none;
    position: relative;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    margin-top: 20px;
    border-bottom: 1px solid rgba(221, 226, 235, 0.1); }
    [data-whatinput='mouse'] .entry-summary .product-info__tabs li {
      outline: 0; }
    .entry-summary .product-info__tabs a,
    .entry-summary .product-info__tabs .button {
      line-height: 1;
      text-decoration: none;
      white-space: nowrap;
      display: block;
      padding: 0.7rem 1rem; }
    .entry-summary .product-info__tabs input,
    .entry-summary .product-info__tabs select,
    .entry-summary .product-info__tabs a,
    .entry-summary .product-info__tabs button {
      margin-bottom: 0; }
    .entry-summary .product-info__tabs input {
      display: inline-block; }
    .product-details--light .entry-summary .product-info__tabs {
      border-bottom-color: rgba(44, 41, 52, 0.5); }
    .entry-summary .product-info__tabs .tabs-title a {
      font-size: 22px;
      text-align: center;
      color: rgba(255, 255, 255, 0.3);
      border-bottom: 3px solid transparent;
      padding-left: 5px;
      padding-right: 5px;
      margin: 0 20px; }
      .product-details--light .entry-summary .product-info__tabs .tabs-title a {
        color: rgba(44, 41, 52, 0.3); }
    .entry-summary .product-info__tabs .tabs-title:first-child a {
      margin-left: 0px; }
    .entry-summary .product-info__tabs .tabs-title.is-active a {
      color: white;
      border-bottom-color: #EE1BB6; }
      .product-details--light .entry-summary .product-info__tabs .tabs-title.is-active a {
        color: #2C2934; }
  .entry-summary .product-info__content {
    margin-top: 30px; }
    .entry-summary .product-info__content .tabs-panel {
      font-size: 20px;
      line-height: 1.5;
      color: white; }
      .product-details--light .entry-summary .product-info__content .tabs-panel {
        color: #2C2934; }
      .entry-summary .product-info__content .tabs-panel ul {
        margin-left: 30px; }
        .entry-summary .product-info__content .tabs-panel ul li {
          padding-left: 10px; }
      .entry-summary .product-info__content .tabs-panel p {
        color: rgba(255, 255, 255, 0.5);
        margin-bottom: 0.5rem; }
        .product-details--light .entry-summary .product-info__content .tabs-panel p {
          color: rgba(44, 41, 52, 0.5); }
      .entry-summary .product-info__content .tabs-panel:not(.is-active) {
        display: none; }
  .entry-summary .price {
    font-size: 36px;
    font-weight: 300;
    line-height: 1.17;
    color: #ffffff;
    margin-top: 20px;
    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;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center; }
    .product-details--light .entry-summary .price {
      color: #EE1BB6; }
    .entry-summary .price ins {
      text-decoration: none; }
    .entry-summary .price del {
      font-size: 28px;
      font-weight: 300;
      color: #c3cad7;
      margin: 0 10px; }
  .entry-summary .cart .quantity {
    max-width: 90rem;
    margin-right: auto;
    margin-left: auto;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-flow: row wrap;
        flex-flow: row wrap;
    margin-top: 10px; }
    .entry-summary .cart .quantity label {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 100%;
              flex: 0 0 100%;
      max-width: 100%;
      padding-right: 0;
      padding-left: 0;
      max-width: 100%;
      font-size: 18px;
      color: #ffffff;
      margin-bottom: 10px; }
      .product-details--light .entry-summary .cart .quantity label {
        color: #2C2934; }
    .entry-summary .cart .quantity .quantity__increment::before {
      /* use !important to prevent issues with browser extensions that change fonts */
      font-family: 'icomoon' !important;
      speak: none;
      font-style: normal;
      font-weight: normal;
      font-variant: normal;
      text-transform: none;
      line-height: 1;
      /* Better Font Rendering =========== */
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      content: ""; }
    .entry-summary .cart .quantity .quantity__decrement::before {
      /* use !important to prevent issues with browser extensions that change fonts */
      font-family: 'icomoon' !important;
      speak: none;
      font-style: normal;
      font-weight: normal;
      font-variant: normal;
      text-transform: none;
      line-height: 1;
      /* Better Font Rendering =========== */
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      content: ""; }
    .entry-summary .cart .quantity .quantity__increment, .entry-summary .cart .quantity .quantity__decrement {
      width: 42px;
      height: 42px;
      border-radius: 4px;
      border: solid 1px #d3dee3;
      display: inline-block;
      position: relative; }
      .entry-summary .cart .quantity .quantity__increment::before, .entry-summary .cart .quantity .quantity__decrement::before {
        font-size: 24px;
        color: #d3dee3;
        position: absolute;
        top: 50%;
        left: 50%;
        -webkit-transform: translate(-50%, -50%);
                transform: translate(-50%, -50%); }
    .entry-summary .cart .quantity .quantity__limited {
      font-size: 22px;
      letter-spacing: 0.22px;
      color: #1be6ee;
      height: 42px;
      border-radius: 20px;
      border: solid 1.5px #1be6ee;
      line-height: 40px;
      padding: 0 30px;
      margin-left: 20px; }
      .product-details--light .entry-summary .cart .quantity .quantity__limited {
        color: #2C2934;
        border: solid 1.5px #2C2934; }
    .entry-summary .cart .quantity input {
      font-size: 24px;
      line-height: 1.33;
      text-align: center;
      color: #ffffff;
      background: none;
      border: none;
      box-shadow: none;
      cursor: text;
      width: 60px; }
      .product-details--light .entry-summary .cart .quantity input {
        color: #2C2934; }
      .entry-summary .cart .quantity input::-webkit-inner-spin-button {
        -webkit-appearance: none; }
  .entry-summary .cart .button {
    margin-bottom: 5px;
    margin-right: 5px;
    background: #2C2934;
    margin-top: 20px;
    margin-bottom: 40px; }
    .entry-summary .cart .button:before {
      content: "";
      position: absolute;
      z-index: 2;
      top: 0px;
      left: 0px;
      right: 0px;
      bottom: 0px;
      border: 7px solid #EE1BB6;
      transition: all 0.25s ease-out, color 0.25s ease-out; }
    .entry-summary .cart .button:after {
      content: "";
      position: absolute;
      top: 0px;
      left: 0px;
      right: 0px;
      bottom: 0px;
      border: 2px solid white;
      -webkit-transform: translate(4px, 4px);
              transform: translate(4px, 4px); }
    .entry-summary .cart .button:after {
      border: 2px solid #7983FF;
      border-image-source: linear-gradient(90deg, #EE1BB6, #7983FF);
      border-image-slice: 1; }
    .entry-summary .cart .button:before {
      border-color: #2C2934 !important; }
    .entry-summary .cart .button:active, .entry-summary .cart .button:focus, .entry-summary .cart .button:hover {
      background: #443f51; }
      .entry-summary .cart .button:active:before, .entry-summary .cart .button:focus:before, .entry-summary .cart .button:hover:before {
        border-color: #443f51 !important; }

.section.upsells {
  padding-bottom: 60px; }
  .section.upsells > *:last-child {
    padding-bottom: 0px; }
  .section.upsells .upsells_brand_logo {
    position: absolute;
    width: 200px;
    top: 20px;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%); }
  @media screen and (max-width: 63.9375em) {
    .section.upsells .product-card-small__add {
      display: none; } }
  .section.upsells .section__body {
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center; }
  .section.upsells.upsells--themed {
    padding-top: 80px;
    padding-bottom: 120px;
    background-size: cover;
    background-position: center;
    position: relative;
    position: relative; }
    .section.upsells.upsells--themed:before {
      content: '';
      position: absolute;
      height: 60px;
      top: 0px;
      left: 0;
      right: 0;
      background-repeat: no-repeat;
      background-size: 100% 100%;
      -webkit-transform: scaleY(1) scaleX(-1) ;
              transform: scaleY(1) scaleX(-1) ;
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'  height='50' width='400' preserveAspectRatio='none'%3E\a           %3Cpolygon points='320,0 0,0 0,50' style='fill:white;' /%3E\a           %3Cpolygon points='320,0 400,0 400,50' style='fill:white;' /%3E\a         %3C/svg%3E"); }
    .section.upsells.upsells--themed:after {
      content: '';
      position: absolute;
      height: 100px;
      bottom: 0px;
      left: 0;
      right: 0;
      background-repeat: no-repeat;
      background-size: 100% 100%;
      -webkit-transform: scaleY(-1) scaleX(1) ;
              transform: scaleY(-1) scaleX(1) ;
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'  height='50' width='400' preserveAspectRatio='none'%3E\a           %3Cpolygon points='280,0 0,0 0,50' style='fill:%232C2934;' /%3E\a           %3Cpolygon points='280,0 400,0 400,50' style='fill:%232C2934;' /%3E\a         %3C/svg%3E"); }
    .section.upsells.upsells--themed .section__title {
      color: white; }
    .section.upsells.upsells--themed ~ .newsletter-section {
      padding-top: 0px;
      margin-top: 0px; }
      .section.upsells.upsells--themed ~ .newsletter-section .newsletter-section__container {
        padding-top: 20px; }
  .section.upsells .section__title {
    margin-bottom: 50px; }

.pswp {
  z-index: 10000; }
  .pswp .pswp__caption {
    display: none; }

.woocommerce-cart .cart-empty.woocommerce-info {
  color: black;
  background: none;
  text-align: center;
  margin-top: 30px; }
  .woocommerce-cart .cart-empty.woocommerce-info + .return-to-shop {
    text-align: center;
    margin-bottom: 150px; }

.woocommerce-cart .entry-content {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
  max-width: 100%;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  max-width: 100%; }
  @media print, screen and (min-width: 40em) {
    .woocommerce-cart .entry-content {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }

.woocommerce-cart .woocommerce-cart-form {
  padding-bottom: 40px; }

.woocommerce-cart .woocommerce-cart-form__contents {
  width: 100%; }
  .woocommerce-cart .woocommerce-cart-form__contents thead tr th {
    font-family: Inter;
    text-transform: uppercase;
    line-height: 1.89;
    padding: 20px;
    text-align: left;
    font-size: 14px;
    font-weight: 600;
    color: #08131f; }
    .woocommerce-cart .woocommerce-cart-form__contents thead tr th:first-child {
      padding-left: 0px; }
    .woocommerce-cart .woocommerce-cart-form__contents thead tr th:last-child {
      padding-right: 60px;
      text-align: right; }
      @media screen and (max-width: 63.9375em) {
        .woocommerce-cart .woocommerce-cart-form__contents thead tr th:last-child {
          padding-right: 10px; } }
  .woocommerce-cart .woocommerce-cart-form__contents tbody tr {
    border-top: 1px solid #ECECEC; }
    .woocommerce-cart .woocommerce-cart-form__contents tbody tr:last-child {
      border-bottom: none; }
    .woocommerce-cart .woocommerce-cart-form__contents tbody tr td {
      padding: 20px;
      font-size: 18px;
      line-height: 2;
      color: #08131f; }
      @media screen and (max-width: 48em) {
        .woocommerce-cart .woocommerce-cart-form__contents tbody tr td {
          padding: 10px; }
          .woocommerce-cart .woocommerce-cart-form__contents tbody tr td > * {
            display: block;
            clear: both;
            text-align: left; } }
      .woocommerce-cart .woocommerce-cart-form__contents tbody tr td:last-child {
        padding-right: 60px; }
        .woocommerce-cart .woocommerce-cart-form__contents tbody tr td:last-child, .woocommerce-cart .woocommerce-cart-form__contents tbody tr td:last-child > * {
          text-align: right; }
        @media screen and (max-width: 63.9375em) {
          .woocommerce-cart .woocommerce-cart-form__contents tbody tr td:last-child {
            padding-right: 10px; } }
      @media screen and (min-width: 48em) {
        .woocommerce-cart .woocommerce-cart-form__contents tbody tr td.product-remove {
          width: 20px; } }
      .woocommerce-cart .woocommerce-cart-form__contents tbody tr td.product-remove a {
        font-size: 35px;
        color: #d3dee3;
        font-weight: 300; }
        .woocommerce-cart .woocommerce-cart-form__contents tbody tr td.product-remove a:hover {
          color: #ee1bb7; }
      @media screen and (min-width: 48em) {
        .woocommerce-cart .woocommerce-cart-form__contents tbody tr td.product-quantity {
          width: 12%; } }
      .woocommerce-cart .woocommerce-cart-form__contents tbody tr td.product-quantity .screen-reader-text {
        display: none; }
      .woocommerce-cart .woocommerce-cart-form__contents tbody tr td.product-quantity input {
        margin-bottom: 0px;
        color: #08131f;
        max-width: 80px;
        min-width: 60px;
        padding-right: 5px; }
      .woocommerce-cart .woocommerce-cart-form__contents tbody tr td.product-thumbnail:before {
        content: ''; }
      @media screen and (min-width: 48em) {
        .woocommerce-cart .woocommerce-cart-form__contents tbody tr td.product-thumbnail {
          width: 136px; } }
      .woocommerce-cart .woocommerce-cart-form__contents tbody tr td.product-thumbnail img {
        width: 96px;
        height: auto;
        border-radius: 4px; }
      @media screen and (min-width: 48em) {
        .woocommerce-cart .woocommerce-cart-form__contents tbody tr td.product-price {
          width: 12%; } }
      @media screen and (min-width: 48em) {
        .woocommerce-cart .woocommerce-cart-form__contents tbody tr td.product-subtotal {
          width: 12%; } }
      .woocommerce-cart .woocommerce-cart-form__contents tbody tr td.product-name a {
        font-size: 22px;
        line-height: 1.64;
        color: #08131f; }
      .woocommerce-cart .woocommerce-cart-form__contents tbody tr td.product-name .variation {
        margin: 0; }
        .woocommerce-cart .woocommerce-cart-form__contents tbody tr td.product-name .variation dt {
          display: none; }
        .woocommerce-cart .woocommerce-cart-form__contents tbody tr td.product-name .variation p {
          margin: 0; }
      .woocommerce-cart .woocommerce-cart-form__contents tbody tr td.product-name .wow-model {
        color: rgba(8, 19, 31, 0.5); }
        .woocommerce-cart .woocommerce-cart-form__contents tbody tr td.product-name .wow-model strong {
          color: #08131f;
          font-weight: normal;
          text-transform: capitalize; }
    .woocommerce-cart .woocommerce-cart-form__contents tbody tr .actions {
      padding-left: 0px;
      padding-top: 35px;
      padding-right: 0px !important; }
      @media screen and (max-width: 39.9375em) {
        .woocommerce-cart .woocommerce-cart-form__contents tbody tr .actions .actions-buttons {
          display: -webkit-box;
          display: -ms-flexbox;
          display: flex;
          -webkit-box-orient: vertical;
          -webkit-box-direction: reverse;
              -ms-flex-direction: column-reverse;
                  flex-direction: column-reverse; }
          .woocommerce-cart .woocommerce-cart-form__contents tbody tr .actions .actions-buttons > * {
            width: 100%;
            margin-left: 0px !important;
            margin-right: 0px !important; } }
      .woocommerce-cart .woocommerce-cart-form__contents tbody tr .actions .actions-buttons > .button {
        float: right;
        background: transparent;
        border: 2px solid #2C2934;
        color: #2C2934;
        line-height: 56px;
        margin-bottom: 10px; }
        .woocommerce-cart .woocommerce-cart-form__contents tbody tr .actions .actions-buttons > .button:active, .woocommerce-cart .woocommerce-cart-form__contents tbody tr .actions .actions-buttons > .button:focus, .woocommerce-cart .woocommerce-cart-form__contents tbody tr .actions .actions-buttons > .button:hover {
          background: #EE1BB6;
          border: 2px solid #EE1BB6;
          color: white; }
        .woocommerce-cart .woocommerce-cart-form__contents tbody tr .actions .actions-buttons > .button.button--small, .woocommerce-cart .woocommerce-cart-form__contents tbody tr .actions .woocommerce-message .actions-buttons > .button, .woocommerce-message .woocommerce-cart .woocommerce-cart-form__contents tbody tr .actions .actions-buttons > .button, .woocommerce-cart .woocommerce-cart-form__contents tbody tr .actions .woocommerce-Message .actions-buttons > .button, .woocommerce-Message .woocommerce-cart .woocommerce-cart-form__contents tbody tr .actions .actions-buttons > .button, .woocommerce-cart .woocommerce-cart-form__contents tbody tr .actions .product-card__body .actions-buttons > .button, .product-card__body .woocommerce-cart .woocommerce-cart-form__contents tbody tr .actions .actions-buttons > .button, .woocommerce-cart .woocommerce-cart-form__contents .shop_table tbody tr .actions .actions-buttons > a.button, .shop_table .woocommerce-cart .woocommerce-cart-form__contents tbody tr .actions .actions-buttons > a.button, .woocommerce-cart .woocommerce-cart-form__contents tbody .shop_table tfoot tr .actions .actions-buttons > a.button, .woocommerce-cart .woocommerce-cart-form__contents tbody tr .actions body.woocommerce-checkout .woocommerce-form-coupon .actions-buttons > .button, body.woocommerce-checkout .woocommerce-form-coupon .woocommerce-cart .woocommerce-cart-form__contents tbody tr .actions .actions-buttons > .button {
          line-height: 42px; }
        .woocommerce-cart .woocommerce-cart-form__contents tbody tr .actions .actions-buttons > .button.button--medium, .woocommerce-cart .woocommerce-cart-form__contents tbody tr .actions .actions-buttons > .button, .woocommerce-cart .woocommerce-cart-form__contents tbody tr .actions .coupon .actions-buttons > .button, .woocommerce-cart .woocommerce-cart-form__contents tbody tr .actions .actions-buttons > .button.newsletter-section__form-button, .woocommerce-cart .woocommerce-cart-form__contents tbody tr .actions .customer-service__buttons .actions-buttons > .button, .customer-service__buttons .woocommerce-cart .woocommerce-cart-form__contents tbody tr .actions .actions-buttons > .button {
          line-height: 50px; }
        .woocommerce-cart .woocommerce-cart-form__contents tbody tr .actions .actions-buttons > .button.checkout-button {
          background: #EE1BB6;
          color: white;
          border: none !important;
          margin-left: 15px; }
          .woocommerce-cart .woocommerce-cart-form__contents tbody tr .actions .actions-buttons > .button.checkout-button:before {
            border-color: #EE1BB6 !important; }
          .woocommerce-cart .woocommerce-cart-form__contents tbody tr .actions .actions-buttons > .button.checkout-button:active, .woocommerce-cart .woocommerce-cart-form__contents tbody tr .actions .actions-buttons > .button.checkout-button:focus, .woocommerce-cart .woocommerce-cart-form__contents tbody tr .actions .actions-buttons > .button.checkout-button:hover {
            background: #c70f96;
            color: white; }
            .woocommerce-cart .woocommerce-cart-form__contents tbody tr .actions .actions-buttons > .button.checkout-button:active:before, .woocommerce-cart .woocommerce-cart-form__contents tbody tr .actions .actions-buttons > .button.checkout-button:focus:before, .woocommerce-cart .woocommerce-cart-form__contents tbody tr .actions .actions-buttons > .button.checkout-button:hover:before {
              border-color: #c70f96 !important; }
      .woocommerce-cart .woocommerce-cart-form__contents tbody tr .actions .coupon {
        float: left;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        width: 450px;
        margin-bottom: 10px; }
        @media screen and (max-width: 39.9375em) {
          .woocommerce-cart .woocommerce-cart-form__contents tbody tr .actions .coupon {
            width: 100%;
            margin-bottom: 30px; } }
        .woocommerce-cart .woocommerce-cart-form__contents tbody tr .actions .coupon label {
          display: none; }
        .woocommerce-cart .woocommerce-cart-form__contents tbody tr .actions .coupon input {
          font-size: 22px;
          line-height: 1.45;
          letter-spacing: -0.5px;
          color: #08131f;
          box-shadow: none;
          height: 54px;
          border: solid 1px #d3dee3;
          border-right: none;
          background-color: #ffffff; }

@media screen and (max-width: 48em) {
  .woocommerce-cart table.shop_table_responsive tr td {
    display: table-cell; }
    .woocommerce-cart table.shop_table_responsive tr td:before {
      line-height: 1em;
      margin-bottom: 5px;
      color: #7e7e7e;
      font-size: 12px; }
    .woocommerce-cart table.shop_table_responsive tr td.product-thumbnail img {
      width: 90px; }
    .woocommerce-cart table.shop_table_responsive tr td.product-name, .woocommerce-cart table.shop_table_responsive tr td.product-name * {
      font-size: 18px !important; }
    .woocommerce-cart table.shop_table_responsive tr td.product-name a {
      line-height: 1.1em; }
    .woocommerce-cart table.shop_table_responsive tr td.product-name .wow-model > span {
      display: block; }
    .woocommerce-cart table.shop_table_responsive tr td > *:first-child {
      min-height: 54px;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center; } }

.woocommerce-cart .cart-collaterals {
  max-width: 90rem;
  margin-right: auto;
  margin-left: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-flow: row wrap;
      flex-flow: row wrap;
  background: #f3f3f3;
  position: relative;
  padding-top: 70px;
  padding-bottom: 80px;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  margin-bottom: -50px; }
  @media screen and (max-width: 63.9375em) {
    .woocommerce-cart .cart-collaterals {
      -webkit-box-pack: center;
          -ms-flex-pack: center;
              justify-content: center; } }
  .woocommerce-cart .cart-collaterals .cross-sells {
    max-width: 90rem;
    margin-right: auto;
    margin-left: auto;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-flow: row wrap;
        flex-flow: row wrap;
    -webkit-box-flex: 0;
        -ms-flex: 0 0 50%;
            flex: 0 0 50%;
    max-width: 50%;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    max-width: 50%;
    margin-left: initial; }
    @media print, screen and (min-width: 40em) {
      .woocommerce-cart .cart-collaterals .cross-sells {
        padding-right: 0.9375rem;
        padding-left: 0.9375rem; } }
    .woocommerce-cart .cart-collaterals .cross-sells > h2 {
      width: 100%; }
    @media screen and (max-width: 63.9375em) {
      .woocommerce-cart .cart-collaterals .cross-sells {
        -webkit-box-flex: 0;
            -ms-flex: 0 0 100%;
                flex: 0 0 100%;
        max-width: 100%;
        padding-right: 0.625rem;
        padding-left: 0.625rem;
        max-width: 100%; } }
  @media screen and (max-width: 63.9375em) and (min-width: 40em) {
    .woocommerce-cart .cart-collaterals .cross-sells {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }
    .woocommerce-cart .cart-collaterals .cross-sells .cross-sells__column {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 50%;
              flex: 0 0 50%;
      max-width: 50%;
      padding-right: 0.625rem;
      padding-left: 0.625rem;
      max-width: 50%; }
      @media print, screen and (min-width: 40em) {
        .woocommerce-cart .cart-collaterals .cross-sells .cross-sells__column {
          padding-right: 0.9375rem;
          padding-left: 0.9375rem; } }
    .woocommerce-cart .cart-collaterals .cross-sells .products.columns-2 {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      margin: 0px;
      list-style: none; }
      .woocommerce-cart .cart-collaterals .cross-sells .products.columns-2 .product {
        -webkit-box-flex: 0;
            -ms-flex: 0 0 50%;
                flex: 0 0 50%;
        max-width: 50%;
        padding-right: 0.625rem;
        padding-left: 0.625rem;
        max-width: 50%; }
        @media print, screen and (min-width: 40em) {
          .woocommerce-cart .cart-collaterals .cross-sells .products.columns-2 .product {
            padding-right: 0.9375rem;
            padding-left: 0.9375rem; } }
  .woocommerce-cart .cart-collaterals .cart_totals {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 37.5%;
            flex: 0 0 37.5%;
    max-width: 37.5%;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    max-width: 37.5%; }
    @media print, screen and (min-width: 40em) {
      .woocommerce-cart .cart-collaterals .cart_totals {
        padding-right: 0.9375rem;
        padding-left: 0.9375rem; } }
    @media screen and (max-width: 63.9375em) {
      .woocommerce-cart .cart-collaterals .cart_totals {
        -webkit-box-flex: 0;
            -ms-flex: 0 0 100%;
                flex: 0 0 100%;
        max-width: 100%;
        padding-right: 0.625rem;
        padding-left: 0.625rem;
        max-width: 100%;
        max-width: 500px; } }
  @media screen and (max-width: 63.9375em) and (min-width: 40em) {
    .woocommerce-cart .cart-collaterals .cart_totals {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }
    .woocommerce-cart .cart-collaterals .cart_totals .wc-proceed-to-checkout {
      margin-top: 50px;
      text-align: center; }
      .woocommerce-cart .cart-collaterals .cart_totals .wc-proceed-to-checkout .wcppec-checkout-buttons__separator {
        margin: 10px 0; }
      .woocommerce-cart .cart-collaterals .cart_totals .wc-proceed-to-checkout .button {
        width: 100%;
        margin-bottom: 15px; }
    .woocommerce-cart .cart-collaterals .cart_totals .shop_table tbody tr td, .woocommerce-cart .cart-collaterals .cart_totals .shop_table tbody tr th {
      padding: 0px;
      padding-top: 4px;
      padding-bottom: 4px; }
    .woocommerce-cart .cart-collaterals .cart_totals .shop_table tbody tr td {
      text-align: right; }
  .woocommerce-cart .cart-collaterals .cross-sells > h2, .woocommerce-cart .cart-collaterals .cart_totals > h2 {
    font-size: 28px;
    font-weight: bold;
    line-height: 1.5;
    letter-spacing: -0.5px;
    color: #08131f;
    margin-bottom: 30px; }
  .woocommerce-cart .cart-collaterals:before, .woocommerce-cart .cart-collaterals:after {
    content: '';
    background: #f3f3f3;
    position: absolute;
    top: 0px;
    bottom: 0px;
    width: calc( ( 100vw - 100% ) / 2); }
  .woocommerce-cart .cart-collaterals:before {
    left: calc( ( 100vw - 100% ) / -2); }
  .woocommerce-cart .cart-collaterals:after {
    right: calc( ( 100vw - 100% ) / -2); }

.tabs-carousel {
  width: 100%; }
  .tabs-carousel .owl-nav .owl-prev, .tabs-carousel .owl-nav .owl-next {
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
    position: absolute;
    top: 45%; }
    .tabs-carousel .owl-nav .owl-prev.owl-prev, .tabs-carousel .owl-nav .owl-next.owl-prev {
      left: 10px; }
      .tabs-carousel .owl-nav .owl-prev.owl-prev:before, .tabs-carousel .owl-nav .owl-next.owl-prev:before {
        display: inline-block;
        /* use !important to prevent issues with browser extensions that change fonts */
        font-family: 'icomoon' !important;
        speak: none;
        font-style: normal;
        font-weight: normal;
        font-variant: normal;
        text-transform: none;
        line-height: 1;
        /* Better Font Rendering =========== */
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
        content: "";
        -webkit-transform: scaleX(-1);
                transform: scaleX(-1);
        color: #2c2934;
        font-size: 50px; }
    .tabs-carousel .owl-nav .owl-prev.owl-next, .tabs-carousel .owl-nav .owl-next.owl-next {
      right: 10px; }
      .tabs-carousel .owl-nav .owl-prev.owl-next:before, .tabs-carousel .owl-nav .owl-next.owl-next:before {
        /* use !important to prevent issues with browser extensions that change fonts */
        font-family: 'icomoon' !important;
        speak: none;
        font-style: normal;
        font-weight: normal;
        font-variant: normal;
        text-transform: none;
        line-height: 1;
        /* Better Font Rendering =========== */
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
        content: "";
        color: #2c2934;
        font-size: 50px; }

.tabs-carousel__tabs {
  padding: 0;
  margin: 0;
  list-style: none;
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  width: auto;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  padding: 15px 0;
  border-bottom: 1px solid #dde2eb;
  margin: 0 100px; }
  [data-whatinput='mouse'] .tabs-carousel__tabs li {
    outline: 0; }
  .tabs-carousel__tabs a,
  .tabs-carousel__tabs .button {
    line-height: 1;
    text-decoration: none;
    white-space: nowrap;
    display: block;
    padding: 0.7rem 1rem; }
  .tabs-carousel__tabs input,
  .tabs-carousel__tabs select,
  .tabs-carousel__tabs a,
  .tabs-carousel__tabs button {
    margin-bottom: 0; }
  .tabs-carousel__tabs input {
    display: inline-block; }

.tabs-carousel__tab {
  font-size: 22px;
  font-weight: 500;
  text-align: center;
  color: rgba(44, 41, 52, 0.5);
  margin: 0 40px;
  padding: 15px 0;
  border-bottom: 3px solid transparent;
  line-height: 1em;
  cursor: pointer; }
  .tabs-carousel__tab.active {
    border-bottom-color: #EE1BB6; }

.tabs-carousel__items .tabs-carousel__item .section {
  margin: 0px; }

.tabs-carousel__items .tabs-carousel__item .text-image__image {
  -webkit-transform: initial;
          transform: initial;
  margin-bottom: 0px; }

.tabs-carousel__items .tabs-carousel__item .section__body {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; }

.tabs-carousel__items .tabs-carousel__item .text-image__title {
  width: 80%;
  font-size: 28px;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: -0.5px; }

.tabs-carousel__items .tabs-carousel__item .text-image__content {
  width: 90%;
  font-size: 20px;
  line-height: 1.7;
  letter-spacing: normal;
  color: rgba(8, 19, 31, 0.5); }

@media screen and (max-width: 74.9375em) {
  .text-image .section__body {
    overflow: hidden; } }

@media screen and (max-width: 39.9375em) {
  .text-image .section__body {
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse; }
    .text-image .section__body .section__column:nth-child(1) ~ .section__column {
      margin-top: 0px; } }

.text-image .section__title {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
  max-width: 100%;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  max-width: 100%;
  font-size: 42px;
  font-weight: bold;
  line-height: 1.17;
  text-align: left; }
  @media print, screen and (min-width: 40em) {
    .text-image .section__title {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }
  @media screen and (min-width: 40em) {
    .text-image .section__title {
      display: none; } }

.text-image__title {
  font-size: 50px;
  font-weight: 800;
  line-height: 1.16;
  letter-spacing: -0.5px;
  color: #2C2934;
  margin-bottom: 30px;
  width: 110%;
  margin-top: 50px; }
  .section--dark .text-image__title {
    color: white; }
  @media screen and (max-width: 39.9375em) {
    .text-image__title {
      display: none; } }

.text-image__content > *:first-child {
  margin-top: 0px; }

.text-image__content h1, .text-image__content h2, .text-image__content h3, .text-image__content h4, .text-image__content h5, .text-image__content h6 {
  font-weight: 800;
  line-height: 1.16;
  letter-spacing: -0.5px;
  color: #2C2934;
  margin-bottom: 30px;
  width: 100%;
  margin-top: 50px; }
  .section--dark .text-image__content h1, .section--dark .text-image__content h2, .section--dark .text-image__content h3, .section--dark .text-image__content h4, .section--dark .text-image__content h5, .section--dark .text-image__content h6 {
    color: white; }

.text-image__content {
  font-size: 22px;
  line-height: 1.64;
  color: rgba(44, 41, 52, 0.5);
  width: 80%; }
  @media screen and (max-width: 39.9375em) {
    .text-image__content {
      width: 90%;
      margin-top: 10px; } }
  .text-image__content .button {
    margin-top: 20px;
    margin-bottom: 5px;
    margin-right: 5px;
    background: #2C2934; }
    .text-image__content .button:before {
      content: "";
      position: absolute;
      z-index: 2;
      top: 0px;
      left: 0px;
      right: 0px;
      bottom: 0px;
      border: 7px solid #EE1BB6;
      transition: all 0.25s ease-out, color 0.25s ease-out; }
    .text-image__content .button:after {
      content: "";
      position: absolute;
      top: 0px;
      left: 0px;
      right: 0px;
      bottom: 0px;
      border: 2px solid white;
      -webkit-transform: translate(4px, 4px);
              transform: translate(4px, 4px); }
    .text-image__content .button:after {
      border: 2px solid #7983FF;
      border-image-source: linear-gradient(90deg, #EE1BB6, #7983FF);
      border-image-slice: 1; }
    .text-image__content .button:before {
      border-color: #2C2934 !important; }
    .text-image__content .button:active, .text-image__content .button:focus, .text-image__content .button:hover {
      background: #443f51; }
      .text-image__content .button:active:before, .text-image__content .button:focus:before, .text-image__content .button:hover:before {
        border-color: #443f51 !important; }
  .section--dark .text-image__content {
    color: rgba(255, 255, 255, 0.5); }
    .section--dark .text-image__content .button {
      margin-bottom: 5px;
      margin-right: 5px;
      background: white;
      color: #2C2934; }
      .section--dark .text-image__content .button:before {
        content: "";
        position: absolute;
        z-index: 2;
        top: 0px;
        left: 0px;
        right: 0px;
        bottom: 0px;
        border: 7px solid #EE1BB6;
        transition: all 0.25s ease-out, color 0.25s ease-out; }
      .section--dark .text-image__content .button:after {
        content: "";
        position: absolute;
        top: 0px;
        left: 0px;
        right: 0px;
        bottom: 0px;
        border: 2px solid white;
        -webkit-transform: translate(4px, 4px);
                transform: translate(4px, 4px); }
      .section--dark .text-image__content .button:after {
        border: 2px solid #7983FF;
        border-image-source: linear-gradient(90deg, #EE1BB6, #7983FF);
        border-image-slice: 1; }
      .section--dark .text-image__content .button:before {
        border-color: white !important; }
      .section--dark .text-image__content .button:active, .section--dark .text-image__content .button:focus, .section--dark .text-image__content .button:hover {
        background: #e6e6e6;
        color: #2C2934; }
        .section--dark .text-image__content .button:active:before, .section--dark .text-image__content .button:focus:before, .section--dark .text-image__content .button:hover:before {
          border-color: #e6e6e6 !important; }

.text-image__image {
  -ms-flex-item-align: self-start;
      align-self: self-start; }
  @media screen and (min-width: 40em) {
    .text-image__image {
      -webkit-transform: scale(1.15);
              transform: scale(1.15);
      -webkit-transform-origin: 0 0;
              transform-origin: 0 0;
      margin-bottom: 70px; } }
  .section--reverse .text-image__image {
    -webkit-transform-origin: 100% 0;
            transform-origin: 100% 0; }

.newsletter-section {
  /* Permalink - use to edit and share this gradient: https://colorzilla.com/gradient-editor/#1e5799+0,7db9e8+100 */
  background: #EE1BB6;
  /* Old browsers */
  /* FF3.6-15 */
  /* Chrome10-25,Safari5.1-6 */
  background: linear-gradient(to right, #EE1BB6 0%, #7983FF 100%);
  /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#EE1BB6', endColorstr='#7983FF',GradientType=1 );
  /* IE6-9 */ }
  .newsletter-section.newsletter-section--dark, .section.upsells.upsells--themed ~ .newsletter-section {
    background: #2C2934; }

.newsletter-section__container {
  max-width: 90rem;
  margin-right: auto;
  margin-left: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-flow: row wrap;
      flex-flow: row wrap;
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
  max-width: 100%;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  max-width: 100%;
  -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;
  padding-top: 40px;
  padding-bottom: 40px;
  color: #ffffff;
  text-align: center; }
  @media print, screen and (min-width: 40em) {
    .newsletter-section__container {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }

.newsletter-section__title {
  font-size: 48px;
  font-weight: 800;
  letter-spacing: -0.5px;
  margin-bottom: 0px; }
  @media screen and (max-width: 63.9375em) {
    .newsletter-section__title {
      font-size: 40px; } }
  @media screen and (max-width: 39.9375em) {
    .newsletter-section__title {
      font-size: 36px; } }

.newsletter-section__description {
  opacity: 0.5;
  font-size: 16px;
  margin-bottom: 24px; }
  @media screen and (max-width: 63.9375em) {
    .newsletter-section__description {
      font-size: 16px; } }
  @media screen and (max-width: 39.9375em) {
    .newsletter-section__description {
      font-size: 16px; } }

.newsletter-section__form {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: 600px;
  max-width: 100%; }
  .newsletter-section__form .wpcf7-form {
    position: relative;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex; }
    .newsletter-section__form .wpcf7-form .wpcf7-not-valid-tip {
      color: white; }
    .newsletter-section__form .wpcf7-form .wpcf7-response-output {
      display: none !important; }
    .newsletter-section__form .wpcf7-form .wpcf7-form-control-wrap {
      display: inline-block; }

.newsletter-section__form-input, .newsletter-section__form .wpcf7-form-control-wrap input {
  height: 54px;
  border: solid 1px #2C2934;
  background-color: #ffffff;
  padding-left: 20px;
  border-right: none;
  font-size: 20px;
  color: rgba(8, 19, 31, 0.7); }
  .newsletter-section__form-input::-webkit-input-placeholder, .newsletter-section__form .wpcf7-form-control-wrap input::-webkit-input-placeholder {
    color: rgba(8, 19, 31, 0.3); }
  .newsletter-section__form-input::-moz-placeholder, .newsletter-section__form .wpcf7-form-control-wrap input::-moz-placeholder {
    color: rgba(8, 19, 31, 0.3); }
  .newsletter-section__form-input:-ms-input-placeholder, .newsletter-section__form .wpcf7-form-control-wrap input:-ms-input-placeholder {
    color: rgba(8, 19, 31, 0.3); }
  .newsletter-section__form-input::placeholder, .newsletter-section__form .wpcf7-form-control-wrap input::placeholder {
    color: rgba(8, 19, 31, 0.3); }
  .newsletter-section__form-input:focus, .newsletter-section__form-input:active, .newsletter-section__form .wpcf7-form-control-wrap input:focus, .newsletter-section__form .wpcf7-form-control-wrap input:active {
    box-shadow: none;
    border: solid 1px #2C2934;
    border-right: none; }

.newsletter-section__form-button {
  background: #2C2934;
  height: 54px; }
  .newsletter-section__form-button:before {
    border-color: #2C2934 !important; }
  .newsletter-section__form-button:active, .newsletter-section__form-button:focus, .newsletter-section__form-button:hover {
    background: #443f51; }
    .newsletter-section__form-button:active:before, .newsletter-section__form-button:focus:before, .newsletter-section__form-button:hover:before {
      border-color: #443f51 !important; }
  .newsletter-section--dark .newsletter-section__form-button, .section.upsells.upsells--themed ~ .newsletter-section .newsletter-section__form-button {
    background: #EE1BB6;
    color: white; }
    .newsletter-section--dark .newsletter-section__form-button:before, .section.upsells.upsells--themed ~ .newsletter-section .newsletter-section__form-button:before {
      border-color: #EE1BB6 !important; }
    .newsletter-section--dark .newsletter-section__form-button:active, .section.upsells.upsells--themed ~ .newsletter-section .newsletter-section__form-button:active, .newsletter-section--dark .newsletter-section__form-button:focus, .section.upsells.upsells--themed ~ .newsletter-section .newsletter-section__form-button:focus, .newsletter-section--dark .newsletter-section__form-button:hover, .section.upsells.upsells--themed ~ .newsletter-section .newsletter-section__form-button:hover {
      background: #c70f96;
      color: white; }
      .newsletter-section--dark .newsletter-section__form-button:active:before, .section.upsells.upsells--themed ~ .newsletter-section .newsletter-section__form-button:active:before, .newsletter-section--dark .newsletter-section__form-button:focus:before, .section.upsells.upsells--themed ~ .newsletter-section .newsletter-section__form-button:focus:before, .newsletter-section--dark .newsletter-section__form-button:hover:before, .section.upsells.upsells--themed ~ .newsletter-section .newsletter-section__form-button:hover:before {
        border-color: #c70f96 !important; }

.newsletter-section__help {
  opacity: 0.5;
  font-size: 16px;
  margin-top: 10px; }
  @media screen and (max-width: 63.9375em) {
    .newsletter-section__help {
      font-size: 17px; } }
  @media screen and (max-width: 39.9375em) {
    .newsletter-section__help {
      font-size: 16px; } }

.customer-service {
  background-color: #f3f3f3; }

.customer-service__columns {
  max-width: 90rem;
  margin-right: auto;
  margin-left: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-flow: row wrap;
      flex-flow: row wrap; }

.customer-service__column {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 50%;
          flex: 0 0 50%;
  max-width: 50%;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  max-width: 50%; }
  @media print, screen and (min-width: 40em) {
    .customer-service__column {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }
  @media screen and (max-width: 48em) {
    .customer-service__column {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 100%;
              flex: 0 0 100%;
      max-width: 100%;
      padding-right: 0.625rem;
      padding-left: 0.625rem;
      max-width: 100%; } }
  @media screen and (max-width: 48em) and (min-width: 40em) {
    .customer-service__column {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }

.customer-service__buttons {
  text-align: center;
  width: 100%; }
  .customer-service__buttons .button {
    background: transparent;
    border: 2px solid #2C2934;
    color: #2C2934;
    line-height: 56px;
    margin: 10px; }
    .customer-service__buttons .button:active, .customer-service__buttons .button:focus, .customer-service__buttons .button:hover {
      background: #EE1BB6;
      border: 2px solid #EE1BB6;
      color: white; }
    .customer-service__buttons .button.button--small, .customer-service__buttons .woocommerce-message .button, .woocommerce-message .customer-service__buttons .button, .customer-service__buttons .woocommerce-Message .button, .woocommerce-Message .customer-service__buttons .button, .customer-service__buttons .product-card__body .button, .product-card__body .customer-service__buttons .button, .customer-service__buttons .shop_table tbody tr a.button, .shop_table tbody tr .customer-service__buttons a.button, .customer-service__buttons .shop_table tfoot tr a.button, .shop_table tfoot tr .customer-service__buttons a.button, .customer-service__buttons body.woocommerce-checkout .woocommerce-form-coupon .button, body.woocommerce-checkout .woocommerce-form-coupon .customer-service__buttons .button {
      line-height: 42px; }
    .customer-service__buttons .button.button--medium, .customer-service__buttons .woocommerce-cart .woocommerce-cart-form__contents tbody tr .actions .actions-buttons > .button, .woocommerce-cart .woocommerce-cart-form__contents tbody tr .actions .customer-service__buttons .actions-buttons > .button, .customer-service__buttons .woocommerce-cart .woocommerce-cart-form__contents tbody tr .actions .coupon .button, .woocommerce-cart .woocommerce-cart-form__contents tbody tr .actions .coupon .customer-service__buttons .button, .customer-service__buttons .button.newsletter-section__form-button, .customer-service__buttons .button {
      line-height: 50px; }

.customer-service-item {
  padding-left: 100px;
  position: relative;
  margin-bottom: 60px; }
  .customer-service-item::before {
    /* use !important to prevent issues with browser extensions that change fonts */
    font-family: 'icomoon' !important;
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    /* Better Font Rendering =========== */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    content: "";
    font-size: 70px;
    color: #2C2934;
    position: absolute;
    top: 0;
    left: 15px; }

.customer-service-item__title {
  font-size: 24px;
  font-weight: bold;
  letter-spacing: -0.5px;
  color: #2C2934; }

.customer-service-item__desc {
  font-size: 20px;
  line-height: 1.4;
  color: rgba(44, 41, 52, 0.5); }

.customer-service-item__info {
  list-style: none;
  margin: 0px; }
  .customer-service-item__info li {
    font-size: 20px;
    letter-spacing: -0.5px;
    color: #08131f;
    padding-left: 40px;
    position: relative; }
    .customer-service-item__info li::before {
      position: absolute;
      top: 50%;
      -webkit-transform: translateY(-50%);
              transform: translateY(-50%);
      left: 0; }

.customer-service-item__tel::before {
  /* use !important to prevent issues with browser extensions that change fonts */
  font-family: 'icomoon' !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "";
  font-size: 24px; }

.customer-service-item__email::before {
  /* use !important to prevent issues with browser extensions that change fonts */
  font-family: 'icomoon' !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "";
  font-size: 24px; }

.woocommerce-account .woocommerce {
  max-width: 90rem;
  margin-right: auto;
  margin-left: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-flow: row wrap;
      flex-flow: row wrap; }

.woocommerce-account:not(.logged-in) .woocommerce {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column; }

.woocommerce-account .u-columns > div {
  margin: 0 20px; }

.woocommerce-account > .woocommerce-form-login {
  width: 500px;
  max-width: 100%;
  margin: 0 auto; }

.woocommerce-account .woocommerce > h2 {
  font-size: 28px;
  font-weight: bold;
  line-height: 1.5;
  letter-spacing: -0.5px;
  color: #08131f;
  margin-bottom: 30px;
  text-align: center; }

.woocommerce-account .woocommerce-MyAccount-navigation {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 25%;
          flex: 0 0 25%;
  max-width: 25%;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  max-width: 25%; }
  @media print, screen and (min-width: 40em) {
    .woocommerce-account .woocommerce-MyAccount-navigation {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }
  @media screen and (max-width: 39.9375em) {
    .woocommerce-account .woocommerce-MyAccount-navigation {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 100%;
              flex: 0 0 100%;
      max-width: 100%;
      padding-right: 0.625rem;
      padding-left: 0.625rem;
      max-width: 100%; } }
  @media screen and (max-width: 39.9375em) and (min-width: 40em) {
    .woocommerce-account .woocommerce-MyAccount-navigation {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }
  .woocommerce-account .woocommerce-MyAccount-navigation ul {
    list-style: none;
    margin: 0; }
    @media screen and (max-width: 39.9375em) {
      .woocommerce-account .woocommerce-MyAccount-navigation ul li {
        display: inline-block; } }
    .woocommerce-account .woocommerce-MyAccount-navigation ul li a {
      font-size: 22px;
      font-weight: 500;
      color: #2C2934;
      display: inline-block;
      padding: 5px; }
      @media screen and (max-width: 39.9375em) {
        .woocommerce-account .woocommerce-MyAccount-navigation ul li a {
          padding: 10px; } }
    .woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a {
      color: #EE1BB6; }

.woocommerce-account .woocommerce-MyAccount-content {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 75%;
          flex: 0 0 75%;
  max-width: 75%;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  max-width: 75%; }
  @media print, screen and (min-width: 40em) {
    .woocommerce-account .woocommerce-MyAccount-content {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }
  @media screen and (max-width: 39.9375em) {
    .woocommerce-account .woocommerce-MyAccount-content {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 100%;
              flex: 0 0 100%;
      max-width: 100%;
      padding-right: 0.625rem;
      padding-left: 0.625rem;
      max-width: 100%; } }
  @media screen and (max-width: 39.9375em) and (min-width: 40em) {
    .woocommerce-account .woocommerce-MyAccount-content {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }

@media screen and (min-width: 40em) {
  .woocommerce-account .col2-set {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex; } }

.woocommerce-account .col2-set > * {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  margin-bottom: 40px; }

/** Login **/
.wc-auth-login {
  width: 500px;
  max-width: 100%;
  margin: 100px auto; }

.woocommerce-lost-password .woocommerce {
  max-width: 100%;
  width: 40rem;
  text-align: center;
  margin-bottom: 100px; }
  .woocommerce-lost-password .woocommerce .woocommerce-message {
    color: #7d4cd6;
    font-size: 1.25rem;
    font-weight: 600;
    background: none; }

.section.section--divider-gradient-top {
  position: relative;
  margin-top: 80px; }
  .section.section--divider-gradient-top:before {
    content: '';
    position: absolute;
    height: 60px;
    top: -60px;
    left: 0;
    right: 0;
    background-repeat: no-repeat;
    background-size: 100% 100%;
    -webkit-transform: scaleY(1) scaleX(1) ;
            transform: scaleY(1) scaleX(1) ;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'  height='50' width='400' preserveAspectRatio='none'%3E\a         %3Cdefs%3E\a           %3ClinearGradient id='Gradient1' x1='0' x2='1' y1='0' y2='0'%3E\a             %3Cstop offset='0%' stop-color='%23EE1BB6'/%3E\a             %3Cstop offset='100%' stop-color='%237983FF'/%3E\a           %3C/linearGradient%3E\a         %3C/defs%3E\a         %3Cpolygon points='325,0 400,50 0,50' fill='url(%23Gradient1)' /%3E\a         %3Cpolygon points='320,20 400,50 0,50' style='fill:%232C2934;' /%3E\a       %3C/svg%3E"); }

.section.section--divider-gradient-bottom {
  position: relative; }
  .section.section--divider-gradient-bottom:after {
    content: '';
    position: absolute;
    height: 60px;
    bottom: -60px;
    left: 0;
    right: 0;
    background-repeat: no-repeat;
    background-size: 100% 100%;
    -webkit-transform: scaleY(-1) scaleX(-1) ;
            transform: scaleY(-1) scaleX(-1) ;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'  height='50' width='400' preserveAspectRatio='none'%3E\a         %3Cdefs%3E\a           %3ClinearGradient id='Gradient1' x1='0' x2='1' y1='0' y2='0'%3E\a             %3Cstop offset='0%' stop-color='%237983FF'/%3E\a             %3Cstop offset='100%' stop-color='%23EE1BB6'/%3E\a           %3C/linearGradient%3E\a         %3C/defs%3E\a         %3Cpolygon points='325,0 400,50 0,50' fill='url(%23Gradient1)' /%3E\a         %3Cpolygon points='320,20 400,50 0,50' style='fill:%232C2934;' /%3E\a       %3C/svg%3E"); }
  .section.section--divider-gradient-bottom + .section {
    padding-top: 100px; }

.section.section--homepage1 {
  background: #2C2934; }

.section.section--homepage2 {
  background: url(https://picsum.photos/id/200/1400/600);
  background-size: cover;
  background-position: center;
  position: relative; }
  .section.section--homepage2:before {
    content: '';
    position: absolute;
    height: 60px;
    top: 0px;
    left: 0;
    right: 0;
    background-repeat: no-repeat;
    background-size: 100% 100%;
    -webkit-transform: scaleY(-1) scaleX(1) ;
            transform: scaleY(-1) scaleX(1) ;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'  height='50' width='400' preserveAspectRatio='none'%3E\a           %3Cpolygon points='320,20 400,50 0,50' style='fill:white;' /%3E\a         %3C/svg%3E"); }

.section.section--productpage {
  background: url(https://picsum.photos/id/158/1400/600);
  background-size: cover;
  background-position: center;
  position: relative;
  position: relative; }
  .section.section--productpage:before {
    content: '';
    position: absolute;
    height: 60px;
    top: 0px;
    left: 0;
    right: 0;
    background-repeat: no-repeat;
    background-size: 100% 100%;
    -webkit-transform: scaleY(1) scaleX(-1) ;
            transform: scaleY(1) scaleX(-1) ;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'  height='50' width='400' preserveAspectRatio='none'%3E\a           %3Cpolygon points='320,0 0,0 0,50' style='fill:white;' /%3E\a           %3Cpolygon points='320,0 400,0 400,50' style='fill:white;' /%3E\a         %3C/svg%3E"); }
  .section.section--productpage:after {
    content: '';
    position: absolute;
    height: 130px;
    bottom: 0px;
    left: 0;
    right: 0;
    background-repeat: no-repeat;
    background-size: 100% 100%;
    -webkit-transform: scaleY(-1) scaleX(1) ;
            transform: scaleY(-1) scaleX(1) ;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'  height='50' width='400' preserveAspectRatio='none'%3E\a           %3Cpolygon points='280,0 0,0 0,50' style='fill:white;' /%3E\a           %3Cpolygon points='280,0 400,0 400,50' style='fill:white;' /%3E\a         %3C/svg%3E"); }

.f-item-preview .section {
  min-height: 200px;
  margin: 100px 0; }

/** WoW Theme **/
.wow-theme {
  /* Brand hero */ }
  .wow-theme .brand-hero {
    background-image: url("../images/themes/wow/brand-hero-background@2x.jpg") !important;
    background-position: top center;
    padding: 0;
    height: 630px;
    position: relative; }
    .wow-theme .brand-hero::after {
      content: '';
      background-image: url("../images/themes/wow/divider-down@2x.png");
      background-size: 1440px;
      background-repeat: repeat-x;
      background-position: top center;
      height: 37px;
      bottom: -37px;
      -webkit-transform: scaleY(1) scaleX(1);
              transform: scaleY(1) scaleX(1);
      position: absolute;
      z-index: 30;
      width: 100%;
      display: block; }
    .wow-theme .brand-hero .brand-hero__content {
      width: 100%;
      text-align: center; }
    .wow-theme .brand-hero .brand-hero__logo {
      display: inline-block;
      max-width: 600px; }
    .wow-theme .brand-hero .brand-hero__image, .wow-theme .brand-hero .brand-hero__action, .wow-theme .brand-hero .brand-hero__copy, .wow-theme .brand-hero .brand-hero__title {
      display: none; }
    .wow-theme .brand-hero + .section {
      background-image: url("../images/themes/wow/background@2x.jpg");
      background-size: cover;
      background-position: top center;
      padding-top: 100px;
      position: relative; }
      .wow-theme .brand-hero + .section::after {
        content: '';
        background-image: url("../images/themes/wow/divider-down@2x.png");
        background-size: 1440px;
        background-repeat: repeat-x;
        background-position: top center;
        height: 37px;
        bottom: -37px;
        -webkit-transform: scaleY(1) scaleX(1);
                transform: scaleY(1) scaleX(1);
        position: absolute;
        z-index: 30;
        width: 100%;
        display: block; }
    .wow-theme .brand-hero + .section.section--offset-large {
      margin-top: 0; }
  .wow-theme .newsletter-section {
    background-image: url("../images/themes/wow/mailing-background@2x.jpg") !important; }
  .wow-theme .product-card-small__add .button::before {
    background: #fbbe00 !important;
    color: black !important;
    font-weight: 300; }
  .wow-theme .product-card .product-card__head {
    box-shadow: 0 0 18px rgba(255, 255, 255, 0.6); }
  .wow-theme .product-card .button {
    border: #60140d;
    background: #60140d;
    font-size: 22px;
    font-weight: bold;
    letter-spacing: 0.32px;
    color: #fbbe00; }
  .wow-theme .product-details {
    background-image: url("../images/themes/wow/background@2x.jpg") !important;
    background-position: top center !important;
    padding-top: 440px;
    position: relative; }
    @media screen and (max-width: 63.9375em) {
      .wow-theme .product-details {
        padding-top: calc( var(--header-background-height) + 40px); } }
    .wow-theme .product-details::after {
      content: '';
      background-image: url("../images/themes/wow/divider-down@2x.png");
      background-size: 1440px;
      background-repeat: repeat-x;
      background-position: top center;
      height: 37px;
      bottom: -37px;
      -webkit-transform: scaleY(1) scaleX(1);
              transform: scaleY(1) scaleX(1);
      position: absolute;
      z-index: 30;
      width: 100%;
      display: block; }
    .wow-theme .product-details::after {
      top: 340px;
      -webkit-transform: scaleX(1) scaleY(-1) rotateZ(180deg);
              transform: scaleX(1) scaleY(-1) rotateZ(180deg);
      bottom: unset; }
      @media screen and (max-width: 63.9375em) {
        .wow-theme .product-details::after {
          top: var(--header-background-height); } }
    .wow-theme .product-details::before {
      height: 340px;
      background-image: url("../images/themes/wow/hero-background@2x.jpg") !important; }
      @media screen and (max-width: 63.9375em) {
        .wow-theme .product-details::before {
          height: var(--header-background-height); } }
    @media screen and (max-width: 63.9375em) {
      .wow-theme .product-details .product_brand_logo {
        text-align: left;
        width: 150px; } }
    .wow-theme .product-details .entry-summary .product_title {
      color: white; }
    .wow-theme .product-details .entry-summary .product_subtitle {
      color: rgba(255, 255, 255, 0.7); }
    .wow-theme .product-details .entry-summary .product_category a {
      color: #fbbe00; }
    .wow-theme .product-details .entry-summary .product_sku {
      color: rgba(255, 255, 255, 0.3); }
    .wow-theme .product-details .entry-summary .product-info__tabs {
      border-bottom-color: rgba(255, 255, 255, 0.5); }
    .wow-theme .product-details .entry-summary .product-info__tabs .tabs-title a {
      color: rgba(255, 255, 255, 0.3); }
    .wow-theme .product-details .entry-summary .product-info__tabs .tabs-title.is-active a {
      color: white;
      border-bottom-color: #fbbe00; }
    .wow-theme .product-details .entry-summary .product-info__content .tabs-panel {
      color: white; }
    .wow-theme .product-details .entry-summary .product-info__content .tabs-panel p {
      color: rgba(255, 255, 255, 0.5); }
    .wow-theme .product-details .entry-summary .price {
      color: #fbbe00; }
    .wow-theme .product-details .entry-summary .cart .quantity label {
      color: white; }
    .wow-theme .product-details .entry-summary .cart .quantity input {
      color: white; }
    .wow-theme .product-details .entry-summary .cart .quantity .quantity__limited {
      color: white;
      border-color: white; }
    .wow-theme .product-details .entry-summary .button {
      background-color: #60140d;
      font-size: 22px;
      font-weight: bold;
      color: #fbbe00; }
      .wow-theme .product-details .entry-summary .button::before {
        border-color: #60140d !important; }
      .wow-theme .product-details .entry-summary .button::after {
        border: 2px solid #fbbe00; }
  .wow-theme .section.upsells {
    position: relative;
    padding-bottom: 60px;
    padding-top: 30px; }
    .wow-theme .section.upsells::after {
      content: none; }
    .wow-theme .section.upsells::before {
      content: '';
      background-image: url("../images/themes/wow/divider-down@2x.png");
      background-size: 1440px;
      background-repeat: repeat-x;
      background-position: top center;
      height: 37px;
      top: -37px;
      -webkit-transform: rotateZ(180deg);
              transform: rotateZ(180deg);
      position: absolute;
      z-index: 30;
      width: 100%;
      display: block; }
    .wow-theme .section.upsells .section__title {
      text-shadow: 1px 3px 3px rgba(0, 0, 0, 0.58);
      font-size: 51px;
      font-weight: 800;
      line-height: 1.25;
      letter-spacing: -0.5px;
      color: #ffffff; }
    .wow-theme .section.upsells .upsells_brand_logo {
      display: none; }
  .wow-theme .newsletter-section {
    position: relative;
    padding-top: 0px;
    margin-top: 0px; }
    .wow-theme .newsletter-section::after {
      content: '';
      background-image: url("../images/themes/wow/divider-down@2x.png");
      background-size: 1440px;
      background-repeat: repeat-x;
      background-position: top center;
      height: 37px;
      bottom: -37px;
      -webkit-transform: scaleY(1) scaleX(1);
              transform: scaleY(1) scaleX(1);
      position: absolute;
      z-index: 30;
      width: 100%;
      display: block; }
    .wow-theme .newsletter-section::after {
      top: 0;
      bottom: unset; }
    .wow-theme .newsletter-section .newsletter-section__container {
      padding-top: 70px !important; }
    .wow-theme .newsletter-section .newsletter-section__form-button {
      background-color: #60140d;
      font-size: 22px;
      font-weight: 500;
      text-align: center;
      color: #fbbe00; }

/** WoW Theme **/
.woocommerce-cart.woocommerce-page img.pswp__img {
  background-color: black; }

.pswp {
  z-index: 10000 !important; }

.f-preview__background {
  padding: 20px;
  background: url("https://picsum.photos/id/120/1600/800");
  background-size: cover;
  background-position: center;
  margin: 20px 0; }

.f-preview__dark {
  padding: 20px;
  background: #2C2934;
  margin: 20px 0; }

body {
  overflow-x: hidden; }

.product-gallery__video {
  width: 100%;
  padding-top: 60%;
  position: relative; }
  .product-gallery__video iframe {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    height: 100%; }

#page > div > *:empty {
  display: none; }

[data-figure-prints] + .ajax_add_to_cart {
  clip: rect(1px, 1px, 1px, 1px);
  -webkit-clip-path: inset(50%);
          clip-path: inset(50%);
  height: 1px;
  width: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRvb2xraXQuY3NzIiwidG9vbGtpdC5zY3NzIiwiLi4vZm9udHMvX2ZvbnRzLnNjc3MiLCIuLi9mb250cy9pY29tb29uL3N0eWxlLnNjc3MiLCIuLi9mb250cy9pY29tb29uL3ZhcmlhYmxlcy5zY3NzIiwidmVuZG9ycy9fbm9ybWFsaXplLnNjc3MiLCIuLi8uLi92ZW5kb3IvU2N1dC9kaXN0L19zY3V0LnNjc3MiLCIuLi8uLi92ZW5kb3IvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2ZvdW5kYXRpb24uc2NzcyIsIi4uLy4uL3ZlbmRvci9jaG9zZW4vY2hvc2VuLmNzcyIsIi4uLy4uL3ZlbmRvci9vd2wuY2Fyb3VzZWwvc3JjL3Njc3MvX2NvcmUuc2NzcyIsIi4uLy4uL3ZlbmRvci9vd2wuY2Fyb3VzZWwvc3JjL3Njc3MvX2FuaW1hdGUuc2NzcyIsIi4uLy4uL3ZlbmRvci9vd2wuY2Fyb3VzZWwvc3JjL3Njc3MvX2F1dG9oZWlnaHQuc2NzcyIsIi4uLy4uL3ZlbmRvci9vd2wuY2Fyb3VzZWwvc3JjL3Njc3MvX2xhenlsb2FkLnNjc3MiLCIuLi8uLi92ZW5kb3Ivb3dsLmNhcm91c2VsL3NyYy9zY3NzL192aWRlby5zY3NzIiwiLi4vLi4vdmVuZG9yL2ZvdW5kYXRpb24tc2l0ZXMvX3ZlbmRvci9ub3JtYWxpemUtc2Nzcy9zYXNzL25vcm1hbGl6ZS9fbm9ybWFsaXplLW1peGluLnNjc3MiLCIuLi8uLi92ZW5kb3IvZm91bmRhdGlvbi1zaXRlcy9fdmVuZG9yL25vcm1hbGl6ZS1zY3NzL3Nhc3Mvbm9ybWFsaXplL192YXJpYWJsZXMuc2NzcyIsIi4uLy4uL3ZlbmRvci9mb3VuZGF0aW9uLXNpdGVzL192ZW5kb3Ivbm9ybWFsaXplLXNjc3Mvc2Fzcy9ub3JtYWxpemUvX3ZlcnRpY2FsLXJoeXRobS5zY3NzIiwiLi4vLi4vdmVuZG9yL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9fZ2xvYmFsLnNjc3MiLCJ2ZW5kb3JzL19mb3VuZGF0aW9uLXNldHRpbmdzLnNjc3MiLCIuLi8uLi92ZW5kb3IvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX21peGlucy5zY3NzIiwiLi4vLi4vdmVuZG9yL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19jbGFzc2VzLnNjc3MiLCIuLi8uLi92ZW5kb3IvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX3Jvdy5zY3NzIiwiLi4vLi4vdmVuZG9yL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL191bml0LnNjc3MiLCIuLi8uLi92ZW5kb3IvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2d1dHRlci5zY3NzIiwiLi4vLi4vdmVuZG9yL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19icmVha3BvaW50LnNjc3MiLCIuLi8uLi92ZW5kb3IvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX3NpemUuc2NzcyIsIi4uLy4uL3ZlbmRvci9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fY29sdW1uLnNjc3MiLCIuLi8uLi92ZW5kb3IvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX3Bvc2l0aW9uLnNjc3MiLCIuLi8uLi92ZW5kb3IvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2xheW91dC5zY3NzIiwiLi4vLi4vdmVuZG9yL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19iYXNlLnNjc3MiLCIuLi8uLi92ZW5kb3IvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2hlbHBlcnMuc2NzcyIsIi4uLy4uL3ZlbmRvci9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fYWxpZ25tZW50LnNjc3MiLCIuLi8uLi92ZW5kb3IvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX3ByaW50LnNjc3MiLCIuLi8uLi92ZW5kb3IvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2J1dHRvbi5zY3NzIiwiLi4vLi4vdmVuZG9yL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fdGV4dC5zY3NzIiwiLi4vLi4vdmVuZG9yL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fY2hlY2tib3guc2NzcyIsIi4uLy4uL3ZlbmRvci9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2xhYmVsLnNjc3MiLCIuLi8uLi92ZW5kb3IvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19oZWxwLXRleHQuc2NzcyIsIi4uLy4uL3ZlbmRvci9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2lucHV0LWdyb3VwLnNjc3MiLCIuLi8uLi92ZW5kb3IvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19maWVsZHNldC5zY3NzIiwiLi4vLi4vdmVuZG9yL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fc2VsZWN0LnNjc3MiLCIuLi8uLi92ZW5kb3IvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19lcnJvci5zY3NzIiwiLi4vLi4vdmVuZG9yL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL192aXNpYmlsaXR5LnNjc3MiLCIuLi8uLi92ZW5kb3IvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX21lbnUuc2NzcyIsInV0aWxzL21peGlucy9fc3BhY2luZy5zY3NzIiwiYXRvbXMvX2J1dHRvbnMuc2NzcyIsInV0aWxzL3ZhcmlhYmxlcy9fY29sb3JzLnNjc3MiLCJhdG9tcy9fYWRkLWJ1dHRvbi5zY3NzIiwiYXRvbXMvX2Zvcm0taW5wdXRzLnNjc3MiLCJhdG9tcy9fd2Mtbm90aWNlcy5zY3NzIiwiLi4vLi4vdmVuZG9yL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyIsImF0b21zL19kcm9wZG93bi5zY3NzIiwidXRpbHMvbWl4aW5zL19pY29ucy5zY3NzIiwibW9sZWN1bGVzL19wcm9kdWN0LWNhcmQuc2NzcyIsIm1vbGVjdWxlcy9fcHJvZHVjdC1jYXJkLXNtYWxsLnNjc3MiLCJtb2xlY3VsZXMvX2Jhbm5lci5zY3NzIiwidXRpbHMvbWl4aW5zL19taXhpbnMuc2NzcyIsIm1vbGVjdWxlcy9fY2Fyb3VzZWwuc2NzcyIsIm1vbGVjdWxlcy9fc2hvcC10YWJsZS5zY3NzIiwibW9sZWN1bGVzL190ZXN0aW1vbmlhbC1jYXJkLnNjc3MiLCJtb2xlY3VsZXMvX2hlYWRlci1wcm9kdWN0LnNjc3MiLCJtb2xlY3VsZXMvX3Bob3RvLWNhcmQuc2NzcyIsIm9yZ2FuaXNtcy9faGVhZGVyLnNjc3MiLCJvcmdhbmlzbXMvX2hlYWRlci10aXRsZS5zY3NzIiwib3JnYW5pc21zL19zZWN0aW9uLnNjc3MiLCJvcmdhbmlzbXMvX2Zvb3Rlci5zY3NzIiwib3JnYW5pc21zL19icmFuZHMuc2NzcyIsInV0aWxzL21peGlucy9fZGl2aWRlcnMuc2NzcyIsInV0aWxzL2Z1bmN0aW9ucy9fZnVuY3Rpb25zLnNjc3MiLCJvcmdhbmlzbXMvX2NoZWNrb3V0LnNjc3MiLCJvcmdhbmlzbXMvX3NxdWlwLWNvbW11bml0eS5zY3NzIiwib3JnYW5pc21zL19oZXJvLnNjc3MiLCJvcmdhbmlzbXMvX2JyYW5kLWhlcm8uc2NzcyIsIm9yZ2FuaXNtcy9fc2luZ2xlLXByb2R1Y3Quc2NzcyIsIm9yZ2FuaXNtcy9fY2FydC5zY3NzIiwib3JnYW5pc21zL190YWJzLWNhcm91c2VsLnNjc3MiLCJvcmdhbmlzbXMvX3RleHQtaW1hZ2Uuc2NzcyIsIm9yZ2FuaXNtcy9fbmV3c2xldHRlci5zY3NzIiwib3JnYW5pc21zL19jdXN0b21lci1zZXJ2aWNlLnNjc3MiLCJvcmdhbmlzbXMvX215LWFjY291bnQuc2NzcyIsIm9yZ2FuaXNtcy9fc2VjdGlvbi1lZmZlY3Quc2NzcyIsIm9yZ2FuaXNtcy9fYnJhbmQtdGhlbWVzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUJBQWlCO0FDQWpCOztHQUVHO0FDQUgsd0dBQVk7QUNBWjtFQUNFLHVCQUFzQztFQUN0QyxzREFBcUU7RUFDckUsdVNBR3VHO0VBQ3ZHLG9CQUFtQjtFQUNuQixtQkFBa0I7RUFDbEIsb0JBQW1CLEVB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SixpQkNlcUQsRU4yRWhEOztBQUlDO0VPN0ZKLG1CQUFrQjtFQUNsQixnQkFIbUQsRVBpRzlDOztBQUVEO0VPakdKLG1CQUFrQjtFQUNsQixpQkFIbUQsRVBxRzlDOztBQU1IO0VPOUVKLGlCRGJxRCxFTjZGaEQ7O0FBcEJEO0VLeEZKLGlCQ2VxRCxFTjJFaEQ7O0FBSUM7RU83RkosbUJBQWtCO0VBQ2xCLGdCQUhtRCxFUGlHOUM7O0FBRUQ7RU9qR0osbUJBQWtCO0VBQ2xCLGlCQUhtRCxFUHFHOUM7O0FBTUg7RU85RUosdUJEYnFELEVONkZoRDs7QUFwQkQ7RUt4RkosV0NlcUQsRU4yRWhEOztBQUlDO0VPN0ZKLG1CQUFrQjtFQUNsQixVQUhtRCxFUGlHOUM7O0FBRUQ7RU9qR0osbUJBQWtCO0VBQ2xCLFdBSG1ELEVQcUc5Qzs7QUFNSDtFTzlFSix1QkRicUQsRU42RmhEOztBQXBCRDtFS3hGSixpQkNlcUQsRU4yRWhEOztBQUlDO0VPN0ZKLG1CQUFrQjtFQUNsQixnQkFIbUQsRVBpRzlDOztBQUVEO0VPakdKLG1CQUFrQjtFQUNsQixpQkFIbUQsRVBxRzlDOztBQU1IO0VPOUVKLGlCRGJxRCxFTjZGaEQ7O0FBcEJEO0VLeEZKLGlCQ2VxRCxFTjJFaEQ7O0FBSUM7RU83RkosbUJBQWtCO0VBQ2xCLGdCQUhtRCxFUGlHOUM7O0FBRUQ7RU9qR0osbUJBQWtCO0VBQ2xCLGlCQUhtRCxFUHFHOUM7O0FBTUg7RU85RUosdUJEYnFELEVONkZoRDs7QUFwQkQ7RUt4RkosWUNlcUQsRU4yRWhEOztBQWdCRDtFTzlFSix1QkRicUQsRU42RmhEOztBQUtEO0VRekdGLFlYOEZ1RDtFVzdGdkQsWUFBdUIsRUFpQ3hCO0VBWEM7SUFDRSxZQUFXLEVBQ1o7RVJnRkM7SVE3RUEsWUFBVyxFQUNaO0VBRUQ7SUFDRSxZWDhEcUQsRVc3RHREOztBUndFQztFUXpHRixZWDhGdUQ7RVc3RnZELFdBQXVCLEVBaUN4QjtFUnVFRztJUWpGQSxZQUFXLEVBQ1o7RUFFRDtJQUNFLFlBQVcsRUFDWjtFUjRFQztJUXpFQSxZWDhEcUQs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TzlFSixpQkRicUQsRU42RmhEO0VBcEJEO0lLeEZKLGlCQ2VxRCxFTjJFaEQ7RUFJQztJTzdGSixtQkFBa0I7SUFDbEIsZ0JBSG1ELEVQaUc5QztFQUVEO0lPakdKLG1CQUFrQjtJQUNsQixpQkFIbUQsRVBxRzlDO0VBTUg7SU85RUosdUJEYnFELEVONkZoRDtFQXBCRDtJS3hGSixXQ2VxRCxFTjJFaEQ7RUFJQztJTzdGSixtQkFBa0I7SUFDbEIsVUFIbUQsRVBpRzlDO0VBRUQ7SU9qR0osbUJBQWtCO0lBQ2xCLFdBSG1ELEVQcUc5QztFQU1IO0lPOUVKLHVCRGJxRCxFTjZGaEQ7RUFwQkQ7SUt4RkosaUJDZXFELEVOMkVoRDtFQUlDO0lPN0ZKLG1CQUFrQjtJQUNsQixnQkFIbUQsRVBpRzlDO0VBRUQ7SU9qR0osbUJBQWtCO0lBQ2xCLGlCQUhtRCxFUHFHOUM7RUFNSDtJTzlFSixpQkRicUQsRU42RmhEO0VBcEJEO0lLeEZKLGlCQ2VxRCxFTjJFaEQ7RUFJQztJTzdGSixtQkFBa0I7SUFDbEIsZ0JBSG1ELEVQaUc5QztFQUVEO0lPakdKLG1CQUFrQjtJQUNsQixpQkFIbUQsRVBxRzlDO0VBTUg7SU85RUosdUJEYnFELEVONkZoRDtFQXBCRDtJS3hGSixZQ2VxRCxFTjJFaEQ7RUFnQkQ7SU85RUosdUJEYnFELEVONkZoRDtFQUtEO0lRekdGLFlYOEZ1RDtJVzdGdkQsWUFBdUIsRUFpQ3hCO0lSdUVHO01RakZBLFlBQVcsRUFDWjtJQUVEO01BQ0UsWUFBVyxFQUNaO0lSNEVDO01RekVBLFlYOERxRCxFVzdEdEQ7RUFsQ0g7SUFDRSxZWDhGdUQ7SVc3RnZELFdBQXVCLEVBaUN4QjtJUnVFRztNUWpGQSxZQUFXLEVBQ1o7SUFFRDtNQUNFLFlBQVcsRUFDWjtJUjRFQztNUXpFQSxZWDhEcUQsRVc3RHREO0VSd0VDO0lRekdGLFlYOEZ1RDtJVzdGdkQsaUJBQXVCLEVBaUN4QjtJUnVFRztNUWpGQSxZQUFXLEVBQ1o7SVJnRkM7TVE3RUEsWUFBVyxFQUNaO0lBRUQ7TUFDRSxZWDhEcUQsRVc3RHREO0VBbENIO0lBQ0UsWVg4RnVEO0lXN0Z2RCxXQUF1QixFQWlDeEI7SVJ1RUc7TVFqRkEsWUFBVyxFQUNaO0lBRUQ7TUFDRSxZQUFXLEVBQ1o7SVI0RUM7TVF6RUEsWVg4RHFELEVXN0R0RDtFQWxDSDtJQUNFLFlYOEZ1RDtJVzdGdkQsV0FBdUIsRUFpQ3hCO0lSdUVHO01RakZBLFlBQVcsRUFDWjtJQUVEO01BQ0UsWUFBVyxFQUNaO0lSNEVDO01RekVBLFlYOERxRCxFVzdEdEQ7RVJ3RUM7SVF6R0YsWVg4RnVEO0lXN0Z2RCxpQkFBdUIsRUFpQ3hCO0lBWEM7TUFDRSxZQUFXLEVBQ1o7SVJnRkM7TVE3RUEsWUFBVyxFQUNaO0lSNEVDO01RekVBLFlYOERxRCxFVzdEdEQ7RVJ3RUM7SVF6R0YsWVg4RnVEO0lXN0Z2RCxpQkFBdUIsRUFpQ3hCO0lSdUVHO01RakZBLFlBQVcsRUFDWjtJUmdGQztNUTdFQSxZQUFXLEVBQ1o7SVI0RUM7TVF6RUEsWVg4RHFELEVXN0R0RDtFUndFQztJUXpHRixZWDhGdUQ7SVc3RnZELGFBQXVCLEVBaUN4QjtJUnVFRztNUWpGQSxZQUFXLEVBQ1o7SVJnRkM7TVE3RUEsWUFBVyxFQUNaO0lBRUQ7TUFDRSxZWDhEcUQsRVc3RHREO0VSK0VDO0lHaEhGLGlCRHVFUztJQ3RFVCxnQkRzRVMsRUZ5Q3VDO0VBRGhEO0lBSUksZ0JBQWU7SUFDZixlQUFjLEVBQ2Y7RUFHSDtJQUNFLGdCQUFlO0lBQ2YsZUFBYyxFQUNmO0VBRUQ7SUc3SEEseUJBRnFDO0lBR3JDLHdCQUhxQyxFSGdJb0I7RUFJekQ7SU9qSUEsbUJBQWtCO0lBQ2xCLGtCQUFpQixFUGtJaEI7SUFGRDtNT3BJRSxZQUFXO01BQ1gsWUFBVyxFQUNaO0VQdUlEOzs7SU81SEYsaUJBQWdCO0lBQ2hCLFlBQVc7SUFDWCxnQkFBZTtJQUNmLGVBQWMsRVA2SFgsRUFBQTs7QUlGQztFSnpEQTtJS3hGSixnQkNlcUQsRU4yRWhEO0VBSUM7SU83RkosbUJBQWtCO0lBQ2xCLGVBSG1ELEVQaUc5QztFQUVEO0lPakdKLG1CQUFrQjtJQUNsQixnQkFIbUQsRVBxRzlDO0VBTUg7SU85RUosZ0JEaEJnQyxFTmdHM0I7RUFwQkQ7SUt4RkosaUJDZXFELEVOMkVoRDtFQUlDO0lPN0ZKLG1CQUFrQjtJQUNsQixnQkFIbUQsRVBpRzlDO0VBRUQ7SU9qR0osbUJBQWtCO0lBQ2xCLGlCQUhtRCxFUHFHOUM7RUFNSDtJTzlFSixzQkRicUQsRU42RmhEO0VBcEJEO0lLeEZKLFdDZXFELEVOMkVoRDtFQUlDO0lPN0ZKLG1CQUFrQjtJQUNsQixVQUhtRCxFUGlHOUM7RUFFRDtJT2pHSixtQkFBa0I7SUFDbEIsV0FIbUQsRVBxRzlDO0VBTUg7SU85RUosdUJEYnFELEVONkZoRDtFQXBCRDtJS3hGSixpQkNlcUQsRU4yRWhEO0VBSUM7SU83RkosbUJBQWtCO0lBQ2xCLGdCQUhtRCxFUGlHOUM7RUFFRDtJT2pHSixtQkFBa0I7SUFDbEIsaUJBSG1ELEVQcUc5QztFQU1IO0lPOUVKLGlCRGJxRCxFTjZGaEQ7RUFwQkQ7SUt4RkosaUJDZXFELEVOMkVoRDtFQUlDO0lPN0ZKLG1CQUFrQjtJQUNsQixnQkFIbUQsRVBpRzlDO0VBRUQ7SU9qR0osbUJBQWtCO0lBQ2xCLGlCQUhtRCxFUHFHOUM7RUFNSDtJTzlFSix1QkRicUQsRU42RmhEO0VBcEJEO0lLeEZKLFdDZXFELEVOMkVoRDtFQUlDO0lPN0ZKLG1CQUFrQjtJQUNsQixVQUhtRCxFUGlHOUM7RUFFRDtJT2pHSixtQkFBa0I7SUFDbEIsV0FIbUQsRVBxRzlDO0VBTUg7SU85RUosdUJEYnFELEVONkZoRDtFQXBCRDtJS3hGSixpQkNlcUQsRU4yRWhEO0VBSUM7SU83RkosbUJBQWtCO0lBQ2xCLGdCQUhtRCxFUGlHOUM7RUFFRDtJT2pHSixtQkFBa0I7SUFDbEIsaUJBSG1ELEVQcUc5QztFQU1IO0lPOUVKLGlCRGJxRCxFTjZGaEQ7RUFwQkQ7SUt4RkosaUJDZXFELEVOMkVoRDtFQUlDO0lPN0ZKLG1CQUFrQjtJQUNsQixnQkFIbUQsRVBpRzlDO0VBRUQ7SU9qR0osbUJBQWtCO0lBQ2xCLGlCQUhtRCxFUHFHOUM7RUFNSDtJTzlFSix1QkRicUQsRU42RmhEO0VBcEJEO0lLeEZKLFdDZXFELEVOMkVoRDtFQUlDO0lPN0ZKLG1CQUFrQjtJQUNsQixVQUhtRCxFUGlHOUM7RUFFRDtJT2pHSixtQkFBa0I7SUFDbEIsV0FIbUQsRVBxRzlDO0VBTUg7SU85RUosdUJEYnFELEVONkZoRDtFQXBCRDtJS3hGSixpQkNlcUQsRU4yRWhEO0VBSUM7SU83RkosbUJBQWtCO0lBQ2xCLGdCQUhtRCxFUGlHOUM7RUFFRDtJT2pHSixtQkFBa0I7SUFDbEIsaUJBSG1ELEVQcUc5QztFQU1IO0lPOUVKLGlCRGJxRCxFTjZGaEQ7RUFwQkQ7SUt4RkosaUJDZXFELEVOMkVoRDtFQUlDO0lPN0ZKLG1CQUFrQjtJQUNsQixnQkFIbUQsRVBpRzlDO0VBRUQ7SU9qR0osbUJBQWtCO0lBQ2xCLGlCQUhtRCxFUHFHOUM7RUFNSDtJTzlFSix1QkRicUQsRU42RmhEO0VBcEJEO0lLeEZKLFlDZXFELEVOMkVoRDtFQWdCRDtJTzlFSix1QkRicUQsRU42RmhEO0VBS0Q7SVF6R0YsWVg4RnVEO0lXN0Z2RCxZQUF1QixFQWlDeEI7SUFYQztNQUNFLFlBQVcsRUFDWjtJUmdGQztNUTdFQSxZQUFXLEVBQ1o7SVI0RUM7TVF6RUEsWVg4RHFELEVXN0R0RDtFUndFQztJUXpHRixZWDhGdUQ7SVc3RnZELFdBQXVCLEVBaUN4QjtJUnVFRztNUWpGQSxZQUFXLEVBQ1o7SVJnRkM7TVE3RUEsWUFBVyxFQUNaO0lBRUQ7TUFDRSxZWDhEcUQsRVc3RHREO0VBbENIO0lBQ0UsWVg4RnVEO0lXN0Z2RCxpQkFBdUIsRUFpQ3hCO0lSdUVHO01RakZBLFlBQVcsRUFDWjtJUmdGQztNUTdFQSxZQUFXLEVBQ1o7SUFFRDtNQUNFLFlYOERxRCxFVzdEdEQ7RUFsQ0g7SUFDRSxZWDhGdUQ7SVc3RnZELFdBQXVCLEVBaUN4QjtJQVhDO01BQ0UsWUFBVyxFQUNaO0lSZ0ZDO01RN0VBLFlBQVcsRUFDWjtJUjRFQztNUXpFQSxZWDhEcUQsRVc3RHREO0VSd0VDO0lRekdGLFlYOEZ1RDtJVzdGdkQsV0FBdUIsRUFpQ3hCO0lSdUVHO01RakZBLFlBQVcsRUFDWjtJUmdGQztNUTdFQSxZQUFXLEVBQ1o7SUFFRDtNQUNFLFlYOERxRCxFVzdEdEQ7RVJ3RUM7SVF6R0YsWVg4RnVEO0lXN0Z2RCxpQkFBdUIsRUFpQ3hCO0lSdUVHO01RakZBLFlBQVcsRUFDWjtJUmdGQztNUTdFQSxZQUFXLEVBQ1o7SUFFRDtNQUNFLFlYOERxRCxFVzdEdEQ7RUFsQ0g7SUFDRSxZWDhGdUQ7SVc3RnZELGlCQUF1QixFQWlDeEI7SUFYQztNQUNFLFlBQVcsRUFDWjtJQUVEO01BQ0UsWUFBVyxFQUNaO0lSNEVDO01RekVBLFlYOERxRCxFVzdEdEQ7RUFsQ0g7SUFDRSxZWDhGdUQ7SVc3RnZELGFBQXVCLEVBaUN4QjtJQVhDO01BQ0UsWUFBVyxFQUNaO0lSZ0ZDO01RN0VBLFlBQVcsRUFDWjtJUjRFQztNUXpFQSxZWDhEcUQsRVc3RHREO0VSOEVEO0lHL0dBLGlCRHVFUztJQ3RFVCxnQkRzRVMsRUZ5Q3VDO0VBRGhEO0lBSUksZ0JBQWU7SUFDZixlQUFjLEVBQ2Y7RUFHSDtJQUNFLGdCQUFlO0lBQ2YsZUFBYyxFQUNmO0VBRUQ7SUc3SEEseUJBRnFDO0lBR3JDLHdCQUhxQyxFSGdJb0I7RUFJekQ7SU9qSUEsbUJBQWtCO0lBQ2xCLGtCQUFpQixFUGtJaEI7SU92SUQ7TUFDRSxZQUFXO01BQ1gsWUFBVyxFQUNaO0VQdUlEOzs7SU81SEYsaUJBQWdCO0lBQ2hCLFlBQVc7SUFDWCxnQkFBZTtJQUNmLGVBQWMsRVA2SFgsRUFBQTs7QUFJSDtFRzFGRSx1QkRhcUQsRUYrRXREO0VBRkQ7SUd2RkksaUJBQWdCLEVBQ2pCO0VDZ0ZDO0lKTUo7TUcxRkUsd0JEYXFELEVGK0V0RDtNQUZEO1FHdkZJLGlCQUFnQixFQUNqQixFQUFBOztBTWdMSDs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQW1CRSxVQUFTO0VBQ1QsV0FBVSxFQUNYOztBQUdEO0VBQ0Usb0JYcEcwQjtFV3NHMUIsbUJBQWtCO0VBQ2xCLGlCWHhHc0I7RVd5R3RCLG1DWHZHeUMsRVd3RzFDOztBQUdEOztFQUVFLG1CQUFrQjtFQUNsQixxQkFBb0IsRUFDckI7O0FBR0Q7O0VBRUUsa0JYek1xQjtFVzBNckIscUJBQW9CLEVBQ3JCOztBeEJsSUg7RXdCc0lJLGVYOUhpQjtFVytIakIscUJBQW9CLEVBQ3JCOztBQUdEOzs7Ozs7RUFNRSxpQ1hoT2tDO0VXaU9sQyxtQlhsS3NCO0VXbUt0QixvQlg3TnlCO0VXOE56QixlWGxLa0I7RVdtS2xCLG1DWDlJc0MsRVdvSnZDO0VBaEJEOzs7Ozs7SUFhSSxlQUFjO0lBQ2QsZVgvT2UsRVdnUGhCOztBeEJuT0w7RXdCK09ZLGtCUHZQNkM7RU9tUTdDLGlCWC9MVztFV3VNWCxjQUFhO0VBT2Isc0JYN01pQixFVytNcEI7O0FBakNEO0VBSUksbUJQdlA2QztFT21RN0MsaUJYL0xXO0VXdU1YLGNBQWE7RUFPYixzQlg3TWlCLEVXK01wQjs7QUFqQ0Q7RUFJSSxxQlB2UDZDO0VPbVE3QyxpQlgvTFc7RVd1TVgsY0FBYTtFQU9iLHNCWDdNaUIsRVcrTXBCOztBQWpDRDtFQUlJLG9CUHZQNkM7RU9tUTdDLGlCWC9MVztFV3VNWCxjQUFhO0VBT2Isc0JYN01pQixFVytNcEI7O0FBakNEO0VBSUkscUJQdlA2QztFT21RN0MsaUJYL0xXO0VXdU1YLGNBQWE7RUFPYixzQlg3TWlCLEVXK01wQjs7QUFqQ0Q7RUFJSSxnQlB2UDZDO0VPbVE3QyxpQlgvTFc7RVd1TVgsY0FBYTtFQU9iLHNCWDdNaUIsRVcrTXBCOztBTDdNSDtFbkIvRE47SXdCK09ZLGdCUHZQNkMsRU9vUmhEO0VBakNEO0lBSUksa0JQdlA2QyxFT29SaEQ7RUFqQ0Q7SUFJSSxxQlB2UDZDLEVPb1JoRDtFQWpDRDtJQUlJLHFCUHZQNkMsRU9vUmhEO0VBakNEO0lBSUksbUJQdlA2QyxFT29SaEQ7RUFqQ0Q7SUFJSSxnQlB2UDZDLEVPb1JoRCxFQUFBOztBZm5HTDtFZTBHQSxxQkFBb0I7RUFDcEIsZVh6U2M7RVcwU2Qsc0JYdkx5QjtFV3lMekIsZ0JBQWUsRUFhaEI7RUFsQkQ7SUFTSSxlWDlMMkQsRVdrTTVEO0VBYkg7SUFnQkksVUFBUyxFQUNWOztBZnZLRDtFZTRLQSxZQUFXO0VBRVgsaUJQbFRxRDtFT21UckQsVUFBUztFQUNULHFCWDFNeUI7RVc0TXpCLGNBQWE7RUFDYixnQkFBZTtFQUNmLGlDWDdUaUI7RVc4VGpCLGVBQWMsRUFDZjs7QUFHRDs7O0VBR0Usb0JYcE8wQjtFV3FPMUIsNkJYbk55QjtFV29OekIsaUJYdk9zQixFV3dPdkI7O0FBR0Q7RUFDRSxtQkFBa0IsRUFDbkI7O0FBR0Q7RUFDRSxxQlg3TnNCO0VXOE50QixzQlhoT2tCLEVXaU9uQjs7QUFHRDtFQUNFLHFCWG5Pc0IsRVdvT3ZCOztBQUdEO0VBRUkscUJYeE8yQjtFV3lPM0IsaUJBQWdCLEVBQ2pCOztBQUlIO0VBQ0Usb0JYOU95QixFV29QMUI7RUFQRDtJQUlJLHNCWC9POEI7SVdnUDlCLGtCWDNWbUIsRVc0VnBCOztBQUlIO0VBQ0UsaUJYN1EwQjtFVzhRMUIsdUNQMVdxRDtFTzJXckQsK0JYaFhpQixFV3NYbEI7RUFKQztJQUNFLGlCWG5Sb0I7SVdvUnBCLGVYblhhLEVXb1hkOztBQUlIO0VBQ0UsZUFBYztFQUNkLHFCUHRYcUQ7RU91WHJELGVYM1hlLEVXZ1loQjtFQVJEO0lBTUksY1hqUTZCLEVBQUE7O0FXc1FqQztFQUNFLGtDWG5ZVztFV29ZWCxhQUFZO0VBQ1osc0JBQXFCLEVBQ3RCOztBeEI5UEg7RXdCa1FJLFVBQVMsRUFDVjs7QUFHRDtFQUNFLHNDUDVZcUQ7RU84WXJELDBCWG5aaUI7RVdvWmpCLDBCWHJaZ0I7RVd1WmhCLDZEWC9VbUU7RVdnVm5FLG9CWDNZeUI7RVc0WXpCLGVYdFpXLEVXdVpaOztBQUdEO0VBQ0UsVUFBUztFQUNULDRCUHBaUztFT3NaVCwwQlhqYWdCO0VXbWFoQiw2RFgzVm1FO0VXNFZuRSxlWGphVyxFV3NhWjs7QUM1Y0Q7RUFDRSxtQlppTHlCO0VZaEx6QixzQlppTDRCO0VZL0s1QixvQlo0Q3lCO0VZM0N6QixpQlowS3NCO0VZekt0QixlWitCZSxFWTlCaEI7O0FBR0Q7RUFD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LEVBRW5CLEVBQUE7RXhDL0NDO0l3Q29GSztNZGpJVCxvQnhCMUZxRDtVd0IwRnJELG1CeEIxRnFEO2N3QjBGckQsZXhCMUZxRDtNd0I4Rm5ELGdCeEI5Rm1EO01IUG5ELHdCQUZxQztNQUdyQyx1QkFIcUM7TTJCd0VyQyxnQnhCL0RtRDtNc0M4S3JELGdCQUFlLEVBMERkLEVBQUE7RXhDdEdHO0l3Q3lGSTtNekNsT04seUJBRnFDO01BR3JDLHdCQUhxQyxFeUNpUHRDLEVBQUE7RXhDakdHO013Q29GSztRQTNDUCxpQkFBZ0IsRUFPakIsRUFBQTtJeENoREc7TXdDMkNNO1FBRUosaUJBQWdCLEVBRW5CLEVBQUE7O0FBc0RLO0VBQ04scUJBQWE7RUFBYixxQkFBYTtFQUFiLGNBQWE7RWRuSmYsb0J4QjFGcUQ7TXdCMEZyRCx3QnhCMUZxRDtVd0IwRnJELG9CeEIxRnFEO0V3QjhGbkQscUJ4QjlGbUQ7RUhQbkQsd0JBRnFDO0VBR3JDLHVCQUhxQztFMkJ3RXJDLHFCeEIvRG1EO0VzQzhLckQsZ0JBQWUsRUFzRWQ7RXhDbEhHO0l3QzBHSTtNekNuUE4seUJBRnFDO01BR3JDLHdCQUhxQyxFeUM2UHRDLEVBQUE7RUFSUTtJQTVEUCxpQkFBZ0IsRUFPakI7SXhDaERHO013QzJDTTtRQUVKLGlCQUFnQixFQUVuQixFQUFBO0VBMkREO0lkdkpGLG9CeEIxRnFEO1F3QjBGckQsd0J4QjFGcUQ7WXdCMEZyRCxvQnhCMUZxRDtJd0I4Rm5ELHFCeEI5Rm1EO0lIUG5ELHdCQUZxQztJQUdyQyx1QkFIcUM7STJCd0VyQyxxQnhCL0RtRCxFc0NtUGxEO0l4Q2pIQztNd0MwR0s7UXpDblBQLHlCQUZxQztRQUdyQyx3QkFIcUMsRXlDNFBwQyxFQUFBOztBQUVNO0VkM0pULG9CYzRKK0I7TWQ1Si9CLGtCYzRKK0I7VWQ1Si9CLGNjNEorQjtFZHhKN0IsZWN3SjZCO0V6QzdQN0Isd0JBRnFDO0VBR3JDLHVCQUhxQztFMkJ3RXJDLGVjdUw2QjtFQXhFL0IsZ0JBQWUsRUEwRWQ7RXhDdEhHO0l3Q21ISTtNekM1UE4seUJBRnFDO01BR3JDLHdCQUhxQyxFeUNpUXRDLEVBQUE7RUF6RUQ7SUFDRSxpQkFBZ0IsRUFPakI7SXhDaERHO013QzJDTTtRQUVKLGlCQUFnQixFQUVuQixFQUFBOztBeEMvQ0M7RXdDb0hPO0lkaktYLG9CeEIxRnFEO1F3QjBGckQsa0J4QjFGcUQ7WXdCMEZyRCxjeEIxRnFEO0l3QjhGbkQsZXhCOUZtRDtJSFBuRCx3QkFGcUM7SUFHckMsdUJBSHFDO0kyQndFckMsZXhCL0RtRDtJc0M4S3JELGdCQUFlLEVBb0ZaLEVBQUE7RXhDaElDO0l3Q3lITTtNekNsUVIseUJBRnFDO01BR3JDLHdCQUhxQyxFeUMyUXBDLEVBQUE7O0F4QzNIQztJd0NvSE87TUEzRVQsaUJBQWdCLEVBT2pCLEVBQUE7SXhDaERHO013QzJDTTtRQUVKLGlCQUFnQixFQUVuQixFQUFBOztBeEMvQ0M7SXdDd0hBO01kcktKLG9CeEIxRnFEO1V3QjBGckQsbUJ4QjFGcUQ7Y3dCMEZyRCxleEIxRnFEO013QjhGbkQsZ0J4QjlGbUQ7TUhQbkQsd0JBRnFDO01BR3JDLHVCQUhxQztNMkJ3RXJDLGdCeEIvRG1ELEVzQ2lRaEQsRUFBQTtJeEMvSEQ7TXdDNkhBO1F6Q3RRRix5QkFGcUM7UUFHckMsd0JBSHFDLEV5QzBRbEMsRUFBQTs7QXhDMUhEO0V3QzhHSTtJZDNKUixvQnhCMUZxRDtRd0IwRnJELGtCeEIxRnFEO1l3QjBGckQsY3hCMUZxRDtJd0I4Rm5ELGV4QjlGbUQ7SUhQbkQsd0JBRnFDO0lBR3JDLHVCQUhxQztJMkJ3RXJDLGV4Qi9EbUQ7SXNDOEtyRCxnQkFBZSxFQXdGWixFQUFBO0V4Q3BJQztJd0NtSEs7TXpDNVBQLHlCQUZxQztNQUdyQyx3QkFIcUMsRXlDK1FwQyxFQUFBOztBeEMvSEM7SXdDd0NKO01BQ0UsaUJBQWdCLEVBT2pCLEVBQUE7SXhDaERHO013QzJDTTtRQUVKLGlCQUFnQixFQUVuQixFQUFBOztBeEMvQ0M7RXdDcUdJO0lkbEpSLG9CeEIxRnFEO1F3QjBGckQsbUJ4QjFGcUQ7WXdCMEZyRCxleEIxRnFEO0l3QjhGbkQs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dUJBSHFDO0UyQndFckMsZXhCL0RtRCxFNkN1R3REO0UvQzJCSztJK0NoRE47TWhEekZJLHlCQUZxQztNQUdyQyx3QkFIcUMsRWdEZ0h4QyxFQUFBO0UvQ2dDSztJK0NyRE47TXJCUUUsb0J4QjFGcUQ7VXdCMEZyRCxtQnhCMUZxRDtjd0IwRnJELGV4QjFGcUQ7TXdCOEZuRCxnQnhCOUZtRDtNSFBuRCx3QkFGcUM7TUFHckMsdUJBSHFDO00yQndFckMsZ0J4Qi9EbUQ7TTZDdUZuRCxvQkFBbUIsRUFnQnRCLEVBQUE7RS9DMkJLO0krQ2hETjtNaER6RkkseUJBRnFDO01BR3JDLHdCQUhxQyxFZ0RnSHhDLEVBQUE7RUFyQkQ7SUFTSSxrQkFBaUIsRUFXbEI7SS9DaUNHO00rQzdDSjtRQUlJLG1CQUFrQixFQVFyQixFQUFBO0kvQ2lDRztNK0NyRE47UUFlTSxpQkFBZ0IsRUFLbkIsRUFBQTtJL0NpQ0c7TStDckROO1FBa0JNLGdCQUFlLEVBRWxCLEVBQUE7O0FBR0g7RXJCZkUsb0J4QjFGcUQ7TXdCMEZyRCxrQnhCMUZxRDtVd0IwRnJELGN4QjFGcUQ7RXdCOEZuRCxleEI5Rm1EO0VIUG5ELHdCQUZxQztFQUdyQyx1QkFIcUM7RTJCd0VyQyxleEIvRG1EO0U2QzJHckQscUJBQW9CLEVBTXJCO0UvQ2lCSztJK0N6Qk47TWhEaEhJLHlCQUZxQztNQUdyQyx3QkFIcUMsRWdEMEh4QyxFQUFBO0UvQ3NCSztJK0M5Qk47TXJCZkUsb0J4QjFGcUQ7VXdCMEZyRCxtQnhCMUZxRDtjd0IwRnJELGV4QjFGcUQ7TXdCOEZuRCxnQnhCOUZtRDtNSFBuRCx3QkFGcUM7TUFHckMsdUJBSHFDO00yQndFckMsZ0J4Qi9EbUQ7TTZDK0duRCxZQUFXLEVBRWQsRUFBQTtFL0NpQks7SStDekJOO01oRGhISSx5QkFGcUM7TUFHckMsd0JBSHFDLEVnRDBIeEMsRUFBQTs7QUFFRDtFQUNFLGdCQUFlO0VBQ2YsaUJBQWdCO0VBQ2hCLHVCQUFzQjtFQUN0QixlekIxSVksRXlCK0liO0UvQ1dLO0krQ3BCTjtNQU9JLGdCQUFlLEVBRWxC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YUFBWSxFQUNiOztBQUlIO0VBQ0UsY0FBYSxFQUNkOztBRG0rUEQ7RUMvOVBFLCtCQUE4QjtFQUM5Qiw4QkFBcUI7VUFBckIsc0JBQXFCO0VBQ3JCLFlBQVc7RUFDWCxXQUFVO0VBQ1YsYUFBWTtFQUNaLGlCQUFnQjtFQUNoQixXQUFVO0VBQ1YsbUJBQWtCLEVBQ25CIiwiZmlsZSI6InRvb2xraXQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGNoYXJzZXQgXCJVVEYtOFwiO1xuLyoqXG4gKiBUb29sa2l0IHN0eWxlc1xuICovXG5AaW1wb3J0IHVybChcImh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9SW50ZXI6d2dodEAxMDA7MzAwOzQwMDs1MDA7NzAwOzgwMCZkaXNwbGF5PXN3YXBcIik7XG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiaWNvbW9vblwiO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzL2ljb21vb24vZm9udHMvaWNvbW9vbi5lb3Q/a3kzdDU2XCIpO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzL2ljb21vb24vZm9udHMvaWNvbW9vbi5lb3Q/a3kzdDU2I2llZml4XCIpIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLCB1cmwoXCIuLi9mb250cy9pY29tb29uL2ZvbnRzL2ljb21vb24udHRmP2t5M3Q1NlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSwgdXJsKFwiLi4vZm9udHMvaWNvbW9vbi9mb250cy9pY29tb29uLndvZmY/a3kzdDU2XCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcIi4uL2ZvbnRzL2ljb21vb24vZm9udHMvaWNvbW9vbi5zdmc/a3kzdDU2I2ljb21vb25cIikgZm9ybWF0KFwic3ZnXCIpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtZGlzcGxheTogYmxvY2s7IH1cblxuW2NsYXNzXj1cImljb24tXCJdLCBbY2xhc3MqPVwiIGljb24tXCJdIHtcbiAgLyogdXNlICFpbXBvcnRhbnQgdG8gcHJldmVudCBpc3N1ZXMgd2l0aCBicm93c2VyIGV4dGVuc2lvbnMgdGhhdCBjaGFuZ2UgZm9udHMgKi9cbiAgZm9udC1mYW1pbHk6IFwiaWNvbW9vblwiICFpbXBvcnRhbnQ7XG4gIHNwZWFrOiBuZXZlcjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICAvKiBCZXR0ZXIgRm9udCBSZW5kZXJpbmcgPT09PT09PT09PT0gKi9cbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7IH1cblxuLmljb24tZW1haWw6YmVmb3JlIHtcbiAgY29udGVudDogXCLupItcIjsgfVxuXG4uaWNvbi1taW51czpiZWZvcmUge1xuICBjb250ZW50OiBcIu6khlwiOyB9XG5cbi5pY29uLXBsdXM6YmVmb3JlIHtcbiAgY29udGVudDogXCLupIpcIjsgfVxuXG4uaWNvbi10d2l0dGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwi7qSCXCI7IH1cblxuLmljb24tcGludGVyZXN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwi7qSFXCI7IH1cblxuLmljb24tZmFjZWJvb2s6YmVmb3JlIHtcbiAgY29udGVudDogXCLupIdcIjsgfVxuXG4uaWNvbi1pbnN0YWdyYW06YmVmb3JlIHtcbiAgY29udGVudDogXCLupIlcIjsgfVxuXG4uaWNvbi1jYXJ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwi7qSBXCI7IH1cblxuLmljb24tYXZhdGFyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwi7qSDXCI7IH1cblxuLmljb24tY2hldnJvbi1kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwi7qSAXCI7IH1cblxuLmljb24tem9vbTpiZWZvcmUge1xuICBjb250ZW50OiBcIu6kiFwiOyB9XG5cbi5pY29uLXN0YXI6YmVmb3JlIHtcbiAgY29udGVudDogXCLupIxcIjsgfVxuXG4uaWNvbi1hcnJvd19yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIu6khFwiOyB9XG5cbi5pY29uLXBob25lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwi7qWCXCI7IH1cblxuYXJ0aWNsZSxcbmFzaWRlLFxuZGV0YWlscyxcbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5mb290ZXIsXG5oZWFkZXIsXG5oZ3JvdXAsXG5uYXYsXG5zZWN0aW9uLFxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbmF1ZGlvLFxuY2FudmFzLFxudmlkZW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cblxuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiAwOyB9XG5cbltoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQmFzZVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiAxLiBTZXRzIGRlZmF1bHQgZm9udCBmYW1pbHkgdG8gc2Fucy1zZXJpZi5cbiAqIDIuIFByZXZlbnRzIGlPUyB0ZXh0IHNpemUgYWRqdXN0IGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZSwgd2l0aG91dCBkaXNhYmxpbmdcbiAqICAgIHVzZXIgem9vbS5cbiAqL1xuaHRtbCB7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xuICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyB9XG5cbmJvZHkge1xuICBtYXJnaW46IDA7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIExpbmtzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIEFkZHJlc3NlcyBgb3V0bGluZWAgaW5jb25zaXN0ZW5jeSBiZXR3ZWVuIENocm9tZSBhbmQgb3RoZXIgYnJvd3NlcnMuXG4gKi9cbmE6Zm9jdXMge1xuICBvdXRsaW5lOiB0aGluIGRvdHRlZDsgfVxuXG4vKlxuICogSW1wcm92ZXMgcmVhZGFiaWxpdHkgd2hlbiBmb2N1c2VkIGFuZCBhbHNvIG1vdXNlIGhvdmVyZWQgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5hOmFjdGl2ZSxcbmE6aG92ZXIge1xuICBvdXRsaW5lOiAwOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBUeXBvZ3JhcGh5XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIEFkZHJlc3NlcyBgaDFgIGZvbnQgc2l6ZXMgd2l0aGluIGBzZWN0aW9uYCBhbmQgYGFydGljbGVgIGluIEZpcmVmb3ggNCssXG4gKiBTYWZhcmkgNSwgYW5kIENocm9tZS5cbiAqL1xuaDEge1xuICBmb250LXNpemU6IDJlbTsgfVxuXG4vKlxuICogQWRkcmVzc2VzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LCBTYWZhcmkgNSwgYW5kIENocm9tZS5cbiAqL1xuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkOyB9XG5cbi8qXG4gKiBBZGRyZXNzZXMgc3R5bGUgc2V0IHRvIGBib2xkZXJgIGluIEZpcmVmb3ggNCssIFNhZmFyaSA1LCBhbmQgQ2hyb21lLlxuICovXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuLypcbiAqIEFkZHJlc3NlcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIFNhZmFyaSA1IGFuZCBDaHJvbWUuXG4gKi9cbmRmbiB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxuXG4vKlxuICogQWRkcmVzc2VzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LlxuICovXG5tYXJrIHtcbiAgYmFja2dyb3VuZDogI2ZmMDtcbiAgY29sb3I6ICMwMDA7IH1cblxuLypcbiAqIENvcnJlY3RzIGZvbnQgZmFtaWx5IHNldCBvZGRseSBpbiBTYWZhcmkgNSBhbmQgQ2hyb21lLlxuICovXG5jb2RlLFxua2JkLFxucHJlLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIHNlcmlmO1xuICBmb250LXNpemU6IDFlbTsgfVxuXG4vKlxuICogSW1wcm92ZXMgcmVhZGFiaWxpdHkgb2YgcHJlLWZvcm1hdHRlZCB0ZXh0IGluIGFsbCBicm93c2Vycy5cbiAqL1xucHJlIHtcbiAgd2hpdGUtc3BhY2U6IHByZTtcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7IH1cblxuLypcbiAqIFNldHMgY29uc2lzdGVudCBxdW90ZSB0eXBlcy5cbiAqL1xucSB7XG4gIHF1b3RlczogXCJcXDIwMUNcIiBcIlxcMjAxRFwiIFwiXFwyMDE4XCIgXCJcXDIwMTlcIjsgfVxuXG4vKlxuICogQWRkcmVzc2VzIGluY29uc2lzdGVudCBhbmQgdmFyaWFibGUgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqL1xuc21hbGwge1xuICBmb250LXNpemU6IDgwJTsgfVxuXG4vKlxuICogUHJldmVudHMgYHN1YmAgYW5kIGBzdXBgIGFmZmVjdGluZyBgbGluZS1oZWlnaHRgIGluIGFsbCBicm93c2Vycy5cbiAqL1xuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgfVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTsgfVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEVtYmVkZGVkIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogUmVtb3ZlcyBib3JkZXIgd2hlbiBpbnNpZGUgYGFgIGVsZW1lbnQgaW4gSUUgOC85LlxuICovXG5pbWcge1xuICBib3JkZXI6IDA7IH1cblxuLypcbiAqIENvcnJlY3RzIG92ZXJmbG93IGRpc3BsYXllZCBvZGRseSBpbiBJRSA5LlxuICovXG5zdmc6bm90KDpyb290KSB7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEZpZ3VyZXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogQWRkcmVzc2VzIG1hcmdpbiBub3QgcHJlc2VudCBpbiBJRSA4LzkgYW5kIFNhZmFyaSA1LlxuICovXG5maWd1cmUge1xuICBtYXJnaW46IDA7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEZvcm1zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIERlZmluZSBjb25zaXN0ZW50IGJvcmRlciwgbWFyZ2luLCBhbmQgcGFkZGluZy5cbiAqL1xuZmllbGRzZXQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICBtYXJnaW46IDAgMnB4O1xuICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07IH1cblxuLypcbiAqIDEuIENvcnJlY3RzIGNvbG9yIG5vdCBiZWluZyBpbmhlcml0ZWQgaW4gSUUgOC85LlxuICogMi4gUmVtb3ZlIHBhZGRpbmcgc28gcGVvcGxlIGFyZW4ndCBjYXVnaHQgb3V0IGlmIHRoZXkgemVybyBvdXQgZmllbGRzZXRzLlxuICovXG5sZWdlbmQge1xuICBib3JkZXI6IDA7XG4gIC8qIDEgKi9cbiAgcGFkZGluZzogMDtcbiAgLyogMiAqLyB9XG5cbi8qXG4gKiAxLiBDb3JyZWN0cyBmb250IGZhbWlseSBub3QgYmVpbmcgaW5oZXJpdGVkIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3RzIGZvbnQgc2l6ZSBub3QgYmVpbmcgaW5oZXJpdGVkIGluIGFsbCBicm93c2Vycy5cbiAqIDMuIEFkZHJlc3NlcyBtYXJnaW5zIHNldCBkaWZmZXJlbnRseSBpbiBGaXJlZm94IDQrLCBTYWZhcmkgNSwgYW5kIENocm9tZVxuICovXG5idXR0b24sXG5pbnB1dCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMTAwJTtcbiAgbWFyZ2luOiAwOyB9XG5cbi8qXG4gKiBBZGRyZXNzZXMgRmlyZWZveCA0KyBzZXR0aW5nIGBsaW5lLWhlaWdodGAgb24gYGlucHV0YCB1c2luZyBgIWltcG9ydGFudGAgaW5cbiAqIHRoZSBVQSBzdHlsZXNoZWV0LlxuICovXG5idXR0b24sXG5pbnB1dCB7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7IH1cblxuLypcbiAqIDEuIEF2b2lkIHRoZSBXZWJLaXQgYnVnIGluIEFuZHJvaWQgNC4wLiogd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gXG4gKiAgICBhbmQgYHZpZGVvYCBjb250cm9scy5cbiAqIDIuIENvcnJlY3RzIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgYGlucHV0YCB0eXBlcyBpbiBpT1MuXG4gKiAzLiBJbXByb3ZlcyB1c2FiaWxpdHkgYW5kIGNvbnNpc3RlbmN5IG9mIGN1cnNvciBzdHlsZSBiZXR3ZWVuIGltYWdlLXR5cGVcbiAqICAgIGBpbnB1dGAgYW5kIG90aGVycy5cbiAqL1xuYnV0dG9uLFxuaHRtbCBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLFxuaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICAvKiAyICovXG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgLyogMyAqLyB9XG5cbi8qXG4gKiBSZS1zZXQgZGVmYXVsdCBjdXJzb3IgZm9yIGRpc2FibGVkIGVsZW1lbnRzLlxuICovXG5idXR0b25bZGlzYWJsZWRdLFxuaW5wdXRbZGlzYWJsZWRdIHtcbiAgY3Vyc29yOiBkZWZhdWx0OyB9XG5cbi8qXG4gKiAxLiBBZGRyZXNzZXMgYm94IHNpemluZyBzZXQgdG8gYGNvbnRlbnQtYm94YCBpbiBJRSA4LzkuXG4gKiAyLiBSZW1vdmVzIGV4Y2VzcyBwYWRkaW5nIGluIElFIDgvOS5cbiAqL1xuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLyogMSAqL1xuICBwYWRkaW5nOiAwO1xuICAvKiAyICovIH1cblxuLypcbiAqIDEuIEFkZHJlc3NlcyBgYXBwZWFyYW5jZWAgc2V0IHRvIGBzZWFyY2hmaWVsZGAgaW4gU2FmYXJpIDUgYW5kIENocm9tZS5cbiAqIDIuIEFkZHJlc3NlcyBgYm94LXNpemluZ2Agc2V0IHRvIGBib3JkZXItYm94YCBpbiBTYWZhcmkgNSBhbmQgQ2hyb21lXG4gKiAgICAoaW5jbHVkZSBgLW1vemAgdG8gZnV0dXJlLXByb29mKS5cbiAqL1xuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuICAtbW96LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAtd2Via2l0LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgfVxuXG4vKlxuICogUmVtb3ZlcyBpbm5lciBwYWRkaW5nIGFuZCBzZWFyY2ggY2FuY2VsIGJ1dHRvbiBpbiBTYWZhcmkgNSBhbmQgQ2hyb21lXG4gKiBvbiBPUyBYLlxuICovXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgfVxuXG4vKlxuICogUmVtb3ZlcyBpbm5lciBwYWRkaW5nIGFuZCBib3JkZXIgaW4gRmlyZWZveCA0Ky5cbiAqL1xuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7IH1cblxuLypcbiAqIDEuIFJlbW92ZXMgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgOC85LlxuICogMi4gSW1wcm92ZXMgcmVhZGFiaWxpdHkgYW5kIGFsaWdubWVudCBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIC8qIDEgKi9cbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgLyogMiAqLyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBUYWJsZXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogUmVtb3ZlIG1vc3Qgc3BhY2luZyBiZXR3ZWVuIHRhYmxlIGNlbGxzLlxuICovXG50YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGJvcmRlci1zcGFjaW5nOiAwOyB9XG5cbi8qXG4qIFNjdXQsIGEgY29sbGVjdGlvbiBvZiBTYXNzIHV0aWxpdGllc1xuKiB0byBlYXNlIGFuZCBpbXByb3ZlIG91ciBpbXBsZW1lbnRhdGlvbnMgb2YgY29tbW9uIHN0eWxlLWNvZGUgcGF0dGVybnMuXG4qIHYxLjQuMFxuKiBEb2NzIGF0IGh0dHA6Ly9kYXZpZHRoZWNsYXJrLmdpdGh1Yi5pby9zY3V0XG4qL1xuLyoqXG4gKiBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4gKiBWZXJzaW9uIDYuNC4xXG4gKiBmb3VuZGF0aW9uLnp1cmIuY29tXG4gKiBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcbiAqL1xuLyohXG5DaG9zZW4sIGEgU2VsZWN0IEJveCBFbmhhbmNlciBmb3IgalF1ZXJ5IGFuZCBQcm90b3R5cGVcbmJ5IFBhdHJpY2sgRmlsbGVyIGZvciBIYXJ2ZXN0LCBodHRwOi8vZ2V0aGFydmVzdC5jb21cblxuVmVyc2lvbiAxLjguN1xuRnVsbCBzb3VyY2UgYXQgaHR0cHM6Ly9naXRodWIuY29tL2hhcnZlc3RocS9jaG9zZW5cbkNvcHlyaWdodCAoYykgMjAxMS0yMDE4IEhhcnZlc3QgaHR0cDovL2dldGhhcnZlc3QuY29tXG5cbk1JVCBMaWNlbnNlLCBodHRwczovL2dpdGh1Yi5jb20vaGFydmVzdGhxL2Nob3Nlbi9ibG9iL21hc3Rlci9MSUNFTlNFLm1kXG5UaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGJ5IGBncnVudCBidWlsZGAsIGRvIG5vdCBlZGl0IGl0IGJ5IGhhbmQuXG4qL1xuLyogQGdyb3VwIEJhc2UgKi9cbi5jaG9zZW4tY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTsgfVxuXG4uY2hvc2VuLWNvbnRhaW5lciAqIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cbi5jaG9zZW4tY29udGFpbmVyIC5jaG9zZW4tZHJvcCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxMDAlO1xuICB6LWluZGV4OiAxMDEwO1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2FhYTtcbiAgYm9yZGVyLXRvcDogMDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDRweCA1cHggcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgYm94LXNoYWRvdzogMCA0cHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XG4gIC13ZWJraXQtY2xpcC1wYXRoOiBpbnNldCgxMDAlIDEwMCUpO1xuICBjbGlwLXBhdGg6IGluc2V0KDEwMCUgMTAwJSk7IH1cblxuLmNob3Nlbi1jb250YWluZXIuY2hvc2VuLXdpdGgtZHJvcCAuY2hvc2VuLWRyb3Age1xuICBjbGlwOiBhdXRvO1xuICAtd2Via2l0LWNsaXAtcGF0aDogbm9uZTtcbiAgY2xpcC1wYXRoOiBub25lOyB9XG5cbi5jaG9zZW4tY29udGFpbmVyIGEge1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cblxuLmNob3Nlbi1jb250YWluZXIgLnNlYXJjaC1jaG9pY2UgLmdyb3VwLW5hbWUsIC5jaG9zZW4tY29udGFpbmVyIC5jaG9zZW4tc2luZ2xlIC5ncm91cC1uYW1lIHtcbiAgbWFyZ2luLXJpZ2h0OiA0cHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBjb2xvcjogIzk5OTk5OTsgfVxuXG4uY2hvc2VuLWNvbnRhaW5lciAuc2VhcmNoLWNob2ljZSAuZ3JvdXAtbmFtZTphZnRlciwgLmNob3Nlbi1jb250YWluZXIgLmNob3Nlbi1zaW5nbGUgLmdyb3VwLW5hbWU6YWZ0ZXIge1xuICBjb250ZW50OiBcIjpcIjtcbiAgcGFkZGluZy1sZWZ0OiAycHg7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7IH1cblxuLyogQGVuZCAqL1xuLyogQGdyb3VwIFNpbmdsZSBDaG9zZW4gKi9cbi5jaG9zZW4tY29udGFpbmVyLXNpbmdsZSAuY2hvc2VuLXNpbmdsZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDAgMCAwIDhweDtcbiAgaGVpZ2h0OiAyNXB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjYWFhO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQ6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgbGVmdCBib3R0b20sIGNvbG9yLXN0b3AoMjAlLCAjZmZmKSwgY29sb3Itc3RvcCg1MCUsICNmNmY2ZjYpLCBjb2xvci1zdG9wKDUyJSwgI2VlZSksIHRvKCNmNGY0ZjQpKTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KCNmZmYgMjAlLCAjZjZmNmY2IDUwJSwgI2VlZSA1MiUsICNmNGY0ZjQgMTAwJSk7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAwIDNweCAjZmZmIGluc2V0LCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBib3gtc2hhZG93OiAwIDAgM3B4ICNmZmYgaW5zZXQsIDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIGNvbG9yOiAjNDQ0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4OyB9XG5cbi5jaG9zZW4tY29udGFpbmVyLXNpbmdsZSAuY2hvc2VuLWRlZmF1bHQge1xuICBjb2xvcjogIzk5OTsgfVxuXG4uY2hvc2VuLWNvbnRhaW5lci1zaW5nbGUgLmNob3Nlbi1zaW5nbGUgc3BhbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBtYXJnaW4tcmlnaHQ6IDI2cHg7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG5cbi5jaG9zZW4tY29udGFpbmVyLXNpbmdsZSAuY2hvc2VuLXNpbmdsZS13aXRoLWRlc2VsZWN0IHNwYW4ge1xuICBtYXJnaW4tcmlnaHQ6IDM4cHg7IH1cblxuLmNob3Nlbi1jb250YWluZXItc2luZ2xlIC5jaG9zZW4tc2luZ2xlIGFiYnIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNnB4O1xuICByaWdodDogMjZweDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMnB4O1xuICBoZWlnaHQ6IDEycHg7XG4gIGJhY2tncm91bmQ6IHVybChcImNob3Nlbi1zcHJpdGUucG5nXCIpIC00MnB4IDFweCBuby1yZXBlYXQ7XG4gIGZvbnQtc2l6ZTogMXB4OyB9XG5cbi5jaG9zZW4tY29udGFpbmVyLXNpbmdsZSAuY2hvc2VuLXNpbmdsZSBhYmJyOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQycHggLTEwcHg7IH1cblxuLmNob3Nlbi1jb250YWluZXItc2luZ2xlLmNob3Nlbi1kaXNhYmxlZCAuY2hvc2VuLXNpbmdsZSBhYmJyOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQycHggLTEwcHg7IH1cblxuLmNob3Nlbi1jb250YWluZXItc2luZ2xlIC5jaG9zZW4tc2luZ2xlIGRpdiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxOHB4O1xuICBoZWlnaHQ6IDEwMCU7IH1cblxuLmNob3Nlbi1jb250YWluZXItc2luZ2xlIC5jaG9zZW4tc2luZ2xlIGRpdiBiIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQ6IHVybChcImNob3Nlbi1zcHJpdGUucG5nXCIpIG5vLXJlcGVhdCAwcHggMnB4OyB9XG5cbi5jaG9zZW4tY29udGFpbmVyLXNpbmdsZSAuY2hvc2VuLXNlYXJjaCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTAxMDtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAzcHggNHB4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG5cbi5jaG9zZW4tY29udGFpbmVyLXNpbmdsZSAuY2hvc2VuLXNlYXJjaCBpbnB1dFt0eXBlPVwidGV4dFwiXSB7XG4gIG1hcmdpbjogMXB4IDA7XG4gIHBhZGRpbmc6IDRweCAyMHB4IDRweCA1cHg7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG4gIG91dGxpbmU6IDA7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNhYWE7XG4gIGJhY2tncm91bmQ6IHVybChcImNob3Nlbi1zcHJpdGUucG5nXCIpIG5vLXJlcGVhdCAxMDAlIC0yMHB4O1xuICBmb250LXNpemU6IDFlbTtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIGJvcmRlci1yYWRpdXM6IDA7IH1cblxuLmNob3Nlbi1jb250YWluZXItc2luZ2xlIC5jaG9zZW4tZHJvcCB7XG4gIG1hcmdpbi10b3A6IC0xcHg7XG4gIGJvcmRlci1yYWRpdXM6IDAgMCA0cHggNHB4O1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94OyB9XG5cbi5jaG9zZW4tY29udGFpbmVyLXNpbmdsZS5jaG9zZW4tY29udGFpbmVyLXNpbmdsZS1ub3NlYXJjaCAuY2hvc2VuLXNlYXJjaCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcbiAgLXdlYmtpdC1jbGlwLXBhdGg6IGluc2V0KDEwMCUgMTAwJSk7XG4gIGNsaXAtcGF0aDogaW5zZXQoMTAwJSAxMDAlKTsgfVxuXG4vKiBAZW5kICovXG4vKiBAZ3JvdXAgUmVzdWx0cyAqL1xuLmNob3Nlbi1jb250YWluZXIgLmNob3Nlbi1yZXN1bHRzIHtcbiAgY29sb3I6ICM0NDQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBtYXJnaW46IDAgNHB4IDRweCAwO1xuICBwYWRkaW5nOiAwIDAgMCA0cHg7XG4gIG1heC1oZWlnaHQ6IDI0MHB4O1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7IH1cblxuLmNob3Nlbi1jb250YWluZXIgLmNob3Nlbi1yZXN1bHRzIGxpIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiA1cHggNnB4O1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBsaW5lLWhlaWdodDogMTVweDtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7IH1cblxuLmNob3Nlbi1jb250YWluZXIgLmNob3Nlbi1yZXN1bHRzIGxpLmFjdGl2ZS1yZXN1bHQge1xuICBkaXNwbGF5OiBsaXN0LWl0ZW07XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuXG4uY2hvc2VuLWNvbnRhaW5lciAuY2hvc2VuLXJlc3VsdHMgbGkuZGlzYWJsZWQtcmVzdWx0IHtcbiAgZGlzcGxheTogbGlzdC1pdGVtO1xuICBjb2xvcjogI2NjYztcbiAgY3Vyc29yOiBkZWZhdWx0OyB9XG5cbi5jaG9zZW4tY29udGFpbmVyIC5jaG9zZW4tcmVzdWx0cyBsaS5oaWdobGlnaHRlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzODc1ZDc7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgbGVmdCBib3R0b20sIGNvbG9yLXN0b3AoMjAlLCAjMzg3NWQ3KSwgY29sb3Itc3RvcCg5MCUsICMyYTYyYmMpKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KCMzODc1ZDcgMjAlLCAjMmE2MmJjIDkwJSk7XG4gIGNvbG9yOiAjZmZmOyB9XG5cbi5jaG9zZW4tY29udGFpbmVyIC5jaG9zZW4tcmVzdWx0cyBsaS5uby1yZXN1bHRzIHtcbiAgY29sb3I6ICM3Nzc7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTtcbiAgYmFja2dyb3VuZDogI2Y0ZjRmNDsgfVxuXG4uY2hvc2VuLWNvbnRhaW5lciAuY2hvc2VuLXJlc3VsdHMgbGkuZ3JvdXAtcmVzdWx0IHtcbiAgZGlzcGxheTogbGlzdC1pdGVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY3Vyc29yOiBkZWZhdWx0OyB9XG5cbi5jaG9zZW4tY29udGFpbmVyIC5jaG9zZW4tcmVzdWx0cyBsaS5ncm91cC1vcHRpb24ge1xuICBwYWRkaW5nLWxlZnQ6IDE1cHg7IH1cblxuLmNob3Nlbi1jb250YWluZXIgLmNob3Nlbi1yZXN1bHRzIGxpIGVtIHtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuXG4vKiBAZW5kICovXG4vKiBAZ3JvdXAgTXVsdGkgQ2hvc2VuICovXG4uY2hvc2VuLWNvbnRhaW5lci1tdWx0aSAuY2hvc2VuLWNob2ljZXMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMCA1cHg7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG4gIGJvcmRlcjogMXB4IHNvbGlkICNhYWE7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgbGVmdCBib3R0b20sIGNvbG9yLXN0b3AoMSUsICNlZWUpLCBjb2xvci1zdG9wKDE1JSwgI2ZmZikpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoI2VlZSAxJSwgI2ZmZiAxNSUpO1xuICBjdXJzb3I6IHRleHQ7IH1cblxuLmNob3Nlbi1jb250YWluZXItbXVsdGkgLmNob3Nlbi1jaG9pY2VzIGxpIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7IH1cblxuLmNob3Nlbi1jb250YWluZXItbXVsdGkgLmNob3Nlbi1jaG9pY2VzIGxpLnNlYXJjaC1maWVsZCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuXG4uY2hvc2VuLWNvbnRhaW5lci1tdWx0aSAuY2hvc2VuLWNob2ljZXMgbGkuc2VhcmNoLWZpZWxkIGlucHV0W3R5cGU9XCJ0ZXh0XCJdIHtcbiAgbWFyZ2luOiAxcHggMDtcbiAgcGFkZGluZzogMDtcbiAgaGVpZ2h0OiAyNXB4O1xuICBvdXRsaW5lOiAwO1xuICBib3JkZXI6IDAgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xuICBib3gtc2hhZG93OiBub25lO1xuICBjb2xvcjogIzk5OTtcbiAgZm9udC1zaXplOiAxMDAlO1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgd2lkdGg6IDI1cHg7IH1cblxuLmNob3Nlbi1jb250YWluZXItbXVsdGkgLmNob3Nlbi1jaG9pY2VzIGxpLnNlYXJjaC1jaG9pY2Uge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbjogM3B4IDVweCAzcHggMDtcbiAgcGFkZGluZzogM3B4IDIwcHggM3B4IDVweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2FhYTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZWVlZWU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgbGVmdCBib3R0b20sIGNvbG9yLXN0b3AoMjAlLCAjZjRmNGY0KSwgY29sb3Itc3RvcCg1MCUsICNmMGYwZjApLCBjb2xvci1zdG9wKDUyJSwgI2U4ZThlOCksIHRvKCNlZWUpKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KCNmNGY0ZjQgMjAlLCAjZjBmMGYwIDUwJSwgI2U4ZThlOCA1MiUsICNlZWUgMTAwJSk7XG4gIGJhY2tncm91bmQtc2l6ZTogMTAwJSAxOXB4O1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAwIDJweCAjZmZmIGluc2V0LCAwIDFweCAwIHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gIGJveC1zaGFkb3c6IDAgMCAycHggI2ZmZiBpbnNldCwgMCAxcHggMCByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICBjb2xvcjogIzMzMztcbiAgbGluZS1oZWlnaHQ6IDEzcHg7XG4gIGN1cnNvcjogZGVmYXVsdDsgfVxuXG4uY2hvc2VuLWNvbnRhaW5lci1tdWx0aSAuY2hvc2VuLWNob2ljZXMgbGkuc2VhcmNoLWNob2ljZSBzcGFuIHtcbiAgd29yZC13cmFwOiBicmVhay13b3JkOyB9XG5cbi5jaG9zZW4tY29udGFpbmVyLW11bHRpIC5jaG9zZW4tY2hvaWNlcyBsaS5zZWFyY2gtY2hvaWNlIC5zZWFyY2gtY2hvaWNlLWNsb3NlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDRweDtcbiAgcmlnaHQ6IDNweDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMnB4O1xuICBoZWlnaHQ6IDEycHg7XG4gIGJhY2tncm91bmQ6IHVybChcImNob3Nlbi1zcHJpdGUucG5nXCIpIC00MnB4IDFweCBuby1yZXBlYXQ7XG4gIGZvbnQtc2l6ZTogMXB4OyB9XG5cbi5jaG9zZW4tY29udGFpbmVyLW11bHRpIC5jaG9zZW4tY2hvaWNlcyBsaS5zZWFyY2gtY2hvaWNlIC5zZWFyY2gtY2hvaWNlLWNsb3NlOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQycHggLTEwcHg7IH1cblxuLmNob3Nlbi1jb250YWluZXItbXVsdGkgLmNob3Nlbi1jaG9pY2VzIGxpLnNlYXJjaC1jaG9pY2UtZGlzYWJsZWQge1xuICBwYWRkaW5nLXJpZ2h0OiA1cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNGU0ZTQ7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgbGVmdCBib3R0b20sIGNvbG9yLXN0b3AoMjAlLCAjZjRmNGY0KSwgY29sb3Itc3RvcCg1MCUsICNmMGYwZjApLCBjb2xvci1zdG9wKDUyJSwgI2U4ZThlOCksIHRvKCNlZWUpKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KCNmNGY0ZjQgMjAlLCAjZjBmMGYwIDUwJSwgI2U4ZThlOCA1MiUsICNlZWUgMTAwJSk7XG4gIGNvbG9yOiAjNjY2OyB9XG5cbi5jaG9zZW4tY29udGFpbmVyLW11bHRpIC5jaG9zZW4tY2hvaWNlcyBsaS5zZWFyY2gtY2hvaWNlLWZvY3VzIHtcbiAgYmFja2dyb3VuZDogI2Q0ZDRkNDsgfVxuXG4uY2hvc2VuLWNvbnRhaW5lci1tdWx0aSAuY2hvc2VuLWNob2ljZXMgbGkuc2VhcmNoLWNob2ljZS1mb2N1cyAuc2VhcmNoLWNob2ljZS1jbG9zZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC00MnB4IC0xMHB4OyB9XG5cbi5jaG9zZW4tY29udGFpbmVyLW11bHRpIC5jaG9zZW4tcmVzdWx0cyB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDsgfVxuXG4uY2hvc2VuLWNvbnRhaW5lci1tdWx0aSAuY2hvc2VuLWRyb3AgLnJlc3VsdC1zZWxlY3RlZCB7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTtcbiAgY29sb3I6ICNjY2M7XG4gIGN1cnNvcjogZGVmYXVsdDsgfVxuXG4vKiBAZW5kICovXG4vKiBAZ3JvdXAgQWN0aXZlICAqL1xuLmNob3Nlbi1jb250YWluZXItYWN0aXZlIC5jaG9zZW4tc2luZ2xlIHtcbiAgYm9yZGVyOiAxcHggc29saWQgIzU4OTdmYjtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgNXB4IHJnYmEoMCwgMCwgMCwgMC4zKTtcbiAgYm94LXNoYWRvdzogMCAwIDVweCByZ2JhKDAsIDAsIDAsIDAuMyk7IH1cblxuLmNob3Nlbi1jb250YWluZXItYWN0aXZlLmNob3Nlbi13aXRoLWRyb3AgLmNob3Nlbi1zaW5nbGUge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYWFhO1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgY29sb3Itc3RvcCgyMCUsICNlZWUpLCBjb2xvci1zdG9wKDgwJSwgI2ZmZikpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoI2VlZSAyMCUsICNmZmYgODAlKTtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDFweCAwICNmZmYgaW5zZXQ7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDAgI2ZmZiBpbnNldDsgfVxuXG4uY2hvc2VuLWNvbnRhaW5lci1hY3RpdmUuY2hvc2VuLXdpdGgtZHJvcCAuY2hvc2VuLXNpbmdsZSBkaXYge1xuICBib3JkZXItbGVmdDogbm9uZTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cblxuLmNob3Nlbi1jb250YWluZXItYWN0aXZlLmNob3Nlbi13aXRoLWRyb3AgLmNob3Nlbi1zaW5nbGUgZGl2IGIge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMThweCAycHg7IH1cblxuLmNob3Nlbi1jb250YWluZXItYWN0aXZlIC5jaG9zZW4tY2hvaWNlcyB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICM1ODk3ZmI7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAwIDVweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG4gIGJveC1zaGFkb3c6IDAgMCA1cHggcmdiYSgwLCAwLCAwLCAwLjMpOyB9XG5cbi5jaG9zZW4tY29udGFpbmVyLWFjdGl2ZSAuY2hvc2VuLWNob2ljZXMgbGkuc2VhcmNoLWZpZWxkIGlucHV0W3R5cGU9XCJ0ZXh0XCJdIHtcbiAgY29sb3I6ICMyMjIgIWltcG9ydGFudDsgfVxuXG4vKiBAZW5kICovXG4vKiBAZ3JvdXAgRGlzYWJsZWQgU3VwcG9ydCAqL1xuLmNob3Nlbi1kaXNhYmxlZCB7XG4gIG9wYWNpdHk6IDAuNSAhaW1wb3J0YW50O1xuICBjdXJzb3I6IGRlZmF1bHQ7IH1cblxuLmNob3Nlbi1kaXNhYmxlZCAuY2hvc2VuLXNpbmdsZSB7XG4gIGN1cnNvcjogZGVmYXVsdDsgfVxuXG4uY2hvc2VuLWRpc2FibGVkIC5jaG9zZW4tY2hvaWNlcyAuc2VhcmNoLWNob2ljZSAuc2VhcmNoLWNob2ljZS1jbG9zZSB7XG4gIGN1cnNvcjogZGVmYXVsdDsgfVxuXG4vKiBAZW5kICovXG4vKiBAZ3JvdXAgUmlnaHQgdG8gTGVmdCAqL1xuLmNob3Nlbi1ydGwge1xuICB0ZXh0LWFsaWduOiByaWdodDsgfVxuXG4uY2hvc2VuLXJ0bCAuY2hvc2VuLXNpbmdsZSB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBwYWRkaW5nOiAwIDhweCAwIDA7IH1cblxuLmNob3Nlbi1ydGwgLmNob3Nlbi1zaW5nbGUgc3BhbiB7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IDI2cHg7XG4gIGRpcmVjdGlvbjogcnRsOyB9XG5cbi5jaG9zZW4tcnRsIC5jaG9zZW4tc2luZ2xlLXdpdGgtZGVzZWxlY3Qgc3BhbiB7XG4gIG1hcmdpbi1sZWZ0OiAzOHB4OyB9XG5cbi5jaG9zZW4tcnRsIC5jaG9zZW4tc2luZ2xlIGRpdiB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAzcHg7IH1cblxuLmNob3Nlbi1ydGwgLmNob3Nlbi1zaW5nbGUgYWJiciB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAyNnB4OyB9XG5cbi5jaG9zZW4tcnRsIC5jaG9zZW4tY2hvaWNlcyBsaSB7XG4gIGZsb2F0OiByaWdodDsgfVxuXG4uY2hvc2VuLXJ0bCAuY2hvc2VuLWNob2ljZXMgbGkuc2VhcmNoLWZpZWxkIGlucHV0W3R5cGU9XCJ0ZXh0XCJdIHtcbiAgZGlyZWN0aW9uOiBydGw7IH1cblxuLmNob3Nlbi1ydGwgLmNob3Nlbi1jaG9pY2VzIGxpLnNlYXJjaC1jaG9pY2Uge1xuICBtYXJnaW46IDNweCA1cHggM3B4IDA7XG4gIHBhZGRpbmc6IDNweCA1cHggM3B4IDE5cHg7IH1cblxuLmNob3Nlbi1ydGwgLmNob3Nlbi1jaG9pY2VzIGxpLnNlYXJjaC1jaG9pY2UgLnNlYXJjaC1jaG9pY2UtY2xvc2Uge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogNHB4OyB9XG5cbi5jaG9zZW4tcnRsLmNob3Nlbi1jb250YWluZXItc2luZ2xlIC5jaG9zZW4tcmVzdWx0cyB7XG4gIG1hcmdpbjogMCAwIDRweCA0cHg7XG4gIHBhZGRpbmc6IDAgNHB4IDAgMDsgfVxuXG4uY2hvc2VuLXJ0bCAuY2hvc2VuLXJlc3VsdHMgbGkuZ3JvdXAtb3B0aW9uIHtcbiAgcGFkZGluZy1yaWdodDogMTVweDtcbiAgcGFkZGluZy1sZWZ0OiAwOyB9XG5cbi5jaG9zZW4tcnRsLmNob3Nlbi1jb250YWluZXItYWN0aXZlLmNob3Nlbi13aXRoLWRyb3AgLmNob3Nlbi1zaW5nbGUgZGl2IHtcbiAgYm9yZGVyLXJpZ2h0OiBub25lOyB9XG5cbi5jaG9zZW4tcnRsIC5jaG9zZW4tc2VhcmNoIGlucHV0W3R5cGU9XCJ0ZXh0XCJdIHtcbiAgcGFkZGluZzogNHB4IDVweCA0cHggMjBweDtcbiAgYmFja2dyb3VuZDogdXJsKFwiY2hvc2VuLXNwcml0ZS5wbmdcIikgbm8tcmVwZWF0IC0zMHB4IC0yMHB4O1xuICBkaXJlY3Rpb246IHJ0bDsgfVxuXG4uY2hvc2VuLXJ0bC5jaG9zZW4tY29udGFpbmVyLXNpbmdsZSAuY2hvc2VuLXNpbmdsZSBkaXYgYiB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDZweCAycHg7IH1cblxuLmNob3Nlbi1ydGwuY2hvc2VuLWNvbnRhaW5lci1zaW5nbGUuY2hvc2VuLXdpdGgtZHJvcCAuY2hvc2VuLXNpbmdsZSBkaXYgYiB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xMnB4IDJweDsgfVxuXG4vKiBAZW5kICovXG4vKiBAZ3JvdXAgUmV0aW5hIGNvbXBhdGliaWxpdHkgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMS41KSwgb25seSBzY3JlZW4gYW5kIChtaW4tcmVzb2x1dGlvbjogMTQ0ZHBpKSwgb25seSBzY3JlZW4gYW5kIChtaW4tcmVzb2x1dGlvbjogMS41ZHBweCkge1xuICAuY2hvc2VuLXJ0bCAuY2hvc2VuLXNlYXJjaCBpbnB1dFt0eXBlPVwidGV4dFwiXSxcbiAgLmNob3Nlbi1jb250YWluZXItc2luZ2xlIC5jaG9zZW4tc2luZ2xlIGFiYnIsXG4gIC5jaG9zZW4tY29udGFpbmVyLXNpbmdsZSAuY2hvc2VuLXNpbmdsZSBkaXYgYixcbiAgLmNob3Nlbi1jb250YWluZXItc2luZ2xlIC5jaG9zZW4tc2VhcmNoIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuICAuY2hvc2VuLWNvbnRhaW5lci1tdWx0aSAuY2hvc2VuLWNob2ljZXMgLnNlYXJjaC1jaG9pY2UgLnNlYXJjaC1jaG9pY2UtY2xvc2UsXG4gIC5jaG9zZW4tY29udGFpbmVyIC5jaG9zZW4tcmVzdWx0cy1zY3JvbGwtZG93biBzcGFuLFxuICAuY2hvc2VuLWNvbnRhaW5lciAuY2hvc2VuLXJlc3VsdHMtc2Nyb2xsLXVwIHNwYW4ge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImNob3Nlbi1zcHJpdGVAMngucG5nXCIpICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiA1MnB4IDM3cHggIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0ICFpbXBvcnRhbnQ7IH0gfVxuXG4vKiBAZW5kICovXG4vKlxuICogIE93bCBDYXJvdXNlbCAtIENvcmVcbiAqL1xuLm93bC1jYXJvdXNlbCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAvKiBwb3NpdGlvbiByZWxhdGl2ZSBhbmQgei1pbmRleCBmaXggd2Via2l0IHJlbmRlcmluZyBmb250cyBpc3N1ZSAqL1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7IH1cbiAgLm93bC1jYXJvdXNlbCAub3dsLXN0YWdlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgLW1zLXRvdWNoLWFjdGlvbjogcGFuLVk7XG4gICAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG4gICAgLW1vei1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgLyogZml4IGZpcmVmb3ggYW5pbWF0aW9uIGdsaXRjaCAqLyB9XG4gIC5vd2wtY2Fyb3VzZWwgLm93bC1zdGFnZTphZnRlciB7XG4gICAgY29udGVudDogXCIuXCI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIGhlaWdodDogMDsgfVxuICAub3dsLWNhcm91c2VsIC5vd2wtc3RhZ2Utb3V0ZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIC8qIGZpeCBmb3IgZmxhc2hpbmcgYmFja2dyb3VuZCAqL1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwcHgsIDBweCwgMHB4KTsgfVxuICAub3dsLWNhcm91c2VsIC5vd2wtd3JhcHBlcixcbiAgLm93bC1jYXJvdXNlbCAub3dsLWl0ZW0ge1xuICAgIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIC1tb3otYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIC1tcy1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsgfVxuICAub3dsLWNhcm91c2VsIC5vd2wtaXRlbSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1pbi1oZWlnaHQ6IDFweDtcbiAgICBmbG9hdDogbGVmdDtcbiAgICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTsgfVxuICAub3dsLWNhcm91c2VsIC5vd2wtaXRlbSBpbWcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5vd2wtY2Fyb3VzZWwgLm93bC1uYXYuZGlzYWJsZWQsXG4gIC5vd2wtY2Fyb3VzZWwgLm93bC1kb3RzLmRpc2FibGVkIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5vd2wtY2Fyb3VzZWwgLm93bC1uYXYgLm93bC1wcmV2LFxuICAub3dsLWNhcm91c2VsIC5vd2wtbmF2IC5vd2wtbmV4dCxcbiAgLm93bC1jYXJvdXNlbCAub3dsLWRvdCB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLWtodG1sLXVzZXItc2VsZWN0OiBub25lO1xuICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICAgIHVzZXItc2VsZWN0OiBub25lOyB9XG4gIC5vd2wtY2Fyb3VzZWwgLm93bC1uYXYgYnV0dG9uLm93bC1wcmV2LFxuICAub3dsLWNhcm91c2VsIC5vd2wtbmF2IGJ1dHRvbi5vd2wtbmV4dCxcbiAgLm93bC1jYXJvdXNlbCBidXR0b24ub3dsLWRvdCB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgIGZvbnQ6IGluaGVyaXQ7IH1cbiAgLm93bC1jYXJvdXNlbC5vd2wtbG9hZGVkIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAub3dsLWNhcm91c2VsLm93bC1sb2FkaW5nIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5vd2wtY2Fyb3VzZWwub3dsLWhpZGRlbiB7XG4gICAgb3BhY2l0eTogMDsgfVxuICAub3dsLWNhcm91c2VsLm93bC1yZWZyZXNoIC5vd2wtaXRlbSB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG4gIC5vd2wtY2Fyb3VzZWwub3dsLWRyYWcgLm93bC1pdGVtIHtcbiAgICB0b3VjaC1hY3Rpb246IHBhbi15O1xuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7IH1cbiAgLm93bC1jYXJvdXNlbC5vd2wtZ3JhYiB7XG4gICAgY3Vyc29yOiBtb3ZlO1xuICAgIGN1cnNvcjogZ3JhYjsgfVxuICAub3dsLWNhcm91c2VsLm93bC1ydGwge1xuICAgIGRpcmVjdGlvbjogcnRsOyB9XG4gIC5vd2wtY2Fyb3VzZWwub3dsLXJ0bCAub3dsLWl0ZW0ge1xuICAgIGZsb2F0OiByaWdodDsgfVxuXG4vKiBObyBKcyAqL1xuLm5vLWpzIC5vd2wtY2Fyb3VzZWwge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4vKlxuICogIE93bCBDYXJvdXNlbCAtIEFuaW1hdGUgUGx1Z2luXG4gKi9cbi5vd2wtY2Fyb3VzZWwgLmFuaW1hdGVkIHtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxMDAwbXM7XG4gIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7IH1cblxuLm93bC1jYXJvdXNlbCAub3dsLWFuaW1hdGVkLWluIHtcbiAgei1pbmRleDogMDsgfVxuXG4ub3dsLWNhcm91c2VsIC5vd2wtYW5pbWF0ZWQtb3V0IHtcbiAgei1pbmRleDogMTsgfVxuXG4ub3dsLWNhcm91c2VsIC5mYWRlT3V0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXQ7IH1cblxuQGtleWZyYW1lcyBmYWRlT3V0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDsgfSB9XG5cbi8qXG4gKiBcdE93bCBDYXJvdXNlbCAtIEF1dG8gSGVpZ2h0IFBsdWdpblxuICovXG4ub3dsLWhlaWdodCB7XG4gIHRyYW5zaXRpb246IGhlaWdodCA1MDBtcyBlYXNlLWluLW91dDsgfVxuXG4vKlxuICogXHRPd2wgQ2Fyb3VzZWwgLSBMYXp5IExvYWQgUGx1Z2luXG4gKi9cbi5vd2wtY2Fyb3VzZWwgLm93bC1pdGVtIHtcbiAgLyoqXG5cdFx0XHRUaGlzIGlzIGludHJvZHVjZWQgZHVlIHRvIGEgYnVnIGluIElFMTEgd2hlcmUgbGF6eSBsb2FkaW5nIGNvbWJpbmVkIHdpdGggYXV0b2hlaWdodCBwbHVnaW4gY2F1c2VzIGEgd3Jvbmdcblx0XHRcdGNhbGN1bGF0aW9uIG9mIHRoZSBoZWlnaHQgb2YgdGhlIG93bC1pdGVtIHRoYXQgYnJlYWtzIHBhZ2UgbGF5b3V0c1xuXHRcdCAqLyB9XG4gIC5vd2wtY2Fyb3VzZWwgLm93bC1pdGVtIC5vd2wtbGF6eSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDQwMG1zIGVhc2U7IH1cbiAgLm93bC1jYXJvdXNlbCAub3dsLWl0ZW0gLm93bC1sYXp5W3NyY149XCJcIl0sIC5vd2wtY2Fyb3VzZWwgLm93bC1pdGVtIC5vd2wtbGF6eTpub3QoW3NyY10pIHtcbiAgICBtYXgtaGVpZ2h0OiAwOyB9XG4gIC5vd2wtY2Fyb3VzZWwgLm93bC1pdGVtIGltZy5vd2wtbGF6eSB7XG4gICAgdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDsgfVxuXG4vKlxuICogXHRPd2wgQ2Fyb3VzZWwgLSBWaWRlbyBQbHVnaW5cbiAqL1xuLm93bC1jYXJvdXNlbCAub3dsLXZpZGVvLXdyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZDogIzAwMDsgfVxuXG4ub3dsLWNhcm91c2VsIC5vd2wtdmlkZW8tcGxheS1pY29uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBoZWlnaHQ6IDgwcHg7XG4gIHdpZHRoOiA4MHB4O1xuICBsZWZ0OiA1MCU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tbGVmdDogLTQwcHg7XG4gIG1hcmdpbi10b3A6IC00MHB4O1xuICBiYWNrZ3JvdW5kOiB1cmwoXCJvd2wudmlkZW8ucGxheS5wbmdcIikgbm8tcmVwZWF0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHotaW5kZXg6IDE7XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMTAwbXMgZWFzZTsgfVxuXG4ub3dsLWNhcm91c2VsIC5vd2wtdmlkZW8tcGxheS1pY29uOmhvdmVyIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjMsIDEuMyk7IH1cblxuLm93bC1jYXJvdXNlbCAub3dsLXZpZGVvLXBsYXlpbmcgLm93bC12aWRlby10bixcbi5vd2wtY2Fyb3VzZWwgLm93bC12aWRlby1wbGF5aW5nIC5vd2wtdmlkZW8tcGxheS1pY29uIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4ub3dsLWNhcm91c2VsIC5vd2wtdmlkZW8tdG4ge1xuICBvcGFjaXR5OiAwO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSA0MDBtcyBlYXNlOyB9XG5cbi5vd2wtY2Fyb3VzZWwgLm93bC12aWRlby1mcmFtZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTsgfVxuXG4vKiEgbm9ybWFsaXplLXNjc3MgfCBNSVQvR1BMdjIgTGljZW5zZSB8IGJpdC5seS9ub3JtYWxpemUtc2NzcyAqL1xuLyogRG9jdW1lbnRcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gICAgICogMS4gQ2hhbmdlIHRoZSBkZWZhdWx0IGZvbnQgZmFtaWx5IGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICAgICAqIDIuIENvcnJlY3QgdGhlIGxpbmUgaGVpZ2h0IGluIGFsbCBicm93c2Vycy5cbiAgICAgKiAzLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluXG4gICAgICogICAgSUUgb24gV2luZG93cyBQaG9uZSBhbmQgaW4gaU9TLlxuICAgICAqL1xuaHRtbCB7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xuICAvKiAxICovXG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICAvKiAyICovXG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAvKiAzICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLyogMyAqLyB9XG5cbi8qIFNlY3Rpb25zXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICAgICAqIFJlbW92ZSB0aGUgbWFyZ2luIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICAgICAqL1xuYm9keSB7XG4gIG1hcmdpbjogMDsgfVxuXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cbmFydGljbGUsXG5hc2lkZSxcbmZvb3RlcixcbmhlYWRlcixcbm5hdixcbnNlY3Rpb24ge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4vKipcbiAgICAgKiBDb3JyZWN0IHRoZSBmb250IHNpemUgYW5kIG1hcmdpbiBvbiBgaDFgIGVsZW1lbnRzIHdpdGhpbiBgc2VjdGlvbmAgYW5kXG4gICAgICogYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cbiAgICAgKi9cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7IH1cblxuLyogR3JvdXBpbmcgY29udGVudFxuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cbmZpZ2NhcHRpb24sXG5maWd1cmUge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgbWFyZ2luIGluIElFIDguXG4gICAgICovXG5maWd1cmUge1xuICBtYXJnaW46IDFlbSA0MHB4OyB9XG5cbi8qKlxuICAgICAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIEZpcmVmb3guXG4gICAgICogMi4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZSBhbmQgSUUuXG4gICAgICovXG5ociB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAvKiAxICovXG4gIGhlaWdodDogMDtcbiAgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFLlxuICAgICAqL1xubWFpbiB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi8qKlxuICAgICAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqL1xucHJlIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtO1xuICAvKiAyICovIH1cblxuLyogTGlua3NcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gICAgICogMS4gUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgb24gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICAgICAqIDIuIFJlbW92ZSBnYXBzIGluIGxpbmtzIHVuZGVybGluZSBpbiBpT1MgOCsgYW5kIFNhZmFyaSA4Ky5cbiAgICAgKi9cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLyogMSAqL1xuICAtd2Via2l0LXRleHQtZGVjb3JhdGlvbi1za2lwOiBvYmplY3RzO1xuICAvKiAyICovIH1cblxuLyoqXG4gICAgICogUmVtb3ZlIHRoZSBvdXRsaW5lIG9uIGZvY3VzZWQgbGlua3Mgd2hlbiB0aGV5IGFyZSBhbHNvIGFjdGl2ZSBvciBob3ZlcmVkXG4gICAgICogaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gICAgICovXG5hOmFjdGl2ZSxcbmE6aG92ZXIge1xuICBvdXRsaW5lLXdpZHRoOiAwOyB9XG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICAgICAqIDEuIFJlbW92ZSB0aGUgYm90dG9tIGJvcmRlciBpbiBGaXJlZm94IDM5LS5cbiAgICAgKiAyLiBBZGQgdGhlIGNvcnJlY3QgdGV4dCBkZWNvcmF0aW9uIGluIENocm9tZSwgRWRnZSwgSUUsIE9wZXJhLCBhbmQgU2FmYXJpLlxuICAgICAqL1xuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICAvKiAxICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAvKiAyICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICAgICAqIFByZXZlbnQgdGhlIGR1cGxpY2F0ZSBhcHBsaWNhdGlvbiBvZiBgYm9sZGVyYCBieSB0aGUgbmV4dCBydWxlIGluIFNhZmFyaSA2LlxuICAgICAqL1xuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0OyB9XG5cbi8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gICAgICovXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjsgfVxuXG4vKipcbiAgICAgKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAgICAgKi9cbmNvZGUsXG5rYmQsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtO1xuICAvKiAyICovIH1cblxuLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc3R5bGUgaW4gQW5kcm9pZCA0LjMtLlxuICAgICAqL1xuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljOyB9XG5cbi8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBiYWNrZ3JvdW5kIGFuZCBjb2xvciBpbiBJRSA5LS5cbiAgICAgKi9cbm1hcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmYwO1xuICBjb2xvcjogIzAwMDsgfVxuXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgICAgKi9cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7IH1cblxuLyoqXG4gICAgICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluXG4gICAgICogYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgfVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07IH1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07IH1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cbmF1ZGlvLFxudmlkZW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cblxuLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gaU9TIDQtNy5cbiAgICAgKi9cbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogMDsgfVxuXG4vKipcbiAgICAgKiBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLS5cbiAgICAgKi9cbmltZyB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTsgfVxuXG4vKipcbiAgICAgKiBIaWRlIHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAgICAgKi9cbnN2Zzpub3QoOnJvb3QpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG4vKiBGb3Jtc1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAgICAgKiAxLiBDaGFuZ2UgdGhlIGZvbnQgc3R5bGVzIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICAgICAqIDIuIFJlbW92ZSB0aGUgbWFyZ2luIGluIEZpcmVmb3ggYW5kIFNhZmFyaS5cbiAgICAgKi9cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xuICAvKiAxICovXG4gIGZvbnQtc2l6ZTogMTAwJTtcbiAgLyogMSAqL1xuICBsaW5lLWhlaWdodDogMS4xNTtcbiAgLyogMSAqL1xuICBtYXJnaW46IDA7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAgICAgKiBTaG93IHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAgICAgKi9cbmJ1dHRvbiB7XG4gIG92ZXJmbG93OiB2aXNpYmxlOyB9XG5cbi8qKlxuICAgICAqIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRWRnZSwgRmlyZWZveCwgYW5kIElFLlxuICAgICAqIDEuIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRmlyZWZveC5cbiAgICAgKi9cbmJ1dHRvbixcbnNlbGVjdCB7XG4gIC8qIDEgKi9cbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7IH1cblxuLyoqXG4gICAgICogMS4gUHJldmVudCBhIFdlYktpdCBidWcgd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gIGFuZCBgdmlkZW9gXG4gICAgICogICAgY29udHJvbHMgaW4gQW5kcm9pZCA0LlxuICAgICAqIDIuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gICAgICovXG5idXR0b24sXG5odG1sIFt0eXBlPVwiYnV0dG9uXCJdLFxuW3R5cGU9XCJyZXNldFwiXSxcblt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIC8qIDIgKi8gfVxuXG5idXR0b24sXG5bdHlwZT1cImJ1dHRvblwiXSxcblt0eXBlPVwicmVzZXRcIl0sXG5bdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC8qKlxuICAgICAgICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAgICAgICAqL1xuICAvKipcbiAgICAgICAqIFJlc3RvcmUgdGhlIGZvY3VzIHN0eWxlcyB1bnNldCBieSB0aGUgcHJldmlvdXMgcnVsZS5cbiAgICAgICAqLyB9XG4gIGJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbiAgW3R5cGU9XCJidXR0b25cIl06Oi1tb3otZm9jdXMtaW5uZXIsXG4gIFt0eXBlPVwicmVzZXRcIl06Oi1tb3otZm9jdXMtaW5uZXIsXG4gIFt0eXBlPVwic3VibWl0XCJdOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICBib3JkZXItc3R5bGU6IG5vbmU7XG4gICAgcGFkZGluZzogMDsgfVxuICBidXR0b246LW1vei1mb2N1c3JpbmcsXG4gIFt0eXBlPVwiYnV0dG9uXCJdOi1tb3otZm9jdXNyaW5nLFxuICBbdHlwZT1cInJlc2V0XCJdOi1tb3otZm9jdXNyaW5nLFxuICBbdHlwZT1cInN1Ym1pdFwiXTotbW96LWZvY3VzcmluZyB7XG4gICAgb3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0OyB9XG5cbi8qKlxuICAgICAqIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UuXG4gICAgICovXG5pbnB1dCB7XG4gIG92ZXJmbG93OiB2aXNpYmxlOyB9XG5cbi8qKlxuICAgICAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIElFIDEwLS5cbiAgICAgKiAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAtLlxuICAgICAqL1xuW3R5cGU9XCJjaGVja2JveFwiXSxcblt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAvKiAxICovXG4gIHBhZGRpbmc6IDA7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAgICAgKiBDb3JyZWN0IHRoZSBjdXJzb3Igc3R5bGUgb2YgaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgYnV0dG9ucyBpbiBDaHJvbWUuXG4gICAgICovXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvOyB9XG5cbi8qKlxuICAgICAqIDEuIENvcnJlY3QgdGhlIG9kZCBhcHBlYXJhbmNlIGluIENocm9tZSBhbmQgU2FmYXJpLlxuICAgICAqIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxuICAgICAqL1xuW3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbiAgLyogMSAqL1xuICBvdXRsaW5lLW9mZnNldDogLTJweDtcbiAgLyogMiAqL1xuICAvKipcbiAgICAgICAqIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBhbmQgY2FuY2VsIGJ1dHRvbnMgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXG4gICAgICAgKi8gfVxuICBbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbiwgW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgfVxuXG4vKipcbiAgICAgKiAxLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICAgICAqIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cbiAgICAgKi9cbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgLyogMSAqL1xuICBmb250OiBpbmhlcml0O1xuICAvKiAyICovIH1cblxuLyoqXG4gICAgICogQ2hhbmdlIHRoZSBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gICAgICovXG5maWVsZHNldCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gIG1hcmdpbjogMCAycHg7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjYyNWVtIDAuNzVlbTsgfVxuXG4vKipcbiAgICAgKiAxLiBDb3JyZWN0IHRoZSB0ZXh0IHdyYXBwaW5nIGluIEVkZ2UgYW5kIElFLlxuICAgICAqIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cbiAgICAgKiAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gICAgICogICAgYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5sZWdlbmQge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAvKiAxICovXG4gIGRpc3BsYXk6IHRhYmxlO1xuICAvKiAxICovXG4gIG1heC13aWR0aDogMTAwJTtcbiAgLyogMSAqL1xuICBwYWRkaW5nOiAwO1xuICAvKiAzICovXG4gIGNvbG9yOiBpbmhlcml0O1xuICAvKiAyICovXG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIC8qIDEgKi8gfVxuXG4vKipcbiAgICAgKiAxLiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKiAyLiBBZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICAgICAqL1xucHJvZ3Jlc3Mge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIC8qIDEgKi9cbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAvKiAyICovIH1cblxuLyoqXG4gICAgICogUmVtb3ZlIHRoZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRS5cbiAgICAgKi9cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87IH1cblxuLyogSW50ZXJhY3RpdmVcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBFZGdlLCBJRSwgYW5kIEZpcmVmb3guXG4gICAgICovXG5kZXRhaWxzIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLypcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogbGlzdC1pdGVtOyB9XG5cbi8qXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gICAgICovXG5tZW51IHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLyogU2NyaXB0aW5nXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqL1xuY2FudmFzIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG5cbi8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFLlxuICAgICAqL1xudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi8qIEhpZGRlblxuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMC0uXG4gICAgICovXG5baGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLmZvdW5kYXRpb24tbXEge1xuICBmb250LWZhbWlseTogXCJzbWFsbD0wZW0mbWVkaXVtPTQwZW0mbGFyZ2U9NjRlbSZ4bGFyZ2U9NzVlbSZ4eGxhcmdlPTkwZW1cIjsgfVxuXG5odG1sIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgZm9udC1zaXplOiAxMDAlOyB9XG5cbiosXG4qOjpiZWZvcmUsXG4qOjphZnRlciB7XG4gIGJveC1zaXppbmc6IGluaGVyaXQ7IH1cblxuYm9keSB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgYmFja2dyb3VuZDogI2ZlZmVmZTtcbiAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgY29sb3I6ICMwYTBhMGE7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOyB9XG5cbmltZyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG4gIC1tcy1pbnRlcnBvbGF0aW9uLW1vZGU6IGJpY3ViaWM7IH1cblxudGV4dGFyZWEge1xuICBoZWlnaHQ6IGF1dG87XG4gIG1pbi1oZWlnaHQ6IDUwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDA7IH1cblxuc2VsZWN0IHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1yYWRpdXM6IDA7IH1cblxuLm1hcF9jYW52YXMgaW1nLFxuLm1hcF9jYW52YXMgZW1iZWQsXG4ubWFwX2NhbnZhcyBvYmplY3QsXG4ubXFhLWRpc3BsYXkgaW1nLFxuLm1xYS1kaXNwbGF5IGVtYmVkLFxuLm1xYS1kaXNwbGF5IG9iamVjdCB7XG4gIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50OyB9XG5cbmJ1dHRvbiB7XG4gIHBhZGRpbmc6IDA7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGxpbmUtaGVpZ2h0OiAxOyB9XG4gIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSBidXR0b24ge1xuICAgIG91dGxpbmU6IDA7IH1cblxucHJlIHtcbiAgb3ZlcmZsb3c6IGF1dG87IH1cblxuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7IH1cblxuLmlzLXZpc2libGUge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG5cbi5pcy1oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuLnJvdyB7XG4gIG1heC13aWR0aDogOTByZW07XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87IH1cbiAgLnJvdzo6YmVmb3JlLCAucm93OjphZnRlciB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY29udGVudDogJyAnO1xuICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgb3JkZXI6IDE7IH1cbiAgLnJvdzo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5yb3cuY29sbGFwc2UgPiAuY29sdW1uLCAucm93LmNvbGxhcHNlID4gLmNvbHVtbnMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAwOyB9XG4gIC5yb3cgLnJvdyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAtMC42MjVyZW07XG4gICAgbWFyZ2luLWxlZnQ6IC0wLjYyNXJlbTsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAucm93IC5yb3cge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC0wLjkzNzVyZW07XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMC45Mzc1cmVtOyB9IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLnJvdyAucm93IHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMC45Mzc1cmVtO1xuICAgICAgICBtYXJnaW4tbGVmdDogLTAuOTM3NXJlbTsgfSB9XG4gICAgLnJvdyAucm93LmNvbGxhcHNlIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gIC5yb3cuZXhwYW5kZWQge1xuICAgIG1heC13aWR0aDogbm9uZTsgfVxuICAgIC5yb3cuZXhwYW5kZWQgLnJvdyB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICBtYXJnaW4tbGVmdDogYXV0bzsgfVxuICAucm93Om5vdCguZXhwYW5kZWQpIC5yb3cge1xuICAgIG1heC13aWR0aDogbm9uZTsgfVxuICAucm93Lmd1dHRlci1zbWFsbCA+IC5jb2x1bW4sIC5yb3cuZ3V0dGVyLXNtYWxsID4gLmNvbHVtbnMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC42MjVyZW07IH1cbiAgLnJvdy5ndXR0ZXItbWVkaXVtID4gLmNvbHVtbiwgLnJvdy5ndXR0ZXItbWVkaXVtID4gLmNvbHVtbnMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTsgfVxuXG4uY29sdW1uLCAuY29sdW1ucyB7XG4gIHdpZHRoOiAxMDAlO1xuICBmbG9hdDogbGVmdDtcbiAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gIHBhZGRpbmctbGVmdDogMC42MjVyZW07IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuY29sdW1uLCAuY29sdW1ucyB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTsgfSB9XG4gIC5jb2x1bW46bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSwgLmNvbHVtbnM6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgZmxvYXQ6IHJpZ2h0OyB9XG4gIC5jb2x1bW4uZW5kOmxhc3QtY2hpbGQ6bGFzdC1jaGlsZCwgLmVuZC5jb2x1bW5zOmxhc3QtY2hpbGQ6bGFzdC1jaGlsZCB7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cblxuLmNvbHVtbi5yb3cucm93LCAucm93LnJvdy5jb2x1bW5zIHtcbiAgZmxvYXQ6IG5vbmU7IH1cblxuLnJvdyAuY29sdW1uLnJvdy5yb3csIC5yb3cgLnJvdy5yb3cuY29sdW1ucyB7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG4gIHBhZGRpbmctbGVmdDogMDsgfVxuXG4uc21hbGwtMSB7XG4gIHdpZHRoOiA4LjMzMzMzJTsgfVxuXG4uc21hbGwtcHVzaC0xIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiA4LjMzMzMzJTsgfVxuXG4uc21hbGwtcHVsbC0xIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAtOC4zMzMzMyU7IH1cblxuLnNtYWxsLW9mZnNldC0wIHtcbiAgbWFyZ2luLWxlZnQ6IDAlOyB9XG5cbi5zbWFsbC0yIHtcbiAgd2lkdGg6IDE2LjY2NjY3JTsgfVxuXG4uc21hbGwtcHVzaC0yIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAxNi42NjY2NyU7IH1cblxuLnNtYWxsLXB1bGwtMiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogLTE2LjY2NjY3JTsgfVxuXG4uc21hbGwtb2Zmc2V0LTEge1xuICBtYXJnaW4tbGVmdDogOC4zMzMzMyU7IH1cblxuLnNtYWxsLTMge1xuICB3aWR0aDogMjUlOyB9XG5cbi5zbWFsbC1wdXNoLTMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDI1JTsgfVxuXG4uc21hbGwtcHVsbC0zIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAtMjUlOyB9XG5cbi5zbWFsbC1vZmZzZXQtMiB7XG4gIG1hcmdpbi1sZWZ0OiAxNi42NjY2NyU7IH1cblxuLnNtYWxsLTQge1xuICB3aWR0aDogMzMuMzMzMzMlOyB9XG5cbi5zbWFsbC1wdXNoLTQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDMzLjMzMzMzJTsgfVxuXG4uc21hbGwtcHVsbC00IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAtMzMuMzMzMzMlOyB9XG5cbi5zbWFsbC1vZmZzZXQtMyB7XG4gIG1hcmdpbi1sZWZ0OiAyNSU7IH1cblxuLnNtYWxsLTUge1xuICB3aWR0aDogNDEuNjY2NjclOyB9XG5cbi5zbWFsbC1wdXNoLTUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDQxLjY2NjY3JTsgfVxuXG4uc21hbGwtcHVsbC01IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAtNDEuNjY2NjclOyB9XG5cbi5zbWFsbC1vZmZzZXQtNCB7XG4gIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMyU7IH1cblxuLnNtYWxsLTYge1xuICB3aWR0aDogNTAlOyB9XG5cbi5zbWFsbC1wdXNoLTYge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDUwJTsgfVxuXG4uc21hbGwtcHVsbC02IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAtNTAlOyB9XG5cbi5zbWFsbC1vZmZzZXQtNSB7XG4gIG1hcmdpbi1sZWZ0OiA0MS42NjY2NyU7IH1cblxuLnNtYWxsLTcge1xuICB3aWR0aDogNTguMzMzMzMlOyB9XG5cbi5zbWFsbC1wdXNoLTcge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDU4LjMzMzMzJTsgfVxuXG4uc21hbGwtcHVsbC03IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAtNTguMzMzMzMlOyB9XG5cbi5zbWFsbC1vZmZzZXQtNiB7XG4gIG1hcmdpbi1sZWZ0OiA1MCU7IH1cblxuLnNtYWxsLTgge1xuICB3aWR0aDogNjYuNjY2NjclOyB9XG5cbi5zbWFsbC1wdXNoLTgge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDY2LjY2NjY3JTsgfVxuXG4uc21hbGwtcHVsbC04IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAtNjYuNjY2NjclOyB9XG5cbi5zbWFsbC1vZmZzZXQtNyB7XG4gIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMyU7IH1cblxuLnNtYWxsLTkge1xuICB3aWR0aDogNzUlOyB9XG5cbi5zbWFsbC1wdXNoLTkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDc1JTsgfVxuXG4uc21hbGwtcHVsbC05IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAtNzUlOyB9XG5cbi5zbWFsbC1vZmZzZXQtOCB7XG4gIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NyU7IH1cblxuLnNtYWxsLTEwIHtcbiAgd2lkdGg6IDgzLjMzMzMzJTsgfVxuXG4uc21hbGwtcHVzaC0xMCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogODMuMzMzMzMlOyB9XG5cbi5zbWFsbC1wdWxsLTEwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAtODMuMzMzMzMlOyB9XG5cbi5zbWFsbC1vZmZzZXQtOSB7XG4gIG1hcmdpbi1sZWZ0OiA3NSU7IH1cblxuLnNtYWxsLTExIHtcbiAgd2lkdGg6IDkxLjY2NjY3JTsgfVxuXG4uc21hbGwtcHVzaC0xMSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogOTEuNjY2NjclOyB9XG5cbi5zbWFsbC1wdWxsLTExIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAtOTEuNjY2NjclOyB9XG5cbi5zbWFsbC1vZmZzZXQtMTAge1xuICBtYXJnaW4tbGVmdDogODMuMzMzMzMlOyB9XG5cbi5zbWFsbC0xMiB7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi5zbWFsbC1vZmZzZXQtMTEge1xuICBtYXJnaW4tbGVmdDogOTEuNjY2NjclOyB9XG5cbi5zbWFsbC11cC0xID4gLmNvbHVtbiwgLnNtYWxsLXVwLTEgPiAuY29sdW1ucyB7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogMTAwJTsgfVxuICAuc21hbGwtdXAtMSA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAuc21hbGwtdXAtMSA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgY2xlYXI6IG5vbmU7IH1cbiAgLnNtYWxsLXVwLTEgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKzEpLCAuc21hbGwtdXAtMSA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKzEpIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAuc21hbGwtdXAtMSA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLnNtYWxsLXVwLTEgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogbGVmdDsgfVxuXG4uc21hbGwtdXAtMiA+IC5jb2x1bW4sIC5zbWFsbC11cC0yID4gLmNvbHVtbnMge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDUwJTsgfVxuICAuc21hbGwtdXAtMiA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAuc21hbGwtdXAtMiA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgY2xlYXI6IG5vbmU7IH1cbiAgLnNtYWxsLXVwLTIgPiAuY29sdW1uOm50aC1vZi10eXBlKDJuKzEpLCAuc21hbGwtdXAtMiA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDJuKzEpIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAuc21hbGwtdXAtMiA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLnNtYWxsLXVwLTIgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogbGVmdDsgfVxuXG4uc21hbGwtdXAtMyA+IC5jb2x1bW4sIC5zbWFsbC11cC0zID4gLmNvbHVtbnMge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAuc21hbGwtdXAtMyA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAuc21hbGwtdXAtMyA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgY2xlYXI6IG5vbmU7IH1cbiAgLnNtYWxsLXVwLTMgPiAuY29sdW1uOm50aC1vZi10eXBlKDNuKzEpLCAuc21hbGwtdXAtMyA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDNuKzEpIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAuc21hbGwtdXAtMyA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLnNtYWxsLXVwLTMgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogbGVmdDsgfVxuXG4uc21hbGwtdXAtNCA+IC5jb2x1bW4sIC5zbWFsbC11cC00ID4gLmNvbHVtbnMge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDI1JTsgfVxuICAuc21hbGwtdXAtNCA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAuc21hbGwtdXAtNCA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgY2xlYXI6IG5vbmU7IH1cbiAgLnNtYWxsLXVwLTQgPiAuY29sdW1uOm50aC1vZi10eXBlKDRuKzEpLCAuc21hbGwtdXAtNCA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDRuKzEpIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAuc21hbGwtdXAtNCA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLnNtYWxsLXVwLTQgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogbGVmdDsgfVxuXG4uc21hbGwtdXAtNSA+IC5jb2x1bW4sIC5zbWFsbC11cC01ID4gLmNvbHVtbnMge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDIwJTsgfVxuICAuc21hbGwtdXAtNSA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAuc21hbGwtdXAtNSA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgY2xlYXI6IG5vbmU7IH1cbiAgLnNtYWxsLXVwLTUgPiAuY29sdW1uOm50aC1vZi10eXBlKDVuKzEpLCAuc21hbGwtdXAtNSA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDVuKzEpIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAuc21hbGwtdXAtNSA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLnNtYWxsLXVwLTUgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogbGVmdDsgfVxuXG4uc21hbGwtdXAtNiA+IC5jb2x1bW4sIC5zbWFsbC11cC02ID4gLmNvbHVtbnMge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDE2LjY2NjY3JTsgfVxuICAuc21hbGwtdXAtNiA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAuc21hbGwtdXAtNiA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgY2xlYXI6IG5vbmU7IH1cbiAgLnNtYWxsLXVwLTYgPiAuY29sdW1uOm50aC1vZi10eXBlKDZuKzEpLCAuc21hbGwtdXAtNiA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDZuKzEpIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAuc21hbGwtdXAtNiA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLnNtYWxsLXVwLTYgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogbGVmdDsgfVxuXG4uc21hbGwtdXAtNyA+IC5jb2x1bW4sIC5zbWFsbC11cC03ID4gLmNvbHVtbnMge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDE0LjI4NTcxJTsgfVxuICAuc21hbGwtdXAtNyA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAuc21hbGwtdXAtNyA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgY2xlYXI6IG5vbmU7IH1cbiAgLnNtYWxsLXVwLTcgPiAuY29sdW1uOm50aC1vZi10eXBlKDduKzEpLCAuc21hbGwtdXAtNyA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDduKzEpIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAuc21hbGwtdXAtNyA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLnNtYWxsLXVwLTcgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogbGVmdDsgfVxuXG4uc21hbGwtdXAtOCA+IC5jb2x1bW4sIC5zbWFsbC11cC04ID4gLmNvbHVtbnMge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDEyLjUlOyB9XG4gIC5zbWFsbC11cC04ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5zbWFsbC11cC04ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICBjbGVhcjogbm9uZTsgfVxuICAuc21hbGwtdXAtOCA+IC5jb2x1bW46bnRoLW9mLXR5cGUoOG4rMSksIC5zbWFsbC11cC04ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoOG4rMSkge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5zbWFsbC11cC04ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAuc21hbGwtdXAtOCA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiBsZWZ0OyB9XG5cbi5zbWFsbC1jb2xsYXBzZSA+IC5jb2x1bW4sIC5zbWFsbC1jb2xsYXBzZSA+IC5jb2x1bW5zIHtcbiAgcGFkZGluZy1yaWdodDogMDtcbiAgcGFkZGluZy1sZWZ0OiAwOyB9XG5cbi5zbWFsbC1jb2xsYXBzZSAucm93IHtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogMDsgfVxuXG4uZXhwYW5kZWQucm93IC5zbWFsbC1jb2xsYXBzZS5yb3cge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAwOyB9XG5cbi5zbWFsbC11bmNvbGxhcHNlID4gLmNvbHVtbiwgLnNtYWxsLXVuY29sbGFwc2UgPiAuY29sdW1ucyB7XG4gIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtOyB9XG5cbi5zbWFsbC1jZW50ZXJlZCB7XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87IH1cbiAgLnNtYWxsLWNlbnRlcmVkLCAuc21hbGwtY2VudGVyZWQ6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgY2xlYXI6IGJvdGg7IH1cblxuLnNtYWxsLXVuY2VudGVyZWQsXG4uc21hbGwtcHVzaC0wLFxuLnNtYWxsLXB1bGwtMCB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAwOyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5tZWRpdW0tMSB7XG4gICAgd2lkdGg6IDguMzMzMzMlOyB9XG4gIC5tZWRpdW0tcHVzaC0xIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogOC4zMzMzMyU7IH1cbiAgLm1lZGl1bS1wdWxsLTEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtOC4zMzMzMyU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDAlOyB9XG4gIC5tZWRpdW0tMiB7XG4gICAgd2lkdGg6IDE2LjY2NjY3JTsgfVxuICAubWVkaXVtLXB1c2gtMiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDE2LjY2NjY3JTsgfVxuICAubWVkaXVtLXB1bGwtMiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC0xNi42NjY2NyU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMzMlOyB9XG4gIC5tZWRpdW0tMyB7XG4gICAgd2lkdGg6IDI1JTsgfVxuICAubWVkaXVtLXB1c2gtMyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDI1JTsgfVxuICAubWVkaXVtLXB1bGwtMyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC0yNSU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtMiB7XG4gICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY3JTsgfVxuICAubWVkaXVtLTQge1xuICAgIHdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgLm1lZGl1bS1wdXNoLTQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAzMy4zMzMzMyU7IH1cbiAgLm1lZGl1bS1wdWxsLTQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtMzMuMzMzMzMlOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTMge1xuICAgIG1hcmdpbi1sZWZ0OiAyNSU7IH1cbiAgLm1lZGl1bS01IHtcbiAgICB3aWR0aDogNDEuNjY2NjclOyB9XG4gIC5tZWRpdW0tcHVzaC01IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogNDEuNjY2NjclOyB9XG4gIC5tZWRpdW0tcHVsbC01IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTQxLjY2NjY3JTsgfVxuICAubWVkaXVtLW9mZnNldC00IHtcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMzMlOyB9XG4gIC5tZWRpdW0tNiB7XG4gICAgd2lkdGg6IDUwJTsgfVxuICAubWVkaXVtLXB1c2gtNiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDUwJTsgfVxuICAubWVkaXVtLXB1bGwtNiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC01MCU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtNSB7XG4gICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY3JTsgfVxuICAubWVkaXVtLTcge1xuICAgIHdpZHRoOiA1OC4zMzMzMyU7IH1cbiAgLm1lZGl1bS1wdXNoLTcge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA1OC4zMzMzMyU7IH1cbiAgLm1lZGl1bS1wdWxsLTcge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtNTguMzMzMzMlOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTYge1xuICAgIG1hcmdpbi1sZWZ0OiA1MCU7IH1cbiAgLm1lZGl1bS04IHtcbiAgICB3aWR0aDogNjYuNjY2NjclOyB9XG4gIC5tZWRpdW0tcHVzaC04IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogNjYuNjY2NjclOyB9XG4gIC5tZWRpdW0tcHVsbC04IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTY2LjY2NjY3JTsgfVxuICAubWVkaXVtLW9mZnNldC03IHtcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzMzMlOyB9XG4gIC5tZWRpdW0tOSB7XG4gICAgd2lkdGg6IDc1JTsgfVxuICAubWVkaXVtLXB1c2gtOSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDc1JTsgfVxuICAubWVkaXVtLXB1bGwtOSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC03NSU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtOCB7XG4gICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY3JTsgfVxuICAubWVkaXVtLTEwIHtcbiAgICB3aWR0aDogODMuMzMzMzMlOyB9XG4gIC5tZWRpdW0tcHVzaC0xMCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDgzLjMzMzMzJTsgfVxuICAubWVkaXVtLXB1bGwtMTAge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtODMuMzMzMzMlOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTkge1xuICAgIG1hcmdpbi1sZWZ0OiA3NSU7IH1cbiAgLm1lZGl1bS0xMSB7XG4gICAgd2lkdGg6IDkxLjY2NjY3JTsgfVxuICAubWVkaXVtLXB1c2gtMTEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA5MS42NjY2NyU7IH1cbiAgLm1lZGl1bS1wdWxsLTExIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTkxLjY2NjY3JTsgfVxuICAubWVkaXVtLW9mZnNldC0xMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzJTsgfVxuICAubWVkaXVtLTEyIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAubWVkaXVtLW9mZnNldC0xMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY3JTsgfVxuICAubWVkaXVtLXVwLTEgPiAuY29sdW1uLCAubWVkaXVtLXVwLTEgPiAuY29sdW1ucyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICAubWVkaXVtLXVwLTEgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLm1lZGl1bS11cC0xID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLm1lZGl1bS11cC0xID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbisxKSwgLm1lZGl1bS11cC0xID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubWVkaXVtLXVwLTEgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5tZWRpdW0tdXAtMSA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLm1lZGl1bS11cC0yID4gLmNvbHVtbiwgLm1lZGl1bS11cC0yID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgICAubWVkaXVtLXVwLTIgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLm1lZGl1bS11cC0yID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLm1lZGl1bS11cC0yID4gLmNvbHVtbjpudGgtb2YtdHlwZSgybisxKSwgLm1lZGl1bS11cC0yID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMm4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubWVkaXVtLXVwLTIgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5tZWRpdW0tdXAtMiA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLm1lZGl1bS11cC0zID4gLmNvbHVtbiwgLm1lZGl1bS11cC0zID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgICAubWVkaXVtLXVwLTMgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLm1lZGl1bS11cC0zID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLm1lZGl1bS11cC0zID4gLmNvbHVtbjpudGgtb2YtdHlwZSgzbisxKSwgLm1lZGl1bS11cC0zID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoM24rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubWVkaXVtLXVwLTMgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5tZWRpdW0tdXAtMyA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLm1lZGl1bS11cC00ID4gLmNvbHVtbiwgLm1lZGl1bS11cC00ID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAyNSU7IH1cbiAgICAubWVkaXVtLXVwLTQgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLm1lZGl1bS11cC00ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLm1lZGl1bS11cC00ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg0bisxKSwgLm1lZGl1bS11cC00ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoNG4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubWVkaXVtLXVwLTQgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5tZWRpdW0tdXAtNCA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLm1lZGl1bS11cC01ID4gLmNvbHVtbiwgLm1lZGl1bS11cC01ID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAyMCU7IH1cbiAgICAubWVkaXVtLXVwLTUgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLm1lZGl1bS11cC01ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLm1lZGl1bS11cC01ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg1bisxKSwgLm1lZGl1bS11cC01ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoNW4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubWVkaXVtLXVwLTUgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5tZWRpdW0tdXAtNSA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLm1lZGl1bS11cC02ID4gLmNvbHVtbiwgLm1lZGl1bS11cC02ID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAxNi42NjY2NyU7IH1cbiAgICAubWVkaXVtLXVwLTYgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLm1lZGl1bS11cC02ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLm1lZGl1bS11cC02ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg2bisxKSwgLm1lZGl1bS11cC02ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoNm4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubWVkaXVtLXVwLTYgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5tZWRpdW0tdXAtNiA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLm1lZGl1bS11cC03ID4gLmNvbHVtbiwgLm1lZGl1bS11cC03ID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAxNC4yODU3MSU7IH1cbiAgICAubWVkaXVtLXVwLTcgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLm1lZGl1bS11cC03ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLm1lZGl1bS11cC03ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg3bisxKSwgLm1lZGl1bS11cC03ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoN24rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubWVkaXVtLXVwLTcgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5tZWRpdW0tdXAtNyA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLm1lZGl1bS11cC04ID4gLmNvbHVtbiwgLm1lZGl1bS11cC04ID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAxMi41JTsgfVxuICAgIC5tZWRpdW0tdXAtOCA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubWVkaXVtLXVwLTggPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAubWVkaXVtLXVwLTggPiAuY29sdW1uOm50aC1vZi10eXBlKDhuKzEpLCAubWVkaXVtLXVwLTggPiAuY29sdW1uczpudGgtb2YtdHlwZSg4bisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5tZWRpdW0tdXAtOCA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLm1lZGl1bS11cC04ID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAubWVkaXVtLWNvbGxhcHNlID4gLmNvbHVtbiwgLm1lZGl1bS1jb2xsYXBzZSA+IC5jb2x1bW5zIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmctbGVmdDogMDsgfVxuICAubWVkaXVtLWNvbGxhcHNlIC5yb3cge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAuZXhwYW5kZWQucm93IC5tZWRpdW0tY29sbGFwc2Uucm93IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgLm1lZGl1bS11bmNvbGxhcHNlID4gLmNvbHVtbiwgLm1lZGl1bS11bmNvbGxhcHNlID4gLmNvbHVtbnMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTsgfVxuICAubWVkaXVtLWNlbnRlcmVkIHtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87IH1cbiAgICAubWVkaXVtLWNlbnRlcmVkLCAubWVkaXVtLWNlbnRlcmVkOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAubWVkaXVtLXVuY2VudGVyZWQsXG4gIC5tZWRpdW0tcHVzaC0wLFxuICAubWVkaXVtLXB1bGwtMCB7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAubGFyZ2UtMSB7XG4gICAgd2lkdGg6IDguMzMzMzMlOyB9XG4gIC5sYXJnZS1wdXNoLTEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA4LjMzMzMzJTsgfVxuICAubGFyZ2UtcHVsbC0xIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTguMzMzMzMlOyB9XG4gIC5sYXJnZS1vZmZzZXQtMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDAlOyB9XG4gIC5sYXJnZS0yIHtcbiAgICB3aWR0aDogMTYuNjY2NjclOyB9XG4gIC5sYXJnZS1wdXNoLTIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAxNi42NjY2NyU7IH1cbiAgLmxhcmdlLXB1bGwtMiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC0xNi42NjY2NyU7IH1cbiAgLmxhcmdlLW9mZnNldC0xIHtcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMzMyU7IH1cbiAgLmxhcmdlLTMge1xuICAgIHdpZHRoOiAyNSU7IH1cbiAgLmxhcmdlLXB1c2gtMyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDI1JTsgfVxuICAubGFyZ2UtcHVsbC0zIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTI1JTsgfVxuICAubGFyZ2Utb2Zmc2V0LTIge1xuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY2NyU7IH1cbiAgLmxhcmdlLTQge1xuICAgIHdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgLmxhcmdlLXB1c2gtNCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDMzLjMzMzMzJTsgfVxuICAubGFyZ2UtcHVsbC00IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTMzLjMzMzMzJTsgfVxuICAubGFyZ2Utb2Zmc2V0LTMge1xuICAgIG1hcmdpbi1sZWZ0OiAyNSU7IH1cbiAgLmxhcmdlLTUge1xuICAgIHdpZHRoOiA0MS42NjY2NyU7IH1cbiAgLmxhcmdlLXB1c2gtNSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDQxLjY2NjY3JTsgfVxuICAubGFyZ2UtcHVsbC01IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTQxLjY2NjY3JTsgfVxuICAubGFyZ2Utb2Zmc2V0LTQge1xuICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMyU7IH1cbiAgLmxhcmdlLTYge1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgLmxhcmdlLXB1c2gtNiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDUwJTsgfVxuICAubGFyZ2UtcHVsbC02IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTUwJTsgfVxuICAubGFyZ2Utb2Zmc2V0LTUge1xuICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY2NyU7IH1cbiAgLmxhcmdlLTcge1xuICAgIHdpZHRoOiA1OC4zMzMzMyU7IH1cbiAgLmxhcmdlLXB1c2gtNyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDU4LjMzMzMzJTsgfVxuICAubGFyZ2UtcHVsbC03IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTU4LjMzMzMzJTsgfVxuICAubGFyZ2Utb2Zmc2V0LTYge1xuICAgIG1hcmdpbi1sZWZ0OiA1MCU7IH1cbiAgLmxhcmdlLTgge1xuICAgIHdpZHRoOiA2Ni42NjY2NyU7IH1cbiAgLmxhcmdlLXB1c2gtOCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDY2LjY2NjY3JTsgfVxuICAubGFyZ2UtcHVsbC04IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTY2LjY2NjY3JTsgfVxuICAubGFyZ2Utb2Zmc2V0LTcge1xuICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMyU7IH1cbiAgLmxhcmdlLTkge1xuICAgIHdpZHRoOiA3NSU7IH1cbiAgLmxhcmdlLXB1c2gtOSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDc1JTsgfVxuICAubGFyZ2UtcHVsbC05IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTc1JTsgfVxuICAubGFyZ2Utb2Zmc2V0LTgge1xuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NyU7IH1cbiAgLmxhcmdlLTEwIHtcbiAgICB3aWR0aDogODMuMzMzMzMlOyB9XG4gIC5sYXJnZS1wdXNoLTEwIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogODMuMzMzMzMlOyB9XG4gIC5sYXJnZS1wdWxsLTEwIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTgzLjMzMzMzJTsgfVxuICAubGFyZ2Utb2Zmc2V0LTkge1xuICAgIG1hcmdpbi1sZWZ0OiA3NSU7IH1cbiAgLmxhcmdlLTExIHtcbiAgICB3aWR0aDogOTEuNjY2NjclOyB9XG4gIC5sYXJnZS1wdXNoLTExIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogOTEuNjY2NjclOyB9XG4gIC5sYXJnZS1wdWxsLTExIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTkxLjY2NjY3JTsgfVxuICAubGFyZ2Utb2Zmc2V0LTEwIHtcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMzMlOyB9XG4gIC5sYXJnZS0xMiB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLmxhcmdlLW9mZnNldC0xMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY3JTsgfVxuICAubGFyZ2UtdXAtMSA+IC5jb2x1bW4sIC5sYXJnZS11cC0xID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLmxhcmdlLXVwLTEgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLmxhcmdlLXVwLTEgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAubGFyZ2UtdXAtMSA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4rMSksIC5sYXJnZS11cC0xID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubGFyZ2UtdXAtMSA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLmxhcmdlLXVwLTEgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5sYXJnZS11cC0yID4gLmNvbHVtbiwgLmxhcmdlLXVwLTIgPiAuY29sdW1ucyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDUwJTsgfVxuICAgIC5sYXJnZS11cC0yID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5sYXJnZS11cC0yID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLmxhcmdlLXVwLTIgPiAuY29sdW1uOm50aC1vZi10eXBlKDJuKzEpLCAubGFyZ2UtdXAtMiA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDJuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLmxhcmdlLXVwLTIgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5sYXJnZS11cC0yID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAubGFyZ2UtdXAtMyA+IC5jb2x1bW4sIC5sYXJnZS11cC0zID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgICAubGFyZ2UtdXAtMyA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubGFyZ2UtdXAtMyA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5sYXJnZS11cC0zID4gLmNvbHVtbjpudGgtb2YtdHlwZSgzbisxKSwgLmxhcmdlLXVwLTMgPiAuY29sdW1uczpudGgtb2YtdHlwZSgzbisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5sYXJnZS11cC0zID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubGFyZ2UtdXAtMyA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLmxhcmdlLXVwLTQgPiAuY29sdW1uLCAubGFyZ2UtdXAtNCA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMjUlOyB9XG4gICAgLmxhcmdlLXVwLTQgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLmxhcmdlLXVwLTQgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAubGFyZ2UtdXAtNCA+IC5jb2x1bW46bnRoLW9mLXR5cGUoNG4rMSksIC5sYXJnZS11cC00ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoNG4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubGFyZ2UtdXAtNCA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLmxhcmdlLXVwLTQgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5sYXJnZS11cC01ID4gLmNvbHVtbiwgLmxhcmdlLXVwLTUgPiAuY29sdW1ucyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDIwJTsgfVxuICAgIC5sYXJnZS11cC01ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5sYXJnZS11cC01ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLmxhcmdlLXVwLTUgPiAuY29sdW1uOm50aC1vZi10eXBlKDVuKzEpLCAubGFyZ2UtdXAtNSA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDVuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLmxhcmdlLXVwLTUgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5sYXJnZS11cC01ID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAubGFyZ2UtdXAtNiA+IC5jb2x1bW4sIC5sYXJnZS11cC02ID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAxNi42NjY2NyU7IH1cbiAgICAubGFyZ2UtdXAtNiA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubGFyZ2UtdXAtNiA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5sYXJnZS11cC02ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg2bisxKSwgLmxhcmdlLXVwLTYgPiAuY29sdW1uczpudGgtb2YtdHlwZSg2bisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5sYXJnZS11cC02ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubGFyZ2UtdXAtNiA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLmxhcmdlLXVwLTcgPiAuY29sdW1uLCAubGFyZ2UtdXAtNyA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMTQuMjg1NzElOyB9XG4gICAgLmxhcmdlLXVwLTcgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLmxhcmdlLXVwLTcgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAubGFyZ2UtdXAtNyA+IC5jb2x1bW46bnRoLW9mLXR5cGUoN24rMSksIC5sYXJnZS11cC03ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoN24rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubGFyZ2UtdXAtNyA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLmxhcmdlLXVwLTcgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5sYXJnZS11cC04ID4gLmNvbHVtbiwgLmxhcmdlLXVwLTggPiAuY29sdW1ucyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDEyLjUlOyB9XG4gICAgLmxhcmdlLXVwLTggPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLmxhcmdlLXVwLTggPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAubGFyZ2UtdXAtOCA+IC5jb2x1bW46bnRoLW9mLXR5cGUoOG4rMSksIC5sYXJnZS11cC04ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoOG4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubGFyZ2UtdXAtOCA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLmxhcmdlLXVwLTggPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5sYXJnZS1jb2xsYXBzZSA+IC5jb2x1bW4sIC5sYXJnZS1jb2xsYXBzZSA+IC5jb2x1bW5zIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmctbGVmdDogMDsgfVxuICAubGFyZ2UtY29sbGFwc2UgLnJvdyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gIC5leHBhbmRlZC5yb3cgLmxhcmdlLWNvbGxhcHNlLnJvdyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gIC5sYXJnZS11bmNvbGxhcHNlID4gLmNvbHVtbiwgLmxhcmdlLXVuY29sbGFwc2UgPiAuY29sdW1ucyB7XG4gICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtOyB9XG4gIC5sYXJnZS1jZW50ZXJlZCB7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvOyB9XG4gICAgLmxhcmdlLWNlbnRlcmVkLCAubGFyZ2UtY2VudGVyZWQ6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICBmbG9hdDogbm9uZTtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gIC5sYXJnZS11bmNlbnRlcmVkLFxuICAubGFyZ2UtcHVzaC0wLFxuICAubGFyZ2UtcHVsbC0wIHtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDsgfSB9XG5cbi5jb2x1bW4tYmxvY2sge1xuICBtYXJnaW4tYm90dG9tOiAxLjI1cmVtOyB9XG4gIC5jb2x1bW4tYmxvY2sgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5jb2x1bW4tYmxvY2sge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMS44NzVyZW07IH1cbiAgICAgIC5jb2x1bW4tYmxvY2sgPiA6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7IH0gfVxuXG5kaXYsXG5kbCxcbmR0LFxuZGQsXG51bCxcbm9sLFxubGksXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYsXG5wcmUsXG5mb3JtLFxucCxcbmJsb2NrcXVvdGUsXG50aCxcbnRkIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwOyB9XG5cbnAge1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG4gIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7IH1cblxuZW0sXG5pIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDsgfVxuXG5zdHJvbmcsXG5iIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0OyB9XG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0OyB9XG5cbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNiB7XG4gIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7IH1cbiAgaDEgc21hbGwsXG4gIGgyIHNtYWxsLFxuICBoMyBzbWFsbCxcbiAgaDQgc21hbGwsXG4gIGg1IHNtYWxsLFxuICBoNiBzbWFsbCB7XG4gICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgY29sb3I6ICNjYWNhY2E7IH1cblxuaDEge1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtOyB9XG5cbmgyIHtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07IH1cblxuaDMge1xuICBmb250LXNpemU6IDEuMTg3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtOyB9XG5cbmg0IHtcbiAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtOyB9XG5cbmg1IHtcbiAgZm9udC1zaXplOiAxLjA2MjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTsgfVxuXG5oNiB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtOyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIGgxIHtcbiAgICBmb250LXNpemU6IDNyZW07IH1cbiAgaDIge1xuICAgIGZvbnQtc2l6ZTogMi41cmVtOyB9XG4gIGgzIHtcbiAgICBmb250LXNpemU6IDEuOTM3NXJlbTsgfVxuICBoNCB7XG4gICAgZm9udC1zaXplOiAxLjU2MjVyZW07IH1cbiAgaDUge1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTsgfVxuICBoNiB7XG4gICAgZm9udC1zaXplOiAxcmVtOyB9IH1cblxuYSB7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICBjb2xvcjogIzE3NzliYTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgYTpob3ZlciwgYTpmb2N1cyB7XG4gICAgY29sb3I6ICMxNDY4YTA7IH1cbiAgYSBpbWcge1xuICAgIGJvcmRlcjogMDsgfVxuXG5ociB7XG4gIGNsZWFyOiBib3RoO1xuICBtYXgtd2lkdGg6IDkwcmVtO1xuICBoZWlnaHQ6IDA7XG4gIG1hcmdpbjogMS4yNXJlbSBhdXRvO1xuICBib3JkZXItdG9wOiAwO1xuICBib3JkZXItcmlnaHQ6IDA7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2FjYWNhO1xuICBib3JkZXItbGVmdDogMDsgfVxuXG51bCxcbm9sLFxuZGwge1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBsaXN0LXN0eWxlLXBvc2l0aW9uOiBvdXRzaWRlO1xuICBsaW5lLWhlaWdodDogMS42OyB9XG5cbmxpIHtcbiAgZm9udC1zaXplOiBpbmhlcml0OyB9XG5cbnVsIHtcbiAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07XG4gIGxpc3Qtc3R5bGUtdHlwZTogZGlzYzsgfVxuXG5vbCB7XG4gIG1hcmdpbi1sZWZ0OiAxLjI1cmVtOyB9XG5cbnVsIHVsLCBvbCB1bCwgdWwgb2wsIG9sIG9sIHtcbiAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxuZGwge1xuICBtYXJnaW4tYm90dG9tOiAxcmVtOyB9XG4gIGRsIGR0IHtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjNyZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuYmxvY2txdW90ZSB7XG4gIG1hcmdpbjogMCAwIDFyZW07XG4gIHBhZGRpbmc6IDAuNTYyNXJlbSAxLjI1cmVtIDAgMS4xODc1cmVtO1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNjYWNhY2E7IH1cbiAgYmxvY2txdW90ZSwgYmxvY2txdW90ZSBwIHtcbiAgICBsaW5lLWhlaWdodDogMS42O1xuICAgIGNvbG9yOiAjOGE4YThhOyB9XG5cbmNpdGUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAwLjgxMjVyZW07XG4gIGNvbG9yOiAjOGE4YThhOyB9XG4gIGNpdGU6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIuKAlCBcIjsgfVxuXG5hYmJyLCBhYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgIzBhMGEwYTtcbiAgY3Vyc29yOiBoZWxwO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxuZmlndXJlIHtcbiAgbWFyZ2luOiAwOyB9XG5cbmNvZGUge1xuICBwYWRkaW5nOiAwLjEyNXJlbSAwLjMxMjVyZW0gMC4wNjI1cmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2FjYWNhO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2O1xuICBmb250LWZhbWlseTogQ29uc29sYXMsIFwiTGliZXJhdGlvbiBNb25vXCIsIENvdXJpZXIsIG1vbm9zcGFjZTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgY29sb3I6ICMwYTBhMGE7IH1cblxua2JkIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwLjEyNXJlbSAwLjI1cmVtIDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7XG4gIGZvbnQtZmFtaWx5OiBDb25zb2xhcywgXCJMaWJlcmF0aW9uIE1vbm9cIiwgQ291cmllciwgbW9ub3NwYWNlO1xuICBjb2xvcjogIzBhMGEwYTsgfVxuXG4uc3ViaGVhZGVyIHtcbiAgbWFyZ2luLXRvcDogMC4ycmVtO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIGNvbG9yOiAjOGE4YThhOyB9XG5cbi5sZWFkIHtcbiAgZm9udC1zaXplOiAxMjUlO1xuICBsaW5lLWhlaWdodDogMS42OyB9XG5cbi5zdGF0IHtcbiAgZm9udC1zaXplOiAyLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxOyB9XG4gIHAgKyAuc3RhdCB7XG4gICAgbWFyZ2luLXRvcDogLTFyZW07IH1cblxudWwubm8tYnVsbGV0LCBvbC5uby1idWxsZXQge1xuICBtYXJnaW4tbGVmdDogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTsgfVxuXG4udGV4dC1sZWZ0IHtcbiAgdGV4dC1hbGlnbjogbGVmdDsgfVxuXG4udGV4dC1yaWdodCB7XG4gIHRleHQtYWxpZ246IHJpZ2h0OyB9XG5cbi50ZXh0LWNlbnRlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4udGV4dC1qdXN0aWZ5IHtcbiAgdGV4dC1hbGlnbjoganVzdGlmeTsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubWVkaXVtLXRleHQtbGVmdCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAubWVkaXVtLXRleHQtcmlnaHQge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gIC5tZWRpdW0tdGV4dC1jZW50ZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAubWVkaXVtLXRleHQtanVzdGlmeSB7XG4gICAgdGV4dC1hbGlnbjoganVzdGlmeTsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5sYXJnZS10ZXh0LWxlZnQge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgLmxhcmdlLXRleHQtcmlnaHQge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gIC5sYXJnZS10ZXh0LWNlbnRlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC5sYXJnZS10ZXh0LWp1c3RpZnkge1xuICAgIHRleHQtYWxpZ246IGp1c3RpZnk7IH0gfVxuXG4uc2hvdy1mb3ItcHJpbnQge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuQG1lZGlhIHByaW50IHtcbiAgKiB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6IGJsYWNrICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDsgfVxuICAuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cbiAgLmhpZGUtZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgdGFibGUuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7IH1cbiAgdGhlYWQuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cCAhaW1wb3J0YW50OyB9XG4gIHRib2R5LnNob3ctZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1yb3ctZ3JvdXAgIWltcG9ydGFudDsgfVxuICB0ci5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7IH1cbiAgdGQuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuICB0aC5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG4gIGEsXG4gIGE6dmlzaXRlZCB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbiAgYVtocmVmXTphZnRlciB7XG4gICAgY29udGVudDogXCIgKFwiIGF0dHIoaHJlZikgXCIpXCI7IH1cbiAgLmlyIGE6YWZ0ZXIsXG4gIGFbaHJlZl49J2phdmFzY3JpcHQ6J106YWZ0ZXIsXG4gIGFbaHJlZl49JyMnXTphZnRlciB7XG4gICAgY29udGVudDogJyc7IH1cbiAgYWJiclt0aXRsZV06YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiIChcIiBhdHRyKHRpdGxlKSBcIilcIjsgfVxuICBwcmUsXG4gIGJsb2NrcXVvdGUge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICM4YThhOGE7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkOyB9XG4gIHRoZWFkIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXA7IH1cbiAgdHIsXG4gIGltZyB7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkOyB9XG4gIGltZyB7XG4gICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cbiAgQHBhZ2Uge1xuICAgIG1hcmdpbjogMC41Y207IH1cbiAgcCxcbiAgaDIsXG4gIGgzIHtcbiAgICBvcnBoYW5zOiAzO1xuICAgIHdpZG93czogMzsgfVxuICBoMixcbiAgaDMge1xuICAgIHBhZ2UtYnJlYWstYWZ0ZXI6IGF2b2lkOyB9XG4gIC5wcmludC1icmVhay1pbnNpZGUge1xuICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdXRvOyB9IH1cblxuLmJ1dHRvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWFyZ2luOiAwIDAgMXJlbSAwO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgcGFkZGluZzogMC44NWVtIDFlbTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjI1cyBlYXNlLW91dCwgY29sb3IgMC4yNXMgZWFzZS1vdXQ7XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxNzc5YmE7XG4gIGNvbG9yOiAjZmVmZWZlOyB9XG4gIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAuYnV0dG9uIHtcbiAgICBvdXRsaW5lOiAwOyB9XG4gIC5idXR0b246aG92ZXIsIC5idXR0b246Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMxNDY3OWU7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLmJ1dHRvbi50aW55IHtcbiAgICBmb250LXNpemU6IDAuNnJlbTsgfVxuICAuYnV0dG9uLnNtYWxsIHtcbiAgICBmb250LXNpemU6IDAuNzVyZW07IH1cbiAgLmJ1dHRvbi5sYXJnZSB7XG4gICAgZm9udC1zaXplOiAxLjI1cmVtOyB9XG4gIC5idXR0b24uZXhwYW5kZWQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAuYnV0dG9uLnByaW1hcnkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMxNzc5YmE7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgICAuYnV0dG9uLnByaW1hcnk6aG92ZXIsIC5idXR0b24ucHJpbWFyeTpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTI2MTk1O1xuICAgICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLmJ1dHRvbi5zZWNvbmRhcnkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM3Njc2NzY7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgICAuYnV0dG9uLnNlY29uZGFyeTpob3ZlciwgLmJ1dHRvbi5zZWNvbmRhcnk6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzVlNWU1ZTtcbiAgICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gIC5idXR0b24uc3VjY2VzcyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzNhZGI3NjtcbiAgICBjb2xvcjogIzBhMGEwYTsgfVxuICAgIC5idXR0b24uc3VjY2Vzczpob3ZlciwgLmJ1dHRvbi5zdWNjZXNzOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyMmJiNWI7XG4gICAgICBjb2xvcjogIzBhMGEwYTsgfVxuICAuYnV0dG9uLndhcm5pbmcge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmFlMDA7XG4gICAgY29sb3I6ICMwYTBhMGE7IH1cbiAgICAuYnV0dG9uLndhcm5pbmc6aG92ZXIsIC5idXR0b24ud2FybmluZzpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2M4YjAwO1xuICAgICAgY29sb3I6ICMwYTBhMGE7IH1cbiAgLmJ1dHRvbi5hbGVydCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2NjNGIzNztcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAgIC5idXR0b24uYWxlcnQ6aG92ZXIsIC5idXR0b24uYWxlcnQ6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2E1M2IyYTtcbiAgICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gIC5idXR0b24uZGlzYWJsZWQsIC5idXR0b25bZGlzYWJsZWRdIHtcbiAgICBvcGFjaXR5OiAwLjI1O1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cbiAgICAuYnV0dG9uLmRpc2FibGVkLCAuYnV0dG9uLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uW2Rpc2FibGVkXSwgLmJ1dHRvbltkaXNhYmxlZF06aG92ZXIsIC5idXR0b25bZGlzYWJsZWRdOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxNzc5YmE7XG4gICAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAgIC5idXR0b24uZGlzYWJsZWQucHJpbWFyeSwgLmJ1dHRvbltkaXNhYmxlZF0ucHJpbWFyeSB7XG4gICAgICBvcGFjaXR5OiAwLjI1O1xuICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsgfVxuICAgICAgLmJ1dHRvbi5kaXNhYmxlZC5wcmltYXJ5LCAuYnV0dG9uLmRpc2FibGVkLnByaW1hcnk6aG92ZXIsIC5idXR0b24uZGlzYWJsZWQucHJpbWFyeTpmb2N1cywgLmJ1dHRvbltkaXNhYmxlZF0ucHJpbWFyeSwgLmJ1dHRvbltkaXNhYmxlZF0ucHJpbWFyeTpob3ZlciwgLmJ1dHRvbltkaXNhYmxlZF0ucHJpbWFyeTpmb2N1cyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxNzc5YmE7XG4gICAgICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gICAgLmJ1dHRvbi5kaXNhYmxlZC5zZWNvbmRhcnksIC5idXR0b25bZGlzYWJsZWRdLnNlY29uZGFyeSB7XG4gICAgICBvcGFjaXR5OiAwLjI1O1xuICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsgfVxuICAgICAgLmJ1dHRvbi5kaXNhYmxlZC5zZWNvbmRhcnksIC5idXR0b24uZGlzYWJsZWQuc2Vjb25kYXJ5OmhvdmVyLCAuYnV0dG9uLmRpc2FibGVkLnNlY29uZGFyeTpmb2N1cywgLmJ1dHRvbltkaXNhYmxlZF0uc2Vjb25kYXJ5LCAuYnV0dG9uW2Rpc2FibGVkXS5zZWNvbmRhcnk6aG92ZXIsIC5idXR0b25bZGlzYWJsZWRdLnNlY29uZGFyeTpmb2N1cyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM3Njc2NzY7XG4gICAgICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gICAgLmJ1dHRvbi5kaXNhYmxlZC5zdWNjZXNzLCAuYnV0dG9uW2Rpc2FibGVkXS5zdWNjZXNzIHtcbiAgICAgIG9wYWNpdHk6IDAuMjU7XG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG4gICAgICAuYnV0dG9uLmRpc2FibGVkLnN1Y2Nlc3MsIC5idXR0b24uZGlzYWJsZWQuc3VjY2Vzczpob3ZlciwgLmJ1dHRvbi5kaXNhYmxlZC5zdWNjZXNzOmZvY3VzLCAuYnV0dG9uW2Rpc2FibGVkXS5zdWNjZXNzLCAuYnV0dG9uW2Rpc2FibGVkXS5zdWNjZXNzOmhvdmVyLCAuYnV0dG9uW2Rpc2FibGVkXS5zdWNjZXNzOmZvY3VzIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzNhZGI3NjtcbiAgICAgICAgY29sb3I6ICMwYTBhMGE7IH1cbiAgICAuYnV0dG9uLmRpc2FibGVkLndhcm5pbmcsIC5idXR0b25bZGlzYWJsZWRdLndhcm5pbmcge1xuICAgICAgb3BhY2l0eTogMC4yNTtcbiAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cbiAgICAgIC5idXR0b24uZGlzYWJsZWQud2FybmluZywgLmJ1dHRvbi5kaXNhYmxlZC53YXJuaW5nOmhvdmVyLCAuYnV0dG9uLmRpc2FibGVkLndhcm5pbmc6Zm9jdXMsIC5idXR0b25bZGlzYWJsZWRdLndhcm5pbmcsIC5idXR0b25bZGlzYWJsZWRdLndhcm5pbmc6aG92ZXIsIC5idXR0b25bZGlzYWJsZWRdLndhcm5pbmc6Zm9jdXMge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZhZTAwO1xuICAgICAgICBjb2xvcjogIzBhMGEwYTsgfVxuICAgIC5idXR0b24uZGlzYWJsZWQuYWxlcnQsIC5idXR0b25bZGlzYWJsZWRdLmFsZXJ0IHtcbiAgICAgIG9wYWNpdHk6IDAuMjU7XG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG4gICAgICAuYnV0dG9uLmRpc2FibGVkLmFsZXJ0LCAuYnV0dG9uLmRpc2FibGVkLmFsZXJ0OmhvdmVyLCAuYnV0dG9uLmRpc2FibGVkLmFsZXJ0OmZvY3VzLCAuYnV0dG9uW2Rpc2FibGVkXS5hbGVydCwgLmJ1dHRvbltkaXNhYmxlZF0uYWxlcnQ6aG92ZXIsIC5idXR0b25bZGlzYWJsZWRdLmFsZXJ0OmZvY3VzIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2NjNGIzNztcbiAgICAgICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLmJ1dHRvbi5ob2xsb3cge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICMxNzc5YmE7XG4gICAgY29sb3I6ICMxNzc5YmE7IH1cbiAgICAuYnV0dG9uLmhvbGxvdywgLmJ1dHRvbi5ob2xsb3c6aG92ZXIsIC5idXR0b24uaG9sbG93OmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gICAgLmJ1dHRvbi5ob2xsb3cuZGlzYWJsZWQsIC5idXR0b24uaG9sbG93LmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLmhvbGxvdy5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi5ob2xsb3dbZGlzYWJsZWRdLCAuYnV0dG9uLmhvbGxvd1tkaXNhYmxlZF06aG92ZXIsIC5idXR0b24uaG9sbG93W2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAgIC5idXR0b24uaG9sbG93OmhvdmVyLCAuYnV0dG9uLmhvbGxvdzpmb2N1cyB7XG4gICAgICBib3JkZXItY29sb3I6ICMwYzNkNWQ7XG4gICAgICBjb2xvcjogIzBjM2Q1ZDsgfVxuICAgICAgLmJ1dHRvbi5ob2xsb3c6aG92ZXIuZGlzYWJsZWQsIC5idXR0b24uaG9sbG93OmhvdmVyW2Rpc2FibGVkXSwgLmJ1dHRvbi5ob2xsb3c6Zm9jdXMuZGlzYWJsZWQsIC5idXR0b24uaG9sbG93OmZvY3VzW2Rpc2FibGVkXSB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMxNzc5YmE7XG4gICAgICAgIGNvbG9yOiAjMTc3OWJhOyB9XG4gICAgLmJ1dHRvbi5ob2xsb3cucHJpbWFyeSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjMTc3OWJhO1xuICAgICAgY29sb3I6ICMxNzc5YmE7IH1cbiAgICAgIC5idXR0b24uaG9sbG93LnByaW1hcnk6aG92ZXIsIC5idXR0b24uaG9sbG93LnByaW1hcnk6Zm9jdXMge1xuICAgICAgICBib3JkZXItY29sb3I6ICMwYzNkNWQ7XG4gICAgICAgIGNvbG9yOiAjMGMzZDVkOyB9XG4gICAgICAgIC5idXR0b24uaG9sbG93LnByaW1hcnk6aG92ZXIuZGlzYWJsZWQsIC5idXR0b24uaG9sbG93LnByaW1hcnk6aG92ZXJbZGlzYWJsZWRdLCAuYnV0dG9uLmhvbGxvdy5wcmltYXJ5OmZvY3VzLmRpc2FibGVkLCAuYnV0dG9uLmhvbGxvdy5wcmltYXJ5OmZvY3VzW2Rpc2FibGVkXSB7XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzE3NzliYTtcbiAgICAgICAgICBjb2xvcjogIzE3NzliYTsgfVxuICAgIC5idXR0b24uaG9sbG93LnNlY29uZGFyeSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjNzY3Njc2O1xuICAgICAgY29sb3I6ICM3Njc2NzY7IH1cbiAgICAgIC5idXR0b24uaG9sbG93LnNlY29uZGFyeTpob3ZlciwgLmJ1dHRvbi5ob2xsb3cuc2Vjb25kYXJ5OmZvY3VzIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjM2IzYjNiO1xuICAgICAgICBjb2xvcjogIzNiM2IzYjsgfVxuICAgICAgICAuYnV0dG9uLmhvbGxvdy5zZWNvbmRhcnk6aG92ZXIuZGlzYWJsZWQsIC5idXR0b24uaG9sbG93LnNlY29uZGFyeTpob3ZlcltkaXNhYmxlZF0sIC5idXR0b24uaG9sbG93LnNlY29uZGFyeTpmb2N1cy5kaXNhYmxlZCwgLmJ1dHRvbi5ob2xsb3cuc2Vjb25kYXJ5OmZvY3VzW2Rpc2FibGVkXSB7XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzc2NzY3NjtcbiAgICAgICAgICBjb2xvcjogIzc2NzY3NjsgfVxuICAgIC5idXR0b24uaG9sbG93LnN1Y2Nlc3Mge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgIzNhZGI3NjtcbiAgICAgIGNvbG9yOiAjM2FkYjc2OyB9XG4gICAgICAuYnV0dG9uLmhvbGxvdy5zdWNjZXNzOmhvdmVyLCAuYnV0dG9uLmhvbGxvdy5zdWNjZXNzOmZvY3VzIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjMTU3NTM5O1xuICAgICAgICBjb2xvcjogIzE1NzUzOTsgfVxuICAgICAgICAuYnV0dG9uLmhvbGxvdy5zdWNjZXNzOmhvdmVyLmRpc2FibGVkLCAuYnV0dG9uLmhvbGxvdy5zdWNjZXNzOmhvdmVyW2Rpc2FibGVkXSwgLmJ1dHRvbi5ob2xsb3cuc3VjY2Vzczpmb2N1cy5kaXNhYmxlZCwgLmJ1dHRvbi5ob2xsb3cuc3VjY2Vzczpmb2N1c1tkaXNhYmxlZF0ge1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzYWRiNzY7XG4gICAgICAgICAgY29sb3I6ICMzYWRiNzY7IH1cbiAgICAuYnV0dG9uLmhvbGxvdy53YXJuaW5nIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNmZmFlMDA7XG4gICAgICBjb2xvcjogI2ZmYWUwMDsgfVxuICAgICAgLmJ1dHRvbi5ob2xsb3cud2FybmluZzpob3ZlciwgLmJ1dHRvbi5ob2xsb3cud2FybmluZzpmb2N1cyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogIzgwNTcwMDtcbiAgICAgICAgY29sb3I6ICM4MDU3MDA7IH1cbiAgICAgICAgLmJ1dHRvbi5ob2xsb3cud2FybmluZzpob3Zlci5kaXNhYmxlZCwgLmJ1dHRvbi5ob2xsb3cud2FybmluZzpob3ZlcltkaXNhYmxlZF0sIC5idXR0b24uaG9sbG93Lndhcm5pbmc6Zm9jdXMuZGlzYWJsZWQsIC5idXR0b24uaG9sbG93Lndhcm5pbmc6Zm9jdXNbZGlzYWJsZWRdIHtcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZmZhZTAwO1xuICAgICAgICAgIGNvbG9yOiAjZmZhZTAwOyB9XG4gICAgLmJ1dHRvbi5ob2xsb3cuYWxlcnQge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2NjNGIzNztcbiAgICAgIGNvbG9yOiAjY2M0YjM3OyB9XG4gICAgICAuYnV0dG9uLmhvbGxvdy5hbGVydDpob3ZlciwgLmJ1dHRvbi5ob2xsb3cuYWxlcnQ6Zm9jdXMge1xuICAgICAgICBib3JkZXItY29sb3I6ICM2NzI1MWE7XG4gICAgICAgIGNvbG9yOiAjNjcyNTFhOyB9XG4gICAgICAgIC5idXR0b24uaG9sbG93LmFsZXJ0OmhvdmVyLmRpc2FibGVkLCAuYnV0dG9uLmhvbGxvdy5hbGVydDpob3ZlcltkaXNhYmxlZF0sIC5idXR0b24uaG9sbG93LmFsZXJ0OmZvY3VzLmRpc2FibGVkLCAuYnV0dG9uLmhvbGxvdy5hbGVydDpmb2N1c1tkaXNhYmxlZF0ge1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjYzRiMzc7XG4gICAgICAgICAgY29sb3I6ICNjYzRiMzc7IH1cbiAgLmJ1dHRvbi5jbGVhciB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzE3NzliYTtcbiAgICBjb2xvcjogIzE3NzliYTsgfVxuICAgIC5idXR0b24uY2xlYXIsIC5idXR0b24uY2xlYXI6aG92ZXIsIC5idXR0b24uY2xlYXI6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgICAuYnV0dG9uLmNsZWFyLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLmNsZWFyLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLmNsZWFyW2Rpc2FibGVkXSwgLmJ1dHRvbi5jbGVhcltkaXNhYmxlZF06aG92ZXIsIC5idXR0b24uY2xlYXJbZGlzYWJsZWRdOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gICAgLmJ1dHRvbi5jbGVhcjpob3ZlciwgLmJ1dHRvbi5jbGVhcjpmb2N1cyB7XG4gICAgICBib3JkZXItY29sb3I6ICMwYzNkNWQ7XG4gICAgICBjb2xvcjogIzBjM2Q1ZDsgfVxuICAgICAgLmJ1dHRvbi5jbGVhcjpob3Zlci5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhcjpob3ZlcltkaXNhYmxlZF0sIC5idXR0b24uY2xlYXI6Zm9jdXMuZGlzYWJsZWQsIC5idXR0b24uY2xlYXI6Zm9jdXNbZGlzYWJsZWRdIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzE3NzliYTtcbiAgICAgICAgY29sb3I6ICMxNzc5YmE7IH1cbiAgICAuYnV0dG9uLmNsZWFyLCAuYnV0dG9uLmNsZWFyLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyW2Rpc2FibGVkXSwgLmJ1dHRvbi5jbGVhcjpob3ZlciwgLmJ1dHRvbi5jbGVhcjpob3Zlci5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhcjpob3ZlcltkaXNhYmxlZF0sIC5idXR0b24uY2xlYXI6Zm9jdXMsIC5idXR0b24uY2xlYXI6Zm9jdXMuZGlzYWJsZWQsIC5idXR0b24uY2xlYXI6Zm9jdXNbZGlzYWJsZWRdIHtcbiAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgICAuYnV0dG9uLmNsZWFyLnByaW1hcnkge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgIzE3NzliYTtcbiAgICAgIGNvbG9yOiAjMTc3OWJhOyB9XG4gICAgICAuYnV0dG9uLmNsZWFyLnByaW1hcnk6aG92ZXIsIC5idXR0b24uY2xlYXIucHJpbWFyeTpmb2N1cyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogIzBjM2Q1ZDtcbiAgICAgICAgY29sb3I6ICMwYzNkNWQ7IH1cbiAgICAgICAgLmJ1dHRvbi5jbGVhci5wcmltYXJ5OmhvdmVyLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLnByaW1hcnk6aG92ZXJbZGlzYWJsZWRdLCAuYnV0dG9uLmNsZWFyLnByaW1hcnk6Zm9jdXMuZGlzYWJsZWQsIC5idXR0b24uY2xlYXIucHJpbWFyeTpmb2N1c1tkaXNhYmxlZF0ge1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMxNzc5YmE7XG4gICAgICAgICAgY29sb3I6ICMxNzc5YmE7IH1cbiAgICAgIC5idXR0b24uY2xlYXIucHJpbWFyeSwgLmJ1dHRvbi5jbGVhci5wcmltYXJ5LmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLnByaW1hcnlbZGlzYWJsZWRdLCAuYnV0dG9uLmNsZWFyLnByaW1hcnk6aG92ZXIsIC5idXR0b24uY2xlYXIucHJpbWFyeTpob3Zlci5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci5wcmltYXJ5OmhvdmVyW2Rpc2FibGVkXSwgLmJ1dHRvbi5jbGVhci5wcmltYXJ5OmZvY3VzLCAuYnV0dG9uLmNsZWFyLnByaW1hcnk6Zm9jdXMuZGlzYWJsZWQsIC5idXR0b24uY2xlYXIucHJpbWFyeTpmb2N1c1tkaXNhYmxlZF0ge1xuICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gICAgLmJ1dHRvbi5jbGVhci5zZWNvbmRhcnkge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgIzc2NzY3NjtcbiAgICAgIGNvbG9yOiAjNzY3Njc2OyB9XG4gICAgICAuYnV0dG9uLmNsZWFyLnNlY29uZGFyeTpob3ZlciwgLmJ1dHRvbi5jbGVhci5zZWNvbmRhcnk6Zm9jdXMge1xuICAgICAgICBib3JkZXItY29sb3I6ICMzYjNiM2I7XG4gICAgICAgIGNvbG9yOiAjM2IzYjNiOyB9XG4gICAgICAgIC5idXR0b24uY2xlYXIuc2Vjb25kYXJ5OmhvdmVyLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLnNlY29uZGFyeTpob3ZlcltkaXNhYmxlZF0sIC5idXR0b24uY2xlYXIuc2Vjb25kYXJ5OmZvY3VzLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLnNlY29uZGFyeTpmb2N1c1tkaXNhYmxlZF0ge1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM3Njc2NzY7XG4gICAgICAgICAgY29sb3I6ICM3Njc2NzY7IH1cbiAgICAgIC5idXR0b24uY2xlYXIuc2Vjb25kYXJ5LCAuYnV0dG9uLmNsZWFyLnNlY29uZGFyeS5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci5zZWNvbmRhcnlbZGlzYWJsZWRdLCAuYnV0dG9uLmNsZWFyLnNlY29uZGFyeTpob3ZlciwgLmJ1dHRvbi5jbGVhci5zZWNvbmRhcnk6aG92ZXIuZGlzYWJsZWQsIC5idXR0b24uY2xlYXIuc2Vjb25kYXJ5OmhvdmVyW2Rpc2FibGVkXSwgLmJ1dHRvbi5jbGVhci5zZWNvbmRhcnk6Zm9jdXMsIC5idXR0b24uY2xlYXIuc2Vjb25kYXJ5OmZvY3VzLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLnNlY29uZGFyeTpmb2N1c1tkaXNhYmxlZF0ge1xuICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gICAgLmJ1dHRvbi5jbGVhci5zdWNjZXNzIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzYWRiNzY7XG4gICAgICBjb2xvcjogIzNhZGI3NjsgfVxuICAgICAgLmJ1dHRvbi5jbGVhci5zdWNjZXNzOmhvdmVyLCAuYnV0dG9uLmNsZWFyLnN1Y2Nlc3M6Zm9jdXMge1xuICAgICAgICBib3JkZXItY29sb3I6ICMxNTc1Mzk7XG4gICAgICAgIGNvbG9yOiAjMTU3NTM5OyB9XG4gICAgICAgIC5idXR0b24uY2xlYXIuc3VjY2Vzczpob3Zlci5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci5zdWNjZXNzOmhvdmVyW2Rpc2FibGVkXSwgLmJ1dHRvbi5jbGVhci5zdWNjZXNzOmZvY3VzLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLnN1Y2Nlc3M6Zm9jdXNbZGlzYWJsZWRdIHtcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjM2FkYjc2O1xuICAgICAgICAgIGNvbG9yOiAjM2FkYjc2OyB9XG4gICAgICAuYnV0dG9uLmNsZWFyLnN1Y2Nlc3MsIC5idXR0b24uY2xlYXIuc3VjY2Vzcy5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci5zdWNjZXNzW2Rpc2FibGVkXSwgLmJ1dHRvbi5jbGVhci5zdWNjZXNzOmhvdmVyLCAuYnV0dG9uLmNsZWFyLnN1Y2Nlc3M6aG92ZXIuZGlzYWJsZWQsIC5idXR0b24uY2xlYXIuc3VjY2Vzczpob3ZlcltkaXNhYmxlZF0sIC5idXR0b24uY2xlYXIuc3VjY2Vzczpmb2N1cywgLmJ1dHRvbi5jbGVhci5zdWNjZXNzOmZvY3VzLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLnN1Y2Nlc3M6Zm9jdXNbZGlzYWJsZWRdIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAgIC5idXR0b24uY2xlYXIud2FybmluZyB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZmZhZTAwO1xuICAgICAgY29sb3I6ICNmZmFlMDA7IH1cbiAgICAgIC5idXR0b24uY2xlYXIud2FybmluZzpob3ZlciwgLmJ1dHRvbi5jbGVhci53YXJuaW5nOmZvY3VzIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjODA1NzAwO1xuICAgICAgICBjb2xvcjogIzgwNTcwMDsgfVxuICAgICAgICAuYnV0dG9uLmNsZWFyLndhcm5pbmc6aG92ZXIuZGlzYWJsZWQsIC5idXR0b24uY2xlYXIud2FybmluZzpob3ZlcltkaXNhYmxlZF0sIC5idXR0b24uY2xlYXIud2FybmluZzpmb2N1cy5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci53YXJuaW5nOmZvY3VzW2Rpc2FibGVkXSB7XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2ZmYWUwMDtcbiAgICAgICAgICBjb2xvcjogI2ZmYWUwMDsgfVxuICAgICAgLmJ1dHRvbi5jbGVhci53YXJuaW5nLCAuYnV0dG9uLmNsZWFyLndhcm5pbmcuZGlzYWJsZWQsIC5idXR0b24uY2xlYXIud2FybmluZ1tkaXNhYmxlZF0sIC5idXR0b24uY2xlYXIud2FybmluZzpob3ZlciwgLmJ1dHRvbi5jbGVhci53YXJuaW5nOmhvdmVyLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLndhcm5pbmc6aG92ZXJbZGlzYWJsZWRdLCAuYnV0dG9uLmNsZWFyLndhcm5pbmc6Zm9jdXMsIC5idXR0b24uY2xlYXIud2FybmluZzpmb2N1cy5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci53YXJuaW5nOmZvY3VzW2Rpc2FibGVkXSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgICAuYnV0dG9uLmNsZWFyLmFsZXJ0IHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjYzRiMzc7XG4gICAgICBjb2xvcjogI2NjNGIzNzsgfVxuICAgICAgLmJ1dHRvbi5jbGVhci5hbGVydDpob3ZlciwgLmJ1dHRvbi5jbGVhci5hbGVydDpmb2N1cyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogIzY3MjUxYTtcbiAgICAgICAgY29sb3I6ICM2NzI1MWE7IH1cbiAgICAgICAgLmJ1dHRvbi5jbGVhci5hbGVydDpob3Zlci5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci5hbGVydDpob3ZlcltkaXNhYmxlZF0sIC5idXR0b24uY2xlYXIuYWxlcnQ6Zm9jdXMuZGlzYWJsZWQsIC5idXR0b24uY2xlYXIuYWxlcnQ6Zm9jdXNbZGlzYWJsZWRdIHtcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjY2M0YjM3O1xuICAgICAgICAgIGNvbG9yOiAjY2M0YjM3OyB9XG4gICAgICAuYnV0dG9uLmNsZWFyLmFsZXJ0LCAuYnV0dG9uLmNsZWFyLmFsZXJ0LmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLmFsZXJ0W2Rpc2FibGVkXSwgLmJ1dHRvbi5jbGVhci5hbGVydDpob3ZlciwgLmJ1dHRvbi5jbGVhci5hbGVydDpob3Zlci5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci5hbGVydDpob3ZlcltkaXNhYmxlZF0sIC5idXR0b24uY2xlYXIuYWxlcnQ6Zm9jdXMsIC5idXR0b24uY2xlYXIuYWxlcnQ6Zm9jdXMuZGlzYWJsZWQsIC5idXR0b24uY2xlYXIuYWxlcnQ6Zm9jdXNbZGlzYWJsZWRdIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAuYnV0dG9uLmRyb3Bkb3duOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgMC40ZW07XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6ICNmZWZlZmUgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMC40ZW07XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBtYXJnaW4tbGVmdDogMWVtOyB9XG4gIC5idXR0b24uZHJvcGRvd24uaG9sbG93OjphZnRlciB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogIzE3NzliYTsgfVxuICAuYnV0dG9uLmRyb3Bkb3duLmhvbGxvdy5wcmltYXJ5OjphZnRlciB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogIzE3NzliYTsgfVxuICAuYnV0dG9uLmRyb3Bkb3duLmhvbGxvdy5zZWNvbmRhcnk6OmFmdGVyIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAjNzY3Njc2OyB9XG4gIC5idXR0b24uZHJvcGRvd24uaG9sbG93LnN1Y2Nlc3M6OmFmdGVyIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAjM2FkYjc2OyB9XG4gIC5idXR0b24uZHJvcGRvd24uaG9sbG93Lndhcm5pbmc6OmFmdGVyIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAjZmZhZTAwOyB9XG4gIC5idXR0b24uZHJvcGRvd24uaG9sbG93LmFsZXJ0OjphZnRlciB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogI2NjNGIzNzsgfVxuICAuYnV0dG9uLmFycm93LW9ubHk6OmFmdGVyIHtcbiAgICB0b3A6IC0wLjFlbTtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBtYXJnaW4tbGVmdDogMDsgfVxuXG5bdHlwZT0ndGV4dCddLCBbdHlwZT0ncGFzc3dvcmQnXSwgW3R5cGU9J2RhdGUnXSwgW3R5cGU9J2RhdGV0aW1lJ10sIFt0eXBlPSdkYXRldGltZS1sb2NhbCddLCBbdHlwZT0nbW9udGgnXSwgW3R5cGU9J3dlZWsnXSwgW3R5cGU9J2VtYWlsJ10sIFt0eXBlPSdudW1iZXInXSwgW3R5cGU9J3NlYXJjaCddLCBbdHlwZT0ndGVsJ10sIFt0eXBlPSd0aW1lJ10sIFt0eXBlPSd1cmwnXSwgW3R5cGU9J2NvbG9yJ10sXG50ZXh0YXJlYSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAyLjQzNzVyZW07XG4gIG1hcmdpbjogMCAwIDFyZW07XG4gIHBhZGRpbmc6IDAuNXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NhY2FjYTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMnB4IHJnYmEoMTAsIDEwLCAxMCwgMC4xKTtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgY29sb3I6ICMwYTBhMGE7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0O1xuICBhcHBlYXJhbmNlOiBub25lOyB9XG4gIFt0eXBlPSd0ZXh0J106Zm9jdXMsIFt0eXBlPSdwYXNzd29yZCddOmZvY3VzLCBbdHlwZT0nZGF0ZSddOmZvY3VzLCBbdHlwZT0nZGF0ZXRpbWUnXTpmb2N1cywgW3R5cGU9J2RhdGV0aW1lLWxvY2FsJ106Zm9jdXMsIFt0eXBlPSdtb250aCddOmZvY3VzLCBbdHlwZT0nd2VlayddOmZvY3VzLCBbdHlwZT0nZW1haWwnXTpmb2N1cywgW3R5cGU9J251bWJlciddOmZvY3VzLCBbdHlwZT0nc2VhcmNoJ106Zm9jdXMsIFt0eXBlPSd0ZWwnXTpmb2N1cywgW3R5cGU9J3RpbWUnXTpmb2N1cywgW3R5cGU9J3VybCddOmZvY3VzLCBbdHlwZT0nY29sb3InXTpmb2N1cyxcbiAgdGV4dGFyZWE6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzhhOGE4YTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlO1xuICAgIGJveC1zaGFkb3c6IDAgMCA1cHggI2NhY2FjYTtcbiAgICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuNXMsIGJvcmRlci1jb2xvciAwLjI1cyBlYXNlLWluLW91dDsgfVxuXG50ZXh0YXJlYSB7XG4gIG1heC13aWR0aDogMTAwJTsgfVxuICB0ZXh0YXJlYVtyb3dzXSB7XG4gICAgaGVpZ2h0OiBhdXRvOyB9XG5cbmlucHV0OjpwbGFjZWhvbGRlcixcbnRleHRhcmVhOjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjY2FjYWNhOyB9XG5cbmlucHV0OmRpc2FibGVkLCBpbnB1dFtyZWFkb25seV0sXG50ZXh0YXJlYTpkaXNhYmxlZCxcbnRleHRhcmVhW3JlYWRvbmx5XSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cblxuW3R5cGU9J3N1Ym1pdCddLFxuW3R5cGU9J2J1dHRvbiddIHtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMDsgfVxuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuXG5bdHlwZT0nZmlsZSddLFxuW3R5cGU9J2NoZWNrYm94J10sXG5bdHlwZT0ncmFkaW8nXSB7XG4gIG1hcmdpbjogMCAwIDFyZW07IH1cblxuW3R5cGU9J2NoZWNrYm94J10gKyBsYWJlbCxcblt0eXBlPSdyYWRpbyddICsgbGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIFt0eXBlPSdjaGVja2JveCddICsgbGFiZWxbZm9yXSxcbiAgW3R5cGU9J3JhZGlvJ10gKyBsYWJlbFtmb3JdIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7IH1cblxubGFiZWwgPiBbdHlwZT0nY2hlY2tib3gnXSxcbmxhYmVsID4gW3R5cGU9J3JhZGlvJ10ge1xuICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTsgfVxuXG5bdHlwZT0nZmlsZSddIHtcbiAgd2lkdGg6IDEwMCU7IH1cblxubGFiZWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMS44O1xuICBjb2xvcjogIzBhMGEwYTsgfVxuICBsYWJlbC5taWRkbGUge1xuICAgIG1hcmdpbjogMCAwIDFyZW07XG4gICAgcGFkZGluZzogMC41NjI1cmVtIDA7IH1cblxuLmhlbHAtdGV4dCB7XG4gIG1hcmdpbi10b3A6IC0wLjVyZW07XG4gIGZvbnQtc2l6ZTogMC44MTI1cmVtO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGNvbG9yOiAjMGEwYTBhOyB9XG5cbi5pbnB1dC1ncm91cCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDsgfVxuICAuaW5wdXQtZ3JvdXAgPiA6Zmlyc3QtY2hpbGQge1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMCAwIDA7IH1cbiAgLmlucHV0LWdyb3VwID4gOmxhc3QtY2hpbGQgPiAqIHtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgMCAwOyB9XG5cbi5pbnB1dC1ncm91cC1sYWJlbCwgLmlucHV0LWdyb3VwLWZpZWxkLCAuaW5wdXQtZ3JvdXAtYnV0dG9uLCAuaW5wdXQtZ3JvdXAtYnV0dG9uIGEsXG4uaW5wdXQtZ3JvdXAtYnV0dG9uIGlucHV0LFxuLmlucHV0LWdyb3VwLWJ1dHRvbiBidXR0b24sXG4uaW5wdXQtZ3JvdXAtYnV0dG9uIGxhYmVsIHtcbiAgbWFyZ2luOiAwO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG5cbi5pbnB1dC1ncm91cC1sYWJlbCB7XG4gIHBhZGRpbmc6IDAgMXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NhY2FjYTtcbiAgYmFja2dyb3VuZDogI2U2ZTZlNjtcbiAgY29sb3I6ICMwYTBhMGE7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleDogMCAwIGF1dG87XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgLmlucHV0LWdyb3VwLWxhYmVsOmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItcmlnaHQ6IDA7IH1cbiAgLmlucHV0LWdyb3VwLWxhYmVsOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1sZWZ0OiAwOyB9XG5cbi5pbnB1dC1ncm91cC1maWVsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGZsZXg6IDEgMSAwcHg7XG4gIGhlaWdodDogYXV0bztcbiAgbWluLXdpZHRoOiAwOyB9XG5cbi5pbnB1dC1ncm91cC1idXR0b24ge1xuICBwYWRkaW5nLXRvcDogMDtcbiAgcGFkZGluZy1ib3R0b206IDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZmxleDogMCAwIGF1dG87IH1cbiAgLmlucHV0LWdyb3VwLWJ1dHRvbiBhLFxuICAuaW5wdXQtZ3JvdXAtYnV0dG9uIGlucHV0LFxuICAuaW5wdXQtZ3JvdXAtYnV0dG9uIGJ1dHRvbixcbiAgLmlucHV0LWdyb3VwLWJ1dHRvbiBsYWJlbCB7XG4gICAgaGVpZ2h0OiAyLjVyZW07XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgZm9udC1zaXplOiAxcmVtOyB9XG5cbmZpZWxkc2V0IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7IH1cblxubGVnZW5kIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07IH1cblxuLmZpZWxkc2V0IHtcbiAgbWFyZ2luOiAxLjEyNXJlbSAwO1xuICBwYWRkaW5nOiAxLjI1cmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2FjYWNhOyB9XG4gIC5maWVsZHNldCBsZWdlbmQge1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXJnaW4tbGVmdDogLTAuMTg3NXJlbTtcbiAgICBwYWRkaW5nOiAwIDAuMTg3NXJlbTsgfVxuXG5zZWxlY3Qge1xuICBoZWlnaHQ6IDIuNDM3NXJlbTtcbiAgbWFyZ2luOiAwIDAgMXJlbTtcbiAgcGFkZGluZzogMC41cmVtO1xuICBhcHBlYXJhbmNlOiBub25lO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2FjYWNhO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBjb2xvcjogIzBhMGEwYTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZlcnNpb249JzEuMScgd2lkdGg9JzMyJyBoZWlnaHQ9JzI0JyB2aWV3Qm94PScwIDAgMzIgMjQnPjxwb2x5Z29uIHBvaW50cz0nMCwwIDMyLDAgMTYsMjQnIHN0eWxlPSdmaWxsOiByZ2IlMjgxMzgsIDEzOCwgMTM4JTI5Jz48L3BvbHlnb24+PC9zdmc+XCIpO1xuICBiYWNrZ3JvdW5kLW9yaWdpbjogY29udGVudC1ib3g7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IC0xcmVtIGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiA5cHggNnB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDBcXDApIHtcbiAgICBzZWxlY3Qge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDQUFBQUFZQ0FZQUFBQ2JVLzgwQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFJcEpSRUZVZU5yRWtja05nREFNQkJmUmtFdDBPYlJCQmRzR1hVRGdtUWZLNFhoSDJtOGN6UUFBeTI3UjN0c3c0UWZlMng4dU9PNm9ZTGI2R2xPb3IzR0Yrc3dVUkFPbVVKK1J3dEVKczlXdlRHRVl4QlhxSTFNUUFaaENmVVFLUnpETVZqK1R3ckFJVjZqdlNVRWtZQXIxTFNrY3lUQmIvVitLWWZYN3hBZXVzcTNzTER0R0gza0VHQUNQV0lmbE5aZmhSUUFBQUFCSlJVNUVya0pnZ2c9PVwiKTsgfSB9XG4gIHNlbGVjdDpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjOGE4YThhO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7XG4gICAgYm94LXNoYWRvdzogMCAwIDVweCAjY2FjYWNhO1xuICAgIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0OyB9XG4gIHNlbGVjdDpkaXNhYmxlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG4gIHNlbGVjdDo6LW1zLWV4cGFuZCB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICBzZWxlY3RbbXVsdGlwbGVdIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsgfVxuXG4uaXMtaW52YWxpZC1pbnB1dDpub3QoOmZvY3VzKSB7XG4gIGJvcmRlci1jb2xvcjogI2NjNGIzNztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZWNlYTsgfVxuICAuaXMtaW52YWxpZC1pbnB1dDpub3QoOmZvY3VzKTo6cGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiAjY2M0YjM3OyB9XG5cbi5pcy1pbnZhbGlkLWxhYmVsIHtcbiAgY29sb3I6ICNjYzRiMzc7IH1cblxuLmZvcm0tZXJyb3Ige1xuICBkaXNwbGF5OiBub25lO1xuICBtYXJnaW4tdG9wOiAtMC41cmVtO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogI2NjNGIzNzsgfVxuICAuZm9ybS1lcnJvci5pcy12aXNpYmxlIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuXG4uaGlkZSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4uaW52aXNpYmxlIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAuaGlkZS1mb3Itc21hbGwtb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMGVtKSwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5zaG93LWZvci1zbWFsbC1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuaGlkZS1mb3ItbWVkaXVtIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgLnNob3ctZm9yLW1lZGl1bSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkgYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICAuaGlkZS1mb3ItbWVkaXVtLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSksIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAuc2hvdy1mb3ItbWVkaXVtLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5oaWRlLWZvci1sYXJnZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XG4gIC5zaG93LWZvci1sYXJnZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkgYW5kIChtYXgtd2lkdGg6IDc0LjkzNzVlbSkge1xuICAuaGlkZS1mb3ItbGFyZ2Utb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gIC5zaG93LWZvci1sYXJnZS1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG4uc2hvdy1mb3Itc3IsXG4uc2hvdy1vbi1mb2N1cyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDFweDtcbiAgcGFkZGluZzogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgY2xpcC1wYXRoOiBpbnNldCg1MCUpO1xuICBib3JkZXI6IDA7IH1cblxuLnNob3ctb24tZm9jdXM6YWN0aXZlLCAuc2hvdy1vbi1mb2N1czpmb2N1cyB7XG4gIHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDtcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIGNsaXA6IGF1dG87XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIGNsaXAtcGF0aDogbm9uZTsgfVxuXG4uc2hvdy1mb3ItbGFuZHNjYXBlLFxuLmhpZGUtZm9yLXBvcnRyYWl0IHtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSkge1xuICAgIC5zaG93LWZvci1sYW5kc2NhcGUsXG4gICAgLmhpZGUtZm9yLXBvcnRyYWl0IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KSB7XG4gICAgLnNob3ctZm9yLWxhbmRzY2FwZSxcbiAgICAuaGlkZS1mb3ItcG9ydHJhaXQge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuLmhpZGUtZm9yLWxhbmRzY2FwZSxcbi5zaG93LWZvci1wb3J0cmFpdCB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSkge1xuICAgIC5oaWRlLWZvci1sYW5kc2NhcGUsXG4gICAgLnNob3ctZm9yLXBvcnRyYWl0IHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpIHtcbiAgICAuaGlkZS1mb3ItbGFuZHNjYXBlLFxuICAgIC5zaG93LWZvci1wb3J0cmFpdCB7XG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9IH1cblxuLm1lbnUge1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwOyB9XG4gIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAubWVudSBsaSB7XG4gICAgb3V0bGluZTogMDsgfVxuICAubWVudSBhLFxuICAubWVudSAuYnV0dG9uIHtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAwLjdyZW0gMXJlbTsgfVxuICAubWVudSBpbnB1dCxcbiAgLm1lbnUgc2VsZWN0LFxuICAubWVudSBhLFxuICAubWVudSBidXR0b24ge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLm1lbnUgaW5wdXQge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAubWVudSwgLm1lbnUuaG9yaXpvbnRhbCB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7IH1cbiAgLm1lbnUudmVydGljYWwge1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgLm1lbnUuZXhwYW5kZWQgbGkge1xuICAgIGZsZXg6IDEgMSAwcHg7IH1cbiAgLm1lbnUuc2ltcGxlIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gICAgLm1lbnUuc2ltcGxlIGxpICsgbGkge1xuICAgICAgbWFyZ2luLWxlZnQ6IDFyZW07IH1cbiAgICAubWVudS5zaW1wbGUgYSB7XG4gICAgICBwYWRkaW5nOiAwOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLm1lbnUubWVkaXVtLWhvcml6b250YWwge1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsgfVxuICAgIC5tZW51Lm1lZGl1bS12ZXJ0aWNhbCB7XG4gICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgICAubWVudS5tZWRpdW0tZXhwYW5kZWQgbGkge1xuICAgICAgZmxleDogMSAxIDBweDsgfVxuICAgIC5tZW51Lm1lZGl1bS1zaW1wbGUgbGkge1xuICAgICAgZmxleDogMSAxIDBweDsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLm1lbnUubGFyZ2UtaG9yaXpvbnRhbCB7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93OyB9XG4gICAgLm1lbnUubGFyZ2UtdmVydGljYWwge1xuICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4gICAgLm1lbnUubGFyZ2UtZXhwYW5kZWQgbGkge1xuICAgICAgZmxleDogMSAxIDBweDsgfVxuICAgIC5tZW51LmxhcmdlLXNpbXBsZSBsaSB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyB9IH1cbiAgLm1lbnUubmVzdGVkIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDFyZW07IH1cbiAgLm1lbnUuaWNvbnMgYSB7XG4gICAgZGlzcGxheTogZmxleDsgfVxuICAubWVudS5pY29uLWxlZnQgbGkgYSB7XG4gICAgZmxleC1mbG93OiByb3cgbm93cmFwOyB9XG4gICAgLm1lbnUuaWNvbi1sZWZ0IGxpIGEgaW1nLFxuICAgIC5tZW51Lmljb24tbGVmdCBsaSBhIGksXG4gICAgLm1lbnUuaWNvbi1sZWZ0IGxpIGEgc3ZnIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTsgfVxuICAubWVudS5pY29uLXJpZ2h0IGxpIGEge1xuICAgIGZsZXgtZmxvdzogcm93IG5vd3JhcDsgfVxuICAgIC5tZW51Lmljb24tcmlnaHQgbGkgYSBpbWcsXG4gICAgLm1lbnUuaWNvbi1yaWdodCBsaSBhIGksXG4gICAgLm1lbnUuaWNvbi1yaWdodCBsaSBhIHN2ZyB7XG4gICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTsgfVxuICAubWVudS5pY29uLXRvcCBsaSBhIHtcbiAgICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7IH1cbiAgICAubWVudS5pY29uLXRvcCBsaSBhIGltZyxcbiAgICAubWVudS5pY29uLXRvcCBsaSBhIGksXG4gICAgLm1lbnUuaWNvbi10b3AgbGkgYSBzdmcge1xuICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLm1lbnUuaWNvbi1ib3R0b20gbGkgYSB7XG4gICAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwOyB9XG4gICAgLm1lbnUuaWNvbi1ib3R0b20gbGkgYSBpbWcsXG4gICAgLm1lbnUuaWNvbi1ib3R0b20gbGkgYSBpLFxuICAgIC5tZW51Lmljb24tYm90dG9tIGxpIGEgc3ZnIHtcbiAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC5tZW51IC5pcy1hY3RpdmUgPiBhIHtcbiAgICBiYWNrZ3JvdW5kOiAjMTc3OWJhO1xuICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gIC5tZW51IC5hY3RpdmUgPiBhIHtcbiAgICBiYWNrZ3JvdW5kOiAjMTc3OWJhO1xuICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gIC5tZW51LmFsaWduLWxlZnQge1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgfVxuICAubWVudS5hbGlnbi1yaWdodCBsaSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyB9XG4gICAgLm1lbnUuYWxpZ24tcmlnaHQgbGkgLnN1Ym1lbnUgbGkge1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OyB9XG4gIC5tZW51LmFsaWduLXJpZ2h0LnZlcnRpY2FsIGxpIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0ZXh0LWFsaWduOiByaWdodDsgfVxuICAgIC5tZW51LmFsaWduLXJpZ2h0LnZlcnRpY2FsIGxpIC5zdWJtZW51IGxpIHtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gIC5tZW51LmFsaWduLXJpZ2h0IC5uZXN0ZWQge1xuICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAubWVudS5hbGlnbi1jZW50ZXIgbGkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgICAubWVudS5hbGlnbi1jZW50ZXIgbGkgLnN1Ym1lbnUgbGkge1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OyB9XG4gIC5tZW51IC5tZW51LXRleHQge1xuICAgIHBhZGRpbmc6IDAuN3JlbSAxcmVtO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGNvbG9yOiBpbmhlcml0OyB9XG5cbi5tZW51LWNlbnRlcmVkID4gLm1lbnUge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAubWVudS1jZW50ZXJlZCA+IC5tZW51IGxpIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gICAgLm1lbnUtY2VudGVyZWQgPiAubWVudSBsaSAuc3VibWVudSBsaSB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7IH1cblxuLm5vLWpzIFtkYXRhLXJlc3BvbnNpdmUtbWVudV0gdWwge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi8qISAqIFtVbml0IFNwYWNlXShodHRwczovL2dpdGh1Yi5jb20va2V2aW5tYWNrMTgvU0FTUy1NYXJnaW4tYW5kLVBhZGRpbmctU3RhcnRlcikgKi9cbiosICo6YmVmb3JlLCAqOmFmdGVyIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5NjBweCkge1xuICAucGFkZGluZywgLnBhZGRpbmctdG9wIHtcbiAgICBwYWRkaW5nLXRvcDogMTZweCAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnBhZGRpbmcsIC5wYWRkaW5nLXRvcCB7XG4gICAgcGFkZGluZy10b3A6IDE2cHggIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gIC5wYWRkaW5nLCAucGFkZGluZy1yaWdodCB7XG4gICAgcGFkZGluZy1yaWdodDogMTZweCAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnBhZGRpbmcsIC5wYWRkaW5nLXJpZ2h0IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNnB4ICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5NjBweCkge1xuICAucGFkZGluZywgLnBhZGRpbmctYm90dG9tIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTZweCAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnBhZGRpbmcsIC5wYWRkaW5nLWJvdHRvbSB7XG4gICAgcGFkZGluZy1ib3R0b206IDE2cHggIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gIC5wYWRkaW5nLCAucGFkZGluZy1sZWZ0IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDE2cHggIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC5wYWRkaW5nLCAucGFkZGluZy1sZWZ0IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDE2cHggIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gIC5zcGFjaW5nIHtcbiAgICBwYWRkaW5nLXRvcDogMzJweCAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnNwYWNpbmcge1xuICAgIHBhZGRpbmctdG9wOiAxNnB4ICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5NjBweCkge1xuICAuc3BhY2luZyB7XG4gICAgcGFkZGluZy1yaWdodDogMzJweCAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnNwYWNpbmcge1xuICAgIHBhZGRpbmctcmlnaHQ6IDE2cHggIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gIC5zcGFjaW5nIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMzJweCAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnNwYWNpbmcge1xuICAgIHBhZGRpbmctYm90dG9tOiAxNnB4ICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5NjBweCkge1xuICAuc3BhY2luZyB7XG4gICAgcGFkZGluZy1sZWZ0OiAzMnB4ICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5NjBweCkge1xuICAuc3BhY2luZyB7XG4gICAgcGFkZGluZy1sZWZ0OiAxNnB4ICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5NjBweCkge1xuICAucGFkZGluZy0tMngsIC5wYWRkaW5nLXRvcC0tMngge1xuICAgIHBhZGRpbmctdG9wOiAzMnB4ICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5NjBweCkge1xuICAucGFkZGluZy0tMngsIC5wYWRkaW5nLXRvcC0tMngge1xuICAgIHBhZGRpbmctdG9wOiAxNnB4ICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5NjBweCkge1xuICAucGFkZGluZy0tMngsIC5wYWRkaW5nLXJpZ2h0LS0yeCB7XG4gICAgcGFkZGluZy1yaWdodDogMzJweCAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnBhZGRpbmctLTJ4LCAucGFkZGluZy1yaWdodC0tMngge1xuICAgIHBhZGRpbmctcmlnaHQ6IDE2cHggIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gIC5wYWRkaW5nLS0yeCwgLnBhZGRpbmctYm90dG9tLS0yeCB7XG4gICAgcGFkZGluZy1ib3R0b206IDMycHggIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC5wYWRkaW5nLS0yeCwgLnBhZGRpbmctYm90dG9tLS0yeCB7XG4gICAgcGFkZGluZy1ib3R0b206IDE2cHggIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gIC5wYWRkaW5nLS0yeCwgLnBhZGRpbmctbGVmdC0tMngge1xuICAgIHBhZGRpbmctbGVmdDogMzJweCAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnBhZGRpbmctLTJ4LCAucGFkZGluZy1sZWZ0LS0yeCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxNnB4ICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5NjBweCkge1xuICAucGFkZGluZy0tM2hhbHZlcywgLnBhZGRpbmctdG9wLS0zaGFsdmVzIHtcbiAgICBwYWRkaW5nLXRvcDogMjRweCAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnBhZGRpbmctLTNoYWx2ZXMsIC5wYWRkaW5nLXRvcC0tM2hhbHZlcyB7XG4gICAgcGFkZGluZy10b3A6IDE2cHggIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gIC5wYWRkaW5nLS0zaGFsdmVzLCAucGFkZGluZy1yaWdodC0tM2hhbHZlcyB7XG4gICAgcGFkZGluZy1yaWdodDogMjRweCAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnBhZGRpbmctLTNoYWx2ZXMsIC5wYWRkaW5nLXJpZ2h0LS0zaGFsdmVzIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNnB4ICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5NjBweCkge1xuICAucGFkZGluZy0tM2hhbHZlcywgLnBhZGRpbmctYm90dG9tLS0zaGFsdmVzIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMjRweCAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnBhZGRpbmctLTNoYWx2ZXMsIC5wYWRkaW5nLWJvdHRvbS0tM2hhbHZlcyB7XG4gICAgcGFkZGluZy1ib3R0b206IDE2cHggIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gIC5wYWRkaW5nLS0zaGFsdmVzLCAucGFkZGluZy1sZWZ0LS0zaGFsdmVzIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDI0cHggIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC5wYWRkaW5nLS0zaGFsdmVzLCAucGFkZGluZy1sZWZ0LS0zaGFsdmVzIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDE2cHggIWltcG9ydGFudDsgfSB9XG5cbi5wYWRkaW5nLS1oYWxmLCAucGFkZGluZy10b3AtLWhhbGYge1xuICBwYWRkaW5nLXRvcDogOHB4ICFpbXBvcnRhbnQ7IH1cblxuLnBhZGRpbmctLWhhbGYsIC5wYWRkaW5nLXJpZ2h0LS1oYWxmIHtcbiAgcGFkZGluZy1yaWdodDogOHB4ICFpbXBvcnRhbnQ7IH1cblxuLnBhZGRpbmctLWhhbGYsIC5wYWRkaW5nLWJvdHRvbS0taGFsZiB7XG4gIHBhZGRpbmctYm90dG9tOiA4cHggIWltcG9ydGFudDsgfVxuXG4ucGFkZGluZy0taGFsZiwgLnBhZGRpbmctbGVmdC0taGFsZiB7XG4gIHBhZGRpbmctbGVmdDogOHB4ICFpbXBvcnRhbnQ7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgLm1hcmdpbiwgLm1hcmdpbi10b3AsIC5zcGFjaW5nLXZlcnRpY2FscyB7XG4gICAgbWFyZ2luLXRvcDogMTZweCAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLm1hcmdpbiwgLm1hcmdpbi10b3AsIC5zcGFjaW5nLXZlcnRpY2FscyB7XG4gICAgbWFyZ2luLXRvcDogMTZweCAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgLm1hcmdpbiwgLm1hcmdpbi1yaWdodCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxNnB4ICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5NjBweCkge1xuICAubWFyZ2luLCAubWFyZ2luLXJpZ2h0IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDE2cHggIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gIC5tYXJnaW4sIC5tYXJnaW4tYm90dG9tLCAuc3BhY2luZy12ZXJ0aWNhbHMge1xuICAgIG1hcmdpbi1ib3R0b206IDE2cHggIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC5tYXJnaW4sIC5tYXJnaW4tYm90dG9tLCAuc3BhY2luZy12ZXJ0aWNhbHMge1xuICAgIG1hcmdpbi1ib3R0b206IDE2cHggIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gIC5tYXJnaW4sIC5tYXJnaW4tbGVmdCB7XG4gICAgbWFyZ2luLWxlZnQ6IDE2cHggIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC5tYXJnaW4sIC5tYXJnaW4tbGVmdCB7XG4gICAgbWFyZ2luLWxlZnQ6IDE2cHggIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gIC5tYXJnaW4tLTJ4LCAubWFyZ2luLXRvcC0tMngge1xuICAgIG1hcmdpbi10b3A6IDMycHggIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC5tYXJnaW4tLTJ4LCAubWFyZ2luLXRvcC0tMngge1xuICAgIG1hcmdpbi10b3A6IDE2cHggIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gIC5tYXJnaW4tLTJ4LCAubWFyZ2luLXJpZ2h0LS0yeCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAzMnB4ICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5NjBweCkge1xuICAubWFyZ2luLS0yeCwgLm1hcmdpbi1yaWdodC0tMngge1xuICAgIG1hcmdpbi1yaWdodDogMTZweCAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgLm1hcmdpbi0tMngsIC5tYXJnaW4tYm90dG9tLS0yeCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMzJweCAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLm1hcmdpbi0tMngsIC5tYXJnaW4tYm90dG9tLS0yeCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTZweCAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgLm1hcmdpbi0tMngsIC5tYXJnaW4tbGVmdC0tMngge1xuICAgIG1hcmdpbi1sZWZ0OiAzMnB4ICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5NjBweCkge1xuICAubWFyZ2luLS0yeCwgLm1hcmdpbi1sZWZ0LS0yeCB7XG4gICAgbWFyZ2luLWxlZnQ6IDE2cHggIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gIC5tYXJnaW4tLTNoYWx2ZXMsIC5tYXJnaW4tdG9wLS0zaGFsdmVzIHtcbiAgICBtYXJnaW4tdG9wOiAyNHB4ICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5NjBweCkge1xuICAubWFyZ2luLS0zaGFsdmVzLCAubWFyZ2luLXRvcC0tM2hhbHZlcyB7XG4gICAgbWFyZ2luLXRvcDogMTZweCAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgLm1hcmdpbi0tM2hhbHZlcywgLm1hcmdpbi1yaWdodC0tM2hhbHZlcyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAyNHB4ICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5NjBweCkge1xuICAubWFyZ2luLS0zaGFsdmVzLCAubWFyZ2luLXJpZ2h0LS0zaGFsdmVzIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDE2cHggIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gIC5tYXJnaW4tLTNoYWx2ZXMsIC5tYXJnaW4tYm90dG9tLS0zaGFsdmVzIHtcbiAgICBtYXJnaW4tYm90dG9tOiAyNHB4ICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5NjBweCkge1xuICAubWFyZ2luLS0zaGFsdmVzLCAubWFyZ2luLWJvdHRvbS0tM2hhbHZlcyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTZweCAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgLm1hcmdpbi0tM2hhbHZlcywgLm1hcmdpbi1sZWZ0LS0zaGFsdmVzIHtcbiAgICBtYXJnaW4tbGVmdDogMjRweCAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLm1hcmdpbi0tM2hhbHZlcywgLm1hcmdpbi1sZWZ0LS0zaGFsdmVzIHtcbiAgICBtYXJnaW4tbGVmdDogMTZweCAhaW1wb3J0YW50OyB9IH1cblxuLm1hcmdpbi0taGFsZiwgLm1hcmdpbi10b3AtLWhhbGYge1xuICBtYXJnaW4tdG9wOiA4cHggIWltcG9ydGFudDsgfVxuXG4ubWFyZ2luLS1oYWxmLCAubWFyZ2luLXJpZ2h0LS1oYWxmIHtcbiAgbWFyZ2luLXJpZ2h0OiA4cHggIWltcG9ydGFudDsgfVxuXG4ubWFyZ2luLS1oYWxmLCAubWFyZ2luLWJvdHRvbS0taGFsZiB7XG4gIG1hcmdpbi1ib3R0b206IDhweCAhaW1wb3J0YW50OyB9XG5cbi5tYXJnaW4tLWhhbGYsIC5tYXJnaW4tbGVmdC0taGFsZiB7XG4gIG1hcmdpbi1sZWZ0OiA4cHggIWltcG9ydGFudDsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5NjBweCkge1xuICAucGFkZGluZy0tdmVydGljYWxzIHtcbiAgICBwYWRkaW5nLXRvcDogMTZweDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC5wYWRkaW5nLS12ZXJ0aWNhbHMge1xuICAgIHBhZGRpbmctdG9wOiAxNnB4OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgLnBhZGRpbmctLXZlcnRpY2FscyB7XG4gICAgcGFkZGluZy1ib3R0b206IDE2cHg7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5NjBweCkge1xuICAucGFkZGluZy0tdmVydGljYWxzIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTZweDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gIC5wYWRkaW5nLS12ZXJ0aWNhbHMge1xuICAgIHBhZGRpbmctbGVmdDogMTZweDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC5wYWRkaW5nLS12ZXJ0aWNhbHMge1xuICAgIHBhZGRpbmctbGVmdDogMTZweDsgfSB9XG5cbi5uby1wYWRkaW5nIHtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50OyB9XG5cbi5wYWRkaW5nLWxlZnQtbm9uZSB7XG4gIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50OyB9XG5cbi5wYWRkaW5nLXJpZ2h0LW5vbmUge1xuICBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7IH1cblxuLm5vLW1hcmdpbiB7XG4gIG1hcmdpbjogMCAhaW1wb3J0YW50OyB9XG5cbi5tYXJnaW4tYm90dG9tLW5vbmUge1xuICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7IH1cblxuLm1hcmdpbi10b3Atbm9uZSB7XG4gIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDsgfVxuXG4vKlxyXG4gIENvbG9yczogUHJpbWFyeS9XaGl0ZS9EYXJrXHJcbiAgXCIuYnV0dG9uLS1wcmltYXJ5XCIsIC5idXR0b24tLXdoaXRlLCAuYnV0dG9uLS1kYXJrIHt9XHJcblxyXG4gIFNpemVzOiBTbWFsbC9NZWRpdW0vTGFyZ2VcclxuICAuYnV0dG9uLS1zbWFsbCwgXCIuYnV0dG9uLS1tZWRpdW1cIiwgLmJ1dHRvbi0tbGFyZ2Uge31cclxuXHJcbiAgQm9yZGVyOiBHcmFkaWVudC9XaGl0ZVxyXG4gIC5idXR0b24tLWJvcmRlcl9fZ3JhZGllbnQsIC5idXR0b24tLWJvcmRlcl9fd2hpdGUge31cclxuXHJcbiAgVHlwZTogRmlsbC9Ib2xsb3cgXHJcbiAgXCIuYnV0dG9uLS1maWxsXCIsIC5idXR0b24tLWhvbGxvdyB7fVxyXG4qL1xuYnV0dG9uLCAuYnV0dG9uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kOiAjRUUxQkI2O1xuICBib3JkZXI6IG5vbmU7XG4gIHBhZGRpbmc6IDAgMzVweDtcbiAgaGVpZ2h0OiA2MHB4O1xuICBsaW5lLWhlaWdodDogNjBweDtcbiAgbWFyZ2luOiAwcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZvbnQtc2l6ZTogMjJweDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMjVzIGVhc2Utb3V0LCBjb2xvciAwLjI1cyBlYXNlLW91dDtcbiAgLyogQm9yZGVyICovXG4gIC8qIFNpemVzICovXG4gIC8qIENvbG9ycyAqL1xuICAvKiBUeXBlcyAqLyB9XG4gIGJ1dHRvbltjbGFzcyo9YnV0dG9uLS1ib3JkZXJdLCAuYnV0dG9uW2NsYXNzKj1idXR0b24tLWJvcmRlcl0ge1xuICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDsgfVxuICAgIGJ1dHRvbltjbGFzcyo9YnV0dG9uLS1ib3JkZXJdOmJlZm9yZSwgLmJ1dHRvbltjbGFzcyo9YnV0dG9uLS1ib3JkZXJdOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgei1pbmRleDogMjtcbiAgICAgIHRvcDogMHB4O1xuICAgICAgbGVmdDogMHB4O1xuICAgICAgcmlnaHQ6IDBweDtcbiAgICAgIGJvdHRvbTogMHB4O1xuICAgICAgYm9yZGVyOiA3cHggc29saWQgI0VFMUJCNjtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjI1cyBlYXNlLW91dCwgY29sb3IgMC4yNXMgZWFzZS1vdXQ7IH1cbiAgICBidXR0b25bY2xhc3MqPWJ1dHRvbi0tYm9yZGVyXTphZnRlciwgLmJ1dHRvbltjbGFzcyo9YnV0dG9uLS1ib3JkZXJdOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDBweDtcbiAgICAgIGxlZnQ6IDBweDtcbiAgICAgIHJpZ2h0OiAwcHg7XG4gICAgICBib3R0b206IDBweDtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHdoaXRlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoNHB4LCA0cHgpOyB9XG4gICAgYnV0dG9uW2NsYXNzKj1idXR0b24tLWJvcmRlcl0uYnV0dG9uLS1ib3JkZXJfX2dyYWRpZW50LCAuYnV0dG9uW2NsYXNzKj1idXR0b24tLWJvcmRlcl0uYnV0dG9uLS1ib3JkZXJfX2dyYWRpZW50IHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICAgIG1hcmdpbi1yaWdodDogNXB4OyB9XG4gICAgICBidXR0b25bY2xhc3MqPWJ1dHRvbi0tYm9yZGVyXS5idXR0b24tLWJvcmRlcl9fZ3JhZGllbnQ6YmVmb3JlLCAuYnV0dG9uW2NsYXNzKj1idXR0b24tLWJvcmRlcl0uYnV0dG9uLS1ib3JkZXJfX2dyYWRpZW50OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgdG9wOiAwcHg7XG4gICAgICAgIGxlZnQ6IDBweDtcbiAgICAgICAgcmlnaHQ6IDBweDtcbiAgICAgICAgYm90dG9tOiAwcHg7XG4gICAgICAgIGJvcmRlcjogN3B4IHNvbGlkICNFRTFCQjY7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjI1cyBlYXNlLW91dCwgY29sb3IgMC4yNXMgZWFzZS1vdXQ7IH1cbiAgICAgIGJ1dHRvbltjbGFzcyo9YnV0dG9uLS1ib3JkZXJdLmJ1dHRvbi0tYm9yZGVyX19ncmFkaWVudDphZnRlciwgLmJ1dHRvbltjbGFzcyo9YnV0dG9uLS1ib3JkZXJdLmJ1dHRvbi0tYm9yZGVyX19ncmFkaWVudDphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwcHg7XG4gICAgICAgIGxlZnQ6IDBweDtcbiAgICAgICAgcmlnaHQ6IDBweDtcbiAgICAgICAgYm90dG9tOiAwcHg7XG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHdoaXRlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg0cHgsIDRweCk7IH1cbiAgICAgIGJ1dHRvbltjbGFzcyo9YnV0dG9uLS1ib3JkZXJdLmJ1dHRvbi0tYm9yZGVyX19ncmFkaWVudDphZnRlciwgLmJ1dHRvbltjbGFzcyo9YnV0dG9uLS1ib3JkZXJdLmJ1dHRvbi0tYm9yZGVyX19ncmFkaWVudDphZnRlciB7XG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICM3OTgzRkY7XG4gICAgICAgIGJvcmRlci1pbWFnZS1zb3VyY2U6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgI0VFMUJCNiwgIzc5ODNGRik7XG4gICAgICAgIGJvcmRlci1pbWFnZS1zbGljZTogMTsgfVxuICBidXR0b246YWN0aXZlLCBidXR0b246Zm9jdXMsIGJ1dHRvbjpob3ZlciwgLmJ1dHRvbjphY3RpdmUsIC5idXR0b246Zm9jdXMsIC5idXR0b246aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICNjNzBmOTY7XG4gICAgb3V0bGluZTogbm9uZTsgfVxuICAgIGJ1dHRvbjphY3RpdmU6YmVmb3JlLCBidXR0b246Zm9jdXM6YmVmb3JlLCBidXR0b246aG92ZXI6YmVmb3JlLCAuYnV0dG9uOmFjdGl2ZTpiZWZvcmUsIC5idXR0b246Zm9jdXM6YmVmb3JlLCAuYnV0dG9uOmhvdmVyOmJlZm9yZSB7XG4gICAgICBib3JkZXItY29sb3I6ICNjNzBmOTY7IH1cbiAgYnV0dG9uLmJ1dHRvbi0tc21hbGwsIC53b29jb21tZXJjZS1tZXNzYWdlIGJ1dHRvbi5idXR0b24sIC53b29jb21tZXJjZS1NZXNzYWdlIGJ1dHRvbi5idXR0b24sIC5wcm9kdWN0LWNhcmRfX2JvZHkgYnV0dG9uLmJ1dHRvbiwgYm9keS53b29jb21tZXJjZS1jaGVja291dCAud29vY29tbWVyY2UtZm9ybS1jb3Vwb24gYnV0dG9uLmJ1dHRvbiwgLmJ1dHRvbi5idXR0b24tLXNtYWxsLCAud29vY29tbWVyY2UtbWVzc2FnZSAuYnV0dG9uLCAud29vY29tbWVyY2UtTWVzc2FnZSAuYnV0dG9uLCAucHJvZHVjdC1jYXJkX19ib2R5IC5idXR0b24sIC5zaG9wX3RhYmxlIHRib2R5IHRyIGEuYnV0dG9uLCAuc2hvcF90YWJsZSB0Zm9vdCB0ciBhLmJ1dHRvbiwgYm9keS53b29jb21tZXJjZS1jaGVja291dCAud29vY29tbWVyY2UtZm9ybS1jb3Vwb24gLmJ1dHRvbiB7XG4gICAgcGFkZGluZzogMCAyMHB4O1xuICAgIGhlaWdodDogNDZweDtcbiAgICBsaW5lLWhlaWdodDogNDZweDtcbiAgICBmb250LXdlaWdodDogMzAwOyB9XG4gIGJ1dHRvbi5idXR0b24tLW1lZGl1bSwgLndvb2NvbW1lcmNlLWNhcnQgLndvb2NvbW1lcmNlLWNhcnQtZm9ybV9fY29udGVudHMgdGJvZHkgdHIgLmFjdGlvbnMgLmFjdGlvbnMtYnV0dG9ucyA+IGJ1dHRvbi5idXR0b24sIC53b29jb21tZXJjZS1jYXJ0IC53b29jb21tZXJjZS1jYXJ0LWZvcm1fX2NvbnRlbnRzIHRib2R5IHRyIC5hY3Rpb25zIC5jb3Vwb24gYnV0dG9uLmJ1dHRvbiwgYnV0dG9uLm5ld3NsZXR0ZXItc2VjdGlvbl9fZm9ybS1idXR0b24sIC5jdXN0b21lci1zZXJ2aWNlX19idXR0b25zIGJ1dHRvbi5idXR0b24sIC5idXR0b24uYnV0dG9uLS1tZWRpdW0sIC53b29jb21tZXJjZS1jYXJ0IC53b29jb21tZXJjZS1jYXJ0LWZvcm1fX2NvbnRlbnRzIHRib2R5IHRyIC5hY3Rpb25zIC5hY3Rpb25zLWJ1dHRvbnMgPiAuYnV0dG9uLCAud29vY29tbWVyY2UtY2FydCAud29vY29tbWVyY2UtY2FydC1mb3JtX19jb250ZW50cyB0Ym9keSB0ciAuYWN0aW9ucyAuY291cG9uIC5idXR0b24sIC5idXR0b24ubmV3c2xldHRlci1zZWN0aW9uX19mb3JtLWJ1dHRvbiwgLmN1c3RvbWVyLXNlcnZpY2VfX2J1dHRvbnMgLmJ1dHRvbiB7XG4gICAgcGFkZGluZzogMCA0MHB4O1xuICAgIGhlaWdodDogNTRweDtcbiAgICBsaW5lLWhlaWdodDogNTRweDsgfVxuICBidXR0b24uYnV0dG9uLS1sYXJnZSwgLndvb2NvbW1lcmNlLWNhcnQgLmNhcnQtY29sbGF0ZXJhbHMgLmNhcnRfdG90YWxzIC53Yy1wcm9jZWVkLXRvLWNoZWNrb3V0IGJ1dHRvbi5idXR0b24sIC5idXR0b24uYnV0dG9uLS1sYXJnZSwgLndvb2NvbW1lcmNlLWNhcnQgLmNhcnQtY29sbGF0ZXJhbHMgLmNhcnRfdG90YWxzIC53Yy1wcm9jZWVkLXRvLWNoZWNrb3V0IC5idXR0b24ge1xuICAgIHBhZGRpbmc6IDAgNDBweDtcbiAgICBoZWlnaHQ6IDY4cHg7XG4gICAgbGluZS1oZWlnaHQ6IDY4cHg7XG4gICAgZm9udC1zaXplOiAyM3B4O1xuICAgIGxldHRlci1zcGFjaW5nOiAtMC41cHg7IH1cbiAgYnV0dG9uLmJ1dHRvbi0td2hpdGUsIC5idXR0b24uYnV0dG9uLS13aGl0ZSB7XG4gICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgY29sb3I6ICMyQzI5MzQ7IH1cbiAgICBidXR0b24uYnV0dG9uLS13aGl0ZTpiZWZvcmUsIC5idXR0b24uYnV0dG9uLS13aGl0ZTpiZWZvcmUge1xuICAgICAgYm9yZGVyLWNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50OyB9XG4gICAgYnV0dG9uLmJ1dHRvbi0td2hpdGU6YWN0aXZlLCBidXR0b24uYnV0dG9uLS13aGl0ZTpmb2N1cywgYnV0dG9uLmJ1dHRvbi0td2hpdGU6aG92ZXIsIC5idXR0b24uYnV0dG9uLS13aGl0ZTphY3RpdmUsIC5idXR0b24uYnV0dG9uLS13aGl0ZTpmb2N1cywgLmJ1dHRvbi5idXR0b24tLXdoaXRlOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICNlNmU2ZTY7XG4gICAgICBjb2xvcjogIzJDMjkzNDsgfVxuICAgICAgYnV0dG9uLmJ1dHRvbi0td2hpdGU6YWN0aXZlOmJlZm9yZSwgYnV0dG9uLmJ1dHRvbi0td2hpdGU6Zm9jdXM6YmVmb3JlLCBidXR0b24uYnV0dG9uLS13aGl0ZTpob3ZlcjpiZWZvcmUsIC5idXR0b24uYnV0dG9uLS13aGl0ZTphY3RpdmU6YmVmb3JlLCAuYnV0dG9uLmJ1dHRvbi0td2hpdGU6Zm9jdXM6YmVmb3JlLCAuYnV0dG9uLmJ1dHRvbi0td2hpdGU6aG92ZXI6YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjZTZlNmU2ICFpbXBvcnRhbnQ7IH1cbiAgYnV0dG9uLmJ1dHRvbi0tZGFyaywgLmJ1dHRvbi5idXR0b24tLWRhcmsge1xuICAgIGJhY2tncm91bmQ6ICMyQzI5MzQ7IH1cbiAgICBidXR0b24uYnV0dG9uLS1kYXJrOmJlZm9yZSwgLmJ1dHRvbi5idXR0b24tLWRhcms6YmVmb3JlIHtcbiAgICAgIGJvcmRlci1jb2xvcjogIzJDMjkzNCAhaW1wb3J0YW50OyB9XG4gICAgYnV0dG9uLmJ1dHRvbi0tZGFyazphY3RpdmUsIGJ1dHRvbi5idXR0b24tLWRhcms6Zm9jdXMsIGJ1dHRvbi5idXR0b24tLWRhcms6aG92ZXIsIC5idXR0b24uYnV0dG9uLS1kYXJrOmFjdGl2ZSwgLmJ1dHRvbi5idXR0b24tLWRhcms6Zm9jdXMsIC5idXR0b24uYnV0dG9uLS1kYXJrOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICM0NDNmNTE7IH1cbiAgICAgIGJ1dHRvbi5idXR0b24tLWRhcms6YWN0aXZlOmJlZm9yZSwgYnV0dG9uLmJ1dHRvbi0tZGFyazpmb2N1czpiZWZvcmUsIGJ1dHRvbi5idXR0b24tLWRhcms6aG92ZXI6YmVmb3JlLCAuYnV0dG9uLmJ1dHRvbi0tZGFyazphY3RpdmU6YmVmb3JlLCAuYnV0dG9uLmJ1dHRvbi0tZGFyazpmb2N1czpiZWZvcmUsIC5idXR0b24uYnV0dG9uLS1kYXJrOmhvdmVyOmJlZm9yZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogIzQ0M2Y1MSAhaW1wb3J0YW50OyB9XG4gIGJ1dHRvbi5idXR0b24tLWhvbGxvdywgLmJ1dHRvbi5idXR0b24tLWhvbGxvdyB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiAycHggc29saWQgIzJDMjkzNDtcbiAgICBjb2xvcjogIzJDMjkzNDtcbiAgICBsaW5lLWhlaWdodDogNTZweDsgfVxuICAgIGJ1dHRvbi5idXR0b24tLWhvbGxvdzphY3RpdmUsIGJ1dHRvbi5idXR0b24tLWhvbGxvdzpmb2N1cywgYnV0dG9uLmJ1dHRvbi0taG9sbG93OmhvdmVyLCAuYnV0dG9uLmJ1dHRvbi0taG9sbG93OmFjdGl2ZSwgLmJ1dHRvbi5idXR0b24tLWhvbGxvdzpmb2N1cywgLmJ1dHRvbi5idXR0b24tLWhvbGxvdzpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAjRUUxQkI2O1xuICAgICAgYm9yZGVyOiAycHggc29saWQgI0VFMUJCNjtcbiAgICAgIGNvbG9yOiB3aGl0ZTsgfVxuICAgIGJ1dHRvbi5idXR0b24tLWhvbGxvdy5idXR0b24tLXNtYWxsLCAud29vY29tbWVyY2UtbWVzc2FnZSBidXR0b24uYnV0dG9uLS1ob2xsb3cuYnV0dG9uLCAud29vY29tbWVyY2UtTWVzc2FnZSBidXR0b24uYnV0dG9uLS1ob2xsb3cuYnV0dG9uLCAucHJvZHVjdC1jYXJkX19ib2R5IGJ1dHRvbi5idXR0b24tLWhvbGxvdy5idXR0b24sIGJvZHkud29vY29tbWVyY2UtY2hlY2tvdXQgLndvb2NvbW1lcmNlLWZvcm0tY291cG9uIGJ1dHRvbi5idXR0b24tLWhvbGxvdy5idXR0b24sIC5idXR0b24uYnV0dG9uLS1ob2xsb3cuYnV0dG9uLS1zbWFsbCwgLndvb2NvbW1lcmNlLW1lc3NhZ2UgLmJ1dHRvbi5idXR0b24tLWhvbGxvdywgLndvb2NvbW1lcmNlLU1lc3NhZ2UgLmJ1dHRvbi5idXR0b24tLWhvbGxvdywgLnByb2R1Y3QtY2FyZF9fYm9keSAuYnV0dG9uLmJ1dHRvbi0taG9sbG93LCAuc2hvcF90YWJsZSB0Ym9keSB0ciBhLmJ1dHRvbi5idXR0b24tLWhvbGxvdywgLnNob3BfdGFibGUgdGZvb3QgdHIgYS5idXR0b24uYnV0dG9uLS1ob2xsb3csIGJvZHkud29vY29tbWVyY2UtY2hlY2tvdXQgLndvb2NvbW1lcmNlLWZvcm0tY291cG9uIC5idXR0b24uYnV0dG9uLS1ob2xsb3cge1xuICAgICAgbGluZS1oZWlnaHQ6IDQycHg7IH1cbiAgICBidXR0b24uYnV0dG9uLS1ob2xsb3cuYnV0dG9uLS1tZWRpdW0sIC53b29jb21tZXJjZS1jYXJ0IC53b29jb21tZXJjZS1jYXJ0LWZvcm1fX2NvbnRlbnRzIHRib2R5IHRyIC5hY3Rpb25zIC5hY3Rpb25zLWJ1dHRvbnMgPiBidXR0b24uYnV0dG9uLS1ob2xsb3cuYnV0dG9uLCAud29vY29tbWVyY2UtY2FydCAud29vY29tbWVyY2UtY2FydC1mb3JtX19jb250ZW50cyB0Ym9keSB0ciAuYWN0aW9ucyAuY291cG9uIGJ1dHRvbi5idXR0b24tLWhvbGxvdy5idXR0b24sIGJ1dHRvbi5idXR0b24tLWhvbGxvdy5uZXdzbGV0dGVyLXNlY3Rpb25fX2Zvcm0tYnV0dG9uLCAuY3VzdG9tZXItc2VydmljZV9fYnV0dG9ucyBidXR0b24uYnV0dG9uLS1ob2xsb3cuYnV0dG9uLCAuYnV0dG9uLmJ1dHRvbi0taG9sbG93LmJ1dHRvbi0tbWVkaXVtLCAud29vY29tbWVyY2UtY2FydCAud29vY29tbWVyY2UtY2FydC1mb3JtX19jb250ZW50cyB0Ym9keSB0ciAuYWN0aW9ucyAuYWN0aW9ucy1idXR0b25zID4gLmJ1dHRvbi5idXR0b24tLWhvbGxvdywgLndvb2NvbW1lcmNlLWNhcnQgLndvb2NvbW1lcmNlLWNhcnQtZm9ybV9fY29udGVudHMgdGJvZHkgdHIgLmFjdGlvbnMgLmNvdXBvbiAuYnV0dG9uLmJ1dHRvbi0taG9sbG93LCAuYnV0dG9uLmJ1dHRvbi0taG9sbG93Lm5ld3NsZXR0ZXItc2VjdGlvbl9fZm9ybS1idXR0b24sIC5jdXN0b21lci1zZXJ2aWNlX19idXR0b25zIC5idXR0b24uYnV0dG9uLS1ob2xsb3cge1xuICAgICAgbGluZS1oZWlnaHQ6IDUwcHg7IH1cblxuLmYtaXRlbS1wcmV2aWV3ID4gYnV0dG9uLCAuZi1pdGVtLXByZXZpZXcgPiAuYnV0dG9uLCAuZi1wcmV2aWV3X19kYXJrID4gYnV0dG9uLCAuZi1wcmV2aWV3X19kYXJrID4gLmJ1dHRvbiB7XG4gIG1hcmdpbjogMTBweDsgfVxuXG5hLmFkZC1idXR0b24sIC5wcm9kdWN0LWNhcmQtc21hbGxfX2FkZCBhLmJ1dHRvbiwgLmFkZC1idXR0b24sIC5wcm9kdWN0LWNhcmQtc21hbGxfX2FkZCAuYnV0dG9uIHtcbiAgcGFkZGluZzogMHB4O1xuICBoZWlnaHQ6IGF1dG87XG4gIGxpbmUtaGVpZ2h0OiBpbml0aWFsO1xuICBmb250LXNpemU6IDBweDtcbiAgZGlzcGxheTogZmxleDsgfVxuICBhLmFkZC1idXR0b246YmVmb3JlLCAucHJvZHVjdC1jYXJkLXNtYWxsX19hZGQgYS5idXR0b246YmVmb3JlLCAuYWRkLWJ1dHRvbjpiZWZvcmUsIC5wcm9kdWN0LWNhcmQtc21hbGxfX2FkZCAuYnV0dG9uOmJlZm9yZSB7XG4gICAgY29udGVudDogXCIrXCI7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBsaW5lLWhlaWdodDogMjRweDtcbiAgICBib3JkZXItcmFkaXVzOiAxMDBweDtcbiAgICBmb250LXNpemU6IDM0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDEwMDtcbiAgICB3aWR0aDogMjlweDtcbiAgICBoZWlnaHQ6IDI5cHg7XG4gICAgdmVydGljYWwtYWxpZ246IHRleHQtdG9wO1xuICAgIGJhY2tncm91bmQ6ICMyQzI5MzQ7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIG1hcmdpbi1yaWdodDogN3B4OyB9XG4gIGEuYWRkLWJ1dHRvbjphZnRlciwgLnByb2R1Y3QtY2FyZC1zbWFsbF9fYWRkIGEuYnV0dG9uOmFmdGVyLCAuYWRkLWJ1dHRvbjphZnRlciwgLnByb2R1Y3QtY2FyZC1zbWFsbF9fYWRkIC5idXR0b246YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICdBZGQnO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBjb2xvcjogIzJDMjkzNDtcbiAgICBmb250LXNpemU6IDIycHg7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDsgfVxuICBhLmFkZC1idXR0b24uYWRkLWJ1dHRvbi0tcHJpbWFyeTphZnRlciwgLnByb2R1Y3QtY2FyZC1zbWFsbC5wcm9kdWN0LWNhcmQtc21hbGwtLWRhcmsgYS5hZGQtYnV0dG9uOmFmdGVyLCAucHJvZHVjdC1jYXJkLXNtYWxsLnByb2R1Y3QtY2FyZC1zbWFsbC0tZGFyayAucHJvZHVjdC1jYXJkLXNtYWxsX19hZGQgYS5idXR0b246YWZ0ZXIsIC5wcm9kdWN0LWNhcmQtc21hbGxfX2FkZCAucHJvZHVjdC1jYXJkLXNtYWxsLnByb2R1Y3QtY2FyZC1zbWFsbC0tZGFyayBhLmJ1dHRvbjphZnRlciwgLnByb2R1Y3QtY2FyZC1zbWFsbF9fYWRkIGEuYWRkLWJ1dHRvbi0tcHJpbWFyeS5idXR0b246YWZ0ZXIsIC5hZGQtYnV0dG9uLmFkZC1idXR0b24tLXByaW1hcnk6YWZ0ZXIsIC5wcm9kdWN0LWNhcmQtc21hbGwucHJvZHVjdC1jYXJkLXNtYWxsLS1kYXJrIC5hZGQtYnV0dG9uOmFmdGVyLCAucHJvZHVjdC1jYXJkLXNtYWxsLnByb2R1Y3QtY2FyZC1zbWFsbC0tZGFyayAucHJvZHVjdC1jYXJkLXNtYWxsX19hZGQgLmJ1dHRvbjphZnRlciwgLnByb2R1Y3QtY2FyZC1zbWFsbF9fYWRkIC5wcm9kdWN0LWNhcmQtc21hbGwucHJvZHVjdC1jYXJkLXNtYWxsLS1kYXJrIC5idXR0b246YWZ0ZXIsIC5wcm9kdWN0LWNhcmQtc21hbGxfX2FkZCAuYWRkLWJ1dHRvbi0tcHJpbWFyeS5idXR0b246YWZ0ZXIge1xuICAgIGNvbG9yOiB3aGl0ZTsgfVxuICBhLmFkZC1idXR0b24uYWRkLWJ1dHRvbi0tcHJpbWFyeTpiZWZvcmUsIC5wcm9kdWN0LWNhcmQtc21hbGwucHJvZHVjdC1jYXJkLXNtYWxsLS1kYXJrIGEuYWRkLWJ1dHRvbjpiZWZvcmUsIC5wcm9kdWN0LWNhcmQtc21hbGwucHJvZHVjdC1jYXJkLXNtYWxsLS1kYXJrIC5wcm9kdWN0LWNhcmQtc21hbGxfX2FkZCBhLmJ1dHRvbjpiZWZvcmUsIC5wcm9kdWN0LWNhcmQtc21hbGxfX2FkZCAucHJvZHVjdC1jYXJkLXNtYWxsLnByb2R1Y3QtY2FyZC1zbWFsbC0tZGFyayBhLmJ1dHRvbjpiZWZvcmUsIC5wcm9kdWN0LWNhcmQtc21hbGxfX2FkZCBhLmFkZC1idXR0b24tLXByaW1hcnkuYnV0dG9uOmJlZm9yZSwgLmFkZC1idXR0b24uYWRkLWJ1dHRvbi0tcHJpbWFyeTpiZWZvcmUsIC5wcm9kdWN0LWNhcmQtc21hbGwucHJvZHVjdC1jYXJkLXNtYWxsLS1kYXJrIC5hZGQtYnV0dG9uOmJlZm9yZSwgLnByb2R1Y3QtY2FyZC1zbWFsbC5wcm9kdWN0LWNhcmQtc21hbGwtLWRhcmsgLnByb2R1Y3QtY2FyZC1zbWFsbF9fYWRkIC5idXR0b246YmVmb3JlLCAucHJvZHVjdC1jYXJkLXNtYWxsX19hZGQgLnByb2R1Y3QtY2FyZC1zbWFsbC5wcm9kdWN0LWNhcmQtc21hbGwtLWRhcmsgLmJ1dHRvbjpiZWZvcmUsIC5wcm9kdWN0LWNhcmQtc21hbGxfX2FkZCAuYWRkLWJ1dHRvbi0tcHJpbWFyeS5idXR0b246YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kOiAjRUUxQkI2O1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDE1cHggMCByZ2JhKDAsIDAsIDAsIDAuNSk7IH1cbiAgYS5hZGQtYnV0dG9uLmFkZC1idXR0b24tLWJsdWU6YWZ0ZXIsIC5wcm9kdWN0LWNhcmQtc21hbGxfX2FkZCBhLmFkZC1idXR0b24tLWJsdWUuYnV0dG9uOmFmdGVyLCAuYWRkLWJ1dHRvbi5hZGQtYnV0dG9uLS1ibHVlOmFmdGVyLCAucHJvZHVjdC1jYXJkLXNtYWxsX19hZGQgLmFkZC1idXR0b24tLWJsdWUuYnV0dG9uOmFmdGVyIHtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDsgfVxuICBhLmFkZC1idXR0b24uYWRkLWJ1dHRvbi0tYmx1ZTpiZWZvcmUsIC5wcm9kdWN0LWNhcmQtc21hbGxfX2FkZCBhLmFkZC1idXR0b24tLWJsdWUuYnV0dG9uOmJlZm9yZSwgLmFkZC1idXR0b24uYWRkLWJ1dHRvbi0tYmx1ZTpiZWZvcmUsIC5wcm9kdWN0LWNhcmQtc21hbGxfX2FkZCAuYWRkLWJ1dHRvbi0tYmx1ZS5idXR0b246YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kOiAjMDBiMWZmOyB9XG5cbi53cGNmNyB7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi5zdWJtaXQtd3JhcHBlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAuc3VibWl0LXdyYXBwZXIgLndwY2Y3LXN1Ym1pdCB7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2VlMWJiNztcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgcGFkZGluZzogMTlweCAxMHB4O1xuICAgIG1pbi13aWR0aDogMjYwcHg7XG4gICAgZm9udC1zaXplOiAyM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiAjZmZmZmZmOyB9XG5cbmRpdi53cGNmNy1yZXNwb25zZS1vdXRwdXQge1xuICBtYXJnaW46IDIwcHggMDsgfVxuXG4ud3BjZjctZm9ybS1jb250cm9sLXdyYXAgaW5wdXQsIC53cGNmNy1mb3JtLWNvbnRyb2wtd3JhcCB0ZXh0YXJlYSB7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYm9yZGVyOiBzb2xpZCAxcHggI2QzZGVlMztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgcGFkZGluZzogMTNweCAyMHB4O1xuICBoZWlnaHQ6IGF1dG87XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjVweDtcbiAgY29sb3I6ICMwODEzMWY7IH1cblxuLndwY2Y3LWZvcm0tY29udHJvbC13cmFwIHRleHRhcmVhIHtcbiAgaGVpZ2h0OiAyMDBweDsgfVxuXG5ib2R5IC53b29jb21tZXJjZS1ub3RpY2VzLXdyYXBwZXIge1xuICBtYXgtd2lkdGg6IDkwcmVtO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDEwO1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG5ib2R5IC53b29jb21tZXJjZS1ub3RpY2VzLXdyYXBwZXI6ZW1wdHkge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi53b29jb21tZXJjZS1tZXNzYWdlLCAud29vY29tbWVyY2UtZXJyb3IsIC53b29jb21tZXJjZS1zdWNjZXNzLCAud29vY29tbWVyY2UtTWVzc2FnZSwgLndvb2NvbW1lcmNlLWluZm8ge1xuICBmbGV4OiAwIDAgMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgY29sb3I6IHdoaXRlO1xuICBtYXJnaW46IDA7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAud29vY29tbWVyY2UtbWVzc2FnZSwgLndvb2NvbW1lcmNlLWVycm9yLCAud29vY29tbWVyY2Utc3VjY2VzcywgLndvb2NvbW1lcmNlLU1lc3NhZ2UsIC53b29jb21tZXJjZS1pbmZvIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtOyB9IH1cbiAgLndvb2NvbW1lcmNlLW1lc3NhZ2UgYSwgLndvb2NvbW1lcmNlLWVycm9yIGEsIC53b29jb21tZXJjZS1zdWNjZXNzIGEsIC53b29jb21tZXJjZS1NZXNzYWdlIGEsIC53b29jb21tZXJjZS1pbmZvIGEge1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuXG4ud29vY29tbWVyY2UtbWVzc2FnZSAuYnV0dG9uLCAud29vY29tbWVyY2UtTWVzc2FnZSAuYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMnB4IHNvbGlkICMyQzI5MzQ7XG4gIGNvbG9yOiAjMkMyOTM0O1xuICBsaW5lLWhlaWdodDogNTZweDtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICBjb2xvcjogd2hpdGU7XG4gIGJvcmRlci1jb2xvcjogd2hpdGU7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAud29vY29tbWVyY2UtbWVzc2FnZSAuYnV0dG9uOmFjdGl2ZSwgLndvb2NvbW1lcmNlLW1lc3NhZ2UgLmJ1dHRvbjpmb2N1cywgLndvb2NvbW1lcmNlLW1lc3NhZ2UgLmJ1dHRvbjpob3ZlciwgLndvb2NvbW1lcmNlLU1lc3NhZ2UgLmJ1dHRvbjphY3RpdmUsIC53b29jb21tZXJjZS1NZXNzYWdlIC5idXR0b246Zm9jdXMsIC53b29jb21tZXJjZS1NZXNzYWdlIC5idXR0b246aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICNFRTFCQjY7XG4gICAgYm9yZGVyOiAycHggc29saWQgI0VFMUJCNjtcbiAgICBjb2xvcjogd2hpdGU7IH1cbiAgLndvb2NvbW1lcmNlLW1lc3NhZ2UgLmJ1dHRvbi5idXR0b24tLXNtYWxsLCAud29vY29tbWVyY2UtbWVzc2FnZSAuYnV0dG9uLCAud29vY29tbWVyY2UtbWVzc2FnZSAud29vY29tbWVyY2UtTWVzc2FnZSAuYnV0dG9uLCAud29vY29tbWVyY2UtTWVzc2FnZSAud29vY29tbWVyY2UtbWVzc2FnZSAuYnV0dG9uLCAud29vY29tbWVyY2UtbWVzc2FnZSAucHJvZHVjdC1jYXJkX19ib2R5IC5idXR0b24sIC5wcm9kdWN0LWNhcmRfX2JvZHkgLndvb2NvbW1lcmNlLW1lc3NhZ2UgLmJ1dHRvbiwgLndvb2NvbW1lcmNlLW1lc3NhZ2UgLnNob3BfdGFibGUgdGJvZHkgdHIgYS5idXR0b24sIC5zaG9wX3RhYmxlIHRib2R5IHRyIC53b29jb21tZXJjZS1tZXNzYWdlIGEuYnV0dG9uLCAud29vY29tbWVyY2UtbWVzc2FnZSAuc2hvcF90YWJsZSB0Zm9vdCB0ciBhLmJ1dHRvbiwgLnNob3BfdGFibGUgdGZvb3QgdHIgLndvb2NvbW1lcmNlLW1lc3NhZ2UgYS5idXR0b24sIC53b29jb21tZXJjZS1tZXNzYWdlIGJvZHkud29vY29tbWVyY2UtY2hlY2tvdXQgLndvb2NvbW1lcmNlLWZvcm0tY291cG9uIC5idXR0b24sIGJvZHkud29vY29tbWVyY2UtY2hlY2tvdXQgLndvb2NvbW1lcmNlLWZvcm0tY291cG9uIC53b29jb21tZXJjZS1tZXNzYWdlIC5idXR0b24sIC53b29jb21tZXJjZS1NZXNzYWdlIC5idXR0b24uYnV0dG9uLS1zbWFsbCwgLndvb2NvbW1lcmNlLU1lc3NhZ2UgLndvb2NvbW1lcmNlLW1lc3NhZ2UgLmJ1dHRvbiwgLndvb2NvbW1lcmNlLW1lc3NhZ2UgLndvb2NvbW1lcmNlLU1lc3NhZ2UgLmJ1dHRvbiwgLndvb2NvbW1lcmNlLU1lc3NhZ2UgLmJ1dHRvbiwgLndvb2NvbW1lcmNlLU1lc3NhZ2UgLnByb2R1Y3QtY2FyZF9fYm9keSAuYnV0dG9uLCAucHJvZHVjdC1jYXJkX19ib2R5IC53b29jb21tZXJjZS1NZXNzYWdlIC5idXR0b24sIC53b29jb21tZXJjZS1NZXNzYWdlIC5zaG9wX3RhYmxlIHRib2R5IHRyIGEuYnV0dG9uLCAuc2hvcF90YWJsZSB0Ym9keSB0ciAud29vY29tbWVyY2UtTWVzc2FnZSBhLmJ1dHRvbiwgLndvb2NvbW1lcmNlLU1lc3NhZ2UgLnNob3BfdGFibGUgdGZvb3QgdHIgYS5idXR0b24sIC5zaG9wX3RhYmxlIHRmb290IHRyIC53b29jb21tZXJjZS1NZXNzYWdlIGEuYnV0dG9uLCAud29vY29tbWVyY2UtTWVzc2FnZSBib2R5Lndvb2NvbW1lcmNlLWNoZWNrb3V0IC53b29jb21tZXJjZS1mb3JtLWNvdXBvbiAuYnV0dG9uLCBib2R5Lndvb2NvbW1lcmNlLWNoZWNrb3V0IC53b29jb21tZXJjZS1mb3JtLWNvdXBvbiAud29vY29tbWVyY2UtTWVzc2FnZSAuYnV0dG9uIHtcbiAgICBsaW5lLWhlaWdodDogNDJweDsgfVxuICAud29vY29tbWVyY2UtbWVzc2FnZSAuYnV0dG9uLmJ1dHRvbi0tbWVkaXVtLCAud29vY29tbWVyY2UtbWVzc2FnZSAud29vY29tbWVyY2UtY2FydCAud29vY29tbWVyY2UtY2FydC1mb3JtX19jb250ZW50cyB0Ym9keSB0ciAuYWN0aW9ucyAuYWN0aW9ucy1idXR0b25zID4gLmJ1dHRvbiwgLndvb2NvbW1lcmNlLWNhcnQgLndvb2NvbW1lcmNlLWNhcnQtZm9ybV9fY29udGVudHMgdGJvZHkgdHIgLmFjdGlvbnMgLndvb2NvbW1lcmNlLW1lc3NhZ2UgLmFjdGlvbnMtYnV0dG9ucyA+IC5idXR0b24sIC53b29jb21tZXJjZS1tZXNzYWdlIC53b29jb21tZXJjZS1jYXJ0IC53b29jb21tZXJjZS1jYXJ0LWZvcm1fX2NvbnRlbnRzIHRib2R5IHRyIC5hY3Rpb25zIC5jb3Vwb24gLmJ1dHRvbiwgLndvb2NvbW1lcmNlLWNhcnQgLndvb2NvbW1lcmNlLWNhcnQtZm9ybV9fY29udGVudHMgdGJvZHkgdHIgLmFjdGlvbnMgLmNvdXBvbiAud29vY29tbWVyY2UtbWVzc2FnZSAuYnV0dG9uLCAud29vY29tbWVyY2UtbWVzc2FnZSAuYnV0dG9uLm5ld3NsZXR0ZXItc2VjdGlvbl9fZm9ybS1idXR0b24sIC53b29jb21tZXJjZS1tZXNzYWdlIC5jdXN0b21lci1zZXJ2aWNlX19idXR0b25zIC5idXR0b24sIC5jdXN0b21lci1zZXJ2aWNlX19idXR0b25zIC53b29jb21tZXJjZS1tZXNzYWdlIC5idXR0b24sIC53b29jb21tZXJjZS1NZXNzYWdlIC5idXR0b24uYnV0dG9uLS1tZWRpdW0sIC53b29jb21tZXJjZS1NZXNzYWdlIC53b29jb21tZXJjZS1jYXJ0IC53b29jb21tZXJjZS1jYXJ0LWZvcm1fX2NvbnRlbnRzIHRib2R5IHRyIC5hY3Rpb25zIC5hY3Rpb25zLWJ1dHRvbnMgPiAuYnV0dG9uLCAud29vY29tbWVyY2UtY2FydCAud29vY29tbWVyY2UtY2FydC1mb3JtX19jb250ZW50cyB0Ym9keSB0ciAuYWN0aW9ucyAud29vY29tbWVyY2UtTWVzc2FnZSAuYWN0aW9ucy1idXR0b25zID4gLmJ1dHRvbiwgLndvb2NvbW1lcmNlLU1lc3NhZ2UgLndvb2NvbW1lcmNlLWNhcnQgLndvb2NvbW1lcmNlLWNhcnQtZm9ybV9fY29udGVudHMgdGJvZHkgdHIgLmFjdGlvbnMgLmNvdXBvbiAuYnV0dG9uLCAud29vY29tbWVyY2UtY2FydCAud29vY29tbWVyY2UtY2FydC1mb3JtX19jb250ZW50cyB0Ym9keSB0ciAuYWN0aW9ucyAuY291cG9uIC53b29jb21tZXJjZS1NZXNzYWdlIC5idXR0b24sIC53b29jb21tZXJjZS1NZXNzYWdlIC5idXR0b24ubmV3c2xldHRlci1zZWN0aW9uX19mb3JtLWJ1dHRvbiwgLndvb2NvbW1lcmNlLU1lc3NhZ2UgLmN1c3RvbWVyLXNlcnZpY2VfX2J1dHRvbnMgLmJ1dHRvbiwgLmN1c3RvbWVyLXNlcnZpY2VfX2J1dHRvbnMgLndvb2NvbW1lcmNlLU1lc3NhZ2UgLmJ1dHRvbiB7XG4gICAgbGluZS1oZWlnaHQ6IDUwcHg7IH1cbiAgLndvb2NvbW1lcmNlLW1lc3NhZ2UgLmJ1dHRvbjphY3RpdmUsIC53b29jb21tZXJjZS1tZXNzYWdlIC5idXR0b246Zm9jdXMsIC53b29jb21tZXJjZS1tZXNzYWdlIC5idXR0b246aG92ZXIsIC53b29jb21tZXJjZS1NZXNzYWdlIC5idXR0b246YWN0aXZlLCAud29vY29tbWVyY2UtTWVzc2FnZSAuYnV0dG9uOmZvY3VzLCAud29vY29tbWVyY2UtTWVzc2FnZSAuYnV0dG9uOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgYm9yZGVyOiAycHggc29saWQgd2hpdGU7IH1cblxuLmNob3Nlbi1jb250YWluZXItc2luZ2xlIC5jaG9zZW4tc2luZ2xlLCAuY2hvc2VuLWNvbnRhaW5lci1hY3RpdmUuY2hvc2VuLXdpdGgtZHJvcCAuY2hvc2VuLXNpbmdsZSB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJvcmRlcjogc29saWQgMXB4ICNiN2M0Yzk7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGhlaWdodDogNTRweDtcbiAgcGFkZGluZzogMCAxN3B4O1xuICBjb2xvcjogIzA4MTMxZjtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG5cbi5jaG9zZW4tY29udGFpbmVyLXNpbmdsZSAuY2hvc2VuLWRyb3Age1xuICBtYXJnaW4tdG9wOiAxMHB4O1xuICBib3JkZXI6IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3MzczNzM7XG4gIGJvcmRlci1yYWRpdXM6IDVweDsgfVxuXG4uY2hvc2VuLWNvbnRhaW5lci1zaW5nbGUgLmNob3Nlbi1zaW5nbGUgZGl2IHtcbiAgd2lkdGg6IGF1dG87XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmctcmlnaHQ6IDEwcHg7IH1cblxuLmNob3Nlbi1jb250YWluZXItc2luZ2xlIC5jaG9zZW4tc2luZ2xlIGRpdiBiIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZSAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IGF1dG87IH1cbiAgLmNob3Nlbi1jb250YWluZXItc2luZ2xlIC5jaG9zZW4tc2luZ2xlIGRpdiBiOmJlZm9yZSB7XG4gICAgLyogdXNlICFpbXBvcnRhbnQgdG8gcHJldmVudCBpc3N1ZXMgd2l0aCBicm93c2VyIGV4dGVuc2lvbnMgdGhhdCBjaGFuZ2UgZm9udHMgKi9cbiAgICBmb250LWZhbWlseTogJ2ljb21vb24nICFpbXBvcnRhbnQ7XG4gICAgc3BlYWs6IG5vbmU7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgLyogQmV0dGVyIEZvbnQgUmVuZGVyaW5nID09PT09PT09PT09ICovXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgICBjb250ZW50OiBcIu6kgFwiO1xuICAgIGZvbnQtc2l6ZTogMzBweDtcbiAgICBjb2xvcjogI0VFMUJCNjsgfVxuXG4uY2hvc2VuLWNvbnRhaW5lciAuY2hvc2VuLXJlc3VsdHMge1xuICBwYWRkaW5nOiAwcHg7XG4gIG1hcmdpbjogMHB4O1xuICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICBtYXJnaW4tdG9wOiAxMnB4OyB9XG5cbi5jaG9zZW4tY29udGFpbmVyIC5jaG9zZW4tcmVzdWx0cyBsaSB7XG4gIHBhZGRpbmc6IDEwcHggMTdweDtcbiAgcGFkZGluZy1ib3R0b206IDlweDtcbiAgY29sb3I6IHdoaXRlO1xuICBmb250LXNpemU6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjRlbTsgfVxuXG4uY2hvc2VuLWNvbnRhaW5lciAuY2hvc2VuLXJlc3VsdHMgbGkuaGlnaGxpZ2h0ZWQge1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBvcGFjaXR5OiAwLjc7IH1cblxuLmNob3Nlbi1jb250YWluZXItc2luZ2xlIC5jaG9zZW4tc2VhcmNoIHtcbiAgcGFkZGluZzogNXB4IDdweDsgfVxuXG4uY2hvc2VuLWNvbnRhaW5lci1zaW5nbGUgLmNob3Nlbi1zZWFyY2ggaW5wdXRbdHlwZT1cInRleHRcIl0ge1xuICBib3gtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIGJvcmRlcjogbm9uZTtcbiAgcGFkZGluZzogN3B4IDdweDtcbiAgY29sb3I6IHdoaXRlO1xuICBmb250LXNpemU6IDFyZW07XG4gIGJvcmRlci1yYWRpdXM6IDVweDsgfVxuXG4uY2hvc2VuLWNvbnRhaW5lciAuY2hvc2VuLXJlc3VsdHMgbGkubm8tcmVzdWx0cyB7XG4gIGJhY2tncm91bmQ6IG5vbmU7IH1cblxuLnByb2R1Y3QtY2FyZCB7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC4yNXMgZWFzZS1vdXQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZmxleDogMTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICAucHJvZHVjdC1jYXJkOmhvdmVyIHtcbiAgICBib3gtc2hhZG93OiAwIDAgMjBweCByZ2JhKDAsIDAsIDUwLCAwLjMpOyB9XG4gIC5wcm9kdWN0LWNhcmQgLmFkZGVkX3RvX2NhcnQge1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4OyB9XG5cbi5wcm9kdWN0LWNhcmRfX2hlYWQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLnByb2R1Y3QtY2FyZF9faGVhZCA+IGEge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7IH1cblxuLnByb2R1Y3QtY2FyZF9faW1hZ2Uge1xuICBwYWRkaW5nLXRvcDogODcuNSU7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjsgfVxuXG4ucHJvZHVjdC1jYXJkX19icmFuZCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAyNHB4O1xuICBsZWZ0OiAyMHB4O1xuICBwYWRkaW5nOiA1cHggMzBweDtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjMpO1xuICBib3JkZXItcmFkaXVzOiAxMDBweDtcbiAgY29sb3I6IHdoaXRlO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMzBweCk7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTE1LCAxMTUsIDExNSwgMC40KTtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjVweDtcbiAgZm9udC1zaXplOiAxNnB4OyB9XG5cbi5wcm9kdWN0LWNhcmRfX2JvZHkge1xuICBib3JkZXI6IDFweCBzb2xpZCAjRjBGMEYwO1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgcGFkZGluZzogMTlweCAyMHB4O1xuICBwYWRkaW5nLXJpZ2h0OiAzMHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMzBweDtcbiAgZmxleDogMTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICAucHJvZHVjdC1jYXJkX19ib2R5IC5idXR0b24ge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICMyQzI5MzQ7XG4gICAgY29sb3I6ICMyQzI5MzQ7XG4gICAgbGluZS1oZWlnaHQ6IDU2cHg7IH1cbiAgICAucHJvZHVjdC1jYXJkX19ib2R5IC5idXR0b246YWN0aXZlLCAucHJvZHVjdC1jYXJkX19ib2R5IC5idXR0b246Zm9jdXMsIC5wcm9kdWN0LWNhcmRfX2JvZHkgLmJ1dHRvbjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAjRUUxQkI2O1xuICAgICAgYm9yZGVyOiAycHggc29saWQgI0VFMUJCNjtcbiAgICAgIGNvbG9yOiB3aGl0ZTsgfVxuICAgIC5wcm9kdWN0LWNhcmRfX2JvZHkgLmJ1dHRvbi5idXR0b24tLXNtYWxsLCAucHJvZHVjdC1jYXJkX19ib2R5IC53b29jb21tZXJjZS1tZXNzYWdlIC5idXR0b24sIC53b29jb21tZXJjZS1tZXNzYWdlIC5wcm9kdWN0LWNhcmRfX2JvZHkgLmJ1dHRvbiwgLnByb2R1Y3QtY2FyZF9fYm9keSAud29vY29tbWVyY2UtTWVzc2FnZSAuYnV0dG9uLCAud29vY29tbWVyY2UtTWVzc2FnZSAucHJvZHVjdC1jYXJkX19ib2R5IC5idXR0b24sIC5wcm9kdWN0LWNhcmRfX2JvZHkgLmJ1dHRvbiwgLnByb2R1Y3QtY2FyZF9fYm9keSAuc2hvcF90YWJsZSB0Ym9keSB0ciBhLmJ1dHRvbiwgLnNob3BfdGFibGUgdGJvZHkgdHIgLnByb2R1Y3QtY2FyZF9fYm9keSBhLmJ1dHRvbiwgLnByb2R1Y3QtY2FyZF9fYm9keSAuc2hvcF90YWJsZSB0Zm9vdCB0ciBhLmJ1dHRvbiwgLnNob3BfdGFibGUgdGZvb3QgdHIgLnByb2R1Y3QtY2FyZF9fYm9keSBhLmJ1dHRvbiwgLnByb2R1Y3QtY2FyZF9fYm9keSBib2R5Lndvb2NvbW1lcmNlLWNoZWNrb3V0IC53b29jb21tZXJjZS1mb3JtLWNvdXBvbiAuYnV0dG9uLCBib2R5Lndvb2NvbW1lcmNlLWNoZWNrb3V0IC53b29jb21tZXJjZS1mb3JtLWNvdXBvbiAucHJvZHVjdC1jYXJkX19ib2R5IC5idXR0b24ge1xuICAgICAgbGluZS1oZWlnaHQ6IDQycHg7IH1cbiAgICAucHJvZHVjdC1jYXJkX19ib2R5IC5idXR0b24uYnV0dG9uLS1tZWRpdW0sIC5wcm9kdWN0LWNhcmRfX2JvZHkgLndvb2NvbW1lcmNlLWNhcnQgLndvb2NvbW1lcmNlLWNhcnQtZm9ybV9fY29udGVudHMgdGJvZHkgdHIgLmFjdGlvbnMgLmFjdGlvbnMtYnV0dG9ucyA+IC5idXR0b24sIC53b29jb21tZXJjZS1jYXJ0IC53b29jb21tZXJjZS1jYXJ0LWZvcm1fX2NvbnRlbnRzIHRib2R5IHRyIC5hY3Rpb25zIC5wcm9kdWN0LWNhcmRfX2JvZHkgLmFjdGlvbnMtYnV0dG9ucyA+IC5idXR0b24sIC5wcm9kdWN0LWNhcmRfX2JvZHkgLndvb2NvbW1lcmNlLWNhcnQgLndvb2NvbW1lcmNlLWNhcnQtZm9ybV9fY29udGVudHMgdGJvZHkgdHIgLmFjdGlvbnMgLmNvdXBvbiAuYnV0dG9uLCAud29vY29tbWVyY2UtY2FydCAud29vY29tbWVyY2UtY2FydC1mb3JtX19jb250ZW50cyB0Ym9keSB0ciAuYWN0aW9ucyAuY291cG9uIC5wcm9kdWN0LWNhcmRfX2JvZHkgLmJ1dHRvbiwgLnByb2R1Y3QtY2FyZF9fYm9keSAuYnV0dG9uLm5ld3NsZXR0ZXItc2VjdGlvbl9fZm9ybS1idXR0b24sIC5wcm9kdWN0LWNhcmRfX2JvZHkgLmN1c3RvbWVyLXNlcnZpY2VfX2J1dHRvbnMgLmJ1dHRvbiwgLmN1c3RvbWVyLXNlcnZpY2VfX2J1dHRvbnMgLnByb2R1Y3QtY2FyZF9fYm9keSAuYnV0dG9uIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiA1MHB4OyB9XG5cbi5wcm9kdWN0LWNhcmRfX2luZm8ge1xuICBmbGV4OiAxO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG5cbi5wcm9kdWN0LWNhcmRfX3RpdGxlIHtcbiAgZm9udC1zaXplOiAyNHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH1cblxuLnByb2R1Y3QtY2FyZF9fc3VidGl0bGUge1xuICBmb250LXNpemU6IDIwcHg7XG4gIGNvbG9yOiAjMDgxMzFmO1xuICBvcGFjaXR5OiAwLjU7XG4gIGZsZXg6IDE7IH1cblxuLnByb2R1Y3QtY2FyZF9fYWRkIHtcbiAgbWFyZ2luLXRvcDogMjBweDsgfVxuXG4ucHJvZHVjdC1jYXJkX19wcmljZSB7XG4gIGNvbG9yOiAjMmMyOTM0O1xuICBmb250LXNpemU6IDMxcHg7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7IH1cbiAgLnByb2R1Y3QtY2FyZF9fcHJpY2UgLnByaWNlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7IH1cbiAgICAucHJvZHVjdC1jYXJkX19wcmljZSAucHJpY2UgaW5zIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAgIC5wcm9kdWN0LWNhcmRfX3ByaWNlIC5wcmljZSBkZWwge1xuICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgb3BhY2l0eTogMC41OyB9XG5cbi5mLWl0ZW0tcHJldmlldyA+IC5wcm9kdWN0LWNhcmQge1xuICB3aWR0aDogNDE4cHg7IH1cblxuLnByb2R1Y3QtY2FyZC1zbWFsbCB7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC4yNXMgZWFzZS1vdXQ7XG4gIGZsZXg6IDE7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgLnByb2R1Y3QtY2FyZC1zbWFsbDpob3ZlciB7XG4gICAgYm94LXNoYWRvdzogMCAwIDIwcHggcmdiYSgwLCAwLCA1MCwgMC4zKTsgfVxuICAucHJvZHVjdC1jYXJkLXNtYWxsIC5hZGRlZF90b19jYXJ0IHtcbiAgICBtYXJnaW4tdG9wOiAxMHB4OyB9XG5cbi5wcm9kdWN0LWNhcmQtc21hbGxfX2hlYWQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDU7IH1cbiAgLnByb2R1Y3QtY2FyZC1zbWFsbF9faGVhZCA+IGEge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7IH1cblxuLnByb2R1Y3QtY2FyZC1zbWFsbF9faW1hZ2Uge1xuICBwYWRkaW5nLXRvcDogMTAwJTtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBib3JkZXItcmFkaXVzOiA0cHg7IH1cblxuLnByb2R1Y3QtY2FyZC1zbWFsbF9fYm9keSB7XG4gIGJvcmRlcjogc29saWQgMXB4ICNkM2RlZTM7XG4gIHBhZGRpbmc6IDIwcHg7XG4gIHBhZGRpbmctbGVmdDogMThweDtcbiAgcGFkZGluZy10b3A6IDE1cHg7XG4gIHBhZGRpbmctYm90dG9tOiAxOHB4O1xuICBmbGV4OiAxO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBtYXJnaW4tdG9wOiAtNXB4O1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTsgfVxuICAucHJvZHVjdC1jYXJkLXNtYWxsLS1kYXJrIC5wcm9kdWN0LWNhcmQtc21hbGxfX2JvZHkge1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMjlweCk7XG4gICAgYmFja2dyb3VuZDogcmdiYSgxMjIsIDEyMiwgMTIyLCAwLjcpOyB9XG4gICAgLnByb2R1Y3QtY2FyZC1zbWFsbC0tZGFyayAucHJvZHVjdC1jYXJkLXNtYWxsX19ib2R5ICoge1xuICAgICAgY29sb3I6IHdoaXRlOyB9XG5cbi5wcm9kdWN0LWNhcmQtc21hbGxfX2luZm8ge1xuICBmbGV4OiAxO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH1cblxuLnByb2R1Y3QtY2FyZC1zbWFsbF9fdGl0bGUge1xuICBsZXR0ZXItc3BhY2luZzogLTAuNXB4O1xuICBmb250LXNpemU6IDIycHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIG1hcmdpbi1ib3R0b206IDRweDtcbiAgZmxleDogMTsgfVxuXG4ucHJvZHVjdC1jYXJkLXNtYWxsX19wcmljZSB7XG4gIGZvbnQtc2l6ZTogMjhweDtcbiAgY29sb3I6ICNFRTFCQjY7IH1cbiAgLnByb2R1Y3QtY2FyZC1zbWFsbF9fcHJpY2UgLnByaWNlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAucHJvZHVjdC1jYXJkLXNtYWxsX19wcmljZSAucHJpY2UgZGVsIHtcbiAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHJpZ2h0OiAtMTBweDtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTAwJSwgLTUwJSk7XG4gICAgICBvcGFjaXR5OiAwLjc7IH1cblxuLnByb2R1Y3QtY2FyZC1zbWFsbF9fYWRkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICAucHJvZHVjdC1jYXJkLXNtYWxsX19hZGQgLmJ1dHRvbiB7XG4gICAgYmFja2dyb3VuZDogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi5mLWl0ZW0tcHJldmlldyA+IC5wcm9kdWN0LWNhcmQtc21hbGwge1xuICB3aWR0aDogMjk3cHg7IH1cblxuLmJhbm5lciB7XG4gIC8qIFBlcm1hbGluayAtIHVzZSB0byBlZGl0IGFuZCBzaGFyZSB0aGlzIGdyYWRpZW50OiBodHRwczovL2NvbG9yemlsbGEuY29tL2dyYWRpZW50LWVkaXRvci8jMWU1Nzk5KzAsN2RiOWU4KzEwMCAqL1xuICBiYWNrZ3JvdW5kOiAjRUUxQkI2O1xuICAvKiBPbGQgYnJvd3NlcnMgKi9cbiAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQobGVmdCwgI0VFMUJCNiAwJSwgIzc5ODNGRiAxMDAlKTtcbiAgLyogRkYzLjYtMTUgKi9cbiAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVmdCwgI0VFMUJCNiAwJSwgIzc5ODNGRiAxMDAlKTtcbiAgLyogQ2hyb21lMTAtMjUsU2FmYXJpNS4xLTYgKi9cbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjRUUxQkI2IDAlLCAjNzk4M0ZGIDEwMCUpO1xuICAvKiBXM0MsIElFMTArLCBGRjE2KywgQ2hyb21lMjYrLCBPcGVyYTEyKywgU2FmYXJpNysgKi9cbiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoIHN0YXJ0Q29sb3JzdHI9JyNFRTFCQjYnLCBlbmRDb2xvcnN0cj0nIzc5ODNGRicsR3JhZGllbnRUeXBlPTEgKTtcbiAgLyogSUU2LTkgKi9cbiAgcGFkZGluZzogMjBweDtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLmJhbm5lci5iYW5uZXItLWhlaWdodCB7XG4gICAgaGVpZ2h0OiAxMDAlOyB9XG4gIC5iYW5uZXIuYmFubmVyLS1oaWRkZW4gLmJhbm5lcl9fY29udGVudCB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG4uc2VjdGlvbl9fYm9keSA+IC5iYW5uZXIge1xuICBtYXJnaW46IDIwcHg7IH1cblxuLmJhbm5lcl9fY29udGVudCB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBwYWRkaW5nOiAyMHB4IDA7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5iYW5uZXJfX2NvbnRlbnQge1xuICAgICAgbWluLWhlaWdodDogNDAwcHg7IH0gfVxuICAuYmFubmVyLS1oZWlnaHQgLmJhbm5lcl9fY29udGVudCB7XG4gICAgaGVpZ2h0OiAxMDAlOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgIC5iYW5uZXJfX2NvbnRlbnQge1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfSB9XG5cbi5iYW5uZXJfX2ltYWdlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmbGV4OiA0OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuYmFubmVyX19pbWFnZSBpbWcge1xuICAgICAgbWluLXdpZHRoOiA2MDBweDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01NCUpIHRyYW5zbGF0ZVgoLTEwcHgpO1xuICAgICAgcmlnaHQ6IDBweDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgIC5iYW5uZXJfX2ltYWdlIGltZyB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMTUpO1xuICAgICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDEwMCU7XG4gICAgICBtYXJnaW4tdG9wOiAtMjBweDsgfSB9XG5cbi5iYW5uZXJfX2luZm8ge1xuICBmbGV4OiAzO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgIC5iYW5uZXJfX2luZm8ge1xuICAgICAgcGFkZGluZzogMjBweDsgfSB9XG4gIC5iYW5uZXJfX2luZm8gLmJ1dHRvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgIGJhY2tncm91bmQ6ICMyQzI5MzQ7IH1cbiAgICAuYmFubmVyX19pbmZvIC5idXR0b246YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB6LWluZGV4OiAyO1xuICAgICAgdG9wOiAwcHg7XG4gICAgICBsZWZ0OiAwcHg7XG4gICAgICByaWdodDogMHB4O1xuICAgICAgYm90dG9tOiAwcHg7XG4gICAgICBib3JkZXI6IDdweCBzb2xpZCAjRUUxQkI2O1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMjVzIGVhc2Utb3V0LCBjb2xvciAwLjI1cyBlYXNlLW91dDsgfVxuICAgIC5iYW5uZXJfX2luZm8gLmJ1dHRvbjphZnRlciB7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwcHg7XG4gICAgICBsZWZ0OiAwcHg7XG4gICAgICByaWdodDogMHB4O1xuICAgICAgYm90dG9tOiAwcHg7XG4gICAgICBib3JkZXI6IDJweCBzb2xpZCB3aGl0ZTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDRweCwgNHB4KTsgfVxuICAgIC5iYW5uZXJfX2luZm8gLmJ1dHRvbjphZnRlciB7XG4gICAgICBib3JkZXI6IDJweCBzb2xpZCAjNzk4M0ZGO1xuICAgICAgYm9yZGVyLWltYWdlLXNvdXJjZTogbGluZWFyLWdyYWRpZW50KDkwZGVnLCAjRUUxQkI2LCAjNzk4M0ZGKTtcbiAgICAgIGJvcmRlci1pbWFnZS1zbGljZTogMTsgfVxuICAgIC5iYW5uZXJfX2luZm8gLmJ1dHRvbjpiZWZvcmUge1xuICAgICAgYm9yZGVyLWNvbG9yOiAjMkMyOTM0ICFpbXBvcnRhbnQ7IH1cbiAgICAuYmFubmVyX19pbmZvIC5idXR0b246YWN0aXZlLCAuYmFubmVyX19pbmZvIC5idXR0b246Zm9jdXMsIC5iYW5uZXJfX2luZm8gLmJ1dHRvbjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAjNDQzZjUxOyB9XG4gICAgICAuYmFubmVyX19pbmZvIC5idXR0b246YWN0aXZlOmJlZm9yZSwgLmJhbm5lcl9faW5mbyAuYnV0dG9uOmZvY3VzOmJlZm9yZSwgLmJhbm5lcl9faW5mbyAuYnV0dG9uOmhvdmVyOmJlZm9yZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogIzQ0M2Y1MSAhaW1wb3J0YW50OyB9XG5cbi5iYW5uZXJfX2luZm8taW5uZXIge1xuICB3aWR0aDogODAlO1xuICBtYXJnaW46IDAgYXV0bztcbiAgbWFyZ2luLXRvcDogLTIwcHg7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgLmJhbm5lcl9faW5mby1pbm5lciB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1hcmdpbi10b3A6IDBweDsgfSB9XG5cbi5iYW5uZXJfX3RpdGxlIHtcbiAgZm9udC1zaXplOiA1OHB4O1xuICBmb250LXdlaWdodDogODAwO1xuICBsaW5lLWhlaWdodDogMS4xO1xuICBsZXR0ZXItc3BhY2luZzogLTAuNXB4O1xuICBjb2xvcjogIzJDMjkzNDtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAuYmFubmVyX190aXRsZSB7XG4gICAgICBmb250LXNpemU6IDQycHg7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjE0O1xuICAgICAgbWFyZ2luLWJvdHRvbTogNDBweDsgfSB9XG5cbi5jYXJvdXNlbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICB3aWR0aDogMTAwJTsgfVxuICAuY2Fyb3VzZWwtLW5hdi1tb2JpbGUtY2VudGVyIC5jYXJvdXNlbCB7XG4gICAgbWFyZ2luLXRvcDogMzZweDsgfVxuXG4uY2Fyb3VzZWxfX25hdiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtNDBweDtcbiAgcmlnaHQ6IDIwcHg7XG4gIHotaW5kZXg6IDEwOyB9XG4gIC5jYXJvdXNlbC0tbmF2LW1vYmlsZS1jZW50ZXIgLmNhcm91c2VsX19uYXYge1xuICAgIHJpZ2h0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoNTAlKTsgfVxuXG4uY2Fyb3VzZWxfX3ByZXYge1xuICBtYXJnaW4tcmlnaHQ6IDEwcHg7IH1cbiAgLmNhcm91c2VsX19wcmV2OmJlZm9yZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIC8qIHVzZSAhaW1wb3J0YW50IHRvIHByZXZlbnQgaXNzdWVzIHdpdGggYnJvd3NlciBleHRlbnNpb25zIHRoYXQgY2hhbmdlIGZvbnRzICovXG4gICAgZm9udC1mYW1pbHk6ICdpY29tb29uJyAhaW1wb3J0YW50O1xuICAgIHNwZWFrOiBub25lO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIC8qIEJldHRlciBGb250IFJlbmRlcmluZyA9PT09PT09PT09PSAqL1xuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gICAgY29udGVudDogXCLupIRcIjtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgtMSk7XG4gICAgY29sb3I6ICMyYzI5MzQ7XG4gICAgZm9udC1zaXplOiAzMHB4OyB9XG5cbi5jYXJvdXNlbF9fcGFnZSB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY29sb3I6ICMyYzI5MzQ7IH1cblxuLmNhcm91c2VsX19uZXh0IHtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7IH1cbiAgLmNhcm91c2VsX19uZXh0OmJlZm9yZSB7XG4gICAgLyogdXNlICFpbXBvcnRhbnQgdG8gcHJldmVudCBpc3N1ZXMgd2l0aCBicm93c2VyIGV4dGVuc2lvbnMgdGhhdCBjaGFuZ2UgZm9udHMgKi9cbiAgICBmb250LWZhbWlseTogJ2ljb21vb24nICFpbXBvcnRhbnQ7XG4gICAgc3BlYWs6IG5vbmU7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgLyogQmV0dGVyIEZvbnQgUmVuZGVyaW5nID09PT09PT09PT09ICovXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgICBjb250ZW50OiBcIu6khFwiO1xuICAgIGNvbG9yOiAjMmMyOTM0O1xuICAgIGZvbnQtc2l6ZTogMzBweDsgfVxuXG4uY2Fyb3VzZWxfX2l0ZW1zIC5vd2wtZG90cyB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLmNhcm91c2VsX19pdGVtcyAub3dsLXN0YWdlLW91dGVyIHtcbiAgcGFkZGluZy10b3A6IDIwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAyMHB4OyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAuY2Fyb3VzZWxfX2l0ZW1zIC5vd2wtaXRlbSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yMHB4KTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmNhcm91c2VsX19pdGVtcyAub3dsLWl0ZW0ge1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjRzO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjBweCk7IH1cbiAgICAuY2Fyb3VzZWxfX2l0ZW1zIC5vd2wtaXRlbS5hY3RpdmUge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDBweCkgIWltcG9ydGFudDsgfVxuICAgICAgLmNhcm91c2VsX19pdGVtcyAub3dsLWl0ZW0uYWN0aXZlIH4gLm93bC1pdGVtIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwcHgpOyB9IH1cblxuLnNlY3Rpb24tLWxpZ2h0IC5jYXJvdXNlbF9fcGFnZSB7XG4gIGNvbG9yOiB3aGl0ZTsgfVxuXG4uc2VjdGlvbi0tbGlnaHQgLmNhcm91c2VsX19wcmV2LCAuc2VjdGlvbi0tbGlnaHQgLmNhcm91c2VsX19uZXh0IHtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4OyB9XG4gIC5zZWN0aW9uLS1saWdodCAuY2Fyb3VzZWxfX3ByZXY6YmVmb3JlLCAuc2VjdGlvbi0tbGlnaHQgLmNhcm91c2VsX19uZXh0OmJlZm9yZSB7XG4gICAgY29sb3I6IHdoaXRlOyB9XG5cbi5zaG9wX3RhYmxlIHtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLnNob3BfdGFibGUgdGhlYWQgdHIge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjQ0NDQ0NDOyB9XG4gICAgLnNob3BfdGFibGUgdGhlYWQgdHIgdGgge1xuICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDEuODk7XG4gICAgICBjb2xvcjogcmdiYSg4LCAxOSwgMzEsIDAuNSk7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICBwYWRkaW5nOiA0cHggMTBweDsgfVxuICAuc2hvcF90YWJsZSB0Ym9keSB0ciwgLnNob3BfdGFibGUgdGZvb3QgdHIge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjQ0NDQ0NDOyB9XG4gICAgLnNob3BfdGFibGUgdGJvZHkgdHIgdGQsIC5zaG9wX3RhYmxlIHRib2R5IHRyIHRoLCAuc2hvcF90YWJsZSB0Zm9vdCB0ciB0ZCwgLnNob3BfdGFibGUgdGZvb3QgdHIgdGgge1xuICAgICAgcGFkZGluZzogNHB4IDEwcHg7IH1cbiAgICAuc2hvcF90YWJsZSB0Ym9keSB0ciBhLmJ1dHRvbiwgLnNob3BfdGFibGUgdGZvb3QgdHIgYS5idXR0b24ge1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXI6IDJweCBzb2xpZCAjMkMyOTM0O1xuICAgICAgY29sb3I6ICMyQzI5MzQ7XG4gICAgICBsaW5lLWhlaWdodDogNTZweDsgfVxuICAgICAgLnNob3BfdGFibGUgdGJvZHkgdHIgYS5idXR0b246YWN0aXZlLCAuc2hvcF90YWJsZSB0Ym9keSB0ciBhLmJ1dHRvbjpmb2N1cywgLnNob3BfdGFibGUgdGJvZHkgdHIgYS5idXR0b246aG92ZXIsIC5zaG9wX3RhYmxlIHRmb290IHRyIGEuYnV0dG9uOmFjdGl2ZSwgLnNob3BfdGFibGUgdGZvb3QgdHIgYS5idXR0b246Zm9jdXMsIC5zaG9wX3RhYmxlIHRmb290IHRyIGEuYnV0dG9uOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogI0VFMUJCNjtcbiAgICAgICAgYm9yZGVyOiAycHggc29saWQgI0VFMUJCNjtcbiAgICAgICAgY29sb3I6IHdoaXRlOyB9XG4gICAgICAuc2hvcF90YWJsZSB0Ym9keSB0ciBhLmJ1dHRvbi5idXR0b24tLXNtYWxsLCAuc2hvcF90YWJsZSB0Ym9keSB0ciAud29vY29tbWVyY2UtbWVzc2FnZSBhLmJ1dHRvbiwgLndvb2NvbW1lcmNlLW1lc3NhZ2UgLnNob3BfdGFibGUgdGJvZHkgdHIgYS5idXR0b24sIC5zaG9wX3RhYmxlIHRib2R5IHRyIC53b29jb21tZXJjZS1NZXNzYWdlIGEuYnV0dG9uLCAud29vY29tbWVyY2UtTWVzc2FnZSAuc2hvcF90YWJsZSB0Ym9keSB0ciBhLmJ1dHRvbiwgLnNob3BfdGFibGUgdGJvZHkgdHIgLnByb2R1Y3QtY2FyZF9fYm9keSBhLmJ1dHRvbiwgLnByb2R1Y3QtY2FyZF9fYm9keSAuc2hvcF90YWJsZSB0Ym9keSB0ciBhLmJ1dHRvbiwgLnNob3BfdGFibGUgdGJvZHkgdHIgYS5idXR0b24sIC5zaG9wX3RhYmxlIHRib2R5IHRmb290IHRyIGEuYnV0dG9uLCAuc2hvcF90YWJsZSB0Zm9vdCB0Ym9keSB0ciBhLmJ1dHRvbiwgLnNob3BfdGFibGUgdGJvZHkgdHIgYm9keS53b29jb21tZXJjZS1jaGVja291dCAud29vY29tbWVyY2UtZm9ybS1jb3Vwb24gYS5idXR0b24sIGJvZHkud29vY29tbWVyY2UtY2hlY2tvdXQgLndvb2NvbW1lcmNlLWZvcm0tY291cG9uIC5zaG9wX3RhYmxlIHRib2R5IHRyIGEuYnV0dG9uLCAuc2hvcF90YWJsZSB0Zm9vdCB0ciBhLmJ1dHRvbi5idXR0b24tLXNtYWxsLCAuc2hvcF90YWJsZSB0Zm9vdCB0ciAud29vY29tbWVyY2UtbWVzc2FnZSBhLmJ1dHRvbiwgLndvb2NvbW1lcmNlLW1lc3NhZ2UgLnNob3BfdGFibGUgdGZvb3QgdHIgYS5idXR0b24sIC5zaG9wX3RhYmxlIHRmb290IHRyIC53b29jb21tZXJjZS1NZXNzYWdlIGEuYnV0dG9uLCAud29vY29tbWVyY2UtTWVzc2FnZSAuc2hvcF90YWJsZSB0Zm9vdCB0ciBhLmJ1dHRvbiwgLnNob3BfdGFibGUgdGZvb3QgdHIgLnByb2R1Y3QtY2FyZF9fYm9keSBhLmJ1dHRvbiwgLnByb2R1Y3QtY2FyZF9fYm9keSAuc2hvcF90YWJsZSB0Zm9vdCB0ciBhLmJ1dHRvbiwgLnNob3BfdGFibGUgdGZvb3QgdGJvZHkgdHIgYS5idXR0b24sIC5zaG9wX3RhYmxlIHRib2R5IHRmb290IHRyIGEuYnV0dG9uLCAuc2hvcF90YWJsZSB0Zm9vdCB0ciBhLmJ1dHRvbiwgLnNob3BfdGFibGUgdGZvb3QgdHIgYm9keS53b29jb21tZXJjZS1jaGVja291dCAud29vY29tbWVyY2UtZm9ybS1jb3Vwb24gYS5idXR0b24sIGJvZHkud29vY29tbWVyY2UtY2hlY2tvdXQgLndvb2NvbW1lcmNlLWZvcm0tY291cG9uIC5zaG9wX3RhYmxlIHRmb290IHRyIGEuYnV0dG9uIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDQycHg7IH1cbiAgICAgIC5zaG9wX3RhYmxlIHRib2R5IHRyIGEuYnV0dG9uLmJ1dHRvbi0tbWVkaXVtLCAuc2hvcF90YWJsZSAud29vY29tbWVyY2UtY2FydCAud29vY29tbWVyY2UtY2FydC1mb3JtX19jb250ZW50cyB0Ym9keSB0ciAuYWN0aW9ucyAuYWN0aW9ucy1idXR0b25zID4gYS5idXR0b24sIC53b29jb21tZXJjZS1jYXJ0IC53b29jb21tZXJjZS1jYXJ0LWZvcm1fX2NvbnRlbnRzIC5zaG9wX3RhYmxlIHRib2R5IHRyIC5hY3Rpb25zIC5hY3Rpb25zLWJ1dHRvbnMgPiBhLmJ1dHRvbiwgLnNob3BfdGFibGUgLndvb2NvbW1lcmNlLWNhcnQgLndvb2NvbW1lcmNlLWNhcnQtZm9ybV9fY29udGVudHMgdGJvZHkgdHIgLmFjdGlvbnMgLmNvdXBvbiBhLmJ1dHRvbiwgLndvb2NvbW1lcmNlLWNhcnQgLndvb2NvbW1lcmNlLWNhcnQtZm9ybV9fY29udGVudHMgLnNob3BfdGFibGUgdGJvZHkgdHIgLmFjdGlvbnMgLmNvdXBvbiBhLmJ1dHRvbiwgLnNob3BfdGFibGUgdGJvZHkgdHIgYS5idXR0b24ubmV3c2xldHRlci1zZWN0aW9uX19mb3JtLWJ1dHRvbiwgLnNob3BfdGFibGUgdGJvZHkgdHIgLmN1c3RvbWVyLXNlcnZpY2VfX2J1dHRvbnMgYS5idXR0b24sIC5jdXN0b21lci1zZXJ2aWNlX19idXR0b25zIC5zaG9wX3RhYmxlIHRib2R5IHRyIGEuYnV0dG9uLCAuc2hvcF90YWJsZSB0Zm9vdCB0ciBhLmJ1dHRvbi5idXR0b24tLW1lZGl1bSwgLnNob3BfdGFibGUgdGZvb3QgLndvb2NvbW1lcmNlLWNhcnQgLndvb2NvbW1lcmNlLWNhcnQtZm9ybV9fY29udGVudHMgdGJvZHkgdHIgLmFjdGlvbnMgLmFjdGlvbnMtYnV0dG9ucyA+IGEuYnV0dG9uLCAud29vY29tbWVyY2UtY2FydCAud29vY29tbWVyY2UtY2FydC1mb3JtX19jb250ZW50cyB0Ym9keSAuc2hvcF90YWJsZSB0Zm9vdCB0ciAuYWN0aW9ucyAuYWN0aW9ucy1idXR0b25zID4gYS5idXR0b24sIC5zaG9wX3RhYmxlIHRmb290IC53b29jb21tZXJjZS1jYXJ0IC53b29jb21tZXJjZS1jYXJ0LWZvcm1fX2NvbnRlbnRzIHRib2R5IHRyIC5hY3Rpb25zIC5jb3Vwb24gYS5idXR0b24sIC53b29jb21tZXJjZS1jYXJ0IC53b29jb21tZXJjZS1jYXJ0LWZvcm1fX2NvbnRlbnRzIHRib2R5IC5zaG9wX3RhYmxlIHRmb290IHRyIC5hY3Rpb25zIC5jb3Vwb24gYS5idXR0b24sIC5zaG9wX3RhYmxlIHRmb290IHRyIGEuYnV0dG9uLm5ld3NsZXR0ZXItc2VjdGlvbl9fZm9ybS1idXR0b24sIC5zaG9wX3RhYmxlIHRmb290IHRyIC5jdXN0b21lci1zZXJ2aWNlX19idXR0b25zIGEuYnV0dG9uLCAuY3VzdG9tZXItc2VydmljZV9fYnV0dG9ucyAuc2hvcF90YWJsZSB0Zm9vdCB0ciBhLmJ1dHRvbiB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiA1MHB4OyB9XG4gICAgLnNob3BfdGFibGUgdGJvZHkgdHIgdGQsIC5zaG9wX3RhYmxlIHRmb290IHRyIHRkIHtcbiAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyO1xuICAgICAgY29sb3I6ICMwODEzMWY7IH1cbiAgICAgIC5zaG9wX3RhYmxlIHRib2R5IHRyIHRkIC53b29jb21tZXJjZS1zaGlwcGluZy1tZXRob2RzLCAuc2hvcF90YWJsZSB0Zm9vdCB0ciB0ZCAud29vY29tbWVyY2Utc2hpcHBpbmctbWV0aG9kcyB7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIG1hcmdpbjogMHB4OyB9XG4gICAgICAgIC5zaG9wX3RhYmxlIHRib2R5IHRyIHRkIC53b29jb21tZXJjZS1zaGlwcGluZy1tZXRob2RzIGxpIGxhYmVsLCAuc2hvcF90YWJsZSB0Zm9vdCB0ciB0ZCAud29vY29tbWVyY2Utc2hpcHBpbmctbWV0aG9kcyBsaSBsYWJlbCB7XG4gICAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICAgIGNvbG9yOiByZ2JhKDgsIDE5LCAzMSwgMC41KTtcbiAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsOyB9XG4gICAgLnNob3BfdGFibGUgdGJvZHkgdHIgdGgsIC5zaG9wX3RhYmxlIHRmb290IHRyIHRoIHtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICBsaW5lLWhlaWdodDogMS44OTtcbiAgICAgIGNvbG9yOiByZ2JhKDgsIDE5LCAzMSwgMC41KTtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICBmb250LXdlaWdodDogbm9ybWFsOyB9XG4gIC5zaG9wX3RhYmxlIHRmb290IHRyOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7IH1cbiAgLnNob3BfdGFibGUgdGZvb3QgdHIgdGQsIC5zaG9wX3RhYmxlIHRmb290IHRyIHRoIHtcbiAgICBwYWRkaW5nOiA0cHggMTBweDsgfVxuICAuc2hvcF90YWJsZSB0Zm9vdCB0ciB0aCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cblxuLndjLWl0ZW0tbWV0YSB7XG4gIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7IH1cblxuLnRlc3RpbW9uaWFsLWNhcmQge1xuICBib3gtc2hhZG93OiAwIDJweCAxM3B4IDAgcmdiYSgxMzksIDEzOSwgMTM5LCAwLjI5KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIHBhZGRpbmc6IDQ1cHg7XG4gIHBhZGRpbmctdG9wOiA0M3B4O1xuICBwYWRkaW5nLWxlZnQ6IDkwcHg7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgLnRlc3RpbW9uaWFsLWNhcmQge1xuICAgICAgcGFkZGluZzogMjZweDtcbiAgICAgIHBhZGRpbmctbGVmdDogNjhweDsgfSB9XG5cbi50ZXN0aW1vbmlhbC1jYXJkX19uYW1lIHtcbiAgZm9udC1zaXplOiAyMnB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICMyQzI5MzQ7XG4gIG1hcmdpbi1ib3R0b206IDIzcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAudGVzdGltb25pYWwtY2FyZF9fbmFtZSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiA2cHg7IH0gfVxuICAudGVzdGltb25pYWwtY2FyZF9fbmFtZTpiZWZvcmUge1xuICAgIC8qIHVzZSAhaW1wb3J0YW50IHRvIHByZXZlbnQgaXNzdWVzIHdpdGggYnJvd3NlciBleHRlbnNpb25zIHRoYXQgY2hhbmdlIGZvbnRzICovXG4gICAgZm9udC1mYW1pbHk6ICdpY29tb29uJyAhaW1wb3J0YW50O1xuICAgIHNwZWFrOiBub25lO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIC8qIEJldHRlciBGb250IFJlbmRlcmluZyA9PT09PT09PT09PSAqL1xuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gICAgY29udGVudDogXCLupIdcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogLTM5cHg7XG4gICAgZm9udC1zaXplOiAzNHB4O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgICAudGVzdGltb25pYWwtY2FyZF9fbmFtZTpiZWZvcmUge1xuICAgICAgICBmb250LXNpemU6IDI2cHg7XG4gICAgICAgIGxlZnQ6IC0zMHB4OyB9IH1cbiAgICAudGVzdGltb25pYWwtY2FyZC0taW5zdGFncmFtIC50ZXN0aW1vbmlhbC1jYXJkX19uYW1lOmJlZm9yZSB7XG4gICAgICAvKiB1c2UgIWltcG9ydGFudCB0byBwcmV2ZW50IGlzc3VlcyB3aXRoIGJyb3dzZXIgZXh0ZW5zaW9ucyB0aGF0IGNoYW5nZSBmb250cyAqL1xuICAgICAgZm9udC1mYW1pbHk6ICdpY29tb29uJyAhaW1wb3J0YW50O1xuICAgICAgc3BlYWs6IG5vbmU7XG4gICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgLyogQmV0dGVyIEZvbnQgUmVuZGVyaW5nID09PT09PT09PT09ICovXG4gICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gICAgICBjb250ZW50OiBcIu6kiVwiOyB9XG4gICAgLnRlc3RpbW9uaWFsLWNhcmQtLXR3aXR0ZXIgLnRlc3RpbW9uaWFsLWNhcmRfX25hbWU6YmVmb3JlIHtcbiAgICAgIC8qIHVzZSAhaW1wb3J0YW50IHRvIHByZXZlbnQgaXNzdWVzIHdpdGggYnJvd3NlciBleHRlbnNpb25zIHRoYXQgY2hhbmdlIGZvbnRzICovXG4gICAgICBmb250LWZhbWlseTogJ2ljb21vb24nICFpbXBvcnRhbnQ7XG4gICAgICBzcGVhazogbm9uZTtcbiAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAvKiBCZXR0ZXIgRm9udCBSZW5kZXJpbmcgPT09PT09PT09PT0gKi9cbiAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgICAgIGNvbnRlbnQ6IFwi7qSCXCI7IH1cbiAgICAudGVzdGltb25pYWwtY2FyZC0tcGludGVyZXN0IC50ZXN0aW1vbmlhbC1jYXJkX19uYW1lOmJlZm9yZSB7XG4gICAgICAvKiB1c2UgIWltcG9ydGFudCB0byBwcmV2ZW50IGlzc3VlcyB3aXRoIGJyb3dzZXIgZXh0ZW5zaW9ucyB0aGF0IGNoYW5nZSBmb250cyAqL1xuICAgICAgZm9udC1mYW1pbHk6ICdpY29tb29uJyAhaW1wb3J0YW50O1xuICAgICAgc3BlYWs6IG5vbmU7XG4gICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgLyogQmV0dGVyIEZvbnQgUmVuZGVyaW5nID09PT09PT09PT09ICovXG4gICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gICAgICBjb250ZW50OiBcIu6khVwiOyB9XG5cbi50ZXN0aW1vbmlhbC1jYXJkX19jb250ZW50IHtcbiAgb3BhY2l0eTogMC4zO1xuICBmb250LXNpemU6IDE4cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGNvbG9yOiAjMkMyOTM0OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgIC50ZXN0aW1vbmlhbC1jYXJkX19jb250ZW50IHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtNDVweDsgfSB9XG5cbi5mLWl0ZW0tcHJldmlldyA+IC50ZXN0aW1vbmlhbC1jYXJkIHtcbiAgd2lkdGg6IDQzN3B4O1xuICBtYXJnaW46IDZweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG5cbi5oZWFkZXItcHJvZHVjdCB7XG4gIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50O1xuICBwYWRkaW5nLXJpZ2h0OiAyNXB4ICFpbXBvcnRhbnQ7IH1cblxuLmhlYWRlci1wcm9kdWN0X19pbWFnZS1ob2xkZXIge1xuICB3aWR0aDogMTIwcHg7XG4gIG1hcmdpbi1yaWdodDogMTVweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbi5oZWFkZXItcHJvZHVjdF9faW1hZ2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIHdpZHRoOiAxMjBweDtcbiAgaGVpZ2h0OiAxMzVweDtcbiAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7IH1cblxuLmhlYWRlci1wcm9kdWN0X19uYW1lIHtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjVweDtcbiAgZm9udC1zaXplOiAyNnB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBjb2xvcjogd2hpdGU7XG4gIG1hcmdpbi1ib3R0b206IDhweDsgfVxuXG4uaGVhZGVyLXByb2R1Y3RfX3ByaWNlIHtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjVweDtcbiAgZm9udC1zaXplOiAyNHB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBjb2xvcjogd2hpdGU7XG4gIG1hcmdpbi1ib3R0b206IDhweDsgfVxuXG4ucGhvdG8tY2FyZCB7XG4gIGJveC1zaGFkb3c6IDAgMCAxMnB4IHJnYmEoMCwgMCwgNTAsIDAuMik7IH1cblxuLnBob3RvLWNhcmRfX2hlYWQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDU7IH1cblxuLnBob3RvLWNhcmRfX2ltYWdlIHtcbiAgcGFkZGluZy10b3A6IDEwMCU7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjsgfVxuXG4ucGhvdG8tY2FyZF9fYm9keSB7XG4gIHBhZGRpbmc6IDE1cHggOXB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93OyB9XG5cbi5waG90by1jYXJkX191c2VyLWltYWdlLWhvbGRlciB7XG4gIHBhZGRpbmctcmlnaHQ6IDEwcHg7IH1cblxuLnBob3RvLWNhcmRfX3VzZXItaW1hZ2Uge1xuICB3aWR0aDogNTBweDtcbiAgaGVpZ2h0OiA1MHB4O1xuICBib3JkZXItcmFkaXVzOiAxMDBweDtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyOyB9XG5cbi5waG90by1jYXJkX191c2VyLW5hbWUge1xuICBvcGFjaXR5OiAwLjU7XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjVweDtcbiAgY29sb3I6ICMwODEzMWY7IH1cblxuLnBob3RvLWNhcmRfX3VzZXItdXNlcm5hbWUge1xuICBvcGFjaXR5OiAwLjM7XG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gIGNvbG9yOiAjMDgxMzFmO1xuICBmb250LXNpemU6IDEycHg7IH1cblxuLmYtaXRlbS1wcmV2aWV3ID4gLnBob3RvLWNhcmQge1xuICB3aWR0aDogMjU1cHg7IH1cblxuLnNpdGUtaGVhZGVyIHtcbiAgYmFja2dyb3VuZDogIzJDMjkzNDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICB6LWluZGV4OiA5OTk5O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XG4gICAgLnNpdGUtaGVhZGVyIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHotaW5kZXg6IDEwMDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuc2l0ZS1oZWFkZXIuc2l0ZS1oZWFkZXItLWxpZ2h0Om5vdCguc3VibWVudS1vcGVuKSB7XG4gICAgICB6LWluZGV4OiB1bnNldDtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlY2VjZWM7IH0gfVxuXG4uc2l0ZS1oZWFkZXJfX2NvbnRhaW5lciB7XG4gIG1heC13aWR0aDogOTByZW07XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IG5vd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XG4gICAgLnNpdGUtaGVhZGVyX19jb250YWluZXIge1xuICAgICAgaGVpZ2h0OiA2N3B4OyB9IH1cblxuLnNpdGUtaGVhZGVyX19icmFuZCB7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgbWFyZ2luLWxlZnQ6IDMwcHg7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuc2l0ZS1oZWFkZXJfX2JyYW5kIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XG4gICAgLnNpdGUtaGVhZGVyX19icmFuZCB7XG4gICAgICBtYXJnaW4tbGVmdDogMjBweDtcbiAgICAgIG1heC13aWR0aDogMTYwcHg7IH0gfVxuXG4uc2l0ZS1oZWFkZXJfX2xvZ28ge1xuICB3aWR0aDogMTYwcHg7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XG4gICAgLnNpdGUtaGVhZGVyX19sb2dvIHtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgIHdpZHRoOiAyNXZ3OyB9IH1cblxuLnNpdGUtaGVhZGVyX19uYXZpZ2F0aW9uIHtcbiAgZmxleDogMCAwIGF1dG87XG4gIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xuICBtYXgtd2lkdGg6IDkwcmVtO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gIHotaW5kZXg6IDEwO1xuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnNpdGUtaGVhZGVyX19uYXZpZ2F0aW9uIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XG4gICAgLnNpdGUtaGVhZGVyX19uYXZpZ2F0aW9uIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMHB4OyB9IH1cblxuLnNpdGUtaGVhZGVyX19oYW1idXJnZXIge1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBtaW4td2lkdGg6IDMwcHg7XG4gIGhlaWdodDogMjBweDtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIHdoaXRlO1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgd2hpdGU7XG4gIHBhZGRpbmc6IDBweDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2UtaW4tb3V0OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuc2l0ZS1oZWFkZXItLWxpZ2h0Om5vdCguc3VibWVudS1vcGVuKSAuc2l0ZS1oZWFkZXJfX2hhbWJ1cmdlciB7XG4gICAgICBib3JkZXItY29sb3I6ICMyQzI5MzQ7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgICAuc2l0ZS1oZWFkZXJfX2hhbWJ1cmdlciB7XG4gICAgICBtYXJnaW4tbGVmdDogMjBweDsgfSB9XG4gIC5zaXRlLWhlYWRlcl9faGFtYnVyZ2VyOmJlZm9yZSwgLnNpdGUtaGVhZGVyX19oYW1idXJnZXI6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGhlaWdodDogMnB4O1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgdG9wOiBjYWxjKCA1MCUgLSAxcHgpO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5zaXRlLWhlYWRlci0tbGlnaHQ6bm90KC5zdWJtZW51LW9wZW4pIC5zaXRlLWhlYWRlcl9faGFtYnVyZ2VyOmJlZm9yZSwgLnNpdGUtaGVhZGVyLS1saWdodDpub3QoLnN1Ym1lbnUtb3BlbikgLnNpdGUtaGVhZGVyX19oYW1idXJnZXI6YWZ0ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjMkMyOTM0OyB9IH1cbiAgLnNpdGUtaGVhZGVyX19oYW1idXJnZXI6aG92ZXIsIC5zaXRlLWhlYWRlcl9faGFtYnVyZ2VyOmZvY3VzLCAuc2l0ZS1oZWFkZXJfX2hhbWJ1cmdlcjphY3RpdmUge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7IH1cbiAgLnNpdGUtaGVhZGVyX19oYW1idXJnZXIuc2l0ZS1oZWFkZXJfX2hhbWJ1cmdlci0tY2xvc2Uge1xuICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gICAgLnNpdGUtaGVhZGVyX19oYW1idXJnZXIuc2l0ZS1oZWFkZXJfX2hhbWJ1cmdlci0tY2xvc2U6YmVmb3JlIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG4gICAgICBib3JkZXItcmFkaXVzOiAxcHg7IH1cbiAgICAuc2l0ZS1oZWFkZXJfX2hhbWJ1cmdlci5zaXRlLWhlYWRlcl9faGFtYnVyZ2VyLS1jbG9zZTphZnRlciB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICBib3JkZXItcmFkaXVzOiAxcHg7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5zaXRlLWhlYWRlcl9faGFtYnVyZ2VyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5zaXRlLWhlYWRlcl9fbW9iaWxlLW1lbnUge1xuICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XG4gIC5zaXRlLWhlYWRlcl9fbW9iaWxlLW1lbnUge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHRvcDogNjdweDtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwdmggLSA2N3B4KTtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIHotaW5kZXg6IDEwO1xuICAgIGJhY2tncm91bmQ6ICMyQzI5MzQ7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICMzRDNBNDM7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XG4gIC5tb2JpbGUtbWVudS1vcGVuIHtcbiAgICBvdmVyZmxvdy15OiBoaWRkZW47IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgLnNpdGUtaGVhZGVyX19tZW51IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBmbGV4LWdyb3c6IDE7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5zaXRlLWhlYWRlcl9fbWVudSAuc3ViLW1lbnUge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbi5zaXRlLWhlYWRlcl9fbWVudSA+IC5tZW51IHtcbiAgcG9zaXRpb246IGluaXRpYWw7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XG4gICAgLnNpdGUtaGVhZGVyX19tZW51ID4gLm1lbnUge1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIHdpZHRoOiAxMDAlOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XG4gIC5zaXRlLWhlYWRlcl9fbWVudSA+IC5tZW51ID4gLm1lbnUtaXRlbSA+IGEge1xuICAgIGZvbnQtc2l6ZTogMjVweDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICBwYWRkaW5nOiAyMHB4O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjM0QzQTQzO1xuICAgIG91dGxpbmU6IG5vbmU7IH1cbiAgLnNpdGUtaGVhZGVyX19tZW51ID4gLm1lbnUgPiAubWVudS1pdGVtLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4gPiBhIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAuc2l0ZS1oZWFkZXJfX21lbnUgPiAubWVudSA+IC5tZW51LWl0ZW0ubWVudS1pdGVtLWhhcy1jaGlsZHJlbiA+IGE6YmVmb3JlIHtcbiAgICAgIC8qIHVzZSAhaW1wb3J0YW50IHRvIHByZXZlbnQgaXNzdWVzIHdpdGggYnJvd3NlciBleHRlbnNpb25zIHRoYXQgY2hhbmdlIGZvbnRzICovXG4gICAgICBmb250LWZhbWlseTogJ2ljb21vb24nICFpbXBvcnRhbnQ7XG4gICAgICBzcGVhazogbm9uZTtcbiAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAvKiBCZXR0ZXIgRm9udCBSZW5kZXJpbmcgPT09PT09PT09PT0gKi9cbiAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgICAgIGNvbnRlbnQ6IFwi7qSAXCI7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBmb250LXNpemU6IDQwcHg7XG4gICAgICByaWdodDogMjBweDtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHNjYWxlWSgtMSk7XG4gICAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3M7IH1cbiAgLnNpdGUtaGVhZGVyX19tZW51ID4gLm1lbnUgPiAubWVudS1pdGVtLnN1Yi1tZW51LW9wZW4ubWVudS1pdGVtLWhhcy1jaGlsZHJlbiA+IGE6YmVmb3JlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgY29sb3I6IHdoaXRlOyB9XG4gIC5zaXRlLWhlYWRlcl9fbWVudSA+IC5tZW51ID4gLm1lbnUtaXRlbSA+IC5zdWItbWVudSB7XG4gICAgbWF4LXdpZHRoOiA5MHJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbWFyZ2luOiAwcHg7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMzRDNBNDM7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmc6IDE1cHggMDsgfVxuICAgIC5zaXRlLWhlYWRlcl9fbWVudSA+IC5tZW51ID4gLm1lbnUtaXRlbSA+IC5zdWItbWVudTpiZWZvcmUge1xuICAgICAgLyogUGVybWFsaW5rIC0gdXNlIHRvIGVkaXQgYW5kIHNoYXJlIHRoaXMgZ3JhZGllbnQ6IGh0dHBzOi8vY29sb3J6aWxsYS5jb20vZ3JhZGllbnQtZWRpdG9yLyMxZTU3OTkrMCw3ZGI5ZTgrMTAwICovXG4gICAgICBiYWNrZ3JvdW5kOiAjRUUxQkI2O1xuICAgICAgLyogT2xkIGJyb3dzZXJzICovXG4gICAgICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudChsZWZ0LCAjRUUxQkI2IDAlLCAjNzk4M0ZGIDEwMCUpO1xuICAgICAgLyogRkYzLjYtMTUgKi9cbiAgICAgIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQsICNFRTFCQjYgMCUsICM3OTgzRkYgMTAwJSk7XG4gICAgICAvKiBDaHJvbWUxMC0yNSxTYWZhcmk1LjEtNiAqL1xuICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjRUUxQkI2IDAlLCAjNzk4M0ZGIDEwMCUpO1xuICAgICAgLyogVzNDLCBJRTEwKywgRkYxNissIENocm9tZTI2KywgT3BlcmExMissIFNhZmFyaTcrICovXG4gICAgICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudCggc3RhcnRDb2xvcnN0cj0nI0VFMUJCNicsIGVuZENvbG9yc3RyPScjNzk4M0ZGJyxHcmFkaWVudFR5cGU9MSApO1xuICAgICAgLyogSUU2LTkgKi9cbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgcmlnaHQ6IDA7IH1cbiAgICAuc2l0ZS1oZWFkZXJfX21lbnUgPiAubWVudSA+IC5tZW51LWl0ZW0gPiAuc3ViLW1lbnUgLm1lbnUtaXRlbSB7XG4gICAgICBmbGV4OiAwIDAgNTAlO1xuICAgICAgbWF4LXdpZHRoOiA1MCU7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgbWF4LXdpZHRoOiA1MCU7IH1cbiAgICAgIC5zaXRlLWhlYWRlcl9fbWVudSA+IC5tZW51ID4gLm1lbnUtaXRlbSA+IC5zdWItbWVudSAubWVudS1pdGVtIGEge1xuICAgICAgICBwYWRkaW5nOiAxNXB4IDIwcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMjFweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICAgICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLnNpdGUtaGVhZGVyX19tZW51ID4gLm1lbnUgPiAubWVudS1pdGVtID4gYSB7XG4gICAgZm9udC1zaXplOiAyMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIHBhZGRpbmc6IDAgMjZweDtcbiAgICBtYXJnaW4tdG9wOiAxM3B4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoZWlnaHQ6IDEwN3B4O1xuICAgIGxpbmUtaGVpZ2h0OiAxMDBweDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLnNpdGUtaGVhZGVyLS1saWdodDpub3QoLnN1Ym1lbnUtb3BlbikgLnNpdGUtaGVhZGVyX19tZW51ID4gLm1lbnUgPiAubWVudS1pdGVtID4gYSB7XG4gICAgICBjb2xvcjogIzJDMjkzNDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLnNpdGUtaGVhZGVyX19tZW51ID4gLm1lbnUgPiAubWVudS1pdGVtOmhvdmVyID4gLnN1Yi1tZW51IHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwcHg7XG4gICAgcmlnaHQ6IDBweDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIHBhZGRpbmc6IDBweDtcbiAgICBtYXJnaW46IDBweDtcbiAgICBwYWRkaW5nLXRvcDogN3B4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgIC5zaXRlLWhlYWRlcl9fbWVudSA+IC5tZW51ID4gLm1lbnUtaXRlbTpob3ZlciA+IC5zdWItbWVudTpiZWZvcmUge1xuICAgICAgLyogUGVybWFsaW5rIC0gdXNlIHRvIGVkaXQgYW5kIHNoYXJlIHRoaXMgZ3JhZGllbnQ6IGh0dHBzOi8vY29sb3J6aWxsYS5jb20vZ3JhZGllbnQtZWRpdG9yLyMxZTU3OTkrMCw3ZGI5ZTgrMTAwICovXG4gICAgICBiYWNrZ3JvdW5kOiAjRUUxQkI2O1xuICAgICAgLyogT2xkIGJyb3dzZXJzICovXG4gICAgICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudChsZWZ0LCAjRUUxQkI2IDAlLCAjNzk4M0ZGIDEwMCUpO1xuICAgICAgLyogRkYzLjYtMTUgKi9cbiAgICAgIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQsICNFRTFCQjYgMCUsICM3OTgzRkYgMTAwJSk7XG4gICAgICAvKiBDaHJvbWUxMC0yNSxTYWZhcmk1LjEtNiAqL1xuICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjRUUxQkI2IDAlLCAjNzk4M0ZGIDEwMCUpO1xuICAgICAgLyogVzNDLCBJRTEwKywgRkYxNissIENocm9tZTI2KywgT3BlcmExMissIFNhZmFyaTcrICovXG4gICAgICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudCggc3RhcnRDb2xvcnN0cj0nI0VFMUJCNicsIGVuZENvbG9yc3RyPScjNzk4M0ZGJyxHcmFkaWVudFR5cGU9MSApO1xuICAgICAgLyogSUU2LTkgKi9cbiAgICAgIGJhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IGNhbGMoICgxMDB2dyAtIDEwMCUpIC8gLTIpO1xuICAgICAgd2lkdGg6IDEwMHZ3O1xuICAgICAgaGVpZ2h0OiA3cHg7XG4gICAgICB6LWluZGV4OiAxMDsgfVxuICAgIC5zaXRlLWhlYWRlcl9fbWVudSA+IC5tZW51ID4gLm1lbnUtaXRlbTpob3ZlciA+IC5zdWItbWVudTphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGJhY2tncm91bmQ6ICMyQzI5MzQ7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBsZWZ0OiBjYWxjKCAoMTAwdncgLSAxMDAlKSAvIC0yKTtcbiAgICAgIHdpZHRoOiAxMDB2dztcbiAgICAgIHRvcDogN3B4O1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgei1pbmRleDogMTU7IH1cbiAgICAuc2l0ZS1oZWFkZXJfX21lbnUgPiAubWVudSA+IC5tZW51LWl0ZW06aG92ZXIgPiAuc3ViLW1lbnUgPiAqIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHotaW5kZXg6IDMwOyB9XG4gICAgLnNpdGUtaGVhZGVyX19tZW51ID4gLm1lbnUgPiAubWVudS1pdGVtOmhvdmVyID4gLnN1Yi1tZW51ID4gLm1lbnUtaXRlbSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgICAgIC5zaXRlLWhlYWRlcl9fbWVudSA+IC5tZW51ID4gLm1lbnUtaXRlbTpob3ZlciA+IC5zdWItbWVudSA+IC5tZW51LWl0ZW0gPiBhIHtcbiAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICBmb250LXNpemU6IDIycHg7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgcGFkZGluZzogMzRweCAyMHB4OyB9XG4gIC5zaXRlLWhlYWRlcl9fbWVudSA+IC5tZW51ID4gLm1lbnUtaXRlbTpob3ZlciA+IGEsIC5zaXRlLWhlYWRlcl9fbWVudSA+IC5tZW51ID4gLm1lbnUtaXRlbS5jdXJyZW50LW1lbnUtaXRlbSA+IGEge1xuICAgIC8qIFBlcm1hbGluayAtIHVzZSB0byBlZGl0IGFuZCBzaGFyZSB0aGlzIGdyYWRpZW50OiBodHRwczovL2NvbG9yemlsbGEuY29tL2dyYWRpZW50LWVkaXRvci8jMWU1Nzk5KzAsN2RiOWU4KzEwMCAqL1xuICAgIGJhY2tncm91bmQ6ICNFRTFCQjY7XG4gICAgLyogT2xkIGJyb3dzZXJzICovXG4gICAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQobGVmdCwgI0VFMUJCNiAwJSwgIzc5ODNGRiAxMDAlKTtcbiAgICAvKiBGRjMuNi0xNSAqL1xuICAgIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQsICNFRTFCQjYgMCUsICM3OTgzRkYgMTAwJSk7XG4gICAgLyogQ2hyb21lMTAtMjUsU2FmYXJpNS4xLTYgKi9cbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICNFRTFCQjYgMCUsICM3OTgzRkYgMTAwJSk7XG4gICAgLyogVzNDLCBJRTEwKywgRkYxNissIENocm9tZTI2KywgT3BlcmExMissIFNhZmFyaTcrICovXG4gICAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoIHN0YXJ0Q29sb3JzdHI9JyNFRTFCQjYnLCBlbmRDb2xvcnN0cj0nIzc5ODNGRicsR3JhZGllbnRUeXBlPTEgKTtcbiAgICAvKiBJRTYtOSAqL1xuICAgIGJhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5zaXRlLWhlYWRlci0tbGlnaHQ6bm90KC5zdWJtZW51LW9wZW4pIC5zaXRlLWhlYWRlcl9fbWVudSA+IC5tZW51ID4gLm1lbnUtaXRlbTpob3ZlciA+IGEsIC5zaXRlLWhlYWRlci0tbGlnaHQ6bm90KC5zdWJtZW51LW9wZW4pIC5zaXRlLWhlYWRlcl9fbWVudSA+IC5tZW51ID4gLm1lbnUtaXRlbS5jdXJyZW50LW1lbnUtaXRlbSA+IGEge1xuICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgIGNvbG9yOiAjRUUxQkI2OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5zaXRlLWhlYWRlcl9fbWVudSA+IC5tZW51ID4gLm1lbnUtaXRlbTpob3ZlciA+IGE6YmVmb3JlLCAuc2l0ZS1oZWFkZXJfX21lbnUgPiAubWVudSA+IC5tZW51LWl0ZW0uY3VycmVudC1tZW51LWl0ZW0gPiBhOmJlZm9yZSB7XG4gICAgICAvKiBQZXJtYWxpbmsgLSB1c2UgdG8gZWRpdCBhbmQgc2hhcmUgdGhpcyBncmFkaWVudDogaHR0cHM6Ly9jb2xvcnppbGxhLmNvbS9ncmFkaWVudC1lZGl0b3IvIzFlNTc5OSswLDdkYjllOCsxMDAgKi9cbiAgICAgIGJhY2tncm91bmQ6ICNFRTFCQjY7XG4gICAgICAvKiBPbGQgYnJvd3NlcnMgKi9cbiAgICAgIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KGxlZnQsICNFRTFCQjYgMCUsICM3OTgzRkYgMTAwJSk7XG4gICAgICAvKiBGRjMuNi0xNSAqL1xuICAgICAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVmdCwgI0VFMUJCNiAwJSwgIzc5ODNGRiAxMDAlKTtcbiAgICAgIC8qIENocm9tZTEwLTI1LFNhZmFyaTUuMS02ICovXG4gICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICNFRTFCQjYgMCUsICM3OTgzRkYgMTAwJSk7XG4gICAgICAvKiBXM0MsIElFMTArLCBGRjE2KywgQ2hyb21lMjYrLCBPcGVyYTEyKywgU2FmYXJpNysgKi9cbiAgICAgIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KCBzdGFydENvbG9yc3RyPScjRUUxQkI2JywgZW5kQ29sb3JzdHI9JyM3OTgzRkYnLEdyYWRpZW50VHlwZT0xICk7XG4gICAgICAvKiBJRTYtOSAqL1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBoZWlnaHQ6IDVweDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIHRvcDogLTEzcHg7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgLnNpdGUtaGVhZGVyX19tZW51ID4gLm1lbnUgPiAubWVudS1pdGVtLm1lZ2FtZW51ID4gLnN1Yi1tZW51ID4gLm1lbnUtaXRlbTpub3QoLm1vYmlsZS1pdGVtKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAuc2l0ZS1oZWFkZXJfX21lbnUgPiAubWVudSA+IC5tZW51LWl0ZW0ubWVnYW1lbnU6aG92ZXIgPiAuc3ViLW1lbnUge1xuICAgIG1heC13aWR0aDogOTByZW07XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy10b3A6IDBweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDMwcHg7IH1cbiAgICAuc2l0ZS1oZWFkZXJfX21lbnUgPiAubWVudSA+IC5tZW51LWl0ZW0ubWVnYW1lbnU6aG92ZXIgPiAuc3ViLW1lbnU6YmVmb3JlIHtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIHotaW5kZXg6IDE1OyB9XG4gICAgLnNpdGUtaGVhZGVyX19tZW51ID4gLm1lbnUgPiAubWVudS1pdGVtLm1lZ2FtZW51OmhvdmVyID4gLnN1Yi1tZW51OmFmdGVyIHtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgYm94LXNoYWRvdzogMCAycHggMzBweCAwIHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgICAgIHotaW5kZXg6IDEwOyB9XG4gICAgLnNpdGUtaGVhZGVyX19tZW51ID4gLm1lbnUgPiAubWVudS1pdGVtLm1lZ2FtZW51OmhvdmVyID4gLnN1Yi1tZW51ID4gLm1lbnUtaXRlbSB7XG4gICAgICBwYWRkaW5nLXRvcDogMjVweDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAyNXB4OyB9XG4gICAgICAuc2l0ZS1oZWFkZXJfX21lbnUgPiAubWVudSA+IC5tZW51LWl0ZW0ubWVnYW1lbnU6aG92ZXIgPiAuc3ViLW1lbnUgPiAubWVudS1pdGVtOm5vdCgucHJvZHVjdC1jb2x1bW4pIHtcbiAgICAgICAgZmxleDogMSAxIDBweDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gICAgICAgIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gICAgICAgIG1pbi13aWR0aDogMDsgfSB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgICAuc2l0ZS1oZWFkZXJfX21lbnUgPiAubWVudSA+IC5tZW51LWl0ZW0ubWVnYW1lbnU6aG92ZXIgPiAuc3ViLW1lbnUgPiAubWVudS1pdGVtOm5vdCgucHJvZHVjdC1jb2x1bW4pIHtcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuc2l0ZS1oZWFkZXJfX21lbnUgPiAubWVudSA+IC5tZW51LWl0ZW0ubWVnYW1lbnU6aG92ZXIgPiAuc3ViLW1lbnUgPiAubWVudS1pdGVtLnByb2R1Y3QtY29sdW1uIHtcbiAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xuICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHJnYmEoMjM2LCAyMzYsIDIzNiwgMC4yKTsgfSB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgICAuc2l0ZS1oZWFkZXJfX21lbnUgPiAubWVudSA+IC5tZW51LWl0ZW0ubWVnYW1lbnU6aG92ZXIgPiAuc3ViLW1lbnUgPiAubWVudS1pdGVtLnByb2R1Y3QtY29sdW1uIHtcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAgIC5zaXRlLWhlYWRlcl9fbWVudSA+IC5tZW51ID4gLm1lbnUtaXRlbS5tZWdhbWVudTpob3ZlciA+IC5zdWItbWVudSA+IC5tZW51LWl0ZW0ucHJvZHVjdC1jb2x1bW4gPiAuc3ViLW1lbnUsXG4gICAgICAgIC5zaXRlLWhlYWRlcl9fbWVudSA+IC5tZW51ID4gLm1lbnUtaXRlbS5tZWdhbWVudTpob3ZlciA+IC5zdWItbWVudSA+IC5tZW51LWl0ZW0ucHJvZHVjdC1jb2x1bW4gPiAuc3ViLW1lbnUgPiAubWVudS1pdGVtLFxuICAgICAgICAuc2l0ZS1oZWFkZXJfX21lbnUgPiAubWVudSA+IC5tZW51LWl0ZW0ubWVnYW1lbnU6aG92ZXIgPiAuc3ViLW1lbnUgPiAubWVudS1pdGVtLnByb2R1Y3QtY29sdW1uID4gLnN1Yi1tZW51ID4gLm1lbnUtaXRlbSA+IC5oZWFkZXItcHJvZHVjdCB7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlOyB9IH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIGFuZCAobWF4LXdpZHRoOiA3NC45Mzc1ZW0pIHtcbiAgICAgICAgLnNpdGUtaGVhZGVyX19tZW51ID4gLm1lbnUgPiAubWVudS1pdGVtLm1lZ2FtZW51OmhvdmVyID4gLnN1Yi1tZW51ID4gLm1lbnUtaXRlbS5wcm9kdWN0LWNvbHVtbjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLnNpdGUtaGVhZGVyX19tZW51ID4gLm1lbnUgPiAubWVudS1pdGVtLm1lZ2FtZW51OmhvdmVyID4gLnN1Yi1tZW51ID4gLm1lbnUtaXRlbSA+IGEge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgICAuc2l0ZS1oZWFkZXJfX21lbnUgPiAubWVudSA+IC5tZW51LWl0ZW0ubWVnYW1lbnU6aG92ZXIgPiAuc3ViLW1lbnUgPiAubWVudS1pdGVtID4gLnN1Yi1tZW51IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gICAgICAgIC5zaXRlLWhlYWRlcl9fbWVudSA+IC5tZW51ID4gLm1lbnUtaXRlbS5tZWdhbWVudTpob3ZlciA+IC5zdWItbWVudSA+IC5tZW51LWl0ZW0gPiAuc3ViLW1lbnUgPiAubWVudS1pdGVtID4gYSB7XG4gICAgICAgICAgZm9udC1zaXplOiAyMnB4O1xuICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICBwYWRkaW5nOiA5cHggMDsgfSB9XG5cbi5zaXRlLWhlYWRlcl9fbW9iaWxlLXByb2R1Y3Qtd3JhcHBlciB7XG4gIGZsZXgtc2hyaW5rOiAxO1xuICBtYXJnaW46IDIwcHggMTVweDsgfVxuXG4uc2l0ZS1oZWFkZXJfX21vYmlsZS1wcm9kdWN0OmVtcHR5IHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgLnNpdGUtaGVhZGVyX19tb2JpbGUtcHJvZHVjdCB7XG4gICAgLyogUGVybWFsaW5rIC0gdXNlIHRvIGVkaXQgYW5kIHNoYXJlIHRoaXMgZ3JhZGllbnQ6IGh0dHBzOi8vY29sb3J6aWxsYS5jb20vZ3JhZGllbnQtZWRpdG9yLyMxZTU3OTkrMCw3ZGI5ZTgrMTAwICovXG4gICAgYmFja2dyb3VuZDogI0VFMUJCNjtcbiAgICAvKiBPbGQgYnJvd3NlcnMgKi9cbiAgICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudChsZWZ0LCAjRUUxQkI2IDAlLCAjNzk4M0ZGIDEwMCUpO1xuICAgIC8qIEZGMy42LTE1ICovXG4gICAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVmdCwgI0VFMUJCNiAwJSwgIzc5ODNGRiAxMDAlKTtcbiAgICAvKiBDaHJvbWUxMC0yNSxTYWZhcmk1LjEtNiAqL1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgI0VFMUJCNiAwJSwgIzc5ODNGRiAxMDAlKTtcbiAgICAvKiBXM0MsIElFMTArLCBGRjE2KywgQ2hyb21lMjYrLCBPcGVyYTEyKywgU2FmYXJpNysgKi9cbiAgICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudCggc3RhcnRDb2xvcnN0cj0nI0VFMUJCNicsIGVuZENvbG9yc3RyPScjNzk4M0ZGJyxHcmFkaWVudFR5cGU9MSApO1xuICAgIC8qIElFNi05ICovXG4gICAgYm9yZGVyLXJhZGl1czogMjJweDtcbiAgICBwYWRkaW5nOiAyMHB4IDEwcHg7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXgtd2lkdGg6IDM3MHB4O1xuICAgIG1hcmdpbjogMCBhdXRvOyB9XG4gICAgLnNpdGUtaGVhZGVyX19tb2JpbGUtcHJvZHVjdCAuaGVhZGVyLXByb2R1Y3RfX2ltYWdlLWhvbGRlciB7XG4gICAgICBtYXgtd2lkdGg6IDE3MHB4O1xuICAgICAgd2lkdGg6IDYwJTtcbiAgICAgIG1hcmdpbi1yaWdodDogMjBweDsgfVxuICAgIC5zaXRlLWhlYWRlcl9fbW9iaWxlLXByb2R1Y3QgLmhlYWRlci1wcm9kdWN0X19pbWFnZSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHBhZGRpbmctdG9wOiAxMTUlOyB9XG4gICAgLnNpdGUtaGVhZGVyX19tb2JpbGUtcHJvZHVjdCAuaGVhZGVyLXByb2R1Y3RfX2luZm8ge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgdG9wOiAtNCBweDsgfVxuICAgIC5zaXRlLWhlYWRlcl9fbW9iaWxlLXByb2R1Y3QgLmhlYWRlci1wcm9kdWN0X19wcmljZSB7XG4gICAgICBmb250LXNpemU6IDQwcHg7XG4gICAgICBmb250LXdlaWdodDogNTAwOyB9XG4gICAgLnNpdGUtaGVhZGVyX19tb2JpbGUtcHJvZHVjdCAuaGVhZGVyLXByb2R1Y3RfX2FkZCAuYWRkLWJ1dHRvbjpiZWZvcmUsIC5zaXRlLWhlYWRlcl9fbW9iaWxlLXByb2R1Y3QgLmhlYWRlci1wcm9kdWN0X19hZGQgLnByb2R1Y3QtY2FyZC1zbWFsbF9fYWRkIC5idXR0b246YmVmb3JlLCAucHJvZHVjdC1jYXJkLXNtYWxsX19hZGQgLnNpdGUtaGVhZGVyX19tb2JpbGUtcHJvZHVjdCAuaGVhZGVyLXByb2R1Y3RfX2FkZCAuYnV0dG9uOmJlZm9yZSB7XG4gICAgICB3aWR0aDogMzdweDtcbiAgICAgIGhlaWdodDogMzdweDtcbiAgICAgIGZvbnQtc2l6ZTogNDFweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAzMXB4OyB9XG4gICAgLnNpdGUtaGVhZGVyX19tb2JpbGUtcHJvZHVjdCAuaGVhZGVyLXByb2R1Y3RfX2FkZCAuYWRkLWJ1dHRvbjphZnRlciwgLnNpdGUtaGVhZGVyX19tb2JpbGUtcHJvZHVjdCAuaGVhZGVyLXByb2R1Y3RfX2FkZCAucHJvZHVjdC1jYXJkLXNtYWxsX19hZGQgLmJ1dHRvbjphZnRlciwgLnByb2R1Y3QtY2FyZC1zbWFsbF9fYWRkIC5zaXRlLWhlYWRlcl9fbW9iaWxlLXByb2R1Y3QgLmhlYWRlci1wcm9kdWN0X19hZGQgLmJ1dHRvbjphZnRlciB7XG4gICAgICBmb250LXNpemU6IDI3cHg7XG4gICAgICBmb250LXdlaWdodDogNTAwOyB9IH1cblxuLmZvb3Rlci1zZWN0aW9uX19zb2NpYWwuc2l0ZS1oZWFkZXJfX21vYmlsZS1zb2NpYWwge1xuICBtYXJnaW4tdG9wOiAyMHB4O1xuICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gIGZsZXgtc2hyaW5rOiAxO1xuICBmbGV4OiBub25lOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuZm9vdGVyLXNlY3Rpb25fX3NvY2lhbC5zaXRlLWhlYWRlcl9fbW9iaWxlLXNvY2lhbCB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuLnNpdGUtaGVhZGVyX19tb2JpbGUtY29weXJpZ2h0IHtcbiAgZm9udC1zaXplOiAxN3B4O1xuICBsaW5lLWhlaWdodDogMi41OTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBmbGV4LXNocmluazogMTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLnNpdGUtaGVhZGVyX19tb2JpbGUtY29weXJpZ2h0IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG4uc2l0ZS1oZWFkZXJfX3VzZXItbWVudSAubWVudSB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmctbGVmdDogMTBweDsgfVxuICAuc2l0ZS1oZWFkZXJfX3VzZXItbWVudSAubWVudSA+IGxpID4gYSB7XG4gICAgZm9udC1zaXplOiAyMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIHBhZGRpbmc6IDAgMC43cmVtO1xuICAgIG1hcmdpbi10b3A6IDEzcHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGhlaWdodDogMTA3cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEwMHB4OyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLnNpdGUtaGVhZGVyLS1saWdodDpub3QoLnN1Ym1lbnUtb3BlbikgLnNpdGUtaGVhZGVyX191c2VyLW1lbnUgLm1lbnUgPiBsaSA+IGEge1xuICAgICAgICBjb2xvcjogIzJDMjkzNDsgfSB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XG4gICAgICAuc2l0ZS1oZWFkZXJfX3VzZXItbWVudSAubWVudSA+IGxpID4gYSB7XG4gICAgICAgIG1hcmdpbjogMHB4O1xuICAgICAgICBoZWlnaHQ6IDY3cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiA2N3B4O1xuICAgICAgICBmb250LXNpemU6IDIwcHg7IH0gfVxuXG4ubWVudV9fYWNjb3VudC1pdGVtIGEgc3BhbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogNDBweDtcbiAgaGVpZ2h0OiA0MHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZDNkZWUzO1xuICBib3JkZXItcmFkaXVzOiAxMDAwcHg7XG4gIGxpbmUtaGVpZ2h0OiA0MnB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLm1lbnVfX2FjY291bnQtaXRlbSBhIHNwYW46YmVmb3JlIHtcbiAgICAvKiB1c2UgIWltcG9ydGFudCB0byBwcmV2ZW50IGlzc3VlcyB3aXRoIGJyb3dzZXIgZXh0ZW5zaW9ucyB0aGF0IGNoYW5nZSBmb250cyAqL1xuICAgIGZvbnQtZmFtaWx5OiAnaWNvbW9vbicgIWltcG9ydGFudDtcbiAgICBzcGVhazogbm9uZTtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICAvKiBCZXR0ZXIgRm9udCBSZW5kZXJpbmcgPT09PT09PT09PT0gKi9cbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAgIGNvbnRlbnQ6IFwi7qSDXCI7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgIGNvbG9yOiAjZDNkZWUzOyB9XG5cbi5zaXRlLWhlYWRlcl9fY2FydCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGluZS1oZWlnaHQ6IGluaXRpYWw7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuICAuc2l0ZS1oZWFkZXJfX2NhcnQgc3BhbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDI0cHg7XG4gICAgaGVpZ2h0OiAyNHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlZTFiYjc7XG4gICAgYm9yZGVyLXJhZGl1czogMTIwcHg7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBsaW5lLWhlaWdodDogMjNweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAycHg7XG4gICAgcmlnaHQ6IC0xMnB4OyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XG4gICAgICAuc2l0ZS1oZWFkZXJfX2NhcnQgc3BhbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgICAgIHJpZ2h0OiAtOHB4OyB9IH1cbiAgLnNpdGUtaGVhZGVyX19jYXJ0OmJlZm9yZSB7XG4gICAgLyogdXNlICFpbXBvcnRhbnQgdG8gcHJldmVudCBpc3N1ZXMgd2l0aCBicm93c2VyIGV4dGVuc2lvbnMgdGhhdCBjaGFuZ2UgZm9udHMgKi9cbiAgICBmb250LWZhbWlseTogJ2ljb21vb24nICFpbXBvcnRhbnQ7XG4gICAgc3BlYWs6IG5vbmU7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgLyogQmV0dGVyIEZvbnQgUmVuZGVyaW5nID09PT09PT09PT09ICovXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgICBjb250ZW50OiBcIu6kgVwiO1xuICAgIGZvbnQtc2l6ZTogMzZweDtcbiAgICBjb2xvcjogI2QzZGVlMzsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICAgICAgLnNpdGUtaGVhZGVyX19jYXJ0OmJlZm9yZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMzBweDsgfSB9XG5cbi5oZWFkZXItdGl0bGUge1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7IH1cbiAgLmhlYWRlci10aXRsZTpub3QoLmhlYWRlci10aXRsZV9faW1hZ2UpIHtcbiAgICBtYXgtd2lkdGg6IDg1cmVtO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZmxvdzogcm93IHdyYXA7IH1cbiAgLmhlYWRlci10aXRsZTpub3QoLmhlYWRlci10aXRsZV9faW1hZ2UpIC5oZWFkZXItdGl0bGVfX3RpdGxlIHtcbiAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgZm9udC1zaXplOiA1OHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI1O1xuICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC0wLjVweDtcbiAgICBjb2xvcjogIzJDMjkzNDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi10b3A6IDYwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMHB4OyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5oZWFkZXItdGl0bGU6bm90KC5oZWFkZXItdGl0bGVfX2ltYWdlKSAuaGVhZGVyLXRpdGxlX190aXRsZSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICAgICAgLmhlYWRlci10aXRsZTpub3QoLmhlYWRlci10aXRsZV9faW1hZ2UpIC5oZWFkZXItdGl0bGVfX3RpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiA1MHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMC41NWVtOyB9IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAgIC5oZWFkZXItdGl0bGU6bm90KC5oZWFkZXItdGl0bGVfX2ltYWdlKSAuaGVhZGVyLXRpdGxlX190aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogNDBweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDAuNDVlbTsgfSB9XG4gIC5oZWFkZXItdGl0bGUuaGVhZGVyLXRpdGxlX19pbWFnZSB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAuaGVhZGVyLXRpdGxlLmhlYWRlci10aXRsZV9faW1hZ2UgLmhlYWRlci10aXRsZV9fdGl0bGUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogNSU7XG4gICAgZm9udC1zaXplOiAxODBweDtcbiAgICBmb250LXdlaWdodDogODAwO1xuICAgIGxpbmUtaGVpZ2h0OiAwLjZlbTtcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuNXB4O1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NC45Mzc1ZW0pIHtcbiAgICAgIC5oZWFkZXItdGl0bGUuaGVhZGVyLXRpdGxlX19pbWFnZSAuaGVhZGVyLXRpdGxlX190aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTUwcHg7IH0gfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICAgICAgLmhlYWRlci10aXRsZS5oZWFkZXItdGl0bGVfX2ltYWdlIC5oZWFkZXItdGl0bGVfX3RpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiAxMDBweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDAuNTVlbTsgfSB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgICAuaGVhZGVyLXRpdGxlLmhlYWRlci10aXRsZV9faW1hZ2UgLmhlYWRlci10aXRsZV9fdGl0bGUge1xuICAgICAgICBmb250LXNpemU6IDcwcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwLjQ1ZW07IH0gfVxuXG4uaGVhZGVyLXRpdGxlX19jb250YWluZXIge1xuICBtYXgtd2lkdGg6IDkwcmVtO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLmhlYWRlci10aXRsZV9faW1hZ2UgLmhlYWRlci10aXRsZV9fY29udGFpbmVyIHtcbiAgICBoZWlnaHQ6IDM3MHB4OyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzQuOTM3NWVtKSB7XG4gICAgICAuaGVhZGVyLXRpdGxlX19pbWFnZSAuaGVhZGVyLXRpdGxlX19jb250YWluZXIge1xuICAgICAgICBoZWlnaHQ6IDMzMHB4OyB9IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgICAgIC5oZWFkZXItdGl0bGVfX2ltYWdlIC5oZWFkZXItdGl0bGVfX2NvbnRhaW5lciB7XG4gICAgICAgIGhlaWdodDogMjkwcHg7IH0gfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgICAgLmhlYWRlci10aXRsZV9faW1hZ2UgLmhlYWRlci10aXRsZV9fY29udGFpbmVyIHtcbiAgICAgICAgaGVpZ2h0OiAyNTBweDsgfSB9XG5cbi5zZWN0aW9uID4gKjpmaXJzdC1jaGlsZCB7XG4gIHBhZGRpbmctdG9wOiA1MHB4OyB9XG4gIC5zZWN0aW9uLS1zdWJ0aXRsZS5zZWN0aW9uID4gKjpmaXJzdC1jaGlsZCB7XG4gICAgcGFkZGluZy10b3A6IDIwcHg7IH1cblxuLnNlY3Rpb24gPiAqOmxhc3QtY2hpbGQge1xuICBwYWRkaW5nLWJvdHRvbTogNTBweDsgfVxuICAuc2VjdGlvbi0tc3VidGl0bGUuc2VjdGlvbiA+ICo6bGFzdC1jaGlsZCB7XG4gICAgcGFkZGluZy1ib3R0b206IDBweDsgfVxuXG4uc2VjdGlvbi5zZWN0aW9uLS1ib3JkZXItdG9wID4gKjpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjYzNjYWQ3OyB9XG5cbi5zZWN0aW9uLnNlY3Rpb24tLWJvcmRlci1ib3R0b20gPiAqOmxhc3QtY2hpbGQge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2MzY2FkNzsgfVxuXG4uc2VjdGlvbi5zZWN0aW9uLS1ib3JkZXItZnVsbC10b3Age1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2MzY2FkNzsgfVxuXG4uc2VjdGlvbi5zZWN0aW9uLS1ib3JkZXItZnVsbC1ib3R0b20ge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2MzY2FkNzsgfVxuXG4uc2VjdGlvbi5zZWN0aW9uLS1vZmZzZXQtbGFyZ2Uge1xuICBtYXJnaW4tdG9wOiAtMTUwcHg7IH1cblxuLnNlY3Rpb24uc2VjdGlvbi0tZGFyayB7XG4gIGJhY2tncm91bmQ6ICMyQzI5MzQ7IH1cblxuLnNlY3Rpb24uc2VjdGlvbi0tbGlnaHQge1xuICBiYWNrZ3JvdW5kOiAjZThlOGU4OyB9XG5cbi5zZWN0aW9uLnNlY3Rpb24tLWxpZ2h0ZXIge1xuICBiYWNrZ3JvdW5kOiAjZjVmOGZhOyB9XG5cbi5zZWN0aW9uLnNlY3Rpb24tLWNvbXBhY3QgPiAqOmZpcnN0LWNoaWxkIHtcbiAgcGFkZGluZy10b3A6IDI1cHg7IH1cblxuLnNlY3Rpb24uc2VjdGlvbi0tY29tcGFjdCA+ICo6bGFzdC1jaGlsZCB7XG4gIHBhZGRpbmctYm90dG9tOiAyNXB4OyB9XG5cbi5zZWN0aW9uLnNlY3Rpb24tLWNvbXBhY3QgKyAuc2VjdGlvbi0tY29tcGFjdCA+ICo6Zmlyc3QtY2hpbGQge1xuICBwYWRkaW5nLXRvcDogMHB4OyB9XG5cbi5zZWN0aW9uX19oZWFkZXIge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cblxuLnNlY3Rpb25fX2hlYWRlciwgLnNlY3Rpb25fX29wdGlvbnMsIC5zZWN0aW9uX19ib2R5IHtcbiAgbWF4LXdpZHRoOiA3NXJlbTtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgd3JhcDsgfVxuICAuc2VjdGlvbi0tZnVsbCAuc2VjdGlvbl9faGVhZGVyLCAuc2VjdGlvbi0tZnVsbCAuc2VjdGlvbl9fb3B0aW9ucywgLnNlY3Rpb24tLWZ1bGwgLnNlY3Rpb25fX2JvZHkge1xuICAgIG1heC13aWR0aDogaW5pdGlhbDsgfVxuICAuc2VjdGlvbi0tbmFycm93IC5zZWN0aW9uX19oZWFkZXIsIC5zZWN0aW9uLS1uYXJyb3cgLnNlY3Rpb25fX29wdGlvbnMsIC5zZWN0aW9uLS1uYXJyb3cgLnNlY3Rpb25fX2JvZHkge1xuICAgIG1heC13aWR0aDogNjguNzVyZW07XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiByb3cgd3JhcDsgfVxuICAuc2VjdGlvbi0td2lkZSAuc2VjdGlvbl9faGVhZGVyLCAuc2VjdGlvbi0td2lkZSAuc2VjdGlvbl9fb3B0aW9ucywgLnNlY3Rpb24tLXdpZGUgLnNlY3Rpb25fX2JvZHkge1xuICAgIG1heC13aWR0aDogODVyZW07XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiByb3cgd3JhcDsgfVxuICAuc2VjdGlvbi0td2lkZXIgLnNlY3Rpb25fX2hlYWRlciwgLnNlY3Rpb24tLXdpZGVyIC5zZWN0aW9uX19vcHRpb25zLCAuc2VjdGlvbi0td2lkZXIgLnNlY3Rpb25fX2JvZHkge1xuICAgIG1heC13aWR0aDogOTByZW07XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiByb3cgd3JhcDsgfVxuXG4uc2VjdGlvbl9fdGl0bGUge1xuICBmb250LXNpemU6IDU4cHg7XG4gIGZvbnQtd2VpZ2h0OiA4MDA7XG4gIGxldHRlci1zcGFjaW5nOiAtMC41cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6ICMyYzI5MzQ7XG4gIG1hcmdpbi1ib3R0b206IDI1cHg7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIC5zZWN0aW9uLS1jb21wYWN0IC5zZWN0aW9uX190aXRsZSB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBmb250LXNpemU6IDI4cHg7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC0wLjVweDtcbiAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gICAgbWFyZ2luLWxlZnQ6IDIwcHg7IH1cbiAgLnNlY3Rpb24tLWRhcmsgLnNlY3Rpb25fX3RpdGxlIHtcbiAgICBjb2xvcjogd2hpdGU7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XG4gICAgLnNlY3Rpb25fX3RpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogNTBweDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgIC5zZWN0aW9uX190aXRsZSB7XG4gICAgICBmb250LXNpemU6IDM2cHg7IH0gfVxuXG4uc2VjdGlvbl9fc3VidGl0bGUge1xuICBmb250LXNpemU6IDIycHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjY0O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiByZ2JhKDgsIDE5LCAzMSwgMC41KTtcbiAgbWFyZ2luLWJvdHRvbTogODVweDtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLnNlY3Rpb24tLXN1YnRpdGxlIC5zZWN0aW9uX19zdWJ0aXRsZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDsgfVxuICAuc2VjdGlvbi0tZGFyayAuc2VjdGlvbl9fc3VidGl0bGUge1xuICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7IH1cbiAgLnNlY3Rpb24tLW5hcnJvdy1zdWJ0aXRsZSAuc2VjdGlvbl9fc3VidGl0bGUge1xuICAgIHdpZHRoOiA2NjBweDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICAgIC5zZWN0aW9uX19zdWJ0aXRsZSB7XG4gICAgICBmb250LXNpemU6IDIwcHg7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAuc2VjdGlvbl9fc3VidGl0bGUge1xuICAgICAgZm9udC1zaXplOiAxOHB4OyB9IH1cblxuLnNlY3Rpb25fX29wdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIG1hcmdpbi1ib3R0b206IDMzcHg7IH1cblxuLnNlY3Rpb25fX29wdGlvbiB7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgbWFyZ2luOiA1cHggMDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5zZWN0aW9uX19vcHRpb24ge1xuICAgICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuICAuc2VjdGlvbl9fb3B0aW9uIGxhYmVsIHtcbiAgICBmb250LXNpemU6IDIycHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuNXB4O1xuICAgIGNvbG9yOiAjMDgxMzFmO1xuICAgIG1hcmdpbi1yaWdodDogMjVweDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgICAuc2VjdGlvbl9fb3B0aW9uIHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgICAuc2VjdGlvbl9fb3B0aW9uIGxhYmVsIHtcbiAgICAgICAgd2lkdGg6IDkwcHg7IH1cbiAgICAgIC5zZWN0aW9uX19vcHRpb24gbGFiZWwgKyAqIHtcbiAgICAgICAgZmxleC1ncm93OiAxOyB9XG4gICAgICAuc2VjdGlvbl9fb3B0aW9uIC5jaG9zZW4tY29udGFpbmVyIHtcbiAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfSB9XG5cbi5zZWN0aW9uLS1uYXJyb3ctY29sLnNlY3Rpb24tLWNvbC0zIC5zZWN0aW9uX19ib2R5IHtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9XG5cbi5zZWN0aW9uLS1jZW50ZXIgLnNlY3Rpb25fX2JvZHkge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLnNlY3Rpb24tLXJldmVyc2UgLnNlY3Rpb25fX2JvZHkge1xuICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7IH1cblxuLnNlY3Rpb25fX2NvbHVtbi1wYWdlLWNvbnRlbnQge1xuICB3aWR0aDogMTAwJTsgfVxuXG4uc2VjdGlvbl9fY29sdW1uIC53b29jb21tZXJjZSB7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi5zZWN0aW9uLS1jb2wtMSA+IC5zZWN0aW9uX19ib2R5ID4gLnNlY3Rpb25fX2NvbHVtbiwgLndvb2NvbW1lcmNlLmNvbHVtbnMtMSA+IC5zZWN0aW9uX19jb2x1bW4ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4OiAwIDAgMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW4tdG9wOiAwcHg7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuc2VjdGlvbi0tY29sLTEgPiAuc2VjdGlvbl9fYm9keSA+IC5zZWN0aW9uX19jb2x1bW4sIC53b29jb21tZXJjZS5jb2x1bW5zLTEgPiAuc2VjdGlvbl9fY29sdW1uIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtOyB9IH1cbiAgLnNlY3Rpb24tLWNvbC0xID4gLnNlY3Rpb25fX2JvZHkgPiAuc2VjdGlvbl9fY29sdW1uOm50aC1jaGlsZCgxKSB+IC5zZWN0aW9uX19jb2x1bW4sIC53b29jb21tZXJjZS5jb2x1bW5zLTEgPiAuc2VjdGlvbl9fY29sdW1uOm50aC1jaGlsZCgxKSB+IC5zZWN0aW9uX19jb2x1bW4ge1xuICAgIG1hcmdpbi10b3A6IDcwcHg7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgICAgIC51cHNlbGxzLnNlY3Rpb24tLWNvbC0xID4gLnNlY3Rpb25fX2JvZHkgPiAuc2VjdGlvbl9fY29sdW1uOm50aC1jaGlsZCgxKSB+IC5zZWN0aW9uX19jb2x1bW4sIC53b29jb21tZXJjZS5jb2x1bW5zLTEgPiAuc2VjdGlvbl9fY29sdW1uOm50aC1jaGlsZCgxKSB+IC5zZWN0aW9uX19jb2x1bW4ge1xuICAgICAgICBtYXJnaW4tdG9wOiAzMHB4OyB9IH1cblxuLnNlY3Rpb24tLWNvbC0yID4gLnNlY3Rpb25fX2JvZHkgPiAuc2VjdGlvbl9fY29sdW1uLCAud29vY29tbWVyY2UuY29sdW1ucy0yID4gLnNlY3Rpb25fX2NvbHVtbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXg6IDAgMCA1MCU7XG4gIG1heC13aWR0aDogNTAlO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgbWF4LXdpZHRoOiA1MCU7XG4gIG1hcmdpbi10b3A6IDBweDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5zZWN0aW9uLS1jb2wtMiA+IC5zZWN0aW9uX19ib2R5ID4gLnNlY3Rpb25fX2NvbHVtbiwgLndvb2NvbW1lcmNlLmNvbHVtbnMtMiA+IC5zZWN0aW9uX19jb2x1bW4ge1xuICAgICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuICAuc2VjdGlvbi0tY29sLTIgPiAuc2VjdGlvbl9fYm9keSA+IC5zZWN0aW9uX19jb2x1bW46bnRoLWNoaWxkKDIpIH4gLnNlY3Rpb25fX2NvbHVtbiwgLndvb2NvbW1lcmNlLmNvbHVtbnMtMiA+IC5zZWN0aW9uX19jb2x1bW46bnRoLWNoaWxkKDIpIH4gLnNlY3Rpb25fX2NvbHVtbiB7XG4gICAgbWFyZ2luLXRvcDogNzBweDsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICAgICAgLnVwc2VsbHMuc2VjdGlvbi0tY29sLTIgPiAuc2VjdGlvbl9fYm9keSA+IC5zZWN0aW9uX19jb2x1bW46bnRoLWNoaWxkKDIpIH4gLnNlY3Rpb25fX2NvbHVtbiwgLndvb2NvbW1lcmNlLmNvbHVtbnMtMiA+IC5zZWN0aW9uX19jb2x1bW46bnRoLWNoaWxkKDIpIH4gLnNlY3Rpb25fX2NvbHVtbiB7XG4gICAgICAgIG1hcmdpbi10b3A6IDMwcHg7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAuc2VjdGlvbi0tY29sLTIgPiAuc2VjdGlvbl9fYm9keSA+IC5zZWN0aW9uX19jb2x1bW4sIC53b29jb21tZXJjZS5jb2x1bW5zLTIgPiAuc2VjdGlvbl9fY29sdW1uIHtcbiAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luLXRvcDogMHB4OyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5zZWN0aW9uLS1jb2wtMiA+IC5zZWN0aW9uX19ib2R5ID4gLnNlY3Rpb25fX2NvbHVtbiwgLndvb2NvbW1lcmNlLmNvbHVtbnMtMiA+IC5zZWN0aW9uX19jb2x1bW4ge1xuICAgICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAgIC5zZWN0aW9uLS1jb2wtMiA+IC5zZWN0aW9uX19ib2R5ID4gLnNlY3Rpb25fX2NvbHVtbjpudGgtY2hpbGQoMSkgfiAuc2VjdGlvbl9fY29sdW1uLCAud29vY29tbWVyY2UuY29sdW1ucy0yID4gLnNlY3Rpb25fX2NvbHVtbjpudGgtY2hpbGQoMSkgfiAuc2VjdGlvbl9fY29sdW1uIHtcbiAgICAgICAgbWFyZ2luLXRvcDogNzBweDsgfSB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XG4gICAgICAudXBzZWxscy5zZWN0aW9uLS1jb2wtMiA+IC5zZWN0aW9uX19ib2R5ID4gLnNlY3Rpb25fX2NvbHVtbjpudGgtY2hpbGQoMSkgfiAuc2VjdGlvbl9fY29sdW1uLCAud29vY29tbWVyY2UuY29sdW1ucy0yID4gLnNlY3Rpb25fX2NvbHVtbjpudGgtY2hpbGQoMSkgfiAuc2VjdGlvbl9fY29sdW1uIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMzBweDsgfSB9XG5cbi5zZWN0aW9uLS1jb2wtNCA+IC5zZWN0aW9uX19ib2R5ID4gLnNlY3Rpb25fX2NvbHVtbiwgLndvb2NvbW1lcmNlLmNvbHVtbnMtNCA+IC5zZWN0aW9uX19jb2x1bW4ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4OiAwIDAgMjUlO1xuICBtYXgtd2lkdGg6IDI1JTtcbiAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gIG1heC13aWR0aDogMjUlO1xuICBtYXJnaW4tdG9wOiAwcHg7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuc2VjdGlvbi0tY29sLTQgPiAuc2VjdGlvbl9fYm9keSA+IC5zZWN0aW9uX19jb2x1bW4sIC53b29jb21tZXJjZS5jb2x1bW5zLTQgPiAuc2VjdGlvbl9fY29sdW1uIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtOyB9IH1cbiAgLnNlY3Rpb24tLWNvbC00ID4gLnNlY3Rpb25fX2JvZHkgPiAuc2VjdGlvbl9fY29sdW1uOm50aC1jaGlsZCg0KSB+IC5zZWN0aW9uX19jb2x1bW4sIC53b29jb21tZXJjZS5jb2x1bW5zLTQgPiAuc2VjdGlvbl9fY29sdW1uOm50aC1jaGlsZCg0KSB+IC5zZWN0aW9uX19jb2x1bW4ge1xuICAgIG1hcmdpbi10b3A6IDcwcHg7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgICAgIC51cHNlbGxzLnNlY3Rpb24tLWNvbC00ID4gLnNlY3Rpb25fX2JvZHkgPiAuc2VjdGlvbl9fY29sdW1uOm50aC1jaGlsZCg0KSB+IC5zZWN0aW9uX19jb2x1bW4sIC53b29jb21tZXJjZS5jb2x1bW5zLTQgPiAuc2VjdGlvbl9fY29sdW1uOm50aC1jaGlsZCg0KSB+IC5zZWN0aW9uX19jb2x1bW4ge1xuICAgICAgICBtYXJnaW4tdG9wOiAzMHB4OyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XG4gICAgLnNlY3Rpb24tLWNvbC00ID4gLnNlY3Rpb25fX2JvZHkgPiAuc2VjdGlvbl9fY29sdW1uLCAud29vY29tbWVyY2UuY29sdW1ucy00ID4gLnNlY3Rpb25fX2NvbHVtbiB7XG4gICAgICBmbGV4OiAwIDAgNTAlO1xuICAgICAgbWF4LXdpZHRoOiA1MCU7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gICAgICBtYXgtd2lkdGg6IDUwJTtcbiAgICAgIG1hcmdpbi10b3A6IDBweDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkgYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuc2VjdGlvbi0tY29sLTQgPiAuc2VjdGlvbl9fYm9keSA+IC5zZWN0aW9uX19jb2x1bW4sIC53b29jb21tZXJjZS5jb2x1bW5zLTQgPiAuc2VjdGlvbl9fY29sdW1uIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XG4gICAgICAuc2VjdGlvbi0tY29sLTQgPiAuc2VjdGlvbl9fYm9keSA+IC5zZWN0aW9uX19jb2x1bW46bnRoLWNoaWxkKDIpIH4gLnNlY3Rpb25fX2NvbHVtbiwgLndvb2NvbW1lcmNlLmNvbHVtbnMtNCA+IC5zZWN0aW9uX19jb2x1bW46bnRoLWNoaWxkKDIpIH4gLnNlY3Rpb25fX2NvbHVtbiB7XG4gICAgICAgIG1hcmdpbi10b3A6IDcwcHg7IH0gfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkgYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICAgICAgLnVwc2VsbHMuc2VjdGlvbi0tY29sLTQgPiAuc2VjdGlvbl9fYm9keSA+IC5zZWN0aW9uX19jb2x1bW46bnRoLWNoaWxkKDIpIH4gLnNlY3Rpb25fX2NvbHVtbiwgLndvb2NvbW1lcmNlLmNvbHVtbnMtNCA+IC5zZWN0aW9uX19jb2x1bW46bnRoLWNoaWxkKDIpIH4gLnNlY3Rpb25fX2NvbHVtbiB7XG4gICAgICAgIG1hcmdpbi10b3A6IDMwcHg7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAuc2VjdGlvbi0tY29sLTQgPiAuc2VjdGlvbl9fYm9keSA+IC5zZWN0aW9uX19jb2x1bW4sIC53b29jb21tZXJjZS5jb2x1bW5zLTQgPiAuc2VjdGlvbl9fY29sdW1uIHtcbiAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luLXRvcDogMHB4OyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5zZWN0aW9uLS1jb2wtNCA+IC5zZWN0aW9uX19ib2R5ID4gLnNlY3Rpb25fX2NvbHVtbiwgLndvb2NvbW1lcmNlLmNvbHVtbnMtNCA+IC5zZWN0aW9uX19jb2x1bW4ge1xuICAgICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAgIC5zZWN0aW9uLS1jb2wtNCA+IC5zZWN0aW9uX19ib2R5ID4gLnNlY3Rpb25fX2NvbHVtbjpudGgtY2hpbGQoMSkgfiAuc2VjdGlvbl9fY29sdW1uLCAud29vY29tbWVyY2UuY29sdW1ucy00ID4gLnNlY3Rpb25fX2NvbHVtbjpudGgtY2hpbGQoMSkgfiAuc2VjdGlvbl9fY29sdW1uIHtcbiAgICAgICAgbWFyZ2luLXRvcDogNzBweDsgfSB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XG4gICAgICAudXBzZWxscy5zZWN0aW9uLS1jb2wtNCA+IC5zZWN0aW9uX19ib2R5ID4gLnNlY3Rpb25fX2NvbHVtbjpudGgtY2hpbGQoMSkgfiAuc2VjdGlvbl9fY29sdW1uLCAud29vY29tbWVyY2UuY29sdW1ucy00ID4gLnNlY3Rpb25fX2NvbHVtbjpudGgtY2hpbGQoMSkgfiAuc2VjdGlvbl9fY29sdW1uIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMzBweDsgfSB9XG5cbi5zZWN0aW9uLS1jb2wtMyA+IC5zZWN0aW9uX19ib2R5ID4gLnNlY3Rpb25fX2NvbHVtbiwgLndvb2NvbW1lcmNlLmNvbHVtbnMtMyA+IC5zZWN0aW9uX19jb2x1bW4ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4OiAwIDAgMzMuMzMzMzMlO1xuICBtYXgtd2lkdGg6IDMzLjMzMzMzJTtcbiAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gIG1heC13aWR0aDogMzMuMzMzMzMlO1xuICBtYXJnaW4tdG9wOiAwcHg7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuc2VjdGlvbi0tY29sLTMgPiAuc2VjdGlvbl9fYm9keSA+IC5zZWN0aW9uX19jb2x1bW4sIC53b29jb21tZXJjZS5jb2x1bW5zLTMgPiAuc2VjdGlvbl9fY29sdW1uIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtOyB9IH1cbiAgLnNlY3Rpb24tLWNvbC0zID4gLnNlY3Rpb25fX2JvZHkgPiAuc2VjdGlvbl9fY29sdW1uOm50aC1jaGlsZCgzKSB+IC5zZWN0aW9uX19jb2x1bW4sIC53b29jb21tZXJjZS5jb2x1bW5zLTMgPiAuc2VjdGlvbl9fY29sdW1uOm50aC1jaGlsZCgzKSB+IC5zZWN0aW9uX19jb2x1bW4ge1xuICAgIG1hcmdpbi10b3A6IDcwcHg7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgICAgIC51cHNlbGxzLnNlY3Rpb24tLWNvbC0zID4gLnNlY3Rpb25fX2JvZHkgPiAuc2VjdGlvbl9fY29sdW1uOm50aC1jaGlsZCgzKSB+IC5zZWN0aW9uX19jb2x1bW4sIC53b29jb21tZXJjZS5jb2x1bW5zLTMgPiAuc2VjdGlvbl9fY29sdW1uOm50aC1jaGlsZCgzKSB+IC5zZWN0aW9uX19jb2x1bW4ge1xuICAgICAgICBtYXJnaW4tdG9wOiAzMHB4OyB9IH1cbiAgLnNlY3Rpb24tLWNvbC0zID4gLnNlY3Rpb25fX2JvZHkgPiAuc2VjdGlvbl9fY29sdW1uLnNlY3Rpb25fX2NvbHVtbi0tMngsIC53b29jb21tZXJjZS5jb2x1bW5zLTMgPiAuc2VjdGlvbl9fY29sdW1uLnNlY3Rpb25fX2NvbHVtbi0tMngge1xuICAgIGZsZXg6IDAgMCA2Ni42NjY2NyU7XG4gICAgbWF4LXdpZHRoOiA2Ni42NjY2NyU7XG4gICAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgICBtYXgtd2lkdGg6IDY2LjY2NjY3JTsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAuc2VjdGlvbi0tY29sLTMgPiAuc2VjdGlvbl9fYm9keSA+IC5zZWN0aW9uX19jb2x1bW4uc2VjdGlvbl9fY29sdW1uLS0yeCwgLndvb2NvbW1lcmNlLmNvbHVtbnMtMyA+IC5zZWN0aW9uX19jb2x1bW4uc2VjdGlvbl9fY29sdW1uLS0yeCB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuXG4uc2VjdGlvbi0tbmFycm93LWNvbC5zZWN0aW9uLS1jb2wtMyA+IC5zZWN0aW9uX19ib2R5ID4gLnNlY3Rpb25fX2NvbHVtbiB7XG4gIGZsZXg6IDAgMCAzMCU7XG4gIG1heC13aWR0aDogMzAlO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgbWF4LXdpZHRoOiAzMCU7XG4gIG1hcmdpbi10b3A6IDBweDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5zZWN0aW9uLS1uYXJyb3ctY29sLnNlY3Rpb24tLWNvbC0zID4gLnNlY3Rpb25fX2JvZHkgPiAuc2VjdGlvbl9fY29sdW1uIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtOyB9IH1cbiAgLnNlY3Rpb24tLW5hcnJvdy1jb2wuc2VjdGlvbi0tY29sLTMgPiAuc2VjdGlvbl9fYm9keSA+IC5zZWN0aW9uX19jb2x1bW46bnRoLWNoaWxkKDMpIH4gLnNlY3Rpb25fX2NvbHVtbiB7XG4gICAgbWFyZ2luLXRvcDogNzBweDsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICAgICAgLnVwc2VsbHMuc2VjdGlvbi0tbmFycm93LWNvbC5zZWN0aW9uLS1jb2wtMyA+IC5zZWN0aW9uX19ib2R5ID4gLnNlY3Rpb25fX2NvbHVtbjpudGgtY2hpbGQoMykgfiAuc2VjdGlvbl9fY29sdW1uIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMzBweDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICAuc2VjdGlvbi0tY29sLTMgPiAuc2VjdGlvbl9fYm9keSAuc2VjdGlvbl9fY29sdW1uLCAud29vY29tbWVyY2UuY29sdW1ucy0zID4gLnNlY3Rpb25fX2NvbHVtbiB7XG4gICAgZmxleDogMCAwIDUwJTtcbiAgICBtYXgtd2lkdGg6IDUwJTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xuICAgIG1heC13aWR0aDogNTAlO1xuICAgIG1hcmdpbi10b3A6IDBweDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkgYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuc2VjdGlvbi0tY29sLTMgPiAuc2VjdGlvbl9fYm9keSAuc2VjdGlvbl9fY29sdW1uLCAud29vY29tbWVyY2UuY29sdW1ucy0zID4gLnNlY3Rpb25fX2NvbHVtbiB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICAgIC5zZWN0aW9uLS1jb2wtMyA+IC5zZWN0aW9uX19ib2R5IC5zZWN0aW9uX19jb2x1bW46bnRoLWNoaWxkKDIpIH4gLnNlY3Rpb25fX2NvbHVtbiwgLndvb2NvbW1lcmNlLmNvbHVtbnMtMyA+IC5zZWN0aW9uX19jb2x1bW46bnRoLWNoaWxkKDIpIH4gLnNlY3Rpb25fX2NvbHVtbiB7XG4gICAgICBtYXJnaW4tdG9wOiA3MHB4OyB9IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgICAgIC51cHNlbGxzLnNlY3Rpb24tLWNvbC0zID4gLnNlY3Rpb25fX2JvZHkgLnNlY3Rpb25fX2NvbHVtbjpudGgtY2hpbGQoMikgfiAuc2VjdGlvbl9fY29sdW1uLCAud29vY29tbWVyY2UuY29sdW1ucy0zID4gLnNlY3Rpb25fX2NvbHVtbjpudGgtY2hpbGQoMikgfiAuc2VjdGlvbl9fY29sdW1uIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMzBweDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICAgIC5zZWN0aW9uLS1jb2wtMyA+IC5zZWN0aW9uX19ib2R5IC5zZWN0aW9uX19jb2x1bW4uc2VjdGlvbl9fY29sdW1uLS0yeCwgLndvb2NvbW1lcmNlLmNvbHVtbnMtMyA+IC5zZWN0aW9uX19jb2x1bW4uc2VjdGlvbl9fY29sdW1uLS0yeCB7XG4gICAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgICAgIG1heC13aWR0aDogMTAwJTsgfSB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLnNlY3Rpb24tLWNvbC0zID4gLnNlY3Rpb25fX2JvZHkgLnNlY3Rpb25fX2NvbHVtbi5zZWN0aW9uX19jb2x1bW4tLTJ4LCAud29vY29tbWVyY2UuY29sdW1ucy0zID4gLnNlY3Rpb25fX2NvbHVtbi5zZWN0aW9uX19jb2x1bW4tLTJ4IHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICAuc2VjdGlvbi0tbmFycm93LWNvbC5zZWN0aW9uLS1jb2wtMyA+IC5zZWN0aW9uX19ib2R5ID4gLnNlY3Rpb25fX2NvbHVtbiB7XG4gICAgZmxleDogMCAwIDUwJTtcbiAgICBtYXgtd2lkdGg6IDUwJTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xuICAgIG1heC13aWR0aDogNTAlO1xuICAgIG1hcmdpbi10b3A6IDBweDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkgYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuc2VjdGlvbi0tbmFycm93LWNvbC5zZWN0aW9uLS1jb2wtMyA+IC5zZWN0aW9uX19ib2R5ID4gLnNlY3Rpb25fX2NvbHVtbiB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICAgIC5zZWN0aW9uLS1uYXJyb3ctY29sLnNlY3Rpb24tLWNvbC0zID4gLnNlY3Rpb25fX2JvZHkgPiAuc2VjdGlvbl9fY29sdW1uOm50aC1jaGlsZCgyKSB+IC5zZWN0aW9uX19jb2x1bW4ge1xuICAgICAgbWFyZ2luLXRvcDogNzBweDsgfSB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XG4gICAgICAudXBzZWxscy5zZWN0aW9uLS1uYXJyb3ctY29sLnNlY3Rpb24tLWNvbC0zID4gLnNlY3Rpb25fX2JvZHkgPiAuc2VjdGlvbl9fY29sdW1uOm50aC1jaGlsZCgyKSB+IC5zZWN0aW9uX19jb2x1bW4ge1xuICAgICAgICBtYXJnaW4tdG9wOiAzMHB4OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gIC5zZWN0aW9uLS1jb2wtMyA+IC5zZWN0aW9uX19ib2R5ID4gLnNlY3Rpb25fX2NvbHVtbiwgLndvb2NvbW1lcmNlLmNvbHVtbnMtMyA+IC5zZWN0aW9uX19jb2x1bW4ge1xuICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tdG9wOiAwcHg7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnNlY3Rpb24tLWNvbC0zID4gLnNlY3Rpb25fX2JvZHkgPiAuc2VjdGlvbl9fY29sdW1uLCAud29vY29tbWVyY2UuY29sdW1ucy0zID4gLnNlY3Rpb25fX2NvbHVtbiB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgIC5zZWN0aW9uLS1jb2wtMyA+IC5zZWN0aW9uX19ib2R5ID4gLnNlY3Rpb25fX2NvbHVtbjpudGgtY2hpbGQoMSkgfiAuc2VjdGlvbl9fY29sdW1uLCAud29vY29tbWVyY2UuY29sdW1ucy0zID4gLnNlY3Rpb25fX2NvbHVtbjpudGgtY2hpbGQoMSkgfiAuc2VjdGlvbl9fY29sdW1uIHtcbiAgICAgIG1hcmdpbi10b3A6IDcwcHg7IH0gfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkgYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICAgICAgLnVwc2VsbHMuc2VjdGlvbi0tY29sLTMgPiAuc2VjdGlvbl9fYm9keSA+IC5zZWN0aW9uX19jb2x1bW46bnRoLWNoaWxkKDEpIH4gLnNlY3Rpb25fX2NvbHVtbiwgLndvb2NvbW1lcmNlLmNvbHVtbnMtMyA+IC5zZWN0aW9uX19jb2x1bW46bnRoLWNoaWxkKDEpIH4gLnNlY3Rpb25fX2NvbHVtbiB7XG4gICAgICAgIG1hcmdpbi10b3A6IDMwcHg7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgLnNlY3Rpb24tLW5hcnJvdy1jb2wuc2VjdGlvbi0tY29sLTMgPiAuc2VjdGlvbl9fYm9keSA+IC5zZWN0aW9uX19jb2x1bW4ge1xuICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tdG9wOiAwcHg7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnNlY3Rpb24tLW5hcnJvdy1jb2wuc2VjdGlvbi0tY29sLTMgPiAuc2VjdGlvbl9fYm9keSA+IC5zZWN0aW9uX19jb2x1bW4ge1xuICAgICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAuc2VjdGlvbi0tbmFycm93LWNvbC5zZWN0aW9uLS1jb2wtMyA+IC5zZWN0aW9uX19ib2R5ID4gLnNlY3Rpb25fX2NvbHVtbjpudGgtY2hpbGQoMSkgfiAuc2VjdGlvbl9fY29sdW1uIHtcbiAgICAgIG1hcmdpbi10b3A6IDcwcHg7IH0gfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkgYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICAgICAgLnVwc2VsbHMuc2VjdGlvbi0tbmFycm93LWNvbC5zZWN0aW9uLS1jb2wtMyA+IC5zZWN0aW9uX19ib2R5ID4gLnNlY3Rpb25fX2NvbHVtbjpudGgtY2hpbGQoMSkgfiAuc2VjdGlvbl9fY29sdW1uIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMzBweDsgfSB9XG5cbi53b29jb21tZXJjZS5jb2x1bW5zLTMge1xuICBtYXgtd2lkdGg6IDkwcmVtO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwOyB9XG5cbi5zZWN0aW9uX19jb2x1bW4taW1hZ2Uge1xuICBtYXJnaW4tYm90dG9tOiAxM3B4OyB9XG5cbi5zZWN0aW9uX19jb2x1bW4tdGl0bGUge1xuICBmb250LXNpemU6IDI0cHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsZXR0ZXItc3BhY2luZzogLTAuNXB4O1xuICBjb2xvcjogIzA4MTMxZjsgfVxuICAuc2VjdGlvbi0tZGFyayAuc2VjdGlvbl9fY29sdW1uLXRpdGxlIHtcbiAgICBjb2xvcjogd2hpdGU7IH1cblxuLnNlY3Rpb25fX2NvbHVtbi1jb250ZW50IHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBsaW5lLWhlaWdodDogMS43O1xuICBjb2xvcjogcmdiYSg4LCAxOSwgMzEsIDAuNSk7IH1cbiAgLnNlY3Rpb24tLWRhcmsgLnNlY3Rpb25fX2NvbHVtbi1jb250ZW50IHtcbiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpOyB9XG5cbi5mb290ZXItc2VjdGlvbiB7XG4gIGJhY2tncm91bmQ6ICMyQzI5MzQ7XG4gIHBhZGRpbmc6IDYwcHggMDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAuZm9vdGVyLXNlY3Rpb24ge1xuICAgICAgcGFkZGluZy10b3A6IDBweDsgfSB9XG5cbi5mb290ZXItc2VjdGlvbl9fbWVudXMgPiAubWVudSB7XG4gIG1heC13aWR0aDogOTByZW07XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gIGZsZXg6IDEgMSAwcHg7XG4gIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xuICBtaW4td2lkdGg6IDA7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHJpZ2h0OiAtMiU7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuZm9vdGVyLXNlY3Rpb25fX21lbnVzID4gLm1lbnUge1xuICAgICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NC45Mzc1ZW0pIHtcbiAgICAuZm9vdGVyLXNlY3Rpb25fX21lbnVzID4gLm1lbnUge1xuICAgICAgcmlnaHQ6IDBweDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgIC5mb290ZXItc2VjdGlvbl9fbWVudXMgPiAubWVudSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgICAgcGFkZGluZzogMHB4OyB9IH1cbiAgLmZvb3Rlci1zZWN0aW9uX19tZW51cyA+IC5tZW51ID4gLm1lbnUtaXRlbSB7XG4gICAgZmxleDogMCAwIDE5LjA0NzYyJTtcbiAgICBtYXgtd2lkdGg6IDE5LjA0NzYyJTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xuICAgIG1heC13aWR0aDogMTkuMDQ3NjIlOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5mb290ZXItc2VjdGlvbl9fbWVudXMgPiAubWVudSA+IC5tZW51LWl0ZW0ge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtOyB9IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NC45Mzc1ZW0pIHtcbiAgICAgIC5mb290ZXItc2VjdGlvbl9fbWVudXMgPiAubWVudSA+IC5tZW51LWl0ZW0ge1xuICAgICAgICBmbGV4OiAwIDAgMjUlO1xuICAgICAgICBtYXgtd2lkdGg6IDI1JTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gICAgICAgIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gICAgICAgIG1heC13aWR0aDogMjUlOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzQuOTM3NWVtKSBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5mb290ZXItc2VjdGlvbl9fbWVudXMgPiAubWVudSA+IC5tZW51LWl0ZW0ge1xuICAgICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDUwZW0pIHtcbiAgICAgIC5mb290ZXItc2VjdGlvbl9fbWVudXMgPiAubWVudSA+IC5tZW51LWl0ZW0ge1xuICAgICAgICBmbGV4OiAwIDAgNTAlO1xuICAgICAgICBtYXgtd2lkdGg6IDUwJTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gICAgICAgIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gICAgICAgIG1heC13aWR0aDogNTAlOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTBlbSkgYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuZm9vdGVyLXNlY3Rpb25fX21lbnVzID4gLm1lbnUgPiAubWVudS1pdGVtIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtOyB9IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAgIC5mb290ZXItc2VjdGlvbl9fbWVudXMgPiAubWVudSA+IC5tZW51LWl0ZW0ge1xuICAgICAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0xMHB4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC0xMHB4OyB9XG4gICAgICAgIC5mb290ZXItc2VjdGlvbl9fbWVudXMgPiAubWVudSA+IC5tZW51LWl0ZW0ubWVudS1pdGVtLWhhcy1jaGlsZHJlbiA+IGEge1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgICAgICAgIC5mb290ZXItc2VjdGlvbl9fbWVudXMgPiAubWVudSA+IC5tZW51LWl0ZW0ubWVudS1pdGVtLWhhcy1jaGlsZHJlbiA+IGE6YmVmb3JlIHtcbiAgICAgICAgICAgIC8qIHVzZSAhaW1wb3J0YW50IHRvIHByZXZlbnQgaXNzdWVzIHdpdGggYnJvd3NlciBleHRlbnNpb25zIHRoYXQgY2hhbmdlIGZvbnRzICovXG4gICAgICAgICAgICBmb250LWZhbWlseTogJ2ljb21vb24nICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBzcGVhazogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgICAgICAvKiBCZXR0ZXIgRm9udCBSZW5kZXJpbmcgPT09PT09PT09PT0gKi9cbiAgICAgICAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgICAgICAgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwi7qSAXCI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBmb250LXNpemU6IDQwcHg7XG4gICAgICAgICAgICByaWdodDogMjBweDtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHNjYWxlWSgtMSk7XG4gICAgICAgICAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3M7IH1cbiAgICAgICAgLmZvb3Rlci1zZWN0aW9uX19tZW51cyA+IC5tZW51ID4gLm1lbnUtaXRlbS5zdWItbWVudS1vcGVuLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4gPiBhOmJlZm9yZSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgIGNvbG9yOiB3aGl0ZTsgfSB9XG4gICAgLmZvb3Rlci1zZWN0aW9uX19tZW51cyA+IC5tZW51ID4gLm1lbnUtaXRlbSA+IGEge1xuICAgICAgZm9udC1zaXplOiAyMnB4O1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBsaW5lLWhlaWdodDogMS44MjtcbiAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgcGFkZGluZy1ib3R0b206IDRweDtcbiAgICAgIG91dGxpbmU6IG5vbmU7IH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgICAgICAuZm9vdGVyLXNlY3Rpb25fX21lbnVzID4gLm1lbnUgPiAubWVudS1pdGVtID4gYSB7XG4gICAgICAgICAgZm9udC1zaXplOiAyNXB4O1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgIHBhZGRpbmc6IDExcHg7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMzRDNBNDM7IH0gfVxuICAgIC5mb290ZXItc2VjdGlvbl9fbWVudXMgPiAubWVudSA+IC5tZW51LWl0ZW0gPiAuc3ViLW1lbnUge1xuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgIG1hcmdpbjogMDsgfVxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgICAuZm9vdGVyLXNlY3Rpb25fX21lbnVzID4gLm1lbnUgPiAubWVudS1pdGVtID4gLnN1Yi1tZW51IHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9IH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgICAgICAuZm9vdGVyLXNlY3Rpb25fX21lbnVzID4gLm1lbnUgPiAubWVudS1pdGVtID4gLnN1Yi1tZW51IHtcbiAgICAgICAgICBtYXgtd2lkdGg6IDkwcmVtO1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMzRDNBNDM7XG4gICAgICAgICAgcGFkZGluZy10b3A6IDEwcHg7XG4gICAgICAgICAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgICAgICAgLmZvb3Rlci1zZWN0aW9uX19tZW51cyA+IC5tZW51ID4gLm1lbnUtaXRlbSA+IC5zdWItbWVudTpiZWZvcmUge1xuICAgICAgICAgICAgLyogUGVybWFsaW5rIC0gdXNlIHRvIGVkaXQgYW5kIHNoYXJlIHRoaXMgZ3JhZGllbnQ6IGh0dHBzOi8vY29sb3J6aWxsYS5jb20vZ3JhZGllbnQtZWRpdG9yLyMxZTU3OTkrMCw3ZGI5ZTgrMTAwICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjRUUxQkI2O1xuICAgICAgICAgICAgLyogT2xkIGJyb3dzZXJzICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudChsZWZ0LCAjRUUxQkI2IDAlLCAjNzk4M0ZGIDEwMCUpO1xuICAgICAgICAgICAgLyogRkYzLjYtMTUgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQsICNFRTFCQjYgMCUsICM3OTgzRkYgMTAwJSk7XG4gICAgICAgICAgICAvKiBDaHJvbWUxMC0yNSxTYWZhcmk1LjEtNiAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjRUUxQkI2IDAlLCAjNzk4M0ZGIDEwMCUpO1xuICAgICAgICAgICAgLyogVzNDLCBJRTEwKywgRkYxNissIENocm9tZTI2KywgT3BlcmExMissIFNhZmFyaTcrICovXG4gICAgICAgICAgICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudCggc3RhcnRDb2xvcnN0cj0nI0VFMUJCNicsIGVuZENvbG9yc3RyPScjNzk4M0ZGJyxHcmFkaWVudFR5cGU9MSApO1xuICAgICAgICAgICAgLyogSUU2LTkgKi9cbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7IH0gfVxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgICAgIC5mb290ZXItc2VjdGlvbl9fbWVudXMgPiAubWVudSA+IC5tZW51LWl0ZW0gPiAuc3ViLW1lbnUgPiAubWVudS1pdGVtIHtcbiAgICAgICAgICBmbGV4OiAwIDAgNTAlO1xuICAgICAgICAgIG1heC13aWR0aDogNTAlO1xuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gICAgICAgICAgbWF4LXdpZHRoOiA1MCU7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmZvb3Rlci1zZWN0aW9uX19tZW51cyA+IC5tZW51ID4gLm1lbnUtaXRlbSA+IC5zdWItbWVudSA+IC5tZW51LWl0ZW0ge1xuICAgICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuICAgICAgLmZvb3Rlci1zZWN0aW9uX19tZW51cyA+IC5tZW51ID4gLm1lbnUtaXRlbSA+IC5zdWItbWVudSA+IC5tZW51LWl0ZW0gPiBhIHtcbiAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgcGFkZGluZy10b3A6IDEwcHg7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAxMHB4OyB9XG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgICAgICAgIC5mb290ZXItc2VjdGlvbl9fbWVudXMgPiAubWVudSA+IC5tZW51LWl0ZW0gPiAuc3ViLW1lbnUgPiAubWVudS1pdGVtID4gYSB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMjBweDtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyMHB4O1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH0gfVxuXG4uZm9vdGVyLXNlY3Rpb25fX3NvY2lhbCB7XG4gIG1heC13aWR0aDogOTByZW07XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gIGZsZXg6IDEgMSAwcHg7XG4gIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xuICBtaW4td2lkdGg6IDA7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG4gIG1hcmdpbi1ib3R0b206IDM1cHg7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuZm9vdGVyLXNlY3Rpb25fX3NvY2lhbCB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgIC5mb290ZXItc2VjdGlvbl9fc29jaWFsIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7IH0gfVxuICAuZm9vdGVyLXNlY3Rpb25fX3NvY2lhbCB1bCB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLmZvb3Rlci1zZWN0aW9uX19zb2NpYWwgdWwgbGkge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgcGFkZGluZzogMCAxM3B4OyB9XG4gICAgICAuZm9vdGVyLXNlY3Rpb25fX3NvY2lhbCB1bCBsaSBhIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBjb2xvcjogIzc5ODNGRjtcbiAgICAgICAgZm9udC1zaXplOiAyMnB4O1xuICAgICAgICBwYWRkaW5nOiAxMHB4OyB9XG5cbi5mb290ZXItc2VjdGlvbl9fc29jaWFsLWZhY2Vib29rIGE6YmVmb3JlIHtcbiAgLyogdXNlICFpbXBvcnRhbnQgdG8gcHJldmVudCBpc3N1ZXMgd2l0aCBicm93c2VyIGV4dGVuc2lvbnMgdGhhdCBjaGFuZ2UgZm9udHMgKi9cbiAgZm9udC1mYW1pbHk6ICdpY29tb29uJyAhaW1wb3J0YW50O1xuICBzcGVhazogbm9uZTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICAvKiBCZXR0ZXIgRm9udCBSZW5kZXJpbmcgPT09PT09PT09PT0gKi9cbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIGNvbnRlbnQ6IFwi7qSHXCI7IH1cblxuLmZvb3Rlci1zZWN0aW9uX19zb2NpYWwtdHdpdHRlciBhOmJlZm9yZSB7XG4gIC8qIHVzZSAhaW1wb3J0YW50IHRvIHByZXZlbnQgaXNzdWVzIHdpdGggYnJvd3NlciBleHRlbnNpb25zIHRoYXQgY2hhbmdlIGZvbnRzICovXG4gIGZvbnQtZmFtaWx5OiAnaWNvbW9vbicgIWltcG9ydGFudDtcbiAgc3BlYWs6IG5vbmU7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBsaW5lLWhlaWdodDogMTtcbiAgLyogQmV0dGVyIEZvbnQgUmVuZGVyaW5nID09PT09PT09PT09ICovXG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICBjb250ZW50OiBcIu6kglwiOyB9XG5cbi5mb290ZXItc2VjdGlvbl9fc29jaWFsLWluc3RhZ3JhbSBhOmJlZm9yZSB7XG4gIC8qIHVzZSAhaW1wb3J0YW50IHRvIHByZXZlbnQgaXNzdWVzIHdpdGggYnJvd3NlciBleHRlbnNpb25zIHRoYXQgY2hhbmdlIGZvbnRzICovXG4gIGZvbnQtZmFtaWx5OiAnaWNvbW9vbicgIWltcG9ydGFudDtcbiAgc3BlYWs6IG5vbmU7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBsaW5lLWhlaWdodDogMTtcbiAgLyogQmV0dGVyIEZvbnQgUmVuZGVyaW5nID09PT09PT09PT09ICovXG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICBjb250ZW50OiBcIu6kiVwiOyB9XG5cbi5mb290ZXItc2VjdGlvbl9fc29jaWFsLXBpbnRlcmVzdCBhOmJlZm9yZSB7XG4gIC8qIHVzZSAhaW1wb3J0YW50IHRvIHByZXZlbnQgaXNzdWVzIHdpdGggYnJvd3NlciBleHRlbnNpb25zIHRoYXQgY2hhbmdlIGZvbnRzICovXG4gIGZvbnQtZmFtaWx5OiAnaWNvbW9vbicgIWltcG9ydGFudDtcbiAgc3BlYWs6IG5vbmU7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBsaW5lLWhlaWdodDogMTtcbiAgLyogQmV0dGVyIEZvbnQgUmVuZGVyaW5nID09PT09PT09PT09ICovXG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICBjb250ZW50OiBcIu6khVwiOyB9XG5cbi5mb290ZXItc2VjdGlvbl9fY29weXJpZ2h0LXJvdyB7XG4gIG1heC13aWR0aDogOTByZW07XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gIGZsZXg6IDEgMSAwcHg7XG4gIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xuICBtaW4td2lkdGg6IDA7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuZm9vdGVyLXNlY3Rpb25fX2NvcHlyaWdodC1yb3cge1xuICAgICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuXG4uZm9vdGVyLXNlY3Rpb25fX2NvcHlyaWdodCB7XG4gIHdpZHRoOiA5MDBweDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDAgYXV0bztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBvcGFjaXR5OiAwLjU7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgY29sb3I6ICNmZmZmZmY7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgLmZvb3Rlci1zZWN0aW9uX19jb3B5cmlnaHQge1xuICAgICAgZm9udC1zaXplOiAxM3B4OyB9IH1cblxuLmJyYW5kcy1zZWN0aW9uID4gKjpsYXN0LWNoaWxkIHtcbiAgcGFkZGluZy1ib3R0b206IDBweDsgfVxuXG4uYnJhbmRzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgaGVpZ2h0OiAxMDAwcHg7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuYnJhbmRzIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgICAgLmJyYW5kczpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBoZWlnaHQ6IDkwcHg7XG4gICAgICAgIHRvcDogMHB4O1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiAxMDAlIDEwMCU7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGVZKC0xKSBzY2FsZVgoMSkgO1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgIGhlaWdodD0nNTAnIHdpZHRoPSc0MDAnIHByZXNlcnZlQXNwZWN0UmF0aW89J25vbmUnJTNFXFxhICAgICAgICAgICAlM0Nwb2x5Z29uIHBvaW50cz0nMzIwLDIwIDQwMCw1MCAwLDUwJyBzdHlsZT0nZmlsbDolMjNlOGU4ZTg7JyAvJTNFXFxhICAgICAgICAgJTNDL3N2ZyUzRVwiKTsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgIC5icmFuZHMge1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIHBhZGRpbmctYm90dG9tOiAyMHB4OyB9IH1cblxuLmJyYW5kc19fc2VjdGlvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgLmJyYW5kc19fc2VjdGlvbiB7XG4gICAgICBmbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfSB9XG4gIC5icmFuZHNfX3NlY3Rpb24gPiAuYnJhbmRzX19zZWN0aW9uIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93OyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgICAuYnJhbmRzX19zZWN0aW9uID4gLmJyYW5kc19fc2VjdGlvbiB7XG4gICAgICAgIGZsZXg6IDEgIWltcG9ydGFudDsgfSB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzQuOTM3NWVtKSB7XG4gICAgICAuYnJhbmRzX19zZWN0aW9uID4gLmJyYW5kc19fc2VjdGlvbiB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH0gfVxuICAgIC5icmFuZHNfX3NlY3Rpb24gPiAuYnJhbmRzX19zZWN0aW9uID4gLmJyYW5kc19fc2VjdGlvbiB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAgICAgLmJyYW5kc19fc2VjdGlvbiA+IC5icmFuZHNfX3NlY3Rpb24gPiAuYnJhbmRzX19zZWN0aW9uIHtcbiAgICAgICAgICBmbGV4OiAxICFpbXBvcnRhbnQ7IH0gfVxuXG4uYnJhbmRzX19pdGVtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgLmJyYW5kc19faXRlbSB7XG4gICAgICBtYXJnaW46IDEwcHggMjBweDtcbiAgICAgIHBhZGRpbmctdG9wOiAxMDBweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgICAgIGZsZXg6IDEgIWltcG9ydGFudDsgfSB9XG5cbi5icmFuZHNfX2l0ZW0tY29udGVudCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZy1ib3R0b206IDUwcHg7XG4gIHBhZGRpbmctdG9wOiA1MHB4OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgIC5icmFuZHNfX2l0ZW0tY29udGVudCB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMzBweDsgfSB9XG4gIC5icmFuZHNfX2l0ZW0tY29udGVudCAuYnV0dG9uIHtcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgY29sb3I6ICMyQzI5MzQ7IH1cbiAgICAuYnJhbmRzX19pdGVtLWNvbnRlbnQgLmJ1dHRvbjpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHotaW5kZXg6IDI7XG4gICAgICB0b3A6IDBweDtcbiAgICAgIGxlZnQ6IDBweDtcbiAgICAgIHJpZ2h0OiAwcHg7XG4gICAgICBib3R0b206IDBweDtcbiAgICAgIGJvcmRlcjogN3B4IHNvbGlkICNFRTFCQjY7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4yNXMgZWFzZS1vdXQsIGNvbG9yIDAuMjVzIGVhc2Utb3V0OyB9XG4gICAgLmJyYW5kc19faXRlbS1jb250ZW50IC5idXR0b246YWZ0ZXIge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMHB4O1xuICAgICAgbGVmdDogMHB4O1xuICAgICAgcmlnaHQ6IDBweDtcbiAgICAgIGJvdHRvbTogMHB4O1xuICAgICAgYm9yZGVyOiAycHggc29saWQgd2hpdGU7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg0cHgsIDRweCk7IH1cbiAgICAuYnJhbmRzX19pdGVtLWNvbnRlbnQgLmJ1dHRvbjpiZWZvcmUge1xuICAgICAgYm9yZGVyLWNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50OyB9XG4gICAgLmJyYW5kc19faXRlbS1jb250ZW50IC5idXR0b246YWN0aXZlLCAuYnJhbmRzX19pdGVtLWNvbnRlbnQgLmJ1dHRvbjpmb2N1cywgLmJyYW5kc19faXRlbS1jb250ZW50IC5idXR0b246aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogI2U2ZTZlNjtcbiAgICAgIGNvbG9yOiAjMkMyOTM0OyB9XG4gICAgICAuYnJhbmRzX19pdGVtLWNvbnRlbnQgLmJ1dHRvbjphY3RpdmU6YmVmb3JlLCAuYnJhbmRzX19pdGVtLWNvbnRlbnQgLmJ1dHRvbjpmb2N1czpiZWZvcmUsIC5icmFuZHNfX2l0ZW0tY29udGVudCAuYnV0dG9uOmhvdmVyOmJlZm9yZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogI2U2ZTZlNiAhaW1wb3J0YW50OyB9XG5cbi5icmFuZHNfX2l0ZW0tdGl0bGUge1xuICBmb250LXNpemU6IDUxcHg7XG4gIGZvbnQtd2VpZ2h0OiA4MDA7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBsZXR0ZXItc3BhY2luZzogLTAuNXB4O1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAuYnJhbmRzX19pdGVtLXRpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogMzVweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuODM7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBjb2xvcjogI2ZmZmZmZjsgfSB9XG5cbmJvZHkud29vY29tbWVyY2UtY2hlY2tvdXQgLnNlY3Rpb25fX2NvbHVtbiB7XG4gIG1heC13aWR0aDogNjAwcHggIWltcG9ydGFudDtcbiAgbWFyZ2luOiAwIGF1dG87IH1cblxuYm9keS53b29jb21tZXJjZS1jaGVja291dCAuZm9ybS1yb3cgPiBsYWJlbCB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY29sb3I6ICMyYzI5MzQ7IH1cblxuYm9keS53b29jb21tZXJjZS1jaGVja291dCAuZm9ybS1yb3cgYWJiciwgYm9keS53b29jb21tZXJjZS1jaGVja291dCAuZm9ybS1yb3cgYWJiclt0aXRsZV0ge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGN1cnNvcjogdW5zZXQ7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7IH1cblxuYm9keS53b29jb21tZXJjZS1jaGVja291dCAud29vY29tbWVyY2UtZm9ybS1jb3Vwb24tdG9nZ2xlIHtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDsgfVxuICBib2R5Lndvb2NvbW1lcmNlLWNoZWNrb3V0IC53b29jb21tZXJjZS1mb3JtLWNvdXBvbi10b2dnbGUgLndvb2NvbW1lcmNlLWluZm8ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgY29sb3I6IHdoaXRlOyB9XG4gICAgYm9keS53b29jb21tZXJjZS1jaGVja291dCAud29vY29tbWVyY2UtZm9ybS1jb3Vwb24tdG9nZ2xlIC53b29jb21tZXJjZS1pbmZvIGEge1xuICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cblxuYm9keS53b29jb21tZXJjZS1jaGVja291dCAud29vY29tbWVyY2UtY2hlY2tvdXQtcmV2aWV3LW9yZGVyLXRhYmxlIGRsLnZhcmlhdGlvbiBkdC52YXJpYXRpb24tTW9kZWwge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbmJvZHkud29vY29tbWVyY2UtY2hlY2tvdXQgLndvb2NvbW1lcmNlLWZvcm0tY291cG9uIC5mb3JtLXJvdyB7XG4gIHRleHQtYWxpZ246IHJpZ2h0OyB9XG5cbmJvZHkud29vY29tbWVyY2UtY2hlY2tvdXQgI29yZGVyX3Jldmlld19oZWFkaW5nLCBib2R5Lndvb2NvbW1lcmNlLWNoZWNrb3V0IC53b29jb21tZXJjZS1iaWxsaW5nLWZpZWxkcyA+IGgzLCBib2R5Lndvb2NvbW1lcmNlLWNoZWNrb3V0ICNvcmRlcl9yZXZpZXcgaDMge1xuICBmb250LXNpemU6IDI4cHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBsZXR0ZXItc3BhY2luZzogLTAuNXB4O1xuICBjb2xvcjogIzA4MTMxZjtcbiAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgbWFyZ2luLXRvcDogNDBweDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDsgfVxuXG5ib2R5Lndvb2NvbW1lcmNlLWNoZWNrb3V0IC53b29jb21tZXJjZS1jaGVja291dC1wYXltZW50IHtcbiAgbWFyZ2luLXRvcDogMjBweDsgfVxuXG5ib2R5Lndvb2NvbW1lcmNlLWNoZWNrb3V0IC53Y19wYXltZW50X21ldGhvZHMge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW4tbGVmdDogMDsgfVxuICBib2R5Lndvb2NvbW1lcmNlLWNoZWNrb3V0IC53Y19wYXltZW50X21ldGhvZHMgLnBheW1lbnRfbWV0aG9kX3N0cmlwZSA+IGxhYmVsIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG5cblt0eXBlPSd0ZXh0J10sIFt0eXBlPSdwYXNzd29yZCddLCBbdHlwZT0nZGF0ZSddLCBbdHlwZT0nZGF0ZXRpbWUnXSwgW3R5cGU9J2RhdGV0aW1lLWxvY2FsJ10sIFt0eXBlPSdtb250aCddLCBbdHlwZT0nd2VlayddLCBbdHlwZT0nZW1haWwnXSwgW3R5cGU9J251bWJlciddLCBbdHlwZT0nc2VhcmNoJ10sIFt0eXBlPSd0ZWwnXSwgW3R5cGU9J3RpbWUnXSwgW3R5cGU9J3VybCddLCBbdHlwZT0nY29sb3InXSxcbnRleHRhcmVhIHtcbiAgbWluLWhlaWdodDogNTRweDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBib3JkZXI6IHNvbGlkIDFweCAjZDNkZWUzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBvdXRsaW5lOiBub25lO1xuICBib3gtc2hhZG93OiBub25lO1xuICBwYWRkaW5nOiA1cHggMTVweDtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBsaW5lLWhlaWdodDogMS42O1xuICBsZXR0ZXItc3BhY2luZzogMC4yMnB4O1xuICBjb2xvcjogIzJjMjkzNDtcbiAgbWFyZ2luLWJvdHRvbTogMHB4OyB9XG5cbi8qIFNlbGVjdDIgKi9cbi5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdCAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZSAuc2VsZWN0Mi1zZWxlY3Rpb25fX2Fycm93IHtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsgfVxuXG4uc2VsZWN0Mi1jb250YWluZXItLWRlZmF1bHQgLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGUge1xuICBtaW4taGVpZ2h0OiA1NHB4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJvcmRlcjogc29saWQgMXB4ICNkM2RlZTM7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7IH1cbiAgLnNlbGVjdDItY29udGFpbmVyLS1kZWZhdWx0IC5zZWxlY3QyLXNlbGVjdGlvbi0tc2luZ2xlOmZvY3VzIHtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYm9yZGVyOiBzb2xpZCAxcHggI2QzZGVlMzsgfVxuXG4uc2VsZWN0Mi1jb250YWluZXItLWRlZmF1bHQgLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGUgLnNlbGVjdDItc2VsZWN0aW9uX19yZW5kZXJlZCB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMjJweDtcbiAgY29sb3I6IHJnYmEoOCwgMTksIDMxLCAwLjMpO1xuICBtYXJnaW4tYm90dG9tOiAwcHg7IH1cblxuLnNlbGVjdDItZHJvcGRvd24ge1xuICBib3JkZXItY29sb3I6ICNkM2RlZTM7IH1cblxuLnNlbGVjdDItY29udGFpbmVyLS1kZWZhdWx0IC5zZWxlY3QyLXNlYXJjaC0tZHJvcGRvd24gLnNlbGVjdDItc2VhcmNoX19maWVsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYm9yZGVyOiBzb2xpZCAxcHggI2QzZGVlMztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgb3V0bGluZTogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBsaW5lLWhlaWdodDogMS42O1xuICBsZXR0ZXItc3BhY2luZzogMC4yMnB4O1xuICBjb2xvcjogcmdiYSg4LCAxOSwgMzEsIDAuMyk7IH1cblxuLnNxdWlwLWNvbW11bml0eSA+ICo6Zmlyc3QtY2hpbGQge1xuICBwYWRkaW5nLXRvcDogMHB4OyB9XG5cbi5zcXVpcC1jb21tdW5pdHkgPiAqOmxhc3QtY2hpbGQge1xuICBwYWRkaW5nLWJvdHRvbTogMHB4OyB9XG5cbi5zcXVpcC1jb21tdW5pdHlfX3NvY2lhbCB7XG4gIG1heC13aWR0aDogOTByZW07XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gIG1heC13aWR0aDogaW5pdGlhbDtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLnNxdWlwLWNvbW11bml0eV9fc29jaWFsLWl0ZW0ge1xuICBmbGV4OiAwIDAgMjUlO1xuICBtYXgtd2lkdGg6IDI1JTtcbiAgcGFkZGluZy1yaWdodDogMDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBtYXgtd2lkdGg6IDI1JTtcbiAgaGVpZ2h0OiAzNXZ3O1xuICBtaW4taGVpZ2h0OiAyMDBweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgICAuc3F1aXAtY29tbXVuaXR5X19zb2NpYWwtaXRlbSB7XG4gICAgICBmbGV4OiAwIDAgNTAlO1xuICAgICAgbWF4LXdpZHRoOiA1MCU7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgbWF4LXdpZHRoOiA1MCU7IH0gfVxuXG4uc3F1aXAtY29tbXVuaXR5X19zb2NpYWwtdGl0bGUge1xuICBmb250LXNpemU6IDM5cHg7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjY0O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBtYXJnaW4tdG9wOiA1MHB4OyB9XG4gIC5zcXVpcC1jb21tdW5pdHlfX3NvY2lhbC1pdGVtLS1mYiAuc3F1aXAtY29tbXVuaXR5X19zb2NpYWwtdGl0bGU6YmVmb3JlIHtcbiAgICAvKiB1c2UgIWltcG9ydGFudCB0byBwcmV2ZW50IGlzc3VlcyB3aXRoIGJyb3dzZXIgZXh0ZW5zaW9ucyB0aGF0IGNoYW5nZSBmb250cyAqL1xuICAgIGZvbnQtZmFtaWx5OiAnaWNvbW9vbicgIWltcG9ydGFudDtcbiAgICBzcGVhazogbm9uZTtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICAvKiBCZXR0ZXIgRm9udCBSZW5kZXJpbmcgPT09PT09PT09PT0gKi9cbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAgIGNvbnRlbnQ6IFwi7qSHXCI7IH1cbiAgLnNxdWlwLWNvbW11bml0eV9fc29jaWFsLWl0ZW0tLXR3IC5zcXVpcC1jb21tdW5pdHlfX3NvY2lhbC10aXRsZTpiZWZvcmUge1xuICAgIC8qIHVzZSAhaW1wb3J0YW50IHRvIHByZXZlbnQgaXNzdWVzIHdpdGggYnJvd3NlciBleHRlbnNpb25zIHRoYXQgY2hhbmdlIGZvbnRzICovXG4gICAgZm9udC1mYW1pbHk6ICdpY29tb29uJyAhaW1wb3J0YW50O1xuICAgIHNwZWFrOiBub25lO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIC8qIEJldHRlciBGb250IFJlbmRlcmluZyA9PT09PT09PT09PSAqL1xuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gICAgY29udGVudDogXCLupIJcIjsgfVxuICAuc3F1aXAtY29tbXVuaXR5X19zb2NpYWwtaXRlbS0taW4gLnNxdWlwLWNvbW11bml0eV9fc29jaWFsLXRpdGxlOmJlZm9yZSB7XG4gICAgLyogdXNlICFpbXBvcnRhbnQgdG8gcHJldmVudCBpc3N1ZXMgd2l0aCBicm93c2VyIGV4dGVuc2lvbnMgdGhhdCBjaGFuZ2UgZm9udHMgKi9cbiAgICBmb250LWZhbWlseTogJ2ljb21vb24nICFpbXBvcnRhbnQ7XG4gICAgc3BlYWs6IG5vbmU7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgLyogQmV0dGVyIEZvbnQgUmVuZGVyaW5nID09PT09PT09PT09ICovXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgICBjb250ZW50OiBcIu6kiVwiOyB9XG4gIC5zcXVpcC1jb21tdW5pdHlfX3NvY2lhbC1pdGVtLS1waSAuc3F1aXAtY29tbXVuaXR5X19zb2NpYWwtdGl0bGU6YmVmb3JlIHtcbiAgICAvKiB1c2UgIWltcG9ydGFudCB0byBwcmV2ZW50IGlzc3VlcyB3aXRoIGJyb3dzZXIgZXh0ZW5zaW9ucyB0aGF0IGNoYW5nZSBmb250cyAqL1xuICAgIGZvbnQtZmFtaWx5OiAnaWNvbW9vbicgIWltcG9ydGFudDtcbiAgICBzcGVhazogbm9uZTtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICAvKiBCZXR0ZXIgRm9udCBSZW5kZXJpbmcgPT09PT09PT09PT0gKi9cbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAgIGNvbnRlbnQ6IFwi7qSFXCI7IH1cbiAgLnNxdWlwLWNvbW11bml0eV9fc29jaWFsLXRpdGxlOmJlZm9yZSB7XG4gICAgZm9udC1zaXplOiAxMDBweDtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogMzBweDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgICAuc3F1aXAtY29tbXVuaXR5X19zb2NpYWwtdGl0bGUge1xuICAgICAgZm9udC1zaXplOiAyNXB4O1xuICAgICAgbWFyZ2luLXRvcDogMzVweDsgfVxuICAgICAgLnNxdWlwLWNvbW11bml0eV9fc29jaWFsLXRpdGxlOmJlZm9yZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogNzBweDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgIC5zcXVpcC1jb21tdW5pdHlfX3NvY2lhbC10aXRsZTpiZWZvcmUge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgIGZvbnQtc2l6ZTogNjRweDsgfSB9XG5cbi5oZXJvIHtcbiAgcGFkZGluZy1ib3R0b206IDEwMHB4O1xuICBwYWRkaW5nLXRvcDogNTBweDtcbiAgb3ZlcmZsb3c6IHZpc2libGU7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgLmhlcm8ge1xuICAgICAgcGFkZGluZy10b3A6IDBweDsgfSB9XG5cbi5oZXJvX19jb250YWluZXIge1xuICBtYXgtd2lkdGg6IDkwcmVtO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwOyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAuaGVyb19fZG90cyB7XG4gICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbi5oZXJvX19jYXJvdXNlbCAub3dsLXN0YWdlLW91dGVyIHtcbiAgcGFkZGluZy10b3A6IDEyMHB4O1xuICBtYXJnaW4tdG9wOiAtMTIwcHg7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgLmhlcm9fX2Nhcm91c2VsIC5vd2wtc3RhZ2Utb3V0ZXIge1xuICAgICAgbWFyZ2luLXRvcDogLTE0MHB4OyB9IH1cblxuLmhlcm9fX2Nhcm91c2VsIC5vd2wtaXRlbTpudGgtY2hpbGQoMykgLm93bC1kb3RzIC5vd2wtZG90Om50aC1jaGlsZCgxKSB7XG4gIGJhY2tncm91bmQ6ICMyQzI5MzQ7IH1cblxuLmhlcm9fX2Nhcm91c2VsIC5vd2wtaXRlbTpudGgtY2hpbGQoNCkgLm93bC1kb3RzIC5vd2wtZG90Om50aC1jaGlsZCgyKSB7XG4gIGJhY2tncm91bmQ6ICMyQzI5MzQ7IH1cblxuLmhlcm9fX2Nhcm91c2VsIC5vd2wtaXRlbTpudGgtY2hpbGQoNSkgLm93bC1kb3RzIC5vd2wtZG90Om50aC1jaGlsZCgzKSB7XG4gIGJhY2tncm91bmQ6ICMyQzI5MzQ7IH1cblxuLmhlcm9fX2Nhcm91c2VsIC5vd2wtaXRlbTpudGgtY2hpbGQoNikgLm93bC1kb3RzIC5vd2wtZG90Om50aC1jaGlsZCg0KSB7XG4gIGJhY2tncm91bmQ6ICMyQzI5MzQ7IH1cblxuLmhlcm9fX2Nhcm91c2VsIC5vd2wtaXRlbTpudGgtY2hpbGQoNykgLm93bC1kb3RzIC5vd2wtZG90Om50aC1jaGlsZCg1KSB7XG4gIGJhY2tncm91bmQ6ICMyQzI5MzQ7IH1cblxuLmhlcm9fX2Nhcm91c2VsIC5vd2wtaXRlbTpudGgtY2hpbGQoOCkgLm93bC1kb3RzIC5vd2wtZG90Om50aC1jaGlsZCg2KSB7XG4gIGJhY2tncm91bmQ6ICMyQzI5MzQ7IH1cblxuLmhlcm9fX2Nhcm91c2VsIC5vd2wtaXRlbTpudGgtY2hpbGQoOSkgLm93bC1kb3RzIC5vd2wtZG90Om50aC1jaGlsZCg3KSB7XG4gIGJhY2tncm91bmQ6ICMyQzI5MzQ7IH1cblxuLmhlcm9fX2Nhcm91c2VsIC5vd2wtZG90cyB7XG4gIG1hcmdpbi10b3A6IDE1JTtcbiAgd2lkdGg6IDUzMHB4O1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7IH1cbiAgLmhlcm9fX2Nhcm91c2VsIC5vd2wtZG90cyAub3dsLWRvdCB7XG4gICAgaGVpZ2h0OiA2cHg7XG4gICAgZmxleDogMTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDQ0LCA0MSwgNTIsIDAuMik7XG4gICAgbWFyZ2luLXJpZ2h0OiAxNXB4OyB9XG4gICAgLmhlcm9fX2Nhcm91c2VsIC5vd2wtZG90cyAub3dsLWRvdC5hY3RpdmUge1xuICAgICAgYmFja2dyb3VuZDogIzJDMjkzNDsgfVxuXG4uaGVyb19fY2Fyb3VzZWwgPiAub3dsLWRvdHMge1xuICBtYXJnaW4tdG9wOiAwcHg7XG4gIHBhZGRpbmctbGVmdDogMjVweDtcbiAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5oZXJvX19jYXJvdXNlbCA+IC5vd2wtZG90cyB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gIC5oZXJvX19jYXJvdXNlbCAub3dsLW5hdiB7XG4gICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbi5oZXJvX19jYXJvdXNlbCAub3dsLW5hdiAub3dsLXByZXYsIC5oZXJvX19jYXJvdXNlbCAub3dsLW5hdiAub3dsLW5leHQge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA0NSU7IH1cbiAgLmhlcm9fX2Nhcm91c2VsIC5vd2wtbmF2IC5vd2wtcHJldi5vd2wtcHJldiwgLmhlcm9fX2Nhcm91c2VsIC5vd2wtbmF2IC5vd2wtbmV4dC5vd2wtcHJldiB7XG4gICAgbGVmdDogMTBweDsgfVxuICAgIC5oZXJvX19jYXJvdXNlbCAub3dsLW5hdiAub3dsLXByZXYub3dsLXByZXY6YmVmb3JlLCAuaGVyb19fY2Fyb3VzZWwgLm93bC1uYXYgLm93bC1uZXh0Lm93bC1wcmV2OmJlZm9yZSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAvKiB1c2UgIWltcG9ydGFudCB0byBwcmV2ZW50IGlzc3VlcyB3aXRoIGJyb3dzZXIgZXh0ZW5zaW9ucyB0aGF0IGNoYW5nZSBmb250cyAqL1xuICAgICAgZm9udC1mYW1pbHk6ICdpY29tb29uJyAhaW1wb3J0YW50O1xuICAgICAgc3BlYWs6IG5vbmU7XG4gICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgLyogQmV0dGVyIEZvbnQgUmVuZGVyaW5nID09PT09PT09PT09ICovXG4gICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gICAgICBjb250ZW50OiBcIu6khFwiO1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoLTEpO1xuICAgICAgY29sb3I6ICMyYzI5MzQ7XG4gICAgICBmb250LXNpemU6IDUwcHg7IH1cbiAgLmhlcm9fX2Nhcm91c2VsIC5vd2wtbmF2IC5vd2wtcHJldi5vd2wtbmV4dCwgLmhlcm9fX2Nhcm91c2VsIC5vd2wtbmF2IC5vd2wtbmV4dC5vd2wtbmV4dCB7XG4gICAgcmlnaHQ6IDEwcHg7IH1cbiAgICAuaGVyb19fY2Fyb3VzZWwgLm93bC1uYXYgLm93bC1wcmV2Lm93bC1uZXh0OmJlZm9yZSwgLmhlcm9fX2Nhcm91c2VsIC5vd2wtbmF2IC5vd2wtbmV4dC5vd2wtbmV4dDpiZWZvcmUge1xuICAgICAgLyogdXNlICFpbXBvcnRhbnQgdG8gcHJldmVudCBpc3N1ZXMgd2l0aCBicm93c2VyIGV4dGVuc2lvbnMgdGhhdCBjaGFuZ2UgZm9udHMgKi9cbiAgICAgIGZvbnQtZmFtaWx5OiAnaWNvbW9vbicgIWltcG9ydGFudDtcbiAgICAgIHNwZWFrOiBub25lO1xuICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgIC8qIEJldHRlciBGb250IFJlbmRlcmluZyA9PT09PT09PT09PSAqL1xuICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAgICAgY29udGVudDogXCLupIRcIjtcbiAgICAgIGNvbG9yOiAjMmMyOTM0O1xuICAgICAgZm9udC1zaXplOiA1MHB4OyB9XG5cbi5oZXJvX19pdGVtIHtcbiAgbWF4LXdpZHRoOiA5MHJlbTtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgd3JhcDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAuaGVyb19faXRlbSB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfSB9XG5cbi5oZXJvX19pbWFnZSB7XG4gIGZsZXg6IDAgMCA1MCU7XG4gIG1heC13aWR0aDogNTAlO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgbWF4LXdpZHRoOiA1MCU7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuaGVyb19faW1hZ2Uge1xuICAgICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAuaGVyb19faW1hZ2Uge1xuICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICBtYXJnaW4tYm90dG9tOiA0MHB4OyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5oZXJvX19pbWFnZSB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTsgfSB9XG4gIC5oZXJvX19pbWFnZSBpbWcge1xuICAgIG1hcmdpbi10b3A6IC0xMHZ3OyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAgICAgLmhlcm9fX2ltYWdlIGltZyB7XG4gICAgICAgIG1hcmdpbi10b3A6IC0xMjBweDsgfSB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XG4gICAgICAuaGVyb19faW1hZ2UgaW1nIHtcbiAgICAgICAgbWFyZ2luLXRvcDogLTR2dzsgfSB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgICAuaGVyb19faW1hZ2UgaW1nIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMHZ3OyB9IH1cblxuLmhlcm9fX2NvbnRlbnQge1xuICBmbGV4OiAwIDAgNTAlO1xuICBtYXgtd2lkdGg6IDUwJTtcbiAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gIG1heC13aWR0aDogNTAlO1xuICBwYWRkaW5nLWJvdHRvbTogNTBweDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5oZXJvX19jb250ZW50IHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgLmhlcm9fX2NvbnRlbnQge1xuICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICB3aWR0aDogMTAwJTsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkgYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuaGVyb19fY29udGVudCB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTsgfSB9XG5cbi5oZXJvX190aXRsZSB7XG4gIGZvbnQtc2l6ZTogNjBweDtcbiAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjVweDtcbiAgY29sb3I6ICMyQzI5MzQ7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XG4gICAgLmhlcm9fX3RpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogNDBweDsgfSB9XG5cbi5oZXJvX19zdWJ0aXRsZSB7XG4gIGZvbnQtc2l6ZTogMjJweDtcbiAgbGluZS1oZWlnaHQ6IDEuNjQ7XG4gIGxldHRlci1zcGFjaW5nOiAtMC41cHg7XG4gIGNvbG9yOiAjRUUxQkI2O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBtYXJnaW4tYm90dG9tOiAyMHB4OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICAgIC5oZXJvX19zdWJ0aXRsZSB7XG4gICAgICBmb250LXNpemU6IDIwcHg7IH0gfVxuXG4uaGVyb19fY29weSB7XG4gIHdpZHRoOiA0NTBweDtcbiAgbWF4LXdpZHRoOiA5MCU7XG4gIGZvbnQtc2l6ZTogMjJweDtcbiAgbGluZS1oZWlnaHQ6IDEuNjQ7XG4gIGNvbG9yOiByZ2JhKDQ0LCA0MSwgNTIsIDAuNSk7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XG4gICAgLmhlcm9fX2NvcHkge1xuICAgICAgZm9udC1zaXplOiAxOHB4OyB9IH1cbiAgLmhlcm9fX2NvcHkgLmJ1dHRvbiB7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgIGJhY2tncm91bmQ6ICMyQzI5MzQ7IH1cbiAgICAuaGVyb19fY29weSAuYnV0dG9uOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgei1pbmRleDogMjtcbiAgICAgIHRvcDogMHB4O1xuICAgICAgbGVmdDogMHB4O1xuICAgICAgcmlnaHQ6IDBweDtcbiAgICAgIGJvdHRvbTogMHB4O1xuICAgICAgYm9yZGVyOiA3cHggc29saWQgI0VFMUJCNjtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjI1cyBlYXNlLW91dCwgY29sb3IgMC4yNXMgZWFzZS1vdXQ7IH1cbiAgICAuaGVyb19fY29weSAuYnV0dG9uOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDBweDtcbiAgICAgIGxlZnQ6IDBweDtcbiAgICAgIHJpZ2h0OiAwcHg7XG4gICAgICBib3R0b206IDBweDtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHdoaXRlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoNHB4LCA0cHgpOyB9XG4gICAgLmhlcm9fX2NvcHkgLmJ1dHRvbjpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHotaW5kZXg6IDI7XG4gICAgICB0b3A6IDBweDtcbiAgICAgIGxlZnQ6IDBweDtcbiAgICAgIHJpZ2h0OiAwcHg7XG4gICAgICBib3R0b206IDBweDtcbiAgICAgIGJvcmRlcjogN3B4IHNvbGlkICNFRTFCQjY7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4yNXMgZWFzZS1vdXQsIGNvbG9yIDAuMjVzIGVhc2Utb3V0OyB9XG4gICAgLmhlcm9fX2NvcHkgLmJ1dHRvbjphZnRlciB7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwcHg7XG4gICAgICBsZWZ0OiAwcHg7XG4gICAgICByaWdodDogMHB4O1xuICAgICAgYm90dG9tOiAwcHg7XG4gICAgICBib3JkZXI6IDJweCBzb2xpZCB3aGl0ZTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDRweCwgNHB4KTsgfVxuICAgIC5oZXJvX19jb3B5IC5idXR0b246YWZ0ZXIge1xuICAgICAgYm9yZGVyOiAycHggc29saWQgIzc5ODNGRjtcbiAgICAgIGJvcmRlci1pbWFnZS1zb3VyY2U6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgI0VFMUJCNiwgIzc5ODNGRik7XG4gICAgICBib3JkZXItaW1hZ2Utc2xpY2U6IDE7IH1cbiAgICAuaGVyb19fY29weSAuYnV0dG9uOmJlZm9yZSB7XG4gICAgICBib3JkZXItY29sb3I6ICMyQzI5MzQgIWltcG9ydGFudDsgfVxuICAgIC5oZXJvX19jb3B5IC5idXR0b246YWN0aXZlLCAuaGVyb19fY29weSAuYnV0dG9uOmZvY3VzLCAuaGVyb19fY29weSAuYnV0dG9uOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICM0NDNmNTE7IH1cbiAgICAgIC5oZXJvX19jb3B5IC5idXR0b246YWN0aXZlOmJlZm9yZSwgLmhlcm9fX2NvcHkgLmJ1dHRvbjpmb2N1czpiZWZvcmUsIC5oZXJvX19jb3B5IC5idXR0b246aG92ZXI6YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjNDQzZjUxICFpbXBvcnRhbnQ7IH1cblxuLmJyYW5kLWhlcm8ge1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gIHBhZGRpbmctdG9wOiA3MHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMjAwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuYnJhbmQtaGVybzphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGhlaWdodDogMjUwcHg7XG4gICAgLyogUGVybWFsaW5rIC0gdXNlIHRvIGVkaXQgYW5kIHNoYXJlIHRoaXMgZ3JhZGllbnQ6IGh0dHBzOi8vY29sb3J6aWxsYS5jb20vZ3JhZGllbnQtZWRpdG9yLyNmZmZmZmYrMCxmZmZmZmYrMTAwJjArMCwxKzEwMCAqL1xuICAgIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSAwJSwgd2hpdGUgMTAwJSk7XG4gICAgLyogRkYzLjYtMTUgKi9cbiAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgMCUsIHdoaXRlIDEwMCUpO1xuICAgIC8qIENocm9tZTEwLTI1LFNhZmFyaTUuMS02ICovXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSAwJSwgd2hpdGUgMTAwJSk7XG4gICAgLyogVzNDLCBJRTEwKywgRkYxNissIENocm9tZTI2KywgT3BlcmExMissIFNhZmFyaTcrICovXG4gICAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoIHN0YXJ0Q29sb3JzdHI9JyMwMGZmZmZmZicsIGVuZENvbG9yc3RyPScjZmZmZmZmJyxHcmFkaWVudFR5cGU9MCApO1xuICAgIC8qIElFNi05ICovIH1cblxuLmJyYW5kLWhlcm9fX2NvbnRhaW5lciB7XG4gIG1heC13aWR0aDogOTByZW07XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfVxuXG4uYnJhbmQtaGVyb19fY29udGVudCB7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgd2lkdGg6IDQyMHB4O1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi10b3A6IDMwcHg7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuYnJhbmQtaGVyb19fY29udGVudCB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTsgfSB9XG5cbi5icmFuZC1oZXJvX19sb2dvIHtcbiAgbWFyZ2luLWJvdHRvbTogNTBweDtcbiAgbWF4LXdpZHRoOiAyMTBweDsgfVxuXG4uYnJhbmQtaGVyb19fdGl0bGUge1xuICBmb250LXNpemU6IDQ4cHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsaW5lLWhlaWdodDogMS4zMztcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjQ3cHg7XG4gIGNvbG9yOiB3aGl0ZTsgfVxuXG4uYnJhbmQtaGVyb19fY29weSB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDEuNztcbiAgY29sb3I6IHdoaXRlO1xuICBtYXJnaW4tYm90dG9tOiA0MHB4OyB9XG5cbi5icmFuZC1oZXJvX19hY3Rpb24ge1xuICBmb250LXNpemU6IDIwcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxldHRlci1zcGFjaW5nOiAtMC40NXB4O1xuICBjb2xvcjogI2ZmZmZmZjsgfVxuXG4uYnJhbmQtaGVyb19faW1hZ2Uge1xuICBmbGV4OiAwIDAgNTQuMTY2NjclO1xuICBtYXgtd2lkdGg6IDU0LjE2NjY3JTtcbiAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gIG1heC13aWR0aDogNTQuMTY2NjclO1xuICB6LWluZGV4OiA1OyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmJyYW5kLWhlcm9fX2ltYWdlIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtOyB9IH1cblxuLnByb2R1Y3QtZGV0YWlscyB7XG4gIHBhZGRpbmctdG9wOiA4MHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMTAwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLyogUGVybWFsaW5rIC0gdXNlIHRvIGVkaXQgYW5kIHNoYXJlIHRoaXMgZ3JhZGllbnQ6IGh0dHBzOi8vY29sb3J6aWxsYS5jb20vZ3JhZGllbnQtZWRpdG9yLyMyYzI5MzQrNywyYzI5MzQrMjcsNmI1Zjc3KzEwMCAqL1xuICBiYWNrZ3JvdW5kOiAjMmMyOTM0O1xuICAvKiBPbGQgYnJvd3NlcnMgKi9cbiAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQodG9wLCAjMkMyOTM0IDclLCAjMkMyOTM0IDI3JSwgIzZiNWY3NyAxMDAlKTtcbiAgLyogRkYzLjYtMTUgKi9cbiAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCAjMkMyOTM0IDclLCAjMkMyOTM0IDI3JSwgIzZiNWY3NyAxMDAlKTtcbiAgLyogQ2hyb21lMTAtMjUsU2FmYXJpNS4xLTYgKi9cbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgIzJDMjkzNCA3JSwgIzJDMjkzNCAyNyUsICM2YjVmNzcgMTAwJSk7XG4gIC8qIFczQywgSUUxMCssIEZGMTYrLCBDaHJvbWUyNissIE9wZXJhMTIrLCBTYWZhcmk3KyAqL1xuICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudCggc3RhcnRDb2xvcnN0cj0nIzJDMjkzNCcsIGVuZENvbG9yc3RyPScjNmI1Zjc3JyxHcmFkaWVudFR5cGU9MCApO1xuICAvKiBJRTYtOSAqL1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLnByb2R1Y3QtZGV0YWlsczphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGhlaWdodDogMTAwcHg7XG4gICAgYm90dG9tOiAwcHg7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJSAxMDAlO1xuICAgIHRyYW5zZm9ybTogc2NhbGVZKC0xKSBzY2FsZVgoMSkgO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyAgaGVpZ2h0PSc1MCcgd2lkdGg9JzQwMCcgcHJlc2VydmVBc3BlY3RSYXRpbz0nbm9uZSclM0VcXGEgICAgICAgICAgICUzQ3BvbHlnb24gcG9pbnRzPScyODAsMCAwLDAgMCw1MCcgc3R5bGU9J2ZpbGw6d2hpdGU7JyAvJTNFXFxhICAgICAgICAgICAlM0Nwb2x5Z29uIHBvaW50cz0nMjgwLDAgNDAwLDAgNDAwLDUwJyBzdHlsZT0nZmlsbDp3aGl0ZTsnIC8lM0VcXGEgICAgICAgICAlM0Mvc3ZnJTNFXCIpOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICAgIC5wcm9kdWN0LWRldGFpbHMge1xuICAgICAgcGFkZGluZy10b3A6IDEwcHg7IH0gfVxuICAucHJvZHVjdC1kZXRhaWxzLnByb2R1Y3QtZGV0YWlscy0tbGlnaHQge1xuICAgIGJhY2tncm91bmQ6IHdoaXRlICFpbXBvcnRhbnQ7IH1cbiAgLnByb2R1Y3QtZGV0YWlscy5wcm9kdWN0LWRldGFpbHMtLXRoZW1lZCB7XG4gICAgcGFkZGluZy10b3A6IDI4MHB4O1xuICAgIGJhY2tncm91bmQ6IHdoaXRlOyB9XG4gICAgLnByb2R1Y3QtZGV0YWlscy5wcm9kdWN0LWRldGFpbHMtLXRoZW1lZCAucHJvZHVjdC1kZXRhaWxzX19jb250YWluZXIge1xuICAgICAgei1pbmRleDogMTA7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAucHJvZHVjdC1kZXRhaWxzLnByb2R1Y3QtZGV0YWlscy0tdGhlbWVkOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBoZWlnaHQ6IDYwMHB4OyB9XG4gICAgLnByb2R1Y3QtZGV0YWlscy5wcm9kdWN0LWRldGFpbHMtLXRoZW1lZDphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIC8qIFBlcm1hbGluayAtIHVzZSB0byBlZGl0IGFuZCBzaGFyZSB0aGlzIGdyYWRpZW50OiBodHRwczovL2NvbG9yemlsbGEuY29tL2dyYWRpZW50LWVkaXRvci8jZmZmZmZmKzAsZmZmZmZmKzEwMCYwKzAsMSsxMDAgKi9cbiAgICAgIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgd2hpdGUgMCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgMTAwJSk7XG4gICAgICAvKiBGRjMuNi0xNSAqL1xuICAgICAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCB3aGl0ZSAwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSAxMDAlKTtcbiAgICAgIC8qIENocm9tZTEwLTI1LFNhZmFyaTUuMS02ICovXG4gICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCB3aGl0ZSAwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSAxMDAlKTtcbiAgICAgIC8qIFczQywgSUUxMCssIEZGMTYrLCBDaHJvbWUyNissIE9wZXJhMTIrLCBTYWZhcmk3KyAqL1xuICAgICAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoIHN0YXJ0Q29sb3JzdHI9JyNmZmZmZmYnLCBlbmRDb2xvcnN0cj0nIzAwZmZmZmZmJyxHcmFkaWVudFR5cGU9MCApO1xuICAgICAgLyogSUU2LTkgKi9cbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMjAwcHg7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBoZWlnaHQ6IDQwMHB4OyB9XG5cbi5wcm9kdWN0LWRldGFpbHNfX2NvbnRhaW5lciB7XG4gIG1heC13aWR0aDogOTByZW07XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfVxuICAucHJvZHVjdC1kZXRhaWxzX19jb250YWluZXIgLndvb2NvbW1lcmNlLXByb2R1Y3QtZ2FsbGVyeSB7XG4gICAgZmxleDogMCAwIDUwJTtcbiAgICBtYXgtd2lkdGg6IDUwJTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xuICAgIG1heC13aWR0aDogNTAlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAucHJvZHVjdC1kZXRhaWxzX19jb250YWluZXIgLndvb2NvbW1lcmNlLXByb2R1Y3QtZ2FsbGVyeSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICAgICAgLnByb2R1Y3QtZGV0YWlsc19fY29udGFpbmVyIC53b29jb21tZXJjZS1wcm9kdWN0LWdhbGxlcnkge1xuICAgICAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5wcm9kdWN0LWRldGFpbHNfX2NvbnRhaW5lciAud29vY29tbWVyY2UtcHJvZHVjdC1nYWxsZXJ5IHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtOyB9IH1cbiAgICAucHJvZHVjdC1kZXRhaWxzX19jb250YWluZXIgLndvb2NvbW1lcmNlLXByb2R1Y3QtZ2FsbGVyeSAud29vY29tbWVyY2UtcHJvZHVjdC1nYWxsZXJ5X190cmlnZ2VyIHtcbiAgICAgIGZvbnQtc2l6ZTogMHB4O1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAxMHB4O1xuICAgICAgbGVmdDogMjVweDtcbiAgICAgIHotaW5kZXg6IDY7IH1cbiAgICAgIC5wcm9kdWN0LWRldGFpbHNfX2NvbnRhaW5lciAud29vY29tbWVyY2UtcHJvZHVjdC1nYWxsZXJ5IC53b29jb21tZXJjZS1wcm9kdWN0LWdhbGxlcnlfX3RyaWdnZXI6YmVmb3JlIHtcbiAgICAgICAgLyogdXNlICFpbXBvcnRhbnQgdG8gcHJldmVudCBpc3N1ZXMgd2l0aCBicm93c2VyIGV4dGVuc2lvbnMgdGhhdCBjaGFuZ2UgZm9udHMgKi9cbiAgICAgICAgZm9udC1mYW1pbHk6ICdpY29tb29uJyAhaW1wb3J0YW50O1xuICAgICAgICBzcGVhazogbm9uZTtcbiAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICAvKiBCZXR0ZXIgRm9udCBSZW5kZXJpbmcgPT09PT09PT09PT0gKi9cbiAgICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gICAgICAgIGNvbnRlbnQ6IFwi7qSIXCI7XG4gICAgICAgIGZvbnQtc2l6ZTogMjZweDtcbiAgICAgICAgY29sb3I6ICMyQzI5MzQ7IH1cbiAgICAucHJvZHVjdC1kZXRhaWxzX19jb250YWluZXIgLndvb2NvbW1lcmNlLXByb2R1Y3QtZ2FsbGVyeSAud29vY29tbWVyY2UtcHJvZHVjdC1nYWxsZXJ5X19pbWFnZSB7XG4gICAgICBib3JkZXItcmFkaXVzOiA0cHg7IH1cbiAgICAgIC5wcm9kdWN0LWRldGFpbHNfX2NvbnRhaW5lciAud29vY29tbWVyY2UtcHJvZHVjdC1nYWxsZXJ5IC53b29jb21tZXJjZS1wcm9kdWN0LWdhbGxlcnlfX2ltYWdlIGltZyB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgbWluLXdpZHRoOiAxMDAlOyB9XG4gICAgLnByb2R1Y3QtZGV0YWlsc19fY29udGFpbmVyIC53b29jb21tZXJjZS1wcm9kdWN0LWdhbGxlcnkgLmZsZXgtY29udHJvbC10aHVtYnMge1xuICAgICAgbWF4LXdpZHRoOiA5MHJlbTtcbiAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAgIC5wcm9kdWN0LWRldGFpbHNfX2NvbnRhaW5lciAud29vY29tbWVyY2UtcHJvZHVjdC1nYWxsZXJ5IC5mbGV4LWNvbnRyb2wtdGh1bWJzIC5vd2wtbmF2IGJ1dHRvbiB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC40KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OyB9XG4gICAgICAgIC5wcm9kdWN0LWRldGFpbHNfX2NvbnRhaW5lciAud29vY29tbWVyY2UtcHJvZHVjdC1nYWxsZXJ5IC5mbGV4LWNvbnRyb2wtdGh1bWJzIC5vd2wtbmF2IGJ1dHRvbjpub3QoLmRpc2FibGVkKTpob3ZlciB7XG4gICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjYpOyB9XG4gICAgICAgIC5wcm9kdWN0LWRldGFpbHNfX2NvbnRhaW5lciAud29vY29tbWVyY2UtcHJvZHVjdC1nYWxsZXJ5IC5mbGV4LWNvbnRyb2wtdGh1bWJzIC5vd2wtbmF2IGJ1dHRvbi5kaXNhYmxlZCB7XG4gICAgICAgICAgb3BhY2l0eTogMC4zOyB9XG4gICAgICAgIC5wcm9kdWN0LWRldGFpbHNfX2NvbnRhaW5lciAud29vY29tbWVyY2UtcHJvZHVjdC1nYWxsZXJ5IC5mbGV4LWNvbnRyb2wtdGh1bWJzIC5vd2wtbmF2IGJ1dHRvbiBzcGFuIHtcbiAgICAgICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICAgICAgY29sb3I6IHdoaXRlOyB9XG4gICAgICAgIC5wcm9kdWN0LWRldGFpbHNfX2NvbnRhaW5lciAud29vY29tbWVyY2UtcHJvZHVjdC1nYWxsZXJ5IC5mbGV4LWNvbnRyb2wtdGh1bWJzIC5vd2wtbmF2IGJ1dHRvbi5vd2wtbmV4dCB7XG4gICAgICAgICAgcmlnaHQ6IDA7IH1cbiAgICAgIC5wcm9kdWN0LWRldGFpbHNfX2NvbnRhaW5lciAud29vY29tbWVyY2UtcHJvZHVjdC1nYWxsZXJ5IC5mbGV4LWNvbnRyb2wtdGh1bWJzIGxpIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gICAgICAgIC5wcm9kdWN0LWRldGFpbHNfX2NvbnRhaW5lciAud29vY29tbWVyY2UtcHJvZHVjdC1nYWxsZXJ5IC5mbGV4LWNvbnRyb2wtdGh1bWJzIGxpIGltZyB7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OyB9XG4gICAgICAgICAgLnByb2R1Y3QtZGV0YWlsc19fY29udGFpbmVyIC53b29jb21tZXJjZS1wcm9kdWN0LWdhbGxlcnkgLmZsZXgtY29udHJvbC10aHVtYnMgbGkgaW1nLmZsZXgtYWN0aXZlIHtcbiAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICNFRTFCQjY7IH1cbiAgLnByb2R1Y3QtZGV0YWlsc19fY29udGFpbmVyIC5lbnRyeS1zdW1tYXJ5IHtcbiAgICBmbGV4OiAwIDAgNDUuODMzMzMlO1xuICAgIG1heC13aWR0aDogNDUuODMzMzMlO1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gICAgbWF4LXdpZHRoOiA0NS44MzMzMyU7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLnByb2R1Y3QtZGV0YWlsc19fY29udGFpbmVyIC5lbnRyeS1zdW1tYXJ5IHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTsgfSB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XG4gICAgICAucHJvZHVjdC1kZXRhaWxzX19jb250YWluZXIgLmVudHJ5LXN1bW1hcnkge1xuICAgICAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5wcm9kdWN0LWRldGFpbHNfX2NvbnRhaW5lciAuZW50cnktc3VtbWFyeSB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTsgfSB9XG5cbi5lbnRyeS1zdW1tYXJ5IHtcbiAgLyogVGFicyAqLyB9XG4gIC5lbnRyeS1zdW1tYXJ5IC5wcm9kdWN0X2JyYW5kX2xvZ28ge1xuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7IH1cbiAgICAuZW50cnktc3VtbWFyeSAucHJvZHVjdF9icmFuZF9sb2dvIGltZyB7XG4gICAgICB3aWR0aDogMzAwcHg7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgICAgIC5lbnRyeS1zdW1tYXJ5IC5wcm9kdWN0X2JyYW5kX2xvZ28ge1xuICAgICAgICBtYXJnaW46IDIwcHggMCAxMHB4OyB9IH1cbiAgLmVudHJ5LXN1bW1hcnkgLndvb2NvbW1lcmNlLXByb2R1Y3QtZ2FsbGVyeSB7XG4gICAgcGFkZGluZy1sZWZ0OiAwcHg7XG4gICAgcGFkZGluZy1yaWdodDogMHB4OyB9XG4gIC5lbnRyeS1zdW1tYXJ5IC5wcm9kdWN0X3RpdGxlIHtcbiAgICBmb250LXNpemU6IDUxcHg7XG4gICAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gICAgY29sb3I6IHdoaXRlOyB9XG4gICAgLnByb2R1Y3QtZGV0YWlscy0tbGlnaHQgLmVudHJ5LXN1bW1hcnkgLnByb2R1Y3RfdGl0bGUge1xuICAgICAgY29sb3I6ICMyQzI5MzQ7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgICAgIC5lbnRyeS1zdW1tYXJ5IC5wcm9kdWN0X3RpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiA0MnB4OyB9IH1cbiAgLmVudHJ5LXN1bW1hcnkgLnByb2R1Y3Rfc3VidGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMzBweDtcbiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpOyB9XG4gICAgLnByb2R1Y3QtZGV0YWlscy0tbGlnaHQgLmVudHJ5LXN1bW1hcnkgLnByb2R1Y3Rfc3VidGl0bGUge1xuICAgICAgY29sb3I6IHJnYmEoNDQsIDQxLCA1MiwgMC43KTsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICAgICAgLmVudHJ5LXN1bW1hcnkgLnByb2R1Y3Rfc3VidGl0bGUge1xuICAgICAgICBmb250LXNpemU6IDE4cHg7IH0gfVxuICAuZW50cnktc3VtbWFyeSAucHJvZHVjdF9jYXRlZ29yeSBhIHtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuODk7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC0wLjQ1cHg7XG4gICAgY29sb3I6ICNFRTFCQjY7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICAuZW50cnktc3VtbWFyeSAucHJvZHVjdF9za3Uge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBsaW5lLWhlaWdodDogMi40MztcbiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgICAucHJvZHVjdC1kZXRhaWxzLS1saWdodCAuZW50cnktc3VtbWFyeSAucHJvZHVjdF9za3Uge1xuICAgICAgY29sb3I6IHJnYmEoNDQsIDQxLCA1MiwgMC4zKTsgfVxuICAuZW50cnktc3VtbWFyeSAucHJvZHVjdC1pbmZvIHtcbiAgICB3aWR0aDogNDcwcHg7XG4gICAgbWF4LXdpZHRoOiAxMDAlOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XG4gICAgICAuZW50cnktc3VtbWFyeSAucHJvZHVjdC1pbmZvIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuICAuZW50cnktc3VtbWFyeSAucHJvZHVjdC1pbmZvX190YWJzIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDIyMSwgMjI2LCAyMzUsIDAuMSk7IH1cbiAgICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLmVudHJ5LXN1bW1hcnkgLnByb2R1Y3QtaW5mb19fdGFicyBsaSB7XG4gICAgICBvdXRsaW5lOiAwOyB9XG4gICAgLmVudHJ5LXN1bW1hcnkgLnByb2R1Y3QtaW5mb19fdGFicyBhLFxuICAgIC5lbnRyeS1zdW1tYXJ5IC5wcm9kdWN0LWluZm9fX3RhYnMgLmJ1dHRvbiB7XG4gICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBhZGRpbmc6IDAuN3JlbSAxcmVtOyB9XG4gICAgLmVudHJ5LXN1bW1hcnkgLnByb2R1Y3QtaW5mb19fdGFicyBpbnB1dCxcbiAgICAuZW50cnktc3VtbWFyeSAucHJvZHVjdC1pbmZvX190YWJzIHNlbGVjdCxcbiAgICAuZW50cnktc3VtbWFyeSAucHJvZHVjdC1pbmZvX190YWJzIGEsXG4gICAgLmVudHJ5LXN1bW1hcnkgLnByb2R1Y3QtaW5mb19fdGFicyBidXR0b24ge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAgIC5lbnRyeS1zdW1tYXJ5IC5wcm9kdWN0LWluZm9fX3RhYnMgaW5wdXQge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gICAgLnByb2R1Y3QtZGV0YWlscy0tbGlnaHQgLmVudHJ5LXN1bW1hcnkgLnByb2R1Y3QtaW5mb19fdGFicyB7XG4gICAgICBib3JkZXItYm90dG9tLWNvbG9yOiByZ2JhKDQ0LCA0MSwgNTIsIDAuNSk7IH1cbiAgICAuZW50cnktc3VtbWFyeSAucHJvZHVjdC1pbmZvX190YWJzIC50YWJzLXRpdGxlIGEge1xuICAgICAgZm9udC1zaXplOiAyMnB4O1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbiAgICAgIGJvcmRlci1ib3R0b206IDNweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIHBhZGRpbmctbGVmdDogNXB4O1xuICAgICAgcGFkZGluZy1yaWdodDogNXB4O1xuICAgICAgbWFyZ2luOiAwIDIwcHg7IH1cbiAgICAgIC5wcm9kdWN0LWRldGFpbHMtLWxpZ2h0IC5lbnRyeS1zdW1tYXJ5IC5wcm9kdWN0LWluZm9fX3RhYnMgLnRhYnMtdGl0bGUgYSB7XG4gICAgICAgIGNvbG9yOiByZ2JhKDQ0LCA0MSwgNTIsIDAuMyk7IH1cbiAgICAuZW50cnktc3VtbWFyeSAucHJvZHVjdC1pbmZvX190YWJzIC50YWJzLXRpdGxlOmZpcnN0LWNoaWxkIGEge1xuICAgICAgbWFyZ2luLWxlZnQ6IDBweDsgfVxuICAgIC5lbnRyeS1zdW1tYXJ5IC5wcm9kdWN0LWluZm9fX3RhYnMgLnRhYnMtdGl0bGUuaXMtYWN0aXZlIGEge1xuICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogI0VFMUJCNjsgfVxuICAgICAgLnByb2R1Y3QtZGV0YWlscy0tbGlnaHQgLmVudHJ5LXN1bW1hcnkgLnByb2R1Y3QtaW5mb19fdGFicyAudGFicy10aXRsZS5pcy1hY3RpdmUgYSB7XG4gICAgICAgIGNvbG9yOiAjMkMyOTM0OyB9XG4gIC5lbnRyeS1zdW1tYXJ5IC5wcm9kdWN0LWluZm9fX2NvbnRlbnQge1xuICAgIG1hcmdpbi10b3A6IDMwcHg7IH1cbiAgICAuZW50cnktc3VtbWFyeSAucHJvZHVjdC1pbmZvX19jb250ZW50IC50YWJzLXBhbmVsIHtcbiAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgICBjb2xvcjogd2hpdGU7IH1cbiAgICAgIC5wcm9kdWN0LWRldGFpbHMtLWxpZ2h0IC5lbnRyeS1zdW1tYXJ5IC5wcm9kdWN0LWluZm9fX2NvbnRlbnQgLnRhYnMtcGFuZWwge1xuICAgICAgICBjb2xvcjogIzJDMjkzNDsgfVxuICAgICAgLmVudHJ5LXN1bW1hcnkgLnByb2R1Y3QtaW5mb19fY29udGVudCAudGFicy1wYW5lbCB1bCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAzMHB4OyB9XG4gICAgICAgIC5lbnRyeS1zdW1tYXJ5IC5wcm9kdWN0LWluZm9fX2NvbnRlbnQgLnRhYnMtcGFuZWwgdWwgbGkge1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogMTBweDsgfVxuICAgICAgLmVudHJ5LXN1bW1hcnkgLnByb2R1Y3QtaW5mb19fY29udGVudCAudGFicy1wYW5lbCBwIHtcbiAgICAgICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtOyB9XG4gICAgICAgIC5wcm9kdWN0LWRldGFpbHMtLWxpZ2h0IC5lbnRyeS1zdW1tYXJ5IC5wcm9kdWN0LWluZm9fX2NvbnRlbnQgLnRhYnMtcGFuZWwgcCB7XG4gICAgICAgICAgY29sb3I6IHJnYmEoNDQsIDQxLCA1MiwgMC41KTsgfVxuICAgICAgLmVudHJ5LXN1bW1hcnkgLnByb2R1Y3QtaW5mb19fY29udGVudCAudGFicy1wYW5lbDpub3QoLmlzLWFjdGl2ZSkge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5lbnRyeS1zdW1tYXJ5IC5wcmljZSB7XG4gICAgZm9udC1zaXplOiAzNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuMTc7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgICAucHJvZHVjdC1kZXRhaWxzLS1saWdodCAuZW50cnktc3VtbWFyeSAucHJpY2Uge1xuICAgICAgY29sb3I6ICNFRTFCQjY7IH1cbiAgICAuZW50cnktc3VtbWFyeSAucHJpY2UgaW5zIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAgIC5lbnRyeS1zdW1tYXJ5IC5wcmljZSBkZWwge1xuICAgICAgZm9udC1zaXplOiAyOHB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgIGNvbG9yOiAjYzNjYWQ3O1xuICAgICAgbWFyZ2luOiAwIDEwcHg7IH1cbiAgLmVudHJ5LXN1bW1hcnkgLmNhcnQgLnF1YW50aXR5IHtcbiAgICBtYXgtd2lkdGg6IDkwcmVtO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgbWFyZ2luLXRvcDogMTBweDsgfVxuICAgIC5lbnRyeS1zdW1tYXJ5IC5jYXJ0IC5xdWFudGl0eSBsYWJlbCB7XG4gICAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7IH1cbiAgICAgIC5wcm9kdWN0LWRldGFpbHMtLWxpZ2h0IC5lbnRyeS1zdW1tYXJ5IC5jYXJ0IC5xdWFudGl0eSBsYWJlbCB7XG4gICAgICAgIGNvbG9yOiAjMkMyOTM0OyB9XG4gICAgLmVudHJ5LXN1bW1hcnkgLmNhcnQgLnF1YW50aXR5IC5xdWFudGl0eV9faW5jcmVtZW50OjpiZWZvcmUge1xuICAgICAgLyogdXNlICFpbXBvcnRhbnQgdG8gcHJldmVudCBpc3N1ZXMgd2l0aCBicm93c2VyIGV4dGVuc2lvbnMgdGhhdCBjaGFuZ2UgZm9udHMgKi9cbiAgICAgIGZvbnQtZmFtaWx5OiAnaWNvbW9vbicgIWltcG9ydGFudDtcbiAgICAgIHNwZWFrOiBub25lO1xuICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgIC8qIEJldHRlciBGb250IFJlbmRlcmluZyA9PT09PT09PT09PSAqL1xuICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAgICAgY29udGVudDogXCLupIpcIjsgfVxuICAgIC5lbnRyeS1zdW1tYXJ5IC5jYXJ0IC5xdWFudGl0eSAucXVhbnRpdHlfX2RlY3JlbWVudDo6YmVmb3JlIHtcbiAgICAgIC8qIHVzZSAhaW1wb3J0YW50IHRvIHByZXZlbnQgaXNzdWVzIHdpdGggYnJvd3NlciBleHRlbnNpb25zIHRoYXQgY2hhbmdlIGZvbnRzICovXG4gICAgICBmb250LWZhbWlseTogJ2ljb21vb24nICFpbXBvcnRhbnQ7XG4gICAgICBzcGVhazogbm9uZTtcbiAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAvKiBCZXR0ZXIgRm9udCBSZW5kZXJpbmcgPT09PT09PT09PT0gKi9cbiAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgICAgIGNvbnRlbnQ6IFwi7qSGXCI7IH1cbiAgICAuZW50cnktc3VtbWFyeSAuY2FydCAucXVhbnRpdHkgLnF1YW50aXR5X19pbmNyZW1lbnQsIC5lbnRyeS1zdW1tYXJ5IC5jYXJ0IC5xdWFudGl0eSAucXVhbnRpdHlfX2RlY3JlbWVudCB7XG4gICAgICB3aWR0aDogNDJweDtcbiAgICAgIGhlaWdodDogNDJweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgIGJvcmRlcjogc29saWQgMXB4ICNkM2RlZTM7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAgIC5lbnRyeS1zdW1tYXJ5IC5jYXJ0IC5xdWFudGl0eSAucXVhbnRpdHlfX2luY3JlbWVudDo6YmVmb3JlLCAuZW50cnktc3VtbWFyeSAuY2FydCAucXVhbnRpdHkgLnF1YW50aXR5X19kZWNyZW1lbnQ6OmJlZm9yZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgICAgY29sb3I6ICNkM2RlZTM7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7IH1cbiAgICAuZW50cnktc3VtbWFyeSAuY2FydCAucXVhbnRpdHkgLnF1YW50aXR5X19saW1pdGVkIHtcbiAgICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICAgIGxldHRlci1zcGFjaW5nOiAwLjIycHg7XG4gICAgICBjb2xvcjogIzFiZTZlZTtcbiAgICAgIGhlaWdodDogNDJweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gICAgICBib3JkZXI6IHNvbGlkIDEuNXB4ICMxYmU2ZWU7XG4gICAgICBsaW5lLWhlaWdodDogNDBweDtcbiAgICAgIHBhZGRpbmc6IDAgMzBweDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyMHB4OyB9XG4gICAgICAucHJvZHVjdC1kZXRhaWxzLS1saWdodCAuZW50cnktc3VtbWFyeSAuY2FydCAucXVhbnRpdHkgLnF1YW50aXR5X19saW1pdGVkIHtcbiAgICAgICAgY29sb3I6ICMyQzI5MzQ7XG4gICAgICAgIGJvcmRlcjogc29saWQgMS41cHggIzJDMjkzNDsgfVxuICAgIC5lbnRyeS1zdW1tYXJ5IC5jYXJ0IC5xdWFudGl0eSBpbnB1dCB7XG4gICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgICBsaW5lLWhlaWdodDogMS4zMztcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBjdXJzb3I6IHRleHQ7XG4gICAgICB3aWR0aDogNjBweDsgfVxuICAgICAgLnByb2R1Y3QtZGV0YWlscy0tbGlnaHQgLmVudHJ5LXN1bW1hcnkgLmNhcnQgLnF1YW50aXR5IGlucHV0IHtcbiAgICAgICAgY29sb3I6ICMyQzI5MzQ7IH1cbiAgICAgIC5lbnRyeS1zdW1tYXJ5IC5jYXJ0IC5xdWFudGl0eSBpbnB1dDo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiB7XG4gICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgfVxuICAuZW50cnktc3VtbWFyeSAuY2FydCAuYnV0dG9uIHtcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgYmFja2dyb3VuZDogIzJDMjkzNDtcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDQwcHg7IH1cbiAgICAuZW50cnktc3VtbWFyeSAuY2FydCAuYnV0dG9uOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgei1pbmRleDogMjtcbiAgICAgIHRvcDogMHB4O1xuICAgICAgbGVmdDogMHB4O1xuICAgICAgcmlnaHQ6IDBweDtcbiAgICAgIGJvdHRvbTogMHB4O1xuICAgICAgYm9yZGVyOiA3cHggc29saWQgI0VFMUJCNjtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjI1cyBlYXNlLW91dCwgY29sb3IgMC4yNXMgZWFzZS1vdXQ7IH1cbiAgICAuZW50cnktc3VtbWFyeSAuY2FydCAuYnV0dG9uOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDBweDtcbiAgICAgIGxlZnQ6IDBweDtcbiAgICAgIHJpZ2h0OiAwcHg7XG4gICAgICBib3R0b206IDBweDtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHdoaXRlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoNHB4LCA0cHgpOyB9XG4gICAgLmVudHJ5LXN1bW1hcnkgLmNhcnQgLmJ1dHRvbjphZnRlciB7XG4gICAgICBib3JkZXI6IDJweCBzb2xpZCAjNzk4M0ZGO1xuICAgICAgYm9yZGVyLWltYWdlLXNvdXJjZTogbGluZWFyLWdyYWRpZW50KDkwZGVnLCAjRUUxQkI2LCAjNzk4M0ZGKTtcbiAgICAgIGJvcmRlci1pbWFnZS1zbGljZTogMTsgfVxuICAgIC5lbnRyeS1zdW1tYXJ5IC5jYXJ0IC5idXR0b246YmVmb3JlIHtcbiAgICAgIGJvcmRlci1jb2xvcjogIzJDMjkzNCAhaW1wb3J0YW50OyB9XG4gICAgLmVudHJ5LXN1bW1hcnkgLmNhcnQgLmJ1dHRvbjphY3RpdmUsIC5lbnRyeS1zdW1tYXJ5IC5jYXJ0IC5idXR0b246Zm9jdXMsIC5lbnRyeS1zdW1tYXJ5IC5jYXJ0IC5idXR0b246aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogIzQ0M2Y1MTsgfVxuICAgICAgLmVudHJ5LXN1bW1hcnkgLmNhcnQgLmJ1dHRvbjphY3RpdmU6YmVmb3JlLCAuZW50cnktc3VtbWFyeSAuY2FydCAuYnV0dG9uOmZvY3VzOmJlZm9yZSwgLmVudHJ5LXN1bW1hcnkgLmNhcnQgLmJ1dHRvbjpob3ZlcjpiZWZvcmUge1xuICAgICAgICBib3JkZXItY29sb3I6ICM0NDNmNTEgIWltcG9ydGFudDsgfVxuXG4uc2VjdGlvbi51cHNlbGxzIHtcbiAgcGFkZGluZy1ib3R0b206IDYwcHg7IH1cbiAgLnNlY3Rpb24udXBzZWxscyA+ICo6bGFzdC1jaGlsZCB7XG4gICAgcGFkZGluZy1ib3R0b206IDBweDsgfVxuICAuc2VjdGlvbi51cHNlbGxzIC51cHNlbGxzX2JyYW5kX2xvZ28ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMjAwcHg7XG4gICAgdG9wOiAyMHB4O1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgICAuc2VjdGlvbi51cHNlbGxzIC5wcm9kdWN0LWNhcmQtc21hbGxfX2FkZCB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgLnNlY3Rpb24udXBzZWxscyAuc2VjdGlvbl9fYm9keSB7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgLnNlY3Rpb24udXBzZWxscy51cHNlbGxzLS10aGVtZWQge1xuICAgIHBhZGRpbmctdG9wOiA4MHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAxMjBweDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgLnNlY3Rpb24udXBzZWxscy51cHNlbGxzLS10aGVtZWQ6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgaGVpZ2h0OiA2MHB4O1xuICAgICAgdG9wOiAwcHg7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgYmFja2dyb3VuZC1zaXplOiAxMDAlIDEwMCU7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlWSgxKSBzY2FsZVgoLTEpIDtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyAgaGVpZ2h0PSc1MCcgd2lkdGg9JzQwMCcgcHJlc2VydmVBc3BlY3RSYXRpbz0nbm9uZSclM0VcXGEgICAgICAgICAgICUzQ3BvbHlnb24gcG9pbnRzPSczMjAsMCAwLDAgMCw1MCcgc3R5bGU9J2ZpbGw6d2hpdGU7JyAvJTNFXFxhICAgICAgICAgICAlM0Nwb2x5Z29uIHBvaW50cz0nMzIwLDAgNDAwLDAgNDAwLDUwJyBzdHlsZT0nZmlsbDp3aGl0ZTsnIC8lM0VcXGEgICAgICAgICAlM0Mvc3ZnJTNFXCIpOyB9XG4gICAgLnNlY3Rpb24udXBzZWxscy51cHNlbGxzLS10aGVtZWQ6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBoZWlnaHQ6IDEwMHB4O1xuICAgICAgYm90dG9tOiAwcHg7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgYmFja2dyb3VuZC1zaXplOiAxMDAlIDEwMCU7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlWSgtMSkgc2NhbGVYKDEpIDtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyAgaGVpZ2h0PSc1MCcgd2lkdGg9JzQwMCcgcHJlc2VydmVBc3BlY3RSYXRpbz0nbm9uZSclM0VcXGEgICAgICAgICAgICUzQ3BvbHlnb24gcG9pbnRzPScyODAsMCAwLDAgMCw1MCcgc3R5bGU9J2ZpbGw6JTIzMkMyOTM0OycgLyUzRVxcYSAgICAgICAgICAgJTNDcG9seWdvbiBwb2ludHM9JzI4MCwwIDQwMCwwIDQwMCw1MCcgc3R5bGU9J2ZpbGw6JTIzMkMyOTM0OycgLyUzRVxcYSAgICAgICAgICUzQy9zdmclM0VcIik7IH1cbiAgICAuc2VjdGlvbi51cHNlbGxzLnVwc2VsbHMtLXRoZW1lZCAuc2VjdGlvbl9fdGl0bGUge1xuICAgICAgY29sb3I6IHdoaXRlOyB9XG4gICAgLnNlY3Rpb24udXBzZWxscy51cHNlbGxzLS10aGVtZWQgfiAubmV3c2xldHRlci1zZWN0aW9uIHtcbiAgICAgIHBhZGRpbmctdG9wOiAwcHg7XG4gICAgICBtYXJnaW4tdG9wOiAwcHg7IH1cbiAgICAgIC5zZWN0aW9uLnVwc2VsbHMudXBzZWxscy0tdGhlbWVkIH4gLm5ld3NsZXR0ZXItc2VjdGlvbiAubmV3c2xldHRlci1zZWN0aW9uX19jb250YWluZXIge1xuICAgICAgICBwYWRkaW5nLXRvcDogMjBweDsgfVxuICAuc2VjdGlvbi51cHNlbGxzIC5zZWN0aW9uX190aXRsZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogNTBweDsgfVxuXG4ucHN3cCB7XG4gIHotaW5kZXg6IDEwMDAwOyB9XG4gIC5wc3dwIC5wc3dwX19jYXB0aW9uIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG5cbi53b29jb21tZXJjZS1jYXJ0IC5jYXJ0LWVtcHR5Lndvb2NvbW1lcmNlLWluZm8ge1xuICBjb2xvcjogYmxhY2s7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLXRvcDogMzBweDsgfVxuICAud29vY29tbWVyY2UtY2FydCAuY2FydC1lbXB0eS53b29jb21tZXJjZS1pbmZvICsgLnJldHVybi10by1zaG9wIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luLWJvdHRvbTogMTUwcHg7IH1cblxuLndvb2NvbW1lcmNlLWNhcnQgLmVudHJ5LWNvbnRlbnQge1xuICBmbGV4OiAwIDAgMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgbWF4LXdpZHRoOiAxMDAlOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLndvb2NvbW1lcmNlLWNhcnQgLmVudHJ5LWNvbnRlbnQge1xuICAgICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuXG4ud29vY29tbWVyY2UtY2FydCAud29vY29tbWVyY2UtY2FydC1mb3JtIHtcbiAgcGFkZGluZy1ib3R0b206IDQwcHg7IH1cblxuLndvb2NvbW1lcmNlLWNhcnQgLndvb2NvbW1lcmNlLWNhcnQtZm9ybV9fY29udGVudHMge1xuICB3aWR0aDogMTAwJTsgfVxuICAud29vY29tbWVyY2UtY2FydCAud29vY29tbWVyY2UtY2FydC1mb3JtX19jb250ZW50cyB0aGVhZCB0ciB0aCB7XG4gICAgZm9udC1mYW1pbHk6IEludGVyO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbGluZS1oZWlnaHQ6IDEuODk7XG4gICAgcGFkZGluZzogMjBweDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAjMDgxMzFmOyB9XG4gICAgLndvb2NvbW1lcmNlLWNhcnQgLndvb2NvbW1lcmNlLWNhcnQtZm9ybV9fY29udGVudHMgdGhlYWQgdHIgdGg6Zmlyc3QtY2hpbGQge1xuICAgICAgcGFkZGluZy1sZWZ0OiAwcHg7IH1cbiAgICAud29vY29tbWVyY2UtY2FydCAud29vY29tbWVyY2UtY2FydC1mb3JtX19jb250ZW50cyB0aGVhZCB0ciB0aDpsYXN0LWNoaWxkIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDYwcHg7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDsgfVxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XG4gICAgICAgIC53b29jb21tZXJjZS1jYXJ0IC53b29jb21tZXJjZS1jYXJ0LWZvcm1fX2NvbnRlbnRzIHRoZWFkIHRyIHRoOmxhc3QtY2hpbGQge1xuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7IH0gfVxuICAud29vY29tbWVyY2UtY2FydCAud29vY29tbWVyY2UtY2FydC1mb3JtX19jb250ZW50cyB0Ym9keSB0ciB7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNFQ0VDRUM7IH1cbiAgICAud29vY29tbWVyY2UtY2FydCAud29vY29tbWVyY2UtY2FydC1mb3JtX19jb250ZW50cyB0Ym9keSB0cjpsYXN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7IH1cbiAgICAud29vY29tbWVyY2UtY2FydCAud29vY29tbWVyY2UtY2FydC1mb3JtX19jb250ZW50cyB0Ym9keSB0ciB0ZCB7XG4gICAgICBwYWRkaW5nOiAyMHB4O1xuICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDI7XG4gICAgICBjb2xvcjogIzA4MTMxZjsgfVxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDhlbSkge1xuICAgICAgICAud29vY29tbWVyY2UtY2FydCAud29vY29tbWVyY2UtY2FydC1mb3JtX19jb250ZW50cyB0Ym9keSB0ciB0ZCB7XG4gICAgICAgICAgcGFkZGluZzogMTBweDsgfVxuICAgICAgICAgIC53b29jb21tZXJjZS1jYXJ0IC53b29jb21tZXJjZS1jYXJ0LWZvcm1fX2NvbnRlbnRzIHRib2R5IHRyIHRkID4gKiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsgfSB9XG4gICAgICAud29vY29tbWVyY2UtY2FydCAud29vY29tbWVyY2UtY2FydC1mb3JtX19jb250ZW50cyB0Ym9keSB0ciB0ZDpsYXN0LWNoaWxkIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogNjBweDsgfVxuICAgICAgICAud29vY29tbWVyY2UtY2FydCAud29vY29tbWVyY2UtY2FydC1mb3JtX19jb250ZW50cyB0Ym9keSB0ciB0ZDpsYXN0LWNoaWxkLCAud29vY29tbWVyY2UtY2FydCAud29vY29tbWVyY2UtY2FydC1mb3JtX19jb250ZW50cyB0Ym9keSB0ciB0ZDpsYXN0LWNoaWxkID4gKiB7XG4gICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XG4gICAgICAgICAgLndvb2NvbW1lcmNlLWNhcnQgLndvb2NvbW1lcmNlLWNhcnQtZm9ybV9fY29udGVudHMgdGJvZHkgdHIgdGQ6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4OyB9IH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgLndvb2NvbW1lcmNlLWNhcnQgLndvb2NvbW1lcmNlLWNhcnQtZm9ybV9fY29udGVudHMgdGJvZHkgdHIgdGQucHJvZHVjdC1yZW1vdmUge1xuICAgICAgICAgIHdpZHRoOiAyMHB4OyB9IH1cbiAgICAgIC53b29jb21tZXJjZS1jYXJ0IC53b29jb21tZXJjZS1jYXJ0LWZvcm1fX2NvbnRlbnRzIHRib2R5IHRyIHRkLnByb2R1Y3QtcmVtb3ZlIGEge1xuICAgICAgICBmb250LXNpemU6IDM1cHg7XG4gICAgICAgIGNvbG9yOiAjZDNkZWUzO1xuICAgICAgICBmb250LXdlaWdodDogMzAwOyB9XG4gICAgICAgIC53b29jb21tZXJjZS1jYXJ0IC53b29jb21tZXJjZS1jYXJ0LWZvcm1fX2NvbnRlbnRzIHRib2R5IHRyIHRkLnByb2R1Y3QtcmVtb3ZlIGE6aG92ZXIge1xuICAgICAgICAgIGNvbG9yOiAjZWUxYmI3OyB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAgIC53b29jb21tZXJjZS1jYXJ0IC53b29jb21tZXJjZS1jYXJ0LWZvcm1fX2NvbnRlbnRzIHRib2R5IHRyIHRkLnByb2R1Y3QtcXVhbnRpdHkge1xuICAgICAgICAgIHdpZHRoOiAxMiU7IH0gfVxuICAgICAgLndvb2NvbW1lcmNlLWNhcnQgLndvb2NvbW1lcmNlLWNhcnQtZm9ybV9fY29udGVudHMgdGJvZHkgdHIgdGQucHJvZHVjdC1xdWFudGl0eSAuc2NyZWVuLXJlYWRlci10ZXh0IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgICAgLndvb2NvbW1lcmNlLWNhcnQgLndvb2NvbW1lcmNlLWNhcnQtZm9ybV9fY29udGVudHMgdGJvZHkgdHIgdGQucHJvZHVjdC1xdWFudGl0eSBpbnB1dCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDBweDtcbiAgICAgICAgY29sb3I6ICMwODEzMWY7XG4gICAgICAgIG1heC13aWR0aDogODBweDtcbiAgICAgICAgbWluLXdpZHRoOiA2MHB4O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiA1cHg7IH1cbiAgICAgIC53b29jb21tZXJjZS1jYXJ0IC53b29jb21tZXJjZS1jYXJ0LWZvcm1fX2NvbnRlbnRzIHRib2R5IHRyIHRkLnByb2R1Y3QtdGh1bWJuYWlsOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICcnOyB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAgIC53b29jb21tZXJjZS1jYXJ0IC53b29jb21tZXJjZS1jYXJ0LWZvcm1fX2NvbnRlbnRzIHRib2R5IHRyIHRkLnByb2R1Y3QtdGh1bWJuYWlsIHtcbiAgICAgICAgICB3aWR0aDogMTM2cHg7IH0gfVxuICAgICAgLndvb2NvbW1lcmNlLWNhcnQgLndvb2NvbW1lcmNlLWNhcnQtZm9ybV9fY29udGVudHMgdGJvZHkgdHIgdGQucHJvZHVjdC10aHVtYm5haWwgaW1nIHtcbiAgICAgICAgd2lkdGg6IDk2cHg7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OyB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAgIC53b29jb21tZXJjZS1jYXJ0IC53b29jb21tZXJjZS1jYXJ0LWZvcm1fX2NvbnRlbnRzIHRib2R5IHRyIHRkLnByb2R1Y3QtcHJpY2Uge1xuICAgICAgICAgIHdpZHRoOiAxMiU7IH0gfVxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgICAud29vY29tbWVyY2UtY2FydCAud29vY29tbWVyY2UtY2FydC1mb3JtX19jb250ZW50cyB0Ym9keSB0ciB0ZC5wcm9kdWN0LXN1YnRvdGFsIHtcbiAgICAgICAgICB3aWR0aDogMTIlOyB9IH1cbiAgICAgIC53b29jb21tZXJjZS1jYXJ0IC53b29jb21tZXJjZS1jYXJ0LWZvcm1fX2NvbnRlbnRzIHRib2R5IHRyIHRkLnByb2R1Y3QtbmFtZSBhIHtcbiAgICAgICAgZm9udC1zaXplOiAyMnB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMS42NDtcbiAgICAgICAgY29sb3I6ICMwODEzMWY7IH1cbiAgICAgIC53b29jb21tZXJjZS1jYXJ0IC53b29jb21tZXJjZS1jYXJ0LWZvcm1fX2NvbnRlbnRzIHRib2R5IHRyIHRkLnByb2R1Y3QtbmFtZSAudmFyaWF0aW9uIHtcbiAgICAgICAgbWFyZ2luOiAwOyB9XG4gICAgICAgIC53b29jb21tZXJjZS1jYXJ0IC53b29jb21tZXJjZS1jYXJ0LWZvcm1fX2NvbnRlbnRzIHRib2R5IHRyIHRkLnByb2R1Y3QtbmFtZSAudmFyaWF0aW9uIGR0IHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgICAgIC53b29jb21tZXJjZS1jYXJ0IC53b29jb21tZXJjZS1jYXJ0LWZvcm1fX2NvbnRlbnRzIHRib2R5IHRyIHRkLnByb2R1Y3QtbmFtZSAudmFyaWF0aW9uIHAge1xuICAgICAgICAgIG1hcmdpbjogMDsgfVxuICAgICAgLndvb2NvbW1lcmNlLWNhcnQgLndvb2NvbW1lcmNlLWNhcnQtZm9ybV9fY29udGVudHMgdGJvZHkgdHIgdGQucHJvZHVjdC1uYW1lIC53b3ctbW9kZWwge1xuICAgICAgICBjb2xvcjogcmdiYSg4LCAxOSwgMzEsIDAuNSk7IH1cbiAgICAgICAgLndvb2NvbW1lcmNlLWNhcnQgLndvb2NvbW1lcmNlLWNhcnQtZm9ybV9fY29udGVudHMgdGJvZHkgdHIgdGQucHJvZHVjdC1uYW1lIC53b3ctbW9kZWwgc3Ryb25nIHtcbiAgICAgICAgICBjb2xvcjogIzA4MTMxZjtcbiAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplOyB9XG4gICAgLndvb2NvbW1lcmNlLWNhcnQgLndvb2NvbW1lcmNlLWNhcnQtZm9ybV9fY29udGVudHMgdGJvZHkgdHIgLmFjdGlvbnMge1xuICAgICAgcGFkZGluZy1sZWZ0OiAwcHg7XG4gICAgICBwYWRkaW5nLXRvcDogMzVweDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDBweCAhaW1wb3J0YW50OyB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAgICAgLndvb2NvbW1lcmNlLWNhcnQgLndvb2NvbW1lcmNlLWNhcnQtZm9ybV9fY29udGVudHMgdGJvZHkgdHIgLmFjdGlvbnMgLmFjdGlvbnMtYnV0dG9ucyB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7IH1cbiAgICAgICAgICAud29vY29tbWVyY2UtY2FydCAud29vY29tbWVyY2UtY2FydC1mb3JtX19jb250ZW50cyB0Ym9keSB0ciAuYWN0aW9ucyAuYWN0aW9ucy1idXR0b25zID4gKiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwcHggIWltcG9ydGFudDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMHB4ICFpbXBvcnRhbnQ7IH0gfVxuICAgICAgLndvb2NvbW1lcmNlLWNhcnQgLndvb2NvbW1lcmNlLWNhcnQtZm9ybV9fY29udGVudHMgdGJvZHkgdHIgLmFjdGlvbnMgLmFjdGlvbnMtYnV0dG9ucyA+IC5idXR0b24ge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAjMkMyOTM0O1xuICAgICAgICBjb2xvcjogIzJDMjkzNDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDU2cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7IH1cbiAgICAgICAgLndvb2NvbW1lcmNlLWNhcnQgLndvb2NvbW1lcmNlLWNhcnQtZm9ybV9fY29udGVudHMgdGJvZHkgdHIgLmFjdGlvbnMgLmFjdGlvbnMtYnV0dG9ucyA+IC5idXR0b246YWN0aXZlLCAud29vY29tbWVyY2UtY2FydCAud29vY29tbWVyY2UtY2FydC1mb3JtX19jb250ZW50cyB0Ym9keSB0ciAuYWN0aW9ucyAuYWN0aW9ucy1idXR0b25zID4gLmJ1dHRvbjpmb2N1cywgLndvb2NvbW1lcmNlLWNhcnQgLndvb2NvbW1lcmNlLWNhcnQtZm9ybV9fY29udGVudHMgdGJvZHkgdHIgLmFjdGlvbnMgLmFjdGlvbnMtYnV0dG9ucyA+IC5idXR0b246aG92ZXIge1xuICAgICAgICAgIGJhY2tncm91bmQ6ICNFRTFCQjY7XG4gICAgICAgICAgYm9yZGVyOiAycHggc29saWQgI0VFMUJCNjtcbiAgICAgICAgICBjb2xvcjogd2hpdGU7IH1cbiAgICAgICAgLndvb2NvbW1lcmNlLWNhcnQgLndvb2NvbW1lcmNlLWNhcnQtZm9ybV9fY29udGVudHMgdGJvZHkgdHIgLmFjdGlvbnMgLmFjdGlvbnMtYnV0dG9ucyA+IC5idXR0b24uYnV0dG9uLS1zbWFsbCwgLndvb2NvbW1lcmNlLWNhcnQgLndvb2NvbW1lcmNlLWNhcnQtZm9ybV9fY29udGVudHMgdGJvZHkgdHIgLmFjdGlvbnMgLndvb2NvbW1lcmNlLW1lc3NhZ2UgLmFjdGlvbnMtYnV0dG9ucyA+IC5idXR0b24sIC53b29jb21tZXJjZS1tZXNzYWdlIC53b29jb21tZXJjZS1jYXJ0IC53b29jb21tZXJjZS1jYXJ0LWZvcm1fX2NvbnRlbnRzIHRib2R5IHRyIC5hY3Rpb25zIC5hY3Rpb25zLWJ1dHRvbnMgPiAuYnV0dG9uLCAud29vY29tbWVyY2UtY2FydCAud29vY29tbWVyY2UtY2FydC1mb3JtX19jb250ZW50cyB0Ym9keSB0ciAuYWN0aW9ucyAud29vY29tbWVyY2UtTWVzc2FnZSAuYWN0aW9ucy1idXR0b25zID4gLmJ1dHRvbiwgLndvb2NvbW1lcmNlLU1lc3NhZ2UgLndvb2NvbW1lcmNlLWNhcnQgLndvb2NvbW1lcmNlLWNhcnQtZm9ybV9fY29udGVudHMgdGJvZHkgdHIgLmFjdGlvbnMgLmFjdGlvbnMtYnV0dG9ucyA+IC5idXR0b24sIC53b29jb21tZXJjZS1jYXJ0IC53b29jb21tZXJjZS1jYXJ0LWZvcm1fX2NvbnRlbnRzIHRib2R5IHRyIC5hY3Rpb25zIC5wcm9kdWN0LWNhcmRfX2JvZHkgLmFjdGlvbnMtYnV0dG9ucyA+IC5idXR0b24sIC5wcm9kdWN0LWNhcmRfX2JvZHkgLndvb2NvbW1lcmNlLWNhcnQgLndvb2NvbW1lcmNlLWNhcnQtZm9ybV9fY29udGVudHMgdGJvZHkgdHIgLmFjdGlvbnMgLmFjdGlvbnMtYnV0dG9ucyA+IC5idXR0b24sIC53b29jb21tZXJjZS1jYXJ0IC53b29jb21tZXJjZS1jYXJ0LWZvcm1fX2NvbnRlbnRzIC5zaG9wX3RhYmxlIHRib2R5IHRyIC5hY3Rpb25zIC5hY3Rpb25zLWJ1dHRvbnMgPiBhLmJ1dHRvbiwgLnNob3BfdGFibGUgLndvb2NvbW1lcmNlLWNhcnQgLndvb2NvbW1lcmNlLWNhcnQtZm9ybV9fY29udGVudHMgdGJvZHkgdHIgLmFjdGlvbnMgLmFjdGlvbnMtYnV0dG9ucyA+IGEuYnV0dG9uLCAud29vY29tbWVyY2UtY2FydCAud29vY29tbWVyY2UtY2FydC1mb3JtX19jb250ZW50cyB0Ym9keSAuc2hvcF90YWJsZSB0Zm9vdCB0ciAuYWN0aW9ucyAuYWN0aW9ucy1idXR0b25zID4gYS5idXR0b24sIC53b29jb21tZXJjZS1jYXJ0IC53b29jb21tZXJjZS1jYXJ0LWZvcm1fX2NvbnRlbnRzIHRib2R5IHRyIC5hY3Rpb25zIGJvZHkud29vY29tbWVyY2UtY2hlY2tvdXQgLndvb2NvbW1lcmNlLWZvcm0tY291cG9uIC5hY3Rpb25zLWJ1dHRvbnMgPiAuYnV0dG9uLCBib2R5Lndvb2NvbW1lcmNlLWNoZWNrb3V0IC53b29jb21tZXJjZS1mb3JtLWNvdXBvbiAud29vY29tbWVyY2UtY2FydCAud29vY29tbWVyY2UtY2FydC1mb3JtX19jb250ZW50cyB0Ym9keSB0ciAuYWN0aW9ucyAuYWN0aW9ucy1idXR0b25zID4gLmJ1dHRvbiB7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDQycHg7IH1cbiAgICAgICAgLndvb2NvbW1lcmNlLWNhcnQgLndvb2NvbW1lcmNlLWNhcnQtZm9ybV9fY29udGVudHMgdGJvZHkgdHIgLmFjdGlvbnMgLmFjdGlvbnMtYnV0dG9ucyA+IC5idXR0b24uYnV0dG9uLS1tZWRpdW0sIC53b29jb21tZXJjZS1jYXJ0IC53b29jb21tZXJjZS1jYXJ0LWZvcm1fX2NvbnRlbnRzIHRib2R5IHRyIC5hY3Rpb25zIC5hY3Rpb25zLWJ1dHRvbnMgPiAuYnV0dG9uLCAud29vY29tbWVyY2UtY2FydCAud29vY29tbWVyY2UtY2FydC1mb3JtX19jb250ZW50cyB0Ym9keSB0ciAuYWN0aW9ucyAuY291cG9uIC5hY3Rpb25zLWJ1dHRvbnMgPiAuYnV0dG9uLCAud29vY29tbWVyY2UtY2FydCAud29vY29tbWVyY2UtY2FydC1mb3JtX19jb250ZW50cyB0Ym9keSB0ciAuYWN0aW9ucyAuYWN0aW9ucy1idXR0b25zID4gLmJ1dHRvbi5uZXdzbGV0dGVyLXNlY3Rpb25fX2Zvcm0tYnV0dG9uLCAud29vY29tbWVyY2UtY2FydCAud29vY29tbWVyY2UtY2FydC1mb3JtX19jb250ZW50cyB0Ym9keSB0ciAuYWN0aW9ucyAuY3VzdG9tZXItc2VydmljZV9fYnV0dG9ucyAuYWN0aW9ucy1idXR0b25zID4gLmJ1dHRvbiwgLmN1c3RvbWVyLXNlcnZpY2VfX2J1dHRvbnMgLndvb2NvbW1lcmNlLWNhcnQgLndvb2NvbW1lcmNlLWNhcnQtZm9ybV9fY29udGVudHMgdGJvZHkgdHIgLmFjdGlvbnMgLmFjdGlvbnMtYnV0dG9ucyA+IC5idXR0b24ge1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiA1MHB4OyB9XG4gICAgICAgIC53b29jb21tZXJjZS1jYXJ0IC53b29jb21tZXJjZS1jYXJ0LWZvcm1fX2NvbnRlbnRzIHRib2R5IHRyIC5hY3Rpb25zIC5hY3Rpb25zLWJ1dHRvbnMgPiAuYnV0dG9uLmNoZWNrb3V0LWJ1dHRvbiB7XG4gICAgICAgICAgYmFja2dyb3VuZDogI0VFMUJCNjtcbiAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDE1cHg7IH1cbiAgICAgICAgICAud29vY29tbWVyY2UtY2FydCAud29vY29tbWVyY2UtY2FydC1mb3JtX19jb250ZW50cyB0Ym9keSB0ciAuYWN0aW9ucyAuYWN0aW9ucy1idXR0b25zID4gLmJ1dHRvbi5jaGVja291dC1idXR0b246YmVmb3JlIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogI0VFMUJCNiAhaW1wb3J0YW50OyB9XG4gICAgICAgICAgLndvb2NvbW1lcmNlLWNhcnQgLndvb2NvbW1lcmNlLWNhcnQtZm9ybV9fY29udGVudHMgdGJvZHkgdHIgLmFjdGlvbnMgLmFjdGlvbnMtYnV0dG9ucyA+IC5idXR0b24uY2hlY2tvdXQtYnV0dG9uOmFjdGl2ZSwgLndvb2NvbW1lcmNlLWNhcnQgLndvb2NvbW1lcmNlLWNhcnQtZm9ybV9fY29udGVudHMgdGJvZHkgdHIgLmFjdGlvbnMgLmFjdGlvbnMtYnV0dG9ucyA+IC5idXR0b24uY2hlY2tvdXQtYnV0dG9uOmZvY3VzLCAud29vY29tbWVyY2UtY2FydCAud29vY29tbWVyY2UtY2FydC1mb3JtX19jb250ZW50cyB0Ym9keSB0ciAuYWN0aW9ucyAuYWN0aW9ucy1idXR0b25zID4gLmJ1dHRvbi5jaGVja291dC1idXR0b246aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogI2M3MGY5NjtcbiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTsgfVxuICAgICAgICAgICAgLndvb2NvbW1lcmNlLWNhcnQgLndvb2NvbW1lcmNlLWNhcnQtZm9ybV9fY29udGVudHMgdGJvZHkgdHIgLmFjdGlvbnMgLmFjdGlvbnMtYnV0dG9ucyA+IC5idXR0b24uY2hlY2tvdXQtYnV0dG9uOmFjdGl2ZTpiZWZvcmUsIC53b29jb21tZXJjZS1jYXJ0IC53b29jb21tZXJjZS1jYXJ0LWZvcm1fX2NvbnRlbnRzIHRib2R5IHRyIC5hY3Rpb25zIC5hY3Rpb25zLWJ1dHRvbnMgPiAuYnV0dG9uLmNoZWNrb3V0LWJ1dHRvbjpmb2N1czpiZWZvcmUsIC53b29jb21tZXJjZS1jYXJ0IC53b29jb21tZXJjZS1jYXJ0LWZvcm1fX2NvbnRlbnRzIHRib2R5IHRyIC5hY3Rpb25zIC5hY3Rpb25zLWJ1dHRvbnMgPiAuYnV0dG9uLmNoZWNrb3V0LWJ1dHRvbjpob3ZlcjpiZWZvcmUge1xuICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICNjNzBmOTYgIWltcG9ydGFudDsgfVxuICAgICAgLndvb2NvbW1lcmNlLWNhcnQgLndvb2NvbW1lcmNlLWNhcnQtZm9ybV9fY29udGVudHMgdGJvZHkgdHIgLmFjdGlvbnMgLmNvdXBvbiB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB3aWR0aDogNDUwcHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7IH1cbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgICAgICAgLndvb2NvbW1lcmNlLWNhcnQgLndvb2NvbW1lcmNlLWNhcnQtZm9ybV9fY29udGVudHMgdGJvZHkgdHIgLmFjdGlvbnMgLmNvdXBvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7IH0gfVxuICAgICAgICAud29vY29tbWVyY2UtY2FydCAud29vY29tbWVyY2UtY2FydC1mb3JtX19jb250ZW50cyB0Ym9keSB0ciAuYWN0aW9ucyAuY291cG9uIGxhYmVsIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgICAgIC53b29jb21tZXJjZS1jYXJ0IC53b29jb21tZXJjZS1jYXJ0LWZvcm1fX2NvbnRlbnRzIHRib2R5IHRyIC5hY3Rpb25zIC5jb3Vwb24gaW5wdXQge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMS40NTtcbiAgICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuNXB4O1xuICAgICAgICAgIGNvbG9yOiAjMDgxMzFmO1xuICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgICAgaGVpZ2h0OiA1NHB4O1xuICAgICAgICAgIGJvcmRlcjogc29saWQgMXB4ICNkM2RlZTM7XG4gICAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDhlbSkge1xuICAud29vY29tbWVyY2UtY2FydCB0YWJsZS5zaG9wX3RhYmxlX3Jlc3BvbnNpdmUgdHIgdGQge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7IH1cbiAgICAud29vY29tbWVyY2UtY2FydCB0YWJsZS5zaG9wX3RhYmxlX3Jlc3BvbnNpdmUgdHIgdGQ6YmVmb3JlIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxZW07XG4gICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgICBjb2xvcjogIzdlN2U3ZTtcbiAgICAgIGZvbnQtc2l6ZTogMTJweDsgfVxuICAgIC53b29jb21tZXJjZS1jYXJ0IHRhYmxlLnNob3BfdGFibGVfcmVzcG9uc2l2ZSB0ciB0ZC5wcm9kdWN0LXRodW1ibmFpbCBpbWcge1xuICAgICAgd2lkdGg6IDkwcHg7IH1cbiAgICAud29vY29tbWVyY2UtY2FydCB0YWJsZS5zaG9wX3RhYmxlX3Jlc3BvbnNpdmUgdHIgdGQucHJvZHVjdC1uYW1lLCAud29vY29tbWVyY2UtY2FydCB0YWJsZS5zaG9wX3RhYmxlX3Jlc3BvbnNpdmUgdHIgdGQucHJvZHVjdC1uYW1lICoge1xuICAgICAgZm9udC1zaXplOiAxOHB4ICFpbXBvcnRhbnQ7IH1cbiAgICAud29vY29tbWVyY2UtY2FydCB0YWJsZS5zaG9wX3RhYmxlX3Jlc3BvbnNpdmUgdHIgdGQucHJvZHVjdC1uYW1lIGEge1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMWVtOyB9XG4gICAgLndvb2NvbW1lcmNlLWNhcnQgdGFibGUuc2hvcF90YWJsZV9yZXNwb25zaXZlIHRyIHRkLnByb2R1Y3QtbmFtZSAud293LW1vZGVsID4gc3BhbiB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgIC53b29jb21tZXJjZS1jYXJ0IHRhYmxlLnNob3BfdGFibGVfcmVzcG9uc2l2ZSB0ciB0ZCA+ICo6Zmlyc3QtY2hpbGQge1xuICAgICAgbWluLWhlaWdodDogNTRweDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9IH1cblxuLndvb2NvbW1lcmNlLWNhcnQgLmNhcnQtY29sbGF0ZXJhbHMge1xuICBtYXgtd2lkdGg6IDkwcmVtO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICBiYWNrZ3JvdW5kOiAjZjNmM2YzO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctdG9wOiA3MHB4O1xuICBwYWRkaW5nLWJvdHRvbTogODBweDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBtYXJnaW4tYm90dG9tOiAtNTBweDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgICAud29vY29tbWVyY2UtY2FydCAuY2FydC1jb2xsYXRlcmFscyB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfSB9XG4gIC53b29jb21tZXJjZS1jYXJ0IC5jYXJ0LWNvbGxhdGVyYWxzIC5jcm9zcy1zZWxscyB7XG4gICAgbWF4LXdpZHRoOiA5MHJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgIGZsZXg6IDAgMCA1MCU7XG4gICAgbWF4LXdpZHRoOiA1MCU7XG4gICAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgICBtYXgtd2lkdGg6IDUwJTtcbiAgICBtYXJnaW4tbGVmdDogaW5pdGlhbDsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAud29vY29tbWVyY2UtY2FydCAuY2FydC1jb2xsYXRlcmFscyAuY3Jvc3Mtc2VsbHMge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtOyB9IH1cbiAgICAud29vY29tbWVyY2UtY2FydCAuY2FydC1jb2xsYXRlcmFscyAuY3Jvc3Mtc2VsbHMgPiBoMiB7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICAgICAgLndvb2NvbW1lcmNlLWNhcnQgLmNhcnQtY29sbGF0ZXJhbHMgLmNyb3NzLXNlbGxzIHtcbiAgICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gICAgICAgIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gICAgICAgIG1heC13aWR0aDogMTAwJTsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkgYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAud29vY29tbWVyY2UtY2FydCAuY2FydC1jb2xsYXRlcmFscyAuY3Jvc3Mtc2VsbHMge1xuICAgICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuICAgIC53b29jb21tZXJjZS1jYXJ0IC5jYXJ0LWNvbGxhdGVyYWxzIC5jcm9zcy1zZWxscyAuY3Jvc3Mtc2VsbHNfX2NvbHVtbiB7XG4gICAgICBmbGV4OiAwIDAgNTAlO1xuICAgICAgbWF4LXdpZHRoOiA1MCU7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gICAgICBtYXgtd2lkdGg6IDUwJTsgfVxuICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgICAgLndvb2NvbW1lcmNlLWNhcnQgLmNhcnQtY29sbGF0ZXJhbHMgLmNyb3NzLXNlbGxzIC5jcm9zcy1zZWxsc19fY29sdW1uIHtcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuICAgIC53b29jb21tZXJjZS1jYXJ0IC5jYXJ0LWNvbGxhdGVyYWxzIC5jcm9zcy1zZWxscyAucHJvZHVjdHMuY29sdW1ucy0yIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBtYXJnaW46IDBweDtcbiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7IH1cbiAgICAgIC53b29jb21tZXJjZS1jYXJ0IC5jYXJ0LWNvbGxhdGVyYWxzIC5jcm9zcy1zZWxscyAucHJvZHVjdHMuY29sdW1ucy0yIC5wcm9kdWN0IHtcbiAgICAgICAgZmxleDogMCAwIDUwJTtcbiAgICAgICAgbWF4LXdpZHRoOiA1MCU7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDUwJTsgfVxuICAgICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgICAgIC53b29jb21tZXJjZS1jYXJ0IC5jYXJ0LWNvbGxhdGVyYWxzIC5jcm9zcy1zZWxscyAucHJvZHVjdHMuY29sdW1ucy0yIC5wcm9kdWN0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtOyB9IH1cbiAgLndvb2NvbW1lcmNlLWNhcnQgLmNhcnQtY29sbGF0ZXJhbHMgLmNhcnRfdG90YWxzIHtcbiAgICBmbGV4OiAwIDAgMzcuNSU7XG4gICAgbWF4LXdpZHRoOiAzNy41JTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xuICAgIG1heC13aWR0aDogMzcuNSU7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLndvb2NvbW1lcmNlLWNhcnQgLmNhcnQtY29sbGF0ZXJhbHMgLmNhcnRfdG90YWxzIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTsgfSB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XG4gICAgICAud29vY29tbWVyY2UtY2FydCAuY2FydC1jb2xsYXRlcmFscyAuY2FydF90b3RhbHMge1xuICAgICAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IDUwMHB4OyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC53b29jb21tZXJjZS1jYXJ0IC5jYXJ0LWNvbGxhdGVyYWxzIC5jYXJ0X3RvdGFscyB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTsgfSB9XG4gICAgLndvb2NvbW1lcmNlLWNhcnQgLmNhcnQtY29sbGF0ZXJhbHMgLmNhcnRfdG90YWxzIC53Yy1wcm9jZWVkLXRvLWNoZWNrb3V0IHtcbiAgICAgIG1hcmdpbi10b3A6IDUwcHg7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAgIC53b29jb21tZXJjZS1jYXJ0IC5jYXJ0LWNvbGxhdGVyYWxzIC5jYXJ0X3RvdGFscyAud2MtcHJvY2VlZC10by1jaGVja291dCAud2NwcGVjLWNoZWNrb3V0LWJ1dHRvbnNfX3NlcGFyYXRvciB7XG4gICAgICAgIG1hcmdpbjogMTBweCAwOyB9XG4gICAgICAud29vY29tbWVyY2UtY2FydCAuY2FydC1jb2xsYXRlcmFscyAuY2FydF90b3RhbHMgLndjLXByb2NlZWQtdG8tY2hlY2tvdXQgLmJ1dHRvbiB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4OyB9XG4gICAgLndvb2NvbW1lcmNlLWNhcnQgLmNhcnQtY29sbGF0ZXJhbHMgLmNhcnRfdG90YWxzIC5zaG9wX3RhYmxlIHRib2R5IHRyIHRkLCAud29vY29tbWVyY2UtY2FydCAuY2FydC1jb2xsYXRlcmFscyAuY2FydF90b3RhbHMgLnNob3BfdGFibGUgdGJvZHkgdHIgdGgge1xuICAgICAgcGFkZGluZzogMHB4O1xuICAgICAgcGFkZGluZy10b3A6IDRweDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiA0cHg7IH1cbiAgICAud29vY29tbWVyY2UtY2FydCAuY2FydC1jb2xsYXRlcmFscyAuY2FydF90b3RhbHMgLnNob3BfdGFibGUgdGJvZHkgdHIgdGQge1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgLndvb2NvbW1lcmNlLWNhcnQgLmNhcnQtY29sbGF0ZXJhbHMgLmNyb3NzLXNlbGxzID4gaDIsIC53b29jb21tZXJjZS1jYXJ0IC5jYXJ0LWNvbGxhdGVyYWxzIC5jYXJ0X3RvdGFscyA+IGgyIHtcbiAgICBmb250LXNpemU6IDI4cHg7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuNXB4O1xuICAgIGNvbG9yOiAjMDgxMzFmO1xuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7IH1cbiAgLndvb2NvbW1lcmNlLWNhcnQgLmNhcnQtY29sbGF0ZXJhbHM6YmVmb3JlLCAud29vY29tbWVyY2UtY2FydCAuY2FydC1jb2xsYXRlcmFsczphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgYmFja2dyb3VuZDogI2YzZjNmMztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwcHg7XG4gICAgYm90dG9tOiAwcHg7XG4gICAgd2lkdGg6IGNhbGMoICggMTAwdncgLSAxMDAlICkgLyAyKTsgfVxuICAud29vY29tbWVyY2UtY2FydCAuY2FydC1jb2xsYXRlcmFsczpiZWZvcmUge1xuICAgIGxlZnQ6IGNhbGMoICggMTAwdncgLSAxMDAlICkgLyAtMik7IH1cbiAgLndvb2NvbW1lcmNlLWNhcnQgLmNhcnQtY29sbGF0ZXJhbHM6YWZ0ZXIge1xuICAgIHJpZ2h0OiBjYWxjKCAoIDEwMHZ3IC0gMTAwJSApIC8gLTIpOyB9XG5cbi50YWJzLWNhcm91c2VsIHtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLnRhYnMtY2Fyb3VzZWwgLm93bC1uYXYgLm93bC1wcmV2LCAudGFicy1jYXJvdXNlbCAub3dsLW5hdiAub3dsLW5leHQge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA0NSU7IH1cbiAgICAudGFicy1jYXJvdXNlbCAub3dsLW5hdiAub3dsLXByZXYub3dsLXByZXYsIC50YWJzLWNhcm91c2VsIC5vd2wtbmF2IC5vd2wtbmV4dC5vd2wtcHJldiB7XG4gICAgICBsZWZ0OiAxMHB4OyB9XG4gICAgICAudGFicy1jYXJvdXNlbCAub3dsLW5hdiAub3dsLXByZXYub3dsLXByZXY6YmVmb3JlLCAudGFicy1jYXJvdXNlbCAub3dsLW5hdiAub3dsLW5leHQub3dsLXByZXY6YmVmb3JlIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAvKiB1c2UgIWltcG9ydGFudCB0byBwcmV2ZW50IGlzc3VlcyB3aXRoIGJyb3dzZXIgZXh0ZW5zaW9ucyB0aGF0IGNoYW5nZSBmb250cyAqL1xuICAgICAgICBmb250LWZhbWlseTogJ2ljb21vb24nICFpbXBvcnRhbnQ7XG4gICAgICAgIHNwZWFrOiBub25lO1xuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIC8qIEJldHRlciBGb250IFJlbmRlcmluZyA9PT09PT09PT09PSAqL1xuICAgICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgICAgICAgY29udGVudDogXCLupIRcIjtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoLTEpO1xuICAgICAgICBjb2xvcjogIzJjMjkzNDtcbiAgICAgICAgZm9udC1zaXplOiA1MHB4OyB9XG4gICAgLnRhYnMtY2Fyb3VzZWwgLm93bC1uYXYgLm93bC1wcmV2Lm93bC1uZXh0LCAudGFicy1jYXJvdXNlbCAub3dsLW5hdiAub3dsLW5leHQub3dsLW5leHQge1xuICAgICAgcmlnaHQ6IDEwcHg7IH1cbiAgICAgIC50YWJzLWNhcm91c2VsIC5vd2wtbmF2IC5vd2wtcHJldi5vd2wtbmV4dDpiZWZvcmUsIC50YWJzLWNhcm91c2VsIC5vd2wtbmF2IC5vd2wtbmV4dC5vd2wtbmV4dDpiZWZvcmUge1xuICAgICAgICAvKiB1c2UgIWltcG9ydGFudCB0byBwcmV2ZW50IGlzc3VlcyB3aXRoIGJyb3dzZXIgZXh0ZW5zaW9ucyB0aGF0IGNoYW5nZSBmb250cyAqL1xuICAgICAgICBmb250LWZhbWlseTogJ2ljb21vb24nICFpbXBvcnRhbnQ7XG4gICAgICAgIHNwZWFrOiBub25lO1xuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIC8qIEJldHRlciBGb250IFJlbmRlcmluZyA9PT09PT09PT09PSAqL1xuICAgICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgICAgICAgY29udGVudDogXCLupIRcIjtcbiAgICAgICAgY29sb3I6ICMyYzI5MzQ7XG4gICAgICAgIGZvbnQtc2l6ZTogNTBweDsgfVxuXG4udGFicy1jYXJvdXNlbF9fdGFicyB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIHdpZHRoOiBhdXRvO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcGFkZGluZzogMTVweCAwO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RkZTJlYjtcbiAgbWFyZ2luOiAwIDEwMHB4OyB9XG4gIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAudGFicy1jYXJvdXNlbF9fdGFicyBsaSB7XG4gICAgb3V0bGluZTogMDsgfVxuICAudGFicy1jYXJvdXNlbF9fdGFicyBhLFxuICAudGFicy1jYXJvdXNlbF9fdGFicyAuYnV0dG9uIHtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAwLjdyZW0gMXJlbTsgfVxuICAudGFicy1jYXJvdXNlbF9fdGFicyBpbnB1dCxcbiAgLnRhYnMtY2Fyb3VzZWxfX3RhYnMgc2VsZWN0LFxuICAudGFicy1jYXJvdXNlbF9fdGFicyBhLFxuICAudGFicy1jYXJvdXNlbF9fdGFicyBidXR0b24ge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLnRhYnMtY2Fyb3VzZWxfX3RhYnMgaW5wdXQge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuXG4udGFicy1jYXJvdXNlbF9fdGFiIHtcbiAgZm9udC1zaXplOiAyMnB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiByZ2JhKDQ0LCA0MSwgNTIsIDAuNSk7XG4gIG1hcmdpbjogMCA0MHB4O1xuICBwYWRkaW5nOiAxNXB4IDA7XG4gIGJvcmRlci1ib3R0b206IDNweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgbGluZS1oZWlnaHQ6IDFlbTtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIC50YWJzLWNhcm91c2VsX190YWIuYWN0aXZlIHtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiAjRUUxQkI2OyB9XG5cbi50YWJzLWNhcm91c2VsX19pdGVtcyAudGFicy1jYXJvdXNlbF9faXRlbSAuc2VjdGlvbiB7XG4gIG1hcmdpbjogMHB4OyB9XG5cbi50YWJzLWNhcm91c2VsX19pdGVtcyAudGFicy1jYXJvdXNlbF9faXRlbSAudGV4dC1pbWFnZV9faW1hZ2Uge1xuICB0cmFuc2Zvcm06IGluaXRpYWw7XG4gIG1hcmdpbi1ib3R0b206IDBweDsgfVxuXG4udGFicy1jYXJvdXNlbF9faXRlbXMgLnRhYnMtY2Fyb3VzZWxfX2l0ZW0gLnNlY3Rpb25fX2JvZHkge1xuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG5cbi50YWJzLWNhcm91c2VsX19pdGVtcyAudGFicy1jYXJvdXNlbF9faXRlbSAudGV4dC1pbWFnZV9fdGl0bGUge1xuICB3aWR0aDogODAlO1xuICBmb250LXNpemU6IDI4cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGxldHRlci1zcGFjaW5nOiAtMC41cHg7IH1cblxuLnRhYnMtY2Fyb3VzZWxfX2l0ZW1zIC50YWJzLWNhcm91c2VsX19pdGVtIC50ZXh0LWltYWdlX19jb250ZW50IHtcbiAgd2lkdGg6IDkwJTtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBsaW5lLWhlaWdodDogMS43O1xuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICBjb2xvcjogcmdiYSg4LCAxOSwgMzEsIDAuNSk7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzQuOTM3NWVtKSB7XG4gIC50ZXh0LWltYWdlIC5zZWN0aW9uX19ib2R5IHtcbiAgICBvdmVyZmxvdzogaGlkZGVuOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gIC50ZXh0LWltYWdlIC5zZWN0aW9uX19ib2R5IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7IH1cbiAgICAudGV4dC1pbWFnZSAuc2VjdGlvbl9fYm9keSAuc2VjdGlvbl9fY29sdW1uOm50aC1jaGlsZCgxKSB+IC5zZWN0aW9uX19jb2x1bW4ge1xuICAgICAgbWFyZ2luLXRvcDogMHB4OyB9IH1cblxuLnRleHQtaW1hZ2UgLnNlY3Rpb25fX3RpdGxlIHtcbiAgZmxleDogMCAwIDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gIG1heC13aWR0aDogMTAwJTtcbiAgZm9udC1zaXplOiA0MnB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IDEuMTc7XG4gIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAudGV4dC1pbWFnZSAuc2VjdGlvbl9fdGl0bGUge1xuICAgICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnRleHQtaW1hZ2UgLnNlY3Rpb25fX3RpdGxlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG4udGV4dC1pbWFnZV9fdGl0bGUge1xuICBmb250LXNpemU6IDUwcHg7XG4gIGZvbnQtd2VpZ2h0OiA4MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjE2O1xuICBsZXR0ZXItc3BhY2luZzogLTAuNXB4O1xuICBjb2xvcjogIzJDMjkzNDtcbiAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgd2lkdGg6IDExMCU7XG4gIG1hcmdpbi10b3A6IDUwcHg7IH1cbiAgLnNlY3Rpb24tLWRhcmsgLnRleHQtaW1hZ2VfX3RpdGxlIHtcbiAgICBjb2xvcjogd2hpdGU7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgLnRleHQtaW1hZ2VfX3RpdGxlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG4udGV4dC1pbWFnZV9fY29udGVudCA+ICo6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwcHg7IH1cblxuLnRleHQtaW1hZ2VfX2NvbnRlbnQgaDEsIC50ZXh0LWltYWdlX19jb250ZW50IGgyLCAudGV4dC1pbWFnZV9fY29udGVudCBoMywgLnRleHQtaW1hZ2VfX2NvbnRlbnQgaDQsIC50ZXh0LWltYWdlX19jb250ZW50IGg1LCAudGV4dC1pbWFnZV9fY29udGVudCBoNiB7XG4gIGZvbnQtd2VpZ2h0OiA4MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjE2O1xuICBsZXR0ZXItc3BhY2luZzogLTAuNXB4O1xuICBjb2xvcjogIzJDMjkzNDtcbiAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi10b3A6IDUwcHg7IH1cbiAgLnNlY3Rpb24tLWRhcmsgLnRleHQtaW1hZ2VfX2NvbnRlbnQgaDEsIC5zZWN0aW9uLS1kYXJrIC50ZXh0LWltYWdlX19jb250ZW50IGgyLCAuc2VjdGlvbi0tZGFyayAudGV4dC1pbWFnZV9fY29udGVudCBoMywgLnNlY3Rpb24tLWRhcmsgLnRleHQtaW1hZ2VfX2NvbnRlbnQgaDQsIC5zZWN0aW9uLS1kYXJrIC50ZXh0LWltYWdlX19jb250ZW50IGg1LCAuc2VjdGlvbi0tZGFyayAudGV4dC1pbWFnZV9fY29udGVudCBoNiB7XG4gICAgY29sb3I6IHdoaXRlOyB9XG5cbi50ZXh0LWltYWdlX19jb250ZW50IHtcbiAgZm9udC1zaXplOiAyMnB4O1xuICBsaW5lLWhlaWdodDogMS42NDtcbiAgY29sb3I6IHJnYmEoNDQsIDQxLCA1MiwgMC41KTtcbiAgd2lkdGg6IDgwJTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAudGV4dC1pbWFnZV9fY29udGVudCB7XG4gICAgICB3aWR0aDogOTAlO1xuICAgICAgbWFyZ2luLXRvcDogMTBweDsgfSB9XG4gIC50ZXh0LWltYWdlX19jb250ZW50IC5idXR0b24ge1xuICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgIGJhY2tncm91bmQ6ICMyQzI5MzQ7IH1cbiAgICAudGV4dC1pbWFnZV9fY29udGVudCAuYnV0dG9uOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgei1pbmRleDogMjtcbiAgICAgIHRvcDogMHB4O1xuICAgICAgbGVmdDogMHB4O1xuICAgICAgcmlnaHQ6IDBweDtcbiAgICAgIGJvdHRvbTogMHB4O1xuICAgICAgYm9yZGVyOiA3cHggc29saWQgI0VFMUJCNjtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjI1cyBlYXNlLW91dCwgY29sb3IgMC4yNXMgZWFzZS1vdXQ7IH1cbiAgICAudGV4dC1pbWFnZV9fY29udGVudCAuYnV0dG9uOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDBweDtcbiAgICAgIGxlZnQ6IDBweDtcbiAgICAgIHJpZ2h0OiAwcHg7XG4gICAgICBib3R0b206IDBweDtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHdoaXRlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoNHB4LCA0cHgpOyB9XG4gICAgLnRleHQtaW1hZ2VfX2NvbnRlbnQgLmJ1dHRvbjphZnRlciB7XG4gICAgICBib3JkZXI6IDJweCBzb2xpZCAjNzk4M0ZGO1xuICAgICAgYm9yZGVyLWltYWdlLXNvdXJjZTogbGluZWFyLWdyYWRpZW50KDkwZGVnLCAjRUUxQkI2LCAjNzk4M0ZGKTtcbiAgICAgIGJvcmRlci1pbWFnZS1zbGljZTogMTsgfVxuICAgIC50ZXh0LWltYWdlX19jb250ZW50IC5idXR0b246YmVmb3JlIHtcbiAgICAgIGJvcmRlci1jb2xvcjogIzJDMjkzNCAhaW1wb3J0YW50OyB9XG4gICAgLnRleHQtaW1hZ2VfX2NvbnRlbnQgLmJ1dHRvbjphY3RpdmUsIC50ZXh0LWltYWdlX19jb250ZW50IC5idXR0b246Zm9jdXMsIC50ZXh0LWltYWdlX19jb250ZW50IC5idXR0b246aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogIzQ0M2Y1MTsgfVxuICAgICAgLnRleHQtaW1hZ2VfX2NvbnRlbnQgLmJ1dHRvbjphY3RpdmU6YmVmb3JlLCAudGV4dC1pbWFnZV9fY29udGVudCAuYnV0dG9uOmZvY3VzOmJlZm9yZSwgLnRleHQtaW1hZ2VfX2NvbnRlbnQgLmJ1dHRvbjpob3ZlcjpiZWZvcmUge1xuICAgICAgICBib3JkZXItY29sb3I6ICM0NDNmNTEgIWltcG9ydGFudDsgfVxuICAuc2VjdGlvbi0tZGFyayAudGV4dC1pbWFnZV9fY29udGVudCB7XG4gICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTsgfVxuICAgIC5zZWN0aW9uLS1kYXJrIC50ZXh0LWltYWdlX19jb250ZW50IC5idXR0b24ge1xuICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICAgIGNvbG9yOiAjMkMyOTM0OyB9XG4gICAgICAuc2VjdGlvbi0tZGFyayAudGV4dC1pbWFnZV9fY29udGVudCAuYnV0dG9uOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgdG9wOiAwcHg7XG4gICAgICAgIGxlZnQ6IDBweDtcbiAgICAgICAgcmlnaHQ6IDBweDtcbiAgICAgICAgYm90dG9tOiAwcHg7XG4gICAgICAgIGJvcmRlcjogN3B4IHNvbGlkICNFRTFCQjY7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjI1cyBlYXNlLW91dCwgY29sb3IgMC4yNXMgZWFzZS1vdXQ7IH1cbiAgICAgIC5zZWN0aW9uLS1kYXJrIC50ZXh0LWltYWdlX19jb250ZW50IC5idXR0b246YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMHB4O1xuICAgICAgICBsZWZ0OiAwcHg7XG4gICAgICAgIHJpZ2h0OiAwcHg7XG4gICAgICAgIGJvdHRvbTogMHB4O1xuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCB3aGl0ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoNHB4LCA0cHgpOyB9XG4gICAgICAuc2VjdGlvbi0tZGFyayAudGV4dC1pbWFnZV9fY29udGVudCAuYnV0dG9uOmFmdGVyIHtcbiAgICAgICAgYm9yZGVyOiAycHggc29saWQgIzc5ODNGRjtcbiAgICAgICAgYm9yZGVyLWltYWdlLXNvdXJjZTogbGluZWFyLWdyYWRpZW50KDkwZGVnLCAjRUUxQkI2LCAjNzk4M0ZGKTtcbiAgICAgICAgYm9yZGVyLWltYWdlLXNsaWNlOiAxOyB9XG4gICAgICAuc2VjdGlvbi0tZGFyayAudGV4dC1pbWFnZV9fY29udGVudCAuYnV0dG9uOmJlZm9yZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogd2hpdGUgIWltcG9ydGFudDsgfVxuICAgICAgLnNlY3Rpb24tLWRhcmsgLnRleHQtaW1hZ2VfX2NvbnRlbnQgLmJ1dHRvbjphY3RpdmUsIC5zZWN0aW9uLS1kYXJrIC50ZXh0LWltYWdlX19jb250ZW50IC5idXR0b246Zm9jdXMsIC5zZWN0aW9uLS1kYXJrIC50ZXh0LWltYWdlX19jb250ZW50IC5idXR0b246aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZTZlNmU2O1xuICAgICAgICBjb2xvcjogIzJDMjkzNDsgfVxuICAgICAgICAuc2VjdGlvbi0tZGFyayAudGV4dC1pbWFnZV9fY29udGVudCAuYnV0dG9uOmFjdGl2ZTpiZWZvcmUsIC5zZWN0aW9uLS1kYXJrIC50ZXh0LWltYWdlX19jb250ZW50IC5idXR0b246Zm9jdXM6YmVmb3JlLCAuc2VjdGlvbi0tZGFyayAudGV4dC1pbWFnZV9fY29udGVudCAuYnV0dG9uOmhvdmVyOmJlZm9yZSB7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiAjZTZlNmU2ICFpbXBvcnRhbnQ7IH1cblxuLnRleHQtaW1hZ2VfX2ltYWdlIHtcbiAgYWxpZ24tc2VsZjogc2VsZi1zdGFydDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnRleHQtaW1hZ2VfX2ltYWdlIHtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xNSk7XG4gICAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XG4gICAgICBtYXJnaW4tYm90dG9tOiA3MHB4OyB9IH1cbiAgLnNlY3Rpb24tLXJldmVyc2UgLnRleHQtaW1hZ2VfX2ltYWdlIHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDA7IH1cblxuLm5ld3NsZXR0ZXItc2VjdGlvbiB7XG4gIC8qIFBlcm1hbGluayAtIHVzZSB0byBlZGl0IGFuZCBzaGFyZSB0aGlzIGdyYWRpZW50OiBodHRwczovL2NvbG9yemlsbGEuY29tL2dyYWRpZW50LWVkaXRvci8jMWU1Nzk5KzAsN2RiOWU4KzEwMCAqL1xuICBiYWNrZ3JvdW5kOiAjRUUxQkI2O1xuICAvKiBPbGQgYnJvd3NlcnMgKi9cbiAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQobGVmdCwgI0VFMUJCNiAwJSwgIzc5ODNGRiAxMDAlKTtcbiAgLyogRkYzLjYtMTUgKi9cbiAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVmdCwgI0VFMUJCNiAwJSwgIzc5ODNGRiAxMDAlKTtcbiAgLyogQ2hyb21lMTAtMjUsU2FmYXJpNS4xLTYgKi9cbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjRUUxQkI2IDAlLCAjNzk4M0ZGIDEwMCUpO1xuICAvKiBXM0MsIElFMTArLCBGRjE2KywgQ2hyb21lMjYrLCBPcGVyYTEyKywgU2FmYXJpNysgKi9cbiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoIHN0YXJ0Q29sb3JzdHI9JyNFRTFCQjYnLCBlbmRDb2xvcnN0cj0nIzc5ODNGRicsR3JhZGllbnRUeXBlPTEgKTtcbiAgLyogSUU2LTkgKi8gfVxuICAubmV3c2xldHRlci1zZWN0aW9uLm5ld3NsZXR0ZXItc2VjdGlvbi0tZGFyaywgLnNlY3Rpb24udXBzZWxscy51cHNlbGxzLS10aGVtZWQgfiAubmV3c2xldHRlci1zZWN0aW9uIHtcbiAgICBiYWNrZ3JvdW5kOiAjMkMyOTM0OyB9XG5cbi5uZXdzbGV0dGVyLXNlY3Rpb25fX2NvbnRhaW5lciB7XG4gIG1heC13aWR0aDogOTByZW07XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gIGZsZXg6IDAgMCAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmctdG9wOiA0MHB4O1xuICBwYWRkaW5nLWJvdHRvbTogNDBweDtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5uZXdzbGV0dGVyLXNlY3Rpb25fX2NvbnRhaW5lciB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTsgfSB9XG5cbi5uZXdzbGV0dGVyLXNlY3Rpb25fX3RpdGxlIHtcbiAgZm9udC1zaXplOiA0OHB4O1xuICBmb250LXdlaWdodDogODAwO1xuICBsZXR0ZXItc3BhY2luZzogLTAuNXB4O1xuICBtYXJnaW4tYm90dG9tOiAwcHg7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XG4gICAgLm5ld3NsZXR0ZXItc2VjdGlvbl9fdGl0bGUge1xuICAgICAgZm9udC1zaXplOiA0MHB4OyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgLm5ld3NsZXR0ZXItc2VjdGlvbl9fdGl0bGUge1xuICAgICAgZm9udC1zaXplOiAzNnB4OyB9IH1cblxuLm5ld3NsZXR0ZXItc2VjdGlvbl9fZGVzY3JpcHRpb24ge1xuICBvcGFjaXR5OiAwLjU7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgbWFyZ2luLWJvdHRvbTogMjRweDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgICAubmV3c2xldHRlci1zZWN0aW9uX19kZXNjcmlwdGlvbiB7XG4gICAgICBmb250LXNpemU6IDE2cHg7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAubmV3c2xldHRlci1zZWN0aW9uX19kZXNjcmlwdGlvbiB7XG4gICAgICBmb250LXNpemU6IDE2cHg7IH0gfVxuXG4ubmV3c2xldHRlci1zZWN0aW9uX19mb3JtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IDYwMHB4O1xuICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgLm5ld3NsZXR0ZXItc2VjdGlvbl9fZm9ybSAud3BjZjctZm9ybSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXg7IH1cbiAgICAubmV3c2xldHRlci1zZWN0aW9uX19mb3JtIC53cGNmNy1mb3JtIC53cGNmNy1ub3QtdmFsaWQtdGlwIHtcbiAgICAgIGNvbG9yOiB3aGl0ZTsgfVxuICAgIC5uZXdzbGV0dGVyLXNlY3Rpb25fX2Zvcm0gLndwY2Y3LWZvcm0gLndwY2Y3LXJlc3BvbnNlLW91dHB1dCB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgICAubmV3c2xldHRlci1zZWN0aW9uX19mb3JtIC53cGNmNy1mb3JtIC53cGNmNy1mb3JtLWNvbnRyb2wtd3JhcCB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cblxuLm5ld3NsZXR0ZXItc2VjdGlvbl9fZm9ybS1pbnB1dCwgLm5ld3NsZXR0ZXItc2VjdGlvbl9fZm9ybSAud3BjZjctZm9ybS1jb250cm9sLXdyYXAgaW5wdXQge1xuICBoZWlnaHQ6IDU0cHg7XG4gIGJvcmRlcjogc29saWQgMXB4ICMyQzI5MzQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIHBhZGRpbmctbGVmdDogMjBweDtcbiAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICBmb250LXNpemU6IDIwcHg7XG4gIGNvbG9yOiByZ2JhKDgsIDE5LCAzMSwgMC43KTsgfVxuICAubmV3c2xldHRlci1zZWN0aW9uX19mb3JtLWlucHV0OjpwbGFjZWhvbGRlciwgLm5ld3NsZXR0ZXItc2VjdGlvbl9fZm9ybSAud3BjZjctZm9ybS1jb250cm9sLXdyYXAgaW5wdXQ6OnBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogcmdiYSg4LCAxOSwgMzEsIDAuMyk7IH1cbiAgLm5ld3NsZXR0ZXItc2VjdGlvbl9fZm9ybS1pbnB1dDpmb2N1cywgLm5ld3NsZXR0ZXItc2VjdGlvbl9fZm9ybS1pbnB1dDphY3RpdmUsIC5uZXdzbGV0dGVyLXNlY3Rpb25fX2Zvcm0gLndwY2Y3LWZvcm0tY29udHJvbC13cmFwIGlucHV0OmZvY3VzLCAubmV3c2xldHRlci1zZWN0aW9uX19mb3JtIC53cGNmNy1mb3JtLWNvbnRyb2wtd3JhcCBpbnB1dDphY3RpdmUge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgYm9yZGVyOiBzb2xpZCAxcHggIzJDMjkzNDtcbiAgICBib3JkZXItcmlnaHQ6IG5vbmU7IH1cblxuLm5ld3NsZXR0ZXItc2VjdGlvbl9fZm9ybS1idXR0b24ge1xuICBiYWNrZ3JvdW5kOiAjMkMyOTM0O1xuICBoZWlnaHQ6IDU0cHg7IH1cbiAgLm5ld3NsZXR0ZXItc2VjdGlvbl9fZm9ybS1idXR0b246YmVmb3JlIHtcbiAgICBib3JkZXItY29sb3I6ICMyQzI5MzQgIWltcG9ydGFudDsgfVxuICAubmV3c2xldHRlci1zZWN0aW9uX19mb3JtLWJ1dHRvbjphY3RpdmUsIC5uZXdzbGV0dGVyLXNlY3Rpb25fX2Zvcm0tYnV0dG9uOmZvY3VzLCAubmV3c2xldHRlci1zZWN0aW9uX19mb3JtLWJ1dHRvbjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogIzQ0M2Y1MTsgfVxuICAgIC5uZXdzbGV0dGVyLXNlY3Rpb25fX2Zvcm0tYnV0dG9uOmFjdGl2ZTpiZWZvcmUsIC5uZXdzbGV0dGVyLXNlY3Rpb25fX2Zvcm0tYnV0dG9uOmZvY3VzOmJlZm9yZSwgLm5ld3NsZXR0ZXItc2VjdGlvbl9fZm9ybS1idXR0b246aG92ZXI6YmVmb3JlIHtcbiAgICAgIGJvcmRlci1jb2xvcjogIzQ0M2Y1MSAhaW1wb3J0YW50OyB9XG4gIC5uZXdzbGV0dGVyLXNlY3Rpb24tLWRhcmsgLm5ld3NsZXR0ZXItc2VjdGlvbl9fZm9ybS1idXR0b24sIC5zZWN0aW9uLnVwc2VsbHMudXBzZWxscy0tdGhlbWVkIH4gLm5ld3NsZXR0ZXItc2VjdGlvbiAubmV3c2xldHRlci1zZWN0aW9uX19mb3JtLWJ1dHRvbiB7XG4gICAgYmFja2dyb3VuZDogI0VFMUJCNjtcbiAgICBjb2xvcjogd2hpdGU7IH1cbiAgICAubmV3c2xldHRlci1zZWN0aW9uLS1kYXJrIC5uZXdzbGV0dGVyLXNlY3Rpb25fX2Zvcm0tYnV0dG9uOmJlZm9yZSwgLnNlY3Rpb24udXBzZWxscy51cHNlbGxzLS10aGVtZWQgfiAubmV3c2xldHRlci1zZWN0aW9uIC5uZXdzbGV0dGVyLXNlY3Rpb25fX2Zvcm0tYnV0dG9uOmJlZm9yZSB7XG4gICAgICBib3JkZXItY29sb3I6ICNFRTFCQjYgIWltcG9ydGFudDsgfVxuICAgIC5uZXdzbGV0dGVyLXNlY3Rpb24tLWRhcmsgLm5ld3NsZXR0ZXItc2VjdGlvbl9fZm9ybS1idXR0b246YWN0aXZlLCAuc2VjdGlvbi51cHNlbGxzLnVwc2VsbHMtLXRoZW1lZCB+IC5uZXdzbGV0dGVyLXNlY3Rpb24gLm5ld3NsZXR0ZXItc2VjdGlvbl9fZm9ybS1idXR0b246YWN0aXZlLCAubmV3c2xldHRlci1zZWN0aW9uLS1kYXJrIC5uZXdzbGV0dGVyLXNlY3Rpb25fX2Zvcm0tYnV0dG9uOmZvY3VzLCAuc2VjdGlvbi51cHNlbGxzLnVwc2VsbHMtLXRoZW1lZCB+IC5uZXdzbGV0dGVyLXNlY3Rpb24gLm5ld3NsZXR0ZXItc2VjdGlvbl9fZm9ybS1idXR0b246Zm9jdXMsIC5uZXdzbGV0dGVyLXNlY3Rpb24tLWRhcmsgLm5ld3NsZXR0ZXItc2VjdGlvbl9fZm9ybS1idXR0b246aG92ZXIsIC5zZWN0aW9uLnVwc2VsbHMudXBzZWxscy0tdGhlbWVkIH4gLm5ld3NsZXR0ZXItc2VjdGlvbiAubmV3c2xldHRlci1zZWN0aW9uX19mb3JtLWJ1dHRvbjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAjYzcwZjk2O1xuICAgICAgY29sb3I6IHdoaXRlOyB9XG4gICAgICAubmV3c2xldHRlci1zZWN0aW9uLS1kYXJrIC5uZXdzbGV0dGVyLXNlY3Rpb25fX2Zvcm0tYnV0dG9uOmFjdGl2ZTpiZWZvcmUsIC5zZWN0aW9uLnVwc2VsbHMudXBzZWxscy0tdGhlbWVkIH4gLm5ld3NsZXR0ZXItc2VjdGlvbiAubmV3c2xldHRlci1zZWN0aW9uX19mb3JtLWJ1dHRvbjphY3RpdmU6YmVmb3JlLCAubmV3c2xldHRlci1zZWN0aW9uLS1kYXJrIC5uZXdzbGV0dGVyLXNlY3Rpb25fX2Zvcm0tYnV0dG9uOmZvY3VzOmJlZm9yZSwgLnNlY3Rpb24udXBzZWxscy51cHNlbGxzLS10aGVtZWQgfiAubmV3c2xldHRlci1zZWN0aW9uIC5uZXdzbGV0dGVyLXNlY3Rpb25fX2Zvcm0tYnV0dG9uOmZvY3VzOmJlZm9yZSwgLm5ld3NsZXR0ZXItc2VjdGlvbi0tZGFyayAubmV3c2xldHRlci1zZWN0aW9uX19mb3JtLWJ1dHRvbjpob3ZlcjpiZWZvcmUsIC5zZWN0aW9uLnVwc2VsbHMudXBzZWxscy0tdGhlbWVkIH4gLm5ld3NsZXR0ZXItc2VjdGlvbiAubmV3c2xldHRlci1zZWN0aW9uX19mb3JtLWJ1dHRvbjpob3ZlcjpiZWZvcmUge1xuICAgICAgICBib3JkZXItY29sb3I6ICNjNzBmOTYgIWltcG9ydGFudDsgfVxuXG4ubmV3c2xldHRlci1zZWN0aW9uX19oZWxwIHtcbiAgb3BhY2l0eTogMC41O1xuICBmb250LXNpemU6IDE2cHg7XG4gIG1hcmdpbi10b3A6IDEwcHg7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XG4gICAgLm5ld3NsZXR0ZXItc2VjdGlvbl9faGVscCB7XG4gICAgICBmb250LXNpemU6IDE3cHg7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAubmV3c2xldHRlci1zZWN0aW9uX19oZWxwIHtcbiAgICAgIGZvbnQtc2l6ZTogMTZweDsgfSB9XG5cbi5jdXN0b21lci1zZXJ2aWNlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YzZjNmMzsgfVxuXG4uY3VzdG9tZXItc2VydmljZV9fY29sdW1ucyB7XG4gIG1heC13aWR0aDogOTByZW07XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7IH1cblxuLmN1c3RvbWVyLXNlcnZpY2VfX2NvbHVtbiB7XG4gIGZsZXg6IDAgMCA1MCU7XG4gIG1heC13aWR0aDogNTAlO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgbWF4LXdpZHRoOiA1MCU7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuY3VzdG9tZXItc2VydmljZV9fY29sdW1uIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDhlbSkge1xuICAgIC5jdXN0b21lci1zZXJ2aWNlX19jb2x1bW4ge1xuICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0OGVtKSBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5jdXN0b21lci1zZXJ2aWNlX19jb2x1bW4ge1xuICAgICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuXG4uY3VzdG9tZXItc2VydmljZV9fYnV0dG9ucyB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLmN1c3RvbWVyLXNlcnZpY2VfX2J1dHRvbnMgLmJ1dHRvbiB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiAycHggc29saWQgIzJDMjkzNDtcbiAgICBjb2xvcjogIzJDMjkzNDtcbiAgICBsaW5lLWhlaWdodDogNTZweDtcbiAgICBtYXJnaW46IDEwcHg7IH1cbiAgICAuY3VzdG9tZXItc2VydmljZV9fYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSwgLmN1c3RvbWVyLXNlcnZpY2VfX2J1dHRvbnMgLmJ1dHRvbjpmb2N1cywgLmN1c3RvbWVyLXNlcnZpY2VfX2J1dHRvbnMgLmJ1dHRvbjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAjRUUxQkI2O1xuICAgICAgYm9yZGVyOiAycHggc29saWQgI0VFMUJCNjtcbiAgICAgIGNvbG9yOiB3aGl0ZTsgfVxuICAgIC5jdXN0b21lci1zZXJ2aWNlX19idXR0b25zIC5idXR0b24uYnV0dG9uLS1zbWFsbCwgLmN1c3RvbWVyLXNlcnZpY2VfX2J1dHRvbnMgLndvb2NvbW1lcmNlLW1lc3NhZ2UgLmJ1dHRvbiwgLndvb2NvbW1lcmNlLW1lc3NhZ2UgLmN1c3RvbWVyLXNlcnZpY2VfX2J1dHRvbnMgLmJ1dHRvbiwgLmN1c3RvbWVyLXNlcnZpY2VfX2J1dHRvbnMgLndvb2NvbW1lcmNlLU1lc3NhZ2UgLmJ1dHRvbiwgLndvb2NvbW1lcmNlLU1lc3NhZ2UgLmN1c3RvbWVyLXNlcnZpY2VfX2J1dHRvbnMgLmJ1dHRvbiwgLmN1c3RvbWVyLXNlcnZpY2VfX2J1dHRvbnMgLnByb2R1Y3QtY2FyZF9fYm9keSAuYnV0dG9uLCAucHJvZHVjdC1jYXJkX19ib2R5IC5jdXN0b21lci1zZXJ2aWNlX19idXR0b25zIC5idXR0b24sIC5jdXN0b21lci1zZXJ2aWNlX19idXR0b25zIC5zaG9wX3RhYmxlIHRib2R5IHRyIGEuYnV0dG9uLCAuc2hvcF90YWJsZSB0Ym9keSB0ciAuY3VzdG9tZXItc2VydmljZV9fYnV0dG9ucyBhLmJ1dHRvbiwgLmN1c3RvbWVyLXNlcnZpY2VfX2J1dHRvbnMgLnNob3BfdGFibGUgdGZvb3QgdHIgYS5idXR0b24sIC5zaG9wX3RhYmxlIHRmb290IHRyIC5jdXN0b21lci1zZXJ2aWNlX19idXR0b25zIGEuYnV0dG9uLCAuY3VzdG9tZXItc2VydmljZV9fYnV0dG9ucyBib2R5Lndvb2NvbW1lcmNlLWNoZWNrb3V0IC53b29jb21tZXJjZS1mb3JtLWNvdXBvbiAuYnV0dG9uLCBib2R5Lndvb2NvbW1lcmNlLWNoZWNrb3V0IC53b29jb21tZXJjZS1mb3JtLWNvdXBvbiAuY3VzdG9tZXItc2VydmljZV9fYnV0dG9ucyAuYnV0dG9uIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiA0MnB4OyB9XG4gICAgLmN1c3RvbWVyLXNlcnZpY2VfX2J1dHRvbnMgLmJ1dHRvbi5idXR0b24tLW1lZGl1bSwgLmN1c3RvbWVyLXNlcnZpY2VfX2J1dHRvbnMgLndvb2NvbW1lcmNlLWNhcnQgLndvb2NvbW1lcmNlLWNhcnQtZm9ybV9fY29udGVudHMgdGJvZHkgdHIgLmFjdGlvbnMgLmFjdGlvbnMtYnV0dG9ucyA+IC5idXR0b24sIC53b29jb21tZXJjZS1jYXJ0IC53b29jb21tZXJjZS1jYXJ0LWZvcm1fX2NvbnRlbnRzIHRib2R5IHRyIC5hY3Rpb25zIC5jdXN0b21lci1zZXJ2aWNlX19idXR0b25zIC5hY3Rpb25zLWJ1dHRvbnMgPiAuYnV0dG9uLCAuY3VzdG9tZXItc2VydmljZV9fYnV0dG9ucyAud29vY29tbWVyY2UtY2FydCAud29vY29tbWVyY2UtY2FydC1mb3JtX19jb250ZW50cyB0Ym9keSB0ciAuYWN0aW9ucyAuY291cG9uIC5idXR0b24sIC53b29jb21tZXJjZS1jYXJ0IC53b29jb21tZXJjZS1jYXJ0LWZvcm1fX2NvbnRlbnRzIHRib2R5IHRyIC5hY3Rpb25zIC5jb3Vwb24gLmN1c3RvbWVyLXNlcnZpY2VfX2J1dHRvbnMgLmJ1dHRvbiwgLmN1c3RvbWVyLXNlcnZpY2VfX2J1dHRvbnMgLmJ1dHRvbi5uZXdzbGV0dGVyLXNlY3Rpb25fX2Zvcm0tYnV0dG9uLCAuY3VzdG9tZXItc2VydmljZV9fYnV0dG9ucyAuYnV0dG9uIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiA1MHB4OyB9XG5cbi5jdXN0b21lci1zZXJ2aWNlLWl0ZW0ge1xuICBwYWRkaW5nLWxlZnQ6IDEwMHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1ib3R0b206IDYwcHg7IH1cbiAgLmN1c3RvbWVyLXNlcnZpY2UtaXRlbTo6YmVmb3JlIHtcbiAgICAvKiB1c2UgIWltcG9ydGFudCB0byBwcmV2ZW50IGlzc3VlcyB3aXRoIGJyb3dzZXIgZXh0ZW5zaW9ucyB0aGF0IGNoYW5nZSBmb250cyAqL1xuICAgIGZvbnQtZmFtaWx5OiAnaWNvbW9vbicgIWltcG9ydGFudDtcbiAgICBzcGVhazogbm9uZTtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICAvKiBCZXR0ZXIgRm9udCBSZW5kZXJpbmcgPT09PT09PT09PT0gKi9cbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAgIGNvbnRlbnQ6IFwi7qSMXCI7XG4gICAgZm9udC1zaXplOiA3MHB4O1xuICAgIGNvbG9yOiAjMkMyOTM0O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMTVweDsgfVxuXG4uY3VzdG9tZXItc2VydmljZS1pdGVtX190aXRsZSB7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGxldHRlci1zcGFjaW5nOiAtMC41cHg7XG4gIGNvbG9yOiAjMkMyOTM0OyB9XG5cbi5jdXN0b21lci1zZXJ2aWNlLWl0ZW1fX2Rlc2Mge1xuICBmb250LXNpemU6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIGNvbG9yOiByZ2JhKDQ0LCA0MSwgNTIsIDAuNSk7IH1cblxuLmN1c3RvbWVyLXNlcnZpY2UtaXRlbV9faW5mbyB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbjogMHB4OyB9XG4gIC5jdXN0b21lci1zZXJ2aWNlLWl0ZW1fX2luZm8gbGkge1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuNXB4O1xuICAgIGNvbG9yOiAjMDgxMzFmO1xuICAgIHBhZGRpbmctbGVmdDogNDBweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAuY3VzdG9tZXItc2VydmljZS1pdGVtX19pbmZvIGxpOjpiZWZvcmUge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICBsZWZ0OiAwOyB9XG5cbi5jdXN0b21lci1zZXJ2aWNlLWl0ZW1fX3RlbDo6YmVmb3JlIHtcbiAgLyogdXNlICFpbXBvcnRhbnQgdG8gcHJldmVudCBpc3N1ZXMgd2l0aCBicm93c2VyIGV4dGVuc2lvbnMgdGhhdCBjaGFuZ2UgZm9udHMgKi9cbiAgZm9udC1mYW1pbHk6ICdpY29tb29uJyAhaW1wb3J0YW50O1xuICBzcGVhazogbm9uZTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICAvKiBCZXR0ZXIgRm9udCBSZW5kZXJpbmcgPT09PT09PT09PT0gKi9cbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIGNvbnRlbnQ6IFwi7qWCXCI7XG4gIGZvbnQtc2l6ZTogMjRweDsgfVxuXG4uY3VzdG9tZXItc2VydmljZS1pdGVtX19lbWFpbDo6YmVmb3JlIHtcbiAgLyogdXNlICFpbXBvcnRhbnQgdG8gcHJldmVudCBpc3N1ZXMgd2l0aCBicm93c2VyIGV4dGVuc2lvbnMgdGhhdCBjaGFuZ2UgZm9udHMgKi9cbiAgZm9udC1mYW1pbHk6ICdpY29tb29uJyAhaW1wb3J0YW50O1xuICBzcGVhazogbm9uZTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICAvKiBCZXR0ZXIgRm9udCBSZW5kZXJpbmcgPT09PT09PT09PT0gKi9cbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIGNvbnRlbnQ6IFwi7qSLXCI7XG4gIGZvbnQtc2l6ZTogMjRweDsgfVxuXG4ud29vY29tbWVyY2UtYWNjb3VudCAud29vY29tbWVyY2Uge1xuICBtYXgtd2lkdGg6IDkwcmVtO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwOyB9XG5cbi53b29jb21tZXJjZS1hY2NvdW50Om5vdCgubG9nZ2VkLWluKSAud29vY29tbWVyY2Uge1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG5cbi53b29jb21tZXJjZS1hY2NvdW50IC51LWNvbHVtbnMgPiBkaXYge1xuICBtYXJnaW46IDAgMjBweDsgfVxuXG4ud29vY29tbWVyY2UtYWNjb3VudCA+IC53b29jb21tZXJjZS1mb3JtLWxvZ2luIHtcbiAgd2lkdGg6IDUwMHB4O1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMCBhdXRvOyB9XG5cbi53b29jb21tZXJjZS1hY2NvdW50IC53b29jb21tZXJjZSA+IGgyIHtcbiAgZm9udC1zaXplOiAyOHB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjVweDtcbiAgY29sb3I6ICMwODEzMWY7XG4gIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4ud29vY29tbWVyY2UtYWNjb3VudCAud29vY29tbWVyY2UtTXlBY2NvdW50LW5hdmlnYXRpb24ge1xuICBmbGV4OiAwIDAgMjUlO1xuICBtYXgtd2lkdGg6IDI1JTtcbiAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gIG1heC13aWR0aDogMjUlOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLndvb2NvbW1lcmNlLWFjY291bnQgLndvb2NvbW1lcmNlLU15QWNjb3VudC1uYXZpZ2F0aW9uIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgLndvb2NvbW1lcmNlLWFjY291bnQgLndvb2NvbW1lcmNlLU15QWNjb3VudC1uYXZpZ2F0aW9uIHtcbiAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC53b29jb21tZXJjZS1hY2NvdW50IC53b29jb21tZXJjZS1NeUFjY291bnQtbmF2aWdhdGlvbiB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTsgfSB9XG4gIC53b29jb21tZXJjZS1hY2NvdW50IC53b29jb21tZXJjZS1NeUFjY291bnQtbmF2aWdhdGlvbiB1bCB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW46IDA7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAgIC53b29jb21tZXJjZS1hY2NvdW50IC53b29jb21tZXJjZS1NeUFjY291bnQtbmF2aWdhdGlvbiB1bCBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfSB9XG4gICAgLndvb2NvbW1lcmNlLWFjY291bnQgLndvb2NvbW1lcmNlLU15QWNjb3VudC1uYXZpZ2F0aW9uIHVsIGxpIGEge1xuICAgICAgZm9udC1zaXplOiAyMnB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgIGNvbG9yOiAjMkMyOTM0O1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgcGFkZGluZzogNXB4OyB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAgICAgLndvb2NvbW1lcmNlLWFjY291bnQgLndvb2NvbW1lcmNlLU15QWNjb3VudC1uYXZpZ2F0aW9uIHVsIGxpIGEge1xuICAgICAgICAgIHBhZGRpbmc6IDEwcHg7IH0gfVxuICAgIC53b29jb21tZXJjZS1hY2NvdW50IC53b29jb21tZXJjZS1NeUFjY291bnQtbmF2aWdhdGlvbiB1bCBsaS5pcy1hY3RpdmUgYSB7XG4gICAgICBjb2xvcjogI0VFMUJCNjsgfVxuXG4ud29vY29tbWVyY2UtYWNjb3VudCAud29vY29tbWVyY2UtTXlBY2NvdW50LWNvbnRlbnQge1xuICBmbGV4OiAwIDAgNzUlO1xuICBtYXgtd2lkdGg6IDc1JTtcbiAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gIG1heC13aWR0aDogNzUlOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLndvb2NvbW1lcmNlLWFjY291bnQgLndvb2NvbW1lcmNlLU15QWNjb3VudC1jb250ZW50IHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgLndvb2NvbW1lcmNlLWFjY291bnQgLndvb2NvbW1lcmNlLU15QWNjb3VudC1jb250ZW50IHtcbiAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC53b29jb21tZXJjZS1hY2NvdW50IC53b29jb21tZXJjZS1NeUFjY291bnQtY29udGVudCB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLndvb2NvbW1lcmNlLWFjY291bnQgLmNvbDItc2V0IHtcbiAgICBkaXNwbGF5OiBmbGV4OyB9IH1cblxuLndvb2NvbW1lcmNlLWFjY291bnQgLmNvbDItc2V0ID4gKiB7XG4gIGZsZXg6IDE7XG4gIG1hcmdpbi1ib3R0b206IDQwcHg7IH1cblxuLyoqIExvZ2luICoqL1xuLndjLWF1dGgtbG9naW4ge1xuICB3aWR0aDogNTAwcHg7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAxMDBweCBhdXRvOyB9XG5cbi53b29jb21tZXJjZS1sb3N0LXBhc3N3b3JkIC53b29jb21tZXJjZSB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgd2lkdGg6IDQwcmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi1ib3R0b206IDEwMHB4OyB9XG4gIC53b29jb21tZXJjZS1sb3N0LXBhc3N3b3JkIC53b29jb21tZXJjZSAud29vY29tbWVyY2UtbWVzc2FnZSB7XG4gICAgY29sb3I6ICM3ZDRjZDY7XG4gICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgYmFja2dyb3VuZDogbm9uZTsgfVxuXG4uc2VjdGlvbi5zZWN0aW9uLS1kaXZpZGVyLWdyYWRpZW50LXRvcCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLXRvcDogODBweDsgfVxuICAuc2VjdGlvbi5zZWN0aW9uLS1kaXZpZGVyLWdyYWRpZW50LXRvcDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBoZWlnaHQ6IDYwcHg7XG4gICAgdG9wOiAtNjBweDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiAxMDAlIDEwMCU7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVkoMSkgc2NhbGVYKDEpIDtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgIGhlaWdodD0nNTAnIHdpZHRoPSc0MDAnIHByZXNlcnZlQXNwZWN0UmF0aW89J25vbmUnJTNFXFxhICAgICAgICAgJTNDZGVmcyUzRVxcYSAgICAgICAgICAgJTNDbGluZWFyR3JhZGllbnQgaWQ9J0dyYWRpZW50MScgeDE9JzAnIHgyPScxJyB5MT0nMCcgeTI9JzAnJTNFXFxhICAgICAgICAgICAgICUzQ3N0b3Agb2Zmc2V0PScwJScgc3RvcC1jb2xvcj0nJTIzRUUxQkI2Jy8lM0VcXGEgICAgICAgICAgICAgJTNDc3RvcCBvZmZzZXQ9JzEwMCUnIHN0b3AtY29sb3I9JyUyMzc5ODNGRicvJTNFXFxhICAgICAgICAgICAlM0MvbGluZWFyR3JhZGllbnQlM0VcXGEgICAgICAgICAlM0MvZGVmcyUzRVxcYSAgICAgICAgICUzQ3BvbHlnb24gcG9pbnRzPSczMjUsMCA0MDAsNTAgMCw1MCcgZmlsbD0ndXJsKCUyM0dyYWRpZW50MSknIC8lM0VcXGEgICAgICAgICAlM0Nwb2x5Z29uIHBvaW50cz0nMzIwLDIwIDQwMCw1MCAwLDUwJyBzdHlsZT0nZmlsbDolMjMyQzI5MzQ7JyAvJTNFXFxhICAgICAgICUzQy9zdmclM0VcIik7IH1cblxuLnNlY3Rpb24uc2VjdGlvbi0tZGl2aWRlci1ncmFkaWVudC1ib3R0b20ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLnNlY3Rpb24uc2VjdGlvbi0tZGl2aWRlci1ncmFkaWVudC1ib3R0b206YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBoZWlnaHQ6IDYwcHg7XG4gICAgYm90dG9tOiAtNjBweDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiAxMDAlIDEwMCU7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVkoLTEpIHNjYWxlWCgtMSkgO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyAgaGVpZ2h0PSc1MCcgd2lkdGg9JzQwMCcgcHJlc2VydmVBc3BlY3RSYXRpbz0nbm9uZSclM0VcXGEgICAgICAgICAlM0NkZWZzJTNFXFxhICAgICAgICAgICAlM0NsaW5lYXJHcmFkaWVudCBpZD0nR3JhZGllbnQxJyB4MT0nMCcgeDI9JzEnIHkxPScwJyB5Mj0nMCclM0VcXGEgICAgICAgICAgICAgJTNDc3RvcCBvZmZzZXQ9JzAlJyBzdG9wLWNvbG9yPSclMjM3OTgzRkYnLyUzRVxcYSAgICAgICAgICAgICAlM0NzdG9wIG9mZnNldD0nMTAwJScgc3RvcC1jb2xvcj0nJTIzRUUxQkI2Jy8lM0VcXGEgICAgICAgICAgICUzQy9saW5lYXJHcmFkaWVudCUzRVxcYSAgICAgICAgICUzQy9kZWZzJTNFXFxhICAgICAgICAgJTNDcG9seWdvbiBwb2ludHM9JzMyNSwwIDQwMCw1MCAwLDUwJyBmaWxsPSd1cmwoJTIzR3JhZGllbnQxKScgLyUzRVxcYSAgICAgICAgICUzQ3BvbHlnb24gcG9pbnRzPSczMjAsMjAgNDAwLDUwIDAsNTAnIHN0eWxlPSdmaWxsOiUyMzJDMjkzNDsnIC8lM0VcXGEgICAgICAgJTNDL3N2ZyUzRVwiKTsgfVxuICAuc2VjdGlvbi5zZWN0aW9uLS1kaXZpZGVyLWdyYWRpZW50LWJvdHRvbSArIC5zZWN0aW9uIHtcbiAgICBwYWRkaW5nLXRvcDogMTAwcHg7IH1cblxuLnNlY3Rpb24uc2VjdGlvbi0taG9tZXBhZ2UxIHtcbiAgYmFja2dyb3VuZDogIzJDMjkzNDsgfVxuXG4uc2VjdGlvbi5zZWN0aW9uLS1ob21lcGFnZTIge1xuICBiYWNrZ3JvdW5kOiB1cmwoaHR0cHM6Ly9waWNzdW0ucGhvdG9zL2lkLzIwMC8xNDAwLzYwMCk7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5zZWN0aW9uLnNlY3Rpb24tLWhvbWVwYWdlMjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBoZWlnaHQ6IDYwcHg7XG4gICAgdG9wOiAwcHg7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJSAxMDAlO1xuICAgIHRyYW5zZm9ybTogc2NhbGVZKC0xKSBzY2FsZVgoMSkgO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyAgaGVpZ2h0PSc1MCcgd2lkdGg9JzQwMCcgcHJlc2VydmVBc3BlY3RSYXRpbz0nbm9uZSclM0VcXGEgICAgICAgICAgICUzQ3BvbHlnb24gcG9pbnRzPSczMjAsMjAgNDAwLDUwIDAsNTAnIHN0eWxlPSdmaWxsOndoaXRlOycgLyUzRVxcYSAgICAgICAgICUzQy9zdmclM0VcIik7IH1cblxuLnNlY3Rpb24uc2VjdGlvbi0tcHJvZHVjdHBhZ2Uge1xuICBiYWNrZ3JvdW5kOiB1cmwoaHR0cHM6Ly9waWNzdW0ucGhvdG9zL2lkLzE1OC8xNDAwLzYwMCk7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLnNlY3Rpb24uc2VjdGlvbi0tcHJvZHVjdHBhZ2U6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaGVpZ2h0OiA2MHB4O1xuICAgIHRvcDogMHB4O1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDEwMCUgMTAwJTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWSgxKSBzY2FsZVgoLTEpIDtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgIGhlaWdodD0nNTAnIHdpZHRoPSc0MDAnIHByZXNlcnZlQXNwZWN0UmF0aW89J25vbmUnJTNFXFxhICAgICAgICAgICAlM0Nwb2x5Z29uIHBvaW50cz0nMzIwLDAgMCwwIDAsNTAnIHN0eWxlPSdmaWxsOndoaXRlOycgLyUzRVxcYSAgICAgICAgICAgJTNDcG9seWdvbiBwb2ludHM9JzMyMCwwIDQwMCwwIDQwMCw1MCcgc3R5bGU9J2ZpbGw6d2hpdGU7JyAvJTNFXFxhICAgICAgICAgJTNDL3N2ZyUzRVwiKTsgfVxuICAuc2VjdGlvbi5zZWN0aW9uLS1wcm9kdWN0cGFnZTphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGhlaWdodDogMTMwcHg7XG4gICAgYm90dG9tOiAwcHg7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJSAxMDAlO1xuICAgIHRyYW5zZm9ybTogc2NhbGVZKC0xKSBzY2FsZVgoMSkgO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyAgaGVpZ2h0PSc1MCcgd2lkdGg9JzQwMCcgcHJlc2VydmVBc3BlY3RSYXRpbz0nbm9uZSclM0VcXGEgICAgICAgICAgICUzQ3BvbHlnb24gcG9pbnRzPScyODAsMCAwLDAgMCw1MCcgc3R5bGU9J2ZpbGw6d2hpdGU7JyAvJTNFXFxhICAgICAgICAgICAlM0Nwb2x5Z29uIHBvaW50cz0nMjgwLDAgNDAwLDAgNDAwLDUwJyBzdHlsZT0nZmlsbDp3aGl0ZTsnIC8lM0VcXGEgICAgICAgICAlM0Mvc3ZnJTNFXCIpOyB9XG5cbi5mLWl0ZW0tcHJldmlldyAuc2VjdGlvbiB7XG4gIG1pbi1oZWlnaHQ6IDIwMHB4O1xuICBtYXJnaW46IDEwMHB4IDA7IH1cblxuLyoqIFdvVyBUaGVtZSAqKi9cbi53b3ctdGhlbWUge1xuICAvKiBCcmFuZCBoZXJvICovIH1cbiAgLndvdy10aGVtZSAuYnJhbmQtaGVybyB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL3RoZW1lcy93b3cvYnJhbmQtaGVyby1iYWNrZ3JvdW5kQDJ4LmpwZ1wiKSAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IHRvcCBjZW50ZXI7XG4gICAgcGFkZGluZzogMDtcbiAgICBoZWlnaHQ6IDYzMHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIC53b3ctdGhlbWUgLmJyYW5kLWhlcm86OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL3RoZW1lcy93b3cvZGl2aWRlci1kb3duQDJ4LnBuZ1wiKTtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogMTQ0MHB4O1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wIGNlbnRlcjtcbiAgICAgIGhlaWdodDogMzdweDtcbiAgICAgIGJvdHRvbTogLTM3cHg7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlWSgxKSBzY2FsZVgoMSk7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB6LWluZGV4OiAzMDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAud293LXRoZW1lIC5icmFuZC1oZXJvIC5icmFuZC1oZXJvX19jb250ZW50IHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgLndvdy10aGVtZSAuYnJhbmQtaGVybyAuYnJhbmQtaGVyb19fbG9nbyB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXgtd2lkdGg6IDYwMHB4OyB9XG4gICAgLndvdy10aGVtZSAuYnJhbmQtaGVybyAuYnJhbmQtaGVyb19faW1hZ2UsIC53b3ctdGhlbWUgLmJyYW5kLWhlcm8gLmJyYW5kLWhlcm9fX2FjdGlvbiwgLndvdy10aGVtZSAuYnJhbmQtaGVybyAuYnJhbmQtaGVyb19fY29weSwgLndvdy10aGVtZSAuYnJhbmQtaGVybyAuYnJhbmQtaGVyb19fdGl0bGUge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC53b3ctdGhlbWUgLmJyYW5kLWhlcm8gKyAuc2VjdGlvbiB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvdGhlbWVzL3dvdy9iYWNrZ3JvdW5kQDJ4LmpwZ1wiKTtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgY2VudGVyO1xuICAgICAgcGFkZGluZy10b3A6IDEwMHB4O1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgICAud293LXRoZW1lIC5icmFuZC1oZXJvICsgLnNlY3Rpb246OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy90aGVtZXMvd293L2RpdmlkZXItZG93bkAyeC5wbmdcIik7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogMTQ0MHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IHRvcCBjZW50ZXI7XG4gICAgICAgIGhlaWdodDogMzdweDtcbiAgICAgICAgYm90dG9tOiAtMzdweDtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVkoMSkgc2NhbGVYKDEpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHotaW5kZXg6IDMwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAud293LXRoZW1lIC5icmFuZC1oZXJvICsgLnNlY3Rpb24uc2VjdGlvbi0tb2Zmc2V0LWxhcmdlIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7IH1cbiAgLndvdy10aGVtZSAubmV3c2xldHRlci1zZWN0aW9uIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvdGhlbWVzL3dvdy9tYWlsaW5nLWJhY2tncm91bmRAMnguanBnXCIpICFpbXBvcnRhbnQ7IH1cbiAgLndvdy10aGVtZSAucHJvZHVjdC1jYXJkLXNtYWxsX19hZGQgLmJ1dHRvbjo6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmJiZTAwICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6IGJsYWNrICFpbXBvcnRhbnQ7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDsgfVxuICAud293LXRoZW1lIC5wcm9kdWN0LWNhcmQgLnByb2R1Y3QtY2FyZF9faGVhZCB7XG4gICAgYm94LXNoYWRvdzogMCAwIDE4cHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjYpOyB9XG4gIC53b3ctdGhlbWUgLnByb2R1Y3QtY2FyZCAuYnV0dG9uIHtcbiAgICBib3JkZXI6ICM2MDE0MGQ7XG4gICAgYmFja2dyb3VuZDogIzYwMTQwZDtcbiAgICBmb250LXNpemU6IDIycHg7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMzJweDtcbiAgICBjb2xvcjogI2ZiYmUwMDsgfVxuICAud293LXRoZW1lIC5wcm9kdWN0LWRldGFpbHMge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy90aGVtZXMvd293L2JhY2tncm91bmRAMnguanBnXCIpICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wIGNlbnRlciAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctdG9wOiA0NDBweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgICAgIC53b3ctdGhlbWUgLnByb2R1Y3QtZGV0YWlscyB7XG4gICAgICAgIHBhZGRpbmctdG9wOiBjYWxjKCB2YXIoLS1oZWFkZXItYmFja2dyb3VuZC1oZWlnaHQpICsgNDBweCk7IH0gfVxuICAgIC53b3ctdGhlbWUgLnByb2R1Y3QtZGV0YWlsczo6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvdGhlbWVzL3dvdy9kaXZpZGVyLWRvd25AMngucG5nXCIpO1xuICAgICAgYmFja2dyb3VuZC1zaXplOiAxNDQwcHg7XG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgY2VudGVyO1xuICAgICAgaGVpZ2h0OiAzN3B4O1xuICAgICAgYm90dG9tOiAtMzdweDtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGVZKDEpIHNjYWxlWCgxKTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHotaW5kZXg6IDMwO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgIC53b3ctdGhlbWUgLnByb2R1Y3QtZGV0YWlsczo6YWZ0ZXIge1xuICAgICAgdG9wOiAzNDBweDtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDEpIHNjYWxlWSgtMSkgcm90YXRlWigxODBkZWcpO1xuICAgICAgYm90dG9tOiB1bnNldDsgfVxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XG4gICAgICAgIC53b3ctdGhlbWUgLnByb2R1Y3QtZGV0YWlsczo6YWZ0ZXIge1xuICAgICAgICAgIHRvcDogdmFyKC0taGVhZGVyLWJhY2tncm91bmQtaGVpZ2h0KTsgfSB9XG4gICAgLndvdy10aGVtZSAucHJvZHVjdC1kZXRhaWxzOjpiZWZvcmUge1xuICAgICAgaGVpZ2h0OiAzNDBweDtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy90aGVtZXMvd293L2hlcm8tYmFja2dyb3VuZEAyeC5qcGdcIikgIWltcG9ydGFudDsgfVxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XG4gICAgICAgIC53b3ctdGhlbWUgLnByb2R1Y3QtZGV0YWlsczo6YmVmb3JlIHtcbiAgICAgICAgICBoZWlnaHQ6IHZhcigtLWhlYWRlci1iYWNrZ3JvdW5kLWhlaWdodCk7IH0gfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICAgICAgLndvdy10aGVtZSAucHJvZHVjdC1kZXRhaWxzIC5wcm9kdWN0X2JyYW5kX2xvZ28ge1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB3aWR0aDogMTUwcHg7IH0gfVxuICAgIC53b3ctdGhlbWUgLnByb2R1Y3QtZGV0YWlscyAuZW50cnktc3VtbWFyeSAucHJvZHVjdF90aXRsZSB7XG4gICAgICBjb2xvcjogd2hpdGU7IH1cbiAgICAud293LXRoZW1lIC5wcm9kdWN0LWRldGFpbHMgLmVudHJ5LXN1bW1hcnkgLnByb2R1Y3Rfc3VidGl0bGUge1xuICAgICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTsgfVxuICAgIC53b3ctdGhlbWUgLnByb2R1Y3QtZGV0YWlscyAuZW50cnktc3VtbWFyeSAucHJvZHVjdF9jYXRlZ29yeSBhIHtcbiAgICAgIGNvbG9yOiAjZmJiZTAwOyB9XG4gICAgLndvdy10aGVtZSAucHJvZHVjdC1kZXRhaWxzIC5lbnRyeS1zdW1tYXJ5IC5wcm9kdWN0X3NrdSB7XG4gICAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpOyB9XG4gICAgLndvdy10aGVtZSAucHJvZHVjdC1kZXRhaWxzIC5lbnRyeS1zdW1tYXJ5IC5wcm9kdWN0LWluZm9fX3RhYnMge1xuICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpOyB9XG4gICAgLndvdy10aGVtZSAucHJvZHVjdC1kZXRhaWxzIC5lbnRyeS1zdW1tYXJ5IC5wcm9kdWN0LWluZm9fX3RhYnMgLnRhYnMtdGl0bGUgYSB7XG4gICAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpOyB9XG4gICAgLndvdy10aGVtZSAucHJvZHVjdC1kZXRhaWxzIC5lbnRyeS1zdW1tYXJ5IC5wcm9kdWN0LWluZm9fX3RhYnMgLnRhYnMtdGl0bGUuaXMtYWN0aXZlIGEge1xuICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogI2ZiYmUwMDsgfVxuICAgIC53b3ctdGhlbWUgLnByb2R1Y3QtZGV0YWlscyAuZW50cnktc3VtbWFyeSAucHJvZHVjdC1pbmZvX19jb250ZW50IC50YWJzLXBhbmVsIHtcbiAgICAgIGNvbG9yOiB3aGl0ZTsgfVxuICAgIC53b3ctdGhlbWUgLnByb2R1Y3QtZGV0YWlscyAuZW50cnktc3VtbWFyeSAucHJvZHVjdC1pbmZvX19jb250ZW50IC50YWJzLXBhbmVsIHAge1xuICAgICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTsgfVxuICAgIC53b3ctdGhlbWUgLnByb2R1Y3QtZGV0YWlscyAuZW50cnktc3VtbWFyeSAucHJpY2Uge1xuICAgICAgY29sb3I6ICNmYmJlMDA7IH1cbiAgICAud293LXRoZW1lIC5wcm9kdWN0LWRldGFpbHMgLmVudHJ5LXN1bW1hcnkgLmNhcnQgLnF1YW50aXR5IGxhYmVsIHtcbiAgICAgIGNvbG9yOiB3aGl0ZTsgfVxuICAgIC53b3ctdGhlbWUgLnByb2R1Y3QtZGV0YWlscyAuZW50cnktc3VtbWFyeSAuY2FydCAucXVhbnRpdHkgaW5wdXQge1xuICAgICAgY29sb3I6IHdoaXRlOyB9XG4gICAgLndvdy10aGVtZSAucHJvZHVjdC1kZXRhaWxzIC5lbnRyeS1zdW1tYXJ5IC5jYXJ0IC5xdWFudGl0eSAucXVhbnRpdHlfX2xpbWl0ZWQge1xuICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgYm9yZGVyLWNvbG9yOiB3aGl0ZTsgfVxuICAgIC53b3ctdGhlbWUgLnByb2R1Y3QtZGV0YWlscyAuZW50cnktc3VtbWFyeSAuYnV0dG9uIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM2MDE0MGQ7XG4gICAgICBmb250LXNpemU6IDIycHg7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIGNvbG9yOiAjZmJiZTAwOyB9XG4gICAgICAud293LXRoZW1lIC5wcm9kdWN0LWRldGFpbHMgLmVudHJ5LXN1bW1hcnkgLmJ1dHRvbjo6YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjNjAxNDBkICFpbXBvcnRhbnQ7IH1cbiAgICAgIC53b3ctdGhlbWUgLnByb2R1Y3QtZGV0YWlscyAuZW50cnktc3VtbWFyeSAuYnV0dG9uOjphZnRlciB7XG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICNmYmJlMDA7IH1cbiAgLndvdy10aGVtZSAuc2VjdGlvbi51cHNlbGxzIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZy1ib3R0b206IDYwcHg7XG4gICAgcGFkZGluZy10b3A6IDMwcHg7IH1cbiAgICAud293LXRoZW1lIC5zZWN0aW9uLnVwc2VsbHM6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IG5vbmU7IH1cbiAgICAud293LXRoZW1lIC5zZWN0aW9uLnVwc2VsbHM6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy90aGVtZXMvd293L2RpdmlkZXItZG93bkAyeC5wbmdcIik7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IDE0NDBweDtcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IHRvcCBjZW50ZXI7XG4gICAgICBoZWlnaHQ6IDM3cHg7XG4gICAgICB0b3A6IC0zN3B4O1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGVaKDE4MGRlZyk7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB6LWluZGV4OiAzMDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAud293LXRoZW1lIC5zZWN0aW9uLnVwc2VsbHMgLnNlY3Rpb25fX3RpdGxlIHtcbiAgICAgIHRleHQtc2hhZG93OiAxcHggM3B4IDNweCByZ2JhKDAsIDAsIDAsIDAuNTgpO1xuICAgICAgZm9udC1zaXplOiA1MXB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjI1O1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjVweDtcbiAgICAgIGNvbG9yOiAjZmZmZmZmOyB9XG4gICAgLndvdy10aGVtZSAuc2VjdGlvbi51cHNlbGxzIC51cHNlbGxzX2JyYW5kX2xvZ28ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAud293LXRoZW1lIC5uZXdzbGV0dGVyLXNlY3Rpb24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLXRvcDogMHB4O1xuICAgIG1hcmdpbi10b3A6IDBweDsgfVxuICAgIC53b3ctdGhlbWUgLm5ld3NsZXR0ZXItc2VjdGlvbjo6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvdGhlbWVzL3dvdy9kaXZpZGVyLWRvd25AMngucG5nXCIpO1xuICAgICAgYmFja2dyb3VuZC1zaXplOiAxNDQwcHg7XG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgY2VudGVyO1xuICAgICAgaGVpZ2h0OiAzN3B4O1xuICAgICAgYm90dG9tOiAtMzdweDtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGVZKDEpIHNjYWxlWCgxKTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHotaW5kZXg6IDMwO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgIC53b3ctdGhlbWUgLm5ld3NsZXR0ZXItc2VjdGlvbjo6YWZ0ZXIge1xuICAgICAgdG9wOiAwO1xuICAgICAgYm90dG9tOiB1bnNldDsgfVxuICAgIC53b3ctdGhlbWUgLm5ld3NsZXR0ZXItc2VjdGlvbiAubmV3c2xldHRlci1zZWN0aW9uX19jb250YWluZXIge1xuICAgICAgcGFkZGluZy10b3A6IDcwcHggIWltcG9ydGFudDsgfVxuICAgIC53b3ctdGhlbWUgLm5ld3NsZXR0ZXItc2VjdGlvbiAubmV3c2xldHRlci1zZWN0aW9uX19mb3JtLWJ1dHRvbiB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjAxNDBkO1xuICAgICAgZm9udC1zaXplOiAyMnB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGNvbG9yOiAjZmJiZTAwOyB9XG5cbi8qKiBXb1cgVGhlbWUgKiovXG4ud29vY29tbWVyY2UtY2FydC53b29jb21tZXJjZS1wYWdlIGltZy5wc3dwX19pbWcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjazsgfVxuXG4ucHN3cCB7XG4gIHotaW5kZXg6IDEwMDAwICFpbXBvcnRhbnQ7IH1cblxuLmYtcHJldmlld19fYmFja2dyb3VuZCB7XG4gIHBhZGRpbmc6IDIwcHg7XG4gIGJhY2tncm91bmQ6IHVybChcImh0dHBzOi8vcGljc3VtLnBob3Rvcy9pZC8xMjAvMTYwMC84MDBcIik7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgbWFyZ2luOiAyMHB4IDA7IH1cblxuLmYtcHJldmlld19fZGFyayB7XG4gIHBhZGRpbmc6IDIwcHg7XG4gIGJhY2tncm91bmQ6ICMyQzI5MzQ7XG4gIG1hcmdpbjogMjBweCAwOyB9XG5cbmJvZHkge1xuICBvdmVyZmxvdy14OiBoaWRkZW47IH1cblxuLnByb2R1Y3QtZ2FsbGVyeV9fdmlkZW8ge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZy10b3A6IDYwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5wcm9kdWN0LWdhbGxlcnlfX3ZpZGVvIGlmcmFtZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7IH1cblxuI3BhZ2UgPiBkaXYgPiAqOmVtcHR5IHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG5bZGF0YS1maWd1cmUtcHJpbnRzXSArIC5hamF4X2FkZF90b19jYXJ0IHtcbiAgY2xpcDogcmVjdCgxcHgsIDFweCwgMXB4LCAxcHgpO1xuICBjbGlwLXBhdGg6IGluc2V0KDUwJSk7XG4gIGhlaWdodDogMXB4O1xuICB3aWR0aDogMXB4O1xuICBtYXJnaW46IC0xcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTsgfVxuIiwiLyoqXG4gKiBUb29sa2l0IHN0eWxlc1xuICovXG5cbi8vIEZvbnRzXG5AaW1wb3J0ICcuLi9mb250cy9mb250cyc7XG5cbi8vIDEuIENvbmZpZ3VyYXRpb24gYW5kIGhlbHBlcnNcblxuXG5cbi8vIDIuIFZlbmRvcnNcbkBpbXBvcnRcbiAgJ3ZlbmRvcnMvdmVuZG9ycycsXG4gICcuLi8uLi92ZW5kb3IvU2N1dC9kaXN0L3NjdXQnLFxuICAnLi4vLi4vdmVuZG9yL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3VuZGF0aW9uJyxcbiAgJy4uLy4uL3ZlbmRvci9jaG9zZW4vY2hvc2VuJyxcbiAgJy4uLy4uL3ZlbmRvci9vd2wuY2Fyb3VzZWwvc3JjL3Njc3Mvb3dsLmNhcm91c2VsJztcblxuQGluY2x1ZGUgZm91bmRhdGlvbi1nbG9iYWwtc3R5bGVzO1xuQGluY2x1ZGUgZm91bmRhdGlvbi1ncmlkO1xuQGluY2x1ZGUgZm91bmRhdGlvbi10eXBvZ3JhcGh5O1xuQGluY2x1ZGUgZm91bmRhdGlvbi1idXR0b247XG5AaW5jbHVkZSBmb3VuZGF0aW9uLWZvcm1zO1xuQGluY2x1ZGUgZm91bmRhdGlvbi12aXNpYmlsaXR5LWNsYXNzZXM7XG4vLyBAaW5jbHVkZSBmb3VuZGF0aW9uLWZsb2F0LWNsYXNzZXM7XG4vLyBAaW5jbHVkZSBmb3VuZGF0aW9uLWFjY29yZGlvbjtcbi8vIEBpbmNsdWRlIGZvdW5kYXRpb24tYWNjb3JkaW9uLW1lbnU7XG4vLyBAaW5jbHVkZSBmb3VuZGF0aW9uLWJhZGdlO1xuLy8gQGluY2x1ZGUgZm91bmRhdGlvbi1icmVhZGNydW1icztcbi8vIEBpbmNsdWRlIGZvdW5kYXRpb24tYnV0dG9uLWdyb3VwO1xuLy8gQGluY2x1ZGUgZm91bmRhdGlvbi1jYWxsb3V0O1xuLy8gQGluY2x1ZGUgZm91bmRhdGlvbi1jbG9zZS1idXR0b247XG4vLyBAaW5jbHVkZSBmb3VuZGF0aW9uLWRyaWxsZG93bi1tZW51O1xuLy8gQGluY2x1ZGUgZm91bmRhdGlvbi1kcm9wZG93bjtcbi8vIEBpbmNsdWRlIGZvdW5kYXRpb24tZHJvcGRvd24tbWVudTtcbi8vIEBpbmNsdWRlIGZvdW5kYXRpb24tcmVzcG9uc2l2ZS1lbWJlZDtcbi8vIEBpbmNsdWRlIGZvdW5kYXRpb24tbGFiZWw7XG4vLyBAaW5jbHVkZSBmb3VuZGF0aW9uLW1lZGlhLW9iamVjdDtcbkBpbmNsdWRlIGZvdW5kYXRpb24tbWVudTtcbi8vIEBpbmNsdWRlIGZvdW5kYXRpb24tb2ZmLWNhbnZhcztcbi8vIEBpbmNsdWRlIGZvdW5kYXRpb24tb3JiaXQ7XG4vLyBAaW5jbHVkZSBmb3VuZGF0aW9uLXBhZ2luYXRpb247XG4vLyBAaW5jbHVkZSBmb3VuZGF0aW9uLXByb2dyZXNzLWJhcjtcbi8vIEBpbmNsdWRlIGZvdW5kYXRpb24tc2xpZGVyO1xuLy8gQGluY2x1ZGUgZm91bmRhdGlvbi1zdGlja3k7XG4vLyBAaW5jbHVkZSBmb3VuZGF0aW9uLXJldmVhbDtcbi8vIEBpbmNsdWRlIGZvdW5kYXRpb24tc3dpdGNoO1xuLy8gQGluY2x1ZGUgZm91bmRhdGlvbi10YWJsZTtcbi8vIEBpbmNsdWRlIGZvdW5kYXRpb24tdGFicztcbi8vIEBpbmNsdWRlIGZvdW5kYXRpb24tdGh1bWJuYWlsO1xuLy8gQGluY2x1ZGUgZm91bmRhdGlvbi10aXRsZS1iYXI7XG4vLyBAaW5jbHVkZSBmb3VuZGF0aW9uLXRvb2x0aXA7XG4vLyBAaW5jbHVkZSBmb3VuZGF0aW9uLXRvcC1iYXI7XG5cbi8vIFV0aWxpdGllc1xuQGltcG9ydCAndXRpbHMvdXRpbHMnO1xuXG4vLyBQYXR0bmVyc1xuQGltcG9ydCAnYXRvbXMvYXRvbXMnO1xuQGltcG9ydCAnbW9sZWN1bGVzL21vbGVjdWxlcyc7XG5AaW1wb3J0ICdvcmdhbmlzbXMvb3JnYW5pc21zJztcblxuLndvb2NvbW1lcmNlLWNhcnQud29vY29tbWVyY2UtcGFnZSBpbWcucHN3cF9faW1nIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG59XG4ucHN3cCAge1xuICB6LWluZGV4OiAxMDAwMCAhaW1wb3J0YW50O1xufVxuXG4uZi1wcmV2aWV3X19iYWNrZ3JvdW5kIHtcbiAgcGFkZGluZzogMjBweDtcbiAgYmFja2dyb3VuZDogdXJsKCdodHRwczovL3BpY3N1bS5waG90b3MvaWQvMTIwLzE2MDAvODAwJyk7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgbWFyZ2luOiAyMHB4IDA7XG59XG5cbi5mLXByZXZpZXdfX2Rhcmsge1xuICBwYWRkaW5nOiAyMHB4O1xuICBiYWNrZ3JvdW5kOiAjMkMyOTM0O1xuICBtYXJnaW46IDIwcHggMDtcbn1cblxuYm9keSB7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cblxuXG5cbi5wcm9kdWN0LWdhbGxlcnlfX3ZpZGVvIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctdG9wOiA2MCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICBpZnJhbWUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG59XG5cblxuI3BhZ2UgPiBkaXYgPiAqOmVtcHR5IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuXG5bZGF0YS1maWd1cmUtcHJpbnRzXSArIC5hamF4X2FkZF90b19jYXJ0IHtcbiAgY2xpcDogcmVjdCgxcHgsIDFweCwgMXB4LCAxcHgpO1xuICBjbGlwLXBhdGg6IGluc2V0KDUwJSk7XG4gIGhlaWdodDogMXB4O1xuICB3aWR0aDogMXB4O1xuICBtYXJnaW46IC0xcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn0iLCIkaWNvbW9vbi1mb250LXBhdGg6ICcuLi9mb250cy9pY29tb29uL2ZvbnRzJztcblxuQGltcG9ydCB1cmwoJ2h0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9SW50ZXI6d2dodEAxMDA7MzAwOzQwMDs1MDA7NzAwOzgwMCZkaXNwbGF5PXN3YXAnKTtcblxuLy8gRm9udHNcbkBpbXBvcnQgXG5cdCdpY29tb29uL3N0eWxlLnNjc3MnOyIsIkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnI3skaWNvbW9vbi1mb250LWZhbWlseX0nO1xuICBzcmM6ICB1cmwoJyN7JGljb21vb24tZm9udC1wYXRofS8jeyRpY29tb29uLWZvbnQtZmFtaWx5fS5lb3Q/a3kzdDU2Jyk7XG4gIHNyYzogIHVybCgnI3skaWNvbW9vbi1mb250LXBhdGh9LyN7JGljb21vb24tZm9udC1mYW1pbHl9LmVvdD9reTN0NTYjaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gICAgdXJsKCcjeyRpY29tb29uLWZvbnQtcGF0aH0vI3skaWNvbW9vbi1mb250LWZhbWlseX0udHRmP2t5M3Q1NicpIGZvcm1hdCgndHJ1ZXR5cGUnKSxcbiAgICB1cmwoJyN7JGljb21vb24tZm9udC1wYXRofS8jeyRpY29tb29uLWZvbnQtZmFtaWx5fS53b2ZmP2t5M3Q1NicpIGZvcm1hdCgnd29mZicpLFxuICAgIHVybCgnI3skaWNvbW9vbi1mb250LXBhdGh9LyN7JGljb21vb24tZm9udC1mYW1pbHl9LnN2Zz9reTN0NTYjI3skaWNvbW9vbi1mb250LWZhbWlseX0nKSBmb3JtYXQoJ3N2ZycpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtZGlzcGxheTogYmxvY2s7XG59XG5cbltjbGFzc149XCJpY29uLVwiXSwgW2NsYXNzKj1cIiBpY29uLVwiXSB7XG4gIC8qIHVzZSAhaW1wb3J0YW50IHRvIHByZXZlbnQgaXNzdWVzIHdpdGggYnJvd3NlciBleHRlbnNpb25zIHRoYXQgY2hhbmdlIGZvbnRzICovXG4gIGZvbnQtZmFtaWx5OiAnI3skaWNvbW9vbi1mb250LWZhbWlseX0nICFpbXBvcnRhbnQ7XG4gIHNwZWFrOiBuZXZlcjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuXG4gIC8qIEJldHRlciBGb250IFJlbmRlcmluZyA9PT09PT09PT09PSAqL1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbn1cblxuLmljb24tZW1haWwge1xuICAmOmJlZm9yZSB7XG4gICAgY29udGVudDogJGljb24tZW1haWw7IFxuICB9XG59XG4uaWNvbi1taW51cyB7XG4gICY6YmVmb3JlIHtcbiAgICBjb250ZW50OiAkaWNvbi1taW51czsgXG4gIH1cbn1cbi5pY29uLXBsdXMge1xuICAmOmJlZm9yZSB7XG4gICAgY29udGVudDogJGljb24tcGx1czsgXG4gIH1cbn1cbi5pY29uLXR3aXR0ZXIge1xuICAmOmJlZm9yZSB7XG4gICAgY29udGVudDogJGljb24tdHdpdHRlcjsgXG4gIH1cbn1cbi5pY29uLXBpbnRlcmVzdCB7XG4gICY6YmVmb3JlIHtcbiAgICBjb250ZW50OiAkaWNvbi1waW50ZXJlc3Q7IFxuICB9XG59XG4uaWNvbi1mYWNlYm9vayB7XG4gICY6YmVmb3JlIHtcbiAgICBjb250ZW50OiAkaWNvbi1mYWNlYm9vazsgXG4gIH1cbn1cbi5pY29uLWluc3RhZ3JhbSB7XG4gICY6YmVmb3JlIHtcbiAgICBjb250ZW50OiAkaWNvbi1pbnN0YWdyYW07IFxuICB9XG59XG4uaWNvbi1jYXJ0IHtcbiAgJjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICRpY29uLWNhcnQ7IFxuICB9XG59XG4uaWNvbi1hdmF0YXIge1xuICAmOmJlZm9yZSB7XG4gICAgY29udGVudDogJGljb24tYXZhdGFyOyBcbiAgfVxufVxuLmljb24tY2hldnJvbi1kb3duIHtcbiAgJjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICRpY29uLWNoZXZyb24tZG93bjsgXG4gIH1cbn1cbi5pY29uLXpvb20ge1xuICAmOmJlZm9yZSB7XG4gICAgY29udGVudDogJGljb24tem9vbTsgXG4gIH1cbn1cbi5pY29uLXN0YXIge1xuICAmOmJlZm9yZSB7XG4gICAgY29udGVudDogJGljb24tc3RhcjsgXG4gIH1cbn1cbi5pY29uLWFycm93X3JpZ2h0IHtcbiAgJjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICRpY29uLWFycm93X3JpZ2h0OyBcbiAgfVxufVxuLmljb24tcGhvbmUge1xuICAmOmJlZm9yZSB7XG4gICAgY29udGVudDogJGljb24tcGhvbmU7IFxuICB9XG59XG5cbiIsIiRpY29tb29uLWZvbnQtZmFtaWx5OiBcImljb21vb25cIiAhZGVmYXVsdDtcbiRpY29tb29uLWZvbnQtcGF0aDogXCJmb250c1wiICFkZWZhdWx0O1xuXG4kaWNvbi1lbWFpbDogXCJcXGU5MGJcIjtcbiRpY29uLW1pbnVzOiBcIlxcZTkwNlwiO1xuJGljb24tcGx1czogXCJcXGU5MGFcIjtcbiRpY29uLXR3aXR0ZXI6IFwiXFxlOTAyXCI7XG4kaWNvbi1waW50ZXJlc3Q6IFwiXFxlOTA1XCI7XG4kaWNvbi1mYWNlYm9vazogXCJcXGU5MDdcIjtcbiRpY29uLWluc3RhZ3JhbTogXCJcXGU5MDlcIjtcbiRpY29uLWNhcnQ6IFwiXFxlOTAxXCI7XG4kaWNvbi1hdmF0YXI6IFwiXFxlOTAzXCI7XG4kaWNvbi1jaGV2cm9uLWRvd246IFwiXFxlOTAwXCI7XG4kaWNvbi16b29tOiBcIlxcZTkwOFwiO1xuJGljb24tc3RhcjogXCJcXGU5MGNcIjtcbiRpY29uLWFycm93X3JpZ2h0OiBcIlxcZTkwNFwiO1xuJGljb24tcGhvbmU6IFwiXFxlOTQyXCI7XG5cbiIsIi8vICEgbm9ybWFsaXplLmNzcyB2Mi4wLjEgfCBNSVQgTGljZW5zZSB8IGdpdC5pby9ub3JtYWxpemVcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICAgSFRNTDUgZGlzcGxheSBkZWZpbml0aW9uc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gQ29ycmVjdHMgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGluIElFIDgvOS5cblxuYXJ0aWNsZSxcbmFzaWRlLFxuZGV0YWlscyxcbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5mb290ZXIsXG5oZWFkZXIsXG5oZ3JvdXAsXG5uYXYsXG5zZWN0aW9uLFxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vLyBDb3JyZWN0cyBgaW5saW5lLWJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGluIElFIDgvOS5cblxuYXVkaW8sXG5jYW52YXMsXG52aWRlbyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLy8gUHJldmVudHMgbW9kZXJuIGJyb3dzZXJzIGZyb20gZGlzcGxheWluZyBgYXVkaW9gIHdpdGhvdXQgY29udHJvbHMuXG4vLyBSZW1vdmUgZXhjZXNzIGhlaWdodCBpbiBpT1MgNSBkZXZpY2VzLlxuXG5hdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICBkaXNwbGF5OiBub25lO1xuICBoZWlnaHQ6IDA7XG59XG5cbi8vIEFkZHJlc3NlcyBzdHlsaW5nIGZvciBgaGlkZGVuYCBhdHRyaWJ1dGUgbm90IHByZXNlbnQgaW4gSUUgOC85LlxuXG5baGlkZGVuXSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEJhc2VcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiAxLiBTZXRzIGRlZmF1bHQgZm9udCBmYW1pbHkgdG8gc2Fucy1zZXJpZi5cbiAqIDIuIFByZXZlbnRzIGlPUyB0ZXh0IHNpemUgYWRqdXN0IGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZSwgd2l0aG91dCBkaXNhYmxpbmdcbiAqICAgIHVzZXIgem9vbS5cbiAqL1xuXG5odG1sIHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7IC8vIDEgXG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvLyAyXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLy8gMlxufVxuXG4vLyBSZW1vdmVzIGRlZmF1bHQgbWFyZ2luLlxuXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgTGlua3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBBZGRyZXNzZXMgYG91dGxpbmVgIGluY29uc2lzdGVuY3kgYmV0d2VlbiBDaHJvbWUgYW5kIG90aGVyIGJyb3dzZXJzLlxuICovXG5cbmE6Zm9jdXMge1xuICBvdXRsaW5lOiB0aGluIGRvdHRlZDtcbn1cblxuLypcbiAqIEltcHJvdmVzIHJlYWRhYmlsaXR5IHdoZW4gZm9jdXNlZCBhbmQgYWxzbyBtb3VzZSBob3ZlcmVkIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5hOmFjdGl2ZSxcbmE6aG92ZXIge1xuICBvdXRsaW5lOiAwO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgVHlwb2dyYXBoeVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIEFkZHJlc3NlcyBgaDFgIGZvbnQgc2l6ZXMgd2l0aGluIGBzZWN0aW9uYCBhbmQgYGFydGljbGVgIGluIEZpcmVmb3ggNCssXG4gKiBTYWZhcmkgNSwgYW5kIENocm9tZS5cbiAqL1xuXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xufVxuXG4vKlxuICogQWRkcmVzc2VzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LCBTYWZhcmkgNSwgYW5kIENocm9tZS5cbiAqL1xuXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQ7XG59XG5cbi8qXG4gKiBBZGRyZXNzZXMgc3R5bGUgc2V0IHRvIGBib2xkZXJgIGluIEZpcmVmb3ggNCssIFNhZmFyaSA1LCBhbmQgQ2hyb21lLlxuICovXG5cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLypcbiAqIEFkZHJlc3NlcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIFNhZmFyaSA1IGFuZCBDaHJvbWUuXG4gKi9cblxuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4vKlxuICogQWRkcmVzc2VzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LlxuICovXG5cbm1hcmsge1xuICBiYWNrZ3JvdW5kOiAjZmYwO1xuICBjb2xvcjogIzAwMDtcbn1cblxuXG4vKlxuICogQ29ycmVjdHMgZm9udCBmYW1pbHkgc2V0IG9kZGx5IGluIFNhZmFyaSA1IGFuZCBDaHJvbWUuXG4gKi9cblxuY29kZSxcbmtiZCxcbnByZSxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBzZXJpZjtcbiAgZm9udC1zaXplOiAxZW07XG59XG5cbi8qXG4gKiBJbXByb3ZlcyByZWFkYWJpbGl0eSBvZiBwcmUtZm9ybWF0dGVkIHRleHQgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnByZSB7XG4gIHdoaXRlLXNwYWNlOiBwcmU7XG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xufVxuXG4vKlxuICogU2V0cyBjb25zaXN0ZW50IHF1b3RlIHR5cGVzLlxuICovXG5cbnEge1xuICBxdW90ZXM6IFwiXFwyMDFDXCIgXCJcXDIwMURcIiBcIlxcMjAxOFwiIFwiXFwyMDE5XCI7XG59XG5cbi8qXG4gKiBBZGRyZXNzZXMgaW5jb25zaXN0ZW50IGFuZCB2YXJpYWJsZSBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5cbi8qXG4gKiBQcmV2ZW50cyBgc3ViYCBhbmQgYHN1cGAgYWZmZWN0aW5nIGBsaW5lLWhlaWdodGAgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtO1xufVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBFbWJlZGRlZCBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogUmVtb3ZlcyBib3JkZXIgd2hlbiBpbnNpZGUgYGFgIGVsZW1lbnQgaW4gSUUgOC85LlxuICovXG5cbmltZyB7XG4gIGJvcmRlcjogMDtcbn1cblxuLypcbiAqIENvcnJlY3RzIG92ZXJmbG93IGRpc3BsYXllZCBvZGRseSBpbiBJRSA5LlxuICovXG5cbnN2Zzpub3QoOnJvb3QpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEZpZ3VyZXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBBZGRyZXNzZXMgbWFyZ2luIG5vdCBwcmVzZW50IGluIElFIDgvOSBhbmQgU2FmYXJpIDUuXG4gKi9cblxuZmlndXJlIHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBEZWZpbmUgY29uc2lzdGVudCBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcuXG4gKi9cblxuZmllbGRzZXQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICBtYXJnaW46IDAgMnB4O1xuICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07XG59XG5cbi8qXG4gKiAxLiBDb3JyZWN0cyBjb2xvciBub3QgYmVpbmcgaW5oZXJpdGVkIGluIElFIDgvOS5cbiAqIDIuIFJlbW92ZSBwYWRkaW5nIHNvIHBlb3BsZSBhcmVuJ3QgY2F1Z2h0IG91dCBpZiB0aGV5IHplcm8gb3V0IGZpZWxkc2V0cy5cbiAqL1xuXG5sZWdlbmQge1xuICBib3JkZXI6IDA7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMiAqL1xufVxuXG4vKlxuICogMS4gQ29ycmVjdHMgZm9udCBmYW1pbHkgbm90IGJlaW5nIGluaGVyaXRlZCBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBDb3JyZWN0cyBmb250IHNpemUgbm90IGJlaW5nIGluaGVyaXRlZCBpbiBhbGwgYnJvd3NlcnMuXG4gKiAzLiBBZGRyZXNzZXMgbWFyZ2lucyBzZXQgZGlmZmVyZW50bHkgaW4gRmlyZWZveCA0KywgU2FmYXJpIDUsIGFuZCBDaHJvbWVcbiAqL1xuXG5idXR0b24sXG5pbnB1dCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7IC8vIDFcbiAgZm9udC1zaXplOiAxMDAlOyAvLyAyXG4gIG1hcmdpbjogMDsgLy8gM1xufVxuXG4vKlxuICogQWRkcmVzc2VzIEZpcmVmb3ggNCsgc2V0dGluZyBgbGluZS1oZWlnaHRgIG9uIGBpbnB1dGAgdXNpbmcgYCFpbXBvcnRhbnRgIGluXG4gKiB0aGUgVUEgc3R5bGVzaGVldC5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCB7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG59XG5cbi8qXG4gKiAxLiBBdm9pZCB0aGUgV2ViS2l0IGJ1ZyBpbiBBbmRyb2lkIDQuMC4qIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYFxuICogICAgYW5kIGB2aWRlb2AgY29udHJvbHMuXG4gKiAyLiBDb3JyZWN0cyBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIGBpbnB1dGAgdHlwZXMgaW4gaU9TLlxuICogMy4gSW1wcm92ZXMgdXNhYmlsaXR5IGFuZCBjb25zaXN0ZW5jeSBvZiBjdXJzb3Igc3R5bGUgYmV0d2VlbiBpbWFnZS10eXBlXG4gKiAgICBgaW5wdXRgIGFuZCBvdGhlcnMuXG4gKi9cblxuYnV0dG9uLFxuaHRtbCBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLCAvKiAxICovXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0sXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDIgKi9cbiAgY3Vyc29yOiBwb2ludGVyOyAvKiAzICovXG59XG5cbi8qXG4gKiBSZS1zZXQgZGVmYXVsdCBjdXJzb3IgZm9yIGRpc2FibGVkIGVsZW1lbnRzLlxuICovXG5cbmJ1dHRvbltkaXNhYmxlZF0sXG5pbnB1dFtkaXNhYmxlZF0ge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi8qXG4gKiAxLiBBZGRyZXNzZXMgYm94IHNpemluZyBzZXQgdG8gYGNvbnRlbnQtYm94YCBpbiBJRSA4LzkuXG4gKiAyLiBSZW1vdmVzIGV4Y2VzcyBwYWRkaW5nIGluIElFIDgvOS5cbiAqL1xuXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDIgKi9cbn1cblxuLypcbiAqIDEuIEFkZHJlc3NlcyBgYXBwZWFyYW5jZWAgc2V0IHRvIGBzZWFyY2hmaWVsZGAgaW4gU2FmYXJpIDUgYW5kIENocm9tZS5cbiAqIDIuIEFkZHJlc3NlcyBgYm94LXNpemluZ2Agc2V0IHRvIGBib3JkZXItYm94YCBpbiBTYWZhcmkgNSBhbmQgQ2hyb21lXG4gKiAgICAoaW5jbHVkZSBgLW1vemAgdG8gZnV0dXJlLXByb29mKS5cbiAqL1xuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8vIDFcbiAgLW1vei1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLy8gMlxuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbn1cblxuLypcbiAqIFJlbW92ZXMgaW5uZXIgcGFkZGluZyBhbmQgc2VhcmNoIGNhbmNlbCBidXR0b24gaW4gU2FmYXJpIDUgYW5kIENocm9tZVxuICogb24gT1MgWC5cbiAqL1xuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLypcbiAqIFJlbW92ZXMgaW5uZXIgcGFkZGluZyBhbmQgYm9yZGVyIGluIEZpcmVmb3ggNCsuXG4gKi9cblxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8qXG4gKiAxLiBSZW1vdmVzIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDgvOS5cbiAqIDIuIEltcHJvdmVzIHJlYWRhYmlsaXR5IGFuZCBhbGlnbm1lbnQgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87IC8qIDEgKi9cbiAgdmVydGljYWwtYWxpZ246IHRvcDsgLyogMiAqL1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgVGFibGVzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogUmVtb3ZlIG1vc3Qgc3BhY2luZyBiZXR3ZWVuIHRhYmxlIGNlbGxzLlxuICovXG5cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7XG59IiwiLypcbiogU2N1dCwgYSBjb2xsZWN0aW9uIG9mIFNhc3MgdXRpbGl0aWVzXG4qIHRvIGVhc2UgYW5kIGltcHJvdmUgb3VyIGltcGxlbWVudGF0aW9ucyBvZiBjb21tb24gc3R5bGUtY29kZSBwYXR0ZXJucy5cbiogdjEuNC4wXG4qIERvY3MgYXQgaHR0cDovL2RhdmlkdGhlY2xhcmsuZ2l0aHViLmlvL3NjdXRcbiovXG5cbkBtaXhpbiBzY3V0LWNsZWFyZml4IHtcblxuICAmOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNsZWFyOiBib3RoO1xuICB9XG5cbn1cblxuJXNjdXQtY2xlYXJmaXgge1xuICBAaW5jbHVkZSBzY3V0LWNsZWFyZml4O1xufVxuQG1peGluIHNjdXQtbGlzdC11bnN0eWxlZChcbiAgJG5vLW1hcmdpbjogdHJ1ZVxuKSB7XG5cbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG5cbiAgQGlmICRuby1tYXJnaW4ge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuXG59XG5cbiVzY3V0LWxpc3QtdW5zdHlsZWQge1xuICBAaW5jbHVkZSBzY3V0LWxpc3QtdW5zdHlsZWQoKTtcbn1cbi8vIERlcGVuZHMgb24gYGxpc3QtdW5zdHlsZWRgIGFuZCBgY2xlYXJmaXhgLlxuXG5AbWl4aW4gc2N1dC1saXN0LWZsb2F0ZWQgKFxuICAkc3BhY2U6IGZhbHNlLFxuICAkZGlyOiBsZWZ0LFxuICAkbm8tbWFyZ2luOiB0cnVlXG4pIHtcblxuICBAaW5jbHVkZSBzY3V0LWxpc3QtdW5zdHlsZWQoJG5vLW1hcmdpbik7XG4gIEBpbmNsdWRlIHNjdXQtY2xlYXJmaXg7XG5cbiAgJiA+IGxpIHtcbiAgICBmbG9hdDogJGRpcjtcbiAgfVxuXG4gIEBpZiAkc3BhY2Uge1xuICAgICYgPiBsaSArIGxpIHtcbiAgICAgIG1hcmdpbi0jeyRkaXJ9OiAkc3BhY2U7XG4gICAgfVxuICB9XG5cbn1cblxuJXNjdXQtbGlzdC1mbG9hdGVkIHtcbiAgQGluY2x1ZGUgc2N1dC1saXN0LWZsb2F0ZWQ7XG59XG5cbkBmdW5jdGlvbiBzY3V0LWF1dG9PclZhbHVlICgkdmFsKSB7XG4gIEBpZiAkdmFsID09IGEgb3IgJHZhbCA9PSBhdXRvIHtcbiAgICBAcmV0dXJuIGF1dG87XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gJHZhbDtcbiAgfVxufVxuXG5AbWl4aW4gc2N1dC1jb29yZHMgKFxuICAkY29vcmRpbmF0ZXM6IG4gbiBuIG5cbikge1xuXG4gICR0b3A6IG50aCgkY29vcmRpbmF0ZXMsIDEpO1xuICAkcmlnaHQ6IG50aCgkY29vcmRpbmF0ZXMsIDIpO1xuICAkYm90dG9tOiBudGgoJGNvb3JkaW5hdGVzLCAzKTtcbiAgJGxlZnQ6IG50aCgkY29vcmRpbmF0ZXMsIDQpO1xuXG4gIEBpZiAkdG9wICE9IG4ge1xuICAgIHRvcDogc2N1dC1hdXRvT3JWYWx1ZSgkdG9wKTtcbiAgfVxuICBAaWYgJHJpZ2h0ICE9IG4ge1xuICAgIHJpZ2h0OiBzY3V0LWF1dG9PclZhbHVlKCRyaWdodCk7XG4gIH1cbiAgQGlmICRib3R0b20gIT0gbiB7XG4gICAgYm90dG9tOiBzY3V0LWF1dG9PclZhbHVlKCRib3R0b20pO1xuICB9XG4gIEBpZiAkbGVmdCAhPSBuIHtcbiAgICBsZWZ0OiBzY3V0LWF1dG9PclZhbHVlKCRsZWZ0KTtcbiAgfVxuXG59XG5AZnVuY3Rpb24gc2N1dC1zdHJpcC11bml0IChcbiAgJG51bVxuKSB7XG5cbiAgQHJldHVybiAkbnVtIC8gKCRudW0gKiAwICsgMSk7XG5cbn1cbi8vIERlcGVuZHMgb24gYHNjdXQtc3RyaXAtdW5pdGAuXG5cbiRzY3V0LWVtLWJhc2U6IDE2ICFkZWZhdWx0O1xuXG5AZnVuY3Rpb24gc2N1dC1lbSAoXG4gICRwaXhlbHMsXG4gICRiYXNlOiAkc2N1dC1lbS1iYXNlXG4pIHtcblxuICAvLyAkYmFzZSBjb3VsZCBiZSBpbiBlbSBvciBweCAobm8gdW5pdCA9IHB4KS5cbiAgLy8gQWRqdXN0IGFjY29yZGluZ2x5IHRvIGNyZWF0ZSBhICRkaXZpc29yIHRoYXRcbiAgLy8gc2VydmVzIGFzIGNvbnRleHQgZm9yICRwaXhlbHMuXG4gICRtdWx0aXBsaWVyOiBpZih1bml0KCRiYXNlKSA9PSBlbSwgMTYsIDEpO1xuICAkZGl2aXNvcjogc2N1dC1zdHJpcC11bml0KCRiYXNlKSAqICRtdWx0aXBsaWVyO1xuXG4gICRlbS12YWxzOiAoKTtcbiAgQGVhY2ggJHZhbCBpbiAkcGl4ZWxzIHtcbiAgICAkdmFsLWluLWVtczogKHNjdXQtc3RyaXAtdW5pdCgkdmFsKSAvICRkaXZpc29yKSAqIDFlbTtcbiAgICAkZW0tdmFsczogYXBwZW5kKCRlbS12YWxzLCAkdmFsLWluLWVtcyk7XG4gIH1cblxuICBAaWYgbGVuZ3RoKCRlbS12YWxzKSA9PSAxIHtcbiAgICAvLyByZXR1cm4gYSBzaW5nbGUgdmFsdWUgaW5zdGVhZCBvZiBhIGxpc3QsXG4gICAgLy8gc28gaXQgY2FuIGJlIHVzZWQgaW4gY2FsY3VsYXRpb25zXG4gICAgQHJldHVybiBudGgoJGVtLXZhbHMsIDEpO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuICRlbS12YWxzO1xuICB9XG5cbn1cbi8vIERlcGVuZHMgb24gYHNjdXQtc3RyaXAtdW5pdGAuXG5cbiRzY3V0LXJlbS1iYXNlOiAxNiAhZGVmYXVsdDtcblxuQGZ1bmN0aW9uIHNjdXQtcmVtIChcbiAgJHBpeGVsc1xuKSB7XG5cbiAgJHJlbS12YWxzOiAoKTtcbiAgQGVhY2ggJHZhbCBpbiAkcGl4ZWxzIHtcbiAgICAkdmFsLWluLXJlbXM6IHNjdXQtc3RyaXAtdW5pdCgkdmFsKSAvICRzY3V0LXJlbS1iYXNlICogMXJlbTtcbiAgICAkcmVtLXZhbHM6IGFwcGVuZCgkcmVtLXZhbHMsICR2YWwtaW4tcmVtcyk7XG4gIH1cblxuICBAaWYgbGVuZ3RoKCRyZW0tdmFscykgPT0gMSB7XG4gICAgLy8gcmV0dXJuIGEgc2luZ2xlIHZhbHVlIGluc3RlYWQgb2YgYSBsaXN0LFxuICAgIC8vIHNvIGl0IGNhbiBiZSB1c2VkIGluIGNhbGN1bGF0aW9uc1xuICAgIEByZXR1cm4gbnRoKCRyZW0tdmFscywgMSk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gJHJlbS12YWxzO1xuICB9XG5cbn1cbkBtaXhpbiBzY3V0LWJvcmRlciAoXG4gICRzdHlsZSxcbiAgJHNpZGVzOiBuIHlcbikge1xuXG4gIEBpZiBsZW5ndGgoJHNpZGVzKSA9PSAyIHtcbiAgICBAaWYgbnRoKCRzaWRlcywgMSkgIT0gbiB7XG4gICAgICBib3JkZXItdG9wOiAkc3R5bGU7XG4gICAgICBib3JkZXItYm90dG9tOiAkc3R5bGU7XG4gICAgfVxuICAgIEBpZiBudGgoJHNpZGVzLCAyKSAhPSBuIHtcbiAgICAgIGJvcmRlci1sZWZ0OiAkc3R5bGU7XG4gICAgICBib3JkZXItcmlnaHQ6ICRzdHlsZTtcbiAgICB9XG4gIH1cblxuICBAZWxzZSBpZiBsZW5ndGgoJHNpZGVzKSA9PSA0IHtcbiAgICBAaWYgbnRoKCRzaWRlcywgMSkgIT0gbiB7XG4gICAgICBib3JkZXItdG9wOiAkc3R5bGU7XG4gICAgfVxuICAgIEBpZiBudGgoJHNpZGVzLCAyKSAhPSBuIHtcbiAgICAgIGJvcmRlci1yaWdodDogJHN0eWxlO1xuICAgIH1cbiAgICBAaWYgbnRoKCRzaWRlcywgMykgIT0gbiB7XG4gICAgICBib3JkZXItYm90dG9tOiAkc3R5bGU7XG4gICAgfVxuICAgIEBpZiBudGgoJHNpZGVzLCA0KSAhPSBuIHtcbiAgICAgIGJvcmRlci1sZWZ0OiAkc3R5bGU7XG4gICAgfVxuICB9XG5cbiAgQGVsc2Uge1xuICAgIEB3YXJuIFwiU2N1dC1ib3JkZXIgcmVxdWlyZXMgYSAkc2lkZXMgYXJndW1lbnQgb2YgMiBvciA0IHZhbHVlcy5cIlxuICB9XG5cbn1cbkBtaXhpbiBzY3V0LWNpcmNsZSAoXG4gICRzaXplLFxuICAkY29sb3I6IGluaGVyaXRcbikge1xuXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gIEBpZiAkY29sb3IgPT0gaW5oZXJpdCB7XG4gICAgLy8gSWYgdXNlciB3YW50cyB0byBpbmhlcml0IHRoZSBjb2xvcixcbiAgICAvLyB0YWtlIGFkdmFudGFnZSBvZiB0aGUgZmFjdCB0aGF0IGJvcmRlclxuICAgIC8vIGNvbG9yIGRlZmF1bHRzIHRvIHRoZSB0ZXh0IGNvbG9yIG9mIHRoZSBlbGVtZW50LlxuICAgIGJvcmRlci13aWR0aDogJHNpemUgLyAyO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgaGVpZ2h0OiAwO1xuICAgIHdpZHRoOiAwO1xuICB9XG4gIEBlbHNlIHtcbiAgICAvLyBPdGhlcndpc2UsIGp1c3QgdXNlIGJhY2tncm91bmQtY29sb3IuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgIGhlaWdodDogJHNpemU7XG4gICAgd2lkdGg6ICRzaXplO1xuICB9XG5cbn1cbkBtaXhpbiBzY3V0LWNvbG9yLXN3YXAgKFxuICAkb2ZmLFxuICAkb24sXG4gICRkdXJhdGlvbjogMCxcbiAgJGJnOiBmYWxzZVxuKSB7XG5cbiAgJHRyYW5zaXRpb24tcHJvcGVydGllczogbnVsbDtcbiAgJG9mZi1pcy1saXN0OiB0eXBlLW9mKCRvZmYpID09IGxpc3Q7XG4gICRvbi1pcy1saXN0OiB0eXBlLW9mKCRvbikgPT0gbGlzdDtcblxuICAvLyBJZiAkb2ZmIElTIGEgbGlzdCxcbiAgLy8gYXNzaWduIGNvbG9yIGFuZCBiYWNrZ3JvdW5kLWNvbG9yLlxuICBAaWYgJG9mZi1pcy1saXN0IHtcbiAgICBjb2xvcjogbnRoKCRvZmYsIDEpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IG50aCgkb2ZmLCAyKTtcbiAgICAkdHJhbnNpdGlvbi1wcm9wZXJ0aWVzOiBiYWNrZ3JvdW5kLWNvbG9yLCBjb2xvcjtcbiAgfVxuXG4gIC8vIElmICRvZmYgSVMgTk9UIGEgbGlzdCBhbmQgJGJnIGlzIFRSVUUsXG4gIC8vIGFzc2lnbiBiYWNrZ3JvdW5kLWNvbG9yLlxuICBAZWxzZSBpZiAkYmcgYW5kIG5vdCgkb2ZmLWlzLWxpc3QpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb2ZmO1xuICAgICR0cmFuc2l0aW9uLXByb3BlcnRpZXM6IGJhY2tncm91bmQtY29sb3I7XG4gIH1cblxuICAvLyBJZiAkb2ZmIElTIE5PVCBhIGxpc3QgYW5kICRiZyBpcyBGQUxTRSxcbiAgLy8gYXNzaWduIGNvbG9yLlxuICBAZWxzZSB7XG4gICAgY29sb3I6ICRvZmY7XG4gICAgJHRyYW5zaXRpb24tcHJvcGVydGllczogY29sb3I7XG4gIH1cblxuICAvLyBPbmx5IHNldC11cCB0cmFuc2l0aW9uIGlmICRkdXJhdGlvbiAhPSAwLlxuICBAaWYgJGR1cmF0aW9uICE9IDAge1xuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6ICR0cmFuc2l0aW9uLXByb3BlcnRpZXM7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogJGR1cmF0aW9uO1xuICB9XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG5cbiAgICAvLyAkb24gaXMgdHJlYXRlZCB0aGUgc2FtZSBhcyAkb2ZmLCBhYm92ZS5cbiAgICBAaWYgJG9uLWlzLWxpc3Qge1xuICAgICAgY29sb3I6IG50aCgkb24sIDEpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbnRoKCRvbiwgMik7XG4gICAgfVxuXG4gICAgQGVsc2UgaWYgJGJnIGFuZCBub3QoJG9uLWlzLWxpc3QpIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRvbjtcbiAgICB9XG5cbiAgICBAZWxzZSB7XG4gICAgICBjb2xvcjogJG9uO1xuICAgIH1cbiAgfVxuXG59XG5AbWl4aW4gc2N1dC1oZC1icCAoXG4gICRyYXRpbzogMS4zXG4pIHtcblxuICBAbWVkaWEgKC1vLW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86ICgkcmF0aW8gLyAxKSksXG4gICAgICAgICAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAkcmF0aW8pLFxuICAgICAgICAgKG1pbi1yZXNvbHV0aW9uOiAocm91bmQoOTYgKiAkcmF0aW8pICogMWRwaSkpIHtcbiAgICBAY29udGVudDtcbiAgfVxuXG59XG5cbkBtaXhpbiBzY3V0LWhpZGUtdmlzdWFsbHkge1xuXG4gIGJvcmRlcjogMDtcbiAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgaGVpZ2h0OiAxcHg7XG4gIG1hcmdpbjogLTFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMXB4O1xuXG59XG5cbiVzY3V0LWhpZGUtdmlzdWFsbHkge1xuICBAaW5jbHVkZSBzY3V0LWhpZGUtdmlzdWFsbHk7XG59XG5AbWl4aW4gc2N1dC1pbWFnZS1yZXBsYWNlIHtcblxuICB0ZXh0LWluZGVudDogMTAyJTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogMDtcblxufVxuXG4lc2N1dC1pbWFnZS1yZXBsYWNlIHtcbiAgQGluY2x1ZGUgc2N1dC1pbWFnZS1yZXBsYWNlO1xufVxuXG4vLyBEZXBlbmRzIG9uIHNjdXQtcmVtIGFuZCBzY3V0LXN0cmlwLXVuaXRcblxuQG1peGluIHNjdXQtcmVtLWZhbGxiYWNrIChcbiAgJHBpeGVscyxcbiAgJHByb3BlcnR5OiBmb250LXNpemVcbikge1xuXG4gICRweC12YWxzOiBudWxsO1xuICBAZWFjaCAkdmFsIGluICRwaXhlbHMge1xuICAgICR2YWwtaW4tcHg6IHNjdXQtc3RyaXAtdW5pdCgkdmFsKSAqIDFweDtcbiAgICAkcHgtdmFsczogYXBwZW5kKCRweC12YWxzLCAkdmFsLWluLXB4KTtcbiAgfVxuICAkcmVtLXZhbHM6IHNjdXQtcmVtKCRwaXhlbHMpO1xuXG4gICN7JHByb3BlcnR5fTogJHB4LXZhbHM7XG4gICN7JHByb3BlcnR5fTogJHJlbS12YWxzO1xuXG59XG5AbWl4aW4gc2N1dC1yZXNldC1ib3JkZXItYm94IHtcbiAgLy8gTWFrZSBldmVyeXRoaW5nIGEgYm9yZGVyLWJveCwgYmVjYXVzZSB3aHkgbm90P1xuICBodG1sIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG4gICosICo6YmVmb3JlLCAqOmFmdGVyIHtcbiAgICBib3gtc2l6aW5nOiBpbmhlcml0O1xuICB9XG59XG5cbkBtaXhpbiBzY3V0LXJlc2V0LWFudGlhbGlhcyB7XG4gIC8vIEFudGlhbGlhcyFcbiAgYm9keSB7XG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIH1cbiAgKiwgKjpiZWZvcmUsICo6YWZ0ZXIge1xuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGluaGVyaXQ7XG4gIH1cbn1cblxuQG1peGluIHNjdXQtcmVzZXQtc2VtYW50aWNpemUge1xuICAvLyBNYWtlIGhlYWRlcnMgYW5kIDxiPiBzZW1hbnRpYywgbm90IHByZXNlbnRhdGlvbmFsLlxuICBoMSxcbiAgaDIsXG4gIGgzLFxuICBoNCxcbiAgaDUsXG4gIGg2IHtcbiAgICBmb250LXNpemU6IDFlbTtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIG1hcmdpbjogMDtcbiAgfVxuICBiIHtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICB9XG59XG5cbkBtaXhpbiBzY3V0LXJlc2V0LXBvaW50ZXIge1xuICAvLyBDbGlja2FibGUgZm9ybSBlbGVtZW50cyBzaG91bGQgaGF2ZSBhIHBvaW50ZXIuXG4gIGxhYmVsLFxuICBzZWxlY3QsXG4gIG9wdGlvbixcbiAgYnV0dG9uIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbn1cblxuQG1peGluIHNjdXQtcmVzZXQtZm9ybSB7XG4gIGZpZWxkc2V0IHtcbiAgICBib3JkZXI6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cbiAgdGV4dGFyZWEge1xuICAgIHJlc2l6ZTogdmVydGljYWw7XG4gIH1cbn1cblxuQG1peGluIHNjdXQtcmVzZXQtYnV0dG9uIHtcbiAgLy8gUmVzZXQgZGVmYXVsdCBidXR0b24gc3R5bGVzLCB3aGljaCBhcmUgbmV2ZXIgdXNlZC5cbiAgYnV0dG9uLFxuICBbdHlwZT1cImJ1dHRvblwiXSxcbiAgW3R5cGU9XCJzdWJtaXRcIl0sXG4gIFt0eXBlPVwicmVzZXRcIl0ge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogMDtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICBmb250OiBpbmhlcml0O1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICY6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGJvcmRlcjogMDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHNjdXQtcmVzZXQtcGFyYWdyYXBoIHtcbiAgLy8gU29tZSBwYXJhZ3JhcGggbWFyZ2lucyBqdXN0IGdldCBpbiB0aGUgd2F5LlxuICBwOmZpcnN0LW9mLXR5cGUge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cbiAgcDpsYXN0LW9mLXR5cGUge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuQG1peGluIHNjdXQtcmVzZXQtbWVkaWEge1xuICAvLyBZb3Ugd2FudCB0aGVzZSBlbGVtZW50cyBmbHVpZCwgcHJvYmFibHkuXG4gIGltZyxcbiAgdmlkZW8ge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cbn1cblxuQG1peGluIHNjdXQtcmVzZXQtZmlndXJlIHtcbiAgLy8gUmVtb3ZlIGRlZmF1bHQgbWFyZ2lucy5cbiAgZmlndXJlIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cbn1cblxuLy8gQ2FsbCB0aGVtIGFsbCwgbWludXMgZXhjbHVzaW9ucyFcbkBtaXhpbiBzY3V0LXJlc2V0ICgkZXhjbHVkZTogZmFsc2UpIHtcbiAgQGlmIG5vdChpbmRleCgkZXhjbHVkZSwgYm9yZGVyLWJveCkpIHtcbiAgICBAaW5jbHVkZSBzY3V0LXJlc2V0LWJvcmRlci1ib3g7XG4gIH1cbiAgQGlmIG5vdChpbmRleCgkZXhjbHVkZSwgYW50aWFsaWFzKSkge1xuICAgIEBpbmNsdWRlIHNjdXQtcmVzZXQtYW50aWFsaWFzO1xuICB9XG4gIEBpZiBub3QoaW5kZXgoJGV4Y2x1ZGUsIHNlbWFudGljaXplKSkge1xuICAgIEBpbmNsdWRlIHNjdXQtcmVzZXQtc2VtYW50aWNpemU7XG4gIH1cbiAgQGlmIG5vdChpbmRleCgkZXhjbHVkZSwgcG9pbnRlcikpIHtcbiAgICBAaW5jbHVkZSBzY3V0LXJlc2V0LXBvaW50ZXI7XG4gIH1cbiAgQGlmIG5vdChpbmRleCgkZXhjbHVkZSwgZm9ybSkpIHtcbiAgICBAaW5jbHVkZSBzY3V0LXJlc2V0LWZvcm07XG4gIH1cbiAgQGlmIG5vdChpbmRleCgkZXhjbHVkZSwgYnV0dG9uKSkge1xuICAgIEBpbmNsdWRlIHNjdXQtcmVzZXQtYnV0dG9uO1xuICB9XG4gIEBpZiBub3QoaW5kZXgoJGV4Y2x1ZGUsIHBhcmFncmFwaCkpIHtcbiAgICBAaW5jbHVkZSBzY3V0LXJlc2V0LXBhcmFncmFwaDtcbiAgfVxuICBAaWYgbm90KGluZGV4KCRleGNsdWRlLCBtZWRpYSkpIHtcbiAgICBAaW5jbHVkZSBzY3V0LXJlc2V0LW1lZGlhO1xuICB9XG4gIEBpZiBub3QoaW5kZXgoJGV4Y2x1ZGUsIGZpZ3VyZSkpIHtcbiAgICBAaW5jbHVkZSBzY3V0LXJlc2V0LWZpZ3VyZTtcbiAgfVxufVxuXG5AbWl4aW4gc2N1dC1zZWxlY3RlZCAoXG4gICRhY3RpdmU6IGZhbHNlXG4pIHtcblxuICBAaWYgJGFjdGl2ZSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuXG59XG5AbWl4aW4gc2N1dC10cmlhbmdsZSAoXG4gICRkaXJlY3Rpb246IHJpZ2h0LFxuICAkc2l6ZTogMC43NWVtLFxuICAkY29sb3I6IGluaGVyaXRcbikge1xuXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgaGVpZ2h0OiAwO1xuICB3aWR0aDogMDtcbiAgLy8gRm9yIGltcHJvdmVkIGFwcGVhcmFuY2UgaW4gc29tZSBXZWJraXQgYnJvd3NlcnNcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuXG4gIC8vIFNldCB1cCBzb21lIHZhcmlhYmxlc1xuICAkd2lkdGg6IG51bGw7XG4gICRoZWlnaHQ6IG51bGw7XG4gICRib3JkZXItd2lkdGhzOiBudWxsO1xuXG4gIEBpZiB0eXBlLW9mKCRzaXplKSA9PSBsaXN0IHtcbiAgICAkd2lkdGg6IG50aCgkc2l6ZSwgMSk7XG4gICAgJGhlaWdodDogbnRoKCRzaXplLCAyKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgJHdpZHRoOiAkc2l6ZTtcbiAgICAkaGVpZ2h0OiAkc2l6ZTtcbiAgfVxuXG4gIEBpZiAoJGRpcmVjdGlvbiA9PSB1cCkgb3IgKCRkaXJlY3Rpb24gPT0gZG93bikge1xuICAgIC8vIEZvciB1cCBhbmQgZG93biwgd2lkdGggZ2V0cyB0d28gYm9yZGVycyBidXQgaGVpZ2h0IG9ubHkgb25lLFxuICAgIC8vIHNvIGRpdmlkZSBzZWNvbmQgYm9yZGVyLXdpZHRoIHZhbHVlIGJ5IDJcbiAgICAkYm9yZGVyLXdpZHRoczogJGhlaWdodCAoJHdpZHRoIC8gMik7XG4gIH1cbiAgQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gcmlnaHQpIG9yICgkZGlyZWN0aW9uID09IGxlZnQpIHtcbiAgICAvLyBGb3IgcmlnaHQgYW5kIGxlZnQsIGhlaWdodCBnZXRzIHR3byBib3JkZXJzIGJ1dCB3aWR0aCBvbmx5IG9uZSxcbiAgICAvLyBzbyBkaXZpZGUgZmlyc3QgYm9yZGVyLXdpZHRoIHZhbHVlIGJ5IDJcbiAgICAkYm9yZGVyLXdpZHRoczogKCRoZWlnaHQgLyAyKSAkd2lkdGg7XG4gIH1cbiAgQGVsc2Uge1xuICAgIC8vIEZvciByaWdodCB0cmlhbmdsZXMgKHRoZSByZXN0KSwgYm90aCBzaWRlcyBnZXQgdHdvIGJvcmRlcnMsXG4gICAgLy8gc28gZGl2aWRlIGJvdGggYnkgMlxuICAgICRib3JkZXItd2lkdGhzOiAoJGhlaWdodCAvIDIpICgkd2lkdGggLyAyKTtcbiAgfVxuXG4gIGJvcmRlci13aWR0aDogJGJvcmRlci13aWR0aHM7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG5cblxuICAvLyBTVEFOREFSRCBUUklBTkdMRVNcblxuICBAaWYgKCRkaXJlY3Rpb24gPT0gdXApIG9yICgkZGlyZWN0aW9uID09IGRvd24pIG9yICgkZGlyZWN0aW9uID09IHJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSBsZWZ0KSB7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBAaWYgJGRpcmVjdGlvbiA9PSB1cCB7XG4gICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkY29sb3I7XG4gICAgICBib3JkZXItdG9wLXdpZHRoOiAwO1xuICAgIH1cbiAgICBAZWxzZSBpZiAkZGlyZWN0aW9uID09IHJpZ2h0IHtcbiAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAkY29sb3I7XG4gICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gICAgfVxuICAgIEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gZG93biB7XG4gICAgICBib3JkZXItdG9wLWNvbG9yOiAkY29sb3I7XG4gICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICAgIH1cbiAgICBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGxlZnQge1xuICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkY29sb3I7XG4gICAgICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgICB9XG4gIH1cblxuXG4gIC8vIENPUk5FUiBUUklBTkdMRVNcblxuICBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSB0b3AtcmlnaHQpIG9yICgkZGlyZWN0aW9uID09IHRvcC1sZWZ0KSB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIEBpZiAkZGlyZWN0aW9uID09IHRvcC1yaWdodCB7XG4gICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRjb2xvcjtcbiAgICB9XG4gICAgQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSB0b3AtbGVmdCB7XG4gICAgICBib3JkZXItbGVmdC1jb2xvcjogJGNvbG9yO1xuICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG4gIH1cblxuICBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBib3R0b20tcmlnaHQpIG9yICgkZGlyZWN0aW9uID09IGJvdHRvbS1sZWZ0KSB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJGNvbG9yO1xuICAgIEBpZiAkZGlyZWN0aW9uID09IGJvdHRvbS1yaWdodCB7XG4gICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRjb2xvcjtcbiAgICB9XG4gICAgQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBib3R0b20tbGVmdCB7XG4gICAgICBib3JkZXItbGVmdC1jb2xvcjogJGNvbG9yO1xuICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG4gIH1cblxufVxuXG4lc2N1dC10cmlhbmdsZSB7XG4gIEBpbmNsdWRlIHNjdXQtdHJpYW5nbGU7XG59XG5AbWl4aW4gc2N1dC1jZW50ZXItYWJzb2x1dGVseSAoXG4gICRkaW1lbnNpb25zXG4pIHtcblxuICAkd2lkdGg6IG50aCgkZGltZW5zaW9ucywgMSk7XG4gICRoZWlnaHQ6IG50aCgkZGltZW5zaW9ucywgMik7XG5cbiAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gIEBpZiAkd2lkdGggIT0gbiB7XG4gICAgd2lkdGg6ICR3aWR0aDtcbiAgICBsZWZ0OiA1MCU7XG4gICAgbWFyZ2luLWxlZnQ6ICgtJHdpZHRoIC8gMik7XG4gIH1cblxuICBAaWYgJGhlaWdodCAhPSBuIHtcbiAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gICAgdG9wOiA1MCU7XG4gICAgbWFyZ2luLXRvcDogKC0kaGVpZ2h0IC8gMik7XG4gIH1cblxufVxuQG1peGluIHNjdXQtY2VudGVyLWJsb2NrIChcbiAgJG1heC13aWR0aDogZmFsc2Vcbikge1xuXG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIEBpZiAkbWF4LXdpZHRoIHtcbiAgICBtYXgtd2lkdGg6ICRtYXgtd2lkdGg7XG4gIH1cblxufVxuXG4lc2N1dC1jZW50ZXItYmxvY2sge1xuICBAaW5jbHVkZSBzY3V0LWNlbnRlci1ibG9jaztcbn1cblxuQG1peGluIHNjdXQtY2VudGVyLXRyYW5zZm9ybSAoXG4gICRheGlzOiBmYWxzZSAvLyBvciB4IG9yIHlcbikge1xuXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICBAaWYgJGF4aXMgIT0geCB7XG4gICAgdG9wOiA1MCU7XG4gICAgbWFyZ2luLXRvcDogYXV0bztcbiAgICBtYXJnaW4tYm90dG9tOiBhdXRvO1xuICB9XG5cbiAgQGlmICRheGlzICE9IHkge1xuICAgIGxlZnQ6IDUwJTtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIH1cblxuICAkdHJhbnNsYXRlLXZhbDogbnVsbDtcblxuICBAaWYgbm90KCRheGlzKSB7XG4gICAgJHRyYW5zbGF0ZS12YWw6IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgfVxuICBAZWxzZSBpZiAkYXhpcyAhPSB4IHtcbiAgICAkdHJhbnNsYXRlLXZhbDogdHJhbnNsYXRlWSgtNTAlKTtcbiAgfVxuICBAZWxzZSBpZiAkYXhpcyAhPSB5IHtcbiAgICAkdHJhbnNsYXRlLXZhbDogdHJhbnNsYXRlWCgtNTAlKTtcbiAgfVxuXG4gIC13ZWJraXQtdHJhbnNmb3JtOiAkdHJhbnNsYXRlLXZhbDtcbiAgLW1zLXRyYW5zZm9ybTogJHRyYW5zbGF0ZS12YWw7XG4gIHRyYW5zZm9ybTogJHRyYW5zbGF0ZS12YWw7XG59XG5cbiVzY3V0LWNlbnRlci10cmFuc2Zvcm0ge1xuICBAaW5jbHVkZSBzY3V0LWNlbnRlci10cmFuc2Zvcm07XG59XG5cbiVzY3V0LWNlbnRlci10cmFuc2Zvcm0teCB7XG4gIEBpbmNsdWRlIHNjdXQtY2VudGVyLXRyYW5zZm9ybSh4KTtcbn1cblxuJXNjdXQtY2VudGVyLXRyYW5zZm9ybS15IHtcbiAgQGluY2x1ZGUgc2N1dC1jZW50ZXItdHJhbnNmb3JtKHkpO1xufVxuXG5AbWl4aW4gc2N1dC1maWxsIChcbiAgJHdpZHRoLWhlaWdodDogZmFsc2Vcbikge1xuXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICBAaWYgJHdpZHRoLWhlaWdodCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG4gIEBlbHNlIHtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gIH1cblxufVxuXG4lc2N1dC1maWxsIHtcbiAgQGluY2x1ZGUgc2N1dC1maWxsO1xufVxuQG1peGluIHNjdXQtbGlzdC1jdXN0b20gKFxuICAkY29udGVudDogXCJcXDIwMjJcIixcbiAgJG1hcmtlci13aWR0aDogMC43NWVtLFxuICAkcGFkOiAwLFxuICAkbm8tbWFyZ2luOiBmYWxzZVxuKSB7XG5cbiAgJGNvbnRlbnQtdmFsOiBudWxsO1xuICAkY291bnRlcjogaW5kZXgoJGNvbnRlbnQsIGNvdW50KTtcbiAgQGlmICRjb3VudGVyIHtcbiAgICBAaWYgbGVuZ3RoKCRjb250ZW50KSA9PSAzIHtcbiAgICAgICRjb250ZW50LXZhbDogY291bnRlcihzY3V0bGlzdGNvdW50ZXIsIG50aCgkY29udGVudCwgMykpbnRoKCRjb250ZW50LDIpO1xuICAgIH1cbiAgICBAZWxzZSBpZiBsZW5ndGgoJGNvbnRlbnQpID09IDIge1xuICAgICAgJGNvbnRlbnQtdmFsOiBjb3VudGVyKHNjdXRsaXN0Y291bnRlciludGgoJGNvbnRlbnQsMik7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICRjb250ZW50LXZhbDogY291bnRlcihzY3V0bGlzdGNvdW50ZXIpO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgJGNvbnRlbnQtdmFsOiAkY29udGVudDtcbiAgfVxuXG4gIHBhZGRpbmctbGVmdDogJG1hcmtlci13aWR0aCArICRwYWQ7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcblxuICBAaWYgJG5vLW1hcmdpbiB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgJiA+IGxpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgQGlmICRjb3VudGVyIHtcbiAgICAgIGNvdW50ZXItaW5jcmVtZW50OiBzY3V0bGlzdGNvdW50ZXI7XG4gICAgfVxuICAgICY6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICRjb250ZW50LXZhbDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogLSRtYXJrZXItd2lkdGg7XG4gICAgICB3aWR0aDogJG1hcmtlci13aWR0aDtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuXG59XG4vLyBEZXBlbmRzIG9uIGBsaXN0LWZsb2F0ZWRgLCB3aGljaCBkZXBlbmRzIGluIHR1cm4gb24gYGxpc3QtdW5zdHlsZWRgIGFuZCBgY2xlYXJmaXhgLlxuXG5AbWl4aW4gc2N1dC1saXN0LWRpdmlkZWQgKFxuICAkZGl2aWRlcjogXCJ8XCIsXG4gICRzcGFjZTogMC41ZW0sXG4gICRkaXI6IGxlZnQsXG4gICRoZWlnaHQ6IGZhbHNlLFxuICAkbm8tbWFyZ2luOiB0cnVlXG4pIHtcblxuICBAaW5jbHVkZSBzY3V0LWxpc3QtZmxvYXRlZCgkZGlyOiAkZGlyLCAkbm8tbWFyZ2luOiAkbm8tbWFyZ2luKTtcblxuICAkcHNldWRvOiBpZigkZGlyID09IGxlZnQsICdiZWZvcmUnLCAnYWZ0ZXInKTtcblxuICAvLyBJZiBhbiBleHBsaWNpdCBoZWlnaHQgaXMgcGFzc2VkLFxuICAvLyB0aGluZ3MgYXJlIGRpZmZlcmVudDogQWxsIDxsaT5zXG4gIC8vIG5lZWQgdGhlIHBzZXVkby1lbGVtZW50ICh0byBmb3JjZSBoZWlnaHQpLFxuICAvLyBidXQgdGhlIGZpcnN0J3MgbXVzdCBiZSBoaWRkZW4uXG5cbiAgQGlmICRoZWlnaHQge1xuICAgICYgPiBsaSB7XG4gICAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gICAgfVxuICAgICYgPiBsaTojeyRwc2V1ZG99IHtcbiAgICAgIGhlaWdodDogJGhlaWdodDtcbiAgICAgIGNvbnRlbnQ6ICRkaXZpZGVyO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgICAmID4gbGk6Zmlyc3QtY2hpbGQ6I3skcHNldWRvfSB7XG4gICAgICB3aWR0aDogMDtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxuICB9XG5cbiAgJiA+IGxpICsgbGk6I3skcHNldWRvfSB7XG4gICAgQGlmIG5vdCgkaGVpZ2h0KSB7XG4gICAgICBjb250ZW50OiAkZGl2aWRlcjtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgICBtYXJnaW4tbGVmdDogJHNwYWNlO1xuICAgIG1hcmdpbi1yaWdodDogJHNwYWNlO1xuICB9XG5cbn1cblxuJXNjdXQtbGlzdC1iYXIge1xuICBAaW5jbHVkZSBzY3V0LWxpc3QtZGl2aWRlZDtcbn1cblxuJXNjdXQtbGlzdC1icmVhZGNydW1iIHtcbiAgQGluY2x1ZGUgc2N1dC1saXN0LWRpdmlkZWQoXCIvXCIpO1xufVxuLy8gRGVwZW5kcyBvbiBgbGlzdC11bnN0eWxlZGAuXG5cbkBtaXhpbiBzY3V0LWxpc3QtaW5saW5lIChcbiAgJHNwYWNlOiBmYWxzZSxcbiAgJG5vLW1hcmdpbjogdHJ1ZVxuKSB7XG5cbiAgQGluY2x1ZGUgc2N1dC1saXN0LXVuc3R5bGVkKCRuby1tYXJnaW4pO1xuXG4gICYgPiBsaSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG5cbiAgQGlmICRzcGFjZSB7XG4gICAgJiA+IGxpICsgbGkge1xuICAgICAgbWFyZ2luLWxlZnQ6ICRzcGFjZTtcbiAgICB9XG4gIH1cblxufVxuXG4lc2N1dC1saXN0LWlubGluZSB7XG4gIEBpbmNsdWRlIHNjdXQtbGlzdC1pbmxpbmU7XG59XG4vLyBEZXBlbmRzIG9uIGBsaXN0LXVuc3R5bGVkYC5cblxuQG1peGluIHNjdXQtbGlzdC1wdW5jdHVhdGVkIChcbiAgJGRpdmlkZXI6IFwiLCBcIixcbiAgJGRpc3BsYXk6IGlubGluZSxcbiAgJG5vLW1hcmdpbjogdHJ1ZVxuKSB7XG5cbiAgQGluY2x1ZGUgc2N1dC1saXN0LXVuc3R5bGVkKCRuby1tYXJnaW4pO1xuXG4gICYgPiBsaSB7XG4gICAgZGlzcGxheTogJGRpc3BsYXk7XG4gICAgJjpub3QoOmxhc3QtY2hpbGQpOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICRkaXZpZGVyO1xuICAgIH1cbiAgfVxuXG59XG5cbiVzY3V0LWxpc3QtY29tbWEge1xuICBAaW5jbHVkZSBzY3V0LWxpc3QtcHVuY3R1YXRlZDtcbn1cbkBtaXhpbiBzY3V0LW1hcmdpbiAoXG4gICRtYXJnaW5cbikge1xuXG4gIEBpZiBsZW5ndGgoJG1hcmdpbikgPT0gMSBhbmQgJG1hcmdpbiAhPSBuIHtcbiAgICBtYXJnaW4tdG9wOiAkbWFyZ2luO1xuICAgIG1hcmdpbi1yaWdodDogJG1hcmdpbjtcbiAgICBtYXJnaW4tYm90dG9tOiAkbWFyZ2luO1xuICAgIG1hcmdpbi1sZWZ0OiAkbWFyZ2luO1xuICB9XG5cbiAgQGlmIGxlbmd0aCgkbWFyZ2luKSA9PSAyIHtcbiAgICAkbWFyZ2luLXk6IG50aCgkbWFyZ2luLCAxKTtcbiAgICAkbWFyZ2luLXg6IG50aCgkbWFyZ2luLCAyKTtcbiAgICBAaWYgJG1hcmdpbi15ICE9IG4ge1xuICAgICAgbWFyZ2luLXRvcDogJG1hcmdpbi15O1xuICAgICAgbWFyZ2luLWJvdHRvbTogJG1hcmdpbi15O1xuICAgIH1cbiAgICBAaWYgJG1hcmdpbi14ICE9IG4ge1xuICAgICAgbWFyZ2luLWxlZnQ6ICRtYXJnaW4teDtcbiAgICAgIG1hcmdpbi1yaWdodDogJG1hcmdpbi14O1xuICAgIH1cbiAgfVxuXG4gIEBpZiBsZW5ndGgoJG1hcmdpbikgPT0gMyB7XG4gICAgJG1hcmdpbi15LXRvcDogbnRoKCRtYXJnaW4sIDEpO1xuICAgICRtYXJnaW4teDogbnRoKCRtYXJnaW4sIDIpO1xuICAgICRtYXJnaW4teS1ib3R0b206IG50aCgkbWFyZ2luLCAzKTtcbiAgICBAaWYgJG1hcmdpbi15LXRvcCAhPSBuIHtcbiAgICAgIG1hcmdpbi10b3A6ICRtYXJnaW4teS10b3A7XG4gICAgfVxuICAgIEBpZiAkbWFyZ2luLXggIT0gbiB7XG4gICAgICBtYXJnaW4tcmlnaHQ6ICRtYXJnaW4teDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAkbWFyZ2luLXg7XG4gICAgfVxuICAgIEBpZiAkbWFyZ2luLXktYm90dG9tICE9IG4ge1xuICAgICAgbWFyZ2luLWJvdHRvbTogJG1hcmdpbi15LWJvdHRvbTtcbiAgICB9XG4gIH1cblxuICBAaWYgbGVuZ3RoKCRtYXJnaW4pID09IDQge1xuICAgICRtYXJnaW4tdG9wOiBudGgoJG1hcmdpbiwgMSk7XG4gICAgJG1hcmdpbi1yaWdodDogbnRoKCRtYXJnaW4sIDIpO1xuICAgICRtYXJnaW4tYm90dG9tOiBudGgoJG1hcmdpbiwgMyk7XG4gICAgJG1hcmdpbi1sZWZ0OiBudGgoJG1hcmdpbiwgNCk7XG4gICAgQGlmICRtYXJnaW4tdG9wICE9IG4ge1xuICAgICAgbWFyZ2luLXRvcDogJG1hcmdpbi10b3A7XG4gICAgfVxuICAgIEBpZiAkbWFyZ2luLXJpZ2h0ICE9IG4ge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAkbWFyZ2luLXJpZ2h0O1xuICAgIH1cbiAgICBAaWYgJG1hcmdpbi1ib3R0b20gIT0gbiB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAkbWFyZ2luLWJvdHRvbTtcbiAgICB9XG4gICAgQGlmICRtYXJnaW4tbGVmdCAhPSBuIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAkbWFyZ2luLWxlZnQ7XG4gICAgfVxuICB9XG5cbn1cbkBtaXhpbiBzY3V0LXBhZGRpbmcgKFxuICAkcGFkZGluZ1xuKSB7XG5cbiAgQGlmIGxlbmd0aCgkcGFkZGluZykgPT0gMSBhbmQgJHBhZGRpbmcgIT0gbiB7XG4gICAgcGFkZGluZy10b3A6ICRwYWRkaW5nO1xuICAgIHBhZGRpbmctcmlnaHQ6ICRwYWRkaW5nO1xuICAgIHBhZGRpbmctYm90dG9tOiAkcGFkZGluZztcbiAgICBwYWRkaW5nLWxlZnQ6ICRwYWRkaW5nO1xuICB9XG5cbiAgQGlmIGxlbmd0aCgkcGFkZGluZykgPT0gMiB7XG4gICAgJHBhZGRpbmcteTogbnRoKCRwYWRkaW5nLCAxKTtcbiAgICAkcGFkZGluZy14OiBudGgoJHBhZGRpbmcsIDIpO1xuICAgIEBpZiAkcGFkZGluZy15ICE9IG4ge1xuICAgICAgcGFkZGluZy10b3A6ICRwYWRkaW5nLXk7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogJHBhZGRpbmcteTtcbiAgICB9XG4gICAgQGlmICRwYWRkaW5nLXggIT0gbiB7XG4gICAgICBwYWRkaW5nLWxlZnQ6ICRwYWRkaW5nLXg7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAkcGFkZGluZy14O1xuICAgIH1cbiAgfVxuXG4gIEBpZiBsZW5ndGgoJHBhZGRpbmcpID09IDMge1xuICAgICRwYWRkaW5nLXktdG9wOiBudGgoJHBhZGRpbmcsIDEpO1xuICAgICRwYWRkaW5nLXg6IG50aCgkcGFkZGluZywgMik7XG4gICAgJHBhZGRpbmcteS1ib3R0b206IG50aCgkcGFkZGluZywgMyk7XG4gICAgQGlmICRwYWRkaW5nLXktdG9wICE9IG4ge1xuICAgICAgcGFkZGluZy10b3A6ICRwYWRkaW5nLXktdG9wO1xuICAgIH1cbiAgICBAaWYgJHBhZGRpbmcteCAhPSBuIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6ICRwYWRkaW5nLXg7XG4gICAgICBwYWRkaW5nLWxlZnQ6ICRwYWRkaW5nLXg7XG4gICAgfVxuICAgIEBpZiAkcGFkZGluZy15LWJvdHRvbSAhPSBuIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAkcGFkZGluZy15LWJvdHRvbTtcbiAgICB9XG4gIH1cblxuICBAaWYgbGVuZ3RoKCRwYWRkaW5nKSA9PSA0IHtcbiAgICAkcGFkZGluZy10b3A6IG50aCgkcGFkZGluZywgMSk7XG4gICAgJHBhZGRpbmctcmlnaHQ6IG50aCgkcGFkZGluZywgMik7XG4gICAgJHBhZGRpbmctYm90dG9tOiBudGgoJHBhZGRpbmcsIDMpO1xuICAgICRwYWRkaW5nLWxlZnQ6IG50aCgkcGFkZGluZywgNCk7XG4gICAgQGlmICRwYWRkaW5nLXRvcCAhPSBuIHtcbiAgICAgIHBhZGRpbmctdG9wOiAkcGFkZGluZy10b3A7XG4gICAgfVxuICAgIEBpZiAkcGFkZGluZy1yaWdodCAhPSBuIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6ICRwYWRkaW5nLXJpZ2h0O1xuICAgIH1cbiAgICBAaWYgJHBhZGRpbmctYm90dG9tICE9IG4ge1xuICAgICAgcGFkZGluZy1ib3R0b206ICRwYWRkaW5nLWJvdHRvbTtcbiAgICB9XG4gICAgQGlmICRwYWRkaW5nLWxlZnQgIT0gbiB7XG4gICAgICBwYWRkaW5nLWxlZnQ6ICRwYWRkaW5nLWxlZnQ7XG4gICAgfVxuICB9XG59XG4vLyBEZXBlbmRzIG9uIGBwb3NpdGlvbmluZy1jb29yZGluYXRlc2AuXG5cbkBtaXhpbiBzY3V0LWFic29sdXRlIChcbiAgJGNvb3JkaW5hdGVzOiAwIG4gbiAwXG4pIHtcblxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIEBpbmNsdWRlIHNjdXQtY29vcmRzKCRjb29yZGluYXRlcyk7XG5cbn1cblxuJXNjdXQtYWJzb2x1dGUge1xuICBAaW5jbHVkZSBzY3V0LWFic29sdXRlO1xufVxuLy8gRGVwZW5kcyBvbiBgcG9zaXRpb25pbmctY29vcmRpbmF0ZXNgLlxuXG5AbWl4aW4gc2N1dC1maXhlZCAoXG4gICRjb29yZGluYXRlczogMCBuIG4gMFxuKSB7XG5cbiAgcG9zaXRpb246IGZpeGVkO1xuICBAaW5jbHVkZSBzY3V0LWNvb3JkcygkY29vcmRpbmF0ZXMpO1xuXG59XG5cbiVzY3V0LWZpeGVkIHtcbiAgQGluY2x1ZGUgc2N1dC1maXhlZDtcbn1cbi8vIERlcGVuZHMgb24gYHBvc2l0aW9uaW5nLWNvb3JkaW5hdGVzYC5cblxuQG1peGluIHNjdXQtcmVsYXRpdmUgKFxuICAkY29vcmRpbmF0ZXM6IG4gbiBuIG5cbikge1xuXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgQGluY2x1ZGUgc2N1dC1jb29yZHMoJGNvb3JkaW5hdGVzKTtcblxufVxuQG1peGluIHNjdXQtcmF0aW8tYm94IChcbiAgJHJhdGlvOiAxLzFcbikge1xuXG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAvLyBUaGUgY29udGFpbmVyJ3MgaGVpZ2h0LCBhcyBhIHBlcmNlbnRhZ2Ugb2YgdGhlXG4gIC8vIGNvbnRhaW5lcidzIHdpZHRoLCBpcyBzZXQgYnkgYXNzaWduaW5nXG4gIC8vIHBhZGRpbmctdG9wIHRvIGEgcHNldWRvLWVsZW1lbnQuXG4gICY6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMDtcbiAgICBwYWRkaW5nLXRvcDogKDEgLyAkcmF0aW8pICogMTAwJTtcbiAgfVxuXG59XG5cbiVzY3V0LXJhdGlvLWJveCB7XG4gIEBpbmNsdWRlIHNjdXQtcmF0aW8tYm94O1xufVxuQG1peGluIHNjdXQtc2l6ZShcbiAgJHNpemVcbikge1xuXG4gIEBpZiBsZW5ndGgoJHNpemUpID09IDEge1xuICAgIHdpZHRoOiAgJHNpemU7XG4gICAgaGVpZ2h0OiAkc2l6ZTtcbiAgfVxuICBAZWxzZSBpZiBsZW5ndGgoJHNpemUpID09IDIge1xuICAgIHdpZHRoOiAgbnRoKCRzaXplLCAxKTtcbiAgICBoZWlnaHQ6IG50aCgkc2l6ZSwgMik7XG4gIH1cblxufVxuQG1peGluIHNjdXQtc3RpY2t5LWZvb3Rlci1maXhlZCAoXG4gICRoZWlnaHQsXG4gICR3cmFwcGVyOiBcIi53cmFwcGVyXCIsXG4gICRmb290ZXI6IFwiLnNjdXQtc3RpY2t5XCJcbikge1xuXG4gIGh0bWwsXG4gIGJvZHkge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gICN7JHdyYXBwZXJ9IHtcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206IC0kaGVpZ2h0O1xuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxuXG4gICN7JHdyYXBwZXJ9OmFmdGVyLFxuICAjeyRmb290ZXJ9IHtcbiAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIH1cblxufVxuXG4vLyBkZXByZWNhdGVkXG5AbWl4aW4gc2N1dC1zdGlja3ktZm9vdGVyIChcbiAgJGhlaWdodCxcbiAgJHdyYXBwZXI6IFwiLndyYXBwZXJcIixcbiAgJGZvb3RlcjogXCIuc2N1dC1zdGlja3lcIlxuKXtcbiAgQGluY2x1ZGUgc2N1dC1zdGlja3ktZm9vdGVyLWZpeGVkKCRoZWlnaHQsICR3cmFwcGVyLCAkZm9vdGVyKTtcbn1cbkBtaXhpbiBzY3V0LXN0aWNreS1mb290ZXItZmx1aWQgKFxuICAkd3JhcHBlcjogXCIud3JhcHBlclwiLFxuICAkZm9vdGVyOiBcIi5zY3V0LXN0aWNreVwiXG4pIHtcblxuICBodG1sLFxuICBib2R5IHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICAjeyR3cmFwcGVyfSB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgI3skZm9vdGVyfSB7XG4gICAgZGlzcGxheTogdGFibGUtcm93O1xuICAgIGhlaWdodDogMXB4O1xuICB9XG5cbn1cbkBtaXhpbiBzY3V0LXZjZW50ZXItaWIgKFxuICAkaW5uZXIuLi5cbikge1xuXG4gIC8vIFRoZSBpbm5lciBlbGVtZW50IGlzIHZlcnRpY2FsbHkgY2VudGVyZWRcbiAgLy8gYnkgbWlkZGxlLWFsaWduaW5nIGl0IHdpdGggYW4gaW5saW5lIHBzZXVkby1lbGVtZW50XG4gIC8vIHdob3NlIGhlaWdodCBpcyAxMDAlLlxuXG4gICY6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAvLyBBIHNtYWxsIG5lZ2F0aXZlIHJpZ2h0IG1hcmdpbiBpcyBzZXRcbiAgICAvLyB0byBhY2NvdW50IGZvciB0aGUgZGVmYXVsdFxuICAgIC8vIHdvcmQtc3BhY2luZyBvZiBpbmxpbmUtYmxvY2suXG4gICAgbWFyZ2luLXJpZ2h0OiAtMC4yNWVtO1xuICB9XG5cbiAgJGlubmVyOiBpZihsZW5ndGgoJGlubmVyKSA9PSAwLCBcIi5zY3V0LWlubmVyXCIsICRpbm5lcik7XG4gIEBlYWNoICRjZWxsLXNlbGVjdG9yIGluICRpbm5lciB7XG4gICAgJGNlbGwtc2VsZWN0b3I6IHVucXVvdGUoJGNlbGwtc2VsZWN0b3IpO1xuICAgICYgPiAjeyRjZWxsLXNlbGVjdG9yfSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cbiAgfVxuXG59XG5cbiVzY3V0LXZjZW50ZXItaWIge1xuICBAaW5jbHVkZSBzY3V0LXZjZW50ZXItaWI7XG59XG5cbkBtaXhpbiBzY3V0LXZjZW50ZXItbGggKFxuICAkaGVpZ2h0XG4pIHtcblxuICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiAkaGVpZ2h0O1xuXG59XG5AbWl4aW4gc2N1dC12Y2VudGVyLXRkIChcbiAgJGlubmVyLi4uXG4pIHtcblxuICBkaXNwbGF5OiB0YWJsZTtcblxuICAkaW5uZXI6IGlmKGxlbmd0aCgkaW5uZXIpID09IDAsIFwiLnNjdXQtaW5uZXJcIiwgJGlubmVyKTtcbiAgQGVhY2ggJGNlbGwtc2VsZWN0b3IgaW4gJGlubmVyIHtcbiAgICAkY2VsbC1zZWxlY3RvcjogdW5xdW90ZSgkY2VsbC1zZWxlY3Rvcik7XG4gICAgJiA+ICN7JGNlbGwtc2VsZWN0b3J9IHtcbiAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cbiAgfVxuXG59XG5cblxuJXNjdXQtdmNlbnRlci10ZCB7XG4gIEBpbmNsdWRlIHNjdXQtdmNlbnRlci10ZDtcbn1cblxuLy8gRGVwZW5kcyBvbiBzY3V0LWNlbnRlci10cmFuc2Zvcm1cblxuQG1peGluIHNjdXQtdmNlbnRlci10dCAoKSB7XG4gIEBpbmNsdWRlIHNjdXQtY2VudGVyLXRyYW5zZm9ybSh5KTtcbn1cblxuJXNjdXQtdmNlbnRlci10dCB7XG4gIEBpbmNsdWRlIHNjdXQtdmNlbnRlci10dDtcbn1cbi8vIHNwYWNlXG4kc2N1dC1zcGFjZTogXCJcXDAwMjBcIjtcbi8vIG5vbi1icmVha2luZyBzcGFjZVxuJHNjdXQtbmJzcDogXCJcXDAwYTBcIjtcblxuLy8gcXVvdGF0aW9uIG1hcmtcbiRzY3V0LXF1b3Q6IFwiXFwwMDIyXCI7XG4vLyBsZWZ0IHNpbmdsZSBjdXJseSBxdW90ZVxuJHNjdXQtbHNxdW86IFwiXFwyMDE4XCI7XG4vLyByaWdodCBzaW5nbGUgY3VybHkgcXVvdGVcbiRzY3V0LXJzcXVvOiBcIlxcMjAxOVwiO1xuLy8gbGVmdCBkb3VibGUgY3VybHkgcXVvdGVcbiRzY3V0LWxkcXVvOiBcIlxcMjAxQ1wiO1xuLy8gcmlnaHQgZG91YmxlIGN1cmx5IHF1b3RlXG4kc2N1dC1yZHF1bzogXCJcXDIwMURcIjtcbi8vIGxlZnQgc2luZ2xlIGFuZ2xlIHF1b3RlIChndWlsbGVtZXQpXG4kc2N1dC1sc2FxdW86IFwiXFwyMDM5XCI7XG4vLyByaWdodCBzaW5nbGUgYW5nbGUgcXVvdGUgKGd1aWxsZW1ldClcbiRzY3V0LXJzYXF1bzogXCJcXDIwM0FcIjtcbi8vIGxlZnQgZG91YmxlIGFuZ2xlIHF1b3RlIChndWlsbGVtZXQpXG4kc2N1dC1sYXF1bzogXCJcXDAwYWJcIjtcbi8vIHJpZ2h0IGRvdWJsZSBhbmdsZSBxdW90ZSAoZ3VpbGxlbWV0KVxuJHNjdXQtcmFxdW86IFwiXFwwMGJiXCI7XG5cbi8vIGVtIGRhc2ggKG11dHRvbilcbiRzY3V0LW1kYXNoOiBcIlxcMjAxNFwiO1xuLy8gZW4gZGFzaCAobnV0KVxuJHNjdXQtbmRhc2g6IFwiXFwyMDEzXCI7XG4vLyBoeXBoZW5cbiRzY3V0LWh5cGhlbjogXCJcXDIwMTBcIjtcblxuLy8gYW1wZXJzYW5kXG4kc2N1dC1hbXA6IFwiXFwwMDI2XCI7XG4vLyBncmVhdGVyIHRoYW5cbiRzY3V0LWd0OiBcIlxcMDAzZVwiO1xuLy8gbGVzcyB0aGFuXG4kc2N1dC1sdDogXCJcXDAwM2NcIjtcbi8vIHRpbWVzXG4kc2N1dC10aW1lczogXCJcXDAwRDdcIjtcbi8vIGJpZyB0aW1lc1xuJHNjdXQtYmlndGltZXM6IFwiXFwyNzE1XCI7XG4vLyBjaGVja21hcmtcbiRzY3V0LWNoZWNrbWFyazogXCJcXDI3MTNcIjtcblxuLy8gc2VjdGlvbiBzaWduIChkb3VibGUgUywgaHVycmljYW5lLCBzZWN0aW9uYWwgc3ltYm9sLCB0aGUgbGVnYWwgZG91Z2hudXQsIHNpZ251bSBzZWN0aW9uaXMpXG4kc2N1dC1zZWN0OiBcIlxcMDBhN1wiO1xuLy8gcGFyYWdyYXBoIHN5bWJvbCAocGlsY3JvdylcbiRzY3V0LXBhcmE6IFwiXFwwMGI2XCI7XG5cbi8vIG1pZGRvdCAoaW50ZXJwdW5jdCwgaW50ZXJwb2ludClcbiRzY3V0LW1pZGRvdDogXCJcXDAwYjdcIjtcbi8vIG8tc2xhc2ggKHNsYXNoZWQgbylcbiRzY3V0LW9zbGFzaDogXCJcXDAwZjhcIjtcbi8vIGJ1bGxldFxuJHNjdXQtYnVsbDogXCJcXDIwMjJcIjtcbi8vIHdoaXRlIGJ1bGxldFxuJHNjdXQtd2hpYnVsbDogXCJcXDI1RTZcIjtcbi8vIGhvcml6b250YWwgZWxsaXBzaXNcbiRzY3V0LWhlbGxpcDogXCJcXDIwMjZcIjtcbi8vIHZlcnRpY2FsIGVsbGlwc2lzXG4kc2N1dC12ZWxsaXA6IFwiXFwyMkVFXCI7XG4vLyBtaWRsaW5lIGhvcml6b250YWwgZWxsaXBzaXNcbiRzY3V0LW1pZGhlbGxpcDogXCJcXDIyRUZcIjtcblxuLy8gdXAtcG9pbnRpbmcgdHJpYW5nbGVcbiRzY3V0LXV0cmk6IFwiXFwyNWIyXCI7XG4vLyBkb3duLXBvaW50aW5nIHRyaWFuZ2xlXG4kc2N1dC1kdHJpOiBcIlxcMjViY1wiO1xuLy8gbGVmdC1wb2ludGluZyB0cmlhbmdsZVxuJHNjdXQtbHRyaTogXCJcXDI1YzBcIjtcbi8vIHJpZ2h0LXBvaW50aW5nIHRyaWFuZ2xlXG4kc2N1dC1ydHJpOiBcIlxcMjViNlwiO1xuLy8gdXAtcG9pbnRpbmcgc21hbGwgdHJpYW5nbGVcbiRzY3V0LXVzdHJpOiBcIlxcMjViNFwiO1xuLy8gZG93bi1wb2ludGluZyBzbWFsbCB0cmlhbmdsZVxuJHNjdXQtZHN0cmk6IFwiXFwyNWJlXCI7XG4vLyBsZWZ0LXBvaW50aW5nIHNtYWxsIHRyaWFuZ2xlXG4kc2N1dC1sc3RyaTogXCJcXDI1YzJcIjtcbi8vIHJpZ2h0LXBvaW50aW5nIHNtYWxsIHRyaWFuZ2xlXG4kc2N1dC1yc3RyaTogXCJcXDI1YjhcIjtcbi8vIGRpYW1vbmRcbiRzY3V0LWRpYW1vbmQ6IFwiXFwyNWM2XCI7XG4vLyBmaXNoZXllXG4kc2N1dC1maXNoZXllOiBcIlxcMjVjOVwiO1xuLy8gYnVsbHNleWVcbiRzY3V0LWJ1bGxzZXllOiBcIlxcMjVjZVwiO1xuLy8gY2lyY2xlXG4kc2N1dC1jaXJjbGU6IFwiXFwyNWNmXCI7XG4vLyB3aGl0ZSBjaXJjbGVcbiRzY3V0LXdoaXRlY2lyY2xlOiBcIlxcMjVjYlwiO1xuLy8gc3F1YXJlXG4kc2N1dC1zcXVhcmU6IFwiXFwyNWEwXCI7XG4vLyB3aGl0ZSBzcXVhcmVcbiRzY3V0LXdoaXRlc3F1YXJlOiBcIlxcMjVhMVwiO1xuLy8gc21hbGwgc3F1YXJlXG4kc2N1dC1zc3F1YXJlOiBcIlxcMjVhYVwiO1xuLy8gc21hbGwgd2hpdGUgc3F1YXJlXG4kc2N1dC1zd2hpdGVzcXVhcmU6IFwiXFwyNWFiXCI7XG5cbi8vIGdlbmVyYWwgY3VycmVuY3lcbiRzY3V0LWN1cnJlbmN5OiBcIlxcMDBhNFwiO1xuLy8gY2VudFxuJHNjdXQtY2VudDogXCJcXDAwYTJcIjtcbi8vIGRvbGxhclxuJHNjdXQtZG9sbGFyOiBcIlxcMDAyNFwiO1xuLy8gcG91bmRcbiRzY3V0LXBvdW5kOiBcIlxcMDBhM1wiO1xuLy8gZXVyb1xuJHNjdXQtZXVybzogXCJcXDIwYWNcIjtcbi8vIHllblxuJHNjdXQteWVuOiBcIlxcMDBhNVwiO1xuLy8gcnVwZWVcbiRzY3V0LXJ1cGVlOiBcIlxcMjBCOVwiO1xuQGZ1bmN0aW9uIG1haW4tc3JjKCRmb3JtYXRzLCAkZmlsZS1wYXRoLCAkZm9udC1mYW1pbHkpIHtcbiAgLy8gUmV0dXJuIHRoZSBsaXN0IG9mIGBzcmNgIHZhbHVlcywgaW4gb3JkZXIsIHRoYXRcbiAgLy8gYSBnb29kIGBAZm9udC1mYWNlYCB3aWxsIG5lZWQsIGluY2x1ZGluZyBvbmx5XG4gIC8vIHRob3NlIGZvcm1hdHMgc3BlY2lmaWVkIGluIHRoZSBsaXN0IGAkZm9ybWF0c2AuXG4gICRyZXN1bHQ6ICgpO1xuICBAaWYgaW5kZXgoJGZvcm1hdHMsIGVvdCkge1xuICAgICRlb3QtdmFsOiB1cmwoJyN7JGZpbGUtcGF0aH0uZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKTtcbiAgICAkcmVzdWx0OiBhcHBlbmQoJHJlc3VsdCwgJGVvdC12YWwsIGNvbW1hKTtcbiAgfVxuICBAaWYgaW5kZXgoJGZvcm1hdHMsIHdvZmYyKSB7XG4gICAgJHdvZmYyLXZhbDogdXJsKCcjeyRmaWxlLXBhdGh9LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpO1xuICAgICRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCAkd29mZjItdmFsLCBjb21tYSk7XG4gIH1cbiAgQGlmIGluZGV4KCRmb3JtYXRzLCB3b2ZmKSB7XG4gICAgJHdvZmYtdmFsOiB1cmwoJyN7JGZpbGUtcGF0aH0ud29mZicpIGZvcm1hdCgnd29mZicpO1xuICAgICRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCAkd29mZi12YWwsIGNvbW1hKTtcbiAgfVxuICBAaWYgaW5kZXgoJGZvcm1hdHMsIHR0Zikge1xuICAgICR0dGYtdmFsOiB1cmwoJyN7JGZpbGUtcGF0aH0udHRmJykgZm9ybWF0KCd0cnVldHlwZScpO1xuICAgICRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCAkdHRmLXZhbCwgY29tbWEpO1xuICB9XG4gIEBpZiBpbmRleCgkZm9ybWF0cywgc3ZnKSB7XG4gICAgJHN2Zy12YWw6IHVybCgnI3skZmlsZS1wYXRofS5zdmcjI3skZm9udC1mYW1pbHl9JykgZm9ybWF0KCdzdmcnKTtcbiAgICAkcmVzdWx0OiBhcHBlbmQoJHJlc3VsdCwgJHN2Zy12YWwsIGNvbW1hKTtcbiAgfVxuICBAcmV0dXJuICRyZXN1bHQ7XG59XG5cbkBtaXhpbiBzY3V0LWZvbnQtZmFjZSAoXG4gICRmb250LWZhbWlseSxcbiAgJGZpbGUtcGF0aCxcbiAgJHdlaWdodDogbm9ybWFsLFxuICAkc3R5bGU6IG5vcm1hbCxcbiAgJGZvcm1hdHM6IGVvdCB3b2ZmMiB3b2ZmIHR0ZiBzdmdcbikge1xuXG4gIEBpZiBpbmRleCgnaXRhbGljJyAnb2JsaXF1ZScsICR3ZWlnaHQpIHtcbiAgICAkc3R5bGU6ICR3ZWlnaHQ7XG4gICAgJHdlaWdodDogbm9ybWFsO1xuICB9XG5cbiAgQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseTtcbiAgICBmb250LXdlaWdodDogJHdlaWdodDtcbiAgICBmb250LXN0eWxlOiAkc3R5bGU7XG5cbiAgICBAaWYgaW5kZXgoJGZvcm1hdHMsIGVvdCkge1xuICAgICAgc3JjOiB1cmwoJyN7JGZpbGUtcGF0aH0uZW90Jyk7XG4gICAgfVxuICAgIHNyYzogbWFpbi1zcmMoJGZvcm1hdHMsICRmaWxlLXBhdGgsICRmb250LWZhbWlseSk7XG4gIH1cblxufVxuXG5AbWl4aW4gc2N1dC1oYW5naW5nLWluZGVudCAoXG4gICRpbmRlbnQ6IDFlbVxuKSB7XG5cbiAgLy8gcGFkZGluZy1sZWZ0IGNyZWF0ZXMgdGhlIGluZGVudCxcbiAgLy8gd2hpbGUgdGV4dC1pbmRlbnQgcHVsbHMgdGhlIGZpcnN0IGxpbmVcbiAgLy8gYmFjayB0byB0aGUgZWRnZS5cblxuICBwYWRkaW5nLWxlZnQ6ICRpbmRlbnQ7XG4gIHRleHQtaW5kZW50OiAtJGluZGVudDtcblxufVxuXG4lc2N1dC1oYW5naW5nLWluZGVudCB7XG4gIEBpbmNsdWRlIHNjdXQtaGFuZ2luZy1pbmRlbnQ7XG59XG5AbWl4aW4gc2N1dC1pbmRlbnRlZC1wcyAoXG4gICRpbmRlbnQ6IDEuNWVtLFxuICAkbm8tZmlyc3QtaW5kZW50OiB0cnVlXG4pIHtcblxuICBwIHtcbiAgICBtYXJnaW46IDA7XG4gICAgdGV4dC1pbmRlbnQ6ICRpbmRlbnQ7XG4gIH1cblxuICBAaWYgJG5vLWZpcnN0LWluZGVudCB7XG4gICAgcDpmaXJzdC1vZi10eXBlIHtcbiAgICAgIHRleHQtaW5kZW50OiAwO1xuICAgIH1cbiAgfVxuXG59XG5cbiVzY3V0LWluZGVudGVkLXBzIHtcbiAgQGluY2x1ZGUgc2N1dC1pbmRlbnRlZC1wcztcbn1cbkBtaXhpbiBzY3V0LWtleS12YWwgKFxuICAkZGl2aWRlcjogXCI6XCIsXG4gICRwYWQ6IDAuMjVlbSxcbiAgJGluZGVudDogMWVtLFxuICAkc3BhY2luZzogMCxcbiAgJHBhZC1sZWZ0OiAwXG4pIHtcblxuICAmID4gZHQge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogJGRpdmlkZXI7XG4gICAgICBtYXJnaW4tcmlnaHQ6ICRwYWQ7XG4gICAgICBAaWYgJHBhZC1sZWZ0ICE9IDAge1xuICAgICAgICBtYXJnaW4tbGVmdDogJHBhZC1sZWZ0O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYgPiBkZCB7XG4gICAgbWFyZ2luLWxlZnQ6ICRpbmRlbnQ7XG4gICAgQGlmICRzcGFjaW5nICE9IDAge1xuICAgICAgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmc7XG4gICAgfVxuICB9XG5cbn1cblxuJXNjdXQta2V5LXZhbCB7XG4gIEBpbmNsdWRlIHNjdXQta2V5LXZhbDtcbn1cbkBtaXhpbiBzY3V0LWxpbmstYmIgKFxuICAkY29sb3I6IGluaGVyaXQsXG4gICRzdHlsZTogc29saWQsXG4gICR3aWR0aDogMXB4XG4pIHtcblxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogJHdpZHRoO1xuICBib3JkZXItYm90dG9tLXN0eWxlOiAkc3R5bGU7XG4gIEBpZiAkY29sb3IgIT0gaW5oZXJpdCB7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJGNvbG9yO1xuICB9XG5cbn1cblxuJXNjdXQtbGluay1iYiB7XG4gIEBpbmNsdWRlIHNjdXQtbGluay1iYjtcbn1cbi8vIFNDVVQgTElOSyBVTlNUWUxFRFxuLy8gaHR0cDovL2RhdmlkdGhlY2xhcmsuZ2l0aHViLmlvL3NjdXQvI2xpbmstdW5zdHlsZWRcblxuQG1peGluIHNjdXQtbGluay11bnN0eWxlZCgpIHtcblxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiBpbmhlcml0O1xuXG59XG5cbiVzY3V0LWxpbmstdW5zdHlsZWQge1xuICBAaW5jbHVkZSBzY3V0LWxpbmstdW5zdHlsZWQoKTtcbn1cblxuQG1peGluIHNjdXQtcmV2ZXJzZS1pdGFsaWNzIChcbiAgJGVsZW1lbnRzOiBudWxsXG4pIHtcblxuICAkZWxlbWVudC1saXN0OiBlbSwgY2l0ZSwgaTtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICAje2pvaW4oJGVsZW1lbnQtbGlzdCwgJGVsZW1lbnRzKX0ge1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgfVxuXG59XG5cbiVzY3V0LXJldmVyc2UtaXRhbGljcyB7XG4gIEBpbmNsdWRlIHNjdXQtcmV2ZXJzZS1pdGFsaWNzO1xufVxuXG5AbWl4aW4gc2N1dC1zaWRlLWxpbmVkIChcbiAgJGhlaWdodDogMXB4LFxuICAkc3BhY2U6IDAuNWVtLFxuICAkY29sb3I6IGluaGVyaXQsXG4gICRzdHlsZTogc29saWQsXG4gICR2LWFkanVzdDogZmFsc2UsXG4gICRkb3VibGU6IGZhbHNlXG4pIHtcblxuICBkaXNwbGF5OiBibG9jaztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICY6YmVmb3JlLFxuICAmOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogNTAlO1xuXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogJHN0eWxlO1xuICAgIGJvcmRlci10b3Atd2lkdGg6ICRoZWlnaHQ7XG5cbiAgICBAaWYgJGNvbG9yICE9IGluaGVyaXQge1xuICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGNvbG9yO1xuICAgIH1cblxuICAgIEBpZiAkdi1hZGp1c3QgIT0gZmFsc2Uge1xuICAgICAgYm90dG9tOiAkdi1hZGp1c3Q7XG4gICAgfVxuXG4gICAgQGlmICRkb3VibGUgIT0gZmFsc2Uge1xuICAgICAgaGVpZ2h0OiAkZG91YmxlO1xuICAgICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogJHN0eWxlO1xuICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogJGhlaWdodDtcbiAgICAgIEBpZiAkY29sb3IgIT0gaW5oZXJpdCB7XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRjb2xvcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmOmJlZm9yZSB7XG4gICAgcmlnaHQ6ICRzcGFjZTtcbiAgICBtYXJnaW4tbGVmdDogLTUwJTtcbiAgfVxuICAmOmFmdGVyIHtcbiAgICBsZWZ0OiAkc3BhY2U7XG4gICAgbWFyZ2luLXJpZ2h0OiAtNTAlO1xuICB9XG5cbn1cblxuJXNjdXQtc2lkZS1saW5lZCB7XG4gIEBpbmNsdWRlIHNjdXQtc2lkZS1saW5lZDtcbn1cbkBtaXhpbiBzY3V0LXRydW5jYXRlIHtcblxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblxufVxuXG4lc2N1dC10cnVuY2F0ZSB7XG4gIEBpbmNsdWRlIHNjdXQtdHJ1bmNhdGU7XG59IiwiLyoqXG4gKiBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4gKiBWZXJzaW9uIDYuNC4xXG4gKiBmb3VuZGF0aW9uLnp1cmIuY29tXG4gKiBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcbiAqL1xuXG4vLyBEZXBlbmRlbmNpZXNcbkBpbXBvcnQgJy4uL192ZW5kb3Ivbm9ybWFsaXplLXNjc3Mvc2Fzcy9ub3JtYWxpemUnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL21pc3NpbmctZGVwZW5kZW5jaWVzJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvaGVscGVycy90cnVlJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL3B1cmdlJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL3JlbW92ZSc7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9yZXBsYWNlJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL3RvLWxpc3QnO1xuXG4vLyBTZXR0aW5nc1xuLy8gaW1wb3J0IHlvdXIgb3duIGBzZXR0aW5nc2AgaGVyZSBvclxuLy8gaW1wb3J0IGFuZCBtb2RpZnkgdGhlIGRlZmF1bHQgc2V0dGluZ3MgdGhyb3VnaFxuLy8gQGltcG9ydCAnc2V0dGluZ3Mvc2V0dGluZ3MnO1xuXG4vLyBTYXNzIHV0aWxpdGllc1xuQGltcG9ydCAndXRpbC91dGlsJztcblxuLy8gR2xvYmFsIHZhcmlhYmxlcyBhbmQgc3R5bGVzXG5AaW1wb3J0ICdnbG9iYWwnO1xuXG4vLyBDb21wb25lbnRzXG5AaW1wb3J0ICdncmlkL2dyaWQnO1xuQGltcG9ydCAneHktZ3JpZC94eS1ncmlkJztcbkBpbXBvcnQgJ3R5cG9ncmFwaHkvdHlwb2dyYXBoeSc7XG5AaW1wb3J0ICdmb3Jtcy9mb3Jtcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Zpc2liaWxpdHknO1xuQGltcG9ydCAnY29tcG9uZW50cy9mbG9hdCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbi1ncm91cCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2FjY29yZGlvbi1tZW51JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYWNjb3JkaW9uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYmFkZ2UnO1xuQGltcG9ydCAnY29tcG9uZW50cy9icmVhZGNydW1icyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2NhbGxvdXQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9jYXJkJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvY2xvc2UtYnV0dG9uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZHJpbGxkb3duJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZHJvcGRvd24tbWVudSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Ryb3Bkb3duJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZmxleCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Jlc3BvbnNpdmUtZW1iZWQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9sYWJlbCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL21lZGlhLW9iamVjdCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL21lbnUnO1xuQGltcG9ydCAnY29tcG9uZW50cy9tZW51LWljb24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9vZmYtY2FudmFzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvb3JiaXQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9wYWdpbmF0aW9uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcHJvZ3Jlc3MtYmFyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcmV2ZWFsJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc2xpZGVyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc3RpY2t5JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc3dpdGNoJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGFibGUnO1xuQGltcG9ydCAnY29tcG9uZW50cy90YWJzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGl0bGUtYmFyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdG9wLWJhcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RodW1ibmFpbCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Rvb2x0aXAnO1xuQGltcG9ydCAncHJvdG90eXBlL3Byb3RvdHlwZSc7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWV2ZXJ5dGhpbmcoXG4gICRmbGV4OiB0cnVlLFxuICAkcHJvdG90eXBlOiBmYWxzZVxuKSB7XG4gIEBpZiAkZmxleCB7XG4gICAgJGdsb2JhbC1mbGV4Ym94OiB0cnVlICFnbG9iYWw7XG4gIH1cblxuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWdsb2JhbC1zdHlsZXM7XG4gIEBpZiBub3QgJGZsZXgge1xuICAgIEBpbmNsdWRlIGZvdW5kYXRpb24tZ3JpZDtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGlmICR4eS1ncmlkIHtcbiAgICAgIEBpbmNsdWRlIGZvdW5kYXRpb24teHktZ3JpZC1jbGFzc2VzO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZsZXgtZ3JpZDtcbiAgICB9XG4gIH1cbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10eXBvZ3JhcGh5O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZvcm1zO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWJ1dHRvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1hY2NvcmRpb247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYWNjb3JkaW9uLW1lbnU7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYmFkZ2U7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYnJlYWRjcnVtYnM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYnV0dG9uLWdyb3VwO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWNhbGxvdXQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tY2FyZDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1jbG9zZS1idXR0b247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbWVudTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1tZW51LWljb247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZHJpbGxkb3duLW1lbnU7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZHJvcGRvd247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZHJvcGRvd24tbWVudTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1yZXNwb25zaXZlLWVtYmVkO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWxhYmVsO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW1lZGlhLW9iamVjdDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1vZmYtY2FudmFzO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW9yYml0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXBhZ2luYXRpb247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvZ3Jlc3MtYmFyO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXNsaWRlcjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1zdGlja3k7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcmV2ZWFsO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXN3aXRjaDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10YWJsZTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10YWJzO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRodW1ibmFpbDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10aXRsZS1iYXI7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdG9vbHRpcDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10b3AtYmFyO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXZpc2liaWxpdHktY2xhc3NlcztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1mbG9hdC1jbGFzc2VzO1xuXG4gIEBpZiAkZmxleCB7XG4gICAgQGluY2x1ZGUgZm91bmRhdGlvbi1mbGV4LWNsYXNzZXM7XG4gIH1cblxuICBAaWYgJHByb3RvdHlwZSB7XG4gICAgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm90b3R5cGUtY2xhc3NlcztcbiAgfVxufVxuIiwiLyohXG5DaG9zZW4sIGEgU2VsZWN0IEJveCBFbmhhbmNlciBmb3IgalF1ZXJ5IGFuZCBQcm90b3R5cGVcbmJ5IFBhdHJpY2sgRmlsbGVyIGZvciBIYXJ2ZXN0LCBodHRwOi8vZ2V0aGFydmVzdC5jb21cblxuVmVyc2lvbiAxLjguN1xuRnVsbCBzb3VyY2UgYXQgaHR0cHM6Ly9naXRodWIuY29tL2hhcnZlc3RocS9jaG9zZW5cbkNvcHlyaWdodCAoYykgMjAxMS0yMDE4IEhhcnZlc3QgaHR0cDovL2dldGhhcnZlc3QuY29tXG5cbk1JVCBMaWNlbnNlLCBodHRwczovL2dpdGh1Yi5jb20vaGFydmVzdGhxL2Nob3Nlbi9ibG9iL21hc3Rlci9MSUNFTlNFLm1kXG5UaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGJ5IGBncnVudCBidWlsZGAsIGRvIG5vdCBlZGl0IGl0IGJ5IGhhbmQuXG4qL1xuXG4vKiBAZ3JvdXAgQmFzZSAqL1xuLmNob3Nlbi1jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgZm9udC1zaXplOiAxM3B4O1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4uY2hvc2VuLWNvbnRhaW5lciAqIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi5jaG9zZW4tY29udGFpbmVyIC5jaG9zZW4tZHJvcCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxMDAlO1xuICB6LWluZGV4OiAxMDEwO1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2FhYTtcbiAgYm9yZGVyLXRvcDogMDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDRweCA1cHggcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDRweCA1cHggcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcbiAgLXdlYmtpdC1jbGlwLXBhdGg6IGluc2V0KDEwMCUgMTAwJSk7XG4gICAgICAgICAgY2xpcC1wYXRoOiBpbnNldCgxMDAlIDEwMCUpO1xufVxuXG4uY2hvc2VuLWNvbnRhaW5lci5jaG9zZW4td2l0aC1kcm9wIC5jaG9zZW4tZHJvcCB7XG4gIGNsaXA6IGF1dG87XG4gIC13ZWJraXQtY2xpcC1wYXRoOiBub25lO1xuICAgICAgICAgIGNsaXAtcGF0aDogbm9uZTtcbn1cblxuLmNob3Nlbi1jb250YWluZXIgYSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmNob3Nlbi1jb250YWluZXIgLnNlYXJjaC1jaG9pY2UgLmdyb3VwLW5hbWUsIC5jaG9zZW4tY29udGFpbmVyIC5jaG9zZW4tc2luZ2xlIC5ncm91cC1uYW1lIHtcbiAgbWFyZ2luLXJpZ2h0OiA0cHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBjb2xvcjogIzk5OTk5OTtcbn1cblxuLmNob3Nlbi1jb250YWluZXIgLnNlYXJjaC1jaG9pY2UgLmdyb3VwLW5hbWU6YWZ0ZXIsIC5jaG9zZW4tY29udGFpbmVyIC5jaG9zZW4tc2luZ2xlIC5ncm91cC1uYW1lOmFmdGVyIHtcbiAgY29udGVudDogXCI6XCI7XG4gIHBhZGRpbmctbGVmdDogMnB4O1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuXG4vKiBAZW5kICovXG4vKiBAZ3JvdXAgU2luZ2xlIENob3NlbiAqL1xuLmNob3Nlbi1jb250YWluZXItc2luZ2xlIC5jaG9zZW4tc2luZ2xlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogMCAwIDAgOHB4O1xuICBoZWlnaHQ6IDI1cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNhYWE7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZDogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgY29sb3Itc3RvcCgyMCUsICNmZmYpLCBjb2xvci1zdG9wKDUwJSwgI2Y2ZjZmNiksIGNvbG9yLXN0b3AoNTIlLCAjZWVlKSwgdG8oI2Y0ZjRmNCkpO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoI2ZmZiAyMCUsICNmNmY2ZjYgNTAlLCAjZWVlIDUyJSwgI2Y0ZjRmNCAxMDAlKTtcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgM3B4ICNmZmYgaW5zZXQsIDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gICAgICAgICAgYm94LXNoYWRvdzogMCAwIDNweCAjZmZmIGluc2V0LCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBjb2xvcjogIzQ0NDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBsaW5lLWhlaWdodDogMjRweDtcbn1cblxuLmNob3Nlbi1jb250YWluZXItc2luZ2xlIC5jaG9zZW4tZGVmYXVsdCB7XG4gIGNvbG9yOiAjOTk5O1xufVxuXG4uY2hvc2VuLWNvbnRhaW5lci1zaW5nbGUgLmNob3Nlbi1zaW5nbGUgc3BhbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBtYXJnaW4tcmlnaHQ6IDI2cHg7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4uY2hvc2VuLWNvbnRhaW5lci1zaW5nbGUgLmNob3Nlbi1zaW5nbGUtd2l0aC1kZXNlbGVjdCBzcGFuIHtcbiAgbWFyZ2luLXJpZ2h0OiAzOHB4O1xufVxuXG4uY2hvc2VuLWNvbnRhaW5lci1zaW5nbGUgLmNob3Nlbi1zaW5nbGUgYWJiciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA2cHg7XG4gIHJpZ2h0OiAyNnB4O1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEycHg7XG4gIGhlaWdodDogMTJweDtcbiAgYmFja2dyb3VuZDogdXJsKFwiY2hvc2VuLXNwcml0ZS5wbmdcIikgLTQycHggMXB4IG5vLXJlcGVhdDtcbiAgZm9udC1zaXplOiAxcHg7XG59XG5cbi5jaG9zZW4tY29udGFpbmVyLXNpbmdsZSAuY2hvc2VuLXNpbmdsZSBhYmJyOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQycHggLTEwcHg7XG59XG5cbi5jaG9zZW4tY29udGFpbmVyLXNpbmdsZS5jaG9zZW4tZGlzYWJsZWQgLmNob3Nlbi1zaW5nbGUgYWJicjpob3ZlciB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC00MnB4IC0xMHB4O1xufVxuXG4uY2hvc2VuLWNvbnRhaW5lci1zaW5nbGUgLmNob3Nlbi1zaW5nbGUgZGl2IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDE4cHg7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLmNob3Nlbi1jb250YWluZXItc2luZ2xlIC5jaG9zZW4tc2luZ2xlIGRpdiBiIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQ6IHVybChcImNob3Nlbi1zcHJpdGUucG5nXCIpIG5vLXJlcGVhdCAwcHggMnB4O1xufVxuXG4uY2hvc2VuLWNvbnRhaW5lci1zaW5nbGUgLmNob3Nlbi1zZWFyY2gge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDEwMTA7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogM3B4IDRweDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmNob3Nlbi1jb250YWluZXItc2luZ2xlIC5jaG9zZW4tc2VhcmNoIGlucHV0W3R5cGU9XCJ0ZXh0XCJdIHtcbiAgbWFyZ2luOiAxcHggMDtcbiAgcGFkZGluZzogNHB4IDIwcHggNHB4IDVweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgb3V0bGluZTogMDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2FhYTtcbiAgYmFja2dyb3VuZDogdXJsKFwiY2hvc2VuLXNwcml0ZS5wbmdcIikgbm8tcmVwZWF0IDEwMCUgLTIwcHg7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cblxuLmNob3Nlbi1jb250YWluZXItc2luZ2xlIC5jaG9zZW4tZHJvcCB7XG4gIG1hcmdpbi10b3A6IC0xcHg7XG4gIGJvcmRlci1yYWRpdXM6IDAgMCA0cHggNHB4O1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xufVxuXG4uY2hvc2VuLWNvbnRhaW5lci1zaW5nbGUuY2hvc2VuLWNvbnRhaW5lci1zaW5nbGUtbm9zZWFyY2ggLmNob3Nlbi1zZWFyY2gge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XG4gIC13ZWJraXQtY2xpcC1wYXRoOiBpbnNldCgxMDAlIDEwMCUpO1xuICAgICAgICAgIGNsaXAtcGF0aDogaW5zZXQoMTAwJSAxMDAlKTtcbn1cblxuLyogQGVuZCAqL1xuLyogQGdyb3VwIFJlc3VsdHMgKi9cbi5jaG9zZW4tY29udGFpbmVyIC5jaG9zZW4tcmVzdWx0cyB7XG4gIGNvbG9yOiAjNDQ0O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgbWFyZ2luOiAwIDRweCA0cHggMDtcbiAgcGFkZGluZzogMCAwIDAgNHB4O1xuICBtYXgtaGVpZ2h0OiAyNDBweDtcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xufVxuXG4uY2hvc2VuLWNvbnRhaW5lciAuY2hvc2VuLXJlc3VsdHMgbGkge1xuICBkaXNwbGF5OiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDVweCA2cHg7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGxpbmUtaGVpZ2h0OiAxNXB4O1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcbn1cblxuLmNob3Nlbi1jb250YWluZXIgLmNob3Nlbi1yZXN1bHRzIGxpLmFjdGl2ZS1yZXN1bHQge1xuICBkaXNwbGF5OiBsaXN0LWl0ZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmNob3Nlbi1jb250YWluZXIgLmNob3Nlbi1yZXN1bHRzIGxpLmRpc2FibGVkLXJlc3VsdCB7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTtcbiAgY29sb3I6ICNjY2M7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLmNob3Nlbi1jb250YWluZXIgLmNob3Nlbi1yZXN1bHRzIGxpLmhpZ2hsaWdodGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM4NzVkNztcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgY29sb3Itc3RvcCgyMCUsICMzODc1ZDcpLCBjb2xvci1zdG9wKDkwJSwgIzJhNjJiYykpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoIzM4NzVkNyAyMCUsICMyYTYyYmMgOTAlKTtcbiAgY29sb3I6ICNmZmY7XG59XG5cbi5jaG9zZW4tY29udGFpbmVyIC5jaG9zZW4tcmVzdWx0cyBsaS5uby1yZXN1bHRzIHtcbiAgY29sb3I6ICM3Nzc7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTtcbiAgYmFja2dyb3VuZDogI2Y0ZjRmNDtcbn1cblxuLmNob3Nlbi1jb250YWluZXIgLmNob3Nlbi1yZXN1bHRzIGxpLmdyb3VwLXJlc3VsdCB7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLmNob3Nlbi1jb250YWluZXIgLmNob3Nlbi1yZXN1bHRzIGxpLmdyb3VwLW9wdGlvbiB7XG4gIHBhZGRpbmctbGVmdDogMTVweDtcbn1cblxuLmNob3Nlbi1jb250YWluZXIgLmNob3Nlbi1yZXN1bHRzIGxpIGVtIHtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuLyogQGVuZCAqL1xuLyogQGdyb3VwIE11bHRpIENob3NlbiAqL1xuLmNob3Nlbi1jb250YWluZXItbXVsdGkgLmNob3Nlbi1jaG9pY2VzIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDAgNXB4O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBib3JkZXI6IDFweCBzb2xpZCAjYWFhO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIGxlZnQgYm90dG9tLCBjb2xvci1zdG9wKDElLCAjZWVlKSwgY29sb3Itc3RvcCgxNSUsICNmZmYpKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KCNlZWUgMSUsICNmZmYgMTUlKTtcbiAgY3Vyc29yOiB0ZXh0O1xufVxuXG4uY2hvc2VuLWNvbnRhaW5lci1tdWx0aSAuY2hvc2VuLWNob2ljZXMgbGkge1xuICBmbG9hdDogbGVmdDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxuLmNob3Nlbi1jb250YWluZXItbXVsdGkgLmNob3Nlbi1jaG9pY2VzIGxpLnNlYXJjaC1maWVsZCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmNob3Nlbi1jb250YWluZXItbXVsdGkgLmNob3Nlbi1jaG9pY2VzIGxpLnNlYXJjaC1maWVsZCBpbnB1dFt0eXBlPVwidGV4dFwiXSB7XG4gIG1hcmdpbjogMXB4IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGhlaWdodDogMjVweDtcbiAgb3V0bGluZTogMDtcbiAgYm9yZGVyOiAwICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICBjb2xvcjogIzk5OTtcbiAgZm9udC1zaXplOiAxMDAlO1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgd2lkdGg6IDI1cHg7XG59XG5cbi5jaG9zZW4tY29udGFpbmVyLW11bHRpIC5jaG9zZW4tY2hvaWNlcyBsaS5zZWFyY2gtY2hvaWNlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46IDNweCA1cHggM3B4IDA7XG4gIHBhZGRpbmc6IDNweCAyMHB4IDNweCA1cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNhYWE7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlZWVlO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIGxlZnQgYm90dG9tLCBjb2xvci1zdG9wKDIwJSwgI2Y0ZjRmNCksIGNvbG9yLXN0b3AoNTAlLCAjZjBmMGYwKSwgY29sb3Itc3RvcCg1MiUsICNlOGU4ZTgpLCB0bygjZWVlKSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgjZjRmNGY0IDIwJSwgI2YwZjBmMCA1MCUsICNlOGU4ZTggNTIlLCAjZWVlIDEwMCUpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDEwMCUgMTlweDtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCAycHggI2ZmZiBpbnNldCwgMCAxcHggMCByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAycHggI2ZmZiBpbnNldCwgMCAxcHggMCByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICBjb2xvcjogIzMzMztcbiAgbGluZS1oZWlnaHQ6IDEzcHg7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLmNob3Nlbi1jb250YWluZXItbXVsdGkgLmNob3Nlbi1jaG9pY2VzIGxpLnNlYXJjaC1jaG9pY2Ugc3BhbiB7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbn1cblxuLmNob3Nlbi1jb250YWluZXItbXVsdGkgLmNob3Nlbi1jaG9pY2VzIGxpLnNlYXJjaC1jaG9pY2UgLnNlYXJjaC1jaG9pY2UtY2xvc2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNHB4O1xuICByaWdodDogM3B4O1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEycHg7XG4gIGhlaWdodDogMTJweDtcbiAgYmFja2dyb3VuZDogdXJsKFwiY2hvc2VuLXNwcml0ZS5wbmdcIikgLTQycHggMXB4IG5vLXJlcGVhdDtcbiAgZm9udC1zaXplOiAxcHg7XG59XG5cbi5jaG9zZW4tY29udGFpbmVyLW11bHRpIC5jaG9zZW4tY2hvaWNlcyBsaS5zZWFyY2gtY2hvaWNlIC5zZWFyY2gtY2hvaWNlLWNsb3NlOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQycHggLTEwcHg7XG59XG5cbi5jaG9zZW4tY29udGFpbmVyLW11bHRpIC5jaG9zZW4tY2hvaWNlcyBsaS5zZWFyY2gtY2hvaWNlLWRpc2FibGVkIHtcbiAgcGFkZGluZy1yaWdodDogNXB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTRlNGU0O1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIGxlZnQgYm90dG9tLCBjb2xvci1zdG9wKDIwJSwgI2Y0ZjRmNCksIGNvbG9yLXN0b3AoNTAlLCAjZjBmMGYwKSwgY29sb3Itc3RvcCg1MiUsICNlOGU4ZTgpLCB0bygjZWVlKSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgjZjRmNGY0IDIwJSwgI2YwZjBmMCA1MCUsICNlOGU4ZTggNTIlLCAjZWVlIDEwMCUpO1xuICBjb2xvcjogIzY2Njtcbn1cblxuLmNob3Nlbi1jb250YWluZXItbXVsdGkgLmNob3Nlbi1jaG9pY2VzIGxpLnNlYXJjaC1jaG9pY2UtZm9jdXMge1xuICBiYWNrZ3JvdW5kOiAjZDRkNGQ0O1xufVxuXG4uY2hvc2VuLWNvbnRhaW5lci1tdWx0aSAuY2hvc2VuLWNob2ljZXMgbGkuc2VhcmNoLWNob2ljZS1mb2N1cyAuc2VhcmNoLWNob2ljZS1jbG9zZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC00MnB4IC0xMHB4O1xufVxuXG4uY2hvc2VuLWNvbnRhaW5lci1tdWx0aSAuY2hvc2VuLXJlc3VsdHMge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi5jaG9zZW4tY29udGFpbmVyLW11bHRpIC5jaG9zZW4tZHJvcCAucmVzdWx0LXNlbGVjdGVkIHtcbiAgZGlzcGxheTogbGlzdC1pdGVtO1xuICBjb2xvcjogI2NjYztcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vKiBAZW5kICovXG4vKiBAZ3JvdXAgQWN0aXZlICAqL1xuLmNob3Nlbi1jb250YWluZXItYWN0aXZlIC5jaG9zZW4tc2luZ2xlIHtcbiAgYm9yZGVyOiAxcHggc29saWQgIzU4OTdmYjtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgNXB4IHJnYmEoMCwgMCwgMCwgMC4zKTtcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDAgNXB4IHJnYmEoMCwgMCwgMCwgMC4zKTtcbn1cblxuLmNob3Nlbi1jb250YWluZXItYWN0aXZlLmNob3Nlbi13aXRoLWRyb3AgLmNob3Nlbi1zaW5nbGUge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYWFhO1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgY29sb3Itc3RvcCgyMCUsICNlZWUpLCBjb2xvci1zdG9wKDgwJSwgI2ZmZikpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoI2VlZSAyMCUsICNmZmYgODAlKTtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDFweCAwICNmZmYgaW5zZXQ7XG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxcHggMCAjZmZmIGluc2V0O1xufVxuXG4uY2hvc2VuLWNvbnRhaW5lci1hY3RpdmUuY2hvc2VuLXdpdGgtZHJvcCAuY2hvc2VuLXNpbmdsZSBkaXYge1xuICBib3JkZXItbGVmdDogbm9uZTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG5cbi5jaG9zZW4tY29udGFpbmVyLWFjdGl2ZS5jaG9zZW4td2l0aC1kcm9wIC5jaG9zZW4tc2luZ2xlIGRpdiBiIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE4cHggMnB4O1xufVxuXG4uY2hvc2VuLWNvbnRhaW5lci1hY3RpdmUgLmNob3Nlbi1jaG9pY2VzIHtcbiAgYm9yZGVyOiAxcHggc29saWQgIzU4OTdmYjtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgNXB4IHJnYmEoMCwgMCwgMCwgMC4zKTtcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDAgNXB4IHJnYmEoMCwgMCwgMCwgMC4zKTtcbn1cblxuLmNob3Nlbi1jb250YWluZXItYWN0aXZlIC5jaG9zZW4tY2hvaWNlcyBsaS5zZWFyY2gtZmllbGQgaW5wdXRbdHlwZT1cInRleHRcIl0ge1xuICBjb2xvcjogIzIyMiAhaW1wb3J0YW50O1xufVxuXG4vKiBAZW5kICovXG4vKiBAZ3JvdXAgRGlzYWJsZWQgU3VwcG9ydCAqL1xuLmNob3Nlbi1kaXNhYmxlZCB7XG4gIG9wYWNpdHk6IDAuNSAhaW1wb3J0YW50O1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi5jaG9zZW4tZGlzYWJsZWQgLmNob3Nlbi1zaW5nbGUge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi5jaG9zZW4tZGlzYWJsZWQgLmNob3Nlbi1jaG9pY2VzIC5zZWFyY2gtY2hvaWNlIC5zZWFyY2gtY2hvaWNlLWNsb3NlIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vKiBAZW5kICovXG4vKiBAZ3JvdXAgUmlnaHQgdG8gTGVmdCAqL1xuLmNob3Nlbi1ydGwge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLmNob3Nlbi1ydGwgLmNob3Nlbi1zaW5nbGUge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgcGFkZGluZzogMCA4cHggMCAwO1xufVxuXG4uY2hvc2VuLXJ0bCAuY2hvc2VuLXNpbmdsZSBzcGFuIHtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogMjZweDtcbiAgZGlyZWN0aW9uOiBydGw7XG59XG5cbi5jaG9zZW4tcnRsIC5jaG9zZW4tc2luZ2xlLXdpdGgtZGVzZWxlY3Qgc3BhbiB7XG4gIG1hcmdpbi1sZWZ0OiAzOHB4O1xufVxuXG4uY2hvc2VuLXJ0bCAuY2hvc2VuLXNpbmdsZSBkaXYge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogM3B4O1xufVxuXG4uY2hvc2VuLXJ0bCAuY2hvc2VuLXNpbmdsZSBhYmJyIHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IDI2cHg7XG59XG5cbi5jaG9zZW4tcnRsIC5jaG9zZW4tY2hvaWNlcyBsaSB7XG4gIGZsb2F0OiByaWdodDtcbn1cblxuLmNob3Nlbi1ydGwgLmNob3Nlbi1jaG9pY2VzIGxpLnNlYXJjaC1maWVsZCBpbnB1dFt0eXBlPVwidGV4dFwiXSB7XG4gIGRpcmVjdGlvbjogcnRsO1xufVxuXG4uY2hvc2VuLXJ0bCAuY2hvc2VuLWNob2ljZXMgbGkuc2VhcmNoLWNob2ljZSB7XG4gIG1hcmdpbjogM3B4IDVweCAzcHggMDtcbiAgcGFkZGluZzogM3B4IDVweCAzcHggMTlweDtcbn1cblxuLmNob3Nlbi1ydGwgLmNob3Nlbi1jaG9pY2VzIGxpLnNlYXJjaC1jaG9pY2UgLnNlYXJjaC1jaG9pY2UtY2xvc2Uge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogNHB4O1xufVxuXG4uY2hvc2VuLXJ0bC5jaG9zZW4tY29udGFpbmVyLXNpbmdsZSAuY2hvc2VuLXJlc3VsdHMge1xuICBtYXJnaW46IDAgMCA0cHggNHB4O1xuICBwYWRkaW5nOiAwIDRweCAwIDA7XG59XG5cbi5jaG9zZW4tcnRsIC5jaG9zZW4tcmVzdWx0cyBsaS5ncm91cC1vcHRpb24ge1xuICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xuICBwYWRkaW5nLWxlZnQ6IDA7XG59XG5cbi5jaG9zZW4tcnRsLmNob3Nlbi1jb250YWluZXItYWN0aXZlLmNob3Nlbi13aXRoLWRyb3AgLmNob3Nlbi1zaW5nbGUgZGl2IHtcbiAgYm9yZGVyLXJpZ2h0OiBub25lO1xufVxuXG4uY2hvc2VuLXJ0bCAuY2hvc2VuLXNlYXJjaCBpbnB1dFt0eXBlPVwidGV4dFwiXSB7XG4gIHBhZGRpbmc6IDRweCA1cHggNHB4IDIwcHg7XG4gIGJhY2tncm91bmQ6IHVybChcImNob3Nlbi1zcHJpdGUucG5nXCIpIG5vLXJlcGVhdCAtMzBweCAtMjBweDtcbiAgZGlyZWN0aW9uOiBydGw7XG59XG5cbi5jaG9zZW4tcnRsLmNob3Nlbi1jb250YWluZXItc2luZ2xlIC5jaG9zZW4tc2luZ2xlIGRpdiBiIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogNnB4IDJweDtcbn1cblxuLmNob3Nlbi1ydGwuY2hvc2VuLWNvbnRhaW5lci1zaW5nbGUuY2hvc2VuLXdpdGgtZHJvcCAuY2hvc2VuLXNpbmdsZSBkaXYgYiB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xMnB4IDJweDtcbn1cblxuLyogQGVuZCAqL1xuLyogQGdyb3VwIFJldGluYSBjb21wYXRpYmlsaXR5ICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDEuNSksIG9ubHkgc2NyZWVuIGFuZCAobWluLXJlc29sdXRpb246IDE0NGRwaSksIG9ubHkgc2NyZWVuIGFuZCAobWluLXJlc29sdXRpb246IDEuNWRwcHgpIHtcbiAgLmNob3Nlbi1ydGwgLmNob3Nlbi1zZWFyY2ggaW5wdXRbdHlwZT1cInRleHRcIl0sXG4gIC5jaG9zZW4tY29udGFpbmVyLXNpbmdsZSAuY2hvc2VuLXNpbmdsZSBhYmJyLFxuICAuY2hvc2VuLWNvbnRhaW5lci1zaW5nbGUgLmNob3Nlbi1zaW5nbGUgZGl2IGIsXG4gIC5jaG9zZW4tY29udGFpbmVyLXNpbmdsZSAuY2hvc2VuLXNlYXJjaCBpbnB1dFt0eXBlPVwidGV4dFwiXSxcbiAgLmNob3Nlbi1jb250YWluZXItbXVsdGkgLmNob3Nlbi1jaG9pY2VzIC5zZWFyY2gtY2hvaWNlIC5zZWFyY2gtY2hvaWNlLWNsb3NlLFxuICAuY2hvc2VuLWNvbnRhaW5lciAuY2hvc2VuLXJlc3VsdHMtc2Nyb2xsLWRvd24gc3BhbixcbiAgLmNob3Nlbi1jb250YWluZXIgLmNob3Nlbi1yZXN1bHRzLXNjcm9sbC11cCBzcGFuIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJjaG9zZW4tc3ByaXRlQDJ4LnBuZ1wiKSAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQtc2l6ZTogNTJweCAzN3B4ICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8qIEBlbmQgKi9cbiIsIi8qXG4gKiAgT3dsIENhcm91c2VsIC0gQ29yZVxuICovXG4ub3dsLWNhcm91c2VsIHtcblx0ZGlzcGxheTogbm9uZTtcblx0d2lkdGg6IDEwMCU7XG5cdC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdC8qIHBvc2l0aW9uIHJlbGF0aXZlIGFuZCB6LWluZGV4IGZpeCB3ZWJraXQgcmVuZGVyaW5nIGZvbnRzIGlzc3VlICovXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ei1pbmRleDogMTtcblxuXHQub3dsLXN0YWdlIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0LW1zLXRvdWNoLWFjdGlvbjogcGFuLVk7XG5cdFx0dG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG5cdFx0LW1vei1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IC8qIGZpeCBmaXJlZm94IGFuaW1hdGlvbiBnbGl0Y2ggKi9cblx0fVxuXG5cdC5vd2wtc3RhZ2U6YWZ0ZXIge1xuXHRcdGNvbnRlbnQ6IFwiLlwiO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdGNsZWFyOiBib3RoO1xuXHRcdHZpc2liaWxpdHk6IGhpZGRlbjtcblx0XHRsaW5lLWhlaWdodDogMDtcblx0XHRoZWlnaHQ6IDA7XG5cdH1cblxuXHQub3dsLXN0YWdlLW91dGVyIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHQvKiBmaXggZm9yIGZsYXNoaW5nIGJhY2tncm91bmQgKi9cblx0XHQtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMHB4LCAwcHgsIDBweCk7XG5cdH1cblxuXHQub3dsLXdyYXBwZXIsXG5cdC5vd2wtaXRlbXtcblx0XHQtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcblx0XHQtbW96LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcblx0XHQtbXMtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuXHRcdC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLDAsMCk7XG5cdFx0LW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsMCwwKTtcblx0XHQtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLDAsMCk7XG5cdH1cblxuXHQub3dsLWl0ZW0ge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRtaW4taGVpZ2h0OiAxcHg7XG5cdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0LXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG5cdFx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHQtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7XG5cdH1cblx0Lm93bC1pdGVtIGltZyB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdH1cblxuXHQub3dsLW5hdi5kaXNhYmxlZCxcblx0Lm93bC1kb3RzLmRpc2FibGVkIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG5cblx0Lm93bC1uYXYgLm93bC1wcmV2LFxuXHQub3dsLW5hdiAub3dsLW5leHQsXG5cdC5vd2wtZG90IHtcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0LXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcblx0XHQta2h0bWwtdXNlci1zZWxlY3Q6IG5vbmU7XG5cdFx0LW1vei11c2VyLXNlbGVjdDogbm9uZTtcblx0XHQtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG5cdFx0dXNlci1zZWxlY3Q6IG5vbmU7XG5cdH1cblxuXHQub3dsLW5hdiBidXR0b24ub3dsLXByZXYsXG5cdC5vd2wtbmF2IGJ1dHRvbi5vd2wtbmV4dCxcblx0YnV0dG9uLm93bC1kb3Qge1xuXHRcdGJhY2tncm91bmQ6IG5vbmU7XG5cdFx0Y29sb3I6IGluaGVyaXQ7XG5cdFx0Ym9yZGVyOiBub25lO1xuXHRcdHBhZGRpbmc6MCFpbXBvcnRhbnQ7XG5cdFx0Zm9udDogaW5oZXJpdDtcblx0fVxuXG5cdCYub3dsLWxvYWRlZCB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdH1cblxuXHQmLm93bC1sb2FkaW5nIHtcblx0XHRvcGFjaXR5OiAwO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG5cblx0Ji5vd2wtaGlkZGVuIHtcblx0XHRvcGFjaXR5OiAwO1xuXHR9XG5cblx0Ji5vd2wtcmVmcmVzaCAub3dsLWl0ZW0ge1xuXHRcdHZpc2liaWxpdHk6IGhpZGRlbjtcblx0fVxuXG5cdCYub3dsLWRyYWcgLm93bC1pdGVtIHtcblx0XHR0b3VjaC1hY3Rpb246IHBhbi15O1xuXHRcdC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG5cdFx0LW1vei11c2VyLXNlbGVjdDogbm9uZTtcblx0XHQtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG5cdFx0dXNlci1zZWxlY3Q6IG5vbmU7XG5cdH1cblxuXHQmLm93bC1ncmFiIHtcblx0XHRjdXJzb3I6IG1vdmU7XG5cdFx0Y3Vyc29yOiBncmFiO1xuXHR9XG5cblx0Ji5vd2wtcnRsIHtcblx0XHRkaXJlY3Rpb246IHJ0bDtcblx0fVxuXG5cdCYub3dsLXJ0bCAub3dsLWl0ZW0ge1xuXHRcdGZsb2F0OiByaWdodDtcblx0fVxufVxuXG4vKiBObyBKcyAqL1xuLm5vLWpzIC5vd2wtY2Fyb3VzZWwge1xuXHRkaXNwbGF5OiBibG9jaztcbn1cbiIsIi8qXG4gKiAgT3dsIENhcm91c2VsIC0gQW5pbWF0ZSBQbHVnaW5cbiAqL1xuLm93bC1jYXJvdXNlbHtcblx0LmFuaW1hdGVkIHtcblx0XHRhbmltYXRpb24tZHVyYXRpb246IDEwMDBtcztcblx0XHRhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoO1xuXHR9XG5cdC5vd2wtYW5pbWF0ZWQtaW4ge1xuXHRcdHotaW5kZXg6IDA7XG5cdH1cblx0Lm93bC1hbmltYXRlZC1vdXQge1xuXHRcdHotaW5kZXg6IDE7XG5cdH1cblx0LmZhZGVPdXQge1xuXHRcdGFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0O1xuXHR9XG59XG5cbkBrZXlmcmFtZXMgZmFkZU91dCB7XG5cdDAlIHtcblx0XHRvcGFjaXR5OiAxO1xuXHR9XG5cblx0MTAwJSB7XG5cdFx0b3BhY2l0eTogMDtcblx0fVxufVxuIiwiLypcbiAqIFx0T3dsIENhcm91c2VsIC0gQXV0byBIZWlnaHQgUGx1Z2luXG4gKi9cblxuLm93bC1oZWlnaHQge1xuXHR0cmFuc2l0aW9uOiBoZWlnaHQgNTAwbXMgZWFzZS1pbi1vdXQ7XG59XG4iLCIvKlxuICogXHRPd2wgQ2Fyb3VzZWwgLSBMYXp5IExvYWQgUGx1Z2luXG4gKi9cblxuLm93bC1jYXJvdXNlbCB7XG5cdC5vd2wtaXRlbSB7XG5cdFx0Lm93bC1sYXp5IHtcblx0XHRcdFx0b3BhY2l0eTogMDtcblx0XHRcdFx0dHJhbnNpdGlvbjogb3BhY2l0eSA0MDBtcyBlYXNlO1xuXHRcdH1cblxuXHRcdC8qKlxuXHRcdFx0VGhpcyBpcyBpbnRyb2R1Y2VkIGR1ZSB0byBhIGJ1ZyBpbiBJRTExIHdoZXJlIGxhenkgbG9hZGluZyBjb21iaW5lZCB3aXRoIGF1dG9oZWlnaHQgcGx1Z2luIGNhdXNlcyBhIHdyb25nXG5cdFx0XHRjYWxjdWxhdGlvbiBvZiB0aGUgaGVpZ2h0IG9mIHRoZSBvd2wtaXRlbSB0aGF0IGJyZWFrcyBwYWdlIGxheW91dHNcblx0XHQgKi9cblx0XHQub3dsLWxhenlbc3JjXj1cIlwiXSwgLm93bC1sYXp5Om5vdChbc3JjXSkge1xuXHRcdFx0bWF4LWhlaWdodDogMDtcblx0XHR9XG5cblx0XHRpbWcub3dsLWxhenkge1xuXHRcdFx0dHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcblx0XHR9XG5cdH1cbn1cblxuIiwiJG93bC1pbWFnZS1wYXRoOiBcIlwiICFkZWZhdWx0O1xuXG4vKlxuICogXHRPd2wgQ2Fyb3VzZWwgLSBWaWRlbyBQbHVnaW5cbiAqL1xuXG4ub3dsLWNhcm91c2Vse1xuXHQub3dsLXZpZGVvLXdyYXBwZXIge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0YmFja2dyb3VuZDogIzAwMDtcblx0fVxuXG5cdC5vd2wtdmlkZW8tcGxheS1pY29uIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0aGVpZ2h0OiA4MHB4O1xuXHRcdHdpZHRoOiA4MHB4O1xuXHRcdGxlZnQ6IDUwJTtcblx0XHR0b3A6IDUwJTtcblx0XHRtYXJnaW4tbGVmdDogLTQwcHg7XG5cdFx0bWFyZ2luLXRvcDogLTQwcHg7XG5cdFx0YmFja2dyb3VuZDogdXJsKFwiI3skb3dsLWltYWdlLXBhdGh9b3dsLnZpZGVvLnBsYXkucG5nXCIpIG5vLXJlcGVhdDtcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0ei1pbmRleDogMTtcblx0XHQtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcblx0XHR0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMTAwbXMgZWFzZTtcblx0fVxuXG5cdC5vd2wtdmlkZW8tcGxheS1pY29uOmhvdmVyIHtcblx0XHR0cmFuc2Zvcm06IHNjYWxlKDEuMywgMS4zKTtcblx0fVxuXG5cdC5vd2wtdmlkZW8tcGxheWluZyAub3dsLXZpZGVvLXRuLFxuXHQub3dsLXZpZGVvLXBsYXlpbmcgLm93bC12aWRlby1wbGF5LWljb24ge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cblxuXHQub3dsLXZpZGVvLXRuIHtcblx0XHRvcGFjaXR5OiAwO1xuXHRcdGhlaWdodDogMTAwJTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuXHRcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdFx0YmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuXHRcdHRyYW5zaXRpb246IG9wYWNpdHkgNDAwbXMgZWFzZTtcblx0fVxuXG5cdC5vd2wtdmlkZW8tZnJhbWUge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHR6LWluZGV4OiAxO1xuXHRcdGhlaWdodDogMTAwJTtcblx0XHR3aWR0aDogMTAwJTtcblx0fVxufVxuIiwiLy8gSGVscGVyIGZ1bmN0aW9uIGZvciB0aGUgbm9ybWFsaXplKCkgbWl4aW4uXG5AZnVuY3Rpb24gX25vcm1hbGl6ZS1pbmNsdWRlKCRzZWN0aW9uLCAkZXhjbHVkZTogbnVsbCkge1xuICAvLyBJbml0aWFsaXplIHRoZSBnbG9iYWwgdmFyaWFibGVzIG5lZWRlZCBieSB0aGlzIGZ1bmN0aW9uLlxuICBAaWYgbm90IGdsb2JhbF92YXJpYWJsZV9leGlzdHMoX25vcm1hbGl6ZS1pbmNsdWRlKSB7XG4gICAgJF9ub3JtYWxpemUtaW5jbHVkZTogKCkgIWdsb2JhbDtcbiAgICAkX25vcm1hbGl6ZS1leGNsdWRlOiAoKSAhZ2xvYmFsO1xuICB9XG4gIC8vIFNpbmNlIHdlIGFyZSBnaXZlbiAyIHBhcmFtZXRlcnMsIHNldCB0aGUgZ2xvYmFsIHZhcmlhYmxlcy5cbiAgQGlmICRleGNsdWRlICE9IG51bGwge1xuICAgICRpbmNsdWRlOiAkc2VjdGlvbjtcbiAgICAvLyBTYXNzIGRvZXNuJ3QgaGF2ZSBzdGF0aWMgdmFyaWFibGVzLCBzbyB0aGUgd29yay1hcm91bmQgaXMgdG8gc3R1ZmYgdGhlc2VcbiAgICAvLyB2YWx1ZXMgaW50byBnbG9iYWwgdmFyaWFibGVzIHNvIHdlIGNhbiBhY2Nlc3MgdGhlbSBpbiBmdXR1cmUgY2FsbHMuXG4gICAgJF9ub3JtYWxpemUtaW5jbHVkZTogaWYodHlwZS1vZigkaW5jbHVkZSkgPT0gJ2xpc3QnLCAkaW5jbHVkZSwgKCRpbmNsdWRlKSkgIWdsb2JhbDtcbiAgICAkX25vcm1hbGl6ZS1leGNsdWRlOiBpZih0eXBlLW9mKCRleGNsdWRlKSA9PSAnbGlzdCcsICRleGNsdWRlLCAoJGV4Y2x1ZGUpKSAhZ2xvYmFsO1xuICAgIEByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8vIENoZWNrIGlmICRzZWN0aW9uIGlzIGluIHRoZSAkaW5jbHVkZSBsaXN0LlxuICBAaWYgaW5kZXgoJF9ub3JtYWxpemUtaW5jbHVkZSwgJHNlY3Rpb24pIHtcbiAgICBAcmV0dXJuIHRydWU7XG4gIH1cbiAgLy8gSWYgJGluY2x1ZGUgaXMgc2V0IHRvIChhbGwpLCBtYWtlIHN1cmUgJHNlY3Rpb24gaXMgbm90IGluICRleGNsdWRlLlxuICBAZWxzZSBpZiBub3QgaW5kZXgoJF9ub3JtYWxpemUtZXhjbHVkZSwgJHNlY3Rpb24pIGFuZCBpbmRleCgkX25vcm1hbGl6ZS1pbmNsdWRlLCBhbGwpIHtcbiAgICBAcmV0dXJuIHRydWU7XG4gIH1cbiAgQHJldHVybiBmYWxzZTtcbn1cblxuQG1peGluIG5vcm1hbGl6ZSgkaW5jbHVkZTogKGFsbCksICRleGNsdWRlOiAoKSkge1xuICAvLyBJbml0aWFsaXplIHRoZSBoZWxwZXIgZnVuY3Rpb24gYnkgcGFzc2luZyBpdCB0aGlzIG1peGluJ3MgcGFyYW1ldGVycy5cbiAgJGluaXQ6IF9ub3JtYWxpemUtaW5jbHVkZSgkaW5jbHVkZSwgJGV4Y2x1ZGUpO1xuXG4gIC8vIElmIHdlJ3ZlIGN1c3RvbWl6ZWQgYW55IGZvbnQgdmFyaWFibGVzLCB3ZSdsbCBuZWVkIGV4dHJhIHByb3BlcnRpZXMuXG4gIEBpZiAkYmFzZS1mb250LXNpemUgIT0gMTZweFxuICAgIG9yICRiYXNlLWxpbmUtaGVpZ2h0ICE9IDI0cHhcbiAgICBvciAkYmFzZS11bml0ICE9ICdlbSdcbiAgICBvciAkaDEtZm9udC1zaXplICE9IDIgICAgKiAkYmFzZS1mb250LXNpemVcbiAgICBvciAkaDItZm9udC1zaXplICE9IDEuNSAgKiAkYmFzZS1mb250LXNpemVcbiAgICBvciAkaDMtZm9udC1zaXplICE9IDEuMTcgKiAkYmFzZS1mb250LXNpemVcbiAgICBvciAkaDQtZm9udC1zaXplICE9IDEgICAgKiAkYmFzZS1mb250LXNpemVcbiAgICBvciAkaDUtZm9udC1zaXplICE9IDAuODMgKiAkYmFzZS1mb250LXNpemVcbiAgICBvciAkaDYtZm9udC1zaXplICE9IDAuNjcgKiAkYmFzZS1mb250LXNpemUge1xuICAgICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtOiB0cnVlICFnbG9iYWw7XG4gIH1cblxuICAvKiEgbm9ybWFsaXplLXNjc3MgfCBNSVQvR1BMdjIgTGljZW5zZSB8IGJpdC5seS9ub3JtYWxpemUtc2NzcyAqL1xuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUoZG9jdW1lbnQpIHtcbiAgICAvKiBEb2N1bWVudFxuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiAxLiBDaGFuZ2UgdGhlIGRlZmF1bHQgZm9udCBmYW1pbHkgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgbGluZSBoZWlnaHQgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqIDMuIFByZXZlbnQgYWRqdXN0bWVudHMgb2YgZm9udCBzaXplIGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZXMgaW5cbiAgICAgKiAgICBJRSBvbiBXaW5kb3dzIFBob25lIGFuZCBpbiBpT1MuXG4gICAgICovXG5cbiAgICBodG1sIHtcbiAgICAgIGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseTsgLyogMSAqL1xuICAgICAgQGlmICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtIHtcbiAgICAgICAgLy8gQ29ycmVjdCBvbGQgYnJvd3NlciBidWcgdGhhdCBwcmV2ZW50ZWQgYWNjZXNzaWJsZSByZXNpemluZyBvZiB0ZXh0XG4gICAgICAgIC8vIHdoZW4gcm9vdCBmb250LXNpemUgaXMgc2V0IHdpdGggcHggb3IgZW0uXG4gICAgICAgIGZvbnQtc2l6ZTogKCRiYXNlLWZvbnQtc2l6ZSAvIDE2cHgpICogMTAwJTtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICgkYmFzZS1saW5lLWhlaWdodCAvICRiYXNlLWZvbnQtc2l6ZSkgKiAxZW07IC8qIDIgKi9cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTU7IC8qIDIgKi9cbiAgICAgIH1cbiAgICAgIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAzICovXG4gICAgICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDMgKi9cbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKHNlY3Rpb25zKSB7XG4gICAgLyogU2VjdGlvbnNcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlIHRoZSBtYXJnaW4gaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gICAgICovXG5cbiAgICBib2R5IHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cblxuICAgIGFydGljbGUsXG4gICAgYXNpZGUsXG4gICAgZm9vdGVyLFxuICAgIGhlYWRlcixcbiAgICBuYXYsXG4gICAgc2VjdGlvbiB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb3JyZWN0IHRoZSBmb250IHNpemUgYW5kIG1hcmdpbiBvbiBgaDFgIGVsZW1lbnRzIHdpdGhpbiBgc2VjdGlvbmAgYW5kXG4gICAgICogYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cbiAgICAgKi9cblxuICAgIGgxIHtcbiAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1mb250LXNpemUoJGgxLWZvbnQtc2l6ZSk7XG4gICAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbGluZS1oZWlnaHQoJGgxLWZvbnQtc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIEBpZiAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobSB7XG4gICAgICAgIC8qIFNldCAxIHVuaXQgb2YgdmVydGljYWwgcmh5dGhtIG9uIHRoZSB0b3AgYW5kIGJvdHRvbSBtYXJnaW5zLiAqL1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCwgJGgxLWZvbnQtc2l6ZSk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIG1hcmdpbjogMC42N2VtIDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtIHtcbiAgICAgIGgyIHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWZvbnQtc2l6ZSgkaDItZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWxpbmUtaGVpZ2h0KCRoMi1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCwgJGgyLWZvbnQtc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIGgzIHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWZvbnQtc2l6ZSgkaDMtZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWxpbmUtaGVpZ2h0KCRoMy1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCwgJGgzLWZvbnQtc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIGg0IHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWZvbnQtc2l6ZSgkaDQtZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWxpbmUtaGVpZ2h0KCRoNC1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCwgJGg0LWZvbnQtc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIGg1IHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWZvbnQtc2l6ZSgkaDUtZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWxpbmUtaGVpZ2h0KCRoNS1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCwgJGg1LWZvbnQtc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIGg2IHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWZvbnQtc2l6ZSgkaDYtZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWxpbmUtaGVpZ2h0KCRoNi1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCwgJGg2LWZvbnQtc2l6ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGlmIF9ub3JtYWxpemUtaW5jbHVkZShncm91cGluZykge1xuICAgIC8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgQGlmICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtIHtcbiAgICAgIC8qKlxuICAgICAgICogU2V0IDEgdW5pdCBvZiB2ZXJ0aWNhbCByaHl0aG0gb24gdGhlIHRvcCBhbmQgYm90dG9tIG1hcmdpbi5cbiAgICAgICAqL1xuXG4gICAgICBibG9ja3F1b3RlIHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLW1hcmdpbigxICRpbmRlbnQtYW1vdW50KTtcbiAgICAgIH1cblxuICAgICAgZGwsXG4gICAgICBvbCxcbiAgICAgIHVsIHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLW1hcmdpbigxIDApO1xuICAgICAgfVxuXG4gICAgICAvKipcbiAgICAgICAqIFR1cm4gb2ZmIG1hcmdpbnMgb24gbmVzdGVkIGxpc3RzLlxuICAgICAgICovXG5cbiAgICAgIG9sLFxuICAgICAgdWwge1xuICAgICAgICBvbCxcbiAgICAgICAgdWwge1xuICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBkZCB7XG4gICAgICAgIG1hcmdpbjogMCAwIDAgJGluZGVudC1hbW91bnQ7XG4gICAgICB9XG5cbiAgICAgIG9sLFxuICAgICAgdWwge1xuICAgICAgICBwYWRkaW5nOiAwIDAgMCAkaW5kZW50LWFtb3VudDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cblxuICAgIGZpZ2NhcHRpb24sXG4gICAgZmlndXJlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBtYXJnaW4gaW4gSUUgOC5cbiAgICAgKi9cblxuICAgIGZpZ3VyZSB7XG4gICAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgJGluZGVudC1hbW91bnQpO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBtYXJnaW46IDFlbSAkaW5kZW50LWFtb3VudDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBGaXJlZm94LlxuICAgICAqIDIuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxuICAgICAqL1xuXG4gICAgaHIge1xuICAgICAgYm94LXNpemluZzogY29udGVudC1ib3g7IC8qIDEgKi9cbiAgICAgIGhlaWdodDogMDsgLyogMSAqL1xuICAgICAgb3ZlcmZsb3c6IHZpc2libGU7IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRS5cbiAgICAgKi9cblxuICAgIG1haW4ge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgQGlmICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtIHtcbiAgICAgIC8qKlxuICAgICAgICogU2V0IDEgdW5pdCBvZiB2ZXJ0aWNhbCByaHl0aG0gb24gdGhlIHRvcCBhbmQgYm90dG9tIG1hcmdpbi5cbiAgICAgICAqL1xuXG4gICAgICBwLFxuICAgICAgcHJlIHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLW1hcmdpbigxIDApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuXG4gICAgcHJlIHtcbiAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICAgICAgZm9udC1zaXplOiAxZW07IC8qIDIgKi9cbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKGxpbmtzKSB7XG4gICAgLyogTGlua3NcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgLyoqXG4gICAgICogMS4gUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgb24gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICAgICAqIDIuIFJlbW92ZSBnYXBzIGluIGxpbmtzIHVuZGVybGluZSBpbiBpT1MgOCsgYW5kIFNhZmFyaSA4Ky5cbiAgICAgKi9cblxuICAgIGEge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IC8qIDEgKi9cbiAgICAgIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uLXNraXA6IG9iamVjdHM7IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgdGhlIG91dGxpbmUgb24gZm9jdXNlZCBsaW5rcyB3aGVuIHRoZXkgYXJlIGFsc28gYWN0aXZlIG9yIGhvdmVyZWRcbiAgICAgKiBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKi9cblxuICAgIGE6YWN0aXZlLFxuICAgIGE6aG92ZXIge1xuICAgICAgb3V0bGluZS13aWR0aDogMDtcbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKHRleHQpIHtcbiAgICAvKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiAxLiBSZW1vdmUgdGhlIGJvdHRvbSBib3JkZXIgaW4gRmlyZWZveCAzOS0uXG4gICAgICogMi4gQWRkIHRoZSBjb3JyZWN0IHRleHQgZGVjb3JhdGlvbiBpbiBDaHJvbWUsIEVkZ2UsIElFLCBPcGVyYSwgYW5kIFNhZmFyaS5cbiAgICAgKi9cblxuICAgIGFiYnJbdGl0bGVdIHtcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7IC8qIDEgKi9cbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyAvKiAyICovXG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQcmV2ZW50IHRoZSBkdXBsaWNhdGUgYXBwbGljYXRpb24gb2YgYGJvbGRlcmAgYnkgdGhlIG5leHQgcnVsZSBpbiBTYWZhcmkgNi5cbiAgICAgKi9cblxuICAgIGIsXG4gICAgc3Ryb25nIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gICAgICovXG5cbiAgICBiLFxuICAgIHN0cm9uZyB7XG4gICAgICBmb250LXdlaWdodDogYm9sZGVyO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuXG4gICAgY29kZSxcbiAgICBrYmQsXG4gICAgc2FtcCB7XG4gICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8qIDEgKi9cbiAgICAgIGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc3R5bGUgaW4gQW5kcm9pZCA0LjMtLlxuICAgICAqL1xuXG4gICAgZGZuIHtcbiAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgYmFja2dyb3VuZCBhbmQgY29sb3IgaW4gSUUgOS0uXG4gICAgICovXG5cbiAgICBtYXJrIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZjA7XG4gICAgICBjb2xvcjogIzAwMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgICAgKi9cblxuICAgIHNtYWxsIHtcbiAgICAgIGZvbnQtc2l6ZTogODAlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpblxuICAgICAqIGFsbCBicm93c2Vycy5cbiAgICAgKi9cblxuICAgIHN1YixcbiAgICBzdXAge1xuICAgICAgZm9udC1zaXplOiA3NSU7XG4gICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgICB9XG5cbiAgICBzdWIge1xuICAgICAgYm90dG9tOiAtMC4yNWVtO1xuICAgIH1cblxuICAgIHN1cCB7XG4gICAgICB0b3A6IC0wLjVlbTtcbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKGVtYmVkZGVkKSB7XG4gICAgLyogRW1iZWRkZWQgY29udGVudFxuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cblxuICAgIGF1ZGlvLFxuICAgIHZpZGVvIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBpT1MgNC03LlxuICAgICAqL1xuXG4gICAgYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlIHRoZSBib3JkZXIgb24gaW1hZ2VzIGluc2lkZSBsaW5rcyBpbiBJRSAxMC0uXG4gICAgICovXG5cbiAgICBpbWcge1xuICAgICAgYm9yZGVyLXN0eWxlOiBub25lO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEhpZGUgdGhlIG92ZXJmbG93IGluIElFLlxuICAgICAqL1xuXG4gICAgc3ZnOm5vdCg6cm9vdCkge1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKGZvcm1zKSB7XG4gICAgLyogRm9ybXNcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgLyoqXG4gICAgICogMS4gQ2hhbmdlIHRoZSBmb250IHN0eWxlcyBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKiAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG4gICAgICovXG5cbiAgICBidXR0b24sXG4gICAgaW5wdXQsXG4gICAgb3B0Z3JvdXAsXG4gICAgc2VsZWN0LFxuICAgIHRleHRhcmVhIHtcbiAgICAgIGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseTsgLyogMSAqL1xuICAgICAgZm9udC1zaXplOiAxMDAlOyAvKiAxICovXG4gICAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgICBsaW5lLWhlaWdodDogKCRiYXNlLWxpbmUtaGVpZ2h0IC8gJGJhc2UtZm9udC1zaXplKSAqIDFlbTsgLyogMSAqL1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBsaW5lLWhlaWdodDogMS4xNTsgLyogMSAqL1xuICAgICAgfVxuICAgICAgbWFyZ2luOiAwOyAvKiAyICovXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2hvdyB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gICAgICovXG5cbiAgICBidXR0b24ge1xuICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gICAgICogMS4gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBGaXJlZm94LlxuICAgICAqL1xuXG4gICAgYnV0dG9uLFxuICAgIHNlbGVjdCB7IC8qIDEgKi9cbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIFByZXZlbnQgYSBXZWJLaXQgYnVnIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYCBhbmQgYHZpZGVvYFxuICAgICAqICAgIGNvbnRyb2xzIGluIEFuZHJvaWQgNC5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICAgICAqL1xuXG4gICAgYnV0dG9uLFxuICAgIGh0bWwgW3R5cGU9XCJidXR0b25cIl0sIC8qIDEgKi9cbiAgICBbdHlwZT1cInJlc2V0XCJdLFxuICAgIFt0eXBlPVwic3VibWl0XCJdIHtcbiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAyICovXG4gICAgfVxuXG4gICAgYnV0dG9uLFxuICAgIFt0eXBlPVwiYnV0dG9uXCJdLFxuICAgIFt0eXBlPVwicmVzZXRcIl0sXG4gICAgW3R5cGU9XCJzdWJtaXRcIl0ge1xuXG4gICAgICAvKipcbiAgICAgICAqIFJlbW92ZSB0aGUgaW5uZXIgYm9yZGVyIGFuZCBwYWRkaW5nIGluIEZpcmVmb3guXG4gICAgICAgKi9cblxuICAgICAgJjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgICAgIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgIH1cblxuICAgICAgLyoqXG4gICAgICAgKiBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG4gICAgICAgKi9cblxuICAgICAgJjotbW96LWZvY3VzcmluZyB7XG4gICAgICAgIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlLlxuICAgICAqL1xuXG4gICAgaW5wdXQge1xuICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gSUUgMTAtLlxuICAgICAqIDIuIFJlbW92ZSB0aGUgcGFkZGluZyBpbiBJRSAxMC0uXG4gICAgICovXG5cbiAgICBbdHlwZT1cImNoZWNrYm94XCJdLFxuICAgIFt0eXBlPVwicmFkaW9cIl0ge1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICAgICAgcGFkZGluZzogMDsgLyogMiAqL1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cbiAgICAgKi9cblxuICAgIFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuICAgIFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAxLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cbiAgICAgKi9cblxuICAgIFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiAxICovXG4gICAgICBvdXRsaW5lLW9mZnNldDogLTJweDsgLyogMiAqL1xuXG4gICAgICAvKipcbiAgICAgICAqIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBhbmQgY2FuY2VsIGJ1dHRvbnMgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXG4gICAgICAgKi9cblxuICAgICAgJjo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbiAgICAgICY6Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogMS4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAgICAgKiAyLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBTYWZhcmkuXG4gICAgICovXG5cbiAgICA6Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAxICovXG4gICAgICBmb250OiBpbmhlcml0OyAvKiAyICovXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hhbmdlIHRoZSBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gICAgICovXG5cbiAgICBmaWVsZHNldCB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICAgICAgbWFyZ2luOiAwIDJweDtcbiAgICAgIHBhZGRpbmc6IDAuMzVlbSAwLjYyNWVtIDAuNzVlbTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAxLiBDb3JyZWN0IHRoZSB0ZXh0IHdyYXBwaW5nIGluIEVkZ2UgYW5kIElFLlxuICAgICAqIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cbiAgICAgKiAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gICAgICogICAgYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5cbiAgICBsZWdlbmQge1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICAgICAgZGlzcGxheTogdGFibGU7IC8qIDEgKi9cbiAgICAgIG1heC13aWR0aDogMTAwJTsgLyogMSAqL1xuICAgICAgcGFkZGluZzogMDsgLyogMyAqL1xuICAgICAgY29sb3I6IGluaGVyaXQ7IC8qIDIgKi9cbiAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7IC8qIDEgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAxLiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKiAyLiBBZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICAgICAqL1xuXG4gICAgcHJvZ3Jlc3Mge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyAvKiAxICovXG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgdGhlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFLlxuICAgICAqL1xuXG4gICAgdGV4dGFyZWEge1xuICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgfVxuICB9XG5cbiAgQGlmIF9ub3JtYWxpemUtaW5jbHVkZShpbnRlcmFjdGl2ZSkge1xuICAgIC8qIEludGVyYWN0aXZlXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIC8qXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUsIGFuZCBGaXJlZm94LlxuICAgICAqL1xuXG4gICAgZGV0YWlscyB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAvKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGFsbCBicm93c2Vycy5cbiAgICAgKi9cblxuICAgIHN1bW1hcnkge1xuICAgICAgZGlzcGxheTogbGlzdC1pdGVtO1xuICAgIH1cblxuICAgIC8qXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gICAgICovXG5cbiAgICBtZW51IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgICAvKlxuICAgICAgICAgKiAxLiBTZXQgMSB1bml0IG9mIHZlcnRpY2FsIHJoeXRobSBvbiB0aGUgdG9wIGFuZCBib3R0b20gbWFyZ2luLlxuICAgICAgICAgKiAyLiBTZXQgY29uc2lzdGVudCBzcGFjZSBmb3IgdGhlIGxpc3Qgc3R5bGUgaW1hZ2UuXG4gICAgICAgICAqL1xuXG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAwKTsgLyogMSAqL1xuICAgICAgICBwYWRkaW5nOiAwIDAgMCAkaW5kZW50LWFtb3VudDsgLyogMiAqL1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUdXJuIG9mZiBtYXJnaW5zIG9uIG5lc3RlZCBsaXN0cy5cbiAgICAgICAgICovXG5cbiAgICAgICAgbWVudSAmLFxuICAgICAgICBvbCAmLFxuICAgICAgICB1bCAmIHtcbiAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKHNjcmlwdGluZykge1xuICAgIC8qIFNjcmlwdGluZ1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cblxuICAgIGNhbnZhcyB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUuXG4gICAgICovXG5cbiAgICB0ZW1wbGF0ZSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUoaGlkZGVuKSB7XG4gICAgLyogSGlkZGVuXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwLS5cbiAgICAgKi9cblxuICAgIFtoaWRkZW5dIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG4iLCIvL1xuLy8gVmFyaWFibGVzXG4vL1xuLy8gWW91IGNhbiBvdmVycmlkZSB0aGUgZGVmYXVsdCB2YWx1ZXMgYnkgc2V0dGluZyB0aGUgdmFyaWFibGVzIGluIHlvdXIgU2Fzc1xuLy8gYmVmb3JlIGltcG9ydGluZyB0aGUgbm9ybWFsaXplLXNjc3MgbGlicmFyeS5cblxuLy8gVGhlIGZvbnQgc2l6ZSBzZXQgb24gdGhlIHJvb3QgaHRtbCBlbGVtZW50LlxuJGJhc2UtZm9udC1zaXplOiAxNnB4ICFkZWZhdWx0O1xuXG4vLyBUaGUgYmFzZSBsaW5lIGhlaWdodCBkZXRlcm1pbmVzIHRoZSBiYXNpYyB1bml0IG9mIHZlcnRpY2FsIHJoeXRobS5cbiRiYXNlLWxpbmUtaGVpZ2h0OiAyNHB4ICFkZWZhdWx0O1xuXG4vLyBUaGUgbGVuZ3RoIHVuaXQgaW4gd2hpY2ggdG8gb3V0cHV0IHZlcnRpY2FsIHJoeXRobSB2YWx1ZXMuXG4vLyBTdXBwb3J0ZWQgdmFsdWVzOiBweCwgZW0sIHJlbS5cbiRiYXNlLXVuaXQ6ICdlbScgIWRlZmF1bHQ7XG5cbi8vIFRoZSBkZWZhdWx0IGZvbnQgZmFtaWx5LlxuJGJhc2UtZm9udC1mYW1pbHk6IHNhbnMtc2VyaWYgIWRlZmF1bHQ7XG5cbi8vIFRoZSBmb250IHNpemVzIGZvciBoMS1oNi5cbiRoMS1mb250LXNpemU6IDIgICAgKiAkYmFzZS1mb250LXNpemUgIWRlZmF1bHQ7XG4kaDItZm9udC1zaXplOiAxLjUgICogJGJhc2UtZm9udC1zaXplICFkZWZhdWx0O1xuJGgzLWZvbnQtc2l6ZTogMS4xNyAqICRiYXNlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRoNC1mb250LXNpemU6IDEgICAgKiAkYmFzZS1mb250LXNpemUgIWRlZmF1bHQ7XG4kaDUtZm9udC1zaXplOiAwLjgzICogJGJhc2UtZm9udC1zaXplICFkZWZhdWx0O1xuJGg2LWZvbnQtc2l6ZTogMC42NyAqICRiYXNlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcblxuLy8gVGhlIGFtb3VudCBsaXN0cyBhbmQgYmxvY2txdW90ZXMgYXJlIGluZGVudGVkLlxuJGluZGVudC1hbW91bnQ6IDQwcHggIWRlZmF1bHQ7XG5cbi8vIFRoZSBmb2xsb3dpbmcgdmFyaWFibGUgY29udHJvbHMgd2hldGhlciBub3JtYWxpemUtc2NzcyB3aWxsIG91dHB1dFxuLy8gZm9udC1zaXplcywgbGluZS1oZWlnaHRzIGFuZCBibG9jay1sZXZlbCB0b3AvYm90dG9tIG1hcmdpbnMgdGhhdCBmb3JtIGEgYmFzaWNcbi8vIHZlcnRpY2FsIHJoeXRobSBvbiB0aGUgcGFnZSwgd2hpY2ggZGlmZmVycyBmcm9tIHRoZSBvcmlnaW5hbCBOb3JtYWxpemUuY3NzLlxuLy8gSG93ZXZlciwgY2hhbmdpbmcgYW55IG9mIHRoZSB2YXJpYWJsZXMgYWJvdmUgd2lsbCBjYXVzZVxuLy8gJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0gdG8gYmUgYXV0b21hdGljYWxseSBzZXQgdG8gdHJ1ZS5cbiRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtOiBmYWxzZSAhZGVmYXVsdDtcbiIsIi8vXG4vLyBWZXJ0aWNhbCBSaHl0aG1cbi8vXG4vLyBUaGlzIGlzIHRoZSBtaW5pbWFsIGFtb3VudCBvZiBjb2RlIG5lZWRlZCB0byBjcmVhdGUgdmVydGljYWwgcmh5dGhtIGluIG91clxuLy8gQ1NTLiBJZiB5b3UgYXJlIGxvb2tpbmcgZm9yIGEgcm9idXN0IHNvbHV0aW9uLCBsb29rIGF0IHRoZSBleGNlbGxlbnQgVHlwZXlcbi8vIGxpYnJhcnkuIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2pwdGFyYW50by90eXBleVxuXG5AZnVuY3Rpb24gbm9ybWFsaXplLXJoeXRobSgkdmFsdWUsICRyZWxhdGl2ZS10bzogJGJhc2UtZm9udC1zaXplLCAkdW5pdDogJGJhc2UtdW5pdCkge1xuICBAaWYgdW5pdCgkdmFsdWUpICE9IHB4IHtcbiAgICBAZXJyb3IgXCJUaGUgbm9ybWFsaXplIHZlcnRpY2FsLXJoeXRobSBtb2R1bGUgb25seSBzdXBwb3J0cyBweCBpbnB1dHMuIFRoZSB0eXBleSBsaWJyYXJ5IGlzIGJldHRlci5cIjtcbiAgfVxuICBAaWYgJHVuaXQgPT0gcmVtIHtcbiAgICBAcmV0dXJuICgkdmFsdWUgLyAkYmFzZS1mb250LXNpemUpICogMXJlbTtcbiAgfVxuICBAZWxzZSBpZiAkdW5pdCA9PSBlbSB7XG4gICAgQHJldHVybiAoJHZhbHVlIC8gJHJlbGF0aXZlLXRvKSAqIDFlbTtcbiAgfVxuICBAZWxzZSB7IC8vICR1bml0ID09IHB4XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH1cbn1cblxuQG1peGluIG5vcm1hbGl6ZS1mb250LXNpemUoJHZhbHVlLCAkcmVsYXRpdmUtdG86ICRiYXNlLWZvbnQtc2l6ZSkge1xuICBAaWYgdW5pdCgkdmFsdWUpICE9ICdweCcge1xuICAgIEBlcnJvciBcIm5vcm1hbGl6ZS1mb250LXNpemUoKSBvbmx5IHN1cHBvcnRzIHB4IGlucHV0cy4gVGhlIHR5cGV5IGxpYnJhcnkgaXMgYmV0dGVyLlwiO1xuICB9XG4gIGZvbnQtc2l6ZTogbm9ybWFsaXplLXJoeXRobSgkdmFsdWUsICRyZWxhdGl2ZS10byk7XG59XG5cbkBtaXhpbiBub3JtYWxpemUtcmh5dGhtKCRwcm9wZXJ0eSwgJHZhbHVlcywgJHJlbGF0aXZlLXRvOiAkYmFzZS1mb250LXNpemUpIHtcbiAgJHZhbHVlLWxpc3Q6ICR2YWx1ZXM7XG4gICRzZXA6IHNwYWNlO1xuICBAaWYgdHlwZS1vZigkdmFsdWVzKSA9PSAnbGlzdCcge1xuICAgICRzZXA6IGxpc3Qtc2VwYXJhdG9yKCR2YWx1ZXMpO1xuICB9XG4gIEBlbHNlIHtcbiAgICAkdmFsdWUtbGlzdDogYXBwZW5kKCgpLCAkdmFsdWVzKTtcbiAgfVxuXG4gICRub3JtYWxpemVkLXZhbHVlczogKCk7XG4gIEBlYWNoICR2YWx1ZSBpbiAkdmFsdWUtbGlzdCB7XG4gICAgQGlmIHVuaXRsZXNzKCR2YWx1ZSkgYW5kICR2YWx1ZSAhPSAwIHtcbiAgICAgICR2YWx1ZTogJHZhbHVlICogbm9ybWFsaXplLXJoeXRobSgkYmFzZS1saW5lLWhlaWdodCwgJHJlbGF0aXZlLXRvKTtcbiAgICB9XG4gICAgJG5vcm1hbGl6ZWQtdmFsdWVzOiBhcHBlbmQoJG5vcm1hbGl6ZWQtdmFsdWVzLCAkdmFsdWUsICRzZXApO1xuICB9XG4gICN7JHByb3BlcnR5fTogJG5vcm1hbGl6ZWQtdmFsdWVzO1xufVxuXG5AbWl4aW4gbm9ybWFsaXplLW1hcmdpbigkdmFsdWVzLCAkcmVsYXRpdmUtdG86ICRiYXNlLWZvbnQtc2l6ZSkge1xuICBAaW5jbHVkZSBub3JtYWxpemUtcmh5dGhtKG1hcmdpbiwgJHZhbHVlcywgJHJlbGF0aXZlLXRvKTtcbn1cblxuQG1peGluIG5vcm1hbGl6ZS1saW5lLWhlaWdodCgkZm9udC1zaXplLCAkbWluLWxpbmUtcGFkZGluZzogMnB4KSB7XG4gICRsaW5lczogY2VpbCgkZm9udC1zaXplIC8gJGJhc2UtbGluZS1oZWlnaHQpO1xuICAvLyBJZiBsaW5lcyBhcmUgY3JhbXBlZCBpbmNsdWRlIHNvbWUgZXh0cmEgbGVhZGluZy5cbiAgQGlmICgkbGluZXMgKiAkYmFzZS1saW5lLWhlaWdodCAtICRmb250LXNpemUpIDwgKCRtaW4tbGluZS1wYWRkaW5nICogMikge1xuICAgICRsaW5lczogJGxpbmVzICsgMTtcbiAgfVxuICBAaW5jbHVkZSBub3JtYWxpemUtcmh5dGhtKGxpbmUtaGVpZ2h0LCAkbGluZXMsICRmb250LXNpemUpO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vIHNhc3MtbGludDpkaXNhYmxlIGZvcmNlLWF0dHJpYnV0ZS1uZXN0aW5nLCBmb3JjZS1wc2V1ZG8tbmVzdGluZywgbm8tY29sb3ItbGl0ZXJhbHMsIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcblxuLy8vL1xuLy8vIEBncm91cCBnbG9iYWxcbi8vLy9cblxuLy8vIEZvbnQgc2l6ZSBhdHRyaWJ1dGUgYXBwbGllZCB0byBgPGh0bWw+YCBhbmQgYDxib2R5PmAuIFdlIHVzZSAxMDAlIGJ5IGRlZmF1bHQgc28gdGhlIHZhbHVlIGlzIGluaGVyaXRlZCBmcm9tIHRoZSB1c2VyJ3MgYnJvd3NlciBzZXR0aW5ncy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtZm9udC1zaXplOiAxMDAlICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHdpZHRoIG9mIHlvdXIgc2l0ZS4gVXNlZCBieSB0aGUgZ3JpZCB0byBkZXRlcm1pbmUgcm93IHdpZHRoLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC13aWR0aDogcmVtLWNhbGMoMTIwMCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGxpbmUgaGVpZ2h0IGZvciBhbGwgdHlwZS4gYCRnbG9iYWwtbGluZWhlaWdodGAgaXMgMjRweCB3aGlsZSBgJGdsb2JhbC1mb250LXNpemVgIGlzIDE2cHhcbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtbGluZWhlaWdodDogMS41ICFkZWZhdWx0O1xuXG4vLy8gQ29sb3JzIHVzZWQgZm9yIGJ1dHRvbnMsIGNhbGxvdXRzLCBsaW5rcywgZXRjLiBUaGVyZSBtdXN0IGFsd2F5cyBiZSBhIGNvbG9yIGNhbGxlZCBgcHJpbWFyeWAuXG4vLy8gQHR5cGUgTWFwXG4kZm91bmRhdGlvbi1wYWxldHRlOiAoXG4gIHByaW1hcnk6ICMxNzc5YmEsXG4gIHNlY29uZGFyeTogIzc2NzY3NixcbiAgc3VjY2VzczogIzNhZGI3NixcbiAgd2FybmluZzogI2ZmYWUwMCxcbiAgYWxlcnQ6ICNjYzRiMzcsXG4pICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3IgbGlnaHQgZ3JheSBVSSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJGxpZ2h0LWdyYXk6ICNlNmU2ZTYgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBtZWRpdW0gZ3JheSBVSSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJG1lZGl1bS1ncmF5OiAjY2FjYWNhICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3IgZGFyayBncmF5IFVJIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kZGFyay1ncmF5OiAjOGE4YThhICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3IgYmxhY2sgdWkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRibGFjazogIzBhMGEwYSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIHdoaXRlIHVpIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kd2hpdGU6ICNmZWZlZmUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBib2R5LlxuLy8vIEB0eXBlIENvbG9yXG4kYm9keS1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIHRoZSBib2R5LlxuLy8vIEB0eXBlIENvbG9yXG4kYm9keS1mb250LWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHN0YWNrIG9mIHRoZSBib2R5LlxuLy8vIEB0eXBlIExpc3RcbiRib2R5LWZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhIE5ldWUnLCBIZWx2ZXRpY2EsIFJvYm90bywgQXJpYWwsIHNhbnMtc2VyaWYgIWRlZmF1bHQ7XG5cbi8vLyBTZXQgdG8gYHRydWVgIHRvIGVuYWJsZSBhbnRpYWxpYXNlZCB0eXBlLCB1c2luZyB0aGUgYC13ZWJraXQtZm9udC1zbW9vdGhpbmdgIGFuZCBgLW1vei1vc3gtZm9udC1zbW9vdGhpbmdgIENTUyBwcm9wZXJ0aWVzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRib2R5LWFudGlhbGlhc2VkOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIG1hcmdpbiBvbiBjb21wb25lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1tYXJnaW46IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgcGFkZGluZyBvbiBjb21wb25lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIHBvc2l0aW9uaW5nIG9uIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLXBvc2l0aW9uOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIGZvbnQgd2VpZ2h0IHVzZWQgZm9yIG5vcm1hbCB0eXBlLlxuLy8vIEB0eXBlIEtleXdvcmQgfCBOdW1iZXJcbiRnbG9iYWwtd2VpZ2h0LW5vcm1hbDogbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIGZvbnQgd2VpZ2h0IHVzZWQgZm9yIGJvbGQgdHlwZS5cbi8vLyBAdHlwZSBLZXl3b3JkIHwgTnVtYmVyXG4kZ2xvYmFsLXdlaWdodC1ib2xkOiBib2xkICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIGFsbCBlbGVtZW50cyB0aGF0IGhhdmUgYSBib3JkZXIgcmFkaXVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1yYWRpdXM6IDAgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgYWxsIG1lbnUgc3R5bGVzLiBDYW4gYmUgb3ZlcndyaXR0ZW4gYXQgaW5kaXZpZHVhbCBtZW51IGNvbXBvbmVudCBsZXZlbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtbWVudS1wYWRkaW5nOiAwLjdyZW0gMXJlbSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBhbGwgbWVudSBzdHlsZXMuIE5lc3RlZCBtYXJnaW4gZm9yIHN1Ym1lbnUuXG4kZ2xvYmFsLW1lbnUtbmVzdGVkLW1hcmdpbjogMXJlbSAhZGVmYXVsdDtcblxuLy8vIFNldHMgdGhlIHRleHQgZGlyZWN0aW9uIG9mIHRoZSBDU1MuIENhbiBiZSBlaXRoZXIgYGx0cmAgb3IgYHJ0bGAuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGdsb2JhbC10ZXh0LWRpcmVjdGlvbjogbHRyICFkZWZhdWx0O1xuXG4vLy8gRW5hYmxlcyBmbGV4Ym94IGZvciBjb21wb25lbnRzIHRoYXQgc3VwcG9ydCBpdC5cbi8vLyBAdHlwZSBCb29sZWFuXG4kZ2xvYmFsLWZsZXhib3g6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBFbmFibGVkIHJlc3BvbnNpdmUgYnJlYWtwb2ludHMgZm9yIHByb3RvdHlwZXMgaWYgYXBwbGljYWJsZVxuLy8vIEB0eXBlIEJvb2xlYW5cbiRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzOiBmYWxzZSAhZGVmYXVsdDtcblxuQGlmIG5vdCBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCBwcmltYXJ5KSB7XG4gIEBlcnJvciAnSW4gJGZvdW5kYXRpb24tcGFsZXR0ZSwgeW91IG11c3QgaGF2ZSBhIGNvbG9yIG5hbWVkIFwicHJpbWFyeVwiLic7XG59XG5cbi8vIEludGVybmFsIHZhcmlhYmxlcyB1c2VkIGZvciB0ZXh0IGRpcmVjdGlvblxuJGdsb2JhbC1sZWZ0OiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCwgcmlnaHQsIGxlZnQpO1xuJGdsb2JhbC1yaWdodDogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwsIGxlZnQsIHJpZ2h0KTtcblxuLy8vIEdsb2JhbCB0b2xlcmFuY2UgZm9yIGNvbG9yIHBpY2sgY29udHJhc3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLWNvbG9yLXBpY2stY29udHJhc3QtdG9sZXJhbmNlOiAwICFkZWZhdWx0O1xuXG4vLyBJbnRlcm5hbCB2YXJpYWJsZXMgdXNlZCBmb3IgY29sb3JzXG4kcHJpbWFyeS1jb2xvcjogZ2V0LWNvbG9yKHByaW1hcnkpO1xuJHNlY29uZGFyeS1jb2xvcjogZ2V0LWNvbG9yKHNlY29uZGFyeSk7XG4kc3VjY2Vzcy1jb2xvcjogZ2V0LWNvbG9yKHN1Y2Nlc3MpO1xuJHdhcm5pbmctY29sb3I6IGdldC1jb2xvcih3YXJuaW5nKTtcbiRhbGVydC1jb2xvcjogZ2V0LWNvbG9yKGFsZXJ0KTtcblxuQG1peGluIGZvdW5kYXRpb24tZ2xvYmFsLXN0eWxlcyB7XG4gIEBpbmNsdWRlIC16Zi1ub3JtYWxpemU7XG5cbiAgLy8gVGhlc2Ugc3R5bGVzIGFyZSBhcHBsaWVkIHRvIGEgPG1ldGE+IHRhZywgd2hpY2ggaXMgcmVhZCBieSB0aGUgRm91bmRhdGlvbiBKYXZhU2NyaXB0XG4gIC5mb3VuZGF0aW9uLW1xIHtcbiAgICBmb250LWZhbWlseTogJyN7LXpmLWJwLXNlcmlhbGl6ZSgkYnJlYWtwb2ludHMpfSc7XG4gIH1cblxuICBodG1sIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGZvbnQtc2l6ZTogJGdsb2JhbC1mb250LXNpemU7XG4gIH1cblxuICAvLyBTZXQgYm94LXNpemluZyBnbG9iYWxseSB0byBoYW5kbGUgcGFkZGluZyBhbmQgYm9yZGVyIHdpZHRoc1xuICAqLFxuICAqOjpiZWZvcmUsXG4gICo6OmFmdGVyIHtcbiAgICBib3gtc2l6aW5nOiBpbmhlcml0O1xuICB9XG5cbiAgLy8gRGVmYXVsdCBib2R5IHN0eWxlc1xuICBib2R5IHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcblxuICAgIGJhY2tncm91bmQ6ICRib2R5LWJhY2tncm91bmQ7XG5cbiAgICBmb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHk7XG4gICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogJGdsb2JhbC1saW5laGVpZ2h0O1xuICAgIGNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuXG4gICAgQGlmICgkYm9keS1hbnRpYWxpYXNlZCkge1xuICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAgIH1cbiAgfVxuXG4gIGltZyB7XG4gICAgLy8gR2V0IHJpZCBvZiBnYXAgdW5kZXIgaW1hZ2VzIGJ5IG1ha2luZyB0aGVtIGRpc3BsYXk6IGlubGluZS1ibG9jazsgYnkgZGVmYXVsdFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgLy8gR3JpZCBkZWZhdWx0cyB0byBnZXQgaW1hZ2VzIGFuZCBlbWJlZHMgdG8gd29yayBwcm9wZXJseVxuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgLW1zLWludGVycG9sYXRpb24tbW9kZTogYmljdWJpYztcbiAgfVxuXG4gIC8vIE1ha2Ugc3VyZSB0ZXh0YXJlYSB0YWtlcyBvbiBoZWlnaHQgYXV0b21hdGljYWxseVxuICB0ZXh0YXJlYSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDUwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gIH1cblxuICAvLyBNYWtlIHNlbGVjdCBlbGVtZW50cyBhcmUgMTAwJSB3aWR0aCBieSBkZWZhdWx0XG4gIHNlbGVjdCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgfVxuXG4gIC8vIFN0eWxlcyBHb29nbGUgTWFwcyBhbmQgTWFwUXVlc3QgZW1iZWRzIHByb3Blcmx5XG4gIC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8taWRzXG4gIC5tYXBfY2FudmFzLFxuICAubXFhLWRpc3BsYXkge1xuICAgIGltZyxcbiAgICBlbWJlZCxcbiAgICBvYmplY3Qge1xuICAgICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLy8gUmVzZXQgPGJ1dHRvbj4gc3R5bGVzIGNyZWF0ZWQgYnkgbW9zdCBicm93c2Vyc1xuICBidXR0b24ge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcblxuICAgIHBhZGRpbmc6IDA7XG5cbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblxuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICB9XG5cbiAgLy8gUHJldmVudCB0ZXh0IG92ZXJmbG93IG9uIHByZVxuICBwcmUge1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICB9XG5cbiAgLy8gTWFrZSByZXNldCBpbmhlcml0IGZvbnQtZmFtaWx5IGluc3RlYWQgb2Ygc2V0dGluZ3Mgc2Fucy1zZXJpZlxuICBidXR0b24sXG4gIGlucHV0LFxuICBvcHRncm91cCxcbiAgc2VsZWN0LFxuICB0ZXh0YXJlYSB7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBJbnRlcm5hbCBjbGFzc2VzIHRvIHNob3cvaGlkZSBlbGVtZW50cyBpbiBKYXZhU2NyaXB0XG4gIC5pcy12aXNpYmxlIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmlzLWhpZGRlbiB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8vLyBMb2FkcyBub3JtYWxpemUuY3NzLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuQG1peGluIC16Zi1ub3JtYWxpemUge1xuICBAaW5jbHVkZSBub3JtYWxpemUoKTtcbn1cbiIsIi8vICBGb3VuZGF0aW9uIGZvciBTaXRlcyBTZXR0aW5nc1xuLy8gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vL1xuLy8gIFRhYmxlIG9mIENvbnRlbnRzOlxuLy9cbi8vICAgMS4gR2xvYmFsXG4vLyAgIDIuIEJyZWFrcG9pbnRzXG4vLyAgIDMuIFRoZSBHcmlkXG4vLyAgIDQuIEJhc2UgVHlwb2dyYXBoeVxuLy8gICA1LiBUeXBvZ3JhcGh5IEhlbHBlcnNcbi8vICAgNi4gQWJpZGVcbi8vICAgNy4gQWNjb3JkaW9uXG4vLyAgIDguIEFjY29yZGlvbiBNZW51XG4vLyAgIDkuIEJhZGdlXG4vLyAgMTAuIEJyZWFkY3J1bWJzXG4vLyAgMTEuIEJ1dHRvblxuLy8gIDEyLiBCdXR0b24gR3JvdXBcbi8vICAxMy4gQ2FsbG91dFxuLy8gIDE0LiBDYXJkXG4vLyAgMTUuIENsb3NlIEJ1dHRvblxuLy8gIDE2LiBEcmlsbGRvd25cbi8vICAxNy4gRHJvcGRvd25cbi8vICAxOC4gRHJvcGRvd24gTWVudVxuLy8gIDE5LiBGbGV4Ym94IFV0aWxpdGllc1xuLy8gIDIwLiBGb3Jtc1xuLy8gIDIxLiBMYWJlbFxuLy8gIDIyLiBNZWRpYSBPYmplY3Rcbi8vICAyMy4gTWVudVxuLy8gIDI0LiBNZXRlclxuLy8gIDI1LiBPZmYtY2FudmFzXG4vLyAgMjYuIE9yYml0XG4vLyAgMjcuIFBhZ2luYXRpb25cbi8vICAyOC4gUHJvZ3Jlc3MgQmFyXG4vLyAgMjkuIFByb3RvdHlwZSBBcnJvd1xuLy8gIDMwLiBQcm90b3R5cGUgQm9yZGVyLUJveFxuLy8gIDMxLiBQcm90b3R5cGUgQm9yZGVyLU5vbmVcbi8vICAzMi4gUHJvdG90eXBlIEJvcmRlcmVkXG4vLyAgMzMuIFByb3RvdHlwZSBEaXNwbGF5XG4vLyAgMzQuIFByb3RvdHlwZSBGb250LVN0eWxpbmdcbi8vICAzNS4gUHJvdG90eXBlIExpc3QtU3R5bGUtVHlwZVxuLy8gIDM2LiBQcm90b3R5cGUgT3ZlcmZsb3dcbi8vICAzNy4gUHJvdG90eXBlIFBvc2l0aW9uXG4vLyAgMzguIFByb3RvdHlwZSBSb3VuZGVkXG4vLyAgMzkuIFByb3RvdHlwZSBTZXBhcmF0b3Jcbi8vICA0MC4gUHJvdG90eXBlIFNoYWRvd1xuLy8gIDQxLiBQcm90b3R5cGUgU2l6aW5nXG4vLyAgNDIuIFByb3RvdHlwZSBTcGFjaW5nXG4vLyAgNDMuIFByb3RvdHlwZSBUZXh0LURlY29yYXRpb25cbi8vICA0NC4gUHJvdG90eXBlIFRleHQtVHJhbnNmb3JtYXRpb25cbi8vICA0NS4gUHJvdG90eXBlIFRleHQtVXRpbGl0aWVzXG4vLyAgNDYuIFJlc3BvbnNpdmUgRW1iZWRcbi8vICA0Ny4gUmV2ZWFsXG4vLyAgNDguIFNsaWRlclxuLy8gIDQ5LiBTd2l0Y2hcbi8vICA1MC4gVGFibGVcbi8vICA1MS4gVGFic1xuLy8gIDUyLiBUaHVtYm5haWxcbi8vICA1My4gVGl0bGUgQmFyXG4vLyAgNTQuIFRvb2x0aXBcbi8vICA1NS4gVG9wIEJhclxuLy8gIDU2LiBYeSBHcmlkXG5cbkBpbXBvcnQgJy4uLy4uLy4uL3ZlbmRvci9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC91dGlsJztcblxuLy8gMS4gR2xvYmFsXG4vLyAtLS0tLS0tLS1cblxuJGdsb2JhbC1uYXJyb3ctd2lkdGg6IHJlbS1jYWxjKDEyMDApO1xuJGdsb2JhbC1uYXJyb3dlci13aWR0aDogcmVtLWNhbGMoMTEwMCk7XG4kZ2xvYmFsLXdpZGUtd2lkdGg6IHJlbS1jYWxjKDEzNjApO1xuXG4kZ2xvYmFsLWZvbnQtc2l6ZTogMTAwJTtcbiRnbG9iYWwtd2lkdGg6IHJlbS1jYWxjKDE0NDApO1xuJGdsb2JhbC1saW5laGVpZ2h0OiAxLjU7XG4kZm91bmRhdGlvbi1wYWxldHRlOiAoXG4gIHByaW1hcnk6ICMxNzc5YmEsXG4gIHNlY29uZGFyeTogIzc2NzY3NixcbiAgc3VjY2VzczogIzNhZGI3NixcbiAgd2FybmluZzogI2ZmYWUwMCxcbiAgYWxlcnQ6ICNjYzRiMzcsXG4pO1xuXG4kbGlnaHQtZ3JheTogI2U2ZTZlNjtcbiRtZWRpdW0tZ3JheTogI2NhY2FjYTtcbiRkYXJrLWdyYXk6ICM4YThhOGE7XG4kYmxhY2s6ICMwYTBhMGE7XG4kd2hpdGU6ICNmZWZlZmU7XG5cbiRib2R5LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRib2R5LWZvbnQtY29sb3I6ICRibGFjaztcbiRib2R5LWZvbnQtZmFtaWx5OiAnSW50ZXInLCBzYW5zLXNlcmlmO1xuJGJvZHktYW50aWFsaWFzZWQ6IHRydWU7XG4kZ2xvYmFsLW1hcmdpbjogMXJlbTtcbiRnbG9iYWwtcGFkZGluZzogMXJlbTtcbiRnbG9iYWwtcG9zaXRpb246IDFyZW07XG4kZ2xvYmFsLXdlaWdodC1ub3JtYWw6IG5vcm1hbDtcbiRnbG9iYWwtd2VpZ2h0LWJvbGQ6IGJvbGQ7XG4kZ2xvYmFsLXJhZGl1czogMDtcbiRnbG9iYWwtbWVudS1wYWRkaW5nOiAwLjdyZW0gMXJlbTtcbiRnbG9iYWwtbWVudS1uZXN0ZWQtbWFyZ2luOiAxcmVtO1xuJGdsb2JhbC10ZXh0LWRpcmVjdGlvbjogbHRyO1xuJGdsb2JhbC1mbGV4Ym94OiB0cnVlO1xuJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM6IGZhbHNlO1xuJGdsb2JhbC1jb2xvci1waWNrLWNvbnRyYXN0LXRvbGVyYW5jZTogMDtcbiRwcmludC10cmFuc3BhcmVudC1iYWNrZ3JvdW5kczogdHJ1ZTtcblxuQGluY2x1ZGUgYWRkLWZvdW5kYXRpb24tY29sb3JzO1xuXG4kY29sb3JzOiAoXG4gIHByaW1hcnk6ICRwcmltYXJ5LWNvbG9yLFxuICBzZWNvbmRhcnk6ICRzZWNvbmRhcnktY29sb3IsXG4gIHN1Y2Nlc3M6ICRzdWNjZXNzLWNvbG9yLFxuICB3YXJuaW5nOiAkd2FybmluZy1jb2xvcixcbiAgYWxlcnQ6ICRhbGVydC1jb2xvcixcblxuICBsaWdodC1ncmF5OiAkbGlnaHQtZ3JheSxcbiAgbWVkaXVtLWdyYXk6ICRtZWRpdW0tZ3JheSxcbiAgZGFyay1ncmF5OiAkZGFyay1ncmF5LFxuICBibGFjazogJGJsYWNrLFxuICB3aGl0ZTogJHdoaXRlXG4pO1xuXG4vLyAyLiBCcmVha3BvaW50c1xuLy8gLS0tLS0tLS0tLS0tLS1cblxuJGJyZWFrcG9pbnRzOiAoXG4gIHNtYWxsOiAwLFxuICBtZWRpdW06IDY0MHB4LFxuICBsYXJnZTogMTAyNHB4LFxuICB4bGFyZ2U6IDEyMDBweCxcbiAgeHhsYXJnZTogMTQ0MHB4LFxuKTtcbiRwcmludC1icmVha3BvaW50OiBsYXJnZTtcbiRicmVha3BvaW50LWNsYXNzZXM6IChzbWFsbCBtZWRpdW0gbGFyZ2UpO1xuXG4vLyAzLiBUaGUgR3JpZFxuLy8gLS0tLS0tLS0tLS1cblxuJGdyaWQtcm93LXdpZHRoOiAkZ2xvYmFsLXdpZHRoO1xuJGdyaWQtY29sdW1uLWNvdW50OiAxMjtcbiRncmlkLWNvbHVtbi1ndXR0ZXI6IChcbiAgc21hbGw6IDIwcHgsXG4gIG1lZGl1bTogMzBweCxcbik7XG4kZ3JpZC1jb2x1bW4tYWxpZ24tZWRnZTogdHJ1ZTtcbiRncmlkLWNvbHVtbi1hbGlhczogJ2NvbHVtbnMnO1xuJGJsb2NrLWdyaWQtbWF4OiA4O1xuXG4vLyA0LiBCYXNlIFR5cG9ncmFwaHlcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kaGVhZGVyLWZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseTtcbiRoZWFkZXItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiRoZWFkZXItZm9udC1zdHlsZTogbm9ybWFsO1xuJGZvbnQtZmFtaWx5LW1vbm9zcGFjZTogQ29uc29sYXMsICdMaWJlcmF0aW9uIE1vbm8nLCBDb3VyaWVyLCBtb25vc3BhY2U7XG4kaGVhZGVyLWNvbG9yOiBpbmhlcml0O1xuJGhlYWRlci1saW5laGVpZ2h0OiAxLjQ7XG4kaGVhZGVyLW1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiRoZWFkZXItc3R5bGVzOiAoXG4gIHNtYWxsOiAoXG4gICAgJ2gxJzogKCdmb250LXNpemUnOiAyNCksXG4gICAgJ2gyJzogKCdmb250LXNpemUnOiAyMCksXG4gICAgJ2gzJzogKCdmb250LXNpemUnOiAxOSksXG4gICAgJ2g0JzogKCdmb250LXNpemUnOiAxOCksXG4gICAgJ2g1JzogKCdmb250LXNpemUnOiAxNyksXG4gICAgJ2g2JzogKCdmb250LXNpemUnOiAxNiksXG4gICksXG4gIG1lZGl1bTogKFxuICAgICdoMSc6ICgnZm9udC1zaXplJzogNDgpLFxuICAgICdoMic6ICgnZm9udC1zaXplJzogNDApLFxuICAgICdoMyc6ICgnZm9udC1zaXplJzogMzEpLFxuICAgICdoNCc6ICgnZm9udC1zaXplJzogMjUpLFxuICAgICdoNSc6ICgnZm9udC1zaXplJzogMjApLFxuICAgICdoNic6ICgnZm9udC1zaXplJzogMTYpLFxuICApLFxuKTtcbiRoZWFkZXItdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcbiRzbWFsbC1mb250LXNpemU6IDgwJTtcbiRoZWFkZXItc21hbGwtZm9udC1jb2xvcjogJG1lZGl1bS1ncmF5O1xuJHBhcmFncmFwaC1saW5laGVpZ2h0OiAxLjY7XG4kcGFyYWdyYXBoLW1hcmdpbi1ib3R0b206IDFyZW07XG4kcGFyYWdyYXBoLXRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG4kY29kZS1jb2xvcjogJGJsYWNrO1xuJGNvZGUtZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1tb25vc3BhY2U7XG4kY29kZS1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuJGNvZGUtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XG4kY29kZS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kY29kZS1wYWRkaW5nOiByZW0tY2FsYygyIDUgMSk7XG4kYW5jaG9yLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiRhbmNob3ItY29sb3ItaG92ZXI6IHNjYWxlLWNvbG9yKCRhbmNob3ItY29sb3IsICRsaWdodG5lc3M6IC0xNCUpO1xuJGFuY2hvci10ZXh0LWRlY29yYXRpb246IG5vbmU7XG4kYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3Zlcjogbm9uZTtcbiRoci13aWR0aDogJGdsb2JhbC13aWR0aDtcbiRoci1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kaHItbWFyZ2luOiByZW0tY2FsYygyMCkgYXV0bztcbiRsaXN0LWxpbmVoZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZWhlaWdodDtcbiRsaXN0LW1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcbiRsaXN0LXN0eWxlLXR5cGU6IGRpc2M7XG4kbGlzdC1zdHlsZS1wb3NpdGlvbjogb3V0c2lkZTtcbiRsaXN0LXNpZGUtbWFyZ2luOiAxLjI1cmVtO1xuJGxpc3QtbmVzdGVkLXNpZGUtbWFyZ2luOiAxLjI1cmVtO1xuJGRlZm5saXN0LW1hcmdpbi1ib3R0b206IDFyZW07XG4kZGVmbmxpc3QtdGVybS13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4kZGVmbmxpc3QtdGVybS1tYXJnaW4tYm90dG9tOiAwLjNyZW07XG4kYmxvY2txdW90ZS1jb2xvcjogJGRhcmstZ3JheTtcbiRibG9ja3F1b3RlLXBhZGRpbmc6IHJlbS1jYWxjKDkgMjAgMCAxOSk7XG4kYmxvY2txdW90ZS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kY2l0ZS1mb250LXNpemU6IHJlbS1jYWxjKDEzKTtcbiRjaXRlLWNvbG9yOiAkZGFyay1ncmF5O1xuJGNpdGUtcHNldWRvLWNvbnRlbnQ6ICdcXDIwMTQgXFwwMDIwJztcbiRrZXlzdHJva2UtZm9udDogJGZvbnQtZmFtaWx5LW1vbm9zcGFjZTtcbiRrZXlzdHJva2UtY29sb3I6ICRibGFjaztcbiRrZXlzdHJva2UtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XG4ka2V5c3Ryb2tlLXBhZGRpbmc6IHJlbS1jYWxjKDIgNCAwKTtcbiRrZXlzdHJva2UtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRhYmJyLXVuZGVybGluZTogMXB4IGRvdHRlZCAkYmxhY2s7XG5cbi8vIDUuIFR5cG9ncmFwaHkgSGVscGVyc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRsZWFkLWZvbnQtc2l6ZTogJGdsb2JhbC1mb250LXNpemUgKiAxLjI1O1xuJGxlYWQtbGluZWhlaWdodDogMS42O1xuJHN1YmhlYWRlci1saW5laGVpZ2h0OiAxLjQ7XG4kc3ViaGVhZGVyLWNvbG9yOiAkZGFyay1ncmF5O1xuJHN1YmhlYWRlci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuJHN1YmhlYWRlci1tYXJnaW4tdG9wOiAwLjJyZW07XG4kc3ViaGVhZGVyLW1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiRzdGF0LWZvbnQtc2l6ZTogMi41cmVtO1xuXG4vLyA2LiBBYmlkZVxuLy8gLS0tLS0tLS1cblxuJGFiaWRlLWlucHV0czogdHJ1ZTtcbiRhYmlkZS1sYWJlbHM6IHRydWU7XG4kaW5wdXQtYmFja2dyb3VuZC1pbnZhbGlkOiBnZXQtY29sb3IoYWxlcnQpO1xuJGZvcm0tbGFiZWwtY29sb3ItaW52YWxpZDogZ2V0LWNvbG9yKGFsZXJ0KTtcbiRpbnB1dC1lcnJvci1jb2xvcjogZ2V0LWNvbG9yKGFsZXJ0KTtcbiRpbnB1dC1lcnJvci1mb250LXNpemU6IHJlbS1jYWxjKDEyKTtcbiRpbnB1dC1lcnJvci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcblxuLy8gNy4gQWNjb3JkaW9uXG4vLyAtLS0tLS0tLS0tLS1cblxuJGFjY29yZGlvbi1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kYWNjb3JkaW9uLXBsdXNtaW51czogdHJ1ZTtcbiRhY2NvcmRpb24tdGl0bGUtZm9udC1zaXplOiByZW0tY2FsYygxMik7XG4kYWNjb3JkaW9uLWl0ZW0tY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuJGFjY29yZGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICRsaWdodC1ncmF5O1xuJGFjY29yZGlvbi1pdGVtLXBhZGRpbmc6IDEuMjVyZW0gMXJlbTtcbiRhY2NvcmRpb24tY29udGVudC1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kYWNjb3JkaW9uLWNvbnRlbnQtYm9yZGVyOiAxcHggc29saWQgJGxpZ2h0LWdyYXk7XG4kYWNjb3JkaW9uLWNvbnRlbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG4kYWNjb3JkaW9uLWNvbnRlbnQtcGFkZGluZzogMXJlbTtcblxuLy8gOC4gQWNjb3JkaW9uIE1lbnVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tXG5cbiRhY2NvcmRpb25tZW51LXBhZGRpbmc6ICRnbG9iYWwtbWVudS1wYWRkaW5nO1xuJGFjY29yZGlvbm1lbnUtbmVzdGVkLW1hcmdpbjogJGdsb2JhbC1tZW51LW5lc3RlZC1tYXJnaW47XG4kYWNjb3JkaW9ubWVudS1zdWJtZW51LXBhZGRpbmc6ICRhY2NvcmRpb25tZW51LXBhZGRpbmc7XG4kYWNjb3JkaW9ubWVudS1hcnJvd3M6IHRydWU7XG4kYWNjb3JkaW9ubWVudS1hcnJvdy1jb2xvcjogJHByaW1hcnktY29sb3I7XG4kYWNjb3JkaW9ubWVudS1pdGVtLWJhY2tncm91bmQ6IG51bGw7XG4kYWNjb3JkaW9ubWVudS1ib3JkZXI6IG51bGw7XG4kYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS1iYWNrZ3JvdW5kOiBudWxsO1xuJGFjY29yZGlvbi1zdWJtZW51LXRvZ2dsZS1ib3JkZXI6ICRhY2NvcmRpb25tZW51LWJvcmRlcjtcbiRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLXdpZHRoOiA0MHB4O1xuJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtaGVpZ2h0OiAkYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS13aWR0aDtcbiRhY2NvcmRpb25tZW51LWFycm93LXNpemU6IDZweDtcblxuLy8gOS4gQmFkZ2Vcbi8vIC0tLS0tLS0tXG5cbiRiYWRnZS1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiRiYWRnZS1jb2xvcjogJHdoaXRlO1xuJGJhZGdlLWNvbG9yLWFsdDogJGJsYWNrO1xuJGJhZGdlLXBhbGV0dGU6ICRmb3VuZGF0aW9uLXBhbGV0dGU7XG4kYmFkZ2UtcGFkZGluZzogMC4zZW07XG4kYmFkZ2UtbWlud2lkdGg6IDIuMWVtO1xuJGJhZGdlLWZvbnQtc2l6ZTogMC42cmVtO1xuXG4vLyAxMC4gQnJlYWRjcnVtYnNcbi8vIC0tLS0tLS0tLS0tLS0tLVxuXG4kYnJlYWRjcnVtYnMtbWFyZ2luOiAwIDAgJGdsb2JhbC1tYXJnaW4gMDtcbiRicmVhZGNydW1icy1pdGVtLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTEpO1xuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItY3VycmVudDogJGJsYWNrO1xuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItZGlzYWJsZWQ6ICRtZWRpdW0tZ3JheTtcbiRicmVhZGNydW1icy1pdGVtLW1hcmdpbjogMC43NXJlbTtcbiRicmVhZGNydW1icy1pdGVtLXVwcGVyY2FzZTogdHJ1ZTtcbiRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvcjogdHJ1ZTtcbiRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1pdGVtOiAnLyc7XG4kYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3ItaXRlbS1ydGw6ICdcXFxcJztcbiRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1jb2xvcjogJG1lZGl1bS1ncmF5O1xuXG4vLyAxMS4gQnV0dG9uXG4vLyAtLS0tLS0tLS0tXG5cbiRidXR0b24tZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4kYnV0dG9uLXBhZGRpbmc6IDAuODVlbSAxZW07XG4kYnV0dG9uLW1hcmdpbjogMCAwICRnbG9iYWwtbWFyZ2luIDA7XG4kYnV0dG9uLWZpbGw6IHNvbGlkO1xuJGJ1dHRvbi1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiRidXR0b24tYmFja2dyb3VuZC1ob3Zlcjogc2NhbGUtY29sb3IoJGJ1dHRvbi1iYWNrZ3JvdW5kLCAkbGlnaHRuZXNzOiAtMTUlKTtcbiRidXR0b24tY29sb3I6ICR3aGl0ZTtcbiRidXR0b24tY29sb3ItYWx0OiAkYmxhY2s7XG4kYnV0dG9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kYnV0dG9uLWhvbGxvdy1ib3JkZXItd2lkdGg6IDFweDtcbiRidXR0b24tc2l6ZXM6IChcbiAgdGlueTogMC42cmVtLFxuICBzbWFsbDogMC43NXJlbSxcbiAgZGVmYXVsdDogMC45cmVtLFxuICBsYXJnZTogMS4yNXJlbSxcbik7XG4kYnV0dG9uLXBhbGV0dGU6ICRmb3VuZGF0aW9uLXBhbGV0dGU7XG4kYnV0dG9uLW9wYWNpdHktZGlzYWJsZWQ6IDAuMjU7XG4kYnV0dG9uLWJhY2tncm91bmQtaG92ZXItbGlnaHRuZXNzOiAtMjAlO1xuJGJ1dHRvbi1ob2xsb3ctaG92ZXItbGlnaHRuZXNzOiAtNTAlO1xuJGJ1dHRvbi10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMjVzIGVhc2Utb3V0LCBjb2xvciAwLjI1cyBlYXNlLW91dDtcblxuLy8gMTIuIEJ1dHRvbiBHcm91cFxuLy8gLS0tLS0tLS0tLS0tLS0tLVxuXG4kYnV0dG9uZ3JvdXAtbWFyZ2luOiAxcmVtO1xuJGJ1dHRvbmdyb3VwLXNwYWNpbmc6IDFweDtcbiRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvcjogJy5idXR0b24nO1xuJGJ1dHRvbmdyb3VwLWV4cGFuZC1tYXg6IDY7XG4kYnV0dG9uZ3JvdXAtcmFkaXVzLW9uLWVhY2g6IHRydWU7XG5cbi8vIDEzLiBDYWxsb3V0XG4vLyAtLS0tLS0tLS0tLVxuXG4kY2FsbG91dC1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kY2FsbG91dC1iYWNrZ3JvdW5kLWZhZGU6IDg1JTtcbiRjYWxsb3V0LWJvcmRlcjogMXB4IHNvbGlkIHJnYmEoJGJsYWNrLCAwLjI1KTtcbiRjYWxsb3V0LW1hcmdpbjogMCAwIDFyZW0gMDtcbiRjYWxsb3V0LXBhZGRpbmc6IDFyZW07XG4kY2FsbG91dC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuJGNhbGxvdXQtZm9udC1jb2xvci1hbHQ6ICRib2R5LWJhY2tncm91bmQ7XG4kY2FsbG91dC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJGNhbGxvdXQtbGluay10aW50OiAzMCU7XG5cbi8vIDE0LiBDYXJkXG4vLyAtLS0tLS0tLVxuXG4kY2FyZC1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kY2FyZC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuJGNhcmQtZGl2aWRlci1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcbiRjYXJkLWJvcmRlcjogMXB4IHNvbGlkICRsaWdodC1ncmF5O1xuJGNhcmQtc2hhZG93OiBub25lO1xuJGNhcmQtYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kY2FyZC1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmc7XG4kY2FyZC1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcblxuLy8gMTUuIENsb3NlIEJ1dHRvblxuLy8gLS0tLS0tLS0tLS0tLS0tLVxuXG4kY2xvc2VidXR0b24tcG9zaXRpb246IHJpZ2h0IHRvcDtcbiRjbG9zZWJ1dHRvbi1vZmZzZXQtaG9yaXpvbnRhbDogKFxuICBzbWFsbDogMC42NnJlbSxcbiAgbWVkaXVtOiAxcmVtLFxuKTtcbiRjbG9zZWJ1dHRvbi1vZmZzZXQtdmVydGljYWw6IChcbiAgc21hbGw6IDAuMzNlbSxcbiAgbWVkaXVtOiAwLjVyZW0sXG4pO1xuJGNsb3NlYnV0dG9uLXNpemU6IChcbiAgc21hbGw6IDEuNWVtLFxuICBtZWRpdW06IDJlbSxcbik7XG4kY2xvc2VidXR0b24tbGluZWhlaWdodDogMTtcbiRjbG9zZWJ1dHRvbi1jb2xvcjogJGRhcmstZ3JheTtcbiRjbG9zZWJ1dHRvbi1jb2xvci1ob3ZlcjogJGJsYWNrO1xuXG4vLyAxNi4gRHJpbGxkb3duXG4vLyAtLS0tLS0tLS0tLS0tXG5cbiRkcmlsbGRvd24tdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGxpbmVhcjtcbiRkcmlsbGRvd24tYXJyb3dzOiB0cnVlO1xuJGRyaWxsZG93bi1wYWRkaW5nOiAkZ2xvYmFsLW1lbnUtcGFkZGluZztcbiRkcmlsbGRvd24tbmVzdGVkLW1hcmdpbjogMDtcbiRkcmlsbGRvd24tYmFja2dyb3VuZDogJHdoaXRlO1xuJGRyaWxsZG93bi1zdWJtZW51LXBhZGRpbmc6ICRkcmlsbGRvd24tcGFkZGluZztcbiRkcmlsbGRvd24tc3VibWVudS1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kZHJpbGxkb3duLWFycm93LWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiRkcmlsbGRvd24tYXJyb3ctc2l6ZTogNnB4O1xuXG4vLyAxNy4gRHJvcGRvd25cbi8vIC0tLS0tLS0tLS0tLVxuXG4kZHJvcGRvd24tcGFkZGluZzogMXJlbTtcbiRkcm9wZG93bi1iYWNrZ3JvdW5kOiAkYm9keS1iYWNrZ3JvdW5kO1xuJGRyb3Bkb3duLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRkcm9wZG93bi1mb250LXNpemU6IDFyZW07XG4kZHJvcGRvd24td2lkdGg6IDMwMHB4O1xuJGRyb3Bkb3duLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kZHJvcGRvd24tc2l6ZXM6IChcbiAgdGlueTogMTAwcHgsXG4gIHNtYWxsOiAyMDBweCxcbiAgbGFyZ2U6IDQwMHB4LFxuKTtcblxuLy8gMTguIERyb3Bkb3duIE1lbnVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tXG5cbiRkcm9wZG93bm1lbnUtYXJyb3dzOiB0cnVlO1xuJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvcjogJGFuY2hvci1jb2xvcjtcbiRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZTogNnB4O1xuJGRyb3Bkb3dubWVudS1hcnJvdy1wYWRkaW5nOiAxLjVyZW07XG4kZHJvcGRvd25tZW51LW1pbi13aWR0aDogMjAwcHg7XG4kZHJvcGRvd25tZW51LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRkcm9wZG93bm1lbnUtc3VibWVudS1iYWNrZ3JvdW5kOiAkZHJvcGRvd25tZW51LWJhY2tncm91bmQ7XG4kZHJvcGRvd25tZW51LXBhZGRpbmc6ICRnbG9iYWwtbWVudS1wYWRkaW5nO1xuJGRyb3Bkb3dubWVudS1uZXN0ZWQtbWFyZ2luOiAwO1xuJGRyb3Bkb3dubWVudS1zdWJtZW51LXBhZGRpbmc6ICRkcm9wZG93bm1lbnUtcGFkZGluZztcbiRkcm9wZG93bm1lbnUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJGRyb3Bkb3duLW1lbnUtaXRlbS1jb2xvci1hY3RpdmU6IGdldC1jb2xvcihwcmltYXJ5KTtcbiRkcm9wZG93bi1tZW51LWl0ZW0tYmFja2dyb3VuZC1hY3RpdmU6IHRyYW5zcGFyZW50O1xuXG4vLyAxOS4gRmxleGJveCBVdGlsaXRpZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kZmxleC1zb3VyY2Utb3JkZXJpbmctY291bnQ6IDY7XG4kZmxleGJveC1yZXNwb25zaXZlLWJyZWFrcG9pbnRzOiB0cnVlO1xuXG4vLyAyMC4gRm9ybXNcbi8vIC0tLS0tLS0tLVxuXG4kZmllbGRzZXQtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJGZpZWxkc2V0LXBhZGRpbmc6IHJlbS1jYWxjKDIwKTtcbiRmaWVsZHNldC1tYXJnaW46IHJlbS1jYWxjKDE4IDApO1xuJGxlZ2VuZC1wYWRkaW5nOiByZW0tY2FsYygwIDMpO1xuJGZvcm0tc3BhY2luZzogcmVtLWNhbGMoMTYpO1xuJGhlbHB0ZXh0LWNvbG9yOiAkYmxhY2s7XG4kaGVscHRleHQtZm9udC1zaXplOiByZW0tY2FsYygxMyk7XG4kaGVscHRleHQtZm9udC1zdHlsZTogaXRhbGljO1xuJGlucHV0LXByZWZpeC1jb2xvcjogJGJsYWNrO1xuJGlucHV0LXByZWZpeC1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcbiRpbnB1dC1wcmVmaXgtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJGlucHV0LXByZWZpeC1wYWRkaW5nOiAxcmVtO1xuJGZvcm0tbGFiZWwtY29sb3I6ICRibGFjaztcbiRmb3JtLWxhYmVsLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuJGZvcm0tbGFiZWwtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiRmb3JtLWxhYmVsLWxpbmUtaGVpZ2h0OiAxLjg7XG4kc2VsZWN0LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRzZWxlY3QtdHJpYW5nbGUtY29sb3I6ICRkYXJrLWdyYXk7XG4kc2VsZWN0LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kaW5wdXQtY29sb3I6ICRibGFjaztcbiRpbnB1dC1wbGFjZWhvbGRlci1jb2xvcjogJG1lZGl1bS1ncmF5O1xuJGlucHV0LWZvbnQtZmFtaWx5OiBpbmhlcml0O1xuJGlucHV0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpO1xuJGlucHV0LWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4kaW5wdXQtbGluZS1oZWlnaHQ6ICRnbG9iYWwtbGluZWhlaWdodDtcbiRpbnB1dC1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kaW5wdXQtYmFja2dyb3VuZC1mb2N1czogJHdoaXRlO1xuJGlucHV0LWJhY2tncm91bmQtZGlzYWJsZWQ6ICRsaWdodC1ncmF5O1xuJGlucHV0LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRpbnB1dC1ib3JkZXItZm9jdXM6IDFweCBzb2xpZCAkZGFyay1ncmF5O1xuJGlucHV0LXBhZGRpbmc6ICRmb3JtLXNwYWNpbmcgLyAyO1xuJGlucHV0LXNoYWRvdzogaW5zZXQgMCAxcHggMnB4IHJnYmEoJGJsYWNrLCAwLjEpO1xuJGlucHV0LXNoYWRvdy1mb2N1czogMCAwIDVweCAkbWVkaXVtLWdyYXk7XG4kaW5wdXQtY3Vyc29yLWRpc2FibGVkOiBub3QtYWxsb3dlZDtcbiRpbnB1dC10cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuNXMsIGJvcmRlci1jb2xvciAwLjI1cyBlYXNlLWluLW91dDtcbiRpbnB1dC1udW1iZXItc3Bpbm5lcnM6IHRydWU7XG4kaW5wdXQtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRmb3JtLWJ1dHRvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyAyMS4gTGFiZWxcbi8vIC0tLS0tLS0tLVxuXG4kbGFiZWwtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4kbGFiZWwtY29sb3I6ICR3aGl0ZTtcbiRsYWJlbC1jb2xvci1hbHQ6ICRibGFjaztcbiRsYWJlbC1wYWxldHRlOiAkZm91bmRhdGlvbi1wYWxldHRlO1xuJGxhYmVsLWZvbnQtc2l6ZTogMC44cmVtO1xuJGxhYmVsLXBhZGRpbmc6IDAuMzMzMzNyZW0gMC41cmVtO1xuJGxhYmVsLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbi8vIDIyLiBNZWRpYSBPYmplY3Rcbi8vIC0tLS0tLS0tLS0tLS0tLS1cblxuJG1lZGlhb2JqZWN0LW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuJG1lZGlhb2JqZWN0LXNlY3Rpb24tcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nO1xuJG1lZGlhb2JqZWN0LWltYWdlLXdpZHRoLXN0YWNrZWQ6IDEwMCU7XG5cbi8vIDIzLiBNZW51XG4vLyAtLS0tLS0tLVxuXG4kbWVudS1tYXJnaW46IDA7XG4kbWVudS1uZXN0ZWQtbWFyZ2luOiAkZ2xvYmFsLW1lbnUtbmVzdGVkLW1hcmdpbjtcbiRtZW51LWl0ZW1zLXBhZGRpbmc6ICRnbG9iYWwtbWVudS1wYWRkaW5nO1xuJG1lbnUtc2ltcGxlLW1hcmdpbjogMXJlbTtcbiRtZW51LWl0ZW0tY29sb3ItYWN0aXZlOiAkd2hpdGU7XG4kbWVudS1pdGVtLWJhY2tncm91bmQtYWN0aXZlOiBnZXQtY29sb3IocHJpbWFyeSk7XG4kbWVudS1pY29uLXNwYWNpbmc6IDAuMjVyZW07XG4kbWVudS1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICRsaWdodC1ncmF5O1xuJG1lbnUtc3RhdGUtYmFjay1jb21wYXQ6IHRydWU7XG4kbWVudS1jZW50ZXJlZC1iYWNrLWNvbXBhdDogdHJ1ZTtcblxuLy8gMjQuIE1ldGVyXG4vLyAtLS0tLS0tLS1cblxuJG1ldGVyLWhlaWdodDogMXJlbTtcbiRtZXRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJG1ldGVyLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcbiRtZXRlci1maWxsLWdvb2Q6ICRzdWNjZXNzLWNvbG9yO1xuJG1ldGVyLWZpbGwtbWVkaXVtOiAkd2FybmluZy1jb2xvcjtcbiRtZXRlci1maWxsLWJhZDogJGFsZXJ0LWNvbG9yO1xuXG4vLyAyNS4gT2ZmLWNhbnZhc1xuLy8gLS0tLS0tLS0tLS0tLS1cblxuJG9mZmNhbnZhcy1zaXplOiAyNTBweDtcbiRvZmZjYW52YXMtdmVydGljYWwtc2l6ZTogMjUwcHg7XG4kb2ZmY2FudmFzLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xuJG9mZmNhbnZhcy1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoJGJsYWNrLCAwLjcpO1xuJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctc2l6ZTogMjBweDtcbiRvZmZjYW52YXMtaW5uZXItc2hhZG93LWNvbG9yOiByZ2JhKCRibGFjaywgMC4yNSk7XG4kb2ZmY2FudmFzLW92ZXJsYXktemluZGV4OiAxMTtcbiRvZmZjYW52YXMtcHVzaC16aW5kZXg6IDEyO1xuJG9mZmNhbnZhcy1vdmVybGFwLXppbmRleDogMTM7XG4kb2ZmY2FudmFzLXJldmVhbC16aW5kZXg6IDEyO1xuJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aDogMC41cztcbiRvZmZjYW52YXMtdHJhbnNpdGlvbi10aW1pbmc6IGVhc2U7XG4kb2ZmY2FudmFzLWZpeGVkLXJldmVhbDogdHJ1ZTtcbiRvZmZjYW52YXMtZXhpdC1iYWNrZ3JvdW5kOiByZ2JhKCR3aGl0ZSwgMC4yNSk7XG4kbWFpbmNvbnRlbnQtY2xhc3M6ICdvZmYtY2FudmFzLWNvbnRlbnQnO1xuXG4vLyAyNi4gT3JiaXRcbi8vIC0tLS0tLS0tLVxuXG4kb3JiaXQtYnVsbGV0LWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcbiRvcmJpdC1idWxsZXQtYmFja2dyb3VuZC1hY3RpdmU6ICRkYXJrLWdyYXk7XG4kb3JiaXQtYnVsbGV0LWRpYW1ldGVyOiAxLjJyZW07XG4kb3JiaXQtYnVsbGV0LW1hcmdpbjogMC4xcmVtO1xuJG9yYml0LWJ1bGxldC1tYXJnaW4tdG9wOiAwLjhyZW07XG4kb3JiaXQtYnVsbGV0LW1hcmdpbi1ib3R0b206IDAuOHJlbTtcbiRvcmJpdC1jYXB0aW9uLWJhY2tncm91bmQ6IHJnYmEoJGJsYWNrLCAwLjUpO1xuJG9yYml0LWNhcHRpb24tcGFkZGluZzogMXJlbTtcbiRvcmJpdC1jb250cm9sLWJhY2tncm91bmQtaG92ZXI6IHJnYmEoJGJsYWNrLCAwLjUpO1xuJG9yYml0LWNvbnRyb2wtcGFkZGluZzogMXJlbTtcbiRvcmJpdC1jb250cm9sLXppbmRleDogMTA7XG5cbi8vIDI3LiBQYWdpbmF0aW9uXG4vLyAtLS0tLS0tLS0tLS0tLVxuXG4kcGFnaW5hdGlvbi1mb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiRwYWdpbmF0aW9uLW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuJHBhZ2luYXRpb24taXRlbS1jb2xvcjogJGJsYWNrO1xuJHBhZ2luYXRpb24taXRlbS1wYWRkaW5nOiByZW0tY2FsYygzIDEwKTtcbiRwYWdpbmF0aW9uLWl0ZW0tc3BhY2luZzogcmVtLWNhbGMoMSk7XG4kcGFnaW5hdGlvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkbGlnaHQtZ3JheTtcbiRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1jdXJyZW50OiAkcHJpbWFyeS1jb2xvcjtcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3ItY3VycmVudDogJHdoaXRlO1xuJHBhZ2luYXRpb24taXRlbS1jb2xvci1kaXNhYmxlZDogJG1lZGl1bS1ncmF5O1xuJHBhZ2luYXRpb24tZWxsaXBzaXMtY29sb3I6ICRibGFjaztcbiRwYWdpbmF0aW9uLW1vYmlsZS1pdGVtczogZmFsc2U7XG4kcGFnaW5hdGlvbi1tb2JpbGUtY3VycmVudC1pdGVtOiBmYWxzZTtcbiRwYWdpbmF0aW9uLWFycm93czogdHJ1ZTtcblxuLy8gMjguIFByb2dyZXNzIEJhclxuLy8gLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvZ3Jlc3MtaGVpZ2h0OiAxcmVtO1xuJHByb2dyZXNzLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcbiRwcm9ncmVzcy1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcbiRwcm9ncmVzcy1tZXRlci1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiRwcm9ncmVzcy1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyAyOS4gUHJvdG90eXBlIEFycm93XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtYXJyb3ctZGlyZWN0aW9uczogKFxuICBkb3duLFxuICB1cCxcbiAgcmlnaHQsXG4gIGxlZnRcbik7XG4kcHJvdG90eXBlLWFycm93LXNpemU6IDAuNDM3NXJlbTtcbiRwcm90b3R5cGUtYXJyb3ctY29sb3I6ICRibGFjaztcblxuLy8gMzAuIFByb3RvdHlwZSBCb3JkZXItQm94XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1ib3JkZXItYm94LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcblxuLy8gMzEuIFByb3RvdHlwZSBCb3JkZXItTm9uZVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLWJvcmRlci1ub25lLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcblxuLy8gMzIuIFByb3RvdHlwZSBCb3JkZXJlZFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLWJvcmRlcmVkLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtYm9yZGVyLXdpZHRoOiByZW0tY2FsYygxKTtcbiRwcm90b3R5cGUtYm9yZGVyLXR5cGU6IHNvbGlkO1xuJHByb3RvdHlwZS1ib3JkZXItY29sb3I6ICRtZWRpdW0tZ3JheTtcblxuLy8gMzMuIFByb3RvdHlwZSBEaXNwbGF5XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1kaXNwbGF5LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtZGlzcGxheTogKFxuICBpbmxpbmUsXG4gIGlubGluZS1ibG9jayxcbiAgYmxvY2ssXG4gIHRhYmxlLFxuICB0YWJsZS1jZWxsXG4pO1xuXG4vLyAzNC4gUHJvdG90eXBlIEZvbnQtU3R5bGluZ1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1mb250LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtd2lkZS1sZXR0ZXItc3BhY2luZzogcmVtLWNhbGMoNCk7XG4kcHJvdG90eXBlLWZvbnQtbm9ybWFsOiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4kcHJvdG90eXBlLWZvbnQtYm9sZDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcblxuLy8gMzUuIFByb3RvdHlwZSBMaXN0LVN0eWxlLVR5cGVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtbGlzdC1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLXN0eWxlLXR5cGUtdW5vcmRlcmVkOiAoXG4gIGRpc2MsXG4gIGNpcmNsZSxcbiAgc3F1YXJlXG4pO1xuJHByb3RvdHlwZS1zdHlsZS10eXBlLW9yZGVyZWQ6IChcbiAgZGVjaW1hbCxcbiAgbG93ZXItYWxwaGEsXG4gIGxvd2VyLWxhdGluLFxuICBsb3dlci1yb21hbixcbiAgdXBwZXItYWxwaGEsXG4gIHVwcGVyLWxhdGluLFxuICB1cHBlci1yb21hblxuKTtcblxuLy8gMzYuIFByb3RvdHlwZSBPdmVyZmxvd1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLW92ZXJmbG93LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtb3ZlcmZsb3c6IChcbiAgdmlzaWJsZSxcbiAgaGlkZGVuLFxuICBzY3JvbGxcbik7XG5cbi8vIDM3LiBQcm90b3R5cGUgUG9zaXRpb25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1wb3NpdGlvbi1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLXBvc2l0aW9uOiAoXG4gIHN0YXRpYyxcbiAgcmVsYXRpdmUsXG4gIGFic29sdXRlLFxuICBmaXhlZFxuKTtcbiRwcm90b3R5cGUtcG9zaXRpb24tei1pbmRleDogOTc1O1xuXG4vLyAzOC4gUHJvdG90eXBlIFJvdW5kZWRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLXJvdW5kZWQtYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuJHByb3RvdHlwZS1ib3JkZXItcmFkaXVzOiByZW0tY2FsYygzKTtcblxuLy8gMzkuIFByb3RvdHlwZSBTZXBhcmF0b3Jcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtc2VwYXJhdG9yLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtc2VwYXJhdG9yLWFsaWduOiBjZW50ZXI7XG4kcHJvdG90eXBlLXNlcGFyYXRvci1oZWlnaHQ6IHJlbS1jYWxjKDIpO1xuJHByb3RvdHlwZS1zZXBhcmF0b3Itd2lkdGg6IDNyZW07XG4kcHJvdG90eXBlLXNlcGFyYXRvci1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiRwcm90b3R5cGUtc2VwYXJhdG9yLW1hcmdpbi10b3A6ICRnbG9iYWwtbWFyZ2luO1xuXG4vLyA0MC4gUHJvdG90eXBlIFNoYWRvd1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1zaGFkb3ctYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuJHByb3RvdHlwZS1ib3gtc2hhZG93OiAwIDJweCA1cHggMCByZ2JhKDAsMCwwLC4xNiksXG4gICAgICAgICAgICAgICAgICAgICAgIDAgMnB4IDEwcHggMCByZ2JhKDAsMCwwLC4xMik7XG5cbi8vIDQxLiBQcm90b3R5cGUgU2l6aW5nXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLXNpemluZy1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLXNpemluZzogKFxuICB3aWR0aCxcbiAgaGVpZ2h0XG4pO1xuJHByb3RvdHlwZS1zaXplczogKFxuICAyNTogMjUlLFxuICA1MDogNTAlLFxuICA3NTogNzUlLFxuICAxMDA6IDEwMCVcbik7XG5cbi8vIDQyLiBQcm90b3R5cGUgU3BhY2luZ1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtc3BhY2luZy1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLXNwYWNlcnMtY291bnQ6IDM7XG5cbi8vIDQzLiBQcm90b3R5cGUgVGV4dC1EZWNvcmF0aW9uXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLWRlY29yYXRpb24tYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuJHByb3RvdHlwZS10ZXh0LWRlY29yYXRpb246IChcbiAgb3ZlcmxpbmUsXG4gIHVuZGVybGluZSxcbiAgbGluZS10aHJvdWdoLFxuKTtcblxuLy8gNDQuIFByb3RvdHlwZSBUZXh0LVRyYW5zZm9ybWF0aW9uXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS10cmFuc2Zvcm1hdGlvbi1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLXRleHQtdHJhbnNmb3JtYXRpb246IChcbiAgbG93ZXJjYXNlLFxuICB1cHBlcmNhc2UsXG4gIGNhcGl0YWxpemVcbik7XG5cbi8vIDQ1LiBQcm90b3R5cGUgVGV4dC1VdGlsaXRpZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS11dGlsaXRpZXMtYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuJHByb3RvdHlwZS10ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblxuLy8gNDYuIFJlc3BvbnNpdmUgRW1iZWRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRyZXNwb25zaXZlLWVtYmVkLW1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDE2KTtcbiRyZXNwb25zaXZlLWVtYmVkLXJhdGlvczogKFxuICBkZWZhdWx0OiA0IGJ5IDMsXG4gIHdpZGVzY3JlZW46IDE2IGJ5IDksXG4pO1xuXG4vLyA0Ny4gUmV2ZWFsXG4vLyAtLS0tLS0tLS0tXG5cbiRyZXZlYWwtYmFja2dyb3VuZDogJHdoaXRlO1xuJHJldmVhbC13aWR0aDogNjAwcHg7XG4kcmV2ZWFsLW1heC13aWR0aDogJGdsb2JhbC13aWR0aDtcbiRyZXZlYWwtcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nO1xuJHJldmVhbC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kcmV2ZWFsLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kcmV2ZWFsLXppbmRleDogMTAwNTtcbiRyZXZlYWwtb3ZlcmxheS1iYWNrZ3JvdW5kOiByZ2JhKCRibGFjaywgMC40NSk7XG5cbi8vIDQ4LiBTbGlkZXJcbi8vIC0tLS0tLS0tLS1cblxuJHNsaWRlci13aWR0aC12ZXJ0aWNhbDogMC41cmVtO1xuJHNsaWRlci10cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbiRzbGlkZXItaGVpZ2h0OiAwLjVyZW07XG4kc2xpZGVyLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xuJHNsaWRlci1maWxsLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcbiRzbGlkZXItaGFuZGxlLWhlaWdodDogMS40cmVtO1xuJHNsaWRlci1oYW5kbGUtd2lkdGg6IDEuNHJlbTtcbiRzbGlkZXItaGFuZGxlLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuJHNsaWRlci1vcGFjaXR5LWRpc2FibGVkOiAwLjI1O1xuJHNsaWRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyA0OS4gU3dpdGNoXG4vLyAtLS0tLS0tLS0tXG5cbiRzd2l0Y2gtYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5O1xuJHN3aXRjaC1iYWNrZ3JvdW5kLWFjdGl2ZTogJHByaW1hcnktY29sb3I7XG4kc3dpdGNoLWhlaWdodDogMnJlbTtcbiRzd2l0Y2gtaGVpZ2h0LXRpbnk6IDEuNXJlbTtcbiRzd2l0Y2gtaGVpZ2h0LXNtYWxsOiAxLjc1cmVtO1xuJHN3aXRjaC1oZWlnaHQtbGFyZ2U6IDIuNXJlbTtcbiRzd2l0Y2gtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRzd2l0Y2gtbWFyZ2luOiAkZ2xvYmFsLW1hcmdpbjtcbiRzd2l0Y2gtcGFkZGxlLWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRzd2l0Y2gtcGFkZGxlLW9mZnNldDogMC4yNXJlbTtcbiRzd2l0Y2gtcGFkZGxlLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kc3dpdGNoLXBhZGRsZS10cmFuc2l0aW9uOiBhbGwgMC4yNXMgZWFzZS1vdXQ7XG5cbi8vIDUwLiBUYWJsZVxuLy8gLS0tLS0tLS0tXG5cbiR0YWJsZS1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kdGFibGUtY29sb3Itc2NhbGU6IDUlO1xuJHRhYmxlLWJvcmRlcjogMXB4IHNvbGlkIHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpO1xuJHRhYmxlLXBhZGRpbmc6IHJlbS1jYWxjKDggMTAgMTApO1xuJHRhYmxlLWhvdmVyLXNjYWxlOiAyJTtcbiR0YWJsZS1yb3ctaG92ZXI6IGRhcmtlbigkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWhvdmVyLXNjYWxlKTtcbiR0YWJsZS1yb3ctc3RyaXBlLWhvdmVyOiBkYXJrZW4oJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSArICR0YWJsZS1ob3Zlci1zY2FsZSk7XG4kdGFibGUtaXMtc3RyaXBlZDogdHJ1ZTtcbiR0YWJsZS1zdHJpcGVkLWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpO1xuJHRhYmxlLXN0cmlwZTogZXZlbjtcbiR0YWJsZS1oZWFkLWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUgLyAyKTtcbiR0YWJsZS1oZWFkLXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1oZWFkLWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSk7XG4kdGFibGUtZm9vdC1iYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlKTtcbiR0YWJsZS1mb290LXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1mb290LWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSk7XG4kdGFibGUtaGVhZC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuJHRhYmxlLWZvb3QtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiRzaG93LWhlYWRlci1mb3Itc3RhY2tlZDogZmFsc2U7XG4kdGFibGUtc3RhY2stYnJlYWtwb2ludDogbWVkaXVtO1xuXG4vLyA1MS4gVGFic1xuLy8gLS0tLS0tLS1cblxuJHRhYi1tYXJnaW46IDA7XG4kdGFiLWJhY2tncm91bmQ6ICR3aGl0ZTtcbiR0YWItY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuJHRhYi1iYWNrZ3JvdW5kLWFjdGl2ZTogJGxpZ2h0LWdyYXk7XG4kdGFiLWFjdGl2ZS1jb2xvcjogJHByaW1hcnktY29sb3I7XG4kdGFiLWl0ZW0tZm9udC1zaXplOiByZW0tY2FsYygxMik7XG4kdGFiLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJHdoaXRlO1xuJHRhYi1pdGVtLXBhZGRpbmc6IDEuMjVyZW0gMS41cmVtO1xuJHRhYi1leHBhbmQtbWF4OiA2O1xuJHRhYi1jb250ZW50LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiR0YWItY29udGVudC1ib3JkZXI6ICRsaWdodC1ncmF5O1xuJHRhYi1jb250ZW50LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuJHRhYi1jb250ZW50LXBhZGRpbmc6IDFyZW07XG5cbi8vIDUyLiBUaHVtYm5haWxcbi8vIC0tLS0tLS0tLS0tLS1cblxuJHRodW1ibmFpbC1ib3JkZXI6IHNvbGlkIDRweCAkd2hpdGU7XG4kdGh1bWJuYWlsLW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuJHRodW1ibmFpbC1zaGFkb3c6IDAgMCAwIDFweCByZ2JhKCRibGFjaywgMC4yKTtcbiR0aHVtYm5haWwtc2hhZG93LWhvdmVyOiAwIDAgNnB4IDFweCByZ2JhKCRwcmltYXJ5LWNvbG9yLCAwLjUpO1xuJHRodW1ibmFpbC10cmFuc2l0aW9uOiBib3gtc2hhZG93IDIwMG1zIGVhc2Utb3V0O1xuJHRodW1ibmFpbC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyA1My4gVGl0bGUgQmFyXG4vLyAtLS0tLS0tLS0tLS0tXG5cbiR0aXRsZWJhci1iYWNrZ3JvdW5kOiAkYmxhY2s7XG4kdGl0bGViYXItY29sb3I6ICR3aGl0ZTtcbiR0aXRsZWJhci1wYWRkaW5nOiAwLjVyZW07XG4kdGl0bGViYXItdGV4dC1mb250LXdlaWdodDogYm9sZDtcbiR0aXRsZWJhci1pY29uLWNvbG9yOiAkd2hpdGU7XG4kdGl0bGViYXItaWNvbi1jb2xvci1ob3ZlcjogJG1lZGl1bS1ncmF5O1xuJHRpdGxlYmFyLWljb24tc3BhY2luZzogMC4yNXJlbTtcblxuLy8gNTQuIFRvb2x0aXBcbi8vIC0tLS0tLS0tLS0tXG5cbiRoYXMtdGlwLWN1cnNvcjogaGVscDtcbiRoYXMtdGlwLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuJGhhcy10aXAtYm9yZGVyLWJvdHRvbTogZG90dGVkIDFweCAkZGFyay1ncmF5O1xuJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrO1xuJHRvb2x0aXAtY29sb3I6ICR3aGl0ZTtcbiR0b29sdGlwLXBhZGRpbmc6IDAuNzVyZW07XG4kdG9vbHRpcC1tYXgtd2lkdGg6IDEwcmVtO1xuJHRvb2x0aXAtZm9udC1zaXplOiAkc21hbGwtZm9udC1zaXplO1xuJHRvb2x0aXAtcGlwLXdpZHRoOiAwLjc1cmVtO1xuJHRvb2x0aXAtcGlwLWhlaWdodDogJHRvb2x0aXAtcGlwLXdpZHRoICogMC44NjY7XG4kdG9vbHRpcC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyA1NS4gVG9wIEJhclxuLy8gLS0tLS0tLS0tLS1cblxuJHRvcGJhci1wYWRkaW5nOiAwLjVyZW07XG4kdG9wYmFyLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xuJHRvcGJhci1zdWJtZW51LWJhY2tncm91bmQ6ICR0b3BiYXItYmFja2dyb3VuZDtcbiR0b3BiYXItdGl0bGUtc3BhY2luZzogMC41cmVtIDFyZW0gMC41cmVtIDA7XG4kdG9wYmFyLWlucHV0LXdpZHRoOiAyMDBweDtcbiR0b3BiYXItdW5zdGFjay1icmVha3BvaW50OiBtZWRpdW07XG5cbi8vIDU2LiBYeSBHcmlkXG4vLyAtLS0tLS0tLS0tLVxuXG4keHktZ3JpZDogdHJ1ZTtcbiRncmlkLWNvbnRhaW5lcjogJGdsb2JhbC13aWR0aDtcbiRncmlkLWNvbHVtbnM6IDEyO1xuJGdyaWQtbWFyZ2luLWd1dHRlcnM6IChcbiAgc21hbGw6IDIwcHgsXG4gIG1lZGl1bTogMzBweFxuKTtcbiRncmlkLXBhZGRpbmctZ3V0dGVyczogJGdyaWQtbWFyZ2luLWd1dHRlcnM7XG4kZ3JpZC1jb250YWluZXItcGFkZGluZzogJGdyaWQtcGFkZGluZy1ndXR0ZXJzO1xuJGdyaWQtY29udGFpbmVyLW1heDogJGdsb2JhbC13aWR0aDtcbiRibG9jay1ncmlkLW1heDogODtcblxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG5cbi8vLyBDcmVhdGVzIGFuIGlubmVyIGJveC1zaGFkb3cgZm9yIG9ubHkgb25lIHNpZGVcbi8vLyBcbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaWRlIC0gU2lkZSB0aGUgc2hhZG93IGlzIHN1cHBvc2VkIHRvIGFwcGVhci4gQ2FuIGJlIGB0b3BgLCBgbGVmdGAsIGByaWdodGAgb3IgYGJvdHRvbWAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzaXplIC0gV2lkdGggZm9yIHRoZSB0YXJnZXQgc2lkZS5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgLSBDb2xvciBvZiB0aGUgc2hhZG93LlxuQG1peGluIGlubmVyLXNpZGUtc2hhZG93KFxuICAkc2lkZTogYm90dG9tLFxuICAkc2l6ZTogMjBweCxcbiAgJGNvbG9yOiByZ2JhKCRibGFjaywgMC4yNSlcbikge1xuXG4gICRoZWxwZXI6IHJvdW5kKCRzaXplICogMC42NSk7XG5cbiAgQGlmICgkc2lkZSA9PSB0b3ApIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwICRoZWxwZXIgJHNpemUgKC0xKSokaGVscGVyICRjb2xvcjtcbiAgfVxuICBAZWxzZWlmICgkc2lkZSA9PSBsZWZ0KSB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgJGhlbHBlciAwICRzaXplICgtMSkqJGhlbHBlciAkY29sb3I7XG4gIH1cbiAgQGVsc2VpZiAoJHNpZGUgPT0gcmlnaHQpIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAoLTEpKiRoZWxwZXIgMCAkc2l6ZSAoLTEpKiRoZWxwZXIgJGNvbG9yO1xuICB9XG4gIEBlbHNlaWYgKCRzaWRlID09IGJvdHRvbSkge1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgKC0xKSokaGVscGVyICRzaXplICgtMSkqJGhlbHBlciAkY29sb3I7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBDU1MgdHJpYW5nbGUsIHdoaWNoIGNhbiBiZSB1c2VkIGZvciBkcm9wZG93biBhcnJvd3MsIGRyb3Bkb3duIHBpcHMsIGFuZCBtb3JlLiBVc2UgdGhpcyBtaXhpbiBpbnNpZGUgYSBgJjo6YmVmb3JlYCBvciBgJjo6YWZ0ZXJgIHNlbGVjdG9yLCB0byBhdHRhY2ggdGhlIHRyaWFuZ2xlIHRvIGFuIGV4aXN0aW5nIGVsZW1lbnQuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHRyaWFuZ2xlLXNpemUgLSBXaWR0aCBvZiB0aGUgdHJpYW5nbGUuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJHRyaWFuZ2xlLWNvbG9yIC0gQ29sb3Igb2YgdGhlIHRyaWFuZ2xlLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHRyaWFuZ2xlLWRpcmVjdGlvbiAtIERpcmVjdGlvbiB0aGUgdHJpYW5nbGUgcG9pbnRzLiBDYW4gYmUgYHVwYCwgYHJpZ2h0YCwgYGRvd25gLCBvciBgbGVmdGAuXG5AbWl4aW4gY3NzLXRyaWFuZ2xlKFxuICAkdHJpYW5nbGUtc2l6ZSxcbiAgJHRyaWFuZ2xlLWNvbG9yLFxuICAkdHJpYW5nbGUtZGlyZWN0aW9uXG4pIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG5cbiAgYm9yZGVyOiBpbnNldCAkdHJpYW5nbGUtc2l6ZTtcblxuICBjb250ZW50OiAnJztcblxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gZG93bikge1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiAkdHJpYW5nbGUtY29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIH1cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IHVwKSB7XG4gICAgYm9yZGVyLXRvcC13aWR0aDogMDtcbiAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICR0cmlhbmdsZS1jb2xvcjtcbiAgfVxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gcmlnaHQpIHtcbiAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yO1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSBsZWZ0KSB7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICR0cmlhbmdsZS1jb2xvciB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIG1lbnUgaWNvbiB3aXRoIGEgc2V0IHdpZHRoLCBoZWlnaHQsIG51bWJlciBvZiBiYXJzLCBhbmQgY29sb3JzLiBUaGUgbWl4aW4gdXNlcyB0aGUgaGVpZ2h0IG9mIHRoZSBpY29uIGFuZCB0aGUgd2VpZ2h0IG9mIHRoZSBiYXJzIHRvIGRldGVybWluZSBzcGFjaW5nLiA8ZGl2IGNsYXNzPVwiZG9jcy1leGFtcGxlLWJ1cmdlclwiPjwvZGl2PlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYmxhY2tdIC0gQ29sb3IgdG8gdXNlIGZvciB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3ItaG92ZXIgWyRkYXJrLWdyYXldIC0gQ29sb3IgdG8gdXNlIHdoZW4gdGhlIGljb24gaXMgaG92ZXJlZCBvdmVyLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggWzIwcHhdIC0gV2lkdGggb2YgdGhlIGljb24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRoZWlnaHQgWzE2cHhdIC0gSGVpZ2h0IG9mIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2VpZ2h0IFsycHhdIC0gSGVpZ2h0IG9mIGluZGl2aWR1YWwgYmFycyBpbiB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhcnMgWzNdIC0gTnVtYmVyIG9mIGJhcnMgaW4gdGhlIGljb24uXG5AbWl4aW4gaGFtYnVyZ2VyKFxuICAkY29sb3I6ICRibGFjayxcbiAgJGNvbG9yLWhvdmVyOiAkZGFyay1ncmF5LFxuICAkd2lkdGg6IDIwcHgsXG4gICRoZWlnaHQ6IDE2cHgsXG4gICR3ZWlnaHQ6IDJweCxcbiAgJGJhcnM6IDNcbikge1xuICAvLyBib3gtc2hhZG93IENTUyBvdXRwdXRcbiAgJHNoYWRvdzogKCk7XG4gICRob3Zlci1zaGFkb3c6ICgpO1xuXG4gIC8vIFNwYWNpbmcgYmV0d2VlbiBiYXJzIGlzIGNhbGN1bGF0ZWQgYmFzZWQgb24gdGhlIHRvdGFsIGhlaWdodCBvZiB0aGUgaWNvbiBhbmQgdGhlIHdlaWdodCBvZiBlYWNoIGJhclxuICAkc3BhY2luZzogKCRoZWlnaHQgLSAoJHdlaWdodCAqICRiYXJzKSkgLyAoJGJhcnMgLSAxKTtcblxuICBAaWYgdW5pdCgkc3BhY2luZykgPT0gJ3B4JyB7XG4gICAgJHNwYWNpbmc6IGZsb29yKCRzcGFjaW5nKTtcbiAgfVxuXG4gIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJGJhcnMge1xuICAgICRvZmZzZXQ6ICgkd2VpZ2h0ICsgJHNwYWNpbmcpICogKCRpIC0gMSk7XG4gICAgJHNoYWRvdzogYXBwZW5kKCRzaGFkb3csIDAgJG9mZnNldCAwICRjb2xvciwgY29tbWEpO1xuICB9XG5cbiAgLy8gSWNvbiBjb250YWluZXJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHdpZHRoOiAkd2lkdGg7XG4gIGhlaWdodDogJGhlaWdodDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gIC8vIEljb24gYmFyc1xuICAmOjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuXG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAkd2VpZ2h0O1xuXG4gICAgYmFja2dyb3VuZDogJGNvbG9yO1xuICAgIGJveC1zaGFkb3c6ICRzaGFkb3c7XG5cbiAgICBjb250ZW50OiAnJztcbiAgfVxuXG4gIC8vIEhvdmVyIHN0YXRlXG4gIEBpZiAkY29sb3ItaG92ZXIge1xuICAgIC8vIEdlbmVyYXRlIENTU1xuICAgIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJGJhcnMge1xuICAgICAgJG9mZnNldDogKCR3ZWlnaHQgKyAkc3BhY2luZykgKiAoJGkgLSAxKTtcbiAgICAgICRob3Zlci1zaGFkb3c6IGFwcGVuZCgkaG92ZXItc2hhZG93LCAwICRvZmZzZXQgMCAkY29sb3ItaG92ZXIsIGNvbW1hKTtcbiAgICB9XG5cbiAgICAmOmhvdmVyOjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkY29sb3ItaG92ZXI7XG4gICAgICBib3gtc2hhZG93OiAkaG92ZXItc2hhZG93O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBhIGRvd253YXJkLWZhY2luZyB0cmlhbmdsZSBhcyBhIGJhY2tncm91bmQgaW1hZ2UgdG8gYW4gZWxlbWVudC4gVGhlIGltYWdlIGlzIGZvcm1hdHRlZCBhcyBhbiBTVkcsIG1ha2luZyBpdCBlYXN5IHRvIGNoYW5nZSB0aGUgY29sb3IuIEJlY2F1c2UgSW50ZXJuZXQgRXhwbG9yZXIgZG9lc24ndCBzdXBwb3J0IGVuY29kZWQgU1ZHcyBhcyBiYWNrZ3JvdW5kIGltYWdlcywgYSBQTkcgZmFsbGJhY2sgaXMgYWxzbyBpbmNsdWRlZC5cbi8vLyBUaGVyZSBhcmUgdHdvIFBORyBmYWxsYmFja3M6IGEgYmxhY2sgdHJpYW5nbGUgYW5kIGEgd2hpdGUgdHJpYW5nbGUuIFRoZSBvbmUgdXNlZCBkZXBlbmRzIG9uIHRoZSBsaWdodG5lc3Mgb2YgdGhlIGlucHV0IGNvbG9yLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYmxhY2tdIC0gQ29sb3IgdG8gdXNlIGZvciB0aGUgdHJpYW5nbGUuXG5AbWl4aW4gYmFja2dyb3VuZC10cmlhbmdsZSgkY29sb3I6ICRibGFjaykge1xuICAkcmdiOiAncmdiJTI4I3tyb3VuZChyZWQoJGNvbG9yKSl9LCAje3JvdW5kKGdyZWVuKCRjb2xvcikpfSwgI3tyb3VuZChibHVlKCRjb2xvcikpfSUyOSc7XG5cbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZlcnNpb249JzEuMScgd2lkdGg9JzMyJyBoZWlnaHQ9JzI0JyB2aWV3Qm94PScwIDAgMzIgMjQnPjxwb2x5Z29uIHBvaW50cz0nMCwwIDMyLDAgMTYsMjQnIHN0eWxlPSdmaWxsOiAjeyRyZ2J9Jz48L3BvbHlnb24+PC9zdmc+XCIpO1xuXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MFxcMCkge1xuICAgIEBpZiBsaWdodG5lc3MoJGNvbG9yKSA8IDYwJSB7XG4gICAgICAvLyBXaGl0ZSB0cmlhbmdsZVxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUNBQUFBQVlDQVlBQUFDYlUvODBBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQUlwSlJFRlVlTnJFa2NrTmdEQU1CQmZSa0V0ME9iUkJCZHNHWFVEZ21RZks0WGhIMm04Y3pRQUF5MjdSM3RzdzRRZmUyeDh1T082b1lMYjZHbE9vcjNHRitzd1VSQU9tVUorUnd0RUpzOVd2VEdFWXhCWHFJMU1RQVpoQ2ZVUUtSekRNVmorVHdyQUlWNmp2U1VFa1lBcjFMU2tjeVRCYi9WK0tZZlg3eEFldXNxM3NMRHRHSDNrRUdBQ1BXSWZsTlpmaFJRQUFBQUJKUlU1RXJrSmdnZz09Jyk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIC8vIEJsYWNrIHRyaWFuZ2xlXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQ0FBQUFBWUNBWUFBQUNiVS84MEFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBTUJKUkVGVWVOckVsbHNPaENBTVJWc3pDOUlselU3S0NtVkhUSnNvTVdZTVV0cHl2OUJnYnVYUUI1WlNkZ0JZWVk0eWNnQml2azhLWUZzUU1mTWlUVEJQNG8zblV6Q0t6T2FiTEpiTHkyL2czMWV2R2tBZ2luUjQvWmVnS0g1cVgzYkpDc2NBM3QweDNrZ081dFFGeWhoRmY1MHhScUZMYnlNVU5KUXpneWpHUy93Z0Nwdktxa1JCcHVXckU0VjlkKzFFNGRQVVhxSWcxMDdTUU9FLzJEUlF4TXdURHlnSUluVkRFVDlUM2xDb2ovNmovVkNtR2paT2wybEtwWjhBQXdEUVA3eklpbURHRlFBQUFBQkpSVTVFcmtKZ2dnPT0nKTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFwcGxpZXMgdGhlIG1pY3JvIGNsZWFyZml4IGhhY2sgcG9wdWxhcml6ZWQgYnkgTmljb2xhcyBHYWxsYWdoZXIuIEluY2x1ZGUgdGhpcyBtaXhpbiBvbiBhIGNvbnRhaW5lciBpZiBpdHMgY2hpbGRyZW4gYXJlIGFsbCBmbG9hdGVkLCB0byBnaXZlIHRoZSBjb250YWluZXIgYSBwcm9wZXIgaGVpZ2h0LlxuLy8vIFRoZSBjbGVhcmZpeCBpcyBhdWdtZW50ZWQgd2l0aCBzcGVjaWZpYyBzdHlsZXMgdG8gcHJldmVudCBib3JkZXJzIGluIGZsZXhib3ggZW52aXJvbm1lbnRzXG4vLy8gQGxpbmsgaHR0cDovL25pY29sYXNnYWxsYWdoZXIuY29tL21pY3JvLWNsZWFyZml4LWhhY2svIE1pY3JvIENsZWFyZml4IEhhY2tcbi8vLyBAbGluayBodHRwOi8vZGFuaXNhZGVzaWduZXIuY29tL2Jsb2cvZmxleGJveC1jbGVhci1maXgtcHNldWRvLWVsZW1lbnRzLyBGbGV4Ym94IGZpeFxuQG1peGluIGNsZWFyZml4IHtcbiAgJjo6YmVmb3JlLFxuICAmOjphZnRlciB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY29udGVudDogJyAnO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgb3JkZXI6IDE7XG4gICAgfVxuICB9XG5cbiAgJjo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICB9XG59XG5cbi8vLyBBZGRzIENTUyBmb3IgYSBcInF1YW50aXR5IHF1ZXJ5XCIgc2VsZWN0b3IgdGhhdCBhdXRvbWF0aWNhbGx5IHNpemVzIGVsZW1lbnRzIGJhc2VkIG9uIGhvdyBtYW55IHRoZXJlIGFyZSBpbnNpZGUgYSBjb250YWluZXIuXG4vLy8gQGxpbmsgaHR0cDovL2FsaXN0YXBhcnQuY29tL2FydGljbGUvcXVhbnRpdHktcXVlcmllcy1mb3ItY3NzIFF1YW50aXR5IFF1ZXJpZXMgZm9yIENTU1xuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRtYXggLSBNYXhpbXVtIG51bWJlciBvZiBpdGVtcyB0byBkZXRlY3QuIFRoZSBoaWdoZXIgdGhpcyBudW1iZXIgaXMsIHRoZSBtb3JlIENTUyB0aGF0J3MgcmVxdWlyZWQgdG8gY292ZXIgZWFjaCBudW1iZXIgb2YgaXRlbXMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZWxlbSBbbGldIC0gVGFnIHRvIHVzZSBmb3Igc2libGluZyBzZWxlY3RvcnMuXG5AbWl4aW4gYXV0by13aWR0aCgkbWF4LCAkZWxlbTogbGkpIHtcbiAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkbWF4IHtcbiAgICAmOm50aC1sYXN0LWNoaWxkKCN7JGl9KTpmaXJzdC1jaGlsZCxcbiAgICAmOm50aC1sYXN0LWNoaWxkKCN7JGl9KTpmaXJzdC1jaGlsZCB+ICN7JGVsZW19IHtcbiAgICAgIHdpZHRoOiBwZXJjZW50YWdlKDEgLyAkaSk7XG4gICAgfVxuICB9XG59XG5cbi8vLyBSZW1vdmVzIHRoZSBmb2N1cyByaW5nIGFyb3VuZCBhbiBlbGVtZW50IHdoZW4gYSBtb3VzZSBpbnB1dCBpcyBkZXRlY3RlZC5cbkBtaXhpbiBkaXNhYmxlLW1vdXNlLW91dGxpbmUge1xuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gJiB7XG4gICAgb3V0bGluZTogMDtcbiAgfVxufVxuXG4vLy8gTWFrZXMgYW4gZWxlbWVudCB2aXN1YWxseSBoaWRkZW4sIGJ1dCBzdGlsbCBhY2Nlc3NpYmxlIHRvIGtleWJvYXJkcyBhbmQgYXNzaXN0aXZlIGRldmljZXMuXG4vLy8gQGxpbmsgaHR0cDovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eSBIaWRpbmcgQ29udGVudCBmb3IgQWNjZXNzaWJpbGl0eVxuLy8vIEBsaW5rIGh0dHA6Ly9odWdvZ2lyYXVkZWwuY29tLzIwMTYvMTAvMTMvY3NzLWhpZGUtYW5kLXNlZWsvXG5AbWl4aW4gZWxlbWVudC1pbnZpc2libGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgd2lkdGg6IDFweDtcbiAgaGVpZ2h0OiAxcHg7XG4gIHBhZGRpbmc6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNsaXA6IHJlY3QoMCwwLDAsMCk7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGNsaXAtcGF0aDogaW5zZXQoNTAlKTtcbiAgYm9yZGVyOiAwO1xufVxuXG4vLy8gUmV2ZXJzZXMgdGhlIENTUyBvdXRwdXQgY3JlYXRlZCBieSB0aGUgYGVsZW1lbnQtaW52aXNpYmxlKClgIG1peGluLlxuQG1peGluIGVsZW1lbnQtaW52aXNpYmxlLW9mZiB7XG4gIHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDtcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIGNsaXA6IGF1dG87XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIGNsaXAtcGF0aDogbm9uZTtcbn1cblxuLy8vIFZlcnRpY2FsbHkgY2VudGVycyB0aGUgZWxlbWVudCBpbnNpZGUgb2YgaXRzIGZpcnN0IG5vbi1zdGF0aWMgcGFyZW50LFxuLy8vIEBsaW5rIGh0dHA6Ly93d3cuc2l0ZXBvaW50LmNvbS9jZW50ZXJpbmctd2l0aC1zYXNzLyBDZW50ZXJpbmcgV2l0aCBTYXNzXG5AbWl4aW4gdmVydGljYWwtY2VudGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xufVxuXG4vLy8gSG9yaXpvbnRhbGx5IGNlbnRlcnMgdGhlIGVsZW1lbnQgaW5zaWRlIG9mIGl0cyBmaXJzdCBub24tc3RhdGljIHBhcmVudCxcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xuQG1peGluIGhvcml6b250YWwtY2VudGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbn1cblxuLy8vIEFic29sdXRlbHkgY2VudGVycyB0aGUgZWxlbWVudCBpbnNpZGUgb2YgaXRzIGZpcnN0IG5vbi1zdGF0aWMgcGFyZW50LFxuLy8vIEBsaW5rIGh0dHA6Ly93d3cuc2l0ZXBvaW50LmNvbS9jZW50ZXJpbmctd2l0aC1zYXNzLyBDZW50ZXJpbmcgV2l0aCBTYXNzXG5AbWl4aW4gYWJzb2x1dGUtY2VudGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbn1cblxuLy8vIEl0ZXJhdGVzIHRocm91Z2ggYnJlYWtwb2ludHMgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnQtY2xhc3Nlc2AgYW5kIHByaW50cyB0aGUgQ1NTIGluc2lkZSB0aGUgbWl4aW4gYXQgZWFjaCBicmVha3BvaW50J3MgbWVkaWEgcXVlcnkuIFVzZSB0aGlzIHdpdGggdGhlIGdyaWQsIG9yIGFueSBvdGhlciBjb21wb25lbnQgdGhhdCBoYXMgcmVzcG9uc2l2ZSBjbGFzc2VzLlxuLy8vXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkc21hbGwgW3RydWVdIC0gSWYgYGZhbHNlYCwgdGhlIG1peGluIHdpbGwgc2tpcCB0aGUgYHNtYWxsYCBicmVha3BvaW50LiBVc2UgdGhpcyB3aXRoIGNvbXBvbmVudHMgdGhhdCBkb24ndCBwcmVmaXggY2xhc3NlcyB3aXRoIGBzbWFsbC1gLCBvbmx5IGBtZWRpdW0tYCBhbmQgdXAuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkYXV0by1pbnNlcnQtYnJlYWtwb2ludHMgW3RydWVdIC0gSWYgYGZhbHNlYCwgdGhlIG1peGluIHdpbGwgaXRlcmF0ZSBvdmVyIGJyZWFrcG9pbnRzIHdpdGhvdXQgZG9pbmcgdGhlIG1lZGlhIHF1ZXJ5IGl0c2VsZi4gVXNlZnVsIGZvciBtb3JlIGNvbXBsZXggbWVkaWEgcXVlcnkgZ2VuZXJhdGlvbiBhcyBpbiB0aGUgbWFyZ2luIGdyaWQuXG5AbWl4aW4gLXpmLWVhY2gtYnJlYWtwb2ludCgkc21hbGw6IHRydWUsICRhdXRvLWluc2VydC1icmVha3BvaW50czogdHJ1ZSkge1xuICAkbGlzdDogJGJyZWFrcG9pbnQtY2xhc3NlcztcblxuICBAaWYgbm90ICRzbWFsbCB7XG4gICAgJGxpc3Q6IHNsLXJlbW92ZSgkbGlzdCwgJC16Zi16ZXJvLWJyZWFrcG9pbnQpO1xuICB9XG5cbiAgQGVhY2ggJG5hbWUgaW4gJGxpc3Qge1xuICAgICQtemYtc2l6ZTogJG5hbWUgIWdsb2JhbDtcblxuICAgIEBpZiAkYXV0by1pbnNlcnQtYnJlYWtwb2ludHMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBHZW5lcmF0ZSB0aGUgYEBjb250ZW50YCBwYXNzZWQgdG8gdGhlIG1peGluIHdpdGggYSB2YWx1ZSBgJC16Zi1icC12YWx1ZWAgcmVsYXRlZCB0byBhIGJyZWFrcG9pbnQsIGRlcGVuZGluZyBvbiB0aGUgYCRuYW1lYCBwYXJhbWV0ZXI6XG4vLy8gLSBGb3IgYSBzaW5nbGUgdmFsdWUsIGAkLXpmLWJwLXZhbHVlYCBpcyB0aGlzIHZhbHVlLlxuLy8vIC0gRm9yIGEgYnJlYWtwb2ludCBuYW1lLCBgJC16Zi1icC12YWx1ZWAgaXMgdGhlIGNvcnJlc3BvbmRpbmcgYnJlYWtwb2ludCB2YWx1ZSBpbiBgJG1hcGAuXG4vLy8gLSBGb3IgXCJhdXRvXCIsIGAkLXpmLWJwLXZhbHVlYCBpcyB0aGUgY29ycmVzcG9uZGluZyBicmVha3BvaW50IHZhbHVlIGluIGAkbWFwYCBhbmQgaXMgcGFzc2VkIHRvIGBAY29udGVudGAsIHdoaWNoIGlzIG1hZGUgcmVzcG9uc2l2ZSBmb3IgZWFjaCBicmVha3BvaW50IG9mIGAkbWFwYC5cbi8vLyBAcGFyYW0ge051bWJlcnxBcnJheXxLZXl3b3JkfSAkbmFtZSBbYXV0b10gLSBTaW5nbGUgdmFsdWUsIGJyZWFrcG9pbnQgbmFtZSwgb3IgbGlzdCBvZiBicmVha3BvaW50IG5hbWVzIHRvIHVzZS4gXCJhdXRvXCIgYnkgZGVmYXVsdC5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRtYXAgLSBNYXAgb2YgYnJlYWtwb2ludHMgYW5kIHZhbHVlcyBvciBzaW5nbGUgdmFsdWUgdG8gdXNlLlxuQG1peGluIC16Zi1icmVha3BvaW50LXZhbHVlKFxuICAkbmFtZTogYXV0byxcbiAgJG1hcDogbnVsbFxuKSB7XG4gIEBpZiAkbmFtZSA9PSBhdXRvIGFuZCB0eXBlLW9mKCRtYXApID09ICdtYXAnIHtcbiAgICAvLyBcImF1dG9cIlxuICAgIEBlYWNoICRrLCAkdiBpbiAkbWFwIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGspIHtcbiAgICAgICAgQGluY2x1ZGUgLXpmLWJyZWFrcG9pbnQtdmFsdWUoJHYsICRtYXApIHtcbiAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgLy8gYnJlYWtwb2ludCBuYW1lXG4gICAgQGlmIHR5cGUtb2YoJG5hbWUpID09ICdzdHJpbmcnIHtcbiAgICAgICRuYW1lOiAtemYtZ2V0LWJwLXZhbCgkbWFwLCAkbmFtZSk7XG4gICAgfVxuXG4gICAgLy8gYnJlYWtwb2ludCB2YWx1ZVxuICAgICQtemYtYnAtdmFsdWU6ICRuYW1lICFnbG9iYWw7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGdyaWRcbi8vLy9cblxuLy8vIE91dHB1dHMgQ1NTIGNsYXNzZXMgZm9yIHRoZSBncmlkLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuQG1peGluIGZvdW5kYXRpb24tZ3JpZChcbiAgJHJvdzogJ3JvdycsXG4gICRjb2x1bW46ICdjb2x1bW4nLFxuICAkY29sdW1uLXJvdzogJ2NvbHVtbi1yb3cnLFxuICAkZ3V0dGVyOiAnZ3V0dGVyJyxcbiAgJHB1c2g6ICdwdXNoJyxcbiAgJHB1bGw6ICdwdWxsJyxcbiAgJGNlbnRlcjogJ2NlbnRlcmVkJyxcbiAgJHVuY2VudGVyOiAndW5jZW50ZXJlZCcsXG4gICRjb2xsYXBzZTogJ2NvbGxhcHNlJyxcbiAgJHVuY29sbGFwc2U6ICd1bmNvbGxhcHNlJyxcbiAgJG9mZnNldDogJ29mZnNldCcsXG4gICRlbmQ6ICdlbmQnLFxuICAkZXhwYW5kZWQ6ICdleHBhbmRlZCcsXG4gICRibG9jazogJ2Jsb2NrJ1xuKSB7XG4gIC8vIFJvd1xuICAuI3skcm93fSB7XG4gICAgQGluY2x1ZGUgZ3JpZC1yb3c7XG5cbiAgICAvLyBDb2xsYXBzaW5nXG4gICAgJi4jeyRjb2xsYXBzZX0ge1xuICAgICAgPiAuI3skY29sdW1ufSB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sLWNvbGxhcHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIE5lc3RpbmdcbiAgICAmIC4jeyRyb3d9IHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtcm93LW5lc3QoJGdyaWQtY29sdW1uLWd1dHRlcik7XG5cbiAgICAgICYuI3skY29sbGFwc2V9IHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBFeHBhbmRlZCAoZnVsbC13aWR0aCkgcm93XG4gICAgJi4jeyRleHBhbmRlZH0ge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1yb3ctc2l6ZShleHBhbmQpO1xuXG4gICAgICAuI3skcm93fSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpub3QoLiN7JGV4cGFuZGVkfSkgLiN7JHJvd30ge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1yb3ctc2l6ZShleHBhbmQpO1xuICAgIH1cblxuICAgIEBpZiB0eXBlLW9mKCRncmlkLWNvbHVtbi1ndXR0ZXIpID09ICdtYXAnIHtcbiAgICAgIC8vIFN0YXRpYyAodW5yZXNwb25zaXZlKSByb3cgZ3V0dGVyc1xuICAgICAgLy9cbiAgICAgIEBlYWNoICRicmVha3BvaW50LCAkdmFsdWUgaW4gJGdyaWQtY29sdW1uLWd1dHRlciB7XG4gICAgICAgICYuI3skZ3V0dGVyfS0jeyRicmVha3BvaW50fSB7XG4gICAgICAgICAgPiAuI3skY29sdW1ufSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBncmlkLWNvbC1ndXR0ZXIoJHZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBDb2x1bW5cbiAgLiN7JGNvbHVtbn0ge1xuICAgIEBpbmNsdWRlIGdyaWQtY29sO1xuXG4gICAgQGlmICRncmlkLWNvbHVtbi1hbGlnbi1lZGdlIHtcbiAgICAgICYuI3skZW5kfSB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sLWVuZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBDb2x1bW4gcm93XG4gIC8vIFRoZSBkb3VibGUgLnJvdyBjbGFzcyBpcyBuZWVkZWQgdG8gYnVtcCB1cCB0aGUgc3BlY2lmaWNpdHlcbiAgLiN7JGNvbHVtbn0uI3skcm93fS4jeyRyb3d9IHtcbiAgICBmbG9hdDogbm9uZTtcbiAgfVxuXG4gIC8vIFRvIHByb3Blcmx5IG5lc3QgYSBjb2x1bW4gcm93LCBwYWRkaW5nIGFuZCBtYXJnaW4gaXMgcmVtb3ZlZFxuICAuI3skcm93fSAuI3skY29sdW1ufS4jeyRyb3d9LiN7JHJvd30ge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgfVxuXG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQge1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1uLWNvdW50IHtcbiAgICAgIC8vIENvbHVtbiB3aWR0aFxuICAgICAgLiN7JC16Zi1zaXplfS0jeyRpfSB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sLXNpemUoJGkpO1xuICAgICAgfVxuXG4gICAgICAvLyBTb3VyY2Ugb3JkZXJpbmdcbiAgICAgIEBpZiAkaSA8ICRncmlkLWNvbHVtbi1jb3VudCB7XG4gICAgICAgIC4jeyQtemYtc2l6ZX0tI3skcHVzaH0tI3skaX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGdyaWQtY29sLXBvcygkaSk7XG4gICAgICAgIH1cblxuICAgICAgICAuI3skLXpmLXNpemV9LSN7JHB1bGx9LSN7JGl9IHtcbiAgICAgICAgICBAaW5jbHVkZSBncmlkLWNvbC1wb3MoLSRpKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBPZmZzZXRzXG4gICAgICAkbzogJGkgLSAxO1xuXG4gICAgICAuI3skLXpmLXNpemV9LSN7JG9mZnNldH0tI3skb30ge1xuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbC1vZmYoJG8pO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEJsb2NrIGdyaWRcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRibG9jay1ncmlkLW1heCB7XG4gICAgICAuI3skLXpmLXNpemV9LXVwLSN7JGl9IHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1sYXlvdXQoJGksICcuI3skY29sdW1ufScpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJlc3BvbnNpdmUgY29sbGFwc2luZ1xuICAgIC4jeyQtemYtc2l6ZX0tI3skY29sbGFwc2V9IHtcbiAgICAgID4gLiN7JGNvbHVtbn0geyBAaW5jbHVkZSBncmlkLWNvbC1jb2xsYXBzZTsgfVxuXG4gICAgICAuI3skcm93fSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLiN7JGV4cGFuZGVkfS4jeyRyb3d9IC4jeyQtemYtc2l6ZX0tI3skY29sbGFwc2V9LiN7JHJvd30ge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgfVxuXG4gICAgLiN7JC16Zi1zaXplfS0jeyR1bmNvbGxhcHNlfSB7XG4gICAgICA+IC4jeyRjb2x1bW59IHsgQGluY2x1ZGUgZ3JpZC1jb2wtZ3V0dGVyKCQtemYtc2l6ZSk7IH1cbiAgICB9XG5cbiAgICAvLyBQb3NpdGlvbmluZ1xuICAgIC4jeyQtemYtc2l6ZX0tI3skY2VudGVyfSB7XG4gICAgICBAaW5jbHVkZSBncmlkLWNvbC1wb3MoY2VudGVyKTtcbiAgICB9XG5cbiAgICAvLyBHdXR0ZXIgYWRqdXN0bWVudFxuICAgIC4jeyQtemYtc2l6ZX0tI3skdW5jZW50ZXJ9LFxuICAgIC4jeyQtemYtc2l6ZX0tI3skcHVzaH0tMCxcbiAgICAuI3skLXpmLXNpemV9LSN7JHB1bGx9LTAge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1jb2wtdW5wb3M7XG4gICAgfVxuICB9XG5cbiAgLy8gQmxvY2sgZ3JpZCBjb2x1bW5zXG4gIC4jeyRjb2x1bW59LSN7JGJsb2NrfSB7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tbWFyZ2luO1xuICB9XG5cbiAgQGlmICRjb2x1bW4gPT0gJ2NvbHVtbicgYW5kIGhhcy12YWx1ZSgkZ3JpZC1jb2x1bW4tYWxpYXMpIHtcbiAgICAuI3skZ3JpZC1jb2x1bW4tYWxpYXN9IHtcbiAgICAgIC8vIHNhc3MtbGludDpkaXNhYmxlLWJsb2NrIHBsYWNlaG9sZGVyLWluLWV4dGVuZFxuICAgICAgQGV4dGVuZCAuY29sdW1uO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gQ2hhbmdlIHRoZSBiZWhhdmlvciBvZiBjb2x1bW5zIGRlZmluZWQgaW5zaWRlIHRoaXMgbWl4aW4gdG8gdXNlIGEgZGlmZmVyZW50IGNvbHVtbiBjb3VudC5cbi8vLyBAY29udGVudFxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRjb2x1bW5zIC0gTnVtYmVyIG9mIGNvbHVtbnMgdG8gdXNlLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHJvb3QgW2ZhbHNlXVxuLy8vICAgSWYgYGZhbHNlYCwgc2VsZWN0b3JzIGluc2lkZSB0aGlzIG1peGluIHdpbGwgbmVzdCBpbnNpZGUgdGhlIHBhcmVudCBzZWxlY3Rvci5cbi8vLyAgIElmIGB0cnVlYCwgc2VsZWN0b3JzIHdpbGwgbm90IG5lc3QuXG5AbWl4aW4gZ3JpZC1jb250ZXh0KFxuICAkY29sdW1ucyxcbiAgJHJvb3Q6IGZhbHNlXG4pIHtcbiAgLy8gU3RvcmUgdGhlIGN1cnJlbnQgY29sdW1uIGNvdW50IHNvIGl0IGNhbiBiZSByZS1zZXQgbGF0ZXJcbiAgJG9sZC1ncmlkLWNvbHVtbi1jb3VudDogJGdyaWQtY29sdW1uLWNvdW50O1xuICAkZ3JpZC1jb2x1bW4tY291bnQ6ICRjb2x1bW5zICFnbG9iYWw7XG5cbiAgQGlmICRyb290IHtcbiAgICBAYXQtcm9vdCB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG5cbiAgLy8gUmVzdG9yZSB0aGUgb2xkIGNvbHVtbiBjb3VudFxuICAkZ3JpZC1jb2x1bW4tY291bnQ6ICRvbGQtZ3JpZC1jb2x1bW4tY291bnQgIWdsb2JhbDtcbn1cblxuLy8vIENyZWF0ZXMgYSBncmlkIHJvdy5cbi8vLyBAY29udGVudFxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRjb2x1bW5zIFtudWxsXSAtIENvbHVtbiBjb3VudCBmb3IgdGhpcyByb3cuIGBudWxsYCB3aWxsIHVzZSB0aGUgZGVmYXVsdCBjb2x1bW4gY291bnQuXG4vLy8gQHBhcmFtIHtLZXl3b3Jkc30gJGJlaGF2aW9yIFtudWxsXVxuLy8vICAgTW9kaWZpY2F0aW9ucyB0byB0aGUgZGVmYXVsdCBncmlkIHN0eWxlcy4gYG5lc3RgIGluZGljYXRlcyB0aGUgcm93IHdpbGwgYmUgcGxhY2VkIGluc2lkZSBhbm90aGVyIHJvdy4gYGNvbGxhcHNlYCBpbmRpY2F0ZXMgdGhhdCB0aGUgY29sdW1ucyBpbnNpZGUgdGhpcyByb3cgd2lsbCBub3QgaGF2ZSBwYWRkaW5nLiBgbmVzdCBjb2xsYXBzZWAgY29tYmluZXMgYm90aCBiZWhhdmlvcnMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHNpemUgWyRncmlkLXJvdy13aWR0aF0gTWF4aW11bSBzaXplIG9mIHRoZSByb3cuIFNldCB0byBgZXhwYW5kYCB0byBtYWtlIHRoZSByb3cgdGFraW5nIHRoZSBmdWxsIHdpZHRoLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGNmIFt0cnVlXSAtIFdoZXRoZXIgb3Igbm90IHRvIGluY2x1ZGUgYSBjbGVhcmZpeC5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIEd1dHRlciBtYXAgb3Igc2luZ2xlIHZhbHVlIHRvIHVzZSB3aGVuIGludmVydGluZyBtYXJnaW5zLiBSZXNwb25zaXZlIGd1dHRlciBzZXR0aW5ncyBieSBkZWZhdWx0LlxuQG1peGluIGdyaWQtcm93KFxuICAkY29sdW1uczogbnVsbCxcbiAgJGJlaGF2aW9yOiBudWxsLFxuICAkc2l6ZTogJGdyaWQtcm93LXdpZHRoLFxuICAkY2Y6IHRydWUsXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgJG1hcmdpbjogYXV0bztcblxuICBAaWYgaW5kZXgoJGJlaGF2aW9yLCBuZXN0KSAhPSBudWxsIHtcbiAgICBAaW5jbHVkZSBncmlkLXJvdy1uZXN0KCRndXR0ZXJzKTtcblxuICAgIEBpZiBpbmRleCgkYmVoYXZpb3IsIGNvbGxhcHNlKSAhPSBudWxsIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQGluY2x1ZGUgZ3JpZC1yb3ctc2l6ZSgkc2l6ZSk7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG5cbiAgQGlmICRjZiB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIH1cblxuICBAaWYgJGNvbHVtbnMgIT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb250ZXh0KCRjb2x1bW5zKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEludmVydHMgdGhlIG1hcmdpbnMgb2YgYSByb3cgdG8gbmVzdCBpdCBpbnNpZGUgb2YgYSBjb2x1bW4uXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIEd1dHRlciBtYXAgb3Igc2luZ2xlIHZhbHVlIHRvIHVzZSB3aGVuIGludmVydGluZyBtYXJnaW5zLiBSZXNwb25zaXZlIGd1dHRlciBzZXR0aW5ncyBieSBkZWZhdWx0LlxuQG1peGluIGdyaWQtcm93LW5lc3QoJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXIpIHtcbiAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCB7XG4gICAgJG1hcmdpbjogcmVtLWNhbGMoLXpmLWdldC1icC12YWwoJGd1dHRlcnMsICQtemYtc2l6ZSkpIC8gMiAqIC0xO1xuXG4gICAgbWFyZ2luLXJpZ2h0OiAkbWFyZ2luO1xuICAgIG1hcmdpbi1sZWZ0OiAkbWFyZ2luO1xuICB9XG59XG5cbi8vLyBTZXQgYSBncmlkIHJvdyBzaXplXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkc2l6ZSBbJGdyaWQtcm93LXdpZHRoXSBNYXhpbXVtIHNpemUgb2YgdGhlIHJvdy4gU2V0IHRvIGBleHBhbmRgIHRvIG1ha2UgdGhlIHJvdyB0YWtpbmcgdGhlIGZ1bGwgd2lkdGguXG5AbWl4aW4gZ3JpZC1yb3ctc2l6ZSgkc2l6ZTogJGdyaWQtcm93LXdpZHRoKSB7XG4gIEBpZiAkc2l6ZSA9PSBleHBhbmQge1xuICAgICRzaXplOiBub25lO1xuICB9XG5cbiAgbWF4LXdpZHRoOiAkc2l6ZTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4kZ2xvYmFsLWZvbnQtc2l6ZTogMTAwJSAhZGVmYXVsdDtcblxuLy8vIFJlbW92ZXMgdGhlIHVuaXQgKGUuZy4gcHgsIGVtLCByZW0pIGZyb20gYSB2YWx1ZSwgcmV0dXJuaW5nIHRoZSBudW1iZXIgb25seS5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbnVtIC0gTnVtYmVyIHRvIHN0cmlwIHVuaXQgZnJvbS5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBzYW1lIG51bWJlciwgc2FucyB1bml0LlxuQGZ1bmN0aW9uIHN0cmlwLXVuaXQoJG51bSkge1xuICBAcmV0dXJuICRudW0gLyAoJG51bSAqIDAgKyAxKTtcbn1cblxuLy8vIENvbnZlcnRzIG9uZSBvciBtb3JlIHBpeGVsIHZhbHVlcyBpbnRvIG1hdGNoaW5nIHJlbSB2YWx1ZXMuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkdmFsdWVzIC0gT25lIG9yIG1vcmUgdmFsdWVzIHRvIGNvbnZlcnQuIEJlIHN1cmUgdG8gc2VwYXJhdGUgdGhlbSB3aXRoIHNwYWNlcyBhbmQgbm90IGNvbW1hcy4gSWYgeW91IG5lZWQgdG8gY29udmVydCBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0LCB3cmFwIHRoZSBsaXN0IGluIHBhcmVudGhlc2VzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSBbbnVsbF0gLSBUaGUgYmFzZSB2YWx1ZSB0byB1c2Ugd2hlbiBjYWxjdWxhdGluZyB0aGUgYHJlbWAuIElmIHlvdSdyZSB1c2luZyBGb3VuZGF0aW9uIG91dCBvZiB0aGUgYm94LCB0aGlzIGlzIDE2cHguIElmIHRoaXMgcGFyYW1ldGVyIGlzIGBudWxsYCwgdGhlIGZ1bmN0aW9uIHdpbGwgcmVmZXJlbmNlIHRoZSBgJGJhc2UtZm9udC1zaXplYCB2YXJpYWJsZSBhcyB0aGUgYmFzZS5cbi8vL1xuLy8vIEByZXR1cm5zIHtMaXN0fSBBIGxpc3Qgb2YgY29udmVydGVkIHZhbHVlcy5cbkBmdW5jdGlvbiByZW0tY2FsYygkdmFsdWVzLCAkYmFzZTogbnVsbCkge1xuICAkcmVtLXZhbHVlczogKCk7XG4gICRjb3VudDogbGVuZ3RoKCR2YWx1ZXMpO1xuXG4gIC8vIElmIG5vIGJhc2UgaXMgZGVmaW5lZCwgZGVmZXIgdG8gdGhlIGdsb2JhbCBmb250IHNpemVcbiAgQGlmICRiYXNlID09IG51bGwge1xuICAgICRiYXNlOiAkZ2xvYmFsLWZvbnQtc2l6ZTtcbiAgfVxuXG4gIC8vIElmIHRoZSBiYXNlIGZvbnQgc2l6ZSBpcyBhICUsIHRoZW4gbXVsdGlwbHkgaXQgYnkgMTZweFxuICAvLyBUaGlzIGlzIGJlY2F1c2UgMTAwJSBmb250IHNpemUgPSAxNnB4IGluIG1vc3QgYWxsIGJyb3dzZXJzXG4gIEBpZiB1bml0KCRiYXNlKSA9PSAnJScge1xuICAgICRiYXNlOiAoJGJhc2UgLyAxMDAlKSAqIDE2cHg7XG4gIH1cblxuICAvLyBVc2luZyByZW0gYXMgYmFzZSBhbGxvd3MgY29ycmVjdCBzY2FsaW5nXG4gIEBpZiB1bml0KCRiYXNlKSA9PSAncmVtJyB7XG4gICAgJGJhc2U6IHN0cmlwLXVuaXQoJGJhc2UpICogMTZweDtcbiAgfVxuXG4gIEBpZiAkY291bnQgPT0gMSB7XG4gICAgQHJldHVybiAtemYtdG8tcmVtKCR2YWx1ZXMsICRiYXNlKTtcbiAgfVxuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGNvdW50IHtcbiAgICAkcmVtLXZhbHVlczogYXBwZW5kKCRyZW0tdmFsdWVzLCAtemYtdG8tcmVtKG50aCgkdmFsdWVzLCAkaSksICRiYXNlKSk7XG4gIH1cblxuICBAcmV0dXJuICRyZW0tdmFsdWVzO1xufVxuXG4vLyBDb252ZXJ0cyBhIHVuaXRsZXNzLCBwaXhlbCwgb3IgcmVtIHZhbHVlIHRvIGVtLCBmb3IgdXNlIGluIGJyZWFrcG9pbnRzLlxuQGZ1bmN0aW9uIC16Zi1icC10by1lbSgkdmFsdWUpIHtcbiAgLy8gUGl4ZWwgYW5kIHVuaXRsZXNzIHZhbHVlcyBhcmUgY29udmVydGVkIHRvIHJlbXNcbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAncHgnIG9yIHVuaXRsZXNzKCR2YWx1ZSkge1xuICAgICR2YWx1ZTogcmVtLWNhbGMoJHZhbHVlLCAkYmFzZTogMTZweCk7XG4gIH1cblxuICAvLyBUaGVuIHRoZSB2YWx1ZSBpcyBjb252ZXJ0ZWQgdG8gZW1zXG4gIEByZXR1cm4gc3RyaXAtdW5pdCgkdmFsdWUpICogMWVtO1xufVxuXG4vLy8gQ29udmVydHMgYSBwaXhlbCB2YWx1ZSB0byBtYXRjaGluZyByZW0gdmFsdWUuICpBbnkqIHZhbHVlIHBhc3NlZCwgcmVnYXJkbGVzcyBvZiB1bml0LCBpcyBhc3N1bWVkIHRvIGJlIGEgcGl4ZWwgdmFsdWUuIEJ5IGRlZmF1bHQsIHRoZSBiYXNlIHBpeGVsIHZhbHVlIHVzZWQgdG8gY2FsY3VsYXRlIHRoZSByZW0gdmFsdWUgaXMgdGFrZW4gZnJvbSB0aGUgYCRnbG9iYWwtZm9udC1zaXplYCB2YXJpYWJsZS5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWUgLSBQaXhlbCB2YWx1ZSB0byBjb252ZXJ0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSBbbnVsbF0gLSBCYXNlIGZvciBwaXhlbCBjb252ZXJzaW9uLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gQSBudW1iZXIgaW4gcmVtcywgY2FsY3VsYXRlZCBiYXNlZCBvbiB0aGUgZ2l2ZW4gdmFsdWUgYW5kIHRoZSBiYXNlIHBpeGVsIHZhbHVlLiByZW0gdmFsdWVzIGFyZSBwYXNzZWQgdGhyb3VnaCBhcyBpcy5cbkBmdW5jdGlvbiAtemYtdG8tcmVtKCR2YWx1ZSwgJGJhc2U6IG51bGwpIHtcbiAgLy8gQ2hlY2sgaWYgdGhlIHZhbHVlIGlzIGEgbnVtYmVyXG4gIEBpZiB0eXBlLW9mKCR2YWx1ZSkgIT0gJ251bWJlcicge1xuICAgIEB3YXJuIGluc3BlY3QoJHZhbHVlKSArICcgd2FzIHBhc3NlZCB0byByZW0tY2FsYygpLCB3aGljaCBpcyBub3QgYSBudW1iZXIuJztcbiAgICBAcmV0dXJuICR2YWx1ZTtcbiAgfVxuXG4gIC8vIFRyYW5zZm9ybSBlbSBpbnRvIHJlbSBpZiBzb21lb25lIGhhbmRzIG92ZXIgJ2VtJ3NcbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAnZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAqIDFyZW07XG4gIH1cblxuICAvLyBDYWxjdWxhdGUgcmVtIGlmIHVuaXRzIGZvciAkdmFsdWUgaXMgbm90IHJlbSBvciBlbVxuICBAaWYgdW5pdCgkdmFsdWUpICE9ICdyZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAvIHN0cmlwLXVuaXQoJGJhc2UpICogMXJlbTtcbiAgfVxuXG4gIC8vIFR1cm4gMHJlbSBpbnRvIDBcbiAgQGlmICR2YWx1ZSA9PSAwcmVtIHtcbiAgICAkdmFsdWU6IDA7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cblxuLy8vIENvbnZlcnRzIGEgcGl4ZWwsIHBlcmNlbnRhZ2UsIHJlbSBvciBlbSB2YWx1ZSB0byBhIHVuaXRsZXNzIHZhbHVlIGJhc2VkIG9uIGEgZ2l2ZW4gZm9udCBzaXplLiBJZGVhbCBmb3Igd29ya2luZyBvdXQgdW5pdGxlc3MgbGluZSBoZWlnaHRzLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGNvbnZlcnQgdG8gYSB1bml0bGVzcyBsaW5lIGhlaWdodFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSAtIFRoZSBmb250IHNpemUgdG8gdXNlIHRvIHdvcmsgb3V0IHRoZSBsaW5lIGhlaWdodCAtIGRlZmF1bHRzIHRvICRnbG9iYWwtZm9udC1zaXplXG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gVW5pdGxlc3MgbnVtYmVyXG5AZnVuY3Rpb24gdW5pdGxlc3MtY2FsYygkdmFsdWUsICRiYXNlOiBudWxsKSB7XG5cbiAgLy8gSWYgbm8gYmFzZSBpcyBkZWZpbmVkLCBkZWZlciB0byB0aGUgZ2xvYmFsIGZvbnQgc2l6ZVxuICBAaWYgJGJhc2UgPT0gbnVsbCB7XG4gICAgJGJhc2U6ICRnbG9iYWwtZm9udC1zaXplO1xuICB9XG5cbiAgLy8gRmlyc3QsIGxldHMgY29udmVydCBvdXIgJGJhc2UgdG8gcGl4ZWxzXG5cbiAgLy8gSWYgdGhlIGJhc2UgZm9udCBzaXplIGlzIGEgJSwgdGhlbiBtdWx0aXBseSBpdCBieSAxNnB4XG4gIEBpZiB1bml0KCRiYXNlKSA9PSAnJScge1xuICAgICRiYXNlOiAoJGJhc2UgLyAxMDAlKSAqIDE2cHg7XG4gIH1cblxuICBAaWYgdW5pdCgkYmFzZSkgPT0gJ3JlbScge1xuICAgICRiYXNlOiBzdHJpcC11bml0KCRiYXNlKSAqIDE2cHg7XG4gIH1cblxuICBAaWYgdW5pdCgkYmFzZSkgPT0gJ2VtJyB7XG4gICAgJGJhc2U6IHN0cmlwLXVuaXQoJGJhc2UpICogMTZweDtcbiAgfVxuXG4gIC8vIE5vdyBsZXRzIGNvbnZlcnQgb3VyIHZhbHVlIHRvIHBpeGVscyB0b29cbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAnJScge1xuICAgICR2YWx1ZTogKCR2YWx1ZSAvIDEwMCUpICogJGJhc2U7XG4gIH1cblxuICBAaWYgdW5pdCgkdmFsdWUpID09ICdyZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAqICRiYXNlO1xuICB9XG5cbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAnZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAqICRiYXNlO1xuICB9XG5cbiAgLy8gJ3B4J1xuICBAaWYgdW5pdCgkdmFsdWUpID09ICdweCcge1xuICAgIEByZXR1cm4gc3RyaXAtdW5pdCgkdmFsdWUpIC8gc3RyaXAtdW5pdCgkYmFzZSk7XG4gIH1cblxuICAvLyBhc3N1bWUgdGhhdCBsaW5lLWhlaWdodHMgZ3JlYXRlcm4gdGhlbiAxMCBhcmUgbWVhbnQgdG8gYmUgYWJzb2x1dGUgaW4gJ3B4J1xuICBAaWYgdW5pdGxlc3MoJHZhbHVlKSBhbmQgKCR2YWx1ZSA+IDEwKSB7XG4gICAgQHJldHVybiAkdmFsdWUgLyBzdHJpcC11bml0KCRiYXNlKTtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gU2V0IHRoZSBndXR0ZXJzIG9uIGEgY29sdW1uXG4vLy8gQHBhcmFtIHtOdW1iZXJ8S2V5d29yZH0gJGd1dHRlciBbYXV0b11cbi8vLyAgIFNwYWNpbmcgYmV0d2VlbiBjb2x1bW5zLCBhY2NlcHRzIG11bHRpcGxlIHZhbHVlczpcbi8vLyAgIC0gQSBzaW5nbGUgdmFsdWUgd2lsbCBtYWtlIHRoZSBndXR0ZXIgdGhhdCBleGFjdCBzaXplLlxuLy8vICAgLSBBIGJyZWFrcG9pbnQgbmFtZSB3aWxsIG1ha2UgdGhlIGd1dHRlciB0aGUgY29ycmVzcG9uZGluZyBzaXplIGluIHRoZSAkZ3V0dGVycyBtYXAuXG4vLy8gICAtIFwiYXV0b1wiIHdpbGwgbWFrZSB0aGUgZ3V0dGVyIHJlc3BvbnNpdmUsIHVzaW5nIHRoZSAkZ3V0dGVycyBtYXAgdmFsdWVzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gR3V0dGVyIG1hcCBvciBzaW5nbGUgdmFsdWUgdG8gdXNlLiBSZXNwb25zaXZlIGd1dHRlciBzZXR0aW5ncyBieSBkZWZhdWx0LlxuQG1peGluIGdyaWQtY29sdW1uLWd1dHRlcihcbiAgJGd1dHRlcjogYXV0byxcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICBAaW5jbHVkZSAtemYtYnJlYWtwb2ludC12YWx1ZSgkZ3V0dGVyLCAkZ3V0dGVycykge1xuICAgICRwYWRkaW5nOiByZW0tY2FsYygkLXpmLWJwLXZhbHVlKSAvIDI7XG5cbiAgICBwYWRkaW5nLXJpZ2h0OiAkcGFkZGluZztcbiAgICBwYWRkaW5nLWxlZnQ6ICRwYWRkaW5nO1xuICB9XG59XG5cbi8vLyBDb2xsYXBzZSB0aGUgZ3V0dGVycyBvbiBhIGNvbHVtbiBieSByZW1vdmluZyB0aGUgcGFkZGluZy4gKipOb3RlOioqIG9ubHkgdXNlIHRoaXMgbWl4aW4gd2l0aGluIGEgYnJlYWtwb2ludC4gVG8gY29sbGFwc2UgYSBjb2x1bW4ncyBndXR0ZXJzIG9uIGFsbCBzY3JlZW4gc2l6ZXMsIHVzZSB0aGUgYCRndXR0ZXJgIHBhcmFtZXRlciBvZiB0aGUgYGdyaWQtY29sdW1uKClgIG1peGluIGluc3RlYWQuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tY29sbGFwc2Uge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1ndXR0ZXIoMCk7XG59XG5cbi8vLyBVbi1jb2xsYXBzZSB0aGUgZ3V0dGVycyBvbiBhIGNvbHVtbiBieSByZS1hZGRpbmcgdGhlIHBhZGRpbmcuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGd1dHRlciBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBTcGFjaW5nIGJldHdlZW4gY29sdW1ucy5cbkBtaXhpbiBncmlkLWNvbHVtbi11bmNvbGxhcHNlKCRndXR0ZXI6ICRncmlkLWNvbHVtbi1ndXR0ZXIpIHtcbiAgQHdhcm4gJ1RoaXMgbWl4aW4gaXMgYmVpbmcgcmVwbGFjZWQgYnkgZ3JpZC1jb2x1bW4tZ3V0dGVyKCkuIGdyaWQtY29sdW1uLXVuY29sbGFwc2UoKSB3aWxsIGJlIHJlbW92ZWQgaW4gRm91bmRhdGlvbiA2LjQuJztcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tZ3V0dGVyKCRndXR0ZXJzOiAkZ3V0dGVyKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLWd1dHRlcigpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tZ3V0dGVyXG5AbWl4aW4gZ3JpZC1jb2wtZ3V0dGVyKFxuICAkZ3V0dGVyOiBhdXRvLFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWd1dHRlcigkZ3V0dGVyLCAkZ3V0dGVycyk7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1jb2xsYXBzZSgpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tY29sbGFwc2VcbkBtaXhpbiBncmlkLWNvbC1jb2xsYXBzZSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWNvbGxhcHNlO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tdW5jb2xsYXBzZSgpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tdW5jb2xsYXBzZVxuQG1peGluIGdyaWQtY29sLXVuY29sbGFwc2UoJGd1dHRlcjogJGdyaWQtY29sdW1uLWd1dHRlcikge1xuICBAd2FybiAnVGhpcyBtaXhpbiBpcyBiZWluZyByZXBsYWNlZCBieSBncmlkLWNvbC1ndXR0ZXIoKS4gZ3JpZC1jb2wtdW5jb2xsYXBzZSgpIHdpbGwgYmUgcmVtb3ZlZCBpbiBGb3VuZGF0aW9uIDYuNC4nO1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi11bmNvbGxhcHNlKCRndXR0ZXIpO1xufVxuXG4vLy8gU2V0cyBib3R0b20gbWFyZ2luIG9uIGdyaWQgY29sdW1ucyB0byBtYXRjaCBndXR0ZXJzXG4vLy8gQHBhcmFtIHtOdW1iZXJ8S2V5d29yZH0gJG1hcmdpbiBbYXV0b11cbi8vLyAgIFRoZSBib3R0b20gbWFyZ2luIG9uIGdyaWQgY29sdW1ucywgYWNjZXB0cyBtdWx0aXBsZSB2YWx1ZXM6XG4vLy8gICAtIEEgc2luZ2xlIHZhbHVlIHdpbGwgbWFrZSB0aGUgbWFyZ2luIHRoYXQgZXhhY3Qgc2l6ZS5cbi8vLyAgIC0gQSBicmVha3BvaW50IG5hbWUgd2lsbCBtYWtlIHRoZSBtYXJnaW4gdGhlIGNvcnJlc3BvbmRpbmcgc2l6ZSBpbiB0aGUgJG1hcmdpbnMgbWFwLlxuLy8vICAgLSBcImF1dG9cIiB3aWxsIG1ha2UgdGhlIG1hcmdpbiByZXNwb25zaXZlLCB1c2luZyB0aGUgJG1hcmdpbnMgbWFwIHZhbHVlcy5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRtYXJnaW5zIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgdG8gdXNlLiBSZXNwb25zaXZlIGd1dHRlciBzZXR0aW5ncyBieSBkZWZhdWx0LlxuQG1peGluIGdyaWQtY29sdW1uLW1hcmdpbiAoXG4gICRtYXJnaW46IGF1dG8sXG4gICRtYXJnaW5zOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgQGluY2x1ZGUgLXpmLWJyZWFrcG9pbnQtdmFsdWUoJG1hcmdpbiwgJG1hcmdpbnMpIHtcbiAgICAkbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoJC16Zi1icC12YWx1ZSk7XG4gICAgbWFyZ2luLWJvdHRvbTogJG1hcmdpbi1ib3R0b207XG5cbiAgICA+IDpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBicmVha3BvaW50c1xuLy8vL1xuXG4vLy8gQSBsaXN0IG9mIG5hbWVkIGJyZWFrcG9pbnRzLiBZb3UgY2FuIHVzZSB0aGVzZSB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0byBxdWlja2x5IGNyZWF0ZSBtZWRpYSBxdWVyaWVzLlxuLy8vIEB0eXBlIE1hcFxuJGJyZWFrcG9pbnRzOiAoXG4gIHNtYWxsOiAwLFxuICBtZWRpdW06IDY0MHB4LFxuICBsYXJnZTogMTAyNHB4LFxuICB4bGFyZ2U6IDEyMDBweCxcbiAgeHhsYXJnZTogMTQ0MHB4LFxuKSAhZGVmYXVsdDtcblxuLy8vIFRoZSBsYXJnZXN0IG5hbWVkIGJyZWFrcG9pbnQgaW4gd2hpY2ggdG8gaW5jbHVkZSBwcmludCBhcyBhIG1lZGlhIHR5cGVcbi8vLyBAdHlwZSBLZXl3b3JkXG4kcHJpbnQtYnJlYWtwb2ludDogbGFyZ2UgIWRlZmF1bHQ7XG5cbiQtemYtemVyby1icmVha3BvaW50OiBzbWFsbCAhZGVmYXVsdDtcblxuJC16Zi1icmVha3BvaW50cy1rZXlzOiBtYXAtdG8tbGlzdCgkYnJlYWtwb2ludHMsICdrZXlzJyk7XG5cbkBpZiBudGgobWFwLXZhbHVlcygkYnJlYWtwb2ludHMpLCAxKSAhPSAwIHtcbiAgQGVycm9yICdZb3VyIHNtYWxsZXN0IGJyZWFrcG9pbnQgKGRlZmluZWQgaW4gJGJyZWFrcG9pbnRzKSBtdXN0IGJlIHNldCB0byBcIjBcIi4nO1xufVxuQGVsc2Uge1xuICAkLXpmLXplcm8tYnJlYWtwb2ludDogbnRoKG1hcC1rZXlzKCRicmVha3BvaW50cyksIDEpO1xufVxuXG4vLy8gQWxsIG9mIHRoZSBuYW1lcyBpbiB0aGlzIGxpc3Qgd2lsbCBiZSBvdXRwdXQgYXMgY2xhc3NlcyBpbiB5b3VyIENTUywgbGlrZSBgLnNtYWxsLTEyYCwgYC5tZWRpdW0tNmAsIGFuZCBzbyBvbi4gRWFjaCB2YWx1ZSBpbiB0aGlzIGxpc3QgbXVzdCBhbHNvIGJlIGluIHRoZSBgJGJyZWFrcG9pbnRzYCBtYXAuXG4vLy8gQHR5cGUgTGlzdFxuJGJyZWFrcG9pbnQtY2xhc3NlczogKHNtYWxsIG1lZGl1bSBsYXJnZSkgIWRlZmF1bHQ7XG5cbi8vLyBHZW5lcmF0ZXMgYSBtZWRpYSBxdWVyeSBzdHJpbmcgbWF0Y2hpbmcgdGhlIGlucHV0IHZhbHVlLiBSZWZlciB0byB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIGBicmVha3BvaW50KClgIG1peGluIHRvIHNlZSB3aGF0IHRoZSBwb3NzaWJsZSBpbnB1dHMgYXJlLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHZhbCBbc21hbGxdIC0gQnJlYWtwb2ludCBuYW1lLCBvciBweCwgcmVtLCBvciBlbSB2YWx1ZSB0byBwcm9jZXNzLlxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQoJHZhbDogJC16Zi16ZXJvLWJyZWFrcG9pbnQpIHtcbiAgLy8gU2l6ZSBvciBrZXl3b3JkXG4gICRicDogbnRoKCR2YWwsIDEpO1xuICAvLyBWYWx1ZSBmb3IgbWF4LXdpZHRoIG1lZGlhIHF1ZXJpZXNcbiAgJGJwLW1heDogMDtcbiAgLy8gRGlyZWN0aW9uIG9mIG1lZGlhIHF1ZXJ5ICh1cCwgZG93biwgb3Igb25seSlcbiAgJGRpcjogaWYobGVuZ3RoKCR2YWwpID4gMSwgbnRoKCR2YWwsIDIpLCB1cCk7XG4gIC8vIEV2ZW50dWFsIG91dHB1dFxuICAkc3RyOiAnJztcbiAgLy8gSXMgaXQgYSBuYW1lZCBtZWRpYSBxdWVyeT9cbiAgJG5hbWVkOiBmYWxzZTtcblxuICAvLyBPcmllbnRhdGlvbiBtZWRpYSBxdWVyaWVzIGhhdmUgYSB1bmlxdWUgc3ludGF4XG4gIEBpZiAkYnAgPT0gJ2xhbmRzY2FwZScgb3IgJGJwID09ICdwb3J0cmFpdCcge1xuICAgIEByZXR1cm4gJyhvcmllbnRhdGlvbjogI3skYnB9KSc7XG4gIH1cbiAgQGVsc2UgaWYgJGJwID09ICdyZXRpbmEnIHtcbiAgICBAcmV0dXJuICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpJztcbiAgfVxuXG4gIC8vIFRyeSB0byBwdWxsIGEgbmFtZWQgYnJlYWtwb2ludCBvdXQgb2YgdGhlICRicmVha3BvaW50cyBtYXBcbiAgQGlmIHR5cGUtb2YoJGJwKSA9PSAnc3RyaW5nJyB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJGJwKSB7XG4gICAgICBAaWYgJGRpciA9PSAnb25seScgb3IgJGRpciA9PSAnZG93bicge1xuICAgICAgICAkYnAtbWF4OiAtemYtbWFwLW5leHQoJGJyZWFrcG9pbnRzLCAkYnApO1xuICAgICAgfVxuXG4gICAgICAkYnA6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkYnApO1xuICAgICAgJG5hbWVkOiB0cnVlO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkYnA6IDA7XG4gICAgICBAd2FybiAnYnJlYWtwb2ludCgpOiBcIiN7JHZhbH1cIiBpcyBub3QgZGVmaW5lZCBpbiB5b3VyICRicmVha3BvaW50cyBzZXR0aW5nLic7XG4gICAgfVxuICB9XG5cbiAgLy8gQ29udmVydCBhbnkgcGl4ZWwsIHJlbSwgb3IgdW5pdGxlc3MgdmFsdWUgdG8gZW1cbiAgJGJwOiAtemYtYnAtdG8tZW0oJGJwKTtcbiAgQGlmICRicC1tYXgge1xuICAgICRicC1tYXg6IC16Zi1icC10by1lbSgkYnAtbWF4KSAtICgxLzE2KTtcbiAgfVxuXG4gIC8vIENvbmRpdGlvbnMgdG8gc2tpcCBtZWRpYSBxdWVyeSBjcmVhdGlvblxuICAvLyAtIEl0J3MgYSBuYW1lZCBicmVha3BvaW50IHRoYXQgcmVzb2x2ZWQgdG8gXCIwIGRvd25cIiBvciBcIjAgdXBcIlxuICAvLyAtIEl0J3MgYSBudW1lcmljIGJyZWFrcG9pbnQgdGhhdCByZXNvbHZlZCB0byBcIjAgXCIgKyBhbnl0aGluZ1xuICBAaWYgJGJwID4gMGVtIG9yICRkaXIgPT0gJ29ubHknIG9yICRkaXIgPT0gJ2Rvd24nIHtcbiAgICAvLyBgb25seWAgcmFuZ2VzIHVzZSB0aGUgZm9ybWF0IGAobWluLXdpZHRoOiBuKSBhbmQgKG1heC13aWR0aDogbilgXG4gICAgQGlmICRkaXIgPT0gJ29ubHknIHtcbiAgICAgIC8vIE9ubHkgbmFtZWQgbWVkaWEgcXVlcmllcyBjYW4gaGF2ZSBhbiBcIm9ubHlcIiByYW5nZVxuICAgICAgQGlmICRuYW1lZCA9PSB0cnVlIHtcbiAgICAgICAgLy8gT25seSB1c2UgXCJtaW4td2lkdGhcIiBpZiB0aGUgZmxvb3IgaXMgZ3JlYXRlciB0aGFuIDBcbiAgICAgICAgQGlmICRicCA+IDBlbSB7XG4gICAgICAgICAgJHN0cjogJHN0ciArICcobWluLXdpZHRoOiAjeyRicH0pJztcblxuICAgICAgICAgIC8vIE9ubHkgYWRkIFwiYW5kXCIgdG8gdGhlIG1lZGlhIHF1ZXJ5IGlmIHRoZXJlJ3MgYSBjZWlsaW5nXG4gICAgICAgICAgQGlmICRicC1tYXggIT0gbnVsbCB7XG4gICAgICAgICAgICAkc3RyOiAkc3RyICsgJyBhbmQgJztcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBPbmx5IHVzZSBcIm1heC13aWR0aFwiIGlmIHRoZXJlJ3MgYSBjZWlsaW5nXG4gICAgICAgIEBpZiAkYnAtbWF4ICE9IG51bGwge1xuICAgICAgICAgICRzdHI6ICRzdHIgKyAnKG1heC13aWR0aDogI3skYnAtbWF4fSknO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIEB3YXJuICdicmVha3BvaW50KCk6IE9ubHkgbmFtZWQgbWVkaWEgcXVlcmllcyBjYW4gaGF2ZSBhbiBgb25seWAgcmFuZ2UuJztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBgZG93bmAgcmFuZ2VzIHVzZSB0aGUgZm9ybWF0IGAobWF4LXdpZHRoOiBuKWBcbiAgICBAZWxzZSBpZiAkZGlyID09ICdkb3duJyB7XG4gICAgICAkbWF4OiBpZigkbmFtZWQsICRicC1tYXgsICRicCk7XG5cbiAgICAgIC8vIFNraXAgbWVkaWEgcXVlcnkgY3JlYXRpb24gaWYgaW5wdXQgdmFsdWUgaXMgZXhhY3RseSBcIjAgZG93blwiLFxuICAgICAgLy8gdW5sZXNzIHRoZSBmdW5jdGlvbiB3YXMgY2FsbGVkIGFzIFwic21hbGwgZG93blwiLCBpbiB3aGljaCBjYXNlIGl0J3MganVzdCBcInNtYWxsIG9ubHlcIlxuICAgICAgQGlmICRuYW1lZCBvciAkYnAgPiAwZW0ge1xuICAgICAgICBAaWYgJG1heCAhPSBudWxsIHtcbiAgICAgICAgICAkc3RyOiAkc3RyICsgJyhtYXgtd2lkdGg6ICN7JG1heH0pJztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGB1cGAgcmFuZ2VzIHVzZSB0aGUgZm9ybWF0IGAobWluLXdpZHRoOiBuKWBcbiAgICBAZWxzZSBpZiAkYnAgPiAwZW0ge1xuICAgICAgJHN0cjogJHN0ciArICcobWluLXdpZHRoOiAjeyRicH0pJztcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRzdHI7XG59XG5cbi8vLyBXcmFwcyBhIG1lZGlhIHF1ZXJ5IGFyb3VuZCB0aGUgY29udGVudCB5b3UgcHV0IGluc2lkZSB0aGUgbWl4aW4uIFRoaXMgbWl4aW4gYWNjZXB0cyBhIG51bWJlciBvZiB2YWx1ZXM6XG4vLy8gIC0gSWYgYSBzdHJpbmcgaXMgcGFzc2VkLCB0aGUgbWl4aW4gd2lsbCBsb29rIGZvciBpdCBpbiB0aGUgYCRicmVha3BvaW50c2AgbWFwLCBhbmQgdXNlIGEgbWVkaWEgcXVlcnkgdGhlcmUuXG4vLy8gIC0gSWYgYSBwaXhlbCB2YWx1ZSBpcyBwYXNzZWQsIGl0IHdpbGwgYmUgY29udmVydGVkIHRvIGFuIGVtIHZhbHVlIHVzaW5nIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgYXMgdGhlIGJhc2UuXG4vLy8gIC0gSWYgYSByZW0gdmFsdWUgaXMgcGFzc2VkLCB0aGUgdW5pdCB3aWxsIGJlIGNoYW5nZWQgdG8gZW0uXG4vLy8gIC0gSWYgYW4gZW0gdmFsdWUgaXMgcGFzc2VkLCB0aGUgdmFsdWUgd2lsbCBiZSB1c2VkIGFzLWlzLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHZhbHVlIC0gQnJlYWtwb2ludCBuYW1lLCBvciBweCwgcmVtLCBvciBlbSB2YWx1ZSB0byBwcm9jZXNzLlxuLy8vXG4vLy8gQG91dHB1dCBJZiB0aGUgYnJlYWtwb2ludCBpcyBcIjBweCBhbmQgbGFyZ2VyXCIsIG91dHB1dHMgdGhlIGNvbnRlbnQgYXMtaXMuIE90aGVyd2lzZSwgb3V0cHV0cyB0aGUgY29udGVudCB3cmFwcGVkIGluIGEgbWVkaWEgcXVlcnkuXG5AbWl4aW4gYnJlYWtwb2ludCgkdmFsdWUpIHtcbiAgJHN0cjogYnJlYWtwb2ludCgkdmFsdWUpO1xuICAkYnA6IGluZGV4KCQtemYtYnJlYWtwb2ludHMta2V5cywgJHZhbHVlKTtcbiAgJHBicDogaW5kZXgoJC16Zi1icmVha3BvaW50cy1rZXlzLCAkcHJpbnQtYnJlYWtwb2ludCk7XG5cbiAgLy8gTWFrZSBicmVha3BvaW50IHNpemUgYXZhaWxhYmxlIGFzIGEgdmFyaWFibGVcbiAgJG9sZC16Zi1zaXplOiAkLXpmLXplcm8tYnJlYWtwb2ludDtcbiAgJC16Zi1zaXplOiBudGgoJHZhbHVlLCAxKSAhZ2xvYmFsOyAvLyBnZXQgdGhlIGZpcnN0IHZhbHVlIHRvIGFjY291bnQgZm9yIGBvbmx5YCBhbmQgYGRvd25gIGtleXdvcmRzXG5cbiAgLy8gSWYgJHN0ciBpcyBzdGlsbCBhbiBlbXB0eSBzdHJpbmcsIG5vIG1lZGlhIHF1ZXJ5IGlzIG5lZWRlZFxuICBAaWYgJHN0ciA9PSAnJyB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cblxuICAvLyBPdGhlcndpc2UsIHdyYXAgdGhlIGNvbnRlbnQgaW4gYSBtZWRpYSBxdWVyeVxuICBAZWxzZSB7XG4gICAgLy8gRm9yIG5hbWVkIGJyZWFrcG9pbnRzIGxlc3MgdGhhbiBvciBlcXVhbCB0byAkcHJpbnQtYnJlYWtwb2ludCwgYWRkIHByaW50IHRvIHRoZSBtZWRpYSB0eXBlc1xuICAgIEBpZiAkYnAgIT0gbnVsbCBhbmQgJGJwIDw9ICRwYnAge1xuICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kICN7JHN0cn0ge1xuICAgICAgICBAY29udGVudDtcbiAgICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kICN7JHN0cn0ge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBSZXN0b3JlIHRoZSBvbGQgYnJlYWtwb2ludCBzaXplXG4gICQtemYtc2l6ZTogJG9sZC16Zi1zaXplICFnbG9iYWw7XG59XG5cbi8vLyBDb252ZXJzIHRoZSBicmVha3BvaW50cyBtYXAgdG8gYSBVUkwtZW5jb2RlZCBzdHJpbmcsIGxpa2UgdGhpczogYGtleTE9dmFsdWUxJmtleTI9dmFsdWUyYC4gVGhlIHZhbHVlIGlzIHRoZW4gZHJvcHBlZCBpbnRvIHRoZSBDU1MgZm9yIGEgc3BlY2lhbCBgPG1ldGE+YCB0YWcsIHdoaWNoIGlzIHJlYWQgYnkgdGhlIEZvdW5kYXRpb24gSmF2YVNjcmlwdC4gVGhpcyBpcyBob3cgd2UgdHJhbnNmZXIgdmFsdWVzIGZyb20gU2FzcyB0byBKYXZhU2NyaXB0LCBzbyB0aGV5IGNhbiBiZSBkZWZpbmVkIGluIG9uZSBwbGFjZS5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIGNvbnZlcnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7U3RyaW5nfSBBIHN0cmluZyBjb250YWluaW5nIHRoZSBtYXAncyBjb250ZW50cy5cbkBmdW5jdGlvbiAtemYtYnAtc2VyaWFsaXplKCRtYXApIHtcbiAgJHN0cjogJyc7XG4gIEBlYWNoICRrZXksICR2YWx1ZSBpbiAkbWFwIHtcbiAgICAkc3RyOiAkc3RyICsgJGtleSArICc9JyArIC16Zi1icC10by1lbSgkdmFsdWUpICsgJyYnO1xuICB9XG4gICRzdHI6IHN0ci1zbGljZSgkc3RyLCAxLCAtMik7XG5cbiAgQHJldHVybiAkc3RyO1xufVxuXG4vLy8gRmluZCB0aGUgbmV4dCBrZXkgaW4gYSBtYXAuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byB0cmF2ZXJzZS5cbi8vLyBAcGFyYW0ge01peGVkfSAka2V5IC0gS2V5IHRvIHVzZSBhcyBhIHN0YXJ0aW5nIHBvaW50LlxuLy8vXG4vLy8gQHJldHVybnMge01peGVkfSBUaGUgdmFsdWUgZm9yIHRoZSBrZXkgYWZ0ZXIgYCRrZXlgLCBpZiBgJGtleWAgd2FzIGZvdW5kLiBJZiBgJGtleWAgd2FzIG5vdCBmb3VuZCwgb3IgYCRrZXlgIHdhcyB0aGUgbGFzdCB2YWx1ZSBpbiB0aGUgbWFwLCByZXR1cm5zIGBudWxsYC5cbkBmdW5jdGlvbiAtemYtbWFwLW5leHQoJG1hcCwgJGtleSkge1xuXG4gIC8vIFN0b3JlIHRoZSBrZXlzIG9mIHRoZSBtYXAgYXMgYSBsaXN0XG4gICR2YWx1ZXM6IG1hcC1rZXlzKCRtYXApO1xuXG4gICRpOiAwO1xuXG4gIC8vIElmIHRoZSBLZXkgRXhpc3RzLCBHZXQgdGhlIGluZGV4IG9mIHRoZSBrZXkgd2l0aGluIHRoZSBtYXAgYW5kIGFkZCAxIHRvIGl0IGZvciB0aGUgbmV4dCBicmVha3BvaW50IGluIHRoZSBtYXBcbiAgQGlmIChtYXAtaGFzLWtleSgkbWFwLCAka2V5KSkge1xuICAgICRpOiBpbmRleCgkdmFsdWVzLCAka2V5KSArIDE7XG4gIH1cblxuICAvLyBJZiB0aGUga2V5IGRvZXNuJ3QgZXhpc3QsIG9yIGl0J3MgdGhlIGxhc3Qga2V5IGluIHRoZSBtYXAsIHJldHVybiBudWxsXG4gIEBpZiAoJGkgPiBsZW5ndGgoJG1hcCkgb3IgJGkgPT0gMCkge1xuICAgIEByZXR1cm4gbnVsbDtcbiAgfVxuICAvLyBPdGhlcndpc2UsIHJldHVybiB0aGUgdmFsdWVcbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gbWFwLWdldCgkbWFwLCBudGgoJHZhbHVlcywgJGkpKTtcbiAgfVxuXG59XG5cbi8vLyBSZXR1cm4gYSBsaXN0IG9mIG91ciBuYW1lZCBicmVha3BvaW50cyBsZXNzIHRoYW4gJGtleS4gVXNlZnVsIGZvciBkZWFsaW5nIHdpdGhcbi8vLyByZXNwb25zaXZlIGd1dHRlcnMgZm9yIHRoZSBncmlkLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRrZXkgLSBLZXkgdG8gdXNlIGFzIGxhc3QgYnJlYWtwb2ludC5cbi8vL1xuLy8vIEByZXR1cm5zIHtBcnJheX0gVGhlIGxpc3Qgb2YgYnJlYWtwb2ludHMgdXAgdG8gYW5kLiBJZiAka2V5IGlzIGF1dG8sIHJldHVybnMgYnJlYWtwb2ludHMgYWJvdmUgdGhlIHplcm9cbkBmdW5jdGlvbiAtemYtYnJlYWtwb2ludHMtbGVzcy10aGFuKCRrZXkpIHtcbiAgJGxpc3Q6ICgpO1xuICAkZm91bmRfa2V5OiBmYWxzZTtcblxuICBAZWFjaCAkbmFtZSBpbiAkLXpmLWJyZWFrcG9pbnRzLWtleXMge1xuICAgIEBpZiAoJG5hbWUgPT0gJGtleSkge1xuICAgICAgJGZvdW5kX2tleTogdHJ1ZTtcbiAgICB9XG4gICAgQGlmIG5vdCAkZm91bmRfa2V5IHtcbiAgICAgICRsaXN0OiBhcHBlbmQoJGxpc3QsICRuYW1lKTtcbiAgICB9XG4gIH1cbiAgQHJldHVybiAkbGlzdDtcbn1cblxuLy8vIFJldHVybiBhIGxpc3Qgb2Ygb3VyIG5hbWVkIGJyZWFrcG9pbnRzIGxlc3MgdGhhbiAka2V5LiBVc2VmdWwgZm9yIGRlYWxpbmcgd2l0aFxuLy8vIHJlc3BvbnNpdmUgZ3V0dGVycyBmb3IgdGhlIGdyaWQuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbmcgLSBhIG5hbWVkIG9yIG5vbi1uYW1lZCBicmVha3BvaW5nLlxuLy8vXG4vLy8gQHJldHVybnMge0FycmF5fSBUaGUgbGlzdCBvZiBicmVha3BvaW50cyB1cCB0byBhbmQuIElmICRrZXkgaXMgYXV0bywgcmV0dXJucyBicmVha3BvaW50cyBhYm92ZSB0aGUgemVyb1xuQGZ1bmN0aW9uIC16Zi1jbG9zZXN0LW5hbWVkLWJyZWFrcG9pbnQoJGJyZWFrcG9pbnQpIHtcbiAgJGxhc3Q6ICQtemYtemVyby1icmVha3BvaW50O1xuICAkZm91bmQ6IGZhbHNlO1xuXG4gICR2YWx1ZTogdW5pdGxlc3MtY2FsYygkYnJlYWtwb2ludCwgMXB4KTtcbiAgQGVhY2ggJGtleSwgJHZhbCBpbiAkYnJlYWtwb2ludHMge1xuICAgIEBpZiBub3QgJGZvdW5kIHtcbiAgICAgIEBpZiB1bml0bGVzcy1jYWxjKCR2YWwpID4gJHZhbHVlIHtcbiAgICAgICAgJGZvdW5kOiB0cnVlO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICRsYXN0OiAka2V5O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJGxhc3Q7XG59XG5cbi8vLyBHZXQgYSB2YWx1ZSBmb3IgYSBicmVha3BvaW50IGZyb20gYSByZXNwb25zaXZlIGNvbmZpZyBtYXAgb3Igc2luZ2xlIHZhbHVlLlxuLy8vIC0gSWYgdGhlIGNvbmZpZyBpcyBhIHNpbmdsZSB2YWx1ZSwgcmV0dXJuIGl0IHJlZ2FyZGxlc3Mgb2YgYCR2YWx1ZWAuXG4vLy8gLSBJZiB0aGUgY29uZmlnIGlzIGEgbWFwIGFuZCBoYXMgdGhlIGtleSBgJHZhbHVlYCwgdGhlIGV4YWN0IGJyZWFrcG9pbnQgdmFsdWUgaXMgcmV0dXJuZWQuXG4vLy8gLSBJZiB0aGUgY29uZmlnIGlzIGEgbWFwIGFuZCBkb2VzICpub3QqIGhhdmUgdGhlIGJyZWFrcG9pbnQsIHRoZSB2YWx1ZSBtYXRjaGluZyB0aGUgbmV4dCBsb3dlc3QgYnJlYWtwb2ludCBpbiB0aGUgY29uZmlnIG1hcCBpcyByZXR1cm5lZC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJG1hcCAtIFJlc3BvbnNpdmUgY29uZmlnIG1hcCBvciBzaW5nbGUgdmFsdWUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkdmFsdWUgLSBCcmVha3BvaW50IG5hbWUgdG8gdXNlLlxuLy8vXG4vLy8gQHJldHVybiB7TWl4ZWR9IFRoZSBjb3JyZXNwb25kaW5nIGJyZWFrcG9pbnQgdmFsdWUuXG5AZnVuY3Rpb24gLXpmLWdldC1icC12YWwoJG1hcCwgJHZhbHVlKSB7XG4gIC8vIElmIHRoZSBnaXZlbiBtYXAgaXMgYSBzaW5nbGUgdmFsdWUsIHJldHVybiBpdFxuICBAaWYgdHlwZS1vZigkbWFwKSA9PSAnbnVtYmVyJyB7XG4gICAgQHJldHVybiAkbWFwO1xuICB9XG5cblxuICAvLyBDaGVjayBpZiB0aGUgYnJlYWtwb2ludCBuYW1lIGV4aXN0cyBnbG9iYWxseVxuICBAaWYgbm90IG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJHZhbHVlKSB7XG4gICAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSAnbnVtYmVyJyB7XG4gICAgICAkdmFsdWU6IC16Zi1jbG9zZXN0LW5hbWVkLWJyZWFrcG9pbnQoJHZhbHVlKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIEByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cbiAgLy8gQ2hlY2sgaWYgdGhlIGJyZWFrcG9pbnQgbmFtZSBleGlzdHMgaW4gdGhlIGxvY2FsIGNvbmZpZyBtYXBcbiAgQGVsc2UgaWYgbWFwLWhhcy1rZXkoJG1hcCwgJHZhbHVlKSB7XG4gICAgLy8gSWYgaXQgZG9lcywganVzdCByZXR1cm4gdGhlIHZhbHVlXG4gICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsICR2YWx1ZSk7XG4gIH1cbiAgLy8gT3RoZXJ3aXNlLCBmaW5kIHRoZSBuZXh0IGxvd2VzdCBicmVha3BvaW50IGFuZCByZXR1cm4gdGhhdCB2YWx1ZVxuICBAZWxzZSB7XG4gICAgJGFuY2hvcjogbnVsbDtcbiAgICAkZm91bmQ6IGZhbHNlO1xuXG4gICAgQGVhY2ggJGtleSwgJHZhbCBpbiAkYnJlYWtwb2ludHMge1xuICAgICAgQGlmIG5vdCAkZm91bmQge1xuICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJG1hcCwgJGtleSkge1xuICAgICAgICAgICRhbmNob3I6ICRrZXk7XG4gICAgICAgIH1cbiAgICAgICAgQGlmICRrZXkgPT0gJHZhbHVlIHtcbiAgICAgICAgICAkZm91bmQ6IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1hcCwgJGFuY2hvcik7XG4gIH1cbn1cblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgc21hbGwpIHtcbiAgJHNtYWxsLXVwOiBzY3JlZW47XG4gICRzbWFsbC1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChzbWFsbCBvbmx5KX0nKTtcbn1cblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgbWVkaXVtKSB7XG4gICRtZWRpdW0tdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KG1lZGl1bSl9Jyk7XG4gICRtZWRpdW0tb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobWVkaXVtIG9ubHkpfScpO1xufVxuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCBsYXJnZSkge1xuICAkbGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KGxhcmdlKX0nKTtcbiAgJGxhcmdlLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KGxhcmdlIG9ubHkpfScpO1xufVxuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCB4bGFyZ2UpIHtcbiAgJHhsYXJnZS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoeGxhcmdlKX0nKTtcbiAgJHhsYXJnZS1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludCh4bGFyZ2Ugb25seSl9Jyk7XG59XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHh4bGFyZ2UpIHtcbiAgJHh4bGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHh4bGFyZ2UpfScpO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gU2V0IHRoZSB3aWR0aCBvZiBhIGdyaWQgY29sdW1uLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJHdpZHRoIFskZ3JpZC1jb2x1bW4tY291bnRdIC0gV2lkdGggdG8gbWFrZSB0aGUgY29sdW1uLiBZb3UgY2FuIHBhc3MgaW4gYW55IHZhbHVlIGFjY2VwdGVkIGJ5IHRoZSBgZ3JpZC1jb2x1bW4oKWAgZnVuY3Rpb24sIHN1Y2ggYXMgYDZgLCBgNTAlYCwgb3IgYDEgb2YgMmAuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tc2l6ZShcbiAgJGNvbHVtbnM6ICRncmlkLWNvbHVtbi1jb3VudFxuKSB7XG4gIHdpZHRoOiBncmlkLWNvbHVtbigkY29sdW1ucyk7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1zaXplKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1zaXplXG5AbWl4aW4gZ3JpZC1jb2wtc2l6ZShcbiAgJGNvbHVtbnM6ICRncmlkLWNvbHVtbi1jb3VudFxuKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLXNpemUoJGNvbHVtbnMpO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gQ2FsY3VsYXRlcyB0aGUgd2lkdGggb2YgYSBjb2x1bW4gYmFzZWQgb24gYSBudW1iZXIgb2YgZmFjdG9ycy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICRjb2x1bW5zXG4vLy8gICBXaWR0aCBvZiB0aGUgY29sdW1uLiBBY2NlcHRzIG11bHRpcGxlIHZhbHVlczpcbi8vLyAgIC0gQSBwZXJjZW50YWdlIHZhbHVlIHdpbGwgbWFrZSB0aGUgY29sdW1uIHRoYXQgZXhhY3Qgc2l6ZS5cbi8vLyAgIC0gQSBzaW5nbGUgZGlnaXQgd2lsbCBtYWtlIHRoZSBjb2x1bW4gc3BhbiB0aGF0IG51bWJlciBvZiBjb2x1bW5zIHdpZGUsIHRha2luZyBpbnRvIGFjY291bnQgdGhlIGNvbHVtbiBjb3VudCBvZiB0aGUgcGFyZW50IHJvdy5cbi8vLyAgIC0gQSBsaXN0IG9mIHRoZSBmb3JtYXQgXCJ4IG9mIHlcIiAod2l0aG91dCBxdW90ZXMpIHdpbGwgbWFrZSBhIGNvbHVtbiB0aGF0IGlzICp4KiBjb2x1bW5zIHdpZGUsIGFzc3VtaW5nICp5KiB0b3RhbCBjb2x1bW5zIGZvciB0aGUgcGFyZW50LlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gQSBjYWxjdWxhdGVkIHBlcmNlbnRhZ2UgdmFsdWUuXG5AZnVuY3Rpb24gZ3JpZC1jb2x1bW4oJGNvbHVtbnMpIHtcbiAgJHdpZHRoOiAwJTtcblxuICAvLyBQYXJzaW5nIHBlcmNlbnRzLCBkZWNpbWFscywgYW5kIGNvbHVtbiBjb3VudHNcbiAgQGlmIHR5cGUtb2YoJGNvbHVtbnMpID09ICdudW1iZXInIHtcbiAgICBAaWYgdW5pdCgkY29sdW1ucykgPT0gJyUnIHtcbiAgICAgICR3aWR0aDogJGNvbHVtbnM7XG4gICAgfVxuICAgIEBlbHNlIGlmICRjb2x1bW5zIDwgMSB7XG4gICAgICAkd2lkdGg6IHBlcmNlbnRhZ2UoJGNvbHVtbnMpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkd2lkdGg6IHBlcmNlbnRhZ2UoJGNvbHVtbnMgLyAkZ3JpZC1jb2x1bW4tY291bnQpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFBhcnNpbmcgXCJuIG9mIG5cIiBleHByZXNzaW9uc1xuICBAZWxzZSBpZiB0eXBlLW9mKCRjb2x1bW5zKSA9PSAnbGlzdCcge1xuICAgIEBpZiBsZW5ndGgoJGNvbHVtbnMpICE9IDMge1xuICAgICAgQGVycm9yICdXcm9uZyBzeW50YXggZm9yIGdyaWQtY29sdW1uKCkuIFVzZSB0aGUgZm9ybWF0IFwibiBvZiBuXCIuJztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJHdpZHRoOiBwZXJjZW50YWdlKG50aCgkY29sdW1ucywgMSkgLyBudGgoJGNvbHVtbnMsIDMpKTtcbiAgICB9XG4gIH1cblxuICAvLyBBbnl0aGluZyBlbHNlIGlzIGluY29ycmVjdFxuICBAZWxzZSB7XG4gICAgQGVycm9yICdXcm9uZyBzeW50YXggZm9yIGdyaWQtY29sdW1uKCkuIFVzZSBhIG51bWJlciwgZGVjaW1hbCwgcGVyY2VudGFnZSwgb3IgXCJuIG9mIG5cIi4nO1xuICB9XG5cbiAgQHJldHVybiAkd2lkdGg7XG59XG5cbi8vLyBDcmVhdGVzIGEgZ3JpZCBjb2x1bW4uXG4vLy9cbi8vLyBAcGFyYW0ge01peGVkfSAkY29sdW1ucyBbJGdyaWQtY29sdW1uLWNvdW50XSAtIFdpZHRoIG9mIHRoZSBjb2x1bW4uIFJlZmVyIHRvIHRoZSBgZ3JpZC1jb2x1bW4oKWAgZnVuY3Rpb24gdG8gc2VlIHBvc3NpYmxlIHZhbHVlcy5cbi8vLyBAcGFyYW0ge01peGVkfSAkZ3V0dGVycyBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBTcGFjaW5nIGJldHdlZW4gY29sdW1ucy4gUmVmZXIgdG8gdGhlIGBncmlkLWNvbHVtbi1ndXR0ZXIoKWAgZnVuY3Rpb24gdG8gc2VlIHBvc3NpYmxlIHZhbHVlcy5cbkBtaXhpbiBncmlkLWNvbHVtbihcbiAgJGNvbHVtbnM6ICRncmlkLWNvbHVtbi1jb3VudCxcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1zaXplKCRjb2x1bW5zKTtcbiAgZmxvYXQ6ICRnbG9iYWwtbGVmdDtcblxuICAvLyBHdXR0ZXJzXG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWd1dHRlcigkZ3V0dGVyczogJGd1dHRlcnMpO1xuXG4gIC8vIExhc3QgY29sdW1uIGFsaWdubWVudFxuICBAaWYgJGdyaWQtY29sdW1uLWFsaWduLWVkZ2Uge1xuICAgICY6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICBmbG9hdDogJGdsb2JhbC1yaWdodDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBncmlkIGNvbHVtbiByb3cuIFRoaXMgaXMgdGhlIGVxdWl2YWxlbnQgb2YgYWRkaW5nIGAucm93YCBhbmQgYC5jb2x1bW5gIHRvIHRoZSBzYW1lIGVsZW1lbnQuXG4vLy9cbi8vLyBAcGFyYW0ge01peGVkfSAkZ3V0dGVycyBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBXaWR0aCBvZiB0aGUgZ3V0dGVycyBvbiBlaXRoZXIgc2lkZSBvZiB0aGUgY29sdW1uIHJvdy4gUmVmZXIgdG8gdGhlIGBncmlkLWNvbHVtbi1ndXR0ZXIoKWAgZnVuY3Rpb24gdG8gc2VlIHBvc3NpYmxlIHZhbHVlcy5cbkBtaXhpbiBncmlkLWNvbHVtbi1yb3coXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgQGluY2x1ZGUgZ3JpZC1yb3c7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRndXR0ZXJzOiAkZ3V0dGVycyk7XG5cbiAgJixcbiAgJjpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgfVxufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4oKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uXG5AZnVuY3Rpb24gZ3JpZC1jb2woXG4gICRjb2x1bW5zOiAkZ3JpZC1jb2x1bW4tY291bnRcbikge1xuICBAcmV0dXJuIGdyaWQtY29sdW1uKCRjb2x1bW5zKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtblxuQG1peGluIGdyaWQtY29sKFxuICAkY29sdW1uczogJGdyaWQtY29sdW1uLWNvdW50LFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2x1bW5zLCAkZ3V0dGVycyk7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1yb3coKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLXJvd1xuQG1peGluIGdyaWQtY29sLXJvdyhcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1yb3coJGd1dHRlcnMpO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gUmVwb3NpdGlvbiBhIGNvbHVtbi5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfEtleXdvcmR9ICRwb3NpdGlvbiAtIERpcmVjdGlvbiBhbmQgYW1vdW50IHRvIG1vdmUuIFRoZSBjb2x1bW4gd2lsbCBtb3ZlIGVxdWFsIHRvIHRoZSB3aWR0aCBvZiB0aGUgY29sdW1uIGNvdW50IHNwZWNpZmllZC4gQSBwb3NpdGl2ZSBudW1iZXIgd2lsbCBwdXNoIHRoZSBjb2x1bW4gdG8gdGhlIHJpZ2h0LCB3aGlsZSBhIG5lZ2F0aXZlIG51bWJlciB3aWxsIHB1bGwgaXQgdG8gdGhlIGxlZnQuIFNldCB0byBjZW50ZXIgdG8gY2VudGVyIHRoZSBjb2x1bW4uXG5AbWl4aW4gZ3JpZC1jb2x1bW4tcG9zaXRpb24oJHBvc2l0aW9uKSB7XG4gIEBpZiB0eXBlLW9mKCRwb3NpdGlvbikgPT0gJ251bWJlcicge1xuICAgICRvZmZzZXQ6IHBlcmNlbnRhZ2UoJHBvc2l0aW9uIC8gJGdyaWQtY29sdW1uLWNvdW50KTtcblxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAjeyRnbG9iYWwtbGVmdH06ICRvZmZzZXQ7XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IGNlbnRlciB7XG4gICAgJiwgJjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgIGZsb2F0OiBub25lO1xuICAgICAgY2xlYXI6IGJvdGg7XG4gICAgfVxuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgfVxuICBAZWxzZSB7XG4gICAgQHdhcm4gJ1dyb25nIHN5bnRheCBmb3IgZ3JpZC1jb2x1bW4tcG9zaXRpb24oKS4gRW50ZXIgYSBwb3NpdGl2ZSBvciBuZWdhdGl2ZSBudW1iZXIsIG9yIGNlbnRlci4nO1xuICB9XG59XG5cbi8vLyBSZXNldCBhIHBvc2l0aW9uIGRlZmluaXRpb24uXG5AbWl4aW4gZ3JpZC1jb2x1bW4tdW5wb3NpdGlvbiB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuXG4vLy8gT2Zmc2V0cyBhIGNvbHVtbiB0byB0aGUgcmlnaHQgYnkgYCRuYCBjb2x1bW5zLlxuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICRuIC0gV2lkdGggdG8gb2Zmc2V0IGJ5LiBZb3UgY2FuIHBhc3MgaW4gYW55IHZhbHVlIGFjY2VwdGVkIGJ5IHRoZSBgZ3JpZC1jb2x1bW4oKWAgbWl4aW4sIHN1Y2ggYXMgYDZgLCBgNTAlYCwgb3IgYDEgb2YgMmAuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tb2Zmc2V0KCRuKSB7XG4gIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IGdyaWQtY29sdW1uKCRuKTtcbn1cblxuLy8vIERpc2FibGUgdGhlIGRlZmF1bHQgYmVoYXZpb3Igb2YgdGhlIGxhc3QgY29sdW1uIGluIGEgcm93IGFsaWduaW5nIHRvIHRoZSBvcHBvc2l0ZSBlZGdlLlxuQG1peGluIGdyaWQtY29sdW1uLWVuZCB7XG4gIC8vIFRoaXMgZXh0cmEgc3BlY2lmaWNpdHkgaXMgcmVxdWlyZWQgZm9yIHRoZSBwcm9wZXJ0eSB0byBiZSBhcHBsaWVkXG4gICY6bGFzdC1jaGlsZDpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogJGdsb2JhbC1sZWZ0O1xuICB9XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1wb3NpdGlvbigpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tcG9zaXRpb25cbkBtaXhpbiBncmlkLWNvbC1wb3MoJHBvc2l0aW9uKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLXBvc2l0aW9uKCRwb3NpdGlvbik7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi11bnBvc2l0aW9uKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi11bnBvc2l0aW9uXG5AbWl4aW4gZ3JpZC1jb2wtdW5wb3Mge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi11bnBvc2l0aW9uO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tb2Zmc2V0KClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1vZmZzZXRcbkBtaXhpbiBncmlkLWNvbC1vZmYoJG4pIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tb2Zmc2V0KCRuKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLWVuZCgpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tZW5kXG5AbWl4aW4gZ3JpZC1jb2wtZW5kIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tZW5kO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gU2l6ZXMgY2hpbGQgZWxlbWVudHMgc28gdGhhdCBgJG5gIG51bWJlciBvZiBpdGVtcyBhcHBlYXIgb24gZWFjaCByb3cuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJG4gLSBOdW1iZXIgb2YgZWxlbWVudHMgdG8gZGlzcGxheSBwZXIgcm93LlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VsZWN0b3IgWycuY29sdW1uJ10gLSBTZWxlY3RvcihzKSB0byB1c2UgZm9yIGNoaWxkIGVsZW1lbnRzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICRndXR0ZXJcbi8vLyAgIFRoZSBndXR0ZXIgdG8gYXBwbHkgdG8gY2hpbGQgZWxlbWVudHMuIEFjY2VwdHMgbXVsdGlwbGUgdmFsdWVzOlxuLy8vICAgLSAkZ3JpZC1jb2x1bW4tZ3V0dGVyIHdpbGwgdXNlIHRoZSB2YWx1ZXMgaW4gdGhlICRncmlkLWNvbHVtbi1ndXR0ZXIgbWFwLCBpbmNsdWRpbmcgYnJlYWtwb2ludCBzaXplcy5cbi8vLyAgIC0gQSBmaXhlZCBudW1lcmljIHZhbHVlIHdpbGwgYXBwbHkgdGhpcyBndXR0ZXIgdG8gYWxsIGJyZWFrcG9pbnRzLlxuQG1peGluIGdyaWQtbGF5b3V0KFxuICAkbixcbiAgJHNlbGVjdG9yOiAnLmNvbHVtbicsXG4gICRndXR0ZXI6IG51bGxcbikge1xuICAmID4gI3skc2VsZWN0b3J9IHtcbiAgICBmbG9hdDogJGdsb2JhbC1sZWZ0O1xuICAgIHdpZHRoOiBwZXJjZW50YWdlKDEvJG4pO1xuXG4gICAgLy8gSWYgYSAkZ3V0dGVyIHZhbHVlIGlzIHBhc3NlZFxuICAgIEBpZigkZ3V0dGVyKSB7XG4gICAgICAvLyBHdXR0ZXJzXG4gICAgICBAaWYgdHlwZS1vZigkZ3V0dGVyKSA9PSAnbWFwJyB7XG4gICAgICAgIEBlYWNoICRicmVha3BvaW50LCAkdmFsdWUgaW4gJGd1dHRlciB7XG4gICAgICAgICAgJHBhZGRpbmc6IHJlbS1jYWxjKCR2YWx1ZSkgLyAyO1xuXG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkYnJlYWtwb2ludCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHBhZGRpbmc7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRwYWRkaW5nO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2UgaWYgdHlwZS1vZigkZ3V0dGVyKSA9PSAnbnVtYmVyJyBhbmQgc3RyaXAtdW5pdCgkZ3V0dGVyKSA+IDAge1xuICAgICAgICAkcGFkZGluZzogcmVtLWNhbGMoJGd1dHRlcikgLyAyO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkcGFkZGluZztcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkcGFkZGluZztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTtcbiAgICB9XG5cbiAgICAmOm50aC1vZi10eXBlKCN7JG59bisxKSB7XG4gICAgICBjbGVhcjogYm90aDtcbiAgICB9XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6ICRnbG9iYWwtbGVmdDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgZXh0cmEgQ1NTIHRvIGJsb2NrIGdyaWQgY2hpbGRyZW4gc28gdGhlIGxhc3QgaXRlbXMgaW4gdGhlIHJvdyBjZW50ZXIgYXV0b21hdGljYWxseS4gQXBwbHkgdGhpcyB0byB0aGUgY29sdW1ucywgbm90IHRoZSByb3cuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJG4gLSBOdW1iZXIgb2YgaXRlbXMgdGhhdCBhcHBlYXIgaW4gZWFjaCByb3cuXG5AbWl4aW4gZ3JpZC1sYXlvdXQtY2VudGVyLWxhc3QoJG4pIHtcbiAgQGZvciAkaSBmcm9tIDEgdG8gJG4ge1xuICAgIEBpZiAkaSA9PSAxIHtcbiAgICAgICY6bnRoLWNoaWxkKCN7JG59bisxKTpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6ICgxMDAgLSAxMDAvJG4gKiAkaSkgLyAyICogMSU7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICY6bnRoLWNoaWxkKCN7JG59bisxKTpudGgtbGFzdC1jaGlsZCgjeyRpfSkge1xuICAgICAgICBtYXJnaW4tbGVmdDogKDEwMCAtIDEwMC8kbiAqICRpKSAvIDIgKiAxJTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHR5cG9ncmFwaHktYmFzZVxuLy8vL1xuXG4vLyBCYXNlIFR5cG9ncmFwaHlcbi8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXG4vLyBUaGVzZSBhcmUgc3R5bGVzIGFwcGxpZWQgdG8gYmFzaWMgSFRNTCB0YWdzLCBpbmNsdWRpbmc6XG4vLyAgIC0gUGFyYWdyYXBocyA8cD5cbi8vICAgLSBCb2xkL2l0YWxpY3MgPGI+IDxzdHJvbmc+IDxpPiA8ZW0+XG4vLyAgIC0gU21hbGwgdGV4dCA8c21hbGw+XG4vLyAgIC0gSGVhZGluZ3MgPGgxPi08aDY+XG4vLyAgIC0gQW5jaG9ycyA8YT5cbi8vICAgLSBEaXZpZGVycyA8aHI+XG4vLyAgIC0gTGlzdHMgPHVsPiA8b2w+IDxkbD5cbi8vICAgLSBCbG9ja3F1b3RlcyA8YmxvY2txdW90ZT5cbi8vICAgLSBDb2RlIGJsb2NrcyA8Y29kZT5cbi8vICAgLSBBYmJyZXZpYXRpb25zIDxhYmJyPlxuLy8gICAtIENpdGF0aW9ucyA8Y2l0ZT5cbi8vICAgLSBLZXlzdHJva2VzIDxrYmQ+XG5cbi8vLyBGb250IGZhbWlseSBmb3IgaGVhZGVyIGVsZW1lbnRzLlxuLy8vIEB0eXBlIFN0cmluZyB8IExpc3RcbiRoZWFkZXItZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRoZWFkZXItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc3R5bGUgKGUuZy4gaXRhbGljaXplZCkgb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRoZWFkZXItZm9udC1zdHlsZTogbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzdGFjayB1c2VkIGZvciBlbGVtZW50cyB0aGF0IHVzZSBtb25vc3BhY2VkIHR5cGUsIHN1Y2ggYXMgY29kZSBzYW1wbGVzXG4vLy8gQHR5cGUgU3RyaW5nIHwgTGlzdFxuJGZvbnQtZmFtaWx5LW1vbm9zcGFjZTogQ29uc29sYXMsICdMaWJlcmF0aW9uIE1vbm8nLCBDb3VyaWVyLCBtb25vc3BhY2UgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIENvbG9yXG4kaGVhZGVyLWNvbG9yOiBpbmhlcml0ICFkZWZhdWx0O1xuXG4vLy8gTGluZSBoZWlnaHQgb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRoZWFkZXItbGluZWhlaWdodDogMS40ICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJGhlYWRlci1tYXJnaW4tYm90dG9tOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBTdHlsZXMgZm9yIGhlYWRpbmdzIGF0IHZhcmlvdXMgc2NyZWVuIHNpemVzLiBFYWNoIGtleSBpcyBhIGJyZWFrcG9pbnQsIGFuZCBlYWNoIHZhbHVlIGlzIGEgbWFwIG9mIGhlYWRpbmcgc3R5bGVzLlxuLy8vIEB0eXBlIE1hcFxuJGhlYWRlci1zdHlsZXM6IChcbiAgc21hbGw6IChcbiAgICAnaDEnOiAoJ2ZvbnQtc2l6ZSc6IDI0KSxcbiAgICAnaDInOiAoJ2ZvbnQtc2l6ZSc6IDIwKSxcbiAgICAnaDMnOiAoJ2ZvbnQtc2l6ZSc6IDE5KSxcbiAgICAnaDQnOiAoJ2ZvbnQtc2l6ZSc6IDE4KSxcbiAgICAnaDUnOiAoJ2ZvbnQtc2l6ZSc6IDE3KSxcbiAgICAnaDYnOiAoJ2ZvbnQtc2l6ZSc6IDE2KSxcbiAgKSxcbiAgbWVkaXVtOiAoXG4gICAgJ2gxJzogKCdmb250LXNpemUnOiA0OCksXG4gICAgJ2gyJzogKCdmb250LXNpemUnOiA0MCksXG4gICAgJ2gzJzogKCdmb250LXNpemUnOiAzMSksXG4gICAgJ2g0JzogKCdmb250LXNpemUnOiAyNSksXG4gICAgJ2g1JzogKCdmb250LXNpemUnOiAyMCksXG4gICAgJ2g2JzogKCdmb250LXNpemUnOiAxNiksXG4gICksXG4pICFkZWZhdWx0O1xuXG4vLyAkaGVhZGVyLXN0eWxlcyBtYXAgaXMgYnVpbHQgZnJvbSAkaGVhZGVyLXNpemVzIGluIG9yZGVyIHRvIGVuc3VyZSBkb3dud2FyZCBjb21wYXRpYmlsaXR5XG4vLyB3aGVuICRoZWFkZXItc2l6ZXMgaXMgZGVwcmVjaWF0ZWQsICRoZWFkZXItc3R5bGVzIG5lZWRzIHRvIGdldCAhZGVmYXVsdCB2YWx1ZXMgbGlrZSBzZXR0aW5ncy5zY3NzXG5AZnVuY3Rpb24gYnVpbGRfZnJvbV9oZWFkZXItc2l6ZXMoJGhlYWRlci1zaXplcykge1xuICBAd2FybiAnTm90ZSwgdGhhdCAkaGVhZGVyLXNpemVzIGhhcyBiZWVuIHJlcGxhY2VkIHdpdGggJGhlYWRlci1zdHlsZXMuICRoZWFkZXItc2l6ZXMgc3RpbGwgd29ya3MsIGJ1dCBpdCBpcyBnb2luZyB0byBiZSBkZXByZWNpYXRlZC4nO1xuICAkaGVhZGVyLXN0eWxlczogKCk7XG4gIEBlYWNoICRzaXplLCAkaGVhZGVycyBpbiAkaGVhZGVyLXNpemVzIHtcbiAgICAkaGVhZGVyLW1hcDogKCk7XG4gICAgQGVhY2ggJGhlYWRlciwgJGZvbnQtc2l6ZSBpbiAkaGVhZGVycyB7XG4gICAgICAkaGVhZGVyLW1hcDogbWFwLW1lcmdlKCRoZWFkZXItbWFwLCAoJGhlYWRlcjogKCdmb250LXNpemUnOiAkZm9udC1zaXplKSkpOyAgXG4gICAgfVxuICAgICRoZWFkZXItc3R5bGVzOiBtYXAtbWVyZ2UoJGhlYWRlci1zdHlsZXMsICgkc2l6ZTogJGhlYWRlci1tYXApKTtcbiAgfVxuICBAcmV0dXJuICRoZWFkZXItc3R5bGVzO1xufVxuXG4vLyBJZiBpdCBleGlzdHMgJGhlYWRlcnMtc2l6ZXMgaXMgdXNlZCB0byBidWlsZCAkaGVhZGVyLXN0eWxlcy4gU2VlIHRoZSBkb2N1bWVudGF0aW9uLlxuQGlmIHZhcmlhYmxlLWV4aXN0cyhoZWFkZXItc2l6ZXMpIHtcbiAgJGhlYWRlci1zdHlsZXM6IGJ1aWxkX2Zyb21faGVhZGVyLXNpemVzKCRoZWFkZXItc2l6ZXMpO1xufVxuXG4vLy8gVGV4dCByZW5kZXJpbmcgbWV0aG9kIG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kaGVhZGVyLXRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgb2YgYDxzbWFsbD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJHNtYWxsLWZvbnQtc2l6ZTogODAlICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgYDxzbWFsbD5gIGVsZW1lbnRzIHdoZW4gcGxhY2VkIGluc2lkZSBoZWFkZXJzLlxuLy8vIEB0eXBlIENvbG9yXG4kaGVhZGVyLXNtYWxsLWZvbnQtY29sb3I6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IG9mIHRleHQgaW5zaWRlIGA8cD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJHBhcmFncmFwaC1saW5laGVpZ2h0OiAxLjYgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIG9mIHBhcmFncmFwaHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFyYWdyYXBoLW1hcmdpbi1ib3R0b206IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IHJlbmRlcmluZyBtZXRob2QgZm9yIHBhcmFncmFwaCB0ZXh0LlxuLy8vIEB0eXBlIFN0cmluZ1xuJHBhcmFncmFwaC10ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5ICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiBjb2RlIHNhbXBsZXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRjb2RlLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGZhbWlseSBvZiBjb2RlIHNhbXBsZXMuXG4vLy8gQHR5cGUgU3RyaW5nIHwgTGlzdFxuJGNvZGUtZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1tb25vc3BhY2UgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBvZiB0ZXh0IGluIGNvZGUgc2FtcGxlcy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRjb2RlLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGNvZGUgc2FtcGxlcy5cbi8vLyBAdHlwZSBDb2xvclxuJGNvZGUtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgYXJvdW5kIGNvZGUgc2FtcGxlcy5cbi8vLyBAdHlwZSBMaXN0XG4kY29kZS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGFyb3VuZCB0ZXh0IG9mIGNvZGUgc2FtcGxlcy5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kY29kZS1wYWRkaW5nOiByZW0tY2FsYygyIDUgMSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBsaW5rcy5cbi8vLyBAdHlwZSBDb2xvclxuJGFuY2hvci1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBsaW5rcyBvbiBob3Zlci5cbi8vLyBAdHlwZSBDb2xvclxuJGFuY2hvci1jb2xvci1ob3Zlcjogc2NhbGUtY29sb3IoJGFuY2hvci1jb2xvciwgJGxpZ2h0bmVzczogLTE0JSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgZGVvY3JhdGlvbiBmb3IgbGlua3MuXG4vLy8gQHR5cGUgU3RyaW5nXG4kYW5jaG9yLXRleHQtZGVjb3JhdGlvbjogbm9uZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBkZWNvcmF0aW9uIGZvciBsaW5rcyBvbiBob3Zlci5cbi8vLyBAdHlwZSBTdHJpbmdcbiRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyOiBub25lICFkZWZhdWx0O1xuXG4vLy8gTWF4aW11bSB3aWR0aCBvZiBhIGRpdmlkZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaHItd2lkdGg6ICRnbG9iYWwtd2lkdGggIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciBmb3IgYSBkaXZpZGVyLlxuLy8vIEB0eXBlIExpc3RcbiRoci1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IG1hcmdpbiBmb3IgYSBkaXZpZGVyLlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRoci1tYXJnaW46IHJlbS1jYWxjKDIwKSBhdXRvICFkZWZhdWx0O1xuXG4vLy8gTGluZSBoZWlnaHQgZm9yIGl0ZW1zIGluIGEgbGlzdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsaXN0LWxpbmVoZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZWhlaWdodCAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBtYXJnaW4gZm9yIGl0ZW1zIGluIGEgbGlzdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsaXN0LW1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbSAhZGVmYXVsdDtcblxuLy8vIEJ1bGxldCB0eXBlIHRvIHVzZSBmb3IgdW5vcmRlcmVkIGxpc3RzIChlLmcuLCBgc3F1YXJlYCwgYGNpcmNsZWAsIGBkaXNjYCkuXG4vLy8gQHR5cGUgU3RyaW5nXG4kbGlzdC1zdHlsZS10eXBlOiBkaXNjICFkZWZhdWx0O1xuXG4vLy8gUG9zaXRpb25pbmcgZm9yIGJ1bGxldHMgb24gdW5vcmRlcmVkIGxpc3QgaXRlbXMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kbGlzdC1zdHlsZS1wb3NpdGlvbjogb3V0c2lkZSAhZGVmYXVsdDtcblxuLy8vIExlZnQgKG9yIHJpZ2h0KSBtYXJnaW4gZm9yIGxpc3RzLlxuLy8vIEB0eXBlIE51bWJlclxuJGxpc3Qtc2lkZS1tYXJnaW46IDEuMjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0IChvciByaWdodCkgbWFyZ2luIGZvciBhIGxpc3QgaW5zaWRlIGEgbGlzdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsaXN0LW5lc3RlZC1zaWRlLW1hcmdpbjogMS4yNXJlbSAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBtYXJnaW4gZm9yIGA8ZGw+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkZWZubGlzdC1tYXJnaW4tYm90dG9tOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgZm9yIGA8ZHQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRkZWZubGlzdC10ZXJtLXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcblxuLy8vIFNwYWNpbmcgYmV0d2VlbiBgPGR0PmAgYW5kIGA8ZGQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkZWZubGlzdC10ZXJtLW1hcmdpbi1ib3R0b206IDAuM3JlbSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgYDxibG9ja3F1b3RlPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRibG9ja3F1b3RlLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBpbnNpZGUgYSBgPGJsb2NrcXVvdGU+YCBlbGVtZW50LlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRibG9ja3F1b3RlLXBhZGRpbmc6IHJlbS1jYWxjKDkgMjAgMCAxOSkgIWRlZmF1bHQ7XG5cbi8vLyBTaWRlIGJvcmRlciBmb3IgYDxibG9ja3F1b3RlPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTGlzdFxuJGJsb2NrcXVvdGUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIGZvciBgPGNpdGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjaXRlLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBmb3IgYDxjaXRlPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRjaXRlLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gUHNldWRvIGNvbnRlbnQgZm9yIGA8Y2l0ZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGNpdGUtcHNldWRvLWNvbnRlbnQ6ICdcXDIwMTQgXFwwMDIwJyAhZGVmYXVsdDtcblxuLy8vIEZvbnQgZmFtaWx5IGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIFN0cmluZyB8IExpc3RcbiRrZXlzdHJva2UtZm9udDogJGZvbnQtZmFtaWx5LW1vbm9zcGFjZSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3IgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRrZXlzdHJva2UtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRrZXlzdHJva2UtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRrZXlzdHJva2UtcGFkZGluZzogcmVtLWNhbGMoMiA0IDApICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHJhZGl1cyBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4ka2V5c3Ryb2tlLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gYm9yZGVyIHN0eWxlIGZvciBgPGFiYnI+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBMaXN0XG4kYWJici11bmRlcmxpbmU6IDFweCBkb3R0ZWQgJGJsYWNrICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi10eXBvZ3JhcGh5LWJhc2Uge1xuICAvLyBUeXBvZ3JhcGh5IHJlc2V0c1xuICBkaXYsXG4gIGRsLFxuICBkdCxcbiAgZGQsXG4gIHVsLFxuICBvbCxcbiAgbGksXG4gIGgxLFxuICBoMixcbiAgaDMsXG4gIGg0LFxuICBoNSxcbiAgaDYsXG4gIHByZSxcbiAgZm9ybSxcbiAgcCxcbiAgYmxvY2txdW90ZSxcbiAgdGgsXG4gIHRkIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIC8vIFBhcmFncmFwaHNcbiAgcCB7XG4gICAgbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xuXG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgIGxpbmUtaGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmVoZWlnaHQ7XG4gICAgdGV4dC1yZW5kZXJpbmc6ICRwYXJhZ3JhcGgtdGV4dC1yZW5kZXJpbmc7XG4gIH1cblxuICAvLyBFbXBoYXNpemVkIHRleHRcbiAgZW0sXG4gIGkge1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIFN0cm9uZyB0ZXh0XG4gIHN0cm9uZyxcbiAgYiB7XG4gICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBTbWFsbCB0ZXh0XG4gIHNtYWxsIHtcbiAgICBmb250LXNpemU6ICRzbWFsbC1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBIZWFkaW5nc1xuICBoMSxcbiAgaDIsXG4gIGgzLFxuICBoNCxcbiAgaDUsXG4gIGg2IHtcbiAgICBmb250LWZhbWlseTogJGhlYWRlci1mb250LWZhbWlseTtcbiAgICBmb250LXN0eWxlOiAkaGVhZGVyLWZvbnQtc3R5bGU7XG4gICAgZm9udC13ZWlnaHQ6ICRoZWFkZXItZm9udC13ZWlnaHQ7XG4gICAgY29sb3I6ICRoZWFkZXItY29sb3I7XG4gICAgdGV4dC1yZW5kZXJpbmc6ICRoZWFkZXItdGV4dC1yZW5kZXJpbmc7XG5cbiAgICBzbWFsbCB7XG4gICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgIGNvbG9yOiAkaGVhZGVyLXNtYWxsLWZvbnQtY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLy8gSGVhZGluZyBzdHlsZXNcbiAgQGVhY2ggJHNpemUsICRoZWFkZXJzIGluICRoZWFkZXItc3R5bGVzIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICBAZWFjaCAkaGVhZGVyLCAkaGVhZGVyLWRlZnMgaW4gJGhlYWRlcnMge1xuICAgICAgICAkZm9udC1zaXplLXRlbXA6IDFyZW07XG4gICAgICAgICN7JGhlYWRlcn0ge1xuXG4gICAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgZm9udC1zaXplKSB7XG4gICAgICAgICAgICAkZm9udC1zaXplLXRlbXA6IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBmb250LXNpemUpKTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS10ZW1wO1xuICAgICAgICAgIH0gQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBmcykge1xuICAgICAgICAgICAgJGZvbnQtc2l6ZS10ZW1wOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgZnMpKTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS10ZW1wO1xuICAgICAgICAgIH0gQGVsc2UgaWYgJHNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLXRlbXA7XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIGxpbmUtaGVpZ2h0KSB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogdW5pdGxlc3MtY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbGluZS1oZWlnaHQpLCAkZm9udC1zaXplLXRlbXApO1xuICAgICAgICAgIH0gQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBsaCkge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHVuaXRsZXNzLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIGxoKSwgJGZvbnQtc2l6ZS10ZW1wKTtcbiAgICAgICAgICB9IEBlbHNlIGlmICRzaXplID09ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiB1bml0bGVzcy1jYWxjKCRoZWFkZXItbGluZWhlaWdodCwgJGZvbnQtc2l6ZS10ZW1wKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBtYXJnaW4tdG9wKSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbWFyZ2luLXRvcCkpO1xuICAgICAgICAgIH0gQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBtdCkge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIG10KSk7XG4gICAgICAgICAgfSBAZWxzZSBpZiAkc2l6ZSA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBtYXJnaW4tYm90dG9tKSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbWFyZ2luLWJvdHRvbSkpO1xuICAgICAgICAgIH0gQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBtYikge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIG1iKSk7XG4gICAgICAgICAgfSBAZWxzZSBpZiAkc2l6ZSA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygkaGVhZGVyLW1hcmdpbi1ib3R0b20pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIExpbmtzXG4gIGEge1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgIGNvbG9yOiAkYW5jaG9yLWNvbG9yO1xuICAgIHRleHQtZGVjb3JhdGlvbjogJGFuY2hvci10ZXh0LWRlY29yYXRpb247XG5cbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgY29sb3I6ICRhbmNob3ItY29sb3ItaG92ZXI7XG4gICAgICBAaWYgJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXIgIT0gJGFuY2hvci10ZXh0LWRlY29yYXRpb24ge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246ICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIGltZyB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gSG9yaXpvbnRhbCBydWxlXG4gIGhyIHtcbiAgICBjbGVhcjogYm90aDtcblxuICAgIG1heC13aWR0aDogJGhyLXdpZHRoO1xuICAgIGhlaWdodDogMDtcbiAgICBtYXJnaW46ICRoci1tYXJnaW47XG5cbiAgICBib3JkZXItdG9wOiAwO1xuICAgIGJvcmRlci1yaWdodDogMDtcbiAgICBib3JkZXItYm90dG9tOiAkaHItYm9yZGVyO1xuICAgIGJvcmRlci1sZWZ0OiAwO1xuICB9XG5cbiAgLy8gTGlzdHNcbiAgdWwsXG4gIG9sLFxuICBkbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogJGxpc3QtbWFyZ2luLWJvdHRvbTtcbiAgICBsaXN0LXN0eWxlLXBvc2l0aW9uOiAkbGlzdC1zdHlsZS1wb3NpdGlvbjtcbiAgICBsaW5lLWhlaWdodDogJGxpc3QtbGluZWhlaWdodDtcbiAgfVxuXG4gIC8vIExpc3QgaXRlbXNcbiAgbGkge1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIFVub3JkZXJlZCBsaXN0c1xuICB1bCB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJGxpc3Qtc2lkZS1tYXJnaW47XG4gICAgbGlzdC1zdHlsZS10eXBlOiAkbGlzdC1zdHlsZS10eXBlO1xuICB9XG5cbiAgLy8gT3JkZXJlZCBsaXN0c1xuICBvbCB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJGxpc3Qtc2lkZS1tYXJnaW47XG4gIH1cblxuICAvLyBOZXN0ZWQgdW5vcmRlcmVkL29yZGVyZWQgbGlzdHNcbiAgdWwsIG9sIHtcbiAgICAmICYge1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJGxpc3QtbmVzdGVkLXNpZGUtbWFyZ2luO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cblxuICAvLyBEZWZpbml0aW9uIGxpc3RzXG4gIGRsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkZGVmbmxpc3QtbWFyZ2luLWJvdHRvbTtcblxuICAgIGR0IHtcbiAgICAgIG1hcmdpbi1ib3R0b206ICRkZWZubGlzdC10ZXJtLW1hcmdpbi1ib3R0b207XG4gICAgICBmb250LXdlaWdodDogJGRlZm5saXN0LXRlcm0td2VpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIC8vIEJsb2NrcXVvdGVzXG4gIGJsb2NrcXVvdGUge1xuICAgIG1hcmdpbjogMCAwICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcbiAgICBwYWRkaW5nOiAkYmxvY2txdW90ZS1wYWRkaW5nO1xuICAgIGJvcmRlci0jeyRnbG9iYWwtbGVmdH06ICRibG9ja3F1b3RlLWJvcmRlcjtcblxuICAgICYsIHAge1xuICAgICAgbGluZS1oZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZWhlaWdodDtcbiAgICAgIGNvbG9yOiAkYmxvY2txdW90ZS1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAvLyBDaXRhdGlvbnNcbiAgY2l0ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAkY2l0ZS1mb250LXNpemU7XG4gICAgY29sb3I6ICRjaXRlLWNvbG9yO1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgY29udGVudDogJGNpdGUtcHNldWRvLWNvbnRlbnQ7XG4gICAgfVxuICB9XG5cbiAgLy8gQWJicmV2aWF0aW9uc1xuICBhYmJyLCBhYmJyW3RpdGxlXSB7XG4gICAgYm9yZGVyLWJvdHRvbTogJGFiYnItdW5kZXJsaW5lO1xuICAgIGN1cnNvcjogaGVscDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cblxuICAvLyBGaWd1cmVzXG4gIGZpZ3VyZSB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG4gIFxuICAvLyBDb2RlXG4gIGNvZGUge1xuICAgIHBhZGRpbmc6ICRjb2RlLXBhZGRpbmc7XG5cbiAgICBib3JkZXI6ICRjb2RlLWJvcmRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29kZS1iYWNrZ3JvdW5kO1xuXG4gICAgZm9udC1mYW1pbHk6ICRjb2RlLWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtd2VpZ2h0OiAkY29kZS1mb250LXdlaWdodDtcbiAgICBjb2xvcjogJGNvZGUtY29sb3I7XG4gIH1cblxuICAvLyBLZXlzdHJva2VzXG4gIGtiZCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6ICRrZXlzdHJva2UtcGFkZGluZztcblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRrZXlzdHJva2UtYmFja2dyb3VuZDtcblxuICAgIGZvbnQtZmFtaWx5OiAka2V5c3Ryb2tlLWZvbnQ7XG4gICAgY29sb3I6ICRrZXlzdHJva2UtY29sb3I7XG5cbiAgICBAaWYgaGFzLXZhbHVlKCRrZXlzdHJva2UtcmFkaXVzKSB7XG4gICAgICBib3JkZXItcmFkaXVzOiAka2V5c3Ryb2tlLXJhZGl1cztcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHR5cG9ncmFwaHktaGVscGVyc1xuLy8vL1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGxlYWQgcGFyYWdyYXBocy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsZWFkLWZvbnQtc2l6ZTogJGdsb2JhbC1mb250LXNpemUgKiAxLjI1ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBsaW5lIGhlaWdodCBmb3IgbGVhZCBwYXJhZ3JhcGhzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGxlYWQtbGluZWhlaWdodDogMS42ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBsaW5lIGhlaWdodCBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdWJoZWFkZXItbGluZWhlaWdodDogMS40ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIENvbG9yXG4kc3ViaGVhZGVyLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHdlaWdodCBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRzdWJoZWFkZXItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdG9wIG1hcmdpbiBmb3Igc3ViaGhlYWRlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3ViaGVhZGVyLW1hcmdpbi10b3A6IDAuMnJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm90dG9tIG1hcmdpbiBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdWJoZWFkZXItbWFyZ2luLWJvdHRvbTogMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIHN0YXRpc3RpYyBudW1iZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN0YXQtZm9udC1zaXplOiAyLjVyZW0gIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXR5cG9ncmFwaHktaGVscGVycyB7XG4gIC8vIFVzZSB0byBjcmVhdGUgYSBzdWJoZWFkaW5nIHVuZGVyIGEgbWFpbiBoZWFkZXJcbiAgLy8gTWFrZSBzdXJlIHlvdSBwYWlyIHRoZSB0d28gZWxlbWVudHMgaW4gYSA8aGVhZGVyPiBlbGVtZW50LCBsaWtlIHRoaXM6XG4gIC8vIDxoZWFkZXI+XG4gIC8vICAgPGgxPkhlYWRpbmc8L2gxPlxuICAvLyAgIDxoMj5TdWJoZWFkaW5nPC9oMj5cbiAgLy8gPC9oZWFkZXI+XG4gIC5zdWJoZWFkZXIge1xuICAgIG1hcmdpbi10b3A6ICRzdWJoZWFkZXItbWFyZ2luLXRvcDtcbiAgICBtYXJnaW4tYm90dG9tOiAkc3ViaGVhZGVyLW1hcmdpbi1ib3R0b207XG5cbiAgICBmb250LXdlaWdodDogJHN1YmhlYWRlci1mb250LXdlaWdodDtcbiAgICBsaW5lLWhlaWdodDogJHN1YmhlYWRlci1saW5laGVpZ2h0O1xuICAgIGNvbG9yOiAkc3ViaGVhZGVyLWNvbG9yO1xuICB9XG5cbiAgLy8gVXNlIHRvIHN0eWxlIGFuIGludHJvZHVjdG9yeSBsZWFkLCBkZWNrLCBibHVyYiwgZXRjLlxuICAubGVhZCB7XG4gICAgZm9udC1zaXplOiAkbGVhZC1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6ICRsZWFkLWxpbmVoZWlnaHQ7XG4gIH1cblxuICAvLyBVc2UgdG8gc3R5bGUgYSBsYXJnZSBudW1iZXIgdG8gZGlzcGxheSBhIHN0YXRpc3RpY1xuICAuc3RhdCB7XG4gICAgZm9udC1zaXplOiAkc3RhdC1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICBwICsgJiB7XG4gICAgICBtYXJnaW4tdG9wOiAtMXJlbTtcbiAgICB9XG4gIH1cblxuICB1bCwgb2wge1xuICAgIC8vIFVzZSB0byByZW1vdmUgbnVtYmVycyBmcm9tIG9yZGVyZWQgbGlzdCAmIGJ1bGxldHMgZnJvbSB1bm9yZGVyZWQgbGlzdFxuICAgICYubm8tYnVsbGV0IHtcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDA7XG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBtaXhpbiBmb3VuZGF0aW9uLXRleHQtYWxpZ25tZW50IHtcbiAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgQGVhY2ggJGFsaWduIGluIChsZWZ0LCByaWdodCwgY2VudGVyLCBqdXN0aWZ5KSB7XG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgLiN7JHNpemV9LXRleHQtI3skYWxpZ259IHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246ICRhbGlnbjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgIC50ZXh0LSN7JGFsaWdufSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiAkYWxpZ247XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vIElmIGB0cnVlYCwgYWxsIGVsZW1lbnRzIHdpbGwgaGF2ZSB0cmFuc3BhcmVudCBiYWNrZ3JvdW5kcyB3aGVuIHByaW50ZWQsIHRvIHNhdmUgb24gaW5rLlxuLy8vIEB0eXBlIEJvb2xlYW5cbi8vLyBAZ3JvdXAgZ2xvYmFsXG4kcHJpbnQtdHJhbnNwYXJlbnQtYmFja2dyb3VuZHM6IHRydWUgIWRlZmF1bHQ7XG4kcHJpbnQtaHJlZnM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vIHNhc3MtbGludDpkaXNhYmxlLWFsbFxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcmludC1zdHlsZXMge1xuICAuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuICBAbWVkaWEgcHJpbnQge1xuICAgICoge1xuICAgICAgQGlmICRwcmludC10cmFuc3BhcmVudC1iYWNrZ3JvdW5kcyB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICB9XG5cbiAgICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcblxuICAgICAgY29sb3I6IGJsYWNrICFpbXBvcnRhbnQ7IC8vIEJsYWNrIHByaW50cyBmYXN0ZXI6IGg1YnAuY29tL3NcbiAgICAgIHRleHQtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuICAgIC5oaWRlLWZvci1wcmludCB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4gICAgdGFibGUuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50OyB9XG4gICAgdGhlYWQuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXAgIWltcG9ydGFudDsgfVxuICAgIHRib2R5LnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtcm93LWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgICB0ci5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50OyB9XG4gICAgdGQuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cbiAgICB0aC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuXG4gICAgLy8gRGlzcGxheSB0aGUgVVJMIG9mIGEgbGluayBhZnRlciB0aGUgdGV4dFxuICAgIGEsXG4gICAgYTp2aXNpdGVkIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7fVxuICAgIEBpZiAkcHJpbnQtaHJlZnMge1xuICAgICAgYVtocmVmXTphZnRlciB7IGNvbnRlbnQ6ICcgKCcgYXR0cihocmVmKSAnKSc7IH1cbiAgICB9XG5cbiAgICAvLyBEb24ndCBkaXNwbGF5IHRoZSBVUkwgZm9yIGltYWdlcyBvciBKYXZhU2NyaXB0L2ludGVybmFsIGxpbmtzXG4gICAgLmlyIGE6YWZ0ZXIsXG4gICAgYVtocmVmXj0namF2YXNjcmlwdDonXTphZnRlcixcbiAgICBhW2hyZWZePScjJ106YWZ0ZXIgeyBjb250ZW50OiAnJzsgfVxuXG4gICAgLy8gRGlzcGxheSB3aGF0IGFuIGFiYnJldmlhdGlvbiBzdGFuZHMgZm9yIGFmdGVyIHRoZSB0ZXh0XG4gICAgYWJiclt0aXRsZV06YWZ0ZXIgeyBjb250ZW50OiAnICgnIGF0dHIodGl0bGUpICcpJzsgfVxuXG4gICAgLy8gUHJldmVudCBwYWdlIGJyZWFrcyBpbiB0aGUgbWlkZGxlIG9mIGEgYmxvY2txdW90ZSBvciBwcmVmb3JtYXR0ZWQgdGV4dCBibG9ja1xuICAgIHByZSxcbiAgICBibG9ja3F1b3RlIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRkYXJrLWdyYXk7XG4gICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgfVxuXG4gICAgLy8gaDVicC5jb20vdFxuICAgIHRoZWFkIHsgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwOyB9XG5cbiAgICB0cixcbiAgICBpbWcgeyBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7IH1cblxuICAgIGltZyB7IG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG5cbiAgICBAcGFnZSB7IG1hcmdpbjogMC41Y207IH1cblxuICAgIHAsXG4gICAgaDIsXG4gICAgaDMge1xuICAgICAgb3JwaGFuczogMztcbiAgICAgIHdpZG93czogMztcbiAgICB9XG5cbiAgICAvLyBBdm9pZCBwYWdlIGJyZWFrcyBhZnRlciBhIGhlYWRpbmdcbiAgICBoMixcbiAgICBoMyB7IHBhZ2UtYnJlYWstYWZ0ZXI6IGF2b2lkOyB9XG5cbiAgICAvLyBIZWxwZXIgdG8gcmUtYWxsb3cgcGFnZSBicmVha3MgaW4gdGhlIG1pZGRsZSBvZiBjZXJ0YWluIGVsZW1lbnRzIChlLmcuIHByZSwgYmxvY2txdW90ZSwgdHIpXG4gICAgLnByaW50LWJyZWFrLWluc2lkZSB7XG4gICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXV0bztcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGJ1dHRvblxuLy8vL1xuXG4vLy8gRm9udCBmYW1pbHkgZm9yIGJ1dHRvbiBlbGVtZW50cy5cbi8vLyBAdHlwZSBGb250XG4kYnV0dG9uLWZvbnQtZmFtaWx5OiBpbmhlcml0ICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBpbnNpZGUgYnV0dG9ucy5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLXBhZGRpbmc6IDAuODVlbSAxZW0gIWRlZmF1bHQ7XG5cbi8vLyBNYXJnaW4gYXJvdW5kIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1tYXJnaW46IDAgMCAkZ2xvYmFsLW1hcmdpbiAwICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmaWxsIGZvciBidXR0b25zLiBDYW4gZWl0aGVyIGJlIGBzb2xpZGAgb3IgYGhvbGxvd2AuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGJ1dHRvbi1maWxsOiBzb2xpZCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBDb2xvclxuJGJ1dHRvbi1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb24gaG92ZXIgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRidXR0b24tYmFja2dyb3VuZC1ob3Zlcjogc2NhbGUtY29sb3IoJGJ1dHRvbi1iYWNrZ3JvdW5kLCAkbGlnaHRuZXNzOiAtMTUlKSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgY29sb3IgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQWx0ZXJuYXRpdmUgZm9udCBjb2xvciBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLWNvbG9yLWFsdDogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHJhZGl1cyBmb3IgYnV0dG9ucywgZGVmYXVsdGVkIHRvIGdsb2JhbC1yYWRpdXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgd2lkdGggZm9yIGhvbGxvdyBvdXRsaW5lIGJ1dHRvbnNcbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b24taG9sbG93LWJvcmRlci13aWR0aDogMXB4ICFkZWZhdWx0O1xuXG4vLy8gU2l6ZXMgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTWFwXG4kYnV0dG9uLXNpemVzOiAoXG4gIHRpbnk6IDAuNnJlbSxcbiAgc21hbGw6IDAuNzVyZW0sXG4gIGRlZmF1bHQ6IDAuOXJlbSxcbiAgbGFyZ2U6IDEuMjVyZW0sXG4pICFkZWZhdWx0O1xuXG4vLy8gQ29sb3JpbmcgY2xhc3Nlcy4gQSBtYXAgb2YgY2xhc3NlcyB0byBvdXRwdXQgaW4geW91ciBDU1MsIGxpa2UgYC5zZWNvbmRhcnlgLCBgLnN1Y2Nlc3NgLCBhbmQgc28gb24uXG4vLy8gQHR5cGUgTWFwXG4kYnV0dG9uLXBhbGV0dGU6ICRmb3VuZGF0aW9uLXBhbGV0dGUgIWRlZmF1bHQ7XG5cbi8vLyBvcGFjaXR5IGZvciBhIGRpc2FibGVkIGJ1dHRvbi5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLW9wYWNpdHktZGlzYWJsZWQ6IDAuMjUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGxpZ2h0bmVzcyBvbiBob3ZlciBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b24tYmFja2dyb3VuZC1ob3Zlci1saWdodG5lc3M6IC0yMCUgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBsaWdodG5lc3Mgb24gaG92ZXIgZm9yIGhvbGxvdyBidXR0b25zLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbi1ob2xsb3ctaG92ZXItbGlnaHRuZXNzOiAtNTAlICFkZWZhdWx0O1xuXG4vLyBJbnRlcm5hbDogZmxpcCBmcm9tIG1hcmdpbi1yaWdodCB0byBtYXJnaW4tbGVmdCBmb3IgZGVmYXVsdHNcbkBpZiAkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09ICdydGwnIHtcbiAgJGJ1dHRvbi1tYXJnaW46IDAgMCAkZ2xvYmFsLW1hcmdpbiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcbn1cblxuLy8vIHRyYW5zaXRpb25zIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjI1cyBlYXNlLW91dCwgY29sb3IgMC4yNXMgZWFzZS1vdXQgIWRlZmF1bHQ7XG5cbi8vIFRPRE86IERvY3VtZW50IGJ1dHRvbi1iYXNlKCkgbWl4aW5cbkBtaXhpbiBidXR0b24tYmFzZSB7XG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW46ICRidXR0b24tbWFyZ2luO1xuICBmb250LWZhbWlseTogJGJ1dHRvbi1mb250LWZhbWlseTtcblxuICBAaWYgKHR5cGUtb2YoJGJ1dHRvbi1wYWRkaW5nKSA9PSAnbWFwJykge1xuICAgIEBlYWNoICRzaXplLCAkcGFkZGluZyBpbiAkYnV0dG9uLXBhZGRpbmcge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICBwYWRkaW5nOiAkcGFkZGluZztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIHBhZGRpbmc6ICRidXR0b24tcGFkZGluZztcbiAgfVxuXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6ICRidXR0b24tcmFkaXVzO1xuICB0cmFuc2l0aW9uOiAkYnV0dG9uLXRyYW5zaXRpb247XG5cbiAgZm9udC1zaXplOiBtYXAtZ2V0KCRidXR0b24tc2l6ZXMsIGRlZmF1bHQpO1xuICBsaW5lLWhlaWdodDogMTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi8vLyBFeHBhbmRzIGEgYnV0dG9uIHRvIG1ha2UgaXQgZnVsbC13aWR0aC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRleHBhbmQgW3RydWVdIC0gU2V0IHRvIGB0cnVlYCB0byBlbmFibGUgdGhlIGV4cGFuZCBiZWhhdmlvci4gU2V0IHRvIGBmYWxzZWAgdG8gcmV2ZXJzZSB0aGlzIGJlaGF2aW9yLlxuQG1peGluIGJ1dHRvbi1leHBhbmQoJGV4cGFuZDogdHJ1ZSkge1xuICBAaWYgJGV4cGFuZCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG4gIEBlbHNlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWFyZ2luOiAkYnV0dG9uLW1hcmdpbjtcbiAgfVxufVxuXG4vLy8gU2V0cyB0aGUgdmlzdWFsIHN0eWxlIG9mIGEgYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIFskYnV0dG9uLWJhY2tncm91bmRdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kLWhvdmVyIFskYnV0dG9uLWJhY2tncm91bmQtaG92ZXJdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYnV0dG9uIG9uIGhvdmVyLiBTZXQgdG8gYGF1dG9gIHRvIGhhdmUgdGhlIG1peGluIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBob3ZlciBjb2xvci5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRidXR0b24tY29sb3JdIC0gVGV4dCBjb2xvciBvZiB0aGUgYnV0dG9uLiBTZXQgdG8gYGF1dG9gIHRvIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBjb2xvciBiYXNlZCBvbiB0aGUgYmFja2dyb3VuZCBjb2xvci5cbkBtaXhpbiBidXR0b24tc3R5bGUoXG4gICRiYWNrZ3JvdW5kOiAkYnV0dG9uLWJhY2tncm91bmQsXG4gICRiYWNrZ3JvdW5kLWhvdmVyOiAkYnV0dG9uLWJhY2tncm91bmQtaG92ZXIsXG4gICRjb2xvcjogJGJ1dHRvbi1jb2xvcixcbiAgJGJhY2tncm91bmQtaG92ZXItbGlnaHRuZXNzOiAkYnV0dG9uLWJhY2tncm91bmQtaG92ZXItbGlnaHRuZXNzXG4pIHtcbiAgQGlmICRjb2xvciA9PSBhdXRvIHtcbiAgICAkY29sb3I6IGNvbG9yLXBpY2stY29udHJhc3QoJGJhY2tncm91bmQsICgkYnV0dG9uLWNvbG9yLCAkYnV0dG9uLWNvbG9yLWFsdCkpO1xuICB9XG5cbiAgQGlmICRiYWNrZ3JvdW5kLWhvdmVyID09IGF1dG8ge1xuICAgICRiYWNrZ3JvdW5kLWhvdmVyOiBzY2FsZS1jb2xvcigkYmFja2dyb3VuZCwgJGxpZ2h0bmVzczogJGJhY2tncm91bmQtaG92ZXItbGlnaHRuZXNzKTtcbiAgfVxuXG4gIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICBjb2xvcjogJGNvbG9yO1xuXG4gICY6aG92ZXIsICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLWhvdmVyO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gIH1cbn1cblxuLy8vIFJlbW92ZXMgYmFja2dyb3VuZCBmaWxsIG9uIGhvdmVyIGFuZCBmb2N1cyBmb3IgaG9sbG93IGJ1dHRvbnMuXG5AbWl4aW4gYnV0dG9uLWhvbGxvdyB7XG4gICYsXG4gICY6aG92ZXIsICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG5cbiAgJi5kaXNhYmxlZCxcbiAgJltkaXNhYmxlZF0ge1xuICAgICYsXG4gICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGJ1dHRvbi1ob2xsb3ctc3R5bGUoXG4gICRjb2xvcjogJGJ1dHRvbi1iYWNrZ3JvdW5kLFxuICAkaG92ZXItbGlnaHRuZXNzOiAkYnV0dG9uLWhvbGxvdy1ob3Zlci1saWdodG5lc3MsXG4gICRib3JkZXItd2lkdGg6ICRidXR0b24taG9sbG93LWJvcmRlci13aWR0aFxuKSB7XG4gICRjb2xvci1ob3Zlcjogc2NhbGUtY29sb3IoJGNvbG9yLCAkbGlnaHRuZXNzOiAkaG92ZXItbGlnaHRuZXNzKTtcblxuICBib3JkZXI6ICRib3JkZXItd2lkdGggc29saWQgJGNvbG9yO1xuICBjb2xvcjogJGNvbG9yO1xuXG4gICY6aG92ZXIsICY6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogJGNvbG9yLWhvdmVyO1xuICAgIGNvbG9yOiAkY29sb3ItaG92ZXI7XG4gICAgJi5kaXNhYmxlZCxcbiAgICAmW2Rpc2FibGVkXSB7XG4gICAgICBib3JkZXI6ICRib3JkZXItd2lkdGggc29saWQgJGNvbG9yO1xuICAgICAgY29sb3I6ICRjb2xvcjtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgZGlzYWJsZWQgc3R5bGVzIHRvIGEgYnV0dG9uIGJ5IGZhZGluZyB0aGUgZWxlbWVudCwgcmVzZXRpbmcgdGhlIGN1cnNvciwgYW5kIGRpc2FibGluZyBwb2ludGVyIGV2ZW50cy5cbi8vLyBAcGFyYW0gW0NvbG9yXSAkYmFja2dyb3VuZCBbJGJ1dHRvbi1iYWNrZ3JvdW5kXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGRpc2FibGVkIGJ1dHRvbi5cbi8vLyBAcGFyYW0gW0NvbG9yXSAkY29sb3IgWyRidXR0b24tY29sb3JdIC0gVGV4dCBjb2xvciBvZiB0aGUgZGlzYWJsZWQgYnV0dG9uLiBTZXQgdG8gYGF1dG9gIHRvIGhhdmUgdGhlIG1peGluIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBjb2xvciBiYXNlZCBvbiB0aGUgYmFja2dyb3VuZCBjb2xvci5cbkBtaXhpbiBidXR0b24tZGlzYWJsZWQoXG4gICRiYWNrZ3JvdW5kOiAkYnV0dG9uLWJhY2tncm91bmQsXG4gICRjb2xvcjogJGJ1dHRvbi1jb2xvclxuKSB7XG4gIEBpZiAkY29sb3IgPT0gYXV0byB7XG4gICAgJGNvbG9yOiBjb2xvci1waWNrLWNvbnRyYXN0KCRiYWNrZ3JvdW5kLCAoJGJ1dHRvbi1jb2xvciwgJGJ1dHRvbi1jb2xvci1hbHQpKTtcbiAgfVxuXG4gIG9wYWNpdHk6ICRidXR0b24tb3BhY2l0eS1kaXNhYmxlZDtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAmLCAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICB9XG59XG5cbi8vLyBBZGRzIGEgZHJvcGRvd24gYXJyb3cgdG8gYSBidXR0b24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzaXplIFswLjRlbV0gLSBTaXplIG9mIHRoZSBhcnJvdy4gV2UgcmVjb21tZW5kIHVzaW5nIGFuIGBlbWAgdmFsdWUgc28gdGhlIHRyaWFuZ2xlIHNjYWxlcyB3aGVuIHVzZWQgaW5zaWRlIGRpZmZlcmVudCBzaXplcyBvZiBidXR0b25zLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbd2hpdGVdIC0gQ29sb3Igb2YgdGhlIGFycm93LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkb2Zmc2V0IFskYnV0dG9uLXBhZGRpbmddIC0gRGlzdGFuY2UgYmV0d2VlbiB0aGUgYXJyb3cgYW5kIHRoZSB0ZXh0IG9mIHRoZSBidXR0b24uIERlZmF1bHRzIHRvIHdoYXRldmVyIHRoZSByaWdodCBwYWRkaW5nIG9mIGEgYnV0dG9uIGlzLlxuQG1peGluIGJ1dHRvbi1kcm9wZG93bihcbiAgJHNpemU6IDAuNGVtLFxuICAkY29sb3I6ICR3aGl0ZSxcbiAgJG9mZnNldDogZ2V0LXNpZGUoJGJ1dHRvbi1wYWRkaW5nLCByaWdodClcbikge1xuICAmOjphZnRlciB7XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRzaXplLCAkY29sb3IsIGRvd24pO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDAuNGVtOyAvLyBBbGlnbnMgdGhlIGFycm93IHdpdGggdGhlIHRleHQgb2YgdGhlIGJ1dHRvblxuXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZsb2F0OiAjeyRnbG9iYWwtcmlnaHR9O1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRvZmZzZXQ7XG4gIH1cbn1cblxuLy8vIEFkZHMgYWxsIHN0eWxlcyBmb3IgYSBidXR0b24uIEZvciBtb3JlIGdyYW51bGFyIGNvbnRyb2wgb3ZlciBzdHlsZXMsIHVzZSB0aGUgaW5kaXZpZHVhbCBidXR0b24gbWl4aW5zLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGV4cGFuZCBbZmFsc2VdIC0gU2V0IHRvIGB0cnVlYCB0byBtYWtlIHRoZSBidXR0b24gZnVsbC13aWR0aC5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZCBbJGJ1dHRvbi1iYWNrZ3JvdW5kXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZC1ob3ZlciBbJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbiBvbiBob3Zlci4gU2V0IHRvIGBhdXRvYCB0byBoYXZlIHRoZSBtaXhpbiBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgaG92ZXIgY29sb3IuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYnV0dG9uLWNvbG9yXSAtIFRleHQgY29sb3Igb2YgdGhlIGJ1dHRvbi4gU2V0IHRvIGBhdXRvYCB0byBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgY29sb3IgYmFzZWQgb24gdGhlIGJhY2tncm91bmQgY29sb3IuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3R5bGUgW3NvbGlkXSAtIFNldCB0byBgaG9sbG93YCB0byBjcmVhdGUgYSBob2xsb3cgYnV0dG9uLiBUaGUgY29sb3IgZGVmaW5lZCBpbiBgJGJhY2tncm91bmRgIHdpbGwgYmUgdXNlZCBhcyB0aGUgcHJpbWFyeSBjb2xvciBvZiB0aGUgYnV0dG9uLlxuQG1peGluIGJ1dHRvbihcbiAgJGV4cGFuZDogZmFsc2UsXG4gICRiYWNrZ3JvdW5kOiAkYnV0dG9uLWJhY2tncm91bmQsXG4gICRiYWNrZ3JvdW5kLWhvdmVyOiAkYnV0dG9uLWJhY2tncm91bmQtaG92ZXIsXG4gICRjb2xvcjogJGJ1dHRvbi1jb2xvcixcbiAgJHN0eWxlOiAkYnV0dG9uLWZpbGxcbikge1xuICBAaW5jbHVkZSBidXR0b24tYmFzZTtcblxuICBAaWYgJHN0eWxlID09IHNvbGlkIHtcbiAgICBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJhY2tncm91bmQsICRiYWNrZ3JvdW5kLWhvdmVyLCAkY29sb3IpO1xuICB9XG4gIEBlbHNlIGlmICRzdHlsZSA9PSBob2xsb3cge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3c7XG4gICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZSgkYmFja2dyb3VuZCk7XG4gIH1cblxuICBAaWYgJGV4cGFuZCB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLWV4cGFuZDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1idXR0b24ge1xuICAuYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBidXR0b247XG5cbiAgICAvLyBTaXplc1xuICAgIEBlYWNoICRzaXplLCAkdmFsdWUgaW4gbWFwLXJlbW92ZSgkYnV0dG9uLXNpemVzLCBkZWZhdWx0KSB7XG4gICAgICAmLiN7JHNpemV9IHtcbiAgICAgICAgZm9udC1zaXplOiAkdmFsdWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5leHBhbmRlZCB7IEBpbmNsdWRlIGJ1dHRvbi1leHBhbmQ7IH1cblxuICAgIC8vIENvbG9yc1xuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGJ1dHRvbi1wYWxldHRlIHtcbiAgICAgIEBpZiAkYnV0dG9uLWZpbGwgIT0gaG9sbG93IHtcbiAgICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRjb2xvciwgYXV0bywgYXV0byk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZSgkY29sb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi4jeyRuYW1lfS5kcm9wZG93bjo6YWZ0ZXIge1xuICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIERpc2FibGVkIHN0eWxlXG4gICAgJi5kaXNhYmxlZCxcbiAgICAmW2Rpc2FibGVkXSB7XG4gICAgICBAaW5jbHVkZSBidXR0b24tZGlzYWJsZWQ7XG5cbiAgICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGJ1dHRvbi1wYWxldHRlIHtcbiAgICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWRpc2FibGVkKCRjb2xvciwgYXV0byk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBIb2xsb3cgc3R5bGVcbiAgICBAaWYgJGJ1dHRvbi1maWxsICE9IGhvbGxvdyB7XG4gICAgICAmLmhvbGxvdyB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3c7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGU7XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkYnV0dG9uLXBhbGV0dGUge1xuICAgICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZSgkY29sb3IpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIENsZWFyIHN0eWxlXG4gICAgQGlmICRidXR0b24tZmlsbCAhPSBjbGVhciB7XG4gICAgICAmLmNsZWFyIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdztcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZTtcblxuICAgICAgICAmLCAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgICAgICAmLCAmLmRpc2FibGVkLCAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGJ1dHRvbi1wYWxldHRlIHtcbiAgICAgICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGUoJGNvbG9yKTtcblxuICAgICAgICAgICAgJiwgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAmLFxuICAgICAgICAgICAgICAmLmRpc2FibGVkLFxuICAgICAgICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIERyb3Bkb3duIGFycm93XG4gICAgJi5kcm9wZG93biB7XG4gICAgICBAaW5jbHVkZSBidXR0b24tZHJvcGRvd247XG5cbiAgICAgIEBpZiAkYnV0dG9uLWZpbGwgPT0gaG9sbG93IHtcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICRidXR0b24tYmFja2dyb3VuZDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLmhvbGxvdyB7XG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAkYnV0dG9uLWJhY2tncm91bmQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRidXR0b24tcGFsZXR0ZSB7XG4gICAgICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBCdXR0b24gd2l0aCBkcm9wZG93biBhcnJvdyBvbmx5XG4gICAgJi5hcnJvdy1vbmx5OjphZnRlciB7XG4gICAgICB0b3A6IC0wLjFlbTtcbiAgICAgIGZsb2F0OiBub25lO1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBGb250IGNvbG9yIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEZvbnQgY29sb3Igb2YgcGxhY2Vob2xkZXIgdGV4dCB3aXRoaW4gdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1wbGFjZWhvbGRlci1jb2xvcjogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBmYW1pbHkgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgRm9udFxuJGlucHV0LWZvbnQtZmFtaWx5OiBpbmhlcml0ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGlucHV0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGlucHV0LWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kaW5wdXQtbGluZS1oZWlnaHQ6ICRnbG9iYWwtbGluZWhlaWdodCAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGZvY3VzZWQgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGRpc2FibGVkIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgYXJvdW5kIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIEJvcmRlclxuJGlucHV0LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBhcm91bmQgZm9jdXNlZCB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWJvcmRlci1mb2N1czogMXB4IHNvbGlkICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtcGFkZGluZzogJGZvcm0tc3BhY2luZyAvIDIgIWRlZmF1bHQ7XG5cbi8vLyBCb3ggc2hhZG93IGluc2lkZSB0ZXh0IGlucHV0cyB3aGVuIG5vdCBmb2N1c2VkLlxuLy8vIEB0eXBlIFNoYWRvd1xuJGlucHV0LXNoYWRvdzogaW5zZXQgMCAxcHggMnB4IHJnYmEoJGJsYWNrLCAwLjEpICFkZWZhdWx0O1xuXG4vLy8gQm94IHNoYWRvdyBvdXRzaWRlIHRleHQgaW5wdXRzIHdoZW4gZm9jdXNlZC5cbi8vLyBAdHlwZSBTaGFkb3dcbiRpbnB1dC1zaGFkb3ctZm9jdXM6IDAgMCA1cHggJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQ3Vyc29yIHRvIHVzZSB3aGVuIGhvdmVyaW5nIG92ZXIgYSBkaXNhYmxlZCB0ZXh0IGlucHV0LlxuLy8vIEB0eXBlIEN1cnNvclxuJGlucHV0LWN1cnNvci1kaXNhYmxlZDogbm90LWFsbG93ZWQgIWRlZmF1bHQ7XG5cbi8vLyBQcm9wZXJ0aWVzIHRvIHRyYW5zaXRpb24gb24gdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgVHJhbnNpdGlvblxuJGlucHV0LXRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0ICFkZWZhdWx0O1xuXG4vLy8gRW5hYmxlcyB0aGUgdXAvZG93biBidXR0b25zIHRoYXQgQ2hyb21lIGFuZCBGaXJlZm94IGFkZCB0byBgPGlucHV0IHR5cGU9J251bWJlcic+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kaW5wdXQtbnVtYmVyLXNwaW5uZXJzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gUmFkaXVzIGZvciB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBCb3JkZXJcbiRpbnB1dC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHJhZGl1cyBmb3IgZm9ybSBidXR0b25zLCBkZWZhdWx0ZWQgdG8gZ2xvYmFsLXJhZGl1cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmb3JtLWJ1dHRvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG5AbWl4aW4gZm9ybS1lbGVtZW50IHtcbiAgJGhlaWdodDogKCRpbnB1dC1mb250LXNpemUgKiB1bml0bGVzcy1jYWxjKCRpbnB1dC1saW5lLWhlaWdodCkpICsgKGdldC1zaWRlKCRpbnB1dC1wYWRkaW5nLCAndG9wJykgKyBnZXQtc2lkZSgkaW5wdXQtcGFkZGluZywgJ2JvdHRvbScpKSAtIHJlbS1jYWxjKDEpO1xuXG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAkaGVpZ2h0O1xuICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nO1xuICBwYWRkaW5nOiAkaW5wdXQtcGFkZGluZztcblxuICBib3JkZXI6ICRpbnB1dC1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRpbnB1dC1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kO1xuICBib3gtc2hhZG93OiAkaW5wdXQtc2hhZG93O1xuXG4gIGZvbnQtZmFtaWx5OiAkaW5wdXQtZm9udC1mYW1pbHk7XG4gIGZvbnQtc2l6ZTogJGlucHV0LWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRpbnB1dC1mb250LXdlaWdodDtcbiAgbGluZS1oZWlnaHQ6ICRpbnB1dC1saW5lLWhlaWdodDtcbiAgY29sb3I6ICRpbnB1dC1jb2xvcjtcblxuICBAaWYgaGFzLXZhbHVlKCRpbnB1dC10cmFuc2l0aW9uKSB7XG4gICAgdHJhbnNpdGlvbjogJGlucHV0LXRyYW5zaXRpb247XG4gIH1cblxuICAvLyBGb2N1cyBzdGF0ZVxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJvcmRlcjogJGlucHV0LWJvcmRlci1mb2N1cztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZC1mb2N1cztcbiAgICBib3gtc2hhZG93OiAkaW5wdXQtc2hhZG93LWZvY3VzO1xuXG4gICAgQGlmIGhhcy12YWx1ZSgkaW5wdXQtdHJhbnNpdGlvbikge1xuICAgICAgdHJhbnNpdGlvbjogJGlucHV0LXRyYW5zaXRpb247XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tdGV4dCB7XG4gIC8vIFRleHQgaW5wdXRzXG4gICN7dGV4dC1pbnB1dHMoKX0sXG4gIHRleHRhcmVhIHtcbiAgICBAaW5jbHVkZSBmb3JtLWVsZW1lbnQ7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgfVxuXG4gIC8vIFRleHQgYXJlYXNcbiAgdGV4dGFyZWEge1xuICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICZbcm93c10ge1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cbiAgfVxuXG4gIGlucHV0LFxuICB0ZXh0YXJlYSB7XG4gICAgLy8gUGxhY2Vob2xkZXIgdGV4dFxuICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiAkaW5wdXQtcGxhY2Vob2xkZXItY29sb3I7XG4gICAgfVxuXG4gICAgLy8gRGlzYWJsZWQvcmVhZG9ubHkgc3RhdGVcbiAgICAmOmRpc2FibGVkLFxuICAgICZbcmVhZG9ubHldIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kLWRpc2FibGVkO1xuICAgICAgY3Vyc29yOiAkaW5wdXQtY3Vyc29yLWRpc2FibGVkO1xuICAgIH1cbiAgfVxuXG4gIC8vIFJlc2V0IHN0eWxlcyBvbiBidXR0b24tbGlrZSBpbnB1dHNcbiAgW3R5cGU9J3N1Ym1pdCddLFxuICBbdHlwZT0nYnV0dG9uJ10ge1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogJGZvcm0tYnV0dG9uLXJhZGl1cztcbiAgfVxuXG4gIC8vIFJlc2V0IE5vcm1hbGl6ZSBzZXR0aW5nIGNvbnRlbnQtYm94IHRvIHNlYXJjaCBlbGVtZW50c1xuICBpbnB1dFt0eXBlPSdzZWFyY2gnXSB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIH1cblxuICAvLyBOdW1iZXIgaW5wdXQgc3R5bGVzXG4gIFt0eXBlPSdudW1iZXInXSB7XG4gICAgQGlmIG5vdCAkaW5wdXQtbnVtYmVyLXNwaW5uZXJzIHtcbiAgICAgIC1tb3otYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXZlbmRvci1wcmVmaXhcblxuICAgICAgJjo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbiAgICAgICY6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tdmVuZG9yLXByZWZpeFxuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWNoZWNrYm94IHtcbiAgW3R5cGU9J2ZpbGUnXSxcbiAgW3R5cGU9J2NoZWNrYm94J10sXG4gIFt0eXBlPSdyYWRpbyddIHtcbiAgICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nO1xuICB9XG5cbiAgLy8gU3R5bGVzIGZvciBpbnB1dC9sYWJlbCBzaWJsaW5nc1xuICBbdHlwZT0nY2hlY2tib3gnXSArIGxhYmVsLFxuICBbdHlwZT0ncmFkaW8nXSArIGxhYmVsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuXG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJGZvcm0tc3BhY2luZyAqIDAuNTtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJGZvcm0tc3BhY2luZztcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgJltmb3JdIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gIH1cblxuICAvLyBTdHlsZXMgZm9yIGlucHV0cyBpbnNpZGUgbGFiZWxzXG4gIGxhYmVsID4gW3R5cGU9J2NoZWNrYm94J10sXG4gIGxhYmVsID4gW3R5cGU9J3JhZGlvJ10ge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkZm9ybS1zcGFjaW5nICogMC41O1xuICB9XG5cbiAgLy8gTm9ybWFsaXplIGZpbGUgaW5wdXQgd2lkdGhcbiAgW3R5cGU9J2ZpbGUnXSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBDb2xvciBmb3IgZm9ybSBsYWJlbHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRmb3JtLWxhYmVsLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgZm9yIGZvcm0gbGFiZWxzLlxuLy8vIEB0eXBlIE51bWJlclxuJGZvcm0tbGFiZWwtZm9udC1zaXplOiByZW0tY2FsYygxNCkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBmb3IgZm9ybSBsYWJlbHMuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGZvcm0tbGFiZWwtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IGZvciBmb3JtIGxhYmVscy4gVGhlIGhpZ2hlciB0aGUgbnVtYmVyLCB0aGUgbW9yZSBzcGFjZSBiZXR3ZWVuIHRoZSBsYWJlbCBhbmQgaXRzIGlucHV0IGZpZWxkLlxuLy8vIEB0eXBlIE51bWJlclxuJGZvcm0tbGFiZWwtbGluZS1oZWlnaHQ6IDEuOCAhZGVmYXVsdDtcblxuQG1peGluIGZvcm0tbGFiZWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwO1xuXG4gIGZvbnQtc2l6ZTogJGZvcm0tbGFiZWwtZm9udC1zaXplO1xuICBmb250LXdlaWdodDogJGZvcm0tbGFiZWwtZm9udC13ZWlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiAkZm9ybS1sYWJlbC1saW5lLWhlaWdodDtcbiAgY29sb3I6ICRmb3JtLWxhYmVsLWNvbG9yO1xufVxuXG5AbWl4aW4gZm9ybS1sYWJlbC1taWRkbGUge1xuICAkaW5wdXQtYm9yZGVyLXdpZHRoOiBnZXQtYm9yZGVyLXZhbHVlKCRpbnB1dC1ib3JkZXIsIHdpZHRoKTtcblxuICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nO1xuICBwYWRkaW5nOiAoJGZvcm0tc3BhY2luZyAvIDIgKyByZW0tY2FsYygkaW5wdXQtYm9yZGVyLXdpZHRoKSkgMDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1sYWJlbCB7XG4gIGxhYmVsIHtcbiAgICBAaW5jbHVkZSBmb3JtLWxhYmVsO1xuXG4gICAgJi5taWRkbGUge1xuICAgICAgQGluY2x1ZGUgZm9ybS1sYWJlbC1taWRkbGU7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgaGVscCB0ZXh0LlxuLy8vIEB0eXBlIENvbG9yXG4kaGVscHRleHQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzaXplIGZvciBoZWxwIHRleHQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaGVscHRleHQtZm9udC1zaXplOiByZW0tY2FsYygxMykgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc3R5bGUgZm9yIGhlbHAgdGV4dC5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kaGVscHRleHQtZm9udC1zdHlsZTogaXRhbGljICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWhlbHB0ZXh0IHtcbiAgLmhlbHAtdGV4dCB7XG4gICAgJG1hcmdpbi10b3A6ICgkZm9ybS1zcGFjaW5nICogMC41KSAqIC0xO1xuXG4gICAgbWFyZ2luLXRvcDogJG1hcmdpbi10b3A7XG4gICAgZm9udC1zaXplOiAkaGVscHRleHQtZm9udC1zaXplO1xuICAgIGZvbnQtc3R5bGU6ICRoZWxwdGV4dC1mb250LXN0eWxlO1xuICAgIGNvbG9yOiAkaGVscHRleHQtY29sb3I7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBDb2xvciBvZiBsYWJlbHMgcHJlZml4ZWQgdG8gYW4gaW5wdXQuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1wcmVmaXgtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgbGFiZWxzIHByZWZpeGVkIHRvIGFuIGlucHV0LlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtcHJlZml4LWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGFyb3VuZCBsYWJlbHMgcHJlZml4ZWQgdG8gYW4gaW5wdXQuXG4vLy8gQHR5cGUgQm9yZGVyXG4kaW5wdXQtcHJlZml4LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIExlZnQvcmlnaHQgcGFkZGluZyBvZiBhbiBwcmUvcG9zdGZpeGVkIGlucHV0IGxhYmVsXG4kaW5wdXQtcHJlZml4LXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tcHJlcG9zdGZpeCB7XG4gICRoZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICsgJGZvcm0tc3BhY2luZyAqIDEuNSk7XG5cbiAgLmlucHV0LWdyb3VwIHtcbiAgICBkaXNwbGF5OiBpZigkZ2xvYmFsLWZsZXhib3gsIGZsZXgsIHRhYmxlKTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAkZm9ybS1zcGFjaW5nO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICB9XG5cbiAgICA+IDpmaXJzdC1jaGlsZCB7XG4gICAgICBib3JkZXItcmFkaXVzOiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCwgMCAkaW5wdXQtcmFkaXVzICRpbnB1dC1yYWRpdXMgMCwgJGlucHV0LXJhZGl1cyAwIDAgJGlucHV0LXJhZGl1cyk7XG4gICAgfVxuXG4gICAgPiA6bGFzdC1jaGlsZCB7XG4gICAgICA+ICoge1xuICAgICAgICBib3JkZXItcmFkaXVzOiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCwgJGlucHV0LXJhZGl1cyAwIDAgJGlucHV0LXJhZGl1cywgMCAkaW5wdXQtcmFkaXVzICRpbnB1dC1yYWRpdXMgMCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJWlucHV0LWdyb3VwLWNoaWxkIHtcbiAgICBtYXJnaW46IDA7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cbiAgfVxuXG4gIC5pbnB1dC1ncm91cC1sYWJlbCB7XG4gICAgQGV4dGVuZCAlaW5wdXQtZ3JvdXAtY2hpbGQ7XG4gICAgcGFkZGluZzogMCAkaW5wdXQtcHJlZml4LXBhZGRpbmc7XG4gICAgYm9yZGVyOiAkaW5wdXQtcHJlZml4LWJvcmRlcjtcbiAgICBiYWNrZ3JvdW5kOiAkaW5wdXQtcHJlZml4LWJhY2tncm91bmQ7XG5cbiAgICBjb2xvcjogJGlucHV0LXByZWZpeC1jb2xvcjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgd2lkdGg6IDElO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgIEBpZiBoYXMtdmFsdWUoJGlucHV0LXByZWZpeC1ib3JkZXIpIHtcbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItI3skZ2xvYmFsLXJpZ2h0fTogMDtcbiAgICAgIH1cblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuaW5wdXQtZ3JvdXAtZmllbGQge1xuICAgIEBleHRlbmQgJWlucHV0LWdyb3VwLWNoaWxkO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgemVyby11bml0XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBtaW4td2lkdGg6IDA7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIGhlaWdodDogJGhlaWdodDtcbiAgICB9XG4gIH1cblxuICAuaW5wdXQtZ3JvdXAtYnV0dG9uIHtcbiAgICBAZXh0ZW5kICVpbnB1dC1ncm91cC1jaGlsZDtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB3aWR0aDogMSU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgYSxcbiAgICBpbnB1dCxcbiAgICBidXR0b24sXG4gICAgbGFiZWwge1xuICAgICAgQGV4dGVuZCAlaW5wdXQtZ3JvdXAtY2hpbGQ7XG4gICAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuXG4gICAgICBmb250LXNpemU6ICRpbnB1dC1mb250LXNpemU7XG4gICAgfVxuICB9XG5cbiAgLy8gU3BlY2lmaWNpdHkgYnVtcCBuZWVkZWQgdG8gcHJldmVudCBvdmVycmlkZSBieSBidXR0b25zXG4gIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIHtcbiAgICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgYXJvdW5kIGN1c3RvbSBmaWVsZHNldHMuXG4vLy8gQHR5cGUgQm9yZGVyXG4kZmllbGRzZXQtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGluc2lkZSBjdXN0b20gZmllbGRzZXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGZpZWxkc2V0LXBhZGRpbmc6IHJlbS1jYWxjKDIwKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbWFyZ2luIGFyb3VuZCBjdXN0b20gZmllbGRzZXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGZpZWxkc2V0LW1hcmdpbjogcmVtLWNhbGMoMTggMCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgYmV0d2VlbiB0aGUgbGVnZW5kIHRleHQgYW5kIGZpZWxkc2V0IGJvcmRlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsZWdlbmQtcGFkZGluZzogcmVtLWNhbGMoMCAzKSAhZGVmYXVsdDtcblxuQG1peGluIGZpZWxkc2V0IHtcbiAgbWFyZ2luOiAkZmllbGRzZXQtbWFyZ2luO1xuICBwYWRkaW5nOiAkZmllbGRzZXQtcGFkZGluZztcbiAgYm9yZGVyOiAkZmllbGRzZXQtYm9yZGVyO1xuXG4gIGxlZ2VuZCB7XG4gICAgLy8gQ292ZXJzIHVwIHRoZSBmaWVsZHNldCdzIGJvcmRlciB0byBjcmVhdGUgYXJ0aWZpY2lhbCBwYWRkaW5nXG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IHJlbS1jYWxjKC0zKTtcbiAgICBwYWRkaW5nOiAkbGVnZW5kLXBhZGRpbmc7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1maWVsZHNldCB7XG4gIGZpZWxkc2V0IHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7XG4gIH1cblxuICBsZWdlbmQge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAkZm9ybS1zcGFjaW5nICogMC41O1xuICB9XG5cbiAgLmZpZWxkc2V0IHtcbiAgICBAaW5jbHVkZSBmaWVsZHNldDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIHNlbGVjdCBtZW51cy5cbi8vLyBAdHlwZSBDb2xvclxuJHNlbGVjdC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiB0aGUgZHJvcGRvd24gdHJpYW5nbGUgaW5zaWRlIHNlbGVjdCBtZW51cy4gU2V0IHRvIGB0cmFuc3BhcmVudGAgdG8gcmVtb3ZlIGl0IGVudGlyZWx5LlxuLy8vIEB0eXBlIENvbG9yXG4kc2VsZWN0LXRyaWFuZ2xlLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCByYWRpdXMgZm9yIHNlbGVjdCBtZW51cy5cbi8vLyBAdHlwZSBDb2xvclxuJHNlbGVjdC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG5AbWl4aW4gZm9ybS1zZWxlY3Qge1xuICAkaGVpZ2h0OiAoJGlucHV0LWZvbnQtc2l6ZSAqIHVuaXRsZXNzLWNhbGMoJGlucHV0LWxpbmUtaGVpZ2h0KSkgKyAoZ2V0LXNpZGUoJGlucHV0LXBhZGRpbmcsICd0b3AnKSArIGdldC1zaWRlKCRpbnB1dC1wYWRkaW5nLCAnYm90dG9tJykpIC0gcmVtLWNhbGMoMSk7XG5cbiAgaGVpZ2h0OiAkaGVpZ2h0O1xuICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nO1xuICBwYWRkaW5nOiAkaW5wdXQtcGFkZGluZztcblxuICBhcHBlYXJhbmNlOiBub25lO1xuICBib3JkZXI6ICRpbnB1dC1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRzZWxlY3QtcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2VsZWN0LWJhY2tncm91bmQ7XG5cbiAgZm9udC1mYW1pbHk6ICRpbnB1dC1mb250LWZhbWlseTtcbiAgZm9udC1zaXplOiAkaW5wdXQtZm9udC1zaXplO1xuICBmb250LXdlaWdodDogJGlucHV0LWZvbnQtd2VpZ2h0O1xuICBsaW5lLWhlaWdodDogJGlucHV0LWxpbmUtaGVpZ2h0O1xuICBjb2xvcjogJGlucHV0LWNvbG9yO1xuXG4gIEBpZiAkc2VsZWN0LXRyaWFuZ2xlLWNvbG9yICE9IHRyYW5zcGFyZW50IHtcbiAgICBAaW5jbHVkZSBiYWNrZ3JvdW5kLXRyaWFuZ2xlKCRzZWxlY3QtdHJpYW5nbGUtY29sb3IpO1xuICAgIGJhY2tncm91bmQtb3JpZ2luOiBjb250ZW50LWJveDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAkZ2xvYmFsLXJpZ2h0ICgtJGZvcm0tc3BhY2luZykgY2VudGVyO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiA5cHggNnB4O1xuXG4gICAgcGFkZGluZy0jeyRnbG9iYWwtcmlnaHR9OiAoJGZvcm0tc3BhY2luZyAqIDEuNSk7XG4gIH1cblxuICBAaWYgaGFzLXZhbHVlKCRpbnB1dC10cmFuc2l0aW9uKSB7XG4gICAgdHJhbnNpdGlvbjogJGlucHV0LXRyYW5zaXRpb247XG4gIH1cblxuICAvLyBGb2N1cyBzdGF0ZVxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJvcmRlcjogJGlucHV0LWJvcmRlci1mb2N1cztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZC1mb2N1cztcbiAgICBib3gtc2hhZG93OiAkaW5wdXQtc2hhZG93LWZvY3VzO1xuXG4gICAgQGlmIGhhcy12YWx1ZSgkaW5wdXQtdHJhbnNpdGlvbikge1xuICAgICAgdHJhbnNpdGlvbjogJGlucHV0LXRyYW5zaXRpb247XG4gICAgfVxuICB9XG5cbiAgLy8gRGlzYWJsZWQgc3RhdGVcbiAgJjpkaXNhYmxlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJhY2tncm91bmQtZGlzYWJsZWQ7XG4gICAgY3Vyc29yOiAkaW5wdXQtY3Vyc29yLWRpc2FibGVkO1xuICB9XG5cbiAgLy8gSGlkZSB0aGUgZHJvcGRvd24gYXJyb3cgc2hvd24gaW4gbmV3ZXIgSUUgdmVyc2lvbnNcbiAgJjo6LW1zLWV4cGFuZCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gICZbbXVsdGlwbGVdIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLXNlbGVjdCB7XG4gIHNlbGVjdCB7XG4gICAgQGluY2x1ZGUgZm9ybS1zZWxlY3Q7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGFiaWRlXG4vLy8vXG5cbi8vLyBTZXRzIGlmIGVycm9yIHN0eWxlcyBzaG91bGQgYmUgYWRkZWQgdG8gaW5wdXRzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRhYmlkZS1pbnB1dHM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGlmIGVycm9yIHN0eWxlcyBzaG91bGQgYmUgYWRkZWQgdG8gbGFiZWxzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRhYmlkZS1sYWJlbHM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIHRvIHVzZSBmb3IgaW52YWxpZCB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWJhY2tncm91bmQtaW52YWxpZDogZ2V0LWNvbG9yKGFsZXJ0KSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHRvIHVzZSBmb3IgbGFiZWxzIG9mIGludmFsaWQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kZm9ybS1sYWJlbC1jb2xvci1pbnZhbGlkOiBnZXQtY29sb3IoYWxlcnQpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBmb3JtIGVycm9yIHRleHQuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1lcnJvci1jb2xvcjogZ2V0LWNvbG9yKGFsZXJ0KSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzaXplIGZvciBmb3JtIGVycm9yIHRleHQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaW5wdXQtZXJyb3ItZm9udC1zaXplOiByZW0tY2FsYygxMikgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgd2VpZ2h0IGZvciBmb3JtIGVycm9yIHRleHQuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGlucHV0LWVycm9yLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkICFkZWZhdWx0O1xuXG4vLy8gU3R5bGVzIHRoZSBiYWNrZ3JvdW5kIGFuZCBib3JkZXIgb2YgYW4gaW5wdXQgZmllbGQgdG8gaGF2ZSBhbiBlcnJvciBzdGF0ZS5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIFskYWxlcnQtY29sb3JdIC0gQ29sb3IgdG8gdXNlIGZvciB0aGUgYmFja2dyb3VuZCBhbmQgYm9yZGVyLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFja2dyb3VuZC1saWdodGVuIFsxMCVdIC0gTGlnaHRuZXNzIGxldmVsIG9mIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuQG1peGluIGZvcm0taW5wdXQtZXJyb3IoXG4gICRiYWNrZ3JvdW5kOiAkaW5wdXQtYmFja2dyb3VuZC1pbnZhbGlkLFxuICAkYmFja2dyb3VuZC1saWdodGVuOiAxMCVcbikge1xuICAmOm5vdCg6Zm9jdXMpIHtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1peCgkYmFja2dyb3VuZCwgJHdoaXRlLCAkYmFja2dyb3VuZC1saWdodGVuKTtcbiAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICBjb2xvcjogJGJhY2tncm91bmQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIGVycm9yIHN0eWxlcyB0byBhIGZvcm0gZWxlbWVudCwgdXNpbmcgdGhlIHZhbHVlcyBpbiB0aGUgc2V0dGluZ3MgZmlsZS5cbkBtaXhpbiBmb3JtLWVycm9yIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgbWFyZ2luLXRvcDogJGZvcm0tc3BhY2luZyAqIC0wLjU7XG4gIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmc7XG5cbiAgZm9udC1zaXplOiAkaW5wdXQtZXJyb3ItZm9udC1zaXplO1xuICBmb250LXdlaWdodDogJGlucHV0LWVycm9yLWZvbnQtd2VpZ2h0O1xuICBjb2xvcjogJGlucHV0LWVycm9yLWNvbG9yO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWVycm9yIHtcbiAgQGlmICRhYmlkZS1pbnB1dHMge1xuICAgIC8vIEVycm9yIGNsYXNzIGZvciBpbnZhbGlkIGlucHV0c1xuICAgIC5pcy1pbnZhbGlkLWlucHV0IHtcbiAgICAgIEBpbmNsdWRlIGZvcm0taW5wdXQtZXJyb3I7XG4gICAgfVxuICB9XG5cbiAgQGlmICRhYmlkZS1sYWJlbHMge1xuICAgIC8vIEVycm9yIGNsYXNzIGZvciBsYWJlbHMgb2YgaW52YWxpZCBvdXRwdXRzXG4gICAgLmlzLWludmFsaWQtbGFiZWwge1xuICAgICAgY29sb3I6ICRmb3JtLWxhYmVsLWNvbG9yLWludmFsaWQ7XG4gICAgfVxuICB9XG5cbiAgLy8gRm9ybSBlcnJvciBlbGVtZW50XG4gIC5mb3JtLWVycm9yIHtcbiAgICBAaW5jbHVkZSBmb3JtLWVycm9yO1xuXG4gICAgJi5pcy12aXNpYmxlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLyBIaWRlIGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgb25seSBkaXNwbGF5aW5nIGl0IGFib3ZlIGEgY2VydGFpbiBzY3JlZW4gc2l6ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gQnJlYWtwb2ludCB0byB1c2UuICoqTXVzdCBiZSBhIGJyZWFrcG9pbnQgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnRzYC4qKlxuQG1peGluIHNob3ctZm9yKCRzaXplKSB7XG4gICRzaXplOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJHNpemUpO1xuICAkc2l6ZTogLXpmLWJwLXRvLWVtKCRzaXplKSAtICgxIC8gMTYpO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUgZG93bikge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vLy8gSGlkZSBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIG9ubHkgZGlzcGxheWluZyBpdCB3aXRoaW4gYSBjZXJ0YWluIGJyZWFrcG9pbnQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBzaG93LWZvci1vbmx5KCRzaXplKSB7XG4gICRsb3dlci1ib3VuZC1zaXplOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJHNpemUpO1xuICAkdXBwZXItYm91bmQtc2l6ZTogLXpmLW1hcC1uZXh0KCRicmVha3BvaW50cywgJHNpemUpO1xuXG4gIC8vIG1vcmUgb2Z0ZW4gdGhhbiBub3QgdGhpcyB3aWxsIGJlIGNvcnJlY3QsIGp1c3Qgb25lIHRpbWUgcm91bmQgdGhlIGxvb3AgaXQgd29uJ3Qgc28gc2V0IGluIHNjb3BlIGhlcmVcbiAgJGxvd2VyLWJvdW5kOiAtemYtYnAtdG8tZW0oJGxvd2VyLWJvdW5kLXNpemUpIC0gKDEgLyAxNik7XG4gIC8vIHRlc3QgYWN0dWFsIGxvd2VyLWJvdW5kLXNpemUsIGlmIDAgc2V0IGl0IHRvIDBlbVxuICBAaWYgc3RyaXAtdW5pdCgkbG93ZXItYm91bmQtc2l6ZSkgPT0gMCB7XG4gICAgJGxvd2VyLWJvdW5kOiAtemYtYnAtdG8tZW0oJGxvd2VyLWJvdW5kLXNpemUpO1xuICB9XG5cbiAgQGlmICR1cHBlci1ib3VuZC1zaXplID09IG51bGwge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRsb3dlci1ib3VuZCkge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgJHVwcGVyLWJvdW5kOiAtemYtYnAtdG8tZW0oJHVwcGVyLWJvdW5kLXNpemUpO1xuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGxvd2VyLWJvdW5kKSwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkdXBwZXItYm91bmQpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLy8gU2hvdyBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIGFuZCBoaWRlIGl0IGFib3ZlIGEgY2VydGFpbiBzY3JlZW4gc2l6ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gQnJlYWtwb2ludCB0byB1c2UuICoqTXVzdCBiZSBhIGJyZWFrcG9pbnQgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnRzYC4qKlxuQG1peGluIGhpZGUtZm9yKCRzaXplKSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8vIFNob3cgYW4gZWxlbWVudCBieSBkZWZhdWx0LCBhbmQgaGlkZSBpdCBhYm92ZSBhIGNlcnRhaW4gc2NyZWVuIHNpemUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBoaWRlLWZvci1vbmx5KCRzaXplKSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUgb25seSkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi12aXNpYmlsaXR5LWNsYXNzZXMge1xuICAvLyBCYXNpYyBoaWRpbmcgY2xhc3Nlc1xuICAuaGlkZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmludmlzaWJsZSB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB9XG5cbiAgLy8gUmVzcG9uc2l2ZSB2aXNpYmlsaXR5IGNsYXNzZXNcbiAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgIC5oaWRlLWZvci0jeyRzaXplfSB7XG4gICAgICAgIEBpbmNsdWRlIGhpZGUtZm9yKCRzaXplKTtcbiAgICAgIH1cblxuICAgICAgLnNob3ctZm9yLSN7JHNpemV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvdy1mb3IoJHNpemUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5oaWRlLWZvci0jeyRzaXplfS1vbmx5IHtcbiAgICAgIEBpbmNsdWRlIGhpZGUtZm9yLW9ubHkoJHNpemUpO1xuICAgIH1cblxuICAgIC5zaG93LWZvci0jeyRzaXplfS1vbmx5IHtcbiAgICAgIEBpbmNsdWRlIHNob3ctZm9yLW9ubHkoJHNpemUpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNjcmVlbiByZWFkZXIgdmlzaWJpbGl0eSBjbGFzc2VzXG4gIC8vIE5lZWQgYSBcImhpZGUtZm9yLXNyXCIgY2xhc3M/IEFkZCBhcmlhLWhpZGRlbj0ndHJ1ZScgdG8gdGhlIGVsZW1lbnRcbiAgLnNob3ctZm9yLXNyLFxuICAuc2hvdy1vbi1mb2N1cyB7XG4gICAgQGluY2x1ZGUgZWxlbWVudC1pbnZpc2libGU7XG4gIH1cblxuICAvLyBPbmx5IGRpc3BsYXkgdGhlIGVsZW1lbnQgd2hlbiBpdCdzIGZvY3VzZWRcbiAgLnNob3ctb24tZm9jdXMge1xuICAgICY6YWN0aXZlLFxuICAgICY6Zm9jdXMge1xuICAgICAgQGluY2x1ZGUgZWxlbWVudC1pbnZpc2libGUtb2ZmO1xuICAgIH1cbiAgfVxuXG4gIC8vIExhbmRzY2FwZSBhbmQgcG9ydHJhaXQgdmlzaWJpbGl0eVxuICAuc2hvdy1mb3ItbGFuZHNjYXBlLFxuICAuaGlkZS1mb3ItcG9ydHJhaXQge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhbmRzY2FwZSkge1xuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHBvcnRyYWl0KSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLmhpZGUtZm9yLWxhbmRzY2FwZSxcbiAgLnNob3ctZm9yLXBvcnRyYWl0IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhbmRzY2FwZSkge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQocG9ydHJhaXQpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBtZW51XG4vLy8vXG5cbi8vLyBNYXJnaW4gb2YgYSBtZW51LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtbWFyZ2luOiAwICFkZWZhdWx0O1xuXG4vLy8gTGVmdC1oYW5kIG1hcmdpbiBvZiBhIG5lc3RlZCBtZW51LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtbmVzdGVkLW1hcmdpbjogJGdsb2JhbC1tZW51LW5lc3RlZC1tYXJnaW4gIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGZvciBpdGVtcyBpbiBhIHBpbGwgbWVudS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZW51LWl0ZW1zLXBhZGRpbmc6ICRnbG9iYWwtbWVudS1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gbWFyZ2luIGZvciBpdGVtcyBpbiBhIHNpbXBsZSBtZW51LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtc2ltcGxlLW1hcmdpbjogMXJlbSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgYW4gYWN0aXZlIG1lbnUgaXRlbS5cbi8vLyBAdHlwZSBDb2xvclxuJG1lbnUtaXRlbS1jb2xvci1hY3RpdmU6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgYW4gYWN0aXZlIG1lbnUgaXRlbS5cbi8vLyBAdHlwZSBDb2xvclxuJG1lbnUtaXRlbS1iYWNrZ3JvdW5kLWFjdGl2ZTogZ2V0LWNvbG9yKHByaW1hcnkpICFkZWZhdWx0O1xuXG4vLy8gU3BhY2luZyBiZXR3ZWVuIGFuIGljb24gYW5kIHRleHQgaW4gYSBtZW51IGl0ZW0uXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1pY29uLXNwYWNpbmc6IDAuMjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBhbiBob3ZlcmVkIG1lbnUgaXRlbS5cbi8vLyBAdHlwZSBDb2xvclxuJG1lbnUtaXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJhY2t3YXJkIGNvbXBhdGliaWxpdHkgZm9yIG1lbnUgc3RhdGUuIElmIHRydWUsIHRoaXMgZHVwbGljYXRlIGBhY3RpdmVgIHdpdGggYGlzLWFjdGl2ZWAuIFxuLy8vIEJ1dCBwbGVhc2Ugbm90ZSB0aGF0IGBhY3RpdmVgIHdpbGwgYmUgcmVtb3ZlZCBpbiB1cGNvbWluZyB2ZXJzaW9ucy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kbWVudS1zdGF0ZS1iYWNrLWNvbXBhdDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2t3YXJkIGNvbXBhdGliaWxpdHkgZm9yIG1lbnUgY2VudGVyZWQuIElmIHRydWUsIHRoaXMgZHVwbGljYXRlIGAubWVudS1jZW50ZXJlZCA+IC5tZW51YCB3aXRoIGAubWVudS5hbGlnbi1jZW50ZXJgLiBcbi8vLyBCdXQgcGxlYXNlIG5vdGUgdGhhdCBgbWVudS1jZW50ZXJlZGAgd2lsbCBiZSByZW1vdmVkIGluIHVwY29taW5nIHZlcnNpb25zLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRtZW51LWNlbnRlcmVkLWJhY2stY29tcGF0OiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQ3JlYXRlcyB0aGUgYmFzZSBzdHlsZXMgZm9yIGEgTWVudS5cbkBtaXhpbiBtZW51LWJhc2Uge1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgfVxuXG4gIGxpIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIH1cblxuICBhLFxuICAuYnV0dG9uIHtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAkbWVudS1pdGVtcy1wYWRkaW5nO1xuICB9XG5cbiAgLy8gUmVzZXQgc3R5bGVzIG9mIGlubmVyIGVsZW1lbnRzXG4gIGlucHV0LFxuICBzZWxlY3QsXG4gIGEsXG4gIGJ1dHRvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuXG4gIGlucHV0IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIH1cbn1cblxuLy8vIEV4cGFuZHMgdGhlIGl0ZW1zIG9mIGEgTWVudSwgc28gZWFjaCBpdGVtIGlzIHRoZSBzYW1lIHdpZHRoLlxuQG1peGluIG1lbnUtZXhwYW5kIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgbGkge1xuICAgICAgZmxleDogMSAxIDBweDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSB6ZXJvLXVuaXRcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgPiBsaSB7XG4gICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFsaWduIG1lbnUgaXRlbXMuXG5AbWl4aW4gbWVudS1hbGlnbigkYWxpZ25tZW50KSB7XG4gIEBpZiAkYWxpZ25tZW50ID09IGxlZnQge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB0ZXh0LWFsaWduOiAkZ2xvYmFsLWxlZnQ7XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRhbGlnbm1lbnQgPT0gcmlnaHQge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgbGkge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgIC5zdWJtZW51IGxpIHtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi52ZXJ0aWNhbCBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB0ZXh0LWFsaWduOiAkZ2xvYmFsLXJpZ2h0O1xuXG4gICAgICAgIC5zdWJtZW51IGxpIHtcbiAgICAgICAgICB0ZXh0LWFsaWduOiAkZ2xvYmFsLXJpZ2h0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHRleHQtYWxpZ246ICRnbG9iYWwtcmlnaHQ7XG5cbiAgICAgIC5zdWJtZW51IGxpIHtcbiAgICAgICAgdGV4dC1hbGlnbjogJGdsb2JhbC1sZWZ0O1xuICAgICAgfVxuXG4gICAgICAmLnZlcnRpY2FsIHtcbiAgICAgICAgLnN1Ym1lbnUgbGkge1xuICAgICAgICAgIHRleHQtYWxpZ246ICRnbG9iYWwtcmlnaHQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGFsaWdubWVudCA9PSBjZW50ZXIge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgbGkge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICAgICAuc3VibWVudSBsaSB7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgLnN1Ym1lbnUgbGkge1xuICAgICAgICB0ZXh0LWFsaWduOiAkZ2xvYmFsLWxlZnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBTZXRzIHRoZSBkaXJlY3Rpb24gb2YgYSBNZW51LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpciBbaG9yaXpvbnRhbF0gLSBEaXJlY3Rpb24gb2YgdGhlIE1lbnUuIENhbiBiZSBgaG9yaXpvbnRhbGAgb3IgYHZlcnRpY2FsYC5cbkBtaXhpbiBtZW51LWRpcmVjdGlvbigkZGlyOiBob3Jpem9udGFsKSB7XG4gIEBpZiAkZGlyID09IGhvcml6b250YWwge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgbGkge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRkaXIgPT0gdmVydGljYWwge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQHdhcm4gJ1RoZSBkaXJlY3Rpb24gdXNlZCBmb3IgbWVudS1kaXJlY3Rpb24oKSBtdXN0IGJlIGhvcml6b250YWwgb3IgdmVydGljYWwuJztcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIHNpbXBsZSBNZW51LCB3aGljaCBoYXMgbm8gcGFkZGluZyBvciBob3ZlciBzdGF0ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXIgWyRnbG9iYWwtbGVmdF0gLSBEaXJlY3Rpb24gb2YgdGhlIG1lbnUuIFRoaXMgZWZmZWN0cyB0aGUgc2lkZSBvZiB0aGUgYDxsaT5gIHRoYXQgcmVjZWl2ZXMgdGhlIG1hcmdpbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG1hcmdpbiBbJG1lbnUtc2ltcGxlLW1hcmdpbl0gLSBUaGUgbWFyZ2luIHRvIGFwcGx5IHRvIGVhY2ggYDxsaT5gLlxuQG1peGluIG1lbnUtc2ltcGxlKCRkaXI6ICRnbG9iYWwtbGVmdCwgJG1hcmdpbjogJG1lbnUtc2ltcGxlLW1hcmdpbikge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG5cbiAgbGkgKyBsaSB7XG4gICAgbWFyZ2luLSN7JGRpcn06ICRtYXJnaW47XG4gIH1cblxuICBhIHtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBuZXN0ZWQgTWVudSwgYnkgYWRkaW5nIGBtYXJnaW4tbGVmdGAgdG8gdGhlIG1lbnUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJG1hcmdpbiBbJG1lbnUtbmVzdGVkLW1hcmdpbl0gLSBMZW5ndGggb2YgdGhlIG1hcmdpbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRuZXN0ZWQtYWxpZ25tZW50IFtsZWZ0XSAtIEFsaWdubWVudCBvZiB0aGUgbmVzdGVkIGNsYXNzXG5AbWl4aW4gbWVudS1uZXN0ZWQoXG4gICRtYXJnaW46ICRtZW51LW5lc3RlZC1tYXJnaW4sXG4gICRuZXN0ZWQtYWxpZ25tZW50OiBsZWZ0XG4pIHtcbiAgQGlmICRuZXN0ZWQtYWxpZ25tZW50ID09IHJpZ2h0IHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJG1hcmdpbjtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwO1xuICB9XG4gIEBlbHNlIHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMDtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkbWFyZ2luO1xuICB9XG5cbn1cblxuLy8vIEFkZHMgYmFzaWMgc3R5bGVzIGZvciBpY29ucyBpbiBtZW51cy5cbkBtaXhpbiBtZW51LWljb25zKCkge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBhIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBpbWcsXG4gICAgaSxcbiAgICBzdmcge1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgKyBzcGFuIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgcG9zaXRpb24gY2xhc3NlcyBmb3IgaWNvbnMgd2l0aGluIGEgbWVudS5cbkBtaXhpbiBtZW51LWljb24tcG9zaXRpb24oJHBvc2l0aW9uOiBsZWZ0LCAkc3BhY2luZzogJG1lbnUtaWNvbi1zcGFjaW5nKSB7XG4gIEBpZiAkcG9zaXRpb24gPT0gbGVmdCB7XG4gICAgbGkgYSB7XG4gICAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgZmxleC1mbG93OiByb3cgbm93cmFwO1xuICAgICAgfVxuXG4gICAgICBpbWcsXG4gICAgICBpLFxuICAgICAgc3ZnIHtcbiAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRzcGFjaW5nO1xuXG4gICAgICAgIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHJpZ2h0IHtcbiAgICBsaSBhIHtcbiAgICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICBmbGV4LWZsb3c6IHJvdyBub3dyYXA7XG4gICAgICB9XG5cbiAgICAgIGltZyxcbiAgICAgIGksXG4gICAgICBzdmcge1xuICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkc3BhY2luZztcblxuICAgICAgICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSB0b3Age1xuICAgIGxpIGEge1xuICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgfVxuXG4gICAgICBpbWcsXG4gICAgICBpLFxuICAgICAgc3ZnIHtcbiAgICAgICAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIG1hcmdpbjogMCBhdXRvICRzcGFjaW5nO1xuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nO1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gYm90dG9tIHtcbiAgICBsaSBhIHtcbiAgICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIH1cblxuICAgICAgaW1nLFxuICAgICAgaSxcbiAgICAgIHN2ZyB7XG4gICAgICAgIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBtYXJnaW46ICRzcGFjaW5nIGF1dG8gMDtcbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZztcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1lbnUtdGV4dCB7XG4gIHBhZGRpbmc6ICRnbG9iYWwtbWVudS1wYWRkaW5nO1xuXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG5cbkBtaXhpbiBtZW51LXN0YXRlLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6ICRtZW51LWl0ZW0tYmFja2dyb3VuZC1hY3RpdmU7XG4gIGNvbG9yOiAkbWVudS1pdGVtLWNvbG9yLWFjdGl2ZTtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tbWVudSB7XG4gIC5tZW51IHtcbiAgICBAaW5jbHVkZSBtZW51LWJhc2U7XG5cbiAgICAvLyBEZWZhdWx0IG9yaWVudGF0aW9uOiBob3Jpem9udGFsXG4gICAgJiwgJi5ob3Jpem9udGFsIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtZGlyZWN0aW9uKGhvcml6b250YWwpO1xuICAgIH1cblxuICAgIC8vIFZlcnRpY2FsIG9yaWVudGF0aW9uIG1vZGlmaWVyXG4gICAgJi52ZXJ0aWNhbCB7XG4gICAgICBAaW5jbHVkZSBtZW51LWRpcmVjdGlvbih2ZXJ0aWNhbCk7XG4gICAgfVxuXG4gICAgLy8gRXZlbi13aWR0aCBtb2RpZmllciBmb3IgaG9yaXpvbnRhbCBvcmllbnRhdGlvblxuICAgICYuZXhwYW5kZWQge1xuICAgICAgQGluY2x1ZGUgbWVudS1leHBhbmQ7XG4gICAgfVxuXG4gICAgLy8gU2ltcGxlXG4gICAgJi5zaW1wbGUge1xuICAgICAgQGluY2x1ZGUgbWVudS1zaW1wbGU7XG4gICAgfVxuXG4gICAgLy8gQnJlYWtwb2ludCBzcGVjaWZpYyB2ZXJzaW9uc1xuICAgIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoJHNtYWxsOiBmYWxzZSkge1xuICAgICAgJi4jeyQtemYtc2l6ZX0taG9yaXpvbnRhbCB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtZGlyZWN0aW9uKGhvcml6b250YWwpO1xuICAgICAgfVxuXG4gICAgICAmLiN7JC16Zi1zaXplfS12ZXJ0aWNhbCB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtZGlyZWN0aW9uKHZlcnRpY2FsKTtcbiAgICAgIH1cblxuICAgICAgJi4jeyQtemYtc2l6ZX0tZXhwYW5kZWQge1xuICAgICAgICBAaW5jbHVkZSBtZW51LWV4cGFuZDtcbiAgICAgIH1cblxuICAgICAgJi4jeyQtemYtc2l6ZX0tc2ltcGxlIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1leHBhbmQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gTmVzdGluZ1xuICAgICYubmVzdGVkIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtbmVzdGVkO1xuICAgIH1cblxuICAgIC8vIEljb24gQmFzZSBTdHlsZXNcbiAgICAmLmljb25zIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtaWNvbnM7XG4gICAgfVxuXG4gICAgLy8gSWNvbiBMZWZ0XG4gICAgJi5pY29uLWxlZnQge1xuICAgICAgQGluY2x1ZGUgbWVudS1pY29uLXBvc2l0aW9uKGxlZnQpO1xuICAgIH1cblxuICAgIC8vIEljb24gUmlnaHRcbiAgICAmLmljb24tcmlnaHQge1xuICAgICAgQGluY2x1ZGUgbWVudS1pY29uLXBvc2l0aW9uKHJpZ2h0KTtcbiAgICB9XG5cbiAgICAvLyBJY29uIFRvcFxuICAgICYuaWNvbi10b3Age1xuICAgICAgQGluY2x1ZGUgbWVudS1pY29uLXBvc2l0aW9uKHRvcCk7XG4gICAgfVxuXG4gICAgLy8gSWNvbiBCb3R0b21cbiAgICAmLmljb24tYm90dG9tIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtaWNvbi1wb3NpdGlvbihib3R0b20pO1xuICAgIH1cblxuICAgIC8vIEFjdGl2ZSBzdGF0ZVxuICAgIC5pcy1hY3RpdmUgPiBhIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtc3RhdGUtYWN0aXZlO1xuICAgIH1cbiAgICBcbiAgICAvLyBCYWNrd2FyZCBDb21wYXRpYmlsaXR5IGZvciBhY3RpdmUgc3RhdGVcbiAgICBAaWYgJG1lbnUtc3RhdGUtYmFjay1jb21wYXQge1xuICAgICAgLmFjdGl2ZSA+IGEge1xuICAgICAgICBAaW5jbHVkZSBtZW51LXN0YXRlLWFjdGl2ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBbGlnbiBsZWZ0XG4gICAgJi5hbGlnbi0jeyRnbG9iYWwtbGVmdH0ge1xuICAgICAgQGluY2x1ZGUgbWVudS1hbGlnbihsZWZ0KTtcbiAgICB9XG5cbiAgICAvLyBBbGlnbiByaWdodFxuICAgICYuYWxpZ24tI3skZ2xvYmFsLXJpZ2h0fSB7XG4gICAgICBAaW5jbHVkZSBtZW51LWFsaWduKHJpZ2h0KTtcblxuICAgICAgLm5lc3RlZCB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtbmVzdGVkKCRuZXN0ZWQtYWxpZ25tZW50OiByaWdodCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQWxpZ24gY2VudGVyXG4gICAgJi5hbGlnbi1jZW50ZXIge1xuICAgICAgQGluY2x1ZGUgbWVudS1hbGlnbihjZW50ZXIpO1xuICAgIH1cblxuICAgIC5tZW51LXRleHQge1xuICAgICAgQGluY2x1ZGUgbWVudS10ZXh0O1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkbWVudS1jZW50ZXJlZC1iYWNrLWNvbXBhdCB7XG4gICAgLm1lbnUtY2VudGVyZWQge1xuICAgICAgPiAubWVudSB7XG4gICAgICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICBAaW5jbHVkZSBtZW51LWFsaWduKGNlbnRlcik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUHJldmVudCBGT1VDIHdoZW4gdXNpbmcgdGhlIFJlc3BvbnNpdmUgTWVudSBwbHVnaW5cbiAgLm5vLWpzIFtkYXRhLXJlc3BvbnNpdmUtbWVudV0gdWwge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbiIsIi8vXG4vLyBTcGFjaW5nL1VuaXQgVmFyaWFibGVzIGFuZCBPYmplY3RzXG4vL1xuXG4kdW5pdHNfX2RlZmF1bHQtdW5pdDogMTZweDtcbiRkZWZhdWx0LXVuaXQ6ICR1bml0c19fZGVmYXVsdC11bml0O1xuJHVuaXRzX19kZWZhdWx0LWJyZWFrcG9pbnQ6IDk2MHB4O1xuJHVuaXRzX19pbmNsdWRlLWJveC1zaXppbmc6IHRydWU7XG5cbi8vIE9QVElPTlM6XG4vLyAqIFwic2VsZWN0b3ItbmFtZVwiOiBTdHJpbmcgKG5vIHNwYWNlcyBhbmQgY2FuJ3Qgc3RhcnQgd2l0aCBhIG51bWJlcikuIE9wdGlvbmFsLiBVc2VkIHRvIGNoYW5nZSBvdXRwdXQgc2VsZWN0b3IgbmFtZS5cbi8vICogXCJzZWxlY3Rvci1zdWZmaXhcIjogU3RyaW5nIChubyBzcGFjZXMpLiBPcHRpb25hbC4gVGhpcyBpcyBhcHBlbmRlZCB0byB0aGUgZW5kIG9mIHRoZSBvdXRwdXQgc2VsZWN0b3Jcbi8vICogXCJtZWRpYS1xdWVyeS1tYXhcIjogTnVtYmVyLiBPcHRpb25hbC4gVXNlcyBgQG1lZGlhIHNjcmVlbiAobWF4LXdpZHRoOiBcInRoaXMgdmFsdWVcIil7fWBcbi8vICogXCJ1bml0LS1tZWRpYS1xdWVyeS1tYXhcIjpOdW1iZXIuIE9wdGlvbmFsOyBSZXF1aXJlZCB3aGVuIGBtZWRpYS1xdWVyeS1tYXhgIGlzIHVzZWQuIElzIGFwcGxpZWQgdW5pdCB0byBgdmFyaWF0aW9uYCBvcHRpb25zIHdpdGhpbiB0aGUgbWVkaWEgcXVlcnkuIEZhbGxiYWNrIHVuaXQgaXMgYHVuaXRgLlxuLy8gKiBcIm1lZGlhLXF1ZXJ5LW1pblwiOiBOdW1iZXIuIE9wdGlvbmFsLiBVc2VzIGBAbWVkaWEgc2NyZWVuIChtaW4td2lkdGg6IFwidGhpcyB2YWx1ZVwiKXt9YGBcbi8vICogXCJ1bml0LS1tZWRpYS1xdWVyeS1taW5cIjogTnVtYmVyLiBPcHRpb25hbDsgUmVxdWlyZWQgd2hlbiBgbWVkaWEtcXVlcnktbWluYCBpcyB1c2VkLiBJcyBhcHBsaWVkIHVuaXQgdG8gYHZhcmlhdGlvbmAgb3B0aW9ucyB3aXRoaW4gdGhlIG1lZGlhIHF1ZXJ5LiBGYWxsYmFjayB1bml0IGlzIGB1bml0YC5cbi8vICogXCJ1bml0XCI6IFJlcXVpcmVkLiBOdW1iZXIuIFJlcXVpcmVkLiBEZWZhdWx0IHVuaXQuIElzIGZhbGxiYWNrIHVuaXQgZm9yIGB1bml0LS1tZWRpYS1xdWVyeS1taW5gIGFuZCBgdW5pdC0tbWVkaWEtcXVlcnktbWF4YCB3aGVuIGBtZWRpYS1xdWVyeS1taW5gIGFuZCBgbWVkaWEtcXVlcnktbWF4YCBhcmUgdXNlZCBhbmQgbm8gdW5pdCBpcyBhcHBsaWVkLlxuLy8gKiBcInZhcmlhdGlvbnNcIjogU2FzcyBNYXAuIFJlcXVpcmVkLiBDb250YWlucyB0aGUgdmFyaWF0aW9ucyBvZiBvdXRwdXQgcHJvcGVyaXRlcy5cbi8vICogIFwiYmFzZVwiOiBPcHRpb25zOiB0cnVlIHwgZmFsc2UgfCBzaG9ydC4gUmVxdWlyZWQuIE91dHB1dHMgZGVmYXVsdCB1bml0LiBXaGVuIHZhbHVlIGlzIGBzaG9ydGAgdGhpcyBrZXkgaXMgdXNlZCB0byBvdXRwdXQgYHBhZGRpbmdgIGFuZCBgbWFyZ2luYCBwcm9wZXJ0eSdzIHNob3J0aGFuZC5cbi8vICogIFwidG9wXCI6IEJvb2xlYW4uIFJlcXVpcmVkLiBPdXRwdXRzIHZhcmlhdGlvbiBvZiBwcm9wZXJ0eSAoYHBhZGRpbmctdG9wYCwgYG1hcmdpbi10b3BgKVxuLy8gKiAgXCJyaWdodFwiOiBCb29sZWFuLiBSZXF1aXJlZC4gT3V0cHV0cyB2YXJpYXRpb24gb2YgcHJvcGVydHkgKGBwYWRkaW5nLXJpZ2h0YCwgYG1hcmdpbi1yaWdodGApXG4vLyAqICBcImJvdHRvbVwiOiBCb29sZWFuLiBSZXF1aXJlZC4gT3V0cHV0cyB2YXJpYXRpb24gb2YgcHJvcGVydHkgKGBwYWRkaW5nLWJvdHRvbWAsIGBtYXJnaW4tYm90dG9tYClcbi8vICogIFwibGVmdFwiOiBCb29sZWFuLiBSZXF1aXJlZC4gT3V0cHV0cyB2YXJpYXRpb24gb2YgcHJvcGVydHkgKGBwYWRkaW5nLWxlZnRgLCBgbWFyZ2luLWxlZnRgKVxuXG4kdW5pdHM6IChcbiAgXCJwYWRkaW5nXCI6ICggLy8gb3B0aW9uYWwga2V5LCB1c2VkIHRvIG91dCBwYWRkaW5nIHVuaXRzXG4gICAgXCJkZWZhdWx0XCI6ICggLy8gXCJgZGVmYXVsdGAgaXMgcmVxdWlyZWRcIiB1bmRlciBcInBhZGRpbmdcIiBrZXlcbiAgICAgIFwibWVkaWEtcXVlcnktbWF4XCI6ICR1bml0c19fZGVmYXVsdC1icmVha3BvaW50LCBcbiAgICAgIFwidW5pdC0tbWVkaWEtcXVlcnktbWF4XCI6ICRkZWZhdWx0LXVuaXQsIFxuICAgICAgXCJtZWRpYS1xdWVyeS1taW5cIjogJHVuaXRzX19kZWZhdWx0LWJyZWFrcG9pbnQsXG4gICAgICBcInVuaXQtLW1lZGlhLXF1ZXJ5LW1pblwiOiAkZGVmYXVsdC11bml0LFxuICAgICAgXCJ1bml0XCI6ICRkZWZhdWx0LXVuaXQsXG4gICAgICBcInZhcmlhdGlvbnNcIjogKFxuICAgICAgICBcImJhc2VcIjogdHJ1ZSxcbiAgICAgICAgXCJ0b3BcIjogdHJ1ZSxcbiAgICAgICAgXCJyaWdodFwiOiB0cnVlLFxuICAgICAgICBcImJvdHRvbVwiOiB0cnVlLFxuICAgICAgICBcImxlZnRcIjogdHJ1ZVxuICAgICAgKVxuICAgICksXG4gICAgXCJjdXN0b20tbmFtZS1kZW1vXCI6ICggXG4gICAgICBcInNlbGVjdG9yLW5hbWVcIjogXCJzcGFjaW5nXCIsXG4gICAgICBcIm1lZGlhLXF1ZXJ5LW1heFwiOiAkdW5pdHNfX2RlZmF1bHQtYnJlYWtwb2ludCwgXG4gICAgICBcInVuaXQtLW1lZGlhLXF1ZXJ5LW1heFwiOiAkZGVmYXVsdC11bml0LCBcbiAgICAgIFwibWVkaWEtcXVlcnktbWluXCI6ICR1bml0c19fZGVmYXVsdC1icmVha3BvaW50LFxuICAgICAgXCJ1bml0LS1tZWRpYS1xdWVyeS1taW5cIjogJGRlZmF1bHQtdW5pdCArICRkZWZhdWx0LXVuaXQsXG4gICAgICBcInVuaXRcIjogJGRlZmF1bHQtdW5pdCArICRkZWZhdWx0LXVuaXQsXG4gICAgICBcInZhcmlhdGlvbnNcIjogKFxuICAgICAgICBcImJhc2VcIjogdHJ1ZSxcbiAgICAgICAgXCJ0b3BcIjogZmFsc2UsXG4gICAgICAgIFwicmlnaHRcIjogZmFsc2UsXG4gICAgICAgIFwiYm90dG9tXCI6IGZhbHNlLFxuICAgICAgICBcImxlZnRcIjogZmFsc2VcbiAgICAgIClcbiAgICApLFxuICAgIFwidHdvLXRpbWVzXCI6IChcbiAgICAgIFwic3VmZml4XCI6IFwiLS0yeFwiLFxuICAgICAgXCJtZWRpYS1xdWVyeS1tYXhcIjogJHVuaXRzX19kZWZhdWx0LWJyZWFrcG9pbnQsIFxuICAgICAgXCJ1bml0LS1tZWRpYS1xdWVyeS1tYXhcIjogJGRlZmF1bHQtdW5pdCwgXG4gICAgICBcIm1lZGlhLXF1ZXJ5LW1pblwiOiAkdW5pdHNfX2RlZmF1bHQtYnJlYWtwb2ludCxcbiAgICAgIFwidW5pdC0tbWVkaWEtcXVlcnktbWluXCI6ICRkZWZhdWx0LXVuaXQgKiAyLFxuICAgICAgXCJ1bml0XCI6ICRkZWZhdWx0LXVuaXQgKiAyLFxuICAgICAgXCJ2YXJpYXRpb25zXCI6IChcbiAgICAgICAgXCJiYXNlXCI6IHRydWUsXG4gICAgICAgIFwidG9wXCI6IHRydWUsXG4gICAgICAgIFwicmlnaHRcIjogdHJ1ZSxcbiAgICAgICAgXCJib3R0b21cIjogdHJ1ZSxcbiAgICAgICAgXCJsZWZ0XCI6IHRydWVcbiAgICAgIClcbiAgICApLFxuICAgIFwib25lLWhhbGYtdGltZXNcIjogKFxuICAgICAgXCJzdWZmaXhcIjogXCItLTNoYWx2ZXNcIixcbiAgICAgIFwibWVkaWEtcXVlcnktbWF4XCI6ICR1bml0c19fZGVmYXVsdC1icmVha3BvaW50LCBcbiAgICAgIFwidW5pdC0tbWVkaWEtcXVlcnktbWF4XCI6ICRkZWZhdWx0LXVuaXQsIFxuICAgICAgXCJtZWRpYS1xdWVyeS1taW5cIjogJHVuaXRzX19kZWZhdWx0LWJyZWFrcG9pbnQsXG4gICAgICBcInVuaXQtLW1lZGlhLXF1ZXJ5LW1pblwiOiAkZGVmYXVsdC11bml0ICogMS41LFxuICAgICAgXCJ1bml0XCI6ICRkZWZhdWx0LXVuaXQgKiAyLFxuICAgICAgXCJ2YXJpYXRpb25zXCI6IChcbiAgICAgICAgXCJiYXNlXCI6IHRydWUsXG4gICAgICAgIFwidG9wXCI6IHRydWUsXG4gICAgICAgIFwicmlnaHRcIjogdHJ1ZSxcbiAgICAgICAgXCJib3R0b21cIjogdHJ1ZSxcbiAgICAgICAgXCJsZWZ0XCI6IHRydWVcbiAgICAgIClcbiAgICApLFxuICAgIFwiaGFsZi1zaXplZFwiOiAoXG4gICAgICBcInN1ZmZpeFwiOiBcIi0taGFsZlwiLFxuICAgICAgXCJ1bml0XCI6ICRkZWZhdWx0LXVuaXQgLyAyLFxuICAgICAgXCJ2YXJpYXRpb25zXCI6IChcbiAgICAgICAgXCJiYXNlXCI6IHRydWUsXG4gICAgICAgIFwidG9wXCI6IHRydWUsXG4gICAgICAgIFwicmlnaHRcIjogdHJ1ZSxcbiAgICAgICAgXCJib3R0b21cIjogdHJ1ZSxcbiAgICAgICAgXCJsZWZ0XCI6IHRydWVcbiAgICAgIClcbiAgICApXG4gICksXG4gIFwibWFyZ2luXCI6ICggLy8gb3B0aW9uYWwga2V5LCB1c2VkIHRvIG91dCBwYWRkaW5nIHVuaXRzXG4gICAgXCJkZWZhdWx0XCI6ICggLy8gXCJgZGVmYXVsdGAgaXMgcmVxdWlyZWRcIiB1bmRlciBcInBhZGRpbmdcIiBrZXlcbiAgICAgIFwibWVkaWEtcXVlcnktbWF4XCI6ICR1bml0c19fZGVmYXVsdC1icmVha3BvaW50LCBcbiAgICAgIFwidW5pdC0tbWVkaWEtcXVlcnktbWF4XCI6ICRkZWZhdWx0LXVuaXQsIFxuICAgICAgXCJtZWRpYS1xdWVyeS1taW5cIjogJHVuaXRzX19kZWZhdWx0LWJyZWFrcG9pbnQsXG4gICAgICBcInVuaXQtLW1lZGlhLXF1ZXJ5LW1pblwiOiAkZGVmYXVsdC11bml0LFxuICAgICAgXCJ1bml0XCI6ICRkZWZhdWx0LXVuaXQsXG4gICAgICBcInZhcmlhdGlvbnNcIjogKFxuICAgICAgICBcImJhc2VcIjogdHJ1ZSxcbiAgICAgICAgXCJ0b3BcIjogdHJ1ZSxcbiAgICAgICAgXCJyaWdodFwiOiB0cnVlLFxuICAgICAgICBcImJvdHRvbVwiOiB0cnVlLFxuICAgICAgICBcImxlZnRcIjogdHJ1ZVxuICAgICAgKVxuICAgICksXG4gICAgXCJ0d28tdGltZXNcIjogKFxuICAgICAgXCJzdWZmaXhcIjogXCItLTJ4XCIsXG4gICAgICBcIm1lZGlhLXF1ZXJ5LW1heFwiOiAkdW5pdHNfX2RlZmF1bHQtYnJlYWtwb2ludCwgXG4gICAgICBcInVuaXQtLW1lZGlhLXF1ZXJ5LW1heFwiOiAkZGVmYXVsdC11bml0LCBcbiAgICAgIFwibWVkaWEtcXVlcnktbWluXCI6ICR1bml0c19fZGVmYXVsdC1icmVha3BvaW50LFxuICAgICAgXCJ1bml0LS1tZWRpYS1xdWVyeS1taW5cIjogJGRlZmF1bHQtdW5pdCAqIDIsXG4gICAgICBcInVuaXRcIjogJGRlZmF1bHQtdW5pdCAqIDIsXG4gICAgICBcInZhcmlhdGlvbnNcIjogKFxuICAgICAgICBcImJhc2VcIjogdHJ1ZSxcbiAgICAgICAgXCJ0b3BcIjogdHJ1ZSxcbiAgICAgICAgXCJyaWdodFwiOiB0cnVlLFxuICAgICAgICBcImJvdHRvbVwiOiB0cnVlLFxuICAgICAgICBcImxlZnRcIjogdHJ1ZVxuICAgICAgKVxuICAgICksXG4gICAgXCJvbmUtaGFsZi10aW1lc1wiOiAoXG4gICAgICBcInN1ZmZpeFwiOiBcIi0tM2hhbHZlc1wiLFxuICAgICAgXCJtZWRpYS1xdWVyeS1tYXhcIjogJHVuaXRzX19kZWZhdWx0LWJyZWFrcG9pbnQsIFxuICAgICAgXCJ1bml0LS1tZWRpYS1xdWVyeS1tYXhcIjogJGRlZmF1bHQtdW5pdCwgXG4gICAgICBcIm1lZGlhLXF1ZXJ5LW1pblwiOiAkdW5pdHNfX2RlZmF1bHQtYnJlYWtwb2ludCxcbiAgICAgIFwidW5pdC0tbWVkaWEtcXVlcnktbWluXCI6ICRkZWZhdWx0LXVuaXQgKiAxLjUsXG4gICAgICBcInVuaXRcIjogJGRlZmF1bHQtdW5pdCAqIDEuNSxcbiAgICAgIFwidmFyaWF0aW9uc1wiOiAoXG4gICAgICAgIFwiYmFzZVwiOiB0cnVlLFxuICAgICAgICBcInRvcFwiOiB0cnVlLFxuICAgICAgICBcInJpZ2h0XCI6IHRydWUsXG4gICAgICAgIFwiYm90dG9tXCI6IHRydWUsXG4gICAgICAgIFwibGVmdFwiOiB0cnVlXG4gICAgICApXG4gICAgKSxcbiAgICBcImhhbGYtc2l6ZWRcIjogKFxuICAgICAgXCJzdWZmaXhcIjogXCItLWhhbGZcIixcbiAgICAgIFwidW5pdFwiOiAkZGVmYXVsdC11bml0IC8gMixcbiAgICAgIFwidmFyaWF0aW9uc1wiOiAoXG4gICAgICAgIFwiYmFzZVwiOiB0cnVlLFxuICAgICAgICBcInRvcFwiOiB0cnVlLFxuICAgICAgICBcInJpZ2h0XCI6IHRydWUsXG4gICAgICAgIFwiYm90dG9tXCI6IHRydWUsXG4gICAgICAgIFwibGVmdFwiOiB0cnVlXG4gICAgICApXG4gICAgKVxuICApXG4pO1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbi8qISAqIFtVbml0IFNwYWNlXShodHRwczovL2dpdGh1Yi5jb20va2V2aW5tYWNrMTgvU0FTUy1NYXJnaW4tYW5kLVBhZGRpbmctU3RhcnRlcikgKi9cbiAvLyAqIEdpdGh1YjogaHR0cHM6Ly9naXRodWIuY29tL2tldmlubWFjazE4L1NBU1MtTWFyZ2luLWFuZC1QYWRkaW5nLVN0YXJ0ZXJcbiAvLyAqIERlbW86IGh0dHA6Ly9rZXZpbm1hY2sxOC5naXRodWIuaW8vU0FTUy1NYXJnaW4tYW5kLVBhZGRpbmctU3RhcnRlci9cbiAvLyAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuIC8vICogaHR0cHM6Ly9naXRodWIuY29tL2tldmlubWFjazE4L1NBU1MtTWFyZ2luLWFuZC1QYWRkaW5nLVN0YXJ0ZXIvYmxvYi9tYXN0ZXIvTElDRU5TRVxuIC8vICogVmVyc2lvbjogdjMuMC4xXG4gLy8gKiBEYXRlOiAyMDE1LTA3LTMwXG5cbkBpZiAoICR1bml0c19faW5jbHVkZS1ib3gtc2l6aW5nICkge1xuICAqLCAqOmJlZm9yZSwgKjphZnRlciB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxufVxuXG5AbWl4aW4gZ2VuZXJhdGVVbml0cygkcHJvcGVydHk6IHBhZGRpbmcsICR2ZXJzaW9uOiBkZWZhdWx0LCAkdmFyaWF0aW9uOiBiYXNlICkge1xuICAkdmVyc2lvbnM6IG1hcC1nZXQoJHVuaXRzLCAkcHJvcGVydHkpO1xuICAkdmFsdWVzOiBtYXAtZ2V0KCR2ZXJzaW9ucywgJHZlcnNpb24pO1xuICAkdW5pdDogaWYobWFwLWhhcy1rZXkoJHZhbHVlcywgXCJ1bml0XCIpLG1hcC1nZXQoJHZhbHVlcywgXCJ1bml0XCIpLCRkZWZhdWx0LXVuaXQpO1xuICAkc2VsZWN0b3ItYmFzZTogaWYobWFwLWhhcy1rZXkoJHZhbHVlcywgXCJzZWxlY3Rvci1uYW1lXCIpLG1hcC1nZXQoJHZhbHVlcywgXCJzZWxlY3Rvci1uYW1lXCIpLCRwcm9wZXJ0eSk7XG4gICR2YXJpYXRpb25zOiBtYXAtZ2V0KCR2YWx1ZXMsIFwidmFyaWF0aW9uc1wiKTtcbiAgJHNlbGVjdG9yLXN1ZmZpeDogaWYobWFwLWhhcy1rZXkoJHZhbHVlcywgXCJzdWZmaXhcIiksbWFwLWdldCgkdmFsdWVzLCBcInN1ZmZpeFwiKSxcIlwiKTtcbiAgJG1lZGlhLXF1ZXJ5LW1pbjogaWYobWFwLWhhcy1rZXkoJHZhbHVlcywgXCJtZWRpYS1xdWVyeS1taW5cIiksbWFwLWdldCgkdmFsdWVzLCBcIm1lZGlhLXF1ZXJ5LW1pblwiKSxmYWxzZSk7XG4gICR1bml0LS1tZWRpYS1xdWVyeS1taW46IGlmKG1hcC1oYXMta2V5KCR2YWx1ZXMsIFwidW5pdC0tbWVkaWEtcXVlcnktbWluXCIpLG1hcC1nZXQoJHZhbHVlcywgXCJ1bml0LS1tZWRpYS1xdWVyeS1taW5cIiksJHVuaXQpO1xuICAkbWVkaWEtcXVlcnktbWF4OiBpZihtYXAtaGFzLWtleSgkdmFsdWVzLCBcIm1lZGlhLXF1ZXJ5LW1heFwiKSxtYXAtZ2V0KCR2YWx1ZXMsIFwibWVkaWEtcXVlcnktbWF4XCIpLGZhbHNlKTtcbiAgJHVuaXQtLW1lZGlhLXF1ZXJ5LW1heDogaWYobWFwLWhhcy1rZXkoJHZhbHVlcywgXCJ1bml0LS1tZWRpYS1xdWVyeS1tYXhcIiksbWFwLWdldCgkdmFsdWVzLCBcInVuaXQtLW1lZGlhLXF1ZXJ5LW1heFwiKSwkdW5pdCk7XG4gICR1bml0cy1hcmUtY29udHJvbGxlZC1ieS1icmVha3BvaW50czogKCRtZWRpYS1xdWVyeS1taW4gIT0gZmFsc2UgYW5kICRtZWRpYS1xdWVyeS1tYXggIT0gZmFsc2UpO1xuXG5cbiAgQGVhY2ggJHZhcmlhdGlvbiwgJGJvb2xlYW4gaW4gJHZhcmlhdGlvbnMge1xuXG4gICAgQGlmKCAkdmFyaWF0aW9uICE9IFwiYmFzZVwiICkge1xuXG4gICAgICAvLyBjcmVhdGUgY3VzdG9tIHBsYWNlaG9sZGVyIHNlbGVjdG9yIGZvciB2ZXJzaW9uaW5nIGVhY2ggZ3JvdXAgaW4gQGV4dGVuZFxuICAgICAgJGlkOiBpZigkdmVyc2lvbiA9PSBcImRlZmF1bHRcIiwgXCJcIiwgJHZlcnNpb24pO1xuXG4gICAgICAvLyBDaGVjayB0byBzZWUgaWYgYm90aCBoYXZlIGJyZWFrcG9pbnRzXG4gICAgICBAaWYgKCR1bml0cy1hcmUtY29udHJvbGxlZC1ieS1icmVha3BvaW50cyA9PSBmYWxzZSkge1xuICAgICAgICAlI3skc2VsZWN0b3ItYmFzZX0tI3skdmFyaWF0aW9ufSN7JHNlbGVjdG9yLXN1ZmZpeH0jeyRpZH0ge1xuICAgICAgICAgICN7JHByb3BlcnR5fS0jeyR2YXJpYXRpb259OiAkdW5pdCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICUjeyRzZWxlY3Rvci1iYXNlfSN7JHNlbGVjdG9yLXN1ZmZpeH0ge1xuICAgICAgICBAaWYgKG1hcC1nZXQoJHZhcmlhdGlvbnMsIFwiYmFzZVwiKSA9PSB0cnVlIGFuZCAobWFwLWdldCgkdmFyaWF0aW9ucywgXCJiYXNlXCIpICE9IFwic2hvcnRcIikgKSB7XG4gICAgICAgICAgQGV4dGVuZCAlI3skc2VsZWN0b3ItYmFzZX0tI3skdmFyaWF0aW9ufSN7JHNlbGVjdG9yLXN1ZmZpeH0jeyRpZH07XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQGlmICgkbWVkaWEtcXVlcnktbWluKSB7XG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRtZWRpYS1xdWVyeS1taW4pIHtcbiAgICAgICAgICAlI3skc2VsZWN0b3ItYmFzZX0tI3skdmFyaWF0aW9ufSN7JHNlbGVjdG9yLXN1ZmZpeH0jeyRpZH0ge1xuICAgICAgICAgICAgI3skcHJvcGVydHl9LSN7JHZhcmlhdGlvbn06ICR1bml0LS1tZWRpYS1xdWVyeS1taW4gIWltcG9ydGFudDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBpZiAoJG1lZGlhLXF1ZXJ5LW1heCkge1xuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbWVkaWEtcXVlcnktbWF4KSB7XG4gICAgICAgICAgJSN7JHNlbGVjdG9yLWJhc2V9LSN7JHZhcmlhdGlvbn0jeyRzZWxlY3Rvci1zdWZmaXh9I3skaWR9IHtcbiAgICAgICAgICAgICN7JHByb3BlcnR5fS0jeyR2YXJpYXRpb259OiAkdW5pdC0tbWVkaWEtcXVlcnktbWF4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmKCAkdmFyaWF0aW9uID09IFwiYmFzZVwiICkge1xuICAgICAgQGlmIChtYXAtZ2V0KCR2YXJpYXRpb25zLCBcImJhc2VcIikgPT0gXCJzaG9ydFwiKSB7XG4gICAgICAgICUjeyRzZWxlY3Rvci1iYXNlfSN7JHNlbGVjdG9yLXN1ZmZpeH0ge1xuICAgICAgICAgICN7JHByb3BlcnR5fTogJHVuaXQ7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCRtZWRpYS1xdWVyeS1taW4pIHtcbiAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkbWVkaWEtcXVlcnktbWluKSB7XG4gICAgICAgICAgICAlI3skc2VsZWN0b3ItYmFzZX0jeyRzZWxlY3Rvci1zdWZmaXh9IHtcbiAgICAgICAgICAgICAgI3skcHJvcGVydHl9OiAkdW5pdC0tbWVkaWEtcXVlcnktbWluO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAaWYgKCRtZWRpYS1xdWVyeS1tYXgpIHtcbiAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbWVkaWEtcXVlcnktbWF4KSB7XG4gICAgICAgICAgICAlI3skc2VsZWN0b3ItYmFzZX0jeyRzZWxlY3Rvci1zdWZmaXh9IHtcbiAgICAgICAgICAgICAgI3skcHJvcGVydHl9OiAkdW5pdC0tbWVkaWEtcXVlcnktbWF4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuI3skc2VsZWN0b3ItYmFzZX0jeyRzZWxlY3Rvci1zdWZmaXh9IHtcbiAgICAgICAgQGV4dGVuZCAlI3skc2VsZWN0b3ItYmFzZX0jeyRzZWxlY3Rvci1zdWZmaXh9ICFvcHRpb25hbDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYoICR2YXJpYXRpb24gIT0gXCJiYXNlXCIgYW5kIChtYXAtZ2V0KCR2YXJpYXRpb25zLCAkdmFyaWF0aW9uKSA9PSB0cnVlKSApIHtcbiAgICAgICRpZDogaWYoJHZlcnNpb24gPT0gXCJkZWZhdWx0XCIsIFwiXCIsICR2ZXJzaW9uKTtcblxuICAgICAgLiN7JHNlbGVjdG9yLWJhc2V9LSN7JHZhcmlhdGlvbn0jeyRzZWxlY3Rvci1zdWZmaXh9IHtcbiAgICAgICAgQGV4dGVuZCAlI3skc2VsZWN0b3ItYmFzZX0tI3skdmFyaWF0aW9ufSN7JHNlbGVjdG9yLXN1ZmZpeH0jeyRpZH0gIW9wdGlvbmFsO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cbi8vIG91dHB1dCBzcGVjaWZpYyBwcm9wZXJpdGVzIG9ubHlcbkBtaXhpbiB1bml0cygkcHJvcGVydHk6IFwicGFkZGluZ1wiLCAkdmVyc2lvbjogXCJkZWZhdWx0XCIsICR2YXJpYXRpb246IChiYXNlOiB0cnVlLCB0b3A6IHRydWUsIHJpZ2h0OiB0cnVlLCBib3R0b206IHRydWUsIGxlZnQ6IHRydWUpKSB7XG4gICR2YXJpYXRpb24tY29udHJvbHM6ICR2YXJpYXRpb247XG4gICR2ZXJzaW9uczogbWFwLWdldCgkdW5pdHMsICRwcm9wZXJ0eSk7XG4gICR2YWx1ZXM6IG1hcC1nZXQoJHZlcnNpb25zLCAkdmVyc2lvbik7XG4gICR1bml0OiBpZihtYXAtaGFzLWtleSgkdmFsdWVzLCBcInVuaXRcIiksbWFwLWdldCgkdmFsdWVzLCBcInVuaXRcIiksJGRlZmF1bHQtdW5pdCk7XG4gICRzZWxlY3Rvci1iYXNlOiBpZihtYXAtaGFzLWtleSgkdmFsdWVzLCBcInNlbGVjdG9yLW5hbWVcIiksbWFwLWdldCgkdmFsdWVzLCBcInNlbGVjdG9yLW5hbWVcIiksJHByb3BlcnR5KTtcbiAgJHZhcmlhdGlvbnM6IG1hcC1nZXQoJHZhbHVlcywgXCJ2YXJpYXRpb25zXCIpO1xuICAkc2VsZWN0b3Itc3VmZml4OiBpZihtYXAtaGFzLWtleSgkdmFsdWVzLCBcInN1ZmZpeFwiKSxtYXAtZ2V0KCR2YWx1ZXMsIFwic3VmZml4XCIpLFwiXCIpO1xuICAkbWVkaWEtcXVlcnktbWluOiBpZihtYXAtaGFzLWtleSgkdmFsdWVzLCBcIm1lZGlhLXF1ZXJ5LW1pblwiKSxtYXAtZ2V0KCR2YWx1ZXMsIFwibWVkaWEtcXVlcnktbWluXCIpLGZhbHNlKTtcbiAgJHVuaXQtLW1lZGlhLXF1ZXJ5LW1pbjogaWYobWFwLWhhcy1rZXkoJHZhbHVlcywgXCJ1bml0LS1tZWRpYS1xdWVyeS1taW5cIiksbWFwLWdldCgkdmFsdWVzLCBcInVuaXQtLW1lZGlhLXF1ZXJ5LW1pblwiKSwkdW5pdCk7XG4gICRtZWRpYS1xdWVyeS1tYXg6IGlmKG1hcC1oYXMta2V5KCR2YWx1ZXMsIFwibWVkaWEtcXVlcnktbWF4XCIpLG1hcC1nZXQoJHZhbHVlcywgXCJtZWRpYS1xdWVyeS1tYXhcIiksZmFsc2UpO1xuICAkdW5pdC0tbWVkaWEtcXVlcnktbWF4OiBpZihtYXAtaGFzLWtleSgkdmFsdWVzLCBcInVuaXQtLW1lZGlhLXF1ZXJ5LW1heFwiKSxtYXAtZ2V0KCR2YWx1ZXMsIFwidW5pdC0tbWVkaWEtcXVlcnktbWF4XCIpLCR1bml0KTtcbiAgJHVuaXRzLWFyZS1jb250cm9sbGVkLWJ5LWJyZWFrcG9pbnRzOiAoJG1lZGlhLXF1ZXJ5LW1pbiAhPSBmYWxzZSBhbmQgJG1lZGlhLXF1ZXJ5LW1heCAhPSBmYWxzZSk7XG5cbiAgQGVhY2ggJHZhcmlhdGlvbiwgJGJvb2xlYW4gaW4gJHZhcmlhdGlvbi1jb250cm9scyB7XG5cbiAgICAkaW5jbHVkZVZhcmlhdGlvbjogbWFwLWdldCgkdmFyaWF0aW9uLWNvbnRyb2xzLCAkdmFyaWF0aW9uKTtcbiAgICAkYmFzZURvZXNOb3RPdmVyaWRlOiBpZihtYXAtZ2V0KCR2YXJpYXRpb24tY29udHJvbHMsIFwiYmFzZVwiKSwgZmFsc2UsIHRydWUpO1xuICAgICRpc0Jhc2U6ICgkdmFyaWF0aW9uID09IFwiYmFzZVwiKTtcblxuICAgIEBpZiggJGluY2x1ZGVWYXJpYXRpb24gKSB7XG5cbiAgICAgIEBpZiAoJHVuaXRzLWFyZS1jb250cm9sbGVkLWJ5LWJyZWFrcG9pbnRzID09IGZhbHNlKSB7XG4gICAgICAgIEBpZiAoJGJhc2VEb2VzTm90T3ZlcmlkZSkge1xuICAgICAgICAgICN7JHByb3BlcnR5fS0jeyR2YXJpYXRpb259OiAkdW5pdDtcbiAgICAgICAgfSBAZWxzZSBpZiAoJGlzQmFzZSkge1xuICAgICAgICAgICN7JHByb3BlcnR5fTogJHVuaXQgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAaWYgKCRtZWRpYS1xdWVyeS1taW4pIHtcbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJG1lZGlhLXF1ZXJ5LW1pbikge1xuICAgICAgICAgIEBpZiAoICRiYXNlRG9lc05vdE92ZXJpZGUgKSB7XG4gICAgICAgICAgICAjeyRwcm9wZXJ0eX0tI3skdmFyaWF0aW9ufTogJHVuaXQtLW1lZGlhLXF1ZXJ5LW1pbjtcbiAgICAgICAgICB9IEBlbHNlIGlmICgkaXNCYXNlKSB7XG4gICAgICAgICAgICAjeyRwcm9wZXJ0eX06ICR1bml0LS1tZWRpYS1xdWVyeS1taW47XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBpZiAoJG1lZGlhLXF1ZXJ5LW1heCkge1xuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbWVkaWEtcXVlcnktbWF4KSB7XG4gICAgICAgICAgQGlmICggJGJhc2VEb2VzTm90T3ZlcmlkZSApIHtcbiAgICAgICAgICAgICN7JHByb3BlcnR5fS0jeyR2YXJpYXRpb259OiAkdW5pdC0tbWVkaWEtcXVlcnktbWF4O1xuICAgICAgICAgIH0gQGVsc2UgaWYgKCRpc0Jhc2UpIHtcbiAgICAgICAgICAgICN7JHByb3BlcnR5fTogJHVuaXQtLW1lZGlhLXF1ZXJ5LW1heDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuXG5AZWFjaCAkcHJvcGVydHksICRpdGVtcyBpbiAkdW5pdHMge1xuXG4gICR2ZXJzaW9uczogbWFwLWdldCgkdW5pdHMsICRwcm9wZXJ0eSk7XG5cbiAgQGVhY2ggJHZlcnNpb24sICRvcHRpb25zIGluICAkdmVyc2lvbnMge1xuXG4gICAgQGluY2x1ZGUgZ2VuZXJhdGVVbml0cygkcHJvcGVydHksICR2ZXJzaW9uLCAkdmFyaWF0aW9uOiBcImluaGVyaXRcIik7XG5cbiAgfVxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBERU1PU1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuJW5vLW1hcmdpbiB7XG4gICN7aDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgcH0ge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLnNwYWNpbmctdmVydGljYWxzIHtcbiAgQGV4dGVuZCAlbWFyZ2luLXRvcDtcbiAgQGV4dGVuZCAlbWFyZ2luLWJvdHRvbTtcbn1cblxuLnBhZGRpbmctLXZlcnRpY2FscyB7XG4gIEBpbmNsdWRlIHVuaXRzKCR2YXJpYXRpb246ICh0b3A6IHRydWUsIGJvdHRvbTogdHJ1ZSwgbGVmdDogdHJ1ZSkpO1xufVxuXG4ubm8tcGFkZGluZyB7XG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbn1cblxuLnBhZGRpbmctbGVmdC1ub25lIHtcbiAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG59XG5cbi5wYWRkaW5nLXJpZ2h0LW5vbmUge1xuICBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG59XG5cbi5uby1tYXJnaW4ge1xuICBtYXJnaW46IDAgIWltcG9ydGFudDtcbn1cblxuLm1hcmdpbi1ib3R0b20tbm9uZSB7XG4gIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbn1cblxuLm1hcmdpbi10b3Atbm9uZSB7XG4gIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbn0iLCJcclxuLypcclxuICBDb2xvcnM6IFByaW1hcnkvV2hpdGUvRGFya1xyXG4gIFwiLmJ1dHRvbi0tcHJpbWFyeVwiLCAuYnV0dG9uLS13aGl0ZSwgLmJ1dHRvbi0tZGFyayB7fVxyXG5cclxuICBTaXplczogU21hbGwvTWVkaXVtL0xhcmdlXHJcbiAgLmJ1dHRvbi0tc21hbGwsIFwiLmJ1dHRvbi0tbWVkaXVtXCIsIC5idXR0b24tLWxhcmdlIHt9XHJcblxyXG4gIEJvcmRlcjogR3JhZGllbnQvV2hpdGVcclxuICAuYnV0dG9uLS1ib3JkZXJfX2dyYWRpZW50LCAuYnV0dG9uLS1ib3JkZXJfX3doaXRlIHt9XHJcblxyXG4gIFR5cGU6IEZpbGwvSG9sbG93IFxyXG4gIFwiLmJ1dHRvbi0tZmlsbFwiLCAuYnV0dG9uLS1ob2xsb3cge31cclxuKi9cclxuXHJcbkBtaXhpbiBidXR0b24taG9sbG93KCRob3ZlcjogdHJ1ZSkge1xyXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gIGJvcmRlcjogMnB4IHNvbGlkICRkYXJrO1xyXG4gIGNvbG9yOiAkZGFyaztcclxuICBsaW5lLWhlaWdodDogNTZweDtcclxuICBcclxuICAmOmFjdGl2ZSwgJjpmb2N1cywgJjpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kOiAkcHJpbWFyeTtcclxuICAgIGJvcmRlcjogMnB4IHNvbGlkICRwcmltYXJ5O1xyXG4gICAgY29sb3I6IHdoaXRlO1xyXG4gIH1cclxuICBcclxuICAmLmJ1dHRvbi0tc21hbGwge1xyXG4gICAgbGluZS1oZWlnaHQ6IDQycHg7XHJcbiAgfSBcclxuICAmLmJ1dHRvbi0tbWVkaXVtIHtcclxuICAgIGxpbmUtaGVpZ2h0OiA1MHB4O1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIGJ1dHRvbi1kYXJrKCkge1xyXG4gIGJhY2tncm91bmQ6ICRkYXJrO1xyXG4gICY6YmVmb3JlIHtcclxuICAgIGJvcmRlci1jb2xvcjogJGRhcmsgIWltcG9ydGFudDtcclxuICB9XHJcbiAgXHJcbiAgJjphY3RpdmUsICY6Zm9jdXMsICY6aG92ZXIge1xyXG4gICAgYmFja2dyb3VuZDogbGlnaHRlbigkZGFyaywgMTApO1xyXG4gICAgJjpiZWZvcmUge1xyXG4gICAgICBib3JkZXItY29sb3I6IGxpZ2h0ZW4oJGRhcmssIDEwKSAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuQG1peGluIGJ1dHRvbi13aGl0ZSgpIHtcclxuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcclxuICBjb2xvcjogJGRhcms7XHJcbiAgJjpiZWZvcmUge1xyXG4gICAgYm9yZGVyLWNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgJjphY3RpdmUsICY6Zm9jdXMsICY6aG92ZXIge1xyXG4gICAgYmFja2dyb3VuZDogZGFya2VuKHdoaXRlLCAxMCk7XHJcbiAgICBjb2xvcjogJGRhcms7XHJcbiAgICAmOmJlZm9yZSB7XHJcbiAgICAgIGJvcmRlci1jb2xvcjogZGFya2VuKHdoaXRlLCAxMCkgIWltcG9ydGFudDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBidXR0b24tcHJpbWFyeSgpIHtcclxuICBiYWNrZ3JvdW5kOiAkcHJpbWFyeTtcclxuICBjb2xvcjogd2hpdGU7XHJcbiAgJjpiZWZvcmUge1xyXG4gICAgYm9yZGVyLWNvbG9yOiAkcHJpbWFyeSAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgJjphY3RpdmUsICY6Zm9jdXMsICY6aG92ZXIge1xyXG4gICAgYmFja2dyb3VuZDogZGFya2VuKCRwcmltYXJ5LCAxMCk7XHJcbiAgICBjb2xvcjogd2hpdGU7XHJcbiAgICAmOmJlZm9yZSB7XHJcbiAgICAgIGJvcmRlci1jb2xvcjogZGFya2VuKCRwcmltYXJ5LCAxMCkgIWltcG9ydGFudDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBidXR0b24tYm9yZGVyKCkge1xyXG4gIG1hcmdpbi1ib3R0b206IDVweDtcclxuICBtYXJnaW4tcmlnaHQ6IDVweDtcclxuXHJcbiAgJjpiZWZvcmUge1xyXG4gICAgY29udGVudDogXCJcIjtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHotaW5kZXg6IDI7XHJcbiAgICB0b3A6IDBweDtcclxuICAgIGxlZnQ6IDBweDtcclxuICAgIHJpZ2h0OiAwcHg7XHJcbiAgICBib3R0b206IDBweDtcclxuICAgIGJvcmRlcjogN3B4IHNvbGlkICRwcmltYXJ5O1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMjVzIGVhc2Utb3V0LCBjb2xvciAwLjI1cyBlYXNlLW91dDtcclxuICB9XHJcbiAgJjphZnRlciB7XHJcbiAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiAwcHg7XHJcbiAgICBsZWZ0OiAwcHg7XHJcbiAgICByaWdodDogMHB4O1xyXG4gICAgYm90dG9tOiAwcHg7XHJcbiAgICBib3JkZXI6IDJweCBzb2xpZCB3aGl0ZTtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDRweCwgNHB4KTtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBidXR0b24tYm9yZGVyLWdyYWRpZW50KCkge1xyXG4gIEBpbmNsdWRlIGJ1dHRvbi1ib3JkZXIoKTtcclxuICBcclxuICAmOmFmdGVyIHtcclxuICAgIGJvcmRlcjogMnB4IHNvbGlkICRzZWNvbmRhcnk7XHJcbiAgICBib3JkZXItaW1hZ2Utc291cmNlOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsICRwcmltYXJ5LCAkc2Vjb25kYXJ5KTtcclxuICAgIGJvcmRlci1pbWFnZS1zbGljZTogMTtcclxuICB9XHJcbn1cclxuXHJcbmJ1dHRvbiwgLmJ1dHRvbiB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGJhY2tncm91bmQ6ICRwcmltYXJ5O1xyXG4gIGJvcmRlcjogbm9uZTtcclxuICBwYWRkaW5nOiAwIDM1cHg7XHJcbiAgaGVpZ2h0OiA2MHB4O1xyXG4gIGxpbmUtaGVpZ2h0OiA2MHB4O1xyXG4gIG1hcmdpbjogMHB4O1xyXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgZm9udC1zaXplOiAyMnB4O1xyXG4gIHRyYW5zaXRpb246IGFsbCAwLjI1cyBlYXNlLW91dCwgY29sb3IgMC4yNXMgZWFzZS1vdXQ7XHJcblxyXG4gIC8qIEJvcmRlciAqL1xyXG4gICZbY2xhc3MqPWJ1dHRvbi0tYm9yZGVyXSB7XHJcbiAgICBcclxuICAgIEBpbmNsdWRlIGJ1dHRvbi1ib3JkZXIoKTtcclxuXHJcbiAgICAmLmJ1dHRvbi0tYm9yZGVyX19ncmFkaWVudCB7XHJcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ib3JkZXItZ3JhZGllbnQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIFxyXG5cclxuICAmOmFjdGl2ZSwgJjpmb2N1cywgJjpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kOiBkYXJrZW4oJHByaW1hcnksIDEwKTtcclxuICAgIG91dGxpbmU6IG5vbmU7XHJcblxyXG4gICAgJjpiZWZvcmUge1xyXG4gICAgICBib3JkZXItY29sb3I6IGRhcmtlbigkcHJpbWFyeSwgMTApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG5cclxuICAvKiBTaXplcyAqL1xyXG4gICYuYnV0dG9uLS1zbWFsbCB7XHJcbiAgICBwYWRkaW5nOiAwIDIwcHg7XHJcbiAgICBoZWlnaHQ6IDQ2cHg7XHJcbiAgICBsaW5lLWhlaWdodDogNDZweDtcclxuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XHJcbiAgfSBcclxuICAmLmJ1dHRvbi0tbWVkaXVtIHtcclxuICAgIHBhZGRpbmc6IDAgNDBweDtcclxuICAgIGhlaWdodDogNTRweDtcclxuICAgIGxpbmUtaGVpZ2h0OiA1NHB4O1xyXG4gIH1cclxuICAmLmJ1dHRvbi0tbGFyZ2Uge1xyXG4gICAgcGFkZGluZzogMCA0MHB4O1xyXG4gICAgaGVpZ2h0OiA2OHB4O1xyXG4gICAgbGluZS1oZWlnaHQ6IDY4cHg7XHJcblxyXG4gICAgZm9udC1zaXplOiAyM3B4O1xyXG4gICAgbGV0dGVyLXNwYWNpbmc6IC0wLjVweDtcclxuICB9XHJcblxyXG5cclxuICAvKiBDb2xvcnMgKi9cclxuICAmLmJ1dHRvbi0td2hpdGUge1xyXG4gICAgQGluY2x1ZGUgYnV0dG9uLXdoaXRlKCk7XHJcbiAgfVxyXG5cclxuICAmLmJ1dHRvbi0tZGFyayB7XHJcbiAgICBAaW5jbHVkZSBidXR0b24tZGFyaygpO1xyXG4gIH1cclxuXHJcbiAgLyogVHlwZXMgKi9cclxuICAmLmJ1dHRvbi0taG9sbG93IHtcclxuICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3coKTtcclxuICB9XHJcbn1cclxuXHJcbi5mLWl0ZW0tcHJldmlldywgLmYtcHJldmlld19fZGFyayB7XHJcbiAgJiA+IGJ1dHRvbiwgJiA+IC5idXR0b24ge1xyXG4gICAgbWFyZ2luOiAxMHB4O1xyXG4gIH1cclxufSIsIi8vLy9cbi8vLyBDb2xvcnNcbi8vLy9cblxuLy8vIFRoaXMgdmFyaWFibGUgaXMgYSBzYXNzIG1hcCB0aGF0IG92ZXJyaWRlcyBvdXIgZ2VuZXJpYyBjb2xvciBtYXAuXG4vLy8gVXNlIHRoaXMgdG8gZGVmaW5lIHlvdXIgcHJvamVjdCdzIGNvbG9yIHBhbGV0dGUuXG4vLy9cblxuJHByaW1hcnk6ICNFRTFCQjY7XG4kc2Vjb25kYXJ5OiAjNzk4M0ZGO1xuJGRhcms6ICMyQzI5MzQ7XG4kbGlnaHQ6ICNlOGU4ZTg7XG4kbGlnaHRlcjogI2Y1ZjhmYTtcblxuJGNvbG9yczogKFxuICAgIHByaW1hcnk6ICAgICAgICAgICAgICAgICAgICAgICMwMDRmZGMsXG4gICAgcHJpbWFyeS1kYXJrZXI6ICAgICAgICAgICAgICAgIzAwNDk5MSxcbiAgICBwcmltYXJ5LWRhcmtlc3Q6ICAgICAgICAgICAgICAjMTEyZTUxLFxuICAgIHByaW1hcnktYWx0LWRhcms6ICAgICAgICAgICAgICMwMDVkZGMsXG4gICAgcHJpbWFyeS1hbHQtZGFya2VyOiAgICAgICAgICAgIzAwNWRkYyxcbiAgICBwcmltYXJ5LWFsdC1kYXJrZXN0OiAgICAgICAgICAjMDA1ZGRjLFxuICAgIHByaW1hcnktYWx0LWxpZ2h0OiAgICAgICAgICAgICMwMDVkZGMsXG4gICAgcHJpbWFyeS1hbHQtbGlnaHRlc3Q6ICAgICAgICAgIzAwNWRkYyxcbiAgICBzZWNvbmRhcnk6ICAgICAgICAgICAgICAgICAgICAjZmZmLFxuICAgIHNlY29uZGFyeS1kYXJrOiAgICAgICAgICAgICAgICNkZGQsXG4gICAgc2Vjb25kYXJ5LWRhcmtlc3Q6ICAgICAgICAgICAgIzk5OSxcbiAgICBzZWNvbmRhcnktbGlnaHQ6ICAgICAgICAgICAgICAjMTEyLFxuICAgIHNlY29uZGFyeS1saWdodGVzdDogICAgICAgICAgICM4MDgwODAsXG4pICFkZWZhdWx0OyIsIlxyXG5hLmFkZC1idXR0b24sIC5hZGQtYnV0dG9uIHtcclxuICBcclxuICBwYWRkaW5nOiAwcHg7XHJcbiAgaGVpZ2h0OiBhdXRvO1xyXG4gIGxpbmUtaGVpZ2h0OiBpbml0aWFsO1xyXG4gIGZvbnQtc2l6ZTogMHB4O1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcblxyXG4gICY6YmVmb3JlIHtcclxuICAgIGNvbnRlbnQ6IFwiK1wiO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgbGluZS1oZWlnaHQ6IDI0cHg7XHJcbiAgICBib3JkZXItcmFkaXVzOiAxMDBweDtcclxuICAgIGZvbnQtc2l6ZTogMzRweDtcclxuICAgIGZvbnQtd2VpZ2h0OiAxMDA7XHJcbiAgICB3aWR0aDogMjlweDtcclxuICAgIGhlaWdodDogMjlweDtcclxuICAgIHZlcnRpY2FsLWFsaWduOiB0ZXh0LXRvcDtcclxuICAgIGJhY2tncm91bmQ6ICRkYXJrO1xyXG4gICAgY29sb3I6IHdoaXRlO1xyXG4gICAgbWFyZ2luLXJpZ2h0OiA3cHg7XHJcbiAgfVxyXG4gICY6YWZ0ZXIge1xyXG4gICAgY29udGVudDogJ0FkZCc7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBjb2xvcjogJGRhcms7XHJcbiAgICBmb250LXNpemU6IDIycHg7XHJcbiAgICBmb250LXdlaWdodDogMzAwO1xyXG4gIH1cclxuXHJcbiAgJi5hZGQtYnV0dG9uLS1wcmltYXJ5IHtcclxuICAgICY6YWZ0ZXIge1xyXG4gICAgICBjb2xvcjogd2hpdGU7XHJcbiAgICB9XHJcbiAgICAmOmJlZm9yZSB7XHJcbiAgICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5O1xyXG4gICAgICBib3gtc2hhZG93OiAwIDJweCAxNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjUpO1xyXG4gICAgfVxyXG4gIH1cclxuICAmLmFkZC1idXR0b24tLWJsdWUge1xyXG4gICAgJjphZnRlciB7XHJcbiAgICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICAgIH1cclxuICAgICY6YmVmb3JlIHtcclxuICAgICAgYmFja2dyb3VuZDogIzAwYjFmZjtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiXHJcbi53cGNmNyB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi5zdWJtaXQtd3JhcHBlciB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBcclxuICAud3BjZjctc3VibWl0IHtcclxuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2VlMWJiNztcclxuICAgIGJvcmRlcjogbm9uZTtcclxuICAgIHBhZGRpbmc6IDE5cHggMTBweDtcclxuICAgIG1pbi13aWR0aDogMjYwcHg7XHJcblxyXG4gICAgZm9udC1zaXplOiAyM3B4O1xyXG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGNvbG9yOiAjZmZmZmZmO1xyXG4gIH1cclxuXHJcbiAgLmFqYXgtbG9hZGVyIHtcclxuICB9XHJcbn1cclxuXHJcbmRpdi53cGNmNy1yZXNwb25zZS1vdXRwdXQge1xyXG4gIG1hcmdpbjogMjBweCAwO1xyXG59XHJcblxyXG4ud3BjZjctZm9ybS1jb250cm9sLXdyYXAge1xyXG4gIGlucHV0LCB0ZXh0YXJlYSB7XHJcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XHJcbiAgICBib3JkZXI6IHNvbGlkIDFweCAjZDNkZWUzO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcclxuICAgIGJveC1zaGFkb3c6IG5vbmU7XHJcbiAgICBwYWRkaW5nOiAxM3B4IDIwcHg7XHJcbiAgICBoZWlnaHQ6IGF1dG87XHJcblxyXG4gICAgZm9udC1zaXplOiAyMHB4O1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuNjtcclxuICAgIGxldHRlci1zcGFjaW5nOiAtMC41cHg7XHJcbiAgICBjb2xvcjogIzA4MTMxZjtcclxuICB9XHJcbiAgdGV4dGFyZWEge1xyXG4gICAgaGVpZ2h0OiAyMDBweDtcclxuICB9XHJcbn0iLCJcclxuYm9keSAud29vY29tbWVyY2Utbm90aWNlcy13cmFwcGVyIHtcclxuICBAaW5jbHVkZSBmbGV4LWdyaWQtcm93KCk7XHJcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgei1pbmRleDogMTA7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbn1cclxuXHJcbmJvZHkgLndvb2NvbW1lcmNlLW5vdGljZXMtd3JhcHBlcjplbXB0eSB7XHJcbiAgZGlzcGxheTogbm9uZTtcclxufVxyXG5cclxuLndvb2NvbW1lcmNlLW1lc3NhZ2UsIC53b29jb21tZXJjZS1lcnJvciwgLndvb2NvbW1lcmNlLXN1Y2Nlc3MsIC53b29jb21tZXJjZS1NZXNzYWdlLCAud29vY29tbWVyY2UtaW5mbyB7XHJcbiAgQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbigxMik7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgY29sb3I6IHdoaXRlO1xyXG4gIG1hcmdpbjogMDtcclxuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG4gIHBhZGRpbmc6IDEwcHg7XHJcbiAgLy8gYmFja2Ryb3AtZmlsdGVyOiBibHVyKDI5cHgpO1xyXG4gIC8vIGJhY2tncm91bmQ6IHJnYmEoMTIyLCAxMjIsIDEyMiwgMC40KSAhaW1wb3J0YW50O1xyXG5cclxuICBsaXN0LXN0eWxlOiBub25lO1xyXG5cclxuICBhIHtcclxuICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gIH1cclxufVxyXG5cclxuLndvb2NvbW1lcmNlLW1lc3NhZ2UgLmJ1dHRvbiwgLndvb2NvbW1lcmNlLU1lc3NhZ2UgLmJ1dHRvbiB7XHJcbiAgQGV4dGVuZCAuYnV0dG9uLS1zbWFsbDtcclxuICBAaW5jbHVkZSBidXR0b24taG9sbG93KCk7XHJcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xyXG4gIGNvbG9yOiB3aGl0ZTtcclxuICBib3JkZXItY29sb3I6IHdoaXRlO1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuXHJcbiAgXHJcbiAgJjphY3RpdmUsICY6Zm9jdXMsICY6aG92ZXIge1xyXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICBjb2xvcjogd2hpdGU7XHJcbiAgICBib3JkZXI6IDJweCBzb2xpZCB3aGl0ZTtcclxuICB9XHJcbn0iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmbGV4LWdyaWRcbi8vLy9cblxuLy8vIENyZWF0ZXMgYSBjb250YWluZXIgZm9yIGEgZmxleCBncmlkIHJvdy5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxMaXN0fSAkYmVoYXZpb3IgW251bGxdXG4vLy8gICBNb2RpZmljYXRpb25zIHRvIHRoZSBkZWZhdWx0IGdyaWQgc3R5bGVzLiBgbmVzdGAgaW5kaWNhdGVzIHRoZSByb3cgd2lsbCBiZSBwbGFjZWQgaW5zaWRlIGFub3RoZXIgcm93LiBgY29sbGFwc2VgIGluZGljYXRlcyB0aGF0IHRoZSBjb2x1bW5zIGluc2lkZSB0aGlzIHJvdyB3aWxsIG5vdCBoYXZlIHBhZGRpbmcuIGBuZXN0IGNvbGxhcHNlYCBjb21iaW5lcyBib3RoIGJlaGF2aW9ycy5cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkc2l6ZSBbJGdyaWQtcm93LXdpZHRoXSBNYXhpbXVtIHNpemUgb2YgdGhlIHJvdy4gU2V0IHRvIGBleHBhbmRgIHRvIG1ha2UgdGhlIHJvdyB0YWtpbmcgdGhlIGZ1bGwgd2lkdGguXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRjb2x1bW5zIFtudWxsXSAtIE51bWJlciBvZiBjb2x1bW5zIHRvIHVzZSBmb3IgdGhpcyByb3cuIElmIHNldCB0byBgbnVsbGAgKHRoZSBkZWZhdWx0KSwgdGhlIGdsb2JhbCBjb2x1bW4gY291bnQgd2lsbCBiZSB1c2VkLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGJhc2UgW3RydWVdIC0gU2V0IHRvIGBmYWxzZWAgdG8gcHJldmVudCBiYXNpYyBzdHlsZXMgZnJvbSBiZWluZyBvdXRwdXQuIFVzZWZ1bCBpZiB5b3UncmUgY2FsbGluZyB0aGlzIG1peGluIG9uIHRoZSBzYW1lIGVsZW1lbnQgdHdpY2UsIGFzIGl0IHByZXZlbnRzIGR1cGxpY2F0ZSBDU1Mgb3V0cHV0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gR3V0dGVyIG1hcCBvciBzaW5nbGUgdmFsdWUgdG8gdXNlIHdoZW4gaW52ZXJ0aW5nIG1hcmdpbnMsIGluIGNhc2UgdGhlIHJvdyBpcyBuZXN0ZWQuIFJlc3BvbnNpdmUgZ3V0dGVyIHNldHRpbmdzIGJ5IGRlZmF1bHQuXG5AbWl4aW4gZmxleC1ncmlkLXJvdyhcbiAgJGJlaGF2aW9yOiBudWxsLFxuICAkc2l6ZTogJGdyaWQtcm93LXdpZHRoLFxuICAkY29sdW1uczogbnVsbCxcbiAgJGJhc2U6IHRydWUsXG4gICR3cmFwOiB0cnVlLFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gICRtYXJnaW46IGF1dG87XG4gICR3cmFwOiBpZigkd3JhcCwgd3JhcCwgbm93cmFwKTtcblxuICBAaWYgaW5kZXgoJGJlaGF2aW9yLCBuZXN0KSAhPSBudWxsIHtcbiAgICBAaW5jbHVkZSBncmlkLXJvdy1uZXN0KCRndXR0ZXJzKTtcblxuICAgIEBpZiBpbmRleCgkYmVoYXZpb3IsIGNvbGxhcHNlKSAhPSBudWxsIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQGluY2x1ZGUgZ3JpZC1yb3ctc2l6ZSgkc2l6ZSk7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG5cbiAgQGlmICRiYXNlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZmxvdzogcm93ICR3cmFwO1xuICB9XG5cbiAgQGlmICRjb2x1bW5zICE9IG51bGwge1xuICAgIEBpbmNsdWRlIGdyaWQtY29udGV4dCgkY29sdW1ucywgJGJhc2UpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQ2FsY3VsYXRlcyB0aGUgYGZsZXhgIHByb3BlcnR5IGZvciBhIGZsZXggZ3JpZCBjb2x1bW4uIEl0IGFjY2VwdHMgYWxsIG9mIHRoZSBzYW1lIHZhbHVlcyBhcyB0aGUgYmFzaWMgYGdyaWQtY29sdW1uKClgIGZ1bmN0aW9uLCBhbG9uZyB3aXRoIHR3byBleHRyYXM6XG4vLy8gICAtIGBleHBhbmRgICh0aGUgZGVmYXVsdCkgd2lsbCBtYWtlIHRoZSBjb2x1bW4gZXhwYW5kIHRvIGZpbGwgc3BhY2UuXG4vLy8gICAtIGBzaHJpbmtgIHdpbGwgbWFrZSB0aGUgY29sdW1uIGNvbnRyYWN0LCBzbyBpdCBvbmx5IHRha2VzIHVwIHRoZSBob3Jpem9udGFsIHNwYWNlIGl0IG5lZWRzLlxuLy8vXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGNvbHVtbnMgW2V4cGFuZF0gLSBXaWR0aCBvZiB0aGUgY29sdW1uLlxuQGZ1bmN0aW9uIGZsZXgtZ3JpZC1jb2x1bW4oJGNvbHVtbnM6IGV4cGFuZCkge1xuICAkZmxleDogMSAxIDBweDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSB6ZXJvLXVuaXRcblxuICBAaWYgJGNvbHVtbnMgPT0gc2hyaW5rIHtcbiAgICAkZmxleDogMCAwIGF1dG87XG4gIH1cbiAgQGVsc2UgaWYgJGNvbHVtbnMgIT0gZXhwYW5kIHtcbiAgICAkZmxleDogMCAwIGdyaWQtY29sdW1uKCRjb2x1bW5zKTtcbiAgfVxuXG4gIEByZXR1cm4gJGZsZXg7XG59XG5cbi8vLyBDcmVhdGVzIGEgY29sdW1uIGZvciBhIGZsZXggZ3JpZC4gQnkgZGVmYXVsdCwgdGhlIGNvbHVtbiB3aWxsIHN0cmV0Y2ggdG8gdGhlIGZ1bGwgd2lkdGggb2YgaXRzIGNvbnRhaW5lciwgYnV0IHRoaXMgY2FuIGJlIG92ZXJyaWRkZW4gd2l0aCBzaXppbmcgY2xhc3Nlcywgb3IgYnkgdXNpbmcgdGhlIGB1bnN0YWNrYCBjbGFzcyBvbiB0aGUgcGFyZW50IGZsZXggcm93LlxuLy8vXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGNvbHVtbnMgW2V4cGFuZF0gLSBXaWR0aCBvZiB0aGUgY29sdW1uLiBSZWZlciB0byB0aGUgYGZsZXgtZ3JpZC1jb2x1bW4oKWAgZnVuY3Rpb24gdG8gc2VlIHBvc3NpYmxlIHZhbHVlcy5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgZm9yIGd1dHRlcnMgd2lkdGguIFNlZSB0aGUgYGdyaWQtY29sdW1uLWd1dHRlcmAgbWl4aW4uXG5AbWl4aW4gZmxleC1ncmlkLWNvbHVtbihcbiAgJGNvbHVtbnM6IGV4cGFuZCxcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICAvLyBCYXNlIHByb3BlcnRpZXNcbiAgQGluY2x1ZGUgZmxleC1ncmlkLXNpemUoJGNvbHVtbnMpO1xuXG4gIC8vIEd1dHRlcnNcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tZ3V0dGVyKCRndXR0ZXJzOiAkZ3V0dGVycyk7XG5cbiAgLy8gZml4ZXMgcmVjZW50IENocm9tZSB2ZXJzaW9uIG5vdCBsaW1pdGluZyBjaGlsZCB3aWR0aFxuICAvLyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8zNDkzNDU4Ni93aGl0ZS1zcGFjZS1ub3dyYXAtYW5kLWZsZXhib3gtZGlkLW5vdC13b3JrLWluLWNocm9tZVxuICBAaWYgJGNvbHVtbnMgPT0gZXhwYW5kIHtcbiAgICBtaW4td2lkdGg6IDA7XG4gIH1cbiAgLy8gbWF4LXdpZHRoIGZpeGVzIElFIDEwLzExIG5vdCByZXNwZWN0aW5nIHRoZSBmbGV4LWJhc2lzIHByb3BlcnR5XG4gIEBpZiAkY29sdW1ucyAhPSBleHBhbmQgYW5kICRjb2x1bW5zICE9IHNocmluayB7XG4gICAgbWF4LXdpZHRoOiBncmlkLWNvbHVtbigkY29sdW1ucyk7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBibG9jayBncmlkIGZvciBhIGZsZXggZ3JpZCByb3cuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJG4gLSBOdW1iZXIgb2YgY29sdW1ucyB0byBkaXNwbGF5IG9uIGVhY2ggcm93LlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VsZWN0b3IgLSBTZWxlY3RvciB0byB1c2UgdG8gdGFyZ2V0IGNvbHVtbnMgd2l0aGluIHRoZSByb3cuXG5AbWl4aW4gZmxleC1ncmlkLWxheW91dChcbiAgJG4sXG4gICRzZWxlY3RvcjogJy5jb2x1bW4nXG4pIHtcbiAgZmxleC13cmFwOiB3cmFwO1xuXG4gID4gI3skc2VsZWN0b3J9IHtcbiAgICAkcGN0OiBwZXJjZW50YWdlKDEvJG4pO1xuXG4gICAgZmxleDogMCAwICRwY3Q7XG4gICAgbWF4LXdpZHRoOiAkcGN0O1xuICB9XG59XG5cbi8vLyBDaGFuZ2VzIHRoZSB3aWR0aCBmbGV4IGdyaWQgY29sdW1uLlxuLy8vIEBwYXJhbSB7TWl4ZWR9ICRjb2x1bW5zIFtleHBhbmRdIC0gV2lkdGggb2YgdGhlIGNvbHVtbi4gUmVmZXIgdG8gdGhlIGBmbGV4LWdyaWQtY29sdW1uKClgIGZ1bmN0aW9uIHRvIHNlZSBwb3NzaWJsZSB2YWx1ZXMuXG5AbWl4aW4gZmxleC1ncmlkLXNpemUoJGNvbHVtbnM6IG51bGwpIHtcbiAgJGNvbHVtbnM6ICRjb2x1bW5zIG9yIGV4cGFuZDtcblxuICBmbGV4OiBmbGV4LWdyaWQtY29sdW1uKCRjb2x1bW5zKTtcblxuICAvLyBtYXgtd2lkdGggZml4ZXMgSUUgMTAvMTEgbm90IHJlc3BlY3RpbmcgdGhlIGZsZXgtYmFzaXMgcHJvcGVydHlcbiAgQGlmICRjb2x1bW5zICE9IGV4cGFuZCBhbmQgJGNvbHVtbnMgIT0gc2hyaW5rIHtcbiAgICBtYXgtd2lkdGg6IGdyaWQtY29sdW1uKCRjb2x1bW5zKTtcbiAgfVxufVxuXG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZsZXgtZ3JpZCB7XG4gIC8vIFJvd1xuICAucm93IHtcbiAgICBAaW5jbHVkZSBmbGV4LWdyaWQtcm93O1xuXG4gICAgLy8gTmVzdGluZyBiZWhhdmlvclxuICAgICYgLnJvdyB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWdyaWQtcm93KG5lc3QsICRiYXNlOiBmYWxzZSk7XG5cbiAgICAgICYuY29sbGFwc2Uge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEV4cGFuZGVkIHJvd1xuICAgICYuZXhwYW5kZWQge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1yb3ctc2l6ZShleHBhbmQpO1xuXG4gICAgICAucm93IHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm5vdCguZXhwYW5kZWQpIC5yb3cge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1yb3ctc2l6ZShleHBhbmQpO1xuICAgIH1cblxuICAgICYuY29sbGFwc2Uge1xuICAgICAgPiAuY29sdW1uIHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2wtY29sbGFwc2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gVW5kbyBuZWdhdGl2ZSBtYXJnaW5zXG4gICAgLy8gRnJvbSBjb2xsYXBzZWQgY2hpbGRcbiAgICAmLmlzLWNvbGxhcHNlLWNoaWxkLFxuICAgICYuY29sbGFwc2UgPiAuY29sdW1uID4gLnJvdyB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG4gIH1cblxuICAvLyBDb2x1bW5cbiAgLmNvbHVtbiB7XG4gICAgQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbjtcbiAgfVxuXG4gIC8vIENvbHVtbiByb3dcbiAgLy8gVGhlIGRvdWJsZSAucm93IGNsYXNzIGlzIG5lZWRlZCB0byBidW1wIHVwIHRoZSBzcGVjaWZpY2l0eVxuICAuY29sdW1uLnJvdy5yb3cge1xuICAgIGZsb2F0OiBub25lO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgLy8gVG8gcHJvcGVybHkgbmVzdCBhIGNvbHVtbiByb3csIHBhZGRpbmcgYW5kIG1hcmdpbiBpcyByZW1vdmVkXG4gIC5yb3cgLmNvbHVtbi5yb3cucm93IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gIH1cblxuICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50IHtcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLWNvbHVtbi1jb3VudCB7XG4gICAgICAvLyBTaXppbmcgKHBlcmNlbnRhZ2UpXG4gICAgICAuI3skLXpmLXNpemV9LSN7JGl9IHtcbiAgICAgICAgZmxleDogZmxleC1ncmlkLWNvbHVtbigkaSk7XG4gICAgICAgIG1heC13aWR0aDogZ3JpZC1jb2x1bW4oJGkpO1xuICAgICAgfVxuXG4gICAgICAvLyBPZmZzZXRzXG4gICAgICAkbzogJGkgLSAxO1xuXG4gICAgICAuI3skLXpmLXNpemV9LW9mZnNldC0jeyRvfSB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uLW9mZnNldCgkbyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQmxvY2sgZ3JpZFxuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGJsb2NrLWdyaWQtbWF4IHtcbiAgICAgIC4jeyQtemYtc2l6ZX0tdXAtI3skaX0ge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWdyaWQtbGF5b3V0KCRpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJC16Zi1zaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgIC8vIFNpemluZyAoZXhwYW5kKVxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkLXpmLXNpemUpIHtcbiAgICAgICAgLiN7JC16Zi1zaXplfS1leHBhbmQge1xuICAgICAgICAgIGZsZXg6IGZsZXgtZ3JpZC1jb2x1bW4oKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBBdXRvLXN0YWNraW5nL3Vuc3RhY2tpbmdcbiAgICAgIEBhdC1yb290ICh3aXRob3V0OiBtZWRpYSkge1xuICAgICAgICAucm93LiN7JC16Zi1zaXplfS11bnN0YWNrIHtcbiAgICAgICAgICA+IC5jb2x1bW4ge1xuICAgICAgICAgICAgZmxleDogZmxleC1ncmlkLWNvbHVtbigxMDAlKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkLXpmLXNpemUpIHtcbiAgICAgICAgICAgICAgZmxleDogZmxleC1ncmlkLWNvbHVtbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJlc3BvbnNpdmUgY29sbGFwc2luZ1xuICAgIC4jeyQtemYtc2l6ZX0tY29sbGFwc2Uge1xuICAgICAgPiAuY29sdW1uIHsgQGluY2x1ZGUgZ3JpZC1jb2wtY29sbGFwc2U7IH1cbiAgICB9XG5cbiAgICAuI3skLXpmLXNpemV9LXVuY29sbGFwc2Uge1xuICAgICAgPiAuY29sdW1uIHsgQGluY2x1ZGUgZ3JpZC1jb2wtZ3V0dGVyKCQtemYtc2l6ZSk7IH1cbiAgICB9XG4gIH1cblxuICAvLyBTaXppbmcgKHNocmluaylcbiAgLnNocmluayB7XG4gICAgZmxleDogZmxleC1ncmlkLWNvbHVtbihzaHJpbmspO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxuXG4gIC8vIEJsb2NrIGdyaWQgY29sdW1uc1xuICAuY29sdW1uLWJsb2NrIHtcbiAgICBAaW5jbHVkZSBncmlkLWNvbHVtbi1tYXJnaW47XG4gIH1cblxuICAuY29sdW1ucyB7XG4gICAgQGV4dGVuZCAuY29sdW1uOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHBsYWNlaG9sZGVyLWluLWV4dGVuZFxuXG4gIH1cbn1cbiIsIlxyXG5cclxuLmNob3Nlbi1jb250YWluZXItc2luZ2xlIC5jaG9zZW4tc2luZ2xlLCAuY2hvc2VuLWNvbnRhaW5lci1hY3RpdmUuY2hvc2VuLXdpdGgtZHJvcCAuY2hvc2VuLXNpbmdsZSB7XHJcbiAgYmFja2dyb3VuZDogd2hpdGU7XHJcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xyXG4gIGJvcmRlcjogc29saWQgMXB4ICNiN2M0Yzk7XHJcbiAgYm94LXNoYWRvdzogbm9uZTtcclxuICBoZWlnaHQ6IDU0cHg7XHJcbiAgcGFkZGluZzogMCAxN3B4O1xyXG4gIGNvbG9yOiAjMDgxMzFmO1xyXG4gIGZvbnQtc2l6ZTogMjBweDtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbn1cclxuXHJcbi5jaG9zZW4tY29udGFpbmVyLXNpbmdsZSAuY2hvc2VuLWRyb3Age1xyXG4gIG1hcmdpbi10b3A6IDEwcHg7XHJcbiAgYm9yZGVyOiBub25lO1xyXG4gIGJveC1zaGFkb3c6IG5vbmU7XHJcbiAgLy8gYmFja2Ryb3AtZmlsdGVyOiBibHVyKDMwcHgpO1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTE1LCAxMTUsIDExNSwgMSk7XHJcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG59XHJcblxyXG4uY2hvc2VuLWNvbnRhaW5lci1zaW5nbGUgLmNob3Nlbi1zaW5nbGUgZGl2IHtcclxuICB3aWR0aDogYXV0bztcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgcGFkZGluZy1yaWdodDogMTBweDtcclxufVxyXG5cclxuLmNob3Nlbi1jb250YWluZXItc2luZ2xlIC5jaG9zZW4tc2luZ2xlIGRpdiBiIHtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lICFpbXBvcnRhbnQ7XHJcbiAgaGVpZ2h0OiBhdXRvO1xyXG5cclxuICAmOmJlZm9yZSB7XHJcbiAgICBAaW5jbHVkZSBpY29tb29uLWljb24oJGljb24tY2hldnJvbi1kb3duKTtcclxuICAgIGZvbnQtc2l6ZTogMzBweDtcclxuICAgIGNvbG9yOiAjRUUxQkI2O1xyXG4gIH1cclxufVxyXG5cclxuLmNob3Nlbi1jb250YWluZXIgLmNob3Nlbi1yZXN1bHRzIHtcclxuICBwYWRkaW5nOiAwcHg7XHJcbiAgbWFyZ2luOiAwcHg7XHJcbiAgbWFyZ2luLWJvdHRvbTogMTJweDtcclxuICBtYXJnaW4tdG9wOiAxMnB4O1xyXG59XHJcblxyXG4uY2hvc2VuLWNvbnRhaW5lciAuY2hvc2VuLXJlc3VsdHMgbGkge1xyXG4gIHBhZGRpbmc6IDEwcHggMTdweDtcclxuICBwYWRkaW5nLWJvdHRvbTogOXB4O1xyXG4gIGNvbG9yOiB3aGl0ZTtcclxuICBmb250LXNpemU6IDIwcHg7XHJcbiAgbGluZS1oZWlnaHQ6IDEuNGVtO1xyXG59XHJcblxyXG4uY2hvc2VuLWNvbnRhaW5lciAuY2hvc2VuLXJlc3VsdHMgbGkuaGlnaGxpZ2h0ZWQge1xyXG4gIGJhY2tncm91bmQ6IG5vbmU7XHJcbiAgb3BhY2l0eTogMC43O1xyXG59XHJcblxyXG4uY2hvc2VuLWNvbnRhaW5lci1zaW5nbGUgLmNob3Nlbi1zZWFyY2gge1xyXG4gIHBhZGRpbmc6IDVweCA3cHg7IFxyXG59XHJcbi5jaG9zZW4tY29udGFpbmVyLXNpbmdsZSAuY2hvc2VuLXNlYXJjaCBpbnB1dFt0eXBlPVwidGV4dFwiXSB7XHJcbiAgYm94LXNoYWRvdzogbm9uZTtcclxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMSk7XHJcbiAgYm9yZGVyOiBub25lO1xyXG4gIHBhZGRpbmc6IDdweCA3cHg7XHJcbiAgY29sb3I6IHdoaXRlO1xyXG4gIGZvbnQtc2l6ZTogMXJlbTtcclxuICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbn1cclxuXHJcbi5jaG9zZW4tY29udGFpbmVyIC5jaG9zZW4tcmVzdWx0cyBsaS5uby1yZXN1bHRzIHtcclxuICBiYWNrZ3JvdW5kOiBub25lO1xyXG59IiwiXG5AbWl4aW4gaWNvbi1zaXplKCAkc2l6ZSApe1xuXHRmb250LXNpemU6IG1hcC1nZXQoICRpY29uLXNpemVzLCAkc2l6ZSApO1xufVxuXG5AbWl4aW4gaWNvbW9vbi1pY29uKCAkaWNvbjpmYWxzZSwgJHNpemU6ZmFsc2UgKSB7XG5cdC8qIHVzZSAhaW1wb3J0YW50IHRvIHByZXZlbnQgaXNzdWVzIHdpdGggYnJvd3NlciBleHRlbnNpb25zIHRoYXQgY2hhbmdlIGZvbnRzICovXG5cdGZvbnQtZmFtaWx5OiAnaWNvbW9vbicgIWltcG9ydGFudDtcblx0c3BlYWs6IG5vbmU7XG5cdGZvbnQtc3R5bGU6IG5vcm1hbDtcblx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblx0Zm9udC12YXJpYW50OiBub3JtYWw7XG5cdHRleHQtdHJhbnNmb3JtOiBub25lO1xuXHRsaW5lLWhlaWdodDogMTtcblxuXHQvKiBCZXR0ZXIgRm9udCBSZW5kZXJpbmcgPT09PT09PT09PT0gKi9cblx0LXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG5cdC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG5cblx0QGlmICRzaXplIHtcblx0XHRAaW5jbHVkZSBpY29uLXNpemUoICRzaXplICk7XG5cdH1cblx0QGlmICRpY29uIHtcblx0XHRjb250ZW50OiAkaWNvbjtcblx0fVxufVxuXG4iLCJcclxuLnByb2R1Y3QtY2FyZCB7XHJcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjI1cyBlYXNlLW91dDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgZmxleDogMTtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcblxyXG4gICY6aG92ZXIge1xyXG4gICAgYm94LXNoYWRvdzogMCAwIDIwcHggcmdiYSgwLDAsNTAsMC4zKTtcclxuICB9XHJcblxyXG4gIC5hZGRlZF90b19jYXJ0IHtcclxuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xyXG4gIH1cclxufVxyXG5cclxuLnByb2R1Y3QtY2FyZF9faGVhZCB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICA+IGEge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB0b3A6IDA7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICBib3R0b206IDA7XHJcbiAgfVxyXG59XHJcblxyXG4ucHJvZHVjdC1jYXJkX19pbWFnZSB7XHJcbiAgcGFkZGluZy10b3A6IDg3LjUlO1xyXG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XHJcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xyXG59XHJcblxyXG4ucHJvZHVjdC1jYXJkX19icmFuZCB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogMjRweDtcclxuICBsZWZ0OiAyMHB4O1xyXG4gIHBhZGRpbmc6IDVweCAzMHB4O1xyXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4zKTtcclxuICBib3JkZXItcmFkaXVzOiAxMDBweDtcclxuICBjb2xvcjogd2hpdGU7XHJcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICBcclxuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMzBweCk7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMTUsIDExNSwgMTE1LCAwLjQpO1xyXG5cclxuICBsZXR0ZXItc3BhY2luZzogLTAuNXB4O1xyXG4gIGZvbnQtc2l6ZTogMTZweDtcclxufVxyXG5cclxuLnByb2R1Y3QtY2FyZF9fYm9keSB7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgI0YwRjBGMDtcclxuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcclxuICBwYWRkaW5nOiAxOXB4IDIwcHg7XHJcbiAgcGFkZGluZy1yaWdodDogMzBweDtcclxuICBwYWRkaW5nLWJvdHRvbTogMzBweDtcclxuICBmbGV4OiAxO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuXHJcbiAgLmJ1dHRvbiB7XHJcbiAgICBAaW5jbHVkZSBidXR0b24taG9sbG93KCk7XHJcbiAgICBAZXh0ZW5kIC5idXR0b24tLXNtYWxsO1xyXG4gIH1cclxufVxyXG5cclxuLnByb2R1Y3QtY2FyZF9faW5mbyB7XHJcbiAgZmxleDogMTtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbn1cclxuXHJcbi5wcm9kdWN0LWNhcmRfX3RpdGxlIHtcclxuICBmb250LXNpemU6IDI0cHg7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbn1cclxuXHJcbi5wcm9kdWN0LWNhcmRfX3N1YnRpdGxlIHtcclxuICBmb250LXNpemU6IDIwcHg7XHJcbiAgY29sb3I6ICMwODEzMWY7XHJcbiAgb3BhY2l0eTogMC41O1xyXG4gIGZsZXg6IDE7XHJcbn1cclxuXHJcbi5wcm9kdWN0LWNhcmRfX2FkZCB7XHJcbiAgbWFyZ2luLXRvcDogMjBweDtcclxufVxyXG5cclxuLnByb2R1Y3QtY2FyZF9fcHJpY2Uge1xyXG4gIGNvbG9yOiAjMmMyOTM0O1xyXG4gIGZvbnQtc2l6ZTogMzFweDtcclxuICBmb250LXdlaWdodDogMzAwO1xyXG5cclxuICAucHJpY2Uge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcclxuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcclxuXHJcbiAgICBpbnMge1xyXG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICB9XHJcbiAgICBkZWwge1xyXG4gICAgICBmb250LXNpemU6IDIwcHg7XHJcbiAgICAgIG9wYWNpdHk6IDAuNTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5mLWl0ZW0tcHJldmlldyB7XHJcbiAgPiAucHJvZHVjdC1jYXJkIHtcclxuICAgIHdpZHRoOiA0MThweDtcclxuICB9XHJcbn1cclxuIiwiXHJcbi5wcm9kdWN0LWNhcmQtc21hbGwge1xyXG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC4yNXMgZWFzZS1vdXQ7XHJcbiAgZmxleDogMTtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcblxyXG4gICY6aG92ZXIge1xyXG4gICAgYm94LXNoYWRvdzogMCAwIDIwcHggcmdiYSgwLDAsNTAsMC4zKTtcclxuICB9XHJcblxyXG4gICYucHJvZHVjdC1jYXJkLXNtYWxsLS1kYXJrIHtcclxuICAgIC5hZGQtYnV0dG9uIHtcclxuICAgICAgQGV4dGVuZCAuYWRkLWJ1dHRvbi0tcHJpbWFyeTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5hZGRlZF90b19jYXJ0IHtcclxuICAgIG1hcmdpbi10b3A6IDEwcHg7XHJcbiAgfVxyXG59XHJcblxyXG4ucHJvZHVjdC1jYXJkLXNtYWxsX19oZWFkIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgei1pbmRleDogNTtcclxuXHJcbiAgPiBhIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHJpZ2h0OiAwO1xyXG4gICAgYm90dG9tOiAwO1xyXG4gIH1cclxufVxyXG5cclxuLnByb2R1Y3QtY2FyZC1zbWFsbF9faW1hZ2Uge1xyXG4gIHBhZGRpbmctdG9wOiAxMDAlO1xyXG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XHJcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xyXG4gIGJvcmRlci1yYWRpdXM6IDRweDtcclxufVxyXG5cclxuLnByb2R1Y3QtY2FyZC1zbWFsbF9fYm9keSB7XHJcbiAgYm9yZGVyOiBzb2xpZCAxcHggI2QzZGVlMztcclxuICBwYWRkaW5nOiAyMHB4O1xyXG4gIHBhZGRpbmctbGVmdDogMThweDtcclxuICBwYWRkaW5nLXRvcDogMTVweDtcclxuICBwYWRkaW5nLWJvdHRvbTogMThweDtcclxuICBmbGV4OiAxO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICBtYXJnaW4tdG9wOiAtNXB4O1xyXG4gIGJhY2tncm91bmQ6IHdoaXRlO1xyXG5cclxuICBAYXQtcm9vdCAucHJvZHVjdC1jYXJkLXNtYWxsLS1kYXJrICYge1xyXG4gICAgYm9yZGVyOiBub25lO1xyXG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDI5cHgpO1xyXG4gICAgYmFja2dyb3VuZDogcmdiYSgxMjIsIDEyMiwgMTIyLCAwLjcpO1xyXG5cclxuICAgICoge1xyXG4gICAgICBjb2xvcjogd2hpdGU7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4ucHJvZHVjdC1jYXJkLXNtYWxsX19pbmZvIHtcclxuICBmbGV4OiAxO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbn1cclxuXHJcbi5wcm9kdWN0LWNhcmQtc21hbGxfX3RpdGxlIHtcclxuICBsZXR0ZXItc3BhY2luZzogLTAuNXB4O1xyXG4gIGZvbnQtc2l6ZTogMjJweDtcclxuICBmb250LXdlaWdodDogNTAwO1xyXG4gIG1hcmdpbi1ib3R0b206IDRweDtcclxuICBmbGV4OiAxO1xyXG59XHJcblxyXG4ucHJvZHVjdC1jYXJkLXNtYWxsX19wcmljZSB7XHJcbiAgZm9udC1zaXplOiAyOHB4O1xyXG4gIGNvbG9yOiAkcHJpbWFyeTtcclxuXHJcbiAgLnByaWNlIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgICBkZWwge1xyXG4gICAgICBmb250LXNpemU6IDIwcHg7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgcmlnaHQ6IC0xMHB4O1xyXG4gICAgICB0b3A6IDUwJTtcclxuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTAwJSwgLTUwJSk7XHJcbiAgICAgIG9wYWNpdHk6IDAuNztcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5wcm9kdWN0LWNhcmQtc21hbGxfX2FkZCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcblxyXG4gIC5idXR0b24ge1xyXG4gICAgQGV4dGVuZCAuYWRkLWJ1dHRvbjtcclxuICAgIGJhY2tncm91bmQ6IG5vbmUgIWltcG9ydGFudDtcclxuICB9XHJcbn1cclxuXHJcbi5mLWl0ZW0tcHJldmlldyB7XHJcbiAgPiAucHJvZHVjdC1jYXJkLXNtYWxsIHtcclxuICAgIHdpZHRoOiAyOTdweDtcclxuICB9XHJcbn1cclxuIiwiXHJcbi5iYW5uZXIge1xyXG4gIEBpbmNsdWRlIHNpdGUtZ3JhZGllbnQoKTtcclxuICBwYWRkaW5nOiAyMHB4O1xyXG4gIHdpZHRoOiAxMDAlO1xyXG5cclxuXHJcbiAgJi5iYW5uZXItLWhlaWdodCB7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgfVxyXG5cclxuICAmLmJhbm5lci0taGlkZGVuIHtcclxuICAgIC5iYW5uZXJfX2NvbnRlbnQge1xyXG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLnNlY3Rpb25fX2JvZHkgPiAuYmFubmVyIHtcclxuICBtYXJnaW46IDIwcHg7XHJcbn1cclxuXHJcbi5iYW5uZXJfX2NvbnRlbnQge1xyXG4gIGJhY2tncm91bmQ6IHdoaXRlO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgcGFkZGluZzogMjBweCAwO1xyXG4gIFxyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIHVwKSB7XHJcbiAgICBtaW4taGVpZ2h0OiA0MDBweDtcclxuICB9XHJcbiAgXHJcbiAgQGF0LXJvb3QgLmJhbm5lci0taGVpZ2h0ICYge1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gIH1cclxuICBcclxuICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIGRvd24pIHtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgfVxyXG59XHJcblxyXG4uYmFubmVyX19pbWFnZSB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGZsZXg6IDQ7IFxyXG5cclxuICBpbWcge1xyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gdXApIHtcclxuICAgICAgbWluLXdpZHRoOiA2MDBweDtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICB0b3A6IDUwJTtcclxuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01NCUpIHRyYW5zbGF0ZVgoLTEwcHgpO1xyXG4gICAgICByaWdodDogMHB4O1xyXG4gICAgfVxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBkb3duKSB7XHJcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xNSk7XHJcbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSAxMDAlO1xyXG4gICAgICBtYXJnaW4tdG9wOiAtMjBweDtcclxuICAgIH1cclxuICB9XHJcbiAgXHJcbn1cclxuXHJcbi5iYW5uZXJfX2luZm8ge1xyXG4gIGZsZXg6IDM7IFxyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBcclxuICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIGRvd24pIHtcclxuICAgIHBhZGRpbmc6IDIwcHg7XHJcbiAgfVxyXG5cclxuICAuYnV0dG9uIHtcclxuICAgIEBpbmNsdWRlIGJ1dHRvbi1ib3JkZXItZ3JhZGllbnQoKTtcclxuICAgIEBpbmNsdWRlIGJ1dHRvbi1kYXJrKCk7XHJcbiAgfVxyXG59XHJcblxyXG4uYmFubmVyX19pbmZvLWlubmVyIHtcclxuICB3aWR0aDogODAlO1xyXG4gIG1hcmdpbjogMCBhdXRvO1xyXG4gIG1hcmdpbi10b3A6IC0yMHB4O1xyXG5cclxuICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIGRvd24pIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgbWFyZ2luLXRvcDogMHB4O1xyXG4gIH1cclxufVxyXG5cclxuLmJhbm5lcl9fdGl0bGUge1xyXG4gIGZvbnQtc2l6ZTogNThweDtcclxuICBmb250LXdlaWdodDogODAwO1xyXG4gIGxpbmUtaGVpZ2h0OiAxLjE7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjVweDtcclxuICBjb2xvcjogJGRhcms7XHJcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuXHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBkb3duKSB7XHJcbiAgICBmb250LXNpemU6IDQycHg7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjE0O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNDBweDtcclxuICB9XHJcbn1cclxuIiwiXG5cbkBtaXhpbiBzaXRlLWdyYWRpZW50KCkge1xuXHQvKiBQZXJtYWxpbmsgLSB1c2UgdG8gZWRpdCBhbmQgc2hhcmUgdGhpcyBncmFkaWVudDogaHR0cHM6Ly9jb2xvcnppbGxhLmNvbS9ncmFkaWVudC1lZGl0b3IvIzFlNTc5OSswLDdkYjllOCsxMDAgKi9cbiAgYmFja2dyb3VuZDogJHByaW1hcnk7IC8qIE9sZCBicm93c2VycyAqL1xuICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudChsZWZ0LCAgJHByaW1hcnkgMCUsICRzZWNvbmRhcnkgMTAwJSk7IC8qIEZGMy42LTE1ICovXG4gIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQsICAkcHJpbWFyeSAwJSwkc2Vjb25kYXJ5IDEwMCUpOyAvKiBDaHJvbWUxMC0yNSxTYWZhcmk1LjEtNiAqL1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICAkcHJpbWFyeSAwJSwkc2Vjb25kYXJ5IDEwMCUpOyAvKiBXM0MsIElFMTArLCBGRjE2KywgQ2hyb21lMjYrLCBPcGVyYTEyKywgU2FmYXJpNysgKi9cbiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoIHN0YXJ0Q29sb3JzdHI9JyN7JHByaW1hcnl9JywgZW5kQ29sb3JzdHI9JyN7JHNlY29uZGFyeX0nLEdyYWRpZW50VHlwZT0xICk7IC8qIElFNi05ICovXG59XG5cbkBpbXBvcnQgXG5cdCdwb3NpdGlvbmluZycsXG5cdCdpY29ucycsXG5cdCdzcGFjaW5nJyxcblx0J2RpdmlkZXJzJztcbiIsIlxyXG4uY2Fyb3VzZWwge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgXHJcbiAgQGF0LXJvb3QgLmNhcm91c2VsLS1uYXYtbW9iaWxlLWNlbnRlciAmIHtcclxuICAgIG1hcmdpbi10b3A6IDM2cHg7XHJcbiAgfVxyXG59XHJcblxyXG4uY2Fyb3VzZWxfX25hdiB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiAtNDBweDtcclxuICByaWdodDogMjBweDtcclxuICB6LWluZGV4OiAxMDtcclxuXHJcbiAgQGF0LXJvb3QgLmNhcm91c2VsLS1uYXYtbW9iaWxlLWNlbnRlciAmIHtcclxuICAgIHJpZ2h0OiA1MCU7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg1MCUpO1xyXG4gIH1cclxufVxyXG5cclxuLmNhcm91c2VsX19wcmV2IHtcclxuICBtYXJnaW4tcmlnaHQ6IDEwcHg7XHJcbiAgJjpiZWZvcmUge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgQGluY2x1ZGUgaWNvbW9vbi1pY29uKCRpY29uLWFycm93X3JpZ2h0KTtcclxuICAgIHRyYW5zZm9ybTogc2NhbGVYKC0xKTtcclxuICAgIGNvbG9yOiAjMmMyOTM0O1xyXG4gICAgZm9udC1zaXplOiAzMHB4O1xyXG4gIH1cclxufVxyXG5cclxuLmNhcm91c2VsX19wYWdlIHtcclxuICBmb250LXNpemU6IDIwcHg7XHJcbiAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICBjb2xvcjogIzJjMjkzNDtcclxufVxyXG5cclxuLmNhcm91c2VsX19wYWdlLWN1cnJlbnQge1xyXG5cclxufVxyXG5cclxuLmNhcm91c2VsX19wYWdlLXRvdGFsIHtcclxuXHJcbn1cclxuXHJcbi5jYXJvdXNlbF9fbmV4dCB7XHJcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XHJcbiAgJjpiZWZvcmUge1xyXG4gICAgQGluY2x1ZGUgaWNvbW9vbi1pY29uKCRpY29uLWFycm93X3JpZ2h0KTtcclxuICAgIGNvbG9yOiAjMmMyOTM0O1xyXG4gICAgZm9udC1zaXplOiAzMHB4O1xyXG4gIH1cclxufVxyXG5cclxuLmNhcm91c2VsX19pdGVtcyB7XHJcblxyXG4gIC5vd2wtZG90cyB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxuXHJcbiAgLm93bC1zdGFnZS1vdXRlciB7XHJcbiAgICBwYWRkaW5nLXRvcDogMjBweDtcclxuICAgIHBhZGRpbmctYm90dG9tOiAyMHB4O1xyXG4gIH1cclxuXHJcbiAgLm93bC1pdGVtIHtcclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgZG93bikge1xyXG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTIwcHgpO1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIHVwKSB7XHJcbiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjRzO1xyXG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTIwcHgpO1xyXG5cclxuICAgICAgJi5hY3RpdmUge1xyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwcHgpICFpbXBvcnRhbnQ7XHJcblxyXG4gICAgICAgICYgfiAub3dsLWl0ZW0ge1xyXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwcHgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuXHJcbi5zZWN0aW9uLS1saWdodCB7XHJcbiAgLmNhcm91c2VsX19wYWdlIHtcclxuICAgIGNvbG9yOiB3aGl0ZTtcclxuICB9XHJcbiAgICBcclxuICAuY2Fyb3VzZWxfX3ByZXYsIC5jYXJvdXNlbF9fbmV4dCB7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XHJcbiAgICAmOmJlZm9yZSB7XHJcbiAgICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgIH1cclxuICB9XHJcbn0iLCIuc2hvcF90YWJsZSB7XHJcbiAgICAgICAgXHJcbiAgd2lkdGg6IDEwMCU7XHJcblxyXG4gIHRoZWFkIHtcclxuICAgIHRyIHtcclxuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNDQ0NDQ0M7XHJcblxyXG4gICAgICB0aCB7XHJcbiAgICAgICAgZm9udC1zaXplOiAxOHB4O1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjg5O1xyXG4gICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudGl6ZSgjMDgxMzFmLCAwLjUpO1xyXG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICAgIHBhZGRpbmc6IDRweCAxMHB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB0Ym9keSwgdGZvb3Qge1xyXG4gICAgdHIge1xyXG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0NDQ0NDQztcclxuXHJcbiAgICAgIHRkLCB0aCB7XHJcbiAgICAgICAgcGFkZGluZzogNHB4IDEwcHg7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGEuYnV0dG9uIHtcclxuICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93KCk7XHJcbiAgICAgICAgQGV4dGVuZCAuYnV0dG9uLS1zbWFsbDtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGQge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcclxuICAgICAgICBsaW5lLWhlaWdodDogMjtcclxuICAgICAgICBjb2xvcjogIzA4MTMxZjtcclxuXHJcbiAgICAgICAgLndvb2NvbW1lcmNlLXNoaXBwaW5nLW1ldGhvZHMge1xyXG4gICAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcclxuICAgICAgICAgIG1hcmdpbjogMHB4O1xyXG5cclxuICAgICAgICAgIGxpIGxhYmVsIHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxOHB4O1xyXG4gICAgICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnRpemUoIzA4MTMxZiwgMC41KTtcclxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoIHtcclxuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcclxuICAgICAgICBsaW5lLWhlaWdodDogMS44OTtcclxuICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnRpemUoIzA4MTMxZiwgMC41KTtcclxuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHRmb290IHtcclxuICAgIHRyIHtcclxuICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcclxuICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0ZCwgdGgge1xyXG4gICAgICAgIHBhZGRpbmc6IDRweCAxMHB4O1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aCB7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi53Yy1pdGVtLW1ldGEge1xyXG4gIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XHJcbn0iLCJcclxuLnRlc3RpbW9uaWFsLWNhcmQge1xyXG4gIGJveC1zaGFkb3c6IDAgMnB4IDEzcHggMCByZ2JhKDEzOSwgMTM5LCAxMzksIDAuMjkpO1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xyXG4gIHBhZGRpbmc6IDQ1cHg7XHJcbiAgcGFkZGluZy10b3A6IDQzcHg7XHJcbiAgcGFkZGluZy1sZWZ0OiA5MHB4O1xyXG4gIFxyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgZG93bikge1xyXG4gICAgcGFkZGluZzogMjZweDtcclxuICAgIHBhZGRpbmctbGVmdDogNjhweDtcclxuICB9XHJcbn1cclxuXHJcbi50ZXN0aW1vbmlhbC1jYXJkX19uYW1lIHtcclxuICBmb250LXNpemU6IDIycHg7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgY29sb3I6ICRkYXJrO1xyXG4gIG1hcmdpbi1ib3R0b206IDIzcHg7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIFxyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgZG93bikge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNnB4O1xyXG4gIH1cclxuXHJcbiAgJjpiZWZvcmUge1xyXG4gICAgQGluY2x1ZGUgaWNvbW9vbi1pY29uKCRpY29uLWZhY2Vib29rKTtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogNTAlO1xyXG4gICAgbGVmdDogLTM5cHg7XHJcbiAgICBmb250LXNpemU6IDM0cHg7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcclxuICAgIFxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBkb3duKSB7XHJcbiAgICAgIGZvbnQtc2l6ZTogMjZweDtcclxuICAgICAgbGVmdDogLTMwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgQGF0LXJvb3QgLnRlc3RpbW9uaWFsLWNhcmQtLWluc3RhZ3JhbSAmIHtcclxuICAgICAgQGluY2x1ZGUgaWNvbW9vbi1pY29uKCRpY29uLWluc3RhZ3JhbSk7XHJcbiAgICB9XHJcbiAgICBAYXQtcm9vdCAudGVzdGltb25pYWwtY2FyZC0tdHdpdHRlciAmIHtcclxuICAgICAgQGluY2x1ZGUgaWNvbW9vbi1pY29uKCRpY29uLXR3aXR0ZXIpO1xyXG4gICAgfVxyXG4gICAgQGF0LXJvb3QgLnRlc3RpbW9uaWFsLWNhcmQtLXBpbnRlcmVzdCAmIHtcclxuICAgICAgQGluY2x1ZGUgaWNvbW9vbi1pY29uKCRpY29uLXBpbnRlcmVzdCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4udGVzdGltb25pYWwtY2FyZF9fY29udGVudCB7XHJcbiAgb3BhY2l0eTogMC4zO1xyXG4gIGZvbnQtc2l6ZTogMThweDtcclxuICBsaW5lLWhlaWdodDogMS41O1xyXG4gIGNvbG9yOiAkZGFyaztcclxuXHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBkb3duKSB7XHJcbiAgICBtYXJnaW4tbGVmdDogLTQ1cHg7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLmYtaXRlbS1wcmV2aWV3IHtcclxuICA+IC50ZXN0aW1vbmlhbC1jYXJkIHtcclxuICAgIHdpZHRoOiA0MzdweDtcclxuICAgIG1hcmdpbjogNnB4O1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIH1cclxufSIsIlxyXG4uaGVhZGVyLXByb2R1Y3Qge1xyXG4gIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7XHJcbiAgcGFkZGluZy1yaWdodDogMjVweCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uaGVhZGVyLXByb2R1Y3RfX2ltYWdlLWhvbGRlciB7XHJcbiAgd2lkdGg6IDEyMHB4O1xyXG4gIG1hcmdpbi1yaWdodDogMTVweDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbi5oZWFkZXItcHJvZHVjdF9faW1hZ2Uge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6IDUwJTtcclxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XHJcbiAgd2lkdGg6IDEyMHB4O1xyXG4gIGhlaWdodDogMTM1cHg7XHJcbiAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xyXG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcclxuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG59XHJcblxyXG4uaGVhZGVyLXByb2R1Y3RfX2luZm8ge1xyXG5cclxufVxyXG5cclxuLmhlYWRlci1wcm9kdWN0X19uYW1lIHtcclxuICBsZXR0ZXItc3BhY2luZzogLTAuNXB4O1xyXG4gIGZvbnQtc2l6ZTogMjZweDtcclxuICBmb250LXdlaWdodDogNTAwO1xyXG4gIGNvbG9yOiB3aGl0ZTtcclxuICBtYXJnaW4tYm90dG9tOiA4cHg7XHJcbn1cclxuXHJcbi5oZWFkZXItcHJvZHVjdF9fcHJpY2Uge1xyXG4gIGxldHRlci1zcGFjaW5nOiAtMC41cHg7XHJcbiAgZm9udC1zaXplOiAyNHB4O1xyXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgY29sb3I6IHdoaXRlO1xyXG4gIG1hcmdpbi1ib3R0b206IDhweDtcclxufVxyXG5cclxuLmhlYWRlci1wcm9kdWN0X19hZGQge1xyXG5cclxufVxyXG4iLCJcclxuLnBob3RvLWNhcmQge1xyXG4gIGJveC1zaGFkb3c6IDAgMCAxMnB4IHJnYmEoMCwwLDUwLDAuMik7XHJcbn1cclxuXHJcbi5waG90by1jYXJkX19oZWFkIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgei1pbmRleDogNTtcclxufVxyXG5cclxuLnBob3RvLWNhcmRfX2ltYWdlIHtcclxuICBwYWRkaW5nLXRvcDogMTAwJTtcclxuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcclxufVxyXG5cclxuLnBob3RvLWNhcmRfX2JvZHkge1xyXG4gIHBhZGRpbmc6IDE1cHggOXB4O1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcclxufVxyXG5cclxuLnBob3RvLWNhcmRfX3VzZXItaW1hZ2UtaG9sZGVyIHtcclxuICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xyXG59XHJcblxyXG4ucGhvdG8tY2FyZF9fdXNlci1pbWFnZSB7XHJcbiAgd2lkdGg6IDUwcHg7XHJcbiAgaGVpZ2h0OiA1MHB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDEwMHB4O1xyXG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XHJcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xyXG59XHJcblxyXG4ucGhvdG8tY2FyZF9fdXNlci1pbmZvIHtcclxuXHJcbn1cclxuXHJcbi5waG90by1jYXJkX191c2VyLW5hbWUge1xyXG4gIG9wYWNpdHk6IDAuNTtcclxuICBmb250LXNpemU6IDIxcHg7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjVweDtcclxuICBjb2xvcjogIzA4MTMxZjtcclxufVxyXG5cclxuLnBob3RvLWNhcmRfX3VzZXItdXNlcm5hbWUge1xyXG4gIG9wYWNpdHk6IDAuMztcclxuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xyXG4gIGNvbG9yOiAjMDgxMzFmO1xyXG4gIGZvbnQtc2l6ZTogMTJweDtcclxufVxyXG5cclxuLmYtaXRlbS1wcmV2aWV3IHtcclxuICA+IC5waG90by1jYXJkIHtcclxuICAgIHdpZHRoOiAyNTVweDtcclxuICB9XHJcbn0iLCJcclxuXHJcbi5zaXRlLWhlYWRlciB7XHJcbiAgYmFja2dyb3VuZDogJGRhcms7XHJcblxyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHotaW5kZXg6IDEwMDtcclxuICB9XHJcbiAgXHJcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xyXG4gIHotaW5kZXg6IDk5OTk7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIFxyXG4gICYuc2l0ZS1oZWFkZXItLWxpZ2h0Om5vdCguc3VibWVudS1vcGVuKSB7XHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XHJcbiAgICAgIHotaW5kZXg6IHVuc2V0O1xyXG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlY2VjZWM7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uc2l0ZS1oZWFkZXJfX2NvbnRhaW5lciB7XHJcbiAgQGluY2x1ZGUgZmxleC1ncmlkLXJvdygkd3JhcDogZmFsc2UpO1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBcclxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XHJcbiAgICBoZWlnaHQ6IDY3cHg7XHJcbiAgfVxyXG59XHJcblxyXG4uc2l0ZS1oZWFkZXJfX2JyYW5kIHtcclxuICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKHNocmluayk7XHJcbiAgbWFyZ2luLWxlZnQ6IDMwcHg7XHJcbiAgXHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDIwcHg7XHJcbiAgICBtYXgtd2lkdGg6IDE2MHB4O1xyXG4gIH1cclxufVxyXG5cclxuLnNpdGUtaGVhZGVyX19sb2dvIHtcclxuICB3aWR0aDogMTYwcHg7XHJcbiAgXHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xyXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgd2lkdGg6IDI1dnc7XHJcbiAgfVxyXG59XHJcblxyXG4uc2l0ZS1oZWFkZXJfX25hdmlnYXRpb24ge1xyXG4gIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oc2hyaW5rKTtcclxuICBAaW5jbHVkZSBmbGV4LWdyaWQtcm93KCk7XHJcbiAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xyXG4gIHotaW5kZXg6IDEwO1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgXHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAwcHg7XHJcbiAgfVxyXG59XHJcblxyXG4uc2l0ZS1oZWFkZXJfX2hhbWJ1cmdlciB7XHJcbiAgYmFja2dyb3VuZDogbm9uZTtcclxuICBtaW4td2lkdGg6IDMwcHg7XHJcbiAgaGVpZ2h0OiAyMHB4O1xyXG4gIGJvcmRlci10b3A6IDJweCBzb2xpZCB3aGl0ZTtcclxuICBib3JkZXItYm90dG9tOiAycHggc29saWQgd2hpdGU7XHJcbiAgcGFkZGluZzogMHB4O1xyXG4gIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlLWluLW91dDtcclxuICBcclxuICBAYXQtcm9vdCAuc2l0ZS1oZWFkZXItLWxpZ2h0Om5vdCguc3VibWVudS1vcGVuKSAmIHtcclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcclxuICAgICAgYm9yZGVyLWNvbG9yOiAkZGFyaztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcclxuICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xyXG4gIH1cclxuICBcclxuICAmOmJlZm9yZSwgJjphZnRlciB7XHJcbiAgICBjb250ZW50OiAnJztcclxuICAgIGhlaWdodDogMnB4O1xyXG4gICAgYmFja2dyb3VuZDogd2hpdGU7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICB0b3A6IGNhbGMoIDUwJSAtIDFweCApO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XHJcbiAgICBAYXQtcm9vdCAuc2l0ZS1oZWFkZXItLWxpZ2h0Om5vdCguc3VibWVudS1vcGVuKSAmIHtcclxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICRkYXJrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmOmhvdmVyLCAmOmZvY3VzLCAmOmFjdGl2ZSB7XHJcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xyXG4gIH1cclxuXHJcbiAgJi5zaXRlLWhlYWRlcl9faGFtYnVyZ2VyLS1jbG9zZSB7XHJcbiAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgJjpiZWZvcmUge1xyXG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xyXG4gICAgICBib3JkZXItcmFkaXVzOiAxcHg7XHJcbiAgICB9XHJcbiAgICAmOmFmdGVyIHtcclxuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xyXG4gICAgICBib3JkZXItcmFkaXVzOiAxcHg7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxufVxyXG5cclxuLnNpdGUtaGVhZGVyX19tb2JpbGUtbWVudSB7XHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xyXG4gICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICB9XHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHJpZ2h0OiAwO1xyXG4gICAgdG9wOiA2N3B4O1xyXG4gICAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gNjdweCk7XHJcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xyXG4gICAgei1pbmRleDogMTA7XHJcbiAgICBiYWNrZ3JvdW5kOiAkZGFyaztcclxuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjM0QzQTQzO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgfVxyXG59XHJcblxyXG4ubW9iaWxlLW1lbnUtb3BlbiB7XHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xyXG4gICAgb3ZlcmZsb3cteTogaGlkZGVuO1xyXG4gIH0gXHJcbn1cclxuXHJcbi5zaXRlLWhlYWRlcl9fbWVudSB7XHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBmbGV4LWdyb3c6IDE7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XHJcbiAgICAuc3ViLW1lbnUge1xyXG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICA+IC5tZW51IHtcclxuICAgIHBvc2l0aW9uOiBpbml0aWFsO1xyXG4gICAgXHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XHJcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgPiAubWVudSA+IC5tZW51LWl0ZW0ge1xyXG5cclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHsgLy8gTWVudUl0ZW0gTW9iaWxlXHJcbiAgICAgICYgPiBhIHtcclxuICAgICAgICBmb250LXNpemU6IDI1cHg7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XHJcbiAgICAgICAgcGFkZGluZzogMjBweDtcclxuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzNEM0E0MztcclxuICAgICAgICBvdXRsaW5lOiBub25lO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4gPiBhIHtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgQGluY2x1ZGUgaWNvbW9vbi1pY29uKCRpY29uLWNoZXZyb24tZG93bik7XHJcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICBmb250LXNpemU6IDQwcHg7XHJcbiAgICAgICAgICByaWdodDogMjBweDtcclxuICAgICAgICAgIHRvcDogNTAlO1xyXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHNjYWxlWSgtMSk7XHJcbiAgICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnRpemUod2hpdGUsIDAuNSk7XHJcbiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgJi5zdWItbWVudS1vcGVuLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4gPiBhIHtcclxuICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XHJcbiAgICAgICAgICBjb2xvcjogd2hpdGU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAmID4gLnN1Yi1tZW51IHtcclxuICAgICAgICBAaW5jbHVkZSBmbGV4LWdyaWQtcm93KCk7XHJcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcclxuICAgICAgICBtYXJnaW46IDBweDtcclxuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzNEM0E0MztcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgcGFkZGluZzogMTVweCAwO1xyXG5cclxuICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICBAaW5jbHVkZSBzaXRlLWdyYWRpZW50KCk7XHJcbiAgICAgICAgICBjb250ZW50OiAnJztcclxuICAgICAgICAgIGhlaWdodDogMnB4O1xyXG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgdG9wOiAwO1xyXG4gICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICAubWVudS1pdGVtIHtcclxuICAgICAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oNiwgMCk7XHJcblxyXG4gICAgICAgICAgYSB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDE1cHggMjBweDtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAyMXB4O1xyXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS41O1xyXG4gICAgICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnRpemUoI2ZmZmZmZiwgMC4yKTtcclxuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gLy8gTWVudUl0ZW0gTW9iaWxlXHJcblxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkgeyAvLyBNZW51SXRlbSBEZXNrdG9wXHJcblxyXG4gICAgICAmID4gYSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAyMnB4O1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgICAgICAgY29sb3I6IHdoaXRlO1xyXG4gICAgICAgIHBhZGRpbmc6IDAgMjZweDtcclxuICAgICAgICBtYXJnaW4tdG9wOiAxM3B4O1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICBoZWlnaHQ6IDEwN3B4O1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxMDBweDtcclxuXHJcbiAgICAgICAgQGF0LXJvb3QgLnNpdGUtaGVhZGVyLS1saWdodDpub3QoLnN1Ym1lbnUtb3BlbikgJiB7XHJcbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkZGFyaztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICY6aG92ZXIgPiAuc3ViLW1lbnUge1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIGxlZnQ6IDBweDtcclxuICAgICAgICByaWdodDogMHB4O1xyXG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgICAgICAgcGFkZGluZzogMHB4O1xyXG4gICAgICAgIG1hcmdpbjogMHB4O1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiA3cHg7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG5cclxuICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICBAaW5jbHVkZSBzaXRlLWdyYWRpZW50KCk7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGZpeGVkO1xyXG4gICAgICAgICAgY29udGVudDogJyc7XHJcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgICBsZWZ0OiBjYWxjKCAoMTAwdncgLSAxMDAlKSAvIC0yICk7XHJcbiAgICAgICAgICB3aWR0aDogMTAwdnc7XHJcbiAgICAgICAgICBoZWlnaHQ6IDdweDtcclxuICAgICAgICAgIHotaW5kZXg6IDEwO1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICAmOmFmdGVyIHtcclxuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgICAgYmFja2dyb3VuZDogJGRhcms7XHJcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICBsZWZ0OiBjYWxjKCAoMTAwdncgLSAxMDAlKSAvIC0yICk7XHJcbiAgICAgICAgICB3aWR0aDogMTAwdnc7XHJcbiAgICAgICAgICB0b3A6IDdweDtcclxuICAgICAgICAgIGJvdHRvbTogMDtcclxuICAgICAgICAgIHotaW5kZXg6IDE1O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgPiAqIHtcclxuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgIHotaW5kZXg6IDMwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJiA+IC5tZW51LWl0ZW0ge1xyXG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cclxuICAgICAgICAgICYgPiBhIHtcclxuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDIycHg7XHJcbiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgICAgICAgICAgcGFkZGluZzogMzRweCAyMHB4O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICAgICAgXHJcbiAgICAgICY6aG92ZXIgPiBhLCAmLmN1cnJlbnQtbWVudS1pdGVtID4gYSB7XHJcbiAgICAgICAgQGluY2x1ZGUgc2l0ZS1ncmFkaWVudCgpO1xyXG4gICAgICAgIGJhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7XHJcblxyXG4gICAgICAgIEBhdC1yb290IC5zaXRlLWhlYWRlci0tbGlnaHQ6bm90KC5zdWJtZW51LW9wZW4pICYge1xyXG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xyXG4gICAgICAgICAgICBjb2xvcjogJHByaW1hcnk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgIEBpbmNsdWRlIHNpdGUtZ3JhZGllbnQoKTtcclxuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgaGVpZ2h0OiA1cHg7XHJcbiAgICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgICAgICB0b3A6IC0xM3B4O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgIH0gLy8gTWVudUl0ZW0gRGVza3RvcFxyXG4gICAgXHJcblxyXG4gICAgJi5tZWdhbWVudSB7XHJcblxyXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7IC8vIE1lZ2FtZW51IE1vYmlsZVxyXG4gICAgICAgID4gLnN1Yi1tZW51IHtcclxuICAgICAgICAgID4gLm1lbnUtaXRlbTpub3QoLm1vYmlsZS1pdGVtKSB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0gLy8gTWVnYW1lbnUgTW9iaWxlXHJcblxyXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7IC8vIE1lZ2FtZW51IERlc2t0b3BcclxuXHJcbiAgICAgICAgJjpob3ZlciA+IC5zdWItbWVudSB7XHJcbiAgICAgICAgICBAaW5jbHVkZSBmbGV4LWdyaWQtcm93KCk7XHJcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICBwYWRkaW5nLXRvcDogMHB4O1xyXG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAzMHB4O1xyXG5cclxuICAgICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgICAgICAgICBib3R0b206IDA7XHJcbiAgICAgICAgICAgIHotaW5kZXg6IDE1O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgICAgIHRvcDogNTAlO1xyXG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDJweCAzMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjUpO1xyXG4gICAgICAgICAgICB6LWluZGV4OiAxMDtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIFxyXG4gICAgICAgICAgPiAubWVudS1pdGVtIHtcclxuICAgICAgICAgICAgcGFkZGluZy10b3A6IDI1cHg7XHJcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyNXB4O1xyXG5cclxuICAgICAgICAgICAgJjpub3QoLnByb2R1Y3QtY29sdW1uKSB7XHJcbiAgICAgICAgICAgICAgQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbihleHBhbmQpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAmLnByb2R1Y3QtY29sdW1uIHtcclxuICAgICAgICAgICAgICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKHNocmluayk7XHJcbiAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCByZ2JhKDIzNiwgMjM2LCAyMzYsIDAuMik7XHJcbiAgICAgICAgICAgICAgPiAuc3ViLW1lbnUsIFxyXG4gICAgICAgICAgICAgID4gLnN1Yi1tZW51ID4gLm1lbnUtaXRlbSwgXHJcbiAgICAgICAgICAgICAgPiAuc3ViLW1lbnUgPiAubWVudS1pdGVtID4gLmhlYWRlci1wcm9kdWN0IHtcclxuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgZG93bikge1xyXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcclxuICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgID4gYSB7XHJcbiAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA+IC5zdWItbWVudSB7XHJcbiAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xyXG4gICAgICAgICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG5cclxuICAgICAgICAgICAgICAmID4gLm1lbnUtaXRlbSB7XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAmID4gYSB7XHJcbiAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMjJweDtcclxuICAgICAgICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xyXG4gICAgICAgICAgICAgICAgICBwYWRkaW5nOiA5cHggMDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgfSAvLyBNZWdhbWVudSBEZXNrdG9wXHJcblxyXG4gICAgfVxyXG5cclxuXHJcbiAgfVxyXG59XHJcblxyXG4uc2l0ZS1oZWFkZXJfX21vYmlsZS1wcm9kdWN0LXdyYXBwZXIge1xyXG4gIGZsZXgtc2hyaW5rOiAxO1xyXG4gIG1hcmdpbjogMjBweCAxNXB4O1xyXG59XHJcblxyXG4uc2l0ZS1oZWFkZXJfX21vYmlsZS1wcm9kdWN0IHtcclxuICAmOmVtcHR5IHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG4gIFxyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcclxuICAgIEBpbmNsdWRlIHNpdGUtZ3JhZGllbnQoKTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDIycHg7XHJcbiAgICBwYWRkaW5nOiAyMHB4IDEwcHg7XHJcbiAgICBsaXN0LXN0eWxlOiBub25lO1xyXG4gICAgbWF4LXdpZHRoOiAzNzBweDtcclxuICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gICAgXHJcbiAgICAuaGVhZGVyLXByb2R1Y3RfX2ltYWdlLWhvbGRlciB7XHJcbiAgICAgIG1heC13aWR0aDogMTcwcHg7XHJcbiAgICAgIHdpZHRoOiA2MCU7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogMjBweDtcclxuICAgIH1cclxuICAgIC5oZWFkZXItcHJvZHVjdF9faW1hZ2Uge1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgcGFkZGluZy10b3A6IDExNSU7XHJcbiAgICB9XHJcbiAgICAuaGVhZGVyLXByb2R1Y3RfX2luZm8ge1xyXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgIHRvcDogLTQgcHg7XHJcbiAgICB9XHJcbiAgICAuaGVhZGVyLXByb2R1Y3RfX3ByaWNlIHtcclxuICAgICAgZm9udC1zaXplOiA0MHB4O1xyXG4gICAgICBmb250LXdlaWdodDogNTAwO1xyXG4gICAgfVxyXG4gICAgLmhlYWRlci1wcm9kdWN0X19hZGQgLmFkZC1idXR0b24ge1xyXG4gICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgd2lkdGg6IDM3cHg7XHJcbiAgICAgICAgaGVpZ2h0OiAzN3B4O1xyXG4gICAgICAgIGZvbnQtc2l6ZTogNDFweDtcclxuICAgICAgICBsaW5lLWhlaWdodDogMzFweDtcclxuICAgICAgfVxyXG4gICAgICAmOmFmdGVyIHtcclxuICAgICAgICBmb250LXNpemU6IDI3cHg7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLmZvb3Rlci1zZWN0aW9uX19zb2NpYWwuc2l0ZS1oZWFkZXJfX21vYmlsZS1zb2NpYWwge1xyXG4gIG1hcmdpbi10b3A6IDIwcHg7XHJcbiAgbWFyZ2luLWJvdHRvbTogMHB4O1xyXG4gIGZsZXgtc2hyaW5rOiAxO1xyXG4gIGZsZXg6IG5vbmU7XHJcbiAgXHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICB9XHJcbn1cclxuXHJcbi5zaXRlLWhlYWRlcl9fbW9iaWxlLWNvcHlyaWdodCB7XHJcbiAgZm9udC1zaXplOiAxN3B4O1xyXG4gIGxpbmUtaGVpZ2h0OiAyLjU5O1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICBjb2xvcjogdHJhbnNwYXJlbnRpemUoI2ZmZmZmZiwgMC41KTtcclxuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG4gIGZsZXgtc2hyaW5rOiAxO1xyXG5cclxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi5zaXRlLWhlYWRlcl9fdXNlci1tZW51IHtcclxuICAubWVudSB7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xyXG5cclxuICAgID4gbGkgPiBhIHtcclxuICAgICAgZm9udC1zaXplOiAyMnB4O1xyXG4gICAgICBmb250LXdlaWdodDogNTAwO1xyXG4gICAgICBjb2xvcjogd2hpdGU7XHJcbiAgICAgIHBhZGRpbmc6IDAgMC43cmVtO1xyXG4gICAgICBtYXJnaW4tdG9wOiAxM3B4O1xyXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgIGhlaWdodDogMTA3cHg7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAxMDBweDtcclxuICAgICAgXHJcbiAgICAgIEBhdC1yb290IC5zaXRlLWhlYWRlci0tbGlnaHQ6bm90KC5zdWJtZW51LW9wZW4pICYge1xyXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcclxuICAgICAgICAgIGNvbG9yOiAkZGFyaztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcclxuICAgICAgICBtYXJnaW46IDBweDtcclxuICAgICAgICBoZWlnaHQ6IDY3cHg7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDY3cHg7XHJcbiAgICAgICAgZm9udC1zaXplOiAyMHB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4ubWVudV9fYWNjb3VudC1pdGVtIGEgc3BhbiB7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHdpZHRoOiA0MHB4O1xyXG4gIGhlaWdodDogNDBweDtcclxuICBib3JkZXI6IDFweCBzb2xpZCAjZDNkZWUzO1xyXG4gIGJvcmRlci1yYWRpdXM6IDEwMDBweDtcclxuICBsaW5lLWhlaWdodDogNDJweDtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgXHJcbiAgJjpiZWZvcmUge1xyXG4gICAgQGluY2x1ZGUgaWNvbW9vbi1pY29uKCRpY29uLWF2YXRhcik7XHJcbiAgICBmb250LXNpemU6IDIwcHg7XHJcbiAgICBjb2xvcjogI2QzZGVlMztcclxuICB9XHJcbn1cclxuXHJcbi5zaXRlLWhlYWRlcl9fY2FydCB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGxpbmUtaGVpZ2h0OiBpbml0aWFsO1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gIFxyXG4gIHNwYW4ge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB3aWR0aDogMjRweDtcclxuICAgIGhlaWdodDogMjRweDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNlZTFiYjc7XHJcbiAgICBib3JkZXItcmFkaXVzOiAxMjBweDtcclxuICAgIGZvbnQtc2l6ZTogMTVweDtcclxuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgICBjb2xvcjogd2hpdGU7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBsaW5lLWhlaWdodDogMjNweDtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogMnB4O1xyXG4gICAgcmlnaHQ6IC0xMnB4O1xyXG4gICAgXHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XHJcbiAgICAgIGZvbnQtc2l6ZTogMTNweDtcclxuICAgICAgd2lkdGg6IDIwcHg7XHJcbiAgICAgIGhlaWdodDogMjBweDtcclxuICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XHJcbiAgICAgIHJpZ2h0OiAtOHB4O1xyXG4gICAgfVxyXG4gIH1cclxuICAmOmJlZm9yZSB7XHJcbiAgICBAaW5jbHVkZSBpY29tb29uLWljb24oJGljb24tY2FydCk7XHJcbiAgICBmb250LXNpemU6IDM2cHg7XHJcbiAgICBjb2xvcjogI2QzZGVlMztcclxuICAgIFxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xyXG4gICAgICBmb250LXNpemU6IDMwcHg7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIlxyXG4uaGVhZGVyLXRpdGxlIHtcclxuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcclxuICBcclxuICAmOm5vdCguaGVhZGVyLXRpdGxlX19pbWFnZSkge1xyXG4gICAgQGluY2x1ZGUgZmxleC1ncmlkLXJvdygkc2l6ZTogJGdsb2JhbC13aWRlLXdpZHRoKTtcclxuICB9XHJcblxyXG4gICY6bm90KC5oZWFkZXItdGl0bGVfX2ltYWdlKSAuaGVhZGVyLXRpdGxlX190aXRsZSB7XHJcbiAgICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDEyKTtcclxuICAgIGZvbnQtc2l6ZTogNThweDtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjI1O1xyXG4gICAgZm9udC13ZWlnaHQ6IDgwMDtcclxuICAgIGxldHRlci1zcGFjaW5nOiAtMC41cHg7XHJcbiAgICBjb2xvcjogJGRhcms7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBtYXJnaW4tdG9wOiA2MHB4O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xyXG5cclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcclxuICAgICAgZm9udC1zaXplOiA1MHB4O1xyXG4gICAgICBsaW5lLWhlaWdodDogMC41NWVtO1xyXG4gICAgfVxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBkb3duKSB7XHJcbiAgICAgIGZvbnQtc2l6ZTogNDBweDtcclxuICAgICAgbGluZS1oZWlnaHQ6IDAuNDVlbTtcclxuICAgIH1cclxuICB9XHJcbiAgJi5oZWFkZXItdGl0bGVfX2ltYWdlIHtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgfVxyXG4gICYuaGVhZGVyLXRpdGxlX19pbWFnZSAuaGVhZGVyLXRpdGxlX190aXRsZSB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBib3R0b206IDA7XHJcbiAgICBsZWZ0OiA1JTtcclxuICBcclxuICAgIGZvbnQtc2l6ZTogMTgwcHg7XHJcbiAgICBmb250LXdlaWdodDogODAwO1xyXG4gICAgbGluZS1oZWlnaHQ6IDAuNmVtO1xyXG4gICAgbGV0dGVyLXNwYWNpbmc6IC0wLjVweDtcclxuICAgIGNvbG9yOiAjZmZmZmZmO1xyXG4gIFxyXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgIFxyXG4gIFxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSBkb3duKSB7XHJcbiAgICAgIGZvbnQtc2l6ZTogMTUwcHg7XHJcbiAgICB9XHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XHJcbiAgICAgIGZvbnQtc2l6ZTogMTAwcHg7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAwLjU1ZW07XHJcbiAgICB9XHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIGRvd24pIHtcclxuICAgICAgZm9udC1zaXplOiA3MHB4O1xyXG4gICAgICBsaW5lLWhlaWdodDogMC40NWVtO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuXHJcbi5oZWFkZXItdGl0bGVfX2NvbnRhaW5lciB7XHJcbiAgQGluY2x1ZGUgZmxleC1ncmlkLXJvdygpO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgQGF0LXJvb3QgLmhlYWRlci10aXRsZV9faW1hZ2UgJiB7XHJcbiAgICBoZWlnaHQ6IDM3MHB4O1xyXG4gICAgXHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIGRvd24pIHtcclxuICAgICAgaGVpZ2h0OiAzMzBweDtcclxuICAgIH1cclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcclxuICAgICAgaGVpZ2h0OiAyOTBweDtcclxuICAgIH1cclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgZG93bikge1xyXG4gICAgICBoZWlnaHQ6IDI1MHB4O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuXHJcbiIsIlxyXG5cclxuLnNlY3Rpb24ge1xyXG4gID4gKjpmaXJzdC1jaGlsZCB7XHJcbiAgICBwYWRkaW5nLXRvcDogNTBweDtcclxuICAgIFxyXG4gICAgQGF0LXJvb3QgLnNlY3Rpb24tLXN1YnRpdGxlI3smfSB7XHJcbiAgICAgIHBhZGRpbmctdG9wOiAyMHB4O1xyXG4gICAgfVxyXG4gIH1cclxuICA+ICo6bGFzdC1jaGlsZCB7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogNTBweDtcclxuICAgIFxyXG4gICAgQGF0LXJvb3QgLnNlY3Rpb24tLXN1YnRpdGxlI3smfSB7XHJcbiAgICAgIHBhZGRpbmctYm90dG9tOiAwcHg7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLnNlY3Rpb24tLWJvcmRlci10b3Age1xyXG4gICAgPiAqOmZpcnN0LWNoaWxkIHtcclxuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjM2NhZDc7XHJcbiAgICB9XHJcbiAgfVxyXG4gICYuc2VjdGlvbi0tYm9yZGVyLWJvdHRvbSB7XHJcbiAgICA+ICo6bGFzdC1jaGlsZCB7XHJcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjYzNjYWQ3O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5zZWN0aW9uLS1ib3JkZXItZnVsbC10b3Age1xyXG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjM2NhZDc7XHJcbiAgfVxyXG4gICYuc2VjdGlvbi0tYm9yZGVyLWZ1bGwtYm90dG9tIHtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjYzNjYWQ3O1xyXG4gIH1cclxuXHJcbiAgJi5zZWN0aW9uLS1vZmZzZXQtbGFyZ2Uge1xyXG4gICAgbWFyZ2luLXRvcDogLTE1MHB4O1xyXG4gIH1cclxuXHJcbiAgJi5zZWN0aW9uLS1kYXJrIHtcclxuICAgIGJhY2tncm91bmQ6ICRkYXJrO1xyXG4gIH1cclxuICAmLnNlY3Rpb24tLWxpZ2h0IHtcclxuICAgIGJhY2tncm91bmQ6ICRsaWdodDtcclxuICB9XHJcbiAgJi5zZWN0aW9uLS1saWdodGVyIHtcclxuICAgIGJhY2tncm91bmQ6ICRsaWdodGVyO1xyXG4gIH1cclxuXHJcbiAgJi5zZWN0aW9uLS1jb21wYWN0IHtcclxuICAgID4gKjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgIHBhZGRpbmctdG9wOiAyNXB4O1xyXG4gICAgfVxyXG4gICAgPiAqOmxhc3QtY2hpbGQge1xyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogMjVweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYuc2VjdGlvbi0tY29tcGFjdCArIC5zZWN0aW9uLS1jb21wYWN0IHtcclxuICAgID4gKjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgIHBhZGRpbmctdG9wOiAwcHg7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uc2VjdGlvbl9faGVhZGVyIHtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxufVxyXG5cclxuXHJcbi5zZWN0aW9uX19oZWFkZXIsIC5zZWN0aW9uX19vcHRpb25zLCAuc2VjdGlvbl9fYm9keSB7XHJcbiAgQGluY2x1ZGUgZmxleC1ncmlkLXJvdygkc2l6ZTogJGdsb2JhbC1uYXJyb3ctd2lkdGgpO1xyXG5cclxuICBAYXQtcm9vdCAuc2VjdGlvbi0tZnVsbCAmIHtcclxuICAgIG1heC13aWR0aDogaW5pdGlhbDtcclxuICB9XHJcbiAgQGF0LXJvb3QgLnNlY3Rpb24tLW5hcnJvdyAmIHtcclxuICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1yb3coJHNpemU6ICRnbG9iYWwtbmFycm93ZXItd2lkdGgpO1xyXG4gIH1cclxuICBAYXQtcm9vdCAuc2VjdGlvbi0td2lkZSAmIHtcclxuICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1yb3coJHNpemU6ICRnbG9iYWwtd2lkZS13aWR0aCk7XHJcbiAgfVxyXG4gIEBhdC1yb290IC5zZWN0aW9uLS13aWRlciAmIHtcclxuICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1yb3coJHNpemU6ICRnbG9iYWwtd2lkdGgpO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi5zZWN0aW9uX190aXRsZSB7XHJcbiAgZm9udC1zaXplOiA1OHB4O1xyXG4gIGZvbnQtd2VpZ2h0OiA4MDA7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjVweDtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgY29sb3I6ICMyYzI5MzQ7XHJcbiAgbWFyZ2luLWJvdHRvbTogMjVweDtcclxuICB3aWR0aDogMTAwJTtcclxuXHJcbiAgQGF0LXJvb3QgLnNlY3Rpb24tLWNvbXBhY3QgJiB7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgZm9udC1zaXplOiAyOHB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICBsaW5lLWhlaWdodDogMTtcclxuICAgIGxldHRlci1zcGFjaW5nOiAtMC41cHg7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwcHg7XHJcbiAgICBtYXJnaW4tbGVmdDogMjBweDtcclxuICB9XHJcblxyXG4gIEBhdC1yb290IC5zZWN0aW9uLS1kYXJrICYge1xyXG4gICAgY29sb3I6IHdoaXRlOyAgICBcclxuICB9XHJcbiAgXHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xyXG4gICAgZm9udC1zaXplOiA1MHB4O1xyXG4gIH1cclxuICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIGRvd24pIHtcclxuICAgIGZvbnQtc2l6ZTogMzZweDtcclxuICB9XHJcbn1cclxuXHJcbi5zZWN0aW9uX19zdWJ0aXRsZSB7XHJcbiAgZm9udC1zaXplOiAyMnB4O1xyXG4gIGxpbmUtaGVpZ2h0OiAxLjY0O1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICBjb2xvcjogdHJhbnNwYXJlbnRpemUoIzA4MTMxZiwgMC41KTtcclxuICBtYXJnaW4tYm90dG9tOiA4NXB4O1xyXG4gIHdpZHRoOiAxMDAlO1xyXG5cclxuICBAYXQtcm9vdCAuc2VjdGlvbi0tc3VidGl0bGUgJiB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG4gIH1cclxuXHJcbiAgQGF0LXJvb3QgLnNlY3Rpb24tLWRhcmsgJiB7XHJcbiAgICBjb2xvcjogdHJhbnNwYXJlbnRpemUod2hpdGUsIDAuNSk7XHJcbiAgfVxyXG5cclxuICBAYXQtcm9vdCAuc2VjdGlvbi0tbmFycm93LXN1YnRpdGxlICYge1xyXG4gICAgd2lkdGg6IDY2MHB4O1xyXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XHJcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XHJcbiAgfVxyXG4gIFxyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcclxuICAgIGZvbnQtc2l6ZTogMjBweDtcclxuICB9XHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBkb3duKSB7XHJcbiAgICBmb250LXNpemU6IDE4cHg7XHJcbiAgfVxyXG59XHJcblxyXG4uc2VjdGlvbl9fb3B0aW9ucyB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgbWFyZ2luLWJvdHRvbTogMzNweDtcclxufVxyXG5cclxuLnNlY3Rpb25fX29wdGlvbiB7XHJcbiAgQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbihzaHJpbmspO1xyXG4gIG1hcmdpbjogNXB4IDA7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblxyXG4gIGxhYmVsIHtcclxuICAgIGZvbnQtc2l6ZTogMjJweDtcclxuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuNXB4O1xyXG4gICAgY29sb3I6ICMwODEzMWY7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDI1cHg7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuXHJcbiAgICBsYWJlbCB7IFxyXG4gICAgICB3aWR0aDogOTBweDsgXHJcbiAgICB9XHJcbiAgICBsYWJlbCArICoge1xyXG4gICAgICBmbGV4LWdyb3c6IDE7XHJcbiAgICB9XHJcbiAgICAuY2hvc2VuLWNvbnRhaW5lciB7XHJcbiAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uc2VjdGlvbl9fYm9keSB7XHJcbiAgQGF0LXJvb3QgLnNlY3Rpb24tLW5hcnJvdy1jb2wuc2VjdGlvbi0tY29sLTMgJiB7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgfVxyXG4gIFxyXG4gIEBhdC1yb290IC5zZWN0aW9uLS1jZW50ZXIgJiB7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgfVxyXG4gIFxyXG4gIEBhdC1yb290IC5zZWN0aW9uLS1yZXZlcnNlICYge1xyXG4gICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIHNlY3Rpb24tY29sdW1uLW1hcmdpbigkY29sdW1ucykge1xyXG4gIG1hcmdpbi10b3A6IDBweDtcclxuICAmOm50aC1jaGlsZCgjeyRjb2x1bW5zfSkgfiAuc2VjdGlvbl9fY29sdW1uIHtcclxuICAgIG1hcmdpbi10b3A6IDcwcHg7XHJcblxyXG4gICAgQGF0LXJvb3QgLnVwc2VsbHMjeyZ9IHtcclxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDMwcHg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5zZWN0aW9uX19jb2x1bW4tcGFnZS1jb250ZW50IHtcclxuICB3aWR0aDogMTAwJTtcclxufVxyXG5cclxuXHJcbi5zZWN0aW9uX19jb2x1bW4ge1xyXG4gIC53b29jb21tZXJjZSB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcbiAgXHJcbiAgLy8gMSBDb2x1bW5cclxuXHJcbiAgQGF0LXJvb3QgLnNlY3Rpb24tLWNvbC0xID4gLnNlY3Rpb25fX2JvZHkgPiAmLCAud29vY29tbWVyY2UuY29sdW1ucy0xID4gJiB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbigxMik7XHJcbiAgICBAaW5jbHVkZSBzZWN0aW9uLWNvbHVtbi1tYXJnaW4oMSk7XHJcbiAgfVxyXG4gIFxyXG4gIC8vIDIgQ29sdW1uc1xyXG5cclxuICBAYXQtcm9vdCAuc2VjdGlvbi0tY29sLTIgPiAuc2VjdGlvbl9fYm9keSA+ICYsIC53b29jb21tZXJjZS5jb2x1bW5zLTIgPiAmIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDYpO1xyXG4gICAgQGluY2x1ZGUgc2VjdGlvbi1jb2x1bW4tbWFyZ2luKDIpO1xyXG4gICAgXHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIGRvd24pIHtcclxuICAgICAgQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbigxMik7XHJcbiAgICAgIEBpbmNsdWRlIHNlY3Rpb24tY29sdW1uLW1hcmdpbigxKTtcclxuICAgIH1cclxuICB9XHJcbiAgXHJcbiAgLy8gNCBDb2x1bW5zXHJcblxyXG4gIEBhdC1yb290IC5zZWN0aW9uLS1jb2wtNCA+IC5zZWN0aW9uX19ib2R5ID4gJiwgLndvb2NvbW1lcmNlLmNvbHVtbnMtNCA+ICYge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oMyk7XHJcbiAgICBAaW5jbHVkZSBzZWN0aW9uLWNvbHVtbi1tYXJnaW4oNCk7XHJcbiAgICBcclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcclxuICAgICAgQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbig2KTtcclxuICAgICAgQGluY2x1ZGUgc2VjdGlvbi1jb2x1bW4tbWFyZ2luKDIpO1xyXG4gICAgfVxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBkb3duKSB7XHJcbiAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oMTIpO1xyXG4gICAgICBAaW5jbHVkZSBzZWN0aW9uLWNvbHVtbi1tYXJnaW4oMSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG4gIC8vIDMgQ29sdW1uc1xyXG4gIFxyXG4gIEBhdC1yb290IC5zZWN0aW9uLS1jb2wtMyA+IC5zZWN0aW9uX19ib2R5ID4gJiwgLndvb2NvbW1lcmNlLmNvbHVtbnMtMyA+ICYge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oNCk7XHJcbiAgICBAaW5jbHVkZSBzZWN0aW9uLWNvbHVtbi1tYXJnaW4oMyk7XHJcblxyXG4gICAgJi5zZWN0aW9uX19jb2x1bW4tLTJ4IHtcclxuICAgICAgQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbig4KTtcclxuICAgIH1cclxuICB9XHJcbiAgQGF0LXJvb3QgLnNlY3Rpb24tLW5hcnJvdy1jb2wuc2VjdGlvbi0tY29sLTMgPiAuc2VjdGlvbl9fYm9keSA+ICYge1xyXG4gICAgQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbigzMCUpO1xyXG4gICAgQGluY2x1ZGUgc2VjdGlvbi1jb2x1bW4tbWFyZ2luKDMpO1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xyXG4gICAgQGF0LXJvb3QgLnNlY3Rpb24tLWNvbC0zID4gLnNlY3Rpb25fX2JvZHkgJiwgLndvb2NvbW1lcmNlLmNvbHVtbnMtMyA+ICYge1xyXG4gICAgICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDYpO1xyXG4gICAgICBAaW5jbHVkZSBzZWN0aW9uLWNvbHVtbi1tYXJnaW4oMik7XHJcbiAgICAgIFxyXG4gICAgICAmLnNlY3Rpb25fX2NvbHVtbi0tMngge1xyXG4gICAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oMTIpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBAYXQtcm9vdCAuc2VjdGlvbi0tbmFycm93LWNvbC5zZWN0aW9uLS1jb2wtMyA+IC5zZWN0aW9uX19ib2R5ID4gJiB7XHJcbiAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oNik7XHJcbiAgICAgIEBpbmNsdWRlIHNlY3Rpb24tY29sdW1uLW1hcmdpbigyKTtcclxuICAgIH1cclxuICB9XHJcbiAgXHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBkb3duKSB7XHJcbiAgICBAYXQtcm9vdCAuc2VjdGlvbi0tY29sLTMgPiAuc2VjdGlvbl9fYm9keSA+ICYsIC53b29jb21tZXJjZS5jb2x1bW5zLTMgPiAmIHtcclxuICAgICAgQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbigxMik7XHJcbiAgICAgIEBpbmNsdWRlIHNlY3Rpb24tY29sdW1uLW1hcmdpbigxKTtcclxuICAgIH1cclxuICAgIEBhdC1yb290IC5zZWN0aW9uLS1uYXJyb3ctY29sLnNlY3Rpb24tLWNvbC0zID4gLnNlY3Rpb25fX2JvZHkgPiAmIHtcclxuICAgICAgQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbigxMik7XHJcbiAgICAgIEBpbmNsdWRlIHNlY3Rpb24tY29sdW1uLW1hcmdpbigxKTtcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcblxyXG4ud29vY29tbWVyY2UuY29sdW1ucy0zIHtcclxuICBAaW5jbHVkZSBmbGV4LWdyaWQtcm93KCk7XHJcblxyXG4gIC8vID4gLnNlY3Rpb25fX2NvbHVtbiB7XHJcbiAgLy8gICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDQpO1xyXG4gIC8vICAgQGluY2x1ZGUgc2VjdGlvbi1jb2x1bW4tbWFyZ2luKDMpO1xyXG4gIC8vIH1cclxufSBcclxuXHJcbi5zZWN0aW9uX19jb2x1bW4taW1hZ2Uge1xyXG4gIG1hcmdpbi1ib3R0b206IDEzcHg7XHJcblxyXG4gIGltZyB7XHJcbiAgICAvLyBtYXgtd2lkdGg6IDIxN3B4O1xyXG4gIH1cclxufVxyXG5cclxuLnNlY3Rpb25fX2NvbHVtbi10aXRsZSB7XHJcbiAgZm9udC1zaXplOiAyNHB4O1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIGxldHRlci1zcGFjaW5nOiAtMC41cHg7XHJcbiAgY29sb3I6ICMwODEzMWY7XHJcbiAgXHJcbiAgQGF0LXJvb3QgLnNlY3Rpb24tLWRhcmsgJiB7XHJcbiAgICBjb2xvcjogd2hpdGU7ICAgIFxyXG4gIH1cclxufVxyXG5cclxuLnNlY3Rpb25fX2NvbHVtbi1jb250ZW50IHtcclxuICBmb250LXNpemU6IDIwcHg7XHJcbiAgbGluZS1oZWlnaHQ6IDEuNztcclxuICBjb2xvcjogdHJhbnNwYXJlbnRpemUoIzA4MTMxZiwgMC41KTtcclxuXHJcbiAgQGF0LXJvb3QgLnNlY3Rpb24tLWRhcmsgJiB7XHJcbiAgICBjb2xvcjogdHJhbnNwYXJlbnRpemUod2hpdGUsIDAuNSk7ICAgIFxyXG4gIH1cclxufVxyXG4iLCJcclxuLmZvb3Rlci1zZWN0aW9uIHtcclxuICBiYWNrZ3JvdW5kOiAkZGFyaztcclxuICBwYWRkaW5nOiA2MHB4IDA7XHJcbiAgXHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBkb3duKSB7XHJcbiAgICBwYWRkaW5nLXRvcDogMHB4O1xyXG4gIH1cclxufVxyXG5cclxuLmZvb3Rlci1zZWN0aW9uX19tZW51cyB7XHJcbiAgPiAubWVudSB7XHJcbiAgICBAaW5jbHVkZSBmbGV4LWdyaWQtcm93KCk7XHJcbiAgICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKCk7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHJpZ2h0OiAtMiU7XHJcbiAgICBcclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgZG93bikge1xyXG4gICAgICByaWdodDogMHB4O1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIGRvd24pIHtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuICAgICAgcGFkZGluZzogMHB4O1xyXG4gICAgfVxyXG5cclxuICAgID4gLm1lbnUtaXRlbSB7XHJcbiAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oNCBvZiAyMSk7XHJcbiAgICAgIFxyXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIGRvd24pIHtcclxuICAgICAgICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDMpO1xyXG4gICAgICB9XHJcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoODAwcHggZG93bikge1xyXG4gICAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oNik7XHJcbiAgICAgIH1cclxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBkb3duKSB7XHJcbiAgICAgICAgQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbigxMiwgMCk7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0xMHB4O1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogLTEwcHg7XHJcbiAgICAgICAgXHJcbiAgICAgICAgJi5tZW51LWl0ZW0taGFzLWNoaWxkcmVuID4gYSB7XHJcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIGljb21vb24taWNvbigkaWNvbi1jaGV2cm9uLWRvd24pO1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogNDBweDtcclxuICAgICAgICAgICAgcmlnaHQ6IDIwcHg7XHJcbiAgICAgICAgICAgIHRvcDogNTAlO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgc2NhbGVZKC0xKTtcclxuICAgICAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50aXplKHdoaXRlLCAwLjUpO1xyXG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgJi5zdWItbWVudS1vcGVuLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4gPiBhIHtcclxuICAgICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xyXG4gICAgICAgICAgICBjb2xvcjogd2hpdGU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICA+IGEge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMjJweDtcclxuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgICBsaW5lLWhlaWdodDogMS44MjtcclxuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNHB4O1xyXG4gICAgICAgIG91dGxpbmU6IG5vbmU7XHJcbiAgICAgICAgICBcclxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIGRvd24pIHtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMjVweDtcclxuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgICAgICAgcGFkZGluZzogMTFweDtcclxuICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjM0QzQTQzO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgPiAuc3ViLW1lbnUge1xyXG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgICAgICAgbWFyZ2luOiAwO1xyXG5cclxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCkge1xyXG4gICAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgZG93bikge1xyXG4gICAgICAgICAgQGluY2x1ZGUgZmxleC1ncmlkLXJvdygpOyBcclxuICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjM0QzQTQzO1xyXG4gICAgICAgICAgcGFkZGluZy10b3A6IDEwcHg7XHJcbiAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcclxuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIHNpdGUtZ3JhZGllbnQoKTtcclxuICAgICAgICAgICAgY29udGVudDogJyc7XHJcbiAgICAgICAgICAgIGhlaWdodDogMnB4O1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgIHRvcDogMDtcclxuICAgICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICA+IC5tZW51LWl0ZW0ge1xyXG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBkb3duKSB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oNik7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgPiBhIHtcclxuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDIwcHg7XHJcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xyXG4gICAgICAgICAgICBjb2xvcjogI2ZmZmZmZjtcclxuICAgICAgICAgICAgcGFkZGluZy10b3A6IDEwcHg7XHJcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xyXG5cclxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBkb3duKSB7XHJcbiAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDIwcHg7XHJcbiAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIwcHg7XHJcbiAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcclxuICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMS4yO1xyXG4gICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLmZvb3Rlci1zZWN0aW9uX19zb2NpYWwge1xyXG4gIEBpbmNsdWRlIGZsZXgtZ3JpZC1yb3coKTtcclxuICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKCk7XHJcbiAgbWFyZ2luLXRvcDogMTBweDtcclxuICBtYXJnaW4tYm90dG9tOiAzNXB4O1xyXG4gIFxyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgZG93bikge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuICB9XHJcblxyXG4gIHVsIHtcclxuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuXHJcbiAgICBsaSB7XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgcGFkZGluZzogMCAxM3B4O1xyXG5cclxuICAgICAgYSB7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5O1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMjJweDtcclxuICAgICAgICBwYWRkaW5nOiAxMHB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uZm9vdGVyLXNlY3Rpb25fX3NvY2lhbC1mYWNlYm9vayBhIHtcclxuICAmOmJlZm9yZSB7XHJcbiAgICBAaW5jbHVkZSBpY29tb29uLWljb24oJGljb24tZmFjZWJvb2spO1xyXG4gIH1cclxufVxyXG5cclxuLmZvb3Rlci1zZWN0aW9uX19zb2NpYWwtdHdpdHRlciBhIHtcclxuICAmOmJlZm9yZSB7XHJcbiAgICBAaW5jbHVkZSBpY29tb29uLWljb24oJGljb24tdHdpdHRlcik7XHJcbiAgfVxyXG59XHJcblxyXG4uZm9vdGVyLXNlY3Rpb25fX3NvY2lhbC1pbnN0YWdyYW0gYSB7XHJcbiAgJjpiZWZvcmUge1xyXG4gICAgQGluY2x1ZGUgaWNvbW9vbi1pY29uKCRpY29uLWluc3RhZ3JhbSk7XHJcbiAgfVxyXG59XHJcblxyXG4uZm9vdGVyLXNlY3Rpb25fX3NvY2lhbC1waW50ZXJlc3QgYSB7XHJcbiAgJjpiZWZvcmUge1xyXG4gICAgQGluY2x1ZGUgaWNvbW9vbi1pY29uKCRpY29uLXBpbnRlcmVzdCk7XHJcbiAgfVxyXG59XHJcblxyXG4uZm9vdGVyLXNlY3Rpb25fX2NvcHlyaWdodC1yb3cge1xyXG4gIEBpbmNsdWRlIGZsZXgtZ3JpZC1yb3coKTtcclxuICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKCk7XHJcbn1cclxuXHJcbi5mb290ZXItc2VjdGlvbl9fY29weXJpZ2h0IHtcclxuICB3aWR0aDogOTAwcHg7XHJcbiAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gIG1hcmdpbjogMCBhdXRvO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHJcbiAgb3BhY2l0eTogMC41O1xyXG4gIGZvbnQtc2l6ZTogMTZweDtcclxuICBjb2xvcjogI2ZmZmZmZjtcclxuICBcclxuICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIGRvd24pIHtcclxuICAgIGZvbnQtc2l6ZTogMTNweDtcclxuICB9XHJcbn1cclxuIiwiXHJcbi5icmFuZHMtc2VjdGlvbiB7XHJcbiAgPiAqOmxhc3QtY2hpbGQge1xyXG4gICAgcGFkZGluZy1ib3R0b206IDBweDtcclxuICB9XHJcbn1cclxuXHJcbi5icmFuZHMge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgaGVpZ2h0OiAxMDAwcHg7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgXHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gdXApIHtcclxuICAgIEBpbmNsdWRlIGRpdmlkZXItZWZmZWN0KCRwb3NpdGlvbjogJ3RvcGluJywgJGNvbG9yOiAkbGlnaHQsICRpbnZlcnNlLXk6IHRydWUsICRoZWlnaHQ6IDkwcHgpOyAgICBcclxuICB9XHJcbiAgXHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBkb3duKSB7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgcGFkZGluZy1ib3R0b206IDIwcHg7XHJcbiAgfVxyXG59XHJcbi5icmFuZHNfX3NlY3Rpb24ge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuXHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBkb3duKSB7XHJcbiAgICBmbGV4OiAxICFpbXBvcnRhbnQ7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICB9XHJcblxyXG4gID4gLmJyYW5kc19fc2VjdGlvbiB7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gICAgXHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIGRvd24pIHtcclxuICAgICAgZmxleDogMSAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIGRvd24pIHtcclxuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIH1cclxuXHJcbiAgICA+IC5icmFuZHNfX3NlY3Rpb24ge1xyXG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICBcclxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBkb3duKSB7XHJcbiAgICAgICAgZmxleDogMSAhaW1wb3J0YW50O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbi5icmFuZHNfX2l0ZW0ge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIHBhZGRpbmctbGVmdDogMjBweDtcclxuICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xyXG5cclxuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcclxuXHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBkb3duKSB7XHJcbiAgICBtYXJnaW46IDEwcHggMjBweDtcclxuICAgIHBhZGRpbmctdG9wOiAxMDBweDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDdweDtcclxuICAgIGZsZXg6IDEgIWltcG9ydGFudDtcclxuICB9XHJcbn1cclxuXHJcbi5icmFuZHNfX2l0ZW0tY29udGVudCB7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIHBhZGRpbmctYm90dG9tOiA1MHB4O1xyXG4gIHBhZGRpbmctdG9wOiA1MHB4O1xyXG4gIFxyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgZG93bikge1xyXG4gICAgcGFkZGluZy1ib3R0b206IDMwcHg7XHJcbiAgfVxyXG5cclxuICAuYnV0dG9uIHtcclxuICAgIEBpbmNsdWRlIGJ1dHRvbi1ib3JkZXIoKTtcclxuICAgIEBpbmNsdWRlIGJ1dHRvbi13aGl0ZSgpO1xyXG4gIH1cclxufVxyXG5cclxuLmJyYW5kc19faXRlbS10aXRsZSB7XHJcbiAgZm9udC1zaXplOiA1MXB4O1xyXG4gIGZvbnQtd2VpZ2h0OiA4MDA7XHJcbiAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjVweDtcclxuICBjb2xvcjogI2ZmZmZmZjtcclxuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG4gIFxyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgZG93bikge1xyXG4gICAgZm9udC1zaXplOiAzNXB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICBsaW5lLWhlaWdodDogMS44MztcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGNvbG9yOiAjZmZmZmZmO1xyXG4gIH1cclxufVxyXG4iLCJcclxuQG1peGluIGRpdmlkZXItZWZmZWN0KFxyXG4gICRpbnZlcnNlOiBmYWxzZSwgXHJcbiAgJGludmVyc2UteTogZmFsc2UsIFxyXG4gICRpbnZlcnNlLXg6IGZhbHNlLCBcclxuICAkcG9zaXRpb246ICd0b3AnLCBcclxuICAkY29sb3I6ICMwMDAsIFxyXG4gICRkb3VibGU6IGZhbHNlLCBcclxuICAkY29sb3IxOiAjMDAwLCBcclxuICAkY29sb3IyOiAjMDAwLCBcclxuICAkc2l6ZTogbWVkaXVtLFxyXG4gICRzcGxpdC1wb3M6IDAuOCxcclxuICAkaGVpZ2h0OiA2MHB4XHJcbikge1xyXG4gIFxyXG4gICRwc2V1ZG86ICdiZWZvcmUnO1xyXG4gICRwb3M6ICd0b3AnO1xyXG4gICRwb3NfdmFsdWU6IC0kaGVpZ2h0O1xyXG4gICR0cmFuc2Zvcm06ICcnO1xyXG5cclxuICBAaWYgc3RyLWluZGV4KCRwb3NpdGlvbiwgJ2JvdHRvbScpIHtcclxuICAgICRwc2V1ZG86ICdhZnRlcic7XHJcbiAgICAkcG9zOiAnYm90dG9tJztcclxuICB9XHJcbiAgQGlmIHN0ci1pbmRleCgkcG9zaXRpb24sICdpbicpIHtcclxuICAgICRwb3NfdmFsdWU6IDBweDtcclxuICB9XHJcblxyXG4gIEBpZiAkaW52ZXJzZS15IHtcclxuICAgICR0cmFuc2Zvcm06ICR0cmFuc2Zvcm0gKyAnc2NhbGVZKC0xKSAnO1xyXG4gIH0gQGVsc2Uge1xyXG4gICAgJHRyYW5zZm9ybTogJHRyYW5zZm9ybSArICdzY2FsZVkoMSkgJztcclxuICB9XHJcbiAgQGlmICRpbnZlcnNlLXgge1xyXG4gICAgJHRyYW5zZm9ybTogJHRyYW5zZm9ybSArICdzY2FsZVgoLTEpICc7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICAkdHJhbnNmb3JtOiAkdHJhbnNmb3JtICsgJ3NjYWxlWCgxKSAnO1xyXG4gIH1cclxuXHJcbiAgJHNwbGl0OiAkc3BsaXQtcG9zICogNDAwO1xyXG5cclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gICY6I3skcHNldWRvfSB7XHJcbiAgICBjb250ZW50OiAnJztcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGhlaWdodDogJGhlaWdodDtcclxuICAgICN7JHBvc306ICRwb3NfdmFsdWU7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgYmFja2dyb3VuZC1zaXplOiAxMDAlIDEwMCU7XHJcbiAgICBcclxuICAgIHRyYW5zZm9ybTogI3skdHJhbnNmb3JtfTtcclxuXHJcbiAgICBAaWYgJGRvdWJsZSB7XHJcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHN2Zy10by1kYXRhLXVyaSgnPHN2ZyBoZWlnaHQ9XCI1MFwiIHdpZHRoPVwiNDAwXCIgcHJlc2VydmVBc3BlY3RSYXRpbz1cIm5vbmVcIj5cclxuICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgIDxsaW5lYXJHcmFkaWVudCBpZD1cIkdyYWRpZW50MVwiIHgxPVwiMFwiIHgyPVwiMVwiIHkxPVwiMFwiIHkyPVwiMFwiPlxyXG4gICAgICAgICAgICA8c3RvcCBvZmZzZXQ9XCIwJVwiIHN0b3AtY29sb3I9XCIjeyRjb2xvcjF9XCIvPlxyXG4gICAgICAgICAgICA8c3RvcCBvZmZzZXQ9XCIxMDAlXCIgc3RvcC1jb2xvcj1cIiN7JGNvbG9yMn1cIi8+XHJcbiAgICAgICAgICA8L2xpbmVhckdyYWRpZW50PlxyXG4gICAgICAgIDwvZGVmcz5cclxuICAgICAgICA8cG9seWdvbiBwb2ludHM9XCIjeyRzcGxpdCs1fSwwIDQwMCw1MCAwLDUwXCIgZmlsbD1cInVybCgjR3JhZGllbnQxKVwiIC8+XHJcbiAgICAgICAgPHBvbHlnb24gcG9pbnRzPVwiI3skc3BsaXR9LDIwIDQwMCw1MCAwLDUwXCIgc3R5bGU9XCJmaWxsOiN7JGNvbG9yfTtcIiAvPlxyXG4gICAgICA8L3N2Zz4nKTtcclxuICAgIH0gQGVsc2Uge1xyXG5cclxuICAgICAgQGlmICRpbnZlcnNlIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBzdmctdG8tZGF0YS11cmkoJzxzdmcgaGVpZ2h0PVwiNTBcIiB3aWR0aD1cIjQwMFwiIHByZXNlcnZlQXNwZWN0UmF0aW89XCJub25lXCI+XHJcbiAgICAgICAgICA8cG9seWdvbiBwb2ludHM9XCIjeyRzcGxpdH0sMCAwLDAgMCw1MFwiIHN0eWxlPVwiZmlsbDojeyRjb2xvcn07XCIgLz5cclxuICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz1cIiN7JHNwbGl0fSwwIDQwMCwwIDQwMCw1MFwiIHN0eWxlPVwiZmlsbDojeyRjb2xvcn07XCIgLz5cclxuICAgICAgICA8L3N2Zz4nKTtcclxuICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogc3ZnLXRvLWRhdGEtdXJpKCc8c3ZnIGhlaWdodD1cIjUwXCIgd2lkdGg9XCI0MDBcIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPVwibm9uZVwiPlxyXG4gICAgICAgICAgPHBvbHlnb24gcG9pbnRzPVwiI3skc3BsaXR9LDIwIDQwMCw1MCAwLDUwXCIgc3R5bGU9XCJmaWxsOiN7JGNvbG9yfTtcIiAvPlxyXG4gICAgICAgIDwvc3ZnPicpO1xyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG4gIH1cclxufSIsIlxuQGltcG9ydCBcblx0J2NvbG9ycyc7XG5cblxuXHQvLy8gUmVwbGFjZSBgJHNlYXJjaGAgd2l0aCBgJHJlcGxhY2VgIGluIGAkc3RyaW5nYFxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc3RyaW5nIC0gSW5pdGlhbCBzdHJpbmdcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlYXJjaCAtIFN1YnN0cmluZyB0byByZXBsYWNlXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRyZXBsYWNlICgnJykgLSBOZXcgdmFsdWVcbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gVXBkYXRlZCBzdHJpbmdcbkBmdW5jdGlvbiBzdHItcmVwbGFjZSgkc3RyaW5nLCAkc2VhcmNoLCAkcmVwbGFjZTogJycpIHtcbiAgJGluZGV4OiBzdHItaW5kZXgoJHN0cmluZywgJHNlYXJjaCk7XG4gIFxuICBAaWYgJGluZGV4IHtcbiAgICBAcmV0dXJuIHN0ci1zbGljZSgkc3RyaW5nLCAxLCAkaW5kZXggLSAxKSArICRyZXBsYWNlICsgc3RyLXJlcGxhY2Uoc3RyLXNsaWNlKCRzdHJpbmcsICRpbmRleCArIHN0ci1sZW5ndGgoJHNlYXJjaCkpLCAkc2VhcmNoLCAkcmVwbGFjZSk7XG4gIH1cbiAgXG4gIEByZXR1cm4gJHN0cmluZztcbn1cblxuQGZ1bmN0aW9uIHN2Zy10by1kYXRhLXVyaSgkc3ZnLCAkZmlsbDogbnVsbCkge1xuICAkc3ZnOiBpZigkZmlsbCwgc3RyLXJlcGxhY2UoJHN2ZywgXCI8c3ZnXCIsIFwiPHN2ZyBmaWxsPScjeyRmaWxsfSdcIiksICRzdmcpO1xuICAkc3ZnOiBzdHItcmVwbGFjZSgkc3ZnLCBcIjxzdmdcIiwgXCI8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgXCIpO1xuICAkc3ZnOiBzdHItcmVwbGFjZSgkc3ZnLCBcIjxcIiwgXCIlM0NcIik7XG4gICRzdmc6IHN0ci1yZXBsYWNlKCRzdmcsIFwiPlwiLCBcIiUzRVwiKTtcbiAgJHN2Zzogc3RyLXJlcGxhY2UoJHN2ZywgXCJcXFwiXCIsIFwiJ1wiKTtcbiAgJHN2Zzogc3RyLXJlcGxhY2UoJHN2ZywgXCIjXCIsIFwiJTIzXCIpO1xuICAkc3ZnOiBzdHItcmVwbGFjZSgkc3ZnLCBcIiZcIiwgXCIlMjZcIik7XG5cbiAgQHJldHVybiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsI3skc3ZnfVwiKTtcbn0iLCJib2R5Lndvb2NvbW1lcmNlLWNoZWNrb3V0IHtcclxuXHJcbiAgLnNlY3Rpb25fX2NvbHVtbiB7XHJcbiAgICBtYXgtd2lkdGg6IDYwMHB4ICFpbXBvcnRhbnQ7XHJcbiAgICBtYXJnaW46IDAgYXV0bztcclxuICB9XHJcblxyXG4gIC5mb3JtLXJvdyB7XHJcbiAgICA+IGxhYmVsIHtcclxuICAgICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgICBmb250LXdlaWdodDogNTAwO1xyXG4gICAgICBjb2xvcjogIzJjMjkzNDtcclxuICAgIH1cclxuXHJcbiAgICBhYmJyLCBhYmJyW3RpdGxlXSB7XHJcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgICAgY3Vyc29yOiB1bnNldDtcclxuICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC53b29jb21tZXJjZS1mb3JtLWNvdXBvbi10b2dnbGUge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuXHJcbiAgICAud29vY29tbWVyY2UtaW5mbyB7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICBwYWRkaW5nOiAxMHB4O1xyXG4gICAgICBjb2xvcjogd2hpdGU7XHJcblxyXG4gICAgICBhIHtcclxuICAgICAgICBjb2xvcjogd2hpdGU7XHJcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC53b29jb21tZXJjZS1jaGVja291dC1yZXZpZXctb3JkZXItdGFibGUge1xyXG4gICAgZGwudmFyaWF0aW9uIHtcclxuICAgICAgZHQudmFyaWF0aW9uLU1vZGVsIHtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAud29vY29tbWVyY2UtZm9ybS1jb3Vwb24ge1xyXG4gICAgLmJ1dHRvbiB7XHJcbiAgICAgIEBleHRlbmQgLmJ1dHRvbi0tc21hbGw7XHJcblxyXG4gICAgfVxyXG4gICAgLmZvcm0tcm93IHtcclxuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAjb3JkZXJfcmV2aWV3X2hlYWRpbmcsIC53b29jb21tZXJjZS1iaWxsaW5nLWZpZWxkcyA+IGgzLCAjb3JkZXJfcmV2aWV3IGgzIHtcclxuICAgIGZvbnQtc2l6ZTogMjhweDtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcclxuICAgIGxldHRlci1zcGFjaW5nOiAtMC41cHg7XHJcbiAgICBjb2xvcjogIzA4MTMxZjtcclxuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XHJcblxyXG4gICAgbWFyZ2luLXRvcDogNDBweDtcclxuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XHJcbiAgfVxyXG5cclxuICAud29vY29tbWVyY2UtY2hlY2tvdXQtcGF5bWVudCB7XHJcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xyXG4gIH1cclxuXHJcbiAgLndjX3BheW1lbnRfbWV0aG9kcyB7XHJcbiAgICBsaXN0LXN0eWxlOiBub25lO1xyXG4gICAgbWFyZ2luLWxlZnQ6IDA7XHJcblxyXG4gICAgLnBheW1lbnRfbWV0aG9kX3N0cmlwZSA+IGxhYmVsIHtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcblt0eXBlPSd0ZXh0J10sIFt0eXBlPSdwYXNzd29yZCddLCBbdHlwZT0nZGF0ZSddLCBbdHlwZT0nZGF0ZXRpbWUnXSwgW3R5cGU9J2RhdGV0aW1lLWxvY2FsJ10sIFt0eXBlPSdtb250aCddLCBbdHlwZT0nd2VlayddLCBbdHlwZT0nZW1haWwnXSwgW3R5cGU9J251bWJlciddLCBbdHlwZT0nc2VhcmNoJ10sIFt0eXBlPSd0ZWwnXSwgW3R5cGU9J3RpbWUnXSwgW3R5cGU9J3VybCddLCBbdHlwZT0nY29sb3InXSwgdGV4dGFyZWEge1xyXG4gIG1pbi1oZWlnaHQ6IDU0cHg7XHJcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xyXG4gIGJvcmRlcjogc29saWQgMXB4ICNkM2RlZTM7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcclxuICBvdXRsaW5lOiBub25lO1xyXG4gIGJveC1zaGFkb3c6IG5vbmU7XHJcbiAgcGFkZGluZzogNXB4IDE1cHg7XHJcblxyXG4gIGZvbnQtc2l6ZTogMjBweDtcclxuICBsaW5lLWhlaWdodDogMS42O1xyXG4gIGxldHRlci1zcGFjaW5nOiAwLjIycHg7XHJcbiAgY29sb3I6ICMyYzI5MzQ7XHJcbiAgbWFyZ2luLWJvdHRvbTogMHB4O1xyXG59XHJcblxyXG4vKiBTZWxlY3QyICovXHJcbi5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdCAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZSAuc2VsZWN0Mi1zZWxlY3Rpb25fX2Fycm93IHtcclxuICB0b3A6IDUwJTtcclxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XHJcbn1cclxuLnNlbGVjdDItY29udGFpbmVyLS1kZWZhdWx0IC5zZWxlY3QyLXNlbGVjdGlvbi0tc2luZ2xlIHtcclxuICBtaW4taGVpZ2h0OiA1NHB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDRweDtcclxuICBib3JkZXI6IHNvbGlkIDFweCAjZDNkZWUzO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIG91dGxpbmU6IG5vbmU7XHJcbiAgYm94LXNoYWRvdzogbm9uZTtcclxuXHJcbiAgJjpmb2N1cyB7XHJcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XHJcbiAgICBib3JkZXI6IHNvbGlkIDFweCAjZDNkZWUzO1xyXG4gIH1cclxufVxyXG4uc2VsZWN0Mi1jb250YWluZXItLWRlZmF1bHQgLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGUgLnNlbGVjdDItc2VsZWN0aW9uX19yZW5kZXJlZCB7XHJcbiAgZm9udC1zaXplOiAyMHB4O1xyXG4gIGxpbmUtaGVpZ2h0OiAxLjY7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMjJweDtcclxuICBjb2xvcjogdHJhbnNwYXJlbnRpemUoIzA4MTMxZiwgMC43KTtcclxuICBtYXJnaW4tYm90dG9tOiAwcHg7XHJcbn1cclxuLnNlbGVjdDItZHJvcGRvd24ge1xyXG4gIGJvcmRlci1jb2xvcjogI2QzZGVlMztcclxufVxyXG4uc2VsZWN0Mi1jb250YWluZXItLWRlZmF1bHQgLnNlbGVjdDItc2VhcmNoLS1kcm9wZG93biAuc2VsZWN0Mi1zZWFyY2hfX2ZpZWxkIHtcclxuICBib3JkZXItcmFkaXVzOiA0cHg7XHJcbiAgYm9yZGVyOiBzb2xpZCAxcHggI2QzZGVlMztcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xyXG4gIG91dGxpbmU6IG5vbmU7XHJcbiAgYm94LXNoYWRvdzogbm9uZTtcclxuXHJcbiAgZm9udC1zaXplOiAxNnB4O1xyXG4gIGxpbmUtaGVpZ2h0OiAxLjY7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMjJweDtcclxuICBjb2xvcjogdHJhbnNwYXJlbnRpemUoIzA4MTMxZiwgMC43KTtcclxufSIsIi5zcXVpcC1jb21tdW5pdHkge1xyXG4gID4gKjpmaXJzdC1jaGlsZCB7XHJcbiAgICBwYWRkaW5nLXRvcDogMHB4O1xyXG4gIH1cclxuICA+ICo6bGFzdC1jaGlsZCB7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMHB4O1xyXG4gIH1cclxufVxyXG4uc3F1aXAtY29tbXVuaXR5X19zb2NpYWwge1xyXG4gIEBpbmNsdWRlIGZsZXgtZ3JpZC1yb3coKTtcclxuICBtYXgtd2lkdGg6IGluaXRpYWw7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbn1cclxuLnNxdWlwLWNvbW11bml0eV9fc29jaWFsLWl0ZW0gIHtcclxuICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDEgb2YgNCwgMCk7XHJcbiAgaGVpZ2h0OiAzNXZ3O1xyXG4gIG1pbi1oZWlnaHQ6IDIwMHB4O1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICBcclxuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcclxuXHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xyXG4gICAgQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbigxIG9mIDIsIDApO1xyXG4gIH1cclxufVxyXG4uc3F1aXAtY29tbXVuaXR5X19zb2NpYWwtdGl0bGUge1xyXG4gIGZvbnQtc2l6ZTogMzlweDtcclxuICBmb250LXdlaWdodDogMzAwO1xyXG4gIGxpbmUtaGVpZ2h0OiAxLjY0O1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICBjb2xvcjogI2ZmZmZmZjtcclxuICBtYXJnaW4tdG9wOiA1MHB4O1xyXG4gIFxyXG4gIEBhdC1yb290IC5zcXVpcC1jb21tdW5pdHlfX3NvY2lhbC1pdGVtLS1mYiAmIHtcclxuICAgICY6YmVmb3JlIHtcclxuICAgICAgQGluY2x1ZGUgaWNvbW9vbi1pY29uKCRpY29uLWZhY2Vib29rKTtcclxuICAgIH1cclxuICB9XHJcbiAgQGF0LXJvb3QgLnNxdWlwLWNvbW11bml0eV9fc29jaWFsLWl0ZW0tLXR3ICYge1xyXG4gICAgJjpiZWZvcmUge1xyXG4gICAgICBAaW5jbHVkZSBpY29tb29uLWljb24oJGljb24tdHdpdHRlcik7XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBhdC1yb290IC5zcXVpcC1jb21tdW5pdHlfX3NvY2lhbC1pdGVtLS1pbiAmIHtcclxuICAgICY6YmVmb3JlIHtcclxuICAgICAgQGluY2x1ZGUgaWNvbW9vbi1pY29uKCRpY29uLWluc3RhZ3JhbSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBhdC1yb290IC5zcXVpcC1jb21tdW5pdHlfX3NvY2lhbC1pdGVtLS1waSAmIHtcclxuICAgICY6YmVmb3JlIHtcclxuICAgICAgQGluY2x1ZGUgaWNvbW9vbi1pY29uKCRpY29uLXBpbnRlcmVzdCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmOmJlZm9yZSB7XHJcbiAgICBmb250LXNpemU6IDEwMHB4O1xyXG4gICAgY29sb3I6IHdoaXRlO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xyXG4gIH1cclxuXHJcbiAgXHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xyXG4gICAgZm9udC1zaXplOiAyNXB4O1xyXG4gICAgbWFyZ2luLXRvcDogMzVweDsgXHJcbiAgICAgIFxyXG4gICAgJjpiZWZvcmUge1xyXG4gICAgICBmb250LXNpemU6IDcwcHg7XHJcbiAgICB9XHJcbiAgfVxyXG4gICAgXHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBkb3duKSB7XHJcbiAgICAmOmJlZm9yZSB7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XHJcbiAgICAgIGZvbnQtc2l6ZTogNjRweDtcclxuICAgIH1cclxuICB9XHJcbn0iLCJcclxuLmhlcm8ge1xyXG4gIHBhZGRpbmctYm90dG9tOiAxMDBweDtcclxuICBwYWRkaW5nLXRvcDogNTBweDtcclxuICBvdmVyZmxvdzogdmlzaWJsZTtcclxuXHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBkb3duKSB7XHJcbiAgICBwYWRkaW5nLXRvcDogMHB4O1xyXG4gIH1cclxufVxyXG5cclxuLmhlcm9fX2NvbnRhaW5lciB7XHJcbiAgQGluY2x1ZGUgZmxleC1ncmlkLXJvdygpO1xyXG59XHJcblxyXG4uaGVyb19fZG90cyB7XHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBkb3duKSB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxufVxyXG5cclxuLmhlcm9fX2Nhcm91c2VsIHtcclxuICAub3dsLXN0YWdlLW91dGVyIHtcclxuICAgIHBhZGRpbmctdG9wOiAxMjBweDtcclxuICAgIG1hcmdpbi10b3A6IC0xMjBweDtcclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgZG93bikge1xyXG4gICAgICBtYXJnaW4tdG9wOiAtMTQwcHg7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAub3dsLWl0ZW0ge1xyXG4gICAgJjpudGgtY2hpbGQoMykgLm93bC1kb3RzIC5vd2wtZG90Om50aC1jaGlsZCgxKSB7IGJhY2tncm91bmQ6ICRkYXJrOyB9O1xyXG4gICAgJjpudGgtY2hpbGQoNCkgLm93bC1kb3RzIC5vd2wtZG90Om50aC1jaGlsZCgyKSB7IGJhY2tncm91bmQ6ICRkYXJrOyB9O1xyXG4gICAgJjpudGgtY2hpbGQoNSkgLm93bC1kb3RzIC5vd2wtZG90Om50aC1jaGlsZCgzKSB7IGJhY2tncm91bmQ6ICRkYXJrOyB9O1xyXG4gICAgJjpudGgtY2hpbGQoNikgLm93bC1kb3RzIC5vd2wtZG90Om50aC1jaGlsZCg0KSB7IGJhY2tncm91bmQ6ICRkYXJrOyB9O1xyXG4gICAgJjpudGgtY2hpbGQoNykgLm93bC1kb3RzIC5vd2wtZG90Om50aC1jaGlsZCg1KSB7IGJhY2tncm91bmQ6ICRkYXJrOyB9O1xyXG4gICAgJjpudGgtY2hpbGQoOCkgLm93bC1kb3RzIC5vd2wtZG90Om50aC1jaGlsZCg2KSB7IGJhY2tncm91bmQ6ICRkYXJrOyB9O1xyXG4gICAgJjpudGgtY2hpbGQoOSkgLm93bC1kb3RzIC5vd2wtZG90Om50aC1jaGlsZCg3KSB7IGJhY2tncm91bmQ6ICRkYXJrOyB9O1xyXG4gIH1cclxuXHJcbiAgLm93bC1kb3RzIHtcclxuICAgIG1hcmdpbi10b3A6IDE1JTtcclxuICAgIHdpZHRoOiA1MzBweDtcclxuICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcblxyXG4gICAgLm93bC1kb3Qge1xyXG4gICAgICBoZWlnaHQ6IDZweDtcclxuICAgICAgZmxleDogMTtcclxuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnRpemUoJGRhcmssIDAuOCk7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogMTVweDtcclxuICAgICAgJi5hY3RpdmUge1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICRkYXJrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmID4gLm93bC1kb3RzIHtcclxuICAgIG1hcmdpbi10b3A6IDBweDtcclxuICAgIHBhZGRpbmctbGVmdDogMjVweDtcclxuICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuXHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCkge1xyXG4gICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLm93bC1uYXYge1xyXG5cclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgZG93bikge1xyXG4gICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAub3dsLXByZXYsIC5vd2wtbmV4dCB7XHJcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICB0b3A6IDQ1JTtcclxuXHJcbiAgICAgICYub3dsLXByZXYge1xyXG4gICAgICAgIGxlZnQ6IDEwcHg7XHJcblxyXG4gICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICAgIEBpbmNsdWRlIGljb21vb24taWNvbigkaWNvbi1hcnJvd19yaWdodCk7XHJcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgtMSk7XHJcbiAgICAgICAgICBjb2xvcjogIzJjMjkzNDtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogNTBweDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgJi5vd2wtbmV4dCB7XHJcbiAgICAgICAgcmlnaHQ6IDEwcHg7XHJcbiAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgQGluY2x1ZGUgaWNvbW9vbi1pY29uKCRpY29uLWFycm93X3JpZ2h0KTtcclxuICAgICAgICAgIGNvbG9yOiAjMmMyOTM0O1xyXG4gICAgICAgICAgZm9udC1zaXplOiA1MHB4O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLmhlcm9fX2l0ZW0ge1xyXG4gIEBpbmNsdWRlIGZsZXgtZ3JpZC1yb3coKTtcclxuICBcclxuICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIGRvd24pIHtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIH1cclxufVxyXG5cclxuLmhlcm9fX2ltYWdlIHtcclxuICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDYpO1xyXG4gIFxyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgZG93bikge1xyXG4gICAgQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbigxMik7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA0MHB4O1xyXG4gIH1cclxuICBcclxuICBpbWcge1xyXG4gICAgbWFyZ2luLXRvcDogLTEwdnc7XHJcblxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgxMjAwcHggdXApIHtcclxuICAgICAgbWFyZ2luLXRvcDogLTEyMHB4O1xyXG4gICAgfVxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xyXG4gICAgICBtYXJnaW4tdG9wOiAtNHZ3O1xyXG4gICAgfVxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBkb3duKSB7XHJcbiAgICAgIG1hcmdpbi10b3A6IDB2dztcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5oZXJvX19jb250ZW50IHtcclxuICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDYpO1xyXG4gIHBhZGRpbmctYm90dG9tOiA1MHB4O1xyXG4gIFxyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgZG93bikge1xyXG4gICAgQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbigxMik7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcbn1cclxuXHJcbi5oZXJvX190aXRsZSB7XHJcbiAgZm9udC1zaXplOiA2MHB4O1xyXG4gIGZvbnQtd2VpZ2h0OiA4MDA7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjVweDtcclxuICBjb2xvcjogJGRhcms7XHJcblxyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcclxuICAgIGZvbnQtc2l6ZTogNDBweDtcclxuICB9XHJcbn1cclxuXHJcbi5oZXJvX19zdWJ0aXRsZSB7XHJcbiAgZm9udC1zaXplOiAyMnB4O1xyXG4gIGxpbmUtaGVpZ2h0OiAxLjY0O1xyXG4gIGxldHRlci1zcGFjaW5nOiAtMC41cHg7XHJcbiAgY29sb3I6ICRwcmltYXJ5O1xyXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuICBcclxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XHJcbiAgICBmb250LXNpemU6IDIwcHg7XHJcbiAgfVxyXG59XHJcblxyXG4uaGVyb19fY29weSB7XHJcbiAgd2lkdGg6IDQ1MHB4O1xyXG4gIG1heC13aWR0aDogOTAlO1xyXG4gIGZvbnQtc2l6ZTogMjJweDtcclxuICBsaW5lLWhlaWdodDogMS42NDtcclxuICBjb2xvcjogdHJhbnNwYXJlbnRpemUoIzJjMjkzNCwgMC41KTtcclxuICBcclxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XHJcbiAgICBmb250LXNpemU6IDE4cHg7XHJcbiAgfVxyXG5cclxuICAuYnV0dG9uIHtcclxuICAgIG1hcmdpbi10b3A6IDIwcHg7XHJcbiAgICBAaW5jbHVkZSBidXR0b24tYm9yZGVyKCk7XHJcbiAgICBAaW5jbHVkZSBidXR0b24tYm9yZGVyLWdyYWRpZW50KCk7XHJcbiAgICBAaW5jbHVkZSBidXR0b24tZGFyaygpO1xyXG4gIH1cclxufVxyXG4iLCJcclxuLmJyYW5kLWhlcm8ge1xyXG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XHJcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xyXG4gIHBhZGRpbmctdG9wOiA3MHB4O1xyXG4gIHBhZGRpbmctYm90dG9tOiAyMDBweDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gICY6YWZ0ZXIge1xyXG4gICAgY29udGVudDogJyc7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBib3R0b206IDA7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICBoZWlnaHQ6IDI1MHB4O1xyXG5cclxuICAgIC8qIFBlcm1hbGluayAtIHVzZSB0byBlZGl0IGFuZCBzaGFyZSB0aGlzIGdyYWRpZW50OiBodHRwczovL2NvbG9yemlsbGEuY29tL2dyYWRpZW50LWVkaXRvci8jZmZmZmZmKzAsZmZmZmZmKzEwMCYwKzAsMSsxMDAgKi9cclxuICAgIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgIHJnYmEoMjU1LDI1NSwyNTUsMCkgMCUsIHJnYmEoMjU1LDI1NSwyNTUsMSkgMTAwJSk7IC8qIEZGMy42LTE1ICovXHJcbiAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsICByZ2JhKDI1NSwyNTUsMjU1LDApIDAlLHJnYmEoMjU1LDI1NSwyNTUsMSkgMTAwJSk7IC8qIENocm9tZTEwLTI1LFNhZmFyaTUuMS02ICovXHJcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAgcmdiYSgyNTUsMjU1LDI1NSwwKSAwJSxyZ2JhKDI1NSwyNTUsMjU1LDEpIDEwMCUpOyAvKiBXM0MsIElFMTArLCBGRjE2KywgQ2hyb21lMjYrLCBPcGVyYTEyKywgU2FmYXJpNysgKi9cclxuICAgIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KCBzdGFydENvbG9yc3RyPScjMDBmZmZmZmYnLCBlbmRDb2xvcnN0cj0nI2ZmZmZmZicsR3JhZGllbnRUeXBlPTAgKTsgLyogSUU2LTkgKi9cclxuXHJcbiAgfVxyXG59XHJcblxyXG4uYnJhbmQtaGVyb19fY29udGFpbmVyIHtcclxuICBAaW5jbHVkZSBmbGV4LWdyaWQtcm93KCk7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG59XHJcblxyXG4uYnJhbmQtaGVyb19fY29udGVudCB7XHJcbiAgQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbihzaHJpbmspO1xyXG4gIHdpZHRoOiA0MjBweDtcclxuICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgbWFyZ2luLXRvcDogMzBweDtcclxufVxyXG5cclxuLmJyYW5kLWhlcm9fX2xvZ28ge1xyXG4gIG1hcmdpbi1ib3R0b206IDUwcHg7XHJcbiAgbWF4LXdpZHRoOiAyMTBweDtcclxufVxyXG5cclxuLmJyYW5kLWhlcm9fX3RpdGxlIHtcclxuICBmb250LXNpemU6IDQ4cHg7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgbGluZS1oZWlnaHQ6IDEuMzM7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjQ3cHg7XHJcbiAgY29sb3I6IHdoaXRlO1xyXG59XHJcblxyXG4uYnJhbmQtaGVyb19fY29weSB7XHJcbiAgZm9udC1zaXplOiAyMHB4O1xyXG4gIGxpbmUtaGVpZ2h0OiAxLjc7XHJcbiAgY29sb3I6IHdoaXRlO1xyXG4gIG1hcmdpbi1ib3R0b206IDQwcHg7XHJcbn1cclxuXHJcbi5icmFuZC1oZXJvX19hY3Rpb24ge1xyXG4gIGZvbnQtc2l6ZTogMjBweDtcclxuICBmb250LXdlaWdodDogNTAwO1xyXG4gIGxldHRlci1zcGFjaW5nOiAtMC40NXB4O1xyXG4gIGNvbG9yOiAjZmZmZmZmO1xyXG59XHJcblxyXG4uYnJhbmQtaGVyb19faW1hZ2Uge1xyXG4gIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oNi41KTtcclxuICB6LWluZGV4OiA1O1xyXG59XHJcbiIsIlxyXG4ucHJvZHVjdC1kZXRhaWxzIHtcclxuICBwYWRkaW5nLXRvcDogODBweDtcclxuICBwYWRkaW5nLWJvdHRvbTogMTAwcHg7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICAvKiBQZXJtYWxpbmsgLSB1c2UgdG8gZWRpdCBhbmQgc2hhcmUgdGhpcyBncmFkaWVudDogaHR0cHM6Ly9jb2xvcnppbGxhLmNvbS9ncmFkaWVudC1lZGl0b3IvIzJjMjkzNCs3LDJjMjkzNCsyNyw2YjVmNzcrMTAwICovXHJcbiAgYmFja2dyb3VuZDogcmdiKDQ0LDQxLDUyKTsgLyogT2xkIGJyb3dzZXJzICovXHJcbiAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQodG9wLCAgJGRhcmsgNyUsICRkYXJrIDI3JSwgcmdiYSgxMDcsOTUsMTE5LDEpIDEwMCUpOyAvKiBGRjMuNi0xNSAqL1xyXG4gIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgICRkYXJrIDclLCRkYXJrIDI3JSxyZ2JhKDEwNyw5NSwxMTksMSkgMTAwJSk7IC8qIENocm9tZTEwLTI1LFNhZmFyaTUuMS02ICovXHJcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgICRkYXJrIDclLCRkYXJrIDI3JSxyZ2JhKDEwNyw5NSwxMTksMSkgMTAwJSk7IC8qIFczQywgSUUxMCssIEZGMTYrLCBDaHJvbWUyNissIE9wZXJhMTIrLCBTYWZhcmk3KyAqL1xyXG4gIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KCBzdGFydENvbG9yc3RyPScjeyRkYXJrfScsIGVuZENvbG9yc3RyPScjNmI1Zjc3JyxHcmFkaWVudFR5cGU9MCApOyAvKiBJRTYtOSAqL1xyXG5cclxuICBAaW5jbHVkZSBkaXZpZGVyLWVmZmVjdCgkaW52ZXJzZTogdHJ1ZSwgJHBvc2l0aW9uOiAnYm90dG9taW4nLCAkY29sb3I6ICd3aGl0ZScsICRpbnZlcnNlLXk6IHRydWUsICRzcGxpdC1wb3M6IDAuNywgJGhlaWdodDogMTAwcHgpO1xyXG4gIFxyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcclxuICAgIHBhZGRpbmctdG9wOiAxMHB4XHJcbiAgfVxyXG4gIFxyXG4gICYucHJvZHVjdC1kZXRhaWxzLS1saWdodCB7XHJcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZSAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgJi5wcm9kdWN0LWRldGFpbHMtLXRoZW1lZCB7XHJcbiAgICBwYWRkaW5nLXRvcDogMjgwcHg7XHJcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcclxuXHJcbiAgICAucHJvZHVjdC1kZXRhaWxzX19jb250YWluZXIge1xyXG4gICAgICB6LWluZGV4OiAxMDtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgfVxyXG4gICAgJjpiZWZvcmUge1xyXG4gICAgICBjb250ZW50OiAnJztcclxuICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xyXG5cclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICB0b3A6IDA7XHJcbiAgICAgIGxlZnQ6IDA7XHJcbiAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICBoZWlnaHQ6IDYwMHB4O1xyXG4gICAgfVxyXG4gICAgJjphZnRlciB7XHJcbiAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAvKiBQZXJtYWxpbmsgLSB1c2UgdG8gZWRpdCBhbmQgc2hhcmUgdGhpcyBncmFkaWVudDogaHR0cHM6Ly9jb2xvcnppbGxhLmNvbS9ncmFkaWVudC1lZGl0b3IvI2ZmZmZmZiswLGZmZmZmZisxMDAmMCswLDErMTAwICovXHJcbiAgICAgIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgIHJnYmEoMjU1LDI1NSwyNTUsMSkgMCUsIHJnYmEoMjU1LDI1NSwyNTUsMCkgMTAwJSk7IC8qIEZGMy42LTE1ICovXHJcbiAgICAgIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgIHJnYmEoMjU1LDI1NSwyNTUsMSkgMCUscmdiYSgyNTUsMjU1LDI1NSwwKSAxMDAlKTsgLyogQ2hyb21lMTAtMjUsU2FmYXJpNS4xLTYgKi9cclxuICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgIHJnYmEoMjU1LDI1NSwyNTUsMSkgMCUscmdiYSgyNTUsMjU1LDI1NSwwKSAxMDAlKTsgLyogVzNDLCBJRTEwKywgRkYxNissIENocm9tZTI2KywgT3BlcmExMissIFNhZmFyaTcrICovXHJcbiAgICAgIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KCBzdGFydENvbG9yc3RyPScjZmZmZmZmJywgZW5kQ29sb3JzdHI9JyMwMGZmZmZmZicsR3JhZGllbnRUeXBlPTAgKTsgLyogSUU2LTkgKi9cclxuXHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgdG9wOiAyMDBweDtcclxuICAgICAgbGVmdDogMDtcclxuICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgIGhlaWdodDogNDAwcHg7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4ucHJvZHVjdC1kZXRhaWxzX19jb250YWluZXIge1xyXG4gIEBpbmNsdWRlIGZsZXgtZ3JpZC1yb3coKTtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcblxyXG4gIC53b29jb21tZXJjZS1wcm9kdWN0LWdhbGxlcnkge1xyXG4gICAgQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbig2KTtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIFxyXG4gICAgXHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XHJcbiAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oMTIpO1xyXG4gICAgfVxyXG5cclxuICAgIC53b29jb21tZXJjZS1wcm9kdWN0LWdhbGxlcnlfX3RyaWdnZXIge1xyXG4gICAgICBmb250LXNpemU6IDBweDtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICB0b3A6IDEwcHg7XHJcbiAgICAgIGxlZnQ6IDI1cHg7XHJcbiAgICAgIHotaW5kZXg6IDY7XHJcblxyXG4gICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgQGluY2x1ZGUgaWNvbW9vbi1pY29uKCRpY29uLXpvb20pO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMjZweDtcclxuICAgICAgICBjb2xvcjogJGRhcms7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAud29vY29tbWVyY2UtcHJvZHVjdC1nYWxsZXJ5X19pbWFnZSAge1xyXG4gICAgICBib3JkZXItcmFkaXVzOiA0cHg7XHJcbiAgICAgIGltZyB7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xyXG4gICAgICAgIG1pbi13aWR0aDogMTAwJTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5mbGV4LWNvbnRyb2wtdGh1bWJzIHtcclxuICAgICAgQGluY2x1ZGUgZmxleC1ncmlkLXJvdygpO1xyXG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG4gICAgICBtYXJnaW4tdG9wOiAyMHB4O1xyXG5cclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAub3dsLW5hdiBidXR0b24ge1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgYm90dG9tOiAwO1xyXG4gICAgICAgIHdpZHRoOiAyMHB4O1xyXG4gICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuNCk7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xyXG5cclxuICAgICAgICAmOm5vdCguZGlzYWJsZWQpOmhvdmVyIHtcclxuICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC42KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYuZGlzYWJsZWQge1xyXG4gICAgICAgICAgb3BhY2l0eTogMC4zO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgc3BhbiB7XHJcbiAgICAgICAgICBmb250LXNpemU6IDIwcHg7XHJcbiAgICAgICAgICBjb2xvcjogd2hpdGU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLm93bC1uZXh0IHtcclxuICAgICAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgbGkge1xyXG4gICAgICAgIC8vIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oMywgMjBweCk7XHJcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG5cclxuICAgICAgICBpbWcge1xyXG4gICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XHJcblxyXG4gICAgICAgICAgJi5mbGV4LWFjdGl2ZSB7XHJcbiAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICRwcmltYXJ5O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmVudHJ5LXN1bW1hcnkge1xyXG4gICAgQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbig1LjUpO1xyXG5cclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcclxuICAgICAgQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbigxMik7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uZW50cnktc3VtbWFyeSB7XHJcbiAgLnByb2R1Y3RfYnJhbmRfbG9nbyB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xyXG4gICAgaW1nIHtcclxuICAgICAgd2lkdGg6IDMwMHB4O1xyXG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcclxuICAgICAgbWFyZ2luOiAyMHB4IDAgMTBweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC53b29jb21tZXJjZS1wcm9kdWN0LWdhbGxlcnkge1xyXG4gICAgcGFkZGluZy1sZWZ0OiAwcHg7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiAwcHg7XHJcbiAgfVxyXG5cclxuICAucHJvZHVjdF90aXRsZSB7XHJcbiAgICBmb250LXNpemU6IDUxcHg7XHJcbiAgICBmb250LXdlaWdodDogODAwO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xyXG4gICAgY29sb3I6IHdoaXRlO1xyXG5cclxuICAgIEBhdC1yb290IC5wcm9kdWN0LWRldGFpbHMtLWxpZ2h0ICYge1xyXG4gICAgICBjb2xvcjogJGRhcms7XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xyXG4gICAgICBmb250LXNpemU6IDQycHg7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAucHJvZHVjdF9zdWJ0aXRsZSB7XHJcbiAgICBmb250LXNpemU6IDMwcHg7XHJcbiAgICBjb2xvcjogdHJhbnNwYXJlbnRpemUoI2ZmZmZmZiwgMC41KTtcclxuICAgIFxyXG4gICAgQGF0LXJvb3QgLnByb2R1Y3QtZGV0YWlscy0tbGlnaHQgJiB7XHJcbiAgICAgIGNvbG9yOiB0cmFuc3BhcmVudGl6ZSgkZGFyaywgMC4zKTtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XHJcbiAgICAgIGZvbnQtc2l6ZTogMThweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5wcm9kdWN0X2NhdGVnb3J5IGEge1xyXG4gICAgZm9udC1zaXplOiAxOHB4O1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuODk7XHJcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuNDVweDtcclxuICAgIGNvbG9yOiAkcHJpbWFyeTtcclxuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgfVxyXG5cclxuICAucHJvZHVjdF9za3Uge1xyXG4gICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgbGluZS1oZWlnaHQ6IDIuNDM7XHJcbiAgICBjb2xvcjogdHJhbnNwYXJlbnRpemUoI2ZmZmZmZiwgMC43KTtcclxuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICBcclxuICAgIEBhdC1yb290IC5wcm9kdWN0LWRldGFpbHMtLWxpZ2h0ICYge1xyXG4gICAgICBjb2xvcjogdHJhbnNwYXJlbnRpemUoJGRhcmssIDAuNyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgLyogVGFicyAqL1xyXG5cclxuICAucHJvZHVjdC1pbmZvIHtcclxuICAgIHdpZHRoOiA0NzBweDtcclxuICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgIFxyXG4gICAgXHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgfVxyXG5cclxuICAucHJvZHVjdC1pbmZvX190YWJzIHtcclxuICAgIEBpbmNsdWRlIG1lbnUtYmFzZTtcclxuICAgIG1hcmdpbi10b3A6IDIwcHg7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdHJhbnNwYXJlbnRpemUoI2RkZTJlYiwgMC45KTtcclxuICAgIFxyXG4gICAgQGF0LXJvb3QgLnByb2R1Y3QtZGV0YWlscy0tbGlnaHQgJiB7XHJcbiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50aXplKCRkYXJrLCAwLjUpO1xyXG4gICAgfVxyXG5cclxuICAgIC50YWJzLXRpdGxlIHtcclxuICAgICAgYSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAyMnB4O1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnRpemUoI2ZmZmZmZiwgMC43KTtcclxuICAgICAgICBib3JkZXItYm90dG9tOiAzcHggc29saWQgdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiA1cHg7XHJcbiAgICAgICAgcGFkZGluZy1yaWdodDogNXB4O1xyXG4gICAgICAgIG1hcmdpbjogMCAyMHB4O1xyXG4gICAgICAgIFxyXG4gICAgICAgIEBhdC1yb290IC5wcm9kdWN0LWRldGFpbHMtLWxpZ2h0ICYge1xyXG4gICAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50aXplKCRkYXJrLCAwLjcpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBcclxuICAgICAgJjpmaXJzdC1jaGlsZCBhIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogMHB4O1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmLmlzLWFjdGl2ZSBhIHtcclxuICAgICAgICBjb2xvcjogd2hpdGU7XHJcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHByaW1hcnk7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgIEBhdC1yb290IC5wcm9kdWN0LWRldGFpbHMtLWxpZ2h0ICYge1xyXG4gICAgICAgICAgY29sb3I6ICRkYXJrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLnByb2R1Y3QtaW5mb19fY29udGVudCB7XHJcbiAgICBtYXJnaW4tdG9wOiAzMHB4O1xyXG5cclxuICAgIC50YWJzLXBhbmVsIHtcclxuICAgICAgZm9udC1zaXplOiAyMHB4O1xyXG4gICAgICBsaW5lLWhlaWdodDogMS41O1xyXG4gICAgICBjb2xvcjogd2hpdGU7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICBAYXQtcm9vdCAucHJvZHVjdC1kZXRhaWxzLS1saWdodCAmIHtcclxuICAgICAgICBjb2xvcjogJGRhcms7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHVsIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogMzBweDtcclxuICAgICAgICBsaSB7XHJcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBwIHtcclxuICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnRpemUod2hpdGUsIDAuNSk7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICBAYXQtcm9vdCAucHJvZHVjdC1kZXRhaWxzLS1saWdodCAmIHtcclxuICAgICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudGl6ZSgkZGFyaywgMC41KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICY6bm90KC5pcy1hY3RpdmUpIHtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAucHJpY2Uge1xyXG4gICAgZm9udC1zaXplOiAzNnB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjE3O1xyXG4gICAgY29sb3I6ICNmZmZmZmY7XHJcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcclxuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgXHJcbiAgICBAYXQtcm9vdCAucHJvZHVjdC1kZXRhaWxzLS1saWdodCAmIHtcclxuICAgICAgY29sb3I6ICRwcmltYXJ5O1xyXG4gICAgfVxyXG5cclxuICAgIGlucyB7XHJcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgIH1cclxuICAgIGRlbCB7XHJcbiAgICAgIGZvbnQtc2l6ZTogMjhweDtcclxuICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcclxuICAgICAgY29sb3I6ICNjM2NhZDc7XHJcbiAgICAgIG1hcmdpbjogMCAxMHB4O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmNhcnQge1xyXG4gICAgLnF1YW50aXR5IHtcclxuICAgICAgQGluY2x1ZGUgZmxleC1ncmlkLXJvdygpO1xyXG4gICAgICBtYXJnaW4tdG9wOiAxMHB4O1xyXG5cclxuICAgICAgbGFiZWwge1xyXG4gICAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oMTAwJSwgMCk7XHJcbiAgICAgICAgZm9udC1zaXplOiAxOHB4O1xyXG4gICAgICAgIGNvbG9yOiAjZmZmZmZmO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XHJcbiAgICAgICAgXHJcbiAgICAgICAgQGF0LXJvb3QgLnByb2R1Y3QtZGV0YWlscy0tbGlnaHQgJiB7XHJcbiAgICAgICAgICBjb2xvcjogJGRhcms7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAucXVhbnRpdHlfX2luY3JlbWVudDo6YmVmb3JlIHtcclxuICAgICAgICBAaW5jbHVkZSBpY29tb29uLWljb24oJGljb24tcGx1cyk7XHJcbiAgICAgIH1cclxuICAgICAgLnF1YW50aXR5X19kZWNyZW1lbnQ6OmJlZm9yZSB7XHJcbiAgICAgICAgQGluY2x1ZGUgaWNvbW9vbi1pY29uKCRpY29uLW1pbnVzKTtcclxuICAgICAgfVxyXG4gICAgICAucXVhbnRpdHlfX2luY3JlbWVudCwgLnF1YW50aXR5X19kZWNyZW1lbnQge1xyXG4gICAgICAgIHdpZHRoOiA0MnB4O1xyXG4gICAgICAgIGhlaWdodDogNDJweDtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XHJcbiAgICAgICAgYm9yZGVyOiBzb2xpZCAxcHggI2QzZGVlMztcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICAgICAgICAmOjpiZWZvcmUge1xyXG4gICAgICAgICAgZm9udC1zaXplOiAyNHB4O1xyXG4gICAgICAgICAgY29sb3I6ICNkM2RlZTM7XHJcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICB0b3A6IDUwJTtcclxuICAgICAgICAgIGxlZnQ6IDUwJTtcclxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgLnF1YW50aXR5X19saW1pdGVkIHtcclxuICAgICAgICBmb250LXNpemU6IDIycHg7XHJcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMjJweDtcclxuICAgICAgICBjb2xvcjogIzFiZTZlZTtcclxuICAgICAgICBoZWlnaHQ6IDQycHg7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMjBweDtcclxuICAgICAgICBib3JkZXI6IHNvbGlkIDEuNXB4ICMxYmU2ZWU7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDQwcHg7XHJcbiAgICAgICAgcGFkZGluZzogMCAzMHB4O1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xyXG4gICAgICAgICAgICBcclxuICAgICAgICBAYXQtcm9vdCAucHJvZHVjdC1kZXRhaWxzLS1saWdodCAmIHtcclxuICAgICAgICAgIGNvbG9yOiAkZGFyaztcclxuICAgICAgICAgIGJvcmRlcjogc29saWQgMS41cHggJGRhcms7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBpbnB1dCB7XHJcbiAgICAgICAgZm9udC1zaXplOiAyNHB4O1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjMzO1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcclxuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xyXG4gICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgICBib3gtc2hhZG93OiBub25lO1xyXG4gICAgICAgIGN1cnNvcjogdGV4dDtcclxuICAgICAgICB3aWR0aDogNjBweDtcclxuICAgICAgICBcclxuICAgICAgICBAYXQtcm9vdCAucHJvZHVjdC1kZXRhaWxzLS1saWdodCAmIHtcclxuICAgICAgICAgIGNvbG9yOiAkZGFyaztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24ge1xyXG4gICAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5idXR0b24ge1xyXG4gICAgICBAaW5jbHVkZSBidXR0b24tYm9yZGVyLWdyYWRpZW50KCk7XHJcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1kYXJrKCk7XHJcbiAgICAgIG1hcmdpbi10b3A6IDIwcHg7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG5cclxuXHJcbi5zZWN0aW9uLnVwc2VsbHMge1xyXG5cclxuICBwYWRkaW5nLWJvdHRvbTogNjBweDtcclxuXHJcbiAgJiA+ICo6bGFzdC1jaGlsZCB7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMHB4O1xyXG4gIH1cclxuXHJcbiAgLnVwc2VsbHNfYnJhbmRfbG9nbyB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB3aWR0aDogMjAwcHg7XHJcbiAgICB0b3A6IDIwcHg7XHJcbiAgICBsZWZ0OiA1MCU7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcclxuICB9XHJcblxyXG4gIC8vICYgfiAubmV3c2xldHRlci1zZWN0aW9uIHtcclxuICAvLyAgIHBhZGRpbmctdG9wOiA2MHB4O1xyXG4gIC8vICAgbWFyZ2luLXRvcDogLTYwcHg7XHJcbiAgLy8gfSBcclxuXHJcbiAgXHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xyXG4gICAgLnByb2R1Y3QtY2FyZC1zbWFsbF9fYWRkIHtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxuICB9XHJcbiAgXHJcblxyXG4gIC5zZWN0aW9uX19ib2R5IHtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIH1cclxuXHJcbiAgJi51cHNlbGxzLS10aGVtZWQge1xyXG5cclxuICAgIHBhZGRpbmctdG9wOiA4MHB4O1xyXG4gICAgcGFkZGluZy1ib3R0b206IDEyMHB4O1xyXG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcclxuXHJcbiAgICBAaW5jbHVkZSBkaXZpZGVyLWVmZmVjdCgkaW52ZXJzZTogdHJ1ZSwgJHBvc2l0aW9uOiAndG9waW4nLCAkY29sb3I6ICd3aGl0ZScsICRpbnZlcnNlLXg6IHRydWUpO1xyXG4gICAgQGluY2x1ZGUgZGl2aWRlci1lZmZlY3QoJGludmVyc2U6IHRydWUsICRwb3NpdGlvbjogJ2JvdHRvbWluJywgJGNvbG9yOiAkZGFyaywgJGludmVyc2UteTogdHJ1ZSwgJHNwbGl0LXBvczogMC43LCAkaGVpZ2h0OiAxMDBweCk7XHJcbiAgICBcclxuICAgIC5zZWN0aW9uX190aXRsZSB7XHJcbiAgICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgIH1cclxuXHJcbiAgICAmIH4gLm5ld3NsZXR0ZXItc2VjdGlvbiB7XHJcbiAgICAgIEBleHRlbmQgLm5ld3NsZXR0ZXItc2VjdGlvbi0tZGFyaztcclxuICAgICAgcGFkZGluZy10b3A6IDBweDtcclxuICAgICAgbWFyZ2luLXRvcDogMHB4O1xyXG4gICAgICAubmV3c2xldHRlci1zZWN0aW9uX19jb250YWluZXIge1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiAyMHB4O1xyXG4gICAgICB9XHJcbiAgICB9IFxyXG4gIH1cclxuXHJcbiAgLnNlY3Rpb25fX3RpdGxlIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDUwcHg7XHJcbiAgfVxyXG59XHJcblxyXG4ucHN3cCB7XHJcbiAgei1pbmRleDogMTAwMDA7XHJcblxyXG4gIC5wc3dwX19jYXB0aW9uIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG59IiwiXHJcbi53b29jb21tZXJjZS1jYXJ0IHtcclxuXHJcbiAgLmNhcnQtZW1wdHkud29vY29tbWVyY2UtaW5mbyB7XHJcbiAgICBjb2xvcjogYmxhY2s7XHJcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgbWFyZ2luLXRvcDogMzBweDtcclxuXHJcbiAgICAmICsgLnJldHVybi10by1zaG9wIHtcclxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAxNTBweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5lbnRyeS1jb250ZW50IHtcclxuICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oMTIpO1xyXG4gIH1cclxuXHJcbiAgLndvb2NvbW1lcmNlLWNhcnQtZm9ybSB7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogNDBweDtcclxuICB9XHJcblxyXG4gIC53b29jb21tZXJjZS1jYXJ0LWZvcm1fX2NvbnRlbnRzIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG5cclxuICAgIHRoZWFkIHtcclxuICAgICAgdHIge1xyXG4gICAgICAgIHRoIHtcclxuICAgICAgICAgIGZvbnQtZmFtaWx5OiBJbnRlcjtcclxuICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICAgICAgICBsaW5lLWhlaWdodDogMS44OTtcclxuICAgICAgICAgIHBhZGRpbmc6IDIwcHg7XHJcbiAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG5cclxuICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICAgICAgICBjb2xvcjogIzA4MTMxZjtcclxuXHJcbiAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcclxuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwcHg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiA2MHB4O1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcclxuICAgICAgXHJcbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcclxuICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGJvZHkge1xyXG4gICAgICB0ciB7XHJcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNFQ0VDRUM7XHJcblxyXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGQge1xyXG4gICAgICAgICAgcGFkZGluZzogMjBweDtcclxuXHJcbiAgICAgICAgICBmb250LXNpemU6IDE4cHg7XHJcbiAgICAgICAgICBsaW5lLWhlaWdodDogMjtcclxuICAgICAgICAgIGNvbG9yOiAjMDgxMzFmO1xyXG5cclxuICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoNzY4cHggZG93bil7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDEwcHg7XHJcblxyXG4gICAgICAgICAgICA+ICoge1xyXG4gICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgIGNsZWFyOiBib3RoO1xyXG4gICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiA2MHB4O1xyXG5cclxuICAgICAgICAgICAgJiwgPiAqIHtcclxuICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xyXG4gICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAmLnByb2R1Y3QtcmVtb3ZlIHtcclxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCg3NjhweCB1cCl7XHJcbiAgICAgICAgICAgICAgd2lkdGg6IDIwcHg7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGEge1xyXG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMzVweDtcclxuICAgICAgICAgICAgICBjb2xvcjogI2QzZGVlMztcclxuICAgICAgICAgICAgICBmb250LXdlaWdodDogMzAwO1xyXG4gICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICNlZTFiYjc7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgJi5wcm9kdWN0LXF1YW50aXR5IHtcclxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCg3NjhweCB1cCl7XHJcbiAgICAgICAgICAgICAgd2lkdGg6IDEyJTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAuc2NyZWVuLXJlYWRlci10ZXh0IHtcclxuICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlucHV0IHtcclxuICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwcHg7XHJcbiAgICAgICAgICAgICAgY29sb3I6ICMwODEzMWY7XHJcbiAgICAgICAgICAgICAgbWF4LXdpZHRoOiA4MHB4O1xyXG4gICAgICAgICAgICAgIG1pbi13aWR0aDogNjBweDtcclxuICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiA1cHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAmLnByb2R1Y3QtdGh1bWJuYWlsIHtcclxuICAgICAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoNzY4cHggdXApe1xyXG4gICAgICAgICAgICAgIHdpZHRoOiAxMzZweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpbWcge1xyXG4gICAgICAgICAgICAgIHdpZHRoOiA5NnB4O1xyXG4gICAgICAgICAgICAgIGhlaWdodDogYXV0bztcclxuICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAmLnByb2R1Y3QtcHJpY2Uge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KDc2OHB4IHVwKXtcclxuICAgICAgICAgICAgICB3aWR0aDogMTIlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgJi5wcm9kdWN0LXN1YnRvdGFsIHtcclxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCg3NjhweCB1cCl7XHJcbiAgICAgICAgICAgICAgd2lkdGg6IDEyJTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICYucHJvZHVjdC1uYW1lIHtcclxuICAgICAgICAgICAgYSB7XHJcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAyMnB4O1xyXG4gICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY0O1xyXG4gICAgICAgICAgICAgIGNvbG9yOiAjMDgxMzFmO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAudmFyaWF0aW9uIHtcclxuICAgICAgICAgICAgICBtYXJnaW46IDA7XHJcblxyXG4gICAgICAgICAgICAgIGR0IHsgZGlzcGxheTogbm9uZSB9XHJcblxyXG4gICAgICAgICAgICAgIHAgeyBtYXJnaW46IDA7IH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLndvdy1tb2RlbCB7XHJcbiAgICAgICAgICAgICAgY29sb3I6IHJnYmEoOCwgMTksIDMxLCAwLjUpO1xyXG5cclxuICAgICAgICAgICAgICBzdHJvbmd7IGNvbG9yOiAjMDgxMzFmOyBmb250LXdlaWdodDogbm9ybWFsOyB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTsgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgICAgLmFjdGlvbnMge1xyXG5cclxuICAgICAgICAgIHBhZGRpbmctbGVmdDogMHB4O1xyXG4gICAgICAgICAgcGFkZGluZy10b3A6IDM1cHg7XHJcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwcHggIWltcG9ydGFudDtcclxuXHJcbiAgICAgICAgICAuYWN0aW9ucy1idXR0b25zIHtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgZG93bikge1xyXG4gICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xyXG5cclxuICAgICAgICAgICAgICA+ICoge1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMHB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDBweCAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgID4gLmJ1dHRvbiB7XHJcbiAgICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93KCk7XHJcbiAgICAgICAgICAgICAgQGV4dGVuZCAuYnV0dG9uLS1tZWRpdW07XHJcbiAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuXHJcbiAgICAgICAgICAgICAgJi5jaGVja291dC1idXR0b24ge1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLXByaW1hcnkoKTtcclxuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDE1cHg7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgLmNvdXBvbiB7XHJcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xyXG5cclxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgd2lkdGg6IDQ1MHB4O1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgZG93bikge1xyXG4gICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGxhYmVsIHtcclxuICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpbnB1dCB7XHJcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAyMnB4O1xyXG4gICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ1O1xyXG4gICAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC41cHg7XHJcbiAgICAgICAgICAgICAgY29sb3I6ICMwODEzMWY7XHJcbiAgICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcclxuICAgICAgICAgICAgICBoZWlnaHQ6IDU0cHg7XHJcbiAgICAgICAgICAgICAgYm9yZGVyOiBzb2xpZCAxcHggI2QzZGVlMztcclxuICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XHJcbiAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLmJ1dHRvbiB7XHJcbiAgICAgICAgICAgICAgQGV4dGVuZCAuYnV0dG9uLS1tZWRpdW07XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDhlbSkge1xyXG4gICAgdGFibGUuc2hvcF90YWJsZV9yZXNwb25zaXZlIHRyIHRkIHtcclxuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcclxuXHJcbiAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICBsaW5lLWhlaWdodDogMWVtO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcclxuICAgICAgICBjb2xvcjogIzdlN2U3ZTsgXHJcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmLnByb2R1Y3QtdGh1bWJuYWlsIGltZyB7XHJcbiAgICAgICAgd2lkdGg6IDkwcHg7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYucHJvZHVjdC1uYW1lIHtcclxuICAgICAgICAmLCAqIHtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMThweCAhaW1wb3J0YW50O1xyXG4gICAgICAgIH1cclxuICAgICAgICBhIHtcclxuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjFlbTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLndvdy1tb2RlbCB7XHJcbiAgICAgICAgICA+IHNwYW4ge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgXHJcbiAgICAgID4gKjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgICAgbWluLWhlaWdodDogNTRweDtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5jYXJ0LWNvbGxhdGVyYWxzIHtcclxuICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1yb3coKTtcclxuICAgIGJhY2tncm91bmQ6ICNmM2YzZjM7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBwYWRkaW5nLXRvcDogNzBweDtcclxuICAgIHBhZGRpbmctYm90dG9tOiA4MHB4O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogLTUwcHg7XHJcblxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xyXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIH1cclxuXHJcbiAgICAuY3Jvc3Mtc2VsbHMge1xyXG4gICAgICBAaW5jbHVkZSBmbGV4LWdyaWQtcm93KCk7XHJcbiAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oNik7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiBpbml0aWFsO1xyXG5cclxuICAgICAgPiBoMiB7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIH1cclxuICAgICAgXHJcbiAgICAgIFxyXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XHJcbiAgICAgICAgQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbigxMik7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5jcm9zcy1zZWxsc19fY29sdW1uIHtcclxuICAgICAgICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDYpO1xyXG4gICAgICB9XHJcbiAgICAgIC5wcm9kdWN0cy5jb2x1bW5zLTIge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgbWFyZ2luOiAwcHg7XHJcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcclxuXHJcbiAgICAgICAgLnByb2R1Y3Qge1xyXG4gICAgICAgICAgQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbig2KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuY2FydF90b3RhbHMge1xyXG4gICAgICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDQuNSk7XHJcbiAgICAgIFxyXG4gICAgICBcclxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xyXG4gICAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oMTIpO1xyXG4gICAgICAgIG1heC13aWR0aDogNTAwcHg7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC53Yy1wcm9jZWVkLXRvLWNoZWNrb3V0IHtcclxuICAgICAgICBtYXJnaW4tdG9wOiA1MHB4O1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHJcbiAgICAgICAgLndjcHBlYy1jaGVja291dC1idXR0b25zX19zZXBhcmF0b3Ige1xyXG4gICAgICAgICAgbWFyZ2luOiAxMHB4IDA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuYnV0dG9uIHtcclxuICAgICAgICAgIEBleHRlbmQgLmJ1dHRvbi0tbGFyZ2U7XHJcbiAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAuc2hvcF90YWJsZSB7XHJcbiAgICAgICAgdGJvZHkge1xyXG4gICAgICAgICAgdHIge1xyXG4gICAgICAgICAgICB0ZCwgdGgge1xyXG4gICAgICAgICAgICAgIHBhZGRpbmc6IDBweDtcclxuICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogNHB4O1xyXG4gICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiA0cHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGQge1xyXG4gICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmNyb3NzLXNlbGxzID4gaDIsIC5jYXJ0X3RvdGFscyA+IGgyIHtcclxuICAgICAgZm9udC1zaXplOiAyOHB4O1xyXG4gICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcclxuICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjVweDtcclxuICAgICAgY29sb3I6ICMwODEzMWY7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgJjpiZWZvcmUsICY6YWZ0ZXIge1xyXG4gICAgICBjb250ZW50OiAnJztcclxuICAgICAgYmFja2dyb3VuZDogI2YzZjNmMztcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICB0b3A6IDBweDtcclxuICAgICAgYm90dG9tOiAwcHg7XHJcbiAgICAgIHdpZHRoOiBjYWxjKCAoIDEwMHZ3IC0gMTAwJSApIC8gMiApO1xyXG4gICAgfVxyXG4gICAgJjpiZWZvcmUge1xyXG4gICAgICBsZWZ0OiBjYWxjKCAoIDEwMHZ3IC0gMTAwJSApIC8gLTIgKTtcclxuICAgIH1cclxuICAgICY6YWZ0ZXIge1xyXG4gICAgICByaWdodDogY2FsYyggKCAxMDB2dyAtIDEwMCUgKSAvIC0yICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufSIsIlxyXG4udGFicy1jYXJvdXNlbCB7XHJcblxyXG4gIHdpZHRoOiAxMDAlO1xyXG5cclxuICAub3dsLW5hdiB7XHJcbiAgICAub3dsLXByZXYsIC5vd2wtbmV4dCB7XHJcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICB0b3A6IDQ1JTtcclxuXHJcbiAgICAgICYub3dsLXByZXYge1xyXG4gICAgICAgIGxlZnQ6IDEwcHg7XHJcblxyXG4gICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICAgIEBpbmNsdWRlIGljb21vb24taWNvbigkaWNvbi1hcnJvd19yaWdodCk7XHJcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgtMSk7XHJcbiAgICAgICAgICBjb2xvcjogIzJjMjkzNDtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogNTBweDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgJi5vd2wtbmV4dCB7XHJcbiAgICAgICAgcmlnaHQ6IDEwcHg7XHJcbiAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgQGluY2x1ZGUgaWNvbW9vbi1pY29uKCRpY29uLWFycm93X3JpZ2h0KTtcclxuICAgICAgICAgIGNvbG9yOiAjMmMyOTM0O1xyXG4gICAgICAgICAgZm9udC1zaXplOiA1MHB4O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBcclxufVxyXG5cclxuLnRhYnMtY2Fyb3VzZWxfX3RhYnMge1xyXG4gIEBpbmNsdWRlIG1lbnUtYmFzZTtcclxuICB3aWR0aDogYXV0bztcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICBwYWRkaW5nOiAxNXB4IDA7XHJcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkZGUyZWI7XHJcbiAgbWFyZ2luOiAwIDEwMHB4O1xyXG59XHJcblxyXG4udGFicy1jYXJvdXNlbF9fdGFiIHtcclxuICBmb250LXNpemU6IDIycHg7XHJcbiAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgY29sb3I6IHRyYW5zcGFyZW50aXplKCMyYzI5MzQsIDAuNSk7XHJcbiAgbWFyZ2luOiAwIDQwcHg7XHJcbiAgcGFkZGluZzogMTVweCAwO1xyXG4gIGJvcmRlci1ib3R0b206IDNweCBzb2xpZCB0cmFuc3BhcmVudDtcclxuICBsaW5lLWhlaWdodDogMWVtO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuXHJcbiAgJi5hY3RpdmUge1xyXG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHByaW1hcnk7XHJcbiAgfVxyXG59XHJcblxyXG4udGFicy1jYXJvdXNlbF9faXRlbXMge1xyXG4gIC50YWJzLWNhcm91c2VsX19pdGVtIHtcclxuICAgIC5zZWN0aW9uIHtcclxuICAgICAgbWFyZ2luOiAwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgLnRleHQtaW1hZ2VfX2ltYWdlIHtcclxuICAgICAgdHJhbnNmb3JtOiBpbml0aWFsO1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgLnNlY3Rpb25fX2JvZHkge1xyXG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgfVxyXG5cclxuICAgIC50ZXh0LWltYWdlX190aXRsZSB7XHJcbiAgICAgIHdpZHRoOiA4MCU7XHJcbiAgICAgIGZvbnQtc2l6ZTogMjhweDtcclxuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcclxuICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjVweDtcclxuICAgIH1cclxuXHJcbiAgICAudGV4dC1pbWFnZV9fY29udGVudCB7XHJcbiAgICAgIHdpZHRoOiA5MCU7XHJcbiAgICAgIGZvbnQtc2l6ZTogMjBweDtcclxuICAgICAgbGluZS1oZWlnaHQ6IDEuNztcclxuICAgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcclxuICAgICAgY29sb3I6IHRyYW5zcGFyZW50aXplKCMwODEzMWYsIDAuNSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi50ZXh0LWltYWdlIHtcclxuICAuc2VjdGlvbl9fYm9keSB7XHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIGRvd24pIHtcclxuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIH1cclxuICAgIFxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBkb3duKSB7XHJcbiAgICAgIC8vIFJldmVyc2Ugc28gaW1hZ2UgY29tZXMgZmlyc3QgYW5kIHRoZW4gdGhlIGNvbnRlbnRcclxuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xyXG4gICAgICBcclxuICAgICAgLnNlY3Rpb25fX2NvbHVtbjpudGgtY2hpbGQoMSkgfiAuc2VjdGlvbl9fY29sdW1uIHtcclxuICAgICAgICBtYXJnaW4tdG9wOiAwcHg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgLnNlY3Rpb25fX3RpdGxlIHtcclxuICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oMTIpO1xyXG4gICAgZm9udC1zaXplOiA0MnB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICBsaW5lLWhlaWdodDogMS4xNztcclxuICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcblxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gdXApIHtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi50ZXh0LWltYWdlX190aXRsZSB7XHJcbiAgZm9udC1zaXplOiA1MHB4O1xyXG4gIGZvbnQtd2VpZ2h0OiA4MDA7XHJcbiAgbGluZS1oZWlnaHQ6IDEuMTY7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjVweDtcclxuICBjb2xvcjogJGRhcms7XHJcbiAgbWFyZ2luLWJvdHRvbTogMzBweDtcclxuICB3aWR0aDogMTEwJTtcclxuICBtYXJnaW4tdG9wOiA1MHB4O1xyXG5cclxuICBAYXQtcm9vdCAuc2VjdGlvbi0tZGFyayAmIHtcclxuICAgIGNvbG9yOiB3aGl0ZTtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgZG93bikge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICB9XHJcbn1cclxuXHJcbi50ZXh0LWltYWdlX19jb250ZW50IHtcclxuICA+ICo6Zmlyc3QtY2hpbGQge1xyXG4gICAgbWFyZ2luLXRvcDogMHB4O1xyXG4gIH1cclxuICBcclxuICBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHtcclxuICAgIGZvbnQtd2VpZ2h0OiA4MDA7XHJcbiAgICBsaW5lLWhlaWdodDogMS4xNjtcclxuICAgIGxldHRlci1zcGFjaW5nOiAtMC41cHg7XHJcbiAgICBjb2xvcjogJGRhcms7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBtYXJnaW4tdG9wOiA1MHB4O1xyXG5cclxuICAgIEBhdC1yb290IC5zZWN0aW9uLS1kYXJrICYge1xyXG4gICAgICBjb2xvcjogd2hpdGU7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4udGV4dC1pbWFnZV9fY29udGVudCB7XHJcbiAgZm9udC1zaXplOiAyMnB4O1xyXG4gIGxpbmUtaGVpZ2h0OiAxLjY0O1xyXG4gIGNvbG9yOiB0cmFuc3BhcmVudGl6ZSgkZGFyaywgMC41KTtcclxuICB3aWR0aDogODAlO1xyXG5cclxuICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIGRvd24pIHtcclxuICAgIHdpZHRoOiA5MCU7XHJcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gIH1cclxuXHJcbiAgLmJ1dHRvbiB7XHJcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xyXG4gICAgQGluY2x1ZGUgYnV0dG9uLWJvcmRlci1ncmFkaWVudCgpO1xyXG4gICAgQGluY2x1ZGUgYnV0dG9uLWRhcmsoKTtcclxuICB9XHJcbiAgXHJcbiAgQGF0LXJvb3QgLnNlY3Rpb24tLWRhcmsgJiB7XHJcbiAgICBjb2xvcjogdHJhbnNwYXJlbnRpemUod2hpdGUsIDAuNSk7XHJcbiAgICBcclxuICAgIC5idXR0b24ge1xyXG4gICAgICBAaW5jbHVkZSBidXR0b24tYm9yZGVyLWdyYWRpZW50KCk7XHJcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi13aGl0ZSgpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLnRleHQtaW1hZ2VfX2ltYWdlIHtcclxuICBhbGlnbi1zZWxmOiBzZWxmLXN0YXJ0O1xyXG5cclxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCkge1xyXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjE1KTtcclxuICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcclxuICAgIG1hcmdpbi1ib3R0b206IDcwcHg7XHJcbiAgICBcclxuICB9XHJcblxyXG4gIEBhdC1yb290IC5zZWN0aW9uLS1yZXZlcnNlICYge1xyXG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMTAwJSAwO1xyXG4gIH1cclxufVxyXG4iLCJcclxuLm5ld3NsZXR0ZXItc2VjdGlvbiB7XHJcbiAgQGluY2x1ZGUgc2l0ZS1ncmFkaWVudCgpO1xyXG5cclxuICAmLm5ld3NsZXR0ZXItc2VjdGlvbi0tZGFyayB7XHJcbiAgICBiYWNrZ3JvdW5kOiAkZGFyaztcclxuICB9XHJcbn1cclxuXHJcbi5uZXdzbGV0dGVyLXNlY3Rpb25fX2NvbnRhaW5lciB7XHJcbiAgQGluY2x1ZGUgZmxleC1ncmlkLXJvdygpO1xyXG4gIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oMTIpO1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBwYWRkaW5nLXRvcDogNDBweDtcclxuICBwYWRkaW5nLWJvdHRvbTogNDBweDtcclxuICBjb2xvcjogI2ZmZmZmZjtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn1cclxuXHJcbi5uZXdzbGV0dGVyLXNlY3Rpb25fX3RpdGxlIHtcclxuICBmb250LXNpemU6IDQ4cHg7XHJcbiAgZm9udC13ZWlnaHQ6IDgwMDtcclxuICBsZXR0ZXItc3BhY2luZzogLTAuNXB4O1xyXG4gIG1hcmdpbi1ib3R0b206IDBweDtcclxuXHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xyXG4gICAgZm9udC1zaXplOiA0MHB4O1xyXG4gIH1cclxuICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIGRvd24pIHtcclxuICAgIGZvbnQtc2l6ZTogMzZweDtcclxuICB9XHJcbn1cclxuXHJcbi5uZXdzbGV0dGVyLXNlY3Rpb25fX2Rlc2NyaXB0aW9uIHtcclxuICBvcGFjaXR5OiAwLjU7XHJcbiAgZm9udC1zaXplOiAxNnB4O1xyXG4gIG1hcmdpbi1ib3R0b206IDI0cHg7XHJcblxyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcclxuICAgIGZvbnQtc2l6ZTogMTZweDtcclxuICB9XHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBkb3duKSB7XHJcbiAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgfVxyXG59XHJcblxyXG4ubmV3c2xldHRlci1zZWN0aW9uX19mb3JtIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIHdpZHRoOiA2MDBweDsgXHJcbiAgbWF4LXdpZHRoOiAxMDAlO1xyXG5cclxuICAud3BjZjctZm9ybSAge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIC53cGNmNy1ub3QtdmFsaWQtdGlwIHtcclxuICAgICAgY29sb3I6IHdoaXRlO1xyXG4gICAgfVxyXG4gICAgLndwY2Y3LXJlc3BvbnNlLW91dHB1dCB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcclxuICAgIH1cclxuICAgIC53cGNmNy1mb3JtLWNvbnRyb2wtd3JhcCB7XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5uZXdzbGV0dGVyLXNlY3Rpb25fX2Zvcm0taW5wdXQsIC5uZXdzbGV0dGVyLXNlY3Rpb25fX2Zvcm0gLndwY2Y3LWZvcm0tY29udHJvbC13cmFwIGlucHV0IHtcclxuICBoZWlnaHQ6IDU0cHg7XHJcbiAgYm9yZGVyOiBzb2xpZCAxcHggJGRhcms7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcclxuICBwYWRkaW5nLWxlZnQ6IDIwcHg7XHJcbiAgYm9yZGVyLXJpZ2h0OiBub25lO1xyXG5cclxuICBmb250LXNpemU6IDIwcHg7XHJcbiAgY29sb3I6IHRyYW5zcGFyZW50aXplKCMwODEzMWYsIDAuMyk7XHJcblxyXG4gICY6OnBsYWNlaG9sZGVyIHtcclxuICAgIGNvbG9yOiB0cmFuc3BhcmVudGl6ZSgjMDgxMzFmLCAwLjcpO1xyXG4gIH1cclxuICBcclxuICAmOmZvY3VzLCAmOmFjdGl2ZSB7XHJcbiAgICBib3gtc2hhZG93OiBub25lO1xyXG4gICAgYm9yZGVyOiBzb2xpZCAxcHggJGRhcms7XHJcbiAgICBib3JkZXItcmlnaHQ6IG5vbmU7XHJcbiAgfVxyXG59XHJcblxyXG4ubmV3c2xldHRlci1zZWN0aW9uX19mb3JtLWJ1dHRvbiB7XHJcbiAgQGV4dGVuZCAuYnV0dG9uLS1tZWRpdW07XHJcbiAgQGluY2x1ZGUgYnV0dG9uLWRhcmsoKTtcclxuICBoZWlnaHQ6IDU0cHg7XHJcblxyXG4gIEBhdC1yb290IC5uZXdzbGV0dGVyLXNlY3Rpb24tLWRhcmsgJiB7XHJcbiAgICBAaW5jbHVkZSBidXR0b24tcHJpbWFyeSgpO1xyXG4gIH1cclxufVxyXG5cclxuLm5ld3NsZXR0ZXItc2VjdGlvbl9faGVscCB7XHJcbiAgb3BhY2l0eTogMC41O1xyXG4gIGZvbnQtc2l6ZTogMTZweDtcclxuICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gIFxyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcclxuICAgIGZvbnQtc2l6ZTogMTdweDtcclxuICB9XHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBkb3duKSB7XHJcbiAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgfVxyXG59XHJcbiIsIlxyXG4uY3VzdG9tZXItc2VydmljZSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YzZjNmMztcclxufVxyXG5cclxuLmN1c3RvbWVyLXNlcnZpY2VfX2NvbHVtbnMge1xyXG4gIEBpbmNsdWRlIGZsZXgtZ3JpZC1yb3coKTtcclxufVxyXG5cclxuLmN1c3RvbWVyLXNlcnZpY2VfX2NvbHVtbiB7XHJcbiAgQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbig2KTtcclxuXHJcbiAgXHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCg3NjhweCBkb3duKSB7XHJcbiAgICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDEyKTtcclxuICB9XHJcbn1cclxuXHJcbi5jdXN0b21lci1zZXJ2aWNlX19idXR0b25zIHtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgd2lkdGg6IDEwMCU7XHJcblxyXG4gIC5idXR0b24ge1xyXG4gICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdygpO1xyXG4gICAgQGV4dGVuZCAuYnV0dG9uLS1tZWRpdW07XHJcbiAgICBtYXJnaW46IDEwcHg7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLmN1c3RvbWVyLXNlcnZpY2UtaXRlbSB7XHJcbiAgcGFkZGluZy1sZWZ0OiAxMDBweDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgbWFyZ2luLWJvdHRvbTogNjBweDtcclxuXHJcbiAgJjo6YmVmb3JlIHtcclxuICAgIEBpbmNsdWRlIGljb21vb24taWNvbigkaWNvbi1zdGFyKTtcclxuICAgIGZvbnQtc2l6ZTogNzBweDtcclxuICAgIGNvbG9yOiAkZGFyaztcclxuXHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDA7XHJcbiAgICBsZWZ0OiAxNXB4O1xyXG4gIH1cclxufVxyXG5cclxuLmN1c3RvbWVyLXNlcnZpY2UtaXRlbV9fdGl0bGUge1xyXG4gIGZvbnQtc2l6ZTogMjRweDtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxuICBsZXR0ZXItc3BhY2luZzogLTAuNXB4O1xyXG4gIGNvbG9yOiAkZGFyaztcclxufVxyXG5cclxuLmN1c3RvbWVyLXNlcnZpY2UtaXRlbV9fZGVzYyB7XHJcbiAgZm9udC1zaXplOiAyMHB4O1xyXG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XHJcbiAgY29sb3I6IHRyYW5zcGFyZW50aXplKCRkYXJrLCAwLjUpO1xyXG59XHJcblxyXG4uY3VzdG9tZXItc2VydmljZS1pdGVtX19pbmZvIHtcclxuICBsaXN0LXN0eWxlOiBub25lO1xyXG4gIG1hcmdpbjogMHB4O1xyXG5cclxuICBsaSB7XHJcbiAgICBmb250LXNpemU6IDIwcHg7XHJcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuNXB4O1xyXG4gICAgY29sb3I6ICMwODEzMWY7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDQwcHg7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gICAgJjo6YmVmb3JlIHtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICB0b3A6IDUwJTtcclxuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xyXG4gICAgICBsZWZ0OiAwO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLmN1c3RvbWVyLXNlcnZpY2UtaXRlbV9fdGVsIHtcclxuICAmOjpiZWZvcmUge1xyXG4gICAgQGluY2x1ZGUgaWNvbW9vbi1pY29uKCRpY29uLXBob25lKTtcclxuICAgIGZvbnQtc2l6ZTogMjRweDtcclxuICB9XHJcbn1cclxuXHJcbi5jdXN0b21lci1zZXJ2aWNlLWl0ZW1fX2VtYWlsIHtcclxuICAmOjpiZWZvcmUge1xyXG4gICAgQGluY2x1ZGUgaWNvbW9vbi1pY29uKCRpY29uLWVtYWlsKTtcclxuICAgIGZvbnQtc2l6ZTogMjRweDtcclxuICB9XHJcbn1cclxuXHJcbiIsIlxyXG4ud29vY29tbWVyY2UtYWNjb3VudCB7XHJcblxyXG4gIC53b29jb21tZXJjZSB7XHJcbiAgICBAaW5jbHVkZSBmbGV4LWdyaWQtcm93KCk7XHJcbiAgfVxyXG5cclxuICAmOm5vdCgubG9nZ2VkLWluKSAud29vY29tbWVyY2Uge1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICB9XHJcblxyXG4gIC51LWNvbHVtbnMge1xyXG4gICAgPiBkaXYge1xyXG4gICAgICBtYXJnaW46IDAgMjBweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gID4gLndvb2NvbW1lcmNlLWZvcm0tbG9naW4ge1xyXG4gICAgd2lkdGg6IDUwMHB4O1xyXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgfVxyXG5cclxuICAud29vY29tbWVyY2UgPiBoMiB7XHJcbiAgICBmb250LXNpemU6IDI4cHg7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XHJcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuNXB4O1xyXG4gICAgY29sb3I6ICMwODEzMWY7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIH1cclxuXHJcbiAgLndvb2NvbW1lcmNlLU15QWNjb3VudC1uYXZpZ2F0aW9uIHtcclxuICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oMyk7XHJcblxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBkb3duKSB7XHJcbiAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oMTIpO1xyXG4gICAgfVxyXG5cclxuICAgIHVsIHtcclxuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcclxuICAgICAgbWFyZ2luOiAwO1xyXG5cclxuICAgICAgbGkge1xyXG4gICAgICAgICAgICBcclxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIGRvd24pIHtcclxuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGEge1xyXG4gICAgICAgICAgZm9udC1zaXplOiAyMnB4O1xyXG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICAgICAgICAgIGNvbG9yOiAkZGFyaztcclxuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICAgIHBhZGRpbmc6IDVweDtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIGRvd24pIHtcclxuICAgICAgICAgICAgcGFkZGluZzogMTBweDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYuaXMtYWN0aXZlIHtcclxuICAgICAgICAgIGEge1xyXG4gICAgICAgICAgICBjb2xvcjogJHByaW1hcnk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIC53b29jb21tZXJjZS1NeUFjY291bnQtY29udGVudCB7XHJcbiAgICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDkpOyBcclxuXHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIGRvd24pIHtcclxuICAgICAgQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbigxMik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuY29sMi1zZXQge1xyXG4gICAgXHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCkge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgfVxyXG5cclxuICAgID4gKiB7XHJcbiAgICAgIGZsZXg6IDE7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG5cclxuXHJcblxyXG4vKiogTG9naW4gKiovXHJcbi53Yy1hdXRoLWxvZ2luIHtcclxuICB3aWR0aDogNTAwcHg7XHJcbiAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gIG1hcmdpbjogMTAwcHggYXV0bztcclxufVxyXG5cclxuXHJcbi8vIC53b29jb21tZXJjZS1SZXNldFBhc3N3b3JkLmxvc3RfcmVzZXRfcGFzc3dvcmQge1xyXG4vLyAgIG1heC13aWR0aDogNDByZW07XHJcbi8vICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4vLyAgIG1hcmdpbi1ib3R0b206IDEwMHB4O1xyXG4vLyB9XHJcblxyXG4ud29vY29tbWVyY2UtbG9zdC1wYXNzd29yZCAud29vY29tbWVyY2Uge1xyXG4gIG1heC13aWR0aDogMTAwJTtcclxuICB3aWR0aDogNDByZW07XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIG1hcmdpbi1ib3R0b206IDEwMHB4O1xyXG5cclxuICAud29vY29tbWVyY2UtbWVzc2FnZSB7XHJcbiAgICBjb2xvcjogIzdkNGNkNjtcclxuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcclxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xyXG4gIH1cclxufSIsIlxyXG4uc2VjdGlvbiB7XHJcbiAgJi5zZWN0aW9uLS1kaXZpZGVyLWdyYWRpZW50LXRvcCB7XHJcbiAgICBAaW5jbHVkZSBkaXZpZGVyLWVmZmVjdCgkcG9zaXRpb246ICd0b3AnLCAgICAkY29sb3I6ICRkYXJrLCAkZG91YmxlOiB0cnVlLCAkY29sb3IxOiAkcHJpbWFyeSwgJGNvbG9yMjogJHNlY29uZGFyeSApO1xyXG4gICAgbWFyZ2luLXRvcDogODBweDtcclxuICB9XHJcbiAgJi5zZWN0aW9uLS1kaXZpZGVyLWdyYWRpZW50LWJvdHRvbSB7XHJcbiAgICBAaW5jbHVkZSBkaXZpZGVyLWVmZmVjdCgkcG9zaXRpb246ICdib3R0b20nLCAkY29sb3I6ICRkYXJrLCAkZG91YmxlOiB0cnVlLCAkY29sb3IyOiAkcHJpbWFyeSwgJGNvbG9yMTogJHNlY29uZGFyeSwgJGludmVyc2UteTogdHJ1ZSwgJGludmVyc2UteDogdHJ1ZSk7XHJcblxyXG4gICAgJiArIC5zZWN0aW9uIHtcclxuICAgICAgcGFkZGluZy10b3A6IDEwMHB4O1xyXG4gICAgfVxyXG4gIH1cclxuICBcclxuICAmLnNlY3Rpb24tLWhvbWVwYWdlMSB7XHJcbiAgICBiYWNrZ3JvdW5kOiAkZGFyaztcclxuICB9XHJcbiAgXHJcbiAgJi5zZWN0aW9uLS1ob21lcGFnZTIge1xyXG4gICAgYmFja2dyb3VuZDogdXJsKGh0dHBzOi8vcGljc3VtLnBob3Rvcy9pZC8yMDAvMTQwMC82MDApO1xyXG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcclxuICAgIEBpbmNsdWRlIGRpdmlkZXItZWZmZWN0KCRwb3NpdGlvbjogJ3RvcGluJywgJGNvbG9yOiAnd2hpdGUnLCAkaW52ZXJzZS15OiB0cnVlKTsgICAgXHJcbiAgfVxyXG4gIFxyXG4gICYuc2VjdGlvbi0tcHJvZHVjdHBhZ2Uge1xyXG4gICAgYmFja2dyb3VuZDogdXJsKGh0dHBzOi8vcGljc3VtLnBob3Rvcy9pZC8xNTgvMTQwMC82MDApO1xyXG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcclxuICAgIEBpbmNsdWRlIGRpdmlkZXItZWZmZWN0KCRpbnZlcnNlOiB0cnVlLCAkcG9zaXRpb246ICd0b3BpbicsICRjb2xvcjogJ3doaXRlJywgJGludmVyc2UteDogdHJ1ZSk7XHJcbiAgICBAaW5jbHVkZSBkaXZpZGVyLWVmZmVjdCgkaW52ZXJzZTogdHJ1ZSwgJHBvc2l0aW9uOiAnYm90dG9taW4nLCAkY29sb3I6ICd3aGl0ZScsICRpbnZlcnNlLXk6IHRydWUsICRzcGxpdC1wb3M6IDAuNywgJGhlaWdodDogMTMwcHgpO1xyXG4gIH1cclxufVxyXG5cclxuLmYtaXRlbS1wcmV2aWV3IHtcclxuICAuc2VjdGlvbiB7XHJcbiAgICBtaW4taGVpZ2h0OiAyMDBweDtcclxuICAgIG1hcmdpbjogMTAwcHggMDtcclxuICB9XHJcbn1cclxuIiwiXHJcbkBtaXhpbiB3b3ctZGl2aWRlcigkZWxlbTogJ2FmdGVyJywgJHRvcDogdHJ1ZSkge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgJjo6I3skZWxlbX0ge1xyXG4gICAgY29udGVudDogJyc7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy90aGVtZXMvd293L2RpdmlkZXItZG93bkAyeC5wbmcnKTtcclxuICAgIGJhY2tncm91bmQtc2l6ZTogMTQ0MHB4O1xyXG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wIGNlbnRlcjtcclxuICAgIGhlaWdodDogMzdweDtcclxuICAgIEBpZiAkZWxlbSA9PSAnYWZ0ZXInIHtcclxuICAgICAgYm90dG9tOiAtMzdweDtcclxuICAgICAgdHJhbnNmb3JtOiBzY2FsZVkoMSkgc2NhbGVYKDEpO1xyXG4gICAgfVxyXG4gICAgQGlmICRlbGVtID09ICdiZWZvcmUnIHtcclxuICAgICAgdG9wOiAtMzdweDtcclxuICAgICAgdHJhbnNmb3JtOiByb3RhdGVaKDE4MGRlZyk7XHJcbiAgICB9XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB6LWluZGV4OiAzMDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyoqIFdvVyBUaGVtZSAqKi9cclxuLndvdy10aGVtZSB7XHJcbiAgXHJcbiAgLyogQnJhbmQgaGVybyAqL1xyXG4gIC5icmFuZC1oZXJvIHtcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL3RoZW1lcy93b3cvYnJhbmQtaGVyby1iYWNrZ3JvdW5kQDJ4LmpwZycpICFpbXBvcnRhbnQ7XHJcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgY2VudGVyO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIGhlaWdodDogNjMwcHg7XHJcblxyXG4gICAgQGluY2x1ZGUgd293LWRpdmlkZXIoKTtcclxuXHJcbiAgICAuYnJhbmQtaGVyb19fY29udGVudCB7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICB9XHJcbiAgICAuYnJhbmQtaGVyb19fbG9nbyB7XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgbWF4LXdpZHRoOiA2MDBweDtcclxuICAgIH1cclxuICAgIC5icmFuZC1oZXJvX19pbWFnZSwgLmJyYW5kLWhlcm9fX2FjdGlvbiwgLmJyYW5kLWhlcm9fX2NvcHksIC5icmFuZC1oZXJvX190aXRsZSB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgJiArIC5zZWN0aW9uIHtcclxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWFnZXMvdGhlbWVzL3dvdy9iYWNrZ3JvdW5kQDJ4LmpwZycpO1xyXG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgY2VudGVyO1xyXG4gICAgICBwYWRkaW5nLXRvcDogMTAwcHg7XHJcbiAgICAgIFxyXG4gICAgICBAaW5jbHVkZSB3b3ctZGl2aWRlcigpO1xyXG4gICAgfVxyXG5cclxuICAgICYgKyAuc2VjdGlvbi5zZWN0aW9uLS1vZmZzZXQtbGFyZ2Uge1xyXG4gICAgICBtYXJnaW4tdG9wOiAwO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIC5uZXdzbGV0dGVyLXNlY3Rpb24ge1xyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWFnZXMvdGhlbWVzL3dvdy9tYWlsaW5nLWJhY2tncm91bmRAMnguanBnJykgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5wcm9kdWN0LWNhcmQtc21hbGxfX2FkZCAuYnV0dG9uOjpiZWZvcmUge1xyXG4gICAgYmFja2dyb3VuZDogI2ZiYmUwMCAhaW1wb3J0YW50O1xyXG4gICAgY29sb3I6IGJsYWNrICFpbXBvcnRhbnQ7XHJcbiAgICBmb250LXdlaWdodDogMzAwO1xyXG4gIH1cclxuXHJcbiAgLnByb2R1Y3QtY2FyZCB7XHJcblxyXG4gICAgLnByb2R1Y3QtY2FyZF9faGVhZCB7XHJcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAxOHB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42KTtcclxuICAgIH1cclxuXHJcbiAgICAuYnV0dG9uIHtcclxuICAgICAgYm9yZGVyOiAjNjAxNDBkO1xyXG4gICAgICBiYWNrZ3JvdW5kOiAjNjAxNDBkO1xyXG5cclxuICAgICAgZm9udC1zaXplOiAyMnB4O1xyXG4gICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMzJweDtcclxuICAgICAgY29sb3I6ICNmYmJlMDA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAucHJvZHVjdC1kZXRhaWxzIHtcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL3RoZW1lcy93b3cvYmFja2dyb3VuZEAyeC5qcGcnKSAhaW1wb3J0YW50O1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wIGNlbnRlciAhaW1wb3J0YW50O1xyXG4gICAgcGFkZGluZy10b3A6IDQ0MHB4O1xyXG4gICAgXHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XHJcbiAgICAgIHBhZGRpbmctdG9wOiBjYWxjKCB2YXIoLS1oZWFkZXItYmFja2dyb3VuZC1oZWlnaHQpICsgNDBweCApO1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIHdvdy1kaXZpZGVyKCk7XHJcbiAgICAmOjphZnRlciB7XHJcbiAgICAgIHRvcDogMzQwcHg7XHJcbiAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDEpIHNjYWxlWSgtMSkgcm90YXRlWigxODBkZWcpO1xyXG4gICAgICBib3R0b206IHVuc2V0O1xyXG4gICAgICBcclxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xyXG4gICAgICAgIHRvcDogdmFyKC0taGVhZGVyLWJhY2tncm91bmQtaGVpZ2h0KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICY6OmJlZm9yZSB7XHJcbiAgICAgIGhlaWdodDogMzQwcHg7XHJcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL3RoZW1lcy93b3cvaGVyby1iYWNrZ3JvdW5kQDJ4LmpwZycpICFpbXBvcnRhbnQ7XHJcblxyXG4gICAgICBcclxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xyXG4gICAgICAgIGhlaWdodDogdmFyKC0taGVhZGVyLWJhY2tncm91bmQtaGVpZ2h0KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5wcm9kdWN0X2JyYW5kX2xvZ28ge1xyXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgICAgICB3aWR0aDogMTUwcHg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuZW50cnktc3VtbWFyeSB7XHJcbiAgICAgIC5wcm9kdWN0X3RpdGxlIHtcclxuICAgICAgICBjb2xvcjogd2hpdGU7XHJcbiAgICAgIH1cclxuICAgICAgLnByb2R1Y3Rfc3VidGl0bGUge1xyXG4gICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudGl6ZSh3aGl0ZSwgMC4zKTtcclxuICAgICAgfVxyXG4gICAgICAucHJvZHVjdF9jYXRlZ29yeSBhIHtcclxuICAgICAgICBjb2xvcjogI2ZiYmUwMDtcclxuICAgICAgfVxyXG4gICAgICAucHJvZHVjdF9za3Uge1xyXG4gICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudGl6ZSh3aGl0ZSwgMC43KTtcclxuICAgICAgfVxyXG4gICAgICAucHJvZHVjdC1pbmZvX190YWJzIHtcclxuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudGl6ZSh3aGl0ZSwgMC41KTtcclxuICAgICAgfVxyXG4gICAgICAucHJvZHVjdC1pbmZvX190YWJzIC50YWJzLXRpdGxlIGEge1xyXG4gICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudGl6ZSh3aGl0ZSwgMC43KTtcclxuICAgICAgfVxyXG4gICAgICAucHJvZHVjdC1pbmZvX190YWJzIC50YWJzLXRpdGxlLmlzLWFjdGl2ZSBhIHtcclxuICAgICAgICBjb2xvcjogd2hpdGU7XHJcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogI2ZiYmUwMDtcclxuICAgICAgfVxyXG4gICAgICAucHJvZHVjdC1pbmZvX19jb250ZW50IC50YWJzLXBhbmVsIHtcclxuICAgICAgICBjb2xvcjogd2hpdGU7XHJcbiAgICAgIH1cclxuICAgICAgLnByb2R1Y3QtaW5mb19fY29udGVudCAudGFicy1wYW5lbCBwIHtcclxuICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnRpemUod2hpdGUsIDAuNSk7XHJcbiAgICAgIH1cclxuICAgICAgLnByaWNlIHtcclxuICAgICAgICBjb2xvcjogI2ZiYmUwMDtcclxuICAgICAgfVxyXG4gICAgICAuY2FydCAucXVhbnRpdHkgbGFiZWwge1xyXG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgICAgfVxyXG4gICAgICAuY2FydCAucXVhbnRpdHkgaW5wdXQge1xyXG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgICAgfVxyXG4gICAgICAuY2FydCAucXVhbnRpdHkgLnF1YW50aXR5X19saW1pdGVkIHtcclxuICAgICAgICBjb2xvcjogd2hpdGU7XHJcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB3aGl0ZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLmJ1dHRvbiB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzYwMTQwZDtcclxuICAgICAgICBmb250LXNpemU6IDIycHg7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICAgICAgY29sb3I6ICNmYmJlMDA7XHJcblxyXG4gICAgICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICBib3JkZXItY29sb3I6ICM2MDE0MGQgIWltcG9ydGFudDtcclxuICAgICAgICB9XHJcbiAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgYm9yZGVyOiAycHggc29saWQgI2ZiYmUwMDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICAuc2VjdGlvbi51cHNlbGxzIHsgXHJcblxyXG4gICAgJjo6YWZ0ZXIge1xyXG4gICAgICBjb250ZW50OiBub25lO1xyXG4gICAgfVxyXG4gICAgQGluY2x1ZGUgd293LWRpdmlkZXIoJ2JlZm9yZScpO1xyXG5cclxuICAgIHBhZGRpbmctYm90dG9tOiA2MHB4O1xyXG4gICAgcGFkZGluZy10b3A6IDMwcHg7XHJcbiAgICBcclxuICAgIC5zZWN0aW9uX190aXRsZSB7XHJcbiAgICAgIHRleHQtc2hhZG93OiAxcHggM3B4IDNweCByZ2JhKDAsIDAsIDAsIDAuNTgpO1xyXG4gICAgICBmb250LXNpemU6IDUxcHg7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjI1O1xyXG4gICAgICBsZXR0ZXItc3BhY2luZzogLTAuNXB4O1xyXG4gICAgICBjb2xvcjogI2ZmZmZmZjtcclxuICAgIH1cclxuXHJcbiAgICAudXBzZWxsc19icmFuZF9sb2dvIHtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICAubmV3c2xldHRlci1zZWN0aW9uIHtcclxuICAgIEBpbmNsdWRlIHdvdy1kaXZpZGVyKCk7XHJcbiAgICAmOjphZnRlciB7XHJcbiAgICAgIHRvcDogMDtcclxuICAgICAgYm90dG9tOiB1bnNldDtcclxuICAgIH1cclxuXHJcbiAgICBwYWRkaW5nLXRvcDogMHB4O1xyXG4gICAgbWFyZ2luLXRvcDogMHB4O1xyXG4gICAgLm5ld3NsZXR0ZXItc2VjdGlvbl9fY29udGFpbmVyIHtcclxuICAgICAgcGFkZGluZy10b3A6IDcwcHggIWltcG9ydGFudDtcclxuICAgIH1cclxuXHJcbiAgICAubmV3c2xldHRlci1zZWN0aW9uX19mb3JtLWJ1dHRvbiB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM2MDE0MGQ7XHJcbiAgICAgIGZvbnQtc2l6ZTogMjJweDtcclxuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICBjb2xvcjogI2ZiYmUwMDtcclxuICAgIH1cclxuICB9IFxyXG5cclxufVxyXG4vKiogV29XIFRoZW1lICoqLyJdfQ== */
