/* stylelint-disable scss/dollar-variable-empty-line-before */
/* stylelint-disable scss/dollar-variable-colon-space-after */
/*
Import our custom control key for form styling in theme.json.
Maybe use core/form, core/form-input, and core/form-submit-button
if the allowed attributes are enough.
*/
/*
SVG images for radios, checkboxes, selects, and datalists.
*/
/*
Add right arrow to buttons.
*/
/*! modern-normalize v2.0.0 | MIT License | https://github.com/sindresorhus/modern-normalize */
/*
Document
========
*/
/**
Use a better box model (opinionated).
*/
*,
::before,
::after {
  box-sizing: border-box;
}

html {
  /* Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3) */
  font-family: system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";
  line-height: 1.15; /* 1. Correct the line height in all browsers. */
  -webkit-text-size-adjust: 100%; /* 2. Prevent adjustments of font size after orientation changes in iOS. */
  -moz-tab-size: 4; /* 3. Use a more readable tab size (opinionated). */
  tab-size: 4; /* 3 */
}

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

/*
Grouping content
================
*/
/**
1. Add the correct height in Firefox.
2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
*/
hr {
  height: 0; /* 1 */
  color: inherit; /* 2 */
}

/*
Text-level semantics
====================
*/
/**
Add the correct text decoration in Chrome, Edge, and Safari.
*/
abbr[title] {
  text-decoration: underline dotted;
}

/**
Add the correct font weight in Edge and Safari.
*/
b,
strong {
  font-weight: bolder;
}

/**
1. Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3)
2. Correct the odd 'em' font sizing in all browsers.
*/
code,
kbd,
samp,
pre {
  font-family: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace; /* 1 */
  font-size: 1em; /* 2 */
}

/**
Add the correct font size in all browsers.
*/
small {
  font-size: 80%;
}

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

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/*
Tabular data
============
*/
/**
1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
2. Correct table border color inheritance in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
*/
table {
  text-indent: 0; /* 1 */
  border-color: inherit; /* 2 */
}

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

/**
Remove the inheritance of text transform in Edge and Firefox.
*/
button,
select {
  text-transform: none;
}

/**
Correct the inability to style clickable types in iOS and Safari.
*/
button,
[type=button],
[type=reset],
[type=submit] {
  -webkit-appearance: button;
}

/**
Remove the inner border and padding in Firefox.
*/
::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

/**
Restore the focus styles unset by the previous rule.
*/
:-moz-focusring {
  outline: 1px dotted ButtonText;
}

/**
Remove the additional ':invalid' styles in Firefox.
See: https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737
*/
:-moz-ui-invalid {
  box-shadow: none;
}

/**
Remove the padding so developers are not caught out when they zero out 'fieldset' elements in all browsers.
*/
legend {
  padding: 0;
}

/**
Add the correct vertical alignment in Chrome and Firefox.
*/
progress {
  vertical-align: baseline;
}

/**
Correct the cursor style of increment and decrement buttons in Safari.
*/
::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto;
}

/**
1. Correct the odd appearance in Chrome and Safari.
2. Correct the outline style in Safari.
*/
[type=search] {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}

/**
Remove the inner padding in Chrome and Safari on macOS.
*/
::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
1. Correct the inability to style clickable types in iOS and Safari.
2. Change font properties to 'inherit' in Safari.
*/
::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}

/*
Interactive
===========
*/
/*
Add the correct display in Chrome and Safari.
*/
summary {
  display: list-item;
}

:root {
  line-height: 1.5;
}

html {
  scroll-behavior: smooth;
  -webkit-font-smoothing: antialiased;
}

body.wp-admin *, body.wp-admin *::before, body.wp-admin *::after {
  box-sizing: revert;
}

h1,
h2,
h3,
h4,
h5 {
  word-break: keep-all;
}

img[style*=aspect-ratio],
figure[style*=aspect-ratio] {
  width: 100%;
  height: 100%;
  overflow: hidden;
}

img {
  display: block;
  max-inline-size: 100%;
}

input {
  overflow: visible;
}

/**
1. Fix height difference with inputs of same line-height and padding.
2. Remove the inheritance of text transform in Firefox.
*/
select {
  text-transform: none; /* 2 */
  appearance: none; /* 1 */
}

textarea {
  overflow: auto;
}

[type=radio]:not(:disabled),
[type=checkbox]:not(:disabled) {
  cursor: pointer;
}

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

input,
textarea {
  appearance: none;
}

b,
strong {
  font-weight: var(--wp--custom--font-weight--bold);
}

kbd, code, samp, pre {
  font-size: 0.8889em;
  text-wrap-mode: nowrap;
  white-space-collapse: preserve-spaces;
}

code {
  padding-left: 0;
  overflow-x: initial;
  border: none;
}

a {
  text-underline-offset: 0.15em;
}

[style*=underline] {
  text-decoration-thickness: 1px !important;
  text-decoration-color: color-mix(in srgb, currentColor 50%, transparent) !important;
}

:focus-visible {
  outline: var(--wp--preset--color--focus) solid 1.5px;
  outline-offset: 0.5em;
}

/* Utility
--------------------------------------------- */
.unstyled {
  margin: 0;
  font-size: 1em;
  line-height: normal;
}

a[data-target] {
  cursor: pointer;
}

.is-style-uppercase {
  text-transform: uppercase;
}

.is-style-white-space-nowrap {
  white-space: nowrap;
}

.is-style-filter-invert {
  filter: invert(1);
}

.has-default-transition {
  transition-duration: 200ms;
  transition-property: all;
}

.is-style-fadeout {
  pointer-events: none;
  opacity: 0 !important;
  transition-duration: 500ms;
  transition-property: opacity;
}

.is-style-fadein {
  pointer-events: auto !important;
  opacity: 1 !important;
  transition-duration: 500ms;
  transition-property: opacity;
}

.is-layout-flex > .is-margin-inline-auto {
  margin-inline-start: auto;
}

.is-position-absolute {
  position: absolute;
}

.is-top {
  top: 0;
}

.is-flex-none {
  flex: 0;
}

.no-flex-shrink {
  flex-shrink: 0;
}

[style*="var(--wp--preset--spacing--overlap)"] {
  position: relative;
  z-index: 1;
}

.is-links-nowrap a[href] {
  white-space: nowrap;
}

/* Media Queries
---------------------------------------------------------------------------- */
/*
 * Hidden
 * `hidden` attribute also set here to make it stronger
 */
[hidden],
.is-style-hidden {
  display: none !important;
}

/* Hide if primary pointing device doesn't support hover, e.g. touch screens. */
@media (hover: none) {
  .is-style-hidden-touch {
    display: none !important;
  }
}
/* Hide if primary pointing device supports hover, e.g. mice. */
@media (hover) {
  .is-style-hidden-notouch {
    display: none !important;
  }
}
/* Responsive Settings block filter */
@media (max-width: 781px) {
  .has-mobile-order-first {
    order: -1;
  }
  .has-mobile-order-last {
    order: 1;
  }
  .has-mobile-content-alignment {
    --navigation-layout-align: center;
    --mobile-content-alignment: center;
    text-align: center;
  }
  .has-mobile-content-alignment .is-layout-flex:not(.is-vertical), .has-mobile-content-alignment.is-layout-flex:not(.is-vertical) {
    justify-content: var(--mobile-content-alignment);
  }
  .has-mobile-content-alignment .is-layout-flex.is-vertical, .has-mobile-content-alignment.is-layout-flex.is-vertical {
    align-items: var(--mobile-content-alignment);
  }
  .has-mobile-content-alignment-left {
    text-align: left;
    --mobile-content-alignment: flex-start;
  }
  .has-mobile-content-alignment-right {
    text-align: right;
    --mobile-content-alignment: flex-end;
  }
}
/* stylelint-disable no-descending-specificity */
/* stylelint-disable scss/dollar-variable-pattern, scss/dollar-variable-empty-line-before, scss/dollar-variable-colon-space-after */
/*
						theme.json										fallback
						----------										--------- */
/* stylelint-disable scss/dollar-variable-empty-line-before, scss/dollar-variable-colon-space-after */
/*
						theme.json										fallback
						----------										--------- */
/* stylelint-disable scss/dollar-variable-pattern, scss/dollar-variable-colon-space-after */
/* Feather Icons */
/* IonIcons */
/* css.gg */
form[method] {
  /* Input, select and textarea
   * Allowed: 	`text`, `password`, `datetime-local`, `date`,  `month`,
  				`time`, `week`, `number`, `email`, `url`, `search`, `tel`, `color`
   * Disallowed: 	`range`, `radio`, `checkbox`, `file`, `submit`, `reset` and `image`
  =================================================================================== */
  /*
  * 1. Prevent content overflow if a fixed width is used
  * 2. Take the full width
  * 3. Style
  */
  /*
  * Single-line
  */
  /*
  * Multi-line
  */
  /* Single-line selects, datalists */
}
form[method] label:has([type=radio]),
form[method] label:has([type=checkbox]) {
  display: flex;
  line-height: 1.5rem;
}
form[method] [type=radio],
form[method] [type=checkbox] {
  transition-duration: 100ms;
  transition-property: transform, background;
  transition-timing-function: ease-out;
  mask-position: 50%;
  mask-repeat: no-repeat;
  mask-size: contain;
  height: 1.5rem;
  aspect-ratio: 1;
  margin-inline-end: 0.5em;
  vertical-align: middle;
  background-color: var(--wp--preset--color--contrast);
  border: 0;
}
form[method] [type=radio]:checked,
form[method] [type=checkbox]:checked {
  background-color: currentColor;
}
form[method] [type=radio]:focus-visible, form[method] [type=radio]:active,
form[method] [type=checkbox]:focus-visible,
form[method] [type=checkbox]:active {
  background-color: var(--wp--preset--color--primary);
  transform: scale(1.25);
  transition-duration: 300ms;
  transition-timing-function: cubic-bezier(0.25, 1.65, 0.45, 1), ease;
}
form[method] [type=radio]:disabled,
form[method] [type=checkbox]:disabled {
  color: var(--wp--preset--color--neutral-500);
  background-color: var(--wp--preset--color--neutral-300);
  border-color: var(--wp--preset--color--neutral-500);
}
form[method] [type=radio] {
  mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20d%3D%22M448%20256c0-106-86-192-192-192S64%20150%2064%20256s86%20192%20192%20192%20192-86%20192-192z%22%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-miterlimit%3D%2210%22%20stroke-width%3D%2232%22%2F%3E%3C%2Fsvg%3E");
}
form[method] [type=radio]:checked {
  mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20d%3D%22M448%20256c0-106-86-192-192-192S64%20150%2064%20256s86%20192%20192%20192%20192-86%20192-192z%22%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-miterlimit%3D%2210%22%20stroke-width%3D%2232%22%2F%3E%3Ccircle%20cx%3D%22256%22%20cy%3D%22256%22%20r%3D%22144%22%2F%3E%3C%2Fsvg%3E");
}
form[method] [type=checkbox] {
  mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20d%3D%22M416%20448H96a32.09%2032.09%200%2001-32-32V96a32.09%2032.09%200%200132-32h320a32.09%2032.09%200%200132%2032v320a32.09%2032.09%200%2001-32%2032z%22%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%2232%22%2F%3E%3C%2Fsvg%3E");
}
form[method] [type=checkbox]:checked {
  mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%2232%22%20d%3D%22M352%20176L217.6%20336%20160%20272%22%2F%3E%3Crect%20x%3D%2264%22%20y%3D%2264%22%20width%3D%22384%22%20height%3D%22384%22%20rx%3D%2248%22%20ry%3D%2248%22%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%2232%22%2F%3E%3C%2Fsvg%3E");
}
form[method] [type=checkbox]:indeterminate {
  opacity: 0.5;
  mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20d%3D%22M416%20448H96a32.09%2032.09%200%2001-32-32V96a32.09%2032.09%200%200132-32h320a32.09%2032.09%200%200132%2032v320a32.09%2032.09%200%2001-32%2032z%22%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%2232%22%2F%3E%3C%2Fsvg%3E");
}
form[method] select,
form[method] textarea, form[method] input[type=text], form[method] input[type=password], form[method] input[type=date], form[method] input[type=datetime], form[method] input[type=datetime-local], form[method] input[type=email], form[method] input[type=month], form[method] input[type=number], form[method] input[type=search], form[method] input[type=tel], form[method] input[type=time], form[method] input[type=url], form[method] input[type=week] {
  /* 2 */
  width: 100%;
  /* 1 */
  max-width: 100%;
  line-height: var(--wp--custom--line-height--body);
  color: var(--wp--preset--color--contrast);
  /* 3 */
  background-color: var(--wp--preset--color--base);
  outline: 3px solid transparent;
  font-family: var(--wp--preset--font-family--body);
  font-size: var(--wp--preset--font-size--base);
  font-weight: var(--wp--preset--font-weight--regular);
  border-width: 1px;
  border-radius: 3px;
  border-style: solid;
  box-shadow: "0 0 0 0 rgb(0 0 0 / 10%)";
  /* stylelint-disable-next-line order/properties-order */
  padding: 9px 18px 9px 18px;
  transition-duration: 100ms;
  transition-property: transform, box-shadow;
  transition-timing-function: ease-out;
}
form[method] select:focus-visible,
form[method] textarea:focus-visible, form[method] input[type=text]:focus-visible, form[method] input[type=password]:focus-visible, form[method] input[type=date]:focus-visible, form[method] input[type=datetime]:focus-visible, form[method] input[type=datetime-local]:focus-visible, form[method] input[type=email]:focus-visible, form[method] input[type=month]:focus-visible, form[method] input[type=number]:focus-visible, form[method] input[type=search]:focus-visible, form[method] input[type=tel]:focus-visible, form[method] input[type=time]:focus-visible, form[method] input[type=url]:focus-visible, form[method] input[type=week]:focus-visible, form[method] select:active,
form[method] textarea:active, form[method] input[type=text]:active, form[method] input[type=password]:active, form[method] input[type=date]:active, form[method] input[type=datetime]:active, form[method] input[type=datetime-local]:active, form[method] input[type=email]:active, form[method] input[type=month]:active, form[method] input[type=number]:active, form[method] input[type=search]:active, form[method] input[type=tel]:active, form[method] input[type=time]:active, form[method] input[type=url]:active, form[method] input[type=week]:active {
  border-color: var(--wp--preset--color--primary);
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  transform: scale(1.025);
  transition-duration: 300ms;
  transition-timing-function: cubic-bezier(0.25, 1.65, 0.45, 1), ease;
}
form[method] select:disabled,
form[method] textarea:disabled, form[method] input[type=text]:disabled, form[method] input[type=password]:disabled, form[method] input[type=date]:disabled, form[method] input[type=datetime]:disabled, form[method] input[type=datetime-local]:disabled, form[method] input[type=email]:disabled, form[method] input[type=month]:disabled, form[method] input[type=number]:disabled, form[method] input[type=search]:disabled, form[method] input[type=tel]:disabled, form[method] input[type=time]:disabled, form[method] input[type=url]:disabled, form[method] input[type=week]:disabled {
  color: var(--wp--preset--color--neutral-500);
  background-color: var(--wp--preset--color--neutral-300);
  border-color: var(--wp--preset--color--neutral-500);
}
form[method] select:not([multiple], [size]) {
  vertical-align: middle;
}
form[method] select[multiple],
form[method] select[size],
form[method] textarea {
  vertical-align: top;
}
form[method] select[multiple],
form[method] select[size] {
  resize: vertical;
}
form[method] input[list],
form[method] select:not([multiple], [size]) {
  padding-right: calc(1.5rem + 18px);
  background-position: calc(100% - 1.5rem / 2) 50%;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20class%3D%22feather%20feather-chevron-down%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
  background-repeat: no-repeat;
  background-size: auto 1.5rem;
}
form[method] ::placeholder {
  color: var(--wp--preset--color--neutral-700);
}

