/* stylelint-disable */
/**
 * Gets color value string and return if its a link to an other palette value
 * @param {String} value
 * @return {Boolean}
 */
/**
 * parses key passed to the getColor method
 * @param {String} paletteKey
 * @return {Object} containing a property with the palette palette and color key
 */
/**
 * returns a color value from palette
 * and checks if the palette and color exists
 *
 * @param {String} palette name of the palette (property name of this.palette)
 * @param {String} key name of the color within a palette
 *                     (property name of this.palette[paletteKey])
 * @return {String} color value
 */
/**
 * @param {String} paletteKey typically contains a palette--key string
 * @param {Array} [callStack=[]] Stores all previous calls to make sure we don't infinite loop
 * @return {Object} val: color string stored in color object, name: name in color palette
 */
/**
 * remaps all the color names to the actual color value
 * @param {Object} palettes You palette object
 * @return {Object} parsed palette with color values instead of links
 */
/* stylelint-disable */
/**
 * dialog-size - Painless CSS sizes
 * @version v1.7.0
 * (c) 2019 meodai <meodai@gmail.com> (https://github.com/meodai/)
 * @link https://github.com/meodai/dialog-size#readme
 * @license MIT
 */
/**
 * dialog-typography - SASS/SCSS module settings
 * @version v2.0.0
 * (c) 2021 meodai
 * @link https://github.com/meodai/dialog-typography#readme
 * @license MIT
 */
/* stylelint-disable-next-line scss/at-mixin-pattern */
:root,
:host {
  --color-avatar--default: #007ab8;
  --color-avatar--context: #004774;
  --color-brand--default: #262626;
  --color-brand--identity: #007ab8;
  --color-brand--contrast: #ffffff;
  --color-text--default: #262626;
  --color-text--inverted: #ffffff;
  --color-text--light: #767676;
  --color-text--imprint: #ffffff;
  --color-text--table: #4a4a4a;
  --color-text--contrast: #ffffff;
  --color-icon--contrast: #ffffff;
  --color-imageplaceholder--background: #e5f4fc;
  --color-interaction--default: #007ab8;
  --color-interaction--default-attention: #004774;
  --color-interaction--default-focus: #e5f4fc;
  --color-interaction--default-disabled: #bfe4f8;
  --color-interaction--default-active: #1c354b;
  --color-interaction--inactive: #bcbcbc;
  --color-interaction--inactive-attention: #767676;
  --color-interaction--inactive-disabled: #dbdbdb;
  --color-interaction--danger: #b80d22;
  --color-interaction--danger-attention: #8c0011;
  --color-interaction--danger-active: #d199a0;
  --color-interaction--highlight: rgba(38, 38, 38, 0.06);
  --color-interaction--inverted: #ffffff;
  --color-interaction--inverted-attention: #ffffff;
  --color-button--default: #007ab8;
  --color-button--default-attention: #004774;
  --color-button--default-active: #1c354b;
  --color-button--danger: #b80d22;
  --color-button--danger-attention: #8c0011;
  --color-button--danger-active: #d199a0;
  --color-button--disabled: #767676;
  --color-button--disabled-light: #dbdbdb;
  --color-button--inverted: #ffffff;
  --color-button--inverted-attention: rgba(255, 255, 255, 0.2);
  --color-button--inverted-disabled: rgba(255, 255, 255, 0.4);
  --color-button--inverted-primary-attention: rgba(255, 255, 255, 0.8);
  --color-layout--foundation: #ffffff;
  --color-layout--background: #ffffff;
  --color-layout--base: #ffffff;
  --color-layout--box: #f7f7f7;
  --color-layout--brand-line: #007ab8;
  --color-layout--imprint: #004774;
  --color-layout--inverted: #007ab8;
  --color-layout--line: #dbdbdb;
  --color-layout--menu: #007ab8;
  --color-layout--opaque: rgba(255, 255, 255, 0.01);
  --color-layout--semi-opaque: rgba(255, 255, 255, 0.05);
  --color-layout--opaque-dark: rgba(38, 38, 38, 0.01);
  --color-layout--opaque-inverted: rgba(0, 122, 184, 0.2);
  --color-layout--overlay: rgba(38, 38, 38, 0.85);
  --color-layout--overlay-light: rgba(38, 38, 38, 0.6);
  --color-layout--shadow: rgba(38, 38, 38, 0.85);
  --color-layout--shadow-light: rgba(38, 38, 38, 0.2);
  --color-layout--stark: #262626;
  --color-layout--tooltip: #626262;
  --color-layout--popup: #ffffff;
  --color-layout--popup-light: #ffffff;
  --color-layout--decoration: #007ab8;
  --color-link--background-attention: rgba(0, 122, 184, 0.1);
  --color-link--background-active: rgba(0, 122, 184, 0.2);
  --color-form--input-base: #ffffff;
  --color-form--input-text: #262626;
  --color-form--input-border: #767676;
  --color-form--input-border-stark: #767676;
  --color-form--label-default: #262626;
  --color-form--label-disabled: #767676;
  --color-form--label-invalid: #b80d22;
  --color-form--invalid: #b80d22;
  --color-form--disabled: #767676;
  --color-form--disabled-light: #dbdbdb;
  --color-form--placeholder: #767676;
  --color-datepicker--header: #f7f7f7;
  --color-datepicker--body: #ffffff;
  --color-datepicker--icon: #767676;
  --color-datepicker--icon-attention: #262626;
  --color-datepicker--day-selected: #004774;
  --color-datepicker--text-selected: #ffffff;
  --color-datepicker--day-attention: #007ab8;
  --color-accessible--readable: #262626;
  --color-accessible--line: #919191;
  --color-irregularity--notice: #262626;
  --color-irregularity--success: #81af17;
  --color-irregularity--warning: #b80d22;
  --color-irregularity--error: #b80d22;
  --color-irregularity--inert: #767676;
  --color-irregularity--highlight: #e5f4fc;
  --color-brands--aargau-blue: #004774;
  --color-brands--swissid-red: #eb0000;
  --color-prevnext--context: #007ab8;
  --color-prevnext--context-active: #007ab8;
  --color-prevnext--context-hover: #007ab8;
  --color-prevnext--context-visited: #007ab8;
  --color-prevnext--background: #ffffff;
  --color-prevnext--background-active: #ffffff;
  --color-prevnext--background-hover: #ffffff;
  --color-prevnext--background-visited: #ffffff;
  --color-prevnext--text: #262626;
  --color-prevnext--text-active: #007ab8;
  --color-prevnext--text-hover: #007ab8;
  --color-prevnext--text-visited: #262626;
  --color-prevnext--outline: #007ab8;
  --color-prevnext--outline-active: #007ab8;
  --color-prevnext--outline-hover: #007ab8;
  --color-prevnext--outline-visited: #007ab8;
  --color-prevnext--icon: #007ab8;
  --color-prevnext--icon-active: #007ab8;
  --color-prevnext--icon-hover: #007ab8;
  --color-prevnext--icon-visited: #007ab8;
  --color-table--highlight: #e5f4fc;
  --color-table--line: #dbdbdb;
  --color-specialteasercollection--primary: #007ab8;
  --color-specialteasercollection--accent: #ffe5e9;
  --color-specialteasercollection--secondary-1: #e5f4fc;
  --color-specialteasercollection--secondary-2: #eeeeee;
  --color-specialteasercollection--secondary-3: #004774;
  --color-specialteasercollection--primary-text: #ffffff;
  --color-specialteasercollection--accent-text: #262626;
  --color-specialteasercollection--secondary-1-text: #262626;
  --color-specialteasercollection--secondary-2-text: #262626;
  --color-specialteasercollection--secondary-3-text: #ffffff;
  --color-herofigure--background: #e5f4fc;
  --color-colorschemeswitch--sun: #ffd44f;
  --color-colorschemeswitch--sun-shade: #e2af3b;
  --color-colorschemeswitch--sun-shine: #ffef2c;
  --color-colorschemeswitch--moon: #ffffff;
  --color-colorschemeswitch--moon-shine: #ffffff;
  --color-colorschemeswitch--moon-shade: #dbdbdb;
  --color-crisis--background-primary: #007ab8;
  --color-crisis--background-secondary: #767676;
  --color-crisis--background-warning: #b80d22;
  --color-crisis--text-primary: #ffffff;
  --color-crisis--text-secondary: #ffffff;
  --color-crisis--text-warning: #ffffff;
  --color-crisis--line: rgba(255, 255, 255, 0.5);
  --color-imagegallery--highlight: #e5f4fc;
  --color-imageproduct--text-default: #004774;
  --color-imageproduct--sprite: #007ab8;
  --color-imageproduct--background: #bfe4f8;
  --color-tag--default: #eeeeee;
  --color-tag--default-attention: #dbdbdb;
}

body {
  color: var(--color-text--default);
  background-color: var(--color-layout--foundation);
}

[data-color-scheme=dark][data-color-scheme=dark] {
  --color-avatar--default: #85d6ff;
  --color-avatar--context: #c2ebff;
  --color-brand--default: #ffffff;
  --color-brand--identity: #007ab8;
  --color-brand--contrast: #262626;
  --color-text--default: #ffffff;
  --color-text--inverted: #262626;
  --color-text--light: rgba(255, 255, 255, 0.9);
  --color-text--imprint: #262626;
  --color-text--table: #4a4a4a;
  --color-text--contrast: #ffffff;
  --color-icon--contrast: #ffffff;
  --color-imageplaceholder--background: #e5f4fc;
  --color-interaction--default: #85d6ff;
  --color-interaction--default-attention: #a3e0ff;
  --color-interaction--default-focus: #e5f4fc;
  --color-interaction--default-disabled: #bfe4f8;
  --color-interaction--default-active: #c2ebff;
  --color-interaction--inactive: #bcbcbc;
  --color-interaction--inactive-attention: #767676;
  --color-interaction--inactive-disabled: #dbdbdb;
  --color-interaction--danger: #ff5e72;
  --color-interaction--danger-attention: #8c0011;
  --color-interaction--danger-active: #d199a0;
  --color-interaction--highlight: rgba(255, 255, 255, 0.05);
  --color-interaction--inverted: #262626;
  --color-interaction--inverted-attention: #262626;
  --color-button--default: #85d6ff;
  --color-button--default-attention: #a3e0ff;
  --color-button--default-active: #c2ebff;
  --color-button--danger: #b80d22;
  --color-button--danger-attention: #8c0011;
  --color-button--danger-active: #d199a0;
  --color-button--disabled: #4a4a4a;
  --color-button--disabled-light: #dbdbdb;
  --color-button--inverted: #262626;
  --color-button--inverted-attention: rgba(255, 255, 255, 0.2);
  --color-button--inverted-disabled: rgba(255, 255, 255, 0.4);
  --color-button--inverted-primary-attention: rgba(255, 255, 255, 0.8);
  --color-layout--foundation: #1b252f;
  --color-layout--background: #1b252f;
  --color-layout--base: #1b252f;
  --color-layout--box: #3d464e;
  --color-layout--brand-line: #007ab8;
  --color-layout--imprint: #263039;
  --color-layout--inverted: #007ab8;
  --color-layout--line: #3d464e;
  --color-layout--menu: #007ab8;
  --color-layout--opaque: rgba(27, 37, 47, 0.1);
  --color-layout--semi-opaque: rgba(255, 255, 255, 0.05);
  --color-layout--opaque-inverted: #007ab8;
  --color-layout--overlay: rgba(255, 255, 255, 0.4);
  --color-layout--overlay-light: rgba(38, 38, 38, 0.6);
  --color-layout--shadow: rgba(38, 38, 38, 0.85);
  --color-layout--shadow-light: rgba(38, 38, 38, 0.2);
  --color-layout--stark: #ffffff;
  --color-layout--tooltip: #5f666d;
  --color-layout--popup: #323b44;
  --color-layout--popup-light: #495159;
  --color-layout--decoration: #85d6ff;
  --color-link--background-attention: rgba(0, 122, 184, 0.1);
  --color-link--background-active: rgba(0, 122, 184, 0.2);
  --color-form--input-base: #1b252f;
  --color-form--input-text: #ffffff;
  --color-form--input-border: #5f666d;
  --color-form--input-border-stark: rgba(255, 255, 255, 0.9);
  --color-form--label-default: #ffffff;
  --color-form--label-disabled: #767676;
  --color-form--label-invalid: #ff5e72;
  --color-form--invalid: #ff5e72;
  --color-form--disabled: #767676;
  --color-form--disabled-light: #dbdbdb;
  --color-form--placeholder: rgba(255, 255, 255, 0.5);
  --color-datepicker--header: #5f666d;
  --color-datepicker--body: #495159;
  --color-datepicker--icon: rgba(255, 255, 255, 0.5);
  --color-datepicker--icon-attention: #ffffff;
  --color-datepicker--day-selected: #a3e0ff;
  --color-datepicker--text-selected: #262626;
  --color-datepicker--day-attention: #85d6ff;
  --color-accessible--readable: #262626;
  --color-accessible--line: #919191;
  --color-irregularity--notice: #263039;
  --color-irregularity--success: #81af17;
  --color-irregularity--warning: #ff5e72;
  --color-irregularity--error: #ff5e72;
  --color-irregularity--inert: #767676;
  --color-irregularity--highlight: #3b5a6d;
  --color-brands--aargau-blue: #004774;
  --color-brands--swissid-red: #eb0000;
  --color-prevnext--context: #85d6ff;
  --color-prevnext--context-active: #85d6ff;
  --color-prevnext--context-hover: #85d6ff;
  --color-prevnext--context-visited: #85d6ff;
  --color-prevnext--background: #1b252f;
  --color-prevnext--background-active: #1b252f;
  --color-prevnext--background-hover: #1b252f;
  --color-prevnext--background-visited: #1b252f;
  --color-prevnext--text: #ffffff;
  --color-prevnext--text-active: #85d6ff;
  --color-prevnext--text-hover: #85d6ff;
  --color-prevnext--text-visited: #ffffff;
  --color-prevnext--outline: #85d6ff;
  --color-prevnext--outline-active: #85d6ff;
  --color-prevnext--outline-hover: #85d6ff;
  --color-prevnext--outline-visited: #85d6ff;
  --color-prevnext--icon: #85d6ff;
  --color-prevnext--icon-active: #85d6ff;
  --color-prevnext--icon-hover: #85d6ff;
  --color-prevnext--icon-visited: #85d6ff;
  --color-table--highlight: #2b404e;
  --color-table--line: #263039;
  --color-specialteasercollection--primary: #85d6ff;
  --color-specialteasercollection--accent: #ffe5e9;
  --color-specialteasercollection--secondary-1: #daf3ff;
  --color-specialteasercollection--secondary-2: #5f666d;
  --color-specialteasercollection--secondary-3: #2b404e;
  --color-specialteasercollection--primary-text: #262626;
  --color-specialteasercollection--accent-text: #262626;
  --color-specialteasercollection--secondary-1-text: #262626;
  --color-specialteasercollection--secondary-2-text: #ffffff;
  --color-specialteasercollection--secondary-3-text: #ffffff;
  --color-herofigure--background: #daf3ff;
  --color-crisis--background-primary: #007ab8;
  --color-crisis--background-secondary: #495159;
  --color-crisis--background-warning: #b80d22;
  --color-crisis--text-primary: #ffffff;
  --color-crisis--text-secondary: #ffffff;
  --color-crisis--text-warning: #ffffff;
  --color-crisis--line: rgba(255, 255, 255, 0.5);
  --color-imagegallery--highlight: #2b404e;
  --color-imageproduct--text-default: #ffffff;
  --color-imageproduct--sprite: #007ab8;
  --color-imageproduct--background: #1b252f;
  --color-tag--default: #5f666d;
  --color-tag--default-attention: #3d464e;
}

[data-color-scheme-transition] *:not(.schemeswitch *) {
  transition: color 0.3s ease-out, background-color 0.3s ease-out !important;
}

:root {
  font-size: 62.5%;
}

:root,
:host {
  /* @link https://utopia.fyi/space/calculator?c=320,16,1.25,1440,24,1.333,4,1,&s=0.75|0.5|0.25,1.5|2|2.5|3|3.5|4|5|6|7,xs-m|m-2xl&g=s,l,xl,12 */
  --size-3xs: clamp(0.4rem, 0.34288rem + 0.1786vw, 0.6rem);
  --size-2xs: clamp(0.8rem, 0.68576rem + 0.3571vw, 1.2rem);
  --size-xs: clamp(1.2rem, 1.02864rem + 0.5357vw, 1.8rem);
  --size-s: clamp(1.6rem, 1.37136rem + 0.7143vw, 2.4rem);
  --size-m: clamp(2.4rem, 2.05712rem + 1.0714vw, 3.6rem);
  --size-l: clamp(3.2rem, 2.74288rem + 1.4286vw, 4.8rem);
  --size-xl: clamp(4rem, 3.42864rem + 1.7857vw, 6rem);
  --size-2xl: clamp(4.8rem, 4.11424rem + 2.1429vw, 7.2rem);
  --size-3xl: clamp(5.6rem, 4.8rem + 2.5vw, 8.4rem);
  --size-4xl: clamp(6.4rem, 5.48576rem + 2.8571vw, 9.6rem);
  --size-5xl: clamp(8rem, 6.85712rem + 3.5714vw, 12rem);
  --size-6xl: clamp(9.6rem, 8.22864rem + 4.2857vw, 14.4rem);
  --size-7xl: clamp(11.2rem, 9.6rem + 5vw, 16.8rem);
  /* One-up pairs */
  --size-3xs-2xs: clamp(0.4rem, 0.17136rem + 0.7143vw, 1.2rem);
  --size-2xs-xs: clamp(0.8rem, 0.51424rem + 0.8929vw, 1.8rem);
  --size-xs-s: clamp(1.2rem, 0.85712rem + 1.0714vw, 2.4rem);
  --size-s-m: clamp(1.6rem, 1.02864rem + 1.7857vw, 3.6rem);
  --size-m-l: clamp(2.4rem, 1.71424rem + 2.1429vw, 4.8rem);
  --size-l-xl: clamp(3.2rem, 2.4rem + 2.5vw, 6rem);
  --size-xl-2xl: clamp(4rem, 3.08576rem + 2.8571vw, 7.2rem);
  --size-2xl-3xl: clamp(4.8rem, 3.77136rem + 3.2143vw, 8.4rem);
  --size-3xl-4xl: clamp(5.6rem, 4.45712rem + 3.5714vw, 9.6rem);
  --size-4xl-5xl: clamp(6.4rem, 4.8rem + 5vw, 12rem);
  --size-5xl-6xl: clamp(8rem, 6.17136rem + 5.7143vw, 14.4rem);
  --size-6xl-7xl: clamp(9.6rem, 7.54288rem + 6.4286vw, 16.8rem);
  /* Custom pairs */
  --size-xs-m: clamp(1.2rem, 0.51424rem + 2.1429vw, 3.6rem);
  --size-s-l: clamp(1.6rem, 0.68576rem + 2.8571vw, 4.8rem);
  --size-m-2xl: clamp(2.4rem, 1.02864rem + 4.2857vw, 7.2rem);
  --size-l-3xl: clamp(3.2rem, 1.71424rem + 3.5714vw, 8.4rem);
  --size-xl-4xl: clamp(4rem, 2.4rem + 5vw, 9.6rem);
  --size-layout-width-min: 32rem;
  --size-layout-width-max: 144rem;
  --size-layout-margin: var(--size-xs-s);
  --size-layout-line: 0.1rem;
  --size-content-stack: var(--size-xs-s);
  --size-link-underline-offset: 0.3em;
  --size-link-text-decoration-thickness: 0.055em;
  /* @link https://utopia.fyi/grid/calculator?c=320,16,1.25,1464,16,1.333,4,1,&s=0.75|0.5,1.5|2|3|4|6,s-l&g=s,m,3xl,12 */
  --size-layoutgrid-max-width: calc(var(--size-layout-width-max) - 2 * var(--size-layout-margin));
  --size-layoutgrid-columns: 12;
  --size-layoutgrid-gutter: var(--size-layout-margin);
  --size-layoutgrid-column-width: calc((var(--size-layoutgrid-max-width) - (var(--size-layoutgrid-gutter) * (var(--size-layoutgrid-columns) - 1))) / var(--size-layoutgrid-columns));
  --size-layoutgrid-column-width-fluid: calc((100% - (var(--size-layoutgrid-gutter) * (var(--size-layoutgrid-columns) - 1))) / var(--size-layoutgrid-columns));
}

:root,
:host {
  --typo-size--2: clamp(1.328rem, 1.28rem + 0.15vw, 1.5rem);
  --typo-size--1: clamp(1.4rem, 1.28rem + 0.3vw, 1.8rem);
  --typo-size-0: clamp(1.6rem, 1.456rem + 0.45vw, 2.096rem);
  --typo-size-1: clamp(2rem, 1.76rem + 0.75vw, 2.832rem);
  --typo-size-2: clamp(2.496rem, 2.128rem + 1.18vw, 3.824rem);
  --typo-size-3: clamp(3.12rem, 2.544rem + 1.82vw, 5.168rem);
  --typo-size-4: clamp(3.904rem, 3.024rem + 2.74vw, 6.976rem);
}

:root,
:host > * {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-display: auto;
}

@font-face {
  font-family: icons;
  src: url("../fonts/icons.woff2") format("woff2"), url("../fonts/icons.woff") format("woff");
  font-weight: normal;
  font-style: normal;
}
.icon::before {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  content: "";
  font-family: "icons";
  font-style: normal;
  font-variant: normal;
  font-weight: normal;
  line-height: 1;
  speak: none;
  text-transform: none;
}

.icon--arrow-down::before {
  content: "\ea01";
}

.icon--arrow-left::before {
  content: "\ea02";
}

.icon--attention::before {
  content: "\ea05";
}

.icon--audio::before {
  content: "\ea06";
}

.icon--backward::before {
  content: "\ea08";
}

.icon--shoppingcart::before {
  content: "\ea09";
}

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

.icon--email::before {
  content: "\ea0c";
}

.icon--end::before {
  content: "\ea0d";
}

.icon--file::before {
  content: "\ea0f";
}

.icon--forward::before {
  content: "\ea11";
}

.icon--i::before {
  content: "\ea14";
}

.icon--link-anchor::before {
  content: "\ea15";
}

.icon--link-external::before {
  content: "\ea16";
}

.icon--link-internal::before {
  content: "\ea17";
}

.icon--login::before {
  content: "\ea1d";
}

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

.icon--start::before {
  content: "\ea24";
}

.icon--triangle-down::before {
  content: "\ea27";
}

.icon--triangle-up::before {
  content: "\ea2a";
}

.icon--logout::before {
  content: "\ea2d";
}

.icon--video::before {
  content: "\ea2e";
}

.icon--wastebin::before {
  content: "\ea2f";
}

.icon--zoom-in::before {
  content: "\ea32";
}

.icon--success::before {
  content: "\ea36";
}

.icon--pencil::before {
  content: "\ea37";
}

.icon--i-circlefilled::before {
  content: "\ea3b";
}

.icon--calendar::before {
  content: "\ea40";
}

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

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

.icon--eye-closed::before {
  content: "\ea43";
}

.icon--eye-open::before {
  content: "\ea44";
}

.icon--switch::before {
  content: "\ea45";
}

.icon--file-exe::before {
  content: "\ea46";
}

.icon--file-pdf::before {
  content: "\ea47";
}

.icon--file-ppt::before {
  content: "\ea48";
}

.icon--file-rar::before {
  content: "\ea49";
}

.icon--file-rtf::before {
  content: "\ea50";
}

.icon--file-word::before {
  content: "\ea51";
}

.icon--file-excel::before {
  content: "\ea52";
}

.icon--file-zip::before {
  content: "\ea53";
}

.icon--image::before {
  content: "\ea54";
}

.icon--upload::before {
  content: "\ea57";
}

.richtext::after {
  display: block;
  content: "";
  clear: both;
}
.richtext p:not([class]) {
  margin-top: var(--size-content-stack);
  margin-bottom: 0;
  line-height: 1.5;
}
.richtext .h2 {
  margin-top: 1.5em;
}
.richtext .h3 {
  margin-top: 1.45em;
}
.richtext .h4,
.richtext .h5,
.richtext .h6 {
  margin-top: 1.2em;
}
.richtext .image,
.richtext .mosaic,
.richtext .linklist {
  margin-top: var(--size-content-stack);
  margin-bottom: 0;
}
.richtext hr {
  margin-top: var(--size-content-stack);
  margin-bottom: 0;
  display: block;
  clear: both;
  height: 1px;
  border: 0;
  background: var(--color-accessible--line);
}
.richtext ul:not([class]),
.richtext ol:not([class]) {
  margin-top: var(--size-content-stack);
  margin-bottom: 0;
  padding-left: 2.25em;
  page-break-inside: avoid;
  display: table;
}
@media (min-width: 992px) {
  .richtext ul:not([class]),
  .richtext ol:not([class]) {
    /* stylelint-disable-next-line scss/no-global-function-names */
  }
}
@media print {
  .richtext ul:not([class]),
  .richtext ol:not([class]) {
    /* stylelint-disable-next-line scss/no-global-function-names */
  }
}
.richtext ul:not([class]) ul,
.richtext ul:not([class]) ol,
.richtext ol:not([class]) ul,
.richtext ol:not([class]) ol {
  margin-top: 0;
  padding-left: 1.5em;
}
.richtext ul:not([class]) li,
.richtext ol:not([class]) li {
  line-height: 1.35em;
  margin-top: 0.15em;
}
.richtext ul:not([class]) > li {
  list-style-type: disc;
}
.richtext ol:not([class]) > li {
  list-style-type: decimal;
}
.richtext:first-child > :first-child {
  margin-top: 0;
}
.richtext .image--float-left + p:not([class]),
.richtext .image--float-right + p:not([class]),
.richtext .mosaic--float-left + p:not([class]),
.richtext .mosaic--float-right + p:not([class]) {
  margin-top: calc(var(--size-content-stack) - 0.5em);
}
.richtext .image--float-left:first-child,
.richtext .image--float-right:first-child,
.richtext .mosaic--float-left:first-child,
.richtext .mosaic--float-right:first-child {
  margin-top: 0.4em;
}

.h1 {
  font-size: var(--typo-size-4);
  font-weight: 700;
  line-height: 1.2;
  page-break-after: avoid;
}
@media (min-width: 992px) {
  .h1 {
    /* stylelint-disable-next-line scss/no-global-function-names */
  }
}
@media print {
  .h1 {
    /* stylelint-disable-next-line scss/no-global-function-names */
  }
}

.h1--visuallyhidden {
  position: absolute;
  border: 0;
  clip: rect(0 0 0 0);
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
}
.h1--visuallyhidden.focusable:focus, .h1--visuallyhidden.focusable:active {
  position: static;
  clip: auto;
  width: auto;
  height: auto;
  margin: 0;
  overflow: visible;
}

.h2 {
  font-size: var(--typo-size-2);
  font-weight: 700;
  line-height: 1.25;
  page-break-after: avoid;
}
@media (min-width: 992px) {
  .h2 {
    /* stylelint-disable-next-line scss/no-global-function-names */
  }
}
@media print {
  .h2 {
    /* stylelint-disable-next-line scss/no-global-function-names */
  }
}

.h3 {
  font-size: var(--typo-size-1);
  font-weight: 700;
  line-height: 1.3;
  page-break-after: avoid;
}
@media (min-width: 992px) {
  .h3 {
    /* stylelint-disable-next-line scss/no-global-function-names */
  }
}
@media print {
  .h3 {
    /* stylelint-disable-next-line scss/no-global-function-names */
  }
}

.h4,
.h5,
.h6 {
  font-size: var(--typo-size-0);
  font-weight: 700;
  page-break-after: avoid;
}
@media (min-width: 992px) {
  .h4,
  .h5,
  .h6 {
    /* stylelint-disable-next-line scss/no-global-function-names */
  }
}
@media print {
  .h4,
  .h5,
  .h6 {
    /* stylelint-disable-next-line scss/no-global-function-names */
  }
}

.staatskalenderaddress {
  display: flex;
  flex-direction: column;
}
.staatskalenderaddress__touchpoints {
  display: flex;
  flex-wrap: wrap;
  list-style: none;
  padding: 0;
  margin: -1.2rem 0 0 -1.2rem;
  max-width: 600px;
}
@media (min-width: 600px) {
  .staatskalenderaddress__touchpoints {
    margin-top: -1.8rem;
  }
}
@media print {
  .staatskalenderaddress__touchpoints {
    display: none;
  }
}
.staatskalenderaddress__touchpoint {
  display: inline-block;
  width: calc(50% - 1.2rem);
  margin-left: 1.2rem;
}
.staatskalenderaddress__link {
  padding-left: 0;
  padding-right: 0;
}
.staatskalenderaddress__link.staatskalenderaddress__link {
  margin-top: 1.2rem;
}
.sprite + .staatskalenderaddress__label {
  margin-left: 0.4em;
}
.staatskalenderaddress__infos {
  font-style: normal;
  margin-top: 1.5em;
  line-height: 1.5em;
}
.staatskalenderaddress__paragraph:first-child {
  margin-top: 0;
}
.staatskalenderaddress__organisation:first-child, .staatskalenderaddress__fullname:first-child, .staatskalenderaddress__role:first-child {
  font-weight: 600;
}
.staatskalenderaddress__address {
  margin-top: 0;
}
.staatskalenderaddress__contactform, .staatskalenderaddress__email, .staatskalenderaddress__website, .staatskalenderaddress__phone {
  display: none;
  visibility: hidden;
  font-weight: normal;
}
@media print {
  .staatskalenderaddress__contactform, .staatskalenderaddress__email, .staatskalenderaddress__website, .staatskalenderaddress__phone {
    display: block;
    visibility: visible;
  }
}
.staatskalenderaddress__contactform--other, .staatskalenderaddress__email--other, .staatskalenderaddress__website--other, .staatskalenderaddress__phone--other {
  display: block;
  visibility: visible;
}
.staatskalenderaddress__suffix {
  position: absolute;
  border: 0;
  clip: rect(0 0 0 0);
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
}
.staatskalenderaddress__suffix.focusable:focus, .staatskalenderaddress__suffix.focusable:active {
  position: static;
  clip: auto;
  width: auto;
  height: auto;
  margin: 0;
  overflow: visible;
}
.staatskalenderaddress__organisation, .staatskalenderaddress__fullname {
  display: block;
}

.staatskalenderindex--hidden {
  display: none;
  visibility: hidden;
}

.staatskalenderlist {
  padding-left: 0;
  page-break-inside: avoid;
  line-height: 1.2;
}
.staatskalenderlist__entry {
  margin-bottom: 0.9rem;
  margin-top: 0.15em;
  line-height: 1.35em;
  list-style-type: none;
}
.staatskalenderlist__link {
  color: var(--color-interaction--default);
  text-decoration: none;
  text-underline-offset: var(--size-link-underline-offset);
  transition: color 0.1s ease-out, background-color 0.1s ease-out;
  display: block;
  position: relative;
  padding-left: 1.8em;
}
.staatskalenderlist__link:link {
  color: var(--color-interaction--default);
}
.staatskalenderlist__link:visited {
  color: var(--color-interaction--default);
  text-decoration: none;
}
@media print {
  .staatskalenderlist__link {
    text-decoration: underline;
    text-decoration-thickness: var(--size-link-text-decoration-thickness);
  }
}
.staatskalenderlist__link::before {
  display: inline-block;
  text-decoration: underline;
}
.staatskalenderlist__link::after {
  text-decoration: underline;
}
.staatskalenderlist__link::before {
  text-decoration: none;
}
.staatskalenderlist__link::after {
  text-decoration: none;
}
.staatskalenderlist__link:hover, .staatskalenderlist__link:focus-visible {
  color: var(--color-interaction--default-attention);
  text-decoration: underline;
  text-decoration-thickness: var(--size-link-text-decoration-thickness);
}
.staatskalenderlist__link:focus-visible {
  outline: 0.2rem solid var(--color-brand--default);
  outline-offset: 0.3rem;
  color: var(--color-interaction--default-attention);
}
.staatskalenderlist__link:active {
  color: var(--color-interaction--default-active);
  text-decoration: underline;
  text-decoration-thickness: var(--size-link-text-decoration-thickness);
}
.staatskalenderlist__link:hover::before, .staatskalenderlist__link:active::before {
  text-decoration: none;
}
.staatskalenderlist__link::before {
  text-decoration: none;
}
.staatskalenderlist__link.staatskalenderlist__link.staatskalenderlist__link.staatskalenderlist__link {
  margin: 0;
}
.staatskalenderlist__link.staatskalenderlist__link:hover {
  text-decoration: none;
}
.staatskalenderlist__link .sprite {
  height: 1em;
  width: 1em;
  position: absolute;
  left: 0;
  top: 0;
  color: var(--color-text--default);
}
.staatskalenderlist__link .sprite--usergroup {
  height: 1.22em;
  width: 1.22em;
  top: 0.05em;
}
.staatskalenderlist__link .sprite--user {
  width: 0.96em;
  height: 0.96em;
  top: 0.1em;
  left: 0.3em;
}
.staatskalenderlist__link:hover .staatskalenderlist__heading {
  text-decoration: underline;
}
.staatskalenderlist__function {
  font-size: var(--typo-size--1);
  color: var(--color-text--default);
  text-decoration: none;
  margin: 0;
}
@media (min-width: 992px) {
  .staatskalenderlist__function {
    /* stylelint-disable-next-line scss/no-global-function-names */
  }
}
@media print {
  .staatskalenderlist__function {
    /* stylelint-disable-next-line scss/no-global-function-names */
  }
}
.staatskalenderlist__organisation {
  font-size: var(--typo-size--2);
  color: var(--color-text--light);
  text-decoration: none;
  margin: 0;
}
@media (min-width: 992px) {
  .staatskalenderlist__organisation {
    /* stylelint-disable-next-line scss/no-global-function-names */
  }
}
@media print {
  .staatskalenderlist__organisation {
    /* stylelint-disable-next-line scss/no-global-function-names */
  }
}
.staatskalenderlist .linklist {
  margin-top: 0.5em;
}

.staatskalenderresults {
  position: relative;
  min-height: 10rem;
}

.staatskalenderresults--hidden,
.staatskalenderresults__more--hidden,
.staatskalenderresults__loading--hidden {
  display: none;
  visibility: hidden;
}

.staatskalenderresults__loading {
  position: absolute;
  left: 45%;
}

.staatskalendersearch {
  position: relative;
  margin-top: 4rem;
}
@media print {
  .staatskalendersearch {
    display: none;
    visibility: hidden;
  }
}

.staatskalendersearch__label {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 1.2rem;
  height: 1.22em;
  width: 1.22em;
}
@media (min-width: 992px) {
  .staatskalendersearch__label {
    transform: translateY(-52%);
    height: 1.08em;
    width: 1.08em;
  }
}
.staatskalendersearch__label > .sprite {
  position: relative;
  color: var(--color-text--table);
}
.staatskalendersearch__label > .sprite > svg {
  display: block;
  width: 100%;
  height: 100%;
}

