/**
 * Sherpa - CSS Implementation of Chalet Design Language
 * @version v0.0.20
 * @link https://gecgithub01.walmart.com/pages/nradfor/sherpa
 * @license ISC
 *
 * Built December 7th, 2015
 *
 * © 2015, Sam's West, Inc. All rights reserved.
 */
@charset "UTF-8";
/* ==========================================================================
   Normalize.scss settings
   ========================================================================== */
/**
 * Includes legacy browser support IE6/7
 *
 * Set to false if you want to drop support for IE6 and IE7
 */
/* Base
   ========================================================================== */
/**
 * 1. Set default font family to sans-serif.
 * 2. Prevent iOS and IE text size adjust after device orientation change,
 *    without disabling user zoom.
 * 3. Corrects text resizing oddly in IE 6/7 when body `font-size` is set using
 *  `em` units.
 */
html {
  font-family: sans-serif;
  /* 1 */
  -ms-text-size-adjust: 100%;
  /* 2 */
  -webkit-text-size-adjust: 100%;
  /* 2 */ }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

sup {
  top: -0.5em; }

sub {
  bottom: -0.25em; }

/* Embedded content
   ========================================================================== */
/**
 * 1. Remove border when inside `a` element in IE 8/9/10.
 * 2. Improves image quality when scaled in IE 7.
 */
img {
  border: 0; }

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

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

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

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

/**
 * Address odd `em`-unit font size rendering in all browsers.
 * Correct font family set oddly in IE 6, Safari 4/5, and Chrome.
 */
code,
kbd,
pre,
samp {
  font-family: monospace, monospace;
  font-size: 1em; }

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

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

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

/**
 * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
 *  and `video` controls.
 * 2. Correct inability to style clickable `input` types in iOS.
 * 3. Improve usability and consistency of cursor style between image-type
 *  `input` and others.
 * 4. Removes inner spacing in IE 7 without affecting normal text inputs.
 *  Known issue: inner spacing remains in IE 6.
 */
button,
html input[type="button"], input[type="reset"],
input[type="submit"] {
  -webkit-appearance: button;
  /* 2 */
  cursor: pointer;
  /* 3 */ }

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

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

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

/**
 * 1. Address box sizing set to `content-box` in IE 8/9/10.
 * 2. Remove excess padding in IE 8/9/10.
 *  Known issue: excess padding remains in IE 6.
 */
input[type="checkbox"],
input[type="radio"] {
  box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */ }

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

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

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

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

/**
 * 1. Correct `color` not being inherited in IE 8/9/10/11.
 * 2. Remove padding so people aren't caught out if they zero out fieldsets.
 * 3. Corrects text not wrapping in Firefox 3.
 * 4. Corrects alignment displayed oddly in IE 6/7.
 */
legend {
  border: 0;
  /* 1 */
  padding: 0;
  /* 2 */ }

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

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

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

td,
th {
  padding: 0; }

h1,
h2,
h3,
h4,
.sc-mega-heading,
.sc-super-heading,
.sc-large-heading,
.sc-small-heading, .sc-product-card-pov-cat figure figcaption, .sc-flag, .sc-flag-top-rated, .sc-flag-instant-savings, .sc-flag-shocking-values, .sc-flag-best-seller, .sc-flag-sams-exclusive, .sc-spec-table td {
  font-family: "bree-serif", serif; }

body,
.sc-text-body, .sc-overlay .sc-notification h1 {
  font-family: "aktiv-grotesk-std", sans-serif; }

body,
.sc-text-body {
  font-size: 15px;
  line-height: 1.618em;
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  width: 100%;
  background-color: #ffffff; }

em,
.sc-text-emphasis {
  font-weight: 500;
  font-style: normal; }

small,
.sc-text-small, .sc-product-card .sc-free-shipping {
  font-size: 13px;
  line-height: 24px;
  font-weight: 500; }

.sc-text-extrasmall {
  font-size: 11px;
  line-height: 13px;
  font-weight: 700;
  text-transform: uppercase; }

a,
a:hover,
a:visited {
  text-decoration: none;
  outline: none; }

:focus {
  outline: none; }

h1,
.sc-mega-heading {
  font-size: 64px;
  line-height: 72px; }

h2,
.sc-super-heading {
  font-size: 40px;
  line-height: 48px; }

h3,
.sc-large-heading {
  font-size: 24px;
  line-height: 24px; }

h4,
.sc-small-heading {
  font-size: 15px;
  line-height: 24px; }

.sc-text-blue {
  color: #2979FF; }

.sc-text-lightblue, .sc-product-card .sc-free-shipping {
  color: #29B6F6; }

.sc-text-green, .sc-overlay .sc-content .sc-money-box .sc-subscription-frequency {
  color: #00C853; }

.sc-strikethrough {
  color: #A7A7A7;
  text-decoration: none;
  position: relative; }
  .sc-strikethrough:after {
    content: '';
    position: absolute;
    bottom: 45%;
    left: 0;
    right: 0;
    border-bottom: 1px solid #EF5847; }

.sc-price {
  display: table-cell;
  width: 100%;
  min-width: 100px;
  position: relative;
  bottom: -3px;
  font-weight: 700; }
  .sc-price .sc-dollars {
    font-size: 24px;
    line-height: 29px;
    padding: 0 2px 0 9px;
    display: inline-block; }
  .sc-price .sc-currency,
  .sc-price .sc-cents {
    font-size: 14px;
    position: absolute;
    display: inline-block; }

.sc-gray {
  color: #A7A7A7; }

.sc-breadcrumb {
  margin-left: 0;
  padding-left: 32px; }
  .sc-breadcrumb li {
    display: inline-block;
    color: #00C853;
    font-weight: 400; }
    .sc-breadcrumb li:after {
      content: ' > ';
      color: #E9E7E2;
      padding: 0 8px; }
    .sc-breadcrumb li:last-child:after {
      content: '';
      padding: 0; }

.sc-button {
  border: none;
  border-radius: 4px;
  color: white;
  font-size: 14px;
  font-weight: 700;
  line-height: 30px;
  height: 32px;
  padding-left: 16px;
  padding-right: 16px; }
  .sc-button:active, .sc-button:focus {
    outline: none; }

.sc-button-round {
  width: 30px;
  height: 30px;
  border-radius: 30px;
  line-height: 30px;
  background: #F8F7F5;
  color: #B1B0AE; }

.sc-button-green {
  background: #00C853; }

.sc-button-red {
  background: #EF5350; }

.sc-card {
  border-radius: 4px;
  box-shadow: 0 1px 2px rgba(18, 18, 18, 0.08), 0 3px 6px rgba(0, 0, 0, 0.06);
  background: white;
  box-sizing: border-box;
  padding: 16px;
  vertical-align: top; }

.sc-product-card.sc-product-card-small {
  height: 358px;
  width: 238px; }
  .sc-product-card.sc-product-card-small figure {
    height: 236px; }
    .sc-product-card.sc-product-card-small figure img {
      height: 190px; }

.sc-product-card.sc-product-card-medium {
  height: 399px;
  width: 285px; }
  .sc-product-card.sc-product-card-medium figure {
    height: 267px; }
    .sc-product-card.sc-product-card-medium figure img {
      height: 221px; }

.sc-product-card.sc-product-card-large {
  height: 470px;
  width: 380px; }
  .sc-product-card.sc-product-card-large figure {
    height: 348px; }
    .sc-product-card.sc-product-card-large figure img {
      height: 284px; }

.sc-product-card.sc-product-card-medium .sc-promo-information,
.sc-product-card.sc-product-card-large .sc-promo-information {
  font-size: 15px;
  line-height: 19px; }

.sc-product-card {
  position: relative;
  display: inline-block;
  white-space: normal;
  padding: 16px;
  background: white;
  box-sizing: border-box;
  overflow: hidden; }
  .sc-product-card .sc-card-flag {
    position: absolute;
    top: 16px;
    left: 16px;
    z-index: 10; }
  .sc-product-card header h1,
  .sc-product-card header h2,
  .sc-product-card header h3,
  .sc-product-card header h4 {
    margin-top: 0; }
  .sc-product-card section {
    text-align: center; }
  .sc-product-card figure {
    margin: 0;
    height: 268px;
    position: relative; }
  .sc-product-card a,
  .sc-product-card a:hover,
  .sc-product-card a:visited {
    text-decoration: none;
    color: rgba(34, 34, 34, 0.8); }
  .sc-product-card figcaption {
    text-align: left;
    font-size: 15px;
    line-height: 19px;
    position: absolute;
    padding-top: 8px; }
  .sc-product-card .sc-details {
    text-align: left; }
  .sc-product-card .sc-rating {
    display: inline-block;
    text-align: left;
    color: #e9e7e2;
    font-size: 18px;
    margin-top: 5px;
    margin-right: 5px; }
    .sc-product-card .sc-rating .star {
      display: inline; }
    .sc-product-card .sc-rating .star:after {
      content: '*';
      font-size: 24px; }
    .sc-product-card .sc-rating .sc-yellow {
      color: #f8e71c; }
  .sc-product-card .sc-free-shipping {
    font-size: 13px;
    vertical-align: top; }
  .sc-product-card footer {
    position: absolute;
    bottom: 16px;
    right: 16px;
    left: 16px;
    color: rgba(34, 34, 34, 0.8); }
    .sc-product-card footer .sc-promo-information {
      font-weight: 500;
      font-size: 13px;
      line-height: 16px; }
      .sc-product-card footer .sc-promo-information + .sc-promo-information {
        line-height: 19px; }
    .sc-product-card footer > .sc-promo-information.sc-gray {
      line-height: 19px; }
    .sc-product-card footer .sc-price-strikethrough {
      text-decoration: line-through;
      color: #EF5350;
      height: 19px;
      font-size: 15px;
      line-height: 19px; }
      .sc-product-card footer .sc-price-strikethrough .sc-old-price {
        color: #959595;
        font-weight: 500; }
    .sc-product-card footer .sc-price-prefix {
      display: table-cell;
      width: auto;
      white-space: nowrap;
      position: relative;
      bottom: -3px;
      padding-right: .5em;
      font-weight: 500;
      font-size: 13px; }
    .sc-product-card footer .sc-other-pricing {
      cursor: pointer;
      display: table-cell;
      width: 100%;
      font-weight: 500; }
    .sc-product-card footer a.sc-link-green {
      color: #43A047; }
    .sc-product-card footer .sc-actions {
      display: table-cell;
      width: auto;
      white-space: nowrap; }

.sc-overlay {
  position: absolute;
  background-color: rgba(34, 34, 34, 0.8);
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  color: white;
  display: table;
  width: 100%;
  height: 100%;
  z-index: 1; }
  .sc-overlay .sc-notification {
    display: table-cell;
    vertical-align: middle;
    height: 100%; }
    .sc-overlay .sc-notification h1 {
      margin: 0; }
  .sc-overlay .sc-content {
    display: table-row;
    background: white;
    color: black;
    min-height: 189px; }
    .sc-overlay .sc-content .sc-channels {
      height: 52px;
      background: #F9F9F9; }
      .sc-overlay .sc-content .sc-channels .sc-channel-title {
        margin-bottom: -4px;
        padding-top: 4px;
        font-size: 13px;
        font-weight: 500; }
      .sc-overlay .sc-content .sc-channels .sc-out-of-stock .sc-channel-title {
        color: #d0021b;
        text-transform: uppercase;
        font-size: 11px;
        font-weight: 800;
        letter-spacing: .8px; }
      .sc-overlay .sc-content .sc-channels .sc-out-of-stock .sc-location {
        color: rgba(34, 34, 34, 0.8);
        font-size: 15px;
        line-height: 18px; }
      .sc-overlay .sc-content .sc-channels .sc-channels {
        white-space: nowrap; }
      .sc-overlay .sc-content .sc-channels .sc-channel {
        display: inline-block;
        height: calc(100% - 2px);
        width: calc(50% - 2px);
        vertical-align: top; }
        .sc-overlay .sc-content .sc-channels .sc-channel .sc-price {
          display: block;
          border-bottom: 2px solid transparent;
          bottom: 3px; }
          .sc-overlay .sc-content .sc-channels .sc-channel .sc-price .sc-dollars {
            font-size: 18px;
            padding-left: 0; }
          .sc-overlay .sc-content .sc-channels .sc-channel .sc-price .sc-currency,
          .sc-overlay .sc-content .sc-channels .sc-channel .sc-price .sc-cents {
            font-size: 11px; }
          .sc-overlay .sc-content .sc-channels .sc-channel .sc-price .sc-currency {
            margin-left: -9px; }
      .sc-overlay .sc-content .sc-channels .sc-selected-channel .sc-price {
        border-bottom-color: #00C853; }
    .sc-overlay .sc-content .sc-money-box {
      box-sizing: border-box;
      padding: 1em; }
      .sc-overlay .sc-content .sc-money-box .sc-pricing-details {
        font-size: 11px;
        font-weight: 500;
        line-height: 17px; }
        .sc-overlay .sc-content .sc-money-box .sc-pricing-details .sc-unit-price:not(:only-child) {
          color: #A7A7A7;
          padding-right: 1em; }
      .sc-overlay .sc-content .sc-money-box .sc-units-chooser {
        margin-top: 1em; }
        .sc-overlay .sc-content .sc-money-box .sc-units-chooser .sc-input {
          width: 64px;
          margin-left: 8px;
          margin-right: 8px;
          text-align: center;
          font-weight: 500; }
        .sc-overlay .sc-content .sc-money-box .sc-units-chooser .sc-sprite-minus {
          position: relative;
          bottom: 5px;
          right: 7px; }
        .sc-overlay .sc-content .sc-money-box .sc-units-chooser .sc-sprite-plus {
          position: relative;
          top: 1px;
          right: 8px; }
      .sc-overlay .sc-content .sc-money-box .sc-subscription {
        margin-top: 1em;
        font-size: 13px; }
      .sc-overlay .sc-content .sc-money-box .sc-subscription-frequency {
        font-weight: 500; }
      .sc-overlay .sc-content .sc-money-box .sc-actions {
        margin-top: 1em;
        margin-bottom: 3px; }
        .sc-overlay .sc-content .sc-money-box .sc-actions .sc-button {
          width: 50%; }

.sc-product-card-list {
  white-space: nowrap; }
  .sc-product-card-list .sc-product-card {
    margin-right: 1em;
    width: 238px; }

/*

  PLP Cards

*/
/*

  Carousel Cards

*/
.sc-product-card-related-cat {
  height: 112px;
  width: 238px; }
  .sc-product-card-related-cat figure {
    width: 206px;
    text-align: left;
    display: table;
    margin: 0;
    text-align: left; }
    .sc-product-card-related-cat figure img {
      height: 80px;
      width: 80px;
      margin: 0 16px 0 0; }
    .sc-product-card-related-cat figure figcaption {
      display: table-cell;
      line-height: 16px;
      vertical-align: middle; }

.sc-product-card-pov-cat {
  height: 321px;
  width: 238px;
  padding: 24px 16px 40px 16px; }
  .sc-product-card-pov-cat figure {
    width: 206px;
    margin: 0;
    text-align: center; }
    .sc-product-card-pov-cat figure img {
      height: 178px;
      width: 178px;
      margin: 0 0 24px 0; }
    .sc-product-card-pov-cat figure figcaption {
      font-size: 20px;
      line-height: 30px;
      vertical-align: middle;
      height: 60px;
      color: #4d4d4d;
      font-weight: 600;
      text-align: center; }

.sc-content-card-small {
  height: 358px;
  width: 238px;
  overflow: hidden;
  font-size: 15px;
  line-height: 1.618em; }

.sc-content-card-medium {
  height: 399px;
  width: 285px;
  overflow: hidden;
  font-size: 15px;
  line-height: 1.618em; }

.sc-content-card-large {
  height: 470px;
  width: 380px;
  overflow: hidden;
  font-size: 15px;
  line-height: 1.618em; }

.sc-input-label {
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none; }

.sc-checkbox {
  width: 20px;
  position: relative;
  display: inline-block;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  padding-right: 8px; }
  .sc-checkbox label {
    width: 20px;
    height: 20px;
    cursor: pointer;
    position: absolute;
    top: 0;
    left: 0;
    background: transparent;
    border-radius: 4px;
    border: 1px solid #d8d8d8;
    white-space: nowrap; }
    .sc-checkbox label:after {
      content: '';
      width: 9px;
      height: 5px;
      position: absolute;
      top: 4px;
      left: 4px;
      border: 2px solid transparent;
      border-top: none;
      border-right: none;
      background: transparent;
      opacity: 0;
      -webkit-transform: rotate(-45deg);
          -ms-transform: rotate(-45deg);
              transform: rotate(-45deg); }
    .sc-checkbox label:hover::after {
      opacity: 0; }
  .sc-checkbox input[type=checkbox] {
    visibility: hidden; }
    .sc-checkbox input[type=checkbox]:checked + label:after {
      opacity: 1;
      border-color: #01cc75; }

.sc-flag, .sc-flag-top-rated, .sc-flag-instant-savings, .sc-flag-shocking-values, .sc-flag-best-seller, .sc-flag-sams-exclusive {
  font-size: 13px;
  line-height: 19px;
  border-radius: 4px;
  display: inline-block;
  height: 22px;
  padding-left: 10px;
  padding-right: 10px;
  color: white; }

.sc-flag-blue, .sc-flag-top-rated {
  background: #29B6F6; }

.sc-flag-red, .sc-flag-instant-savings {
  background: #EF5350; }

.sc-flag-orange, .sc-flag-shocking-values, .sc-flag-best-seller, .sc-flag-sams-exclusive {
  background: #FFA726; }

.sc-container:after {
  content: "";
  display: table;
  clear: both;
  border-spacing: 0; }

.sc-parent:before,
.sc-product-grid .products:before,
.sc-parent:after, .sc-product-grid .products:after {
  content: "";
  display: table;
  border-spacing: 0; }

.sc-parent:after, .sc-product-grid .products:after {
  clear: both; }

.sc-parent, .sc-product-grid .products {
  zoom: 1; }

.sc-push-0, .sc-push-1, .sc-push-2, .sc-push-3, .sc-push-4, .sc-push-5, .sc-push-6, .sc-push-7, .sc-push-8, .sc-push-9, .sc-push-10, .sc-push-11, .sc-push-12, .sc-push-13, .sc-push-14, .sc-push-15, .sc-push-16, .sc-push-17, .sc-push-18, .sc-push-19, .sc-push-20, .sc-push-21, .sc-push-22, .sc-push-23, .sc-push-24, .sc-pull-0, .sc-pull-1, .sc-pull-2, .sc-pull-3, .sc-pull-4, .sc-pull-5, .sc-pull-6, .sc-pull-7, .sc-pull-8, .sc-pull-9, .sc-pull-10, .sc-pull-11, .sc-pull-12, .sc-pull-13, .sc-pull-14, .sc-pull-15, .sc-pull-16, .sc-pull-17, .sc-pull-18, .sc-pull-19, .sc-pull-20, .sc-pull-21, .sc-pull-22, .sc-pull-23, .sc-pull-24 {
  position: relative; }

.sc-container {
  box-sizing: border-box; }

.sc-parent, .sc-product-grid .products {
  box-sizing: border-box; }

.sc-grid-0, .sc-grid-1, .sc-grid-2, .sc-grid-3, .sc-grid-4, .sc-grid-5, .sc-grid-6, .sc-grid-7, .sc-grid-8, .sc-grid-9, .sc-grid-10, .sc-grid-11, .sc-grid-12, .sc-grid-13, .sc-grid-14, .sc-grid-15, .sc-grid-16, .sc-grid-17, .sc-grid-18, .sc-grid-19, .sc-grid-20, .sc-grid-21, .sc-grid-22, .sc-grid-23, .sc-grid-24, .sc-product-grid .refinements, .sc-product-grid .products, .sc-product-grid .products .sc-product-card, .sc-product-grid.collapsed .products {
  display: inline-block;
  min-height: 1px;
  box-sizing: border-box; }

/**
 * Str replace
 *
 * @param {string}  $string    String that you want to replace
 * @param {string}  $substr    String that is to be replaced by `$newsubstr`
 * @param {string}  $newsubstr String that replaces `$substr`
 * @param {number*} $all       Flag for replaceing all (1+) or not (0)
 * @return {string}
 */
/**
 * Map set
 *
 * @param 	Map 	$map 		The map to use
 * @param 	String 	$key 		The key to update
 * @param 	Mixed 	$value 		The new value
 * @return 	Map 			The new map
 */
/**
 * Get the column width in percent for the global or a specific context
 *
 * @param 	int 		$columns 					The number of columns to calculate
 * @param 	int 		$context : $gridle-columns-count 	 	The context to use
 * @return 	percentage 							The width in percent
 */
/**
 *  Get a state map
 *
 * @param 	string 		$name 		The name of the state to get
 * @return 	map 				A state map object
 */
/**
 * Check if a state exist :
 *
 * @param 	string 		$name 		The name of the state to check
 * @return 	Boolean 			true is exist
 */
/**
 * Get the media queries variables :
 *
 * @param 	int 		$index 	 	The media query indes
 * @param 	String 		$var 		The media query variable name
 * @return 	String|int 			The variable value
 */
/**
 * Get a variable
 *
 * @param 	String 		$varName 				The variable name
 * @param  	String 		$stateMap-or-stateName 	 	The state name or a map state value
 * @return 	Mixed 							The finded value
 */
/**
 * Set a variable in a state
 * @param 	Mixed $stateName-or-stateIndex 	The state name of state index
 * @param  	String $var                    		Variable name to assign
 * @param  	Mixed $newValue          		The new value to assign
 * @return 	List                         			The states list (full)
 */
/**
 * Generate a column
 *
 * @param 	String 		$name 			The column name (often count)
 * @param 	int 		$columns 		The column count that the column will take
 * @param 	int 		$context 		The context on witch the with will be calculed
 * @param 	Boolean 	$generateClasses 	Set if the column has to be generated in css
 */
/**
 * Generate classname
 *
 * @param 	List 		$parrern 	The pattern to use to generate classname
 * @param 	String 		$state 		The state
 * @param 	int 		$count 		The column count
 */
/**
 * Get the media query for a particular state, or with, etc...
 *
 * @param 	Mixed 		$state-or-min-width 		The state name of the min with
 * @param 	Mixed 		$max-width 			The max width if first param is a min width
 * @return 	String 						The media query string without the @media
 */
/**
 * Get states count
 * 
 * @return 	int 	The number of states defined
 */
/**
 * Setup
 */
/**
 *  Register a clear each class
 */
/**
 * Register a special class
 */
/**
 * Register default states
 */
/**
 * Register default mobile first states :
 */
/**
 * Set the debug device (not used for now)
 * 
 * @param 	String 		$state 		The state to update
 * @para m 	String 		$device 	The device to use (iphone, etc...)
 */
/**
 * Parent clear each
 */
/**
 * Vertical align :
 */
/**
 * Show inline
 *
 * @param 	String 		$state 		The state name
 */
/**
 * Generate a custom class for all the states
 *
 * @param 	list 	$pattern 		The name pattern of the class
 * @param 	list 	$statesNames 		The states names to generate
 */
@media screen and (max-width: 400px) {
  @-ms-viewport {
    width: device-width; } }

#gridle-settings {
  content: '{ \\"version\\" : \\"1.3.40\\", \\"states\\" : { \\"retina\\":{ \\"query\\" : \\"(-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi), (min-resolution: 2dppx)\\", \\"classes\\" : false, \\"name\\" : \\"retina\\", \\"_gridle\\" : true }, \\"tv\\":{ \\"query\\" : \\"only tv\\", \\"classes\\" : false, \\"name\\" : \\"tv\\", \\"_gridle\\" : true }, \\"print\\":{ \\"query\\" : \\"only print\\", \\"classes\\" : false, \\"name\\" : \\"print\\", \\"_gridle\\" : true }, \\"portrait\\":{ \\"query\\" : \\"only screen and (orientation: portrait)\\", \\"classes\\" : false, \\"name\\" : \\"portrait\\", \\"_gridle\\" : true }, \\"landscape\\":{ \\"query\\" : \\"only screen and (orientation: landscape)\\", \\"classes\\" : false, \\"name\\" : \\"landscape\\", \\"_gridle\\" : true }, \\"default\\":{ \\"name\\" : \\"default\\", \\"min-width\\" : null, \\"max-width\\" : null, \\"query\\" : null, \\"classes\\" : true, \\"context\\" : \\"24\\", \\"gutter-width\\" : \\"32px\\", \\"direction\\" : \\"ltr\\", \\"name-multiplicator\\" : \\"1\\", \\"debug\\" : false, \\"debug-show-class-names\\" : true, \\"ie7-support\\" : false, \\"html-states-classes\\" : false, \\"generate-push-classes\\" : true, \\"generate-pull-classes\\" : true, \\"generate-prefix-classes\\" : true, \\"generate-suffix-classes\\" : true, \\"generate-helpers-classes\\" : true, \\"_gridle\\" : true }} }'; }

.sc-grid-0, .sc-grid-1, .sc-grid-2, .sc-grid-3, .sc-grid-4, .sc-grid-5, .sc-grid-6, .sc-grid-7, .sc-grid-8, .sc-grid-9, .sc-grid-10, .sc-grid-11, .sc-grid-12, .sc-grid-13, .sc-grid-14, .sc-grid-15, .sc-grid-16, .sc-grid-17, .sc-grid-18, .sc-grid-19, .sc-grid-20, .sc-grid-21, .sc-grid-22, .sc-grid-23, .sc-grid-24 {
  float: left;
  direction: ltr;
  padding-left: 16px;
  padding-right: 16px; }

.sc-grid-0 {
  width: 0%; }

.sc-push-0 {
  left: 0%; }

.sc-pull-0 {
  right: 0%; }

.sc-prefix-0 {
  margin-left: 0%; }

.sc-suffix-0 {
  margin-right: 0%; }

.sc-grid-1 {
  width: 4.16667%; }

.sc-push-1 {
  left: 4.16667%; }

.sc-pull-1 {
  right: 4.16667%; }

.sc-prefix-1 {
  margin-left: 4.16667%; }

.sc-suffix-1 {
  margin-right: 4.16667%; }

.sc-grid-2 {
  width: 8.33333%; }

.sc-push-2 {
  left: 8.33333%; }

.sc-pull-2 {
  right: 8.33333%; }

.sc-prefix-2 {
  margin-left: 8.33333%; }

.sc-suffix-2 {
  margin-right: 8.33333%; }

.sc-grid-3 {
  width: 12.5%; }

.sc-push-3 {
  left: 12.5%; }

.sc-pull-3 {
  right: 12.5%; }

.sc-prefix-3 {
  margin-left: 12.5%; }

.sc-suffix-3 {
  margin-right: 12.5%; }

.sc-grid-4 {
  width: 16.66667%; }

.sc-push-4 {
  left: 16.66667%; }

.sc-pull-4 {
  right: 16.66667%; }

.sc-prefix-4 {
  margin-left: 16.66667%; }

.sc-suffix-4 {
  margin-right: 16.66667%; }

.sc-grid-5 {
  width: 20.83333%; }

.sc-push-5 {
  left: 20.83333%; }

.sc-pull-5 {
  right: 20.83333%; }

.sc-prefix-5 {
  margin-left: 20.83333%; }

.sc-suffix-5 {
  margin-right: 20.83333%; }

.sc-grid-6 {
  width: 25%; }

.sc-push-6 {
  left: 25%; }

.sc-pull-6 {
  right: 25%; }

.sc-prefix-6 {
  margin-left: 25%; }

.sc-suffix-6 {
  margin-right: 25%; }

.sc-grid-7 {
  width: 29.16667%; }

.sc-push-7 {
  left: 29.16667%; }

.sc-pull-7 {
  right: 29.16667%; }

.sc-prefix-7 {
  margin-left: 29.16667%; }

.sc-suffix-7 {
  margin-right: 29.16667%; }

.sc-grid-8 {
  width: 33.33333%; }

.sc-push-8 {
  left: 33.33333%; }

.sc-pull-8 {
  right: 33.33333%; }

.sc-prefix-8 {
  margin-left: 33.33333%; }

.sc-suffix-8 {
  margin-right: 33.33333%; }

.sc-grid-9 {
  width: 37.5%; }

.sc-push-9 {
  left: 37.5%; }

.sc-pull-9 {
  right: 37.5%; }

.sc-prefix-9 {
  margin-left: 37.5%; }

.sc-suffix-9 {
  margin-right: 37.5%; }

.sc-grid-10 {
  width: 41.66667%; }

.sc-push-10 {
  left: 41.66667%; }

.sc-pull-10 {
  right: 41.66667%; }

.sc-prefix-10 {
  margin-left: 41.66667%; }

.sc-suffix-10 {
  margin-right: 41.66667%; }

.sc-grid-11 {
  width: 45.83333%; }

.sc-push-11 {
  left: 45.83333%; }

.sc-pull-11 {
  right: 45.83333%; }

.sc-prefix-11 {
  margin-left: 45.83333%; }

.sc-suffix-11 {
  margin-right: 45.83333%; }

.sc-grid-12 {
  width: 50%; }

.sc-push-12 {
  left: 50%; }

.sc-pull-12 {
  right: 50%; }

.sc-prefix-12 {
  margin-left: 50%; }

.sc-suffix-12 {
  margin-right: 50%; }

.sc-grid-13 {
  width: 54.16667%; }

.sc-push-13 {
  left: 54.16667%; }

.sc-pull-13 {
  right: 54.16667%; }

.sc-prefix-13 {
  margin-left: 54.16667%; }

.sc-suffix-13 {
  margin-right: 54.16667%; }

.sc-grid-14 {
  width: 58.33333%; }

.sc-push-14 {
  left: 58.33333%; }

.sc-pull-14 {
  right: 58.33333%; }

.sc-prefix-14 {
  margin-left: 58.33333%; }

.sc-suffix-14 {
  margin-right: 58.33333%; }

.sc-grid-15 {
  width: 62.5%; }

.sc-push-15 {
  left: 62.5%; }

.sc-pull-15 {
  right: 62.5%; }

.sc-prefix-15 {
  margin-left: 62.5%; }

.sc-suffix-15 {
  margin-right: 62.5%; }

.sc-grid-16 {
  width: 66.66667%; }

.sc-push-16 {
  left: 66.66667%; }

.sc-pull-16 {
  right: 66.66667%; }

.sc-prefix-16 {
  margin-left: 66.66667%; }

.sc-suffix-16 {
  margin-right: 66.66667%; }

.sc-grid-17 {
  width: 70.83333%; }

.sc-push-17 {
  left: 70.83333%; }

.sc-pull-17 {
  right: 70.83333%; }

.sc-prefix-17 {
  margin-left: 70.83333%; }

.sc-suffix-17 {
  margin-right: 70.83333%; }

.sc-grid-18 {
  width: 75%; }

.sc-push-18 {
  left: 75%; }

.sc-pull-18 {
  right: 75%; }

.sc-prefix-18 {
  margin-left: 75%; }

.sc-suffix-18 {
  margin-right: 75%; }

.sc-grid-19 {
  width: 79.16667%; }

.sc-push-19 {
  left: 79.16667%; }

.sc-pull-19 {
  right: 79.16667%; }

.sc-prefix-19 {
  margin-left: 79.16667%; }

.sc-suffix-19 {
  margin-right: 79.16667%; }

.sc-grid-20 {
  width: 83.33333%; }

.sc-push-20 {
  left: 83.33333%; }

.sc-pull-20 {
  right: 83.33333%; }

.sc-prefix-20 {
  margin-left: 83.33333%; }

.sc-suffix-20 {
  margin-right: 83.33333%; }

.sc-grid-21 {
  width: 87.5%; }

.sc-push-21 {
  left: 87.5%; }

.sc-pull-21 {
  right: 87.5%; }

.sc-prefix-21 {
  margin-left: 87.5%; }

.sc-suffix-21 {
  margin-right: 87.5%; }

.sc-grid-22 {
  width: 91.66667%; }

.sc-push-22 {
  left: 91.66667%; }

.sc-pull-22 {
  right: 91.66667%; }

.sc-prefix-22 {
  margin-left: 91.66667%; }

.sc-suffix-22 {
  margin-right: 91.66667%; }

.sc-grid-23 {
  width: 95.83333%; }

.sc-push-23 {
  left: 95.83333%; }

.sc-pull-23 {
  right: 95.83333%; }

.sc-prefix-23 {
  margin-left: 95.83333%; }

.sc-suffix-23 {
  margin-right: 95.83333%; }

.sc-grid-24 {
  width: 100%; }

.sc-push-24 {
  left: 100%; }

.sc-pull-24 {
  right: 100%; }

.sc-prefix-24 {
  margin-left: 100%; }

.sc-suffix-24 {
  margin-right: 100%; }

.sc-float-left {
  float: left; }

.sc-float-right {
  float: right; }

.sc-clear {
  clear: both; }

.sc-clear-left {
  clear: left; }

.sc-clear-right {
  clear: right; }

.sc-no-gutter,
.sc-no-margin {
  padding-left: 0;
  padding-right: 0; }

.sc-no-gutter-left,
.sc-no-margin-left {
  padding-left: 0; }

.sc-no-gutter-right,
.sc-no-margin-right {
  padding-right: 0; }

.sc-no-gutter-top,
.sc-no-margin-top {
  padding-top: 0; }

.sc-no-gutter-bottom,
.sc-no-margin-bottom {
  padding-bottom: 0; }

.sc-gutter,
.sc-margins {
  padding-left: 16px;
  padding-right: 16px; }

.sc-gutter-left,
.sc-margin-left {
  padding-left: 16px; }

.sc-gutter-right,
.sc-margin-right {
  padding-right: 16px; }

.sc-gutter-top,
.sc-margin-top {
  padding-top: 16px; }

.sc-gutter-bottom,
.sc-margin-bottom {
  padding-bottom: 16px; }

.sc-auto-height {
  height: inherit; }

.sc-centered {
  display: block !important;
  float: none !important;
  margin-left: auto !important;
  margin-right: auto !important;
  clear: both !important; }

.sc-parent {
  padding-left: 0;
  padding-right: 0; }

.sc-vertical-align-middle {
  font-size: 0;
  clear: both; }
  .sc-vertical-align-middle > * {
    display: inline-block;
    float: none !important;
    vertical-align: middle;
    font-size: 1rem; }

.sc-vertical-align-top {
  font-size: 0;
  clear: both; }
  .sc-vertical-align-top > * {
    display: inline-block;
    float: none !important;
    vertical-align: top;
    font-size: 1rem; }

.sc-vertical-align-bottom {
  font-size: 0;
  clear: both; }
  .sc-vertical-align-bottom > * {
    display: inline-block;
    float: none !important;
    vertical-align: bottom;
    font-size: 1rem; }

/**
	 * Visible, hide, etc...
	 */
.sc-hide {
  display: none; }

.sc-not-visible {
  visibility: hidden; }

.sc-show {
  display: block; }

.sc-show-inline {
  display: inline-block; }

.sc-visible {
  visibility: visible; }

/**
	 * Clear each class :
	 */
.sc-product-grid {
  width: 1140px; }
  .sc-product-grid .refinements {
    float: left;
    direction: ltr;
    padding-left: 16px;
    padding-right: 16px;
    width: 25%;
    transition: all 300ms ease; }
  .sc-product-grid .products {
    float: left;
    direction: ltr;
    padding-left: 16px;
    padding-right: 16px;
    width: 75%;
    padding-left: 0;
    padding-right: 0;
    transition: all 300ms ease;
    -webkit-transform: translateZ(0, 0, 0);
            transform: translateZ(0, 0, 0); }
    .sc-product-grid .products .sc-product-card {
      transition: all 300ms ease;
      border-right: 1px solid #dcdcdc;
      float: left;
      direction: ltr;
      padding-left: 16px;
      padding-right: 16px;
      width: 33.33333%;
      border-bottom: 1px solid #dcdcdc; }
      .sc-product-grid .products .sc-product-card .sc-card-flag {
        z-index: 1; }
      .sc-product-grid .products .sc-product-card:nth-child(3n+3) {
        border-right: 0; }
      .sc-product-grid .products .sc-product-card figure img {
        transition: all 300ms ease;
        -webkit-transform: translateZ(0, 0, 0);
                transform: translateZ(0, 0, 0);
        width: 222px; }
  .sc-product-grid.collapsed .refinements {
    width: 0;
    height: 0;
    opacity: 0;
    pointer-events: none; }
  .sc-product-grid.collapsed .products {
    float: left;
    direction: ltr;
    padding-left: 16px;
    padding-right: 16px;
    width: 100%;
    -webkit-animation: collapse-refinements 300ms ease;
            animation: collapse-refinements 300ms ease; }
    .sc-product-grid.collapsed .products .sc-product-card {
      height: 450px; }
      .sc-product-grid.collapsed .products .sc-product-card figure {
        height: 330px; }
      .sc-product-grid.collapsed .products .sc-product-card figure img {
        width: 290px; }

@-webkit-keyframes collapse-refinements {
  from {
    margin-left: 25%; }
  to {
    margin-left: 0; } }

@keyframes collapse-refinements {
  from {
    margin-left: 25%; }
  to {
    margin-left: 0; } }

.sc-input {
  border: 1px solid #aaa;
  border-radius: 3px;
  padding: 4px 8px;
  box-sizing: border-box; }
  .sc-input:active, .sc-input:focus {
    outline: none; }
  .sc-input.sc-hide-spinner {
    -moz-appearance: textfield; }
    .sc-input.sc-hide-spinner::-webkit-outer-spin-button,
    .sc-input.sc-hide-spinner::-webkit-inner-spin-button {
      -webkit-appearance: none;
      margin: 0; }

.sc-spec-table {
  width: 100%; }
  .sc-spec-table th {
    font-size: 14px;
    line-height: 17px;
    font-weight: 300;
    vertical-align: text-bottom;
    text-align: left;
    padding: 3em 2em 0 1em;
    white-space: pre;
    display: table-cell;
    color: #878787; }
  .sc-spec-table td {
    font-size: 32px;
    line-height: 38px;
    font-weight: 700;
    vertical-align: text-bottom;
    width: 100%; }
  .sc-spec-table tr {
    border-bottom: 2px solid #F2F1ED; }

/*
SCSS variables are information about icon's compiled state, stored under its original file name

.icon-home {
  width: $icon-home-width;
}

The large array-like variables contain all information about a single icon
$icon-home: x y offset_x offset_y width height total_width total_height image_path;

At the bottom of this section, we provide information about the spritesheet itself
$spritesheet: width height image $spritesheet-sprites;
*/
/*
The provided mixins are intended to be used with the array-like variables

.icon-home {
  @include sprite-width($icon-home);
}

.icon-email {
  @include sprite($icon-email);
}
*/
/*
The `sprites` mixin generates identical output to the CSS template
  but can be overridden inside of SCSS

@include sprites($spritesheet-sprites);
*/
[class*='sc-sprite'] {
  background-image: url(sprite.png);
  display: inline-block; }

.sc-sprite-Cart {
  background-position: -329px -36px;
  width: 44px;
  height: 44px; }

.sc-sprite-Logo {
  background-position: -223px 0px;
  width: 166px;
  height: 36px; }

.sc-sprite-add-to-list {
  background-position: -223px -116px;
  width: 33px;
  height: 33px; }

.sc-sprite-arrow-green-bg {
  background-position: -329px -80px;
  width: 33px;
  height: 33px; }

.sc-sprite-arrow-green {
  background-position: -271px -149px;
  width: 17px;
  height: 14px; }

.sc-sprite-arrow-grey {
  background-position: -233px -165px;
  width: 8px;
  height: 14px; }

.sc-sprite-arrow-hb-lt {
  background-position: -223px -36px;
  width: 53px;
  height: 80px; }

.sc-sprite-arrow-hb-rt {
  background-position: -276px -36px;
  width: 53px;
  height: 80px; }

.sc-sprite-back-chevron {
  background-position: -362px -103px;
  width: 6px;
  height: 10px; }

.sc-sprite-caret-down-green {
  background-position: -368px -103px;
  width: 8px;
  height: 5px; }

.sc-sprite-caret-down-red {
  background-position: -376px -103px;
  width: 8px;
  height: 5px; }

.sc-sprite-check-green {
  background-position: -373px -68px;
  width: 14px;
  height: 12px; }

.sc-sprite-close-icon {
  background-position: -304px -149px;
  width: 12px;
  height: 13px; }

.sc-sprite-close {
  background-position: -376px -116px;
  width: 12px;
  height: 13px; }

.sc-sprite-facebook {
  background-position: -223px -149px;
  width: 16px;
  height: 16px; }

.sc-sprite-google {
  background-position: -239px -149px;
  width: 16px;
  height: 16px; }

.sc-sprite-greater-than-green {
  background-position: -223px -165px;
  width: 10px;
  height: 14px; }

.sc-sprite-greater-than-white-small {
  background-position: -232px -179px;
  width: 9px;
  height: 15px; }

.sc-sprite-greater-than-white {
  background-position: -223px -179px;
  width: 9px;
  height: 15px; }

.sc-sprite-hot-buys-left-shade {
  background-position: 0px 0px;
  width: 95px;
  height: 285px; }

.sc-sprite-hot-buys-right-shade {
  background-position: -95px 0px;
  width: 128px;
  height: 190px; }

.sc-sprite-hotbuys-arrow {
  background-position: -256px -116px;
  width: 30px;
  height: 30px; }

.sc-sprite-left-arrow {
  background-position: -358px -116px;
  width: 18px;
  height: 15px; }

.sc-sprite-minus {
  background-position: -368px -108px;
  width: 16px;
  height: 2px; }

.sc-sprite-p-grid-actv {
  background-position: -255px -149px;
  width: 16px;
  height: 16px; }

.sc-sprite-p-grid {
  background-position: -373px -52px;
  width: 16px;
  height: 16px; }

.sc-sprite-p-list-actv {
  background-position: -341px -116px;
  width: 17px;
  height: 16px; }

.sc-sprite-p-list {
  background-position: -324px -116px;
  width: 17px;
  height: 16px; }

.sc-sprite-pinterest {
  background-position: -373px -36px;
  width: 16px;
  height: 16px; }

.sc-sprite-plus {
  background-position: -307px -116px;
  width: 17px;
  height: 17px; }

.sc-sprite-search-arrow {
  background-position: -362px -80px;
  width: 22px;
  height: 23px; }

.sc-sprite-search-close {
  background-position: -316px -149px;
  width: 12px;
  height: 12px; }

.sc-sprite-search {
  background-position: -286px -116px;
  width: 21px;
  height: 21px; }

.sc-sprite-twitter {
  background-position: -288px -149px;
  width: 16px;
  height: 13px; }

/*
SCSS variables are information about icon's compiled state, stored under its original file name

.icon-home {
  width: $icon-home-width;
}

The large array-like variables contain all information about a single icon
$icon-home: x y offset_x offset_y width height total_width total_height image_path;

At the bottom of this section, we provide information about the spritesheet itself
$spritesheet: width height image $spritesheet-sprites;
*/
/* RETINA */
/* RETINA */
/*
These "retina group" variables are mappings for the naming and pairing of normal and retina sprites.

The list formatted variables are intended for mixins like `retina-sprite` and `retina-sprites`.
*/
/*
The provided mixins are intended to be used with the array-like variables

.icon-home {
  @include sprite-width($icon-home);
}

.icon-email {
  @include sprite($icon-email);
}
*/
/*
The `sprites` mixin generates identical output to the CSS template
  but can be overridden inside of SCSS

@include sprites($spritesheet-sprites);
*/
[class*=sc-rating] {
  display: inline-block; }

.sc-rating-0_0 {
  background-image: url(rating-sprite.png);
  background-position: 0px -12px;
  width: 76px;
  height: 12px; }
  @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
    .sc-rating-0_0 {
      background-image: url(rating-sprite@2x.png);
      background-size: 152px 72px; } }

.sc-rating-0_5 {
  background-image: url(rating-sprite.png);
  background-position: 0px -60px;
  width: 76px;
  height: 12px; }
  @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
    .sc-rating-0_5 {
      background-image: url(rating-sprite@2x.png);
      background-size: 152px 72px; } }

.sc-rating-1_0 {
  background-image: url(rating-sprite.png);
  background-position: 0px -24px;
  width: 76px;
  height: 12px; }
  @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
    .sc-rating-1_0 {
      background-image: url(rating-sprite@2x.png);
      background-size: 152px 72px; } }

.sc-rating-1_5 {
  background-image: url(rating-sprite.png);
  background-position: 0px -36px;
  width: 76px;
  height: 12px; }
  @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
    .sc-rating-1_5 {
      background-image: url(rating-sprite@2x.png);
      background-size: 152px 72px; } }

.sc-rating-2_0 {
  background-image: url(rating-sprite.png);
  background-position: 0px -48px;
  width: 76px;
  height: 12px; }
  @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
    .sc-rating-2_0 {
      background-image: url(rating-sprite@2x.png);
      background-size: 152px 72px; } }

.sc-rating-2_5 {
  background-image: url(rating-sprite.png);
  background-position: 0px 0px;
  width: 76px;
  height: 12px; }
  @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
    .sc-rating-2_5 {
      background-image: url(rating-sprite@2x.png);
      background-size: 152px 72px; } }

.sc-rating-3_0 {
  background-image: url(rating-sprite.png);
  background-position: -76px 0px;
  width: 76px;
  height: 12px; }
  @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
    .sc-rating-3_0 {
      background-image: url(rating-sprite@2x.png);
      background-size: 152px 72px; } }

.sc-rating-3_5 {
  background-image: url(rating-sprite.png);
  background-position: -76px -12px;
  width: 76px;
  height: 12px; }
  @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
    .sc-rating-3_5 {
      background-image: url(rating-sprite@2x.png);
      background-size: 152px 72px; } }

.sc-rating-4_0 {
  background-image: url(rating-sprite.png);
  background-position: -76px -24px;
  width: 76px;
  height: 12px; }
  @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
    .sc-rating-4_0 {
      background-image: url(rating-sprite@2x.png);
      background-size: 152px 72px; } }

.sc-rating-4_5 {
  background-image: url(rating-sprite.png);
  background-position: -76px -36px;
  width: 76px;
  height: 12px; }
  @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
    .sc-rating-4_5 {
      background-image: url(rating-sprite@2x.png);
      background-size: 152px 72px; } }

.sc-rating-5_0 {
  background-image: url(rating-sprite.png);
  background-position: -76px -48px;
  width: 76px;
  height: 12px; }
  @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
    .sc-rating-5_0 {
      background-image: url(rating-sprite@2x.png);
      background-size: 152px 72px; } }

@font-face {
  font-family: "scIcons";
  src: url("./fonts/scIcons.eot");
  src: url("./fonts/scIcons.eot?#iefix") format("eot"), url("./fonts/scIcons.woff") format("woff"), url("./fonts/scIcons.ttf") format("truetype"), url("./fonts/scIcons.svg#scIcons") format("svg"); }

.sc-icon-caret:before {
  font-family: "scIcons";
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-style: normal;
  font-variant: normal;
  font-weight: normal;
  text-decoration: none;
  text-transform: none; }

.sc-icon-caret:before {
  content: ""; }

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LmNzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvbm9ybWFsaXplLXNjc3MvX25vcm1hbGl6ZS5zY3NzIiwidHlwb2dyYXBoeS90eXBvZ3JhcGh5LnNjc3MiLCJfbWl4aW5zLnNjc3MiLCJfdmFyaWFibGVzLnNjc3MiLCJicmVhZGNydW1iL2JyZWFkY3J1bWIuc2NzcyIsImJ1dHRvbi9idXR0b24uc2NzcyIsImNhcmQvY2FyZC5zY3NzIiwiY2hlY2tib3gvY2hlY2tib3guc2NzcyIsImZsYWcvZmxhZy5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ncmlkbGUvc2Fzcy9ncmlkbGUvX3NpbGVudC1jbGFzc2VzLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2dyaWRsZS9zYXNzL2dyaWRsZS9fZnVuY3Rpb25zLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2dyaWRsZS9zYXNzL2dyaWRsZS9fc2V0dGluZ3MtbWl4aW5zLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2dyaWRsZS9zYXNzL2dyaWRsZS9fbWl4aW5zLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2dyaWRsZS9zYXNzL2dyaWRsZS9fZ2VuZXJhdGUtbWl4aW5zLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2dyaWRsZS9zYXNzL2dyaWRsZS9fY29tbW9uLW1peGlucy5zY3NzIiwiZ3JpZC9ncmlkLnNjc3MiLCJpbnB1dC9pbnB1dC5zY3NzIiwidGFibGUvdGFibGUuc2NzcyIsInNwcml0ZXMvc3ByaXRlLnNjc3MiLCJyYXRpbmdzL3JhdGluZ3Muc2NzcyIsImljb25zL19zY0ljb25zLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUJBQWlCO0FDQWpCOztnRkFFZ0Y7QUFDaEY7Ozs7R0FJRztBQUlIO2dGQUNnRjtBQUVoRjs7Ozs7O0dBTUc7QUFFSDtFQUNFLHdCQUF3QjtFQUFFLE9BQU87RUFDakMsMkJBQTJCO0VBQUUsT0FBTztFQUNwQywrQkFBK0I7RUFB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QixFQ2dPWjs7QUFJd0c7RUQ3S3ZHLHNCQUpXLEVDa0xaOztBQUl3RztFRDdIdkcsdUJBSlcsRUNrSVo7O0FBckIrRDtFRGhWdEUsZ0JBSG1CLEVDb1ZaOztBQUlvRztFRDNRM0csZUFGbUIsRUM4UVo7O0FBSW9HO0VEN04zRyxnQkFGbUIsRUNnT1o7O0FBSXdHO0VEN0t2RyxzQkFKVyxFQ2tMWjs7QUFJd0c7RUQ3SHZHLHVCQUpXLEVDa0laOztBQXJCK0Q7RURoVnRFLGFBSG1CLEVDb1ZaOztBQUlvRztFRDNRM0csWUFGbUIsRUM4UVo7O0FBSW9HO0VEN04zRyxhQUZtQixFQ2dPWjs7QUFJd0c7RUQ3S3ZHLG1CQUpXLEVDa0xaOztBQUl3RztFRDdIdkcsb0JBSlcsRUNrSVo7O0FBckIrRDtFRGhWdEUsaUJBSG1CLEVDb1ZaOztBQUlvRztFRDNRM0csZ0JBRm1CLEVDOFFaOztBQUlvRztFRDdOM0csaUJBRm1CLEVDZ09aOztBQUl3RztFRDdLdkcsdUJBSlcsRUNrTFo7O0FBSXdHO0VEN0h2Ryx3QkFKVyxFQ2tJWjs7QUFyQitEO0VEaFZ0RSxpQkFIbUIsRUNvVlo7O0FBSW9HO0VEM1EzRyxnQkFGbUIsRUM4UVo7O0FBSW9HO0VEN04zRyxpQkFGbUIsRUNnT1o7O0FBSXdHO0VEN0t2Ryx1QkFKVyxFQ2tMWjs7QUFJd0c7RUQ3SHZHLHdCQUpXLEVDa0laOztBQXJCK0Q7RURoVnRFLFdBSG1CLEVDb1ZaOztBQUlvRztFRDNRM0csVUFGbUIsRUM4UVo7O0FBSW9HO0VEN04zRyxXQUZtQixFQ2dPWjs7QUFJd0c7RUQ3S3ZHLGlCQUpXLEVDa0xaOztBQUl3RztFRDdIdkcsa0JBSlcsRUNrSVo7O0FBckIrRDtFRGhWdEUsaUJBSG1CLEVDb1ZaOztBQUlvRztFRDNRM0csZ0JBRm1CLEVDOFFaOztBQUlvRztFRDdOM0csaUJBRm1CLEVDZ09aOztBQUl3RztFRDdLdkcsdUJBSlcsRUNrTFo7O0FBSXdHO0VEN0h2Ryx3QkFKVyxFQ2tJWjs7QUFyQitEO0VEaFZ0RSxpQkFIbUIsRUNvVlo7O0FBSW9HO0VEM1EzRyxnQkFGbUIsRUM4UVo7O0FBSW9HO0VEN04zRyxpQkFGbUIsRUNnT1o7O0FBSXdHO0VEN0t2Ryx1QkFKVyxFQ2tMWjs7QUFJd0c7RUQ3SHZHLHdCQUpXLEVDa0laOztBQXJCK0Q7RURoVnRFLGFBSG1CLEVDb1ZaOztBQUlvRztFRDNRM0csWUFGbUIsRUM4UVo7O0FBSW9HO0VEN04zRyxhQUZtQixFQ2dPWjs7QUFJd0c7RUQ3S3ZHLG1CQUpXLEVDa0xaOztBQUl3RztFRDdIdkcsb0JBSlcsRUNrSVo7O0FBckIrRDtFRGhWdEUsaUJBSG1CLEVDb1ZaOztBQUlvRztFRDNRM0csZ0JBRm1CLEVDOFFaOztBQUlvRztFRDdOM0csaUJBRm1CLEVDZ09aOztBQUl3RztFRDdLdkcsdUJBSlcsRUNrTFo7O0FBSXdHO0VEN0h2Ryx3QkFKVyxFQ2tJWjs7QUFyQitEO0VEaFZ0RSxpQkFIbUIsRUNvVlo7O0FBSW9HO0VEM1EzRyxnQkFGbUIsRUM4UVo7O0FBSW9HO0VEN04zRyxpQkFGbUIsRUNnT1o7O0FBSXdHO0VEN0t2Ryx1QkFKVyxFQ2tMWjs7QUFJd0c7RUQ3SHZHLHdCQUpXLEVDa0laOztBQXJCK0Q7RURoVnRFLFdBSG1CLEVDb1ZaOztBQUlvRztFRDNRM0csVUFGbUIsRUM4UVo7O0FBSW9HO0VEN04zRyxXQUZtQixFQ2dPWjs7QUFJd0c7RUQ3S3ZHLGlCQUpXLEVDa0xaOztBQUl3RztFRDdIdkcsa0JBSlcsRUNrSVo7O0FBckIrRDtFRGhWdEUsaUJBSG1CLEVDb1ZaOztBQUlvRztFRDNRM0csZ0JBRm1CLEVDOFFaOztBQUlvRztFRDdOM0csaUJBRm1CLEVDZ09aOztBQUl3RztFRDdLdkcsdUJBSlcsRUNrTFo7O0FBSXdHO0VEN0h2Ryx3QkFKVyxFQ2tJWjs7QUFyQitEO0VEaFZ0RSxpQkFIbUIsRUNvVlo7O0FBSW9HO0VEM1EzRyxnQkFGbUIsRUM4UVo7O0FBSW9HO0VEN04zRyxpQkFGbUIsRUNnT1o7O0FBSXdHO0VEN0t2Ryx1QkFKVyxFQ2tMWjs7QUFJd0c7RUQ3SHZHLHdCQUpXLEVDa0laOztBQXJCK0Q7RURoVnRFLGFBSG1CLEVDb1ZaOztBQUlvRztFRDNRM0csWUFGbUIsRUM4UVo7O0FBSW9HO0VEN04zRyxhQUZtQixFQ2dPWjs7QUFJd0c7RUQ3S3ZHLG1CQUpXLEVDa0xaOztBQUl3RztFRDdIdkcsb0JBSlcsRUNrSVo7O0FBckIrRDtFRGhWdEUsaUJBSG1CLEVDb1ZaOztBQUlvRztFRDNRM0csZ0JBRm1CLEVDOFFaOztBQUlvRztFRDdOM0csaUJBRm1CLEVDZ09aOztBQUl3RztFRDdLdkcsdUJBSlcsRUNrTFo7O0FBSXdHO0VEN0h2Ryx3QkFKVyxFQ2tJWjs7QUFyQitEO0VEaFZ0RSxpQkFIbUIsRUNvVlo7O0FBSW9HO0VEM1EzRyxnQkFGbUIsRUM4UVo7O0FBSW9HO0VEN04zRyxpQkFGbUIsRUNnT1o7O0FBSXdHO0VEN0t2Ryx1QkFKVyxFQ2tMWjs7QUFJd0c7RUQ3SHZHLHdCQUpXLEVDa0laOztBQXJCK0Q7RURoVnRFLFdBSG1CLEVDb1ZaOztBQUlvRztFRDNRM0csVUFGbUIsRUM4UVo7O0FBSW9HO0VEN04zRyxXQUZtQixFQ2dPWjs7QUFJd0c7RUQ3S3ZHLGlCQUpXLEVDa0xaOztBQUl3RztFRDdIdkcsa0JBSlcsRUNrSVo7O0FBckIrRDtFRGhWdEUsaUJBSG1CLEVDb1ZaOztBQUlvRztFRDNRM0csZ0JBRm1CLEVDOFFaOztBQUlvRztFRDdOM0csaUJBRm1CLEVDZ09aOztBQUl3RztFRDdLdkcsdUJBSlcsRUNrTFo7O0FBSXdHO0VEN0h2Ryx3QkFKVyxFQ2tJWjs7QUFyQitEO0VEaFZ0RSxpQkFIbUIsRUNvVlo7O0FBSW9HO0VEM1EzRyxnQkFGbUIsRUM4UVo7O0FBSW9HO0VEN04zRyxpQkFGbUIsRUNnT1o7O0FBSXdHO0VEN0t2Ryx1QkFKVyxFQ2tMWjs7QUFJd0c7RUQ3SHZHLHdCQUpXLEVDa0laOztBQXJCK0Q7RURoVnRFLGFBSG1CLEVDb1ZaOztBQUlvRztFRDNRM0csWUFGbUIsRUM4UVo7O0FBSW9HO0VEN04zRyxhQUZtQixFQ2dPWjs7QUFJd0c7RUQ3S3ZHLG1CQUpXLEVDa0xaOztBQUl3RztF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OztBQXNCa0M7RUFHckMsYUFUTyxFQUFNIiwiZmlsZSI6ImluZGV4LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBjaGFyc2V0IFwiVVRGLThcIjtcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBOb3JtYWxpemUuc2NzcyBzZXR0aW5nc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogSW5jbHVkZXMgbGVnYWN5IGJyb3dzZXIgc3VwcG9ydCBJRTYvN1xuICpcbiAqIFNldCB0byBmYWxzZSBpZiB5b3Ugd2FudCB0byBkcm9wIHN1cHBvcnQgZm9yIElFNiBhbmQgSUU3XG4gKi9cbi8qIEJhc2VcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIDEuIFNldCBkZWZhdWx0IGZvbnQgZmFtaWx5IHRvIHNhbnMtc2VyaWYuXG4gKiAyLiBQcmV2ZW50IGlPUyBhbmQgSUUgdGV4dCBzaXplIGFkanVzdCBhZnRlciBkZXZpY2Ugb3JpZW50YXRpb24gY2hhbmdlLFxuICogICAgd2l0aG91dCBkaXNhYmxpbmcgdXNlciB6b29tLlxuICogMy4gQ29ycmVjdHMgdGV4dCByZXNpemluZyBvZGRseSBpbiBJRSA2Lzcgd2hlbiBib2R5IGBmb250LXNpemVgIGlzIHNldCB1c2luZ1xuICogIGBlbWAgdW5pdHMuXG4gKi9cbmh0bWwge1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjtcbiAgLyogMSAqL1xuICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLyogMiAqL1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAqIFJlbW92ZSBkZWZhdWx0IG1hcmdpbi5cbiAqL1xuYm9keSB7XG4gIG1hcmdpbjogMDsgfVxuXG4vKiBIVE1MNSBkaXNwbGF5IGRlZmluaXRpb25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYW55IEhUTUw1IGVsZW1lbnQgaW4gSUUgOC85LlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBkZXRhaWxzYCBvciBgc3VtbWFyeWAgaW4gSUUgMTAvMTFcbiAqIGFuZCBGaXJlZm94LlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBtYWluYCBpbiBJRSAxMS5cbiAqL1xuYXJ0aWNsZSxcbmFzaWRlLFxuZGV0YWlscyxcbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5mb290ZXIsXG5oZWFkZXIsXG5oZ3JvdXAsXG5tYWluLFxubWVudSxcbm5hdixcbnNlY3Rpb24sXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGBpbmxpbmUtYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgaW4gSUUgNi83LzgvOSBhbmQgRmlyZWZveCAzLlxuICogMi4gTm9ybWFsaXplIHZlcnRpY2FsIGFsaWdubWVudCBvZiBgcHJvZ3Jlc3NgIGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICovXG5hdWRpbyxcbmNhbnZhcyxcbnByb2dyZXNzLFxudmlkZW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIC8qIDEgKi9cbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAvKiAyICovIH1cblxuLyoqXG4gKiBQcmV2ZW50cyBtb2Rlcm4gYnJvd3NlcnMgZnJvbSBkaXNwbGF5aW5nIGBhdWRpb2Agd2l0aG91dCBjb250cm9scy5cbiAqIFJlbW92ZSBleGNlc3MgaGVpZ2h0IGluIGlPUyA1IGRldmljZXMuXG4gKi9cbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogMDsgfVxuXG4vKipcbiAqIEFkZHJlc3MgYFtoaWRkZW5dYCBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC5cbiAqIEhpZGUgdGhlIGB0ZW1wbGF0ZWAgZWxlbWVudCBpbiBJRSA4LzkvMTAvMTEsIFNhZmFyaSwgYW5kIEZpcmVmb3ggPCAyMi5cbiAqL1xuW2hpZGRlbl0sXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLyogTGlua3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIGNvbG9yIGZyb20gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICovXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cblxuLyoqXG4gKiBJbXByb3ZlIHJlYWRhYmlsaXR5IG9mIGZvY3VzZWQgZWxlbWVudHMgd2hlbiB0aGV5IGFyZSBhbHNvIGluIGFuXG4gKiBhY3RpdmUvaG92ZXIgc3RhdGUuXG4gKi9cbmE6YWN0aXZlLCBhOmhvdmVyIHtcbiAgb3V0bGluZTogMDsgfVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC8xMSwgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQ7IH1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxlIHNldCB0byBgYm9sZGVyYCBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZDsgfVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAqL1xuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljOyB9XG5cbi8qKlxuICogQWRkcmVzcyB2YXJpYWJsZSBgaDFgIGZvbnQtc2l6ZSBhbmQgbWFyZ2luIHdpdGhpbiBgc2VjdGlvbmAgYW5kIGBhcnRpY2xlYFxuICogY29udGV4dHMgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwOyB9XG5cbi8qKlxuICogQWRkcmVzc2VzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LlxuICovXG5tYXJrIHtcbiAgYmFja2dyb3VuZDogI2ZmMDtcbiAgY29sb3I6ICMwMDA7IH1cblxuLyoqXG4gKiBBZGRyZXNzIGluY29uc2lzdGVudCBhbmQgdmFyaWFibGUgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqL1xuc21hbGwge1xuICBmb250LXNpemU6IDgwJTsgfVxuXG4vKipcbiAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGFmZmVjdGluZyBgbGluZS1oZWlnaHRgIGluIGFsbCBicm93c2Vycy5cbiAqL1xuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgfVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTsgfVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07IH1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogMS4gUmVtb3ZlIGJvcmRlciB3aGVuIGluc2lkZSBgYWAgZWxlbWVudCBpbiBJRSA4LzkvMTAuXG4gKiAyLiBJbXByb3ZlcyBpbWFnZSBxdWFsaXR5IHdoZW4gc2NhbGVkIGluIElFIDcuXG4gKi9cbmltZyB7XG4gIGJvcmRlcjogMDsgfVxuXG4vKipcbiAqIENvcnJlY3Qgb3ZlcmZsb3cgbm90IGhpZGRlbiBpbiBJRSA5LzEwLzExLlxuICovXG5zdmc6bm90KDpyb290KSB7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLyogR3JvdXBpbmcgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogQWRkcmVzcyBtYXJnaW4gbm90IHByZXNlbnQgaW4gSUUgOC85IGFuZCBTYWZhcmkuXG4gKi9cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMWVtIDQwcHg7IH1cblxuLyoqXG4gKiBBZGRyZXNzIGRpZmZlcmVuY2VzIGJldHdlZW4gRmlyZWZveCBhbmQgb3RoZXIgYnJvd3NlcnMuXG4gKi9cbmhyIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGhlaWdodDogMDsgfVxuXG4vKipcbiAqIENvbnRhaW4gb3ZlcmZsb3cgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5wcmUge1xuICBvdmVyZmxvdzogYXV0bzsgfVxuXG4vKipcbiAqIEFkZHJlc3Mgb2RkIGBlbWAtdW5pdCBmb250IHNpemUgcmVuZGVyaW5nIGluIGFsbCBicm93c2Vycy5cbiAqIENvcnJlY3QgZm9udCBmYW1pbHkgc2V0IG9kZGx5IGluIElFIDYsIFNhZmFyaSA0LzUsIGFuZCBDaHJvbWUuXG4gKi9cbmNvZGUsXG5rYmQsXG5wcmUsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDFlbTsgfVxuXG4vKiBGb3Jtc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogS25vd24gbGltaXRhdGlvbjogYnkgZGVmYXVsdCwgQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWCBhbGxvdyB2ZXJ5IGxpbWl0ZWRcbiAqIHN0eWxpbmcgb2YgYHNlbGVjdGAsIHVubGVzcyBhIGBib3JkZXJgIHByb3BlcnR5IGlzIHNldC5cbiAqL1xuLyoqXG4gKiAxLiBDb3JyZWN0IGNvbG9yIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4gKiAgS25vd24gaXNzdWU6IGFmZmVjdHMgY29sb3Igb2YgZGlzYWJsZWQgZWxlbWVudHMuXG4gKiAyLiBDb3JyZWN0IGZvbnQgcHJvcGVydGllcyBub3QgYmVpbmcgaW5oZXJpdGVkLlxuICogMy4gQWRkcmVzcyBtYXJnaW5zIHNldCBkaWZmZXJlbnRseSBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKiA0LiBJbXByb3ZlcyBhcHBlYXJhbmNlIGFuZCBjb25zaXN0ZW5jeSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICAvKiAxICovXG4gIGZvbnQ6IGluaGVyaXQ7XG4gIC8qIDIgKi9cbiAgbWFyZ2luOiAwO1xuICAvKiAzICovIH1cblxuLyoqXG4gKiBBZGRyZXNzIGBvdmVyZmxvd2Agc2V0IHRvIGBoaWRkZW5gIGluIElFIDgvOS8xMC8xMS5cbiAqL1xuYnV0dG9uIHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7IH1cblxuLyoqXG4gKiBBZGRyZXNzIGluY29uc2lzdGVudCBgdGV4dC10cmFuc2Zvcm1gIGluaGVyaXRhbmNlIGZvciBgYnV0dG9uYCBhbmQgYHNlbGVjdGAuXG4gKiBBbGwgb3RoZXIgZm9ybSBjb250cm9sIGVsZW1lbnRzIGRvIG5vdCBpbmhlcml0IGB0ZXh0LXRyYW5zZm9ybWAgdmFsdWVzLlxuICogQ29ycmVjdCBgYnV0dG9uYCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LCBJRSA4LzkvMTAvMTEsIGFuZCBPcGVyYS5cbiAqIENvcnJlY3QgYHNlbGVjdGAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveC5cbiAqL1xuYnV0dG9uLFxuc2VsZWN0IHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7IH1cblxuLyoqXG4gKiAxLiBBdm9pZCB0aGUgV2ViS2l0IGJ1ZyBpbiBBbmRyb2lkIDQuMC4qIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYFxuICogIGFuZCBgdmlkZW9gIGNvbnRyb2xzLlxuICogMi4gQ29ycmVjdCBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIGBpbnB1dGAgdHlwZXMgaW4gaU9TLlxuICogMy4gSW1wcm92ZSB1c2FiaWxpdHkgYW5kIGNvbnNpc3RlbmN5IG9mIGN1cnNvciBzdHlsZSBiZXR3ZWVuIGltYWdlLXR5cGVcbiAqICBgaW5wdXRgIGFuZCBvdGhlcnMuXG4gKiA0LiBSZW1vdmVzIGlubmVyIHNwYWNpbmcgaW4gSUUgNyB3aXRob3V0IGFmZmVjdGluZyBub3JtYWwgdGV4dCBpbnB1dHMuXG4gKiAgS25vd24gaXNzdWU6IGlubmVyIHNwYWNpbmcgcmVtYWlucyBpbiBJRSA2LlxuICovXG5idXR0b24sXG5odG1sIGlucHV0W3R5cGU9XCJidXR0b25cIl0sIGlucHV0W3R5cGU9XCJyZXNldFwiXSxcbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgLyogMiAqL1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIC8qIDMgKi8gfVxuXG4vKipcbiAqIFJlLXNldCBkZWZhdWx0IGN1cnNvciBmb3IgZGlzYWJsZWQgZWxlbWVudHMuXG4gKi9cbmJ1dHRvbltkaXNhYmxlZF0sXG5odG1sIGlucHV0W2Rpc2FibGVkXSB7XG4gIGN1cnNvcjogZGVmYXVsdDsgfVxuXG4vKipcbiAqIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBib3JkZXIgaW4gRmlyZWZveCA0Ky5cbiAqL1xuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7IH1cblxuLyoqXG4gKiBBZGRyZXNzIEZpcmVmb3ggNCsgc2V0dGluZyBgbGluZS1oZWlnaHRgIG9uIGBpbnB1dGAgdXNpbmcgYCFpbXBvcnRhbnRgIGluXG4gKiB0aGUgVUEgc3R5bGVzaGVldC5cbiAqL1xuaW5wdXQge1xuICBsaW5lLWhlaWdodDogbm9ybWFsOyB9XG5cbi8qKlxuICogMS4gQWRkcmVzcyBib3ggc2l6aW5nIHNldCB0byBgY29udGVudC1ib3hgIGluIElFIDgvOS8xMC5cbiAqIDIuIFJlbW92ZSBleGNlc3MgcGFkZGluZyBpbiBJRSA4LzkvMTAuXG4gKiAgS25vd24gaXNzdWU6IGV4Y2VzcyBwYWRkaW5nIHJlbWFpbnMgaW4gSUUgNi5cbiAqL1xuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLyogMSAqL1xuICBwYWRkaW5nOiAwO1xuICAvKiAyICovIH1cblxuLyoqXG4gKiBGaXggdGhlIGN1cnNvciBzdHlsZSBmb3IgQ2hyb21lJ3MgaW5jcmVtZW50L2RlY3JlbWVudCBidXR0b25zLiBGb3IgY2VydGFpblxuICogYGZvbnQtc2l6ZWAgdmFsdWVzIG9mIHRoZSBgaW5wdXRgLCBpdCBjYXVzZXMgdGhlIGN1cnNvciBzdHlsZSBvZiB0aGVcbiAqIGRlY3JlbWVudCBidXR0b24gdG8gY2hhbmdlIGZyb20gYGRlZmF1bHRgIHRvIGB0ZXh0YC5cbiAqL1xuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87IH1cblxuLyoqXG4gKiAxLiBBZGRyZXNzIGBhcHBlYXJhbmNlYCBzZXQgdG8gYHNlYXJjaGZpZWxkYCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAqIDIuIEFkZHJlc3MgYGJveC1zaXppbmdgIHNldCB0byBgYm9yZGVyLWJveGAgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gKi9cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbiAgLyogMSAqL1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIHNlYXJjaCBjYW5jZWwgYnV0dG9uIGluIFNhZmFyaSBhbmQgQ2hyb21lIG9uIE9TIFguXG4gKiBTYWZhcmkgKGJ1dCBub3QgQ2hyb21lKSBjbGlwcyB0aGUgY2FuY2VsIGJ1dHRvbiB3aGVuIHRoZSBzZWFyY2ggaW5wdXQgaGFzXG4gKiBwYWRkaW5nIChhbmQgYHRleHRmaWVsZGAgYXBwZWFyYW5jZSkuXG4gKi9cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyB9XG5cbi8qKlxuICogRGVmaW5lIGNvbnNpc3RlbnQgYm9yZGVyLCBtYXJnaW4sIGFuZCBwYWRkaW5nLlxuICovXG5maWVsZHNldCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gIG1hcmdpbjogMCAycHg7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjYyNWVtIDAuNzVlbTsgfVxuXG4vKipcbiAqIDEuIENvcnJlY3QgYGNvbG9yYCBub3QgYmVpbmcgaW5oZXJpdGVkIGluIElFIDgvOS8xMC8xMS5cbiAqIDIuIFJlbW92ZSBwYWRkaW5nIHNvIHBlb3BsZSBhcmVuJ3QgY2F1Z2h0IG91dCBpZiB0aGV5IHplcm8gb3V0IGZpZWxkc2V0cy5cbiAqIDMuIENvcnJlY3RzIHRleHQgbm90IHdyYXBwaW5nIGluIEZpcmVmb3ggMy5cbiAqIDQuIENvcnJlY3RzIGFsaWdubWVudCBkaXNwbGF5ZWQgb2RkbHkgaW4gSUUgNi83LlxuICovXG5sZWdlbmQge1xuICBib3JkZXI6IDA7XG4gIC8qIDEgKi9cbiAgcGFkZGluZzogMDtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICogUmVtb3ZlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDgvOS8xMC8xMS5cbiAqL1xudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bzsgfVxuXG4vKipcbiAqIERvbid0IGluaGVyaXQgdGhlIGBmb250LXdlaWdodGAgKGFwcGxpZWQgYnkgYSBydWxlIGFib3ZlKS5cbiAqIE5PVEU6IHRoZSBkZWZhdWx0IGNhbm5vdCBzYWZlbHkgYmUgY2hhbmdlZCBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYLlxuICovXG5vcHRncm91cCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi8qIFRhYmxlc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogUmVtb3ZlIG1vc3Qgc3BhY2luZyBiZXR3ZWVuIHRhYmxlIGNlbGxzLlxuICovXG50YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGJvcmRlci1zcGFjaW5nOiAwOyB9XG5cbnRkLFxudGgge1xuICBwYWRkaW5nOiAwOyB9XG5cbmgxLFxuaDIsXG5oMyxcbmg0LFxuLnNjLW1lZ2EtaGVhZGluZyxcbi5zYy1zdXBlci1oZWFkaW5nLFxuLnNjLWxhcmdlLWhlYWRpbmcsXG4uc2Mtc21hbGwtaGVhZGluZywgLnNjLXByb2R1Y3QtY2FyZC1wb3YtY2F0IGZpZ3VyZSBmaWdjYXB0aW9uLCAuc2MtZmxhZywgLnNjLWZsYWctdG9wLXJhdGVkLCAuc2MtZmxhZy1pbnN0YW50LXNhdmluZ3MsIC5zYy1mbGFnLXNob2NraW5nLXZhbHVlcywgLnNjLWZsYWctYmVzdC1zZWxsZXIsIC5zYy1mbGFnLXNhbXMtZXhjbHVzaXZlLCAuc2Mtc3BlYy10YWJsZSB0ZCB7XG4gIGZvbnQtZmFtaWx5OiBcImJyZWUtc2VyaWZcIiwgc2VyaWY7IH1cblxuYm9keSxcbi5zYy10ZXh0LWJvZHksIC5zYy1vdmVybGF5IC5zYy1ub3RpZmljYXRpb24gaDEge1xuICBmb250LWZhbWlseTogXCJha3Rpdi1ncm90ZXNrLXN0ZFwiLCBzYW5zLXNlcmlmOyB9XG5cbmJvZHksXG4uc2MtdGV4dC1ib2R5IHtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBsaW5lLWhlaWdodDogMS42MThlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOyB9XG5cbmVtLFxuLnNjLXRleHQtZW1waGFzaXMge1xuICBmb250LXdlaWdodDogNTAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7IH1cblxuc21hbGwsXG4uc2MtdGV4dC1zbWFsbCwgLnNjLXByb2R1Y3QtY2FyZCAuc2MtZnJlZS1zaGlwcGluZyB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7IH1cblxuLnNjLXRleHQtZXh0cmFzbWFsbCB7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgbGluZS1oZWlnaHQ6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cblxuYSxcbmE6aG92ZXIsXG5hOnZpc2l0ZWQge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIG91dGxpbmU6IG5vbmU7IH1cblxuOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTsgfVxuXG5oMSxcbi5zYy1tZWdhLWhlYWRpbmcge1xuICBmb250LXNpemU6IDY0cHg7XG4gIGxpbmUtaGVpZ2h0OiA3MnB4OyB9XG5cbmgyLFxuLnNjLXN1cGVyLWhlYWRpbmcge1xuICBmb250LXNpemU6IDQwcHg7XG4gIGxpbmUtaGVpZ2h0OiA0OHB4OyB9XG5cbmgzLFxuLnNjLWxhcmdlLWhlYWRpbmcge1xuICBmb250LXNpemU6IDI0cHg7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4OyB9XG5cbmg0LFxuLnNjLXNtYWxsLWhlYWRpbmcge1xuICBmb250LXNpemU6IDE1cHg7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4OyB9XG5cbi5zYy10ZXh0LWJsdWUge1xuICBjb2xvcjogIzI5NzlGRjsgfVxuXG4uc2MtdGV4dC1saWdodGJsdWUsIC5zYy1wcm9kdWN0LWNhcmQgLnNjLWZyZWUtc2hpcHBpbmcge1xuICBjb2xvcjogIzI5QjZGNjsgfVxuXG4uc2MtdGV4dC1ncmVlbiwgLnNjLW92ZXJsYXkgLnNjLWNvbnRlbnQgLnNjLW1vbmV5LWJveCAuc2Mtc3Vic2NyaXB0aW9uLWZyZXF1ZW5jeSB7XG4gIGNvbG9yOiAjMDBDODUzOyB9XG5cbi5zYy1zdHJpa2V0aHJvdWdoIHtcbiAgY29sb3I6ICNBN0E3QTc7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5zYy1zdHJpa2V0aHJvdWdoOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiA0NSU7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0VGNTg0NzsgfVxuXG4uc2MtcHJpY2Uge1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICB3aWR0aDogMTAwJTtcbiAgbWluLXdpZHRoOiAxMDBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3R0b206IC0zcHg7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7IH1cbiAgLnNjLXByaWNlIC5zYy1kb2xsYXJzIHtcbiAgICBmb250LXNpemU6IDI0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDI5cHg7XG4gICAgcGFkZGluZzogMCAycHggMCA5cHg7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gIC5zYy1wcmljZSAuc2MtY3VycmVuY3ksXG4gIC5zYy1wcmljZSAuc2MtY2VudHMge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG5cbi5zYy1ncmF5IHtcbiAgY29sb3I6ICNBN0E3QTc7IH1cblxuLnNjLWJyZWFkY3J1bWIge1xuICBtYXJnaW4tbGVmdDogMDtcbiAgcGFkZGluZy1sZWZ0OiAzMnB4OyB9XG4gIC5zYy1icmVhZGNydW1iIGxpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgY29sb3I6ICMwMEM4NTM7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDsgfVxuICAgIC5zYy1icmVhZGNydW1iIGxpOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcgPiAnO1xuICAgICAgY29sb3I6ICNFOUU3RTI7XG4gICAgICBwYWRkaW5nOiAwIDhweDsgfVxuICAgIC5zYy1icmVhZGNydW1iIGxpOmxhc3QtY2hpbGQ6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwYWRkaW5nOiAwOyB9XG5cbi5zYy1idXR0b24ge1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgY29sb3I6IHdoaXRlO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICBoZWlnaHQ6IDMycHg7XG4gIHBhZGRpbmctbGVmdDogMTZweDtcbiAgcGFkZGluZy1yaWdodDogMTZweDsgfVxuICAuc2MtYnV0dG9uOmFjdGl2ZSwgLnNjLWJ1dHRvbjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTsgfVxuXG4uc2MtYnV0dG9uLXJvdW5kIHtcbiAgd2lkdGg6IDMwcHg7XG4gIGhlaWdodDogMzBweDtcbiAgYm9yZGVyLXJhZGl1czogMzBweDtcbiAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gIGJhY2tncm91bmQ6ICNGOEY3RjU7XG4gIGNvbG9yOiAjQjFCMEFFOyB9XG5cbi5zYy1idXR0b24tZ3JlZW4ge1xuICBiYWNrZ3JvdW5kOiAjMDBDODUzOyB9XG5cbi5zYy1idXR0b24tcmVkIHtcbiAgYmFja2dyb3VuZDogI0VGNTM1MDsgfVxuXG4uc2MtY2FyZCB7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYm94LXNoYWRvdzogMCAxcHggMnB4IHJnYmEoMTgsIDE4LCAxOCwgMC4wOCksIDAgM3B4IDZweCByZ2JhKDAsIDAsIDAsIDAuMDYpO1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcGFkZGluZzogMTZweDtcbiAgdmVydGljYWwtYWxpZ246IHRvcDsgfVxuXG4uc2MtcHJvZHVjdC1jYXJkLnNjLXByb2R1Y3QtY2FyZC1zbWFsbCB7XG4gIGhlaWdodDogMzU4cHg7XG4gIHdpZHRoOiAyMzhweDsgfVxuICAuc2MtcHJvZHVjdC1jYXJkLnNjLXByb2R1Y3QtY2FyZC1zbWFsbCBmaWd1cmUge1xuICAgIGhlaWdodDogMjM2cHg7IH1cbiAgICAuc2MtcHJvZHVjdC1jYXJkLnNjLXByb2R1Y3QtY2FyZC1zbWFsbCBmaWd1cmUgaW1nIHtcbiAgICAgIGhlaWdodDogMTkwcHg7IH1cblxuLnNjLXByb2R1Y3QtY2FyZC5zYy1wcm9kdWN0LWNhcmQtbWVkaXVtIHtcbiAgaGVpZ2h0OiAzOTlweDtcbiAgd2lkdGg6IDI4NXB4OyB9XG4gIC5zYy1wcm9kdWN0LWNhcmQuc2MtcHJvZHVjdC1jYXJkLW1lZGl1bSBmaWd1cmUge1xuICAgIGhlaWdodDogMjY3cHg7IH1cbiAgICAuc2MtcHJvZHVjdC1jYXJkLnNjLXByb2R1Y3QtY2FyZC1tZWRpdW0gZmlndXJlIGltZyB7XG4gICAgICBoZWlnaHQ6IDIyMXB4OyB9XG5cbi5zYy1wcm9kdWN0LWNhcmQuc2MtcHJvZHVjdC1jYXJkLWxhcmdlIHtcbiAgaGVpZ2h0OiA0NzBweDtcbiAgd2lkdGg6IDM4MHB4OyB9XG4gIC5zYy1wcm9kdWN0LWNhcmQuc2MtcHJvZHVjdC1jYXJkLWxhcmdlIGZpZ3VyZSB7XG4gICAgaGVpZ2h0OiAzNDhweDsgfVxuICAgIC5zYy1wcm9kdWN0LWNhcmQuc2MtcHJvZHVjdC1jYXJkLWxhcmdlIGZpZ3VyZSBpbWcge1xuICAgICAgaGVpZ2h0OiAyODRweDsgfVxuXG4uc2MtcHJvZHVjdC1jYXJkLnNjLXByb2R1Y3QtY2FyZC1tZWRpdW0gLnNjLXByb21vLWluZm9ybWF0aW9uLFxuLnNjLXByb2R1Y3QtY2FyZC5zYy1wcm9kdWN0LWNhcmQtbGFyZ2UgLnNjLXByb21vLWluZm9ybWF0aW9uIHtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBsaW5lLWhlaWdodDogMTlweDsgfVxuXG4uc2MtcHJvZHVjdC1jYXJkIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIHBhZGRpbmc6IDE2cHg7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5zYy1wcm9kdWN0LWNhcmQgLnNjLWNhcmQtZmxhZyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTZweDtcbiAgICBsZWZ0OiAxNnB4O1xuICAgIHotaW5kZXg6IDEwOyB9XG4gIC5zYy1wcm9kdWN0LWNhcmQgaGVhZGVyIGgxLFxuICAuc2MtcHJvZHVjdC1jYXJkIGhlYWRlciBoMixcbiAgLnNjLXByb2R1Y3QtY2FyZCBoZWFkZXIgaDMsXG4gIC5zYy1wcm9kdWN0LWNhcmQgaGVhZGVyIGg0IHtcbiAgICBtYXJnaW4tdG9wOiAwOyB9XG4gIC5zYy1wcm9kdWN0LWNhcmQgc2VjdGlvbiB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC5zYy1wcm9kdWN0LWNhcmQgZmlndXJlIHtcbiAgICBtYXJnaW46IDA7XG4gICAgaGVpZ2h0OiAyNjhweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLnNjLXByb2R1Y3QtY2FyZCBhLFxuICAuc2MtcHJvZHVjdC1jYXJkIGE6aG92ZXIsXG4gIC5zYy1wcm9kdWN0LWNhcmQgYTp2aXNpdGVkIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY29sb3I6IHJnYmEoMzQsIDM0LCAzNCwgMC44KTsgfVxuICAuc2MtcHJvZHVjdC1jYXJkIGZpZ2NhcHRpb24ge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxOXB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBwYWRkaW5nLXRvcDogOHB4OyB9XG4gIC5zYy1wcm9kdWN0LWNhcmQgLnNjLWRldGFpbHMge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgLnNjLXByb2R1Y3QtY2FyZCAuc2MtcmF0aW5nIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBjb2xvcjogI2U5ZTdlMjtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgbWFyZ2luLXRvcDogNXB4O1xuICAgIG1hcmdpbi1yaWdodDogNXB4OyB9XG4gICAgLnNjLXByb2R1Y3QtY2FyZCAuc2MtcmF0aW5nIC5zdGFyIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZTsgfVxuICAgIC5zYy1wcm9kdWN0LWNhcmQgLnNjLXJhdGluZyAuc3RhcjphZnRlciB7XG4gICAgICBjb250ZW50OiAnKic7XG4gICAgICBmb250LXNpemU6IDI0cHg7IH1cbiAgICAuc2MtcHJvZHVjdC1jYXJkIC5zYy1yYXRpbmcgLnNjLXllbGxvdyB7XG4gICAgICBjb2xvcjogI2Y4ZTcxYzsgfVxuICAuc2MtcHJvZHVjdC1jYXJkIC5zYy1mcmVlLXNoaXBwaW5nIHtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDsgfVxuICAuc2MtcHJvZHVjdC1jYXJkIGZvb3RlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMTZweDtcbiAgICByaWdodDogMTZweDtcbiAgICBsZWZ0OiAxNnB4O1xuICAgIGNvbG9yOiByZ2JhKDM0LCAzNCwgMzQsIDAuOCk7IH1cbiAgICAuc2MtcHJvZHVjdC1jYXJkIGZvb3RlciAuc2MtcHJvbW8taW5mb3JtYXRpb24ge1xuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxNnB4OyB9XG4gICAgICAuc2MtcHJvZHVjdC1jYXJkIGZvb3RlciAuc2MtcHJvbW8taW5mb3JtYXRpb24gKyAuc2MtcHJvbW8taW5mb3JtYXRpb24ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTlweDsgfVxuICAgIC5zYy1wcm9kdWN0LWNhcmQgZm9vdGVyID4gLnNjLXByb21vLWluZm9ybWF0aW9uLnNjLWdyYXkge1xuICAgICAgbGluZS1oZWlnaHQ6IDE5cHg7IH1cbiAgICAuc2MtcHJvZHVjdC1jYXJkIGZvb3RlciAuc2MtcHJpY2Utc3RyaWtldGhyb3VnaCB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgIGNvbG9yOiAjRUY1MzUwO1xuICAgICAgaGVpZ2h0OiAxOXB4O1xuICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDE5cHg7IH1cbiAgICAgIC5zYy1wcm9kdWN0LWNhcmQgZm9vdGVyIC5zYy1wcmljZS1zdHJpa2V0aHJvdWdoIC5zYy1vbGQtcHJpY2Uge1xuICAgICAgICBjb2xvcjogIzk1OTU5NTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsgfVxuICAgIC5zYy1wcm9kdWN0LWNhcmQgZm9vdGVyIC5zYy1wcmljZS1wcmVmaXgge1xuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGJvdHRvbTogLTNweDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IC41ZW07XG4gICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgZm9udC1zaXplOiAxM3B4OyB9XG4gICAgLnNjLXByb2R1Y3QtY2FyZCBmb290ZXIgLnNjLW90aGVyLXByaWNpbmcge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgZm9udC13ZWlnaHQ6IDUwMDsgfVxuICAgIC5zYy1wcm9kdWN0LWNhcmQgZm9vdGVyIGEuc2MtbGluay1ncmVlbiB7XG4gICAgICBjb2xvcjogIzQzQTA0NzsgfVxuICAgIC5zYy1wcm9kdWN0LWNhcmQgZm9vdGVyIC5zYy1hY3Rpb25zIHtcbiAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cblxuLnNjLW92ZXJsYXkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMzQsIDM0LCAzNCwgMC44KTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICBjb2xvcjogd2hpdGU7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB6LWluZGV4OiAxOyB9XG4gIC5zYy1vdmVybGF5IC5zYy1ub3RpZmljYXRpb24ge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgICAuc2Mtb3ZlcmxheSAuc2Mtbm90aWZpY2F0aW9uIGgxIHtcbiAgICAgIG1hcmdpbjogMDsgfVxuICAuc2Mtb3ZlcmxheSAuc2MtY29udGVudCB7XG4gICAgZGlzcGxheTogdGFibGUtcm93O1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgIGNvbG9yOiBibGFjaztcbiAgICBtaW4taGVpZ2h0OiAxODlweDsgfVxuICAgIC5zYy1vdmVybGF5IC5zYy1jb250ZW50IC5zYy1jaGFubmVscyB7XG4gICAgICBoZWlnaHQ6IDUycHg7XG4gICAgICBiYWNrZ3JvdW5kOiAjRjlGOUY5OyB9XG4gICAgICAuc2Mtb3ZlcmxheSAuc2MtY29udGVudCAuc2MtY2hhbm5lbHMgLnNjLWNoYW5uZWwtdGl0bGUge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAtNHB4O1xuICAgICAgICBwYWRkaW5nLXRvcDogNHB4O1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7IH1cbiAgICAgIC5zYy1vdmVybGF5IC5zYy1jb250ZW50IC5zYy1jaGFubmVscyAuc2Mtb3V0LW9mLXN0b2NrIC5zYy1jaGFubmVsLXRpdGxlIHtcbiAgICAgICAgY29sb3I6ICNkMDAyMWI7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC44cHg7IH1cbiAgICAgIC5zYy1vdmVybGF5IC5zYy1jb250ZW50IC5zYy1jaGFubmVscyAuc2Mtb3V0LW9mLXN0b2NrIC5zYy1sb2NhdGlvbiB7XG4gICAgICAgIGNvbG9yOiByZ2JhKDM0LCAzNCwgMzQsIDAuOCk7XG4gICAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE4cHg7IH1cbiAgICAgIC5zYy1vdmVybGF5IC5zYy1jb250ZW50IC5zYy1jaGFubmVscyAuc2MtY2hhbm5lbHMge1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG4gICAgICAuc2Mtb3ZlcmxheSAuc2MtY29udGVudCAuc2MtY2hhbm5lbHMgLnNjLWNoYW5uZWwge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMnB4KTtcbiAgICAgICAgd2lkdGg6IGNhbGMoNTAlIC0gMnB4KTtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsgfVxuICAgICAgICAuc2Mtb3ZlcmxheSAuc2MtY29udGVudCAuc2MtY2hhbm5lbHMgLnNjLWNoYW5uZWwgLnNjLXByaWNlIHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgYm90dG9tOiAzcHg7IH1cbiAgICAgICAgICAuc2Mtb3ZlcmxheSAuc2MtY29udGVudCAuc2MtY2hhbm5lbHMgLnNjLWNoYW5uZWwgLnNjLXByaWNlIC5zYy1kb2xsYXJzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDsgfVxuICAgICAgICAgIC5zYy1vdmVybGF5IC5zYy1jb250ZW50IC5zYy1jaGFubmVscyAuc2MtY2hhbm5lbCAuc2MtcHJpY2UgLnNjLWN1cnJlbmN5LFxuICAgICAgICAgIC5zYy1vdmVybGF5IC5zYy1jb250ZW50IC5zYy1jaGFubmVscyAuc2MtY2hhbm5lbCAuc2MtcHJpY2UgLnNjLWNlbnRzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDsgfVxuICAgICAgICAgIC5zYy1vdmVybGF5IC5zYy1jb250ZW50IC5zYy1jaGFubmVscyAuc2MtY2hhbm5lbCAuc2MtcHJpY2UgLnNjLWN1cnJlbmN5IHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtOXB4OyB9XG4gICAgICAuc2Mtb3ZlcmxheSAuc2MtY29udGVudCAuc2MtY2hhbm5lbHMgLnNjLXNlbGVjdGVkLWNoYW5uZWwgLnNjLXByaWNlIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogIzAwQzg1MzsgfVxuICAgIC5zYy1vdmVybGF5IC5zYy1jb250ZW50IC5zYy1tb25leS1ib3gge1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIHBhZGRpbmc6IDFlbTsgfVxuICAgICAgLnNjLW92ZXJsYXkgLnNjLWNvbnRlbnQgLnNjLW1vbmV5LWJveCAuc2MtcHJpY2luZy1kZXRhaWxzIHtcbiAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMTdweDsgfVxuICAgICAgICAuc2Mtb3ZlcmxheSAuc2MtY29udGVudCAuc2MtbW9uZXktYm94IC5zYy1wcmljaW5nLWRldGFpbHMgLnNjLXVuaXQtcHJpY2U6bm90KDpvbmx5LWNoaWxkKSB7XG4gICAgICAgICAgY29sb3I6ICNBN0E3QTc7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogMWVtOyB9XG4gICAgICAuc2Mtb3ZlcmxheSAuc2MtY29udGVudCAuc2MtbW9uZXktYm94IC5zYy11bml0cy1jaG9vc2VyIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMWVtOyB9XG4gICAgICAgIC5zYy1vdmVybGF5IC5zYy1jb250ZW50IC5zYy1tb25leS1ib3ggLnNjLXVuaXRzLWNob29zZXIgLnNjLWlucHV0IHtcbiAgICAgICAgICB3aWR0aDogNjRweDtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogOHB4O1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICBmb250LXdlaWdodDogNTAwOyB9XG4gICAgICAgIC5zYy1vdmVybGF5IC5zYy1jb250ZW50IC5zYy1tb25leS1ib3ggLnNjLXVuaXRzLWNob29zZXIgLnNjLXNwcml0ZS1taW51cyB7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgIGJvdHRvbTogNXB4O1xuICAgICAgICAgIHJpZ2h0OiA3cHg7IH1cbiAgICAgICAgLnNjLW92ZXJsYXkgLnNjLWNvbnRlbnQgLnNjLW1vbmV5LWJveCAuc2MtdW5pdHMtY2hvb3NlciAuc2Mtc3ByaXRlLXBsdXMge1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICB0b3A6IDFweDtcbiAgICAgICAgICByaWdodDogOHB4OyB9XG4gICAgICAuc2Mtb3ZlcmxheSAuc2MtY29udGVudCAuc2MtbW9uZXktYm94IC5zYy1zdWJzY3JpcHRpb24ge1xuICAgICAgICBtYXJnaW4tdG9wOiAxZW07XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDsgfVxuICAgICAgLnNjLW92ZXJsYXkgLnNjLWNvbnRlbnQgLnNjLW1vbmV5LWJveCAuc2Mtc3Vic2NyaXB0aW9uLWZyZXF1ZW5jeSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7IH1cbiAgICAgIC5zYy1vdmVybGF5IC5zYy1jb250ZW50IC5zYy1tb25leS1ib3ggLnNjLWFjdGlvbnMge1xuICAgICAgICBtYXJnaW4tdG9wOiAxZW07XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDNweDsgfVxuICAgICAgICAuc2Mtb3ZlcmxheSAuc2MtY29udGVudCAuc2MtbW9uZXktYm94IC5zYy1hY3Rpb25zIC5zYy1idXR0b24ge1xuICAgICAgICAgIHdpZHRoOiA1MCU7IH1cblxuLnNjLXByb2R1Y3QtY2FyZC1saXN0IHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuICAuc2MtcHJvZHVjdC1jYXJkLWxpc3QgLnNjLXByb2R1Y3QtY2FyZCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxZW07XG4gICAgd2lkdGg6IDIzOHB4OyB9XG5cbi8qXG5cbiAgUExQIENhcmRzXG5cbiovXG4vKlxuXG4gIENhcm91c2VsIENhcmRzXG5cbiovXG4uc2MtcHJvZHVjdC1jYXJkLXJlbGF0ZWQtY2F0IHtcbiAgaGVpZ2h0OiAxMTJweDtcbiAgd2lkdGg6IDIzOHB4OyB9XG4gIC5zYy1wcm9kdWN0LWNhcmQtcmVsYXRlZC1jYXQgZmlndXJlIHtcbiAgICB3aWR0aDogMjA2cHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBtYXJnaW46IDA7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAgIC5zYy1wcm9kdWN0LWNhcmQtcmVsYXRlZC1jYXQgZmlndXJlIGltZyB7XG4gICAgICBoZWlnaHQ6IDgwcHg7XG4gICAgICB3aWR0aDogODBweDtcbiAgICAgIG1hcmdpbjogMCAxNnB4IDAgMDsgfVxuICAgIC5zYy1wcm9kdWN0LWNhcmQtcmVsYXRlZC1jYXQgZmlndXJlIGZpZ2NhcHRpb24ge1xuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuXG4uc2MtcHJvZHVjdC1jYXJkLXBvdi1jYXQge1xuICBoZWlnaHQ6IDMyMXB4O1xuICB3aWR0aDogMjM4cHg7XG4gIHBhZGRpbmc6IDI0cHggMTZweCA0MHB4IDE2cHg7IH1cbiAgLnNjLXByb2R1Y3QtY2FyZC1wb3YtY2F0IGZpZ3VyZSB7XG4gICAgd2lkdGg6IDIwNnB4O1xuICAgIG1hcmdpbjogMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAuc2MtcHJvZHVjdC1jYXJkLXBvdi1jYXQgZmlndXJlIGltZyB7XG4gICAgICBoZWlnaHQ6IDE3OHB4O1xuICAgICAgd2lkdGg6IDE3OHB4O1xuICAgICAgbWFyZ2luOiAwIDAgMjRweCAwOyB9XG4gICAgLnNjLXByb2R1Y3QtY2FyZC1wb3YtY2F0IGZpZ3VyZSBmaWdjYXB0aW9uIHtcbiAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIGhlaWdodDogNjBweDtcbiAgICAgIGNvbG9yOiAjNGQ0ZDRkO1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4uc2MtY29udGVudC1jYXJkLXNtYWxsIHtcbiAgaGVpZ2h0OiAzNThweDtcbiAgd2lkdGg6IDIzOHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBmb250LXNpemU6IDE1cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjYxOGVtOyB9XG5cbi5zYy1jb250ZW50LWNhcmQtbWVkaXVtIHtcbiAgaGVpZ2h0OiAzOTlweDtcbiAgd2lkdGg6IDI4NXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBmb250LXNpemU6IDE1cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjYxOGVtOyB9XG5cbi5zYy1jb250ZW50LWNhcmQtbGFyZ2Uge1xuICBoZWlnaHQ6IDQ3MHB4O1xuICB3aWR0aDogMzgwcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgbGluZS1oZWlnaHQ6IDEuNjE4ZW07IH1cblxuLnNjLWlucHV0LWxhYmVsIHtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7IH1cblxuLnNjLWNoZWNrYm94IHtcbiAgd2lkdGg6IDIwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgcGFkZGluZy1yaWdodDogOHB4OyB9XG4gIC5zYy1jaGVja2JveCBsYWJlbCB7XG4gICAgd2lkdGg6IDIwcHg7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkOGQ4ZDg7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuICAgIC5zYy1jaGVja2JveCBsYWJlbDphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHdpZHRoOiA5cHg7XG4gICAgICBoZWlnaHQ6IDVweDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNHB4O1xuICAgICAgbGVmdDogNHB4O1xuICAgICAgYm9yZGVyOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItdG9wOiBub25lO1xuICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTsgfVxuICAgIC5zYy1jaGVja2JveCBsYWJlbDpob3Zlcjo6YWZ0ZXIge1xuICAgICAgb3BhY2l0eTogMDsgfVxuICAuc2MtY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF0ge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuICAgIC5zYy1jaGVja2JveCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkICsgbGFiZWw6YWZ0ZXIge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIGJvcmRlci1jb2xvcjogIzAxY2M3NTsgfVxuXG4uc2MtZmxhZywgLnNjLWZsYWctdG9wLXJhdGVkLCAuc2MtZmxhZy1pbnN0YW50LXNhdmluZ3MsIC5zYy1mbGFnLXNob2NraW5nLXZhbHVlcywgLnNjLWZsYWctYmVzdC1zZWxsZXIsIC5zYy1mbGFnLXNhbXMtZXhjbHVzaXZlIHtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBsaW5lLWhlaWdodDogMTlweDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGhlaWdodDogMjJweDtcbiAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuICBjb2xvcjogd2hpdGU7IH1cblxuLnNjLWZsYWctYmx1ZSwgLnNjLWZsYWctdG9wLXJhdGVkIHtcbiAgYmFja2dyb3VuZDogIzI5QjZGNjsgfVxuXG4uc2MtZmxhZy1yZWQsIC5zYy1mbGFnLWluc3RhbnQtc2F2aW5ncyB7XG4gIGJhY2tncm91bmQ6ICNFRjUzNTA7IH1cblxuLnNjLWZsYWctb3JhbmdlLCAuc2MtZmxhZy1zaG9ja2luZy12YWx1ZXMsIC5zYy1mbGFnLWJlc3Qtc2VsbGVyLCAuc2MtZmxhZy1zYW1zLWV4Y2x1c2l2ZSB7XG4gIGJhY2tncm91bmQ6ICNGRkE3MjY7IH1cblxuLnNjLWNvbnRhaW5lcjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBjbGVhcjogYm90aDtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7IH1cblxuLnNjLXBhcmVudDpiZWZvcmUsXG4uc2MtcHJvZHVjdC1ncmlkIC5wcm9kdWN0czpiZWZvcmUsXG4uc2MtcGFyZW50OmFmdGVyLCAuc2MtcHJvZHVjdC1ncmlkIC5wcm9kdWN0czphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBib3JkZXItc3BhY2luZzogMDsgfVxuXG4uc2MtcGFyZW50OmFmdGVyLCAuc2MtcHJvZHVjdC1ncmlkIC5wcm9kdWN0czphZnRlciB7XG4gIGNsZWFyOiBib3RoOyB9XG5cbi5zYy1wYXJlbnQsIC5zYy1wcm9kdWN0LWdyaWQgLnByb2R1Y3RzIHtcbiAgem9vbTogMTsgfVxuXG4uc2MtcHVzaC0wLCAuc2MtcHVzaC0xLCAuc2MtcHVzaC0yLCAuc2MtcHVzaC0zLCAuc2MtcHVzaC00LCAuc2MtcHVzaC01LCAuc2MtcHVzaC02LCAuc2MtcHVzaC03LCAuc2MtcHVzaC04LCAuc2MtcHVzaC05LCAuc2MtcHVzaC0xMCwgLnNjLXB1c2gtMTEsIC5zYy1wdXNoLTEyLCAuc2MtcHVzaC0xMywgLnNjLXB1c2gtMTQsIC5zYy1wdXNoLTE1LCAuc2MtcHVzaC0xNiwgLnNjLXB1c2gtMTcsIC5zYy1wdXNoLTE4LCAuc2MtcHVzaC0xOSwgLnNjLXB1c2gtMjAsIC5zYy1wdXNoLTIxLCAuc2MtcHVzaC0yMiwgLnNjLXB1c2gtMjMsIC5zYy1wdXNoLTI0LCAuc2MtcHVsbC0wLCAuc2MtcHVsbC0xLCAuc2MtcHVsbC0yLCAuc2MtcHVsbC0zLCAuc2MtcHVsbC00LCAuc2MtcHVsbC01LCAuc2MtcHVsbC02LCAuc2MtcHVsbC03LCAuc2MtcHVsbC04LCAuc2MtcHVsbC05LCAuc2MtcHVsbC0xMCwgLnNjLXB1bGwtMTEsIC5zYy1wdWxsLTEyLCAuc2MtcHVsbC0xMywgLnNjLXB1bGwtMTQsIC5zYy1wdWxsLTE1LCAuc2MtcHVsbC0xNiwgLnNjLXB1bGwtMTcsIC5zYy1wdWxsLTE4LCAuc2MtcHVsbC0xOSwgLnNjLXB1bGwtMjAsIC5zYy1wdWxsLTIxLCAuc2MtcHVsbC0yMiwgLnNjLXB1bGwtMjMsIC5zYy1wdWxsLTI0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbi5zYy1jb250YWluZXIge1xuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuXG4uc2MtcGFyZW50LCAuc2MtcHJvZHVjdC1ncmlkIC5wcm9kdWN0cyB7XG4gIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cbi5zYy1ncmlkLTAsIC5zYy1ncmlkLTEsIC5zYy1ncmlkLTIsIC5zYy1ncmlkLTMsIC5zYy1ncmlkLTQsIC5zYy1ncmlkLTUsIC5zYy1ncmlkLTYsIC5zYy1ncmlkLTcsIC5zYy1ncmlkLTgsIC5zYy1ncmlkLTksIC5zYy1ncmlkLTEwLCAuc2MtZ3JpZC0xMSwgLnNjLWdyaWQtMTIsIC5zYy1ncmlkLTEzLCAuc2MtZ3JpZC0xNCwgLnNjLWdyaWQtMTUsIC5zYy1ncmlkLTE2LCAuc2MtZ3JpZC0xNywgLnNjLWdyaWQtMTgsIC5zYy1ncmlkLTE5LCAuc2MtZ3JpZC0yMCwgLnNjLWdyaWQtMjEsIC5zYy1ncmlkLTIyLCAuc2MtZ3JpZC0yMywgLnNjLWdyaWQtMjQsIC5zYy1wcm9kdWN0LWdyaWQgLnJlZmluZW1lbnRzLCAuc2MtcHJvZHVjdC1ncmlkIC5wcm9kdWN0cywgLnNjLXByb2R1Y3QtZ3JpZCAucHJvZHVjdHMgLnNjLXByb2R1Y3QtY2FyZCwgLnNjLXByb2R1Y3QtZ3JpZC5jb2xsYXBzZWQgLnByb2R1Y3RzIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtaW4taGVpZ2h0OiAxcHg7XG4gIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cbi8qKlxuICogU3RyIHJlcGxhY2VcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gICRzdHJpbmcgICAgU3RyaW5nIHRoYXQgeW91IHdhbnQgdG8gcmVwbGFjZVxuICogQHBhcmFtIHtzdHJpbmd9ICAkc3Vic3RyICAgIFN0cmluZyB0aGF0IGlzIHRvIGJlIHJlcGxhY2VkIGJ5IGAkbmV3c3Vic3RyYFxuICogQHBhcmFtIHtzdHJpbmd9ICAkbmV3c3Vic3RyIFN0cmluZyB0aGF0IHJlcGxhY2VzIGAkc3Vic3RyYFxuICogQHBhcmFtIHtudW1iZXIqfSAkYWxsICAgICAgIEZsYWcgZm9yIHJlcGxhY2VpbmcgYWxsICgxKykgb3Igbm90ICgwKVxuICogQHJldHVybiB7c3RyaW5nfVxuICovXG4vKipcbiAqIE1hcCBzZXRcbiAqXG4gKiBAcGFyYW0gXHRNYXAgXHQkbWFwIFx0XHRUaGUgbWFwIHRvIHVzZVxuICogQHBhcmFtIFx0U3RyaW5nIFx0JGtleSBcdFx0VGhlIGtleSB0byB1cGRhdGVcbiAqIEBwYXJhbSBcdE1peGVkIFx0JHZhbHVlIFx0XHRUaGUgbmV3IHZhbHVlXG4gKiBAcmV0dXJuIFx0TWFwIFx0XHRcdFRoZSBuZXcgbWFwXG4gKi9cbi8qKlxuICogR2V0IHRoZSBjb2x1bW4gd2lkdGggaW4gcGVyY2VudCBmb3IgdGhlIGdsb2JhbCBvciBhIHNwZWNpZmljIGNvbnRleHRcbiAqXG4gKiBAcGFyYW0gXHRpbnQgXHRcdCRjb2x1bW5zIFx0XHRcdFx0XHRUaGUgbnVtYmVyIG9mIGNvbHVtbnMgdG8gY2FsY3VsYXRlXG4gKiBAcGFyYW0gXHRpbnQgXHRcdCRjb250ZXh0IDogJGdyaWRsZS1jb2x1bW5zLWNvdW50IFx0IFx0VGhlIGNvbnRleHQgdG8gdXNlXG4gKiBAcmV0dXJuIFx0cGVyY2VudGFnZSBcdFx0XHRcdFx0XHRcdFRoZSB3aWR0aCBpbiBwZXJjZW50XG4gKi9cbi8qKlxuICogIEdldCBhIHN0YXRlIG1hcFxuICpcbiAqIEBwYXJhbSBcdHN0cmluZyBcdFx0JG5hbWUgXHRcdFRoZSBuYW1lIG9mIHRoZSBzdGF0ZSB0byBnZXRcbiAqIEByZXR1cm4gXHRtYXAgXHRcdFx0XHRBIHN0YXRlIG1hcCBvYmplY3RcbiAqL1xuLyoqXG4gKiBDaGVjayBpZiBhIHN0YXRlIGV4aXN0IDpcbiAqXG4gKiBAcGFyYW0gXHRzdHJpbmcgXHRcdCRuYW1lIFx0XHRUaGUgbmFtZSBvZiB0aGUgc3RhdGUgdG8gY2hlY2tcbiAqIEByZXR1cm4gXHRCb29sZWFuIFx0XHRcdHRydWUgaXMgZXhpc3RcbiAqL1xuLyoqXG4gKiBHZXQgdGhlIG1lZGlhIHF1ZXJpZXMgdmFyaWFibGVzIDpcbiAqXG4gKiBAcGFyYW0gXHRpbnQgXHRcdCRpbmRleCBcdCBcdFRoZSBtZWRpYSBxdWVyeSBpbmRlc1xuICogQHBhcmFtIFx0U3RyaW5nIFx0XHQkdmFyIFx0XHRUaGUgbWVkaWEgcXVlcnkgdmFyaWFibGUgbmFtZVxuICogQHJldHVybiBcdFN0cmluZ3xpbnQgXHRcdFx0VGhlIHZhcmlhYmxlIHZhbHVlXG4gKi9cbi8qKlxuICogR2V0IGEgdmFyaWFibGVcbiAqXG4gKiBAcGFyYW0gXHRTdHJpbmcgXHRcdCR2YXJOYW1lIFx0XHRcdFx0VGhlIHZhcmlhYmxlIG5hbWVcbiAqIEBwYXJhbSAgXHRTdHJpbmcgXHRcdCRzdGF0ZU1hcC1vci1zdGF0ZU5hbWUgXHQgXHRUaGUgc3RhdGUgbmFtZSBvciBhIG1hcCBzdGF0ZSB2YWx1ZVxuICogQHJldHVybiBcdE1peGVkIFx0XHRcdFx0XHRcdFx0VGhlIGZpbmRlZCB2YWx1ZVxuICovXG4vKipcbiAqIFNldCBhIHZhcmlhYmxlIGluIGEgc3RhdGVcbiAqIEBwYXJhbSBcdE1peGVkICRzdGF0ZU5hbWUtb3Itc3RhdGVJbmRleCBcdFRoZSBzdGF0ZSBuYW1lIG9mIHN0YXRlIGluZGV4XG4gKiBAcGFyYW0gIFx0U3RyaW5nICR2YXIgICAgICAgICAgICAgICAgICAgIFx0XHRWYXJpYWJsZSBuYW1lIHRvIGFzc2lnblxuICogQHBhcmFtICBcdE1peGVkICRuZXdWYWx1ZSAgICAgICAgICBcdFx0VGhlIG5ldyB2YWx1ZSB0byBhc3NpZ25cbiAqIEByZXR1cm4gXHRMaXN0ICAgICAgICAgICAgICAgICAgICAgICAgIFx0XHRcdFRoZSBzdGF0ZXMgbGlzdCAoZnVsbClcbiAqL1xuLyoqXG4gKiBHZW5lcmF0ZSBhIGNvbHVtblxuICpcbiAqIEBwYXJhbSBcdFN0cmluZyBcdFx0JG5hbWUgXHRcdFx0VGhlIGNvbHVtbiBuYW1lIChvZnRlbiBjb3VudClcbiAqIEBwYXJhbSBcdGludCBcdFx0JGNvbHVtbnMgXHRcdFRoZSBjb2x1bW4gY291bnQgdGhhdCB0aGUgY29sdW1uIHdpbGwgdGFrZVxuICogQHBhcmFtIFx0aW50IFx0XHQkY29udGV4dCBcdFx0VGhlIGNvbnRleHQgb24gd2l0Y2ggdGhlIHdpdGggd2lsbCBiZSBjYWxjdWxlZFxuICogQHBhcmFtIFx0Qm9vbGVhbiBcdCRnZW5lcmF0ZUNsYXNzZXMgXHRTZXQgaWYgdGhlIGNvbHVtbiBoYXMgdG8gYmUgZ2VuZXJhdGVkIGluIGNzc1xuICovXG4vKipcbiAqIEdlbmVyYXRlIGNsYXNzbmFtZVxuICpcbiAqIEBwYXJhbSBcdExpc3QgXHRcdCRwYXJyZXJuIFx0VGhlIHBhdHRlcm4gdG8gdXNlIHRvIGdlbmVyYXRlIGNsYXNzbmFtZVxuICogQHBhcmFtIFx0U3RyaW5nIFx0XHQkc3RhdGUgXHRcdFRoZSBzdGF0ZVxuICogQHBhcmFtIFx0aW50IFx0XHQkY291bnQgXHRcdFRoZSBjb2x1bW4gY291bnRcbiAqL1xuLyoqXG4gKiBHZXQgdGhlIG1lZGlhIHF1ZXJ5IGZvciBhIHBhcnRpY3VsYXIgc3RhdGUsIG9yIHdpdGgsIGV0Yy4uLlxuICpcbiAqIEBwYXJhbSBcdE1peGVkIFx0XHQkc3RhdGUtb3ItbWluLXdpZHRoIFx0XHRUaGUgc3RhdGUgbmFtZSBvZiB0aGUgbWluIHdpdGhcbiAqIEBwYXJhbSBcdE1peGVkIFx0XHQkbWF4LXdpZHRoIFx0XHRcdFRoZSBtYXggd2lkdGggaWYgZmlyc3QgcGFyYW0gaXMgYSBtaW4gd2lkdGhcbiAqIEByZXR1cm4gXHRTdHJpbmcgXHRcdFx0XHRcdFx0VGhlIG1lZGlhIHF1ZXJ5IHN0cmluZyB3aXRob3V0IHRoZSBAbWVkaWFcbiAqL1xuLyoqXG4gKiBHZXQgc3RhdGVzIGNvdW50XG4gKiBcbiAqIEByZXR1cm4gXHRpbnQgXHRUaGUgbnVtYmVyIG9mIHN0YXRlcyBkZWZpbmVkXG4gKi9cbi8qKlxuICogU2V0dXBcbiAqL1xuLyoqXG4gKiAgUmVnaXN0ZXIgYSBjbGVhciBlYWNoIGNsYXNzXG4gKi9cbi8qKlxuICogUmVnaXN0ZXIgYSBzcGVjaWFsIGNsYXNzXG4gKi9cbi8qKlxuICogUmVnaXN0ZXIgZGVmYXVsdCBzdGF0ZXNcbiAqL1xuLyoqXG4gKiBSZWdpc3RlciBkZWZhdWx0IG1vYmlsZSBmaXJzdCBzdGF0ZXMgOlxuICovXG4vKipcbiAqIFNldCB0aGUgZGVidWcgZGV2aWNlIChub3QgdXNlZCBmb3Igbm93KVxuICogXG4gKiBAcGFyYW0gXHRTdHJpbmcgXHRcdCRzdGF0ZSBcdFx0VGhlIHN0YXRlIHRvIHVwZGF0ZVxuICogQHBhcmEgbSBcdFN0cmluZyBcdFx0JGRldmljZSBcdFRoZSBkZXZpY2UgdG8gdXNlIChpcGhvbmUsIGV0Yy4uLilcbiAqL1xuLyoqXG4gKiBQYXJlbnQgY2xlYXIgZWFjaFxuICovXG4vKipcbiAqIFZlcnRpY2FsIGFsaWduIDpcbiAqL1xuLyoqXG4gKiBTaG93IGlubGluZVxuICpcbiAqIEBwYXJhbSBcdFN0cmluZyBcdFx0JHN0YXRlIFx0XHRUaGUgc3RhdGUgbmFtZVxuICovXG4vKipcbiAqIEdlbmVyYXRlIGEgY3VzdG9tIGNsYXNzIGZvciBhbGwgdGhlIHN0YXRlc1xuICpcbiAqIEBwYXJhbSBcdGxpc3QgXHQkcGF0dGVybiBcdFx0VGhlIG5hbWUgcGF0dGVybiBvZiB0aGUgY2xhc3NcbiAqIEBwYXJhbSBcdGxpc3QgXHQkc3RhdGVzTmFtZXMgXHRcdFRoZSBzdGF0ZXMgbmFtZXMgdG8gZ2VuZXJhdGVcbiAqL1xuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDAwcHgpIHtcbiAgQC1tcy12aWV3cG9ydCB7XG4gICAgd2lkdGg6IGRldmljZS13aWR0aDsgfSB9XG5cbiNncmlkbGUtc2V0dGluZ3Mge1xuICBjb250ZW50OiAneyBcXFxcXCJ2ZXJzaW9uXFxcXFwiIDogXFxcXFwiMS4zLjQwXFxcXFwiLCBcXFxcXCJzdGF0ZXNcXFxcXCIgOiB7IFxcXFxcInJldGluYVxcXFxcIjp7IFxcXFxcInF1ZXJ5XFxcXFwiIDogXFxcXFwiKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSwgKG1pbi1yZXNvbHV0aW9uOiAyZHBweClcXFxcXCIsIFxcXFxcImNsYXNzZXNcXFxcXCIgOiBmYWxzZSwgXFxcXFwibmFtZVxcXFxcIiA6IFxcXFxcInJldGluYVxcXFxcIiwgXFxcXFwiX2dyaWRsZVxcXFxcIiA6IHRydWUgfSwgXFxcXFwidHZcXFxcXCI6eyBcXFxcXCJxdWVyeVxcXFxcIiA6IFxcXFxcIm9ubHkgdHZcXFxcXCIsIFxcXFxcImNsYXNzZXNcXFxcXCIgOiBmYWxzZSwgXFxcXFwibmFtZVxcXFxcIiA6IFxcXFxcInR2XFxcXFwiLCBcXFxcXCJfZ3JpZGxlXFxcXFwiIDogdHJ1ZSB9LCBcXFxcXCJwcmludFxcXFxcIjp7IFxcXFxcInF1ZXJ5XFxcXFwiIDogXFxcXFwib25seSBwcmludFxcXFxcIiwgXFxcXFwiY2xhc3Nlc1xcXFxcIiA6IGZhbHNlLCBcXFxcXCJuYW1lXFxcXFwiIDogXFxcXFwicHJpbnRcXFxcXCIsIFxcXFxcIl9ncmlkbGVcXFxcXCIgOiB0cnVlIH0sIFxcXFxcInBvcnRyYWl0XFxcXFwiOnsgXFxcXFwicXVlcnlcXFxcXCIgOiBcXFxcXCJvbmx5IHNjcmVlbiBhbmQgKG9yaWVudGF0aW9uOiBwb3J0cmFpdClcXFxcXCIsIFxcXFxcImNsYXNzZXNcXFxcXCIgOiBmYWxzZSwgXFxcXFwibmFtZVxcXFxcIiA6IFxcXFxcInBvcnRyYWl0XFxcXFwiLCBcXFxcXCJfZ3JpZGxlXFxcXFwiIDogdHJ1ZSB9LCBcXFxcXCJsYW5kc2NhcGVcXFxcXCI6eyBcXFxcXCJxdWVyeVxcXFxcIiA6IFxcXFxcIm9ubHkgc2NyZWVuIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSlcXFxcXCIsIFxcXFxcImNsYXNzZXNcXFxcXCIgOiBmYWxzZSwgXFxcXFwibmFtZVxcXFxcIiA6IFxcXFxcImxhbmRzY2FwZVxcXFxcIiwgXFxcXFwiX2dyaWRsZVxcXFxcIiA6IHRydWUgfSwgXFxcXFwiZGVmYXVsdFxcXFxcIjp7IFxcXFxcIm5hbWVcXFxcXCIgOiBcXFxcXCJkZWZhdWx0XFxcXFwiLCBcXFxcXCJtaW4td2lkdGhcXFxcXCIgOiBudWxsLCBcXFxcXCJtYXgtd2lkdGhcXFxcXCIgOiBudWxsLCBcXFxcXCJxdWVyeVxcXFxcIiA6IG51bGwsIFxcXFxcImNsYXNzZXNcXFxcXCIgOiB0cnVlLCBcXFxcXCJjb250ZXh0XFxcXFwiIDogXFxcXFwiMjRcXFxcXCIsIFxcXFxcImd1dHRlci13aWR0aFxcXFxcIiA6IFxcXFxcIjMycHhcXFxcXCIsIFxcXFxcImRpcmVjdGlvblxcXFxcIiA6IFxcXFxcImx0clxcXFxcIiwgXFxcXFwibmFtZS1tdWx0aXBsaWNhdG9yXFxcXFwiIDogXFxcXFwiMVxcXFxcIiwgXFxcXFwiZGVidWdcXFxcXCIgOiBmYWxzZSwgXFxcXFwiZGVidWctc2hvdy1jbGFzcy1uYW1lc1xcXFxcIiA6IHRydWUsIFxcXFxcImllNy1zdXBwb3J0XFxcXFwiIDogZmFsc2UsIFxcXFxcImh0bWwtc3RhdGVzLWNsYXNzZXNcXFxcXCIgOiBmYWxzZSwgXFxcXFwiZ2VuZXJhdGUtcHVzaC1jbGFzc2VzXFxcXFwiIDogdHJ1ZSwgXFxcXFwiZ2VuZXJhdGUtcHVsbC1jbGFzc2VzXFxcXFwiIDogdHJ1ZSwgXFxcXFwiZ2VuZXJhdGUtcHJlZml4LWNsYXNzZXNcXFxcXCIgOiB0cnVlLCBcXFxcXCJnZW5lcmF0ZS1zdWZmaXgtY2xhc3Nlc1xcXFxcIiA6IHRydWUsIFxcXFxcImdlbmVyYXRlLWhlbHBlcnMtY2xhc3Nlc1xcXFxcIiA6IHRydWUsIFxcXFxcIl9ncmlkbGVcXFxcXCIgOiB0cnVlIH19IH0nOyB9XG5cbi5zYy1ncmlkLTAsIC5zYy1ncmlkLTEsIC5zYy1ncmlkLTIsIC5zYy1ncmlkLTMsIC5zYy1ncmlkLTQsIC5zYy1ncmlkLTUsIC5zYy1ncmlkLTYsIC5zYy1ncmlkLTcsIC5zYy1ncmlkLTgsIC5zYy1ncmlkLTksIC5zYy1ncmlkLTEwLCAuc2MtZ3JpZC0xMSwgLnNjLWdyaWQtMTIsIC5zYy1ncmlkLTEzLCAuc2MtZ3JpZC0xNCwgLnNjLWdyaWQtMTUsIC5zYy1ncmlkLTE2LCAuc2MtZ3JpZC0xNywgLnNjLWdyaWQtMTgsIC5zYy1ncmlkLTE5LCAuc2MtZ3JpZC0yMCwgLnNjLWdyaWQtMjEsIC5zYy1ncmlkLTIyLCAuc2MtZ3JpZC0yMywgLnNjLWdyaWQtMjQge1xuICBmbG9hdDogbGVmdDtcbiAgZGlyZWN0aW9uOiBsdHI7XG4gIHBhZGRpbmctbGVmdDogMTZweDtcbiAgcGFkZGluZy1yaWdodDogMTZweDsgfVxuXG4uc2MtZ3JpZC0wIHtcbiAgd2lkdGg6IDAlOyB9XG5cbi5zYy1wdXNoLTAge1xuICBsZWZ0OiAwJTsgfVxuXG4uc2MtcHVsbC0wIHtcbiAgcmlnaHQ6IDAlOyB9XG5cbi5zYy1wcmVmaXgtMCB7XG4gIG1hcmdpbi1sZWZ0OiAwJTsgfVxuXG4uc2Mtc3VmZml4LTAge1xuICBtYXJnaW4tcmlnaHQ6IDAlOyB9XG5cbi5zYy1ncmlkLTEge1xuICB3aWR0aDogNC4xNjY2NyU7IH1cblxuLnNjLXB1c2gtMSB7XG4gIGxlZnQ6IDQuMTY2NjclOyB9XG5cbi5zYy1wdWxsLTEge1xuICByaWdodDogNC4xNjY2NyU7IH1cblxuLnNjLXByZWZpeC0xIHtcbiAgbWFyZ2luLWxlZnQ6IDQuMTY2NjclOyB9XG5cbi5zYy1zdWZmaXgtMSB7XG4gIG1hcmdpbi1yaWdodDogNC4xNjY2NyU7IH1cblxuLnNjLWdyaWQtMiB7XG4gIHdpZHRoOiA4LjMzMzMzJTsgfVxuXG4uc2MtcHVzaC0yIHtcbiAgbGVmdDogOC4zMzMzMyU7IH1cblxuLnNjLXB1bGwtMiB7XG4gIHJpZ2h0OiA4LjMzMzMzJTsgfVxuXG4uc2MtcHJlZml4LTIge1xuICBtYXJnaW4tbGVmdDogOC4zMzMzMyU7IH1cblxuLnNjLXN1ZmZpeC0yIHtcbiAgbWFyZ2luLXJpZ2h0OiA4LjMzMzMzJTsgfVxuXG4uc2MtZ3JpZC0zIHtcbiAgd2lkdGg6IDEyLjUlOyB9XG5cbi5zYy1wdXNoLTMge1xuICBsZWZ0OiAxMi41JTsgfVxuXG4uc2MtcHVsbC0zIHtcbiAgcmlnaHQ6IDEyLjUlOyB9XG5cbi5zYy1wcmVmaXgtMyB7XG4gIG1hcmdpbi1sZWZ0OiAxMi41JTsgfVxuXG4uc2Mtc3VmZml4LTMge1xuICBtYXJnaW4tcmlnaHQ6IDEyLjUlOyB9XG5cbi5zYy1ncmlkLTQge1xuICB3aWR0aDogMTYuNjY2NjclOyB9XG5cbi5zYy1wdXNoLTQge1xuICBsZWZ0OiAxNi42NjY2NyU7IH1cblxuLnNjLXB1bGwtNCB7XG4gIHJpZ2h0OiAxNi42NjY2NyU7IH1cblxuLnNjLXByZWZpeC00IHtcbiAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY3JTsgfVxuXG4uc2Mtc3VmZml4LTQge1xuICBtYXJnaW4tcmlnaHQ6IDE2LjY2NjY3JTsgfVxuXG4uc2MtZ3JpZC01IHtcbiAgd2lkdGg6IDIwLjgzMzMzJTsgfVxuXG4uc2MtcHVzaC01IHtcbiAgbGVmdDogMjAuODMzMzMlOyB9XG5cbi5zYy1wdWxsLTUge1xuICByaWdodDogMjAuODMzMzMlOyB9XG5cbi5zYy1wcmVmaXgtNSB7XG4gIG1hcmdpbi1sZWZ0OiAyMC44MzMzMyU7IH1cblxuLnNjLXN1ZmZpeC01IHtcbiAgbWFyZ2luLXJpZ2h0OiAyMC44MzMzMyU7IH1cblxuLnNjLWdyaWQtNiB7XG4gIHdpZHRoOiAyNSU7IH1cblxuLnNjLXB1c2gtNiB7XG4gIGxlZnQ6IDI1JTsgfVxuXG4uc2MtcHVsbC02IHtcbiAgcmlnaHQ6IDI1JTsgfVxuXG4uc2MtcHJlZml4LTYge1xuICBtYXJnaW4tbGVmdDogMjUlOyB9XG5cbi5zYy1zdWZmaXgtNiB7XG4gIG1hcmdpbi1yaWdodDogMjUlOyB9XG5cbi5zYy1ncmlkLTcge1xuICB3aWR0aDogMjkuMTY2NjclOyB9XG5cbi5zYy1wdXNoLTcge1xuICBsZWZ0OiAyOS4xNjY2NyU7IH1cblxuLnNjLXB1bGwtNyB7XG4gIHJpZ2h0OiAyOS4xNjY2NyU7IH1cblxuLnNjLXByZWZpeC03IHtcbiAgbWFyZ2luLWxlZnQ6IDI5LjE2NjY3JTsgfVxuXG4uc2Mtc3VmZml4LTcge1xuICBtYXJnaW4tcmlnaHQ6IDI5LjE2NjY3JTsgfVxuXG4uc2MtZ3JpZC04IHtcbiAgd2lkdGg6IDMzLjMzMzMzJTsgfVxuXG4uc2MtcHVzaC04IHtcbiAgbGVmdDogMzMuMzMzMzMlOyB9XG5cbi5zYy1wdWxsLTgge1xuICByaWdodDogMzMuMzMzMzMlOyB9XG5cbi5zYy1wcmVmaXgtOCB7XG4gIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMyU7IH1cblxuLnNjLXN1ZmZpeC04IHtcbiAgbWFyZ2luLXJpZ2h0OiAzMy4zMzMzMyU7IH1cblxuLnNjLWdyaWQtOSB7XG4gIHdpZHRoOiAzNy41JTsgfVxuXG4uc2MtcHVzaC05IHtcbiAgbGVmdDogMzcuNSU7IH1cblxuLnNjLXB1bGwtOSB7XG4gIHJpZ2h0OiAzNy41JTsgfVxuXG4uc2MtcHJlZml4LTkge1xuICBtYXJnaW4tbGVmdDogMzcuNSU7IH1cblxuLnNjLXN1ZmZpeC05IHtcbiAgbWFyZ2luLXJpZ2h0OiAzNy41JTsgfVxuXG4uc2MtZ3JpZC0xMCB7XG4gIHdpZHRoOiA0MS42NjY2NyU7IH1cblxuLnNjLXB1c2gtMTAge1xuICBsZWZ0OiA0MS42NjY2NyU7IH1cblxuLnNjLXB1bGwtMTAge1xuICByaWdodDogNDEuNjY2NjclOyB9XG5cbi5zYy1wcmVmaXgtMTAge1xuICBtYXJnaW4tbGVmdDogNDEuNjY2NjclOyB9XG5cbi5zYy1zdWZmaXgtMTAge1xuICBtYXJnaW4tcmlnaHQ6IDQxLjY2NjY3JTsgfVxuXG4uc2MtZ3JpZC0xMSB7XG4gIHdpZHRoOiA0NS44MzMzMyU7IH1cblxuLnNjLXB1c2gtMTEge1xuICBsZWZ0OiA0NS44MzMzMyU7IH1cblxuLnNjLXB1bGwtMTEge1xuICByaWdodDogNDUuODMzMzMlOyB9XG5cbi5zYy1wcmVmaXgtMTEge1xuICBtYXJnaW4tbGVmdDogNDUuODMzMzMlOyB9XG5cbi5zYy1zdWZmaXgtMTEge1xuICBtYXJnaW4tcmlnaHQ6IDQ1LjgzMzMzJTsgfVxuXG4uc2MtZ3JpZC0xMiB7XG4gIHdpZHRoOiA1MCU7IH1cblxuLnNjLXB1c2gtMTIge1xuICBsZWZ0OiA1MCU7IH1cblxuLnNjLXB1bGwtMTIge1xuICByaWdodDogNTAlOyB9XG5cbi5zYy1wcmVmaXgtMTIge1xuICBtYXJnaW4tbGVmdDogNTAlOyB9XG5cbi5zYy1zdWZmaXgtMTIge1xuICBtYXJnaW4tcmlnaHQ6IDUwJTsgfVxuXG4uc2MtZ3JpZC0xMyB7XG4gIHdpZHRoOiA1NC4xNjY2NyU7IH1cblxuLnNjLXB1c2gtMTMge1xuICBsZWZ0OiA1NC4xNjY2NyU7IH1cblxuLnNjLXB1bGwtMTMge1xuICByaWdodDogNTQuMTY2NjclOyB9XG5cbi5zYy1wcmVmaXgtMTMge1xuICBtYXJnaW4tbGVmdDogNTQuMTY2NjclOyB9XG5cbi5zYy1zdWZmaXgtMTMge1xuICBtYXJnaW4tcmlnaHQ6IDU0LjE2NjY3JTsgfVxuXG4uc2MtZ3JpZC0xNCB7XG4gIHdpZHRoOiA1OC4zMzMzMyU7IH1cblxuLnNjLXB1c2gtMTQge1xuICBsZWZ0OiA1OC4zMzMzMyU7IH1cblxuLnNjLXB1bGwtMTQge1xuICByaWdodDogNTguMzMzMzMlOyB9XG5cbi5zYy1wcmVmaXgtMTQge1xuICBtYXJnaW4tbGVmdDogNTguMzMzMzMlOyB9XG5cbi5zYy1zdWZmaXgtMTQge1xuICBtYXJnaW4tcmlnaHQ6IDU4LjMzMzMzJTsgfVxuXG4uc2MtZ3JpZC0xNSB7XG4gIHdpZHRoOiA2Mi41JTsgfVxuXG4uc2MtcHVzaC0xNSB7XG4gIGxlZnQ6IDYyLjUlOyB9XG5cbi5zYy1wdWxsLTE1IHtcbiAgcmlnaHQ6IDYyLjUlOyB9XG5cbi5zYy1wcmVmaXgtMTUge1xuICBtYXJnaW4tbGVmdDogNjIuNSU7IH1cblxuLnNjLXN1ZmZpeC0xNSB7XG4gIG1hcmdpbi1yaWdodDogNjIuNSU7IH1cblxuLnNjLWdyaWQtMTYge1xuICB3aWR0aDogNjYuNjY2NjclOyB9XG5cbi5zYy1wdXNoLTE2IHtcbiAgbGVmdDogNjYuNjY2NjclOyB9XG5cbi5zYy1wdWxsLTE2IHtcbiAgcmlnaHQ6IDY2LjY2NjY3JTsgfVxuXG4uc2MtcHJlZml4LTE2IHtcbiAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY3JTsgfVxuXG4uc2Mtc3VmZml4LTE2IHtcbiAgbWFyZ2luLXJpZ2h0OiA2Ni42NjY2NyU7IH1cblxuLnNjLWdyaWQtMTcge1xuICB3aWR0aDogNzAuODMzMzMlOyB9XG5cbi5zYy1wdXNoLTE3IHtcbiAgbGVmdDogNzAuODMzMzMlOyB9XG5cbi5zYy1wdWxsLTE3IHtcbiAgcmlnaHQ6IDcwLjgzMzMzJTsgfVxuXG4uc2MtcHJlZml4LTE3IHtcbiAgbWFyZ2luLWxlZnQ6IDcwLjgzMzMzJTsgfVxuXG4uc2Mtc3VmZml4LTE3IHtcbiAgbWFyZ2luLXJpZ2h0OiA3MC44MzMzMyU7IH1cblxuLnNjLWdyaWQtMTgge1xuICB3aWR0aDogNzUlOyB9XG5cbi5zYy1wdXNoLTE4IHtcbiAgbGVmdDogNzUlOyB9XG5cbi5zYy1wdWxsLTE4IHtcbiAgcmlnaHQ6IDc1JTsgfVxuXG4uc2MtcHJlZml4LTE4IHtcbiAgbWFyZ2luLWxlZnQ6IDc1JTsgfVxuXG4uc2Mtc3VmZml4LTE4IHtcbiAgbWFyZ2luLXJpZ2h0OiA3NSU7IH1cblxuLnNjLWdyaWQtMTkge1xuICB3aWR0aDogNzkuMTY2NjclOyB9XG5cbi5zYy1wdXNoLTE5IHtcbiAgbGVmdDogNzkuMTY2NjclOyB9XG5cbi5zYy1wdWxsLTE5IHtcbiAgcmlnaHQ6IDc5LjE2NjY3JTsgfVxuXG4uc2MtcHJlZml4LTE5IHtcbiAgbWFyZ2luLWxlZnQ6IDc5LjE2NjY3JTsgfVxuXG4uc2Mtc3VmZml4LTE5IHtcbiAgbWFyZ2luLXJpZ2h0OiA3OS4xNjY2NyU7IH1cblxuLnNjLWdyaWQtMjAge1xuICB3aWR0aDogODMuMzMzMzMlOyB9XG5cbi5zYy1wdXNoLTIwIHtcbiAgbGVmdDogODMuMzMzMzMlOyB9XG5cbi5zYy1wdWxsLTIwIHtcbiAgcmlnaHQ6IDgzLjMzMzMzJTsgfVxuXG4uc2MtcHJlZml4LTIwIHtcbiAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzJTsgfVxuXG4uc2Mtc3VmZml4LTIwIHtcbiAgbWFyZ2luLXJpZ2h0OiA4My4zMzMzMyU7IH1cblxuLnNjLWdyaWQtMjEge1xuICB3aWR0aDogODcuNSU7IH1cblxuLnNjLXB1c2gtMjEge1xuICBsZWZ0OiA4Ny41JTsgfVxuXG4uc2MtcHVsbC0yMSB7XG4gIHJpZ2h0OiA4Ny41JTsgfVxuXG4uc2MtcHJlZml4LTIxIHtcbiAgbWFyZ2luLWxlZnQ6IDg3LjUlOyB9XG5cbi5zYy1zdWZmaXgtMjEge1xuICBtYXJnaW4tcmlnaHQ6IDg3LjUlOyB9XG5cbi5zYy1ncmlkLTIyIHtcbiAgd2lkdGg6IDkxLjY2NjY3JTsgfVxuXG4uc2MtcHVzaC0yMiB7XG4gIGxlZnQ6IDkxLjY2NjY3JTsgfVxuXG4uc2MtcHVsbC0yMiB7XG4gIHJpZ2h0OiA5MS42NjY2NyU7IH1cblxuLnNjLXByZWZpeC0yMiB7XG4gIG1hcmdpbi1sZWZ0OiA5MS42NjY2NyU7IH1cblxuLnNjLXN1ZmZpeC0yMiB7XG4gIG1hcmdpbi1yaWdodDogOTEuNjY2NjclOyB9XG5cbi5zYy1ncmlkLTIzIHtcbiAgd2lkdGg6IDk1LjgzMzMzJTsgfVxuXG4uc2MtcHVzaC0yMyB7XG4gIGxlZnQ6IDk1LjgzMzMzJTsgfVxuXG4uc2MtcHVsbC0yMyB7XG4gIHJpZ2h0OiA5NS44MzMzMyU7IH1cblxuLnNjLXByZWZpeC0yMyB7XG4gIG1hcmdpbi1sZWZ0OiA5NS44MzMzMyU7IH1cblxuLnNjLXN1ZmZpeC0yMyB7XG4gIG1hcmdpbi1yaWdodDogOTUuODMzMzMlOyB9XG5cbi5zYy1ncmlkLTI0IHtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLnNjLXB1c2gtMjQge1xuICBsZWZ0OiAxMDAlOyB9XG5cbi5zYy1wdWxsLTI0IHtcbiAgcmlnaHQ6IDEwMCU7IH1cblxuLnNjLXByZWZpeC0yNCB7XG4gIG1hcmdpbi1sZWZ0OiAxMDAlOyB9XG5cbi5zYy1zdWZmaXgtMjQge1xuICBtYXJnaW4tcmlnaHQ6IDEwMCU7IH1cblxuLnNjLWZsb2F0LWxlZnQge1xuICBmbG9hdDogbGVmdDsgfVxuXG4uc2MtZmxvYXQtcmlnaHQge1xuICBmbG9hdDogcmlnaHQ7IH1cblxuLnNjLWNsZWFyIHtcbiAgY2xlYXI6IGJvdGg7IH1cblxuLnNjLWNsZWFyLWxlZnQge1xuICBjbGVhcjogbGVmdDsgfVxuXG4uc2MtY2xlYXItcmlnaHQge1xuICBjbGVhcjogcmlnaHQ7IH1cblxuLnNjLW5vLWd1dHRlcixcbi5zYy1uby1tYXJnaW4ge1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIHBhZGRpbmctcmlnaHQ6IDA7IH1cblxuLnNjLW5vLWd1dHRlci1sZWZ0LFxuLnNjLW5vLW1hcmdpbi1sZWZ0IHtcbiAgcGFkZGluZy1sZWZ0OiAwOyB9XG5cbi5zYy1uby1ndXR0ZXItcmlnaHQsXG4uc2Mtbm8tbWFyZ2luLXJpZ2h0IHtcbiAgcGFkZGluZy1yaWdodDogMDsgfVxuXG4uc2Mtbm8tZ3V0dGVyLXRvcCxcbi5zYy1uby1tYXJnaW4tdG9wIHtcbiAgcGFkZGluZy10b3A6IDA7IH1cblxuLnNjLW5vLWd1dHRlci1ib3R0b20sXG4uc2Mtbm8tbWFyZ2luLWJvdHRvbSB7XG4gIHBhZGRpbmctYm90dG9tOiAwOyB9XG5cbi5zYy1ndXR0ZXIsXG4uc2MtbWFyZ2lucyB7XG4gIHBhZGRpbmctbGVmdDogMTZweDtcbiAgcGFkZGluZy1yaWdodDogMTZweDsgfVxuXG4uc2MtZ3V0dGVyLWxlZnQsXG4uc2MtbWFyZ2luLWxlZnQge1xuICBwYWRkaW5nLWxlZnQ6IDE2cHg7IH1cblxuLnNjLWd1dHRlci1yaWdodCxcbi5zYy1tYXJnaW4tcmlnaHQge1xuICBwYWRkaW5nLXJpZ2h0OiAxNnB4OyB9XG5cbi5zYy1ndXR0ZXItdG9wLFxuLnNjLW1hcmdpbi10b3Age1xuICBwYWRkaW5nLXRvcDogMTZweDsgfVxuXG4uc2MtZ3V0dGVyLWJvdHRvbSxcbi5zYy1tYXJnaW4tYm90dG9tIHtcbiAgcGFkZGluZy1ib3R0b206IDE2cHg7IH1cblxuLnNjLWF1dG8taGVpZ2h0IHtcbiAgaGVpZ2h0OiBpbmhlcml0OyB9XG5cbi5zYy1jZW50ZXJlZCB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIGZsb2F0OiBub25lICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1yaWdodDogYXV0byAhaW1wb3J0YW50O1xuICBjbGVhcjogYm90aCAhaW1wb3J0YW50OyB9XG5cbi5zYy1wYXJlbnQge1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIHBhZGRpbmctcmlnaHQ6IDA7IH1cblxuLnNjLXZlcnRpY2FsLWFsaWduLW1pZGRsZSB7XG4gIGZvbnQtc2l6ZTogMDtcbiAgY2xlYXI6IGJvdGg7IH1cbiAgLnNjLXZlcnRpY2FsLWFsaWduLW1pZGRsZSA+ICoge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmbG9hdDogbm9uZSAhaW1wb3J0YW50O1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgZm9udC1zaXplOiAxcmVtOyB9XG5cbi5zYy12ZXJ0aWNhbC1hbGlnbi10b3Age1xuICBmb250LXNpemU6IDA7XG4gIGNsZWFyOiBib3RoOyB9XG4gIC5zYy12ZXJ0aWNhbC1hbGlnbi10b3AgPiAqIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZmxvYXQ6IG5vbmUgIWltcG9ydGFudDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIGZvbnQtc2l6ZTogMXJlbTsgfVxuXG4uc2MtdmVydGljYWwtYWxpZ24tYm90dG9tIHtcbiAgZm9udC1zaXplOiAwO1xuICBjbGVhcjogYm90aDsgfVxuICAuc2MtdmVydGljYWwtYWxpZ24tYm90dG9tID4gKiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZsb2F0OiBub25lICFpbXBvcnRhbnQ7XG4gICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgICBmb250LXNpemU6IDFyZW07IH1cblxuLyoqXG5cdCAqIFZpc2libGUsIGhpZGUsIGV0Yy4uLlxuXHQgKi9cbi5zYy1oaWRlIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4uc2Mtbm90LXZpc2libGUge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLnNjLXNob3cge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4uc2Mtc2hvdy1pbmxpbmUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cblxuLnNjLXZpc2libGUge1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG5cbi8qKlxuXHQgKiBDbGVhciBlYWNoIGNsYXNzIDpcblx0ICovXG4uc2MtcHJvZHVjdC1ncmlkIHtcbiAgd2lkdGg6IDExNDBweDsgfVxuICAuc2MtcHJvZHVjdC1ncmlkIC5yZWZpbmVtZW50cyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgZGlyZWN0aW9uOiBsdHI7XG4gICAgcGFkZGluZy1sZWZ0OiAxNnB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDE2cHg7XG4gICAgd2lkdGg6IDI1JTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMzAwbXMgZWFzZTsgfVxuICAuc2MtcHJvZHVjdC1ncmlkIC5wcm9kdWN0cyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgZGlyZWN0aW9uOiBsdHI7XG4gICAgcGFkZGluZy1sZWZ0OiAxNnB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDE2cHg7XG4gICAgd2lkdGg6IDc1JTtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMzAwbXMgZWFzZTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCwgMCwgMCk7IH1cbiAgICAuc2MtcHJvZHVjdC1ncmlkIC5wcm9kdWN0cyAuc2MtcHJvZHVjdC1jYXJkIHtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAzMDBtcyBlYXNlO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2RjZGNkYztcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgZGlyZWN0aW9uOiBsdHI7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDE2cHg7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAxNnB4O1xuICAgICAgd2lkdGg6IDMzLjMzMzMzJTtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGNkY2RjOyB9XG4gICAgICAuc2MtcHJvZHVjdC1ncmlkIC5wcm9kdWN0cyAuc2MtcHJvZHVjdC1jYXJkIC5zYy1jYXJkLWZsYWcge1xuICAgICAgICB6LWluZGV4OiAxOyB9XG4gICAgICAuc2MtcHJvZHVjdC1ncmlkIC5wcm9kdWN0cyAuc2MtcHJvZHVjdC1jYXJkOm50aC1jaGlsZCgzbiszKSB7XG4gICAgICAgIGJvcmRlci1yaWdodDogMDsgfVxuICAgICAgLnNjLXByb2R1Y3QtZ3JpZCAucHJvZHVjdHMgLnNjLXByb2R1Y3QtY2FyZCBmaWd1cmUgaW1nIHtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDMwMG1zIGVhc2U7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwLCAwLCAwKTtcbiAgICAgICAgd2lkdGg6IDIyMnB4OyB9XG4gIC5zYy1wcm9kdWN0LWdyaWQuY29sbGFwc2VkIC5yZWZpbmVtZW50cyB7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbiAgLnNjLXByb2R1Y3QtZ3JpZC5jb2xsYXBzZWQgLnByb2R1Y3RzIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBkaXJlY3Rpb246IGx0cjtcbiAgICBwYWRkaW5nLWxlZnQ6IDE2cHg7XG4gICAgcGFkZGluZy1yaWdodDogMTZweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBhbmltYXRpb246IGNvbGxhcHNlLXJlZmluZW1lbnRzIDMwMG1zIGVhc2U7IH1cbiAgICAuc2MtcHJvZHVjdC1ncmlkLmNvbGxhcHNlZCAucHJvZHVjdHMgLnNjLXByb2R1Y3QtY2FyZCB7XG4gICAgICBoZWlnaHQ6IDQ1MHB4OyB9XG4gICAgICAuc2MtcHJvZHVjdC1ncmlkLmNvbGxhcHNlZCAucHJvZHVjdHMgLnNjLXByb2R1Y3QtY2FyZCBmaWd1cmUge1xuICAgICAgICBoZWlnaHQ6IDMzMHB4OyB9XG4gICAgICAuc2MtcHJvZHVjdC1ncmlkLmNvbGxhcHNlZCAucHJvZHVjdHMgLnNjLXByb2R1Y3QtY2FyZCBmaWd1cmUgaW1nIHtcbiAgICAgICAgd2lkdGg6IDI5MHB4OyB9XG5cbkBrZXlmcmFtZXMgY29sbGFwc2UtcmVmaW5lbWVudHMge1xuICBmcm9tIHtcbiAgICBtYXJnaW4tbGVmdDogMjUlOyB9XG4gIHRvIHtcbiAgICBtYXJnaW4tbGVmdDogMDsgfSB9XG5cbi5zYy1pbnB1dCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNhYWE7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgcGFkZGluZzogNHB4IDhweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuICAuc2MtaW5wdXQ6YWN0aXZlLCAuc2MtaW5wdXQ6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7IH1cbiAgLnNjLWlucHV0LnNjLWhpZGUtc3Bpbm5lciB7XG4gICAgLW1vei1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IH1cbiAgICAuc2MtaW5wdXQuc2MtaGlkZS1zcGlubmVyOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uLFxuICAgIC5zYy1pbnB1dC5zYy1oaWRlLXNwaW5uZXI6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24ge1xuICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgbWFyZ2luOiAwOyB9XG5cbi5zYy1zcGVjLXRhYmxlIHtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLnNjLXNwZWMtdGFibGUgdGgge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBsaW5lLWhlaWdodDogMTdweDtcbiAgICBmb250LXdlaWdodDogMzAwO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0ZXh0LWJvdHRvbTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHBhZGRpbmc6IDNlbSAyZW0gMCAxZW07XG4gICAgd2hpdGUtc3BhY2U6IHByZTtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIGNvbG9yOiAjODc4Nzg3OyB9XG4gIC5zYy1zcGVjLXRhYmxlIHRkIHtcbiAgICBmb250LXNpemU6IDMycHg7XG4gICAgbGluZS1oZWlnaHQ6IDM4cHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdGV4dC1ib3R0b207XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLnNjLXNwZWMtdGFibGUgdHIge1xuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjRjJGMUVEOyB9XG5cbi8qXG5TQ1NTIHZhcmlhYmxlcyBhcmUgaW5mb3JtYXRpb24gYWJvdXQgaWNvbidzIGNvbXBpbGVkIHN0YXRlLCBzdG9yZWQgdW5kZXIgaXRzIG9yaWdpbmFsIGZpbGUgbmFtZVxuXG4uaWNvbi1ob21lIHtcbiAgd2lkdGg6ICRpY29uLWhvbWUtd2lkdGg7XG59XG5cblRoZSBsYXJnZSBhcnJheS1saWtlIHZhcmlhYmxlcyBjb250YWluIGFsbCBpbmZvcm1hdGlvbiBhYm91dCBhIHNpbmdsZSBpY29uXG4kaWNvbi1ob21lOiB4IHkgb2Zmc2V0X3ggb2Zmc2V0X3kgd2lkdGggaGVpZ2h0IHRvdGFsX3dpZHRoIHRvdGFsX2hlaWdodCBpbWFnZV9wYXRoO1xuXG5BdCB0aGUgYm90dG9tIG9mIHRoaXMgc2VjdGlvbiwgd2UgcHJvdmlkZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc3ByaXRlc2hlZXQgaXRzZWxmXG4kc3ByaXRlc2hlZXQ6IHdpZHRoIGhlaWdodCBpbWFnZSAkc3ByaXRlc2hlZXQtc3ByaXRlcztcbiovXG4vKlxuVGhlIHByb3ZpZGVkIG1peGlucyBhcmUgaW50ZW5kZWQgdG8gYmUgdXNlZCB3aXRoIHRoZSBhcnJheS1saWtlIHZhcmlhYmxlc1xuXG4uaWNvbi1ob21lIHtcbiAgQGluY2x1ZGUgc3ByaXRlLXdpZHRoKCRpY29uLWhvbWUpO1xufVxuXG4uaWNvbi1lbWFpbCB7XG4gIEBpbmNsdWRlIHNwcml0ZSgkaWNvbi1lbWFpbCk7XG59XG4qL1xuLypcblRoZSBgc3ByaXRlc2AgbWl4aW4gZ2VuZXJhdGVzIGlkZW50aWNhbCBvdXRwdXQgdG8gdGhlIENTUyB0ZW1wbGF0ZVxuICBidXQgY2FuIGJlIG92ZXJyaWRkZW4gaW5zaWRlIG9mIFNDU1NcblxuQGluY2x1ZGUgc3ByaXRlcygkc3ByaXRlc2hlZXQtc3ByaXRlcyk7XG4qL1xuW2NsYXNzKj0nc2Mtc3ByaXRlJ10ge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoc3ByaXRlLnBuZyk7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuXG4uc2Mtc3ByaXRlLUNhcnQge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzI5cHggLTM2cHg7XG4gIHdpZHRoOiA0NHB4O1xuICBoZWlnaHQ6IDQ0cHg7IH1cblxuLnNjLXNwcml0ZS1Mb2dvIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTIyM3B4IDBweDtcbiAgd2lkdGg6IDE2NnB4O1xuICBoZWlnaHQ6IDM2cHg7IH1cblxuLnNjLXNwcml0ZS1hZGQtdG8tbGlzdCB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0yMjNweCAtMTE2cHg7XG4gIHdpZHRoOiAzM3B4O1xuICBoZWlnaHQ6IDMzcHg7IH1cblxuLnNjLXNwcml0ZS1hcnJvdy1ncmVlbi1iZyB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zMjlweCAtODBweDtcbiAgd2lkdGg6IDMzcHg7XG4gIGhlaWdodDogMzNweDsgfVxuXG4uc2Mtc3ByaXRlLWFycm93LWdyZWVuIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTI3MXB4IC0xNDlweDtcbiAgd2lkdGg6IDE3cHg7XG4gIGhlaWdodDogMTRweDsgfVxuXG4uc2Mtc3ByaXRlLWFycm93LWdyZXkge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjMzcHggLTE2NXB4O1xuICB3aWR0aDogOHB4O1xuICBoZWlnaHQ6IDE0cHg7IH1cblxuLnNjLXNwcml0ZS1hcnJvdy1oYi1sdCB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0yMjNweCAtMzZweDtcbiAgd2lkdGg6IDUzcHg7XG4gIGhlaWdodDogODBweDsgfVxuXG4uc2Mtc3ByaXRlLWFycm93LWhiLXJ0IHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTI3NnB4IC0zNnB4O1xuICB3aWR0aDogNTNweDtcbiAgaGVpZ2h0OiA4MHB4OyB9XG5cbi5zYy1zcHJpdGUtYmFjay1jaGV2cm9uIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2MnB4IC0xMDNweDtcbiAgd2lkdGg6IDZweDtcbiAgaGVpZ2h0OiAxMHB4OyB9XG5cbi5zYy1zcHJpdGUtY2FyZXQtZG93bi1ncmVlbiB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNjhweCAtMTAzcHg7XG4gIHdpZHRoOiA4cHg7XG4gIGhlaWdodDogNXB4OyB9XG5cbi5zYy1zcHJpdGUtY2FyZXQtZG93bi1yZWQge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzc2cHggLTEwM3B4O1xuICB3aWR0aDogOHB4O1xuICBoZWlnaHQ6IDVweDsgfVxuXG4uc2Mtc3ByaXRlLWNoZWNrLWdyZWVuIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM3M3B4IC02OHB4O1xuICB3aWR0aDogMTRweDtcbiAgaGVpZ2h0OiAxMnB4OyB9XG5cbi5zYy1zcHJpdGUtY2xvc2UtaWNvbiB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zMDRweCAtMTQ5cHg7XG4gIHdpZHRoOiAxMnB4O1xuICBoZWlnaHQ6IDEzcHg7IH1cblxuLnNjLXNwcml0ZS1jbG9zZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNzZweCAtMTE2cHg7XG4gIHdpZHRoOiAxMnB4O1xuICBoZWlnaHQ6IDEzcHg7IH1cblxuLnNjLXNwcml0ZS1mYWNlYm9vayB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0yMjNweCAtMTQ5cHg7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7IH1cblxuLnNjLXNwcml0ZS1nb29nbGUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjM5cHggLTE0OXB4O1xuICB3aWR0aDogMTZweDtcbiAgaGVpZ2h0OiAxNnB4OyB9XG5cbi5zYy1zcHJpdGUtZ3JlYXRlci10aGFuLWdyZWVuIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTIyM3B4IC0xNjVweDtcbiAgd2lkdGg6IDEwcHg7XG4gIGhlaWdodDogMTRweDsgfVxuXG4uc2Mtc3ByaXRlLWdyZWF0ZXItdGhhbi13aGl0ZS1zbWFsbCB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0yMzJweCAtMTc5cHg7XG4gIHdpZHRoOiA5cHg7XG4gIGhlaWdodDogMTVweDsgfVxuXG4uc2Mtc3ByaXRlLWdyZWF0ZXItdGhhbi13aGl0ZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0yMjNweCAtMTc5cHg7XG4gIHdpZHRoOiA5cHg7XG4gIGhlaWdodDogMTVweDsgfVxuXG4uc2Mtc3ByaXRlLWhvdC1idXlzLWxlZnQtc2hhZGUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggMHB4O1xuICB3aWR0aDogOTVweDtcbiAgaGVpZ2h0OiAyODVweDsgfVxuXG4uc2Mtc3ByaXRlLWhvdC1idXlzLXJpZ2h0LXNoYWRlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTk1cHggMHB4O1xuICB3aWR0aDogMTI4cHg7XG4gIGhlaWdodDogMTkwcHg7IH1cblxuLnNjLXNwcml0ZS1ob3RidXlzLWFycm93IHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTI1NnB4IC0xMTZweDtcbiAgd2lkdGg6IDMwcHg7XG4gIGhlaWdodDogMzBweDsgfVxuXG4uc2Mtc3ByaXRlLWxlZnQtYXJyb3cge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzU4cHggLTExNnB4O1xuICB3aWR0aDogMThweDtcbiAgaGVpZ2h0OiAxNXB4OyB9XG5cbi5zYy1zcHJpdGUtbWludXMge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzY4cHggLTEwOHB4O1xuICB3aWR0aDogMTZweDtcbiAgaGVpZ2h0OiAycHg7IH1cblxuLnNjLXNwcml0ZS1wLWdyaWQtYWN0diB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0yNTVweCAtMTQ5cHg7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7IH1cblxuLnNjLXNwcml0ZS1wLWdyaWQge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzczcHggLTUycHg7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7IH1cblxuLnNjLXNwcml0ZS1wLWxpc3QtYWN0diB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNDFweCAtMTE2cHg7XG4gIHdpZHRoOiAxN3B4O1xuICBoZWlnaHQ6IDE2cHg7IH1cblxuLnNjLXNwcml0ZS1wLWxpc3Qge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzI0cHggLTExNnB4O1xuICB3aWR0aDogMTdweDtcbiAgaGVpZ2h0OiAxNnB4OyB9XG5cbi5zYy1zcHJpdGUtcGludGVyZXN0IHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM3M3B4IC0zNnB4O1xuICB3aWR0aDogMTZweDtcbiAgaGVpZ2h0OiAxNnB4OyB9XG5cbi5zYy1zcHJpdGUtcGx1cyB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zMDdweCAtMTE2cHg7XG4gIHdpZHRoOiAxN3B4O1xuICBoZWlnaHQ6IDE3cHg7IH1cblxuLnNjLXNwcml0ZS1zZWFyY2gtYXJyb3cge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzYycHggLTgwcHg7XG4gIHdpZHRoOiAyMnB4O1xuICBoZWlnaHQ6IDIzcHg7IH1cblxuLnNjLXNwcml0ZS1zZWFyY2gtY2xvc2Uge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzE2cHggLTE0OXB4O1xuICB3aWR0aDogMTJweDtcbiAgaGVpZ2h0OiAxMnB4OyB9XG5cbi5zYy1zcHJpdGUtc2VhcmNoIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTI4NnB4IC0xMTZweDtcbiAgd2lkdGg6IDIxcHg7XG4gIGhlaWdodDogMjFweDsgfVxuXG4uc2Mtc3ByaXRlLXR3aXR0ZXIge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjg4cHggLTE0OXB4O1xuICB3aWR0aDogMTZweDtcbiAgaGVpZ2h0OiAxM3B4OyB9XG5cbi8qXG5TQ1NTIHZhcmlhYmxlcyBhcmUgaW5mb3JtYXRpb24gYWJvdXQgaWNvbidzIGNvbXBpbGVkIHN0YXRlLCBzdG9yZWQgdW5kZXIgaXRzIG9yaWdpbmFsIGZpbGUgbmFtZVxuXG4uaWNvbi1ob21lIHtcbiAgd2lkdGg6ICRpY29uLWhvbWUtd2lkdGg7XG59XG5cblRoZSBsYXJnZSBhcnJheS1saWtlIHZhcmlhYmxlcyBjb250YWluIGFsbCBpbmZvcm1hdGlvbiBhYm91dCBhIHNpbmdsZSBpY29uXG4kaWNvbi1ob21lOiB4IHkgb2Zmc2V0X3ggb2Zmc2V0X3kgd2lkdGggaGVpZ2h0IHRvdGFsX3dpZHRoIHRvdGFsX2hlaWdodCBpbWFnZV9wYXRoO1xuXG5BdCB0aGUgYm90dG9tIG9mIHRoaXMgc2VjdGlvbiwgd2UgcHJvdmlkZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc3ByaXRlc2hlZXQgaXRzZWxmXG4kc3ByaXRlc2hlZXQ6IHdpZHRoIGhlaWdodCBpbWFnZSAkc3ByaXRlc2hlZXQtc3ByaXRlcztcbiovXG4vKiBSRVRJTkEgKi9cbi8qIFJFVElOQSAqL1xuLypcblRoZXNlIFwicmV0aW5hIGdyb3VwXCIgdmFyaWFibGVzIGFyZSBtYXBwaW5ncyBmb3IgdGhlIG5hbWluZyBhbmQgcGFpcmluZyBvZiBub3JtYWwgYW5kIHJldGluYSBzcHJpdGVzLlxuXG5UaGUgbGlzdCBmb3JtYXR0ZWQgdmFyaWFibGVzIGFyZSBpbnRlbmRlZCBmb3IgbWl4aW5zIGxpa2UgYHJldGluYS1zcHJpdGVgIGFuZCBgcmV0aW5hLXNwcml0ZXNgLlxuKi9cbi8qXG5UaGUgcHJvdmlkZWQgbWl4aW5zIGFyZSBpbnRlbmRlZCB0byBiZSB1c2VkIHdpdGggdGhlIGFycmF5LWxpa2UgdmFyaWFibGVzXG5cbi5pY29uLWhvbWUge1xuICBAaW5jbHVkZSBzcHJpdGUtd2lkdGgoJGljb24taG9tZSk7XG59XG5cbi5pY29uLWVtYWlsIHtcbiAgQGluY2x1ZGUgc3ByaXRlKCRpY29uLWVtYWlsKTtcbn1cbiovXG4vKlxuVGhlIGBzcHJpdGVzYCBtaXhpbiBnZW5lcmF0ZXMgaWRlbnRpY2FsIG91dHB1dCB0byB0aGUgQ1NTIHRlbXBsYXRlXG4gIGJ1dCBjYW4gYmUgb3ZlcnJpZGRlbiBpbnNpZGUgb2YgU0NTU1xuXG5AaW5jbHVkZSBzcHJpdGVzKCRzcHJpdGVzaGVldC1zcHJpdGVzKTtcbiovXG5bY2xhc3MqPXNjLXJhdGluZ10ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cblxuLnNjLXJhdGluZy0wXzAge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwocmF0aW5nLXNwcml0ZS5wbmcpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTEycHg7XG4gIHdpZHRoOiA3NnB4O1xuICBoZWlnaHQ6IDEycHg7IH1cbiAgQG1lZGlhICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSkge1xuICAgIC5zYy1yYXRpbmctMF8wIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChyYXRpbmctc3ByaXRlQDJ4LnBuZyk7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IDE1MnB4IDcycHg7IH0gfVxuXG4uc2MtcmF0aW5nLTBfNSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChyYXRpbmctc3ByaXRlLnBuZyk7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtNjBweDtcbiAgd2lkdGg6IDc2cHg7XG4gIGhlaWdodDogMTJweDsgfVxuICBAbWVkaWEgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSB7XG4gICAgLnNjLXJhdGluZy0wXzUge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKHJhdGluZy1zcHJpdGVAMngucG5nKTtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogMTUycHggNzJweDsgfSB9XG5cbi5zYy1yYXRpbmctMV8wIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKHJhdGluZy1zcHJpdGUucG5nKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0yNHB4O1xuICB3aWR0aDogNzZweDtcbiAgaGVpZ2h0OiAxMnB4OyB9XG4gIEBtZWRpYSAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpIHtcbiAgICAuc2MtcmF0aW5nLTFfMCB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwocmF0aW5nLXNwcml0ZUAyeC5wbmcpO1xuICAgICAgYmFja2dyb3VuZC1zaXplOiAxNTJweCA3MnB4OyB9IH1cblxuLnNjLXJhdGluZy0xXzUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwocmF0aW5nLXNwcml0ZS5wbmcpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTM2cHg7XG4gIHdpZHRoOiA3NnB4O1xuICBoZWlnaHQ6IDEycHg7IH1cbiAgQG1lZGlhICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSkge1xuICAgIC5zYy1yYXRpbmctMV81IHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChyYXRpbmctc3ByaXRlQDJ4LnBuZyk7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IDE1MnB4IDcycHg7IH0gfVxuXG4uc2MtcmF0aW5nLTJfMCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChyYXRpbmctc3ByaXRlLnBuZyk7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtNDhweDtcbiAgd2lkdGg6IDc2cHg7XG4gIGhlaWdodDogMTJweDsgfVxuICBAbWVkaWEgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSB7XG4gICAgLnNjLXJhdGluZy0yXzAge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKHJhdGluZy1zcHJpdGVAMngucG5nKTtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogMTUycHggNzJweDsgfSB9XG5cbi5zYy1yYXRpbmctMl81IHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKHJhdGluZy1zcHJpdGUucG5nKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IDBweDtcbiAgd2lkdGg6IDc2cHg7XG4gIGhlaWdodDogMTJweDsgfVxuICBAbWVkaWEgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSB7XG4gICAgLnNjLXJhdGluZy0yXzUge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKHJhdGluZy1zcHJpdGVAMngucG5nKTtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogMTUycHggNzJweDsgfSB9XG5cbi5zYy1yYXRpbmctM18wIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKHJhdGluZy1zcHJpdGUucG5nKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTc2cHggMHB4O1xuICB3aWR0aDogNzZweDtcbiAgaGVpZ2h0OiAxMnB4OyB9XG4gIEBtZWRpYSAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpIHtcbiAgICAuc2MtcmF0aW5nLTNfMCB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwocmF0aW5nLXNwcml0ZUAyeC5wbmcpO1xuICAgICAgYmFja2dyb3VuZC1zaXplOiAxNTJweCA3MnB4OyB9IH1cblxuLnNjLXJhdGluZy0zXzUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwocmF0aW5nLXNwcml0ZS5wbmcpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzZweCAtMTJweDtcbiAgd2lkdGg6IDc2cHg7XG4gIGhlaWdodDogMTJweDsgfVxuICBAbWVkaWEgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSB7XG4gICAgLnNjLXJhdGluZy0zXzUge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKHJhdGluZy1zcHJpdGVAMngucG5nKTtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogMTUycHggNzJweDsgfSB9XG5cbi5zYy1yYXRpbmctNF8wIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKHJhdGluZy1zcHJpdGUucG5nKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTc2cHggLTI0cHg7XG4gIHdpZHRoOiA3NnB4O1xuICBoZWlnaHQ6IDEycHg7IH1cbiAgQG1lZGlhICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSkge1xuICAgIC5zYy1yYXRpbmctNF8wIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChyYXRpbmctc3ByaXRlQDJ4LnBuZyk7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IDE1MnB4IDcycHg7IH0gfVxuXG4uc2MtcmF0aW5nLTRfNSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChyYXRpbmctc3ByaXRlLnBuZyk7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03NnB4IC0zNnB4O1xuICB3aWR0aDogNzZweDtcbiAgaGVpZ2h0OiAxMnB4OyB9XG4gIEBtZWRpYSAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpIHtcbiAgICAuc2MtcmF0aW5nLTRfNSB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwocmF0aW5nLXNwcml0ZUAyeC5wbmcpO1xuICAgICAgYmFja2dyb3VuZC1zaXplOiAxNTJweCA3MnB4OyB9IH1cblxuLnNjLXJhdGluZy01XzAge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwocmF0aW5nLXNwcml0ZS5wbmcpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzZweCAtNDhweDtcbiAgd2lkdGg6IDc2cHg7XG4gIGhlaWdodDogMTJweDsgfVxuICBAbWVkaWEgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSB7XG4gICAgLnNjLXJhdGluZy01XzAge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKHJhdGluZy1zcHJpdGVAMngucG5nKTtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogMTUycHggNzJweDsgfSB9XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJzY0ljb25zXCI7XG4gIHNyYzogdXJsKFwiLi9mb250cy9zY0ljb25zLmVvdFwiKTtcbiAgc3JjOiB1cmwoXCIuL2ZvbnRzL3NjSWNvbnMuZW90PyNpZWZpeFwiKSBmb3JtYXQoXCJlb3RcIiksIHVybChcIi4vZm9udHMvc2NJY29ucy53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcIi4vZm9udHMvc2NJY29ucy50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIiksIHVybChcIi4vZm9udHMvc2NJY29ucy5zdmcjc2NJY29uc1wiKSBmb3JtYXQoXCJzdmdcIik7IH1cblxuLnNjLWljb24tY2FyZXQ6YmVmb3JlIHtcbiAgZm9udC1mYW1pbHk6IFwic2NJY29uc1wiO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgfVxuXG4uc2MtaWNvbi1jYXJldDpiZWZvcmUge1xuICBjb250ZW50OiBcIu6ogVwiOyB9XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgTm9ybWFsaXplLnNjc3Mgc2V0dGluZ3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIEluY2x1ZGVzIGxlZ2FjeSBicm93c2VyIHN1cHBvcnQgSUU2LzdcbiAqXG4gKiBTZXQgdG8gZmFsc2UgaWYgeW91IHdhbnQgdG8gZHJvcCBzdXBwb3J0IGZvciBJRTYgYW5kIElFN1xuICovXG5cbiRsZWdhY3lfYnJvd3Nlcl9zdXBwb3J0OiBmYWxzZSAhZGVmYXVsdDtcblxuLyogQmFzZVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBTZXQgZGVmYXVsdCBmb250IGZhbWlseSB0byBzYW5zLXNlcmlmLlxuICogMi4gUHJldmVudCBpT1MgYW5kIElFIHRleHQgc2l6ZSBhZGp1c3QgYWZ0ZXIgZGV2aWNlIG9yaWVudGF0aW9uIGNoYW5nZSxcbiAqICAgIHdpdGhvdXQgZGlzYWJsaW5nIHVzZXIgem9vbS5cbiAqIDMuIENvcnJlY3RzIHRleHQgcmVzaXppbmcgb2RkbHkgaW4gSUUgNi83IHdoZW4gYm9keSBgZm9udC1zaXplYCBpcyBzZXQgdXNpbmdcbiAqICBgZW1gIHVuaXRzLlxuICovXG5cbmh0bWwge1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjsgLyogMSAqL1xuICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbiAgQGlmICRsZWdhY3lfYnJvd3Nlcl9zdXBwb3J0IHtcbiAgICAqZm9udC1zaXplOiAxMDAlOyAvKiAzICovXG4gIH1cbn1cblxuLyoqXG4gKiBSZW1vdmUgZGVmYXVsdCBtYXJnaW4uXG4gKi9cblxuYm9keSB7XG4gIG1hcmdpbjogMDtcbn1cblxuLyogSFRNTDUgZGlzcGxheSBkZWZpbml0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYW55IEhUTUw1IGVsZW1lbnQgaW4gSUUgOC85LlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBkZXRhaWxzYCBvciBgc3VtbWFyeWAgaW4gSUUgMTAvMTFcbiAqIGFuZCBGaXJlZm94LlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBtYWluYCBpbiBJRSAxMS5cbiAqL1xuXG5hcnRpY2xlLFxuYXNpZGUsXG5kZXRhaWxzLFxuZmlnY2FwdGlvbixcbmZpZ3VyZSxcbmZvb3RlcixcbmhlYWRlcixcbmhncm91cCxcbm1haW4sXG5tZW51LFxubmF2LFxuc2VjdGlvbixcbnN1bW1hcnkge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGBpbmxpbmUtYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgaW4gSUUgNi83LzgvOSBhbmQgRmlyZWZveCAzLlxuICogMi4gTm9ybWFsaXplIHZlcnRpY2FsIGFsaWdubWVudCBvZiBgcHJvZ3Jlc3NgIGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICovXG5cbmF1ZGlvLFxuY2FudmFzLFxucHJvZ3Jlc3MsXG52aWRlbyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgLyogMSAqL1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IC8qIDIgKi9cbiAgQGlmICRsZWdhY3lfYnJvd3Nlcl9zdXBwb3J0IHtcbiAgICAqZGlzcGxheTogaW5saW5lO1xuICAgICp6b29tOiAxO1xuICB9XG59XG5cbi8qKlxuICogUHJldmVudHMgbW9kZXJuIGJyb3dzZXJzIGZyb20gZGlzcGxheWluZyBgYXVkaW9gIHdpdGhvdXQgY29udHJvbHMuXG4gKiBSZW1vdmUgZXhjZXNzIGhlaWdodCBpbiBpT1MgNSBkZXZpY2VzLlxuICovXG5cbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGBbaGlkZGVuXWAgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAuXG4gKiBIaWRlIHRoZSBgdGVtcGxhdGVgIGVsZW1lbnQgaW4gSUUgOC85LzEwLzExLCBTYWZhcmksIGFuZCBGaXJlZm94IDwgMjIuXG4gKi9cblxuW2hpZGRlbl0sXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIExpbmtzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIGNvbG9yIGZyb20gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICovXG5cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLyoqXG4gKiBJbXByb3ZlIHJlYWRhYmlsaXR5IG9mIGZvY3VzZWQgZWxlbWVudHMgd2hlbiB0aGV5IGFyZSBhbHNvIGluIGFuXG4gKiBhY3RpdmUvaG92ZXIgc3RhdGUuXG4gKi9cblxuYSB7XG4gICY6YWN0aXZlLCAmOmhvdmVyIHtcbiAgICBvdXRsaW5lOiAwO1xuICB9O1xufVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLzExLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cblxuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGUgc2V0IHRvIGBib2xkZXJgIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbkBpZiAkbGVnYWN5X2Jyb3dzZXJfc3VwcG9ydCB7XG4gIGJsb2NrcXVvdGUge1xuICAgIG1hcmdpbjogMWVtIDQwcHg7XG4gIH1cbn1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gKi9cblxuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgdmFyaWFibGUgYGgxYCBmb250LXNpemUgYW5kIG1hcmdpbiB3aXRoaW4gYHNlY3Rpb25gIGFuZCBgYXJ0aWNsZWBcbiAqIGNvbnRleHRzIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwO1xufVxuXG5AaWYgJGxlZ2FjeV9icm93c2VyX3N1cHBvcnQge1xuICBoMiB7XG4gICAgZm9udC1zaXplOiAxLjVlbTtcbiAgICBtYXJnaW46IDAuODNlbSAwO1xuICB9XG5cbiAgaDMge1xuICAgIGZvbnQtc2l6ZTogMS4xN2VtO1xuICAgIG1hcmdpbjogMWVtIDA7XG4gIH1cblxuICBoNCB7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgbWFyZ2luOiAxLjMzZW0gMDtcbiAgfVxuXG4gIGg1IHtcbiAgICBmb250LXNpemU6IDAuODNlbTtcbiAgICBtYXJnaW46IDEuNjdlbSAwO1xuICB9XG5cbiAgaDYge1xuICAgIGZvbnQtc2l6ZTogMC42N2VtO1xuICAgIG1hcmdpbjogMi4zM2VtIDA7XG4gIH1cbn1cblxuLyoqXG4gKiBBZGRyZXNzZXMgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkuXG4gKi9cblxubWFyayB7XG4gIGJhY2tncm91bmQ6ICNmZjA7XG4gIGNvbG9yOiAjMDAwO1xufVxuXG5AaWYgJGxlZ2FjeV9icm93c2VyX3N1cHBvcnQge1xuXG4gIC8qKlxuICAgKiBBZGRyZXNzZXMgbWFyZ2lucyBzZXQgZGlmZmVyZW50bHkgaW4gSUUgNi83LlxuICAgKi9cblxuICBwLFxuICBwcmUge1xuICAgICptYXJnaW46IDFlbSAwO1xuICB9XG5cbiAgLypcbiAgICogQWRkcmVzc2VzIENTUyBxdW90ZXMgbm90IHN1cHBvcnRlZCBpbiBJRSA2LzcuXG4gICAqL1xuXG4gIHEge1xuICAgICpxdW90ZXM6IG5vbmU7XG4gIH1cblxuICAvKlxuICAgKiBBZGRyZXNzZXMgYHF1b3Rlc2AgcHJvcGVydHkgbm90IHN1cHBvcnRlZCBpbiBTYWZhcmkgNC5cbiAgICovXG5cbiAgcTpiZWZvcmUsXG4gIHE6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGNvbnRlbnQ6IG5vbmU7XG4gIH1cbn1cblxuLyoqXG4gKiBBZGRyZXNzIGluY29uc2lzdGVudCBhbmQgdmFyaWFibGUgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xufVxuXG4vKipcbiAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGFmZmVjdGluZyBgbGluZS1oZWlnaHRgIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG5AaWYgJGxlZ2FjeV9icm93c2VyX3N1cHBvcnQge1xuXG4gIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgIExpc3RzXG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgLypcbiAgICogQWRkcmVzc2VzIG1hcmdpbnMgc2V0IGRpZmZlcmVudGx5IGluIElFIDYvNy5cbiAgICovXG5cbiAgZGwsXG4gIG1lbnUsXG4gIG9sLFxuICB1bCB7XG4gICAgKm1hcmdpbjogMWVtIDA7XG4gIH1cblxuICBkZCB7XG4gICAgKm1hcmdpbjogMCAwIDAgNDBweDtcbiAgfVxuXG4gIC8qXG4gICAqIEFkZHJlc3NlcyBwYWRkaW5ncyBzZXQgZGlmZmVyZW50bHkgaW4gSUUgNi83LlxuICAgKi9cblxuICBtZW51LFxuICBvbCxcbiAgdWwge1xuICAgICpwYWRkaW5nOiAwIDAgMCA0MHB4O1xuICB9XG5cbiAgLypcbiAgICogQ29ycmVjdHMgbGlzdCBpbWFnZXMgaGFuZGxlZCBpbmNvcnJlY3RseSBpbiBJRSA3LlxuICAgKi9cblxuICBuYXYgdWwsXG4gIG5hdiBvbCB7XG4gICAgKmxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgKmxpc3Qtc3R5bGUtaW1hZ2U6IG5vbmU7XG4gIH1cblxufVxuXG4vKiBFbWJlZGRlZCBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIDEuIFJlbW92ZSBib3JkZXIgd2hlbiBpbnNpZGUgYGFgIGVsZW1lbnQgaW4gSUUgOC85LzEwLlxuICogMi4gSW1wcm92ZXMgaW1hZ2UgcXVhbGl0eSB3aGVuIHNjYWxlZCBpbiBJRSA3LlxuICovXG5cbmltZyB7XG4gIGJvcmRlcjogMDtcbiAgQGlmICRsZWdhY3lfYnJvd3Nlcl9zdXBwb3J0IHtcbiAgICAqLW1zLWludGVycG9sYXRpb24tbW9kZTogYmljdWJpYzsgLyogMiAqL1xuICB9XG59XG5cbi8qKlxuICogQ29ycmVjdCBvdmVyZmxvdyBub3QgaGlkZGVuIGluIElFIDkvMTAvMTEuXG4gKi9cblxuc3ZnOm5vdCg6cm9vdCkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vKiBHcm91cGluZyBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZHJlc3MgbWFyZ2luIG5vdCBwcmVzZW50IGluIElFIDgvOSBhbmQgU2FmYXJpLlxuICovXG5cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMWVtIDQwcHg7XG59XG5cbi8qKlxuICogQWRkcmVzcyBkaWZmZXJlbmNlcyBiZXR3ZWVuIEZpcmVmb3ggYW5kIG90aGVyIGJyb3dzZXJzLlxuICovXG5cbmhyIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGhlaWdodDogMDtcbn1cblxuLyoqXG4gKiBDb250YWluIG92ZXJmbG93IGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5wcmUge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiBBZGRyZXNzIG9kZCBgZW1gLXVuaXQgZm9udCBzaXplIHJlbmRlcmluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKiBDb3JyZWN0IGZvbnQgZmFtaWx5IHNldCBvZGRseSBpbiBJRSA2LCBTYWZhcmkgNC81LCBhbmQgQ2hyb21lLlxuICovXG5cbmNvZGUsXG5rYmQsXG5wcmUsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICBAaWYgJGxlZ2FjeV9icm93c2VyX3N1cHBvcnQge1xuICAgIF9mb250LWZhbWlseTogJ2NvdXJpZXIgbmV3JywgbW9ub3NwYWNlO1xuICB9XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuXG4vKiBGb3Jtc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBLbm93biBsaW1pdGF0aW9uOiBieSBkZWZhdWx0LCBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYIGFsbG93IHZlcnkgbGltaXRlZFxuICogc3R5bGluZyBvZiBgc2VsZWN0YCwgdW5sZXNzIGEgYGJvcmRlcmAgcHJvcGVydHkgaXMgc2V0LlxuICovXG5cbi8qKlxuICogMS4gQ29ycmVjdCBjb2xvciBub3QgYmVpbmcgaW5oZXJpdGVkLlxuICogIEtub3duIGlzc3VlOiBhZmZlY3RzIGNvbG9yIG9mIGRpc2FibGVkIGVsZW1lbnRzLlxuICogMi4gQ29ycmVjdCBmb250IHByb3BlcnRpZXMgbm90IGJlaW5nIGluaGVyaXRlZC5cbiAqIDMuIEFkZHJlc3MgbWFyZ2lucyBzZXQgZGlmZmVyZW50bHkgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICogNC4gSW1wcm92ZXMgYXBwZWFyYW5jZSBhbmQgY29uc2lzdGVuY3kgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGNvbG9yOiBpbmhlcml0OyAvKiAxICovXG4gIGZvbnQ6IGluaGVyaXQ7IC8qIDIgKi9cbiAgbWFyZ2luOiAwOyAvKiAzICovXG4gIEBpZiAkbGVnYWN5X2Jyb3dzZXJfc3VwcG9ydCB7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyAvKiAzICovXG4gICAgKnZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IC8qIDMgKi9cbiAgfVxufVxuXG4vKipcbiAqIEFkZHJlc3MgYG92ZXJmbG93YCBzZXQgdG8gYGhpZGRlbmAgaW4gSUUgOC85LzEwLzExLlxuICovXG5cbmJ1dHRvbiB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGB0ZXh0LXRyYW5zZm9ybWAgaW5oZXJpdGFuY2UgZm9yIGBidXR0b25gIGFuZCBgc2VsZWN0YC5cbiAqIEFsbCBvdGhlciBmb3JtIGNvbnRyb2wgZWxlbWVudHMgZG8gbm90IGluaGVyaXQgYHRleHQtdHJhbnNmb3JtYCB2YWx1ZXMuXG4gKiBDb3JyZWN0IGBidXR0b25gIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3gsIElFIDgvOS8xMC8xMSwgYW5kIE9wZXJhLlxuICogQ29ycmVjdCBgc2VsZWN0YCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LlxuICovXG5cbmJ1dHRvbixcbnNlbGVjdCB7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vKipcbiAqIDEuIEF2b2lkIHRoZSBXZWJLaXQgYnVnIGluIEFuZHJvaWQgNC4wLiogd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gXG4gKiAgYW5kIGB2aWRlb2AgY29udHJvbHMuXG4gKiAyLiBDb3JyZWN0IGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgYGlucHV0YCB0eXBlcyBpbiBpT1MuXG4gKiAzLiBJbXByb3ZlIHVzYWJpbGl0eSBhbmQgY29uc2lzdGVuY3kgb2YgY3Vyc29yIHN0eWxlIGJldHdlZW4gaW1hZ2UtdHlwZVxuICogIGBpbnB1dGAgYW5kIG90aGVycy5cbiAqIDQuIFJlbW92ZXMgaW5uZXIgc3BhY2luZyBpbiBJRSA3IHdpdGhvdXQgYWZmZWN0aW5nIG5vcm1hbCB0ZXh0IGlucHV0cy5cbiAqICBLbm93biBpc3N1ZTogaW5uZXIgc3BhY2luZyByZW1haW5zIGluIElFIDYuXG4gKi9cblxuYnV0dG9uLFxuaHRtbCBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLCAvKiAxICovXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0sXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDIgKi9cbiAgY3Vyc29yOiBwb2ludGVyOyAvKiAzICovXG4gIEBpZiAkbGVnYWN5X2Jyb3dzZXJfc3VwcG9ydCB7XG4gICAgKm92ZXJmbG93OiB2aXNpYmxlOyAgLyogNCAqL1xuICB9XG59XG5cbi8qKlxuICogUmUtc2V0IGRlZmF1bHQgY3Vyc29yIGZvciBkaXNhYmxlZCBlbGVtZW50cy5cbiAqL1xuXG5idXR0b25bZGlzYWJsZWRdLFxuaHRtbCBpbnB1dFtkaXNhYmxlZF0ge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi8qKlxuICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIGJvcmRlciBpbiBGaXJlZm94IDQrLlxuICovXG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbmlucHV0OjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgRmlyZWZveCA0KyBzZXR0aW5nIGBsaW5lLWhlaWdodGAgb24gYGlucHV0YCB1c2luZyBgIWltcG9ydGFudGAgaW5cbiAqIHRoZSBVQSBzdHlsZXNoZWV0LlxuICovXG5cbmlucHV0IHtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cblxuLyoqXG4gKiAxLiBBZGRyZXNzIGJveCBzaXppbmcgc2V0IHRvIGBjb250ZW50LWJveGAgaW4gSUUgOC85LzEwLlxuICogMi4gUmVtb3ZlIGV4Y2VzcyBwYWRkaW5nIGluIElFIDgvOS8xMC5cbiAqICBLbm93biBpc3N1ZTogZXhjZXNzIHBhZGRpbmcgcmVtYWlucyBpbiBJRSA2LlxuICovXG5cbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbmlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMiAqL1xuICBAaWYgJGxlZ2FjeV9icm93c2VyX3N1cHBvcnQge1xuICAgICpoZWlnaHQ6IDEzcHg7IC8qIDMgKi9cbiAgICAqd2lkdGg6IDEzcHg7IC8qIDMgKi9cbiAgfVxufVxuXG4vKipcbiAqIEZpeCB0aGUgY3Vyc29yIHN0eWxlIGZvciBDaHJvbWUncyBpbmNyZW1lbnQvZGVjcmVtZW50IGJ1dHRvbnMuIEZvciBjZXJ0YWluXG4gKiBgZm9udC1zaXplYCB2YWx1ZXMgb2YgdGhlIGBpbnB1dGAsIGl0IGNhdXNlcyB0aGUgY3Vyc29yIHN0eWxlIG9mIHRoZVxuICogZGVjcmVtZW50IGJ1dHRvbiB0byBjaGFuZ2UgZnJvbSBgZGVmYXVsdGAgdG8gYHRleHRgLlxuICovXG5cbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIEFkZHJlc3MgYGFwcGVhcmFuY2VgIHNldCB0byBgc2VhcmNoZmllbGRgIGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuICogMi4gQWRkcmVzcyBgYm94LXNpemluZ2Agc2V0IHRvIGBib3JkZXItYm94YCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAqL1xuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8qIDEgKi9cbiAgYm94LXNpemluZzogY29udGVudC1ib3g7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgc2VhcmNoIGNhbmNlbCBidXR0b24gaW4gU2FmYXJpIGFuZCBDaHJvbWUgb24gT1MgWC5cbiAqIFNhZmFyaSAoYnV0IG5vdCBDaHJvbWUpIGNsaXBzIHRoZSBjYW5jZWwgYnV0dG9uIHdoZW4gdGhlIHNlYXJjaCBpbnB1dCBoYXNcbiAqIHBhZGRpbmcgKGFuZCBgdGV4dGZpZWxkYCBhcHBlYXJhbmNlKS5cbiAqL1xuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLyoqXG4gKiBEZWZpbmUgY29uc2lzdGVudCBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcuXG4gKi9cblxuZmllbGRzZXQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICBtYXJnaW46IDAgMnB4O1xuICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCBgY29sb3JgIG5vdCBiZWluZyBpbmhlcml0ZWQgaW4gSUUgOC85LzEwLzExLlxuICogMi4gUmVtb3ZlIHBhZGRpbmcgc28gcGVvcGxlIGFyZW4ndCBjYXVnaHQgb3V0IGlmIHRoZXkgemVybyBvdXQgZmllbGRzZXRzLlxuICogMy4gQ29ycmVjdHMgdGV4dCBub3Qgd3JhcHBpbmcgaW4gRmlyZWZveCAzLlxuICogNC4gQ29ycmVjdHMgYWxpZ25tZW50IGRpc3BsYXllZCBvZGRseSBpbiBJRSA2LzcuXG4gKi9cblxubGVnZW5kIHtcbiAgYm9yZGVyOiAwOyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDIgKi9cbiAgQGlmICRsZWdhY3lfYnJvd3Nlcl9zdXBwb3J0IHtcbiAgICB3aGl0ZS1zcGFjZTogbm9ybWFsOyAvKiAzICovXG4gICAgKm1hcmdpbi1sZWZ0OiAtN3B4OyAvKiA0ICovXG4gIH1cbn1cblxuLyoqXG4gKiBSZW1vdmUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgOC85LzEwLzExLlxuICovXG5cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qKlxuICogRG9uJ3QgaW5oZXJpdCB0aGUgYGZvbnQtd2VpZ2h0YCAoYXBwbGllZCBieSBhIHJ1bGUgYWJvdmUpLlxuICogTk9URTogdGhlIGRlZmF1bHQgY2Fubm90IHNhZmVseSBiZSBjaGFuZ2VkIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFguXG4gKi9cblxub3B0Z3JvdXAge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLyogVGFibGVzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSBtb3N0IHNwYWNpbmcgYmV0d2VlbiB0YWJsZSBjZWxscy5cbiAqL1xuXG50YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGJvcmRlci1zcGFjaW5nOiAwO1xufVxuXG50ZCxcbnRoIHtcbiAgcGFkZGluZzogMDtcbn0iLCIvLyBUeXBvZ3JhcGh5XG4vL1xuLy8gU3R5bGUgZ3VpZGU6IDEuMFxuXG4lc2VyaWYge1xuICBmb250LWZhbWlseTogXCJicmVlLXNlcmlmXCIsIHNlcmlmO1xufVxuXG4lc2FucyB7XG4gIGZvbnQtZmFtaWx5OiBcImFrdGl2LWdyb3Rlc2stc3RkXCIsIHNhbnMtc2VyaWY7XG59XG5cbi8vIEJvZHkgY29udGVudFxuLy9cbi8vIE1hcmt1cDogYm9keS5odG1sXG4vL1xuLy8gU3R5bGUgZ3VpZGU6IDEuMVxuYm9keSxcbi5zYy10ZXh0LWJvZHkge1xuICBAZXh0ZW5kICVzYW5zO1xuICBmb250LXNpemU6IDE1cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjYxOGVtO1xuICBmb250LXdlaWdodDogNDAwO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG59XG5cbmVtLFxuLnNjLXRleHQtZW1waGFzaXMge1xuICBmb250LXdlaWdodDogNTAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbnNtYWxsLFxuLnNjLXRleHQtc21hbGwge1xuICBAaW5jbHVkZSBmb250c2l6ZSgxM3B4LCAyNHB4KTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLnNjLXRleHQtZXh0cmFzbWFsbCB7XG4gIEBpbmNsdWRlIGZvbnRzaXplKDExcHgsIDEzcHgpO1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG5hLFxuYTpob3ZlcixcbmE6dmlzaXRlZCB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuOmZvY3Vze1xuICBvdXRsaW5lOiBub25lO1xufVxuXG5cbi8vIEhlYWRpbmdzXG4vL1xuLy8gTWFya3VwOiBoZWFkaW5ncy5odG1sXG4vL1xuLy8gU3R5bGUgZ3VpZGU6IDEuMlxuaDEsXG5oMixcbmgzLFxuaDQsXG4uc2MtbWVnYS1oZWFkaW5nLFxuLnNjLXN1cGVyLWhlYWRpbmcsXG4uc2MtbGFyZ2UtaGVhZGluZyxcbi5zYy1zbWFsbC1oZWFkaW5nIHtcbiAgQGV4dGVuZCAlc2VyaWY7XG59XG5cbmgxLFxuLnNjLW1lZ2EtaGVhZGluZyB7XG4gIEBpbmNsdWRlIGZvbnRzaXplKDY0cHgsIDcycHgpO1xufVxuXG5oMixcbi5zYy1zdXBlci1oZWFkaW5nIHtcbiAgQGluY2x1ZGUgZm9udHNpemUoNDBweCwgNDhweCk7XG59XG5cbmgzLFxuLnNjLWxhcmdlLWhlYWRpbmcge1xuICBAaW5jbHVkZSBmb250c2l6ZSgyNHB4LCAyNHB4KTtcbn1cblxuaDQsXG4uc2Mtc21hbGwtaGVhZGluZyB7XG4gIEBpbmNsdWRlIGZvbnRzaXplKDE1cHgsIDI0cHgpO1xufVxuXG4uc2MtdGV4dC1ibHVlIHtcbiAgY29sb3I6IG1hcC1nZXQoJGN0YUNvbG9ycywgYmx1ZSk7XG59XG4uc2MtdGV4dC1saWdodGJsdWUge1xuICBjb2xvcjogbWFwLWdldCgkcHJvZ3JhbUNvbG9ycywgbGlnaHRCbHVlKTtcbn1cbi5zYy10ZXh0LWdyZWVuIHtcbiAgY29sb3I6IG1hcC1nZXQoJGN0YUNvbG9ycywgbGlnaHRHcmVlbik7XG59XG5cbi5zYy1zdHJpa2V0aHJvdWdoIHtcbiAgY29sb3I6ICNBN0E3QTc7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICY6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDQ1JTtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRUY1ODQ3O1xuICB9XG59XG5cbi8vIFByaWNpbmdcbi8vXG4vLyBNYXJrdXA6IHByaWNpbmcuaHRtbFxuLy9cbi8vIFN0eWxlIGd1aWRlOiAxLjNcbi5zYy1wcmljZSB7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDEwMHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvdHRvbTogLTNweDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcblxuICAuc2MtZG9sbGFycyB7XG4gICAgQGluY2x1ZGUgZm9udHNpemUoMjRweCwgMjlweCk7XG4gICAgcGFkZGluZzogMCAycHggMCA5cHg7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG5cbiAgLnNjLWN1cnJlbmN5LFxuICAuc2MtY2VudHMge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG59XG5cbi5zYy1ncmF5IHtcbiAgY29sb3I6ICNBN0E3QTc7XG5cbn1cbiIsIkBtaXhpbiBmb250c2l6ZSgkc2l6ZToxNHB4LCAkaGVpZ2h0OjE4cHgpIHtcbiAgZm9udC1zaXplOiAkc2l6ZTtcbiAgbGluZS1oZWlnaHQ6ICRoZWlnaHQ7XG59XG4iLCIkcHJvZ3JhbUNvbG9yczogKFxuICBsaWdodEJsdWU6ICMyOUI2RjYsXG4gIHJlZDogI0VGNTM1MCxcbiAgb3JhbmdlOiAjRkZBNzI2XG4pO1xuXG4kY3RhQ29sb3JzOiAoXG4gIGxpZ2h0R3JlZW46ICMwMEM4NTMsXG4gIGdyZWVuOiAjNDNBMDQ3LFxuICBibHVlOiAjMjk3OUZGLFxuICBkYXJrQmx1ZTogIzE5NzZEMlxuKTtcblxuJGNvbG9yczogKFxuICBsaW5rQmx1ZTogIzAwYWNlY1xuKTtcbiIsIi8vIEJyZWFkY3J1bWJcbi8vXG4vLyBNYXJrdXA6IGJyZWFkY3J1bWIuaHRtbFxuLy9cbi8vIFN0eWxlZ3VpZGU6IDcuMFxuLnNjLWJyZWFkY3J1bWIge1xuICBtYXJnaW4tbGVmdDogMDtcbiAgcGFkZGluZy1sZWZ0OiAzMnB4O1xuXG4gIGxpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgY29sb3I6ICMwMEM4NTM7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcblxuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyA+ICc7XG4gICAgICBjb2xvcjogI0U5RTdFMjtcbiAgICAgIHBhZGRpbmc6IDAgOHB4O1xuICAgIH1cblxuICAgICY6bGFzdC1jaGlsZDphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuICB9XG59XG4iLCIvLyBCdXR0b25zXG4vL1xuLy8gQnV0dG9ucyBhcmUgdGhlIHNpbXBsaWVzdCB3YXkgZm9yIGEgdXNlciB0byBpbnRlcmFjdCB3aXRoIGFuIGFwcGxpY2F0aW9uLlxuLy9cbi8vIC5zYy1yZWQtYnV0dG9uIC0gTm9ybWFsIGJ1dHRvbi5cbi8vXG4vLyBNYXJrdXA6IGJ1dHRvbi5odG1sXG4vL1xuLy8gU3R5bGUgZ3VpZGU6IDIuMFxuXG4uc2MtYnV0dG9uIHtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNzAwO1xuICBsaW5lLWhlaWdodDogMzBweDtcbiAgaGVpZ2h0OiAzMnB4O1xuICBwYWRkaW5nLWxlZnQ6IDE2cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDE2cHg7XG4gIC8vIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRwcm9ncmFtQ29sb3JzLCBibHVlKTtcblxuICAmOmFjdGl2ZSwgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxufVxuXG4vLyBSb3VuZCBidXR0b25zXG4vL1xuLy8gTWFya3VwOiBidXR0b24tcm91bmQuaHRtbFxuLy9cbi8vIFN0eWxlIGd1aWRlOiAyLjFcbi5zYy1idXR0b24tcm91bmQge1xuICB3aWR0aDogMzBweDtcbiAgaGVpZ2h0OiAzMHB4O1xuICBib3JkZXItcmFkaXVzOiAzMHB4O1xuICBsaW5lLWhlaWdodDogMzBweDtcbiAgYmFja2dyb3VuZDogI0Y4RjdGNTtcbiAgY29sb3I6ICNCMUIwQUU7XG59XG5cbi8vIEJ1dHRvbiBDb2xvcnNcbi8vXG4vLyAuc2MtYnV0dG9uLWdyZWVuIC0gR3JlZW4gQnV0dG9uLlxuLy8gLnNjLWJ1dHRvbi1yZWQgLSBSZWQgQnV0dG9uLlxuLy9cbi8vIE1hcmt1cDogYnV0dG9uLWNvbG9ycy5odG1sXG4vL1xuLy8gU3R5bGUgZ3VpZGU6IDIuMlxuLnNjLWJ1dHRvbi1ncmVlbiB7XG4gIGJhY2tncm91bmQ6IG1hcC1nZXQoJGN0YUNvbG9ycywgbGlnaHRHcmVlbik7XG59XG5cbi5zYy1idXR0b24tcmVkIHtcbiAgYmFja2dyb3VuZDogbWFwLWdldCgkcHJvZ3JhbUNvbG9ycywgcmVkKTtcbn1cbiIsIi8vIENhcmRzXG4vL1xuLy8gTWFya3VwOiBjYXJkLmh0bWxcbi8vXG4vLyBTdHlsZSBndWlkZTogNi4wXG4uc2MtY2FyZCB7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYm94LXNoYWRvdzogMCAxcHggMnB4IHJnYmEoMTgsMTgsMTgsLjA4KSxcbiAgICAgICAgICAgICAgMCAzcHggNnB4IHJnYmEoMCwwLDAsLjA2KTtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IDE2cHg7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG5cbi8vIFByb2R1Y3QgQ2FyZHNcbi8vXG4vLyBNYXJrdXA6IHByb2R1Y3QtY2FyZC5odG1sXG4vL1xuLy8gU3R5bGUgZ3VpZGU6IDYuMVxuLnNjLXByb2R1Y3QtY2FyZC5zYy1wcm9kdWN0LWNhcmQtc21hbGwge1xuICBoZWlnaHQ6IDM1OHB4O1xuICB3aWR0aDogMjM4cHg7XG5cbiAgZmlndXJlIHtcbiAgICBoZWlnaHQ6IDIzNnB4O1xuXG4gICAgaW1nIHtcbiAgICAgIGhlaWdodDogMTkwcHg7XG4gICAgfVxuICB9XG59XG5cbi5zYy1wcm9kdWN0LWNhcmQuc2MtcHJvZHVjdC1jYXJkLW1lZGl1bSB7XG4gIGhlaWdodDogMzk5cHg7XG4gIHdpZHRoOiAyODVweDtcblxuICBmaWd1cmUge1xuICAgIGhlaWdodDogMjY3cHg7XG5cbiAgICBpbWcge1xuICAgICAgaGVpZ2h0OiAyMjFweDtcbiAgICB9XG4gIH1cbn1cblxuLnNjLXByb2R1Y3QtY2FyZC5zYy1wcm9kdWN0LWNhcmQtbGFyZ2Uge1xuICBoZWlnaHQ6IDQ3MHB4O1xuICB3aWR0aDogMzgwcHg7XG5cbiAgZmlndXJlIHtcbiAgICBoZWlnaHQ6IDM0OHB4O1xuXG4gICAgaW1nIHtcbiAgICAgIGhlaWdodDogMjg0cHg7XG4gICAgfVxuICB9XG59XG5cbi5zYy1wcm9kdWN0LWNhcmQuc2MtcHJvZHVjdC1jYXJkLW1lZGl1bSxcbi5zYy1wcm9kdWN0LWNhcmQuc2MtcHJvZHVjdC1jYXJkLWxhcmdlIHtcbiAgLnNjLXByb21vLWluZm9ybWF0aW9uIHtcbiAgICBAaW5jbHVkZSBmb250c2l6ZSgxNXB4LCAxOXB4KTtcbiAgfVxufVxuXG4uc2MtcHJvZHVjdC1jYXJkIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIHBhZGRpbmc6IDE2cHg7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gIC5zYy1jYXJkLWZsYWcge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDE2cHg7XG4gICAgbGVmdDogMTZweDtcbiAgICB6LWluZGV4OiAxMDtcbiAgfVxuXG4gIGhlYWRlciB7XG4gICAgaDEsXG4gICAgaDIsXG4gICAgaDMsXG4gICAgaDQge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG4gIH1cblxuICBzZWN0aW9uIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICBmaWd1cmUge1xuICAgIG1hcmdpbjogMDtcbiAgICBoZWlnaHQ6IDI2OHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuXG4gIGEsXG4gIGE6aG92ZXIsXG4gIGE6dmlzaXRlZCB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGNvbG9yOiByZ2JhKDM0ICwzNCAsMzQgLDAuOCk7XG4gIH1cblxuICBmaWdjYXB0aW9uIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIEBpbmNsdWRlIGZvbnRzaXplKDE1cHgsIDE5cHgpO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAvL2JvdHRvbTogMDtcbiAgICBwYWRkaW5nLXRvcDogOHB4O1xuICB9XG5cbiAgLnNjLWRldGFpbHMge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cblxuICAuc2MtcmF0aW5nIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBjb2xvcjogI2U5ZTdlMjtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgbWFyZ2luLXRvcDogNXB4O1xuICAgIG1hcmdpbi1yaWdodDogNXB4O1xuXG4gICAgLnN0YXIge1xuICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgIH1cbiAgICAuc3RhcjphZnRlciB7XG4gICAgICBjb250ZW50OiAnKic7XG4gICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgfVxuXG4gICAgLnNjLXllbGxvdyB7XG4gICAgICBjb2xvcjogI2Y4ZTcxYztcbiAgICB9XG4gIH1cblxuICAuc2MtZnJlZS1zaGlwcGluZyB7XG4gICAgQGV4dGVuZCAuc2MtdGV4dC1saWdodGJsdWU7XG4gICAgQGV4dGVuZCAuc2MtdGV4dC1zbWFsbDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgdmVydGljYWwtYWxpZ246dG9wO1xuICB9XG5cbiAgZm9vdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAxNnB4O1xuICAgIHJpZ2h0OiAxNnB4O1xuICAgIGxlZnQ6IDE2cHg7XG4gICAgY29sb3I6IHJnYmEoMzQsMzQsMzQsMC44KTtcblxuICAgIC5zYy1wcm9tby1pbmZvcm1hdGlvbiB7XG4gICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgQGluY2x1ZGUgZm9udHNpemUoMTNweCwgMTZweCk7XG5cbiAgICAgICYgKyAuc2MtcHJvbW8taW5mb3JtYXRpb24ge1xuICAgICAgICAvLyBtYXJnaW4tYm90dG9tOiAtN3B4O1xuICAgICAgICBsaW5lLWhlaWdodDogMTlweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmID4gLnNjLXByb21vLWluZm9ybWF0aW9uLnNjLWdyYXkge1xuICAgICAgLy8gbWFyZ2luLWJvdHRvbTogLTdweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxOXB4O1xuICAgIH1cblxuICAgIC5zYy1wcmljZS1zdHJpa2V0aHJvdWdoIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgY29sb3I6IG1hcC1nZXQoJHByb2dyYW1Db2xvcnMsIHJlZCk7XG4gICAgICBoZWlnaHQ6IDE5cHg7XG4gICAgICBAaW5jbHVkZSBmb250c2l6ZSgxNXB4LCAxOXB4KTtcblxuICAgICAgLy8gbWFyZ2luLWJvdHRvbTogLTdweDtcblxuICAgICAgLnNjLW9sZC1wcmljZSB7XG4gICAgICAgIGNvbG9yOiAjOTU5NTk1O1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5zYy1wcmljZS1wcmVmaXgge1xuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGJvdHRvbTogLTNweDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IC41ZW07XG4gICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgIH1cblxuICAgIC5zYy1vdGhlci1wcmljaW5nIHtcbiAgICAgIGN1cnNvcjpwb2ludGVyO1xuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICB9XG5cbiAgICBhLnNjLWxpbmstZ3JlZW57XG4gICAgICAgIGNvbG9yOiAjNDNBMDQ3O1xuICAgIH1cblxuICAgIC5zYy1hY3Rpb25zIHtcbiAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgfVxuICB9XG59XG5cbi5zYy1vdmVybGF5IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDM0LCAzNCwgMzQsIDAuOCk7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgY29sb3I6IHdoaXRlO1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgei1pbmRleDogMTtcblxuICAuc2Mtbm90aWZpY2F0aW9uIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgaDEge1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgQGV4dGVuZCAlc2FucztcbiAgICB9XG4gIH1cblxuICAuc2MtY29udGVudCB7XG4gICAgZGlzcGxheTogdGFibGUtcm93O1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgIGNvbG9yOiBibGFjaztcbiAgICBtaW4taGVpZ2h0OiAxODlweDtcblxuICAgIC5zYy1jaGFubmVscyB7XG4gICAgICBoZWlnaHQ6IDUycHg7XG4gICAgICBiYWNrZ3JvdW5kOiAjRjlGOUY5O1xuXG4gICAgICAuc2MtY2hhbm5lbC10aXRsZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IC00cHg7XG4gICAgICAgIHBhZGRpbmctdG9wOiA0cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgIH1cblxuICAgICAgLnNjLW91dC1vZi1zdG9jayB7XG4gICAgICAgIC5zYy1jaGFubmVsLXRpdGxlIHtcbiAgICAgICAgICBjb2xvcjogI2QwMDIxYjtcbiAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgICBmb250LXdlaWdodDogODAwO1xuICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAuOHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLnNjLWxvY2F0aW9uIHtcbiAgICAgICAgICBjb2xvcjogcmdiYSgzNCwgMzQsIDM0LCAwLjgpO1xuICAgICAgICAgIEBpbmNsdWRlIGZvbnRzaXplKDE1cHgsIDE4cHgpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIC5zYy1wcmljZSB7XG4gICAgICAvLyAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIC8vICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgLy9cbiAgICAgIC8vICAgLnNjLWN1cnJlbmN5LFxuICAgICAgLy8gICAuc2MtZG9sbGFycyxcbiAgICAgIC8vICAgLnNjLWNlbnRzIHtcbiAgICAgIC8vICAgICBAZXh0ZW5kICVzYW5zO1xuICAgICAgLy8gICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIC8vICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgLy8gICB9XG4gICAgICAvLyAgIC5zYy1kb2xsYXJzIHtcbiAgICAgIC8vICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAvLyAgIH1cbiAgICAgIC8vICAgLnNjLWN1cnJlbmN5LFxuICAgICAgLy8gICAuc2MtY2VudHMge1xuICAgICAgLy8gICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgIC8vICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgLy8gICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIC8vICAgICB0b3A6IC0ycHg7XG4gICAgICAvLyAgIH1cbiAgICAgIC8vXG4gICAgICAvLyAgIC5zYy1jdXJyZW5jeSB7XG4gICAgICAvLyAgICAgbGVmdDogMnB4O1xuICAgICAgLy8gICB9XG4gICAgICAvLyAgIC5zYy1jZW50cyB7XG4gICAgICAvLyAgICAgcmlnaHQ6IDJweDtcbiAgICAgIC8vICAgfVxuICAgICAgLy8gfVxuXG4gICAgICAuc2MtY2hhbm5lbHMge1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgfVxuXG4gICAgICAuc2MtY2hhbm5lbCB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAycHgpO1xuICAgICAgICB3aWR0aDogY2FsYyg1MCUgLSAycHgpO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuXG4gICAgICAgIC5zYy1wcmljZSB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgIGJvdHRvbTogM3B4O1xuXG4gICAgICAgICAgLnNjLWRvbGxhcnMge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC5zYy1jdXJyZW5jeSxcbiAgICAgICAgICAuc2MtY2VudHMge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC5zYy1jdXJyZW5jeSB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLTlweDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuc2Mtc2VsZWN0ZWQtY2hhbm5lbCAuc2MtcHJpY2V7XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IG1hcC1nZXQoJGN0YUNvbG9ycywgbGlnaHRHcmVlbik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnNjLW1vbmV5LWJveCB7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgLy8gbWluLWhlaWdodDoxNTVweDtcbiAgICAgIHBhZGRpbmc6IDFlbTtcblxuICAgICAgLnNjLXByaWNpbmctZGV0YWlscyB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE3cHg7XG5cbiAgICAgICAgLnNjLXVuaXQtcHJpY2U6bm90KDpvbmx5LWNoaWxkKSB7XG4gICAgICAgICAgY29sb3I6ICNBN0E3QTc7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogMWVtO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5zYy11bml0cy1jaG9vc2VyIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMWVtO1xuICAgICAgICAuc2MtaW5wdXQge1xuICAgICAgICAgIHdpZHRoOiA2NHB4O1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIH1cblxuICAgICAgICAuc2Mtc3ByaXRlLW1pbnVzIHtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgYm90dG9tOiA1cHg7XG4gICAgICAgICAgcmlnaHQ6IDdweFxuICAgICAgICB9XG5cbiAgICAgICAgLnNjLXNwcml0ZS1wbHVzIHtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgdG9wOiAxcHg7XG4gICAgICAgICAgcmlnaHQ6IDhweDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuc2Mtc3Vic2NyaXB0aW9uIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMWVtO1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICB9XG5cbiAgICAgIC5zYy1zdWJzY3JpcHRpb24tZnJlcXVlbmN5IHtcbiAgICAgICAgQGV4dGVuZCAuc2MtdGV4dC1ncmVlbjtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgIH1cblxuICAgICAgLnNjLWFjdGlvbnMge1xuICAgICAgICBtYXJnaW4tdG9wOiAxZW07XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDNweDtcblxuICAgICAgICAuc2MtYnV0dG9uIHtcbiAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cblxuLy8gUHJvZHVjdCBDYXJkIExpc3Rcbi8vXG4vLyBNYXJrdXA6IHByb2R1Y3QtY2FyZC1saXN0Lmh0bWxcbi8vXG4vLyBTdHlsZWd1aWRlOiA2LjJcbi5zYy1wcm9kdWN0LWNhcmQtbGlzdCB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgLnNjLXByb2R1Y3QtY2FyZCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxZW07XG4gICAgd2lkdGg6IDIzOHB4O1xuICB9XG59XG5cblxuLypcblxuICBQTFAgQ2FyZHNcblxuKi9cblxuLy8gU2luZ2xlIFByaWNlIC0gMSBvciAyIGNoYW5uZWxzXG4vL1xuLy8gTWFya3VwOiBwbHAvcGxwLXNpbmdsZS1wcmljZS5odG1sXG4vL1xuLy8gU3R5bGVndWlkZTogNi4xLjFcblxuLy8gMiBQcmljZSAvIHZhcmlhbnRzXG4vL1xuLy8gTWFya3VwOiBwbHAvcGxwLXR3by1wcmljZS5odG1sXG4vL1xuLy8gU3R5bGVndWlkZTogNi4xLjJcblxuLy8gUHJlb3JkZXJcbi8vXG4vLyBNYXJrdXA6IHBscC9wbHAtcHJlb3JkZXIuaHRtbFxuLy9cbi8vIFN0eWxlZ3VpZGU6IDYuMS4zXG5cbi8vIEluc3RhbnQgU2F2aW5nc1xuLy9cbi8vIE1hcmt1cDogcGxwL3BscC1pbnN0YW50LXNhdmluZ3MuaHRtbFxuLy9cbi8vIFN0eWxlZ3VpZGU6IDYuMS40XG5cbi8vIFRlY2ggU2F2aW5nc1xuLy9cbi8vIE1hcmt1cDogcGxwL3BscC10ZWNoLXNhdmluZ3MuaHRtbFxuLy9cbi8vIFN0eWxlZ3VpZGU6IDYuMS41XG5cbi8vIE5ldyBMb3dlciBQcmljZVxuLy9cbi8vIE1hcmt1cDogcGxwL3BscC1uZXctbG93ZXItcHJpY2UuaHRtbFxuLy9cbi8vIFN0eWxlZ3VpZGU6IDYuMS42XG5cbi8vIFNob2NraW5nIFZhbHVlc1xuLy9cbi8vIE1hcmt1cDogcGxwL3BscC1zaG9ja2luZy12YWx1ZXMuaHRtbFxuLy9cbi8vIFN0eWxlZ3VpZGU6IDYuMS43XG5cbi8vIFZJUFxuLy9cbi8vIE1hcmt1cDogcGxwL3BscC12aXAuaHRtbFxuLy9cbi8vIFN0eWxlZ3VpZGU6IDYuMS44XG5cbi8vIFZpZXcgT25seVxuLy9cbi8vIE1hcmt1cDogcGxwL3BscC12aWV3LW9ubHkuaHRtbFxuLy9cbi8vIFN0eWxlZ3VpZGU6IDYuMS45XG5cbi8vIFByZXZpZXdcbi8vXG4vLyBNYXJrdXA6IHBscC9wbHAtcHJldmlldy5odG1sXG4vL1xuLy8gU3R5bGVndWlkZTogNi4xLjEwXG5cblxuXG4vKlxuXG4gIENhcm91c2VsIENhcmRzXG5cbiovXG5cbi8vIFNpbmdsZSBQcmljZVxuLy9cbi8vIE1hcmt1cDogY2Fyb3VzZWwvc2luZ2xlLXByaWNlLmh0bWxcbi8vXG4vLyBTdHlsZWd1aWRlOiA2LjIuMVxuXG4vLyAyIFByaWNlIC8gdmFyaWFudHNcbi8vXG4vLyBNYXJrdXA6IGNhcm91c2VsL3R3by1wcmljZS5odG1sXG4vL1xuLy8gU3R5bGVndWlkZTogNi4yLjJcblxuLy8gUHJlb3JkZXJcbi8vXG4vLyBNYXJrdXA6IGNhcm91c2VsL3ByZW9yZGVyLmh0bWxcbi8vXG4vLyBTdHlsZWd1aWRlOiA2LjIuM1xuXG4vLyBJbnN0YW50IFNhdmluZ3Ncbi8vXG4vLyBNYXJrdXA6IGNhcm91c2VsL2luc3RhbnQtc2F2aW5ncy5odG1sXG4vL1xuLy8gU3R5bGVndWlkZTogNi4yLjRcblxuLy8gVGVjaCBTYXZpbmdzXG4vL1xuLy8gTWFya3VwOiBjYXJvdXNlbC90ZWNoLXNhdmluZ3MuaHRtbFxuLy9cbi8vIFN0eWxlZ3VpZGU6IDYuMi41XG5cbi8vIE5ldyBMb3dlciBQcmljZVxuLy9cbi8vIE1hcmt1cDogY2Fyb3VzZWwvbmV3LWxvd2VyLXByaWNlLmh0bWxcbi8vXG4vLyBTdHlsZWd1aWRlOiA2LjIuNlxuXG4vLyBTaG9ja2luZyBWYWx1ZXNcbi8vXG4vLyBNYXJrdXA6IGNhcm91c2VsL3Nob2NraW5nLXZhbHVlcy5odG1sXG4vL1xuLy8gU3R5bGVndWlkZTogNi4yLjdcblxuLy8gVklQXG4vL1xuLy8gTWFya3VwOiBjYXJvdXNlbC92aXAuaHRtbFxuLy9cbi8vIFN0eWxlZ3VpZGU6IDYuMi44XG5cbi8vIFZpZXcgT25seVxuLy9cbi8vIE1hcmt1cDogY2Fyb3VzZWwvdmlldy1vbmx5Lmh0bWxcbi8vXG4vLyBTdHlsZWd1aWRlOiA2LjIuOVxuXG4vLyBQcmV2aWV3XG4vL1xuLy8gTWFya3VwOiBjYXJvdXNlbC9wcmV2aWV3Lmh0bWxcbi8vXG4vLyBTdHlsZWd1aWRlOiA2LjIuMTBcblxuXG4vLyBDYXRlZ29yeSBwYWdlIC0gUmVsYXRlZCBDYXRlZ29yaWVzIENhcmRzXG4vL1xuLy8gTWFya3VwOiBjYXRlZ29yeS9yZWxhdGVkLWNhdGVnb3JpZXMuaHRtbFxuLy9cbi8vIFN0eWxlIGd1aWRlOiA2LjNcbi5zYy1wcm9kdWN0LWNhcmQtcmVsYXRlZC1jYXQge1xuICBoZWlnaHQ6IDExMnB4O1xuICB3aWR0aDogMjM4cHg7XG5cbiAgZmlndXJlIHtcbiAgICB3aWR0aDogMjA2cHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBtYXJnaW46MDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICAgaW1nIHtcbiAgICAgIGhlaWdodDogODBweDtcbiAgICAgIHdpZHRoOiA4MHB4O1xuICAgICAgbWFyZ2luOiAwIDE2cHggMCAwO1xuICAgIH1cblxuICAgIGZpZ2NhcHRpb24ge1xuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG4gIH1cbn1cblxuLy8gQ2F0ZWdvcnkgcGFnZSAtIExvdyAtIFBPViBDYXJkc1xuLy9cbi8vIE1hcmt1cDogY2F0ZWdvcnkvbG93LWNhdGVnb3JpZXMtcG92LWNhcmRzLmh0bWxcbi8vXG4vLyBTdHlsZSBndWlkZTogNi40XG4uc2MtcHJvZHVjdC1jYXJkLXBvdi1jYXQge1xuICBoZWlnaHQ6IDMyMXB4O1xuICB3aWR0aDogMjM4cHg7XG4gIHBhZGRpbmc6IDI0cHggMTZweCA0MHB4IDE2cHg7XG5cbiAgZmlndXJlIHtcbiAgICB3aWR0aDogMjA2cHg7XG4gICAgbWFyZ2luOjA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgaW1nIHtcbiAgICAgIGhlaWdodDogMTc4cHg7XG4gICAgICB3aWR0aDogMTc4cHg7XG4gICAgICBtYXJnaW46IDAgMCAyNHB4IDA7XG4gICAgfVxuXG4gICAgZmlnY2FwdGlvbiB7XG4gICAgICBAZXh0ZW5kICVzZXJpZjtcbiAgICAgIEBpbmNsdWRlIGZvbnRzaXplKDIwcHgsIDMwcHgpO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIGhlaWdodDogNjBweDtcbiAgICAgIGNvbG9yOiAjNGQ0ZDRkO1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG4gIH1cbn1cblxuLy8gQ29udGVudCBDYXJkc1xuLy9cbi8vIE1hcmt1cDogY2F0ZWdvcnkvY29udGVudC1jYXJkcy5odG1sXG4vL1xuLy8gU3R5bGUgZ3VpZGU6IDYuNVxuLnNjLWNvbnRlbnQtY2FyZC1zbWFsbCB7XG4gIGhlaWdodDogMzU4cHg7XG4gIHdpZHRoOiAyMzhweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBsaW5lLWhlaWdodDogMS42MThlbTtcbn1cblxuLnNjLWNvbnRlbnQtY2FyZC1tZWRpdW0ge1xuICBoZWlnaHQ6IDM5OXB4O1xuICB3aWR0aDogMjg1cHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgbGluZS1oZWlnaHQ6IDEuNjE4ZW07XG59XG5cbi5zYy1jb250ZW50LWNhcmQtbGFyZ2Uge1xuICBoZWlnaHQ6IDQ3MHB4O1xuICB3aWR0aDogMzgwcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgbGluZS1oZWlnaHQ6IDEuNjE4ZW07XG59XG4iLCIvLyBDaGVja2JveFxuLy9cbi8vIE1hcmt1cDogY2hlY2tib3guaHRtbFxuLy9cbi8vIFN0eWxlIGd1aWRlOiA5LjBcbi5zYy1pbnB1dC1sYWJlbCB7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuLnNjLWNoZWNrYm94IHtcbiAgd2lkdGg6IDIwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgcGFkZGluZy1yaWdodDogOHB4O1xuXG4gIGxhYmVsIHtcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2Q4ZDhkODtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgJjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHdpZHRoOiA5cHg7XG4gICAgICBoZWlnaHQ6IDVweDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNHB4O1xuICAgICAgbGVmdDogNHB4O1xuICAgICAgYm9yZGVyOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItdG9wOiBub25lO1xuICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcbiAgICB9XG4gICAgJjpob3Zlcjo6YWZ0ZXIge1xuICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG4gIH1cbiAgaW5wdXRbdHlwZT1jaGVja2JveF0ge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAmOmNoZWNrZWQgKyBsYWJlbDphZnRlciB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgYm9yZGVyLWNvbG9yOiAjMDFjYzc1O1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRmxhZ3Ncbi8vXG4vLyBNYXJrdXA6IGZsYWcuaHRtbFxuLy9cbi8vIFN0eWxlIGd1aWRlOiA0LjBcblxuLnNjLWZsYWcge1xuICBAZXh0ZW5kICVzZXJpZjtcbiAgQGluY2x1ZGUgZm9udHNpemUoMTNweCwgMTlweCk7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBoZWlnaHQ6IDIycHg7XG4gIHBhZGRpbmctbGVmdDogMTBweDtcbiAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgY29sb3I6IHdoaXRlO1xufVxuXG4uc2MtZmxhZy1ibHVlIHtcbiAgYmFja2dyb3VuZDogbWFwLWdldCgkcHJvZ3JhbUNvbG9ycywgbGlnaHRCbHVlKTtcbn1cblxuLnNjLWZsYWctcmVkIHtcbiAgYmFja2dyb3VuZDogbWFwLWdldCgkcHJvZ3JhbUNvbG9ycywgcmVkKTtcbn1cblxuLnNjLWZsYWctb3JhbmdlIHtcbiAgYmFja2dyb3VuZDogbWFwLWdldCgkcHJvZ3JhbUNvbG9ycywgb3JhbmdlKTtcbn1cblxuLnNjLWZsYWctdG9wLXJhdGVkIHtcbiAgQGV4dGVuZCAuc2MtZmxhZztcbiAgQGV4dGVuZCAuc2MtZmxhZy1ibHVlO1xufVxuXG4uc2MtZmxhZy1pbnN0YW50LXNhdmluZ3Mge1xuICBAZXh0ZW5kIC5zYy1mbGFnO1xuICBAZXh0ZW5kIC5zYy1mbGFnLXJlZDtcbn1cblxuLnNjLWZsYWctc2hvY2tpbmctdmFsdWVzIHtcbiAgQGV4dGVuZCAuc2MtZmxhZztcbiAgQGV4dGVuZCAuc2MtZmxhZy1vcmFuZ2U7XG59XG5cbi5zYy1mbGFnLWJlc3Qtc2VsbGVyIHtcbiAgQGV4dGVuZCAuc2MtZmxhZztcbiAgQGV4dGVuZCAuc2MtZmxhZy1vcmFuZ2U7XG59XG5cbi5zYy1mbGFnLXNhbXMtZXhjbHVzaXZlIHtcbiAgQGV4dGVuZCAuc2MtZmxhZztcbiAgQGV4dGVuZCAuc2MtZmxhZy1vcmFuZ2U7XG59XG4iLCIvLyB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyB8IFNpbGVudCBjbGFzc2VzXG4vLyB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiVncmlkbGUtcGllLWNsZWFyZml4IHtcblx0JjphZnRlciB7XG5cdFx0Y29udGVudDogXCIuXCI7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0Y2xlYXI6IGJvdGg7XG5cdFx0dmlzaWJpbGl0eTogaGlkZGVuO1xuXHRcdGxpbmUtaGVpZ2h0OiAwO1xuXHRcdGhlaWdodDogMDtcblx0fVxuXHQgXG5cdCYge1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0fVxuXHQgXG5cdGh0bWxbeG1sbnNdICYge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG5cdCBcblx0KiBodG1sICYge1xuXHRcdGhlaWdodDogMSU7XG5cdH1cbn1cbiVncmlkbGUtc2ltcGxlLWNsZWFyZml4IHtcblx0JjphZnRlciB7XG5cdFx0Y29udGVudDogXCJcIjtcblx0XHRkaXNwbGF5OiB0YWJsZTtcblx0XHRjbGVhcjogYm90aDtcblx0XHRib3JkZXItc3BhY2luZzowO1xuXHR9XG59XG4lZ3JpZGxlLWNsZWFyZml4IHtcblx0Ly8gRm9yIG1vZGVybiBicm93c2VyXG5cdCY6YmVmb3JlLFxuXHQmOmFmdGVyIHtcblx0XHRjb250ZW50OlwiXCI7XG5cdFx0ZGlzcGxheTp0YWJsZTtcblx0XHRib3JkZXItc3BhY2luZzowO1xuXHR9XG5cdCY6YWZ0ZXIge1xuXHRcdGNsZWFyOmJvdGg7XG5cdH1cblx0Ly8gRm9yIElFIDYvNyAodHJpZ2dlciBoYXNMYXlvdXRcblx0JiB7XG5cdCAgIHpvb206MTtcblx0fVxufVxuJWdyaWRsZS1wdXNoLXB1bGwtZGVidWctYmFja2dyb3VuZC1jb21tb24ge1xuXHRiYWNrZ3JvdW5kLXNpemU6NTBweCA5MCU7XG5cdGJhY2tncm91bmQtcG9zaXRpb246MCA1MCU7XG5cdGJhY2tncm91bmQtcmVwZWF0OnJlcGVhdC14O1xufVxuJWdyaWRsZS1wdXNoLXB1bGwtY29tbW9uIHtcblx0cG9zaXRpb246cmVsYXRpdmU7XG59XG4lZ3JpZGxlLWNvbnRhaW5lci1jb21tb24ge1xuXHQtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbiVncmlkbGUtcGFyZW50LWNvbW1vbiB7XG5cdC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcblx0LW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuJWdyaWRsZS1jb250YWluZXItZGVidWctY29tbW9uIHtcblx0YmFja2dyb3VuZC1jb2xvcjojZjVmNWY1O1xufVxuJWdyaWRsZS1ncmlkLWRlYnVnLWNvbW1vbiB7XG5cdCY6YmVmb3JlLFxuXHQmOmFmdGVyIHtcblx0XHRjb250ZW50OlwiXCI7XG5cdFx0ZGlzcGxheTpibG9jaztcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFBRUFBQUFCQ0FZQUFBQWZGY1NKQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUF5UnBWRmgwV0UxTU9tTnZiUzVoWkc5aVpTNTRiWEFBQUFBQUFEdy9lSEJoWTJ0bGRDQmlaV2RwYmowaTc3dS9JaUJwWkQwaVZ6Vk5NRTF3UTJWb2FVaDZjbVZUZWs1VVkzcHJZemxrSWo4K0lEeDRPbmh0Y0cxbGRHRWdlRzFzYm5NNmVEMGlZV1J2WW1VNmJuTTZiV1YwWVM4aUlIZzZlRzF3ZEdzOUlrRmtiMkpsSUZoTlVDQkRiM0psSURVdU15MWpNREV4SURZMkxqRTBOVFkyTVN3Z01qQXhNaTh3TWk4d05pMHhORG8xTmpveU55QWdJQ0FnSUNBZ0lqNGdQSEprWmpwU1JFWWdlRzFzYm5NNmNtUm1QU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUx6QXlMekl5TFhKa1ppMXplVzUwWVhndGJuTWpJajRnUEhKa1pqcEVaWE5qY21sd2RHbHZiaUJ5WkdZNllXSnZkWFE5SWlJZ2VHMXNibk02ZUcxd1BTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM2hoY0M4eExqQXZJaUI0Yld4dWN6cDRiWEJOVFQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wyMXRMeUlnZUcxc2JuTTZjM1JTWldZOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlZKbFppTWlJSGh0Y0RwRGNtVmhkRzl5Vkc5dmJEMGlRV1J2WW1VZ1VHaHZkRzl6YUc5d0lFTlROaUFvVFdGamFXNTBiM05vS1NJZ2VHMXdUVTA2U1c1emRHRnVZMlZKUkQwaWVHMXdMbWxwWkRvd1JrRXpOelZGTlRnMU5qZ3hNVVV5T1VJNFJqaEVNemc0UXpNNFFqWkZPQ0lnZUcxd1RVMDZSRzlqZFcxbGJuUkpSRDBpZUcxd0xtUnBaRG93UmtFek56VkZOamcxTmpneE1VVXlPVUk0UmpoRU16ZzRRek00UWpaRk9DSStJRHg0YlhCTlRUcEVaWEpwZG1Wa1JuSnZiU0J6ZEZKbFpqcHBibk4wWVc1alpVbEVQU0o0YlhBdWFXbGtPakJHUVRNM05VVXpPRFUyT0RFeFJUSTVRamhHT0VRek9EaERNemhDTmtVNElpQnpkRkpsWmpwa2IyTjFiV1Z1ZEVsRVBTSjRiWEF1Wkdsa09qQkdRVE0zTlVVME9EVTJPREV4UlRJNVFqaEdPRVF6T0RoRE16aENOa1U0SWk4K0lEd3ZjbVJtT2tSbGMyTnlhWEIwYVc5dVBpQThMM0prWmpwU1JFWStJRHd2ZURwNGJYQnRaWFJoUGlBOFAzaHdZV05yWlhRZ1pXNWtQU0p5SWo4Kys1K0JoUUFBQUE5SlJFRlVlTnBpWUdCZ2tBSUlNQUFBSHdBYlpJQnRHZ0FBQUFCSlJVNUVya0pnZ2c9PSk7XG5cdFx0bWFyZ2luOjEwcHggMDtcblx0XHRwYWRkaW5nOjVweCAwO1xuXHRcdHRleHQtYWxpZ246Y2VudGVyO1xuXHRcdGNvbG9yOndoaXRlO1xuXHRcdGZvbnQtc2l6ZToxMXB4O1xuXHRcdC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHQtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHRkaXNwbGF5OmJsb2NrICFpbXBvcnRhbnQ7XG5cdH1cblx0YmFja2dyb3VuZC1jb2xvcjojZGFlZmY1O1xufVxuJWdyaWRsZS1ncmlkLWNvbW1vbiB7XG5cdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHRtaW4taGVpZ2h0OjFweDtcblxuXHQtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblxufVxuJWdyaWRsZS1wcmVmaXgtZGVidWctY29tbW9uIHtcblx0YmFja2dyb3VuZC1jb2xvcjojZGFlN2U5ICFpbXBvcnRhbnQ7XG59XG4lZ3JpZGxlLXN1ZmZpeC1kZWJ1Zy1jb21tb24ge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiNkYWU3ZTkgIWltcG9ydGFudDtcbn0iLCIvLyB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyB8IEZ1bmN0aW9uc1xuLy8gfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vKipcbiAqIFN0ciByZXBsYWNlXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9ICAkc3RyaW5nICAgIFN0cmluZyB0aGF0IHlvdSB3YW50IHRvIHJlcGxhY2VcbiAqIEBwYXJhbSB7c3RyaW5nfSAgJHN1YnN0ciAgICBTdHJpbmcgdGhhdCBpcyB0byBiZSByZXBsYWNlZCBieSBgJG5ld3N1YnN0cmBcbiAqIEBwYXJhbSB7c3RyaW5nfSAgJG5ld3N1YnN0ciBTdHJpbmcgdGhhdCByZXBsYWNlcyBgJHN1YnN0cmBcbiAqIEBwYXJhbSB7bnVtYmVyKn0gJGFsbCAgICAgICBGbGFnIGZvciByZXBsYWNlaW5nIGFsbCAoMSspIG9yIG5vdCAoMClcbiAqIEByZXR1cm4ge3N0cmluZ31cbiAqL1xuQGZ1bmN0aW9uIHN0ci1yZXBsYWNlKCRzdHJpbmcsICRzdWJzdHIsICRuZXdzdWJzdHIsICRhbGw6IDApIHtcblx0JHBvc2l0aW9uLWZvdW5kOiBzdHItaW5kZXgoJHN0cmluZywgJHN1YnN0cik7XG5cdCRwcm9jZXNzZWQ6ICgpO1xuXG5cdEB3aGlsZSAoJHBvc2l0aW9uLWZvdW5kIGFuZCAkcG9zaXRpb24tZm91bmQgPiAwKSB7XG5cdFx0JGxlbmd0aC1zdWJzdHI6IHN0ci1sZW5ndGgoJHN1YnN0cik7XG5cdFx0JHByb2Nlc3NlZDogYXBwZW5kKCRwcm9jZXNzZWQsIHN0ci1zbGljZSgkc3RyaW5nLCAwLCAkcG9zaXRpb24tZm91bmQgLSAxKSk7XG5cdFx0JHByb2Nlc3NlZDogYXBwZW5kKCRwcm9jZXNzZWQsICRuZXdzdWJzdHIpO1xuXHRcdCRzdHJpbmc6IHN0ci1zbGljZSgkc3RyaW5nLCAkcG9zaXRpb24tZm91bmQgKyAkbGVuZ3RoLXN1YnN0cik7XG5cblx0XHQkcG9zaXRpb24tZm91bmQ6IDA7XG5cblx0XHRAaWYgKCRhbGwgPiAwKSB7XG5cdFx0XHQkcG9zaXRpb24tZm91bmQ6IHN0ci1pbmRleCgkc3RyaW5nLCAkc3Vic3RyKTtcblx0XHR9XG5cdH1cblxuXHQkcHJvY2Vzc2VkOiBhcHBlbmQoJHByb2Nlc3NlZCwgJHN0cmluZyk7XG5cdCRzdHJpbmc6IFwiXCI7XG5cblx0QGVhY2ggJHMgaW4gJHByb2Nlc3NlZCB7XG5cdFx0JHN0cmluZzogI3skc3RyaW5nfSN7JHN9O1xuXHR9XG5cblx0QHJldHVybiAkc3RyaW5nO1xufVxuXG4vKipcbiAqIE1hcCBzZXRcbiAqXG4gKiBAcGFyYW0gXHRNYXAgXHQkbWFwIFx0XHRUaGUgbWFwIHRvIHVzZVxuICogQHBhcmFtIFx0U3RyaW5nIFx0JGtleSBcdFx0VGhlIGtleSB0byB1cGRhdGVcbiAqIEBwYXJhbSBcdE1peGVkIFx0JHZhbHVlIFx0XHRUaGUgbmV3IHZhbHVlXG4gKiBAcmV0dXJuIFx0TWFwIFx0XHRcdFRoZSBuZXcgbWFwXG4gKi9cbkBmdW5jdGlvbiBtYXAtc2V0KCRtYXAsICRrZXksICR2YWx1ZSkge1xuXHQkbmV3OiAoJGtleTogJHZhbHVlKTtcblx0QHJldHVybiBtYXAtbWVyZ2UoJG1hcCwgJG5ldyk7XG59XG5cblxuLyoqXG4gKiBHZXQgdGhlIGNvbHVtbiB3aWR0aCBpbiBwZXJjZW50IGZvciB0aGUgZ2xvYmFsIG9yIGEgc3BlY2lmaWMgY29udGV4dFxuICpcbiAqIEBwYXJhbSBcdGludCBcdFx0JGNvbHVtbnMgXHRcdFx0XHRcdFRoZSBudW1iZXIgb2YgY29sdW1ucyB0byBjYWxjdWxhdGVcbiAqIEBwYXJhbSBcdGludCBcdFx0JGNvbnRleHQgOiAkZ3JpZGxlLWNvbHVtbnMtY291bnQgXHQgXHRUaGUgY29udGV4dCB0byB1c2VcbiAqIEByZXR1cm4gXHRwZXJjZW50YWdlIFx0XHRcdFx0XHRcdFx0VGhlIHdpZHRoIGluIHBlcmNlbnRcbiAqL1xuQGZ1bmN0aW9uIGdyaWRsZV9nZXRfY29sdW1uX3dpZHRoKFxuXHQkY29sdW1ucyA6IDEsXG5cdCRzdGF0ZU1hcC1vci1zdGF0ZU5hbWUgOiBudWxsXG4pIHtcblx0QHJldHVybiBwZXJjZW50YWdlKDEgLyAkY29udGV4dCAqICRjb2x1bW5zKTtcbn1cblxuXG4vKipcbiAqICBHZXQgYSBzdGF0ZSBtYXBcbiAqXG4gKiBAcGFyYW0gXHRzdHJpbmcgXHRcdCRuYW1lIFx0XHRUaGUgbmFtZSBvZiB0aGUgc3RhdGUgdG8gZ2V0XG4gKiBAcmV0dXJuIFx0bWFwIFx0XHRcdFx0QSBzdGF0ZSBtYXAgb2JqZWN0XG4gKi9cbkBmdW5jdGlvbiBfZ3JpZGxlX2dldF9zdGF0ZShcblx0JHN0YXRlTWFwLW9yLXN0YXRlTmFtZVxuKSB7XG5cdC8vIGNoZWNrIGlmIGhhcyBhIHN0YXRlIG5hbWVkIGxpa2UgdGhpc1xuXHRAaWYgKHR5cGUtb2YoJHN0YXRlTWFwLW9yLXN0YXRlTmFtZSkgPT0gc3RyaW5nXG5cdFx0YW5kICBtYXAtaGFzLWtleSgkX2dyaWRsZV9zdGF0ZXMsIHVucXVvdGUoXCIjeyRzdGF0ZU1hcC1vci1zdGF0ZU5hbWV9XCIpKSlcblx0e1xuXHRcdEByZXR1cm4gbWFwLWdldCgkX2dyaWRsZV9zdGF0ZXMsIHVucXVvdGUoXCIjeyRzdGF0ZU1hcC1vci1zdGF0ZU5hbWV9XCIpKTtcblx0fVxuXG5cdC8vIGEgbWFwIGlzIHBhc3NlZCwgc28gaXQncyBhIHN0YXRlIGhpbXNlbGZcblx0QGlmICRzdGF0ZU1hcC1vci1zdGF0ZU5hbWVcblx0XHRhbmQgdHlwZS1vZigkc3RhdGVNYXAtb3Itc3RhdGVOYW1lKSA9PSBtYXBcblx0e1xuXHRcdEByZXR1cm4gbWFwLW1lcmdlKCRfZ3JpZGxlLXNldHRpbmdzLCAkc3RhdGVNYXAtb3Itc3RhdGVOYW1lKTtcblx0fVxuXG5cdC8vIHJldHVybiB0aGUgZGVmYXVsdCBvbmUgaWYgZXhpc3Rcblx0QGlmIG1hcC1oYXMta2V5KCRfZ3JpZGxlX3N0YXRlcywgZGVmYXVsdClcblx0e1xuXHRcdEByZXR1cm4gbWFwLWdldCgkX2dyaWRsZV9zdGF0ZXMsIGRlZmF1bHQpO1xuXHR9XG5cblx0Ly8gbm90aGluZyBmaW5kZWQsIHJldHVybiB0aGUgZGVmYXVsdCBzdGF0ZVxuXHRAcmV0dXJuICRfZ3JpZGxlLXNldHRpbmdzO1xufVxuXG5cbi8qKlxuICogQ2hlY2sgaWYgYSBzdGF0ZSBleGlzdCA6XG4gKlxuICogQHBhcmFtIFx0c3RyaW5nIFx0XHQkbmFtZSBcdFx0VGhlIG5hbWUgb2YgdGhlIHN0YXRlIHRvIGNoZWNrXG4gKiBAcmV0dXJuIFx0Qm9vbGVhbiBcdFx0XHR0cnVlIGlzIGV4aXN0XG4gKi9cbkBmdW5jdGlvbiBfZ3JpZGxlX2hhc19zdGF0ZShcblx0JHN0YXRlTmFtZVxuKSB7XG5cdEBpZiBtYXAtaGFzLWtleSgkX2dyaWRsZV9zdGF0ZXMsIHVucXVvdGUoXCIjeyRzdGF0ZU5hbWV9XCIpKSB7XG5cdFx0QHJldHVybiB0cnVlO1xuXHR9IEBlbHNlIHtcblx0XHRAcmV0dXJuIGZhbHNlO1xuXHR9XG59XG5cblxuLyoqXG4gKiBHZXQgdGhlIG1lZGlhIHF1ZXJpZXMgdmFyaWFibGVzIDpcbiAqXG4gKiBAcGFyYW0gXHRpbnQgXHRcdCRpbmRleCBcdCBcdFRoZSBtZWRpYSBxdWVyeSBpbmRlc1xuICogQHBhcmFtIFx0U3RyaW5nIFx0XHQkdmFyIFx0XHRUaGUgbWVkaWEgcXVlcnkgdmFyaWFibGUgbmFtZVxuICogQHJldHVybiBcdFN0cmluZ3xpbnQgXHRcdFx0VGhlIHZhcmlhYmxlIHZhbHVlXG4gKi9cbkBmdW5jdGlvbiBfZ3JpZGxlX2dldF9zdGF0ZV92YXIoXG5cdCRzdGF0ZU5hbWUsXG5cdCR2YXIgXHQ6IFwibmFtZVwiXG4pIHtcblxuXHQvLyBnZXQgdGhlIHN0YXRlIDpcblx0JHN0YXRlIDogX2dyaWRsZV9nZXRfc3RhdGUoJHN0YXRlTmFtZSk7XG5cblx0Ly8gY2hlY2sgaWcgc3RhdGUgYW5kIGlmIGhhcyB0aGUgdmFyaWFibGUgOlxuXHRAaWYgJHN0YXRlXG5cdFx0ICBhbmQgbWFwLWhhcy1rZXkoJHN0YXRlLHVucXVvdGUoXCIjeyR2YXJ9XCIpKVxuXHR7XG5cdFx0QHJldHVybiBtYXAtZ2V0KCRzdGF0ZSx1bnF1b3RlKFwiI3skdmFyfVwiKSk7XG5cdH1cblxuXHQvLyBub3RoaW5nIGdldHRlZCA6XG5cdEByZXR1cm4gbnVsbDtcbn1cblxuXG4vKipcbiAqIEdldCBhIHZhcmlhYmxlXG4gKlxuICogQHBhcmFtIFx0U3RyaW5nIFx0XHQkdmFyTmFtZSBcdFx0XHRcdFRoZSB2YXJpYWJsZSBuYW1lXG4gKiBAcGFyYW0gIFx0U3RyaW5nIFx0XHQkc3RhdGVNYXAtb3Itc3RhdGVOYW1lIFx0IFx0VGhlIHN0YXRlIG5hbWUgb3IgYSBtYXAgc3RhdGUgdmFsdWVcbiAqIEByZXR1cm4gXHRNaXhlZCBcdFx0XHRcdFx0XHRcdFRoZSBmaW5kZWQgdmFsdWVcbiAqL1xuQGZ1bmN0aW9uIF9ncmlkbGVfZ2V0X3Zhcl92YWx1ZShcblx0JHZhck5hbWUsXG5cdCRzdGF0ZU1hcC1vci1zdGF0ZU5hbWUgOiBudWxsXG4pIHtcblx0Ly8gaWYgaXMgYSBzdGF0ZSA6XG5cdCRzdGF0ZSA6IG51bGw7XG5cblx0Ly8gZ2V0IHRoZSBzdGF0ZSAoaWYgbm8gc3RhdGUgZmluZCwgcmV0dXJuIHRoZSBkZWZhdWx0IG9uZSkgOlxuXHQkc3RhdGUgOiBfZ3JpZGxlX2dldF9zdGF0ZSgkc3RhdGVNYXAtb3Itc3RhdGVOYW1lKTtcblxuXHQvLyBleHRlbmQgZGVmYXVsdCBzdGF0ZSB3aXRoIGdpdmVuIHN0YXRlIDpcblx0JHByb3BzIDogbWFwLW1lcmdlKCRfZ3JpZGxlLXNldHRpbmdzLCAkc3RhdGUpO1xuXG5cdEBpZiBtYXAtaGFzLWtleSgkcHJvcHMsIHVucXVvdGUoXCIjeyR2YXJOYW1lfVwiKSkge1xuXHRcdEByZXR1cm4gbWFwLWdldCgkc3RhdGUsIHVucXVvdGUoXCIjeyR2YXJOYW1lfVwiKSk7XG5cdH1cblx0XG5cdC8vIG5vdGhpbmcgZmluZGVkIDpcblx0QHJldHVybiBudWxsO1xufVxuXG5cbi8qKlxuICogU2V0IGEgdmFyaWFibGUgaW4gYSBzdGF0ZVxuICogQHBhcmFtIFx0TWl4ZWQgJHN0YXRlTmFtZS1vci1zdGF0ZUluZGV4IFx0VGhlIHN0YXRlIG5hbWUgb2Ygc3RhdGUgaW5kZXhcbiAqIEBwYXJhbSAgXHRTdHJpbmcgJHZhciAgICAgICAgICAgICAgICAgICAgXHRcdFZhcmlhYmxlIG5hbWUgdG8gYXNzaWduXG4gKiBAcGFyYW0gIFx0TWl4ZWQgJG5ld1ZhbHVlICAgICAgICAgIFx0XHRUaGUgbmV3IHZhbHVlIHRvIGFzc2lnblxuICogQHJldHVybiBcdExpc3QgICAgICAgICAgICAgICAgICAgICAgICAgXHRcdFx0VGhlIHN0YXRlcyBsaXN0IChmdWxsKVxuICovXG5AZnVuY3Rpb24gX2dyaWRsZV9zZXRfc3RhdGVfdmFyKFxuXHQkc3RhdGVOYW1lLFxuXHQkdmFyLFxuXHQkbmV3VmFsdWVcbikge1xuXHQvLyBnZXQgdGhlIHN0YXRlIDpcblx0JHN0YXRlIDogX2dyaWRsZV9nZXRfc3RhdGUoJHN0YXRlTmFtZSk7XG5cblx0Ly8gY2hlY2sgaWcgc3RhdGUgYW5kIGlmIGhhcyB0aGUgdmFyaWFibGUgOlxuXHRAaWYgJHN0YXRlXG5cdFx0ICBhbmQgbWFwLWhhcy1rZXkoJHN0YXRlLHVucXVvdGUoXCIjeyR2YXJ9XCIpKVxuXHR7XG5cdFx0Ly8gc2V0IG5ldyB2YWx1ZSBpbiBzdGF0ZSA6XG5cdFx0JHN0YXRlIDogbWFwLXNldCgkc3RhdGUsIHVucXVvdGUoXCIjeyR2YXJ9XCIpLCAkbmV3VmFsdWUpO1xuXG5cdFx0Ly8gc2V0IHN0YXRlcyA6XG5cdFx0JF9ncmlkbGVfc3RhdGVzIDogbWFwLXNldCgkX2dyaWRsZV9zdGF0ZXMsIHVucXVvdGUoXCIjeyRzdGF0ZU5hbWV9XCIpLCAkc3RhdGUpO1xuXG5cdFx0Ly8gcmV0dXJuIG5ldyBzdGF0ZSA6XG5cdFx0QHJldHVybiAkc3RhdGU7XG5cdH1cblxuXHQvLyBub3RoaW5nIGdldHRlZCA6XG5cdEByZXR1cm4gbnVsbDtcbn1cblxuXG4vKipcbiAqIEdlbmVyYXRlIGEgY29sdW1uXG4gKlxuICogQHBhcmFtIFx0U3RyaW5nIFx0XHQkbmFtZSBcdFx0XHRUaGUgY29sdW1uIG5hbWUgKG9mdGVuIGNvdW50KVxuICogQHBhcmFtIFx0aW50IFx0XHQkY29sdW1ucyBcdFx0VGhlIGNvbHVtbiBjb3VudCB0aGF0IHRoZSBjb2x1bW4gd2lsbCB0YWtlXG4gKiBAcGFyYW0gXHRpbnQgXHRcdCRjb250ZXh0IFx0XHRUaGUgY29udGV4dCBvbiB3aXRjaCB0aGUgd2l0aCB3aWxsIGJlIGNhbGN1bGVkXG4gKiBAcGFyYW0gXHRCb29sZWFuIFx0JGdlbmVyYXRlQ2xhc3NlcyBcdFNldCBpZiB0aGUgY29sdW1uIGhhcyB0byBiZSBnZW5lcmF0ZWQgaW4gY3NzXG4gKi9cbkBmdW5jdGlvbiBfZ3JpZGxlX2NyZWF0ZV9jb2x1bW4oXG5cdCRuYW1lLFxuXHQkY29sdW1ucyxcblx0JGNvbnRleHQsXG5cdCRuYW1lLW11bHRpcGxpY2F0b3IgOiAxIC8vIHVzZWQgdG8gZXh0ZW5kIHRoZSBzdGF0ZSBvbiBjdXN0b20gcmVnaXN0ZXJlZCBjb2x1bW5zXG4pIHtcblx0QHJldHVybiAoXG5cdFx0bmFtZSA6ICRuYW1lLFxuXHRcdGNvbHVtbnMgOiAkY29sdW1ucyxcblx0XHRjb250ZXh0IDogJGNvbnRleHQsXG5cdFx0bmFtZS1tdWx0aXBsaWNhdG9yIDogJG5hbWUtbXVsdGlwbGljYXRvclxuXHQpO1xufVxuXG5cbi8qKlxuICogR2VuZXJhdGUgY2xhc3NuYW1lXG4gKlxuICogQHBhcmFtIFx0TGlzdCBcdFx0JHBhcnJlcm4gXHRUaGUgcGF0dGVybiB0byB1c2UgdG8gZ2VuZXJhdGUgY2xhc3NuYW1lXG4gKiBAcGFyYW0gXHRTdHJpbmcgXHRcdCRzdGF0ZSBcdFx0VGhlIHN0YXRlXG4gKiBAcGFyYW0gXHRpbnQgXHRcdCRjb3VudCBcdFx0VGhlIGNvbHVtbiBjb3VudFxuICovXG5AZnVuY3Rpb24gX2dyaWRsZV9jbGFzc25hbWUoXG5cdCRwYXR0ZXJuLFxuXHQkc3RhdGUgOiBudWxsLFxuXHQkY291bnQgOiBudWxsXG4pIHtcblxuXHQvLyBpbml0IHNlbGVjdG9yIDpcblx0JHNlbCA6IFwiLlwiO1xuXG5cdC8vIGRlbGV0ZSBkZWZhdWx0IDpcblx0QGlmIHVucXVvdGUoXCIjeyRzdGF0ZX1cIikgPT0gZGVmYXVsdCB7XG5cdFx0JHN0YXRlIDogbnVsbDtcblx0fVxuXHRcblx0Ly8gYWRkIGNsYXNzIHByZWZpeCA6XG5cdEBpZiAkZ3JpZGxlLWNsYXNzLXByZWZpeCBhbmQgJGdyaWRsZS1jbGFzcy1wcmVmaXggIT0gJycge1xuXHRcdCRzZWwgOiBcIiN7JHNlbH0jeyRncmlkbGUtY2xhc3MtcHJlZml4fVwiO1xuXHRcdEBpZiAkZ3JpZGxlLWNsYXNzLXNlcGFyYXRvciB7XG5cdFx0XHQkc2VsIDogXCIjeyRzZWx9I3skZ3JpZGxlLWNsYXNzLXNlcGFyYXRvcn1cIjtcblx0XHR9XG5cdH1cblxuXHQvLyBjb25zdHJ1Y3QgY2xhc3MgbmFtZSA6XG5cdCRpIDogMTtcblx0QGVhY2ggJHZhciBpbiAkcGF0dGVybiB7XG5cdFx0XG5cdFx0Ly8gcmVwbGFjZSB0b2tlbnMgOlxuXHRcdEBpZiAkdmFyID09ICclc3RhdGUnIGFuZCAkc3RhdGUge1xuXHRcdFx0JHNlbCA6IFwiI3skc2VsfSN7JHN0YXRlfVwiO1xuXHRcdH0gXG5cdFx0QGlmICR2YXIgPT0gJyVjb3VudCcgYW5kICRjb3VudCB7XG5cdFx0XHQkc2VsIDogXCIjeyRzZWx9I3skY291bnR9XCI7XG5cdFx0fSAgXG5cdFx0QGlmICR2YXIgIT0gJyVzdGF0ZScgYW5kICR2YXIgIT0gJyVjb3VudCcgYW5kICR2YXIgIT0gJyUtJyBhbmQgJHZhciAhPSAnLScgYW5kICR2YXIgIT0gJy0tJyBhbmQgJHZhciAhPSAnXycgYW5kICR2YXIgIT0gJ19fJyBhbmQgJHZhciAhPSAnJXByZWZpeCcge1xuXHRcdFx0JHNlbCA6IFwiI3skc2VsfSN7JHZhcn1cIjtcblx0XHR9XG5cblx0XHQvLyBoYW5kbGUgc2VwYXJhdG9ycyA6XG5cdFx0QGlmICgkdmFyID09ICclLScgb3IgJHZhciA9PSAnLScgb3IgJHZhciA9PSAnLS0nIG9yICR2YXIgPT0gJ18nIG9yICR2YXIgPT0gJ19fJykgYW5kICRpIDwgbGVuZ3RoKCRwYXR0ZXJuKSB7XG5cdFx0XHQkaW5kZXggOiAkaSArIDE7XG5cdFx0XHQkdmFsdWUgOiBudGgoJHBhdHRlcm4sICRpbmRleCk7XG5cdFx0XHRAaWYgJHZhbHVlICE9ICclc3RhdGUnIGFuZCAkdmFsdWUgIT0gJyVjb3VudCcgYW5kICR2YWx1ZSAhPSAnJS0nIGFuZCAkdmFsdWUgIT0gJy0nIGFuZCAkdmFsdWUgIT0gJy0tJyBhbmQgJHZhbHVlICE9ICdfJyBhbmQgJHZhbHVlICE9ICdfXycgYW5kICR2YWx1ZSAhPSAnJXByZWZpeCcge1xuXHRcdFx0XHRAaWYgJHZhciA9PSAnJS0nIHtcblx0XHRcdFx0XHQkc2VsIDogXCIjeyRzZWx9I3skZ3JpZGxlLWNsYXNzLXNlcGFyYXRvcn1cIjtcblx0XHRcdFx0fSBAZWxzZSB7XG5cdFx0XHRcdFx0JHNlbCA6IFwiI3skc2VsfSN7JHZhcn1cIjtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0QGlmICR2YWx1ZSA9PSAnJXN0YXRlJyBhbmQgJHN0YXRlIHtcblx0XHRcdFx0QGlmICR2YXIgPT0gJyUtJyB7XG5cdFx0XHRcdFx0JHNlbCA6IFwiI3skc2VsfSN7JGdyaWRsZS1jbGFzcy1zZXBhcmF0b3J9XCI7XG5cdFx0XHRcdH0gQGVsc2Uge1xuXHRcdFx0XHRcdCRzZWwgOiBcIiN7JHNlbH0jeyR2YXJ9XCI7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdEBpZiAkdmFsdWUgPT0gJyVjb3VudCcgYW5kICRjb3VudCB7XG5cdFx0XHRcdEBpZiAkdmFyID09ICclLScge1xuXHRcdFx0XHRcdCRzZWwgOiBcIiN7JHNlbH0jeyRncmlkbGUtY2xhc3Mtc2VwYXJhdG9yfVwiO1xuXHRcdFx0XHR9IEBlbHNlIHtcblx0XHRcdFx0XHQkc2VsIDogXCIjeyRzZWx9I3skdmFyfVwiO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gdXBkYXRlIGkgOlxuXHRcdCRpIDogJGkgKyAxO1xuXHR9XG5cblx0Ly8gcmV0dXJuIGdlbmVyYXRlZCBjbGFzcyA6XG5cdEByZXR1cm4gJHNlbDtcbn1cblxuXG4vKipcbiAqIEdldCB0aGUgbWVkaWEgcXVlcnkgZm9yIGEgcGFydGljdWxhciBzdGF0ZSwgb3Igd2l0aCwgZXRjLi4uXG4gKlxuICogQHBhcmFtIFx0TWl4ZWQgXHRcdCRzdGF0ZS1vci1taW4td2lkdGggXHRcdFRoZSBzdGF0ZSBuYW1lIG9mIHRoZSBtaW4gd2l0aFxuICogQHBhcmFtIFx0TWl4ZWQgXHRcdCRtYXgtd2lkdGggXHRcdFx0VGhlIG1heCB3aWR0aCBpZiBmaXJzdCBwYXJhbSBpcyBhIG1pbiB3aWR0aFxuICogQHJldHVybiBcdFN0cmluZyBcdFx0XHRcdFx0XHRUaGUgbWVkaWEgcXVlcnkgc3RyaW5nIHdpdGhvdXQgdGhlIEBtZWRpYVxuICovXG5AZnVuY3Rpb24gX2dyaWRsZV9nZXRfbWVkaWFfcXVlcnkoXG5cdCRzdGF0ZS1vci1zZXR0aW5nc1xuKSB7XG5cdC8vIGNoZWNrIGlmIGlzIGEgc3RyaW5nIDpcblx0JHN0YXRlIDogbnVsbDtcblx0QGlmIHR5cGUtb2YoJHN0YXRlLW9yLXNldHRpbmdzKSA9PSBzdHJpbmdcblx0e1xuXHRcdCRzdGF0ZSA6IF9ncmlkbGVfZ2V0X3N0YXRlKCRzdGF0ZS1vci1zZXR0aW5ncyk7XG5cdH1cblx0QGVsc2UgaWYgJHN0YXRlLW9yLXNldHRpbmdzID09IG51bGxcblx0e1xuXHRcdCRzdGF0ZSA6ICRfZ3JpZGxlLXNldHRpbmdzO1xuXHR9XG5cdEBlbHNlXG5cdHtcblx0XHQkc3RhdGUgOiBtYXAtbWVyZ2UoJF9ncmlkbGUtc2V0dGluZ3MsICRzdGF0ZS1vci1zZXR0aW5ncyk7XG5cdH1cblxuXHQvLyBpZiBpdCdzIHNvbWUgc2V0dGluZ3Mgb3IgYSBzdGF0ZSA6XG5cdEBpZiAkc3RhdGUge1xuXG5cdFx0Ly8gZ2V0IHZhcnMgOlxuXHRcdCRuYW1lIDogbWFwLWdldCgkc3RhdGUsIG5hbWUpO1xuXHRcdCRtaW4td2lkdGggOiBtYXAtZ2V0KCRzdGF0ZSwgbWluLXdpZHRoKTtcblx0XHQkbWF4LXdpZHRoIDogbWFwLWdldCgkc3RhdGUsIG1heC13aWR0aCk7XG5cdFx0JHF1ZXJ5IDogbWFwLWdldCgkc3RhdGUsIHF1ZXJ5KTtcblxuXHRcdC8vIGRpcmVjdCBxdWVyeSA6XG5cdFx0QGlmICRxdWVyeVxuXHRcdHtcblx0XHRcdEByZXR1cm4gJHF1ZXJ5O1xuXHRcdH0gXG5cdFx0QGVsc2UgaWYgJG1pbi13aWR0aCBhbmQgJG1heC13aWR0aFxuXHRcdHtcblx0XHRcdEByZXR1cm4gXCJzY3JlZW4gYW5kIChtaW4td2lkdGg6ICN7JG1pbi13aWR0aH0pIGFuZCAobWF4LXdpZHRoOiAjeyRtYXgtd2lkdGh9KVwiO1xuXHRcdH1cblx0XHRAZWxzZSBpZiAkbWluLXdpZHRoXG5cdFx0e1xuXHRcdFx0QHJldHVybiBcInNjcmVlbiBhbmQgKG1pbi13aWR0aDogI3skbWluLXdpZHRofSlcIjtcblx0XHR9XG5cdFx0QGVsc2UgaWYgJG1heC13aWR0aFxuXHRcdHtcblx0XHRcdEByZXR1cm4gXCJzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JG1heC13aWR0aH0pXCI7XG5cdFx0fVxuXHRcdEBlbHNlXG5cdFx0e1xuXHRcdFx0QHJldHVybiBudWxsO1xuXHRcdH1cblxuXHR9IFxuXHRAZWxzZVxuXHR7XG5cdFx0QHJldHVybiBudWxsO1xuXHR9XG59XG5cblxuLyoqXG4gKiBHZXQgc3RhdGVzIGNvdW50XG4gKiBcbiAqIEByZXR1cm4gXHRpbnQgXHRUaGUgbnVtYmVyIG9mIHN0YXRlcyBkZWZpbmVkXG4gKi9cbkBmdW5jdGlvbiBfZ3JpZGxlX2dldF9zdGF0ZXNfY291bnQoKSB7XG5cdEByZXR1cm4gbGVuZ3RoKCRfZ3JpZGxlX3N0YXRlcykgLyBsZW5ndGgoJF9ncmlkbGVfc3RhdGVzX3ZhcnNfcGF0dGVybik7XG59IiwiLy8gfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gfCBTZXR0aW5ncyBtaXhpbnNcbi8vIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLyoqXG4gKiBTZXR1cFxuICovXG5AbWl4aW4gZ3JpZGxlX3NldHVwKFxuXHQkc2V0dGluZ3MgOiAoKVxuKSB7XG5cdCRfZ3JpZGxlLXNldHRpbmdzIDogbWFwLW1lcmdlKChcblx0XHRuYW1lIDogZGVmYXVsdCxcblx0XHRtaW4td2lkdGggOiBudWxsLFxuXHRcdG1heC13aWR0aCA6IG51bGwsXG5cdFx0cXVlcnkgOiBudWxsLFxuXHRcdGNsYXNzZXMgOiB0cnVlLFxuXHRcdGNvbnRleHQgOiAxMixcblx0XHRndXR0ZXItd2lkdGggOiAyMHB4LFxuXHRcdGRpcmVjdGlvbiA6IGx0cixcblx0XHRuYW1lLW11bHRpcGxpY2F0b3IgOiAxLFxuXHRcdGRlYnVnIDogZmFsc2UsXG5cdFx0ZGVidWctc2hvdy1jbGFzcy1uYW1lcyA6IHRydWUsXG5cdFx0aWU3LXN1cHBvcnQgOiBmYWxzZSxcblx0XHRodG1sLXN0YXRlcy1jbGFzc2VzIDogZmFsc2UsXG5cdFx0Z2VuZXJhdGUtcHVzaC1jbGFzc2VzIDogdHJ1ZSxcblx0XHRnZW5lcmF0ZS1wdWxsLWNsYXNzZXMgOiB0cnVlLFxuXHRcdGdlbmVyYXRlLXByZWZpeC1jbGFzc2VzIDogdHJ1ZSxcblx0XHRnZW5lcmF0ZS1zdWZmaXgtY2xhc3NlcyA6IHRydWUsXG5cdFx0Z2VuZXJhdGUtaGVscGVycy1jbGFzc2VzIDogdHJ1ZVxuXHQpLCAkc2V0dGluZ3MpICFnbG9iYWw7XG5cblx0Ly8gcmVnaXN0ZXIgZGVmYXVsdCBzdGF0ZSA6XG5cdEBpbmNsdWRlIGdyaWRsZV9yZWdpc3Rlcl9zdGF0ZShkZWZhdWx0LCAkX2dyaWRsZS1zZXR0aW5ncyk7XG5cbn1cblxuLy8gUmVnaXN0ZXIgYW4gc3RhdGUgOlxuQG1peGluIGdyaWRsZV9yZWdpc3Rlcl9zdGF0ZShcblx0JG5hbWUsXG5cdCRzZXR0aW5nc1xuKSB7XG5cdC8vIHNldHRpbmdzIDpcblx0JHNldHRpbmdzIDogbWFwLW1lcmdlKCRfZ3JpZGxlLXNldHRpbmdzLCAkc2V0dGluZ3MpO1xuXG5cdC8vIHNldCBuYW1lIDpcblx0JHNldHRpbmdzIDogbWFwLXNldCgkc2V0dGluZ3MsIG5hbWUsICRuYW1lKTtcblxuXHQvLyBhZGQgc3RhdGUgaW4gbWFwcyA6XG5cdCRfZ3JpZGxlX3N0YXRlcyA6IG1hcC1zZXQoJF9ncmlkbGVfc3RhdGVzLCAkbmFtZSwgJHNldHRpbmdzKSAhZ2xvYmFsO1xufVxuXG5cbi8qKlxuICogIFJlZ2lzdGVyIGEgY2xlYXIgZWFjaCBjbGFzc1xuICovXG5AbWl4aW4gZ3JpZGxlX3JlZ2lzdGVyX2NsZWFyX2VhY2goXG5cdCRjb3VudCxcblx0JGNsZWFyV2hhdFxuKSB7XG5cdC8vIGNyZWF0ZSB0aGUgY2xlYXIgbWFwIDpcblx0JGNsYXNzTWFwIDogKFxuXHRcdGNsZWFyRWFjaCA6ICRjb3VudCxcblx0XHRjbGVhcldoYXQgOiAkY2xlYXJXaGF0XG5cdCk7XG5cblx0Ly8gYXBwZW5kIHRvIG1hcCA6XG5cdCRfZ3JpZGxlX2NsZWFyX2NsYXNzZXMgOiBtYXAtc2V0KCRfZ3JpZGxlX2NsZWFyX2NsYXNzZXMsICRjb3VudCwgJGNsYXNzTWFwKSAhZ2xvYmFsO1xufVxuXG5cbi8qKlxuICogUmVnaXN0ZXIgYSBzcGVjaWFsIGNsYXNzXG4gKi9cbkBtaXhpbiBncmlkbGVfcmVnaXN0ZXJfY29sdW1uKFxuXHQkbmFtZSxcblx0JGNvbHVtbnMsXG5cdCRjb250ZXh0XG4pIHtcblx0Ly8gY3JlYXRlIGEgY29sdW1uIDpcblx0JGNvbCA6IF9ncmlkbGVfY3JlYXRlX2NvbHVtbigkbmFtZSwgJGNvbHVtbnMsICRjb250ZXh0KTtcblxuXHQvLyBhZGQgY29sdW1uIGluIG1hcHMgOlxuXHQkX2dyaWRsZV9jb2x1bW5zIDogbWFwLXNldCgkX2dyaWRsZV9jb2x1bW5zLCAkbmFtZSwgJGNvbCkgIWdsb2JhbDtcbn1cblxuXG4vKipcbiAqIFJlZ2lzdGVyIGRlZmF1bHQgc3RhdGVzXG4gKi9cbkBtaXhpbiBncmlkbGVfcmVnaXN0ZXJfZGVmYXVsdF9zdGF0ZXMoKSB7XG5cdEBpbmNsdWRlIGdyaWRsZV9yZWdpc3Rlcl9zdGF0ZShtb2JpbGUsIChcblx0XHRtYXgtd2lkdGggOiA0ODBweFxuXHQpKTtcblx0QGluY2x1ZGUgZ3JpZGxlX3JlZ2lzdGVyX3N0YXRlKHRhYmxldCwgKFxuXHRcdG1pbi13aWR0aCA6IDQ4MXB4LFxuXHRcdG1heC13aWR0aCA6IDEwMjRweFxuXHQpKTtcbn1cblxuXG4vKipcbiAqIFJlZ2lzdGVyIGRlZmF1bHQgbW9iaWxlIGZpcnN0IHN0YXRlcyA6XG4gKi9cbkBtaXhpbiBncmlkbGVfcmVnaXN0ZXJfZGVmYXVsdF9tb2JpbGVfZmlyc3Rfc3RhdGVzKCkge1xuXHRAaW5jbHVkZSBncmlkbGVfcmVnaXN0ZXJfc3RhdGUoeHMsIChcblx0XHRtYXgtd2lkdGggOiA3NjhweFxuXHQpKTtcblx0QGluY2x1ZGUgZ3JpZGxlX3JlZ2lzdGVyX3N0YXRlKHNtLCAoXG5cdFx0bWluLXdpZHRoIDogNzY4cHhcblx0KSk7XG5cdEBpbmNsdWRlIGdyaWRsZV9yZWdpc3Rlcl9zdGF0ZShtZCwgKFxuXHRcdG1pbi13aWR0aCA6IDk5MnB4XG5cdCkpO1xuXHRAaW5jbHVkZSBncmlkbGVfcmVnaXN0ZXJfc3RhdGUobGcsIChcblx0XHRtaW4td2lkdGggOiAxMjAwcHhcblx0KSk7XG59XG5cblxuLyoqXG4gKiBTZXQgdGhlIGRlYnVnIGRldmljZSAobm90IHVzZWQgZm9yIG5vdylcbiAqIFxuICogQHBhcmFtIFx0U3RyaW5nIFx0XHQkc3RhdGUgXHRcdFRoZSBzdGF0ZSB0byB1cGRhdGVcbiAqIEBwYXJhIG0gXHRTdHJpbmcgXHRcdCRkZXZpY2UgXHRUaGUgZGV2aWNlIHRvIHVzZSAoaXBob25lLCBldGMuLi4pXG4gKi9cbkBtaXhpbiBncmlkbGVfc2V0X2RlYnVnX2RldmljZShcblx0JHN0YXRlIDogZGVmYXVsdCxcblx0JGRldmljZSA6IG51bGxcbikge1xuXG5cdC8vIGNoZWNrIHBhcmFtcyA6XG5cdEBpZiAkc3RhdGUgYW5kICRkZXZpY2Uge1xuXHRcdC8vIHNldCB0aGUgc3RhdGUgZGV2aWNlIDpcblx0XHQkX2dyaWRsZV9zdGF0ZXNfZGVidWdfZGV2aWNlcyA6IGFwcGVuZCgkX2dyaWRsZV9zdGF0ZXNfZGVidWdfZGV2aWNlcywgdW5xdW90ZShcIlxcXCIjeyRzdGF0ZX1cXFwiIDogXFxcIiN7JGRldmljZX1cXFwiXCIpLCBjb21tYSk7XG5cdH1cblxufSIsIi8vIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHwgTWl4aW5zXG4vLyB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEhlbHBlciB0byBhcHBseSBtdWx0aXBsZSBjb25maWcgZm9yIGEgY2VydGFpbiBzdGF0ZSB3aXRoIG9uZSBtaXhpblxuQG1peGluIGdyaWRsZV9zZXQoXG5cdCRzZXR0aW5ncyxcblx0JHN0YXRlIDogZGVmYXVsdFxuKSB7XG5cdFxuXHQvLyBsb29wIG9uIGVhY2ggc2V0dGluZ3Ncblx0QGVhY2ggJHNldHRpbmdOYW1lLCAkc2V0dGluZ1ZhbHVlIGluICRzZXR0aW5nc1xuXHR7XG5cdFx0JHNuIDogdW5xdW90ZShcIiN7JHNldHRpbmdOYW1lfVwiKTtcblx0XHQkc3YgOiAkc2V0dGluZ1ZhbHVlO1xuXG5cdFx0Ly8gY2hlY2sgaWYgc2V0dGluZyBuYW1lIGlzIGEgc3RhdGUgOlxuXHRcdEBpZiBfZ3JpZGxlX2hhc19zdGF0ZSgkc24pIHtcblx0XHRcdC8vIHByb2Nlc3MgdGhlIHN0YXRlXG5cdFx0XHRAaW5jbHVkZSBncmlkbGVfc2V0KCRzdiwgJHNuKTtcblx0XHR9IEBlbHNlIHtcblx0XHRcdEBpZiAkc24gPT0gY29udGFpbmVyIHtcblx0XHRcdFx0QGluY2x1ZGUgZ3JpZGxlX2NvbnRhaW5lcigkc3RhdGUpO1xuXHRcdFx0fSBAZWxzZSBpZiAkc24gPT0gZ3JpZCB7XG5cdFx0XHRcdEBpbmNsdWRlIGdyaWRsZSgkc3YsICRzdGF0ZSk7XG5cdFx0XHR9IEBlbHNlIGlmICRzbiA9PSBwdXNoIHtcblx0XHRcdFx0QGluY2x1ZGUgZ3JpZGxlX3B1c2goJHN2LCAkc3RhdGUpO1xuXHRcdFx0fSBAZWxzZSBpZiAkc24gPT0gcHVsbCB7XG5cdFx0XHRcdEBpbmNsdWRlIGdyaWRsZV9wdWxsKCRzdiwgJHN0YXRlKTtcblx0XHRcdH0gQGVsc2UgaWYgJHNuID09IHByZWZpeCB7XG5cdFx0XHRcdEBpbmNsdWRlIGdyaWRsZV9wcmVmaXgoJHN2LCAkc3RhdGUpO1xuXHRcdFx0fSBAZWxzZSBpZiAkc24gPT0gc3VmZml4IHtcblx0XHRcdFx0QGluY2x1ZGUgZ3JpZGxlX3N1ZmZpeCgkc3YsICRzdGF0ZSk7XG5cdFx0XHR9IEBlbHNlIGlmICRzbiA9PSBwdWxsIHtcblx0XHRcdFx0QGluY2x1ZGUgZ3JpZGxlX3B1bGwoJHN2LCAkc3RhdGUpO1xuXHRcdFx0fSBAZWxzZSBpZiAkc24gPT0gY2xlYXJfZWFjaCB7XG5cdFx0XHRcdEBpbmNsdWRlIGdyaWRsZV9jbGVhcl9lYWNoKG50aCgkc3YsMSksIG50aCgkc3YsMiksICRzdGF0ZSk7XG5cdFx0XHR9IEBlbHNlIGlmICRzbiA9PSBjZW50ZXJlZCB7XG5cdFx0XHRcdEBpbmNsdWRlIGdyaWRsZV9jZW50ZXJlZCgkc3RhdGUpO1xuXHRcdFx0fSBAZWxzZSBpZiAkc24gPT0gcGFyZW50IHtcblx0XHRcdFx0QGluY2x1ZGUgZ3JpZGxlX3BhcmVudCgkc3RhdGUpO1xuXHRcdFx0fSBAZWxzZSBpZiAkc24gPT0gdmVydGljYWxfYWxpZ24ge1xuXHRcdFx0XHRAaW5jbHVkZSBncmlkbGVfdmVydGljYWxfYWxpZ24oJHN2LCAkc3RhdGUpO1xuXHRcdFx0fSBAZWxzZSBpZiAkc24gPT0gaGlkZSB7XG5cdFx0XHRcdEBpZiAkc3YgPT0gdHJ1ZSB7XG5cdFx0XHRcdFx0QGluY2x1ZGUgZ3JpZGxlX2hpZGUoJHN0YXRlKTtcblx0XHRcdFx0fSBAZWxzZSB7XG5cdFx0XHRcdFx0QGluY2x1ZGUgZ3JpZGxlX3Nob3coJHN0YXRlKTtcblx0XHRcdFx0fVxuXHRcdFx0fSBAZWxzZSBpZiAkc24gPT0gc2hvdyB7XG5cdFx0XHRcdEBpZiAkc3YgPT0gdHJ1ZSB7XG5cdFx0XHRcdFx0QGluY2x1ZGUgZ3JpZGxlX3Nob3coJHN0YXRlKTtcblx0XHRcdFx0fSBAZWxzZSB7XG5cdFx0XHRcdFx0QGluY2x1ZGUgZ3JpZGxlX2hpZGUoJHN0YXRlKTtcblx0XHRcdFx0fVxuXHRcdFx0fSBAZWxzZSBpZiAkc24gPT0gdmlzaWJsZSB7XG5cdFx0XHRcdEBpZiAkc3YgPT0gdHJ1ZSB7XG5cdFx0XHRcdFx0QGluY2x1ZGUgZ3JpZGxlX3Zpc2libGUoJHN0YXRlKTtcblx0XHRcdFx0fSBAZWxzZSB7XG5cdFx0XHRcdFx0QGluY2x1ZGUgZ3JpZGxlX25vdF92aXNpYmxlKCRzdGF0ZSk7XG5cdFx0XHRcdH1cblx0XHRcdH0gQGVsc2UgaWYgJHNuID09IG5vdF92aXNpYmxlIHtcblx0XHRcdFx0QGlmICRzdiA9PSB0cnVlIHtcblx0XHRcdFx0XHRAaW5jbHVkZSBncmlkbGVfbm90X3Zpc2libGUoJHN0YXRlKTtcblx0XHRcdFx0fSBAZWxzZSB7XG5cdFx0XHRcdFx0QGluY2x1ZGUgZ3JpZGxlX3Zpc2libGUoJHN0YXRlKTtcblx0XHRcdFx0fVxuXHRcdFx0fSBAZWxzZSBpZiAkc24gPT0gc2hvd19pbmxpbmUge1xuXHRcdFx0XHRAaWYgJHN2ID09IHRydWUge1xuXHRcdFx0XHRcdEBpbmNsdWRlIGdyaWRsZV9zaG93X2lubGluZSgkc3RhdGUpO1xuXHRcdFx0XHR9IEBlbHNlIHtcblx0XHRcdFx0XHRAaW5jbHVkZSBncmlkbGVfaGlkZSgkc3RhdGUpO1xuXHRcdFx0XHR9XG5cdFx0XHR9IEBlbHNlIGlmICRzbiA9PSBmbG9hdCB7XG5cdFx0XHRcdEBpbmNsdWRlIGdyaWRsZV9mbG9hdCgkc3YsICRzdGF0ZSk7XG5cdFx0XHR9IEBlbHNlIGlmICRzbiA9PSBjbGVhciB7XG5cdFx0XHRcdEBpbmNsdWRlIGdyaWRsZV9jbGVhcigkc3YsICRzdGF0ZSk7XG5cdFx0XHR9IEBlbHNlIGlmICRzbiA9PSBub19ndXR0ZXJcblx0XHRcdFx0b3IgJHNuID09IG5vX21hcmdpbiB7XG5cdFx0XHRcdEBpbmNsdWRlIGdyaWRsZV9ub19ndXR0ZXIoJHN2LCAkc3RhdGUpO1xuXHRcdFx0fSBAZWxzZSBpZiAkc24gPT0gZ3V0dGVyXG5cdFx0XHRcdG9yICRzbiA9PSBtYXJnaW4ge1xuXHRcdFx0XHRAaW5jbHVkZSBncmlkbGVfZ3V0dGVyKCRzdiwgJHN0YXRlKTtcblx0XHRcdH0gQGVsc2Uge1xuXHRcdFx0XHQvLyB3ZSBkbyBub3RoaW5nXG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi8vIFJlc3BvbnNpdmUgaGVscGVycyBtaXhpbnMgOlxuQG1peGluIGdyaWRsZV9zdGF0ZShcblx0JHN0YXRlcyxcblx0JGhhcy1wYXJlbnQgOiB0cnVlXG4pIHtcblxuXHQvLyBjaGVjayBmaXJzdCBwYXJhbSBpZiBpcyBhIHN0YXRlIDpcblx0JGZpcnN0U3RhdGUgOiBudGgoJHN0YXRlcywxKTtcblx0QGlmIF9ncmlkbGVfaGFzX3N0YXRlKCRmaXJzdFN0YXRlKSB7XG5cblx0XHQvLyBsb29wIG9uIGVhY2ggc3RhdGVzIDpcblx0XHRAZWFjaCAkc3RhdGUgaW4gJHN0YXRlc1xuXHRcdHtcblx0XHRcdC8vIHZhcmlhYmxlcyA6XG5cdFx0XHQkaHRtbC1zdGF0ZXMtY2xhc3NlcyA6IF9ncmlkbGVfZ2V0X3Zhcl92YWx1ZShodG1sLXN0YXRlcy1jbGFzc2VzLCAkc3RhdGUpO1xuXHRcdFx0JGRlYnVnIDogX2dyaWRsZV9nZXRfdmFyX3ZhbHVlKGRlYnVnLCAkc3RhdGUpO1xuXHRcdFx0JHN0YXRlTmFtZSA6IF9ncmlkbGVfZ2V0X3Zhcl92YWx1ZShuYW1lLCAkc3RhdGUpO1xuXG5cdFx0XHQvLyBjaGVjayBpZiBpcyBhIHN0YXRlIDpcblx0XHRcdEBpZiAoJGh0bWwtc3RhdGVzLWNsYXNzZXMgb3IgJGRlYnVnKVxuXHRcdFx0XHRhbmQgJHN0YXRlTmFtZSB7XG5cdFx0XHRcdC8vIGh0bWwgY2xhc3MgOlxuXHRcdFx0XHRAaWYgJGhhcy1wYXJlbnQge1xuXHRcdFx0XHRcdGh0bWwje19ncmlkbGVfY2xhc3NuYW1lKFwiI3skc3RhdGVOYW1lfVwiKX0gJiB7IEBjb250ZW50OyB9XG5cdFx0XHRcdH0gQGVsc2Uge1xuXHRcdFx0XHRcdGh0bWwje19ncmlkbGVfY2xhc3NuYW1lKFwiI3skc3RhdGVOYW1lfVwiKX0geyBAY29udGVudDsgfVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC8vIGdldCB0aGUgbWVkaWEgcXVlcnkgOlxuXHRcdFx0JHEgOiBfZ3JpZGxlX2dldF9tZWRpYV9xdWVyeSgkc3RhdGUpO1xuXG5cdFx0XHQvLyBtYWtlIHRoZSBtZWRpYSBxdWVyeSBpZiBhIHF1ZXJ5IGV4aXN0IDpcblx0XHRcdEBpZiAkcSB7XG5cdFx0XHRcdEBtZWRpYSAjeyRxfSB7XG5cdFx0XHRcdFx0QGNvbnRlbnQ7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdEBlbHNlXG5cdFx0XHR7XG5cdFx0XHRcdEBjb250ZW50O1xuXHRcdFx0fVxuXHRcdH1cblxuXHR9IEBlbHNlIHtcblxuXHRcdC8vIHZhcmlhYmxlcyA6XG5cdFx0JGh0bWwtc3RhdGVzLWNsYXNzZXMgOiBfZ3JpZGxlX2dldF92YXJfdmFsdWUoaHRtbC1zdGF0ZXMtY2xhc3NlcywgJHN0YXRlcyk7XG5cdFx0JGRlYnVnIDogX2dyaWRsZV9nZXRfdmFyX3ZhbHVlKGRlYnVnLCAkc3RhdGVzKTtcblx0XHQkc3RhdGVOYW1lIDogX2dyaWRsZV9nZXRfdmFyX3ZhbHVlKG5hbWUsICRzdGF0ZXMpO1xuXG5cdFx0Ly8gY2hlY2sgaWYgaXMgYSBzdGF0ZSA6XG5cdFx0QGlmICgkaHRtbC1zdGF0ZXMtY2xhc3NlcyBvciAkZGVidWcpXG5cdFx0XHRhbmQgJHN0YXRlTmFtZSB7XG5cdFx0XHQvLyBodG1sIGNsYXNzIDpcblx0XHRcdEBpZiAkaGFzLXBhcmVudCB7XG5cdFx0XHRcdGh0bWwje19ncmlkbGVfY2xhc3NuYW1lKFwiI3skc3RhdGVOYW1lfVwiKX0gJiB7IEBjb250ZW50OyB9XG5cdFx0XHR9IEBlbHNlIHtcblx0XHRcdFx0aHRtbCN7X2dyaWRsZV9jbGFzc25hbWUoXCIjeyRzdGF0ZU5hbWV9XCIpfSB7IEBjb250ZW50OyB9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gZ2V0IHRoZSBtZWRpYSBxdWVyeSA6XG5cdFx0JHEgOiBfZ3JpZGxlX2dldF9tZWRpYV9xdWVyeSgkc3RhdGVzKTtcblxuXHRcdC8vIG1ha2UgdGhlIG1lZGlhIHF1ZXJ5IGlmIGEgcXVlcnkgZXhpc3QgOlxuXHRcdEBpZiAkcSB7XG5cdFx0XHRAbWVkaWEgI3skcX0ge1xuXHRcdFx0XHRAY29udGVudDtcblx0XHRcdH1cblx0XHR9XG5cdFx0QGVsc2Vcblx0XHR7XG5cdFx0XHRAY29udGVudDtcblx0XHR9XG5cblx0fVxufVxuXG5cblxuLy8gQ29udGFpbmVyIG1peGluIDpcbkBtaXhpbiBncmlkbGVfY29udGFpbmVyKFxuXHQkc3RhdGUgOiBkZWZhdWx0XG4pIHtcblx0QGluY2x1ZGUgX2dyaWRsZV9jb250YWluZXJfY29tbW9uKCRzdGF0ZSk7XG59XG5cblxuLy8gR3JpZCBtaXhpbiA6XG4vLyBTZXQgdGhlIHdpZHRoIG9mIHRoZSBzcGVjaWZpZWQgZ3JpZCBjb2x1bW4gOlxuQG1peGluIGdyaWRsZShcblx0JGNvbHVtbnMsXG5cdCRzdGF0ZS1vci1jb250ZXh0IDogZGVmYXVsdCxcblx0JHN0YXRlIDogZGVmYXVsdFxuKSB7XG5cdC8vIG1hbmFnZSBzdGF0ZSBhbmQgY29udGV4dCA6XG5cdCRjb250ZXh0IDogbnVsbDtcblx0QGlmIHR5cGUtb2YoJHN0YXRlLW9yLWNvbnRleHQpID09IG51bWJlciB7XG5cdFx0JGNvbnRleHQgOiAkc3RhdGUtb3ItY29udGV4dDtcblx0fSBAZWxzZSB7XG5cdFx0JHN0YXRlIDogJHN0YXRlLW9yLWNvbnRleHQ7XG5cdH1cblxuXHQvLyBjb21tb24gOlxuXHRAaW5jbHVkZSBfZ3JpZGxlX2dyaWRfY29tbW9uKCk7XG5cdC8vIGNoZWNrIGlmIG5lZWQgbWVkaWEgcXVlcnkgOlxuXHRAaWYgJHN0YXRlIHtcblx0XHRAaW5jbHVkZSBncmlkbGVfc3RhdGUoJHN0YXRlKSB7XG5cdFx0XHRAaW5jbHVkZSBfZ3JpZGxlKCRjb2x1bW5zLCAkc3RhdGUsICRjb250ZXh0KTtcblx0XHR9XG5cdH0gQGVsc2Uge1xuXHRcdEBpbmNsdWRlIF9ncmlkbGUoJGNvbHVtbnMsICRzdGF0ZSwgJGNvbnRleHQpO1xuXHR9XG59XG5AbWl4aW4gX2dyaWRsZShcblx0JGNvbHVtbnMsXG5cdCRzdGF0ZSA6IGRlZmF1bHQsXG5cdCRjb250ZXh0IDogbnVsbFxuKSB7XG5cdC8vIHZhcnMgOlxuXHQkbmFtZSA6IF9ncmlkbGVfZ2V0X3Zhcl92YWx1ZShuYW1lLCAkc3RhdGUpO1xuXHRAaWYgdHlwZS1vZigkY29udGV4dCkgIT0gbnVtYmVyIHtcblx0XHQkY29udGV4dCA6IF9ncmlkbGVfZ2V0X3Zhcl92YWx1ZShjb250ZXh0LCAkc3RhdGUpO1xuXHR9XG5cdCRuYW1lLW11bHRpcGxpY2F0b3IgOiBfZ3JpZGxlX2dldF92YXJfdmFsdWUobmFtZS1tdWx0aXBsaWNhdG9yLCAkc3RhdGUpO1xuXHQkZ3V0dGVyLXdpZHRoIDogX2dyaWRsZV9nZXRfdmFyX3ZhbHVlKGd1dHRlci13aWR0aCwgJHN0YXRlKTtcblx0JGllNy1zdXBwb3J0IDogX2dyaWRsZV9nZXRfdmFyX3ZhbHVlKGllNy1zdXBwb3J0LCAkc3RhdGUpO1xuXHQkZGVidWcgOiBfZ3JpZGxlX2dldF92YXJfdmFsdWUoZGVidWcsICRzdGF0ZSk7XG5cdCRkZWJ1Zy1zaG93LWNsYXNzLW5hbWVzIDogX2dyaWRsZV9nZXRfdmFyX3ZhbHVlKGRlYnVnLXNob3ctY2xhc3MtbmFtZXMsICRzdGF0ZSk7XG5cblx0Ly8gbWFuYWdlIGNvbHVtbnNcblx0QGlmIHR5cGUtb2YoJGNvbHVtbnMpICE9IG51bWJlciBhbmQgbWFwLWhhcy1rZXkoJF9ncmlkbGVfY29sdW1ucywgJGNvbHVtbnMpIHtcblx0XHQvLyB0aGUgY29sdW1ucyBpcyBhIHNhdmVkIG9uZSwgZ2V0IHRoZSBjb250ZXh0IGFuZCBjb2x1bW4gdmFsdWVcblx0XHQkY29sdW1uIDogbWFwLWdldCgkX2dyaWRsZV9jb2x1bW5zLCAkY29sdW1ucyk7XG5cdFx0JGNvbnRleHQgOiBtYXAtZ2V0KCRjb2x1bW4sIGNvbnRleHQpO1xuXHRcdCRjb2x1bW5zIDogbWFwLWdldCgkY29sdW1uLCBjb2x1bW5zKTtcblx0fSBAZWxzZSBpZiB0eXBlLW9mKCRjb2x1bW5zKSA9PSBudW1iZXIge1xuXHRcdCRjb2x1bW5zIDogJGNvbHVtbnMgLyAkbmFtZS1tdWx0aXBsaWNhdG9yO1xuXHR9IEBlbHNlIHtcblx0XHRAZXJyb3IgXCJ0aGUgY29sdW1uICN7JGNvbHVtbnN9IGRvZXMgbm90IGV4aXN0Li4uXCI7XG5cdH1cblxuXHQvLyB2YXJzIDpcblx0JHdpZHRoIDogcGVyY2VudGFnZSgxIC8gJGNvbnRleHQgKiAkY29sdW1ucyk7XG5cblx0Ly8gc2V0IHZhbHVlIDpcblx0d2lkdGg6JHdpZHRoO1xuXHRcblx0Ly8gaWU3IHN1cHBvcnQgOlxuXHRAaWYgJGllNy1zdXBwb3J0ID09IHRydWUge1xuXHRcdCp3aWR0aDogZXhwcmVzc2lvbigodGhpcy5wYXJlbnROb2RlLmNsaWVudFdpZHRoLyN7JGNvbnRleHR9KiN7KCRjb2x1bW5zIC8gJG5hbWUtbXVsdGlwbGljYXRvcil9IC0gcGFyc2VJbnQodGhpcy5jdXJyZW50U3R5bGVbJ3BhZGRpbmdMZWZ0J10pIC0gcGFyc2VJbnQodGhpcy5jdXJyZW50U3R5bGVbJ3BhZGRpbmdSaWdodCddKSkgKyAncHgnKTtcblx0fVxuXHRcblx0Ly8gZGVidWcgOlxuXHRAaWYgJGRlYnVnID09IHRydWUgYW5kICRkZWJ1Zy1zaG93LWNsYXNzLW5hbWVzID09IHRydWUge1xuXHRcdCN7JGdyaWRsZS1kZWJ1Zy1zZWxlY3Rvcn0ge1xuXHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0XHRAaWYgJG5hbWUgPT0gZGVmYXVsdCB7XG5cdFx0XHRcdFx0Y29udGVudDpcImdyaWQtI3skbmFtZX0tI3skY29sdW1uc31cIjtcblx0XHRcdFx0fSBAZWxzZSB7XG5cdFx0XHRcdFx0Y29udGVudDpcImdyaWQtI3skbmFtZX0tI3skY29sdW1uc31cIiAhaW1wb3J0YW50O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHQmLnBhcmVudDpiZWZvcmUge1xuXHRcdFx0XHRAaWYgJG5hbWUgPT0gZGVmYXVsdCB7XG5cdFx0XHRcdFx0Y29udGVudDpcImdyaWQtcGFyZW50LSN7JG5hbWV9LSN7JGNvbHVtbnN9XCI7XG5cdFx0XHRcdH0gQGVsc2Uge1xuXHRcdFx0XHRcdGNvbnRlbnQ6XCJncmlkLXBhcmVudC0jeyRuYW1lfS0jeyRjb2x1bW5zfVwiICFpbXBvcnRhbnQ7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuXG4vLyBwdXNoIDpcbi8vIFB1c2ggdGhlIGVsZW1lbnQgb2YgdGhlIGNvdW50IG9mIGNvbHVtbiB3YW50ZWRcbkBtaXhpbiBncmlkbGVfcHVzaChcblx0JGNvbHVtbnMsXG5cdCRzdGF0ZS1vci1jb250ZXh0IDogZGVmYXVsdCxcblx0JHN0YXRlIDogZGVmYXVsdFxuKSB7XG5cdC8vIG1hbmFnZSBzdGF0ZSBhbmQgY29udGV4dFxuXHQkY29udGV4dCA6IG51bGw7XG5cdEBpZiB0eXBlLW9mKCRzdGF0ZS1vci1jb250ZXh0KSA9PSBudW1iZXIge1xuXHRcdCRjb250ZXh0IDogJHN0YXRlLW9yLWNvbnRleHQ7XG5cdH0gQGVsc2Uge1xuXHRcdCRzdGF0ZSA6ICRzdGF0ZS1vci1jb250ZXh0O1xuXHR9XG5cblx0Ly8gY29tbW9uIDpcblx0QGluY2x1ZGUgX2dyaWRsZV9wdXNoX2NvbW1vbigkc3RhdGUpO1xuXG5cdC8vIGNoZWNrIGlmIG5lZWQgbWVkaWEgcXVlcnkgOlxuXHRAaWYgJHN0YXRlIHtcblx0XHRAaW5jbHVkZSBncmlkbGVfc3RhdGUoJHN0YXRlKSB7XG5cdFx0XHRAaW5jbHVkZSBfZ3JpZGxlX3B1c2goJGNvbHVtbnMsICRzdGF0ZSwgJGNvbnRleHQpO1xuXHRcdH1cblx0fSBAZWxzZSB7XG5cdFx0QGluY2x1ZGUgX2dyaWRsZV9wdXNoKCRjb2x1bW5zLCAkc3RhdGUsICRjb250ZXh0KTtcblx0fVxufVxuQG1peGluIF9ncmlkbGVfcHVzaChcblx0JGNvbHVtbnMsXG5cdCRzdGF0ZSA6IGRlZmF1bHQsXG5cdCRjb250ZXh0IDogbnVsbFxuKSB7XG5cdC8vIHZhcmlhYmxlcyA6XG5cdCRuYW1lIDogX2dyaWRsZV9nZXRfdmFyX3ZhbHVlKG5hbWUsICRzdGF0ZSk7XG5cdEBpZiB0eXBlLW9mKCRjb250ZXh0KSAhPSBudW1iZXIge1xuXHRcdCRjb250ZXh0IDogX2dyaWRsZV9nZXRfdmFyX3ZhbHVlKGNvbnRleHQsICRzdGF0ZSk7XG5cdH1cblx0JGRpcmVjdGlvbiA6IF9ncmlkbGVfZ2V0X3Zhcl92YWx1ZShkaXJlY3Rpb24sICRzdGF0ZSk7XG5cdCRuYW1lLW11bHRpcGxpY2F0b3IgOiBfZ3JpZGxlX2dldF92YXJfdmFsdWUobmFtZS1tdWx0aXBsaWNhdG9yLCAkc3RhdGUpO1xuXHQkZGVidWcgOiBfZ3JpZGxlX2dldF92YXJfdmFsdWUoZGVidWcsICRzdGF0ZSk7XG5cdCRkZWJ1Zy1zaG93LWNsYXNzLW5hbWVzIDogX2dyaWRsZV9nZXRfdmFyX3ZhbHVlKGRlYnVnLXNob3ctY2xhc3MtbmFtZXMsICRzdGF0ZSk7XG5cblx0Ly8gdmFycyA6XG5cdCR3aWR0aCA6IHBlcmNlbnRhZ2UoMSAvICRjb250ZXh0KSAqICgkY29sdW1ucyAvICRuYW1lLW11bHRpcGxpY2F0b3IpO1xuXHRAaWYgJGRpcmVjdGlvbiA9PSBydGwgeyAkd2lkdGggOiAkd2lkdGgqLTE7IH1cblx0bGVmdDokd2lkdGg7XG5cblx0Ly8gZGVidWcgY3NzIDpcblx0QGlmICRkZWJ1ZyA9PSB0cnVlIGFuZCAkZGVidWctc2hvdy1jbGFzcy1uYW1lcyA9PSB0cnVlIHtcblx0XHQjeyRncmlkbGUtZGVidWctc2VsZWN0b3J9IHtcblx0XHRcdCY6YWZ0ZXIge1xuXHRcdFx0XHRAaWYgJG5hbWUgPT0gZGVmYXVsdCB7XG5cdFx0XHRcdFx0Y29udGVudDpcInB1c2gtI3skbmFtZX0tI3skY29sdW1uc31cIjtcblx0XHRcdFx0fSBAZWxzZSB7XG5cdFx0XHRcdFx0Y29udGVudDpcInB1c2gtI3skbmFtZX0tI3skY29sdW1uc31cIiAhaW1wb3J0YW50O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cbn1cblxuXG4vLyBwdWxsIDpcbi8vIFB1bGwgdGhlIGVsZW1lbnQgb2YgdGhlIGNvdW50IG9mIGNvbHVtbiB3YW50ZWRcbkBtaXhpbiBncmlkbGVfcHVsbChcblx0JGNvbHVtbnMsXG5cdCRzdGF0ZSA6IGRlZmF1bHRcbikge1xuXHQvLyBjb21tb24gOlxuXHRAaW5jbHVkZSBfZ3JpZGxlX3B1bGxfY29tbW9uKCRzdGF0ZSk7XG5cblx0Ly8gY2hlY2sgaWYgbmVlZCBtZWRpYSBxdWVyeSA6XG5cdEBpZiAkc3RhdGUge1xuXHRcdEBpbmNsdWRlIGdyaWRsZV9zdGF0ZSgkc3RhdGUpIHtcblx0XHRcdEBpbmNsdWRlIF9ncmlkbGVfcHVsbCgkY29sdW1ucywkc3RhdGUpO1xuXHRcdH1cblx0fSBAZWxzZSB7XG5cdFx0QGluY2x1ZGUgX2dyaWRsZV9wdWxsKCRjb2x1bW5zLCRzdGF0ZSk7XG5cdH1cbn1cbkBtaXhpbiBfZ3JpZGxlX3B1bGwoXG5cdCRjb2x1bW5zLFxuXHQkc3RhdGUgOiBkZWZhdWx0XG4pIHtcblx0Ly8gdmFycyA6XG5cdCRuYW1lIDogX2dyaWRsZV9nZXRfdmFyX3ZhbHVlKG5hbWUsICRzdGF0ZSk7XG5cdCRjb250ZXh0IDogX2dyaWRsZV9nZXRfdmFyX3ZhbHVlKGNvbnRleHQsICRzdGF0ZSk7XG5cdCRkaXJlY3Rpb24gOiBfZ3JpZGxlX2dldF92YXJfdmFsdWUoZGlyZWN0aW9uLCAkc3RhdGUpO1xuXHQkbmFtZS1tdWx0aXBsaWNhdG9yIDogX2dyaWRsZV9nZXRfdmFyX3ZhbHVlKG5hbWUtbXVsdGlwbGljYXRvciwgJHN0YXRlKTtcblx0JGRlYnVnIDogX2dyaWRsZV9nZXRfdmFyX3ZhbHVlKGRlYnVnLCAkc3RhdGUpO1xuXHQkZGVidWctc2hvdy1jbGFzcy1uYW1lcyA6IF9ncmlkbGVfZ2V0X3Zhcl92YWx1ZShkZWJ1Zy1zaG93LWNsYXNzLW5hbWVzLCAkc3RhdGUpO1xuXG5cdC8vIHZhcnMgOlxuXHQkd2lkdGggOiBwZXJjZW50YWdlKDEgLyAkY29udGV4dCkgKiAoJGNvbHVtbnMgLyAkbmFtZS1tdWx0aXBsaWNhdG9yKTtcblx0QGlmICRkaXJlY3Rpb24gPT0gcnRsIHsgJHdpZHRoIDogJHdpZHRoKi0xOyB9XG5cdHJpZ2h0OiR3aWR0aDtcblxuXHQvLyBkZWJ1ZyBjc3MgOlxuXHRAaWYgJGRlYnVnID09IHRydWUgYW5kICRkZWJ1Zy1zaG93LWNsYXNzLW5hbWVzID09IHRydWUge1xuXHRcdCN7JGdyaWRsZS1kZWJ1Zy1zZWxlY3Rvcn0ge1xuXHRcdFx0JjphZnRlciB7XG5cdFx0XHRcdEBpZiAkbmFtZSA9PSBkZWZhdWx0IHtcblx0XHRcdFx0XHRjb250ZW50OlwicHVsbC0jeyRuYW1lfS0jeyRjb2x1bW5zfVwiO1xuXHRcdFx0XHR9IEBlbHNlIHtcblx0XHRcdFx0XHRjb250ZW50OlwicHVsbC0jeyRuYW1lfS0jeyRjb2x1bW5zfVwiICFpbXBvcnRhbnQ7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuXG4vLyBwdXNoIDpcbi8vIFB1c2ggdGhlIGVsZW1lbnQgb2YgdGhlIGNvdW50IG9mIGNvbHVtbiB3YW50ZWRcbkBtaXhpbiBncmlkbGVfcHJlZml4KFxuXHQkY29sdW1ucyxcblx0JHN0YXRlIDogZGVmYXVsdFxuKSB7XG5cdC8vIGNvbW1vbiA6XG5cdEBpbmNsdWRlIF9ncmlkbGVfcHJlZml4X2NvbW1vbigkc3RhdGUpO1xuXHRcblx0Ly8gY2hlY2sgaWYgbmVlZCBtZWRpYSBxdWVyeSA6XG5cdEBpZiAkc3RhdGUge1xuXHRcdEBpbmNsdWRlIGdyaWRsZV9zdGF0ZSgkc3RhdGUpIHtcblx0XHRcdEBpbmNsdWRlIF9ncmlkbGVfcHJlZml4KCRjb2x1bW5zLCRzdGF0ZSk7XG5cdFx0fVxuXHR9IEBlbHNlIHtcblx0XHRAaW5jbHVkZSBfZ3JpZGxlX3ByZWZpeCgkY29sdW1ucywkc3RhdGUpO1xuXHR9XG59XG5AbWl4aW4gX2dyaWRsZV9wcmVmaXgoXG5cdCRjb2x1bW5zLFxuXHQkc3RhdGUgOiBkZWZhdWx0XG4pIHtcblx0Ly8gdmFycyA6XG5cdCRuYW1lIDogX2dyaWRsZV9nZXRfdmFyX3ZhbHVlKG5hbWUsICRzdGF0ZSk7XG5cdCRjb250ZXh0IDogX2dyaWRsZV9nZXRfdmFyX3ZhbHVlKGNvbnRleHQsICRzdGF0ZSk7XG5cdCRkaXJlY3Rpb24gOiBfZ3JpZGxlX2dldF92YXJfdmFsdWUoZGlyZWN0aW9uLCAkc3RhdGUpO1xuXHQkZ3V0dGVyLXdpZHRoIDogX2dyaWRsZV9nZXRfdmFyX3ZhbHVlKGd1dHRlci13aWR0aCwgJHN0YXRlKTtcblx0JG5hbWUtbXVsdGlwbGljYXRvciA6IF9ncmlkbGVfZ2V0X3Zhcl92YWx1ZShuYW1lLW11bHRpcGxpY2F0b3IsICRzdGF0ZSk7XG5cdCRkZWJ1ZyA6IF9ncmlkbGVfZ2V0X3Zhcl92YWx1ZShkZWJ1ZywgJHN0YXRlKTtcblx0JGRlYnVnLXNob3ctY2xhc3MtbmFtZXMgOiBfZ3JpZGxlX2dldF92YXJfdmFsdWUoZGVidWctc2hvdy1jbGFzcy1uYW1lcywgJHN0YXRlKTtcblxuXHQvLyB2YXJzIDpcblx0JHdpZHRoIDogcGVyY2VudGFnZSgxIC8gJGNvbnRleHQpICogKCRjb2x1bW5zIC8gJG5hbWUtbXVsdGlwbGljYXRvcik7XG5cblx0Ly8gc2V0IHZhbHVlIDpcblx0QGlmICRkaXJlY3Rpb24gPT0gcnRsIHsgbWFyZ2luLXJpZ2h0OiR3aWR0aDsgfVxuXHRAZWxzZSB7IG1hcmdpbi1sZWZ0OiR3aWR0aDsgfVxuXG5cdC8vIGRlYnVnIGNzcyA6XG5cdEBpZiAkZGVidWcgPT0gdHJ1ZSBhbmQgJGRlYnVnLXNob3ctY2xhc3MtbmFtZXMgPT0gdHJ1ZSB7XG5cdFx0I3skZ3JpZGxlLWRlYnVnLXNlbGVjdG9yfSB7XG5cdFx0XHQmOmFmdGVyIHtcblx0XHRcdFx0QGlmICRuYW1lID09IGRlZmF1bHQge1xuXHRcdFx0XHRcdGNvbnRlbnQ6XCJwcmVmaXgtI3skbmFtZX0tI3skY29sdW1uc31cIjtcblx0XHRcdFx0fSBAZWxzZSB7XG5cdFx0XHRcdFx0Y29udGVudDpcInByZWZpeC0jeyRuYW1lfS0jeyRjb2x1bW5zfVwiICFpbXBvcnRhbnQ7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuXG4vLyBwdWxsIDpcbi8vIFB1bGwgdGhlIGVsZW1lbnQgb2YgdGhlIGNvdW50IG9mIGNvbHVtbiB3YW50ZWRcbkBtaXhpbiBncmlkbGVfc3VmZml4KFxuXHQkY29sdW1ucyxcblx0JHN0YXRlIDogZGVmYXVsdFxuKSB7XG5cdC8vIGNvbW1vbiA6XG5cdEBpbmNsdWRlIF9ncmlkbGVfc3VmZml4X2NvbW1vbigkc3RhdGUpO1xuXG5cdC8vIGNoZWNrIGlmIG5lZWQgbWVkaWEgcXVlcnkgOlxuXHRAaWYgJHN0YXRlIHtcblx0XHRAaW5jbHVkZSBncmlkbGVfc3RhdGUoJHN0YXRlKSB7XG5cdFx0XHRAaW5jbHVkZSBfZ3JpZGxlX3N1ZmZpeCgkY29sdW1ucywkc3RhdGUpO1xuXHRcdH1cblx0fSBAZWxzZSB7XG5cdFx0QGluY2x1ZGUgX2dyaWRsZV9zdWZmaXgoJGNvbHVtbnMsJHN0YXRlKTtcblx0fVxufVxuQG1peGluIF9ncmlkbGVfc3VmZml4KFxuXHQkY29sdW1ucyxcblx0JHN0YXRlIDogZGVmYXVsdFxuKSB7XG5cdC8vIHZhcnMgOlxuXHQkbmFtZSA6IF9ncmlkbGVfZ2V0X3Zhcl92YWx1ZShuYW1lLCAkc3RhdGUpO1xuXHQkY29udGV4dCA6IF9ncmlkbGVfZ2V0X3Zhcl92YWx1ZShjb250ZXh0LCAkc3RhdGUpO1xuXHQkZGlyZWN0aW9uIDogX2dyaWRsZV9nZXRfdmFyX3ZhbHVlKGRpcmVjdGlvbiwgJHN0YXRlKTtcblx0JGd1dHRlci13aWR0aCA6IF9ncmlkbGVfZ2V0X3Zhcl92YWx1ZShndXR0ZXItd2lkdGgsICRzdGF0ZSk7XG5cdCRuYW1lLW11bHRpcGxpY2F0b3IgOiBfZ3JpZGxlX2dldF92YXJfdmFsdWUobmFtZS1tdWx0aXBsaWNhdG9yLCAkc3RhdGUpO1xuXHQkZGVidWcgOiBfZ3JpZGxlX2dldF92YXJfdmFsdWUoZGVidWcsICRzdGF0ZSk7XG5cdCRkZWJ1Zy1zaG93LWNsYXNzLW5hbWVzIDogX2dyaWRsZV9nZXRfdmFyX3ZhbHVlKGRlYnVnLXNob3ctY2xhc3MtbmFtZXMsICRzdGF0ZSk7XG5cblx0Ly8gdmFycyA6XG5cdCR3aWR0aCA6IHBlcmNlbnRhZ2UoMSAvICRjb250ZXh0KSAqICgkY29sdW1ucyAvICRuYW1lLW11bHRpcGxpY2F0b3IpO1xuXHRcblx0Ly8gc2V0IHZhbHVlIDpcblx0QGlmICRkaXJlY3Rpb24gPT0gcnRsIHsgbWFyZ2luLWxlZnQ6JHdpZHRoOyB9XG5cdEBlbHNlIHsgbWFyZ2luLXJpZ2h0OiR3aWR0aDsgfVxuXG5cdC8vIGRlYnVnIGNzcyA6XG5cdEBpZiAkZGVidWcgPT0gdHJ1ZSBhbmQgJGRlYnVnLXNob3ctY2xhc3MtbmFtZXMgPT0gdHJ1ZSB7XG5cdFx0I3skZ3JpZGxlLWRlYnVnLXNlbGVjdG9yfSB7XG5cdFx0XHQmOmFmdGVyIHtcblx0XHRcdFx0QGlmICRuYW1lID09IGRlZmF1bHQge1xuXHRcdFx0XHRcdGNvbnRlbnQ6XCJzdWZmaXgtI3skbmFtZX0tI3skY29sdW1uc31cIjtcblx0XHRcdFx0fSBAZWxzZSB7XG5cdFx0XHRcdFx0Y29udGVudDpcInN1ZmZpeC0jeyRuYW1lfS0jeyRjb2x1bW5zfVwiICFpbXBvcnRhbnQ7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuXG4vLyBncmlkIGJhY2tncm91bmQgOlxuLy8gRGlzcGxheSB0aGUgZ3JpZCBiYWNrZ3JvdW5kIGRlYnVnXG5AbWl4aW4gZ3JpZGxlX2dyaWRfYmFja2dyb3VuZChcblx0JHN0YXRlIDogZGVmYXVsdFxuKSB7XG5cdC8vIGNoZWNrIGlmIG5lZWQgbWVkaWEgcXVlcnkgOlxuXHRAaWYgJHN0YXRlIHtcblx0XHRAaW5jbHVkZSBncmlkbGVfc3RhdGUoJHN0YXRlKSB7XG5cdFx0XHRAaW5jbHVkZSBfZ3JpZGxlX2dyaWRfYmFja2dyb3VuZCgkc3RhdGUpO1xuXHRcdH1cblx0fSBAZWxzZSB7XG5cdFx0QGluY2x1ZGUgX2dyaWRsZV9ncmlkX2JhY2tncm91bmQoJHN0YXRlKTtcblx0fVxufVxuQG1peGluIF9ncmlkbGVfZ3JpZF9iYWNrZ3JvdW5kKFxuXHQkc3RhdGUgOiBkZWZhdWx0XG4pIHtcblx0XG5cdC8vIHZhcmlhYmxlcyA6XG5cdCRjb250ZXh0IDogX2dyaWRsZV9nZXRfdmFyX3ZhbHVlKGNvbnRleHQsICRzdGF0ZSk7XG5cblx0cG9zaXRpb246cmVsYXRpdmU7XG5cdHotaW5kZXg6OTk5OTtcblx0JjpiZWZvcmUge1xuXHRcdGNvbnRlbnQ6Jyc7XG5cdFx0cG9zaXRpb246YWJzb2x1dGU7XG5cdFx0dG9wOjA7IGxlZnQ6MDtcblx0XHR3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJSAhaW1wb3J0YW50O1xuXHRcdC8vIHZhcnMgOlxuXHRcdCR3aWR0aCA6IHBlcmNlbnRhZ2UoMSAvICRjb250ZXh0KTtcblx0XHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMCwwLDAsLjAxKSA1MCUgLCByZ2JhKDAsMCwwLC4wNCkgNTAlKTsgLyogU3RhbmRhcmQgc3ludGF4ICovXG5cdFx0YmFja2dyb3VuZC1zaXplOigkd2lkdGgqMikgMTAwJTtcblx0XHQvLyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiRncmlkbGUtZ3V0dGVyLXdpZHRoLzIgMDtcblx0fVxufVxuXG5cbi8qKlxuICogUGFyZW50IGNsZWFyIGVhY2hcbiAqL1xuLy8gR3JpZCBtaXhpbiA6XG4vLyBTZXQgdGhlIHdpZHRoIG9mIHRoZSBzcGVjaWZpZWQgZ3JpZCBjb2x1bW4gOlxuQG1peGluIGdyaWRsZV9jbGVhcl9lYWNoKFxuXHQkY2xlYXJFYWNoLFxuXHQkY2xlYXJXaGF0IDogYm90aCxcblx0JHN0YXRlIDogZGVmYXVsdFxuKSB7XG5cdC8vIGNoZWNrIGlmIG5lZWQgbWVkaWEgcXVlcnkgOlxuXHRAaWYgJHN0YXRlIHtcblx0XHRAaW5jbHVkZSBncmlkbGVfc3RhdGUoJHN0YXRlKSB7XG5cdFx0XHRAaW5jbHVkZSBfZ3JpZGxlX2NsZWFyX2VhY2goJGNsZWFyRWFjaCwgJGNsZWFyV2hhdCk7XG5cdFx0fVxuXHR9IEBlbHNlIHtcblx0XHRAaW5jbHVkZSBfZ3JpZGxlX2NsZWFyX2VhY2goJGNsZWFyRWFjaCwgJGNsZWFyV2hhdCk7XG5cdH1cbn1cbkBtaXhpbiBfZ3JpZGxlX2NsZWFyX2VhY2goXG5cdCRjbGVhckVhY2gsXG5cdCRjbGVhcldoYXRcbikge1xuXHQ+ICo6bnRoLWNoaWxkKCN7JGNsZWFyRWFjaH1uKzEpIHtcblx0XHRjbGVhciA6ICRjbGVhcldoYXQ7XG5cdH1cbn1cblxuXG4vLyBHcmlkIGNlbnRlcmVkIDpcbkBtaXhpbiBncmlkbGVfY2VudGVyZWQoXG5cdCRzdGF0ZSA6IGRlZmF1bHRcbikge1xuXHQvLyBjaGVjayBpZiBuZWVkIG1lZGlhIHF1ZXJ5IDpcblx0QGlmICRzdGF0ZSB7XG5cdFx0QGluY2x1ZGUgZ3JpZGxlX3N0YXRlKCRzdGF0ZSkge1xuXHRcdFx0QGluY2x1ZGUgX2dyaWRsZV9jZW50ZXJlZCgpO1xuXHRcdH1cblx0fSBAZWxzZSB7XG5cdFx0QGluY2x1ZGUgX2dyaWRsZV9jZW50ZXJlZCgpO1xuXHR9XG59XG5AbWl4aW4gX2dyaWRsZV9jZW50ZXJlZCgpIHtcblx0ZGlzcGxheTpibG9jayAhaW1wb3J0YW50O1xuXHRmbG9hdDpub25lICFpbXBvcnRhbnQ7XG5cdG1hcmdpbi1sZWZ0OmF1dG8gIWltcG9ydGFudDtcblx0bWFyZ2luLXJpZ2h0OmF1dG8gIWltcG9ydGFudDtcblx0Y2xlYXI6Ym90aCAhaW1wb3J0YW50O1xufVxuXG5cbi8vIEdyaWQgcGFyZW50IDpcbkBtaXhpbiBncmlkbGVfcGFyZW50KFxuXHQkc3RhdGUgOiBkZWZhdWx0XG4pIHtcblx0Ly8gY29tbW9uIDpcblx0QGluY2x1ZGUgX2dyaWRsZV9wYXJlbnRfY29tbW9uKCk7XG5cdC8vIGNoZWNrIGlmIG5lZWQgbWVkaWEgcXVlcnkgOlxuXHRAaWYgJHN0YXRlIHtcblx0XHRAaW5jbHVkZSBncmlkbGVfc3RhdGUoJHN0YXRlKSB7XG5cdFx0XHRAaW5jbHVkZSBfZ3JpZGxlX3BhcmVudCgpO1xuXHRcdH1cblx0fSBAZWxzZSB7XG5cdFx0QGluY2x1ZGUgX2dyaWRsZV9wYXJlbnQoKTtcblx0fVxufVxuQG1peGluIF9ncmlkbGVfcGFyZW50KCkge1xuXHRAaW5jbHVkZSBncmlkbGVfbm9fZ3V0dGVyKCk7XG59XG5cblxuLyoqXG4gKiBWZXJ0aWNhbCBhbGlnbiA6XG4gKi9cbkBtaXhpbiBncmlkbGVfdmVydGljYWxfYWxpZ24oXG5cdCRhbGlnbiA6IG1pZGRsZSxcblx0JHN0YXRlIDogZGVmYXVsdFxuKSB7XG5cdC8vIGNoZWNrIGlmIG5lZWQgbWVkaWEgcXVlcnkgOlxuXHRAaWYgJHN0YXRlIHtcblx0XHRAaW5jbHVkZSBncmlkbGVfc3RhdGUoJHN0YXRlKSB7XG5cdFx0XHRAaW5jbHVkZSBfZ3JpZGxlX3ZlcnRpY2FsX2FsaWduKCRhbGlnbik7XG5cdFx0fVxuXHR9IEBlbHNlIHtcblx0XHRAaW5jbHVkZSBfZ3JpZGxlX3ZlcnRpY2FsX2FsaWduKCRhbGlnbik7XG5cdH1cbn1cbkBtaXhpbiBfZ3JpZGxlX3ZlcnRpY2FsX2FsaWduKFxuXHQkYWxpZ24gOiBtaWRkbGVcbikge1xuXHRmb250LXNpemU6MDtcblx0Y2xlYXI6Ym90aDtcblxuXHQ+ICoge1xuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHRcdGZsb2F0Om5vbmUgIWltcG9ydGFudDtcblx0XHR2ZXJ0aWNhbC1hbGlnbjokYWxpZ247XG5cdFx0Zm9udC1zaXplOjFyZW07XG5cdH1cbn1cblxuXG4vLyBIaWRlIG9uIDpcbi8vIEBwYXJhbSBcdFN0cmluZyBcdCRtZWRpYSAgT24gd2hhdCBzdGF0ZVxuQG1peGluIGdyaWRsZV9oaWRlKFxuXHQkc3RhdGUgOiBkZWZhdWx0XG4pIHtcblx0Ly8gY2hlY2sgaWYgbmVlZCBtZWRpYSBxdWVyeSA6XG5cdEBpZiAkc3RhdGUge1xuXHRcdEBpbmNsdWRlIGdyaWRsZV9zdGF0ZSgkc3RhdGUpIHtcblx0XHRcdEBpbmNsdWRlIF9ncmlkbGVfaGlkZSgpO1xuXHRcdH1cblx0fSBAZWxzZSB7XG5cdFx0QGluY2x1ZGUgX2dyaWRsZV9oaWRlKCk7XG5cdH1cbn1cbkBtaXhpbiBfZ3JpZGxlX2hpZGUoKSB7XG5cdGRpc3BsYXk6bm9uZTtcbn1cblxuXG4vLyBOb3QgdmlzaWJsZSBvbiA6XG4vLyBAcGFyYW0gXHRTdHJpbmcgXHQkbWVkaWEgXHRXaGF0IHRvIGhpZGUgKG9uZSBvZiB0aGUgMyBzdGF0ZSBjbGFzc2VzIG5hbWUpXG5AbWl4aW4gZ3JpZGxlX25vdF92aXNpYmxlKFxuXHQkc3RhdGUgOiBkZWZhdWx0XG4pIHtcblx0Ly8gY2hlY2sgaWYgbmVlZCBtZWRpYSBxdWVyeSA6XG5cdEBpZiAkc3RhdGUge1xuXHRcdEBpbmNsdWRlIGdyaWRsZV9zdGF0ZSgkc3RhdGUpIHtcblx0XHRcdEBpbmNsdWRlIF9ncmlkbGVfbm90X3Zpc2libGUoKTtcblx0XHR9XG5cdH0gQGVsc2Uge1xuXHRcdEBpbmNsdWRlIF9ncmlkbGVfbm90X3Zpc2libGUoKTtcblx0fVxufVxuQG1peGluIF9ncmlkbGVfbm90X3Zpc2libGUoKSB7XG5cdHZpc2liaWxpdHk6aGlkZGVuO1xufVxuXG5cbi8vIFNob3cgb25cbi8vIEBwYXJhbSBcdFN0cmluZyBcdCRtZWRpYSBcdFdoYXQgdG8gaGlkZSAob25lIG9mIHRoZSAzIHN0YXRlIGNsYXNzZXMgbmFtZSlcbkBtaXhpbiBncmlkbGVfc2hvdyhcblx0JHN0YXRlIDogZGVmYXVsdFxuKSB7XG5cdC8vIGNoZWNrIGlmIG5lZWQgbWVkaWEgcXVlcnkgOlxuXHRAaWYgJHN0YXRlIHtcblx0XHRAaW5jbHVkZSBncmlkbGVfc3RhdGUoJHN0YXRlKSB7XG5cdFx0XHRAaW5jbHVkZSBfZ3JpZGxlX3Nob3coKTtcblx0XHR9XG5cdH0gQGVsc2Uge1xuXHRcdEBpbmNsdWRlIF9ncmlkbGVfc2hvdygpO1xuXHR9XG59XG5AbWl4aW4gX2dyaWRsZV9zaG93KCkge1xuXHRkaXNwbGF5OmJsb2NrO1xufVxuXG5cbi8qKlxuICogU2hvdyBpbmxpbmVcbiAqXG4gKiBAcGFyYW0gXHRTdHJpbmcgXHRcdCRzdGF0ZSBcdFx0VGhlIHN0YXRlIG5hbWVcbiAqL1xuQG1peGluIGdyaWRsZV9zaG93X2lubGluZShcblx0JHN0YXRlIDogZGVmYXVsdFxuKSB7XG5cdC8vIGNoZWNrIGlmIG5lZWQgbWVkaWEgcXVlcnkgOlxuXHRAaWYgJHN0YXRlIHtcblx0XHRAaW5jbHVkZSBncmlkbGVfc3RhdGUoJHN0YXRlKSB7XG5cdFx0XHRAaW5jbHVkZSBfZ3JpZGxlX3Nob3dfaW5saW5lKCk7XG5cdFx0fVxuXHR9IEBlbHNlIHtcblx0XHRAaW5jbHVkZSBfZ3JpZGxlX3Nob3dfaW5saW5lKCk7XG5cdH1cbn1cbkBtaXhpbiBfZ3JpZGxlX3Nob3dfaW5saW5lKCkge1xuXHRkaXNwbGF5OmlubGluZS1ibG9jaztcbn1cblxuXG4vLyBWaXNpYmxlIG9uIDpcbi8vIEBwYXJhbSBcdFN0cmluZyBcdCRtZWRpYSBcdE9uIHdoYXQgc3RhdGVcbkBtaXhpbiBncmlkbGVfdmlzaWJsZShcblx0JHN0YXRlIDogZGVmYXVsdFxuKSB7XG5cdC8vIGNoZWNrIGlmIG5lZWQgbWVkaWEgcXVlcnkgOlxuXHRAaWYgJHN0YXRlIHtcblx0XHRAaW5jbHVkZSBncmlkbGVfc3RhdGUoJHN0YXRlKSB7XG5cdFx0XHRAaW5jbHVkZSBfZ3JpZGxlX3Zpc2libGUoKTtcblx0XHR9XG5cdH0gQGVsc2Uge1xuXHRcdEBpbmNsdWRlIF9ncmlkbGVfdmlzaWJsZSgpO1xuXHR9XG59XG5AbWl4aW4gX2dyaWRsZV92aXNpYmxlKCkge1xuXHR2aXNpYmlsaXR5OnZpc2libGU7XG59XG5cblxuLy8gR3JpZGxlIFJpZ2h0IDpcbkBtaXhpbiBncmlkbGVfZmxvYXQoXG5cdCRmbG9hdC1kaXJlY3Rpb24gOiBsZWZ0LFxuXHQkc3RhdGUgOiBkZWZhdWx0XG4pIHtcblx0Ly8gY2hlY2sgaWYgbmVlZCBtZWRpYSBxdWVyeSA6XG5cdEBpZiAkc3RhdGUge1xuXHRcdEBpbmNsdWRlIGdyaWRsZV9zdGF0ZSgkc3RhdGUpIHtcblx0XHRcdEBpbmNsdWRlIF9ncmlkbGVfZmxvYXQoJGZsb2F0LWRpcmVjdGlvbik7XG5cdFx0fVxuXHR9IEBlbHNlIHtcblx0XHRAaW5jbHVkZSBfZ3JpZGxlX2Zsb2F0KCRmbG9hdC1kaXJlY3Rpb24pO1xuXHR9XG59XG5AbWl4aW4gX2dyaWRsZV9mbG9hdChcblx0JGZsb2F0LWRpcmVjdGlvbiA6IGxlZnRcbikge1xuXHRmbG9hdDojeyRmbG9hdC1kaXJlY3Rpb259O1xufVxuXG5cbi8vIEdyaWRsZSBjbGVhciA6XG4vLyBAcGFyYW0gXHRTdHJpbmcgXHQkY2xlYXItZGlyZWN0aW9uIFx0VGhlIGRpcmVjdGlvbiB0byBjbGVhclxuLy8gQHBhcmFtIFx0U3RyaW5nIFx0JHN0YXRlIFx0XHRcdFx0VGhlIHN0YXRlXG5AbWl4aW4gZ3JpZGxlX2NsZWFyKFxuXHQkY2xlYXItZGlyZWN0aW9uIDogYm90aCxcblx0JHN0YXRlIDogZGVmYXVsdFxuKSB7XG5cdC8vIGNoZWNrIGlmIG5lZWQgbWVkaWEgcXVlcnkgOlxuXHRAaWYgJHN0YXRlIHtcblx0XHRAaW5jbHVkZSBncmlkbGVfc3RhdGUoJHN0YXRlKSB7XG5cdFx0XHRAaW5jbHVkZSBfZ3JpZGxlX2NsZWFyKCRjbGVhci1kaXJlY3Rpb24pO1xuXHRcdH1cblx0fSBAZWxzZSB7XG5cdFx0QGluY2x1ZGUgX2dyaWRsZV9jbGVhcigkY2xlYXItZGlyZWN0aW9uKTtcblx0fVxufVxuQG1peGluIF9ncmlkbGVfY2xlYXIoXG5cdCRjbGVhci1kaXJlY3Rpb24gOiBib3RoXG4pIHtcblx0Y2xlYXI6I3skY2xlYXItZGlyZWN0aW9ufTtcbn1cblxuXG4vLyBHcmlkbGUgbm8gZ3V0dGVyIDpcbi8vIEBwYXJhbSBcdFN0cmluZyBcdCRzaWRlIFx0XHRcdFx0VGhlIHNpZGUgdG8gY2xlYXJcbi8vIEBwYXJhbSBcdFN0cmluZyBcdCRzdGF0ZSBcdFx0XHRcdFRoZSBzdGF0ZVxuQG1peGluIGdyaWRsZV9ub19ndXR0ZXIoXG5cdCRzaWRlIDogbGVmdCByaWdodCxcblx0JHN0YXRlIDogZGVmYXVsdFxuKSB7XG5cdC8vIGNoZWNrIGlmIG5lZWQgbWVkaWEgcXVlcnkgOlxuXHRAaWYgJHN0YXRlIHtcblx0XHRAaW5jbHVkZSBncmlkbGVfc3RhdGUoJHN0YXRlKSB7XG5cdFx0XHRAaW5jbHVkZSBfZ3JpZGxlX25vX2d1dHRlcigkc2lkZSk7XG5cdFx0fVxuXHR9IEBlbHNlIHtcblx0XHRAaW5jbHVkZSBfZ3JpZGxlX25vX2d1dHRlcigkc2lkZSk7XG5cdH1cbn1cbkBtaXhpbiBncmlkbGVfbm9fbWFyZ2luKFxuXHQkc2lkZSA6IGxlZnQgcmlnaHQsXG5cdCRzdGF0ZSA6IGRlZmF1bHRcbikge1xuXHRAaW5jbHVkZSBncmlkbGVfbm9fZ3V0dGVyKCRzaWRlLCAkc3RhdGUpO1xufVxuQG1peGluIF9ncmlkbGVfbm9fZ3V0dGVyKFxuXHQkc2lkZSA6IGxlZnQgcmlnaHRcbikge1xuXHRAZWFjaCAkcyBpbiAkc2lkZSB7XG5cdFx0cGFkZGluZy0jeyRzfSA6IDA7XG5cdH1cbn1cblxuXG4vLyBHcmlkbGUgZ3V0dGVyIDpcbi8vIEBwYXJhbSBcdFN0cmluZyBcdCRzaWRlIFx0XHRcdFx0VGhlIHNpZGUgdG8gY2xlYXJcbi8vIEBwYXJhbSBcdFN0cmluZyBcdCRzdGF0ZSBcdFx0XHRcdFRoZSBzdGF0ZVxuQG1peGluIGdyaWRsZV9ndXR0ZXIoXG5cdCRzaWRlIDogbGVmdCByaWdodCxcblx0JHN0YXRlIDogZGVmYXVsdFxuKSB7XG5cdC8vIGNoZWNrIGlmIG5lZWQgbWVkaWEgcXVlcnkgOlxuXHRAaWYgJHN0YXRlIHtcblx0XHRAaW5jbHVkZSBncmlkbGVfc3RhdGUoJHN0YXRlKSB7XG5cdFx0XHRAaW5jbHVkZSBfZ3JpZGxlX2d1dHRlcigkc2lkZSk7XG5cdFx0fVxuXHR9IEBlbHNlIHtcblx0XHRAaW5jbHVkZSBfZ3JpZGxlX2d1dHRlcigkc2lkZSk7XG5cdH1cbn1cbi8vIHNob3J0Y3V0IDpcbkBtaXhpbiBncmlkbGVfbWFyZ2luKFxuXHQkc2lkZSA6IGxlZnQgcmlnaHQsXG5cdCRzdGF0ZSA6IGRlZmF1bHRcbikge1xuXHRAaW5jbHVkZSBncmlkbGVfZ3V0dGVyKCRzaWRlLCAkc3RhdGUpO1xufVxuQG1peGluIF9ncmlkbGVfZ3V0dGVyKFxuXHQkc2lkZSA6IGxlZnQgcmlnaHQsXG5cdCRzdGF0ZSA6IGRlZmF1bHRcbikge1xuXHQkZ3V0dGVyLXdpZHRoIDogX2dyaWRsZV9nZXRfdmFyX3ZhbHVlKGd1dHRlci13aWR0aCwgJHN0YXRlKTtcblx0QGVhY2ggJHMgaW4gJHNpZGUge1xuXHRcdHBhZGRpbmctI3skc30gOiAkZ3V0dGVyLXdpZHRoIC8gMjtcblx0fVxufSIsIi8vIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHwgR2VuZXJhdGUgbWl4aW5zXG4vLyB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLyoqXG4gKiBHZW5lcmF0ZSBhIGN1c3RvbSBjbGFzcyBmb3IgYWxsIHRoZSBzdGF0ZXNcbiAqXG4gKiBAcGFyYW0gXHRsaXN0IFx0JHBhdHRlcm4gXHRcdFRoZSBuYW1lIHBhdHRlcm4gb2YgdGhlIGNsYXNzXG4gKiBAcGFyYW0gXHRsaXN0IFx0JHN0YXRlc05hbWVzIFx0XHRUaGUgc3RhdGVzIG5hbWVzIHRvIGdlbmVyYXRlXG4gKi9cbkBtaXhpbiBncmlkbGVfZ2VuZXJhdGVfY3VzdG9tX2NsYXNzKFxuXHQkcGF0dGVybixcblx0JHN0YXRlc05hbWVzIDogbnVsbFxuKSB7XG5cdC8vIG1hbmFnZSBzdGF0ZXMgdG8gZ2VuZXJhdGUgOlxuXHQkc3RhdGVzIDogKCk7XG5cdEBpZiAkc3RhdGVzTmFtZXMgPT0gbnVsbCB7XG5cdFx0Ly8gbG9vcCBvbiBlYWNoIHN0YXRlcyB0byBnZW5lcmF0ZSBuYW1lcyBsaXN0IDpcblx0XHRAZWFjaCAkc3RhdGVOYW1lLCAkc3RhdGUgaW4gJF9ncmlkbGVfc3RhdGVzIHtcblx0XHRcdCRzdGF0ZXMgOiBhcHBlbmQoJHN0YXRlcywgJHN0YXRlTmFtZSk7XG5cdFx0fVxuXHR9IEBlbHNlIHtcblx0XHQkc3RhdGVzIDogJHN0YXRlc05hbWVzO1xuXHR9XG5cblx0Ly8gbG9vcCBvbiBlYWNoIHN0YXRlcyA6XG5cdEBlYWNoICRzdGF0ZU5hbWUgaW4gJHN0YXRlc1xuXHR7XG5cdFx0Ly8gbWFuYWdlIHN0YXRlbmFtZSA6XG5cdFx0QGlmIHR5cGUtb2YoJHN0YXRlTmFtZSkgIT0gc3RyaW5nIHtcblx0XHRcdCRzdGF0ZU5hbWUgOiBtYXAtZ2V0KCRzdGF0ZU5hbWUsIG5hbWUpO1xuXHRcdH1cblxuXHRcdC8vIGNsYXNzZXMgOlxuXHRcdCRjbGFzc2VzIDogX2dyaWRsZV9nZXRfdmFyX3ZhbHVlKGNsYXNzZXMsICRzdGF0ZU5hbWUpO1xuXG5cdFx0Ly8gZ2VucmF0ZSB0aGUgY2xhc3NuYW1lIDpcblx0XHRAaWYgJGNsYXNzZXNcblx0XHR7XG5cdFx0XHRAaW5jbHVkZSBncmlkbGVfc3RhdGUoJHN0YXRlTmFtZSwgZmFsc2UpIHtcblx0XHRcdFx0I3tfZ3JpZGxlX2NsYXNzbmFtZSgkcGF0dGVybiwgJHN0YXRlTmFtZSl9IHtcblx0XHRcdFx0XHRAY29udGVudDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4vLyBHZW5lcmF0ZSBhbGwgaGVscGVycyBjbGFzc2VzXG4vLyBBbGwgdGhlIGNsYXNzZXMgZ2VuZXJhdGVkIGFyZSBub3Qgd3JhcHBlciBpbiBncmlkbGVfc3RhdGVcbi8vIGluIHRoaXMgbWl4aW4uLi4gSnVzdCB0aGUgbmFtZXMgYXJlIGdlbmVyYXRlZCBhY2NvcmRpbmdseSB0byB0aGVcbi8vIHJlcXVlc3RlZCBzdGF0ZVxuQG1peGluIF9ncmlkbGVfZ2VuZXJhdGVfaGVscGVyX2NsYXNzZXMgKFxuXHQkc3RhdGUgOiBudWxsLFxuXHQkd2hhdCA6IG51bGxcbikge1xuXHQvLyBoZWxwZXJzIDpcblx0QGlmICR3aGF0ID09IG51bGwgb3IgaW5kZXgoJHdoYXQsIGZsb2F0KSBvciBpbmRleCgkd2hhdCwgaGVscGVycykge1xuXHRcdCN7X2dyaWRsZV9jbGFzc25hbWUoJGdyaWRsZS1mbG9hdC1sZWZ0LW5hbWUtcGF0dGVybiwgJHN0YXRlKX0ge1xuXHRcdFx0QGluY2x1ZGUgZ3JpZGxlX2Zsb2F0KGxlZnQpO1xuXHRcdH1cblx0XHQje19ncmlkbGVfY2xhc3NuYW1lKCRncmlkbGUtZmxvYXQtcmlnaHQtbmFtZS1wYXR0ZXJuLCAkc3RhdGUpfSB7XG5cdFx0XHRAaW5jbHVkZSBncmlkbGVfZmxvYXQocmlnaHQpO1xuXHRcdH1cblx0fVxuXG5cdEBpZiAkd2hhdCA9PSBudWxsIG9yIGluZGV4KCR3aGF0LCBjbGVhcikgb3IgaW5kZXgoJHdoYXQsIGhlbHBlcnMpIHtcblx0XHQje19ncmlkbGVfY2xhc3NuYW1lKCRncmlkbGUtY2xlYXItbmFtZS1wYXR0ZXJuLCAkc3RhdGUpfSB7XG5cdFx0XHRAaW5jbHVkZSBncmlkbGVfY2xlYXIoYm90aCk7XG5cdFx0fVxuXHRcdCN7X2dyaWRsZV9jbGFzc25hbWUoJGdyaWRsZS1jbGVhci1sZWZ0LW5hbWUtcGF0dGVybiwgJHN0YXRlKX0ge1xuXHRcdFx0QGluY2x1ZGUgZ3JpZGxlX2NsZWFyKGxlZnQpO1xuXHRcdH1cblx0XHQje19ncmlkbGVfY2xhc3NuYW1lKCRncmlkbGUtY2xlYXItcmlnaHQtbmFtZS1wYXR0ZXJuLCAkc3RhdGUpfSB7XG5cdFx0XHRAaW5jbHVkZSBncmlkbGVfY2xlYXIocmlnaHQpO1xuXHRcdH1cblx0fVxuXG5cdEBpZiAkd2hhdCA9PSBudWxsIG9yIGluZGV4KCR3aGF0LCBub19ndXR0ZXIpIG9yIGluZGV4KCR3aGF0LCBub19tYXJnaW4pIG9yIGluZGV4KCR3aGF0LCBoZWxwZXJzKSB7XG5cdFx0I3tfZ3JpZGxlX2NsYXNzbmFtZSgkZ3JpZGxlLW5vLWd1dHRlci1uYW1lLXBhdHRlcm4sICRzdGF0ZSl9LFxuXHRcdCN7X2dyaWRsZV9jbGFzc25hbWUoJGdyaWRsZS1uby1tYXJnaW4tbmFtZS1wYXR0ZXJuLCAkc3RhdGUpfSB7XG5cdFx0XHRAaW5jbHVkZSBncmlkbGVfbm9fbWFyZ2luKCk7XG5cdFx0fVxuXHRcdCN7X2dyaWRsZV9jbGFzc25hbWUoJGdyaWRsZS1uby1ndXR0ZXItbGVmdC1uYW1lLXBhdHRlcm4sICRzdGF0ZSl9LFxuXHRcdCN7X2dyaWRsZV9jbGFzc25hbWUoJGdyaWRsZS1uby1tYXJnaW4tbGVmdC1uYW1lLXBhdHRlcm4sICRzdGF0ZSl9IHtcblx0XHRcdEBpbmNsdWRlIGdyaWRsZV9ub19tYXJnaW4obGVmdCk7XG5cdFx0fVxuXHRcdCN7X2dyaWRsZV9jbGFzc25hbWUoJGdyaWRsZS1uby1ndXR0ZXItcmlnaHQtbmFtZS1wYXR0ZXJuLCAkc3RhdGUpfSxcblx0XHQje19ncmlkbGVfY2xhc3NuYW1lKCRncmlkbGUtbm8tbWFyZ2luLXJpZ2h0LW5hbWUtcGF0dGVybiwgJHN0YXRlKX0ge1xuXHRcdFx0QGluY2x1ZGUgZ3JpZGxlX25vX21hcmdpbihyaWdodCk7XG5cdFx0fVxuXHRcdCN7X2dyaWRsZV9jbGFzc25hbWUoJGdyaWRsZS1uby1ndXR0ZXItdG9wLW5hbWUtcGF0dGVybiwgJHN0YXRlKX0sXG5cdFx0I3tfZ3JpZGxlX2NsYXNzbmFtZSgkZ3JpZGxlLW5vLW1hcmdpbi10b3AtbmFtZS1wYXR0ZXJuLCAkc3RhdGUpfSB7XG5cdFx0XHRAaW5jbHVkZSBncmlkbGVfbm9fbWFyZ2luKHRvcCk7XG5cdFx0fVxuXHRcdCN7X2dyaWRsZV9jbGFzc25hbWUoJGdyaWRsZS1uby1ndXR0ZXItYm90dG9tLW5hbWUtcGF0dGVybiwgJHN0YXRlKX0sXG5cdFx0I3tfZ3JpZGxlX2NsYXNzbmFtZSgkZ3JpZGxlLW5vLW1hcmdpbi1ib3R0b20tbmFtZS1wYXR0ZXJuLCAkc3RhdGUpfSB7XG5cdFx0XHRAaW5jbHVkZSBncmlkbGVfbm9fbWFyZ2luKGJvdHRvbSk7XG5cdFx0fVxuXHR9XG5cblx0QGlmICR3aGF0ID09IG51bGwgb3IgaW5kZXgoJHdoYXQsIGd1dHRlcikgb3IgaW5kZXgoJHdoYXQsIG1hcmdpbikgb3IgaW5kZXgoJHdoYXQsIGhlbHBlcnMpIHtcblx0XHQje19ncmlkbGVfY2xhc3NuYW1lKCRncmlkbGUtZ3V0dGVyLW5hbWUtcGF0dGVybiwgJHN0YXRlKX0sXG5cdFx0I3tfZ3JpZGxlX2NsYXNzbmFtZSgkZ3JpZGxlLW1hcmdpbi1uYW1lLXBhdHRlcm4sICRzdGF0ZSl9IHtcblx0XHRcdEBpbmNsdWRlIGdyaWRsZV9tYXJnaW4obGVmdCByaWdodCk7XG5cdFx0fVxuXHRcdCN7X2dyaWRsZV9jbGFzc25hbWUoJGdyaWRsZS1ndXR0ZXItbGVmdC1uYW1lLXBhdHRlcm4sICRzdGF0ZSl9LFxuXHRcdCN7X2dyaWRsZV9jbGFzc25hbWUoJGdyaWRsZS1tYXJnaW4tbGVmdC1uYW1lLXBhdHRlcm4sICRzdGF0ZSl9IHtcblx0XHRcdEBpbmNsdWRlIGdyaWRsZV9tYXJnaW4obGVmdCk7XG5cdFx0fVxuXHRcdCN7X2dyaWRsZV9jbGFzc25hbWUoJGdyaWRsZS1ndXR0ZXItcmlnaHQtbmFtZS1wYXR0ZXJuLCAkc3RhdGUpfSxcblx0XHQje19ncmlkbGVfY2xhc3NuYW1lKCRncmlkbGUtbWFyZ2luLXJpZ2h0LW5hbWUtcGF0dGVybiwgJHN0YXRlKX0ge1xuXHRcdFx0QGluY2x1ZGUgZ3JpZGxlX21hcmdpbihyaWdodCk7XG5cdFx0fVxuXHRcdCN7X2dyaWRsZV9jbGFzc25hbWUoJGdyaWRsZS1ndXR0ZXItdG9wLW5hbWUtcGF0dGVybiwgJHN0YXRlKX0sXG5cdFx0I3tfZ3JpZGxlX2NsYXNzbmFtZSgkZ3JpZGxlLW1hcmdpbi10b3AtbmFtZS1wYXR0ZXJuLCAkc3RhdGUpfSB7XG5cdFx0XHRAaW5jbHVkZSBncmlkbGVfbWFyZ2luKHRvcCk7XG5cdFx0fVxuXHRcdCN7X2dyaWRsZV9jbGFzc25hbWUoJGdyaWRsZS1ndXR0ZXItYm90dG9tLW5hbWUtcGF0dGVybiwgJHN0YXRlKX0sXG5cdFx0I3tfZ3JpZGxlX2NsYXNzbmFtZSgkZ3JpZGxlLW1hcmdpbi1ib3R0b20tbmFtZS1wYXR0ZXJuLCAkc3RhdGUpfSB7XG5cdFx0XHRAaW5jbHVkZSBncmlkbGVfbWFyZ2luKGJvdHRvbSk7XG5cdFx0fVxuXHR9XG5cblx0QGlmICR3aGF0ID09IG51bGwgb3IgaW5kZXgoJHdoYXQsIGF1dG9faGVpZ2h0KSBvciBpbmRleCgkd2hhdCwgaGVscGVycykge1xuXHRcdCN7X2dyaWRsZV9jbGFzc25hbWUoJGdyaWRsZS1hdXRvLWhlaWdodC1uYW1lLXBhdHRlcm4sICRzdGF0ZSl9IHtcblx0XHRcdGhlaWdodDppbmhlcml0O1xuXHRcdH1cblx0fVxuXG5cdEBpZiAkd2hhdCA9PSBudWxsIG9yIGluZGV4KCR3aGF0LCBjZW50ZXJlZCkgb3IgaW5kZXgoJHdoYXQsIGhlbHBlcnMpIHtcblx0XHQje19ncmlkbGVfY2xhc3NuYW1lKCRncmlkbGUtY2VudGVyZWQtbmFtZS1wYXR0ZXJuLCAkc3RhdGUpfSB7XG5cdFx0XHRAaW5jbHVkZSBncmlkbGVfY2VudGVyZWQobnVsbCk7XG5cdFx0fVxuXHR9XG5cblx0QGlmICR3aGF0ID09IG51bGwgb3IgaW5kZXgoJHdoYXQsIHBhcmVudCkgb3IgaW5kZXgoJHdoYXQsIGhlbHBlcnMpIHtcblx0XHQje19ncmlkbGVfY2xhc3NuYW1lKCRncmlkbGUtcGFyZW50LW5hbWUtcGF0dGVybiwgJHN0YXRlKX0ge1xuXHRcdFx0QGluY2x1ZGUgX2dyaWRsZV9wYXJlbnQoKTtcblx0XHR9XG5cdH1cblxuXHRAaWYgJHdoYXQgPT0gbnVsbCBvciBpbmRleCgkd2hhdCwgdmVydGljYWxfYWxpZ24pIG9yIGluZGV4KCR3aGF0LCBoZWxwZXJzKSB7XG5cdFx0I3tfZ3JpZGxlX2NsYXNzbmFtZSgkZ3JpZGxlLXZlcnRpY2FsLWFsaWduLW1pZGRsZS1uYW1lLXBhdHRlcm4sICRzdGF0ZSl9IHtcblx0XHRcdEBpbmNsdWRlIF9ncmlkbGVfdmVydGljYWxfYWxpZ24oKTtcblx0XHR9XG5cdFx0I3tfZ3JpZGxlX2NsYXNzbmFtZSgkZ3JpZGxlLXZlcnRpY2FsLWFsaWduLXRvcC1uYW1lLXBhdHRlcm4sICRzdGF0ZSl9IHtcblx0XHRcdEBpbmNsdWRlIF9ncmlkbGVfdmVydGljYWxfYWxpZ24odG9wKTtcblx0XHR9XG5cdFx0I3tfZ3JpZGxlX2NsYXNzbmFtZSgkZ3JpZGxlLXZlcnRpY2FsLWFsaWduLWJvdHRvbS1uYW1lLXBhdHRlcm4sICRzdGF0ZSl9IHtcblx0XHRcdEBpbmNsdWRlIF9ncmlkbGVfdmVydGljYWxfYWxpZ24oYm90dG9tKTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogVmlzaWJsZSwgaGlkZSwgZXRjLi4uXG5cdCAqL1xuXHRAaWYgJHdoYXQgPT0gbnVsbCBvciBpbmRleCgkd2hhdCwgaGlkZSkgb3IgaW5kZXgoJHdoYXQsIGhlbHBlcnMpIHtcblx0XHQje19ncmlkbGVfY2xhc3NuYW1lKCRncmlkbGUtaGlkZS1uYW1lLXBhdHRlcm4sICRzdGF0ZSl9IHtcblx0XHRcdEBpbmNsdWRlIGdyaWRsZV9oaWRlKG51bGwpO1xuXHRcdH1cblx0fVxuXG5cdEBpZiAkd2hhdCA9PSBudWxsIG9yIGluZGV4KCR3aGF0LCBub3RfdmlzaWJsZSkgb3IgaW5kZXgoJHdoYXQsIGhlbHBlcnMpIHtcblx0XHQje19ncmlkbGVfY2xhc3NuYW1lKCRncmlkbGUtbm90LXZpc2libGUtbmFtZS1wYXR0ZXJuLCAkc3RhdGUpfSB7XG5cdFx0XHRAaW5jbHVkZSBncmlkbGVfbm90X3Zpc2libGUobnVsbCk7XG5cdFx0fVxuXHR9XG5cblx0QGlmICR3aGF0ID09IG51bGwgb3IgaW5kZXgoJHdoYXQsIHNob3cpIG9yIGluZGV4KCR3aGF0LCBoZWxwZXJzKSB7XG5cdFx0I3tfZ3JpZGxlX2NsYXNzbmFtZSgkZ3JpZGxlLXNob3ctbmFtZS1wYXR0ZXJuLCAkc3RhdGUpfSB7XG5cdFx0XHRAaW5jbHVkZSBncmlkbGVfc2hvdyhudWxsKTtcblx0XHR9XG5cdFx0I3tfZ3JpZGxlX2NsYXNzbmFtZSgkZ3JpZGxlLXNob3ctaW5saW5lLW5hbWUtcGF0dGVybiwgJHN0YXRlKX0ge1xuXHRcdFx0QGluY2x1ZGUgZ3JpZGxlX3Nob3dfaW5saW5lKG51bGwpO1xuXHRcdH1cblx0fVxuXG5cdEBpZiAkd2hhdCA9PSBudWxsIG9yIGluZGV4KCR3aGF0LCB2aXNpYmxlKSBvciBpbmRleCgkd2hhdCwgaGVscGVycykge1xuXHRcdCN7X2dyaWRsZV9jbGFzc25hbWUoJGdyaWRsZS12aXNpYmxlLW5hbWUtcGF0dGVybiwgJHN0YXRlKX0ge1xuXHRcdFx0QGluY2x1ZGUgZ3JpZGxlX3Zpc2libGUobnVsbCk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIENsZWFyIGVhY2ggY2xhc3MgOlxuXHQgKi9cblx0QGlmICR3aGF0ID09IG51bGwgb3IgaW5kZXgoJHdoYXQsIGNsZWFyX2VhY2gpIG9yIGluZGV4KCR3aGF0LCBoZWxwZXJzKSB7XG5cdFx0QGVhY2ggJGNsZWFyTmFtZSwgJGNsZWFyTWFwIGluICRfZ3JpZGxlX2NsZWFyX2NsYXNzZXMge1xuXHRcdFx0Ly8gZ2V0IGNvdW50IDpcblx0XHRcdCRjbGVhckNvdW50IDogbWFwLWdldCgkY2xlYXJNYXAsIGNsZWFyRWFjaCk7XG5cdFx0XHQvLyB3aGF0IHRvIGNsZWFyIDpcblx0XHRcdCRjbGVhcldoYXQgOiBtYXAtZ2V0KCRjbGVhck1hcCwgY2xlYXJXaGF0KTtcblx0XHRcdC8vIGdlbmVyYXRlIHRoZSBjbGFzcyA6XG5cdFx0XHQje19ncmlkbGVfY2xhc3NuYW1lKCRncmlkbGUtY2xlYXItZWFjaC1wYXR0ZXJuLCAkc3RhdGUsICRjbGVhckNvdW50KX0ge1xuXHRcdFx0XHRAaW5jbHVkZSBfZ3JpZGxlX2NsZWFyX2VhY2goJGNsZWFyQ291bnQsICRjbGVhcldoYXQpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8vIGRlYnVnIGNvbG9ycyA6XG5cdCRkZWJ1ZyA6IF9ncmlkbGVfZ2V0X3Zhcl92YWx1ZShkZWJ1ZywgJHN0YXRlKTtcblx0QGlmICRkZWJ1ZyBhbmQgKCAkd2hhdCA9PSBudWxsIG9yIGluZGV4KCR3aGF0LCBkZWJ1Z19jb2xvcnMpIG9yIGluZGV4KCR3aGF0LCBoZWxwZXJzKSApIHtcblx0XHQvLyBkZWJ1ZyBjb2xvciBjbGFzc2VzIDpcblx0XHQje19ncmlkbGVfY2xhc3NuYW1lKCRncmlkbGUtZGVidWctY29sb3ItbmFtZS1wYXR0ZXJuLCAkc3RhdGUsIDEpfSB7XG5cdFx0XHQjeyRncmlkbGUtZGVidWctc2VsZWN0b3J9IHtcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvciA6ICNlZGVlYjI7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdCN7X2dyaWRsZV9jbGFzc25hbWUoJGdyaWRsZS1kZWJ1Zy1jb2xvci1uYW1lLXBhdHRlcm4sICRzdGF0ZSwgMil9IHtcblx0XHRcdCN7JGdyaWRsZS1kZWJ1Zy1zZWxlY3Rvcn0ge1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yIDogI2ZhZTRhNztcblx0XHRcdH1cblx0XHR9XG5cdFx0I3tfZ3JpZGxlX2NsYXNzbmFtZSgkZ3JpZGxlLWRlYnVnLWNvbG9yLW5hbWUtcGF0dGVybiwgJHN0YXRlLCAzKX0ge1xuXHRcdFx0I3skZ3JpZGxlLWRlYnVnLXNlbGVjdG9yfSB7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3IgOiAjZjVlYWNjO1xuXHRcdFx0fVxuXHRcdH1cblx0XHQje19ncmlkbGVfY2xhc3NuYW1lKCRncmlkbGUtZGVidWctY29sb3ItbmFtZS1wYXR0ZXJuLCAkc3RhdGUsIDQpfSB7XG5cdFx0XHQjeyRncmlkbGUtZGVidWctc2VsZWN0b3J9IHtcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvciA6ICNlZWJkYjI7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdCN7X2dyaWRsZV9jbGFzc25hbWUoJGdyaWRsZS1kZWJ1Zy1jb2xvci1uYW1lLXBhdHRlcm4sICRzdGF0ZSwgNSl9IHtcblx0XHRcdCN7JGdyaWRsZS1kZWJ1Zy1zZWxlY3Rvcn0ge1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yIDogI2Q0YjJlZTtcblx0XHRcdH1cblx0XHR9XG5cdFx0I3tfZ3JpZGxlX2NsYXNzbmFtZSgkZ3JpZGxlLWRlYnVnLWNvbG9yLW5hbWUtcGF0dGVybiwgJHN0YXRlLCA2KX0ge1xuXHRcdFx0I3skZ3JpZGxlLWRlYnVnLXNlbGVjdG9yfSB7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3IgOiAjYjJkOGVlO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG5cbi8vIGdlbmVyYXRlIHNldHRpbmdzIGpzb24gOlxuQG1peGluIGdyaWRsZV9nZW5lcmF0ZV9qc29uX3NldHRpbmdzKCkge1xuXG5cdC8vIHNldHRpbmdzIGNvbnRlbnQgOlxuXHQkZ3JpZGxlLXNldHRpbmdzLXN0YXRlcyA6IFwie1wiO1xuXG5cdC8vIGdlbmVyYXRlIGFsbCBjbGFzc2VzIGZvciBkaWZmZXJlbnRzIG1lZGlhIHF1ZXJpZXMgOlxuXHQkc3RhdGVzQ291bnQgOiBsZW5ndGgoJF9ncmlkbGVfc3RhdGVzKTtcblx0JGkgOiAwO1xuXHRAZWFjaCAkc3RhdGVOYW1lLCAkc3RhdGUgaW4gJF9ncmlkbGVfc3RhdGVzIHtcblx0XG5cdFx0JG5hbWUgOiAkc3RhdGVOYW1lO1xuXG5cdFx0JGdyaWRsZS1zZXR0aW5ncy1zdGF0ZXMgOiBcIiN7JGdyaWRsZS1zZXR0aW5ncy1zdGF0ZXN9IFxcXCIjeyRuYW1lfVxcXCI6e1wiO1xuXHRcblx0XHRAZWFjaCAkdmFyTmFtZSwgJHZhciBpbiAkc3RhdGUge1xuXG5cdFx0XHQkdmFsdWUgOiBudWxsO1xuXHRcdFx0QGlmICR2YXJOYW1lID09IFwicXVlcnlcIiB7XG5cdFx0XHRcdCR2YWx1ZSA6IF9ncmlkbGVfZ2V0X21lZGlhX3F1ZXJ5KCRzdGF0ZU5hbWUpO1xuXHRcdFx0fSBAZWxzZSB7XG5cdFx0XHRcdCR2YWx1ZSA6IG1hcC1nZXQoJHN0YXRlLCR2YXJOYW1lKTtcblx0XHRcdH1cblxuXHRcdFx0QGlmICR2YWx1ZSA9PSBudWxsIHtcblx0XHRcdFx0JGdyaWRsZS1zZXR0aW5ncy1zdGF0ZXMgOiBcIiN7JGdyaWRsZS1zZXR0aW5ncy1zdGF0ZXN9IFxcXCIjeyR2YXJOYW1lfVxcXCIgOiBudWxsLFwiO1xuXHRcdFx0fSBAZWxzZWlmIHR5cGUtb2YoJHZhbHVlKSA9PSBib29sIHtcblx0XHRcdFx0JGdyaWRsZS1zZXR0aW5ncy1zdGF0ZXMgOiBcIiN7JGdyaWRsZS1zZXR0aW5ncy1zdGF0ZXN9IFxcXCIjeyR2YXJOYW1lfVxcXCIgOiAjeyR2YWx1ZX0sXCI7XG5cdFx0XHR9IEBlbHNlIHtcblx0XHRcdFx0JGdyaWRsZS1zZXR0aW5ncy1zdGF0ZXMgOiBcIiN7JGdyaWRsZS1zZXR0aW5ncy1zdGF0ZXN9IFxcXCIjeyR2YXJOYW1lfVxcXCIgOiBcXFwiI3skdmFsdWV9XFxcIixcIjtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQkZ3JpZGxlLXNldHRpbmdzLXN0YXRlcyA6IFwiI3skZ3JpZGxlLXNldHRpbmdzLXN0YXRlc30gXFxcIl9ncmlkbGVcXFwiIDogdHJ1ZVwiO1xuXG5cdFx0QGlmICRpID49ICRzdGF0ZXNDb3VudCAtIDEge1xuXHRcdFx0JGdyaWRsZS1zZXR0aW5ncy1zdGF0ZXMgOiBcIiN7JGdyaWRsZS1zZXR0aW5ncy1zdGF0ZXN9IH1cIjtcblx0XHR9IEBlbHNlIHtcblx0XHRcdCRncmlkbGUtc2V0dGluZ3Mtc3RhdGVzIDogXCIjeyRncmlkbGUtc2V0dGluZ3Mtc3RhdGVzfSB9LFwiO1xuXHRcdH1cblx0XG5cdFx0Ly8gdXBkYXRlIGkgOlxuXHRcdCRpIDogJGkgKyAxO1xuXG5cdH1cblxuXHQgLy8gZ2VuZXJhdGUgc2V0dGluZ3MganNvbiA6XG5cdCRncmlkbGUtc2V0dGluZ3Mtc3RhdGVzIDogXCIjeyRncmlkbGUtc2V0dGluZ3Mtc3RhdGVzfX1cIjtcblx0JGdyaWRsZS1zZXR0aW5ncyA6IFwie1wiO1xuXHQkZ3JpZGxlLXNldHRpbmdzIDogXCIjeyRncmlkbGUtc2V0dGluZ3N9IFxcXCJ2ZXJzaW9uXFxcIiA6IFxcXCIjeyRfZ3JpZGxlLXZlcnNpb259XFxcIlwiO1xuXHRcblx0Ly8gc3RhdGVzIDpcblx0JGdyaWRsZS1zZXR0aW5ncyA6IFwiI3skZ3JpZGxlLXNldHRpbmdzfSwgXFxcInN0YXRlc1xcXCIgOiAjeyRncmlkbGUtc2V0dGluZ3Mtc3RhdGVzfVwiO1xuXHRcblx0Ly8gZGVidWcgZGV2aWNlcyA6XG5cdCRkZWJ1Z19kZXZpY2VzIDogJF9ncmlkbGVfc3RhdGVzX2RlYnVnX2RldmljZXM7XG5cdEBpZiBsZW5ndGgoJF9ncmlkbGVfc3RhdGVzX2RlYnVnX2RldmljZXMpIDw9IDAge1xuXHRcdCRkZWJ1Z19kZXZpY2VzIDogbnVsbDtcblx0fVxuXHQvLyAkZ3JpZGxlLXNldHRpbmdzIDogXCIjeyRncmlkbGUtc2V0dGluZ3N9LCBcXFwiZGVidWdEZXZpY2VzXFxcIiA6IHsgI3skZGVidWdfZGV2aWNlc30gfVwiO1xuXG5cdC8vIHNldHRpbmdzIDpcblx0Ly8gJGdyaWRsZS1zZXR0aW5ncyA6IFwiI3skZ3JpZGxlLXNldHRpbmdzfSwgXFxcImNsYXNzUHJlZml4XFxcIiA6IFxcXCIjeyRncmlkbGUtY2xhc3MtcHJlZml4fVxcXCJcIjtcblx0JGdyaWRsZS1zZXR0aW5ncyA6IFwiI3skZ3JpZGxlLXNldHRpbmdzfSB9XCI7XG5cdCNncmlkbGUtc2V0dGluZ3Mge1xuXHRcdGNvbnRlbnQgOiAkZ3JpZGxlLXNldHRpbmdzO1xuXHR9XG59XG5cblxuLy8gZ3JpZGxlIG1peGluIDpcbi8vIEdlbmVyYXRlIGFsbCB0aGUgY2xhc3NlcyBuZWVkZWQgZm9yIGEgZ3JpZFxuQG1peGluIGdyaWRsZV9nZW5lcmF0ZV9jbGFzc2VzKFxuXHQkc3RhdGVOYW1lIDogbnVsbCxcblx0JHdoYXQgOiBudWxsLFxuXHQkc2NvcGUgOiBudWxsXG4pIHtcblx0Ly8gaWYgdGhlIHdoYXQgcGFyYW1ldGVyIGlzIG5vdCBudWxsLCBtZWFuIHRoYXQgd2UgbmVlZCB0byBnZW5lcmF0ZSBvbmx5IGNlcnRhaW4gY2xhc3NlcyBpbiBhIGNlcnRhaW4gb3JkZXIgOlxuXHRAaWYgJHdoYXRcblx0e1xuXHRcdC8vIGxvb3Agb24gZWFjaCB3aGF0IGl0ZW0gdG8gZ2VuZXJhdGUgdGhlIGNvcnJlc3BvbmRpbmcgY2xhc3NlcyA6XG5cdFx0QGVhY2ggJHcgaW4gJHdoYXRcblx0XHR7XG5cdFx0XHQvLyBjaGVjayBpZiBhIHNjb3BlIGV4aXN0IDpcblx0XHRcdEBpZiAkc2NvcGUge1xuXHRcdFx0XHQvLyB3cmFwcCBncmlkIGludG8gc2NvcGUgOlxuXHRcdFx0XHQuI3skc2NvcGV9IHtcblx0XHRcdFx0XHRAaW5jbHVkZSBfZ3JpZGxlX2dlbmVyYXRlX2NsYXNzZXMoJHN0YXRlTmFtZSwgKCAkdyApLCB0cnVlKTtcblx0XHRcdFx0fVxuXHRcdFx0fSBAZWxzZSB7XG5cdFx0XHRcdC8vIGdlbmVyYXRlIGNsYXNzZXMgOlxuXHRcdFx0XHRAaW5jbHVkZSBfZ3JpZGxlX2dlbmVyYXRlX2NsYXNzZXMoJHN0YXRlTmFtZSwgKCAkdyApLCBmYWxzZSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdEBlbHNlXG5cdHtcblx0XHQvLyBkb24ndCBoYXZlIGFueSBcIndoYXRcIiBwYXJhbWV0ZXIgc28gZ2VuZXJhdGUgYWxsIHRoZSBjbGFzc2VzXG5cdFx0Ly8gY2hlY2sgaWYgYSBzY29wZSBleGlzdCA6XG5cdFx0QGlmICRzY29wZSB7XG5cdFx0XHQvLyB3cmFwcCBncmlkIGludG8gc2NvcGUgOlxuXHRcdFx0LiN7JHNjb3BlfSB7XG5cdFx0XHRcdEBpbmNsdWRlIF9ncmlkbGVfZ2VuZXJhdGVfY2xhc3Nlcygkc3RhdGVOYW1lLCBudWxsLCB0cnVlKTtcblx0XHRcdH1cblx0XHR9IEBlbHNlIHtcblx0XHRcdC8vIGdlbmVyYXRlIGNsYXNzZXMgOlxuXHRcdFx0QGluY2x1ZGUgX2dyaWRsZV9nZW5lcmF0ZV9jbGFzc2VzKCRzdGF0ZU5hbWUsIG51bGwsIGZhbHNlKTtcblx0XHR9XG5cdH1cbn1cbiRfZ3JpZGxlX2dlbmVyYXRlT25seU9uY2UgOiB0cnVlOyAvLyBrZWVwIHRyYWNrIG9mIGdlbmVyYXRlIG9uY2UgY2xhc3Nlc1xuQG1peGluIF9ncmlkbGVfZ2VuZXJhdGVfY2xhc3Nlcyhcblx0JHN0YXRlTmFtZSA6IG51bGwsXG5cdCR3aGF0IDogbnVsbCxcblx0JGhhcy1wYXJlbnQgOiBmYWxzZVxuKSB7XG4gXG5cdC8vIGdlbmVyYXRlIHRoZXNlIGNsYXNzZXMgb25seSBvbmNlIDpcblx0QGlmICRfZ3JpZGxlX2dlbmVyYXRlT25seU9uY2Vcblx0e1xuXG5cdFx0Ly8gdXBkYXRlIHN0YXR1cyA6XG5cdFx0JF9ncmlkbGVfZ2VuZXJhdGVPbmx5T25jZSA6IGZhbHNlO1xuXG5cdFx0Ly8gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0XHQvLyB8IFdpbmRvd3MgOCBmaXhcblx0XHQvLyB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHRcdFxuXHRcdC8vIFdpbmRvd3MgOCBmaXggZm9yIHNuYXAgbW9kZSA6XG5cdFx0QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDAwcHgpIHtcblx0XHRcdEAtbXMtdmlld3BvcnQgeyB3aWR0aDogZGV2aWNlLXdpZHRoOyB9XG5cdFx0fVxuXG5cblx0XHQvLyB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHRcdC8vIHwgQ29udGFpbmVyXG5cdFx0Ly8gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0IFxuXHRcdC8vIGdlbmVyYXRlIGNvbnRhaW5lciBjbGFzcyA6XG5cdFx0QGlmICR3aGF0ID09IG51bGwgb3IgaW5kZXgoJHdoYXQsIGNvbnRhaW5lcikgb3IgaW5kZXgoJHdoYXQsIGRlZmF1bHQpXG5cdFx0e1xuXHRcdFx0JGNvbnRhaW5lci1zZWxlY3RvciA6ICgpO1xuXHRcdFx0JGNvbnRhaW5lci1zZWxlY3RvciA6IGFwcGVuZCggJGNvbnRhaW5lci1zZWxlY3RvciwgdW5xdW90ZShcIiN7X2dyaWRsZV9jbGFzc25hbWUoJGdyaWRsZS1jb250YWluZXItbmFtZS1wYXR0ZXJuKX1cIiksIGNvbW1hKTtcblx0XHRcdCN7JGNvbnRhaW5lci1zZWxlY3Rvcn0ge1xuXHRcdFx0XHRAaW5jbHVkZSBncmlkbGVfY29udGFpbmVyKCk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cblx0XHQvLyB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHRcdC8vIHwgUGFyZW50IHNlbGVjdG9yXG5cdFx0Ly8gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXHRcdC8vIHBhcmVudCBjb21tb24gY3NzIDpcblx0XHRAaWYgJHdoYXQgPT0gbnVsbCBvciBpbmRleCgkd2hhdCwgcGFyZW50KSBvciBpbmRleCgkd2hhdCwgZGVmYXVsdClcblx0XHR7XG5cdFx0XHQkcGFyZW50U2VsZWN0b3IgOiBfZ3JpZGxlX2NsYXNzbmFtZSgkZ3JpZGxlLXBhcmVudC1uYW1lLXBhdHRlcm4sbnVsbCxudWxsKTtcblx0XHRcdCN7JHBhcmVudFNlbGVjdG9yfSB7XG5cdFx0XHRcdEBleHRlbmQgJWdyaWRsZS1jbGVhcmZpeDtcblx0XHRcdFx0QGV4dGVuZCAlZ3JpZGxlLXBhcmVudC1jb21tb247XG5cdFx0XHR9XG5cdFx0fVxuXG5cblx0XHQvLyAvLyB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHRcdC8vIC8vIHwgSlNPTiBTZXR0aW5nc1xuXHRcdC8vIC8vIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdCBcblx0XHQvLyAvLyBnZW5lcmF0ZSBqc29uIHNldHRpbmdzIDpcblx0XHRAaWYgJGdyaWRsZS1nZW5lcmF0ZS1qc29uLXNldHRpbmdzXG5cdFx0e1xuXHRcdFx0QGluY2x1ZGUgZ3JpZGxlX2dlbmVyYXRlX2pzb25fc2V0dGluZ3MoKTtcblx0XHR9XG5cblx0fVxuXG5cblx0Ly8gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0Ly8gfCBTZXQgdGhlIGxpc3Qgb2Ygc3RhdGVzIHRvIGdlbmVyYXRlXG5cdC8vIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdCRzdGF0ZXMgOiAkX2dyaWRsZV9zdGF0ZXM7XG5cdEBpZiAkc3RhdGVOYW1lIGFuZCBfZ3JpZGxlX2hhc19zdGF0ZSgkc3RhdGVOYW1lKSB7XG5cdFx0JHN0YXRlcyA6IG1hcC1zZXQoKCksICRzdGF0ZU5hbWUsIF9ncmlkbGVfZ2V0X3N0YXRlKCRzdGF0ZU5hbWUpKTtcblx0fVxuXG5cblx0Ly8gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0Ly8gfCBTdG9yZSBhbGwgdGhlIGdlbmVyYXRlZCBjb21tb24gc2VsZWN0b3JzXG5cdC8vIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblx0Ly8gZ2VuZXJhdGUgYWxsIHNlbGVjdG9yIGZvciBleHRlbmRzIDpcblx0JGdyaWQtY29tbW9uLXNlbGVjdG9yIDogKCk7XG5cdCRwdXNoLWNvbW1vbi1zZWxlY3RvciA6ICgpO1xuXHQkcHVsbC1jb21tb24tc2VsZWN0b3IgOiAoKTtcblx0JHByZWZpeC1jb21tb24tc2VsZWN0b3IgOiAoKTtcblx0JHN1ZmZpeC1jb21tb24tc2VsZWN0b3IgOiAoKTtcblxuXG5cdC8vIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdC8vIHwgTWVkaWEgcXVlcmllcyBjbGFzc2VzIGNvbW1vbiBzZWxlY3RvcnNcblx0Ly8gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXHQvLyBnZW5lcmF0ZSBhbGwgY2xhc3NlcyBmb3IgbWVkaWEgcXVlcmllcyA6XG5cdEBlYWNoICRzdGF0ZU5hbWUsICRzdGF0ZSBpbiAkc3RhdGVzIHtcblx0XG5cdFx0Ly8gc2V0dXAgdmFycyA6XG5cdFx0JG1lZGlhIDogJHN0YXRlTmFtZTtcblx0XHQkY2xhc3NlcyA6IG1hcC1nZXQoJHN0YXRlLCBjbGFzc2VzKTtcblx0XHQkY29udGV4dCA6IG1hcC1nZXQoJHN0YXRlLCBjb250ZXh0KTtcblx0XHQkbmFtZS1tdWx0aXBsaWNhdG9yIDogbWFwLWdldCgkc3RhdGUsIG5hbWUtbXVsdGlwbGljYXRvcik7XG5cdFx0JGdlbmVyYXRlLXB1c2gtY2xhc3NlcyA6IF9ncmlkbGVfZ2V0X3Zhcl92YWx1ZShnZW5lcmF0ZS1wdXNoLWNsYXNzZXMsICRzdGF0ZSk7XG5cdFx0JGdlbmVyYXRlLXB1bGwtY2xhc3NlcyA6IF9ncmlkbGVfZ2V0X3Zhcl92YWx1ZShnZW5lcmF0ZS1wdWxsLWNsYXNzZXMsICRzdGF0ZSk7XG5cdFx0JGdlbmVyYXRlLXByZWZpeC1jbGFzc2VzIDogX2dyaWRsZV9nZXRfdmFyX3ZhbHVlKGdlbmVyYXRlLXByZWZpeC1jbGFzc2VzLCAkc3RhdGUpO1xuXHRcdCRnZW5lcmF0ZS1zdWZmaXgtY2xhc3NlcyA6IF9ncmlkbGVfZ2V0X3Zhcl92YWx1ZShnZW5lcmF0ZS1zdWZmaXgtY2xhc3NlcywgJHN0YXRlKTtcblxuXHRcdC8vIGdlbmVyYXRlIGNsYXNzZXMgOiAgIFxuXHRcdEBpZiAkY2xhc3NlcyA9PSB0cnVlIGFuZCAkY29udGV4dCB7XG5cblx0XHRcdC8vIGdldCBzcGVjaWFscyBjb2x1bW5zIDpcblx0XHRcdCRjb2x1bW5zTWFwIDogbWFwLW1lcmdlKCgpLCAkX2dyaWRsZV9jb2x1bW5zKTtcblxuXHRcdFx0Ly8gcmVnaXN0ZXIgZWFjaCBkZWZhdWx0IGNvbHVtbnMgOlxuXHRcdFx0QGZvciAkaiBmcm9tIDAgdGhyb3VnaCAkY29udGV4dCB7XG5cdFx0XHRcdFxuXHRcdFx0XHQvLyBuYW1lIDpcblx0XHRcdFx0JGNvbHVtbk5hbWUgOiBcIiN7JGoqJG5hbWUtbXVsdGlwbGljYXRvcn1cIjtcblx0XHRcdFx0JGNvbHVtbldpZHRoIDogJGogKiAkbmFtZS1tdWx0aXBsaWNhdG9yO1xuXG5cdFx0XHRcdC8vIC8vIGNyZWF0ZSBhIGNvbHVtbiA6XG5cdFx0XHRcdCRjb2wgOiBfZ3JpZGxlX2NyZWF0ZV9jb2x1bW4oJGNvbHVtbk5hbWUsICRjb2x1bW5XaWR0aCwgJGNvbnRleHQsICRuYW1lLW11bHRpcGxpY2F0b3IpO1xuXG5cdFx0XHRcdC8vIC8vIGFkZCBjb2x1bW4gaW4gY29sdW1ucyBtYXAgOlxuXHRcdFx0XHQkY29sdW1uc01hcCA6IG1hcC1zZXQoJGNvbHVtbnNNYXAsICRjb2x1bW5OYW1lLCAgJGNvbCk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIGxvb3Agb24gZWFjaCBjb2x1bW5zIHRvIGdlbmVyYXRlIGNvbW1vbiBzZWxlY3RvciA6XG5cdFx0XHRAZWFjaCAkY29sdW1uTmFtZSwgJGNvbHVtbiBpbiAkY29sdW1uc01hcCB7XG5cdFx0IFx0XG5cdFx0XHRcdC8vIGFkZCBzZWxlY3RvciA6XG5cdFx0XHRcdEBpZiAkd2hhdCA9PSBudWxsIG9yIGluZGV4KCR3aGF0LCBncmlkKSBvciBpbmRleCgkd2hhdCwgZGVmYXVsdCkge1xuXHRcdFx0XHRcdCRncmlkLWNvbW1vbi1zZWxlY3RvciA6IGFwcGVuZCggJGdyaWQtY29tbW9uLXNlbGVjdG9yLCB1bnF1b3RlKFwiI3tfZ3JpZGxlX2NsYXNzbmFtZSgkZ3JpZGxlLWdyaWQtbmFtZS1wYXR0ZXJuLCAkbWVkaWEsICRjb2x1bW5OYW1lKX1cIiksIGNvbW1hICk7XG5cdFx0XHRcdH1cblx0XHRcdFx0QGlmICRnZW5lcmF0ZS1wdXNoLWNsYXNzZXMgYW5kICgkd2hhdCA9PSBudWxsIG9yIGluZGV4KCR3aGF0LCBwdXNoKSBvciBpbmRleCgkd2hhdCwgZGVmYXVsdCkpIHtcblx0XHRcdFx0XHQkcHVzaC1jb21tb24tc2VsZWN0b3IgOiBhcHBlbmQoICRwdXNoLWNvbW1vbi1zZWxlY3RvciwgdW5xdW90ZShcIiN7X2dyaWRsZV9jbGFzc25hbWUoJGdyaWRsZS1wdXNoLW5hbWUtcGF0dGVybiwgJG1lZGlhLCAkY29sdW1uTmFtZSl9XCIpLCBjb21tYSApO1xuXHRcdFx0XHR9XG5cdFx0XHRcdEBpZiAkZ2VuZXJhdGUtcHVsbC1jbGFzc2VzIGFuZCAoJHdoYXQgPT0gbnVsbCBvciBpbmRleCgkd2hhdCwgcHVsbCkgb3IgaW5kZXgoJHdoYXQsIGRlZmF1bHQpKSB7XG5cdFx0XHRcdFx0JHB1bGwtY29tbW9uLXNlbGVjdG9yIDogYXBwZW5kKCAkcHVsbC1jb21tb24tc2VsZWN0b3IsIHVucXVvdGUoXCIje19ncmlkbGVfY2xhc3NuYW1lKCRncmlkbGUtcHVsbC1uYW1lLXBhdHRlcm4sICRtZWRpYSwgJGNvbHVtbk5hbWUpfVwiKSwgY29tbWEgKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRAaWYgJGdlbmVyYXRlLXByZWZpeC1jbGFzc2VzIGFuZCAoJHdoYXQgPT0gbnVsbCBvciBpbmRleCgkd2hhdCwgcHJlZml4KSBvciBpbmRleCgkd2hhdCwgZGVmYXVsdCkpIHtcblx0XHRcdFx0XHQkcHJlZml4LWNvbW1vbi1zZWxlY3RvciA6IGFwcGVuZCggJHByZWZpeC1jb21tb24tc2VsZWN0b3IsIHVucXVvdGUoXCIje19ncmlkbGVfY2xhc3NuYW1lKCRncmlkbGUtcHJlZml4LW5hbWUtcGF0dGVybiwgJG1lZGlhLCAkY29sdW1uTmFtZSl9XCIpLCBjb21tYSApO1xuXHRcdFx0XHR9XG5cdFx0XHRcdEBpZiAkZ2VuZXJhdGUtc3VmZml4LWNsYXNzZXMgYW5kICgkd2hhdCA9PSBudWxsIG9yIGluZGV4KCR3aGF0LCBzdWZmaXgpIG9yIGluZGV4KCR3aGF0LCBkZWZhdWx0KSkge1xuXHRcdFx0XHRcdCRzdWZmaXgtY29tbW9uLXNlbGVjdG9yIDogYXBwZW5kKCAkc3VmZml4LWNvbW1vbi1zZWxlY3RvciwgdW5xdW90ZShcIiN7X2dyaWRsZV9jbGFzc25hbWUoJGdyaWRsZS1zdWZmaXgtbmFtZS1wYXR0ZXJuLCAkbWVkaWEsICRjb2x1bW5OYW1lKX1cIiksIGNvbW1hICk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbiBcblx0Ly8gY29tbW9uIGNzcyA6XG5cdEBpZiAgJHdoYXQgPT0gbnVsbCBvciBpbmRleCgkd2hhdCwgZ3JpZCkgb3IgaW5kZXgoJHdoYXQsIGRlZmF1bHQpIHtcblx0XHQjeyRncmlkLWNvbW1vbi1zZWxlY3Rvcn0ge1xuXHRcdFx0QGluY2x1ZGUgX2dyaWRsZV9ncmlkX2NvbW1vbigpO1xuXHRcdH1cblx0fVxuXHRAaWYgICR3aGF0ID09IG51bGwgb3IgaW5kZXgoJHdoYXQsIHB1c2gpIG9yIGluZGV4KCR3aGF0LCBkZWZhdWx0KSB7XG5cdFx0I3skcHVzaC1jb21tb24tc2VsZWN0b3J9IHtcblx0XHRcdEBpbmNsdWRlIF9ncmlkbGVfcHVzaF9jb21tb24oKTtcblx0XHR9XG5cdH1cblx0QGlmICAkd2hhdCA9PSBudWxsIG9yIGluZGV4KCR3aGF0LCBwdWxsKSBvciBpbmRleCgkd2hhdCwgZGVmYXVsdCkge1xuXHRcdCN7JHB1bGwtY29tbW9uLXNlbGVjdG9yfSB7XG5cdFx0XHRAaW5jbHVkZSBfZ3JpZGxlX3B1bGxfY29tbW9uKCk7XG5cdFx0fVxuXHR9XG5cdEBpZiAgJHdoYXQgPT0gbnVsbCBvciBpbmRleCgkd2hhdCwgcHJlZml4KSBvciBpbmRleCgkd2hhdCwgZGVmYXVsdCkge1xuXHRcdCN7JHByZWZpeC1jb21tb24tc2VsZWN0b3J9IHtcblx0XHRcdEBpbmNsdWRlIF9ncmlkbGVfcHJlZml4X2NvbW1vbigpO1xuXHRcdH1cblx0fVxuXHRAaWYgICR3aGF0ID09IG51bGwgb3IgaW5kZXgoJHdoYXQsIHN1ZmZpeCkgb3IgaW5kZXgoJHdoYXQsIGRlZmF1bHQpIHtcblx0XHQjeyRzdWZmaXgtY29tbW9uLXNlbGVjdG9yfSB7XG5cdFx0XHRAaW5jbHVkZSBfZ3JpZGxlX3N1ZmZpeF9jb21tb24oKTtcblx0XHR9XG5cdH1cblxuXG5cdC8vIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdC8vIHwgTWVkaWEgcXVlcmllcyBjbGFzc2VzXG5cdC8vIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gXG5cdC8vIGdlbmVyYXRlIGFsbCBjbGFzc2VzIGZvciBkaWZmZXJlbnRzIG1lZGlhIHF1ZXJpZXMgOlxuXHRAZWFjaCAkc3RhdGVOYW1lLCAkc3RhdGUgaW4gJHN0YXRlcyB7XG5cdFx0XG5cdFx0Ly8gc2V0dXAgdmFycyA6XG5cdFx0JGNsYXNzZXMgOiBfZ3JpZGxlX2dldF92YXJfdmFsdWUoY2xhc3NlcywgJHN0YXRlKTtcblx0XHQkY29udGV4dCA6IF9ncmlkbGVfZ2V0X3Zhcl92YWx1ZShjb250ZXh0LCAkc3RhdGUpO1xuXHRcdCRuYW1lLW11bHRpcGxpY2F0b3IgOiBfZ3JpZGxlX2dldF92YXJfdmFsdWUobmFtZS1tdWx0aXBsaWNhdG9yLCAkc3RhdGUpO1xuXHRcdCRnZW5lcmF0ZS1wdXNoLWNsYXNzZXMgOiBfZ3JpZGxlX2dldF92YXJfdmFsdWUoZ2VuZXJhdGUtcHVzaC1jbGFzc2VzLCAkc3RhdGUpO1xuXHRcdCRnZW5lcmF0ZS1wdWxsLWNsYXNzZXMgOiBfZ3JpZGxlX2dldF92YXJfdmFsdWUoZ2VuZXJhdGUtcHVsbC1jbGFzc2VzLCAkc3RhdGUpO1xuXHRcdCRnZW5lcmF0ZS1wcmVmaXgtY2xhc3NlcyA6IF9ncmlkbGVfZ2V0X3Zhcl92YWx1ZShnZW5lcmF0ZS1wcmVmaXgtY2xhc3NlcywgJHN0YXRlKTtcblx0XHQkZ2VuZXJhdGUtc3VmZml4LWNsYXNzZXMgOiBfZ3JpZGxlX2dldF92YXJfdmFsdWUoZ2VuZXJhdGUtc3VmZml4LWNsYXNzZXMsICRzdGF0ZSk7XG5cdFx0JGdlbmVyYXRlLWhlbHBlcnMtY2xhc3NlcyA6IF9ncmlkbGVfZ2V0X3Zhcl92YWx1ZShnZW5lcmF0ZS1oZWxwZXJzLWNsYXNzZXMsICRzdGF0ZSk7XG5cblx0XHQvLyBnZW5lcmF0ZSBhbGwgbWVkaWEgcXVlcmllcyBncmlkIGNsYXNzZXMgOlxuXHRcdEBpZiAkY2xhc3NlcyA9PSB0cnVlIHtcblxuXHRcdFx0Ly8gcGFyZW50IGNvbW1vbiBjc3MgOlxuXHRcdFx0JHBhcmVudFNlbGVjdG9yIDogX2dyaWRsZV9jbGFzc25hbWUoJGdyaWRsZS1wYXJlbnQtbmFtZS1wYXR0ZXJuLCRzdGF0ZU5hbWUsbnVsbCk7XG5cdFx0XHQjeyRwYXJlbnRTZWxlY3Rvcn0ge1xuXHRcdFx0XHRAZXh0ZW5kICVncmlkbGUtY2xlYXJmaXg7XG5cdFx0XHRcdEBleHRlbmQgJWdyaWRsZS1wYXJlbnQtY29tbW9uO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBnZW5lcmF0ZSBhbGwgdGhlIGNsYXNzZXMgOlxuXHRcdFx0QGluY2x1ZGUgZ3JpZGxlX3N0YXRlKCRzdGF0ZU5hbWUsICRoYXMtcGFyZW50KSB7XG5cdFx0IFxuXHRcdFx0XHQvLyBnZXQgc3BlY2lhbHMgY29sdW1ucyA6XG5cdFx0XHRcdCRjb2x1bW5zTWFwIDogbWFwLW1lcmdlKCgpLCAkX2dyaWRsZV9jb2x1bW5zKTtcblxuXHRcdFx0XHQvLyByZWdpc3RlciBlYWNoIGRlZmF1bHQgY29sdW1ucyA6XG5cdFx0XHRcdEBmb3IgJGogZnJvbSAwIHRocm91Z2ggJGNvbnRleHQge1xuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdC8vIG5hbWUgOlxuXHRcdFx0XHRcdCRjb2x1bW5OYW1lIDogXCIjeyRqKiRuYW1lLW11bHRpcGxpY2F0b3J9XCI7XG5cdFx0XHRcdFx0JGNvbHVtbldpZHRoIDogJGogKiAkbmFtZS1tdWx0aXBsaWNhdG9yO1xuXG5cdFx0XHRcdFx0Ly8gLy8gY3JlYXRlIGEgY29sdW1uIDpcblx0XHRcdFx0XHQkY29sIDogX2dyaWRsZV9jcmVhdGVfY29sdW1uKCRjb2x1bW5OYW1lLCAkY29sdW1uV2lkdGgsICRjb250ZXh0LCAkbmFtZS1tdWx0aXBsaWNhdG9yKTtcblxuXHRcdFx0XHRcdC8vIC8vIGFkZCBjb2x1bW4gaW4gY29sdW1ucyBtYXAgOlxuXHRcdFx0XHRcdCRjb2x1bW5zTWFwIDogbWFwLXNldCgkY29sdW1uc01hcCwgJGNvbHVtbk5hbWUsICAkY29sKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIGdlbmVyYXRlIGFsbCBjbGFzc2VzIGZvciBjb2x1bW5zIDpcblx0XHRcdFx0QGVhY2ggJGNvbHVtbk5hbWUsICRjb2x1bW4gaW4gJGNvbHVtbnNNYXAge1xuXG5cdFx0XHRcdFx0Ly8gdmFyaWFibGVzIDpcblx0XHRcdFx0XHQkY29sdW1uc0NvdW50IDogbWFwLWdldCgkY29sdW1uLCBjb2x1bW5zKTtcblx0XHRcdFx0XHQkY29sdW1uc0NvbnRleHQgOiBtYXAtZ2V0KCRjb2x1bW4sIGNvbnRleHQpO1xuXHRcdFx0XHRcdCRjb2x1bW5zTmFtZU11bHRpcGxpY2F0b3IgOiBtYXAtZ2V0KCRjb2x1bW4sIG5hbWUtbXVsdGlwbGljYXRvcik7XG5cblx0XHRcdFx0XHQvLyBleHRlbmQgY29udGV4dCBpbiBzdGF0ZSAoZm9yIGNvbHVtbnMpIDpcblx0XHRcdFx0XHQkZXh0ZW5kZWRTdGF0ZSA6IG1hcC1tZXJnZSgkc3RhdGUsIChcblx0XHRcdFx0XHRcdGNvbnRleHQgOiAkY29sdW1uc0NvbnRleHQsXG5cdFx0XHRcdFx0XHRuYW1lLW11bHRpcGxpY2F0b3IgOiAkY29sdW1uc05hbWVNdWx0aXBsaWNhdG9yIC8vIGluamVjdCB0aGUgbmFtZSBtdWx0aXBsaWNhdG9yIGhlcmUgZ2V0dGVkIGZyb20gY29sdW1uIHRvIGhhbmRsZSBjdXN0b20gcmVnaXN0ZXJlZCBjb2x1bW5zXG5cdFx0XHRcdFx0KSk7XG5cblx0XHRcdFx0XHQvLyBjbGFzc2VzIDpcblx0XHRcdFx0XHRAaWYgJHdoYXQgPT0gbnVsbCBvciBpbmRleCgkd2hhdCwgZ3JpZCkgb3IgaW5kZXgoJHdoYXQsIGRlZmF1bHQpIHtcblx0XHRcdFx0XHRcdCN7X2dyaWRsZV9jbGFzc25hbWUoJGdyaWRsZS1ncmlkLW5hbWUtcGF0dGVybiwgJHN0YXRlTmFtZSwgJGNvbHVtbk5hbWUpfSB7XG5cdFx0XHRcdFx0XHRcdEBpbmNsdWRlIF9ncmlkbGUoJGNvbHVtbnNDb3VudCwgJGV4dGVuZGVkU3RhdGUpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRAaWYgJGdlbmVyYXRlLXB1c2gtY2xhc3NlcyA9PSB0cnVlIGFuZCAoJHdoYXQgPT0gbnVsbCBvciBpbmRleCgkd2hhdCwgcHVzaCkgb3IgaW5kZXgoJHdoYXQsIGRlZmF1bHQpKSB7XG5cdFx0XHRcdFx0XHQje19ncmlkbGVfY2xhc3NuYW1lKCRncmlkbGUtcHVzaC1uYW1lLXBhdHRlcm4sICRzdGF0ZU5hbWUsICRjb2x1bW5OYW1lKX0ge1xuXHRcdFx0XHRcdFx0XHRAaW5jbHVkZSBfZ3JpZGxlX3B1c2goJGNvbHVtbnNDb3VudCwgJGV4dGVuZGVkU3RhdGUpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRAaWYgJGdlbmVyYXRlLXB1bGwtY2xhc3NlcyA9PSB0cnVlIGFuZCAoJHdoYXQgPT0gbnVsbCBvciBpbmRleCgkd2hhdCwgcHVsbCkgb3IgaW5kZXgoJHdoYXQsIGRlZmF1bHQpKSB7XG5cdFx0XHRcdFx0XHQje19ncmlkbGVfY2xhc3NuYW1lKCRncmlkbGUtcHVsbC1uYW1lLXBhdHRlcm4sICRzdGF0ZU5hbWUsICRjb2x1bW5OYW1lKX0ge1xuXHRcdFx0XHRcdFx0XHRAaW5jbHVkZSBfZ3JpZGxlX3B1bGwoJGNvbHVtbnNDb3VudCwgJGV4dGVuZGVkU3RhdGUpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRAaWYgJGdlbmVyYXRlLXByZWZpeC1jbGFzc2VzID09IHRydWUgYW5kICgkd2hhdCA9PSBudWxsIG9yIGluZGV4KCR3aGF0LCBwcmVmaXgpIG9yIGluZGV4KCR3aGF0LCBkZWZhdWx0KSkge1xuXHRcdFx0XHRcdFx0I3tfZ3JpZGxlX2NsYXNzbmFtZSgkZ3JpZGxlLXByZWZpeC1uYW1lLXBhdHRlcm4sICRzdGF0ZU5hbWUsICRjb2x1bW5OYW1lKX0ge1xuXHRcdFx0XHRcdFx0XHRAaW5jbHVkZSBfZ3JpZGxlX3ByZWZpeCgkY29sdW1uc0NvdW50LCAkZXh0ZW5kZWRTdGF0ZSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdEBpZiAkZ2VuZXJhdGUtc3VmZml4LWNsYXNzZXMgPT0gdHJ1ZSBhbmQgKCR3aGF0ID09IG51bGwgb3IgaW5kZXgoJHdoYXQsIHN1ZmZpeCkgb3IgaW5kZXgoJHdoYXQsIGRlZmF1bHQpKSB7XG5cdFx0XHRcdFx0XHQje19ncmlkbGVfY2xhc3NuYW1lKCRncmlkbGUtc3VmZml4LW5hbWUtcGF0dGVybiwgJHN0YXRlTmFtZSwgJGNvbHVtbk5hbWUpfSB7XG5cdFx0XHRcdFx0XHRcdEBpbmNsdWRlIF9ncmlkbGVfc3VmZml4KCRjb2x1bW5zQ291bnQsICRleHRlbmRlZFN0YXRlKTtcblx0XHRcdFx0XHRcdH0gICBcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cbiBcblx0XHRcdFx0Ly8gbWVkaWEgcXVlcmllcyBoZWxwZXJzIGNsYXNzZXMgOlxuXHRcdFx0XHRAaWYgJGdlbmVyYXRlLWhlbHBlcnMtY2xhc3NlcyA9PSB0cnVlIHtcblx0XHRcdFx0XHRAaW5jbHVkZSBfZ3JpZGxlX2dlbmVyYXRlX2hlbHBlcl9jbGFzc2VzKCRzdGF0ZU5hbWUsICR3aGF0KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufSIsIi8vIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHwgQ29tbW9uIG1peGluc1xuLy8gfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AbWl4aW4gX2dyaWRsZV9jb250YWluZXJfY29tbW9uKFxuXHQkc3RhdGUgOiBkZWZhdWx0XG4pIHtcblx0QGV4dGVuZCAlZ3JpZGxlLXNpbXBsZS1jbGVhcmZpeDtcblx0QGV4dGVuZCAlZ3JpZGxlLWNvbnRhaW5lci1jb21tb247XG5cdC8vIGRlYnVnIHBhcnRcblx0JGRlYnVnIDogX2dyaWRsZV9nZXRfdmFyX3ZhbHVlKGRlYnVnLCAkc3RhdGUpO1xuXHRAaWYgKCRkZWJ1ZyA9PSB0cnVlKSB7XG5cdFx0I3skZ3JpZGxlLWRlYnVnLXNlbGVjdG9yfSB7XG5cdFx0XHRAZXh0ZW5kICVncmlkbGUtY29udGFpbmVyLWRlYnVnLWNvbW1vbjtcblx0XHR9XG5cdH1cbn1cbiRfZ3JpZGxlLWFscmVhZHktZ2VuZXJhdGVkIDogKCk7XG5AbWl4aW4gX2dyaWRsZV9ncmlkX2NvbW1vbigpIHtcblx0QGV4dGVuZCAlZ3JpZGxlLWdyaWQtY29tbW9uO1xuXG5cdC8vIGRlZmF1bHQgdmFsdWVzXG5cdCRkZWZhdWx0LWd1dHRlci13aWR0aCA6IF9ncmlkbGVfZ2V0X3Zhcl92YWx1ZShndXR0ZXItd2lkdGgsIGRlZmF1bHQpO1xuXHQkZGVmYXVsdC1kaXJlY3Rpb24gOiBfZ3JpZGxlX2dldF92YXJfdmFsdWUoZGlyZWN0aW9uLCBkZWZhdWx0KTtcblxuXHQvLyBsb29wIG9uIGVhY2ggc3RhdGVzIDpcblx0QGVhY2ggJHN0YXRlTmFtZSwgJHN0YXRlIGluICRfZ3JpZGxlLXN0YXRlc1xuXHR7XG5cdFx0Ly8gc2VsZWN0b3Iga2V5IHRvIGJlIHVzZWQgaW4gbWFwXG5cdFx0JGtleSA6IFwiI3skc3RhdGVOYW1lfSAjeyZ9XCI7XG5cblx0XHQvLyBjaGVjayBpZiBhbHJlYWR5IGdlbmVyYXRlZCBjbGFzc2VzXG5cdFx0JGFscmVhZHktZ2VuZXJhdGVkIDogbWFwLWhhcy1rZXkoJF9ncmlkbGUtYWxyZWFkeS1nZW5lcmF0ZWQsICRrZXkpO1xuXG5cdFx0Ly8gdmFyc1xuXHRcdCRkaXJlY3Rpb24gOiBfZ3JpZGxlX2dldF92YXJfdmFsdWUoZGlyZWN0aW9uLCAkc3RhdGUpO1xuXHRcdCRjbGFzc2VzIDogX2dyaWRsZV9nZXRfdmFyX3ZhbHVlKGNsYXNzZXMsICRzdGF0ZSk7XG5cdFx0JGd1dHRlci13aWR0aCA6IF9ncmlkbGVfZ2V0X3Zhcl92YWx1ZShndXR0ZXItd2lkdGgsICRzdGF0ZSk7XG5cdFx0JGRlYnVnIDogX2dyaWRsZV9nZXRfdmFyX3ZhbHVlKGRlYnVnLCAkc3RhdGUpO1xuXG5cdFx0QGlmICRhbHJlYWR5LWdlbmVyYXRlZCAhPSB0cnVlIGFuZCAkY2xhc3NlcyBhbmQgKCAoJGRlZmF1bHQtZGlyZWN0aW9uICE9ICRkaXJlY3Rpb24gb3IgJGRlZmF1bHQtZ3V0dGVyLXdpZHRoICE9ICRndXR0ZXItd2lkdGgpIG9yICRzdGF0ZU5hbWUgPT0gZGVmYXVsdClcblx0XHR7XG5cdFx0XHQvLyBzZXQgdGhhdCB3ZSBoYXZlIGFscmVhZHkgZ2VuZXJhdGVkIGNzcyBmb3IgdGhpcyBzZWxlY3RvclxuXHRcdFx0JF9ncmlkbGUtYWxyZWFkeS1nZW5lcmF0ZWQgOiBtYXAtc2V0KCRfZ3JpZGxlLWFscmVhZHktZ2VuZXJhdGVkLCAka2V5LCB0cnVlKSAhZ2xvYmFsO1xuXHRcdFx0XG5cdFx0XHQvLyBnZW5lcmF0ZSB0aGUgY3NzIGZvciB0aGlzIGVsZW1lbnRcblx0XHRcdEBpbmNsdWRlIGdyaWRsZV9zdGF0ZSgkc3RhdGUpIHtcblx0XHRcdFx0QGlmICRkaXJlY3Rpb24gIT0gJGRlZmF1bHQtZGlyZWN0aW9uIG9yICRzdGF0ZU5hbWUgPT0gZGVmYXVsdCB7XG5cdFx0XHRcdFx0Ly8gY29udGVudCA6IFwiI3ska2V5fVwiO1xuXHRcdFx0XHRcdEBpZiAkZGlyZWN0aW9uID09IHJ0bCB7XG5cdFx0XHRcdFx0XHRmbG9hdDpyaWdodDtcblx0XHRcdFx0XHRcdGRpcmVjdGlvbjpydGw7XG5cdFx0XHRcdFx0fSBAZWxzZSB7XG5cdFx0XHRcdFx0XHRmbG9hdDpsZWZ0O1xuXHRcdFx0XHRcdFx0ZGlyZWN0aW9uOmx0cjtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0QGlmICRndXR0ZXItd2lkdGggIT0gJGRlZmF1bHQtZ3V0dGVyLXdpZHRoIG9yICRzdGF0ZU5hbWUgPT0gZGVmYXVsdCB7XG5cdFx0XHRcdFx0cGFkZGluZy1sZWZ0OiRndXR0ZXItd2lkdGgvMjtcblx0XHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiRndXR0ZXItd2lkdGgvMjtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHRAaWYgJGRlYnVnID09IHRydWUge1xuXHRcdFx0XHQjeyRncmlkbGUtZGVidWctc2VsZWN0b3J9IHtcblx0XHRcdFx0XHRAZXh0ZW5kICVncmlkbGUtZ3JpZC1kZWJ1Zy1jb21tb247XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbkBtaXhpbiBfZ3JpZGxlX3BhcmVudF9jb21tb24oKSB7XG5cdEBleHRlbmQgJWdyaWRsZS1jbGVhcmZpeDtcblx0QGV4dGVuZCAlZ3JpZGxlLXBhcmVudC1jb21tb247XG59XG5AbWl4aW4gX2dyaWRsZV9wdXNoX2NvbW1vbihcblx0JHN0YXRlIDogZGVmYXVsdFxuKSB7XG5cdCRkZWJ1ZyA6IF9ncmlkbGVfZ2V0X3Zhcl92YWx1ZShkZWJ1ZywgJHN0YXRlKTtcblxuXHQvLyBleHRlbmQgY29tbW9uIDpcblx0QGV4dGVuZCAlZ3JpZGxlLXB1c2gtcHVsbC1jb21tb247XG5cdEBpZiAkZGVidWcgPT0gdHJ1ZSB7XG5cdFx0I3skZ3JpZGxlLWRlYnVnLXNlbGVjdG9yfSB7XG5cdFx0XHRAZXh0ZW5kICVncmlkbGUtcHVzaC1wdWxsLWRlYnVnLWJhY2tncm91bmQtY29tbW9uO1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjojZjRlZmRmICFpbXBvcnRhbnQ7XG5cdFx0fVxuXHR9XG59XG5AbWl4aW4gX2dyaWRsZV9wdWxsX2NvbW1vbihcblx0JHN0YXRlIDogZGVmYXVsdFxuKSB7XG5cdCRkZWJ1ZyA6IF9ncmlkbGVfZ2V0X3Zhcl92YWx1ZShkZWJ1ZywgJHN0YXRlKTtcblxuXHRAZXh0ZW5kICVncmlkbGUtcHVzaC1wdWxsLWNvbW1vbjtcblx0QGlmICRkZWJ1ZyA9PSB0cnVlIHtcblx0XHQjeyRncmlkbGUtZGVidWctc2VsZWN0b3J9IHtcblx0XHRcdEBleHRlbmQgJWdyaWRsZS1wdXNoLXB1bGwtZGVidWctYmFja2dyb3VuZC1jb21tb247XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiNjZmU0ZDUgIWltcG9ydGFudDtcblx0XHR9XG5cdH1cbn1cbkBtaXhpbiBfZ3JpZGxlX3ByZWZpeF9jb21tb24oXG5cdCRzdGF0ZSA6IGRlZmF1bHRcbikge1xuXHQkZGVidWcgOiBfZ3JpZGxlX2dldF92YXJfdmFsdWUoZGVidWcsICRzdGF0ZSk7XG5cdEBpZiAkZGVidWcgPT0gdHJ1ZSB7XG5cdFx0I3skZ3JpZGxlLWRlYnVnLXNlbGVjdG9yfSB7XG5cdFx0XHRAZXh0ZW5kICVncmlkbGUtcHJlZml4LWRlYnVnLWNvbW1vbjtcblx0XHR9XG5cdH1cbn1cbkBtaXhpbiBfZ3JpZGxlX3N1ZmZpeF9jb21tb24oXG5cdCRzdGF0ZSA6IGRlZmF1bHRcbikge1xuXHQkZGVidWcgOiBfZ3JpZGxlX2dldF92YXJfdmFsdWUoZGVidWcsICRzdGF0ZSk7XG5cdEBpZiAkZGVidWcgPT0gdHJ1ZSB7XG5cdFx0I3skZ3JpZGxlLWRlYnVnLXNlbGVjdG9yfSB7XG5cdFx0XHRAZXh0ZW5kICVncmlkbGUtc3VmZml4LWRlYnVnLWNvbW1vbjtcblx0XHR9XG5cdH1cbn0iLCIvLyBHcmlkXG4vL1xuLy8gTWFya3VwOiBncmlkLmh0bWxcbi8vXG4vLyBTdHlsZSBndWlkZTogOC4wXG4kZ3JpZGxlLWNsYXNzLXByZWZpeDogJ3NjJztcblxuQGltcG9ydCBcImdyaWRsZS9zYXNzL2dyaWRsZS9ncmlkbGVcIjtcblxuQGluY2x1ZGUgZ3JpZGxlX3NldHVwKChcbiAgY29udGV4dDogMjQsXG4gIGd1dHRlci13aWR0aDogMzJweFxuKSk7XG5cbkBpbmNsdWRlIGdyaWRsZV9nZW5lcmF0ZV9jbGFzc2VzKCk7XG5cbi8vIENhcmQgR3JpZFxuLy9cbi8vIE1hcmt1cDogY2FyZC1ncmlkLmh0bWxcbi8vXG4vLyBTdHlsZSBndWlkZTogOC4xXG4uc2MtcHJvZHVjdC1ncmlkIHtcbiAgd2lkdGg6IDExNDBweDtcbiAgLnJlZmluZW1lbnRzIHtcbiAgICBAaW5jbHVkZSBncmlkbGUoNik7XG4gICAgdHJhbnNpdGlvbjogYWxsIDMwMG1zIGVhc2U7XG4gIH1cbiAgLnByb2R1Y3RzIHtcbiAgICBAaW5jbHVkZSBncmlkbGUoMTgpO1xuICAgIEBpbmNsdWRlIGdyaWRsZV9wYXJlbnQoKTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMzAwbXMgZWFzZTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCwwLDApO1xuXG4gICAgLnNjLXByb2R1Y3QtY2FyZCB7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMzAwbXMgZWFzZTtcbiAgICAgIC8vIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwLDAsMCk7XG4gICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZGNkY2RjO1xuXG5cbiAgICAgIC5zYy1jYXJkLWZsYWcge1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBncmlkbGUoOCk7XG5cbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGNkY2RjO1xuXG4gICAgICAmOm50aC1jaGlsZCgzbiszKSB7XG4gICAgICAgIGJvcmRlci1yaWdodDogMDtcbiAgICAgIH1cblxuICAgICAgZmlndXJlIGltZyB7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAzMDBtcyBlYXNlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCwwLDApO1xuICAgICAgICB3aWR0aDogMjIycHg7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJi5jb2xsYXBzZWQge1xuICAgIC5yZWZpbmVtZW50cyB7XG4gICAgICAvLyBAaW5jbHVkZSBncmlkbGUoMCk7XG4gICAgICB3aWR0aDogMDtcbiAgICAgIGhlaWdodDogMDtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIC8vIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB9XG4gICAgLnByb2R1Y3RzIHtcbiAgICAgIEBpbmNsdWRlIGdyaWRsZSgyNCk7XG4gICAgICBhbmltYXRpb246IGNvbGxhcHNlLXJlZmluZW1lbnRzIDMwMG1zIGVhc2U7XG5cbiAgICAgIC5zYy1wcm9kdWN0LWNhcmQge1xuICAgICAgICBoZWlnaHQ6IDQ1MHB4O1xuXG4gICAgICAgIGZpZ3VyZSB7XG4gICAgICAgICAgaGVpZ2h0OiAzMzBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIGZpZ3VyZSBpbWcge1xuICAgICAgICAgIHdpZHRoOiAyOTBweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGNvbGxhcHNlLXJlZmluZW1lbnRzIHtcbiAgZnJvbSB7IG1hcmdpbi1sZWZ0OiAyNSU7IH1cbiAgdG8geyBtYXJnaW4tbGVmdDogMDt9XG59XG4iLCIvLyBJbnB1dHNcbi8vXG4vLyBJbnB1dHMgYWxsb3cgdXNlcnMgdG8gc3VwcGx5IGRhdGEgdG8gYW4gYXBwbGljYXRpb24uXG4vL1xuLy8gRXhwaXJlbWVudGFsOiBXSVBcbi8vXG4vLyBNYXJrdXA6IGlucHV0Lmh0bWxcbi8vXG4vLyBTdHlsZSBndWlkZTogMy4wXG5cbi5zYy1pbnB1dCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNhYWE7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgcGFkZGluZzogNHB4IDhweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAmOmFjdGl2ZSwgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxuXG4gICYuc2MtaGlkZS1zcGlubmVyIHtcbiAgICAtbW96LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcblxuICAgICY6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24sXG4gICAgJjo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiB7XG4gICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuICB9XG59XG5cbi8vIE51bWVyaWMgaW5wdXRcbi8vXG4vLyAuc2MtaGlkZS1zcGlubmVyIC0gSGlkZSB0aGUgYnJvd3NlciBkZWZpbmVkIHNwaW5uZXJcbi8vXG4vLyBNYXJrdXA6IG51bWJlci1pbnB1dC5odG1sXG4vL1xuLy8gU3R5bGUgZ3VpZGU6IDMuMVxuIiwiLy8gU3BlYyBUYWJsZVxuLy9cbi8vIE1hcmt1cDogdGFibGUuaHRtbFxuLy9cbi8vIFN0eWxlIGd1aWRlOiA1LjBcblxuLnNjLXNwZWMtdGFibGUge1xuICB3aWR0aDogMTAwJTtcblxuICB0aCB7XG4gICAgQGluY2x1ZGUgZm9udHNpemUoMTRweCwgMTdweCk7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdGV4dC1ib3R0b207XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBwYWRkaW5nOiAzZW0gMmVtIDAgMWVtO1xuICAgIHdoaXRlLXNwYWNlOiBwcmU7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICBjb2xvcjogIzg3ODc4NztcbiAgfVxuXG4gIHRkIHtcbiAgICBAZXh0ZW5kICVzZXJpZjtcbiAgICBAaW5jbHVkZSBmb250c2l6ZSgzMnB4LCAzOHB4KTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0ZXh0LWJvdHRvbTtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIHRyIHtcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgI0YyRjFFRDtcbiAgfVxufVxuIiwiLypcblNDU1MgdmFyaWFibGVzIGFyZSBpbmZvcm1hdGlvbiBhYm91dCBpY29uJ3MgY29tcGlsZWQgc3RhdGUsIHN0b3JlZCB1bmRlciBpdHMgb3JpZ2luYWwgZmlsZSBuYW1lXG5cbi5pY29uLWhvbWUge1xuICB3aWR0aDogJGljb24taG9tZS13aWR0aDtcbn1cblxuVGhlIGxhcmdlIGFycmF5LWxpa2UgdmFyaWFibGVzIGNvbnRhaW4gYWxsIGluZm9ybWF0aW9uIGFib3V0IGEgc2luZ2xlIGljb25cbiRpY29uLWhvbWU6IHggeSBvZmZzZXRfeCBvZmZzZXRfeSB3aWR0aCBoZWlnaHQgdG90YWxfd2lkdGggdG90YWxfaGVpZ2h0IGltYWdlX3BhdGg7XG5cbkF0IHRoZSBib3R0b20gb2YgdGhpcyBzZWN0aW9uLCB3ZSBwcm92aWRlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzcHJpdGVzaGVldCBpdHNlbGZcbiRzcHJpdGVzaGVldDogd2lkdGggaGVpZ2h0IGltYWdlICRzcHJpdGVzaGVldC1zcHJpdGVzO1xuKi9cbiQtY2FydC1uYW1lOiAnQ2FydCc7XG4kLWNhcnQteDogMzI5cHg7XG4kLWNhcnQteTogMzZweDtcbiQtY2FydC1vZmZzZXQteDogLTMyOXB4O1xuJC1jYXJ0LW9mZnNldC15OiAtMzZweDtcbiQtY2FydC13aWR0aDogNDRweDtcbiQtY2FydC1oZWlnaHQ6IDQ0cHg7XG4kLWNhcnQtdG90YWwtd2lkdGg6IDM4OXB4O1xuJC1jYXJ0LXRvdGFsLWhlaWdodDogMjg1cHg7XG4kLWNhcnQtaW1hZ2U6ICdzcHJpdGUucG5nJztcbiQtY2FydDogKDMyOXB4LCAzNnB4LCAtMzI5cHgsIC0zNnB4LCA0NHB4LCA0NHB4LCAzODlweCwgMjg1cHgsICdzcHJpdGUucG5nJywgJ0NhcnQnLCApO1xuJC1sb2dvLW5hbWU6ICdMb2dvJztcbiQtbG9nby14OiAyMjNweDtcbiQtbG9nby15OiAwcHg7XG4kLWxvZ28tb2Zmc2V0LXg6IC0yMjNweDtcbiQtbG9nby1vZmZzZXQteTogMHB4O1xuJC1sb2dvLXdpZHRoOiAxNjZweDtcbiQtbG9nby1oZWlnaHQ6IDM2cHg7XG4kLWxvZ28tdG90YWwtd2lkdGg6IDM4OXB4O1xuJC1sb2dvLXRvdGFsLWhlaWdodDogMjg1cHg7XG4kLWxvZ28taW1hZ2U6ICdzcHJpdGUucG5nJztcbiQtbG9nbzogKDIyM3B4LCAwcHgsIC0yMjNweCwgMHB4LCAxNjZweCwgMzZweCwgMzg5cHgsIDI4NXB4LCAnc3ByaXRlLnBuZycsICdMb2dvJywgKTtcbiRhZGQtdG8tbGlzdC1uYW1lOiAnYWRkLXRvLWxpc3QnO1xuJGFkZC10by1saXN0LXg6IDIyM3B4O1xuJGFkZC10by1saXN0LXk6IDExNnB4O1xuJGFkZC10by1saXN0LW9mZnNldC14OiAtMjIzcHg7XG4kYWRkLXRvLWxpc3Qtb2Zmc2V0LXk6IC0xMTZweDtcbiRhZGQtdG8tbGlzdC13aWR0aDogMzNweDtcbiRhZGQtdG8tbGlzdC1oZWlnaHQ6IDMzcHg7XG4kYWRkLXRvLWxpc3QtdG90YWwtd2lkdGg6IDM4OXB4O1xuJGFkZC10by1saXN0LXRvdGFsLWhlaWdodDogMjg1cHg7XG4kYWRkLXRvLWxpc3QtaW1hZ2U6ICdzcHJpdGUucG5nJztcbiRhZGQtdG8tbGlzdDogKDIyM3B4LCAxMTZweCwgLTIyM3B4LCAtMTE2cHgsIDMzcHgsIDMzcHgsIDM4OXB4LCAyODVweCwgJ3Nwcml0ZS5wbmcnLCAnYWRkLXRvLWxpc3QnLCApO1xuJGFycm93LWdyZWVuLWJnLW5hbWU6ICdhcnJvdy1ncmVlbi1iZyc7XG4kYXJyb3ctZ3JlZW4tYmcteDogMzI5cHg7XG4kYXJyb3ctZ3JlZW4tYmcteTogODBweDtcbiRhcnJvdy1ncmVlbi1iZy1vZmZzZXQteDogLTMyOXB4O1xuJGFycm93LWdyZWVuLWJnLW9mZnNldC15OiAtODBweDtcbiRhcnJvdy1ncmVlbi1iZy13aWR0aDogMzNweDtcbiRhcnJvdy1ncmVlbi1iZy1oZWlnaHQ6IDMzcHg7XG4kYXJyb3ctZ3JlZW4tYmctdG90YWwtd2lkdGg6IDM4OXB4O1xuJGFycm93LWdyZWVuLWJnLXRvdGFsLWhlaWdodDogMjg1cHg7XG4kYXJyb3ctZ3JlZW4tYmctaW1hZ2U6ICdzcHJpdGUucG5nJztcbiRhcnJvdy1ncmVlbi1iZzogKDMyOXB4LCA4MHB4LCAtMzI5cHgsIC04MHB4LCAzM3B4LCAzM3B4LCAzODlweCwgMjg1cHgsICdzcHJpdGUucG5nJywgJ2Fycm93LWdyZWVuLWJnJywgKTtcbiRhcnJvdy1ncmVlbi1uYW1lOiAnYXJyb3ctZ3JlZW4nO1xuJGFycm93LWdyZWVuLXg6IDI3MXB4O1xuJGFycm93LWdyZWVuLXk6IDE0OXB4O1xuJGFycm93LWdyZWVuLW9mZnNldC14OiAtMjcxcHg7XG4kYXJyb3ctZ3JlZW4tb2Zmc2V0LXk6IC0xNDlweDtcbiRhcnJvdy1ncmVlbi13aWR0aDogMTdweDtcbiRhcnJvdy1ncmVlbi1oZWlnaHQ6IDE0cHg7XG4kYXJyb3ctZ3JlZW4tdG90YWwtd2lkdGg6IDM4OXB4O1xuJGFycm93LWdyZWVuLXRvdGFsLWhlaWdodDogMjg1cHg7XG4kYXJyb3ctZ3JlZW4taW1hZ2U6ICdzcHJpdGUucG5nJztcbiRhcnJvdy1ncmVlbjogKDI3MXB4LCAxNDlweCwgLTI3MXB4LCAtMTQ5cHgsIDE3cHgsIDE0cHgsIDM4OXB4LCAyODVweCwgJ3Nwcml0ZS5wbmcnLCAnYXJyb3ctZ3JlZW4nLCApO1xuJGFycm93LWdyZXktbmFtZTogJ2Fycm93LWdyZXknO1xuJGFycm93LWdyZXkteDogMjMzcHg7XG4kYXJyb3ctZ3JleS15OiAxNjVweDtcbiRhcnJvdy1ncmV5LW9mZnNldC14OiAtMjMzcHg7XG4kYXJyb3ctZ3JleS1vZmZzZXQteTogLTE2NXB4O1xuJGFycm93LWdyZXktd2lkdGg6IDhweDtcbiRhcnJvdy1ncmV5LWhlaWdodDogMTRweDtcbiRhcnJvdy1ncmV5LXRvdGFsLXdpZHRoOiAzODlweDtcbiRhcnJvdy1ncmV5LXRvdGFsLWhlaWdodDogMjg1cHg7XG4kYXJyb3ctZ3JleS1pbWFnZTogJ3Nwcml0ZS5wbmcnO1xuJGFycm93LWdyZXk6ICgyMzNweCwgMTY1cHgsIC0yMzNweCwgLTE2NXB4LCA4cHgsIDE0cHgsIDM4OXB4LCAyODVweCwgJ3Nwcml0ZS5wbmcnLCAnYXJyb3ctZ3JleScsICk7XG4kYXJyb3ctaGItbHQtbmFtZTogJ2Fycm93LWhiLWx0JztcbiRhcnJvdy1oYi1sdC14OiAyMjNweDtcbiRhcnJvdy1oYi1sdC15OiAzNnB4O1xuJGFycm93LWhiLWx0LW9mZnNldC14OiAtMjIzcHg7XG4kYXJyb3ctaGItbHQtb2Zmc2V0LXk6IC0zNnB4O1xuJGFycm93LWhiLWx0LXdpZHRoOiA1M3B4O1xuJGFycm93LWhiLWx0LWhlaWdodDogODBweDtcbiRhcnJvdy1oYi1sdC10b3RhbC13aWR0aDogMzg5cHg7XG4kYXJyb3ctaGItbHQtdG90YWwtaGVpZ2h0OiAyODVweDtcbiRhcnJvdy1oYi1sdC1pbWFnZTogJ3Nwcml0ZS5wbmcnO1xuJGFycm93LWhiLWx0OiAoMjIzcHgsIDM2cHgsIC0yMjNweCwgLTM2cHgsIDUzcHgsIDgwcHgsIDM4OXB4LCAyODVweCwgJ3Nwcml0ZS5wbmcnLCAnYXJyb3ctaGItbHQnLCApO1xuJGFycm93LWhiLXJ0LW5hbWU6ICdhcnJvdy1oYi1ydCc7XG4kYXJyb3ctaGItcnQteDogMjc2cHg7XG4kYXJyb3ctaGItcnQteTogMzZweDtcbiRhcnJvdy1oYi1ydC1vZmZzZXQteDogLTI3NnB4O1xuJGFycm93LWhiLXJ0LW9mZnNldC15OiAtMzZweDtcbiRhcnJvdy1oYi1ydC13aWR0aDogNTNweDtcbiRhcnJvdy1oYi1ydC1oZWlnaHQ6IDgwcHg7XG4kYXJyb3ctaGItcnQtdG90YWwtd2lkdGg6IDM4OXB4O1xuJGFycm93LWhiLXJ0LXRvdGFsLWhlaWdodDogMjg1cHg7XG4kYXJyb3ctaGItcnQtaW1hZ2U6ICdzcHJpdGUucG5nJztcbiRhcnJvdy1oYi1ydDogKDI3NnB4LCAzNnB4LCAtMjc2cHgsIC0zNnB4LCA1M3B4LCA4MHB4LCAzODlweCwgMjg1cHgsICdzcHJpdGUucG5nJywgJ2Fycm93LWhiLXJ0JywgKTtcbiRiYWNrLWNoZXZyb24tbmFtZTogJ2JhY2stY2hldnJvbic7XG4kYmFjay1jaGV2cm9uLXg6IDM2MnB4O1xuJGJhY2stY2hldnJvbi15OiAxMDNweDtcbiRiYWNrLWNoZXZyb24tb2Zmc2V0LXg6IC0zNjJweDtcbiRiYWNrLWNoZXZyb24tb2Zmc2V0LXk6IC0xMDNweDtcbiRiYWNrLWNoZXZyb24td2lkdGg6IDZweDtcbiRiYWNrLWNoZXZyb24taGVpZ2h0OiAxMHB4O1xuJGJhY2stY2hldnJvbi10b3RhbC13aWR0aDogMzg5cHg7XG4kYmFjay1jaGV2cm9uLXRvdGFsLWhlaWdodDogMjg1cHg7XG4kYmFjay1jaGV2cm9uLWltYWdlOiAnc3ByaXRlLnBuZyc7XG4kYmFjay1jaGV2cm9uOiAoMzYycHgsIDEwM3B4LCAtMzYycHgsIC0xMDNweCwgNnB4LCAxMHB4LCAzODlweCwgMjg1cHgsICdzcHJpdGUucG5nJywgJ2JhY2stY2hldnJvbicsICk7XG4kY2FyZXQtZG93bi1ncmVlbi1uYW1lOiAnY2FyZXQtZG93bi1ncmVlbic7XG4kY2FyZXQtZG93bi1ncmVlbi14OiAzNjhweDtcbiRjYXJldC1kb3duLWdyZWVuLXk6IDEwM3B4O1xuJGNhcmV0LWRvd24tZ3JlZW4tb2Zmc2V0LXg6IC0zNjhweDtcbiRjYXJldC1kb3duLWdyZWVuLW9mZnNldC15OiAtMTAzcHg7XG4kY2FyZXQtZG93bi1ncmVlbi13aWR0aDogOHB4O1xuJGNhcmV0LWRvd24tZ3JlZW4taGVpZ2h0OiA1cHg7XG4kY2FyZXQtZG93bi1ncmVlbi10b3RhbC13aWR0aDogMzg5cHg7XG4kY2FyZXQtZG93bi1ncmVlbi10b3RhbC1oZWlnaHQ6IDI4NXB4O1xuJGNhcmV0LWRvd24tZ3JlZW4taW1hZ2U6ICdzcHJpdGUucG5nJztcbiRjYXJldC1kb3duLWdyZWVuOiAoMzY4cHgsIDEwM3B4LCAtMzY4cHgsIC0xMDNweCwgOHB4LCA1cHgsIDM4OXB4LCAyODVweCwgJ3Nwcml0ZS5wbmcnLCAnY2FyZXQtZG93bi1ncmVlbicsICk7XG4kY2FyZXQtZG93bi1yZWQtbmFtZTogJ2NhcmV0LWRvd24tcmVkJztcbiRjYXJldC1kb3duLXJlZC14OiAzNzZweDtcbiRjYXJldC1kb3duLXJlZC15OiAxMDNweDtcbiRjYXJldC1kb3duLXJlZC1vZmZzZXQteDogLTM3NnB4O1xuJGNhcmV0LWRvd24tcmVkLW9mZnNldC15OiAtMTAzcHg7XG4kY2FyZXQtZG93bi1yZWQtd2lkdGg6IDhweDtcbiRjYXJldC1kb3duLXJlZC1oZWlnaHQ6IDVweDtcbiRjYXJldC1kb3duLXJlZC10b3RhbC13aWR0aDogMzg5cHg7XG4kY2FyZXQtZG93bi1yZWQtdG90YWwtaGVpZ2h0OiAyODVweDtcbiRjYXJldC1kb3duLXJlZC1pbWFnZTogJ3Nwcml0ZS5wbmcnO1xuJGNhcmV0LWRvd24tcmVkOiAoMzc2cHgsIDEwM3B4LCAtMzc2cHgsIC0xMDNweCwgOHB4LCA1cHgsIDM4OXB4LCAyODVweCwgJ3Nwcml0ZS5wbmcnLCAnY2FyZXQtZG93bi1yZWQnLCApO1xuJGNoZWNrLWdyZWVuLW5hbWU6ICdjaGVjay1ncmVlbic7XG4kY2hlY2stZ3JlZW4teDogMzczcHg7XG4kY2hlY2stZ3JlZW4teTogNjhweDtcbiRjaGVjay1ncmVlbi1vZmZzZXQteDogLTM3M3B4O1xuJGNoZWNrLWdyZWVuLW9mZnNldC15OiAtNjhweDtcbiRjaGVjay1ncmVlbi13aWR0aDogMTRweDtcbiRjaGVjay1ncmVlbi1oZWlnaHQ6IDEycHg7XG4kY2hlY2stZ3JlZW4tdG90YWwtd2lkdGg6IDM4OXB4O1xuJGNoZWNrLWdyZWVuLXRvdGFsLWhlaWdodDogMjg1cHg7XG4kY2hlY2stZ3JlZW4taW1hZ2U6ICdzcHJpdGUucG5nJztcbiRjaGVjay1ncmVlbjogKDM3M3B4LCA2OHB4LCAtMzczcHgsIC02OHB4LCAxNHB4LCAxMnB4LCAzODlweCwgMjg1cHgsICdzcHJpdGUucG5nJywgJ2NoZWNrLWdyZWVuJywgKTtcbiRjbG9zZS1pY29uLW5hbWU6ICdjbG9zZS1pY29uJztcbiRjbG9zZS1pY29uLXg6IDMwNHB4O1xuJGNsb3NlLWljb24teTogMTQ5cHg7XG4kY2xvc2UtaWNvbi1vZmZzZXQteDogLTMwNHB4O1xuJGNsb3NlLWljb24tb2Zmc2V0LXk6IC0xNDlweDtcbiRjbG9zZS1pY29uLXdpZHRoOiAxMnB4O1xuJGNsb3NlLWljb24taGVpZ2h0OiAxM3B4O1xuJGNsb3NlLWljb24tdG90YWwtd2lkdGg6IDM4OXB4O1xuJGNsb3NlLWljb24tdG90YWwtaGVpZ2h0OiAyODVweDtcbiRjbG9zZS1pY29uLWltYWdlOiAnc3ByaXRlLnBuZyc7XG4kY2xvc2UtaWNvbjogKDMwNHB4LCAxNDlweCwgLTMwNHB4LCAtMTQ5cHgsIDEycHgsIDEzcHgsIDM4OXB4LCAyODVweCwgJ3Nwcml0ZS5wbmcnLCAnY2xvc2UtaWNvbicsICk7XG4kY2xvc2UtbmFtZTogJ2Nsb3NlJztcbiRjbG9zZS14OiAzNzZweDtcbiRjbG9zZS15OiAxMTZweDtcbiRjbG9zZS1vZmZzZXQteDogLTM3NnB4O1xuJGNsb3NlLW9mZnNldC15OiAtMTE2cHg7XG4kY2xvc2Utd2lkdGg6IDEycHg7XG4kY2xvc2UtaGVpZ2h0OiAxM3B4O1xuJGNsb3NlLXRvdGFsLXdpZHRoOiAzODlweDtcbiRjbG9zZS10b3RhbC1oZWlnaHQ6IDI4NXB4O1xuJGNsb3NlLWltYWdlOiAnc3ByaXRlLnBuZyc7XG4kY2xvc2U6ICgzNzZweCwgMTE2cHgsIC0zNzZweCwgLTExNnB4LCAxMnB4LCAxM3B4LCAzODlweCwgMjg1cHgsICdzcHJpdGUucG5nJywgJ2Nsb3NlJywgKTtcbiRmYWNlYm9vay1uYW1lOiAnZmFjZWJvb2snO1xuJGZhY2Vib29rLXg6IDIyM3B4O1xuJGZhY2Vib29rLXk6IDE0OXB4O1xuJGZhY2Vib29rLW9mZnNldC14OiAtMjIzcHg7XG4kZmFjZWJvb2stb2Zmc2V0LXk6IC0xNDlweDtcbiRmYWNlYm9vay13aWR0aDogMTZweDtcbiRmYWNlYm9vay1oZWlnaHQ6IDE2cHg7XG4kZmFjZWJvb2stdG90YWwtd2lkdGg6IDM4OXB4O1xuJGZhY2Vib29rLXRvdGFsLWhlaWdodDogMjg1cHg7XG4kZmFjZWJvb2staW1hZ2U6ICdzcHJpdGUucG5nJztcbiRmYWNlYm9vazogKDIyM3B4LCAxNDlweCwgLTIyM3B4LCAtMTQ5cHgsIDE2cHgsIDE2cHgsIDM4OXB4LCAyODVweCwgJ3Nwcml0ZS5wbmcnLCAnZmFjZWJvb2snLCApO1xuJGdvb2dsZS1uYW1lOiAnZ29vZ2xlJztcbiRnb29nbGUteDogMjM5cHg7XG4kZ29vZ2xlLXk6IDE0OXB4O1xuJGdvb2dsZS1vZmZzZXQteDogLTIzOXB4O1xuJGdvb2dsZS1vZmZzZXQteTogLTE0OXB4O1xuJGdvb2dsZS13aWR0aDogMTZweDtcbiRnb29nbGUtaGVpZ2h0OiAxNnB4O1xuJGdvb2dsZS10b3RhbC13aWR0aDogMzg5cHg7XG4kZ29vZ2xlLXRvdGFsLWhlaWdodDogMjg1cHg7XG4kZ29vZ2xlLWltYWdlOiAnc3ByaXRlLnBuZyc7XG4kZ29vZ2xlOiAoMjM5cHgsIDE0OXB4LCAtMjM5cHgsIC0xNDlweCwgMTZweCwgMTZweCwgMzg5cHgsIDI4NXB4LCAnc3ByaXRlLnBuZycsICdnb29nbGUnLCApO1xuJGdyZWF0ZXItdGhhbi1ncmVlbi1uYW1lOiAnZ3JlYXRlci10aGFuLWdyZWVuJztcbiRncmVhdGVyLXRoYW4tZ3JlZW4teDogMjIzcHg7XG4kZ3JlYXRlci10aGFuLWdyZWVuLXk6IDE2NXB4O1xuJGdyZWF0ZXItdGhhbi1ncmVlbi1vZmZzZXQteDogLTIyM3B4O1xuJGdyZWF0ZXItdGhhbi1ncmVlbi1vZmZzZXQteTogLTE2NXB4O1xuJGdyZWF0ZXItdGhhbi1ncmVlbi13aWR0aDogMTBweDtcbiRncmVhdGVyLXRoYW4tZ3JlZW4taGVpZ2h0OiAxNHB4O1xuJGdyZWF0ZXItdGhhbi1ncmVlbi10b3RhbC13aWR0aDogMzg5cHg7XG4kZ3JlYXRlci10aGFuLWdyZWVuLXRvdGFsLWhlaWdodDogMjg1cHg7XG4kZ3JlYXRlci10aGFuLWdyZWVuLWltYWdlOiAnc3ByaXRlLnBuZyc7XG4kZ3JlYXRlci10aGFuLWdyZWVuOiAoMjIzcHgsIDE2NXB4LCAtMjIzcHgsIC0xNjVweCwgMTBweCwgMTRweCwgMzg5cHgsIDI4NXB4LCAnc3ByaXRlLnBuZycsICdncmVhdGVyLXRoYW4tZ3JlZW4nLCApO1xuJGdyZWF0ZXItdGhhbi13aGl0ZS1zbWFsbC1uYW1lOiAnZ3JlYXRlci10aGFuLXdoaXRlLXNtYWxsJztcbiRncmVhdGVyLXRoYW4td2hpdGUtc21hbGwteDogMjMycHg7XG4kZ3JlYXRlci10aGFuLXdoaXRlLXNtYWxsLXk6IDE3OXB4O1xuJGdyZWF0ZXItdGhhbi13aGl0ZS1zbWFsbC1vZmZzZXQteDogLTIzMnB4O1xuJGdyZWF0ZXItdGhhbi13aGl0ZS1zbWFsbC1vZmZzZXQteTogLTE3OXB4O1xuJGdyZWF0ZXItdGhhbi13aGl0ZS1zbWFsbC13aWR0aDogOXB4O1xuJGdyZWF0ZXItdGhhbi13aGl0ZS1zbWFsbC1oZWlnaHQ6IDE1cHg7XG4kZ3JlYXRlci10aGFuLXdoaXRlLXNtYWxsLXRvdGFsLXdpZHRoOiAzODlweDtcbiRncmVhdGVyLXRoYW4td2hpdGUtc21hbGwtdG90YWwtaGVpZ2h0OiAyODVweDtcbiRncmVhdGVyLXRoYW4td2hpdGUtc21hbGwtaW1hZ2U6ICdzcHJpdGUucG5nJztcbiRncmVhdGVyLXRoYW4td2hpdGUtc21hbGw6ICgyMzJweCwgMTc5cHgsIC0yMzJweCwgLTE3OXB4LCA5cHgsIDE1cHgsIDM4OXB4LCAyODVweCwgJ3Nwcml0ZS5wbmcnLCAnZ3JlYXRlci10aGFuLXdoaXRlLXNtYWxsJywgKTtcbiRncmVhdGVyLXRoYW4td2hpdGUtbmFtZTogJ2dyZWF0ZXItdGhhbi13aGl0ZSc7XG4kZ3JlYXRlci10aGFuLXdoaXRlLXg6IDIyM3B4O1xuJGdyZWF0ZXItdGhhbi13aGl0ZS15OiAxNzlweDtcbiRncmVhdGVyLXRoYW4td2hpdGUtb2Zmc2V0LXg6IC0yMjNweDtcbiRncmVhdGVyLXRoYW4td2hpdGUtb2Zmc2V0LXk6IC0xNzlweDtcbiRncmVhdGVyLXRoYW4td2hpdGUtd2lkdGg6IDlweDtcbiRncmVhdGVyLXRoYW4td2hpdGUtaGVpZ2h0OiAxNXB4O1xuJGdyZWF0ZXItdGhhbi13aGl0ZS10b3RhbC13aWR0aDogMzg5cHg7XG4kZ3JlYXRlci10aGFuLXdoaXRlLXRvdGFsLWhlaWdodDogMjg1cHg7XG4kZ3JlYXRlci10aGFuLXdoaXRlLWltYWdlOiAnc3ByaXRlLnBuZyc7XG4kZ3JlYXRlci10aGFuLXdoaXRlOiAoMjIzcHgsIDE3OXB4LCAtMjIzcHgsIC0xNzlweCwgOXB4LCAxNXB4LCAzODlweCwgMjg1cHgsICdzcHJpdGUucG5nJywgJ2dyZWF0ZXItdGhhbi13aGl0ZScsICk7XG4kaG90LWJ1eXMtbGVmdC1zaGFkZS1uYW1lOiAnaG90LWJ1eXMtbGVmdC1zaGFkZSc7XG4kaG90LWJ1eXMtbGVmdC1zaGFkZS14OiAwcHg7XG4kaG90LWJ1eXMtbGVmdC1zaGFkZS15OiAwcHg7XG4kaG90LWJ1eXMtbGVmdC1zaGFkZS1vZmZzZXQteDogMHB4O1xuJGhvdC1idXlzLWxlZnQtc2hhZGUtb2Zmc2V0LXk6IDBweDtcbiRob3QtYnV5cy1sZWZ0LXNoYWRlLXdpZHRoOiA5NXB4O1xuJGhvdC1idXlzLWxlZnQtc2hhZGUtaGVpZ2h0OiAyODVweDtcbiRob3QtYnV5cy1sZWZ0LXNoYWRlLXRvdGFsLXdpZHRoOiAzODlweDtcbiRob3QtYnV5cy1sZWZ0LXNoYWRlLXRvdGFsLWhlaWdodDogMjg1cHg7XG4kaG90LWJ1eXMtbGVmdC1zaGFkZS1pbWFnZTogJ3Nwcml0ZS5wbmcnO1xuJGhvdC1idXlzLWxlZnQtc2hhZGU6ICgwcHgsIDBweCwgMHB4LCAwcHgsIDk1cHgsIDI4NXB4LCAzODlweCwgMjg1cHgsICdzcHJpdGUucG5nJywgJ2hvdC1idXlzLWxlZnQtc2hhZGUnLCApO1xuJGhvdC1idXlzLXJpZ2h0LXNoYWRlLW5hbWU6ICdob3QtYnV5cy1yaWdodC1zaGFkZSc7XG4kaG90LWJ1eXMtcmlnaHQtc2hhZGUteDogOTVweDtcbiRob3QtYnV5cy1yaWdodC1zaGFkZS15OiAwcHg7XG4kaG90LWJ1eXMtcmlnaHQtc2hhZGUtb2Zmc2V0LXg6IC05NXB4O1xuJGhvdC1idXlzLXJpZ2h0LXNoYWRlLW9mZnNldC15OiAwcHg7XG4kaG90LWJ1eXMtcmlnaHQtc2hhZGUtd2lkdGg6IDEyOHB4O1xuJGhvdC1idXlzLXJpZ2h0LXNoYWRlLWhlaWdodDogMTkwcHg7XG4kaG90LWJ1eXMtcmlnaHQtc2hhZGUtdG90YWwtd2lkdGg6IDM4OXB4O1xuJGhvdC1idXlzLXJpZ2h0LXNoYWRlLXRvdGFsLWhlaWdodDogMjg1cHg7XG4kaG90LWJ1eXMtcmlnaHQtc2hhZGUtaW1hZ2U6ICdzcHJpdGUucG5nJztcbiRob3QtYnV5cy1yaWdodC1zaGFkZTogKDk1cHgsIDBweCwgLTk1cHgsIDBweCwgMTI4cHgsIDE5MHB4LCAzODlweCwgMjg1cHgsICdzcHJpdGUucG5nJywgJ2hvdC1idXlzLXJpZ2h0LXNoYWRlJywgKTtcbiRob3RidXlzLWFycm93LW5hbWU6ICdob3RidXlzLWFycm93JztcbiRob3RidXlzLWFycm93LXg6IDI1NnB4O1xuJGhvdGJ1eXMtYXJyb3cteTogMTE2cHg7XG4kaG90YnV5cy1hcnJvdy1vZmZzZXQteDogLTI1NnB4O1xuJGhvdGJ1eXMtYXJyb3ctb2Zmc2V0LXk6IC0xMTZweDtcbiRob3RidXlzLWFycm93LXdpZHRoOiAzMHB4O1xuJGhvdGJ1eXMtYXJyb3ctaGVpZ2h0OiAzMHB4O1xuJGhvdGJ1eXMtYXJyb3ctdG90YWwtd2lkdGg6IDM4OXB4O1xuJGhvdGJ1eXMtYXJyb3ctdG90YWwtaGVpZ2h0OiAyODVweDtcbiRob3RidXlzLWFycm93LWltYWdlOiAnc3ByaXRlLnBuZyc7XG4kaG90YnV5cy1hcnJvdzogKDI1NnB4LCAxMTZweCwgLTI1NnB4LCAtMTE2cHgsIDMwcHgsIDMwcHgsIDM4OXB4LCAyODVweCwgJ3Nwcml0ZS5wbmcnLCAnaG90YnV5cy1hcnJvdycsICk7XG4kbGVmdC1hcnJvdy1uYW1lOiAnbGVmdC1hcnJvdyc7XG4kbGVmdC1hcnJvdy14OiAzNThweDtcbiRsZWZ0LWFycm93LXk6IDExNnB4O1xuJGxlZnQtYXJyb3ctb2Zmc2V0LXg6IC0zNThweDtcbiRsZWZ0LWFycm93LW9mZnNldC15OiAtMTE2cHg7XG4kbGVmdC1hcnJvdy13aWR0aDogMThweDtcbiRsZWZ0LWFycm93LWhlaWdodDogMTVweDtcbiRsZWZ0LWFycm93LXRvdGFsLXdpZHRoOiAzODlweDtcbiRsZWZ0LWFycm93LXRvdGFsLWhlaWdodDogMjg1cHg7XG4kbGVmdC1hcnJvdy1pbWFnZTogJ3Nwcml0ZS5wbmcnO1xuJGxlZnQtYXJyb3c6ICgzNThweCwgMTE2cHgsIC0zNThweCwgLTExNnB4LCAxOHB4LCAxNXB4LCAzODlweCwgMjg1cHgsICdzcHJpdGUucG5nJywgJ2xlZnQtYXJyb3cnLCApO1xuJG1pbnVzLW5hbWU6ICdtaW51cyc7XG4kbWludXMteDogMzY4cHg7XG4kbWludXMteTogMTA4cHg7XG4kbWludXMtb2Zmc2V0LXg6IC0zNjhweDtcbiRtaW51cy1vZmZzZXQteTogLTEwOHB4O1xuJG1pbnVzLXdpZHRoOiAxNnB4O1xuJG1pbnVzLWhlaWdodDogMnB4O1xuJG1pbnVzLXRvdGFsLXdpZHRoOiAzODlweDtcbiRtaW51cy10b3RhbC1oZWlnaHQ6IDI4NXB4O1xuJG1pbnVzLWltYWdlOiAnc3ByaXRlLnBuZyc7XG4kbWludXM6ICgzNjhweCwgMTA4cHgsIC0zNjhweCwgLTEwOHB4LCAxNnB4LCAycHgsIDM4OXB4LCAyODVweCwgJ3Nwcml0ZS5wbmcnLCAnbWludXMnLCApO1xuJHAtZ3JpZC1hY3R2LW5hbWU6ICdwLWdyaWQtYWN0dic7XG4kcC1ncmlkLWFjdHYteDogMjU1cHg7XG4kcC1ncmlkLWFjdHYteTogMTQ5cHg7XG4kcC1ncmlkLWFjdHYtb2Zmc2V0LXg6IC0yNTVweDtcbiRwLWdyaWQtYWN0di1vZmZzZXQteTogLTE0OXB4O1xuJHAtZ3JpZC1hY3R2LXdpZHRoOiAxNnB4O1xuJHAtZ3JpZC1hY3R2LWhlaWdodDogMTZweDtcbiRwLWdyaWQtYWN0di10b3RhbC13aWR0aDogMzg5cHg7XG4kcC1ncmlkLWFjdHYtdG90YWwtaGVpZ2h0OiAyODVweDtcbiRwLWdyaWQtYWN0di1pbWFnZTogJ3Nwcml0ZS5wbmcnO1xuJHAtZ3JpZC1hY3R2OiAoMjU1cHgsIDE0OXB4LCAtMjU1cHgsIC0xNDlweCwgMTZweCwgMTZweCwgMzg5cHgsIDI4NXB4LCAnc3ByaXRlLnBuZycsICdwLWdyaWQtYWN0dicsICk7XG4kcC1ncmlkLW5hbWU6ICdwLWdyaWQnO1xuJHAtZ3JpZC14OiAzNzNweDtcbiRwLWdyaWQteTogNTJweDtcbiRwLWdyaWQtb2Zmc2V0LXg6IC0zNzNweDtcbiRwLWdyaWQtb2Zmc2V0LXk6IC01MnB4O1xuJHAtZ3JpZC13aWR0aDogMTZweDtcbiRwLWdyaWQtaGVpZ2h0OiAxNnB4O1xuJHAtZ3JpZC10b3RhbC13aWR0aDogMzg5cHg7XG4kcC1ncmlkLXRvdGFsLWhlaWdodDogMjg1cHg7XG4kcC1ncmlkLWltYWdlOiAnc3ByaXRlLnBuZyc7XG4kcC1ncmlkOiAoMzczcHgsIDUycHgsIC0zNzNweCwgLTUycHgsIDE2cHgsIDE2cHgsIDM4OXB4LCAyODVweCwgJ3Nwcml0ZS5wbmcnLCAncC1ncmlkJywgKTtcbiRwLWxpc3QtYWN0di1uYW1lOiAncC1saXN0LWFjdHYnO1xuJHAtbGlzdC1hY3R2LXg6IDM0MXB4O1xuJHAtbGlzdC1hY3R2LXk6IDExNnB4O1xuJHAtbGlzdC1hY3R2LW9mZnNldC14OiAtMzQxcHg7XG4kcC1saXN0LWFjdHYtb2Zmc2V0LXk6IC0xMTZweDtcbiRwLWxpc3QtYWN0di13aWR0aDogMTdweDtcbiRwLWxpc3QtYWN0di1oZWlnaHQ6IDE2cHg7XG4kcC1saXN0LWFjdHYtdG90YWwtd2lkdGg6IDM4OXB4O1xuJHAtbGlzdC1hY3R2LXRvdGFsLWhlaWdodDogMjg1cHg7XG4kcC1saXN0LWFjdHYtaW1hZ2U6ICdzcHJpdGUucG5nJztcbiRwLWxpc3QtYWN0djogKDM0MXB4LCAxMTZweCwgLTM0MXB4LCAtMTE2cHgsIDE3cHgsIDE2cHgsIDM4OXB4LCAyODVweCwgJ3Nwcml0ZS5wbmcnLCAncC1saXN0LWFjdHYnLCApO1xuJHAtbGlzdC1uYW1lOiAncC1saXN0JztcbiRwLWxpc3QteDogMzI0cHg7XG4kcC1saXN0LXk6IDExNnB4O1xuJHAtbGlzdC1vZmZzZXQteDogLTMyNHB4O1xuJHAtbGlzdC1vZmZzZXQteTogLTExNnB4O1xuJHAtbGlzdC13aWR0aDogMTdweDtcbiRwLWxpc3QtaGVpZ2h0OiAxNnB4O1xuJHAtbGlzdC10b3RhbC13aWR0aDogMzg5cHg7XG4kcC1saXN0LXRvdGFsLWhlaWdodDogMjg1cHg7XG4kcC1saXN0LWltYWdlOiAnc3ByaXRlLnBuZyc7XG4kcC1saXN0OiAoMzI0cHgsIDExNnB4LCAtMzI0cHgsIC0xMTZweCwgMTdweCwgMTZweCwgMzg5cHgsIDI4NXB4LCAnc3ByaXRlLnBuZycsICdwLWxpc3QnLCApO1xuJHBpbnRlcmVzdC1uYW1lOiAncGludGVyZXN0JztcbiRwaW50ZXJlc3QteDogMzczcHg7XG4kcGludGVyZXN0LXk6IDM2cHg7XG4kcGludGVyZXN0LW9mZnNldC14OiAtMzczcHg7XG4kcGludGVyZXN0LW9mZnNldC15OiAtMzZweDtcbiRwaW50ZXJlc3Qtd2lkdGg6IDE2cHg7XG4kcGludGVyZXN0LWhlaWdodDogMTZweDtcbiRwaW50ZXJlc3QtdG90YWwtd2lkdGg6IDM4OXB4O1xuJHBpbnRlcmVzdC10b3RhbC1oZWlnaHQ6IDI4NXB4O1xuJHBpbnRlcmVzdC1pbWFnZTogJ3Nwcml0ZS5wbmcnO1xuJHBpbnRlcmVzdDogKDM3M3B4LCAzNnB4LCAtMzczcHgsIC0zNnB4LCAxNnB4LCAxNnB4LCAzODlweCwgMjg1cHgsICdzcHJpdGUucG5nJywgJ3BpbnRlcmVzdCcsICk7XG4kcGx1cy1uYW1lOiAncGx1cyc7XG4kcGx1cy14OiAzMDdweDtcbiRwbHVzLXk6IDExNnB4O1xuJHBsdXMtb2Zmc2V0LXg6IC0zMDdweDtcbiRwbHVzLW9mZnNldC15OiAtMTE2cHg7XG4kcGx1cy13aWR0aDogMTdweDtcbiRwbHVzLWhlaWdodDogMTdweDtcbiRwbHVzLXRvdGFsLXdpZHRoOiAzODlweDtcbiRwbHVzLXRvdGFsLWhlaWdodDogMjg1cHg7XG4kcGx1cy1pbWFnZTogJ3Nwcml0ZS5wbmcnO1xuJHBsdXM6ICgzMDdweCwgMTE2cHgsIC0zMDdweCwgLTExNnB4LCAxN3B4LCAxN3B4LCAzODlweCwgMjg1cHgsICdzcHJpdGUucG5nJywgJ3BsdXMnLCApO1xuJHNlYXJjaC1hcnJvdy1uYW1lOiAnc2VhcmNoLWFycm93JztcbiRzZWFyY2gtYXJyb3cteDogMzYycHg7XG4kc2VhcmNoLWFycm93LXk6IDgwcHg7XG4kc2VhcmNoLWFycm93LW9mZnNldC14OiAtMzYycHg7XG4kc2VhcmNoLWFycm93LW9mZnNldC15OiAtODBweDtcbiRzZWFyY2gtYXJyb3ctd2lkdGg6IDIycHg7XG4kc2VhcmNoLWFycm93LWhlaWdodDogMjNweDtcbiRzZWFyY2gtYXJyb3ctdG90YWwtd2lkdGg6IDM4OXB4O1xuJHNlYXJjaC1hcnJvdy10b3RhbC1oZWlnaHQ6IDI4NXB4O1xuJHNlYXJjaC1hcnJvdy1pbWFnZTogJ3Nwcml0ZS5wbmcnO1xuJHNlYXJjaC1hcnJvdzogKDM2MnB4LCA4MHB4LCAtMzYycHgsIC04MHB4LCAyMnB4LCAyM3B4LCAzODlweCwgMjg1cHgsICdzcHJpdGUucG5nJywgJ3NlYXJjaC1hcnJvdycsICk7XG4kc2VhcmNoLWNsb3NlLW5hbWU6ICdzZWFyY2gtY2xvc2UnO1xuJHNlYXJjaC1jbG9zZS14OiAzMTZweDtcbiRzZWFyY2gtY2xvc2UteTogMTQ5cHg7XG4kc2VhcmNoLWNsb3NlLW9mZnNldC14OiAtMzE2cHg7XG4kc2VhcmNoLWNsb3NlLW9mZnNldC15OiAtMTQ5cHg7XG4kc2VhcmNoLWNsb3NlLXdpZHRoOiAxMnB4O1xuJHNlYXJjaC1jbG9zZS1oZWlnaHQ6IDEycHg7XG4kc2VhcmNoLWNsb3NlLXRvdGFsLXdpZHRoOiAzODlweDtcbiRzZWFyY2gtY2xvc2UtdG90YWwtaGVpZ2h0OiAyODVweDtcbiRzZWFyY2gtY2xvc2UtaW1hZ2U6ICdzcHJpdGUucG5nJztcbiRzZWFyY2gtY2xvc2U6ICgzMTZweCwgMTQ5cHgsIC0zMTZweCwgLTE0OXB4LCAxMnB4LCAxMnB4LCAzODlweCwgMjg1cHgsICdzcHJpdGUucG5nJywgJ3NlYXJjaC1jbG9zZScsICk7XG4kc2VhcmNoLW5hbWU6ICdzZWFyY2gnO1xuJHNlYXJjaC14OiAyODZweDtcbiRzZWFyY2gteTogMTE2cHg7XG4kc2VhcmNoLW9mZnNldC14OiAtMjg2cHg7XG4kc2VhcmNoLW9mZnNldC15OiAtMTE2cHg7XG4kc2VhcmNoLXdpZHRoOiAyMXB4O1xuJHNlYXJjaC1oZWlnaHQ6IDIxcHg7XG4kc2VhcmNoLXRvdGFsLXdpZHRoOiAzODlweDtcbiRzZWFyY2gtdG90YWwtaGVpZ2h0OiAyODVweDtcbiRzZWFyY2gtaW1hZ2U6ICdzcHJpdGUucG5nJztcbiRzZWFyY2g6ICgyODZweCwgMTE2cHgsIC0yODZweCwgLTExNnB4LCAyMXB4LCAyMXB4LCAzODlweCwgMjg1cHgsICdzcHJpdGUucG5nJywgJ3NlYXJjaCcsICk7XG4kdHdpdHRlci1uYW1lOiAndHdpdHRlcic7XG4kdHdpdHRlci14OiAyODhweDtcbiR0d2l0dGVyLXk6IDE0OXB4O1xuJHR3aXR0ZXItb2Zmc2V0LXg6IC0yODhweDtcbiR0d2l0dGVyLW9mZnNldC15OiAtMTQ5cHg7XG4kdHdpdHRlci13aWR0aDogMTZweDtcbiR0d2l0dGVyLWhlaWdodDogMTNweDtcbiR0d2l0dGVyLXRvdGFsLXdpZHRoOiAzODlweDtcbiR0d2l0dGVyLXRvdGFsLWhlaWdodDogMjg1cHg7XG4kdHdpdHRlci1pbWFnZTogJ3Nwcml0ZS5wbmcnO1xuJHR3aXR0ZXI6ICgyODhweCwgMTQ5cHgsIC0yODhweCwgLTE0OXB4LCAxNnB4LCAxM3B4LCAzODlweCwgMjg1cHgsICdzcHJpdGUucG5nJywgJ3R3aXR0ZXInLCApO1xuJHNwcml0ZXNoZWV0LXdpZHRoOiAzODlweDtcbiRzcHJpdGVzaGVldC1oZWlnaHQ6IDI4NXB4O1xuJHNwcml0ZXNoZWV0LWltYWdlOiAnc3ByaXRlLnBuZyc7XG4kc3ByaXRlc2hlZXQtc3ByaXRlczogKCQtY2FydCwgJC1sb2dvLCAkYWRkLXRvLWxpc3QsICRhcnJvdy1ncmVlbi1iZywgJGFycm93LWdyZWVuLCAkYXJyb3ctZ3JleSwgJGFycm93LWhiLWx0LCAkYXJyb3ctaGItcnQsICRiYWNrLWNoZXZyb24sICRjYXJldC1kb3duLWdyZWVuLCAkY2FyZXQtZG93bi1yZWQsICRjaGVjay1ncmVlbiwgJGNsb3NlLWljb24sICRjbG9zZSwgJGZhY2Vib29rLCAkZ29vZ2xlLCAkZ3JlYXRlci10aGFuLWdyZWVuLCAkZ3JlYXRlci10aGFuLXdoaXRlLXNtYWxsLCAkZ3JlYXRlci10aGFuLXdoaXRlLCAkaG90LWJ1eXMtbGVmdC1zaGFkZSwgJGhvdC1idXlzLXJpZ2h0LXNoYWRlLCAkaG90YnV5cy1hcnJvdywgJGxlZnQtYXJyb3csICRtaW51cywgJHAtZ3JpZC1hY3R2LCAkcC1ncmlkLCAkcC1saXN0LWFjdHYsICRwLWxpc3QsICRwaW50ZXJlc3QsICRwbHVzLCAkc2VhcmNoLWFycm93LCAkc2VhcmNoLWNsb3NlLCAkc2VhcmNoLCAkdHdpdHRlciwgKTtcbiRzcHJpdGVzaGVldDogKDM4OXB4LCAyODVweCwgJ3Nwcml0ZS5wbmcnLCAkc3ByaXRlc2hlZXQtc3ByaXRlcywgKTtcblxuLypcblRoZSBwcm92aWRlZCBtaXhpbnMgYXJlIGludGVuZGVkIHRvIGJlIHVzZWQgd2l0aCB0aGUgYXJyYXktbGlrZSB2YXJpYWJsZXNcblxuLmljb24taG9tZSB7XG4gIEBpbmNsdWRlIHNwcml0ZS13aWR0aCgkaWNvbi1ob21lKTtcbn1cblxuLmljb24tZW1haWwge1xuICBAaW5jbHVkZSBzcHJpdGUoJGljb24tZW1haWwpO1xufVxuKi9cbkBtaXhpbiBzcHJpdGUtd2lkdGgoJHNwcml0ZSkge1xuICB3aWR0aDogbnRoKCRzcHJpdGUsIDUpO1xufVxuXG5AbWl4aW4gc3ByaXRlLWhlaWdodCgkc3ByaXRlKSB7XG4gIGhlaWdodDogbnRoKCRzcHJpdGUsIDYpO1xufVxuXG5AbWl4aW4gc3ByaXRlLXBvc2l0aW9uKCRzcHJpdGUpIHtcbiAgJHNwcml0ZS1vZmZzZXQteDogbnRoKCRzcHJpdGUsIDMpO1xuICAkc3ByaXRlLW9mZnNldC15OiBudGgoJHNwcml0ZSwgNCk7XG4gIGJhY2tncm91bmQtcG9zaXRpb246ICRzcHJpdGUtb2Zmc2V0LXggICRzcHJpdGUtb2Zmc2V0LXk7XG59XG5cbkBtaXhpbiBzcHJpdGUtaW1hZ2UoJHNwcml0ZSkge1xuICAkc3ByaXRlLWltYWdlOiBudGgoJHNwcml0ZSwgOSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgjeyRzcHJpdGUtaW1hZ2V9KTtcbn1cblxuQG1peGluIHNwcml0ZSgkc3ByaXRlKSB7XG4gIEBpbmNsdWRlIHNwcml0ZS1wb3NpdGlvbigkc3ByaXRlKTtcbiAgQGluY2x1ZGUgc3ByaXRlLXdpZHRoKCRzcHJpdGUpO1xuICBAaW5jbHVkZSBzcHJpdGUtaGVpZ2h0KCRzcHJpdGUpO1xufVxuXG4vKlxuVGhlIGBzcHJpdGVzYCBtaXhpbiBnZW5lcmF0ZXMgaWRlbnRpY2FsIG91dHB1dCB0byB0aGUgQ1NTIHRlbXBsYXRlXG4gIGJ1dCBjYW4gYmUgb3ZlcnJpZGRlbiBpbnNpZGUgb2YgU0NTU1xuXG5AaW5jbHVkZSBzcHJpdGVzKCRzcHJpdGVzaGVldC1zcHJpdGVzKTtcbiovXG4vLyBTcHJpdGVzXG4vL1xuLy8gTWFya3VwOiBzcHJpdGUuaHRtbFxuLy9cbi8vIC5zYy1zcHJpdGUtQ2FydCAtICZuYnNwO1xuLy8gLnNjLXNwcml0ZS1Mb2dvIC0gJm5ic3A7XG4vLyAuc2Mtc3ByaXRlLWFkZC10by1saXN0IC0gJm5ic3A7XG4vLyAuc2Mtc3ByaXRlLWFycm93LWdyZWVuLWJnIC0gJm5ic3A7XG4vLyAuc2Mtc3ByaXRlLWFycm93LWdyZWVuIC0gJm5ic3A7XG4vLyAuc2Mtc3ByaXRlLWFycm93LWdyZXkgLSAmbmJzcDtcbi8vIC5zYy1zcHJpdGUtYXJyb3ctaGItbHQgLSAmbmJzcDtcbi8vIC5zYy1zcHJpdGUtYXJyb3ctaGItcnQgLSAmbmJzcDtcbi8vIC5zYy1zcHJpdGUtYmFjay1jaGV2cm9uIC0gJm5ic3A7XG4vLyAuc2Mtc3ByaXRlLWNhcmV0LWRvd24tZ3JlZW4gLSAmbmJzcDtcbi8vIC5zYy1zcHJpdGUtY2FyZXQtZG93bi1yZWQgLSAmbmJzcDtcbi8vIC5zYy1zcHJpdGUtY2hlY2stZ3JlZW4gLSAmbmJzcDtcbi8vIC5zYy1zcHJpdGUtY2xvc2UtaWNvbiAtICZuYnNwO1xuLy8gLnNjLXNwcml0ZS1jbG9zZSAtICZuYnNwO1xuLy8gLnNjLXNwcml0ZS1mYWNlYm9vayAtICZuYnNwO1xuLy8gLnNjLXNwcml0ZS1nb29nbGUgLSAmbmJzcDtcbi8vIC5zYy1zcHJpdGUtZ3JlYXRlci10aGFuLWdyZWVuIC0gJm5ic3A7XG4vLyAuc2Mtc3ByaXRlLWdyZWF0ZXItdGhhbi13aGl0ZS1zbWFsbCAtICZuYnNwO1xuLy8gLnNjLXNwcml0ZS1ncmVhdGVyLXRoYW4td2hpdGUgLSAmbmJzcDtcbi8vIC5zYy1zcHJpdGUtaG90LWJ1eXMtbGVmdC1zaGFkZSAtICZuYnNwO1xuLy8gLnNjLXNwcml0ZS1ob3QtYnV5cy1yaWdodC1zaGFkZSAtICZuYnNwO1xuLy8gLnNjLXNwcml0ZS1ob3RidXlzLWFycm93IC0gJm5ic3A7XG4vLyAuc2Mtc3ByaXRlLWxlZnQtYXJyb3cgLSAmbmJzcDtcbi8vIC5zYy1zcHJpdGUtbWludXMgLSAmbmJzcDtcbi8vIC5zYy1zcHJpdGUtcC1ncmlkLWFjdHYgLSAmbmJzcDtcbi8vIC5zYy1zcHJpdGUtcC1ncmlkIC0gJm5ic3A7XG4vLyAuc2Mtc3ByaXRlLXAtbGlzdC1hY3R2IC0gJm5ic3A7XG4vLyAuc2Mtc3ByaXRlLXAtbGlzdCAtICZuYnNwO1xuLy8gLnNjLXNwcml0ZS1waW50ZXJlc3QgLSAmbmJzcDtcbi8vIC5zYy1zcHJpdGUtcGx1cyAtICZuYnNwO1xuLy8gLnNjLXNwcml0ZS1zZWFyY2gtYXJyb3cgLSAmbmJzcDtcbi8vIC5zYy1zcHJpdGUtc2VhcmNoLWNsb3NlIC0gJm5ic3A7XG4vLyAuc2Mtc3ByaXRlLXNlYXJjaCAtICZuYnNwO1xuLy8gLnNjLXNwcml0ZS10d2l0dGVyIC0gJm5ic3A7XG4vL1xuLy8gU3R5bGUgZ3VpZGU6IDEwLjBcblxuQG1peGluIHNwcml0ZXMoJHNwcml0ZXMpIHtcbiAgW2NsYXNzKj0nc2Mtc3ByaXRlJ10ge1xuICAgIEBpbmNsdWRlIHNwcml0ZS1pbWFnZShudGgoJHNwcml0ZXMsIDEpKTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIH1cbiAgQGVhY2ggJHNwcml0ZSBpbiAkc3ByaXRlcyB7XG4gICAgJHNwcml0ZS1uYW1lOiBudGgoJHNwcml0ZSwgMTApO1xuICAgIC5zYy1zcHJpdGUtI3skc3ByaXRlLW5hbWV9IHtcbiAgICAgIEBpbmNsdWRlIHNwcml0ZSgkc3ByaXRlKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8qXG5TQ1NTIHZhcmlhYmxlcyBhcmUgaW5mb3JtYXRpb24gYWJvdXQgaWNvbidzIGNvbXBpbGVkIHN0YXRlLCBzdG9yZWQgdW5kZXIgaXRzIG9yaWdpbmFsIGZpbGUgbmFtZVxuXG4uaWNvbi1ob21lIHtcbiAgd2lkdGg6ICRpY29uLWhvbWUtd2lkdGg7XG59XG5cblRoZSBsYXJnZSBhcnJheS1saWtlIHZhcmlhYmxlcyBjb250YWluIGFsbCBpbmZvcm1hdGlvbiBhYm91dCBhIHNpbmdsZSBpY29uXG4kaWNvbi1ob21lOiB4IHkgb2Zmc2V0X3ggb2Zmc2V0X3kgd2lkdGggaGVpZ2h0IHRvdGFsX3dpZHRoIHRvdGFsX2hlaWdodCBpbWFnZV9wYXRoO1xuXG5BdCB0aGUgYm90dG9tIG9mIHRoaXMgc2VjdGlvbiwgd2UgcHJvdmlkZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc3ByaXRlc2hlZXQgaXRzZWxmXG4kc3ByaXRlc2hlZXQ6IHdpZHRoIGhlaWdodCBpbWFnZSAkc3ByaXRlc2hlZXQtc3ByaXRlcztcbiovXG4kcmF0aW5nLTAtMC1uYW1lOiAncmF0aW5nLTBfMCc7XG4kcmF0aW5nLTAtMC14OiAwcHg7XG4kcmF0aW5nLTAtMC15OiAxMnB4O1xuJHJhdGluZy0wLTAtb2Zmc2V0LXg6IDBweDtcbiRyYXRpbmctMC0wLW9mZnNldC15OiAtMTJweDtcbiRyYXRpbmctMC0wLXdpZHRoOiA3NnB4O1xuJHJhdGluZy0wLTAtaGVpZ2h0OiAxMnB4O1xuJHJhdGluZy0wLTAtdG90YWwtd2lkdGg6IDE1MnB4O1xuJHJhdGluZy0wLTAtdG90YWwtaGVpZ2h0OiA3MnB4O1xuJHJhdGluZy0wLTAtaW1hZ2U6ICdyYXRpbmctc3ByaXRlLnBuZyc7XG4kcmF0aW5nLTAtMDogKDBweCwgMTJweCwgMHB4LCAtMTJweCwgNzZweCwgMTJweCwgMTUycHgsIDcycHgsICdyYXRpbmctc3ByaXRlLnBuZycsICdyYXRpbmctMF8wJywgKTtcbiRyYXRpbmctMC01LW5hbWU6ICdyYXRpbmctMF81JztcbiRyYXRpbmctMC01LXg6IDBweDtcbiRyYXRpbmctMC01LXk6IDYwcHg7XG4kcmF0aW5nLTAtNS1vZmZzZXQteDogMHB4O1xuJHJhdGluZy0wLTUtb2Zmc2V0LXk6IC02MHB4O1xuJHJhdGluZy0wLTUtd2lkdGg6IDc2cHg7XG4kcmF0aW5nLTAtNS1oZWlnaHQ6IDEycHg7XG4kcmF0aW5nLTAtNS10b3RhbC13aWR0aDogMTUycHg7XG4kcmF0aW5nLTAtNS10b3RhbC1oZWlnaHQ6IDcycHg7XG4kcmF0aW5nLTAtNS1pbWFnZTogJ3JhdGluZy1zcHJpdGUucG5nJztcbiRyYXRpbmctMC01OiAoMHB4LCA2MHB4LCAwcHgsIC02MHB4LCA3NnB4LCAxMnB4LCAxNTJweCwgNzJweCwgJ3JhdGluZy1zcHJpdGUucG5nJywgJ3JhdGluZy0wXzUnLCApO1xuJHJhdGluZy0xLTAtbmFtZTogJ3JhdGluZy0xXzAnO1xuJHJhdGluZy0xLTAteDogMHB4O1xuJHJhdGluZy0xLTAteTogMjRweDtcbiRyYXRpbmctMS0wLW9mZnNldC14OiAwcHg7XG4kcmF0aW5nLTEtMC1vZmZzZXQteTogLTI0cHg7XG4kcmF0aW5nLTEtMC13aWR0aDogNzZweDtcbiRyYXRpbmctMS0wLWhlaWdodDogMTJweDtcbiRyYXRpbmctMS0wLXRvdGFsLXdpZHRoOiAxNTJweDtcbiRyYXRpbmctMS0wLXRvdGFsLWhlaWdodDogNzJweDtcbiRyYXRpbmctMS0wLWltYWdlOiAncmF0aW5nLXNwcml0ZS5wbmcnO1xuJHJhdGluZy0xLTA6ICgwcHgsIDI0cHgsIDBweCwgLTI0cHgsIDc2cHgsIDEycHgsIDE1MnB4LCA3MnB4LCAncmF0aW5nLXNwcml0ZS5wbmcnLCAncmF0aW5nLTFfMCcsICk7XG4kcmF0aW5nLTEtNS1uYW1lOiAncmF0aW5nLTFfNSc7XG4kcmF0aW5nLTEtNS14OiAwcHg7XG4kcmF0aW5nLTEtNS15OiAzNnB4O1xuJHJhdGluZy0xLTUtb2Zmc2V0LXg6IDBweDtcbiRyYXRpbmctMS01LW9mZnNldC15OiAtMzZweDtcbiRyYXRpbmctMS01LXdpZHRoOiA3NnB4O1xuJHJhdGluZy0xLTUtaGVpZ2h0OiAxMnB4O1xuJHJhdGluZy0xLTUtdG90YWwtd2lkdGg6IDE1MnB4O1xuJHJhdGluZy0xLTUtdG90YWwtaGVpZ2h0OiA3MnB4O1xuJHJhdGluZy0xLTUtaW1hZ2U6ICdyYXRpbmctc3ByaXRlLnBuZyc7XG4kcmF0aW5nLTEtNTogKDBweCwgMzZweCwgMHB4LCAtMzZweCwgNzZweCwgMTJweCwgMTUycHgsIDcycHgsICdyYXRpbmctc3ByaXRlLnBuZycsICdyYXRpbmctMV81JywgKTtcbiRyYXRpbmctMi0wLW5hbWU6ICdyYXRpbmctMl8wJztcbiRyYXRpbmctMi0wLXg6IDBweDtcbiRyYXRpbmctMi0wLXk6IDQ4cHg7XG4kcmF0aW5nLTItMC1vZmZzZXQteDogMHB4O1xuJHJhdGluZy0yLTAtb2Zmc2V0LXk6IC00OHB4O1xuJHJhdGluZy0yLTAtd2lkdGg6IDc2cHg7XG4kcmF0aW5nLTItMC1oZWlnaHQ6IDEycHg7XG4kcmF0aW5nLTItMC10b3RhbC13aWR0aDogMTUycHg7XG4kcmF0aW5nLTItMC10b3RhbC1oZWlnaHQ6IDcycHg7XG4kcmF0aW5nLTItMC1pbWFnZTogJ3JhdGluZy1zcHJpdGUucG5nJztcbiRyYXRpbmctMi0wOiAoMHB4LCA0OHB4LCAwcHgsIC00OHB4LCA3NnB4LCAxMnB4LCAxNTJweCwgNzJweCwgJ3JhdGluZy1zcHJpdGUucG5nJywgJ3JhdGluZy0yXzAnLCApO1xuJHJhdGluZy0yLTUtbmFtZTogJ3JhdGluZy0yXzUnO1xuJHJhdGluZy0yLTUteDogMHB4O1xuJHJhdGluZy0yLTUteTogMHB4O1xuJHJhdGluZy0yLTUtb2Zmc2V0LXg6IDBweDtcbiRyYXRpbmctMi01LW9mZnNldC15OiAwcHg7XG4kcmF0aW5nLTItNS13aWR0aDogNzZweDtcbiRyYXRpbmctMi01LWhlaWdodDogMTJweDtcbiRyYXRpbmctMi01LXRvdGFsLXdpZHRoOiAxNTJweDtcbiRyYXRpbmctMi01LXRvdGFsLWhlaWdodDogNzJweDtcbiRyYXRpbmctMi01LWltYWdlOiAncmF0aW5nLXNwcml0ZS5wbmcnO1xuJHJhdGluZy0yLTU6ICgwcHgsIDBweCwgMHB4LCAwcHgsIDc2cHgsIDEycHgsIDE1MnB4LCA3MnB4LCAncmF0aW5nLXNwcml0ZS5wbmcnLCAncmF0aW5nLTJfNScsICk7XG4kcmF0aW5nLTMtMC1uYW1lOiAncmF0aW5nLTNfMCc7XG4kcmF0aW5nLTMtMC14OiA3NnB4O1xuJHJhdGluZy0zLTAteTogMHB4O1xuJHJhdGluZy0zLTAtb2Zmc2V0LXg6IC03NnB4O1xuJHJhdGluZy0zLTAtb2Zmc2V0LXk6IDBweDtcbiRyYXRpbmctMy0wLXdpZHRoOiA3NnB4O1xuJHJhdGluZy0zLTAtaGVpZ2h0OiAxMnB4O1xuJHJhdGluZy0zLTAtdG90YWwtd2lkdGg6IDE1MnB4O1xuJHJhdGluZy0zLTAtdG90YWwtaGVpZ2h0OiA3MnB4O1xuJHJhdGluZy0zLTAtaW1hZ2U6ICdyYXRpbmctc3ByaXRlLnBuZyc7XG4kcmF0aW5nLTMtMDogKDc2cHgsIDBweCwgLTc2cHgsIDBweCwgNzZweCwgMTJweCwgMTUycHgsIDcycHgsICdyYXRpbmctc3ByaXRlLnBuZycsICdyYXRpbmctM18wJywgKTtcbiRyYXRpbmctMy01LW5hbWU6ICdyYXRpbmctM181JztcbiRyYXRpbmctMy01LXg6IDc2cHg7XG4kcmF0aW5nLTMtNS15OiAxMnB4O1xuJHJhdGluZy0zLTUtb2Zmc2V0LXg6IC03NnB4O1xuJHJhdGluZy0zLTUtb2Zmc2V0LXk6IC0xMnB4O1xuJHJhdGluZy0zLTUtd2lkdGg6IDc2cHg7XG4kcmF0aW5nLTMtNS1oZWlnaHQ6IDEycHg7XG4kcmF0aW5nLTMtNS10b3RhbC13aWR0aDogMTUycHg7XG4kcmF0aW5nLTMtNS10b3RhbC1oZWlnaHQ6IDcycHg7XG4kcmF0aW5nLTMtNS1pbWFnZTogJ3JhdGluZy1zcHJpdGUucG5nJztcbiRyYXRpbmctMy01OiAoNzZweCwgMTJweCwgLTc2cHgsIC0xMnB4LCA3NnB4LCAxMnB4LCAxNTJweCwgNzJweCwgJ3JhdGluZy1zcHJpdGUucG5nJywgJ3JhdGluZy0zXzUnLCApO1xuJHJhdGluZy00LTAtbmFtZTogJ3JhdGluZy00XzAnO1xuJHJhdGluZy00LTAteDogNzZweDtcbiRyYXRpbmctNC0wLXk6IDI0cHg7XG4kcmF0aW5nLTQtMC1vZmZzZXQteDogLTc2cHg7XG4kcmF0aW5nLTQtMC1vZmZzZXQteTogLTI0cHg7XG4kcmF0aW5nLTQtMC13aWR0aDogNzZweDtcbiRyYXRpbmctNC0wLWhlaWdodDogMTJweDtcbiRyYXRpbmctNC0wLXRvdGFsLXdpZHRoOiAxNTJweDtcbiRyYXRpbmctNC0wLXRvdGFsLWhlaWdodDogNzJweDtcbiRyYXRpbmctNC0wLWltYWdlOiAncmF0aW5nLXNwcml0ZS5wbmcnO1xuJHJhdGluZy00LTA6ICg3NnB4LCAyNHB4LCAtNzZweCwgLTI0cHgsIDc2cHgsIDEycHgsIDE1MnB4LCA3MnB4LCAncmF0aW5nLXNwcml0ZS5wbmcnLCAncmF0aW5nLTRfMCcsICk7XG4kcmF0aW5nLTQtNS1uYW1lOiAncmF0aW5nLTRfNSc7XG4kcmF0aW5nLTQtNS14OiA3NnB4O1xuJHJhdGluZy00LTUteTogMzZweDtcbiRyYXRpbmctNC01LW9mZnNldC14OiAtNzZweDtcbiRyYXRpbmctNC01LW9mZnNldC15OiAtMzZweDtcbiRyYXRpbmctNC01LXdpZHRoOiA3NnB4O1xuJHJhdGluZy00LTUtaGVpZ2h0OiAxMnB4O1xuJHJhdGluZy00LTUtdG90YWwtd2lkdGg6IDE1MnB4O1xuJHJhdGluZy00LTUtdG90YWwtaGVpZ2h0OiA3MnB4O1xuJHJhdGluZy00LTUtaW1hZ2U6ICdyYXRpbmctc3ByaXRlLnBuZyc7XG4kcmF0aW5nLTQtNTogKDc2cHgsIDM2cHgsIC03NnB4LCAtMzZweCwgNzZweCwgMTJweCwgMTUycHgsIDcycHgsICdyYXRpbmctc3ByaXRlLnBuZycsICdyYXRpbmctNF81JywgKTtcbiRyYXRpbmctNS0wLW5hbWU6ICdyYXRpbmctNV8wJztcbiRyYXRpbmctNS0wLXg6IDc2cHg7XG4kcmF0aW5nLTUtMC15OiA0OHB4O1xuJHJhdGluZy01LTAtb2Zmc2V0LXg6IC03NnB4O1xuJHJhdGluZy01LTAtb2Zmc2V0LXk6IC00OHB4O1xuJHJhdGluZy01LTAtd2lkdGg6IDc2cHg7XG4kcmF0aW5nLTUtMC1oZWlnaHQ6IDEycHg7XG4kcmF0aW5nLTUtMC10b3RhbC13aWR0aDogMTUycHg7XG4kcmF0aW5nLTUtMC10b3RhbC1oZWlnaHQ6IDcycHg7XG4kcmF0aW5nLTUtMC1pbWFnZTogJ3JhdGluZy1zcHJpdGUucG5nJztcbiRyYXRpbmctNS0wOiAoNzZweCwgNDhweCwgLTc2cHgsIC00OHB4LCA3NnB4LCAxMnB4LCAxNTJweCwgNzJweCwgJ3JhdGluZy1zcHJpdGUucG5nJywgJ3JhdGluZy01XzAnLCApO1xuXG4vKiBSRVRJTkEgKi9cbiRyYXRpbmctMC0wLTJ4LW5hbWU6ICdyYXRpbmctMF8wLTJ4JztcbiRyYXRpbmctMC0wLTJ4LXg6IDBweDtcbiRyYXRpbmctMC0wLTJ4LXk6IDI0cHg7XG4kcmF0aW5nLTAtMC0yeC1vZmZzZXQteDogMHB4O1xuJHJhdGluZy0wLTAtMngtb2Zmc2V0LXk6IC0yNHB4O1xuJHJhdGluZy0wLTAtMngtd2lkdGg6IDE1MnB4O1xuJHJhdGluZy0wLTAtMngtaGVpZ2h0OiAyNHB4O1xuJHJhdGluZy0wLTAtMngtdG90YWwtd2lkdGg6IDMwNHB4O1xuJHJhdGluZy0wLTAtMngtdG90YWwtaGVpZ2h0OiAxNDRweDtcbiRyYXRpbmctMC0wLTJ4LWltYWdlOiAncmF0aW5nLXNwcml0ZUAyeC5wbmcnO1xuJHJhdGluZy0wLTAtMng6ICgwcHgsIDI0cHgsIDBweCwgLTI0cHgsIDE1MnB4LCAyNHB4LCAzMDRweCwgMTQ0cHgsICdyYXRpbmctc3ByaXRlQDJ4LnBuZycsICdyYXRpbmctMF8wLTJ4JywgKTtcbiRyYXRpbmctMC01LTJ4LW5hbWU6ICdyYXRpbmctMF81LTJ4JztcbiRyYXRpbmctMC01LTJ4LXg6IDBweDtcbiRyYXRpbmctMC01LTJ4LXk6IDEyMHB4O1xuJHJhdGluZy0wLTUtMngtb2Zmc2V0LXg6IDBweDtcbiRyYXRpbmctMC01LTJ4LW9mZnNldC15OiAtMTIwcHg7XG4kcmF0aW5nLTAtNS0yeC13aWR0aDogMTUycHg7XG4kcmF0aW5nLTAtNS0yeC1oZWlnaHQ6IDI0cHg7XG4kcmF0aW5nLTAtNS0yeC10b3RhbC13aWR0aDogMzA0cHg7XG4kcmF0aW5nLTAtNS0yeC10b3RhbC1oZWlnaHQ6IDE0NHB4O1xuJHJhdGluZy0wLTUtMngtaW1hZ2U6ICdyYXRpbmctc3ByaXRlQDJ4LnBuZyc7XG4kcmF0aW5nLTAtNS0yeDogKDBweCwgMTIwcHgsIDBweCwgLTEyMHB4LCAxNTJweCwgMjRweCwgMzA0cHgsIDE0NHB4LCAncmF0aW5nLXNwcml0ZUAyeC5wbmcnLCAncmF0aW5nLTBfNS0yeCcsICk7XG4kcmF0aW5nLTEtMC0yeC1uYW1lOiAncmF0aW5nLTFfMC0yeCc7XG4kcmF0aW5nLTEtMC0yeC14OiAwcHg7XG4kcmF0aW5nLTEtMC0yeC15OiA0OHB4O1xuJHJhdGluZy0xLTAtMngtb2Zmc2V0LXg6IDBweDtcbiRyYXRpbmctMS0wLTJ4LW9mZnNldC15OiAtNDhweDtcbiRyYXRpbmctMS0wLTJ4LXdpZHRoOiAxNTJweDtcbiRyYXRpbmctMS0wLTJ4LWhlaWdodDogMjRweDtcbiRyYXRpbmctMS0wLTJ4LXRvdGFsLXdpZHRoOiAzMDRweDtcbiRyYXRpbmctMS0wLTJ4LXRvdGFsLWhlaWdodDogMTQ0cHg7XG4kcmF0aW5nLTEtMC0yeC1pbWFnZTogJ3JhdGluZy1zcHJpdGVAMngucG5nJztcbiRyYXRpbmctMS0wLTJ4OiAoMHB4LCA0OHB4LCAwcHgsIC00OHB4LCAxNTJweCwgMjRweCwgMzA0cHgsIDE0NHB4LCAncmF0aW5nLXNwcml0ZUAyeC5wbmcnLCAncmF0aW5nLTFfMC0yeCcsICk7XG4kcmF0aW5nLTEtNS0yeC1uYW1lOiAncmF0aW5nLTFfNS0yeCc7XG4kcmF0aW5nLTEtNS0yeC14OiAwcHg7XG4kcmF0aW5nLTEtNS0yeC15OiA3MnB4O1xuJHJhdGluZy0xLTUtMngtb2Zmc2V0LXg6IDBweDtcbiRyYXRpbmctMS01LTJ4LW9mZnNldC15OiAtNzJweDtcbiRyYXRpbmctMS01LTJ4LXdpZHRoOiAxNTJweDtcbiRyYXRpbmctMS01LTJ4LWhlaWdodDogMjRweDtcbiRyYXRpbmctMS01LTJ4LXRvdGFsLXdpZHRoOiAzMDRweDtcbiRyYXRpbmctMS01LTJ4LXRvdGFsLWhlaWdodDogMTQ0cHg7XG4kcmF0aW5nLTEtNS0yeC1pbWFnZTogJ3JhdGluZy1zcHJpdGVAMngucG5nJztcbiRyYXRpbmctMS01LTJ4OiAoMHB4LCA3MnB4LCAwcHgsIC03MnB4LCAxNTJweCwgMjRweCwgMzA0cHgsIDE0NHB4LCAncmF0aW5nLXNwcml0ZUAyeC5wbmcnLCAncmF0aW5nLTFfNS0yeCcsICk7XG4kcmF0aW5nLTItMC0yeC1uYW1lOiAncmF0aW5nLTJfMC0yeCc7XG4kcmF0aW5nLTItMC0yeC14OiAwcHg7XG4kcmF0aW5nLTItMC0yeC15OiA5NnB4O1xuJHJhdGluZy0yLTAtMngtb2Zmc2V0LXg6IDBweDtcbiRyYXRpbmctMi0wLTJ4LW9mZnNldC15OiAtOTZweDtcbiRyYXRpbmctMi0wLTJ4LXdpZHRoOiAxNTJweDtcbiRyYXRpbmctMi0wLTJ4LWhlaWdodDogMjRweDtcbiRyYXRpbmctMi0wLTJ4LXRvdGFsLXdpZHRoOiAzMDRweDtcbiRyYXRpbmctMi0wLTJ4LXRvdGFsLWhlaWdodDogMTQ0cHg7XG4kcmF0aW5nLTItMC0yeC1pbWFnZTogJ3JhdGluZy1zcHJpdGVAMngucG5nJztcbiRyYXRpbmctMi0wLTJ4OiAoMHB4LCA5NnB4LCAwcHgsIC05NnB4LCAxNTJweCwgMjRweCwgMzA0cHgsIDE0NHB4LCAncmF0aW5nLXNwcml0ZUAyeC5wbmcnLCAncmF0aW5nLTJfMC0yeCcsICk7XG4kcmF0aW5nLTItNS0yeC1uYW1lOiAncmF0aW5nLTJfNS0yeCc7XG4kcmF0aW5nLTItNS0yeC14OiAwcHg7XG4kcmF0aW5nLTItNS0yeC15OiAwcHg7XG4kcmF0aW5nLTItNS0yeC1vZmZzZXQteDogMHB4O1xuJHJhdGluZy0yLTUtMngtb2Zmc2V0LXk6IDBweDtcbiRyYXRpbmctMi01LTJ4LXdpZHRoOiAxNTJweDtcbiRyYXRpbmctMi01LTJ4LWhlaWdodDogMjRweDtcbiRyYXRpbmctMi01LTJ4LXRvdGFsLXdpZHRoOiAzMDRweDtcbiRyYXRpbmctMi01LTJ4LXRvdGFsLWhlaWdodDogMTQ0cHg7XG4kcmF0aW5nLTItNS0yeC1pbWFnZTogJ3JhdGluZy1zcHJpdGVAMngucG5nJztcbiRyYXRpbmctMi01LTJ4OiAoMHB4LCAwcHgsIDBweCwgMHB4LCAxNTJweCwgMjRweCwgMzA0cHgsIDE0NHB4LCAncmF0aW5nLXNwcml0ZUAyeC5wbmcnLCAncmF0aW5nLTJfNS0yeCcsICk7XG4kcmF0aW5nLTMtMC0yeC1uYW1lOiAncmF0aW5nLTNfMC0yeCc7XG4kcmF0aW5nLTMtMC0yeC14OiAxNTJweDtcbiRyYXRpbmctMy0wLTJ4LXk6IDBweDtcbiRyYXRpbmctMy0wLTJ4LW9mZnNldC14OiAtMTUycHg7XG4kcmF0aW5nLTMtMC0yeC1vZmZzZXQteTogMHB4O1xuJHJhdGluZy0zLTAtMngtd2lkdGg6IDE1MnB4O1xuJHJhdGluZy0zLTAtMngtaGVpZ2h0OiAyNHB4O1xuJHJhdGluZy0zLTAtMngtdG90YWwtd2lkdGg6IDMwNHB4O1xuJHJhdGluZy0zLTAtMngtdG90YWwtaGVpZ2h0OiAxNDRweDtcbiRyYXRpbmctMy0wLTJ4LWltYWdlOiAncmF0aW5nLXNwcml0ZUAyeC5wbmcnO1xuJHJhdGluZy0zLTAtMng6ICgxNTJweCwgMHB4LCAtMTUycHgsIDBweCwgMTUycHgsIDI0cHgsIDMwNHB4LCAxNDRweCwgJ3JhdGluZy1zcHJpdGVAMngucG5nJywgJ3JhdGluZy0zXzAtMngnLCApO1xuJHJhdGluZy0zLTUtMngtbmFtZTogJ3JhdGluZy0zXzUtMngnO1xuJHJhdGluZy0zLTUtMngteDogMTUycHg7XG4kcmF0aW5nLTMtNS0yeC15OiAyNHB4O1xuJHJhdGluZy0zLTUtMngtb2Zmc2V0LXg6IC0xNTJweDtcbiRyYXRpbmctMy01LTJ4LW9mZnNldC15OiAtMjRweDtcbiRyYXRpbmctMy01LTJ4LXdpZHRoOiAxNTJweDtcbiRyYXRpbmctMy01LTJ4LWhlaWdodDogMjRweDtcbiRyYXRpbmctMy01LTJ4LXRvdGFsLXdpZHRoOiAzMDRweDtcbiRyYXRpbmctMy01LTJ4LXRvdGFsLWhlaWdodDogMTQ0cHg7XG4kcmF0aW5nLTMtNS0yeC1pbWFnZTogJ3JhdGluZy1zcHJpdGVAMngucG5nJztcbiRyYXRpbmctMy01LTJ4OiAoMTUycHgsIDI0cHgsIC0xNTJweCwgLTI0cHgsIDE1MnB4LCAyNHB4LCAzMDRweCwgMTQ0cHgsICdyYXRpbmctc3ByaXRlQDJ4LnBuZycsICdyYXRpbmctM181LTJ4JywgKTtcbiRyYXRpbmctNC0wLTJ4LW5hbWU6ICdyYXRpbmctNF8wLTJ4JztcbiRyYXRpbmctNC0wLTJ4LXg6IDE1MnB4O1xuJHJhdGluZy00LTAtMngteTogNDhweDtcbiRyYXRpbmctNC0wLTJ4LW9mZnNldC14OiAtMTUycHg7XG4kcmF0aW5nLTQtMC0yeC1vZmZzZXQteTogLTQ4cHg7XG4kcmF0aW5nLTQtMC0yeC13aWR0aDogMTUycHg7XG4kcmF0aW5nLTQtMC0yeC1oZWlnaHQ6IDI0cHg7XG4kcmF0aW5nLTQtMC0yeC10b3RhbC13aWR0aDogMzA0cHg7XG4kcmF0aW5nLTQtMC0yeC10b3RhbC1oZWlnaHQ6IDE0NHB4O1xuJHJhdGluZy00LTAtMngtaW1hZ2U6ICdyYXRpbmctc3ByaXRlQDJ4LnBuZyc7XG4kcmF0aW5nLTQtMC0yeDogKDE1MnB4LCA0OHB4LCAtMTUycHgsIC00OHB4LCAxNTJweCwgMjRweCwgMzA0cHgsIDE0NHB4LCAncmF0aW5nLXNwcml0ZUAyeC5wbmcnLCAncmF0aW5nLTRfMC0yeCcsICk7XG4kcmF0aW5nLTQtNS0yeC1uYW1lOiAncmF0aW5nLTRfNS0yeCc7XG4kcmF0aW5nLTQtNS0yeC14OiAxNTJweDtcbiRyYXRpbmctNC01LTJ4LXk6IDcycHg7XG4kcmF0aW5nLTQtNS0yeC1vZmZzZXQteDogLTE1MnB4O1xuJHJhdGluZy00LTUtMngtb2Zmc2V0LXk6IC03MnB4O1xuJHJhdGluZy00LTUtMngtd2lkdGg6IDE1MnB4O1xuJHJhdGluZy00LTUtMngtaGVpZ2h0OiAyNHB4O1xuJHJhdGluZy00LTUtMngtdG90YWwtd2lkdGg6IDMwNHB4O1xuJHJhdGluZy00LTUtMngtdG90YWwtaGVpZ2h0OiAxNDRweDtcbiRyYXRpbmctNC01LTJ4LWltYWdlOiAncmF0aW5nLXNwcml0ZUAyeC5wbmcnO1xuJHJhdGluZy00LTUtMng6ICgxNTJweCwgNzJweCwgLTE1MnB4LCAtNzJweCwgMTUycHgsIDI0cHgsIDMwNHB4LCAxNDRweCwgJ3JhdGluZy1zcHJpdGVAMngucG5nJywgJ3JhdGluZy00XzUtMngnLCApO1xuJHJhdGluZy01LTAtMngtbmFtZTogJ3JhdGluZy01XzAtMngnO1xuJHJhdGluZy01LTAtMngteDogMTUycHg7XG4kcmF0aW5nLTUtMC0yeC15OiA5NnB4O1xuJHJhdGluZy01LTAtMngtb2Zmc2V0LXg6IC0xNTJweDtcbiRyYXRpbmctNS0wLTJ4LW9mZnNldC15OiAtOTZweDtcbiRyYXRpbmctNS0wLTJ4LXdpZHRoOiAxNTJweDtcbiRyYXRpbmctNS0wLTJ4LWhlaWdodDogMjRweDtcbiRyYXRpbmctNS0wLTJ4LXRvdGFsLXdpZHRoOiAzMDRweDtcbiRyYXRpbmctNS0wLTJ4LXRvdGFsLWhlaWdodDogMTQ0cHg7XG4kcmF0aW5nLTUtMC0yeC1pbWFnZTogJ3JhdGluZy1zcHJpdGVAMngucG5nJztcbiRyYXRpbmctNS0wLTJ4OiAoMTUycHgsIDk2cHgsIC0xNTJweCwgLTk2cHgsIDE1MnB4LCAyNHB4LCAzMDRweCwgMTQ0cHgsICdyYXRpbmctc3ByaXRlQDJ4LnBuZycsICdyYXRpbmctNV8wLTJ4JywgKTtcblxuJHNwcml0ZXNoZWV0LXdpZHRoOiAxNTJweDtcbiRzcHJpdGVzaGVldC1oZWlnaHQ6IDcycHg7XG4kc3ByaXRlc2hlZXQtaW1hZ2U6ICdyYXRpbmctc3ByaXRlLnBuZyc7XG4kc3ByaXRlc2hlZXQtc3ByaXRlczogKCRyYXRpbmctMC0wLCAkcmF0aW5nLTAtNSwgJHJhdGluZy0xLTAsICRyYXRpbmctMS01LCAkcmF0aW5nLTItMCwgJHJhdGluZy0yLTUsICRyYXRpbmctMy0wLCAkcmF0aW5nLTMtNSwgJHJhdGluZy00LTAsICRyYXRpbmctNC01LCAkcmF0aW5nLTUtMCwgKTtcbiRyYXRpbmdzLXNwcml0ZXM6ICgxNTJweCwgNzJweCwgJ3JhdGluZy1zcHJpdGUucG5nJywgJHNwcml0ZXNoZWV0LXNwcml0ZXMsICk7XG5cbi8qIFJFVElOQSAqL1xuXG4kcmV0aW5hLXNwcml0ZXNoZWV0LXdpZHRoOiAzMDRweDtcbiRyZXRpbmEtc3ByaXRlc2hlZXQtaGVpZ2h0OiAxNDRweDtcbiRyZXRpbmEtc3ByaXRlc2hlZXQtaW1hZ2U6ICdyYXRpbmctc3ByaXRlQDJ4LnBuZyc7XG4kcmV0aW5hLXNwcml0ZXNoZWV0LXNwcml0ZXM6ICgkcmF0aW5nLTAtMC0yeCwgJHJhdGluZy0wLTUtMngsICRyYXRpbmctMS0wLTJ4LCAkcmF0aW5nLTEtNS0yeCwgJHJhdGluZy0yLTAtMngsICRyYXRpbmctMi01LTJ4LCAkcmF0aW5nLTMtMC0yeCwgJHJhdGluZy0zLTUtMngsICRyYXRpbmctNC0wLTJ4LCAkcmF0aW5nLTQtNS0yeCwgJHJhdGluZy01LTAtMngsICk7XG4kcmV0aW5hLXNwcml0ZXNoZWV0OiAoMzA0cHgsIDE0NHB4LCAncmF0aW5nLXNwcml0ZUAyeC5wbmcnLCAkcmV0aW5hLXNwcml0ZXNoZWV0LXNwcml0ZXMsICk7XG5cbi8qXG5UaGVzZSBcInJldGluYSBncm91cFwiIHZhcmlhYmxlcyBhcmUgbWFwcGluZ3MgZm9yIHRoZSBuYW1pbmcgYW5kIHBhaXJpbmcgb2Ygbm9ybWFsIGFuZCByZXRpbmEgc3ByaXRlcy5cblxuVGhlIGxpc3QgZm9ybWF0dGVkIHZhcmlhYmxlcyBhcmUgaW50ZW5kZWQgZm9yIG1peGlucyBsaWtlIGByZXRpbmEtc3ByaXRlYCBhbmQgYHJldGluYS1zcHJpdGVzYC5cbiovXG4kcmF0aW5nLTAtMC1ncm91cC1uYW1lOiAncmF0aW5nLTBfMCc7XG4kcmF0aW5nLTAtMC1ncm91cDogKCdyYXRpbmctMF8wJywgJHJhdGluZy0wLTAsICRyYXRpbmctMC0wLTJ4LCApO1xuJHJhdGluZy0wLTUtZ3JvdXAtbmFtZTogJ3JhdGluZy0wXzUnO1xuJHJhdGluZy0wLTUtZ3JvdXA6ICgncmF0aW5nLTBfNScsICRyYXRpbmctMC01LCAkcmF0aW5nLTAtNS0yeCwgKTtcbiRyYXRpbmctMS0wLWdyb3VwLW5hbWU6ICdyYXRpbmctMV8wJztcbiRyYXRpbmctMS0wLWdyb3VwOiAoJ3JhdGluZy0xXzAnLCAkcmF0aW5nLTEtMCwgJHJhdGluZy0xLTAtMngsICk7XG4kcmF0aW5nLTEtNS1ncm91cC1uYW1lOiAncmF0aW5nLTFfNSc7XG4kcmF0aW5nLTEtNS1ncm91cDogKCdyYXRpbmctMV81JywgJHJhdGluZy0xLTUsICRyYXRpbmctMS01LTJ4LCApO1xuJHJhdGluZy0yLTAtZ3JvdXAtbmFtZTogJ3JhdGluZy0yXzAnO1xuJHJhdGluZy0yLTAtZ3JvdXA6ICgncmF0aW5nLTJfMCcsICRyYXRpbmctMi0wLCAkcmF0aW5nLTItMC0yeCwgKTtcbiRyYXRpbmctMi01LWdyb3VwLW5hbWU6ICdyYXRpbmctMl81JztcbiRyYXRpbmctMi01LWdyb3VwOiAoJ3JhdGluZy0yXzUnLCAkcmF0aW5nLTItNSwgJHJhdGluZy0yLTUtMngsICk7XG4kcmF0aW5nLTMtMC1ncm91cC1uYW1lOiAncmF0aW5nLTNfMCc7XG4kcmF0aW5nLTMtMC1ncm91cDogKCdyYXRpbmctM18wJywgJHJhdGluZy0zLTAsICRyYXRpbmctMy0wLTJ4LCApO1xuJHJhdGluZy0zLTUtZ3JvdXAtbmFtZTogJ3JhdGluZy0zXzUnO1xuJHJhdGluZy0zLTUtZ3JvdXA6ICgncmF0aW5nLTNfNScsICRyYXRpbmctMy01LCAkcmF0aW5nLTMtNS0yeCwgKTtcbiRyYXRpbmctNC0wLWdyb3VwLW5hbWU6ICdyYXRpbmctNF8wJztcbiRyYXRpbmctNC0wLWdyb3VwOiAoJ3JhdGluZy00XzAnLCAkcmF0aW5nLTQtMCwgJHJhdGluZy00LTAtMngsICk7XG4kcmF0aW5nLTQtNS1ncm91cC1uYW1lOiAncmF0aW5nLTRfNSc7XG4kcmF0aW5nLTQtNS1ncm91cDogKCdyYXRpbmctNF81JywgJHJhdGluZy00LTUsICRyYXRpbmctNC01LTJ4LCApO1xuJHJhdGluZy01LTAtZ3JvdXAtbmFtZTogJ3JhdGluZy01XzAnO1xuJHJhdGluZy01LTAtZ3JvdXA6ICgncmF0aW5nLTVfMCcsICRyYXRpbmctNS0wLCAkcmF0aW5nLTUtMC0yeCwgKTtcbiRyYXRpbmctcmV0aW5hLWdyb3VwczogKCRyYXRpbmctMC0wLWdyb3VwLCAkcmF0aW5nLTAtNS1ncm91cCwgJHJhdGluZy0xLTAtZ3JvdXAsICRyYXRpbmctMS01LWdyb3VwLCAkcmF0aW5nLTItMC1ncm91cCwgJHJhdGluZy0yLTUtZ3JvdXAsICRyYXRpbmctMy0wLWdyb3VwLCAkcmF0aW5nLTMtNS1ncm91cCwgJHJhdGluZy00LTAtZ3JvdXAsICRyYXRpbmctNC01LWdyb3VwLCAkcmF0aW5nLTUtMC1ncm91cCwgKTtcblxuLypcblRoZSBwcm92aWRlZCBtaXhpbnMgYXJlIGludGVuZGVkIHRvIGJlIHVzZWQgd2l0aCB0aGUgYXJyYXktbGlrZSB2YXJpYWJsZXNcblxuLmljb24taG9tZSB7XG4gIEBpbmNsdWRlIHNwcml0ZS13aWR0aCgkaWNvbi1ob21lKTtcbn1cblxuLmljb24tZW1haWwge1xuICBAaW5jbHVkZSBzcHJpdGUoJGljb24tZW1haWwpO1xufVxuKi9cbkBtaXhpbiByYXRpbmctc3ByaXRlLXdpZHRoKCRzcHJpdGUpIHtcbiAgd2lkdGg6IG50aCgkc3ByaXRlLCA1KTtcbn1cblxuQG1peGluIHJhdGluZy1zcHJpdGUtaGVpZ2h0KCRzcHJpdGUpIHtcbiAgaGVpZ2h0OiBudGgoJHNwcml0ZSwgNik7XG59XG5cbkBtaXhpbiByYXRpbmctc3ByaXRlLXBvc2l0aW9uKCRzcHJpdGUpIHtcbiAgJHNwcml0ZS1vZmZzZXQteDogbnRoKCRzcHJpdGUsIDMpO1xuICAkc3ByaXRlLW9mZnNldC15OiBudGgoJHNwcml0ZSwgNCk7XG4gIGJhY2tncm91bmQtcG9zaXRpb246ICRzcHJpdGUtb2Zmc2V0LXggICRzcHJpdGUtb2Zmc2V0LXk7XG59XG5cbkBtaXhpbiByYXRpbmctc3ByaXRlLWltYWdlKCRzcHJpdGUpIHtcbiAgJHNwcml0ZS1pbWFnZTogbnRoKCRzcHJpdGUsIDkpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoI3skc3ByaXRlLWltYWdlfSk7XG59XG5cbkBtaXhpbiByYXRpbmctc3ByaXRlKCRzcHJpdGUpIHtcbiAgQGluY2x1ZGUgcmF0aW5nLXNwcml0ZS1pbWFnZSgkc3ByaXRlKTtcbiAgQGluY2x1ZGUgcmF0aW5nLXNwcml0ZS1wb3NpdGlvbigkc3ByaXRlKTtcbiAgQGluY2x1ZGUgcmF0aW5nLXNwcml0ZS13aWR0aCgkc3ByaXRlKTtcbiAgQGluY2x1ZGUgcmF0aW5nLXNwcml0ZS1oZWlnaHQoJHNwcml0ZSk7XG59XG5cbkBtaXhpbiByYXRpbmctc3ByaXRlLWJhY2tncm91bmQtc2l6ZSgkc3ByaXRlKSB7XG4gICRzcHJpdGUtdG90YWwtd2lkdGg6IG50aCgkc3ByaXRlLCA3KTtcbiAgJHNwcml0ZS10b3RhbC1oZWlnaHQ6IG50aCgkc3ByaXRlLCA4KTtcbiAgYmFja2dyb3VuZC1zaXplOiAkc3ByaXRlLXRvdGFsLXdpZHRoICRzcHJpdGUtdG90YWwtaGVpZ2h0O1xufVxuXG5AbWl4aW4gcmF0aW5nLXJldGluYS1zcHJpdGUoJHJldGluYS1ncm91cCkge1xuICAkbm9ybWFsLXNwcml0ZTogbnRoKCRyZXRpbmEtZ3JvdXAsIDIpO1xuICAkcmV0aW5hLXNwcml0ZTogbnRoKCRyZXRpbmEtZ3JvdXAsIDMpO1xuICBAaW5jbHVkZSByYXRpbmctc3ByaXRlKCRub3JtYWwtc3ByaXRlKTtcblxuICBAbWVkaWEgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksXG4gICAgICAgICAobWluLXJlc29sdXRpb246IDE5MmRwaSkge1xuICAgIEBpbmNsdWRlIHJhdGluZy1zcHJpdGUtaW1hZ2UoJHJldGluYS1zcHJpdGUpO1xuICAgIEBpbmNsdWRlIHJhdGluZy1zcHJpdGUtYmFja2dyb3VuZC1zaXplKCRub3JtYWwtc3ByaXRlKTtcbiAgfVxufVxuXG4vKlxuVGhlIGBzcHJpdGVzYCBtaXhpbiBnZW5lcmF0ZXMgaWRlbnRpY2FsIG91dHB1dCB0byB0aGUgQ1NTIHRlbXBsYXRlXG4gIGJ1dCBjYW4gYmUgb3ZlcnJpZGRlbiBpbnNpZGUgb2YgU0NTU1xuXG5AaW5jbHVkZSBzcHJpdGVzKCRzcHJpdGVzaGVldC1zcHJpdGVzKTtcbiovXG5cbi8vIFJhdGluZ3Ncbi8vXG4vLyBNYXJrdXA6IHNwcml0ZS5odG1sXG4vL1xuLy8gLnNjLXJhdGluZy0wXzAgLSAmbmJzcDtcbi8vIC5zYy1yYXRpbmctMF81IC0gJm5ic3A7XG4vLyAuc2MtcmF0aW5nLTFfMCAtICZuYnNwO1xuLy8gLnNjLXJhdGluZy0xXzUgLSAmbmJzcDtcbi8vIC5zYy1yYXRpbmctMl8wIC0gJm5ic3A7XG4vLyAuc2MtcmF0aW5nLTJfNSAtICZuYnNwO1xuLy8gLnNjLXJhdGluZy0zXzAgLSAmbmJzcDtcbi8vIC5zYy1yYXRpbmctM181IC0gJm5ic3A7XG4vLyAuc2MtcmF0aW5nLTRfMCAtICZuYnNwO1xuLy8gLnNjLXJhdGluZy00XzUgLSAmbmJzcDtcbi8vIC5zYy1yYXRpbmctNV8wIC0gJm5ic3A7XG4vL1xuLy8gU3R5bGUgZ3VpZGU6IDExLjBcblxuW2NsYXNzKj1zYy1yYXRpbmddIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG5AbWl4aW4gcmF0aW5ncy1zcHJpdGVzKCRzcHJpdGVzKSB7XG4gIEBlYWNoICRzcHJpdGUgaW4gJHNwcml0ZXMge1xuICAgICRzcHJpdGUtbmFtZTogbnRoKCRzcHJpdGUsIDEwKTtcbiAgICAuc2MtI3skc3ByaXRlLW5hbWV9IHtcbiAgICAgIEBpbmNsdWRlIHJhdGluZy1zcHJpdGUoJHNwcml0ZSk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiByZXRpbmEtcmF0aW5ncy1zcHJpdGVzKCRyZXRpbmEtZ3JvdXBzKSB7XG4gIEBlYWNoICRyZXRpbmEtZ3JvdXAgaW4gJHJldGluYS1ncm91cHMge1xuICAgICRzcHJpdGUtbmFtZTogbnRoKCRyZXRpbmEtZ3JvdXAsIDEpO1xuICAgIC5zYy0jeyRzcHJpdGUtbmFtZX0ge1xuICAgICAgQGluY2x1ZGUgcmF0aW5nLXJldGluYS1zcHJpdGUoJHJldGluYS1ncm91cCk7XG4gICAgfVxuICB9XG59XG4iLCJAZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwic2NJY29uc1wiO1xuICBzcmM6IHVybCgnLi9mb250cy9zY0ljb25zLmVvdCcpO1xuICBzcmM6IHVybCgnLi9mb250cy9zY0ljb25zLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VvdCcpLFxuICAgIHVybCgnLi9mb250cy9zY0ljb25zLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICB1cmwoJy4vZm9udHMvc2NJY29ucy50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksXG4gICAgdXJsKCcuL2ZvbnRzL3NjSWNvbnMuc3ZnI3NjSWNvbnMnKSBmb3JtYXQoJ3N2ZycpO1xufVxuXG4laWNvbiB7XG4gIGZvbnQtZmFtaWx5OiBcInNjSWNvbnNcIjtcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICAvLyBzcGVhazogbm9uZTsgLy8gb25seSBuZWNlc3NhcnkgaWYgbm90IHVzaW5nIHRoZSBwcml2YXRlIHVuaWNvZGUgcmFuZ2UgKGZpcnN0R2x5cGggb3B0aW9uKVxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG5AZnVuY3Rpb24gaWNvbi1jaGFyKCRmaWxlbmFtZSkge1xuICAkY2hhcjogXCJcIjtcblxuICBAaWYgJGZpbGVuYW1lID09IGNhcmV0IHtcbiAgICAkY2hhcjogXCJcXO6ogVwiO1xuICB9XG5cbiAgQHJldHVybiAkY2hhcjtcbn1cblxuQG1peGluIGljb24oJGZpbGVuYW1lLCAkaW5zZXJ0OiBiZWZvcmUpIHtcbiAgJjojeyRpbnNlcnR9IHtcbiAgICBAZXh0ZW5kICVpY29uO1xuICAgIGNvbnRlbnQ6IGljb24tY2hhcigkZmlsZW5hbWUpO1xuICB9XG59XG5cbi5zYy1pY29uLWNhcmV0IHtcbiAgQGluY2x1ZGUgaWNvbihjYXJldCk7XG59XG4iXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0= */