/* Neat 1.7.0
 * http://neat.bourbon.io
 * Copyright 2012-2014 thoughtbot, inc.
 * MIT License */
html {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box; }

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

.clearfix, .grid-items .row, .filter-bar, .product-list, .item-list, .locator-search .locator-search-content, .newsletter__signup fieldset, .header-desktop .header-top, .subheader-drawer, .professional-landing .form__login-form .form__login-form__footer-content, .before-after-content .before-after-content__treatment-products .before-after-content__treatment-products__products {
  *zoom: 1; }
  .clearfix:before, .grid-items .row:before, .filter-bar:before, .product-list:before, .item-list:before, .locator-search .locator-search-content:before, .newsletter__signup fieldset:before, .header-desktop .header-top:before, .subheader-drawer:before, .professional-landing .form__login-form .form__login-form__footer-content:before, .before-after-content .before-after-content__treatment-products .before-after-content__treatment-products__products:before, .clearfix:after, .grid-items .row:after, .filter-bar:after, .product-list:after, .item-list:after, .locator-search .locator-search-content:after, .newsletter__signup fieldset:after, .header-desktop .header-top:after, .subheader-drawer:after, .professional-landing .form__login-form .form__login-form__footer-content:after, .before-after-content .before-after-content__treatment-products .before-after-content__treatment-products__products:after {
    content: " ";
    display: table; }
  .clearfix:after, .grid-items .row:after, .filter-bar:after, .product-list:after, .item-list:after, .locator-search .locator-search-content:after, .newsletter__signup fieldset:after, .header-desktop .header-top:after, .subheader-drawer:after, .professional-landing .form__login-form .form__login-form__footer-content:after, .before-after-content .before-after-content__treatment-products .before-after-content__treatment-products__products:after {
    clear: both; }

/*! normalize.css v3.0.0 | MIT License | git.io/normalize */
/**
 * 1. Set default font family to sans-serif.
 * 2. Prevent iOS text size adjust after orientation change, without disabling
 *    user zoom.
 */
html {
  font-family: sans-serif;
  /* 1 */
  -ms-text-size-adjust: 100%;
  /* 2 */
  -webkit-text-size-adjust: 100%;
  /* 2 */ }

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

/* HTML5 display definitions
   ========================================================================== */
/**
 * Correct `block` display not defined in IE 8/9.
 */
article, aside, details, figcaption, figure, footer, header, hgroup, main, nav, section, summary {
  display: block; }

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

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

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

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

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

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

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

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

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

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

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

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

sup {
  top: -0.5em; }

sub {
  bottom: -0.25em; }

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

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

/* Grouping content
   ========================================================================== */
/**
 * Address margin not present in IE 8/9 and Safari 5.
 */
figure {
  margin: 0;
  padding: 0; }

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

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

/**
 * Address odd `em`-unit font size rendering in all browsers.
 */
code, kbd, pre, samp {
  font-family: monospace, monospace;
  font-size: 1em; }

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

/**
 * Address `overflow` set to `hidden` in IE 8/9/10.
 */
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+, and Opera
 * Correct `select` style inheritance in Firefox.
 */
button, select {
  text-transform: none; }

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

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

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

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

/**
 * It's recommended that you don't attempt to style these elements.
 * Firefox's implementation doesn't respect box-sizing, padding, or width.
 *
 * 1. Address box sizing set to `content-box` in IE 8/9/10.
 * 2. Remove excess padding in IE 8/9/10.
 */
input[type="checkbox"], input[type="radio"] {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  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 5 and Chrome.
 * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome
 *    (include `-moz` to future-proof).
 */
input[type="search"] {
  -webkit-appearance: textfield;
  /* 1 */
  -moz-box-sizing: content-box;
  -webkit-box-sizing: content-box;
  /* 2 */
  box-sizing: content-box; }

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

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

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

/**
 * Remove default vertical scrollbar in IE 8/9.
 */
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; }

/*@import url("http://fast.fonts.net/t/1.css?apiType=css&projectid=00c2f369-acae-4f84-907a-7eac222b109b");*/
@font-face {
  font-family: "HelveticaNeueW01-Thin";
  src: url("../../fonts/consumers/56be84de-9d60-4089-8df0-0ea6ec786b84.eot?#iefix");
  src: url("../../fonts/consumers/56be84de-9d60-4089-8df0-0ea6ec786b84.eot?#iefix") format("eot"), url("../../fonts/consumers/50d35bbc-dfd4-48f1-af16-cf058f69421d.woff") format("woff"), url("../../fonts/consumers/278bef59-6be1-4800-b5ac-1f769ab47430.ttf") format("truetype"), url("../../fonts/consumers/2e309b1b-08b8-477f-bc9e-7067cf0af0b3.svg#2e309b1b-08b8-477f-bc9e-7067cf0af0b3") format("svg");
  font-weight: normal;
  font-style: normal; }

@font-face {
  font-family: "HelveticaNeueW01-ThinIt";
  src: url("../../fonts/consumers/1cc063b6-7e7b-4880-9905-0d3d4f9c7c7d.eot?#iefix");
  src: url("../../fonts/consumers/1cc063b6-7e7b-4880-9905-0d3d4f9c7c7d.eot?#iefix") format("eot"), url("../../fonts/consumers/b6d63cb7-64b5-4d39-beaf-a8d9fe5eb1df.woff") format("woff"), url("../../fonts/consumers/284ad777-0022-42a3-9197-c449457c670a.ttf") format("truetype"), url("../../fonts/consumers/202b6353-ffff-45b1-9a1a-89497323d7ed.svg#202b6353-ffff-45b1-9a1a-89497323d7ed") format("svg");
  font-weight: normal;
  font-style: normal; }

@font-face {
  font-family: "HelveticaNeueW01-45Ligh";
  src: url("../../fonts/consumers/ae1656aa-5f8f-4905-aed0-93e667bd6e4a.eot?#iefix");
  src: url("../../fonts/consumers/ae1656aa-5f8f-4905-aed0-93e667bd6e4a.eot?#iefix") format("eot"), url("../../fonts/consumers/530dee22-e3c1-4e9f-bf62-c31d510d9656.woff") format("woff"), url("../../fonts/consumers/688ab72b-4deb-4e15-a088-89166978d469.ttf") format("truetype"), url("../../fonts/consumers/7816f72f-f47e-4715-8cd7-960e3723846a.svg#7816f72f-f47e-4715-8cd7-960e3723846a") format("svg");
  font-weight: normal;
  font-style: normal; }

@font-face {
  font-family: "HelveticaNeueW01-46Ligh";
  src: url("../../fonts/consumers/a4f9f319-dec9-4afc-8b50-e18cc1b61cb4.eot?#iefix");
  src: url("../../fonts/consumers/a4f9f319-dec9-4afc-8b50-e18cc1b61cb4.eot?#iefix") format("eot"), url("../../fonts/consumers/8e9ee02b-f337-4f13-ad6c-969d6d6536c8.woff") format("woff"), url("../../fonts/consumers/beddbbc6-203e-4f36-8960-3f5ca22af567.ttf") format("truetype"), url("../../fonts/consumers/af177436-d9e8-44e8-9c9c-ef2d945f20a3.svg#af177436-d9e8-44e8-9c9c-ef2d945f20a3") format("svg");
  font-weight: normal;
  font-style: normal; }

@font-face {
  font-family: "HelveticaNeueW01-55Roma";
  src: url("../../fonts/consumers/b7693a83-b861-4aa6-85e0-9ecf676bc4d6.eot?#iefix");
  src: url("../../fonts/consumers/b7693a83-b861-4aa6-85e0-9ecf676bc4d6.eot?#iefix") format("eot"), url("../../fonts/consumers/bcf54343-d033-41ee-bbd7-2b77df3fe7ba.woff") format("woff"), url("../../fonts/consumers/b0ffdcf0-26da-47fd-8485-20e4a40d4b7d.ttf") format("truetype"), url("../../fonts/consumers/da09f1f1-062a-45af-86e1-2bbdb3dd94f9.svg#da09f1f1-062a-45af-86e1-2bbdb3dd94f9") format("svg");
  font-weight: normal;
  font-style: normal; }

@font-face {
  font-family: "HelveticaNeueW01-65Medi";
  src: url("../../fonts/consumers/07fe0fec-b63f-4963-8ee1-535528b67fdb.eot?#iefix");
  src: url("../../fonts/consumers/07fe0fec-b63f-4963-8ee1-535528b67fdb.eot?#iefix") format("eot"), url("../../fonts/consumers/60be5c39-863e-40cb-9434-6ebafb62ab2b.woff") format("woff"), url("../../fonts/consumers/4c6503c9-859b-4d3b-a1d5-2d42e1222415.ttf") format("truetype"), url("../../fonts/consumers/36c182c6-ef98-4021-9b0d-d63122c2bbf5.svg#36c182c6-ef98-4021-9b0d-d63122c2bbf5") format("svg");
  font-weight: normal;
  font-style: normal; }

@font-face {
  font-family: "HelveticaNeueW01-75Bold";
  src: url("../../fonts/consumers/c07fef9e-a934-42d7-92ad-69205f2b8a00.eot?#iefix");
  src: url("../../fonts/consumers/c07fef9e-a934-42d7-92ad-69205f2b8a00.eot?#iefix") format("eot"), url("../../fonts/consumers/14ff6081-326d-4dae-b778-d7afa66166fc.woff") format("woff"), url("../../fonts/consumers/8fda1e47-19be-46c7-8d83-8d4fb35572f0.ttf") format("truetype"), url("../../fonts/consumers/f751c8ae-1057-46d9-8d74-62592e002568.svg#f751c8ae-1057-46d9-8d74-62592e002568") format("svg");
  font-weight: normal;
  font-style: normal; }

@font-face {
  font-family: "HelveticaNeueW01-ThinEx_710288";
  src: url("../../fonts/consumers/a09341a0-3923-494f-8b71-9083f1123649.eot?#iefix");
  src: url("../../fonts/consumers/a09341a0-3923-494f-8b71-9083f1123649.eot?#iefix") format("eot"), url("../../fonts/consumers/8b105f29-73d5-4373-882d-bb4323e358c0.woff") format("woff"), url("../../fonts/consumers/0e820efb-cef9-4cfa-915b-3df0080e7eea.ttf") format("truetype"), url("../../fonts/consumers/d3b7511e-d65a-45f9-b2a7-388ebe75ae87.svg#d3b7511e-d65a-45f9-b2a7-388ebe75ae87") format("svg");
  font-weight: normal;
  font-style: normal; }

@font-face {
  font-family: "HelveticaNeueW01-LtExt";
  src: url("../../fonts/consumers/5ba464d0-2dd1-4258-b905-fbc064b62880.eot?#iefix");
  src: url("../../fonts/consumers/5ba464d0-2dd1-4258-b905-fbc064b62880.eot?#iefix") format("eot"), url("../../fonts/consumers/ce0ead1e-4eb1-4535-898a-b801a2313639.woff") format("woff"), url("../../fonts/consumers/5b9a6f8c-0b7e-4c58-914d-e7bdfa970620.ttf") format("truetype"), url("../../fonts/consumers/73d71c74-a57d-44af-96cf-031046271dab.svg#73d71c74-a57d-44af-96cf-031046271dab") format("svg");
  font-weight: normal;
  font-style: normal; }

@font-face {
  font-family: "HelveticaNeueW01_53 Ext";
  src: url("../../fonts/consumers/8fbe1c6a-a910-474d-ac42-8a2bc9249af4.eot?#iefix");
  src: url("../../fonts/consumers/8fbe1c6a-a910-474d-ac42-8a2bc9249af4.eot?#iefix") format("eot"), url("../../fonts/consumers/f3f4b1c8-520e-4141-9f6f-8e21a2857a9c.woff") format("woff"), url("../../fonts/consumers/774feb13-4351-429a-8c47-2bec5277e372.ttf") format("truetype"), url("../../fonts/consumers/929a2d07-7af1-4552-aa8a-ea9a9622f0af.svg#929a2d07-7af1-4552-aa8a-ea9a9622f0af") format("svg");
  font-weight: normal;
  font-style: normal; }

.font-standard-thin, a, input[type=text], textarea, .select-container select, .btn, button.view-details, .button.view-details, .button-view-details, button.view-details-plus, .button.view-details-plus, button.search-map, .button.search-map, button.read-more, .button.read-more, .button.standard, button.category-tab, .button.category-tab, button.shop-now, .button.shop-now, .button.standard-black, button.standard-black, .button.standard-white, button.standard-white, button.go-top::before, .button.go-top::before, .section__title, .container__content-header__header, .product-item-title, .item-title, .timeline .timeline__slide-container .slide--intro .slide--intro__title, .timeline .timeline__slide-container .slide--end .slide--intro__title, .timeline .timeline__slide-container .slide--template1 .slide--template1__subtitle, .timeline .timeline__slide-container .slide--template1 .slide--template1__description, .article-item__head, .questionnaire .questionnaire__question .questionnaire__question__question, .medium-block .medium-block__header, .three-column .three-column__title, .newsletter__signup h2, .newsletter__signup h3, .header-desktop .nav-main__nav-container .main-nav__nav-column__title, .header-desktop .nav-main__featured-products .nav-main__featured-products__item, .subheader-products, .subheader-products h2, .main-footer, .global-search .global-search__input, .global-search .global-search__num-results, .global-search .global-search__view-all a, .global-support .global-support__subheader, .global-support .global-support__header, .global-support .global-support__submit, .page.weightless-protection .weightless-protection__header .weightless-protection__header__title, .page.ideal-complex .ideal-complex__header, .page.the-power-couple .the-power-couple__header, .page.the-power-couple .the-power-couple__title {
  font-family: 'HelveticaNeueW01-Thin', sans-serif;
  font-weight: normal; }

.font-standard-thin-italic, .grid-item blockquote, .questionnaire .questionnaire__pages-info {
  font-family: 'HelveticaNeueW01-ThinIt', sans-serif;
  font-weight: normal; }

.font-standard-light, input.large, .grid-item .title, .timeline .timeline__time .timeline__time__point, .locator-search .content-form .header, .questionnaire .questionnaire__choice, .questionnaire .questionnaire__description, .product-details-panel .product-details-panel__bullets, .product-details-panel .product-details-panel__price, .fullpage__scroll-cta .fullpage__scroll-cta__copy, .header-mobile .navigation-container .links-container .link:last-child, .header-mobile .navigation-container .nav-site-switch, .subheader, .subheader-drawer .subheader-items__active-item__title, .main-footer .social .social__title, .global-support .global-support__form input, .global-support .global-support__form textarea, .cart-container .cart-container__title, .cart-container .cart-container__list__item__title, .professional-landing .form__login-form .form__title, .before-after-content .before-after-content__treatment-products .before-after-content__treatment-products__header, .product-details-page .product-header .product-header__media-mention__copy, .product-details-page .two-column-dark__column .product-information__header, .product-details-page .product-details__ingredients, .page.ideal-complex .ideal-complex__title--alt, .page.the-power-couple .the-power-couple__liquid-bounding .the-power-couple__liquid-bounding__bottom .bottom__copy {
  font-family: 'HelveticaNeueW01-45Ligh', sans-serif;
  font-weight: normal; }

.font-standard-light-italic, .timeline .timeline__slide-container .slide--intro .slide--intro__description, .timeline .timeline__slide-container .slide--end .slide--intro__description {
  font-family: 'HelveticaNeueW01-46Ligh', sans-serif;
  font-weight: normal; }

.font-standard-roman, body, .article-item__subhead, .product-details-panel .product-details-panel__rating .product-details-panel__rating__read-more, .header-desktop a.header-top__link, .header-desktop .nav-main__nav-container .main-nav__nav-column__links--detailed, .header-desktop .nav-main__nav-container .main-nav__nav-column__extra, .header-desktop .nav-main__nav-container .main-nav__nav-column__shop-all, .fixed-footer a, .page.the-power-couple .the-power-couple__model-bounding .model-bounding__description {
  font-family: 'HelveticaNeueW01-55Roma', sans-serif;
  font-weight: normal; }

.font-standard-medium, .grid-item p, .timeline .timeline__slide-container .slide--intro .slide--intro__dates, .timeline .timeline__slide-container .slide--end .slide--intro__dates, .timeline .timeline__slide-container .slide--template1 .slide--template1__title, .timeline .timeline__slide-container .slide--template1 .slide--template1__link a, .locator-search .content-form .subheader, .locator-search .content-form input, .questionnaire .questionnaire__description .questionnaire__description__name, .product-details-panel .product-details-panel__product-title, .product-details-panel .product-details-panel__product-sub-title, .product-details-panel .product-details-panel__product-description, .tooltip .tooltip__header, .tooltip .tooltip__subheader, .header-desktop .nav-main__nav-container .main-nav__nav-column__shop-all .shop-all-link, .subheader-drawer .subheader-items__active-item__help-link-container a, .subheader-drawer .subheader-items__active-item__shop-link-container, .global-search .global-search__num-results .global-search__results-search-term, .global-support .global-support__phone, .professional-landing .form__login-form a, .product-details-page .product-details__ingredients .product-details__ingredients__name {
  font-family: 'HelveticaNeueW01-65Medi', sans-serif;
  font-weight: normal; }

.font-standard-bold, .section__subtitle, .container__content-header__subheader, .timeline .timeline__slide-container .slide--intro .slide--intro__subtitle, .timeline .timeline__slide-container .slide--end .slide--intro__subtitle, .medium-block .medium-block__subheader, .cart-container .cart-container__list__item__price, .cart-container .cart-container__subtotal, .product-details-page .two-column-dark__column .product-information__subheader, .page.weightless-protection .weightless-protection__header .weightless-protection__header__subtitle, .page.weightless-protection .weightless-protection__product-splash .weightless-protection__header--slide-4 .weightless-protection__header__description .weightless-protection__header__description__bold, .page.weightless-protection .info .info__description__bold, .page.ideal-complex .ideal-complex__subheader, .page.ideal-complex .ideal-complex__title, .page.the-power-couple .the-power-couple__subheader, .page.the-power-couple .the-power-couple__description .bold, .page.the-power-couple .the-power-couple__model-bounding .model-bounding__description .bold {
  font-family: 'HelveticaNeueW01-75Bold', sans-serif;
  font-weight: normal; }

.font-standard-thin-expanded, .filter-bar__group__title, .filter-dropdown, .product-item-type h3 {
  font-family: 'HelveticaNeueW01-ThinEx_710288', sans-serif;
  font-weight: normal; }

.font-standard-light-expanded, .loading__copy, .header-desktop .nav-main__links .nav-main__links__title, .page.the-power-couple .the-power-couple__liquid-bounding .the-power-couple__liquid-bounding__bottom .price {
  font-family: 'HelveticaNeueW01-LtExt', sans-serif;
  font-weight: normal; }

.font-standard-expanded, .product-item-cost, .page.weightless-protection .price-box .price-box__price, .page.ideal-complex .section-4--fixed .section-4__inner-col .section-4__price {
  font-family: 'HelveticaNeueW01_53 Ext', sans-serif;
  font-weight: normal; }

.font-smooth, .font-standard-thin, a, input[type=text], textarea, .select-container select, .btn, button.view-details, .button.view-details, .button-view-details, button.view-details-plus, .button.view-details-plus, button.search-map, .button.search-map, button.read-more, .button.read-more, .button.standard, button.category-tab, .button.category-tab, button.shop-now, .button.shop-now, .button.standard-black, button.standard-black, .button.standard-white, button.standard-white, button.go-top::before, .button.go-top::before, .section__title, .container__content-header__header, .product-item-title, .item-title, .timeline .timeline__slide-container .slide--intro .slide--intro__title, .timeline .timeline__slide-container .slide--end .slide--intro__title, .timeline .timeline__slide-container .slide--template1 .slide--template1__subtitle, .timeline .timeline__slide-container .slide--template1 .slide--template1__description, .article-item__head, .questionnaire .questionnaire__question .questionnaire__question__question, .medium-block .medium-block__header, .three-column .three-column__title, .newsletter__signup h2, .newsletter__signup h3, .header-desktop .nav-main__nav-container .main-nav__nav-column__title, .header-desktop .nav-main__featured-products .nav-main__featured-products__item, .subheader-products, .subheader-products h2, .main-footer, .global-search .global-search__input, .global-search .global-search__num-results, .global-search .global-search__view-all a, .global-support .global-support__subheader, .global-support .global-support__header, .global-support .global-support__submit, .page.weightless-protection .weightless-protection__header .weightless-protection__header__title, .page.ideal-complex .ideal-complex__header, .page.the-power-couple .the-power-couple__header, .page.the-power-couple .the-power-couple__title, .font-standard-thin-italic, .grid-item blockquote, .questionnaire .questionnaire__pages-info, .font-standard-light, input.large, .grid-item .title, .timeline .timeline__time .timeline__time__point, .locator-search .content-form .header, .questionnaire .questionnaire__choice, .questionnaire .questionnaire__description, .product-details-panel .product-details-panel__bullets, .product-details-panel .product-details-panel__price, .fullpage__scroll-cta .fullpage__scroll-cta__copy, .header-mobile .navigation-container .links-container .link:last-child, .header-mobile .navigation-container .nav-site-switch, .subheader, .subheader-drawer .subheader-items__active-item__title, .main-footer .social .social__title, .global-support .global-support__form input, .global-support .global-support__form textarea, .cart-container .cart-container__title, .cart-container .cart-container__list__item__title, .professional-landing .form__login-form .form__title, .before-after-content .before-after-content__treatment-products .before-after-content__treatment-products__header, .product-details-page .product-header .product-header__media-mention__copy, .product-details-page .two-column-dark__column .product-information__header, .product-details-page .product-details__ingredients, .page.ideal-complex .ideal-complex__title--alt, .page.the-power-couple .the-power-couple__liquid-bounding .the-power-couple__liquid-bounding__bottom .bottom__copy, .font-standard-light-italic, .timeline .timeline__slide-container .slide--intro .slide--intro__description, .timeline .timeline__slide-container .slide--end .slide--intro__description, .font-standard-roman, body, .article-item__subhead, .product-details-panel .product-details-panel__rating .product-details-panel__rating__read-more, .header-desktop a.header-top__link, .header-desktop .nav-main__nav-container .main-nav__nav-column__links--detailed, .header-desktop .nav-main__nav-container .main-nav__nav-column__extra, .header-desktop .nav-main__nav-container .main-nav__nav-column__shop-all, .fixed-footer a, .page.the-power-couple .the-power-couple__model-bounding .model-bounding__description, .font-standard-medium, .grid-item p, .timeline .timeline__slide-container .slide--intro .slide--intro__dates, .timeline .timeline__slide-container .slide--end .slide--intro__dates, .timeline .timeline__slide-container .slide--template1 .slide--template1__title, .timeline .timeline__slide-container .slide--template1 .slide--template1__link a, .locator-search .content-form .subheader, .locator-search .content-form input, .questionnaire .questionnaire__description .questionnaire__description__name, .product-details-panel .product-details-panel__product-title, .product-details-panel .product-details-panel__product-sub-title, .product-details-panel .product-details-panel__product-description, .tooltip .tooltip__header, .tooltip .tooltip__subheader, .header-desktop .nav-main__nav-container .main-nav__nav-column__shop-all .shop-all-link, .subheader-drawer .subheader-items__active-item__help-link-container a, .subheader-drawer .subheader-items__active-item__shop-link-container, .global-search .global-search__num-results .global-search__results-search-term, .global-support .global-support__phone, .professional-landing .form__login-form a, .product-details-page .product-details__ingredients .product-details__ingredients__name, .font-standard-bold, .section__subtitle, .container__content-header__subheader, .timeline .timeline__slide-container .slide--intro .slide--intro__subtitle, .timeline .timeline__slide-container .slide--end .slide--intro__subtitle, .medium-block .medium-block__subheader, .cart-container .cart-container__list__item__price, .cart-container .cart-container__subtotal, .product-details-page .two-column-dark__column .product-information__subheader, .page.weightless-protection .weightless-protection__header .weightless-protection__header__subtitle, .page.weightless-protection .weightless-protection__product-splash .weightless-protection__header--slide-4 .weightless-protection__header__description .weightless-protection__header__description__bold, .page.weightless-protection .info .info__description__bold, .page.ideal-complex .ideal-complex__subheader, .page.ideal-complex .ideal-complex__title, .page.the-power-couple .the-power-couple__subheader, .page.the-power-couple .the-power-couple__description .bold, .page.the-power-couple .the-power-couple__model-bounding .model-bounding__description .bold, .font-standard-thin-expanded, .filter-bar__group__title, .filter-dropdown, .product-item-type h3, .font-standard-light-expanded, .loading__copy, .header-desktop .nav-main__links .nav-main__links__title, .page.the-power-couple .the-power-couple__liquid-bounding .the-power-couple__liquid-bounding__bottom .price, .font-standard-expanded, .product-item-cost, .page.weightless-protection .price-box .price-box__price, .page.ideal-complex .section-4--fixed .section-4__inner-col .section-4__price, .icon {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

/*
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;
*/
/*
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);
}
*/
@font-face {
  font-family: "pcafonts";
  src: url('../../fonts/consumers/pcafonts.eot');
  src: url('../../fonts/consumers/pcafonts.eot?#iefix') format('eot'), url('../../fonts/consumers/pcafonts.woff') format('woff'), url('../../fonts/consumers/pcafonts.ttf') format('truetype'), url('../../fonts/consumers/pcafonts.svg#pcafonts') format('svg'); }

.icon-_size-reference:before, .icon-back-to-top:before, .icon-caret-thin:before, .icon-caret:before, .icon-cart:before, .icon-chat:before, .icon-close:before, .icon-droplette:before, .icon-facebook-f:before, .icon-facebook:before, .icon-flask:before, .icon-google-plus:before, .icon-hamburger:before, .icon-instagram:before, .icon-linked-in:before, .icon-location:before, .icon-logo:before, .icon-molecule:before, .icon-moon:before, .icon-phone:before, .icon-pinterest:before, .icon-plus:before, .icon-rain-cloud:before, .icon-rss:before, .icon-search:before, .icon-shield:before, .icon-star:before, .icon-sun:before, .icon-tag:before, .icon-trust-the-experts:before, .icon-twitter:before, .icon-user:before, .icon-vimeo:before, .icon-youtube:before {
  font-family: "pcafonts";
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-style: normal;
  font-variant: normal;
  font-weight: normal;
  text-decoration: none;
  text-transform: none; }

.icon-_size-reference:before {
  content: "\E001"; }

.icon-back-to-top:before {
  content: "\E002"; }

.icon-caret-thin:before {
  content: "\E003"; }

.icon-caret:before {
  content: "\E004"; }

.icon-cart:before {
  content: "\E005"; }

.icon-chat:before {
  content: "\E006"; }

.icon-close:before {
  content: "\E007"; }

.icon-droplette:before {
  content: "\E008"; }

.icon-facebook-f:before {
  content: "\E009"; }

.icon-facebook:before {
  content: "\E00A"; }

.icon-flask:before {
  content: "\E00B"; }

.icon-google-plus:before {
  content: "\E00C"; }

.icon-hamburger:before {
  content: "\E00D"; }

.icon-instagram:before {
  content: "\E00E"; }

.icon-linked-in:before {
  content: "\E00F"; }

.icon-location:before {
  content: "\E010"; }

.icon-logo:before {
  content: "\E011"; }

.icon-molecule:before {
  content: "\E012"; }

.icon-moon:before {
  content: "\E013"; }

.icon-phone:before {
  content: "\E014"; }

.icon-pinterest:before {
  content: "\E015"; }

.icon-plus:before {
  content: "\E016"; }

.icon-rain-cloud:before {
  content: "\E017"; }

.icon-rss:before {
  content: "\E018"; }

.icon-search:before {
  content: "\E019"; }

.icon-shield:before {
  content: "\E01A"; }

.icon-star:before {
  content: "\E01B"; }

.icon-sun:before {
  content: "\E01C"; }

.icon-tag:before {
  content: "\E01D"; }

.icon-trust-the-experts:before {
  content: "\E01E"; }

.icon-twitter:before {
  content: "\E01F"; }

.icon-user:before {
  content: "\E020"; }

.icon-vimeo:before {
  content: "\E021"; }

.icon-youtube:before {
  content: "\E022"; }

html {
  font-size: 62.5%; }
  html.scroll-lock body {
    overflow: hidden;
    position: fixed; }
  html.show {
    overflow: initial !important; }
    html.show body {
      overflow: initial !important; }
  @media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
    html.show {
      overflow: inherit !important; }
      html.show body {
        overflow: inherit !important; } }

html, body {
  height: 100%;
  width: 100%;
  padding: 0;
  margin: 0; }

body {
  font-size: 16px;
  font-size: 1.6rem;
  color: #c3c3c3;
  margin: 0; }

.app {
  padding-top: 80px;
  padding-top: 8rem; }
  @media screen and (min-width: 768px)  {
    .app {
      overflow-x: hidden;
      padding-top: 151px; } }
  @media screen and (min-width: 960px)  {
    .app {
      padding-top: 154px; } }

*, :before, :after {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box; }

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

a {
  font-size: 15px;
  font-size: 1.5rem;
  font-weight: bold;
  text-decoration: none; }
  a:link, a:visited {
    color: #000; }
  a:active {
    color: #5daee3; }
  a:hover {
    color: #5daee3; }

input[type=text], textarea {
  padding: 17px 19px;
  padding: 1.7rem 1.9rem;
  font-size: 13px;
  font-size: 1.3rem;
  outline: none;
  border: 1px solid transparent; }
  input[type=text].gray-bordered, textarea.gray-bordered {
    border: 1px solid #c3c3c3; }
  input[type=text].light, textarea.light {
    color: #595959; }
  input[type=text].dark, textarea.dark {
    background-color: #000; }
    input[type=text].dark::-webkit-input-placeholder, textarea.dark::-webkit-input-placeholder {
      color: #5b5b5b; }
    input[type=text].dark::-moz-placeholder, textarea.dark::-moz-placeholder {
      color: #5b5b5b; }
    input[type=text].dark:-ms-input-placeholder, textarea.dark:-ms-input-placeholder {
      color: #5b5b5b; }
  input[type=text]:focus, textarea:focus {
    color: #5daee3;
    border-color: #5daee3; }
    input[type=text]:focus::-webkit-input-placeholder, textarea:focus::-webkit-input-placeholder {
      color: #5daee3; }
    input[type=text]:focus::-moz-placeholder, textarea:focus::-moz-placeholder {
      color: #5daee3; }
    input[type=text]:focus:-ms-input-placeholder, textarea:focus:-ms-input-placeholder {
      color: #5daee3; }

input.large {
  font-size: 14px;
  font-size: 1.4rem;
  border-radius: 6px;
  padding: 7px; }
  input.large.dark {
    border: 1px solid #3a3a3a; }
  input.large:focus {
    border-color: #5daee3; }
  @media screen and (min-width: 768px)  {
    input.large {
      font-size: 20px;
      font-size: 2rem;
      padding: 13px; } }

.select-container {
  position: relative;
  display: inline-block; }
  .select-container select {
    padding: 7px;
    padding: 0.7rem;
    padding-right: 42px;
    padding-right: 4.2rem;
    font-size: 15px;
    font-size: 1.5rem;
    color: #000;
    background-color: #fff;
    border: 1px solid transparent;
    border-radius: 5px;
    outline: none;
    font-weight: 100;
    -webkit-appearance: none;
    -moz-appearance: none; }
    @media screen and (min-width: 768px)  {
      .select-container select {
        font-size: 20px;
        font-size: 2rem;
        padding: 12px;
        padding: 1.2rem; } }
    .select-container select:hover {
      border-color: #5daee3; }
    .select-container select::-ms-expand {
      display: none; }
  .select-container select::-ms-expand {
    display: none; }
  .select-container .icon {
    position: absolute;
    top: 13px;
    right: 9px;
    color: #000;
    font-size: 7px;
    pointer-events: none; }
    @media screen and (min-width: 768px)  {
      .select-container .icon {
        top: 21px; } }
  .select-container.small select {
    font-size: 15px;
    font-size: 1.5rem;
    padding: 7px;
    padding: 0.7rem; }
  .select-container.small .icon {
    top: 13px; }

.quantity-buy-container {
  display: inline-block;
  border: 1px solid #61aee1;
  border-radius: 6px; }
  .quantity-buy-container select {
    border-radius: 5px;
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
    min-width: 71px;
    border: none;
    padding-right: 22px;
    padding-right: 2.2rem;
    height: 33px; }
    @media screen and (min-width: 768px)  {
      .quantity-buy-container select {
        min-width: 100px;
        padding-right: 42px;
        padding-right: 4.2rem;
        height: 50px; } }
  .quantity-buy-container .search-map {
    vertical-align: top;
    border-radius: 3px;
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
    font-size: 15px;
    font-size: 1.5rem;
    padding: 8px;
    padding: 0.8rem;
    height: 33px; }
    @media screen and (min-width: 768px)  {
      .quantity-buy-container .search-map {
        font-size: 20px;
        font-size: 2rem;
        padding: 12px;
        padding: 1.2rem;
        height: 50px; } }

.icon {
  font-size: 42px;
  font-size: 4.2rem;
  line-height: 1;
  display: inline-block;
  color: #c3c3c3; }

.icon-button {
  background: transparent;
  border: none;
  position: relative;
  padding: 0;
  margin: 0; }
  .icon-button:before {
    line-height: 0;
    vertical-align: middle; }
  .icon-button:before {
    line-height: 1; }
  .icon-button .label {
    color: transparent;
    font: 0/0 a;
    text-shadow: none; }

.icon-caret.right {
  -webkit-transform: rotate(90deg);
  -ms-transform: rotate(90deg);
  transform: rotate(90deg); }
.icon-caret.bottom {
  -webkit-transform: rotate(180deg);
  -ms-transform: rotate(180deg);
  transform: rotate(180deg); }
.icon-caret.left {
  -webkit-transform: rotate(270deg);
  -ms-transform: rotate(270deg);
  transform: rotate(270deg); }

.icon-caret-thin.top {
  -webkit-transform: rotate(270deg);
  -ms-transform: rotate(270deg);
  transform: rotate(270deg); }
.icon-caret-thin.bottom {
  -webkit-transform: rotate(90deg);
  -ms-transform: rotate(90deg);
  transform: rotate(90deg); }
.icon-caret-thin.left {
  -webkit-transform: rotate(180deg);
  -ms-transform: rotate(180deg);
  transform: rotate(180deg); }

.btn {
  font-weight: 300;
  color: #000;
  border-radius: 4px;
  border: none;
  letter-spacing: 0.1px;
  padding: 10px 17px;
  padding: 1rem 1.7rem;
  font-size: 16px;
  font-size: 1.6rem; }

button, .button {
  -webkit-transition: opacity 0.5s ease-out;
  transition: opacity 0.5s ease-out; }

button[disabled], .button[disabled] {
  opacity: 0.5;
  pointer-events: none; }

.btn--black {
  background: #000;
  color: #fff; }

.btn--white, .grid-item .btn {
  background: #fff;
  color: #000; }

.btn--big {
  width: 100%;
  padding: 20px 20px;
  padding: 2rem 2rem;
  font-size: 20px;
  font-size: 2rem; }

.btn--medium {
  width: 100%;
  padding: 10px;
  padding: 1rem;
  font-size: 16px;
  font-size: 1.6rem; }

button {
  border: 0;
  outline: 0; }

button.transparent, .button.transparent {
  background-color: transparent;
  border: none;
  color: #000;
  outline: none;
  cursor: pointer;
  font-size: 20px;
  font-size: 2rem; }
  button.transparent.light, .button.transparent.light {
    color: #fff; }
  button.transparent:hover, .button.transparent:hover {
    color: #5daee3; }

button.rounded, .button.rounded {
  -webkit-transition: all, 0.2s, ease;
  transition: all, 0.2s, ease;
  padding: 14px 17px;
  padding: 1.4rem 1.7rem;
  padding-left: 19px;
  padding-left: 1.9rem;
  border-radius: 4px;
  border: 1px solid #252525;
  background: transparent;
  display: inline-block; }
  button.rounded:hover, .button.rounded:hover {
    background: #999999; }
  button.rounded:active, .button.rounded:active {
    background: #d6d6d6; }
  button.rounded span, .button.rounded span {
    font-size: 18px;
    font-size: 1.8rem; }

button.share, .button.share {
  font-size: 12px;
  font-size: 1.2rem;
  padding: 7px 0px;
  padding: 0.7rem 0rem;
  background-color: #5daee3;
  color: #fff;
  display: inline;
  width: 6.3rem; }
  button.share:hover, .button.share:hover {
    background-color: #4c9bcf; }
  button.share:active, .button.share:active {
    -webkit-box-shadow: inset 0 0 1px rgba(2, 3, 3, 0.15), inset 0 0 5px rgba(0, 0, 0, 0.1);
    box-shadow: inset 0 0 1px rgba(2, 3, 3, 0.15), inset 0 0 5px rgba(0, 0, 0, 0.1); }
  button.share .icon, .button.share .icon {
    vertical-align: middle;
    font-size: 5px;
    color: #fff;
    margin-left: 2px;
    margin-top: -2px; }
  button.share.share-close .icon, .button.share.share-close .icon {
    font-size: 7px;
    margin-top: 0; }

.view-details-button-wrapper {
  position: relative;
  display: block;
  padding-right: 60px;
  padding-right: 6rem; }

button.view-details, .button.view-details, .button-view-details, button.view-details-plus, .button.view-details-plus {
  font-size: 20px;
  font-size: 2rem;
  padding: 13px 20px;
  padding: 1.3rem 2rem;
  background-color: #000;
  border-radius: 6px;
  color: #fff;
  width: 100%;
  font-weight: 100;
  position: relative;
  white-space: nowrap;
  display: inline-block;
  text-align: center; }
  button.view-details:hover, .button.view-details:hover, .button-view-details:hover, button.view-details-plus:hover, .button.view-details-plus:hover {
    background-color: #5daee3;
    color: #fff;
    text-decoration: none; }
  button.view-details:active, .button.view-details:active, .button-view-details:active, button.view-details-plus:active, .button.view-details-plus:active {
    -webkit-box-shadow: inset 0 0 1px rgba(2, 3, 3, 0.2), inset 0 0 5px rgba(0, 0, 0, 0.2);
    box-shadow: inset 0 0 1px rgba(2, 3, 3, 0.2), inset 0 0 5px rgba(0, 0, 0, 0.2); }

button.view-details-plus, .button.view-details-plus {
  padding: 13px 18px;
  padding: 1.3rem 1.8rem;
  padding-right: 17px;
  padding-right: 1.7rem;
  width: 50px;
  width: 5rem;
  position: absolute;
  right: 0;
  top: 0; }
  button.view-details-plus:hover, .button.view-details-plus:hover {
    text-decoration: none; }

button.search-map, .button.search-map {
  font-size: 20px;
  font-size: 2rem;
  padding: 13px 18px;
  padding: 1.3rem 1.8rem;
  vertical-align: middle;
  background-color: #5daee3;
  border-radius: 6px;
  font-weight: 100;
  color: #fff; }
  button.search-map:hover, .button.search-map:hover {
    background-color: #4c9bcf;
    text-decoration: none; }
  button.search-map:active, .button.search-map:active {
    -webkit-box-shadow: inset 0 0 1px rgba(2, 3, 3, 0.2), inset 0 0 5px rgba(0, 0, 0, 0.2);
    box-shadow: inset 0 0 1px rgba(2, 3, 3, 0.2), inset 0 0 5px rgba(0, 0, 0, 0.2); }

button.read-more, .button.read-more, .button.standard {
  font-size: 20px;
  font-size: 2rem;
  padding: 18px 60px;
  padding: 1.8rem 6rem;
  background-color: #fff;
  color: #000;
  border-radius: 6px;
  font-weight: 100; }
  button.read-more:hover, .button.read-more:hover, .button.standard:hover {
    color: #fff;
    background-color: #5daee3;
    text-decoration: none; }
  button.read-more:active, .button.read-more:active, .button.standard:active {
    -webkit-box-shadow: inset 0 0 1px rgba(2, 3, 3, 0.2), inset 0 0 5px rgba(0, 0, 0, 0.2);
    box-shadow: inset 0 0 1px rgba(2, 3, 3, 0.2), inset 0 0 5px rgba(0, 0, 0, 0.2); }

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

.button.standard {
  line-height: 1;
  letter-spacing: 0.3px;
  font-size: 14px;
  font-size: 1.4rem; }
  .button.standard.outline {
    background: transparent;
    border: 1px solid #fff; }
    .button.standard.outline.footer {
      border-color: #acacac;
      color: #acacac;
      padding: 1.3rem 2rem;
      display: inline-block;
      font-size: 20px;
      font-size: 2rem; }
      .button.standard.outline.footer:hover {
        border-color: #5daee3;
        color: #5daee3; }

button.category-tab, .button.category-tab {
  font-size: 20px;
  font-size: 2rem;
  background-color: transparent;
  border: 1px solid #8c8c8c;
  color: #8c8c8c;
  padding: 12px 0;
  width: 120px; }
  button.category-tab.active, .button.category-tab.active {
    border-color: #61aee1;
    color: #61aee1; }

button.shop-now, .button.shop-now, .button.standard-black, button.standard-black {
  font-size: 20px;
  font-size: 2rem;
  padding: 18px 55px;
  padding: 1.8rem 5.5rem;
  background-color: #000;
  color: #fff;
  border-radius: 6px;
  font-weight: 100; }
  button.shop-now:hover, .button.shop-now:hover, .button.standard-black:hover, button.standard-black:hover {
    color: #fff;
    background-color: #5daee3;
    text-decoration: none; }
  button.shop-now:active, .button.shop-now:active, .button.standard-black:active, button.standard-black:active {
    -webkit-box-shadow: inset 0 0 1px rgba(2, 3, 3, 0.2), inset 0 0 5px rgba(0, 0, 0, 0.2);
    box-shadow: inset 0 0 1px rgba(2, 3, 3, 0.2), inset 0 0 5px rgba(0, 0, 0, 0.2); }

.button.standard-white, button.standard-white {
  font-size: 20px;
  font-size: 2rem;
  padding: 18px 35px;
  padding: 1.8rem 3.5rem;
  background-color: #fff;
  border-radius: 6px;
  border: 1px solid #000;
  color: #000; }
  .button.standard-white:hover, button.standard-white:hover {
    color: #61aee1;
    border-color: #61aee1;
    text-decoration: none; }

.button.standard-black {
  display: inline-block;
  letter-spacing: 0.3px;
  text-align: center;
  padding: 14px 18px;
  padding: 1.4rem 1.8rem; }
  .button.standard-black:hover {
    text-decoration: none; }

button.caret, .button.caret {
  background-color: transparent; }
  button.caret .icon-caret, .button.caret .icon-caret {
    color: #fff;
    font-size: 29px;
    font-size: 2.9rem; }
  button.caret:hover .icon-caret, .button.caret:hover .icon-caret {
    color: #5daee3; }

button.circle--caret, .button.circle--caret, button.circle--close, .button.circle--close {
  width: 32px;
  height: 32px;
  background-color: transparent;
  border-radius: 50%;
  border: 1px solid #fff;
  color: #fff;
  display: inline-block;
  position: relative; }
  button.circle--caret .icon, .button.circle--caret .icon, button.circle--close .icon, .button.circle--close .icon {
    position: absolute;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    -webkit-transform-origin: 0 0;
    -ms-transform-origin: 0 0;
    transform-origin: 0 0;
    font-size: 6px;
    color: #fff; }
  button.circle--caret.right .icon, .button.circle--caret.right .icon, button.circle--close.right .icon, .button.circle--close.right .icon {
    -webkit-transform: rotate(90deg) translate(-50%, -50%);
    -ms-transform: rotate(90deg) translate(-50%, -50%);
    transform: rotate(90deg) translate(-50%, -50%); }
  button.circle--caret.bottom .icon, .button.circle--caret.bottom .icon, button.circle--close.bottom .icon, .button.circle--close.bottom .icon {
    -webkit-transform: rotate(180deg) translate(-50%, -50%);
    -ms-transform: rotate(180deg) translate(-50%, -50%);
    transform: rotate(180deg) translate(-50%, -50%); }
  button.circle--caret.left .icon, .button.circle--caret.left .icon, button.circle--close.left .icon, .button.circle--close.left .icon {
    -webkit-transform: rotate(270deg) translate(-50%, -50%);
    -ms-transform: rotate(270deg) translate(-50%, -50%);
    transform: rotate(270deg) translate(-50%, -50%); }
  button.circle--caret.dark, .button.circle--caret.dark, button.circle--close.dark, .button.circle--close.dark {
    border-color: #000;
    color: #000; }
    button.circle--caret.dark .icon, .button.circle--caret.dark .icon, button.circle--close.dark .icon, .button.circle--close.dark .icon {
      color: #000; }
  button.circle--caret:hover, .button.circle--caret:hover, button.circle--close:hover, .button.circle--close:hover {
    border-color: #5daee3; }
    button.circle--caret:hover .icon, .button.circle--caret:hover .icon, button.circle--close:hover .icon, .button.circle--close:hover .icon {
      color: #5daee3; }

button.circle--close, .button.circle--close {
  width: 40px;
  height: 40px; }
  button.circle--close .icon, .button.circle--close .icon {
    font-size: 18px;
    margin-top: 1px; }

button.go-top, .button.go-top {
  padding: 13.5px 10.5px;
  padding: 1.35rem 1.05rem;
  background-color: transparent;
  color: #000;
  border: 1px solid #000;
  margin-top: 24px;
  position: relative;
  width: 5.1rem;
  height: 5.1rem; }
  button.go-top .icon, .button.go-top .icon {
    font-size: 13px;
    font-size: 1.3rem;
    color: #000; }
  button.go-top::before, .button.go-top::before {
    position: absolute;
    top: -24px;
    left: 50%;
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    transform: translateX(-50%);
    font-size: 14px;
    font-size: 1.4rem;
    content: 'top';
    text-transform: uppercase; }
  button.go-top:hover, .button.go-top:hover {
    border-color: #5daee3; }
    button.go-top:hover .icon, .button.go-top:hover .icon {
      color: #5daee3; }
    button.go-top:hover::before, .button.go-top:hover::before {
      color: #5daee3; }

button.circular, .button.circular {
  padding: 7px;
  padding: 0.7rem;
  border-radius: 50%; }
  button.circular.dark, .button.circular.dark {
    border: 1px solid #000;
    color: #000; }
    button.circular.dark > *, .button.circular.dark > * {
      color: #000; }
  button.circular.light, .button.circular.light {
    border: 1px solid #fff;
    color: #fff; }
    button.circular.light > *, .button.circular.light > * {
      color: #fff; }

button.learn-more, .button.learn-more {
  background: rgba(0, 0, 0, 0.5);
  color: #fff;
  border: 1px solid #fff;
  padding: 15px 30px;
  padding: 1.5rem 3rem;
  border-radius: 6px;
  display: inline-block; }
  button.learn-more:hover, .button.learn-more:hover {
    background: rgba(93, 174, 227, 0.9); }

/* common elements extended elsewhere */
.hide {
  display: none; }

.text-more-gradient {
  /* FF3.6+ */
  background: -webkit-gradient(linear, left bottom, left top, color-stop(0%, #ffffff), color-stop(100%, rgba(255, 255, 255, 0)));
  /* Chrome,Safari4+ */
  background: -webkit-linear-gradient(bottom, #ffffff 0%, rgba(255, 255, 255, 0) 100%);
  /* IE10+ */
  background: linear, to top, white 0%, rgba(255, 255, 255, 0) 100%;
  /* W3C */
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#00ffffff',GradientType=0 );
  /* IE6-9 */ }

.center-elem {
  position: absolute;
  left: 50%;
  top: 50%;
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  background-color: transparent; }

input {
  padding: 0px 10px;
  padding: 0rem 1rem;
  border: none; }

/* page type skeletons */
/* vendor plugins */
/*!
Chosen, a Select Box Enhancer for jQuery and Prototype
by Patrick Filler for Harvest, http://getharvest.com

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

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

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

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

.chosen-container.chosen-with-drop .chosen-drop {
  left: 0; }

.chosen-container a {
  cursor: pointer; }

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

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

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

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

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

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

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

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

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

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

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

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

.chosen-container-single.chosen-container-single-nosearch .chosen-search {
  position: absolute;
  left: -9999px; }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.chosen-rtl.chosen-container-single-nosearch .chosen-search, .chosen-rtl .chosen-drop {
  left: 9999px; }

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

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

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

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

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

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

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

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

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

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

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

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

  100% {
    opacity: 0; } }

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

  100% {
    opacity: 0; } }

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

/* 
 *  Core Owl Carousel CSS File
 */
.owl-carousel {
  display: none;
  width: 100%;
  -webkit-tap-highlight-color: transparent;
  /* position relative and z-index fix webkit rendering fonts issue */
  position: relative;
  z-index: 1; }

.owl-carousel .owl-stage {
  position: relative;
  -ms-touch-action: pan-Y; }

.owl-carousel .owl-stage:after {
  content: ".";
  display: block;
  clear: both;
  visibility: hidden;
  line-height: 0;
  height: 0; }

.owl-carousel .owl-stage-outer {
  position: relative;
  overflow: hidden;
  /* fix for flashing background */
  -webkit-transform: translate3d(0px, 0px, 0px); }

.owl-carousel .owl-controls .owl-nav .owl-prev, .owl-carousel .owl-controls .owl-nav .owl-next, .owl-carousel .owl-controls .owl-dot {
  cursor: pointer;
  cursor: hand;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none; }

.owl-carousel.owl-loaded {
  display: block; }

.owl-carousel.owl-loading {
  opacity: 0;
  display: block; }

.owl-carousel.owl-hidden {
  opacity: 0; }

.owl-carousel .owl-refresh .owl-item {
  display: none; }

.owl-carousel .owl-item {
  position: relative;
  min-height: 1px;
  float: left;
  -webkit-backface-visibility: hidden;
  -webkit-tap-highlight-color: transparent;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none; }

.owl-carousel .owl-item img {
  display: block;
  width: 100%;
  -webkit-transform-style: preserve-3d; }

.owl-carousel.owl-text-select-on .owl-item {
  -webkit-user-select: auto;
  -moz-user-select: auto;
  -ms-user-select: auto;
  user-select: auto; }

.owl-carousel .owl-grab {
  cursor: move;
  cursor: -webkit-grab;
  cursor: -o-grab;
  cursor: -ms-grab;
  cursor: grab; }

.owl-carousel.owl-rtl {
  direction: rtl; }

.owl-carousel.owl-rtl .owl-item {
  float: right; }

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

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

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

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

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

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

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

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

.owl-carousel .owl-video-frame {
  position: relative;
  z-index: 1; }

/* modules */
[data-module-helper="fullpage-nav"] {
  position: fixed;
  top: 50%;
  left: 0;
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);
  padding: 20px 5px;
  background-color: #000;
  z-index: 19;
  width: 50px; }
  [data-module-helper="fullpage-nav"] [data-module-helper="fullpage-nav-link"] {
    width: 10px;
    height: 10px;
    position: relative;
    cursor: pointer;
    border: 1px solid #fff;
    border-radius: 50%;
    margin: 0 auto 20px; }
    [data-module-helper="fullpage-nav"] [data-module-helper="fullpage-nav-link"]:last-child {
      margin-bottom: 0; }
    [data-module-helper="fullpage-nav"] [data-module-helper="fullpage-nav-link"]::after {
      -webkit-transition: opacity 0.5s;
      transition: opacity 0.5s;
      position: absolute;
      top: 50%;
      left: 50%;
      -webkit-transform: translate(-50%, -50%);
      -ms-transform: translate(-50%, -50%);
      transform: translate(-50%, -50%);
      display: block;
      width: 4px;
      height: 4px;
      background-color: #fff;
      border-radius: 50%;
      content: '';
      opacity: 0; }
    [data-module-helper="fullpage-nav"] [data-module-helper="fullpage-nav-link"].active::after {
      opacity: 1; }

.fullscreen__wrap {
  -webkit-transition: -webkit-transform 0.7s ease, opacity 0.7s ease-out;
  transition: transform 0.7s ease, opacity 0.7s ease-out;
  z-index: 1;
  position: relative; }
  @media screen and (max-width: 767px)  {
    .fullscreen__wrap {
      -webkit-transform: matrix(1, 0, 0, 1, 0, 1) !important;
      -ms-transform: matrix(1, 0, 0, 1, 0, 1) !important;
      transform: matrix(1, 0, 0, 1, 0, 1) !important; } }
  @media screen and (min-width: 768px)  {
    .fullscreen__wrap {
      opacity: 0; }
      .fullscreen__wrap.active {
        opacity: 1; } }

.section {
  color: #000;
  position: relative;
  z-index: 2; }
  @media screen and (min-width: 768px)  {
    .section {
      height: auto; } }
  .section.white {
    color: #fff; }

.stories.index {
  position: relative;
  padding: 3rem 0 0 0;
  margin: 2rem 0 10rem;
  width: 100%;
  background-color: #fff;
  top: 100%;
  overflow: hidden; }
  @media screen and (min-width: 768px)  {
    .stories.index {
      position: fixed;
      padding: 20rem 0 0 0;
      margin-top: -20rem; }
      .stories.index section {
        -webkit-transform: translateX(-0.9rem);
        -ms-transform: translateX(-0.9rem);
        transform: translateX(-0.9rem); } }
.show .stories {
  position: relative;
  margin-left: 0;
  -webkit-transform: translateY(0) !important;
  -ms-transform: translateY(0) !important;
  transform: translateY(0) !important; }
  .show .stories section {
    -webkit-transform: translateX(0);
    -ms-transform: translateX(0);
    transform: translateX(0); }

.section--fake {
  pointer-events: none;
  display: none;
  z-index: 0; }
  @media screen and (min-width: 768px)  {
    .section--fake {
      display: block;
      visibility: hidden; } }

div.section {
  min-height: 30rem; }
  @media screen and (max-width: 767px)  {
    div.section {
      min-height: 60rem; } }

.section__inner-right {
  padding-top: 33px;
  padding-top: 3.3rem;
  text-align: center; }
  @media screen and (max-width: 767px)  {
    .section__inner-right {
      font-size: 23px;
      font-size: 2.3rem;
      display: inline-block;
      position: absolute;
      right: 0;
      width: 100%;
      display: inline-block; } }
  @media screen and (min-width: 768px)  {
    .section__inner-right {
      max-width: 500px;
      max-width: 50rem;
      position: absolute;
      top: 50%;
      right: 10%;
      -webkit-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
      transform: translateY(-50%);
      text-align: left;
      padding-top: 0; }
      @media screen and (min-width: 960px)  {
        .section__inner-right {
          right: 7%; } }
      @media screen and (min-width: 1440px)  {
        .section__inner-right {
          right: 10.5%; } } }

.section__title {
  font-size: 33px;
  font-size: 3.3rem; }
  @media screen and (max-width: 767px)  {
    .section__title {
      font-size: 4.6rem !important;
      margin-bottom: 0.5rem !important;
      margin-top: 0.5rem; } }
  @media screen and (min-width: 768px)  {
    .section__title {
      font-size: 60px;
      font-size: 6rem; } }

.fp-tableCell {
  position: relative; }

.section__subtitle {
  font-size: 15px;
  font-size: 1.5rem; }
  @media screen and (max-width: 767px)  {
    .section__subtitle {
      font-size: 2.3rem !important;
      width: 90%;
      margin: 0 auto;
      margin-bottom: 2.3rem !important; } }
  @media screen and (min-width: 768px)  {
    .section__subtitle {
      font-size: 30px;
      font-size: 3rem;
      margin-bottom: 40px;
      margin-bottom: 4rem; } }

.section__description {
  display: none; }
  @media screen and (min-width: 768px)  {
    .section__description {
      display: block; } }

.section__buttons {
  position: absolute;
  right: 0;
  bottom: 17px;
  left: 0; }
  @media screen and (max-width: 767px)  {
    .section__buttons {
      position: relative !important;
      margin-top: 4rem !important; } }
  @media screen and (min-width: 768px)  {
    .section__buttons {
      position: static;
      margin-top: 80px;
      margin-top: 8rem; } }
  .section__buttons .section__buttons__container {
    display: inline-block;
    width: auto;
    margin-right: 10px;
    margin-right: 1rem; }
    @media screen and (max-width: 767px)  {
      .section__buttons .section__buttons__container {
        margin-right: 0;
        height: auto;
        height: auto; }
        .section__buttons .section__buttons__container:first-child {
          display: none; }
        .section__buttons .section__buttons__container .button.standard-black {
          width: 9rem;
          font-size: 2rem !important;
          padding: 0.7rem 1.4rem;
          height: auto;
          white-space: nowrap; } }
    @media screen and (min-width: 768px)  {
      .section__buttons .section__buttons__container {
        width: auto;
        display: block;
        margin-right: 2rem;
        margin-bottom: 20px;
        margin-bottom: 2rem;
        text-align: right; }
        .section__buttons .section__buttons__container:last-child {
          margin-bottom: 0; } }

@media screen and (max-width: 767px)  {
  .fullscreen_slide1 {
    background-position: 68% center !important;
    background-image: url(../../images/consumers/fpo/fullpage/PCA_Mobile_PowerCouple_Slide.jpg) !important; } }

@media screen and (max-width: 767px)  {
  .fullscreen_slide2 {
    background-position: 58% center !important;
    background-image: url(../../images/consumers/fpo/fullpage/PCA_Mobile_IdealComplex_Slide.jpg) !important; } }

@media screen and (max-width: 767px)  {
  .fullscreen_slide3 {
    background-image: url(../../images/consumers/fpo/fullpage/PCA_Mobile_Weightless_Slide.jpg) !important; } }

@media screen and (max-width: 767px)  {
  .fullscreen_slide4 {
    background-image: url(../../images/consumers/fpo/fullpage/PCA_Mobile_Science_Slide.jpg) !important; } }

  @media screen and (min-width: 768px)  {
	.fullscreen_slide5 .section__inner-right	{
		top:45px;
	}	
	}	
	
	@media screen and (max-width: 767px)  {
  .fullscreen_slide5 {
    background-image: url(../../images/consumers/fpo/fullpage/hero-mobile-image-retinol.jpg) !important; 
	} 
	.fullscreen_slide5 .section__inner-right	{
		top:0px;
	}

  .fullscreen_slide6 {
    background-image: url(../../images/consumers/fpo/fullpage/holiday-bag-hero-mobile.jpg) !important;
  }
  .fullscreen_slide6 .section__inner-right{
    top: 0 !important;
  }
  .fullscreen_slide6 .section__inner-right .section__title{
    font-size: 4.1rem !important;
  }
  
  .fullscreen_slide8 {
    background-image: url(../../images/consumers/fpo/fullpage/DARR-hero-mobile.jpg) !important;
  }
  
   .fullscreen_holiday {
    background-image: url(../../images/consumers/fpo/fullpage/holiday-landing-page-hero-mobile.jpg) !important;
  }
   .fullscreen_aging_kit {
    background-image: url(../../images/consumers/fpo/fullpage/anti-aging-hero-mobile.jpg) !important;
  }
  
  .fullscreen_slide8 .section__inner-right{
    top: 0 !important;
  }
  .fullscreen_slide8 .section__inner-right .section__title{
    font-size: 4.1rem !important;
  }
  .fullscreen_cyberweek {
    background-image: url(../../images/consumers/fpo/fullpage/CyberWeek-hero-mobile.jpg) !important;
  }
}

@media screen and (max-height: 650px){
	.page.index .fullscreen_slide5 .section__inner-right {
		 top: 0rem;
	}
}
@media screen and (max-width: 767px)  {
	.cms-retinols .header span.header.nav-link { 
		border-bottom: 2px solid #000;
		display: block;
		text-align: center;
		width: 100%;
		margin: 1rem 0;		
		white-space: nowrap;
	}
	.cms-retinols .retinols .container.full.wrapper.header {
		padding: 2rem 0 0;
	}	
	.cms-retinols .header span.header.nav-link:last-child {
		margin-bottom: 0;
		padding: 0;
	}
	
}

.container {
  max-width: 144em;
  margin-left: auto;
  margin-right: auto; }
  .container:after {
    content: "";
    display: table;
    clear: both; }

.grey-wrap {
  background-color: #f8f8f8; }

.container.content {
  padding: 0px 20px;
  padding: 0rem 2rem; }
  @media screen and (min-width: 960px)  {
    .container.content {
      max-width: 1200px;
      max-width: 120rem; } }
  @media screen and (min-width: 960px)  {
    .container.content.fullpage {
      padding: 0;
      width: 100%;
      max-width: 100%; } }
  @media screen and (min-width: 960px)  {
    .container.content.large {
      max-width: 1400px;
      max-width: 140rem; }
      .container.content.large .container__content-header {
        width: auto;
        max-width: 900px;
        max-width: 90rem; } }

.container.short {
  max-width: 960px;
  margin-left: auto;
  margin-right: auto; }
  .container.short:after {
    content: "";
    display: table;
    clear: both; }

@media screen and (min-width: 960px)  {
  .container.grid {
    padding: 0; } }

@media screen and (min-width: 960px)  {
  .container.media {
    text-align: center;
    padding-top: 50px;
    padding-top: 5rem;
    margin-bottom: 0px;
    margin-bottom: 0rem; } }

.container.full {
  max-width: 100%;
  width: 100%;
  padding: 0;
  margin: 0;
  margin-bottom: 5rem; }
  @media screen and (min-width: 960px)  {
    .container.full {
      margin-bottom: 0; } }
  .container.full.content {
    max-width: 100%;
    width: 100%; }
  .container.full.wrapper {
    background: #eff2f4;
    padding: 0;
    margin: 0;
    padding-top: 50px;
    padding-top: 5rem; }
    @media screen and (min-width: 960px)  {
      .container.full.wrapper {
        padding-top: 100px;
        padding-top: 10rem; } }

.container__content {
  width: 100%;
  max-width: 120em;
  margin: 0 auto; }

.container__content-header__header {
  margin: 0;
  line-height: 1;
  font-size: 46px;
  font-size: 4.6rem;
  margin-bottom: 15px;
  margin-bottom: 1.5rem;
  letter-spacing: -0.6px;
  letter-spacing: -0.06rem; }
  @media screen and (min-width: 960px)  {
    .container__content-header__header {
      font-size: 60px;
      font-size: 6rem; } }

.container__content-header__description {
  line-height: 1.3;
  font-size: 15px;
  font-size: 1.5rem; }
  .container__content-header__description a {
    letter-spacing: 0.8px; }

.container__content-header__subheader {
  margin: 0;
  line-height: 1;
  font-size: 24px;
  font-size: 2.4rem;
  margin-bottom: 10px;
  margin-bottom: 1rem;
  letter-spacing: 0.6px;
  letter-spacing: 0.06rem; }
  @media screen and (min-width: 960px)  {
    .container__content-header__subheader {
      font-size: 30px;
      font-size: 3rem; } }

.container__content-header {
  color: #000;
  width: 100%;
  margin: 0 auto;
  text-align: center;
  max-width: 768px; }
  @media screen and (min-width: 960px)  {
    .container__content-header {
      width: 768px;
      padding: 0; } }
  .container__content-header .container__content-header__button-wrap {
    margin: 48px 0px;
    margin: 4.8rem 0rem;
    text-align: center; }

.content-main.pd {
  padding-top: 50px;
  padding-top: 5rem; }
  @media screen and (min-width: 768px)  {
    .content-main.pd {
      padding-top: 100px;
      padding-top: 10rem; } }
.content-main.product-listings {
  padding-top: 4rem; }
.content-main .content {
  margin-bottom: 40px;
  margin-bottom: 4rem; }
  @media screen and (min-width: 768px)  {
    .content-main .content {
      margin-bottom: 100px;
      margin-bottom: 10rem; } }

.grid-arrow_box, .row.grid:nth-child(even) .grid-item__content, .row--style1 .grid-item__content, .grid-item.right .grid-item__content {
  position: relative;
  background: #000000; }
  .grid-arrow_box:after, .row.grid:nth-child(even) .grid-item__content:after, .row--style1 .grid-item__content:after, .grid-item.right .grid-item__content:after {
    z-index: 1;
    right: 100%;
    left: initial;
    top: 65px;
    border: solid transparent;
    content: " ";
    height: 0;
    width: 0;
    position: absolute;
    pointer-events: none;
    border-color: rgba(0, 0, 0, 0);
    border-right-color: #000000;
    border-width: 6px;
    margin-top: -14px; }
  @media screen and (min-width: 960px)  {
    .grid-arrow_box:after, .row.grid:nth-child(even) .grid-item__content:after, .row--style1 .grid-item__content:after, .grid-item.right .grid-item__content:after {
      border-width: 10px;
      margin-top: -10px; } }

.grid-arrow_box_left, .row.grid .grid-item__content, .row--style1.quote-box-share.left .grid-item__content, .row--style2 .grid-item__content, .row--style3 .grid-item .grid-item__content, .grid-item.left .grid-item__content, .grid-item__content {
  position: relative;
  background: #000000; }
  .grid-arrow_box_left:after, .row.grid .grid-item__content:after, .row--style1.quote-box-share.left .grid-item__content:after, .row--style2 .grid-item__content:after, .row--style3 .grid-item .grid-item__content:after, .grid-item.left .grid-item__content:after, .grid-item__content:after {
    z-index: 1;
    left: 100%;
    right: initial;
    top: 65px;
    border: solid transparent;
    content: " ";
    height: 0;
    width: 0;
    position: absolute;
    pointer-events: none;
    border-color: rgba(0, 0, 0, 0);
    border-left-color: #000000;
    border-width: 6px;
    margin-top: -27px; }
  @media screen and (min-width: 960px)  {
    .grid-arrow_box_left:after, .row.grid .grid-item__content:after, .row--style1.quote-box-share.left .grid-item__content:after, .row--style2 .grid-item__content:after, .row--style3 .grid-item .grid-item__content:after, .grid-item.left .grid-item__content:after, .grid-item__content:after {
      border-width: 10px;
      margin-top: -10px; } }

.grid-items:after {
  content: "";
  display: table;
  clear: both; }
.grid-items p {
  line-height: 1.5em; }
.grid-items a {
  text-decoration: none;
  color: #fff; }
.grid-items .row {
  margin-bottom: 20px;
  margin-bottom: 2rem; }
  @media screen and (min-width: 960px)  {
    .grid-items .row {
      margin-bottom: 0px;
      margin-bottom: 0rem; } }

.row.grid {
  margin-bottom: 0px;
  margin-bottom: 0rem; }
  .row.grid .grid-item {
    margin-bottom: 20px;
    margin-bottom: 2rem; }
  @media screen and (min-width: 960px)  {
    .row.grid .grid-item {
      width: 50%;
      float: left;
      height: 300px;
      height: 30rem;
      margin-bottom: 0px;
      margin-bottom: 0rem; }
    .row.grid .grid-item__block {
      height: 300px;
      height: 30rem; }
    .row.grid .grid-item__media {
      width: 50%;
      min-width: auto; } }

.row--style1 .grid-item {
  width: 100%; }
@media screen and (min-width: 960px)  {
  .row--style1 .grid-item__content {
    display: table-cell; } }
.row--style1 .grid-item__media footer {
  width: 50%;
  left: auto;
  right: 0; }
@media screen and (min-width: 960px)  {
  .row--style1 .grid-item__media {
    width: 660px;
    width: 66rem; }
    .row--style1 .grid-item__media footer {
      display: none; } }
.row--style1.quote-box .grid-item__content {
  padding-top: 50px;
  padding-top: 5rem; }
  @media screen and (min-width: 960px)  {
    .row--style1.quote-box .grid-item__content {
      padding: 70px 20px 0px 20px;
      padding: 7rem 2rem 0rem 2rem; }
      .row--style1.quote-box .grid-item__content blockquote {
        font-size: 26px;
        font-size: 2.6rem;
        position: absolute;
        top: 50%;
        width: 90%;
        -webkit-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
        transform: translateY(-50%); } }
.row--style1.quote-box-share .grid-item__media {
  width: 50%; }
  @media screen and (min-width: 960px)  {
    .row--style1.quote-box-share .grid-item__media {
      width: 660px;
      width: 66rem; } }
.row--style1.quote-box-share .grid-item__content blockquote {
  font-size: 22px;
  font-size: 2.2rem; }
  @media screen and (min-width: 960px)  {
    .row--style1.quote-box-share .grid-item__content blockquote {
      font-size: 26px;
      font-size: 2.6rem; } }
@media screen and (min-width: 960px)  { }

@media screen and (min-width: 960px)  {
  .row--style2 .grid-item {
    width: 660px;
    width: 66rem; } }
@media screen and (min-width: 960px)  {
  .row--style2 .grid-item__media {
    width: 100%; } }
@media screen and (min-width: 960px)  {
  .row--style2 .grid-item__content {
    min-width: 300px;
    min-width: 30rem;
    z-index: 1; } }

@media screen and (min-width: 960px)  {
  .row--style3 {
    height: 600px;
    height: 60rem; }
    .row--style3 .grid-item {
      height: 100%;
      display: block; }
      .row--style3 .grid-item .grid-item__content {
        display: inline-block;
        position: absolute;
        z-index: 1;
        left: 0;
        bottom: 0; }
      .row--style3 .grid-item .grid-item__media {
        display: block;
        height: 100%;
        float: right;
        width: 660px;
        width: 66rem; } }

.row--style4 .grid-item__block {
  display: block;
  width: 100%; }
  @media screen and (min-width: 768px)  {
    .row--style4 .grid-item__block {
      width: 300px;
      display: table-cell; } }
.row--style4 .grid-item__content {
  padding-top: 50px;
  padding-top: 5rem; }
  .row--style4 .grid-item__content blockquote {
    color: #fff;
    font-size: 22px;
    font-size: 2.2rem; }
  @media screen and (min-width: 960px)  {
    .row--style4 .grid-item__content {
      padding: 70px 20px 0px 20px;
      padding: 7rem 2rem 0rem 2rem; }
      .row--style4 .grid-item__content blockquote {
        font-size: 26px;
        font-size: 2.6rem;
        position: absolute;
        top: 50%;
        width: 87%;
        -webkit-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
        transform: translateY(-50%); } }

.row--style5 .grid-item {
  width: 100%;
  height: auto; }
  @media screen and (min-width: 960px)  {
    .row--style5 .grid-item {
      width: 660px;
      width: 66rem;
      float: right; } }
.row--style5.social_story_static_block .social_icon {
  text-align: right;
  padding: 10px; }
  .row--style5.social_story_static_block .social_icon i {
    display: inline-block;
    background: #61aee1;
    font-size: 16px;
    font-size: 1.6rem;
    padding: 8px 16px;
    padding: 0.8rem 1.6rem; }
.row--style5.social_story_static_block .story_line {
  background: none repeat scroll 0 0 #61aee1;
  float: right;
  height: 0.5rem;
  width: 100%; }
.row--style5.social_story_static_block .social_story_static_block .grid-item a {
  border: 1px solid #000;
  float: right;
  height: 29rem; }
.row--style5.social_story_static_block .button_block {
  float: right; }
.row--style5.social_story_static_block .text_box blockquote {
  font-size: 22px;
  font-size: 2.2rem; }
  @media screen and (min-width: 960px)  {
    .row--style5.social_story_static_block .text_box blockquote {
      font-size: 26px;
      font-size: 2.6rem; } }
.row--style5.social_story_static_block .grid-item > a {
  background: none repeat scroll 0 0 #000;
  float: right;
  height: auto;
  padding-bottom: 20px;
  padding-bottom: 2rem; }
  @media screen and (min-width: 960px)  {
    .row--style5.social_story_static_block .grid-item > a {
      height: 29rem;
      padding-bottom: 0; } }
.row--style5.social_story_static_block .text_box {
  margin: 0rem 2rem 0 2.4rem;
  text-align: left; }
  @media screen and (min-width: 960px)  {
    .row--style5.social_story_static_block .text_box {
      margin: 0rem 4rem; } }
.row--style5.social_story_static_block .footer_block span {
  float: left;
  font-weight: bold; }
.row--style5.social_story_static_block .footer_block {
  margin: 3.5rem auto 0; }

.grid-item {
  display: block;
  position: relative;
  overflow: hidden;
  text-align: center;
  width: 100%;
  display: table;
  height: 180px;
  height: 18rem; }
  @media screen and (min-width: 960px)  {
    .grid-item {
      float: left;
      height: 300px;
      height: 30rem; } }
  @media screen and (min-width: 960px)  { }
  @media screen and (min-width: 960px)  { }
  .grid-item footer {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    text-align: center;
    bottom: 20px;
    bottom: 2rem;
    padding: 0px 15px;
    padding: 0rem 1.5rem; }
    @media screen and (min-width: 960px)  {
      .grid-item footer {
        bottom: 40px;
        bottom: 4rem;
        padding: 0px 40px;
        padding: 0rem 4rem; } }

.grid-item img {
  display: block;
  height: 3em;
  margin-bottom: 1em;
  margin: auto; }

.grid-item .btn {
  padding: 10px 20px;
  padding: 1rem 2rem;
  letter-spacing: 0.8px;
  letter-spacing: 0.08rem;
  font-size: 12px;
  font-size: 1.2rem;
  width: 100%; }
  .grid-item .btn:hover {
    background-color: #61aee1; }
  @media screen and (min-width: 960px)  {
    .grid-item .btn {
      letter-spacing: 0.2px;
      letter-spacing: 0.02rem;
      padding: 18.5px 30px;
      padding: 1.85rem 3rem;
      font-size: 20px;
      font-size: 2rem; } }

.grid-item blockquote {
  line-height: 1.27;
  padding: 0;
  margin: 0; }

.grid-item .title {
  color: #fff;
  line-height: 1.2;
  margin-top: 0px;
  margin-top: 0rem;
  margin-bottom: 10px;
  margin-bottom: 1rem;
  font-size: 16px;
  font-size: 1.6rem;
  height: 60px;
  height: 6rem; }
  @media screen and (min-width: 768px)  {
    .grid-item .title {
      height: auto;
      font-size: 19px;
      font-size: 1.9rem; } }
  @media screen and (min-width: 960px)  {
    .grid-item .title {
      font-size: 25px;
      font-size: 2.5rem; } }

.grid-item__block {
  height: 100%;
  display: table-cell;
  height: 180px;
  height: 18rem; }
  @media screen and (min-width: 960px)  {
    .grid-item__block {
      height: 300px;
      height: 30rem; } }

.grid-item__content {
  width: 50%;
  max-width: auto;
  display: table-cell;
  position: relative;
  background: #000;
  vertical-align: top;
  padding: 23px 15px 30px 15px;
  padding: 2.3rem 1.5rem 3rem 1.5rem; }
  @media screen and (min-width: 960px)  {
    .grid-item__content {
      padding: 30px 30px 40px 30px;
      padding: 3rem 3rem 4rem 3rem;
      padding-bottom: 0px;
      padding-bottom: 0rem;
      width: 300px;
      width: 30rem;
      max-width: 300px;
      max-width: 30rem; } }

.grid-item__media {
  background: #d6d6d6;
  overflow: hidden;
  position: relative;
  background-size: cover !important;
  background-position: 50% !important; }
  .grid-item__media img {
    width: 100%;
    height: auto; }
    @media screen and (min-width: 960px)  {
      .grid-item__media img {
        position: absolute;
        width: auto; } }

.grid-item__media--full {
  min-width: auto;
  width: 50%; }
  @media screen and (min-width: 960px)  {
    .grid-item__media--full {
      width: 100%; } }

.grid-item p {
  display: none;
  margin: auto;
  font-size: 14px;
  font-size: 1.4rem; }
  @media screen and (min-width: 768px)  {
    .grid-item p {
      display: block; } }

.grid-item-image {
  background-color: #252525;
  background-position: top;
  background-repeat: no-repeat;
  background-size: cover; }

.filter-bar {
  color: #000;
  border-bottom: 1px solid #000;
  margin-top: 0;
  margin-bottom: 13px;
  margin-bottom: 1.3rem; }
  @media screen and (min-width: 768px)  {
    .filter-bar {
      margin-top: 0px;
      margin-top: 0rem;
      margin-bottom: 30px;
      margin-bottom: 3rem; } }

.filter-bar__group {
  float: left;
  margin-bottom: 10px;
  margin-bottom: 1rem; }
  .filter-bar__group:nth-child(2n) {
    display: none; }
  .filter-bar__group:first-child {
    max-width: 30%; }
  @media screen and (min-width: 768px)  {
    .filter-bar__group {
      margin-right: 20px;
      margin-right: 2rem; }
      .filter-bar__group:nth-child(2n) {
        display: block; }
      .filter-bar__group:first-child {
        max-width: none; } }
  .filter-bar__group.right {
    float: right;
    margin-right: 0; }

.filter-bar__group__title {
  font-size: 12px;
  font-size: 1.2rem;
  letter-spacing: 1px;
  letter-spacing: 0.1rem; }
  @media screen and (min-width: 375px)  {
    .filter-bar__group__title {
      font-size: 13px;
      font-size: 1.3rem; } }
  .filter-bar__group__title .icon {
    color: #000;
    font-size: 5px;
    vertical-align: middle;
    margin-left: -2px; }
    @media screen and (min-width: 768px)  {
      .filter-bar__group__title .icon {
        font-size: 10px;
        font-size: 1rem;
        margin-left: 0; } }
  @media screen and (min-width: 768px)  {
    .filter-bar__group__title {
      font-size: 20px;
      font-size: 2rem; } }

a.filter-bar__group__title {
  text-decoration: none; }
  a.filter-bar__group__title:hover .icon {
    color: #5daee3; }

.filter-dropdown {
  color: #000;
  font-size: 13px;
  font-size: 1.3rem;
  letter-spacing: 1px;
  letter-spacing: 0.1rem;
  position: relative;
  display: inline-block;
  outline: none;
  padding-right: 20px;
  padding-right: 2rem;
  width: 100%; }
  .touchevents .filter-dropdown {
    padding-right: 0; }
    .touchevents .filter-dropdown > *:not(select) {
      display: none; }
  @media screen and (min-width: 768px)  {
    .filter-dropdown {
      padding-right: 30px;
      padding-right: 3rem;
      font-size: 20px;
      font-size: 2rem; } }
  .filter-dropdown .filter-dropdown__current {
    cursor: default; }
  .filter-dropdown .filter-dropdown__dropdown {
    -webkit-transition: opacity 0.1s ease-out;
    transition: opacity 0.1s ease-out;
    position: absolute;
    top: -21px;
    left: -20px;
    background-color: #000;
    opacity: 0;
    z-index: 5;
    width: 275px;
    padding: 15px;
    pointer-events: none;
    color: #fff;
    border-radius: 6px; }
    .filter-dropdown .filter-dropdown__dropdown.active {
      opacity: 1;
      pointer-events: auto; }
  .filter-dropdown .filter-dropdown__dropdown__item {
    padding: 5px;
    display: block;
    cursor: default;
    text-align: left; }
    .filter-dropdown .filter-dropdown__dropdown__item:hover {
      color: #5daee3; }
    .filter-dropdown .filter-dropdown__dropdown__item.disabled {
      color: #666; }
  .filter-dropdown select {
    width: 100%; }
    .no-touchevents .filter-dropdown select {
      display: none; }
  .filter-dropdown .icon {
    color: #000;
    position: absolute;
    top: 50%;
    right: 6px;
    -webkit-transform: translateY(-50%) rotate(180deg);
    -ms-transform: translateY(-50%) rotate(180deg);
    transform: translateY(-50%) rotate(180deg);
    font-size: 5px;
    vertical-align: middle;
    display: block; }
    @media screen and (min-width: 768px)  {
      .filter-dropdown .icon {
        position: absolute;
        top: 50%;
        right: 5px;
        font-size: 10px;
        font-size: 1rem; } }
  .filter-dropdown.inverted {
    color: #fff; }
    .filter-dropdown.inverted .filter-dropdown__dropdown {
      background-color: #fff;
      color: #000; }
    .filter-dropdown.inverted .icon {
      color: #fff; }

.grid-share-btn {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 1; }

.content-iframe {
  width: 100%;
  background: #eff2f4;
  overflow: hidden;
  position: relative;
  height: 500px;
  height: 50rem;
  border: 1px solid #eff2f4;
  margin-top: 100px;
  margin-top: 10rem; }
  .content-iframe iframe {
    width: 100%;
    height: 100%;
    border: none;
    overflow: hidden;
    overflow-y: auto;
    position: relative; }
  .content-iframe:before {
    content: 'iframe content here';
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    left: 50%;
    margin: auto;
    position: absolute;
    text-align: center;
    top: 50%; }

.content-video {
  height: 0;
  overflow: hidden;
  padding-bottom: 56.25%;
  position: relative; }
  .content-video embed, .content-video object, .content-video iframe {
    position: absolute;
    top: 0px;
    left: 0px;
    width: 100%;
    height: 100%; }

.product-list {
  width: 100%;
  text-align: center;
  margin: 0 auto; }
  @media screen and (min-width: 768px)  {
    .product-list {
      padding: 0px;
      padding: 0rem; } }
  @media screen and (min-width: 768px)  {
    .product-list.bundle {
      width: 100%; } }
  @media screen and (min-width: 960px)  {
    .product-list.bundle {
      width: 880px;
      width: 88rem; } }
  @media screen and (min-width: 1100px)  {
    .product-list.bundle {
      width: 960px;
      width: 96rem; } }
  @media screen and (min-width: 1440px)  {
    .product-list.bundle {
      width: 100%; } }

.product-item {
  color: #000;
  width: 100%;
  height: 100%;
  position: relative;
  display: inline-block;
  margin: 0;
  max-width: 300px;
  max-width: 30rem;
  margin-bottom: 20px;
  margin-bottom: 2rem; }
  @media screen and (min-width: 768px)  {
    .product-item {
      margin-bottom: 50px;
      margin-bottom: 5rem; } }
  @media screen and (min-width: 480px)  {
    .product-item {
      width: 300px;
      width: 30rem;
      margin-left: 8px;
      margin-left: 0.8rem;
      margin-right: 8px;
      margin-right: 0.8rem; } }
  .product-item .view-details-button-wrapper {
    width: 100%;
    position: absolute;
    bottom: 0; }
  .product-item.bundle {
    height: 540px;
    height: 54rem;
    width: 240px;
    width: 24rem;
    margin-left: 14px;
    margin-left: 1.4rem;
    margin-right: 14px;
    margin-right: 1.4rem; }
    .product-item.bundle .product-item-title {
      height: 40px;
      height: 4rem; }
    .product-item.bundle .product-item-title-wrapper {
      height: 60px;
      height: 6rem; }
    .product-item.bundle .product-item-description {
      margin-top: 12px;
      margin-top: 1.2rem; }
  .product-item.single {
    height: 470px;
    height: 47rem; }
    @media screen and (min-width: 768px)  {
      .product-item.single {
        height: 500px;
        height: 50rem;
        width: 300px;
        width: 30rem; } }
  .product-item footer {
    position: relative;
    padding-right: 60px;
    padding-right: 6rem;
    height: 50px;
    height: 5rem; }

.product-item-media {
  width: 100%;
  height: 100%;
  background-repeat: no-repeat;
  background-size: cover !important;
  background-position: 50%; }
  .product-item-media img {
    display: inline-block;
    margin: 0 auto;
    width: 100%;
    height: auto; }

.product-item-title-wrapper {
  height: 40px;
  height: 4rem; }

.product-item-title {
  line-height: 1;
  font-size: 20px;
  font-size: 2rem;
  height: 20px;
  height: 2rem;
  margin-top: 8px;
  margin-top: 0.8rem;
  margin-bottom: 3px;
  margin-bottom: 0.3rem; }
  @media screen and (min-width: 768px)  {
    .product-item-title {
      margin-top: 21px;
      margin-top: 2.1rem; } }

.product-item-subtitle {
  display: inline-block;
  margin-top: -6px;
  margin-top: -0.6rem; }

.product-item-description {
  line-height: 1;
  display: block;
  overflow: hidden;
  font-size: 13px;
  font-size: 1.3rem;
  margin-top: 6px;
  margin-top: 0.6rem;
  margin-bottom: 8px;
  margin-bottom: 0.8rem;
  height: 40px;
  height: 4rem; }
  @media screen and (min-width: 768px)  {
    .product-item-description {
      display: block;
      overflow: hidden;
      height: 40px;
      height: 4rem; } }

.product-item-cost {
  width: 100%;
  position: absolute;
  font-size: 18px;
  font-size: 1.8rem;
  bottom: 60px;
  bottom: 6rem; }
  @media screen and (min-width: 768px)  {
    .product-item-cost {
      font-size: 23px;
      font-size: 2.3rem;
      bottom: 61px;
      bottom: 6.1rem; } }

.product-item-type {
  border-bottom: 3px solid #000;
  margin-bottom: 20px;
  margin-bottom: 2rem; }
  .product-item-type h3 {
    margin: 0;
    margin-bottom: 10px;
    margin-bottom: 1rem;
    font-size: 33px;
    font-size: 3.3rem; }

.item-list {
  width: 100%;
  text-align: center;
  margin: 0 auto; }
  @media screen and (min-width: 768px)  {
    .item-list {
      padding: 0px;
      padding: 0rem; } }
  @media screen and (min-width: 768px)  {
    .item-list.bundle {
      width: 100%; } }
  @media screen and (min-width: 960px)  {
    .item-list.bundle {
      width: 880px;
      width: 88rem; } }
  @media screen and (min-width: 1100px)  {
    .item-list.bundle {
      width: 960px;
      width: 96rem; } }
  @media screen and (min-width: 1440px)  {
    .item-list.bundle {
      width: 100%; } }

.item {
  color: #000;
  width: 100%;
  height: 100%;
  position: relative;
  display: inline-block;
  margin: 0;
  max-width: 300px;
  max-width: 30rem;
  margin-bottom: 20px;
  margin-bottom: 2rem; }
  @media screen and (min-width: 768px)  {
    .item {
      margin-bottom: 50px;
      margin-bottom: 5rem; } }
  @media screen and (min-width: 480px)  {
    .item {
      width: 300px;
      width: 30rem;
      margin-left: 8px;
      margin-left: 0.8rem;
      margin-right: 8px;
      margin-right: 0.8rem; } }
  .item .view-details-button-wrapper {
    width: 100%;
    position: absolute;
    bottom: 0; }
  .item.single {
    height: 400px;
    height: 40rem; }
    @media screen and (min-width: 768px)  {
      .item.single {
        width: 300px;
        width: 30rem; } }
  .item.learn-more {
    height: 475px;
    height: 47.5rem; }
    .item.learn-more .item-description {
      margin-bottom: 20px;
      margin-bottom: 2rem; }
  .item footer {
    position: relative;
    padding-right: 60px;
    padding-right: 6rem;
    height: 50px;
    height: 5rem; }

.item-media {
  width: 100%;
  height: 100%;
  background-repeat: no-repeat;
  background-size: cover !important;
  background-position: 50%; }
  .item-media img {
    display: inline-block;
    margin: 0 auto;
    width: 100%;
    height: auto; }

.item-title {
  line-height: 1;
  letter-spacing: 1.5px;
  font-size: 25px;
  font-size: 2.5rem;
  margin-top: 21px;
  margin-top: 2.1rem;
  margin-bottom: 12px;
  margin-bottom: 1.2rem; }

.item-subtitle {
  display: inline-block;
  margin-top: -6px;
  margin-top: -0.6rem; }

.item-description {
  line-height: 1.45;
  display: block;
  overflow: hidden;
  font-size: 15px;
  font-size: 1.5rem;
  margin-top: 6px;
  margin-top: 0.6rem;
  margin-bottom: 8px;
  margin-bottom: 0.8rem;
  height: 40px;
  height: 4rem; }
  @media screen and (min-width: 768px)  {
    .item-description {
      display: block;
      overflow: hidden;
      height: 40px;
      height: 4rem; } }

.promo-product-tout {
  position: relative;
  display: none; }
  @media screen and (min-width: 768px)  {
    .promo-product-tout {
      display: block; } }
  .promo-product-tout .section__inner-right {
    color: #fff; }
  .promo-product-tout .section__description {
    display: none; }
  .promo-product-tout .section__buttons__container {
    display: inline-block;
    vertical-align: top; }
  .promo-product-tout .section__buttons {
    text-align: center;
    margin-top: 50px;
    margin-top: 5rem; }
  .promo-product-tout .button.standard-black {
    width: 200px;
    width: 20rem;
    margin-right: 20px;
    margin-right: 2rem;
    float: left; }

.timeline__info__item {
  display: none; }
  .timeline__info__item.show {
    display: inline-block; }
  .timeline__info__item.hide {
    display: none !important; }

.timeline-info {
  margin: 10rem 0; }
  .timeline-info .container.content.short, .timeline-info .container__content-header {
    max-width: 70rem; }

.timeline__date__text {
  display: inline-block;
  position: absolute;
  top: -4.5rem;
  background: #fff;
  padding: 0 1rem;
  -webkit-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  transform: translateX(-50%);
  font-size: 30px;
  font-size: 3rem; }

.timeline__date {
  text-align: center;
  color: #000;
  border-top: 1px solid;
  position: relative;
  margin-bottom: 2rem; }

.timeline {
  font-size: 100%;
  height: 94.1vh; }
  .timeline .slide__inner__media {
    height: 100%; }
    .timeline .slide__inner__media:hover {
      cursor: ew-resize; }
    .timeline .slide__inner__media img {
      height: 100%;
      width: auto;
      pointer-events: none; }
  .timeline .timeline__slide-container {
    background-color: #000;
    overflow: hidden;
    position: relative;
    height: 100%; }
    @media screen and (min-width: 768px)  {
      .timeline .timeline__slide-container {
        height: 83%; } }
    .timeline .timeline__slide-container .timeline__navigation-btn {
      -webkit-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
      transform: translateY(-50%);
      position: absolute;
      top: 50%;
      z-index: 5; }
      .timeline .timeline__slide-container .timeline__navigation-btn .icon {
        font-size: 16px;
        font-size: 1.6rem; }
        @media screen and (min-width: 768px)  {
          .timeline .timeline__slide-container .timeline__navigation-btn .icon {
            font-size: 29px;
            font-size: 2.9rem; } }
    .timeline .timeline__slide-container .timeline__next {
      right: 0px; }
      @media screen and (min-width: 768px)  {
        .timeline .timeline__slide-container .timeline__next {
          right: 10px; } }
    .timeline .timeline__slide-container .timeline__prev {
      left: 0px; }
      @media screen and (min-width: 768px)  {
        .timeline .timeline__slide-container .timeline__prev {
          left: 10px; } }
    .timeline .timeline__slide-container .timeline__slide-container__inner {
      width: 9999px;
      height: 100%; }
      .timeline .timeline__slide-container .timeline__slide-container__inner:after {
        content: "";
        display: table;
        clear: both; }
    .timeline .timeline__slide-container .slide {
      -webkit-transition: opacity 0.5s;
      transition: opacity 0.5s;
      position: relative;
      background-color: #ececec;
      float: left;
      height: 100%;
      color: #000;
      opacity: 0.1; }
      .timeline .timeline__slide-container .slide.active {
        opacity: 1; }
    .timeline .timeline__slide-container .slide__inner--center-both {
      text-align: center;
      position: absolute;
      top: 50%;
      left: 50%;
      -webkit-transform: translate(-50%, -50%);
      -ms-transform: translate(-50%, -50%);
      transform: translate(-50%, -50%); }
    .timeline .timeline__slide-container .slide__inner--se {
      width: 100%;
      position: absolute;
      bottom: 0;
      height: 6rem;
      overflow: hidden;
      background-color: #fff; }
      @media screen and (min-width: 960px)  {
        .timeline .timeline__slide-container .slide__inner--se {
          height: 10rem; } }
    .timeline .timeline__slide-container .slide__inner--se__header {
      height: 6rem;
      padding-top: 1rem;
      padding-left: 1rem;
      line-height: 2;
      display: inline-block;
      max-width: 80%; }
      @media screen and (min-width: 768px)  {
        .timeline .timeline__slide-container .slide__inner--se__header {
          padding-top: 0.8rem;
          padding-left: 2rem;
          line-height: 1.8; } }
      @media screen and (min-width: 960px)  {
        .timeline .timeline__slide-container .slide__inner--se__header {
          height: 10rem;
          line-height: 2;
          padding-top: 1.8rem;
          padding-left: 2rem;
          max-width: inherit; } }
    .timeline .timeline__slide-container .slide--intro .slide__inner--center-both, .timeline .timeline__slide-container .slide--end .slide__inner--center-both {
      min-width: 225px;
      min-width: 22.5rem; }
    .timeline .timeline__slide-container .slide--intro .slide--intro__dates, .timeline .timeline__slide-container .slide--end .slide--intro__dates {
      font-size: 125%;
      position: relative; }
      .timeline .timeline__slide-container .slide--intro .slide--intro__dates::before, .timeline .timeline__slide-container .slide--intro .slide--intro__dates::after, .timeline .timeline__slide-container .slide--end .slide--intro__dates::before, .timeline .timeline__slide-container .slide--end .slide--intro__dates::after {
        position: absolute;
        top: 50%;
        border-bottom: 1px solid #000;
        content: '';
        display: block;
        width: 25%;
        -webkit-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
        transform: translateY(-50%); }
      .timeline .timeline__slide-container .slide--intro .slide--intro__dates::before, .timeline .timeline__slide-container .slide--end .slide--intro__dates::before {
        left: 0; }
      .timeline .timeline__slide-container .slide--intro .slide--intro__dates::after, .timeline .timeline__slide-container .slide--end .slide--intro__dates::after {
        right: 0; }
    .timeline .timeline__slide-container .slide--intro .slide--intro__title, .timeline .timeline__slide-container .slide--end .slide--intro__title {
      margin-top: -5px;
      margin-top: -0.5rem;
      font-size: 375%;
      text-transform: uppercase; }
    .timeline .timeline__slide-container .slide--intro .slide--intro__subtitle, .timeline .timeline__slide-container .slide--end .slide--intro__subtitle {
      margin-top: -5px;
      margin-top: -0.5rem;
      padding-bottom: 15px;
      padding-bottom: 1.5rem;
      font-size: 193.75%;
      text-transform: uppercase;
      border-bottom: 1px solid #000; }
    .timeline .timeline__slide-container .slide--intro .slide--intro__description, .timeline .timeline__slide-container .slide--end .slide--intro__description {
      margin-top: 15px;
      margin-top: 1.5rem;
      font-size: 93.75%; }
    .timeline .timeline__slide-container .slide--template1 .slide--template1__title {
      font-size: 100%; }
      @media screen and (min-width: 960px)  {
        .timeline .timeline__slide-container .slide--template1 .slide--template1__title {
          font-size: 117%; } }
    .timeline .timeline__slide-container .slide--template1 .slide--template1__subtitle {
      margin-top: -5px;
      margin-top: -0.5rem;
      font-size: 100%;
      max-width: 100%;
      line-height: 1; }
      @media screen and (min-width: 960px)  {
        .timeline .timeline__slide-container .slide--template1 .slide--template1__subtitle {
          font-size: 100%;
          max-width: auto;
          line-height: auto; } }
    .timeline .timeline__slide-container .slide--template1 .slide--template1__description {
      margin-top: 10px;
      margin-top: 1rem;
      font-size: 93.75%;
      margin-left: auto;
      width: 65%;
      line-height: 1.4; }
    .timeline .timeline__slide-container .slide--template1 .slide--template1__link {
      position: absolute;
      top: 0;
      right: 0;
      width: 6rem;
      height: 100%;
      background: #61aee1;
      margin: 0; }
      .timeline .timeline__slide-container .slide--template1 .slide--template1__link:hover {
        background: #000; }
      @media screen and (min-width: 960px)  {
        .timeline .timeline__slide-container .slide--template1 .slide--template1__link {
          width: 10rem; } }
      .timeline .timeline__slide-container .slide--template1 .slide--template1__link a {
        display: block;
        color: #fff; }
      .timeline .timeline__slide-container .slide--template1 .slide--template1__link .learn-more {
        font-size: 12px;
        font-size: 1.2rem;
        padding: 1.5rem 1rem;
        text-transform: uppercase;
        text-align: center; }
        .timeline .timeline__slide-container .slide--template1 .slide--template1__link .learn-more:hover {
          text-decoration: none; }
        @media screen and (min-width: 960px)  {
          .timeline .timeline__slide-container .slide--template1 .slide--template1__link .learn-more {
            font-size: 14px;
            font-size: 1.4rem;
            padding: 3.3rem 2rem; } }
  .timeline .timeline__time {
    display: none;
    height: 17%;
    background-color: #e1e1e1;
    overflow: hidden; }
    @media screen and (min-width: 768px)  {
      .timeline .timeline__time {
        display: block; } }
    .timeline .timeline__time .timeline__time__point-container__line {
      position: absolute;
      top: 51%;
      border-bottom: 2px dotted #333333; }
    .timeline .timeline__time .timeline__time__inner {
      height: 100%;
      background-color: #000;
      width: 9999px; }
    .timeline .timeline__time .timeline__time__point-container {
      height: 100%;
      position: relative; }
    .timeline .timeline__time .timeline__time__point {
      -webkit-transition: background-color 0.5s, color 0.5s;
      transition: background-color 0.5s, color 0.5s;
      width: 107px;
      height: 100%;
      font-size: 90%;
      cursor: pointer;
      float: left;
      color: #fff;
      text-align: center;
      position: relative; }
      .timeline .timeline__time .timeline__time__point .timeline__time__point__inner {
        position: absolute;
        top: 50%;
        left: 50%;
        -webkit-transform: translate(-50%, -82%);
        -ms-transform: translate(-50%, -82%);
        transform: translate(-50%, -82%); }
      .timeline .timeline__time .timeline__time__point .timeline__time__point__dot {
        -webkit-transition: background-color 0.5s, border-color 0.3s;
        transition: background-color 0.5s, border-color 0.3s;
        width: 9px;
        height: 9px;
        border-radius: 50%;
        background-color: #000;
        margin: 9px auto 0;
        border: 1px solid #333333; }
      .timeline .timeline__time .timeline__time__point:hover .timeline__time__point__dot {
        border-color: #61aee1;
        background-color: #000; }
      .timeline .timeline__time .timeline__time__point.active {
        color: #61aee1; }
        .timeline .timeline__time .timeline__time__point.active .timeline__time__point__dot {
          border-color: #61aee1;
          background-color: #61aee1; }
      .timeline .timeline__time .timeline__time__point.edge {
        -webkit-transition: background-color 0.7s;
        transition: background-color 0.7s;
        font-size: 100%;
        background-color: #333333;
        color: #fff;
        margin-top: 0; }
        .timeline .timeline__time .timeline__time__point.edge .timeline__time__point__inner {
          -webkit-transform: translate(-50%, -50%);
          -ms-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%); }
        .timeline .timeline__time .timeline__time__point.edge.active {
          background-color: #61aee1;
          color: #fff; }

.standard-video {
  width: 100%;
  height: auto;
  position: relative;
  background-size: cover !important;
  background-position: 50% 50% !important;
  -webkit-transition: all, 0.35s, ease;
  transition: all, 0.35s, ease;
  height: 200px;
  height: 20rem; }
  .standard-video .content-video {
    padding: 0;
    filter: progid:DXImageTransform.Microsoft.Alpha(0 * 100);
    opacity: 0; }
  .standard-video .circle--close {
    position: absolute;
    z-index: 2;
    top: 20px;
    top: 2rem;
    right: 20px;
    right: 2rem; }
  .standard-video .video-play-button {
    background-image: url(../../images/consumers/sprite.png);
    background-position: -109px 0px;
    width: 100px;
    height: 100px; }
    .standard-video .video-play-button:hover {
      background-image: url(../../images/consumers/sprite.png);
      background-position: -5px 0px;
      width: 100px;
      height: 100px; }
  .standard-video iframe {
    position: relative;
    z-index: 1; }
  @media screen and (min-width: 960px)  {
    .standard-video {
      height: 300px;
      height: 30rem; }
      .standard-video.expanded {
        height: 430px;
        height: 43rem; }
        .standard-video.expanded .content-video {
          display: block;
          padding: 0;
          height: 100%;
          filter: progid:DXImageTransform.Microsoft.Alpha(1 * 100);
          opacity: 1; }
        .standard-video.expanded .video-play-button {
          display: none; } }

.articles {
  color: #000;
  display: -webkit-box;
  display: box;
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-lines: multiple;
  -moz-box-lines: multiple;
  box-lines: multiple;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-pack: justify;
  box-pack: justify;
  -webkit-justify-content: space-between;
  -moz-justify-content: space-between;
  -ms-justify-content: space-between;
  -o-justify-content: space-between;
  -ms-flex-pack: justify;
  justify-content: space-between;
  -ms-flex-pack: justify; }

.article-item {
  float: none;
  width: 100%;
  margin-bottom: 15px;
  margin-bottom: 1.5rem; }
  @media screen and (min-width: 768px)  {
    .article-item {
      float: left;
      width: 29.33%;
      margin-bottom: 30px;
      margin-bottom: 3rem; } }

.article-item__head {
  margin: 0;
  line-height: 0.8;
  font-size: 20px;
  font-size: 2rem;
  margin-bottom: 15px;
  margin-bottom: 1.5rem;
  letter-spacing: -0.6px;
  letter-spacing: -0.06rem; }
  @media screen and (min-width: 768px)  {
    .article-item__head {
      font-size: 30px;
      font-size: 3rem; } }

.article-item__subhead {
  margin: 0;
  line-height: 1;
  font-size: 16px;
  font-size: 1.6rem;
  margin-bottom: 20px;
  margin-bottom: 2rem;
  letter-spacing: 0.6px;
  letter-spacing: 0.06rem; }
  @media screen and (min-width: 768px)  {
    .article-item__subhead {
      font-size: 20px;
      font-size: 2rem; } }

.article-item__content {
  line-height: 1.4;
  overflow: hidden;
  font-size: 12px;
  font-size: 1.2rem;
  max-height: 200px;
  max-height: 20rem; }
  @media screen and (min-width: 768px)  {
    .article-item__content {
      font-size: 14px;
      font-size: 1.4rem; } }

.locator-search {
  width: 100%;
  height: auto;
  position: relative;
  height: 200px;
  height: 20rem;
  background-size: cover !important;
  background-position: 50% !important;
  background-repeat: no-repeat !important; }
  .locator-search .locator-search-content {
    position: relative;
    margin: 0 auto;
    height: 100%; }
    @media screen and (min-width: 960px)  {
      .locator-search .locator-search-content {
        max-width: 920px;
        max-width: 92rem; } }
  .locator-search .content-form {
    margin: 0 auto;
    position: absolute;
    left: 50%;
    top: 50%;
    width: 100%;
    text-align: center;
    color: #fff;
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%); }
    .locator-search .content-form .header {
      display: inline-block;
      margin: 0;
      line-height: 0.8;
      letter-spacing: 2px;
      position: relative;
      font-size: 20px;
      font-size: 2rem;
      margin-bottom: 10px;
      margin-bottom: 1rem; }
      .locator-search .content-form .header:before {
        content: '';
        background: url(../../images/consumers/location-blue.svg) no-repeat;
        background-size: 100%;
        position: absolute;
        top: -4px;
        top: -0.4rem;
        left: -37px;
        left: -3.7rem;
        width: 28px;
        width: 2.8rem;
        height: 28px;
        height: 2.8rem; }
        @media screen and (min-width: 768px)  {
          .locator-search .content-form .header:before {
            top: 9px;
            top: 0.9rem;
            left: -53px;
            left: -5.3rem;
            width: 45px;
            width: 4.5rem;
            height: 45px;
            height: 4.5rem; } }
        @media screen and (min-width: 1100px)  {
          .locator-search .content-form .header:before {
            top: 16px;
            top: 1.6rem;
            left: -63px;
            left: -6.3rem;
            width: 55px;
            width: 5.5rem;
            height: 55px;
            height: 5.5rem; } }
      @media screen and (min-width: 768px)  {
        .locator-search .content-form .header {
          line-height: 1.4;
          letter-spacing: 1.3px;
          font-size: 40px;
          font-size: 4rem;
          margin-bottom: 0px;
          margin-bottom: 0rem; } }
      @media screen and (min-width: 1100px)  {
        .locator-search .content-form .header {
          font-size: 60px;
          font-size: 6rem; } }
    .locator-search .content-form .subheader {
      margin: 0;
      background: none;
      letter-spacing: 0.4px;
      margin-bottom: 40px;
      margin-bottom: 4rem;
      font-size: 20px;
      font-size: 2rem; }
    .locator-search .content-form input {
      font-size: 15px;
      font-size: 1.5rem;
      width: 220px;
      width: 22rem;
      padding: 17px 19px;
      padding: 1.7rem 1.9rem;
      margin-bottom: 10px;
      margin-bottom: 1rem;
      margin-right: 10px;
      margin-right: 1rem; }
      @media screen and (min-width: 768px)  {
        .locator-search .content-form input {
          margin-bottom: 0px;
          margin-bottom: 0rem;
          margin-right: 17px;
          margin-right: 1.7rem;
          display: inline-block; } }
  @media screen and (min-width: 960px)  {
    .locator-search {
      height: 430px;
      height: 43rem; } }
  @media screen and (min-width: 960px)  {
    .locator-search.narrow {
      height: 300px;
      height: 30rem; } }

.go-top[data-module="back-to-top"] {
  position: absolute;
  top: 0;
  right: 35px;
  display: none; }
  @media screen and (min-width: 768px)  {
    .go-top[data-module="back-to-top"] {
      display: block; } }
  .go-top[data-module="back-to-top"].fixed {
    position: fixed;
    top: auto;
    right: 35px;
    bottom: 65px; }

.questionnaire {
  -webkit-transition: opacity 0.5s ease-out;
  transition: opacity 0.5s ease-out;
  background-color: #61aee1;
  color: #fff;
  position: relative;
  padding: 81px 0 141px;
  opacity: 0; }
  .questionnaire.active {
    opacity: 1; }
  .questionnaire .questionnaire__pages-info {
    -webkit-transition: opacity 0.5s ease-out;
    transition: opacity 0.5s ease-out;
    font-size: 15px;
    font-size: 1.5rem;
    position: absolute;
    right: 0;
    bottom: 20px;
    left: 0;
    text-align: center;
    opacity: 0; }
    .questionnaire .questionnaire__pages-info.active {
      opacity: 1; }
  .questionnaire .questionnaire__answer-set-wrapper {
    -webkit-transition: opacity 0.5s ease-out;
    transition: opacity 0.5s ease-out;
    width: 99999px;
    opacity: 0;
    position: relative;
    z-index: 0; }
    .questionnaire .questionnaire__answer-set-wrapper:after {
      content: "";
      display: table;
      clear: both; }
    .questionnaire .questionnaire__answer-set-wrapper.active {
      opacity: 1; }
  .questionnaire .questionnaire__question .questionnaire__question__question {
    -webkit-transition: opacity 0.5s ease-out;
    transition: opacity 0.5s ease-out;
    font-size: 20px;
    font-size: 2rem;
    margin: 0 auto;
    margin-bottom: 30px;
    text-align: center;
    opacity: 0;
    width: 80%; }
    @media screen and (min-width: 768px)  {
      .questionnaire .questionnaire__question .questionnaire__question__question {
        font-size: 22px;
        font-size: 2.2rem;
        margin-bottom: 45px;
        width: auto; } }
    @media screen and (min-width: 960px)  {
      .questionnaire .questionnaire__question .questionnaire__question__question {
        font-size: 32px;
        font-size: 3.2rem; } }
    @media screen and (min-width: 1440px)  {
      .questionnaire .questionnaire__question .questionnaire__question__question {
        font-size: 40px;
        font-size: 4rem; } }
    .questionnaire .questionnaire__question .questionnaire__question__question.active {
      opacity: 1; }
  .questionnaire .questionnaire__question .questionnaire__question__answer-set {
    float: left; }
  .questionnaire .questionnaire__question__answer-set__inner {
    margin: 0 auto;
    display: table;
    position: relative;
    width: 50%; }
    @media screen and (min-width: 768px)  {
      .questionnaire .questionnaire__question__answer-set__inner {
        width: auto; } }
  .questionnaire .questionnaire__choice-container:after {
    content: "";
    display: table;
    clear: both; }
  .questionnaire .questionnaire__choice {
    -webkit-transition: color 0.5s ease-out, background-color 0.5s ease-out;
    transition: color 0.5s ease-out, background-color 0.5s ease-out;
    width: 100%;
    height: 10rem;
    background-color: #6eb6e6;
    cursor: pointer;
    float: left;
    margin-right: 0;
    margin-bottom: 0.5rem;
    position: relative;
    text-align: center; }
    @media screen and (min-width: 768px)  {
      .questionnaire .questionnaire__choice {
        width: 110px;
        height: 110px;
        margin-right: 10px;
        margin-bottom: 0; } }
    @media screen and (min-width: 960px)  {
      .questionnaire .questionnaire__choice {
        width: 145px;
        height: 145px;
        font-size: 17px;
        font-size: 1.7rem; } }
    @media screen and (min-width: 1100px)  {
      .questionnaire .questionnaire__choice {
        width: 170px;
        height: 170px;
        font-size: 20px;
        font-size: 2rem; } }
    @media screen and (min-width: 1280px)  {
      .questionnaire .questionnaire__choice {
        width: 200px;
        height: 200px; } }
    @media screen and (min-width: 1440px)  {
      .questionnaire .questionnaire__choice {
        width: 220px;
        height: 220px; } }
    .questionnaire .questionnaire__choice.active {
      color: #000;
      background-color: #cfe7f7; }
    .questionnaire .questionnaire__choice:last-child {
      margin-right: 0; }
    .questionnaire .questionnaire__choice .questionnaire__choice__inner {
      -webkit-transform: translate(-50%, -50%);
      -ms-transform: translate(-50%, -50%);
      transform: translate(-50%, -50%);
      position: absolute;
      top: 50%;
      left: 50%; }
      @media screen and (min-width: 768px)  {
        .questionnaire .questionnaire__choice .questionnaire__choice__inner {
          min-width: 10rem; } }
    .questionnaire .questionnaire__choice .questionnaire__choice__description {
      display: none; }
  .questionnaire .questionnaire__description {
    position: absolute;
    left: 50%;
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    transform: translateX(-50%);
    -webkit-transition: opacity 0.25s ease-out;
    transition: opacity 0.25s ease-out;
    opacity: 0;
    font-size: 15px;
    font-size: 1.5rem;
    display: none;
    margin: 37px auto 0;
    text-align: center;
    width: 100%; }
    @media screen and (min-width: 768px)  {
      .questionnaire .questionnaire__description {
        display: block; } }
    @media screen and (min-width: 960px)  {
      .questionnaire .questionnaire__description {
        font-size: 16px;
        font-size: 1.6rem; } }
    @media screen and (min-width: 1280px)  {
      .questionnaire .questionnaire__description {
        font-size: 19px;
        font-size: 1.9rem; } }
    @media screen and (min-width: 1440px)  {
      .questionnaire .questionnaire__description {
        font-size: 20px;
        font-size: 2rem; } }
    .questionnaire .questionnaire__description.active {
      opacity: 1; }
  .questionnaire .questionnaire__nav {
    -webkit-transition: opacity 0.5s ease-out;
    transition: opacity 0.5s ease-out;
    background-color: #6eb6e6;
    cursor: pointer;
    height: 100%;
    width: 40px;
    opacity: 0;
    z-index: 1;
    font-size: 80%; }
    .questionnaire .questionnaire__nav.active {
      opacity: 1; }
    .questionnaire .questionnaire__nav.disabled {
      opacity: 0.3; }
    .questionnaire .questionnaire__nav .icon {
      -webkit-transform: translate(-50%, -50%) rotate(90deg);
      -ms-transform: translate(-50%, -50%) rotate(90deg);
      transform: translate(-50%, -50%) rotate(90deg);
      position: absolute;
      top: 50%;
      left: 50%;
      display: block;
      font-size: 12px;
      font-size: 1.2rem;
      color: #fff; }
      @media screen and (min-width: 768px)  {
        .questionnaire .questionnaire__nav .icon {
          font-size: 28px;
          font-size: 2.8rem; } }
    @media screen and (min-width: 768px)  {
      .questionnaire .questionnaire__nav {
        width: 80px;
        font-size: 100%; } }
  .questionnaire .questionnaire__nav--next {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0; }
    .questionnaire .questionnaire__nav--next .icon {
      -webkit-transform: translate(-50%, -50%) rotate(90deg);
      -ms-transform: translate(-50%, -50%) rotate(90deg);
      transform: translate(-50%, -50%) rotate(90deg); }
  .questionnaire .questionnaire__nav--prev {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0; }
    .questionnaire .questionnaire__nav--prev .icon {
      -webkit-transform: translate(-50%, -50%) rotate(-90deg);
      -ms-transform: translate(-50%, -50%) rotate(-90deg);
      transform: translate(-50%, -50%) rotate(-90deg); }

.two-column-bordered {
  border-top: 1px solid #ececec; }
  @media screen and (min-width: 768px)  {
    .two-column-bordered {
      display: table; } }
  .two-column-bordered .two-column-bordered__column:nth-child(2) {
    margin-top: 20px;
    margin-top: 2rem; }
  @media screen and (min-width: 768px)  {
    .two-column-bordered .two-column-bordered__column {
      display: table-cell;
      vertical-align: middle;
      width: 50%; }
      .two-column-bordered .two-column-bordered__column:nth-child(2) {
        margin-top: 0; } }

.medium-block {
  color: #000;
  font-size: 15px;
  font-size: 1.5rem; }
  .medium-block .medium-block__header {
    font-size: 40px;
    font-size: 4rem; }
  .medium-block .medium-block__subheader {
    font-size: 20px;
    font-size: 2rem; }
  .medium-block .medium-block__description {
    margin-top: 35px;
    margin-top: 3.5rem; }

.events {
  margin-bottom: 90px;
  margin-bottom: 9rem; }
  .events footer button {
    display: none; }

.before-after {
  -webkit-transition: opacity 0.5s ease-out;
  transition: opacity 0.5s ease-out;
  display: inline-block;
  opacity: 0;
  overflow: hidden;
  position: relative; }
  @media screen and (min-width: 768px)  {
    .before-after {
      width: 355px;
      height: 235px; } }
  @media screen and (min-width: 960px)  {
    .before-after {
      width: 400px;
      height: 280px; } }
  @media screen and (min-width: 1100px)  {
    .before-after {
      width: 460px;
      height: 340px; } }
  .before-after.visible {
    opacity: 1; }
  .before-after .before-after__sizer {
    width: 100%;
    visibility: hidden;
    pointer-events: none; }
    @media screen and (min-width: 768px)  {
      .before-after .before-after__sizer {
        display: none; } }
  .before-after .before-after__img {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    pointer-events: none;
    width: 100%; }
    .before-after .before-after__img .before-after__img__photo {
      width: 100%;
      height: 100%;
      background-size: cover;
      background-position: center center;
      background-repeat: no-repeat; }
  .before-after .before-after__img--before {
    overflow: hidden;
    width: 50%; }
  .before-after .before-after__slider {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 50%;
    cursor: ew-resize;
    margin-left: -25px;
    width: 50px;
    z-index: 2; }
    .before-after .before-after__slider .before-after__slider__cta {
      -webkit-transition: opacity 0.3s ease-out;
      transition: opacity 0.3s ease-out;
      background: rgba(255, 255, 255, 0.5);
      border-radius: 6px;
      color: #000;
      font-size: 11px;
      font-size: 1.1rem;
      width: 70px;
      position: absolute;
      top: 75%;
      left: 50%;
      -webkit-transform: translate(-50%, -50%);
      -ms-transform: translate(-50%, -50%);
      transform: translate(-50%, -50%);
      text-align: center;
      padding: 5px 0;
      opacity: 1; }
      .before-after .before-after__slider .before-after__slider__cta.seen {
        opacity: 0; }
    .before-after .before-after__slider .before-after__slider__line {
      position: absolute;
      top: 0;
      bottom: 0;
      left: 50%;
      -webkit-transform: translateX(-50%);
      -ms-transform: translateX(-50%);
      transform: translateX(-50%);
      background-color: #fff;
      width: 4px; }
    .before-after .before-after__slider:hover .before-after__slider__circle, .before-after .before-after__slider .before-after__slider__circle.active {
      background-color: #5daee3; }
      .before-after .before-after__slider:hover .before-after__slider__circle .before-after__slider__circle__icon::before, .before-after .before-after__slider:hover .before-after__slider__circle .before-after__slider__circle__icon::after, .before-after .before-after__slider:hover .before-after__slider__circle .before-after__slider__circle__icon .before-after__slider__circle__icon__dash, .before-after .before-after__slider .before-after__slider__circle.active .before-after__slider__circle__icon::before, .before-after .before-after__slider .before-after__slider__circle.active .before-after__slider__circle__icon::after, .before-after .before-after__slider .before-after__slider__circle.active .before-after__slider__circle__icon .before-after__slider__circle__icon__dash {
        background-color: #fff; }
      .before-after .before-after__slider:hover .before-after__slider__circle .before-after__slider__circle__icon .before-after__slider__circle__icon__arrow.left, .before-after .before-after__slider .before-after__slider__circle.active .before-after__slider__circle__icon .before-after__slider__circle__icon__arrow.left {
        height: 0;
        width: 0;
        border-top: 4.5px solid transparent;
        border-bottom: 4.5px solid transparent;
        border-right: 4.5px solid #fff; }
      .before-after .before-after__slider:hover .before-after__slider__circle .before-after__slider__circle__icon .before-after__slider__circle__icon__arrow.right, .before-after .before-after__slider .before-after__slider__circle.active .before-after__slider__circle__icon .before-after__slider__circle__icon__arrow.right {
        height: 0;
        width: 0;
        border-top: 4.5px solid transparent;
        border-bottom: 4.5px solid transparent;
        border-left: 4.5px solid #fff; }
    .before-after .before-after__slider:active .before-after__slider__circle, .before-after .before-after__slider .before-after__slider__circle.active {
      -webkit-box-shadow: inset 0 0 1px rgba(2, 3, 3, 0.15), inset 0 0 5px rgba(0, 0, 0, 0.1);
      box-shadow: inset 0 0 1px rgba(2, 3, 3, 0.15), inset 0 0 5px rgba(0, 0, 0, 0.1); }
    .before-after .before-after__slider .before-after__slider__circle {
      -webkit-transition: background-color 0.2s ease-out;
      transition: background-color 0.2s ease-out;
      position: absolute;
      top: 50%;
      left: 50%;
      width: 50px;
      height: 50px;
      -webkit-transform: translate(-50%, -50%);
      -ms-transform: translate(-50%, -50%);
      transform: translate(-50%, -50%);
      background-color: #fff;
      border-radius: 50%;
      border: 4px solid #fff; }
    .before-after .before-after__slider .before-after__slider__circle__icon {
      position: absolute;
      top: 50%;
      left: 50%;
      -webkit-transform: translate(-50%, -50%);
      -ms-transform: translate(-50%, -50%);
      transform: translate(-50%, -50%);
      color: #000;
      height: 20px;
      position: relative;
      width: 60%; }
      .before-after .before-after__slider .before-after__slider__circle__icon .before-after__slider__circle__icon__arrow {
        -webkit-transition: border-color 0.2s ease-out;
        transition: border-color 0.2s ease-out;
        -webkit-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
        transform: translateY(-50%);
        font-size: 8px; }
        .before-after .before-after__slider .before-after__slider__circle__icon .before-after__slider__circle__icon__arrow.left {
          position: absolute;
          top: 50%;
          left: 0;
          height: 0;
          width: 0;
          border-top: 4.5px solid transparent;
          border-bottom: 4.5px solid transparent;
          border-right: 4.5px solid #000; }
        .before-after .before-after__slider .before-after__slider__circle__icon .before-after__slider__circle__icon__arrow.right {
          position: absolute;
          top: 50%;
          right: 0;
          height: 0;
          width: 0;
          border-top: 4.5px solid transparent;
          border-bottom: 4.5px solid transparent;
          border-left: 4.5px solid #000; }
      .before-after .before-after__slider .before-after__slider__circle__icon .before-after__slider__circle__icon__dash {
        position: absolute;
        top: 50%;
        left: 50%;
        -webkit-transform: translate(-50%, -50%);
        -ms-transform: translate(-50%, -50%);
        transform: translate(-50%, -50%);
        -webkit-transition: background-color 0.2s ease-out;
        transition: background-color 0.2s ease-out;
        background-color: #000;
        content: '';
        height: 2px;
        width: 8px; }
      .before-after .before-after__slider .before-after__slider__circle__icon::before {
        position: absolute;
        top: 0;
        left: 0;
        -webkit-transition: background-color 0.2s ease-out;
        transition: background-color 0.2s ease-out;
        background-color: #000;
        content: '';
        display: block;
        height: 2px;
        width: 95%; }
      .before-after .before-after__slider .before-after__slider__circle__icon::after {
        position: absolute;
        bottom: 0;
        left: 0;
        -webkit-transition: background-color 0.2s ease-out;
        transition: background-color 0.2s ease-out;
        background-color: #000;
        content: '';
        display: block;
        height: 2px;
        width: 95%; }
  .before-after.before-after--thumb {
    width: 32%;
    height: 25%;
    float: left;
    cursor: pointer;
    margin-right: 2%;
    margin-top: 10px; }
    .before-after.before-after--thumb:last-child {
      margin-right: 0; }
    .before-after.before-after--thumb .before-after__sizer {
      height: 100px; }
      @media screen and (min-width: 480px)  {
        .before-after.before-after--thumb .before-after__sizer {
          height: 150px; } }
      @media screen and (min-width: 768px)  {
        .before-after.before-after--thumb .before-after__sizer {
          height: auto; } }
    @media screen and (min-width: 768px)  {
      .before-after.before-after--thumb {
        width: 110px;
        height: 80px;
        float: none;
        margin-right: 5px; } }
    @media screen and (min-width: 960px)  {
      .before-after.before-after--thumb {
        width: 127px;
        height: 97px; } }
    @media screen and (min-width: 1100px)  {
      .before-after.before-after--thumb {
        width: 150px;
        height: 120px; } }
    .before-after.before-after--thumb::after {
      -webkit-transition: border-color 0.2s ease-out;
      transition: border-color 0.2s ease-out;
      position: absolute;
      top: 0;
      right: 0;
      bottom: 0;
      left: 0;
      content: '';
      display: block;
      border: 4px solid transparent;
      z-index: 2; }
    .before-after.before-after--thumb .before-after-thumb__line {
      position: absolute;
      top: 0;
      bottom: 0;
      left: 50%;
      background-color: #fff;
      width: 2.5px;
      z-index: 2; }
    .before-after.before-after--thumb:hover::after, .before-after.before-after--thumb.active::after {
      border-color: #5daee3; }

.product-details-panel {
  background-color: #fff;
  color: #000; }
  .product-details-panel .product-details-panel__content-wrap {
    padding: 30px 30px 30px; }
  .product-details-panel .product-details-panel__content-wrap--dark {
    background-color: #000;
    color: #fff;
    padding: 10px 10px;
    border-bottom: 1px solid #000; }
    @media screen and (min-width: 768px)  {
      .product-details-panel .product-details-panel__content-wrap--dark {
        padding: 20px 30px; } }
  .product-details-panel .product-details-panel__content-wrap--dark #search-button {
    font-size: 14px;
    font-size: 1.4rem;
    padding: 7px;
    width: 30%;
    border: 1px solid #3a3a3a;
    border-radius: 6px;
    color: #3a3a3a;
    cursor: pointer; }
    .product-details-panel .product-details-panel__content-wrap--dark #search-button:hover {
      color: #5daee3;
      border-color: #5daee3; }
    @media screen and (min-width: 768px)  {
      .product-details-panel .product-details-panel__content-wrap--dark #search-button {
        font-size: 20px;
        font-size: 2rem;
        padding: 13px; } }
  .product-details-panel .product-details-panel__product-title {
    font-size: 17px;
    font-size: 1.7rem; }
    @media screen and (min-width: 768px)  {
      .product-details-panel .product-details-panel__product-title {
        font-size: 25px;
        font-size: 2.5rem; } }
  .product-details-panel .product-details-panel__product-sub-title {
    font-size: 11px;
    font-size: 1.1rem;
    margin-top: 7px; }
    @media screen and (min-width: 768px)  {
      .product-details-panel .product-details-panel__product-sub-title {
        font-size: 15px;
        font-size: 1.5rem; } }
  .product-details-panel .product-details-panel__rating {
    display: none;
    margin-top: 5px; }
    @media screen and (min-width: 768px)  {
      .product-details-panel .product-details-panel__rating {
        margin-top: 20px; } }
    .product-details-panel .product-details-panel__rating .product-details-panel__rating__read-more {
      font-size: 11px;
      font-size: 1.1rem;
      color: #000;
      margin-left: 10px; }
      @media screen and (min-width: 768px)  {
        .product-details-panel .product-details-panel__rating .product-details-panel__rating__read-more {
          font-size: 12px;
          font-size: 1.2rem; } }
  .product-details-panel .product-details-panel__tag-list {
    display: inline-block;
    float: left;
    margin-top: 10px;
    width: 50%;
    padding-right: 10px; }
    .product-details-panel .product-details-panel__tag-list:nth-child(2n) {
      padding-right: 0;
      padding-left: 10px; }
    .product-details-panel .product-details-panel__tag-list .product-details-panel__tag-list__header {
      font-size: 11px;
      font-size: 1.1rem;
      margin-bottom: 5px;
      text-transform: uppercase; }
      @media screen and (min-width: 768px)  {
        .product-details-panel .product-details-panel__tag-list .product-details-panel__tag-list__header {
          font-size: 15px;
          font-size: 1.5rem; } }
    .product-details-panel .product-details-panel__tag-list .product-details-panel__tag-list__tag {
      font-size: 8px;
      font-size: 0.8rem;
      border-radius: 6px;
      border: 1px solid #000;
      display: inline-block;
      margin-bottom: 5px;
      padding: 3px; }
      @media screen and (min-width: 768px)  {
        .product-details-panel .product-details-panel__tag-list .product-details-panel__tag-list__tag {
          font-size: 12px;
          font-size: 1.2rem; } }
  .product-details-panel .product-details-panel__product-description {
    font-size: 11px;
    font-size: 1.1rem;
    line-height: 1;
    margin-top: 15px; }
    @media screen and (min-width: 768px)  {
      .product-details-panel .product-details-panel__product-description {
        font-size: 13px;
        font-size: 1.3rem;
        margin-top: 30px; } }
  .product-details-panel .product-details-panel__bullets {
    font-size: 11px;
    font-size: 1.1rem;
    margin-top: 20px;
    padding-left: 15px; }
    @media screen and (min-width: 768px)  {
      .product-details-panel .product-details-panel__bullets {
        font-size: 13px;
        font-size: 1.3rem; } }
    .product-details-panel .product-details-panel__bullets, .product-details-panel .product-details-panel__bullets li {
      list-style-type: disc; }
  .product-details-panel .product-details-panel__content-wrap--dark:after {
    content: "";
    display: table;
    clear: both; }
  .product-details-panel .product-details-panel__content-wrap--dark > * {
    float: left;
    margin-left: 4%;
    text-align: center;
    vertical-align: middle;
    width: 22%; }
    .product-details-panel .product-details-panel__content-wrap--dark > *:first-child {
      margin-left: 0; }
  .product-details-panel .product-details-panel__price {
    font-size: 17px;
    font-size: 1.7rem;
    display: inline-block;
    padding: 7px 0;
    width: 20%;
    text-align: left; }
    @media screen and (min-width: 768px)  {
      .product-details-panel .product-details-panel__price {
        font-size: 20px;
        font-size: 2rem;
        padding: 13px 0; } }
  .product-details-panel .select-container {
    width: 25%; }
    .product-details-panel .select-container select {
      width: 100%;
      padding-right: 10%;
      padding-left: 10%;
      text-align: center; }
    .product-details-panel .select-container .icon-caret {
      right: 14%; }
  .product-details-panel .product-details-panel__shop-local-input {
    width: 30%; }
  .product-details-panel .search-map {
    width: 13%;
    text-align: center;
    padding-top: 9px;
    padding-right: 0;
    padding-bottom: 8px;
    padding-left: 0;
    font-size: 15px;
    font-size: 1.5rem;
    padding-right: 0;
    padding-left: 0; }
    @media screen and (min-width: 768px)  {
      .product-details-panel .search-map {
        padding-top: 13px;
        padding-right: 0;
        padding-bottom: 13px;
        padding-left: 0;
        font-size: 20px;
        font-size: 2rem; } }

.star-rating {
  vertical-align: middle; }
  .star-rating .icon {
    color: #b6b6b6;
    font-size: 12px;
    font-size: 1.2rem; }
    @media screen and (min-width: 768px)  {
      .star-rating .icon {
        font-size: 16px;
        font-size: 1.6rem; } }
  .star-rating[data-rating="1"] .icon:nth-child(-n+1) {
    color: #000; }
  .star-rating[data-rating="2"] .icon:nth-child(-n+2) {
    color: #000; }
  .star-rating[data-rating="3"] .icon:nth-child(-n+3) {
    color: #000; }
  .star-rating[data-rating="4"] .icon:nth-child(-n+4) {
    color: #000; }
  .star-rating[data-rating="5"] .icon:nth-child(-n+5) {
    color: #000; }

.two-column-dark {
  color: #fff; }
  @media screen and (min-width: 768px)  {
    .two-column-dark {
      display: table; }
      .two-column-dark:after {
        content: "";
        display: table;
        clear: both; } }
  .two-column-dark .two-column-dark__column {
    background-color: #000;
    width: 100%; }
    @media screen and (min-width: 768px)  {
      .two-column-dark .two-column-dark__column {
        display: table-cell;
        vertical-align: top;
        width: 50%; } }
    .two-column-dark .two-column-dark__column:nth-child(2) {
      background-color: #171717; }

.three-column {
  color: #000; }
  .three-column:after {
    content: "";
    display: table;
    clear: both; }
  .three-column .three-column__column {
    float: left;
    width: 100%;
    padding: 15px;
    padding: 1.5rem; }
    @media screen and (min-width: 768px)  {
      .three-column .three-column__column {
        width: 33.3%; } }
  .three-column .three-column__title {
    font-size: 25px;
    font-size: 2.5rem;
    margin-bottom: 15px;
    margin-bottom: 1.5rem; }

.fullscreen-modal {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  -webkit-transform: translateY(-120%);
  -ms-transform: translateY(-120%);
  transform: translateY(-120%);
  -webkit-transition: -webkit-transform 0.5s ease;
  transition: transform 0.5s ease;
  background: rgba(255, 255, 255, 0.95);
  z-index: 100; }
  .fullscreen-modal.active {
    -webkit-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0); }
  .fullscreen-modal.dark {
    background: rgba(0, 0, 0, 0.95); }
    .fullscreen-modal.dark .fullscreen-modal__close {
      border-color: #fff;
      padding: 0; }
      .fullscreen-modal.dark .fullscreen-modal__close .icon {
        color: #fff;
        font-size: 1rem; }
        @media screen and (min-width: 960px)  {
          .fullscreen-modal.dark .fullscreen-modal__close .icon {
            font-size: 1.8rem; } }
      .fullscreen-modal.dark .fullscreen-modal__close:hover {
        border-color: #61aee1; }
        .fullscreen-modal.dark .fullscreen-modal__close:hover .icon {
          color: #61aee1; }
    .fullscreen-modal.dark .fullscreen-modal__content {
      overflow: auto; }
  .fullscreen-modal .fullscreen-modal__content {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    overflow: scroll;
    z-index: 100; }
  .fullscreen-modal .fullscreen-modal__close {
    position: absolute;
    top: 15px;
    right: 15px;
    display: block;
    z-index: 101; }

/**
 * fullPage 2.5.7
 * https://github.com/alvarotrigo/fullPage.js
 * MIT licensed
 *
 * Copyright (C) 2013 alvarotrigo.com - A project by Alvaro Trigo
 */
#superContainer {
  height: 100%;
  position: relative;
  /* Touch detection for Windows 8 */
  -ms-touch-action: none;
  /* IE 11 on Windows Phone 8.1*/
  touch-action: none; }

.fp-section {
  position: relative;
  -webkit-box-sizing: border-box;
  /* Safari<=5 Android<=3 */
  -moz-box-sizing: border-box;
  /* <=28 */
  box-sizing: border-box; }

.fp-slide {
  float: left; }

.fp-slide, .fp-slidesContainer {
  height: 100%;
  display: block; }

.fp-slides {
  z-index: 1;
  height: 100%;
  overflow: hidden;
  position: relative;
  -webkit-transition: all 0.3s ease-out;
  /* Safari<=6 Android<=4.3 */
  transition: all 0.3s ease-out; }

.fp-section.fp-table, .fp-slide.fp-table {
  display: table;
  table-layout: fixed;
  width: 100%; }

.fp-tableCell {
  display: table-cell;
  vertical-align: middle;
  width: 100%;
  height: 100%; }

.fp-slidesContainer {
  float: left;
  position: relative; }

.fp-controlArrow {
  position: absolute;
  z-index: 4;
  top: 50%;
  cursor: pointer;
  width: 0;
  height: 0;
  border-style: solid;
  margin-top: -38px;
  -webkit-transform: translate3d(0, 0, 0);
  -ms-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0); }

.fp-controlArrow.fp-prev {
  left: 15px;
  width: 0;
  border-width: 38.5px 34px 38.5px 0;
  border-color: transparent #fff transparent transparent; }

.fp-controlArrow.fp-next {
  right: 15px;
  border-width: 38.5px 0 38.5px 34px;
  border-color: transparent transparent transparent #fff; }

.fp-scrollable {
  overflow: scroll; }

.fp-notransition {
  -webkit-transition: none !important;
  transition: none !important; }

#fp-nav {
  position: fixed;
  z-index: 4;
  margin-top: -32px;
  top: 50%;
  opacity: 1;
  -webkit-transform: translate3d(0, 0, 0);
  background-color: #000;
  padding: 20px;
  -webkit-transform: translate3d(-100%, 0, 0);
  -ms-transform: translate3d(-100%, 0, 0);
  transform: translate3d(-100%, 0, 0);
  -webkit-transition: -webkit-transform 0.3s ease-out;
  transition: transform 0.3s ease-out; }
  #fp-nav.in {
    -webkit-transition: -webkit-transform 0.3s ease-out 0.3s;
    transition: transform 0.3s ease-out 0.3s;
    -webkit-transform: translate3d(0, 0, 0);
    -ms-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); }

#fp-nav.right {
  right: 0; }

#fp-nav.left {
  left: 0; }

.fp-slidesNav {
  position: absolute;
  z-index: 4;
  left: 50%;
  opacity: 1; }

.fp-slidesNav.bottom {
  bottom: 17px; }

.fp-slidesNav.top {
  top: 17px; }

#fp-nav ul, .fp-slidesNav ul {
  margin: 0;
  padding: 0; }

#fp-nav ul li, .fp-slidesNav ul li {
  display: block;
  width: 14px;
  height: 13px;
  margin-bottom: 15px;
  position: relative; }
  #fp-nav ul li:last-child, .fp-slidesNav ul li:last-child {
    margin-bottom: 0; }

.fp-slidesNav ul li {
  display: inline-block; }

#fp-nav ul li a, .fp-slidesNav ul li a {
  display: block;
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  cursor: pointer;
  text-decoration: none; }

#fp-nav ul li a.active span, .fp-slidesNav ul li a.active span {
  background: #fff; }

#fp-nav ul li a span, .fp-slidesNav ul li a span {
  top: 2px;
  left: 2px;
  width: 9px;
  height: 9px;
  border: 1px solid #fff;
  background: rgba(0, 0, 0, 0);
  border-radius: 50%;
  position: absolute;
  z-index: 1; }

#fp-nav ul li .fp-tooltip {
  position: absolute;
  top: -2px;
  color: #fff;
  font-size: 14px;
  font-family: arial, helvetica, sans-serif;
  white-space: nowrap;
  max-width: 220px;
  overflow: hidden;
  display: block;
  opacity: 0;
  width: 0; }

#fp-nav ul li:hover .fp-tooltip {
  -webkit-transition: opacity 0.2s ease-in;
  transition: opacity 0.2s ease-in;
  width: auto;
  opacity: 1; }

#fp-nav ul li .fp-tooltip.right {
  right: 20px; }

#fp-nav ul li .fp-tooltip.left {
  left: 20px; }

.fullscreen-modal.newsletter {
  z-index: 30; }

.newsletter__signup {
  color: #000;
  background-color: #f5f5f5;
  max-width: 56rem;
  width: 90%;
  position: relative;
  left: 50%;
  top: 0;
  display: inline-block;
  margin-bottom: 3rem;
  -webkit-transform: translate(-50%, 8.5rem);
  -ms-transform: translate(-50%, 8.5rem);
  transform: translate(-50%, 8.5rem); }
  @media screen and (min-width: 960px)  {
    .newsletter__signup {
      width: 60%; } }
  .newsletter__signup .fullscreen-modal__close {
    right: -0.5rem;
    top: -4rem;
    display: inline-block;
    width: 3rem;
    height: 3rem; }
    @media screen and (min-width: 960px)  {
      .newsletter__signup .fullscreen-modal__close {
        top: -6rem;
        right: -6rem;
        width: 5rem;
        height: 5rem; } }
  .newsletter__signup fieldset {
    margin: 0;
    border: 0;
    padding: 0; }
  .newsletter__signup form {
    padding: 0 1rem; }
    @media screen and (min-width: 960px)  {
      .newsletter__signup form {
        padding: 0 3.5rem; } }
  .newsletter__signup header {
    width: 100%;
    height: 16rem;
    text-align: center;
    background-repeat: no-repeat;
    background-size: contain;
    background-position-x: center; }
    @media screen and (min-width: 960px)  {
      .newsletter__signup header {
        height: 32rem; } }
  .newsletter__signup h2 {
    margin: 0;
    margin-top: 1rem;
    position: absolute;
    text-align: center;
    width: 100%;
    letter-spacing: 1.5px;
    font-size: 20px;
    font-size: 2rem; }
    @media screen and (min-width: 960px)  {
      .newsletter__signup h2 {
        margin-top: 3rem;
        font-size: 35px;
        font-size: 3.5rem; } }
  .newsletter__signup h3 {
    text-align: center;
    margin: 1.5rem 0; }
    @media screen and (min-width: 960px)  {
      .newsletter__signup h3 {
        margin: 3.2rem 0;
        font-size: 20px;
        font-size: 2rem; } }
  .newsletter__signup input[type="text"] {
    width: 100%;
    height: 4.5rem;
    display: inline-block;
    border: 1px solid #E8E8E8;
    margin-bottom: 1rem;
    padding: 0 1.9rem;
    border-radius: 0;
    -webkit-appearance: none; }
    @media screen and (min-width: 960px)  {
      .newsletter__signup input[type="text"] {
        width: 23.5rem; }
        .newsletter__signup input[type="text"].left {
          display: inline-block;
          float: left;
          margin-right: 2rem;
          margin-bottom: 2rem; }
        .newsletter__signup input[type="text"].right {
          display: inline-block;
          float: right;
          margin: 0; } }

.form__login-form__footer-content {
  color: #000;
  position: relative; }
  .form__login-form__footer-content .required, .form__login-form__footer-content .submit-btn {
    display: inline-block; }
  .form__login-form__footer-content .required {
    margin-top: 3rem;
    margin-left: 1rem;
    font-size: 12px; }
    @media screen and (min-width: 960px)  {
      .form__login-form__footer-content .required {
        margin-left: 2rem; } }
  .form__login-form__footer-content .submit-btn {
    position: absolute;
    right: 1rem;
    top: 2rem; }
    .form__login-form__footer-content .submit-btn .button.standard-black {
      padding: 0.5rem 1rem; }
      @media screen and (min-width: 960px)  {
        .form__login-form__footer-content .submit-btn .button.standard-black {
          padding: 1rem 1.8rem; } }
    @media screen and (min-width: 960px)  {
      .form__login-form__footer-content .submit-btn {
        right: 1.8rem; } }

.form__login-form__footer {
  background-color: #fff;
  height: 8rem; }

@-webkit-keyframes bounce {
  0% {
    -webkit-transform: translate(-50%, 0px); }

  55% {
    -webkit-transform: translate(-50%, 10px); } }

@keyframes bounce {
  0% {
    -webkit-transform: translate(-50%, 0px);
    -ms-transform: translate(-50%, 0px);
    transform: translate(-50%, 0px); }

  55% {
    -webkit-transform: translate(-50%, 10px);
    -ms-transform: translate(-50%, 10px);
    transform: translate(-50%, 10px); } }

.fullpage__scroll-cta {
  -webkit-transition: opacity 0.5s ease-out;
  transition: opacity 0.5s ease-out;
  position: fixed;
  bottom: 70px;
  left: 50%;
  -webkit-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  transform: translateX(-50%);
  z-index: 5;
  text-align: center;
  opacity: 1;
  cursor: pointer;
  -webkit-animation-play-state: paused;
  animation-play-state: paused;
  -webkit-animation-name: bounce;
  animation-name: bounce;
  -webkit-animation-iteration-count: infinite;
  animation-iteration-count: infinite;
  -webkit-animation-duration: 2s;
  animation-duration: 2s; }
  .fullpage__scroll-cta .fullpage__scroll-cta__copy {
    font-size: 14px;
    font-size: 1.4rem;
    color: #000;
    text-align: center; }
  .fullpage__scroll-cta .fullpage__scroll-cta__icon-container {
    position: relative;
    margin-top: -3px;
    left: -2px; }
  .fullpage__scroll-cta .icon {
    font-size: 32px;
    font-size: 3.2rem;
    width: 17px;
    height: 32px;
    color: #000;
    display: block;
    position: relative;
    left: 9.5px; }
    .fullpage__scroll-cta .icon:nth-child(2) {
      margin-top: -22px; }
  .fullpage__scroll-cta:hover .fullpage__scroll-cta__copy {
    color: #5daee3 !important; }
  .fullpage__scroll-cta:hover .icon {
    color: #5daee3 !important; }

.product-details-panel__share-container {
  position: absolute;
  right: 0;
  top: 0;
  z-index: 1; }
  .product-details-panel__share-container button {
    margin-bottom: 1px; }
  .product-details-panel__share-container button.share {
    display: inline-block; }
  .product-details-panel__share-container button.share-close {
    display: none; }
  .product-details-panel__share-container.active button.share-close {
    display: inline-block; }
  .product-details-panel__share-container.active button.share {
    display: none; }

.product-details__share {
  position: absolute;
  right: 0;
  width: 6.3rem;
  overflow: hidden;
  background-color: #fff;
  display: none; }
  .product-details__share button {
    display: block;
    width: 100%;
    height: 6.3rem;
    border: 1px solid transparent; }
    .product-details__share button:hover {
      -webkit-box-shadow: inset 0 0 25px rgba(0, 0, 0, 0.15);
      box-shadow: inset 0 0 25px rgba(0, 0, 0, 0.15);
      border: 1px solid rgba(0, 0, 0, 0.15); }
    .product-details__share button .icon {
      font-size: 2rem;
      color: #fff; }
    .product-details__share button .icon-twitter {
      font-size: 1.7rem; }
    .product-details__share button[data-type="facebook"] {
      background-color: #275999; }
    .product-details__share button[data-type="pinterest"] {
      background-color: #dd212c; }
    .product-details__share button[data-type="twitter"] {
      background-color: #3aabda; }
    .product-details__share button[data-type="google-plus"] {
      background-color: #ea483a; }

.tooltip {
  -webkit-transition: -webkit-transform 0.3s ease-out, opacity 0.3s ease-out;
  transition: transform 0.3s ease-out, opacity 0.3s ease-out;
  position: absolute;
  bottom: 105%;
  left: 50%;
  -webkit-transform: translate(-50%, 2%);
  -ms-transform: translate(-50%, 2%);
  transform: translate(-50%, 2%);
  background-color: #fff;
  min-width: 230px;
  padding: 20px;
  border: 1px solid #000;
  text-align: center;
  opacity: 0;
  pointer-events: none; }
  .tooltip.active {
    opacity: 1;
    -webkit-transform: translate(-50%, 0);
    -ms-transform: translate(-50%, 0);
    transform: translate(-50%, 0);
    pointer-events: auto; }
  .tooltip::before, .tooltip::after {
    content: '';
    width: 0px;
    height: 0px;
    position: absolute;
    left: 50%;
    position: absolute;
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    transform: translateX(-50%);
    border-style: solid;
    border-color: transparent;
    border-bottom: 0; }
  .tooltip::before {
    bottom: -12px;
    border-top-color: #000;
    border-width: 12px; }
  .tooltip::after {
    bottom: -11px;
    border-top-color: #fff;
    border-width: 11px; }
  .tooltip .tooltip__header {
    font-size: 15px;
    font-size: 1.5rem;
    color: #000; }
  .tooltip .tooltip__subheader {
    margin-top: 10px;
    font-size: 12px;
    font-size: 1.2rem;
    color: #000; }

.loading__copy {
  text-shadow: 1px 1px #000;
  color: #fff;
  text-align: center;
  margin-bottom: 5px; }

.loading__progress {
  width: 100%;
  height: 10px; }
  .loading__progress .loading__progress__inner {
    -webkit-transition: width 0.3s ease-in-out;
    transition: width 0.3s ease-in-out;
    width: 0%;
    height: 100%;
    background-color: #5daee3; }

/* used everywhere */
header.header {
  z-index: 22;
  position: relative; }

.header-desktop {
  position: fixed;
  top: 0;
  right: 0;
  left: 0;
  display: none;
  z-index: 20; }
  @media screen and (min-width: 768px)  {
    .header-desktop {
      display: block; } }
  .header-desktop .header-top {
    background-color: #000;
    z-index: 21;
    position: relative; }
  .header-desktop a.header-top__link {
    padding: 17px 25px;
    padding: 1.7rem 2.5rem;
    font-size: 15px;
    font-size: 1.5rem;
    color: #c3c3c3;
    display: inline-block;
    position: relative; }
    .header-desktop a.header-top__link .icon {
      position: absolute;
      top: 50%;
      font-size: 13px;
      font-size: 1.3rem;
      left: -24px;
      left: -2.4rem;
      -webkit-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
      transform: translateY(-50%); }
    .header-desktop a.header-top__link:hover {
      color: #5daee3; }
    .header-desktop a.header-top__link.active {
      background-color: #fff;
      color: #000; }
  .header-desktop .nav-background {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background-color: #000;
    z-index: 20; }
  .header-desktop .nav-sites {
    float: left;
    position: relative;
    z-index: 20; }
  .header-desktop .nav-auxiliary {
    float: right;
    position: relative;
    z-index: 20; }
    .header-desktop .nav-auxiliary a.header-top__link {
      margin-right: 70px;
      margin-right: 7rem;
      color: #c3c3c3;
      padding-left: 0;
      padding-right: 0; }
      .header-desktop .nav-auxiliary a.header-top__link:last-child {
        margin-right: 24px;
        margin-right: 2.4rem; }
      .header-desktop .nav-auxiliary a.header-top__link::after {
        -webkit-transition: -webkit-transform 0.1s;
        transition: transform 0.1s;
        position: absolute;
        bottom: -10.4px;
        left: 50%;
        -webkit-transform: translate(-50%, -100%);
        -ms-transform: translate(-50%, -100%);
        transform: translate(-50%, -100%);
        height: 0;
        width: 0;
        border-left: 10.5px solid transparent;
        border-right: 10.5px solid transparent;
        border-top: 10.5px solid #000;
        content: '';
        display: block; }
      .header-desktop .nav-auxiliary a.header-top__link:hover {
        color: #5daee3; }
      .header-desktop .nav-auxiliary a.header-top__link.active {
        background-color: transparent;
        color: #fff; }
        .header-desktop .nav-auxiliary a.header-top__link.active .icon {
          color: #fff; }
        .header-desktop .nav-auxiliary a.header-top__link.active::after {
          -webkit-transition: -webkit-transform 0.5s 0.5s;
          transition: transform 0.5s 0.5s;
          -webkit-transform: translate(-50%, 0);
          -ms-transform: translate(-50%, 0);
          transform: translate(-50%, 0); }
  .header-desktop .header-secondary {
    -webkit-transition: -webkit-transform 0.5s;
    transition: transform 0.5s;
    position: fixed;
    right: 0;
    left: 0;
    -webkit-transform: translateY(-100%);
    -ms-transform: translateY(-100%);
    transform: translateY(-100%);
    background: rgba(255, 255, 255, 0.9); }
    .header-desktop .header-secondary.active {
      -webkit-transform: translateY(0);
      -ms-transform: translateY(0);
      transform: translateY(0); }
  .header-desktop .header-secondary__logo {
    position: absolute;
    top: 24px;
    top: 2.4rem;
    left: 21px;
    left: 2.1rem; }
    .header-desktop .header-secondary__logo a {
      text-decoration: none; }
    .header-desktop .header-secondary__logo i {
      color: #000;
      display: block; }
    .header-desktop .header-secondary__logo .icon-logo {
      font-size: 37px;
      font-size: 3.7rem; }
    .header-desktop .header-secondary__logo .icon-trust-the-experts {
      font-size: 12px;
      font-size: 1.2rem; }
  .header-desktop .nav-main {
    position: relative; }
  .header-desktop .nav-main__links {
    text-align: center;
    margin-left: 180px;
    margin-left: 18rem; }
    @media screen and (min-width: 1440px)  {
      .header-desktop .nav-main__links {
        margin-left: 0; } }
    .header-desktop .nav-main__links .nav-main__links__title {
      padding: 40px 0px;
      padding: 4rem 0rem;
      font-size: 16px;
      font-size: 1.6rem;
      margin-right: 20px;
      margin-right: 2rem;
      position: relative;
      color: #000;
      display: inline-block;
      text-transform: uppercase; }
      .header-desktop .nav-main__links .nav-main__links__title:last-child {
        margin-right: 0; }
      .header-desktop .nav-main__links .nav-main__links__title:hover {
        text-decoration: none; }
        .header-desktop .nav-main__links .nav-main__links__title:hover:before {
          content: '';
          position: absolute;
          display: inline-block;
          border-bottom: 1px solid #000;
          bottom: 3.4rem;
          width: 100%; }
      @media screen and (min-width: 960px)  {
        .header-desktop .nav-main__links .nav-main__links__title {
          font-size: 20px;
          font-size: 2rem;
          margin-right: 30px;
          margin-right: 3rem; } }
      @media screen and (min-width: 1100px)  {
        .header-desktop .nav-main__links .nav-main__links__title {
          margin-right: 60px;
          margin-right: 6rem; } }
      .header-desktop .nav-main__links .nav-main__links__title::after {
        display: none;
        position: absolute;
        bottom: -7px;
        left: 50%;
        -webkit-transform: translateX(-50%);
        -ms-transform: translateX(-50%);
        transform: translateX(-50%);
        height: 0;
        width: 0;
        border-left: 10.5px solid transparent;
        border-right: 10.5px solid transparent;
        border-top: 10.5px solid #fff;
        z-index: 11;
        content: ''; }
      .header-desktop .nav-main__links .nav-main__links__title.active::after {
        display: block; }
  .header-desktop .nav-main__nav-wrapper {
    overflow: hidden;
    width: 100%;
    position: absolute; }
    .header-desktop .nav-main__nav-wrapper.active {
      height: 100vh; }
  .header-desktop .nav-main__nav-container {
    position: absolute;
    right: 0;
    left: 0;
    padding: 49px 0px;
    padding: 4.9rem 0rem;
    -webkit-transform: translateY(-100%);
    -ms-transform: translateY(-100%);
    transform: translateY(-100%);
    -webkit-transition: -webkit-transform 0.5s;
    transition: transform 0.5s;
    color: #fff;
    background-color: #000;
    z-index: 10; }
    .header-desktop .nav-main__nav-container.active {
      -webkit-transform: translateY(0);
      -ms-transform: translateY(0);
      transform: translateY(0); }
    .header-desktop .nav-main__nav-container .main-nav__nav-column {
      width: 33.3%;
      float: left;
      margin-bottom: 50px;
      margin-bottom: 5rem; }
    .header-desktop .nav-main__nav-container .main-nav__nav-column--detailed {
      padding-left: 50px;
      padding-left: 5rem;
      width: 50%; }
    @media screen and (min-width: 960px)  {
      .header-desktop .nav-main__nav-container {
        padding-left: 0px;
        padding-left: 0rem; }
        .header-desktop .nav-main__nav-container .main-nav__nav-column {
          float: left;
          display: block;
          margin-right: 2.35765%;
          width: 31.76157%;
          margin-bottom: 0;
          padding-left: 0; }
          .header-desktop .nav-main__nav-container .main-nav__nav-column:last-child {
            margin-right: 0; }
        .header-desktop .nav-main__nav-container .main-nav__nav-column--detailed {
          float: left;
          display: block;
          margin-right: 2.35765%;
          width: 23.23176%; }
          .header-desktop .nav-main__nav-container .main-nav__nav-column--detailed:last-child {
            margin-right: 0; } }
    .header-desktop .nav-main__nav-container [data-module-helper=close] {
      position: absolute;
      top: 25px;
      right: 21px; }
    .header-desktop .nav-main__nav-container .main-nav__nav-column__title {
      font-size: 25px;
      font-size: 2.5rem;
      margin-bottom: 20px;
      font-weight: 100; }
    .header-desktop .nav-main__nav-container .main-nav__nav-column__links {
      text-align: center; }
      .header-desktop .nav-main__nav-container .main-nav__nav-column__links a {
        color: #eff2f4;
        display: block;
        margin-bottom: 13px; }
    .header-desktop .nav-main__nav-container .main-nav__nav-column__links--detailed {
      letter-spacing: 0.7px;
      height: 180px;
      height: 18rem;
      text-align: left; }
      .header-desktop .nav-main__nav-container .main-nav__nav-column__links--detailed a {
        margin-bottom: 13px; }
        .header-desktop .nav-main__nav-container .main-nav__nav-column__links--detailed a:hover {
          text-decoration: none;
          color: #5daee3; }
    .header-desktop .nav-main__nav-container .main-nav__nav-column__extra {
      letter-spacing: 0.7px;
      margin-bottom: 42px;
      margin-bottom: 4.2rem; }
      .header-desktop .nav-main__nav-container .main-nav__nav-column__extra a {
        margin-bottom: 14px;
        margin-bottom: 1.4rem;
        display: block;
        color: #a1a1a1; }
        .header-desktop .nav-main__nav-container .main-nav__nav-column__extra a:hover {
          text-decoration: none;
          color: #5daee3; }
        .header-desktop .nav-main__nav-container .main-nav__nav-column__extra a:last-child {
          margin-bottom: 0; }
    .header-desktop .nav-main__nav-container .main-nav__nav-column__shop-all {
      letter-spacing: 0.7px;
      position: relative; }
      .header-desktop .nav-main__nav-container .main-nav__nav-column__shop-all .shop-all-link {
        display: block;
        font-weight: bold;
        color: #eff2f4; }
        .header-desktop .nav-main__nav-container .main-nav__nav-column__shop-all .shop-all-link:hover {
          text-decoration: none;
          color: #5daee3; }
      .header-desktop .nav-main__nav-container .main-nav__nav-column__shop-all .circle--caret {
        width: 21px;
        height: 21px;
        position: absolute;
        top: -1px;
        right: 48px; }
    .header-desktop .nav-main__nav-container .main-nav__nav-column__help {
      margin-bottom: 42px;
      margin-bottom: 4.2rem; }
      .header-desktop .nav-main__nav-container .main-nav__nav-column__help a {
        color: #5daee3; }
    .header-desktop .nav-main__nav-container .nav-main__nav-inner {
      max-width: 800px;
      margin-left: auto;
      margin-right: auto; }
      .header-desktop .nav-main__nav-container .nav-main__nav-inner:after {
        content: "";
        display: table;
        clear: both; }
    .header-desktop .nav-main__nav-container.nav-main__nav-container--detailed .nav-main__nav-inner {
      max-width: 980px;
      margin-left: auto;
      margin-right: auto; }
      .header-desktop .nav-main__nav-container.nav-main__nav-container--detailed .nav-main__nav-inner:after {
        content: "";
        display: table;
        clear: both; }
  .header-desktop .nav-main__featured-products {
    display: none;
    padding: 30px 0px;
    padding: 3rem 0rem;
    background-color: #fff; }
    @media screen and (min-width: 960px)  {
      .header-desktop .nav-main__featured-products {
        margin-top: 39px;
        margin-top: 3.9rem; } }
    .header-desktop .nav-main__featured-products .nav-main__featured-products__inner {
      max-width: 960px;
      margin-left: auto;
      margin-right: auto; }
      .header-desktop .nav-main__featured-products .nav-main__featured-products__inner:after {
        content: "";
        display: table;
        clear: both; }
    .header-desktop .nav-main__featured-products .nav-main__featured-products__item {
      float: left;
      display: block;
      margin-right: 2.35765%;
      width: 18.11388%;
      font-size: 12px;
      font-size: 1.2rem;
      color: #414f59;
      text-align: center; }
      .header-desktop .nav-main__featured-products .nav-main__featured-products__item:last-child {
        margin-right: 0; }
      .header-desktop .nav-main__featured-products .nav-main__featured-products__item img {
        width: 120px;
        height: 120px; }

.header-mobile {
  color: #071824;
  position: relative;
  z-index: 21; }
  @media screen and (min-width: 768px)  {
    .header-mobile {
      display: none; } }
  .header-mobile .header-top {
    z-index: 30;
    position: fixed;
    top: 0;
    right: 0;
    left: 0;
    height: 40px;
    height: 4rem;
    background-color: #fff; }
    .header-mobile .header-top .header-top__hamburger {
      display: none;
      position: absolute;
      top: 50%;
      left: 12px;
      -webkit-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
      transform: translateY(-50%); }
      .header-mobile .header-top .header-top__hamburger .icon-hamburger {
        font-size: 15px;
        font-size: 1.5rem; }
      .header-mobile .header-top .header-top__hamburger.active {
        display: block; }
    .header-mobile .header-top .header-top__logo {
      position: absolute;
      top: 50%;
      left: 50%;
      -webkit-transform: translate(-50%, -50%);
      -ms-transform: translate(-50%, -50%);
      transform: translate(-50%, -50%); }
      .header-mobile .header-top .header-top__logo .icon-logo {
        font-size: 18px;
        font-size: 1.8rem; }
      .header-mobile .header-top .header-top__logo .icon-trust-the-experts {
        font-size: 6px; }
    .header-mobile .header-top .header-top__close {
      display: none;
      padding: 0;
      position: absolute;
      top: 50%;
      left: 12px;
      -webkit-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
      transform: translateY(-50%);
      width: 24px;
      height: 24px; }
      .header-mobile .header-top .header-top__close.active {
        display: block; }
      .header-mobile .header-top .header-top__close .icon-close {
        font-size: 12px; }
    .header-mobile .header-top .icon {
      display: block;
      color: #000; }
  .header-mobile .navigation-container {
    -webkit-transform: translateY(-130%);
    -ms-transform: translateY(-130%);
    transform: translateY(-130%);
    -webkit-transition: -webkit-transform 0.5s ease-out;
    transition: transform 0.5s ease-out;
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    top: 40px;
    top: 4rem;
    background-color: #000;
    color: #fff;
    overflow: scroll; }
    .header-mobile .navigation-container.active {
      -webkit-transform: translateY(0);
      -ms-transform: translateY(0);
      transform: translateY(0); }
    .header-mobile .navigation-container::before {
      position: fixed;
      top: 0;
      right: 50%;
      height: 0;
      width: 0;
      border-left: 8.5px solid transparent;
      border-right: 8.5px solid transparent;
      border-top: 8.5px solid #fff;
      content: '';
      display: block; }
    .header-mobile .navigation-container .search-container {
      padding: 34px 39px;
      padding: 3.4rem 3.9rem;
      position: relative; }
      .header-mobile .navigation-container .search-container .icon-search {
        font-size: 16px;
        font-size: 1.6rem;
        position: absolute;
        top: 41px;
        right: 39px; }
    .header-mobile .navigation-container .search-container__input {
      padding: 1px 0px 10px;
      padding: 0.1rem 0rem 1rem;
      font-size: 20px;
      font-size: 2rem;
      outline: none;
      border: none;
      border-bottom: 1px solid;
      background-color: #000;
      border-radius: 0 !important;
      border-color: #fff;
      width: 100%; }
      .header-mobile .navigation-container .search-container__input:focus {
        border-color: #5daee3; }
    .header-mobile .navigation-container .links-container {
      margin: 5px 0px;
      margin: 0.5rem 0rem; }
      .header-mobile .navigation-container .links-container .link {
        padding: 18px 40px;
        padding: 1.8rem 4rem;
        display: block;
        border-top: 1px solid #262626;
        color: #fff;
        text-transform: uppercase;
        position: relative; }
        .header-mobile .navigation-container .links-container .link .icon-caret {
          font-size: 8px;
          position: absolute;
          top: 50%;
          right: 35px;
          -webkit-transform: translateY(-50%) rotate(90deg);
          -ms-transform: translateY(-50%) rotate(90deg);
          transform: translateY(-50%) rotate(90deg); }
        .header-mobile .navigation-container .links-container .link.active .icon-caret {
          -webkit-transform: translateY(-50%) rotate(180deg);
          -ms-transform: translateY(-50%) rotate(180deg);
          transform: translateY(-50%) rotate(180deg); }
        .header-mobile .navigation-container .links-container .link:last-child {
          border-bottom: 1px solid #262626; }
      .header-mobile .navigation-container .links-container .link-dropdown {
        padding: 19px 50px;
        padding: 1.9rem 5rem;
        background-color: #100e0e;
        border-top: 1px solid #262626;
        display: none; }
        .header-mobile .navigation-container .links-container .link-dropdown.active {
          display: block; }
        .header-mobile .navigation-container .links-container .link-dropdown a {
          margin-bottom: 22px;
          margin-bottom: 2.2rem;
          color: #61aee1;
          display: block; }
          .header-mobile .navigation-container .links-container .link-dropdown a:last-child {
            margin-bottom: 7px;
            margin-bottom: 0.7rem; }
    .header-mobile .navigation-container .nav-auxiliary {
      margin-top: 18px;
      margin-top: 1.8rem;
      padding: 0px 40px;
      padding: 0rem 4rem; }
      .header-mobile .navigation-container .nav-auxiliary a {
        display: block;
        color: #fff;
        padding: 19px 0px;
        padding: 1.9rem 0rem; }
        .header-mobile .navigation-container .nav-auxiliary a:last-child {
          margin-bottom: 0; }
        .header-mobile .navigation-container .nav-auxiliary a .icon {
          margin-right: 10px;
          margin-right: 1rem;
          font-size: 12px;
          font-size: 1.2rem; }
    .header-mobile .navigation-container .nav-site-switch {
      margin-top: 17px;
      margin-top: 1.7rem;
      font-size: 14px;
      font-size: 1.4rem;
      padding: 11px 40px;
      padding: 1.1rem 4rem;
      display: block;
      background-color: #fff;
      text-transform: uppercase;
      position: relative; }
      .header-mobile .navigation-container .nav-site-switch .icon-caret {
        color: #000;
        font-size: 8px;
        position: absolute;
        top: 50%;
        right: 35px;
        -webkit-transform: translateY(-50%) rotate(90deg);
        -ms-transform: translateY(-50%) rotate(90deg);
        transform: translateY(-50%) rotate(90deg); }

.subheader {
  background-color: #fff;
  display: none;
  position: relative;
  z-index: 2; }
  @media screen and (min-width: 960px)  {
    .subheader {
      display: block; } }
  .show .subheader {
    display: none; }

.subheader-cta {
  opacity: 1;
  position: absolute;
  top: -5px;
  top: -0.5rem;
  right: 15px;
  right: 1.5rem;
  -webkit-transition: opacity 0.3s ease-in 0.5s;
  transition: opacity 0.3s ease-in 0.5s; }
  .subheader-cta .subheader-cta__copy {
    font-size: 40px;
    font-size: 4rem;
    margin-right: 110px;
    margin-right: 11rem;
    display: inline-block;
    font-weight: 200;
    color: #000; }
    @media screen and (min-width: 960px)  {
      .subheader-cta .subheader-cta__copy {
        line-height: 164px;
        line-height: 16.4rem; } }
    @media screen and (min-width: 1100px)  {
      .subheader-cta .subheader-cta__copy {
        line-height: 191px;
        line-height: 19.1rem; } }
    @media screen and (min-width: 1440px)  {
      .subheader-cta .subheader-cta__copy {
        line-height: 240px;
        line-height: 24rem; } }

.subheader-drawer {
  background-color: #61aee1;
  -webkit-transform: translateX(93.7%);
  -ms-transform: translateX(93.7%);
  transform: translateX(93.7%);
  -webkit-transition: -webkit-transform 0.8s cubic-bezier(0.77, 0, 0.175, 1);
  transition: transform 0.8s cubic-bezier(0.77, 0, 0.175, 1); }
  .subheader-drawer .subheader-drawer__btn {
    -webkit-transition: background-color 0.5s;
    transition: background-color 0.5s;
    width: 90px;
    width: 9rem;
    background-color: #61aee1;
    cursor: pointer;
    display: inline-block;
    float: left; }
    @media screen and (min-width: 960px)  {
      .subheader-drawer .subheader-drawer__btn {
        line-height: 164px;
        line-height: 16.4rem; } }
    @media screen and (min-width: 1100px)  {
      .subheader-drawer .subheader-drawer__btn {
        line-height: 191px;
        line-height: 19.1rem; } }
    @media screen and (min-width: 1440px)  {
      .subheader-drawer .subheader-drawer__btn {
        line-height: 240px;
        line-height: 24rem; } }
  .subheader-drawer .subheader-drawer__btn__arrow {
    -webkit-transition: -webkit-transform 0.3s 0.5s;
    transition: transform 0.3s 0.5s;
    font-size: 62px;
    font-size: 6.2rem;
    position: relative;
    font-weight: 100;
    color: #fff; }
    @media screen and (min-width: 960px)  {
      .subheader-drawer .subheader-drawer__btn__arrow {
        right: 10px;
        right: 1rem; } }
    @media screen and (min-width: 1100px)  {
      .subheader-drawer .subheader-drawer__btn__arrow {
        right: 4px;
        right: 0.4rem; } }
    @media screen and (min-width: 1440px)  {
      .subheader-drawer .subheader-drawer__btn__arrow {
        right: -3px;
        right: -0.3rem; } }
  .subheader-drawer .subheader-items__item {
    -webkit-transition: opacity 0.5s;
    transition: opacity 0.5s;
    margin-left: 10px;
    margin-left: 1rem;
    background-color: #71b7e4;
    float: left;
    opacity: 0;
    position: relative; }
    @media screen and (min-width: 960px)  {
      .subheader-drawer .subheader-items__item {
        width: 164px;
        width: 16.4rem;
        height: 164px;
        height: 16.4rem; } }
    @media screen and (min-width: 1100px)  {
      .subheader-drawer .subheader-items__item {
        width: 191px;
        width: 19.1rem;
        height: 191px;
        height: 19.1rem; } }
    @media screen and (min-width: 1440px)  {
      .subheader-drawer .subheader-items__item {
        width: 240px;
        width: 24rem;
        height: 240px;
        height: 24rem; } }
  .subheader-drawer .subheader-items__item__title {
    position: relative;
    top: 50%;
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    transform: translateY(-50%);
    max-width: 140px;
    max-width: 14rem;
    font-size: 20px;
    font-size: 2rem;
    margin: 0 auto;
    color: #fff;
    text-align: center; }
  .subheader-drawer .subheader-items__active-item {
    position: absolute;
    top: 0;
    left: 0;
    background-color: #fff;
    color: #000;
    display: none; }
    @media screen and (min-width: 960px)  {
      .subheader-drawer .subheader-items__active-item {
        width: 164px;
        width: 16.4rem; } }
    @media screen and (min-width: 1100px)  {
      .subheader-drawer .subheader-items__active-item {
        width: 191px;
        width: 19.1rem; } }
    @media screen and (min-width: 1440px)  {
      .subheader-drawer .subheader-items__active-item {
        width: 240px;
        width: 24rem; } }
    .subheader-drawer .subheader-items__active-item a {
      color: #000; }
  @media screen and (min-width: 960px)  {
    .subheader-drawer .subheader-items__active-item__img-container img {
      width: 164px;
      width: 16.4rem;
      height: 164px;
      height: 16.4rem; } }
  @media screen and (min-width: 1100px)  {
    .subheader-drawer .subheader-items__active-item__img-container img {
      width: 191px;
      width: 19.1rem;
      height: 191px;
      height: 19.1rem; } }
  @media screen and (min-width: 1440px)  {
    .subheader-drawer .subheader-items__active-item__img-container img {
      width: 240px;
      width: 24rem;
      height: 240px;
      height: 24rem; } }
  .subheader-drawer .subheader-items__active-item__below-container {
    padding: 15px 20px 20px;
    padding: 1.5rem 2rem 2rem; }
  .subheader-drawer .subheader-items__active-item__title {
    font-size: 20px;
    font-size: 2rem;
    margin-bottom: 5px;
    margin-bottom: 0.5rem;
    letter-spacing: -0.73px;
    letter-spacing: -0.073rem; }
  .subheader-drawer .subheader-items__active-item__list {
    font-size: 15px;
    font-size: 1.5rem;
    letter-spacing: -0.1px;
    letter-spacing: -0.01rem; }
    .subheader-drawer .subheader-items__active-item__list li {
      margin-bottom: 9px;
      margin-bottom: 0.9rem; }
    .subheader-drawer .subheader-items__active-item__list a {
      display: block; }
  .subheader-drawer .subheader-items__active-item__help-link-container a {
    font-size: 13px;
    font-size: 1.3rem;
    font-weight: bold;
    color: #1b6494; }
  .subheader-drawer .subheader-items__active-item__shop-link-container {
    margin-top: 19px;
    margin-top: 1.9rem;
    font-size: 15px;
    font-size: 1.5rem;
    font-weight: bold;
    position: relative; }
    .subheader-drawer .subheader-items__active-item__shop-link-container .button {
      width: 23px;
      height: 23px;
      top: -2px;
      top: -0.2rem;
      right: -1px;
      right: -0.1rem;
      position: absolute; }

.subheader-items__item:hover {
  overflow: visible; }
  .subheader-items__item:hover .subheader-items__active-item {
    display: block; }

.subheader.active {
  z-index: 2; }
  .subheader.active .subheader-drawer {
    -webkit-transform: translateX(0);
    -ms-transform: translateX(0);
    transform: translateX(0);
    -webkit-transition: -webkit-transform 0.8s cubic-bezier(0.77, 0, 0.175, 1) 0.1s;
    transition: transform 0.8s cubic-bezier(0.77, 0, 0.175, 1) 0.1s; }
  .subheader.active .subheader-cta {
    -webkit-transition: opacity 0.3s ease-out;
    transition: opacity 0.3s ease-out;
    opacity: 0; }
  .subheader.active .subheader-drawer__btn {
    background-color: #71b7e4; }
  .subheader.active .subheader-items__item {
    -webkit-transition: opacity 0.25s 0.9s ease-out;
    transition: opacity 0.25s 0.9s ease-out;
    opacity: 1; }
  .subheader.active .subheader-drawer__btn__arrow {
    -webkit-transform: rotate(180deg);
    -ms-transform: rotate(180deg);
    transform: rotate(180deg); }

.subheader-products {
  position: relative;
  border-bottom: 1px solid #000;
  padding-bottom: 10px;
  padding-bottom: 1rem;
  margin: 0px 0px 20px 0px;
  margin: 0rem 0rem 2rem 0rem; }
  .subheader-products a {
    position: absolute;
    right: 0;
    bottom: 9px;
    bottom: 0.9rem; }
  .subheader-products h2 {
    color: #000;
    margin: 0;
    line-height: 0.85;
    font-size: 26px;
    font-size: 2.6rem; }
  @media screen and (min-width: 768px)  {
    .subheader-products h2 {
      font-size: 40px;
      font-size: 4rem; } }
  @media screen and (min-width: 960px)  {
    .subheader-products {
      padding-bottom: 18px;
      padding-bottom: 1.8rem;
      margin: 0px 0px 50px 0px;
      margin: 0rem 0rem 5rem 0rem; }
      .subheader-products a {
        bottom: 17px;
        bottom: 1.7rem; }
      .subheader-products h2 {
        margin: 0;
        line-height: 0.8;
        word-spacing: 5px;
        word-spacing: 0.5rem;
        letter-spacing: 3.2px;
        letter-spacing: 0.32rem;
        font-size: 60px;
        font-size: 6rem; } }

.subheader-image {
  width: 100%;
  height: auto;
  height: 200px;
  height: 20rem;
  background-size: cover !important;
  background-position: 50% !important;
  background-repeat: no-repeat !important; }
  @media screen and (min-width: 960px)  {
    .subheader-image {
      height: 430px;
      height: 43rem; } }
  @media screen and (min-width: 960px)  {
    .subheader-image.narrow {
      height: 300px;
      height: 30rem; } }
  .subheader-image.fixed {
    background-size: inherit !important; }

.main-footer {
  position: relative;
  z-index: 20; }
  .main-footer .main-footer__top {
    background-color: #000; }
  .main-footer .main-footer__bottom {
    padding: 25px 40px 15px 50px;
    padding: 2.5rem 4rem 1.5rem 5rem;
    background-color: #252525; }
  .main-footer .product-links-container {
    float: left;
    display: block;
    margin-right: 38.19821%;
    width: 100%;
    padding: 56px 0px 20px 50px;
    padding: 5.6rem 0rem 2rem 5rem; }
    .main-footer .product-links-container:last-child {
      margin-right: 0; }
    @media screen and (min-width: 768px)  {
      .main-footer .product-links-container {
        float: left;
        display: block;
        margin-right: 2.35765%;
        width: 100%; }
        .main-footer .product-links-container:last-child {
          margin-right: 0; } }
    @media screen and (min-width: 960px)  {
      .main-footer .product-links-container {
        float: left;
        display: block;
        margin-right: 2.35765%;
        width: 63.32184%; }
        .main-footer .product-links-container:last-child {
          margin-right: 0; } }
    @media screen and (min-width: 768px)  {
      .main-footer .product-links-container .product-group {
        float: left;
        display: block;
        margin-right: 2.35765%;
        width: 31.76157%; }
        .main-footer .product-links-container .product-group:last-child {
          margin-right: 0; } }
    @media screen and (min-width: 960px)  {
      .main-footer .product-links-container .product-group {
        float: left;
        display: block;
        margin-right: 3.72328%;
        width: 30.76134%; }
        .main-footer .product-links-container .product-group:last-child {
          margin-right: 0; } }
    .main-footer .product-links-container .product-group__inner-group {
      margin-bottom: 40px;
      margin-bottom: 4rem; }
      @media screen and (min-width: 768px)  {
        .main-footer .product-links-container .product-group__inner-group:last-child {
          margin-bottom: 0; } }
    .main-footer .product-links-container .product-group__title {
      font-size: 25px;
      font-size: 2.5rem;
      margin-bottom: 11px;
      margin-bottom: 1.1rem;
      color: #eff2f4; }
      @media screen and (min-width: 960px)  {
        .main-footer .product-links-container .product-group__title {
          font-size: 20px;
          font-size: 2rem; } }
      @media screen and (min-width: 1100px)  {
        .main-footer .product-links-container .product-group__title {
          font-size: 24px;
          font-size: 2.4rem; } }
      @media screen and (min-width: 1440px)  {
        .main-footer .product-links-container .product-group__title {
          font-size: 25px;
          font-size: 2.5rem; } }
    .main-footer .product-links-container .product-group__nav > * {
      font-size: 15px;
      font-size: 1.5rem;
      margin-bottom: 16px;
      margin-bottom: 1.6rem;
      display: block;
      color: #fff; }
      .main-footer .product-links-container .product-group__nav > *:hover {
        text-decoration: none;
        color: #5daee3; }
      @media screen and (min-width: 960px)  {
        .main-footer .product-links-container .product-group__nav > * {
          font-size: 13px;
          font-size: 1.3rem; } }
      @media screen and (min-width: 1100px)  {
        .main-footer .product-links-container .product-group__nav > * {
          font-size: 15px;
          font-size: 1.5rem; } }
  .main-footer .social {
    background-color: #252525;
    float: left;
    display: block;
    margin-right: 38.19821%;
    width: 100%;
    padding: 30px;
    padding: 3rem; }
    .main-footer .social:last-child {
      margin-right: 0; }
    @media screen and (min-width: 768px)  {
      .main-footer .social {
        float: left;
        display: block;
        margin-right: 2.35765%;
        width: 100%; }
        .main-footer .social:last-child {
          margin-right: 0; } }
    @media screen and (min-width: 960px)  {
      .main-footer .social {
        padding: 51px 30px 51px 30px;
        padding: 5.1rem 3rem 5.1rem 3rem;
        float: left;
        display: block;
        margin-right: 2.35765%;
        width: 34.32051%; }
        .main-footer .social:last-child {
          margin-right: 0; } }
    @media screen and (min-width: 1100px)  {
      .main-footer .social {
        padding: 51px 49px 68px 48px;
        padding: 5.1rem 4.9rem 6.8rem 4.8rem; } }
    .main-footer .social .social__title {
      font-size: 30px;
      font-size: 3rem;
      margin-bottom: 18px;
      margin-bottom: 1.8rem;
      color: #acacac; }
      @media screen and (min-width: 960px)  {
        .main-footer .social .social__title {
          font-size: 18.5px;
          font-size: 1.85rem; } }
      @media screen and (min-width: 1100px)  {
        .main-footer .social .social__title {
          font-size: 22px;
          font-size: 2.2rem; } }
      @media screen and (min-width: 1440px)  {
        .main-footer .social .social__title {
          font-size: 30px;
          font-size: 3rem; } }
    .main-footer .social .newsletter-sign-up {
      margin-bottom: 53px;
      margin-bottom: 5.3rem; }
      .main-footer .social .newsletter-sign-up .newsletter-sign-up__label {
        margin-bottom: 13px;
        margin-bottom: 1.3rem;
        color: #eff2f4;
        display: block;
        text-transform: capitalize; }
      .main-footer .social .newsletter-sign-up .newsletter-sign-up__input {
        font-size: 14px;
        font-size: 1.4rem;
        width: 100%; }
    .main-footer .social .real-stories {
      margin-bottom: 53px;
      margin-bottom: 5.3rem;
      position: relative; }
      .main-footer .social .real-stories .real-stories__title {
        margin-bottom: 5px;
        margin-bottom: 0.5rem;
        font-size: 20px;
        font-size: 2rem;
        color: #eff2f4; }
      .main-footer .social .real-stories .real-stories__button {
        width: 28px;
        height: 28px;
        position: absolute;
        top: -3px;
        right: 2.5px; }
    @media screen and (min-width: 768px)  {
      .main-footer .social .social-icons {
        float: left;
        display: block;
        margin-right: 2.35765%;
        width: 48.82117%; }
        .main-footer .social .social-icons:last-child {
          margin-right: 0; } }
    @media screen and (min-width: 960px)  {
      .main-footer .social .social-icons {
        float: left;
        display: block;
        margin-right: 2.35765%;
        width: 100%; }
        .main-footer .social .social-icons:last-child {
          margin-right: 0; } }
    .main-footer .social .social-icons a {
      text-decoration: none; }
      .main-footer .social .social-icons a:hover {
        color: #5daee3; }
    .main-footer .social .social-icons .icon {
      width: 11%;
      text-align: center;
      font-size: 20px;
      font-size: 2rem;
      display: inline-block;
      color: #999999; }
      @media screen and (min-width: 768px)  {
        .main-footer .social .social-icons .icon {
          width: 12.5%;
          font-size: 23px;
          font-size: 2.3rem;
          float: left;
          display: block;
          margin-right: 4.82916%;
          width: 8.27449%; }
          .main-footer .social .social-icons .icon:last-child {
            margin-right: 0; } }
      @media screen and (min-width: 960px)  {
        .main-footer .social .social-icons .icon {
          float: left;
          display: block;
          margin-right: 2.35765%;
          width: 10.43705%; }
          .main-footer .social .social-icons .icon:last-child {
            margin-right: 0; } }
      .main-footer .social .social-icons .icon:last-child {
        margin-right: 0; }
  .main-footer .bottom-links {
    text-align: center;
    float: left;
    display: block;
    margin-right: 38.19821%;
    width: 100%;
    margin-bottom: 10px;
    margin-bottom: 1rem; }
    .main-footer .bottom-links:last-child {
      margin-right: 0; }
    @media screen and (min-width: 768px)  {
      .main-footer .bottom-links {
        float: left;
        display: block;
        margin-right: 2.35765%;
        width: 100%; }
        .main-footer .bottom-links:last-child {
          margin-right: 0; } }
    @media screen and (min-width: 960px)  {
      .main-footer .bottom-links {
        float: left;
        display: block;
        margin-right: 2.35765%;
        width: 44.55627%;
        margin-bottom: 0px;
        margin-bottom: 0rem; }
        .main-footer .bottom-links:last-child {
          margin-right: 0; } }
    .main-footer .bottom-links a {
      display: block;
      font-size: 14px;
      font-size: 1.4rem;
      width: 50%;
      float: left;
      margin-bottom: 15px;
      margin-bottom: 1.5rem;
      color: #626262; }
      @media screen and (min-width: 768px)  {
        .main-footer .bottom-links a {
          float: left;
          display: block;
          margin-right: 2.35765%;
          width: 23.23176%; }
          .main-footer .bottom-links a:last-child {
            margin-right: 0; } }
      @media screen and (min-width: 960px)  {
        .main-footer .bottom-links a {
          float: left;
          display: block;
          margin-right: 5.2914%;
          width: 21.03145%;
          margin-bottom: 0; }
          .main-footer .bottom-links a:last-child {
            margin-right: 0; } }
  .main-footer .copyright {
    text-align: center;
    float: left;
    display: block;
    margin-right: 38.19821%;
    width: 100%;
    margin-bottom: 15px;
    margin-bottom: 1.5rem;
    font-size: 14px;
    font-size: 1.4rem;
    color: #414141; }
    .main-footer .copyright:last-child {
      margin-right: 0; }
    @media screen and (min-width: 768px)  {
      .main-footer .copyright {
        float: left;
        display: block;
        margin-right: 2.35765%;
        width: 31.76157%; }
        .main-footer .copyright:last-child {
          margin-right: 0; } }
    @media screen and (min-width: 960px)  {
      .main-footer .copyright {
        float: left;
        display: block;
        margin-right: 2.35765%;
        width: 16.40792%;
        margin-bottom: 0px;
        margin-bottom: 0rem;
        margin-right: 1%; }
        .main-footer .copyright:last-child {
          margin-right: 0; } }
    @media screen and (min-width: 1440px)  {
      .main-footer .copyright {
        margin-right: 3.35765%; } }
  .main-footer .phone {
    text-align: center;
    white-space: nowrap;
    float: left;
    display: block;
    margin-right: 38.19821%;
    width: 100%;
    margin-bottom: 15px;
    margin-bottom: 1.5rem;
    color: #fff; }
    .main-footer .phone:last-child {
      margin-right: 0; }
    @media screen and (min-width: 768px)  {
      .main-footer .phone {
        float: left;
        display: block;
        margin-right: 2.35765%;
        width: 31.76157%; }
        .main-footer .phone:last-child {
          margin-right: 0; } }
    @media screen and (min-width: 960px)  {
      .main-footer .phone {
        float: left;
        display: block;
        margin-right: 2.35765%;
        width: 23.23176%;
        width: 19.3%;
        margin-right: 8%;
        margin-bottom: 0px;
        margin-bottom: 0rem; }
        .main-footer .phone:last-child {
          margin-right: 0; } }
    @media screen and (min-width: 1440px)  {
      .main-footer .phone {
        margin-right: 3.3%; } }
  .main-footer .logo {
    float: left;
    display: block;
    margin-right: 38.19821%;
    width: 100%;
    text-align: center;
    white-space: nowrap; }
    .main-footer .logo:last-child {
      margin-right: 0; }
    @media screen and (min-width: 768px)  {
      .main-footer .logo {
        float: left;
        display: block;
        margin-right: 2.35765%;
        width: 31.76157%; }
        .main-footer .logo:last-child {
          margin-right: 0; } }
    @media screen and (min-width: 960px)  {
      .main-footer .logo {
        float: left;
        display: block;
        margin-right: 2.35765%;
        width: 6.17215%;
        text-align: right; }
        .main-footer .logo:last-child {
          margin-right: 0; }
        .main-footer .logo .icon-logo {
          margin-right: 8px; } }
    .main-footer .logo .icon-logo {
      margin-right: 4px; }
    .main-footer .logo .icon {
      font-size: 20px;
      font-size: 2rem;
      color: #fff; }
    .main-footer .logo .tag {
      margin-top: 4px;
      margin-left: -2px;
      display: inline-block; }
      .main-footer .logo .tag i {
        font-size: 11px; }

@media screen and (min-width: 768px)  { }

.fixed-footer {
  position: relative;
  background-color: #000;
  z-index: 20;
  margin-top: -5.6rem;
  width: 100%; }
  .fixed-footer.fixed {
    position: fixed;
    bottom: 0;
    margin: 0; }
  @media screen and (min-width: 768px)  {
    .fixed-footer {
      margin-top: -5.6rem; }
      .fixed-footer:after {
        content: "";
        display: table;
        clear: both; } }
  .fixed-footer .fixed-footer__wrapper {
    background-color: #000;
    z-index: 20;
    position: relative;
    height: 5.6rem; }
    @media screen and (min-width: 768px)  {
      .fixed-footer .fixed-footer__wrapper {
        padding: 17px 27px;
        padding: 1.7rem 2.7rem; } }
  .fixed-footer .fixed-footer__link-container {
    width: 50%;
    display: inline-block;
    text-align: center;
    padding: 10px;
    padding: 1rem; }
    @media screen and (min-width: 768px)  {
      .fixed-footer .fixed-footer__link-container {
        width: auto;
        padding: 0;
        display: block;
        text-align: left; } }
  .fixed-footer .left {
    border-right: 1px solid #282828; }
    .fixed-footer .left a.special-offers {
      display: none; }
    @media screen and (min-width: 768px)  {
      .fixed-footer .left {
        border-right: none;
        float: left; }
        .fixed-footer .left a.special-offers {
          display: inline-block; } }
  .fixed-footer .right a:first-child {
    display: none; }
  @media screen and (min-width: 768px)  {
    .fixed-footer .right {
      float: right; }
      .fixed-footer .right a:first-child {
        display: inline-block; } }
  .fixed-footer a {
    font-size: 11px;
    font-size: 1.1rem;
    color: #c3c3c3;
    display: inline-block;
    letter-spacing: 0.5px;
    letter-spacing: 0.05rem; }
    .fixed-footer a:hover {
      color: #5daee3; }
    @media screen and (min-width: 768px)  {
      .fixed-footer a {
        font-size: 12.5px;
        font-size: 1.25rem;
        margin-right: 30px;
        margin-right: 3rem; }
        .fixed-footer a:last-child {
          margin-right: 0; } }
    .fixed-footer a .icon {
      margin-right: 6px;
      margin-right: 0.6rem;
      font-size: 15px;
      font-size: 1.5rem;
      vertical-align: middle; }
      @media screen and (min-width: 768px)  {
        .fixed-footer a .icon {
          font-size: 17px;
          font-size: 1.7rem; } }

[data-module="global-dropdown"] {
  -webkit-transition: -webkit-transform 0.5s 0.1s;
  transition: transform 0.5s 0.1s;
  position: absolute;
  top: 100%;
  right: 0;
  left: 0;
  -webkit-transform: translateY(-101%);
  -ms-transform: translateY(-101%);
  transform: translateY(-101%);
  z-index: 19;
  overflow: hidden;
  overflow-x: hidden;
  overflow-y: auto;
  max-height: 92vh; }
  [data-module="global-dropdown"].active {
    -webkit-transition: -webkit-transform 0.5s;
    transition: transform 0.5s;
    -webkit-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0); }
  [data-module="global-dropdown"] .global-dropdown__close {
    position: absolute;
    top: 20px;
    right: 20px; }

.global-search {
  background-color: #fff;
  color: #000; }
  .global-search .global-search__inner {
    margin: 0 auto;
    max-width: 1057px;
    padding: 25px 90px 0; }
    @media screen and (min-width: 1280px)  {
      .global-search .global-search__inner {
        padding: 25px 50px 0; } }
  .global-search .global-search__input-container {
    position: relative; }
    .global-search .global-search__input-container .icon {
      font-size: 30px;
      font-size: 3rem;
      position: absolute;
      top: 50%;
      right: 0;
      -webkit-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
      transform: translateY(-50%);
      color: #000; }
  .global-search .global-search__input {
    font-size: 40px;
    font-size: 4rem;
    border: none;
    border-bottom: 1px solid #000;
    color: #61aee1;
    display: block;
    outline: none;
    padding: 20px 0;
    width: 100%; }
    .global-search .global-search__input::-webkit-input-placeholder {
      color: #61aee1; }
    .global-search .global-search__input::-moz-placeholder {
      color: #61aee1; }
    .global-search .global-search__input:-ms-input-placeholder {
      color: #61aee1; }
  .global-search .global-search__category-tab-container {
    margin-top: 39px; }
    .global-search .global-search__category-tab-container button, .global-search .global-search__category-tab-container .button {
      margin-right: 14px; }
      .global-search .global-search__category-tab-container button.last-child, .global-search .global-search__category-tab-container .button.last-child {
        margin-right: 0; }
  .global-search .global-search__results-info {
    margin-top: 38px;
    margin-bottom: 15px; }
    .global-search .global-search__results-info:after {
      content: "";
      display: table;
      clear: both; }
  .global-search .global-search__num-results {
    font-size: 10px;
    font-size: 1rem;
    float: left;
    text-transform: uppercase; }
  .global-search .global-search__view-all {
    float: right; }
    .global-search .global-search__view-all a {
      font-size: 13px;
      font-size: 1.3rem;
      color: #61aee1; }

.global-support {
  background-color: #fff;
  color: #000; }
  .global-support .global-support__row {
    background-color: #fff;
    border-bottom: 1px solid #d6d6d6;
    display: table;
    padding: 37px 0 42px;
    width: 100%; }
    .global-support .global-support__row:last-child {
      border-bottom: none; }
  .global-support .global-support__subheader {
    font-size: 20px;
    font-size: 2rem;
    margin-bottom: 13px; }
  .global-support .global-support__copy {
    line-height: 1.4;
    font-size: 1.4rem; }
  .global-support .global-support__phone {
    font-size: 13px;
    font-size: 1.3rem;
    margin-bottom: 2.5rem; }
    .global-support .global-support__phone:last-child {
      margin-bottom: 0; }
  .global-support .global-support__column {
    width: 50%;
    display: table-cell;
    vertical-align: middle; }
    .global-support .global-support__column:last-child {
      text-align: right; }
  .global-support .global-support__message-container {
    display: none; }
  .global-support .global-support__inner {
    margin: 0 auto;
    max-width: 630px;
    width: 100%; }
  .global-support .global-support__header {
    font-size: 25px;
    font-size: 2.5rem;
    margin-bottom: 11px; }
    .global-support .global-support__header .icon {
      font-size: 25px;
      font-size: 2.5rem;
      color: #000;
      vertical-align: middle; }
  .global-support .global-support__form {
    margin-top: 5px; }
    .global-support .global-support__form input, .global-support .global-support__form textarea, .global-support .global-support__form button {
      display: block;
      margin-top: 31px; }
    .global-support .global-support__form input, .global-support .global-support__form textarea {
      background-color: #f4f4f4;
      width: 100%; }
      .global-support .global-support__form input::-webkit-input-placeholder, .global-support .global-support__form textarea::-webkit-input-placeholder {
        color: #595959; }
      .global-support .global-support__form input::-moz-placeholder, .global-support .global-support__form textarea::-moz-placeholder {
        color: #595959; }
      .global-support .global-support__form input:-ms-input-placeholder, .global-support .global-support__form textarea:-ms-input-placeholder {
        color: #595959; }
    .global-support .global-support__form textarea {
      resize: none; }
  .global-support .global-support__submit {
    font-size: 13px;
    font-size: 1.3rem;
    padding: 18px 35px;
    padding: 1.8rem 3.5rem;
    float: right; }

.global-cart {
  position: absolute;
  right: 0;
  left: auto;
  width: 350px;
  overflow: hidden;
  border: 1px solid #000;
  border-top: none; }

.cart-container {
  background-color: #fff;
  color: #000; }
  .cart-container .cart-container__top-panel {
    padding: 20px 20px; }
  .cart-container .cart-container__bottom-panel {
    background-color: #000;
    padding: 20px 20px; }
  .cart-container .cart-container__view-cart-link {
    display: block;
    margin: 0 auto;
    text-align: center; }
  .cart-container .cart-container__title {
    font-size: 26px;
    font-size: 2.6rem; }
  .cart-container .cart-container__list {
    margin-top: 20px; }
    .cart-container .cart-container__list li {
      margin-bottom: 20px; }
      .cart-container .cart-container__list li:last-child {
        margin-bottom: 0; }
  .cart-container .cart-container__list__item {
    position: relative; }
    .cart-container .cart-container__list__item:after {
      content: "";
      display: table;
      clear: both; }
  .cart-container .cart-container__list__item__remove {
    position: absolute;
    top: 50%;
    right: 0px;
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    transform: translateY(-50%);
    -webkit-transition: opacity 0.2s ease-out, color 0.2s ease-out;
    transition: opacity 0.2s ease-out, color 0.2s ease-out;
    font-size: 12px;
    font-size: 1.2rem;
    background-color: transparent;
    padding: 0;
    color: #999999; }
    .touchevents .cart-container .cart-container__list__item__remove {
      color: #000; }
    .cart-container .cart-container__list__item__remove:hover {
      color: #000; }
  .cart-container .cart-container__list__item__info {
    font-size: 12px;
    font-size: 1.2rem;
    float: left;
    margin-left: 10px;
    width: 218px; }
    .cart-container .cart-container__list__item__info > * {
      margin-bottom: 5px; }
      .cart-container .cart-container__list__item__info > *:last-child {
        margin-bottom: 0; }
  .cart-container .cart-container__list__item__img {
    width: 60px;
    height: 60px;
    background-size: cover;
    float: left; }
  .cart-container .cart-container__list__item__title {
    font-size: 14px;
    font-size: 1.4rem; }
  .cart-container .cart-container__list__item__price {
    font-size: 14px;
    font-size: 1.4rem; }
    .cart-container .cart-container__list__item__price .quantity {
      color: #626262; }
  .cart-container .cart-container__subtotal {
    margin-top: 20px; }

/* page-specific */
.page.index .button.standard-black {
  width: 100%;
  font-size: 17px;
  font-size: 1.7rem; }
  @media screen and (min-width: 768px)  {
    .page.index .button.standard-black {
      width: 200px;
      width: 20rem;
      font-size: 20px;
      font-size: 2rem; } }
.page.index .section {
  background-size: cover;
  background-position: 55% center;
  background-color: #fff; }
@media screen and (min-width: 768px)  {
  .page.index .section__inner-right {
    position: absolute;
    top: 60px;
    right: 1%;
    -webkit-transform: none;
    -ms-transform: none;
    transform: none; }
    .touchevents .page.index .section__inner-right {
      position: absolute;
      top: 125px;
      right: 1%; }
      .touchevents .page.index .section__inner-right .section__title {
        font-size: 50px;
        font-size: 5rem; }
      .touchevents .page.index .section__inner-right .section__subtitle {
        font-size: 22px;
        font-size: 2.2rem; }
      .touchevents .page.index .section__inner-right .section__description {
        font-size: 16px;
        font-size: 1.6rem; }
      .touchevents .page.index .section__inner-right .section__buttons__container {
        margin-bottom: 10px;
        margin-bottom: 1rem; }
      .touchevents .page.index .section__inner-right .button.standard-black {
        padding: 10px 18px;
        padding: 1rem 1.8rem; } }
@media screen and (min-width: 960px)  {
  .page.index .section__inner-right {
    right: 5%; }
    .touchevents .page.index .section__inner-right {
      top: 110px; } }
@media screen and (min-width: 1440px)  {
  .page.index .section__inner-right {
    right: 10.5%; } }
.page.index .section__title {
  font-size: 66px;
  font-size: 6.6rem;
  line-height: 0.85;
  margin-bottom: 15px;
  margin-bottom: 1.5rem; }
  @media screen and (min-width: 768px)  {
    .page.index .section__title {
      padding-left: 4rem;
      line-height: 0.8;
      margin-bottom: 13px;
      margin-bottom: 1.3rem;
      font-size: 60px;
      font-size: 6rem; } }
  @media screen and (min-width: 960px)  {
    .page.index .section__title {
      padding-left: 4rem;
      line-height: 0.85;
      font-size: 60px;
      font-size: 6rem;
      margin-bottom: 15px;
      margin-bottom: 1.5rem; } }
.page.index .section__subtitle {
  font-size: 33px;
  font-size: 3.3rem;
  margin-bottom: 30px;
  margin-bottom: 3rem; }
  @media screen and (min-width: 768px)  {
    .page.index .section__subtitle {
      padding-left: 4rem;
      line-height: 1;
      margin-bottom: 18px;
      margin-bottom: 1.8rem; } }
  @media screen and (min-width: 960px)  {
    .page.index .section__subtitle {
      padding-left: 4rem;
      margin-bottom: 30px;
      margin-bottom: 3rem; } }
.page.index .section__description {
  font-size: 18px;
  font-size: 1.8rem;
  line-height: 1.3; }
  @media screen and (min-width: 768px)  {
    .page.index .section__description {
      padding-left: 4rem; } }
  @media screen and (min-width: 960px)  {
    .page.index .section__description {
      line-height: 1.5; } }
.page.index .section__buttons {
  margin-top: 100px;
  margin-top: 10rem; }
  @media screen and (min-width: 768px)  {
    .page.index .section__buttons {
      margin-top: 50px;
      margin-top: 5rem; }
      .touchevents .page.index .section__buttons {
        margin-top: 20px;
        margin-top: 2rem; } }
  @media screen and (min-width: 960px)  {
    .page.index .section__buttons {
      margin-top: 100px;
      margin-top: 10rem; } }
  @media screen and (max-height: 880px)  {
    .page.index .section__buttons {
      margin-top: 20px;
      margin-top: 2rem; } }

.bundled-products {
  margin-bottom: 50px;
  margin-bottom: 5rem; }
  .bundled-products .button-wrapper {
    margin: 50px 0px;
    margin: 5rem 0rem; }

.product-listings .subheader-image {
  max-height: 300px;
  max-height: 30rem;
  min-height: 300px;
  min-height: 30rem; }

.stories .container__content-header {
  padding-bottom: 50px;
  padding-bottom: 5rem; }
  @media screen and (min-width: 960px)  {
    .stories .container__content-header {
      padding-bottom: 80px;
      padding-bottom: 8rem; } }

.decimal-on-userstories {
  margin-top: 3rem; }

.decimal-on-userstories, .decimal-on-userstories li {
  margin-bottom: 2rem; }

.professional-treatments .container__content-header.results {
  margin-bottom: 60px;
  margin-bottom: 6rem; }

.professional-landing .item-description {
  min-height: 110px;
  min-height: 11rem; }
.professional-landing .content.loginform {
  position: relative; }
.professional-landing .form__login-form,
.cms-pca-international .form__login-form {
  color: #fff;
  width: 100%;
  height: 100%;
  background: #000; }
.professional-landing .form__login-form a,
.cms-pca-international .form__login-form a {
    color: #71b7e4; }
.professional-landing .form__login-form fieldset,
.cms-pca-international .form__login-form fieldset {
    border: none;
    border: none;
    margin: 0;
    padding: 0px 0px 0px 2px;
    padding: 0rem 0rem 0rem 0.2rem;
    margin: 0px 4px 18px 0px;
    margin: 0rem 0.4rem 1.8rem 0rem; }
.professional-landing .form__login-form form,
.cms-pca-international .form__login-form form {
    margin: 0;
    padding: 17px 0px;
    padding: 1.7rem 0rem; }
.professional-landing .form__login-form p,
.cms-pca-international .form__login-form p {
    margin: 0;
    letter-spacing: -0.5px;
    letter-spacing: -0.05rem; }
.professional-landing .form__login-form input,
.cms-pca-international .form__login-form input {
    width: 100%;
    padding: 12px 19px;
    padding: 1.2rem 1.9rem; }
.professional-landing .form__login-form input[type=submit],
.cms-pca-international .form__login-form input[type=submit] {
	width: auto;
	float: right; }
.professional-landing .form__login-form .form__title,
.cms-pca-international .form__login-form .form__title {
    letter-spacing: -0.4px;
    padding: 0;
    font-size: 30px;
    font-size: 3rem;
    margin: 0px 0px 10px 0px;
    margin: 0rem 0rem 1rem 0rem; }
.cms-pca-international .form__login-form .form__title {
    font-family: "HelveticaNeueW01-45Ligh",​sans-serif;
    font-weight: normal;
}
.cms-pca-international .form__login-form__content a,
.cms-pca-international .get-certified-btn .button.standard.outline {
    font-family: "HelveticaNeueW01-65Medi",​sans-serif;
    font-weight: normal;
}
.professional-landing .form__login-form .form__login-form__content,
.cms-pca-international .form__login-form .form__login-form__content {
    padding: 31px 37px 0px 37px;
    padding: 3.1rem 3.7rem 0rem 3.7rem; }
.professional-landing .form__login-form footer,
.cms-pca-international .form__login-form footer {
    position: absolute;
    width: 100%;
    bottom: 0;
    background: #71b7e4;
    height: 100px;
    height: 10rem; }
.cms-pca-international .form__login-form footer {
	position: relative;
}
.professional-landing .form__login-form .form__login-form__footer-content,
.cms-pca-international .form__login-form .form__login-form__footer-content {
    display: table;
    width: 100%;
    height: 100%; }
.cms-pca-international .form__login-form .form__login-form__footer-content {
	margin: 0 auto;
	width: auto;
}
.professional-landing .form__login-form .form__login-form__footer-content .get-certified-copy,
.cms-pca-international .form__login-form .form__login-form__footer-content .get-certified-copy {
	vertical-align: middle;
	display: table-cell;
	font-size: 15px;
	font-size: 1.5rem;
	width: 155px;
	width: 15.5rem; }
.professional-landing .form__login-form .form__login-form__footer-content .get-certified-btn,
.cms-pca-international .form__login-form .form__login-form__footer-content .get-certified-btn {
	vertical-align: middle;
	display: table-cell;
	width: 160px;
	width: 16rem; }
.professional-landing .form__login-form .form__login-form__footer-content .get-certified-btn .button,
.cms-pca-international .form__login-form .form__login-form__footer-content .get-certified-btn .button {
	color: #fff;
	width: auto;
	white-space: nowrap;
	float: right;
	padding: 12px 19px;
	padding: 1.2rem 1.9rem; }
@media screen and (min-width: 768px)  { }
@media screen and (min-width: 960px)  {
	.professional-landing .form__login-form,
	.cms-pca-international .form__login-form {
		position: absolute;
		right: 0;
		width: 400px;
		width: 40rem; }
	.cms-pca-international .form__login-form {
		height: 43rem;
	}
	.cms-pca-international .form__login-form footer {
		position: absolute;
	}
}

.online-consultation {
  padding: 46px 0 0; }
  .online-consultation .online-consultation__header {
    margin-bottom: 43px; }
  .online-consultation .online-consultation__questionnaire {
    margin-bottom: 56px; }

.skin-explained {
  padding: 86px 0px 0px;
  padding: 8.6rem 0rem 0rem;
  margin-bottom: 90px;
  margin-bottom: 9rem; }
  .skin-explained .button-recomendation-tool-wrap {
    margin: 48px 0px;
    margin: 4.8rem 0rem;
    text-align: center; }
  .skin-explained .two-column-bordered {
    margin-top: 80px;
    padding-top: 22px;
    width: 100%; }
  .skin-explained .two-column-bordered__image {
    width: 279px;
    margin: 0 auto;
    display: block; }
  .skin-explained .subheader-products {
    margin-top: 130px;
    margin-top: 13rem; }

.before-after-content {
  padding-top: 90px; }
  .before-after-content .before-after-content__treatment-products {
    margin-top: 30px; }
    @media screen and (min-width: 768px)  {
      .before-after-content .before-after-content__treatment-products {
        margin-top: 30px; } }
    @media screen and (min-width: 1100px)  {
      .before-after-content .before-after-content__treatment-products {
        margin-top: 70px; } }
    .before-after-content .before-after-content__treatment-products .before-after-content__treatment-products__header {
      font-size: 20px;
      font-size: 2rem;
      color: #000; }
    .before-after-content .before-after-content__treatment-products .before-after-content__treatment-products__products {
      margin-top: 15px; }
      @media screen and (min-width: 768px)  { }
      .before-after-content .before-after-content__treatment-products .before-after-content__treatment-products__products > * {
        width: 32%;
        max-width: 12rem;
        display: inline-block;
        margin-right: 2%;
        float: left;
        position: relative; }
        .before-after-content .before-after-content__treatment-products .before-after-content__treatment-products__products > *:last-child {
          margin-right: 0; }
        .before-after-content .before-after-content__treatment-products .before-after-content__treatment-products__products > * img {
          width: 100%; }
  .before-after-content .grey-wrap {
    margin-top: 90px;
    padding: 90px 0; }
  .before-after-content .two-column-bordered {
    padding: 20px 0 0;
    margin-top: 30px; }
    @media screen and (min-width: 768px)  {
      .before-after-content .two-column-bordered {
        padding: 80px 0 0;
        margin-top: 80px; } }
    .before-after-content .two-column-bordered .two-column-bordered__column:first-child {
      padding-right: 0; }
      @media screen and (min-width: 768px)  {
        .before-after-content .two-column-bordered .two-column-bordered__column:first-child {
          padding-right: 25px; } }
  .before-after-content .before-after:not(.before-after--thumb) {
    display: block;
    margin: 0px auto; }
  .before-after-content .before-after-switcher__thumb-container {
    text-align: center; }
    .before-after-content .before-after-switcher__thumb-container:after {
      content: "";
      display: table;
      clear: both; }

.catalog-product-view .fixed-footer {
  display: none; }
  @media screen and (min-width: 960px)  {
    .catalog-product-view .fixed-footer {
      display: block; } }

.product-details-page .content-main {
  margin-bottom: 10rem; }
  @media screen and (min-width: 768px)  {
    .product-details-page .content-main {
      margin-bottom: 1rem; } }
.product-details-page .product-details-panel__content-wrap--dark {
  position: fixed;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 10; }
  @media screen and (min-width: 960px)  {
    .product-details-page .product-details-panel__content-wrap--dark {
      position: static; } }
.product-details-page .product-header {
  height: auto;
  position: relative; }
  @media screen and (min-width: 960px)  {
    .product-details-page .product-header {
      height: 590px;
      vertical-align: middle; } }
  .product-details-page .product-header .product-header__background {
    display: none; }
    @media screen and (min-width: 960px)  {
      .product-details-page .product-header .product-header__background {
        position: absolute;
        right: 0;
        left: 0;
        background-image: url(../../images/consumers/product-detail/product-detail-background.jpg);
        background-position: center center;
        background-repeat: no-repeat;
        background-size: cover;
        display: block;
        height: 100%; } }
  @media screen and (min-width: 960px)  {
    .product-details-page .product-header .product-header__center {
      position: relative;
      height: 100%;
      margin: 0 auto;
      width: 960px; }
      .product-details-page .product-header .product-header__center:after {
        content: "";
        display: table;
        clear: both; } }
  .product-details-page .product-header .product-header__media-mention {
    position: absolute;
    top: 0;
    left: 5%;
    height: 408px;
    width: 70px;
    z-index: 1; }
  @media screen and (max-width: 480px) {
    .product-details-page .product-header .product-header__media-mention {
      left: 2%;
    }
  }
	@-moz-document url-prefix() {
		.product-details-page .product-header .product-header__media-mention{
			top:25%;
		}
	}
	@media all and (-ms-high-contrast:none)
     {
		.product-header .product-header__center .product-header__media-mention{
			top:0;
		}
     }
    @media screen and (min-width: 768px)  {
      .product-details-page .product-header .product-header__media-mention {
        height: 590px; } }
    @media screen and (min-width: 960px)  {
      .product-details-page .product-header .product-header__media-mention {
        position: relative;
        top: auto;
        right: auto;
        bottom: auto;
        left: auto;
        height: 100%;
        float: left;
        z-index: auto; } }
  .product-details-page .product-header .product-header__media-mention__copy {
    font-size: 10px;
    font-size: 1rem;
    color: #fff;
    text-transform: uppercase;
    text-align: center;
    margin-bottom: 10px; }
  .product-details-page .product-header .product-header__media-mention__logo-container {
    position: relative;
    display: table-cell;
    top: 50%;
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    transform: translateY(-50%);
    width: 100%; }
    @media screen and (min-width: 960px)  {
      .product-details-page .product-header .product-header__media-mention__logo-container {
        -webkit-transform: none;
        -ms-transform: none;
        transform: none; } }
    .product-details-page .product-header .product-header__media-mention__logo-container img {
      display: block;
      width: 100%;
      margin-bottom: 10px; }
      .product-details-page .product-header .product-header__media-mention__logo-container img:last-child {
        margin-bottom: 0; }
  .product-details-page .product-header .product-header__product-image-wrap {
    background-image: url(../../images/consumers/product-detail/product-detail-background-centered.jpg);
    background-position: center center;
    background-repeat: no-repeat;
    background-size: cover;
    height: 408px;
    position: relative; }
    @media screen and (min-width: 768px)  {
      .product-details-page .product-header .product-header__product-image-wrap {
        height: 590px; } }
    @media screen and (min-width: 960px)  {
      .product-details-page .product-header .product-header__product-image-wrap {
        float: left;
        background: none;
        width: 390px;
        left: -35.5px; } }
  .product-details-page .product-header .product-header__product-image {
    display: block;
    height: 408px;
    margin: 0 auto; }
    @media screen and (min-width: 768px)  {
      .product-details-page .product-header .product-header__product-image {
        height: 590px; } }
  .product-details-page .product-header .product-header__nav {
    display: none;
    cursor: pointer; }
    .product-details-page .product-header .product-header__nav .icon {
      font-size: 30px;
      font-size: 3rem; }
  .product-details-page .product-header .product-header__nav--prev {
    position: absolute;
    top: 50%;
    left: 10px; }
  .product-details-page .product-header .product-header__nav--next {
    position: absolute;
    top: 50%;
    right: 10px; }
@media screen and (min-width: 960px)  {
  .product-details-page .product-header__details-panel-container {
    height: 100%;
    width: 500px;
    float: left;
    vertical-align: middle;
    position: relative; } }
.product-details-page .product-header.solution-set .product-header__media-mention {
  display: none; }
@media screen and (min-width: 960px)  {
  .product-details-page .product-header.solution-set .product-header__center {
    min-width: 1100px;
    width: auto;
    display: table; } }
.product-details-page .product-header.solution-set .product-header__product-image-wrap {
  width: auto;
  left: auto; }
  @media screen and (min-width: 960px)  {
    .product-details-page .product-header.solution-set .product-header__product-image-wrap {
      display: table-cell;
      vertical-align: middle;
      float: none; } }
@media screen and (min-width: 960px)  {
  .product-details-page .product-header.solution-set .product-header__details-panel-container {
    display: table-cell;
    vertical-align: middle;
    float: none; } }
.product-details-page .product-header.solution-set .product-details-panel {
  position: relative;
  top: 0;
  -webkit-transform: none;
  -ms-transform: none;
  transform: none; }
@media screen and (min-width: 960px)  {
  .product-details-page .product-details-panel {
    width: 100%;
    position: absolute;
    top: 50%;
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    transform: translateY(-50%); } }
.product-details-page .two-column-dark {
  margin-bottom: 100px; }
.product-details-page .two-column-dark__column {
  padding: 30px 35px;
  line-height: 1.5; }
  .product-details-page .two-column-dark__column:after {
    content: "";
    display: table;
    clear: both; }
  @media screen and (min-width: 768px)  {
    .product-details-page .two-column-dark__column {
      padding: 30px 65px; }
      .product-details-page .two-column-dark__column .two-column-dark__column__inner {
        float: right;
        max-width: 300px; }
      .product-details-page .two-column-dark__column:nth-child(2) .two-column-dark__column__inner {
        float: left; } }
  .product-details-page .two-column-dark__column .product-information__column {
    display: inline-block;
    margin-right: 47px;
    vertical-align: top; }
    .product-details-page .two-column-dark__column .product-information__column:last-child {
      margin-right: 0; }
  .product-details-page .two-column-dark__column .product-information__inner {
    text-align: center; }
    @media screen and (min-width: 960px)  {
      .product-details-page .two-column-dark__column .product-information__inner {
        text-align: left; }
        .product-details-page .two-column-dark__column .product-information__inner:after {
          content: "";
          display: table;
          clear: both; } }
  .product-details-page .two-column-dark__column .product-information__header {
    font-size: 30px;
    font-size: 3rem;
    margin-bottom: 20px;
    text-align: center; }
    @media screen and (min-width: 768px)  {
      .product-details-page .two-column-dark__column .product-information__header {
        text-align: left; } }
  .product-details-page .two-column-dark__column .product-information__subheader {
    font-size: 20px;
    font-size: 2rem; }
    .product-details-page .two-column-dark__column .product-information__subheader .icon {
      font-size: 18px;
      font-size: 1.8rem;
      color: #fff;
      vertical-align: middle; }
  .product-details-page .two-column-dark__column .product-information__list {
    font-size: 14px;
    font-size: 1.4rem;
    margin: 10px 0 0 0;
    padding: 0 0 0 25px;
    text-transform: uppercase; }
    .product-details-page .two-column-dark__column .product-information__list, .product-details-page .two-column-dark__column .product-information__list li {
      list-style-type: decimal; }
    .product-details-page .two-column-dark__column .product-information__list li {
      margin-bottom: 10px; }
      .product-details-page .two-column-dark__column .product-information__list li:last-child {
        margin-bottom: 0; }
      .product-details-page .two-column-dark__column .product-information__list li.selected {
        color: #5daee3; }
.product-details-page .product-details__ingredients {
  color: #000;
  margin: 45px auto 0;
  font-size: 14px;
  font-size: 1.4rem;
  padding: 0 30px; }
  .product-details-page .product-details__ingredients:after {
    content: "";
    display: table;
    clear: both; }
  @media screen and (min-width: 768px)  {
    .product-details-page .product-details__ingredients {
      width: 676px;
      padding: 0; } }
  .product-details-page .product-details__ingredients, .product-details-page .product-details__ingredients li {
    list-style-type: disc; }
  .product-details-page .product-details__ingredients li {
    padding-left: 10px;
    margin-bottom: 35px;
    text-align: left; }
    @media screen and (min-width: 768px)  {
      .product-details-page .product-details__ingredients li {
        float: left;
        width: 45%;
        margin: 0 10% 35px 0; }
        .product-details-page .product-details__ingredients li:nth-child(2n) {
          margin-right: 0; }
        .product-details-page .product-details__ingredients li:nth-last-child(2), .product-details-page .product-details__ingredients li:last-child {
          margin-bottom: 0; } }

.product-details__pinned-product {
  display: none;
  z-index: 10;
  position: fixed;
  right: 0;
  bottom: 5.6rem;
  -webkit-transform: translateY(100%);
  -ms-transform: translateY(100%);
  transform: translateY(100%);
  -webkit-transition: -webkit-transform 0.35s ease-out;
  transition: transform 0.35s ease-out; }
  @media screen and (min-width: 960px)  {
    .product-details__pinned-product {
      display: block; } }
  .product-details__pinned-product.active {
    -webkit-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0); }

.pinned-product {
  border: 1px solid #000; }

.pinned-product__img {
  width: 220px;
  height: 220px;
  background-size: cover; }

.pinned-product__info {
  background-color: #000;
  padding: 23px 18px; }
  .pinned-product__info:after {
    content: "";
    display: table;
    clear: both; }
  .pinned-product__info .pinned-product__price {
    color: #fff;
    margin-right: 1.9rem;
    padding: 5px 0px;
    padding: 0.5rem 0rem; }
  .pinned-product__info > * {
    display: block;
    float: left;
    width: 30%;
    padding-left: 0 !important;
    padding-right: 0 !important;
    vertical-align: middle;
    margin-right: 5%; }
    .pinned-product__info > *:last-child {
      margin-right: 0; }
    .pinned-product__info > * > * {
      width: 100%; }
  .pinned-product__info .select-container select {
    width: 100%;
    padding-right: 10%;
    padding-left: 10%;
    padding-left: 0.7rem;
    text-align: center; }
  .pinned-product__info .select-container.small {
    width: 4.5rem; }
  .pinned-product__info .select-container .icon-caret {
    right: 0.8rem;
    font-size: 6px; }
  .pinned-product__info .search-map {
    text-align: center;
    padding-top: 9px;
    padding-right: 0;
    padding-bottom: 8px;
    padding-left: 0;
    font-size: 15px;
    font-size: 1.5rem;
    padding-right: 0;
    padding-left: 0; }

.pinned-product__price {
  font-size: 20px;
  font-size: 2rem; }

.class-details-page .product-header .product-header__background {
  height: 100%;
  background-image: url(../../images/consumers/class-details/class-details-background.jpg);
  background-position: center center; }
.class-details-page .product-details-panel .search-map {
  float: right; }
.class-details-page .class-details-page__input-container {
  margin-top: 20px; }
  .class-details-page .class-details-page__input-container:after {
    content: "";
    display: table;
    clear: both; }
  .class-details-page .class-details-page__input-container input {
    float: left;
    width: 48%;
    margin-right: 4%; }
    .class-details-page .class-details-page__input-container input:last-child {
      margin-right: 0; }

.page.weightless-protection .fullscreen__wrap {
  -webkit-transition: opacity 0.5s 0.2s;
  transition: opacity 0.5s 0.2s;
  z-index: 2;
  opacity: 0; }
.page.weightless-protection .weightless-protection__loading {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  -webkit-transition: opacity 0.5s 0.2s;
  transition: opacity 0.5s 0.2s;
  opacity: 1;
  z-index: 10; }
  .page.weightless-protection .weightless-protection__loading .weightless-protection__dark {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background-color: #000;
    opacity: 0.7; }
  .page.weightless-protection .weightless-protection__loading::before {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 50%;
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    transform: translateX(-50%);
    background-image: url(../../images/consumers/weightless-protection/background-sample.jpg);
    background-position: center center;
    background-size: cover;
    content: '';
    display: block;
    -webkit-filter: blur(10px);
    filter: blur(10px);
    width: 105%; }
  .page.weightless-protection .weightless-protection__loading .weightless-protection__loading__center {
    position: absolute;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    -webkit-transition: opacity 0.2s;
    transition: opacity 0.2s;
    display: none;
    opacity: 1;
    text-align: center;
    width: 50%; }
  .page.weightless-protection .weightless-protection__loading.ready .weightless-protection__loading__center {
    display: block; }
.page.weightless-protection .weightless-protection__fixed-container {
  opacity: 0;
  -webkit-transition: opacity 0.5s 0.2s;
  transition: opacity 0.5s 0.2s; }
.page.weightless-protection .weightless-protection__canvas {
  opacity: 0;
  -webkit-transition: opacity 0.5s 0.2s;
  transition: opacity 0.5s 0.2s; }
.page.weightless-protection.ready .fullscreen__wrap {
  opacity: 1; }
.page.weightless-protection.ready .weightless-protection__fixed-container {
  opacity: 1; }
.page.weightless-protection.ready .weightless-protection__canvas {
  opacity: 1; }
.page.weightless-protection.ready .weightless-protection__loading {
  opacity: 0;
  pointer-events: none;
  z-index: 0; }
  .page.weightless-protection.ready .weightless-protection__loading .weightless-protection__loading__center {
    opacity: 0; }
.page.weightless-protection .weightless-protection__fixed-container {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1; }
.page.weightless-protection .weightless-protection__header {
  position: absolute;
  color: #000;
  width: 350px; }
  .page.weightless-protection .weightless-protection__header .weightless-protection__header__title {
    font-size: 75px;
    font-size: 7.5rem;
    line-height: 1; }
  .page.weightless-protection .weightless-protection__header .weightless-protection__header__subtitle {
    font-size: 30px;
    font-size: 3rem;
    line-height: 1;
    margin-top: 40px; }
  .page.weightless-protection .weightless-protection__header .weightless-protection__header__description {
    margin-top: 10px;
    font-size: 18px;
    font-size: 1.8rem;
    line-height: 1.3; }
.page.weightless-protection .price-box {
  margin-top: 50px; }
  .page.weightless-protection .price-box .price-box__price {
    display: inline-block;
    font-size: 25px;
    font-size: 2.5rem; }
  .page.weightless-protection .price-box .quantity-buy-container {
    margin-left: 50px; }
.page.weightless-protection .weightless-protection__product-splash .weightless-protection__header--slide-1 {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  -webkit-transition: opacity 0.2s ease-out, -webkit-transform 0.5s ease-in-out;
  transition: opacity 0.2s ease-out, transform 0.5s ease-in-out;
  opacity: 0;
  -webkit-transform: scale(3) translate(50%, 50%);
  -ms-transform: scale(3) translate(50%, 50%);
  transform: scale(3) translate(50%, 50%); }
  .page.weightless-protection .weightless-protection__product-splash .weightless-protection__header--slide-1 .weightless-protection__header__title {
    position: absolute;
    top: -185px;
    left: -7%; }
  .page.weightless-protection .weightless-protection__product-splash .weightless-protection__header--slide-1 .weightless-protection__secondary {
    position: absolute;
    top: -40px;
    left: 63.5%;
    width: 100%;
    display: none; }
  @media screen and (min-width: 960px)  {
    .page.weightless-protection .weightless-protection__product-splash .weightless-protection__header--slide-1 .weightless-protection__header__title {
      left: 17%; } }
  @media screen and (min-width: 1100px)  {
    .page.weightless-protection .weightless-protection__product-splash .weightless-protection__header--slide-1 .weightless-protection__header__title {
      left: 51%; }
    .page.weightless-protection .weightless-protection__product-splash .weightless-protection__header--slide-1 .weightless-protection__secondary {
      left: 63.5%;
      display: block; } }
.page.weightless-protection .weightless-protection__product-splash .weightless-protection__header--slide-4 {
  -webkit-transition: opacity 0.2s ease-out;
  transition: opacity 0.2s ease-out;
  opacity: 0;
  width: 343px;
  position: absolute;
  top: 27.5%;
  left: -296px;
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);
  z-index: 0; }
  .page.weightless-protection .weightless-protection__product-splash .weightless-protection__header--slide-4 .weightless-protection__header__title {
    line-height: 0.85; }
  .page.weightless-protection .weightless-protection__product-splash .weightless-protection__header--slide-4 .weightless-protection__header__subtitle {
    margin-top: 20px; }
  .page.weightless-protection .weightless-protection__product-splash .weightless-protection__header--slide-4 .weightless-protection__header__description {
    margin-top: 40px; }
  @media screen and (min-width: 1100px)  {
    .page.weightless-protection .weightless-protection__product-splash .weightless-protection__header--slide-4 {
      left: -450px;
      width: 450px; } }
.page.weightless-protection .info {
  color: #000; }
  .page.weightless-protection .info .info__icon {
    width: 40px;
    height: 40px;
    font-size: 40px;
    font-size: 4rem;
    -webkit-transition: -webkit-transform 1s, opacity 0.2s ease-out;
    transition: transform 1s, opacity 0.2s ease-out;
    opacity: 0;
    color: #fff;
    cursor: pointer; }
    .page.weightless-protection .info .info__icon:hover {
      color: #000; }
  .page.weightless-protection .info .info__description {
    -webkit-transition: -webkit-transform 1s, opacity 0.2s ease-out;
    transition: transform 1s, opacity 0.2s ease-out;
    -webkit-transform: translateY(5%);
    -ms-transform: translateY(5%);
    transform: translateY(5%);
    opacity: 0; }
  .page.weightless-protection .info.active .info__icon {
    color: #000; }
  .page.weightless-protection .info .info__description__main {
    font-size: 18px;
    font-size: 1.8rem;
    padding-left: 60px;
    width: 380px;
    line-height: 1.35; }
    .page.weightless-protection .info .info__description__main.no-padding {
      padding-left: 0;
      width: 330px; }
    .page.weightless-protection .info .info__description__main > .icon {
      color: #000;
      display: block;
      position: absolute;
      top: 0;
      left: 0; }
  .page.weightless-protection .info .info__description__extra {
    position: relative;
    margin-top: 20px;
    padding-left: 60px;
    width: 330px;
    font-size: 15px;
    font-size: 1.5rem;
    line-height: 1.4; }
    .page.weightless-protection .info .info__description__extra > .icon {
      color: #000;
      display: block;
      position: absolute;
      top: 0;
      left: 0; }
.page.weightless-protection .weightless-protection__learn-more {
  -webkit-transition: opacity 0.2s ease-out;
  transition: opacity 0.2s ease-out;
  position: fixed;
  top: 43%;
  left: 0;
  background: rgba(0, 0, 0, 0.5);
  color: #fff;
  border: 1px solid #fff;
  padding: 15px 30px;
  padding: 1.5rem 3rem;
  border-radius: 6px;
  opacity: 0; }
.page.weightless-protection .weightless-protection__model {
  position: fixed;
  top: 51px;
  left: 0; }
  .page.weightless-protection .weightless-protection__model .info-1 .info__icon {
    position: absolute;
    top: 3%;
    left: 56%; }
  .page.weightless-protection .weightless-protection__model .info-2 .info__icon {
    position: absolute;
    top: 12%;
    left: 58%; }
  .page.weightless-protection .weightless-protection__model .info-3 .info__icon {
    position: absolute;
    top: 16.8%;
    left: 66%; }
  .page.weightless-protection .weightless-protection__model .info__description {
    position: absolute;
    top: 3%;
    left: 73%; }
  @media screen and (min-width: 960px)  {
    .page.weightless-protection .weightless-protection__model .info__description {
      position: absolute;
      top: 3%;
      left: 80%; }
    .page.weightless-protection .weightless-protection__model .info-3 .info__icon {
      position: absolute;
      top: 16.8%;
      left: 67%; } }
.page.weightless-protection.viewing-1 .fullpage__scroll-cta {
  -webkit-animation-play-state: running;
  animation-play-state: running; }
.page.weightless-protection.viewing-1 .fullscreen__wrap {
  z-index: 1; }
.page.weightless-protection.viewing-1 .weightless-protection__fixed-container {
  z-index: 2; }
.page.weightless-protection.viewing-1 .weightless-protection__header--slide-1 {
  -webkit-transition: opacity 0.5s ease-out;
  transition: opacity 0.5s ease-out;
  opacity: 1;
  -webkit-transform: none;
  -ms-transform: none;
  transform: none; }
.page.weightless-protection.viewing-2 .fullscreen__wrap {
  z-index: 1; }
.page.weightless-protection.viewing-2 .weightless-protection__fixed-container {
  z-index: 2; }
.page.weightless-protection.viewing-2 .weightless-protection__model {
  z-index: 2; }
  .page.weightless-protection.viewing-2 .weightless-protection__model .info .info__icon {
    -webkit-transition: -webkit-transform 0.33s ease-out, opacity 0.33s ease-out, color 0.3s ease-out;
    transition: transform 0.33s ease-out, opacity 0.33s ease-out, color 0.3s ease-out;
    opacity: 1; }
  .page.weightless-protection.viewing-2 .weightless-protection__model .info.active .info__description {
    -webkit-transition: -webkit-transform 0.33s ease-out, opacity 0.33s ease-out;
    transition: transform 0.33s ease-out, opacity 0.33s ease-out;
    opacity: 1;
    -webkit-transform: none;
    -ms-transform: none;
    transform: none; }
.page.weightless-protection.viewing-3 .fullscreen__wrap {
  z-index: 1; }
.page.weightless-protection.viewing-3 .weightless-protection__fixed-container {
  z-index: 2; }
.page.weightless-protection.viewing-3 .weightless-protection__product-splash {
  z-index: 2; }
  .page.weightless-protection.viewing-3 .weightless-protection__product-splash .info .info__icon {
    -webkit-transition: -webkit-transform 0.33s ease-out, opacity 0.33s ease-out, color 0.3s ease-out;
    transition: transform 0.33s ease-out, opacity 0.33s ease-out, color 0.3s ease-out;
    opacity: 1; }
  .page.weightless-protection.viewing-3 .weightless-protection__product-splash .info.active .info__description {
    -webkit-transition: -webkit-transform 0.33s ease-out, opacity 0.33s ease-out;
    transition: transform 0.33s ease-out, opacity 0.33s ease-out;
    opacity: 1;
    -webkit-transform: none;
    -ms-transform: none;
    transform: none; }
.page.weightless-protection.viewing-4 .fullscreen__wrap {
  z-index: 1; }
.page.weightless-protection.viewing-4 .weightless-protection__fixed-container {
  z-index: 2; }
.page.weightless-protection.viewing-4 .weightless-protection__header--slide-4 {
  -webkit-transition: opacity 0.5s ease-out;
  transition: opacity 0.5s ease-out;
  opacity: 1; }
.page.weightless-protection.viewing-4 .weightless-protection__learn-more {
  opacity: 1;
  -webkit-transition: opacity 0.5s ease-out;
  transition: opacity 0.5s ease-out; }
.page.weightless-protection.viewing-4 .fullpage__scroll-cta {
  opacity: 0; }
.page.weightless-protection .weightless-protection__canvas {
  position: fixed;
  top: 51px;
  left: 0; }
.page.weightless-protection .weightless-protection__product-splash {
  position: fixed;
  top: 51px;
  left: 0; }
  .page.weightless-protection .weightless-protection__product-splash .info-1 .info__icon {
    position: absolute;
    top: 30%;
    left: 17.5%; }
  .page.weightless-protection .weightless-protection__product-splash .info-2 .info__icon {
    position: absolute;
    top: 48%;
    left: 21%; }
  .page.weightless-protection .weightless-protection__product-splash .info-3 .info__icon {
    position: absolute;
    top: 53%;
    left: 36%; }
  .page.weightless-protection .weightless-protection__product-splash .info__description__main {
    width: 256px; }
    @media screen and (min-width: 960px)  {
      .page.weightless-protection .weightless-protection__product-splash .info__description__main {
        width: 277px; } }
    @media screen and (min-width: 1100px)  {
      .page.weightless-protection .weightless-protection__product-splash .info__description__main {
        width: 380px; } }
  .page.weightless-protection .weightless-protection__product-splash .info__description {
    position: absolute;
    top: 3.5%;
    left: 29%; }
    @media screen and (min-width: 960px)  {
      .page.weightless-protection .weightless-protection__product-splash .info__description {
        left: 30%; }
        .touchevents .page.weightless-protection .weightless-protection__product-splash .info__description {
          left: 35%; } }

.events.container__content .grid-item:hover {
  color: #5daee3; }
  .events.container__content .grid-item:hover .title {
    color: #5daee3; }

.page.ideal-complex {
  color: #000; }
  .page.ideal-complex .fp-tableCell {
    vertical-align: top; }
  .page.ideal-complex .fullpage__scroll-cta {
    bottom: 76px;
    z-index: 3; }
  .page.ideal-complex .ideal-complex__loading {
    -webkit-transition: opacity 0.2s 0.5s;
    transition: opacity 0.2s 0.5s;
    position: fixed;
    top: -12px;
    right: -12px;
    bottom: -12px;
    left: -12px;
    z-index: 10;
    opacity: 1; }
    .page.ideal-complex .ideal-complex__loading .ideal-complex__loading__bg {
      position: absolute;
      top: 0;
      right: 0;
      bottom: 0;
      left: 0;
      background-image: url(../../images/consumers/ideal-complex/loading-background.jpg);
      background-size: cover;
      background-position: center center;
      -webkit-filter: blur(12px);
      filter: blur(12px); }
      .page.ideal-complex .ideal-complex__loading .ideal-complex__loading__bg::after {
        content: '';
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        background: rgba(0, 0, 0, 0.8); }
    .page.ideal-complex .ideal-complex__loading .ideal-complex__loading__inner {
      width: 50%;
      position: absolute;
      top: 50%;
      left: 50%;
      -webkit-transform: translate(-50%, -50%);
      -ms-transform: translate(-50%, -50%);
      transform: translate(-50%, -50%); }
  .page.ideal-complex.loaded .ideal-complex__loading {
    opacity: 0;
    pointer-events: none; }
  .page.ideal-complex.loaded .ideal-complex__fixed-container {
    -webkit-filter: none;
    filter: none; }
  .page.ideal-complex.loaded .ideal-complex__canvas {
    -webkit-filter: none;
    filter: none; }
  .page.ideal-complex .ideal-complex__background {
    background-image: url(../../images/consumers/ideal-complex/background.jpg);
    background-size: cover;
    background-position: center center;
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 0; }
    .touchevents .page.ideal-complex .ideal-complex__background {
      top: 151px; }
  .page.ideal-complex .ideal-complex__tube-bounding {
    height: 40% !important; }
    .page.ideal-complex .ideal-complex__tube-bounding .section-2__list-container {
      width: 100%;
      position: absolute;
      top: 0;
      left: 65px; }
      .page.ideal-complex .ideal-complex__tube-bounding .section-2__list-container .ideal-complex__subheader {
        font-size: 20px;
        font-size: 2rem;
        width: 141px; }
      @media screen and (max-width: 959px)  {
        .page.ideal-complex .ideal-complex__tube-bounding .section-2__list-container {
          -webkit-transform: translateY(-50%);
          -ms-transform: translateY(-50%);
          transform: translateY(-50%);
          top: 50%; } }
      @media screen and (min-width: 960px)  {
        .page.ideal-complex .ideal-complex__tube-bounding .section-2__list-container {
          width: auto;
          right: 116%;
          left: auto; }
          .page.ideal-complex .ideal-complex__tube-bounding .section-2__list-container .ideal-complex__subheader {
            font-size: 30px;
            font-size: 3rem;
            width: 200px; } }
      @media screen and (min-width: 1100px)  {
        .page.ideal-complex .ideal-complex__tube-bounding .section-2__list-container {
          right: 142%; } }
    @media screen and (max-width: 959px)  {
      .page.ideal-complex .ideal-complex__tube-bounding {
        -webkit-transform: none !important;
        -ms-transform: none !important;
        transform: none !important; } }
    @media screen and (min-width: 960px)  {
      .page.ideal-complex .ideal-complex__tube-bounding {
        position: fixed;
        top: 50%;
        -webkit-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
        transform: translateY(-50%); } }
  .page.ideal-complex .ideal-complex__jar-bounding {
    height: 40% !important; }
    .page.ideal-complex .ideal-complex__jar-bounding .section-2__list-container {
      position: absolute;
      top: 0;
      right: 0; }
      .page.ideal-complex .ideal-complex__jar-bounding .section-2__list-container .ideal-complex__subheader {
        font-size: 20px;
        font-size: 2rem;
        width: 141px; }
      @media screen and (max-width: 959px)  {
        .page.ideal-complex .ideal-complex__jar-bounding .section-2__list-container {
          -webkit-transform: translateY(-50%);
          -ms-transform: translateY(-50%);
          transform: translateY(-50%);
          top: 50%; } }
      @media screen and (min-width: 960px)  {
        .page.ideal-complex .ideal-complex__jar-bounding .section-2__list-container {
          left: 126%;
          right: auto; }
          .page.ideal-complex .ideal-complex__jar-bounding .section-2__list-container .ideal-complex__subheader {
            font-size: 30px;
            font-size: 3rem;
            width: 200px; } }
      @media screen and (min-width: 1100px)  {
        .page.ideal-complex .ideal-complex__jar-bounding .section-2__list-container {
          left: 142%; } }
    @media screen and (max-width: 959px)  {
      .page.ideal-complex .ideal-complex__jar-bounding {
        -webkit-transform: none !important;
        -ms-transform: none !important;
        transform: none !important; } }
    @media screen and (min-width: 960px)  {
      .page.ideal-complex .ideal-complex__jar-bounding {
        position: fixed;
        top: 50%;
        -webkit-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
        transform: translateY(-50%); } }
  .page.ideal-complex .ideal-complex__fixed-container {
    -webkit-transition: -webkit-filter 0.5s 0.5s, -webkit-filter 0.5s 0.5s;
    transition: filter 0.5s 0.5s, -webkit-filter 0.5s 0.5s;
    -webkit-filter: blur(12px);
    filter: blur(12px);
    position: fixed;
    top: 40px;
    right: 0;
    bottom: 41px;
    left: 0;
    z-index: 1;
    -webkit-transform: translateZ(0);
    -ms-transform: translateZ(0);
    transform: translateZ(0); }
    @media screen and (min-width: 768px)  {
      .page.ideal-complex .ideal-complex__fixed-container {
        top: 51px;
        bottom: 56px; } }
    .touchevents .page.ideal-complex .ideal-complex__fixed-container {
      top: 151px; }
  .page.ideal-complex .ideal-complex__canvas {
    -webkit-transition: -webkit-filter 0.5s 0.5s, -webkit-filter 0.5s 0.5s;
    transition: filter 0.5s 0.5s, -webkit-filter 0.5s 0.5s;
    -webkit-filter: blur(12px);
    filter: blur(12px);
    position: fixed;
    top: 51px;
    right: 0;
    bottom: 56px;
    left: 0;
    z-index: 2; }
    .touchevents .page.ideal-complex .ideal-complex__canvas {
      top: 151px; }
  .page.ideal-complex .ideal-complex__description {
    line-height: 1.3;
    width: 250px;
    font-size: 18px;
    font-size: 1.8rem; }
    @media screen and (max-height: 715px)  {
      .page.ideal-complex .ideal-complex__description {
        font-size: 15px;
        font-size: 1.5rem; } }
    @media screen and (max-height: 818px)  {
      .touchevents .page.ideal-complex .ideal-complex__description {
        font-size: 15px;
        font-size: 1.5rem; } }
  .page.ideal-complex .ideal-complex__header {
    font-size: 80px;
    font-size: 8rem; }
    @media screen and (max-height: 715px)  {
      .page.ideal-complex .ideal-complex__header {
        font-size: 60px;
        font-size: 6rem; } }
    @media screen and (max-height: 818px)  {
      .touchevents .page.ideal-complex .ideal-complex__header {
        font-size: 60px;
        font-size: 6rem; } }
  .page.ideal-complex .ideal-complex__subheader {
    font-size: 30px;
    font-size: 3rem; }
    @media screen and (max-height: 715px)  {
      .page.ideal-complex .ideal-complex__subheader {
        font-size: 22px;
        font-size: 2.2rem; } }
    @media screen and (max-height: 818px)  {
      .touchevents .page.ideal-complex .ideal-complex__subheader {
        font-size: 22px;
        font-size: 2.2rem; } }
  .page.ideal-complex .ideal-complex__title {
    font-size: 22px;
    font-size: 2.2rem; }
  .page.ideal-complex .ideal-complex__title--alt {
    font-size: 25px;
    font-size: 2.5rem; }
  .page.ideal-complex .ideal-complex__list {
    padding-left: 20px;
    width: 190px; }
    .page.ideal-complex .ideal-complex__list, .page.ideal-complex .ideal-complex__list li {
      list-style-type: disc; }
    .page.ideal-complex .ideal-complex__list li {
      margin-bottom: 20px;
      font-size: 18px;
      font-size: 1.8rem; }
      .page.ideal-complex .ideal-complex__list li:last-child {
        margin-bottom: 0; }
  .page.ideal-complex .section-1--fixed {
    pointer-events: none; }
  .page.ideal-complex .section-1__header {
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    transform: translateX(-50%);
    position: absolute;
    top: 35px;
    left: 50%;
    text-align: center;
    opacity: 1;
    width: 100%; }
    @media screen and (max-height: 715px)  {
      .page.ideal-complex .section-1__header {
        top: 25px; } }
    @media screen and (max-height: 818px)  {
      .touchevents .page.ideal-complex .section-1__header {
        top: 25px; } }
  .page.ideal-complex .section-1__header--secondary {
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    transform: translateX(-50%);
    position: absolute;
    top: 35px;
    left: 50%;
    text-align: center;
    opacity: 0;
    width: 100%;
    font-size: 70px;
    font-size: 7rem;
    z-index: 0; }
    @media screen and (max-height: 715px)  {
      .page.ideal-complex .section-1__header--secondary {
        top: 25px;
        font-size: 52.5px;
        font-size: 5.25rem; } }
    @media screen and (max-height: 818px)  {
      .touchevents .page.ideal-complex .section-1__header--secondary {
        top: 25px;
        font-size: 52.5px;
        font-size: 5.25rem; } }
  .page.ideal-complex .section-1__description {
    margin: 0 auto;
    opacity: 1;
    position: absolute;
    top: 30%;
    left: 50%;
    line-height: 1.4; }
    @media screen and (max-height: 715px)  {
      .page.ideal-complex .section-1__description {
        top: 36%; } }
    @media screen and (max-height: 818px)  {
      .touchevents .page.ideal-complex .section-1__description {
        top: 36%; } }
  .page.ideal-complex .section-2--fixed {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    opacity: 0;
    pointer-events: none; }
  .page.ideal-complex .section-2__list-container .ideal-complex__subheader {
    margin-bottom: 20px;
    width: 200px; }
  .page.ideal-complex .section-3--fixed {
    pointer-events: none; }
    .page.ideal-complex .section-3--fixed .section-3__background {
      opacity: 0;
      background-image: url(../../images/consumers/ideal-complex/background-no-shelf.jpg);
      background-size: cover;
      background-position: center center;
      position: absolute;
      top: 0;
      right: 0;
      bottom: 0;
      left: 0;
      z-index: 0; }
    .page.ideal-complex .section-3--fixed .section-3__description {
      opacity: 0;
      width: 200px;
      position: absolute;
      top: 23%;
      right: 80%;
      -webkit-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
      transform: translateY(-50%); }
      @media screen and (min-width: 960px)  {
        .page.ideal-complex .section-3--fixed .section-3__description {
          right: 110%;
          top: 51%;
          width: 180px; } }
      @media screen and (min-width: 1100px)  {
        .page.ideal-complex .section-3--fixed .section-3__description {
          right: 110%;
          width: 260px; } }
      @media screen and (min-width: 1280px)  {
        .page.ideal-complex .section-3--fixed .section-3__description {
          right: 140%; } }
      .page.ideal-complex .section-3--fixed .section-3__description.right {
        right: auto;
        left: 180%;
        top: 27%; }
        @media screen and (min-width: 960px)  {
          .page.ideal-complex .section-3--fixed .section-3__description.right {
            left: 190%;
            top: 42%; } }
        @media screen and (min-width: 1100px)  {
          .page.ideal-complex .section-3--fixed .section-3__description.right {
            left: 198%; } }
        @media screen and (min-width: 1280px)  {
          .page.ideal-complex .section-3--fixed .section-3__description.right {
            left: 210%; } }
    .page.ideal-complex .section-3--fixed .section-3__model {
      position: absolute;
      bottom: 0;
      left: 50%;
      -webkit-transform: translateX(-50%);
      -ms-transform: translateX(-50%);
      transform: translateX(-50%);
      opacity: 0;
      height: 57%; }
      @media screen and (min-width: 960px)  {
        .page.ideal-complex .section-3--fixed .section-3__model {
          height: 100%; } }
    .page.ideal-complex .section-3--fixed .section-3__model-container__face-bounding {
      position: absolute;
      top: 0;
      bottom: 0;
      left: 46%;
      width: 11%; }
  .page.ideal-complex .section-4--fixed {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    pointer-events: none;
    overflow-y: scroll;
    overflow-x: hidden;
    background-color: transparent;
    background-size: cover;
    background-position: center center; }
    @media screen and (min-width: 960px)  {
      .page.ideal-complex .section-4--fixed {
        overflow: hidden; } }
    .page.ideal-complex .section-4--fixed .ideal-complex__subheader {
      font-size: 22px;
      font-size: 2.2rem; }
      @media screen and (min-width: 960px)  {
        .no-touchevents .page.ideal-complex .section-4--fixed .ideal-complex__subheader {
          font-size: 30px;
          font-size: 3rem; } }
    .page.ideal-complex .section-4--fixed .ideal-complex__title--alt {
      font-size: 20px;
      font-size: 2rem; }
      @media screen and (min-width: 960px)  {
        .no-touchevents .page.ideal-complex .section-4--fixed .ideal-complex__title--alt {
          font-size: 25px;
          font-size: 2.5rem; } }
    .page.ideal-complex .section-4--fixed .section-4__header {
      text-align: center;
      position: relative;
      opacity: 0; }
      @media screen and (min-width: 960px)  {
        .page.ideal-complex .section-4--fixed .section-4__header {
          margin-top: 50px; } }
      @media screen and (max-height: 715px)  {
        .page.ideal-complex .section-4--fixed .section-4__header {
          margin-top: 25px; } }
      @media screen and (max-height: 818px)  {
        .touchevents .page.ideal-complex .section-4--fixed .section-4__header {
          margin-top: 25px; } }
    .page.ideal-complex .section-4--fixed .section-4__background {
      opacity: 0;
      position: absolute;
      top: 0;
      right: 0;
      bottom: 0;
      left: 0;
      display: block;
      pointer-events: none;
      z-index: 0; }
      @media screen and (min-width: 960px)  {
        .page.ideal-complex .section-4--fixed .section-4__background {
          display: none; } }
    .page.ideal-complex .section-4--fixed .learn-more {
      display: block; }
    .page.ideal-complex .section-4--fixed .learn-more-wrapper {
      overflow: hidden;
      display: none; }
      @media screen and (min-width: 960px)  {
        .page.ideal-complex .section-4--fixed .learn-more-wrapper {
          display: block; } }
    .page.ideal-complex .section-4--fixed .section-4__inner {
      opacity: 0;
      margin: 35px auto 0;
      width: 100%;
      height: 69%;
      padding-left: 54px; }
      @media screen and (min-width: 960px)  {
        .page.ideal-complex .section-4--fixed .section-4__inner {
          display: table;
          width: 960px;
          padding-left: 54px;
          margin-top: 50px; } }
      @media screen and (max-height: 715px)  {
        .page.ideal-complex .section-4--fixed .section-4__inner {
          margin-top: 25px; } }
      @media screen and (max-height: 818px)  {
        .touchevents .page.ideal-complex .section-4--fixed .section-4__inner {
          margin-top: 25px; } }
    .page.ideal-complex .section-4--fixed .section-4__product-container {
      opacity: 0; }
    .page.ideal-complex .section-4--fixed .section-4__inner-col {
      width: 100%;
      vertical-align: top;
      text-align: center; }
      .page.ideal-complex .section-4--fixed .section-4__inner-col:last-child {
        margin-bottom: 0;
        margin-top: -50px; }
      @media screen and (min-width: 960px)  {
        .page.ideal-complex .section-4--fixed .section-4__inner-col {
          width: 480px;
          display: table-cell;
          margin-bottom: 0;
          height: 100%; } }
      .page.ideal-complex .section-4--fixed .section-4__inner-col .section-4__inner-col__inner {
        position: relative;
        height: 100%; }
      .page.ideal-complex .section-4--fixed .section-4__inner-col .section-4__inner-col__copy {
        display: inline-block;
        text-align: left;
        padding-right: 0;
        position: relative;
        z-index: 1;
        width: 32%;
        vertical-align: top; }
        @media screen and (min-width: 960px)  {
          .page.ideal-complex .section-4--fixed .section-4__inner-col .section-4__inner-col__copy {
            width: auto; } }
      @media screen and (min-width: 960px)  {
        .page.ideal-complex .section-4--fixed .section-4__inner-col:first-child {
          text-align: right;
          padding-right: 40px;
          padding-left: 0; }
          .page.ideal-complex .section-4--fixed .section-4__inner-col:first-child .section-4__inner-col__copy {
            width: 265px; } }
      @media screen and (min-width: 960px)  {
        .page.ideal-complex .section-4--fixed .section-4__inner-col:nth-child(2) {
          text-align: left;
          padding-left: 40px;
          padding-right: 0; } }
      .page.ideal-complex .section-4--fixed .section-4__inner-col .ideal-complex__description {
        font-size: 15px;
        font-size: 1.5rem;
        margin-top: 20px;
        width: auto; }
        @media screen and (min-width: 960px)  {
          .page.ideal-complex .section-4--fixed .section-4__inner-col .ideal-complex__description {
            width: 250px; }
            .no-touchevents .page.ideal-complex .section-4--fixed .section-4__inner-col .ideal-complex__description {
              font-size: 18px;
              font-size: 1.8rem; } }
      .page.ideal-complex .section-4--fixed .section-4__inner-col .section-4__price {
        font-size: 18px;
        font-size: 1.8rem;
        margin-top: 20px; }
        @media screen and (min-width: 960px)  {
          .no-touchevents .page.ideal-complex .section-4--fixed .section-4__inner-col .section-4__price {
            margin-top: 40px;
            font-size: 20px;
            font-size: 2rem; } }
      .page.ideal-complex .section-4--fixed .section-4__inner-col .quantity-buy-container {
        margin-top: 20px; }
    .page.ideal-complex .section-4--fixed .section-4__tube-container {
      display: inline-block;
      width: 50%; }
      .page.ideal-complex .section-4--fixed .section-4__tube-container .section-4__tube {
        width: 200%;
        position: relative;
        pointer-events: none;
        z-index: 0;
        -webkit-transform: translateX(-19%);
        -ms-transform: translateX(-19%);
        transform: translateX(-19%);
        max-width: 462px; }
      @media screen and (min-width: 960px)  {
        .page.ideal-complex .section-4--fixed .section-4__tube-container .learn-more-wrapper {
          position: absolute;
          right: -85px;
          bottom: 80px; } }
      .page.ideal-complex .section-4--fixed .section-4__tube-container .learn-more {
        -webkit-transform: translateX(-100%);
        -ms-transform: translateX(-100%);
        transform: translateX(-100%); }
      @media screen and (min-width: 960px)  {
        .page.ideal-complex .section-4--fixed .section-4__tube-container {
          position: absolute;
          top: 0;
          bottom: 0;
          left: -26px;
          width: 166px; }
          .page.ideal-complex .section-4--fixed .section-4__tube-container .section-4__tube {
            -webkit-transform: none;
            -ms-transform: none;
            transform: none;
            width: 600px;
            position: absolute;
            bottom: -41px;
            left: -215px;
            max-width: none; }
          @media screen and (max-height: 715px)  {
            .page.ideal-complex .section-4--fixed .section-4__tube-container {
              bottom: -57px; } }
          @media screen and (max-height: 818px)  {
            .touchevents .page.ideal-complex .section-4--fixed .section-4__tube-container {
              bottom: -57px; } } }
    .page.ideal-complex .section-4--fixed .section-4__jar-container {
      display: inline-block;
      width: 50%;
      margin-top: 50px; }
      .page.ideal-complex .section-4--fixed .section-4__jar-container .section-4__jar {
        width: 150%;
        position: relative;
        pointer-events: none;
        z-index: 0;
        -webkit-transform: translate(-8%, -30%);
        -ms-transform: translate(-8%, -30%);
        transform: translate(-8%, -30%);
        max-width: 354px; }
      @media screen and (min-width: 960px)  {
        .page.ideal-complex .section-4--fixed .section-4__jar-container .learn-more-wrapper {
          position: absolute;
          bottom: 80px;
          left: -111px; } }
      .page.ideal-complex .section-4--fixed .section-4__jar-container .learn-more {
        -webkit-transform: translateX(100%);
        -ms-transform: translateX(100%);
        transform: translateX(100%); }
      @media screen and (min-width: 960px)  {
        .page.ideal-complex .section-4--fixed .section-4__jar-container {
          width: 195px;
          margin-top: 0;
          position: absolute;
          top: 0;
          right: 20px;
          bottom: 0; }
          .page.ideal-complex .section-4--fixed .section-4__jar-container .section-4__jar {
            position: absolute;
            right: -130px;
            bottom: -62px;
            width: 457px;
            -webkit-transform: none;
            -ms-transform: none;
            transform: none;
            max-width: none; }
          @media screen and (max-height: 715px)  {
            .page.ideal-complex .section-4--fixed .section-4__jar-container {
              bottom: -57px; } }
          @media screen and (max-height: 818px)  {
            .touchevents .page.ideal-complex .section-4--fixed .section-4__jar-container {
              bottom: -57px; } } }
  .page.ideal-complex.viewing-1 .section-1--fixed {
    pointer-events: auto; }
  .page.ideal-complex.viewing-1 .fullpage__scroll-cta {
    -webkit-animation-play-state: running;
    animation-play-state: running; }
  .page.ideal-complex.viewing-2 .section-2--fixed {
    pointer-events: auto; }
  .page.ideal-complex.viewing-3 .section-3--fixed {
    pointer-events: auto; }
  .page.ideal-complex.viewing-4 .ideal-complex__canvas {
    z-index: 1; }
  .page.ideal-complex.viewing-4 .section-4--fixed {
    pointer-events: auto;
    background-image: url(../../images/consumers/ideal-complex/background-no-shelf.jpg); }
    @media screen and (min-width: 960px)  {
      .page.ideal-complex.viewing-4 .section-4--fixed {
        background: none; } }
  .page.ideal-complex.viewing-4 .fullpage__scroll-cta {
    opacity: 0; }

.page.the-power-couple {
  background-color: #000;
  color: #fff; }
  .page.the-power-couple .fp-tableCell {
    vertical-align: top; }
  .page.the-power-couple .liquid-svg-background {
    width: 100%;
    height: 100%;
    -webkit-transform: translate(3.1%, 0.33%);
    -ms-transform: translate(3.1%, 0.33%);
    transform: translate(3.1%, 0.33%); }
    .page.the-power-couple .liquid-svg-background > * {
      width: 100%; }
    .page.the-power-couple .liquid-svg-background .liquid-svg-background__light--tracer {
      display: none; }
  .page.the-power-couple .the-power-couple__loading {
    -webkit-transition: opacity 0.2s 0.5s;
    transition: opacity 0.2s 0.5s;
    position: fixed;
    top: -12px;
    right: -12px;
    bottom: -12px;
    left: -12px;
    z-index: 10;
    opacity: 1; }
    .page.the-power-couple .the-power-couple__loading .the-power-couple__loading__bg {
      position: absolute;
      top: 0;
      right: 0;
      bottom: 0;
      left: 0;
      background-image: url(../../images/consumers/the-power-couple/loading-background.jpg);
      background-size: cover;
      -webkit-filter: blur(12px);
      filter: blur(12px); }
      .page.the-power-couple .the-power-couple__loading .the-power-couple__loading__bg::after {
        content: '';
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        background: rgba(0, 0, 0, 0.8); }
    .page.the-power-couple .the-power-couple__loading .the-power-couple__loading__inner {
      width: 50%;
      position: absolute;
      top: 50%;
      left: 50%;
      -webkit-transform: translate(-50%, -50%);
      -ms-transform: translate(-50%, -50%);
      transform: translate(-50%, -50%); }
  .page.the-power-couple.loaded .the-power-couple__loading {
    opacity: 0;
    pointer-events: none; }
  .page.the-power-couple.loaded .the-power-couple__fixed-container {
    -webkit-filter: none;
    filter: none; }
  .page.the-power-couple.loaded .the-power-couple__canvas {
    -webkit-filter: none;
    filter: none; }
  .page.the-power-couple .fullpage__scroll-cta .fullpage__scroll-cta__copy {
    color: #fff; }
  .page.the-power-couple .fullpage__scroll-cta .icon {
    color: #fff; }
  .page.the-power-couple .the-power-couple__header {
    font-size: 60px;
    font-size: 6rem; }
    @media screen and (min-width: 960px)  {
      .page.the-power-couple .the-power-couple__header {
        font-size: 80px;
        font-size: 8rem; } }
    @media screen and (max-height: 775px)  {
      .page.the-power-couple .the-power-couple__header {
        font-size: 60px;
        font-size: 6rem; } }
  .page.the-power-couple .the-power-couple__subheader {
    font-size: 20px;
    font-size: 2rem; }
    @media screen and (min-width: 960px)  {
      .page.the-power-couple .the-power-couple__subheader {
        font-size: 30px;
        font-size: 3rem; } }
    @media screen and (max-height: 775px)  {
      .page.the-power-couple .the-power-couple__subheader {
        font-size: 20px;
        font-size: 2rem; } }
  .page.the-power-couple .the-power-couple__title {
    font-size: 50px;
    font-size: 5rem;
    line-height: 1; }
    @media screen and (min-width: 960px)  {
      .page.the-power-couple .the-power-couple__title {
        font-size: 60px;
        font-size: 6rem; } }
    @media screen and (max-height: 775px)  {
      .page.the-power-couple .the-power-couple__title {
        font-size: 50px;
        font-size: 5rem; } }
  .page.the-power-couple .the-power-couple__description {
    line-height: 1.3;
    font-size: 16px;
    font-size: 1.6rem; }
    @media screen and (min-width: 960px)  {
      .page.the-power-couple .the-power-couple__description {
        font-size: 18px;
        font-size: 1.8rem; } }
    @media screen and (max-height: 775px)  {
      .page.the-power-couple .the-power-couple__description {
        font-size: 16px;
        font-size: 1.6rem; } }
  .page.the-power-couple .the-power-couple__fixed-container {
    -webkit-transition: -webkit-filter 0.5s 0.5s, -webkit-filter 0.5s 0.5s;
    transition: filter 0.5s 0.5s, -webkit-filter 0.5s 0.5s;
    -webkit-filter: blur(12px);
    filter: blur(12px);
    position: fixed;
    top: 40px;
    right: 0;
    bottom: 41px;
    left: 0;
    z-index: 2;
    -webkit-transform: translateZ(0);
    -ms-transform: translateZ(0);
    transform: translateZ(0); }
    @media screen and (min-width: 768px)  {
      .page.the-power-couple .the-power-couple__fixed-container {
        top: 51px;
        bottom: 56px; } }
  .page.the-power-couple .the-power-couple__canvas {
    -webkit-transition: -webkit-filter 0.5s 0.5s, -webkit-filter 0.5s 0.5s;
    transition: filter 0.5s 0.5s, -webkit-filter 0.5s 0.5s;
    -webkit-filter: blur(12px);
    filter: blur(12px);
    position: fixed;
    top: 51px;
    right: 0;
    bottom: 56px;
    left: 0;
    z-index: 1; }
  .page.the-power-couple .the-power-couple__products-bounding {
    position: absolute;
    top: 0;
    left: 0; }
  .page.the-power-couple .section-1__copy {
    position: absolute;
    top: 10%;
    right: -363px;
    width: 375px;
    pointer-events: none; }
    @media screen and (min-width: 1100px)  {
      .page.the-power-couple .section-1__copy {
        right: -434px; } }
    .page.the-power-couple .section-1__copy .the-power-couple__subheader {
      margin-bottom: 20px; }
  .page.the-power-couple .the-power-couple__list {
    padding-left: 20px; }
    .page.the-power-couple .the-power-couple__list, .page.the-power-couple .the-power-couple__list li {
      list-style-type: disc; }
  .page.the-power-couple .section-2__copy {
    position: absolute;
    bottom: -50px;
    left: 30px;
    width: 370px; }
    @media screen and (max-height: 640px)  {
      .page.the-power-couple .section-2__copy {
        bottom: -20px; } }
    @media screen and (min-width: 1100px)  {
      .page.the-power-couple .section-2__copy {
        left: 0; } }
  .page.the-power-couple .section-3__copy, .page.the-power-couple .section-4__copy, .page.the-power-couple .section-5__copy {
    position: absolute;
    bottom: 116%;
    left: -66%;
    width: 400px;
    pointer-events: none;
    left: -45%; }
    @media screen and (min-width: 960px)  {
      .page.the-power-couple .section-3__copy, .page.the-power-couple .section-4__copy, .page.the-power-couple .section-5__copy {
        width: 420px;
        left: -66%; } }
    @media screen and (min-width: 960px)  {
      .page.the-power-couple .section-3__copy.section-4__copy, .page.the-power-couple .section-4__copy.section-4__copy, .page.the-power-couple .section-5__copy.section-4__copy {
        width: 500px; } }
    .page.the-power-couple .section-3__copy.section-5__copy, .page.the-power-couple .section-4__copy.section-5__copy, .page.the-power-couple .section-5__copy.section-5__copy {
      bottom: 120%; }
    .page.the-power-couple .section-3__copy .the-power-couple__list, .page.the-power-couple .section-4__copy .the-power-couple__list, .page.the-power-couple .section-5__copy .the-power-couple__list {
      margin-top: 20px; }
      .page.the-power-couple .section-3__copy .the-power-couple__list li, .page.the-power-couple .section-4__copy .the-power-couple__list li, .page.the-power-couple .section-5__copy .the-power-couple__list li {
        margin-bottom: 20px; }
        .page.the-power-couple .section-3__copy .the-power-couple__list li:last-child, .page.the-power-couple .section-4__copy .the-power-couple__list li:last-child, .page.the-power-couple .section-5__copy .the-power-couple__list li:last-child {
          margin-bottom: 0; }
    .page.the-power-couple .section-3__copy .the-power-couple__subheader, .page.the-power-couple .section-4__copy .the-power-couple__subheader, .page.the-power-couple .section-5__copy .the-power-couple__subheader {
      white-space: nowrap; }
  .page.the-power-couple .the-power-couple__plus {
    width: 42px;
    height: 42px; }
  .page.the-power-couple .icon-plus {
    opacity: 0;
    -webkit-transition: color 0.3s ease-out, opacity 0.3s ease-out;
    transition: color 0.3s ease-out, opacity 0.3s ease-out;
    color: #5daee3;
    cursor: pointer;
    width: 42px;
    height: 42px; }
    .page.the-power-couple .icon-plus::before {
      z-index: 1;
      position: relative; }
    .page.the-power-couple .icon-plus::after {
      width: 42px;
      height: 42px;
      content: '';
      display: block;
      position: absolute;
      top: 0;
      left: 0;
      background: rgba(0, 0, 0, 0.65);
      border-radius: 50%;
      z-index: 0;
      cursor: pointer; }
    .page.the-power-couple .icon-plus.active, .page.the-power-couple .icon-plus:hover {
      color: #fff; }
  .page.the-power-couple .the-power-couple__model-bounding {
    position: absolute;
    top: 0;
    left: 0; }
    .page.the-power-couple .the-power-couple__model-bounding .model-bounding__description {
      -webkit-transition: opacity 0.3s ease-out, -webkit-transform 3s ease-out;
      transition: opacity 0.3s ease-out, transform 3s ease-out;
      text-shadow: 1px 1px #000;
      opacity: 0;
      position: absolute;
      top: 20px;
      left: 180px;
      font-size: 18px;
      font-size: 1.8rem;
      color: #fff;
      width: 240px;
      font-style: normal;
      -webkit-transform: translateY(5%);
      -ms-transform: translateY(5%);
      transform: translateY(5%);
      pointer-events: none; }
      .page.the-power-couple .the-power-couple__model-bounding .model-bounding__description.active {
        -webkit-transition: opacity 0.3s ease-out 1s, -webkit-transform 0.2s ease-out 1s;
        transition: opacity 0.3s ease-out 1s, transform 0.2s ease-out 1s;
        opacity: 1;
        -webkit-transform: none;
        -ms-transform: none;
        transform: none; }
    .page.the-power-couple .the-power-couple__model-bounding .the-power-couple__model-bounding__forehead {
      position: absolute;
      top: 24%;
      left: 73%;
      width: 5px;
      height: 5px; }
      .page.the-power-couple .the-power-couple__model-bounding .the-power-couple__model-bounding__forehead .model-bounding__description {
        left: 175px;
        top: 20px; }
    .page.the-power-couple .the-power-couple__model-bounding .the-power-couple__model-bounding__cheek {
      position: absolute;
      top: 38%;
      left: 73%;
      width: 5px;
      height: 5px; }
      .page.the-power-couple .the-power-couple__model-bounding .the-power-couple__model-bounding__cheek .model-bounding__description {
        left: 160px;
        top: -99px; }
    .page.the-power-couple .the-power-couple__model-bounding .the-power-couple__model-bounding__chin {
      position: absolute;
      top: 48%;
      left: 61%;
      width: 5px;
      height: 5px; }
  .page.the-power-couple .the-power-couple__liquid-bounding {
    position: absolute;
    top: 0;
    left: 0; }
    .page.the-power-couple .the-power-couple__liquid-bounding .plus--1 {
      position: absolute;
      top: 56.5%;
      left: 70.5%; }
    .page.the-power-couple .the-power-couple__liquid-bounding .plus--2 {
      position: absolute;
      top: 59.5%;
      left: 45%; }
    .page.the-power-couple .the-power-couple__liquid-bounding .plus--3 {
      position: absolute;
      top: 63.9%;
      left: 57.5%; }
    .page.the-power-couple .the-power-couple__liquid-bounding .the-power-couple__liquid-bounding__bottom {
      position: absolute;
      right: 11.6%;
      bottom: 4%;
      z-index: 3;
      height: 9%;
      width: 50%; }
      .page.the-power-couple .the-power-couple__liquid-bounding .the-power-couple__liquid-bounding__bottom .price {
        font-size: 20px;
        font-size: 2rem; }
      .page.the-power-couple .the-power-couple__liquid-bounding .the-power-couple__liquid-bounding__bottom .learn-more-container {
        width: 50%;
        overflow: hidden;
        position: absolute;
        top: 24%;
        min-width: 125px; }
      .page.the-power-couple .the-power-couple__liquid-bounding .the-power-couple__liquid-bounding__bottom .learn-more {
        white-space: nowrap; }
      .page.the-power-couple .the-power-couple__liquid-bounding .the-power-couple__liquid-bounding__bottom .top {
        height: 57%;
        width: 100%; }
        .page.the-power-couple .the-power-couple__liquid-bounding .the-power-couple__liquid-bounding__bottom .top:after {
          content: "";
          display: table;
          clear: both; }
      .page.the-power-couple .the-power-couple__liquid-bounding .the-power-couple__liquid-bounding__bottom .left {
        float: left;
        width: 50%;
        height: 100%;
        vertical-align: middle;
        position: relative; }
        .page.the-power-couple .the-power-couple__liquid-bounding .the-power-couple__liquid-bounding__bottom .left .learn-more-container {
          right: 55.2%; }
        .page.the-power-couple .the-power-couple__liquid-bounding .the-power-couple__liquid-bounding__bottom .left .learn-more {
          -webkit-transform: translateX(12%);
          -ms-transform: translateX(12%);
          transform: translateX(12%); }
      .page.the-power-couple .the-power-couple__liquid-bounding .the-power-couple__liquid-bounding__bottom .right {
        float: right;
        width: 50%;
        height: 100%;
        vertical-align: middle;
        text-align: right;
        position: relative; }
        .page.the-power-couple .the-power-couple__liquid-bounding .the-power-couple__liquid-bounding__bottom .right .price {
          padding-right: 9px; }
        .page.the-power-couple .the-power-couple__liquid-bounding .the-power-couple__liquid-bounding__bottom .right .learn-more-container {
          left: 53.9%; }
        .page.the-power-couple .the-power-couple__liquid-bounding .the-power-couple__liquid-bounding__bottom .right .learn-more {
          -webkit-transform: translateX(-9%);
          -ms-transform: translateX(-9%);
          transform: translateX(-9%); }
      .page.the-power-couple .the-power-couple__liquid-bounding .the-power-couple__liquid-bounding__bottom .bottom {
        text-align: center; }
      .page.the-power-couple .the-power-couple__liquid-bounding .the-power-couple__liquid-bounding__bottom .bottom__copy {
        margin-top: 20px;
        font-size: 18px;
        font-size: 1.8rem; }
  .page.the-power-couple.viewing-1 .fullpage__scroll-cta {
    -webkit-animation-play-state: running;
    animation-play-state: running; }
  .page.the-power-couple.viewing-7 .fullpage__scroll-cta {
    opacity: 0; }

	.page.index .fullscreen_slide6 .section__title {
		font-size: 5.8rem;
	}

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLW5lYXQvYXNzZXRzL3N0eWxlc2hlZXRzL2dyaWQvX2JveC1zaXppbmcuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fcHJlZml4ZXIuc2NzcyIsIl9taXhpbnMuc2NzcyIsIl9ub3JtYWxpemUuc2NzcyIsIl9mb250cy5zY3NzIiwiX2Jhc2Uuc2NzcyIsIl9idXR0b25zLnNjc3MiLCJtb2R1bGVzL19mdWxsc2NyZWVuLnNjc3MiLCJtb2R1bGVzL19jb250YWluZXIuc2NzcyIsIm1vZHVsZXMvX3Byb2R1Y3QtaXRlbS5zY3NzIiwibW9kdWxlcy9faXRlbXMuc2NzcyIsIm1vZHVsZXMvX3RpbWVsaW5lLnNjc3MiLCJtb2R1bGVzL19hcnRpY2xlcy5zY3NzIiwibW9kdWxlcy9fcXVlc3Rpb25uYWlyZS5zY3NzIiwibW9kdWxlcy9fbWVkaXVtLWJsb2NrLnNjc3MiLCJtb2R1bGVzL190aHJlZS1jb2x1bW4uc2NzcyIsIm1vZHVsZXMvX25ld3NsZXR0ZXItc2lnbnVwLnNjc3MiLCJnbG9iYWxzL19oZWFkZXItZGVza3RvcC5zY3NzIiwiZ2xvYmFscy9fc3ViaGVhZGVyLnNjc3MiLCJnbG9iYWxzL19mb290ZXIuc2NzcyIsImdsb2JhbHMvX3NlYXJjaC5zY3NzIiwiZ2xvYmFscy9fc3VwcG9ydC5zY3NzIiwicGFnZXMvX3dlaWdodGxlc3MtcHJvdGVjdGlvbi5zY3NzIiwicGFnZXMvX2lkZWFsLWNvbXBsZXguc2NzcyIsInBhZ2VzL190aGUtcG93ZXItY291cGxlLnNjc3MiLCJtb2R1bGVzL19ncmlkLWl0ZW1zLnNjc3MiLCJtb2R1bGVzL19sb2NhdG9yLXNlYXJjaC5zY3NzIiwibW9kdWxlcy9fcHJvZHVjdC1kZXRhaWxzLXBhbmVsLnNjc3MiLCJtb2R1bGVzL19mdWxscGFnZS1zY3JvbGwtZG93bi1jdGEuc2NzcyIsImdsb2JhbHMvX2hlYWRlci1tb2JpbGUuc2NzcyIsImdsb2JhbHMvX2dsb2JhbC1jYXJ0LnNjc3MiLCJwYWdlcy9fcHJvZmVzc2lvbmFsLWxhbmRpbmcuc2NzcyIsInBhZ2VzL19iZWZvcmUtYWZ0ZXIuc2NzcyIsInBhZ2VzL19wcm9kdWN0LWRldGFpbHMuc2NzcyIsImdsb2JhbHMvX2ZpeGVkLWZvb3Rlci5zY3NzIiwibW9kdWxlcy9fdG9vbHRpcC5zY3NzIiwibW9kdWxlcy9fZmlsdGVyLWJhci5zY3NzIiwibW9kdWxlcy9fc2xwLnNjc3MiLCJfaWNvbnMuc2NzcyIsInNwcml0ZXMvX2ljb25zLnNjc3MiLCJfY29sb3JzLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1uZWF0L2Fzc2V0cy9zdHlsZXNoZWV0cy9ncmlkL19tZWRpYS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL190cmlhbmdsZS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fcGxhY2Vob2xkZXIuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fcG9zaXRpb24uc2NzcyIsIl9jYXJldC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fdHJhbnNpdGlvbi5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19zaXplLnNjc3MiLCJfY29tbW9uLnNjc3MiLCJfZm9ybXMuc2NzcyIsInZlbmRvci9fY2hvc2VuLnNjc3MiLCJ2ZW5kb3IvX293bC1jYXJvdXNlbC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtbmVhdC9hc3NldHMvc3R5bGVzaGVldHMvZ3JpZC9fb3V0ZXItY29udGFpbmVyLnNjc3MiLCJfbmVhdC1zZXR0aW5ncy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19jbGVhcmZpeC5zY3NzIiwiX3NldHRpbmdzLnNjc3MiLCJtb2R1bGVzL19ncmlkLXNoYXJlLWJ0bi5zY3NzIiwibW9kdWxlcy9fY29udGVudC1ibG9ja3Muc2NzcyIsIm1vZHVsZXMvX3Byb21vcy5zY3NzIiwibW9kdWxlcy9fc3RhbmRhcmQtdmlkZW8uc2NzcyIsInNwcml0ZXMvX3Nwcml0ZS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fZmxleC1ib3guc2NzcyIsIm1vZHVsZXMvX2JhY2stdG8tdG9wLnNjc3MiLCJtb2R1bGVzL190d28tY29sdW1uLWJvcmRlcmVkLnNjc3MiLCJtb2R1bGVzL19ldmVudHMuc2NzcyIsIm1vZHVsZXMvX2JlZm9yZS1hZnRlci5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19kaXJlY3Rpb25hbC12YWx1ZXMuc2NzcyIsIm1vZHVsZXMvX3N0YXItcmF0aW5nLnNjc3MiLCJtb2R1bGVzL190d28tY29sdW1uLWRhcmsuc2NzcyIsIm1vZHVsZXMvX2Z1bGxzY3JlZW4tbW9kYWwuc2NzcyIsIm1vZHVsZXMvX2Z1bGxwYWdlLXBsdWdpbi5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fa2V5ZnJhbWVzLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19hbmltYXRpb24uc2NzcyIsIm1vZHVsZXMvX3Byb2R1Y3QtZGV0YWlscy1zaGFyZS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtbmVhdC9hc3NldHMvc3R5bGVzaGVldHMvZ3JpZC9fc3Bhbi1jb2x1bW5zLnNjc3MiLCJnbG9iYWxzL19nbG9iYWwtZHJvcGRvd24uc2NzcyIsInBhZ2VzL19pbmRleC5zY3NzIiwicGFnZXMvX2J1bmRsZWQtcHJvZHVjdHMuc2NzcyIsInBhZ2VzL19wcm9kdWN0LWxpc3RpbmdzLnNjc3MiLCJwYWdlcy9fc3Rvcmllcy5zY3NzIiwicGFnZXMvX3Byb2Zlc3Npb25hbC10cmVhdG1lbnRzLnNjc3MiLCJwYWdlcy9fb25saW5lLWNvbnN1bHRhdGlvbi5zY3NzIiwicGFnZXMvX3NraW4tZXhwbGFpbmVkLnNjc3MiLCJwYWdlcy9fY2xhc3MtZGV0YWlscy5zY3NzIiwicGFnZXMvX21lZGlhLW1lbnRpb25zLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0VDU1Esb0JEUGdCO0VDWWhCLGlCRFpnQjtFQzJCaEIsWUQzQmdCOztBQUd4QixHQUFHLENBQUMsU0FBUyxDQUFDO0VDSU4sb0JERmtCO0VDT2xCLGlCRFBrQjtFQ3NCbEIsWUR0QmtCOztBRVAxQixXQUFXLFlBQVksTUFBTSxhQUFhLGVBQWUsWUFBWSxnQkFBZ0IseUJBQXlCLG9CQUFvQixVQUFVLGdCQUFnQixhQUFhLG1CQUFtQixzQkFBc0Isa0JBQWtCLG1DQUFtQyxzQkFBc0IsMENBQTBDO0VBQ3JVLE9BQU87RUFBVCxTQUFTLFNBQVMsWUFBWSxJQUFJLFNBQVMsV0FBVyxTQUFTLGFBQWEsU0FBUyxVQUFVLFNBQVMsZ0JBQWdCLHVCQUF1QixTQUFTLG9CQUFvQixRQUFRLFNBQVMsZ0JBQWdCLFdBQVcsU0FBUyxpQkFBaUIsU0FBUyxzQkFBc0Isa0JBQWtCLGlDQUFpQyxTQUFTLHNCQUFzQiwwQ0FBMEMsbURBQW1ELFNBQVMsU0FBUyxRQUFRLFlBQVksSUFBSSxRQUFRLFdBQVcsUUFBUSxhQUFhLFFBQVEsVUFBVSxRQUFRLGdCQUFnQix1QkFBdUIsUUFBUSxvQkFBb0IsUUFBUSxRQUFRLGdCQUFnQixXQUFXLFFBQVEsaUJBQWlC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RW9DckVaLGFBQWE7RUFDYixTQUFTO0VBQ1QsT0VJVTs7QUZEWjtFcEN1QkUsWUFBWTtFQUNaLFFBQVE7RW9DdEJSLFVBQVU7RUFDVixTQUFTO0VBQ1QsUUFBUTtFcENvQlYsWUFBWTtJQUVSLGFBQWE7SUFDYixnQkFBZ0I7RW9DdkJwQixZQUFZO0lBR1IsYUFBYTtFQUNqQixhQUFhO0lwQ1NYLE9BQU87SUFDUCxNQUFRO0lBQ1IsYUFBYTs7QTJDeEJmLFdBQVc7RTVDTUgsbUI0Q0plO0U1Q1NmLGdCNENUZTtFNUNjZixlNENkZTtFNUNtQmYsYzRDbkJlO0U1Q3dCZixXNEN4QmU7QUFDdkIsV0FBVztFNUNHSCxtQjRDRGU7RTVDTWYsZ0I0Q05lO0U1Q1dmLGU0Q1hlO0U1Q2dCZixjNENoQmU7RTVDcUJmLFc0Q3JCZTtBQUN2QixXQUFXO0U1Q0FILG1CNENFZTtFNUNHZixnQjRDSGU7RTVDUWYsZTRDUmU7RTVDYWYsYzRDYmU7RTVDa0JmLFc0Q2xCZTs7QUFJdkIsZ0JBQWdCO0U1Q05SLG1CNENRZTtFNUNIZixnQjRDR2U7RTVDRWYsZTRDRmU7RTVDT2YsYzRDUGU7RTVDWWYsVzRDWmU7QUFJdkIsZ0JBQWdCO0U1Q1pSLG1CNENjZTtFNUNUZixnQjRDU2U7RTVDSmYsZTRDSWU7RTVDQ2YsYzRDRGU7RTVDTWYsVzRDTmU7QUFDdkIsZ0JBQWdCO0U1Q2ZSLG1CNENpQmU7RTVDWmYsZ0I0Q1llO0U1Q1BmLGU0Q09lO0U1Q0ZmLGM0Q0VlO0U1Q0dmLFc0Q0hlOztBdkNqQnZCO0VBQ0UsYUFBYTtFQUNiLE9vQ0ptQjtFcENLbkIsZUFYc0I7RUFZdEIsUUFBUTtFQUNSLGdCQUFnQjtFSndGaEIsU0FoQmE7RUFpQmIsU0FSYztFQXhCZCxXQUFXO0VBQ1gsV0FBWTs7QUluRGQsUUFBUTtFTFpBLG9CNkNKVztFN0NTWCxpQjZDVFc7RTdDd0JYLFk2Q3hCVzs7QXhDb0JuQixNQUFNLFlBQVksT0FBTztFQUN2QixTQUFTO0VBQ1QsZ0JBQWdCOztBQUdsQjtFQUNFLFlvQ3hCbUI7RXBDeUJuQixPb0N6Qm1COztBcEM0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b0M7UWhFekhoRSxvQjZDSlc7UTdDU1gsaUI2Q1RXO1E3Q3dCWCxZNkN4Qlc7UTdDSVgsbUJnRTZIbUI7UWhFeEhuQixnQmdFd0htQjtRaEVuSG5CLGVnRW1IbUI7UWhFOUduQixjZ0U4R21CO1FoRXpHbkIsV2dFeUdtQjtRQUNuQixXQUFXO1FBQW5CLGNBQWMsc0JBQXNCLG9DQUFvQywwQ0FBMEM7VXJCekhoSCxVcUI0SDBCO1VyQnpIeEIsS0FSSTtVQW9CSixNQWpCSztVRlhQLFFBQVE7VUFDUixPQUFPO1VBZ0NILFlBQVk7VUFDWixlQUFlO1VBQ2YsY0FBYztRdUJ3R3BCLGNBQWMsc0JBQXNCLG9DQUFvQywwQ0FBMEM7VXJCOUhoSCxVcUJpSTBCO1VyQjlIeEIsS0FSSTtVQVlKLE9BWE07VUZUUixRQUFRO1VBQ1IsT0FBTztVQXNCSCxZQUFZO1VBQ1osZUFBZTtVQUNmLGFBQWE7TXVCd0huQixjQUFjLHNCQUFzQixvQ0FBb0M7UXJCcEl0RSxVcUJ1SXdCO1FyQnBJdEIsS0FSSTtRQW9CSixNQWpCSztRM0NIRCxtQmdFNkltQjtRaEV4SW5CLGdCZ0V3SW1CO1FoRW5JbkIsZWdFbUltQjtRaEU5SG5CLGNnRThIbUI7UWhFekhuQixXZ0V5SG1CO1FoRTdJbkIsb0I2Q0pXO1E3Q1NYLGlCNkNUVztRN0N3QlgsWTZDeEJXO1FtQm1KWCxrQnZCakphO1F1QmtKYixTQUFTO1FBQ1QsUUFBUTtRQUNSLE9BQU87TUFDZixjQUFjLHNCQUFzQixtQ0FBbUM7UXJCOUlyRSxVcUJpSndCO1FyQjlJdEIsS0FSSTtRQW9CSixNQWpCSztRM0NIRCxvQjZDSlc7UTdDU1gsaUI2Q1RXO1E3Q3dCWCxZNkN4Qlc7UW1CNEpYLGtCdkIxSmE7UXVCMkpiLFNBQVM7UUFDVCxTQUFTO1FBQ1QsUUFBUTtRQUNSLE9BQU87TUFDZixjQUFjLHNCQUFzQixtQ0FBbUM7UXJCeEpyRSxVcUIySndCO1FyQmhKdEIsUUFkTztRQWtCUCxNQWpCSztRM0NIRCxvQjZDSlc7UTdDU1gsaUI2Q1RXO1E3Q3dCWCxZNkN4Qlc7UW1Cc0tYLGtCdkJwS2E7UXVCcUtiLFNBQVM7UUFDVCxTQUFTO1FBQ1QsUUFBUTtRQUNSLE9BQU87RUFHZixhQUFhO0lBR1QsT0FBTztJQUNQLFFBQVE7SUFDUixPQUFPO0lBQ1AsUUFBUTtJQUNSLGNBQWM7SUFDZCxZQUFZO0lBQWhCLGFBQWEsb0JBQW9CO01BRzNCLGNBQWM7SUFDcEIsYUFBYSxxQkFBcUI7TUFHNUIsUUFBUTtNeEIzR1Y7UXdCd0dKLGFBQWEscUJBQXFCO1VBTTFCLFFBQVE7TXhCOUdaO1F3QndHSixhQUFhLHFCQUFxQjtVQVUxQixRQUFRO0l4QmxIWjtNd0I0RkosYUFBYTtRbEJ2SlAsT0FQTztRQWlCUCxRQWhCTztRa0J5TFAsT0FBTztRQUNQLGNBQWM7SXhCekhoQjtNd0I0RkosYUFBYTtRbEJ2SlAsT0FQTztRQWlCUCxRQWhCTztJTmlFVDtNd0I0RkosYUFBYTtRbEJ2SlAsT0FQTztRQWlCUCxRQWhCTztJa0JtTWIsYUFBYSxvQkFBb0I7TWhFL016QixvQjZDSlc7TTdDU1gsaUI2Q1RXO003Q3dCWCxZNkN4Qlc7TUZTakIsVXFCOE1zQjtNckIzTXBCLEtBUkk7TUFZSixPQVhNO01BZU4sUUFkTztNQWtCUCxNQWpCSztNcUJpTkgsU0FBUztNQUNULFNBQVM7TUFDVCxRQUFRO01BQ1IsU0FBUztJQUNmLGFBQWEscUJBQXFCO01yQm5OaEMsVXFCc05zQjtNckJuTnBCLEtBUkk7TUFnQkosUUFkTztNQWtCUCxNQWpCSztNcUJ5Tkgsa0J2QjlOZTtNdUIrTmYsT0FBTztNQUNQLFNBQVM7SUFHZixhQUFhLG9CQUFvQixNQUFNLFNBQVMsYUFBYSxvQkFBb0IsT0FBTztNQUVoRixjekJsTkk7O0FiMUJaO0VBQ0Usa0JlTW1CO0VmTG5CLE9lS21CO0VmTHJCLHVCQUF1QjtJQUluQixTQUFTO0VBQ2IsdUJBQXVCO0lBR25CLGtCZUhpQjtJZklqQixPZUppQjtJZktqQixTQUFTO0lBQ1QsZUFBZTtJY3lFZjtNZC9FSix1QkFBdUI7UUFTakIsU0FBUztFQUVmLHVCQUF1QiwyQ0FBMkM7SXpCcURoRSxXQUFXO0lBQ1gsV0FBWTtJeUJsRFYsU0FBUztJQUNULE9BQU87SUFDUCxRQUFRO0lBQ1IsZUFBZTtJQUNmLE9hVW9CO0liVHBCLFFBQVE7SUFBWix1QkFBdUIsMkNBQTJDLGNBQWM7TUFHMUUsT2FKTTtNYktOLGNhTE07SUM0RFI7TWRwRUosdUJBQXVCLDJDQUEyQztRekJxRGhFLFdBQVc7UUFDWCxXQUFZO1F5QnBDUixTQUFTO0VBRWYsdUJBQXVCO0l6QmlDckIsV0FBVztJQUNYLFdBQVk7SXVDY1Y7TWRoREosdUJBQXVCO1F6QmlDckIsV0FBVztRQUNYLFdBQVk7RXlCekJkLHVCQUF1QjtJekJ3QnJCLFdBQVc7SUFDWCxXQUFZO0l5QnBCVixZQUFZO0lja0NaO01kdkNKLHVCQUF1QjtRekJ3QnJCLFdBQVc7UUFDWCxXQUFZO0V5QmZkLHVCQUF1QjtJQUduQixTQUFTO0lBQ1QsWUFBWTtJY3lCWjtNZDdCSix1QkFBdUI7UUFNakIsWUFBWTtJQUNsQix1QkFBdUIsK0JBQStCO016Qk9wRCxXQUFXO01BQ1gsV0FBWTtNeUJIUixPZTlEZTtNZitEZixhQUFhO01jZ0JmO1FkdEJKLHVCQUF1QiwrQkFBK0I7VXpCT3BELFdBQVc7VUFDWCxXQUFZO0V5QklkLHVCQUF1QjtJQUduQixTQUFTO0lBQ1QsT0FBTztJQUNQLFlBQVk7SUFDWixPQUFPO0lBRVAsZUFBZTtJQUFuQix1QkFBdUIsZ0NBQWdDO01BRWpELGVBQWU7TUFDZixjQUFjO0lBQ3BCLHVCQUF1QixpQ0FBaUM7TXpCakJ0RCxXQUFXO01BQ1gsV0FBWTtNeUJxQlIsZUFBZTtNQUNmLGdCQUFnQjtNY1JsQjtRZEVKLHVCQUF1QixpQ0FBaUM7VXpCakJ0RCxXQUFXO1VBQ1gsV0FBWTtJeUIyQmQsdUJBQXVCLGlDQUFpQztNekI1QnRELFdBQVc7TUFDWCxXQUFZO015QitCUixlQUFlO01BQ2YsUUFBUTtNQUNSLFNBQVM7TUFDVCxlQUFlO01BQ2YsU0FBUztNY3JCWDtRZGFKLHVCQUF1QixpQ0FBaUM7VXpCNUJ0RCxXQUFXO1VBQ1gsV0FBWTtFeUJ5Q2QsdUJBQXVCO0l6QjFDckIsV0FBVztJQUNYLFdBQVk7SXlCOENWLGFBQWE7SUFDYixZQUFZO0ljakNaO01kMkJKLHVCQUF1QjtRekIxQ3JCLFdBQVc7UUFDWCxXQUFZO1F5Qm1EUixZQUFZO0VBRWxCLHVCQUF1QjtJekJ0RHJCLFdBQVc7SUFDWCxXQUFZO0l5QjBEVixZQUFZO0lBQ1osY0FBYztJYzdDZDtNZHVDSix1QkFBdUI7UXpCdERyQixXQUFXO1FBQ1gsV0FBWTtJeUIrRGQsdUJBQXVCLGlDQUFpQyx1QkFBdUIsZ0NBQWdDO01BR3pHLGlCQUFpQjtFMkI3SHZCLHVCQUF1QiwwQ0FBMEM7SUFFN0QsU0FBUTtJQUNSLFNBQVE7SUFDUixPQUFNO0UzQitIVix1QkFBdUIsNkNBQTZDO0lBR2hFLE9BQU87SUFDUCxhQUFhO0lBQ2IsWUFBWTtJQUNaLGdCQUFnQjtJQUNoQixPQUFPO0lBQVgsdUJBQXVCLDZDQUE2QyxDQUFDO01BRy9ELGFBQWE7RUFFbkIsdUJBQXVCO0l6QnJGckIsV0FBVztJQUNYLFdBQVk7SXlCeUZWLFNBQVM7SUFDVCxTQUFTO0lBQ1QsT0FBTztJQUNQLFlBQVk7SWM5RVo7TWRzRUosdUJBQXVCO1F6QnJGckIsV0FBVztRQUNYLFdBQVk7UXlCZ0dSLFNBQVM7RUFFZix1QkFBdUI7SUFHbkIsT0FBTztJQUFYLHVCQUF1QixrQkFBa0I7TUFHbkMsT0FBTztNdUM3R2EsZUFNWTtNQUFaLGNBQVk7TXZDeUdoQyxZQUFZO0lBQ2xCLHVCQUF1QixrQkFBa0I7TUFHbkMsT0FBTztFQUViLHVCQUF1QjtJQUduQixPQUFPO0VBQ1gsdUJBQXVCO0lBR25CLE9BQU87SUFDUCxZQUFZO0l1Q2xJUSxhQUFTO0lBS1AsZUFXWTtJQURaLGdCQUFZO0lBQ1osY0FBWTtJaEVQcEMsV0FBVztJQUNYLFdBQVk7SWdFTFksZUFNWTtJQUFaLGNBQVk7SXpCYWxDO01kc0dKLHVCQUF1QjtRdUM5SEMsYUFVYztRQUxaLGVBTVk7UUFEWixnQkFBWTtRQUNaLGNBQVk7UWhFRnBDLFdBQVc7UUFDWCxXQUFZOztBaUV4RWQ7RUFDRSxnQkFBZ0I7RUFBbEIsYUFBYTtJQUdULE8zQlFpQjtJdEMyRG5CLFdBQVc7SUFDWCxXQUFZO0l1Q2NWO00wQnJGSixhQUFhO1FqRXNFWCxXQUFXO1FBQ1gsV0FBWTtFaUUzRGQsWUFBWSxrQkFBa0IsS0FBSztJQUMzQixPekJQYTtFeUJNckIsWUFBWSxrQkFBa0IsS0FBSztJQUMzQixPekJQYTtFeUJNckIsWUFBWSxrQkFBa0IsS0FBSztJQUMzQixPekJQYTtFeUJNckIsWUFBWSxrQkFBa0IsS0FBSztJQUMzQixPekJQYTtFeUJNckIsWUFBWSxrQkFBa0IsS0FBSztJQUMzQixPekJQYTs7QTBCUHJCO0VBQ0UsTzFCTW1CO0VEK0VqQjtJMkJ0Rko7TUFLSSxTQUFTO01kUWIsZ0JBQWdCO1FBRVosU0FBUTtRQUNSLFNBQVE7UUFDUixPQUFNO0VjWFYsaUJBQWlCO0lBR2Isa0IxQkZpQjtJMEJHakIsT0FBTztJM0I0RVA7TTJCaEZKLGlCQUFpQjtRQU9YLFNBQVM7UUFDVCxnQkFBZ0I7UUFDaEIsT0FBTztJQUNiLGlCQUFpQix3QkFBd0I7TUFHbkMsa0I1QmtCaUI7O0F6QnJDdkI7RUFFRSxPMkJLbUI7RVlNckIsYUFBYTtJQUVULFNBQVE7SUFDUixTQUFRO0lBQ1IsT0FBTTtFdkNmVixjQUFjO0lBR1YsT0FBTztJQUNQLE9BQU87SWJnR1QsU0FoQmE7SUFpQmIsU0FSYztJdUNUWjtNMUJwRkosY0FBYztRQVFSLE9BQU87RUFFYixjQUFjO0liMkRaLFdBQVc7SUFDWCxXQUFZO0lBOEJaLGVBaEJhO0lBaUJiLGVBUmM7O0FtRS9GaEI7RXpCY0UsVXlCYmtCO0V6QmdCaEIsS0FSSTtFQVlKLE9BWE07RUFlTixRQWRPO0VBa0JQLE1BakJLO0UzQ0hELG1Cb0VQYTtFcEVZYixnQm9FWmE7RXBFaUJiLGVvRWpCYTtFcEVzQmIsY29FdEJhO0VwRTJCYixXb0UzQmE7RXZCeUNqQixvQkFkVztFQWVSLGlCQWRRO0VBZUgsWUFkRztFdUIzQmIsWUFBWTtFQUNaLFNBQVM7RUFBWCxpQkFBaUI7SXBFSVQsbUJvRURlO0lwRU1mLGdCb0VOZTtJcEVXZixlb0VYZTtJcEVnQmYsY29FaEJlO0lwRXFCZixXb0VyQmU7RUFDdkIsaUJBQWlCO0lBR2IsWUFBWTtJQUFoQixpQkFBaUIsTUFBTTtNQUdqQixjM0JSZTtNMkJTZixTQUFTO01BQWYsaUJBQWlCLE1BQU0seUJBQXlCO1FBR3hDLE8zQlphO1EyQmFiLFdBQVc7UTVCa0VmO1U0QnRFSixpQkFBaUIsTUFBTSx5QkFBeUI7WUFPdEMsV0FBVztNQUVyQixpQkFBaUIsTUFBTSx3QkFBd0I7UUFHdkMsYzdCQUQ7UTZCQVAsaUJBQWlCLE1BQU0sd0JBQXdCLE9BQU87VUFFNUMsTzdCRkg7STZCTVAsaUJBQWlCLE1BQU07TUFHakIsVUFBVTtFQUVoQixrQkFBa0I7SXpCekJoQixVeUI0Qm9CO0l6QnpCbEIsS0FSSTtJQVlKLE9BWE07SUFlTixRQWRPO0lBa0JQLE1BakJLO0l5QitCTCxVQUFVO0lBQ1YsU0FBUztFQUNiLGtCQUFrQjtJekIvQmhCLFV5QmtDb0I7SXpCL0JsQixLQVJJO0lBWUosT0FYTTtJeUJ1Q04sU0FBUztJQUNULFNBQVM7Ozs7Ozs7OztBQzNDYjtFQVNJLFFBQVE7RUFDUixVQUFVOztFQUdWLGtCQUFrQjs7RUFHbEIsY0FBYzs7QUFFbEI7RUFDSSxVQUFVO0VBQ1Ysb0JBQW9COztFQUNwQixpQkFBaUI7O0VBQ2pCLFlBQVk7O0FBRWhCO0VBQ0ksT0FBTzs7QUFFWCxXQUFXO0VBQ1AsUUFBUTtFQUNSLFNBQVM7O0FBRWI7RUFDSSxTQUFRO0VBQ1IsUUFBUTtFQUNSLFVBQVU7RUFDVixVQUFVO0VBQ1Ysb0JBQW9COztFQUNwQixZQUFZOztBQUVoQixXQUFXLFdBQVcsU0FBUztFQUMzQixTQUFTO0VBQ1QsY0FBYTtFQUNiLE9BQU87O0FBRVg7RUFDSSxTQUFTO0VBQ1QsZ0JBQWdCO0VBQ2hCLE9BQU87RUFDUCxRQUFROztBQUVaO0VBQ0ksT0FBTztFQUNQLFVBQVU7O0FBRWQ7RUFDSSxVQUFVO0VBQ1YsU0FBUztFQUNULEtBQUs7RUFDTCxRQUFRO0VBQ1IsT0FBTztFQUNQLFFBQVE7RUFDUixjQUFjO0VBQ2QsWUFBWTtFQUNaLG1CQUFtQjtFQUNuQixlQUFlO0VBQ2YsV0FBVzs7QUFFZixnQkFBZ0I7RUFDWixNQUFNO0VBQ04sT0FBTztFQUNQLGNBQWM7RUFDZCxjQUFjOztBQUVsQixnQkFBZ0I7RUFDWixPQUFPO0VBQ1AsY0FBYztFQUNkLGNBQWM7O0FBRWxCO0VBQ0ksVUFBVTs7QUFHZDtFQUNJLG9CQUFvQjtFQUNwQixZQUFZOztBQUVoQjtFQUNJLFVBQVU7RUFDVixTQUFTO0VBQ1QsWUFBWTtFQUNaLEtBQUs7RUFDTCxTQUFTO0VBQ1QsbUJBQW1CO0VBQ25CLGtCNUI3RmlCO0U0QjhGakIsU0FBUztFckU1RkwsbUJxRTZGZTtFckV4RmYsZ0JxRXdGZTtFckVuRmYsZXFFbUZlO0VyRTlFZixjcUU4RWU7RXJFekVmLFdxRXlFZTtFeEIzRG5CLG9CQWRXO0VBZVIsaUJBZFE7RUFlSCxZQWRHO0V3QndFZixPQUFPO0l4QjVESCxvQkFkVztJQWVSLGlCQWRRO0lBZUgsWUFkRztJN0N0QlAsbUJxRWtHbUI7SXJFN0ZuQixnQnFFNkZtQjtJckV4Rm5CLGVxRXdGbUI7SXJFbkZuQixjcUVtRm1CO0lyRTlFbkIsV3FFOEVtQjs7QUFHM0IsT0FBTztFQUNILE9BQU87O0FBRVgsT0FBTztFQUNILE1BQU07O0FBRVY7RUFDSSxVQUFVO0VBQ1YsU0FBUztFQUNULE1BQU07RUFDTixTQUFTOztBQUViLGFBQWE7RUFDVCxRQUFROztBQUVaLGFBQWE7RUFDVCxLQUFLOztBQUVULFFBQVEsSUFBSSxjQUFjO0VBRXhCLFFBQVE7RUFDUixTQUFTOztBQUVYLFFBQVEsR0FBRyxJQUFJLGNBQWMsR0FBRztFQUU1QixTQUFTO0VBQ1QsT0FBTztFQUNQLFFBQVE7RUFDUixlQUFlO0VBQ2YsVUFBUztFQUFiLFFBQVEsR0FBRyxFQUFFLGFBQWEsY0FBYyxHQUFHLEVBQUU7SUFHckMsZUFBZTs7QUFHdkIsY0FBYyxHQUFHO0VBQ2IsU0FBUzs7QUFFYixRQUFRLEdBQUcsR0FBRyxHQUFHLGNBQWMsR0FBRyxHQUFHO0VBRWpDLFNBQVM7RUFDVCxVQUFVO0VBQ1YsU0FBUztFQUNULE9BQU87RUFDUCxRQUFRO0VBQ1IsUUFBUTtFQUNSLGlCQUFpQjs7QUFFckIsUUFBUSxHQUFHLEdBQUcsQ0FBQyxRQUFRLE1BQU0sY0FBYyxHQUFHLEdBQUcsQ0FBQyxRQUFRO0VBRXRELFlBQVk7O0FBRWhCLFFBQVEsR0FBRyxHQUFHLEVBQUUsTUFBTSxjQUFjLEdBQUcsR0FBRyxFQUFFO0VBRXhDLEtBQUs7RUFDTCxNQUFNO0VBQ04sT0FBTztFQUNQLFFBQVE7RUFDUixRQUFRO0VBQ1IsWUFBWTtFQUNaLGVBQWU7RUFDZixVQUFVO0VBQ1YsU0FBUzs7QUFFYixRQUFRLEdBQUcsR0FBRztFQUNWLFVBQVU7RUFDVixLQUFLO0VBQ0wsT0FBTztFQUNQLFdBQVc7RUFDWCxhQUFhO0VBQ2IsYUFBYTtFQUNiLFdBQVc7RUFDWCxVQUFVO0VBQ1YsU0FBUztFQUNULFNBQVM7RUFDVCxPQUFPOztBQUVYLFFBQVEsR0FBRyxFQUFFLE9BQU87RUFDaEIsb0JBQW9CO0VBQ3BCLFlBQVk7RUFDWixPQUFPO0VBQ1AsU0FBUzs7QUFFYixRQUFRLEdBQUcsR0FBRyxXQUFXO0VBQ3JCLE9BQU87O0FBRVgsUUFBUSxHQUFHLEdBQUcsV0FBVztFQUNyQixNQUFNOztBdERyTVYsaUJBQWlCO0VBQ2YsU0FBUzs7QUFHWDtFQUNFLE8wQkVtQjtFMUJEbkIsa0JBQWtCO0VBQ2xCLFdBQVc7RUFDWCxPQUFPO0VBQ1AsVUFBVTtFQUNWLE1BQU07RUFDTixLQUFLO0VBQ0wsU0FBUztFQUNULGVBQWU7RUFFZixXQUFXO0V5QnVFVDtJekJsRko7TUFjSSxPQUFPO0VBQ1gsb0JBQW9CO0lBSWhCLE9BQU87SUFDUCxLQUFLO0lBQ0wsU0FBUztJQUNULE9BQU87SUFDUCxRQUFRO0l5QjJEUjtNekJuRUosb0JBQW9CO1FBV2QsS0FBSztRQUNMLE9BQU87UUFDUCxPQUFPO1FBQ1AsUUFBUTtFQUdkLG9CQUFvQjtJQUdoQixRQUFRO0lBQ1IsUUFBUTtJQUNSLFNBQVM7RUFFYixvQkFBb0I7SUFHaEIsU0FBUztJeUJ3Q1Q7TXpCM0NKLG9CQUFvQjtRQUtkLFNBQVM7RUFFZixvQkFBb0I7SUFHaEIsT0FBTztJQUNQLFFBQVE7SUFDUixZQUFZO0lBQ1osbUJBQW1CO0lBQ25CLGlCQUFpQjtJQUNqQix1QkFBdUI7SXlCNEJ2QjtNekJwQ0osb0JBQW9CO1FBV2QsUUFBUTtFQUVkLG9CQUFvQjtJQUdoQixRQUFRO0lBQ1IsWUFBWTtJQUNaLFVBQVU7SUFDVixZQUFZO0lBQ1osT0FBTztJQUNQLGdCQUFnQjtJZEFsQixXQUFXO0lBQ1gsV0FBWTtJdUNjVjtNekJ2Qkosb0JBQW9CO1FBYWQsWUFBWTtRZExoQixXQUFXO1FBQ1gsV0FBWTtFY09kLG9CQUFvQjtJQUdoQixZQUFZO0lBQ1osUUFBUTtJeUJHUjtNekJQSixvQkFBb0I7UUFRZCxRQUFRO1FkaEJaLFdBQVc7UUFDWCxXQUFZO0Vja0JkLG9CQUFvQixLQUFLO0lBR3JCLE9BQU87SUFDUCxRQUFRO0lBQ1IsU0FBUztJQUNULFFBQVE7SUFDUixlQUFlO0lBQ2YsU0FBUztJQUNULGVBQWU7SUFDZixvQkFBb0I7SXlCZHBCO016QklKLG9CQUFvQixLQUFLO1FBY25CLE9BQU87UUFBYixvQkFBb0IsS0FBSyxhQUFhO1VBRTlCLFNBQVM7VUFDVCxPQUFPO1VBQ1AsY0FBYztVQUNkLGVBQWU7UUFDdkIsb0JBQW9CLEtBQUssYUFBYTtVQUc5QixTQUFTO1VBQ1QsT0FBTztVQUNQLFFBQVE7O0FBTWhCO0VBQ0UsTzBCbkhtQjtFMUJvSG5CLFVBQVU7RUFBWixrQ0FBa0MsV0FBVyxrQ0FBa0M7SUFHM0UsU0FBUztFQUNiLGtDQUFrQztJQUc5QixZQUFZO0lBQ1osYUFBYTtJQUNiLFdBQVc7SXlCOUNYO016QnlDSixrQ0FBa0M7UUFRNUIsYUFBYTtFQUduQixrQ0FBa0M7SUFHOUIsVUFBVTtJQUNWLE9BQU87SUFDUCxLQUFLO0lBQVQsa0NBQWtDLFlBQVksT0FBTztNQUcvQyxTQUFTO015QjVEWDtRekJ5REosa0NBQWtDLFlBQVksT0FBTztVQU03QyxTQUFTO0l5Qi9EYjtNekJvREosa0NBQWtDO1FBZ0I1QixPQUFPOztBQU1iO0VBQ0Usa0IwQjFKbUI7RTFCMkpuQixRQUFROzttQnVEdkpWO0UzQ1hBO0kzQlNRLG1CMkJQZTs7RUFDdkI7STNCTVEsbUIyQkplOztnQjJDYXZCO0UzQ2xCQTtJM0JjUSxnQjJCWmU7O0VBQ3ZCO0kzQldRLGdCMkJUZTs7VzJDeUJ2QjtFM0M5QkE7STNCU1EsbUIyQlBlO0kzQllmLGdCMkJaZTtJM0JpQmYsZTJCakJlO0kzQnNCZixjMkJ0QmU7STNCMkJmLFcyQjNCZTs7RUFDdkI7STNCTVEsbUIyQkplO0kzQlNmLGdCMkJUZTtJM0JjZixlMkJkZTtJM0JtQmYsYzJCbkJlO0kzQndCZixXMkJ4QmU7O0FBSXZCO0UzQkFRLG9CNkNKVztFN0NTWCxpQjZDVFc7RTdDd0JYLFk2Q3hCVztFRlNqQixVaEJIa0I7RWdCY2hCLFFBZE87RUFrQlAsTUFqQks7RTNDSEQsbUIyQkdhO0UzQkViLGdCMkJGYTtFM0JPYixlMkJQYTtFM0JZYixjMkJaYTtFM0JpQmIsVzJCakJhO0VBQ25CLFNBQVM7RUFDVCxZQUFZO0VBQ1osU0FBUztFQUNULFFBQVE7RTNCUEYsOEJ1RTRCcUI7RXZFdkJyQiwyQnVFdUJxQjtFdkVSckIsc0J1RVFxQjtFdkU1QnJCLHdCdUVBZTtFdkVLZixxQnVFTGU7RXZFb0JmLGdCdUVwQmU7RXZFQWYsbUN1RWdCMEI7RXZFWDFCLGdDdUVXMEI7RXZFSTFCLDJCdUVKMEI7RXZFaEIxQiw0QnVFS21CO0V2RUFuQix5QnVFQW1CO0V2RWVuQixvQnVFZm1CO0U1Q08zQixzQkFBc0I7STFCa0RwQixXQUFXO0lBQ1gsV0FBWTtJMEI5Q1YsT2NuQmlCO0lkb0JqQixZQUFZO0VBQ2hCLHNCQUFzQjtJQUdsQixVQUFVO0lBQ1YsWUFBWTtJQUNaLE1BQU07RUFDVixzQkFBc0I7STFCcUNwQixXQUFXO0lBQ1gsV0FBWTtJNkM3Q1IsT0FQTztJQWlCUCxRQWhCTztJbkJrQlQsT2NoQ2lCO0lkaUNqQixTQUFT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QkFBNkI7TXFCcEcvQyxVckJnSHNCO01xQjdHcEIsS0FSSTtNQVlKLE9BWE07TXJCMEdWLEtBQUssZUFBZSw2QkFBNkIsMkJBQTJCO1FyQjdDMUUsV0FBVztRQUNYLFdBQVk7UXFCK0NOLE9BQU87TWtCakNYO1FsQjRCSixLQUFLLGVBQWUsNkJBQTZCO1V0QnpHekMsbUJzQmtIbUI7VXRCN0duQixnQnNCNkdtQjtVdEJ4R25CLGVzQndHbUI7VXRCbkduQixjc0JtR21CO1V0QjlGbkIsV3NCOEZtQjtVQUNuQixLQUFLO01rQnRDVDtRbEI0QkosS0FBSyxlQUFlLDZCQUE2QjtVQWV6QyxNQUFNO1VBQ04sT0FBTztVQUFmLEtBQUssZUFBZSw2QkFBNkIsMkJBQTJCO1lyQjNEMUUsV0FBVztZQUNYLFdBQVk7WXFCOERKLE9BQU87TWtCaERiO1FsQjRCSixLQUFLLGVBQWUsNkJBQTZCO1VBd0J6QyxNQUFNO0lrQnBEVjtNbEJ5QkosS0FBSyxlQUFlO1F0QnRHWixtQnNCc0lpQjtRdEJqSWpCLGdCc0JpSWlCO1F0QjVIakIsZXNCNEhpQjtRdEJ2SGpCLGNzQnVIaUI7UXRCbEhqQixXc0JrSGlCO0lrQnpEckI7TWxCeUJKLEtBQUssZUFBZTtRcUJqR2xCLFVyQnFJc0I7UXFCbElwQixLQVJJO1EzQ0FBLG1Cc0IySWlCO1F0QnRJakIsZ0JzQnNJaUI7UXRCaklqQixlc0JpSWlCO1F0QjVIakIsY3NCNEhpQjtRdEJ2SGpCLFdzQnVIaUI7RUFFekIsS0FBSyxlQUFlO0l0QjdJWixvQjZDSlc7STdDU1gsaUI2Q1RXO0k3Q3dCWCxZNkN4Qlc7STdDSVgsZ0JzQmlKWTtJdEI3SFosUXNCNkhZO0lxQjVJbEIsVXJCNklvQjtJcUIxSWxCLEtBUkk7SUFZSixPQVhNO0lBZU4sUUFkTztJQWtCUCxNQWpCSztJckJnSkwsU0FBUztJdEJuSkwsbUJzQnVKZTtJdEJsSmYsZ0JzQmtKZTtJdEI3SWYsZXNCNkllO0l0QnhJZixjc0J3SWU7SXRCbklmLFdzQm1JZTtJa0IxRW5CO01sQmdFSixLQUFLLGVBQWU7UUFhZCxLcUIxSkU7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a0I7UXRCaEJyQixXQUFXO1FBQ1gsV0FBWTtJdUNjVjtNakJDSixLQUFLLGtCQUFrQjtRdEJoQnJCLFdBQVc7UUFDWCxXQUFZO0VzQjRCZCxLQUFLLGtCQUFrQjtJdEI3QnJCLFdBQVc7SUFDWCxXQUFZO0lzQmlDVixhQUFhO0lpQm5CYjtNakJjSixLQUFLLGtCQUFrQjtRdEI3QnJCLFdBQVc7UUFDWCxXQUFZO0l1Q2NWO01qQmNKLEtBQUssa0JBQWtCO1F0QjdCckIsV0FBVztRQUNYLFdBQVk7RXNCMENkLEtBQUssa0JBQWtCO0lBR25CLGFBQWE7SXRCOUNmLFdBQVc7SUFDWCxXQUFZO0l1Q2NWO01qQjRCSixLQUFLLGtCQUFrQjtRdEIzQ3JCLFdBQVc7UUFDWCxXQUFZO0l1Q2NWO01qQjRCSixLQUFLLGtCQUFrQjtRdEIzQ3JCLFdBQVc7UUFDWCxXQUFZO0VzQjJEZCxLQUFLLGtCQUFrQjtJdkIxSGYsb0I2Q0pXO0k3Q1NYLGlCNkNUVztJN0N3QlgsWTZDeEJXO0k3Q0lYLGdCdUI4SFk7SXZCMUdaLFF1QjBHWTtJb0J6SGxCLFVwQjBIb0I7SW9CdkhsQixLQVJJO0lBWUosT0FYTTtJQWVOLFFBZE87SUFrQlAsTUFqQks7SXBCNkhMLFNBQVM7SXZCaElMLG1CdUJvSWU7SXZCL0hmLGdCdUIrSGU7SXZCMUhmLGV1QjBIZTtJdkJySGYsY3VCcUhlO0l2QmhIZixXdUJnSGU7SWlCdkRuQjtNakI2Q0osS0FBSyxrQkFBa0I7UUFhakIsS29CdklFO1FwQndJRixRb0J0SUs7RXBCd0lYLEtBQUssa0JBQWtCO0l2QjFJZixvQjZDSlc7STdDU1gsaUI2Q1RXO0k3Q3dCWCxZNkN4Qlc7STdDSVgsZ0J1QjhJWTtJdkIxSFosUXVCMEhZO0lvQnpJbEIsVXBCMElvQjtJb0J2SWxCLEtBUkk7SUFZSixPQVhNO0lBZU4sUUFkTztJQWtCUCxNQWpCSztJcEI2SUwsU0FBUztFQUtiLEtBQUssa0JBQWtCO0lvQmhKckIsVXBCbUpvQjtJb0JoSmxCLEtBUkk7SUFvQkosTUFqQks7RXBCc0pULEtBQUssa0JBQWtCO0lvQnBK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Qm9ZcUI7VXZCL1hyQixnQnVCK1hxQjtVdkIxWHJCLGV1QjBYcUI7VXZCclhyQixjdUJxWHFCO1V2QmhYckIsV3VCZ1hxQjtNQUU3QixLQUFLLGtCQUFrQixtQ0FBbUMsMkNBQTJDO1FBRzdGLFlBQVk7TUFDcEIsS0FBSyxrQkFBa0IsbUNBQW1DLDJDQUEyQztRQUk3RixZQUFZO1F0QmhWbEIsV0FBVztRQUNYLFdBQVk7RXNCcVZkLEtBQUssaUJBQWlCLFdBQVc7SXZCcFp6Qiw4QnVFNEJxQjtJdkV2QnJCLDJCdUV1QnFCO0l2RVJyQixzQnVFUXFCO0VoRG9ZN0IsS0FBSyxpQkFBaUIsV0FBVztJQUUzQixTQUFTIiwiZmlsZSI6Im1haW4uY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGlmICRib3JkZXItYm94LXNpemluZyA9PSB0cnVlIHtcbiAgaHRtbCB7IC8vIGh0dHA6Ly9iaXQubHkvMXFrMnRWUlxuICAgIEBpbmNsdWRlIGJveC1zaXppbmcoYm9yZGVyLWJveCk7XG4gIH1cblxuICAqIHtcbiAgICAmLCAmOmJlZm9yZSwgJjphZnRlciB7XG4gICAgICBAaW5jbHVkZSBib3gtc2l6aW5nKGluaGVyaXQpO1xuICAgIH1cbiAgfVxufVxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gRXhhbXBsZTogQGluY2x1ZGUgcHJlZml4ZXIoYm9yZGVyLXJhZGl1cywgJHJhZGlpLCB3ZWJraXQgbXMgc3BlYyk7XG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyBWYXJpYWJsZXMgbG9jYXRlZCBpbiAvc2V0dGluZ3MvX3ByZWZpeGVyLnNjc3NcblxuQG1peGluIHByZWZpeGVyICgkcHJvcGVydHksICR2YWx1ZSwgJHByZWZpeGVzKSB7XG4gIEBlYWNoICRwcmVmaXggaW4gJHByZWZpeGVzIHtcbiAgICBAaWYgJHByZWZpeCA9PSB3ZWJraXQge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLXdlYmtpdCB7XG4gICAgICAgIC13ZWJraXQtI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIGlmICRwcmVmaXggPT0gbW96IHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci1tb3ppbGxhIHtcbiAgICAgICAgLW1vei0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2UgaWYgJHByZWZpeCA9PSBtcyB7XG4gICAgICBAaWYgJHByZWZpeC1mb3ItbWljcm9zb2Z0IHtcbiAgICAgICAgLW1zLSN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSBpZiAkcHJlZml4ID09IG8ge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLW9wZXJhIHtcbiAgICAgICAgLW8tI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIGlmICRwcmVmaXggPT0gc3BlYyB7XG4gICAgICBAaWYgJHByZWZpeC1mb3Itc3BlYyB7XG4gICAgICAgICN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSAge1xuICAgICAgQHdhcm4gXCJVbnJlY29nbml6ZWQgcHJlZml4OiAjeyRwcmVmaXh9XCI7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBkaXNhYmxlLXByZWZpeC1mb3ItYWxsKCkge1xuICAkcHJlZml4LWZvci13ZWJraXQ6ICAgIGZhbHNlO1xuICAkcHJlZml4LWZvci1tb3ppbGxhOiAgIGZhbHNlO1xuICAkcHJlZml4LWZvci1taWNyb3NvZnQ6IGZhbHNlO1xuICAkcHJlZml4LWZvci1vcGVyYTogICAgIGZhbHNlO1xuICAkcHJlZml4LWZvci1zcGVjOiAgICAgIGZhbHNlO1xufVxuIiwiJWNsZWFyZml4IHtcbiAgKnpvb206IDE7XG4gICY6YmVmb3JlLCAmOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIiBcIjtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgfVxuICAmOmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgfVxufVxuXG5AZnVuY3Rpb24gc3RyaXAtdW5pdCgkbnVtKSB7XG4gIEByZXR1cm4gJG51bSAvICgkbnVtICogMCArIDEpO1xufVxuXG5AZnVuY3Rpb24gcHh0b2VtKCR0YXJnZXQsICRjb250ZXh0KXtcbiAgICBAcmV0dXJuICgkdGFyZ2V0LyRjb250ZXh0KSswZW07XG59XG5cbi8vIENvbnZlcnQgZW0gdG8gcHhcbkBmdW5jdGlvbiBlbXRvcHgoJHRhcmdldCwgJGNvbnRleHQpe1xuICAgIEByZXR1cm4gKCR0YXJnZXQqJGNvbnRleHQpKzBweDtcbn1cblxuQG1peGluIGhpZGUtdGV4dCB7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgZm9udDogMC8wIGE7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuXG5AbWl4aW4gaWNvbi1idXR0b24ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiBub25lO1xuICAmOmJlZm9yZXtcbiAgICBsaW5lLWhlaWdodDogMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG59XG5cbi8vIEBtaXhpbiB0cmFuc2l0aW9uKCR0cmFuc2l0aW9uLXByb3BlcnR5LCAkdHJhbnNpdGlvbi10aW1lLCAkbWV0aG9kKSB7XG4vLyAgIC13ZWJraXQtdHJhbnNpdGlvbjogJHRyYW5zaXRpb24tcHJvcGVydHkgJHRyYW5zaXRpb24tdGltZSAkbWV0aG9kO1xuLy8gICAtbW96LXRyYW5zaXRpb246ICR0cmFuc2l0aW9uLXByb3BlcnR5ICR0cmFuc2l0aW9uLXRpbWUgJG1ldGhvZDtcbi8vICAgLW1zLXRyYW5zaXRpb246ICR0cmFuc2l0aW9uLXByb3BlcnR5ICR0cmFuc2l0aW9uLXRpbWUgJG1ldGhvZDtcbi8vICAgLW8tdHJhbnNpdGlvbjogJHRyYW5zaXRpb24tcHJvcGVydHkgJHRyYW5zaXRpb24tdGltZSAkbWV0aG9kO1xuLy8gICB0cmFuc2l0aW9uOiAkdHJhbnNpdGlvbi1wcm9wZXJ0eSAkdHJhbnNpdGlvbi10aW1lICRtZXRob2Q7XG4vLyB9XG5cbkBtaXhpbiBib3JkZXItcmFkaXVzKCRyYWRpdXMpe1xuICBAaW5jbHVkZSBib3JkZXItdG9wLXJhZGl1cygkcmFkaXVzKTtcbiAgQGluY2x1ZGUgYm9yZGVyLWJvdHRvbS1yYWRpdXMoJHJhZGl1cyk7XG4gIEBpbmNsdWRlIGJvcmRlci1sZWZ0LXJhZGl1cygkcmFkaXVzKTtcbiAgQGluY2x1ZGUgYm9yZGVyLXJpZ2h0LXJhZGl1cygkcmFkaXVzKTtcbn1cblxuQG1peGluIG9wYWNpdHkoJG9wYWNpdHkpIHtcbiAgZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYSgjeyRvcGFjaXR5fSAqIDEwMCk7XG4gIG9wYWNpdHk6ICRvcGFjaXR5O1xufVxuXG4vLyBGb250IGZvcm1hdHRpbmcgbWl4aW4gdXRpbGl0eVxuQG1peGluIGZvbnRmb3JtYXQoJGZhbWlseSwkc2l6ZTogaW5oZXJpdCwkbWFyZ2luOjAsJHBhZGRpbmc6MCwkY29sb3I6XCJcIiwkbGluZWhlaWdodDoxLCR3ZWlnaHQ6bm9ybWFsKXtcbiAgZm9udC1mYW1pbHk6ICRmYW1pbHk7XG4gIGZvbnQtc2l6ZTogJHNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkd2VpZ2h0O1xuICBtYXJnaW46ICRtYXJnaW47XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICBsaW5lLWhlaWdodDogJGxpbmVoZWlnaHQ7XG4gIGNvbG9yOiAjeyRjb2xvcn07XG59XG5cbkBtaXhpbiBmb250LXNpemUoJHNpemVWYWx1ZSl7XG4gIGZvbnQtc2l6ZTogJHNpemVWYWx1ZSAqIDFweDtcbiAgZm9udC1zaXplOiAoJHNpemVWYWx1ZSAvIDEwKSAqIDFyZW07XG59XG5cbi8vIHVzYWdlOiBAaW5jbHVkZSByZW0tZmFsbGJhY2sobWFyZ2luLCAxMCwgMjAsIDMwLCA0MCk7XG4vLyAgICByZXN1bHRzOiBcbi8vICAgIG1hcmdpbjogMTYwcHggMzIwcHggNDgwcHggNjQwcHg7XG4vLyAgICBtYXJnaW46IDEwcmVtIDIwcmVtIDMwcmVtIDQwcmVtOyBcbkBtaXhpbiByZW0tZmFsbGJhY2soJHByb3BlcnR5LCAkdmFsdWVzLi4uKSB7XG4gICRtYXg6IGxlbmd0aCgkdmFsdWVzKTtcbiAgJHB4VmFsdWVzOiAnJztcbiAgJHJlbVZhbHVlczogJyc7XG5cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbWF4IHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQobnRoKCR2YWx1ZXMsICRpKSk7XG4gICAgJHB4VmFsdWVzOiAjeyRweFZhbHVlcyArICR2YWx1ZSoxMH1weDtcblxuICAgIEBpZiAkaSA8ICRtYXgge1xuICAgICAgJHB4VmFsdWVzOiAjeyRweFZhbHVlcyArIFwiIFwifTtcbiAgICB9XG4gIH1cblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRtYXgge1xuICAgICR2YWx1ZTogc3RyaXAtdW5pdChudGgoJHZhbHVlcywgJGkpKTtcbiAgICAkcmVtVmFsdWVzOiAjeyRyZW1WYWx1ZXMgKyAkdmFsdWV9cmVtO1xuXG4gICAgQGlmICRpIDwgJG1heCB7XG4gICAgICAkcmVtVmFsdWVzOiAjeyRyZW1WYWx1ZXMgKyBcIiBcIn07XG4gICAgfVxuICB9XG4gIFxuICAjeyRwcm9wZXJ0eX06ICRweFZhbHVlczsgXG4gICN7JHByb3BlcnR5fTogJHJlbVZhbHVlczsgXG59XG5cbkBtaXhpbiBzcHJpdGUtYmFja2dyb3VuZC1zaXplKCRzcHJpdGUpIHtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IG50aCgkc3ByaXRlLCA3KSBudGgoJHNwcml0ZSwgOCk7XG59XG5cbkBtaXhpbiBzcHJpdGUtcmV0aW5hKCRzcHJpdGUsICRzcHJpdGUyeCkge1xuICAgIEBpbmNsdWRlIHNwcml0ZSgkc3ByaXRlKTtcblxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMS41KSwgc2NyZWVuIGFuZCAobWluLWRldmljZS1waXhlbC1yYXRpbzogMS41KSB7XG4gICAgICAgIEBpbmNsdWRlIHNwcml0ZS1pbWFnZSgkc3ByaXRlMngpO1xuICAgICAgICBAaW5jbHVkZSBzcHJpdGUtYmFja2dyb3VuZC1zaXplKCRzcHJpdGUpO1xuICAgIH1cbn1cblxuQG1peGluIHNwcml0ZS1wb3NpdGlvbi1ub3JtYWwoJHNwcml0ZSkge1xuICAkc3ByaXRlLW9mZnNldC14OiBudGgoJHNwcml0ZSwgMykgLyAyO1xuICAkc3ByaXRlLW9mZnNldC15OiBudGgoJHNwcml0ZSwgNCkgLyAyO1xuICAkc3ByaXRlLXc6IG50aCgkc3ByaXRlLDcpIC8gMjtcbiAgJHNwcml0ZS1oOiBudGgoJHNwcml0ZSwgOCkgLyAyO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAkc3ByaXRlLW9mZnNldC14ICAkc3ByaXRlLW9mZnNldC15O1xuICBiYWNrZ3JvdW5kLXNpemU6ICRzcHJpdGUtdyAgJHNwcml0ZS1oO1xufVxuXG5AbWl4aW4gc3ByaXRlLXdpZHRoLW5vcm1hbCgkc3ByaXRlKSB7XG4gIHdpZHRoOiBudGgoJHNwcml0ZSwgNSkgLyAyO1xufVxuXG5AbWl4aW4gc3ByaXRlLWhlaWdodC1ub3JtYWwoJHNwcml0ZSkge1xuICBoZWlnaHQ6IG50aCgkc3ByaXRlLCA2KSAvIDI7XG59XG5cbkBtaXhpbiBzcHJpdGUtaW1hZ2Utd2lkdGgtbm9ybWFsKCRzcHJpdGUpIHtcbiAgd2lkdGg6IG50aCgkc3ByaXRlLCA3KSAvIDI7XG59XG5cbkBtaXhpbiBzcHJpdGUtaW1hZ2UtaGVpZ2h0LW5vcm1hbCgkc3ByaXRlKSB7XG4gIGhlaWdodDogbnRoKCRzcHJpdGUsIDgpIC8gMjtcbn1cblxuQG1peGluIHNwcml0ZS1zaXplLW5vcm1hbCgkc3ByaXRlKSB7XG4gIGhlaWdodDogbnRoKCRzcHJpdGUsIDYpIC8gMjtcbn1cblxuQG1peGluIHNwcml0ZS1hbmQtcmV0aW5hKCRzcHJpdGUpIHtcbiAgQGluY2x1ZGUgc3ByaXRlLWltYWdlKCRzcHJpdGUpO1xuICBAaW5jbHVkZSBzcHJpdGUtcG9zaXRpb24tbm9ybWFsKCRzcHJpdGUpO1xuICBAaW5jbHVkZSBzcHJpdGUtd2lkdGgtbm9ybWFsKCRzcHJpdGUpO1xuICBAaW5jbHVkZSBzcHJpdGUtaGVpZ2h0LW5vcm1hbCgkc3ByaXRlKTtcblxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDEuNSksIHNjcmVlbiBhbmQgKG1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDEuNSkge1xuICAgICAgLy8gQGluY2x1ZGUgc3ByaXRlKCRzcHJpdGUpO1xuICAgICAgLy8gQGluY2x1ZGUgc3ByaXRlLWJhY2tncm91bmQtc2l6ZSgkc3ByaXRlKTtcbiAgfVxufVxuXG4vL2JhY2tncm91bmQgcG9zaXRpb25cbkBtaXhpbiBiZ3BvcygkdXJsLCRyZXBlYXQ6bm8tcmVwZWF0LCRjb2xvcjp0cmFuc3BhcmVudCwkcG9zOmNlbnRlcil7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgkdXJsKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6ICRyZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogJHBvcztcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogJHBvcztcbn1cblxuQG1peGluIHJnYmEoJGNvbG9yLCAkYWxwaGEpIHtcbiAgJHJnYmE6IHJnYmEoJGNvbG9yLCAkYWxwaGEpO1xuICAkaWUtaGV4LXN0cjogaWUtaGV4LXN0cigkcmdiYSk7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmdiYTtcbiAgZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPSN7JGllLWhleC1zdHJ9LGVuZENvbG9yc3RyPSN7JGllLWhleC1zdHJ9KTtcbiAgem9vbTogMTtcbn1cblxuQG1peGluIGJyZWFrcG9pbnQtc2luZ2xlKCRwb2ludCkge1xuICBAaWYgJHBvaW50ID09IG1vYmlsZXNtYWxsIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxufVxuXG5AbWl4aW4gYnJlYWtwb2ludCgkcG9pbnQpIHtcbiAgQGlmICRwb2ludCA9PSBkZXNrdG9wLWxhcmdlIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogMTQwMHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJHBvaW50ID09IGRlc2t0b3Age1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiA5NjFweCkgYW5kIChtYXgtd2lkdGg6IDEzOTlweCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRwb2ludCA9PSB0YWJsZXQge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkgYW5kIChtaW4td2lkdGg6IDc2OXB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJHBvaW50ID09IG1vYmlsZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KXsgQGNvbnRlbnQ7IH1cbiAgfVxufSBcblxuQG1peGluIGlmLXJldGluYSgpIHtcbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjUpLCBzY3JlZW4gYW5kIChtaW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjUpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuIiwiLyohIG5vcm1hbGl6ZS5jc3MgdjMuMC4wIHwgTUlUIExpY2Vuc2UgfCBnaXQuaW8vbm9ybWFsaXplICovXG5cbi8qKlxuICogMS4gU2V0IGRlZmF1bHQgZm9udCBmYW1pbHkgdG8gc2Fucy1zZXJpZi5cbiAqIDIuIFByZXZlbnQgaU9TIHRleHQgc2l6ZSBhZGp1c3QgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlLCB3aXRob3V0IGRpc2FibGluZ1xuICogICAgdXNlciB6b29tLlxuICovXG5cbmh0bWwge1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjsgLyogMSAqL1xuICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgZGVmYXVsdCBtYXJnaW4uXG4gKi9cblxuYm9keSB7XG4gIG1hcmdpbjogMDtcbn1cblxuLyogSFRNTDUgZGlzcGxheSBkZWZpbml0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBpbiBJRSA4LzkuXG4gKi9cblxuYXJ0aWNsZSxcbmFzaWRlLFxuZGV0YWlscyxcbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5mb290ZXIsXG5oZWFkZXIsXG5oZ3JvdXAsXG5tYWluLFxubmF2LFxuc2VjdGlvbixcbnN1bW1hcnkge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGBpbmxpbmUtYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgaW4gSUUgOC85LlxuICogMi4gTm9ybWFsaXplIHZlcnRpY2FsIGFsaWdubWVudCBvZiBgcHJvZ3Jlc3NgIGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICovXG5cbmF1ZGlvLFxuY2FudmFzLFxucHJvZ3Jlc3MsXG52aWRlbyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgLyogMSAqL1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBQcmV2ZW50IG1vZGVybiBicm93c2VycyBmcm9tIGRpc3BsYXlpbmcgYGF1ZGlvYCB3aXRob3V0IGNvbnRyb2xzLlxuICogUmVtb3ZlIGV4Y2VzcyBoZWlnaHQgaW4gaU9TIDUgZGV2aWNlcy5cbiAqL1xuXG5hdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICBkaXNwbGF5OiBub25lO1xuICBoZWlnaHQ6IDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBgW2hpZGRlbl1gIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LlxuICogSGlkZSB0aGUgYHRlbXBsYXRlYCBlbGVtZW50IGluIElFLCBTYWZhcmksIGFuZCBGaXJlZm94IDwgMjIuXG4gKi9cblxuW2hpZGRlbl0sXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIExpbmtzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIGNvbG9yIGZyb20gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICovXG5cbmEge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cblxuLyoqXG4gKiBJbXByb3ZlIHJlYWRhYmlsaXR5IHdoZW4gZm9jdXNlZCBhbmQgYWxzbyBtb3VzZSBob3ZlcmVkIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5hOmFjdGl2ZSxcbmE6aG92ZXIge1xuICBvdXRsaW5lOiAwO1xufVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LCBTYWZhcmkgNSwgYW5kIENocm9tZS5cbiAqL1xuXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQ7XG59XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsZSBzZXQgdG8gYGJvbGRlcmAgaW4gRmlyZWZveCA0KywgU2FmYXJpIDUsIGFuZCBDaHJvbWUuXG4gKi9cblxuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBTYWZhcmkgNSBhbmQgQ2hyb21lLlxuICovXG5cbmRmbiB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHZhcmlhYmxlIGBoMWAgZm9udC1zaXplIGFuZCBtYXJnaW4gd2l0aGluIGBzZWN0aW9uYCBhbmQgYGFydGljbGVgXG4gKiBjb250ZXh0cyBpbiBGaXJlZm94IDQrLCBTYWZhcmkgNSwgYW5kIENocm9tZS5cbiAqL1xuXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkuXG4gKi9cblxubWFyayB7XG4gIGJhY2tncm91bmQ6ICNmZjA7XG4gIGNvbG9yOiAjMDAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGFuZCB2YXJpYWJsZSBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5cbi8qKlxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgYWZmZWN0aW5nIGBsaW5lLWhlaWdodGAgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtO1xufVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07XG59XG5cbi8qIEVtYmVkZGVkIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIGJvcmRlciB3aGVuIGluc2lkZSBgYWAgZWxlbWVudCBpbiBJRSA4LzkuXG4gKi9cblxuaW1nIHtcbiAgYm9yZGVyOiAwO1xufVxuXG4vKipcbiAqIENvcnJlY3Qgb3ZlcmZsb3cgZGlzcGxheWVkIG9kZGx5IGluIElFIDkuXG4gKi9cblxuc3ZnOm5vdCg6cm9vdCkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vKiBHcm91cGluZyBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZHJlc3MgbWFyZ2luIG5vdCBwcmVzZW50IGluIElFIDgvOSBhbmQgU2FmYXJpIDUuXG4gKi9cblxuZmlndXJlIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgZGlmZmVyZW5jZXMgYmV0d2VlbiBGaXJlZm94IGFuZCBvdGhlciBicm93c2Vycy5cbiAqL1xuXG5ociB7XG4gIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBoZWlnaHQ6IDA7XG59XG5cbi8qKlxuICogQ29udGFpbiBvdmVyZmxvdyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxucHJlIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qKlxuICogQWRkcmVzcyBvZGQgYGVtYC11bml0IGZvbnQgc2l6ZSByZW5kZXJpbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmNvZGUsXG5rYmQsXG5wcmUsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDFlbTtcbn1cblxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogS25vd24gbGltaXRhdGlvbjogYnkgZGVmYXVsdCwgQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWCBhbGxvdyB2ZXJ5IGxpbWl0ZWRcbiAqIHN0eWxpbmcgb2YgYHNlbGVjdGAsIHVubGVzcyBhIGBib3JkZXJgIHByb3BlcnR5IGlzIHNldC5cbiAqL1xuXG4vKipcbiAqIDEuIENvcnJlY3QgY29sb3Igbm90IGJlaW5nIGluaGVyaXRlZC5cbiAqICAgIEtub3duIGlzc3VlOiBhZmZlY3RzIGNvbG9yIG9mIGRpc2FibGVkIGVsZW1lbnRzLlxuICogMi4gQ29ycmVjdCBmb250IHByb3BlcnRpZXMgbm90IGJlaW5nIGluaGVyaXRlZC5cbiAqIDMuIEFkZHJlc3MgbWFyZ2lucyBzZXQgZGlmZmVyZW50bHkgaW4gRmlyZWZveCA0KywgU2FmYXJpIDUsIGFuZCBDaHJvbWUuXG4gKi9cblxuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgY29sb3I6IGluaGVyaXQ7IC8qIDEgKi9cbiAgZm9udDogaW5oZXJpdDsgLyogMiAqL1xuICBtYXJnaW46IDA7IC8qIDMgKi9cbn1cblxuLyoqXG4gKiBBZGRyZXNzIGBvdmVyZmxvd2Agc2V0IHRvIGBoaWRkZW5gIGluIElFIDgvOS8xMC5cbiAqL1xuXG5idXR0b24ge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGluY29uc2lzdGVudCBgdGV4dC10cmFuc2Zvcm1gIGluaGVyaXRhbmNlIGZvciBgYnV0dG9uYCBhbmQgYHNlbGVjdGAuXG4gKiBBbGwgb3RoZXIgZm9ybSBjb250cm9sIGVsZW1lbnRzIGRvIG5vdCBpbmhlcml0IGB0ZXh0LXRyYW5zZm9ybWAgdmFsdWVzLlxuICogQ29ycmVjdCBgYnV0dG9uYCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LCBJRSA4KywgYW5kIE9wZXJhXG4gKiBDb3JyZWN0IGBzZWxlY3RgIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3guXG4gKi9cblxuYnV0dG9uLFxuc2VsZWN0IHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8qKlxuICogMS4gQXZvaWQgdGhlIFdlYktpdCBidWcgaW4gQW5kcm9pZCA0LjAuKiB3aGVyZSAoMikgZGVzdHJveXMgbmF0aXZlIGBhdWRpb2BcbiAqICAgIGFuZCBgdmlkZW9gIGNvbnRyb2xzLlxuICogMi4gQ29ycmVjdCBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIGBpbnB1dGAgdHlwZXMgaW4gaU9TLlxuICogMy4gSW1wcm92ZSB1c2FiaWxpdHkgYW5kIGNvbnNpc3RlbmN5IG9mIGN1cnNvciBzdHlsZSBiZXR3ZWVuIGltYWdlLXR5cGVcbiAqICAgIGBpbnB1dGAgYW5kIG90aGVycy5cbiAqL1xuXG5idXR0b24sXG5odG1sIGlucHV0W3R5cGU9XCJidXR0b25cIl0sIC8qIDEgKi9cbmlucHV0W3R5cGU9XCJyZXNldFwiXSxcbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMiAqL1xuICBjdXJzb3I6IHBvaW50ZXI7IC8qIDMgKi9cbn1cblxuLyoqXG4gKiBSZS1zZXQgZGVmYXVsdCBjdXJzb3IgZm9yIGRpc2FibGVkIGVsZW1lbnRzLlxuICovXG5cbmJ1dHRvbltkaXNhYmxlZF0sXG5odG1sIGlucHV0W2Rpc2FibGVkXSB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLyoqXG4gKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgYm9yZGVyIGluIEZpcmVmb3ggNCsuXG4gKi9cblxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBGaXJlZm94IDQrIHNldHRpbmcgYGxpbmUtaGVpZ2h0YCBvbiBgaW5wdXRgIHVzaW5nIGAhaW1wb3J0YW50YCBpblxuICogdGhlIFVBIHN0eWxlc2hlZXQuXG4gKi9cblxuaW5wdXQge1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xufVxuXG4vKipcbiAqIEl0J3MgcmVjb21tZW5kZWQgdGhhdCB5b3UgZG9uJ3QgYXR0ZW1wdCB0byBzdHlsZSB0aGVzZSBlbGVtZW50cy5cbiAqIEZpcmVmb3gncyBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0IHJlc3BlY3QgYm94LXNpemluZywgcGFkZGluZywgb3Igd2lkdGguXG4gKlxuICogMS4gQWRkcmVzcyBib3ggc2l6aW5nIHNldCB0byBgY29udGVudC1ib3hgIGluIElFIDgvOS8xMC5cbiAqIDIuIFJlbW92ZSBleGNlc3MgcGFkZGluZyBpbiBJRSA4LzkvMTAuXG4gKi9cblxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogRml4IHRoZSBjdXJzb3Igc3R5bGUgZm9yIENocm9tZSdzIGluY3JlbWVudC9kZWNyZW1lbnQgYnV0dG9ucy4gRm9yIGNlcnRhaW5cbiAqIGBmb250LXNpemVgIHZhbHVlcyBvZiB0aGUgYGlucHV0YCwgaXQgY2F1c2VzIHRoZSBjdXJzb3Igc3R5bGUgb2YgdGhlXG4gKiBkZWNyZW1lbnQgYnV0dG9uIHRvIGNoYW5nZSBmcm9tIGBkZWZhdWx0YCB0byBgdGV4dGAuXG4gKi9cblxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi8qKlxuICogMS4gQWRkcmVzcyBgYXBwZWFyYW5jZWAgc2V0IHRvIGBzZWFyY2hmaWVsZGAgaW4gU2FmYXJpIDUgYW5kIENocm9tZS5cbiAqIDIuIEFkZHJlc3MgYGJveC1zaXppbmdgIHNldCB0byBgYm9yZGVyLWJveGAgaW4gU2FmYXJpIDUgYW5kIENocm9tZVxuICogICAgKGluY2x1ZGUgYC1tb3pgIHRvIGZ1dHVyZS1wcm9vZikuXG4gKi9cblxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiAxICovXG4gIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIC13ZWJraXQtYm94LXNpemluZzogY29udGVudC1ib3g7IC8qIDIgKi9cbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG59XG5cbi8qKlxuICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIHNlYXJjaCBjYW5jZWwgYnV0dG9uIGluIFNhZmFyaSBhbmQgQ2hyb21lIG9uIE9TIFguXG4gKiBTYWZhcmkgKGJ1dCBub3QgQ2hyb21lKSBjbGlwcyB0aGUgY2FuY2VsIGJ1dHRvbiB3aGVuIHRoZSBzZWFyY2ggaW5wdXQgaGFzXG4gKiBwYWRkaW5nIChhbmQgYHRleHRmaWVsZGAgYXBwZWFyYW5jZSkuXG4gKi9cblxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi8qKlxuICogRGVmaW5lIGNvbnNpc3RlbnQgYm9yZGVyLCBtYXJnaW4sIGFuZCBwYWRkaW5nLlxuICovXG5cbmZpZWxkc2V0IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDtcbiAgbWFyZ2luOiAwIDJweDtcbiAgcGFkZGluZzogMC4zNWVtIDAuNjI1ZW0gMC43NWVtO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgYGNvbG9yYCBub3QgYmVpbmcgaW5oZXJpdGVkIGluIElFIDgvOS5cbiAqIDIuIFJlbW92ZSBwYWRkaW5nIHNvIHBlb3BsZSBhcmVuJ3QgY2F1Z2h0IG91dCBpZiB0aGV5IHplcm8gb3V0IGZpZWxkc2V0cy5cbiAqL1xuXG5sZWdlbmQge1xuICBib3JkZXI6IDA7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSA4LzkuXG4gKi9cblxudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiBEb24ndCBpbmhlcml0IHRoZSBgZm9udC13ZWlnaHRgIChhcHBsaWVkIGJ5IGEgcnVsZSBhYm92ZSkuXG4gKiBOT1RFOiB0aGUgZGVmYXVsdCBjYW5ub3Qgc2FmZWx5IGJlIGNoYW5nZWQgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWC5cbiAqL1xuXG5vcHRncm91cCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vKiBUYWJsZXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIG1vc3Qgc3BhY2luZyBiZXR3ZWVuIHRhYmxlIGNlbGxzLlxuICovXG5cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7XG59XG5cbnRkLFxudGgge1xuICBwYWRkaW5nOiAwO1xufVxuIiwiXG4vKkBpbXBvcnQgdXJsKFwiaHR0cDovL2Zhc3QuZm9udHMubmV0L3QvMS5jc3M/YXBpVHlwZT1jc3MmcHJvamVjdGlkPTAwYzJmMzY5LWFjYWUtNGY4NC05MDdhLTdlYWMyMjJiMTA5YlwiKTsqL1xuQGZvbnQtZmFjZXtcbiAgZm9udC1mYW1pbHk6XCJIZWx2ZXRpY2FOZXVlVzAxLVRoaW5cIjtcbiAgc3JjOnVybChcIi4uL2ZvbnRzLzU2YmU4NGRlLTlkNjAtNDA4OS04ZGYwLTBlYTZlYzc4NmI4NC5lb3Q/I2llZml4XCIpO1xuICBzcmM6dXJsKFwiLi4vZm9udHMvNTZiZTg0ZGUtOWQ2MC00MDg5LThkZjAtMGVhNmVjNzg2Yjg0LmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW90XCIpLHVybChcIi4uL2ZvbnRzLzUwZDM1YmJjLWRmZDQtNDhmMS1hZjE2LWNmMDU4ZjY5NDIxZC53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksdXJsKFwiLi4vZm9udHMvMjc4YmVmNTktNmJlMS00ODAwLWI1YWMtMWY3NjlhYjQ3NDMwLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSx1cmwoXCIuLi9mb250cy8yZTMwOWIxYi0wOGI4LTQ3N2YtYmM5ZS03MDY3Y2YwYWYwYjMuc3ZnIzJlMzA5YjFiLTA4YjgtNDc3Zi1iYzllLTcwNjdjZjBhZjBiM1wiKSBmb3JtYXQoXCJzdmdcIik7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbkBmb250LWZhY2V7XG4gIGZvbnQtZmFtaWx5OlwiSGVsdmV0aWNhTmV1ZVcwMS1UaGluSXRcIjtcbiAgc3JjOnVybChcIi4uL2ZvbnRzLzFjYzA2M2I2LTdlN2ItNDg4MC05OTA1LTBkM2Q0ZjljN2M3ZC5lb3Q/I2llZml4XCIpO1xuICBzcmM6dXJsKFwiLi4vZm9udHMvMWNjMDYzYjYtN2U3Yi00ODgwLTk5MDUtMGQzZDRmOWM3YzdkLmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW90XCIpLHVybChcIi4uL2ZvbnRzL2I2ZDYzY2I3LTY0YjUtNGQzOS1iZWFmLWE4ZDlmZTVlYjFkZi53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksdXJsKFwiLi4vZm9udHMvMjg0YWQ3NzctMDAyMi00MmEzLTkxOTctYzQ0OTQ1N2M2NzBhLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSx1cmwoXCIuLi9mb250cy8yMDJiNjM1My1mZmZmLTQ1YjEtOWExYS04OTQ5NzMyM2Q3ZWQuc3ZnIzIwMmI2MzUzLWZmZmYtNDViMS05YTFhLTg5NDk3MzIzZDdlZFwiKSBmb3JtYXQoXCJzdmdcIik7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbkBmb250LWZhY2V7XG4gIGZvbnQtZmFtaWx5OlwiSGVsdmV0aWNhTmV1ZVcwMS00NUxpZ2hcIjtcbiAgc3JjOnVybChcIi4uL2ZvbnRzL2FlMTY1NmFhLTVmOGYtNDkwNS1hZWQwLTkzZTY2N2JkNmU0YS5lb3Q/I2llZml4XCIpO1xuICBzcmM6dXJsKFwiLi4vZm9udHMvYWUxNjU2YWEtNWY4Zi00OTA1LWFlZDAtOTNlNjY3YmQ2ZTRhLmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW90XCIpLHVybChcIi4uL2ZvbnRzLzUzMGRlZTIyLWUzYzEtNGU5Zi1iZjYyLWMzMWQ1MTBkOTY1Ni53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksdXJsKFwiLi4vZm9udHMvNjg4YWI3MmItNGRlYi00ZTE1LWEwODgtODkxNjY5NzhkNDY5LnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSx1cmwoXCIuLi9mb250cy83ODE2ZjcyZi1mNDdlLTQ3MTUtOGNkNy05NjBlMzcyMzg0NmEuc3ZnIzc4MTZmNzJmLWY0N2UtNDcxNS04Y2Q3LTk2MGUzNzIzODQ2YVwiKSBmb3JtYXQoXCJzdmdcIik7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbkBmb250LWZhY2V7XG4gIGZvbnQtZmFtaWx5OlwiSGVsdmV0aWNhTmV1ZVcwMS00NkxpZ2hcIjtcbiAgc3JjOnVybChcIi4uL2ZvbnRzL2E0ZjlmMzE5LWRlYzktNGFmYy04YjUwLWUxOGNjMWI2MWNiNC5lb3Q/I2llZml4XCIpO1xuICBzcmM6dXJsKFwiLi4vZm9udHMvYTRmOWYzMTktZGVjOS00YWZjLThiNTAtZTE4Y2MxYjYxY2I0LmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW90XCIpLHVybChcIi4uL2ZvbnRzLzhlOWVlMDJiLWYzMzctNGYxMy1hZDZjLTk2OWQ2ZDY1MzZjOC53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksdXJsKFwiLi4vZm9udHMvYmVkZGJiYzYtMjAzZS00ZjM2LTg5NjAtM2Y1Y2EyMmFmNTY3LnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSx1cmwoXCIuLi9mb250cy9hZjE3NzQzNi1kOWU4LTQ0ZTgtOWM5Yy1lZjJkOTQ1ZjIwYTMuc3ZnI2FmMTc3NDM2LWQ5ZTgtNDRlOC05YzljLWVmMmQ5NDVmMjBhM1wiKSBmb3JtYXQoXCJzdmdcIik7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbkBmb250LWZhY2V7XG4gIGZvbnQtZmFtaWx5OlwiSGVsdmV0aWNhTmV1ZVcwMS01NVJvbWFcIjtcbiAgc3JjOnVybChcIi4uL2ZvbnRzL2I3NjkzYTgzLWI4NjEtNGFhNi04NWUwLTllY2Y2NzZiYzRkNi5lb3Q/I2llZml4XCIpO1xuICBzcmM6dXJsKFwiLi4vZm9udHMvYjc2OTNhODMtYjg2MS00YWE2LTg1ZTAtOWVjZjY3NmJjNGQ2LmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW90XCIpLHVybChcIi4uL2ZvbnRzL2JjZjU0MzQzLWQwMzMtNDFlZS1iYmQ3LTJiNzdkZjNmZTdiYS53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksdXJsKFwiLi4vZm9udHMvYjBmZmRjZjAtMjZkYS00N2ZkLTg0ODUtMjBlNGE0MGQ0YjdkLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSx1cmwoXCIuLi9mb250cy9kYTA5ZjFmMS0wNjJhLTQ1YWYtODZlMS0yYmJkYjNkZDk0Zjkuc3ZnI2RhMDlmMWYxLTA2MmEtNDVhZi04NmUxLTJiYmRiM2RkOTRmOVwiKSBmb3JtYXQoXCJzdmdcIik7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbkBmb250LWZhY2V7XG4gIGZvbnQtZmFtaWx5OlwiSGVsdmV0aWNhTmV1ZVcwMS02NU1lZGlcIjtcbiAgc3JjOnVybChcIi4uL2ZvbnRzLzA3ZmUwZmVjLWI2M2YtNDk2My04ZWUxLTUzNTUyOGI2N2ZkYi5lb3Q/I2llZml4XCIpO1xuICBzcmM6dXJsKFwiLi4vZm9udHMvMDdmZTBmZWMtYjYzZi00OTYzLThlZTEtNTM1NTI4YjY3ZmRiLmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW90XCIpLHVybChcIi4uL2ZvbnRzLzYwYmU1YzM5LTg2M2UtNDBjYi05NDM0LTZlYmFmYjYyYWIyYi53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksdXJsKFwiLi4vZm9udHMvNGM2NTAzYzktODU5Yi00ZDNiLWExZDUtMmQ0MmUxMjIyNDE1LnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSx1cmwoXCIuLi9mb250cy8zNmMxODJjNi1lZjk4LTQwMjEtOWIwZC1kNjMxMjJjMmJiZjUuc3ZnIzM2YzE4MmM2LWVmOTgtNDAyMS05YjBkLWQ2MzEyMmMyYmJmNVwiKSBmb3JtYXQoXCJzdmdcIik7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbkBmb250LWZhY2V7XG4gIGZvbnQtZmFtaWx5OlwiSGVsdmV0aWNhTmV1ZVcwMS03NUJvbGRcIjtcbiAgc3JjOnVybChcIi4uL2ZvbnRzL2MwN2ZlZjllLWE5MzQtNDJkNy05MmFkLTY5MjA1ZjJiOGEwMC5lb3Q/I2llZml4XCIpO1xuICBzcmM6dXJsKFwiLi4vZm9udHMvYzA3ZmVmOWUtYTkzNC00MmQ3LTkyYWQtNjkyMDVmMmI4YTAwLmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW90XCIpLHVybChcIi4uL2ZvbnRzLzE0ZmY2MDgxLTMyNmQtNGRhZS1iNzc4LWQ3YWZhNjYxNjZmYy53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksdXJsKFwiLi4vZm9udHMvOGZkYTFlNDctMTliZS00NmM3LThkODMtOGQ0ZmIzNTU3MmYwLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSx1cmwoXCIuLi9mb250cy9mNzUxYzhhZS0xMDU3LTQ2ZDktOGQ3NC02MjU5MmUwMDI1Njguc3ZnI2Y3NTFjOGFlLTEwNTctNDZkOS04ZDc0LTYyNTkyZTAwMjU2OFwiKSBmb3JtYXQoXCJzdmdcIik7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbkBmb250LWZhY2V7XG4gIGZvbnQtZmFtaWx5OlwiSGVsdmV0aWNhTmV1ZVcwMS1UaGluRXhfNzEwMjg4XCI7XG4gIHNyYzp1cmwoXCIuLi9mb250cy9hMDkzNDFhMC0zOTIzLTQ5NGYtOGI3MS05MDgzZjExMjM2NDkuZW90PyNpZWZpeFwiKTtcbiAgc3JjOnVybChcIi4uL2ZvbnRzL2EwOTM0MWEwLTM5MjMtNDk0Zi04YjcxLTkwODNmMTEyMzY0OS5lb3Q/I2llZml4XCIpIGZvcm1hdChcImVvdFwiKSx1cmwoXCIuLi9mb250cy84YjEwNWYyOS03M2Q1LTQzNzMtODgyZC1iYjQzMjNlMzU4YzAud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLHVybChcIi4uL2ZvbnRzLzBlODIwZWZiLWNlZjktNGNmYS05MTViLTNkZjAwODBlN2VlYS50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIiksdXJsKFwiLi4vZm9udHMvZDNiNzUxMWUtZDY1YS00NWY5LWIyYTctMzg4ZWJlNzVhZTg3LnN2ZyNkM2I3NTExZS1kNjVhLTQ1ZjktYjJhNy0zODhlYmU3NWFlODdcIikgZm9ybWF0KFwic3ZnXCIpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5AZm9udC1mYWNle1xuICBmb250LWZhbWlseTpcIkhlbHZldGljYU5ldWVXMDEtTHRFeHRcIjtcbiAgc3JjOnVybChcIi4uL2ZvbnRzLzViYTQ2NGQwLTJkZDEtNDI1OC1iOTA1LWZiYzA2NGI2Mjg4MC5lb3Q/I2llZml4XCIpO1xuICBzcmM6dXJsKFwiLi4vZm9udHMvNWJhNDY0ZDAtMmRkMS00MjU4LWI5MDUtZmJjMDY0YjYyODgwLmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW90XCIpLHVybChcIi4uL2ZvbnRzL2NlMGVhZDFlLTRlYjEtNDUzNS04OThhLWI4MDFhMjMxMzYzOS53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksdXJsKFwiLi4vZm9udHMvNWI5YTZmOGMtMGI3ZS00YzU4LTkxNGQtZTdiZGZhOTcwNjIwLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSx1cmwoXCIuLi9mb250cy83M2Q3MWM3NC1hNTdkLTQ0YWYtOTZjZi0wMzEwNDYyNzFkYWIuc3ZnIzczZDcxYzc0LWE1N2QtNDRhZi05NmNmLTAzMTA0NjI3MWRhYlwiKSBmb3JtYXQoXCJzdmdcIik7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbkBmb250LWZhY2V7XG4gIGZvbnQtZmFtaWx5OlwiSGVsdmV0aWNhTmV1ZVcwMV81MyBFeHRcIjtcbiAgc3JjOnVybChcIi4uL2ZvbnRzLzhmYmUxYzZhLWE5MTAtNDc0ZC1hYzQyLThhMmJjOTI0OWFmNC5lb3Q/I2llZml4XCIpO1xuICBzcmM6dXJsKFwiLi4vZm9udHMvOGZiZTFjNmEtYTkxMC00NzRkLWFjNDItOGEyYmM5MjQ5YWY0LmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW90XCIpLHVybChcIi4uL2ZvbnRzL2YzZjRiMWM4LTUyMGUtNDE0MS05ZjZmLThlMjFhMjg1N2E5Yy53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksdXJsKFwiLi4vZm9udHMvNzc0ZmViMTMtNDM1MS00MjlhLThjNDctMmJlYzUyNzdlMzcyLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSx1cmwoXCIuLi9mb250cy85MjlhMmQwNy03YWYxLTQ1NTItYWE4YS1lYTlhOTYyMmYwYWYuc3ZnIzkyOWEyZDA3LTdhZjEtNDU1Mi1hYThhLWVhOWE5NjIyZjBhZlwiKSBmb3JtYXQoXCJzdmdcIik7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuLmZvbnQtc3RhbmRhcmQtdGhpbntcbiAgZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2FOZXVlVzAxLVRoaW4nLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBAZXh0ZW5kIC5mb250LXNtb290aDtcbn1cblxuLmZvbnQtc3RhbmRhcmQtdGhpbi1pdGFsaWN7XG4gIGZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhTmV1ZVcwMS1UaGluSXQnLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBAZXh0ZW5kIC5mb250LXNtb290aDtcbn1cblxuLmZvbnQtc3RhbmRhcmQtbGlnaHR7XG4gIGZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhTmV1ZVcwMS00NUxpZ2gnLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBAZXh0ZW5kIC5mb250LXNtb290aDtcbn1cblxuLmZvbnQtc3RhbmRhcmQtbGlnaHQtaXRhbGlje1xuICBmb250LWZhbWlseTogJ0hlbHZldGljYU5ldWVXMDEtNDZMaWdoJywgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgQGV4dGVuZCAuZm9udC1zbW9vdGg7XG59XG5cbi5mb250LXN0YW5kYXJkLXJvbWFue1xuICBmb250LWZhbWlseTogJ0hlbHZldGljYU5ldWVXMDEtNTVSb21hJywgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgQGV4dGVuZCAuZm9udC1zbW9vdGg7XG59XG5cbi5mb250LXN0YW5kYXJkLW1lZGl1bXtcbiAgZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2FOZXVlVzAxLTY1TWVkaScsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIEBleHRlbmQgLmZvbnQtc21vb3RoO1xufVxuXG4uZm9udC1zdGFuZGFyZC1ib2xke1xuICBmb250LWZhbWlseTogJ0hlbHZldGljYU5ldWVXMDEtNzVCb2xkJywgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgQGV4dGVuZCAuZm9udC1zbW9vdGg7XG59XG5cbi5mb250LXN0YW5kYXJkLXRoaW4tZXhwYW5kZWR7XG4gIGZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhTmV1ZVcwMS1UaGluRXhfNzEwMjg4Jywgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgQGV4dGVuZCAuZm9udC1zbW9vdGg7XG59XG5cbi5mb250LXN0YW5kYXJkLWxpZ2h0LWV4cGFuZGVke1xuICBmb250LWZhbWlseTogJ0hlbHZldGljYU5ldWVXMDEtTHRFeHQnLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBAZXh0ZW5kIC5mb250LXNtb290aDtcbn1cblxuLmZvbnQtc3RhbmRhcmQtZXhwYW5kZWR7XG4gIGZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhTmV1ZVcwMV81MyBFeHQnLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBAZXh0ZW5kIC5mb250LXNtb290aDtcbn1cblxuLmZvbnQtc21vb3RoIHtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG4iLCJodG1sIHtcbiAgZm9udC1zaXplOiA2Mi41JTtcblxuICAmLnNjcm9sbC1sb2NrIHtcbiAgICBib2R5IHtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgfVxuICB9XG5cbiAgJi5zaG93e1xuICAgIG92ZXJmbG93OiBpbml0aWFsICFpbXBvcnRhbnQ7XG4gICAgYm9keSB7XG4gICAgICBvdmVyZmxvdzogaW5pdGlhbCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSwgKC1tcy1oaWdoLWNvbnRyYXN0OiBub25lKSB7XG4gICAgJi5zaG93e1xuICAgICAgb3ZlcmZsb3c6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgICAgIGJvZHkge1xuICAgICAgICBvdmVyZmxvdzogaW5oZXJpdCAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5odG1sLGJvZHl7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbn1cblxuYm9keXtcbiAgQGluY2x1ZGUgZm9udC1zaXplKDE2KTtcbiAgQGV4dGVuZCAuZm9udC1zdGFuZGFyZC1yb21hbjtcbiAgY29sb3I6ICRjb3B5LWdyZXk7XG4gIG1hcmdpbjowO1xuXG59XG5cblxuLmFwcCB7XG4gIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhwYWRkaW5nLXRvcCwgJG1vYmlsZS1oZWFkZXItaGVpZ2h0ICogMik7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJHRhYmxldCkge1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICBwYWRkaW5nLXRvcDogMTUxcHg7XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcC1zbWFsbCkge1xuICAgIHBhZGRpbmctdG9wOiAxNTRweDtcbiAgfVxufVxuXG4qLDpiZWZvcmUsOmFmdGVyIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxudWwsIGxpe1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbn1cblxuYSB7XG4gIEBleHRlbmQgLmZvbnQtc3RhbmRhcmQtdGhpbjtcbiAgQGluY2x1ZGUgZm9udC1zaXplKDE1KTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAmOmxpbmssICY6dmlzaXRlZCB7XG4gICAgY29sb3I6ICRibGFjaztcbiAgfVxuICAmOmFjdGl2ZSB7XG4gICAgY29sb3I6ICRsaW5rLWJsdWU7XG5cbiAgfVxuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogJGxpbmstYmx1ZTtcbiAgfVxufVxuXG5pbnB1dFt0eXBlPXRleHRdLCB0ZXh0YXJlYSB7XG4gIEBleHRlbmQgLmZvbnQtc3RhbmRhcmQtdGhpbjtcbiAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKHBhZGRpbmcsIDEuNywgMS45KTtcbiAgQGluY2x1ZGUgZm9udC1zaXplKDEzKTtcbiAgb3V0bGluZTogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG5cbiAgJi5ncmF5LWJvcmRlcmVkIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkY29weS1ncmV5O1xuICB9XG5cbiAgJi5saWdodCB7XG4gICAgY29sb3I6ICRpbnB1dC1ncmV5O1xuICB9XG5cbiAgJi5kYXJrIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2s7XG4gICAgQGluY2x1ZGUgcGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6ICRjb3B5LWRhcmstZ3JleTtcbiAgICB9XG4gIH1cblxuICAmOmZvY3VzIHtcbiAgICBjb2xvcjogJGxpbmstYmx1ZTtcbiAgICBib3JkZXItY29sb3I6ICRsaW5rLWJsdWU7XG5cbiAgICBAaW5jbHVkZSBwbGFjZWhvbGRlciB7XG4gICAgICBjb2xvcjogJGxpbmstYmx1ZTtcbiAgICB9XG4gIH1cbn1cblxuaW5wdXQubGFyZ2Uge1xuICBAZXh0ZW5kIC5mb250LXN0YW5kYXJkLWxpZ2h0O1xuICBAaW5jbHVkZSBmb250LXNpemUoMTQpO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDdweDtcblxuICAmLmRhcmsge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRpbnB1dC1sYXJnZS1kYXJrLWdyYXk7XG4gIH1cblxuICAmOmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6ICRsaW5rLWJsdWU7XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgkdGFibGV0KSB7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKDIwKTtcbiAgICBwYWRkaW5nOiAxM3B4O1xuICB9XG59XG5cbi5zZWxlY3QtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgc2VsZWN0IHtcbiAgICBAZXh0ZW5kIC5mb250LXN0YW5kYXJkLXRoaW47XG4gICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKHBhZGRpbmcsIDAuNyk7XG4gICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKHBhZGRpbmctcmlnaHQsIDQuMik7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKDE1KTtcbiAgICBjb2xvcjogJGJsYWNrO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBmb250LXdlaWdodDogMTAwO1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkdGFibGV0KSB7XG4gICAgICBAaW5jbHVkZSBmb250LXNpemUoMjApO1xuICAgICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKHBhZGRpbmcsIDEuMik7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICBib3JkZXItY29sb3I6ICRsaW5rLWJsdWU7XG4gICAgfVxuXG4gICAgJjo6LW1zLWV4cGFuZHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0OjotbXMtZXhwYW5kIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLmljb24ge1xuICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAxM3B4IDlweCBudWxsIG51bGwpO1xuICAgIEBpbmNsdWRlIG1lZGlhKCR0YWJsZXQpIHtcbiAgICAgIHRvcDogMjFweDtcbiAgICB9XG4gICAgY29sb3I6ICRibGFjaztcbiAgICBmb250LXNpemU6IDdweDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgfVxuXG4gICYuc21hbGwge1xuICAgIHNlbGVjdCB7XG4gICAgICBAaW5jbHVkZSBmb250LXNpemUoMTUpO1xuICAgICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKHBhZGRpbmcsIDAuNyk7XG4gICAgfVxuXG4gICAgLmljb24ge1xuICAgICAgdG9wOiAxM3B4O1xuICAgIH1cbiAgfVxufVxuXG4ucXVhbnRpdHktYnV5LWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYm9yZGVyOiAxcHggc29saWQgJGJsdWU7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcblxuICBzZWxlY3Qge1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgICBtaW4td2lkdGg6IDcxcHg7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhwYWRkaW5nLXJpZ2h0LCAyLjIpO1xuICAgIGhlaWdodDogMzNweDtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCR0YWJsZXQpIHtcbiAgICAgIG1pbi13aWR0aDogMTAwcHg7XG4gICAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2socGFkZGluZy1yaWdodCwgNC4yKTtcbiAgICAgIGhlaWdodDogNTBweDtcbiAgICB9XG4gIH1cblxuICAuc2VhcmNoLW1hcCB7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxNSk7XG4gICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKHBhZGRpbmcsIDAuOCk7XG4gICAgaGVpZ2h0OiAzM3B4O1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJHRhYmxldCkge1xuICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDIwKTtcbiAgICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhwYWRkaW5nLCAxLjIpO1xuICAgICAgaGVpZ2h0OiA1MHB4O1xuICAgIH1cbiAgfVxufVxuIiwiJGlucHV0LWJvcmRlci1yYWRpdXM6IDEzcHg7XG4kcm91bmRlZC1idXR0b24tcmFkaXVzOiA0cHg7XG5cbiVidXR0b24ucmFkaW8uaG92ZXJ7XG4gIGJhY2tncm91bmQ6ICRncmV5MjtcbiAgY29sb3I6ICRib3JkZXItZ3JleTtcbiAgQGV4dGVuZCAlYnV0dG9uLnJhZGlvLmNoZWNrO1xufVxuXG4uYnRue1xuICBmb250LXdlaWdodDogMzAwO1xuICBjb2xvcjogJGJsYWNrO1xuICBib3JkZXItcmFkaXVzOiAkcm91bmRlZC1idXR0b24tcmFkaXVzO1xuICBib3JkZXI6IG5vbmU7XG4gIGxldHRlci1zcGFjaW5nOiAwLjFweDtcbiAgQGV4dGVuZCAuZm9udC1zdGFuZGFyZC10aGluO1xuICBAaW5jbHVkZSByZW0tZmFsbGJhY2socGFkZGluZywgMSwgMS43KTtcbiAgQGluY2x1ZGUgZm9udC1zaXplKDE2KTtcblxufVxuXG5idXR0b24sIC5idXR0b24ge1xuICBAaW5jbHVkZSB0cmFuc2l0aW9uKG9wYWNpdHkgMC41cyBlYXNlLW91dCk7XG59XG5cbmJ1dHRvbltkaXNhYmxlZF0sIC5idXR0b25bZGlzYWJsZWRdIHtcbiAgb3BhY2l0eTogMC41O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLmJ0bi0tYmxhY2t7XG4gIGJhY2tncm91bmQ6ICRibGFjaztcbiAgY29sb3I6ICR3aGl0ZTtcbn1cblxuLmJ0bi0td2hpdGV7XG4gIGJhY2tncm91bmQ6ICR3aGl0ZTtcbiAgY29sb3I6ICRibGFjaztcbn1cblxuLmJ0bi0tYmlne1xuICB3aWR0aDogMTAwJTtcbiAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKHBhZGRpbmcsIDIsIDIpO1xuICBAaW5jbHVkZSBmb250LXNpemUoMjApO1xufVxuXG4uYnRuLS1tZWRpdW17XG4gIHdpZHRoOiAxMDAlO1xuICBAaW5jbHVkZSByZW0tZmFsbGJhY2socGFkZGluZywgMSk7XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZSgxNik7XG59XG5cbmJ1dHRvbiB7XG4gIGJvcmRlcjogMDtcbiAgb3V0bGluZTogMDtcbn1cblxuYnV0dG9uLnRyYW5zcGFyZW50LCAuYnV0dG9uLnRyYW5zcGFyZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgY29sb3I6ICRibGFjaztcbiAgb3V0bGluZTogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBAaW5jbHVkZSBmb250LXNpemUoMjApO1xuXG4gICYubGlnaHQge1xuICAgIGNvbG9yOiAkd2hpdGU7XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogJGxpbmstYmx1ZTtcbiAgfVxufVxuXG5idXR0b24ucm91bmRlZCwgLmJ1dHRvbi5yb3VuZGVke1xuICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCwgMC4ycywgZWFzZSk7XG4gIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhwYWRkaW5nLCAxLjQsIDEuNyk7XG4gIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhwYWRkaW5nLWxlZnQsIDEuOSk7XG4gIGJvcmRlci1yYWRpdXM6ICRyb3VuZGVkLWJ1dHRvbi1yYWRpdXM7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRiZy1ncmV5O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICY6aG92ZXJ7XG4gICAgYmFja2dyb3VuZDogJGdyZXkyO1xuICB9XG5cbiAgJjphY3RpdmV7XG4gICAgYmFja2dyb3VuZDogJGxpZ2h0LWdyZXk7XG4gIH1cblxuICBzcGFue1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxOCk7XG4gICAgQGV4dGVuZCAuZm9udC1nb3RoYW0tbWVkaXVtO1xuICB9XG59XG5cbmJ1dHRvbi5zaGFyZSwgLmJ1dHRvbi5zaGFyZSB7XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZSgxMik7XG4gIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhwYWRkaW5nLCAwLjcsIDApO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGluay1ibHVlO1xuICBjb2xvcjogJHdoaXRlO1xuICBkaXNwbGF5OiBpbmxpbmU7XG4gIHdpZHRoOiA2LjNyZW07XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGxpbmstZGFyay1ibHVlO1xuICB9XG5cbiAgJjphY3RpdmUge1xuICAgIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAwIDFweCByZ2JhKDIsMywzLC4xNSksIGluc2V0IDAgMCA1cHggcmdiYSgwLDAsMCwuMSk7XG4gICAgLW1vei1ib3gtc2hhZG93OiBpbnNldCAwIDAgMXB4IHJnYmEoMiwzLDMsLjE1KSwgaW5zZXQgMCAwIDVweCByZ2JhKDAsMCwwLC4xKTtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMXB4IHJnYmEoMiwzLDMsLjE1KSwgaW5zZXQgMCAwIDVweCByZ2JhKDAsMCwwLC4xKTtcbiAgfVxuXG4gIC5pY29uIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGZvbnQtc2l6ZTogNXB4O1xuICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgbWFyZ2luLWxlZnQ6IDJweDtcbiAgICBtYXJnaW4tdG9wOiAtMnB4O1xuICB9XG5cbiAgJi5zaGFyZS1jbG9zZXtcbiAgICAuaWNvbntcbiAgICAgIGZvbnQtc2l6ZTogN3B4O1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG4gIH1cbn1cblxuLnZpZXctZGV0YWlscy1idXR0b24td3JhcHBlcntcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKHBhZGRpbmctcmlnaHQsIDYpO1xufVxuXG5cbmJ1dHRvbi52aWV3LWRldGFpbHMsIC5idXR0b24udmlldy1kZXRhaWxzLCAuYnV0dG9uLXZpZXctZGV0YWlscyB7XG4gIEBleHRlbmQgLmZvbnQtc3RhbmRhcmQtdGhpbjtcbiAgQGluY2x1ZGUgZm9udC1zaXplKDIwKTtcbiAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKHBhZGRpbmcsIDEuMywgMik7XG4gIGJhY2tncm91bmQtY29sb3I6ICRibGFjaztcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiA2cHg7XG4gIC1tb3otYm9yZGVyLXJhZGl1czogNnB4O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIGNvbG9yOiAkd2hpdGU7XG4gIHdpZHRoOiAxMDAlO1xuICBmb250LXdlaWdodDogMTAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRsaW5rLWJsdWU7XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cblxuICAmOmFjdGl2ZSB7XG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDAgMXB4IHJnYmEoMiwzLDMsLjIpLCBpbnNldCAwIDAgNXB4IHJnYmEoMCwwLDAsLjIpO1xuICAgIC1tb3otYm94LXNoYWRvdzogaW5zZXQgMCAwIDFweCByZ2JhKDIsMywzLC4yKSwgaW5zZXQgMCAwIDVweCByZ2JhKDAsMCwwLC4yKTtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMXB4IHJnYmEoMiwzLDMsLjIpLCBpbnNldCAwIDAgNXB4IHJnYmEoMCwwLDAsLjIpO1xuICB9XG59XG5cbmJ1dHRvbi5jYXJldCwgLmJ1dHRvbi5jYXJldCB7XG5cbn1cblxuYnV0dG9uLnZpZXctZGV0YWlscy1wbHVzLCAuYnV0dG9uLnZpZXctZGV0YWlscy1wbHVzIHtcbiAgQGV4dGVuZCAuYnV0dG9uLXZpZXctZGV0YWlscztcbiAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKHBhZGRpbmcsIDEuMywgMS44KTtcbiAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKHBhZGRpbmctcmlnaHQsIDEuNyk7XG4gIEBpbmNsdWRlIHJlbS1mYWxsYmFjayh3aWR0aCwgNSk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDA7XG4gIHRvcDogMDtcblxuICAmOmhvdmVye1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxufVxuXG5idXR0b24uc2VhcmNoLW1hcCwgLmJ1dHRvbi5zZWFyY2gtbWFwIHtcbiAgQGV4dGVuZCAuZm9udC1zdGFuZGFyZC10aGluO1xuICBAaW5jbHVkZSBmb250LXNpemUoMjApO1xuICBAaW5jbHVkZSByZW0tZmFsbGJhY2socGFkZGluZywgMS4zLCAxLjgpO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGluay1ibHVlO1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDZweDtcbiAgLW1vei1ib3JkZXItcmFkaXVzOiA2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgZm9udC13ZWlnaHQ6IDEwMDtcbiAgY29sb3I6ICR3aGl0ZTtcblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGluay1kYXJrLWJsdWU7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG5cbiAgJjphY3RpdmUge1xuICAgIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAwIDFweCByZ2JhKDIsMywzLC4yKSwgaW5zZXQgMCAwIDVweCByZ2JhKDAsMCwwLC4yKTtcbiAgICAtbW96LWJveC1zaGFkb3c6IGluc2V0IDAgMCAxcHggcmdiYSgyLDMsMywuMiksIGluc2V0IDAgMCA1cHggcmdiYSgwLDAsMCwuMik7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDFweCByZ2JhKDIsMywzLC4yKSwgaW5zZXQgMCAwIDVweCByZ2JhKDAsMCwwLC4yKTtcbiAgfVxufVxuXG5idXR0b24ucmVhZC1tb3JlLCAuYnV0dG9uLnJlYWQtbW9yZSB7XG4gIEBleHRlbmQgLmZvbnQtc3RhbmRhcmQtdGhpbjtcbiAgQGluY2x1ZGUgZm9udC1zaXplKDIwKTtcbiAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKHBhZGRpbmcsIDEuOCwgNik7XG4gIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgY29sb3I6ICRibGFjaztcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiA2cHg7XG4gIC1tb3otYm9yZGVyLXJhZGl1czogNnB4O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIGZvbnQtd2VpZ2h0OiAxMDA7XG5cbiAgJjpob3ZlciB7XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGluay1ibHVlO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxuXG4gICY6YWN0aXZlIHtcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgMCAxcHggcmdiYSgyLDMsMywuMiksIGluc2V0IDAgMCA1cHggcmdiYSgwLDAsMCwuMik7XG4gICAgLW1vei1ib3gtc2hhZG93OiBpbnNldCAwIDAgMXB4IHJnYmEoMiwzLDMsLjIpLCBpbnNldCAwIDAgNXB4IHJnYmEoMCwwLDAsLjIpO1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAxcHggcmdiYSgyLDMsMywuMiksIGluc2V0IDAgMCA1cHggcmdiYSgwLDAsMCwuMik7XG4gIH1cbn1cblxuLmJ1dHRvbi13cmFwcGVye1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5idXR0b24uc3RhbmRhcmR7XG4gIEBleHRlbmQgLmJ1dHRvbi5yZWFkLW1vcmU7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBsZXR0ZXItc3BhY2luZzogMC4zcHg7XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZSgxNCk7XG5cbiAgJi5vdXRsaW5le1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICR3aGl0ZTtcblxuICAgICYuZm9vdGVye1xuICAgICAgYm9yZGVyLWNvbG9yOiAkZm9vdGVyLWdyZXk7XG4gICAgICBjb2xvcjogJGZvb3Rlci1ncmV5O1xuICAgICAgcGFkZGluZzogMS4zcmVtIDJyZW07XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBAaW5jbHVkZSBmb250LXNpemUoMjApO1xuXG4gICAgICAmOmhvdmVye1xuICAgICAgICBib3JkZXItY29sb3I6ICRsaW5rLWJsdWU7XG4gICAgICAgIGNvbG9yOiAkbGluay1ibHVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5idXR0b24uY2F0ZWdvcnktdGFiLCAuYnV0dG9uLmNhdGVnb3J5LXRhYiB7XG4gIEBleHRlbmQgLmZvbnQtc3RhbmRhcmQtdGhpbjtcbiAgQGluY2x1ZGUgZm9udC1zaXplKDIwKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRjYXRlZ29yeS10YWItZ3JheTtcbiAgY29sb3I6ICRjYXRlZ29yeS10YWItZ3JheTtcbiAgcGFkZGluZzogMTJweCAwO1xuICB3aWR0aDogMTIwcHg7XG5cbiAgJi5hY3RpdmUge1xuICAgIGJvcmRlci1jb2xvcjogJGJsdWU7XG4gICAgY29sb3I6ICRibHVlO1xuICB9XG59XG5cbmJ1dHRvbi5zaG9wLW5vdywgLmJ1dHRvbi5zaG9wLW5vdywgLmJ1dHRvbi5zdGFuZGFyZC1ibGFjaywgYnV0dG9uLnN0YW5kYXJkLWJsYWNrIHtcbiAgQGV4dGVuZCAuZm9udC1zdGFuZGFyZC10aGluO1xuICBAaW5jbHVkZSBmb250LXNpemUoMjApO1xuICBAaW5jbHVkZSByZW0tZmFsbGJhY2socGFkZGluZywgMS44LCA1LjUpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2s7XG4gIGNvbG9yOiAkd2hpdGU7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogNnB4O1xuICAtbW96LWJvcmRlci1yYWRpdXM6IDZweDtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBmb250LXdlaWdodDogMTAwO1xuXG4gICY6aG92ZXIge1xuICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGxpbmstYmx1ZTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cblxuICAmOmFjdGl2ZSB7XG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDAgMXB4IHJnYmEoMiwzLDMsLjIpLCBpbnNldCAwIDAgNXB4IHJnYmEoMCwwLDAsLjIpO1xuICAgIC1tb3otYm94LXNoYWRvdzogaW5zZXQgMCAwIDFweCByZ2JhKDIsMywzLC4yKSwgaW5zZXQgMCAwIDVweCByZ2JhKDAsMCwwLC4yKTtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMXB4IHJnYmEoMiwzLDMsLjIpLCBpbnNldCAwIDAgNXB4IHJnYmEoMCwwLDAsLjIpO1xuICB9XG5cbn1cblxuLmJ1dHRvbi5zdGFuZGFyZC13aGl0ZSwgYnV0dG9uLnN0YW5kYXJkLXdoaXRlIHtcbiAgQGV4dGVuZCAuZm9udC1zdGFuZGFyZC10aGluO1xuICBAaW5jbHVkZSBmb250LXNpemUoMjApO1xuICBAaW5jbHVkZSByZW0tZmFsbGJhY2socGFkZGluZywgMS44LCAzLjUpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgYm9yZGVyOiAxcHggc29saWQgJGJsYWNrO1xuICBjb2xvcjogJGJsYWNrO1xuXG4gICY6aG92ZXIge1xuICAgIGNvbG9yOiAkYmx1ZTtcbiAgICBib3JkZXItY29sb3I6ICRibHVlO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxufVxuXG4uYnV0dG9uLnN0YW5kYXJkLWJsYWNre1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGxldHRlci1zcGFjaW5nOiAwLjNweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBAaW5jbHVkZSByZW0tZmFsbGJhY2socGFkZGluZywgMS40LCAxLjgpO1xuXG4gICY6aG92ZXJ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG59XG5cbmJ1dHRvbi5jYXJldCwgLmJ1dHRvbi5jYXJldCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAuaWNvbi1jYXJldCB7XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoMjkpO1xuICB9XG5cbiAgJjpob3ZlciB7XG4gICAgLmljb24tY2FyZXQge1xuICAgICAgY29sb3I6ICRsaW5rLWJsdWU7XG4gICAgfVxuICB9XG59XG5cbiVidXR0b24tY2lyY2xlLCBidXR0b24uY2lyY2xlLCAuYnV0dG9uLmNpcmNsZSB7XG4gIEBpbmNsdWRlIHNpemUoMzJweCAzMnB4KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYm9yZGVyOiAxcHggc29saWQgJHdoaXRlO1xuICBjb2xvcjogJHdoaXRlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAuaWNvbiB7XG4gICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDUwJSBudWxsIG51bGwgNTAlKTtcbiAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlKC01MCUsIC01MCUpKTtcbiAgICBAaW5jbHVkZSB0cmFuc2Zvcm0tb3JpZ2luKDAgMCk7XG4gICAgZm9udC1zaXplOiA2cHg7XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgfVxuXG4gICYudG9wIHtcblxuICB9XG4gICYucmlnaHQge1xuICAgIC5pY29uIHtcbiAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybShyb3RhdGUoOTBkZWcpIHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSk7XG4gICAgfVxuICB9XG4gICYuYm90dG9tIHtcbiAgICAuaWNvbiB7XG4gICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlKDE4MGRlZykgdHJhbnNsYXRlKC01MCUsIC01MCUpKTtcbiAgICB9XG4gIH1cbiAgJi5sZWZ0IHtcbiAgICAuaWNvbiB7XG4gICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlKDI3MGRlZykgdHJhbnNsYXRlKC01MCUsIC01MCUpKTtcbiAgICB9XG4gIH1cblxuICAmLmRhcmsge1xuICAgIGJvcmRlci1jb2xvcjogJGJsYWNrO1xuICAgIGNvbG9yOiAkYmxhY2s7XG4gICAgLmljb24ge1xuICAgICAgY29sb3I6ICRibGFjaztcbiAgICB9XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICBib3JkZXItY29sb3I6ICRsaW5rLWJsdWU7XG4gICAgLmljb24ge1xuICAgICAgY29sb3I6ICRsaW5rLWJsdWU7XG4gICAgfVxuICB9XG59XG5cbmJ1dHRvbi5jaXJjbGUtLWNhcmV0LCAuYnV0dG9uLmNpcmNsZS0tY2FyZXQge1xuICBAZXh0ZW5kICVidXR0b24tY2lyY2xlO1xufVxuXG5idXR0b24uY2lyY2xlLS1jbG9zZSwgLmJ1dHRvbi5jaXJjbGUtLWNsb3NlIHtcbiAgQGV4dGVuZCAlYnV0dG9uLWNpcmNsZTtcbiAgQGluY2x1ZGUgc2l6ZSg0MHB4IDQwcHgpO1xuICAuaWNvbiB7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIG1hcmdpbi10b3A6IDFweDtcbiAgfVxufVxuXG5idXR0b24uZ28tdG9wLCAuYnV0dG9uLmdvLXRvcCB7XG4gIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhwYWRkaW5nLCAxLjM1LCAxLjA1KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAkYmxhY2s7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRibGFjaztcbiAgbWFyZ2luLXRvcDogMjRweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogNS4xcmVtO1xuICBoZWlnaHQ6IDUuMXJlbTtcblxuICAuaWNvbiB7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKDEzKTtcbiAgICBjb2xvcjogJGJsYWNrO1xuICB9XG5cbiAgJjo6YmVmb3JlIHtcbiAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgLTI0cHggbnVsbCBudWxsIDUwJSk7XG4gICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVgoLTUwJSkpO1xuICAgIEBleHRlbmQgLmZvbnQtc3RhbmRhcmQtdGhpbjtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoMTQpO1xuICAgIGNvbnRlbnQ6ICd0b3AnO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICBib3JkZXItY29sb3I6ICRsaW5rLWJsdWU7XG5cbiAgICAuaWNvbiB7XG4gICAgICBjb2xvcjogJGxpbmstYmx1ZTtcbiAgICB9XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgY29sb3I6ICRsaW5rLWJsdWU7XG4gICAgfVxuICB9XG59XG5cbmJ1dHRvbi5jaXJjdWxhciwgLmJ1dHRvbi5jaXJjdWxhciB7XG4gIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhwYWRkaW5nLCAwLjcpO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG5cbiAgJi5kYXJrIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYmxhY2s7XG4gICAgY29sb3I6ICRibGFjaztcbiAgICA+ICoge1xuICAgICAgY29sb3I6ICRibGFjaztcbiAgICB9XG4gIH1cblxuICAmLmxpZ2h0IHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkd2hpdGU7XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgICA+ICoge1xuICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICB9XG4gIH1cbn1cblxuYnV0dG9uLmxlYXJuLW1vcmUsIC5idXR0b24ubGVhcm4tbW9yZSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgY29sb3I6ICR3aGl0ZTtcbiAgYm9yZGVyOiAxcHggc29saWQgJHdoaXRlO1xuICBAaW5jbHVkZSByZW0tZmFsbGJhY2socGFkZGluZywgMS41LCAzKTtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogcmdiYSg5MywgMTc0LCAyMjcsIDAuOSk7XG4gIH1cbn1cbiIsIltkYXRhLW1vZHVsZS1oZWxwZXI9XCJmdWxscGFnZS1uYXZcIl0ge1xuICBAaW5jbHVkZSBwb3NpdGlvbihmaXhlZCwgNTAlIG51bGwgbnVsbCAwKTtcbiAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVkoLTUwJSkpO1xuICBwYWRkaW5nOiAyMHB4IDVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrO1xuICB6LWluZGV4OiAxOTtcbiAgd2lkdGg6IDUwcHg7XG5cbiAgW2RhdGEtbW9kdWxlLWhlbHBlcj1cImZ1bGxwYWdlLW5hdi1saW5rXCJdIHtcbiAgICBAaW5jbHVkZSBzaXplKDEwcHggMTBweCk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkd2hpdGU7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIG1hcmdpbjogMCBhdXRvIDIwcHg7XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAmOjphZnRlciB7XG4gICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKG9wYWNpdHkgMC41cyk7XG4gICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgNTAlIG51bGwgbnVsbCA1MCUpO1xuICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSk7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIEBpbmNsdWRlIHNpemUoNHB4IDRweCk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuXG4gICAgJi5hY3RpdmUge1xuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uZnVsbHNjcmVlbl9fd3JhcCB7XG4gIEBpbmNsdWRlIHRyYW5zaXRpb24odHJhbnNmb3JtIDAuN3MgZWFzZSwgb3BhY2l0eSAwLjdzIGVhc2Utb3V0KTtcblxuICBAaW5jbHVkZSBtZWRpYSgkbW9iaWxlLW1heCkge1xuICAgIHRyYW5zZm9ybTogbWF0cml4KDEsIDAsIDAsIDEsIDAsIDEpICFpbXBvcnRhbnQ7XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgkdGFibGV0KSB7XG4gICAgb3BhY2l0eTogMDtcblxuICAgICYuYWN0aXZlIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICB9XG4gIHotaW5kZXg6IDE7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLnNlY3Rpb24ge1xuICBjb2xvcjogJGJsYWNrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJHRhYmxldCkge1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxuXG4gIHotaW5kZXg6IDI7XG5cbiAgJi53aGl0ZSB7XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgfVxufVxuXG4uc3Rvcmllc3tcbiAgXG4gICYuaW5kZXh7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmc6IDNyZW0gMCAwIDA7XG4gICAgbWFyZ2luOiAycmVtIDAgMTByZW07XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgIHRvcDogMTAwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJHRhYmxldCkge1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgcGFkZGluZzogMjByZW0gMCAwIDA7XG4gICAgICBtYXJnaW4tdG9wOiAtMjByZW07XG4gICAgICBcblxuICAgICAgc2VjdGlvbntcbiAgICAgICAgLy8gYWNjb3VudCBmb3Igc2Nyb2xsYmFyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMC45cmVtKTtcbiAgICAgIH1cblxuICAgIH1cbiAgfVxuXG4gIC5zaG93ICZ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKSAhaW1wb3J0YW50O1xuXG4gICAgc2VjdGlvbntcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICB9XG4gIH1cblxuXG59XG5cbi5zZWN0aW9uLS1mYWtlIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHotaW5kZXg6IDA7XG5cbiAgJi5mbGF0LCAmOmxhc3QtY2hpbGR7XG4gICAgLy8gZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIC8vIGhlaWdodDogMCAhaW1wb3J0YW50O1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJHRhYmxldCkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxufVxuXG5kaXYuc2VjdGlvbntcbiAgbWluLWhlaWdodDogMzByZW07XG4gIEBpbmNsdWRlIG1lZGlhKCRtb2JpbGUtbWF4KSB7XG4gICAgbWluLWhlaWdodDogNjByZW07XG4gIH1cbn1cblxuLnNlY3Rpb25fX2lubmVyLXJpZ2h0IHtcbiAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKHBhZGRpbmctdG9wLCAzLjMpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJG1vYmlsZS1tYXgpIHtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoMjMpO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJHRhYmxldCkge1xuICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhtYXgtd2lkdGgsIDUwKTtcbiAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgNTAlIDEwJSBudWxsIG51bGwpO1xuICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVZKC01MCUpKTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHBhZGRpbmctdG9wOiAwO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3Atc21hbGwpIHtcbiAgICAgIHJpZ2h0OiA3JTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcC1sYXJnZSkge1xuICAgICAgcmlnaHQ6IDEwLjUlO1xuICAgIH1cbiAgfVxufVxuLnNlY3Rpb25fX3RpdGxlIHtcbiAgQGV4dGVuZCAuZm9udC1zdGFuZGFyZC10aGluO1xuICBAaW5jbHVkZSBmb250LXNpemUoMzMpO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCRtb2JpbGUtbWF4KSB7XG4gICAgZm9udC1zaXplOiA0LjZyZW0gIWltcG9ydGFudDtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW0gIWltcG9ydGFudDtcbiAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgkdGFibGV0KSB7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKDYwKTtcbiAgfVxufVxuXG4uZnAtdGFibGVDZWxsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uc2VjdGlvbl9fc3VidGl0bGUge1xuICBAZXh0ZW5kIC5mb250LXN0YW5kYXJkLWJvbGQ7XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZSgxNSk7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJG1vYmlsZS1tYXgpIHtcbiAgICBmb250LXNpemU6IDIuM3JlbSAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiA5MCU7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgbWFyZ2luLWJvdHRvbTogMi4zcmVtICFpbXBvcnRhbnQ7XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgkdGFibGV0KSB7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKDMwKTtcbiAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2sobWFyZ2luLWJvdHRvbSwgNCk7XG4gIH1cbn1cblxuLnNlY3Rpb25fX2Rlc2NyaXB0aW9uIHtcbiAgZGlzcGxheTogbm9uZTtcblxuICBAaW5jbHVkZSBtZWRpYSgkdGFibGV0KSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuLnNlY3Rpb25fX2J1dHRvbnMge1xuICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgbnVsbCAwIDE3cHggMCk7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJG1vYmlsZS1tYXgpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICBtYXJnaW4tdG9wOiA0cmVtICFpbXBvcnRhbnQ7XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgkdGFibGV0KSB7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2sobWFyZ2luLXRvcCwgOCk7XG4gIH1cblxuICAuc2VjdGlvbl9fYnV0dG9uc19fY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKG1hcmdpbi1yaWdodCwgMSk7XG5cbiAgICAvLyAmOmxhc3QtY2hpbGQge1xuICAgIC8vICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIC8vIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCRtb2JpbGUtbWF4KSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBoZWlnaHQ6IGF1dG87XG5cbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuXG4gICAgICAuYnV0dG9uLnN0YW5kYXJkLWJsYWNre1xuICAgICAgICB3aWR0aDogOXJlbTtcbiAgICAgICAgZm9udC1zaXplOiAycmVtICFpbXBvcnRhbnQ7XG4gICAgICAgIHBhZGRpbmc6IDAuN3JlbSAxLjRyZW07XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkdGFibGV0KSB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAycmVtO1xuICAgICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKG1hcmdpbi1ib3R0b20sIDIpO1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5mdWxsc2NyZWVuX3NsaWRlMXtcbiAgQGluY2x1ZGUgbWVkaWEoJG1vYmlsZS1tYXgpIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA2OCUgY2VudGVyICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC9hc3NldHMvZnJvbnRlbmQvaW1nL2Zwby9mdWxscGFnZS9QQ0FfTW9iaWxlX1Bvd2VyQ291cGxlX1NsaWRlLmpwZykgIWltcG9ydGFudDtcbiAgfVxufVxuXG4uZnVsbHNjcmVlbl9zbGlkZTJ7XG4gIEBpbmNsdWRlIG1lZGlhKCRtb2JpbGUtbWF4KSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTglIGNlbnRlciAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgvYXNzZXRzL2Zyb250ZW5kL2ltZy9mcG8vZnVsbHBhZ2UvUENBX01vYmlsZV9JZGVhbENvbXBsZXhfU2xpZGUuanBnKSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi5mdWxsc2NyZWVuX3NsaWRlM3tcbiAgQGluY2x1ZGUgbWVkaWEoJG1vYmlsZS1tYXgpIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoL2Fzc2V0cy9mcm9udGVuZC9pbWcvZnBvL2Z1bGxwYWdlL1BDQV9Nb2JpbGVfV2VpZ2h0bGVzc19TbGlkZS5qcGcpICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLmZ1bGxzY3JlZW5fc2xpZGU0e1xuICBAaW5jbHVkZSBtZWRpYSgkbW9iaWxlLW1heCkge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgvYXNzZXRzL2Zyb250ZW5kL2ltZy9mcG8vZnVsbHBhZ2UvUENBX01vYmlsZV9TY2llbmNlX1NsaWRlLmpwZykgIWltcG9ydGFudDtcbiAgfVxufVxuIiwiJGNvbnRlbnQtd2lkdGg6ICRtYXgtd2lkdGg7XG4kbWF4LWNvbnRlbnQtd2lkdGgtc2hvcnQ6IDk2MHB4O1xuJG1heC1jb250ZW50LXdpZHRoOiAxMjAwcHggIWRlZmF1bHQ7XG5cbi5jb250YWluZXJ7XG4gIEBpbmNsdWRlIG91dGVyLWNvbnRhaW5lcjtcblxuXG59XG5cbi5ncmV5LXdyYXAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmctbGlnaHQtZ3JleTtcbn1cblxuLmNvbnRhaW5lci5jb250ZW50e1xuICBAaW5jbHVkZSByZW0tZmFsbGJhY2socGFkZGluZywgMCwgMik7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3Atc21hbGwpIHtcbiAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2sobWF4LXdpZHRoLCAxMjApO1xuICB9XG5cblxuICAmLmZ1bGxwYWdle1xuICAgIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wLXNtYWxsKSB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG5cbiAgJi5sYXJnZXtcbiAgICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcC1zbWFsbCkge1xuICAgICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKG1heC13aWR0aCwgMTQwKTtcblxuICAgICAgLmNvbnRhaW5lcl9fY29udGVudC1oZWFkZXJ7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2sobWF4LXdpZHRoLCA5MCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5jb250YWluZXIuc2hvcnR7XG4gICRtYXgtd2lkdGg6ICRtYXgtY29udGVudC13aWR0aC1zaG9ydDtcbiAgJGNvbnRlbnQtd2lkdGg6ICRtYXgtd2lkdGg7XG4gIEBpbmNsdWRlIG91dGVyLWNvbnRhaW5lcjtcbn1cblxuLmNvbnRhaW5lci5ncmlke1xuICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcC1zbWFsbCkge1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cbn1cblxuLmNvbnRhaW5lci5tZWRpYXtcbiAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3Atc21hbGwpIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKHBhZGRpbmctdG9wLCA1KTtcbiAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2sobWFyZ2luLWJvdHRvbSwgMCk7XG4gIH1cbn1cblxuLmNvbnRhaW5lci5mdWxse1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIG1hcmdpbi1ib3R0b206IDVyZW07XG5cbiAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3Atc21hbGwpIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgJi5jb250ZW50e1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICAvL0BpbmNsdWRlIHJlbS1mYWxsYmFjayhtYXJnaW4tYm90dG9tLCAxMCk7XG4gIH1cblxuICAmLndyYXBwZXJ7XG4gICAgYmFja2dyb3VuZDogJHdoaXRlLWdyZXk7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKHBhZGRpbmctdG9wLCA1KTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wLXNtYWxsKSB7XG4gICAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2socGFkZGluZy10b3AsIDEwKTtcbiAgICB9XG4gIH1cbn1cblxuLmNvbnRhaW5lcl9fY29udGVudHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogJG1heC1jb250ZW50LXdpZHRoO1xuICBtYXJnaW46IDAgYXV0bztcbn1cblxuLmNvbnRhaW5lcl9fY29udGVudC1oZWFkZXJfX2hlYWRlcntcbiAgbWFyZ2luOiAwO1xuICBsaW5lLWhlaWdodDogMTtcbiAgQGV4dGVuZCAuZm9udC1zdGFuZGFyZC10aGluO1xuICBAaW5jbHVkZSBmb250LXNpemUoNDYpO1xuICBAaW5jbHVkZSByZW0tZmFsbGJhY2sobWFyZ2luLWJvdHRvbSwgMS41KTtcbiAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKGxldHRlci1zcGFjaW5nLCAtMC4wNik7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3Atc21hbGwpIHtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoNjApO1xuICB9XG59XG5cbi5jb250YWluZXJfX2NvbnRlbnQtaGVhZGVyX19kZXNjcmlwdGlvbntcbiAgbGluZS1oZWlnaHQ6IDEuMztcbiAgQGluY2x1ZGUgZm9udC1zaXplKDE1KTtcblxuICBhe1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjhweDtcbiAgfVxufVxuXG4uY29udGFpbmVyX19jb250ZW50LWhlYWRlcl9fc3ViaGVhZGVye1xuICBtYXJnaW46IDA7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBAZXh0ZW5kIC5mb250LXN0YW5kYXJkLWJvbGQ7XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZSgyNCk7XG4gIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhtYXJnaW4tYm90dG9tLCAxKTtcbiAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKGxldHRlci1zcGFjaW5nLCAwLjA2KTtcblxuICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcC1zbWFsbCkge1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgzMCk7XG4gIH1cbn1cblxuLmNvbnRhaW5lcl9fY29udGVudC1oZWFkZXJ7XG4gIGNvbG9yOiAkYmxhY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDAgYXV0bztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXgtd2lkdGg6ICRjb250ZW50LXdpZHRoICogLjg7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3Atc21hbGwpIHtcbiAgICB3aWR0aDogJGNvbnRlbnQtd2lkdGggKiAuODtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgLmNvbnRhaW5lcl9fY29udGVudC1oZWFkZXJfX2J1dHRvbi13cmFwIHtcbiAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2sobWFyZ2luLCA0LjgsIDApO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxufVxuXG4uY29udGVudC1tYWlue1xuXG4gICYucGR7XG4gICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKHBhZGRpbmctdG9wLCA1KTtcbiAgICBAaW5jbHVkZSBtZWRpYSgkdGFibGV0KSB7XG4gICAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2socGFkZGluZy10b3AsIDEwKTtcbiAgICB9XG4gIH1cblxuICAmLnByb2R1Y3QtbGlzdGluZ3N7XG4gICAgcGFkZGluZy10b3A6IDRyZW07XG4gIH1cblxuICAuY29udGVudHtcbiAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2sobWFyZ2luLWJvdHRvbSwgNCk7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkdGFibGV0KSB7XG4gICAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2sobWFyZ2luLWJvdHRvbSwgMTApO1xuICAgIH1cbiAgfVxuXG59XG4iLCIucHJvZHVjdC1saXN0e1xuICBAZXh0ZW5kICVjbGVhcmZpeDtcbiAgd2lkdGg6IDEwMCU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIC8vQGluY2x1ZGUgcmVtLWZhbGxiYWNrKHBhZGRpbmcsIDAsIDIpO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCR0YWJsZXQpIHtcbiAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2socGFkZGluZywgMCk7XG4gIH1cblxuICAmLmJ1bmRsZXtcbiAgICBAaW5jbHVkZSBtZWRpYSgkdGFibGV0KSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gICAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3Atc21hbGwpIHtcbiAgICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayh3aWR0aCwgODgpO1xuICAgIH1cbiAgICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcCkge1xuICAgICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKHdpZHRoLCA5Nik7XG4gICAgfVxuICAgIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wLWxhcmdlKSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbn1cblxuLnByb2R1Y3QtaXRlbXtcbiAgY29sb3I6ICRibGFjaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbjogMDtcbiAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKG1heC13aWR0aCwgMzApO1xuICBAaW5jbHVkZSByZW0tZmFsbGJhY2sobWFyZ2luLWJvdHRvbSwgMik7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJHRhYmxldCkge1xuICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhtYXJnaW4tYm90dG9tLCA1KTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCRtb2JpbGUtbGFyZ2UpIHtcbiAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2sod2lkdGgsIDMwKTtcbiAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2sobWFyZ2luLWxlZnQsIDAuOCk7XG4gICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKG1hcmdpbi1yaWdodCwgMC44KTtcbiAgfVxuXG4gIC52aWV3LWRldGFpbHMtYnV0dG9uLXdyYXBwZXJ7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMDtcbiAgfVxuXG4gICYuYnVuZGxle1xuICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhoZWlnaHQsIDU0KTtcbiAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2sod2lkdGgsIDI0KTtcbiAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2sobWFyZ2luLWxlZnQsIDEuNCk7XG4gICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKG1hcmdpbi1yaWdodCwgMS40KTtcblxuICAgIC5wcm9kdWN0LWl0ZW0tdGl0bGV7XG4gICAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2soaGVpZ2h0LCA0KTtcbiAgICB9XG5cbiAgICAucHJvZHVjdC1pdGVtLXRpdGxlLXdyYXBwZXJ7XG4gICAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2soaGVpZ2h0LCA2KTtcbiAgICB9XG5cbiAgICAucHJvZHVjdC1pdGVtLWRlc2NyaXB0aW9ue1xuICAgICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKG1hcmdpbi10b3AsIDEuMik7XG4gICAgfVxuXG4gIH1cblxuICAmLnNpbmdsZXtcbiAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2soaGVpZ2h0LCA0Nyk7XG4gICAgQGluY2x1ZGUgbWVkaWEoJHRhYmxldCkge1xuICAgICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKGhlaWdodCwgNTApO1xuICAgICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKHdpZHRoLCAzMCk7XG4gICAgfVxuICB9XG5cbiAgZm9vdGVye1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2socGFkZGluZy1yaWdodCwgNik7XG4gICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKGhlaWdodCwgNSk7XG4gIH1cbn1cblxuLnByb2R1Y3QtaXRlbS1tZWRpYXtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlciAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCU7XG5cbiAgaW1ne1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cbn1cblxuLnByb2R1Y3QtaXRlbS10aXRsZS13cmFwcGVye1xuICBAaW5jbHVkZSByZW0tZmFsbGJhY2soaGVpZ2h0LCA0KTtcbn1cblxuLnByb2R1Y3QtaXRlbS10aXRsZXtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIEBleHRlbmQgLmZvbnQtc3RhbmRhcmQtdGhpbjtcbiAgQGluY2x1ZGUgZm9udC1zaXplKDIwKTtcbiAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKGhlaWdodCwgMik7XG4gIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhtYXJnaW4tdG9wLCAwLjgpO1xuICBAaW5jbHVkZSByZW0tZmFsbGJhY2sobWFyZ2luLWJvdHRvbSwgMC4zKTtcblxuICBAaW5jbHVkZSBtZWRpYSgkdGFibGV0KSB7XG4gICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKG1hcmdpbi10b3AsIDIuMSk7XG4gIH1cbn1cblxuLnByb2R1Y3QtaXRlbS1zdWJ0aXRsZXtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBAaW5jbHVkZSByZW0tZmFsbGJhY2sobWFyZ2luLXRvcCwgLTAuNik7XG59XG5cbi5wcm9kdWN0LWl0ZW0tZGVzY3JpcHRpb257XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBkaXNwbGF5OiBibG9jaztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgQGluY2x1ZGUgZm9udC1zaXplKDEzKTtcbiAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKG1hcmdpbi10b3AsIDAuNik7XG4gIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhtYXJnaW4tYm90dG9tLCAwLjgpO1xuICBAaW5jbHVkZSByZW0tZmFsbGJhY2soaGVpZ2h0LCA0KTtcblxuICBAaW5jbHVkZSBtZWRpYSgkdGFibGV0KSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2soaGVpZ2h0LCA0KTtcbiAgfVxufVxuXG4ucHJvZHVjdC1pdGVtLWNvc3R7XG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIEBleHRlbmQgLmZvbnQtc3RhbmRhcmQtZXhwYW5kZWQ7XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZSgxOCk7XG4gIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhib3R0b20sIDYpO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCR0YWJsZXQpIHtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoMjMpO1xuICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhib3R0b20sIDYuMSk7XG4gIH1cbn1cblxuLnByb2R1Y3QtaXRlbS10eXBle1xuICBoM3tcbiAgICBtYXJnaW46IDA7XG4gICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKG1hcmdpbi1ib3R0b20sIDEpO1xuICAgIEBleHRlbmQgLmZvbnQtc3RhbmRhcmQtdGhpbi1leHBhbmRlZDtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoMzMpO1xuICB9XG4gIGJvcmRlci1ib3R0b206IDNweCBzb2xpZCAkYmxhY2s7XG4gIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhtYXJnaW4tYm90dG9tLCAyKTtcbn1cblxuXG4iLCIuaXRlbS1saXN0e1xuICBAZXh0ZW5kICVjbGVhcmZpeDtcbiAgd2lkdGg6IDEwMCU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luOiAwIGF1dG87XG5cbiAgQGluY2x1ZGUgbWVkaWEoJHRhYmxldCkge1xuICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhwYWRkaW5nLCAwKTtcbiAgfVxuXG4gICYuYnVuZGxle1xuICAgIEBpbmNsdWRlIG1lZGlhKCR0YWJsZXQpIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcC1zbWFsbCkge1xuICAgICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKHdpZHRoLCA4OCk7XG4gICAgfVxuICAgIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wKSB7XG4gICAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2sod2lkdGgsIDk2KTtcbiAgICB9XG4gICAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3AtbGFyZ2UpIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxufVxuXG4uaXRlbXtcbiAgY29sb3I6ICRibGFjaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbjogMDtcbiAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKG1heC13aWR0aCwgMzApO1xuICBAaW5jbHVkZSByZW0tZmFsbGJhY2sobWFyZ2luLWJvdHRvbSwgMik7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJHRhYmxldCkge1xuICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhtYXJnaW4tYm90dG9tLCA1KTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCRtb2JpbGUtbGFyZ2UpIHtcbiAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2sod2lkdGgsIDMwKTtcbiAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2sobWFyZ2luLWxlZnQsIDAuOCk7XG4gICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKG1hcmdpbi1yaWdodCwgMC44KTtcbiAgfVxuXG4gIC52aWV3LWRldGFpbHMtYnV0dG9uLXdyYXBwZXJ7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMDtcbiAgfVxuXG5cbiAgJi5zaW5nbGV7XG4gICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKGhlaWdodCwgNDApO1xuICAgIEBpbmNsdWRlIG1lZGlhKCR0YWJsZXQpIHtcbiAgICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayh3aWR0aCwgMzApO1xuICAgIH1cbiAgfVxuXG4gICYubGVhcm4tbW9yZXtcbiAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2soaGVpZ2h0LCA0Ny41KTtcblxuICAgIC5pdGVtLWRlc2NyaXB0aW9ue1xuICAgICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKG1hcmdpbi1ib3R0b20sIDIpO1xuICAgIH1cbiAgfVxuXG4gIGZvb3RlcntcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKHBhZGRpbmctcmlnaHQsIDYpO1xuICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhoZWlnaHQsIDUpO1xuICB9XG59XG5cbi5pdGVtLW1lZGlhe1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDUwJTtcblxuICBpbWd7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxufVxuXG4uaXRlbS10aXRsZXtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGxldHRlci1zcGFjaW5nOiAxLjVweDtcbiAgQGV4dGVuZCAuZm9udC1zdGFuZGFyZC10aGluO1xuICBAaW5jbHVkZSBmb250LXNpemUoMjUpO1xuICBAaW5jbHVkZSByZW0tZmFsbGJhY2sobWFyZ2luLXRvcCwgMi4xKTtcbiAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKG1hcmdpbi1ib3R0b20sIDEuMik7XG59XG5cbi5pdGVtLXN1YnRpdGxle1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhtYXJnaW4tdG9wLCAtMC42KTtcbn1cblxuLml0ZW0tZGVzY3JpcHRpb257XG4gIGxpbmUtaGVpZ2h0OiAxLjQ1O1xuICBkaXNwbGF5OiBibG9jaztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgQGluY2x1ZGUgZm9udC1zaXplKDE1KTtcbiAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKG1hcmdpbi10b3AsIDAuNik7XG4gIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhtYXJnaW4tYm90dG9tLCAwLjgpO1xuICBAaW5jbHVkZSByZW0tZmFsbGJhY2soaGVpZ2h0LCA0KTtcblxuICBAaW5jbHVkZSBtZWRpYSgkdGFibGV0KSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2soaGVpZ2h0LCA0KTtcbiAgfVxufVxuXG5cbiIsIiR0aW1lbGluZS1pbmZvLW1heC13aWR0aDogNzByZW07XG5cbi50aW1lbGluZV9faW5mb19faXRlbXtcbiAgZGlzcGxheTogbm9uZTtcblxuICAmLnNob3d7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG5cbiAgJi5oaWRle1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4udGltZWxpbmUtaW5mb3tcbiAgbWFyZ2luOiAxMHJlbSAwO1xuXG4gIC5jb250YWluZXIuY29udGVudC5zaG9ydCxcbiAgLmNvbnRhaW5lcl9fY29udGVudC1oZWFkZXJcbiAge1xuICAgIG1heC13aWR0aDogJHRpbWVsaW5lLWluZm8tbWF4LXdpZHRoO1xuICB9XG59XG5cbi50aW1lbGluZV9fZGF0ZV9fdGV4dHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTQuNXJlbTtcbiAgYmFja2dyb3VuZDogJHdoaXRlO1xuICBwYWRkaW5nOiAwIDFyZW07XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgQGluY2x1ZGUgZm9udC1zaXplKDMwKTtcblxufVxuXG4udGltZWxpbmVfX2RhdGV7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6ICRibGFjaztcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1ib3R0b206IDJyZW07XG59XG5cbi50aW1lbGluZSB7XG4gICRzbGlkZUNvbnRhaW5lckhlaWdodDogODMlO1xuXG4gIGZvbnQtc2l6ZTogMTAwJTtcbiAgaGVpZ2h0OiA5NC4xdmg7XG5cbiAgLnNsaWRlX19pbm5lcl9fbWVkaWF7XG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgJjpob3ZlcntcbiAgICAgIGN1cnNvcjogZXctcmVzaXplO1xuICAgIH1cblxuICAgIGltZ3tcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLnRpbWVsaW5lX19zbGlkZS1jb250YWluZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRibGFjaztcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkdGFibGV0KSB7XG4gICAgICBoZWlnaHQ6ICRzbGlkZUNvbnRhaW5lckhlaWdodDtcbiAgICB9XG5cbiAgICAudGltZWxpbmVfX25hdmlnYXRpb24tYnRuIHtcbiAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVZKC01MCUpKTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgei1pbmRleDogNTtcblxuICAgICAgLmljb24ge1xuICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoMTYpO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCR0YWJsZXQpIHtcbiAgICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoMjkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnRpbWVsaW5lX19uZXh0IHtcbiAgICAgIHJpZ2h0OiAwcHg7XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCR0YWJsZXQpIHtcbiAgICAgICAgcmlnaHQ6IDEwcHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnRpbWVsaW5lX19wcmV2IHtcbiAgICAgIGxlZnQ6IDBweDtcblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJHRhYmxldCkge1xuICAgICAgICBsZWZ0OiAxMHB4O1xuICAgICAgfVxuICAgIH1cblxuICAgIC50aW1lbGluZV9fc2xpZGUtY29udGFpbmVyX19pbm5lciB7XG4gICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICAgIHdpZHRoOiA5OTk5cHg7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgLnNsaWRlIHtcbiAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24ob3BhY2l0eSAwLjVzKTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0aW1lbGluZS1jYXJkLWJhY2tncm91bmQ7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGNvbG9yOiAkYmxhY2s7XG4gICAgICBvcGFjaXR5OiAwLjE7XG5cbiAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuc2xpZGVfX2lubmVyLS1jZW50ZXItYm90aCB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgNTAlIG51bGwgbnVsbCA1MCUpO1xuICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSk7XG4gICAgfVxuXG4gICAgLnNsaWRlX19pbm5lci0tc2Uge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IDA7XG4gICAgICBoZWlnaHQ6IDZyZW07XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcC1zbWFsbCkge1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5zbGlkZV9faW5uZXItLXNlX19oZWFkZXIge1xuICAgICAgaGVpZ2h0OiA2cmVtO1xuICAgICAgcGFkZGluZy10b3A6IDFyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gICAgICBsaW5lLWhlaWdodDogMjtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1heC13aWR0aDogODAlO1xuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgkdGFibGV0KSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwLjhyZW07XG4gICAgICAgIHBhZGRpbmctbGVmdDogMnJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuODtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3Atc21hbGwpIHtcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDI7XG4gICAgICAgIHBhZGRpbmctdG9wOiAxLjhyZW07XG4gICAgICAgIHBhZGRpbmctbGVmdDogMnJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiBpbmhlcml0O1xuICAgICAgfVxuXG4gICAgfVxuXG4gICAgLnNsaWRlLS1pbnRybywgLnNsaWRlLS1lbmQge1xuXG4gICAgICAuc2xpZGVfX2lubmVyLS1jZW50ZXItYm90aCB7XG4gICAgICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhtaW4td2lkdGgsIDIyLjUpO1xuICAgICAgfVxuXG4gICAgICAuc2xpZGUtLWludHJvX19kYXRlcyB7XG4gICAgICAgIEBleHRlbmQgLmZvbnQtc3RhbmRhcmQtbWVkaXVtO1xuICAgICAgICBmb250LXNpemU6IDEyNSU7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmOjpiZWZvcmUsICY6OmFmdGVyIHtcbiAgICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgNTAlIG51bGwgbnVsbCBudWxsKTtcbiAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJsYWNrO1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIHdpZHRoOiAyNSU7XG4gICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVkoLTUwJSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5zbGlkZS0taW50cm9fX3RpdGxlIHtcbiAgICAgICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKG1hcmdpbi10b3AsIC0wLjUpO1xuICAgICAgICBAZXh0ZW5kIC5mb250LXN0YW5kYXJkLXRoaW47XG4gICAgICAgIGZvbnQtc2l6ZTogMzc1JTtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIH1cblxuICAgICAgLnNsaWRlLS1pbnRyb19fc3VidGl0bGUge1xuICAgICAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2sobWFyZ2luLXRvcCwgLTAuNSk7XG4gICAgICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhwYWRkaW5nLWJvdHRvbSwgMS41KTtcbiAgICAgICAgQGV4dGVuZCAuZm9udC1zdGFuZGFyZC1ib2xkO1xuICAgICAgICBmb250LXNpemU6IDE5My43NSU7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYmxhY2s7XG4gICAgICB9XG5cbiAgICAgIC5zbGlkZS0taW50cm9fX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKG1hcmdpbi10b3AsIDEuNSk7XG4gICAgICAgIEBleHRlbmQgLmZvbnQtc3RhbmRhcmQtbGlnaHQtaXRhbGljO1xuICAgICAgICBmb250LXNpemU6IDkzLjc1JTtcbiAgICAgIH1cblxuICAgIH1cblxuICAgIC5zbGlkZS0tdGVtcGxhdGUxIHtcblxuICAgICAgLnNsaWRlLS10ZW1wbGF0ZTFfX3RpdGxlIHtcbiAgICAgICAgQGV4dGVuZCAuZm9udC1zdGFuZGFyZC1tZWRpdW07XG4gICAgICAgIGZvbnQtc2l6ZTogMTAwJTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcC1zbWFsbCkge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTE3JTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuc2xpZGUtLXRlbXBsYXRlMV9fc3VidGl0bGUge1xuICAgICAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2sobWFyZ2luLXRvcCwgLTAuNSk7XG4gICAgICAgIEBleHRlbmQgLmZvbnQtc3RhbmRhcmQtdGhpbjtcbiAgICAgICAgZm9udC1zaXplOiAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wLXNtYWxsKSB7XG4gICAgICAgICAgZm9udC1zaXplOiAxMDAlO1xuICAgICAgICAgIG1heC13aWR0aDogYXV0bztcbiAgICAgICAgICBsaW5lLWhlaWdodDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICB9XG5cbiAgICAgIC5zbGlkZS0tdGVtcGxhdGUxX19kZXNjcmlwdGlvbiB7XG4gICAgICAgIEBleHRlbmQgLmZvbnQtc3RhbmRhcmQtdGhpbjtcbiAgICAgICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKG1hcmdpbi10b3AsIDEpO1xuICAgICAgICBmb250LXNpemU6IDkzLjc1JTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgIHdpZHRoOiA2NSU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICB9XG5cbiAgICAgIC5zbGlkZS0tdGVtcGxhdGUxX19saW5rIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB3aWR0aDogNnJlbTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkYmx1ZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICY6aG92ZXJ7XG4gICAgICAgICAgYmFja2dyb3VuZDogJGJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3Atc21hbGwpIHtcbiAgICAgICAgICB3aWR0aDogMTByZW07XG4gICAgICAgIH1cblxuICAgICAgICBhIHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBAZXh0ZW5kIC5mb250LXN0YW5kYXJkLW1lZGl1bTtcbiAgICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgLmxlYXJuLW1vcmUge1xuICAgICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxMik7XG4gICAgICAgICAgcGFkZGluZzogMS41cmVtIDFyZW07XG4gICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAmOmhvdmVye1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wLXNtYWxsKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoMTQpO1xuICAgICAgICAgICAgcGFkZGluZzogMy4zcmVtIDJyZW07XG4gICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC50aW1lbGluZV9fdGltZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBoZWlnaHQ6IDEwMCUgLSAkc2xpZGVDb250YWluZXJIZWlnaHQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHRpbWVsaW5lLXRpbWUtYmFja2dyb3VuZDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJHRhYmxldCkge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgLnRpbWVsaW5lX190aW1lX19wb2ludC1jb250YWluZXJfX2xpbmUge1xuICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDUxJSBudWxsIG51bGwgbnVsbCk7XG4gICAgICBib3JkZXItYm90dG9tOiAycHggZG90dGVkICR0aW1lbGluZS1wb2ludC1jb2xvcjtcbiAgICB9XG5cbiAgICAudGltZWxpbmVfX3RpbWVfX2lubmVyIHtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibGFjaztcbiAgICAgIHdpZHRoOiA5OTk5cHg7XG4gICAgfVxuXG4gICAgLnRpbWVsaW5lX190aW1lX19wb2ludC1jb250YWluZXIge1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cblxuICAgIC50aW1lbGluZV9fdGltZV9fcG9pbnQge1xuICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGNvbG9yIDAuNXMpO1xuICAgICAgQGV4dGVuZCAuZm9udC1zdGFuZGFyZC1saWdodDtcbiAgICAgIEBpbmNsdWRlIHNpemUoMTA3cHggMTAwJSk7XG4gICAgICBmb250LXNpemU6IDkwJTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAudGltZWxpbmVfX3RpbWVfX3BvaW50X19pbm5lciB7XG4gICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCA1MCUgbnVsbCBudWxsIDUwJSk7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGUoLTUwJSwgLTgyJSkpO1xuICAgICAgfVxuXG4gICAgICAudGltZWxpbmVfX3RpbWVfX3BvaW50X19kb3Qge1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuM3MpO1xuICAgICAgICBAaW5jbHVkZSBzaXplKDlweCA5cHgpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibGFjaztcbiAgICAgICAgbWFyZ2luOiA5cHggYXV0byAwO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkdGltZWxpbmUtcG9pbnQtY29sb3I7XG4gICAgICB9XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICAudGltZWxpbmVfX3RpbWVfX3BvaW50X19kb3Qge1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogJGJsdWU7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgY29sb3I6ICRibHVlO1xuXG4gICAgICAgIC50aW1lbGluZV9fdGltZV9fcG9pbnRfX2RvdCB7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiAkYmx1ZTtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLmVkZ2Uge1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgMC43cyk7XG4gICAgICAgIGZvbnQtc2l6ZTogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRpbWVsaW5lLXBvaW50LWNvbG9yO1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuXG4gICAgICAgIC50aW1lbGluZV9fdGltZV9fcG9pbnRfX2lubmVyIHtcbiAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlKC01MCUsIC01MCUpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZTtcbiAgICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJAbWl4aW4gYXJ0aWNsZS1pdGVtLWNvbHVtbnMoJGNvbHVtbnMpIHtcbiAgd2lkdGg6ICgxMDAlIC8gMTIpICogJGNvbHVtbnM7XG59XG5cbi5hcnRpY2xlc3tcbiAgY29sb3I6ICRibGFjaztcbiAgQGluY2x1ZGUgZGlzcGxheShmbGV4KTtcbiAgQGluY2x1ZGUgZmxleC13cmFwKHdyYXApO1xuICBAaW5jbHVkZSBqdXN0aWZ5LWNvbnRlbnQoc3BhY2UtYmV0d2Vlbik7XG59XG5cbi5hcnRpY2xlLWl0ZW17XG4gIGZsb2F0OiBub25lO1xuICB3aWR0aDogMTAwJTtcbiAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKG1hcmdpbi1ib3R0b20sIDEuNSk7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJHRhYmxldCkge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAyOS4zMyU7XG4gICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKG1hcmdpbi1ib3R0b20sIDMpO1xuICB9XG5cbn1cblxuLmFydGljbGUtaXRlbV9faGVhZHtcbiAgbWFyZ2luOiAwO1xuICBsaW5lLWhlaWdodDogMC44O1xuICBAZXh0ZW5kIC5mb250LXN0YW5kYXJkLXRoaW47XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZSgyMCk7XG4gIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhtYXJnaW4tYm90dG9tLCAxLjUpO1xuICBAaW5jbHVkZSByZW0tZmFsbGJhY2sobGV0dGVyLXNwYWNpbmcsIC0wLjA2KTtcblxuICBAaW5jbHVkZSBtZWRpYSgkdGFibGV0KSB7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKDMwKTtcbiAgfVxufVxuXG4uYXJ0aWNsZS1pdGVtX19zdWJoZWFke1xuICBtYXJnaW46IDA7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBAZXh0ZW5kIC5mb250LXN0YW5kYXJkLXJvbWFuO1xuICBAaW5jbHVkZSBmb250LXNpemUoMTYpO1xuICBAaW5jbHVkZSByZW0tZmFsbGJhY2sobWFyZ2luLWJvdHRvbSwgMik7XG4gIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhsZXR0ZXItc3BhY2luZywgMC4wNik7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJHRhYmxldCkge1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgyMCk7XG4gIH1cbn1cblxuLmFydGljbGUtaXRlbV9fY29udGVudHtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgQGluY2x1ZGUgZm9udC1zaXplKDEyKTtcbiAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKG1heC1oZWlnaHQsIDIwKTtcblxuICBAaW5jbHVkZSBtZWRpYSgkdGFibGV0KSB7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKDE0KTtcbiAgfVxuXG59IiwiLnF1ZXN0aW9ubmFpcmUge1xuICBAaW5jbHVkZSB0cmFuc2l0aW9uKG9wYWNpdHkgMC41cyBlYXNlLW91dCk7XG4gIGJhY2tncm91bmQtY29sb3I6ICRibHVlO1xuICBjb2xvcjogJHdoaXRlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDgxcHggMCAxNDFweDtcbiAgb3BhY2l0eTogMDtcblxuICAmLmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIC5xdWVzdGlvbm5haXJlX19wYWdlcy1pbmZvIHtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKG9wYWNpdHkgMC41cyBlYXNlLW91dCk7XG4gICAgQGV4dGVuZCAuZm9udC1zdGFuZGFyZC10aGluLWl0YWxpYztcbiAgICBAaW5jbHVkZSBmb250LXNpemUoMTUpO1xuICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCBudWxsIDAgMjBweCAwKTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBvcGFjaXR5OiAwO1xuXG4gICAgJi5hY3RpdmUge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gIH1cblxuICAucXVlc3Rpb25uYWlyZV9fYW5zd2VyLXNldC13cmFwcGVyIHtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKG9wYWNpdHkgMC41cyBlYXNlLW91dCk7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgd2lkdGg6IDk5OTk5cHg7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMDtcblxuICAgICYuYWN0aXZlIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICB9XG5cbiAgLnF1ZXN0aW9ubmFpcmVfX3F1ZXN0aW9uIHtcbiAgICAucXVlc3Rpb25uYWlyZV9fcXVlc3Rpb25fX3F1ZXN0aW9uIHtcbiAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24ob3BhY2l0eSAwLjVzIGVhc2Utb3V0KTtcbiAgICAgIEBleHRlbmQgLmZvbnQtc3RhbmRhcmQtdGhpbjtcbiAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgyMCk7XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgd2lkdGg6IDgwJTtcblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJHRhYmxldCkge1xuICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoMjIpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA0NXB4O1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3Atc21hbGwpIHtcbiAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDMyKTtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3AtbGFyZ2UpIHtcbiAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDQwKTtcbiAgICAgIH1cblxuICAgICAgJi5hY3RpdmUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5xdWVzdGlvbm5haXJlX19xdWVzdGlvbl9fYW5zd2VyLXNldCB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG5cbiAgfVxuXG4gIC5xdWVzdGlvbm5haXJlX19xdWVzdGlvbl9fYW5zd2VyLXNldF9faW5uZXIge1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogNTAlO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJHRhYmxldCkge1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxuICB9XG5cbiAgLnF1ZXN0aW9ubmFpcmVfX2Nob2ljZS1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICB9XG5cbiAgLnF1ZXN0aW9ubmFpcmVfX2Nob2ljZSB7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbihjb2xvciAwLjVzIGVhc2Utb3V0LCBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMgZWFzZS1vdXQpO1xuICAgIEBleHRlbmQgLmZvbnQtc3RhbmRhcmQtbGlnaHQ7XG4gICAgQGluY2x1ZGUgc2l6ZSgxMDAlIDEwcmVtKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcXVlc3Rpb25uYWlyZS1jaG9pY2U7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCR0YWJsZXQpIHtcbiAgICAgIEBpbmNsdWRlIHNpemUoMTEwcHggMTEwcHgpO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcC1zbWFsbCkge1xuICAgICAgQGluY2x1ZGUgc2l6ZSgxNDVweCAxNDVweCk7XG4gICAgICBAaW5jbHVkZSBmb250LXNpemUoMTcpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wKSB7XG4gICAgICBAaW5jbHVkZSBzaXplKDE3MHB4IDE3MHB4KTtcbiAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgyMCk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3AtbWVkaXVtKSB7XG4gICAgICBAaW5jbHVkZSBzaXplKDIwMHB4IDIwMHB4KTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcC1sYXJnZSkge1xuICAgICAgQGluY2x1ZGUgc2l6ZSgyMjBweCAyMjBweCk7XG4gICAgfVxuXG4gICAgJi5hY3RpdmUge1xuICAgICAgY29sb3I6ICRibGFjaztcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRxdWVzdGlvbm5haXJlLWNob2ljZS1oaWdobGlnaHQ7XG4gICAgfVxuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG5cbiAgICAucXVlc3Rpb25uYWlyZV9fY2hvaWNlX19pbm5lciB7XG4gICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlKC01MCUsIC01MCUpKTtcbiAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCA1MCUgbnVsbCBudWxsIDUwJSk7XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCR0YWJsZXQpIHtcbiAgICAgICAgbWluLXdpZHRoOiAxMHJlbTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAucXVlc3Rpb25uYWlyZV9fY2hvaWNlX19kZXNjcmlwdGlvbiB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC5xdWVzdGlvbm5haXJlX19kZXNjcmlwdGlvbiB7XG4gICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIG51bGwgbnVsbCBudWxsIDUwJSk7XG4gICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVgoLTUwJSkpO1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24ob3BhY2l0eSAwLjI1cyBlYXNlLW91dCk7XG4gICAgb3BhY2l0eTogMDtcbiAgICBAZXh0ZW5kIC5mb250LXN0YW5kYXJkLWxpZ2h0O1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxNSk7XG4gICAgZGlzcGxheTogbm9uZTtcblxuICAgIG1hcmdpbjogMzdweCBhdXRvIDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJHRhYmxldCkge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3Atc21hbGwpIHtcbiAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxNik7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3AtbWVkaXVtKSB7XG4gICAgICBAaW5jbHVkZSBmb250LXNpemUoMTkpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wLWxhcmdlKSB7XG4gICAgICBAaW5jbHVkZSBmb250LXNpemUoMjApO1xuICAgIH1cblxuICAgICYuYWN0aXZlIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgLnF1ZXN0aW9ubmFpcmVfX2Rlc2NyaXB0aW9uX19uYW1lIHtcbiAgICAgIEBleHRlbmQgLmZvbnQtc3RhbmRhcmQtbWVkaXVtO1xuICAgIH1cbiAgfVxuXG4gIC5xdWVzdGlvbm5haXJlX19uYXYge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24ob3BhY2l0eSAwLjVzIGVhc2Utb3V0KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcXVlc3Rpb25uYWlyZS1jaG9pY2U7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogNDBweDtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHotaW5kZXg6IDE7XG4gICAgZm9udC1zaXplOiA4MCU7XG5cbiAgICAmLmFjdGl2ZSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICYuZGlzYWJsZWQge1xuICAgICAgb3BhY2l0eTogMC4zO1xuICAgIH1cblxuICAgIC5pY29uIHtcbiAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGUoLTUwJSwgLTUwJSkgcm90YXRlKDkwZGVnKSk7XG4gICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgNTAlIG51bGwgbnVsbCA1MCUpO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxMik7XG4gICAgICBjb2xvcjogJHdoaXRlO1xuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgkdGFibGV0KSB7XG4gICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgyOCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJHRhYmxldCkge1xuICAgICAgd2lkdGg6IDgwcHg7XG4gICAgICBmb250LXNpemU6IDEwMCU7XG4gICAgfVxuXG4gIH1cblxuICAucXVlc3Rpb25uYWlyZV9fbmF2LS1uZXh0IHtcbiAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMCAwIDAgbnVsbCk7XG5cbiAgICAuaWNvbiB7XG4gICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlKC01MCUsIC01MCUpIHJvdGF0ZSg5MGRlZykpO1xuICAgIH1cbiAgfVxuXG4gIC5xdWVzdGlvbm5haXJlX19uYXYtLXByZXYge1xuICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAwIG51bGwgMCAwKTtcblxuICAgIC5pY29uIHtcbiAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGUoLTUwJSwgLTUwJSkgcm90YXRlKC05MGRlZykpO1xuICAgIH1cbiAgfVxufVxuIiwiLm1lZGl1bS1ibG9jayB7XG4gIGNvbG9yOiAkYmxhY2s7XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZSgxNSk7XG5cbiAgLm1lZGl1bS1ibG9ja19faGVhZGVyIHtcbiAgICBAZXh0ZW5kIC5mb250LXN0YW5kYXJkLXRoaW47XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKDQwKTtcbiAgfVxuXG4gIC5tZWRpdW0tYmxvY2tfX3N1YmhlYWRlciB7XG4gICAgQGV4dGVuZCAuZm9udC1zdGFuZGFyZC1ib2xkO1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgyMCk7XG4gIH1cblxuICAubWVkaXVtLWJsb2NrX19kZXNjcmlwdGlvbiB7XG4gICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKG1hcmdpbi10b3AsIDMuNSk7XG4gIH1cbn1cbiIsIi50aHJlZS1jb2x1bW4ge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgY29sb3I6ICRibGFjaztcblxuICAudGhyZWUtY29sdW1uX19jb2x1bW4ge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhwYWRkaW5nLCAxLjUpO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJHRhYmxldCkge1xuICAgICAgd2lkdGg6IDMzLjMlO1xuICAgIH1cbiAgfVxuXG4gIC50aHJlZS1jb2x1bW5fX3RpdGxlIHtcbiAgICBAZXh0ZW5kIC5mb250LXN0YW5kYXJkLXRoaW47XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKDI1KTtcbiAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2sobWFyZ2luLWJvdHRvbSwgMS41KTtcbiAgfVxufVxuIiwiLmZ1bGxzY3JlZW4tbW9kYWwubmV3c2xldHRlcntcbiAgei1pbmRleDogMzA7XG59XG5cbi5uZXdzbGV0dGVyX19zaWdudXB7XG4gIGNvbG9yOiAkYmxhY2s7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gIG1heC13aWR0aDogNTZyZW07XG4gIHdpZHRoOiA5MCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogNTAlO1xuICB0b3A6IDA7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogM3JlbTtcbiAgXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIDguNXJlbSk7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3Atc21hbGwpIHtcbiAgICB3aWR0aDogNjAlO1xuICB9XG5cbiAgLmZ1bGxzY3JlZW4tbW9kYWxfX2Nsb3Nle1xuICBcbiAgICByaWdodDogLTAuNXJlbTtcbiAgICB0b3A6IC00cmVtO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogM3JlbTtcbiAgICBoZWlnaHQ6IDNyZW07XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcC1zbWFsbCkge1xuICAgICAgdG9wOiAtNnJlbTtcbiAgICAgIHJpZ2h0OiAtNnJlbTtcbiAgICAgIHdpZHRoOiA1cmVtO1xuICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgIH1cblxuICB9XG5cbiAgZmllbGRzZXR7XG4gICAgbWFyZ2luOiAwO1xuICAgIGJvcmRlcjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIEBleHRlbmQgJWNsZWFyZml4O1xuICB9XG5cbiAgZm9ybXtcbiAgICBwYWRkaW5nOiAwIDFyZW07XG4gICAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3Atc21hbGwpIHtcbiAgICAgIHBhZGRpbmc6IDAgMy41cmVtO1xuICAgIH1cbiAgfVxuXG4gIGhlYWRlcntcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDE2cmVtO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uLXg6IGNlbnRlcjtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wLXNtYWxsKSB7XG4gICAgICBoZWlnaHQ6IDMycmVtO1xuICAgIH1cbiAgfVxuXG4gIGgye1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDEuNXB4O1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgyMCk7XG4gICAgQGV4dGVuZCAuZm9udC1zdGFuZGFyZC10aGluO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3Atc21hbGwpIHtcbiAgICAgIG1hcmdpbi10b3A6IDNyZW07XG4gICAgICBAaW5jbHVkZSBmb250LXNpemUoMzUpO1xuICAgIH1cbiAgfVxuXG4gIGgze1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW46IDEuNXJlbSAwO1xuICAgIEBleHRlbmQgLmZvbnQtc3RhbmRhcmQtdGhpbjtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wLXNtYWxsKSB7XG4gICAgICBtYXJnaW46IDMuMnJlbSAwO1xuICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDIwKTtcbiAgICB9XG4gIH1cbiAgXG4gIGlucHV0W3R5cGU9XCJ0ZXh0XCJde1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogNC41cmVtO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjRThFOEU4O1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgcGFkZGluZzogMCAxLjlyZW07XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG5cblxuICAgIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wLXNtYWxsKSB7XG4gICAgICB3aWR0aDogMjMuNXJlbTtcbiAgICAgICYubGVmdHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAycmVtO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICAgICAgfVxuXG4gICAgICAmLnJpZ2h0e1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uZm9ybV9fbG9naW4tZm9ybV9fZm9vdGVyLWNvbnRlbnR7XG4gIGNvbG9yOiAkYmxhY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAucmVxdWlyZWQsIC5zdWJtaXQtYnRue1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxuXG4gIC5yZXF1aXJlZHtcbiAgICBtYXJnaW4tdG9wOiAzcmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAxcmVtO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcblxuICAgICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcC1zbWFsbCkge1xuICAgICAgbWFyZ2luLWxlZnQ6IDJyZW07XG4gICAgfVxuXG4gIH1cblxuICAuc3VibWl0LWJ0bntcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDFyZW07XG4gICAgdG9wOiAycmVtO1xuXG4gICAgLmJ1dHRvbi5zdGFuZGFyZC1ibGFja3tcbiAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcC1zbWFsbCkge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDEuOHJlbTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcC1zbWFsbCkge1xuICAgICAgcmlnaHQ6IDEuOHJlbTtcbiAgICB9XG5cbiAgfVxufVxuXG4uZm9ybV9fbG9naW4tZm9ybV9fZm9vdGVye1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gIGhlaWdodDogOHJlbTtcbn1cblxuIiwiaGVhZGVyLmhlYWRlcntcbiAgei1pbmRleDogMjI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmhlYWRlci1kZXNrdG9wIHtcbiAgQGluY2x1ZGUgcG9zaXRpb24oZml4ZWQsIDAgMCBudWxsIDApO1xuICBkaXNwbGF5OiBub25lO1xuICB6LWluZGV4OiAyMDtcblxuICBAaW5jbHVkZSBtZWRpYSgkdGFibGV0KSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAuaGVhZGVyLXRvcCB7XG4gICAgQGV4dGVuZCAlY2xlYXJmaXg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrO1xuICAgIHotaW5kZXg6IDIxO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuXG4gIGEuaGVhZGVyLXRvcF9fbGluayB7XG4gICAgQGV4dGVuZCAuZm9udC1zdGFuZGFyZC1yb21hbjtcbiAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2socGFkZGluZywgMS43LCAyLjUpO1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxNSk7XG4gICAgY29sb3I6ICRjb3B5LWdyZXk7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIC5pY29uIHtcbiAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCA1MCUgbnVsbCBudWxsIG51bGwpO1xuICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDEzKTtcbiAgICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhsZWZ0LCAtMi40KTtcbiAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVZKC01MCUpKTtcbiAgICB9XG5cbiAgICAmOmhvdmVye1xuICAgICAgY29sb3I6ICRsaW5rLWJsdWU7XG4gICAgfVxuXG4gICAgJi5hY3RpdmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgICAgY29sb3I6ICRibGFjaztcbiAgICB9XG4gIH1cblxuICAubmF2LWJhY2tncm91bmQge1xuICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAwIDAgMCAwKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2s7XG4gICAgei1pbmRleDogMjA7XG4gIH1cblxuICAubmF2LXNpdGVzIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMjA7XG4gIH1cblxuICAubmF2LWF1eGlsaWFyeSB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAyMDtcblxuICAgIGEuaGVhZGVyLXRvcF9fbGluayB7XG4gICAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2sobWFyZ2luLXJpZ2h0LCA3KTtcbiAgICAgIGNvbG9yOiAkY29weS1ncmV5O1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgcGFkZGluZy1yaWdodDogMDtcblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKG1hcmdpbi1yaWdodCwgMi40KTtcbiAgICAgIH1cblxuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKHRyYW5zZm9ybSAwLjFzKTtcbiAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIG51bGwgbnVsbCAtMTAuNHB4IDUwJSk7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGUoLTUwJSwgLTEwMCUpKTtcbiAgICAgICAgQGluY2x1ZGUgdHJpYW5nbGUoMjFweCwgJGJsYWNrLCBkb3duKTtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuXG4gICAgICAmOmhvdmVye1xuICAgICAgICBjb2xvcjogJGxpbmstYmx1ZTtcbiAgICAgIH1cblxuICAgICAgJi5hY3RpdmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcblxuICAgICAgICAuaWNvbiB7XG4gICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKHRyYW5zZm9ybSAwLjVzIDAuNXMpO1xuICAgICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGUoLTUwJSwgMCkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmhlYWRlci1zZWNvbmRhcnkge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24odHJhbnNmb3JtIDAuNXMpO1xuICAgIEBpbmNsdWRlIHBvc2l0aW9uKGZpeGVkLCBudWxsIDAgbnVsbCAwKTtcbiAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWSgtMTAwJSkpO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcblxuICAgICYuYWN0aXZlIHtcbiAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVZKDApKTtcbiAgICB9XG4gIH1cblxuICAuaGVhZGVyLXNlY29uZGFyeV9fbG9nbyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayh0b3AsIDIuNCk7XG4gICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKGxlZnQsIDIuMSk7XG5cbiAgICBhIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG5cbiAgICBpIHtcbiAgICAgIGNvbG9yOiAkYmxhY2s7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAuaWNvbi1sb2dvIHtcbiAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgzNyk7XG4gICAgfVxuXG4gICAgLmljb24tdHJ1c3QtdGhlLWV4cGVydHMge1xuICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDEyKTtcbiAgICB9XG4gIH1cblxuICAubmF2LW1haW4ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuXG4gIC5uYXYtbWFpbl9fbGlua3Mge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2sobWFyZ2luLWxlZnQsIDE4KTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wLWxhcmdlKSB7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG5cbiAgICAubmF2LW1haW5fX2xpbmtzX190aXRsZSB7XG4gICAgICBAZXh0ZW5kIC5mb250LXN0YW5kYXJkLWxpZ2h0LWV4cGFuZGVkO1xuICAgICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKHBhZGRpbmcsIDQsIDApO1xuICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDE2KTtcbiAgICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhtYXJnaW4tcmlnaHQsIDIpO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgY29sb3I6ICRibGFjaztcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIH1cblxuICAgICAgJjpob3ZlcntcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAmOmJlZm9yZXtcbiAgICAgICAgICBjb250ZW50OicnO1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRibGFjaztcbiAgICAgICAgICBib3R0b206IDMuNHJlbTtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcC1zbWFsbCkge1xuICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoMjApO1xuICAgICAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2sobWFyZ2luLXJpZ2h0LCAzKTtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3ApIHtcbiAgICAgICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKG1hcmdpbi1yaWdodCwgNik7XG4gICAgICB9XG5cbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIG51bGwgbnVsbCAtN3B4IDUwJSk7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVYKC01MCUpKTtcbiAgICAgICAgQGluY2x1ZGUgdHJpYW5nbGUoMjFweCwgJHdoaXRlLCBkb3duKTtcbiAgICAgICAgei1pbmRleDogMTE7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgfVxuXG4gICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5uYXYtbWFpbl9fbmF2LXdyYXBwZXIge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICYuYWN0aXZlIHtcbiAgICAgIGhlaWdodDogMTAwdmg7XG4gICAgfVxuICB9XG5cbiAgLm5hdi1tYWluX19uYXYtY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgbnVsbCAwIG51bGwgMCk7XG4gICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKHBhZGRpbmcsIDQuOSwgMCk7XG4gICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVkoLTEwMCUpKTtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKHRyYW5zZm9ybSAwLjVzKTtcbiAgICBjb2xvcjogJHdoaXRlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRibGFjaztcbiAgICB6LWluZGV4OiAxMDtcblxuICAgICYuYWN0aXZlIHtcbiAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVZKDApKTtcbiAgICB9XG5cbiAgICAubWFpbi1uYXZfX25hdi1jb2x1bW4ge1xuICAgICAgd2lkdGg6IDMzLjMlO1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2sobWFyZ2luLWJvdHRvbSwgNSk7XG5cbiAgICB9XG5cbiAgICAubWFpbi1uYXZfX25hdi1jb2x1bW4tLWRldGFpbGVkIHtcbiAgICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhwYWRkaW5nLWxlZnQsIDUpO1xuICAgICAgd2lkdGg6IDUwJTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcC1zbWFsbCkge1xuICAgICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKHBhZGRpbmctbGVmdCwgMCk7XG5cbiAgICAgIC5tYWluLW5hdl9fbmF2LWNvbHVtbiB7XG4gICAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg0IG9mIDEyKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgfVxuXG4gICAgICAubWFpbi1uYXZfX25hdi1jb2x1bW4tLWRldGFpbGVkIHtcbiAgICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDMgb2YgMTIpO1xuICAgICAgICAvL21hcmdpbi1ib3R0b206IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgW2RhdGEtbW9kdWxlLWhlbHBlcj1jbG9zZV0ge1xuICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDI1cHggMjFweCBudWxsIG51bGwpO1xuICAgIH1cblxuICAgIC5tYWluLW5hdl9fbmF2LWNvbHVtbl9fdGl0bGUge1xuICAgICAgQGV4dGVuZCAuZm9udC1zdGFuZGFyZC10aGluO1xuICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDI1KTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICBmb250LXdlaWdodDogMTAwO1xuICAgIH1cblxuICAgIC5tYWluLW5hdl9fbmF2LWNvbHVtbl9fbGlua3Mge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgYSB7XG4gICAgICAgIGNvbG9yOiAkd2hpdGUtZ3JleTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEzcHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1haW4tbmF2X19uYXYtY29sdW1uX19saW5rcy0tZGV0YWlsZWQge1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuN3B4O1xuICAgICAgQGV4dGVuZCAuZm9udC1zdGFuZGFyZC1yb21hbjtcbiAgICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhoZWlnaHQsIDE4KTtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICAgIGEge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxM3B4O1xuICAgICAgICAmOmhvdmVye1xuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICBjb2xvcjogJGxpbmstYmx1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5tYWluLW5hdl9fbmF2LWNvbHVtbl9fZXh0cmEge1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuN3B4O1xuICAgICAgQGV4dGVuZCAuZm9udC1zdGFuZGFyZC1yb21hbjtcbiAgICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhtYXJnaW4tYm90dG9tLCA0LjIpO1xuICAgICAgYSB7XG4gICAgICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhtYXJnaW4tYm90dG9tLCAxLjQpO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgY29sb3I6ICRncmV5ODtcblxuICAgICAgICAmOmhvdmVye1xuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICBjb2xvcjogJGxpbmstYmx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5tYWluLW5hdl9fbmF2LWNvbHVtbl9fc2hvcC1hbGwge1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuN3B4O1xuICAgICAgQGV4dGVuZCAuZm9udC1zdGFuZGFyZC1yb21hbjtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIC5zaG9wLWFsbC1saW5rIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIEBleHRlbmQgLmZvbnQtc3RhbmRhcmQtbWVkaXVtO1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgY29sb3I6ICR3aGl0ZS1ncmV5O1xuXG4gICAgICAgICY6aG92ZXJ7XG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgIGNvbG9yOiAkbGluay1ibHVlO1xuICAgICAgICB9XG5cbiAgICAgIH1cblxuICAgICAgLmNpcmNsZS0tY2FyZXQge1xuICAgICAgICBAaW5jbHVkZSBzaXplKDIxcHggMjFweCk7XG4gICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAtMXB4IDQ4cHggbnVsbCBudWxsKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWFpbi1uYXZfX25hdi1jb2x1bW5fX2hlbHAge1xuICAgICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKG1hcmdpbi1ib3R0b20sIDQuMik7XG4gICAgICBhIHtcbiAgICAgICAgY29sb3I6ICRsaW5rLWJsdWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm5hdi1tYWluX19uYXYtaW5uZXIge1xuICAgICAgQGluY2x1ZGUgb3V0ZXItY29udGFpbmVyKDgwMHB4KTtcbiAgICB9XG5cbiAgICAmLm5hdi1tYWluX19uYXYtY29udGFpbmVyLS1kZXRhaWxlZCB7XG4gICAgICAubmF2LW1haW5fX25hdi1pbm5lciB7XG4gICAgICAgIEBpbmNsdWRlIG91dGVyLWNvbnRhaW5lcig5ODBweCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm5hdi1tYWluX19mZWF0dXJlZC1wcm9kdWN0cyB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2socGFkZGluZywgMywgMCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3Atc21hbGwpIHtcbiAgICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhtYXJnaW4tdG9wLCAzLjkpO1xuICAgIH1cblxuICAgIC5uYXYtbWFpbl9fZmVhdHVyZWQtcHJvZHVjdHNfX2lubmVyIHtcbiAgICAgIEBpbmNsdWRlIG91dGVyLWNvbnRhaW5lcjtcbiAgICB9XG5cbiAgICAubmF2LW1haW5fX2ZlYXR1cmVkLXByb2R1Y3RzX19pdGVtIHtcbiAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygyLjQgb2YgMTIpO1xuICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDEyKTtcbiAgICAgIEBleHRlbmQgLmZvbnQtc3RhbmRhcmQtdGhpbjtcbiAgICAgIGNvbG9yOiAkZ3JleTk7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgIGltZyB7XG4gICAgICAgIEBpbmNsdWRlIHNpemUoMTIwcHggMTIwcHgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiJHN1YmhlYWRlci1oZWlnaHQtZGVza3RvcC1sYXJnZTogMjQ7XG4kc3ViaGVhZGVyLWhlaWdodC1kZXNrdG9wOiAxOS4xO1xuJHN1YmhlYWRlci1oZWlnaHQtZGVza3RvcC1zbWFsbDogMTYuNDtcbiRkcmF3ZXItYnV0dG9uLXdpZHRoOiA5O1xuJGVhc2UtaW4tb3V0LXF1YXJ0OiBjdWJpYy1iZXppZXIoMC43NywgMCwgMC4xNzUsIDEpO1xuJGVhc2Utb3V0LXF1aW50OiBjdWJpYy1iZXppZXIoMC4xOSwgMSwgMC4yMiwgMSk7XG5cbi5zdWJoZWFkZXIge1xuICBAZXh0ZW5kIC5mb250LXN0YW5kYXJkLWxpZ2h0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMjtcblxuICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcC1zbWFsbCkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgLnNob3cgJntcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbn1cblxuLnN1YmhlYWRlci1jdGEge1xuICBvcGFjaXR5OiAxO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIEBpbmNsdWRlIHJlbS1mYWxsYmFjayh0b3AsIC0wLjUpO1xuICBAaW5jbHVkZSByZW0tZmFsbGJhY2socmlnaHQsIDEuNSk7XG4gIEBpbmNsdWRlIHRyYW5zaXRpb24ob3BhY2l0eSAwLjNzIGVhc2UtaW4gMC41cyk7XG5cbiAgLnN1YmhlYWRlci1jdGFfX2NvcHkge1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSg0MCk7XG4gICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKG1hcmdpbi1yaWdodCwgJGRyYXdlci1idXR0b24td2lkdGggKyAyKTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC13ZWlnaHQ6IDIwMDtcbiAgICBjb2xvcjogJGJsYWNrO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3Atc21hbGwpIHtcbiAgICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhsaW5lLWhlaWdodCwgJHN1YmhlYWRlci1oZWlnaHQtZGVza3RvcC1zbWFsbCk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3ApIHtcbiAgICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhsaW5lLWhlaWdodCwgJHN1YmhlYWRlci1oZWlnaHQtZGVza3RvcCk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3AtbGFyZ2UpIHtcbiAgICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhsaW5lLWhlaWdodCwgJHN1YmhlYWRlci1oZWlnaHQtZGVza3RvcC1sYXJnZSk7XG4gICAgfVxuICB9XG59XG5cbi5zdWJoZWFkZXItZHJhd2VyIHtcbiAgQGV4dGVuZCAlY2xlYXJmaXg7XG4gIGJhY2tncm91bmQtY29sb3I6ICRibHVlO1xuICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWCg5My43JSkpO1xuICBAaW5jbHVkZSB0cmFuc2l0aW9uKHRyYW5zZm9ybSAwLjhzICRlYXNlLWluLW91dC1xdWFydCk7XG5cbiAgLnN1YmhlYWRlci1kcmF3ZXJfX2J0biB7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIDAuNXMpO1xuICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayh3aWR0aCwgJGRyYXdlci1idXR0b24td2lkdGgpO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3Atc21hbGwpIHtcbiAgICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhsaW5lLWhlaWdodCwgJHN1YmhlYWRlci1oZWlnaHQtZGVza3RvcC1zbWFsbCk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3ApIHtcbiAgICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhsaW5lLWhlaWdodCwgJHN1YmhlYWRlci1oZWlnaHQtZGVza3RvcCk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3AtbGFyZ2UpIHtcbiAgICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhsaW5lLWhlaWdodCwgJHN1YmhlYWRlci1oZWlnaHQtZGVza3RvcC1sYXJnZSk7XG4gICAgfVxuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmbG9hdDogbGVmdDtcbiAgfVxuXG4gIC5zdWJoZWFkZXItZHJhd2VyX19idG5fX2Fycm93IHtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKHRyYW5zZm9ybSAwLjNzIDAuNXMpO1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSg2Mik7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZvbnQtd2VpZ2h0OiAxMDA7XG4gICAgY29sb3I6ICR3aGl0ZTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wLXNtYWxsKSB7XG4gICAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2socmlnaHQsIDEpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wKSB7XG4gICAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2socmlnaHQsIDAuNCk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3AtbGFyZ2UpIHtcbiAgICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhyaWdodCwgLTAuMyk7XG4gICAgfVxuICB9XG5cbiAgLnN1YmhlYWRlci1pdGVtc19faXRlbSB7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbihvcGFjaXR5IDAuNXMpO1xuICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhtYXJnaW4tbGVmdCwgMSk7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcC1zbWFsbCkge1xuICAgICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKHdpZHRoLCAkc3ViaGVhZGVyLWhlaWdodC1kZXNrdG9wLXNtYWxsKTtcbiAgICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhoZWlnaHQsICRzdWJoZWFkZXItaGVpZ2h0LWRlc2t0b3Atc21hbGwpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wKSB7XG4gICAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2sod2lkdGgsICRzdWJoZWFkZXItaGVpZ2h0LWRlc2t0b3ApO1xuICAgICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKGhlaWdodCwgJHN1YmhlYWRlci1oZWlnaHQtZGVza3RvcCk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3AtbGFyZ2UpIHtcbiAgICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayh3aWR0aCwgJHN1YmhlYWRlci1oZWlnaHQtZGVza3RvcC1sYXJnZSk7XG4gICAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2soaGVpZ2h0LCAkc3ViaGVhZGVyLWhlaWdodC1kZXNrdG9wLWxhcmdlKTtcbiAgICB9XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHQtYmx1ZTtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuXG4gIC5zdWJoZWFkZXItaXRlbXNfX2l0ZW1fX3RpdGxlIHtcbiAgICBAaW5jbHVkZSBwb3NpdGlvbihyZWxhdGl2ZSwgNTAlIG51bGwgbnVsbCBudWxsKTtcbiAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWSgtNTAlKSk7XG4gICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKG1heC13aWR0aCwgMTQpO1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgyMCk7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICAuc3ViaGVhZGVyLWl0ZW1zX19hY3RpdmUtaXRlbSB7XG4gICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDAgbnVsbCBudWxsIDApO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3Atc21hbGwpIHtcbiAgICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayh3aWR0aCwgJHN1YmhlYWRlci1oZWlnaHQtZGVza3RvcC1zbWFsbCk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3ApIHtcbiAgICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayh3aWR0aCwgJHN1YmhlYWRlci1oZWlnaHQtZGVza3RvcCk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3AtbGFyZ2UpIHtcbiAgICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayh3aWR0aCwgJHN1YmhlYWRlci1oZWlnaHQtZGVza3RvcC1sYXJnZSk7XG4gICAgfVxuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgIGNvbG9yOiAkYmxhY2s7XG4gICAgZGlzcGxheTogbm9uZTtcblxuICAgIGEge1xuICAgICAgY29sb3I6ICRibGFjaztcbiAgICB9XG4gIH1cblxuICAuc3ViaGVhZGVyLWl0ZW1zX19hY3RpdmUtaXRlbV9faW1nLWNvbnRhaW5lciB7XG4gICAgaW1nIHtcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wLXNtYWxsKSB7XG4gICAgICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayh3aWR0aCwgJHN1YmhlYWRlci1oZWlnaHQtZGVza3RvcC1zbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhoZWlnaHQsICRzdWJoZWFkZXItaGVpZ2h0LWRlc2t0b3Atc21hbGwpO1xuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcCkge1xuICAgICAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2sod2lkdGgsICRzdWJoZWFkZXItaGVpZ2h0LWRlc2t0b3ApO1xuICAgICAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2soaGVpZ2h0LCAkc3ViaGVhZGVyLWhlaWdodC1kZXNrdG9wKTtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3AtbGFyZ2UpIHtcbiAgICAgICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKHdpZHRoLCAkc3ViaGVhZGVyLWhlaWdodC1kZXNrdG9wLWxhcmdlKTtcbiAgICAgICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKGhlaWdodCwgJHN1YmhlYWRlci1oZWlnaHQtZGVza3RvcC1sYXJnZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnN1YmhlYWRlci1pdGVtc19fYWN0aXZlLWl0ZW1fX2JlbG93LWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKHBhZGRpbmcsIDEuNSwgMiwgMik7XG4gIH1cblxuICAuc3ViaGVhZGVyLWl0ZW1zX19hY3RpdmUtaXRlbV9fdGl0bGUge1xuICAgIEBleHRlbmQgLmZvbnQtc3RhbmRhcmQtbGlnaHQ7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKDIwKTtcbiAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2sobWFyZ2luLWJvdHRvbSwgMC41KTtcbiAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2sobGV0dGVyLXNwYWNpbmcsIC0wLjA3Myk7XG4gIH1cblxuICAuc3ViaGVhZGVyLWl0ZW1zX19hY3RpdmUtaXRlbV9fbGlzdCB7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKDE1KTtcbiAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2sobGV0dGVyLXNwYWNpbmcsIC0wLjAxKTtcblxuICAgIGxpIHtcbiAgICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhtYXJnaW4tYm90dG9tLCAwLjkpO1xuICAgIH1cblxuICAgIGEge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG5cbiAgLnN1YmhlYWRlci1pdGVtc19fYWN0aXZlLWl0ZW1fX2hlbHAtbGluay1jb250YWluZXIge1xuICAgIGEge1xuICAgICAgQGV4dGVuZCAuZm9udC1zdGFuZGFyZC1tZWRpdW07XG4gICAgICBAaW5jbHVkZSBmb250LXNpemUoMTMpO1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBjb2xvcjogIzFiNjQ5NDtcbiAgICB9XG4gIH1cblxuICAuc3ViaGVhZGVyLWl0ZW1zX19hY3RpdmUtaXRlbV9fc2hvcC1saW5rLWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKG1hcmdpbi10b3AsIDEuOSk7XG4gICAgQGV4dGVuZCAuZm9udC1zdGFuZGFyZC1tZWRpdW07XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKDE1KTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgLmJ1dHRvbiB7XG4gICAgICBAaW5jbHVkZSBzaXplKDIzcHggMjNweCk7XG4gICAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2sodG9wLCAtMC4yKTtcbiAgICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhyaWdodCwgLTAuMSk7XG5cbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB9XG4gIH1cbn1cblxuLnN1YmhlYWRlci1pdGVtc19faXRlbTpob3ZlciB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuXG4gIC5zdWJoZWFkZXItaXRlbXNfX2FjdGl2ZS1pdGVtIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuXG4uc3ViaGVhZGVyLmFjdGl2ZSB7XG4gIHotaW5kZXg6IDI7XG5cbiAgLnN1YmhlYWRlci1kcmF3ZXIge1xuICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVYKDApKTtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKHRyYW5zZm9ybSAwLjhzICRlYXNlLWluLW91dC1xdWFydCAwLjFzKTtcbiAgfVxuXG4gIC5zdWJoZWFkZXItY3RhIHtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKG9wYWNpdHkgMC4zcyBlYXNlLW91dCk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIC5zdWJoZWFkZXItZHJhd2VyX19idG4ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRsaWdodC1ibHVlO1xuICB9XG5cbiAgLnN1YmhlYWRlci1pdGVtc19faXRlbSB7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbihvcGFjaXR5IDAuMjVzIDAuOXMgZWFzZS1vdXQpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAuc3ViaGVhZGVyLWRyYXdlcl9fYnRuX19hcnJvdyB7XG4gICAgQGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZSgxODBkZWcpKTtcbiAgfVxufVxuXG4uc3ViaGVhZGVyLXByb2R1Y3Rze1xuICBAZXh0ZW5kIC5mb250LXN0YW5kYXJkLXRoaW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRibGFjaztcbiAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKHBhZGRpbmctYm90dG9tLCAxKTtcbiAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKG1hcmdpbiwgMCwgMCwgMiwgMCk7XG5cbiAgYXtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDA7XG4gICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKGJvdHRvbSwgMC45KTtcbiAgfVxuXG4gIGgye1xuICAgIGNvbG9yOiAkYmxhY2s7XG4gICAgbWFyZ2luOiAwO1xuICAgIGxpbmUtaGVpZ2h0OiAwLjg1O1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgyNik7XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgkdGFibGV0KSB7XG4gICAgaDJ7XG4gICAgICBAaW5jbHVkZSBmb250LXNpemUoNDApO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wLXNtYWxsKSB7XG4gICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKHBhZGRpbmctYm90dG9tLCAxLjgpO1xuICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhtYXJnaW4sIDAsIDAsIDUsIDApO1xuXG4gICAgYXtcbiAgICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhib3R0b20sIDEuNyk7XG4gICAgfVxuXG4gICAgaDJ7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBsaW5lLWhlaWdodDogMC44O1xuICAgICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKHdvcmQtc3BhY2luZywgMC41KTtcbiAgICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhsZXR0ZXItc3BhY2luZywgMC4zMik7XG4gICAgICBAZXh0ZW5kIC5mb250LXN0YW5kYXJkLXRoaW47XG4gICAgICBAaW5jbHVkZSBmb250LXNpemUoNjApO1xuICAgIH1cbiAgfVxufVxuXG4uc3ViaGVhZGVyLWltYWdle1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBAaW5jbHVkZSByZW0tZmFsbGJhY2soaGVpZ2h0LCAyMCk7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXIgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQgIWltcG9ydGFudDtcblxuICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcC1zbWFsbCkge1xuICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhoZWlnaHQsIDQzKTtcbiAgfVxuXG4gICYubmFycm93e1xuICAgIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wLXNtYWxsKSB7XG4gICAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2soaGVpZ2h0LCAzMCk7XG4gICAgfVxuICB9XG5cbiAgJi5maXhlZHtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgfVxufVxuXG5cbiIsIiRmb290ZXItYm90dG9tLWhlaWdodDogNTtcblxuXG4ubWFpbi1mb290ZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDIwO1xuICBcbiAgQGV4dGVuZCAuZm9udC1zdGFuZGFyZC10aGluO1xuICAubWFpbi1mb290ZXJfX3RvcCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrO1xuICB9XG5cbiAgLm1haW4tZm9vdGVyX19ib3R0b20ge1xuICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhwYWRkaW5nLCAyLjUsIDQsIDEuNSwgNSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJnLWdyZXk7XG4gIH1cblxuICAucHJvZHVjdC1saW5rcy1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygxKTtcbiAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2socGFkZGluZywgNS42LCAwLCAyLCA1KTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCR0YWJsZXQpIHtcbiAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygxMik7XG4gICAgfVxuICAgIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wLXNtYWxsKSB7XG4gICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNy43KTtcbiAgICB9XG5cbiAgICAucHJvZHVjdC1ncm91cCB7XG4gICAgICBAaW5jbHVkZSBtZWRpYSgkdGFibGV0KSB7XG4gICAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg0IG9mIDEyKTtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3Atc21hbGwpIHtcbiAgICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zICgyLjU2IG9mIDcuNyk7IC8vIDMgY29sdW1uc1xuICAgICAgfVxuICAgIH1cblxuICAgIC5wcm9kdWN0LWdyb3VwX19pbm5lci1ncm91cCB7XG4gICAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2sobWFyZ2luLWJvdHRvbSwgNCk7XG4gICAgICBAaW5jbHVkZSBtZWRpYSgkdGFibGV0KSB7XG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5wcm9kdWN0LWdyb3VwX190aXRsZSB7XG4gICAgICBAaW5jbHVkZSBmb250LXNpemUoMjUpO1xuICAgICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKG1hcmdpbi1ib3R0b20sIDEuMSk7XG4gICAgICBjb2xvcjogJHdoaXRlLWdyZXk7XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wLXNtYWxsKSB7XG4gICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgyMCk7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wKSB7XG4gICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgyNCk7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wLWxhcmdlKSB7XG4gICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgyNSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnByb2R1Y3QtZ3JvdXBfX25hdiA+ICoge1xuICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDE1KTtcbiAgICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhtYXJnaW4tYm90dG9tLCAxLjYpO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBjb2xvcjogJHdoaXRlO1xuXG4gICAgICAmOmhvdmVye1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGNvbG9yOiAkbGluay1ibHVlO1xuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcC1zbWFsbCkge1xuICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoMTMpO1xuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcCkge1xuICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoMTUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5zb2NpYWwge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiZy1ncmV5O1xuICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygxKTtcbiAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2socGFkZGluZywgMyk7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkdGFibGV0KSB7XG4gICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMTIpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wLXNtYWxsKSB7XG4gICAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2socGFkZGluZywgNS4xLCAzLCA1LjEsIDMpO1xuICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDQuMyk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3ApIHtcbiAgICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhwYWRkaW5nLCA1LjEsIDQuOSwgNi44LCA0LjgpO1xuICAgIH1cblxuICAgIC5zb2NpYWxfX3RpdGxlIHtcbiAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgzMCk7XG4gICAgICBAZXh0ZW5kIC5mb250LXN0YW5kYXJkLWxpZ2h0O1xuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcC1zbWFsbCkge1xuICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoMTguNSk7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wKSB7XG4gICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgyMik7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wLWxhcmdlKSB7XG4gICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgzMCk7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhtYXJnaW4tYm90dG9tLCAxLjgpO1xuICAgICAgY29sb3I6ICRmb290ZXItZ3JleTtcbiAgICB9XG5cbiAgICAubmV3c2xldHRlci1zaWduLXVwIHtcbiAgICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhtYXJnaW4tYm90dG9tLCA1LjMpO1xuXG4gICAgICAubmV3c2xldHRlci1zaWduLXVwX19sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhtYXJnaW4tYm90dG9tLCAxLjMpO1xuICAgICAgICBjb2xvcjogJHdoaXRlLWdyZXk7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbiAgICAgIH1cblxuICAgICAgLm5ld3NsZXR0ZXItc2lnbi11cF9faW5wdXQge1xuICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoMTQpO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAucmVhbC1zdG9yaWVzIHtcbiAgICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhtYXJnaW4tYm90dG9tLCA1LjMpO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAucmVhbC1zdG9yaWVzX190aXRsZSB7XG4gICAgICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhtYXJnaW4tYm90dG9tLCAwLjUpO1xuICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoMjApO1xuICAgICAgICBjb2xvcjogJHdoaXRlLWdyZXk7XG4gICAgICAgIC8vIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICB9XG5cbiAgICAgIC5yZWFsLXN0b3JpZXNfX2J1dHRvbiB7XG4gICAgICAgIEBpbmNsdWRlIHNpemUoMjhweCAyOHB4KTtcbiAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIC0zcHggMi41cHggbnVsbCBudWxsKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuc29jaWFsLWljb25zIHtcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCR0YWJsZXQpIHtcbiAgICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDYpO1xuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcC1zbWFsbCkge1xuICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMTIpO1xuICAgICAgfVxuXG4gICAgICBhIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICY6aG92ZXJ7XG4gICAgICAgICAgY29sb3I6ICRsaW5rLWJsdWU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmljb24ge1xuICAgICAgICB3aWR0aDogMTElO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJHRhYmxldCkge1xuICAgICAgICAgIHdpZHRoOiAxMi41JTtcbiAgICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoMjMpO1xuICAgICAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygwLjc1IG9mIDYpO1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wLXNtYWxsKSB7XG4gICAgICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDEuNSBvZiAxMik7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoMjApO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGNvbG9yOiAkZ3JleTI7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuYm90dG9tLWxpbmtzIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDEpO1xuICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhtYXJnaW4tYm90dG9tLCAxKTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCR0YWJsZXQpIHtcbiAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygxMik7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3Atc21hbGwpIHtcbiAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg1LjUpO1xuICAgICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKG1hcmdpbi1ib3R0b20sIDApO1xuICAgIH1cblxuICAgIGEge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBAaW5jbHVkZSBmb250LXNpemUoMTQpO1xuICAgICAgd2lkdGg6IDUwJTtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKG1hcmdpbi1ib3R0b20sIDEuNSk7XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCR0YWJsZXQpIHtcbiAgICAgICAgLy9AaW5jbHVkZSByZW0tZmFsbGJhY2sobWFyZ2luLWJvdHRvbSwgMyk7XG4gICAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygzIG9mIDEyKTtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3Atc21hbGwpIHtcbiAgICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDEuMzc1IG9mIDUuNSk7IC8vIGZvdXIgY29sdW1uc1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgfVxuXG4gICAgICBjb2xvcjogJGdyZXkzO1xuICAgIH1cbiAgfVxuXG4gIC5jb3B5cmlnaHQge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMSk7XG4gICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKG1hcmdpbi1ib3R0b20sIDEuNSk7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkdGFibGV0KSB7XG4gICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNCk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3Atc21hbGwpIHtcbiAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygyLjIpO1xuICAgICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKG1hcmdpbi1ib3R0b20sIDApO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxJTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcC1sYXJnZSkge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAzLjM1NzY1JTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBmb250LXNpemUoMTQpO1xuICAgIGNvbG9yOiAkZ3JleTQ7XG4gIH1cblxuICAucGhvbmUge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygxKTtcbiAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2sobWFyZ2luLWJvdHRvbSwgMS41KTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCR0YWJsZXQpIHtcbiAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg0KTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcC1zbWFsbCkge1xuICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDMpO1xuICAgICAgd2lkdGg6IDE5LjMlO1xuICAgICAgbWFyZ2luLXJpZ2h0OiA4JTtcbiAgICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhtYXJnaW4tYm90dG9tLCAwKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcC1sYXJnZSkge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAzLjMlO1xuICAgIH1cblxuICAgIGNvbG9yOiAkd2hpdGU7XG4gIH1cblxuICAubG9nbyB7XG4gICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDEpO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJHRhYmxldCkge1xuICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDQpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wLXNtYWxsKSB7XG4gICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMSk7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcblxuICAgICAgLmljb24tbG9nb3tcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmljb24tbG9nb3tcbiAgICAgIG1hcmdpbi1yaWdodDogNHB4O1xuICAgIH1cblxuICAgIC5pY29uIHtcbiAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgyMCk7XG4gICAgICBjb2xvcjogJHdoaXRlO1xuICAgIH1cblxuXG4gICAgLnRhZ3tcbiAgICAgIG1hcmdpbi10b3A6IDRweDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMnB4O1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICBpe1xuICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICB9XG4gICAgfVxuXG4gIH1cblxufVxuIiwiLmdsb2JhbC1zZWFyY2gge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gIGNvbG9yOiAkYmxhY2s7XG5cbiAgLmdsb2JhbC1zZWFyY2hfX2lubmVyIHtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBtYXgtd2lkdGg6IDEwNTdweDtcbiAgICBwYWRkaW5nOiAyNXB4IDkwcHggMDtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wLW1lZGl1bSkge1xuICAgICAgcGFkZGluZzogMjVweCA1MHB4IDA7XG4gICAgfVxuXG4gIH1cblxuICAuZ2xvYmFsLXNlYXJjaF9faW5wdXQtY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAuaWNvbiB7XG4gICAgICBAaW5jbHVkZSBmb250LXNpemUoMzApO1xuICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDUwJSAwIG51bGwgbnVsbCk7XG4gICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWSgtNTAlKSk7XG4gICAgICBjb2xvcjogJGJsYWNrO1xuICAgIH1cbiAgfVxuXG4gIC5nbG9iYWwtc2VhcmNoX19pbnB1dCB7XG4gICAgQGV4dGVuZCAuZm9udC1zdGFuZGFyZC10aGluO1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSg0MCk7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYmxhY2s7XG4gICAgY29sb3I6ICRibHVlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgcGFkZGluZzogMjBweCAwO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgQGluY2x1ZGUgcGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6ICRibHVlO1xuICAgIH1cbiAgfVxuXG4gIC5nbG9iYWwtc2VhcmNoX19jYXRlZ29yeS10YWItY29udGFpbmVyIHtcbiAgICBtYXJnaW4tdG9wOiAzOXB4O1xuXG4gICAgYnV0dG9uLCAuYnV0dG9uIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMTRweDtcblxuICAgICAgJi5sYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5nbG9iYWwtc2VhcmNoX19yZXN1bHRzLWluZm8ge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgIG1hcmdpbi10b3A6IDM4cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgfVxuXG4gIC5nbG9iYWwtc2VhcmNoX19udW0tcmVzdWx0cyB7XG4gICAgQGV4dGVuZCAuZm9udC1zdGFuZGFyZC10aGluO1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxMCk7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuICAgIC5nbG9iYWwtc2VhcmNoX19yZXN1bHRzLXNlYXJjaC10ZXJtIHtcbiAgICAgIEBleHRlbmQgLmZvbnQtc3RhbmRhcmQtbWVkaXVtO1xuICAgIH1cbiAgfVxuXG4gIC5nbG9iYWwtc2VhcmNoX192aWV3LWFsbCB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuXG4gICAgYSB7XG4gICAgICBAZXh0ZW5kIC5mb250LXN0YW5kYXJkLXRoaW47XG4gICAgICBAaW5jbHVkZSBmb250LXNpemUoMTMpO1xuICAgICAgY29sb3I6ICRibHVlO1xuICAgIH1cbiAgfVxufVxuIiwiLmdsb2JhbC1zdXBwb3J0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICBjb2xvcjogJGJsYWNrO1xuXG4gIC5nbG9iYWwtc3VwcG9ydF9fcm93IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRsaWdodC1ncmV5O1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHBhZGRpbmc6IDM3cHggMCA0MnB4O1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLmdsb2JhbC1zdXBwb3J0X19zdWJoZWFkZXIge1xuICAgIEBleHRlbmQgLmZvbnQtc3RhbmRhcmQtdGhpbjtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoMjApO1xuICAgIG1hcmdpbi1ib3R0b206IDEzcHg7XG4gIH1cblxuICAuZ2xvYmFsLXN1cHBvcnRfX2NvcHkge1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgZm9udC1zaXplOiAxLjRyZW07XG4gIH1cblxuICAuZ2xvYmFsLXN1cHBvcnRfX3Bob25lIHtcbiAgICBAZXh0ZW5kIC5mb250LXN0YW5kYXJkLW1lZGl1bTtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoMTMpO1xuICAgIG1hcmdpbi1ib3R0b206IDIuNXJlbTtcblxuICAgICY6bGFzdC1jaGlsZHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG5cbiAgLmdsb2JhbC1zdXBwb3J0X19jb2x1bW4ge1xuICAgIHdpZHRoOiA1MCU7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIC5nbG9iYWwtc3VwcG9ydF9fbWVzc2FnZS1jb250YWluZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAuZ2xvYmFsLXN1cHBvcnRfX2lubmVyIHtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBtYXgtd2lkdGg6IDYzMHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLmdsb2JhbC1zdXBwb3J0X19oZWFkZXIge1xuICAgIEBleHRlbmQgLmZvbnQtc3RhbmRhcmQtdGhpbjtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoMjUpO1xuICAgIG1hcmdpbi1ib3R0b206IDExcHg7XG5cbiAgICAuaWNvbiB7XG4gICAgICBAaW5jbHVkZSBmb250LXNpemUoMjUpO1xuICAgICAgY29sb3I6ICRibGFjaztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuICB9XG5cbiAgLmdsb2JhbC1zdXBwb3J0X19mb3JtIHtcbiAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgaW5wdXQsIHRleHRhcmVhLCBidXR0b24ge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBtYXJnaW4tdG9wOiAzMXB4O1xuICAgIH1cblxuICAgIGlucHV0LCB0ZXh0YXJlYSB7XG4gICAgICBAZXh0ZW5kIC5mb250LXN0YW5kYXJkLWxpZ2h0O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGdyZXk1O1xuICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgIEBpbmNsdWRlIHBsYWNlaG9sZGVyIHtcbiAgICAgICAgY29sb3I6ICRpbnB1dC1ncmV5O1xuICAgICAgfVxuICAgIH1cblxuICAgIHRleHRhcmVhIHtcbiAgICAgIHJlc2l6ZTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAuZ2xvYmFsLXN1cHBvcnRfX3N1Ym1pdCB7XG4gICAgQGV4dGVuZCAuZm9udC1zdGFuZGFyZC10aGluO1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxMyk7XG4gICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKHBhZGRpbmcsIDEuOCwgMy41KTtcbiAgICBmbG9hdDogcmlnaHQ7XG4gIH1cblxufVxuIiwiLnBhZ2Uud2VpZ2h0bGVzcy1wcm90ZWN0aW9uIHtcbiAgLmZ1bGxzY3JlZW5fX3dyYXAge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24ob3BhY2l0eSAwLjVzIDAuMnMpO1xuICAgIHotaW5kZXg6IDI7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIC53ZWlnaHRsZXNzLXByb3RlY3Rpb25fX2xvYWRpbmcge1xuICAgIEBpbmNsdWRlIHBvc2l0aW9uKGZpeGVkLCAwIDAgMCAwKTtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKG9wYWNpdHkgMC41cyAwLjJzKTtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHotaW5kZXg6IDEwO1xuXG4gICAgLndlaWdodGxlc3MtcHJvdGVjdGlvbl9fZGFyayB7XG4gICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMCAwIDAgMCk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2s7XG4gICAgICBvcGFjaXR5OiAwLjc7XG4gICAgfVxuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAwIG51bGwgMCA1MCUpO1xuICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVgoLTUwJSkpO1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC9hc3NldHMvZnJvbnRlbmQvaW1nL3dlaWdodGxlc3MtcHJvdGVjdGlvbi9iYWNrZ3JvdW5kLXNhbXBsZS5qcGcpO1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZmlsdGVyOiBibHVyKDEwcHgpO1xuICAgICAgd2lkdGg6IDEwNSU7XG4gICAgfVxuXG4gICAgLndlaWdodGxlc3MtcHJvdGVjdGlvbl9fbG9hZGluZ19fY2VudGVyIHtcbiAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCA1MCUgbnVsbCBudWxsIDUwJSk7XG4gICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlKC01MCUsIC01MCUpKTtcbiAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24ob3BhY2l0eSAwLjJzKTtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgd2lkdGg6IDUwJTtcbiAgICB9XG5cbiAgICAmLnJlYWR5IHtcbiAgICAgIC53ZWlnaHRsZXNzLXByb3RlY3Rpb25fX2xvYWRpbmdfX2NlbnRlciB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC53ZWlnaHRsZXNzLXByb3RlY3Rpb25fX2ZpeGVkLWNvbnRhaW5lciB7XG4gICAgb3BhY2l0eTogMDtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKG9wYWNpdHkgMC41cyAwLjJzKTtcbiAgfVxuXG4gIC53ZWlnaHRsZXNzLXByb3RlY3Rpb25fX2NhbnZhcyB7XG4gICAgb3BhY2l0eTogMDtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKG9wYWNpdHkgMC41cyAwLjJzKTtcbiAgfVxuXG4gICYucmVhZHkge1xuICAgIC5mdWxsc2NyZWVuX193cmFwIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICAgIC53ZWlnaHRsZXNzLXByb3RlY3Rpb25fX2ZpeGVkLWNvbnRhaW5lciB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgICAud2VpZ2h0bGVzcy1wcm90ZWN0aW9uX19jYW52YXMge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gICAgLndlaWdodGxlc3MtcHJvdGVjdGlvbl9fbG9hZGluZyB7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICB6LWluZGV4OiAwO1xuXG4gICAgICAud2VpZ2h0bGVzcy1wcm90ZWN0aW9uX19sb2FkaW5nX19jZW50ZXIgIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAud2VpZ2h0bGVzcy1wcm90ZWN0aW9uX19maXhlZC1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIHBvc2l0aW9uKGZpeGVkLCAwIDAgMCAwKTtcbiAgICB6LWluZGV4OiAxO1xuICB9XG5cbiAgLndlaWdodGxlc3MtcHJvdGVjdGlvbl9faGVhZGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgY29sb3I6ICRibGFjaztcbiAgICB3aWR0aDogMzUwcHg7XG5cbiAgICAud2VpZ2h0bGVzcy1wcm90ZWN0aW9uX19oZWFkZXJfX3RpdGxlIHtcbiAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSg3NSk7XG4gICAgICBAZXh0ZW5kIC5mb250LXN0YW5kYXJkLXRoaW47XG4gICAgICBsaW5lLWhlaWdodDogMTtcbiAgICB9XG5cbiAgICAud2VpZ2h0bGVzcy1wcm90ZWN0aW9uX19oZWFkZXJfX3N1YnRpdGxlIHtcbiAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgzMCk7XG4gICAgICBAZXh0ZW5kIC5mb250LXN0YW5kYXJkLWJvbGQ7XG4gICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgIG1hcmdpbi10b3A6IDQwcHg7XG4gICAgfVxuXG4gICAgLndlaWdodGxlc3MtcHJvdGVjdGlvbl9faGVhZGVyX19kZXNjcmlwdGlvbiB7XG4gICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDE4KTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgfVxuICB9XG5cbiAgLnByaWNlLWJveCB7XG4gICAgbWFyZ2luLXRvcDogNTBweDtcblxuICAgIC5wcmljZS1ib3hfX3ByaWNlIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgyNSk7XG4gICAgICBAZXh0ZW5kIC5mb250LXN0YW5kYXJkLWV4cGFuZGVkO1xuICAgIH1cblxuICAgIC5xdWFudGl0eS1idXktY29udGFpbmVyIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiA1MHB4O1xuICAgIH1cbiAgfVxuXG4gIC53ZWlnaHRsZXNzLXByb3RlY3Rpb25fX3Byb2R1Y3Qtc3BsYXNoIHtcbiAgICAud2VpZ2h0bGVzcy1wcm90ZWN0aW9uX19oZWFkZXItLXNsaWRlLTEge1xuICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDAgMCAwIDApO1xuICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihvcGFjaXR5IDAuMnMgZWFzZS1vdXQsIHRyYW5zZm9ybSAwLjVzIGVhc2UtaW4tb3V0KTtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oc2NhbGUoMykgdHJhbnNsYXRlKDUwJSwgNTAlKSk7XG5cbiAgICAgIC53ZWlnaHRsZXNzLXByb3RlY3Rpb25fX2hlYWRlcl9fdGl0bGUge1xuICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgLTE4NXB4IG51bGwgbnVsbCAtNyUpO1xuICAgICAgfVxuXG4gICAgICAud2VpZ2h0bGVzcy1wcm90ZWN0aW9uX19oZWFkZXJfX2Rlc2NyaXB0aW9uIHtcblxuXG4gICAgICB9XG5cbiAgICAgIC53ZWlnaHRsZXNzLXByb3RlY3Rpb25fX3NlY29uZGFyeSB7XG4gICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAtNDBweCBudWxsIG51bGwgNjMuNSUpO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3Atc21hbGwpIHtcbiAgICAgICAgLndlaWdodGxlc3MtcHJvdGVjdGlvbl9faGVhZGVyX190aXRsZSB7XG4gICAgICAgICAgbGVmdDogMTclO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wKSB7XG4gICAgICAgIC53ZWlnaHRsZXNzLXByb3RlY3Rpb25fX2hlYWRlcl9fdGl0bGUge1xuICAgICAgICAgIGxlZnQ6IDUxJTtcbiAgICAgICAgfVxuXG4gICAgICAgIC53ZWlnaHRsZXNzLXByb3RlY3Rpb25fX3NlY29uZGFyeSB7XG4gICAgICAgICAgbGVmdDogNjMuNSU7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAud2VpZ2h0bGVzcy1wcm90ZWN0aW9uX19oZWFkZXItLXNsaWRlLTQge1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKG9wYWNpdHkgMC4ycyBlYXNlLW91dCk7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHdpZHRoOiAzNDNweDtcbiAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDI3LjUlIG51bGwgbnVsbCAtMjk2cHgpO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWSgtNTAlKSk7XG5cbiAgICAgICAgLndlaWdodGxlc3MtcHJvdGVjdGlvbl9faGVhZGVyX190aXRsZSB7XG4gICAgICAgICAgLy93aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwLjg1O1xuICAgICAgICB9XG5cbiAgICAgICAgLndlaWdodGxlc3MtcHJvdGVjdGlvbl9faGVhZGVyX19zdWJ0aXRsZSB7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC53ZWlnaHRsZXNzLXByb3RlY3Rpb25fX2hlYWRlcl9fZGVzY3JpcHRpb24ge1xuICAgICAgICAgIG1hcmdpbi10b3A6IDQwcHg7XG5cbiAgICAgICAgICAud2VpZ2h0bGVzcy1wcm90ZWN0aW9uX19oZWFkZXJfX2Rlc2NyaXB0aW9uX19ib2xkIHtcbiAgICAgICAgICAgIEBleHRlbmQgLmZvbnQtc3RhbmRhcmQtYm9sZDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgei1pbmRleDogMDtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcCkge1xuICAgICAgICAgIGxlZnQ6IC00NTBweDtcbiAgICAgICAgICB3aWR0aDogNDUwcHg7XG4gICAgICAgIH1cblxuICAgIH1cbiAgfVxuXG4gIC5zZWN0aW9uLTQge1xuXG4gIH1cblxuICAuc2VjdGlvbi00LS1maXhlZCB7XG5cbiAgfVxuXG5cbiAgLmluZm8ge1xuICAgIGNvbG9yOiAkYmxhY2s7XG5cblxuICAgIC5pbmZvX19pY29uIHtcbiAgICAgIEBpbmNsdWRlIHNpemUoNDBweCA0MHB4KTtcbiAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSg0MCk7XG4gICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKHRyYW5zZm9ybSAxcywgb3BhY2l0eSAwLjJzIGVhc2Utb3V0KTtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6ICRibGFjaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuaW5mb19fZGVzY3JpcHRpb24ge1xuICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbih0cmFuc2Zvcm0gMXMsIG9wYWNpdHkgMC4ycyBlYXNlLW91dCk7XG4gICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWSg1JSkpO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG5cbiAgICAuaW5mb19fZGVzY3JpcHRpb25fX2JvbGQge1xuICAgICAgQGV4dGVuZCAuZm9udC1zdGFuZGFyZC1ib2xkO1xuICAgIH1cblxuICAgICYuYWN0aXZlIHtcbiAgICAgIC5pbmZvX19pY29uIHtcbiAgICAgICAgY29sb3I6ICRibGFjaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuaW5mb19fZGVzY3JpcHRpb25fX21haW4ge1xuICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDE4KTtcbiAgICAgIHBhZGRpbmctbGVmdDogNjBweDtcbiAgICAgIHdpZHRoOiAzODBweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjM1O1xuXG4gICAgICAmLm5vLXBhZGRpbmcge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiAzMzBweDtcbiAgICAgIH1cblxuICAgICAgPiAuaWNvbiB7XG4gICAgICAgIGNvbG9yOiAkYmxhY2s7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMCBudWxsIG51bGwgMCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmluZm9fX2Rlc2NyaXB0aW9uX19leHRyYSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgICAgcGFkZGluZy1sZWZ0OiA2MHB4O1xuICAgICAgd2lkdGg6IDMzMHB4O1xuICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDE1KTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICA+IC5pY29uIHtcbiAgICAgICAgY29sb3I6ICRibGFjaztcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAwIG51bGwgbnVsbCAwKTtcbiAgICAgIH1cblxuICAgIH1cblxuICB9XG5cbiAgLndlaWdodGxlc3MtcHJvdGVjdGlvbl9fbGVhcm4tbW9yZSB7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbihvcGFjaXR5IDAuMnMgZWFzZS1vdXQpO1xuICAgIEBpbmNsdWRlIHBvc2l0aW9uKGZpeGVkLCA0MyUgbnVsbCBudWxsIDApO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgICBjb2xvcjogJHdoaXRlO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICR3aGl0ZTtcbiAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2socGFkZGluZywgMS41LCAzKTtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIC53ZWlnaHRsZXNzLXByb3RlY3Rpb25fX21vZGVsIHtcbiAgICBAaW5jbHVkZSBwb3NpdGlvbihmaXhlZCwgNTFweCBudWxsIG51bGwgMCk7XG5cbiAgICAuaW5mby0xIC5pbmZvX19pY29uIHtcbiAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAzJSBudWxsIG51bGwgNTYlKTtcbiAgICB9XG5cbiAgICAuaW5mby0yIC5pbmZvX19pY29uIHtcbiAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAxMiUgbnVsbCBudWxsIDU4JSk7XG4gICAgfVxuXG4gICAgLmluZm8tMyAuaW5mb19faWNvbiB7XG4gICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMTYuOCUgbnVsbCBudWxsIDY2JSk7XG4gICAgfVxuXG4gICAgLmluZm9fX2Rlc2NyaXB0aW9uIHtcbiAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAzJSBudWxsIG51bGwgNzMlKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcC1zbWFsbCkge1xuICAgICAgLmluZm9fX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDMlIG51bGwgbnVsbCA4MCUpO1xuICAgICAgfVxuXG4gICAgICAuaW5mby0zIC5pbmZvX19pY29uIHtcbiAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDE2LjglIG51bGwgbnVsbCA2NyUpO1xuICAgICAgfVxuICAgIH1cblxuICB9XG5cbiAgJi52aWV3aW5nLTEge1xuXG4gICAgLmZ1bGxwYWdlX19zY3JvbGwtY3RhIHtcbiAgICAgIEBpbmNsdWRlIGFuaW1hdGlvbi1wbGF5LXN0YXRlKHJ1bm5pbmcpO1xuICAgIH1cblxuICAgIC5mdWxsc2NyZWVuX193cmFwIHtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgfVxuXG4gICAgLndlaWdodGxlc3MtcHJvdGVjdGlvbl9fZml4ZWQtY29udGFpbmVyIHtcbiAgICAgIHotaW5kZXg6IDI7XG4gICAgfVxuXG4gICAgLndlaWdodGxlc3MtcHJvdGVjdGlvbl9faGVhZGVyLS1zbGlkZS0xIHtcbiAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24ob3BhY2l0eSAwLjVzIGVhc2Utb3V0KTtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0obm9uZSk7XG4gICAgfVxuXG4gIH1cblxuICAkYWN0aXZlLWVhc2UtdGltZTogMC4zM3M7XG5cbiAgJi52aWV3aW5nLTIge1xuICAgIC5mdWxsc2NyZWVuX193cmFwIHtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgfVxuXG4gICAgLndlaWdodGxlc3MtcHJvdGVjdGlvbl9fZml4ZWQtY29udGFpbmVyIHtcbiAgICAgIHotaW5kZXg6IDI7XG4gICAgfVxuXG4gICAgLndlaWdodGxlc3MtcHJvdGVjdGlvbl9fbW9kZWwge1xuICAgICAgei1pbmRleDogMjtcbiAgICAgIC5pbmZvIC5pbmZvX19pY29uIHtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbih0cmFuc2Zvcm0gJGFjdGl2ZS1lYXNlLXRpbWUgZWFzZS1vdXQsIG9wYWNpdHkgJGFjdGl2ZS1lYXNlLXRpbWUgZWFzZS1vdXQsIGNvbG9yIDAuM3MgZWFzZS1vdXQpO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAuaW5mby5hY3RpdmUgLmluZm9fX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbih0cmFuc2Zvcm0gJGFjdGl2ZS1lYXNlLXRpbWUgZWFzZS1vdXQsIG9wYWNpdHkgJGFjdGl2ZS1lYXNlLXRpbWUgZWFzZS1vdXQpO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0obm9uZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJi52aWV3aW5nLTMge1xuICAgIC5mdWxsc2NyZWVuX193cmFwIHtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgfVxuXG4gICAgLndlaWdodGxlc3MtcHJvdGVjdGlvbl9fZml4ZWQtY29udGFpbmVyIHtcbiAgICAgIHotaW5kZXg6IDI7XG4gICAgfVxuXG4gICAgLndlaWdodGxlc3MtcHJvdGVjdGlvbl9fcHJvZHVjdC1zcGxhc2gge1xuICAgICAgei1pbmRleDogMjtcblxuICAgICAgLmluZm8gLmluZm9fX2ljb24ge1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKHRyYW5zZm9ybSAkYWN0aXZlLWVhc2UtdGltZSBlYXNlLW91dCwgb3BhY2l0eSAkYWN0aXZlLWVhc2UtdGltZSBlYXNlLW91dCwgY29sb3IgMC4zcyBlYXNlLW91dCk7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB9XG5cbiAgICAgIC5pbmZvLmFjdGl2ZSAuaW5mb19fZGVzY3JpcHRpb24ge1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKHRyYW5zZm9ybSAkYWN0aXZlLWVhc2UtdGltZSBlYXNlLW91dCwgb3BhY2l0eSAkYWN0aXZlLWVhc2UtdGltZSBlYXNlLW91dCk7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybShub25lKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLnZpZXdpbmctNCB7XG4gICAgLmZ1bGxwYWdlX19zY3JvbGwtY3RhIHtcbiAgICAgIC8vb3BhY2l0eTogMDtcbiAgICB9XG5cbiAgICAuZnVsbHNjcmVlbl9fd3JhcCB7XG4gICAgICB6LWluZGV4OiAxO1xuICAgIH1cblxuICAgIC53ZWlnaHRsZXNzLXByb3RlY3Rpb25fX2ZpeGVkLWNvbnRhaW5lciB7XG4gICAgICB6LWluZGV4OiAyO1xuICAgIH1cblxuICAgIC53ZWlnaHRsZXNzLXByb3RlY3Rpb25fX2hlYWRlci0tc2xpZGUtNCB7XG4gICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKG9wYWNpdHkgMC41cyBlYXNlLW91dCk7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgIC53ZWlnaHRsZXNzLXByb3RlY3Rpb25fX2xlYXJuLW1vcmUge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24ob3BhY2l0eSAwLjVzIGVhc2Utb3V0KTtcbiAgICB9XG5cbiAgICAuZnVsbHBhZ2VfX3Njcm9sbC1jdGEge1xuICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG4gIH1cblxuICAud2VpZ2h0bGVzcy1wcm90ZWN0aW9uX19jYW52YXMge1xuICAgIEBpbmNsdWRlIHBvc2l0aW9uKGZpeGVkLCA1MXB4IG51bGwgbnVsbCAwKTtcbiAgfVxuXG4gIC53ZWlnaHRsZXNzLXByb3RlY3Rpb25fX3Byb2R1Y3Qtc3BsYXNoIHtcbiAgICBAaW5jbHVkZSBwb3NpdGlvbihmaXhlZCwgNTFweCBudWxsIG51bGwgMCk7XG5cbiAgICAuaW5mby0xIC5pbmZvX19pY29uIHtcbiAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAzMCUgbnVsbCBudWxsIDE3LjUlKTtcbiAgICB9XG5cbiAgICAuaW5mby0yIC5pbmZvX19pY29uIHtcbiAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCA0OCUgbnVsbCBudWxsIDIxJSk7XG4gICAgfVxuXG4gICAgLmluZm8tMyAuaW5mb19faWNvbiB7XG4gICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgNTMlIG51bGwgbnVsbCAzNiUpO1xuICAgIH1cblxuICAgIC5pbmZvX19kZXNjcmlwdGlvbl9fbWFpbiB7XG4gICAgICB3aWR0aDogMjU2cHg7XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wLXNtYWxsKSB7XG4gICAgICAgIHdpZHRoOiAyNzdweDtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3ApIHtcbiAgICAgICAgd2lkdGg6IDM4MHB4O1xuICAgICAgfVxuICAgIH1cbiAgICAuaW5mb19fZGVzY3JpcHRpb24ge1xuICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDMuNSUgbnVsbCBudWxsIDI5JSk7XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wLXNtYWxsKSB7XG4gICAgICAgIC50b3VjaGV2ZW50cyAmIHtcbiAgICAgICAgICBsZWZ0OiAzNSU7XG4gICAgICAgIH1cbiAgICAgICAgbGVmdDogMzAlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG59XG4iLCIucGFnZS5pZGVhbC1jb21wbGV4IHtcbiAgJGRlc2t0b3AtdG9wLWhlaWdodDogNTFweDtcbiAgJGZpeGVkLWZvb3Rlci1oZWlnaHQ6IDU2cHg7XG4gICRtb2JpbGUtaGVhZGVyLXRvcC1oZWlnaHQ6IDQwcHg7XG4gICRtb2JpbGUtZml4ZWQtZm9vdGVyLWhlaWdodDogNDFweDtcbiAgJHRvdWNoLXRvcC1oZWlnaHQ6IDE1MXB4O1xuICAkZGVza3RvcC1oZWlnaHQtYnJlYWs6IDcxNXB4O1xuICAkdG91Y2gtaGVpZ2h0LWJyZWFrOiAkZGVza3RvcC1oZWlnaHQtYnJlYWsgKyAxMDNweDtcblxuICBjb2xvcjogJGJsYWNrO1xuICAuZnAtdGFibGVDZWxsIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICB9XG5cbiAgLmZ1bGxwYWdlX19zY3JvbGwtY3RhIHtcbiAgICBib3R0b206ICRmaXhlZC1mb290ZXItaGVpZ2h0ICsgMjA7XG4gICAgei1pbmRleDogMztcbiAgfVxuXG4gIC5pZGVhbC1jb21wbGV4X19sb2FkaW5nIHtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKG9wYWNpdHkgMC4ycyAwLjVzKTtcbiAgICBAaW5jbHVkZSBwb3NpdGlvbihmaXhlZCwgLTEycHggLTEycHggLTEycHggLTEycHgpO1xuICAgIHotaW5kZXg6IDEwO1xuICAgIG9wYWNpdHk6IDE7XG5cbiAgICAuaWRlYWwtY29tcGxleF9fbG9hZGluZ19fYmcge1xuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDAgMCAwIDApO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuOCk7XG4gICAgICB9XG4gICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMCAwIDAgMCk7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoL2Fzc2V0cy9mcm9udGVuZC9pbWcvaWRlYWwtY29tcGxleC9sb2FkaW5nLWJhY2tncm91bmQuanBnKTtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICAgICAgQGluY2x1ZGUgZmlsdGVyKGJsdXIoMTJweCkpO1xuICAgIH1cblxuICAgIC5pZGVhbC1jb21wbGV4X19sb2FkaW5nX19pbm5lciB7XG4gICAgICB3aWR0aDogNTAlO1xuICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDUwJSBudWxsIG51bGwgNTAlKTtcbiAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGUoLTUwJSwgLTUwJSkpO1xuICAgIH1cbiAgfVxuXG4gICYubG9hZGVkIHtcbiAgICAuaWRlYWwtY29tcGxleF9fbG9hZGluZyB7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuXG4gICAgLmlkZWFsLWNvbXBsZXhfX2ZpeGVkLWNvbnRhaW5lciB7XG4gICAgICBAaW5jbHVkZSBmaWx0ZXIobm9uZSk7XG4gICAgfVxuXG4gICAgLmlkZWFsLWNvbXBsZXhfX2NhbnZhcyB7XG4gICAgICBAaW5jbHVkZSBmaWx0ZXIobm9uZSk7XG4gICAgfVxuICB9XG5cbiAgLmlkZWFsLWNvbXBsZXhfX2JhY2tncm91bmQge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgvYXNzZXRzL2Zyb250ZW5kL2ltZy9pZGVhbC1jb21wbGV4L2JhY2tncm91bmQuanBnKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gICAgQGluY2x1ZGUgcG9zaXRpb24oZml4ZWQsIDAgMCAwIDApO1xuICAgIHotaW5kZXg6IDA7XG5cbiAgICAudG91Y2hldmVudHMgJiB7XG4gICAgICB0b3A6ICR0b3VjaC10b3AtaGVpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIC5pZGVhbC1jb21wbGV4X190dWJlLWJvdW5kaW5nIHtcbiAgICBoZWlnaHQ6IDQwJSAhaW1wb3J0YW50O1xuXG4gICAgLnNlY3Rpb24tMl9fbGlzdC1jb250YWluZXIge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAuaWRlYWwtY29tcGxleF9fc3ViaGVhZGVyIHtcbiAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDIwKTtcbiAgICAgICAgd2lkdGg6IDE0MXB4O1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgbWVkaWEoJHRhYmxldC1tYXgpIHtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVkoLTUwJSkpO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAwIG51bGwgbnVsbCA2NXB4KTtcblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3Atc21hbGwpIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIHJpZ2h0OiAxMTYlO1xuICAgICAgICBsZWZ0OiBhdXRvO1xuXG4gICAgICAgIC5pZGVhbC1jb21wbGV4X19zdWJoZWFkZXIge1xuICAgICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgzMCk7XG4gICAgICAgICAgd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcCkge1xuICAgICAgICByaWdodDogMTQyJTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkdGFibGV0LW1heCkge1xuICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKG5vbmUgIWltcG9ydGFudCk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3Atc21hbGwpIHtcbiAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGZpeGVkLCA1MCUgbnVsbCBudWxsIG51bGwpO1xuICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVkoLTUwJSkpO1xuICAgIH1cblxuICB9XG5cbiAgLmlkZWFsLWNvbXBsZXhfX2phci1ib3VuZGluZyB7XG4gICAgaGVpZ2h0OiA0MCUgIWltcG9ydGFudDtcblxuICAgIC5zZWN0aW9uLTJfX2xpc3QtY29udGFpbmVyIHtcbiAgICAgIC5pZGVhbC1jb21wbGV4X19zdWJoZWFkZXIge1xuICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoMjApO1xuICAgICAgICB3aWR0aDogMTQxcHg7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCR0YWJsZXQtbWF4KSB7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVZKC01MCUpKTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICB9XG4gICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMCAwIG51bGwgbnVsbCk7XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wLXNtYWxsKSB7XG4gICAgICAgIGxlZnQ6IDEyNiU7XG4gICAgICAgIHJpZ2h0OiBhdXRvO1xuXG4gICAgICAgIC5pZGVhbC1jb21wbGV4X19zdWJoZWFkZXIge1xuICAgICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgzMCk7XG4gICAgICAgICAgd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcCkge1xuICAgICAgICBsZWZ0OiAxNDIlO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCR0YWJsZXQtbWF4KSB7XG4gICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0obm9uZSAhaW1wb3J0YW50KTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcC1zbWFsbCkge1xuICAgICAgQGluY2x1ZGUgcG9zaXRpb24oZml4ZWQsIDUwJSBudWxsIG51bGwgbnVsbCk7XG4gICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWSgtNTAlKSk7XG4gICAgfVxuICB9XG5cbiAgLmlkZWFsLWNvbXBsZXhfX2ZpeGVkLWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbihmaWx0ZXIgMC41cyAwLjVzLCAtd2Via2l0LWZpbHRlciAwLjVzIDAuNXMpO1xuICAgIEBpbmNsdWRlIGZpbHRlcihibHVyKDEycHgpKTtcbiAgICBAaW5jbHVkZSBwb3NpdGlvbihmaXhlZCwgJG1vYmlsZS1oZWFkZXItdG9wLWhlaWdodCAwICRtb2JpbGUtZml4ZWQtZm9vdGVyLWhlaWdodCAwKTtcbiAgICB6LWluZGV4OiAxO1xuICAgIC8vIEZpeGVkIGVsZW1lbnRzIG5lc3RlZCB3aXRoaW4gYW4gZWxlbWVudCB3aXRoIGEgdHJhbnNmb3JtXG4gICAgLy8gYXJlIHJlbGF0aXZlIHRvIHRoYXQgZWxlbWVudC4gRW5zdXJlIGVhY2ggbmVzdGVkIGZpeGVkXG4gICAgLy8gZWxlbWVudCBtYWludGFpbnMgdG9wIGFuZCBib3R0b20gcGFkZGluZ1xuICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVaKDApKTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCR0YWJsZXQpIHtcbiAgICAgIHRvcDogJGRlc2t0b3AtdG9wLWhlaWdodDtcbiAgICAgIGJvdHRvbTogJGZpeGVkLWZvb3Rlci1oZWlnaHQ7XG4gICAgfVxuXG4gICAgLnRvdWNoZXZlbnRzICYge1xuICAgICAgdG9wOiAkdG91Y2gtdG9wLWhlaWdodDtcbiAgICB9XG4gIH1cblxuICAuaWRlYWwtY29tcGxleF9fY2FudmFzIHtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGZpbHRlciAwLjVzIDAuNXMsIC13ZWJraXQtZmlsdGVyIDAuNXMgMC41cyk7XG4gICAgQGluY2x1ZGUgZmlsdGVyKGJsdXIoMTJweCkpO1xuICAgIEBpbmNsdWRlIHBvc2l0aW9uKGZpeGVkLCAkZGVza3RvcC10b3AtaGVpZ2h0IDAgJGZpeGVkLWZvb3Rlci1oZWlnaHQgMCk7XG4gICAgei1pbmRleDogMjtcblxuICAgIC50b3VjaGV2ZW50cyAmIHtcbiAgICAgIHRvcDogJHRvdWNoLXRvcC1oZWlnaHQ7XG4gICAgfVxuICB9XG5cbiAgLmlkZWFsLWNvbXBsZXhfX2Rlc2NyaXB0aW9uIHtcbiAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgIHdpZHRoOiAyNTBweDtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoMTgpO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEobWF4LWhlaWdodCAkZGVza3RvcC1oZWlnaHQtYnJlYWspIHtcbiAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxNSk7XG4gICAgfVxuXG4gICAgLnRvdWNoZXZlbnRzICYge1xuICAgICAgQGluY2x1ZGUgbWVkaWEobWF4LWhlaWdodCAkdG91Y2gtaGVpZ2h0LWJyZWFrKSB7XG4gICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxNSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmlkZWFsLWNvbXBsZXhfX2hlYWRlciB7XG4gICAgQGV4dGVuZCAuZm9udC1zdGFuZGFyZC10aGluO1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSg4MCk7XG5cbiAgICBAaW5jbHVkZSBtZWRpYShtYXgtaGVpZ2h0ICRkZXNrdG9wLWhlaWdodC1icmVhaykge1xuICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDYwKTtcbiAgICB9XG5cbiAgICAudG91Y2hldmVudHMgJiB7XG4gICAgICBAaW5jbHVkZSBtZWRpYShtYXgtaGVpZ2h0ICR0b3VjaC1oZWlnaHQtYnJlYWspIHtcbiAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDYwKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuaWRlYWwtY29tcGxleF9fc3ViaGVhZGVyIHtcbiAgICBAZXh0ZW5kIC5mb250LXN0YW5kYXJkLWJvbGQ7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKDMwKTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKG1heC1oZWlnaHQgJGRlc2t0b3AtaGVpZ2h0LWJyZWFrKSB7XG4gICAgICBAaW5jbHVkZSBmb250LXNpemUoMjIpO1xuICAgIH1cblxuICAgIC50b3VjaGV2ZW50cyAmIHtcbiAgICAgIEBpbmNsdWRlIG1lZGlhKG1heC1oZWlnaHQgJHRvdWNoLWhlaWdodC1icmVhaykge1xuICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoMjIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5pZGVhbC1jb21wbGV4X190aXRsZSB7XG4gICAgQGV4dGVuZCAuZm9udC1zdGFuZGFyZC1ib2xkO1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgyMik7XG5cblxuICB9XG5cbiAgLmlkZWFsLWNvbXBsZXhfX3RpdGxlLS1hbHQge1xuICAgIEBleHRlbmQgLmZvbnQtc3RhbmRhcmQtbGlnaHQ7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKDI1KTtcbiAgfVxuXG4gIC5pZGVhbC1jb21wbGV4X19saXN0IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gICAgd2lkdGg6IDE5MHB4O1xuXG4gICAgJixsaXtcbiAgICAgIGxpc3Qtc3R5bGUtdHlwZTogZGlzYztcbiAgICB9XG4gICAgbGkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICB9XG4gICAgICBAaW5jbHVkZSBmb250LXNpemUoMTgpO1xuICAgIH1cbiAgfVxuXG4gIC5zZWN0aW9uLTEtLWZpeGVkIHtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgfVxuXG4gIC5zZWN0aW9uLTFfX2hlYWRlciB7XG4gICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVgoLTUwJSkpO1xuICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAzNXB4IG51bGwgbnVsbCA1MCUpO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEobWF4LWhlaWdodCAkZGVza3RvcC1oZWlnaHQtYnJlYWspIHtcbiAgICAgIHRvcDogMjVweDtcbiAgICB9XG5cbiAgICAudG91Y2hldmVudHMgJiB7XG4gICAgICBAaW5jbHVkZSBtZWRpYShtYXgtaGVpZ2h0ICR0b3VjaC1oZWlnaHQtYnJlYWspIHtcbiAgICAgICAgdG9wOiAyNXB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5zZWN0aW9uLTFfX2hlYWRlci0tc2Vjb25kYXJ5IHtcbiAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWCgtNTAlKSk7XG4gICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDM1cHggbnVsbCBudWxsIDUwJSk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKDcwKTtcbiAgICB6LWluZGV4OiAwO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEobWF4LWhlaWdodCAkZGVza3RvcC1oZWlnaHQtYnJlYWspIHtcbiAgICAgIHRvcDogMjVweDtcbiAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSg1Mi41KTtcbiAgICB9XG5cbiAgICAudG91Y2hldmVudHMgJiB7XG4gICAgICBAaW5jbHVkZSBtZWRpYShtYXgtaGVpZ2h0ICR0b3VjaC1oZWlnaHQtYnJlYWspIHtcbiAgICAgICAgdG9wOiAyNXB4O1xuICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoNTIuNSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnNlY3Rpb24tMV9fZGVzY3JpcHRpb24ge1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDMwJSBudWxsIG51bGwgNTAlKTtcbiAgICBsaW5lLWhlaWdodDogMS40O1xuXG4gICAgQGluY2x1ZGUgbWVkaWEobWF4LWhlaWdodCAkZGVza3RvcC1oZWlnaHQtYnJlYWspIHtcbiAgICAgIHRvcDogMzYlO1xuICAgIH1cblxuICAgIC50b3VjaGV2ZW50cyAmIHtcbiAgICAgIEBpbmNsdWRlIG1lZGlhKG1heC1oZWlnaHQgJHRvdWNoLWhlaWdodC1icmVhaykge1xuICAgICAgICB0b3A6IDM2JTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuc2VjdGlvbi0yLS1maXhlZCB7XG4gICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDAgMCAwIDApO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cblxuICAuc2VjdGlvbi0yX19saXN0LWNvbnRhaW5lciB7XG4gICAgLmlkZWFsLWNvbXBsZXhfX3N1YmhlYWRlciB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgICAgd2lkdGg6IDIwMHB4O1xuICAgIH1cbiAgfVxuXG4gIC5zZWN0aW9uLTIge1xuICB9XG5cbiAgLnNlY3Rpb24tMyB7XG5cbiAgfVxuXG4gIC5zZWN0aW9uLTMtLWZpeGVkIHtcbiAgICAuc2VjdGlvbi0zX19iYWNrZ3JvdW5kIHtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoL2Fzc2V0cy9mcm9udGVuZC9pbWcvaWRlYWwtY29tcGxleC9iYWNrZ3JvdW5kLW5vLXNoZWxmLmpwZyk7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAwIDAgMCAwKTtcbiAgICAgIHotaW5kZXg6IDA7XG4gICAgfVxuXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgLnNlY3Rpb24tM19fZGVzY3JpcHRpb24ge1xuICAgICAgb3BhY2l0eTogMDtcbiAgICAgIHdpZHRoOiAyMDBweDtcbiAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAyMyUgODAlIG51bGwgbnVsbCk7XG5cbiAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVZKC01MCUpKTtcblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3Atc21hbGwpIHtcbiAgICAgICAgcmlnaHQ6IDExMCU7XG4gICAgICAgIHRvcDogNTElO1xuICAgICAgICB3aWR0aDogMTgwcHg7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wKSB7XG4gICAgICAgIHJpZ2h0OiAxMTAlO1xuICAgICAgICB3aWR0aDogMjYwcHg7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wLW1lZGl1bSkge1xuICAgICAgICByaWdodDogMTQwJTtcbiAgICAgIH1cblxuICAgICAgJi5yaWdodCB7XG4gICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICBsZWZ0OiAxODAlO1xuICAgICAgICB0b3A6IDI3JTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcC1zbWFsbCkge1xuICAgICAgICAgIGxlZnQ6IDE5MCU7XG4gICAgICAgICAgdG9wOiA0MiU7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcCkge1xuICAgICAgICAgIGxlZnQ6IDE5OCU7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcC1tZWRpdW0pIHtcbiAgICAgICAgICBsZWZ0OiAyMTAlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnNlY3Rpb24tM19fbW9kZWwge1xuICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIG51bGwgbnVsbCAwIDUwJSk7XG4gICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWCgtNTAlKSk7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgaGVpZ2h0OiA1NyU7XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wLXNtYWxsKSB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuc2VjdGlvbi0zX19tb2RlbC1jb250YWluZXJfX2ZhY2UtYm91bmRpbmcge1xuICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDAgbnVsbCAwIDQ2JSk7XG4gICAgICB3aWR0aDogMTElO1xuXG4gICAgfVxuICB9XG5cbiAgLnNlY3Rpb24tNC0tZml4ZWQge1xuICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAwIDAgMCAwKTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wLXNtYWxsKSB7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cblxuICAgIC5pZGVhbC1jb21wbGV4X19zdWJoZWFkZXIge1xuICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDIyKTtcblxuICAgICAgLm5vLXRvdWNoZXZlbnRzICYge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcC1zbWFsbCkge1xuICAgICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgzMCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAuaWRlYWwtY29tcGxleF9fdGl0bGUtLWFsdCB7XG4gICAgICBAaW5jbHVkZSBmb250LXNpemUoMjApO1xuXG4gICAgICAubm8tdG91Y2hldmVudHMgJiB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wLXNtYWxsKSB7XG4gICAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDI1KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5zZWN0aW9uLTRfX2hlYWRlciB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wLXNtYWxsKSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDUwcHg7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKG1heC1oZWlnaHQgJGRlc2t0b3AtaGVpZ2h0LWJyZWFrKSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDI1cHg7XG4gICAgICB9XG5cbiAgICAgIC50b3VjaGV2ZW50cyAmIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEobWF4LWhlaWdodCAkdG91Y2gtaGVpZ2h0LWJyZWFrKSB7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMjVweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG5cbiAgICAuc2VjdGlvbi00X19iYWNrZ3JvdW5kIHtcbiAgICAgIG9wYWNpdHk6IDA7XG5cbiAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAwIDAgMCAwKTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICB6LWluZGV4OiAwO1xuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcC1zbWFsbCkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5sZWFybi1tb3JlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIC5sZWFybi1tb3JlLXdyYXBwZXIge1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcC1zbWFsbCkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuc2VjdGlvbi00X19pbm5lciB7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgbWFyZ2luOiAzNXB4IGF1dG8gMDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiA2OSU7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDU0cHg7XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wLXNtYWxsKSB7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgICB3aWR0aDogOTYwcHg7XG4gICAgICAgIHBhZGRpbmctbGVmdDogNTRweDtcbiAgICAgICAgbWFyZ2luLXRvcDogNTBweDtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgbWVkaWEobWF4LWhlaWdodCAkZGVza3RvcC1oZWlnaHQtYnJlYWspIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMjVweDtcbiAgICAgIH1cblxuICAgICAgLnRvdWNoZXZlbnRzICYge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYShtYXgtaGVpZ2h0ICR0b3VjaC1oZWlnaHQtYnJlYWspIHtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAyNXB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnNlY3Rpb24tNF9fcHJvZHVjdC1jb250YWluZXIge1xuICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG5cbiAgICAuc2VjdGlvbi00X19pbm5lci1jb2wge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBtYXJnaW4tdG9wOiAtNTBweDtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3Atc21hbGwpIHtcbiAgICAgICAgd2lkdGg6IDQ4MHB4O1xuICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB9XG5cbiAgICAgIC5zZWN0aW9uLTRfX2lubmVyLWNvbF9faW5uZXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIH1cblxuICAgICAgLnNlY3Rpb24tNF9faW5uZXItY29sX19jb3B5IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIHdpZHRoOiAzMiU7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3Atc21hbGwpIHtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmOmZpcnN0LWNoaWxkIHtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcC1zbWFsbCkge1xuICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDQwcHg7XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgIC5zZWN0aW9uLTRfX2lubmVyLWNvbF9fY29weSB7XG4gICAgICAgICAgICB3aWR0aDogMjY1cHg7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICY6bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3Atc21hbGwpIHtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogNDBweDtcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5pZGVhbC1jb21wbGV4X19kZXNjcmlwdGlvbntcbiAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDE1KTtcbiAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICAgICAgd2lkdGg6IGF1dG87XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3Atc21hbGwpIHtcbiAgICAgICAgICAubm8tdG91Y2hldmVudHMgJiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoMTgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB3aWR0aDogMjUwcHg7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLnNlY3Rpb24tNF9fcHJpY2Uge1xuICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoMTgpO1xuICAgICAgICBAZXh0ZW5kIC5mb250LXN0YW5kYXJkLWV4cGFuZGVkO1xuICAgICAgICBtYXJnaW4tdG9wOiAyMHB4O1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wLXNtYWxsKSB7XG4gICAgICAgICAgLm5vLXRvdWNoZXZlbnRzICYge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogNDBweDtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgyMCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5xdWFudGl0eS1idXktY29udGFpbmVyIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuc2VjdGlvbi00X190dWJlLWNvbnRhaW5lciB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB3aWR0aDogNTAlO1xuXG4gICAgICAuc2VjdGlvbi00X190dWJlIHtcbiAgICAgICAgd2lkdGg6IDIwMCU7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6IDA7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVYKC0xOSUpKTtcbiAgICAgICAgbWF4LXdpZHRoOiA0NjJweDtcbiAgICAgIH1cblxuICAgICAgLmxlYXJuLW1vcmUtd3JhcHBlciB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wLXNtYWxsKSB7XG4gICAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIG51bGwgLTg1cHggODBweCBudWxsKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLmxlYXJuLW1vcmUge1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWCgtMTAwJSkpO1xuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcC1zbWFsbCkge1xuICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMCBudWxsIDAgLTI2cHgpO1xuICAgICAgICB3aWR0aDogMTY2cHg7XG4gICAgICAgIC5zZWN0aW9uLTRfX3R1YmUge1xuICAgICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybShub25lKTtcbiAgICAgICAgICB3aWR0aDogNjAwcHg7XG4gICAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIG51bGwgbnVsbCAtNDFweCAtMjE1cHgpO1xuICAgICAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKG1heC1oZWlnaHQgJGRlc2t0b3AtaGVpZ2h0LWJyZWFrKSB7XG4gICAgICAgICAgYm90dG9tOiAtNTdweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC50b3VjaGV2ZW50cyAmIHtcbiAgICAgICAgICBAaW5jbHVkZSBtZWRpYShtYXgtaGVpZ2h0ICR0b3VjaC1oZWlnaHQtYnJlYWspIHtcbiAgICAgICAgICAgIGJvdHRvbTogLTU3cHg7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnNlY3Rpb24tNF9famFyLWNvbnRhaW5lciB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB3aWR0aDogNTAlO1xuICAgICAgbWFyZ2luLXRvcDogNTBweDtcblxuICAgICAgLnNlY3Rpb24tNF9famFyIHtcbiAgICAgICAgd2lkdGg6IDE1MCU7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6IDA7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGUoLTglLCAtMzAlKSk7XG4gICAgICAgIG1heC13aWR0aDogMzU0cHg7XG4gICAgICB9XG5cbiAgICAgIC5sZWFybi1tb3JlLXdyYXBwZXIge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcC1zbWFsbCkge1xuICAgICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCBudWxsIG51bGwgODBweCAtMTExcHgpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5sZWFybi1tb3JlIHtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVgoMTAwJSkpO1xuICAgICAgfVxuXG5cblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3Atc21hbGwpIHtcbiAgICAgICAgd2lkdGg6IDE5NXB4O1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMCAyMHB4IDAgbnVsbCk7XG5cbiAgICAgICAgLnNlY3Rpb24tNF9famFyIHtcbiAgICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgbnVsbCAtMTMwcHggLTYycHggbnVsbCk7XG4gICAgICAgICAgd2lkdGg6IDQ1N3B4O1xuICAgICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybShub25lKTtcbiAgICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYShtYXgtaGVpZ2h0ICRkZXNrdG9wLWhlaWdodC1icmVhaykge1xuICAgICAgICAgIGJvdHRvbTogLTU3cHg7XG4gICAgICAgIH1cblxuICAgICAgICAudG91Y2hldmVudHMgJiB7XG4gICAgICAgICAgQGluY2x1ZGUgbWVkaWEobWF4LWhlaWdodCAkdG91Y2gtaGVpZ2h0LWJyZWFrKSB7XG4gICAgICAgICAgICBib3R0b206IC01N3B4O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYudmlld2luZy0xIHtcbiAgICAuc2VjdGlvbi0xLS1maXhlZCB7XG4gICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICB9XG5cbiAgICAuZnVsbHBhZ2VfX3Njcm9sbC1jdGEge1xuICAgICAgQGluY2x1ZGUgYW5pbWF0aW9uLXBsYXktc3RhdGUocnVubmluZyk7XG4gICAgfVxuICB9XG5cbiAgJi52aWV3aW5nLTIge1xuICAgIC5zZWN0aW9uLTItLWZpeGVkIHtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgIH1cbiAgfVxuXG4gICYudmlld2luZy0zIHtcblxuICAgIC5zZWN0aW9uLTMtLWZpeGVkIHtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgIH1cbiAgfVxuXG4gICYudmlld2luZy00IHtcbiAgICAuaWRlYWwtY29tcGxleF9fY2FudmFzIHtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgfVxuICAgIC5zZWN0aW9uLTQtLWZpeGVkIHtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC9hc3NldHMvZnJvbnRlbmQvaW1nL2lkZWFsLWNvbXBsZXgvYmFja2dyb3VuZC1uby1zaGVsZi5qcGcpO1xuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcC1zbWFsbCkge1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5mdWxscGFnZV9fc2Nyb2xsLWN0YSB7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbiAgfVxufVxuIiwiLnBhZ2UudGhlLXBvd2VyLWNvdXBsZSB7XG4gICRkZXNrdG9wLXRvcC1oZWlnaHQ6IDUxcHg7XG4gICRmaXhlZC1mb290ZXItaGVpZ2h0OiA1NnB4O1xuICAkbW9iaWxlLWhlYWRlci10b3AtaGVpZ2h0OiA0MHB4O1xuICAkbW9iaWxlLWZpeGVkLWZvb3Rlci1oZWlnaHQ6IDQxcHg7XG4gICRoZWlnaHQtYnA6IDc3NXB4O1xuXG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XG4gIGNvbG9yOiAkd2hpdGU7XG4gIC5mcC10YWJsZUNlbGwge1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIH1cblxuICAubGlxdWlkLXN2Zy1iYWNrZ3JvdW5kIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZSgzLjElLCAwLjMzJSkpO1xuXG4gICAgPiAqIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC5saXF1aWQtc3ZnLWJhY2tncm91bmRfX2xpZ2h0LS10cmFjZXIge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAudGhlLXBvd2VyLWNvdXBsZV9fbG9hZGluZyB7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbihvcGFjaXR5IDAuMnMgMC41cyk7XG4gICAgQGluY2x1ZGUgcG9zaXRpb24oZml4ZWQsIC0xMnB4IC0xMnB4IC0xMnB4IC0xMnB4KTtcbiAgICB6LWluZGV4OiAxMDtcbiAgICBvcGFjaXR5OiAxO1xuXG4gICAgLnRoZS1wb3dlci1jb3VwbGVfX2xvYWRpbmdfX2JnIHtcbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAwIDAgMCAwKTtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjgpO1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDAgMCAwIDApO1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC9hc3NldHMvZnJvbnRlbmQvaW1nL3RoZS1wb3dlci1jb3VwbGUvbG9hZGluZy1iYWNrZ3JvdW5kLmpwZyk7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgQGluY2x1ZGUgZmlsdGVyKGJsdXIoMTJweCkpO1xuICAgIH1cblxuICAgIC50aGUtcG93ZXItY291cGxlX19sb2FkaW5nX19pbm5lciB7XG4gICAgICB3aWR0aDogNTAlO1xuICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDUwJSBudWxsIG51bGwgNTAlKTtcbiAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGUoLTUwJSwgLTUwJSkpO1xuICAgIH1cbiAgfVxuXG4gICYubG9hZGVkIHtcbiAgICAudGhlLXBvd2VyLWNvdXBsZV9fbG9hZGluZyB7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuXG4gICAgLnRoZS1wb3dlci1jb3VwbGVfX2ZpeGVkLWNvbnRhaW5lciB7XG4gICAgICBAaW5jbHVkZSBmaWx0ZXIobm9uZSk7XG4gICAgfVxuXG4gICAgLnRoZS1wb3dlci1jb3VwbGVfX2NhbnZhcyB7XG4gICAgICBAaW5jbHVkZSBmaWx0ZXIobm9uZSk7XG4gICAgfVxuICB9XG5cbiAgLmZ1bGxwYWdlX19zY3JvbGwtY3RhIHtcbiAgICAuZnVsbHBhZ2VfX3Njcm9sbC1jdGFfX2NvcHkge1xuICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICB9XG4gICAgLmljb24ge1xuICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICB9XG4gIH1cblxuICAudGhlLXBvd2VyLWNvdXBsZV9faGVhZGVyIHtcbiAgICBAZXh0ZW5kIC5mb250LXN0YW5kYXJkLXRoaW47XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKDYwKTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wLXNtYWxsKSB7XG4gICAgICBAaW5jbHVkZSBmb250LXNpemUoODApO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKG1heC1oZWlnaHQgJGhlaWdodC1icCkge1xuICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDYwKTtcbiAgICB9XG4gIH1cblxuICAudGhlLXBvd2VyLWNvdXBsZV9fc3ViaGVhZGVyIHtcbiAgICBAZXh0ZW5kIC5mb250LXN0YW5kYXJkLWJvbGQ7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKDIwKTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wLXNtYWxsKSB7XG4gICAgICBAaW5jbHVkZSBmb250LXNpemUoMzApO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKG1heC1oZWlnaHQgJGhlaWdodC1icCkge1xuICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDIwKTtcbiAgICB9XG4gIH1cblxuICAudGhlLXBvd2VyLWNvdXBsZV9fdGl0bGUge1xuICAgIEBleHRlbmQgLmZvbnQtc3RhbmRhcmQtdGhpbjtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoNTApO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3Atc21hbGwpIHtcbiAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSg2MCk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEobWF4LWhlaWdodCAkaGVpZ2h0LWJwKSB7XG4gICAgICBAaW5jbHVkZSBmb250LXNpemUoNTApO1xuICAgIH1cbiAgfVxuXG4gIC50aGUtcG93ZXItY291cGxlX19kZXNjcmlwdGlvbiB7XG4gICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICBAaW5jbHVkZSBmb250LXNpemUoMTYpO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3Atc21hbGwpIHtcbiAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxOCk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEobWF4LWhlaWdodCAkaGVpZ2h0LWJwKSB7XG4gICAgICBAaW5jbHVkZSBmb250LXNpemUoMTYpO1xuICAgIH1cblxuICAgIC5ib2xkIHtcbiAgICAgIEBleHRlbmQgLmZvbnQtc3RhbmRhcmQtYm9sZDtcbiAgICB9XG4gIH1cblxuICAudGhlLXBvd2VyLWNvdXBsZV9fZml4ZWQtY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGZpbHRlciAwLjVzIDAuNXMsIC13ZWJraXQtZmlsdGVyIDAuNXMgMC41cyk7XG4gICAgQGluY2x1ZGUgZmlsdGVyKGJsdXIoMTJweCkpO1xuICAgIEBpbmNsdWRlIHBvc2l0aW9uKGZpeGVkLCAkbW9iaWxlLWhlYWRlci10b3AtaGVpZ2h0IDAgJG1vYmlsZS1maXhlZC1mb290ZXItaGVpZ2h0IDApO1xuICAgIHotaW5kZXg6IDI7XG4gICAgLy8gRml4ZWQgZWxlbWVudHMgbmVzdGVkIHdpdGhpbiBhbiBlbGVtZW50IHdpdGggYSB0cmFuc2Zvcm1cbiAgICAvLyBhcmUgcmVsYXRpdmUgdG8gdGhhdCBlbGVtZW50LiBFbnN1cmUgZWFjaCBuZXN0ZWQgZml4ZWRcbiAgICAvLyBlbGVtZW50IG1haW50YWlucyB0b3AgYW5kIGJvdHRvbSBwYWRkaW5nXG4gICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVooMCkpO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJHRhYmxldCkge1xuICAgICAgdG9wOiAkZGVza3RvcC10b3AtaGVpZ2h0O1xuICAgICAgYm90dG9tOiAkZml4ZWQtZm9vdGVyLWhlaWdodDtcbiAgICB9XG4gIH1cblxuICAudGhlLXBvd2VyLWNvdXBsZV9fY2FudmFzIHtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGZpbHRlciAwLjVzIDAuNXMsIC13ZWJraXQtZmlsdGVyIDAuNXMgMC41cyk7XG4gICAgQGluY2x1ZGUgZmlsdGVyKGJsdXIoMTJweCkpO1xuICAgIEBpbmNsdWRlIHBvc2l0aW9uKGZpeGVkLCAkZGVza3RvcC10b3AtaGVpZ2h0IDAgJGZpeGVkLWZvb3Rlci1oZWlnaHQgMCk7XG4gICAgei1pbmRleDogMTtcbiAgfVxuXG4gIC5zZWN0aW9uLTEtLWZpeGVkIHtcblxuICB9XG5cbiAgLnRoZS1wb3dlci1jb3VwbGVfX3Byb2R1Y3RzLWJvdW5kaW5nIHtcbiAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMCBudWxsIG51bGwgMCk7XG4gIH1cblxuICAuc2VjdGlvbi0xX19jb3B5IHtcbiAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMTAlIC0zNjNweCBudWxsIG51bGwpO1xuICAgIHdpZHRoOiAzNzVweDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wKSB7XG4gICAgICByaWdodDogLTQzNHB4O1xuICAgIH1cblxuICAgIC50aGUtcG93ZXItY291cGxlX19zdWJoZWFkZXIge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICB9XG4gIH1cblxuICAudGhlLXBvd2VyLWNvdXBsZV9fbGlzdCB7XG4gICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICAgICYsbGkge1xuICAgICAgbGlzdC1zdHlsZS10eXBlOiBkaXNjO1xuICAgIH1cbiAgfVxuXG4gIC5zZWN0aW9uLTJfX2NvcHkge1xuICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCBudWxsIG51bGwgLTUwcHggMzBweCk7XG4gICAgd2lkdGg6IDM3MHB4O1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJHNob3J0KSB7XG4gICAgICBib3R0b206IC0yMHB4O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wKSB7XG4gICAgICBsZWZ0OiAwO1xuICAgIH1cbiAgfVxuXG4gIC5zZWN0aW9uLTNfX2NvcHksIC5zZWN0aW9uLTRfX2NvcHksIC5zZWN0aW9uLTVfX2NvcHkge1xuICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCBudWxsIG51bGwgMTE2JSAtNjYlKTtcbiAgICB3aWR0aDogNDAwcHg7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgbGVmdDogLTQ1JTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wLXNtYWxsKSB7XG4gICAgICB3aWR0aDogNDIwcHg7XG4gICAgICBsZWZ0OiAtNjYlO1xuICAgIH1cblxuICAgICYuc2VjdGlvbi00X19jb3B5IHtcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wLXNtYWxsKSB7XG4gICAgICAgIHdpZHRoOiA1MDBweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLnNlY3Rpb24tNV9fY29weSB7XG4gICAgICBib3R0b206IDEyMCU7XG4gICAgfVxuXG4gICAgLnRoZS1wb3dlci1jb3VwbGVfX2xpc3Qge1xuICAgICAgbWFyZ2luLXRvcDogMjBweDtcblxuICAgICAgbGkge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAudGhlLXBvd2VyLWNvdXBsZV9fc3ViaGVhZGVyIHtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgfVxuICB9XG5cbiAgLnRoZS1wb3dlci1jb3VwbGVfX3BsdXMge1xuICAgIEBpbmNsdWRlIHNpemUoNDJweCA0MnB4KTtcbiAgfVxuXG4gIC5pY29uLXBsdXMge1xuXG4gICAgb3BhY2l0eTogMDtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGNvbG9yIDAuM3MgZWFzZS1vdXQsIG9wYWNpdHkgMC4zcyBlYXNlLW91dCk7XG4gICAgY29sb3I6ICRsaW5rLWJsdWU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIEBpbmNsdWRlIHNpemUoNDJweCA0MnB4KTtcbiAgICAmOjpiZWZvcmUge1xuICAgICAgei1pbmRleDogMTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG4gICAgJjo6YWZ0ZXIge1xuICAgICAgQGluY2x1ZGUgc2l6ZSg0MnB4IDQycHgpO1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAwIG51bGwgbnVsbCAwKTtcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC42NSk7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICB6LWluZGV4OiAwO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgICYuYWN0aXZlLCAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgfVxuICB9XG5cbiAgLnRoZS1wb3dlci1jb3VwbGVfX21vZGVsLWJvdW5kaW5nIHtcbiAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMCBudWxsIG51bGwgMCk7XG5cbiAgICAubW9kZWwtYm91bmRpbmdfX2Rlc2NyaXB0aW9uIHtcbiAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24ob3BhY2l0eSAwLjNzIGVhc2Utb3V0LCB0cmFuc2Zvcm0gM3MgZWFzZS1vdXQpO1xuICAgICAgdGV4dC1zaGFkb3c6IDFweCAxcHggIzAwMDtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICBAZXh0ZW5kIC5mb250LXN0YW5kYXJkLXJvbWFuO1xuICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDIwcHggbnVsbCBudWxsIDE4MHB4KTtcbiAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxOCk7XG4gICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgd2lkdGg6IDI0MHB4O1xuICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVkoNSUpKTtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAuYm9sZCB7XG4gICAgICAgICBAZXh0ZW5kIC5mb250LXN0YW5kYXJkLWJvbGQ7XG4gICAgICB9XG5cbiAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihvcGFjaXR5IDAuM3MgZWFzZS1vdXQgMXMsIHRyYW5zZm9ybSAwLjJzIGVhc2Utb3V0IDFzKTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKG5vbmUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC50aGUtcG93ZXItY291cGxlX19tb2RlbC1ib3VuZGluZ19fZm9yZWhlYWQge1xuICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDI0JSBudWxsIG51bGwgNzMlKTtcbiAgICAgIEBpbmNsdWRlIHNpemUoNXB4IDVweCk7XG4gICAgICAubW9kZWwtYm91bmRpbmdfX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgbGVmdDogMTc1cHg7XG4gICAgICAgIHRvcDogMjBweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAudGhlLXBvd2VyLWNvdXBsZV9fbW9kZWwtYm91bmRpbmdfX2NoZWVrIHtcbiAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAzOCUgbnVsbCBudWxsIDczJSk7XG4gICAgICBAaW5jbHVkZSBzaXplKDVweCA1cHgpO1xuXG4gICAgICAubW9kZWwtYm91bmRpbmdfX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgbGVmdDogMTYwcHg7XG4gICAgICAgIHRvcDogLTk5cHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnRoZS1wb3dlci1jb3VwbGVfX21vZGVsLWJvdW5kaW5nX19jaGluIHtcbiAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCA0OCUgbnVsbCBudWxsIDYxJSk7XG4gICAgICBAaW5jbHVkZSBzaXplKDVweCA1cHgpO1xuICAgIH1cbiAgfVxuXG4gIC50aGUtcG93ZXItY291cGxlX19saXF1aWQtYm91bmRpbmcge1xuICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAwIG51bGwgbnVsbCAwKTtcbiAgICAvL2JvcmRlcjogMXB4IHNvbGlkIHllbGxvdztcblxuICAgIC5wbHVzLS0xIHtcbiAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCA1Ni41JSBudWxsIG51bGwgNzAuNSUpO1xuICAgIH1cblxuICAgIC5wbHVzLS0yIHtcbiAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCA1OS41JSBudWxsIG51bGwgNDUlKTtcbiAgICB9XG5cbiAgICAucGx1cy0tMyB7XG4gICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgNjMuOSUgbnVsbCBudWxsIDU3LjUlKTtcbiAgICB9XG5cbiAgICAudGhlLXBvd2VyLWNvdXBsZV9fbGlxdWlkLWJvdW5kaW5nX19ib3R0b20ge1xuICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIG51bGwgMTEuNiUgNCUgbnVsbCk7XG4gICAgICB6LWluZGV4OiAzO1xuXG4gICAgICBoZWlnaHQ6IDklO1xuICAgICAgd2lkdGg6IDUwJTtcblxuICAgICAgLnByaWNlIHtcbiAgICAgICAgQGV4dGVuZCAuZm9udC1zdGFuZGFyZC1saWdodC1leHBhbmRlZDtcbiAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDIwKTtcbiAgICAgIH1cblxuICAgICAgLmxlYXJuLW1vcmUtY29udGFpbmVyIHtcbiAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDI0JTtcbiAgICAgICAgbWluLXdpZHRoOiAxMjVweDtcbiAgICAgIH1cblxuICAgICAgLmxlYXJuLW1vcmUge1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgfVxuXG4gICAgICAudG9wIHtcbiAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgICAgIGhlaWdodDogNTclO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cblxuICAgICAgLmxlZnQge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgLmxlYXJuLW1vcmUtY29udGFpbmVyIHtcbiAgICAgICAgICByaWdodDogNTUuMiU7XG4gICAgICAgIH1cblxuICAgICAgICAubGVhcm4tbW9yZSB7XG4gICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVgoMTIlKSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLnJpZ2h0IHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiA5cHg7XG4gICAgICAgIH1cblxuICAgICAgICAubGVhcm4tbW9yZS1jb250YWluZXIge1xuICAgICAgICAgIGxlZnQ6IDUzLjklO1xuICAgICAgICB9XG5cbiAgICAgICAgLmxlYXJuLW1vcmUge1xuICAgICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVYKC05JSkpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5ib3R0b20ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIC5ib3R0b21fX2NvcHkge1xuICAgICAgICBAZXh0ZW5kIC5mb250LXN0YW5kYXJkLWxpZ2h0O1xuICAgICAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoMTgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYudmlld2luZy0xIHtcbiAgICAuZnVsbHBhZ2VfX3Njcm9sbC1jdGEge1xuICAgICAgQGluY2x1ZGUgYW5pbWF0aW9uLXBsYXktc3RhdGUocnVubmluZyk7XG4gICAgfVxuICB9XG5cbiAgLy8gJi52aWV3aW5nLTYge1xuICAvLyAgIC5pY29uLXBsdXMge1xuICAvLyAgICAgb3BhY2l0eTogMTtcbiAgLy8gICB9XG4gIC8vIH1cblxuICAmLnZpZXdpbmctNyB7XG4gICAgLmZ1bGxwYWdlX19zY3JvbGwtY3RhIHtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuICB9XG59XG4iLCIkZGVza3RvcC1xdW90ZS1zaXplOiAyNjtcbiR0YWJsZXQtcXVvdGUtc2l6ZTogMjI7XG5cbkBtaXhpbiBncmlkLWl0ZW0tY29sdW1ucygkY29sdW1ucykge1xuICB3aWR0aDogKDEwMCUgLyAxMikgKiAkY29sdW1ucztcbn1cblxuLmdyaWQtYXJyb3dfYm94IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kOiAjMDAwMDAwO1xuXG4gICY6YWZ0ZXIge1xuICAgIHotaW5kZXg6IDE7XG4gICAgcmlnaHQ6IDEwMCU7XG4gICAgbGVmdDogaW5pdGlhbDtcbiAgICB0b3A6IDY1cHg7XG4gICAgYm9yZGVyOiBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBjb250ZW50OiBcIiBcIjtcbiAgICBoZWlnaHQ6IDA7XG4gICAgd2lkdGg6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbiAgICBib3JkZXItcmlnaHQtY29sb3I6ICMwMDAwMDA7XG4gICAgYm9yZGVyLXdpZHRoOiA2cHg7XG4gICAgbWFyZ2luLXRvcDogLTE0cHg7XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcC1zbWFsbCkge1xuICAgICY6YWZ0ZXIge1xuICAgICAgYm9yZGVyLXdpZHRoOiAxMHB4O1xuICAgICAgbWFyZ2luLXRvcDogLTEwcHg7XG4gICAgfVxuICB9XG59XG5cbi5ncmlkLWFycm93X2JveF9sZWZ0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kOiAjMDAwMDAwO1xuXG4gICY6YWZ0ZXIge1xuICAgIHotaW5kZXg6IDE7XG4gICAgbGVmdDogMTAwJTtcbiAgICByaWdodDogaW5pdGlhbDtcbiAgICB0b3A6IDY1cHg7XG4gICAgYm9yZGVyOiBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBjb250ZW50OiBcIiBcIjtcbiAgICBoZWlnaHQ6IDA7XG4gICAgd2lkdGg6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbiAgICBib3JkZXItbGVmdC1jb2xvcjogIzAwMDAwMDtcbiAgICBib3JkZXItd2lkdGg6IDZweDtcbiAgICBtYXJnaW4tdG9wOiAtMjdweDtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wLXNtYWxsKSB7XG4gICAgJjphZnRlciB7XG4gICAgICBib3JkZXItd2lkdGg6IDEwcHg7XG4gICAgICBtYXJnaW4tdG9wOiAtMTBweDtcbiAgICB9XG4gIH1cbn1cblxuXG5cbi5ncmlkLWl0ZW1zIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG5cbiAgcCB7XG4gICAgbGluZS1oZWlnaHQ6IDEuNWVtO1xuICB9XG5cbiAgYSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGNvbG9yOiAkd2hpdGU7XG4gIH1cblxuICAucm93e1xuICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhtYXJnaW4tYm90dG9tLCAyKTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wLXNtYWxsKSB7XG4gICAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2sobWFyZ2luLWJvdHRvbSwgMCk7XG4gICAgICBAZXh0ZW5kICVjbGVhcmZpeDtcbiAgICB9XG4gIH1cbn1cblxuLnJvdy5ncmlke1xuICBAaW5jbHVkZSByZW0tZmFsbGJhY2sobWFyZ2luLWJvdHRvbSwgMCk7XG5cbiAgLmdyaWQtaXRlbXtcbiAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2sobWFyZ2luLWJvdHRvbSwgMik7XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcC1zbWFsbCkge1xuICAgIC5ncmlkLWl0ZW17XG4gICAgICB3aWR0aDogNTAlO1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2soaGVpZ2h0LCAzMCk7XG4gICAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2sobWFyZ2luLWJvdHRvbSwgMCk7XG4gICAgfVxuICAgIC5ncmlkLWl0ZW1fX2Jsb2Nre1xuICAgICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKGhlaWdodCwgMzApO1xuICAgIH1cbiAgICAuZ3JpZC1pdGVtX19jb250ZW50e1xuICAgICAgQGV4dGVuZCAuZ3JpZC1hcnJvd19ib3hfbGVmdDtcbiAgICB9XG4gICAgLmdyaWQtaXRlbV9fbWVkaWF7XG4gICAgICB3aWR0aDogNTAlO1xuICAgICAgbWluLXdpZHRoOiBhdXRvO1xuICAgIH1cbiAgICAmOm50aC1jaGlsZChldmVuKXtcbiAgICAgIC5ncmlkLWl0ZW1fX2NvbnRlbnR7XG4gICAgICAgIEBleHRlbmQgLmdyaWQtYXJyb3dfYm94O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG59XG5cbi5yb3ctLXN0eWxlMXtcblxuICAuZ3JpZC1pdGVte1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLmdyaWQtaXRlbV9fY29udGVudHtcbiAgICAvL2Rpc3BsYXk6IG5vbmU7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcC1zbWFsbCkge1xuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgIEBleHRlbmQgLmdyaWQtYXJyb3dfYm94O1xuICAgIH1cbiAgfVxuICAuZ3JpZC1pdGVtX19tZWRpYXtcbiAgICBmb290ZXJ7XG4gICAgICB3aWR0aDogNTAlO1xuICAgICAgbGVmdDogYXV0bztcbiAgICAgIHJpZ2h0OiAwO1xuICAgIH1cbiAgICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcC1zbWFsbCkge1xuICAgICAgZm9vdGVye1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKHdpZHRoLCA2Nik7XG4gICAgfVxuICB9XG4gICYucXVvdGUtYm94e1xuXG4gICAgLmdyaWQtaXRlbV9fY29udGVudHtcbiAgICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhwYWRkaW5nLXRvcCwgNSk7XG4gICAgICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcC1zbWFsbCkge1xuICAgICAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2socGFkZGluZywgNywgMiwgMCwgMik7XG5cbiAgICAgICAgYmxvY2txdW90ZXtcbiAgICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoJGRlc2t0b3AtcXVvdGUtc2l6ZSk7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgIHdpZHRoOiA5MCU7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJi5xdW90ZS1ib3gtc2hhcmV7XG5cbiAgICAuZ3JpZC1pdGVte1xuXG4gICAgfVxuXG4gICAgLmdyaWQtaXRlbV9fbWVkaWF7XG4gICAgICB3aWR0aDogNTAlO1xuICAgICAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3Atc21hbGwpIHtcbiAgICAgICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKHdpZHRoLCA2Nik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmdyaWQtaXRlbV9fY29udGVudCB7XG4gICAgICBibG9ja3F1b3RlIHtcbiAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKCR0YWJsZXQtcXVvdGUtc2l6ZSk7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3Atc21hbGwpIHtcbiAgICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoJGRlc2t0b3AtcXVvdGUtc2l6ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmxlZnR7XG4gICAgICAuZ3JpZC1pdGVtX19jb250ZW50e1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcC1zbWFsbCkge1xuICAgICAgICAgIEBleHRlbmQgLmdyaWQtYXJyb3dfYm94X2xlZnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxufVxuXG4ucm93LS1zdHlsZTJ7XG4gIC5ncmlkLWl0ZW17XG4gICAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3Atc21hbGwpIHtcbiAgICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayh3aWR0aCwgNjYpO1xuICAgIH1cbiAgfVxuICAuZ3JpZC1pdGVtX19tZWRpYXtcbiAgICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcC1zbWFsbCkge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG4gIC5ncmlkLWl0ZW1fX2NvbnRlbnR7XG4gICAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3Atc21hbGwpIHtcbiAgICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhtaW4td2lkdGgsIDMwKTtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgICBAZXh0ZW5kIC5ncmlkLWFycm93X2JveF9sZWZ0O1xuICAgIH1cbiAgfVxufVxuXG4ucm93LS1zdHlsZTN7XG4gIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wLXNtYWxsKSB7XG4gICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKGhlaWdodCwgNjApO1xuXG4gICAgLmdyaWQtaXRlbSB7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgLmdyaWQtaXRlbV9fY29udGVudHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgQGV4dGVuZCAuZ3JpZC1hcnJvd19ib3hfbGVmdDtcbiAgICAgIH1cblxuICAgICAgLmdyaWQtaXRlbV9fbWVkaWF7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKHdpZHRoLCA2Nik7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5yb3ctLXN0eWxlNCB7XG4gIC5ncmlkLWl0ZW1fX2Jsb2NrIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCR0YWJsZXQpIHtcbiAgICAgIHdpZHRoOiAzMDBweDtcbiAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgfVxuICB9XG5cbiAgLmdyaWQtaXRlbV9fY29udGVudCB7XG4gICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKHBhZGRpbmctdG9wLCA1KTtcbiAgICBibG9ja3F1b3RlIHtcbiAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICBAaW5jbHVkZSBmb250LXNpemUoJHRhYmxldC1xdW90ZS1zaXplKTtcbiAgICB9XG4gICAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3Atc21hbGwpIHtcbiAgICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhwYWRkaW5nLCA3LCAyLCAwLCAyKTtcblxuICAgICAgYmxvY2txdW90ZXtcblxuICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoJGRlc2t0b3AtcXVvdGUtc2l6ZSk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHdpZHRoOiA4NyU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiB9XG5cbi5yb3ctLXN0eWxlNXtcblxuICAuZ3JpZC1pdGVte1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcblxuICAgIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wLXNtYWxsKSB7XG4gICAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2sod2lkdGgsIDY2KTtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG5cbiAgfVxuXG4gIC8vIGZyb20gTVcyXG4gICYuc29jaWFsX3N0b3J5X3N0YXRpY19ibG9jayAuc29jaWFsX2ljb24ge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIHBhZGRpbmc6IDEwcHg7XG5cbiAgICBpe1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgYmFja2dyb3VuZDogJGJsdWU7XG4gICAgICBAaW5jbHVkZSBmb250LXNpemUoMTYpO1xuICAgICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKHBhZGRpbmcsIDAuOCwgMS42KTtcbiAgICB9XG4gIH1cblxuICAmLnNvY2lhbF9zdG9yeV9zdGF0aWNfYmxvY2sgLnN0b3J5X2xpbmUge1xuICAgIGJhY2tncm91bmQ6IG5vbmUgcmVwZWF0IHNjcm9sbCAwIDAgJGJsdWU7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIGhlaWdodDogMC41cmVtO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gICYuc29jaWFsX3N0b3J5X3N0YXRpY19ibG9jayAuc29jaWFsX3N0b3J5X3N0YXRpY19ibG9jayAuZ3JpZC1pdGVtIGEge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRibGFjaztcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgaGVpZ2h0OiAyOXJlbTtcbiAgfVxuICAmLnNvY2lhbF9zdG9yeV9zdGF0aWNfYmxvY2sgLmJ1dHRvbl9ibG9jayB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICB9XG4gICYuc29jaWFsX3N0b3J5X3N0YXRpY19ibG9jayAudGV4dF9ib3ggIGJsb2NrcXVvdGUge1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgkdGFibGV0LXF1b3RlLXNpemUpO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3Atc21hbGwpIHtcbiAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgkZGVza3RvcC1xdW90ZS1zaXplKTtcbiAgICB9XG5cbiAgfVxuICAmLnNvY2lhbF9zdG9yeV9zdGF0aWNfYmxvY2sgLmdyaWQtaXRlbSA+IGEge1xuICAgIGJhY2tncm91bmQ6IG5vbmUgcmVwZWF0IHNjcm9sbCAwIDAgJGJsYWNrO1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKHBhZGRpbmctYm90dG9tLCAyKTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wLXNtYWxsKSB7XG4gICAgICBoZWlnaHQ6IDI5cmVtO1xuICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgfVxuICB9XG4gICYuc29jaWFsX3N0b3J5X3N0YXRpY19ibG9jayAudGV4dF9ib3gge1xuICAgIG1hcmdpbjogMHJlbSAycmVtIDAgMi40cmVtO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcC1zbWFsbCkge1xuICAgICAgbWFyZ2luOiAwcmVtIDRyZW07XG4gICAgfVxuICB9XG4gICYuc29jaWFsX3N0b3J5X3N0YXRpY19ibG9jayAuZm9vdGVyX2Jsb2NrIHNwYW4ge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB9XG4gICYuc29jaWFsX3N0b3J5X3N0YXRpY19ibG9jayAuZm9vdGVyX2Jsb2NrIHtcbiAgICBtYXJnaW46IDMuNXJlbSBhdXRvIDA7XG4gIH1cbn1cblxuLmdyaWQtaXRlbSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBAaW5jbHVkZSByZW0tZmFsbGJhY2soaGVpZ2h0LCAxOCk7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3Atc21hbGwpIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2soaGVpZ2h0LCAzMCk7XG4gIH1cblxuICAvLyBpZiBsZWZ0IHRoZW4gY29udGVudCBsZWZ0IGFycm93IHJpZ2h0XG4gICYubGVmdHtcbiAgICAuZ3JpZC1pdGVtX19jb250ZW50e1xuICAgICAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3Atc21hbGwpIHtcbiAgICAgICAgQGV4dGVuZCAuZ3JpZC1hcnJvd19ib3hfbGVmdDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLy8gaWYgcmlnaHQgdGhlbiBjb250ZW50IHJpZ2h0IGFycm93IGxlZnRcbiAgJi5yaWdodHtcbiAgICAuZ3JpZC1pdGVtX19jb250ZW50e1xuICAgICAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3Atc21hbGwpIHtcbiAgICAgICAgQGV4dGVuZCAuZ3JpZC1hcnJvd19ib3g7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZm9vdGVye1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKGJvdHRvbSwgMik7XG4gICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKHBhZGRpbmcsIDAsIDEuNSk7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcC1zbWFsbCkge1xuICAgICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKGJvdHRvbSwgNCk7XG4gICAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2socGFkZGluZywgMCwgNCk7XG4gICAgfVxuICB9XG5cbn1cblxuLmdyaWQtaXRlbSBpbWcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAzZW07XG4gIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgbWFyZ2luOiBhdXRvO1xufVxuXG4uZ3JpZC1pdGVtIC5idG57XG4gIEBleHRlbmQgLmJ0bi0td2hpdGU7XG4gIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhwYWRkaW5nLCAxLCAyKTtcbiAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKGxldHRlci1zcGFjaW5nLCAwLjA4KTtcbiAgQGluY2x1ZGUgZm9udC1zaXplKDEyKTtcbiAgd2lkdGg6IDEwMCU7XG5cbiAgJjpob3ZlcntcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wLXNtYWxsKSB7XG4gICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKGxldHRlci1zcGFjaW5nLCAwLjAyKTtcbiAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2socGFkZGluZywgMS44NSwgMyk7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKDIwKTtcbiAgfVxufVxuXG4uZ3JpZC1pdGVtIGJsb2NrcXVvdGV7XG4gIEBleHRlbmQgLmZvbnQtc3RhbmRhcmQtdGhpbi1pdGFsaWM7XG4gIGxpbmUtaGVpZ2h0OiAxLjI3O1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG59XG5cbi5ncmlkLWl0ZW0gLnRpdGxlIHtcbiAgY29sb3I6ICR3aGl0ZTtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKG1hcmdpbi10b3AsIDApO1xuICBAaW5jbHVkZSByZW0tZmFsbGJhY2sobWFyZ2luLWJvdHRvbSwgMSk7XG4gIEBleHRlbmQgLmZvbnQtc3RhbmRhcmQtbGlnaHQ7XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZSgxNik7XG4gIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhoZWlnaHQsIDYpO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCR0YWJsZXQpIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKDE5KTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wLXNtYWxsKSB7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKDI1KTtcbiAgfVxufVxuXG4uZ3JpZC1pdGVtX19ibG9ja3tcbiAgaGVpZ2h0OiAxMDAlO1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICBAaW5jbHVkZSByZW0tZmFsbGJhY2soaGVpZ2h0LCAxOCk7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3Atc21hbGwpIHtcbiAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2soaGVpZ2h0LCAzMCk7XG4gIH1cbn1cblxuLmdyaWQtaXRlbV9fY29udGVudHtcbiAgd2lkdGg6IDUwJTtcbiAgbWF4LXdpZHRoOiBhdXRvO1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6ICRibGFjaztcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKHBhZGRpbmcsIDIuMywgMS41LCAzLCAxLjUpO1xuICBAZXh0ZW5kIC5ncmlkLWFycm93X2JveF9sZWZ0O1xuXG4gIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wLXNtYWxsKSB7XG4gICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKHBhZGRpbmcsIDMsIDMsIDQsIDMpO1xuICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhwYWRkaW5nLWJvdHRvbSwgMCk7XG4gICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKHdpZHRoLCAzMCk7XG4gICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKG1heC13aWR0aCwgMzApO1xuICB9XG59XG5cbi5ncmlkLWl0ZW1fX21lZGlhe1xuICBiYWNrZ3JvdW5kOiAkbGlnaHQtZ3JleTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSAhaW1wb3J0YW50O1xuXG4gIGltZ3tcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcC1zbWFsbCkge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxuXG4gIH1cbn1cblxuLmdyaWQtaXRlbV9fbWVkaWEtLWZ1bGx7XG4gIG1pbi13aWR0aDogYXV0bztcbiAgd2lkdGg6IDUwJTtcblxuICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcC1zbWFsbCkge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5cbi5ncmlkLWl0ZW0gcCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG1hcmdpbjogYXV0bztcbiAgQGV4dGVuZCAuZm9udC1zdGFuZGFyZC1tZWRpdW07XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZSgxNCk7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJHRhYmxldCkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5cbi5ncmlkLWl0ZW0taW1hZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmctZ3JleTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xufVxuIiwiLmxvY2F0b3Itc2VhcmNoe1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhoZWlnaHQsIDIwKTtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlciAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCAhaW1wb3J0YW50O1xuXG4gIC5sb2NhdG9yLXNlYXJjaC1jb250ZW50e1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgQGV4dGVuZCAlY2xlYXJmaXg7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcC1zbWFsbCkge1xuICAgICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKG1heC13aWR0aCwgOTIpO1xuICAgIH1cbiAgfVxuXG4gIC5jb250ZW50LWZvcm17XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0b3A6IDUwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgY29sb3I6ICR3aGl0ZTtcblxuICAgIC5oZWFkZXJ7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBsaW5lLWhlaWdodDogMC44O1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IDJweDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgyMCk7XG4gICAgICBAZXh0ZW5kIC5mb250LXN0YW5kYXJkLWxpZ2h0O1xuICAgICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKG1hcmdpbi1ib3R0b20sIDEpO1xuXG4gICAgICAmOmJlZm9yZXtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGJhY2tncm91bmQ6IHVybCgvYXNzZXRzL2Zyb250ZW5kL2ltZy9zdmcvbG9jYXRpb24tYmx1ZS5zdmcpIG5vLXJlcGVhdDtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiAxMDAlO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayh0b3AsIC0wLjQpO1xuICAgICAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2sobGVmdCwgLTMuNyk7XG4gICAgICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayh3aWR0aCwgMi44KTtcbiAgICAgICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKGhlaWdodCwgMi44KTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgkdGFibGV0KSB7XG4gICAgICAgICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKHRvcCwgMC45KTtcbiAgICAgICAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2sobGVmdCwgLTUuMyk7XG4gICAgICAgICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKHdpZHRoLCA0LjUpO1xuICAgICAgICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhoZWlnaHQsIDQuNSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcCkge1xuICAgICAgICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayh0b3AsIDEuNik7XG4gICAgICAgICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKGxlZnQsIC02LjMpO1xuICAgICAgICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayh3aWR0aCwgNS41KTtcbiAgICAgICAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2soaGVpZ2h0LCA1LjUpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCR0YWJsZXQpIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDEuM3B4O1xuICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoNDApO1xuICAgICAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2sobWFyZ2luLWJvdHRvbSwgMCk7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wKSB7XG4gICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSg2MCk7XG4gICAgICB9XG5cbiAgICB9XG5cbiAgICAuc3ViaGVhZGVye1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgIGxldHRlci1zcGFjaW5nOiAwLjRweDtcbiAgICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhtYXJnaW4tYm90dG9tLCA0KTtcbiAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgyMCk7XG4gICAgICBAZXh0ZW5kIC5mb250LXN0YW5kYXJkLW1lZGl1bTtcbiAgICB9XG5cbiAgICBpbnB1dHtcbiAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxNSk7XG4gICAgICBAZXh0ZW5kIC5mb250LXN0YW5kYXJkLW1lZGl1bTtcbiAgICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayh3aWR0aCwgMjIpO1xuICAgICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKHBhZGRpbmcsIDEuNywgMS45KTtcbiAgICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhtYXJnaW4tYm90dG9tLCAxKTtcbiAgICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhtYXJnaW4tcmlnaHQsIDEpO1xuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgkdGFibGV0KSB7XG4gICAgICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhtYXJnaW4tYm90dG9tLCAwKTtcbiAgICAgICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKG1hcmdpbi1yaWdodCwgMS43KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGUoLTUwJSwgLTUwJSkpO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3Atc21hbGwpIHtcbiAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2soaGVpZ2h0LCA0Myk7XG4gIH1cblxuICAmLm5hcnJvd3tcbiAgICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcC1zbWFsbCkge1xuICAgICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKGhlaWdodCwgMzApO1xuICAgIH1cbiAgfVxuXG59XG4iLCIucHJvZHVjdC1kZXRhaWxzLXBhbmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICBjb2xvcjogJGJsYWNrO1xuXG5cbiAgLnByb2R1Y3QtZGV0YWlscy1wYW5lbF9fY29udGVudC13cmFwIHtcbiAgICBwYWRkaW5nOiAzMHB4IDMwcHggMzBweDtcbiAgfVxuXG4gIC5wcm9kdWN0LWRldGFpbHMtcGFuZWxfX2NvbnRlbnQtd3JhcC0tZGFyayB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrO1xuICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgcGFkZGluZzogMTBweCAxMHB4O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYmxhY2s7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkdGFibGV0KSB7XG4gICAgICBwYWRkaW5nOiAyMHB4IDMwcHg7XG4gICAgfVxuICB9XG5cbiAgLnByb2R1Y3QtZGV0YWlscy1wYW5lbF9fY29udGVudC13cmFwLS1kYXJrICNzZWFyY2gtYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoMTQpO1xuICAgIHBhZGRpbmc6IDdweDtcbiAgICB3aWR0aDogMzAlO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRpbnB1dC1sYXJnZS1kYXJrLWdyYXk7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGNvbG9yOiAkaW5wdXQtbGFyZ2UtZGFyay1ncmF5O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6ICRsaW5rLWJsdWU7XG4gICAgICBib3JkZXItY29sb3I6ICRsaW5rLWJsdWU7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJHRhYmxldCkge1xuICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDIwKTtcbiAgICAgIHBhZGRpbmc6IDEzcHg7XG4gICAgfVxuICB9XG5cbiAgLnByb2R1Y3QtZGV0YWlscy1wYW5lbF9fcHJvZHVjdC10aXRsZSB7XG4gICAgQGV4dGVuZCAuZm9udC1zdGFuZGFyZC1tZWRpdW07XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKDE3KTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCR0YWJsZXQpIHtcbiAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgyNSk7XG4gICAgfVxuICB9XG5cbiAgLnByb2R1Y3QtZGV0YWlscy1wYW5lbF9fcHJvZHVjdC1zdWItdGl0bGUge1xuICAgIEBleHRlbmQgLmZvbnQtc3RhbmRhcmQtbWVkaXVtO1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxMSk7XG4gICAgbWFyZ2luLXRvcDogN3B4O1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJHRhYmxldCkge1xuICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDE1KTtcbiAgICB9XG4gIH1cblxuICAucHJvZHVjdC1kZXRhaWxzLXBhbmVsX19yYXRpbmcge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgbWFyZ2luLXRvcDogNXB4O1xuICAgIEBpbmNsdWRlIG1lZGlhKCR0YWJsZXQpIHtcbiAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgfVxuXG4gICAgLnByb2R1Y3QtZGV0YWlscy1wYW5lbF9fcmF0aW5nX19yZWFkLW1vcmUge1xuICAgICAgQGV4dGVuZCAuZm9udC1zdGFuZGFyZC1yb21hbjtcbiAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxMSk7XG4gICAgICBjb2xvcjogJGJsYWNrO1xuICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCR0YWJsZXQpIHtcbiAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDEyKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAucHJvZHVjdC1kZXRhaWxzLXBhbmVsX190YWctbGlzdCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgd2lkdGg6IDUwJTtcblxuICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG4gICAgJjpudGgtY2hpbGQoMm4pIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgfVxuXG5cbiAgICAucHJvZHVjdC1kZXRhaWxzLXBhbmVsX190YWctbGlzdF9faGVhZGVyIHtcbiAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxMSk7XG4gICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgkdGFibGV0KSB7XG4gICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxNSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnByb2R1Y3QtZGV0YWlscy1wYW5lbF9fdGFnLWxpc3RfX3RhZyB7XG4gICAgICBAaW5jbHVkZSBmb250LXNpemUoOCk7XG4gICAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkYmxhY2s7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgICBwYWRkaW5nOiAzcHg7XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCR0YWJsZXQpIHtcbiAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDEyKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAucHJvZHVjdC1kZXRhaWxzLXBhbmVsX19wcm9kdWN0LWRlc2NyaXB0aW9uIHtcbiAgICBAZXh0ZW5kIC5mb250LXN0YW5kYXJkLW1lZGl1bTtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoMTEpO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIG1hcmdpbi10b3A6IDE1cHg7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkdGFibGV0KSB7XG4gICAgICBAaW5jbHVkZSBmb250LXNpemUoMTMpO1xuICAgICAgbWFyZ2luLXRvcDogMzBweDtcbiAgICB9XG4gIH1cblxuICAucHJvZHVjdC1kZXRhaWxzLXBhbmVsX19idWxsZXRzIHtcbiAgICBAZXh0ZW5kIC5mb250LXN0YW5kYXJkLWxpZ2h0O1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxMSk7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkdGFibGV0KSB7XG4gICAgICBAaW5jbHVkZSBmb250LXNpemUoMTMpO1xuICAgIH1cblxuICAgICYsIGxpIHtcbiAgICAgIGxpc3Qtc3R5bGUtdHlwZTogZGlzYztcbiAgICB9XG4gIH1cblxuICAucHJvZHVjdC1kZXRhaWxzLXBhbmVsX19jb250ZW50LXdyYXAtLWRhcmsge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICB9XG5cbiAgLnByb2R1Y3QtZGV0YWlscy1wYW5lbF9fY29udGVudC13cmFwLS1kYXJrID4gKiB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLWxlZnQ6IDQlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHdpZHRoOiAyMiU7XG5cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cbiAgfVxuXG4gIC5wcm9kdWN0LWRldGFpbHMtcGFuZWxfX3ByaWNlIHtcbiAgICBAZXh0ZW5kIC5mb250LXN0YW5kYXJkLWxpZ2h0O1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxNyk7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBhZGRpbmc6IDdweCAwO1xuICAgIHdpZHRoOiAyMCU7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCR0YWJsZXQpIHtcbiAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgyMCk7XG4gICAgICBwYWRkaW5nOiAxM3B4IDA7XG4gICAgfVxuICB9XG5cbiAgLnNlbGVjdC1jb250YWluZXIge1xuICAgIHdpZHRoOiAyNSU7XG5cbiAgICBzZWxlY3Qge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBAaW5jbHVkZSBwYWRkaW5nKG51bGwgMTAlKTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICAuaWNvbi1jYXJldCB7XG4gICAgICByaWdodDogMTQlO1xuICAgIH1cbiAgfVxuXG4gIC5wcm9kdWN0LWRldGFpbHMtcGFuZWxfX3Nob3AtbG9jYWwtaW5wdXQge1xuICAgIHdpZHRoOiAzMCU7XG4gIH1cblxuICAuc2VhcmNoLW1hcCB7XG4gICAgd2lkdGg6IDEzJTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgQGluY2x1ZGUgcGFkZGluZyg5cHggMCA4cHgpO1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxNSk7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkdGFibGV0KSB7XG4gICAgICBAaW5jbHVkZSBwYWRkaW5nKDEzcHggMCk7XG4gICAgICBAaW5jbHVkZSBmb250LXNpemUoMjApO1xuICAgIH1cbiAgICBAaW5jbHVkZSBwYWRkaW5nKG51bGwgMCk7XG4gIH1cbn1cbiIsIkBpbmNsdWRlIGtleWZyYW1lcyhib3VuY2UpIHtcbiAgMCUge1xuICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGUoLTUwJSwgMHB4KSk7XG4gIH1cbiAgNTUlIHtcbiAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlKC01MCUsIDEwcHgpKTtcbiAgfVxufVxuXG4uZnVsbHBhZ2VfX3Njcm9sbC1jdGEge1xuICBAaW5jbHVkZSB0cmFuc2l0aW9uKG9wYWNpdHkgMC41cyBlYXNlLW91dCk7XG4gIEBpbmNsdWRlIHBvc2l0aW9uKGZpeGVkLCBudWxsIG51bGwgNzBweCA1MCUpO1xuICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWCgtNTAlKSk7XG4gIHotaW5kZXg6IDU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgb3BhY2l0eTogMTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gIEBpbmNsdWRlIGFuaW1hdGlvbi1wbGF5LXN0YXRlKHBhdXNlZCk7XG4gIEBpbmNsdWRlIGFuaW1hdGlvbi1uYW1lKGJvdW5jZSk7XG4gIEBpbmNsdWRlIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQoaW5maW5pdGUpO1xuICBAaW5jbHVkZSBhbmltYXRpb24tZHVyYXRpb24oMnMpO1xuXG4gIC5mdWxscGFnZV9fc2Nyb2xsLWN0YV9fY29weSB7XG4gICAgQGV4dGVuZCAuZm9udC1zdGFuZGFyZC1saWdodDtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoMTQpO1xuICAgIGNvbG9yOiAkYmxhY2s7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG5cbiAgLmZ1bGxwYWdlX19zY3JvbGwtY3RhX19pY29uLWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi10b3A6IC0zcHg7XG4gICAgbGVmdDogLTJweDtcbiAgfVxuXG4gIC5pY29uIHtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoMzIpO1xuICAgIEBpbmNsdWRlIHNpemUoMTdweCAzMnB4KTtcbiAgICBjb2xvcjogJGJsYWNrO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA5LjVweDtcblxuICAgICY6bnRoLWNoaWxkKDIpIHtcbiAgICAgIG1hcmdpbi10b3A6IC0yMnB4O1xuICAgIH1cbiAgfVxuXG4gICY6aG92ZXIge1xuICAgIC5mdWxscGFnZV9fc2Nyb2xsLWN0YV9fY29weSB7XG4gICAgICBjb2xvcjogJGxpbmstYmx1ZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5pY29uIHtcbiAgICAgIGNvbG9yOiAkbGluay1ibHVlICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG4iLCIuaGVhZGVyLW1vYmlsZSB7XG4gIGNvbG9yOiAkYmxhY2syO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDIxO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCR0YWJsZXQpIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLmhlYWRlci10b3Age1xuICAgIHotaW5kZXg6IDMwO1xuICAgIEBpbmNsdWRlIHBvc2l0aW9uKGZpeGVkLCAwIDAgbnVsbCAwKTtcbiAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2soaGVpZ2h0LCAkbW9iaWxlLWhlYWRlci1oZWlnaHQpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcblxuICAgIC5oZWFkZXItdG9wX19oYW1idXJnZXIge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCA1MCUgbnVsbCBudWxsIDEycHgpO1xuICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVkoLTUwJSkpO1xuICAgICAgLmljb24taGFtYnVyZ2VyIHtcbiAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDE1KTtcbiAgICAgIH1cbiAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmhlYWRlci10b3BfX2xvZ28ge1xuICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDUwJSBudWxsIG51bGwgNTAlKTtcbiAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGUoLTUwJSwgLTUwJSkpO1xuXG4gICAgICAuaWNvbi1sb2dvIHtcbiAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDE4KTtcbiAgICAgIH1cblxuICAgICAgLmljb24tdHJ1c3QtdGhlLWV4cGVydHMge1xuICAgICAgICBmb250LXNpemU6IDZweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuaGVhZGVyLXRvcF9fY2xvc2Uge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgNTAlIG51bGwgbnVsbCAxMnB4KTtcbiAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVZKC01MCUpKTtcbiAgICAgIEBpbmNsdWRlIHNpemUoMjRweCAyNHB4KTtcblxuICAgICAgJi5hY3RpdmUge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cblxuICAgICAgLmljb24tY2xvc2Uge1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmljb24ge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBjb2xvcjogJGJsYWNrO1xuICAgIH1cbiAgfVxuXG4gIC5uYXZpZ2F0aW9uLWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVkoLTEzMCUpKTtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKHRyYW5zZm9ybSAwLjVzIGVhc2Utb3V0KTtcbiAgICBAaW5jbHVkZSBwb3NpdGlvbihmaXhlZCwgMCAwIDAgMCk7XG4gICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKHRvcCwgJG1vYmlsZS1oZWFkZXItaGVpZ2h0KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2s7XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgICBvdmVyZmxvdzogc2Nyb2xsO1xuXG4gICAgJi5hY3RpdmUge1xuICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVkoMCkpO1xuICAgIH1cblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBwb3NpdGlvbihmaXhlZCwgMCA1MCUgbnVsbCBudWxsKTtcbiAgICAgIEBpbmNsdWRlIHRyaWFuZ2xlKDE3cHgsICR3aGl0ZSwgZG93bik7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIC5zZWFyY2gtY29udGFpbmVyIHtcbiAgICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhwYWRkaW5nLCAzLjQsIDMuOSk7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgIC5pY29uLXNlYXJjaCB7XG4gICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxNik7XG4gICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCA0MXB4IDM5cHggbnVsbCBudWxsKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuc2VhcmNoLWNvbnRhaW5lcl9faW5wdXQge1xuICAgICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKHBhZGRpbmcsIDAuMSwgMCwgMSk7XG4gICAgICBAaW5jbHVkZSBmb250LXNpemUoMjApO1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibGFjaztcbiAgICAgIGJvcmRlci1yYWRpdXM6IDAgIWltcG9ydGFudDtcbiAgICAgIGJvcmRlci1jb2xvcjogJHdoaXRlO1xuICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBib3JkZXItY29sb3I6ICRsaW5rLWJsdWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmxpbmtzLWNvbnRhaW5lciB7XG4gICAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2sobWFyZ2luLCAwLjUsIDApO1xuXG4gICAgICAubGluayB7XG4gICAgICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhwYWRkaW5nLCAxLjgsIDQpO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRtb2JpbGUtbmF2LWJvcmRlci1ncmV5O1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgLmljb24tY2FyZXQge1xuICAgICAgICAgIGZvbnQtc2l6ZTogOHB4O1xuICAgICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCA1MCUgMzVweCBudWxsIG51bGwpO1xuICAgICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg5MGRlZykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgIC5pY29uLWNhcmV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgxODBkZWcpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgIEBleHRlbmQgLmZvbnQtc3RhbmRhcmQtbGlnaHQ7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRtb2JpbGUtbmF2LWJvcmRlci1ncmV5O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5saW5rLWRyb3Bkb3duIHtcbiAgICAgICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKHBhZGRpbmcsIDEuOSwgNSk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtb2JpbGUtbmF2LWRyb3Bkb3duLWJhY2tncm91bmQ7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkbW9iaWxlLW5hdi1ib3JkZXItZ3JleTtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBhIHtcbiAgICAgICAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2sobWFyZ2luLWJvdHRvbSwgMi4yKTtcbiAgICAgICAgICBjb2xvcjogJGJsdWU7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKG1hcmdpbi1ib3R0b20sIDAuNyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm5hdi1hdXhpbGlhcnkge1xuICAgICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKG1hcmdpbi10b3AsIDEuOCk7XG4gICAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2socGFkZGluZywgMCwgNCk7XG4gICAgICBhIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhwYWRkaW5nLCAxLjksIDApO1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5pY29uIHtcbiAgICAgICAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2sobWFyZ2luLXJpZ2h0LCAxKTtcbiAgICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoMTIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm5hdi1zaXRlLXN3aXRjaCB7XG4gICAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2sobWFyZ2luLXRvcCwgMS43KTtcbiAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxNCk7XG4gICAgICBAZXh0ZW5kIC5mb250LXN0YW5kYXJkLWxpZ2h0O1xuICAgICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKHBhZGRpbmcsIDEuMSwgNCk7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgIC5pY29uLWNhcmV0IHtcbiAgICAgICAgY29sb3I6ICRibGFjaztcbiAgICAgICAgZm9udC1zaXplOiA4cHg7XG4gICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCA1MCUgMzVweCBudWxsIG51bGwpO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoOTBkZWcpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi5nbG9iYWwtY2FydCB7XG4gIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCBudWxsIDAgbnVsbCBhdXRvKTtcbiAgd2lkdGg6IDM1MHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBib3JkZXI6IDFweCBzb2xpZCAkYmxhY2s7XG4gIGJvcmRlci10b3A6IG5vbmU7XG59XG5cbi5jYXJ0LWNvbnRhaW5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgY29sb3I6ICRibGFjaztcblxuICAvLyBDYXJ0IHBhbmVscyAodG9wICYgYm90dG9tKVxuICAuY2FydC1jb250YWluZXJfX3RvcC1wYW5lbCB7XG4gICAgcGFkZGluZzogMjBweCAyMHB4O1xuICB9XG5cbiAgLmNhcnQtY29udGFpbmVyX19ib3R0b20tcGFuZWwge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRibGFjaztcbiAgICBwYWRkaW5nOiAyMHB4IDIwcHg7XG4gIH1cblxuICAvLyBWaWV3IGNhcnQgbGluayAoaW4gYm90dG9tIHBhbmVsKVxuICAuY2FydC1jb250YWluZXJfX3ZpZXctY2FydC1saW5rIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICAvLyBDYXJ0IHRpdGxlXG4gIC5jYXJ0LWNvbnRhaW5lcl9fdGl0bGUge1xuICAgIEBleHRlbmQgLmZvbnQtc3RhbmRhcmQtbGlnaHQ7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKDI2KTtcbiAgfVxuXG4gIC8vIENhcnQgcHJvZHVjdCBsaXN0IGl0ZW0gY29udGFpbmVyXG4gIC5jYXJ0LWNvbnRhaW5lcl9fbGlzdCB7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcblxuICAgIGxpIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gQ2FydCBwcm9kdWN0IGxpc3QgaXRlbVxuICAuY2FydC1jb250YWluZXJfX2xpc3RfX2l0ZW0ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgfVxuXG4gIC5jYXJ0LWNvbnRhaW5lcl9fbGlzdF9faXRlbV9fcmVtb3ZlIHtcbiAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgNTAlIDBweCBudWxsIG51bGwpO1xuICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVZKC01MCUpKTtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKG9wYWNpdHkgMC4ycyBlYXNlLW91dCwgY29sb3IgMC4ycyBlYXNlLW91dCk7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKDEyKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGNvbG9yOiAkZ3JleTI7XG5cbiAgICAudG91Y2hldmVudHMgJiB7XG4gICAgICBjb2xvcjogJGJsYWNrO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6ICRibGFjaztcbiAgICB9XG4gIH1cblxuICAuY2FydC1jb250YWluZXJfX2xpc3RfX2l0ZW1fX2luZm8ge1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxMik7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgd2lkdGg6IDIxOHB4O1xuXG4gICAgPiAqIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuY2FydC1jb250YWluZXJfX2xpc3RfX2l0ZW1fX2ltZyB7XG4gICAgQGluY2x1ZGUgc2l6ZSg2MHB4IDYwcHgpO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gIH1cblxuICAuY2FydC1jb250YWluZXJfX2xpc3RfX2l0ZW1fX3RpdGxlIHtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoMTQpO1xuICAgIEBleHRlbmQgLmZvbnQtc3RhbmRhcmQtbGlnaHQ7XG4gIH1cblxuICAuY2FydC1jb250YWluZXJfX2xpc3RfX2l0ZW1fX3ByaWNlIHtcbiAgICBAZXh0ZW5kIC5mb250LXN0YW5kYXJkLWJvbGQ7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKDE0KTtcblxuICAgIC5xdWFudGl0eSB7XG4gICAgICBjb2xvcjogJGdyZXkzO1xuICAgIH1cbiAgfVxuXG4gIC5jYXJ0LWNvbnRhaW5lcl9fc3VidG90YWwge1xuICAgIEBleHRlbmQgLmZvbnQtc3RhbmRhcmQtYm9sZDtcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICB9XG5cbn1cbiIsIi5wcm9mZXNzaW9uYWwtbGFuZGluZ3tcbiAgLml0ZW0tZGVzY3JpcHRpb24ge1xuICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhtaW4taGVpZ2h0LCAxMSk7XG4gIH1cblxuICAuY29udGVudC5sb2dpbmZvcm17XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG4gIC5mb3JtX19sb2dpbi1mb3Jte1xuICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJhY2tncm91bmQ6ICRibGFjaztcblxuICAgIGF7XG4gICAgICBjb2xvcjogJGxpZ2h0LWJsdWU7XG4gICAgICBAZXh0ZW5kIC5mb250LXN0YW5kYXJkLW1lZGl1bTtcbiAgICB9XG5cbiAgICBmaWVsZHNldHtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhwYWRkaW5nLCAwLCAwLCAwLCAwLjIpO1xuICAgICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKG1hcmdpbiwgMCwgMC40LCAxLjgsIDApO1xuICAgIH1cblxuICAgIGZvcm17XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2socGFkZGluZywgMS43LCAwKTtcbiAgICB9XG5cbiAgICBwe1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhsZXR0ZXItc3BhY2luZywgIC0wLjA1KTtcbiAgICB9XG5cbiAgICBpbnB1dHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKHBhZGRpbmcsIDEuMiwgMS45KTtcblxuICAgICAgJlt0eXBlPXN1Ym1pdF17XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmZvcm1fX3RpdGxle1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjRweDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBAZXh0ZW5kIC5mb250LXN0YW5kYXJkLWxpZ2h0O1xuICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDMwKTtcbiAgICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhtYXJnaW4sIDAsIDAsIDEsIDApO1xuICAgIH1cblxuICAgIC5mb3JtX19sb2dpbi1mb3JtX19jb250ZW50e1xuICAgICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKHBhZGRpbmcsIDMuMSwgMy43LCAwLCAzLjcpO1xuICAgIH1cblxuICAgIGZvb3RlcntcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgYmFja2dyb3VuZDogJGxpZ2h0LWJsdWU7XG4gICAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2soaGVpZ2h0LCAxMCk7XG4gICAgfVxuXG4gICAgLmZvcm1fX2xvZ2luLWZvcm1fX2Zvb3Rlci1jb250ZW50e1xuICAgICAgQGV4dGVuZCAlY2xlYXJmaXg7XG4gICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAuZ2V0LWNlcnRpZmllZC1jb3B5e1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoMTUpO1xuICAgICAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2sod2lkdGgsIDE1LjUpO1xuICAgICAgfVxuICAgICAgLmdldC1jZXJ0aWZpZWQtYnRue1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2sod2lkdGgsIDE2KTtcblxuICAgICAgICAuYnV0dG9ue1xuICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKHBhZGRpbmcsIDEuMiwgMS45KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG5cblxuXG4gIEBpbmNsdWRlIG1lZGlhKCR0YWJsZXQpIHtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wLXNtYWxsKSB7XG4gICAgLmZvcm1fX2xvZ2luLWZvcm17XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICByaWdodDogMDtcbiAgICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayh3aWR0aCwgNDApO1xuICAgIH1cbiAgfVxuXG59XG4iLCIuYmVmb3JlLWFmdGVyLWNvbnRlbnQge1xuICBwYWRkaW5nLXRvcDogOTBweDtcblxuICAuYmVmb3JlLWFmdGVyLWNvbnRlbnRfX3RyZWF0bWVudC1wcm9kdWN0cyB7XG4gICAgbWFyZ2luLXRvcDogMzBweDtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCR0YWJsZXQpIHtcbiAgICAgIG1hcmdpbi10b3A6IDMwcHg7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3ApIHtcbiAgICAgIG1hcmdpbi10b3A6IDcwcHg7XG4gICAgfVxuXG4gICAgLmJlZm9yZS1hZnRlci1jb250ZW50X190cmVhdG1lbnQtcHJvZHVjdHNfX2hlYWRlciB7XG4gICAgICBAZXh0ZW5kIC5mb250LXN0YW5kYXJkLWxpZ2h0O1xuICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDIwKTtcbiAgICAgIGNvbG9yOiAkYmxhY2s7XG4gICAgfVxuXG4gICAgLmJlZm9yZS1hZnRlci1jb250ZW50X190cmVhdG1lbnQtcHJvZHVjdHNfX3Byb2R1Y3RzIHtcbiAgICAgIEBleHRlbmQgJWNsZWFyZml4O1xuICAgICAgbWFyZ2luLXRvcDogMTVweDtcblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJHRhYmxldCkge1xuXG4gICAgICB9XG5cbiAgICAgID4gKiB7XG4gICAgICAgIHdpZHRoOiAzMiU7XG4gICAgICAgIG1heC13aWR0aDogMTJyZW07XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAyJTtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmOmxhc3QtY2hpbGR7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgaW1nIHtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5ncmV5LXdyYXAge1xuICAgIG1hcmdpbi10b3A6IDkwcHg7XG4gICAgcGFkZGluZzogOTBweCAwO1xuICB9XG5cbiAgLnR3by1jb2x1bW4tYm9yZGVyZWQge1xuICAgIHBhZGRpbmc6IDIwcHggMCAwO1xuICAgIG1hcmdpbi10b3A6IDMwcHg7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkdGFibGV0KSB7XG4gICAgICBwYWRkaW5nOiA4MHB4IDAgMDtcbiAgICAgIG1hcmdpbi10b3A6IDgwcHg7XG4gICAgfVxuXG4gICAgLnR3by1jb2x1bW4tYm9yZGVyZWRfX2NvbHVtbjpmaXJzdC1jaGlsZCB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgkdGFibGV0KSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDI1cHg7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmJlZm9yZS1hZnRlcjpub3QoLmJlZm9yZS1hZnRlci0tdGh1bWIpIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDBweCBhdXRvO1xuICB9XG5cbiAgLmJlZm9yZS1hZnRlci1zd2l0Y2hlcl9fdGh1bWItY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxufVxuIiwiLmNhdGFsb2ctcHJvZHVjdC12aWV3IHtcbiAgLmZpeGVkLWZvb3RlciB7XG4gICAgZGlzcGxheTogbm9uZTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wLXNtYWxsKSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cbn1cblxuLnByb2R1Y3QtZGV0YWlscy1wYWdlIHtcblxuICAkZGVza3RvcC1oZWlnaHQ6IDU5MHB4O1xuICAkbW9iaWxlLWhlaWdodDogNDA4cHg7XG5cbiAgLmNvbnRlbnQtbWFpbntcbiAgICBtYXJnaW4tYm90dG9tOiAxMHJlbTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCR0YWJsZXQpIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgfVxuICB9XG5cblxuICAucHJvZHVjdC1kZXRhaWxzLXBhbmVsX19jb250ZW50LXdyYXAtLWRhcmsge1xuICAgIEBpbmNsdWRlIHBvc2l0aW9uKGZpeGVkLCBudWxsIDAgMCAwKTtcbiAgICB6LWluZGV4OiAxMDtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wLXNtYWxsKSB7XG4gICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIH1cbiAgfVxuXG4gIC5wcm9kdWN0LWhlYWRlciB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wLXNtYWxsKSB7XG4gICAgICBoZWlnaHQ6ICRkZXNrdG9wLWhlaWdodDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuXG4gICAgLnByb2R1Y3QtaGVhZGVyX19iYWNrZ3JvdW5kIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wLXNtYWxsKSB7XG4gICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCBudWxsIDAgbnVsbCAwKTtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC9hc3NldHMvZnJvbnRlbmQvaW1nL3Byb2R1Y3QtZGV0YWlsL3Byb2R1Y3QtZGV0YWlsLWJhY2tncm91bmQuanBnKTtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAucHJvZHVjdC1oZWFkZXJfX2NlbnRlciB7XG4gICAgICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcC1zbWFsbCkge1xuICAgICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICB3aWR0aDogOTYwcHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnByb2R1Y3QtaGVhZGVyX19tZWRpYS1tZW50aW9uIHtcbiAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAwIG51bGwgbnVsbCA1JSk7XG4gICAgICBoZWlnaHQ6ICRtb2JpbGUtaGVpZ2h0O1xuICAgICAgd2lkdGg6IDcwcHg7XG4gICAgICB6LWluZGV4OiAxO1xuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgkdGFibGV0KSB7XG4gICAgICAgIGhlaWdodDogJGRlc2t0b3AtaGVpZ2h0O1xuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcC1zbWFsbCkge1xuICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbihyZWxhdGl2ZSwgYXV0byBhdXRvIGF1dG8gYXV0byk7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIHotaW5kZXg6IGF1dG87XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnByb2R1Y3QtaGVhZGVyX19tZWRpYS1tZW50aW9uX19jb3B5IHtcbiAgICAgIEBleHRlbmQgLmZvbnQtc3RhbmRhcmQtbGlnaHQ7XG4gICAgICBAaW5jbHVkZSBmb250LXNpemUoMTApO1xuICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIH1cblxuICAgIC5wcm9kdWN0LWhlYWRlcl9fbWVkaWEtbWVudGlvbl9fbG9nby1jb250YWluZXIge1xuICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDUwJSBudWxsIG51bGwgbnVsbCk7XG4gICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWSgtNTAlKSk7XG4gICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3Atc21hbGwpIHtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKG5vbmUpO1xuICAgICAgfVxuXG4gICAgICBpbWcge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnByb2R1Y3QtaGVhZGVyX19wcm9kdWN0LWltYWdlLXdyYXAge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC9hc3NldHMvZnJvbnRlbmQvaW1nL3Byb2R1Y3QtZGV0YWlsL3Byb2R1Y3QtZGV0YWlsLWJhY2tncm91bmQtY2VudGVyZWQuanBnKTtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgIGhlaWdodDogJG1vYmlsZS1oZWlnaHQ7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCR0YWJsZXQpIHtcbiAgICAgICAgaGVpZ2h0OiAkZGVza3RvcC1oZWlnaHQ7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wLXNtYWxsKSB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICB3aWR0aDogMzkwcHg7XG4gICAgICAgIGxlZnQ6IC0zNS41cHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnByb2R1Y3QtaGVhZGVyX19wcm9kdWN0LWltYWdlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgaGVpZ2h0OiAkbW9iaWxlLWhlaWdodDtcbiAgICAgIG1hcmdpbjogMCBhdXRvO1xuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgkdGFibGV0KSB7XG4gICAgICAgIGhlaWdodDogJGRlc2t0b3AtaGVpZ2h0O1xuICAgICAgfVxuICAgIH1cblxuICAgIC5wcm9kdWN0LWhlYWRlcl9fbmF2IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgIC5pY29uIHtcbiAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDMwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAucHJvZHVjdC1oZWFkZXJfX25hdi0tcHJldiB7XG4gICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgNTAlIG51bGwgbnVsbCAxMHB4KTtcbiAgICB9XG5cbiAgICAucHJvZHVjdC1oZWFkZXJfX25hdi0tbmV4dCB7XG4gICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgNTAlIDEwcHggbnVsbCBudWxsKTtcbiAgICB9XG4gIH1cblxuICAucHJvZHVjdC1oZWFkZXJfX2RldGFpbHMtcGFuZWwtY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcC1zbWFsbCkge1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgd2lkdGg6IDUwMHB4O1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cbiAgfVxuXG4gIC5wcm9kdWN0LWhlYWRlci5zb2x1dGlvbi1zZXQge1xuICAgIC5wcm9kdWN0LWhlYWRlcl9fbWVkaWEtbWVudGlvbiB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5wcm9kdWN0LWhlYWRlcl9fY2VudGVyIHtcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wLXNtYWxsKSB7XG4gICAgICAgIG1pbi13aWR0aDogMTEwMHB4O1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnByb2R1Y3QtaGVhZGVyX19wcm9kdWN0LWltYWdlLXdyYXAge1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBsZWZ0OiBhdXRvO1xuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcC1zbWFsbCkge1xuICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAucHJvZHVjdC1oZWFkZXJfX2RldGFpbHMtcGFuZWwtY29udGFpbmVyIHtcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wLXNtYWxsKSB7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5wcm9kdWN0LWRldGFpbHMtcGFuZWwge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgdG9wOiAwO1xuICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKG5vbmUpO1xuICAgIH1cbiAgfVxuXG4gIC5wcm9kdWN0LWRldGFpbHMtcGFuZWwge1xuICAgIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wLXNtYWxsKSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCA1MCUgbnVsbCBudWxsIG51bGwpO1xuICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVkoLTUwJSkpO1xuICAgIH1cbiAgfVxuXG4gIC50d28tY29sdW1uLWRhcmsge1xuICAgIG1hcmdpbi1ib3R0b206IDEwMHB4O1xuICB9XG5cbiAgLnR3by1jb2x1bW4tZGFya19fY29sdW1uIHtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICBwYWRkaW5nOiAzMHB4IDM1cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCR0YWJsZXQpIHtcbiAgICAgIHBhZGRpbmc6IDMwcHggNjVweDtcbiAgICAgIC50d28tY29sdW1uLWRhcmtfX2NvbHVtbl9faW5uZXIge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIG1heC13aWR0aDogMzAwcHg7XG4gICAgICB9XG5cbiAgICAgICY6bnRoLWNoaWxkKDIpIC50d28tY29sdW1uLWRhcmtfX2NvbHVtbl9faW5uZXIge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAucHJvZHVjdC1pbmZvcm1hdGlvbl9fY29sdW1uIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbi1yaWdodDogNDdweDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAucHJvZHVjdC1pbmZvcm1hdGlvbl9faW5uZXIge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3Atc21hbGwpIHtcbiAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnByb2R1Y3QtaW5mb3JtYXRpb25fX2hlYWRlciB7XG4gICAgICBAZXh0ZW5kIC5mb250LXN0YW5kYXJkLWxpZ2h0O1xuICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDMwKTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCR0YWJsZXQpIHtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAucHJvZHVjdC1pbmZvcm1hdGlvbl9fc3ViaGVhZGVyIHtcbiAgICAgIEBleHRlbmQgLmZvbnQtc3RhbmRhcmQtYm9sZDtcbiAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgyMCk7XG5cbiAgICAgIC5pY29uIHtcbiAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDE4KTtcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAucHJvZHVjdC1pbmZvcm1hdGlvbl9fbGlzdCB7XG4gICAgICBAaW5jbHVkZSBmb250LXNpemUoMTQpO1xuICAgICAgbWFyZ2luOiAxMHB4IDAgMCAwO1xuICAgICAgcGFkZGluZzogMCAwIDAgMjVweDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cbiAgICAgICYsIGxpIHtcbiAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBkZWNpbWFsO1xuICAgICAgfVxuXG4gICAgICBsaSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5zZWxlY3RlZCB7XG4gICAgICAgICAgY29sb3I6ICRsaW5rLWJsdWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAucHJvZHVjdC1kZXRhaWxzX19pbmdyZWRpZW50cyB7XG4gICAgQGV4dGVuZCAuZm9udC1zdGFuZGFyZC1saWdodDtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICBjb2xvcjogJGJsYWNrO1xuICAgIG1hcmdpbjogNDVweCBhdXRvIDA7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKDE0KTtcbiAgICBwYWRkaW5nOiAwIDMwcHg7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkdGFibGV0KSB7XG4gICAgICB3aWR0aDogNjc2cHg7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgIC5wcm9kdWN0LWRldGFpbHNfX2luZ3JlZGllbnRzX19uYW1lIHtcbiAgICAgIEBleHRlbmQgLmZvbnQtc3RhbmRhcmQtbWVkaXVtO1xuICAgIH1cblxuICAgICYsIGxpIHtcbiAgICAgIGxpc3Qtc3R5bGUtdHlwZTogZGlzYztcbiAgICB9XG5cbiAgICBsaSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgICBtYXJnaW4tYm90dG9tOiAzNXB4O1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJHRhYmxldCkge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgd2lkdGg6IDQ1JTtcbiAgICAgICAgbWFyZ2luOiAwIDEwJSAzNXB4IDA7XG5cbiAgICAgICAgJjpudGgtY2hpbGQoMm4pIHtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmOm50aC1sYXN0LWNoaWxkKDIpLCAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLnByb2R1Y3QtZGV0YWlsc19fcGlubmVkLXByb2R1Y3Qge1xuICBkaXNwbGF5OiBub25lO1xuICB6LWluZGV4OiAxMDtcbiAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3Atc21hbGwpIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIEBpbmNsdWRlIHBvc2l0aW9uKGZpeGVkLCBudWxsIDAgJHBpbm5lZC1mb290ZXItaGVpZ2h0IG51bGwpO1xuICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWSgxMDAlKSk7XG4gIEBpbmNsdWRlIHRyYW5zaXRpb24odHJhbnNmb3JtIDAuMzVzIGVhc2Utb3V0KTtcblxuICAmLmFjdGl2ZSB7XG4gICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVkoMCkpO1xuICB9XG59XG5cbi5waW5uZWQtcHJvZHVjdCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRibGFjaztcbn1cblxuLnBpbm5lZC1wcm9kdWN0X19pbWcge1xuICBAaW5jbHVkZSBzaXplKDIyMHB4IDIyMHB4KTtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3Zlcjtcbn1cblxuLnBpbm5lZC1wcm9kdWN0X19pbmZvIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIGJhY2tncm91bmQtY29sb3I6ICRibGFjaztcbiAgcGFkZGluZzogMjNweCAxOHB4O1xuXG4gIC5waW5uZWQtcHJvZHVjdF9fcHJpY2Uge1xuICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgbWFyZ2luLXJpZ2h0OiAxLjlyZW07XG4gICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKHBhZGRpbmcsIDAuNSwgMCk7XG4gIH1cblxuICA+ICoge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAzMCU7XG4gICAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50O1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICBtYXJnaW4tcmlnaHQ6IDUlO1xuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG5cbiAgICA+ICoge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG5cbiAgLnNlbGVjdC1jb250YWluZXIge1xuICAgIHNlbGVjdCB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIEBpbmNsdWRlIHBhZGRpbmcobnVsbCAxMCUpO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjdyZW07XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgJi5zbWFsbHtcbiAgICAgIHdpZHRoOiA0LjVyZW07XG4gICAgfVxuXG4gICAgLmljb24tY2FyZXQge1xuICAgICAgcmlnaHQ6IDAuOHJlbTtcbiAgICAgIGZvbnQtc2l6ZTogNnB4O1xuICAgIH1cbiAgfVxuXG4gIC5zZWFyY2gtbWFwIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgQGluY2x1ZGUgcGFkZGluZyg5cHggMCA4cHgpO1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxNSk7XG4gICAgQGluY2x1ZGUgcGFkZGluZyhudWxsIDApO1xuICB9XG59XG5cbi5waW5uZWQtcHJvZHVjdF9fcHJpY2Uge1xuICBAaW5jbHVkZSBmb250LXNpemUoMjApO1xufVxuIiwiQGluY2x1ZGUgbWVkaWEoJHRhYmxldCkge1xuICAkcGlubmVkLWZvb3Rlci1oZWlnaHQ6IDUuNnJlbSAhZ2xvYmFsO1xufVxuXG5cbi5maXhlZC1mb290ZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICRibGFjaztcbiAgei1pbmRleDogMjA7XG4gIG1hcmdpbi10b3A6IC0kcGlubmVkLWZvb3Rlci1oZWlnaHQ7XG4gIHdpZHRoOiAxMDAlO1xuXG4gICYuZml4ZWR7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGJvdHRvbTogMDtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgkdGFibGV0KSB7XG4gICAgbWFyZ2luLXRvcDogLSRwaW5uZWQtZm9vdGVyLWhlaWdodDtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICAvLyBAaW5jbHVkZSByZW0tZmFsbGJhY2socGFkZGluZywgMS43LCAyLjcpO1xuICB9XG5cbiAgLmZpeGVkLWZvb3Rlcl9fd3JhcHBlcntcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2s7XG4gICAgei1pbmRleDogMjA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGhlaWdodDogJHBpbm5lZC1mb290ZXItaGVpZ2h0O1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJHRhYmxldCkge1xuICAgICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKHBhZGRpbmcsIDEuNywgMi43KTtcbiAgICB9XG4gIH1cblxuICAuZml4ZWQtZm9vdGVyX19saW5rLWNvbnRhaW5lciB7XG4gICAgd2lkdGg6IDUwJTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhwYWRkaW5nLCAxKTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCR0YWJsZXQpIHtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB9XG4gIH1cblxuICAubGVmdCB7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJGRhcmstZ3JleTtcblxuICAgIGEuc3BlY2lhbC1vZmZlcnMgIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJHRhYmxldCkge1xuICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuXG4gICAgICBhLnNwZWNpYWwtb2ZmZXJzIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgfVxuXG4gICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG4gIH1cblxuICAucmlnaHQge1xuICAgIGE6Zmlyc3QtY2hpbGQgIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJHRhYmxldCkge1xuICAgICAgYTpmaXJzdC1jaGlsZCAge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB9XG5cbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG4gIH1cblxuXG4gIGEge1xuICAgIEBleHRlbmQgLmZvbnQtc3RhbmRhcmQtcm9tYW47XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKDExKTtcbiAgICBjb2xvcjogJGNvcHktZ3JleTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKGxldHRlci1zcGFjaW5nLCAwLjA1KTtcblxuICAgICY6aG92ZXJ7XG4gICAgICBjb2xvcjogJGxpbmstYmx1ZTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkdGFibGV0KSB7XG4gICAgICBAaW5jbHVkZSBmb250LXNpemUoMTIuNSk7XG4gICAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2sobWFyZ2luLXJpZ2h0LCAzKTtcbiAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuaWNvbiB7XG4gICAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2sobWFyZ2luLXJpZ2h0LCAwLjYpO1xuICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDE1KTtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCR0YWJsZXQpIHtcbiAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDE3KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi50b29sdGlwIHtcbiAgJHRyaWFuZ2xlLXNpemU6IDEycHg7XG5cbiAgQGluY2x1ZGUgdHJhbnNpdGlvbih0cmFuc2Zvcm0gMC4zcyBlYXNlLW91dCwgb3BhY2l0eSAwLjNzIGVhc2Utb3V0KTtcbiAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIG51bGwgbnVsbCAxMDUlIDUwJSk7XG4gIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGUoLTUwJSwgMiUpKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICBtaW4td2lkdGg6IDIzMHB4O1xuICBwYWRkaW5nOiAyMHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAkYmxhY2s7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgb3BhY2l0eTogMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgJi5hY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZSgtNTAlLCAwKSk7XG4gICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gIH1cblxuICAvLyBUcmlhbmdsZVxuICAmOjpiZWZvcmUsICY6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBAaW5jbHVkZSBzaXplKDAgMCk7XG4gICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIG51bGwgbnVsbCBudWxsIDUwJSk7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVYKC01MCUpKTtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgfVxuXG4gIC8vIFRyaWFuZ2xlIHN0cm9rZVxuICAmOjpiZWZvcmUge1xuICAgIGJvdHRvbTogLSR0cmlhbmdsZS1zaXplO1xuICAgIGJvcmRlci10b3AtY29sb3I6ICRibGFjaztcbiAgICBib3JkZXItd2lkdGg6ICR0cmlhbmdsZS1zaXplO1xuICB9XG5cbiAgLy8gVHJpYW5nbGUgZmlsbFxuICAmOjphZnRlciB7XG4gICAgYm90dG9tOiAtKCR0cmlhbmdsZS1zaXplIC0gMSk7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogJHdoaXRlO1xuICAgIGJvcmRlci13aWR0aDogJHRyaWFuZ2xlLXNpemUgLSAxO1xuICB9XG5cbiAgLnRvb2x0aXBfX2hlYWRlciB7XG4gICAgQGV4dGVuZCAuZm9udC1zdGFuZGFyZC1tZWRpdW07XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKDE1KTtcbiAgICBjb2xvcjogJGJsYWNrO1xuICB9XG5cbiAgLnRvb2x0aXBfX3N1YmhlYWRlciB7XG4gICAgQGV4dGVuZCAuZm9udC1zdGFuZGFyZC1tZWRpdW07XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoMTIpO1xuICAgIGNvbG9yOiAkYmxhY2s7XG4gIH1cbn1cbiIsIi5maWx0ZXItYmFye1xuICBjb2xvcjogJGJsYWNrO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJsYWNrO1xuICBtYXJnaW4tdG9wOiAwO1xuICBAaW5jbHVkZSByZW0tZmFsbGJhY2sobWFyZ2luLWJvdHRvbSwgMS4zKTtcbiAgQGV4dGVuZCAlY2xlYXJmaXg7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJHRhYmxldCkge1xuICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhtYXJnaW4tdG9wLCAwKTtcbiAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2sobWFyZ2luLWJvdHRvbSwgMyk7XG4gIH1cbn1cblxuLmZpbHRlci1iYXJfX2dyb3Vwe1xuICBmbG9hdDogbGVmdDtcbiAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKG1hcmdpbi1ib3R0b20sIDEpO1xuXG4gICY6bnRoLWNoaWxkKDJuKXtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgJjpmaXJzdC1jaGlsZCB7XG4gICAgbWF4LXdpZHRoOiAzMCU7XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgkdGFibGV0KSB7XG4gICAgJjpudGgtY2hpbGQoMm4pe1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKG1hcmdpbi1yaWdodCwgMik7XG4gIH1cblxuICAmLnJpZ2h0IHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICB9XG5cbn1cblxuLmZpbHRlci1iYXJfX2dyb3VwX190aXRsZXtcbiAgQGV4dGVuZCAuZm9udC1zdGFuZGFyZC10aGluLWV4cGFuZGVkO1xuICBAaW5jbHVkZSBmb250LXNpemUoMTIpO1xuICBAaW5jbHVkZSByZW0tZmFsbGJhY2sobGV0dGVyLXNwYWNpbmcsIDAuMSk7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJG1vYmlsZS1tZWRpdW0pIHtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoMTMpO1xuICB9XG5cbiAgLmljb24ge1xuICAgIGNvbG9yOiAkYmxhY2s7XG4gICAgZm9udC1zaXplOiA1cHg7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBtYXJnaW4tbGVmdDogLTJweDtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCR0YWJsZXQpIHtcbiAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxMCk7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgkdGFibGV0KSB7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKDIwKTtcbiAgfVxuXG59XG5cbmEuZmlsdGVyLWJhcl9fZ3JvdXBfX3RpdGxlIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICY6aG92ZXIge1xuICAgIC5pY29uIHtcbiAgICAgIGNvbG9yOiAkbGluay1ibHVlO1xuICAgIH1cbiAgfVxufVxuXG4uZmlsdGVyLWRyb3Bkb3duIHtcbiAgY29sb3I6ICRibGFjaztcbiAgQGV4dGVuZCAuZm9udC1zdGFuZGFyZC10aGluLWV4cGFuZGVkO1xuICBAaW5jbHVkZSBmb250LXNpemUoMTMpO1xuICBAaW5jbHVkZSByZW0tZmFsbGJhY2sobGV0dGVyLXNwYWNpbmcsIDAuMSk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBvdXRsaW5lOiBub25lO1xuICBAaW5jbHVkZSByZW0tZmFsbGJhY2socGFkZGluZy1yaWdodCwgMik7XG4gIHdpZHRoOiAxMDAlO1xuXG4gIC50b3VjaGV2ZW50cyAmIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuXG4gICAgPiAqOm5vdChzZWxlY3QpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJHRhYmxldCkge1xuICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhwYWRkaW5nLXJpZ2h0LCAzKTtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoMjApO1xuICB9XG5cbiAgLmZpbHRlci1kcm9wZG93bl9fY3VycmVudCB7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICB9XG5cbiAgLmZpbHRlci1kcm9wZG93bl9fZHJvcGRvd24ge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24ob3BhY2l0eSAwLjFzIGVhc2Utb3V0KTtcbiAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgLTIxcHggbnVsbCBudWxsIC0yMHB4KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2s7XG4gICAgb3BhY2l0eTogMDtcbiAgICB6LWluZGV4OiA1O1xuICAgIHdpZHRoOiAyNzVweDtcbiAgICBwYWRkaW5nOiAxNXB4O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuXG4gICAgJi5hY3RpdmUge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgIH1cbiAgfVxuXG4gIC5maWx0ZXItZHJvcGRvd25fX2Ryb3Bkb3duX19pdGVtIHtcbiAgICBwYWRkaW5nOiA1cHg7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAkbGluay1ibHVlO1xuICAgIH1cblxuICAgICYuZGlzYWJsZWQge1xuICAgICAgY29sb3I6ICM2NjY7XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICAubm8tdG91Y2hldmVudHMgJiB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC5pY29uIHtcbiAgICBjb2xvcjogJGJsYWNrO1xuICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCA1MCUgNnB4IG51bGwgbnVsbCk7XG4gICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDE4MGRlZykpO1xuICAgIGZvbnQtc2l6ZTogNXB4O1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkdGFibGV0KSB7XG4gICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgNTAlIDVweCBudWxsIG51bGwpO1xuICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDEwKTtcbiAgICB9XG4gIH1cblxuICAmLmludmVydGVkIHtcbiAgICBjb2xvcjogJHdoaXRlO1xuXG4gICAgLmZpbHRlci1kcm9wZG93bl9fZHJvcGRvd24ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgICAgY29sb3I6ICRibGFjaztcbiAgICB9XG5cbiAgICAuaWNvbiB7XG4gICAgICBjb2xvcjogJHdoaXRlO1xuICAgIH1cbiAgfVxufVxuIiwiXG4ubG9hZGluZ19fY29weSB7XG4gIEBleHRlbmQgLmZvbnQtc3RhbmRhcmQtbGlnaHQtZXhwYW5kZWQ7XG4gIHRleHQtc2hhZG93OiAxcHggMXB4ICMwMDA7XG4gIGNvbG9yOiAkd2hpdGU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuXG4ubG9hZGluZ19fcHJvZ3Jlc3Mge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMHB4O1xuXG4gIC5sb2FkaW5nX19wcm9ncmVzc19faW5uZXIge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24od2lkdGggMC4zcyBlYXNlLWluLW91dCk7XG4gICAgd2lkdGg6IDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGluay1ibHVlO1xuICB9XG59XG4iLCIuaWNvbntcbiAgQGluY2x1ZGUgZm9udC1zaXplKDQyKTtcbiAgQGV4dGVuZCAuZm9udC1zbW9vdGg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGNvbG9yOiAkY29weS1ncmV5O1xufVxuXG4uaWNvbi1idXR0b24ge1xuICBAaW5jbHVkZSBpY29uLWJ1dHRvbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG5cbiAgJjpiZWZvcmV7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gIH1cblxuICAubGFiZWx7XG4gICAgQGluY2x1ZGUgaGlkZS10ZXh0O1xuICB9XG59IiwiQGZvbnQtZmFjZSB7XG5cdGZvbnQtZmFtaWx5OiBcInBjYWZvbnRzXCI7XG5cdHNyYzogdXJsKCcvYXNzZXRzL2Zyb250ZW5kL2ZvbnRzL3BjYWZvbnRzLmVvdCcpO1xuXHRzcmM6IHVybCgnL2Fzc2V0cy9mcm9udGVuZC9mb250cy9wY2Fmb250cy5lb3Q/I2llZml4JykgZm9ybWF0KCdlb3QnKSxcblx0XHR1cmwoJy9hc3NldHMvZnJvbnRlbmQvZm9udHMvcGNhZm9udHMud29mZicpIGZvcm1hdCgnd29mZicpLFxuXHRcdHVybCgnL2Fzc2V0cy9mcm9udGVuZC9mb250cy9wY2Fmb250cy50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksXG5cdFx0dXJsKCcvYXNzZXRzL2Zyb250ZW5kL2ZvbnRzL3BjYWZvbnRzLnN2ZyNwY2Fmb250cycpIGZvcm1hdCgnc3ZnJyk7XG59XG5cbiVpY29uIHtcblx0Zm9udC1mYW1pbHk6IFwicGNhZm9udHNcIjtcblx0XHQtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcblx0XHQtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuXHRmb250LXN0eWxlOiBub3JtYWw7XG5cdGZvbnQtdmFyaWFudDogbm9ybWFsO1xuXHRmb250LXdlaWdodDogbm9ybWFsO1xuXHQvLyBzcGVhazogbm9uZTsgLy8gb25seSBuZWNlc3NhcnkgaWYgbm90IHVzaW5nIHRoZSBwcml2YXRlIHVuaWNvZGUgcmFuZ2UgKGZpcnN0R2x5cGggb3B0aW9uKVxuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG5AZnVuY3Rpb24gaWNvbi1jaGFyKCRmaWxlbmFtZSkge1xuXHQkY2hhcjogXCJcIjtcblxuXHRAaWYgJGZpbGVuYW1lID09IF9zaXplLXJlZmVyZW5jZSB7XG5cdFx0JGNoYXI6IFwiXFxFMDAxXCI7XG5cdH1cblx0QGlmICRmaWxlbmFtZSA9PSBiYWNrLXRvLXRvcCB7XG5cdFx0JGNoYXI6IFwiXFxFMDAyXCI7XG5cdH1cblx0QGlmICRmaWxlbmFtZSA9PSBjYXJldC10aGluIHtcblx0XHQkY2hhcjogXCJcXEUwMDNcIjtcblx0fVxuXHRAaWYgJGZpbGVuYW1lID09IGNhcmV0IHtcblx0XHQkY2hhcjogXCJcXEUwMDRcIjtcblx0fVxuXHRAaWYgJGZpbGVuYW1lID09IGNhcnQge1xuXHRcdCRjaGFyOiBcIlxcRTAwNVwiO1xuXHR9XG5cdEBpZiAkZmlsZW5hbWUgPT0gY2hhdCB7XG5cdFx0JGNoYXI6IFwiXFxFMDA2XCI7XG5cdH1cblx0QGlmICRmaWxlbmFtZSA9PSBjbG9zZSB7XG5cdFx0JGNoYXI6IFwiXFxFMDA3XCI7XG5cdH1cblx0QGlmICRmaWxlbmFtZSA9PSBkcm9wbGV0dGUge1xuXHRcdCRjaGFyOiBcIlxcRTAwOFwiO1xuXHR9XG5cdEBpZiAkZmlsZW5hbWUgPT0gZmFjZWJvb2stZiB7XG5cdFx0JGNoYXI6IFwiXFxFMDA5XCI7XG5cdH1cblx0QGlmICRmaWxlbmFtZSA9PSBmYWNlYm9vayB7XG5cdFx0JGNoYXI6IFwiXFxFMDBBXCI7XG5cdH1cblx0QGlmICRmaWxlbmFtZSA9PSBmbGFzayB7XG5cdFx0JGNoYXI6IFwiXFxFMDBCXCI7XG5cdH1cblx0QGlmICRmaWxlbmFtZSA9PSBnb29nbGUtcGx1cyB7XG5cdFx0JGNoYXI6IFwiXFxFMDBDXCI7XG5cdH1cblx0QGlmICRmaWxlbmFtZSA9PSBoYW1idXJnZXIge1xuXHRcdCRjaGFyOiBcIlxcRTAwRFwiO1xuXHR9XG5cdEBpZiAkZmlsZW5hbWUgPT0gaW5zdGFncmFtIHtcblx0XHQkY2hhcjogXCJcXEUwMEVcIjtcblx0fVxuXHRAaWYgJGZpbGVuYW1lID09IGxpbmtlZC1pbiB7XG5cdFx0JGNoYXI6IFwiXFxFMDBGXCI7XG5cdH1cblx0QGlmICRmaWxlbmFtZSA9PSBsb2NhdGlvbiB7XG5cdFx0JGNoYXI6IFwiXFxFMDEwXCI7XG5cdH1cblx0QGlmICRmaWxlbmFtZSA9PSBsb2dvIHtcblx0XHQkY2hhcjogXCJcXEUwMTFcIjtcblx0fVxuXHRAaWYgJGZpbGVuYW1lID09IG1vbGVjdWxlIHtcblx0XHQkY2hhcjogXCJcXEUwMTJcIjtcblx0fVxuXHRAaWYgJGZpbGVuYW1lID09IG1vb24ge1xuXHRcdCRjaGFyOiBcIlxcRTAxM1wiO1xuXHR9XG5cdEBpZiAkZmlsZW5hbWUgPT0gcGhvbmUge1xuXHRcdCRjaGFyOiBcIlxcRTAxNFwiO1xuXHR9XG5cdEBpZiAkZmlsZW5hbWUgPT0gcGludGVyZXN0IHtcblx0XHQkY2hhcjogXCJcXEUwMTVcIjtcblx0fVxuXHRAaWYgJGZpbGVuYW1lID09IHBsdXMge1xuXHRcdCRjaGFyOiBcIlxcRTAxNlwiO1xuXHR9XG5cdEBpZiAkZmlsZW5hbWUgPT0gcmFpbi1jbG91ZCB7XG5cdFx0JGNoYXI6IFwiXFxFMDE3XCI7XG5cdH1cblx0QGlmICRmaWxlbmFtZSA9PSByc3Mge1xuXHRcdCRjaGFyOiBcIlxcRTAxOFwiO1xuXHR9XG5cdEBpZiAkZmlsZW5hbWUgPT0gc2VhcmNoIHtcblx0XHQkY2hhcjogXCJcXEUwMTlcIjtcblx0fVxuXHRAaWYgJGZpbGVuYW1lID09IHNoaWVsZCB7XG5cdFx0JGNoYXI6IFwiXFxFMDFBXCI7XG5cdH1cblx0QGlmICRmaWxlbmFtZSA9PSBzdGFyIHtcblx0XHQkY2hhcjogXCJcXEUwMUJcIjtcblx0fVxuXHRAaWYgJGZpbGVuYW1lID09IHN1biB7XG5cdFx0JGNoYXI6IFwiXFxFMDFDXCI7XG5cdH1cblx0QGlmICRmaWxlbmFtZSA9PSB0YWcge1xuXHRcdCRjaGFyOiBcIlxcRTAxRFwiO1xuXHR9XG5cdEBpZiAkZmlsZW5hbWUgPT0gdHJ1c3QtdGhlLWV4cGVydHMge1xuXHRcdCRjaGFyOiBcIlxcRTAxRVwiO1xuXHR9XG5cdEBpZiAkZmlsZW5hbWUgPT0gdHdpdHRlciB7XG5cdFx0JGNoYXI6IFwiXFxFMDFGXCI7XG5cdH1cblx0QGlmICRmaWxlbmFtZSA9PSB1c2VyIHtcblx0XHQkY2hhcjogXCJcXEUwMjBcIjtcblx0fVxuXHRAaWYgJGZpbGVuYW1lID09IHZpbWVvIHtcblx0XHQkY2hhcjogXCJcXEUwMjFcIjtcblx0fVxuXHRAaWYgJGZpbGVuYW1lID09IHlvdXR1YmUge1xuXHRcdCRjaGFyOiBcIlxcRTAyMlwiO1xuXHR9XG5cblx0QHJldHVybiAkY2hhcjtcbn1cblxuQG1peGluIGljb24oJGZpbGVuYW1lLCAkaW5zZXJ0OiBiZWZvcmUpIHtcblx0JjojeyRpbnNlcnR9IHtcblx0XHRAZXh0ZW5kICVpY29uO1xuXHRcdGNvbnRlbnQ6IGljb24tY2hhcigkZmlsZW5hbWUpO1xuXHR9XG59XG5cbi5pY29uLV9zaXplLXJlZmVyZW5jZSB7XG5cdEBpbmNsdWRlIGljb24oX3NpemUtcmVmZXJlbmNlKTtcbn1cbi5pY29uLWJhY2stdG8tdG9wIHtcblx0QGluY2x1ZGUgaWNvbihiYWNrLXRvLXRvcCk7XG59XG4uaWNvbi1jYXJldC10aGluIHtcblx0QGluY2x1ZGUgaWNvbihjYXJldC10aGluKTtcbn1cbi5pY29uLWNhcmV0IHtcblx0QGluY2x1ZGUgaWNvbihjYXJldCk7XG59XG4uaWNvbi1jYXJ0IHtcblx0QGluY2x1ZGUgaWNvbihjYXJ0KTtcbn1cbi5pY29uLWNoYXQge1xuXHRAaW5jbHVkZSBpY29uKGNoYXQpO1xufVxuLmljb24tY2xvc2Uge1xuXHRAaW5jbHVkZSBpY29uKGNsb3NlKTtcbn1cbi5pY29uLWRyb3BsZXR0ZSB7XG5cdEBpbmNsdWRlIGljb24oZHJvcGxldHRlKTtcbn1cbi5pY29uLWZhY2Vib29rLWYge1xuXHRAaW5jbHVkZSBpY29uKGZhY2Vib29rLWYpO1xufVxuLmljb24tZmFjZWJvb2sge1xuXHRAaW5jbHVkZSBpY29uKGZhY2Vib29rKTtcbn1cbi5pY29uLWZsYXNrIHtcblx0QGluY2x1ZGUgaWNvbihmbGFzayk7XG59XG4uaWNvbi1nb29nbGUtcGx1cyB7XG5cdEBpbmNsdWRlIGljb24oZ29vZ2xlLXBsdXMpO1xufVxuLmljb24taGFtYnVyZ2VyIHtcblx0QGluY2x1ZGUgaWNvbihoYW1idXJnZXIpO1xufVxuLmljb24taW5zdGFncmFtIHtcblx0QGluY2x1ZGUgaWNvbihpbnN0YWdyYW0pO1xufVxuLmljb24tbGlua2VkLWluIHtcblx0QGluY2x1ZGUgaWNvbihsaW5rZWQtaW4pO1xufVxuLmljb24tbG9jYXRpb24ge1xuXHRAaW5jbHVkZSBpY29uKGxvY2F0aW9uKTtcbn1cbi5pY29uLWxvZ28ge1xuXHRAaW5jbHVkZSBpY29uKGxvZ28pO1xufVxuLmljb24tbW9sZWN1bGUge1xuXHRAaW5jbHVkZSBpY29uKG1vbGVjdWxlKTtcbn1cbi5pY29uLW1vb24ge1xuXHRAaW5jbHVkZSBpY29uKG1vb24pO1xufVxuLmljb24tcGhvbmUge1xuXHRAaW5jbHVkZSBpY29uKHBob25lKTtcbn1cbi5pY29uLXBpbnRlcmVzdCB7XG5cdEBpbmNsdWRlIGljb24ocGludGVyZXN0KTtcbn1cbi5pY29uLXBsdXMge1xuXHRAaW5jbHVkZSBpY29uKHBsdXMpO1xufVxuLmljb24tcmFpbi1jbG91ZCB7XG5cdEBpbmNsdWRlIGljb24ocmFpbi1jbG91ZCk7XG59XG4uaWNvbi1yc3Mge1xuXHRAaW5jbHVkZSBpY29uKHJzcyk7XG59XG4uaWNvbi1zZWFyY2gge1xuXHRAaW5jbHVkZSBpY29uKHNlYXJjaCk7XG59XG4uaWNvbi1zaGllbGQge1xuXHRAaW5jbHVkZSBpY29uKHNoaWVsZCk7XG59XG4uaWNvbi1zdGFyIHtcblx0QGluY2x1ZGUgaWNvbihzdGFyKTtcbn1cbi5pY29uLXN1biB7XG5cdEBpbmNsdWRlIGljb24oc3VuKTtcbn1cbi5pY29uLXRhZyB7XG5cdEBpbmNsdWRlIGljb24odGFnKTtcbn1cbi5pY29uLXRydXN0LXRoZS1leHBlcnRzIHtcblx0QGluY2x1ZGUgaWNvbih0cnVzdC10aGUtZXhwZXJ0cyk7XG59XG4uaWNvbi10d2l0dGVyIHtcblx0QGluY2x1ZGUgaWNvbih0d2l0dGVyKTtcbn1cbi5pY29uLXVzZXIge1xuXHRAaW5jbHVkZSBpY29uKHVzZXIpO1xufVxuLmljb24tdmltZW8ge1xuXHRAaW5jbHVkZSBpY29uKHZpbWVvKTtcbn1cbi5pY29uLXlvdXR1YmUge1xuXHRAaW5jbHVkZSBpY29uKHlvdXR1YmUpO1xufVxuIiwiJHdoaXRlOiAjZmZmO1xuJGJsYWNrOiAjMDAwO1xuJGJsYWNrMjogIzA3MTgyNDtcbiRiZy1ncmV5OiAjMjUyNTI1O1xuJGJnLWxpZ2h0LWdyZXk6ICNmOGY4Zjg7XG4kbWlkZGxlLWdyZXk6ICNjY2NjY2M7XG4kc2VsZWN0LWdyZXk6ICNmMWYxZjE7XG4kbGlnaHQtZ3JleTogI2Q2ZDZkNjtcbiR3aGl0ZS1ncmV5OiAjZWZmMmY0O1xuJGNvcHktZ3JleTogI2MzYzNjMztcbiRjb3B5LWRhcmstZ3JleTogIzViNWI1YjtcbiRpbnB1dC1ncmV5OiAjNTk1OTU5O1xuJHN0YXItaW5hY3RpdmUtZ3JleTogI2I2YjZiNjtcbiRncmV5MjogIzk5OTk5OTtcbiRncmV5MzogIzYyNjI2MjtcbiRncmV5NDogIzQxNDE0MTtcbiRncmV5NTogI2Y0ZjRmNDtcbiRncmV5NjogI2UxZTFlMTtcbiRncmV5NzogI2U4ZThlODtcbiRncmV5ODogI2ExYTFhMTtcbiRncmV5OTogIzQxNGY1OTtcbiRtb2JpbGUtbmF2LWJvcmRlci1ncmV5OiAjMjYyNjI2O1xuJG1vYmlsZS1uYXYtZHJvcGRvd24tYmFja2dyb3VuZDogIzEwMGUwZTtcbiRib3JkZXItZ3JleTogIzc3Nzc3NztcbiRkYXJrLWdyZXk6ICMyODI4Mjg7XG4kb3JhbmdlOiAjZmY1MjAwO1xuJGxpbmstYmx1ZTogIzVkYWVlMztcbiRsaW5rLWRhcmstYmx1ZTogIzRjOWJjZjtcbiRibHVlOiAjNjFhZWUxO1xuJGxpZ2h0LWJsdWU6ICM3MWI3ZTQ7XG4kdGltZWxpbmUtY2FyZC1iYWNrZ3JvdW5kOiAjZWNlY2VjO1xuJHRpbWVsaW5lLXRpbWUtYmFja2dyb3VuZDogI2UxZTFlMTtcbiR0aW1lbGluZS1wb2ludC1jb2xvcjogIzMzMzMzMztcbiRxdWVzdGlvbm5haXJlLWNob2ljZTogIzZlYjZlNjtcbiRxdWVzdGlvbm5haXJlLWNob2ljZS1oaWdobGlnaHQ6ICNjZmU3Zjc7XG4kY2F0ZWdvcnktdGFiLWdyYXk6ICM4YzhjOGM7XG4kaW5wdXQtbGFyZ2UtZGFyay1ncmF5OiAjM2EzYTNhO1xuJHR3by1jb2x1bW4tZGFyay1ncmV5OiAjMTcxNzE3O1xuJGZvb3Rlci1ncmV5OiAjYWNhY2FjO1xuXG4kZmFjZWJvb2stY29sb3I6ICMyNzU5OTk7XG4kcGludGVyZXN0LWNvbG9yOiAjZGQyMTJjO1xuJHR3aXR0ZXItY29sb3I6ICMzYWFiZGE7XG4kZ29vZ2xlLWNvbG9yOiAjZWE0ODNhO1xuIiwiLy8vIE91dHB1dHMgYSBtZWRpYS1xdWVyeSBibG9jayB3aXRoIGFuIG9wdGlvbmFsIGdyaWQgY29udGV4dCAodGhlIHRvdGFsIG51bWJlciBvZiBjb2x1bW5zIHVzZWQgaW4gdGhlIGdyaWQpLlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkcXVlcnlcbi8vLyAgIEEgbGlzdCBvZiBtZWRpYSBxdWVyeSBmZWF0dXJlcyBhbmQgdmFsdWVzLCB3aGVyZSBlYWNoIGAkZmVhdHVyZWAgc2hvdWxkIGhhdmUgYSBjb3JyZXNwb25kaW5nIGAkdmFsdWVgLlxuLy8vICAgRm9yIGEgbGlzdCBvZiB2YWxpZCB2YWx1ZXMgZm9yIGAkZmVhdHVyZWAsIGNsaWNrIFtoZXJlXShodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLW1lZGlhcXVlcmllcy8jbWVkaWExKS5cbi8vL1xuLy8vICAgSWYgdGhlcmUgaXMgb25seSBhIHNpbmdsZSBgJHZhbHVlYCBpbiBgJHF1ZXJ5YCwgYCRkZWZhdWx0LWZlYXR1cmVgIGlzIGdvaW5nIHRvIGJlIHVzZWQuXG4vLy9cbi8vLyAgIFRoZSBudW1iZXIgb2YgdG90YWwgY29sdW1ucyBpbiB0aGUgZ3JpZCBjYW4gYmUgc2V0IGJ5IHBhc3NpbmcgYCRjb2x1bW5zYCBhdCB0aGUgZW5kIG9mIHRoZSBsaXN0IChvdmVycmlkZXMgYCR0b3RhbC1jb2x1bW5zYCkuXG4vLy9cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyICh1bml0bGVzcyl9ICR0b3RhbC1jb2x1bW5zICgkZ3JpZC1jb2x1bW5zKVxuLy8vICAgLSBOdW1iZXIgb2YgY29sdW1ucyB0byB1c2UgaW4gdGhlIG5ldyBncmlkIGNvbnRleHQuIENhbiBiZSBzZXQgYXMgYSBzaG9ydGhhbmQgaW4gdGhlIGZpcnN0IHBhcmFtZXRlci5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLnJlc3BvbnNpdmUtZWxlbWVudCB7XG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSg3NjlweCkge1xuLy8vICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNik7XG4vLy8gICAgICB9XG4vLy8gICB9XG4vLy9cbi8vLyAgLm5ldy1jb250ZXh0LWVsZW1lbnQge1xuLy8vICAgIEBpbmNsdWRlIG1lZGlhKG1pbi13aWR0aCAzMjBweCBtYXgtd2lkdGggNDgwcHgsIDYpIHtcbi8vLyAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg2KTtcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY5cHgpIHtcbi8vLyAgICAucmVzcG9uc2l2ZS1lbGVtZW50IHtcbi8vLyAgICAgIGRpc3BsYXk6IGJsb2NrO1xuLy8vICAgICAgZmxvYXQ6IGxlZnQ7XG4vLy8gICAgICBtYXJnaW4tcmlnaHQ6IDIuMzU3NjUlO1xuLy8vICAgICAgd2lkdGg6IDQ4LjgyMTE3JTtcbi8vLyAgICB9XG4vLy9cbi8vLyAgICAucmVzcG9uc2l2ZS1lbGVtZW50Omxhc3QtY2hpbGQge1xuLy8vICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDMyMHB4KSBhbmQgKG1heC13aWR0aDogNDgwcHgpIHtcbi8vLyAgICAubmV3LWNvbnRleHQtZWxlbWVudCB7XG4vLy8gICAgICBkaXNwbGF5OiBibG9jaztcbi8vLyAgICAgIGZsb2F0OiBsZWZ0O1xuLy8vICAgICAgbWFyZ2luLXJpZ2h0OiA0LjgyOTE2JTtcbi8vLyAgICAgIHdpZHRoOiAxMDAlO1xuLy8vICAgIH1cbi8vL1xuLy8vICAgIC5uZXctY29udGV4dC1lbGVtZW50Omxhc3QtY2hpbGQge1xuLy8vICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuLy8vICAgIH1cbi8vLyAgfVxuXG5AbWl4aW4gbWVkaWEoJHF1ZXJ5OiAkZmVhdHVyZSAkdmFsdWUgJGNvbHVtbnMsICR0b3RhbC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zKSB7XG4gIEBpZiBsZW5ndGgoJHF1ZXJ5KSA9PSAxIHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAoJGRlZmF1bHQtZmVhdHVyZTogbnRoKCRxdWVyeSwgMSkpIHtcbiAgICAgICRkZWZhdWx0LWdyaWQtY29sdW1uczogJGdyaWQtY29sdW1ucztcbiAgICAgICRncmlkLWNvbHVtbnM6ICR0b3RhbC1jb2x1bW5zICFnbG9iYWw7XG4gICAgICBAY29udGVudDtcbiAgICAgICRncmlkLWNvbHVtbnM6ICRkZWZhdWx0LWdyaWQtY29sdW1ucyAhZ2xvYmFsO1xuICAgIH1cbiAgfVxuXG4gIEBlbHNlIHtcbiAgICAkbG9vcC10bzogbGVuZ3RoKCRxdWVyeSk7XG4gICAgJG1lZGlhLXF1ZXJ5OiAnc2NyZWVuIGFuZCAnO1xuICAgICRkZWZhdWx0LWdyaWQtY29sdW1uczogJGdyaWQtY29sdW1ucztcbiAgICAkZ3JpZC1jb2x1bW5zOiAkdG90YWwtY29sdW1ucyAhZ2xvYmFsO1xuXG4gICAgQGlmIG5vdChpcy1ldmVuKGxlbmd0aCgkcXVlcnkpKSkge1xuICAgICAgJGdyaWQtY29sdW1uczogbnRoKCRxdWVyeSwgJGxvb3AtdG8pICFnbG9iYWw7XG4gICAgICAkbG9vcC10bzogJGxvb3AtdG8gLSAxO1xuICAgIH1cblxuICAgICRpOiAxO1xuICAgIEB3aGlsZSAkaSA8PSAkbG9vcC10byB7XG4gICAgICAkbWVkaWEtcXVlcnk6ICRtZWRpYS1xdWVyeSArICcoJyArIG50aCgkcXVlcnksICRpKSArICc6ICcgKyBudGgoJHF1ZXJ5LCAkaSArIDEpICsgJykgJztcblxuICAgICAgQGlmICgkaSArIDEpICE9ICRsb29wLXRvIHtcbiAgICAgICAgJG1lZGlhLXF1ZXJ5OiAkbWVkaWEtcXVlcnkgKyAnYW5kICc7XG4gICAgICB9XG5cbiAgICAgICRpOiAkaSArIDI7XG4gICAgfVxuXG4gICAgQG1lZGlhICN7JG1lZGlhLXF1ZXJ5fSB7XG4gICAgICBAY29udGVudDtcbiAgICAgICRncmlkLWNvbHVtbnM6ICRkZWZhdWx0LWdyaWQtY29sdW1ucyAhZ2xvYmFsO1xuICAgIH1cbiAgfVxufVxuIiwiQG1peGluIHRyaWFuZ2xlICgkc2l6ZSwgJGNvbG9yLCAkZGlyZWN0aW9uKSB7XG4gIGhlaWdodDogMDtcbiAgd2lkdGg6IDA7XG5cbiAgJHdpZHRoOiBudGgoJHNpemUsIDEpO1xuICAkaGVpZ2h0OiBudGgoJHNpemUsIGxlbmd0aCgkc2l6ZSkpO1xuXG4gICRmb3JlZ3JvdW5kLWNvbG9yOiBudGgoJGNvbG9yLCAxKTtcbiAgJGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuICBAaWYgKGxlbmd0aCgkY29sb3IpID09IDIpIHtcbiAgICAkYmFja2dyb3VuZC1jb2xvcjogbnRoKCRjb2xvciwgMik7XG4gIH1cblxuICBAaWYgKCRkaXJlY3Rpb24gPT0gdXApIG9yICgkZGlyZWN0aW9uID09IGRvd24pIG9yICgkZGlyZWN0aW9uID09IHJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSBsZWZ0KSB7XG5cbiAgICAkd2lkdGg6ICR3aWR0aCAvIDI7XG4gICAgJGhlaWdodDogaWYobGVuZ3RoKCRzaXplKSA+IDEsICRoZWlnaHQsICRoZWlnaHQvMik7XG5cbiAgICBAaWYgJGRpcmVjdGlvbiA9PSB1cCB7XG4gICAgICBib3JkZXItbGVmdDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItYm90dG9tOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuXG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IHJpZ2h0IHtcbiAgICAgIGJvcmRlci10b3A6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1ib3R0b206ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1sZWZ0OiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuXG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGRvd24ge1xuICAgICAgYm9yZGVyLWxlZnQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXRvcDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcblxuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBsZWZ0IHtcbiAgICAgIGJvcmRlci10b3A6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1ib3R0b206ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1yaWdodDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICB9XG4gIH1cblxuICBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSB1cC1yaWdodCkgb3IgKCRkaXJlY3Rpb24gPT0gdXAtbGVmdCkge1xuICAgIGJvcmRlci10b3A6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG5cbiAgICBAaWYgJGRpcmVjdGlvbiA9PSB1cC1yaWdodCB7XG4gICAgICBib3JkZXItbGVmdDogICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcblxuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSB1cC1sZWZ0IHtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGRvd24tcmlnaHQpIG9yICgkZGlyZWN0aW9uID09IGRvd24tbGVmdCkge1xuICAgIGJvcmRlci1ib3R0b206ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG5cbiAgICBAaWYgJGRpcmVjdGlvbiA9PSBkb3duLXJpZ2h0IHtcbiAgICAgIGJvcmRlci1sZWZ0OiAgJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuXG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGRvd24tbGVmdCB7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9XG4gIH1cblxuICBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC11cCkge1xuICAgIGJvcmRlci13aWR0aDogJGhlaWdodCAkd2lkdGg7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRmb3JlZ3JvdW5kLWNvbG9yO1xuICB9XG5cbiAgQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtZG93bikge1xuICAgIGJvcmRlci13aWR0aDogJGhlaWdodCAkd2lkdGg7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6ICRmb3JlZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yO1xuICB9XG5cbiAgQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtcmlnaHQpIHtcbiAgICBib3JkZXItd2lkdGg6ICR3aWR0aCAkaGVpZ2h0O1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgfVxuXG4gIEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LWxlZnQpIHtcbiAgICBib3JkZXItd2lkdGg6ICR3aWR0aCAkaGVpZ2h0O1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvciAkZm9yZWdyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvcjtcbiAgfVxufVxuIiwiQG1peGluIHBsYWNlaG9sZGVyIHtcbiAgJHBsYWNlaG9sZGVyczogXCI6LXdlYmtpdC1pbnB1dFwiIFwiOi1tb3pcIiBcIi1tb3pcIiBcIi1tcy1pbnB1dFwiO1xuICBAZWFjaCAkcGxhY2Vob2xkZXIgaW4gJHBsYWNlaG9sZGVycyB7XG4gICAgJjojeyRwbGFjZWhvbGRlcn0tcGxhY2Vob2xkZXIge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG4iLCJAbWl4aW4gcG9zaXRpb24gKCRwb3NpdGlvbjogcmVsYXRpdmUsICRjb29yZGluYXRlczogbnVsbCBudWxsIG51bGwgbnVsbCkge1xuXG4gIEBpZiB0eXBlLW9mKCRwb3NpdGlvbikgPT0gbGlzdCB7XG4gICAgJGNvb3JkaW5hdGVzOiAkcG9zaXRpb247XG4gICAgJHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuXG4gICRjb29yZGluYXRlczogdW5wYWNrKCRjb29yZGluYXRlcyk7XG5cbiAgJHRvcDogbnRoKCRjb29yZGluYXRlcywgMSk7XG4gICRyaWdodDogbnRoKCRjb29yZGluYXRlcywgMik7XG4gICRib3R0b206IG50aCgkY29vcmRpbmF0ZXMsIDMpO1xuICAkbGVmdDogbnRoKCRjb29yZGluYXRlcywgNCk7XG5cbiAgcG9zaXRpb246ICRwb3NpdGlvbjtcblxuICBAaWYgKCR0b3AgYW5kICR0b3AgPT0gYXV0bykgb3IgKHR5cGUtb2YoJHRvcCkgPT0gbnVtYmVyKSB7XG4gICAgdG9wOiAkdG9wO1xuICB9XG5cbiAgQGlmICgkcmlnaHQgYW5kICRyaWdodCA9PSBhdXRvKSBvciAodHlwZS1vZigkcmlnaHQpID09IG51bWJlcikge1xuICAgIHJpZ2h0OiAkcmlnaHQ7XG4gIH1cblxuICBAaWYgKCRib3R0b20gYW5kICRib3R0b20gPT0gYXV0bykgb3IgKHR5cGUtb2YoJGJvdHRvbSkgPT0gbnVtYmVyKSB7XG4gICAgYm90dG9tOiAkYm90dG9tO1xuICB9XG5cbiAgQGlmICgkbGVmdCBhbmQgJGxlZnQgPT0gYXV0bykgb3IgKHR5cGUtb2YoJGxlZnQpID09IG51bWJlcikge1xuICAgIGxlZnQ6ICRsZWZ0O1xuICB9XG59XG4iLCIuaWNvbi1jYXJldCB7XG4gICYudG9wIHtcblxuICB9XG4gICYucmlnaHQge1xuICAgIEBpbmNsdWRlIHRyYW5zZm9ybShyb3RhdGUoOTBkZWcpKTtcbiAgfVxuICAmLmJvdHRvbSB7XG4gICAgQGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZSgxODBkZWcpKTtcbiAgfVxuICAmLmxlZnQge1xuICAgIEBpbmNsdWRlIHRyYW5zZm9ybShyb3RhdGUoMjcwZGVnKSk7XG4gIH1cbn1cblxuLmljb24tY2FyZXQtdGhpbiB7XG4gICYudG9wIHtcbiAgICBAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlKDI3MGRlZykpO1xuICB9XG4gICYucmlnaHQge1xuXG4gIH1cbiAgJi5ib3R0b20ge1xuICAgIEBpbmNsdWRlIHRyYW5zZm9ybShyb3RhdGUoOTBkZWcpKTtcbiAgfVxuICAmLmxlZnQge1xuICAgIEBpbmNsdWRlIHRyYW5zZm9ybShyb3RhdGUoMTgwZGVnKSk7XG4gIH1cbn1cbiIsIi8vIFNob3J0aGFuZCBtaXhpbi4gU3VwcG9ydHMgbXVsdGlwbGUgcGFyZW50aGVzZXMtZGVsaW1pbmF0ZWQgdmFsdWVzIGZvciBlYWNoIHZhcmlhYmxlLlxuLy8gRXhhbXBsZTogQGluY2x1ZGUgdHJhbnNpdGlvbiAoYWxsIDJzIGVhc2UtaW4tb3V0KTtcbi8vICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24gKG9wYWNpdHkgMXMgZWFzZS1pbiAycywgd2lkdGggMnMgZWFzZS1vdXQpO1xuLy8gICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1wcm9wZXJ0eSAodHJhbnNmb3JtLCBvcGFjaXR5KTtcblxuQG1peGluIHRyYW5zaXRpb24gKCRwcm9wZXJ0aWVzLi4uKSB7XG4gIC8vIEZpeCBmb3IgdmVuZG9yLXByZWZpeCB0cmFuc2Zvcm0gcHJvcGVydHlcbiAgJG5lZWRzLXByZWZpeGVzOiBmYWxzZTtcbiAgJHdlYmtpdDogKCk7XG4gICRtb3o6ICgpO1xuICAkc3BlYzogKCk7XG5cbiAgLy8gQ3JlYXRlIGxpc3RzIGZvciB2ZW5kb3ItcHJlZml4ZWQgdHJhbnNmb3JtXG4gIEBlYWNoICRsaXN0IGluICRwcm9wZXJ0aWVzIHtcbiAgICBAaWYgbnRoKCRsaXN0LCAxKSA9PSBcInRyYW5zZm9ybVwiIHtcbiAgICAgICRuZWVkcy1wcmVmaXhlczogdHJ1ZTtcbiAgICAgICRsaXN0MTogLXdlYmtpdC10cmFuc2Zvcm07XG4gICAgICAkbGlzdDI6IC1tb3otdHJhbnNmb3JtO1xuICAgICAgJGxpc3QzOiAoKTtcblxuICAgICAgQGVhY2ggJHZhciBpbiAkbGlzdCB7XG4gICAgICAgICRsaXN0Mzogam9pbigkbGlzdDMsICR2YXIpO1xuXG4gICAgICAgIEBpZiAkdmFyICE9IFwidHJhbnNmb3JtXCIge1xuICAgICAgICAgICRsaXN0MTogam9pbigkbGlzdDEsICR2YXIpO1xuICAgICAgICAgICRsaXN0Mjogam9pbigkbGlzdDIsICR2YXIpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICR3ZWJraXQ6IGFwcGVuZCgkd2Via2l0LCAkbGlzdDEpO1xuICAgICAgICAgJG1vejogYXBwZW5kKCRtb3osICAgICRsaXN0Mik7XG4gICAgICAgICRzcGVjOiBhcHBlbmQoJHNwZWMsICAgJGxpc3QzKTtcbiAgICB9XG5cbiAgICAvLyBDcmVhdGUgbGlzdHMgZm9yIG5vbi1wcmVmaXhlZCB0cmFuc2l0aW9uIHByb3BlcnRpZXNcbiAgICBAZWxzZSB7XG4gICAgICAkd2Via2l0OiAgYXBwZW5kKCR3ZWJraXQsICRsaXN0LCBjb21tYSk7XG4gICAgICAkbW96OiAgICAgYXBwZW5kKCRtb3osICAgICRsaXN0LCBjb21tYSk7XG4gICAgICAkc3BlYzogICAgYXBwZW5kKCRzcGVjLCAgICRsaXN0LCBjb21tYSk7XG4gICAgfVxuICB9XG5cbiAgQGlmICRuZWVkcy1wcmVmaXhlcyB7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiAkd2Via2l0O1xuICAgICAgIC1tb3otdHJhbnNpdGlvbjogJG1vejtcbiAgICAgICAgICAgIHRyYW5zaXRpb246ICRzcGVjO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAaWYgbGVuZ3RoKCRwcm9wZXJ0aWVzKSA+PSAxIHtcbiAgICAgIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24sICRwcm9wZXJ0aWVzLCB3ZWJraXQgbW96IHNwZWMpO1xuICAgIH1cblxuICAgIEBlbHNlIHtcbiAgICAgICRwcm9wZXJ0aWVzOiBhbGwgMC4xNXMgZWFzZS1vdXQgMHM7XG4gICAgICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLCAkcHJvcGVydGllcywgd2Via2l0IG1veiBzcGVjKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHRyYW5zaXRpb24tcHJvcGVydHkgKCRwcm9wZXJ0aWVzLi4uKSB7XG4gICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoJHByb3BlcnRpZXMsICd3ZWJraXQnKTtcbiAgICAgIC1tb3otdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcGVydGllcywgJ21veicpO1xuICAgICAgICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wZXJ0aWVzLCBmYWxzZSk7XG59XG5cbkBtaXhpbiB0cmFuc2l0aW9uLWR1cmF0aW9uICgkdGltZXMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbi1kdXJhdGlvbiwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24gKCRtb3Rpb25zLi4uKSB7XG4vLyBlYXNlIHwgbGluZWFyIHwgZWFzZS1pbiB8IGVhc2Utb3V0IHwgZWFzZS1pbi1vdXQgfCBjdWJpYy1iZXppZXIoKVxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiwgJG1vdGlvbnMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiB0cmFuc2l0aW9uLWRlbGF5ICgkdGltZXMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbi1kZWxheSwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuIiwiQG1peGluIHNpemUoJHNpemUpIHtcbiAgQGlmIGxlbmd0aCgkc2l6ZSkgPT0gMSB7XG4gICAgQGlmICRzaXplID09IGF1dG8ge1xuICAgICAgd2lkdGg6ICAkc2l6ZTtcbiAgICAgIGhlaWdodDogJHNpemU7XG4gICAgfVxuXG4gICAgQGVsc2UgaWYgdW5pdGxlc3MoJHNpemUpIHtcbiAgICAgIHdpZHRoOiAgJHNpemUgKyBweDtcbiAgICAgIGhlaWdodDogJHNpemUgKyBweDtcbiAgICB9XG5cbiAgICBAZWxzZSBpZiBub3QodW5pdGxlc3MoJHNpemUpKSB7XG4gICAgICB3aWR0aDogICRzaXplO1xuICAgICAgaGVpZ2h0OiAkc2l6ZTtcbiAgICB9XG4gIH1cblxuICAvLyBXaWR0aCB4IEhlaWdodFxuICBAaWYgbGVuZ3RoKCRzaXplKSA9PSAyIHtcbiAgICAkd2lkdGg6ICBudGgoJHNpemUsIDEpO1xuICAgICRoZWlnaHQ6IG50aCgkc2l6ZSwgMik7XG5cbiAgICBAaWYgJHdpZHRoID09IGF1dG8ge1xuICAgICAgd2lkdGg6ICR3aWR0aDtcbiAgICB9XG4gICAgQGVsc2UgaWYgbm90KHVuaXRsZXNzKCR3aWR0aCkpIHtcbiAgICAgIHdpZHRoOiAkd2lkdGg7XG4gICAgfVxuICAgIEBlbHNlIGlmIHVuaXRsZXNzKCR3aWR0aCkge1xuICAgICAgd2lkdGg6ICR3aWR0aCArIHB4O1xuICAgIH1cblxuICAgIEBpZiAkaGVpZ2h0ID09IGF1dG8ge1xuICAgICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICAgIH1cbiAgICBAZWxzZSBpZiBub3QodW5pdGxlc3MoJGhlaWdodCkpIHtcbiAgICAgIGhlaWdodDogJGhlaWdodDtcbiAgICB9XG4gICAgQGVsc2UgaWYgdW5pdGxlc3MoJGhlaWdodCkge1xuICAgICAgaGVpZ2h0OiAkaGVpZ2h0ICsgcHg7XG4gICAgfVxuICB9XG59XG4iLCIvKiBjb21tb24gZWxlbWVudHMgZXh0ZW5kZWQgZWxzZXdoZXJlICovXG4vL2NvbW1vbiBlbGVtZW50cyBmb3Igc2VsZWN0IGFuZCBjdXN0b20gbXVsdGlzZWxlY3RcblxuQG1peGluIHNlbGVjdC1lbGVtZW50IHtcbiAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKHBhZGRpbmcsIDAuNiwgMy41LCAwLjYsIDIuNyk7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJGJsYWNrLCAwLjgpO1xuICBjb2xvcjogJHdoaXRlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbkBtaXhpbiBzZWxlY3QtZHJvcGRvd24ge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDEycHggIzk5OTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDEwMCU7XG4gIGxlZnQ6IC05OTk5cHg7XG4gIHotaW5kZXg6IDEwMTA7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uY2xlYXJmaXh7XG4gIEBleHRlbmQgJWNsZWFyZml4O1xufVxuXG4uaGlkZXtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLnRleHQtbW9yZS1ncmFkaWVudHtcbiAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQoYm90dG9tLCByZ2JhKDI1NSwyNTUsMjU1LDEpIDAlLCByZ2JhKDI1NSwyNTUsMjU1LDApIDEwMCUpOyAvKiBGRjMuNisgKi9cbiAgYmFja2dyb3VuZDogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgYm90dG9tLCBsZWZ0IHRvcCwgY29sb3Itc3RvcCgwJSxyZ2JhKDI1NSwyNTUsMjU1LDEpKSwgY29sb3Itc3RvcCgxMDAlLHJnYmEoMjU1LDI1NSwyNTUsMCkpKTsgLyogQ2hyb21lLFNhZmFyaTQrICovXG4gIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGJvdHRvbSwgcmdiYSgyNTUsMjU1LDI1NSwxKSAwJSxyZ2JhKDI1NSwyNTUsMjU1LDApIDEwMCUpOyAvKiBDaHJvbWUxMCssU2FmYXJpNS4xKyAqL1xuICBiYWNrZ3JvdW5kOiAtby1saW5lYXItZ3JhZGllbnQoYm90dG9tLCByZ2JhKDI1NSwyNTUsMjU1LDEpIDAlLHJnYmEoMjU1LDI1NSwyNTUsMCkgMTAwJSk7IC8qIE9wZXJhIDExLjEwKyAqL1xuICBiYWNrZ3JvdW5kOiAtbXMtbGluZWFyLWdyYWRpZW50KGJvdHRvbSwgcmdiYSgyNTUsMjU1LDI1NSwxKSAwJSxyZ2JhKDI1NSwyNTUsMjU1LDApIDEwMCUpOyAvKiBJRTEwKyAqL1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gdG9wLCByZ2JhKDI1NSwyNTUsMjU1LDEpIDAlLHJnYmEoMjU1LDI1NSwyNTUsMCkgMTAwJSk7IC8qIFczQyAqL1xuICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudCggc3RhcnRDb2xvcnN0cj0nI2ZmZmZmZicsIGVuZENvbG9yc3RyPScjMDBmZmZmZmYnLEdyYWRpZW50VHlwZT0wICk7IC8qIElFNi05ICovXG59XG5cbi5jZW50ZXItZWxlbXtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiA1MCU7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59IiwiJGlucHV0LWJvcmRlci1yYWRpdXM6IDEzcHg7XG5cbmlucHV0e1xuICBAaW5jbHVkZSByZW0tZmFsbGJhY2socGFkZGluZywgMCwgMSk7XG4gIGJvcmRlcjogbm9uZTtcbn1cbiIsIi8qIVxuQ2hvc2VuLCBhIFNlbGVjdCBCb3ggRW5oYW5jZXIgZm9yIGpRdWVyeSBhbmQgUHJvdG90eXBlXG5ieSBQYXRyaWNrIEZpbGxlciBmb3IgSGFydmVzdCwgaHR0cDovL2dldGhhcnZlc3QuY29tXG5cblZlcnNpb24gMS4yLjBcbkZ1bGwgc291cmNlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9oYXJ2ZXN0aHEvY2hvc2VuXG5Db3B5cmlnaHQgKGMpIDIwMTEtMjAxNCBIYXJ2ZXN0IGh0dHA6Ly9nZXRoYXJ2ZXN0LmNvbVxuXG5NSVQgTGljZW5zZSwgaHR0cHM6Ly9naXRodWIuY29tL2hhcnZlc3RocS9jaG9zZW4vYmxvYi9tYXN0ZXIvTElDRU5TRS5tZFxuVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBieSBgZ3J1bnQgYnVpbGRgLCBkbyBub3QgZWRpdCBpdCBieSBoYW5kLlxuKi9cblxuLyogQGdyb3VwIEJhc2UgKi9cbi5jaG9zZW4tY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgem9vbTogMTtcbiAgKmRpc3BsYXk6IGlubGluZTtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG4uY2hvc2VuLWNvbnRhaW5lciAqIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4uY2hvc2VuLWNvbnRhaW5lciAuY2hvc2VuLWRyb3Age1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTAwJTtcbiAgbGVmdDogLTk5OTlweDtcbiAgei1pbmRleDogMTAxMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNhYWE7XG4gIGJvcmRlci10b3A6IDA7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xufVxuLmNob3Nlbi1jb250YWluZXIuY2hvc2VuLXdpdGgtZHJvcCAuY2hvc2VuLWRyb3Age1xuICBsZWZ0OiAwO1xufVxuLmNob3Nlbi1jb250YWluZXIgYSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLyogQGVuZCAqL1xuLyogQGdyb3VwIFNpbmdsZSBDaG9zZW4gKi9cbi5jaG9zZW4tY29udGFpbmVyLXNpbmdsZSAuY2hvc2VuLXNpbmdsZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDAgMCAwIDhweDtcbiAgaGVpZ2h0OiAyNXB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjYWFhO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQ6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCA1MCUgMCUsIDUwJSAxMDAlLCBjb2xvci1zdG9wKDIwJSwgI2ZmZmZmZiksIGNvbG9yLXN0b3AoNTAlLCAjZjZmNmY2KSwgY29sb3Itc3RvcCg1MiUsICNlZWVlZWUpLCBjb2xvci1zdG9wKDEwMCUsICNmNGY0ZjQpKTtcbiAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCAjZmZmZmZmIDIwJSwgI2Y2ZjZmNiA1MCUsICNlZWVlZWUgNTIlLCAjZjRmNGY0IDEwMCUpO1xuICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudCh0b3AsICNmZmZmZmYgMjAlLCAjZjZmNmY2IDUwJSwgI2VlZWVlZSA1MiUsICNmNGY0ZjQgMTAwJSk7XG4gIGJhY2tncm91bmQ6IC1vLWxpbmVhci1ncmFkaWVudCh0b3AsICNmZmZmZmYgMjAlLCAjZjZmNmY2IDUwJSwgI2VlZWVlZSA1MiUsICNmNGY0ZjQgMTAwJSk7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0b3AsICNmZmZmZmYgMjAlLCAjZjZmNmY2IDUwJSwgI2VlZWVlZSA1MiUsICNmNGY0ZjQgMTAwJSk7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gIGJveC1zaGFkb3c6IDAgMCAzcHggd2hpdGUgaW5zZXQsIDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIGNvbG9yOiAjNDQ0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xufVxuLmNob3Nlbi1jb250YWluZXItc2luZ2xlIC5jaG9zZW4tZGVmYXVsdCB7XG4gIGNvbG9yOiAjOTk5O1xufVxuLmNob3Nlbi1jb250YWluZXItc2luZ2xlIC5jaG9zZW4tc2luZ2xlIHNwYW4ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbWFyZ2luLXJpZ2h0OiAyNnB4O1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5jaG9zZW4tY29udGFpbmVyLXNpbmdsZSAuY2hvc2VuLXNpbmdsZS13aXRoLWRlc2VsZWN0IHNwYW4ge1xuICBtYXJnaW4tcmlnaHQ6IDM4cHg7XG59XG4uY2hvc2VuLWNvbnRhaW5lci1zaW5nbGUgLmNob3Nlbi1zaW5nbGUgYWJiciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA2cHg7XG4gIHJpZ2h0OiAyNnB4O1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEycHg7XG4gIGhlaWdodDogMTJweDtcbiAgYmFja2dyb3VuZDogdXJsKCdjaG9zZW4tc3ByaXRlLnBuZycpIC00MnB4IDFweCBuby1yZXBlYXQ7XG4gIGZvbnQtc2l6ZTogMXB4O1xufVxuLmNob3Nlbi1jb250YWluZXItc2luZ2xlIC5jaG9zZW4tc2luZ2xlIGFiYnI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDJweCAtMTBweDtcbn1cbi5jaG9zZW4tY29udGFpbmVyLXNpbmdsZS5jaG9zZW4tZGlzYWJsZWQgLmNob3Nlbi1zaW5nbGUgYWJicjpob3ZlciB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC00MnB4IC0xMHB4O1xufVxuLmNob3Nlbi1jb250YWluZXItc2luZ2xlIC5jaG9zZW4tc2luZ2xlIGRpdiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxOHB4O1xuICBoZWlnaHQ6IDEwMCU7XG59XG4uY2hvc2VuLWNvbnRhaW5lci1zaW5nbGUgLmNob3Nlbi1zaW5nbGUgZGl2IGIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZDogdXJsKCdjaG9zZW4tc3ByaXRlLnBuZycpIG5vLXJlcGVhdCAwcHggMnB4O1xufVxuLmNob3Nlbi1jb250YWluZXItc2luZ2xlIC5jaG9zZW4tc2VhcmNoIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxMDEwO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDNweCA0cHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4uY2hvc2VuLWNvbnRhaW5lci1zaW5nbGUgLmNob3Nlbi1zZWFyY2ggaW5wdXRbdHlwZT1cInRleHRcIl0ge1xuICBtYXJnaW46IDFweCAwO1xuICBwYWRkaW5nOiA0cHggMjBweCA0cHggNXB4O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBvdXRsaW5lOiAwO1xuICBib3JkZXI6IDFweCBzb2xpZCAjYWFhO1xuICBiYWNrZ3JvdW5kOiB3aGl0ZSB1cmwoJ2Nob3Nlbi1zcHJpdGUucG5nJykgbm8tcmVwZWF0IDEwMCUgLTIwcHg7XG4gIGJhY2tncm91bmQ6IHVybCgnY2hvc2VuLXNwcml0ZS5wbmcnKSBuby1yZXBlYXQgMTAwJSAtMjBweDtcbiAgZm9udC1zaXplOiAxZW07XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuLmNob3Nlbi1jb250YWluZXItc2luZ2xlIC5jaG9zZW4tZHJvcCB7XG4gIG1hcmdpbi10b3A6IC0xcHg7XG4gIGJvcmRlci1yYWRpdXM6IDAgMCA0cHggNHB4O1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xufVxuLmNob3Nlbi1jb250YWluZXItc2luZ2xlLmNob3Nlbi1jb250YWluZXItc2luZ2xlLW5vc2VhcmNoIC5jaG9zZW4tc2VhcmNoIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtOTk5OXB4O1xufVxuXG4vKiBAZW5kICovXG4vKiBAZ3JvdXAgUmVzdWx0cyAqL1xuLmNob3Nlbi1jb250YWluZXIgLmNob3Nlbi1yZXN1bHRzIHtcbiAgY29sb3I6ICM0NDQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBtYXJnaW46IDAgNHB4IDRweCAwO1xuICBwYWRkaW5nOiAwIDAgMCA0cHg7XG4gIG1heC1oZWlnaHQ6IDI0MHB4O1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG59XG4uY2hvc2VuLWNvbnRhaW5lciAuY2hvc2VuLXJlc3VsdHMgbGkge1xuICBkaXNwbGF5OiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDVweCA2cHg7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGxpbmUtaGVpZ2h0OiAxNXB4O1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcbn1cbi5jaG9zZW4tY29udGFpbmVyIC5jaG9zZW4tcmVzdWx0cyBsaS5hY3RpdmUtcmVzdWx0IHtcbiAgZGlzcGxheTogbGlzdC1pdGVtO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uY2hvc2VuLWNvbnRhaW5lciAuY2hvc2VuLXJlc3VsdHMgbGkuZGlzYWJsZWQtcmVzdWx0IHtcbiAgZGlzcGxheTogbGlzdC1pdGVtO1xuICBjb2xvcjogI2NjYztcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuLmNob3Nlbi1jb250YWluZXIgLmNob3Nlbi1yZXN1bHRzIGxpLmhpZ2hsaWdodGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM4NzVkNztcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIDUwJSAwJSwgNTAlIDEwMCUsIGNvbG9yLXN0b3AoMjAlLCAjMzg3NWQ3KSwgY29sb3Itc3RvcCg5MCUsICMyYTYyYmMpKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoIzM4NzVkNyAyMCUsICMyYTYyYmMgOTAlKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW1vei1saW5lYXItZ3JhZGllbnQoIzM4NzVkNyAyMCUsICMyYTYyYmMgOTAlKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KCMzODc1ZDcgMjAlLCAjMmE2MmJjIDkwJSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgjMzg3NWQ3IDIwJSwgIzJhNjJiYyA5MCUpO1xuICBjb2xvcjogI2ZmZjtcbn1cbi5jaG9zZW4tY29udGFpbmVyIC5jaG9zZW4tcmVzdWx0cyBsaS5uby1yZXN1bHRzIHtcbiAgY29sb3I6ICM3Nzc7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTtcbiAgYmFja2dyb3VuZDogI2Y0ZjRmNDtcbn1cbi5jaG9zZW4tY29udGFpbmVyIC5jaG9zZW4tcmVzdWx0cyBsaS5ncm91cC1yZXN1bHQge1xuICBkaXNwbGF5OiBsaXN0LWl0ZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG4uY2hvc2VuLWNvbnRhaW5lciAuY2hvc2VuLXJlc3VsdHMgbGkuZ3JvdXAtb3B0aW9uIHtcbiAgcGFkZGluZy1sZWZ0OiAxNXB4O1xufVxuLmNob3Nlbi1jb250YWluZXIgLmNob3Nlbi1yZXN1bHRzIGxpIGVtIHtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuLyogQGVuZCAqL1xuLyogQGdyb3VwIE11bHRpIENob3NlbiAqL1xuLmNob3Nlbi1jb250YWluZXItbXVsdGkgLmNob3Nlbi1jaG9pY2VzIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDAgNXB4O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMSU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNhYWE7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCA1MCUgMCUsIDUwJSAxMDAlLCBjb2xvci1zdG9wKDElLCAjZWVlZWVlKSwgY29sb3Itc3RvcCgxNSUsICNmZmZmZmYpKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoI2VlZWVlZSAxJSwgI2ZmZmZmZiAxNSUpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtbW96LWxpbmVhci1ncmFkaWVudCgjZWVlZWVlIDElLCAjZmZmZmZmIDE1JSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudCgjZWVlZWVlIDElLCAjZmZmZmZmIDE1JSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgjZWVlZWVlIDElLCAjZmZmZmZmIDE1JSk7XG4gIGN1cnNvcjogdGV4dDtcbn1cbi5jaG9zZW4tY29udGFpbmVyLW11bHRpIC5jaG9zZW4tY2hvaWNlcyBsaSB7XG4gIGZsb2F0OiBsZWZ0O1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuLmNob3Nlbi1jb250YWluZXItbXVsdGkgLmNob3Nlbi1jaG9pY2VzIGxpLnNlYXJjaC1maWVsZCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5jaG9zZW4tY29udGFpbmVyLW11bHRpIC5jaG9zZW4tY2hvaWNlcyBsaS5zZWFyY2gtZmllbGQgaW5wdXRbdHlwZT1cInRleHRcIl0ge1xuICBtYXJnaW46IDFweCAwO1xuICBwYWRkaW5nOiAwO1xuICBoZWlnaHQ6IDI1cHg7XG4gIG91dGxpbmU6IDA7XG4gIGJvcmRlcjogMCAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiBub25lO1xuICBjb2xvcjogIzk5OTtcbiAgZm9udC1zaXplOiAxMDAlO1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cbi5jaG9zZW4tY29udGFpbmVyLW11bHRpIC5jaG9zZW4tY2hvaWNlcyBsaS5zZWFyY2gtY2hvaWNlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46IDNweCA1cHggM3B4IDA7XG4gIHBhZGRpbmc6IDNweCAyMHB4IDNweCA1cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNhYWE7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlZWVlO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgNTAlIDAlLCA1MCUgMTAwJSwgY29sb3Itc3RvcCgyMCUsICNmNGY0ZjQpLCBjb2xvci1zdG9wKDUwJSwgI2YwZjBmMCksIGNvbG9yLXN0b3AoNTIlLCAjZThlOGU4KSwgY29sb3Itc3RvcCgxMDAlLCAjZWVlZWVlKSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KCNmNGY0ZjQgMjAlLCAjZjBmMGYwIDUwJSwgI2U4ZThlOCA1MiUsICNlZWVlZWUgMTAwJSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC1tb3otbGluZWFyLWdyYWRpZW50KCNmNGY0ZjQgMjAlLCAjZjBmMGYwIDUwJSwgI2U4ZThlOCA1MiUsICNlZWVlZWUgMTAwJSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudCgjZjRmNGY0IDIwJSwgI2YwZjBmMCA1MCUsICNlOGU4ZTggNTIlLCAjZWVlZWVlIDEwMCUpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoI2Y0ZjRmNCAyMCUsICNmMGYwZjAgNTAlLCAjZThlOGU4IDUyJSwgI2VlZWVlZSAxMDAlKTtcbiAgYmFja2dyb3VuZC1zaXplOiAxMDAlIDE5cHg7XG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgYm94LXNoYWRvdzogMCAwIDJweCB3aGl0ZSBpbnNldCwgMCAxcHggMCByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICBjb2xvcjogIzMzMztcbiAgbGluZS1oZWlnaHQ6IDEzcHg7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cbi5jaG9zZW4tY29udGFpbmVyLW11bHRpIC5jaG9zZW4tY2hvaWNlcyBsaS5zZWFyY2gtY2hvaWNlIHNwYW4ge1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG59XG4uY2hvc2VuLWNvbnRhaW5lci1tdWx0aSAuY2hvc2VuLWNob2ljZXMgbGkuc2VhcmNoLWNob2ljZSAuc2VhcmNoLWNob2ljZS1jbG9zZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA0cHg7XG4gIHJpZ2h0OiAzcHg7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTJweDtcbiAgaGVpZ2h0OiAxMnB4O1xuICBiYWNrZ3JvdW5kOiB1cmwoJ2Nob3Nlbi1zcHJpdGUucG5nJykgLTQycHggMXB4IG5vLXJlcGVhdDtcbiAgZm9udC1zaXplOiAxcHg7XG59XG4uY2hvc2VuLWNvbnRhaW5lci1tdWx0aSAuY2hvc2VuLWNob2ljZXMgbGkuc2VhcmNoLWNob2ljZSAuc2VhcmNoLWNob2ljZS1jbG9zZTpob3ZlciB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC00MnB4IC0xMHB4O1xufVxuLmNob3Nlbi1jb250YWluZXItbXVsdGkgLmNob3Nlbi1jaG9pY2VzIGxpLnNlYXJjaC1jaG9pY2UtZGlzYWJsZWQge1xuICBwYWRkaW5nLXJpZ2h0OiA1cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNGU0ZTQ7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCA1MCUgMCUsIDUwJSAxMDAlLCBjb2xvci1zdG9wKDIwJSwgI2Y0ZjRmNCksIGNvbG9yLXN0b3AoNTAlLCAjZjBmMGYwKSwgY29sb3Itc3RvcCg1MiUsICNlOGU4ZTgpLCBjb2xvci1zdG9wKDEwMCUsICNlZWVlZWUpKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCAjZjRmNGY0IDIwJSwgI2YwZjBmMCA1MCUsICNlOGU4ZTggNTIlLCAjZWVlZWVlIDEwMCUpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtbW96LWxpbmVhci1ncmFkaWVudCh0b3AsICNmNGY0ZjQgMjAlLCAjZjBmMGYwIDUwJSwgI2U4ZThlOCA1MiUsICNlZWVlZWUgMTAwJSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudCh0b3AsICNmNGY0ZjQgMjAlLCAjZjBmMGYwIDUwJSwgI2U4ZThlOCA1MiUsICNlZWVlZWUgMTAwJSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0b3AsICNmNGY0ZjQgMjAlLCAjZjBmMGYwIDUwJSwgI2U4ZThlOCA1MiUsICNlZWVlZWUgMTAwJSk7XG4gIGNvbG9yOiAjNjY2O1xufVxuLmNob3Nlbi1jb250YWluZXItbXVsdGkgLmNob3Nlbi1jaG9pY2VzIGxpLnNlYXJjaC1jaG9pY2UtZm9jdXMge1xuICBiYWNrZ3JvdW5kOiAjZDRkNGQ0O1xufVxuLmNob3Nlbi1jb250YWluZXItbXVsdGkgLmNob3Nlbi1jaG9pY2VzIGxpLnNlYXJjaC1jaG9pY2UtZm9jdXMgLnNlYXJjaC1jaG9pY2UtY2xvc2Uge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDJweCAtMTBweDtcbn1cbi5jaG9zZW4tY29udGFpbmVyLW11bHRpIC5jaG9zZW4tcmVzdWx0cyB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cbi5jaG9zZW4tY29udGFpbmVyLW11bHRpIC5jaG9zZW4tZHJvcCAucmVzdWx0LXNlbGVjdGVkIHtcbiAgZGlzcGxheTogbGlzdC1pdGVtO1xuICBjb2xvcjogI2NjYztcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vKiBAZW5kICovXG4vKiBAZ3JvdXAgQWN0aXZlICAqL1xuLmNob3Nlbi1jb250YWluZXItYWN0aXZlIC5jaG9zZW4tc2luZ2xlIHtcbiAgYm9yZGVyOiAxcHggc29saWQgIzU4OTdmYjtcbiAgYm94LXNoYWRvdzogMCAwIDVweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG59XG4uY2hvc2VuLWNvbnRhaW5lci1hY3RpdmUuY2hvc2VuLXdpdGgtZHJvcCAuY2hvc2VuLXNpbmdsZSB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNhYWE7XG4gIC1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21yaWdodDogMDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gIC1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21sZWZ0OiAwO1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgNTAlIDAlLCA1MCUgMTAwJSwgY29sb3Itc3RvcCgyMCUsICNlZWVlZWUpLCBjb2xvci1zdG9wKDgwJSwgI2ZmZmZmZikpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCgjZWVlZWVlIDIwJSwgI2ZmZmZmZiA4MCUpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtbW96LWxpbmVhci1ncmFkaWVudCgjZWVlZWVlIDIwJSwgI2ZmZmZmZiA4MCUpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQoI2VlZWVlZSAyMCUsICNmZmZmZmYgODAlKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KCNlZWVlZWUgMjAlLCAjZmZmZmZmIDgwJSk7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDAgI2ZmZiBpbnNldDtcbn1cbi5jaG9zZW4tY29udGFpbmVyLWFjdGl2ZS5jaG9zZW4td2l0aC1kcm9wIC5jaG9zZW4tc2luZ2xlIGRpdiB7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cbi5jaG9zZW4tY29udGFpbmVyLWFjdGl2ZS5jaG9zZW4td2l0aC1kcm9wIC5jaG9zZW4tc2luZ2xlIGRpdiBiIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE4cHggMnB4O1xufVxuLmNob3Nlbi1jb250YWluZXItYWN0aXZlIC5jaG9zZW4tY2hvaWNlcyB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICM1ODk3ZmI7XG4gIGJveC1zaGFkb3c6IDAgMCA1cHggcmdiYSgwLCAwLCAwLCAwLjMpO1xufVxuLmNob3Nlbi1jb250YWluZXItYWN0aXZlIC5jaG9zZW4tY2hvaWNlcyBsaS5zZWFyY2gtZmllbGQgaW5wdXRbdHlwZT1cInRleHRcIl0ge1xuICBjb2xvcjogIzIyMiAhaW1wb3J0YW50O1xufVxuXG4vKiBAZW5kICovXG4vKiBAZ3JvdXAgRGlzYWJsZWQgU3VwcG9ydCAqL1xuLmNob3Nlbi1kaXNhYmxlZCB7XG4gIG9wYWNpdHk6IDAuNSAhaW1wb3J0YW50O1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG4uY2hvc2VuLWRpc2FibGVkIC5jaG9zZW4tc2luZ2xlIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuLmNob3Nlbi1kaXNhYmxlZCAuY2hvc2VuLWNob2ljZXMgLnNlYXJjaC1jaG9pY2UgLnNlYXJjaC1jaG9pY2UtY2xvc2Uge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi8qIEBlbmQgKi9cbi8qIEBncm91cCBSaWdodCB0byBMZWZ0ICovXG4uY2hvc2VuLXJ0bCB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuLmNob3Nlbi1ydGwgLmNob3Nlbi1zaW5nbGUge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgcGFkZGluZzogMCA4cHggMCAwO1xufVxuLmNob3Nlbi1ydGwgLmNob3Nlbi1zaW5nbGUgc3BhbiB7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IDI2cHg7XG4gIGRpcmVjdGlvbjogcnRsO1xufVxuLmNob3Nlbi1ydGwgLmNob3Nlbi1zaW5nbGUtd2l0aC1kZXNlbGVjdCBzcGFuIHtcbiAgbWFyZ2luLWxlZnQ6IDM4cHg7XG59XG4uY2hvc2VuLXJ0bCAuY2hvc2VuLXNpbmdsZSBkaXYge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogM3B4O1xufVxuLmNob3Nlbi1ydGwgLmNob3Nlbi1zaW5nbGUgYWJiciB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAyNnB4O1xufVxuLmNob3Nlbi1ydGwgLmNob3Nlbi1jaG9pY2VzIGxpIHtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuLmNob3Nlbi1ydGwgLmNob3Nlbi1jaG9pY2VzIGxpLnNlYXJjaC1maWVsZCBpbnB1dFt0eXBlPVwidGV4dFwiXSB7XG4gIGRpcmVjdGlvbjogcnRsO1xufVxuLmNob3Nlbi1ydGwgLmNob3Nlbi1jaG9pY2VzIGxpLnNlYXJjaC1jaG9pY2Uge1xuICBtYXJnaW46IDNweCA1cHggM3B4IDA7XG4gIHBhZGRpbmc6IDNweCA1cHggM3B4IDE5cHg7XG59XG4uY2hvc2VuLXJ0bCAuY2hvc2VuLWNob2ljZXMgbGkuc2VhcmNoLWNob2ljZSAuc2VhcmNoLWNob2ljZS1jbG9zZSB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiA0cHg7XG59XG4uY2hvc2VuLXJ0bC5jaG9zZW4tY29udGFpbmVyLXNpbmdsZS1ub3NlYXJjaCAuY2hvc2VuLXNlYXJjaCxcbi5jaG9zZW4tcnRsIC5jaG9zZW4tZHJvcCB7XG4gIGxlZnQ6IDk5OTlweDtcbn1cbi5jaG9zZW4tcnRsLmNob3Nlbi1jb250YWluZXItc2luZ2xlIC5jaG9zZW4tcmVzdWx0cyB7XG4gIG1hcmdpbjogMCAwIDRweCA0cHg7XG4gIHBhZGRpbmc6IDAgNHB4IDAgMDtcbn1cbi5jaG9zZW4tcnRsIC5jaG9zZW4tcmVzdWx0cyBsaS5ncm91cC1vcHRpb24ge1xuICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xuICBwYWRkaW5nLWxlZnQ6IDA7XG59XG4uY2hvc2VuLXJ0bC5jaG9zZW4tY29udGFpbmVyLWFjdGl2ZS5jaG9zZW4td2l0aC1kcm9wIC5jaG9zZW4tc2luZ2xlIGRpdiB7XG4gIGJvcmRlci1yaWdodDogbm9uZTtcbn1cbi5jaG9zZW4tcnRsIC5jaG9zZW4tc2VhcmNoIGlucHV0W3R5cGU9XCJ0ZXh0XCJdIHtcbiAgcGFkZGluZzogNHB4IDVweCA0cHggMjBweDtcbiAgYmFja2dyb3VuZDogd2hpdGUgdXJsKCdjaG9zZW4tc3ByaXRlLnBuZycpIG5vLXJlcGVhdCAtMzBweCAtMjBweDtcbiAgYmFja2dyb3VuZDogdXJsKCdjaG9zZW4tc3ByaXRlLnBuZycpIG5vLXJlcGVhdCAtMzBweCAtMjBweDtcbiAgZGlyZWN0aW9uOiBydGw7XG59XG4uY2hvc2VuLXJ0bC5jaG9zZW4tY29udGFpbmVyLXNpbmdsZSAuY2hvc2VuLXNpbmdsZSBkaXYgYiB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDZweCAycHg7XG59XG4uY2hvc2VuLXJ0bC5jaG9zZW4tY29udGFpbmVyLXNpbmdsZS5jaG9zZW4td2l0aC1kcm9wIC5jaG9zZW4tc2luZ2xlIGRpdiBiIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEycHggMnB4O1xufVxuXG4vKiBAZW5kICovXG4vKiBAZ3JvdXAgUmV0aW5hIGNvbXBhdGliaWxpdHkgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIG9ubHkgc2NyZWVuIGFuZCAobWluLXJlc29sdXRpb246IDE0NGRwaSkge1xuICAuY2hvc2VuLXJ0bCAuY2hvc2VuLXNlYXJjaCBpbnB1dFt0eXBlPVwidGV4dFwiXSxcbiAgLmNob3Nlbi1jb250YWluZXItc2luZ2xlIC5jaG9zZW4tc2luZ2xlIGFiYnIsXG4gIC5jaG9zZW4tY29udGFpbmVyLXNpbmdsZSAuY2hvc2VuLXNpbmdsZSBkaXYgYixcbiAgLmNob3Nlbi1jb250YWluZXItc2luZ2xlIC5jaG9zZW4tc2VhcmNoIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuICAuY2hvc2VuLWNvbnRhaW5lci1tdWx0aSAuY2hvc2VuLWNob2ljZXMgLnNlYXJjaC1jaG9pY2UgLnNlYXJjaC1jaG9pY2UtY2xvc2UsXG4gIC5jaG9zZW4tY29udGFpbmVyIC5jaG9zZW4tcmVzdWx0cy1zY3JvbGwtZG93biBzcGFuLFxuICAuY2hvc2VuLWNvbnRhaW5lciAuY2hvc2VuLXJlc3VsdHMtc2Nyb2xsLXVwIHNwYW4ge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnY2hvc2VuLXNwcml0ZUAyeC5wbmcnKSAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQtc2l6ZTogNTJweCAzN3B4ICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCAhaW1wb3J0YW50O1xuICB9XG59XG4vKiBAZW5kICovXG4iLCIvKiBcbiAqICBPd2wgQ2Fyb3VzZWwgLSBBbmltYXRlIFBsdWdpblxuICovXG4ub3dsLWNhcm91c2VsIC5hbmltYXRlZCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAxMDAwbXM7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMTAwMG1zO1xuICAtd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XG4gIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XG59XG4ub3dsLWNhcm91c2VsIC5vd2wtYW5pbWF0ZWQtaW4ge1xuICB6LWluZGV4OiAwO1xufVxuLm93bC1jYXJvdXNlbCAub3dsLWFuaW1hdGVkLW91dCB7XG4gIHotaW5kZXg6IDE7XG59XG4ub3dsLWNhcm91c2VsIC5mYWRlT3V0IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZU91dDtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXQ7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlT3V0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5Aa2V5ZnJhbWVzIGZhZGVPdXQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuLyogXG4gKiBcdE93bCBDYXJvdXNlbCAtIEF1dG8gSGVpZ2h0IFBsdWdpblxuICovXG4ub3dsLWhlaWdodCB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogaGVpZ2h0IDUwMG1zIGVhc2UtaW4tb3V0O1xuICAtbW96LXRyYW5zaXRpb246IGhlaWdodCA1MDBtcyBlYXNlLWluLW91dDtcbiAgLW1zLXRyYW5zaXRpb246IGhlaWdodCA1MDBtcyBlYXNlLWluLW91dDtcbiAgLW8tdHJhbnNpdGlvbjogaGVpZ2h0IDUwMG1zIGVhc2UtaW4tb3V0O1xuICB0cmFuc2l0aW9uOiBoZWlnaHQgNTAwbXMgZWFzZS1pbi1vdXQ7XG59XG5cbi8qIFxuICogIENvcmUgT3dsIENhcm91c2VsIENTUyBGaWxlXG4gKi9cbi5vd2wtY2Fyb3VzZWwge1xuICBkaXNwbGF5OiBub25lO1xuICB3aWR0aDogMTAwJTtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLyogcG9zaXRpb24gcmVsYXRpdmUgYW5kIHotaW5kZXggZml4IHdlYmtpdCByZW5kZXJpbmcgZm9udHMgaXNzdWUgKi9cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xufVxuLm93bC1jYXJvdXNlbCAub3dsLXN0YWdlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAtbXMtdG91Y2gtYWN0aW9uOiBwYW4tWTtcbn1cbi5vd2wtY2Fyb3VzZWwgLm93bC1zdGFnZTphZnRlciB7XG4gIGNvbnRlbnQ6IFwiLlwiO1xuICBkaXNwbGF5OiBibG9jaztcbiAgY2xlYXI6IGJvdGg7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIGhlaWdodDogMDtcbn1cbi5vd2wtY2Fyb3VzZWwgLm93bC1zdGFnZS1vdXRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgLyogZml4IGZvciBmbGFzaGluZyBiYWNrZ3JvdW5kICovXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwcHgsIDBweCwgMHB4KTtcbn1cbi5vd2wtY2Fyb3VzZWwgLm93bC1jb250cm9scyAub3dsLW5hdiAub3dsLXByZXYsXG4ub3dsLWNhcm91c2VsIC5vd2wtY29udHJvbHMgLm93bC1uYXYgLm93bC1uZXh0LFxuLm93bC1jYXJvdXNlbCAub3dsLWNvbnRyb2xzIC5vd2wtZG90IHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjdXJzb3I6IGhhbmQ7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1raHRtbC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cbi5vd2wtY2Fyb3VzZWwub3dsLWxvYWRlZCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLm93bC1jYXJvdXNlbC5vd2wtbG9hZGluZyB7XG4gIG9wYWNpdHk6IDA7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLm93bC1jYXJvdXNlbC5vd2wtaGlkZGVuIHtcbiAgb3BhY2l0eTogMDtcbn1cbi5vd2wtY2Fyb3VzZWwgLm93bC1yZWZyZXNoIC5vd2wtaXRlbSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4ub3dsLWNhcm91c2VsIC5vd2wtaXRlbSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWluLWhlaWdodDogMXB4O1xuICBmbG9hdDogbGVmdDtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cbi5vd2wtY2Fyb3VzZWwgLm93bC1pdGVtIGltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgLXdlYmtpdC10cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkO1xufVxuLm93bC1jYXJvdXNlbC5vd2wtdGV4dC1zZWxlY3Qtb24gLm93bC1pdGVtIHtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogYXV0bztcbiAgLW1vei11c2VyLXNlbGVjdDogYXV0bztcbiAgLW1zLXVzZXItc2VsZWN0OiBhdXRvO1xuICB1c2VyLXNlbGVjdDogYXV0bztcbn1cbi5vd2wtY2Fyb3VzZWwgLm93bC1ncmFiIHtcbiAgY3Vyc29yOiBtb3ZlO1xuICBjdXJzb3I6IC13ZWJraXQtZ3JhYjtcbiAgY3Vyc29yOiAtby1ncmFiO1xuICBjdXJzb3I6IC1tcy1ncmFiO1xuICBjdXJzb3I6IGdyYWI7XG59XG4ub3dsLWNhcm91c2VsLm93bC1ydGwge1xuICBkaXJlY3Rpb246IHJ0bDtcbn1cbi5vd2wtY2Fyb3VzZWwub3dsLXJ0bCAub3dsLWl0ZW0ge1xuICBmbG9hdDogcmlnaHQ7XG59XG5cbi8qIE5vIEpzICovXG4ubm8tanMgLm93bC1jYXJvdXNlbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKiBcbiAqIFx0T3dsIENhcm91c2VsIC0gTGF6eSBMb2FkIFBsdWdpblxuICovXG4ub3dsLWNhcm91c2VsIC5vd2wtaXRlbSAub3dsLWxhenkge1xuICBvcGFjaXR5OiAwO1xuICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgNDAwbXMgZWFzZTtcbiAgLW1vei10cmFuc2l0aW9uOiBvcGFjaXR5IDQwMG1zIGVhc2U7XG4gIC1tcy10cmFuc2l0aW9uOiBvcGFjaXR5IDQwMG1zIGVhc2U7XG4gIC1vLXRyYW5zaXRpb246IG9wYWNpdHkgNDAwbXMgZWFzZTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSA0MDBtcyBlYXNlO1xufVxuLm93bC1jYXJvdXNlbCAub3dsLWl0ZW0gaW1nIHtcbiAgdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcbn1cblxuLyogXG4gKiBcdE93bCBDYXJvdXNlbCAtIFZpZGVvIFBsdWdpblxuICovXG4ub3dsLWNhcm91c2VsIC5vd2wtdmlkZW8td3JhcHBlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kOiAjMDAwO1xufVxuLm93bC1jYXJvdXNlbCAub3dsLXZpZGVvLXBsYXktaWNvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaGVpZ2h0OiA4MHB4O1xuICB3aWR0aDogODBweDtcbiAgbGVmdDogNTAlO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC00MHB4O1xuICBtYXJnaW4tdG9wOiAtNDBweDtcbiAgYmFja2dyb3VuZDogdXJsKFwib3dsLnZpZGVvLnBsYXkucG5nXCIpIG5vLXJlcGVhdDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB6LWluZGV4OiAxO1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBzY2FsZSAxMDBtcyBlYXNlO1xuICAtbW96LXRyYW5zaXRpb246IHNjYWxlIDEwMG1zIGVhc2U7XG4gIC1tcy10cmFuc2l0aW9uOiBzY2FsZSAxMDBtcyBlYXNlO1xuICAtby10cmFuc2l0aW9uOiBzY2FsZSAxMDBtcyBlYXNlO1xuICB0cmFuc2l0aW9uOiBzY2FsZSAxMDBtcyBlYXNlO1xufVxuLm93bC1jYXJvdXNlbCAub3dsLXZpZGVvLXBsYXktaWNvbjpob3ZlciB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogc2NhbGUoMS4zLCAxLjMpO1xuICAtbW96LXRyYW5zaXRpb246IHNjYWxlKDEuMywgMS4zKTtcbiAgLW1zLXRyYW5zaXRpb246IHNjYWxlKDEuMywgMS4zKTtcbiAgLW8tdHJhbnNpdGlvbjogc2NhbGUoMS4zLCAxLjMpO1xuICB0cmFuc2l0aW9uOiBzY2FsZSgxLjMsIDEuMyk7XG59XG4ub3dsLWNhcm91c2VsIC5vd2wtdmlkZW8tcGxheWluZyAub3dsLXZpZGVvLXRuLFxuLm93bC1jYXJvdXNlbCAub3dsLXZpZGVvLXBsYXlpbmcgLm93bC12aWRlby1wbGF5LWljb24ge1xuICBkaXNwbGF5OiBub25lO1xufVxuLm93bC1jYXJvdXNlbCAub3dsLXZpZGVvLXRuIHtcbiAgb3BhY2l0eTogMDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAtd2Via2l0LWJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgLW1vei1iYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gIC1vLWJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgNDAwbXMgZWFzZTtcbiAgLW1vei10cmFuc2l0aW9uOiBvcGFjaXR5IDQwMG1zIGVhc2U7XG4gIC1tcy10cmFuc2l0aW9uOiBvcGFjaXR5IDQwMG1zIGVhc2U7XG4gIC1vLXRyYW5zaXRpb246IG9wYWNpdHkgNDAwbXMgZWFzZTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSA0MDBtcyBlYXNlO1xufVxuLm93bC1jYXJvdXNlbCAub3dsLXZpZGVvLWZyYW1lIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xufVxuIiwiLy8vIE1ha2VzIGFuIGVsZW1lbnQgYSBvdXRlciBjb250YWluZXIgYnkgY2VudHJpbmcgaXQgaW4gdGhlIHZpZXdwb3J0LCBjbGVhcmluZyBpdHMgZmxvYXRzLCBhbmQgc2V0dGluZyBpdHMgYG1heC13aWR0aGAuXG4vLy8gQWx0aG91Z2ggb3B0aW9uYWwsIHVzaW5nIGBvdXRlci1jb250YWluZXJgIGlzIHJlY29tbWVuZGVkLiBUaGUgbWl4aW4gY2FuIGJlIGNhbGxlZCBvbiBtb3JlIHRoYW4gb25lIGVsZW1lbnQgcGVyIHBhZ2UsIGFzIGxvbmcgYXMgdGhleSBhcmUgbm90IG5lc3RlZC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyICh1bml0KX0gJGxvY2FsLW1heC13aWR0aCAoJG1heC13aWR0aClcbi8vLyAgIE1heCB3aWR0aCB0byBiZSBhcHBsaWVkIHRvIHRoZSBlbGVtZW50LiBDYW4gYmUgYSBwZXJjZW50YWdlIG9yIGEgbWVhc3VyZS5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBvdXRlci1jb250YWluZXIoMTAwJSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgICp6b29tOiAxO1xuLy8vICAgICBtYXgtd2lkdGg6IDEwMCU7XG4vLy8gICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5lbGVtZW50OmJlZm9yZSwgLmVsZW1lbnQ6YWZ0ZXIge1xuLy8vICAgICBjb250ZW50OiBcIiBcIjtcbi8vLyAgICAgZGlzcGxheTogdGFibGU7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5lbGVtZW50OmFmdGVyIHtcbi8vLyAgICAgY2xlYXI6IGJvdGg7XG4vLy8gICB9XG5cbkBtaXhpbiBvdXRlci1jb250YWluZXIoJGxvY2FsLW1heC13aWR0aDogJG1heC13aWR0aCkge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgbWF4LXdpZHRoOiAkbG9jYWwtbWF4LXdpZHRoO1xuICBtYXJnaW46IHtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiBhdXRvO1xuICB9XG59XG4iLCJAaW1wb3J0ICduZWF0LWhlbHBlcnMnO1xuXG4kbWF4LXdpZHRoOiBlbSgxNDQwKSAhZ2xvYmFsO1xuJGdyaWQtY29sdW1uczogMSAhZ2xvYmFsO1xuJG1vYmlsZS1tZWRpdW06IG5ldy1icmVha3BvaW50KG1pbi13aWR0aCAzNzVweCAxMik7XG4kbW9iaWxlLWxhcmdlOiBuZXctYnJlYWtwb2ludChtaW4td2lkdGggNDgwcHggMTIpO1xuJG1vYmlsZS1tYXg6IG5ldy1icmVha3BvaW50KG1heC13aWR0aCA3NjdweCAxMik7XG4kdGFibGV0OiBuZXctYnJlYWtwb2ludChtaW4td2lkdGggNzY4cHggMTIpO1xuJHRhYmxldC1sYXJnZTogbmV3LWJyZWFrcG9pbnQobWluLXdpZHRoIDg4MHB4IDEyKTtcbiR0YWJsZXQtbWF4OiBuZXctYnJlYWtwb2ludChtYXgtd2lkdGggOTU5cHggMTIpO1xuJHNob3J0OiBuZXctYnJlYWtwb2ludChtYXgtaGVpZ2h0IDY0MHB4IDEyKTtcbiRkZXNrdG9wLXNob3J0OiBuZXctYnJlYWtwb2ludChtYXgtaGVpZ2h0IDg4MHB4IDEyKTtcbiRkZXNrdG9wLXNtYWxsOiBuZXctYnJlYWtwb2ludChtaW4td2lkdGggOTYwcHggMTIpO1xuJGRlc2t0b3A6IG5ldy1icmVha3BvaW50KG1pbi13aWR0aCAxMTAwcHggMTIpO1xuJGRlc2t0b3AtbWVkaXVtOiBuZXctYnJlYWtwb2ludChtaW4td2lkdGggMTI4MHB4LCAxMik7XG4kZGVza3RvcC1sYXJnZTogbmV3LWJyZWFrcG9pbnQobWluLXdpZHRoIDE0NDBweCwgMTIpO1xuXG4kdGFibGV0LW1heDogbmV3LWJyZWFrcG9pbnQobWF4LXdpZHRoIDk1OXB4IDEyKTtcbiIsIi8vIE1vZGVybiBtaWNybyBjbGVhcmZpeCBwcm92aWRlcyBhbiBlYXN5IHdheSB0byBjb250YWluIGZsb2F0cyB3aXRob3V0IGFkZGluZyBhZGRpdGlvbmFsIG1hcmt1cC5cbi8vXG4vLyBFeGFtcGxlIHVzYWdlOlxuLy9cbi8vICAgIC8vIENvbnRhaW4gYWxsIGZsb2F0cyB3aXRoaW4gLndyYXBwZXJcbi8vICAgIC53cmFwcGVyIHtcbi8vICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4vLyAgICAgIC5jb250ZW50LFxuLy8gICAgICAuc2lkZWJhciB7XG4vLyAgICAgICAgZmxvYXQgOiBsZWZ0O1xuLy8gICAgICB9XG4vLyAgICB9XG5cbkBtaXhpbiBjbGVhcmZpeCB7XG4gICY6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6XCJcIjtcbiAgICBkaXNwbGF5OnRhYmxlO1xuICAgIGNsZWFyOmJvdGg7XG4gIH1cbn1cblxuLy8gQWNrbm93bGVkZ2VtZW50c1xuLy8gQmVhdCAqdGhhdCogY2xlYXJmaXg6IFtUaGllcnJ5IEtvYmxlbnR6XShodHRwOi8vd3d3LmNzcy0xMDEub3JnL2FydGljbGVzL2NsZWFyZml4L2xhdGVzdC1uZXctY2xlYXJmaXgtc28tZmFyLnBocClcbiIsIlxuJG1heC1jb250ZW50LXdpZHRoOiBlbSgxMjAwKSAhZ2xvYmFsO1xuJG1vYmlsZS1oZWFkZXItaGVpZ2h0OiA0O1xuJHBpbm5lZC1mb290ZXItaGVpZ2h0OiA0LjFyZW0gIWdsb2JhbDsiLCIuZ3JpZC1zaGFyZS1idG57XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgei1pbmRleDogMTtcbn0iLCIuY29udGVudC1pZnJhbWV7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kOiAkd2hpdGUtZ3JleTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBAaW5jbHVkZSByZW0tZmFsbGJhY2soaGVpZ2h0LCA1MCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkICR3aGl0ZS1ncmV5O1xuICBAaW5jbHVkZSByZW0tZmFsbGJhY2sobWFyZ2luLXRvcCwgMTApO1xuXG4gIGlmcmFtZXtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cblxuICAmOmJlZm9yZXtcbiAgICBjb250ZW50OiAnaWZyYW1lIGNvbnRlbnQgaGVyZSc7XG4gICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSk7XG4gICAgbGVmdDogNTAlO1xuICAgIG1hcmdpbjogYXV0bztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHRvcDogNTAlO1xuICB9XG59XG5cbi5jb250ZW50LXZpZGVvIHtcbiAgaGVpZ2h0OiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nLWJvdHRvbTogNTYuMjUlO1xuICAvLyBGb3IgcmF0aW8gMTY6OS4gNzUlIGlmIHJhdGlvIGlzIDQ6M1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgZW1iZWQsXG4gIG9iamVjdCxcbiAgaWZyYW1lIHtcbiAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMHB4IG51bGwgbnVsbCAwcHgpO1xuICAgIEBpbmNsdWRlIHNpemUoMTAwJSk7XG4gIH1cbn1cblxuIiwiLnByb21vLXByb2R1Y3QtdG91dHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBub25lO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCR0YWJsZXQpIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuICBcbiAgLnNlY3Rpb25fX2lubmVyLXJpZ2h0e1xuICAgIGNvbG9yOiAkd2hpdGU7XG4gIH1cblxuICAuc2VjdGlvbl9fZGVzY3JpcHRpb257XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC5zZWN0aW9uX19idXR0b25zX19jb250YWluZXJ7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIH1cblxuICAuc2VjdGlvbl9fYnV0dG9uc3tcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKG1hcmdpbi10b3AsIDUpO1xuICB9XG5cbiAgLmJ1dHRvbi5zdGFuZGFyZC1ibGFja3tcbiAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2sod2lkdGgsIDIwKTtcbiAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2sobWFyZ2luLXJpZ2h0LCAyKTtcbiAgICBmbG9hdDogbGVmdDtcbiAgfVxufSIsIi5zdGFuZGFyZC12aWRlb3tcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCUgIWltcG9ydGFudDtcbiAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwsIDAuMzVzLCBlYXNlKTtcbiAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKGhlaWdodCwgMjApO1xuXG4gIC5jb250ZW50LXZpZGVve1xuICAgIHBhZGRpbmc6IDA7XG4gICAgQGluY2x1ZGUgb3BhY2l0eSgwKTtcbiAgfVxuXG4gIC5jaXJjbGUtLWNsb3Nle1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAyO1xuICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayh0b3AsIDIpO1xuICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhyaWdodCwgMik7XG4gIH1cblxuICAudmlkZW8tcGxheS1idXR0b257XG4gICAgQGluY2x1ZGUgc3ByaXRlKCRwbGF5LWJ1dHRvbik7XG5cbiAgICAmOmhvdmVye1xuICAgICAgQGluY2x1ZGUgc3ByaXRlKCRwbGF5LWJ1dHRvbi1ob3Zlcik7XG4gICAgfVxuICB9XG5cbiAgaWZyYW1le1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAxO1xuICB9XG5cblxuICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcC1zbWFsbCkge1xuICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhoZWlnaHQsIDMwKTtcblxuICAgICYuZXhwYW5kZWR7XG4gICAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2soaGVpZ2h0LCA0Myk7XG5cbiAgICAgIC5jb250ZW50LXZpZGVve1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBAaW5jbHVkZSBvcGFjaXR5KDEpO1xuICAgICAgfVxuICAgICAgLnZpZGVvLXBsYXktYnV0dG9ue1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIi8qXG5TQ1NTIHZhcmlhYmxlcyBhcmUgaW5mb3JtYXRpb24gYWJvdXQgaWNvbidzIGNvbXBpbGVkIHN0YXRlLCBzdG9yZWQgdW5kZXIgaXRzIG9yaWdpbmFsIGZpbGUgbmFtZVxuXG4uaWNvbi1ob21lIHtcbiAgd2lkdGg6ICRpY29uLWhvbWUtd2lkdGg7XG59XG5cblRoZSBsYXJnZSBhcnJheS1saWtlIHZhcmlhYmxlcyBjb250YWluIGFsbCBpbmZvcm1hdGlvbiBhYm91dCBhIHNpbmdsZSBpY29uXG4kaWNvbi1ob21lOiB4IHkgb2Zmc2V0X3ggb2Zmc2V0X3kgd2lkdGggaGVpZ2h0IHRvdGFsX3dpZHRoIHRvdGFsX2hlaWdodCBpbWFnZV9wYXRoO1xuKi9cbiRkdW1teS14OiAwcHg7XG4kZHVtbXkteTogMHB4O1xuJGR1bW15LW9mZnNldC14OiAwcHg7XG4kZHVtbXktb2Zmc2V0LXk6IDBweDtcbiRkdW1teS13aWR0aDogMXB4O1xuJGR1bW15LWhlaWdodDogMXB4O1xuJGR1bW15LXRvdGFsLXdpZHRoOiAyMDlweDtcbiRkdW1teS10b3RhbC1oZWlnaHQ6IDEwMHB4O1xuJGR1bW15LWltYWdlOiAnL2Fzc2V0cy9mcm9udGVuZC9pbWcvc3ByaXRlLnBuZyc7XG4kZHVtbXk6IDBweCAwcHggMHB4IDBweCAxcHggMXB4IDIwOXB4IDEwMHB4ICcvYXNzZXRzL2Zyb250ZW5kL2ltZy9zcHJpdGUucG5nJztcbiRwbGF5LWJ1dHRvbi1ob3Zlci14OiA1cHg7XG4kcGxheS1idXR0b24taG92ZXIteTogMHB4O1xuJHBsYXktYnV0dG9uLWhvdmVyLW9mZnNldC14OiAtNXB4O1xuJHBsYXktYnV0dG9uLWhvdmVyLW9mZnNldC15OiAwcHg7XG4kcGxheS1idXR0b24taG92ZXItd2lkdGg6IDEwMHB4O1xuJHBsYXktYnV0dG9uLWhvdmVyLWhlaWdodDogMTAwcHg7XG4kcGxheS1idXR0b24taG92ZXItdG90YWwtd2lkdGg6IDIwOXB4O1xuJHBsYXktYnV0dG9uLWhvdmVyLXRvdGFsLWhlaWdodDogMTAwcHg7XG4kcGxheS1idXR0b24taG92ZXItaW1hZ2U6ICcvYXNzZXRzL2Zyb250ZW5kL2ltZy9zcHJpdGUucG5nJztcbiRwbGF5LWJ1dHRvbi1ob3ZlcjogNXB4IDBweCAtNXB4IDBweCAxMDBweCAxMDBweCAyMDlweCAxMDBweCAnL2Fzc2V0cy9mcm9udGVuZC9pbWcvc3ByaXRlLnBuZyc7XG4kcGxheS1idXR0b24teDogMTA5cHg7XG4kcGxheS1idXR0b24teTogMHB4O1xuJHBsYXktYnV0dG9uLW9mZnNldC14OiAtMTA5cHg7XG4kcGxheS1idXR0b24tb2Zmc2V0LXk6IDBweDtcbiRwbGF5LWJ1dHRvbi13aWR0aDogMTAwcHg7XG4kcGxheS1idXR0b24taGVpZ2h0OiAxMDBweDtcbiRwbGF5LWJ1dHRvbi10b3RhbC13aWR0aDogMjA5cHg7XG4kcGxheS1idXR0b24tdG90YWwtaGVpZ2h0OiAxMDBweDtcbiRwbGF5LWJ1dHRvbi1pbWFnZTogJy9hc3NldHMvZnJvbnRlbmQvaW1nL3Nwcml0ZS5wbmcnO1xuJHBsYXktYnV0dG9uOiAxMDlweCAwcHggLTEwOXB4IDBweCAxMDBweCAxMDBweCAyMDlweCAxMDBweCAnL2Fzc2V0cy9mcm9udGVuZC9pbWcvc3ByaXRlLnBuZyc7XG5cbi8qXG5UaGUgcHJvdmlkZWQgbWl4aW5zIGFyZSBpbnRlbmRlZCB0byBiZSB1c2VkIHdpdGggdGhlIGFycmF5LWxpa2UgdmFyaWFibGVzXG5cbi5pY29uLWhvbWUge1xuICBAaW5jbHVkZSBzcHJpdGUtd2lkdGgoJGljb24taG9tZSk7XG59XG5cbi5pY29uLWVtYWlsIHtcbiAgQGluY2x1ZGUgc3ByaXRlKCRpY29uLWVtYWlsKTtcbn1cbiovXG5AbWl4aW4gc3ByaXRlLXdpZHRoKCRzcHJpdGUpIHtcbiAgd2lkdGg6IG50aCgkc3ByaXRlLCA1KTtcbn1cblxuQG1peGluIHNwcml0ZS1oZWlnaHQoJHNwcml0ZSkge1xuICBoZWlnaHQ6IG50aCgkc3ByaXRlLCA2KTtcbn1cblxuQG1peGluIHNwcml0ZS1wb3NpdGlvbigkc3ByaXRlKSB7XG4gICRzcHJpdGUtb2Zmc2V0LXg6IG50aCgkc3ByaXRlLCAzKTtcbiAgJHNwcml0ZS1vZmZzZXQteTogbnRoKCRzcHJpdGUsIDQpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAkc3ByaXRlLW9mZnNldC14ICAkc3ByaXRlLW9mZnNldC15O1xufVxuXG5AbWl4aW4gc3ByaXRlLWltYWdlKCRzcHJpdGUpIHtcbiAgJHNwcml0ZS1pbWFnZTogbnRoKCRzcHJpdGUsIDkpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoI3skc3ByaXRlLWltYWdlfSk7XG59XG5cbkBtaXhpbiBzcHJpdGUoJHNwcml0ZSkge1xuICBAaW5jbHVkZSBzcHJpdGUtaW1hZ2UoJHNwcml0ZSk7XG4gIEBpbmNsdWRlIHNwcml0ZS1wb3NpdGlvbigkc3ByaXRlKTtcbiAgQGluY2x1ZGUgc3ByaXRlLXdpZHRoKCRzcHJpdGUpO1xuICBAaW5jbHVkZSBzcHJpdGUtaGVpZ2h0KCRzcHJpdGUpO1xufVxuIiwiLy8gQ1NTMyBGbGV4aWJsZSBCb3ggTW9kZWwgYW5kIHByb3BlcnR5IGRlZmF1bHRzXG5cbi8vIEN1c3RvbSBzaG9ydGhhbmQgbm90YXRpb24gZm9yIGZsZXhib3hcbkBtaXhpbiBib3goJG9yaWVudDogaW5saW5lLWF4aXMsICRwYWNrOiBzdGFydCwgJGFsaWduOiBzdHJldGNoKSB7XG4gIEBpbmNsdWRlIGRpc3BsYXktYm94O1xuICBAaW5jbHVkZSBib3gtb3JpZW50KCRvcmllbnQpO1xuICBAaW5jbHVkZSBib3gtcGFjaygkcGFjayk7XG4gIEBpbmNsdWRlIGJveC1hbGlnbigkYWxpZ24pO1xufVxuXG5AbWl4aW4gZGlzcGxheS1ib3gge1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgZGlzcGxheTogLW1vei1ib3g7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94OyAvLyBJRSAxMFxuICBkaXNwbGF5OiBib3g7XG59XG5cbkBtaXhpbiBib3gtb3JpZW50KCRvcmllbnQ6IGlubGluZS1heGlzKSB7XG4vLyBob3Jpem9udGFsfHZlcnRpY2FsfGlubGluZS1heGlzfGJsb2NrLWF4aXN8aW5oZXJpdFxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JpZW50LCAkb3JpZW50LCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYm94LXBhY2soJHBhY2s6IHN0YXJ0KSB7XG4vLyBzdGFydHxlbmR8Y2VudGVyfGp1c3RpZnlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LXBhY2ssICRwYWNrLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1wYWNrOiAkcGFjazsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1hbGlnbigkYWxpZ246IHN0cmV0Y2gpIHtcbi8vIHN0YXJ0fGVuZHxjZW50ZXJ8YmFzZWxpbmV8c3RyZXRjaFxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtYWxpZ24sICRhbGlnbiwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtYWxpZ246ICRhbGlnbjsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1kaXJlY3Rpb24oJGRpcmVjdGlvbjogbm9ybWFsKSB7XG4vLyBub3JtYWx8cmV2ZXJzZXxpbmhlcml0XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1kaXJlY3Rpb24sICRkaXJlY3Rpb24sIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LWRpcmVjdGlvbjogJGRpcmVjdGlvbjsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1saW5lcygkbGluZXM6IHNpbmdsZSkge1xuLy8gc2luZ2xlfG11bHRpcGxlXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1saW5lcywgJGxpbmVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYm94LW9yZGluYWwtZ3JvdXAoJGludDogMSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JkaW5hbC1ncm91cCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtb3JkZXI6ICRpbnQ7IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtZmxleCgkdmFsdWU6IDAuMCkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZmxleCwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleDogJHZhbHVlOyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWZsZXgtZ3JvdXAoJGludDogMSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZmxleC1ncm91cCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuLy8gQ1NTMyBGbGV4aWJsZSBCb3ggTW9kZWwgYW5kIHByb3BlcnR5IGRlZmF1bHRzXG4vLyBVbmlmaWVkIGF0dHJpYnV0ZXMgZm9yIDIwMDksIDIwMTEsIGFuZCAyMDEyIGZsYXZvdXJzLlxuXG4vLyAyMDA5IC0gZGlzcGxheSAoYm94IHwgaW5saW5lLWJveClcbi8vIDIwMTEgLSBkaXNwbGF5IChmbGV4Ym94IHwgaW5saW5lLWZsZXhib3gpXG4vLyAyMDEyIC0gZGlzcGxheSAoZmxleCB8IGlubGluZS1mbGV4KVxuQG1peGluIGRpc3BsYXkoJHZhbHVlKSB7XG4vLyAgZmxleCB8IGlubGluZS1mbGV4XG4gICAgQGlmICR2YWx1ZSA9PSBcImZsZXhcIiB7XG4gICAgICAgIC8vIDIwMDlcbiAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgICAgIGRpc3BsYXk6IC1tb3otYm94O1xuICAgICAgICBkaXNwbGF5OiBib3g7XG5cbiAgICAgICAgLy8gMjAxMlxuICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gICAgICAgIGRpc3BsYXk6IC1tb3otZmxleDtcbiAgICAgICAgZGlzcGxheTogLW1zLWZsZXhib3g7IC8vIDIwMTEgKElFIDEwKVxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cblxuICAgIEBlbHNlaWYgJHZhbHVlID09IFwiaW5saW5lLWZsZXhcIiB7XG4gICAgICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWJveDtcbiAgICAgICAgZGlzcGxheTogLW1vei1pbmxpbmUtYm94O1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYm94O1xuXG4gICAgICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWZsZXg7XG4gICAgICAgIGRpc3BsYXk6IC1tb3otaW5saW5lLWZsZXg7XG4gICAgICAgIGRpc3BsYXk6IC1tcy1pbmxpbmUtZmxleGJveDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgfVxuXG4gICAgQGVsc2Uge1xuICAgICAgICBkaXNwbGF5OiAkdmFsdWU7XG4gICAgfVxufVxuXG4vLyAyMDA5IC0gYm94LWZsZXggKGludGVnZXIpXG4vLyAyMDExIC0gZmxleCAoZGVjaW1hbCB8IHdpZHRoIGRlY2ltYWwpXG4vLyAyMDEyIC0gZmxleCAoaW50ZWdlciBpbnRlZ2VyIHdpZHRoKVxuQG1peGluIGZsZXgoJHZhbHVlKSB7XG5cbiAgICAvLyBHcmFiIGZsZXgtZ3JvdyBmb3Igb2xkZXIgYnJvd3NlcnMuXG4gICAgJGZsZXgtZ3JvdzogbnRoKCR2YWx1ZSwgMSk7XG5cbiAgICAvLyAyMDA5XG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWZsZXgsICRmbGV4LWdyb3csIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgICAvLyAyMDExIChJRSAxMCksIDIwMTJcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XG59XG5cbi8vIDIwMDkgLSBib3gtb3JpZW50ICggaG9yaXpvbnRhbCB8IHZlcnRpY2FsIHwgaW5saW5lLWF4aXMgfCBibG9jay1heGlzKVxuLy8gICAgICAtIGJveC1kaXJlY3Rpb24gKG5vcm1hbCB8IHJldmVyc2UpICAgICAgXG4vLyAyMDExIC0gZmxleC1kaXJlY3Rpb24gKHJvdyB8IHJvdy1yZXZlcnNlIHwgY29sdW1uIHwgY29sdW1uLXJldmVyc2UpXG4vLyAyMDEyIC0gZmxleC1kaXJlY3Rpb24gKHJvdyB8IHJvdy1yZXZlcnNlIHwgY29sdW1uIHwgY29sdW1uLXJldmVyc2UpXG5AbWl4aW4gZmxleC1kaXJlY3Rpb24oJHZhbHVlOiByb3cpIHtcblxuICAgIC8vIEFsdCB2YWx1ZXMuXG4gICAgJHZhbHVlLTIwMDk6ICR2YWx1ZTtcbiAgICAkdmFsdWUtMjAxMTogJHZhbHVlO1xuICAgICRkaXJlY3Rpb246IFwibm9ybWFsXCI7XG5cbiAgICBAaWYgJHZhbHVlID09IHJvdyB7XG4gICAgICAgICR2YWx1ZS0yMDA5OiBob3Jpem9udGFsO1xuICAgIH1cblxuICAgIEBlbHNlaWYgJHZhbHVlID09IFwicm93LXJldmVyc2VcIiB7XG4gICAgICAgICR2YWx1ZS0yMDA5OiBob3Jpem9udGFsO1xuICAgICAgICAkZGlyZWN0aW9uOiByZXZlcnNlO1xuICAgIH1cblxuICAgIEBlbHNlaWYgJHZhbHVlID09IGNvbHVtbiB7XG4gICAgICAgICR2YWx1ZS0yMDA5OiB2ZXJ0aWNhbDtcbiAgICB9XG5cbiAgICBAZWxzZWlmICR2YWx1ZSA9PSBcImNvbHVtbi1yZXZlcnNlXCIge1xuICAgICAgICAkdmFsdWUtMjAwOTogdmVydGljYWw7XG4gICAgICAgICRkaXJlY3Rpb246IHJldmVyc2U7XG4gICAgfVxuXG4gICAgLy8gMjAwOVxuICAgIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmllbnQsICR2YWx1ZS0yMDA5LCB3ZWJraXQgbW96IHNwZWMpO1xuICAgIEBpZiAkZGlyZWN0aW9uID09IFwicmV2ZXJzZVwiIHtcbiAgICAgICAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWRpcmVjdGlvbiwgJGRpcmVjdGlvbiwgd2Via2l0IG1veiBzcGVjKTtcbiAgICB9XG5cbiAgICAvLyAyMDEyXG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1kaXJlY3Rpb24sICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAgIC8vIDIwMTEgKElFIDEwKVxuICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xufVxuXG4vLyAyMDA5IC0gYm94LWxpbmVzIChzaW5nbGUgfCBtdWx0aXBsZSlcbi8vIDIwMTEgLSBmbGV4LXdyYXAgKG5vd3JhcCB8IHdyYXAgfCB3cmFwLXJldmVyc2UpXG4vLyAyMDEyIC0gZmxleC13cmFwIChub3dyYXAgfCB3cmFwIHwgd3JhcC1yZXZlcnNlKVxuQG1peGluIGZsZXgtd3JhcCgkdmFsdWU6IG5vd3JhcCkge1xuXG4gICAgLy8gQWx0IHZhbHVlcy5cbiAgICAkYWx0LXZhbHVlOiAkdmFsdWU7XG4gICAgQGlmICR2YWx1ZSA9PSBub3dyYXAge1xuICAgICAgICAkYWx0LXZhbHVlOiBzaW5nbGU7XG4gICAgfVxuXG4gICAgQGVsc2VpZiAkdmFsdWUgPT0gd3JhcCB7XG4gICAgICAgICRhbHQtdmFsdWU6IG11bHRpcGxlO1xuICAgIH1cblxuICAgIEBlbHNlaWYgJHZhbHVlID09IFwid3JhcC1yZXZlcnNlXCIge1xuICAgICAgICAkYWx0LXZhbHVlOiBtdWx0aXBsZTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBwcmVmaXhlcihib3gtbGluZXMsICRhbHQtdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC13cmFwLCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XG59XG5cbi8vIDIwMDkgLSBUT0RPOiBwYXJzZSB2YWx1ZXMgaW50byBmbGV4LWRpcmVjdGlvbi9mbGV4LXdyYXBcbi8vIDIwMTEgLSBUT0RPOiBwYXJzZSB2YWx1ZXMgaW50byBmbGV4LWRpcmVjdGlvbi9mbGV4LXdyYXBcbi8vIDIwMTIgLSBmbGV4LWZsb3cgKGZsZXgtZGlyZWN0aW9uIHx8IGZsZXgtd3JhcClcbkBtaXhpbiBmbGV4LWZsb3coJHZhbHVlKSB7XG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1mbG93LCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbi8vIDIwMDkgLSBib3gtb3JkaW5hbC1ncm91cCAoaW50ZWdlcilcbi8vIDIwMTEgLSBmbGV4LW9yZGVyIChpbnRlZ2VyKVxuLy8gMjAxMiAtIG9yZGVyIChpbnRlZ2VyKVxuQG1peGluIG9yZGVyKCRpbnQ6IDApIHtcbiAgICAvLyAyMDA5XG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yZGluYWwtZ3JvdXAsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgICAvLyAyMDEyXG4gICAgQGluY2x1ZGUgcHJlZml4ZXIob3JkZXIsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgICAvLyAyMDExIChJRSAxMClcbiAgICAtbXMtZmxleC1vcmRlcjogJGludDtcbn1cblxuLy8gMjAxMiAtIGZsZXgtZ3JvdyAobnVtYmVyKVxuQG1peGluIGZsZXgtZ3JvdygkbnVtYmVyOiAwKSB7XG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1ncm93LCAkbnVtYmVyLCB3ZWJraXQgbW96IHNwZWMpO1xuICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAkbnVtYmVyO1xufVxuXG4vLyAyMDEyIC0gZmxleC1zaHJpbmsgKG51bWJlcilcbkBtaXhpbiBmbGV4LXNocmluaygkbnVtYmVyOiAxKSB7XG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1zaHJpbmssICRudW1iZXIsIHdlYmtpdCBtb3ogc3BlYyk7XG4gICAgLW1zLWZsZXgtbmVnYXRpdmU6ICRudW1iZXI7XG59XG5cbi8vIDIwMTIgLSBmbGV4LWJhc2lzIChudW1iZXIpXG5AbWl4aW4gZmxleC1iYXNpcygkd2lkdGg6IGF1dG8pIHtcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWJhc2lzLCAkd2lkdGgsIHdlYmtpdCBtb3ogc3BlYyk7XG4gICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6ICR3aWR0aDtcbn1cblxuLy8gMjAwOSAtIGJveC1wYWNrIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGp1c3RpZnkpXG4vLyAyMDExIC0gZmxleC1wYWNrIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGp1c3RpZnkpXG4vLyAyMDEyIC0ganVzdGlmeS1jb250ZW50IChmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBzcGFjZS1iZXR3ZWVuIHwgc3BhY2UtYXJvdW5kKVxuQG1peGluIGp1c3RpZnktY29udGVudCAoJHZhbHVlOiBmbGV4LXN0YXJ0KSB7XG5cbiAgICAvLyBBbHQgdmFsdWVzLlxuICAgICRhbHQtdmFsdWU6ICR2YWx1ZTtcbiAgICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcbiAgICAgICAgJGFsdC12YWx1ZTogc3RhcnQ7XG4gICAgfVxuXG4gICAgQGVsc2VpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAgICAgJGFsdC12YWx1ZTogZW5kO1xuICAgIH1cblxuICAgIEBlbHNlaWYgJHZhbHVlID09IFwic3BhY2UtYmV0d2VlblwiIHtcbiAgICAgICAgJGFsdC12YWx1ZToganVzdGlmeTtcbiAgICB9XG5cbiAgICBAZWxzZWlmICR2YWx1ZSA9PSBcInNwYWNlLWFyb3VuZFwiIHtcbiAgICAgICAgJGFsdC12YWx1ZTogY2VudGVyO1xuICAgIH1cblxuICAgIC8vIDIwMDlcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihib3gtcGFjaywgJGFsdC12YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAgIC8vIDIwMTJcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihqdXN0aWZ5LWNvbnRlbnQsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xuXG4gICAgLy8gMjAxMSAoSUUgMTApXG4gICAgLW1zLWZsZXgtcGFjazogJGFsdC12YWx1ZTtcbn1cblxuLy8gMjAwOSAtIGJveC1hbGlnbiAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG4vLyAyMDExIC0gZmxleC1hbGlnbiAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG4vLyAyMDEyIC0gYWxpZ24taXRlbXMgKGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbkBtaXhpbiBhbGlnbi1pdGVtcygkdmFsdWU6IHN0cmV0Y2gpIHtcblxuICAgICRhbHQtdmFsdWU6ICR2YWx1ZTtcblxuICAgIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xuICAgICAgICAkYWx0LXZhbHVlOiBzdGFydDtcbiAgICB9ICAgIFxuXG4gICAgQGVsc2VpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAgICAgJGFsdC12YWx1ZTogZW5kO1xuICAgIH1cblxuICAgIC8vIDIwMDlcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihib3gtYWxpZ24sICRhbHQtdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgICAvLyAyMDEyXG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoYWxpZ24taXRlbXMsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xuICAgIFxuICAgIC8vIDIwMTEgKElFIDEwKVxuICAgIC1tcy1mbGV4LWFsaWduOiAkYWx0LXZhbHVlOyAgICBcbn1cblxuLy8gMjAxMSAtIGZsZXgtaXRlbS1hbGlnbiAoYXV0byB8IHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuLy8gMjAxMiAtIGFsaWduLXNlbGYgKGF1dG8gfCBmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG5AbWl4aW4gYWxpZ24tc2VsZigkdmFsdWU6IGF1dG8pIHtcblxuICAgICR2YWx1ZS0yMDExOiAkdmFsdWU7XG4gICAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XG4gICAgICAgICR2YWx1ZS0yMDExOiBzdGFydDtcbiAgICB9ICAgIFxuXG4gICAgQGVsc2VpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAgICAgJHZhbHVlLTIwMTE6IGVuZDtcbiAgICB9XG5cbiAgICAvLyAyMDEyXG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoYWxpZ24tc2VsZiwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gICAgLy8gMjAxMSAoSUUgMTApXG4gICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogJHZhbHVlLTIwMTE7XG59XG5cbi8vIDIwMTEgLSBmbGV4LWxpbmUtcGFjayAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBqdXN0aWZ5IHwgZGlzdHJpYnV0ZSB8IHN0cmV0Y2gpXG4vLyAyMDEyIC0gYWxpZ24tY29udGVudCAoZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgc3BhY2UtYmV0d2VlbiB8IHNwYWNlLWFyb3VuZCB8IHN0cmV0Y2gpXG5AbWl4aW4gYWxpZ24tY29udGVudCgkdmFsdWU6IHN0cmV0Y2gpIHtcblxuICAgICR2YWx1ZS0yMDExOiAkdmFsdWU7XG4gICAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XG4gICAgICAgICR2YWx1ZS0yMDExOiBzdGFydDtcbiAgICB9ICAgIFxuXG4gICAgQGVsc2VpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAgICAgJHZhbHVlLTIwMTE6IGVuZDtcbiAgICB9XG5cbiAgICBAZWxzZWlmICR2YWx1ZSA9PSBcInNwYWNlLWJldHdlZW5cIiB7XG4gICAgICAgICR2YWx1ZS0yMDExOiBqdXN0aWZ5O1xuICAgIH1cblxuICAgIEBlbHNlaWYgJHZhbHVlID09IFwic3BhY2UtYXJvdW5kXCIge1xuICAgICAgICAkdmFsdWUtMjAxMTogZGlzdHJpYnV0ZTtcbiAgICB9XG5cbiAgICAvLyAyMDEyXG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoYWxpZ24tY29udGVudCwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gICAgLy8gMjAxMSAoSUUgMTApXG4gICAgLW1zLWZsZXgtbGluZS1wYWNrOiAkdmFsdWUtMjAxMTtcbn1cblxuIiwiLmdvLXRvcFtkYXRhLW1vZHVsZT1cImJhY2stdG8tdG9wXCJdIHtcbiAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDAgMzVweCBudWxsIG51bGwpO1xuICBkaXNwbGF5OiBub25lO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCR0YWJsZXQpIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gICYuZml4ZWQge1xuICAgIEBpbmNsdWRlIHBvc2l0aW9uKGZpeGVkLCBhdXRvIDM1cHggNjVweCBudWxsKTtcbiAgfVxufVxuIiwiLnR3by1jb2x1bW4tYm9yZGVyZWQge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgJHRpbWVsaW5lLWNhcmQtYmFja2dyb3VuZDtcblxuICBAaW5jbHVkZSBtZWRpYSgkdGFibGV0KSB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gIH1cblxuICAudHdvLWNvbHVtbi1ib3JkZXJlZF9fY29sdW1uIHtcbiAgICAmOm50aC1jaGlsZCgyKSB7XG4gICAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2sobWFyZ2luLXRvcCwgMik7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJHRhYmxldCkge1xuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICB3aWR0aDogNTAlO1xuXG4gICAgICAmOm50aC1jaGlsZCgyKSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIuZXZlbnRzIHtcbiAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKG1hcmdpbi1ib3R0b20sIDkpO1xuXG4gIGZvb3RlciBidXR0b24ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbiIsIi5iZWZvcmUtYWZ0ZXIge1xuICBAaW5jbHVkZSB0cmFuc2l0aW9uKG9wYWNpdHkgMC41cyBlYXNlLW91dCk7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgb3BhY2l0eTogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCR0YWJsZXQpIHtcbiAgICBAaW5jbHVkZSBzaXplKDM1NXB4IDIzNXB4KTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wLXNtYWxsKSB7XG4gICAgQGluY2x1ZGUgc2l6ZSg0MDBweCAyODBweCk7XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcCkge1xuICAgIEBpbmNsdWRlIHNpemUoNDYwcHggMzQwcHgpO1xuICB9XG5cbiAgJi52aXNpYmxlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgLmJlZm9yZS1hZnRlcl9fc2l6ZXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCR0YWJsZXQpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLmJlZm9yZS1hZnRlcl9faW1nIHtcbiAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMCBudWxsIG51bGwgMCk7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgLmJlZm9yZS1hZnRlcl9faW1nX19waG90byB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICB9XG4gIH1cblxuICAuYmVmb3JlLWFmdGVyX19pbWctLWJlZm9yZSB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aWR0aDogNTAlO1xuICB9XG5cbiAgLmJlZm9yZS1hZnRlcl9fc2xpZGVyIHtcbiAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMCBudWxsIDAgNTAlKTtcbiAgICBjdXJzb3I6IGV3LXJlc2l6ZTtcbiAgICBtYXJnaW4tbGVmdDogLTI1cHg7XG4gICAgd2lkdGg6IDUwcHg7XG4gICAgei1pbmRleDogMjtcblxuICAgIC5iZWZvcmUtYWZ0ZXJfX3NsaWRlcl9fY3RhIHtcbiAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24ob3BhY2l0eSAwLjNzIGVhc2Utb3V0KTtcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgIGNvbG9yOiAkYmxhY2s7XG4gICAgICBAaW5jbHVkZSBmb250LXNpemUoMTEpO1xuICAgICAgd2lkdGg6IDcwcHg7XG4gICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgNzUlIG51bGwgbnVsbCA1MCUpO1xuICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSk7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBwYWRkaW5nOiA1cHggMDtcbiAgICAgIG9wYWNpdHk6IDE7XG5cbiAgICAgICYuc2VlbiB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmJlZm9yZS1hZnRlcl9fc2xpZGVyX19saW5lIHtcbiAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAwIG51bGwgMCA1MCUpO1xuICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVgoLTUwJSkpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgICAgd2lkdGg6IDRweDtcbiAgICB9XG5cbiAgICAmOmhvdmVyIC5iZWZvcmUtYWZ0ZXJfX3NsaWRlcl9fY2lyY2xlLCAuYmVmb3JlLWFmdGVyX19zbGlkZXJfX2NpcmNsZS5hY3RpdmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGxpbmstYmx1ZTtcblxuICAgICAgLmJlZm9yZS1hZnRlcl9fc2xpZGVyX19jaXJjbGVfX2ljb24ge1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIsXG4gICAgICAgIC5iZWZvcmUtYWZ0ZXJfX3NsaWRlcl9fY2lyY2xlX19pY29uX19kYXNoIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAuYmVmb3JlLWFmdGVyX19zbGlkZXJfX2NpcmNsZV9faWNvbl9fYXJyb3cge1xuICAgICAgICAgICYubGVmdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmlhbmdsZSg5cHgsICR3aGl0ZSwgbGVmdCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJi5yaWdodCB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmlhbmdsZSg5cHgsICR3aGl0ZSwgcmlnaHQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICY6YWN0aXZlIC5iZWZvcmUtYWZ0ZXJfX3NsaWRlcl9fY2lyY2xlLCAuYmVmb3JlLWFmdGVyX19zbGlkZXJfX2NpcmNsZS5hY3RpdmUge1xuICAgICAgLW1vei1ib3gtc2hhZG93OiBpbnNldCAwIDAgMXB4IHJnYmEoMiwzLDMsLjE1KSwgaW5zZXQgMCAwIDVweCByZ2JhKDAsMCwwLC4xKTtcbiAgICAgIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAwIDFweCByZ2JhKDIsMywzLC4xNSksIGluc2V0IDAgMCA1cHggcmdiYSgwLDAsMCwuMSk7XG4gICAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMXB4IHJnYmEoMiwzLDMsLjE1KSwgaW5zZXQgMCAwIDVweCByZ2JhKDAsMCwwLC4xKTtcbiAgICB9XG5cbiAgICAuYmVmb3JlLWFmdGVyX19zbGlkZXJfX2NpcmNsZSB7XG4gICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgMC4ycyBlYXNlLW91dCk7XG4gICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgNTAlIG51bGwgbnVsbCA1MCUpO1xuICAgICAgQGluY2x1ZGUgc2l6ZSg1MHB4IDUwcHgpO1xuICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICBib3JkZXI6IDRweCBzb2xpZCAkd2hpdGU7XG4gICAgfVxuXG4gICAgLmJlZm9yZS1hZnRlcl9fc2xpZGVyX19jaXJjbGVfX2ljb24ge1xuICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDUwJSBudWxsIG51bGwgNTAlKTtcbiAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGUoLTUwJSwgLTUwJSkpO1xuICAgICAgY29sb3I6ICRibGFjaztcbiAgICAgIGhlaWdodDogMjBweDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHdpZHRoOiA2MCU7XG5cbiAgICAgIC5iZWZvcmUtYWZ0ZXJfX3NsaWRlcl9fY2lyY2xlX19pY29uX19hcnJvdyB7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIDAuMnMgZWFzZS1vdXQpO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWSgtNTAlKSk7XG4gICAgICAgIGZvbnQtc2l6ZTogOHB4O1xuXG4gICAgICAgICYubGVmdCB7XG4gICAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDUwJSBudWxsIG51bGwgMCk7XG4gICAgICAgICAgQGluY2x1ZGUgdHJpYW5nbGUoOXB4LCAkYmxhY2ssIGxlZnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5yaWdodCB7XG4gICAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDUwJSAwIG51bGwgbnVsbCk7XG4gICAgICAgICAgQGluY2x1ZGUgdHJpYW5nbGUoOXB4LCAkYmxhY2ssIHJpZ2h0KTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuYmVmb3JlLWFmdGVyX19zbGlkZXJfX2NpcmNsZV9faWNvbl9fZGFzaCB7XG4gICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCA1MCUgbnVsbCBudWxsIDUwJSk7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGUoLTUwJSwgLTUwJSkpO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgMC4ycyBlYXNlLW91dCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibGFjaztcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICB3aWR0aDogOHB4O1xuICAgICAgfVxuXG4gICAgICAmOjpiZWZvcmUge1xuICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMCBudWxsIG51bGwgMCk7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciAwLjJzIGVhc2Utb3V0KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrO1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICB3aWR0aDogOTUlO1xuICAgICAgfVxuXG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCBudWxsIG51bGwgMCAwKTtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIDAuMnMgZWFzZS1vdXQpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2s7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgIHdpZHRoOiA5NSU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJi5iZWZvcmUtYWZ0ZXItLXRodW1iIHtcbiAgICB3aWR0aDogMzIlO1xuICAgIGhlaWdodDogMjUlO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBtYXJnaW4tcmlnaHQ6IDIlO1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIH1cblxuICAgIC5iZWZvcmUtYWZ0ZXJfX3NpemVyIHtcbiAgICAgIGhlaWdodDogMTAwcHg7XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCRtb2JpbGUtbGFyZ2UpIHtcbiAgICAgICAgaGVpZ2h0OiAxNTBweDtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJHRhYmxldCkge1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJHRhYmxldCkge1xuICAgICAgQGluY2x1ZGUgc2l6ZSgxMTBweCA4MHB4KTtcbiAgICAgIGZsb2F0OiBub25lO1xuICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3Atc21hbGwpIHtcbiAgICAgIEBpbmNsdWRlIHNpemUoMTI3cHggOTdweCk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3ApIHtcbiAgICAgIEBpbmNsdWRlIHNpemUoMTUwcHggMTIwcHgpO1xuICAgIH1cblxuICAgICY6OmFmdGVyIHtcbiAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIDAuMnMgZWFzZS1vdXQpO1xuICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDAgMCAwIDApO1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGJvcmRlcjogNHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgei1pbmRleDogMjtcbiAgICB9XG5cbiAgICAuYmVmb3JlLWFmdGVyLXRodW1iX19saW5lIHtcbiAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAwIG51bGwgMCA1MCUpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgICAgd2lkdGg6IDIuNXB4O1xuICAgICAgei1pbmRleDogMjtcbiAgICB9XG5cbiAgICAmOmhvdmVyLCAmLmFjdGl2ZSB7XG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJGxpbmstYmx1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIGRpcmVjdGlvbmFsLXByb3BlcnR5IG1peGlucyBhcmUgc2hvcnRoYW5kc1xuLy8gZm9yIHdyaXRpbmcgcHJvcGVydGllcyBsaWtlIHRoZSBmb2xsb3dpbmdcbi8vXG4vLyBAaW5jbHVkZSBtYXJnaW4obnVsbCAwIDEwcHgpO1xuLy8gLS0tLS0tXG4vLyBtYXJnaW4tcmlnaHQ6IDA7XG4vLyBtYXJnaW4tYm90dG9tOiAxMHB4O1xuLy8gbWFyZ2luLWxlZnQ6IDA7XG4vL1xuLy8gLSBvciAtXG4vL1xuLy8gQGluY2x1ZGUgYm9yZGVyLXN0eWxlKGRvdHRlZCBudWxsKTtcbi8vIC0tLS0tLVxuLy8gYm9yZGVyLXRvcC1zdHlsZTogZG90dGVkO1xuLy8gYm9yZGVyLWJvdHRvbS1zdHlsZTogZG90dGVkO1xuLy9cbi8vIC0tLS0tLVxuLy9cbi8vIE5vdGU6IFlvdSBjYW4gYWxzbyB1c2UgZmFsc2UgaW5zdGVhZCBvZiBudWxsXG5cbkBmdW5jdGlvbiBjb2xsYXBzZS1kaXJlY3Rpb25hbHMoJHZhbHMpIHtcbiAgJG91dHB1dDogbnVsbDtcblxuICAkQTogbnRoKCAkdmFscywgMSApO1xuICAkQjogaWYoIGxlbmd0aCgkdmFscykgPCAyLCAkQSwgbnRoKCR2YWxzLCAyKSk7XG4gICRDOiBpZiggbGVuZ3RoKCR2YWxzKSA8IDMsICRBLCBudGgoJHZhbHMsIDMpKTtcbiAgJEQ6IGlmKCBsZW5ndGgoJHZhbHMpIDwgMiwgJEEsIG50aCgkdmFscywgaWYoIGxlbmd0aCgkdmFscykgPCA0LCAyLCA0KSApKTtcblxuICBAaWYgJEEgPT0gMCB7ICRBOiAwIH1cbiAgQGlmICRCID09IDAgeyAkQjogMCB9XG4gIEBpZiAkQyA9PSAwIHsgJEM6IDAgfVxuICBAaWYgJEQgPT0gMCB7ICREOiAwIH1cblxuICBAaWYgJEEgPT0gJEIgYW5kICRBID09ICRDIGFuZCAkQSA9PSAkRCB7ICRvdXRwdXQ6ICRBICAgICAgICAgIH1cbiAgQGVsc2UgaWYgJEEgPT0gJEMgYW5kICRCID09ICREICAgICAgICAgeyAkb3V0cHV0OiAkQSAkQiAgICAgICB9XG4gIEBlbHNlIGlmICRCID09ICREICAgICAgICAgICAgICAgICAgICAgIHsgJG91dHB1dDogJEEgJEIgJEMgICAgfVxuICBAZWxzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICRvdXRwdXQ6ICRBICRCICRDICREIH1cblxuICBAcmV0dXJuICRvdXRwdXQ7XG59XG5cbkBmdW5jdGlvbiBjb250YWlucy1mYWxzeSgkbGlzdCkge1xuICBAZWFjaCAkaXRlbSBpbiAkbGlzdCB7XG4gICAgQGlmIG5vdCAkaXRlbSB7XG4gICAgICBAcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiBmYWxzZTtcbn1cblxuQG1peGluIGRpcmVjdGlvbmFsLXByb3BlcnR5KCRwcmUsICRzdWYsICR2YWxzKSB7XG4gIC8vIFByb3BlcnR5IE5hbWVzXG4gICR0b3A6ICAgICRwcmUgKyBcIi10b3BcIiAgICArIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XG4gICRib3R0b206ICRwcmUgKyBcIi1ib3R0b21cIiArIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XG4gICRsZWZ0OiAgICRwcmUgKyBcIi1sZWZ0XCIgICArIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XG4gICRyaWdodDogICRwcmUgKyBcIi1yaWdodFwiICArIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XG4gICRhbGw6ICAgICRwcmUgKyAgICAgICAgICAgICBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuXG4gICR2YWxzOiBjb2xsYXBzZS1kaXJlY3Rpb25hbHMoJHZhbHMpO1xuXG4gIEBpZiBjb250YWlucy1mYWxzeSgkdmFscykge1xuICAgIEBpZiBudGgoJHZhbHMsIDEpIHsgI3skdG9wfTogbnRoKCR2YWxzLCAxKTsgfVxuXG4gICAgQGlmIGxlbmd0aCgkdmFscykgPT0gMSB7XG4gICAgICBAaWYgbnRoKCR2YWxzLCAxKSB7ICN7JHJpZ2h0fTogbnRoKCR2YWxzLCAxKTsgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgQGlmIG50aCgkdmFscywgMikgeyAjeyRyaWdodH06IG50aCgkdmFscywgMik7IH1cbiAgICB9XG5cbiAgICAvLyBwcm9wOiB0b3AvYm90dG9tIHJpZ2h0L2xlZnRcbiAgICBAaWYgbGVuZ3RoKCR2YWxzKSA9PSAyIHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDEpIHsgI3skYm90dG9tfTogbnRoKCR2YWxzLCAxKTsgfVxuICAgICAgQGlmIG50aCgkdmFscywgMikgeyAjeyRsZWZ0fTogICBudGgoJHZhbHMsIDIpOyB9XG5cbiAgICAvLyBwcm9wOiB0b3AgcmlnaHQvbGVmdCBib3R0b21cbiAgICB9IEBlbHNlIGlmIGxlbmd0aCgkdmFscykgPT0gMyB7XG4gICAgICBAaWYgbnRoKCR2YWxzLCAzKSB7ICN7JGJvdHRvbX06IG50aCgkdmFscywgMyk7IH1cbiAgICAgIEBpZiBudGgoJHZhbHMsIDIpIHsgI3skbGVmdH06ICAgbnRoKCR2YWxzLCAyKTsgfVxuXG4gICAgLy8gcHJvcDogdG9wIHJpZ2h0IGJvdHRvbSBsZWZ0XG4gICAgfSBAZWxzZSBpZiBsZW5ndGgoJHZhbHMpID09IDQge1xuICAgICAgQGlmIG50aCgkdmFscywgMykgeyAjeyRib3R0b219OiBudGgoJHZhbHMsIDMpOyB9XG4gICAgICBAaWYgbnRoKCR2YWxzLCA0KSB7ICN7JGxlZnR9OiAgIG50aCgkdmFscywgNCk7IH1cbiAgICB9XG5cbiAgLy8gcHJvcDogdG9wL3JpZ2h0L2JvdHRvbS9sZWZ0XG4gIH0gQGVsc2Uge1xuICAgICN7JGFsbH06ICR2YWxzO1xuICB9XG59XG5cbkBtaXhpbiBtYXJnaW4oJHZhbHMuLi4pIHtcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkobWFyZ2luLCBmYWxzZSwgJHZhbHMuLi4pO1xufVxuXG5AbWl4aW4gcGFkZGluZygkdmFscy4uLikge1xuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShwYWRkaW5nLCBmYWxzZSwgJHZhbHMuLi4pO1xufVxuXG5AbWl4aW4gYm9yZGVyLXN0eWxlKCR2YWxzLi4uKSB7XG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KGJvcmRlciwgc3R5bGUsICR2YWxzLi4uKTtcbn1cblxuQG1peGluIGJvcmRlci1jb2xvcigkdmFscy4uLikge1xuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShib3JkZXIsIGNvbG9yLCAkdmFscy4uLik7XG59XG5cbkBtaXhpbiBib3JkZXItd2lkdGgoJHZhbHMuLi4pIHtcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkoYm9yZGVyLCB3aWR0aCwgJHZhbHMuLi4pO1xufVxuIiwiLnN0YXItcmF0aW5nIHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAuaWNvbiB7XG4gICAgY29sb3I6ICRzdGFyLWluYWN0aXZlLWdyZXk7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKDEyKTtcbiAgICBAaW5jbHVkZSBtZWRpYSgkdGFibGV0KSB7XG4gICAgICBAaW5jbHVkZSBmb250LXNpemUoMTYpO1xuICAgIH1cbiAgfVxuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggNSB7XG4gICAgJltkYXRhLXJhdGluZz1cIiN7JGl9XCJdIHtcbiAgICAgIC5pY29uOm50aC1jaGlsZCgtbisjeyRpfSkge1xuICAgICAgICBjb2xvcjogJGJsYWNrO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLnR3by1jb2x1bW4tZGFyayB7XG4gIGNvbG9yOiAkd2hpdGU7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJHRhYmxldCkge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICB9XG5cbiAgLnR3by1jb2x1bW4tZGFya19fY29sdW1uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2s7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkdGFibGV0KSB7XG4gICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgIHdpZHRoOiA1MCU7XG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQoMikge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHR3by1jb2x1bW4tZGFyay1ncmV5O1xuICAgIH1cbiAgfVxufVxuIiwiLmZ1bGxzY3JlZW4tbW9kYWwge1xuICBAaW5jbHVkZSBwb3NpdGlvbihmaXhlZCwgMCAwIDAgMCk7XG4gIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVZKC0xMjAlKSk7XG4gIEBpbmNsdWRlIHRyYW5zaXRpb24odHJhbnNmb3JtIDAuNXMgZWFzZSk7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NSk7XG4gIHotaW5kZXg6IDEwMDtcblxuICAmLmFjdGl2ZSB7XG4gICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVkoMCkpO1xuICB9XG5cbiAgJi5kYXJrIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xuXG4gICAgLmZ1bGxzY3JlZW4tbW9kYWxfX2Nsb3NlIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJHdoaXRlO1xuICAgICAgcGFkZGluZzogMDtcblxuICAgICAgLmljb257XG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcC1zbWFsbCkge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICY6aG92ZXJ7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJGJsdWU7XG4gICAgICAgIC5pY29ue1xuICAgICAgICAgIGNvbG9yOiAkYmx1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmZ1bGxzY3JlZW4tbW9kYWxfX2NvbnRlbnQge1xuICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgfVxuICB9XG5cbiAgLmZ1bGxzY3JlZW4tbW9kYWxfX2NvbnRlbnQge1xuICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAwIDAgMCAwKTtcbiAgICBvdmVyZmxvdzogc2Nyb2xsO1xuICAgIHotaW5kZXg6IDEwMDtcbiAgfVxuXG4gIC5mdWxsc2NyZWVuLW1vZGFsX19jbG9zZSB7XG4gICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDE1cHggMTVweCBudWxsIG51bGwpO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHotaW5kZXg6IDEwMTtcbiAgfVxufVxuIiwiLyoqXG4gKiBmdWxsUGFnZSAyLjUuN1xuICogaHR0cHM6Ly9naXRodWIuY29tL2FsdmFyb3RyaWdvL2Z1bGxQYWdlLmpzXG4gKiBNSVQgbGljZW5zZWRcbiAqXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTMgYWx2YXJvdHJpZ28uY29tIC0gQSBwcm9qZWN0IGJ5IEFsdmFybyBUcmlnb1xuICovXG4vLyBodG1sLCBib2R5IHtcbi8vICAgICBtYXJnaW46IDA7XG4vLyAgICAgcGFkZGluZzogMDtcbi8vICAgICBvdmVyZmxvdzpoaWRkZW47XG5cbi8vICAgICAvKkF2b2lkIGZsaWNrZXIgb24gc2xpZGVzIHRyYW5zaXRpb25zIGZvciBtb2JpbGUgcGhvbmVzICMzMzYgKi9cbi8vICAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwwLDAsMCk7XG4vLyB9XG4jc3VwZXJDb250YWluZXIge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAvKiBUb3VjaCBkZXRlY3Rpb24gZm9yIFdpbmRvd3MgOCAqL1xuICAgIC1tcy10b3VjaC1hY3Rpb246IG5vbmU7XG5cbiAgICAvKiBJRSAxMSBvbiBXaW5kb3dzIFBob25lIDguMSovXG4gICAgdG91Y2gtYWN0aW9uOiBub25lO1xufVxuLmZwLXNlY3Rpb24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIFNhZmFyaTw9NSBBbmRyb2lkPD0zICovXG4gICAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiA8PTI4ICovXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5mcC1zbGlkZSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG59XG4uZnAtc2xpZGUsIC5mcC1zbGlkZXNDb250YWluZXIge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cbi5mcC1zbGlkZXMge1xuICAgIHotaW5kZXg6MTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLW91dDsgLyogU2FmYXJpPD02IEFuZHJvaWQ8PTQuMyAqL1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2Utb3V0O1xufVxuLmZwLXNlY3Rpb24uZnAtdGFibGUsIC5mcC1zbGlkZS5mcC10YWJsZSB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgdGFibGUtbGF5b3V0OmZpeGVkO1xuICAgIHdpZHRoOiAxMDAlO1xufVxuLmZwLXRhYmxlQ2VsbCB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbn1cbi5mcC1zbGlkZXNDb250YWluZXIge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5mcC1jb250cm9sQXJyb3cge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiA0O1xuICAgIHRvcDogNTAlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBtYXJnaW4tdG9wOiAtMzhweDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwwLDApO1xuICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsMCwwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsMCwwKTtcbn1cbi5mcC1jb250cm9sQXJyb3cuZnAtcHJldiB7XG4gICAgbGVmdDogMTVweDtcbiAgICB3aWR0aDogMDtcbiAgICBib3JkZXItd2lkdGg6IDM4LjVweCAzNHB4IDM4LjVweCAwO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgI2ZmZiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbn1cbi5mcC1jb250cm9sQXJyb3cuZnAtbmV4dCB7XG4gICAgcmlnaHQ6IDE1cHg7XG4gICAgYm9yZGVyLXdpZHRoOiAzOC41cHggMCAzOC41cHggMzRweDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICNmZmY7XG59XG4uZnAtc2Nyb2xsYWJsZSB7XG4gICAgb3ZlcmZsb3c6IHNjcm9sbDtcblxufVxuLmZwLW5vdHJhbnNpdGlvbiB7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7XG4gICAgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50O1xufVxuI2ZwLW5hdiB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHotaW5kZXg6IDQ7XG4gICAgbWFyZ2luLXRvcDogLTMycHg7XG4gICAgdG9wOiA1MCU7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwwLDApO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRibGFjaztcbiAgICBwYWRkaW5nOiAyMHB4O1xuICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCkpO1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24odHJhbnNmb3JtIDAuM3MgZWFzZS1vdXQpO1xuXG4gICAgJi5pbiB7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24odHJhbnNmb3JtIDAuM3MgZWFzZS1vdXQgMC4zcyk7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGUzZCgwLCAwLCAwKSk7XG4gICAgfVxufVxuI2ZwLW5hdi5yaWdodCB7XG4gICAgcmlnaHQ6IDA7XG59XG4jZnAtbmF2LmxlZnQge1xuICAgIGxlZnQ6IDA7XG59XG4uZnAtc2xpZGVzTmF2e1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiA0O1xuICAgIGxlZnQ6IDUwJTtcbiAgICBvcGFjaXR5OiAxO1xufVxuLmZwLXNsaWRlc05hdi5ib3R0b20ge1xuICAgIGJvdHRvbTogMTdweDtcbn1cbi5mcC1zbGlkZXNOYXYudG9wIHtcbiAgICB0b3A6IDE3cHg7XG59XG4jZnAtbmF2IHVsLFxuLmZwLXNsaWRlc05hdiB1bCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cbiNmcC1uYXYgdWwgbGksXG4uZnAtc2xpZGVzTmF2IHVsIGxpIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTRweDtcbiAgICBoZWlnaHQ6IDEzcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgICBwb3NpdGlvbjpyZWxhdGl2ZTtcblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxufVxuLmZwLXNsaWRlc05hdiB1bCBsaSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuI2ZwLW5hdiB1bCBsaSBhLFxuLmZwLXNsaWRlc05hdiB1bCBsaSBhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbiNmcC1uYXYgdWwgbGkgYS5hY3RpdmUgc3Bhbixcbi5mcC1zbGlkZXNOYXYgdWwgbGkgYS5hY3RpdmUgc3BhbiB7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbn1cbiNmcC1uYXYgdWwgbGkgYSBzcGFuLFxuLmZwLXNsaWRlc05hdiB1bCBsaSBhIHNwYW4ge1xuICAgIHRvcDogMnB4O1xuICAgIGxlZnQ6IDJweDtcbiAgICB3aWR0aDogOXB4O1xuICAgIGhlaWdodDogOXB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICR3aGl0ZTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDApO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogMTtcbn1cbiNmcC1uYXYgdWwgbGkgLmZwLXRvb2x0aXAge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC0ycHg7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtZmFtaWx5OiBhcmlhbCwgaGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgbWF4LXdpZHRoOiAyMjBweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgd2lkdGg6IDA7XG59XG4jZnAtbmF2IHVsIGxpOmhvdmVyIC5mcC10b29sdGlwIHtcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLWluO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLWluO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG9wYWNpdHk6IDE7XG59XG4jZnAtbmF2IHVsIGxpIC5mcC10b29sdGlwLnJpZ2h0IHtcbiAgICByaWdodDogMjBweDtcbn1cbiNmcC1uYXYgdWwgbGkgLmZwLXRvb2x0aXAubGVmdCB7XG4gICAgbGVmdDogMjBweDtcbn1cbiIsIi8vIEFkZHMga2V5ZnJhbWVzIGJsb2NrcyBmb3Igc3VwcG9ydGVkIHByZWZpeGVzLCByZW1vdmluZyByZWR1bmRhbnQgcHJlZml4ZXMgaW4gdGhlIGJsb2NrJ3MgY29udGVudFxuQG1peGluIGtleWZyYW1lcygkbmFtZSkge1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci13ZWJraXQ6ICAgICRwcmVmaXgtZm9yLXdlYmtpdDtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3ItbW96aWxsYTogICAkcHJlZml4LWZvci1tb3ppbGxhO1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci1taWNyb3NvZnQ6ICRwcmVmaXgtZm9yLW1pY3Jvc29mdDtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3Itb3BlcmE6ICAgICAkcHJlZml4LWZvci1vcGVyYTtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3Itc3BlYzogICAgICAkcHJlZml4LWZvci1zcGVjO1xuXG4gIEBpZiAkb3JpZ2luYWwtcHJlZml4LWZvci13ZWJraXQge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtcHJlZml4LWZvci1hbGwoKTtcbiAgICAkcHJlZml4LWZvci13ZWJraXQ6IHRydWU7XG4gICAgQC13ZWJraXQta2V5ZnJhbWVzICN7JG5hbWV9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuICBAaWYgJG9yaWdpbmFsLXByZWZpeC1mb3ItbW96aWxsYSB7XG4gICAgQGluY2x1ZGUgZGlzYWJsZS1wcmVmaXgtZm9yLWFsbCgpO1xuICAgICRwcmVmaXgtZm9yLW1vemlsbGE6IHRydWU7XG4gICAgQC1tb3ota2V5ZnJhbWVzICN7JG5hbWV9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuXG4gICRwcmVmaXgtZm9yLXdlYmtpdDogICAgJG9yaWdpbmFsLXByZWZpeC1mb3Itd2Via2l0O1xuICAkcHJlZml4LWZvci1tb3ppbGxhOiAgICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1vemlsbGE7XG4gICRwcmVmaXgtZm9yLW1pY3Jvc29mdDogJG9yaWdpbmFsLXByZWZpeC1mb3ItbWljcm9zb2Z0O1xuICAkcHJlZml4LWZvci1vcGVyYTogICAgICRvcmlnaW5hbC1wcmVmaXgtZm9yLW9wZXJhO1xuICAkcHJlZml4LWZvci1zcGVjOiAgICAgICRvcmlnaW5hbC1wcmVmaXgtZm9yLXNwZWM7XG5cbiAgQGlmICRvcmlnaW5hbC1wcmVmaXgtZm9yLXNwZWMge1xuICAgIEBrZXlmcmFtZXMgI3skbmFtZX0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG4iLCIvLyBodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLWFuaW1hdGlvbnMvI3RoZS1hbmltYXRpb24tbmFtZS1wcm9wZXJ0eS1cbi8vIEVhY2ggb2YgdGhlc2UgbWl4aW5zIHN1cHBvcnQgY29tbWEgc2VwYXJhdGVkIGxpc3RzIG9mIHZhbHVlcywgd2hpY2ggYWxsb3dzIGRpZmZlcmVudCB0cmFuc2l0aW9ucyBmb3IgaW5kaXZpZHVhbCBwcm9wZXJ0aWVzIHRvIGJlIGRlc2NyaWJlZCBpbiBhIHNpbmdsZSBzdHlsZSBydWxlLiBFYWNoIHZhbHVlIGluIHRoZSBsaXN0IGNvcnJlc3BvbmRzIHRvIHRoZSB2YWx1ZSBhdCB0aGF0IHNhbWUgcG9zaXRpb24gaW4gdGhlIG90aGVyIHByb3BlcnRpZXMuXG5cbi8vIE9mZmljaWFsIGFuaW1hdGlvbiBzaG9ydGhhbmQgcHJvcGVydHkuXG5AbWl4aW4gYW5pbWF0aW9uICgkYW5pbWF0aW9ucy4uLikge1xuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24sICRhbmltYXRpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG4vLyBJbmRpdmlkdWFsIEFuaW1hdGlvbiBQcm9wZXJ0aWVzXG5AbWl4aW4gYW5pbWF0aW9uLW5hbWUgKCRuYW1lcy4uLikge1xuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tbmFtZSwgJG5hbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5cbkBtaXhpbiBhbmltYXRpb24tZHVyYXRpb24gKCR0aW1lcy4uLikge1xuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZHVyYXRpb24sICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuXG5AbWl4aW4gYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbiAoJG1vdGlvbnMuLi4pIHtcbi8vIGVhc2UgfCBsaW5lYXIgfCBlYXNlLWluIHwgZWFzZS1vdXQgfCBlYXNlLWluLW91dFxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uLCAkbW90aW9ucywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuXG5AbWl4aW4gYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCAoJHZhbHVlcy4uLikge1xuLy8gaW5maW5pdGUgfCA8bnVtYmVyPlxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCAkdmFsdWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5cbkBtaXhpbiBhbmltYXRpb24tZGlyZWN0aW9uICgkZGlyZWN0aW9ucy4uLikge1xuLy8gbm9ybWFsIHwgYWx0ZXJuYXRlXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1kaXJlY3Rpb24sICRkaXJlY3Rpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5cbkBtaXhpbiBhbmltYXRpb24tcGxheS1zdGF0ZSAoJHN0YXRlcy4uLikge1xuLy8gcnVubmluZyB8IHBhdXNlZFxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tcGxheS1zdGF0ZSwgJHN0YXRlcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuXG5AbWl4aW4gYW5pbWF0aW9uLWRlbGF5ICgkdGltZXMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWRlbGF5LCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cblxuQG1peGluIGFuaW1hdGlvbi1maWxsLW1vZGUgKCRtb2Rlcy4uLikge1xuLy8gbm9uZSB8IGZvcndhcmRzIHwgYmFja3dhcmRzIHwgYm90aFxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZmlsbC1tb2RlLCAkbW9kZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG4iLCIucHJvZHVjdC1kZXRhaWxzLXBhbmVsX19zaGFyZS1jb250YWluZXJ7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDA7XG4gIHRvcDogMDtcbiAgei1pbmRleDogMTtcbiAgXG4gIGJ1dHRvbntcbiAgICBtYXJnaW4tYm90dG9tOiAxcHg7XG4gIH1cblxuICBidXR0b24uc2hhcmV7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG4gIGJ1dHRvbi5zaGFyZS1jbG9zZXtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgJi5hY3RpdmV7XG4gICAgYnV0dG9uLnNoYXJlLWNsb3Nle1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cbiAgICBidXR0b24uc2hhcmV7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG59XG5cbi5wcm9kdWN0LWRldGFpbHNfX3NoYXJle1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAwO1xuICB3aWR0aDogNi4zcmVtO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIFxuICBidXR0b257XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiA2LjNyZW07XG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG5cbiAgICAmOmhvdmVye1xuICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDI1cHggcmdiYSgwLDAsMCwwLjE1KTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwwLDAsMC4xNSk7XG4gICAgfVxuXG4gICAgLmljb257XG4gICAgICBmb250LXNpemU6IDJyZW07XG4gICAgICBjb2xvcjogJHdoaXRlO1xuICAgIH1cblxuICAgIC5pY29uLXR3aXR0ZXJ7XG4gICAgICBmb250LXNpemU6IDEuN3JlbTtcbiAgICB9XG5cbiAgICAmW2RhdGEtdHlwZT1cImZhY2Vib29rXCJde1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGZhY2Vib29rLWNvbG9yO1xuICAgIH1cblxuICAgICZbZGF0YS10eXBlPVwicGludGVyZXN0XCJde1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHBpbnRlcmVzdC1jb2xvcjtcbiAgICB9XG5cbiAgICAmW2RhdGEtdHlwZT1cInR3aXR0ZXJcIl17XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdHdpdHRlci1jb2xvcjtcbiAgICB9XG5cbiAgICAmW2RhdGEtdHlwZT1cImdvb2dsZS1wbHVzXCJde1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGdvb2dsZS1jb2xvcjtcbiAgICB9XG4gIH1cbn0iLCIvLy8gU3BlY2lmaWVzIHRoZSBudW1iZXIgb2YgY29sdW1ucyBhbiBlbGVtZW50IHNob3VsZCBzcGFuLiBJZiB0aGUgc2VsZWN0b3IgaXMgbmVzdGVkIHRoZSBudW1iZXIgb2YgY29sdW1ucyBvZiBpdHMgcGFyZW50IGVsZW1lbnQgc2hvdWxkIGJlIHBhc3NlZCBhcyBhbiBhcmd1bWVudCBhcyB3ZWxsLlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkc3BhblxuLy8vICAgQSBsaXN0IGNvbnRhaW5pbmcgYCRjb2x1bW5zYCwgdGhlIHVuaXRsZXNzIG51bWJlciBvZiBjb2x1bW5zIHRoZSBlbGVtZW50IHNwYW5zIChyZXF1aXJlZCksIGFuZCBgJGNvbnRhaW5lci1jb2x1bW5zYCwgdGhlIG51bWJlciBvZiBjb2x1bW5zIHRoZSBwYXJlbnQgZWxlbWVudCBzcGFucyAob3B0aW9uYWwpLlxuLy8vXG4vLy8gICBJZiBvbmx5IG9uZSB2YWx1ZSBpcyBwYXNzZWQsIGl0IGlzIGFzc3VtZWQgdGhhdCBpdCdzIGAkY29sdW1uc2AgYW5kIHRoYXQgdGhhdCBgJGNvbnRhaW5lci1jb2x1bW5zYCBpcyBlcXVhbCB0byBgJGdyaWQtY29sdW1uc2AsIHRoZSB0b3RhbCBudW1iZXIgb2YgY29sdW1ucyBpbiB0aGUgZ3JpZC5cbi8vL1xuLy8vICAgVGhlIHZhbHVlcyBjYW4gYmUgc2VwYXJhdGVkIHdpdGggYW55IHN0cmluZyBzdWNoIGFzIGBvZmAsIGAvYCwgZXRjLlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRkaXNwbGF5IChibG9jaylcbi8vLyAgIFNldHMgdGhlIGRpc3BsYXkgcHJvcGVydHkgb2YgdGhlIGVsZW1lbnQuIEJ5IGRlZmF1bHQgaXQgc2V0cyB0aGUgZGlzcGxheSBwcm9wZXJ0IG9mIHRoZSBlbGVtZW50IHRvIGBibG9ja2AuXG4vLy9cbi8vLyAgIElmIHBhc3NlZCBgYmxvY2stY29sbGFwc2VgLCBpdCBhbHNvIHJlbW92ZXMgdGhlIG1hcmdpbiBndXR0ZXIgYnkgYWRkaW5nIGl0IHRvIHRoZSBlbGVtZW50IHdpZHRoLlxuLy8vXG4vLy8gICBJZiBwYXNzZWQgYHRhYmxlYCwgaXQgc2V0cyB0aGUgZGlzcGxheSBwcm9wZXJ0eSB0byBgdGFibGUtY2VsbGAgYW5kIGNhbGN1bGF0ZXMgdGhlIHdpZHRoIG9mIHRoZSBlbGVtZW50IHdpdGhvdXQgdGFraW5nIGd1dHRlcnMgaW50byBjb25zaWRlcmF0aW9uLiBUaGUgcmVzdWx0IGRvZXMgbm90IGFsaWduIHdpdGggdGhlIGJsb2NrLWJhc2VkIGdyaWQuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDYpO1xuLy8vXG4vLy8gICAgLm5lc3RlZC1lbGVtZW50IHtcbi8vLyAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygyIG9mIDYpO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBkaXNwbGF5OiBibG9jaztcbi8vLyAgICAgZmxvYXQ6IGxlZnQ7XG4vLy8gICAgIG1hcmdpbi1yaWdodDogMi4zNTc2NSU7XG4vLy8gICAgIHdpZHRoOiA0OC44MjExNyU7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5lbGVtZW50Omxhc3QtY2hpbGQge1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5lbGVtZW50IC5uZXN0ZWQtZWxlbWVudCB7XG4vLy8gICAgIGRpc3BsYXk6IGJsb2NrO1xuLy8vICAgICBmbG9hdDogbGVmdDtcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiA0LjgyOTE2JTtcbi8vLyAgICAgd2lkdGg6IDMwLjExMzg5JTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLmVsZW1lbnQgLm5lc3RlZC1lbGVtZW50Omxhc3QtY2hpbGQge1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4vLy8gICB9XG5cbkBtaXhpbiBzcGFuLWNvbHVtbnMoJHNwYW46ICRjb2x1bW5zIG9mICRjb250YWluZXItY29sdW1ucywgJGRpc3BsYXk6IGJsb2NrKSB7XG4gICRjb2x1bW5zOiBudGgoJHNwYW4sIDEpO1xuICAkY29udGFpbmVyLWNvbHVtbnM6IGNvbnRhaW5lci1zcGFuKCRzcGFuKTtcblxuICAkcGFyZW50LWNvbHVtbnM6IGdldC1wYXJlbnQtY29sdW1ucygkY29udGFpbmVyLWNvbHVtbnMpICFnbG9iYWw7XG5cbiAgJGRpcmVjdGlvbjogZ2V0LWRpcmVjdGlvbigkbGF5b3V0LWRpcmVjdGlvbiwgJGRlZmF1bHQtbGF5b3V0LWRpcmVjdGlvbik7XG4gICRvcHBvc2l0ZS1kaXJlY3Rpb246IGdldC1vcHBvc2l0ZS1kaXJlY3Rpb24oJGRpcmVjdGlvbik7XG5cbiAgJGRpc3BsYXktdGFibGU6IGlzLWRpc3BsYXktdGFibGUoJGNvbnRhaW5lci1kaXNwbGF5LXRhYmxlLCAkZGlzcGxheSk7XG5cbiAgQGlmICRkaXNwbGF5LXRhYmxlICB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICB3aWR0aDogcGVyY2VudGFnZSgkY29sdW1ucyAvICRjb250YWluZXItY29sdW1ucyk7XG4gIH0gQGVsc2Uge1xuICAgIGZsb2F0OiAjeyRvcHBvc2l0ZS1kaXJlY3Rpb259O1xuXG4gICAgQGlmICRkaXNwbGF5ICE9IG5vLWRpc3BsYXkge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgQGlmICRkaXNwbGF5ID09IGNvbGxhcHNlIHtcbiAgICAgIEBpbmNsdWRlIC1uZWF0LXdhcm4oXCJUaGUgJ2NvbGxhcHNlJyBhcmd1bWVudCB3aWxsIGJlIGRlcHJlY2F0ZWQuIFVzZSAnYmxvY2stY29sbGFwc2UnIGluc3RlYWQuXCIpO1xuICAgIH1cblxuICAgIEBpZiAkZGlzcGxheSA9PSBjb2xsYXBzZSBvciAkZGlzcGxheSA9PSBibG9jay1jb2xsYXBzZSB7XG4gICAgICB3aWR0aDogZmxleC1ncmlkKCRjb2x1bW5zLCAkY29udGFpbmVyLWNvbHVtbnMpICsgZmxleC1ndXR0ZXIoJGNvbnRhaW5lci1jb2x1bW5zKTtcblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgd2lkdGg6IGZsZXgtZ3JpZCgkY29sdW1ucywgJGNvbnRhaW5lci1jb2x1bW5zKTtcbiAgICAgIH1cblxuICAgIH0gQGVsc2Uge1xuICAgICAgbWFyZ2luLSN7JGRpcmVjdGlvbn06IGZsZXgtZ3V0dGVyKCRjb250YWluZXItY29sdW1ucyk7XG4gICAgICB3aWR0aDogZmxleC1ncmlkKCRjb2x1bW5zLCAkY29udGFpbmVyLWNvbHVtbnMpO1xuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tI3skZGlyZWN0aW9ufTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIltkYXRhLW1vZHVsZT1cImdsb2JhbC1kcm9wZG93blwiXSB7XG4gIEBpbmNsdWRlIHRyYW5zaXRpb24odHJhbnNmb3JtIDAuNXMgMC4xcyk7XG4gIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAxMDAlIDAgbnVsbCAwKTtcbiAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVkoLTEwMSUpKTtcbiAgei1pbmRleDogMTk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgbWF4LWhlaWdodDogOTJ2aDtcblxuICAmLmFjdGl2ZSB7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbih0cmFuc2Zvcm0gMC41cyk7XG4gICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVkoMCkpO1xuICB9XG5cbiAgLmdsb2JhbC1kcm9wZG93bl9fY2xvc2Uge1xuICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAyMHB4IDIwcHggbnVsbCBudWxsKTtcbiAgfVxufVxuIiwiLnBhZ2UuaW5kZXh7XG5cbiAgLmJ1dHRvbi5zdGFuZGFyZC1ibGFja3tcbiAgICB3aWR0aDogMTAwJTtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoMTcpO1xuICAgIEBpbmNsdWRlIG1lZGlhKCR0YWJsZXQpIHtcbiAgICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayh3aWR0aCwgMjApO1xuICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDIwKTtcbiAgICB9XG4gIH1cblxuICAuc2VjdGlvbiB7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1NSUgY2VudGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgfVxuXG4gIC5zZWN0aW9uX19pbm5lci1yaWdodCB7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkdGFibGV0KSB7XG4gICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgNjBweCAxJSBudWxsIG51bGwpO1xuICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKG5vbmUpO1xuXG4gICAgICAudG91Y2hldmVudHMgJiB7XG4gICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAxMjVweCAxJSBudWxsIG51bGwpO1xuXG4gICAgICAgIC5zZWN0aW9uX190aXRsZSB7XG4gICAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDUwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5zZWN0aW9uX19zdWJ0aXRsZSB7XG4gICAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDIyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5zZWN0aW9uX19kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDE2KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5zZWN0aW9uX19idXR0b25zX19jb250YWluZXIge1xuICAgICAgICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhtYXJnaW4tYm90dG9tLCAxKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5idXR0b24uc3RhbmRhcmQtYmxhY2sge1xuICAgICAgICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhwYWRkaW5nLCAxLCAxLjgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3Atc21hbGwpIHtcbiAgICAgIHJpZ2h0OiA1JTtcblxuICAgICAgLnRvdWNoZXZlbnRzICYge1xuICAgICAgICB0b3A6IDExMHB4O1xuICAgICAgfVxuICAgIH1cblxuICAgICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcC1sYXJnZSkge1xuICAgICAgcmlnaHQ6IDEwLjUlO1xuICAgIH1cbiAgfVxuXG4gIC5zZWN0aW9uX190aXRsZSB7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKDY2KTtcbiAgICBsaW5lLWhlaWdodDogMC44NTtcbiAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2sobWFyZ2luLWJvdHRvbSwgMS41KTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCR0YWJsZXQpIHtcbiAgICAgIHBhZGRpbmctbGVmdDogNHJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAwLjg7XG4gICAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2sobWFyZ2luLWJvdHRvbSwgMS4zKTtcbiAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSg2MCk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3Atc21hbGwpIHtcbiAgICAgIHBhZGRpbmctbGVmdDogNHJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAwLjg1O1xuICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDYwKTtcbiAgICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhtYXJnaW4tYm90dG9tLCAxLjUpO1xuICAgIH1cblxuICB9XG5cbiAgLnNlY3Rpb25fX3N1YnRpdGxlIHtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoMzMpO1xuICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhtYXJnaW4tYm90dG9tLCAzKTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCR0YWJsZXQpIHtcbiAgICAgIHBhZGRpbmctbGVmdDogNHJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKG1hcmdpbi1ib3R0b20sIDEuOCk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3Atc21hbGwpIHtcbiAgICAgIHBhZGRpbmctbGVmdDogNHJlbTtcbiAgICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhtYXJnaW4tYm90dG9tLCAzKTtcbiAgICB9XG5cblxuICB9XG5cbiAgLnNlY3Rpb25fX2Rlc2NyaXB0aW9uIHtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoMTgpO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkdGFibGV0KSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDRyZW07XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3Atc21hbGwpIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgfVxuICB9XG5cbiAgLnNlY3Rpb25fX2J1dHRvbnMge1xuICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhtYXJnaW4tdG9wLCAxMCk7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkdGFibGV0KSB7XG4gICAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2sobWFyZ2luLXRvcCwgNSk7XG5cbiAgICAgIC50b3VjaGV2ZW50cyAmIHtcbiAgICAgICAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKG1hcmdpbi10b3AsIDIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wLXNtYWxsKSB7XG4gICAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2sobWFyZ2luLXRvcCwgMTApO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wLXNob3J0KSB7XG4gICAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2sobWFyZ2luLXRvcCwgMik7XG4gICAgfVxuICB9XG59XG4iLCIuYnVuZGxlZC1wcm9kdWN0c3tcbiAgLmJ1dHRvbi13cmFwcGVye1xuICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhtYXJnaW4sIDUsIDApO1xuICB9XG4gIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhtYXJnaW4tYm90dG9tLCA1KTtcbn0iLCIucHJvZHVjdC1saXN0aW5nc3tcbiAgLnN1YmhlYWRlci1pbWFnZXtcbiAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2sobWF4LWhlaWdodCwgMzApO1xuICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhtaW4taGVpZ2h0LCAzMCk7XG4gIH0gXG59IiwiLnN0b3JpZXN7XG4gIC5jb250YWluZXJfX2NvbnRlbnQtaGVhZGVye1xuICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhwYWRkaW5nLWJvdHRvbSwgNSk7XG4gICAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3Atc21hbGwpIHtcbiAgICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhwYWRkaW5nLWJvdHRvbSwgOCk7XG4gICAgfVxuICB9XG59XG5cbi5kZWNpbWFsLW9uLXVzZXJzdG9yaWVze1xuICBtYXJnaW4tdG9wOiAzcmVtO1xufVxuXG4uZGVjaW1hbC1vbi11c2Vyc3RvcmllcywgLmRlY2ltYWwtb24tdXNlcnN0b3JpZXMgbGl7XG4gIG1hcmdpbi1ib3R0b206IDJyZW07XG59IiwiLnByb2Zlc3Npb25hbC10cmVhdG1lbnRze1xuICAuY29udGFpbmVyX19jb250ZW50LWhlYWRlci5yZXN1bHRze1xuICAgICBAaW5jbHVkZSByZW0tZmFsbGJhY2sobWFyZ2luLWJvdHRvbSwgNik7XG4gIH1cbn0iLCIub25saW5lLWNvbnN1bHRhdGlvbiB7XG4gIHBhZGRpbmc6IDQ2cHggMCAwO1xuXG4gIC5vbmxpbmUtY29uc3VsdGF0aW9uX19oZWFkZXIge1xuICAgIG1hcmdpbi1ib3R0b206IDQzcHg7XG4gIH1cblxuICAub25saW5lLWNvbnN1bHRhdGlvbl9fcXVlc3Rpb25uYWlyZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogNTZweDtcbiAgfVxuXG59XG4iLCIuc2tpbi1leHBsYWluZWQge1xuICBAaW5jbHVkZSByZW0tZmFsbGJhY2socGFkZGluZywgOC42LCAwLCAwKTtcbiAgQGluY2x1ZGUgcmVtLWZhbGxiYWNrKG1hcmdpbi1ib3R0b20sIDkpO1xuXG4gIC5idXR0b24tcmVjb21lbmRhdGlvbi10b29sLXdyYXAge1xuICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhtYXJnaW4sIDQuOCwgMCk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG5cbiAgLnR3by1jb2x1bW4tYm9yZGVyZWQge1xuICAgIG1hcmdpbi10b3A6IDgwcHg7XG4gICAgcGFkZGluZy10b3A6IDIycHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAudHdvLWNvbHVtbi1ib3JkZXJlZF9faW1hZ2Uge1xuICAgIHdpZHRoOiAyNzlweDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIC5zdWJoZWFkZXItcHJvZHVjdHMge1xuICAgIEBpbmNsdWRlIHJlbS1mYWxsYmFjayhtYXJnaW4tdG9wLCAxMyk7XG4gIH1cbn1cbiIsIi5jbGFzcy1kZXRhaWxzLXBhZ2Uge1xuICAucHJvZHVjdC1oZWFkZXIge1xuICAgIC5wcm9kdWN0LWhlYWRlcl9fYmFja2dyb3VuZCB7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoL2Fzc2V0cy9mcm9udGVuZC9pbWcvY2xhc3MtZGV0YWlscy9jbGFzcy1kZXRhaWxzLWJhY2tncm91bmQuanBnKTtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gICAgfVxuICB9XG5cbiAgLnByb2R1Y3QtZGV0YWlscy1wYW5lbCB7XG4gICAgLnNlYXJjaC1tYXAge1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIC5jbGFzcy1kZXRhaWxzLXBhZ2VfX2lucHV0LWNvbnRhaW5lciB7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcblxuICAgIGlucHV0IHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuXG4gICAgICB3aWR0aDogNDglO1xuICAgICAgbWFyZ2luLXJpZ2h0OiA0JTtcblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLmV2ZW50cy5jb250YWluZXJfX2NvbnRlbnR7XG4gIC5ncmlkLWl0ZW17XG4gICAgJjpob3ZlcntcbiAgICAgIGNvbG9yOiAkbGluay1ibHVlO1xuICAgICAgLnRpdGxle1xuICAgICAgICBjb2xvcjogJGxpbmstYmx1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0= */