.gform_button {
  background-color: var(--wp--preset--color--primary);
}

/* stylelint-disable selector-id-pattern */
/*
 * <kbd> colors taken from Atelier Forest Light
 * https://atelierbram.github.io/syntax-highlighting/atelier-schemes/forest/
 */
/* #68615e */
/* #e6e2e0 */
/* #f1efee */
kbd, code, samp, pre {
  font-family: var(--wp--preset--font-family--mono);
}

kbd {
  padding: 0.1em 0.4em;
  margin-inline: 0.2em;
  color: hsl(18, 5%, 39%);
  background: hsl(20, 10%, 94%);
  border-radius: 0.3em;
}
kbd:first-child {
  margin-inline-start: 0;
}
kbd:last-child {
  margin-inline-end: 0;
}
kbd::selection,
kbd ::selection {
  text-shadow: none;
  background: hsl(20, 11%, 89%);
}

.gform_button, #gform_submit_button_1 {
  padding: 0.8em 1.25em;
  font-size: 1em;
  font-weight: 400;
  color: white;
  background-color: var(--wp--preset--color--primary);
  border: none;
  border-radius: 50px;
  transition: background-color 0.3s ease;
}
.gform_button:hover, #gform_submit_button_1:hover {
  background-color: #171b38;
}/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJmaWxlOi8vL2FwcC90aGVtZXMvc3R1Y2NvL3NyYy9zY3NzL2Fic3RyYWN0cy9fdmFyaWFibGVzLmZvcm1zLnNjc3MiLCJmaWxlOi8vL2FwcC90aGVtZXMvc3R1Y2NvL3NyYy9zY3NzL2Fic3RyYWN0cy9fcGxhY2Vob2xkZXJzLnNjc3MiLCJmaWxlOi8vL2FwcC90aGVtZXMvc3R1Y2NvL3NyYy9ub2RlX21vZHVsZXMvbW9kZXJuLW5vcm1hbGl6ZS9tb2Rlcm4tbm9ybWFsaXplLmNzcyIsImZpbGU6Ly8vYXBwL3RoZW1lcy9zdHVjY28vc3JjL3Njc3MvX3Jlc2V0LnNjc3MiLCJmaWxlOi8vL2FwcC90aGVtZXMvc3R1Y2NvL3NyYy9zY3NzL2NvbXBvbmVudHMvX3V0aWxpdHkuc2NzcyIsImZpbGU6Ly8vYXBwL3RoZW1lcy9zdHVjY28vc3JjL3Njc3MvY29tcG9uZW50cy9fZm9ybS5zY3NzIiwiZmlsZTovLy9hcHAvdGhlbWVzL3N0dWNjby9zcmMvc2Nzcy9hYnN0cmFjdHMvX2Zvcm0taW5wdXQuc2NzcyIsImZpbGU6Ly8vYXBwL3RoZW1lcy9zdHVjY28vc3JjL3Njc3MvYWJzdHJhY3RzL19mb3JtLXJhZGlvLnNjc3MiLCJmaWxlOi8vL2FwcC90aGVtZXMvc3R1Y2NvL3NyYy9zY3NzL2Fic3RyYWN0cy9fZm9ybS1pbWFnZS5zY3NzIiwiZmlsZTovLy9hcHAvdGhlbWVzL3N0dWNjby9zcmMvc2Nzcy9icmFuZC9fc3R5bGUuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBdUJBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUE4RkE7QUFBQTtBQUFBO0FDakZBO0FBQUE7QUFBQTtBQ3JDQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0VBR0M7OztBQUdEO0FBQ0M7RUFDQSxhQUNDO0VBUUQ7RUFDQTtFQUNBO0VBQ0E7OztBQUdEO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFDQzs7O0FBR0Q7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0M7RUFDQTs7O0FBR0Q7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFJQTtFQUNDOzs7QUFHRDtBQUFBO0FBQUE7QUFJQTtBQUFBO0VBRUM7OztBQUdEO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7RUFJQyxhQUNDLDZFQUtXO0VBQ1o7OztBQUdEO0FBQUE7QUFBQTtBQUlBO0VBQ0M7OztBQUdEO0FBQUE7QUFBQTtBQUlBO0FBQUE7RUFFQztFQUNBO0VBQ0E7RUFDQTs7O0FBR0Q7RUFDQzs7O0FBR0Q7RUFDQzs7O0FBR0Q7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0M7RUFDQTs7O0FBR0Q7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFLQztFQUNBO0VBQ0E7RUFDQTs7O0FBR0Q7QUFBQTtBQUFBO0FBSUE7QUFBQTtFQUVDOzs7QUFHRDtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtFQUlDOzs7QUFHRDtBQUFBO0FBQUE7QUFJQTtFQUNDO0VBQ0E7OztBQUdEO0FBQUE7QUFBQTtBQUlBO0VBQ0M7OztBQUdEO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFDQzs7O0FBR0Q7QUFBQTtBQUFBO0FBSUE7RUFDQzs7O0FBR0Q7QUFBQTtBQUFBO0FBSUE7RUFDQzs7O0FBR0Q7QUFBQTtBQUFBO0FBSUE7QUFBQTtFQUVDOzs7QUFHRDtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0M7RUFDQTs7O0FBR0Q7QUFBQTtBQUFBO0FBSUE7RUFDQzs7O0FBR0Q7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNDO0VBQ0E7OztBQUdEO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBSUE7RUFDQzs7O0FDeFFEO0VBQ0M7OztBQUdEO0VBQ0M7RUFDQTs7O0FBT0E7RUFDQzs7O0FBSUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQUtDOzs7QUFJRDtBQUFBO0VBRUM7RUFDQTtFQUNBOzs7QUFHRDtFQUNDO0VBQ0E7OztBQU1EO0VBQ0M7OztBQUdEO0FBQUE7QUFBQTtBQUFBO0FBSUE7RUFDQztFQUNBOzs7QUFJRDtFQUNDOzs7QUFJRDtBQUFBO0VBRUM7OztBQUlEO0VBQ0M7RUFDQTtFQUNBOzs7QUFJRDtBQUFBO0VBRUM7OztBQVNEO0FBQUE7RUFFQzs7O0FBR0Q7RUFDQztFQUNBO0VBQ0E7OztBQUdEO0VBQ0M7RUFDQTtFQUNBOzs7QUFJRDtFQUNDOzs7QUFHRDtFQUVFO0VBQ0E7OztBQUlGO0VBQ0M7RUFDQTs7O0FDNUhEO0FBQUE7QUFpQkE7RUFDQztFQUNBO0VBQ0E7OztBQUdEO0VBQ0M7OztBQUdEO0VBQ0M7OztBQUdEO0VBQ0M7OztBQUdEO0VBQ0M7OztBQUdEO0VBQ0M7RUFDQTs7O0FBR0Q7RUFDQztFQUNBO0VBQ0E7RUFDQTs7O0FBR0Q7RUFDQztFQUNBO0VBQ0E7RUFDQTs7O0FBSUQ7RUFDQzs7O0FBR0Q7RUFDQzs7O0FBR0Q7RUFDQzs7O0FBR0Q7RUFDQzs7O0FBR0Q7RUFDQzs7O0FBR0Q7RUFDQztFQUNBOzs7QUFJQTtFQUNDOzs7QUFJRjtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0VBRUM7OztBQThCRDtBQUNBO0VBQ0M7SUFDQzs7O0FBSUY7QUFDQTtFQUNDO0lBQ0M7OztBQUlGO0FBQ0E7RUFDQztJQUEwQjs7RUFDMUI7SUFBeUI7O0VBRXpCO0lBQ0M7SUFDQTtJQUVBOztFQUVBO0lBRUM7O0VBR0Q7SUFFQzs7RUFJRDtJQUNDO0lBRUE7O0VBR0Q7SUFDQztJQUVBOzs7QUMvS0g7QUNBQTtBQWlCQTtBQUFBO0FBQUE7QUNqQkE7QUFnQkE7QUFBQTtBQUFBO0FDaEJBO0FBVUE7QUFZQTtBQWdCQTtBSHhCQTtBQXVFQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWtGQTtBQUFBO0FBQUE7QUFPQTtBQUFBO0FBQUE7QUFlQTs7QUFwTEE7QUFBQTtFQUVDO0VBQ0EsYUVpQmU7O0FGZGhCO0FBQUE7RUVrQkM7RUFDQTtFQUNBO0VGZkM7RUFDQTtFQUNBO0VBR0QsUUVJZTtFRkhmO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7QUFBQTtFQUNDOztBQUdEO0FBQUE7QUFBQTtFRUlEO0VBQ0E7RUFFQztFQUNBOztBRkpBO0FBQUE7RUVTRDtFQUNBO0VBQ0E7O0FGTkE7RUFDQzs7QUFFQTtFQUNDOztBQUlGO0VBQ0M7O0FBU0E7RUFDQzs7QUFRRDtFQUNDO0VBQ0E7O0FBZ0JGO0FBQUE7QUFDQztFQUNBO0FBRUE7RUFDQTtFQUNBLGFDNURlO0VENkRmLE9DbkZVO0FEcUZWO0VBQ0Esa0JDckZhO0VEc0ZiO0VBRUMsYUN0RWM7RUR1RWQsV0N0RVk7RUR1RVosYUN0RWM7RUR5RWQsY0N4RmU7RUQyRmYsZUMxRmU7RUQyRmY7RUFHRCxZQ3pGYTtBRDJGYjtFQUNBLFNBQ0M7RUN0RUQ7RUFDQTtFQUNBOztBRDJFQTtBQUFBO0FBQUE7RUN0RUQ7RUFDQTtFQUNBO0VBR0M7RUFDQTs7QURvRUE7QUFBQTtFQ3RERDtFQUNBO0VBQ0E7O0FEeURBO0VBQ0M7O0FBR0Q7QUFBQTtBQUFBO0VBQ0M7O0FBMkNEO0FBQUE7RUFFQzs7QUFLRDtBQUFBO0VBRUM7RUFFQztFQUNBO0VBQ0E7RUFDQTs7QUFLRjtFQUNDLE9DMUxtQjs7O0FEOExyQjtFQUNDOzs7QUl0TkQ7QUFTQTtBQUFBO0FBQUE7QUFBQTtBQUsrQjtBQUNBO0FBQ0E7QUFFL0I7RUFDQzs7O0FBR0Q7RUFDQztFQUNBO0VBQ0EsT0FYUTtFQVlSLFlBVlE7RUFXUjs7QUFFQTtFQUFnQjs7QUFDaEI7RUFBZTs7QUFFZjtBQUFBO0VBRUM7RUFDQSxZQXBCTzs7O0FBd0JUO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHQTtFQUNDIiwic291cmNlc0NvbnRlbnQiOlsiLyogc3R5bGVsaW50LWRpc2FibGUgc2Nzcy9kb2xsYXItdmFyaWFibGUtZW1wdHktbGluZS1iZWZvcmUgKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIHNjc3MvZG9sbGFyLXZhcmlhYmxlLWNvbG9uLXNwYWNlLWFmdGVyICovXG4vLy8vXG4vLy8gRm9ybSB2YXJpYWJsZXNcbi8vLyBJZGVhbGx5LCB0aGlzIGZpbGUgc2hvdWxkIG5vdCBuZWVkIGV4dGVuc2l2ZSBlZGl0cy5cbi8vLyBJbnRlcm1lZGlhcnkgZmlsZSBiZXR3ZWVuIHRoZSBmb3JtcyBzdHlsZSBkZWZpbml0aW9ucyBhbmQgdGhlbWUuanNvbi5cbi8vLyBAZ3JvdXAgdHJvbGxleVxuLy8vL1xuXG5AdXNlIFwiYWJzdHJhY3RzL3ZhcmlhYmxlc1wiIGFzICo7XG5AdXNlIFwiYWJzdHJhY3RzL2Z1bmN0aW9uc1wiIGFzICo7XG5AdXNlIFwiYWJzdHJhY3RzL21peGluc1wiIGFzICo7XG5cbi8vIEB1c2UgXCJ0aGVtZS5qc29uL2luZGV4LmpzXCIgYXMgdGhlbWU7XG5AdXNlIFwidGhlbWUuanNvblwiIGFzIHRoZW1lO1xuQHVzZSBcInNhc3M6bWFwXCI7XG5cbiRiYXNlOiAgICAgbWFwLmdldCgkY29sb3JzLCBiYXNlKTtcbiRjb250cmFzdDogbWFwLmdldCgkY29sb3JzLCBjb250cmFzdCk7XG4kcHJpbWFyeTogIG1hcC5nZXQoJGNvbG9ycywgcHJpbWFyeSk7XG4kbmV1dHJhbDogIG1hcC5nZXQoJGNvbG9ycywgbmV1dHJhbC01MDApO1xuJGFjY2VudDogICBtYXAtZ2V0LWlmKCRjb2xvcnMsICRwcmltYXJ5LCBhY2NlbnQpO1xuXG5cbi8qXG5JbXBvcnQgb3VyIGN1c3RvbSBjb250cm9sIGtleSBmb3IgZm9ybSBzdHlsaW5nIGluIHRoZW1lLmpzb24uXG5NYXliZSB1c2UgY29yZS9mb3JtLCBjb3JlL2Zvcm0taW5wdXQsIGFuZCBjb3JlL2Zvcm0tc3VibWl0LWJ1dHRvblxuaWYgdGhlIGFsbG93ZWQgYXR0cmlidXRlcyBhcmUgZW5vdWdoLlxuKi9cbiRmb3JtOiAgICAgbWFwLmdldCh0aGVtZS4kc2V0dGluZ3MsIGN1c3RvbSwgY29udHJvbCk7XG4kYnV0dG9uOiAgIG1hcC5nZXQodGhlbWUuJHN0eWxlcywgZWxlbWVudHMsIGJ1dHRvbik7XG4kaW5wdXQ6ICAgIG1hcC5nZXQodGhlbWUuJHN0eWxlcywgYmxvY2tzLCBcImNvcmUvZm9ybS1pbnB1dFwiKTtcbiRzdWJtaXQ6ICAgbWFwLmdldCh0aGVtZS4kc3R5bGVzLCBibG9ja3MsIFwiY29yZS9mb3JtLXN1Ym1pdC1idXR0b25cIik7XG5cbiRmb3JtLWZvbnQtZmFtaWx5OiAgICAgICAgICAgICAgICBtYXAuZ2V0KCRmb3JtLCB0eXBvZ3JhcGh5LCBmb250LWZhbWlseSk7XG4kZm9ybS1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgbWFwLmdldCgkZm9ybSwgdHlwb2dyYXBoeSwgZm9udC1zaXplKTtcbiRmb3JtLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgICBtYXAuZ2V0KCRmb3JtLCB0eXBvZ3JhcGh5LCBmb250LXdlaWdodCk7XG5cbiRmb3JtLWJvcmRlci1jb2xvcjogICAgICAgICAgICAgICBtYXAtZ2V0LWlmKCRmb3JtLCAkY29udHJhc3QsIFwiYm9yZGVyXCIsIGNvbG9yKTtcbiRmb3JtLWJvcmRlci13aWR0aDogICAgICAgICAgICAgICBtYXAtZ2V0LWlmKCRmb3JtLCBcIjFweFwiLCBcImJvcmRlclwiLCB3aWR0aCk7XG4kZm9ybS1ib3JkZXItcmFkaXVzOiAgICAgICAgICAgICAgbWFwLWdldC1pZigkZm9ybSwgXCIwcHhcIiwgXCJib3JkZXJcIiwgcmFkaXVzKTtcblxuJGZvcm0tb3V0bGluZS13aWR0aDogICAgICAgICAgICAgIG1hcC5nZXQoJGZvcm0sIFwiOmZvY3VzXCIsIG91dGxpbmUsIHdpZHRoKTtcblxuJGZvcm0tcGFkZGluZy10b3A6ICAgICAgICAgICAgICAgIG1hcC5nZXQoJGlucHV0LCBzcGFjaW5nLCBwYWRkaW5nLCB0b3ApO1xuJGZvcm0tcGFkZGluZy1yaWdodDogICAgICAgICAgICAgIG1hcC5nZXQoJGlucHV0LCBzcGFjaW5nLCBwYWRkaW5nLCByaWdodCk7XG4kZm9ybS1wYWRkaW5nLWJvdHRvbTogICAgICAgICAgICAgbWFwLmdldCgkaW5wdXQsIHNwYWNpbmcsIHBhZGRpbmcsIGJvdHRvbSk7XG4kZm9ybS1wYWRkaW5nLWxlZnQ6ICAgICAgICAgICAgICAgbWFwLmdldCgkaW5wdXQsIHNwYWNpbmcsIHBhZGRpbmcsIGxlZnQpO1xuXG4kZm9ybS1jb2xvci1iYWNrZ3JvdW5kOiAgICAgICAgICAgbWFwLmdldCgkZm9ybSwgY29sb3IsIGJhY2tncm91bmQpO1xuJGZvcm0tY29sb3ItdGV4dDogICAgICAgICAgICAgICAgIG1hcC5nZXQoJGZvcm0sIGNvbG9yLCB0ZXh0KTtcblxuJGZvcm0tZm9jdXMtY29sb3ItYmFja2dyb3VuZDogICAgIGNvbG9yLW1peChpbiBzcmdiLCAjeyRmb3JtLWNvbG9yLWJhY2tncm91bmR9IDk1JSwgI2ZmZik7XG4kZm9ybS1mb2N1cy1jb2xvci10ZXh0OiAgICAgICAgICAgbWFwLmdldCgkZm9ybSwgXCI6Zm9jdXNcIiwgY29sb3IsIHRleHQpO1xuJGZvcm0tZm9jdXMtYm9yZGVyLWNvbG9yOiAgICAgICAgIG1hcC5nZXQoJGZvcm0sIFwiOmZvY3VzXCIsIGJvcmRlciwgY29sb3IpO1xuJGZvcm0tZm9jdXMtb3V0bGluZS1jb2xvcjogICAgICAgIG1hcC5nZXQoJGZvcm0sIFwiOmZvY3VzXCIsIG91dGxpbmUsIGNvbG9yKTtcblxuJGZvcm0tZGlzYWJsZWQtY29sb3ItYmFja2dyb3VuZDogIG1hcC5nZXQoJGZvcm0sIFwiOmRpc2FibGVkXCIsIGNvbG9yLCBiYWNrZ3JvdW5kKTtcbiRmb3JtLWRpc2FibGVkLWNvbG9yLXRleHQ6ICAgICAgICBtYXAuZ2V0KCRmb3JtLCBcIjpkaXNhYmxlZFwiLCBjb2xvciwgdGV4dCk7XG4kZm9ybS1kaXNhYmxlZC1ib3JkZXItY29sb3I6ICAgICAgbWFwLmdldCgkZm9ybSwgXCI6ZGlzYWJsZWRcIiwgYm9yZGVyLCBjb2xvcik7XG5cbiRmb3JtLXBsYWNlaG9sZGVyLWNvbG9yOiAgICAgICAgICBtYXAtZ2V0LWlmKCRmb3JtLCAkbmV1dHJhbCwgXCJwbGFjZWhvbGRlclwiKTtcblxuJGZvcm0tc2VsZWN0LXBhZGRpbmctcmlnaHQ6ICAgICAgICRmb3JtLXBhZGRpbmctcmlnaHQ7XG5cbiRmb3JtLWRhdGFsaXN0LXBhZGRpbmctcmlnaHQ6ICAgICAkZm9ybS1wYWRkaW5nLXJpZ2h0O1xuXG4kZm9ybS1yYWRpby1zaXplOiAgICAgICAgICAgICAgICAgMjRweDtcblxuJGZvcm0tbGVnZW5kLWZvbnQtc2l6ZTogICAgICAgICAgIG1hcC5nZXQoJGZvcm0sIGxlZ2VuZCwgdHlwb2dyYXBoeSwgZm9udC1zaXplKTtcblxuJGZvcm0tbGFiZWwtY29sb3I6ICAgICAgICAgICAgICAgIG1hcC5nZXQoJGZvcm0sIGxhYmVsLCBjb2xvciwgdGV4dCk7XG4kZm9ybS1sYWJlbC1mb250LXNpemU6ICAgICAgICAgICAgbWFwLmdldCgkZm9ybSwgbGFiZWwsIHR5cG9ncmFwaHksIGZvbnQtc2l6ZSk7XG5cbiRmb3JtLWludmFsaWQtY29sb3ItdGV4dDogICAgICAgICBtYXAuZ2V0KCRjb2xvcnMsIHdhcm5pbmcpO1xuJGZvcm0taW52YWxpZC1jb2xvci1iYWNrZ3JvdW5kOiAgIGNvbG9yLW1peChpbiBzcmdiLCAjeyRmb3JtLWludmFsaWQtY29sb3ItdGV4dH0gOTUlLCAjZmZmKTtcbiRmb3JtLWludmFsaWQtYm9yZGVyLWNvbG9yOiAgICAgICBtYXAuZ2V0KCRjb2xvcnMsIHdhcm5pbmcpO1xuJGZvcm0taW52YWxpZC1vdXRsaW5lLWNvbG9yOiAgICAgIGNvbG9yLW1peChpbiBzcmdiLCAjeyRmb3JtLWludmFsaWQtY29sb3ItdGV4dH0gOTUlLCAjZmZmKTtcblxuJGZvcm0tdmFsaWQtY29sb3ItdGV4dDogICAgICAgICAgIG1hcC5nZXQoJGNvbG9ycywgc3VjY2Vzcyk7XG4kZm9ybS12YWxpZC1jb2xvci1iYWNrZ3JvdW5kOiAgICAgY29sb3ItbWl4KGluIHNyZ2IsICN7JGZvcm0tdmFsaWQtY29sb3ItdGV4dH0gICA5NSUsICNmZmYpO1xuJGZvcm0tdmFsaWQtYm9yZGVyLWNvbG9yOiAgICAgICAgIG1hcC5nZXQoJGNvbG9ycywgc3VjY2Vzcyk7XG4kZm9ybS12YWxpZC1vdXRsaW5lLWNvbG9yOiAgICAgICAgY29sb3ItbWl4KGluIHNyZ2IsICN7JGZvcm0tdmFsaWQtY29sb3ItdGV4dH0gICA5NSUsICNmZmYpO1xuXG4kYnV0dG9uLWNvbG9yLXRleHQ6ICAgICAgICAgICAgICAgbWFwLmdldCgkYnV0dG9uLCBjb2xvciwgdGV4dCk7XG4kYnV0dG9uLWNvbG9yLWJhY2tncm91bmQ6ICAgICAgICAgbWFwLmdldCgkYnV0dG9uLCBjb2xvciwgYmFja2dyb3VuZCk7XG4kYnV0dG9uLWZvbnQtZmFtaWx5OiAgICAgICAgICAgICAgbWFwLmdldCgkYnV0dG9uLCB0eXBvZ3JhcGh5LCBmb250LWZhbWlseSk7XG4kYnV0dG9uLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgbWFwLmdldCgkYnV0dG9uLCB0eXBvZ3JhcGh5LCBmb250LXdlaWdodCk7XG4kYnV0dG9uLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgbWFwLmdldCgkYnV0dG9uLCB0eXBvZ3JhcGh5LCBmb250LXNpemUpO1xuJGJ1dHRvbi10ZXh0LXRyYW5zZm9ybTogICAgICAgICAgIG1hcC5nZXQoJGJ1dHRvbiwgdHlwb2dyYXBoeSwgdGV4dC10cmFuc2Zvcm0pO1xuJGJ1dHRvbi1ib3JkZXItY29sb3I6ICAgICAgICAgICAgIG1hcC5nZXQoJGJ1dHRvbiwgYm9yZGVyLCBjb2xvcik7XG4kYnV0dG9uLWJvcmRlci13aWR0aDogICAgICAgICAgICAgbWFwLmdldCgkYnV0dG9uLCBib3JkZXIsIHdpZHRoKTtcbiRidXR0b24tYm9yZGVyLXJhZGl1czogICAgICAgICAgICBtYXAuZ2V0KCRidXR0b24sIGJvcmRlciwgc2l6ZSk7XG4kYnV0dG9uLXBhZGRpbmctdG9wOiAgICAgICAgICAgICAgbWFwLmdldCgkYnV0dG9uLCBzcGFjaW5nLCBwYWRkaW5nLCB0b3ApO1xuJGJ1dHRvbi1wYWRkaW5nLXJpZ2h0OiAgICAgICAgICAgIG1hcC5nZXQoJGJ1dHRvbiwgc3BhY2luZywgcGFkZGluZywgcmlnaHQpO1xuJGJ1dHRvbi1wYWRkaW5nLWJvdHRvbTogICAgICAgICAgIG1hcC5nZXQoJGJ1dHRvbiwgc3BhY2luZywgcGFkZGluZywgYm90dG9tKTtcbiRidXR0b24tcGFkZGluZy1sZWZ0OiAgICAgICAgICAgICBtYXAuZ2V0KCRidXR0b24sIHNwYWNpbmcsIHBhZGRpbmcsIGxlZnQpO1xuXG4kZm9ybS1idXR0b24tY29sb3ItdGV4dDogICAgICAgICAgbWFwLWdldC1pZigkc3VibWl0LCAkYnV0dG9uLWNvbG9yLXRleHQsIGNvbG9yLCB0ZXh0KTtcbiRmb3JtLWJ1dHRvbi1jb2xvci1iYWNrZ3JvdW5kOiAgICBtYXAtZ2V0LWlmKCRzdWJtaXQsICRidXR0b24tY29sb3ItYmFja2dyb3VuZCwgY29sb3IsIGJhY2tncm91bmQpO1xuXG4kZm9ybS1idXR0b24taG92ZXItY29sb3ItdGV4dDogICAgICAgICAgbWFwLWdldC1pZigkc3VibWl0LCAkZm9ybS1idXR0b24tY29sb3ItdGV4dCwgJzpob3ZlcicsIGNvbG9yLCB0ZXh0KTtcbiRmb3JtLWJ1dHRvbi1ob3Zlci1jb2xvci1iYWNrZ3JvdW5kOiAgICBtYXAtZ2V0LWlmKCRzdWJtaXQsICRmb3JtLWJ1dHRvbi1jb2xvci1iYWNrZ3JvdW5kLCAnOmhvdmVyJywgY29sb3IsIGJhY2tncm91bmQpO1xuXG4kZm9ybS1idXR0b24tZm9udC1mYW1pbHk6ICAgICAgICAgbWFwLWdldC1pZigkc3VibWl0LCAkYnV0dG9uLWZvbnQtZmFtaWx5LCB0eXBvZ3JhcGh5LCBmb250LWZhbWlseSk7XG4kZm9ybS1idXR0b24tZm9udC13ZWlnaHQ6ICAgICAgICAgbWFwLWdldC1pZigkc3VibWl0LCAkYnV0dG9uLWZvbnQtd2VpZ2h0LCB0eXBvZ3JhcGh5LCBmb250LXdlaWdodCk7XG4kZm9ybS1idXR0b24tZm9udC1zaXplOiAgICAgICAgICAgbWFwLWdldC1pZigkc3VibWl0LCAkYnV0dG9uLWZvbnQtc2l6ZSwgdHlwb2dyYXBoeSwgZm9udC1zaXplKTtcbiRmb3JtLWJ1dHRvbi10ZXh0LXRyYW5zZm9ybTogICAgICBtYXAtZ2V0LWlmKCRzdWJtaXQsICRidXR0b24tdGV4dC10cmFuc2Zvcm0sIHR5cG9ncmFwaHksIHRleHQtdHJhbnNmb3JtKTtcblxuJGZvcm0tYnV0dG9uLWJvcmRlci1jb2xvcjogICAgICAgIG1hcC1nZXQtaWYoJHN1Ym1pdCwgJGJ1dHRvbi1ib3JkZXItY29sb3IsIGJvcmRlciwgY29sb3IpO1xuJGZvcm0tYnV0dG9uLWJvcmRlci13aWR0aDogICAgICAgIG1hcC1nZXQtaWYoJHN1Ym1pdCwgJGJ1dHRvbi1ib3JkZXItd2lkdGgsIGJvcmRlciwgd2lkdGgpO1xuJGZvcm0tYnV0dG9uLWJvcmRlci1yYWRpdXM6ICAgICAgIG1hcC1nZXQtaWYoJHN1Ym1pdCwgJGJ1dHRvbi1ib3JkZXItcmFkaXVzLCBib3JkZXIsIHJhZGl1cyk7XG5cbiRmb3JtLWJ1dHRvbi1wYWRkaW5nLXRvcDogICAgICAgICBtYXAtZ2V0LWlmKCRzdWJtaXQsICRidXR0b24tcGFkZGluZy10b3AsIHBhZGRpbmcsIHRvcCk7XG4kZm9ybS1idXR0b24tcGFkZGluZy1yaWdodDogICAgICAgbWFwLWdldC1pZigkc3VibWl0LCAkYnV0dG9uLXBhZGRpbmctcmlnaHQsIHBhZGRpbmcsIHJpZ2h0KTtcbiRmb3JtLWJ1dHRvbi1wYWRkaW5nLWJvdHRvbTogICAgICBtYXAtZ2V0LWlmKCRzdWJtaXQsICRidXR0b24tcGFkZGluZy1ib3R0b20sIHBhZGRpbmcsIGJvdHRvbSk7XG4kZm9ybS1idXR0b24tcGFkZGluZy1sZWZ0OiAgICAgICAgbWFwLWdldC1pZigkc3VibWl0LCAkYnV0dG9uLXBhZGRpbmctbGVmdCwgcGFkZGluZywgbGVmdCk7XG5cbi8qXG5TVkcgaW1hZ2VzIGZvciByYWRpb3MsIGNoZWNrYm94ZXMsIHNlbGVjdHMsIGFuZCBkYXRhbGlzdHMuXG4qL1xuJGludGVybmFsLXJhZGlvLWltYWdlOiAgICAgICAgICAgICAgICAgIFwiZmVhdGhlci1pY29ucy9kaXN0L2ljb25zL2NpcmNsZS5zdmdcIjtcbiRpbnRlcm5hbC1yYWRpby1jaGVja2VkLWltYWdlOiAgICAgICAgICBcImZlYXRoZXItaWNvbnMvZGlzdC9pY29ucy9jaGVjay1jaXJjbGUuc3ZnXCI7XG4kaW50ZXJuYWwtY2hlY2tib3gtaW1hZ2U6ICAgICAgICAgICAgICAgXCJmZWF0aGVyLWljb25zL2Rpc3QvaWNvbnMvc3F1YXJlLnN2Z1wiO1xuJGludGVybmFsLWNoZWNrYm94LWNoZWNrZWQtaW1hZ2U6ICAgICAgIFwiZmVhdGhlci1pY29ucy9kaXN0L2ljb25zL2NoZWNrLXNxdWFyZS5zdmdcIjtcbiRpbnRlcm5hbC1jaGVja2JveC1pbmRldGVybWluYXRlLWltYWdlOiBcImZlYXRoZXItaWNvbnMvZGlzdC9pY29ucy9taW51cy1zcXVhcmUuc3ZnXCI7XG4kaW50ZXJuYWwtc2VsZWN0LWltYWdlOiAgICAgICAgICAgICAgICAgXCJmZWF0aGVyLWljb25zL2Rpc3QvaWNvbnMvY2hldnJvbi1kb3duLnN2Z1wiO1xuJGludGVybmFsLWRhdGFsaXN0LWltYWdlOiAgICAgICAgICAgICAgIFwiZmVhdGhlci1pY29ucy9kaXN0L2ljb25zL2NoZXZyb24tZG93bi5zdmdcIjtcbiIsIi8vLy9cbi8vLyBQbGFjZWhvbGRlcnNcbi8vLyBUaGlzIGZpbGUgc2hvdWxkIG5vdCBiZSBlZGl0ZWQuXG4vLy8gQGdyb3VwIHRyb2xsZXlcbi8vLy9cblxuQHVzZSBcImFic3RyYWN0cy9mdW5jdGlvbnNcIiBhcyAqO1xuQHVzZSBcImFic3RyYWN0cy92YXJpYWJsZXNcIiBhcyAqO1xuQHVzZSBcImFic3RyYWN0cy92YXJpYWJsZXMuZm9ybXNcIiBhcyAqO1xuQHVzZSAnc2FzczptYXAnO1xuXG4lc2NyZWVuLXJlYWRlci10ZXh0IHtcblx0cG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG5cdHdpZHRoOiAxcHg7XG5cdGhlaWdodDogMXB4O1xuXHRwYWRkaW5nOiAwO1xuXHRtYXJnaW46IC0xcHg7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdGNsaXA6IHJlY3QoMXB4LCAxcHgsIDFweCwgMXB4KTtcblx0Y2xpcC1wYXRoOiBpbnNldCg1MCUpO1xuXHR3b3JkLXdyYXA6IG5vcm1hbCAhaW1wb3J0YW50O1xuXHRib3JkZXI6IDA7XG59XG5cbiVpY29uIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHR3aWR0aDogMWVtO1xuXHRoZWlnaHQ6IDFlbTtcblx0Y29udGVudDogJyc7XG5cdGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRDb2xvcjtcblx0bWFzazoge1xuXHRcdHJlcGVhdDogbm8tcmVwZWF0O1xuXHRcdHBvc2l0aW9uOiBjZW50ZXI7XG5cdFx0c2l6ZTogY29udGFpbjtcblx0fVxufVxuXG4vKlxuQWRkIHJpZ2h0IGFycm93IHRvIGJ1dHRvbnMuXG4qL1xuJWFycm93LWJ1dHRvbiB7XG5cdCRpY29uLWNvbG9yOiBtYXAuZ2V0KCRjb2xvcnMsIHByaW1hcnkpICFkZWZhdWx0O1xuXHQkaWNvbi1ob3Zlci1jb2xvcjogbWFwLmdldCgkY29sb3JzLCBjb250cmFzdCkgIWRlZmF1bHQ7XG5cdCRpY29uLXNpemU6IDIycHggIWRlZmF1bHQ7XG5cdCRpY29uLXNwYWNpbmc6IDhweCAhZGVmYXVsdDtcblxuXHQvLyBTaG93IHRoZSBpY29uIG9ubHkgYWZ0ZXIgdGhlIG1vYmlsZSBicmVha3BvaW50LlxuXHRAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiBicmVha3BvaW50KFwibW9iaWxlXCIpKSB7XG5cblx0XHRiYWNrZ3JvdW5kOiB7XG5cdFx0XHRwb3NpdGlvbjogY2FsYygxMDAlIC0gI3skZm9ybS1wYWRkaW5nLXJpZ2h0fSArICN7JGljb24tc3BhY2luZ30pIGNhbGMoNTAlIC0gMXB4KTtcblx0XHRcdGltYWdlOiBzdmctbG9hZChcImZlYXRoZXItaWNvbnMvZGlzdC9pY29ucy9hcnJvdy1yaWdodC5zdmdcIiwgJHN0cm9rZTokaWNvbi1jb2xvcik7XG5cdFx0XHRyZXBlYXQ6IG5vLXJlcGVhdDtcblx0XHRcdHNpemU6ICRpY29uLXNpemU7XG5cdFx0fVxuXG5cdFx0cGFkZGluZy1yaWdodDogY2FsYygjeyRmb3JtLXBhZGRpbmctcmlnaHR9ICsgI3skaWNvbi1zaXplfSArICN7JGljb24tc3BhY2luZ30pO1xuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiBzdmctbG9hZChcImZlYXRoZXItaWNvbnMvZGlzdC9pY29ucy9hcnJvdy1yaWdodC5zdmdcIiwgJHN0cm9rZTokaWNvbi1ob3Zlci1jb2xvcik7XG5cdFx0fVxuXG5cdH1cbn1cbiIsIi8qISBtb2Rlcm4tbm9ybWFsaXplIHYyLjAuMCB8IE1JVCBMaWNlbnNlIHwgaHR0cHM6Ly9naXRodWIuY29tL3NpbmRyZXNvcmh1cy9tb2Rlcm4tbm9ybWFsaXplICovXG5cbi8qXG5Eb2N1bWVudFxuPT09PT09PT1cbiovXG5cbi8qKlxuVXNlIGEgYmV0dGVyIGJveCBtb2RlbCAob3BpbmlvbmF0ZWQpLlxuKi9cblxuKixcbjo6YmVmb3JlLFxuOjphZnRlciB7XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbmh0bWwge1xuXHQvKiBJbXByb3ZlIGNvbnNpc3RlbmN5IG9mIGRlZmF1bHQgZm9udHMgaW4gYWxsIGJyb3dzZXJzLiAoaHR0cHM6Ly9naXRodWIuY29tL3NpbmRyZXNvcmh1cy9tb2Rlcm4tbm9ybWFsaXplL2lzc3Vlcy8zKSAqL1xuXHRmb250LWZhbWlseTpcblx0XHRzeXN0ZW0tdWksXG5cdFx0J1NlZ29lIFVJJyxcblx0XHRSb2JvdG8sXG5cdFx0SGVsdmV0aWNhLFxuXHRcdEFyaWFsLFxuXHRcdHNhbnMtc2VyaWYsXG5cdFx0J0FwcGxlIENvbG9yIEVtb2ppJyxcblx0XHQnU2Vnb2UgVUkgRW1vamknO1xuXHRsaW5lLWhlaWdodDogMS4xNTsgLyogMS4gQ29ycmVjdCB0aGUgbGluZSBoZWlnaHQgaW4gYWxsIGJyb3dzZXJzLiAqL1xuXHQtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIuIFByZXZlbnQgYWRqdXN0bWVudHMgb2YgZm9udCBzaXplIGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZXMgaW4gaU9TLiAqL1xuXHQtbW96LXRhYi1zaXplOiA0OyAvKiAzLiBVc2UgYSBtb3JlIHJlYWRhYmxlIHRhYiBzaXplIChvcGluaW9uYXRlZCkuICovXG5cdHRhYi1zaXplOiA0OyAvKiAzICovXG59XG5cbi8qXG5TZWN0aW9uc1xuPT09PT09PT1cbiovXG5cbmJvZHkge1xuXHRtYXJnaW46IDA7IC8qIFJlbW92ZSB0aGUgbWFyZ2luIGluIGFsbCBicm93c2Vycy4gKi9cbn1cblxuLypcbkdyb3VwaW5nIGNvbnRlbnRcbj09PT09PT09PT09PT09PT1cbiovXG5cbi8qKlxuMS4gQWRkIHRoZSBjb3JyZWN0IGhlaWdodCBpbiBGaXJlZm94LlxuMi4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2Ugb2YgYm9yZGVyIGNvbG9yIGluIEZpcmVmb3guIChodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTA2NTUpXG4qL1xuXG5ociB7XG5cdGhlaWdodDogMDsgLyogMSAqL1xuXHRjb2xvcjogaW5oZXJpdDsgLyogMiAqL1xufVxuXG4vKlxuVGV4dC1sZXZlbCBzZW1hbnRpY3Ncbj09PT09PT09PT09PT09PT09PT09XG4qL1xuXG4vKipcbkFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxuKi9cblxuYWJiclt0aXRsZV0ge1xuXHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XG59XG5cbi8qKlxuQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIEVkZ2UgYW5kIFNhZmFyaS5cbiovXG5cbmIsXG5zdHJvbmcge1xuXHRmb250LXdlaWdodDogYm9sZGVyO1xufVxuXG4vKipcbjEuIEltcHJvdmUgY29uc2lzdGVuY3kgb2YgZGVmYXVsdCBmb250cyBpbiBhbGwgYnJvd3NlcnMuIChodHRwczovL2dpdGh1Yi5jb20vc2luZHJlc29yaHVzL21vZGVybi1ub3JtYWxpemUvaXNzdWVzLzMpXG4yLiBDb3JyZWN0IHRoZSBvZGQgJ2VtJyBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4qL1xuXG5jb2RlLFxua2JkLFxuc2FtcCxcbnByZSB7XG5cdGZvbnQtZmFtaWx5OlxuXHRcdHVpLW1vbm9zcGFjZSxcblx0XHRTRk1vbm8tUmVndWxhcixcblx0XHRDb25zb2xhcyxcblx0XHQnTGliZXJhdGlvbiBNb25vJyxcblx0XHRNZW5sbyxcblx0XHRtb25vc3BhY2U7IC8qIDEgKi9cblx0Zm9udC1zaXplOiAxZW07IC8qIDIgKi9cbn1cblxuLyoqXG5BZGQgdGhlIGNvcnJlY3QgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiovXG5cbnNtYWxsIHtcblx0Zm9udC1zaXplOiA4MCU7XG59XG5cbi8qKlxuUHJldmVudCAnc3ViJyBhbmQgJ3N1cCcgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluIGFsbCBicm93c2Vycy5cbiovXG5cbnN1YixcbnN1cCB7XG5cdGZvbnQtc2l6ZTogNzUlO1xuXHRsaW5lLWhlaWdodDogMDtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnN1YiB7XG5cdGJvdHRvbTogLTAuMjVlbTtcbn1cblxuc3VwIHtcblx0dG9wOiAtMC41ZW07XG59XG5cbi8qXG5UYWJ1bGFyIGRhdGFcbj09PT09PT09PT09PVxuKi9cblxuLyoqXG4xLiBSZW1vdmUgdGV4dCBpbmRlbnRhdGlvbiBmcm9tIHRhYmxlIGNvbnRlbnRzIGluIENocm9tZSBhbmQgU2FmYXJpLiAoaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9OTk5MDg4LCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAxMjk3KVxuMi4gQ29ycmVjdCB0YWJsZSBib3JkZXIgY29sb3IgaW5oZXJpdGFuY2UgaW4gQ2hyb21lIGFuZCBTYWZhcmkuIChodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hyb21pdW0vaXNzdWVzL2RldGFpbD9pZD05MzU3MjksIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTUwMTYpXG4qL1xuXG50YWJsZSB7XG5cdHRleHQtaW5kZW50OiAwOyAvKiAxICovXG5cdGJvcmRlci1jb2xvcjogaW5oZXJpdDsgLyogMiAqL1xufVxuXG4vKlxuRm9ybXNcbj09PT09XG4qL1xuXG4vKipcbjEuIENoYW5nZSB0aGUgZm9udCBzdHlsZXMgaW4gYWxsIGJyb3dzZXJzLlxuMi4gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gRmlyZWZveCBhbmQgU2FmYXJpLlxuKi9cblxuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcblx0Zm9udC1mYW1pbHk6IGluaGVyaXQ7IC8qIDEgKi9cblx0Zm9udC1zaXplOiAxMDAlOyAvKiAxICovXG5cdGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAxICovXG5cdG1hcmdpbjogMDsgLyogMiAqL1xufVxuXG4vKipcblJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRWRnZSBhbmQgRmlyZWZveC5cbiovXG5cbmJ1dHRvbixcbnNlbGVjdCB7XG5cdHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vKipcbkNvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4qL1xuXG5idXR0b24sXG5bdHlwZT0nYnV0dG9uJ10sXG5bdHlwZT0ncmVzZXQnXSxcblt0eXBlPSdzdWJtaXQnXSB7XG5cdC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xufVxuXG4vKipcblJlbW92ZSB0aGUgaW5uZXIgYm9yZGVyIGFuZCBwYWRkaW5nIGluIEZpcmVmb3guXG4qL1xuXG46Oi1tb3otZm9jdXMtaW5uZXIge1xuXHRib3JkZXItc3R5bGU6IG5vbmU7XG5cdHBhZGRpbmc6IDA7XG59XG5cbi8qKlxuUmVzdG9yZSB0aGUgZm9jdXMgc3R5bGVzIHVuc2V0IGJ5IHRoZSBwcmV2aW91cyBydWxlLlxuKi9cblxuOi1tb3otZm9jdXNyaW5nIHtcblx0b3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0O1xufVxuXG4vKipcblJlbW92ZSB0aGUgYWRkaXRpb25hbCAnOmludmFsaWQnIHN0eWxlcyBpbiBGaXJlZm94LlxuU2VlOiBodHRwczovL2dpdGh1Yi5jb20vbW96aWxsYS9nZWNrby1kZXYvYmxvYi8yZjllYWNkOWQzZDk5NWM5MzdiNDI1MWE1NTU3ZDk1ZDQ5NGM5YmUxL2xheW91dC9zdHlsZS9yZXMvZm9ybXMuY3NzI0w3MjgtTDczN1xuKi9cblxuOi1tb3otdWktaW52YWxpZCB7XG5cdGJveC1zaGFkb3c6IG5vbmU7XG59XG5cbi8qKlxuUmVtb3ZlIHRoZSBwYWRkaW5nIHNvIGRldmVsb3BlcnMgYXJlIG5vdCBjYXVnaHQgb3V0IHdoZW4gdGhleSB6ZXJvIG91dCAnZmllbGRzZXQnIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cbiovXG5cbmxlZ2VuZCB7XG5cdHBhZGRpbmc6IDA7XG59XG5cbi8qKlxuQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUgYW5kIEZpcmVmb3guXG4qL1xuXG5wcm9ncmVzcyB7XG5cdHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuLyoqXG5Db3JyZWN0IHRoZSBjdXJzb3Igc3R5bGUgb2YgaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgYnV0dG9ucyBpbiBTYWZhcmkuXG4qL1xuXG46Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG46Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuXHRoZWlnaHQ6IGF1dG87XG59XG5cbi8qKlxuMS4gQ29ycmVjdCB0aGUgb2RkIGFwcGVhcmFuY2UgaW4gQ2hyb21lIGFuZCBTYWZhcmkuXG4yLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cbiovXG5cblt0eXBlPSdzZWFyY2gnXSB7XG5cdC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiAxICovXG5cdG91dGxpbmUtb2Zmc2V0OiAtMnB4OyAvKiAyICovXG59XG5cbi8qKlxuUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIG1hY09TLlxuKi9cblxuOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcblx0LXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4vKipcbjEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4yLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvICdpbmhlcml0JyBpbiBTYWZhcmkuXG4qL1xuXG46Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcblx0LXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDEgKi9cblx0Zm9udDogaW5oZXJpdDsgLyogMiAqL1xufVxuXG4vKlxuSW50ZXJhY3RpdmVcbj09PT09PT09PT09XG4qL1xuXG4vKlxuQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gQ2hyb21lIGFuZCBTYWZhcmkuXG4qL1xuXG5zdW1tYXJ5IHtcblx0ZGlzcGxheTogbGlzdC1pdGVtO1xufVxuIiwiLy8vL1xuLy8vIFN0eWxlcyByZXNldC5cbi8vLyBAZ3JvdXAgdHJvbGxleVxuLy8vL1xuXG5AdXNlIFwibW9kZXJuLW5vcm1hbGl6ZS9tb2Rlcm4tbm9ybWFsaXplLmNzc1wiO1xuQHVzZSBcImFic3RyYWN0cy9mdW5jdGlvbnNcIiBhcyAqO1xuXG46cm9vdCB7XG5cdGxpbmUtaGVpZ2h0OiAxLjU7XG59XG5cbmh0bWwge1xuXHRzY3JvbGwtYmVoYXZpb3I6IHNtb290aDtcblx0LXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG5cblx0Ly8gLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbn1cblxuLy8gV2hlbiBmcm9udC1lbmQgc3R5bGVzIGFyZSBsb2FkZWQgaW4gYWRtaW4sIGJveC1zaXppbmcgb24gZXZlcnl0aGluZyBicmVha3MgdGhlIGxheW91dC5cbmJvZHkud3AtYWRtaW4ge1xuXHQqLCAqOjpiZWZvcmUsICo6OmFmdGVyIHtcblx0XHRib3gtc2l6aW5nOiByZXZlcnQ7XG5cdH1cbn1cblxuaDEsXG5oMixcbmgzLFxuaDQsXG5oNSB7XG5cdHdvcmQtYnJlYWs6IGtlZXAtYWxsO1xufVxuXG4vLyBGaXggQ2hyb21lIGJ1Zy5cbmltZ1tzdHlsZSo9XCJhc3BlY3QtcmF0aW9cIl0sXG5maWd1cmVbc3R5bGUqPVwiYXNwZWN0LXJhdGlvXCJdIHtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuaW1nIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdG1heC1pbmxpbmUtc2l6ZTogMTAwJTtcbn1cblxuLy8vIEZvcm1zXG5cbi8vIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UuXG5pbnB1dCB7XG5cdG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4vKipcbjEuIEZpeCBoZWlnaHQgZGlmZmVyZW5jZSB3aXRoIGlucHV0cyBvZiBzYW1lIGxpbmUtaGVpZ2h0IGFuZCBwYWRkaW5nLlxuMi4gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBGaXJlZm94LlxuKi9cbnNlbGVjdCB7XG5cdHRleHQtdHJhbnNmb3JtOiBub25lOyAvKiAyICovXG5cdGFwcGVhcmFuY2U6IG5vbmU7IC8qIDEgKi9cbn1cblxuLy8gUmVtb3ZlIHRoZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSAxMCsuXG50ZXh0YXJlYSB7XG5cdG92ZXJmbG93OiBhdXRvO1xufVxuXG4vLyBJbXByb3ZlcyBjb25zaXN0ZW5jeSBvZiBjdXJzb3Igc3R5bGUgZm9yIGNsaWNrYWJsZSBlbGVtZW50c1xuW3R5cGU9XCJyYWRpb1wiXTpub3QoOmRpc2FibGVkKSxcblt0eXBlPVwiY2hlY2tib3hcIl06bm90KDpkaXNhYmxlZCkge1xuXHRjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi8vIERlZmluZSBjb25zaXN0ZW50IGJvcmRlciwgbWFyZ2luLCBhbmQgcGFkZGluZy5cbmZpZWxkc2V0IHtcblx0cGFkZGluZzogMDtcblx0bWFyZ2luOiAwO1xuXHRib3JkZXI6IG5vbmU7XG59XG5cbi8vIFJlbW92ZSBkZWZhdWx0IHN0eWxlIGluIGlPUy5cbmlucHV0LFxudGV4dGFyZWEge1xuXHRhcHBlYXJhbmNlOiBub25lO1xufVxuXG4vLyBSZW1vdmUgZGVmYXVsdCBzdHlsZSBpbiBDaHJvbWUuXG4vLyBpbnB1dFtsaXN0XTo6LXdlYmtpdC1jYWxlbmRhci1waWNrZXItaW5kaWNhdG9yIHtcbi8vIFx0ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuLy8gfVxuXG4vLyBVc2UgV1AgdmFyaWFibGVzLlxuYixcbnN0cm9uZyB7XG5cdGZvbnQtd2VpZ2h0OiB3cChmb250LXdlaWdodCwgYm9sZCk7XG59XG5cbmtiZCwgY29kZSwgc2FtcCwgcHJlIHtcblx0Zm9udC1zaXplOiAwLjg4ODllbTtcblx0dGV4dC13cmFwLW1vZGU6IG5vd3JhcDtcblx0d2hpdGUtc3BhY2UtY29sbGFwc2U6IHByZXNlcnZlLXNwYWNlcztcbn1cblxuY29kZSB7XG5cdHBhZGRpbmctbGVmdDogMDtcblx0b3ZlcmZsb3cteDogaW5pdGlhbDtcblx0Ym9yZGVyOiBub25lO1xufVxuXG4vLyBOb3JtYWxpemUgdW5kZXJsaW5lLlxuYSB7XG5cdHRleHQtdW5kZXJsaW5lLW9mZnNldDogMC4xNWVtO1xufVxuXG5bc3R5bGUqPVwidW5kZXJsaW5lXCJdIHtcblx0dGV4dC1kZWNvcmF0aW9uOiB7XG5cdFx0dGhpY2tuZXNzOiAxcHggIWltcG9ydGFudDtcblx0XHRjb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIGN1cnJlbnRDb2xvciA1MCUsIHRyYW5zcGFyZW50KSAhaW1wb3J0YW50O1xuXHR9XG59XG5cbjpmb2N1cy12aXNpYmxlIHtcblx0b3V0bGluZTogd3AoY29sb3IsIGZvY3VzKSBzb2xpZCAxLjVweDtcblx0b3V0bGluZS1vZmZzZXQ6IDAuNWVtO1xufVxuIiwiLyogVXRpbGl0eVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5AdXNlIFwic2FzczptYXBcIjtcbkB1c2UgXCJzYXNzOmxpc3RcIjtcbkB1c2UgXCJhYnN0cmFjdHMvdmFyaWFibGVzXCI7XG5AdXNlIFwiYWJzdHJhY3RzL2Z1bmN0aW9uc1wiIGFzICo7XG5cbi8vIC5pcy10b2dnbGUtdGFyZ2V0IHtcbi8vIFx0dHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzIGVhc2U7XG5cbi8vIFx0Jjpub3QoLmlzLXRvZ2dsZWQtb24pIHtcbi8vIFx0XHRkaXNwbGF5OiBub25lO1xuLy8gXHRcdG9wYWNpdHk6IDA7XG4vLyBcdH1cbi8vIH1cblxuLy8gVW5zdHlsZWQgY2xhc3MgZm9yIGhlYWRpbmdzLlxuLnVuc3R5bGVkIHtcblx0bWFyZ2luOiAwO1xuXHRmb250LXNpemU6IDFlbTtcblx0bGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cblxuYVtkYXRhLXRhcmdldF0ge1xuXHRjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5pcy1zdHlsZS11cHBlcmNhc2Uge1xuXHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4uaXMtc3R5bGUtd2hpdGUtc3BhY2Utbm93cmFwIHtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmlzLXN0eWxlLWZpbHRlci1pbnZlcnQge1xuXHRmaWx0ZXI6IGludmVydCgxKTtcbn1cblxuLmhhcy1kZWZhdWx0LXRyYW5zaXRpb24ge1xuXHR0cmFuc2l0aW9uLWR1cmF0aW9uOiAyMDBtcztcblx0dHJhbnNpdGlvbi1wcm9wZXJ0eTogYWxsO1xufVxuXG4uaXMtc3R5bGUtZmFkZW91dCB7XG5cdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRvcGFjaXR5OiAwICFpbXBvcnRhbnQ7XG5cdHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuXHR0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5O1xufVxuXG4uaXMtc3R5bGUtZmFkZWluIHtcblx0cG9pbnRlci1ldmVudHM6IGF1dG8gIWltcG9ydGFudDtcblx0b3BhY2l0eTogMSAhaW1wb3J0YW50O1xuXHR0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcblx0dHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eTtcbn1cblxuLy8gLmlzLWxheW91dC1mbGV4IGhlcmUgb25seSB0byBvdmVycmlkZSBuYXRpdmUgV29yZFByZXNzOiBib2R5IC5pcy1sYXlvdXQtZmxleCA+ICpcbi5pcy1sYXlvdXQtZmxleCA+IC5pcy1tYXJnaW4taW5saW5lLWF1dG8ge1xuXHRtYXJnaW4taW5saW5lLXN0YXJ0OiBhdXRvO1xufVxuXG4uaXMtcG9zaXRpb24tYWJzb2x1dGUge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG59XG5cbi5pcy10b3Age1xuXHR0b3A6IDA7XG59XG5cbi5pcy1mbGV4LW5vbmUge1xuXHRmbGV4OiAwO1xufVxuXG4ubm8tZmxleC1zaHJpbmsge1xuXHRmbGV4LXNocmluazogMDtcbn1cblxuW3N0eWxlKj1cInZhcigtLXdwLS1wcmVzZXQtLXNwYWNpbmctLW92ZXJsYXApXCJdIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR6LWluZGV4OiAxO1xufVxuXG4uaXMtbGlua3Mtbm93cmFwIHtcblx0YVtocmVmXSB7XG5cdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0fVxufVxuXG4vKiBNZWRpYSBRdWVyaWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qXG4gKiBIaWRkZW5cbiAqIGBoaWRkZW5gIGF0dHJpYnV0ZSBhbHNvIHNldCBoZXJlIHRvIG1ha2UgaXQgc3Ryb25nZXJcbiAqL1xuXG5baGlkZGVuXSxcbi5pcy1zdHlsZS1oaWRkZW4ge1xuXHRkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi8vIEJyZWFrcG9pbnQgdmlzaWJpbGl0eSBpcyBiZWluZyBoYW5kbGVkIGJ5IHRoZSBCbG9jayBWaXNpYmlsaXR5IHBsdWdpbixcbi8vIHdoaWNoIHByb3ZpZGVzIGl0cyBvd24gZnJvbnQtZW5kIENTUyBhY2NvcmRpbmcgdG8gdXNlciBzZXR0aW5ncy5cbi8vICRicmVha3BvaW50cy1saXN0OiBtYXAua2V5cyh2YXJpYWJsZXMuJGJyZWFrcG9pbnRzKTtcblxuLy8gQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBsZW5ndGgoJGJyZWFrcG9pbnRzLWxpc3QpIHtcbi8vIFx0JGJyZWFrcG9pbnQ6IGxpc3QubnRoKCRicmVha3BvaW50cy1saXN0LCAkaSk7XG4vLyBcdCRicmVha3BvaW50LXNpemU6IGJyZWFrcG9pbnQoJGJyZWFrcG9pbnQpO1xuXG4vLyBcdEBpZiAoJGJyZWFrcG9pbnQtc2l6ZSkge1xuXG4vLyBcdFx0QG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LXNpemUpIHtcbi8vIFx0XHRcdC5pcy1zdHlsZS1oaWRkZW4tI3skYnJlYWtwb2ludH0ge1xuLy8gXHRcdFx0XHRkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4vLyBcdFx0XHR9XG4vLyBcdFx0fVxuXG4vLyBcdFx0QGlmICRpIDwgbGVuZ3RoKCRicmVha3BvaW50cy1saXN0KSB7XG5cbi8vIFx0XHRcdEBtZWRpYSAobWF4LXdpZHRoOiBicmVha3BvaW50LW1heCgkYnJlYWtwb2ludCkpIHtcbi8vIFx0XHRcdFx0LmlzLXN0eWxlLXZpc2libGUtI3skYnJlYWtwb2ludH0ge1xuLy8gXHRcdFx0XHRcdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbi8vIFx0XHRcdFx0fVxuLy8gXHRcdFx0fVxuLy8gXHRcdH1cbi8vIFx0fVxuLy8gfVxuXG4vKiBIaWRlIGlmIHByaW1hcnkgcG9pbnRpbmcgZGV2aWNlIGRvZXNuJ3Qgc3VwcG9ydCBob3ZlciwgZS5nLiB0b3VjaCBzY3JlZW5zLiAqL1xuQG1lZGlhIChob3Zlcjogbm9uZSkge1xuXHQuaXMtc3R5bGUtaGlkZGVuLXRvdWNoIHtcblx0XHRkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG5cdH1cbn1cblxuLyogSGlkZSBpZiBwcmltYXJ5IHBvaW50aW5nIGRldmljZSBzdXBwb3J0cyBob3ZlciwgZS5nLiBtaWNlLiAqL1xuQG1lZGlhIChob3Zlcikge1xuXHQuaXMtc3R5bGUtaGlkZGVuLW5vdG91Y2gge1xuXHRcdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcblx0fVxufVxuXG4vKiBSZXNwb25zaXZlIFNldHRpbmdzIGJsb2NrIGZpbHRlciAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IGJyZWFrcG9pbnQtbWF4KHRhYmxldCkpIHtcblx0Lmhhcy1tb2JpbGUtb3JkZXItZmlyc3QgeyBvcmRlcjogLTE7IH1cblx0Lmhhcy1tb2JpbGUtb3JkZXItbGFzdCB7IG9yZGVyOiAxOyB9XG5cblx0Lmhhcy1tb2JpbGUtY29udGVudC1hbGlnbm1lbnQge1xuXHRcdC0tbmF2aWdhdGlvbi1sYXlvdXQtYWxpZ246IGNlbnRlcjtcblx0XHQtLW1vYmlsZS1jb250ZW50LWFsaWdubWVudDogY2VudGVyO1xuXG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXG5cdFx0LmlzLWxheW91dC1mbGV4Om5vdCguaXMtdmVydGljYWwpLFxuXHRcdCYuaXMtbGF5b3V0LWZsZXg6bm90KC5pcy12ZXJ0aWNhbCkge1xuXHRcdFx0anVzdGlmeS1jb250ZW50OiB2YXIoLS1tb2JpbGUtY29udGVudC1hbGlnbm1lbnQpO1xuXHRcdH1cblxuXHRcdC5pcy1sYXlvdXQtZmxleC5pcy12ZXJ0aWNhbCxcblx0XHQmLmlzLWxheW91dC1mbGV4LmlzLXZlcnRpY2FsIHtcblx0XHRcdGFsaWduLWl0ZW1zOiB2YXIoLS1tb2JpbGUtY29udGVudC1hbGlnbm1lbnQpO1xuXHRcdH1cblxuXG5cdFx0Ji1sZWZ0IHtcblx0XHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cblx0XHRcdC0tbW9iaWxlLWNvbnRlbnQtYWxpZ25tZW50OiBmbGV4LXN0YXJ0O1xuXHRcdH1cblxuXHRcdCYtcmlnaHQge1xuXHRcdFx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cblx0XHRcdC0tbW9iaWxlLWNvbnRlbnQtYWxpZ25tZW50OiBmbGV4LWVuZDtcblx0XHR9XG5cblx0fVxufVxuIiwiLyogc3R5bGVsaW50LWRpc2FibGUgbm8tZGVzY2VuZGluZy1zcGVjaWZpY2l0eSAqL1xuLy8vL1xuLy8vIEZvcm1zIGJhc2Ugc3R5bGVzXG4vLy8gVGhpcyBmaWxlIHNob3VsZCBub3QgYmUgZWRpdGVkLlxuLy8vIEBncm91cCB0cm9sbGV5XG4vLy8vXG5cbkB1c2UgXCJhYnN0cmFjdHMvZnVuY3Rpb25zXCIgYXMgKjtcbkB1c2UgXCJhYnN0cmFjdHMvZm9ybS1pbnB1dFwiIGFzIGlucHV0O1xuQHVzZSBcImFic3RyYWN0cy9mb3JtLXJhZGlvXCIgYXMgcmFkaW87XG5AdXNlIFwiYWJzdHJhY3RzL2Zvcm0taW1hZ2VcIiBhcyBpbWFnZSB3aXRoICgkcGFja2FnZTogaW9uaWNvbnMsICR0b2dnbGU6IGZhbHNlKTtcblxuLy8gVGhpcyBpcyB3aGVyZSB3ZSB3b3VsZCBAdXNlIHRoZW1lLXNwZWNpZmljIHZhcmlhYmxlcyBhbmQgbWl4aW5zLlxuXG5mb3JtW21ldGhvZF0ge1xuXHRsYWJlbDpoYXMoW3R5cGU9XCJyYWRpb1wiXSksXG5cdGxhYmVsOmhhcyhbdHlwZT1cImNoZWNrYm94XCJdKSB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRsaW5lLWhlaWdodDogcmFkaW8uJGNvbnRyb2wtc2l6ZTtcblx0fVxuXG5cdFt0eXBlPVwicmFkaW9cIl0sXG5cdFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuXHRcdEBpbmNsdWRlIHJhZGlvLm1peGluLXRyYW5zaXRpb247XG5cblx0XHRtYXNrOiB7XG5cdFx0XHRwb3NpdGlvbjogNTAlO1xuXHRcdFx0cmVwZWF0OiBuby1yZXBlYXQ7XG5cdFx0XHRzaXplOiBjb250YWluO1xuXHRcdH1cblxuXHRcdGhlaWdodDogcmFkaW8uJGNvbnRyb2wtc2l6ZTtcblx0XHRhc3BlY3QtcmF0aW86IDE7XG5cdFx0bWFyZ2luLWlubGluZS1lbmQ6IDAuNWVtO1xuXHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogd3AoY29sb3IsIGNvbnRyYXN0KTtcblx0XHRib3JkZXI6IDA7XG5cblx0XHQmOmNoZWNrZWQge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogY3VycmVudENvbG9yO1xuXHRcdH1cblxuXHRcdCY6Zm9jdXMtdmlzaWJsZSwgJjphY3RpdmUge1xuXHRcdFx0QGluY2x1ZGUgcmFkaW8ubWl4aW4tZm9jdXM7XG5cdFx0fVxuXG5cdFx0JjpkaXNhYmxlZCB7XG5cdFx0XHRAaW5jbHVkZSByYWRpby5taXhpbi1kaXNhYmxlZDtcblx0XHR9XG5cdH1cblxuXHRbdHlwZT1cInJhZGlvXCJdIHtcblx0XHRtYXNrLWltYWdlOiBzdmctbG9hZCgje2ltYWdlLiRyYWRpby1pbWFnZX0pO1xuXG5cdFx0JjpjaGVja2VkIHtcblx0XHRcdG1hc2staW1hZ2U6IHN2Zy1sb2FkKCN7aW1hZ2UuJHJhZGlvLWltYWdlX19jaGVja2VkfSk7XG5cdFx0fVxuXHR9XG5cblx0W3R5cGU9XCJjaGVja2JveFwiXSB7XG5cdFx0bWFzay1pbWFnZTogc3ZnLWxvYWQoI3tpbWFnZS4kY2hlY2tib3gtaW1hZ2V9KTtcblxuXHRcdEBpZiBzdHItaW5kZXgoaW1hZ2UuJGNoZWNrYm94LWltYWdlLCBcInRvZ2dsZVwiKSB7XG5cdFx0XHRoZWlnaHQ6IGNhbGMoI3tyYWRpby4kY29udHJvbC1zaXplfSAqIDIpO1xuXHRcdFx0bWFyZ2luLXRvcDogY2FsYygje3JhZGlvLiRjb250cm9sLXNpemV9ICogLTAuMzUpICFpbXBvcnRhbnQ7XG5cdFx0XHRvcGFjaXR5OiAwLjI1O1xuXHRcdFx0dHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpO1xuXHRcdH1cblxuXHRcdCY6Y2hlY2tlZCB7XG5cdFx0XHRtYXNrLWltYWdlOiBzdmctbG9hZCgje2ltYWdlLiRjaGVja2JveC1pbWFnZV9fY2hlY2tlZH0pO1xuXG5cdFx0XHRAaWYgc3RyLWluZGV4KGltYWdlLiRjaGVja2JveC1pbWFnZSwgXCJ0b2dnbGVcIikge1xuXHRcdFx0XHRvcGFjaXR5OiAxO1xuXHRcdFx0XHR0cmFuc2Zvcm06cm90YXRlKDBkZWcpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCY6aW5kZXRlcm1pbmF0ZSB7XG5cdFx0XHRvcGFjaXR5OiAwLjU7XG5cdFx0XHRtYXNrLWltYWdlOiBzdmctbG9hZCgje2ltYWdlLiRjaGVja2JveC1pbWFnZV9faW5kZXRlcm1pbmF0ZX0pO1xuXHRcdH1cblx0fVxuXG5cblx0LyogSW5wdXQsIHNlbGVjdCBhbmQgdGV4dGFyZWFcblx0ICogQWxsb3dlZDogXHRgdGV4dGAsIGBwYXNzd29yZGAsIGBkYXRldGltZS1sb2NhbGAsIGBkYXRlYCwgIGBtb250aGAsXG5cdFx0XHRcdFx0YHRpbWVgLCBgd2Vla2AsIGBudW1iZXJgLCBgZW1haWxgLCBgdXJsYCwgYHNlYXJjaGAsIGB0ZWxgLCBgY29sb3JgXG5cdCAqIERpc2FsbG93ZWQ6IFx0YHJhbmdlYCwgYHJhZGlvYCwgYGNoZWNrYm94YCwgYGZpbGVgLCBgc3VibWl0YCwgYHJlc2V0YCBhbmQgYGltYWdlYFxuXHQ9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5cdC8qXG5cdCogMS4gUHJldmVudCBjb250ZW50IG92ZXJmbG93IGlmIGEgZml4ZWQgd2lkdGggaXMgdXNlZFxuXHQqIDIuIFRha2UgdGhlIGZ1bGwgd2lkdGhcblx0KiAzLiBTdHlsZVxuXHQqL1xuXHQlaW5wdXRzIHtcblx0XHQvKiAyICovXG5cdFx0d2lkdGg6IDEwMCU7XG5cblx0XHQvKiAxICovXG5cdFx0bWF4LXdpZHRoOiAxMDAlO1xuXHRcdGxpbmUtaGVpZ2h0OiBpbnB1dC4kbGluZS1oZWlnaHQ7XG5cdFx0Y29sb3I6IGlucHV0LiRjb2xvcjtcblxuXHRcdC8qIDMgKi9cblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBpbnB1dC4kYmFja2dyb3VuZDtcblx0XHRvdXRsaW5lOiBpbnB1dC4kb3V0bGluZS13aWR0aCBzb2xpZCBpbnB1dC4kb3V0bGluZS1jb2xvcjtcblx0XHRmb250OiB7XG5cdFx0XHRmYW1pbHk6IGlucHV0LiRmb250LWZhbWlseTtcblx0XHRcdHNpemU6ICAgaW5wdXQuJGZvbnQtc2l6ZTtcblx0XHRcdHdlaWdodDogaW5wdXQuJGZvbnQtd2VpZ2h0O1xuXHRcdH1cblx0XHRib3JkZXI6IHtcblx0XHRcdHdpZHRoOiAgaW5wdXQuJGJvcmRlci13aWR0aDtcblxuXHRcdFx0Ly8gY29sb3I6ICBpbnB1dC4kYm9yZGVyLWNvbG9yO1xuXHRcdFx0cmFkaXVzOiBpbnB1dC4kYm9yZGVyLXJhZGl1cztcblx0XHRcdHN0eWxlOiBzb2xpZDtcblx0XHR9XG5cblx0XHRib3gtc2hhZG93OiBpbnB1dC4kYm94LXNoYWRvdztcblxuXHRcdC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBvcmRlci9wcm9wZXJ0aWVzLW9yZGVyICovXG5cdFx0cGFkZGluZzpcblx0XHRcdGlucHV0LiRwYWRkaW5nLXRvcFxuXHRcdFx0aW5wdXQuJHBhZGRpbmctcmlnaHRcblx0XHRcdGlucHV0LiRwYWRkaW5nLWJvdHRvbVxuXHRcdFx0aW5wdXQuJHBhZGRpbmctbGVmdDtcblxuXHRcdEBpbmNsdWRlIGlucHV0Lm1peGluLXRyYW5zaXRpb247XG5cblx0XHQmOmZvY3VzLXZpc2libGUsICY6YWN0aXZlIHtcblx0XHRcdEBpbmNsdWRlIGlucHV0Lm1peGluLWZvY3VzO1xuXHRcdH1cblxuXHRcdCY6ZGlzYWJsZWQge1xuXHRcdFx0QGluY2x1ZGUgaW5wdXQubWl4aW4tZGlzYWJsZWQ7XG5cdFx0fVxuXHR9XG5cblx0JXNpbmdsZS1saW5lIHtcblx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHR9XG5cblx0JW11bHRpLWxpbmUge1xuXHRcdHZlcnRpY2FsLWFsaWduOiB0b3A7XG5cdH1cblxuXHRpbnB1dCB7XG5cdFx0Jlt0eXBlPVwidGV4dFwiXSxcblx0XHQmW3R5cGU9XCJwYXNzd29yZFwiXSxcblx0XHQmW3R5cGU9XCJkYXRlXCJdLFxuXHRcdCZbdHlwZT1cImRhdGV0aW1lXCJdLFxuXHRcdCZbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLFxuXHRcdCZbdHlwZT1cImVtYWlsXCJdLFxuXHRcdCZbdHlwZT1cIm1vbnRoXCJdLFxuXHRcdCZbdHlwZT1cIm51bWJlclwiXSxcblx0XHQmW3R5cGU9XCJzZWFyY2hcIl0sXG5cdFx0Jlt0eXBlPVwidGVsXCJdLFxuXHRcdCZbdHlwZT1cInRpbWVcIl0sXG5cdFx0Jlt0eXBlPVwidXJsXCJdLFxuXHRcdCZbdHlwZT1cIndlZWtcIl0ge1xuXHRcdFx0QGV4dGVuZCAlaW5wdXRzO1xuXHRcdH1cblx0fVxuXG5cdHNlbGVjdCxcblx0dGV4dGFyZWEge1xuXHRcdEBleHRlbmQgJWlucHV0cztcblx0fVxuXG5cblx0Lypcblx0KiBTaW5nbGUtbGluZVxuXHQqL1xuXHRzZWxlY3Q6bm90KFttdWx0aXBsZV0sIFtzaXplXSkge1xuXHRcdEBleHRlbmQgJXNpbmdsZS1saW5lO1xuXHR9XG5cblx0Lypcblx0KiBNdWx0aS1saW5lXG5cdCovXG5cdHNlbGVjdFttdWx0aXBsZV0sXG5cdHNlbGVjdFtzaXplXSxcblx0dGV4dGFyZWEge1xuXHRcdEBleHRlbmQgJW11bHRpLWxpbmU7XG5cdH1cblxuXHRzZWxlY3RbbXVsdGlwbGVdLFxuXHRzZWxlY3Rbc2l6ZV0ge1xuXHRcdHJlc2l6ZTogdmVydGljYWw7XG5cdH1cblxuXG5cdC8qIFNpbmdsZS1saW5lIHNlbGVjdHMsIGRhdGFsaXN0cyAqL1xuXHRpbnB1dFtsaXN0XSxcblx0c2VsZWN0Om5vdChbbXVsdGlwbGVdLCBbc2l6ZV0pIHtcblx0XHRwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7aW5wdXQuJGNvbnRyb2wtaW1hZ2Utd2lkdGh9ICsgI3tpbnB1dC4kY29udHJvbC1pY29uLXNpZGUtcGFkZGluZ30pO1xuXHRcdGJhY2tncm91bmQ6IHtcblx0XHRcdHBvc2l0aW9uOiBjYWxjKDEwMCUgLSAoICN7aW5wdXQuJGNvbnRyb2wtaW1hZ2Utd2lkdGh9IC8gMiApKSA1MCU7XG5cdFx0XHRpbWFnZTogc3ZnLWxvYWQoI3tpbnB1dC4kaW50ZXJuYWwtc2VsZWN0LWltYWdlfSk7XG5cdFx0XHRyZXBlYXQ6IG5vLXJlcGVhdDtcblx0XHRcdHNpemU6IGF1dG8gaW5wdXQuJGNvbnRyb2wtaW1hZ2Utd2lkdGg7XG5cdFx0fVxuXG5cdH1cblxuXHQ6OnBsYWNlaG9sZGVyIHtcblx0XHRjb2xvcjogaW5wdXQuJGNvbG9yX19wbGFjZWhvbGRlcjtcblx0fVxufVxuXG4uZ2Zvcm1fYnV0dG9uIHtcblx0YmFja2dyb3VuZC1jb2xvcjogd3AoY29sb3IsIHByaW1hcnkpO1xufVxuIiwiLyogc3R5bGVsaW50LWRpc2FibGUgc2Nzcy9kb2xsYXItdmFyaWFibGUtcGF0dGVybiwgc2Nzcy9kb2xsYXItdmFyaWFibGUtZW1wdHktbGluZS1iZWZvcmUsIHNjc3MvZG9sbGFyLXZhcmlhYmxlLWNvbG9uLXNwYWNlLWFmdGVyICovXG4vLy8vXG4vLy8gRm9ybSBpbnB1dCBzdHlsZXMgKGlucHV0LCBzZWxlY3QsIHRleHRhcmVhKVxuLy8vXG4vLy8gRGVmaW5lIG1vc3Qgc3R5bGVzIGluIGNvcmUvZm9ybS1pbnB1dC5cbi8vLyBCZWNhdXNlIHRoZW1lLmpzb24gZG9lc24ndCBzdXBwb3J0IHBzZXVkby1jbGFzc2VzLCB3ZSBzaW1wbHkgZGVmaW5lXG4vLy8gc3R5bGVzIGZvciA6Zm9jdXMsIDpkaXNhYmxlZCwgZXRjLiBoZXJlIHVzaW5nIG1peGlucy5cbi8vL1xuLy8vIEBncm91cCB0cm9sbGV5XG4vLy8vXG5cbkB1c2UgXCJzYXNzOm1hcFwiO1xuQHVzZSBcImFic3RyYWN0cy9mdW5jdGlvbnNcIiBhcyAqO1xuXG4vLyBQdWxsIGluIHRoZSB0aGVtZS5qc29uIHN0eWxpbmcgZm9yIGNvcmUvZm9ybS1pbnB1dC5cbiRmb3JtLWlucHV0OiB0aGVtZS1zdHlsZXMoYmxvY2tzLCBjb3JlL2Zvcm0taW5wdXQpO1xuXG4vKlxuXHRcdFx0XHRcdFx0dGhlbWUuanNvblx0XHRcdFx0XHRcdFx0XHRcdFx0ZmFsbGJhY2tcblx0XHRcdFx0XHRcdC0tLS0tLS0tLS1cdFx0XHRcdFx0XHRcdFx0XHRcdC0tLS0tLS0tLSAqL1xuJGNvbG9yOlx0XHRcdFx0XHRtYXAuZ2V0KCRmb3JtLWlucHV0LCBjb2xvciwgdGV4dClcdFx0XHRcdG9yIHdwKGNvbG9yLCBjb250cmFzdCk7XG4kYmFja2dyb3VuZDpcdFx0XHRtYXAuZ2V0KCRmb3JtLWlucHV0LCBjb2xvciwgYmFja2dyb3VuZClcdFx0XHRvciB3cChjb2xvciwgbmV1dHJhbC0xMDApO1xuXG4kY29sb3JfX3BsYWNlaG9sZGVyOlx0d3AoY29sb3IsIG5ldXRyYWwtNzAwKTtcblxuJGJvcmRlci1jb2xvcjogXHRcdFx0bWFwLmdldCgkZm9ybS1pbnB1dCwgYm9yZGVyLCBjb2xvcikgXHRcdFx0b3IgXHR3cChjb2xvciwgY29udHJhc3QpO1xuJGJvcmRlci13aWR0aDogXHRcdFx0bWFwLmdldCgkZm9ybS1pbnB1dCwgYm9yZGVyLCB3aWR0aCkgXHRcdFx0b3IgXHQxcHg7XG4kYm9yZGVyLXJhZGl1czogXHRcdG1hcC5nZXQoJGZvcm0taW5wdXQsIGJvcmRlciwgcmFkaXVzKSBcdFx0XHRvciBcdG5vbmU7XG5cbiRvdXRsaW5lLWNvbG9yOlx0XHRcdG1hcC5nZXQoJGZvcm0taW5wdXQsIG91dGxpbmUsIGNvbG9yKVx0XHRcdG9yXHR0cmFuc3BhcmVudDtcbiRvdXRsaW5lLXdpZHRoOlx0XHRcdG1hcC5nZXQoJGZvcm0taW5wdXQsIG91dGxpbmUsIHdpZHRoKVx0XHRcdG9yXHQwO1xuXG4kYm94LXNoYWRvdzpcdFx0XHRtYXAuZ2V0KCRmb3JtLWlucHV0LCBzaGFkb3cpXHRcdFx0XHRvclx0dHJhbnNwYXJlbnQ7XG5cbiRwYWRkaW5nLXRvcDogXHRcdFx0bWFwLmdldCgkZm9ybS1pbnB1dCwgc3BhY2luZywgcGFkZGluZywgdG9wKSBcdG9yIFx0OXB4O1xuJHBhZGRpbmctcmlnaHQ6IFx0XHRtYXAuZ2V0KCRmb3JtLWlucHV0LCBzcGFjaW5nLCBwYWRkaW5nLCByaWdodCkgXHRvciBcdDE4cHg7XG4kcGFkZGluZy1ib3R0b206IFx0XHRtYXAuZ2V0KCRmb3JtLWlucHV0LCBzcGFjaW5nLCBwYWRkaW5nLCBib3R0b20pIFx0b3IgXHQ5cHg7XG4kcGFkZGluZy1sZWZ0OiBcdFx0XHRtYXAuZ2V0KCRmb3JtLWlucHV0LCBzcGFjaW5nLCBwYWRkaW5nLCBsZWZ0KSBcdG9yIFx0MThweDtcblxuJGZvbnQtZmFtaWx5OiBcdFx0XHRtYXAuZ2V0KCRmb3JtLWlucHV0LCB0eXBvZ3JhcGh5LCBmb250LWZhbWlseSkgXHRvciBcdHdwKGZvbnQtZmFtaWx5LCBib2R5KTtcbiRmb250LXNpemU6IFx0XHRcdG1hcC5nZXQoJGZvcm0taW5wdXQsIHR5cG9ncmFwaHksIGZvbnQtc2l6ZSkgXHRvciBcdHdwKGZvbnQtc2l6ZSwgc21hbGwpO1xuJGZvbnQtd2VpZ2h0OiBcdFx0XHRtYXAuZ2V0KCRmb3JtLWlucHV0LCB0eXBvZ3JhcGh5LCBmb250LXdlaWdodCkgXHRvciBcdHdwKGZvbnQtd2VpZ2h0LCByZWd1bGFyKTtcbiRsaW5lLWhlaWdodDogXHRcdFx0bWFwLmdldCgkZm9ybS1pbnB1dCwgdHlwb2dyYXBoeSwgbGluZS1oZWlnaHQpIFx0b3IgXHR3cChsaW5lLWhlaWdodCwgYm9keSk7XG5cbi8vIFdpZHRoIG9mIHRoZSBjb250cm9sIGljb25zLCBlLmcuLCB0aGUgZHJvcGRvd24gYXJyb3cuXG4kY29udHJvbC1pbWFnZS13aWR0aDpcdDEuNXJlbTtcbiRjb250cm9sLWljb24tc2lkZS1wYWRkaW5nOlx0JHBhZGRpbmctcmlnaHQ7XG5cbi8vIFNWRyBpbWFnZXMgZm9yIHNlbGVjdHMgYW5kIGRhdGFsaXN0cywgcmVsYXRpdmUgdG8gc3JjLCBzcmMvc2Nzcywgb3Igc3JjL25vZGVfbW9kdWxlcy5cbiRpbnRlcm5hbC1zZWxlY3QtaW1hZ2U6ICAgICAgICAgICAgICAgICBcImZlYXRoZXItaWNvbnMvZGlzdC9pY29ucy9jaGV2cm9uLWRvd24uc3ZnXCI7XG4kaW50ZXJuYWwtZGF0YWxpc3QtaW1hZ2U6ICAgICAgICAgICAgICAgXCJmZWF0aGVyLWljb25zL2Rpc3QvaWNvbnMvY2hldnJvbi1kb3duLnN2Z1wiO1xuXG4vLyBVc2VkIGZvciBiYXNlIChmb2N1cyBvdXQpIHRyYW5zaXRpb24uXG5AbWl4aW4gbWl4aW4tdHJhbnNpdGlvbigpIHtcblx0dHJhbnNpdGlvbjoge1xuXHRcdGR1cmF0aW9uOiAxMDBtcztcblx0XHRwcm9wZXJ0eTogdHJhbnNmb3JtLCBib3gtc2hhZG93O1xuXHRcdHRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG5cdH1cbn1cblxuQG1peGluIG1peGluLWZvY3VzKCkge1xuXHRib3JkZXItY29sb3I6IHdwKGNvbG9yLCBwcmltYXJ5KTtcblx0Ym94LXNoYWRvdzogMCA0cHggNnB4IHJnYigwIDAgMCAvIDEwJSk7XG5cdHRyYW5zZm9ybTogc2NhbGUoMS4wMjUpO1xuXG5cdHRyYW5zaXRpb246IHtcblx0XHRkdXJhdGlvbjogMzAwbXM7XG5cdFx0dGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yNTAsIDEuNjUwLCAwLjQ1MCwgMS4wMDApLCBlYXNlO1xuXHR9XG59XG5cbkBtaXhpbiBtaXhpbi1mb2N1cy1sYWJlbCgpIHtcblx0dHJhbnNmb3JtOiBzY2FsZSgxLjAyNSk7XG5cblx0dHJhbnNpdGlvbjoge1xuXHRcdGR1cmF0aW9uOiAzMDBtcztcblx0XHR0aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjI1MCwgMS42NTAsIDAuNDUwLCAxLjAwMCksIGVhc2U7XG5cdH1cbn1cblxuQG1peGluIG1peGluLWRpc2FibGVkKCkge1xuXHRjb2xvcjogd3AoY29sb3IsIG5ldXRyYWwtNTAwKTtcblx0YmFja2dyb3VuZC1jb2xvcjogd3AoY29sb3IsIG5ldXRyYWwtMzAwKTtcblx0Ym9yZGVyLWNvbG9yOiB3cChjb2xvciwgbmV1dHJhbC01MDApO1xufVxuIiwiLyogc3R5bGVsaW50LWRpc2FibGUgc2Nzcy9kb2xsYXItdmFyaWFibGUtZW1wdHktbGluZS1iZWZvcmUsIHNjc3MvZG9sbGFyLXZhcmlhYmxlLWNvbG9uLXNwYWNlLWFmdGVyICovXG4vLy8vXG4vLy8gRm9ybSByYWRpbyBhbmQgY2hlY2tib3ggc3R5bGVzXG4vLy9cbi8vLyBXb3JkUHJlc3MgYXMgb2YgNi42IGhhcyBubyBjb3JlIGZvcm0gcmFkaW8vY2hlY2tib3ggYmxvY2tzLlxuLy8vIFVudGlsIGl0IGRvZXMsIHJhZGlvL2NoZWNrYm94IHN0eWxpbmcgaXMgaGFuZGxlZCBoZXJlLlxuLy8vXG4vLy8gQGdyb3VwIHRyb2xsZXlcbi8vLy9cblxuQHVzZSBcInNhc3M6bWFwXCI7XG5AdXNlIFwiYWJzdHJhY3RzL2Z1bmN0aW9uc1wiIGFzICo7XG5cbi8vIFB1bGwgaW4gdGhlIHRoZW1lLmpzb24gc3R5bGluZyBmb3IgY29yZS9mb3JtLWlucHV0LlxuJGZvcm0taW5wdXQ6IHRoZW1lLXN0eWxlcyhibG9ja3MsIGNvcmUvZm9ybS1pbnB1dCk7XG5cbi8qXG5cdFx0XHRcdFx0XHR0aGVtZS5qc29uXHRcdFx0XHRcdFx0XHRcdFx0XHRmYWxsYmFja1xuXHRcdFx0XHRcdFx0LS0tLS0tLS0tLVx0XHRcdFx0XHRcdFx0XHRcdFx0LS0tLS0tLS0tICovXG4kY29sb3I6XHRcdFx0XHRcdG1hcC5nZXQoJGZvcm0taW5wdXQsIGNvbG9yLCB0ZXh0KVx0XHRcdFx0b3Igd3AoY29sb3IsIGNvbnRyYXN0KTtcbiRiYWNrZ3JvdW5kOlx0XHRcdG1hcC5nZXQoJGZvcm0taW5wdXQsIGNvbG9yLCBiYWNrZ3JvdW5kKVx0XHRcdG9yIHdwKGNvbG9yLCBuZXV0cmFsLTEwMCk7XG5cbiRib3JkZXItY29sb3I6IFx0XHRcdG1hcC5nZXQoJGZvcm0taW5wdXQsIGJvcmRlciwgY29sb3IpIFx0XHRcdG9yIFx0d3AoY29sb3IsIGNvbnRyYXN0KTtcbiRib3JkZXItd2lkdGg6IFx0XHRcdG1hcC5nZXQoJGZvcm0taW5wdXQsIGJvcmRlciwgd2lkdGgpIFx0XHRcdG9yIFx0MXB4O1xuJGJvcmRlci1yYWRpdXM6IFx0XHRtYXAuZ2V0KCRmb3JtLWlucHV0LCBib3JkZXIsIHJhZGl1cykgXHRcdFx0b3IgXHRub25lO1xuXG4kb3V0bGluZS1jb2xvcjpcdFx0XHRtYXAuZ2V0KCRmb3JtLWlucHV0LCBvdXRsaW5lLCBjb2xvcilcdFx0XHRvclx0dHJhbnNwYXJlbnQ7XG4kb3V0bGluZS13aWR0aDpcdFx0XHRtYXAuZ2V0KCRmb3JtLWlucHV0LCBvdXRsaW5lLCB3aWR0aClcdFx0XHRvclx0MDtcblxuJGZvbnQtZmFtaWx5OiBcdFx0XHRtYXAuZ2V0KCRmb3JtLWlucHV0LCB0eXBvZ3JhcGh5LCBmb250LWZhbWlseSkgXHRvciBcdHdwKGZvbnQtZmFtaWx5LCBib2R5KTtcbiRmb250LXNpemU6IFx0XHRcdG1hcC5nZXQoJGZvcm0taW5wdXQsIHR5cG9ncmFwaHksIGZvbnQtc2l6ZSkgXHRvciBcdHdwKGZvbnQtc2l6ZSwgc21hbGwpO1xuJGZvbnQtd2VpZ2h0OiBcdFx0XHRtYXAuZ2V0KCRmb3JtLWlucHV0LCB0eXBvZ3JhcGh5LCBmb250LXdlaWdodCkgXHRvciBcdHdwKGZvbnQtd2VpZ2h0LCByZWd1bGFyKTtcbiRsaW5lLWhlaWdodDogXHRcdFx0bWFwLmdldCgkZm9ybS1pbnB1dCwgdHlwb2dyYXBoeSwgbGluZS1oZWlnaHQpIFx0b3IgXHR3cChsaW5lLWhlaWdodCwgYm9keSk7XG5cbi8vIFNpemUgb2YgdGhlIGNvbnRyb2wgaWNvbnMsIGUuZy4sIHRoZSBjaGVja2JveCBvciByYWRpby5cbiRjb250cm9sLXNpemU6XHRcdFx0MS41cmVtO1xuXG5AbWl4aW4gbWl4aW4tdHJhbnNpdGlvbigpIHtcblx0dHJhbnNpdGlvbjoge1xuXHRcdGR1cmF0aW9uOiAxMDBtcztcblx0XHRwcm9wZXJ0eTogdHJhbnNmb3JtLCBiYWNrZ3JvdW5kO1xuXHRcdHRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG5cdH1cbn1cblxuQG1peGluIG1peGluLWZvY3VzKCkge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB3cChjb2xvciwgcHJpbWFyeSk7XG5cdHRyYW5zZm9ybTogc2NhbGUoMS4yNSk7XG5cdHRyYW5zaXRpb246IHtcblx0XHRkdXJhdGlvbjogMzAwbXM7XG5cdFx0dGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yNTAsIDEuNjUwLCAwLjQ1MCwgMS4wMDApLCBlYXNlO1xuXHR9XG59XG5cbkBtaXhpbiBtaXhpbi1kaXNhYmxlZCgpIHtcblx0Y29sb3I6IHdwKGNvbG9yLCBuZXV0cmFsLTUwMCk7XG5cdGJhY2tncm91bmQtY29sb3I6IHdwKGNvbG9yLCBuZXV0cmFsLTMwMCk7XG5cdGJvcmRlci1jb2xvcjogd3AoY29sb3IsIG5ldXRyYWwtNTAwKTtcbn1cbiIsIi8qIHN0eWxlbGludC1kaXNhYmxlIHNjc3MvZG9sbGFyLXZhcmlhYmxlLXBhdHRlcm4sIHNjc3MvZG9sbGFyLXZhcmlhYmxlLWNvbG9uLXNwYWNlLWFmdGVyICovXG4vLy8vXG4vLy8gU1ZHIGltYWdlcyBmb3Igc2VsZWN0cyBhbmQgZGF0YWxpc3RzLCByZWxhdGl2ZSB0byBzcmMsIHNyYy9zY3NzLCBvciBzcmMvbm9kZV9tb2R1bGVzLlxuLy8vXG4vLy8gQGdyb3VwIHRyb2xsZXlcbi8vLy9cblxuJHBhY2thZ2U6IGZlYXRoZXIgIWRlZmF1bHQ7XG4kdG9nZ2xlOiBmYWxzZSAhZGVmYXVsdDtcblxuLyogRmVhdGhlciBJY29ucyAqL1xuJHJhZGlvLWltYWdlOlx0XHRcdFx0XHRcImZlYXRoZXItaWNvbnMvZGlzdC9pY29ucy9jaXJjbGUuc3ZnXCIgIWRlZmF1bHQ7XG4kcmFkaW8taW1hZ2VfX2NoZWNrZWQ6XHRcdFx0XCJmZWF0aGVyLWljb25zL2Rpc3QvaWNvbnMvY2hlY2stY2lyY2xlLnN2Z1wiICFkZWZhdWx0O1xuJGNoZWNrYm94LWltYWdlOlx0XHRcdFx0XCJmZWF0aGVyLWljb25zL2Rpc3QvaWNvbnMvc3F1YXJlLnN2Z1wiICFkZWZhdWx0O1xuJGNoZWNrYm94LWltYWdlX19jaGVja2VkOlx0XHRcImZlYXRoZXItaWNvbnMvZGlzdC9pY29ucy9jaGVjay1zcXVhcmUuc3ZnXCIgIWRlZmF1bHQ7XG4kY2hlY2tib3gtaW1hZ2VfX2luZGV0ZXJtaW5hdGU6XHRcImZlYXRoZXItaWNvbnMvZGlzdC9pY29ucy9taW51cy1zcXVhcmUuc3ZnXCIgIWRlZmF1bHQ7XG5cbkBpZiAkdG9nZ2xlIHtcblx0JGNoZWNrYm94LWltYWdlOlx0XHRcdFx0XCJmZWF0aGVyLWljb25zL2Rpc3QvaWNvbnMvdG9nZ2xlLWxlZnQuc3ZnXCI7XG5cdCRjaGVja2JveC1pbWFnZV9fY2hlY2tlZDpcdFx0XCJmZWF0aGVyLWljb25zL2Rpc3QvaWNvbnMvdG9nZ2xlLXJpZ2h0LnN2Z1wiO1xufVxuXG4vKiBJb25JY29ucyAqL1xuQGlmICRwYWNrYWdlID09IGlvbmljb25zIHtcblx0JHJhZGlvLWltYWdlOlx0XHRcdFx0XHRcImlvbmljb25zL2Rpc3Qvc3ZnL3JhZGlvLWJ1dHRvbi1vZmYuc3ZnXCI7XG5cdCRyYWRpby1pbWFnZV9fY2hlY2tlZDpcdFx0XHRcImlvbmljb25zL2Rpc3Qvc3ZnL3JhZGlvLWJ1dHRvbi1vbi5zdmdcIjtcblx0JGNoZWNrYm94LWltYWdlOlx0XHRcdFx0XCJpb25pY29ucy9kaXN0L3N2Zy9zcXVhcmUtb3V0bGluZS5zdmdcIjtcblx0JGNoZWNrYm94LWltYWdlX19jaGVja2VkOlx0XHRcImlvbmljb25zL2Rpc3Qvc3ZnL2NoZWNrYm94LW91dGxpbmUuc3ZnXCI7XG5cdCRjaGVja2JveC1pbWFnZV9faW5kZXRlcm1pbmF0ZTpcdFwiaW9uaWNvbnMvZGlzdC9zdmcvc3F1YXJlLW91dGxpbmUuc3ZnXCI7XG5cblx0QGlmICR0b2dnbGUge1xuXHRcdCRjaGVja2JveC1pbWFnZTpcdFx0XHRcdFwiaW9uaWNvbnMvZGlzdC9zdmcvdG9nZ2xlLXNoYXJwLnN2Z1wiO1xuXHRcdCRjaGVja2JveC1pbWFnZV9fY2hlY2tlZDpcdFx0XCJpb25pY29ucy9kaXN0L3N2Zy90b2dnbGUtc2hhcnAuc3ZnXCI7XG5cdFx0JGNoZWNrYm94LWltYWdlX19pbmRldGVybWluYXRlOlx0XCJpb25pY29ucy9kaXN0L3N2Zy91bmxpbmstc2hhcnAuc3ZnXCI7XG5cdH1cbn1cblxuXG4vKiBjc3MuZ2cgKi9cbkBpZiAkcGFja2FnZSA9PSBcImNzcy5nZ1wiIHtcblx0JHJhZGlvLWltYWdlOlx0XHRcdFx0XHRcImNzcy5nZy9pY29ucy9yYWRpby1jaGVjay5zdmdcIjtcblx0JHJhZGlvLWltYWdlX19jaGVja2VkOlx0XHRcdFwiY3NzLmdnL2ljb25zL3JhZGlvLWNoZWNrZWQuc3ZnXCI7XG5cdCRjaGVja2JveC1pbWFnZTpcdFx0XHRcdFwiY3NzLmdnL2ljb25zL3RvZ2dsZS1vbi5zdmdcIjtcblx0JGNoZWNrYm94LWltYWdlX19jaGVja2VkOlx0XHRcImNzcy5nZy9pY29ucy90b2dnbGUtb2ZmLnN2Z1wiO1xuXHQkY2hlY2tib3gtaW1hZ2VfX2luZGV0ZXJtaW5hdGU6XHRcImNzcy5nZy9pY29ucy9waWxsLnN2Z1wiO1xufVxuIiwiLyogc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3ItaWQtcGF0dGVybiAqL1xuLy8vL1xuLy8vIFN0eWxlcyBwYXJ0aWN1bGFyIHRvIHRoaXMgdGhlbWUuXG4vLy8gQGdyb3VwIHRyb2xsZXlcbi8vLy9cbkB1c2UgXCJhYnN0cmFjdHMvZnVuY3Rpb25zXCIgYXMgKjtcbkB1c2UgXCJhYnN0cmFjdHMvcGxhY2Vob2xkZXJzXCIgYXMgKjtcblxuXG4vKlxuICogPGtiZD4gY29sb3JzIHRha2VuIGZyb20gQXRlbGllciBGb3Jlc3QgTGlnaHRcbiAqIGh0dHBzOi8vYXRlbGllcmJyYW0uZ2l0aHViLmlvL3N5bnRheC1oaWdobGlnaHRpbmcvYXRlbGllci1zY2hlbWVzL2ZvcmVzdC9cbiAqL1xuXG4kYmFzZTAyOiBoc2woMThkZWcgNSUgMzklKTsgICAgLyogIzY4NjE1ZSAqL1xuJGJhc2UwNjogaHNsKDIwZGVnIDExJSA4OSUpOyAgIC8qICNlNmUyZTAgKi9cbiRiYXNlMDc6IGhzbCgyMGRlZyAxMCUgOTQlKTsgICAvKiAjZjFlZmVlICovXG5cbmtiZCwgY29kZSwgc2FtcCwgcHJlIHtcblx0Zm9udC1mYW1pbHk6IHdwKGZvbnQtZmFtaWx5LCBtb25vKTtcbn1cblxua2JkIHtcblx0cGFkZGluZzogMC4xZW0gMC40ZW07XG5cdG1hcmdpbi1pbmxpbmU6IDAuMmVtO1xuXHRjb2xvcjogJGJhc2UwMjtcblx0YmFja2dyb3VuZDogJGJhc2UwNztcblx0Ym9yZGVyLXJhZGl1czogMC4zZW07XG5cblx0JjpmaXJzdC1jaGlsZCB7IG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDA7IH1cblx0JjpsYXN0LWNoaWxkIHsgbWFyZ2luLWlubGluZS1lbmQ6IDA7IH1cblxuXHQmOjpzZWxlY3Rpb24sXG5cdDo6c2VsZWN0aW9uIHtcblx0XHR0ZXh0LXNoYWRvdzogbm9uZTtcblx0XHRiYWNrZ3JvdW5kOiAkYmFzZTA2O1xuXHR9XG59XG5cbi5nZm9ybV9idXR0b24sICNnZm9ybV9zdWJtaXRfYnV0dG9uXzEgIHtcblx0cGFkZGluZzogLjhlbSAxLjI1ZW07XG5cdGZvbnQtc2l6ZTogMWVtO1xuXHRmb250LXdlaWdodDogNDAwO1xuXHRjb2xvcjogd2hpdGU7XG5cdGJhY2tncm91bmQtY29sb3I6IHdwKGNvbG9yLCBwcmltYXJ5KTtcblx0Ym9yZGVyOiBub25lO1xuXHRib3JkZXItcmFkaXVzOiA1MHB4O1xuXHR0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3MgZWFzZTsgLy8gQWRkZWQgdHJhbnNpdGlvblxuXG5cblx0Jjpob3ZlciB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogIzE3MWIzODtcblx0fVxufVxuXG4iXSwiZmlsZSI6Ii9hcHAvdGhlbWVzL3N0dWNjby9zcmMvc2Nzcy9zdHlsZS5zY3NzIn0= */