.staatskalendersearch__input {
  --color-form-input-border: var(--color-form--input-border);
  box-sizing: border-box;
  width: 100%;
  color: var(--color-text--default);
  background-color: var(--color-form--input-base);
  border: var(--size-layout-line) solid var(--color-form-input-border);
  border-radius: 0;
  box-shadow: none;
  padding: 0.35em 0.5em 0.25em;
  page-break-inside: avoid;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  padding: 0.6em 1em 0.6em 4rem;
  line-height: 1;
  border-radius: 0.4rem;
}
.staatskalendersearch__input:focus, .staatskalendersearch__input:focus-visible {
  --color-form-input-border: var(--color-text--default);
  box-shadow: inset 0 0 0 var(--size-layout-line) var(--color-form-input-border);
  outline: 0;
}
.staatskalendersearch__input::-moz-placeholder {
  opacity: 1;
  color: var(--color-form--placeholder);
}
.staatskalendersearch__input::placeholder {
  opacity: 1;
  color: var(--color-form--placeholder);
}
@media (min-width: 992px) {
  .staatskalendersearch__input {
    padding: 0.6em 1em 0.6em 4rem;
  }
}
.staatskalendersearch__input.staatskalendersearch__input {
  height: auto;
}

.staatskalendersearch__label-text {
  position: absolute;
  border: 0;
  clip: rect(0 0 0 0);
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
}
.staatskalendersearch__label-text.focusable:focus, .staatskalendersearch__label-text.focusable:active {
  position: static;
  clip: auto;
  width: auto;
  height: auto;
  margin: 0;
  overflow: visible;
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL25vZGVfbW9kdWxlcy9Aa3RhZy9zdHlsZWd1aWRlL3NyYy9zdHlsZXNoZWV0cy9saWIvcGFyc2UtcGFsZXR0ZXMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9Aa3RhZy9zdHlsZWd1aWRlL3NyYy9zdHlsZXNoZWV0cy9saWIvY29sb3ItaGVscGVyLWZuLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZGlhbG9nLXNpemUvZGlzdC9kaWFsb2ctc2l6ZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2RpYWxvZy10eXBvZ3JhcGh5L2Rpc3QvZGlhbG9nLXR5cG9ncmFwaHkuc2NzcyIsIjFfc2V0dGluZ3MvX2Rlc2lnbi10eXBvLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvQGt0YWcvc3R5bGVndWlkZS9zcmMvc3R5bGVzaGVldHMvMV9zZXR0aW5ncy9fY29sb3JzLnNjc3MiLCJzdGFhdHNrYWxlbmRlci5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvQGt0YWcvc3R5bGVndWlkZS9zcmMvc3R5bGVzaGVldHMvMV9zZXR0aW5ncy9fc2l6ZXMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9Aa3RhZy9zdHlsZWd1aWRlL3NyYy9zdHlsZXNoZWV0cy8xX3NldHRpbmdzL190eXBvZ3JhcGh5LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvQGt0YWcvc3R5bGVndWlkZS9zcmMvc3R5bGVzaGVldHMvMl90b29scy9fZm9udC1mYWNlLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvQGt0YWcvc3R5bGVndWlkZS9zcmMvc3R5bGVzaGVldHMvMl90b29scy9faWNvbnMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9Aa3RhZy9zdHlsZWd1aWRlL3NyYy9zdHlsZXNoZWV0cy8yX3Rvb2xzL19jbGVhcmZpeC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL0BrdGFnL3N0eWxlZ3VpZGUvc3JjL2NvbXBvbmVudHMvcmljaHRleHQvcmljaHRleHQuc2NzcyIsIjFfc2V0dGluZ3MvX2dsb2JhbHMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9Aa3RhZy9zdHlsZWd1aWRlL3NyYy9zdHlsZXNoZWV0cy8yX3Rvb2xzL19tZWRpYXF1ZXJ5LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvQGt0YWcvc3R5bGVndWlkZS9zcmMvY29tcG9uZW50cy9oZWFkaW5nL2hlYWRpbmcuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9Aa3RhZy9zdHlsZWd1aWRlL3NyYy9zdHlsZXNoZWV0cy8yX3Rvb2xzL19oaWRkZW4uc2NzcyIsIi4uL2NvbXBvbmVudHMvc3RhYXRza2FsZW5kZXJhZGRyZXNzL3N0YWF0c2thbGVuZGVyYWRkcmVzcy5zY3NzIiwiLi4vY29tcG9uZW50cy9zdGFhdHNrYWxlbmRlcmluZGV4L3N0YWF0c2thbGVuZGVyaW5kZXguc2NzcyIsIi4uL2NvbXBvbmVudHMvc3RhYXRza2FsZW5kZXJsaXN0L3N0YWF0c2thbGVuZGVybGlzdC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL0BrdGFnL3N0eWxlZ3VpZGUvc3JjL3N0eWxlc2hlZXRzLzJfdG9vbHMvX2xpbmtzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvQGt0YWcvc3R5bGVndWlkZS9zcmMvc3R5bGVzaGVldHMvMl90b29scy9fZm9jdXMuc2NzcyIsIi4uL2NvbXBvbmVudHMvc3RhYXRza2FsZW5kZXJyZXN1bHRzL3N0YWF0c2thbGVuZGVycmVzdWx0cy5zY3NzIiwiLi4vY29tcG9uZW50cy9zdGFhdHNrYWxlbmRlcnNlYXJjaC9zdGFhdHNrYWxlbmRlcnNlYXJjaC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL0BrdGFnL3N0eWxlZ3VpZGUvc3JjL2NvbXBvbmVudHMvZm9ybS9mb3JtLWlucHV0LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsc0JBQUE7QUF3QkE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUF3QkE7Ozs7Ozs7O0VBQUE7QUF3QkE7Ozs7RUFBQTtBQTZCQTs7OztFQUFBO0FDOUdB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QUNBLHdCQUFBO0VBR0Esd0JBQUE7S0FBQSxxQkFBQTtVQUFBLGdCQUFBO0VER0EsNkJBQUE7RUFDQSxjQUFBO0VBQ0EscUJBQUE7QWpCK2dDRjtBa0JsaENFO0VBRUUscURBQUE7RUFDQSw4RUFBQTtFQUNBLFVBQUE7QWxCbWhDSjtBa0JoaENFO0VBQ0UsVUFBQTtFQUNBLHFDQUFBO0FsQmtoQ0o7QWtCcGhDRTtFQUNFLFVBQUE7RUFDQSxxQ0FBQTtBbEJraENKO0FRcGpDSTtFU3dCSjtJQU9JLDZCQUFBO0VqQnloQ0Y7QUFDRjtBaUJ2aENFO0VBQ0UsWUFBQTtBakJ5aENKOztBaUJyaENBO0VQcENFLGtCQUFBO0VBQ0EsU0FBQTtFQUNBLG1CQUFBO0VBQ0EsVUFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsVUFBQTtFQUNBLGdCQUFBO0FWNmpDRjtBVXhqQ0k7RUFFRSxnQkFBQTtFQUNBLFVBQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLFNBQUE7RUFDQSxpQkFBQTtBVnlqQ04iLCJmaWxlIjoic3RhYXRza2FsZW5kZXIuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyogc3R5bGVsaW50LWRpc2FibGUgKi9cblxuLy8gQmFzZWQgb24gUGFsZXR0ZXJcbi8vIE1JVCBMaWNlbnNlLCBDb3B5cmlnaHQgKGMpIDIwMTcgRGF2aWQgQWVybmVcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9tZW9kYWkvcGFsZXR0ZXJcblxuLy8gVGhpcyBkb2VzIHRoZSBzYW1lIHRoYW4gaW5kZXguanMgYnV0IGluIFNBU1MgdXNpbmcgU0FTUy1NYXBzXG4vLyB5b3UgbmVlZCB0byBoYXZlIGEgdmFyaWFibGUgY2FsbGVkICRjb2xvcnMgY29udGFpbmluZyBhIG1hcCBvZiBjb2xyb3JzXG4vLyBsaWtlOiAkY29sb3JzOiAocmVkOyAjZjAwLCBncmVlbjogIzBmMCk7XG4vLyBhbmQgYSBtYXAgY29udGFpbmluZyB5b3VyIHBhbGV0dGVzOiAkcGFsZXR0ZXM6IChicmFuZDogKHByaW1hcnk6IHJlZCkpO1xuXG4kc2VwYXJhdG9yOiAnLS0nO1xuJG1vZGlmaWVyOiAnJztcbiRkZWZhdWx0Q29sb3JLZXk6ICdkZWZhdWx0JztcbiRwYXJzZWRQYWxldHRlOiAoKTtcblxuQGZ1bmN0aW9uIGNvbnRhaW5zKCRsaXN0LCAkdmFyKSB7XG4gIEByZXR1cm4gKGZhbHNlID09IGluZGV4KCRsaXN0LCAkdmFyKSk7XG59XG5cbkBmdW5jdGlvbiBfZ2V0UGFsZXR0ZUtleSgkcGFsZXR0ZSwgJGtleSkge1xuICAgIEByZXR1cm4gI3skcGFsZXR0ZX0jeyRzZXBhcmF0b3J9I3ska2V5fTtcbn1cblxuLyoqXG4gKiBHZXRzIGNvbG9yIHZhbHVlIHN0cmluZyBhbmQgcmV0dXJuIGlmIGl0cyBhIGxpbmsgdG8gYW4gb3RoZXIgcGFsZXR0ZSB2YWx1ZVxuICogQHBhcmFtIHtTdHJpbmd9IHZhbHVlXG4gKiBAcmV0dXJuIHtCb29sZWFufVxuICovXG5AZnVuY3Rpb24gX2lzUGFsZXR0ZUxpbmsoJHZhbHVlKSB7XG4gIEByZXR1cm4gc3RyLWluZGV4KCN7JHZhbHVlfSwgdW5xdW90ZSgkc2VwYXJhdG9yKSkgIT0gbnVsbDtcbn1cblxuLyoqXG4gKiBwYXJzZXMga2V5IHBhc3NlZCB0byB0aGUgZ2V0Q29sb3IgbWV0aG9kXG4gKiBAcGFyYW0ge1N0cmluZ30gcGFsZXR0ZUtleVxuICogQHJldHVybiB7T2JqZWN0fSBjb250YWluaW5nIGEgcHJvcGVydHkgd2l0aCB0aGUgcGFsZXR0ZSBwYWxldHRlIGFuZCBjb2xvciBrZXlcbiAqL1xuQGZ1bmN0aW9uIF9wYXJzZUtleSgkcGFsZXR0ZUtleSkge1xuICAkc2VwYXJhdG9ySW5kZXg6IHN0ci1pbmRleCgkcGFsZXR0ZUtleSwgJHNlcGFyYXRvcik7XG4gICRwYWxldHRlOiBzdHItc2xpY2UoXG4gICAgJHBhbGV0dGVLZXksXG4gICAgMCxcbiAgICAkc2VwYXJhdG9ySW5kZXggLSAxXG4gICk7XG5cbiAgJHZhbDogc3RyLXNsaWNlKFxuICAgICRwYWxldHRlS2V5LFxuICAgICRzZXBhcmF0b3JJbmRleCArIHN0ci1sZW5ndGgoJHNlcGFyYXRvcilcbiAgKTtcblxuICBAcmV0dXJuIChcbiAgICBwYWxldHRlOiAkcGFsZXR0ZSxcbiAgICBjb2xvcjogJHZhbCxcbiAgKTtcbn1cblxuLyoqXG4gKiByZXR1cm5zIGEgY29sb3IgdmFsdWUgZnJvbSBwYWxldHRlXG4gKiBhbmQgY2hlY2tzIGlmIHRoZSBwYWxldHRlIGFuZCBjb2xvciBleGlzdHNcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gcGFsZXR0ZSBuYW1lIG9mIHRoZSBwYWxldHRlIChwcm9wZXJ0eSBuYW1lIG9mIHRoaXMucGFsZXR0ZSlcbiAqIEBwYXJhbSB7U3RyaW5nfSBrZXkgbmFtZSBvZiB0aGUgY29sb3Igd2l0aGluIGEgcGFsZXR0ZVxuICogICAgICAgICAgICAgICAgICAgICAocHJvcGVydHkgbmFtZSBvZiB0aGlzLnBhbGV0dGVbcGFsZXR0ZUtleV0pXG4gKiBAcmV0dXJuIHtTdHJpbmd9IGNvbG9yIHZhbHVlXG4gKi9cbkBmdW5jdGlvbiBfZ2V0S2V5UmVmZXJlbmNlKCRwYWxldHRlcywgJHBhbGV0dGUsICRrZXkpIHtcbiAgJHBhbGV0dGVSZWY6ICgpO1xuICBAaWYgKG1hcC1oYXMta2V5KCRwYWxldHRlcywgJHBhbGV0dGUpKSB7XG4gICAgJHBhbGV0dGVSZWY6IG1hcC1nZXQoJHBhbGV0dGVzLCAkcGFsZXR0ZSk7XG4gIH0gQGVsc2Uge1xuICAgIEBlcnJvciAnbm8gcGFsZXR0ZSBjYWxsZWQgI3skcGFsZXR0ZX0gaW4gI3skcGFsZXR0ZXN9JztcbiAgfVxuXG4gIEBpZiAobWFwLWhhcy1rZXkoJHBhbGV0dGVSZWYsICRrZXkpKSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRwYWxldHRlUmVmLCAka2V5KTtcbiAgfSBAZWxzZSB7XG4gICAgQGVycm9yICdubyBjb2xvciBjYWxsZWQgI3ska2V5fSBpbiAjeyRwYWxldHRlfSc7XG4gIH1cbn1cblxuLyoqXG4gKiBAcGFyYW0ge1N0cmluZ30gcGFsZXR0ZUtleSB0eXBpY2FsbHkgY29udGFpbnMgYSBwYWxldHRlLS1rZXkgc3RyaW5nXG4gKiBAcGFyYW0ge0FycmF5fSBbY2FsbFN0YWNrPVtdXSBTdG9yZXMgYWxsIHByZXZpb3VzIGNhbGxzIHRvIG1ha2Ugc3VyZSB3ZSBkb24ndCBpbmZpbml0ZSBsb29wXG4gKiBAcmV0dXJuIHtPYmplY3R9IHZhbDogY29sb3Igc3RyaW5nIHN0b3JlZCBpbiBjb2xvciBvYmplY3QsIG5hbWU6IG5hbWUgaW4gY29sb3IgcGFsZXR0ZVxuICovXG5AZnVuY3Rpb24gX2dldENvbG9yKCRwYWxldHRlcywgJHBhbGV0dGVLZXksICRjYWxsU3RhY2s6ICgpKSB7XG4gIEBpZiAoY29udGFpbnMoJGNhbGxTdGFjaywgJHBhbGV0dGVLZXkpKSB7XG4gICAgQGVycm9yICd5b3UgaGF2ZSBpbmZpbml0ZSByZWN1cnNpb24gaW4geW91ciBwYWxldHRlJztcbiAgfVxuXG4gICRwYXJzZWRLZXk6IF9wYXJzZUtleSgkcGFsZXR0ZUtleSk7XG5cbiAgJGNvbG9yS2V5OiBfZ2V0S2V5UmVmZXJlbmNlKFxuICAgICRwYWxldHRlcyxcbiAgICBtYXAtZ2V0KCRwYXJzZWRLZXksICdwYWxldHRlJyksXG4gICAgbWFwLWdldCgkcGFyc2VkS2V5LCAnY29sb3InKVxuICApO1xuXG4gIEBpZiAoX2lzUGFsZXR0ZUxpbmsoJGNvbG9yS2V5KSkge1xuICAgICRzdGFjazogYXBwZW5kKCRjYWxsU3RhY2ssICRwYWxldHRlS2V5KTtcbiAgICBAcmV0dXJuIF9nZXRDb2xvcigkcGFsZXR0ZXMsICRjb2xvcktleSwgJHN0YWNrKTtcbiAgfSBAZWxzZSB7XG4gICAgQHJldHVybiAoXG4gICAgICB2YWx1ZTogbWFwLWdldCgkY29sb3JzLCAkY29sb3JLZXkpLFxuICAgICAgbmFtZTogJGNvbG9yS2V5LFxuICAgICk7XG4gIH1cbn1cblxuLyoqXG4gKiByZW1hcHMgYWxsIHRoZSBjb2xvciBuYW1lcyB0byB0aGUgYWN0dWFsIGNvbG9yIHZhbHVlXG4gKiBAcGFyYW0ge09iamVjdH0gcGFsZXR0ZXMgWW91IHBhbGV0dGUgb2JqZWN0XG4gKiBAcmV0dXJuIHtPYmplY3R9IHBhcnNlZCBwYWxldHRlIHdpdGggY29sb3IgdmFsdWVzIGluc3RlYWQgb2YgbGlua3NcbiAqL1xuXG5AZnVuY3Rpb24gX3BhcnNlUGFsZXR0ZSgkcGFsZXR0ZXMpIHtcbiAgLy8gQGRlYnVnICdQYXJzaW5nIHBhbGV0dGUgI3skcGFsZXR0ZXN9JztcbiAgJHBhcnNlZFBhbGV0dGU6ICgpO1xuXG4gIEBlYWNoICRwYWxldHRlS2V5LCAkcGFsZXR0ZSBpbiAkcGFsZXR0ZXMge1xuICAgICR2YWx1ZXM6ICgpO1xuXG4gICAgQGVhY2ggJGtleSwgJHZhbCBpbiBtYXAtZ2V0KCRwYWxldHRlcywgJHBhbGV0dGVLZXkpIHtcbiAgICAgICRwYWxLZXk6IF9nZXRQYWxldHRlS2V5KCRwYWxldHRlS2V5LCAka2V5KTtcbiAgICAgICRjb2xvck1hcDogX2dldENvbG9yKCRwYWxldHRlcywgJHBhbEtleSk7XG4gICAgICAkdmFsdWVzOiBtYXAtbWVyZ2UoXG4gICAgICAgICR2YWx1ZXMsXG4gICAgICAgICgjeyRrZXl9OiBtYXAtZ2V0KCRjb2xvck1hcCwgJ3ZhbHVlJykpXG4gICAgICApO1xuICAgIH1cblxuICAgICRwYXJzZWRQYWxldHRlOiBtYXAtbWVyZ2UoXG4gICAgICAkcGFyc2VkUGFsZXR0ZSxcbiAgICAgICgjeyRwYWxldHRlS2V5fTogJHZhbHVlcylcbiAgICApO1xuICB9XG5cbiAgQHJldHVybiAkcGFyc2VkUGFsZXR0ZTtcbn1cbiIsIi8qIHN0eWxlbGludC1kaXNhYmxlICovXG5cbi8vIEJhc2VkIG9uIFBhbGV0dGVyXG4vLyBNSVQgTGljZW5zZSwgQ29weXJpZ2h0IChjKSAyMDE3IERhdmlkIEFlcm5lXG4vLyBodHRwczovL2dpdGh1Yi5jb20vbWVvZGFpL3BhbGV0dGVyXG5cbkBmdW5jdGlvbiBzdHItc3BsaXQoJHN0cmluZywgJHNlcGFyYXRvcikge1xuICAvLyBlbXB0eSBhcnJheS9saXN0XG4gICRzcGxpdC1hcnI6ICgpO1xuICAvLyBmaXJzdCBpbmRleCBvZiBzZXBhcmF0b3IgaW4gc3RyaW5nXG4gICRpbmRleDogc3RyLWluZGV4KCRzdHJpbmcsICRzZXBhcmF0b3IpO1xuXG4gICRzZXBhcmF0b3JMZW5ndGg6IHN0ci1sZW5ndGgoJHNlcGFyYXRvcik7XG4gIC8vIGxvb3AgdGhyb3VnaCBzdHJpbmdcbiAgQHdoaWxlICRpbmRleCAhPSBudWxsIHtcbiAgICAgIC8vIGdldCB0aGUgc3Vic3RyaW5nIGZyb20gdGhlIGZpcnN0IGNoYXJhY3RlciB0byB0aGUgc2VwYXJhdG9yXG4gICAgICAkaXRlbTogc3RyLXNsaWNlKCRzdHJpbmcsIDEsICRpbmRleCAtIDEpO1xuICAgICAgLy8gcHVzaCBpdGVtIHRvIGFycmF5XG4gICAgICAkc3BsaXQtYXJyOiBhcHBlbmQoJHNwbGl0LWFyciwgJGl0ZW0pO1xuICAgICAgLy8gcmVtb3ZlIGl0ZW0gYW5kIHNlcGFyYXRvciBmcm9tIHN0cmluZ1xuICAgICAgJHN0cmluZzogc3RyLXNsaWNlKCRzdHJpbmcsICRpbmRleCArICRzZXBhcmF0b3JMZW5ndGgpO1xuICAgICAgLy8gZmluZCBuZXcgaW5kZXggb2Ygc2VwYXJhdG9yXG4gICAgICAkaW5kZXg6IHN0ci1pbmRleCgkc3RyaW5nLCAkc2VwYXJhdG9yKTtcbiAgfVxuICAvLyBhZGQgdGhlIHJlbWFpbmluZyBzdHJpbmcgdG8gbGlzdCAodGhlIGxhc3QgaXRlbSlcbiAgJHNwbGl0LWFycjogYXBwZW5kKCRzcGxpdC1hcnIsICRzdHJpbmcpO1xuXG4gIEByZXR1cm4gJHNwbGl0LWFycjtcbn1cblxuLy8gQ29sb3JzIGZ1bmN0aW9uIHRvIHF1ZXJ5IGNvbG9ycyBmcm9tIHRoZSBwYWxldHRlc1xuQGZ1bmN0aW9uIGMoJG5hbWUsICRjb2xvcnM6ICRwYWxldHRlci1jb2xvcnMpIHtcbiAgJHNlcGFyYXRvclN0cjogJy0tJztcblxuICBAaWYgbm90IHN0ci1pbmRleCgkbmFtZSwgJHNlcGFyYXRvclN0cikge1xuICAgIEBlcnJvciAnY29sb3JzIG11c3QgbWUgY2FsbGVkIHVzaW5nIHBhbGV0dGVOYW1lI3skc2VwYXJhdG9yU3RyfWNvbG9yTmFtZSwgeW91IHVzZWQgI3skbmFtZX0nO1xuICB9XG5cbiAgJHBhcnRzOiBzdHItc3BsaXQoJG5hbWUsICRzZXBhcmF0b3JTdHIpO1xuICAkcGFsZXR0ZU5hbWU6IG50aCgkcGFydHMsIDEpO1xuICAkY29sb3JOYW1lOiBudGgoJHBhcnRzLCAyKTtcblxuICAkcGFsZXR0ZU1hcDogKCk7XG5cbiAgQGlmIG5vdCBtYXAtaGFzLWtleSgkY29sb3JzLCAkcGFsZXR0ZU5hbWUpIHtcbiAgICBAZXJyb3IgJ3RoZXJlIGlzIG5vIHBhbGV0dGUgbmFtZWQgI3skcGFsZXR0ZU5hbWV9IGluICRjb2xvcnMnO1xuICB9IEBlbHNlIHtcbiAgICAkcGFsZXR0ZU1hcDogbWFwLWdldCgkY29sb3JzLCAkcGFsZXR0ZU5hbWUpO1xuICB9XG5cbiAgQGlmIG5vdCBtYXAtaGFzLWtleSgkcGFsZXR0ZU1hcCwgJGNvbG9yTmFtZSkge1xuICAgIEBlcnJvciAndGhlcmUgaXMgbm8gY29sb3IgbmFtZWQgI3skY29sb3JOYW1lfSBpbiB0aGUgI3skcGFsZXR0ZU5hbWV9IHBhbGV0dGUnO1xuICB9IEBlbHNlIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJHBhbGV0dGVNYXAsICRjb2xvck5hbWUpO1xuICB9XG59XG5cbi8vIE91dHB1dCB0aGUgY29sb3IgcGFsZXR0ZXMgYXMgQ1NTIGN1c3RvbSBwcm9wZXJ0aWVzXG5AbWl4aW4gcmVuZGVyLWNvbG9yLXBhbGV0dGVzLXRvLWNzcygkcGFsZXR0ZXMpIHtcbiAgQGVhY2ggJHBhbGV0dGVOYW1lLCAkcGFsZXR0ZUNvbG9ycyBpbiAkcGFsZXR0ZXMge1xuICAgIEBlYWNoICRjb2xvck5hbWUsICRjb2xvclZhbHVlIGluICRwYWxldHRlQ29sb3JzIHtcbiAgICAgIC0tY29sb3ItI3skcGFsZXR0ZU5hbWV9LS0jeyRjb2xvck5hbWV9OiAjeyRjb2xvclZhbHVlfTtcbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuICogZGlhbG9nLXNpemUgLSBQYWlubGVzcyBDU1Mgc2l6ZXNcbiAqIEB2ZXJzaW9uIHYxLjcuMFxuICogKGMpIDIwMTkgbWVvZGFpIDxtZW9kYWlAZ21haWwuY29tPiAoaHR0cHM6Ly9naXRodWIuY29tL21lb2RhaS8pXG4gKiBAbGluayBodHRwczovL2dpdGh1Yi5jb20vbWVvZGFpL2RpYWxvZy1zaXplI3JlYWRtZVxuICogQGxpY2Vuc2UgTUlUXG4gKi9cbiAvLy8gZGVmYXVsdCBzaXplc1xuLy8vIGlmIHRoZSBhcmd1bWVudCAkc2l6ZXMgb2YgdGhlIHNpemUoKSBtaXhpbiBpcyBlbXB0eS4gVGhpcyBtYXAgd2lsbCBiZSB1c2VkLlxuJGRpYWxvZy1zaXplczpcbiAgKDAuMnJlbSB0aW55KVxuICAwLjVyZW1cbiAgKDAuNzVyZW0gc21hbGwpXG4gIDAuOHJlbVxuICAoMXJlbSBsYXJnZSBpc0Jhc2UpXG4gICgxLjJyZW0geC1sYXJnZSlcbiAgKDEuNXJlbSB4eC1sYXJnZSlcbiAgMy41cmVtXG4gICg1cmVtIGh1Z2UpXG4gIDEwcmVtXG4gICFkZWZhdWx0O1xuXG4vLy8gc3RyaW5ncyBmb3Igc21hbGxlciBhbmQgYmlnZ2VyIGtleXdvcmRzXG4kZGlhbG9nLWtleW93cmQtYmlnZ2VyOiBiaWdnZXIgIWRlZmF1bHQ7XG4kZGlhbG9nLWtleW93cmQtc21hbGxlcjogc21hbGxlciAhZGVmYXVsdDtcbiRkaWFsb2cta2V5b3dyZC1jdXJyZW50OiBjdXJyZW50ICFkZWZhdWx0O1xuXG4kZGlhbG9nLWtleW93cmQtYmlnZ2VyLXRoYW46IHVucXVvdGUoJyN7JGRpYWxvZy1rZXlvd3JkLWJpZ2dlcn0gdGhhbiAnKSAhZGVmYXVsdDtcbiRkaWFsb2cta2V5b3dyZC1zbWFsbGVyLXRoYW46IHVucXVvdGUoJyN7JGRpYWxvZy1rZXlvd3JkLXNtYWxsZXJ9IHRoYW4gJykgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYXMgZm9yIGludGVybmFsIHVzZVxuJGRpYWxvZy1sYXN0LXNpemVzOiBudWxsO1xuJGRpYWxvZy1sYXN0LXNpemU6IG51bGw7XG5cbi8vLyBHZXRzIGNsb3NlcyB2YWx1ZSBpbiBhIGxpc3Rcbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbCAtIHJlZmVyZW5jZSB2YWx1ZVxuLy8vIEBwYXJhbSB7TGlzdH0gJGxpc3QgLSBsb29rdXAgbGlzdFxuLy8vIEByZXR1cm4ge051bWJlcn0gQ2xvc2VzdCB2YWx1ZSBpbiBsaXN0XG5AZnVuY3Rpb24gY2xvc2VzdCAoJHZhbCwgJGxpc3QpIHtcbiAgJGN1cnJlbnQ6IDA7XG4gIEBlYWNoICRsaXN0VmFsIGluICRsaXN0IHtcbiAgICBAaWYgKCBhYnMoJHZhbCAtICRsaXN0VmFsKSA8IGFicygkdmFsIC0gJGN1cnJlbnQpICkge1xuICAgICAgJGN1cnJlbnQ6ICRsaXN0VmFsO1xuICAgIH1cbiAgfVxuICBAcmV0dXJuICRjdXJyZW50O1xufVxuXG4vLy8gUmVwbGFjZSBgJHNlYXJjaGAgd2l0aCBgJHJlcGxhY2VgIGluIGAkc3RyaW5nYFxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc3RyaW5nIC0gSW5pdGlhbCBzdHJpbmdcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlYXJjaCAtIFN1YnN0cmluZyB0byByZXBsYWNlXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRyZXBsYWNlICgnJykgLSBOZXcgdmFsdWVcbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gVXBkYXRlZCBzdHJpbmdcbkBmdW5jdGlvbiBzdHItcmVwbGFjZSgkc3RyaW5nLCAkc2VhcmNoLCAkcmVwbGFjZTogJycpIHtcbiAgJGluZGV4OiBzdHItaW5kZXgoJHN0cmluZywgJHNlYXJjaCk7XG4gIEBpZiAkaW5kZXgge1xuICAgIEByZXR1cm4gc3RyLXNsaWNlKCRzdHJpbmcsIDEsICRpbmRleCAtIDEpICsgJHJlcGxhY2UgKyBzdHItcmVwbGFjZShzdHItc2xpY2UoJHN0cmluZywgJGluZGV4ICsgc3RyLWxlbmd0aCgkc2VhcmNoKSksICRzZWFyY2gsICRyZXBsYWNlKTtcbiAgfVxuICBAcmV0dXJuICRzdHJpbmc7XG59XG5cbi8vLyBSZXR1cm5zIGNsb3Nlc3Qgc2l6ZSB3aXRoaW4gYSBtYXBcbi8vLyBAcGFyYW0ge1N0cmluZ3xTaXplIG9yIE51bWJlcn0gJHNpemUgLSB0aGUgc2l6ZSBpbnRlbmRlZCBzaXplXG4vLy8gQHBhcmFtIHtNYXB9ICRzaXplcyAtIEEgbWFwIG9mIHBvc3NpYmxlIHNpemVzLiAoZWcuICRkaWFsb2ctc2l6ZXMpXG4vLy8gQHJldHVybiB7U2l6ZX0gQ2xvc2VzdCBzaXplIGlucyAkc2l6ZXNcbi8vL1xuLy8vIFVzYWdlOlxuLy8vXG4vLy8gIyBSZWxhdGl2ZVxuLy8vIHNpemUoLTEpID0+IDAuMnJlbVxuLy8vIHNpemUoMCkgPT4gMXJlbVxuLy8vIHNpemUoMSkgPT4gMTByZW1cbi8vL1xuLy8vICMgTmFtZVxuLy8vIHNpemUobGFyZ2UpID0+IDFyZW1cbi8vLyBzaXplKGh1Z2UpID0+IDVyZW1cbi8vL1xuLy8vICMgVmFsdWVcbi8vLyBzaXplKDMuMXJlbSkgPT4gMy41cmVtXG4vLy9cbi8vLyAjIEN1c3RvbSBzaXplcyAkbWFwXG4vLy8gc2l6ZSgwLCAkc2l6ZXM6IDAuMnJlbSAwLjVyZW0gKDEuMnJlbSBpc0Jhc2UpIDIuNXJlbSAzcmVtIDEwcmVtKSA9PiAxLjJyZW1cbkBmdW5jdGlvbiBzaXplKCRzaXplLCAkc2l6ZXM6ICRkaWFsb2ctc2l6ZXMpIHtcbiAgJGNsb3Nlc3Q6IG51bGw7XG4gICRiYXNlSW5kZXg6IDE7XG4gICRzaXplc09ubHk6ICgpO1xuICAkbmFtZXM6ICgpO1xuICAkYmFzZUluZGV4OiBudWxsO1xuXG4gICRpc1NtYWxsZXI6IGZhbHNlO1xuICAkaXNCaWdnZXI6IGZhbHNlO1xuICAkaXNDdXJyZW50OiBmYWxzZTtcbiAgJGlzUmVsYXRpdmVUbzogZmFsc2U7XG4gICRpc1JlbGF0aXZlOiBmYWxzZTtcblxuICBAaWYgdHlwZS1vZigkc2l6ZSkgPT0gc3RyaW5nIHtcbiAgICAkaXNTbWFsbGVyOiBzdHItaW5kZXgoJHNpemUsICRkaWFsb2cta2V5b3dyZC1zbWFsbGVyKTtcbiAgICAkaXNCaWdnZXI6IHN0ci1pbmRleCgkc2l6ZSwgJGRpYWxvZy1rZXlvd3JkLWJpZ2dlcik7XG4gICAgJGlzQ3VycmVudDogc3RyLWluZGV4KCRzaXplLCAkZGlhbG9nLWtleW93cmQtY3VycmVudCk7XG4gICAgJGlzUmVsYXRpdmVUbzogc3RyLWluZGV4KCRzaXplLCAkZGlhbG9nLWtleW93cmQtYmlnZ2VyLXRoYW4pIG9yIHN0ci1pbmRleCgkc2l6ZSwgJGRpYWxvZy1rZXlvd3JkLXNtYWxsZXItdGhhbik7XG4gICAgJGlzUmVsYXRpdmU6ICgkaXNTbWFsbGVyIG9yICRpc0JpZ2dlciBvciAkaXNDdXJyZW50KTtcbiAgfVxuXG4gIEBpZiBsZW5ndGgoJHNpemVzKSA8IDMge1xuICAgIEBlcnJvciAnJHNpemVzIG5lZWRzIHRvIGJlIGEgc2V0IG9mIG1pbiAzIHZhbHVlcydcbiAgfVxuXG4gIC8vLyBleHRyYWN0IG5hbWVzIGFuZCAkYmFzZUluZGV4IGZyb20gJHNpemVzXG4gIEBmb3IgJGluZGV4IGZyb20gMSB0aHJvdWdoIGxlbmd0aCgkc2l6ZXMpIHtcbiAgICAkY3VycmVudFNpemU6IG50aCgkc2l6ZXMsICgkaW5kZXggKjEpKTsgLy8gT3JUOiBmaXhlcyBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy9ub2RlLXNhc3MvaXNzdWVzLzE5MDRcbiAgICBAZWFjaCAkdmFsIGluICRjdXJyZW50U2l6ZSB7XG4gICAgICBAaWYgKHR5cGUtb2YoJHZhbCkgPT0gJ251bWJlcicpIHtcbiAgICAgICAgJHNpemVzT25seTogam9pbigkc2l6ZXNPbmx5LCAkdmFsKTtcbiAgICAgIH0gQGVsc2UgaWYgJHZhbCA9PSAnaXNCYXNlJyB7XG4gICAgICAgIEBpZiAkYmFzZUluZGV4ICE9IG51bGwge1xuICAgICAgICAgIEBlcnJvciAnaXNCYXNlIGNhbiBiZSBpbiAkc2l6ZXMgb25seSBvbmNlJztcbiAgICAgICAgfVxuICAgICAgICAkYmFzZUluZGV4OiAoJGluZGV4ICoxKTsgLy8gT3JUOiBmaXhlcyBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy9ub2RlLXNhc3MvaXNzdWVzLzE5MDRcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAkbmFtZXM6IG1hcC1tZXJnZSgkbmFtZXMsICgkdmFsOiAoJGluZGV4ICoxKSkpOyAvLyBPclQ6IGZpeGVzIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzL25vZGUtc2Fzcy9pc3N1ZXMvMTkwNFxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpZiAkaXNSZWxhdGl2ZSBhbmQgbm90ICRpc1JlbGF0aXZlVG8gYW5kIG5vdCAkZGlhbG9nLWxhc3Qtc2l6ZXMge1xuICAgIEBlcnJvciAndGhlIGtleXdvcmRzIFwiI3skZGlhbG9nLWtleW93cmQtYmlnZ2VyfVwiLCBcIiN7JGRpYWxvZy1rZXlvd3JkLXNtYWxsZXJ9XCIgYW5kIFwiI3skZGlhbG9nLWtleW93cmQtY3VycmVudH1cIiBjYW4gb25seSBiZSB1c2VkIGFmdGVyIGEgbm9uIHJlbGF0aXZlIHNpemUoKSBjYWxsJ1xuICB9IEBlbHNlIGlmICRpc1JlbGF0aXZlIGFuZCBub3QgJGlzUmVsYXRpdmVUbyB7XG4gICAgJHNpemU6ICRkaWFsb2ctbGFzdC1zaXplO1xuICB9XG5cbiAgQGlmICRiYXNlSW5kZXggPT0gbnVsbCB7XG4gICAgQGVycm9yICd5b3UgbmVlZCB0byBzZXQgaXNCYXNlIG9uIG9uZSBvZiB5b3VyIHZhbHVlcyBpbiAkc2l6ZXMnO1xuICB9XG4gIEBpZiAkaXNSZWxhdGl2ZVRvIHtcbiAgICAkc2l6ZTogc3RyLXJlcGxhY2Uoc3RyLXJlcGxhY2UoJHNpemUsICRkaWFsb2cta2V5b3dyZC1zbWFsbGVyLXRoYW4pLCAkZGlhbG9nLWtleW93cmQtYmlnZ2VyLXRoYW4pO1xuICB9XG5cbiAgQGlmIG5vdCBtYXAtaGFzLWtleSgkbmFtZXMsICRzaXplKSBhbmQgbm90ICh0eXBlLW9mKCRzaXplKSA9PSAnbnVtYmVyJykge1xuICAgIEBlcnJvciAnI3skc2l6ZX0gaXMgbm90IHNldCBpbiAkc2l6ZXMnO1xuICB9XG5cbiAgQGlmIG1hcC1oYXMta2V5KCRuYW1lcywgJHNpemUpIHtcbiAgICAvLy8gJHNpemUgaXMgYSBuYW1lXG4gICAgJGNsb3Nlc3Q6IG50aCgkc2l6ZXNPbmx5LCBtYXAtZ2V0KCRuYW1lcywgJHNpemUpKTtcbiAgfSBAZWxzZSBpZiB1bml0bGVzcygkc2l6ZSkge1xuICAgIC8vLyAkc2l6ZSBpcyBhIHJlbGF0aXZlIHZhbHVlXG4gICAgQGlmIChub3QgKCRzaXplIDw9IDEpIG9yIG5vdCAoJHNpemUgPj0gLTEpICkge1xuICAgICAgICBAZXJyb3IgJ2lmICRzaXplIGlzIHVuaXRsZXNzIGl0IG11c3QgYmUgYSB2YWx1ZSBiZXR3ZWVuIC0xIGFuZCAxJztcbiAgICB9IEBlbHNlIHtcbiAgICAgIC8vLyB0cmFuc2Zvcm0gcmFuZ2UgZnJvbSBbLTEsMV0gdG8gWzAsMV1cbiAgICAgICRtaW46ICRiYXNlSW5kZXg7XG4gICAgICAkbWF4OiAxO1xuXG4gICAgICBAaWYgKCRzaXplID49IDApIHtcbiAgICAgICAgJG1heDogbGVuZ3RoKCRzaXplc09ubHkpO1xuICAgICAgfVxuXG4gICAgICAkYWJzdWx1dGVJbmRleDogYWJzKCRzaXplKSAqICgkbWF4IC0gJG1pbikgKyAkbWluO1xuICAgICAgJGNsb3Nlc3Q6IG50aCgkc2l6ZXNPbmx5LCByb3VuZCgkYWJzdWx1dGVJbmRleCkpO1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgLy8vIGlmICRzaXplIGlzIGEgdmFsdWVcbiAgICAkY2xvc2VzdDogY2xvc2VzdCgkc2l6ZSwgJHNpemVzT25seSk7XG4gICAgQGlmICggJGNsb3Nlc3QgIT0gJHNpemUgKSB7XG4gICAgICBAd2FybiAnI3skc2l6ZX0gaXMgbm90IGNvbnRhaW5lZCBpbiAkc2l6ZXMgdGhlIGNsb3Nlc3QgdmFsdWU6ICN7JGNsb3Nlc3R9IHdpbGwgYmUgdXNlZCc7XG4gICAgfVxuICB9XG5cbiAgQGlmICRpc1JlbGF0aXZlIHtcbiAgICAkY2xvc2VzdEluZGV4OiBpbmRleCgkc2l6ZXNPbmx5LCAkY2xvc2VzdCk7XG4gICAgJG5leHRJbmRleDogbnVsbDtcbiAgICAkZGlyZWN0aW9uOiBudWxsO1xuXG4gICAgQGlmIG5vdCAkaXNSZWxhdGl2ZVRvIHtcbiAgICAgICRzaXplczogJGRpYWxvZy1sYXN0LXNpemVzO1xuICAgIH1cbiAgICBAaWYgJGlzQmlnZ2VyIHtcbiAgICAgICRuZXh0SW5kZXg6ICRjbG9zZXN0SW5kZXggKyAxO1xuICAgICAgJGRpcmVjdGlvbjogJ2JpZ2dlcic7XG4gICAgfSBAZWxzZSBpZiAkaXNDdXJyZW50IHtcbiAgICAgICRuZXh0SW5kZXg6ICRjbG9zZXN0SW5kZXg7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkbmV4dEluZGV4OiAkY2xvc2VzdEluZGV4IC0gMTtcbiAgICAgICRkaXJlY3Rpb246ICdzbWFsbGVyJztcbiAgICB9XG4gICAgQGlmICgkbmV4dEluZGV4IDwgMSkgb3IgKCRuZXh0SW5kZXggPiBsZW5ndGgoJHNpemVzKSkge1xuICAgICAgQHdhcm4gJ3RoZXJlIGlzIG5vdGhpbmcgI3skZGlyZWN0aW9ufSB0aGFuICN7JGNsb3Nlc3R9IGluICN7JHNpemVzfSc7XG4gICAgICAkbmV4dEluZGV4OiAkY2xvc2VzdEluZGV4O1xuICAgIH1cbiAgICBAcmV0dXJuIHNpemUobnRoKCRzaXplc09ubHksICRuZXh0SW5kZXgpLCAkc2l6ZXM6ICRzaXplcyk7XG4gIH1cblxuICAvLy8gc2F2ZXMgdGhlIGN1cnJlbnQgb3V0cHV0IGZvciBmdXR1cmUgJ3JlbGF0aXZlJyBrZXl3b3JkIHVzYWdlXG4gICRkaWFsb2ctbGFzdC1zaXplczogJHNpemVzICFnbG9iYWw7XG4gICRkaWFsb2ctbGFzdC1zaXplOiAkY2xvc2VzdCAhZ2xvYmFsO1xuXG4gIEByZXR1cm4gJGNsb3Nlc3Q7XG59XG5cblxuLy8vIFRyYW5zZm9ybXMgYSBpbXBvcnRlZCBtYXAgZnJvbSBhIEpTT04gdG8gYSBsaXN0IGluIHRoZSBzdHlsZSBvZiAkZGlhbG9nLXNpemVzXG4vLy8gQHBhcmFtIHttYXB9ICRzaXplcyAtIE1hcCBpbXBvcnRlZCBmcm9tIE5QTSBqc29uLXNhc3MgaW1wb3J0ZXJcbi8vLyBAcmV0dXJuIHtsaXN0fSAtIFVwZGF0ZWQgc3RyaW5nXG5cbi8vLyBsaWtlOiBAaW1wb3J0ICcuLi8uLi9kZXNpZ24vc2l6ZXMuanNvbicgPT5cbi8vIHtcbi8vICAgXCJzaXplc1wiOiBbXG4vLyAgICAge1xuLy8gICAgICAgXCJ2YWx1ZVwiOiBcIjAuMTFyZW1cIixcbi8vICAgICAgIFwibmFtZXNcIjogW1wibGluZVwiXVxuLy8gICAgIH0sXG4vLyAgICAge1xuLy8gICAgICAgXCJ2YWx1ZVwiOiBcIjAuMjJyZW1cIixcbi8vICAgICAgIFwibmFtZXNcIjogW1widGlueVwiLCBcImhlYWRlci1zdGFja1wiXVxuLy8gICAgIH0sXG4vLyAgICAge1xuLy8gICAgICAgXCJ2YWx1ZVwiOiBcIjAuNDRyZW1cIixcbi8vICAgICAgIFwibmFtZXNcIjogW1wiYmFzZVwiLCBcInNtYWxsXCIsIFwiZ3JpZFwiXVxuLy8gICAgIH1cbi8vICAgXVxuLy8gfVxuXG5AZnVuY3Rpb24gdG9EaWFsb2dTaXplTGlzdCgkc2l6ZXMpIHtcbiAgLy8vIGNyZWF0ZXMgYW4gZW1wdHkgbGlzdFxuICAkZHM6ICgpO1xuICBAZWFjaCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgJHZhbDogbWFwLWdldCgkc2l6ZSwgJ3ZhbHVlJyk7XG4gICAgICBAaWYgKG1hcC1oYXMta2V5KCRzaXplLCAnbmFtZXMnKSkge1xuICAgICAgICAgICRuYW1lczogbWFwLWdldCgkc2l6ZSwgJ25hbWVzJyk7XG4gICAgICAgICAgQGlmICh0eXBlLW9mKCRuYW1lcykgIT0gbGlzdCkge1xuICAgICAgICAgICAgICAkbmFtZXM6ICgkbmFtZXMsKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgJHZhbDogam9pbigkdmFsLCAkbmFtZXMsIHNwYWNlKTtcbiAgICAgIH1cbiAgICAgIEBpZiAobWFwLWhhcy1rZXkoJHNpemUsICdpc0Jhc2UnKSkge1xuICAgICAgICAgICR2YWw6IGpvaW4oJHZhbCwgKGlzQmFzZSwpLCBzcGFjZSk7XG4gICAgICB9XG4gICAgICAkZHM6IGFwcGVuZCgkZHMsICR2YWwsICdjb21tYScpO1xuICB9O1xuICBAcmV0dXJuICRkcztcbn1cbiIsIi8qKlxuICogZGlhbG9nLXR5cG9ncmFwaHkgLSBTQVNTL1NDU1MgbW9kdWxlIHNldHRpbmdzXG4gKiBAdmVyc2lvbiB2Mi4wLjBcbiAqIChjKSAyMDIxIG1lb2RhaVxuICogQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL21lb2RhaS9kaWFsb2ctdHlwb2dyYXBoeSNyZWFkbWVcbiAqIEBsaWNlbnNlIE1JVFxuICovXG4gQHVzZSBcInNhc3M6bWF0aFwiO1xuQHVzZSBcInNhc3M6bWFwXCI7XG5cbi8vIFR5cG9ncmFwaHkgc2V0dGluZ3NcbiRkaWFsb2ctYnJlYWtwb2ludC1kZWZhdWx0OiBkZXNrdG9wICFkZWZhdWx0O1xuXG4vLyBUeXBvZ3JhcGh5IHNldHRpbmdzXG4kZGlhbG9nLXR5cG86IChcbiAgZGVza3RvcDogKFxuICAgIGRlZmF1bHQ6IChcbiAgICAgIGZvbnQtc2l6ZSAgICAgICAgIDogMS4xMjVyZW0sXG4gICAgICBmb250LWZhbWlseSAgICAgICA6ICdcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWYnLFxuICAgICAgZm9udC13ZWlnaHQgICAgICAgOiBub3JtYWwsXG4gICAgICBmb250LXN0eWxlICAgICAgICA6IG5vcm1hbCxcbiAgICAgIGxpbmUtaGVpZ2h0ICAgICAgIDogMS4zNzUsXG4gICAgKSxcbiAgICBoZXJvOiAoXG4gICAgICBmb250LXNpemUgICAgICAgICA6IDIuNjY2N3JlbSxcbiAgICAgIGZvbnQtd2VpZ2h0ICAgICAgIDogYm9sZCxcbiAgICAgIHRleHQtdHJhbnNmb3JtICAgIDogdXBwZXJjYXNlLFxuICAgICAgbGluZS1oZWlnaHQgICAgICAgOiAxLFxuICAgICAgY29sb3IgICAgICAgICAgICAgOiAjMDAwMDY2LFxuICAgICksXG4gICAgc3ViaGVybzogKFxuICAgICAgZm9udC1zaXplICAgICAgICAgOiAxLjMzM3JlbSxcbiAgICAgIGZvbnQtd2VpZ2h0ICAgICAgIDogbGlnaHRlcixcbiAgICAgIHRleHQtdHJhbnNmb3JtICAgIDogdXBwZXJjYXNlLFxuICAgICAgbGluZS1oZWlnaHQgICAgICAgOiAxLjE2NjY3LFxuICAgICksXG4gICAgaGVhZGluZzogKFxuICAgICAgZm9udC1zaXplICAgICAgICAgOiAxLjY2NjdyZW0sXG4gICAgICBmb250LXdlaWdodCAgICAgICA6IGJvbGQsXG4gICAgICB0ZXh0LXRyYW5zZm9ybSAgICA6IHVwcGVyY2FzZSxcbiAgICAgIGxpbmUtaGVpZ2h0ICAgICAgIDogMS4zMzMsXG4gICAgKSxcbiAgICBzdWJoZWFkaW5nOiAoXG4gICAgICBmb250LXNpemUgICAgICAgICA6IDFyZW0sXG4gICAgICBmb250LXdlaWdodCAgICAgICA6IGxpZ2h0ZXIsXG4gICAgICB0ZXh0LXRyYW5zZm9ybSAgICA6IHVwcGVyY2FzZSxcbiAgICAgIGxpbmUtaGVpZ2h0ICAgICAgIDogMS4zMzMsXG4gICAgICBjb2xvciAgICAgICAgICAgICA6ICMwMDAwNjYsXG4gICAgKSxcbiAgICB0aXRsZTogKFxuICAgICAgZm9udC1zaXplICAgICAgICAgOiAxcmVtLFxuICAgICAgZm9udC13ZWlnaHQgICAgICAgOiBib2xkLFxuICAgICAgbGluZS1oZWlnaHQgICAgICAgOiAxLjIyMixcbiAgICAgIGNvbG9yICAgICAgICAgICAgIDogIzAwMDA2NixcbiAgICApLFxuICApLFxuICB0YWJsZXQ6IChcbiAgICBkZWZhdWx0OiAoXG4gICAgICBmb250LXNpemUgICAgICAgICA6IDFyZW0sXG4gICAgKSxcbiAgICBoZXJvOiAoXG4gICAgICBmb250LXNpemUgICAgICAgICA6IDNyZW0sXG4gICAgKSxcbiAgICBzdWJoZXJvOiAoXG4gICAgICBmb250LXNpemUgICAgICAgICA6IDEuNXJlbSxcbiAgICApLFxuICAgIGhlYWRpbmc6IChcbiAgICAgIGZvbnQtc2l6ZSAgICAgICAgIDogMS44NzVyZW0sXG4gICAgKSxcbiAgICBzdWJoZWFkaW5nOiAoXG4gICAgICBmb250LXNpemUgICAgICAgICA6IDEuMTI1cmVtLFxuICAgICksXG4gICAgdGl0bGU6IChcbiAgICAgIGZvbnQtc2l6ZSAgICAgICAgIDogMS4xcmVtLFxuICAgICksXG4gICksXG4gIG1vYmlsZTogKFxuICAgIGRlZmF1bHQ6IChcbiAgICAgIGZvbnQtc2l6ZSAgICAgICAgIDogMXJlbSxcbiAgICApLFxuICAgIGhlcm86IChcbiAgICAgIGZvbnQtc2l6ZSAgICAgICAgIDogMS43NXJlbSxcbiAgICApLFxuICAgIHN1Ymhlcm86IChcbiAgICAgIGZvbnQtc2l6ZSAgICAgICAgIDogMXJlbSxcbiAgICApLFxuICAgIGhlYWRpbmc6IChcbiAgICAgIGZvbnQtc2l6ZSAgICAgICAgIDogMS41cmVtLFxuICAgICksXG4gICAgc3ViaGVhZGluZzogKFxuICAgICAgZm9udC1zaXplICAgICAgICAgOiAxcmVtLFxuICAgICksXG4gICAgdGl0bGU6IChcbiAgICAgIGZvbnQtc2l6ZSAgICAgICAgIDogMXJlbSxcbiAgICApLFxuICApXG4pICFkZWZhdWx0O1xuXG4kZGlhbG9nLWJyZWFrcG9pbnQtZGVmYXVsdDogZGVza3RvcCAhZGVmYXVsdDtcblxuJGRpYWxvZy1icmVha3BvaW50czogKFxuICBtb2JpbGU6ICdtYXgtd2lkdGg6IDQwcmVtJyxcbiAgdGFibGV0OiAnbWF4LXdpZHRoOiA2NHJlbScsXG4gIGRlc2t0b3A6ICdtaW4td2lkdGg6IDY0LjA2M3JlbScsXG4pICFkZWZhdWx0O1xuXG4kZGlhbG9nLWlzLWZsdWlkOiBmYWxzZSAhZGVmYXVsdDtcblxuJGRpYWxvZy1mbHVpZC1icmVha3BvaW50LXNpemVzOiAoXG4gIG1vYmlsZTogNDByZW0sXG4gIHRhYmxldDogNjRyZW0sXG4gIGRlc2t0b3A6IDEwMHJlbSxcbikgIWRlZmF1bHQ7XG5cbi8vIG1peGluc1xuJGRpYWxvZy1mbHVpZC10eXBlLXNpemVzOiAoKTtcblxuQGlmICRkaWFsb2ctaXMtZmx1aWQge1xuICAkbm9uLWRlZmF1bHQtdHlwZXM6IG1hcC5yZW1vdmUoJGRpYWxvZy10eXBvLCAkZGlhbG9nLWJyZWFrcG9pbnQtZGVmYXVsdCk7XG4gICRub24tZGVmYXVsdC1icmVha3BvaW50LWtleXM6IG1hcC5rZXlzKCRub24tZGVmYXVsdC10eXBlcyk7XG5cbiAgQGVhY2ggJHR5cGUsICRydWxlcyBpbiBtYXAuZ2V0KCRkaWFsb2ctdHlwbywgJGRpYWxvZy1icmVha3BvaW50LWRlZmF1bHQpIHtcbiAgICBAaWYgbWFwLmhhcy1rZXkoJHJ1bGVzLCAnZm9udC1zaXplJykge1xuICAgICAgJGZsdWlkLXNpemVzOiAoKTtcbiAgICAgICRmb250LXNpemU6IG1hcC5nZXQoJHJ1bGVzLCAnZm9udC1zaXplJyk7XG4gICAgICAkaGFzLW5vLWZvbnQtc2l6ZTogZmFsc2U7XG5cbiAgICAgIEBlYWNoICRub24tZGVmYXVsdC1icmVha3BvaW50LW5hbWUsICRub24tZGVmYXVsdC1ydWxlcyBpbiAkbm9uLWRlZmF1bHQtdHlwZXMge1xuICAgICAgICBAaWYgbWFwLmhhcy1rZXkoJG5vbi1kZWZhdWx0LXJ1bGVzLCAkdHlwZSkge1xuICAgICAgICAgICRub24tZGVmYXVsdC10eXBlOiBtYXAuZ2V0KCRub24tZGVmYXVsdC1ydWxlcywgJHR5cGUpO1xuICAgICAgICAgIEBpZiBtYXAuaGFzLWtleSgkbm9uLWRlZmF1bHQtdHlwZSwgJ2ZvbnQtc2l6ZScpIHtcbiAgICAgICAgICAgICRub24tZGVmYXVsdC1mb250LXNpemU6IG1hcC5nZXQoJG5vbi1kZWZhdWx0LXR5cGUsICdmb250LXNpemUnKTtcbiAgICAgICAgICAgICRmbHVpZC1zaXplczogbWFwLm1lcmdlKFxuICAgICAgICAgICAgICAkZmx1aWQtc2l6ZXMsXG4gICAgICAgICAgICAgIChtYXAuZ2V0KCRkaWFsb2ctZmx1aWQtYnJlYWtwb2ludC1zaXplcywgJG5vbi1kZWZhdWx0LWJyZWFrcG9pbnQtbmFtZSk6ICRub24tZGVmYXVsdC1mb250LXNpemUpXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgJGhhcy1uby1mb250LXNpemU6IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAkaGFzLW5vLWZvbnQtc2l6ZTogdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBAaWYgJGhhcy1uby1mb250LXNpemUge1xuICAgICAgICAgICRmbHVpZC1zaXplczogbWFwLm1lcmdlKFxuICAgICAgICAgICAgJGZsdWlkLXNpemVzLFxuICAgICAgICAgICAgKG1hcC5nZXQoJGRpYWxvZy1mbHVpZC1icmVha3BvaW50LXNpemVzLCAkbm9uLWRlZmF1bHQtYnJlYWtwb2ludC1uYW1lKTogJGZvbnQtc2l6ZSlcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICRmbHVpZC1zaXplczogbWFwLm1lcmdlKFxuICAgICAgICAkZmx1aWQtc2l6ZXMsXG4gICAgICAgIChtYXAuZ2V0KCRkaWFsb2ctZmx1aWQtYnJlYWtwb2ludC1zaXplcywgJGRpYWxvZy1icmVha3BvaW50LWRlZmF1bHQpOiAkZm9udC1zaXplKVxuICAgICAgKTtcblxuICAgICAgJGRpYWxvZy1mbHVpZC10eXBlLXNpemVzOiBtYXAubWVyZ2UoJGRpYWxvZy1mbHVpZC10eXBlLXNpemVzLCAoJHR5cGU6ICRmbHVpZC1zaXplcykpICFnbG9iYWw7XG4gICAgfVxuICB9XG59XG5cbi8vLyBwb2x5LWZsdWlkLXNpemluZ1xuLy8vIEdlbmVyYXRlIGxpbmVhciBpbnRlcnBvbGF0ZWQgc2l6ZSB2YWx1ZXMgdGhyb3VnaCBtdWx0aXBsZSBicmVhayBwb2ludHNcbi8vLyBAcGFyYW0gJHByb3BlcnR5IC0gQSBzdHJpbmcgQ1NTIHByb3BlcnR5IG5hbWVcbi8vLyBAcGFyYW0gJG1hcCAtIEEgU0FTUyBtYXAgb2Ygdmlld3BvcnQgdW5pdCBhbmQgc2l6ZSB2YWx1ZSBwYWlyc1xuLy8vIEByZXF1aXJlcyBmdW5jdGlvbiBsaW5lYXItaW50ZXJwb2xhdGlvblxuLy8vIEByZXF1aXJlcyBmdW5jdGlvbiBtYXAtc29ydFxuLy8vIEBleGFtcGxlXG4vLy8gICBAaW5jbHVkZSBwb2x5LWZsdWlkLXNpemluZygnZm9udC1zaXplJywgKDU3NnB4OiAyMnB4LCA3NjhweDogMjRweCwgOTkycHg6IDM0cHgpKTtcbi8vLyBAYXV0aG9yIEpha2UgV2lsc29uIDxqYWtlLmUud2lsc29uQGdtYWlsLmNvbT5cbkBtaXhpbiBwb2x5LWZsdWlkLXNpemluZygkcHJvcGVydHksICRtYXApIHtcbiAgLy8gR2V0IHRoZSBudW1iZXIgb2YgcHJvdmlkZWQgYnJlYWtwb2ludHNcbiAgJGxlbmd0aDogbGVuZ3RoKG1hcC5rZXlzKCRtYXApKTtcblxuICAvLyBFcnJvciBpZiB0aGUgbnVtYmVyIG9mIGJyZWFrcG9pbnRzIGlzIDwgMlxuICBAaWYgKCRsZW5ndGggPCAyKSB7XG4gICAgQGVycm9yICdwb2x5LWZsdWlkLXNpemluZygpICRtYXAgcmVxdWlyZXMgYXQgbGVhc3QgdmFsdWVzJztcbiAgfVxuXG4gIC8vIFNvcnQgdGhlIG1hcCBieSB2aWV3cG9ydCB3aWR0aCAoa2V5KVxuICAkbWFwOiBtYXAtc29ydCgkbWFwKTtcbiAgJGtleXM6IG1hcC5rZXlzKCRtYXApO1xuXG4gIC8vIE1pbmltdW0gc2l6ZVxuICAjeyRwcm9wZXJ0eX06IG1hcC5nZXQoJG1hcCwgbnRoKCRrZXlzLCAxKSk7XG5cbiAgLy8gSW50ZXJwb2xhdGVkIHNpemUgdGhyb3VnaCBicmVha3BvaW50c1xuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICgkbGVuZ3RoIC0gMSkge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiBudGgoJGtleXMsICRpKSkge1xuICAgICAgI3skcHJvcGVydHl9OiBsaW5lYXItaW50ZXJwb2xhdGlvbigobnRoKCRrZXlzLCAkaSk6IG1hcC5nZXQoJG1hcCwgbnRoKCRrZXlzLCAkaSkpLCBudGgoJGtleXMsICgkaSsxKSk6IG1hcC5nZXQoJG1hcCwgbnRoKCRrZXlzLCAoJGkgKyAxKSkpKSk7XG4gICAgfVxuICB9XG5cbiAgLy8gTWF4bWltdW0gc2l6ZVxuICBAbWVkaWEgKG1pbi13aWR0aDogbnRoKCRrZXlzLCAkbGVuZ3RoKSkge1xuICAgICN7JHByb3BlcnR5fTogbWFwLmdldCgkbWFwLCBudGgoJGtleXMsICRsZW5ndGgpKTtcbiAgfVxufVxuXG4vLy8gbGluZWFyLWludGVycG9sYXRpb25cbi8vLyBDYWxjdWxhdGUgdGhlIGRlZmluaXRpb24gb2YgYSBsaW5lIGJldHdlZW4gdHdvIHBvaW50c1xuLy8vIEBwYXJhbSAkbWFwIC0gQSBTQVNTIG1hcCBvZiB2aWV3cG9ydCB3aWR0aHMgYW5kIHNpemUgdmFsdWUgcGFpcnNcbi8vLyBAcmV0dXJucyBBIGxpbmVhciBlcXVhdGlvbiBhcyBhIGNhbGMoKSBmdW5jdGlvblxuLy8vIEBleGFtcGxlXG4vLy8gICBmb250LXNpemU6IGxpbmVhci1pbnRlcnBvbGF0aW9uKCgzMjBweDogMThweCwgNzY4cHg6IDI2cHgpKTtcbi8vLyBAYXV0aG9yIEpha2UgV2lsc29uIDxqYWtlLmUud2lsc29uQGdtYWlsLmNvbT5cbkBmdW5jdGlvbiBsaW5lYXItaW50ZXJwb2xhdGlvbigkbWFwKSB7XG4gICRrZXlzOiBtYXAua2V5cygkbWFwKTtcbiAgQGlmIChsZW5ndGgoJGtleXMpICE9IDIpIHtcbiAgICBAZXJyb3IgJ2xpbmVhci1pbnRlcnBvbGF0aW9uKCkgJG1hcCBtdXN0IGJlIGV4YWN0bHkgMiB2YWx1ZXMnO1xuICB9XG4gIFxuICAvLyBUaGUgc2xvcGVcbiAgJG06IG1hdGguZGl2KG1hcC5nZXQoJG1hcCwgbnRoKCRrZXlzLCAyKSkgLSBtYXAuZ2V0KCRtYXAsIG50aCgka2V5cywgMSkpLCBudGgoJGtleXMsIDIpIC0gbnRoKCRrZXlzLCAxKSk7XG5cbiAgLy8gVGhlIHktaW50ZXJjZXB0XG4gICRiOiBtYXAuZ2V0KCRtYXAsIG50aCgka2V5cywgMSkpIC0gJG0gKiBudGgoJGtleXMsIDEpO1xuXG4gIC8vIERldGVybWluZSBpZiB0aGUgc2lnbiBzaG91bGQgYmUgcG9zaXRpdmUgb3IgbmVnYXRpdmVcbiAgJHNpZ246ICcrJztcbiAgQGlmICgkYiA8IDApIHtcbiAgICAkc2lnbjogJy0nO1xuICAgICRiOiBhYnMoJGIpO1xuICB9XG5cbiAgQHJldHVybiBjYWxjKCN7JG0qMTAwfXZ3ICN7JHNpZ259ICN7JGJ9KTtcbn1cblxuLy8vIGxpc3Qtc29ydFxuLy8vIFNvcnQgYSBTQVNTIGxpc3Rcbi8vLyBAcGFyYW0gJGxpc3QgLSBBIFNBU1MgbGlzdFxuLy8vIEByZXR1cm5zIEEgc29ydGVkIFNBU1MgbGlzdFxuLy8vIEByZXF1aXJlcyBmdW5jdGlvbiBsaXN0LXJlbW92ZVxuLy8vIEBhdXRob3IgSmFrZSBXaWxzb24gPGpha2UuZS53aWxzb25AZ21haWwuY29tPlxuQGZ1bmN0aW9uIGxpc3Qtc29ydCgkbGlzdCkge1xuICAkc29ydGVkbGlzdDogKCk7XG4gIEB3aGlsZSBsZW5ndGgoJGxpc3QpID4gMCB7XG4gICAgJHZhbHVlOiBudGgoJGxpc3QsIDEpO1xuICAgIEBlYWNoICRpdGVtIGluICRsaXN0IHtcbiAgICAgIEBpZiAkaXRlbSA8ICR2YWx1ZSB7XG4gICAgICAgICR2YWx1ZTogJGl0ZW07XG4gICAgICB9XG4gICAgfVxuICAgICRzb3J0ZWRsaXN0OiBhcHBlbmQoJHNvcnRlZGxpc3QsICR2YWx1ZSwgJ3NwYWNlJyk7XG4gICAgJGxpc3Q6IGxpc3QtcmVtb3ZlKCRsaXN0LCBpbmRleCgkbGlzdCwgJHZhbHVlKSk7XG4gIH1cbiAgQHJldHVybiAkc29ydGVkbGlzdDtcbn1cblxuLy8vIG1hcC1zb3J0XG4vLy8gU29ydCBtYXAgYnkga2V5c1xuLy8vIEBwYXJhbSAkbWFwIC0gQSBTQVNTIG1hcFxuLy8vIEByZXR1cm5zIEEgU0FTUyBtYXAgc29ydGVkIGJ5IGtleXNcbi8vLyBAcmVxdWlyZXMgZnVuY3Rpb24gbGlzdC1zb3J0XG4vLy8gQGF1dGhvciBKYWtlIFdpbHNvbiA8amFrZS5lLndpbHNvbkBnbWFpbC5jb20+XG5AZnVuY3Rpb24gbWFwLXNvcnQoJG1hcCkge1xuICAka2V5czogbGlzdC1zb3J0KG1hcC5rZXlzKCRtYXApKTtcbiAgJHNvcnRlZC1tYXA6ICgpO1xuICBAZWFjaCAka2V5IGluICRrZXlzIHtcbiAgICAkc29ydGVkLW1hcDogbWFwLm1lcmdlKCRzb3J0ZWQtbWFwLCAoJGtleTogbWFwLmdldCgkbWFwLCAka2V5KSkpO1xuICB9XG4gIEByZXR1cm4gJHNvcnRlZC1tYXA7XG59XG5cbi8vLyBsaXN0LXJlbW92ZVxuLy8vIFJlbW92ZSBhbiBpdGVtIGZyb20gYSBsaXN0XG4vLy8gQHBhcmFtICRsaXN0IC0gQSBTQVNTIGxpc3Rcbi8vLyBAcGFyYW0gJGluZGV4IC0gVGhlIGxpc3QgaW5kZXggdG8gcmVtb3ZlXG4vLy8gQHJldHVybnMgQSBTQVNTIGxpc3Rcbi8vLyBAYXV0aG9yIEpha2UgV2lsc29uIDxqYWtlLmUud2lsc29uQGdtYWlsLmNvbT5cbkBmdW5jdGlvbiBsaXN0LXJlbW92ZSgkbGlzdCwgJGluZGV4KSB7XG4gICRuZXctbGlzdDogKCk7XG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggbGVuZ3RoKCRsaXN0KSB7XG4gICAgQGlmICRpICE9ICRpbmRleCB7XG4gICAgICAkbmV3LWxpc3Q6IGFwcGVuZCgkbmV3LWxpc3QsIG50aCgkbGlzdCwgJGkpLCAnc3BhY2UnKTtcbiAgICB9XG4gIH1cbiAgQHJldHVybiAkbmV3LWxpc3Q7XG59XG5cbkBtaXhpbiBicCgkbmFtZSkge1xuICBAbWVkaWEgKCN7bWFwLmdldCgkZGlhbG9nLWJyZWFrcG9pbnRzLCAkbmFtZSl9KSB7XG4gICAgQGNvbnRlbnRcbiAgfVxufVxuXG5AbWl4aW4gdHlwbygkbmFtZTogZGVmYXVsdCwgJG92ZXJ3cml0ZXM6IG51bGwsICRmbHVpZDogJGRpYWxvZy1pcy1mbHVpZCkge1xuICAkdHlwZS1icmVha3BvaW50czogbWFwLmtleXMoJGRpYWxvZy10eXBvKTtcbiAgJGRlZmF1bHQtdHlwZXM6IG1hcC5nZXQoJGRpYWxvZy10eXBvLCAkZGlhbG9nLWJyZWFrcG9pbnQtZGVmYXVsdCk7XG5cbiAgQGlmIG1hcC5oYXMta2V5KCRkZWZhdWx0LXR5cGVzLCAkbmFtZSkge1xuICAgICRicmVha3BvaW50LXN0eWxlczogbWFwLmdldCgkZGVmYXVsdC10eXBlcywgJG5hbWUpO1xuICAgIEBpZiAkb3ZlcndyaXRlcyB7XG4gICAgICAkYnJlYWtwb2ludC1zdHlsZXM6IG1hcC5tZXJnZSgkYnJlYWtwb2ludC1zdHlsZXMsICRvdmVyd3JpdGVzKTtcbiAgICB9XG4gICAgLy8vIHByaW50cyBzdHlsZXMgZm9yIHRoZSBkZWZhdWx0IGJyZWFrcG9pbnRcbiAgICBAZWFjaCAkcHJvcGVydHksICR2YWx1ZSBpbiAkYnJlYWtwb2ludC1zdHlsZXMge1xuICAgICAgQGlmICRkaWFsb2ctaXMtZmx1aWQgYW5kICgkcHJvcGVydHkgPT0gJ2ZvbnQtc2l6ZScpICB7XG4gICAgICAgIEBpbmNsdWRlIHBvbHktZmx1aWQtc2l6aW5nKCdmb250LXNpemUnLCBtYXAuZ2V0KCRkaWFsb2ctZmx1aWQtdHlwZS1zaXplcywgJG5hbWUpKTtcbiAgICAgIH0gQGVsc2UgaWYgJHByb3BlcnR5ID09ICdmb250LWZhbWlseScge1xuICAgICAgICAjeyRwcm9wZXJ0eX06IHVucXVvdGUoJHZhbHVlKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAjeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGlmIG5vdCAkZmx1aWQge1xuICAgICAgQGluY2x1ZGUgdHlwb0JyZWFrcG9pbnQoJHR5cGUtYnJlYWtwb2ludHMsICRuYW1lLCAkZGVmYXVsdC10eXBlcyk7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAd2FybiAnbm8gdHlwZSBuYW1lZCBgI3skbmFtZX1gIGluICRkaWFsb2ctdHlwbyc7XG4gIH1cbn1cblxuQG1peGluIGNzc2lmeS1tYXAoJGRlY2xhcmF0aW9ucykge1xuICBAZWFjaCAkcHJvcGVydHksICR2YWx1ZSBpbiAkZGVjbGFyYXRpb25zIHtcbiAgICAjeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgfVxufVxuXG4vLyByZW5kZXJzIG1vZGlmaWVyZXNcbkBtaXhpbiB0eXBvQnJlYWtwb2ludCgkdHlwZS1icmVha3BvaW50cywgJG5hbWUsICRkZWZhdWx0LXR5cGVzKSB7XG4gIEBlYWNoICRicmVha3BvaW50LW5hbWUgaW4gJHR5cGUtYnJlYWtwb2ludHMge1xuICAgIEBpZiBub3QgKCRicmVha3BvaW50LW5hbWUgPT0gJGRpYWxvZy1icmVha3BvaW50LWRlZmF1bHQpIHtcbiAgICAgIEBpbmNsdWRlIGJwKCRicmVha3BvaW50LW5hbWUpIHtcbiAgICAgICAgJGJyZWFrcG9pbnQtc3R5bGVzOiBtYXAuZ2V0KCRkaWFsb2ctdHlwbywgJGJyZWFrcG9pbnQtbmFtZSk7XG4gICAgICAgIEBpbmNsdWRlIGNzc2lmeS1tYXAobWFwLmdldCgkYnJlYWtwb2ludC1zdHlsZXMsICRuYW1lKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIHJlbmRlcnMgZGVmYXVsdCB0ZXh0IGhlbHBlciBjbGFzc2VzXG5AbWl4aW4gdGV4dENsYXNzZXMgKCRwcmVmaXg6ICcudC0nKSB7XG4gICRkZWZhdWx0LXR5cGVzOiBtYXAuZ2V0KCRkaWFsb2ctdHlwbywgJGRpYWxvZy1icmVha3BvaW50LWRlZmF1bHQpO1xuICBAZWFjaCAkcnVsZSwgJGtleSBpbiAkZGVmYXVsdC10eXBlcyB7XG4gICAgQGlmIG5vdCAoJHJ1bGUgPT0gZGVmYXVsdCkgIHtcbiAgICAgICN7JHByZWZpeH0jeyRydWxlfSB7XG4gICAgICAgIEBpbmNsdWRlIHR5cG8oJHJ1bGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiQHVzZSAnc2FzczptYXAnO1xuXG4vLyBvdmVyd3JpdGVzIGJwIG1peGluIGZyb20gZGlhbG9nLXR5cG9ncmFwaHkgdG8gdXNlIGxvY2FsIGNvZGVcbkBtaXhpbiBicCgkYXJncy4uLikge1xuICBAaW5jbHVkZSBtZWRpYXF1ZXJ5KCRhcmdzLi4uKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gU1I6IE1vZGlmaWVkIGNzc2lmeS1tYXAgdG8gc3VwcG9ydCBmb250LWZhbWlseSBtYXBzIGluIGJyZWFrcG9pbnRzXG5AbWl4aW4gY3NzaWZ5LW1hcCgkZGVjbGFyYXRpb25zKSB7XG4gIEBlYWNoICRwcm9wZXJ0eSwgJHZhbHVlIGluICRkZWNsYXJhdGlvbnMge1xuICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzY3NzL25vLWdsb2JhbC1mdW5jdGlvbi1uYW1lcyAqL1xuICAgIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gJ21hcCcge1xuICAgICAgQGVhY2ggJGNvbmRpdGlvbiwgJGRlZmluaXRpb24gaW4gJHZhbHVlIHtcbiAgICAgICAgQGlmICRjb25kaXRpb24gIT0gJycge1xuICAgICAgICAgICN7JGNvbmRpdGlvbn0gJiB7XG4gICAgICAgICAgICAjeyRwcm9wZXJ0eX06ICRkZWZpbml0aW9uO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgI3skcHJvcGVydHl9OiAkZGVmaW5pdGlvbjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgfVxuICB9XG59XG5cbi8vIHJlZGVmaW5lIHR5cG9CcmVha3BvaW50LCB0byB1c2UgdGhlIGNvcnJlY3QgY3NzaWZ5LW1hcFxuLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNjc3MvYXQtbWl4aW4tcGF0dGVybiAqL1xuQG1peGluIHR5cG9CcmVha3BvaW50KCR0eXBlLWJyZWFrcG9pbnRzLCAkbmFtZSwgJGRlZmF1bHQtdHlwZXMpIHtcbiAgQGVhY2ggJGJyZWFrcG9pbnQtbmFtZSBpbiAkdHlwZS1icmVha3BvaW50cyB7XG4gICAgQGlmIG5vdCAoJGJyZWFrcG9pbnQtbmFtZSA9PSAkZGlhbG9nLWJyZWFrcG9pbnQtZGVmYXVsdCkge1xuICAgICAgQGluY2x1ZGUgYnAoJGJyZWFrcG9pbnQtbmFtZSkge1xuICAgICAgICAkYnJlYWtwb2ludC1zdHlsZXM6IG1hcC5nZXQoJGRpYWxvZy10eXBvLCAkYnJlYWtwb2ludC1uYW1lKTtcbiAgICAgICAgQGluY2x1ZGUgY3NzaWZ5LW1hcChtYXAuZ2V0KCRicmVha3BvaW50LXN0eWxlcywgJG5hbWUpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIENvbG9yc1xuLy8gY29sb3IgbmFtZXMgbW9zdGx5IGJhc2VkIG9uXG4vLyBodHRwOi8vY2hpci5hZy9wcm9qZWN0cy9uYW1lLXRoYXQtY29sb3IvXG4vLyBodHRwczovL2NvZGVwZW4uaW8vbWVvZGFpL2Z1bGwvbUV2WlJ4XG5cbi8vIENhbm5vdCB1c2UgOnJvb3QgYXMgdGhpcyBtdXN0IHdvcmsgaW5cbi8vIHNoYWRvdyBkb20gd2hlcmUgbm8gOnJvb3QgaXMgYXZhaWxhYmxlIGFuZFxuLy8gd2hlcmUgcG90ZW50aWFsbHkgbm8gYm9keSBpcyBhdmFpbGFibGVcbjpyb290LFxuOmhvc3Qge1xuICBAaW5jbHVkZSByZW5kZXItY29sb3ItcGFsZXR0ZXMtdG8tY3NzKCRwYWxldHRlci1wYWxldHRlcyk7XG59XG5cbmJvZHkge1xuICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC0tZGVmYXVsdCk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWxheW91dC0tZm91bmRhdGlvbik7XG59XG5cbi8vIGRpZmZlcmVudCBjb2xvciBzY2hlbWUgaW4gZGFyayBtb2RlXG5bZGF0YS1jb2xvci1zY2hlbWU9J2RhcmsnXSB7XG4gIC8vIGRvdWJsaW5nIHRoZSBzcGVjaWZpY2l0eSBiZWNhdXNlIGluIGludGVncmF0ZWQgYXBwcywgdGhpcyBjb2RlIGlzXG4gIC8vIGxvYWRlZCBhZ2FpbiBhbmQgdGhlbiA6cm9vdCAoYWJvdmUpIHdpbGwgb3ZlcndyaXRlIHRoZXNlIGNvbG91cnMgYWdhaW5cbiAgLy8gVGhpcyBpcyBhbiBpc3N1ZSB3aGVuIGFuIGludGVncmF0ZWQgYXBwIGhhcyBhbiBvbGQgc3R5bGVndWlkZSB3aXRob3V0XG4gIC8vIHRoZXNlIG1vZGVybiBkYXJrbW9kZSBjb2xvdXJzLlxuICAmI3smfSB7XG4gICAgQGluY2x1ZGUgcmVuZGVyLWNvbG9yLXBhbGV0dGVzLXRvLWNzcygkcGFsZXR0ZXItcGFsZXR0ZXMtZGFyayk7XG4gIH1cbn1cblxuLy8gdGhlIHNsaWRlciB0byB0b2dnbGUgZGFya21vZGUgaXMgdGhlIG9ubHkgZWxlbWVudCB0aGF0IHNob3VsZCBrZWVwIGl0cyBvcmlnaW5hbCB0cmFuc2l0aW9uXG5bZGF0YS1jb2xvci1zY2hlbWUtdHJhbnNpdGlvbl0gKjpub3QoLnNjaGVtZXN3aXRjaCAqKSB7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuM3MgZWFzZS1vdXQsIGJhY2tncm91bmQtY29sb3IgMC4zcyBlYXNlLW91dCAhaW1wb3J0YW50O1xufVxuIiwiLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbi8qKlxuICogR2V0cyBjb2xvciB2YWx1ZSBzdHJpbmcgYW5kIHJldHVybiBpZiBpdHMgYSBsaW5rIHRvIGFuIG90aGVyIHBhbGV0dGUgdmFsdWVcbiAqIEBwYXJhbSB7U3RyaW5nfSB2YWx1ZVxuICogQHJldHVybiB7Qm9vbGVhbn1cbiAqL1xuLyoqXG4gKiBwYXJzZXMga2V5IHBhc3NlZCB0byB0aGUgZ2V0Q29sb3IgbWV0aG9kXG4gKiBAcGFyYW0ge1N0cmluZ30gcGFsZXR0ZUtleVxuICogQHJldHVybiB7T2JqZWN0fSBjb250YWluaW5nIGEgcHJvcGVydHkgd2l0aCB0aGUgcGFsZXR0ZSBwYWxldHRlIGFuZCBjb2xvciBrZXlcbiAqL1xuLyoqXG4gKiByZXR1cm5zIGEgY29sb3IgdmFsdWUgZnJvbSBwYWxldHRlXG4gKiBhbmQgY2hlY2tzIGlmIHRoZSBwYWxldHRlIGFuZCBjb2xvciBleGlzdHNcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gcGFsZXR0ZSBuYW1lIG9mIHRoZSBwYWxldHRlIChwcm9wZXJ0eSBuYW1lIG9mIHRoaXMucGFsZXR0ZSlcbiAqIEBwYXJhbSB7U3RyaW5nfSBrZXkgbmFtZSBvZiB0aGUgY29sb3Igd2l0aGluIGEgcGFsZXR0ZVxuICogICAgICAgICAgICAgICAgICAgICAocHJvcGVydHkgbmFtZSBvZiB0aGlzLnBhbGV0dGVbcGFsZXR0ZUtleV0pXG4gKiBAcmV0dXJuIHtTdHJpbmd9IGNvbG9yIHZhbHVlXG4gKi9cbi8qKlxuICogQHBhcmFtIHtTdHJpbmd9IHBhbGV0dGVLZXkgdHlwaWNhbGx5IGNvbnRhaW5zIGEgcGFsZXR0ZS0ta2V5IHN0cmluZ1xuICogQHBhcmFtIHtBcnJheX0gW2NhbGxTdGFjaz1bXV0gU3RvcmVzIGFsbCBwcmV2aW91cyBjYWxscyB0byBtYWtlIHN1cmUgd2UgZG9uJ3QgaW5maW5pdGUgbG9vcFxuICogQHJldHVybiB7T2JqZWN0fSB2YWw6IGNvbG9yIHN0cmluZyBzdG9yZWQgaW4gY29sb3Igb2JqZWN0LCBuYW1lOiBuYW1lIGluIGNvbG9yIHBhbGV0dGVcbiAqL1xuLyoqXG4gKiByZW1hcHMgYWxsIHRoZSBjb2xvciBuYW1lcyB0byB0aGUgYWN0dWFsIGNvbG9yIHZhbHVlXG4gKiBAcGFyYW0ge09iamVjdH0gcGFsZXR0ZXMgWW91IHBhbGV0dGUgb2JqZWN0XG4gKiBAcmV0dXJuIHtPYmplY3R9IHBhcnNlZCBwYWxldHRlIHdpdGggY29sb3IgdmFsdWVzIGluc3RlYWQgb2YgbGlua3NcbiAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbi8qKlxuICogZGlhbG9nLXNpemUgLSBQYWlubGVzcyBDU1Mgc2l6ZXNcbiAqIEB2ZXJzaW9uIHYxLjcuMFxuICogKGMpIDIwMTkgbWVvZGFpIDxtZW9kYWlAZ21haWwuY29tPiAoaHR0cHM6Ly9naXRodWIuY29tL21lb2RhaS8pXG4gKiBAbGluayBodHRwczovL2dpdGh1Yi5jb20vbWVvZGFpL2RpYWxvZy1zaXplI3JlYWRtZVxuICogQGxpY2Vuc2UgTUlUXG4gKi9cbi8qKlxuICogZGlhbG9nLXR5cG9ncmFwaHkgLSBTQVNTL1NDU1MgbW9kdWxlIHNldHRpbmdzXG4gKiBAdmVyc2lvbiB2Mi4wLjBcbiAqIChjKSAyMDIxIG1lb2RhaVxuICogQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL21lb2RhaS9kaWFsb2ctdHlwb2dyYXBoeSNyZWFkbWVcbiAqIEBsaWNlbnNlIE1JVFxuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2Nzcy9hdC1taXhpbi1wYXR0ZXJuICovXG46cm9vdCxcbjpob3N0IHtcbiAgLS1jb2xvci1hdmF0YXItLWRlZmF1bHQ6ICMwMDdhYjg7XG4gIC0tY29sb3ItYXZhdGFyLS1jb250ZXh0OiAjMDA0Nzc0O1xuICAtLWNvbG9yLWJyYW5kLS1kZWZhdWx0OiAjMjYyNjI2O1xuICAtLWNvbG9yLWJyYW5kLS1pZGVudGl0eTogIzAwN2FiODtcbiAgLS1jb2xvci1icmFuZC0tY29udHJhc3Q6ICNmZmZmZmY7XG4gIC0tY29sb3ItdGV4dC0tZGVmYXVsdDogIzI2MjYyNjtcbiAgLS1jb2xvci10ZXh0LS1pbnZlcnRlZDogI2ZmZmZmZjtcbiAgLS1jb2xvci10ZXh0LS1saWdodDogIzc2NzY3NjtcbiAgLS1jb2xvci10ZXh0LS1pbXByaW50OiAjZmZmZmZmO1xuICAtLWNvbG9yLXRleHQtLXRhYmxlOiAjNGE0YTRhO1xuICAtLWNvbG9yLXRleHQtLWNvbnRyYXN0OiAjZmZmZmZmO1xuICAtLWNvbG9yLWljb24tLWNvbnRyYXN0OiAjZmZmZmZmO1xuICAtLWNvbG9yLWltYWdlcGxhY2Vob2xkZXItLWJhY2tncm91bmQ6ICNlNWY0ZmM7XG4gIC0tY29sb3ItaW50ZXJhY3Rpb24tLWRlZmF1bHQ6ICMwMDdhYjg7XG4gIC0tY29sb3ItaW50ZXJhY3Rpb24tLWRlZmF1bHQtYXR0ZW50aW9uOiAjMDA0Nzc0O1xuICAtLWNvbG9yLWludGVyYWN0aW9uLS1kZWZhdWx0LWZvY3VzOiAjZTVmNGZjO1xuICAtLWNvbG9yLWludGVyYWN0aW9uLS1kZWZhdWx0LWRpc2FibGVkOiAjYmZlNGY4O1xuICAtLWNvbG9yLWludGVyYWN0aW9uLS1kZWZhdWx0LWFjdGl2ZTogIzFjMzU0YjtcbiAgLS1jb2xvci1pbnRlcmFjdGlvbi0taW5hY3RpdmU6ICNiY2JjYmM7XG4gIC0tY29sb3ItaW50ZXJhY3Rpb24tLWluYWN0aXZlLWF0dGVudGlvbjogIzc2NzY3NjtcbiAgLS1jb2xvci1pbnRlcmFjdGlvbi0taW5hY3RpdmUtZGlzYWJsZWQ6ICNkYmRiZGI7XG4gIC0tY29sb3ItaW50ZXJhY3Rpb24tLWRhbmdlcjogI2I4MGQyMjtcbiAgLS1jb2xvci1pbnRlcmFjdGlvbi0tZGFuZ2VyLWF0dGVudGlvbjogIzhjMDAxMTtcbiAgLS1jb2xvci1pbnRlcmFjdGlvbi0tZGFuZ2VyLWFjdGl2ZTogI2QxOTlhMDtcbiAgLS1jb2xvci1pbnRlcmFjdGlvbi0taGlnaGxpZ2h0OiByZ2JhKDM4LCAzOCwgMzgsIDAuMDYpO1xuICAtLWNvbG9yLWludGVyYWN0aW9uLS1pbnZlcnRlZDogI2ZmZmZmZjtcbiAgLS1jb2xvci1pbnRlcmFjdGlvbi0taW52ZXJ0ZWQtYXR0ZW50aW9uOiAjZmZmZmZmO1xuICAtLWNvbG9yLWJ1dHRvbi0tZGVmYXVsdDogIzAwN2FiODtcbiAgLS1jb2xvci1idXR0b24tLWRlZmF1bHQtYXR0ZW50aW9uOiAjMDA0Nzc0O1xuICAtLWNvbG9yLWJ1dHRvbi0tZGVmYXVsdC1hY3RpdmU6ICMxYzM1NGI7XG4gIC0tY29sb3ItYnV0dG9uLS1kYW5nZXI6ICNiODBkMjI7XG4gIC0tY29sb3ItYnV0dG9uLS1kYW5nZXItYXR0ZW50aW9uOiAjOGMwMDExO1xuICAtLWNvbG9yLWJ1dHRvbi0tZGFuZ2VyLWFjdGl2ZTogI2QxOTlhMDtcbiAgLS1jb2xvci1idXR0b24tLWRpc2FibGVkOiAjNzY3Njc2O1xuICAtLWNvbG9yLWJ1dHRvbi0tZGlzYWJsZWQtbGlnaHQ6ICNkYmRiZGI7XG4gIC0tY29sb3ItYnV0dG9uLS1pbnZlcnRlZDogI2ZmZmZmZjtcbiAgLS1jb2xvci1idXR0b24tLWludmVydGVkLWF0dGVudGlvbjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xuICAtLWNvbG9yLWJ1dHRvbi0taW52ZXJ0ZWQtZGlzYWJsZWQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTtcbiAgLS1jb2xvci1idXR0b24tLWludmVydGVkLXByaW1hcnktYXR0ZW50aW9uOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCk7XG4gIC0tY29sb3ItbGF5b3V0LS1mb3VuZGF0aW9uOiAjZmZmZmZmO1xuICAtLWNvbG9yLWxheW91dC0tYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgLS1jb2xvci1sYXlvdXQtLWJhc2U6ICNmZmZmZmY7XG4gIC0tY29sb3ItbGF5b3V0LS1ib3g6ICNmN2Y3Zjc7XG4gIC0tY29sb3ItbGF5b3V0LS1icmFuZC1saW5lOiAjMDA3YWI4O1xuICAtLWNvbG9yLWxheW91dC0taW1wcmludDogIzAwNDc3NDtcbiAgLS1jb2xvci1sYXlvdXQtLWludmVydGVkOiAjMDA3YWI4O1xuICAtLWNvbG9yLWxheW91dC0tbGluZTogI2RiZGJkYjtcbiAgLS1jb2xvci1sYXlvdXQtLW1lbnU6ICMwMDdhYjg7XG4gIC0tY29sb3ItbGF5b3V0LS1vcGFxdWU6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wMSk7XG4gIC0tY29sb3ItbGF5b3V0LS1zZW1pLW9wYXF1ZTogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KTtcbiAgLS1jb2xvci1sYXlvdXQtLW9wYXF1ZS1kYXJrOiByZ2JhKDM4LCAzOCwgMzgsIDAuMDEpO1xuICAtLWNvbG9yLWxheW91dC0tb3BhcXVlLWludmVydGVkOiByZ2JhKDAsIDEyMiwgMTg0LCAwLjIpO1xuICAtLWNvbG9yLWxheW91dC0tb3ZlcmxheTogcmdiYSgzOCwgMzgsIDM4LCAwLjg1KTtcbiAgLS1jb2xvci1sYXlvdXQtLW92ZXJsYXktbGlnaHQ6IHJnYmEoMzgsIDM4LCAzOCwgMC42KTtcbiAgLS1jb2xvci1sYXlvdXQtLXNoYWRvdzogcmdiYSgzOCwgMzgsIDM4LCAwLjg1KTtcbiAgLS1jb2xvci1sYXlvdXQtLXNoYWRvdy1saWdodDogcmdiYSgzOCwgMzgsIDM4LCAwLjIpO1xuICAtLWNvbG9yLWxheW91dC0tc3Rhcms6ICMyNjI2MjY7XG4gIC0tY29sb3ItbGF5b3V0LS10b29sdGlwOiAjNjI2MjYyO1xuICAtLWNvbG9yLWxheW91dC0tcG9wdXA6ICNmZmZmZmY7XG4gIC0tY29sb3ItbGF5b3V0LS1wb3B1cC1saWdodDogI2ZmZmZmZjtcbiAgLS1jb2xvci1sYXlvdXQtLWRlY29yYXRpb246ICMwMDdhYjg7XG4gIC0tY29sb3ItbGluay0tYmFja2dyb3VuZC1hdHRlbnRpb246IHJnYmEoMCwgMTIyLCAxODQsIDAuMSk7XG4gIC0tY29sb3ItbGluay0tYmFja2dyb3VuZC1hY3RpdmU6IHJnYmEoMCwgMTIyLCAxODQsIDAuMik7XG4gIC0tY29sb3ItZm9ybS0taW5wdXQtYmFzZTogI2ZmZmZmZjtcbiAgLS1jb2xvci1mb3JtLS1pbnB1dC10ZXh0OiAjMjYyNjI2O1xuICAtLWNvbG9yLWZvcm0tLWlucHV0LWJvcmRlcjogIzc2NzY3NjtcbiAgLS1jb2xvci1mb3JtLS1pbnB1dC1ib3JkZXItc3Rhcms6ICM3Njc2NzY7XG4gIC0tY29sb3ItZm9ybS0tbGFiZWwtZGVmYXVsdDogIzI2MjYyNjtcbiAgLS1jb2xvci1mb3JtLS1sYWJlbC1kaXNhYmxlZDogIzc2NzY3NjtcbiAgLS1jb2xvci1mb3JtLS1sYWJlbC1pbnZhbGlkOiAjYjgwZDIyO1xuICAtLWNvbG9yLWZvcm0tLWludmFsaWQ6ICNiODBkMjI7XG4gIC0tY29sb3ItZm9ybS0tZGlzYWJsZWQ6ICM3Njc2NzY7XG4gIC0tY29sb3ItZm9ybS0tZGlzYWJsZWQtbGlnaHQ6ICNkYmRiZGI7XG4gIC0tY29sb3ItZm9ybS0tcGxhY2Vob2xkZXI6ICM3Njc2NzY7XG4gIC0tY29sb3ItZGF0ZXBpY2tlci0taGVhZGVyOiAjZjdmN2Y3O1xuICAtLWNvbG9yLWRhdGVwaWNrZXItLWJvZHk6ICNmZmZmZmY7XG4gIC0tY29sb3ItZGF0ZXBpY2tlci0taWNvbjogIzc2NzY3NjtcbiAgLS1jb2xvci1kYXRlcGlja2VyLS1pY29uLWF0dGVudGlvbjogIzI2MjYyNjtcbiAgLS1jb2xvci1kYXRlcGlja2VyLS1kYXktc2VsZWN0ZWQ6ICMwMDQ3NzQ7XG4gIC0tY29sb3ItZGF0ZXBpY2tlci0tdGV4dC1zZWxlY3RlZDogI2ZmZmZmZjtcbiAgLS1jb2xvci1kYXRlcGlja2VyLS1kYXktYXR0ZW50aW9uOiAjMDA3YWI4O1xuICAtLWNvbG9yLWFjY2Vzc2libGUtLXJlYWRhYmxlOiAjMjYyNjI2O1xuICAtLWNvbG9yLWFjY2Vzc2libGUtLWxpbmU6ICM5MTkxOTE7XG4gIC0tY29sb3ItaXJyZWd1bGFyaXR5LS1ub3RpY2U6ICMyNjI2MjY7XG4gIC0tY29sb3ItaXJyZWd1bGFyaXR5LS1zdWNjZXNzOiAjODFhZjE3O1xuICAtLWNvbG9yLWlycmVndWxhcml0eS0td2FybmluZzogI2I4MGQyMjtcbiAgLS1jb2xvci1pcnJlZ3VsYXJpdHktLWVycm9yOiAjYjgwZDIyO1xuICAtLWNvbG9yLWlycmVndWxhcml0eS0taW5lcnQ6ICM3Njc2NzY7XG4gIC0tY29sb3ItaXJyZWd1bGFyaXR5LS1oaWdobGlnaHQ6ICNlNWY0ZmM7XG4gIC0tY29sb3ItYnJhbmRzLS1hYXJnYXUtYmx1ZTogIzAwNDc3NDtcbiAgLS1jb2xvci1icmFuZHMtLXN3aXNzaWQtcmVkOiAjZWIwMDAwO1xuICAtLWNvbG9yLXByZXZuZXh0LS1jb250ZXh0OiAjMDA3YWI4O1xuICAtLWNvbG9yLXByZXZuZXh0LS1jb250ZXh0LWFjdGl2ZTogIzAwN2FiODtcbiAgLS1jb2xvci1wcmV2bmV4dC0tY29udGV4dC1ob3ZlcjogIzAwN2FiODtcbiAgLS1jb2xvci1wcmV2bmV4dC0tY29udGV4dC12aXNpdGVkOiAjMDA3YWI4O1xuICAtLWNvbG9yLXByZXZuZXh0LS1iYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAtLWNvbG9yLXByZXZuZXh0LS1iYWNrZ3JvdW5kLWFjdGl2ZTogI2ZmZmZmZjtcbiAgLS1jb2xvci1wcmV2bmV4dC0tYmFja2dyb3VuZC1ob3ZlcjogI2ZmZmZmZjtcbiAgLS1jb2xvci1wcmV2bmV4dC0tYmFja2dyb3VuZC12aXNpdGVkOiAjZmZmZmZmO1xuICAtLWNvbG9yLXByZXZuZXh0LS10ZXh0OiAjMjYyNjI2O1xuICAtLWNvbG9yLXByZXZuZXh0LS10ZXh0LWFjdGl2ZTogIzAwN2FiODtcbiAgLS1jb2xvci1wcmV2bmV4dC0tdGV4dC1ob3ZlcjogIzAwN2FiODtcbiAgLS1jb2xvci1wcmV2bmV4dC0tdGV4dC12aXNpdGVkOiAjMjYyNjI2O1xuICAtLWNvbG9yLXByZXZuZXh0LS1vdXRsaW5lOiAjMDA3YWI4O1xuICAtLWNvbG9yLXByZXZuZXh0LS1vdXRsaW5lLWFjdGl2ZTogIzAwN2FiODtcbiAgLS1jb2xvci1wcmV2bmV4dC0tb3V0bGluZS1ob3ZlcjogIzAwN2FiODtcbiAgLS1jb2xvci1wcmV2bmV4dC0tb3V0bGluZS12aXNpdGVkOiAjMDA3YWI4O1xuICAtLWNvbG9yLXByZXZuZXh0LS1pY29uOiAjMDA3YWI4O1xuICAtLWNvbG9yLXByZXZuZXh0LS1pY29uLWFjdGl2ZTogIzAwN2FiODtcbiAgLS1jb2xvci1wcmV2bmV4dC0taWNvbi1ob3ZlcjogIzAwN2FiODtcbiAgLS1jb2xvci1wcmV2bmV4dC0taWNvbi12aXNpdGVkOiAjMDA3YWI4O1xuICAtLWNvbG9yLXRhYmxlLS1oaWdobGlnaHQ6ICNlNWY0ZmM7XG4gIC0tY29sb3ItdGFibGUtLWxpbmU6ICNkYmRiZGI7XG4gIC0tY29sb3Itc3BlY2lhbHRlYXNlcmNvbGxlY3Rpb24tLXByaW1hcnk6ICMwMDdhYjg7XG4gIC0tY29sb3Itc3BlY2lhbHRlYXNlcmNvbGxlY3Rpb24tLWFjY2VudDogI2ZmZTVlOTtcbiAgLS1jb2xvci1zcGVjaWFsdGVhc2VyY29sbGVjdGlvbi0tc2Vjb25kYXJ5LTE6ICNlNWY0ZmM7XG4gIC0tY29sb3Itc3BlY2lhbHRlYXNlcmNvbGxlY3Rpb24tLXNlY29uZGFyeS0yOiAjZWVlZWVlO1xuICAtLWNvbG9yLXNwZWNpYWx0ZWFzZXJjb2xsZWN0aW9uLS1zZWNvbmRhcnktMzogIzAwNDc3NDtcbiAgLS1jb2xvci1zcGVjaWFsdGVhc2VyY29sbGVjdGlvbi0tcHJpbWFyeS10ZXh0OiAjZmZmZmZmO1xuICAtLWNvbG9yLXNwZWNpYWx0ZWFzZXJjb2xsZWN0aW9uLS1hY2NlbnQtdGV4dDogIzI2MjYyNjtcbiAgLS1jb2xvci1zcGVjaWFsdGVhc2VyY29sbGVjdGlvbi0tc2Vjb25kYXJ5LTEtdGV4dDogIzI2MjYyNjtcbiAgLS1jb2xvci1zcGVjaWFsdGVhc2VyY29sbGVjdGlvbi0tc2Vjb25kYXJ5LTItdGV4dDogIzI2MjYyNjtcbiAgLS1jb2xvci1zcGVjaWFsdGVhc2VyY29sbGVjdGlvbi0tc2Vjb25kYXJ5LTMtdGV4dDogI2ZmZmZmZjtcbiAgLS1jb2xvci1oZXJvZmlndXJlLS1iYWNrZ3JvdW5kOiAjZTVmNGZjO1xuICAtLWNvbG9yLWNvbG9yc2NoZW1lc3dpdGNoLS1zdW46ICNmZmQ0NGY7XG4gIC0tY29sb3ItY29sb3JzY2hlbWVzd2l0Y2gtLXN1bi1zaGFkZTogI2UyYWYzYjtcbiAgLS1jb2xvci1jb2xvcnNjaGVtZXN3aXRjaC0tc3VuLXNoaW5lOiAjZmZlZjJjO1xuICAtLWNvbG9yLWNvbG9yc2NoZW1lc3dpdGNoLS1tb29uOiAjZmZmZmZmO1xuICAtLWNvbG9yLWNvbG9yc2NoZW1lc3dpdGNoLS1tb29uLXNoaW5lOiAjZmZmZmZmO1xuICAtLWNvbG9yLWNvbG9yc2NoZW1lc3dpdGNoLS1tb29uLXNoYWRlOiAjZGJkYmRiO1xuICAtLWNvbG9yLWNyaXNpcy0tYmFja2dyb3VuZC1wcmltYXJ5OiAjMDA3YWI4O1xuICAtLWNvbG9yLWNyaXNpcy0tYmFja2dyb3VuZC1zZWNvbmRhcnk6ICM3Njc2NzY7XG4gIC0tY29sb3ItY3Jpc2lzLS1iYWNrZ3JvdW5kLXdhcm5pbmc6ICNiODBkMjI7XG4gIC0tY29sb3ItY3Jpc2lzLS10ZXh0LXByaW1hcnk6ICNmZmZmZmY7XG4gIC0tY29sb3ItY3Jpc2lzLS10ZXh0LXNlY29uZGFyeTogI2ZmZmZmZjtcbiAgLS1jb2xvci1jcmlzaXMtLXRleHQtd2FybmluZzogI2ZmZmZmZjtcbiAgLS1jb2xvci1jcmlzaXMtLWxpbmU6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbiAgLS1jb2xvci1pbWFnZWdhbGxlcnktLWhpZ2hsaWdodDogI2U1ZjRmYztcbiAgLS1jb2xvci1pbWFnZXByb2R1Y3QtLXRleHQtZGVmYXVsdDogIzAwNDc3NDtcbiAgLS1jb2xvci1pbWFnZXByb2R1Y3QtLXNwcml0ZTogIzAwN2FiODtcbiAgLS1jb2xvci1pbWFnZXByb2R1Y3QtLWJhY2tncm91bmQ6ICNiZmU0Zjg7XG4gIC0tY29sb3ItdGFnLS1kZWZhdWx0OiAjZWVlZWVlO1xuICAtLWNvbG9yLXRhZy0tZGVmYXVsdC1hdHRlbnRpb246ICNkYmRiZGI7XG59XG5cbmJvZHkge1xuICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC0tZGVmYXVsdCk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWxheW91dC0tZm91bmRhdGlvbik7XG59XG5cbltkYXRhLWNvbG9yLXNjaGVtZT1kYXJrXVtkYXRhLWNvbG9yLXNjaGVtZT1kYXJrXSB7XG4gIC0tY29sb3ItYXZhdGFyLS1kZWZhdWx0OiAjODVkNmZmO1xuICAtLWNvbG9yLWF2YXRhci0tY29udGV4dDogI2MyZWJmZjtcbiAgLS1jb2xvci1icmFuZC0tZGVmYXVsdDogI2ZmZmZmZjtcbiAgLS1jb2xvci1icmFuZC0taWRlbnRpdHk6ICMwMDdhYjg7XG4gIC0tY29sb3ItYnJhbmQtLWNvbnRyYXN0OiAjMjYyNjI2O1xuICAtLWNvbG9yLXRleHQtLWRlZmF1bHQ6ICNmZmZmZmY7XG4gIC0tY29sb3ItdGV4dC0taW52ZXJ0ZWQ6ICMyNjI2MjY7XG4gIC0tY29sb3ItdGV4dC0tbGlnaHQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcbiAgLS1jb2xvci10ZXh0LS1pbXByaW50OiAjMjYyNjI2O1xuICAtLWNvbG9yLXRleHQtLXRhYmxlOiAjNGE0YTRhO1xuICAtLWNvbG9yLXRleHQtLWNvbnRyYXN0OiAjZmZmZmZmO1xuICAtLWNvbG9yLWljb24tLWNvbnRyYXN0OiAjZmZmZmZmO1xuICAtLWNvbG9yLWltYWdlcGxhY2Vob2xkZXItLWJhY2tncm91bmQ6ICNlNWY0ZmM7XG4gIC0tY29sb3ItaW50ZXJhY3Rpb24tLWRlZmF1bHQ6ICM4NWQ2ZmY7XG4gIC0tY29sb3ItaW50ZXJhY3Rpb24tLWRlZmF1bHQtYXR0ZW50aW9uOiAjYTNlMGZmO1xuICAtLWNvbG9yLWludGVyYWN0aW9uLS1kZWZhdWx0LWZvY3VzOiAjZTVmNGZjO1xuICAtLWNvbG9yLWludGVyYWN0aW9uLS1kZWZhdWx0LWRpc2FibGVkOiAjYmZlNGY4O1xuICAtLWNvbG9yLWludGVyYWN0aW9uLS1kZWZhdWx0LWFjdGl2ZTogI2MyZWJmZjtcbiAgLS1jb2xvci1pbnRlcmFjdGlvbi0taW5hY3RpdmU6ICNiY2JjYmM7XG4gIC0tY29sb3ItaW50ZXJhY3Rpb24tLWluYWN0aXZlLWF0dGVudGlvbjogIzc2NzY3NjtcbiAgLS1jb2xvci1pbnRlcmFjdGlvbi0taW5hY3RpdmUtZGlzYWJsZWQ6ICNkYmRiZGI7XG4gIC0tY29sb3ItaW50ZXJhY3Rpb24tLWRhbmdlcjogI2ZmNWU3MjtcbiAgLS1jb2xvci1pbnRlcmFjdGlvbi0tZGFuZ2VyLWF0dGVudGlvbjogIzhjMDAxMTtcbiAgLS1jb2xvci1pbnRlcmFjdGlvbi0tZGFuZ2VyLWFjdGl2ZTogI2QxOTlhMDtcbiAgLS1jb2xvci1pbnRlcmFjdGlvbi0taGlnaGxpZ2h0OiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDUpO1xuICAtLWNvbG9yLWludGVyYWN0aW9uLS1pbnZlcnRlZDogIzI2MjYyNjtcbiAgLS1jb2xvci1pbnRlcmFjdGlvbi0taW52ZXJ0ZWQtYXR0ZW50aW9uOiAjMjYyNjI2O1xuICAtLWNvbG9yLWJ1dHRvbi0tZGVmYXVsdDogIzg1ZDZmZjtcbiAgLS1jb2xvci1idXR0b24tLWRlZmF1bHQtYXR0ZW50aW9uOiAjYTNlMGZmO1xuICAtLWNvbG9yLWJ1dHRvbi0tZGVmYXVsdC1hY3RpdmU6ICNjMmViZmY7XG4gIC0tY29sb3ItYnV0dG9uLS1kYW5nZXI6ICNiODBkMjI7XG4gIC0tY29sb3ItYnV0dG9uLS1kYW5nZXItYXR0ZW50aW9uOiAjOGMwMDExO1xuICAtLWNvbG9yLWJ1dHRvbi0tZGFuZ2VyLWFjdGl2ZTogI2QxOTlhMDtcbiAgLS1jb2xvci1idXR0b24tLWRpc2FibGVkOiAjNGE0YTRhO1xuICAtLWNvbG9yLWJ1dHRvbi0tZGlzYWJsZWQtbGlnaHQ6ICNkYmRiZGI7XG4gIC0tY29sb3ItYnV0dG9uLS1pbnZlcnRlZDogIzI2MjYyNjtcbiAgLS1jb2xvci1idXR0b24tLWludmVydGVkLWF0dGVudGlvbjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xuICAtLWNvbG9yLWJ1dHRvbi0taW52ZXJ0ZWQtZGlzYWJsZWQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTtcbiAgLS1jb2xvci1idXR0b24tLWludmVydGVkLXByaW1hcnktYXR0ZW50aW9uOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCk7XG4gIC0tY29sb3ItbGF5b3V0LS1mb3VuZGF0aW9uOiAjMWIyNTJmO1xuICAtLWNvbG9yLWxheW91dC0tYmFja2dyb3VuZDogIzFiMjUyZjtcbiAgLS1jb2xvci1sYXlvdXQtLWJhc2U6ICMxYjI1MmY7XG4gIC0tY29sb3ItbGF5b3V0LS1ib3g6ICMzZDQ2NGU7XG4gIC0tY29sb3ItbGF5b3V0LS1icmFuZC1saW5lOiAjMDA3YWI4O1xuICAtLWNvbG9yLWxheW91dC0taW1wcmludDogIzI2MzAzOTtcbiAgLS1jb2xvci1sYXlvdXQtLWludmVydGVkOiAjMDA3YWI4O1xuICAtLWNvbG9yLWxheW91dC0tbGluZTogIzNkNDY0ZTtcbiAgLS1jb2xvci1sYXlvdXQtLW1lbnU6ICMwMDdhYjg7XG4gIC0tY29sb3ItbGF5b3V0LS1vcGFxdWU6IHJnYmEoMjcsIDM3LCA0NywgMC4xKTtcbiAgLS1jb2xvci1sYXlvdXQtLXNlbWktb3BhcXVlOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDUpO1xuICAtLWNvbG9yLWxheW91dC0tb3BhcXVlLWludmVydGVkOiAjMDA3YWI4O1xuICAtLWNvbG9yLWxheW91dC0tb3ZlcmxheTogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpO1xuICAtLWNvbG9yLWxheW91dC0tb3ZlcmxheS1saWdodDogcmdiYSgzOCwgMzgsIDM4LCAwLjYpO1xuICAtLWNvbG9yLWxheW91dC0tc2hhZG93OiByZ2JhKDM4LCAzOCwgMzgsIDAuODUpO1xuICAtLWNvbG9yLWxheW91dC0tc2hhZG93LWxpZ2h0OiByZ2JhKDM4LCAzOCwgMzgsIDAuMik7XG4gIC0tY29sb3ItbGF5b3V0LS1zdGFyazogI2ZmZmZmZjtcbiAgLS1jb2xvci1sYXlvdXQtLXRvb2x0aXA6ICM1ZjY2NmQ7XG4gIC0tY29sb3ItbGF5b3V0LS1wb3B1cDogIzMyM2I0NDtcbiAgLS1jb2xvci1sYXlvdXQtLXBvcHVwLWxpZ2h0OiAjNDk1MTU5O1xuICAtLWNvbG9yLWxheW91dC0tZGVjb3JhdGlvbjogIzg1ZDZmZjtcbiAgLS1jb2xvci1saW5rLS1iYWNrZ3JvdW5kLWF0dGVudGlvbjogcmdiYSgwLCAxMjIsIDE4NCwgMC4xKTtcbiAgLS1jb2xvci1saW5rLS1iYWNrZ3JvdW5kLWFjdGl2ZTogcmdiYSgwLCAxMjIsIDE4NCwgMC4yKTtcbiAgLS1jb2xvci1mb3JtLS1pbnB1dC1iYXNlOiAjMWIyNTJmO1xuICAtLWNvbG9yLWZvcm0tLWlucHV0LXRleHQ6ICNmZmZmZmY7XG4gIC0tY29sb3ItZm9ybS0taW5wdXQtYm9yZGVyOiAjNWY2NjZkO1xuICAtLWNvbG9yLWZvcm0tLWlucHV0LWJvcmRlci1zdGFyazogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpO1xuICAtLWNvbG9yLWZvcm0tLWxhYmVsLWRlZmF1bHQ6ICNmZmZmZmY7XG4gIC0tY29sb3ItZm9ybS0tbGFiZWwtZGlzYWJsZWQ6ICM3Njc2NzY7XG4gIC0tY29sb3ItZm9ybS0tbGFiZWwtaW52YWxpZDogI2ZmNWU3MjtcbiAgLS1jb2xvci1mb3JtLS1pbnZhbGlkOiAjZmY1ZTcyO1xuICAtLWNvbG9yLWZvcm0tLWRpc2FibGVkOiAjNzY3Njc2O1xuICAtLWNvbG9yLWZvcm0tLWRpc2FibGVkLWxpZ2h0OiAjZGJkYmRiO1xuICAtLWNvbG9yLWZvcm0tLXBsYWNlaG9sZGVyOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG4gIC0tY29sb3ItZGF0ZXBpY2tlci0taGVhZGVyOiAjNWY2NjZkO1xuICAtLWNvbG9yLWRhdGVwaWNrZXItLWJvZHk6ICM0OTUxNTk7XG4gIC0tY29sb3ItZGF0ZXBpY2tlci0taWNvbjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xuICAtLWNvbG9yLWRhdGVwaWNrZXItLWljb24tYXR0ZW50aW9uOiAjZmZmZmZmO1xuICAtLWNvbG9yLWRhdGVwaWNrZXItLWRheS1zZWxlY3RlZDogI2EzZTBmZjtcbiAgLS1jb2xvci1kYXRlcGlja2VyLS10ZXh0LXNlbGVjdGVkOiAjMjYyNjI2O1xuICAtLWNvbG9yLWRhdGVwaWNrZXItLWRheS1hdHRlbnRpb246ICM4NWQ2ZmY7XG4gIC0tY29sb3ItYWNjZXNzaWJsZS0tcmVhZGFibGU6ICMyNjI2MjY7XG4gIC0tY29sb3ItYWNjZXNzaWJsZS0tbGluZTogIzkxOTE5MTtcbiAgLS1jb2xvci1pcnJlZ3VsYXJpdHktLW5vdGljZTogIzI2MzAzOTtcbiAgLS1jb2xvci1pcnJlZ3VsYXJpdHktLXN1Y2Nlc3M6ICM4MWFmMTc7XG4gIC0tY29sb3ItaXJyZWd1bGFyaXR5LS13YXJuaW5nOiAjZmY1ZTcyO1xuICAtLWNvbG9yLWlycmVndWxhcml0eS0tZXJyb3I6ICNmZjVlNzI7XG4gIC0tY29sb3ItaXJyZWd1bGFyaXR5LS1pbmVydDogIzc2NzY3NjtcbiAgLS1jb2xvci1pcnJlZ3VsYXJpdHktLWhpZ2hsaWdodDogIzNiNWE2ZDtcbiAgLS1jb2xvci1icmFuZHMtLWFhcmdhdS1ibHVlOiAjMDA0Nzc0O1xuICAtLWNvbG9yLWJyYW5kcy0tc3dpc3NpZC1yZWQ6ICNlYjAwMDA7XG4gIC0tY29sb3ItcHJldm5leHQtLWNvbnRleHQ6ICM4NWQ2ZmY7XG4gIC0tY29sb3ItcHJldm5leHQtLWNvbnRleHQtYWN0aXZlOiAjODVkNmZmO1xuICAtLWNvbG9yLXByZXZuZXh0LS1jb250ZXh0LWhvdmVyOiAjODVkNmZmO1xuICAtLWNvbG9yLXByZXZuZXh0LS1jb250ZXh0LXZpc2l0ZWQ6ICM4NWQ2ZmY7XG4gIC0tY29sb3ItcHJldm5leHQtLWJhY2tncm91bmQ6ICMxYjI1MmY7XG4gIC0tY29sb3ItcHJldm5leHQtLWJhY2tncm91bmQtYWN0aXZlOiAjMWIyNTJmO1xuICAtLWNvbG9yLXByZXZuZXh0LS1iYWNrZ3JvdW5kLWhvdmVyOiAjMWIyNTJmO1xuICAtLWNvbG9yLXByZXZuZXh0LS1iYWNrZ3JvdW5kLXZpc2l0ZWQ6ICMxYjI1MmY7XG4gIC0tY29sb3ItcHJldm5leHQtLXRleHQ6ICNmZmZmZmY7XG4gIC0tY29sb3ItcHJldm5leHQtLXRleHQtYWN0aXZlOiAjODVkNmZmO1xuICAtLWNvbG9yLXByZXZuZXh0LS10ZXh0LWhvdmVyOiAjODVkNmZmO1xuICAtLWNvbG9yLXByZXZuZXh0LS10ZXh0LXZpc2l0ZWQ6ICNmZmZmZmY7XG4gIC0tY29sb3ItcHJldm5leHQtLW91dGxpbmU6ICM4NWQ2ZmY7XG4gIC0tY29sb3ItcHJldm5leHQtLW91dGxpbmUtYWN0aXZlOiAjODVkNmZmO1xuICAtLWNvbG9yLXByZXZuZXh0LS1vdXRsaW5lLWhvdmVyOiAjODVkNmZmO1xuICAtLWNvbG9yLXByZXZuZXh0LS1vdXRsaW5lLXZpc2l0ZWQ6ICM4NWQ2ZmY7XG4gIC0tY29sb3ItcHJldm5leHQtLWljb246ICM4NWQ2ZmY7XG4gIC0tY29sb3ItcHJldm5leHQtLWljb24tYWN0aXZlOiAjODVkNmZmO1xuICAtLWNvbG9yLXByZXZuZXh0LS1pY29uLWhvdmVyOiAjODVkNmZmO1xuICAtLWNvbG9yLXByZXZuZXh0LS1pY29uLXZpc2l0ZWQ6ICM4NWQ2ZmY7XG4gIC0tY29sb3ItdGFibGUtLWhpZ2hsaWdodDogIzJiNDA0ZTtcbiAgLS1jb2xvci10YWJsZS0tbGluZTogIzI2MzAzOTtcbiAgLS1jb2xvci1zcGVjaWFsdGVhc2VyY29sbGVjdGlvbi0tcHJpbWFyeTogIzg1ZDZmZjtcbiAgLS1jb2xvci1zcGVjaWFsdGVhc2VyY29sbGVjdGlvbi0tYWNjZW50OiAjZmZlNWU5O1xuICAtLWNvbG9yLXNwZWNpYWx0ZWFzZXJjb2xsZWN0aW9uLS1zZWNvbmRhcnktMTogI2RhZjNmZjtcbiAgLS1jb2xvci1zcGVjaWFsdGVhc2VyY29sbGVjdGlvbi0tc2Vjb25kYXJ5LTI6ICM1ZjY2NmQ7XG4gIC0tY29sb3Itc3BlY2lhbHRlYXNlcmNvbGxlY3Rpb24tLXNlY29uZGFyeS0zOiAjMmI0MDRlO1xuICAtLWNvbG9yLXNwZWNpYWx0ZWFzZXJjb2xsZWN0aW9uLS1wcmltYXJ5LXRleHQ6ICMyNjI2MjY7XG4gIC0tY29sb3Itc3BlY2lhbHRlYXNlcmNvbGxlY3Rpb24tLWFjY2VudC10ZXh0OiAjMjYyNjI2O1xuICAtLWNvbG9yLXNwZWNpYWx0ZWFzZXJjb2xsZWN0aW9uLS1zZWNvbmRhcnktMS10ZXh0OiAjMjYyNjI2O1xuICAtLWNvbG9yLXNwZWNpYWx0ZWFzZXJjb2xsZWN0aW9uLS1zZWNvbmRhcnktMi10ZXh0OiAjZmZmZmZmO1xuICAtLWNvbG9yLXNwZWNpYWx0ZWFzZXJjb2xsZWN0aW9uLS1zZWNvbmRhcnktMy10ZXh0OiAjZmZmZmZmO1xuICAtLWNvbG9yLWhlcm9maWd1cmUtLWJhY2tncm91bmQ6ICNkYWYzZmY7XG4gIC0tY29sb3ItY3Jpc2lzLS1iYWNrZ3JvdW5kLXByaW1hcnk6ICMwMDdhYjg7XG4gIC0tY29sb3ItY3Jpc2lzLS1iYWNrZ3JvdW5kLXNlY29uZGFyeTogIzQ5NTE1OTtcbiAgLS1jb2xvci1jcmlzaXMtLWJhY2tncm91bmQtd2FybmluZzogI2I4MGQyMjtcbiAgLS1jb2xvci1jcmlzaXMtLXRleHQtcHJpbWFyeTogI2ZmZmZmZjtcbiAgLS1jb2xvci1jcmlzaXMtLXRleHQtc2Vjb25kYXJ5OiAjZmZmZmZmO1xuICAtLWNvbG9yLWNyaXNpcy0tdGV4dC13YXJuaW5nOiAjZmZmZmZmO1xuICAtLWNvbG9yLWNyaXNpcy0tbGluZTogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xuICAtLWNvbG9yLWltYWdlZ2FsbGVyeS0taGlnaGxpZ2h0OiAjMmI0MDRlO1xuICAtLWNvbG9yLWltYWdlcHJvZHVjdC0tdGV4dC1kZWZhdWx0OiAjZmZmZmZmO1xuICAtLWNvbG9yLWltYWdlcHJvZHVjdC0tc3ByaXRlOiAjMDA3YWI4O1xuICAtLWNvbG9yLWltYWdlcHJvZHVjdC0tYmFja2dyb3VuZDogIzFiMjUyZjtcbiAgLS1jb2xvci10YWctLWRlZmF1bHQ6ICM1ZjY2NmQ7XG4gIC0tY29sb3ItdGFnLS1kZWZhdWx0LWF0dGVudGlvbjogIzNkNDY0ZTtcbn1cblxuW2RhdGEtY29sb3Itc2NoZW1lLXRyYW5zaXRpb25dICo6bm90KC5zY2hlbWVzd2l0Y2ggKikge1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjNzIGVhc2Utb3V0LCBiYWNrZ3JvdW5kLWNvbG9yIDAuM3MgZWFzZS1vdXQgIWltcG9ydGFudDtcbn1cblxuOnJvb3Qge1xuICBmb250LXNpemU6IDYyLjUlO1xufVxuXG46cm9vdCxcbjpob3N0IHtcbiAgLyogQGxpbmsgaHR0cHM6Ly91dG9waWEuZnlpL3NwYWNlL2NhbGN1bGF0b3I/Yz0zMjAsMTYsMS4yNSwxNDQwLDI0LDEuMzMzLDQsMSwmcz0wLjc1fDAuNXwwLjI1LDEuNXwyfDIuNXwzfDMuNXw0fDV8Nnw3LHhzLW18bS0yeGwmZz1zLGwseGwsMTIgKi9cbiAgLS1zaXplLTN4czogY2xhbXAoMC40cmVtLCAwLjM0Mjg4cmVtICsgMC4xNzg2dncsIDAuNnJlbSk7XG4gIC0tc2l6ZS0yeHM6IGNsYW1wKDAuOHJlbSwgMC42ODU3NnJlbSArIDAuMzU3MXZ3LCAxLjJyZW0pO1xuICAtLXNpemUteHM6IGNsYW1wKDEuMnJlbSwgMS4wMjg2NHJlbSArIDAuNTM1N3Z3LCAxLjhyZW0pO1xuICAtLXNpemUtczogY2xhbXAoMS42cmVtLCAxLjM3MTM2cmVtICsgMC43MTQzdncsIDIuNHJlbSk7XG4gIC0tc2l6ZS1tOiBjbGFtcCgyLjRyZW0sIDIuMDU3MTJyZW0gKyAxLjA3MTR2dywgMy42cmVtKTtcbiAgLS1zaXplLWw6IGNsYW1wKDMuMnJlbSwgMi43NDI4OHJlbSArIDEuNDI4NnZ3LCA0LjhyZW0pO1xuICAtLXNpemUteGw6IGNsYW1wKDRyZW0sIDMuNDI4NjRyZW0gKyAxLjc4NTd2dywgNnJlbSk7XG4gIC0tc2l6ZS0yeGw6IGNsYW1wKDQuOHJlbSwgNC4xMTQyNHJlbSArIDIuMTQyOXZ3LCA3LjJyZW0pO1xuICAtLXNpemUtM3hsOiBjbGFtcCg1LjZyZW0sIDQuOHJlbSArIDIuNXZ3LCA4LjRyZW0pO1xuICAtLXNpemUtNHhsOiBjbGFtcCg2LjRyZW0sIDUuNDg1NzZyZW0gKyAyLjg1NzF2dywgOS42cmVtKTtcbiAgLS1zaXplLTV4bDogY2xhbXAoOHJlbSwgNi44NTcxMnJlbSArIDMuNTcxNHZ3LCAxMnJlbSk7XG4gIC0tc2l6ZS02eGw6IGNsYW1wKDkuNnJlbSwgOC4yMjg2NHJlbSArIDQuMjg1N3Z3LCAxNC40cmVtKTtcbiAgLS1zaXplLTd4bDogY2xhbXAoMTEuMnJlbSwgOS42cmVtICsgNXZ3LCAxNi44cmVtKTtcbiAgLyogT25lLXVwIHBhaXJzICovXG4gIC0tc2l6ZS0zeHMtMnhzOiBjbGFtcCgwLjRyZW0sIDAuMTcxMzZyZW0gKyAwLjcxNDN2dywgMS4ycmVtKTtcbiAgLS1zaXplLTJ4cy14czogY2xhbXAoMC44cmVtLCAwLjUxNDI0cmVtICsgMC44OTI5dncsIDEuOHJlbSk7XG4gIC0tc2l6ZS14cy1zOiBjbGFtcCgxLjJyZW0sIDAuODU3MTJyZW0gKyAxLjA3MTR2dywgMi40cmVtKTtcbiAgLS1zaXplLXMtbTogY2xhbXAoMS42cmVtLCAxLjAyODY0cmVtICsgMS43ODU3dncsIDMuNnJlbSk7XG4gIC0tc2l6ZS1tLWw6IGNsYW1wKDIuNHJlbSwgMS43MTQyNHJlbSArIDIuMTQyOXZ3LCA0LjhyZW0pO1xuICAtLXNpemUtbC14bDogY2xhbXAoMy4ycmVtLCAyLjRyZW0gKyAyLjV2dywgNnJlbSk7XG4gIC0tc2l6ZS14bC0yeGw6IGNsYW1wKDRyZW0sIDMuMDg1NzZyZW0gKyAyLjg1NzF2dywgNy4ycmVtKTtcbiAgLS1zaXplLTJ4bC0zeGw6IGNsYW1wKDQuOHJlbSwgMy43NzEzNnJlbSArIDMuMjE0M3Z3LCA4LjRyZW0pO1xuICAtLXNpemUtM3hsLTR4bDogY2xhbXAoNS42cmVtLCA0LjQ1NzEycmVtICsgMy41NzE0dncsIDkuNnJlbSk7XG4gIC0tc2l6ZS00eGwtNXhsOiBjbGFtcCg2LjRyZW0sIDQuOHJlbSArIDV2dywgMTJyZW0pO1xuICAtLXNpemUtNXhsLTZ4bDogY2xhbXAoOHJlbSwgNi4xNzEzNnJlbSArIDUuNzE0M3Z3LCAxNC40cmVtKTtcbiAgLS1zaXplLTZ4bC03eGw6IGNsYW1wKDkuNnJlbSwgNy41NDI4OHJlbSArIDYuNDI4NnZ3LCAxNi44cmVtKTtcbiAgLyogQ3VzdG9tIHBhaXJzICovXG4gIC0tc2l6ZS14cy1tOiBjbGFtcCgxLjJyZW0sIDAuNTE0MjRyZW0gKyAyLjE0Mjl2dywgMy42cmVtKTtcbiAgLS1zaXplLXMtbDogY2xhbXAoMS42cmVtLCAwLjY4NTc2cmVtICsgMi44NTcxdncsIDQuOHJlbSk7XG4gIC0tc2l6ZS1tLTJ4bDogY2xhbXAoMi40cmVtLCAxLjAyODY0cmVtICsgNC4yODU3dncsIDcuMnJlbSk7XG4gIC0tc2l6ZS1sLTN4bDogY2xhbXAoMy4ycmVtLCAxLjcxNDI0cmVtICsgMy41NzE0dncsIDguNHJlbSk7XG4gIC0tc2l6ZS14bC00eGw6IGNsYW1wKDRyZW0sIDIuNHJlbSArIDV2dywgOS42cmVtKTtcbiAgLS1zaXplLWxheW91dC13aWR0aC1taW46IDMycmVtO1xuICAtLXNpemUtbGF5b3V0LXdpZHRoLW1heDogMTQ0cmVtO1xuICAtLXNpemUtbGF5b3V0LW1hcmdpbjogdmFyKC0tc2l6ZS14cy1zKTtcbiAgLS1zaXplLWxheW91dC1saW5lOiAwLjFyZW07XG4gIC0tc2l6ZS1jb250ZW50LXN0YWNrOiB2YXIoLS1zaXplLXhzLXMpO1xuICAtLXNpemUtbGluay11bmRlcmxpbmUtb2Zmc2V0OiAwLjNlbTtcbiAgLS1zaXplLWxpbmstdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzczogMC4wNTVlbTtcbiAgLyogQGxpbmsgaHR0cHM6Ly91dG9waWEuZnlpL2dyaWQvY2FsY3VsYXRvcj9jPTMyMCwxNiwxLjI1LDE0NjQsMTYsMS4zMzMsNCwxLCZzPTAuNzV8MC41LDEuNXwyfDN8NHw2LHMtbCZnPXMsbSwzeGwsMTIgKi9cbiAgLS1zaXplLWxheW91dGdyaWQtbWF4LXdpZHRoOiBjYWxjKHZhcigtLXNpemUtbGF5b3V0LXdpZHRoLW1heCkgLSAyICogdmFyKC0tc2l6ZS1sYXlvdXQtbWFyZ2luKSk7XG4gIC0tc2l6ZS1sYXlvdXRncmlkLWNvbHVtbnM6IDEyO1xuICAtLXNpemUtbGF5b3V0Z3JpZC1ndXR0ZXI6IHZhcigtLXNpemUtbGF5b3V0LW1hcmdpbik7XG4gIC0tc2l6ZS1sYXlvdXRncmlkLWNvbHVtbi13aWR0aDogY2FsYygodmFyKC0tc2l6ZS1sYXlvdXRncmlkLW1heC13aWR0aCkgLSAodmFyKC0tc2l6ZS1sYXlvdXRncmlkLWd1dHRlcikgKiAodmFyKC0tc2l6ZS1sYXlvdXRncmlkLWNvbHVtbnMpIC0gMSkpKSAvIHZhcigtLXNpemUtbGF5b3V0Z3JpZC1jb2x1bW5zKSk7XG4gIC0tc2l6ZS1sYXlvdXRncmlkLWNvbHVtbi13aWR0aC1mbHVpZDogY2FsYygoMTAwJSAtICh2YXIoLS1zaXplLWxheW91dGdyaWQtZ3V0dGVyKSAqICh2YXIoLS1zaXplLWxheW91dGdyaWQtY29sdW1ucykgLSAxKSkpIC8gdmFyKC0tc2l6ZS1sYXlvdXRncmlkLWNvbHVtbnMpKTtcbn1cblxuOnJvb3QsXG46aG9zdCB7XG4gIC0tdHlwby1zaXplLS0yOiBjbGFtcCgxLjMyOHJlbSwgMS4yOHJlbSArIDAuMTV2dywgMS41cmVtKTtcbiAgLS10eXBvLXNpemUtLTE6IGNsYW1wKDEuNHJlbSwgMS4yOHJlbSArIDAuM3Z3LCAxLjhyZW0pO1xuICAtLXR5cG8tc2l6ZS0wOiBjbGFtcCgxLjZyZW0sIDEuNDU2cmVtICsgMC40NXZ3LCAyLjA5NnJlbSk7XG4gIC0tdHlwby1zaXplLTE6IGNsYW1wKDJyZW0sIDEuNzZyZW0gKyAwLjc1dncsIDIuODMycmVtKTtcbiAgLS10eXBvLXNpemUtMjogY2xhbXAoMi40OTZyZW0sIDIuMTI4cmVtICsgMS4xOHZ3LCAzLjgyNHJlbSk7XG4gIC0tdHlwby1zaXplLTM6IGNsYW1wKDMuMTJyZW0sIDIuNTQ0cmVtICsgMS44MnZ3LCA1LjE2OHJlbSk7XG4gIC0tdHlwby1zaXplLTQ6IGNsYW1wKDMuOTA0cmVtLCAzLjAyNHJlbSArIDIuNzR2dywgNi45NzZyZW0pO1xufVxuXG46cm9vdCxcbjpob3N0ID4gKiB7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICBmb250LWRpc3BsYXk6IGF1dG87XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogaWNvbnM7XG4gIHNyYzogdXJsKFwiLi4vZm9udHMvaWNvbnMud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksIHVybChcIi4uL2ZvbnRzL2ljb25zLndvZmZcIikgZm9ybWF0KFwid29mZlwiKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuLmljb246OmJlZm9yZSB7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBjb250ZW50OiBcIlwiO1xuICBmb250LWZhbWlseTogXCJpY29uc1wiO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMTtcbiAgc3BlYWs6IG5vbmU7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4uaWNvbi0tYXJyb3ctZG93bjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGVhMDFcIjtcbn1cblxuLmljb24tLWFycm93LWxlZnQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlYTAyXCI7XG59XG5cbi5pY29uLS1hdHRlbnRpb246OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlYTA1XCI7XG59XG5cbi5pY29uLS1hdWRpbzo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGVhMDZcIjtcbn1cblxuLmljb24tLWJhY2t3YXJkOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZWEwOFwiO1xufVxuXG4uaWNvbi0tc2hvcHBpbmdjYXJ0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZWEwOVwiO1xufVxuXG4uaWNvbi0tY2xvc2U6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlYTBiXCI7XG59XG5cbi5pY29uLS1lbWFpbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGVhMGNcIjtcbn1cblxuLmljb24tLWVuZDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGVhMGRcIjtcbn1cblxuLmljb24tLWZpbGU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlYTBmXCI7XG59XG5cbi5pY29uLS1mb3J3YXJkOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZWExMVwiO1xufVxuXG4uaWNvbi0taTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGVhMTRcIjtcbn1cblxuLmljb24tLWxpbmstYW5jaG9yOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZWExNVwiO1xufVxuXG4uaWNvbi0tbGluay1leHRlcm5hbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGVhMTZcIjtcbn1cblxuLmljb24tLWxpbmstaW50ZXJuYWw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlYTE3XCI7XG59XG5cbi5pY29uLS1sb2dpbjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGVhMWRcIjtcbn1cblxuLmljb24tLXJzczo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGVhMjJcIjtcbn1cblxuLmljb24tLXN0YXJ0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZWEyNFwiO1xufVxuXG4uaWNvbi0tdHJpYW5nbGUtZG93bjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGVhMjdcIjtcbn1cblxuLmljb24tLXRyaWFuZ2xlLXVwOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZWEyYVwiO1xufVxuXG4uaWNvbi0tbG9nb3V0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZWEyZFwiO1xufVxuXG4uaWNvbi0tdmlkZW86OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlYTJlXCI7XG59XG5cbi5pY29uLS13YXN0ZWJpbjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGVhMmZcIjtcbn1cblxuLmljb24tLXpvb20taW46OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlYTMyXCI7XG59XG5cbi5pY29uLS1zdWNjZXNzOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZWEzNlwiO1xufVxuXG4uaWNvbi0tcGVuY2lsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZWEzN1wiO1xufVxuXG4uaWNvbi0taS1jaXJjbGVmaWxsZWQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlYTNiXCI7XG59XG5cbi5pY29uLS1jYWxlbmRhcjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGVhNDBcIjtcbn1cblxuLmljb24tLWxvY2F0aW9uOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZWE0MVwiO1xufVxuXG4uaWNvbi0tcGx1czo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGVhNDJcIjtcbn1cblxuLmljb24tLWV5ZS1jbG9zZWQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlYTQzXCI7XG59XG5cbi5pY29uLS1leWUtb3Blbjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGVhNDRcIjtcbn1cblxuLmljb24tLXN3aXRjaDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGVhNDVcIjtcbn1cblxuLmljb24tLWZpbGUtZXhlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZWE0NlwiO1xufVxuXG4uaWNvbi0tZmlsZS1wZGY6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlYTQ3XCI7XG59XG5cbi5pY29uLS1maWxlLXBwdDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGVhNDhcIjtcbn1cblxuLmljb24tLWZpbGUtcmFyOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZWE0OVwiO1xufVxuXG4uaWNvbi0tZmlsZS1ydGY6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlYTUwXCI7XG59XG5cbi5pY29uLS1maWxlLXdvcmQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlYTUxXCI7XG59XG5cbi5pY29uLS1maWxlLWV4Y2VsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZWE1MlwiO1xufVxuXG4uaWNvbi0tZmlsZS16aXA6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlYTUzXCI7XG59XG5cbi5pY29uLS1pbWFnZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGVhNTRcIjtcbn1cblxuLmljb24tLXVwbG9hZDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGVhNTdcIjtcbn1cblxuLnJpY2h0ZXh0OjphZnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjb250ZW50OiBcIlwiO1xuICBjbGVhcjogYm90aDtcbn1cbi5yaWNodGV4dCBwOm5vdChbY2xhc3NdKSB7XG4gIG1hcmdpbi10b3A6IHZhcigtLXNpemUtY29udGVudC1zdGFjayk7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG4ucmljaHRleHQgLmgyIHtcbiAgbWFyZ2luLXRvcDogMS41ZW07XG59XG4ucmljaHRleHQgLmgzIHtcbiAgbWFyZ2luLXRvcDogMS40NWVtO1xufVxuLnJpY2h0ZXh0IC5oNCxcbi5yaWNodGV4dCAuaDUsXG4ucmljaHRleHQgLmg2IHtcbiAgbWFyZ2luLXRvcDogMS4yZW07XG59XG4ucmljaHRleHQgLmltYWdlLFxuLnJpY2h0ZXh0IC5tb3NhaWMsXG4ucmljaHRleHQgLmxpbmtsaXN0IHtcbiAgbWFyZ2luLXRvcDogdmFyKC0tc2l6ZS1jb250ZW50LXN0YWNrKTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cbi5yaWNodGV4dCBociB7XG4gIG1hcmdpbi10b3A6IHZhcigtLXNpemUtY29udGVudC1zdGFjayk7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjbGVhcjogYm90aDtcbiAgaGVpZ2h0OiAxcHg7XG4gIGJvcmRlcjogMDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYWNjZXNzaWJsZS0tbGluZSk7XG59XG4ucmljaHRleHQgdWw6bm90KFtjbGFzc10pLFxuLnJpY2h0ZXh0IG9sOm5vdChbY2xhc3NdKSB7XG4gIG1hcmdpbi10b3A6IHZhcigtLXNpemUtY29udGVudC1zdGFjayk7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIHBhZGRpbmctbGVmdDogMi4yNWVtO1xuICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gIGRpc3BsYXk6IHRhYmxlO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5yaWNodGV4dCB1bDpub3QoW2NsYXNzXSksXG4gIC5yaWNodGV4dCBvbDpub3QoW2NsYXNzXSkge1xuICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzY3NzL25vLWdsb2JhbC1mdW5jdGlvbi1uYW1lcyAqL1xuICB9XG59XG5AbWVkaWEgcHJpbnQge1xuICAucmljaHRleHQgdWw6bm90KFtjbGFzc10pLFxuICAucmljaHRleHQgb2w6bm90KFtjbGFzc10pIHtcbiAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2Nzcy9uby1nbG9iYWwtZnVuY3Rpb24tbmFtZXMgKi9cbiAgfVxufVxuLnJpY2h0ZXh0IHVsOm5vdChbY2xhc3NdKSB1bCxcbi5yaWNodGV4dCB1bDpub3QoW2NsYXNzXSkgb2wsXG4ucmljaHRleHQgb2w6bm90KFtjbGFzc10pIHVsLFxuLnJpY2h0ZXh0IG9sOm5vdChbY2xhc3NdKSBvbCB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIHBhZGRpbmctbGVmdDogMS41ZW07XG59XG4ucmljaHRleHQgdWw6bm90KFtjbGFzc10pIGxpLFxuLnJpY2h0ZXh0IG9sOm5vdChbY2xhc3NdKSBsaSB7XG4gIGxpbmUtaGVpZ2h0OiAxLjM1ZW07XG4gIG1hcmdpbi10b3A6IDAuMTVlbTtcbn1cbi5yaWNodGV4dCB1bDpub3QoW2NsYXNzXSkgPiBsaSB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogZGlzYztcbn1cbi5yaWNodGV4dCBvbDpub3QoW2NsYXNzXSkgPiBsaSB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogZGVjaW1hbDtcbn1cbi5yaWNodGV4dDpmaXJzdC1jaGlsZCA+IDpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG4ucmljaHRleHQgLmltYWdlLS1mbG9hdC1sZWZ0ICsgcDpub3QoW2NsYXNzXSksXG4ucmljaHRleHQgLmltYWdlLS1mbG9hdC1yaWdodCArIHA6bm90KFtjbGFzc10pLFxuLnJpY2h0ZXh0IC5tb3NhaWMtLWZsb2F0LWxlZnQgKyBwOm5vdChbY2xhc3NdKSxcbi5yaWNodGV4dCAubW9zYWljLS1mbG9hdC1yaWdodCArIHA6bm90KFtjbGFzc10pIHtcbiAgbWFyZ2luLXRvcDogY2FsYyh2YXIoLS1zaXplLWNvbnRlbnQtc3RhY2spIC0gMC41ZW0pO1xufVxuLnJpY2h0ZXh0IC5pbWFnZS0tZmxvYXQtbGVmdDpmaXJzdC1jaGlsZCxcbi5yaWNodGV4dCAuaW1hZ2UtLWZsb2F0LXJpZ2h0OmZpcnN0LWNoaWxkLFxuLnJpY2h0ZXh0IC5tb3NhaWMtLWZsb2F0LWxlZnQ6Zmlyc3QtY2hpbGQsXG4ucmljaHRleHQgLm1vc2FpYy0tZmxvYXQtcmlnaHQ6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwLjRlbTtcbn1cblxuLmgxIHtcbiAgZm9udC1zaXplOiB2YXIoLS10eXBvLXNpemUtNCk7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIHBhZ2UtYnJlYWstYWZ0ZXI6IGF2b2lkO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5oMSB7XG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNjc3Mvbm8tZ2xvYmFsLWZ1bmN0aW9uLW5hbWVzICovXG4gIH1cbn1cbkBtZWRpYSBwcmludCB7XG4gIC5oMSB7XG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNjc3Mvbm8tZ2xvYmFsLWZ1bmN0aW9uLW5hbWVzICovXG4gIH1cbn1cblxuLmgxLS12aXN1YWxseWhpZGRlbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm9yZGVyOiAwO1xuICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luOiAtMXB4O1xuICBwYWRkaW5nOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLmgxLS12aXN1YWxseWhpZGRlbi5mb2N1c2FibGU6Zm9jdXMsIC5oMS0tdmlzdWFsbHloaWRkZW4uZm9jdXNhYmxlOmFjdGl2ZSB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIGNsaXA6IGF1dG87XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IGF1dG87XG4gIG1hcmdpbjogMDtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi5oMiB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdHlwby1zaXplLTIpO1xuICBmb250LXdlaWdodDogNzAwO1xuICBsaW5lLWhlaWdodDogMS4yNTtcbiAgcGFnZS1icmVhay1hZnRlcjogYXZvaWQ7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmgyIHtcbiAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2Nzcy9uby1nbG9iYWwtZnVuY3Rpb24tbmFtZXMgKi9cbiAgfVxufVxuQG1lZGlhIHByaW50IHtcbiAgLmgyIHtcbiAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2Nzcy9uby1nbG9iYWwtZnVuY3Rpb24tbmFtZXMgKi9cbiAgfVxufVxuXG4uaDMge1xuICBmb250LXNpemU6IHZhcigtLXR5cG8tc2l6ZS0xKTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMztcbiAgcGFnZS1icmVhay1hZnRlcjogYXZvaWQ7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmgzIHtcbiAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2Nzcy9uby1nbG9iYWwtZnVuY3Rpb24tbmFtZXMgKi9cbiAgfVxufVxuQG1lZGlhIHByaW50IHtcbiAgLmgzIHtcbiAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2Nzcy9uby1nbG9iYWwtZnVuY3Rpb24tbmFtZXMgKi9cbiAgfVxufVxuXG4uaDQsXG4uaDUsXG4uaDYge1xuICBmb250LXNpemU6IHZhcigtLXR5cG8tc2l6ZS0wKTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgcGFnZS1icmVhay1hZnRlcjogYXZvaWQ7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmg0LFxuICAuaDUsXG4gIC5oNiB7XG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNjc3Mvbm8tZ2xvYmFsLWZ1bmN0aW9uLW5hbWVzICovXG4gIH1cbn1cbkBtZWRpYSBwcmludCB7XG4gIC5oNCxcbiAgLmg1LFxuICAuaDYge1xuICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzY3NzL25vLWdsb2JhbC1mdW5jdGlvbi1uYW1lcyAqL1xuICB9XG59XG5cbi5zdGFhdHNrYWxlbmRlcmFkZHJlc3Mge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuLnN0YWF0c2thbGVuZGVyYWRkcmVzc19fdG91Y2hwb2ludHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogLTEuMnJlbSAwIDAgLTEuMnJlbTtcbiAgbWF4LXdpZHRoOiA2MDBweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA2MDBweCkge1xuICAuc3RhYXRza2FsZW5kZXJhZGRyZXNzX190b3VjaHBvaW50cyB7XG4gICAgbWFyZ2luLXRvcDogLTEuOHJlbTtcbiAgfVxufVxuQG1lZGlhIHByaW50IHtcbiAgLnN0YWF0c2thbGVuZGVyYWRkcmVzc19fdG91Y2hwb2ludHMge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbi5zdGFhdHNrYWxlbmRlcmFkZHJlc3NfX3RvdWNocG9pbnQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiBjYWxjKDUwJSAtIDEuMnJlbSk7XG4gIG1hcmdpbi1sZWZ0OiAxLjJyZW07XG59XG4uc3RhYXRza2FsZW5kZXJhZGRyZXNzX19saW5rIHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xufVxuLnN0YWF0c2thbGVuZGVyYWRkcmVzc19fbGluay5zdGFhdHNrYWxlbmRlcmFkZHJlc3NfX2xpbmsge1xuICBtYXJnaW4tdG9wOiAxLjJyZW07XG59XG4uc3ByaXRlICsgLnN0YWF0c2thbGVuZGVyYWRkcmVzc19fbGFiZWwge1xuICBtYXJnaW4tbGVmdDogMC40ZW07XG59XG4uc3RhYXRza2FsZW5kZXJhZGRyZXNzX19pbmZvcyB7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgbWFyZ2luLXRvcDogMS41ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjVlbTtcbn1cbi5zdGFhdHNrYWxlbmRlcmFkZHJlc3NfX3BhcmFncmFwaDpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG4uc3RhYXRza2FsZW5kZXJhZGRyZXNzX19vcmdhbmlzYXRpb246Zmlyc3QtY2hpbGQsIC5zdGFhdHNrYWxlbmRlcmFkZHJlc3NfX2Z1bGxuYW1lOmZpcnN0LWNoaWxkLCAuc3RhYXRza2FsZW5kZXJhZGRyZXNzX19yb2xlOmZpcnN0LWNoaWxkIHtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cbi5zdGFhdHNrYWxlbmRlcmFkZHJlc3NfX2FkZHJlc3Mge1xuICBtYXJnaW4tdG9wOiAwO1xufVxuLnN0YWF0c2thbGVuZGVyYWRkcmVzc19fY29udGFjdGZvcm0sIC5zdGFhdHNrYWxlbmRlcmFkZHJlc3NfX2VtYWlsLCAuc3RhYXRza2FsZW5kZXJhZGRyZXNzX193ZWJzaXRlLCAuc3RhYXRza2FsZW5kZXJhZGRyZXNzX19waG9uZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cbkBtZWRpYSBwcmludCB7XG4gIC5zdGFhdHNrYWxlbmRlcmFkZHJlc3NfX2NvbnRhY3Rmb3JtLCAuc3RhYXRza2FsZW5kZXJhZGRyZXNzX19lbWFpbCwgLnN0YWF0c2thbGVuZGVyYWRkcmVzc19fd2Vic2l0ZSwgLnN0YWF0c2thbGVuZGVyYWRkcmVzc19fcGhvbmUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIH1cbn1cbi5zdGFhdHNrYWxlbmRlcmFkZHJlc3NfX2NvbnRhY3Rmb3JtLS1vdGhlciwgLnN0YWF0c2thbGVuZGVyYWRkcmVzc19fZW1haWwtLW90aGVyLCAuc3RhYXRza2FsZW5kZXJhZGRyZXNzX193ZWJzaXRlLS1vdGhlciwgLnN0YWF0c2thbGVuZGVyYWRkcmVzc19fcGhvbmUtLW90aGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG59XG4uc3RhYXRza2FsZW5kZXJhZGRyZXNzX19zdWZmaXgge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvcmRlcjogMDtcbiAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgd2lkdGg6IDFweDtcbiAgaGVpZ2h0OiAxcHg7XG4gIG1hcmdpbjogLTFweDtcbiAgcGFkZGluZzogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5zdGFhdHNrYWxlbmRlcmFkZHJlc3NfX3N1ZmZpeC5mb2N1c2FibGU6Zm9jdXMsIC5zdGFhdHNrYWxlbmRlcmFkZHJlc3NfX3N1ZmZpeC5mb2N1c2FibGU6YWN0aXZlIHtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgY2xpcDogYXV0bztcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgbWFyZ2luOiAwO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cbi5zdGFhdHNrYWxlbmRlcmFkZHJlc3NfX29yZ2FuaXNhdGlvbiwgLnN0YWF0c2thbGVuZGVyYWRkcmVzc19fZnVsbG5hbWUge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLnN0YWF0c2thbGVuZGVyaW5kZXgtLWhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLnN0YWF0c2thbGVuZGVybGlzdCB7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICBsaW5lLWhlaWdodDogMS4yO1xufVxuLnN0YWF0c2thbGVuZGVybGlzdF9fZW50cnkge1xuICBtYXJnaW4tYm90dG9tOiAwLjlyZW07XG4gIG1hcmdpbi10b3A6IDAuMTVlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMzVlbTtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xufVxuLnN0YWF0c2thbGVuZGVybGlzdF9fbGluayB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1pbnRlcmFjdGlvbi0tZGVmYXVsdCk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiB2YXIoLS1zaXplLWxpbmstdW5kZXJsaW5lLW9mZnNldCk7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMXMgZWFzZS1vdXQsIGJhY2tncm91bmQtY29sb3IgMC4xcyBlYXNlLW91dDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy1sZWZ0OiAxLjhlbTtcbn1cbi5zdGFhdHNrYWxlbmRlcmxpc3RfX2xpbms6bGluayB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1pbnRlcmFjdGlvbi0tZGVmYXVsdCk7XG59XG4uc3RhYXRza2FsZW5kZXJsaXN0X19saW5rOnZpc2l0ZWQge1xuICBjb2xvcjogdmFyKC0tY29sb3ItaW50ZXJhY3Rpb24tLWRlZmF1bHQpO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5AbWVkaWEgcHJpbnQge1xuICAuc3RhYXRza2FsZW5kZXJsaXN0X19saW5rIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiB2YXIoLS1zaXplLWxpbmstdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzcyk7XG4gIH1cbn1cbi5zdGFhdHNrYWxlbmRlcmxpc3RfX2xpbms6OmJlZm9yZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG4uc3RhYXRza2FsZW5kZXJsaXN0X19saW5rOjphZnRlciB7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuLnN0YWF0c2thbGVuZGVybGlzdF9fbGluazo6YmVmb3JlIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuLnN0YWF0c2thbGVuZGVybGlzdF9fbGluazo6YWZ0ZXIge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4uc3RhYXRza2FsZW5kZXJsaXN0X19saW5rOmhvdmVyLCAuc3RhYXRza2FsZW5kZXJsaXN0X19saW5rOmZvY3VzLXZpc2libGUge1xuICBjb2xvcjogdmFyKC0tY29sb3ItaW50ZXJhY3Rpb24tLWRlZmF1bHQtYXR0ZW50aW9uKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IHZhcigtLXNpemUtbGluay10ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzKTtcbn1cbi5zdGFhdHNrYWxlbmRlcmxpc3RfX2xpbms6Zm9jdXMtdmlzaWJsZSB7XG4gIG91dGxpbmU6IDAuMnJlbSBzb2xpZCB2YXIoLS1jb2xvci1icmFuZC0tZGVmYXVsdCk7XG4gIG91dGxpbmUtb2Zmc2V0OiAwLjNyZW07XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1pbnRlcmFjdGlvbi0tZGVmYXVsdC1hdHRlbnRpb24pO1xufVxuLnN0YWF0c2thbGVuZGVybGlzdF9fbGluazphY3RpdmUge1xuICBjb2xvcjogdmFyKC0tY29sb3ItaW50ZXJhY3Rpb24tLWRlZmF1bHQtYWN0aXZlKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IHZhcigtLXNpemUtbGluay10ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzKTtcbn1cbi5zdGFhdHNrYWxlbmRlcmxpc3RfX2xpbms6aG92ZXI6OmJlZm9yZSwgLnN0YWF0c2thbGVuZGVybGlzdF9fbGluazphY3RpdmU6OmJlZm9yZSB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi5zdGFhdHNrYWxlbmRlcmxpc3RfX2xpbms6OmJlZm9yZSB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi5zdGFhdHNrYWxlbmRlcmxpc3RfX2xpbmsuc3RhYXRza2FsZW5kZXJsaXN0X19saW5rLnN0YWF0c2thbGVuZGVybGlzdF9fbGluay5zdGFhdHNrYWxlbmRlcmxpc3RfX2xpbmsge1xuICBtYXJnaW46IDA7XG59XG4uc3RhYXRza2FsZW5kZXJsaXN0X19saW5rLnN0YWF0c2thbGVuZGVybGlzdF9fbGluazpob3ZlciB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi5zdGFhdHNrYWxlbmRlcmxpc3RfX2xpbmsgLnNwcml0ZSB7XG4gIGhlaWdodDogMWVtO1xuICB3aWR0aDogMWVtO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtLWRlZmF1bHQpO1xufVxuLnN0YWF0c2thbGVuZGVybGlzdF9fbGluayAuc3ByaXRlLS11c2VyZ3JvdXAge1xuICBoZWlnaHQ6IDEuMjJlbTtcbiAgd2lkdGg6IDEuMjJlbTtcbiAgdG9wOiAwLjA1ZW07XG59XG4uc3RhYXRza2FsZW5kZXJsaXN0X19saW5rIC5zcHJpdGUtLXVzZXIge1xuICB3aWR0aDogMC45NmVtO1xuICBoZWlnaHQ6IDAuOTZlbTtcbiAgdG9wOiAwLjFlbTtcbiAgbGVmdDogMC4zZW07XG59XG4uc3RhYXRza2FsZW5kZXJsaXN0X19saW5rOmhvdmVyIC5zdGFhdHNrYWxlbmRlcmxpc3RfX2hlYWRpbmcge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbi5zdGFhdHNrYWxlbmRlcmxpc3RfX2Z1bmN0aW9uIHtcbiAgZm9udC1zaXplOiB2YXIoLS10eXBvLXNpemUtLTEpO1xuICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC0tZGVmYXVsdCk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgbWFyZ2luOiAwO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5zdGFhdHNrYWxlbmRlcmxpc3RfX2Z1bmN0aW9uIHtcbiAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2Nzcy9uby1nbG9iYWwtZnVuY3Rpb24tbmFtZXMgKi9cbiAgfVxufVxuQG1lZGlhIHByaW50IHtcbiAgLnN0YWF0c2thbGVuZGVybGlzdF9fZnVuY3Rpb24ge1xuICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzY3NzL25vLWdsb2JhbC1mdW5jdGlvbi1uYW1lcyAqL1xuICB9XG59XG4uc3RhYXRza2FsZW5kZXJsaXN0X19vcmdhbmlzYXRpb24ge1xuICBmb250LXNpemU6IHZhcigtLXR5cG8tc2l6ZS0tMik7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LS1saWdodCk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgbWFyZ2luOiAwO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5zdGFhdHNrYWxlbmRlcmxpc3RfX29yZ2FuaXNhdGlvbiB7XG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNjc3Mvbm8tZ2xvYmFsLWZ1bmN0aW9uLW5hbWVzICovXG4gIH1cbn1cbkBtZWRpYSBwcmludCB7XG4gIC5zdGFhdHNrYWxlbmRlcmxpc3RfX29yZ2FuaXNhdGlvbiB7XG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNjc3Mvbm8tZ2xvYmFsLWZ1bmN0aW9uLW5hbWVzICovXG4gIH1cbn1cbi5zdGFhdHNrYWxlbmRlcmxpc3QgLmxpbmtsaXN0IHtcbiAgbWFyZ2luLXRvcDogMC41ZW07XG59XG5cbi5zdGFhdHNrYWxlbmRlcnJlc3VsdHMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1pbi1oZWlnaHQ6IDEwcmVtO1xufVxuXG4uc3RhYXRza2FsZW5kZXJyZXN1bHRzLS1oaWRkZW4sXG4uc3RhYXRza2FsZW5kZXJyZXN1bHRzX19tb3JlLS1oaWRkZW4sXG4uc3RhYXRza2FsZW5kZXJyZXN1bHRzX19sb2FkaW5nLS1oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi5zdGFhdHNrYWxlbmRlcnJlc3VsdHNfX2xvYWRpbmcge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDQ1JTtcbn1cblxuLnN0YWF0c2thbGVuZGVyc2VhcmNoIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tdG9wOiA0cmVtO1xufVxuQG1lZGlhIHByaW50IHtcbiAgLnN0YWF0c2thbGVuZGVyc2VhcmNoIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxufVxuXG4uc3RhYXRza2FsZW5kZXJzZWFyY2hfX2xhYmVsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICBsZWZ0OiAxLjJyZW07XG4gIGhlaWdodDogMS4yMmVtO1xuICB3aWR0aDogMS4yMmVtO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5zdGFhdHNrYWxlbmRlcnNlYXJjaF9fbGFiZWwge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTIlKTtcbiAgICBoZWlnaHQ6IDEuMDhlbTtcbiAgICB3aWR0aDogMS4wOGVtO1xuICB9XG59XG4uc3RhYXRza2FsZW5kZXJzZWFyY2hfX2xhYmVsID4gLnNwcml0ZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtLXRhYmxlKTtcbn1cbi5zdGFhdHNrYWxlbmRlcnNlYXJjaF9fbGFiZWwgPiAuc3ByaXRlID4gc3ZnIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5zdGFhdHNrYWxlbmRlcnNlYXJjaF9faW5wdXQge1xuICAtLWNvbG9yLWZvcm0taW5wdXQtYm9yZGVyOiB2YXIoLS1jb2xvci1mb3JtLS1pbnB1dC1ib3JkZXIpO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtLWRlZmF1bHQpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1mb3JtLS1pbnB1dC1iYXNlKTtcbiAgYm9yZGVyOiB2YXIoLS1zaXplLWxheW91dC1saW5lKSBzb2xpZCB2YXIoLS1jb2xvci1mb3JtLWlucHV0LWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjVlbSAwLjI1ZW07XG4gIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgcGFkZGluZzogMC42ZW0gMWVtIDAuNmVtIDRyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW07XG59XG4uc3RhYXRza2FsZW5kZXJzZWFyY2hfX2lucHV0OmZvY3VzLCAuc3RhYXRza2FsZW5kZXJzZWFyY2hfX2lucHV0OmZvY3VzLXZpc2libGUge1xuICAtLWNvbG9yLWZvcm0taW5wdXQtYm9yZGVyOiB2YXIoLS1jb2xvci10ZXh0LS1kZWZhdWx0KTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgdmFyKC0tc2l6ZS1sYXlvdXQtbGluZSkgdmFyKC0tY29sb3ItZm9ybS1pbnB1dC1ib3JkZXIpO1xuICBvdXRsaW5lOiAwO1xufVxuLnN0YWF0c2thbGVuZGVyc2VhcmNoX19pbnB1dDo6cGxhY2Vob2xkZXIge1xuICBvcGFjaXR5OiAxO1xuICBjb2xvcjogdmFyKC0tY29sb3ItZm9ybS0tcGxhY2Vob2xkZXIpO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5zdGFhdHNrYWxlbmRlcnNlYXJjaF9faW5wdXQge1xuICAgIHBhZGRpbmc6IDAuNmVtIDFlbSAwLjZlbSA0cmVtO1xuICB9XG59XG4uc3RhYXRza2FsZW5kZXJzZWFyY2hfX2lucHV0LnN0YWF0c2thbGVuZGVyc2VhcmNoX19pbnB1dCB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLnN0YWF0c2thbGVuZGVyc2VhcmNoX19sYWJlbC10ZXh0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3JkZXI6IDA7XG4gIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW46IC0xcHg7XG4gIHBhZGRpbmc6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4uc3RhYXRza2FsZW5kZXJzZWFyY2hfX2xhYmVsLXRleHQuZm9jdXNhYmxlOmZvY3VzLCAuc3RhYXRza2FsZW5kZXJzZWFyY2hfX2xhYmVsLXRleHQuZm9jdXNhYmxlOmFjdGl2ZSB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIGNsaXA6IGF1dG87XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IGF1dG87XG4gIG1hcmdpbjogMDtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59IiwiLy8gU2l6ZXNcblxuLy8gVGhpcyBiYXNlIGZvbnRzaXplIGZvciBhbGwgUkVNIHRvIGNvbnNpZGVyXG4vLyAxcmVtID0gMTBweCBpcyBvbmx5IHJlcXVpcmVkIG9uIDpyb290IGFuZCBub3Qgb25cbi8vIDpob3N0IGFzICdyb290IGVtIHNpemUnIG9ubHkgY29uc2lkZXJzIDpyb290IGFuZCBodG1sXG46cm9vdCB7XG4gIC8vIFNldHRpbmcgMXJlbSB0byAxMHB4XG4gIGZvbnQtc2l6ZTogNjIuNSU7XG59XG5cbi8vIENhbm5vdCB1c2UgOnJvb3QgYXMgdGhpcyBtdXN0IHdvcmsgaW5cbi8vIHNoYWRvdyBkb20gd2hlcmUgbm8gOnJvb3QgaXMgYXZhaWxhYmxlIGFuZFxuLy8gd2hlcmUgcG90ZW50aWFsbHkgbm8gYm9keSBpcyBhdmFpbGFibGVcbjpyb290LFxuOmhvc3Qge1xuICAvLyBGbHVpZCBTaXplc1xuICAvLyBUaGVzZSBmbHVpZCBzaXplIGRlZmluaXRpb25zIGFyZSBjcmVhdGVkIHdpdGggdXRvcGlhLmZ5aVxuICAvLyBJbml0aWFsbHksIHV0b3BpYSB3aWxsIGdlbmVyYXRlIGFsbCByZW0gdmFsdWVzIGJhc2VkIG9uIDFyZW0gPSAxNnB4LlxuICAvLyBWYWx1ZXMgaGF2ZSB0byBiZSBtdWx0aXBsaWVkIGJ5IDEuNiB0byB3b3JrIGluIG91ciBzeXN0ZW0uXG5cbiAgLyogQGxpbmsgaHR0cHM6Ly91dG9waWEuZnlpL3NwYWNlL2NhbGN1bGF0b3I/Yz0zMjAsMTYsMS4yNSwxNDQwLDI0LDEuMzMzLDQsMSwmcz0wLjc1fDAuNXwwLjI1LDEuNXwyfDIuNXwzfDMuNXw0fDV8Nnw3LHhzLW18bS0yeGwmZz1zLGwseGwsMTIgKi9cbiAgLS1zaXplLTN4czogY2xhbXAoMC40cmVtLCAwLjM0Mjg4cmVtICsgMC4xNzg2dncsIDAuNnJlbSk7ICAgICAgICAgLy8gIDQuMDAgLSAgNi4wMHB4XG4gIC0tc2l6ZS0yeHM6IGNsYW1wKDAuOHJlbSwgMC42ODU3NnJlbSArIDAuMzU3MXZ3LCAxLjJyZW0pOyAgICAgICAgIC8vICA4LjAwIC0gMTIuMDBweFxuICAtLXNpemUteHM6IGNsYW1wKDEuMnJlbSwgMS4wMjg2NHJlbSArIDAuNTM1N3Z3LCAxLjhyZW0pOyAgICAgICAgICAvLyAxMi4wMCAtIDE4LjAwcHhcbiAgLS1zaXplLXM6IGNsYW1wKDEuNnJlbSwgMS4zNzEzNnJlbSArIDAuNzE0M3Z3LCAyLjRyZW0pOyAgICAgICAgICAgLy8gMTYuMDAgLSAyNC4wMHB4XG4gIC0tc2l6ZS1tOiBjbGFtcCgyLjRyZW0sIDIuMDU3MTJyZW0gKyAxLjA3MTR2dywgMy42cmVtKTsgICAgICAgICAgIC8vIDI0LjAwIC0gMzYuMDBweFxuICAtLXNpemUtbDogY2xhbXAoMy4ycmVtLCAyLjc0Mjg4cmVtICsgMS40Mjg2dncsIDQuOHJlbSk7ICAgICAgICAgICAvLyAzMi4wMCAtIDQ4LjAwcHhcbiAgLS1zaXplLXhsOiBjbGFtcCg0cmVtLCAzLjQyODY0cmVtICsgMS43ODU3dncsIDZyZW0pOyAgICAgICAgICAgICAgLy8gNDAuMDAgLSA2MC4wMHB4XG4gIC0tc2l6ZS0yeGw6IGNsYW1wKDQuOHJlbSwgNC4xMTQyNHJlbSArIDIuMTQyOXZ3LCA3LjJyZW0pOyAgICAgICAgIC8vIDQ4LjAwIC0gNzIuMDBweFxuICAtLXNpemUtM3hsOiBjbGFtcCg1LjZyZW0sIDQuOHJlbSArIDIuNXZ3LCA4LjRyZW0pOyAgICAgICAgICAgICAgICAvLyA1Ni4wMCAtIDg0LjAwcHhcbiAgLS1zaXplLTR4bDogY2xhbXAoNi40cmVtLCA1LjQ4NTc2cmVtICsgMi44NTcxdncsIDkuNnJlbSk7ICAgICAgICAgLy8gNjQuMDAgLSA5Ni4wMHB4XG4gIC0tc2l6ZS01eGw6IGNsYW1wKDhyZW0sIDYuODU3MTJyZW0gKyAzLjU3MTR2dywgMTJyZW0pOyAgICAgICAgICAgIC8vIDgwLjAwIC0gMTIwLjAwcHhcbiAgLS1zaXplLTZ4bDogY2xhbXAoOS42cmVtLCA4LjIyODY0cmVtICsgNC4yODU3dncsIDE0LjRyZW0pOyAgICAgICAgLy8gOTYuMDAgLSAxNDQuMDBweFxuICAtLXNpemUtN3hsOiBjbGFtcCgxMS4ycmVtLCA5LjZyZW0gKyA1dncsIDE2LjhyZW0pOyAgICAgICAgICAgICAgICAvLyAxMTIuMDAgLSAxNjguMDBweFxuXG4gIC8qIE9uZS11cCBwYWlycyAqL1xuICAtLXNpemUtM3hzLTJ4czogY2xhbXAoMC40cmVtLCAwLjE3MTM2cmVtICsgMC43MTQzdncsIDEuMnJlbSk7ICAgICAvLyAgNC4wMCAtIDEyLjAwcHhcbiAgLS1zaXplLTJ4cy14czogY2xhbXAoMC44cmVtLCAwLjUxNDI0cmVtICsgMC44OTI5dncsIDEuOHJlbSk7ICAgICAgLy8gIDguMDAgLSAxOC4wMHB4XG4gIC0tc2l6ZS14cy1zOiBjbGFtcCgxLjJyZW0sIDAuODU3MTJyZW0gKyAxLjA3MTR2dywgMi40cmVtKTsgICAgICAgIC8vIDEyLjAwIC0gMjQuMDBweFxuICAtLXNpemUtcy1tOiBjbGFtcCgxLjZyZW0sIDEuMDI4NjRyZW0gKyAxLjc4NTd2dywgMy42cmVtKTsgICAgICAgICAvLyAxNi4wMCAtIDM2LjAwcHhcbiAgLS1zaXplLW0tbDogY2xhbXAoMi40cmVtLCAxLjcxNDI0cmVtICsgMi4xNDI5dncsIDQuOHJlbSk7ICAgICAgICAgLy8gMjQuMDAgLSA0OC4wMHB4XG4gIC0tc2l6ZS1sLXhsOiBjbGFtcCgzLjJyZW0sIDIuNHJlbSArIDIuNXZ3LCA2cmVtKTsgICAgICAgICAgICAgICAgIC8vIDMyLjAwIC0gNjAuMDBweFxuICAtLXNpemUteGwtMnhsOiBjbGFtcCg0cmVtLCAzLjA4NTc2cmVtICsgMi44NTcxdncsIDcuMnJlbSk7ICAgICAgICAvLyA0MC4wMCAtIDcyLjAwcHhcbiAgLS1zaXplLTJ4bC0zeGw6IGNsYW1wKDQuOHJlbSwgMy43NzEzNnJlbSArIDMuMjE0M3Z3LCA4LjRyZW0pOyAgICAgLy8gNDguMDAgLSA4NC4wMHB4XG4gIC0tc2l6ZS0zeGwtNHhsOiBjbGFtcCg1LjZyZW0sIDQuNDU3MTJyZW0gKyAzLjU3MTR2dywgOS42cmVtKTsgICAgIC8vIDU2LjAwIC0gOTYuMDBweFxuICAtLXNpemUtNHhsLTV4bDogY2xhbXAoNi40cmVtLCA0LjhyZW0gKyA1dncsIDEycmVtKTsgICAgICAgICAgICAgICAvLyA2NC4wMCAtIDEyMC4wMHB4XG4gIC0tc2l6ZS01eGwtNnhsOiBjbGFtcCg4cmVtLCA2LjE3MTM2cmVtICsgNS43MTQzdncsIDE0LjRyZW0pOyAgICAgIC8vIDgwLjAwIC0gMTQ0LjAwcHhcbiAgLS1zaXplLTZ4bC03eGw6IGNsYW1wKDkuNnJlbSwgNy41NDI4OHJlbSArIDYuNDI4NnZ3LCAxNi44cmVtKTsgICAgLy8gOTYuMDAgLSAxNjguMDBweFxuXG4gIC8qIEN1c3RvbSBwYWlycyAqL1xuICAtLXNpemUteHMtbTogY2xhbXAoMS4ycmVtLCAwLjUxNDI0cmVtICsgMi4xNDI5dncsIDMuNnJlbSk7ICAgICAgICAvLyAxMi4wMCAtIDM2LjAwcHhcbiAgLS1zaXplLXMtbDogY2xhbXAoMS42cmVtLCAwLjY4NTc2cmVtICsgMi44NTcxdncsIDQuOHJlbSk7ICAgICAgICAgLy8gMTYuMDAgLSA0OC4wMHB4XG4gIC0tc2l6ZS1tLTJ4bDogY2xhbXAoMi40cmVtLCAxLjAyODY0cmVtICsgNC4yODU3dncsIDcuMnJlbSk7ICAgICAgIC8vIDI0LjAwIC0gNzIuMDBweFxuICAtLXNpemUtbC0zeGw6IGNsYW1wKDMuMnJlbSwgMS43MTQyNHJlbSArIDMuNTcxNHZ3LCA4LjRyZW0pOyAgICAgICAvLyAzMi4wMCAtIDg0LjAwcHhcbiAgLS1zaXplLXhsLTR4bDogY2xhbXAoNHJlbSwgMi40cmVtICsgNXZ3LCA5LjZyZW0pOyAgICAgICAgICAgICAgICAvLyA0MC4wMCAtIDk2LjAwcHhcblxuICAvLyBHbG9iYWwgbGF5b3V0IGFuZCBsYXlvdXQgZ3JpZFxuICAvLyBJbnNwaXJlZCBieSB1dG9waWEuZnlpXG4gIC8vIFRoaXMgaXMgbm90IGEgZ3JpZCBhcyBpbiBhIGdyaWQgc3lzdGVtIGJ1dCBhIGdyaWQgYXMgaW4gYSBsYXlvdXQgZ3JpZC4gVXNlIGNvbHVtbiBhbmQgZ3V0dGVyXG4gIC8vIHZhcmlhYmxlcyB0byBjcmVhdGUgeW91ciBvd24gbGF5b3V0cyB0aGF0IHdpbGwgY29uZm9ybSB3aXRoIHRoZSBvdmVyYWxsIGRlc2lnbiBsYW5ndWFnZVxuXG4gIC8vIEdsb2JhbCBsYXlvdXRcbiAgLS1zaXplLWxheW91dC13aWR0aC1taW46IDMycmVtO1xuICAtLXNpemUtbGF5b3V0LXdpZHRoLW1heDogMTQ0cmVtO1xuICAtLXNpemUtbGF5b3V0LW1hcmdpbjogdmFyKC0tc2l6ZS14cy1zKTtcbiAgLS1zaXplLWxheW91dC1saW5lOiAwLjFyZW07XG4gIC0tc2l6ZS1jb250ZW50LXN0YWNrOiB2YXIoLS1zaXplLXhzLXMpO1xuICAtLXNpemUtbGluay11bmRlcmxpbmUtb2Zmc2V0OiAwLjNlbTtcbiAgLS1zaXplLWxpbmstdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzczogMC4wNTVlbTtcblxuICAvKiBAbGluayBodHRwczovL3V0b3BpYS5meWkvZ3JpZC9jYWxjdWxhdG9yP2M9MzIwLDE2LDEuMjUsMTQ2NCwxNiwxLjMzMyw0LDEsJnM9MC43NXwwLjUsMS41fDJ8M3w0fDYscy1sJmc9cyxtLDN4bCwxMiAqL1xuICAtLXNpemUtbGF5b3V0Z3JpZC1tYXgtd2lkdGg6IGNhbGModmFyKC0tc2l6ZS1sYXlvdXQtd2lkdGgtbWF4KSAtIDIgKiB2YXIoLS1zaXplLWxheW91dC1tYXJnaW4pKTtcbiAgLS1zaXplLWxheW91dGdyaWQtY29sdW1uczogMTI7XG4gIC0tc2l6ZS1sYXlvdXRncmlkLWd1dHRlcjogdmFyKC0tc2l6ZS1sYXlvdXQtbWFyZ2luKTtcbiAgLS1zaXplLWxheW91dGdyaWQtY29sdW1uLXdpZHRoOiBjYWxjKCh2YXIoLS1zaXplLWxheW91dGdyaWQtbWF4LXdpZHRoKSAtICh2YXIoLS1zaXplLWxheW91dGdyaWQtZ3V0dGVyKSAqICh2YXIoLS1zaXplLWxheW91dGdyaWQtY29sdW1ucykgLSAxKSkpIC8gdmFyKC0tc2l6ZS1sYXlvdXRncmlkLWNvbHVtbnMpKTtcbiAgLS1zaXplLWxheW91dGdyaWQtY29sdW1uLXdpZHRoLWZsdWlkOiBjYWxjKCgxMDAlIC0gKHZhcigtLXNpemUtbGF5b3V0Z3JpZC1ndXR0ZXIpICogKHZhcigtLXNpemUtbGF5b3V0Z3JpZC1jb2x1bW5zKSAtIDEpKSkgLyB2YXIoLS1zaXplLWxheW91dGdyaWQtY29sdW1ucykpO1xufVxuIiwiLy8gVHlwb2dyYXBoeVxuXG4vLyBDYW5ub3QgdXNlIDpyb290IGFzIHRoaXMgbXVzdCB3b3JrIGluXG4vLyBzaGFkb3cgZG9tIHdoZXJlIG5vIDpyb290IGlzIGF2YWlsYWJsZSBhbmRcbi8vIHdoZXJlIHBvdGVudGlhbGx5IG5vIGJvZHkgaXMgYXZhaWxhYmxlXG46cm9vdCxcbjpob3N0IHtcbiAgLy8gRmx1aWQgVHlwb2dyYXBoeVxuICAvLyBUaGVzZSBmbHVpZCBmb250IHNpemUgZGVmaW5pdGlvbnMgYXJlIGNyZWF0ZWQgd2l0aCB1dG9waWEuZnlpXG4gIC8vIEluaXRpYWxseSwgdXRvcGlhIHdpbGwgZ2VuZXJhdGUgYWxsIHJlbSB2YWx1ZXMgYmFzZWQgb24gMXJlbSA9IDE2cHguXG4gIC8vIFZhbHVlcyBoYXZlIHRvIGJlIG11bHRpcGxpZWQgYnkgMS42IHRvIHdvcmsgaW4gb3VyIHN5c3RlbS5cblxuICAvLyBAbGluayBodHRwczovL3V0b3BpYS5meWkvdHlwZS9jYWxjdWxhdG9yP2M9MzIwLDE2LDEuMiwxNDQwLDE4LDEuMiwwLDEsJnM9MC43NXwwLjV8MC4yNSwxLjV8MnwzfDR8NixzLWwmZz1zLGwseGwsMTJcbiAgLS10eXBvLXNpemUtLTI6IGNsYW1wKDEuMzI4cmVtLCAxLjI4cmVtICsgMC4xNXZ3LCAxLjVyZW0pOyAgICAgIC8vIDEzLjI4IC0gMTUuMDBweFxuXG4gIC8vIEBsaW5rIGh0dHBzOi8vdXRvcGlhLmZ5aS90eXBlL2NhbGN1bGF0b3IvP2M9MzIwLDE0LDEuMiwxNDQwLDE4LDEuMiwwLDEsJnM9MC43NXwwLjV8MC4yNSwxLjV8MnwzfDR8NixzLWwmZz1zLGwseGwsMTJcbiAgLS10eXBvLXNpemUtLTE6IGNsYW1wKDEuNHJlbSwgMS4yOHJlbSArIDAuM3Z3LCAxLjhyZW0pOyAgICAgICAgIC8vIDE0LjAwIC0gMTguMDBweFxuXG4gIC8vIEBsaW5rIGh0dHBzOi8vdXRvcGlhLmZ5aS90eXBlL2NhbGN1bGF0b3I/Yz0zMjAsMTYsMS4yNSwxNDQwLDIxLDEuMzUsNCwxLCZzPTAuNzV8MC41fDAuMjUsMS41fDJ8M3w0fDYscy1sJmc9cyxsLHhsLDEyXG4gIC0tdHlwby1zaXplLTA6IGNsYW1wKDEuNnJlbSwgMS40NTZyZW0gKyAwLjQ1dncsIDIuMDk2cmVtKTsgICAgICAvLyAxNnB4IC0gMjAuOTZweFxuICAtLXR5cG8tc2l6ZS0xOiBjbGFtcCgycmVtLCAxLjc2cmVtICsgMC43NXZ3LCAyLjgzMnJlbSk7ICAgICAgICAgLy8gMjBweCAtIDI4LjMycHhcbiAgLS10eXBvLXNpemUtMjogY2xhbXAoMi40OTZyZW0sIDIuMTI4cmVtICsgMS4xOHZ3LCAzLjgyNHJlbSk7ICAgIC8vIDI0Ljk2cHggLSAzOC4yNHB4XG4gIC0tdHlwby1zaXplLTM6IGNsYW1wKDMuMTJyZW0sIDIuNTQ0cmVtICsgMS44MnZ3LCA1LjE2OHJlbSk7ICAgICAvLyAzMS4ycHggLSA1MS42OHB4XG4gIC0tdHlwby1zaXplLTQ6IGNsYW1wKDMuOTA0cmVtLCAzLjAyNHJlbSArIDIuNzR2dywgNi45NzZyZW0pOyAgICAvLyAzOS4wNHB4IC0gNjkuNzZweFxufVxuXG4vLyBXaGlsZSBjdXN0b20gcHJvcGVydGllcyBpbiA6aG9zdCB3aWxsIHRyYXZlbCBkb3duIGludG8gdGhlIGRvbSwgb3RoZXIgZGVmaW5pdGlvbnMgb24gOmhvc3Rcbi8vIHdpbGwgbm90LiBXZSB3b3VsZCB0aHVzIGhhdmUgdG8gc2V0IHRoZSBmb2xsb3dpbmcgb24gaHRtbCBidXQgc2luY2UgdGhlcmUgaXMgbm90IGFsd2F5cyBhbiBodG1sIHRhZ1xuLy8gYXZhaWxhYmxlLCB3ZSBzZXQgaXQgb24gYWxsIGZpcnN0IGxldmVsIGVsZW1lbnRzXG46cm9vdCxcbjpob3N0ID4gKiB7XG4gIC8vIHNtb290aCBmb250c1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcblxuICAvLyBhdm9pZCBmb3V0IGFuZCBmb2l0XG4gIGZvbnQtZGlzcGxheTogYXV0bztcbn1cbiIsIi8vIEJhc2VkIG9uIGh0dHA6Ly9jb2RlcGVuLmlvL2phdmFzdGV2ZTk5L3Blbi9oRHhwblxuLy8gT3B0aW1pemVkIGZvciBjdXJyZW50IGJyb3dzZXJzIGFzIG9mIEphbiAyMDE4XG4vLyBJbmNsdWRlcyBJRTkrXG5AbWl4aW4gZm9udC1mYWNlKCRmb250LWZhbWlseSwgJGZpbGUtcGF0aCwgJGZvbnQtd2VpZ2h0OiBub3JtYWwsICRmb250LXN0eWxlOiBub3JtYWwpIHtcbiAgQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseTtcbiAgICBzcmM6IHVybCgnI3skZmlsZS1wYXRofS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCcjeyRmaWxlLXBhdGh9LndvZmYnKSBmb3JtYXQoJ3dvZmYnKTtcbiAgICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0O1xuICAgIGZvbnQtc3R5bGU6ICRmb250LXN0eWxlO1xuICB9XG59XG4iLCIvLyBERVBSRUNBVEVEIVxuLy8gVGhpcyBmaWxlIHdhcyBvcmlnaW5hbGx5IGdlbmVyYXRlZCBieTpcbi8vIEdlbmVyYXRlZCBieSBndWxwZmlsZS5qcy90YXNrcy9pY29uRm9udC5qc1xuLy8gYnV0IHNpbmNlIHdlIHdhbnQgdG8gZ2V0IHJpZCBvZiB0aGUgaWNvbi1mb250LCB3ZSBjYW4gZWRpdFxuLy8gdGhpcyBtYW51YWxseSAoZml4IGxpbnRpbmcgZXRjLilcblxuJG9taXQtc3R5bGVzOiBmYWxzZSAhZGVmYXVsdDtcblxuQGluY2x1ZGUgZm9udC1mYWNlKGljb25zLCAnI3ska3RhZy1zdHlsZWd1aWRlLWFzc2V0cy1wYXRofS9mb250cy9pY29ucycpO1xuXG5AbWl4aW4gaWNvbigkY29udGVudDogJycpIHtcbiAgJjo6YmVmb3JlIHtcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIGNvbnRlbnQ6ICRjb250ZW50O1xuICAgIGZvbnQtZmFtaWx5OiAnaWNvbnMnO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIHNwZWFrOiBub25lO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBpZiBub3QoJG9taXQtc3R5bGVzKSB7XG4gIC5pY29uIHtcbiAgICBAaW5jbHVkZSBpY29uO1xuICB9XG59XG5cbiRpY29uLWFycm93LWRvd246ICdcXEVBMDEnO1xuQG1peGluIGljb24tLWFycm93LWRvd24ge1xuICBAaW5jbHVkZSBpY29uKCRpY29uLWFycm93LWRvd24pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AaWYgbm90KCRvbWl0LXN0eWxlcykge1xuICAuaWNvbi0tYXJyb3ctZG93bjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAkaWNvbi1hcnJvdy1kb3duO1xuICB9XG59XG5cbiRpY29uLWFycm93LWxlZnQ6ICdcXEVBMDInO1xuQG1peGluIGljb24tLWFycm93LWxlZnQge1xuICBAaW5jbHVkZSBpY29uKCRpY29uLWFycm93LWxlZnQpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AaWYgbm90KCRvbWl0LXN0eWxlcykge1xuICAuaWNvbi0tYXJyb3ctbGVmdDo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAkaWNvbi1hcnJvdy1sZWZ0O1xuICB9XG59XG5cbiRpY29uLWF0dGVudGlvbjogJ1xcRUEwNSc7XG5AbWl4aW4gaWNvbi0tYXR0ZW50aW9uIHtcbiAgQGluY2x1ZGUgaWNvbigkaWNvbi1hdHRlbnRpb24pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AaWYgbm90KCRvbWl0LXN0eWxlcykge1xuICAuaWNvbi0tYXR0ZW50aW9uOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICRpY29uLWF0dGVudGlvbjtcbiAgfVxufVxuXG4kaWNvbi1hdWRpbzogJ1xcRUEwNic7XG5AbWl4aW4gaWNvbi0tYXVkaW8ge1xuICBAaW5jbHVkZSBpY29uKCRpY29uLWF1ZGlvKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQGlmIG5vdCgkb21pdC1zdHlsZXMpIHtcbiAgLmljb24tLWF1ZGlvOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICRpY29uLWF1ZGlvO1xuICB9XG59XG5cbiRpY29uLWJhY2t3YXJkOiAnXFxFQTA4JztcbkBtaXhpbiBpY29uLS1iYWNrd2FyZCB7XG4gIEBpbmNsdWRlIGljb24oJGljb24tYmFja3dhcmQpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AaWYgbm90KCRvbWl0LXN0eWxlcykge1xuICAuaWNvbi0tYmFja3dhcmQ6OmJlZm9yZSB7XG4gICAgY29udGVudDogJGljb24tYmFja3dhcmQ7XG4gIH1cbn1cblxuJGljb24tc2hvcHBpbmdjYXJ0OiAnXFxFQTA5JztcbkBtaXhpbiBpY29uLS1zaG9wcGluZ2NhcnQge1xuICBAaW5jbHVkZSBpY29uKCRpY29uLXNob3BwaW5nY2FydCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBpZiBub3QoJG9taXQtc3R5bGVzKSB7XG4gIC5pY29uLS1zaG9wcGluZ2NhcnQ6OmJlZm9yZSB7XG4gICAgY29udGVudDogJGljb24tc2hvcHBpbmdjYXJ0O1xuICB9XG59XG5cbiRpY29uLWNsb3NlOiAnXFxFQTBCJztcbkBtaXhpbiBpY29uLS1jbG9zZSB7XG4gIEBpbmNsdWRlIGljb24oJGljb24tY2xvc2UpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AaWYgbm90KCRvbWl0LXN0eWxlcykge1xuICAuaWNvbi0tY2xvc2U6OmJlZm9yZSB7XG4gICAgY29udGVudDogJGljb24tY2xvc2U7XG4gIH1cbn1cblxuJGljb24tZW1haWw6ICdcXEVBMEMnO1xuQG1peGluIGljb24tLWVtYWlsIHtcbiAgQGluY2x1ZGUgaWNvbigkaWNvbi1lbWFpbCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBpZiBub3QoJG9taXQtc3R5bGVzKSB7XG4gIC5pY29uLS1lbWFpbDo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAkaWNvbi1lbWFpbDtcbiAgfVxufVxuXG4kaWNvbi1lbmQ6ICdcXEVBMEQnO1xuQG1peGluIGljb24tLWVuZCB7XG4gIEBpbmNsdWRlIGljb24oJGljb24tZW5kKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQGlmIG5vdCgkb21pdC1zdHlsZXMpIHtcbiAgLmljb24tLWVuZDo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAkaWNvbi1lbmQ7XG4gIH1cbn1cblxuJGljb24tZmlsZTogJ1xcRUEwRic7XG5AbWl4aW4gaWNvbi0tZmlsZSB7XG4gIEBpbmNsdWRlIGljb24oJGljb24tZmlsZSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBpZiBub3QoJG9taXQtc3R5bGVzKSB7XG4gIC5pY29uLS1maWxlOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICRpY29uLWZpbGU7XG4gIH1cbn1cblxuJGljb24tZm9yd2FyZDogJ1xcRUExMSc7XG5AbWl4aW4gaWNvbi0tZm9yd2FyZCB7XG4gIEBpbmNsdWRlIGljb24oJGljb24tZm9yd2FyZCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBpZiBub3QoJG9taXQtc3R5bGVzKSB7XG4gIC5pY29uLS1mb3J3YXJkOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICRpY29uLWZvcndhcmQ7XG4gIH1cbn1cblxuJGljb24taTogJ1xcRUExNCc7XG5AbWl4aW4gaWNvbi0taSB7XG4gIEBpbmNsdWRlIGljb24oJGljb24taSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBpZiBub3QoJG9taXQtc3R5bGVzKSB7XG4gIC5pY29uLS1pOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICRpY29uLWk7XG4gIH1cbn1cblxuJGljb24tbGluay1hbmNob3I6ICdcXEVBMTUnO1xuQG1peGluIGljb24tLWxpbmstYW5jaG9yIHtcbiAgQGluY2x1ZGUgaWNvbigkaWNvbi1saW5rLWFuY2hvcikge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBpZiBub3QoJG9taXQtc3R5bGVzKSB7XG4gIC5pY29uLS1saW5rLWFuY2hvcjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAkaWNvbi1saW5rLWFuY2hvcjtcbiAgfVxufVxuXG4kaWNvbi1saW5rLWV4dGVybmFsOiAnXFxFQTE2JztcbkBtaXhpbiBpY29uLS1saW5rLWV4dGVybmFsIHtcbiAgQGluY2x1ZGUgaWNvbigkaWNvbi1saW5rLWV4dGVybmFsKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQGlmIG5vdCgkb21pdC1zdHlsZXMpIHtcbiAgLmljb24tLWxpbmstZXh0ZXJuYWw6OmJlZm9yZSB7XG4gICAgY29udGVudDogJGljb24tbGluay1leHRlcm5hbDtcbiAgfVxufVxuXG4kaWNvbi1saW5rLWludGVybmFsOiAnXFxFQTE3JztcbkBtaXhpbiBpY29uLS1saW5rLWludGVybmFsIHtcbiAgQGluY2x1ZGUgaWNvbigkaWNvbi1saW5rLWludGVybmFsKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQGlmIG5vdCgkb21pdC1zdHlsZXMpIHtcbiAgLmljb24tLWxpbmstaW50ZXJuYWw6OmJlZm9yZSB7XG4gICAgY29udGVudDogJGljb24tbGluay1pbnRlcm5hbDtcbiAgfVxufVxuXG4kaWNvbi1sb2dpbjogJ1xcRUExRCc7XG5AbWl4aW4gaWNvbi0tbG9naW4ge1xuICBAaW5jbHVkZSBpY29uKCRpY29uLWxvZ2luKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQGlmIG5vdCgkb21pdC1zdHlsZXMpIHtcbiAgLmljb24tLWxvZ2luOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICRpY29uLWxvZ2luO1xuICB9XG59XG5cbiRpY29uLXJzczogJ1xcRUEyMic7XG5AbWl4aW4gaWNvbi0tcnNzIHtcbiAgQGluY2x1ZGUgaWNvbigkaWNvbi1yc3MpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AaWYgbm90KCRvbWl0LXN0eWxlcykge1xuICAuaWNvbi0tcnNzOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICRpY29uLXJzcztcbiAgfVxufVxuXG4kaWNvbi1zdGFydDogJ1xcRUEyNCc7XG5AbWl4aW4gaWNvbi0tc3RhcnQge1xuICBAaW5jbHVkZSBpY29uKCRpY29uLXN0YXJ0KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQGlmIG5vdCgkb21pdC1zdHlsZXMpIHtcbiAgLmljb24tLXN0YXJ0OjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICRpY29uLXN0YXJ0O1xuICB9XG59XG5cbiRpY29uLXRyaWFuZ2xlLWRvd246ICdcXEVBMjcnO1xuQG1peGluIGljb24tLXRyaWFuZ2xlLWRvd24ge1xuICBAaW5jbHVkZSBpY29uKCRpY29uLXRyaWFuZ2xlLWRvd24pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AaWYgbm90KCRvbWl0LXN0eWxlcykge1xuICAuaWNvbi0tdHJpYW5nbGUtZG93bjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAkaWNvbi10cmlhbmdsZS1kb3duO1xuICB9XG59XG5cbiRpY29uLXRyaWFuZ2xlLXVwOiAnXFxFQTJBJztcbkBtaXhpbiBpY29uLS10cmlhbmdsZS11cCB7XG4gIEBpbmNsdWRlIGljb24oJGljb24tdHJpYW5nbGUtdXApIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AaWYgbm90KCRvbWl0LXN0eWxlcykge1xuICAuaWNvbi0tdHJpYW5nbGUtdXA6OmJlZm9yZSB7XG4gICAgY29udGVudDogJGljb24tdHJpYW5nbGUtdXA7XG4gIH1cbn1cblxuJGljb24tbG9nb3V0OiAnXFxFQTJEJztcbkBtaXhpbiBpY29uLS1sb2dvdXQge1xuICBAaW5jbHVkZSBpY29uKCRpY29uLWxvZ291dCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBpZiBub3QoJG9taXQtc3R5bGVzKSB7XG4gIC5pY29uLS1sb2dvdXQ6OmJlZm9yZSB7XG4gICAgY29udGVudDogJGljb24tbG9nb3V0O1xuICB9XG59XG5cbiRpY29uLXZpZGVvOiAnXFxFQTJFJztcbkBtaXhpbiBpY29uLS12aWRlbyB7XG4gIEBpbmNsdWRlIGljb24oJGljb24tdmlkZW8pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AaWYgbm90KCRvbWl0LXN0eWxlcykge1xuICAuaWNvbi0tdmlkZW86OmJlZm9yZSB7XG4gICAgY29udGVudDogJGljb24tdmlkZW87XG4gIH1cbn1cblxuJGljb24td2FzdGViaW46ICdcXEVBMkYnO1xuQG1peGluIGljb24tLXdhc3RlYmluIHtcbiAgQGluY2x1ZGUgaWNvbigkaWNvbi13YXN0ZWJpbikge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBpZiBub3QoJG9taXQtc3R5bGVzKSB7XG4gIC5pY29uLS13YXN0ZWJpbjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAkaWNvbi13YXN0ZWJpbjtcbiAgfVxufVxuXG4kaWNvbi16b29tLWluOiAnXFxFQTMyJztcbkBtaXhpbiBpY29uLS16b29tLWluIHtcbiAgQGluY2x1ZGUgaWNvbigkaWNvbi16b29tLWluKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQGlmIG5vdCgkb21pdC1zdHlsZXMpIHtcbiAgLmljb24tLXpvb20taW46OmJlZm9yZSB7XG4gICAgY29udGVudDogJGljb24tem9vbS1pbjtcbiAgfVxufVxuXG4kaWNvbi1zdWNjZXNzOiAnXFxFQTM2JztcbkBtaXhpbiBpY29uLS1zdWNjZXNzIHtcbiAgQGluY2x1ZGUgaWNvbigkaWNvbi1zdWNjZXNzKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQGlmIG5vdCgkb21pdC1zdHlsZXMpIHtcbiAgLmljb24tLXN1Y2Nlc3M6OmJlZm9yZSB7XG4gICAgY29udGVudDogJGljb24tc3VjY2VzcztcbiAgfVxufVxuXG4kaWNvbi1wZW5jaWw6ICdcXEVBMzcnO1xuQG1peGluIGljb24tLXBlbmNpbCB7XG4gIEBpbmNsdWRlIGljb24oJGljb24tcGVuY2lsKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQGlmIG5vdCgkb21pdC1zdHlsZXMpIHtcbiAgLmljb24tLXBlbmNpbDo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAkaWNvbi1wZW5jaWw7XG4gIH1cbn1cblxuJGljb24taS1jaXJjbGVmaWxsZWQ6ICdcXEVBM0InO1xuQG1peGluIGljb24tLWktY2lyY2xlZmlsbGVkIHtcbiAgQGluY2x1ZGUgaWNvbigkaWNvbi1pLWNpcmNsZWZpbGxlZCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBpZiBub3QoJG9taXQtc3R5bGVzKSB7XG4gIC5pY29uLS1pLWNpcmNsZWZpbGxlZDo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAkaWNvbi1pLWNpcmNsZWZpbGxlZDtcbiAgfVxufVxuXG4kaWNvbi1jYWxlbmRhcjogJ1xcRUE0MCc7XG5AbWl4aW4gaWNvbi0tY2FsZW5kYXIge1xuICBAaW5jbHVkZSBpY29uKCRpY29uLWNhbGVuZGFyKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQGlmIG5vdCgkb21pdC1zdHlsZXMpIHtcbiAgLmljb24tLWNhbGVuZGFyOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICRpY29uLWNhbGVuZGFyO1xuICB9XG59XG5cbiRpY29uLWxvY2F0aW9uOiAnXFxFQTQxJztcbkBtaXhpbiBpY29uLS1sb2NhdGlvbiB7XG4gIEBpbmNsdWRlIGljb24oJGljb24tbG9jYXRpb24pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AaWYgbm90KCRvbWl0LXN0eWxlcykge1xuICAuaWNvbi0tbG9jYXRpb246OmJlZm9yZSB7XG4gICAgY29udGVudDogJGljb24tbG9jYXRpb247XG4gIH1cbn1cblxuJGljb24tcGx1czogJ1xcRUE0Mic7XG5AbWl4aW4gaWNvbi0tcGx1cyB7XG4gIEBpbmNsdWRlIGljb24oJGljb24tcGx1cykge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBpZiBub3QoJG9taXQtc3R5bGVzKSB7XG4gIC5pY29uLS1wbHVzOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICRpY29uLXBsdXM7XG4gIH1cbn1cblxuJGljb24tZXllLWNsb3NlZDogJ1xcRUE0Myc7XG5AbWl4aW4gaWNvbi0tZXllLWNsb3NlZCB7XG4gIEBpbmNsdWRlIGljb24oJGljb24tZXllLWNsb3NlZCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBpZiBub3QoJG9taXQtc3R5bGVzKSB7XG4gIC5pY29uLS1leWUtY2xvc2VkOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICRpY29uLWV5ZS1jbG9zZWQ7XG4gIH1cbn1cblxuJGljb24tZXllLW9wZW46ICdcXEVBNDQnO1xuQG1peGluIGljb24tLWV5ZS1vcGVuIHtcbiAgQGluY2x1ZGUgaWNvbigkaWNvbi1leWUtb3Blbikge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBpZiBub3QoJG9taXQtc3R5bGVzKSB7XG4gIC5pY29uLS1leWUtb3Blbjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAkaWNvbi1leWUtb3BlbjtcbiAgfVxufVxuXG4kaWNvbi1zd2l0Y2g6ICdcXEVBNDUnO1xuQG1peGluIGljb24tLXN3aXRjaCB7XG4gIEBpbmNsdWRlIGljb24oJGljb24tc3dpdGNoKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQGlmIG5vdCgkb21pdC1zdHlsZXMpIHtcbiAgLmljb24tLXN3aXRjaDo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAkaWNvbi1zd2l0Y2g7XG4gIH1cbn1cblxuJGljb24tZmlsZS1leGU6ICdcXEVBNDYnO1xuQG1peGluIGljb24tLWZpbGUtZXhlIHtcbiAgQGluY2x1ZGUgaWNvbigkaWNvbi1maWxlLWV4ZSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBpZiBub3QoJG9taXQtc3R5bGVzKSB7XG4gIC5pY29uLS1maWxlLWV4ZTo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAkaWNvbi1maWxlLWV4ZTtcbiAgfVxufVxuXG4kaWNvbi1maWxlLXBkZjogJ1xcRUE0Nyc7XG5AbWl4aW4gaWNvbi0tZmlsZS1wZGYge1xuICBAaW5jbHVkZSBpY29uKCRpY29uLWZpbGUtcGRmKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQGlmIG5vdCgkb21pdC1zdHlsZXMpIHtcbiAgLmljb24tLWZpbGUtcGRmOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICRpY29uLWZpbGUtcGRmO1xuICB9XG59XG5cbiRpY29uLWZpbGUtcHB0OiAnXFxFQTQ4JztcbkBtaXhpbiBpY29uLS1maWxlLXBwdCB7XG4gIEBpbmNsdWRlIGljb24oJGljb24tZmlsZS1wcHQpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AaWYgbm90KCRvbWl0LXN0eWxlcykge1xuICAuaWNvbi0tZmlsZS1wcHQ6OmJlZm9yZSB7XG4gICAgY29udGVudDogJGljb24tZmlsZS1wcHQ7XG4gIH1cbn1cblxuJGljb24tZmlsZS1yYXI6ICdcXEVBNDknO1xuQG1peGluIGljb24tLWZpbGUtcmFyIHtcbiAgQGluY2x1ZGUgaWNvbigkaWNvbi1maWxlLXJhcikge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBpZiBub3QoJG9taXQtc3R5bGVzKSB7XG4gIC5pY29uLS1maWxlLXJhcjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAkaWNvbi1maWxlLXJhcjtcbiAgfVxufVxuXG4kaWNvbi1maWxlLXJ0ZjogJ1xcRUE1MCc7XG5AbWl4aW4gaWNvbi0tZmlsZS1ydGYge1xuICBAaW5jbHVkZSBpY29uKCRpY29uLWZpbGUtcnRmKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQGlmIG5vdCgkb21pdC1zdHlsZXMpIHtcbiAgLmljb24tLWZpbGUtcnRmOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICRpY29uLWZpbGUtcnRmO1xuICB9XG59XG5cbiRpY29uLWZpbGUtd29yZDogJ1xcRUE1MSc7XG5AbWl4aW4gaWNvbi0tZmlsZS13b3JkIHtcbiAgQGluY2x1ZGUgaWNvbigkaWNvbi1maWxlLXdvcmQpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AaWYgbm90KCRvbWl0LXN0eWxlcykge1xuICAuaWNvbi0tZmlsZS13b3JkOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICRpY29uLWZpbGUtd29yZDtcbiAgfVxufVxuXG4kaWNvbi1maWxlLWV4Y2VsOiAnXFxFQTUyJztcbkBtaXhpbiBpY29uLS1maWxlLWV4Y2VsIHtcbiAgQGluY2x1ZGUgaWNvbigkaWNvbi1maWxlLWV4Y2VsKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQGlmIG5vdCgkb21pdC1zdHlsZXMpIHtcbiAgLmljb24tLWZpbGUtZXhjZWw6OmJlZm9yZSB7XG4gICAgY29udGVudDogJGljb24tZmlsZS1leGNlbDtcbiAgfVxufVxuXG4kaWNvbi1maWxlLXppcDogJ1xcRUE1Myc7XG5AbWl4aW4gaWNvbi0tZmlsZS16aXAge1xuICBAaW5jbHVkZSBpY29uKCRpY29uLWZpbGUtemlwKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQGlmIG5vdCgkb21pdC1zdHlsZXMpIHtcbiAgLmljb24tLWZpbGUtemlwOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICRpY29uLWZpbGUtemlwO1xuICB9XG59XG5cbiRpY29uLWltYWdlOiAnXFxFQTU0JztcbkBtaXhpbiBpY29uLS1pbWFnZSB7XG4gIEBpbmNsdWRlIGljb24oJGljb24taW1hZ2UpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AaWYgbm90KCRvbWl0LXN0eWxlcykge1xuICAuaWNvbi0taW1hZ2U6OmJlZm9yZSB7XG4gICAgY29udGVudDogJGljb24taW1hZ2U7XG4gIH1cbn1cblxuJGljb24tdXBsb2FkOiAnXFxFQTU3JztcbkBtaXhpbiBpY29uLS11cGxvYWQge1xuICBAaW5jbHVkZSBpY29uKCRpY29uLXVwbG9hZCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBpZiBub3QoJG9taXQtc3R5bGVzKSB7XG4gIC5pY29uLS11cGxvYWQ6OmJlZm9yZSB7XG4gICAgY29udGVudDogJGljb24tdXBsb2FkO1xuICB9XG59XG5cbi8vIG9yaWdpbmFsIGljb24gbGluayBmaWxlXG4laWNvbi1wc2V1ZG8ge1xuICBmb250LWZhbWlseTogJ2ljb25zJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHNwZWFrOiBub25lO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLy8gTGlua3NcbiVpY29uLWxpbmsge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctbGVmdDogMS4zZW07XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgJjo6YmVmb3JlIHtcbiAgICBAZXh0ZW5kICVpY29uLXBzZXVkbztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMC4wNWVtO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIC8vIFNpbmNlIElFMTEgaGFzIGEgYnVnIHdoZXJlIGl0IG11bHRpcGxpZXNcbiAgICAvLyBhbGwgZW0gZm9udC1zaXplcyBpbiBhbGwgc2VsZWN0b3JzIHRoYXQgYXBwbHlcbiAgICAvLyB0byBhIDo6YmVmb3JlIGVsZW1lbnQsIHdlIG5lZWQgdG8gdXNlICUsXG4gICAgZm9udC1zaXplOiAxMDAlO1xuXG4gICAgdG9wOiAwLjdlbTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIH1cbn1cbiIsIi8vIENsZWFyZml4OiBjb250YWluIGZsb2F0c1xuLy9cbi8vIEZvciBtb2Rlcm4gYnJvd3NlcnNcbi8vIHNlZTogaHR0cDovL2Nzc21vam8uY29tL3RoZS12ZXJ5LWxhdGVzdC1jbGVhcmZpeC1yZWxvYWRlZC9cbkBtaXhpbiBjbGVhcmZpeCB7XG4gICY6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjb250ZW50OiAnJztcbiAgICBjbGVhcjogYm90aDtcbiAgfVxufVxuIiwiQG1peGluIHJpY2h0ZXh0LWVsZW1lbnQge1xuICBtYXJnaW4tdG9wOiB2YXIoLS1zaXplLWNvbnRlbnQtc3RhY2spO1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4ucmljaHRleHQge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcblxuICBwOm5vdChbY2xhc3NdKSB7XG4gICAgQGluY2x1ZGUgcmljaHRleHQtZWxlbWVudDtcbiAgICBsaW5lLWhlaWdodDogJGxheW91dC1saW5laGVpZ2h0O1xuICB9XG5cbiAgLy8gRGlzYWJsZWQgYnkgQU4gKDIwMjQtMDEtMjUpXG4gIC8vIFZlcnkgcHJvYmFibHkgbm90IGluIHVzZWQgYW55bW9yZS4gQnV0IGl0IHdvdWxkbid0IGh1cnQgaWZcbiAgLy8gaXQgc3RhaWVkLi4uIHNvIGlmIGl0IGJyZWFrcyBzb21ld2hlcmUuLi4gd2UnbGwgcmVhY3RpdmF0ZS5cbiAgLy8gLmxlYWR0ZXh0IHtcbiAgLy8gICBtYXJnaW4tdG9wOiAxZW07XG4gIC8vIH1cblxuICAuaDIge1xuICAgIG1hcmdpbi10b3A6IDEuNWVtO1xuICB9XG5cbiAgLmgzIHtcbiAgICBtYXJnaW4tdG9wOiAxLjQ1ZW07XG4gIH1cblxuICAuaDQsXG4gIC5oNSxcbiAgLmg2IHtcbiAgICBtYXJnaW4tdG9wOiAxLjJlbTtcbiAgfVxuXG4gIC5pbWFnZSxcbiAgLm1vc2FpYyxcbiAgLmxpbmtsaXN0IHtcbiAgICBAaW5jbHVkZSByaWNodGV4dC1lbGVtZW50O1xuICB9XG5cbiAgaHIge1xuICAgIEBpbmNsdWRlIHJpY2h0ZXh0LWVsZW1lbnQ7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWFjY2Vzc2libGUtLWxpbmUpO1xuICB9XG5cbiAgLy8gTGlzdHNcbiAgdWw6bm90KFtjbGFzc10pLFxuICBvbDpub3QoW2NsYXNzXSkge1xuICAgIEBpbmNsdWRlIHJpY2h0ZXh0LWVsZW1lbnQ7XG4gICAgQGluY2x1ZGUgdHlwbyhsaXN0KTtcbiAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG5cbiAgICAvLyBbMl0gdGhpcyBmaXhlcyBjb2xsYXBzaW5nIG9mIHVsIGFuZCBvbCBuZXh0IHRvIGZsb2F0ZWQgaW1hZ2VzXG4gICAgLy8gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy83MTAxNTgvd2h5LWRvLW15LWxpc3QtaXRlbS1idWxsZXRzLW92ZXJsYXAtZmxvYXRpbmctZWxlbWVudHNcbiAgICBkaXNwbGF5OiB0YWJsZTtcblxuICAgIHVsLFxuICAgIG9sIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICBwYWRkaW5nLWxlZnQ6ICN7JGxheW91dC1saW5laGVpZ2h0ICogMWVtfTtcbiAgICB9XG5cbiAgICBsaSB7XG4gICAgICAvLyBtdWx0aSBsaW5lIGVudHJpZXMgcnVuIGNsb3NlciB0b2dldGhlciBieSByZWR1Y2luZyBsaW5lIGhlaWdodCB0byAuOVxuICAgICAgLy8gYnkgYWRkaW5nIG1hcmdpbiB0b3Agb2YgLjEgYWxsIHNpbmdsZSBsaW5lIGVudHJpZXMgb25jZSBhZ2FpbiBoYXZlIGEgbGluZSBoZWlnaHRcbiAgICAgIC8vIG9mIDEgKDEqMC45KzEqMC4xID0gMS4wMHgpXG4gICAgICBsaW5lLWhlaWdodDogI3skbGF5b3V0LWxpbmVoZWlnaHQgKiAwLjllbX07XG4gICAgICBtYXJnaW4tdG9wOiAjeyRsYXlvdXQtbGluZWhlaWdodCAqIDAuMWVtfTtcbiAgICB9XG4gIH1cblxuICB1bDpub3QoW2NsYXNzXSkge1xuICAgID4gbGkge1xuICAgICAgbGlzdC1zdHlsZS10eXBlOiBkaXNjO1xuICAgIH1cbiAgfVxuXG4gIG9sOm5vdChbY2xhc3NdKSB7XG4gICAgPiBsaSB7XG4gICAgICBsaXN0LXN0eWxlLXR5cGU6IGRlY2ltYWw7XG4gICAgfVxuICB9XG5cbiAgLy8gV2hlbiAucmljaHRleHQgaXMgdGhlIGZpcnN0IGVsZW1lbnQgd2UgcHJldmVudCBpdHMgZmlyc3QgY2hpbGQgZnJvbVxuICAvLyBlbmFjdGluZyBpdHMgdG9wIG1hcmdpbiBpbiBvcmRlciB0byB0cnVseSBzdGFydCBhdCB0aGUgYmVnaW5uaW5nLlxuICAmOmZpcnN0LWNoaWxkID4gOmZpcnN0LWNoaWxkIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG5cbiAgLy8gWzFdIG9wdGltaXNlIHZlcnRpY2FsIGFsaWdubWVudCBvZiBmbG9hdHMgYW5kIHRleHRcbiAgLy8gWzFdIEZvciB0ZXh0IGVsZW1lbnRzIHdlIG5lZWQgdG8gcmVkdWNlIHRoZSB0b3AgbWFyZ2luIGEgc2xpZ2h0IGJpdFxuICAvLyBiZWNhdXNlIGxpbmUgaGVpZ2h0IHdpbGwgYWRkIGEgYml0IG9mIHNwYWNlLiBPbmx5IGJ5IG5lZ2F0aW5nIHRoYXRcbiAgLy8gZXh0cmEgc3BhY2Ugd2lsbCB0ZXh0IG5leHQgdG8gdGhlIGltYWdlIGxvb2sgd2VsbCBhbGlnbmVkLlxuICAuaW1hZ2UtLWZsb2F0LWxlZnQgKyBwOm5vdChbY2xhc3NdKSxcbiAgLmltYWdlLS1mbG9hdC1yaWdodCArIHA6bm90KFtjbGFzc10pLFxuICAubW9zYWljLS1mbG9hdC1sZWZ0ICsgcDpub3QoW2NsYXNzXSksXG4gIC5tb3NhaWMtLWZsb2F0LXJpZ2h0ICsgcDpub3QoW2NsYXNzXSkge1xuICAgIG1hcmdpbi10b3A6IGNhbGModmFyKC0tc2l6ZS1jb250ZW50LXN0YWNrKSAtIDAuNWVtKTtcbiAgfVxuXG4gIC8vIFsxXSBXaGVuIHRoZSBpbWFnZSBpcyB0aGUgZmlyc3QgZWxlbWVudCwgdGhlIHJlZHVjZWQgbWFyZ2luLXRvcFxuICAvLyBvZiB0ZXh0IGhhcyBubyBlZmZlY3QgYXMgaXQgc3RhY2tzIHdpdGggdGhlIHdyYXBwZXJzIG1hcmdpbi5cbiAgLy8gV2UgdGh1cyBzaGlmdCB0aGUgaW1hZ2UgZG93biwgaW5zdGVhZCBvZiB0aGUgdGV4dCB1cC5cbiAgLmltYWdlLS1mbG9hdC1sZWZ0OmZpcnN0LWNoaWxkLFxuICAuaW1hZ2UtLWZsb2F0LXJpZ2h0OmZpcnN0LWNoaWxkLFxuICAubW9zYWljLS1mbG9hdC1sZWZ0OmZpcnN0LWNoaWxkLFxuICAubW9zYWljLS1mbG9hdC1yaWdodDpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXRvcDogMC40ZW07XG4gIH1cbn1cblxuLy8gVE9ETzogTW92ZSB0byBnbG9iYWwuc2NzcyBpbiBuZXh0IG1ham9yIHJlbGVhc2VcbkBpbXBvcnQgJy4uL2hlYWRpbmcvaGVhZGluZyc7XG4iLCIvLyBQcm92aWRlIHRoZSBwYXRoIHRvIHRoZSBhc3NldHMgZm9sZGVyLiBXZSBhc3N1bWUsIHRoYXQgdGhlIGNvbXBpbGVkXG4vLyBDU1Mgd2lsbCBiZSBpbiB0aGUgc2FtZSBmb2xkZXIsIHNvIHdlIGp1c3QgZ28gb24gZGlyIHVwXG4ka3RhZy1zdHlsZWd1aWRlLWFzc2V0cy1wYXRoOiAnLi4nICFkZWZhdWx0O1xuXG4vLyBHbG9iYWwgbGF5b3V0IHZhcmlhYmxlcyAvIHdpZHRocyBhbmQgZ3V0dGVyIGV0Yy5cbiRsYXlvdXQtbGluZWhlaWdodDogMS41ICFkZWZhdWx0OyAvLyBub3QgaW4gc2l6ZXMsIHNpbmNlIGl0J3Mgbm90ICdhIHNpemUnIHBlciBzZVxuJGxheW91dC13aWR0aC1taW46IDMyMHB4ICFkZWZhdWx0O1xuJGxheW91dC13aWR0aC1tYXg6IDE0NDBweCAhZGVmYXVsdDtcbiIsIkB1c2UgJ3Nhc3M6bWFwJztcblxuLy8gZXhwZWN0cyBhIG1hcCBvZiBtZWRpYXF1ZXJpZXMgaW4gJGRlc2lnbi1icmVha3BvaW50c1xuLy8geW91IGNhbiBzZXQgdGhlIHNlY29uZCBwYXJhbWV0ZXIgdG8gdHJ1ZSBhbiBwcm92aWRlIGEgY3VzdG9tIG1lZGlhcXVlcnlcbi8vIGFkYXB0ZWQgc25pcHBlZCBmb3JtIEh1Z28gR2lyYXVkZWw6IGh0dHA6Ly93d3cuc2l0ZXBvaW50LmNvbS9jcm9zcy1tZWRpYS1xdWVyeS1leHRlbmQtc2Fzcy9cbkBtaXhpbiBtZWRpYXF1ZXJ5KCRicmVha3BvaW50LXZhbHVlKSB7XG4gIEBpZiB2YXJpYWJsZS1leGlzdHMoZGVzaWduLWJyZWFrcG9pbnRzKSA9PSBmYWxzZSB7XG4gICAgQHdhcm4gJyRkZXNpZ24tYnJlYWtwb2ludHMgU0NTUy1tYXAgZG9lcyBub3QgZXhpc3QsIHBsZWFzZSBwcm92aWRlIG9uZSBpbiB5b3VyIGRlc2lnbiBzZXR0aW5ncyc7XG4gIH0gQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGRlc2lnbi1icmVha3BvaW50cywgJGJyZWFrcG9pbnQtdmFsdWUpID09IGZhbHNlIHtcbiAgICBAd2FybiAnSW5kZXggXCIjeyRicmVha3BvaW50LXZhbHVlfVwiIG5vdCBmb3VuZCBpbiAkZGVzaWduLWJyZWFrcG9pbnRzIFNhc3MtbWFwIHVzaW5nIG1peGluIG1lZGlhcXVlcnknO1xuICB9IEBlbHNlIHtcbiAgICBAbWVkaWEgI3ttYXAuZ2V0KCRkZXNpZ24tYnJlYWtwb2ludHMsICRicmVha3BvaW50LXZhbHVlKX0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vIHByb3ZpZGUgYWxpYXNlcyBmb3IgZWFzeSBhY2Nlc3NcbkBtaXhpbiBtcSgkYXJncy4uLikge1xuICBAaW5jbHVkZSBtZWRpYXF1ZXJ5KCRhcmdzLi4uKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cbiIsIi5oMSB7XG4gIEBpbmNsdWRlIHR5cG8oaGVhZGluZzEpO1xufVxuXG4uaDEtLXZpc3VhbGx5aGlkZGVuIHtcbiAgQGluY2x1ZGUgdmlzdWFsbHloaWRkZW47XG59XG5cbi5oMiB7XG4gIEBpbmNsdWRlIHR5cG8oaGVhZGluZzIpO1xufVxuXG4uaDMge1xuICBAaW5jbHVkZSB0eXBvKGhlYWRpbmczKTtcbn1cblxuLmg0LFxuLmg1LFxuLmg2IHtcbiAgQGluY2x1ZGUgdHlwbyhoZWFkaW5nNCk7XG59XG4iLCIvLyBodHRwOi8vanVpY3lzdHVkaW8uY29tL2FydGljbGUvc2NyZWVuLXJlYWRlcnMtZGlzcGxheS1ub25lLnBocFxuQG1peGluIGhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuQG1peGluIHVuaGlkZGVuKCRkaXNwbGF5OiBpbml0aWFsKSB7XG4gIGRpc3BsYXk6ICRkaXNwbGF5O1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xufVxuXG4vLyBIaWRlIG9ubHkgdmlzdWFsbHksIGJ1dCBoYXZlIGl0IGF2YWlsYWJsZSBmb3Igc2NyZWVucmVhZGVyczpcbi8vIGh0dHA6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHlcbkBtaXhpbiB2aXN1YWxseWhpZGRlbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm9yZGVyOiAwO1xuICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luOiAtMXB4O1xuICBwYWRkaW5nOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gIC8vIEV4dGVuZHMgdGhlIC52aXN1YWxseWhpZGRlbiBjbGFzcyB0byBhbGxvdyB0aGUgZWxlbWVudCB0byBiZSBmb2N1c2FibGVcbiAgLy8gd2hlbiBuYXZpZ2F0ZWQgdG8gdmlhIHRoZSBrZXlib2FyZDogaHR0cHM6Ly93d3cuZHJ1cGFsLm9yZy9ub2RlLzg5NzYzOFxuICAmLmZvY3VzYWJsZSB7XG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgY2xpcDogYXV0bztcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiB2aXN1YWxseXVuaGlkZGVuIHtcbiAgcG9zaXRpb246IHVuc2V0O1xuICBib3JkZXI6IHVuc2V0O1xuICBjbGlwOiB1bnNldDtcbiAgd2lkdGg6IHVuc2V0O1xuICBoZWlnaHQ6IHVuc2V0O1xuICBtYXJnaW46IHVuc2V0O1xuICBwYWRkaW5nOiB1bnNldDtcbiAgb3ZlcmZsb3c6IHVuc2V0O1xufVxuXG4vLyBIaWRlIHZpc3VhbGx5IGFuZCBmcm9tIHNjcmVlbnJlYWRlcnMsIGJ1dCBtYWludGFpbiBsYXlvdXRcbkBtaXhpbiBpbnZpc2libGUge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG4iLCIuc3RhYXRza2FsZW5kZXJhZGRyZXNzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAmX190b3VjaHBvaW50cyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogc2l6ZShsYXlvdXQtZ3V0dGVyKSAqIC0xIDAgMCBzaXplKGxheW91dC1ndXR0ZXIpICogLTE7XG4gICAgbWF4LXdpZHRoOiA2MDBweDtcblxuICAgIEBpbmNsdWRlIG1lZGlhcXVlcnkoc21hbGwpIHtcbiAgICAgIG1hcmdpbi10b3A6IHNpemUobGF5b3V0LWd1dHRlci0tdGFibGV0LXBvcnRyYWl0KSAqIC0xO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhcXVlcnkocHJpbnQpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJl9fdG91Y2hwb2ludCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiBjYWxjKDUwJSAtICN7c2l6ZShsYXlvdXQtZ3V0dGVyKX0pO1xuICAgIG1hcmdpbi1sZWZ0OiBzaXplKGxheW91dC1ndXR0ZXIpO1xuICB9XG5cbiAgJl9fbGluayB7XG4gICAgLy8gZml4IHRleHQtYnJlYWtpbmcgb3V0IG9mIGJ1dHRvbiBmb3Igc21hbGwgc2NyZWVucyBieSByZW1vdmluZyBwYWRkaW5nXG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG5cbiAgICAvLyBzaGFtZSByaWNodGV4dCBvdmVycmlkZVxuICAgICYjeyZ9IHtcbiAgICAgIG1hcmdpbi10b3A6IHNpemUobGF5b3V0LWd1dHRlcik7XG4gICAgfVxuICB9XG5cbiAgJl9fbGFiZWwge1xuICAgIC5zcHJpdGUgKyAmIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwLjRlbTtcbiAgICB9XG4gIH1cblxuICAmX19pbmZvcyB7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIG1hcmdpbi10b3A6ICN7JGxheW91dC1saW5laGVpZ2h0ICogMWVtfTtcbiAgICBsaW5lLWhlaWdodDogI3skbGF5b3V0LWxpbmVoZWlnaHQgKiAxZW19O1xuICB9XG5cbiAgJl9fcGFyYWdyYXBoOmZpcnN0LWNoaWxkIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG5cbiAgLy8gc2hhbWU6IGhhcmQgdG8gc29sdmUgd2l0aG91dCBjaGFuZ2luZyB0aGUgaHRtbCxcbiAgLy8gc2luY2UgZWFjaCBvZiB0aG9zZSBjYW4gYmUgb24gZmlyc3QgbGluZVxuICAmX19vcmdhbmlzYXRpb246Zmlyc3QtY2hpbGQsXG4gICZfX2Z1bGxuYW1lOmZpcnN0LWNoaWxkLFxuICAmX19yb2xlOmZpcnN0LWNoaWxkIHtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICB9XG5cbiAgJl9fYWRkcmVzcyB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxuXG4gIC8vIGhpZGUgdGhvc2UgZm9yIG5vbi1wcmludCwgc2luY2Ugd2UgaGF2ZSB0aGUgdG91Y2hwb2ludHNcbiAgJl9fY29udGFjdGZvcm0sXG4gICZfX2VtYWlsLFxuICAmX193ZWJzaXRlLFxuICAmX19waG9uZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcblxuICAgIEBpbmNsdWRlIG1lZGlhcXVlcnkocHJpbnQpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICB9XG5cbiAgICAmLS1vdGhlciB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgfVxuICB9XG5cbiAgJl9fc3VmZml4IHtcbiAgICBAaW5jbHVkZSB2aXN1YWxseWhpZGRlbjtcbiAgfVxuXG4gICZfX29yZ2FuaXNhdGlvbixcbiAgJl9fZnVsbG5hbWUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG4iLCIuc3RhYXRza2FsZW5kZXJpbmRleCB7XG4gICYtLWhpZGRlbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIH1cbn1cbiIsIiRzdGFhdHNrYWxlbmRlcmxpc3QtbGluZWhlaWdodDogJGxheW91dC1saW5laGVpZ2h0ICogMWVtO1xuXG4uc3RhYXRza2FsZW5kZXJsaXN0IHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG5cbiAgJl9fZW50cnkge1xuICAgIG1hcmdpbi1ib3R0b206IDAuOXJlbTtcbiAgICBtYXJnaW4tdG9wOiAkc3RhYXRza2FsZW5kZXJsaXN0LWxpbmVoZWlnaHQgKiAwLjE7XG4gICAgbGluZS1oZWlnaHQ6ICRzdGFhdHNrYWxlbmRlcmxpc3QtbGluZWhlaWdodCAqIDAuOTtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIH1cblxuICAmX19saW5rIHtcbiAgICBAaW5jbHVkZSBsaW5rKFxuICAgICAgJGNvbG9yLWRlZmF1bHQ6IHZhcigtLWNvbG9yLWludGVyYWN0aW9uLS1kZWZhdWx0KSxcbiAgICAgICRjb2xvci1ob3ZlcjogdmFyKC0tY29sb3ItaW50ZXJhY3Rpb24tLWRlZmF1bHQtYXR0ZW50aW9uKSxcbiAgICAgICRjb2xvci1hY3RpdmU6IHZhcigtLWNvbG9yLWludGVyYWN0aW9uLS1kZWZhdWx0LWFjdGl2ZSksXG4gICAgKTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZy1sZWZ0OiAxLjhlbTtcblxuICAgIC8vIHNoYW1lOiBvdmVycmlkZSAuZ3JpZCBkZWZhdWx0c1xuICAgICYjeyZ9I3smfSN7Jn0ge1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgIC8vIFsyXSBkaXNhYmxlIG1vdXNlb3ZlciBzdHlsaW5nIHRvXG4gICAgLy8gcmUtZW5hYmxlIGl0IG9uIHRpdGxlIG9ubHlcbiAgICAmI3smfTpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuXG4gICAgLnNwcml0ZSB7XG4gICAgICBoZWlnaHQ6IDFlbTtcbiAgICAgIHdpZHRoOiAxZW07XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgdG9wOiAwO1xuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtLWRlZmF1bHQpO1xuXG4gICAgICAmLS11c2VyZ3JvdXAge1xuICAgICAgICBoZWlnaHQ6IDEuMjJlbTtcbiAgICAgICAgd2lkdGg6IDEuMjJlbTtcbiAgICAgICAgdG9wOiAwLjA1ZW07XG4gICAgICB9XG5cbiAgICAgICYtLXVzZXIge1xuICAgICAgICB3aWR0aDogMC45NmVtO1xuICAgICAgICBoZWlnaHQ6IDAuOTZlbTtcbiAgICAgICAgdG9wOiAwLjFlbTtcbiAgICAgICAgbGVmdDogMC4zZW07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9faGVhZGluZyB7XG4gICAgLnN0YWF0c2thbGVuZGVybGlzdF9fbGluazpob3ZlciAmIHtcbiAgICAgIC8vWzJdXG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB9XG4gIH1cblxuICAmX19mdW5jdGlvbiB7XG4gICAgQGluY2x1ZGUgdHlwbyhzbWFsbCk7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtLWRlZmF1bHQpO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICAmX19vcmdhbmlzYXRpb24ge1xuICAgIEBpbmNsdWRlIHR5cG8odGlueSk7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtLWxpZ2h0KTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgLmxpbmtsaXN0IHtcbiAgICBtYXJnaW4tdG9wOiAwLjVlbTtcbiAgfVxufVxuIiwiLy8gTGluayB1dGlsIHdpbGwgY3JlYXRlIGFsbCB0aGUgbmVjZXNzYXJ5IGNzcyB0byBzdHlsZSBsaW5rcyBpbiBhbGwgdGhlaXIgZGlmZmVyZW50IHN0YXRlcy5cbi8vXG4vLyBIb3cgdG8gdXNlOlxuLy8gQGluY2x1ZGUgbGluazsgd2lsbCBhZGQgYmFzaWMgc3R5bGluZyBidXQgYWxsIHN0YXRlcyB3aWxsIGJlIHRoZSBzYW1lIGRlZmF1bHQgaW50ZXJhY3Rpb24gY29sb3Jcbi8vIEBpbmNsdWRlIGxpbmsocmVkKSB3aWxsIHR1cm4gdGhlIGRlZmF1bHQgbGluayBjb2xvciBhbmQgYWxsIHN1YnNlcXVlbnQgY29sb3JzIHJlZFxuLy8gQGluY2x1ZGUgbGluayhyZWQsIGdyZWVuLCAuLi4pIHdpbGwgc2V0IGRpZmZlcmVudCBjb2xvcnMgZm9yIGRpZmZlcmVudCBzdGF0ZXMgKGRlZmF1bHQsIGhvdmVyLCBhY3RpdmUsIGZvY3VzLCB2aXNpdGVkKS5cbi8vIEBpbmNsdWRlIGxpbmsoJGNvbG9yLWhvdmVyOiBncmVlbikgd2lsbCBrZWVwIHRoZSBkZWZhdWx0cyBidXQgdGhlIGhvdmVyIGNvbG9yIGlzIGdyZWVuXG5cbkBtaXhpbiBsaW5rKFxuICAkY29sb3ItZGVmYXVsdDogdmFyKC0tY29sb3ItaW50ZXJhY3Rpb24tLWRlZmF1bHQsIGN1cnJlbnRDb2xvciksXG4gICRjb2xvci1ob3ZlcjogJGNvbG9yLWRlZmF1bHQsXG4gICRjb2xvci1hY3RpdmU6ICRjb2xvci1ob3ZlcixcbiAgJGNvbG9yLWZvY3VzOiAkY29sb3ItaG92ZXIsXG4gICRjb2xvci12aXNpdGVkOiAkY29sb3ItZGVmYXVsdCxcbiAgJHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IHZhcigtLXNpemUtbGluay10ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzKVxuKSB7XG4gIGNvbG9yOiAkY29sb3ItZGVmYXVsdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6IHZhcigtLXNpemUtbGluay11bmRlcmxpbmUtb2Zmc2V0KTtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xcyBlYXNlLW91dCwgYmFja2dyb3VuZC1jb2xvciAwLjFzIGVhc2Utb3V0O1xuXG4gICY6bGluayB7XG4gICAgY29sb3I6ICRjb2xvci1kZWZhdWx0O1xuICB9XG5cbiAgJjp2aXNpdGVkIHtcbiAgICBjb2xvcjogJGNvbG9yLXZpc2l0ZWQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWFxdWVyeShwcmludCkge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6ICR0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzO1xuICB9XG5cbiAgLy8gdGhpcyBlZmZlY3RpdmVseSBkaXNhYmxlcyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZVxuICAvLyB3aGljaCBzaW1wbHkgc3RhdGluZyB0ZXh0LWRlY29yYXRpb246IG5vbmUgZG9lc24ndC5cbiAgLy8gRmlyc3QgZGVjbGFyaW5nIGRpc3BsYXk6IGlubGluZS1ibG9jazsgYW5kIHRoZW4gb3ZlcndyaXRpbmdcbiAgLy8gdGV4dC1kZWNvcmF0aW9uIHVuZGVybGluZSBpbiBhIHNlY29uZCBkZWNsYXJhdGlvbiB3aXRoXG4gIC8vIG5vbmUuIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvODUzNjAxNS9zdG9wLWxpbmtzLWJlZm9yZS1jb250ZW50LWZyb20tYmVpbmctdW5kZXJsaW5lZC1ieS1ydWxlLWFwcGxpZWQtdG8tdGhlLWxpbmtcbiAgLy8gLi4uXG4gICY6OmJlZm9yZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB9XG5cbiAgJjo6YWZ0ZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB9XG5cbiAgJjo6YmVmb3JlIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cblxuICAmOjphZnRlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICBjb2xvcjogJGNvbG9yLWhvdmVyO1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6ICR0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzO1xuICB9XG5cbiAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICBAaW5jbHVkZSBmb2N1cy1vdXRsaW5lLWRlZmF1bHQ7XG4gICAgY29sb3I6ICRjb2xvci1mb2N1cztcbiAgfVxuXG4gICY6YWN0aXZlIHtcbiAgICBjb2xvcjogJGNvbG9yLWFjdGl2ZTtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiAkdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzcztcbiAgfVxuXG4gICY6aG92ZXIsXG4gICY6YWN0aXZlIHtcbiAgICAmOjpiZWZvcmUge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC8vIC4uLiB0aGlzIGlzIGEgY29weSBvZiB0aGUgYWJvdmUgcnVsZS4gQ1NTIHBvc3Rwcm9jZXNzaW5nIG1lcmdlc1xuICAvLyBhZGphY2VudCBydWxlcyB0aGlzIHRoaXMgaGFkIHRvIGJlIHNlcGFyYXRlZCBmcm9tIHRoZSBvdGhlclxuICAvLyA6OmJlZm9yZSBydWxlIHRvIG1ha2Ugc3VyZSB0aGUgdGV4dC1kZWNvcmF0aW9uIHN0YXRlbWVudCBpc24ndCBtZXJnZWQuXG4gICY6OmJlZm9yZSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG59XG4iLCIvLyBzdHlsZSBlbGVtZW50cyBvbmx5IHdoZW4gZm9jdXNzZWQgdmlhIHRhYlxuLy8gdGhpcyB3aWxsIHByZXZlbnQgaW9zIGFuZCBvc3ggZnJvbSBrZWVwaW5nIHRoZSBmb2N1c1xuLy8gc3R5bGUgb24gZWxlbWVudHMgdGhhdCBoYXZlIGJlZW4gdGFwcGVkIC8gY2xpY2tlZFxuLy8gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy81NjUzMzMyL2RpZmZlcmVudGlhdGUtYmV0d2Vlbi1mb2N1cy1ldmVudC10cmlnZ2VyZWQtYnkta2V5Ym9hcmQtbW91c2Vcbi8vXG4vLyBpdCdzIGltcG9ydGFudCB0byBzdHlsZSBvbiA6bm90IHNlbGVjdG9ycywgc28gdGhhdFxuLy8gbm9uLWpzIGJyb3dzZXJzIHdpbGwgYWx3YXlzIHNob3cgZm9jdXMgc3R5bGVzLCBub3QgbmV2ZXJcbkBtaXhpbiBmb2N1cy1vbmtleXByZXNzIHtcbiAgLmxheW91dC0taXMta2V5cHJlc3NlZCAmOmZvY3VzLFxuICAmOmZvY3VzLXZpc2libGUge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBmb2N1cy1vdXRsaW5lLWRlZmF1bHQoXG4gICRjb2xvcjogdmFyKC0tY29sb3ItYnJhbmQtLWRlZmF1bHQpLFxuICAkd2lkdGg6IHNpemUoZmF0LWxpbmUpLFxuICAkb2Zmc2V0OiBzaXplKGZvY3VzLW9mZnNldClcbikge1xuICBvdXRsaW5lOiAjeyR3aWR0aH0gc29saWQgI3skY29sb3J9O1xuICBvdXRsaW5lLW9mZnNldDogJG9mZnNldDtcbn1cblxuQG1peGluIGZvY3VzLW91dGxpbmUoXG4gICRjb2xvcjogdmFyKC0tY29sb3ItYnJhbmQtLWRlZmF1bHQpLFxuICAkd2lkdGg6IHNpemUoZmF0LWxpbmUpLFxuICAkb2Zmc2V0OiBzaXplKGZvY3VzLW9mZnNldClcbikge1xuICBAaW5jbHVkZSBmb2N1cy1vbmtleXByZXNzIHtcbiAgICBAaW5jbHVkZSBmb2N1cy1vdXRsaW5lLWRlZmF1bHQoJGNvbG9yLCAkd2lkdGgsICRvZmZzZXQpO1xuICB9XG59XG5cbkBtaXhpbiBuby1mb2N1cy1vdXRsaW5lIHtcbiAgQGluY2x1ZGUgZm9jdXMtb25rZXlwcmVzcyB7XG4gICAgb3V0bGluZTogMDtcbiAgICBvdXRsaW5lLW9mZnNldDogMDtcbiAgfVxufVxuIiwiLnN0YWF0c2thbGVuZGVycmVzdWx0cyB7XG4gIC8vIGZvciBsb2FkaW5nIGFuaW1hdGlvbiBwb3NpdGlvbmluZ1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgLy8gdG8gZW5zdXJlIGxvYWRpbmcgYW5pbWF0aW9uIHdvbid0XG4gIC8vIGJlIG92ZXJmbG93aW5nIGludG8gZm9vdGVyXG4gIG1pbi1oZWlnaHQ6IDEwcmVtO1xufVxuXG4uc3RhYXRza2FsZW5kZXJyZXN1bHRzLS1oaWRkZW4sXG4uc3RhYXRza2FsZW5kZXJyZXN1bHRzX19tb3JlLS1oaWRkZW4sXG4uc3RhYXRza2FsZW5kZXJyZXN1bHRzX19sb2FkaW5nLS1oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi5zdGFhdHNrYWxlbmRlcnJlc3VsdHNfX2xvYWRpbmcge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDQ1JTtcbn1cbiIsIi5zdGFhdHNrYWxlbmRlcnNlYXJjaCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLXRvcDogNHJlbTtcblxuICBAaW5jbHVkZSBtZWRpYXF1ZXJ5KHByaW50KSB7XG4gICAgQGluY2x1ZGUgaGlkZGVuO1xuICB9XG59XG5cbi5zdGFhdHNrYWxlbmRlcnNlYXJjaF9fbGFiZWwge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIGxlZnQ6IDEuMnJlbTtcbiAgaGVpZ2h0OiAxLjIyZW07XG4gIHdpZHRoOiAxLjIyZW07XG5cbiAgQGluY2x1ZGUgbWVkaWFxdWVyeShsYXJnZSkge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTIlKTtcbiAgICBoZWlnaHQ6IDEuMDhlbTtcbiAgICB3aWR0aDogMS4wOGVtO1xuICB9XG5cbiAgPiAuc3ByaXRlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtLXRhYmxlKTtcblxuICAgID4gc3ZnIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuICB9XG59XG5cbi5zdGFhdHNrYWxlbmRlcnNlYXJjaF9faW5wdXQge1xuICBAaW5jbHVkZSBmb3JtLWlucHV0O1xuICBwYWRkaW5nOiAwLjZlbSAxZW0gMC42ZW0gNHJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGJvcmRlci1yYWRpdXM6IHNpemUoYm9yZGVyLXJhZGl1cyk7XG5cbiAgQGluY2x1ZGUgbWVkaWFxdWVyeShsYXJnZSkge1xuICAgIHBhZGRpbmc6IDAuNmVtIDFlbSAwLjZlbSA0cmVtO1xuICB9XG5cbiAgJiN7Jn0ge1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxufVxuXG4uc3RhYXRza2FsZW5kZXJzZWFyY2hfX2xhYmVsLXRleHQge1xuICBAaW5jbHVkZSB2aXN1YWxseWhpZGRlbjtcbn1cbiIsIiRmb3JtLWNvbG9yLWJhY2tncm91bmQtZGlzYWJsZWQ6IHNoYWRlKHZhcigtLWNvbG9yLWxheW91dC0tYmFzZSksIDQuMiUpICFkZWZhdWx0O1xuXG5AbWl4aW4gZm9ybS1pbnB1dC0tcmVhZG9ubHkge1xuICAtLWNvbG9yLWZvcm0taW5wdXQtYm9yZGVyOiB2YXIoLS1jb2xvci1mb3JtLS1kaXNhYmxlZC1saWdodCk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1mb3JtLS1kaXNhYmxlZCk7XG59XG5cbkBtaXhpbiBmb3JtLWlucHV0LS1kaXNhYmxlZCB7XG4gIEBpbmNsdWRlIGZvcm0taW5wdXQtLXJlYWRvbmx5O1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZm9ybS1jb2xvci1iYWNrZ3JvdW5kLWRpc2FibGVkO1xufVxuXG5AbWl4aW4gZm9ybS1pbnB1dC0taW52YWxpZCB7XG4gIC0tY29sb3ItZm9ybS1pbnB1dC1ib3JkZXI6IHZhcigtLWNvbG9yLWZvcm0tLWludmFsaWQpO1xufVxuXG5AbWl4aW4gZm9ybS1pbnB1dCB7XG4gIC0tY29sb3ItZm9ybS1pbnB1dC1ib3JkZXI6IHZhcigtLWNvbG9yLWZvcm0tLWlucHV0LWJvcmRlcik7XG5cbiAgLy8gYmVjYXVzZSBub3JtYWxpemUuc2NzcyB0cmllcyB0byBtYWtlXG4gIC8vIHR5cGU9J3NlYXJjaCcgaW50byBhIGNvbnRlbnQtYm94LlxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtLWRlZmF1bHQpO1xuICAvLyBoZWlnaHQ6IDMuNnJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItZm9ybS0taW5wdXQtYmFzZSk7XG4gIGJvcmRlcjogdmFyKC0tc2l6ZS1sYXlvdXQtbGluZSkgc29saWQgdmFyKC0tY29sb3ItZm9ybS1pbnB1dC1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBib3gtc2hhZG93OiBub25lO1xuICBwYWRkaW5nOiAwLjM1ZW0gMC41ZW0gMC4yNWVtO1xuICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG5cbiAgLy8gcmVtb3ZlIG9zIC8gYnJvd3NlciBzcGVjaWZpYyBzdHlsaW5nXG4gIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgJjpmb2N1cyxcbiAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAtLWNvbG9yLWZvcm0taW5wdXQtYm9yZGVyOiB2YXIoLS1jb2xvci10ZXh0LS1kZWZhdWx0KTtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCB2YXIoLS1zaXplLWxheW91dC1saW5lKSB2YXIoLS1jb2xvci1mb3JtLWlucHV0LWJvcmRlcik7XG4gICAgb3V0bGluZTogMDtcbiAgfVxuXG4gICY6OnBsYWNlaG9sZGVyIHtcbiAgICBvcGFjaXR5OiAxOyAvLyBmZiBzZXRzIGxvd2VyIG9wYWNpdHkgb24gcGxhY2Vob2xkZXIuIFdlIG92ZXJyaWRlIHRoYXQgaGVyZVxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1mb3JtLS1wbGFjZWhvbGRlcik7XG4gIH1cbn1cbiJdfQ== */
