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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

sup {
  top: -0.5em; }

sub {
  bottom: -0.25em; }

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

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

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

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

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

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

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

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

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

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

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

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

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

/**
 * It's recommended that you don't attempt to style these elements.
 * Firefox's implementation doesn't respect box-sizing, padding, or width.
 *
 * 1. Address box sizing set to `content-box` in IE 8/9/10.
 * 2. Remove excess padding in IE 8/9/10.
 */
input[type="checkbox"],
input[type="radio"] {
  box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */ }

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

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

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

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

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

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

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

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

td,
th {
  padding: 0; }

/* @function map-deep-get($map, $keys...) {
  @each $key in $keys {
    $map: map-get($map, $key);
  }

  @return $map;
} */
html {
  box-sizing: border-box;
  color: #222;
  font-family: "Open Sans", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  font-size: 1em;
  line-height: 1.4; }

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

body {
  display: flex;
  flex-direction: column;
  min-height: 100vh; }

h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0;
  text-rendering: optimizeLegibility; }

p {
  margin: 1em 0; }

ul,
ol {
  margin: 1em 0;
  padding-left: 1em; }

dl {
  margin: 1em 0; }
  dl dt {
    font-weight: bold;
    margin-top: .5em; }
  dl dd {
    margin: 0; }

a {
  transition: color 200ms linear; }

hr {
  border: 0;
  border-top: 1px solid gray;
  display: block;
  height: 1px;
  margin: 1em 0;
  padding: 0; }

img {
  max-width: 100%; }

audio,
canvas,
iframe,
img,
svg,
video {
  vertical-align: middle; }

code,
kbd,
pre,
samp {
  font-family: "Source Code Pro", "Menlo", "Monaco", "Consolas", "Courier New", monospace; }

samp {
  font-size: 90%; }

abbr {
  cursor: help; }

table {
  margin: 1em 0; }

tr,
td,
th {
  vertical-align: middle; }

th {
  padding: 1em;
  text-align: left; }

td {
  padding: 1em; }

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

textarea {
  resize: vertical; }

select {
  max-width: 100%;
  width: auto; }

[type='search'] {
  appearance: none; }

[type='radio'],
[type='checkbox'] {
  line-height: normal;
  margin: 4px 0 0;
  margin-top: 1px \9; }

[type='file'],
[type='range'] {
  display: block;
  width: 100%; }

[multiple],
[size] {
  height: auto; }

button,
[type='submit'] {
  appearance: none;
  border: 0;
  cursor: pointer;
  user-select: none;
  vertical-align: middle;
  white-space: nowrap; }

address {
  font-style: normal; }

main {
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
  outline: 0; }

nav ul {
  list-style: none;
  margin: 0;
  padding: 0; }

@font-face {
  font-family: 'nscc-icons';
  src: url("/assets/dist/fonts/nscc-icons/nscc-icons.eot?46703332");
  src: url("/assets/dist/fonts/nscc-icons/nscc-icons.eot?46703332#iefix") format("embedded-opentype"), url("/assets/dist/fonts/nscc-icons/nscc-icons.woff2?46703332") format("woff2"), url("/assets/dist/fonts/nscc-icons/nscc-icons.woff?46703332") format("woff"), url("/assets/dist/fonts/nscc-icons/nscc-icons.ttf?46703332") format("truetype"), url("/assets/dist/fonts/nscc-icons/nscc-icons.svg?46703332#nscc-icons") format("svg");
  font-weight: normal;
  font-style: normal; }

/* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */
/* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */
/*
@media screen and (-webkit-min-device-pixel-ratio:0) {
  @font-face {
    font-family: 'nscc-icons';
    src: url('../font/nscc-icons.svg?46703332#nscc-icons') format('svg');
  }
}
*/
[class^="icon-"]:before, [class*=" icon-"]:before {
  font-family: "nscc-icons";
  font-style: normal;
  font-weight: normal;
  speak: none;
  display: inline-block;
  text-decoration: inherit;
  width: 1em;
  margin-right: .2em;
  text-align: center;
  /* opacity: .8; */
  /* For safety - reset parent styles, that can break glyph codes*/
  font-variant: normal;
  text-transform: none;
  /* fix buttons height, for twitter bootstrap */
  line-height: 1em;
  /* Animation center compensation - margins should be symmetric */
  /* remove if not needed */
  margin-left: .2em;
  /* you can be more comfortable with increased icons size */
  /* font-size: 120%; */
  /* Font smoothing. That was taken from TWBS */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  /* Uncomment for 3D effect */
  /* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */ }

.icon-cw:before {
  content: '\e800'; }

/* '' */
.icon-plus:before {
  content: '\e801'; }

/* '' */
.icon-minus:before {
  content: '\e802'; }

/* '' */
.icon-down-dir:before {
  content: '\e803'; }

/* '' */
.icon-search:before {
  content: '\e804'; }

/* '' */
.icon-gplus:before {
  content: '\e805'; }

/* '' */
.icon-twitter:before {
  content: '\e806'; }

/* '' */
.icon-facebook:before {
  content: '\e807'; }

/* '' */
.icon-flickr:before {
  content: '\e808'; }

/* '' */
.icon-pinterest:before {
  content: '\e809'; }

/* '' */
.icon-instagram:before {
  content: '\e80a'; }

/* '' */
.icon-youtube:before {
  content: '\e80b'; }

/* '' */
.icon-angle-circled-right:before {
  content: '\e80c'; }

/* '' */
.icon-ok-circled:before {
  content: '\e80d'; }

/* '' */
.icon-left-open-big:before {
  content: '\e80e'; }

/* '' */
.icon-right-open-big:before {
  content: '\e80f'; }

/* '' */
.icon-attention:before {
  content: '\e810'; }

/* '' */
.icon-ok:before {
  content: '\e811'; }

/* '' */
.icon-up-bold:before {
  content: '\e812'; }

/* '' */
.icon-info-circled:before {
  content: '\e813'; }

/* '' */
.icon-bell:before {
  content: '\e814'; }

/* '' */
.icon-cancel:before {
  content: '\e815'; }

/* '' */
.icon-linkedin:before {
  content: '\e816'; }

/* '' */
.button, .e2ma_signup_form_button,
a.button,
a.e2ma_signup_form_button,
p > a.button,
p > a.e2ma_signup_form_button {
  background-color: #F59333;
  background-image: none;
  border: 0;
  border-radius: 2px;
  color: #fff;
  cursor: pointer;
  display: inline-block;
  font-size: 0.938rem;
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
  letter-spacing: 1px;
  min-width: 180px;
  padding: 0.938rem 1.563rem;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
  touch-action: manipulation;
  transition: all .3s;
  user-select: none;
  vertical-align: middle;
  white-space: nowrap; }
  .button:hover, .e2ma_signup_form_button:hover, .button:active, .e2ma_signup_form_button:active, .button:focus, .e2ma_signup_form_button:focus,
  a.button:hover,
  a.e2ma_signup_form_button:hover,
  a.button:active,
  a.e2ma_signup_form_button:active,
  a.button:focus,
  a.e2ma_signup_form_button:focus,
  p > a.button:hover,
  p > a.e2ma_signup_form_button:hover,
  p > a.button:active,
  p > a.e2ma_signup_form_button:active,
  p > a.button:focus,
  p > a.e2ma_signup_form_button:focus {
    color: #fff;
    background-color: #f7ad64; }
  .button:active, .e2ma_signup_form_button:active, .button:active:focus, .e2ma_signup_form_button:active:focus,
  a.button:active,
  a.e2ma_signup_form_button:active,
  a.button:active:focus,
  a.e2ma_signup_form_button:active:focus,
  p > a.button:active,
  p > a.e2ma_signup_form_button:active,
  p > a.button:active:focus,
  p > a.e2ma_signup_form_button:active:focus {
    text-decoration: none; }
  .button:focus, .e2ma_signup_form_button:focus,
  a.button:focus,
  a.e2ma_signup_form_button:focus,
  p > a.button:focus,
  p > a.e2ma_signup_form_button:focus {
    outline: 1px dotted rgba(0, 0, 0, 0.4);
    text-decoration: underline; }
  .button[disabled], .e2ma_signup_form_button[disabled], .button.is-disabled, .is-disabled.e2ma_signup_form_button,
  a.button[disabled],
  a.e2ma_signup_form_button[disabled],
  a.button.is-disabled,
  a.is-disabled.e2ma_signup_form_button,
  p > a.button[disabled],
  p > a.e2ma_signup_form_button[disabled],
  p > a.button.is-disabled,
  p > a.is-disabled.e2ma_signup_form_button {
    box-shadow: none;
    cursor: not-allowed;
    opacity: .65;
    pointer-events: none; }
  .button:before, .e2ma_signup_form_button:before,
  a.button:before,
  a.e2ma_signup_form_button:before,
  p > a.button:before,
  p > a.e2ma_signup_form_button:before {
    content: none; }
  .button.-primary, .e2ma_signup_form_button,
  a.button.-primary,
  a.e2ma_signup_form_button,
  p > a.button.-primary,
  p > a.e2ma_signup_form_button {
    background-color: #F59333;
    transition: background-color .25s ease-out; }
    .button.-primary:hover, .e2ma_signup_form_button:hover, .button.-primary:active, .e2ma_signup_form_button:active, .button.-primary:focus, .e2ma_signup_form_button:focus,
    a.button.-primary:hover,
    a.e2ma_signup_form_button:hover,
    a.button.-primary:active,
    a.e2ma_signup_form_button:active,
    a.button.-primary:focus,
    a.e2ma_signup_form_button:focus,
    p > a.button.-primary:hover,
    p > a.e2ma_signup_form_button:hover,
    p > a.button.-primary:active,
    p > a.e2ma_signup_form_button:active,
    p > a.button.-primary:focus,
    p > a.e2ma_signup_form_button:focus {
      background-color: #f7ad64; }
  .button.-secondary, .-secondary.e2ma_signup_form_button,
  a.button.-secondary,
  a.-secondary.e2ma_signup_form_button,
  p > a.button.-secondary,
  p > a.-secondary.e2ma_signup_form_button {
    background-color: #5C4D9C; }
    .button.-secondary:hover, .-secondary.e2ma_signup_form_button:hover,
    a.button.-secondary:hover,
    a.-secondary.e2ma_signup_form_button:hover,
    p > a.button.-secondary:hover,
    p > a.-secondary.e2ma_signup_form_button:hover {
      background-color: #7668b4; }
  .button.-tertiary, .-tertiary.e2ma_signup_form_button,
  a.button.-tertiary,
  a.-tertiary.e2ma_signup_form_button,
  p > a.button.-tertiary,
  p > a.-tertiary.e2ma_signup_form_button {
    background-color: #03123F; }
    .button.-tertiary:hover, .-tertiary.e2ma_signup_form_button:hover,
    a.button.-tertiary:hover,
    a.-tertiary.e2ma_signup_form_button:hover,
    p > a.button.-tertiary:hover,
    p > a.-tertiary.e2ma_signup_form_button:hover {
      background-color: #052070; }
    .button.-tertiary:focus, .-tertiary.e2ma_signup_form_button:focus,
    a.button.-tertiary:focus,
    a.-tertiary.e2ma_signup_form_button:focus,
    p > a.button.-tertiary:focus,
    p > a.-tertiary.e2ma_signup_form_button:focus {
      text-decoration: none; }
  .button.-large, .-large.e2ma_signup_form_button,
  a.button.-large,
  a.-large.e2ma_signup_form_button,
  p > a.button.-large,
  p > a.-large.e2ma_signup_form_button {
    font-size: 0.938em;
    padding: 0.938em 1.563em; }
  .button.-medium, .-medium.e2ma_signup_form_button,
  a.button.-medium,
  a.-medium.e2ma_signup_form_button,
  p > a.button.-medium,
  p > a.-medium.e2ma_signup_form_button {
    font-size: 0.938em;
    padding: 0.938em 1.563em; }
  .button.-small, .e2ma_signup_form_button,
  a.button.-small,
  a.e2ma_signup_form_button,
  p > a.button.-small,
  p > a.e2ma_signup_form_button {
    font-size: 0.938em;
    min-width: auto;
    padding: 0.563em 2.125em; }
  .button.-block, .-block.e2ma_signup_form_button,
  a.button.-block,
  a.-block.e2ma_signup_form_button,
  p > a.button.-block,
  p > a.-block.e2ma_signup_form_button {
    display: block;
    padding: 2em !important;
    width: 100%; }
  .button.-center, .-center.e2ma_signup_form_button,
  a.button.-center,
  a.-center.e2ma_signup_form_button,
  p > a.button.-center,
  p > a.-center.e2ma_signup_form_button {
    justify-self: center; }
  .button.-full, .-full.e2ma_signup_form_button,
  a.button.-full,
  a.-full.e2ma_signup_form_button,
  p > a.button.-full,
  p > a.-full.e2ma_signup_form_button {
    justify-self: stretch; }
  .button.-left, .-left.e2ma_signup_form_button,
  a.button.-left,
  a.-left.e2ma_signup_form_button,
  p > a.button.-left,
  p > a.-left.e2ma_signup_form_button {
    justify-self: left; }
  .button.-right, .-right.e2ma_signup_form_button,
  a.button.-right,
  a.-right.e2ma_signup_form_button,
  p > a.button.-right,
  p > a.-right.e2ma_signup_form_button {
    justify-self: right; }

.button-container {
  display: grid;
  width: 100%; }

.button-container + .button-container {
  margin-top: 1em; }

.baskerville {
  font-family: "Baskerville", "Libre Baskerville", "Georgia", "Times", "Times New Roman", "serif"; }

.monospace {
  font-family: "Source Code Pro", "Menlo", "Monaco", "Consolas", "Courier New", monospace; }

.visually-hidden {
  display: none; }

ul,
ol {
  margin-left: 0.15em; }

li {
  color: #03123F;
  font-size: 1rem;
  font-weight: 300;
  line-height: 1.4;
  margin-bottom: 1em; }
  li:last-of-type {
    margin-bottom: 0; }
  .article li a {
    color: #5C4D9C;
    position: relative;
    text-decoration: none; }
    .article li a:before {
      position: absolute;
      margin: 0 auto;
      top: 100%;
      left: 0;
      width: 100%;
      height: 2px;
      background-color: #5C4D9C;
      content: '';
      opacity: 0.3;
      transform: scaleX(0.9);
      transition: all .3s; }
    .article li a:hover:before {
      opacity: 1;
      transform: scaleX(1); }

.loader {
  margin: 0px auto;
  position: relative;
  width: 80px; }
  .loader:before {
    content: '';
    display: block;
    padding-top: 100%; }
  .loader.hidden {
    display: none; }

.circular {
  animation: rotate 2s linear infinite;
  height: 100%;
  margin: auto;
  position: absolute;
  transform-origin: center center;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  width: 100%; }

.path {
  animation: dash 1.5s ease-in-out infinite, color 6s ease-in-out infinite;
  stroke-dasharray: 1,200;
  stroke-dashoffset: 0;
  stroke-linecap: round; }

@keyframes rotate {
  100% {
    transform: rotate(360deg); } }

@keyframes dash {
  0% {
    stroke-dasharray: 1,200;
    stroke-dashoffset: 0; }
  50% {
    stroke-dasharray: 89,200;
    stroke-dashoffset: -35px; }
  100% {
    stroke-dasharray: 89,200;
    stroke-dashoffset: -124px; } }

@keyframes color {
  100%, 0% {
    stroke: #DDDDDD; }
  40% {
    stroke: #DDDDDD; }
  66% {
    stroke: white; }
  80%, 90% {
    stroke: #53565B; } }

h1 {
  color: #03123F;
  font-size: 4.625em;
  text-transform: uppercase; }

h2, h3 {
  font-family: "Open Sans Condensed", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  font-weight: 700;
  text-transform: uppercase; }

h2 {
  color: #03123F;
  font-size: 1.625em; }
  @media (min-width: 37.5em) {
    h2 {
      font-size: 2.25em; } }
  @media (min-width: 50em) {
    h2 {
      font-size: 2.625em; } }

h3 {
  font-size: 1.375em; }

h2, h3, h4, h5, h6 {
  color: #03123F; }
  .article h2, .article h3, .article h4, .article h5, .article h6 {
    margin-top: 1.250em; }

p {
  color: #03123F;
  font-size: 1rem;
  font-weight: 300;
  line-height: 1.4; }
  p.lead-paragraph {
    font-size: 1.188rem;
    margin-bottom: 2em;
    margin-top: 1em; }
  p.accent {
    font-family: "Baskerville", "Libre Baskerville", "Georgia", "Times", "Times New Roman", "serif";
    font-style: italic; }
  p.meta {
    font-size: 0.75em; }

hr {
  border: 0;
  border-bottom: 1px solid #F5F5F0;
  height: 0;
  margin: 2em 0; }

ol ol li {
  list-style-type: lower-alpha; }

ol ol ol li {
  list-style-type: lower-roman; }

p > a {
  color: #5C4D9C;
  position: relative;
  text-decoration: none;
  display: inline-block; }
  p > a:before {
    position: absolute;
    margin: 0 auto;
    top: 100%;
    left: 0;
    width: 100%;
    height: 2px;
    background-color: #5C4D9C;
    content: '';
    opacity: 0.3;
    transform: scaleX(0.9);
    transition: all .3s; }
  p > a:hover:before {
    opacity: 1;
    transform: scaleX(1); }

a {
  transition: color 150ms linear;
  color: #03123F; }
  a.accent {
    font-family: "Baskerville", "Libre Baskerville", "Georgia", "Times", "Times New Roman", "serif";
    font-style: italic; }
  a:hover {
    color: #052070; }

table {
  color: #03123F;
  font-weight: 300;
  line-height: 1.4;
  font-size: 1rem; }

figcaption {
  text-align: center;
  color: #2F3D47;
  font-size: 0.875rem;
  font-weight: 300;
  line-height: 1.4;
  margin-top: 5px;
  border-bottom: 1px solid #DDDDDD;
  display: inline-block;
  padding-bottom: 5px; }

fieldset {
  border: 0;
  margin: 0 0 2em;
  min-width: 0;
  padding: 0; }
  fieldset[disabled] .form-control, fieldset[disabled] .e2ma_signup_form_element > input {
    background-color: #eee;
    cursor: not-allowed;
    opacity: 1; }

legend {
  border: 0;
  border-bottom: 1px solid #e5e5e5;
  color: #333;
  display: block;
  font-size: 21px;
  line-height: inherit;
  margin-bottom: 20px;
  padding: 0;
  width: 100%; }

label, .e2ma_signup_form_label {
  display: inline-block;
  font-weight: bold;
  margin-bottom: 5px;
  max-width: 100%; }
  label.required:after, .required.e2ma_signup_form_label:after {
    content: '*'; }
  label[aria-hidden=true], .e2ma_signup_form_label[aria-hidden=true] {
    display: none; }
  label small, .e2ma_signup_form_label small {
    color: #7D7D7D;
    padding-left: 5px; }

.checkbox-inline label:after, .checkbox-inline .e2ma_signup_form_label:after {
  content: ''; }

.form-control, .e2ma_signup_form_element > input {
  background-color: white;
  background-image: none;
  border: 1px solid #ccc;
  border-radius: 2px;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  color: #53565B;
  display: block;
  font-size: .875em;
  height: 46px;
  line-height: 1.33;
  padding: 10px 16px;
  transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
  width: 100%; }
  .form-control:focus, .e2ma_signup_form_element > input:focus {
    border-color: #eaeaea;
    box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(234, 234, 234, 0.6);
    outline: 0; }
  .form-control::-webkit-input-placeholder, .e2ma_signup_form_element > input::-webkit-input-placeholder {
    color: #7D7D7D; }
  .form-control::-moz-placeholder, .e2ma_signup_form_element > input::-moz-placeholder {
    color: #7D7D7D; }
  .form-control:-moz-placeholder, .e2ma_signup_form_element > input:-moz-placeholder {
    color: #7D7D7D; }
  .form-control:-ms-input-placeholder, .e2ma_signup_form_element > input:-ms-input-placeholder {
    color: #7D7D7D; }
  .is-submitted .form-control:invalid, .is-submitted .e2ma_signup_form_element > input:invalid, .is-submitted .form-control:required:invalid, .is-submitted .e2ma_signup_form_element > input:required:invalid {
    border-color: #b03535;
    box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px #d45252;
    outline: 0; }
  .form-control[disabled], .e2ma_signup_form_element > input[disabled], .form-control[readonly], .e2ma_signup_form_element > input[readonly] {
    background-color: #eee;
    cursor: not-allowed;
    opacity: 1; }

.form-control-group, .e2ma_signup_form_row {
  margin-bottom: 1em;
  margin-top: 1em;
  position: relative; }

.form-control.has-icon, .e2ma_signup_form_element > input.has-icon {
  padding-right: 45px; }

textarea {
  resize: vertical; }
  textarea.form-control {
    height: 150px; }

[type='radio'],
[type='checkbox'] {
  line-height: normal;
  margin: 4px 0 0;
  margin-top: 1px \9; }

[type='file'],
[type='range'] {
  display: block;
  width: 100%; }

[multiple],
[size] {
  height: auto; }

[type='file']:focus,
[type='radio']:focus,
[type='checkbox']:focus {
  outline: 5px auto -webkit-focus-ring-color;
  outline-offset: -2px; }

select,
select.form-control {
  color: #7D7D7D;
  font-size: .875em;
  padding-right: 45px;
  position: relative;
  width: 100%;
  -webkit-appearance: none;
  -moz-appearance: none; }

select::-ms-expand {
  display: none; }

.form-control-select-wrapper {
  display: block;
  max-width: 100%;
  position: relative;
  width: auto; }

.form-control__instructions {
  color: #7D7D7D;
  display: block;
  font-weight: 300;
  font-size: .85em;
  margin-bottom: .5em; }

.field-icon {
  color: #53565B;
  font-size: 1.1em;
  pointer-events: none;
  position: absolute;
  right: 13px;
  top: 50%;
  -webkit-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  -o-transform: translateY(-50%);
  transform: translateY(-50%);
  z-index: 1; }

button,
[type='submit'] {
  border: 0;
  cursor: pointer;
  margin-bottom: 30px;
  user-select: none;
  vertical-align: middle;
  white-space: nowrap; }
  button:active, button:focus,
  [type='submit']:active,
  [type='submit']:focus {
    outline: thin dotted;
    outline-offset: -2px; }

.form-group {
  margin-bottom: 15px; }

.radio,
.checkbox {
  display: block;
  margin-bottom: 10px;
  margin-top: 10px;
  min-height: 20px;
  position: relative; }
  .radio label, .radio .e2ma_signup_form_label,
  .checkbox label,
  .checkbox .e2ma_signup_form_label {
    color: #53565B;
    cursor: pointer;
    font-size: .875em;
    font-weight: normal;
    margin-bottom: 0;
    padding-left: 20px; }

.radio [type='radio'],
.radio-inline [type='radio'],
.checkbox [type='checkbox'],
.checkbox-inline [type='checkbox'] {
  margin-left: -20px;
  margin-top: 4px \9;
  position: absolute; }

.radio + .radio,
.checkbox + .checkbox {
  margin-top: -5px; }

.radio-inline,
.checkbox-inline {
  cursor: pointer;
  display: inline-block;
  font-weight: normal;
  margin-bottom: 0;
  padding-left: 20px;
  vertical-align: middle; }

.radio-inline + .radio-inline,
.checkbox-inline + .checkbox-inline {
  margin-left: 10px;
  margin-top: 0; }

[type='radio'][disabled],
[type='checkbox'][disabled],
[type='radio'].disabled,
[type='checkbox'].disabled,
[disabled] [type='radio'],
[disabled] [type='checkbox'] {
  cursor: not-allowed; }

.radio-inline.disabled,
.checkbox-inline.disabled,
[disabled] .radio-inline,
[disabled] .checkbox-inline {
  cursor: not-allowed; }

.radio.disabled label, .radio.disabled .e2ma_signup_form_label,
.checkbox.disabled label,
.checkbox.disabled .e2ma_signup_form_label,
[disabled] .radio label,
[disabled] .radio .e2ma_signup_form_label,
[disabled] .checkbox label,
[disabled] .checkbox .e2ma_signup_form_label {
  cursor: not-allowed; }

input#HoneyBarbershopPot {
  display: none; }

/*!
* Pikaday
* Copyright (c) 2014 David Bushell | BSD & MIT license | http://dbushell.com/
*/
.pika-single {
  background-color: white;
  border: 1px solid #ccc;
  border-bottom-color: #bbb;
  color: #7D7D7D;
  display: block;
  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
  position: relative;
  z-index: 9999; }
  .pika-single:after {
    clear: both;
    content: '';
    display: table; }
  .pika-single.is-hidden {
    display: none; }
  .pika-single.is-bound {
    position: absolute;
    box-shadow: 0 5px 15px -5px rgba(0, 0, 0, 0.5); }
  .pika-single.dark {
    background-color: #53565B;
    border-color: #7D7D7D; }

.pika-lendar {
  float: left;
  margin: 8px;
  width: 240px; }

.pika-title {
  color: #DDDDDD;
  position: relative;
  text-align: center;
  text-transform: uppercase; }
  .dark .pika-title {
    color: white; }
  .pika-title select {
    cursor: pointer;
    filter: alpha(opacity=0);
    left: 0;
    margin: 0;
    opacity: 0;
    position: absolute;
    top: 5px;
    z-index: 9998; }

.pika-label {
  background-color: #fff;
  display: inline-block;
  font-size: 14px;
  font-weight: bold;
  line-height: 20px;
  margin: 0;
  overflow: hidden;
  padding: 5px 3px;
  position: relative;
  z-index: 9999; }
  .dark .pika-label {
    background-color: #53565B; }

.pika-prev,
.pika-next {
  background-color: transparent;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: 75% 75%;
  border: 0;
  cursor: pointer;
  display: block;
  height: 30px;
  opacity: .5;
  outline: none;
  overflow: hidden;
  padding: 0;
  position: relative;
  text-indent: 20px;
  white-space: nowrap;
  width: 20px; }
  .pika-prev:hover,
  .pika-next:hover {
    opacity: 1; }
  .pika-prev.is-disabled,
  .pika-next.is-disabled {
    cursor: default;
    opacity: .2; }

.pika-prev,
.is-rtl .pika-next {
  background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAAUklEQVR42u3VMQoAIBADQf8Pgj+OD9hG2CtONJB2ymQkKe0HbwAP0xucDiQWARITIDEBEnMgMQ8S8+AqBIl6kKgHiXqQqAeJepBo/z38J/U0uAHlaBkBl9I4GwAAAABJRU5ErkJggg==");
  float: left; }

.pika-next,
.is-rtl .pika-prev {
  background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAAU0lEQVR42u3VOwoAMAgE0dwfAnNjU26bYkBCFGwfiL9VVWoO+BJ4Gf3gtsEKKoFBNTCoCAYVwaAiGNQGMUHMkjGbgjk2mIONuXo0nC8XnCf1JXgArVIZAQh5TKYAAAAASUVORK5CYII=");
  float: right; }

.pika-select {
  display: inline-block; }

.pika-table {
  border: 0;
  border-collapse: collapse;
  border-spacing: 0;
  width: 100%; }
  .pika-table tr {
    border-bottom: none !important; }
  .pika-table th,
  .pika-table td {
    border-right: none !important;
    padding: 0;
    width: 14.285714285714286%; }
    .dark .pika-table th, .dark
    .pika-table td {
      border-bottom-color: #7D7D7D; }
  .pika-table th {
    color: #5C4D9C;
    font-size: 12px;
    font-weight: bold;
    line-height: 25px;
    padding-bottom: 10px;
    text-align: center; }
    .dark .pika-table th {
      color: #6757ac; }
  .pika-table td:first-child {
    padding-top: 0 !important; }
  .pika-table td:last-child {
    padding-bottom: 0 !important; }
  .pika-table abbr {
    border-bottom: none;
    cursor: help; }

.pika-button {
  background-color: white;
  border-radius: 3px;
  box-sizing: border-box;
  color: #7D7D7D;
  cursor: pointer;
  display: block;
  font-size: 12px;
  line-height: 15px;
  margin: 0;
  outline: none;
  padding: 12px 5px 8px;
  text-align: center;
  width: 100%; }
  .dark .pika-button {
    background-color: #53565B;
    color: white; }
  .is-today .pika-button {
    color: #d0d0d0;
    font-weight: bold; }
    .dark .is-today .pika-button {
      color: #eaeaea; }
  .is-selected .pika-button {
    background-color: #DDDDDD;
    box-shadow: none;
    color: #fff;
    font-weight: bold; }
    .dark .is-selected .pika-button {
      background-color: #eaeaea; }
  .is-inrange .pika-button {
    background: white;
    border-radius: 0; }
  .is-startrange .pika-button,
  .is-endrange .pika-button {
    background-color: #DDDDDD;
    box-shadow: none;
    color: #fff;
    font-weight: bold; }
  .is-disabled .pika-button {
    color: #7D7D7D;
    cursor: default;
    opacity: .3;
    pointer-events: none; }
  .pika-button:hover {
    background-color: #F5F5F0 !important;
    box-shadow: none !important;
    border-radius: 0; }
    .dark .pika-button:hover {
      background-color: #DDDDDD !important; }

.pika-week {
  color: #DDDDDD;
  font-size: 11px; }

.datepicker-container {
  position: relative;
  display: block; }

.datepicker-control[readonly] {
  background-color: white;
  border-color: #DDDDDD;
  color: #7D7D7D;
  cursor: pointer; }

.datepicker-control.form-control--dark[readonly] {
  background-color: #7D7D7D;
  border-color: transparent;
  color: white; }

.datepicker-control.has-value {
  background-image: none; }

.remove-button {
  display: none;
  /*
    @include size(auto 37px);
    background-color: transparent;
    background-image: path('icon-close.svg');
    background-position: 0 50%;
    background-repeat: no-repeat;
    color: #a8a8a8;
    display: inline-block;
    font-size: 11px;
    padding: 0;
    padding-left: 22px;
    position: absolute;
    right: 14px;
    text-transform: uppercase;
    top: 18px;
  */ }

table {
  margin: 1em 0;
  max-width: 100%;
  width: 100%; }
  table tr {
    border-bottom: 1px solid #DDDDDD;
    max-width: 100%; }
  table th {
    display: none;
    max-width: 100%; }
  table td {
    display: block;
    padding: 0;
    max-width: 100%;
    vertical-align: top; }
    table td:first-child {
      padding-top: .5em; }
    table td:last-child {
      padding-bottom: .5em; }
    table td:before {
      content: attr(data-th) ": ";
      color: #2F3D47;
      font-size: 11px;
      font-weight: 400;
      text-transform: uppercase;
      line-height: 30px;
      display: inline-block;
      padding-right: 15px; }
      @media (min-width: 900px) {
        table td:before {
          display: none; } }
  @media (min-width: 900px) {
    table th:not(:last-child),
    table td:not(:last-child) {
      border-right: 1px solid #F5F5F0; } }
  table th, table td {
    text-align: left; }
    @media (min-width: 900px) {
      table th, table td {
        display: table-cell;
        padding: .25em .5em; }
        table th:first-child, table td:first-child {
          padding-left: 0; }
        table th:last-child, table td:last-child {
          padding-right: 0; } }

.video-embed {
  position: relative;
  display: block;
  width: 100%;
  padding: 0;
  overflow: hidden; }
  .video-embed::before {
    display: block;
    content: ""; }
  .video-embed .video-embed-item,
  .video-embed iframe,
  .video-embed embed,
  .video-embed object,
  .video-embed video {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0; }

.video-embed-21by9::before {
  padding-top: 42.85714%; }

.video-embed-16by9::before {
  padding-top: 56.25%; }

.video-embed-4by3::before {
  padding-top: 75%; }

.video-embed-1by1::before {
  padding-top: 100%; }

.grid, .callout, .event__list.-grid {
  display: grid;
  position: relative;
  z-index: 1;
  grid-template-columns: 100%;
  grid-template-rows: auto;
  grid-row-gap: 15px;
  grid-column-gap: 40px; }
  .grid.-small, .-small.callout, .callout.e2ma_signup_form_button, .-small.event__list.-grid, .event__list.-grid.e2ma_signup_form_button, .grid.e2ma_signup_form_button {
    grid-row-gap: 20px;
    grid-column-gap: 15px; }
  .grid.-footer, .-footer.callout, .-footer.event__list.-grid {
    grid-template-columns: 1fr; }
    @media (min-width: 50em) {
      .grid.-footer, .-footer.callout, .-footer.event__list.-grid {
        grid-template-columns: 1fr 1fr; } }
    @media (min-width: 63.75em) {
      .grid.-footer, .-footer.callout, .-footer.event__list.-grid {
        grid-template-columns: auto auto auto 130px; } }
  .grid.-col4, .-col4.callout, .-col4.event__list.-grid {
    grid-template-columns: 1fr; }
    @media (min-width: 50em) {
      .grid.-col4, .-col4.callout, .-col4.event__list.-grid {
        grid-template-columns: 1fr 1fr; } }
    @media (min-width: 63.75em) {
      .grid.-col4, .-col4.callout, .-col4.event__list.-grid {
        grid-template-columns: 1fr 1fr 1fr 1fr; } }
  .grid.-col5, .-col5.callout, .-col5.event__list.-grid {
    grid-template-columns: 1fr; }
    @media (min-width: 50em) {
      .grid.-col5, .-col5.callout, .-col5.event__list.-grid {
        grid-template-columns: 1fr 1fr; } }
    @media (min-width: 63.75em) {
      .grid.-col5, .-col5.callout, .-col5.event__list.-grid {
        grid-template-columns: 1fr 1fr 1fr 1fr 1fr; } }
  .grid.-col6, .-col6.callout, .-col6.event__list.-grid {
    grid-template-columns: 1fr 1fr; }
    @media (min-width: 50em) {
      .grid.-col6, .-col6.callout, .-col6.event__list.-grid {
        grid-template-columns: 1fr 1fr 1fr; } }
    @media (min-width: 63.75em) {
      .grid.-col6, .-col6.callout, .-col6.event__list.-grid {
        grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr; } }
  .grid.-col7, .-col7.callout, .-col7.event__list.-grid {
    grid-template-columns: 1fr 1fr; }
    @media (min-width: 50em) {
      .grid.-col7, .-col7.callout, .-col7.event__list.-grid {
        grid-template-columns: 1fr 1fr 1fr; } }
    @media (min-width: 63.75em) {
      .grid.-col7, .-col7.callout, .-col7.event__list.-grid {
        grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr; } }
  .grid.-col8, .-col8.callout, .-col8.event__list.-grid {
    grid-template-columns: 1fr 1fr; }
    @media (min-width: 50em) {
      .grid.-col8, .-col8.callout, .-col8.event__list.-grid {
        grid-template-columns: 1fr 1fr 1fr 1fr; } }
    @media (min-width: 63.75em) {
      .grid.-col8, .-col8.callout, .-col8.event__list.-grid {
        grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr; } }
  .grid.-featured-entry-grid, .-featured-entry-grid.callout, .callout.featured-entry__grid, .-featured-entry-grid.event__list.-grid, .event__list.-grid.featured-entry__grid, .grid.featured-entry__grid {
    grid-template-rows: auto auto;
    grid-column-gap: 40px; }
    @media (min-width: 50em) {
      .grid.-featured-entry-grid, .-featured-entry-grid.callout, .callout.featured-entry__grid, .-featured-entry-grid.event__list.-grid, .event__list.-grid.featured-entry__grid, .grid.featured-entry__grid {
        grid-template-columns: 1fr 2fr;
        grid-template-rows: 1fr; } }
  .grid.-listing-grid, .-listing-grid.callout, .event__list:not(.-grid) .callout.event, .schedule__list .callout.schedule, .event__list:not(.-grid) .grid.event, .event__list:not(.-grid) .event.event__list.-grid, .-listing-grid.event__list.-grid, .schedule__list .event__list.-grid.schedule, .schedule__list .grid.schedule {
    grid-template-columns: 1fr; }
    @media (min-width: 50em) {
      .grid.-listing-grid, .-listing-grid.callout, .event__list:not(.-grid) .callout.event, .schedule__list .callout.schedule, .event__list:not(.-grid) .grid.event, .event__list:not(.-grid) .event.event__list.-grid, .-listing-grid.event__list.-grid, .schedule__list .event__list.-grid.schedule, .schedule__list .grid.schedule {
        grid-column-gap: 15px;
        grid-template-columns: 1fr 1fr; } }
    @media (min-width: 63.75em) {
      .grid.-listing-grid, .-listing-grid.callout, .event__list:not(.-grid) .callout.event, .schedule__list .callout.schedule, .event__list:not(.-grid) .grid.event, .event__list:not(.-grid) .event.event__list.-grid, .-listing-grid.event__list.-grid, .schedule__list .event__list.-grid.schedule, .schedule__list .grid.schedule {
        grid-column-gap: 30px;
        grid-template-columns: 18.4% auto 25% 25%; } }
    @media (min-width: 67.1875em) {
      .grid.-listing-grid, .-listing-grid.callout, .event__list:not(.-grid) .callout.event, .schedule__list .callout.schedule, .event__list:not(.-grid) .grid.event, .event__list:not(.-grid) .event.event__list.-grid, .-listing-grid.event__list.-grid, .schedule__list .event__list.-grid.schedule, .schedule__list .grid.schedule {
        grid-column-gap: 40px;
        grid-template-columns: 18.4% auto 27.5% 23%; } }
  .grid.-col3, .-col3.callout, .-col3.event__list.-grid {
    grid-template-columns: 1fr 1fr; }
    @media (min-width: 37.5em) {
      .grid.-col3, .-col3.callout, .-col3.event__list.-grid {
        grid-template-columns: 1fr 1fr 1fr; } }
  .grid.-col3-2-1, .-col3-2-1.callout, .-col3-2-1.event__list.-grid {
    grid-template-columns: 1fr; }
    @media (min-width: 37.5em) {
      .grid.-col3-2-1, .-col3-2-1.callout, .-col3-2-1.event__list.-grid {
        grid-template-columns: 1fr 1fr; } }
    @media (min-width: 50em) {
      .grid.-col3-2-1, .-col3-2-1.callout, .-col3-2-1.event__list.-grid {
        grid-template-columns: 1fr 1fr 1fr; } }
  .grid.-col3-1, .-col3-1.callout, .event__list.-grid {
    grid-template-columns: 1fr; }
    @media (min-width: 50em) {
      .grid.-col3-1, .-col3-1.callout, .event__list.-grid {
        grid-template-columns: 1fr 1fr 1fr; } }
    @media (min-width: 63.75em) {
      .grid.-col3-1, .-col3-1.callout, .event__list.-grid {
        grid-column-gap: calc(40px * 1.5); } }
  .grid.-col2, .callout, .-col2.event__list.-grid, .event__list.-grid.callout {
    grid-template-columns: 1fr; }
    @media (min-width: 50em) {
      .grid.-col2, .callout, .-col2.event__list.-grid, .event__list.-grid.callout {
        grid-template-columns: 1fr 1fr; } }
  .grid.-detail, .-detail.callout, .-detail.event__list.-grid {
    grid-template-columns: 1fr; }
    @media (min-width: 50em) {
      .grid.-detail, .-detail.callout, .-detail.event__list.-grid {
        grid-template-columns: 1fr 250px; } }

[class*="-fixcols"] {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex-wrap: wrap; }
  @media (min-width: 50em) {
    [class*="-fixcols"] {
      flex-direction: row;
      align-items: normal; } }
  [class*="-fixcols"] > div {
    max-width: 280px; }
    @media (min-width: 63.75em) {
      [class*="-fixcols"] > div {
        max-width: none; } }

@media (min-width: 50em) {
  .-fixcols2 > div {
    flex-basis: 50%; } }

@media (min-width: 50em) {
  .-fixcols3 > div {
    flex-basis: 50%; } }

@media (min-width: 74.9375em) {
  .-fixcols3 > div {
    flex-basis: 33%; } }

@media (min-width: 50em) {
  .-fixcols4 > div {
    flex-basis: 50%; } }

@media (min-width: 67.1875em) {
  .-fixcols4 > div {
    flex-basis: 33%; } }

@media (min-width: 74.9375em) {
  .-fixcols4 > div {
    flex-basis: 25%; } }

.accordion--nav {
  display: flex;
  justify-content: flex-end; }
  .accordion--nav label, .accordion--nav .e2ma_signup_form_label {
    font-weight: normal;
    color: #7D7D7D; }
  .accordion--nav input {
    position: relative;
    visibility: hidden; }
    .accordion--nav input:before {
      color: #2F3D47;
      display: block;
      font-family: "nscc-icons";
      font-size: 1.375em;
      line-height: 0.65;
      position: absolute;
      top: 0;
      right: 8px;
      transition: transform .5s, opacity .3s;
      visibility: visible;
      content: '\e803';
      transform: rotate(0deg);
      z-index: 20; }
  .accordion--nav input:checked:before {
    transform: rotate(180deg); }

.accordion .accordion__item {
  transition: background-color 150ms linear;
  border-bottom: 1px solid #2F3D47; }
  .accordion .accordion__item .accordion__item__details {
    height: 100%;
    max-height: 0;
    margin-left: 40px;
    margin-right: 40px;
    overflow: hidden;
    -webkit-transition: max-height .5s ease-in-out;
    transition: max-height .5s ease-in-out; }
    .accordion .accordion__item .accordion__item__details:after {
      content: '';
      display: block;
      height: 1.250em;
      width: 100%; }
    .accordion .accordion__item .accordion__item__details p {
      margin-bottom: 1.75em; }
    .accordion .accordion__item .accordion__item__details ul {
      padding-left: 1.85em; }
      .accordion .accordion__item .accordion__item__details ul li {
        color: #03123F; }
    .accordion .accordion__item .accordion__item__details p > a {
      color: #5C4D9C;
      position: relative;
      text-decoration: none; }
      .accordion .accordion__item .accordion__item__details p > a:before {
        position: absolute;
        margin: 0 auto;
        top: 100%;
        left: 0;
        width: 100%;
        height: 2px;
        background-color: #5C4D9C;
        content: '';
        opacity: 0;
        transform: scaleX(0.8);
        transition: all .3s; }
      .accordion .accordion__item .accordion__item__details p > a:hover:before {
        opacity: 1;
        transform: scaleX(1); }
  .accordion .accordion__item.-expanded .accordion__item__details {
    max-height: 500000px; }
  .accordion .accordion__item:not(.-expanded):hover {
    background-color: #F5F5F0; }

.accordion h4 {
  margin-top: 0;
  padding-left: 40px;
  padding-top: 3em;
  padding-bottom: 3em;
  padding-right: 60px; }

.accordion__item__handle {
  color: #03123F;
  font-size: 1.375rem;
  margin-top: 0;
  position: relative;
  transition: color .3s;
  cursor: pointer;
  padding: 2.5em 0; }
  .accordion__item__handle:hover {
    color: #03123F; }
  .accordion__item.-expanded .accordion__item__handle {
    color: #03123F; }
  .accordion__item__handle:before, .accordion__item__handle:after {
    color: #2F3D47;
    display: block;
    font-family: "nscc-icons";
    line-height: 1;
    position: absolute;
    right: 40px;
    top: calc(50% - 12px);
    transition: transform .3s, opacity .3s; }
  .accordion__item__handle:before {
    content: '\e803';
    transform: rotate(0deg);
    z-index: 20; }
    .accordion__item.-expanded .accordion__item__handle:before {
      transform: rotate(180deg); }

.breadcrumbs-wrapper {
  position: relative; }

.breadcrumb {
  font-size: .75rem;
  font-weight: 500;
  margin: 0 0 2.5em;
  position: relative; }
  .breadcrumb:after {
    clear: both;
    content: '';
    display: table; }
  @media (min-width: 50em) {
    .breadcrumb {
      margin-top: 2.5em; } }
  .breadcrumb .breadcrumb__item {
    font-size: .75rem;
    color: #7D7D7D;
    font-weight: 500;
    float: left;
    margin-bottom: 0; }
    .breadcrumb .breadcrumb__item:after {
      content: '/';
      padding: 0 4px; }
    .breadcrumb .breadcrumb__item.-active {
      color: #7D7D7D; }
      .breadcrumb .breadcrumb__item.-active:after {
        content: none; }
    .breadcrumb .breadcrumb__item a {
      color: #5C4D9C;
      text-decoration: none; }
      .breadcrumb .breadcrumb__item a:hover {
        text-decoration: underline; }

.callout {
  transition: background-color 150ms linear;
  color: #03123F;
  position: relative;
  text-decoration: none;
  padding: 20px 20px;
  margin-bottom: 20px; }
  @media (min-width: 63.75em) {
    .callout {
      padding: 20px 40px; } }

a.callout {
  background-color: #F5F5F0; }
  a.callout:hover {
    background-color: #ebebe1; }

.callout__image {
  display: block;
  height: auto;
  float: right;
  width: 100%; }
  @media (min-width: 50em) {
    .callout__image {
      width: auto; } }

.callout-block {
  color: white;
  display: block;
  overflow: hidden;
  position: relative;
  width: 100%; }
  .callout-block.-image:not(.-grey):before {
    transition: background-color 150ms linear;
    background-image: linear-gradient(to bottom, transparent, transparent, #072973);
    content: '';
    display: block;
    height: 100%;
    opacity: .7;
    position: absolute;
    top: 0;
    width: 100%;
    z-index: 10; }
  .callout-block.-image:hover .callout-block__content {
    height: 100%; }
  .callout-block.-image.-grey .callout-block__image {
    top: 90px; }
  .callout-block.-image.-grey:hover .callout-block__content {
    height: 100%; }
  .callout-block.-image .callout-block__image {
    display: block;
    height: auto;
    min-width: 100%;
    position: absolute;
    top: 35px;
    z-index: 0; }
  .callout-block.-color.-green {
    background-color: #DDDDDD; }
  .callout-block.-color.-black {
    background-color: #2F3D47; }
  .callout-block.-small, .callout-block.e2ma_signup_form_button {
    height: 200px; }
  .callout-block.-medium {
    height: 250px; }
    .callout-block.-medium p {
      font-weight: 700;
      margin: 0;
      text-transform: uppercase; }
  .callout-block.-large {
    border: 25px solid white;
    height: 360px; }
    @media (min-width: 50em) {
      .callout-block.-large {
        height: 460px; } }
  .callout-block.-horizontal {
    height: 250px;
    margin-bottom: 0; }
    @media (min-width: 57.1875em) {
      .callout-block.-horizontal {
        height: 130px; }
        .callout-block.-horizontal .callout-block__content__label {
          display: block;
          float: left;
          line-height: 1.3;
          margin: 0;
          width: 20%; }
        .callout-block.-horizontal .callout-block__content__headline {
          display: block;
          float: left;
          width: 65%; }
        .callout-block.-horizontal .callout-block__content__button {
          display: block;
          float: right;
          margin-top: 5px;
          width: 15%; } }

.callout-block.-image .callout-block__content {
  transition: height 150ms linear;
  height: 40px;
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
  justify-items: center;
  background-color: #03123F;
  position: absolute;
  top: 0;
  width: 100%;
  z-index: 20;
  text-align: center; }
  .callout-block.-image .callout-block__content:after {
    clear: both;
    content: '';
    display: table; }

.callout-block.-image.-grey .callout-block__content {
  background-color: #F5F5F0;
  height: 90px; }

.callout-block.-button .callout-block__content {
  height: 100%;
  background-color: #F5F5F0;
  border-bottom: 14px solid #F59333;
  padding: 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  text-align: center; }
  .callout-block.-button .callout-block__content .callout-block__content__button {
    margin-top: auto; }
  .callout-block.-button .callout-block__content img {
    max-height: 126px; }

.callout-block.-color .callout-block__content {
  padding: 0 25% 0 15%; }

.callout-block.-horizontal .callout-block__content {
  padding: 0 7%; }

.callout-block__content__headline {
  font-family: "Open Sans", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif; }
  .callout-block.-image .callout-block__content__headline {
    color: white;
    margin: 10px auto; }
  .callout-block.-image.-grey .callout-block__content__headline {
    color: #03123F;
    font-size: 1.75em;
    margin: 10px auto; }
  .-button .callout-block__content__headline {
    padding-top: 20px; }
  .callout-block.-color .callout-block__content__headline {
    margin-bottom: .25em; }
  .callout-block.-small .callout-block__content__headline, .callout-block.e2ma_signup_form_button .callout-block__content__headline {
    font-size: 0.938em;
    line-height: 1.1; }
  .callout-block.-medium .callout-block__content__headline {
    font-family: "Open Sans Condensed", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
    font-size: 1.75em;
    line-height: 1.2; }
  .callout-block.-large .callout-block__content__headline {
    font-size: 2.75em;
    line-height: 1.1; }
    @media (min-width: 63.75em) {
      .callout-block.-large .callout-block__content__headline {
        font-size: 3.75em; } }
  .callout-block.-horizontal .callout-block__content__headline {
    font-size: 1.75em;
    line-height: 1.2; }
    @media (min-width: 57.1875em) {
      .callout-block.-horizontal .callout-block__content__headline {
        font-size: 2em;
        margin-bottom: 0; } }

.category-select {
  width: 50%; }

.embed {
  background-color: #000;
  cursor: pointer; }
  .embed .photo {
    opacity: .8;
    -webkit-transition: opacity;
    transition: opacity;
    width: 100%; }
    .embed .photo:hover {
      opacity: .4; }
  .embed iframe {
    border: 0;
    height: 100%;
    left: 0;
    position: absolute;
    top: 0;
    width: 100%; }
  .embed.-modal-overlay[data-loaded=false]::before {
    background-color: transparent;
    background-image: -webkit-linear-gradient(180deg, transparent, rgba(0, 0, 0, 0.6));
    background-image: linear-gradient(-90deg, transparent, rgba(0, 0, 0, 0.6));
    content: '';
    display: block;
    height: 100%;
    position: absolute;
    top: 0;
    -webkit-transition: all;
    transition: all;
    width: 100%;
    z-index: 2; }

.embed[data-loaded=false]::before {
  background: url("../../src/images/play.svg") no-repeat;
  content: '';
  height: 70px;
  left: 50%;
  margin: auto;
  position: absolute;
  top: 50%;
  transform: translateY(-50%) translateX(-50%);
  width: 70px;
  z-index: 1; }

.embed[data-loaded=false]:hover {
  -webkit-transition: opacity;
  transition: opacity; }
  .embed[data-loaded=false]:hover .photo {
    opacity: .4; }
  .embed[data-loaded=false]:hover::before {
    opacity: .8; }

.embed[data-loaded=true] {
  height: 0;
  padding-bottom: 56.25%; }
  .embed[data-loaded=true] .network-modal-content {
    display: none; }

.event__list:not(.-grid) .event-item:not(:first-child) {
  border-top: 1px solid #979797; }

.event__list:not(.-grid) .event:hover {
  background-color: #ebebe1; }

.event__list:not(.-grid) .event__arrow {
  display: none; }

.event__list.-grid {
  width: 100%; }
  .event__list.-grid .event__description {
    display: none; }
  .event__list.-grid .event {
    margin-top: 20px;
    padding: 0; }
    .event__list.-grid .event:hover .event__arrow {
      right: 10px; }
  .event__list.-grid img {
    width: 100%; }
  .event__list.-grid .button, .event__list.-grid .e2ma_signup_form_button {
    display: none; }
  .event__list.-grid .-promo {
    padding: 0 10px; }
  .event__list.-grid .event__meta {
    padding-right: 50px; }

.event {
  transition: background-color 150ms linear;
  align-items: center;
  color: #03123F;
  padding: 20px 20px;
  position: relative;
  text-decoration: none; }
  @media (min-width: 63.75em) {
    .event {
      padding: 20px 40px; } }
  .event > p {
    font-size: 0.813em; }

.event__image {
  justify-self: center; }
  @media (min-width: 50em) {
    .event__image {
      justify-self: auto; } }

.event__title {
  font-family: "Open Sans", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  font-size: 1.125em;
  font-weight: 700; }

.event__meta {
  font-family: "Baskerville", "Libre Baskerville", "Georgia", "Times", "Times New Roman", "serif";
  font-size: .938em;
  font-style: italic;
  position: relative; }
  .event__meta p {
    margin: 0; }

.event__arrow {
  transition: right 150ms linear;
  color: #5C4D9C;
  font-size: 64px;
  position: absolute;
  right: 20px;
  top: -20px; }

.event__cta {
  height: 100%;
  justify-content: center;
  display: flex;
  flex-direction: column;
  border-radius: 2px;
  padding: 20px; }
  .event__cta.-promo {
    background-color: #F59333; }
  .event__cta p {
    color: #F5F5F0;
    font-family: "Baskerville", "Libre Baskerville", "Georgia", "Times", "Times New Roman", "serif";
    font-size: 1.125em;
    font-style: italic;
    margin: .5em 0;
    text-align: center; }

.featured-entry {
  color: white;
  overflow: hidden;
  position: relative;
  width: 100%; }
  .featured-entry:after {
    clear: both;
    content: '';
    display: table; }

.featured-entry__grid {
  height: 100%;
  align-items: center;
  padding: 40px 0; }
  @media (min-width: 63.75em) {
    .featured-entry__grid {
      padding: 40px 90px; } }

.featured-entry__content {
  position: relative;
  height: 100%;
  z-index: 20;
  text-align: center; }
  @media (min-width: 50em) {
    .featured-entry__content {
      text-align: right; } }

.featured-entry__content__headline p,
p.featured-entry__content__headline {
  font-family: "Baskerville", "Libre Baskerville", "Georgia", "Times", "Times New Roman", "serif";
  font-style: italic;
  font-size: 1.188em;
  line-height: 1; }

.featured-entry__image.-svg {
  height: 100%; }

.featured-entry__cta__content {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center; }
  @media (min-width: 50em) {
    .featured-entry__cta__content .button, .featured-entry__cta__content .e2ma_signup_form_button {
      align-self: flex-end; } }

.featured-event__container {
  padding: 20px 20px;
  margin: 20px 0; }
  @media (min-width: 63.75em) {
    .featured-event__container {
      padding: 20px 40px; } }
  .featured-event__container h2 {
    text-transform: uppercase; }
  .featured-event__container > p {
    font-size: 1.188em;
    margin-bottom: 20px;
    margin-top: 0; }

.featured-event {
  overflow: hidden;
  position: relative;
  width: 100%; }
  .featured-event:after {
    clear: both;
    content: '';
    display: table; }

.featured-event__content {
  position: relative;
  height: 100%;
  z-index: 20;
  text-align: center; }
  @media (min-width: 50em) {
    .featured-event__content {
      text-align: right; } }

.featured-event__content__headline {
  font-family: "Baskerville", "Libre Baskerville", "Georgia", "Times", "Times New Roman", "serif";
  font-style: italic;
  font-size: 1.188em;
  line-height: 1; }

.featured-event__image {
  width: 100%; }

.featured-event__cta__content {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  position: relative; }
  @media (min-width: 50em) {
    .featured-event__cta__content {
      flex-direction: row; } }
  @media (min-width: 50em) {
    .featured-event__cta__content .button, .featured-event__cta__content .e2ma_signup_form_button {
      align-self: flex-end; } }

.featured-event__meta {
  font-family: "Open Sans", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  font-weight: 600;
  font-size: 1.063em;
  position: relative; }
  .featured-event__meta p {
    margin: 0;
    font-weight: 600; }

.global-footer__contact-info {
  line-height: 1.67em; }
  .global-footer__contact-info a {
    color: white;
    font-weight: 300;
    text-decoration: none;
    transition: color .25s; }
    .global-footer__contact-info a:hover {
      color: #DDDDDD; }

.global-footer__nav ul {
  padding: 0; }
  .global-footer__nav ul li {
    list-style: none; }

.global-footer__nav a {
  color: #DDDDDD;
  text-decoration: none;
  transition: color .25s; }
  .global-footer__nav a:hover {
    color: #7D7D7D; }

.global-footer__partners {
  margin: 0;
  padding: 0; }
  .global-footer__partners li {
    list-style: none;
    display: inline-block;
    margin: 0 .75em; }
  .global-footer__partners img,
  .global-footer__partners svg {
    max-height: 41px;
    width: auto; }
  .global-footer__partners svg path,
  .global-footer__partners svg rect,
  .global-footer__partners svg polygon {
    fill: #7D7D7D; }
  .global-footer__partners #tncc-logo {
    height: 32px; }
  .global-footer__partners #tnecampus-logo {
    height: 28px; }
  .global-footer__partners #pathway-logo {
    height: 20px; }
  .global-footer__partners #workforce-logo {
    height: 30px; }

@media (min-width: 50em) {
  .grid-title {
    display: block;
    float: left;
    position: relative;
    top: .8em;
    width: 30%; } }

.grid-filters {
  display: block; }
  @media (min-width: 50em) {
    .grid-filters {
      float: right;
      width: 70%; } }
  .grid-filters .grid-item {
    margin-bottom: 0; }

@media (min-width: 63.75em) {
  .grid-filters__group {
    border-left: 1px solid #F5F5F0;
    padding-left: gutter(9); } }

.grid-filters__group:first-of-type {
  border-left: none;
  padding-left: 0; }

.icon-links {
  padding-top: 40px;
  padding-bottom: 40px; }
  .icon-links a:not(:first-child):after {
    content: '';
    height: 100%;
    position: absolute;
    top: 0;
    left: -20px;
    border-left: 1px solid #979797; }
  .icon-links a {
    transition: background-color 150ms linear;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-decoration: none;
    text-align: center;
    position: relative;
    justify-content: space-evenly; }
    .icon-links a:hover {
      background-color: #F5F5F0; }
  .icon-links img {
    width: 60px; }
  .icon-links h4 {
    font-weight: 400;
    margin: 0; }

.label {
  font-size: .8125rem;
  font-weight: 500;
  margin: 1em 0;
  text-transform: uppercase;
  letter-spacing: 5px; }
  .label.-white {
    color: white; }
  .label.-gray {
    color: #7D7D7D; }
  .label.-green {
    color: white; }

.listing-block {
  display: block;
  min-height: 230px;
  outline: none;
  position: relative;
  text-decoration: none;
  width: 100%; }

.listing-block__image {
  opacity: .85;
  transition: opacity .5s;
  width: 100%;
  backface-visibility: hidden;
  -moz-backface-visibility: hidden;
  -webkit-backface-visibility: hidden; }
  .listing-block:hover .listing-block__image {
    opacity: 1;
    backface-visibility: hidden;
    -moz-backface-visibility: hidden;
    -webkit-backface-visibility: hidden; }
  .listing-block__image.-no-image {
    background-color: #DDDDDD;
    min-height: 176px; }

.listing-block__caption {
  color: #7D7D7D;
  display: block;
  font-size: 1em;
  margin-top: .5em; }

.listing-container {
  display: grid;
  grid-row-gap: 40px;
  grid-auto-rows: 1fr; }
  @media (min-width: 37.5em) {
    .listing-container {
      grid-row-gap: 60px; } }

.listing-item {
  display: grid;
  grid-column-gap: 40px;
  grid-template-columns: 100%; }
  @media (min-width: 50em) {
    .listing-item {
      grid-template-columns: 35% auto; } }
  .listing-item img {
    width: 100%; }

.listing-item__image {
  grid-column: 1;
  align-self: start; }

.listing-item__heading h1 {
  font-family: "Open Sans Condensed", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  font-size: 1.188rem; }

.listing-item__heading p {
  margin: 0; }

.listing-item__subhead p {
  font-size: 0.875rem; }

.listing-item__content {
  display: flex;
  flex-direction: column; }
  @media (min-width: 50em) {
    .listing-item__content {
      grid-column: 2; } }
  .listing-item__content a {
    text-decoration: none; }

.listing-item__description {
  font-size: 0.875rem; }

.listing-item__tags {
  margin-top: auto;
  font-size: 0.75em;
  font-weight: 300;
  color: #03123F; }
  .listing-item__tags a {
    color: #03123F;
    text-decoration: underline;
    transition: color .2s; }
    .listing-item__tags a:hover {
      color: #082ea0; }

.listing-item__button {
  margin-top: auto; }

.logo {
  display: block;
  height: 103px;
  position: relative;
  z-index: 90;
  height: 85px;
  width: 85px; }
  @media (min-width: 63.75em) {
    .logo {
      height: 100%; } }
  .logo a {
    display: block;
    height: 100%;
    position: relative; }
  .logo img {
    opacity: 1;
    transition: opacity .2s;
    width: 100%;
    display: block;
    position: relative;
    top: 50%;
    -webkit-transform: translateY(-50%);
    -moz-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    -o-transform: translateY(-50%);
    transform: translateY(-50%); }
  .logo:hover img {
    opacity: .75; }
  .global-header .logo {
    top: 0;
    width: 77px;
    height: 103px; }
    @media (min-width: 63.75em) {
      .global-header .logo {
        float: left;
        width: 77px; } }
    @media (min-width: 67.1875em) {
      .global-header .logo {
        width: 77px; } }

.media {
  max-width: 868px;
  margin: 40px auto 50px;
  position: relative;
  text-align: center;
  width: 100%; }
  .media:after {
    clear: both;
    content: '';
    display: table; }
  @media (min-width: 50em) {
    .media {
      width: auto; } }
  @media (min-width: 72.75em) {
    .media {
      margin: 50px auto; } }
  .media .embed {
    padding-bottom: 56.25%;
    overflow: hidden;
    position: relative; }
    .media .embed .photo {
      position: absolute;
      top: 0;
      right: 0;
      bottom: 0;
      left: 0;
      margin: auto; }
  @media (min-width: 72.75em) {
    .media.-wide {
      width: 1084px; } }
  @media (min-width: 480px) {
    .media.-left {
      float: left;
      margin-right: 40px; } }
  @media (min-width: 480px) and (max-width: 599px) {
    .media.-left {
      width: 50%; } }
  @media (min-width: 800px) {
    .media.-left {
      margin-left: -80px; } }
  .media .video-embed, .media img {
    width: 100%; }
  @media (min-width: 480px) {
    .media.-right {
      float: right;
      margin-left: 40px; } }
  @media (min-width: 480px) and (max-width: 599px) {
    .media.-right {
      width: 50%; } }
  @media (min-width: 800px) {
    .media.-right {
      margin-right: -80px; } }
  .media .video-embed, .media img {
    width: 100%; }
  @media (min-width: 800px) {
    .media.-right {
      margin-right: -40px; } }
  @media (min-width: 72.75em) {
    .media.-right {
      margin-top: 45px; } }
  .media.-width-75 {
    width: 75%; }
  .media.-width-66 {
    width: 66%; }
  .media.-width-50 {
    width: 50%; }
  .media.-width-33 {
    width: 33%; }
  .media.-width-25 {
    width: 25%; }
  .media .media__content {
    margin-top: 30px; }
    @media (min-width: 400px) {
      .media .media__content {
        margin: 28px auto 0;
        width: 75%; } }
    @media (min-width: 72.75em) {
      .media .media__content {
        margin: 48px auto 0;
        width: 69.58525%; } }

.overview {
  padding-bottom: 40px; }
  @media (min-width: 63.75em) {
    .overview {
      padding-bottom: 60px; } }
  .overview.-small, .overview.e2ma_signup_form_button {
    padding-bottom: 20px; }
    @media (min-width: 63.75em) {
      .overview.-small, .overview.e2ma_signup_form_button {
        padding-bottom: 40px; } }
  .overview p {
    font-size: 1em;
    margin: 0; }
    @media (min-width: 37.5em) {
      .overview p {
        font-size: 1.188em; } }

.burger {
  background: none;
  border: none;
  height: 103px;
  outline: none;
  position: absolute;
  right: 0;
  top: 0;
  padding-right: 20px; }
  .burger:after {
    clear: both;
    content: '';
    display: table; }
  .burger:active {
    background-color: transparent; }
  @media (min-width: 50em) {
    .burger {
      padding-right: 40px; } }
  @media (min-width: 63.75em) {
    .burger {
      display: none; } }

.burger__icon {
  display: block;
  float: right;
  margin: 0 auto;
  width: auto; }

.burger__icon__bar {
  background-color: #03123F;
  display: block;
  height: 3px;
  margin: 5px auto;
  transition: background-color .25s, margin .25s ease, transform .5s ease;
  width: 25px; }
  .burger:hover .burger__icon__bar {
    background-color: #0935b9; }
  .burger.is-active .burger__icon__bar.-top {
    -webkit-transform: translateY(8px) rotateZ(45deg);
    -moz-transform: translateY(8px) rotateZ(45deg);
    -ms-transform: translateY(8px) rotateZ(45deg);
    -o-transform: translateY(8px) rotateZ(45deg);
    transform: translateY(8px) rotateZ(45deg); }
  .burger.is-active .burger__icon__bar.-middle {
    width: 0; }
  .burger.is-active .burger__icon__bar.-bottom {
    -webkit-transform: translateY(-8px) rotateZ(-45deg);
    -moz-transform: translateY(-8px) rotateZ(-45deg);
    -ms-transform: translateY(-8px) rotateZ(-45deg);
    -o-transform: translateY(-8px) rotateZ(-45deg);
    transform: translateY(-8px) rotateZ(-45deg); }

.burger__text {
  color: #03123F;
  display: block;
  float: left;
  font-size: .75em;
  letter-spacing: 2px;
  margin-right: .75em;
  padding: .5em 0;
  text-transform: uppercase;
  transition: color .25s; }
  .burger:hover .burger__text {
    color: #0935b9; }

.nav-link {
  transition: color 150ms linear;
  display: block;
  -webkit-font-smoothing: antialiased;
  line-height: 1.4;
  position: relative;
  text-align: left;
  text-decoration: none;
  user-select: none;
  vertical-align: middle; }
  @media (min-width: 63.75em) {
    .nav-link {
      text-align: center; } }
  .nav-link:active, .nav-link:active:focus {
    text-decoration: none; }
  .nav-link:focus {
    text-decoration: none; }
  .nav-link.-primary, .nav-link.e2ma_signup_form_button {
    color: #03123F;
    font-size: 1rem;
    font-weight: 600;
    padding: 15px;
    z-index: 3; }
    @media (min-width: 63.75em) {
      .nav-link.-primary, .nav-link.e2ma_signup_form_button {
        height: 100%;
        padding: 41px 15px;
        font-size: .9rem; } }
    .primary-nav.expanded .nav-link.-primary, .primary-nav.expanded .nav-link.e2ma_signup_form_button {
      color: #03123F; }
      .primary-nav.expanded .nav-link.-primary:hover, .primary-nav.expanded .nav-link.e2ma_signup_form_button:hover {
        color: #041957; }
    .primary-nav > li:hover .nav-link.-primary, .primary-nav > li:hover .nav-link.e2ma_signup_form_button {
      color: #041957; }
    @media (min-width: 63.75em) {
      .primary-nav > .-current .nav-link.-primary:before, .primary-nav > .-current .nav-link.e2ma_signup_form_button:before {
        border-bottom: 4px solid #F59333;
        content: '';
        position: absolute;
        top: calc(41px + 16px + 5px);
        width: calc(100% - 30px); } }
    .nav-link.-primary i, .nav-link.e2ma_signup_form_button i {
      display: none; }
      @media (min-width: 63.75em) {
        .nav-link.-primary i, .nav-link.e2ma_signup_form_button i {
          display: inline; } }
    .primary-nav > li:hover .nav-link.-primary.-active, .primary-nav > li:hover .nav-link.-active.e2ma_signup_form_button,
    .primary-nav > li:hover .nav-link.-primary:hover,
    .primary-nav > li:hover .nav-link.e2ma_signup_form_button:hover,
    .primary-nav > li:hover .nav-link.-primary:active,
    .primary-nav > li:hover .nav-link.e2ma_signup_form_button:active,
    .primary-nav > li:hover .nav-link.-primary:focus,
    .primary-nav > li:hover .nav-link.e2ma_signup_form_button:focus {
      color: #0935b9; }
  .nav-link.-dropdown-link {
    color: #03123F;
    font-size: 15px;
    font-weight: 400;
    padding: .4em 1em; }
    @media (min-width: 63.75em) {
      .nav-link.-dropdown-link {
        font-size: 13px;
        padding-left: 13px;
        padding-right: 13px;
        padding-top: 10px; } }
    @media (min-width: 63.75em) {
      .primary-nav .nav-link.-dropdown-link {
        display: block;
        font-size: 15px;
        margin: 0 5% 14px 0;
        min-width: 140px;
        padding: 0;
        text-align: left; } }
    @media (min-width: 63.75em) {
      .nav-link.-dropdown-link.-active, .nav-link.-dropdown-link:hover, .nav-link.-dropdown-link:active, .nav-link.-dropdown-link:focus {
        color: #0935b9; } }
  .nav-link.-secondary {
    color: #DDDDDD;
    font-size: 13px;
    font-weight: 600;
    padding: 0 1em;
    text-transform: uppercase; }
    @media (min-width: 63.75em) {
      .nav-link.-secondary:hover, .nav-link.-secondary:active, .nav-link.-secondary:focus {
        color: white; } }
    .nav-link.-secondary:last-of-type {
      padding-right: 0; }

.nav-link-button {
  height: 52px;
  width: 52px;
  color: #7D7D7D;
  display: block;
  position: absolute;
  right: 0;
  text-align: center;
  top: 0; }
  @media (min-width: 63.75em) {
    .global-header .nav-link-button {
      display: none; } }
  .nav-link-button.is-active, .nav-link-button:hover, .nav-link-button:active, .nav-link-button:focus {
    color: #03123F;
    cursor: pointer; }
  .nav-link-button label, .nav-link-button .e2ma_signup_form_label {
    margin-bottom: 0;
    position: relative;
    top: 50%;
    -webkit-transform: translateY(-50%);
    -moz-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    -o-transform: translateY(-50%);
    transform: translateY(-50%); }
  .nav-link-button i.icon-plus,
  .nav-link-button i.icon-minus {
    display: block; }
  .nav-link-button i.icon-minus {
    display: none; }
  .nav-link-button i.icon-plus {
    display: block; }
  .nav-link-button.is-active i.icon-plus {
    display: none; }
  .nav-link-button.is-active i.icon-minus {
    display: block; }
  .nav-link-button.is-active + .nav-menu nav {
    display: block; }
  .primary-nav .nav-link-button {
    z-index: 3; }

.nav-menu {
  background-color: white;
  border-bottom: 7px solid #F59333;
  padding: 25px 20px;
  min-width: 420px; }
  @media (min-width: 63.75em) {
    .nav-menu {
      border-radius: 3px;
      border-top: 1px solid #DDDDDD;
      border-right: 1px solid #DDDDDD;
      border-left: 1px solid #DDDDDD;
      position: absolute; } }
  @media (min-width: 63.75em) {
    .primary-nav .nav-menu {
      margin-top: -1px;
      position: absolute;
      transition: all 0s;
      transition-delay: .35s;
      -webkit-box-shadow: 0 2px 7px 0 rgba(0, 0, 0, 0.16);
      -moz-box-shadow: 0 2px 7px 0 rgba(0, 0, 0, 0.16);
      box-shadow: 0 2px 7px 0 rgba(0, 0, 0, 0.16); }
      .primary-nav .nav-menu:not(.edge):before {
        content: '';
        left: 19px;
        width: 0;
        height: 0;
        border-left: 21px solid transparent;
        border-right: 21px solid transparent;
        border-bottom: 21px solid #DDDDDD;
        top: -21px;
        position: absolute; }
      .primary-nav .nav-menu:not(.edge):after {
        content: '';
        left: 20px;
        width: 0;
        height: 0;
        border-left: 20px solid transparent;
        border-right: 20px solid transparent;
        border-bottom: 20px solid white;
        top: -20px;
        position: absolute; }
      .primary-nav .nav-menu.edge {
        right: 0; }
        .primary-nav .nav-menu.edge:before {
          content: '';
          right: 19px;
          width: 0;
          height: 0;
          border-left: 21px solid transparent;
          border-right: 21px solid transparent;
          border-bottom: 21px solid #DDDDDD;
          top: -21px;
          position: absolute; }
        .primary-nav .nav-menu.edge:after {
          content: '';
          right: 20px;
          width: 0;
          height: 0;
          border-left: 20px solid transparent;
          border-right: 20px solid transparent;
          border-bottom: 20px solid white;
          top: -20px;
          position: absolute; } }
  @media (min-width: 63.75em) {
    .primary-nav > li:hover .nav-menu:not(.-docs-tag) {
      display: block; } }
  @media (min-width: 63.75em) {
    .nav-menu .primary-nav > li:hover.-docs {
      display: block;
      position: relative;
      border: none; } }
  .nav-menu .container > nav {
    color: white;
    -webkit-columns: 220px 2;
    -moz-columns: 220px 2;
    columns: 220px 2;
    width: 100%; }
    .nav-menu .container > nav:after {
      clear: both;
      content: '';
      display: table; }
    @media (min-width: 63.75em) {
      .nav-menu .container > nav {
        border-left: 1px solid #53565B;
        float: right;
        margin: 40px 0;
        padding: 10px 55px;
        width: 52%; }
        .nav-menu .container > nav ul {
          float: left;
          width: 50%; } }
    .nav-menu .container > nav div {
      padding-bottom: 1.5em;
      page-break-inside: avoid;
      -webkit-column-break-inside: avoid; }
  .nav-menu h3 {
    color: white; }
  .nav-menu .nav-menu__section-overview {
    display: none; }
    @media (min-width: 63.75em) {
      .nav-menu .nav-menu__section-overview {
        color: white;
        display: block;
        float: left;
        min-height: 325px;
        padding: 50px 5% 0 22%;
        position: absolute;
        width: 48%; }
        .nav-menu .nav-menu__section-overview:after {
          clear: both;
          content: '';
          display: table; } }
    .nav-menu .nav-menu__section-overview h3 {
      font-size: 2.125em;
      line-height: 1;
      margin-top: 11px; }
    .nav-menu .nav-menu__section-overview p {
      color: #DDDDDD;
      font-size: .875em;
      line-height: 1.375;
      margin-bottom: 0;
      margin-top: 14px; }
    .nav-menu .nav-menu__section-overview .photo {
      background-color: #7D7D7D;
      left: 0;
      min-height: 165px;
      position: absolute;
      width: 38%; }
      @media (min-width: 67.1875em) {
        .nav-menu .nav-menu__section-overview .photo {
          min-height: 225px; } }
    .nav-menu .nav-menu__section-overview a {
      font-size: 14px;
      font-weight: 700;
      letter-spacing: .5px;
      padding-right: 20px;
      text-decoration: none; }

.primary-nav:after {
  clear: both;
  content: '';
  display: table; }

.global-header .primary-nav {
  padding-top: 56px;
  position: relative; }
  @media (min-width: 63.75em) {
    .global-header .primary-nav {
      background-color: transparent;
      float: right;
      margin-bottom: 0;
      padding-right: 55px;
      padding-top: 0;
      top: 0; } }

.primary-nav > .primary-nav__item {
  border-bottom: 1px solid #53565B;
  margin-bottom: 0;
  opacity: 1;
  position: relative;
  transition: opacity .3s; }
  .primary-nav > .primary-nav__item.-inactive {
    opacity: 0; }
  @media (min-width: 63.75em) {
    .primary-nav > .primary-nav__item {
      border-bottom: none;
      float: left;
      position: relative; } }

.global-search {
  display: flex;
  position: absolute;
  right: 0;
  top: 1em;
  width: 100%; }
  .global-search:after {
    clear: both;
    content: '';
    display: table; }
  @media (min-width: 63.75em) {
    .global-search {
      height: 100%;
      top: auto;
      width: auto; } }

input.global-search__box {
  align-self: center;
  background: #03123F;
  border: none;
  border-radius: 0;
  box-shadow: none;
  color: #F5F5F0;
  height: 25px;
  padding: .4em 1em;
  width: 100%;
  -webkit-appearance: none; }
  input.global-search__box::-webkit-input-placeholder {
    color: #DDDDDD; }
  input.global-search__box::-moz-placeholder {
    color: #DDDDDD; }
  input.global-search__box:-moz-placeholder {
    color: #DDDDDD; }
  input.global-search__box:-ms-input-placeholder {
    color: #DDDDDD; }
  @media (min-width: 63.75em) {
    input.global-search__box {
      background: transparent;
      border-bottom: 2px solid #0935b9;
      margin: 0 0.5em 0 0;
      padding: 0 1em 0 0;
      color: #2F3D47; }
      input.global-search__box::-webkit-input-placeholder {
        color: #53565B; }
      input.global-search__box::-moz-placeholder {
        color: #53565B; }
      input.global-search__box:-moz-placeholder {
        color: #53565B; }
      input.global-search__box:-ms-input-placeholder {
        color: #53565B; } }
  input.global-search__box:active, input.global-search__box:focus, input.global-search__box:active:focus {
    box-shadow: none;
    outline: 0; }
  @media (min-width: 63.75em) {
    input.global-search__box {
      margin: 0;
      padding: 0;
      transition: width .3s;
      width: 0; }
      .global-search.-active input.global-search__box {
        width: 500px;
        margin: 0 0.5em 0 0; } }

.global-search__button {
  background-color: transparent;
  color: #03123F;
  display: none;
  font-size: 1.375em;
  line-height: 1;
  margin-bottom: 0;
  position: relative;
  text-align: center;
  transition: color .3s;
  z-index: 90; }
  @media (min-width: 63.75em) {
    .global-search__button {
      display: block;
      padding: 36px 12px; } }
  @media (min-width: 63.75em) {
    .global-search__button {
      padding-right: 0; } }
  .global-search.-active .global-search__button, .global-search__button:hover {
    color: #0935b9; }
  .global-search__button:active, .global-search__button:active:focus, .global-search__button:focus {
    outline: 0;
    text-decoration: none; }

.secondary-nav {
  align-items: center;
  background-color: #03123F;
  display: flex;
  height: 35px;
  justify-content: center;
  margin-top: 0;
  padding-top: 0; }
  .secondary-nav:after {
    clear: both;
    content: '';
    display: table; }
  @media (min-width: 37.5em) {
    .secondary-nav {
      justify-content: flex-end;
      padding-right: 40px; } }

.docs-search {
  margin-top: 15px; }

input.docs-search__box {
  align-self: center;
  background: white;
  border: none;
  border-radius: 0;
  box-shadow: none;
  color: #03123F;
  height: 25px;
  padding: .4em 1em; }
  input.docs-search__box::-webkit-input-placeholder {
    color: #03123F; }
  input.docs-search__box::-moz-placeholder {
    color: #03123F; }
  input.docs-search__box:-moz-placeholder {
    color: #03123F; }
  input.docs-search__box:-ms-input-placeholder {
    color: #03123F; }
  input.docs-search__box:active, input.docs-search__box:focus, input.docs-search__box:active:focus {
    box-shadow: none;
    outline: 0; }

.docs-search__button {
  background-color: transparent;
  color: #03123F;
  display: none;
  font-size: 1.375em;
  line-height: 1;
  margin-bottom: 0;
  position: relative;
  text-align: center;
  transition: color .3s;
  z-index: 90; }
  .docs-search.-active .docs-search__button, .docs-search__button:hover {
    color: #0935b9; }
  .docs-search__button:active, .docs-search__button:active:focus, .docs-search__button:focus {
    outline: 0;
    text-decoration: none; }

.hero__content {
  align-items: center;
  display: flex;
  height: 100%;
  justify-content: center;
  position: relative;
  text-align: center;
  z-index: 20; }

h1.hero__content__headline {
  color: white;
  display: block;
  font-size: 2em;
  text-transform: uppercase;
  line-height: 1em; }
  @media (min-width: 20em) and (max-width: 37.4375em) {
    h1.hero__content__headline {
      font-size: 2.5em; } }
  @media (min-width: 37.5em) {
    h1.hero__content__headline {
      font-size: 3em;
      margin: 0; } }
  @media (min-width: 50em) {
    h1.hero__content__headline {
      font-size: 3.75em; } }
  @media (min-width: 63.75em) {
    h1.hero__content__headline {
      font-size: 4.5em; } }
  @media (min-width: 67.1875em) {
    h1.hero__content__headline {
      font-size: 5.25em; } }

h2.hero__content__headline {
  color: white;
  line-height: 50px;
  font-size: 2.25em;
  position: relative; }
  @media (min-width: 50em) {
    h2.hero__content__headline {
      line-height: 70px;
      font-size: 3.5em; } }

.hero__content__headline {
  display: inline-block;
  font-family: "Open Sans Condensed", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  font-weight: 700;
  margin: 0 25px 0 25px;
  padding: 0 10px; }
  @media (min-width: 50em) {
    .hero__content__headline {
      margin: 0; } }

.page-title {
  color: #2F3D47;
  font-family: "Open Sans", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  font-size: 1.75em;
  font-weight: 400;
  letter-spacing: .5em;
  text-transform: uppercase; }
  @media (min-width: 50em) {
    .page-title {
      font-size: 2em; } }
  @media (min-width: 63.75em) {
    .page-title {
      font-size: 2.125em; } }
  .page-title.-small, .page-title.e2ma_signup_form_button {
    font-size: 1.625em; }
  .page-title.-white {
    color: white; }
  .page-title.-centered {
    text-align: center; }
  .page-title.-padded {
    margin: 3em 0; }
  .page-title.-padded-top {
    margin: 3em 0 0; }
  .page-title.-padded-bottom {
    margin: 0 0 3em; }

.photo-gallery-ProductNav_Wrapper {
  position: relative;
  padding: 0 11px;
  box-sizing: border-box; }

.photo-gallery-ProductNav {
  /* Make this scrollable when needed */
  overflow-x: auto;
  /* We don't want vertical scrolling */
  overflow-y: hidden;
  /* For WebKit implementations, provide inertia scrolling */
  -webkit-overflow-scrolling: touch;
  /* We don't want internal inline elements to wrap */
  white-space: nowrap;
  /* If JS present, let's hide the default scrollbar */
  /* positioning context for advancers */
  position: relative;
  font-size: 0; }
  .js .photo-gallery-ProductNav {
    /* Make an auto-hiding scroller for the 3 people using a IE */
    -ms-overflow-style: -ms-autohiding-scrollbar;
    /* Remove the default scrollbar for WebKit implementations */ }
    .js .photo-gallery-ProductNav::-webkit-scrollbar {
      display: none; }

.photo-gallery-ProductNav_Contents {
  float: left;
  transition: transform .2s ease-in-out;
  position: relative; }

.photo-gallery-ProductNav_Contents-no-transition {
  transition: none; }

.photo-gallery-ProductNav_Link {
  text-decoration: none;
  color: #888;
  font-size: 1.2rem;
  font-family: -apple-system, sans-serif;
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0 11px; }
  .photo-gallery-ProductNav_Link[aria-selected="true"] {
    color: #111; }
  .photo-gallery-ProductNav_Link img {
    max-width: initial; }

.photo-gallery-Advancer {
  /* Reset the button */
  appearance: none;
  background: transparent;
  padding: 0;
  border: 0;
  width: 80px;
  margin-bottom: 0;
  /* Now style it as needed */
  position: absolute;
  top: 0;
  bottom: 0;
  /* Set the buttons invisible by default */
  opacity: 0;
  transition: opacity .3s; }
  .photo-gallery-Advancer:focus {
    outline: 0; }
  .photo-gallery-Advancer:hover {
    cursor: pointer; }

.photo-gallery-Advancer_Left {
  background-image: linear-gradient(to right, #f5f5f0, transparent, transparent);
  left: 0; }
  [data-overflowing="both"] ~ .photo-gallery-Advancer_Left,
  [data-overflowing="left"] ~ .photo-gallery-Advancer_Left {
    opacity: 1; }

.photo-gallery-Advancer_Right {
  background-image: linear-gradient(to left, #f5f5f0, transparent, transparent);
  right: 0; }
  [data-overflowing="both"] ~ .photo-gallery-Advancer_Right,
  [data-overflowing="right"] ~ .photo-gallery-Advancer_Right {
    opacity: 1; }

.photo-gallery-Advancer_Icon {
  font-size: 50px;
  color: #03123F;
  opacity: .7; }

.photo-gallery-ProductNav_Indicator {
  position: absolute;
  bottom: 0;
  left: 0;
  height: 4px;
  width: 100px;
  background-color: transparent;
  transform-origin: 0 0;
  transition: transform .2s ease-in-out, background-color .2s ease-in-out; }

@keyframes lum-fade {
  0% {
    opacity: 0; }
  100% {
    opacity: 1; } }

@keyframes lum-fadeZoom {
  0% {
    transform: scale(0.5);
    opacity: 0; }
  100% {
    transform: scale(1);
    opacity: 1; } }

@keyframes lum-loader-rotate {
  0% {
    transform: translate(-50%, -50%) rotate(0); }
  50% {
    transform: translate(-50%, -50%) rotate(-180deg); }
  100% {
    transform: translate(-50%, -50%) rotate(-360deg); } }

@keyframes lum-loader-before {
  0% {
    transform: scale(1); }
  10% {
    transform: scale(1.2) translateX(6px); }
  25% {
    transform: scale(1.3) translateX(8px); }
  40% {
    transform: scale(1.2) translateX(6px); }
  50% {
    transform: scale(1); }
  60% {
    transform: scale(0.8) translateX(6px); }
  75% {
    transform: scale(0.7) translateX(8px); }
  90% {
    transform: scale(0.8) translateX(6px); }
  100% {
    transform: scale(1); } }

@keyframes lum-loader-after {
  0% {
    transform: scale(1); }
  10% {
    transform: scale(1.2) translateX(-6px); }
  25% {
    transform: scale(1.3) translateX(-8px); }
  40% {
    transform: scale(1.2) translateX(-6px); }
  50% {
    transform: scale(1); }
  60% {
    transform: scale(0.8) translateX(-6px); }
  75% {
    transform: scale(0.7) translateX(-8px); }
  90% {
    transform: scale(0.8) translateX(-6px); }
  100% {
    transform: scale(1); } }

.lum-lightbox {
  background: rgba(0, 0, 0, 0.6);
  z-index: 999; }

.lum-lightbox-inner {
  top: 2.5%;
  right: 2.5%;
  bottom: 2.5%;
  left: 2.5%; }

.lum-lightbox-inner img {
  position: relative; }

.lum-lightbox-inner .lum-lightbox-caption {
  margin: 0 auto;
  color: #fff;
  max-width: 700px;
  text-align: center; }

.lum-loading .lum-lightbox-loader {
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 66px;
  height: 20px;
  animation: lum-loader-rotate 1800ms infinite linear; }

.lum-lightbox-loader:before, .lum-lightbox-loader:after {
  content: "";
  display: block;
  width: 20px;
  height: 20px;
  position: absolute;
  top: 50%;
  margin-top: -10px;
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.9); }

.lum-lightbox-loader:before {
  left: 0;
  animation: lum-loader-before 1800ms infinite linear; }

.lum-lightbox-loader:after {
  right: 0;
  animation: lum-loader-after 1800ms infinite linear;
  animation-delay: -900ms; }

.lum-lightbox.lum-opening {
  animation: lum-fade 180ms ease-out; }

.lum-lightbox.lum-opening .lum-lightbox-inner {
  animation: lum-fadeZoom 180ms ease-out; }

.lum-lightbox.lum-closing {
  animation: lum-fade 300ms ease-in;
  animation-direction: reverse; }

.lum-lightbox.lum-closing .lum-lightbox-inner {
  animation: lum-fadeZoom 300ms ease-in;
  animation-direction: reverse; }

.lum-img {
  transition: opacity 120ms ease-out; }

.lum-loading .lum-img {
  opacity: 0; }

.lum-gallery-button {
  overflow: hidden;
  text-indent: 150%;
  white-space: nowrap;
  background: transparent;
  border: 0;
  margin: 0;
  padding: 0;
  outline: 0;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  height: 100px;
  max-height: 100%;
  width: 60px;
  cursor: pointer; }

.lum-previous-button {
  left: 12px; }

.lum-next-button {
  right: 12px; }

.lum-gallery-button:after {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  width: 36px;
  height: 36px;
  border-top: 4px solid rgba(255, 255, 255, 0.8); }

.lum-previous-button:after {
  transform: translateY(-50%) rotate(-45deg);
  border-left: 4px solid rgba(255, 255, 255, 0.8);
  box-shadow: -2px 0 rgba(0, 0, 0, 0.2);
  left: 12%;
  border-radius: 3px 0 0 0; }

.lum-next-button:after {
  transform: translateY(-50%) rotate(45deg);
  border-right: 4px solid rgba(255, 255, 255, 0.8);
  box-shadow: 2px 0 rgba(0, 0, 0, 0.2);
  right: 12%;
  border-radius: 0 3px 0 0; }

@media (max-width: 29.9375em) {
  .quote {
    margin-left: 0;
    margin-right: 0; } }

@media (min-width: 30em) {
  .quote.-left {
    float: left;
    margin-left: 0;
    margin-top: -1em;
    max-width: 250px; } }

@media (min-width: 85.25em) {
  .quote.-left {
    margin-left: -100px; } }

@media (min-width: 30em) {
  .quote.-right {
    float: right;
    margin-right: 0;
    margin-top: -1em;
    max-width: 250px; } }

@media (min-width: 85.25em) {
  .quote.-right {
    margin-right: -100px; } }

.sidebar-container {
  background-color: #DDDDDD;
  padding: 20px;
  margin-top: 40px; }
  .sidebar-container h4 {
    font-family: "Open Sans Condensed", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
    font-size: 1.250em;
    font-weight: 700;
    text-transform: uppercase;
    margin-top: 0;
    padding: 20px 0; }

.sidebar-nav {
  background-color: white;
  display: block;
  width: 100%; }
  .sidebar-nav ul {
    font-size: .875rem;
    padding: 12px 20px; }

.sidebar-nav__title {
  background-color: #03123F;
  color: white;
  font-weight: 600;
  margin: 0;
  padding: 7px 15px;
  text-transform: uppercase; }

.sidebar-nav__item {
  font-size: .9375em;
  font-weight: 400;
  list-style: none; }
  .sidebar-nav__item a {
    color: #03123F;
    left: 0;
    position: relative;
    transition: color .2s; }
    .sidebar-nav__item a:hover {
      color: #082ea0; }
  .sidebar-nav__item.-active a {
    font-weight: 600; }

.schedule__list .schedule-item:not(:first-child),
.schedule__list .schedule__heading {
  border-top: 1px solid #979797; }

.schedule__list .schedule__arrow {
  display: none; }

.schedule {
  transition: background-color 150ms linear;
  align-items: center;
  color: #03123F;
  padding: 20px 20px;
  position: relative; }
  @media (min-width: 63.75em) {
    .schedule {
      padding: 20px 40px; } }
  .schedule > p {
    font-size: 0.813em; }

.schedule__title {
  font-family: "Open Sans", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  font-size: 1.125em;
  font-weight: 700; }

.schedule__meta {
  position: relative; }
  .schedule__meta p {
    margin: 0; }
  .schedule__meta.-date {
    font-weight: 700; }

.schedule__cta {
  height: 100%;
  justify-content: center;
  display: flex;
  flex-direction: column;
  border-radius: 2px;
  padding: 20px; }
  .schedule__cta p {
    color: #F5F5F0;
    font-family: "Baskerville", "Libre Baskerville", "Georgia", "Times", "Times New Roman", "serif";
    font-size: 1.125em;
    font-style: italic;
    margin: .5em 0; }

.schedule__heading {
  padding-top: 0;
  padding-bottom: 0;
  display: none; }
  .schedule__heading p {
    font-weight: 700;
    margin: 0; }
  @media (min-width: 63.75em) {
    .schedule__heading {
      display: grid; } }

.sidebar-callout {
  background-color: #5C4D9C;
  padding: 20px;
  margin: 20px 0;
  text-align: center; }
  .sidebar-callout a {
    font-style: normal;
    color: white; }
  .sidebar-callout .sidebar-callout__heading, .sidebar-callout img {
    color: white;
    font-family: "Open Sans Condensed", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
    font-size: 1.375em;
    margin-bottom: 20px;
    padding: 0; }

.tab-panel {
  height: 0;
  opacity: 0;
  overflow: hidden;
  transition: opacity .25s; }
  .tab-panel.is-active {
    height: auto;
    opacity: 1; }

.tablist {
  border-top: 1px solid #F5F5F0;
  border-left: none;
  margin-top: 0;
  padding: 4em 7%;
  position: relative; }
  @media (min-width: 50em) {
    .tablist {
      border-top: none;
      border-left: 1px solid #F5F5F0;
      margin-top: 4.5em;
      padding: .5em 0 4em 20%; } }
  .tablist ul {
    margin-bottom: 1.7em; }

.tablist__tab {
  font-size: .875rem;
  list-style: none;
  margin-bottom: 1.7em; }
  .tablist__tab a {
    color: #5C4D9C;
    position: relative;
    text-decoration: none;
    color: #7D7D7D;
    transition: color .25s; }
    .tablist__tab a:before {
      position: absolute;
      margin: 0 auto;
      top: 100%;
      left: 0;
      width: 100%;
      height: 2px;
      background-color: #5C4D9C;
      content: '';
      opacity: 0;
      transform: scaleX(0.8);
      transition: all .3s; }
    .tablist__tab a:hover:before {
      opacity: 1;
      transform: scaleX(1); }
  .tablist__tab.is-selected a {
    color: #53565B;
    cursor: text;
    font-weight: 700; }
    .tablist__tab.is-selected a:hover {
      color: #53565B;
      text-decoration: none; }
      .tablist__tab.is-selected a:hover:before {
        opacity: 0; }

.top-arrow {
  background-color: #DDDDDD;
  bottom: 3rem;
  color: white;
  cursor: pointer;
  display: none;
  font-size: 1.8em;
  margin: 0;
  opacity: 0.4;
  padding: 0;
  position: fixed;
  right: 3rem;
  transition: .25s opacity;
  z-index: 9999; }
  .top-arrow:hover {
    opacity: 0.65; }

.resources-title {
  padding-top: 40px;
  padding-bottom: 20px; }

.event-schedule-callout {
  background-color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  padding: 30px; }
  .event-schedule-callout h2 {
    text-align: center;
    padding-bottom: 10px; }

.featured-story {
  display: grid;
  grid-template-columns: auto;
  grid-template-rows: auto auto auto; }
  @media (min-width: 37.5em) {
    .featured-story {
      grid-template-columns: 1fr auto;
      grid-template-rows: auto auto; } }
  .featured-story .overview {
    grid-row: 1;
    grid-column: 1;
    padding-bottom: 40px; }
  .featured-story .featured-story-item {
    flex: auto;
    width: 95%;
    grid-row: 2;
    grid-column: 1; }
  .featured-story .social-callout {
    display: grid;
    text-align: center;
    background-color: white;
    padding: 20px 30px;
    grid-column: 1;
    grid-row: 3;
    grid-template-columns: auto;
    grid-template-rows: 1fr 1fr;
    margin-top: 20px;
    grid-column-gap: 40px; }
    @media (min-width: 20em) and (max-width: 37.4375em) {
      .featured-story .social-callout {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: auto; } }
    @media (min-width: 37.5em) {
      .featured-story .social-callout {
        margin-top: 0;
        grid-template-columns: auto;
        grid-template-rows: 1fr 1fr;
        grid-column: 2;
        grid-row: 2;
        align-self: start; } }
    @media (min-width: 50em) {
      .featured-story .social-callout {
        grid-row: 1 /span 2;
        align-self: stretch; } }
    .featured-story .social-callout .social-callout-top {
      grid-row: 1;
      grid-column: 1; }
    .featured-story .social-callout .social-callout-bottom {
      grid-row: 2;
      grid-column: 1; }
      @media (min-width: 20em) and (max-width: 37.4375em) {
        .featured-story .social-callout .social-callout-bottom {
          grid-row: 1;
          grid-column: 2; } }
      @media (min-width: 37.5em) {
        .featured-story .social-callout .social-callout-bottom {
          grid-column: 1;
          grid-row: 2; } }
      .featured-story .social-callout .social-callout-bottom i {
        min-width: 60px;
        font-size: 2em; }

.paginator {
  display: inline-flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  text-align: center;
  margin-top: 60px; }
  .paginator a, .paginator .current, .paginator .first-page, .paginator .last-page {
    padding: 10px; }
  .paginator a {
    border-top: 0.4px solid #DDDDDD;
    border-right: 0.2px solid #DDDDDD;
    border-bottom: 0.4px solid #DDDDDD;
    max-width: 44px;
    min-width: 44px;
    text-decoration: none;
    background-color: #F5F5F0;
    color: #03123F; }
  .paginator .current {
    border-top: 0.4px solid #DDDDDD;
    border-right: 0.2px solid #DDDDDD;
    border-bottom: 0.4px solid #DDDDDD;
    background-color: #DDDDDD;
    color: #7D7D7D;
    max-width: 44px;
    min-width: 44px; }
  .paginator .first-page {
    border: 0.6px solid #DDDDDD;
    border-radius: 8%;
    background-color: #F5F5F0;
    color: #03123F;
    margin-right: 10px;
    min-width: 65px; }
  .paginator .last-page {
    border: 0.6px solid #DDDDDD;
    border-radius: 8%;
    background-color: #F5F5F0;
    color: #03123F;
    margin-left: 10px;
    min-width: 65px; }
  .paginator .previous-page {
    border: 0.6px solid #DDDDDD;
    border-top-left-radius: 8%;
    border-bottom-left-radius: 8%; }
  .paginator .next-page {
    border-top: 0.6px solid #DDDDDD;
    border-right: 0.6px solid #DDDDDD;
    border-bottom: 0.6px solid #DDDDDD;
    border-top-right-radius: 8%;
    border-bottom-right-radius: 8%; }

.paginator-wrapper {
  display: flex;
  align-items: center;
  justify-content: center; }

p.contact-lead-p {
  margin: 2em;
  margin-left: 3em; }

input#phone {
  display: none; }

.judges-directory.-without-images .judge .judge-image {
  display: none !important; }

.judges-directory-filters {
  display: flex;
  flex-wrap: wrap; }
  .judges-directory-filters button,
  .judges-directory-filters select {
    margin-right: 1.25rem; }
  .judges-directory-filters button {
    margin-bottom: 0; }
  .judges-directory-filters select {
    padding-left: 1rem;
    width: auto;
    flex: 1; }
    .judges-directory-filters select:last-of-type {
      margin-right: 0; }
  .judges-directory-filters p {
    width: 100%; }

.judge-group {
  margin-bottom: 2rem; }
  .judge-group h3 {
    font-size: 2rem;
    margin: 0 0 2rem; }

.judge .judge-image {
  display: block;
  margin-bottom: 0.5rem; }
  .judge .judge-image img {
    padding: 5px;
    border: 1px solid #ccc;
    transition: all 0.3s ease-in-out; }
  .judge .judge-image:hover img {
    border-color: #aaa; }

.judge-detail-header {
  display: flex;
  justify-content: space-between; }
  .judge-detail-header > div:first-of-type {
    margin-right: 2rem; }
  .judge-detail-header h2 {
    margin-top: 0; }
  .judge-detail-header .image-wrapper {
    max-width: 40%; }
    @media (min-width: 37.5em) {
      .judge-detail-header .image-wrapper {
        max-width: none; } }

.separator.small {
  min-height: 3em; }

.separator.medium {
  min-height: 6em; }

.separator.large {
  min-height: 9em; }

.rss-wrapper {
  position: relative;
  font-size: 0.875em;
  display: inline-block;
  top: 0;
  right: 0; }
  .rss-wrapper + .breadcrumb {
    margin-top: 2.5em; }
  @media (min-width: 50em) {
    .rss-wrapper {
      position: absolute;
      z-index: 1; } }
  .rss-wrapper .fa {
    color: #F59333;
    margin-right: 5px;
    position: relative;
    top: 1px;
    font-size: 1.14em; }
  .rss-wrapper a {
    text-decoration: none; }
    .rss-wrapper a:hover {
      text-decoration: underline; }

.Carousel {
  position: absolute;
  width: 100%; }
  .Carousel .swiper-slide {
    background-position: center center;
    background-repeat: no-repeat;
    background-size: cover; }
    .Carousel .swiper-slide img {
      width: 100%;
      height: auto;
      position: absolute;
      /* Position the image in the middle of its container. */
      top: -9999px;
      right: -9999px;
      bottom: -9999px;
      left: -9999px;
      margin: auto;
      /* The following values determine the exact image behaviour. */
      /* You can simulate background-size: cover/contain/etc.
         by changing between min/max/standard width/height values.
         These values simulate background-size: cover
      */
      min-width: 100%;
      min-height: 100%; }
  .Carousel .swiper-button-prev,
  .Carousel .swiper-button-next {
    color: rgba(255, 255, 255, 0.5); }
  .Carousel .swiper-pagination-bullet-active {
    background: #fff; }

.map-wrapper {
  position: relative;
  overflow: hidden; }

.gm-style .selected {
  overflow: visible !important;
  opacity: 1 !important; }
  .gm-style .selected:before {
    content: '';
    background-color: rgba(255, 255, 255, 0.6);
    border-radius: 50%;
    border: 2px solid #fff;
    display: block;
    padding: 21px 22px;
    position: relative;
    left: -8px;
    top: -8px; }

#map-listing-info {
  width: 300px;
  min-width: 300px;
  height: 100%;
  background: #F5F5F0;
  position: absolute;
  z-index: 1;
  border-right: 2px solid #7D7D7D;
  transform: translateX(-100%);
  transition: transform 0.3s ease-in-out;
  overflow: scroll;
  padding: 0 20px; }
  #map-listing-info .fa-window-close {
    position: absolute;
    right: 10px;
    top: 10px; }
    #map-listing-info .fa-window-close:hover {
      cursor: pointer; }
  #map-listing-info.active {
    transform: translateX(0); }
  #map-listing-info p {
    font-size: 0.875em;
    line-height: 1.5; }
    #map-listing-info p:last-of-type {
      font-size: 0.75em; }

.clear-both {
  clear: both; }

.article {
  padding: 20px; }
  @media (min-width: 50em) {
    .article {
      padding: 20px 40px; } }

.article__title {
  color: #03123F;
  font-size: 1.375rem;
  text-transform: uppercase; }

.article__title-alt {
  font-size: 3rem;
  margin-bottom: 1em; }

.social-post-container .fab {
  font-size: 2em;
  margin-right: .5em; }

.connect-bar {
  padding: 3.875rem 0 !important; }
  .connect-bar .grid-item {
    margin-bottom: 0 !important; }

.connect-bar__title {
  color: white;
  font-size: 1.875rem;
  margin-bottom: .75em;
  text-align: center; }
  @media (min-width: 50em) {
    .connect-bar__title {
      margin-bottom: 0;
      text-align: left; } }

.connect-bar__social-icons {
  text-align: center; }
  @media (min-width: 50em) {
    .connect-bar__social-icons {
      text-align: right; } }

.connect-bar__icon {
  background-color: rgba(0, 0, 0, 0.2);
  color: white;
  display: inline-block;
  font-size: 1.25em;
  height: 50px;
  position: relative;
  text-align: center;
  transition: all .25s;
  width: 50px; }
  .connect-bar__icon:hover {
    background-color: rgba(0, 0, 0, 0.3); }
  .connect-bar__icon .icon {
    display: block;
    position: relative;
    top: 50%;
    transform: translateY(-50%); }

.e2ma_signup_form {
  padding: 0 !important; }

.event-detail-content {
  float: none !important;
  margin-left: auto !important;
  margin-right: auto !important; }

.global-footer, .e2ma_signup_form {
  background-color: #03123F;
  color: #F5F5F0;
  font-size: .813rem;
  font-weight: 300;
  padding: 60px 0 25px;
  text-align: center; }
  @media (min-width: 37.5em) {
    .global-footer, .e2ma_signup_form {
      text-align: left; } }
  .global-footer li, .e2ma_signup_form li {
    margin-bottom: 0; }
  .global-footer p, .e2ma_signup_form p {
    color: #F5F5F0;
    margin: 0;
    font-size: .813rem;
    font-weight: 300; }
    .global-footer p a, .e2ma_signup_form p a {
      color: #DDDDDD;
      text-decoration: none;
      transition: color .25s; }
      .global-footer p a:before, .e2ma_signup_form p a:before {
        background-color: #7D7D7D; }
      .global-footer p a:hover, .e2ma_signup_form p a:hover {
        color: #7D7D7D; }
        .global-footer p a:hover:before, .e2ma_signup_form p a:hover:before {
          background-color: #DDDDDD; }
  .global-footer .form-control, .e2ma_signup_form .form-control, .global-footer .e2ma_signup_form_element > input, .e2ma_signup_form .e2ma_signup_form_element > input {
    height: 31px;
    line-height: 1.33;
    padding: 6px 8px; }
  .global-footer .form-control-group, .e2ma_signup_form .form-control-group, .global-footer .e2ma_signup_form_row, .e2ma_signup_form .e2ma_signup_form_row {
    margin-bottom: 0.625em;
    margin-top: 0.625em; }

.global-footer__heading {
  color: #F5F5F0;
  font-size: .813rem;
  font-family: "Open Sans", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  font-weight: 700;
  text-transform: none; }

.global-footer__social {
  padding-bottom: 20px; }
  .global-footer__social .grid.-col3, .global-footer__social .-col3.callout, .global-footer__social .-col3.event__list.-grid {
    grid-template-columns: 50px 50px 50px; }
    @media (min-width: 63.75em) {
      .global-footer__social .grid.-col3, .global-footer__social .-col3.callout, .global-footer__social .-col3.event__list.-grid {
        grid-template-columns: 1fr 1fr 1fr; } }
  .global-footer__social a {
    color: #DDDDDD;
    text-decoration: none;
    transition: color .25s; }
    .global-footer__social a:hover {
      color: #7D7D7D; }
  .global-footer__social i {
    font-size: 32px; }
  .global-footer__social p {
    text-align: right;
    color: #7D7D7D;
    font-size: .6875rem;
    line-height: 1.3; }
  .global-footer__social #donate {
    padding-top: 50px; }

.global-footer__social-container {
  display: flex;
  justify-content: center; }

.global-footer__legal {
  text-align: center;
  margin-top: 60px; }

.global-header {
  background-color: white;
  max-height: 103px;
  overflow-y: hidden;
  position: relative;
  transition: max-height .5s ease, background-color .5s ease;
  z-index: 50; }
  @media (min-width: 63.75em) {
    .global-header {
      height: 103px;
      max-height: 103px;
      overflow-y: visible; } }
  .global-header.-expanded {
    background-color: white;
    max-height: 1000px;
    position: relative; }
    .primary-nav > li .global-header.-expanded.active {
      display: block; }
    .global-header.-expanded + main {
      opacity: 0.5; }
  .global-header > .container {
    height: 100%; }

.global-navigation {
  display: block;
  margin-bottom: 2.5em;
  margin-top: 2px; }
  .global-navigation:after {
    clear: both;
    content: '';
    display: table; }
  @media (min-width: 63.75em) {
    .global-navigation {
      margin-bottom: 0;
      margin-top: 0; } }

.hero {
  background-color: #2F3D47;
  position: relative; }
  .hero:after {
    clear: both;
    content: '';
    display: table; }
  .hero.-with-image {
    background-position: center center;
    background-size: cover;
    color: #fff;
    height: 360px;
    overflow: hidden; }
    @media (min-width: 50em) {
      .hero.-with-image {
        height: 435px; } }
    @media (min-width: 63.75em) {
      .hero.-with-image {
        height: 490px; } }
    .hero.-with-image:after {
      background-color: rgba(0, 0, 0, 0.3);
      bottom: 0;
      content: '';
      display: block;
      left: 0;
      pointer-events: none;
      position: absolute;
      top: 0;
      right: 0;
      z-index: 10; }
    .hero.-with-image.-top {
      background-position: top; }
  .hero .container {
    align-items: center;
    height: 100%;
    z-index: 20;
    max-width: 85vw;
    margin-left: auto;
    margin-right: auto; }
  .hero.-oversized {
    height: 770px !important; }
  .hero.-small, .hero.e2ma_signup_form_button {
    height: 250px; }
    .hero.-small .Carousel, .hero.e2ma_signup_form_button .Carousel {
      height: 250px; }
    @media (min-width: 50em) {
      .hero.-small, .hero.e2ma_signup_form_button {
        height: 320px; }
        .hero.-small .Carousel, .hero.e2ma_signup_form_button .Carousel {
          height: 320px; } }
    @media (min-width: 63.75em) {
      .hero.-small, .hero.e2ma_signup_form_button {
        height: 390px; }
        .hero.-small .Carousel, .hero.e2ma_signup_form_button .Carousel {
          height: 390px; } }
  .hero video {
    height: auto;
    left: 0;
    position: absolute;
    top: 0;
    width: 100%;
    z-index: 1; }

.main-content,
.main-content.container {
  position: relative;
  z-index: 20; }

/* YouTube TV */
/* Base Canvas */
.ytv-canvas {
  display: block;
  background: #282828;
  overflow: hidden;
  font-family: arial, sans-serif; }

.ytv-canvas ::-webkit-scrollbar {
  border-left: 1px solid #000;
  width: 10px; }

.ytv-canvas ::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.1); }

/* Video */
.ytv-video {
  position: absolute;
  top: 0;
  right: 300px;
  bottom: 0;
  left: 0;
  height: 100%; }

.ytv-video iframe {
  width: 100%;
  height: 100%;
  border: none;
  outline: none;
  display: block; }

/* List */
.ytv-list {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  height: 100%;
  width: 300px;
  font-family: "Open Sans", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  background-color: #F5F5F0; }

.ytv-list-inner {
  overflow: auto;
  position: absolute;
  top: 52px;
  right: 0;
  bottom: 0;
  left: 0;
  -webkit-overflow-scrolling: touch; }

.ytv-list ul {
  margin: 0;
  padding: 0;
  list-style-type: none; }

.ytv-list .ytv-active a {
  border-left: 2px solid #fff;
  background: #DDDDDD !important; }

.ytv-list a {
  display: block;
  text-decoration: none;
  font-size: 11px;
  color: #FEFEFE;
  padding: 10px;
  padding-left: 8px;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  border-bottom: 1px solid rgba(0, 0, 0, 0.5);
  border-left: 2px solid transparent; }

.ytv-list a b {
  max-height: 45px;
  overflow: hidden;
  display: block;
  text-overflow: ellipsis; }

.ytv-list li:first-child a {
  border-top: none; }

.ytv-list li:last-child a {
  border-bottom: none; }

.ytv-list a:hover,
.ytv-list-header .ytv-playlists a:hover {
  background: #DDDDDD !important; }

.ytv-list a:active,
.ytv-list-header .ytv-playlists a:active {
  background: rgba(0, 0, 0, 0.05); }

.ytv-list .ytv-content {
  padding-left: 125px; }

.ytv-list .ytv-thumb-stroke {
  position: absolute;
  top: 1px;
  left: 1px;
  bottom: 1px;
  right: 1px;
  z-index: 2;
  outline: 1px solid rgba(255, 255, 255, 0.1); }

.ytv-list .ytv-thumb {
  float: left;
  position: relative;
  outline: 1px solid rgba(0, 0, 0, 0.5); }

.ytv-list .ytv-thumb img {
  width: 120px;
  display: block; }

.ytv-list .ytv-thumb span {
  position: absolute;
  bottom: 5px;
  right: 5px;
  color: #eee;
  background: rgba(0, 0, 0, 0.7);
  font-size: 11px;
  font-weight: bold;
  padding: 0px 4px;
  -webkit-border-radius: 3px;
  -moz-border-radius: 3px;
  border-radius: 3px; }

.ytv-views {
  display: block;
  margin-top: 5px;
  font-size: 10px;
  font-weight: normal;
  opacity: 0.3; }

.ytv-list-header {
  height: 52px;
  -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
  -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); }

.ytv-list-header a {
  background: rgba(255, 255, 255, 0.05);
  position: relative;
  z-index: 10;
  background-color: #F5F5F0 !important; }

.ytv-list-header img,
.ytv-list .ytv-playlists .ytv-thumb img {
  width: 30px;
  vertical-align: middle; }

.ytv-list-header span {
  padding-left: 10px;
  font-size: 12px;
  font-weight: bold; }

/* Playlists */
.ytv-playlists {
  z-index: 9;
  position: absolute;
  background: #282828;
  top: 52px;
  left: 0;
  right: 0;
  bottom: 0;
  overflow: auto;
  display: none; }

.ytv-playlists img,
.ytv-list-header img {
  float: left; }

.ytv-playlists a span,
.ytv-list-header a span {
  white-space: nowrap;
  padding-left: 10px;
  display: block;
  overflow: hidden;
  text-overflow: ellipsis; }

.ytv-list-header > a span {
  line-height: 30px; }

.ytv-list-header .ytv-playlists a {
  background: none; }

.ytv-playlist-open .ytv-playlists {
  display: block; }

/* Modifiers */
.ytv-relative {
  position: relative;
  width: 100%;
  height: 100%; }

.ytv-full {
  position: fixed;
  top: 0;
  left: 0;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important; }

.ytv-arrow {
  height: 10px;
  width: 0;
  position: relative;
  top: 10px;
  right: 5px;
  border: 10px solid transparent;
  float: right;
  border-top-color: rgba(0, 0, 0, 0.4);
  display: none; }

.ytv-has-playlists .ytv-arrow {
  display: inline-block; }

.ytv-playlist-open .ytv-arrow {
  border-color: transparent;
  border-bottom-color: rgba(0, 0, 0, 0.4);
  top: -10px; }

.ytv-list-header a:after,
.ytv-clear:after {
  content: ".";
  display: block;
  clear: both;
  visibility: hidden;
  line-height: 0;
  height: 0; }

.-docs {
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: auto auto auto auto; }
  @media (min-width: 37.5em) {
    .-docs {
      grid-template-columns: auto 1fr; } }
  .-docs .main {
    grid-row: 3;
    grid-column: 1; }
    @media (min-width: 37.5em) {
      .-docs .main {
        grid-column: 2; } }
  .-docs .logo-bar {
    background-color: #F5F5F0;
    display: none; }
    @media (min-width: 37.5em) {
      .-docs .logo-bar {
        display: flex;
        text-align: center;
        width: 100%;
        grid-column: 1 /span 2;
        grid-row: 2;
        align-items: center; } }
    .-docs .logo-bar .-docs-head-logo {
      width: 100px;
      padding: 10px;
      height: 100%; }
  .-docs .global-footer, .-docs .e2ma_signup_form {
    grid-row: 4;
    grid-column: 1; }
    @media (min-width: 37.5em) {
      .-docs .global-footer, .-docs .e2ma_signup_form {
        grid-column: 1 /span 2; } }
  .-docs h1.hero__content__headline {
    font-size: 2em;
    line-height: 1.5em;
    margin: 0.5em;
    display: inline-block; }
    @media (min-width: 50em) {
      .-docs h1.hero__content__headline {
        font-size: 3em;
        padding: .2em; } }
  .-docs .secondary-nav {
    grid-row: 1;
    grid-column: 1; }
    @media (min-width: 37.5em) {
      .-docs .secondary-nav {
        grid-column: 1 /span 2; } }

.docs-header {
  grid-row: 2;
  grid-column: 1 /span 2; }
  @media (min-width: 37.5em) {
    .docs-header {
      grid-row: 3;
      grid-column: 1;
      width: 250px;
      background-color: #03123F; } }
  @media (min-width: 37.5em) {
    .docs-header .docs-nav {
      background-color: #03123F;
      padding: 0; } }
  .docs-header .docs-global-header {
    max-height: 85px;
    overflow-y: hidden;
    position: relative;
    z-index: 50; }
    @media (min-width: 37.5em) {
      .docs-header .docs-global-header {
        overflow-y: visible;
        height: 100vh;
        display: grid;
        grid-template-columns: auto;
        grid-template-rows: auto auto auto; } }
    .docs-header .docs-global-header.-expanded {
      background-color: #F5F5F0;
      max-height: 1000px;
      position: relative; }
      @media (min-width: 37.5em) {
        .docs-header .docs-global-header.-expanded {
          background-color: #03123F; } }
      .primary-nav > li .docs-header .docs-global-header.-expanded.active {
        display: block; }
      .docs-header .docs-global-header.-expanded + main {
        opacity: 0.5; }
    .docs-header .docs-global-header > .container {
      height: 100%; }
  .docs-header .burger {
    position: relative;
    float: right;
    height: 0;
    padding: 25px 10px 10px 10px;
    z-index: 100;
    grid-column: 1;
    align-self: start;
    max-width: 100px;
    display: block;
    color: #F5F5F0; }
    @media (min-width: 37.5em) {
      .docs-header .burger {
        display: none; } }
  @media (min-width: 63.75em) {
    .docs-header .primary-nav {
      padding-top: 20px;
      padding-right: 1em;
      padding-bottom: 1em; } }
  @media (min-width: 63.75em) {
    .docs-header .primary-nav > .primary-nav__item {
      float: none;
      position: relative; } }
  .docs-header .-docs-nav-logo {
    display: block;
    height: 80px; }
    @media (min-width: 37.5em) {
      .docs-header .-docs-nav-logo {
        display: none; } }
  .docs-header .nav-menu {
    background-color: transparent;
    border-bottom: none; }
    @media (min-width: 37.5em) {
      .docs-header .nav-menu {
        min-width: 0; } }
    @media (min-width: 63.75em) {
      .docs-header .nav-menu {
        border: none;
        position: relative; }
        .docs-header .nav-menu:not(.edge):before {
          content: none; }
        .docs-header .nav-menu:not(.edge):after {
          content: none; }
        .docs-header .nav-menu.edge {
          right: 0; }
          .docs-header .nav-menu.edge:before {
            content: none; }
          .docs-header .nav-menu.edge:after {
            content: none; } }
  .primary-nav > li:hover .docs-header {
    color: #041957; }
  @media (min-width: 63.75em) {
    .docs-header .nav-link {
      text-align: left; } }
  .docs-header .nav-link.-primary, .docs-header .nav-link.e2ma_signup_form_button {
    color: #03123F; }
    @media (min-width: 37.5em) {
      .docs-header .nav-link.-primary, .docs-header .nav-link.e2ma_signup_form_button {
        color: #DDDDDD; } }
    @media (min-width: 63.75em) {
      .docs-header .nav-link.-primary, .docs-header .nav-link.e2ma_signup_form_button {
        padding: 1em; } }
    .primary-nav.expanded .docs-header .nav-link.-primary, .primary-nav.expanded .docs-header .nav-link.e2ma_signup_form_button {
      color: #DDDDDD; }
      .primary-nav.expanded .docs-header .nav-link.-primary:hover, .primary-nav.expanded .docs-header .nav-link.e2ma_signup_form_button:hover {
        color: #F5F5F0; }
  .docs-header .nav-link i {
    display: none; }
    @media (min-width: 63.75em) {
      .docs-header .nav-link i {
        display: block; } }
  .primary-nav > li:hover .docs-header .nav-link.-active,
  .primary-nav > li:hover .docs-header .nav-link:hover,
  .primary-nav > li:hover .docs-header .nav-link:active,
  .primary-nav > li:hover .docs-header .nav-link:focus {
    color: #F5F5F0; }
  .docs-header .nav-link.-dropdown-link {
    color: #F5F5F0; }
  @media (min-width: 63.75em) {
    .primary-nav .docs-header .nav-link {
      text-align: left; } }
  @media (min-width: 63.75em) {
    .docs-header .nav-link.-active, .docs-header .nav-link:hover, .docs-header .nav-link:active, .docs-header .nav-link:focus {
      color: #F5F5F0; } }
  .docs-header .nav-link-button {
    color: #03123F;
    cursor: pointer; }
    @media (min-width: 37.5em) {
      .docs-header .nav-link-button {
        color: #DDDDDD; } }
    @media (min-width: 63.75em) {
      .docs-header .nav-link-button {
        display: block; } }
    .docs-header .nav-link-button:hover {
      color: blue; }
      @media (min-width: 37.5em) {
        .docs-header .nav-link-button:hover {
          color: #F5F5F0; } }
  .docs-header .docs-nav h2 {
    font-size: 1.2em;
    padding-top: 2em;
    padding-left: 1em;
    color: #53565B; }
    @media (min-width: 37.5em) {
      .docs-header .docs-nav h2 {
        color: #F5F5F0;
        grid-row: 2; } }
  .docs-header .docs-nav li {
    list-style: none;
    text-align: left;
    padding-left: 1.25em; }
    @media (min-width: 37.5em) {
      .docs-header .docs-nav li {
        padding-left: 0; } }
  .docs-header .docs-nav a {
    font-size: .9em;
    text-decoration: none;
    color: #53565B; }
    @media (min-width: 37.5em) {
      .docs-header .docs-nav a {
        color: #DDDDDD; } }
  .docs-header ul {
    padding-right: 1em;
    padding-bottom: 1em;
    background-color: #F5F5F0; }
    @media (min-width: 37.5em) {
      .docs-header ul {
        background-color: #03123F;
        grid-row: 3; } }
  .docs-header .-docs-head-logo {
    display: block; }
    @media (min-width: 37.5em) {
      .docs-header .-docs-head-logo {
        height: 85px; } }
  .docs-header .-docs-head-logo a {
    display: block;
    height: 80px; }
    @media (min-width: 37.5em) {
      .docs-header .-docs-head-logo a {
        display: none; } }
  .docs-header .global-header .primary-nav {
    padding-top: 20px; }
    @media (min-width: 63.75em) {
      .docs-header .global-header .primary-nav {
        float: none;
        padding-right: 1em; } }
  .docs-header .primary-nav .primary-nav__item {
    border-bottom: 1px solid #03123F; }
    @media (min-width: 37.5em) {
      .docs-header .primary-nav .primary-nav__item {
        border-bottom: 1px solid #F5F5F0; } }
    @media (min-width: 63.75em) {
      .docs-header .primary-nav .primary-nav__item {
        float: none; } }
  @media (min-width: 37.5em) {
    .docs-header .primary-nav__item:hover a {
      color: #DDDDDD; } }
  @media (min-width: 37.5em) {
    .docs-header .primary-nav > li:hover .nav-link.-primary, .docs-header .primary-nav > li:hover .nav-link.e2ma_signup_form_button {
      color: #F5F5F0; } }
  @media (min-width: 37.5em) {
    .docs-header .nav-menu li:hover a {
      color: #F5F5F0; } }
  .docs-header .primary-nav__item {
    max-width: 100vw; }

.four-o-four-pg .global-search {
  position: relative;
  margin: auto;
  display: grid;
  width: 90%;
  grid-template-rows: 100%;
  grid-template-columns: 1fr auto; }
  @media (min-width: 37.5em) {
    .four-o-four-pg .global-search {
      width: 70%; } }

.four-o-four-pg .button.-primary, .four-o-four-pg .e2ma_signup_form_button {
  grid-row: 1;
  grid-column: 2;
  margin-bottom: 0; }

.four-o-four-pg input#global-search {
  font-size: 1em;
  grid-column: 1;
  grid-row: 1; }

.styleguide__nav {
  background-color: darkgray;
  color: white;
  display: block; }
  .styleguide__nav ul {
    display: block;
    list-style: none; }
  .styleguide__nav li {
    list-style: none;
    display: inline-block; }
    .styleguide__nav li a {
      color: white;
      display: block;
      padding: .25em .5em; }

.sg__item {
  margin-top: 2em;
  margin-bottom: 2em; }

.sg__heading {
  border-bottom: 1px solid #ddd;
  color: gray;
  font-family: "Open Sans", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  font-size: 70%;
  font-weight: normal;
  margin-bottom: 2em;
  padding: 1em 0; }

.sg__color {
  border: 1px solid #ddd;
  display: inline-block;
  padding: .3em;
  width: 5em; }
  .sg__color .sg__color__swatch {
    display: block;
    height: 4em;
    margin-bottom: .2em;
    width: 100%; }
    .sg__color .sg__color__swatch.-color--gray--xlight {
      background-color: #F5F5F0; }
    .sg__color .sg__color__swatch.-color--gray--light {
      background-color: #DDDDDD; }
    .sg__color .sg__color__swatch.-color--gray--base {
      background-color: #7D7D7D; }
    .sg__color .sg__color__swatch.-color--gray--dark {
      background-color: #53565B; }
    .sg__color .sg__color__swatch.-color--gray--xdark {
      background-color: #2F3D47; }
    .sg__color .sg__color__swatch.-color--green--base {
      background-color: #DDDDDD; }
    .sg__color .sg__color__swatch.-color--blue--base {
      background-color: #03123F; }
    .sg__color .sg__color__swatch.-color--orange--base {
      background-color: #F59333; }
    .sg__color .sg__color__swatch.-color--purple--base {
      background-color: #5C4D9C; }
    .sg__color .sg__color__swatch.-color--alert--levelInfo {
      background-color: #A7BF8B; }
    .sg__color .sg__color__swatch.-color--alert--levelNotice {
      background-color: #F59333; }
    .sg__color .sg__color__swatch.-color--alert--levelCritical {
      background-color: #F44336; }
  .sg__color .sg__color__label {
    font-size: 80%; }

.sg__icon {
  display: inline-block; }

.sg__todo {
  background-color: red;
  color: white;
  font-weight: bold;
  padding: .15em; }

.styleguide .section-wrapper {
  padding: 5em 0; }

.styleguide .hero.-with-image {
  margin-bottom: 0; }

.styleguide .logo.-display-only {
  background-color: #fff;
  height: 200px;
  padding: 1.5em;
  width: 205px; }

.container {
  max-width: 1250px; }
  @media (min-width: 1250px) {
    .container {
      margin-left: auto;
      margin-right: auto; } }
  .container.-full {
    max-width: none; }
  .container.-gray {
    background-color: #F5F5F0; }

.section-wrapper {
  background-color: transparent;
  margin-bottom: 20px;
  margin-top: 20px;
  padding: 20px 20px; }
  @media (min-width: 50em) {
    .section-wrapper {
      padding: 20px 40px; } }
  @media (min-width: 63.75em) {
    .global-header .section-wrapper {
      padding: 20px 30px; } }
  .section-wrapper.-white {
    background-color: white; }
  .section-wrapper.-gray {
    background-color: #F5F5F0; }
  .section-wrapper.-green {
    background-color: #DDDDDD; }
  .section-wrapper.-flush-bottom {
    margin-bottom: 0;
    padding-bottom: 0; }
  .section-wrapper.-flush-top {
    margin-top: 0;
    padding-top: 0; }
  .section-wrapper.-flush-left {
    padding-left: 0; }
  .section-wrapper.-flush-right {
    padding-right: 0; }
  .section-wrapper.-flush-all {
    margin: 0;
    padding: 0; }

.upcoming-events {
  background-color: #F5F5F0;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: space-between;
  padding: 20px 20px;
  margin: 20px 0; }
  @media (min-width: 63.75em) {
    .upcoming-events {
      padding: 20px 40px; } }

.upcoming-events__controls {
  align-self: center; }
  .upcoming-events__controls i {
    transition: color 150ms linear;
    color: #03123F;
    font-size: 40px;
    padding: 5px;
    cursor: pointer; }
    .upcoming-events__controls i:hover {
      color: #979797; }

.fb-comments {
  display: flex;
  justify-content: center; }

@media print {
  * {
    background: transparent !important;
    box-shadow: none !important;
    color: #000 !important;
    text-shadow: none !important; }
  a,
  a:visited {
    text-decoration: underline; }
  pre,
  blockquote {
    border: 1px solid #999;
    page-break-inside: avoid; }
  thead {
    display: table-header-group; }
  tr,
  img {
    page-break-inside: avoid; }
  img {
    max-width: 100% !important; }
  @page {
    margin: .5cm; }
  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3; }
  h2, h3 {
    page-break-after: avoid; }
  /**
   * Add Site-specific styles below
   */ }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5jc3MiLCJzb3VyY2VzIjpbIm1haW4uc2NzcyIsIl9ub3JtYWxpemUuc2NzcyIsIi4uLy4uL3ZlbmRvci9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvX2JyZWFrcG9pbnQuc2NzcyIsIi4uLy4uL3ZlbmRvci9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9fY29udGV4dC5zY3NzIiwiLi4vLi4vdmVuZG9yL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L19oZWxwZXJzLnNjc3MiLCIuLi8uLi92ZW5kb3IvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvX3BhcnNlcnMuc2NzcyIsIi4uLy4uL3ZlbmRvci9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9wYXJzZXJzL19xdWVyeS5zY3NzIiwiLi4vLi4vdmVuZG9yL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L3BhcnNlcnMvX3NpbmdsZS5zY3NzIiwiLi4vLi4vdmVuZG9yL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L3BhcnNlcnMvc2luZ2xlL19kZWZhdWx0LnNjc3MiLCIuLi8uLi92ZW5kb3IvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvcGFyc2Vycy9fZG91YmxlLnNjc3MiLCIuLi8uLi92ZW5kb3IvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvcGFyc2Vycy9kb3VibGUvX2RlZmF1bHQtcGFpci5zY3NzIiwiLi4vLi4vdmVuZG9yL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L3BhcnNlcnMvZG91YmxlL19kb3VibGUtc3RyaW5nLnNjc3MiLCIuLi8uLi92ZW5kb3IvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvcGFyc2Vycy9kb3VibGUvX2RlZmF1bHQuc2NzcyIsIi4uLy4uL3ZlbmRvci9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9wYXJzZXJzL190cmlwbGUuc2NzcyIsIi4uLy4uL3ZlbmRvci9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9wYXJzZXJzL3RyaXBsZS9fZGVmYXVsdC5zY3NzIiwiLi4vLi4vdmVuZG9yL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L3BhcnNlcnMvX3Jlc29sdXRpb24uc2NzcyIsIi4uLy4uL3ZlbmRvci9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9wYXJzZXJzL3Jlc29sdXRpb24vX3Jlc29sdXRpb24uc2NzcyIsIi4uLy4uL3ZlbmRvci9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9fbm8tcXVlcnkuc2NzcyIsIi4uLy4uL3ZlbmRvci9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9fcmVzcG9uZC10by5zY3NzIiwiZnJhbWV3b3JrL19mcmFtZXdvcmsuc2NzcyIsImZyYW1ld29yay9fZnVuY3Rpb25zLnNjc3MiLCJmcmFtZXdvcmsvX21peGlucy5zY3NzIiwiX2NvbmZpZy5zY3NzIiwiX2Jhc2Uuc2NzcyIsImZvbnRzL19mb250cy5zY3NzIiwiZm9udHMvX25zY2MtaWNvbnMuc2NzcyIsImF0b21zL19hdG9tcy5zY3NzIiwiYXRvbXMvX2J1dHRvbi5zY3NzIiwiYXRvbXMvX2dsb2JhbC5zY3NzIiwiYXRvbXMvX2xpc3RzLnNjc3MiLCJhdG9tcy9fbG9hZGVyLnNjc3MiLCJhdG9tcy9fdGV4dC5zY3NzIiwiYXRvbXMvX2Zvcm1zLnNjc3MiLCJhdG9tcy9fZGF0ZXBpY2tlci5zY3NzIiwiYXRvbXMvX3RhYmxlcy5zY3NzIiwiYXRvbXMvX3ZpZGVvLWVtYmVkLnNjc3MiLCJtb2xlY3VsZXMvX21vbGVjdWxlcy5zY3NzIiwibW9sZWN1bGVzL19ncmlkLnNjc3MiLCJtb2xlY3VsZXMvX2FjY29yZGlvbi5zY3NzIiwibW9sZWN1bGVzL19icmVhZGNydW1icy5zY3NzIiwibW9sZWN1bGVzL19jYWxsb3V0LnNjc3MiLCJtb2xlY3VsZXMvX2NhbGxvdXQtYmxvY2suc2NzcyIsIm1vbGVjdWxlcy9fY2F0ZWdvcnktc2VsZWN0LnNjc3MiLCJtb2xlY3VsZXMvX2VtYmVkLnNjc3MiLCJtb2xlY3VsZXMvX2V2ZW50LWJsb2NrLnNjc3MiLCJtb2xlY3VsZXMvX2ZlYXR1cmVkLWVudHJ5LnNjc3MiLCJtb2xlY3VsZXMvX2ZlYXR1cmVkLWV2ZW50LnNjc3MiLCJtb2xlY3VsZXMvZ2xvYmFsLWZvb3Rlci9fY29udGFjdC1pbmZvLnNjc3MiLCJtb2xlY3VsZXMvZ2xvYmFsLWZvb3Rlci9fbmF2LnNjc3MiLCJtb2xlY3VsZXMvZ2xvYmFsLWZvb3Rlci9fcGFydG5lcnMuc2NzcyIsIm1vbGVjdWxlcy9fZ3JpZC10aXRsZS5zY3NzIiwibW9sZWN1bGVzL19ncmlkLWZpbHRlcnMuc2NzcyIsIm1vbGVjdWxlcy9faWNvbi1saW5rcy5zY3NzIiwibW9sZWN1bGVzL19sYWJlbC5zY3NzIiwibW9sZWN1bGVzL19saXN0aW5nLWJsb2NrLnNjc3MiLCJtb2xlY3VsZXMvX2xpc3RpbmctaXRlbS5zY3NzIiwibW9sZWN1bGVzL19sb2dvLnNjc3MiLCJtb2xlY3VsZXMvX21lZGlhLnNjc3MiLCJtb2xlY3VsZXMvX292ZXJ2aWV3LnNjc3MiLCJtb2xlY3VsZXMvZ2xvYmFsLWhlYWRlci9fYnVyZ2VyLnNjc3MiLCJtb2xlY3VsZXMvZ2xvYmFsLWhlYWRlci9fbmF2LWxpbmsuc2NzcyIsIm1vbGVjdWxlcy9nbG9iYWwtaGVhZGVyL19uYXYtbGluay1idXR0b24uc2NzcyIsIm1vbGVjdWxlcy9nbG9iYWwtaGVhZGVyL19uYXYtbWVudS5zY3NzIiwibW9sZWN1bGVzL2dsb2JhbC1oZWFkZXIvX3ByaW1hcnktbmF2LnNjc3MiLCJtb2xlY3VsZXMvZ2xvYmFsLWhlYWRlci9fc2VhcmNoLWJ1dHRvbi5zY3NzIiwibW9sZWN1bGVzL2dsb2JhbC1oZWFkZXIvX3NlY29uZGFyeS1uYXYuc2NzcyIsIm1vbGVjdWxlcy9nbG9iYWwtaGVhZGVyL19kb2NzLXNlYXJjaC5zY3NzIiwibW9sZWN1bGVzL19oZXJvLWNvbnRlbnQuc2NzcyIsIm1vbGVjdWxlcy9fcGFnZS10aXRsZS5zY3NzIiwibW9sZWN1bGVzL19waG90by1nYWxsZXJ5LnNjc3MiLCJtb2xlY3VsZXMvX3F1b3RlLnNjc3MiLCJtb2xlY3VsZXMvX3NpZGViYXItbmF2LnNjc3MiLCJtb2xlY3VsZXMvX3NjaGVkdWxlLnNjc3MiLCJtb2xlY3VsZXMvX3NpZGViYXItY2FsbG91dC5zY3NzIiwibW9sZWN1bGVzL190YWItcGFuZWwuc2NzcyIsIm1vbGVjdWxlcy9fdGFibGlzdC5zY3NzIiwibW9sZWN1bGVzL190b3AtYXJyb3cuc2NzcyIsIm1vbGVjdWxlcy9fZXZlbnQtcmVzb3VyY2VzLnNjc3MiLCJtb2xlY3VsZXMvX2ZlYXR1cmVkLXN0b3J5LWJsb2NrLnNjc3MiLCJtb2xlY3VsZXMvX3BhZ2luYXRvci5zY3NzIiwibW9sZWN1bGVzL19jb250YWN0LXBhZ2Uuc2NzcyIsIm1vbGVjdWxlcy9fanVkZ2VzLWRpcmVjdG9yeS5zY3NzIiwibW9sZWN1bGVzL19zZXBhcmF0b3Iuc2NzcyIsIm1vbGVjdWxlcy9fcnNzLWZlZWQuc2NzcyIsIm1vbGVjdWxlcy9faGVyby1jYXJvdXNlbC5zY3NzIiwibW9sZWN1bGVzL19tYXAuc2NzcyIsIm1vbGVjdWxlcy9fY2xlYXItZmxvYXRzLnNjc3MiLCJvcmdhbmlzbXMvX29yZ2FuaXNtcy5zY3NzIiwib3JnYW5pc21zL19hcnRpY2xlLnNjc3MiLCJvcmdhbmlzbXMvX2Nvbm5lY3QtYmFyLnNjc3MiLCJvcmdhbmlzbXMvX2VtbWEuc2NzcyIsIm9yZ2FuaXNtcy9fZXZlbnQtZGV0YWlsLWNvbnRlbnQuc2NzcyIsIm9yZ2FuaXNtcy9fZ2xvYmFsLWZvb3Rlci5zY3NzIiwib3JnYW5pc21zL19nbG9iYWwtaGVhZGVyLnNjc3MiLCJvcmdhbmlzbXMvX2dsb2JhbC1uYXYuc2NzcyIsIm9yZ2FuaXNtcy9faGVyby5zY3NzIiwib3JnYW5pc21zL19tYWluLWNvbnRlbnQuc2NzcyIsIm9yZ2FuaXNtcy9fdmlkZW8tcGxheWxpc3Quc2NzcyIsIm9yZ2FuaXNtcy9fZG9jcy5zY3NzIiwib3JnYW5pc21zL19kb2NzLWhlYWRlci5zY3NzIiwib3JnYW5pc21zL180MDQuc2NzcyIsIl9zdHlsZWd1aWRlLnNjc3MiLCJvYmplY3RzL19vYmplY3RzLnNjc3MiLCJvYmplY3RzL19jb250YWluZXIuc2NzcyIsIm9iamVjdHMvX3NlY3Rpb24td3JhcHBlci5zY3NzIiwib2JqZWN0cy9fdXBjb21pbmctZXZlbnRzLnNjc3MiLCJvYmplY3RzL19mYi1jb21tZW50cy5zY3NzIiwiX292ZXJyaWRlLnNjc3MiLCJfcHJpbnQuc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyJAaW1wb3J0ICdub3JtYWxpemUnO1xuLy8gaW1wb3J0IGFueSB2ZW5kb3IgcGFydGlhbHMgaGVyZVxuQGltcG9ydCAnLi4vLi4vdmVuZG9yL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50JztcbkBpbXBvcnQgJ2ZyYW1ld29yay9mcmFtZXdvcmsnO1xuQGltcG9ydCAnY29uZmlnJztcbkBpbXBvcnQgJ2Jhc2UnO1xuQGltcG9ydCAnZm9udHMvZm9udHMnO1xuQGltcG9ydCAnYXRvbXMvYXRvbXMnO1xuQGltcG9ydCAnbW9sZWN1bGVzL21vbGVjdWxlcyc7XG5AaW1wb3J0ICdvcmdhbmlzbXMvb3JnYW5pc21zJztcbkBpbXBvcnQgJ3N0eWxlZ3VpZGUnO1xuQGltcG9ydCAnb2JqZWN0cy9vYmplY3RzJztcbkBpbXBvcnQgJ292ZXJyaWRlJztcbkBpbXBvcnQgJ3ByaW50JzsiLCIvKiEgbm9ybWFsaXplLmNzcyB2My4wLjIgfCBNSVQgTGljZW5zZSB8IGdpdC5pby9ub3JtYWxpemUgKi9cblxuLyoqXG4gKiAxLiBTZXQgZGVmYXVsdCBmb250IGZhbWlseSB0byBzYW5zLXNlcmlmLlxuICogMi4gUHJldmVudCBpT1MgdGV4dCBzaXplIGFkanVzdCBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2UsIHdpdGhvdXQgZGlzYWJsaW5nXG4gKiAgICB1c2VyIHpvb20uXG4gKi9cblxuaHRtbCB7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOyAvKiAxICovXG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSBkZWZhdWx0IG1hcmdpbi5cbiAqL1xuXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vKiBIVE1MNSBkaXNwbGF5IGRlZmluaXRpb25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBhbnkgSFRNTDUgZWxlbWVudCBpbiBJRSA4LzkuXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYGRldGFpbHNgIG9yIGBzdW1tYXJ5YCBpbiBJRSAxMC8xMVxuICogYW5kIEZpcmVmb3guXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYG1haW5gIGluIElFIDExLlxuICovXG5cbmFydGljbGUsXG5hc2lkZSxcbmRldGFpbHMsXG5maWdjYXB0aW9uLFxuZmlndXJlLFxuZm9vdGVyLFxuaGVhZGVyLFxuaGdyb3VwLFxubWFpbixcbm1lbnUsXG5uYXYsXG5zZWN0aW9uLFxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgYGlubGluZS1ibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBpbiBJRSA4LzkuXG4gKiAyLiBOb3JtYWxpemUgdmVydGljYWwgYWxpZ25tZW50IG9mIGBwcm9ncmVzc2AgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gKi9cblxuYXVkaW8sXG5jYW52YXMsXG5wcm9ncmVzcyxcbnZpZGVvIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyAvKiAxICovXG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgLyogMiAqL1xufVxuXG4vKipcbiAqIFByZXZlbnQgbW9kZXJuIGJyb3dzZXJzIGZyb20gZGlzcGxheWluZyBgYXVkaW9gIHdpdGhvdXQgY29udHJvbHMuXG4gKiBSZW1vdmUgZXhjZXNzIGhlaWdodCBpbiBpT1MgNSBkZXZpY2VzLlxuICovXG5cbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGBbaGlkZGVuXWAgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAuXG4gKiBIaWRlIHRoZSBgdGVtcGxhdGVgIGVsZW1lbnQgaW4gSUUgOC85LzExLCBTYWZhcmksIGFuZCBGaXJlZm94IDwgMjIuXG4gKi9cblxuW2hpZGRlbl0sXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIExpbmtzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIGNvbG9yIGZyb20gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICovXG5cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLyoqXG4gKiBJbXByb3ZlIHJlYWRhYmlsaXR5IHdoZW4gZm9jdXNlZCBhbmQgYWxzbyBtb3VzZSBob3ZlcmVkIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5hOmFjdGl2ZSxcbmE6aG92ZXIge1xuICBvdXRsaW5lOiAwO1xufVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLzExLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cblxuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGUgc2V0IHRvIGBib2xkZXJgIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuICovXG5cbmRmbiB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHZhcmlhYmxlIGBoMWAgZm9udC1zaXplIGFuZCBtYXJnaW4gd2l0aGluIGBzZWN0aW9uYCBhbmQgYGFydGljbGVgXG4gKiBjb250ZXh0cyBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cblxuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LlxuICovXG5cbm1hcmsge1xuICBiYWNrZ3JvdW5kOiAjZmYwO1xuICBjb2xvcjogIzAwMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGluY29uc2lzdGVudCBhbmQgdmFyaWFibGUgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xufVxuXG4vKipcbiAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGFmZmVjdGluZyBgbGluZS1oZWlnaHRgIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG4vKiBFbWJlZGRlZCBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSBib3JkZXIgd2hlbiBpbnNpZGUgYGFgIGVsZW1lbnQgaW4gSUUgOC85LzEwLlxuICovXG5cbmltZyB7XG4gIGJvcmRlcjogMDtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IG92ZXJmbG93IG5vdCBoaWRkZW4gaW4gSUUgOS8xMC8xMS5cbiAqL1xuXG5zdmc6bm90KDpyb290KSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkcmVzcyBtYXJnaW4gbm90IHByZXNlbnQgaW4gSUUgOC85IGFuZCBTYWZhcmkuXG4gKi9cblxuZmlndXJlIHtcbiAgbWFyZ2luOiAxZW0gNDBweDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGRpZmZlcmVuY2VzIGJldHdlZW4gRmlyZWZveCBhbmQgb3RoZXIgYnJvd3NlcnMuXG4gKi9cblxuaHIge1xuICAtbW96LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgaGVpZ2h0OiAwO1xufVxuXG4vKipcbiAqIENvbnRhaW4gb3ZlcmZsb3cgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnByZSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgb2RkIGBlbWAtdW5pdCBmb250IHNpemUgcmVuZGVyaW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5jb2RlLFxua2JkLFxucHJlLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgZm9udC1zaXplOiAxZW07XG59XG5cbi8qIEZvcm1zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEtub3duIGxpbWl0YXRpb246IGJ5IGRlZmF1bHQsIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFggYWxsb3cgdmVyeSBsaW1pdGVkXG4gKiBzdHlsaW5nIG9mIGBzZWxlY3RgLCB1bmxlc3MgYSBgYm9yZGVyYCBwcm9wZXJ0eSBpcyBzZXQuXG4gKi9cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGNvbG9yIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4gKiAgICBLbm93biBpc3N1ZTogYWZmZWN0cyBjb2xvciBvZiBkaXNhYmxlZCBlbGVtZW50cy5cbiAqIDIuIENvcnJlY3QgZm9udCBwcm9wZXJ0aWVzIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4gKiAzLiBBZGRyZXNzIG1hcmdpbnMgc2V0IGRpZmZlcmVudGx5IGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBjb2xvcjogaW5oZXJpdDsgLyogMSAqL1xuICBmb250OiBpbmhlcml0OyAvKiAyICovXG4gIG1hcmdpbjogMDsgLyogMyAqL1xufVxuXG4vKipcbiAqIEFkZHJlc3MgYG92ZXJmbG93YCBzZXQgdG8gYGhpZGRlbmAgaW4gSUUgOC85LzEwLzExLlxuICovXG5cbmJ1dHRvbiB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGB0ZXh0LXRyYW5zZm9ybWAgaW5oZXJpdGFuY2UgZm9yIGBidXR0b25gIGFuZCBgc2VsZWN0YC5cbiAqIEFsbCBvdGhlciBmb3JtIGNvbnRyb2wgZWxlbWVudHMgZG8gbm90IGluaGVyaXQgYHRleHQtdHJhbnNmb3JtYCB2YWx1ZXMuXG4gKiBDb3JyZWN0IGBidXR0b25gIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3gsIElFIDgvOS8xMC8xMSwgYW5kIE9wZXJhLlxuICogQ29ycmVjdCBgc2VsZWN0YCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LlxuICovXG5cbmJ1dHRvbixcbnNlbGVjdCB7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vKipcbiAqIDEuIEF2b2lkIHRoZSBXZWJLaXQgYnVnIGluIEFuZHJvaWQgNC4wLiogd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gXG4gKiAgICBhbmQgYHZpZGVvYCBjb250cm9scy5cbiAqIDIuIENvcnJlY3QgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSBgaW5wdXRgIHR5cGVzIGluIGlPUy5cbiAqIDMuIEltcHJvdmUgdXNhYmlsaXR5IGFuZCBjb25zaXN0ZW5jeSBvZiBjdXJzb3Igc3R5bGUgYmV0d2VlbiBpbWFnZS10eXBlXG4gKiAgICBgaW5wdXRgIGFuZCBvdGhlcnMuXG4gKi9cblxuYnV0dG9uLFxuaHRtbCBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLCAvKiAxICovXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0sXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDIgKi9cbiAgY3Vyc29yOiBwb2ludGVyOyAvKiAzICovXG59XG5cbi8qKlxuICogUmUtc2V0IGRlZmF1bHQgY3Vyc29yIGZvciBkaXNhYmxlZCBlbGVtZW50cy5cbiAqL1xuXG5idXR0b25bZGlzYWJsZWRdLFxuaHRtbCBpbnB1dFtkaXNhYmxlZF0ge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi8qKlxuICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIGJvcmRlciBpbiBGaXJlZm94IDQrLlxuICovXG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbmlucHV0OjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgRmlyZWZveCA0KyBzZXR0aW5nIGBsaW5lLWhlaWdodGAgb24gYGlucHV0YCB1c2luZyBgIWltcG9ydGFudGAgaW5cbiAqIHRoZSBVQSBzdHlsZXNoZWV0LlxuICovXG5cbmlucHV0IHtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cblxuLyoqXG4gKiBJdCdzIHJlY29tbWVuZGVkIHRoYXQgeW91IGRvbid0IGF0dGVtcHQgdG8gc3R5bGUgdGhlc2UgZWxlbWVudHMuXG4gKiBGaXJlZm94J3MgaW1wbGVtZW50YXRpb24gZG9lc24ndCByZXNwZWN0IGJveC1zaXppbmcsIHBhZGRpbmcsIG9yIHdpZHRoLlxuICpcbiAqIDEuIEFkZHJlc3MgYm94IHNpemluZyBzZXQgdG8gYGNvbnRlbnQtYm94YCBpbiBJRSA4LzkvMTAuXG4gKiAyLiBSZW1vdmUgZXhjZXNzIHBhZGRpbmcgaW4gSUUgOC85LzEwLlxuICovXG5cbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbmlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIEZpeCB0aGUgY3Vyc29yIHN0eWxlIGZvciBDaHJvbWUncyBpbmNyZW1lbnQvZGVjcmVtZW50IGJ1dHRvbnMuIEZvciBjZXJ0YWluXG4gKiBgZm9udC1zaXplYCB2YWx1ZXMgb2YgdGhlIGBpbnB1dGAsIGl0IGNhdXNlcyB0aGUgY3Vyc29yIHN0eWxlIG9mIHRoZVxuICogZGVjcmVtZW50IGJ1dHRvbiB0byBjaGFuZ2UgZnJvbSBgZGVmYXVsdGAgdG8gYHRleHRgLlxuICovXG5cbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIEFkZHJlc3MgYGFwcGVhcmFuY2VgIHNldCB0byBgc2VhcmNoZmllbGRgIGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuICogMi4gQWRkcmVzcyBgYm94LXNpemluZ2Agc2V0IHRvIGBib3JkZXItYm94YCBpbiBTYWZhcmkgYW5kIENocm9tZVxuICogICAgKGluY2x1ZGUgYC1tb3pgIHRvIGZ1dHVyZS1wcm9vZikuXG4gKi9cblxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiAxICovXG4gIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIC13ZWJraXQtYm94LXNpemluZzogY29udGVudC1ib3g7IC8qIDIgKi9cbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG59XG5cbi8qKlxuICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIHNlYXJjaCBjYW5jZWwgYnV0dG9uIGluIFNhZmFyaSBhbmQgQ2hyb21lIG9uIE9TIFguXG4gKiBTYWZhcmkgKGJ1dCBub3QgQ2hyb21lKSBjbGlwcyB0aGUgY2FuY2VsIGJ1dHRvbiB3aGVuIHRoZSBzZWFyY2ggaW5wdXQgaGFzXG4gKiBwYWRkaW5nIChhbmQgYHRleHRmaWVsZGAgYXBwZWFyYW5jZSkuXG4gKi9cblxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi8qKlxuICogRGVmaW5lIGNvbnNpc3RlbnQgYm9yZGVyLCBtYXJnaW4sIGFuZCBwYWRkaW5nLlxuICovXG5cbmZpZWxkc2V0IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDtcbiAgbWFyZ2luOiAwIDJweDtcbiAgcGFkZGluZzogMC4zNWVtIDAuNjI1ZW0gMC43NWVtO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgYGNvbG9yYCBub3QgYmVpbmcgaW5oZXJpdGVkIGluIElFIDgvOS8xMC8xMS5cbiAqIDIuIFJlbW92ZSBwYWRkaW5nIHNvIHBlb3BsZSBhcmVuJ3QgY2F1Z2h0IG91dCBpZiB0aGV5IHplcm8gb3V0IGZpZWxkc2V0cy5cbiAqL1xuXG5sZWdlbmQge1xuICBib3JkZXI6IDA7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSA4LzkvMTAvMTEuXG4gKi9cblxudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiBEb24ndCBpbmhlcml0IHRoZSBgZm9udC13ZWlnaHRgIChhcHBsaWVkIGJ5IGEgcnVsZSBhYm92ZSkuXG4gKiBOT1RFOiB0aGUgZGVmYXVsdCBjYW5ub3Qgc2FmZWx5IGJlIGNoYW5nZWQgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWC5cbiAqL1xuXG5vcHRncm91cCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vKiBUYWJsZXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIG1vc3Qgc3BhY2luZyBiZXR3ZWVuIHRhYmxlIGNlbGxzLlxuICovXG5cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7XG59XG5cbnRkLFxudGgge1xuICBwYWRkaW5nOiAwO1xufVxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBEZWZhdWx0IFZhcmlhYmxlc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBEZWZhdWx0IEZlYXR1cmVzXG4kYnJlYWtwb2ludC1kZWZhdWx0LW1lZGlhOiAgICAgIGFsbCAhZGVmYXVsdDtcbiRicmVha3BvaW50LWRlZmF1bHQtZmVhdHVyZTogICAgbWluLXdpZHRoICFkZWZhdWx0O1xuJGJyZWFrcG9pbnQtZGVmYXVsdC1wYWlyOiAgICAgICB3aWR0aCAhZGVmYXVsdDtcblxuLy8gRGVmYXVsdCBUcmFuc2Zvcm1zXG4kYnJlYWtwb2ludC1mb3JjZS1tZWRpYS1hbGw6ICAgIGZhbHNlICFkZWZhdWx0O1xuJGJyZWFrcG9pbnQtdG8tZW1zOiAgICAgICAgICAgICBmYWxzZSAhZGVmYXVsdDtcbiRicmVha3BvaW50LXJlc29sdXRpb25zOiAgICAgICAgdHJ1ZSAhZGVmYXVsdDtcblxuLy8gRGVmYXVsdCBObyBRdWVyeSBPcHRpb25zXG4kYnJlYWtwb2ludC1uby1xdWVyaWVzOiAgICAgICAgIGZhbHNlICFkZWZhdWx0O1xuJGJyZWFrcG9pbnQtbm8tcXVlcnktZmFsbGJhY2tzOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8gRGVmdGF1bHQgQmFzZSBGb250IFNpemVcbiRicmVha3BvaW50LWJhc2UtZm9udC1zaXplOiAgICAgMTZweCAhZGVmYXVsdDtcblxuLy8gTGVnYWN5IFN5bnRheCBTdXBwb3J0XG4kYnJlYWtwb2ludC1sZWdhY3ktc3ludGF4OiAgICAgIGZhbHNlICFkZWZhdWx0O1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEltcG9ydHNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCAnYnJlYWtwb2ludC9jb250ZXh0JztcbkBpbXBvcnQgJ2JyZWFrcG9pbnQvaGVscGVycyc7XG5AaW1wb3J0ICdicmVha3BvaW50L3BhcnNlcnMnO1xuQGltcG9ydCAnYnJlYWtwb2ludC9uby1xdWVyeSc7XG5cbkBpbXBvcnQgJ2JyZWFrcG9pbnQvcmVzcG9uZC10byc7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQnJlYWtwb2ludCBNaXhpblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkBtaXhpbiBicmVha3BvaW50KCRxdWVyeSwgJG5vLXF1ZXJ5OiBmYWxzZSkge1xuICAvLyBSZXNldCBjb250ZXh0c1xuICBAaW5jbHVkZSBwcml2YXRlLWJyZWFrcG9pbnQtcmVzZXQtY29udGV4dHMoKTtcblxuICAkYnJlYWtwb2ludDogYnJlYWtwb2ludCgkcXVlcnksIGZhbHNlKTtcblxuICAkcXVlcnktc3RyaW5nOiBtYXAtZ2V0KCRicmVha3BvaW50LCAncXVlcnknKTtcbiAgJHF1ZXJ5LWZhbGxiYWNrOiBtYXAtZ2V0KCRicmVha3BvaW50LCAnZmFsbGJhY2snKTtcblxuICAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyOiBtYXAtZ2V0KCRicmVha3BvaW50LCAnY29udGV4dCBob2xkZXInKSAhZ2xvYmFsO1xuICAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50OiBtYXAtZ2V0KCRicmVha3BvaW50LCAncXVlcnkgY291bnQnKSAhZ2xvYmFsO1xuXG4gIC8vIEFsbG93IGZvciBhbiBhcy1uZWVkZWQgb3ZlcnJpZGUgb3IgdXNhZ2Ugb2Ygbm8gcXVlcnkgZmFsbGJhY2suXG4gIEBpZiAkbm8tcXVlcnkgIT0gZmFsc2Uge1xuICAgICRxdWVyeS1mYWxsYmFjazogJG5vLXF1ZXJ5O1xuICB9XG5cbiAgQGlmICRxdWVyeS1mYWxsYmFjayAhPSBmYWxzZSB7XG4gICAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQoJ25vLXF1ZXJ5JywgJHF1ZXJ5LWZhbGxiYWNrKTtcbiAgfVxuXG4gIC8vIFByaW50IE91dCBRdWVyeSBTdHJpbmdcbiAgQGlmIG5vdCAkYnJlYWtwb2ludC1uby1xdWVyaWVzIHtcbiAgICBAbWVkaWEgI3skcXVlcnktc3RyaW5nfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cblxuICBAaWYgJGJyZWFrcG9pbnQtbm8tcXVlcnktZmFsbGJhY2tzICE9IGZhbHNlIG9yICRicmVha3BvaW50LW5vLXF1ZXJpZXMgPT0gdHJ1ZSB7XG5cbiAgICAkdHlwZTogdHlwZS1vZigkYnJlYWtwb2ludC1uby1xdWVyeS1mYWxsYmFja3MpO1xuICAgICRwcmludDogZmFsc2U7XG5cbiAgICBAaWYgKCR0eXBlID09ICdib29sJykge1xuICAgICAgJHByaW50OiB0cnVlO1xuICAgIH1cbiAgICBAZWxzZSBpZiAoJHR5cGUgPT0gJ3N0cmluZycpIHtcbiAgICAgIEBpZiAkcXVlcnktZmFsbGJhY2sgPT0gJGJyZWFrcG9pbnQtbm8tcXVlcnktZmFsbGJhY2tzIHtcbiAgICAgICAgJHByaW50OiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSBpZiAoJHR5cGUgPT0gJ2xpc3QnKSB7XG4gICAgICBAZWFjaCAkd3JhcHBlciBpbiAkYnJlYWtwb2ludC1uby1xdWVyeS1mYWxsYmFja3Mge1xuICAgICAgICBAaWYgJHF1ZXJ5LWZhbGxiYWNrID09ICR3cmFwcGVyIHtcbiAgICAgICAgICAkcHJpbnQ6IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBXcml0ZSBGYWxsYmFja1xuICAgIEBpZiAoJHF1ZXJ5LWZhbGxiYWNrICE9IGZhbHNlKSBhbmQgKCRwcmludCA9PSB0cnVlKSB7XG4gICAgICAkdHlwZS1mYWxsYmFjazogdHlwZS1vZigkcXVlcnktZmFsbGJhY2spO1xuXG4gICAgICBAaWYgKCR0eXBlLWZhbGxiYWNrICE9ICdib29sJykge1xuICAgICAgICAjeyRxdWVyeS1mYWxsYmFja30gJiB7XG4gICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgcHJpdmF0ZS1icmVha3BvaW50LXJlc2V0LWNvbnRleHRzKCk7XG59XG5cblxuQG1peGluIG1xKCRxdWVyeSwgJG5vLXF1ZXJ5OiBmYWxzZSkge1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRxdWVyeSwgJG5vLXF1ZXJ5KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUHJpdmF0ZSBCcmVha3BvaW50IFZhcmlhYmxlc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyOiAoKTtcbiRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQ6IDAgIWRlZmF1bHQ7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQnJlYWtwb2ludCBIYXMgQ29udGV4dFxuLy8gUmV0dXJucyB3aGV0aGVyIG9yIG5vdCB5b3UgYXJlIGluc2lkZSBhIEJyZWFrcG9pbnQgcXVlcnlcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtaGFzLWNvbnRleHQoKSB7XG4gIEBpZiBsZW5ndGgoJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudCkge1xuICAgIEByZXR1cm4gdHJ1ZTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEJyZWFrcG9pbnQgR2V0IENvbnRleHRcbi8vICRmZWF0dXJlOiBJbnB1dCBmZWF0dXJlIHRvIGdldCBpdCdzIGN1cnJlbnQgTVEgY29udGV4dC4gUmV0dXJucyBmYWxzZSBpZiBubyBjb250ZXh0XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBicmVha3BvaW50LWdldC1jb250ZXh0KCRmZWF0dXJlKSB7XG4gIEBpZiBtYXAtaGFzLWtleSgkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLCAkZmVhdHVyZSkge1xuICAgICRnZXQ6IG1hcC1nZXQoJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlciwgJGZlYXR1cmUpO1xuICAgIC8vIFNwZWNpYWwgaGFuZGxpbmcgb2Ygbm8tcXVlcnkgZnJvbSBnZXQgc2lkZSBzbyAvZmFsc2UvIHByZXBlbmRzIGFyZW4ndCByZXR1cm5lZFxuICAgIEBpZiAkZmVhdHVyZSA9PSAnbm8tcXVlcnknIHtcbiAgICAgIEBpZiB0eXBlLW9mKCRnZXQpID09ICdsaXN0JyBhbmQgbGVuZ3RoKCRnZXQpID4gMSBhbmQgbnRoKCRnZXQsIDEpID09IGZhbHNlIHtcbiAgICAgICAgJGdldDogbnRoKCRnZXQsIGxlbmd0aCgkZ2V0KSk7XG4gICAgICB9XG4gICAgfVxuICAgIEByZXR1cm4gJGdldDtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGlmIGJyZWFrcG9pbnQtaGFzLWNvbnRleHQoKSBhbmQgJGZlYXR1cmUgPT0gJ21lZGlhJyB7XG4gICAgICBAcmV0dXJuICRicmVha3BvaW50LWRlZmF1bHQtbWVkaWE7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUHJpdmF0ZSBmdW5jdGlvbiB0byBzZXQgY29udGV4dFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KCRmZWF0dXJlLCAkdmFsdWUpIHtcbiAgQGlmICR2YWx1ZSA9PSAnbW9ub2Nocm9tZScge1xuICAgICRmZWF0dXJlOiAnbW9ub2Nocm9tZSc7XG4gIH1cblxuICAkY3VycmVudDogbWFwLWdldCgkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLCAkZmVhdHVyZSk7XG4gIEBpZiAkY3VycmVudCBhbmQgbGVuZ3RoKCRjdXJyZW50KSA9PSAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50IHtcbiAgICBAd2FybiBcIllvdSBoYXZlIGFscmVhZHkgcXVlcmllZCBhZ2FpbnN0IGAjeyRmZWF0dXJlfWAuIFVuZXhwZWN0ZWQgdGhpbmdzIG1heSBoYXBwZW4gaWYgeW91IHF1ZXJ5IGFnYWluc3QgdGhlIHNhbWUgZmVhdHVyZSBtb3JlIHRoYW4gb25jZSBpbiB0aGUgc2FtZSBgYW5kYCBxdWVyeS4gQnJlYWtwb2ludCBpcyBvdmVyd3JpdGluZyB0aGUgY3VycmVudCBjb250ZXh0IHdpdGggYCN7JHZhbHVlfWBcIjtcbiAgfVxuXG4gIEBpZiBub3QgbWFwLWhhcy1rZXkoJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlciwgJGZlYXR1cmUpIHtcbiAgICAkdi1ob2xkZXI6ICgpO1xuICAgIEBmb3IgJGkgZnJvbSAxIHRvICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQge1xuICAgICAgQGlmICRmZWF0dXJlID09ICdtZWRpYScge1xuICAgICAgICAkdi1ob2xkZXI6IGFwcGVuZCgkdi1ob2xkZXIsICRicmVha3BvaW50LWRlZmF1bHQtbWVkaWEpO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkdi1ob2xkZXI6IGFwcGVuZCgkdi1ob2xkZXIsIGZhbHNlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgJHYtaG9sZGVyOiBhcHBlbmQoJHYtaG9sZGVyLCAkdmFsdWUpO1xuICAgICRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXI6IG1hcC1tZXJnZSgkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLCAoJGZlYXR1cmU6ICR2LWhvbGRlcikpICFnbG9iYWw7XG4gIH1cbiAgQGVsc2Uge1xuICAgICR2LWhvbGRlcjogbWFwLWdldCgkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLCAkZmVhdHVyZSk7XG4gICAgJGxlbmd0aDogbGVuZ3RoKCR2LWhvbGRlcik7XG4gICAgQGZvciAkaSBmcm9tICRsZW5ndGggdG8gJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudCAtIDEge1xuICAgICAgQGlmICRmZWF0dXJlID09ICdtZWRpYScge1xuICAgICAgICAkdi1ob2xkZXI6IGFwcGVuZCgkdi1ob2xkZXIsICRicmVha3BvaW50LWRlZmF1bHQtbWVkaWEpO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkdi1ob2xkZXI6IGFwcGVuZCgkdi1ob2xkZXIsIGZhbHNlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgJHYtaG9sZGVyOiBhcHBlbmQoJHYtaG9sZGVyLCAkdmFsdWUpO1xuICAgICRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXI6IG1hcC1tZXJnZSgkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLCAoJGZlYXR1cmU6ICR2LWhvbGRlcikpICFnbG9iYWw7XG4gIH1cblxuICBAcmV0dXJuIHRydWU7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUHJpdmF0ZSBmdW5jdGlvbiB0byByZXNldCBjb250ZXh0XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBtaXhpbiBwcml2YXRlLWJyZWFrcG9pbnQtcmVzZXQtY29udGV4dHMge1xuICAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyOiAoKSAhZ2xvYmFsO1xuICAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50OiAwICFnbG9iYWw7XG59IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBDb252ZXJ0cyB0aGUgaW5wdXQgdmFsdWUgdG8gQmFzZSBFTXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtdG8tYmFzZS1lbSgkdmFsdWUpIHtcbiAgJHZhbHVlLXVuaXQ6IHVuaXQoJHZhbHVlKTtcblxuICAvLyBXaWxsIGNvbnZlcnQgcmVsYXRpdmUgRU1zIGludG8gcm9vdCBFTXMuXG4gIEBpZiAkYnJlYWtwb2ludC1iYXNlLWZvbnQtc2l6ZSBhbmQgdHlwZS1vZigkYnJlYWtwb2ludC1iYXNlLWZvbnQtc2l6ZSkgPT0gJ251bWJlcicgYW5kICR2YWx1ZS11bml0ID09ICdlbScge1xuICAgICRiYXNlLXVuaXQ6IHVuaXQoJGJyZWFrcG9pbnQtYmFzZS1mb250LXNpemUpO1xuXG4gICAgQGlmICRiYXNlLXVuaXQgPT0gJ3B4JyBvciAkYmFzZS11bml0ID09ICclJyBvciAkYmFzZS11bml0ID09ICdlbScgb3IgJGJhc2UtdW5pdCA9PSAncHQnIHtcbiAgICAgIEByZXR1cm4gYmFzZS1jb252ZXJzaW9uKCR2YWx1ZSkgLyBiYXNlLWNvbnZlcnNpb24oJGJyZWFrcG9pbnQtYmFzZS1mb250LXNpemUpICogMWVtO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAd2FybiAnI3skYnJlYWtwb2ludC1iYXNlLWZvbnQtc2l6ZX0gaXMgbm90IHNldCBpbiB2YWxpZCB1bml0cyBmb3IgZm9udCBzaXplISc7XG4gICAgICBAcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBiYXNlLWNvbnZlcnNpb24oJHZhbHVlKTtcbiAgfVxufVxuXG5AZnVuY3Rpb24gYmFzZS1jb252ZXJzaW9uKCR2YWx1ZSkge1xuICAkdW5pdDogdW5pdCgkdmFsdWUpO1xuXG4gIEBpZiAkdW5pdCA9PSAncHgnIHtcbiAgICBAcmV0dXJuICR2YWx1ZSAvIDE2cHggKiAxZW07XG4gIH1cbiAgQGVsc2UgaWYgJHVuaXQgPT0gJyUnIHtcbiAgICBAcmV0dXJuICR2YWx1ZSAvIDEwMCUgKiAxZW07XG4gIH1cbiAgQGVsc2UgaWYgJHVuaXQgPT0gJ2VtJyB7XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH1cbiAgQGVsc2UgaWYgJHVuaXQgPT0gJ3B0JyB7XG4gICAgQHJldHVybiAkdmFsdWUgLyAxMnB0ICogMWVtO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuICR2YWx1ZTtcbi8vICAgIEB3YXJuICdFdmVyeXRoaW5nIGlzIHRlcnJpYmxlISBXaGF0IGhhdmUgeW91IGRvbmU/ISc7XG4gIH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBSZXR1cm5zIHdoZXRoZXIgdGhlIGZlYXR1cmUgY2FuIGhhdmUgYSBtaW4vbWF4IHBhaXJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJGJyZWFrcG9pbnQtbWluLW1heC1mZWF0dXJlczogJ2NvbG9yJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb2xvci1pbmRleCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYXNwZWN0LXJhdGlvJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZXZpY2UtYXNwZWN0LXJhdGlvJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZXZpY2UtaGVpZ2h0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZXZpY2Utd2lkdGgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hlaWdodCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbW9ub2Nocm9tZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncmVzb2x1dGlvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnd2lkdGgnO1xuXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1taW4tbWF4KCRmZWF0dXJlKSB7XG4gIEBlYWNoICRpdGVtIGluICRicmVha3BvaW50LW1pbi1tYXgtZmVhdHVyZXMge1xuICAgIEBpZiAkZmVhdHVyZSA9PSAkaXRlbSB7XG4gICAgICBAcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG4gIEByZXR1cm4gZmFsc2U7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUmV0dXJucyB3aGV0aGVyIHRoZSBmZWF0dXJlIGNhbiBoYXZlIGEgc3RyaW5nIHZhbHVlXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRicmVha3BvaW50LXN0cmluZy1mZWF0dXJlczogICdvcmllbnRhdGlvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2NhbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29sb3InLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FzcGVjdC1yYXRpbycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGV2aWNlLWFzcGVjdC1yYXRpbycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncG9pbnRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbHVtaW5vc2l0eSc7XG5cbkBmdW5jdGlvbiBicmVha3BvaW50LXN0cmluZy12YWx1ZSgkZmVhdHVyZSkge1xuICBAZWFjaCAkaXRlbSBpbiAkYnJlYWtwb2ludC1zdHJpbmctZmVhdHVyZXMge1xuICAgIEBpZiBicmVha3BvaW50LW1pbi1tYXgoJGl0ZW0pIHtcbiAgICAgIEBpZiAkZmVhdHVyZSA9PSAnbWluLSN7JGl0ZW19JyBvciAkZmVhdHVyZSA9PSAnbWF4LSN7JGl0ZW19JyB7XG4gICAgICAgIEByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2UgaWYgJGZlYXR1cmUgPT0gJGl0ZW0ge1xuICAgICAgQHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuICBAcmV0dXJuIGZhbHNlO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFJldHVybnMgd2hldGhlciB0aGUgZmVhdHVyZSBpcyBhIG1lZGlhIHR5cGVcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJGJyZWFrcG9pbnQtbWVkaWEtdHlwZXM6ICAnYWxsJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JyYWlsbGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAnZW1ib3NzZWQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAnaGFuZGhlbGQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAncHJpbnQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAncHJvamVjdGlvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdzY3JlZW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAnc3BlZWNoJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3R0eScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICd0dic7XG5cbkBmdW5jdGlvbiBicmVha3BvaW50LWlzLW1lZGlhKCRmZWF0dXJlKSB7XG4gIEBlYWNoICRtZWRpYSBpbiAkYnJlYWtwb2ludC1tZWRpYS10eXBlcyB7XG4gICAgQGlmICgkZmVhdHVyZSA9PSAkbWVkaWEpIG9yICgkZmVhdHVyZSA9PSAnbm90ICN7JG1lZGlhfScpIG9yICgkZmVhdHVyZSA9PSAnb25seSAjeyRtZWRpYX0nKSB7XG4gICAgICBAcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiBmYWxzZTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBSZXR1cm5zIHdoZXRoZXIgdGhlIGZlYXR1cmUgY2FuIHN0YW5kIGFsb25lXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRicmVha3BvaW50LXNpbmdsZS1zdHJpbmctZmVhdHVyZXM6ICdjb2xvcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29sb3ItaW5kZXgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2dyaWQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21vbm9jaHJvbWUnO1xuXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKCRmZWF0dXJlKSB7XG4gIEBlYWNoICRpdGVtIGluICRicmVha3BvaW50LXNpbmdsZS1zdHJpbmctZmVhdHVyZXMge1xuICAgIEBpZiAkZmVhdHVyZSA9PSAkaXRlbSB7XG4gICAgICBAcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG4gIEByZXR1cm4gZmFsc2U7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUmV0dXJucyB3aGV0aGVyIHRoZSBmZWF0dXJlXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBicmVha3BvaW50LWlzLXJlc29sdXRpb24oJGZlYXR1cmUpIHtcbiAgJHJlc29sdXRpb25zOiAnZGV2aWNlLXBpeGVsLXJhdGlvJywgJ2Rwcic7XG5cbiAgQGlmICRicmVha3BvaW50LXJlc29sdXRpb25zIHtcbiAgICAkcmVzb2x1dGlvbnM6IGFwcGVuZCgkcmVzb2x1dGlvbnMsICdyZXNvbHV0aW9uJyk7XG4gIH1cblxuICBAZWFjaCAkcmVzbyBpbiAkcmVzb2x1dGlvbnMge1xuICAgIEBpZiBpbmRleCgkZmVhdHVyZSwgJHJlc28pIG9yIGluZGV4KCRmZWF0dXJlLCAnbWluLSN7JHJlc299Jykgb3IgaW5kZXgoJGZlYXR1cmUsICdtYXgtI3skcmVzb30nKSB7XG4gICAgICBAcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiBmYWxzZTtcbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSW1wb3J0IFBhcnNlciBQaWVjZXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCBcInBhcnNlcnMvcXVlcnlcIjtcbkBpbXBvcnQgXCJwYXJzZXJzL3NpbmdsZVwiO1xuQGltcG9ydCBcInBhcnNlcnMvZG91YmxlXCI7XG5AaW1wb3J0IFwicGFyc2Vycy90cmlwbGVcIjtcbkBpbXBvcnQgXCJwYXJzZXJzL3Jlc29sdXRpb25cIjtcblxuJE1lbW8tRXhpc3RzOiBmdW5jdGlvbi1leGlzdHMobWVtby1nZXQpIGFuZCBmdW5jdGlvbi1leGlzdHMobWVtby1zZXQpO1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEJyZWFrcG9pbnQgRnVuY3Rpb25cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGJyZWFrcG9pbnQoJHF1ZXJ5LCAkY29udGV4dHMuLi4pIHtcbiAgJHJ1bjogdHJ1ZTtcbiAgJHJldHVybjogKCk7XG5cbiAgLy8gR3JhYiB0aGUgTWVtbyBPdXRwdXQgaWYgTWVtb2l6YXRpb24gY2FuIGJlIGEgdGhpbmdcbiAgQGlmICRNZW1vLUV4aXN0cyB7XG4gICAgJHJldHVybjogbWVtby1nZXQoYnJlYWtwb2ludCwgYnJlYWtwb2ludCAkcXVlcnkgJGNvbnRleHRzKTtcblxuICAgIEBpZiAkcmV0dXJuICE9IG51bGwge1xuICAgICAgJHJ1bjogZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgQGlmIG5vdCAkTWVtby1FeGlzdHMgb3IgJHJ1biB7XG4gICAgLy8gSW50ZXJuYWwgVmFyaWFibGVzXG4gICAgJHF1ZXJ5LXN0cmluZzogJyc7XG4gICAgJHF1ZXJ5LWZhbGxiYWNrOiBmYWxzZTtcbiAgICAkcmV0dXJuOiAoKTtcblxuICAgIC8vIFJlc2VydmUgR2xvYmFsIFByaXZhdGUgQnJlYWtwb2ludCBDb250ZXh0XG4gICAgJGhvbGRlci1jb250ZXh0OiAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyO1xuICAgICRob2xkZXItcXVlcnktY291bnQ6ICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQ7XG5cbiAgICAvLyBSZXNldCBHbG9iYWwgUHJpdmF0ZSBCcmVha3BvaW50IENvbnRleHRcbiAgICAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyOiAoKSAhZ2xvYmFsO1xuICAgICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQ6IDAgIWdsb2JhbDtcblxuXG4gICAgLy8gVGVzdCB0byBzZWUgaWYgaXQncyBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0XG4gICAgJG9yLWxpc3Q6IGlmKGxpc3Qtc2VwYXJhdG9yKCRxdWVyeSkgPT0gJ2NvbW1hJywgdHJ1ZSwgZmFsc2UpO1xuXG5cbiAgICBAaWYgKCRvci1saXN0ID09IGZhbHNlIGFuZCAkYnJlYWtwb2ludC1sZWdhY3ktc3ludGF4ID09IGZhbHNlKSB7XG4gICAgICAkcXVlcnktc3RyaW5nOiBicmVha3BvaW50LXBhcnNlKCRxdWVyeSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICRsZW5ndGg6IGxlbmd0aCgkcXVlcnkpO1xuXG4gICAgICAkbGFzdDogbnRoKCRxdWVyeSwgJGxlbmd0aCk7XG4gICAgICAkcXVlcnktZmFsbGJhY2s6IGJyZWFrcG9pbnQtbm8tcXVlcnkoJGxhc3QpO1xuXG4gICAgICBAaWYgKCRxdWVyeS1mYWxsYmFjayAhPSBmYWxzZSkge1xuICAgICAgICAkbGVuZ3RoOiAkbGVuZ3RoIC0gMTtcbiAgICAgIH1cblxuICAgICAgQGlmICgkYnJlYWtwb2ludC1sZWdhY3ktc3ludGF4ID09IHRydWUpIHtcbiAgICAgICAgJG1xOiAoKTtcblxuICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICRtcTogYXBwZW5kKCRtcSwgbnRoKCRxdWVyeSwgJGkpLCBjb21tYSk7XG4gICAgICAgIH1cblxuICAgICAgICAkcXVlcnktc3RyaW5nOiBicmVha3BvaW50LXBhcnNlKCRtcSk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICRxdWVyeS1zdHJpbmc6ICcnO1xuICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICRxdWVyeS1zdHJpbmc6ICRxdWVyeS1zdHJpbmcgKyBpZigkaSA9PSAxLCAnJywgJywgJykgKyBicmVha3BvaW50LXBhcnNlKG50aCgkcXVlcnksICRpKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAkcmV0dXJuOiAoJ3F1ZXJ5JzogJHF1ZXJ5LXN0cmluZyxcbiAgICAgICAgJ2ZhbGxiYWNrJzogJHF1ZXJ5LWZhbGxiYWNrLFxuICAgICAgICAnY29udGV4dCBob2xkZXInOiAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLFxuICAgICAgICAncXVlcnkgY291bnQnOiAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50XG4gICAgKTtcbiAgICBAaWYgbGVuZ3RoKCRjb250ZXh0cykgPiAwIGFuZCBudGgoJGNvbnRleHRzLCAxKSAhPSBmYWxzZSB7XG4gICAgICBAaWYgJHF1ZXJ5LWZhbGxiYWNrICE9IGZhbHNlIHtcbiAgICAgICAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQoJ25vLXF1ZXJ5JywgJHF1ZXJ5LWZhbGxiYWNrKTtcbiAgICAgIH1cbiAgICAgICRjb250ZXh0LW1hcDogKCk7XG4gICAgICBAZWFjaCAkY29udGV4dCBpbiAkY29udGV4dHMge1xuICAgICAgICAkY29udGV4dC1tYXA6IG1hcC1tZXJnZSgkY29udGV4dC1tYXAsICgkY29udGV4dDogYnJlYWtwb2ludC1nZXQtY29udGV4dCgkY29udGV4dCkpKTtcbiAgICAgIH1cbiAgICAgICRyZXR1cm46IG1hcC1tZXJnZSgkcmV0dXJuLCAoY29udGV4dDogJGNvbnRleHQtbWFwKSk7XG4gICAgfVxuXG4gICAgLy8gUmVzZXQgR2xvYmFsIFByaXZhdGUgQnJlYWtwb2ludCBDb250ZXh0XG4gICAgJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcjogKCkgIWdsb2JhbDtcbiAgICAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50OiAwICFnbG9iYWw7XG5cbiAgICBAaWYgJE1lbW8tRXhpc3RzIHtcbiAgICAgICRob2xkZXI6IG1lbW8tc2V0KGJyZWFrcG9pbnQsIGJyZWFrcG9pbnQgJHF1ZXJ5ICRjb250ZXh0cywgJHJldHVybik7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkcmV0dXJuO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEdlbmVyYWwgQnJlYWtwb2ludCBQYXJzZXJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2UoJHF1ZXJ5KSB7XG4gIC8vIEluY3JlYXNlIG51bWJlciBvZiAnYW5kJyBxdWVyaWVzXG4gICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQ6ICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQgKyAxICFnbG9iYWw7XG5cbiAgLy8gU2V0IHVwIE1lZGlhIFR5cGVcbiAgJHF1ZXJ5LXByaW50OiAnJztcblxuICAkZm9yY2UtYWxsOiAoKCRicmVha3BvaW50LWZvcmNlLW1lZGlhLWFsbCA9PSB0cnVlKSBhbmQgKCRicmVha3BvaW50LWRlZmF1bHQtbWVkaWEgPT0gJ2FsbCcpKTtcbiAgJGVtcHR5LW1lZGlhOiB0cnVlO1xuICBAaWYgKCRmb3JjZS1hbGwgPT0gdHJ1ZSkgb3IgKCRicmVha3BvaW50LWRlZmF1bHQtbWVkaWEgIT0gJ2FsbCcpIHtcbiAgICAvLyBGb3JjZSB0aGUgcHJpbnQgb2YgdGhlIGRlZmF1bHQgbWVkaWEgdHlwZSBpZiAoZm9yY2UgYWxsIGlzIHRydWUgYW5kIGRlZmF1bHQgbWVkaWEgdHlwZSBpcyBhbGwpIG9yIChkZWZhdWx0IG1lZGlhIHR5cGUgaXMgbm90IGFsbClcbiAgICAkcXVlcnktcHJpbnQ6ICRicmVha3BvaW50LWRlZmF1bHQtbWVkaWE7XG4gICAgJGVtcHR5LW1lZGlhOiBmYWxzZTtcbiAgfVxuXG5cbiAgJHF1ZXJ5LXJlc29sdXRpb246IGZhbHNlO1xuXG4gICRxdWVyeS1ob2xkZXI6IGJyZWFrcG9pbnQtcGFyc2UtcXVlcnkoJHF1ZXJ5KTtcblxuXG5cbiAgLy8gTG9vcCBvdmVyIGVhY2ggcGFyc2VkIG91dCBxdWVyeSBhbmQgd3JpdGUgaXQgdG8gJHF1ZXJ5LXByaW50XG4gICRmaXJzdDogdHJ1ZTtcblxuICBAZWFjaCAkZmVhdHVyZSBpbiAkcXVlcnktaG9sZGVyIHtcbiAgICAkbGVuZ3RoOiBsZW5ndGgoJGZlYXR1cmUpO1xuXG4gICAgLy8gUGFyc2UgYSBzaW5nbGUgZmVhdHVyZVxuICAgIEBpZiAoJGxlbmd0aCA9PSAxKSB7XG4gICAgICAvLyBGZWF0dXJlIGlzIGN1cnJlbnRseSBhIGxpc3QsIGdyYWIgdGhlIGFjdHVhbCB2YWx1ZVxuICAgICAgJGZlYXR1cmU6IG50aCgkZmVhdHVyZSwgMSk7XG5cbiAgICAgIC8vIE1lZGlhIFR5cGUgbXVzdCBieSBjb252ZW50aW9uIGJlIHRoZSBmaXJzdCBpdGVtLCBzbyBpdCdzIHNhZmUgdG8gZmxhdCBvdmVycmlkZSAkcXVlcnktcHJpbnQsIHdoaWNoIHJpZ2h0IG5vdyBzaG91bGQgb25seSBiZSB0aGUgZGVmYXVsdCBtZWRpYSB0eXBlXG4gICAgICBAaWYgKGJyZWFrcG9pbnQtaXMtbWVkaWEoJGZlYXR1cmUpKSB7XG4gICAgICAgIEBpZiAoJGZvcmNlLWFsbCA9PSB0cnVlKSBvciAoJGZlYXR1cmUgIT0gJ2FsbCcpIHtcbiAgICAgICAgICAvLyBGb3JjZSB0aGUgcHJpbnQgb2YgdGhlIGRlZmF1bHQgbWVkaWEgdHlwZSBpZiAoZm9yY2UgYWxsIGlzIHRydWUgYW5kIGRlZmF1bHQgbWVkaWEgdHlwZSBpcyBhbGwpIG9yIChkZWZhdWx0IG1lZGlhIHR5cGUgaXMgbm90IGFsbClcbiAgICAgICAgICAkcXVlcnktcHJpbnQ6ICRmZWF0dXJlO1xuICAgICAgICAgICRlbXB0eS1tZWRpYTogZmFsc2U7XG5cbiAgICAgICAgICAvLyBTZXQgQ29udGV4dFxuICAgICAgICAgICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KG1lZGlhLCAkcXVlcnktcHJpbnQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2Utc2luZ2xlKCRmZWF0dXJlLCAkZW1wdHktbWVkaWEsICRmaXJzdCk7XG4gICAgICAgICRxdWVyeS1wcmludDogJyN7JHF1ZXJ5LXByaW50fSAjeyRwYXJzZWR9JztcbiAgICAgICAgJGZpcnN0OiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gUGFyc2UgYSBkb3VibGUgZmVhdHVyZVxuICAgIEBlbHNlIGlmICgkbGVuZ3RoID09IDIpIHtcbiAgICAgIEBpZiAoYnJlYWtwb2ludC1pcy1yZXNvbHV0aW9uKCRmZWF0dXJlKSAhPSBmYWxzZSkge1xuICAgICAgICAkcXVlcnktcmVzb2x1dGlvbjogJGZlYXR1cmU7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICRwYXJzZWQ6IG51bGw7XG4gICAgICAgIC8vIElmIGl0J3MgYSBzdHJpbmcvbnVtYmVyIHBhaXIsXG4gICAgICAgIC8vIHdlIGNoZWNrIHRvIHNlZSBpZiBvbmUgaXMgYSBzaW5nbGUtc3RyaW5nIHZhbHVlLFxuICAgICAgICAvLyB0aGVuIHdlIHBhcnNlIGl0IGFzIGEgbm9ybWFsIGRvdWJsZVxuICAgICAgICAkYWxwaGE6IG50aCgkZmVhdHVyZSwgMSk7XG4gICAgICAgICRiZXRhOiBudGgoJGZlYXR1cmUsIDIpO1xuICAgICAgICBAaWYgYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKCRhbHBoYSkgb3IgYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKCRiZXRhKSB7XG4gICAgICAgICAgJHBhcnNlZDogYnJlYWtwb2ludC1wYXJzZS1zaW5nbGUoJGFscGhhLCAkZW1wdHktbWVkaWEsICRmaXJzdCk7XG4gICAgICAgICAgJHF1ZXJ5LXByaW50OiAnI3skcXVlcnktcHJpbnR9ICN7JHBhcnNlZH0nO1xuICAgICAgICAgICRmaXJzdDogZmFsc2U7XG4gICAgICAgICAgJHBhcnNlZDogYnJlYWtwb2ludC1wYXJzZS1zaW5nbGUoJGJldGEsICRlbXB0eS1tZWRpYSwgJGZpcnN0KTtcbiAgICAgICAgICAkcXVlcnktcHJpbnQ6ICcjeyRxdWVyeS1wcmludH0gI3skcGFyc2VkfSc7XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2UtZG91YmxlKCRmZWF0dXJlLCAkZW1wdHktbWVkaWEsICRmaXJzdCk7XG4gICAgICAgICAgJHF1ZXJ5LXByaW50OiAnI3skcXVlcnktcHJpbnR9ICN7JHBhcnNlZH0nO1xuICAgICAgICAgICRmaXJzdDogZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgLy8gUGFyc2UgYSB0cmlwbGUgZmVhdHVyZVxuICAgIEBlbHNlIGlmICgkbGVuZ3RoID09IDMpIHtcbiAgICAgICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2UtdHJpcGxlKCRmZWF0dXJlLCAkZW1wdHktbWVkaWEsICRmaXJzdCk7XG4gICAgICAkcXVlcnktcHJpbnQ6ICcjeyRxdWVyeS1wcmludH0gI3skcGFyc2VkfSc7XG4gICAgICAkZmlyc3Q6IGZhbHNlO1xuICAgIH1cblxuICB9XG5cbiAgQGlmICgkcXVlcnktcmVzb2x1dGlvbiAhPSBmYWxzZSkge1xuICAgICRxdWVyeS1wcmludDogYnJlYWtwb2ludC1idWlsZC1yZXNvbHV0aW9uKCRxdWVyeS1wcmludCwgJHF1ZXJ5LXJlc29sdXRpb24sICRlbXB0eS1tZWRpYSwgJGZpcnN0KTtcbiAgfVxuXG4gIC8vIExvb3AgdGhyb3VnaCBlYWNoIGZlYXR1cmUgdGhhdCdzIGJlZW4gZGV0ZWN0ZWQgc28gZmFyIGFuZCBhcHBlbmQgJ2ZhbHNlJyB0byB0aGUgdGhlIHZhbHVlIGxpc3QgdG8gaW5jcmVtZW50IHRoZWlyIGNvdW50ZXJzXG4gIEBlYWNoICRmLCAkdiBpbiAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyIHtcbiAgICAkdi1ob2xkZXI6ICR2O1xuICAgICRsZW5ndGg6IGxlbmd0aCgkdi1ob2xkZXIpO1xuICAgIEBpZiBsZW5ndGgoJHYtaG9sZGVyKSA8ICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQge1xuICAgICAgQGZvciAkaSBmcm9tICRsZW5ndGggdG8gJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudCB7XG4gICAgICAgIEBpZiAkZiA9PSAnbWVkaWEnIHtcbiAgICAgICAgICAkdi1ob2xkZXI6IGFwcGVuZCgkdi1ob2xkZXIsICRicmVha3BvaW50LWRlZmF1bHQtbWVkaWEpO1xuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAkdi1ob2xkZXI6IGFwcGVuZCgkdi1ob2xkZXIsIGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyOiBtYXAtbWVyZ2UoJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlciwgKCRmOiAkdi1ob2xkZXIpKSAhZ2xvYmFsO1xuICB9XG5cbiAgQHJldHVybiAkcXVlcnktcHJpbnQ7XG59XG4iLCJAZnVuY3Rpb24gYnJlYWtwb2ludC1wYXJzZS1xdWVyeSgkcXVlcnkpIHtcbiAgLy8gUGFyc2UgZmVhdHVyZXMgb3V0IG9mIGFuIGluZGl2aWR1YWwgcXVlcnlcbiAgJGZlYXR1cmUtaG9sZGVyOiAoKTtcbiAgJHF1ZXJ5LWhvbGRlcjogKCk7XG4gICRsZW5ndGg6IGxlbmd0aCgkcXVlcnkpO1xuXG4gIEBpZiAkbGVuZ3RoID09IDIge1xuICAgIC8vIElmIHdlJ3ZlIGdvdCBhIHN0cmluZy9udW1iZXIsIG51bWJlci9zdHJpbmcsIGNoZWNrIHRvIHNlZSBpZiBpdCdzIGEgdmFsaWQgc3RyaW5nL251bWJlciBwYWlyIG9yIHR3byBzaW5nbGVzXG4gICAgQGlmICh0eXBlLW9mKG50aCgkcXVlcnksIDEpKSA9PSAnc3RyaW5nJyBhbmQgdHlwZS1vZihudGgoJHF1ZXJ5LCAyKSkgPT0gJ251bWJlcicpIG9yICh0eXBlLW9mKG50aCgkcXVlcnksIDEpKSA9PSAnbnVtYmVyJyBhbmQgdHlwZS1vZihudGgoJHF1ZXJ5LCAyKSkgPT0gJ3N0cmluZycpIHtcblxuICAgICAgJG51bWJlcjogJyc7XG4gICAgICAkdmFsdWU6ICcnO1xuXG4gICAgICBAaWYgdHlwZS1vZihudGgoJHF1ZXJ5LCAxKSkgPT0gJ3N0cmluZycge1xuICAgICAgICAkbnVtYmVyOiBudGgoJHF1ZXJ5LCAyKTtcbiAgICAgICAgJHZhbHVlOiBudGgoJHF1ZXJ5LCAxKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJG51bWJlcjogbnRoKCRxdWVyeSwgMSk7XG4gICAgICAgICR2YWx1ZTogbnRoKCRxdWVyeSwgMik7XG4gICAgICB9XG5cbiAgICAgIC8vIElmIHRoZSBzdHJpbmcgdmFsdWUgY2FuIGJlIGEgc2luZ2xlIHZhbHVlLCBjaGVjayB0byBzZWUgaWYgdGhlIG51bWJlciBwYXNzZWQgaW4gaXMgYSB2YWxpZCBpbnB1dCBmb3Igc2FpZCBzaW5nbGUgdmFsdWUuIEZvcnR1bmF0ZWx5LCBhbGwgY3VycmVudCBzaW5nbGUtdmFsdWUgb3B0aW9ucyBvbmx5IGFjY2VwdCB1bml0bGVzcyBudW1iZXJzLCBzbyB0aGlzIGNoZWNrIGlzIGVhc3kuXG4gICAgICBAaWYgYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKCR2YWx1ZSkge1xuICAgICAgICBAaWYgdW5pdGxlc3MoJG51bWJlcikge1xuICAgICAgICAgICRmZWF0dXJlLWhvbGRlcjogYXBwZW5kKCR2YWx1ZSwgJG51bWJlciwgc3BhY2UpO1xuICAgICAgICAgICRxdWVyeS1ob2xkZXI6IGFwcGVuZCgkcXVlcnktaG9sZGVyLCAkZmVhdHVyZS1ob2xkZXIsIGNvbW1hKTtcbiAgICAgICAgICBAcmV0dXJuICRxdWVyeS1ob2xkZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8vIElmIHRoZSBzdHJpbmcgaXMgYSBtZWRpYSB0eXBlLCBzcGxpdCB0aGUgcXVlcnlcbiAgICAgIEBpZiBicmVha3BvaW50LWlzLW1lZGlhKCR2YWx1ZSkge1xuICAgICAgICAkcXVlcnktaG9sZGVyOiBhcHBlbmQoJHF1ZXJ5LWhvbGRlciwgbnRoKCRxdWVyeSwgMSkpO1xuICAgICAgICAkcXVlcnktaG9sZGVyOiBhcHBlbmQoJHF1ZXJ5LWhvbGRlciwgbnRoKCRxdWVyeSwgMikpO1xuICAgICAgICBAcmV0dXJuICRxdWVyeS1ob2xkZXI7XG4gICAgICB9XG4gICAgICAvLyBJZiBpdCdzIG5vdCBhIHNpbmdsZSBmZWF0dXJlLCB3ZSdyZSBqdXN0IGdvaW5nIHRvIGFzc3VtZSBpdCdzIGEgcHJvcGVyIHN0cmluZy92YWx1ZSBwYWlyLCBhbmQgcm9sbCB3aXRoIGl0LlxuICAgICAgQGVsc2Uge1xuICAgICAgICAkZmVhdHVyZS1ob2xkZXI6IGFwcGVuZCgkdmFsdWUsICRudW1iZXIsIHNwYWNlKTtcbiAgICAgICAgJHF1ZXJ5LWhvbGRlcjogYXBwZW5kKCRxdWVyeS1ob2xkZXIsICRmZWF0dXJlLWhvbGRlciwgY29tbWEpO1xuICAgICAgICBAcmV0dXJuICRxdWVyeS1ob2xkZXI7XG4gICAgICB9XG5cbiAgICB9XG4gICAgLy8gSWYgdGhleSdyZSBib3RoIG51bWJlcnMsIHdlIGFzc3VtZSBpdCdzIGEgZG91YmxlIGFuZCByb2xsIHdpdGggdGhhdFxuICAgIEBlbHNlIGlmICh0eXBlLW9mKG50aCgkcXVlcnksIDEpKSA9PSAnbnVtYmVyJyBhbmQgdHlwZS1vZihudGgoJHF1ZXJ5LCAyKSkgPT0gJ251bWJlcicpIHtcbiAgICAgICRmZWF0dXJlLWhvbGRlcjogYXBwZW5kKG50aCgkcXVlcnksIDEpLCBudGgoJHF1ZXJ5LCAyKSwgc3BhY2UpO1xuICAgICAgJHF1ZXJ5LWhvbGRlcjogYXBwZW5kKCRxdWVyeS1ob2xkZXIsICRmZWF0dXJlLWhvbGRlciwgY29tbWEpO1xuICAgICAgQHJldHVybiAkcXVlcnktaG9sZGVyO1xuICAgIH1cbiAgICAvLyBJZiB0aGV5J3JlIGJvdGggc3RyaW5ncyBhbmQgbmVpdGhlciBhcmUgc2luZ2xlcywgd2Ugcm9sbCB3aXRoIHRoYXQuXG4gICAgQGVsc2UgaWYgKHR5cGUtb2YobnRoKCRxdWVyeSwgMSkpID09ICdzdHJpbmcnIGFuZCB0eXBlLW9mKG50aCgkcXVlcnksIDIpKSA9PSAnc3RyaW5nJykge1xuICAgICAgQGlmIG5vdCBicmVha3BvaW50LXNpbmdsZS1zdHJpbmcobnRoKCRxdWVyeSwgMSkpIGFuZCBub3QgYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKG50aCgkcXVlcnksIDIpKSB7XG4gICAgICAgICRmZWF0dXJlLWhvbGRlcjogYXBwZW5kKG50aCgkcXVlcnksIDEpLCBudGgoJHF1ZXJ5LCAyKSwgc3BhY2UpO1xuICAgICAgICAkcXVlcnktaG9sZGVyOiBhcHBlbmQoJHF1ZXJ5LWhvbGRlciwgJGZlYXR1cmUtaG9sZGVyLCBjb21tYSk7XG4gICAgICAgIEByZXR1cm4gJHF1ZXJ5LWhvbGRlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGxlbmd0aCA9PSAzIHtcbiAgICAvLyBJZiB3ZSd2ZSBnb3QgdGhyZWUgaXRlbXMgYW5kIG5vbmUgaXMgYSBsaXN0LCB3ZSBjaGVjayB0byBzZWVcbiAgICBAaWYgdHlwZS1vZihudGgoJHF1ZXJ5LCAxKSkgIT0gJ2xpc3QnIGFuZCB0eXBlLW9mKG50aCgkcXVlcnksIDIpKSAhPSAnbGlzdCcgYW5kIHR5cGUtb2YobnRoKCRxdWVyeSwgMykpICE9ICdsaXN0JyB7XG4gICAgICAvLyBJZiBub25lIG9mIHRoZSBpdGVtcyBhcmUgc2luZ2xlIHN0cmluZyB2YWx1ZXMgYW5kIG5vbmUgb2YgdGhlIHZhbHVlcyBhcmUgbWVkaWEgdmFsdWVzLCB3ZSdyZSBnb29kLlxuICAgICAgQGlmIChub3QgYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKG50aCgkcXVlcnksIDEpKSBhbmQgbm90IGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZyhudGgoJHF1ZXJ5LCAyKSkgYW5kIG5vdCBicmVha3BvaW50LXNpbmdsZS1zdHJpbmcobnRoKCRxdWVyeSwgMykpKSBhbmQgICgobm90IGJyZWFrcG9pbnQtaXMtbWVkaWEobnRoKCRxdWVyeSwgMSkpIGFuZCBub3QgYnJlYWtwb2ludC1pcy1tZWRpYShudGgoJHF1ZXJ5LCAyKSkgYW5kIG5vdCBicmVha3BvaW50LWlzLW1lZGlhKG50aCgkcXVlcnksIDMpKSkpIHtcbiAgICAgICAgJGZlYXR1cmUtaG9sZGVyOiBhcHBlbmQobnRoKCRxdWVyeSwgMSksIG50aCgkcXVlcnksIDIpLCBzcGFjZSk7XG4gICAgICAgICRmZWF0dXJlLWhvbGRlcjogYXBwZW5kKCRmZWF0dXJlLWhvbGRlciwgbnRoKCRxdWVyeSwgMyksIHNwYWNlKTtcbiAgICAgICAgJHF1ZXJ5LWhvbGRlcjogYXBwZW5kKCRxdWVyeS1ob2xkZXIsICRmZWF0dXJlLWhvbGRlciwgY29tbWEpO1xuICAgICAgICBAcmV0dXJuICRxdWVyeS1ob2xkZXI7XG4gICAgICB9XG4gICAgICAvLyBsZXQncyBjaGVjayB0byBzZWUgaWYgdGhlIGZpcnN0IGl0ZW0gaXMgYSBtZWRpYSB0eXBlXG4gICAgICBAZWxzZSBpZiBicmVha3BvaW50LWlzLW1lZGlhKG50aCgkcXVlcnksIDEpKSB7XG4gICAgICAgICRxdWVyeS1ob2xkZXI6IGFwcGVuZCgkcXVlcnktaG9sZGVyLCBudGgoJHF1ZXJ5LCAxKSk7XG4gICAgICAgICRmZWF0dXJlLWhvbGRlcjogYXBwZW5kKG50aCgkcXVlcnksIDIpLCBudGgoJHF1ZXJ5LCAzKSwgc3BhY2UpO1xuICAgICAgICAkcXVlcnktaG9sZGVyOiBhcHBlbmQoJHF1ZXJ5LWhvbGRlciwgJGZlYXR1cmUtaG9sZGVyKTtcbiAgICAgICAgQHJldHVybiAkcXVlcnktaG9sZGVyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIElmIGl0J3MgYSBzaW5nbGUgaXRlbSwgb3IgaWYgaXQncyBub3QgYSBzcGVjaWFsIGNhc2UgZG91YmxlIG9yIHRyaXBsZSwgd2UgY2FuIHNpbXBseSByZXR1cm4gdGhlIHF1ZXJ5LlxuICBAcmV0dXJuICRxdWVyeTtcbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSW1wb3J0IFBpZWNlc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AaW1wb3J0IFwic2luZ2xlL2RlZmF1bHRcIjtcblxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2Utc2luZ2xlKCRmZWF0dXJlLCAkZW1wdHktbWVkaWEsICRmaXJzdCkge1xuICAkcGFyc2VkOiAnJztcbiAgJGxlYWRlcjogJyc7XG4gIC8vIElmIHdlJ3JlIGZvcmNpbmdcbiAgQGlmIG5vdCAoJGVtcHR5LW1lZGlhKSBvciBub3QgKCRmaXJzdCkge1xuICAgICRsZWFkZXI6ICdhbmQgJztcbiAgfVxuXG4gIC8vIElmIGl0J3MgYSBzaW5nbGUgZmVhdHVyZSB0aGF0IGNhbiBzdGFuZCBhbG9uZSwgd2UgbGV0IGl0XG4gIEBpZiAoYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKCRmZWF0dXJlKSkge1xuICAgICRwYXJzZWQ6ICRmZWF0dXJlO1xuICAgIC8vIFNldCBDb250ZXh0XG4gICAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQoJGZlYXR1cmUsICRmZWF0dXJlKTtcbiAgfVxuICAvLyBJZiBpdCdzIG5vdCBhIHN0YW5kIGFsb25lIGZlYXR1cmUsIHdlIHBhc3MgaXQgb2ZmIHRvIHRoZSBkZWZhdWx0IGhhbmRsZXIuXG4gIEBlbHNlIHtcbiAgICAkcGFyc2VkOiBicmVha3BvaW50LXBhcnNlLWRlZmF1bHQoJGZlYXR1cmUpO1xuICB9XG5cbiAgQHJldHVybiAkbGVhZGVyICsgJygnICsgJHBhcnNlZCArICcpJztcbn1cbiIsIkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlLWRlZmF1bHQoJGZlYXR1cmUpIHtcbiAgJGRlZmF1bHQ6ICRicmVha3BvaW50LWRlZmF1bHQtZmVhdHVyZTtcblxuICAvLyBTZXQgQ29udGV4dFxuICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dCgkZGVmYXVsdCwgJGZlYXR1cmUpO1xuXG4gIEBpZiAoJGJyZWFrcG9pbnQtdG8tZW1zID09IHRydWUpIGFuZCAodHlwZS1vZigkZmVhdHVyZSkgPT0gJ251bWJlcicpIHtcbiAgICBAcmV0dXJuICcjeyRkZWZhdWx0fTogI3ticmVha3BvaW50LXRvLWJhc2UtZW0oJGZlYXR1cmUpfSc7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gJyN7JGRlZmF1bHR9OiAjeyRmZWF0dXJlfSc7XG4gIH1cbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSW1wb3J0IFBpZWNlc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AaW1wb3J0IFwiZG91YmxlL2RlZmF1bHQtcGFpclwiO1xuQGltcG9ydCBcImRvdWJsZS9kb3VibGUtc3RyaW5nXCI7XG5AaW1wb3J0IFwiZG91YmxlL2RlZmF1bHRcIjtcblxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2UtZG91YmxlKCRmZWF0dXJlLCAkZW1wdHktbWVkaWEsICRmaXJzdCkge1xuICAkcGFyc2VkOiAnJztcbiAgJGxlYWRlcjogJyc7XG4gIC8vIElmIHdlJ3JlIGZvcmNpbmdcbiAgQGlmIG5vdCAoJGVtcHR5LW1lZGlhKSBvciBub3QgKCRmaXJzdCkge1xuICAgICRsZWFkZXI6ICdhbmQgJztcbiAgfVxuXG4gICRmaXJzdDogbnRoKCRmZWF0dXJlLCAxKTtcbiAgJHNlY29uZDogbnRoKCRmZWF0dXJlLCAyKTtcblxuICAvLyBJZiB3ZSd2ZSBnb3QgdHdvIG51bWJlcnMsIHdlIGtub3cgd2UgbmVlZCB0byB1c2UgdGhlIGRlZmF1bHQgcGFpciBiZWNhdXNlIHRoZXJlIGFyZSBubyBtZWRpYSBxdWVyaWVzIHRoYXQgaGFzIGEgbWVkaWEgZmVhdHVyZSB0aGF0IGlzIGEgbnVtYmVyXG4gIEBpZiB0eXBlLW9mKCRmaXJzdCkgPT0gJ251bWJlcicgYW5kIHR5cGUtb2YoJHNlY29uZCkgPT0gJ251bWJlcicge1xuICAgICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2UtZGVmYXVsdC1wYWlyKCRmaXJzdCwgJHNlY29uZCk7XG4gIH1cbiAgLy8gSWYgdGhleSBhcmUgYm90aCBzdHJpbmdzLCB3ZSBzZW5kIGl0IHRocm91Z2ggdGhlIHN0cmluZyBwYXJzZXJcbiAgQGVsc2UgaWYgdHlwZS1vZigkZmlyc3QpID09ICdzdHJpbmcnIGFuZCB0eXBlLW9mKCRzZWNvbmQpID09ICdzdHJpbmcnIHtcbiAgICAkcGFyc2VkOiBicmVha3BvaW50LXBhcnNlLWRvdWJsZS1zdHJpbmcoJGZpcnN0LCAkc2Vjb25kKTtcbiAgfVxuICAvLyBJZiBpdCdzIGEgc3RyaW5nL251bWJlciBwYWlyLCB3ZSBwYXJzZSBpdCBhcyBhIG5vcm1hbCBkb3VibGVcbiAgQGVsc2Uge1xuICAgICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2UtZG91YmxlLWRlZmF1bHQoJGZpcnN0LCAkc2Vjb25kKTtcbiAgfVxuXG4gIEByZXR1cm4gJGxlYWRlciArICRwYXJzZWQ7XG59XG4iLCJAZnVuY3Rpb24gYnJlYWtwb2ludC1wYXJzZS1kZWZhdWx0LXBhaXIoJGZpcnN0LCAkc2Vjb25kKSB7XG4gICRkZWZhdWx0OiAkYnJlYWtwb2ludC1kZWZhdWx0LXBhaXI7XG4gICRtaW46ICcnO1xuICAkbWF4OiAnJztcblxuICAvLyBTb3J0IGludG8gbWluIGFuZCBtYXhcbiAgJG1pbjogbWluKCRmaXJzdCwgJHNlY29uZCk7XG4gICRtYXg6IG1heCgkZmlyc3QsICRzZWNvbmQpO1xuXG4gIC8vIFNldCBDb250ZXh0XG4gICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KG1pbi0jeyRkZWZhdWx0fSwgJG1pbik7XG4gICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KG1heC0jeyRkZWZhdWx0fSwgJG1heCk7XG5cbiAgLy8gTWFrZSB0aGVtIEVNcyBpZiBuZWVkIGJlXG4gIEBpZiAoJGJyZWFrcG9pbnQtdG8tZW1zID09IHRydWUpIHtcbiAgICAkbWluOiBicmVha3BvaW50LXRvLWJhc2UtZW0oJG1pbik7XG4gICAgJG1heDogYnJlYWtwb2ludC10by1iYXNlLWVtKCRtYXgpO1xuICB9XG5cbiAgQHJldHVybiAnKG1pbi0jeyRkZWZhdWx0fTogI3skbWlufSkgYW5kIChtYXgtI3skZGVmYXVsdH06ICN7JG1heH0pJztcbn1cbiIsIkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlLWRvdWJsZS1zdHJpbmcoJGZpcnN0LCAkc2Vjb25kKSB7XG4gICRmZWF0dXJlOiAnJztcbiAgJHZhbHVlOiAnJztcblxuICAvLyBUZXN0IHRvIHNlZSB3aGljaCBpcyB0aGUgZmVhdHVyZSBhbmQgd2hpY2ggaXMgdGhlIHZhbHVlXG4gIEBpZiAoYnJlYWtwb2ludC1zdHJpbmctdmFsdWUoJGZpcnN0KSA9PSB0cnVlKSB7XG4gICAgJGZlYXR1cmU6ICRmaXJzdDtcbiAgICAkdmFsdWU6ICRzZWNvbmQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgICRmZWF0dXJlOiAkc2Vjb25kO1xuICAgICR2YWx1ZTogJGZpcnN0O1xuICB9XG5cbiAgLy8gU2V0IENvbnRleHRcbiAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQoJGZlYXR1cmUsICR2YWx1ZSk7XG5cbiAgQHJldHVybiAnKCN7JGZlYXR1cmV9OiAjeyR2YWx1ZX0pJztcbn1cbiIsIkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlLWRvdWJsZS1kZWZhdWx0KCRmaXJzdCwgJHNlY29uZCkge1xuICAkZmVhdHVyZTogJyc7XG4gICR2YWx1ZTogJyc7XG5cbiAgQGlmIHR5cGUtb2YoJGZpcnN0KSA9PSAnc3RyaW5nJyB7XG4gICAgJGZlYXR1cmU6ICRmaXJzdDtcbiAgICAkdmFsdWU6ICRzZWNvbmQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgICRmZWF0dXJlOiAkc2Vjb25kO1xuICAgICR2YWx1ZTogJGZpcnN0O1xuICB9XG5cbiAgLy8gU2V0IENvbnRleHRcbiAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQoJGZlYXR1cmUsICR2YWx1ZSk7XG5cbiAgQGlmICgkYnJlYWtwb2ludC10by1lbXMgPT0gdHJ1ZSkge1xuICAgICR2YWx1ZTogYnJlYWtwb2ludC10by1iYXNlLWVtKCR2YWx1ZSk7XG4gIH1cblxuICBAcmV0dXJuICcoI3skZmVhdHVyZX06ICN7JHZhbHVlfSknXG59XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEltcG9ydCBQaWVjZXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCBcInRyaXBsZS9kZWZhdWx0XCI7XG5cbkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlLXRyaXBsZSgkZmVhdHVyZSwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpIHtcbiAgJHBhcnNlZDogJyc7XG4gICRsZWFkZXI6ICcnO1xuXG4gIC8vIElmIHdlJ3JlIGZvcmNpbmdcbiAgQGlmIG5vdCAoJGVtcHR5LW1lZGlhKSBvciBub3QgKCRmaXJzdCkge1xuICAgICRsZWFkZXI6ICdhbmQgJztcbiAgfVxuXG4gIC8vIHNlcGFyYXRlIHRoZSBzdHJpbmcgZmVhdHVyZXMgZnJvbSB0aGUgdmFsdWUgbnVtYmVyc1xuICAkc3RyaW5nOiBudWxsO1xuICAkbnVtYmVyczogbnVsbDtcbiAgQGVhY2ggJHZhbCBpbiAkZmVhdHVyZSB7XG4gICAgQGlmIHR5cGUtb2YoJHZhbCkgPT0gc3RyaW5nIHtcbiAgICAgICRzdHJpbmc6ICR2YWw7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBpZiB0eXBlLW9mKCRudW1iZXJzKSA9PSAnbnVsbCcge1xuICAgICAgICAkbnVtYmVyczogJHZhbDtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJG51bWJlcnM6IGFwcGVuZCgkbnVtYmVycywgJHZhbCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJHBhcnNlZDogYnJlYWtwb2ludC1wYXJzZS10cmlwbGUtZGVmYXVsdCgkc3RyaW5nLCBudGgoJG51bWJlcnMsIDEpLCBudGgoJG51bWJlcnMsIDIpKTtcblxuICBAcmV0dXJuICRsZWFkZXIgKyAkcGFyc2VkO1xuXG59XG4iLCJAZnVuY3Rpb24gYnJlYWtwb2ludC1wYXJzZS10cmlwbGUtZGVmYXVsdCgkZmVhdHVyZSwgJGZpcnN0LCAkc2Vjb25kKSB7XG5cbiAgLy8gU29ydCBpbnRvIG1pbiBhbmQgbWF4XG4gICRtaW46IG1pbigkZmlyc3QsICRzZWNvbmQpO1xuICAkbWF4OiBtYXgoJGZpcnN0LCAkc2Vjb25kKTtcblxuICAvLyBTZXQgQ29udGV4dFxuICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dChtaW4tI3skZmVhdHVyZX0sICRtaW4pO1xuICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dChtYXgtI3skZmVhdHVyZX0sICRtYXgpO1xuXG4gIC8vIE1ha2UgdGhlbSBFTXMgaWYgbmVlZCBiZVxuICBAaWYgKCRicmVha3BvaW50LXRvLWVtcyA9PSB0cnVlKSB7XG4gICAgJG1pbjogYnJlYWtwb2ludC10by1iYXNlLWVtKCRtaW4pO1xuICAgICRtYXg6IGJyZWFrcG9pbnQtdG8tYmFzZS1lbSgkbWF4KTtcbiAgfVxuXG4gIEByZXR1cm4gJyhtaW4tI3skZmVhdHVyZX06ICN7JG1pbn0pIGFuZCAobWF4LSN7JGZlYXR1cmV9OiAjeyRtYXh9KSc7XG59XG4iLCJAaW1wb3J0IFwicmVzb2x1dGlvbi9yZXNvbHV0aW9uXCI7XG5cbkBmdW5jdGlvbiBicmVha3BvaW50LWJ1aWxkLXJlc29sdXRpb24oJHF1ZXJ5LXByaW50LCAkcXVlcnktcmVzb2x1dGlvbiwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpIHtcbiAgJGxlYWRlcjogJyc7XG4gIC8vIElmIHdlJ3JlIGZvcmNpbmdcbiAgQGlmIG5vdCAoJGVtcHR5LW1lZGlhKSBvciBub3QgKCRmaXJzdCkge1xuICAgICRsZWFkZXI6ICdhbmQgJztcbiAgfVxuXG4gIEBpZiAkYnJlYWtwb2ludC1yZXNvbHV0aW9ucyBhbmQgJHF1ZXJ5LXJlc29sdXRpb24ge1xuICAgICRyZXNvbHV0aW9uczogYnJlYWtwb2ludC1tYWtlLXJlc29sdXRpb25zKCRxdWVyeS1yZXNvbHV0aW9uKTtcbiAgICAkbGVuZ3RoOiBsZW5ndGgoJHJlc29sdXRpb25zKTtcbiAgICAkcXVlcnktaG9sZGVyOiAnJztcblxuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAkcXVlcnk6ICcjeyRxdWVyeS1wcmludH0gI3skbGVhZGVyfSN7bnRoKCRyZXNvbHV0aW9ucywgJGkpfSc7XG4gICAgICBAaWYgJGkgPT0gMSB7XG4gICAgICAgICRxdWVyeS1ob2xkZXI6ICRxdWVyeTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJHF1ZXJ5LWhvbGRlcjogJyN7JHF1ZXJ5LWhvbGRlcn0sICN7JHF1ZXJ5fSc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQHJldHVybiAkcXVlcnktaG9sZGVyO1xuICB9XG4gIEBlbHNlIHtcbiAgICAvLyBSZXR1cm4gd2l0aCBhdHRhY2hlZCByZXNvbHV0aW9uXG4gICAgQHJldHVybiAkcXVlcnktcHJpbnQ7XG4gIH1cbn1cbiIsIkBmdW5jdGlvbiBicmVha3BvaW50LW1ha2UtcmVzb2x1dGlvbnMoJHJlc29sdXRpb24pIHtcbiAgJGxlbmd0aDogbGVuZ3RoKCRyZXNvbHV0aW9uKTtcblxuICAkb3V0cHV0OiAoKTtcblxuICBAaWYgJGxlbmd0aCA9PSAyIHtcbiAgICAkZmVhdHVyZTogJyc7XG4gICAgJHZhbHVlOiAnJztcblxuICAgIC8vIEZpbmQgd2hpY2ggaXMgbnVtYmVyXG4gICAgQGlmIHR5cGUtb2YobnRoKCRyZXNvbHV0aW9uLCAxKSkgPT0gJ251bWJlcicge1xuICAgICAgJHZhbHVlOiBudGgoJHJlc29sdXRpb24sIDEpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkdmFsdWU6IG50aCgkcmVzb2x1dGlvbiwgMik7XG4gICAgfVxuXG4gICAgLy8gRGV0ZXJtaW5lIG1pbi9tYXgvc3RhbmRhcmRcbiAgICBAaWYgaW5kZXgoJHJlc29sdXRpb24sICdtaW4tcmVzb2x1dGlvbicpIHtcbiAgICAgICRmZWF0dXJlOiAnbWluLSc7XG4gICAgfVxuICAgIEBlbHNlIGlmIGluZGV4KCRyZXNvbHV0aW9uLCAnbWF4LXJlc29sdXRpb24nKSB7XG4gICAgICAkZmVhdHVyZTogJ21heC0nO1xuICAgIH1cblxuICAgICRzdGFuZGFyZDogJygjeyRmZWF0dXJlfXJlc29sdXRpb246ICN7JHZhbHVlfSknO1xuXG4gICAgLy8gSWYgd2UncmUgbm90IGRlYWxpbmcgd2l0aCBkcHB4LFxuICAgIEBpZiB1bml0KCR2YWx1ZSkgIT0gJ2RwcHgnIHtcbiAgICAgICRiYXNlOiA5NmRwaTtcbiAgICAgIEBpZiB1bml0KCR2YWx1ZSkgPT0gJ2RwY20nIHtcbiAgICAgICAgJGJhc2U6IDI0My44NGRwY207XG4gICAgICB9XG4gICAgICAvLyBXcml0ZSBvdXQgZmVhdHVyZSB0ZXN0c1xuICAgICAgJHdlYmtpdDogJyc7XG4gICAgICAkbW96OiAnJztcbiAgICAgICR3ZWJraXQ6ICcoLXdlYmtpdC0jeyRmZWF0dXJlfWRldmljZS1waXhlbC1yYXRpbzogI3skdmFsdWUgLyAkYmFzZX0pJztcbiAgICAgICRtb3o6ICcoI3skZmVhdHVyZX0tbW96LWRldmljZS1waXhlbC1yYXRpbzogI3skdmFsdWUgLyAkYmFzZX0pJztcbiAgICAgIC8vIEFwcGVuZCB0byBvdXRwdXRcbiAgICAgICRvdXRwdXQ6IGFwcGVuZCgkb3V0cHV0LCAkc3RhbmRhcmQsIHNwYWNlKTtcbiAgICAgICRvdXRwdXQ6IGFwcGVuZCgkb3V0cHV0LCAkd2Via2l0LCBzcGFjZSk7XG4gICAgICAkb3V0cHV0OiBhcHBlbmQoJG91dHB1dCwgJG1veiwgc3BhY2UpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkd2Via2l0OiAnJztcbiAgICAgICRtb3o6ICcnO1xuICAgICAgJHdlYmtpdDogJygtd2Via2l0LSN7JGZlYXR1cmV9ZGV2aWNlLXBpeGVsLXJhdGlvOiAjeyR2YWx1ZSAvIDFkcHB4fSknO1xuICAgICAgJG1vejogJygjeyRmZWF0dXJlfS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAjeyR2YWx1ZSAvIDFkcHB4fSknO1xuICAgICAgJGZhbGxiYWNrOiAnKCN7JGZlYXR1cmV9cmVzb2x1dGlvbjogI3skdmFsdWUgLyAxZHBweCAqIDk2ZHBpfSknO1xuICAgICAgLy8gQXBwZW5kIHRvIG91dHB1dFxuICAgICAgJG91dHB1dDogYXBwZW5kKCRvdXRwdXQsICRzdGFuZGFyZCwgc3BhY2UpO1xuICAgICAgJG91dHB1dDogYXBwZW5kKCRvdXRwdXQsICR3ZWJraXQsIHNwYWNlKTtcbiAgICAgICRvdXRwdXQ6IGFwcGVuZCgkb3V0cHV0LCAkbW96LCBzcGFjZSk7XG4gICAgICAkb3V0cHV0OiBhcHBlbmQoJG91dHB1dCwgJGZhbGxiYWNrLCBzcGFjZSk7XG4gICAgfVxuXG4gIH1cblxuICBAcmV0dXJuICRvdXRwdXQ7XG59XG4iLCJAZnVuY3Rpb24gYnJlYWtwb2ludC1uby1xdWVyeSgkcXVlcnkpIHtcbiAgQGlmIHR5cGUtb2YoJHF1ZXJ5KSA9PSAnbGlzdCcge1xuICAgICRrZXl3b3JkOiBudGgoJHF1ZXJ5LCAxKTtcblxuICAgIEBpZiB0eXBlLW9mKCRrZXl3b3JkKSA9PSAnc3RyaW5nJyBhbmQgKCRrZXl3b3JkID09ICduby1xdWVyeScgb3IgJGtleXdvcmQgPT0gJ25vIHF1ZXJ5JyBvciAka2V5d29yZCA9PSAnZmFsbGJhY2snKSB7XG4gICAgICBAcmV0dXJuIG50aCgkcXVlcnksIDIpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBmYWxzZTtcbiAgfVxufVxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBEZWZhdWx0IHRoZSBCcmVha3BvaW50cyB2YXJpYWJsZVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kYnJlYWtwb2ludHM6ICgpICFkZWZhdWx0O1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFJlc3BvbmQtdG8gQVBJIE1peGluXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBtaXhpbiByZXNwb25kLXRvKCRjb250ZXh0LCAkbm8tcXVlcnk6IGZhbHNlKSB7XG4gIEBpZiB0eXBlLW9mKCRicmVha3BvaW50cykgIT0gJ21hcCcge1xuICAgIC8vIEp1c3QgaW4gY2FzZSBzb21lb25lIHdyaXRlcyBnaWJiZXJpc2ggdG8gdGhlICRicmVha3BvaW50cyB2YXJpYWJsZS5cbiAgICBAd2FybiBcIllvdXIgYnJlYWtwb2ludHMgYXJlbid0IGEgbWFwISBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3NudWd1Zy9yZXNwb25kLXRvI2FwaSBpZiB5b3UnZCBsaWtlIGEgcmVtaW5kZXIgb24gaG93IHRvIHVzZSBSZXNwb25kLXRvXCI7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbiAgQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkY29udGV4dCkge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWFwLWdldCgkYnJlYWtwb2ludHMsICRjb250ZXh0KSwgJG5vLXF1ZXJ5KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgbm90IG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJGNvbnRleHQpIHtcbiAgICBAd2FybiBcImAjeyRjb250ZXh0fWAgaXNuJ3QgYSBkZWZpbmVkIGJyZWFrcG9pbnQhIFBsZWFzZSBhZGQgaXQgdXNpbmcgYCRicmVha3BvaW50czogYWRkLWJyZWFrcG9pbnQoYCN7JGNvbnRleHR9YCwgJHZhbHVlKTtgXCI7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEB3YXJuIFwiWW91IGhhdmVuJ3QgY3JlYXRlZCBhbnkgYnJlYWtwb2ludHMgeWV0ISBNYWtlIHNvbWUgYWxyZWFkeSEgU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9zbnVndWcvcmVzcG9uZC10byNhcGkgaWYgeW91J2QgbGlrZSBhIHJlbWluZGVyIG9uIGhvdyB0byB1c2UgUmVzcG9uZC10b1wiO1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQWRkIEJyZWFrcG9pbnQgdG8gQnJlYWtwb2ludHNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGFkZC1icmVha3BvaW50KCRuYW1lLCAkYmtwdCwgJG92ZXJ3cml0ZTogZmFsc2UpIHtcbiAgJG91dHB1dDogKCRuYW1lOiAkYmtwdCk7XG4gIEBpZiBsZW5ndGgoJGJyZWFrcG9pbnRzKSA9PSAwIHtcbiAgICBAcmV0dXJuICRvdXRwdXQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICRuYW1lKSBhbmQgJG92ZXJ3cml0ZSAhPSB0cnVlIHtcbiAgICAgIEB3YXJuIFwiWW91IGFscmVhZHkgaGF2ZSBhIGJyZWFrcG9pbnQgbmFtZWQgYCN7JG5hbWV9YCwgcGxlYXNlIGNob29zZSBhbm90aGVyIGJyZWFrcG9pbnQgbmFtZSwgb3IgcGFzcyBpbiBgJG92ZXJ3cml0ZTogdHJ1ZWAgdG8gb3ZlcndyaXRlIHRoZSBwcmV2aW91cyBicmVha3BvaW50LlwiO1xuICAgICAgQHJldHVybiAkYnJlYWtwb2ludHM7XG4gICAgfVxuICAgIEBlbHNlIGlmIG5vdCBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICRuYW1lKSBvciAkb3ZlcndyaXRlID09IHRydWUge1xuICAgICAgQHJldHVybiBtYXAtbWVyZ2UoJGJyZWFrcG9pbnRzLCAkb3V0cHV0KTtcbiAgICB9XG4gIH1cbn0iLCIvLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8vICBGdW5jdGlvbnNcbi8vL1xuLy8vICBUaGlzIGZpbGUgc2hvdWxkIG5vdCBiZSBlZGl0ZWQ7IGFkZCBjdXN0b20gZnVjdGlvbnMgYW5kIG1peGlucyB0byB0aGVpclxuLy8vICByZXNwZWN0aXZlIGZpbGVzLlxuLy8vXG4vLy8gIEBncm91cCBGcmFtZXdvcmtcbi8vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBpbXBvcnQgJ2Z1bmN0aW9ucyc7IC8vIEltcG9ydCBjdXN0b20gZnVuY3Rpb25zXG5cbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLy8gU3BsaXRzIGAkc3RyaW5nYCBpbnRvIHNldmVyYWwgcGFydHMgdXNpbmcgYCRkZWxpbWl0ZXJgXG4vLy9cbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWwgPGh0dHBzOi8vZ2l0aHViLmNvbS9IdWdvR2lyYXVkZWwvU2Fzc3lTdHJpbmdzPlxuLy8vIEBwYXJhbSAge1N0cmluZ30gJHN0cmluZyAgICAgICAgIC0gU3RyaW5nIHRvIHNwbGl0XG4vLy8gQHBhcmFtICB7U3RyaW5nfSAkZGVsaW1pdGVyIFsnJ10gLSBTdHJpbmcgdG8gdXNlIGFzIGEgZGVsaW1pdGVyIHRvIHNwbGl0IGAkc3RyaW5nYFxuLy8vIEByZXR1cm4ge0xpc3R9XG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQGZ1bmN0aW9uIHN0ci1leHBsb2RlKCRzdHJpbmcsICRkZWxpbWl0ZXI6ICcnKSB7XG4gIEBpZiB0eXBlLW9mKCRzdHJpbmcpICE9ICdzdHJpbmcnIHtcbiAgICBAZXJyb3IgJ2BleHBsb2RlYCBmdW5jdGlvbiBleHBlY3RpbmcgYSBzdHJpbmc7ICN7dHlwZS1vZigkc3RyaW5nKX0gZ2l2ZW4uJztcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRkZWxpbWl0ZXIpICE9ICdzdHJpbmcnIHtcbiAgICBAZXJyb3IgJ2BleHBsb2RlYCBmdW5jdGlvbiBleHBlY3RpbmcgYSBzdHJpbmc7ICN7dHlwZS1vZigkZGVsaW1pdGVyKX0gZ2l2ZW4uJztcbiAgfVxuXG4gICRyZXN1bHQ6ICgpO1xuICAkbGVuZ3RoOiBzdHItbGVuZ3RoKCRzdHJpbmcpO1xuXG4gIEBpZiBzdHItbGVuZ3RoKCRkZWxpbWl0ZXIpID09IDAge1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAkcmVzdWx0OiBhcHBlbmQoJHJlc3VsdCwgc3RyLXNsaWNlKCRzdHJpbmcsICRpLCAkaSkpO1xuICAgIH1cblxuICAgIEByZXR1cm4gJHJlc3VsdDtcbiAgfVxuXG4gICRydW5uaW5nOiB0cnVlO1xuICAkcmVtYWluaW5nOiAkc3RyaW5nO1xuXG4gIEB3aGlsZSAkcnVubmluZyB7XG4gICAgJGluZGV4OiBzdHItaW5kZXgoJHJlbWFpbmluZywgJGRlbGltaXRlcik7XG5cbiAgICBAaWYgJGluZGV4IHtcbiAgICAgICRzbGljZTogc3RyLXNsaWNlKCRyZW1haW5pbmcsIDEsICRpbmRleCAtIDEpO1xuICAgICAgJHJlc3VsdDogYXBwZW5kKCRyZXN1bHQsICRzbGljZSk7XG4gICAgICAkcmVtYWluaW5nOiBzdHItc2xpY2UoJHJlbWFpbmluZywgJGluZGV4ICsgc3RyLWxlbmd0aCgkZGVsaW1pdGVyKSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkcnVubmluZzogZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiBhcHBlbmQoJHJlc3VsdCwgJHJlbWFpbmluZyk7XG59XG5cbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLy8gU3RyaXBzIHVuaXRzIGZyb20gZ2l2ZW4gdmFsdWVcbi8vL1xuLy8vIEBwYXJhbSAgeyp9ICR2YWx1ZSAtIEFueSB2YWx1ZSB3aXRoIHVuaXRzXG4vLy8gQHJldHVybiB7Kn0gICAgICAgIC0gVmFsdWUgd2l0aG91dCB1bml0c1xuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBmdW5jdGlvbiBzdHJpcC11bml0cygkdmFsdWUpIHtcbiAgQHJldHVybiAoJHZhbHVlIC8gKCR2YWx1ZSAqIDAgKyAxKSk7XG59XG5cbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLy8gRmV0Y2hlcyBuZXN0ZWQga2V5c1xuLy8vXG4vLy8gQHBhcmFtICB7TWFwfSAgICAgJG1hcCAgLSBNYXBcbi8vLyBAcGFyYW0gIHtBcmdsaXN0fSAka2V5cyAtIEtleXMgdG8gZmV0Y2hcbi8vLyBAcmV0dXJuIHsqfVxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8qIEBmdW5jdGlvbiBtYXAtZGVlcC1nZXQoJG1hcCwgJGtleXMuLi4pIHtcbiAgQGVhY2ggJGtleSBpbiAka2V5cyB7XG4gICAgJG1hcDogbWFwLWdldCgkbWFwLCAka2V5KTtcbiAgfVxuXG4gIEByZXR1cm4gJG1hcDtcbn0gKi9cbkBmdW5jdGlvbiBtYXAtZ2V0LWRlZXAoJG1hcCwgJGtleXMuLi4pIHtcbiAgQGlmIGxlbmd0aCgka2V5cykgPT0gMSB7XG4gICAgJGtleXM6IG50aCgka2V5cywgMSk7XG4gIH1cbiAgJHdhcm46IFwiI3tudGgoJGtleXMsIDEpfVwiO1xuICAkbGVuZ3RoOiBsZW5ndGgoJGtleXMpO1xuICAkZ2V0OiBtYXAtZ2V0KCRtYXAsIG50aCgka2V5cywgMSkpO1xuXG4gIEBpZiAkbGVuZ3RoID4gMSB7XG4gICAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgIEBpZiAkZ2V0ICE9IG51bGwgYW5kIHR5cGUtb2YoJGdldCkgPT0gJ21hcCcge1xuICAgICAgICAkd2FybjogJHdhcm4gKyBcIi0+I3tudGgoJGtleXMsICRpKX1cIjtcbiAgICAgICAgJGdldDogbWFwLWdldCgkZ2V0LCBudGgoJGtleXMsICRpKSk7XG5cbiAgICAgICAgQGlmICRnZXQgPT0gbnVsbCB7XG4gICAgICAgICAgQHJldHVybiBtYXAtZ2V0LWRlZXAtd2FybmluZygkd2FybiwgJGdldCwgbnRoKCRrZXlzLCAkaSkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIEByZXR1cm4gbWFwLWdldC1kZWVwLXdhcm5pbmcoJHdhcm4sICRnZXQsIG50aCgka2V5cywgJGkpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRnZXQ7XG59XG5cbkBmdW5jdGlvbiBtYXAtZ2V0LWRlZXAtd2FybmluZygkd2FybiwgJGdldCwgJGtleSkge1xuICBAaWYgJGdldCA9PSBudWxsIHtcbiAgICBAd2FybiBcIk1hcCBoYXMgbm8gdmFsdWUgZm9yIGtleSBzZWFyY2ggYCN7JHdhcm59YFwiO1xuICB9XG4gIEBlbHNlIGlmIHR5cGUtb2YoJGdldCkgIT0gJ21hcCcge1xuICAgIEB3YXJuIFwiTm9uLW1hcCB2YWx1ZSBmb3VuZCBmb3Iga2V5IHNlYXJjaCBgI3skd2Fybn1gLCBjYW5ub3Qgc2VhcmNoIGZvciBrZXkgYCN7JGtleX1gXCI7XG4gIH1cbiAgQHJldHVybiBudWxsO1xufVxuXG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8vIENyZWF0ZXMgYW4gYWxpYXMgZm9yIG5hdGl2ZSBgbWFwLWdldGAgYW5kIGN1c3RvbSBgbWFwLWRlZXAtZ2V0YFxuLy8vXG4vLy8gQHBhcmFtICB7TWFwfSAgICAgICRtYXAgICAgICAgIC0gTWFwXG4vLy8gQHBhcmFtICB7U3RyaW5nfSAgICRrZXkgICAgICAgIC0gS2V5IHZhbHVlXG4vLy8gQHBhcmFtICB7U3RyaW5nfSAgICRuZXN0ZWQta2V5IC0gTmVzdGVkIGtleSB2YWx1ZVxuLy8vIEByZXR1cm4ge0Z1bmN0aW9ufVxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBmdW5jdGlvbiBnZXQoJG1hcCwgJGtleSwgJG5lc3RlZC1rZXk6ICcnKSB7XG4gIEBpZigkbmVzdGVkLWtleSA9PSAnJykge1xuICAgIEByZXR1cm4gbWFwLWdldCgkbWFwLCAka2V5KTtcblxuICB9IEBlbHNlIHtcbiAgICBAcmV0dXJuIG1hcC1kZWVwLWdldCgkbWFwLCAka2V5LCAkbmVzdGVkLWtleSk7XG5cbiAgfVxufVxuXG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8vIENyZWF0ZXMgYSBzaG9ydGN1dCB0byByZXR1cm4gYSBicmVha3BvaW50IHZhbHVlXG4vLy9cbi8vLyBAcGFyYW0gIHtMaXN0fSAgICAgJGJyZWFrIC0gTGlzdCBvZiBicmVha3BvaW50c1xuLy8vIEByZXR1cm4ge0Z1bmN0aW9ufVxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBmdW5jdGlvbiBicmVhaygkYnJlYWsuLi4pIHtcbiAgQHJldHVybiBtYXAtZ2V0LWRlZXAoJGJyZWFrcG9pbnRzLCAkYnJlYWspO1xufVxuXG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8vIENyZWF0ZXMgYSBzaG9ydGN1dCB0byByZXR1cm4gYSBzZXR0aW5nIHZhbHVlXG4vLy9cbi8vLyBAcGFyYW0gIHtMaXN0fSAgICAgJHByb3BzICAgICAgICAgICAgIC0gTGlzdCBvZiBwcm9wZXJ0aWVzXG4vLy8gQHBhcmFtICB7TWFwfSAgICAgICRtYXAgICBbJHNldHRpbmdzXSAtIFNldHRpbmdzIG1hcFxuLy8vIEByZXR1cm4ge0Z1bmN0aW9ufVxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBmdW5jdGlvbiBzZXR0aW5nKCRwcm9wcywgJG1hcDogJHNldHRpbmdzKSB7XG4gICRwcm9wcy1saXN0OiBzdHItZXhwbG9kZSgkcHJvcHMsICRkZWxpbWl0ZXI6ICcuJyk7XG5cbiAgQGlmIGxlbmd0aCgkcHJvcHMtbGlzdCkgPiAxIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQtZGVlcCgkbWFwLCAkcHJvcHMtbGlzdCk7XG5cbiAgfSBAZWxzZSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsIG50aCgkcHJvcHMsIDEpKTtcblxuICB9XG59XG5cbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLy8gUmV0dXJucyB0aGUgYHdpZHRoYCBvciBgaGVpZ2h0YCBvZiBhbiBpY29uXG4vLy9cbi8vLyBAcGFyYW0gIHtTdHJpbmd9ICRuYW1lICAgICAgLSBJY29uIG5hbWVcbi8vLyBAcGFyYW0gIHtTdHJpbmd9ICRkaW1lbnNpb24gLSBgd2lkdGhgIG9yIGBoZWlnaHRgXG4vLy8gQHJldHVybiB7U3RyaW5nfSAgICAgICAgICAgICAgVmFsdWUgb2Ygc3BlY2lmaWNlZCBkaW1lbnNpb25cbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AZnVuY3Rpb24gaWNvbigkbmFtZSwgJGRpbWVuc2lvbikge1xuICBAcmV0dXJuIG1hcC1nZXQtZGVlcCgkaWNvbnMsICRuYW1lLCAkZGltZW5zaW9uKTtcbn1cblxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vLyBSZXR1cm5zIGEgY29sb3IgdmFsdWVcbi8vL1xuLy8vIEBwYXJhbSAge1N0cmluZ30gICAkY29sb3IgICAgICAgICAtIENvbG9yIG5hbWU7IGtleSB2YWx1ZVxuLy8vIEBwYXJhbSAge1N0cmluZ30gICAkdG9uZSBbJ2Jhc2UnXSAtIENvbG9yIHRvbmU7IG5lc3RlZCBrZXkgdmFsdWVcbi8vLyBAcmV0dXJuIHtGdW5jdGlvbn1cbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AZnVuY3Rpb24gY29sb3IoJGNvbG9yLCAkdG9uZTogJ2Jhc2UnKSB7XG4gIEByZXR1cm4gbWFwLWdldC1kZWVwKCRjb2xvcnMsICRjb2xvciwgJHRvbmUpO1xufVxuXG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8vIFJldHVybnMgYSBjb2xvciB2YWx1ZVxuLy8vXG4vLy8gQGRlcHJlY2F0ZWRcbi8vLyBAc2VlIHtGdW5jdGlvbn0gY29sb3Jcbi8vLyBAcGFyYW0gIHtTdHJpbmd9ICAgJGNvbG9yICAgICAgICAgLSBDb2xvciBuYW1lOyBrZXkgdmFsdWVcbi8vLyBAcGFyYW0gIHtTdHJpbmd9ICAgJHRvbmUgWydiYXNlJ10gLSBDb2xvciB0b25lOyBuZXN0ZWQga2V5IHZhbHVlXG4vLy8gQHJldHVybiB7RnVuY3Rpb259XG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQGZ1bmN0aW9uIHBhbGV0dGUoJHBhbGV0dGUsICR0b25lOiAnYmFzZScpIHtcbiAgQHdhcm4gJ1RoZSBgcGFsZXR0ZWAgZnVuY3Rpb24gaGFzIGJlZW4gZGVwcmVjYXRlZDsgdXNlIGBjb2xvcmAgaW5zdGVhZC4nO1xuXG4gIEByZXR1cm4gbWFwLWdldC1kZWVwKCRwYWxldHRlcywgJHBhbGV0dGUsICR0b25lKTtcbn1cblxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vLyBDb252ZXJ0IGEgcGl4ZWwgdmFsdWUgdG8gYSBwZXJjZW50YWdlIHZhbHVlXG4vLy9cbi8vLyBAcGFyYW0gIHtTdHJpbmd9ICR0YXJnZXQgIC0gUGl4ZWwgdmFsdWUgb2YgZWxlbWVudCB3aWR0aFxuLy8vIEBwYXJhbSAge1N0cmluZ30gJGNvbnRleHQgLSBQaXhlbCB2YWx1ZSBvZiBlbGVtZW50J3MgY29udGFpbmVyIHdpZHRoXG4vLy8gQHJldHVybiB7U3RyaW5nfSAgICAgICAgICAtIFBlcmNlbnRhZ2UgdmFsdWVcbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AZnVuY3Rpb24gcGVyY2VudCgkdGFyZ2V0LCAkY29udGV4dCkge1xuICBAcmV0dXJuICgkdGFyZ2V0IC8gJGNvbnRleHQpICogMTAwJTtcbn1cblxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vLyBDb252ZXJ0IGEgcGl4ZWwgdmFsdWUgdG8gYW4gZW0gdmFsdWVcbi8vL1xuLy8vIEZvciBhIHJlbGF0aW9uYWwgdmFsdWUsIHRoZSBpbnB1dCBpcyBjYWxjdWxhdGVkIGJhc2VkIG9uIGEgcGFyZW50IHZhbHVlLlxuLy8vIFRoZSBkZWZhdWx0IHBhcmVudCBpcyAxNnB4LiBUaGUgcGFyZW50IGNhbiBiZSBjaGFuZ2VkIGJ5IHBhc3NpbmcgYW5cbi8vLyBvcHRpb25hbCBzZWNvbmQgdmFsdWUuXG4vLy9cbi8vLyBAcGFyYW0gIHtTdHJpbmd9ICRwaXhlbCAgICAgICAtIFBpeGVsIHZhbHVlIHRvIGNvbnZlcnRcbi8vLyBAcGFyYW0gIHtTdHJpbmd9ICRiYXNlIFsxNnB4XSAtIEJhc2UgcGl4ZWwgdmFsdWVcbi8vLyBAcmV0dXJuIHtTdHJpbmd9ICAgICAgICAgICAgICAtIGVtIHZhbHVlXG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQGZ1bmN0aW9uIGVtKCRwaXhlbCwgJGJhc2U6IDE2cHgpIHtcbiAgQHJldHVybiAoJHBpeGVsIC8gJGJhc2UpICogMWVtO1xufVxuXG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8vIFNsaWdodGx5IGxpZ2h0ZW4gYSBjb2xvciAoaHR0cDovL2NsLmx5LzFLMFQzZjNsME4yRylcbi8vL1xuLy8vIEBwYXJhbSAge1N0cmluZ30gJGNvbG9yICAgICAgLSBDb2xvciB0byB0aW50XG4vLy8gQHBhcmFtICB7U3RyaW5nfSAkcGVyY2VudGFnZSAtIFBlcmNlbnRhZ2Ugb2YgYCRjb2xvcmAgaW4gcmV0dXJuZWQgY29sb3Jcbi8vLyBAcmV0dXJuIHtTdHJpbmd9ICAgICAgICAgICAgIC0gSGV4IHZhbHVlXG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQGZ1bmN0aW9uIHRpbnQoJGNvbG9yLCAkcGVyY2VudGFnZSkge1xuICBAcmV0dXJuIG1peCgkY29sb3IsIHdoaXRlLCAkcGVyY2VudGFnZSk7XG59XG5cbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLy8gU2xpZ2h0bHkgZGFya2VuIGEgY29sb3IgKGh0dHA6Ly9jbC5seS8xSzBUM2YzbDBOMkcpXG4vLy9cbi8vLyBAcGFyYW0gIHtTdHJpbmd9ICRjb2xvciAgICAgIC0gQ29sb3IgdG8gc2hhZGVcbi8vLyBAcGFyYW0gIHtTdHJpbmd9ICRwZXJjZW50YWdlIC0gUGVyY2VudGFnZSBvZiBgJGNvbG9yYCBpbiByZXR1cm5lZCBjb2xvclxuLy8vIEByZXR1cm4ge1N0cmluZ30gICAgICAgICAgICAgLSBIZXggdmFsdWVcbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AZnVuY3Rpb24gc2hhZGUoJGNvbG9yLCAkcGVyY2VudGFnZSkge1xuICBAcmV0dXJuIG1peCgkY29sb3IsIGJsYWNrLCAkcGVyY2VudGFnZSk7XG59XG5cbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLy8gUmV0dXJucyBhIFVSTCBwYXRoXG4vLy9cbi8vLyBAcGFyYW0gIHtTdHJpbmd9ICRzcmMgICAgICAgICAgLSBTb3VyY2UgaW1hZ2UgKGZpbGVuYW1lIGFuZCBleHRlbnNpb24pXG4vLy8gQHBhcmFtICB7U3RyaW5nfSAkZGlyIFtpbWFnZXNdIC0gRGlyZWN0b3J5IHdoZXJlIHRoZSBzb3VyY2UgaW1hZ2UgZXhpc3RzXG4vLy8gQHJldHVybiB7U3RyaW5nfSAgICAgICAgICAgICAgIC0gVVJMXG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQGZ1bmN0aW9uIHBhdGgoJHNyYywgJGRpcjogaW1hZ2VzKSB7XG4gICRzcmM6IHVucXVvdGUoJHNyYyk7XG5cbiAgQHJldHVybiB1cmwoLi4vI3skZGlyfS8jeyRzcmN9KTtcbn1cblxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vLyBFeHRlbmRzIFN1c3kgYnkgcmV0dXJuaW5nIGEgc3RhdGljIHNwYW4gd2lkdGggaW4gcGl4ZWxzIGFuZCB0aHVzLCByZXF1aXJlc1xuLy8vIFtTdXN5XShodHRwOi8vc3VzeS5vZGRiaXJkLm5ldC8pLlxuLy8vXG4vLy8gQHBhcmFtICB7TnVtYmVyfSAkY29sdW1ucyAgICAgICAgLSBOdW1iZXIgb2YgY29sdW1ucyB0byBzcGFuXG4vLy8gQHBhcmFtICB7TWFwfSAgICAkbGF5b3V0IFskc3VzeV0gLSBMYXlvdXQgbWFwXG4vLy8gQHJldHVybiB7U3RyaW5nfSAgICAgICAgICAgICAgICAgLSBQaXhlbCB3aWR0aFxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBmdW5jdGlvbiBzcGFuLXB4KCRjb2x1bW5zLCAkbGF5b3V0OiAkc3VzeSkge1xuICAvLyRjb2x1bW4td2lkdGg6IHN1c3ktZ2V0KGNvbnRhaW5lciwgJGxheW91dCkgLyBzdXN5LWdldChjb2x1bW5zLCAkbGF5b3V0KTtcbiAgLy9UT0RPOiBDU1MgR1JJRFxuIEByZXR1cm4gNDtcbiAgLy9AcmV0dXJuICRjb2x1bW4td2lkdGggKiAkY29sdW1ucztcbn1cblxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vLyBUaGlzIGlzIGEgc2hvcnRoYW5kIGZvciBjb252ZXJ0aW5nIG9uZSB0byB0aHJlZSBkaW1lbnNpb25zIGludG8gdGhlaXJcbi8vLyBmb3VyLXZhbHVlIHN5bnRheC4gSXQncyB1c2VkIGluIHRoZSBwb3NpdGlvbiBtaXhpbi5cbi8vL1xuLy8vIEBwYXJhbSAge1N0cmluZ30gJHNob3J0aGFuZCAtIFZhbHVlcyB0byB1bnBhY2tcbi8vLyBAcmV0dXJuIHtTdHJpbmd9XG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQGZ1bmN0aW9uIHVucGFjaygkc2hvcnRoYW5kKSB7XG4gIEBpZiBsZW5ndGgoJHNob3J0aGFuZCkgPT0gMSB7XG4gICAgQHJldHVybiBudGgoJHNob3J0aGFuZCwgMSlcbiAgICAgICAgICAgIG50aCgkc2hvcnRoYW5kLCAxKVxuICAgICAgICAgICAgbnRoKCRzaG9ydGhhbmQsIDEpXG4gICAgICAgICAgICBudGgoJHNob3J0aGFuZCwgMSk7XG5cbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHNob3J0aGFuZCkgPT0gMiB7XG4gICAgQHJldHVybiBudGgoJHNob3J0aGFuZCwgMSlcbiAgICAgICAgICAgIG50aCgkc2hvcnRoYW5kLCAyKVxuICAgICAgICAgICAgbnRoKCRzaG9ydGhhbmQsIDEpXG4gICAgICAgICAgICBudGgoJHNob3J0aGFuZCwgMik7XG5cbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHNob3J0aGFuZCkgPT0gMyB7XG4gICAgQHJldHVybiBudGgoJHNob3J0aGFuZCwgMSlcbiAgICAgICAgICAgIG50aCgkc2hvcnRoYW5kLCAyKVxuICAgICAgICAgICAgbnRoKCRzaG9ydGhhbmQsIDMpXG4gICAgICAgICAgICBudGgoJHNob3J0aGFuZCwgMik7XG5cbiAgfSBAZWxzZSB7XG4gICAgQHJldHVybiAkc2hvcnRoYW5kO1xuXG4gIH1cbn1cblxuLy8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vLyAgTWl4aW5zXG4vLy9cbi8vLyAgQGdyb3VwIEZyYW1ld29ya1xuLy8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQGltcG9ydCAnbWl4aW5zJzsgLy8gSW1wb3J0IGN1c3RvbSBtaXhpbnNcblxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vLyBWZXJ0aWNhbGx5IGNlbnRlcnMgYW4gZWxlbWVudCB3aXRoaW4gYSBwYXJlbnQgZWxlbWVudCB3aXRoIGEgZGVmaW5lZCBoZWlnaHQuXG4vLy8gQW4gb3B0aW9uYWwgb2Zmc2V0IGlzIHVzZWQgdG8gc2hpZnQgdGhlIGVsZW1lbnQgdXAgb3IgZG93biwgY2F1c2luZyB0aGVcbi8vLyBlbGVtZW50IHRvIGxlYXZlIGl0cyBwb2ludCBvZiBjZW50ZXIuIEEgcG9zaXRpdmUgdmFsdWUgcHVsbHMgdGhlIGVsZW1lbnQgdXBcbi8vLyB3aGlsZSBhIG5lZ2F0aXZlIHZhbHVlIHB1c2hlcyBpdCBkb3duLlxuLy8vXG4vLy8gQGluY2x1ZGUgY2VudGVyZWQoKTsgLy8gYWJzb2x1dGUgY2VudGVyICgwKVxuLy8vIEBpbmNsdWRlIGNlbnRlcmVkKDEwcHgpOyAvLyAxMHB4IG9mZiBjZW50ZXIsIHB1bGxlZCB1cCAoLTEwcHgpXG4vLy8gQGluY2x1ZGUgY2VudGVyZWQoLTEwcHgpOyAvLyAxMHB4IG9mZiBjZW50ZXIsIHB1c2hlZCBkb3duICgxMHB4KVxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBtaXhpbiBjZW50ZXJlZCgkb2Zmc2V0OiAwKSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiA1MCU7XG5cbiAgQGlmICRvZmZzZXQgPT0gMCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuXG4gIH0gQGVsc2Uge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWShjYWxjKC01MCUgLSAjeyRvZmZzZXR9KSk7XG5cbiAgfVxufVxuXG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8vIFByb3ZpZGVzIGFuIGVhc3kgd2F5IHRvIGluY2x1ZGUgYSBjbGVhcmZpeCBmb3IgY29udGFpbmluZyBmbG9hdHMuXG4vLy8gaHR0cDovL2NsLmx5LzQzMEowUDNlMTgxUVxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBtaXhpbiBjbGVhcmZpeCB7XG4gICY6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICB9XG59XG5cbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLy8gSW1hZ2UgcmVwbGFjZW1lbnQgdGVjaG5pcXVlXG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQG1peGluIGhpZGUtdGV4dCB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgJjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMDtcbiAgfVxufVxuXG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8vIEhpZGUgdmlzdWFsbHkgYW5kIGZyb20gc2NyZWVuIHJlYWRlcnNcbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AbWl4aW4gaGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLy8gSGlkZSB2aXN1YWxseSBhbmQgZnJvbSBzY3JlZW4gcmVhZGVycywgYnV0IG1haW50YWluIGxheW91dFxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBtaXhpbiBpbnZpc2libGUge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLy8gSGlkZSBvbmx5IHZpc3VhbGx5LCBidXQgaGF2ZSBpdCBhdmFpbGFibGUgZm9yIHNjcmVlbiByZWFkZXJzXG4vLy8gaHR0cDovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eVxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBtaXhpbiB2aXN1YWxseWhpZGRlbigkZm9jdXNhYmxlOiAnJykge1xuICBib3JkZXI6IDA7XG4gIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW46IC0xcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDFweDtcblxuICBAaWYgJGZvY3VzYWJsZSA9PSAnZm9jdXNhYmxlJyB7XG4gICAgLy8gRXh0ZW5kcyB0aGUgLnZpc3VhbGx5aGlkZGVuIGNsYXNzIHRvIGFsbG93IHRoZSBlbGVtZW50IHRvIGJlIGZvY3VzYWJsZVxuICAgIC8vIHdoZW4gbmF2aWdhdGVkIHRvIHZpYSB0aGUga2V5Ym9hcmQ6IGh0dHBzOi8vd3d3LmRydXBhbC5vcmcvbm9kZS84OTc2MzhcblxuICAgICY6YWN0aXZlLFxuICAgICY6Zm9jdXMge1xuICAgICAgY2xpcDogYXV0bztcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8vIFJlc2V0cyBicm93c2VyIGRlZmF1bHQgc3R5bGluZyBmb3IgbGlzdCBlbGVtZW50c1xuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBtaXhpbiBsaXN0LXJlc2V0IHtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8vIE91dHB1dHMgdmVuZG9yLXByZWZpeGVkIHBsYWNlaG9sZGVycyBmb3Igc3R5bGluZy4gTXVzdCBiZSBuZXN0ZWQgaW4gYVxuLy8vIHJ1bGUtc2V0LlxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBtaXhpbiBwbGFjZWhvbGRlciB7XG4gICRwbGFjZWhvbGRlcnM6ICc6LXdlYmtpdC1pbnB1dCcgJzotbW96JyAnLW1veicgJy1tcy1pbnB1dCc7XG5cbiAgQGVhY2ggJHBsYWNlaG9sZGVyIGluICRwbGFjZWhvbGRlcnMge1xuICAgICY6I3skcGxhY2Vob2xkZXJ9LXBsYWNlaG9sZGVyIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8vIFNob3J0aGFuZCBub3RhdGlvbiBmb3Igc2V0dGluZyB0aGUgcG9zaXRpb24gb2YgZWxlbWVudHNcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkcG9zaXRpb24gICAgW3JlbGF0aXZlXSAgICAgICAgICAgIC0gYHBvc2l0aW9uYCBDU1MgdmFsdWVcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGNvb3JkaW5hdGVzIFtudWxsIG51bGwgbnVsbCBudWxsXSAtIFNwYWNlIGRlbGltaXRlZCBsaXN0XG4vLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZiB2YWx1ZXMgdGhhdCBmb2xsb3dcbi8vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBzdGFuZGFyZCBDU1Ncbi8vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3J0aGFuZCBub3RhdGlvbi5cbi8vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE51bGwgdmFsdWVzIHdpbGwgYmVcbi8vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlnbm9yZWQuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAuZm9vIHtcbi8vLyAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAxMHB4IG51bGwgbnVsbCAxMHB4KTtcbi8vLyB9XG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQG1peGluIHBvc2l0aW9uICgkcG9zaXRpb246IHJlbGF0aXZlLCAkY29vcmRpbmF0ZXM6IG51bGwgbnVsbCBudWxsIG51bGwpIHtcbiAgQGlmIHR5cGUtb2YoJHBvc2l0aW9uKSA9PSBsaXN0IHtcbiAgICAkY29vcmRpbmF0ZXM6ICRwb3NpdGlvbjtcbiAgICAkcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgJGNvb3JkaW5hdGVzOiB1bnBhY2soJGNvb3JkaW5hdGVzKTtcblxuICAkdG9wOiAgICBudGgoJGNvb3JkaW5hdGVzLCAxKTtcbiAgJHJpZ2h0OiAgbnRoKCRjb29yZGluYXRlcywgMik7XG4gICRib3R0b206IG50aCgkY29vcmRpbmF0ZXMsIDMpO1xuICAkbGVmdDogICBudGgoJGNvb3JkaW5hdGVzLCA0KTtcblxuICBwb3NpdGlvbjogJHBvc2l0aW9uO1xuXG4gIEBpZiAoJHRvcCBhbmQgJHRvcCA9PSBhdXRvKSBvciAodHlwZS1vZigkdG9wKSA9PSBudW1iZXIpIHtcbiAgICB0b3A6ICR0b3A7XG4gIH1cblxuICBAaWYgKCRyaWdodCBhbmQgJHJpZ2h0ID09IGF1dG8pIG9yICh0eXBlLW9mKCRyaWdodCkgPT0gbnVtYmVyKSB7XG4gICAgcmlnaHQ6ICRyaWdodDtcbiAgfVxuXG4gIEBpZiAoJGJvdHRvbSBhbmQgJGJvdHRvbSA9PSBhdXRvKSBvciAodHlwZS1vZigkYm90dG9tKSA9PSBudW1iZXIpIHtcbiAgICBib3R0b206ICRib3R0b207XG4gIH1cblxuICBAaWYgKCRsZWZ0IGFuZCAkbGVmdCA9PSBhdXRvKSBvciAodHlwZS1vZigkbGVmdCkgPT0gbnVtYmVyKSB7XG4gICAgbGVmdDogJGxlZnQ7XG4gIH1cbn1cblxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vLyBTZXQgd2lkdGggYW5kIGhlaWdodCBpbiBhIHNpbmdsZSBzdGF0ZW1lbnQuIEFjY2VwdHMgYWxsIHVuaXRzLCBpbmNsdWRpbmdcbi8vLyBgYXV0b2AgYW5kIGBpbmhlcml0YCwgdW5pdGxlc3MgbnVtYmVycywgYW5kXG4vLy8gW2ludHJpbnNpYyBrZXl3b3Jkc10oaHR0cDovL2Rldi53My5vcmcvY3Nzd2cvY3NzLXNpemluZy8jd2lkdGgtaGVpZ2h0LWtleXdvcmRzKVxuLy8vIGxpa2UgYGZpbGxgLCBgbWF4LWNvbnRlbnRgLCBgbWluLWNvbnRlbnRgIGFuZCBgZml0LWNvbnRlbnRgLiBZb3UgY2FuIGFsc29cbi8vLyB1c2UgdGhpcyBtaXhpbiB3aXRoIHRoZSBgY2FsYygpYCBDU1MgZnVuY3Rpb24uXG4vLy9cbi8vLyBAcGFyYW0gIHtTdHJpbmd9ICR2YWx1ZSAtIFNwYWNlIGRlbGltaXRlZCBsaXN0IG9mIHZhbHVlczsgYHdpZHRoYCBhbmRcbi8vLyAgICAgICAgICAgICAgICAgICAgICAgICAgIGBoZWlnaHRgLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gLmZvbyB7XG4vLy8gICBAaW5jbHVkZSBzaXplKDMwMHB4IDEwMHB4KTtcbi8vLyB9XG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQG1peGluIHNpemUoJHZhbHVlKSB7XG4gICR3aWR0aDogbnRoKCR2YWx1ZSwgMSk7XG4gICRoZWlnaHQ6ICR3aWR0aDtcblxuICBAaWYgbGVuZ3RoKCR2YWx1ZSkgPiAxIHtcbiAgICAkaGVpZ2h0OiBudGgoJHZhbHVlLCAyKTtcbiAgfVxuXG4gIEBpZiBpcy1zaXplKCRoZWlnaHQpIHtcbiAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIH1cblxuICBAZWxzZSB7XG4gICAgQHdhcm4gXCJgI3skaGVpZ2h0fWAgaXMgbm90IGEgdmFsaWQgbGVuZ3RoIGZvciB0aGUgYCRoZWlnaHRgIHBhcmFtZXRlciBpbiB0aGUgYHNpemVgIG1peGluLlwiO1xuICB9XG5cbiAgQGlmIGlzLXNpemUoJHdpZHRoKSB7XG4gICAgd2lkdGg6ICR3aWR0aDtcbiAgfVxuXG4gIEBlbHNlIHtcbiAgICBAd2FybiBcImAjeyR3aWR0aH1gIGlzIG5vdCBhIHZhbGlkIGxlbmd0aCBmb3IgdGhlIGAkd2lkdGhgIHBhcmFtZXRlciBpbiB0aGUgYHNpemVgIG1peGluLlwiO1xuICB9XG59XG5cbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLy8gT3V0cHV0cyBhIFBORyBmYWxsYmFjayB3aXRoIFNWRy4gUmVxdWlyZXMgZmVhdHVyZSBkZXRlY3Rpb24sIHN1Y2ggYXNcbi8vLyBNb2Rlcm5penIuXG4vLy9cbi8vLyBAcGFyYW0gIHtTdHJpbmd9ICRpbWFnZS1uYW1lIC0gRmlsZSBuYW1lIG9mIFNWRyBpbWFnZSwgd2l0aCBmaWxlIGV4dGVuc2lvblxuLy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbWl0dGVkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gLmZvbyB7XG4vLy8gICBAaW5jbHVkZSBzdmctd2l0aC1wbmcobG9nbyk7XG4vLy8gfVxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBtaXhpbiBzdmctd2l0aC1wbmcoJGltYWdlLW5hbWUpIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogcGF0aCgnI3skaW1hZ2UtbmFtZX0uc3ZnJywgc3ZnKTtcblxuICAubm8tc3ZnICYge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHBhdGgoJyN7JGltYWdlLW5hbWV9LnBuZycpO1xuICB9XG59XG5cbkBtaXhpbiB0cmFuc2l0aW9uKCRwcm9wZXJ0eTogJ2FsbCcpIHtcbiAgJGxlbmd0aDogbGVuZ3RoKCRwcm9wZXJ0eSk7XG5cbiAgLy8gQGVhY2ggJHByb3AgaW4gJHByb3BlcnR5IHt9XG4gIC8vICN7JHByb3BlcnR5fSBzZXR0aW5nKCd0cmFuc2l0aW9uLnNwZWVkJykgc2V0dGluZygndHJhbnNpdGlvbi5tZXRob2QnKTtcblxuICB0cmFuc2l0aW9uOiAjeyRwcm9wZXJ0eX1cbiAgICAgICAgICAgICAgc2V0dGluZygndHJhbnNpdGlvbi5zcGVlZCcpXG4gICAgICAgICAgICAgIHNldHRpbmcoJ3RyYW5zaXRpb24ubWV0aG9kJyk7XG59XG4iLCIvLyBBZGQgY3VzdG9tIGZ1bmN0aW9ucyBoZXJlXG4iLCJAbWl4aW4gY29sdW1ucygkY29sdW1ucywgJGxheW91dCwgJGJyZWFrcG9pbnRzOiAoKSwgJHNwYW5zOiAoKSkge1xuICAmLi1jb2wjeyRjb2x1bW5zfSB7XG4gICAgLy9AaW5jbHVkZSBsYXlvdXQoJGxheW91dCkge1xuICAgIC8vICBAZWFjaCAkYnJlYWtwb2ludCwgJGNvbHMgaW4gJGJyZWFrcG9pbnRzIHtcbiAgICAvLyAgICBAaW5jbHVkZSBzdXN5LWJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC4nICsgJGJyZWFrcG9pbnQpLCAkY29scykge1xuICAgIC8vICAgICAgPiAuZ3JpZC1pdGVtIHtcbiAgICAvLyAgICAgICAgQGluY2x1ZGUgc3BhbigxKTtcbiAgICAvLyAgICAgICAgbWFyZ2luLWJvdHRvbTogZ3V0dGVyKCRjb2x1bW5zKTtcbiAgICAvL1xuICAgIC8vICAgICAgICBAZWFjaCAkc3BhbiwgJHNwYW5NYXAgaW4gJHNwYW5zIHtcbiAgICAvLyAgICAgICAgICAmLi1zcGFuI3skc3Bhbn0ge1xuICAgIC8vICAgICAgICAgICAgQGluY2x1ZGUgc3BhbihzZXR0aW5nKCRicmVha3BvaW50LCAkc3Bhbk1hcCkpO1xuICAgIC8vICAgICAgICAgIH1cbiAgICAvLyAgICAgICAgfVxuICAgIC8vXG4gICAgLy8gICAgICAgIEBpZiAkY29scyA+IDEge1xuICAgIC8vICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgIC8vICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIC8vICAgICAgICAgIH1cbiAgICAvL1xuICAgIC8vICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGNvbHN9biksXG4gICAgLy8gICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAvLyAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAvLyAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgLy8gICAgICAgICAgfVxuICAgIC8vICAgICAgICB9XG4gICAgLy9cbiAgICAvLyAgICAgICAgQGNvbnRlbnQ7XG4gICAgLy8gICAgICB9XG4gICAgLy8gICAgfVxuICAgIC8vICB9XG4gICAgLy99XG4gIH1cbn1cblxuQG1peGluIGxpbmsoJGluaXRpYWxTY2FsZTogLjksICRpbml0aWFsT3BhY2l0eTogLjMpIHtcbiAgY29sb3I6IGNvbG9yKHB1cnBsZSk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICY6YmVmb3JlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgdG9wOiAxMDAlO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAycHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IocHVycGxlKTtcbiAgICBjb250ZW50OiAnJztcbiAgICBvcGFjaXR5OiAkaW5pdGlhbE9wYWNpdHk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoJGluaXRpYWxTY2FsZSk7XG4gICAgdHJhbnNpdGlvbjogYWxsIC4zcztcbiAgfVxuXG4gICY6aG92ZXI6YmVmb3JlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGVYKDEpO1xuICB9XG59XG4iLCIvLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8vIFZhcmlhYmxlc1xuLy8vXG4vLy8gRGVmaW5lIGFsbCBvZiB0aGUgc2l0ZSdzIHNpbmdsZSB2YXJpYWJsZXMgaGVyZS5cbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4kYmFzZS1mb250LXNpemU6IDFlbTtcbiRiYXNlLWxpbmUtaGVpZ2h0OiAxLjQ7XG5cbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLy8gQnJlYWtwb2ludCBTZXR0aW5nc1xuLy8vXG4vLy8gSWYgeW91J3JlIHVzaW5nIFtCcmVha3BvaW50XShodHRwczovL2dpdGh1Yi5jb20vYXQtaW1wb3J0L2JyZWFrcG9pbnQpLCB5b3Vcbi8vLyBjYW4gZGVmaW5lIGl0cyBzZXR0aW5ncyBoZXJlLlxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICRicmVha3BvaW50LW5vLXF1ZXJpZXM6IGZhbHNlOyAvLyB0cnVlIHRvIHJlcGxhY2UgYEBtZWRpYWAgd2l0aCBgLm5vLW1xYCBzdHlsZXNcbi8vICRicmVha3BvaW50LW5vLXF1ZXJ5LWZhbGxiYWNrczogZmFsc2U7IC8vIHRydWUgdG8gYWRkIGAubm8tbXFgIHN0eWxlc1xuLy8gJG5vLXF1ZXJ5OiAnbm8tcXVlcnknICcubm8tbXEnO1xuXG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8vIExheW91dHNcbi8vL1xuLy8vIFN1c3kgY2FuIGJlIHVzZWQgdG8gY3JlYXRlIG11bHRpcGxlIGdyaWQgbGF5b3V0cy4gVGhlIGAkZGVmYXVsdC1sYXlvdXRgXG4vLy8gbGF5b3V0IGlzIG1hcHBlZCB0byB0aGUgYCRzdXN5YCB2YXJpYWJsZSwgd2hpY2ggaXMgdGhlIHJlcXVpcmVkIG5hbWVzcGFjZVxuLy8vIHdpdGhpbiBTdXN5LiBWaWV3XG4vLy8gW1N1c3kncyBkb2N1bWVudGF0aW9uXShodHRwOi8vc3VzeWRvY3Mub2RkYmlyZC5uZXQvZW4vbGF0ZXN0LykgdG8gbGVhcm4gaG93XG4vLy8gdG8gY2FsbCBvdGhlciBsYXlvdXRzIGFuZCBmb3IgYWNjZXB0ZWQga2V5L3ZhbHVlIHBhaXJzLlxuLy8vXG4vLy8gSWYgeW91IGhhdmUgbm8gdXNlIGZvciBncmlkcyBvciBTdXN5LCB5b3UgbWF5IGlnbm9yZSB0aGVzZSBzZXR0aW5ncy5cbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4kZGVmYXVsdC1sYXlvdXQ6IChcbiAgY29udGFpbmVyOiAxMjUwcHgsXG4gIGNvbHVtbnM6IDYsXG4gIGd1dHRlcnM6IC4yNSxcbiAgZ3V0dGVyLXBvc2l0aW9uOiBhZnRlclxuKTtcblxuJHN1c3k6ICRkZWZhdWx0LWxheW91dDtcblxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vLyBOZWF0IE92ZXJyaWRlc1xuLy8vXG4vLy8gSWYgeW91J3ZlIGNob29zZW4gdG8gdXNlIE5lYXQgaW4gZmF2b3Igb2YgU3VzeSwgeW91IG1heSBvdmVycmlkZSBpdHMgZGVmYXVsdFxuLy8vIHZhcmlhYmxlcyBoZXJlLiBOb3RlIHRoYXQgd2l0aCBOZWF0LCB5b3UgY2FuIG9ubHkgaGF2ZSBhIHNpbmdsZSBsYXlvdXQuIFZpZXdcbi8vLyBbTmVhdCdzIGRvY3VtZW50YXRpb25dKGh0dHA6Ly90aG91Z2h0Ym90LmdpdGh1Yi5pby9uZWF0LWRvY3MvbGF0ZXN0LykgdG9cbi8vLyBsZWFybiBtb3JlLlxuLy8vXG4vLy8gSWdub3JlIHRoZXNlIHNldHRpbmdzIGlmIHlvdSdyZSBub3QgdXNpbmcgTmVhdC5cbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAkY29sdW1uOiAxMDBweDtcbi8vICRndXR0ZXI6IDEwcHg7XG4vLyAkZ3JpZC1jb2x1bW5zOiAxMnB4O1xuLy8gJG1heC13aWR0aDogMTIwMHB4O1xuXG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8vIFNldHRpbmdzXG4vLy9cbi8vLyBUaGUgc2V0dGluZ3MgbWFwIGFsbG93cyB5b3UgdG8gY29udmVuaWVudGx5IGRlZmluZSBhbGwgb2YgeW91ciB2YXJpYWJsZXMgaW5cbi8vLyBhIHNpbmdsZSBtYXAuXG4vLy9cbi8vLyBZb3UgbWF5IGhhdmUgYSBtYXAgbGlrZSBzbzpcbi8vLyBgYGBcbi8vLyAkc2V0dGluZ3M6IChcbi8vLyAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrLFxuLy8vICAgei1pbmRleDogKFxuLy8vICAgICBuYXY6IDIsXG4vLy8gICAgIGRlZmF1bHQ6IDFcbi8vLyAgIClcbi8vLyApO1xuLy8vIGBgYFxuLy8vXG4vLy8gQW5kIHRoZW4geW91IHdvdWxkIHNpbXBseSB1c2UgdGhlIGBzZXR0aW5nYCBmdW5jdGlvbiB0byBjYWxsIHlvdXIgZGVmaW5lZFxuLy8vIHNldHRpbmdzLCBsaWtlIHNvOlxuLy8vIGBgYFxuLy8vIC5mb28ge1xuLy8vICAgYm9yZGVyLXRvcDogc2V0dGluZyhib3JkZXIpO1xuLy8vICAgei1pbmRleDogc2V0dGluZyh6LWluZGV4LCBkZWZhdWx0KTtcbi8vLyB9XG4vLy8gYGBgXG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuJHNldHRpbmdzOiAoXG4gIGNvbG9yOiByZWQsXG4gIGJ1dHRvbjogKFxuICAgIHBhZGRpbmc6IDEwcHhcbiAgKSxcbiAgYnJlYWtwb2ludDogKFxuICAgIHhzbWFsbDogZW0oMzIwcHgpIGVtKDU5OXB4KSxcbiAgICBzbWFsbDogZW0oNjAwcHgpLFxuICAgIHNtYWxsT25seTogZW0oNjAwcHgpIGVtKDc5OXB4KSxcbiAgICBtZWRpdW06IGVtKDgwMHB4KSxcbiAgICBtZWRpdW1Pbmx5OiBlbSg4MDBweCkgZW0oMTAxOXB4KSxcbiAgICBsYXJnZTogZW0oMTAyMHB4KSxcbiAgICBsYXJnZU9ubHk6IGVtKDEwMjBweCkgZW0oMTA3NHB4KSxcbiAgICB4bGFyZ2U6IGVtKDEwNzVweCksXG4gICAgeGxhcmdlT25seTogZW0oMTA3NXB4KSBlbSgxMTk5cHgpLFxuICAgIHh4bGFyZ2U6IGVtKDExOTlweClcbiAgKSxcbiAgZ2xvYmFsOiAoXG4gICAgaGVhZGVyOiAoXG4gICAgICBib3JkZXJIZWlnaHQ6IDM1cHgsXG4gICAgICBoZWlnaHQ6IChcbiAgICAgICAgc21hbGw6IDEwM3B4LFxuICAgICAgICBtZWRpdW06IDEwM3B4LFxuICAgICAgICBsYXJnZTogMTAzcHhcbiAgICAgICksXG4gICAgICBsb2dvOiA3N3B4XG4gICAgKVxuICApLFxuICB0cmFuc2l0aW9uOiAoXG4gICAgbWV0aG9kOiBsaW5lYXIsXG4gICAgc3BlZWQ6IDE1MG1zXG4gICksXG4gIGd1dHRlclBhZGRpbmc6IDQwcHgsXG4gIGd1dHRlclBhZGRpbmdNZWRpdW06IDMwcHgsXG4gIGd1dHRlclBhZGRpbmdTbWFsbDogMjBweCxcbiAgZ3V0dGVyUGFkZGluZ0xhcmdlOiA2MHB4XG4pICFnbG9iYWw7XG5cbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLy8gQnJlYWtwb2ludHNcbi8vL1xuLy8vIERlZmluZXMgY29tbW9ubHkgdXNlZCBicmVha3BvaW50cyBmb3IgbWVkaWEgcXVlcmllcy4gQnJlYWtwb2ludCB2YWx1ZXNcbi8vLyBzaG91bGQgdXNlIGBlbWAsIHdoaWNoIGlzIGNhbGN1bGF0ZWQgdXNpbmcgMTZweCBhcyB0aGUgYmFzZS4gQ29udGVudCBzaG91bGRcbi8vLyBkaWN0YXRlIHlvdXIgYnJlYWtwb2ludHMsIG5vdCBzY3JlZW4gd2lkdGhzIG9mIHBvcHVsYXIgZGV2aWNlcy5cbi8vL1xuLy8vIEhlcmUncyBhbiBleGFtcGxlIG9mIGhvdyBhIGAkYnJlYWtwb2ludHNgIG1hcCBjb3VsZCBsb29rOlxuLy8vXG4vLy8gYGBgXG4vLy8gJGJyZWFrcG9pbnRzOiAoXG4vLy8gICBmb286IGVtKDgzN3B4KSxcbi8vLyAgIGNvbXBvbmVudHM6IChcbi8vLyAgICAgbmF2aWdhdGlvbjogZW0oOTAwcHgpLFxuLy8vICAgICBzaWRlYmFyOiBlbSgxMDQ0cHgpXG4vLy8gICApLFxuLy8vICAgc2NyZWVuOiAoXG4vLy8gICAgIHhsLW1pbjogZW0oMTIwMHB4KSxcbi8vLyAgICAgbGctbWF4OiBlbSgxMjAwcHggLSAxcHgpLFxuLy8vICAgICBsZy1taW46IGVtKDgwMHB4KSxcbi8vLyAgICAgbWQtbWF4OiBlbSg4MDBweCAtIDFweClcbi8vLyAgIClcbi8vLyApO1xuLy8vIGBgYFxuLy8vXG4vLy8gSWYgeW91J3JlIHVzaW5nIFtCcmVha3BvaW50XShodHRwczovL2dpdGh1Yi5jb20vYXQtaW1wb3J0L2JyZWFrcG9pbnQpLCB5b3Vcbi8vLyBtYXkgd2lzaCB0byBhZGQgYSBuby1xdWVyeSBmYWxsYmFjayB0byB5b3VyIGJyZWFrcG9pbnRzLCBsaWtlIHNvOlxuLy8vXG4vLy8gYGxnLW1pbjogKGVtKDg3MHB4KSwgJG5vLXF1ZXJ5KWAuXG4vLy9cbi8vLyBNb3JlIGluZm9ybWF0aW9uIGFib3V0IEJyZWFrcG9pbnQncyBuby1xdWVyeSBmYWxsYmFja3MgY2FuIGJlIHJlYWRcbi8vLyBbaGVyZV0oaHR0cHM6Ly9naXRodWIuY29tL2F0LWltcG9ydC9icmVha3BvaW50L3dpa2kvTm8tUXVlcnktRmFsbGJhY2tzKS5cbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4kYnJlYWtwb2ludHM6ICgpICFnbG9iYWw7XG5cbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLy8gQ29sb3JzXG4vLy9cbi8vLyBDb2xvcnMgY2FuIGJlIGFkanVzdGVkIGJ5IHVzaW5nIFNhc3MncyBuYXRpdmUgY29sb3IgZnVuY3Rpb25zLCBzdWNoIGFzXG4vLy8gYGxpZ2h0ZW5gLCBgZGFya2VuYCBhbmQgYG1peGAuIEFzIGEgZ3VpZGVsaW5lLCBhZGp1c3QgY29sb3JzIGZvciBzcGVjaWZpY1xuLy8vIGNpcmN1bXN0YW5jZXMgd2hlcmUgdGhlIGNvbG9yIG1heSBvbmx5IGJlIHVzZWQgb25jZSwgc3VjaCBhcyBob3ZlciBzdGF0ZXNcbi8vLyBvciBzbGlnaHQgdmFyaWF0aW9ucyBpbiBmb250IGNvbG9yLlxuLy8vXG4vLy8gQ29sb3JzIGNhbiBiZSBjb25maWd1cmVkIGxpa2Ugc286XG4vLy9cbi8vLyBgYGBcbi8vLyAkY29sb3JzOiAoXG4vLy8gICBncmF5OiAoXG4vLy8gICAgIGxpZ2h0OiAjOTk5LFxuLy8vICAgICBiYXNlOiAjNjY2LFxuLy8vICAgICBkYXJrOiAjMzMzXG4vLy8gICApXG4vLy8gKTtcbi8vLyBgYGBcbi8vL1xuLy8vIGFuZCBjYWxsZWQgbGlrZSBzbzpcbi8vL1xuLy8vIGBgYFxuLy8vIC5mb28ge1xuLy8vICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IoZ3JheSwgZGFyayk7XG4vLy8gICBjb2xvcjogY29sb3IoZ3JheSk7XG4vLy8gfVxuLy8vIGBgYFxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiRjb2xvcnM6IChcbiAgZ3JheTogKFxuICAgIHhsaWdodCA6ICNGNUY1RjAsXG4gICAgbGlnaHQgIDogI0RERERERCxcbiAgICBiYXNlICAgOiAjN0Q3RDdELFxuICAgIGRhcmsgICA6ICM1MzU2NUIsXG4gICAgeGRhcmsgIDogIzJGM0Q0N1xuICApLFxuICBncmVlbjogKFxuICAgIGJhc2UgIDogI0RERERERCxcbiAgKSxcbiAgYmx1ZTogKFxuICAgIGJhc2UgIDogIzAzMTIzRixcbiAgKSxcbiAgb3JhbmdlOiAoXG4gICAgYmFzZSAgOiAjRjU5MzMzLFxuICApLFxuICBwdXJwbGU6IChcbiAgICBiYXNlICA6ICM1QzREOUMsXG4gICksXG4gIGFsZXJ0OiAoXG4gICAgbGV2ZWxJbmZvICAgIDogI0E3QkY4QixcbiAgICBsZXZlbE5vdGljZSAgOiAjRjU5MzMzLFxuICAgIGxldmVsQ3JpdGljYWw6ICNGNDQzMzZcbiAgKVxuKSAhZ2xvYmFsO1xuXG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8vIEZvbnQgRmFtaWxpZXNcbi8vL1xuLy8vIERlZmluZSBjdXN0b20gZm9udCB2YXJpYWJsZXMgaGVyZS4gYCRoZWx2ZXRpY2FgIGFuZCBgJG1vbm9zcGFjZWAgaGF2ZSBiZWVuXG4vLy8gZGVmaW5lZCB0byBzdGFydCwgYnV0IHlvdSBtYXkgcmUtY29uZmlndXJlIGFzIG5lZWRlZC5cbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRvcGVuU2FuczpcbiAgJ09wZW4gU2FucycsXG4gICdIZWx2ZXRpY2EgTmV1ZScsXG4gICdIZWx2ZXRpY2EnLFxuICAnUm9ib3RvJyxcbiAgJ0FyaWFsJyxcbiAgc2Fucy1zZXJpZjtcblxuJG9wZW5TYW5zQ29uZGVuc2VkOlxuICAnT3BlbiBTYW5zIENvbmRlbnNlZCcsXG4gICdIZWx2ZXRpY2EgTmV1ZScsXG4gICdIZWx2ZXRpY2EnLFxuICAnUm9ib3RvJyxcbiAgJ0FyaWFsJyxcbiAgc2Fucy1zZXJpZjtcblxuJGJhc2tlcnZpbGxlOlxuICAnQmFza2VydmlsbGUnLFxuICAnTGlicmUgQmFza2VydmlsbGUnLFxuICAnR2VvcmdpYScsXG4gICdUaW1lcycsXG4gICdUaW1lcyBOZXcgUm9tYW4nLFxuICAnc2VyaWYnO1xuXG5cbiRtb25vc3BhY2U6XG4gICdTb3VyY2UgQ29kZSBQcm8nLFxuICAnTWVubG8nLFxuICAnTW9uYWNvJyxcbiAgJ0NvbnNvbGFzJyxcbiAgJ0NvdXJpZXIgTmV3JyxcbiAgbW9ub3NwYWNlO1xuXG4kbnNjY0ljb25zOiAnbnNjYy1pY29ucyc7XG4iLCJodG1sIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgY29sb3I6ICMyMjI7XG4gIGZvbnQtZmFtaWx5OiAkb3BlblNhbnM7XG4gIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplO1xuICBsaW5lLWhlaWdodDogJGJhc2UtbGluZS1oZWlnaHQ7XG59XG5cbiosXG4qOmJlZm9yZSxcbio6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBpbmhlcml0O1xufVxuXG5ib2R5IHtcbiAgLy8gYmFja2dyb3VuZC1jb2xvcjogY29sb3IoZ3JheSwgeGxpZ2h0KTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWluLWhlaWdodDogMTAwdmg7XG59XG5cbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNiB7XG4gIG1hcmdpbjogMDtcbiAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTsgLy8gRml4IHRoZSBjaGFyYWN0ZXIgc3BhY2luZyBmb3IgaGVhZGluZ3Ncbn1cblxuaDEge31cblxuaDIge31cblxuaDMge31cblxuaDQge31cblxuaDUge31cblxuaDYge31cblxucCB7XG4gIG1hcmdpbjogMWVtIDA7XG59XG5cbnVsLFxub2wge1xuICBtYXJnaW46IDFlbSAwO1xuICBwYWRkaW5nLWxlZnQ6IDFlbTtcbn1cblxuZGwge1xuICBtYXJnaW46IDFlbSAwO1xuXG4gIGR0IHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBtYXJnaW4tdG9wOiAuNWVtO1xuICB9XG5cbiAgZGQge1xuICAgIG1hcmdpbjogMDtcbiAgfVxufVxuXG5hIHtcbiAgdHJhbnNpdGlvbjogY29sb3IgMjAwbXMgbGluZWFyO1xuXG4gICY6aG92ZXIsXG4gICY6YWN0aXZlLFxuICAmOmZvY3VzIHt9XG59XG5cbmhyIHtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgZ3JheTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW46IDFlbSAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG5pbWcge1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG5cbmF1ZGlvLFxuY2FudmFzLFxuaWZyYW1lLFxuaW1nLFxuc3ZnLFxudmlkZW8ge1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG5ibG9ja3F1b3RlIHt9XG5cbmNpdGUge31cblxuY29kZSxcbmtiZCxcbnByZSxcbnNhbXAge1xuICBmb250LWZhbWlseTogJG1vbm9zcGFjZTtcbn1cblxuc2FtcCB7XG4gIGZvbnQtc2l6ZTogOTAlO1xufVxuXG5hYmJyIHtcbiAgY3Vyc29yOiBoZWxwO1xufVxuXG50YWJsZSB7XG4gIG1hcmdpbjogMWVtIDA7XG59XG5cbnRyLFxudGQsXG50aCB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbnRoIHtcbiAgcGFkZGluZzogMWVtO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG50ZCB7XG4gIHBhZGRpbmc6IDFlbTtcbn1cblxuZmllbGRzZXQge1xuICBib3JkZXI6IDA7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxubGVnZW5kIHt9XG5cbmxhYmVsIHt9XG5cbnRleHRhcmVhIHtcbiAgcmVzaXplOiB2ZXJ0aWNhbDtcbn1cblxuc2VsZWN0IHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICB3aWR0aDogYXV0bztcbn1cblxuW3R5cGU9J3NlYXJjaCddIHtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuW3R5cGU9J3JhZGlvJ10sXG5bdHlwZT0nY2hlY2tib3gnXSB7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIG1hcmdpbjogNHB4IDAgMDtcbiAgbWFyZ2luLXRvcDogMXB4IFxcOTtcbn1cblxuW3R5cGU9J2ZpbGUnXSxcblt0eXBlPSdyYW5nZSddIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG5bbXVsdGlwbGVdLFxuW3NpemVdIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG5idXR0b24sXG5bdHlwZT0nc3VibWl0J10ge1xuICBhcHBlYXJhbmNlOiBub25lO1xuICBib3JkZXI6IDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbmFkZHJlc3Mge1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbm1haW4ge1xuICAtbXMtZmxleDogMSAwIGF1dG87XG4gIGZsZXg6IDEgMCBhdXRvO1xuICBvdXRsaW5lOiAwO1xufVxuXG5uYXYgdWwge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG4iLCJAaW1wb3J0IFwibnNjYy1pY29uc1wiO1xuXG4iLCJAZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICduc2NjLWljb25zJztcbiAgc3JjOiB1cmwoJy9hc3NldHMvZGlzdC9mb250cy9uc2NjLWljb25zL25zY2MtaWNvbnMuZW90PzQ2NzAzMzMyJyk7XG4gIHNyYzogdXJsKCcvYXNzZXRzL2Rpc3QvZm9udHMvbnNjYy1pY29ucy9uc2NjLWljb25zLmVvdD80NjcwMzMzMiNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgICAgICB1cmwoJy9hc3NldHMvZGlzdC9mb250cy9uc2NjLWljb25zL25zY2MtaWNvbnMud29mZjI/NDY3MDMzMzInKSBmb3JtYXQoJ3dvZmYyJyksXG4gICAgICAgdXJsKCcvYXNzZXRzL2Rpc3QvZm9udHMvbnNjYy1pY29ucy9uc2NjLWljb25zLndvZmY/NDY3MDMzMzInKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICAgICB1cmwoJy9hc3NldHMvZGlzdC9mb250cy9uc2NjLWljb25zL25zY2MtaWNvbnMudHRmPzQ2NzAzMzMyJykgZm9ybWF0KCd0cnVldHlwZScpLFxuICAgICAgIHVybCgnL2Fzc2V0cy9kaXN0L2ZvbnRzL25zY2MtaWNvbnMvbnNjYy1pY29ucy5zdmc/NDY3MDMzMzIjbnNjYy1pY29ucycpIGZvcm1hdCgnc3ZnJyk7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbi8qIENocm9tZSBoYWNrOiBTVkcgaXMgcmVuZGVyZWQgbW9yZSBzbW9vdGggaW4gV2luZG96emUuIDEwMCUgbWFnaWMsIHVuY29tbWVudCBpZiB5b3UgbmVlZCBpdC4gKi9cbi8qIE5vdGUsIHRoYXQgd2lsbCBicmVhayBoaW50aW5nISBJbiBvdGhlciBPUy1lcyBmb250IHdpbGwgYmUgbm90IGFzIHNoYXJwIGFzIGl0IGNvdWxkIGJlICovXG4vKlxuQG1lZGlhIHNjcmVlbiBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzowKSB7XG4gIEBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAnbnNjYy1pY29ucyc7XG4gICAgc3JjOiB1cmwoJy4uL2ZvbnQvbnNjYy1pY29ucy5zdmc/NDY3MDMzMzIjbnNjYy1pY29ucycpIGZvcm1hdCgnc3ZnJyk7XG4gIH1cbn1cbiovXG5cbiBbY2xhc3NePVwiaWNvbi1cIl06YmVmb3JlLCBbY2xhc3MqPVwiIGljb24tXCJdOmJlZm9yZSB7XG4gIGZvbnQtZmFtaWx5OiBcIm5zY2MtaWNvbnNcIjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBzcGVhazogbm9uZTtcblxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgd2lkdGg6IDFlbTtcbiAgbWFyZ2luLXJpZ2h0OiAuMmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIC8qIG9wYWNpdHk6IC44OyAqL1xuXG4gIC8qIEZvciBzYWZldHkgLSByZXNldCBwYXJlbnQgc3R5bGVzLCB0aGF0IGNhbiBicmVhayBnbHlwaCBjb2RlcyovXG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblxuICAvKiBmaXggYnV0dG9ucyBoZWlnaHQsIGZvciB0d2l0dGVyIGJvb3RzdHJhcCAqL1xuICBsaW5lLWhlaWdodDogMWVtO1xuXG4gIC8qIEFuaW1hdGlvbiBjZW50ZXIgY29tcGVuc2F0aW9uIC0gbWFyZ2lucyBzaG91bGQgYmUgc3ltbWV0cmljICovXG4gIC8qIHJlbW92ZSBpZiBub3QgbmVlZGVkICovXG4gIG1hcmdpbi1sZWZ0OiAuMmVtO1xuXG4gIC8qIHlvdSBjYW4gYmUgbW9yZSBjb21mb3J0YWJsZSB3aXRoIGluY3JlYXNlZCBpY29ucyBzaXplICovXG4gIC8qIGZvbnQtc2l6ZTogMTIwJTsgKi9cblxuICAvKiBGb250IHNtb290aGluZy4gVGhhdCB3YXMgdGFrZW4gZnJvbSBUV0JTICovXG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuXG4gIC8qIFVuY29tbWVudCBmb3IgM0QgZWZmZWN0ICovXG4gIC8qIHRleHQtc2hhZG93OiAxcHggMXB4IDFweCByZ2JhKDEyNywgMTI3LCAxMjcsIDAuMyk7ICovXG59XG5cbi5pY29uLWN3OmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MDAnOyB9IC8qICfuoIAnICovXG4uaWNvbi1wbHVzOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MDEnOyB9IC8qICfuoIEnICovXG4uaWNvbi1taW51czpiZWZvcmUgeyBjb250ZW50OiAnXFxlODAyJzsgfSAvKiAn7qCCJyAqL1xuLmljb24tZG93bi1kaXI6YmVmb3JlIHsgY29udGVudDogJ1xcZTgwMyc7IH0gLyogJ+6ggycgKi9cbi5pY29uLXNlYXJjaDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODA0JzsgfSAvKiAn7qCEJyAqL1xuLmljb24tZ3BsdXM6YmVmb3JlIHsgY29udGVudDogJ1xcZTgwNSc7IH0gLyogJ+6ghScgKi9cbi5pY29uLXR3aXR0ZXI6YmVmb3JlIHsgY29udGVudDogJ1xcZTgwNic7IH0gLyogJ+6ghicgKi9cbi5pY29uLWZhY2Vib29rOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MDcnOyB9IC8qICfuoIcnICovXG4uaWNvbi1mbGlja3I6YmVmb3JlIHsgY29udGVudDogJ1xcZTgwOCc7IH0gLyogJ+6giCcgKi9cbi5pY29uLXBpbnRlcmVzdDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODA5JzsgfSAvKiAn7qCJJyAqL1xuLmljb24taW5zdGFncmFtOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MGEnOyB9IC8qICfuoIonICovXG4uaWNvbi15b3V0dWJlOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MGInOyB9IC8qICfuoIsnICovXG4uaWNvbi1hbmdsZS1jaXJjbGVkLXJpZ2h0OmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MGMnOyB9IC8qICfuoIwnICovXG4uaWNvbi1vay1jaXJjbGVkOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MGQnOyB9IC8qICfuoI0nICovXG4uaWNvbi1sZWZ0LW9wZW4tYmlnOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MGUnOyB9IC8qICfuoI4nICovXG4uaWNvbi1yaWdodC1vcGVuLWJpZzpiZWZvcmUgeyBjb250ZW50OiAnXFxlODBmJzsgfSAvKiAn7qCPJyAqL1xuLmljb24tYXR0ZW50aW9uOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MTAnOyB9IC8qICfuoJAnICovXG4uaWNvbi1vazpiZWZvcmUgeyBjb250ZW50OiAnXFxlODExJzsgfSAvKiAn7qCRJyAqL1xuLmljb24tdXAtYm9sZDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODEyJzsgfSAvKiAn7qCSJyAqL1xuLmljb24taW5mby1jaXJjbGVkOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MTMnOyB9IC8qICfuoJMnICovXG4uaWNvbi1iZWxsOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MTQnOyB9IC8qICfuoJQnICovXG4uaWNvbi1jYW5jZWw6YmVmb3JlIHsgY29udGVudDogJ1xcZTgxNSc7IH0gLyogJ+6glScgKi9cbi5pY29uLWxpbmtlZGluOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MTYnOyB9IC8qICfuoJYnICovXG4iLCJAaW1wb3J0IFwiYnV0dG9uXCI7XG5AaW1wb3J0IFwiZ2xvYmFsXCI7XG5AaW1wb3J0IFwibGlzdHNcIjtcbkBpbXBvcnQgXCJsb2FkZXJcIjtcbkBpbXBvcnQgXCJ0ZXh0XCI7XG5AaW1wb3J0IFwiZm9ybXNcIjtcbkBpbXBvcnQgXCJkYXRlcGlja2VyXCI7XG5AaW1wb3J0IFwidGFibGVzXCI7XG5AaW1wb3J0IFwidmlkZW8tZW1iZWRcIjtcbiIsIi8vIFVzYWdlXG4vLyA8YSBjbGFzcz1cImJ1dHRvbiAtcHJpbWFyeVwiIHJvbGU9XCJidXR0b25cIiBocmVmPVwiI1wiIHJvbGU9XCJidXR0b25cIj5MaW5rPC9hPlxuLy8gPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbiAtcHJpbWFyeVwiIHR5cGU9XCJzdWJtaXRcIj5CdXR0b248L2J1dHRvbj5cbi8vIDxpbnB1dCBjbGFzcz1cImJ1dHRvbiAtcHJpbWFyeVwiIHR5cGU9XCJidXR0b25cIiB2YWx1ZT1cIklucHV0XCI+XG4vLyA8aW5wdXQgY2xhc3M9XCJidXR0b24gLXByaW1hcnlcIiB0eXBlPVwic3VibWl0XCIgdmFsdWU9XCJTdWJtaXRcIj5cblxuLy8gU2V0dGluZ3NcbiRidXR0b246IChcbiAgYmFja2dyb3VuZENvbG9yOiAoXG4gICAgZGVmYXVsdDogY29sb3Iob3JhbmdlKSxcbiAgICBob3ZlcjogbGlnaHRlbihjb2xvcihvcmFuZ2UpLCAxMCUpXG4gICksXG4gIGNvbG9yOiAjZmZmLFxuICBmb250U2l6ZTogLjkzOHJlbSxcbiAgcGFkZGluZzogLjkzOHJlbSAxLjU2M3JlbSxcbiAgcHJpbWFyeTogKFxuICAgIGJhY2tncm91bmRDb2xvcjogKFxuICAgICAgZGVmYXVsdDogY29sb3Iob3JhbmdlKSxcbiAgICAgIGhvdmVyOiBsaWdodGVuKGNvbG9yKG9yYW5nZSksIDEwJSlcbiAgICApXG4gICksXG4gIHNlY29uZGFyeTogKFxuICAgIGJvcmRlckNvbG9yOiAoXG4gICAgICBkZWZhdWx0OiBjb2xvcihncmF5LCB4bGlnaHQpLFxuICAgICAgaG92ZXI6IGNvbG9yKG9yYW5nZSlcbiAgICApLFxuICAgIGNvbG9yOiAoXG4gICAgICBkZWZhdWx0OiBjb2xvcihncmF5LCBkYXJrKSxcbiAgICAgIGhvdmVyOiBjb2xvcihvcmFuZ2UpXG4gICAgKVxuICApLFxuICBsYXJnZTogKFxuICAgIGZvbnRTaXplOiAuOTM4ZW0sXG4gICAgcGFkZGluZzogLjkzOGVtIDEuNTYzZW1cbiAgKSxcbiAgbWVkaXVtOiAoXG4gICAgZm9udFNpemU6IC45MzhlbSxcbiAgICBwYWRkaW5nOiAuOTM4ZW0gMS41NjNlbVxuICApLFxuICBzbWFsbDogKFxuICAgIGZvbnRTaXplOiAuOTM4ZW0sXG4gICAgcGFkZGluZzogLjU2M2VtIDIuMTI1ZW1cbiAgKSxcbik7XG5cbi8vIERlZmluaXRpb25zXG4uYnV0dG9uLFxuYS5idXR0b24sXG5wID4gYS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBzZXR0aW5nKCdiYWNrZ3JvdW5kQ29sb3IuZGVmYXVsdCcsICRidXR0b24pO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgY29sb3I6IHNldHRpbmcoJ2NvbG9yJywgJGJ1dHRvbik7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6IHNldHRpbmcoJ2ZvbnRTaXplJywgJGJ1dHRvbik7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBsZXR0ZXItc3BhY2luZzogMXB4O1xuICBtaW4td2lkdGg6IDE4MHB4O1xuICBwYWRkaW5nOiBzZXR0aW5nKCdwYWRkaW5nJywgJGJ1dHRvbik7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcbiAgdHJhbnNpdGlvbjogYWxsIC4zcztcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgLy8gU3RhdGVzXG5cbiAgJjpob3ZlcixcbiAgJjphY3RpdmUsXG4gICY6Zm9jdXMge1xuICAgIGNvbG9yOiBzZXR0aW5nKCdjb2xvcicsICRidXR0b24pO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHNldHRpbmcoJ2JhY2tncm91bmRDb2xvci5ob3ZlcicsICRidXR0b24pO1xuICB9XG5cbiAgJjphY3RpdmUsXG4gICY6YWN0aXZlOmZvY3VzIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cblxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiAxcHggZG90dGVkIHJnYmEoIzAwMCwgLjQpO1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB9XG5cbiAgJltkaXNhYmxlZF0sXG4gICYuaXMtZGlzYWJsZWQge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBvcGFjaXR5OiAuNjU7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cblxuICAmOmJlZm9yZSB7XG4gICAgY29udGVudDogbm9uZTtcbiAgfVxuXG4gIC8vIFR5cGVzXG5cbiAgJi4tcHJpbWFyeSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogc2V0dGluZygncHJpbWFyeS5iYWNrZ3JvdW5kQ29sb3IuZGVmYXVsdCcsICRidXR0b24pO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgLjI1cyBlYXNlLW91dDtcblxuICAgICY6aG92ZXIsXG4gICAgJjphY3RpdmUsXG4gICAgJjpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzZXR0aW5nKCdwcmltYXJ5LmJhY2tncm91bmRDb2xvci5ob3ZlcicsICRidXR0b24pO1xuICAgIH1cbiAgfVxuXG4gICYuLXNlY29uZGFyeSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IocHVycGxlKTtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbihjb2xvcihwdXJwbGUpLCAxMCUpO1xuICAgIH1cbiAgICAvL2JhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIC8vYm9yZGVyOiAycHggc29saWQgc2V0dGluZygnc2Vjb25kYXJ5LmJvcmRlckNvbG9yLmRlZmF1bHQnLCAkYnV0dG9uKTtcbiAgICAvL2NvbG9yOiBzZXR0aW5nKCdzZWNvbmRhcnkuY29sb3IuZGVmYXVsdCcsICRidXR0b24pO1xuICAgIC8vcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIC8vdHJhbnNpdGlvbjogMC41cztcbiAgICAvL1xuICAgIC8vJjphZnRlcixcbiAgICAvLyY6YmVmb3JlIHtcbiAgICAvLyAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgLy8gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgLy8gIGNvbnRlbnQ6ICcnO1xuICAgIC8vICBoZWlnaHQ6IDEwMCU7XG4gICAgLy8gIGxlZnQ6IDA7XG4gICAgLy8gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAvLyAgdG9wOiAwO1xuICAgIC8vICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMCk7XG4gICAgLy8gIC1tb3otdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICAvLyAgLW1zLXRyYW5zZm9ybTogc2NhbGUoMCk7XG4gICAgLy8gIC1vLXRyYW5zZm9ybTogc2NhbGUoMCk7XG4gICAgLy8gIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gICAgLy8gIHRyYW5zaXRpb246IDAuM3MgZWFzZS1pbjtcbiAgICAvLyAgd2lkdGg6IDEwMCU7XG4gICAgLy8gIHotaW5kZXg6IDM7XG4gICAgLy99XG4gICAgLy9cbiAgICAvLyY6YmVmb3JlIHtcbiAgICAvLyAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHNldHRpbmcoJ3NlY29uZGFyeS5ib3JkZXJDb2xvci5ob3ZlcicsICRidXR0b24pO1xuICAgIC8vICBib3JkZXItbGVmdDogMnB4IHNvbGlkIHNldHRpbmcoJ3NlY29uZGFyeS5ib3JkZXJDb2xvci5ob3ZlcicsICRidXR0b24pO1xuICAgIC8vICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDAlIDEwMCU7XG4gICAgLy8gIC1tb3otdHJhbnNmb3JtLW9yaWdpbjogMCUgMTAwJTtcbiAgICAvLyAgLW1zLXRyYW5zZm9ybS1vcmlnaW46IDAlIDEwMCU7XG4gICAgLy8gIC1vLXRyYW5zZm9ybS1vcmlnaW46IDAlIDEwMCU7XG4gICAgLy8gIHRyYW5zZm9ybS1vcmlnaW46IDAlIDEwMCU7XG4gICAgLy99XG4gICAgLy9cbiAgICAvLyY6YWZ0ZXIge1xuICAgIC8vICBib3JkZXItdG9wOiAycHggc29saWQgc2V0dGluZygnc2Vjb25kYXJ5LmJvcmRlckNvbG9yLmhvdmVyJywgJGJ1dHRvbik7XG4gICAgLy8gIGJvcmRlci1yaWdodDogMnB4IHNvbGlkIHNldHRpbmcoJ3NlY29uZGFyeS5ib3JkZXJDb2xvci5ob3ZlcicsICRidXR0b24pO1xuICAgIC8vICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMCU7XG4gICAgLy8gIC1tb3otdHJhbnNmb3JtLW9yaWdpbjogMTAwJSAwJTtcbiAgICAvLyAgLW1zLXRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMCU7XG4gICAgLy8gIC1vLXRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMCU7XG4gICAgLy8gIHRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMCU7XG4gICAgLy99XG4gICAgLy9cbiAgICAvLyY6aG92ZXIsXG4gICAgLy8mOmFjdGl2ZSxcbiAgICAvLyY6Zm9jdXMge1xuICAgIC8vICBib3JkZXI6IDJweCBzb2xpZCByZ2JhKDAsIDE2MCwgODAsIDApO1xuICAgIC8vICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAvLyAgY29sb3I6IHNldHRpbmcoJ3NlY29uZGFyeS5jb2xvci5ob3ZlcicsICRidXR0b24pO1xuICAgIC8vfVxuICAgIC8vXG4gICAgLy8mOmhvdmVyOmFmdGVyLFxuICAgIC8vJjpob3ZlcjpiZWZvcmUge1xuICAgIC8vICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgLy8gIC1tb3otdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICAvLyAgLW1zLXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgLy8gIC1vLXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgLy8gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgLy99XG4gICAgLy9cbiAgICAvLyYuLXdoaXRlIHtcbiAgICAvLyAgYm9yZGVyLWNvbG9yOiB3aGl0ZTtcbiAgICAvLyAgY29sb3I6IHdoaXRlO1xuICAgIC8vICB0cmFuc2l0aW9uOiBhbGwgLjVzO1xuICAgIC8vXG4gICAgLy8gICY6YmVmb3JlLFxuICAgIC8vICAmOmFmdGVyIHtcbiAgICAvLyAgICBjb250ZW50OiBub25lO1xuICAgIC8vICB9XG4gICAgLy9cbiAgICAvLyAgJjpob3ZlciB7XG4gICAgLy8gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAvLyAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNik7XG4gICAgLy8gIH1cbiAgICAvL31cbiAgfVxuXG4gICYuLXRlcnRpYXJ5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcihibHVlKTtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbihjb2xvcihibHVlKSwgMTAlKTtcbiAgICB9XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG4gIH1cblxuICAvLyBTaXplc1xuXG4gICYuLWxhcmdlIHtcbiAgICBmb250LXNpemU6IHNldHRpbmcoJ2xhcmdlLmZvbnRTaXplJywgJGJ1dHRvbik7XG4gICAgcGFkZGluZzogc2V0dGluZygnbGFyZ2UucGFkZGluZycsICRidXR0b24pO1xuICB9XG5cbiAgJi4tbWVkaXVtIHtcbiAgICBmb250LXNpemU6IHNldHRpbmcoJ21lZGl1bS5mb250U2l6ZScsICRidXR0b24pO1xuICAgIHBhZGRpbmc6IHNldHRpbmcoJ21lZGl1bS5wYWRkaW5nJywgJGJ1dHRvbik7XG4gIH1cblxuICAmLi1zbWFsbCB7XG4gICAgZm9udC1zaXplOiBzZXR0aW5nKCdzbWFsbC5mb250U2l6ZScsICRidXR0b24pO1xuICAgIG1pbi13aWR0aDogYXV0bztcbiAgICBwYWRkaW5nOiBzZXR0aW5nKCdzbWFsbC5wYWRkaW5nJywgJGJ1dHRvbik7XG4gIH1cblxuICAvLyBTdHlsZXNcblxuICAmLi1ibG9jayB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogMmVtICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAmLi1jZW50ZXIge1xuICAgIGp1c3RpZnktc2VsZjogY2VudGVyO1xuICB9XG5cbiAgJi4tZnVsbCB7XG4gICAganVzdGlmeS1zZWxmOiBzdHJldGNoO1xuICB9XG5cbiAgJi4tbGVmdCB7XG4gICAganVzdGlmeS1zZWxmOiBsZWZ0O1xuICB9XG5cbiAgJi4tcmlnaHQge1xuICAgIGp1c3RpZnktc2VsZjogcmlnaHQ7XG4gIH1cbn1cblxuLmJ1dHRvbi1jb250YWluZXIge1xuICBkaXNwbGF5OiBncmlkO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmJ1dHRvbi1jb250YWluZXIgKyAuYnV0dG9uLWNvbnRhaW5lciB7XG4gIG1hcmdpbi10b3A6IDFlbTtcbn0iLCIvLyBGb250c1xuLmJhc2tlcnZpbGxlIHtcbiAgZm9udC1mYW1pbHk6ICRiYXNrZXJ2aWxsZTtcbn1cblxuLm1vbm9zcGFjZSB7XG4gIGZvbnQtZmFtaWx5OiAkbW9ub3NwYWNlO1xufVxuXG4udmlzdWFsbHktaGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbiIsInVsLCBvbCB7XG4gIG1hcmdpbi1sZWZ0OiAwLjE1ZW07XG59XG5cbmxpIHtcbiAgY29sb3I6ICMwMzEyM0Y7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgbWFyZ2luLWJvdHRvbTogMWVtO1xuXG4gICY6bGFzdC1vZi10eXBlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgLmFydGljbGUgJiB7XG4gICAgYSB7XG4gICAgICBAaW5jbHVkZSBsaW5rKCk7XG4gICAgfVxuICB9XG59XG4iLCIubG9hZGVyIHtcbiAgbWFyZ2luOiAwcHggYXV0bztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogODBweDtcblxuICAmOmJlZm9yZSB7XG4gICAgY29udGVudDonJztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nLXRvcDogMTAwJTtcbiAgfVxuXG4gICYuaGlkZGVuIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi5jaXJjdWxhciB7XG4gIGFuaW1hdGlvbjogcm90YXRlIDJzIGxpbmVhciBpbmZpbml0ZTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtYXJnaW46IGF1dG87XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlcjtcbiAgdG9wOiAwOyBib3R0b206IDA7IGxlZnQ6IDA7IHJpZ2h0OiAwO1xuICB3aWR0aDogMTAwJTtcbn1cblxuXG4ucGF0aCB7XG4gIGFuaW1hdGlvbjpcbiAgICBkYXNoIDEuNXMgZWFzZS1pbi1vdXQgaW5maW5pdGUsXG4gICAgY29sb3IgNnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG4gIHN0cm9rZS1kYXNoYXJyYXk6IDEsMjAwO1xuICBzdHJva2UtZGFzaG9mZnNldDogMDtcbiAgc3Ryb2tlLWxpbmVjYXA6IHJvdW5kO1xufVxuXG5Aa2V5ZnJhbWVzIHJvdGF0ZXtcbiAgMTAwJXtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICB9XG59XG5Aa2V5ZnJhbWVzIGRhc2h7XG4gIDAle1xuICAgIHN0cm9rZS1kYXNoYXJyYXk6IDEsMjAwO1xuICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAwO1xuICB9XG4gIDUwJXtcbiAgICBzdHJva2UtZGFzaGFycmF5OiA4OSwyMDA7XG4gICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IC0zNXB4O1xuICB9XG4gIDEwMCV7XG4gICAgc3Ryb2tlLWRhc2hhcnJheTogODksMjAwO1xuICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAtMTI0cHg7XG4gIH1cbn1cbkBrZXlmcmFtZXMgY29sb3J7XG4gIDEwMCUsIDAle1xuICAgIHN0cm9rZTogY29sb3IoZ3JlZW4pO1xuICB9XG4gIDQwJXtcbiAgICBzdHJva2U6IGNvbG9yKGdyYXksIGxpZ2h0KTtcbiAgfVxuICA2NiV7XG4gICAgc3Ryb2tlOiBsaWdodGVuKGNvbG9yKGdyZWVuKSwgMjUlKTtcbiAgfVxuICA4MCUsIDkwJXtcbiAgICBzdHJva2U6IGNvbG9yKGdyYXksIGRhcmspO1xuICB9XG59XG4iLCIvL1RPRE86IHJlc3BvbnNpdmUgZm9udCBzaXplcy5cblxuaDEge1xuICBjb2xvcjogY29sb3IoYmx1ZSk7XG4gIGZvbnQtc2l6ZTogNC42MjVlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuaDIsIGgzIHtcbiAgZm9udC1mYW1pbHk6ICRvcGVuU2Fuc0NvbmRlbnNlZDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuaDIge1xuICBjb2xvcjogY29sb3IoYmx1ZSk7XG4gIGZvbnQtc2l6ZTogMS42MjVlbTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQuc21hbGwnKSkge1xuICAgIGZvbnQtc2l6ZTogMi4yNWVtO1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50Lm1lZGl1bScpKSB7XG4gICAgZm9udC1zaXplOiAyLjYyNWVtO1xuICB9XG59XG5cbmgzIHtcbiAgZm9udC1zaXplOiAxLjM3NWVtO1xufVxuXG5oMiwgaDMsIGg0LCBoNSwgaDYge1xuICBjb2xvcjogY29sb3IoYmx1ZSk7XG4gIC5hcnRpY2xlICYge1xuICAgIG1hcmdpbi10b3A6IDEuMjUwZW07XG4gIH1cbn1cblxucCB7XG4gIGNvbG9yOiBjb2xvcihibHVlKTtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBmb250LXdlaWdodDogMzAwO1xuICBsaW5lLWhlaWdodDogMS40O1xuXG4gICYubGVhZC1wYXJhZ3JhcGgge1xuICAgIGZvbnQtc2l6ZTogMS4xODhyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMmVtO1xuICAgIG1hcmdpbi10b3A6IDFlbTtcbiAgfVxuXG4gICYuYWNjZW50IHtcbiAgICBmb250LWZhbWlseTogJGJhc2tlcnZpbGxlO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgfVxuXG4gICYubWV0YSB7XG4gICAgZm9udC1zaXplOiAwLjc1ZW07XG4gIH1cbn1cblxuaHIge1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBjb2xvcihncmF5LCB4bGlnaHQpO1xuICBoZWlnaHQ6IDA7XG4gIG1hcmdpbjogMmVtIDA7XG59XG5cbi8vIE9yZGVyZWQgTGlzdHNcblxub2wgb2wgbGkge1xuICBsaXN0LXN0eWxlLXR5cGU6IGxvd2VyLWFscGhhO1xufVxuXG5vbCBvbCBvbCBsaSB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbG93ZXItcm9tYW47XG59XG5cbi8vIElubGluZSBFbGVtZW50c1xuXG5wID4gYSB7XG4gIEBpbmNsdWRlIGxpbmsoKTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG5hIHtcbiAgQGluY2x1ZGUgdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgY29sb3I6IGNvbG9yKGJsdWUpO1xuXG4gICYuYWNjZW50IHtcbiAgICBmb250LWZhbWlseTogJGJhc2tlcnZpbGxlO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgfVxuXG4gICY6aG92ZXIge1xuICAgIGNvbG9yOiBsaWdodGVuKGNvbG9yKGJsdWUpLCAxMCUpO1xuICB9XG59XG5cbnRhYmxlIHtcbiAgY29sb3I6IGNvbG9yKGJsdWUpO1xuICBmb250LXdlaWdodDogMzAwO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBmb250LXNpemU6IDFyZW07XG59XG5cbmZpZ2NhcHRpb24ge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiBjb2xvcihncmF5LCB4ZGFyayk7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIG1hcmdpbi10b3A6IDVweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGNvbG9yKGdyYXksIGxpZ2h0KTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nLWJvdHRvbTogNXB4O1xufSIsIkBtaXhpbiBkaXNhYmxlZC1mb3JtLWNvbnRyb2wge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICBvcGFjaXR5OiAxO1xufVxuXG5AbWl4aW4gaW5wdXQtZm9jdXMge1xuICAmOmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6IGxpZ2h0ZW4oY29sb3IoZ3JlZW4pLCA1JSk7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwwLDAsLjA3NSksXG4gICAgMCAwIDhweCByZ2JhKGxpZ2h0ZW4oY29sb3IoZ3JlZW4pLCA1JSksIC42KTtcbiAgICBvdXRsaW5lOiAwO1xuICB9XG59XG5cbmZpZWxkc2V0IHtcbiAgYm9yZGVyOiAwO1xuICBtYXJnaW46IDAgMCAyZW07XG4gIG1pbi13aWR0aDogMDtcbiAgcGFkZGluZzogMDtcblxuICAmW2Rpc2FibGVkXSAuZm9ybS1jb250cm9sIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlZC1mb3JtLWNvbnRyb2w7XG4gIH1cbn1cblxubGVnZW5kIHtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2U1ZTVlNTtcbiAgY29sb3I6ICMzMzM7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDIxcHg7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBwYWRkaW5nOiAwO1xuICB3aWR0aDogMTAwJTtcbn1cblxubGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gIG1heC13aWR0aDogMTAwJTtcblxuICAmLnJlcXVpcmVkOmFmdGVyIHtcbiAgICBjb250ZW50OiAnKic7XG4gIH1cblxuICAmW2FyaWEtaGlkZGVuPXRydWVdIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgc21hbGwge1xuICAgIGNvbG9yOiBjb2xvcihncmF5KTtcbiAgICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgfVxufVxuXG4uY2hlY2tib3gtaW5saW5lIHtcbiAgbGFiZWwge1xuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgfVxuICB9XG59XG5cbiVmb3JtLWNvbnRyb2wge1xuICBAaW5jbHVkZSBpbnB1dC1mb2N1cztcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoYmxhY2ssIC4wNzUpO1xuICBjb2xvcjogY29sb3IoZ3JheSwgZGFyayk7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IC44NzVlbTtcbiAgaGVpZ2h0OiA0NnB4O1xuICBsaW5lLWhlaWdodDogMS4zMztcbiAgcGFkZGluZzogMTBweCAxNnB4O1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgZWFzZS1pbi1vdXQgLjE1cyxcbiAgYm94LXNoYWRvdyBlYXNlLWluLW91dCAuMTVzO1xuICB3aWR0aDogMTAwJTtcblxuICBAaW5jbHVkZSBwbGFjZWhvbGRlciB7XG4gICAgY29sb3I6IGNvbG9yKGdyYXkpO1xuICB9XG5cbiAgLmlzLXN1Ym1pdHRlZCAmIHtcbiAgICAmOmludmFsaWQsXG4gICAgJjpyZXF1aXJlZDppbnZhbGlkIHtcbiAgICAgIGJvcmRlci1jb2xvcjogI2IwMzUzNTtcbiAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKGJsYWNrLCAuMDc1KSwgMCAwIDhweCAjZDQ1MjUyO1xuICAgICAgb3V0bGluZTogMDtcbiAgICB9XG4gIH1cblxuICAmW2Rpc2FibGVkXSxcbiAgJltyZWFkb25seV0ge1xuICAgIEBpbmNsdWRlIGRpc2FibGVkLWZvcm0tY29udHJvbDtcbiAgfVxufVxuXG4uZm9ybS1jb250cm9sLWdyb3VwIHtcbiAgbWFyZ2luLWJvdHRvbTogMWVtO1xuICBtYXJnaW4tdG9wOiAxZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmZvcm0tY29udHJvbCB7XG4gIEBleHRlbmQgJWZvcm0tY29udHJvbDtcblxuICAmLmhhcy1pY29uIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiA0NXB4O1xuICB9XG59XG5cbnRleHRhcmVhIHtcbiAgcmVzaXplOiB2ZXJ0aWNhbDtcblxuICAmLmZvcm0tY29udHJvbCB7XG4gICAgaGVpZ2h0OiAxNTBweDtcbiAgfVxufVxuXG5bdHlwZT0ncmFkaW8nXSxcblt0eXBlPSdjaGVja2JveCddIHtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgbWFyZ2luOiA0cHggMCAwO1xuICBtYXJnaW4tdG9wOiAxcHggXFw5O1xufVxuXG5bdHlwZT0nZmlsZSddLFxuW3R5cGU9J3JhbmdlJ10ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG59XG5cblttdWx0aXBsZV0sXG5bc2l6ZV0ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cblt0eXBlPSdmaWxlJ10sXG5bdHlwZT0ncmFkaW8nXSxcblt0eXBlPSdjaGVja2JveCddIHtcbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogNXB4IGF1dG8gLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yO1xuICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xuICB9XG59XG5cbnNlbGVjdCxcbnNlbGVjdC5mb3JtLWNvbnRyb2wge1xuICBjb2xvcjogY29sb3IoZ3JheSk7XG4gIGZvbnQtc2l6ZTogLjg3NWVtO1xuICBwYWRkaW5nLXJpZ2h0OiA0NXB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuc2VsZWN0OjotbXMtZXhwYW5kIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmZvcm0tY29udHJvbC1zZWxlY3Qtd3JhcHBlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IGF1dG87XG59XG5cbi5mb3JtLWNvbnRyb2xfX2luc3RydWN0aW9ucyB7XG4gIGNvbG9yOiBjb2xvcihncmF5KTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGZvbnQtc2l6ZTogLjg1ZW07XG4gIG1hcmdpbi1ib3R0b206IC41ZW07XG59XG5cbi5maWVsZC1pY29uIHtcbiAgY29sb3I6IGNvbG9yKGdyYXksIGRhcmspO1xuICBmb250LXNpemU6IDEuMWVtO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMTNweDtcbiAgdG9wOiA1MCU7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIHotaW5kZXg6IDE7XG59XG5cbmJ1dHRvbixcblt0eXBlPSdzdWJtaXQnXSB7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAmOmFjdGl2ZSxcbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogdGhpbiBkb3R0ZWQ7XG4gICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG4gIH1cbn1cblxuLmZvcm0tZ3JvdXAge1xuICBtYXJnaW4tYm90dG9tOiAxNXB4O1xufVxuXG4ucmFkaW8sXG4uY2hlY2tib3gge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgbWFyZ2luLXRvcDogMTBweDtcbiAgbWluLWhlaWdodDogMjBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIGxhYmVsIHtcbiAgICBjb2xvcjogY29sb3IoZ3JheSwgZGFyayk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtc2l6ZTogLjg3NWVtO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gIH1cbn1cblxuLnJhZGlvIFt0eXBlPSdyYWRpbyddLFxuLnJhZGlvLWlubGluZSBbdHlwZT0ncmFkaW8nXSxcbi5jaGVja2JveCBbdHlwZT0nY2hlY2tib3gnXSxcbi5jaGVja2JveC1pbmxpbmUgW3R5cGU9J2NoZWNrYm94J10ge1xuICBtYXJnaW4tbGVmdDogLTIwcHg7XG4gIG1hcmdpbi10b3A6IDRweCBcXDk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cblxuLnJhZGlvICsgLnJhZGlvLFxuLmNoZWNrYm94ICsgLmNoZWNrYm94IHtcbiAgbWFyZ2luLXRvcDogLTVweDtcbn1cblxuLnJhZGlvLWlubGluZSxcbi5jaGVja2JveC1pbmxpbmUge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4ucmFkaW8taW5saW5lICsgLnJhZGlvLWlubGluZSxcbi5jaGVja2JveC1pbmxpbmUgKyAuY2hlY2tib3gtaW5saW5lIHtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gIG1hcmdpbi10b3A6IDA7XG59XG5cblt0eXBlPSdyYWRpbyddW2Rpc2FibGVkXSxcblt0eXBlPSdjaGVja2JveCddW2Rpc2FibGVkXSxcblt0eXBlPSdyYWRpbyddLmRpc2FibGVkLFxuW3R5cGU9J2NoZWNrYm94J10uZGlzYWJsZWQsXG5bZGlzYWJsZWRdIFt0eXBlPSdyYWRpbyddLFxuW2Rpc2FibGVkXSBbdHlwZT0nY2hlY2tib3gnXSB7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbi5yYWRpby1pbmxpbmUuZGlzYWJsZWQsXG4uY2hlY2tib3gtaW5saW5lLmRpc2FibGVkLFxuW2Rpc2FibGVkXSAucmFkaW8taW5saW5lLFxuW2Rpc2FibGVkXSAuY2hlY2tib3gtaW5saW5lIHtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuLnJhZGlvLmRpc2FibGVkIGxhYmVsLFxuLmNoZWNrYm94LmRpc2FibGVkIGxhYmVsLFxuW2Rpc2FibGVkXSAucmFkaW8gbGFiZWwsXG5bZGlzYWJsZWRdIC5jaGVja2JveCBsYWJlbCB7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbmlucHV0I0hvbmV5QmFyYmVyc2hvcFBvdCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59IiwiLyohXG4qIFBpa2FkYXlcbiogQ29weXJpZ2h0IChjKSAyMDE0IERhdmlkIEJ1c2hlbGwgfCBCU0QgJiBNSVQgbGljZW5zZSB8IGh0dHA6Ly9kYnVzaGVsbC5jb20vXG4qL1xuXG4ucGlrYS1zaW5nbGUge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6ICNiYmI7XG4gIGNvbG9yOiBjb2xvcihncmF5KTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhIE5ldWUnLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDk5OTk7XG5cbiAgJi5pcy1oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAmLmlzLWJvdW5kIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm94LXNoYWRvdzogMCA1cHggMTVweCAtNXB4IHJnYmEoMCwwLDAsLjUpO1xuICB9XG5cbiAgJi5kYXJrIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcihncmF5LCBkYXJrKTtcbiAgICBib3JkZXItY29sb3I6IGNvbG9yKGdyYXkpO1xuICB9XG59XG5cbi5waWthLWxlbmRhciB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW46IDhweDtcbiAgd2lkdGg6IDI0MHB4O1xufVxuXG4ucGlrYS10aXRsZSB7XG4gIGNvbG9yOiBjb2xvcihncmVlbik7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gIC5kYXJrICYge1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgfVxuXG4gIHNlbGVjdCB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZpbHRlcjogYWxwaGEob3BhY2l0eT0wKTtcbiAgICBsZWZ0OiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDVweDtcbiAgICB6LWluZGV4OiA5OTk4O1xuICB9XG59XG5cbi5waWthLWxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgbWFyZ2luOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiA1cHggM3B4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDk5OTk7XG5cbiAgLmRhcmsgJiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IoZ3JheSwgZGFyayk7XG4gIH1cbn1cblxuLnBpa2EtcHJldixcbi5waWthLW5leHQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiA3NSUgNzUlO1xuICBib3JkZXI6IDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogMzBweDtcbiAgb3BhY2l0eTogLjU7XG4gIG91dGxpbmU6IG5vbmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdGV4dC1pbmRlbnQ6IDIwcHg7IC8vIGhpZGUgdGV4dCB1c2luZyB0ZXh0LWluZGVudCB0cmljaywgdXNpbmcgd2lkdGggdmFsdWUgKGl0J3MgZW5vdWdoKVxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB3aWR0aDogMjBweDtcblxuICAmOmhvdmVyIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgJi5pcy1kaXNhYmxlZCB7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIG9wYWNpdHk6IC4yO1xuICB9XG59XG5cbi5waWthLXByZXYsXG4uaXMtcnRsIC5waWthLW5leHQge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQlFBQUFBZUNBWUFBQUFzRWo1ckFBQUFVa2xFUVZSNDJ1M1ZNUW9BSUJBRFFmOFBnaitPRDloRzJDdE9OSkIyeW1Ra0tlMEhid0FQMHh1Y0RpUVdBUklUSURFQkVuTWdNUThTOCtBcUJJbDZrS2dIaVhxUXFBZUplcEJvL3ozOEovVTB1QUhsYUJrQmw5STRHd0FBQUFCSlJVNUVya0pnZ2c9PScpO1xuICBmbG9hdDogbGVmdDtcbn1cblxuLnBpa2EtbmV4dCxcbi5pcy1ydGwgLnBpa2EtcHJldiB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCUUFBQUFlQ0FZQUFBQXNFajVyQUFBQVUwbEVRVlI0MnUzVk93b0FNQWdFMGR3ZkFuTmpVMjZiWWtCQ0ZHd2ZpTDlWVldvTytCSjRHZjNndHNFS0tvRkJOVENvQ0FZVndhQWlHTlFHTVVITWtqR2JnamsybUlPTnVYbzBuQzhYbkNmMUpYZ0FyVklaQVFoNVRLWUFBQUFBU1VWT1JLNUNZSUk9Jyk7XG4gIGZsb2F0OiByaWdodDtcbn1cblxuLnBpa2Etc2VsZWN0IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4ucGlrYS10YWJsZSB7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7XG4gIHdpZHRoOiAxMDAlO1xuXG4gIHRyIHtcbiAgICBib3JkZXItYm90dG9tOiBub25lICFpbXBvcnRhbnQ7XG4gIH1cblxuICB0aCxcbiAgdGQge1xuICAgIGJvcmRlci1yaWdodDogbm9uZSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgd2lkdGg6IDE0LjI4NTcxNDI4NTcxNDI4NiU7XG5cbiAgICAuZGFyayAmIHtcbiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IGNvbG9yKGdyYXkpO1xuICAgIH1cbiAgfVxuXG4gIHRoIHtcbiAgICBjb2xvcjogY29sb3IocHVycGxlKTtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbGluZS1oZWlnaHQ6IDI1cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgLmRhcmsgJiB7XG4gICAgICBjb2xvcjogbGlnaHRlbihjb2xvcihwdXJwbGUpLCA1JSk7XG4gICAgfVxuICB9XG5cbiAgdGQge1xuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgcGFkZGluZy10b3A6IDAgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgcGFkZGluZy1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICBhYmJyIHtcbiAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgIGN1cnNvcjogaGVscDtcbiAgfVxufVxuXG4ucGlrYS1idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBjb2xvcjogY29sb3IoZ3JheSk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDE1cHg7XG4gIG1hcmdpbjogMDtcbiAgb3V0bGluZTogbm9uZTtcbiAgcGFkZGluZzogMTJweCA1cHggOHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdpZHRoOiAxMDAlO1xuXG5cbiAgLmRhcmsgJiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IoZ3JheSwgZGFyayk7XG4gICAgY29sb3I6IHdoaXRlO1xuICB9XG5cbiAgLmlzLXRvZGF5ICYge1xuICAgIGNvbG9yOiBkYXJrZW4oY29sb3IoZ3JlZW4pLCA1JSk7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG5cbiAgICAuZGFyayAmIHtcbiAgICAgIGNvbG9yOiBsaWdodGVuKGNvbG9yKGdyZWVuKSwgNSUpO1xuICAgIH1cbiAgfVxuXG4gIC5pcy1zZWxlY3RlZCAmIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcihncmVlbik7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LXdlaWdodDogYm9sZDtcblxuICAgIC5kYXJrICYge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbihjb2xvcihncmVlbiksIDUlKTtcbiAgICB9XG4gIH1cblxuICAuaXMtaW5yYW5nZSAmIHtcbiAgICBiYWNrZ3JvdW5kOiBsaWdodGVuKGNvbG9yKGdyZWVuKSwgNTUlKTtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICB9XG5cbiAgLmlzLXN0YXJ0cmFuZ2UgJixcbiAgLmlzLWVuZHJhbmdlICYge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKGdyZWVuKTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB9XG5cbiAgLmlzLWRpc2FibGVkICYge1xuICAgIGNvbG9yOiBjb2xvcihncmF5KTtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgb3BhY2l0eTogLjM7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcihncmF5LCB4bGlnaHQpICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAuZGFyayAmIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKGdyYXksIGxpZ2h0KSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG4ucGlrYS13ZWVrIHtcbiAgY29sb3I6IGNvbG9yKGdyYXksIGxpZ2h0KTtcbiAgZm9udC1zaXplOiAxMXB4O1xufVxuXG5cbi5kYXRlcGlja2VyLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5kYXRlcGlja2VyLWNvbnRyb2wge1xuICAmW3JlYWRvbmx5XSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgYm9yZGVyLWNvbG9yOiBjb2xvcihncmVlbik7XG4gICAgY29sb3I6IGNvbG9yKGdyYXkpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gICYuZm9ybS1jb250cm9sLS1kYXJrIHtcbiAgICAmW3JlYWRvbmx5XSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcihncmF5KTtcbiAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgfVxuICB9XG5cbiAgJi5oYXMtdmFsdWUge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIH1cbn1cblxuLnJlbW92ZS1idXR0b24ge1xuICBkaXNwbGF5OiBub25lO1xuICAvKlxuICAgIEBpbmNsdWRlIHNpemUoYXV0byAzN3B4KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBwYXRoKCdpY29uLWNsb3NlLnN2ZycpO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgNTAlO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgY29sb3I6ICNhOGE4YTg7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBhZGRpbmctbGVmdDogMjJweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDE0cHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICB0b3A6IDE4cHg7XG4gICovXG59XG4iLCIkYnJlYWtwb2ludC1hbHBoYTogOTAwcHg7IC8vIGFkanVzdCB0byB5b3VyIG5lZWRzXG5cbnRhYmxlIHtcbiAgbWFyZ2luOiAxZW0gMDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICB3aWR0aDogMTAwJTtcblxuICB0ciB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGNvbG9yKGdyYXksIGxpZ2h0KTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgfVxuXG4gIHRoIHtcbiAgICBkaXNwbGF5OiBub25lOyAvLyBmb3IgYWNjZXNzaWJpbGl0eSwgdXNlIGEgdmlzdWFsbHkgaGlkZGVuIG1ldGhvZCBoZXJlIGluc3RlYWQhIFRoYW5rcywgcmVkZGl0IVxuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxuXG4gIHRkIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuXG5cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIHBhZGRpbmctdG9wOiAuNWVtO1xuICAgIH1cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgcGFkZGluZy1ib3R0b206IC41ZW07XG4gICAgfVxuXG4gICAgJjpiZWZvcmUge1xuICAgICAgY29udGVudDogYXR0cihkYXRhLXRoKVwiOiBcIjtcbiAgICAgIGNvbG9yOiBjb2xvcihncmF5LCB4ZGFyayk7XG4gICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgcGFkZGluZy1yaWdodDogMTVweDtcblxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LWFscGhhKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LWFscGhhKSB7XG4gICAgdGg6bm90KDpsYXN0LWNoaWxkKSxcbiAgICB0ZDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIGNvbG9yKGdyYXksIHhsaWdodCk7XG4gICAgfVxuICB9XG5cbiAgdGgsIHRkIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LWFscGhhKSB7XG4gICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgcGFkZGluZzogLjI1ZW0gLjVlbTtcblxuICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIH1cblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxuXG4gIC8vJi50YWJsZXNvcnQge1xuICAvLyAgdGgge1xuICAvLyAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvY2hldnJvbi11cC1ncmV5LnN2Z1wiKSwgdXJsKFwiLi4vaW1hZ2VzL2NoZXZyb24tZG93bi1ncmV5LnN2Z1wiKTtcbiAgLy8gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCwgbm8tcmVwZWF0O1xuICAvLyAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAxOHB4IHRvcCAyNnB4LHJpZ2h0IDE4cHggYm90dG9tIDI2cHg7XG4gIC8vICAgIGJhY2tncm91bmQtc2l6ZTogMTJweCA4cHgsIDEycHggOHB4O1xuICAvLyAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIC8vICAgIGNvbG9yOiBjb2xvcihncmF5LCBiYXNlKTtcbiAgLy8gICAgZm9udC1zaXplOiAxMXB4O1xuICAvLyAgICBmb250LXdlaWdodDogNDAwO1xuICAvLyAgICBoZWlnaHQ6IDcwcHg7XG4gIC8vICAgIGxldHRlci1zcGFjaW5nOiAzcHg7XG4gIC8vICAgIHBhZGRpbmc6IDFlbSA0MHB4IC42OGVtIC43NWVtO1xuICAvLyAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAvLyAgfVxuICAvL31cblxufVxuXG4iLCIvLyBDcmVkaXQ6IE5pY29sYXMgR2FsbGFnaGVyIGFuZCBTVUlUIENTUy5cblxuLnZpZGVvLWVtYmVkIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgJjo6YmVmb3JlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjb250ZW50OiBcIlwiO1xuICB9XG5cbiAgLnZpZGVvLWVtYmVkLWl0ZW0sXG4gIGlmcmFtZSxcbiAgZW1iZWQsXG4gIG9iamVjdCxcbiAgdmlkZW8ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJvcmRlcjogMDtcbiAgfVxufVxuXG4udmlkZW8tZW1iZWQtMjFieTkge1xuICAmOjpiZWZvcmUge1xuICAgIHBhZGRpbmctdG9wOiBwZXJjZW50YWdlKDkgLyAyMSk7XG4gIH1cbn1cblxuLnZpZGVvLWVtYmVkLTE2Ynk5IHtcbiAgJjo6YmVmb3JlIHtcbiAgICBwYWRkaW5nLXRvcDogcGVyY2VudGFnZSg5IC8gMTYpO1xuICB9XG59XG5cbi52aWRlby1lbWJlZC00YnkzIHtcbiAgJjo6YmVmb3JlIHtcbiAgICBwYWRkaW5nLXRvcDogcGVyY2VudGFnZSgzIC8gNCk7XG4gIH1cbn1cblxuLnZpZGVvLWVtYmVkLTFieTEge1xuICAmOjpiZWZvcmUge1xuICAgIHBhZGRpbmctdG9wOiBwZXJjZW50YWdlKDEgLyAxKTtcbiAgfVxufVxuIiwiQGltcG9ydCBcImdyaWRcIjtcblxuQGltcG9ydCBcImFjY29yZGlvblwiO1xuQGltcG9ydCBcImJyZWFkY3J1bWJzXCI7XG5AaW1wb3J0IFwiY2FsbG91dFwiO1xuQGltcG9ydCBcImNhbGxvdXQtYmxvY2tcIjtcbkBpbXBvcnQgXCJjYXRlZ29yeS1zZWxlY3RcIjtcbkBpbXBvcnQgXCJlbWJlZFwiO1xuQGltcG9ydCBcImV2ZW50LWJsb2NrXCI7XG5AaW1wb3J0IFwiZmVhdHVyZWQtZW50cnlcIjtcbkBpbXBvcnQgXCJmZWF0dXJlZC1ldmVudFwiO1xuQGltcG9ydCBcImdsb2JhbC1mb290ZXIvY29udGFjdC1pbmZvXCI7XG5AaW1wb3J0IFwiZ2xvYmFsLWZvb3Rlci9uYXZcIjtcbkBpbXBvcnQgXCJnbG9iYWwtZm9vdGVyL3BhcnRuZXJzXCI7XG5AaW1wb3J0IFwiZ3JpZC10aXRsZVwiO1xuQGltcG9ydCBcImdyaWQtZmlsdGVyc1wiO1xuQGltcG9ydCBcImljb24tbGlua3NcIjtcbkBpbXBvcnQgXCJsYWJlbFwiO1xuQGltcG9ydCBcImxpc3RpbmctYmxvY2tcIjtcbkBpbXBvcnQgXCJsaXN0aW5nLWl0ZW1cIjtcbkBpbXBvcnQgXCJsb2dvXCI7XG5AaW1wb3J0IFwibWVkaWFcIjtcbkBpbXBvcnQgXCJvdmVydmlld1wiO1xuQGltcG9ydCBcImdsb2JhbC1oZWFkZXIvYnVyZ2VyXCI7XG5AaW1wb3J0IFwiZ2xvYmFsLWhlYWRlci9uYXYtbGlua1wiO1xuQGltcG9ydCBcImdsb2JhbC1oZWFkZXIvbmF2LWxpbmstYnV0dG9uXCI7XG5AaW1wb3J0IFwiZ2xvYmFsLWhlYWRlci9uYXYtbWVudVwiO1xuQGltcG9ydCBcImdsb2JhbC1oZWFkZXIvcHJpbWFyeS1uYXZcIjtcbkBpbXBvcnQgXCJnbG9iYWwtaGVhZGVyL3NlYXJjaC1idXR0b25cIjtcbkBpbXBvcnQgXCJnbG9iYWwtaGVhZGVyL3NlY29uZGFyeS1uYXZcIjtcbkBpbXBvcnQgXCJnbG9iYWwtaGVhZGVyL2RvY3Mtc2VhcmNoXCI7XG5AaW1wb3J0IFwiaGVyby1jb250ZW50XCI7XG5AaW1wb3J0IFwicGFnZS10aXRsZVwiO1xuQGltcG9ydCBcInBob3RvLWdhbGxlcnlcIjtcbkBpbXBvcnQgXCJxdW90ZVwiO1xuQGltcG9ydCBcInNpZGViYXItbmF2XCI7XG5AaW1wb3J0IFwic2NoZWR1bGVcIjtcbkBpbXBvcnQgXCJzaWRlYmFyLWNhbGxvdXRcIjtcbkBpbXBvcnQgXCJ0YWItcGFuZWxcIjtcbkBpbXBvcnQgXCJ0YWJsaXN0XCI7XG5AaW1wb3J0IFwidG9wLWFycm93XCI7XG5AaW1wb3J0IFwiZXZlbnQtcmVzb3VyY2VzXCI7XG5AaW1wb3J0IFwiZmVhdHVyZWQtc3RvcnktYmxvY2tcIjtcbkBpbXBvcnQgXCJwYWdpbmF0b3JcIjtcbkBpbXBvcnQgXCJjb250YWN0LXBhZ2VcIjtcbkBpbXBvcnQgXCJqdWRnZXMtZGlyZWN0b3J5XCI7XG5AaW1wb3J0IFwic2VwYXJhdG9yXCI7XG5AaW1wb3J0IFwicnNzLWZlZWRcIjtcbkBpbXBvcnQgXCJoZXJvLWNhcm91c2VsXCI7XG5AaW1wb3J0IFwibWFwXCI7XG5AaW1wb3J0IFwiY2xlYXItZmxvYXRzXCI7XG4iLCIkZ3JpZHM6IChcbiAgY29sMjogKFxuICAgIGxheW91dDogKFxuICAgICAgZ3V0dGVyczogMjMvNTAwLFxuICAgICAgZ3V0dGVyLXBvc2l0aW9uOiBhZnRlclxuICAgICksXG4gICAgYnJlYWtwb2ludHM6IChcbiAgICAgIHhzbWFsbDogMSxcbiAgICAgIHNtYWxsOiAxLFxuICAgICAgbWVkaXVtOiAyLFxuICAgICAgbGFyZ2U6IDJcbiAgICApLFxuICAgIHNwYW5zOiAoXG4gICAgICAxIF81OiAoXG4gICAgICAgIHhzbWFsbDogZnVsbCxcbiAgICAgICAgc21hbGw6IGZ1bGwsXG4gICAgICAgIG1lZGl1bTogMS41LFxuICAgICAgICBsYXJnZTogMS41XG4gICAgICApLFxuICAgICAgMjogKFxuICAgICAgICB4c21hbGw6IGZ1bGwsXG4gICAgICAgIHNtYWxsOiBmdWxsLFxuICAgICAgICBtZWRpdW06IGZ1bGwsXG4gICAgICAgIGxhcmdlOiBmdWxsXG4gICAgICApXG4gICAgKVxuICApLFxuICBjb2wzOiAoXG4gICAgbGF5b3V0OiAoXG4gICAgICBndXR0ZXJzOiA3LzEwMCxcbiAgICAgIGd1dHRlci1wb3NpdGlvbjogYWZ0ZXJcbiAgICApLFxuICAgIGJyZWFrcG9pbnRzOiAoXG4gICAgICB4c21hbGw6IDEsXG4gICAgICBzbWFsbDogMSxcbiAgICAgIG1lZGl1bTogMyxcbiAgICAgIGxhcmdlOiAzXG4gICAgKSxcbiAgICBzcGFuczogKFxuICAgICAgMjogKFxuICAgICAgICB4c21hbGw6IGZ1bGwsXG4gICAgICAgIHNtYWxsOiBmdWxsLFxuICAgICAgICBtZWRpdW06IDEuNSxcbiAgICAgICAgbGFyZ2U6IDEuNVxuICAgICAgKVxuICAgIClcbiAgKSxcbiAgY29sNDogKFxuICAgIGxheW91dDogKFxuICAgICAgZ3V0dGVyczogMTkvMjAwLFxuICAgICAgZ3V0dGVyLXBvc2l0aW9uOiBhZnRlclxuICAgICksXG4gICAgYnJlYWtwb2ludHM6IChcbiAgICAgIHhzbWFsbDogMSxcbiAgICAgIHNtYWxsT25seTogMSxcbiAgICAgIG1lZGl1bU9ubHk6IDMsXG4gICAgICBsYXJnZTogNFxuICAgICksXG4gICAgc3BhbnM6IChcbiAgICAgIDEgXzU6IChcbiAgICAgICAgeHNtYWxsOiBmdWxsLFxuICAgICAgICBzbWFsbDogZnVsbCxcbiAgICAgICAgbWVkaXVtOiAxLjUsXG4gICAgICAgIGxhcmdlOiAxLjVcbiAgICAgICksXG4gICAgICAyOiAoXG4gICAgICAgIHhzbWFsbDogZnVsbCxcbiAgICAgICAgc21hbGw6IGZ1bGwsXG4gICAgICAgIG1lZGl1bTogMSxcbiAgICAgICAgbGFyZ2U6IDJcbiAgICAgICksXG4gICAgICAyIF81OiAoXG4gICAgICAgIHhzbWFsbDogZnVsbCxcbiAgICAgICAgc21hbGw6IGZ1bGwsXG4gICAgICAgIG1lZGl1bTogMi41LFxuICAgICAgICBsYXJnZTogMi41XG4gICAgICApXG4gICAgKVxuICApLFxuICBjb2w2OiAoXG4gICAgbGF5b3V0OiAoXG4gICAgICBndXR0ZXJzOiAxNS8xMDAsXG4gICAgICBndXR0ZXItcG9zaXRpb246IGFmdGVyXG4gICAgKSxcbiAgICBicmVha3BvaW50czogKFxuICAgICAgeHNtYWxsOiAxLFxuICAgICAgc21hbGxPbmx5OiAyLFxuICAgICAgbWVkaXVtT25seTogNCxcbiAgICAgIGxhcmdlOiA2XG4gICAgKSxcbiAgICBzcGFuczogKFxuICAgICAgNTogKFxuICAgICAgICB4c21hbGw6IGZ1bGwsXG4gICAgICAgIHNtYWxsT25seTogZnVsbCxcbiAgICAgICAgbWVkaXVtT25seTogMyxcbiAgICAgICAgbGFyZ2U6IDVcbiAgICAgICksXG4gICAgICA0IF81OiAoXG4gICAgICAgIHhzbWFsbDogZnVsbCxcbiAgICAgICAgc21hbGxPbmx5OiAyLFxuICAgICAgICBtZWRpdW1Pbmx5OiAyLjUsXG4gICAgICAgIGxhcmdlOiA0LjVcbiAgICAgICksXG4gICAgICA0OiAoXG4gICAgICAgIHhzbWFsbDogZnVsbCxcbiAgICAgICAgc21hbGxPbmx5OiAyLFxuICAgICAgICBtZWRpdW1Pbmx5OiAyLjUsXG4gICAgICAgIGxhcmdlOiA0XG4gICAgICApLFxuICAgICAgMzogKFxuICAgICAgICB4c21hbGw6IGZ1bGwsXG4gICAgICAgIHNtYWxsT25seTogMSxcbiAgICAgICAgbWVkaXVtT25seTogMixcbiAgICAgICAgbGFyZ2U6IDNcbiAgICAgICksXG4gICAgICAyOiAoXG4gICAgICAgIHhzbWFsbDogZnVsbCxcbiAgICAgICAgc21hbGxPbmx5OiAyLFxuICAgICAgICBtZWRpdW1Pbmx5OiAxLjUsXG4gICAgICAgIGxhcmdlOiAyXG4gICAgICApLFxuICAgICAgMSBfNTogKFxuICAgICAgICB4c21hbGw6IGZ1bGwsXG4gICAgICAgIHNtYWxsT25seTogMixcbiAgICAgICAgbWVkaXVtT25seTogMS41LFxuICAgICAgICBsYXJnZTogMS41XG4gICAgICApXG4gICAgKVxuICApXG4pO1xuXG4uZ3JpZCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcblxuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDEwMCU7XG4gIGdyaWQtdGVtcGxhdGUtcm93czogYXV0bztcbiAgZ3JpZC1yb3ctZ2FwOiAxNXB4O1xuICBncmlkLWNvbHVtbi1nYXA6IDQwcHg7XG5cbiAgJi4tc21hbGwge1xuICAgIGdyaWQtcm93LWdhcDogMjBweDtcbiAgICBncmlkLWNvbHVtbi1nYXA6IDE1cHg7XG4gIH1cblxuICAmLi1mb290ZXIge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50Lm1lZGl1bScpKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LmxhcmdlJykpIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byBhdXRvIGF1dG8gMTMwcHg7XG4gICAgfVxuICB9XG5cbiAgJi4tY29sNCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubWVkaXVtJykpIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubGFyZ2UnKSkge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyIDFmciAxZnI7XG4gICAgfVxuICB9XG5cbiAgJi4tY29sNSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubWVkaXVtJykpIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubGFyZ2UnKSkge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyIDFmciAxZnIgMWZyO1xuICAgIH1cbiAgfVxuXG4gICYuLWNvbDYge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5tZWRpdW0nKSkge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyIDFmcjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubGFyZ2UnKSkge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyIDFmciAxZnIgMWZyIDFmcjtcbiAgICB9XG4gIH1cblxuICAmLi1jb2w3IHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubWVkaXVtJykpIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmciAxZnI7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LmxhcmdlJykpIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmciAxZnIgMWZyIDFmciAxZnIgMWZyO1xuICAgIH1cbiAgfVxuXG4gICYuLWNvbDgge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5tZWRpdW0nKSkge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyIDFmciAxZnI7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LmxhcmdlJykpIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmciAxZnIgMWZyIDFmciAxZnIgMWZyIDFmcjtcbiAgICB9XG4gIH1cblxuICAmLi1mZWF0dXJlZC1lbnRyeS1ncmlkIHtcbiAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gYXV0bztcbiAgICBncmlkLWNvbHVtbi1nYXA6IHNldHRpbmcoJ2d1dHRlclBhZGRpbmcnKTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5tZWRpdW0nKSkge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMmZyO1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnI7XG4gICAgfVxuICB9XG5cbiAgJi4tbGlzdGluZy1ncmlkIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5tZWRpdW0nKSkge1xuICAgICAgZ3JpZC1jb2x1bW4tZ2FwOiAxNXB4O1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgICBncmlkLWNvbHVtbi1nYXA6IDMwcHg7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDE4LjQlIGF1dG8gMjUlIDI1JTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQueGxhcmdlJykpIHtcbiAgICAgIGdyaWQtY29sdW1uLWdhcDogNDBweDtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMTguNCUgYXV0byAyNy41JSAyMyU7XG4gICAgfVxuICB9XG5cbiAgJi4tY29sMyB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LnNtYWxsJykpIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmciAxZnI7XG4gICAgfVxuICB9XG5cbiAgJi4tY29sMy0yLTEge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LnNtYWxsJykpIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubWVkaXVtJykpIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmciAxZnI7XG4gICAgfVxuICB9XG5cbiAgJi4tY29sMy0xIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5tZWRpdW0nKSkge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyIDFmcjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubGFyZ2UnKSkge1xuICAgICAgZ3JpZC1jb2x1bW4tZ2FwOiBjYWxjKDQwcHggKiAxLjUpO1xuICAgIH1cbiAgfVxuXG4gICYuLWNvbDIge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50Lm1lZGl1bScpKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gICAgfVxuICB9XG5cbiAgJi4tZGV0YWlsIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5tZWRpdW0nKSkge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMjUwcHg7XG4gICAgfVxuICB9XG59XG5cbltjbGFzcyo9XCItZml4Y29sc1wiXSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZsZXgtd3JhcDogd3JhcDtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubWVkaXVtJykpIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBub3JtYWw7XG4gIH1cblxuICA+IGRpdiB7XG4gICAgbWF4LXdpZHRoOiAyODBweDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbi4tZml4Y29sczIge1xuICA+IGRpdiB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50Lm1lZGl1bScpKSB7XG4gICAgICBmbGV4LWJhc2lzOiA1MCU7XG4gICAgfVxuICB9XG59XG5cbi4tZml4Y29sczMge1xuICA+IGRpdiB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50Lm1lZGl1bScpKSB7XG4gICAgICBmbGV4LWJhc2lzOiA1MCU7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50Lnh4bGFyZ2UnKSkge1xuICAgICAgZmxleC1iYXNpczogMzMlO1xuICAgIH1cbiAgfVxufVxuXG4uLWZpeGNvbHM0IHtcbiAgPiBkaXYge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5tZWRpdW0nKSkge1xuICAgICAgZmxleC1iYXNpczogNTAlO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC54bGFyZ2UnKSkge1xuICAgICAgZmxleC1iYXNpczogMzMlO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC54eGxhcmdlJykpIHtcbiAgICAgIGZsZXgtYmFzaXM6IDI1JTtcbiAgICB9XG4gIH1cbn0iLCIuYWNjb3JkaW9uLS1uYXYge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gIGxhYmVsIHtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGNvbG9yOiBjb2xvcihncmF5LCBiYXNlKTtcbiAgfVxuXG4gIGlucHV0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgY29sb3I6IGNvbG9yKGdyYXksIHhkYXJrKTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZm9udC1mYW1pbHk6ICRuc2NjSWNvbnM7XG4gICAgICBmb250LXNpemU6IDEuMzc1ZW07XG4gICAgICBsaW5lLWhlaWdodDogMC42NTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIHJpZ2h0OiA4cHg7XG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjVzLCBvcGFjaXR5IC4zcztcblxuICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgIGNvbnRlbnQ6ICdcXGU4MDMnOyAvLyBEb3duIGFycm93XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICAgIHotaW5kZXg6IDIwO1xuICAgIH1cbiAgfVxuXG4gIGlucHV0OmNoZWNrZWQge1xuICAgICY6YmVmb3JlIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gICAgfVxuICB9XG59XG5cbi5hY2NvcmRpb24ge1xuICAuYWNjb3JkaW9uX19pdGVtIHtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IpO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBjb2xvcihncmF5LCB4ZGFyayk7XG5cbiAgICAuYWNjb3JkaW9uX19pdGVtX19kZXRhaWxzIHtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICBtYXJnaW4tbGVmdDogc2V0dGluZygnZ3V0dGVyUGFkZGluZycpO1xuICAgICAgbWFyZ2luLXJpZ2h0OiBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nJyk7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgLXdlYmtpdC10cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IC41cyBlYXNlLWluLW91dDtcbiAgICAgIHRyYW5zaXRpb246IG1heC1oZWlnaHQgLjVzIGVhc2UtaW4tb3V0O1xuXG4gICAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEuMjUwZW07XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuXG4gICAgICBwIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMS43NWVtO1xuICAgICAgfVxuXG4gICAgICB1bCB7XG4gICAgICAgIC8vIHBhZGRpbmc6IDA7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMS44NWVtO1xuXG4gICAgICAgIGxpIHtcbiAgICAgICAgICAvLyBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICAgIGNvbG9yOiBjb2xvcihibHVlKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBwID4gYSB7XG4gICAgICAgIEBpbmNsdWRlIGxpbmsoLjgsIDApO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuLWV4cGFuZGVkIHtcbiAgICAgIC5hY2NvcmRpb25fX2l0ZW1fX2RldGFpbHMge1xuICAgICAgICBtYXgtaGVpZ2h0OiA1MDAwMDBweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm5vdCguLWV4cGFuZGVkKTpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcihncmV5LCB4bGlnaHQpO1xuICAgIH1cbiAgfVxuXG4gIGg0IHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIHBhZGRpbmctbGVmdDogc2V0dGluZygnZ3V0dGVyUGFkZGluZycpO1xuICAgIHBhZGRpbmctdG9wOiAzZW07XG4gICAgcGFkZGluZy1ib3R0b206IDNlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiA2MHB4O1xuICB9XG59XG5cbi5hY2NvcmRpb25fX2l0ZW1fX2hhbmRsZSB7XG4gIGNvbG9yOiBjb2xvcihibHVlKTtcbiAgZm9udC1zaXplOiAxLjM3NXJlbTtcbiAgbWFyZ2luLXRvcDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0cmFuc2l0aW9uOiBjb2xvciAuM3M7XG5cbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwYWRkaW5nOiAyLjVlbSAwO1xuXG5cbiAgJjpob3ZlciB7XG4gICAgY29sb3I6IGNvbG9yKGJsdWUpO1xuICB9XG5cbiAgLmFjY29yZGlvbl9faXRlbS4tZXhwYW5kZWQgJiB7XG4gICAgY29sb3I6IGNvbG9yKGJsdWUpO1xuICB9XG5cbiAgJjpiZWZvcmUsXG4gICY6YWZ0ZXIge1xuICAgIGNvbG9yOiBjb2xvcihncmF5LCB4ZGFyayk7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1mYW1pbHk6ICRuc2NjSWNvbnM7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nJyk7XG4gICAgdG9wOiBjYWxjKDUwJSAtIDEycHgpO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuM3MsIG9wYWNpdHkgLjNzO1xuICB9XG5cbiAgJjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICdcXGU4MDMnOyAvLyBEb3duIGFycm93XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgei1pbmRleDogMjA7XG5cbiAgICAuYWNjb3JkaW9uX19pdGVtLi1leHBhbmRlZCAmIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gICAgfVxuICB9XG59XG4iLCIuYnJlYWRjcnVtYnMtd3JhcHBlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgXG59XG5cbi5icmVhZGNydW1iIHtcbiAgZm9udC1zaXplOiAuNzVyZW07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIG1hcmdpbjogMCAwIDIuNWVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5tZWRpdW0nKSkge1xuICAgIG1hcmdpbi10b3A6IDIuNWVtO1xuICB9XG5cbiAgLy8gQ29tcG9uZW50c1xuXG4gIC5icmVhZGNydW1iX19pdGVtIHtcbiAgICBmb250LXNpemU6IC43NXJlbTtcbiAgICBjb2xvcjogY29sb3IoZ3JheSk7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgJjphZnRlciB7XG4gICAgICBjb250ZW50OiAnLyc7XG4gICAgICBwYWRkaW5nOiAwIDRweDtcbiAgICB9XG5cbiAgICAmLi1hY3RpdmUge1xuICAgICAgY29sb3I6IGNvbG9yKGdyYXkpO1xuXG4gICAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBhIHtcbiAgICAgIGNvbG9yOiBjb2xvcihwdXJwbGUpO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIkY2FsbG91dDogKFxuICBzaXplczogKFxuICApXG4pO1xuXG4uY2FsbG91dCB7XG4gIEBleHRlbmQgLmdyaWQ7XG4gIEBleHRlbmQgLi1jb2wyO1xuICBAaW5jbHVkZSB0cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IpO1xuICBjb2xvcjogY29sb3IoYmx1ZSk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBwYWRkaW5nOiBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nU21hbGwnKSBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nU21hbGwnKTtcbiAgbWFyZ2luLWJvdHRvbTogc2V0dGluZygnZ3V0dGVyUGFkZGluZ1NtYWxsJyk7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LmxhcmdlJykpIHtcbiAgICBwYWRkaW5nOiBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nU21hbGwnKSBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nJyk7XG4gIH1cbn1cblxuYS5jYWxsb3V0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IoZ3JleSwgeGxpZ2h0KTtcblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oY29sb3IoZ3JleSwgeGxpZ2h0KSwgNSUpO1xuICB9XG59XG5cbi5jYWxsb3V0X19pbWFnZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IGF1dG87XG4gIGZsb2F0OiByaWdodDtcbiAgd2lkdGg6IDEwMCU7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50Lm1lZGl1bScpKXtcbiAgICB3aWR0aDogYXV0bztcbiAgfVxufSIsIiRjYWxsb3V0QmxvY2s6IChcbiAgc2l6ZXM6IChcbiAgICBzbWFsbDogKFxuICAgICAgZm9udFNpemU6IC45MzhlbSxcbiAgICAgIGxpbmVIZWlnaHQ6IDEuMSxcbiAgICAgIGhlaWdodDogMjAwcHhcbiAgICApLFxuICAgIG1lZGl1bTogKFxuICAgICAgZm9udFNpemU6IDEuNzVlbSxcbiAgICAgIGxpbmVIZWlnaHQ6IDEuMixcbiAgICAgIGhlaWdodDogMjUwcHhcbiAgICApLFxuICAgIGxhcmdlOiAoXG4gICAgICBib3JkZXI6IDI1cHggc29saWQgd2hpdGUsXG4gICAgICBmb250U2l6ZTogMy43NWVtLFxuICAgICAgbGluZUhlaWdodDogMS4xLFxuICAgICAgaGVpZ2h0OiA0NjBweFxuICAgICksXG4gICAgaG9yaXpvbnRhbDogKFxuICAgICAgaGVpZ2h0OiAxMzBweFxuICAgIClcbiAgKSxcbiAgYnJlYWtwb2ludDogKFxuICAgIG1lZGl1bTogZW0oOTE1cHgpXG4gIClcbik7XG5cbi5jYWxsb3V0LWJsb2NrIHtcbiAgY29sb3I6IHdoaXRlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcblxuICAmLi1pbWFnZSB7XG4gICAgJjpub3QoLi1ncmV5KTpiZWZvcmUge1xuICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yKTtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHRyYW5zcGFyZW50LCB0cmFuc3BhcmVudCwgIzA3Mjk3Myk7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgb3BhY2l0eTogLjc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHotaW5kZXg6IDEwO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgLmNhbGxvdXQtYmxvY2tfX2NvbnRlbnQge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi4tZ3JleSB7XG4gICAgICAuY2FsbG91dC1ibG9ja19faW1hZ2Uge1xuICAgICAgICB0b3A6IDkwcHg7XG4gICAgICB9XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICAuY2FsbG91dC1ibG9ja19fY29udGVudCB7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmNhbGxvdXQtYmxvY2tfX2ltYWdlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgbWluLXdpZHRoOiAxMDAlO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAzNXB4O1xuICAgICAgei1pbmRleDogMDtcbiAgICB9XG4gIH1cblxuICAmLi1jb2xvciB7XG4gICAgJi4tZ3JlZW4ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IoZ3JlZW4pO1xuICAgIH1cblxuICAgICYuLWJsYWNrIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKGdyYXksIHhkYXJrKTtcbiAgICB9XG4gIH1cblxuICAvLyBTaXplc1xuICAmLi1zbWFsbCB7XG4gICAgaGVpZ2h0OiBzZXR0aW5nKCdzaXplcy5zbWFsbC5oZWlnaHQnLCAkY2FsbG91dEJsb2NrKTtcbiAgfVxuXG4gICYuLW1lZGl1bSB7XG4gICAgaGVpZ2h0OiBzZXR0aW5nKCdzaXplcy5tZWRpdW0uaGVpZ2h0JywgJGNhbGxvdXRCbG9jayk7XG5cbiAgICBwIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIH1cbiAgfVxuXG4gICYuLWxhcmdlIHtcbiAgICBib3JkZXI6IDI1cHggc29saWQgd2hpdGU7XG4gICAgaGVpZ2h0OiBzZXR0aW5nKCdzaXplcy5sYXJnZS5oZWlnaHQnLCAkY2FsbG91dEJsb2NrKSAtIDEwMHB4O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50Lm1lZGl1bScpKSB7XG4gICAgICBoZWlnaHQ6IHNldHRpbmcoJ3NpemVzLmxhcmdlLmhlaWdodCcsICRjYWxsb3V0QmxvY2spO1xuICAgIH1cbiAgfVxuXG4gICYuLWhvcml6b250YWwge1xuICAgIGhlaWdodDogc2V0dGluZygnc2l6ZXMubWVkaXVtLmhlaWdodCcsICRjYWxsb3V0QmxvY2spO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubWVkaXVtJywgJGNhbGxvdXRCbG9jaykpIHtcbiAgICAgIGhlaWdodDogc2V0dGluZygnc2l6ZXMuaG9yaXpvbnRhbC5oZWlnaHQnLCAkY2FsbG91dEJsb2NrKTtcblxuICAgICAgLmNhbGxvdXQtYmxvY2tfX2NvbnRlbnRfX2xhYmVsIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHdpZHRoOiAyMCU7XG4gICAgICB9XG5cbiAgICAgIC5jYWxsb3V0LWJsb2NrX19jb250ZW50X19oZWFkbGluZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgd2lkdGg6IDY1JTtcbiAgICAgIH1cblxuICAgICAgLmNhbGxvdXQtYmxvY2tfX2NvbnRlbnRfX2J1dHRvbiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIG1hcmdpbi10b3A6IDVweDtcbiAgICAgICAgd2lkdGg6IDE1JTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLmNhbGxvdXQtYmxvY2tfX2NvbnRlbnQge1xuXG4gIC5jYWxsb3V0LWJsb2NrLi1pbWFnZSAmIHtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGhlaWdodCk7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAganVzdGlmeS1pdGVtczogY2VudGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKGJsdWUpO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgei1pbmRleDogMjA7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG5cbiAgLmNhbGxvdXQtYmxvY2suLWltYWdlLi1ncmV5ICYge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKGdyZXksIHhsaWdodCk7XG4gICAgaGVpZ2h0OiA5MHB4O1xuICB9XG5cbiAgLmNhbGxvdXQtYmxvY2suLWJ1dHRvbiAmIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IoZ3JleSwgeGxpZ2h0KTtcbiAgICBib3JkZXItYm90dG9tOiAxNHB4IHNvbGlkIGNvbG9yKG9yYW5nZSk7XG4gICAgcGFkZGluZzogc2V0dGluZygnZ3V0dGVyUGFkZGluZ1NtYWxsJyk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIC5jYWxsb3V0LWJsb2NrX19jb250ZW50X19idXR0b24ge1xuICAgICAgbWFyZ2luLXRvcDogYXV0bztcbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgbWF4LWhlaWdodDogMTI2cHg7XG4gICAgfVxuICB9XG5cbiAgLmNhbGxvdXQtYmxvY2suLWNvbG9yICYge1xuICAgIHBhZGRpbmc6IDAgMjUlIDAgMTUlO1xuICB9XG5cbiAgLmNhbGxvdXQtYmxvY2suLWhvcml6b250YWwgJiB7XG4gICAgcGFkZGluZzogMCA3JTtcbiAgfVxufVxuXG4uY2FsbG91dC1ibG9ja19fY29udGVudF9faGVhZGxpbmUge1xuICBmb250LWZhbWlseTogJG9wZW5TYW5zO1xuXG4gIC5jYWxsb3V0LWJsb2NrLi1pbWFnZSAmIHtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgbWFyZ2luOiAxMHB4IGF1dG87XG4gIH1cblxuICAuY2FsbG91dC1ibG9jay4taW1hZ2UuLWdyZXkgJiB7XG4gICAgY29sb3I6IGNvbG9yKGJsdWUpO1xuICAgIGZvbnQtc2l6ZTogMS43NWVtO1xuICAgIG1hcmdpbjogMTBweCBhdXRvO1xuICB9XG5cbiAgLi1idXR0b24gJiB7XG4gICAgcGFkZGluZy10b3A6IHNldHRpbmcoJ2d1dHRlclBhZGRpbmdTbWFsbCcpO1xuICB9XG5cbiAgLmNhbGxvdXQtYmxvY2suLWNvbG9yICYge1xuICAgIG1hcmdpbi1ib3R0b206IC4yNWVtO1xuICB9XG5cbiAgLmNhbGxvdXQtYmxvY2suLXNtYWxsICYge1xuICAgIGZvbnQtc2l6ZTogc2V0dGluZygnc2l6ZXMuc21hbGwuZm9udFNpemUnLCAkY2FsbG91dEJsb2NrKTtcbiAgICBsaW5lLWhlaWdodDogc2V0dGluZygnc2l6ZXMuc21hbGwubGluZUhlaWdodCcsICRjYWxsb3V0QmxvY2spO1xuICB9XG5cbiAgLmNhbGxvdXQtYmxvY2suLW1lZGl1bSAmIHtcbiAgICBmb250LWZhbWlseTogJG9wZW5TYW5zQ29uZGVuc2VkO1xuICAgIGZvbnQtc2l6ZTogc2V0dGluZygnc2l6ZXMubWVkaXVtLmZvbnRTaXplJywgJGNhbGxvdXRCbG9jayk7XG4gICAgbGluZS1oZWlnaHQ6IHNldHRpbmcoJ3NpemVzLm1lZGl1bS5saW5lSGVpZ2h0JywgJGNhbGxvdXRCbG9jayk7XG4gIH1cblxuICAuY2FsbG91dC1ibG9jay4tbGFyZ2UgJiB7XG4gICAgZm9udC1zaXplOiBzZXR0aW5nKCdzaXplcy5sYXJnZS5mb250U2l6ZScsICRjYWxsb3V0QmxvY2spIC0gMWVtO1xuICAgIGxpbmUtaGVpZ2h0OiBzZXR0aW5nKCdzaXplcy5sYXJnZS5saW5lSGVpZ2h0JywgJGNhbGxvdXRCbG9jayk7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubGFyZ2UnKSkge1xuICAgICAgZm9udC1zaXplOiBzZXR0aW5nKCdzaXplcy5sYXJnZS5mb250U2l6ZScsICRjYWxsb3V0QmxvY2spO1xuICAgIH1cbiAgfVxuXG4gIC5jYWxsb3V0LWJsb2NrLi1ob3Jpem9udGFsICYge1xuICAgIGZvbnQtc2l6ZTogc2V0dGluZygnc2l6ZXMubWVkaXVtLmZvbnRTaXplJywgJGNhbGxvdXRCbG9jayk7XG4gICAgbGluZS1oZWlnaHQ6IHNldHRpbmcoJ3NpemVzLm1lZGl1bS5saW5lSGVpZ2h0JywgJGNhbGxvdXRCbG9jayk7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubWVkaXVtJywgJGNhbGxvdXRCbG9jaykpIHtcbiAgICAgIGZvbnQtc2l6ZTogMmVtO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cbn0iLCIuY2F0ZWdvcnktc2VsZWN0IHtcbiAgd2lkdGg6IDUwJTtcbn1cbiIsIi5lbWJlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICAucGhvdG8ge1xuICAgIG9wYWNpdHk6IC44O1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5O1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBvcGFjaXR5OiAuNDtcbiAgICB9XG4gIH1cblxuICBpZnJhbWUge1xuICAgIGJvcmRlcjogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbGVmdDogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgJi4tbW9kYWwtb3ZlcmxheVtkYXRhLWxvYWRlZD1mYWxzZV06OmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoMTgwZGVnLCB0cmFuc3BhcmVudCwgcmdiYSgwLCAwLCAwLCAuNikpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgtOTBkZWcsIHRyYW5zcGFyZW50LCByZ2JhKDAsIDAsIDAsIC42KSk7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGw7XG4gICAgdHJhbnNpdGlvbjogYWxsO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHotaW5kZXg6IDI7XG4gIH1cbn1cblxuLmVtYmVkW2RhdGEtbG9hZGVkPWZhbHNlXTo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogdXJsKCcuLi8uLi9zcmMvaW1hZ2VzL3BsYXkuc3ZnJykgbm8tcmVwZWF0O1xuICBjb250ZW50OiAnJztcbiAgaGVpZ2h0OiA3MHB4O1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbjogYXV0bztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHRyYW5zbGF0ZVgoLTUwJSk7XG4gIHdpZHRoOiA3MHB4O1xuICB6LWluZGV4OiAxO1xufVxuXG4uZW1iZWRbZGF0YS1sb2FkZWQ9ZmFsc2VdOmhvdmVyIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5O1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5O1xuXG4gIC5waG90byB7XG4gICAgb3BhY2l0eTogLjQ7XG4gIH1cblxuICAmOjpiZWZvcmUge1xuICAgIG9wYWNpdHk6IC44O1xuICB9XG59XG5cbi5lbWJlZFtkYXRhLWxvYWRlZD10cnVlXSB7XG4gIGhlaWdodDogMDtcbiAgcGFkZGluZy1ib3R0b206IDU2LjI1JTtcblxuICAubmV0d29yay1tb2RhbC1jb250ZW50IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4iLCIkZXZlbnQ6IChcbiAgYnJlYWtwb2ludDogKFxuICAgIHhsYXJnZTogZW0oMTIwMHB4KVxuICApLFxuICBoZWlnaHQ6IDM1NXB4LFxuICBwYWRkaW5nOiAoXG4gICAgYm90dG9tOiA4Ljc1JSxcbiAgICBsZWZ0OiAxMSUsXG4gICAgdG9wOiA2LjI1JSxcbiAgICByaWdodDogMTElXG4gIClcbik7XG5cbi5ldmVudF9fbGlzdCB7XG4gICY6bm90KC4tZ3JpZCkge1xuICAgIC5ldmVudC1pdGVtOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjOTc5Nzk3O1xuICAgIH1cblxuICAgIC5ldmVudCB7XG4gICAgICBAZXh0ZW5kIC4tbGlzdGluZy1ncmlkO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKGNvbG9yKGdyZXksIHhsaWdodCksIDUlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuZXZlbnRfX2Fycm93IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJi4tZ3JpZCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgQGV4dGVuZCAuZ3JpZDtcbiAgICBAZXh0ZW5kIC4tY29sMy0xO1xuXG4gICAgLmV2ZW50X19kZXNjcmlwdGlvbiB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5ldmVudCB7XG4gICAgICBtYXJnaW4tdG9wOiBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nU21hbGwnKTtcbiAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICAuZXZlbnRfX2Fycm93IHtcbiAgICAgICAgICByaWdodDogMTBweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGltZyB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAuYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLi1wcm9tbyB7XG4gICAgICBwYWRkaW5nOiAwIDEwcHg7XG4gICAgfVxuXG4gICAgLmV2ZW50X19tZXRhIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDUwcHg7XG4gICAgfVxuICB9XG59XG5cbi5ldmVudCB7XG4gIEBpbmNsdWRlIHRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvcik7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGNvbG9yOiBjb2xvcihibHVlKTtcbiAgcGFkZGluZzogc2V0dGluZygnZ3V0dGVyUGFkZGluZ1NtYWxsJykgc2V0dGluZygnZ3V0dGVyUGFkZGluZ1NtYWxsJyk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgcGFkZGluZzogc2V0dGluZygnZ3V0dGVyUGFkZGluZ1NtYWxsJykgc2V0dGluZygnZ3V0dGVyUGFkZGluZycpO1xuICB9XG5cbiAgPiBwIHtcbiAgICBmb250LXNpemU6IDAuODEzZW07XG4gIH1cblxufVxuXG4uZXZlbnRfX2ltYWdlIHtcbiAganVzdGlmeS1zZWxmOiBjZW50ZXI7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50Lm1lZGl1bScpKSB7XG4gICAganVzdGlmeS1zZWxmOiBhdXRvO1xuICB9XG59XG5cbi5ldmVudF9fdGl0bGUge1xuICBmb250LWZhbWlseTogJG9wZW5TYW5zO1xuICBmb250LXNpemU6IDEuMTI1ZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIC8vbGluZS1oZWlnaHQ6IDEuMTU7XG5cbiAgLy9AaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubWVkaXVtJykpIHtcbiAgLy8gIGZvbnQtc2l6ZTogMS43NWVtO1xuICAvLyAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgLy99XG4gIC8vXG4gIC8vQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LmxhcmdlJykpIHtcbiAgLy8gIGZvbnQtc2l6ZTogMS44NzVlbTtcbiAgLy99XG4gIC8vXG4gIC8vQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LnhsYXJnZScsICRldmVudCkpIHtcbiAgLy8gIGZvbnQtc2l6ZTogMi4xMjVlbTtcbiAgLy8gIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICAvL31cbn1cblxuLmV2ZW50X19tZXRhIHtcbiAgZm9udC1mYW1pbHk6ICRiYXNrZXJ2aWxsZTtcbiAgZm9udC1zaXplOiAuOTM4ZW07XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIHAge1xuICAgIG1hcmdpbjogMDtcbiAgfVxufVxuXG4uZXZlbnRfX2J1dHRvbiB7XG5cbn1cblxuLmV2ZW50X19hcnJvdyB7XG4gIEBpbmNsdWRlIHRyYW5zaXRpb24ocmlnaHQpO1xuICBjb2xvcjogY29sb3IocHVycGxlKTtcbiAgZm9udC1zaXplOiA2NHB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAyMHB4O1xuICB0b3A6IC0yMHB4O1xufVxuXG4uZXZlbnRfX2N0YSB7XG4gIGhlaWdodDogMTAwJTtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgcGFkZGluZzogc2V0dGluZygnZ3V0dGVyUGFkZGluZ1NtYWxsJyk7XG5cbiAgJi4tcHJvbW8ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKG9yYW5nZSk7XG5cbiAgfVxuXG4gIHAge1xuICAgIGNvbG9yOiBjb2xvcihncmV5LCB4bGlnaHQpO1xuICAgIGZvbnQtZmFtaWx5OiAkYmFza2VydmlsbGU7XG4gICAgZm9udC1zaXplOiAxLjEyNWVtO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBtYXJnaW46IC41ZW0gMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbn1cbiIsIi5mZWF0dXJlZC1lbnRyeSB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG59XG5cbi5mZWF0dXJlZC1lbnRyeV9fZ3JpZCB7XG4gIEBleHRlbmQgLi1mZWF0dXJlZC1lbnRyeS1ncmlkO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmc6IHNldHRpbmcoJ2d1dHRlclBhZGRpbmcnKSAwO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgcGFkZGluZzogc2V0dGluZygnZ3V0dGVyUGFkZGluZycpIDkwcHg7XG4gIH1cbn1cblxuLmZlYXR1cmVkLWVudHJ5X19jb250ZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHotaW5kZXg6IDIwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50Lm1lZGl1bScpKSB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIH1cbn1cblxuLmZlYXR1cmVkLWVudHJ5X19jb250ZW50X19oZWFkbGluZSBwLFxucC5mZWF0dXJlZC1lbnRyeV9fY29udGVudF9faGVhZGxpbmUge1xuICBmb250LWZhbWlseTogJGJhc2tlcnZpbGxlO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtc2l6ZTogMS4xODhlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG5cbi5mZWF0dXJlZC1lbnRyeV9faW1hZ2UuLXN2ZyB7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLmZlYXR1cmVkLWVudHJ5X19jdGFfX2NvbnRlbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gIC5idXR0b24ge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5tZWRpdW0nKSkge1xuICAgICAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XG4gICAgfVxuICB9XG59IiwiLmZlYXR1cmVkLWV2ZW50X19jb250YWluZXIge1xuICAgIHBhZGRpbmc6IHNldHRpbmcoJ2d1dHRlclBhZGRpbmdTbWFsbCcpIHNldHRpbmcoJ2d1dHRlclBhZGRpbmdTbWFsbCcpO1xuICAgIG1hcmdpbjogc2V0dGluZygnZ3V0dGVyUGFkZGluZ1NtYWxsJykgMDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgICBwYWRkaW5nOiBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nU21hbGwnKSBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nJyk7XG4gICAgfVxuXG4gIGgyIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB9XG5cbiAgPiBwIHtcbiAgICBmb250LXNpemU6IDEuMTg4ZW07XG4gICAgbWFyZ2luLWJvdHRvbTogc2V0dGluZygnZ3V0dGVyUGFkZGluZ1NtYWxsJyk7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxufVxuXG4uZmVhdHVyZWQtZXZlbnQge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbn1cblxuLy8uZmVhdHVyZWQtZXZlbnRfX2dyaWQge1xuLy8gIEBleHRlbmQgLi1mZWF0dXJlZC1ldmVudC1ncmlkO1xuLy8gIGhlaWdodDogMTAwJTtcbi8vICBhbGlnbi1pdGVtczogY2VudGVyO1xuLy8gIHBhZGRpbmc6IHNldHRpbmcoJ2d1dHRlclBhZGRpbmcnKSAwO1xuLy9cbi8vICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubGFyZ2UnKSkge1xuLy8gICAgcGFkZGluZzogc2V0dGluZygnZ3V0dGVyUGFkZGluZycpIDkwcHg7XG4vLyAgfVxuLy99XG5cbi5mZWF0dXJlZC1ldmVudF9fY29udGVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB6LWluZGV4OiAyMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5tZWRpdW0nKSkge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICB9XG59XG5cbi5mZWF0dXJlZC1ldmVudF9fY29udGVudF9faGVhZGxpbmUge1xuICBmb250LWZhbWlseTogJGJhc2tlcnZpbGxlO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtc2l6ZTogMS4xODhlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG5cbi5mZWF0dXJlZC1ldmVudF9faW1hZ2Uge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmZlYXR1cmVkLWV2ZW50X19jdGFfX2NvbnRlbnQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubWVkaXVtJykpIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICB9XG5cbiAgICAuYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubWVkaXVtJykpIHtcbiAgICAgIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuICAgIH1cbiAgfVxufVxuXG4uZmVhdHVyZWQtZXZlbnRfX21ldGEge1xuICBmb250LWZhbWlseTogJG9wZW5TYW5zO1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IDEuMDYzZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICBwIHtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgfVxufSIsIi5nbG9iYWwtZm9vdGVyX19jb250YWN0LWluZm8ge1xuICBsaW5lLWhlaWdodDogMS42N2VtO1xuXG4gIGEge1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBmb250LXdlaWdodDogMzAwO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAuMjVzO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogY29sb3IoZ3JheSwgbGlnaHQpO1xuICAgIH1cbiAgfVxufVxuIiwiLmdsb2JhbC1mb290ZXJfX25hdiB7XG4gIHVsIHtcbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgbGkge1xuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICB9XG4gIH1cblxuICBhIHtcbiAgICBjb2xvcjogY29sb3IoZ3JheSwgbGlnaHQpO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAuMjVzO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogY29sb3IoZ3JheSk7XG4gICAgfVxuICB9XG59XG4iLCIuZ2xvYmFsLWZvb3Rlcl9fcGFydG5lcnMge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG5cbiAgbGkge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbjogMCAuNzVlbTtcbiAgfVxuXG4gIGltZyxcbiAgc3ZnIHtcbiAgICBtYXgtaGVpZ2h0OiA0MXB4O1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG5cbiAgc3ZnIHBhdGgsXG4gIHN2ZyByZWN0LFxuICBzdmcgcG9seWdvbiB7XG4gICAgZmlsbDogY29sb3IoZ3JheSk7XG4gIH1cblxuICAjdG5jYy1sb2dvIHtcbiAgICBoZWlnaHQ6IDMycHg7XG4gIH1cblxuICAjdG5lY2FtcHVzLWxvZ28ge1xuICAgIGhlaWdodDogMjhweDtcbiAgfVxuXG4gICNwYXRod2F5LWxvZ28ge1xuICAgIGhlaWdodDogMjBweDtcbiAgfVxuXG4gICN3b3JrZm9yY2UtbG9nbyB7XG4gICAgaGVpZ2h0OiAzMHB4O1xuICB9XG59XG4iLCIuZ3JpZC10aXRsZSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5tZWRpdW0nKSkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IC44ZW07XG4gICAgd2lkdGg6IDMwJTtcbiAgfVxufVxuIiwiLmdyaWQtZmlsdGVycyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5tZWRpdW0nKSkge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICB3aWR0aDogNzAlO1xuICB9XG5cbiAgLmdyaWQtaXRlbSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4uZ3JpZC1maWx0ZXJzX19ncm91cCB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCBjb2xvcihncmF5LCB4bGlnaHQpO1xuICAgIHBhZGRpbmctbGVmdDogZ3V0dGVyKDkpO1xuICB9XG5cbiAgJjpmaXJzdC1vZi10eXBlIHtcbiAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gIH1cbn1cbiIsIi5pY29uLWxpbmtzIHtcbiAgcGFkZGluZy10b3A6IHNldHRpbmcoJ2d1dHRlclBhZGRpbmcnKTtcbiAgcGFkZGluZy1ib3R0b206IHNldHRpbmcoJ2d1dHRlclBhZGRpbmcnKTtcblxuICBhOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAmOmFmdGVye1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAtMjBweDtcbiAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgIzk3OTc5NztcbiAgICB9XG4gIH1cbiAgYSB7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yKTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWV2ZW5seTtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IoZ3JleSwgeGxpZ2h0KTtcbiAgICB9XG4gIH1cblxuICBpbWcge1xuICAgIHdpZHRoOiA2MHB4O1xuICB9XG5cbiAgaDQge1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbWFyZ2luOiAwO1xuICB9XG59IiwiLmxhYmVsIHtcbiAgZm9udC1zaXplOiAuODEyNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbWFyZ2luOiAxZW0gMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDVweDtcblxuICAmLi13aGl0ZSB7XG4gICAgY29sb3I6IHdoaXRlO1xuICB9XG5cbiAgJi4tZ3JheSB7XG4gICAgY29sb3I6IGNvbG9yKGdyYXkpO1xuICB9XG5cbiAgJi4tZ3JlZW4ge1xuICAgIGNvbG9yOiBsaWdodGVuKGNvbG9yKGdyZWVuKSwgMjAlKTtcbiAgfVxufVxuIiwiLmxpc3RpbmctYmxvY2sge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWluLWhlaWdodDogMjMwcHg7XG4gIG91dGxpbmU6IG5vbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmxpc3RpbmctYmxvY2tfX2ltYWdlIHtcbiAgb3BhY2l0eTogLjg1O1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IC41cztcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgLW1vei1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuXG4gIC5saXN0aW5nLWJsb2NrOmhvdmVyICYge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIC1tb3otYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICB9XG5cbiAgJi4tbm8taW1hZ2Uge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKGdyYXksIGxpZ2h0KTtcbiAgICBtaW4taGVpZ2h0OiAxNzZweDtcbiAgfVxufVxuXG4ubGlzdGluZy1ibG9ja19fY2FwdGlvbiB7XG4gIGNvbG9yOiBjb2xvcihncmF5KTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBtYXJnaW4tdG9wOiAuNWVtO1xufVxuIiwiLmxpc3RpbmctY29udGFpbmVyIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC1yb3ctZ2FwOiBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nJyk7XG4gIGdyaWQtYXV0by1yb3dzOiAxZnI7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQuc21hbGwnKSkge1xuICAgICAgZ3JpZC1yb3ctZ2FwOiBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nTGFyZ2UnKTtcbiAgICB9XG4gIH1cblxuLmxpc3RpbmctaXRlbSB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtY29sdW1uLWdhcDogNDBweDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxMDAlO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5tZWRpdW0nKSkge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMzUlIGF1dG87XG4gIH1cblxuICBpbWcge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5cbi5saXN0aW5nLWl0ZW1fX2ltYWdlIHtcbiAgZ3JpZC1jb2x1bW46IDE7XG4gIGFsaWduLXNlbGY6IHN0YXJ0O1xufVxuXG4ubGlzdGluZy1pdGVtX19oZWFkaW5nIHtcbiAgaDEge1xuICAgIGZvbnQtZmFtaWx5OiAkb3BlblNhbnNDb25kZW5zZWQ7XG4gICAgZm9udC1zaXplOiAxLjE4OHJlbTtcbiAgfVxuICBwIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cbn1cblxuLmxpc3RpbmctaXRlbV9fc3ViaGVhZCBwIHtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbn1cblxuLmxpc3RpbmctaXRlbV9fY29udGVudCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50Lm1lZGl1bScpKSB7XG4gICAgZ3JpZC1jb2x1bW46IDI7XG4gIH1cbiAgYSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG59XG5cbi5saXN0aW5nLWl0ZW1fX2Rlc2NyaXB0aW9uIHtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbn1cblxuLmxpc3RpbmctaXRlbV9fdGFncyB7XG4gIG1hcmdpbi10b3A6IGF1dG87XG4gIGZvbnQtc2l6ZTogMC43NWVtO1xuICBmb250LXdlaWdodDogMzAwO1xuICBjb2xvcjogY29sb3IoYmx1ZSk7XG5cbiAgYSB7XG4gICAgY29sb3I6IGNvbG9yKGJsdWUpO1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIHRyYW5zaXRpb246IGNvbG9yIC4ycztcblxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6IGxpZ2h0ZW4oY29sb3IoYmx1ZSksIDIwJSk7XG4gICAgfVxuICB9XG59XG5cbi5saXN0aW5nLWl0ZW1fX2J1dHRvbiB7XG4gIG1hcmdpbi10b3A6IGF1dG87XG59IiwiLmxvZ28ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiBzZXR0aW5nKCdnbG9iYWwuaGVhZGVyLmhlaWdodC5tZWRpdW0nKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiA5MDtcbiAgaGVpZ2h0OiA4NXB4O1xuICB3aWR0aDogODVweDtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubGFyZ2UnKSkge1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxuXG4gIGEge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cblxuICBpbWcge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAuMnM7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogNTAlO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgfVxuXG4gICY6aG92ZXIgaW1nIHtcbiAgICBvcGFjaXR5OiAuNzU7XG4gIH1cblxuICAuZ2xvYmFsLWhlYWRlciAmIHtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6IDc3cHg7XG4gICAgaGVpZ2h0OiAxMDNweDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIHdpZHRoOiA3N3B4O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC54bGFyZ2UnKSkge1xuICAgICAgd2lkdGg6IDc3cHg7XG4gICAgfVxuICB9XG59IiwiJG1lZGlhOiAoXG4gIGZsb2F0czogbGVmdCByaWdodCxcbiAgd2lkZTogKFxuICAgIGJyZWFrcG9pbnQ6IGVtKDEwODRweCArIHNldHRpbmcoJ2d1dHRlclBhZGRpbmcnKSArIHNldHRpbmcoJ2d1dHRlclBhZGRpbmcnKSksXG4gICAgd2lkdGg6IDEwODRweFxuICApXG4pO1xuXG4ubWVkaWEge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgbWF4LXdpZHRoOiA4NjhweDtcbiAgbWFyZ2luOiA0MHB4IGF1dG8gNTBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdpZHRoOiAxMDAlO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5tZWRpdW0nKSkge1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCd3aWRlLmJyZWFrcG9pbnQnLCAkbWVkaWEpKSB7XG4gICAgbWFyZ2luOiA1MHB4IGF1dG87XG4gIH1cblxuICAuZW1iZWQge1xuICAgIHBhZGRpbmctYm90dG9tOiA1Ni4yNSU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgXG4gICAgLnBob3RvIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIG1hcmdpbjogYXV0bztcbiAgICB9XG4gIH1cblxuICAvLyBNb2RpZmllcnNcblxuICAmLi13aWRlIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ3dpZGUuYnJlYWtwb2ludCcsICRtZWRpYSkpIHtcbiAgICAgIHdpZHRoOiBzZXR0aW5nKCd3aWRlLndpZHRoJywgJG1lZGlhKTtcbiAgICB9XG4gIH1cblxuICBAZWFjaCAkZGlyZWN0aW9uIGluIHNldHRpbmcoJ2Zsb2F0cycsICRtZWRpYSkge1xuICAgICRjbGFzc25hbWU6IC0jeyRkaXJlY3Rpb259O1xuICAgICRvcHBvc2l0ZTogaWYoJGRpcmVjdGlvbiA9PSAnbGVmdCcsIHJpZ2h0LCBsZWZ0KTtcblxuICAgICYuI3skY2xhc3NuYW1lfSB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KDQ4MHB4KSB7XG4gICAgICAgIGZsb2F0OiAkZGlyZWN0aW9uO1xuICAgICAgICBtYXJnaW4tI3skb3Bwb3NpdGV9OiBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nJyk7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQod2lkdGggNDgwcHggNTk5cHgpIHtcbiAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCg4MDBweCkge1xuICAgICAgICBtYXJnaW4tI3skZGlyZWN0aW9ufTogLSN7c2V0dGluZygnZ3V0dGVyUGFkZGluZycpICogMn07XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnZpZGVvLWVtYmVkLCBpbWcge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG5cbiAgJi4tcmlnaHQge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoODAwcHgpIHtcbiAgICAgIG1hcmdpbi1yaWdodDogLSN7c2V0dGluZygnZ3V0dGVyUGFkZGluZycpfTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ3dpZGUuYnJlYWtwb2ludCcsICRtZWRpYSkpIHtcbiAgICAgIG1hcmdpbi10b3A6IDQ1cHg7XG4gICAgfVxuICB9XG5cbiAgJi4td2lkdGgtNzUge1xuICAgIHdpZHRoOiA3NSU7XG4gIH1cblxuICAmLi13aWR0aC02NiB7XG4gICAgd2lkdGg6IDY2JTtcbiAgfVxuXG4gICYuLXdpZHRoLTUwIHtcbiAgICB3aWR0aDogNTAlO1xuICB9XG5cbiAgJi4td2lkdGgtMzMge1xuICAgIHdpZHRoOiAzMyU7XG4gIH1cblxuICAmLi13aWR0aC0yNSB7XG4gICAgd2lkdGg6IDI1JTtcbiAgfVxuXG5cbiAgLy8gQ29tcG9uZW50c1xuXG4gIC5tZWRpYV9fY29udGVudCB7XG4gICAgbWFyZ2luLXRvcDogMzBweDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoNDAwcHgpIHtcbiAgICAgIG1hcmdpbjogMjhweCBhdXRvIDA7XG4gICAgICB3aWR0aDogNzUlO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnd2lkZS5icmVha3BvaW50JywgJG1lZGlhKSkge1xuICAgICAgbWFyZ2luOiA0OHB4IGF1dG8gMDtcbiAgICAgIHdpZHRoOiBwZXJjZW50KDYwNHB4LCA4NjhweCk7XG4gICAgfVxuICB9XG59IiwiLm92ZXJ2aWV3ICB7XG4gIHBhZGRpbmctYm90dG9tOiBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nJyk7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LmxhcmdlJykpIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogc2V0dGluZygnZ3V0dGVyUGFkZGluZ0xhcmdlJyk7XG4gIH1cblxuICAmLi1zbWFsbHtcbiAgICBwYWRkaW5nLWJvdHRvbTogc2V0dGluZygnZ3V0dGVyUGFkZGluZ1NtYWxsJyk7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubGFyZ2UnKSkge1xuICAgICAgcGFkZGluZy1ib3R0b206IHNldHRpbmcoJ2d1dHRlclBhZGRpbmcnKTtcbiAgICB9XG4gIH1cblxuICBwIHtcbiAgICBmb250LXNpemU6IDFlbTtcbiAgICBtYXJnaW46IDA7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQuc21hbGwnKSkge1xuICAgICAgZm9udC1zaXplOiAxLjE4OGVtO1xuICAgIH1cbiAgfVxufSIsIi5idXJnZXIge1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIGhlaWdodDogc2V0dGluZygnZ2xvYmFsLmhlYWRlci5oZWlnaHQubWVkaXVtJyk7XG4gIG91dGxpbmU6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDA7XG4gIHRvcDogMDtcbiAgcGFkZGluZy1yaWdodDogc2V0dGluZygnZ3V0dGVyUGFkZGluZ1NtYWxsJyk7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuXG4gICY6YWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5tZWRpdW0nKSkge1xuICAgIHBhZGRpbmctcmlnaHQ6IHNldHRpbmcoJ2d1dHRlclBhZGRpbmcnKTtcbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4uYnVyZ2VyX19pY29uIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHdpZHRoOiBhdXRvO1xufVxuXG4uYnVyZ2VyX19pY29uX19iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcihibHVlKTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogM3B4O1xuICBtYXJnaW46IDVweCBhdXRvO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIC4yNXMsIG1hcmdpbiAuMjVzIGVhc2UsIHRyYW5zZm9ybSAuNXMgZWFzZTtcbiAgd2lkdGg6IDI1cHg7XG5cbiAgLmJ1cmdlcjpob3ZlciAmIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKGNvbG9yKGJsdWUpLCAyNSUpO1xuICB9XG5cbiAgLmJ1cmdlci5pcy1hY3RpdmUgJi4tdG9wIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSg4cHgpIHJvdGF0ZVooNDVkZWcpO1xuICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDhweCkgcm90YXRlWig0NWRlZyk7XG4gICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSg4cHgpIHJvdGF0ZVooNDVkZWcpO1xuICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlWSg4cHgpIHJvdGF0ZVooNDVkZWcpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg4cHgpIHJvdGF0ZVooNDVkZWcpO1xuICB9XG5cbiAgLmJ1cmdlci5pcy1hY3RpdmUgJi4tbWlkZGxlIHtcbiAgICB3aWR0aDogMDtcbiAgfVxuXG4gIC5idXJnZXIuaXMtYWN0aXZlICYuLWJvdHRvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLThweCkgcm90YXRlWigtNDVkZWcpO1xuICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC04cHgpIHJvdGF0ZVooLTQ1ZGVnKTtcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC04cHgpIHJvdGF0ZVooLTQ1ZGVnKTtcbiAgICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLThweCkgcm90YXRlWigtNDVkZWcpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtOHB4KSByb3RhdGVaKC00NWRlZyk7XG4gIH1cbn1cblxuLmJ1cmdlcl9fdGV4dCB7XG4gIGNvbG9yOiBjb2xvcihibHVlKTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsb2F0OiBsZWZ0O1xuICBmb250LXNpemU6IC43NWVtO1xuICBsZXR0ZXItc3BhY2luZzogMnB4O1xuICBtYXJnaW4tcmlnaHQ6IC43NWVtO1xuICBwYWRkaW5nOiAuNWVtIDA7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHRyYW5zaXRpb246IGNvbG9yIC4yNXM7XG5cbiAgLmJ1cmdlcjpob3ZlciAmIHtcbiAgICBjb2xvcjogbGlnaHRlbihjb2xvcihibHVlKSwgMjUlKTtcbiAgfVxufVxuIiwiLm5hdi1saW5rIHtcbiAgQGluY2x1ZGUgdHJhbnNpdGlvbihjb2xvcik7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG5cbiAgLy8gU3RhdGVzXG5cbiAgJjphY3RpdmUsXG4gICY6YWN0aXZlOmZvY3VzIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cblxuICAmOmZvY3VzIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cblxuICAvLyBUeXBlc1xuXG4gICYuLXByaW1hcnkge1xuICAgIGNvbG9yOiBjb2xvcihibHVlKTtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBwYWRkaW5nOiBzZXR0aW5nKCdndXR0ZXInKSBzZXR0aW5nKCdndXR0ZXInKSAxNXB4O1xuICAgIHotaW5kZXg6IDM7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubGFyZ2UnKSkge1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgcGFkZGluZzogNDFweCAxNXB4O1xuICAgICAgZm9udC1zaXplOiAuOXJlbTtcbiAgICB9XG5cbiAgICAucHJpbWFyeS1uYXYuZXhwYW5kZWQgJiB7XG4gICAgICBjb2xvcjogY29sb3IoYmx1ZSk7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogbGlnaHRlbihjb2xvcihibHVlKSwgNSUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5wcmltYXJ5LW5hdiA+IGxpOmhvdmVyICYge1xuICAgICAgY29sb3I6IGxpZ2h0ZW4oY29sb3IoYmx1ZSksIDUlKTtcbiAgICB9XG5cbiAgICAucHJpbWFyeS1uYXYgPiAuLWN1cnJlbnQgJiB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubGFyZ2UnKSkge1xuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogNHB4IHNvbGlkIGNvbG9yKG9yYW5nZSk7XG4gICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHRvcDogY2FsYyg0MXB4ICsgMTZweCArIDVweCk7XG4gICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDMwcHgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubGFyZ2UnKSkge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnByaW1hcnktbmF2ID4gbGk6aG92ZXIgJi4tYWN0aXZlLFxuICAgIC5wcmltYXJ5LW5hdiA+IGxpOmhvdmVyICY6aG92ZXIsXG4gICAgLnByaW1hcnktbmF2ID4gbGk6aG92ZXIgJjphY3RpdmUsXG4gICAgLnByaW1hcnktbmF2ID4gbGk6aG92ZXIgJjpmb2N1cyB7XG4gICAgICBjb2xvcjogbGlnaHRlbihjb2xvcihibHVlKSwgMjUlKTtcbiAgICB9XG4gIH1cblxuICAmLi1kcm9wZG93bi1saW5rIHtcbiAgICBjb2xvcjogY29sb3IoYmx1ZSk7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgcGFkZGluZzogLjRlbSAxZW07XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubGFyZ2UnKSkge1xuICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgcGFkZGluZy1sZWZ0OiAxM3B4O1xuICAgICAgcGFkZGluZy1yaWdodDogMTNweDtcbiAgICAgIHBhZGRpbmctdG9wOiAxMHB4O1xuICAgIH1cblxuICAgIC5wcmltYXJ5LW5hdiAmIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICAgIG1hcmdpbjogMCA1JSAxNHB4IDA7XG4gICAgICAgIG1pbi13aWR0aDogMTQwcHg7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi4tYWN0aXZlLFxuICAgICY6aG92ZXIsXG4gICAgJjphY3RpdmUsXG4gICAgJjpmb2N1cyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubGFyZ2UnKSkge1xuICAgICAgICBjb2xvcjogbGlnaHRlbihjb2xvcihibHVlKSwgMjUlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLi1zZWNvbmRhcnkge1xuICAgIGNvbG9yOiBjb2xvcihncmV5LCBsaWdodCk7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgcGFkZGluZzogMCAxZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuICAgICY6aG92ZXIsXG4gICAgJjphY3RpdmUsXG4gICAgJjpmb2N1cyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubGFyZ2UnKSkge1xuICAgICAgICBjb2xvcjogbGlnaHRlbihjb2xvcihncmV5LCBsaWdodCksIDI1JSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi5uYXYtbGluay1idXR0b24ge1xuICBAaW5jbHVkZSBzaXplKDUycHgpO1xuICBjb2xvcjogY29sb3IoZ3JheSk7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRvcDogMDtcblxuICAuZ2xvYmFsLWhlYWRlciAmIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubGFyZ2UnKSkge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAmLmlzLWFjdGl2ZSxcbiAgJjpob3ZlcixcbiAgJjphY3RpdmUsXG4gICY6Zm9jdXMge1xuICAgIGNvbG9yOiBjb2xvcihibHVlKTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cblxuICBsYWJlbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiA1MCU7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICB9XG5cbiAgaS5pY29uLXBsdXMsXG4gIGkuaWNvbi1taW51cyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICBpLmljb24tbWludXMge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICBpLmljb24tcGx1cyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAmLmlzLWFjdGl2ZSB7XG4gICAgaS5pY29uLXBsdXMge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICBpLmljb24tbWludXMge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgKyAubmF2LW1lbnUgbmF2IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxuXG4gIC5wcmltYXJ5LW5hdiAmIHtcbiAgICB6LWluZGV4OiAzO1xuICB9XG59XG4iLCIubmF2LW1lbnUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyLWJvdHRvbTogN3B4IHNvbGlkIGNvbG9yKG9yYW5nZSk7XG4gIHBhZGRpbmc6IDI1cHggMjBweDtcbiAgbWluLXdpZHRoOiA0MjBweDtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubGFyZ2UnKSkge1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgY29sb3IoZ3JleSwgbGlnaHQpO1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIGNvbG9yKGdyZXksIGxpZ2h0KTtcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIGNvbG9yKGdyZXksIGxpZ2h0KTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIH1cblxuICAucHJpbWFyeS1uYXYgJiB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LmxhcmdlJykpIHtcbiAgICAgIG1hcmdpbi10b3A6IC0xcHg7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMHM7IC8vIDBzIHRyYW5zaXRpb24gc28gdGhhdCB3ZSBjYW4gZ2V0IHRoZSB0cmFuc2l0aW9uLWRlbGF5IGJ1dCB3aXRob3V0IGFueSBhbmltYXRpb24uXG4gICAgICB0cmFuc2l0aW9uLWRlbGF5OiAuMzVzO1xuICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDJweCA3cHggMCByZ2JhKDAsMCwwLDAuMTYpO1xuICAgICAgLW1vei1ib3gtc2hhZG93OiAwIDJweCA3cHggMCByZ2JhKDAsMCwwLDAuMTYpO1xuICAgICAgYm94LXNoYWRvdzogMCAycHggN3B4IDAgcmdiYSgwLDAsMCwwLjE2KTtcblxuICAgICAgJjpub3QoLmVkZ2UpOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBsZWZ0OiAxOXB4O1xuICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICBib3JkZXItbGVmdDogMjFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAyMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItYm90dG9tOiAyMXB4IHNvbGlkICNEREREREQ7XG4gICAgICAgIHRvcDogLTIxcHg7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIH1cblxuICAgICAgJjpub3QoLmVkZ2UpOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGxlZnQ6IDIwcHg7XG4gICAgICAgIHdpZHRoOiAwO1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAyMHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItcmlnaHQ6IDIwcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDIwcHggc29saWQgd2hpdGU7XG4gICAgICAgIHRvcDogLTIwcHg7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIH1cblxuICAgICAgJi5lZGdlIHtcbiAgICAgICAgcmlnaHQ6IDA7XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIHJpZ2h0OiAxOXB4O1xuICAgICAgICAgIHdpZHRoOiAwO1xuICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgICBib3JkZXItbGVmdDogMjFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICBib3JkZXItcmlnaHQ6IDIxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogMjFweCBzb2xpZCAjREREREREO1xuICAgICAgICAgIHRvcDogLTIxcHg7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgcmlnaHQ6IDIwcHg7XG4gICAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICAgIGJvcmRlci1sZWZ0OiAyMHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgIGJvcmRlci1yaWdodDogMjBweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICBib3JkZXItYm90dG9tOiAyMHB4IHNvbGlkIHdoaXRlO1xuICAgICAgICAgIHRvcDogLTIwcHg7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnByaW1hcnktbmF2ID4gbGk6aG92ZXIgJiB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LmxhcmdlJykpIHtcbiAgICAgICY6bm90KC4tZG9jcy10YWcpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnByaW1hcnktbmF2ID4gbGk6aG92ZXIge1xuICAgICYuLWRvY3Mge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LmxhcmdlJykpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG5cbiAgLmNvbnRhaW5lciA+IG5hdiB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIC13ZWJraXQtY29sdW1uczogMjIwcHggMjtcbiAgICAtbW96LWNvbHVtbnM6IDIyMHB4IDI7XG4gICAgY29sdW1uczogMjIwcHggMjtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIGNvbG9yKGdyYXksIGRhcmspO1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgbWFyZ2luOiA0MHB4IDA7XG4gICAgICBwYWRkaW5nOiAxMHB4IDU1cHg7XG4gICAgICB3aWR0aDogNTIlO1xuXG4gICAgICB1bCB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGRpdntcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxLjVlbTtcbiAgICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgICAgIC13ZWJraXQtY29sdW1uLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgfVxuICB9XG5cbiAgaDMge1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgfVxuXG4gIC5uYXYtbWVudV9fc2VjdGlvbi1vdmVydmlldyB7XG4gICAgZGlzcGxheTogbm9uZTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBtaW4taGVpZ2h0OiAzMjVweDtcbiAgICAgIHBhZGRpbmc6IDUwcHggNSUgMCAyMiU7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB3aWR0aDogNDglO1xuICAgIH1cblxuICAgIGgzIHtcbiAgICAgIGZvbnQtc2l6ZTogMi4xMjVlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgbWFyZ2luLXRvcDogMTFweDtcbiAgICB9XG5cbiAgICBwIHtcbiAgICAgIGNvbG9yOiBjb2xvcihncmF5LCBsaWdodCk7XG4gICAgICBmb250LXNpemU6IC44NzVlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjM3NTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICBtYXJnaW4tdG9wOiAxNHB4O1xuXG4gICAgfVxuXG4gICAgLnBob3RvIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKGdyYXkpO1xuICAgICAgbGVmdDogMDtcbiAgICAgIG1pbi1oZWlnaHQ6IDE2NXB4O1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgd2lkdGg6IDM4JTtcblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LnhsYXJnZScpKSB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDIyNXB4O1xuICAgICAgfVxuICAgIH1cblxuICAgIGEge1xuICAgICAgLy9iYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL2NoZXZyb24tcmlnaHQtZ3JlZW4ucG5nKSBuby1yZXBlYXQgcmlnaHQgNXB4O1xuICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIGxldHRlci1zcGFjaW5nOiAuNXB4O1xuICAgICAgcGFkZGluZy1yaWdodDogMjBweDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG4gIH1cbn0iLCIucHJpbWFyeS1uYXYge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcblxuICAuZ2xvYmFsLWhlYWRlciAmIHtcbiAgICBwYWRkaW5nLXRvcDogNTZweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubGFyZ2UnKSkge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgcGFkZGluZy1yaWdodDogNTVweDtcbiAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgdG9wOiAwO1xuICAgIH1cbiAgfVxuXG4gID4gLnByaW1hcnktbmF2X19pdGVtIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgY29sb3IoZ3JheSwgZGFyayk7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4zcztcblxuICAgICYuLWluYWN0aXZlIHtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LmxhcmdlJykpIHtcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG4gIH1cbn1cbiIsIi5nbG9iYWwtc2VhcmNoIHtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMDtcbiAgdG9wOiAxZW07XG4gIHdpZHRoOiAxMDAlO1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubGFyZ2UnKSkge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB0b3A6IGF1dG87XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbn1cblxuaW5wdXQuZ2xvYmFsLXNlYXJjaF9fYm94IHtcbiAgYWxpZ24tc2VsZjogY2VudGVyO1xuICBiYWNrZ3JvdW5kOiBjb2xvcihibHVlKTtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBib3gtc2hhZG93OiBub25lO1xuICBjb2xvcjogY29sb3IoZ3JleSwgeGxpZ2h0KTtcbiAgaGVpZ2h0OiAyNXB4O1xuICBwYWRkaW5nOiAuNGVtIDFlbTtcbiAgd2lkdGg6IDEwMCU7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcblxuICBAaW5jbHVkZSBwbGFjZWhvbGRlciB7XG4gICAgY29sb3I6IGNvbG9yKGdyZXksIGxpZ2h0KTtcbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIGxpZ2h0ZW4oY29sb3IoYmx1ZSksIDI1JSk7XG4gICAgbWFyZ2luOiAwIDAuNWVtIDAgMDtcbiAgICBwYWRkaW5nOiAwIDFlbSAwIDA7XG4gICAgY29sb3I6IGNvbG9yKGdyYXksIHhkYXJrKTtcblxuICAgIEBpbmNsdWRlIHBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiBjb2xvcihncmF5LCBkYXJrKTtcbiAgICB9XG4gIH1cblxuICAmOmFjdGl2ZSxcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmU6Zm9jdXMge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgb3V0bGluZTogMDtcbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgdHJhbnNpdGlvbjogd2lkdGggLjNzO1xuICAgIHdpZHRoOiAwO1xuXG4gICAgLmdsb2JhbC1zZWFyY2guLWFjdGl2ZSAmIHtcbiAgICAgIHdpZHRoOiA1MDBweDtcbiAgICAgIG1hcmdpbjogMCAwLjVlbSAwIDA7XG4gICAgfVxuICB9XG59XG5cbi5nbG9iYWwtc2VhcmNoX19idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IGNvbG9yKGJsdWUpO1xuICBkaXNwbGF5OiBub25lO1xuICBmb250LXNpemU6IDEuMzc1ZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdHJhbnNpdGlvbjogY29sb3IgLjNzO1xuICB6LWluZGV4OiA5MDtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubGFyZ2UnKSkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDM2cHggMTJweDtcbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIH1cblxuICAvLyBTdGF0ZXNcblxuICAuZ2xvYmFsLXNlYXJjaC4tYWN0aXZlICYsXG4gICY6aG92ZXIge1xuICAgIGNvbG9yOiBsaWdodGVuKGNvbG9yKGJsdWUpLCAyNSUpO1xuICB9XG5cbiAgJjphY3RpdmUsXG4gICY6YWN0aXZlOmZvY3VzLFxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiAwO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxufVxuIiwiLnNlY29uZGFyeS1uYXYge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IoYmx1ZSk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGhlaWdodDogc2V0dGluZygnZ2xvYmFsLmhlYWRlci5ib3JkZXJIZWlnaHQnKTtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG1hcmdpbi10b3A6IDA7XG4gIHBhZGRpbmctdG9wOiAwO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5zbWFsbCcpKSB7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBwYWRkaW5nLXJpZ2h0OiBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nJyk7XG4gIH1cblxufVxuIiwiLmRvY3Mtc2VhcmNoIHtcbiAgbWFyZ2luLXRvcDogMTVweDtcbn1cblxuaW5wdXQuZG9jcy1zZWFyY2hfX2JveCB7XG4gIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgY29sb3I6IGNvbG9yKGJsdWUpO1xuICBoZWlnaHQ6IDI1cHg7XG4gIHBhZGRpbmc6IC40ZW0gMWVtO1xuXG4gIEBpbmNsdWRlIHBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogY29sb3IoYmx1ZSk7XG4gIH1cblxuICAmOmFjdGl2ZSxcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmU6Zm9jdXMge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgb3V0bGluZTogMDtcbiAgfVxufVxuXG4uZG9jcy1zZWFyY2hfX2J1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogY29sb3IoYmx1ZSk7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGZvbnQtc2l6ZTogMS4zNzVlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0cmFuc2l0aW9uOiBjb2xvciAuM3M7XG4gIHotaW5kZXg6IDkwO1xuXG4gIC8vIFN0YXRlc1xuXG4gIC5kb2NzLXNlYXJjaC4tYWN0aXZlICYsXG4gICY6aG92ZXIge1xuICAgIGNvbG9yOiBsaWdodGVuKGNvbG9yKGJsdWUpLCAyNSUpO1xuICB9XG5cbiAgJjphY3RpdmUsXG4gICY6YWN0aXZlOmZvY3VzLFxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiAwO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxufSIsIi5oZXJvX19jb250ZW50IHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHotaW5kZXg6IDIwO1xufVxuXG5oMS5oZXJvX19jb250ZW50X19oZWFkbGluZSB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsaW5lLWhlaWdodDogMWVtO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC54c21hbGwnKSkge1xuICAgIGZvbnQtc2l6ZTogMi41ZW07XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQuc21hbGwnKSkge1xuICAgIGZvbnQtc2l6ZTogM2VtO1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5tZWRpdW0nKSkge1xuICAgIGZvbnQtc2l6ZTogMy43NWVtO1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LmxhcmdlJykpIHtcbiAgICBmb250LXNpemU6IDQuNWVtO1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LnhsYXJnZScpKSB7XG4gICAgZm9udC1zaXplOiA1LjI1ZW07XG4gIH1cbn1cblxuaDIuaGVyb19fY29udGVudF9faGVhZGxpbmUge1xuICBjb2xvcjogd2hpdGU7XG4gIGxpbmUtaGVpZ2h0OiA1MHB4O1xuICBmb250LXNpemU6IDIuMjVlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5tZWRpdW0nKSkge1xuICAgIGxpbmUtaGVpZ2h0OiA3MHB4O1xuICAgIGZvbnQtc2l6ZTogMy41ZW07XG4gIH1cbn1cblxuLmhlcm9fX2NvbnRlbnRfX2hlYWRsaW5lIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LWZhbWlseTogJG9wZW5TYW5zQ29uZGVuc2VkO1xuICBmb250LXdlaWdodDogNzAwO1xuICBtYXJnaW46IDAgMjVweCAwIDI1cHg7XG4gIHBhZGRpbmc6IDAgMTBweDtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubWVkaXVtJykpIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cbn0iLCIvL1RPRE86IGdldCBmb250IGFuZCBzaXplIHdoZW4gSSBnZXQgY29tcHMuXG4ucGFnZS10aXRsZSB7XG4gIGNvbG9yOiBjb2xvcihncmF5LCB4ZGFyayk7XG4gIGZvbnQtZmFtaWx5OiAkb3BlblNhbnM7XG4gIGZvbnQtc2l6ZTogMS43NWVtO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsZXR0ZXItc3BhY2luZzogLjVlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubWVkaXVtJykpIHtcbiAgICBmb250LXNpemU6IDJlbTtcbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgZm9udC1zaXplOiAyLjEyNWVtO1xuICB9XG5cbiAgJi4tc21hbGwge1xuICAgIGZvbnQtc2l6ZTogMS42MjVlbTtcbiAgfVxuXG4gICYuLXdoaXRlIHtcbiAgICBjb2xvcjogd2hpdGU7XG4gIH1cblxuICAmLi1jZW50ZXJlZCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG5cbiAgJi4tcGFkZGVkIHtcbiAgICBtYXJnaW46IDNlbSAwO1xuICB9XG5cbiAgJi4tcGFkZGVkLXRvcCB7XG4gICAgbWFyZ2luOiAzZW0gMCAwO1xuICB9XG5cbiAgJi4tcGFkZGVkLWJvdHRvbSB7XG4gICAgbWFyZ2luOiAwIDAgM2VtO1xuICB9XG59XG4iLCIucGhvdG8tZ2FsbGVyeS1Qcm9kdWN0TmF2X1dyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDAgMTFweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLnBob3RvLWdhbGxlcnktUHJvZHVjdE5hdiB7XG4gIC8qIE1ha2UgdGhpcyBzY3JvbGxhYmxlIHdoZW4gbmVlZGVkICovXG4gIG92ZXJmbG93LXg6IGF1dG87XG4gIC8qIFdlIGRvbid0IHdhbnQgdmVydGljYWwgc2Nyb2xsaW5nICovXG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgLyogRm9yIFdlYktpdCBpbXBsZW1lbnRhdGlvbnMsIHByb3ZpZGUgaW5lcnRpYSBzY3JvbGxpbmcgKi9cbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICAvKiBXZSBkb24ndCB3YW50IGludGVybmFsIGlubGluZSBlbGVtZW50cyB0byB3cmFwICovXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIC8qIElmIEpTIHByZXNlbnQsIGxldCdzIGhpZGUgdGhlIGRlZmF1bHQgc2Nyb2xsYmFyICovXG4gIC5qcyAmIHtcbiAgICAvKiBNYWtlIGFuIGF1dG8taGlkaW5nIHNjcm9sbGVyIGZvciB0aGUgMyBwZW9wbGUgdXNpbmcgYSBJRSAqL1xuICAgIC1tcy1vdmVyZmxvdy1zdHlsZTogLW1zLWF1dG9oaWRpbmctc2Nyb2xsYmFyO1xuICAgIC8qIFJlbW92ZSB0aGUgZGVmYXVsdCBzY3JvbGxiYXIgZm9yIFdlYktpdCBpbXBsZW1lbnRhdGlvbnMgKi9cbiAgICAmOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuICAvKiBwb3NpdGlvbmluZyBjb250ZXh0IGZvciBhZHZhbmNlcnMgKi9cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAvLyBDcnVzaCB0aGUgd2hpdGVzcGFjZSBoZXJlXG4gIGZvbnQtc2l6ZTogMDtcbn1cblxuLnBob3RvLWdhbGxlcnktUHJvZHVjdE5hdl9Db250ZW50cyB7XG4gIGZsb2F0OiBsZWZ0O1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjJzIGVhc2UtaW4tb3V0O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5waG90by1nYWxsZXJ5LVByb2R1Y3ROYXZfQ29udGVudHMtbm8tdHJhbnNpdGlvbiB7XG4gIHRyYW5zaXRpb246IG5vbmU7XG59XG5cbi5waG90by1nYWxsZXJ5LVByb2R1Y3ROYXZfTGluayB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6ICM4ODg7XG4gIC8vIFJlc2V0IHRoZSBmb250IHNpemVcbiAgZm9udC1zaXplOiAxLjJyZW07XG4gIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBzYW5zLXNlcmlmO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbWluLWhlaWdodDogNDRweDtcbiAgcGFkZGluZzogMCAxMXB4O1xuXG4gICZbYXJpYS1zZWxlY3RlZD1cInRydWVcIl0ge1xuICAgIGNvbG9yOiAjMTExO1xuICB9XG5cbiAgaW1nIHtcbiAgICBtYXgtd2lkdGg6IGluaXRpYWw7XG4gIH1cbn1cblxuLnBob3RvLWdhbGxlcnktQWR2YW5jZXIge1xuICAvKiBSZXNldCB0aGUgYnV0dG9uICovXG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7XG4gIHdpZHRoOiA4MHB4O1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiAwO1xuICB9XG4gICY6aG92ZXIge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICAvKiBOb3cgc3R5bGUgaXQgYXMgbmVlZGVkICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIC8qIFNldCB0aGUgYnV0dG9ucyBpbnZpc2libGUgYnkgZGVmYXVsdCAqL1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4zcztcbn1cblxuLnBob3RvLWdhbGxlcnktQWR2YW5jZXJfTGVmdCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgI2Y1ZjVmMCwgdHJhbnNwYXJlbnQsIHRyYW5zcGFyZW50KTtcbiAgbGVmdDogMDtcbiAgW2RhdGEtb3ZlcmZsb3dpbmc9XCJib3RoXCJdIH4gJixcbiAgW2RhdGEtb3ZlcmZsb3dpbmc9XCJsZWZ0XCJdIH4gJiB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG4ucGhvdG8tZ2FsbGVyeS1BZHZhbmNlcl9SaWdodCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBsZWZ0LCAjZjVmNWYwLCB0cmFuc3BhcmVudCwgdHJhbnNwYXJlbnQpO1xuICByaWdodDogMDtcbiAgW2RhdGEtb3ZlcmZsb3dpbmc9XCJib3RoXCJdICB+ICYsXG4gIFtkYXRhLW92ZXJmbG93aW5nPVwicmlnaHRcIl0gfiAmIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbi5waG90by1nYWxsZXJ5LUFkdmFuY2VyX0ljb24ge1xuICBmb250LXNpemU6IDUwcHg7XG4gIGNvbG9yOiBjb2xvcihibHVlKTtcbiAgb3BhY2l0eTogLjc7XG59XG5cbi5waG90by1nYWxsZXJ5LVByb2R1Y3ROYXZfSW5kaWNhdG9yIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIGhlaWdodDogNHB4O1xuICB3aWR0aDogMTAwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuMnMgZWFzZS1pbi1vdXQsIGJhY2tncm91bmQtY29sb3IgLjJzIGVhc2UtaW4tb3V0O1xufVxuXG5Aa2V5ZnJhbWVzIGx1bS1mYWRlIHtcbiAgMCUgeyBvcGFjaXR5OiAwOyB9XG4gIDEwMCUgeyBvcGFjaXR5OiAxOyB9XG59XG5cbkBrZXlmcmFtZXMgbHVtLWZhZGVab29tIHtcbiAgMCUgeyB0cmFuc2Zvcm06IHNjYWxlKDAuNSk7IG9wYWNpdHk6IDA7IH1cbiAgMTAwJSB7IHRyYW5zZm9ybTogc2NhbGUoMSk7IG9wYWNpdHk6IDE7IH1cbn1cblxuQGtleWZyYW1lcyBsdW0tbG9hZGVyLXJvdGF0ZSB7XG4gIDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgcm90YXRlKDApOyB9XG4gIDUwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIHJvdGF0ZSgtMTgwZGVnKTsgfVxuICAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgcm90YXRlKC0zNjBkZWcpOyB9XG59XG5cbkBrZXlmcmFtZXMgbHVtLWxvYWRlci1iZWZvcmUge1xuICAwJSB7IHRyYW5zZm9ybTogc2NhbGUoMSk7IH1cbiAgMTAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjIpIHRyYW5zbGF0ZVgoNnB4KTsgfVxuICAyNSUgeyB0cmFuc2Zvcm06IHNjYWxlKDEuMykgdHJhbnNsYXRlWCg4cHgpOyB9XG4gIDQwJSB7IHRyYW5zZm9ybTogc2NhbGUoMS4yKSB0cmFuc2xhdGVYKDZweCk7IH1cbiAgNTAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfVxuICA2MCUgeyB0cmFuc2Zvcm06IHNjYWxlKDAuOCkgdHJhbnNsYXRlWCg2cHgpOyB9XG4gIDc1JSB7IHRyYW5zZm9ybTogc2NhbGUoMC43KSB0cmFuc2xhdGVYKDhweCk7IH1cbiAgOTAlIHsgdHJhbnNmb3JtOiBzY2FsZSgwLjgpIHRyYW5zbGF0ZVgoNnB4KTsgfVxuICAxMDAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfVxufVxuXG5Aa2V5ZnJhbWVzIGx1bS1sb2FkZXItYWZ0ZXIge1xuICAwJSB7IHRyYW5zZm9ybTogc2NhbGUoMSk7IH1cbiAgMTAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjIpIHRyYW5zbGF0ZVgoLTZweCk7IH1cbiAgMjUlIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjMpIHRyYW5zbGF0ZVgoLThweCk7IH1cbiAgNDAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjIpIHRyYW5zbGF0ZVgoLTZweCk7IH1cbiAgNTAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfVxuICA2MCUgeyB0cmFuc2Zvcm06IHNjYWxlKDAuOCkgdHJhbnNsYXRlWCgtNnB4KTsgfVxuICA3NSUgeyB0cmFuc2Zvcm06IHNjYWxlKDAuNykgdHJhbnNsYXRlWCgtOHB4KTsgfVxuICA5MCUgeyB0cmFuc2Zvcm06IHNjYWxlKDAuOCkgdHJhbnNsYXRlWCgtNnB4KTsgfVxuICAxMDAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfVxufVxuXG4ubHVtLWxpZ2h0Ym94IHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjYpO1xuICB6LWluZGV4OiA5OTk7XG59XG5cbi5sdW0tbGlnaHRib3gtaW5uZXIge1xuICB0b3A6IDIuNSU7XG4gIHJpZ2h0OiAyLjUlO1xuICBib3R0b206IDIuNSU7XG4gIGxlZnQ6IDIuNSU7XG59XG5cbi5sdW0tbGlnaHRib3gtaW5uZXIgaW1nIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ubHVtLWxpZ2h0Ym94LWlubmVyIC5sdW0tbGlnaHRib3gtY2FwdGlvbiB7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBjb2xvcjogI2ZmZjtcbiAgbWF4LXdpZHRoOiA3MDBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ubHVtLWxvYWRpbmcgLmx1bS1saWdodGJveC1sb2FkZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgd2lkdGg6IDY2cHg7XG4gIGhlaWdodDogMjBweDtcbiAgYW5pbWF0aW9uOiBsdW0tbG9hZGVyLXJvdGF0ZSAxODAwbXMgaW5maW5pdGUgbGluZWFyO1xufVxuXG4ubHVtLWxpZ2h0Ym94LWxvYWRlcjpiZWZvcmUsIC5sdW0tbGlnaHRib3gtbG9hZGVyOmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIG1hcmdpbi10b3A6IC0xMHB4O1xuICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG59XG5cbi5sdW0tbGlnaHRib3gtbG9hZGVyOmJlZm9yZSB7XG4gIGxlZnQ6IDA7XG4gIGFuaW1hdGlvbjogbHVtLWxvYWRlci1iZWZvcmUgMTgwMG1zIGluZmluaXRlIGxpbmVhcjtcbn1cblxuLmx1bS1saWdodGJveC1sb2FkZXI6YWZ0ZXIge1xuICByaWdodDogMDtcbiAgYW5pbWF0aW9uOiBsdW0tbG9hZGVyLWFmdGVyIDE4MDBtcyBpbmZpbml0ZSBsaW5lYXI7XG4gIGFuaW1hdGlvbi1kZWxheTogLTkwMG1zO1xufVxuXG4ubHVtLWxpZ2h0Ym94Lmx1bS1vcGVuaW5nIHtcbiAgYW5pbWF0aW9uOiBsdW0tZmFkZSAxODBtcyBlYXNlLW91dDtcbn1cblxuLmx1bS1saWdodGJveC5sdW0tb3BlbmluZyAubHVtLWxpZ2h0Ym94LWlubmVyIHtcbiAgYW5pbWF0aW9uOiBsdW0tZmFkZVpvb20gMTgwbXMgZWFzZS1vdXQ7XG59XG5cbi5sdW0tbGlnaHRib3gubHVtLWNsb3Npbmcge1xuICBhbmltYXRpb246IGx1bS1mYWRlIDMwMG1zIGVhc2UtaW47XG4gIGFuaW1hdGlvbi1kaXJlY3Rpb246IHJldmVyc2U7XG59XG5cbi5sdW0tbGlnaHRib3gubHVtLWNsb3NpbmcgLmx1bS1saWdodGJveC1pbm5lciB7XG4gIGFuaW1hdGlvbjogbHVtLWZhZGVab29tIDMwMG1zIGVhc2UtaW47XG4gIGFuaW1hdGlvbi1kaXJlY3Rpb246IHJldmVyc2U7XG59XG5cbi5sdW0taW1nIHtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAxMjBtcyBlYXNlLW91dDtcbn1cblxuLmx1bS1sb2FkaW5nIC5sdW0taW1nIHtcbiAgb3BhY2l0eTogMDtcbn1cblxuLmx1bS1nYWxsZXJ5LWJ1dHRvbiB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtaW5kZW50OiAxNTAlO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAwO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIG91dGxpbmU6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgaGVpZ2h0OiAxMDBweDtcbiAgbWF4LWhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDYwcHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmx1bS1wcmV2aW91cy1idXR0b24ge1xuICBsZWZ0OiAxMnB4O1xufVxuXG4ubHVtLW5leHQtYnV0dG9uIHtcbiAgcmlnaHQ6IDEycHg7XG59XG5cbi5sdW0tZ2FsbGVyeS1idXR0b246YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgd2lkdGg6IDM2cHg7XG4gIGhlaWdodDogMzZweDtcbiAgYm9yZGVyLXRvcDogNHB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTtcbn1cblxuLmx1bS1wcmV2aW91cy1idXR0b246YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gIGJvcmRlci1sZWZ0OiA0cHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpO1xuICBib3gtc2hhZG93OiAtMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjIpO1xuICBsZWZ0OiAxMiU7XG4gIGJvcmRlci1yYWRpdXM6IDNweCAwIDAgMDtcbn1cblxuLmx1bS1uZXh0LWJ1dHRvbjphZnRlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICBib3JkZXItcmlnaHQ6IDRweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCk7XG4gIGJveC1zaGFkb3c6IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgcmlnaHQ6IDEyJTtcbiAgYm9yZGVyLXJhZGl1czogMCAzcHggMCAwO1xufVxuXG4vLy8qIFRoaXMgbWVkaWEgcXVlcnkgbWFrZXMgc2NyZWVucyBsZXNzIHRoYW4gNDYwcHggd2lkZSBkaXNwbGF5IGluIGEgXCJmdWxsc2NyZWVuXCItZXNxdWUgbW9kZS4gVXNlcnMgY2FuIHRoZW4gc2Nyb2xsIGFyb3VuZCBpbnNpZGUgdGhlIGxpZ2h0Ym94IHRvIHNlZSB0aGUgZW50aXJlIGltYWdlLiAqL1xuLy9AbWVkaWEgKG1heC13aWR0aDogNDYwcHgpIHtcbi8vICAubHVtLWxpZ2h0Ym94LWltYWdlLXdyYXBwZXIge1xuLy8gICAgZGlzcGxheTogYmxvY2s7XG4vLyAgICBvdmVyZmxvdzogYXV0bztcbi8vICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbi8vICB9XG4vL1xuLy8gIC5sdW0tbGlnaHRib3gtY2FwdGlvbiB7XG4vLyAgICB3aWR0aDogMTAwJTtcbi8vICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbi8vICAgIGJvdHRvbTogMDtcbi8vICB9XG4vL1xuLy8gIC5sdW0tbGlnaHRib3gtaW5uZXIgaW1nIHtcbi8vICAgIG1heC13aWR0aDogbm9uZTtcbi8vICAgIG1heC1oZWlnaHQ6IG5vbmU7XG4vLyAgICBkaXNwbGF5OiBibG9jaztcbi8vICB9XG4vL31cbiIsIiRxdW90ZTogKFxuICBicmVha3BvaW50OiAoXG4gICAgbWF4OiBlbSg0ODBweCAtIDFweCksXG4gICAgbWluOiBlbSg0ODBweCksXG4gICAgb2Zmc2V0OiBlbSgxMDg0cHggKyBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nJykgKyBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nJykgKyAyMDBweClcbiAgKSxcbiAgZmxvYXRzOiBsZWZ0IHJpZ2h0LFxuICBtYXhXaWR0aDogMjUwcHgsXG4gIG9mZnNldDogLTEwMHB4XG4pO1xuXG4ucXVvdGUge1xuICBAaW5jbHVkZSBicmVha3BvaW50KCdtYXgtd2lkdGgnIHNldHRpbmcoJ2JyZWFrcG9pbnQubWF4JywgJHF1b3RlKSkge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgfVxuXG4gIEBlYWNoICRkaXJlY3Rpb24gaW4gc2V0dGluZygnZmxvYXRzJywgJHF1b3RlKSB7XG4gICAgJGNsYXNzbmFtZTogLSN7JGRpcmVjdGlvbn07XG5cbiAgICAmLiN7JGNsYXNzbmFtZX0ge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50Lm1pbicsICRxdW90ZSkpIHtcbiAgICAgICAgZmxvYXQ6ICRkaXJlY3Rpb247XG4gICAgICAgIG1hcmdpbi0jeyRkaXJlY3Rpb259OiAwO1xuICAgICAgICBtYXJnaW4tdG9wOiAtMWVtO1xuICAgICAgICBtYXgtd2lkdGg6IHNldHRpbmcoJ21heFdpZHRoJywgJHF1b3RlKTtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50Lm9mZnNldCcsICRxdW90ZSkpIHtcbiAgICAgICAgbWFyZ2luLSN7JGRpcmVjdGlvbn06IHNldHRpbmcoJ29mZnNldCcsICRxdW90ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIuc2lkZWJhci1jb250YWluZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcihncmVlbik7XG4gIHBhZGRpbmc6IHNldHRpbmcoJ2d1dHRlclBhZGRpbmdTbWFsbCcpO1xuICBtYXJnaW4tdG9wOiBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nJyk7XG5cbiAgaDQge1xuICAgIGZvbnQtZmFtaWx5OiAkb3BlblNhbnNDb25kZW5zZWQ7XG4gICAgZm9udC1zaXplOiAxLjI1MGVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIHBhZGRpbmc6IHNldHRpbmcoJ2d1dHRlclBhZGRpbmdTbWFsbCcpIDA7XG4gIH1cbn1cblxuLnNpZGViYXItbmF2IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcblxuICB1bCB7XG4gICAgZm9udC1zaXplOiAuODc1cmVtO1xuICAgIHBhZGRpbmc6IDEycHggMjBweDtcbiAgfVxufVxuXG4uc2lkZWJhci1uYXZfX3RpdGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IoYmx1ZSk7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiA3cHggMTVweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLnNpZGViYXItbmF2X19pdGVtIHtcbiAgZm9udC1zaXplOiAuOTM3NWVtO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuXG4gIGEge1xuICAgIGNvbG9yOiBjb2xvcihibHVlKTtcbiAgICBsZWZ0OiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAuMnM7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiBsaWdodGVuKGNvbG9yKGJsdWUpLCAyMCUpO1xuICAgIH1cbiAgfVxuXG4gICYuLWFjdGl2ZSBhIHtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICB9XG59XG4iLCIkc2NoZWR1bGU6IChcbiAgYnJlYWtwb2ludDogKFxuICAgIHhsYXJnZTogZW0oMTIwMHB4KVxuICApLFxuICBoZWlnaHQ6IDM1NXB4LFxuICBwYWRkaW5nOiAoXG4gICAgYm90dG9tOiA4Ljc1JSxcbiAgICBsZWZ0OiAxMSUsXG4gICAgdG9wOiA2LjI1JSxcbiAgICByaWdodDogMTElXG4gIClcbik7XG5cbi5zY2hlZHVsZV9fbGlzdCB7XG4gIC5zY2hlZHVsZS1pdGVtOm5vdCg6Zmlyc3QtY2hpbGQpLFxuICAuc2NoZWR1bGVfX2hlYWRpbmcge1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjOTc5Nzk3O1xuICB9XG5cbiAgLnNjaGVkdWxlIHtcbiAgICBAZXh0ZW5kIC4tbGlzdGluZy1ncmlkO1xuICB9XG5cbiAgLnNjaGVkdWxlX19hcnJvdyB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG59XG5cbi5zY2hlZHVsZSB7XG4gIEBpbmNsdWRlIHRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvcik7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGNvbG9yOiBjb2xvcihibHVlKTtcbiAgcGFkZGluZzogc2V0dGluZygnZ3V0dGVyUGFkZGluZ1NtYWxsJykgc2V0dGluZygnZ3V0dGVyUGFkZGluZ1NtYWxsJyk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubGFyZ2UnKSkge1xuICAgIHBhZGRpbmc6IHNldHRpbmcoJ2d1dHRlclBhZGRpbmdTbWFsbCcpIHNldHRpbmcoJ2d1dHRlclBhZGRpbmcnKTtcbiAgfVxuXG4gID4gcCB7XG4gICAgZm9udC1zaXplOiAwLjgxM2VtO1xuICB9XG5cbn1cblxuLnNjaGVkdWxlX190aXRsZSB7XG4gIGZvbnQtZmFtaWx5OiAkb3BlblNhbnM7XG4gIGZvbnQtc2l6ZTogMS4xMjVlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuLnNjaGVkdWxlX19tZXRhIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIHAge1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gICYuLWRhdGUge1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIH1cbn1cblxuLnNjaGVkdWxlX19jdGEge1xuICBoZWlnaHQ6IDEwMCU7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIHBhZGRpbmc6IHNldHRpbmcoJ2d1dHRlclBhZGRpbmdTbWFsbCcpO1xuXG4gIHAge1xuICAgIGNvbG9yOiBjb2xvcihncmV5LCB4bGlnaHQpO1xuICAgIGZvbnQtZmFtaWx5OiAkYmFza2VydmlsbGU7XG4gICAgZm9udC1zaXplOiAxLjEyNWVtO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBtYXJnaW46IC41ZW0gMDtcbiAgfVxufVxuXG4uc2NoZWR1bGVfX2hlYWRpbmcge1xuICBwYWRkaW5nLXRvcDogMDtcbiAgcGFkZGluZy1ib3R0b206IDA7XG4gIGRpc3BsYXk6IG5vbmU7XG5cbiAgcCB7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubGFyZ2UnKSkge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gIH1cbn0iLCIuc2lkZWJhci1jYWxsb3V0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IocHVycGxlKTtcbiAgcGFkZGluZzogc2V0dGluZygnZ3V0dGVyUGFkZGluZ1NtYWxsJyk7XG4gIG1hcmdpbjogc2V0dGluZygnZ3V0dGVyUGFkZGluZ1NtYWxsJykgMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gIGEge1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBjb2xvcjogd2hpdGU7XG4gIH1cblxuICAuc2lkZWJhci1jYWxsb3V0X19oZWFkaW5nLCBpbWcge1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBmb250LWZhbWlseTogJG9wZW5TYW5zQ29uZGVuc2VkO1xuICAgIGZvbnQtc2l6ZTogMS4zNzVlbTtcbiAgICBtYXJnaW4tYm90dG9tOiBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nU21hbGwnKTtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG59XG4iLCIudGFiLXBhbmVsIHtcbiAgaGVpZ2h0OiAwO1xuICBvcGFjaXR5OiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4yNXM7XG5cbiAgJi5pcy1hY3RpdmUge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG4iLCIudGFibGlzdCB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCBjb2xvcihncmF5LCB4bGlnaHQpO1xuICBib3JkZXItbGVmdDogbm9uZTtcbiAgbWFyZ2luLXRvcDogMDtcbiAgcGFkZGluZzogNGVtIDclO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50Lm1lZGl1bScpKSB7XG4gICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIGNvbG9yKGdyYXksIHhsaWdodCk7XG4gICAgbWFyZ2luLXRvcDogNC41ZW07XG4gICAgcGFkZGluZzogLjVlbSAwIDRlbSAyMCU7XG4gIH1cblxuICB1bCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMS43ZW07XG4gIH1cbn1cblxuLnRhYmxpc3RfX3RhYiB7XG4gIGZvbnQtc2l6ZTogLjg3NXJlbTtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luLWJvdHRvbTogMS43ZW07XG5cbiAgYSB7XG4gICAgQGluY2x1ZGUgbGluayguOCwgMCk7XG4gICAgY29sb3I6IGNvbG9yKGdyYXkpO1xuICAgIHRyYW5zaXRpb246IGNvbG9yIC4yNXM7XG4gIH1cblxuICAmLmlzLXNlbGVjdGVkIHtcbiAgICBhIHtcbiAgICAgIGNvbG9yOiBjb2xvcihncmF5LCBkYXJrKTtcbiAgICAgIGN1cnNvcjogdGV4dDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogY29sb3IoZ3JheSwgZGFyayk7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLnRvcC1hcnJvdyB7XG4gIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKGdyYXksIGxpZ2h0KTtcbiAgYm90dG9tOiAzcmVtO1xuICBjb2xvcjogd2hpdGU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogbm9uZTtcbiAgZm9udC1zaXplOiAxLjhlbTtcbiAgbWFyZ2luOiAwO1xuICBvcGFjaXR5OiAwLjQ7XG4gIHBhZGRpbmc6IDA7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgcmlnaHQ6IDNyZW07XG4gIHRyYW5zaXRpb246IC4yNXMgb3BhY2l0eTtcbiAgei1pbmRleDogOTk5OTtcblxuICAmOmhvdmVyIHtcbiAgICBvcGFjaXR5OiAwLjY1O1xuICB9XG59XG4iLCIucmVzb3VyY2VzLXRpdGxlIHtcbiAgICBwYWRkaW5nLXRvcDogNDBweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMjBweDtcbn1cbi5ldmVudC1zY2hlZHVsZS1jYWxsb3V0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIHBhZGRpbmc6IDMwcHg7XG4gICAgICAgIGgyIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuICAgICAgICB9XG59IiwiLmZlYXR1cmVkLXN0b3J5IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvO1xuICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gYXV0byBhdXRvO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5zbWFsbCcpKSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgYXV0bztcbiAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gYXV0bztcbiAgfVxuXG4gIC5vdmVydmlldyB7XG4gICAgZ3JpZC1yb3c6IDE7XG4gICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgcGFkZGluZy1ib3R0b206IDQwcHg7XG4gIH1cblxuICAuZmVhdHVyZWQtc3RvcnktaXRlbSB7XG4gICAgZmxleDogYXV0bztcbiAgICB3aWR0aDogOTUlO1xuICAgIGdyaWQtcm93OiAyO1xuICAgIGdyaWQtY29sdW1uOiAxO1xuICB9XG5cbiAgLnNvY2lhbC1jYWxsb3V0IHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICBwYWRkaW5nOiAyMHB4IDMwcHg7XG4gICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgZ3JpZC1yb3c6IDM7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvO1xuICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyIDFmcjtcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgIGdyaWQtY29sdW1uLWdhcDogNDBweDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC54c21hbGwnKSkge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5zbWFsbCcpKSB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvO1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnIgMWZyO1xuICAgICAgZ3JpZC1jb2x1bW46IDI7XG4gICAgICBncmlkLXJvdzogMjtcbiAgICAgIGFsaWduLXNlbGY6IHN0YXJ0O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5tZWRpdW0nKSkge1xuICAgICAgZ3JpZC1yb3c6IDEgL3NwYW4gMjtcbiAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gICAgfSBcblxuICAgIC5zb2NpYWwtY2FsbG91dC10b3B7XG4gICAgICBncmlkLXJvdzogMTtcbiAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgIH1cblxuICAgIC5zb2NpYWwtY2FsbG91dC1ib3R0b20ge1xuICAgICAgZ3JpZC1yb3c6IDI7XG4gICAgICBncmlkLWNvbHVtbjogMTtcblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LnhzbWFsbCcpKSB7XG4gICAgICAgIGdyaWQtcm93OiAxO1xuICAgICAgICBncmlkLWNvbHVtbjogMjtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LnNtYWxsJykpIHtcbiAgICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICAgIGdyaWQtcm93OiAyO1xuICAgICAgfVxuXG4gICAgICBpIHtcbiAgICAgICAgbWluLXdpZHRoOiA2MHB4O1xuICAgICAgICBmb250LXNpemU6IDJlbTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi5wYWdpbmF0b3IgeyBcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luLXRvcDogNjBweDtcblxuICAgIGEsIC5jdXJyZW50LCAuZmlyc3QtcGFnZSwgLmxhc3QtcGFnZSB7XG4gICAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgfVxuICAgIGEge1xuICAgICAgICBib3JkZXItdG9wOiAwLjRweCBzb2xpZCAjREREREREO1xuICAgICAgICBib3JkZXItcmlnaHQ6IDAuMnB4IHNvbGlkICNEREREREQ7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDAuNHB4IHNvbGlkICNEREREREQ7XG4gICAgICAgIG1heC13aWR0aDogNDRweDtcbiAgICAgICAgbWluLXdpZHRoOiA0NHB4O1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNGNUY1RjA7XG4gICAgICAgIGNvbG9yOiAjMDMxMjNGO1xuICAgIH1cbiAgICAuY3VycmVudCB7XG4gICAgICAgIGJvcmRlci10b3A6IDAuNHB4IHNvbGlkICNEREREREQ7XG4gICAgICAgIGJvcmRlci1yaWdodDogMC4ycHggc29saWQgI0RERERERDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMC40cHggc29saWQgI0RERERERDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0RERERERDtcbiAgICAgICAgY29sb3I6ICM3RDdEN0Q7XG4gICAgICAgIG1heC13aWR0aDogNDRweDtcbiAgICAgICAgbWluLXdpZHRoOiA0NHB4O1xuICAgIH1cbiAgICAuZmlyc3QtcGFnZSB7XG4gICAgICAgIGJvcmRlcjogMC42cHggc29saWQgI0RERERERDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNGNUY1RjA7XG4gICAgICAgIGNvbG9yOiAjMDMxMjNGO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgICAgIG1pbi13aWR0aDogNjVweDtcbiAgICB9XG4gICAgLmxhc3QtcGFnZSB7XG4gICAgICAgIGJvcmRlcjogMC42cHggc29saWQgI0RERERERDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNGNUY1RjA7XG4gICAgICAgIGNvbG9yOiAjMDMxMjNGO1xuICAgICAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICAgICAgbWluLXdpZHRoOiA2NXB4O1xuICAgIH1cbiAgICAucHJldmlvdXMtcGFnZSB7XG4gICAgICAgIGJvcmRlcjogMC42cHggc29saWQgI0RERERERDtcbiAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogOCU7XG4gICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDglO1xuICAgIH1cbiAgICAubmV4dC1wYWdlIHtcbiAgICAgICAgYm9yZGVyLXRvcDogMC42cHggc29saWQgI0RERERERDtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAwLjZweCBzb2xpZCAjREREREREO1xuICAgICAgICBib3JkZXItYm90dG9tOiAwLjZweCBzb2xpZCAjREREREREO1xuICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogOCU7XG4gICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA4JTtcbiAgICB9XG59XG5cbi5wYWdpbmF0b3Itd3JhcHBlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufSIsInAuY29udGFjdC1sZWFkLXAge1xuICAgIG1hcmdpbjogMmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAzZW07XG59XG5cbmlucHV0I3Bob25lIHtcbiAgICBkaXNwbGF5OiBub25lOyBcbn0iLCIuanVkZ2VzLWRpcmVjdG9yeSB7XG4gICYuLXdpdGhvdXQtaW1hZ2VzIHtcbiAgICAuanVkZ2Uge1xuICAgICAgLmp1ZGdlLWltYWdlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uanVkZ2VzLWRpcmVjdG9yeS1maWx0ZXJzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuXG4gIGJ1dHRvbixcbiAgc2VsZWN0IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDEuMjVyZW07XG4gIH1cblxuICBidXR0b24ge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICBzZWxlY3Qge1xuICAgIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgICB3aWR0aDogYXV0bztcbiAgICBmbGV4OiAxO1xuXG4gICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIH1cbiAgfVxuXG4gIHAge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5cbi5qdWRnZS1ncm91cCB7XG4gIG1hcmdpbi1ib3R0b206IDJyZW07XG5cbiAgaDMge1xuICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICBtYXJnaW46IDAgMCAycmVtO1xuICB9XG59XG5cbi5qdWRnZSB7XG4gIC5qdWRnZS1pbWFnZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgaW1nIHtcbiAgICAgIHBhZGRpbmc6IDVweDtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dDtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGltZyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogI2FhYTsgICAgICAgIFxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uanVkZ2UtZGV0YWlsLWhlYWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcblxuICA+IGRpdjpmaXJzdC1vZi10eXBlIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDJyZW07XG4gIH1cblxuICBoMiB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxuXG4gIC5pbWFnZS13cmFwcGVyIHtcbiAgICBtYXgtd2lkdGg6IDQwJTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5zbWFsbCcpKSB7XG4gICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgfVxuICB9XG59IiwiLnNlcGFyYXRvciB7XG4gICYuc21hbGwge1xuICAgIG1pbi1oZWlnaHQ6IDNlbTtcbiAgfVxuXG4gICYubWVkaXVtIHtcbiAgICBtaW4taGVpZ2h0OiA2ZW07XG4gIH1cblxuICAmLmxhcmdlIHtcbiAgICBtaW4taGVpZ2h0OiA5ZW07XG4gIH1cbn0iLCIucnNzLXdyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZvbnQtc2l6ZTogMC44NzVlbTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuXG4gICsgLmJyZWFkY3J1bWIge1xuICAgIG1hcmdpbi10b3A6IDIuNWVtO1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50Lm1lZGl1bScpKSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IDE7XG4gIH1cblxuXG4gIC5mYSB7XG4gICAgY29sb3I6IGNvbG9yKG9yYW5nZSk7XG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICAgIGZvbnQtc2l6ZTogMS4xNGVtO1xuICB9XG5cbiAgYSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB9XG4gIH1cbn0iLCIuQ2Fyb3VzZWwge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuXG4gIC5zd2lwZXItc2xpZGUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuXG4gICAgaW1nIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgLyogUG9zaXRpb24gdGhlIGltYWdlIGluIHRoZSBtaWRkbGUgb2YgaXRzIGNvbnRhaW5lci4gKi9cbiAgICAgIHRvcDogLTk5OTlweDtcbiAgICAgIHJpZ2h0OiAtOTk5OXB4O1xuICAgICAgYm90dG9tOiAtOTk5OXB4O1xuICAgICAgbGVmdDogLTk5OTlweDtcbiAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgIC8qIFRoZSBmb2xsb3dpbmcgdmFsdWVzIGRldGVybWluZSB0aGUgZXhhY3QgaW1hZ2UgYmVoYXZpb3VyLiAqL1xuICAgICAgLyogWW91IGNhbiBzaW11bGF0ZSBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyL2NvbnRhaW4vZXRjLlxuICAgICAgICAgYnkgY2hhbmdpbmcgYmV0d2VlbiBtaW4vbWF4L3N0YW5kYXJkIHdpZHRoL2hlaWdodCB2YWx1ZXMuXG4gICAgICAgICBUaGVzZSB2YWx1ZXMgc2ltdWxhdGUgYmFja2dyb3VuZC1zaXplOiBjb3ZlclxuICAgICAgKi9cbiAgICAgIG1pbi13aWR0aDogMTAwJTtcbiAgICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4gICAgfVxuICB9XG5cbiAgLnN3aXBlci1idXR0b24tcHJldiwgXG4gIC5zd2lwZXItYnV0dG9uLW5leHQge1xuICAgIGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LCAwLjUpO1xuICB9XG5cbiAgLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldC1hY3RpdmUge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gIH1cbn0iLCIubWFwLXdyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5nbS1zdHlsZSB7XG4gIC5zZWxlY3RlZCB7XG4gICAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbiAgICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42KTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkICNmZmY7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBhZGRpbmc6IDIxcHggMjJweDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGxlZnQ6IC04cHg7XG4gICAgICB0b3A6IC04cHg7XG4gICAgfVxuICB9XG59XG5cbiNtYXAtbGlzdGluZy1pbmZvIHtcbiAgd2lkdGg6IDMwMHB4O1xuICBtaW4td2lkdGg6IDMwMHB4O1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQ6IGNvbG9yKGdyZXksIHhsaWdodCk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgY29sb3IoZ3JleSwgYmFzZSk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2UtaW4tb3V0O1xuICBvdmVyZmxvdzogc2Nyb2xsO1xuICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgLmZhLXdpbmRvdy1jbG9zZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAxMHB4O1xuICAgIHRvcDogMTBweDtcblxuICAgICY6aG92ZXIge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cbiAgfVxuXG4gICYuYWN0aXZlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIH1cblxuICBwIHtcbiAgICBmb250LXNpemU6IDAuODc1ZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcblxuICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgIGZvbnQtc2l6ZTogMC43NWVtO1xuICAgIH1cbiAgfVxufSIsIi5jbGVhci1ib3RoIHtcbiAgY2xlYXI6IGJvdGg7XG59IiwiQGltcG9ydCBcImFydGljbGVcIjtcbkBpbXBvcnQgXCJjb25uZWN0LWJhclwiO1xuQGltcG9ydCBcImVtbWFcIjtcbkBpbXBvcnQgXCJldmVudC1kZXRhaWwtY29udGVudFwiO1xuQGltcG9ydCBcImdsb2JhbC1mb290ZXJcIjtcbkBpbXBvcnQgXCJnbG9iYWwtaGVhZGVyXCI7XG5AaW1wb3J0IFwiZ2xvYmFsLW5hdlwiO1xuQGltcG9ydCBcImhlcm9cIjtcbkBpbXBvcnQgXCJtYWluLWNvbnRlbnRcIjtcbkBpbXBvcnQgXCJ2aWRlby1wbGF5bGlzdFwiO1xuQGltcG9ydCBcImRvY3NcIjtcbkBpbXBvcnQgXCJkb2NzLWhlYWRlclwiO1xuQGltcG9ydCBcIjQwNFwiO1xuIiwiLmFydGljbGUge1xuICBwYWRkaW5nOiBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nU21hbGwnKTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubWVkaXVtJykpIHtcbiAgICBwYWRkaW5nOiBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nU21hbGwnKSBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nJyk7XG4gIH1cbn1cblxuLmFydGljbGVfX3RpdGxlIHtcbiAgY29sb3I6IGNvbG9yKGJsdWUpO1xuICBmb250LXNpemU6IDEuMzc1cmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4uYXJ0aWNsZV9fdGl0bGUtYWx0IHtcbiAgZm9udC1zaXplOiAzcmVtO1xuICBtYXJnaW4tYm90dG9tOiAxZW07XG59XG5cbi5zb2NpYWwtcG9zdC1jb250YWluZXIgLmZhYiB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW4tcmlnaHQ6IC41ZW07XG59IiwiLmNvbm5lY3QtYmFyIHtcbiAgcGFkZGluZzogMy44NzVyZW0gMCAhaW1wb3J0YW50O1xuXG4gIC5ncmlkLWl0ZW0ge1xuICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgfVxufVxuXG4uY29ubmVjdC1iYXJfX3RpdGxlIHtcbiAgY29sb3I6IHdoaXRlO1xuICBmb250LXNpemU6IDEuODc1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAuNzVlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5tZWRpdW0nKSkge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgfVxufVxuXG4uY29ubmVjdC1iYXJfX3NvY2lhbC1pY29ucyB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubWVkaXVtJykpIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgfVxufVxuXG4uY29ubmVjdC1iYXJfX2ljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLDAuMik7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6IDEuMjVlbTtcbiAgaGVpZ2h0OiA1MHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdHJhbnNpdGlvbjogYWxsIC4yNXM7XG4gIHdpZHRoOiA1MHB4O1xuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsMC4zKTtcbiAgfVxuXG4gIC5pY29uIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICB9XG59XG4iLCIuZTJtYV9zaWdudXBfZm9ybSB7XG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcblxuICBAZXh0ZW5kIC5nbG9iYWwtZm9vdGVyO1xufVxuXG4uZTJtYV9zaWdudXBfZm9ybV9idXR0b24ge1xuICBAZXh0ZW5kICAuYnV0dG9uO1xuICBAZXh0ZW5kIC4tcHJpbWFyeTtcbiAgQGV4dGVuZCAuLXNtYWxsO1xufVxuXG4uZTJtYV9zaWdudXBfZm9ybV9yb3cge1xuICBAZXh0ZW5kIC5mb3JtLWNvbnRyb2wtZ3JvdXA7XG59XG5cbi5lMm1hX3NpZ251cF9mb3JtX2VsZW1lbnQgPiBpbnB1dCB7XG4gIEBleHRlbmQgLmZvcm0tY29udHJvbDtcbn1cblxuLmUybWFfc2lnbnVwX2Zvcm1fbGFiZWwge1xuICBAZXh0ZW5kIGxhYmVsO1xufSIsIi5ldmVudC1kZXRhaWwtY29udGVudCB7XG4gIGZsb2F0OiBub25lICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1yaWdodDogYXV0byAhaW1wb3J0YW50O1xufVxuIiwiLmdsb2JhbC1mb290ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcihibHVlKTtcbiAgY29sb3I6IGNvbG9yKGdyYXksIHhsaWdodCk7XG4gIGZvbnQtc2l6ZTogLjgxM3JlbTtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgcGFkZGluZzogNjBweCAwIDI1cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQuc21hbGwnKSkge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cblxuICBsaSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuXG4gIHAge1xuICAgIGNvbG9yOiBjb2xvcihncmF5LCB4bGlnaHQpO1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LXNpemU6IC44MTNyZW07XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcblxuICAgIGEge1xuICAgICAgY29sb3I6IGNvbG9yKGdyYXksIGxpZ2h0KTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIHRyYW5zaXRpb246IGNvbG9yIC4yNXM7XG5cbiAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IoZ3JheSk7XG4gICAgICB9XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogY29sb3IoZ3JheSk7XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKGdyYXksIGxpZ2h0KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5mb3JtLWNvbnRyb2wge1xuICAgIGhlaWdodDogMzFweDtcbiAgICBsaW5lLWhlaWdodDogMS4zMztcbiAgICBwYWRkaW5nOiA2cHggOHB4O1xuICB9XG5cbiAgLmZvcm0tY29udHJvbC1ncm91cCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMC42MjVlbTtcbiAgICBtYXJnaW4tdG9wOiAwLjYyNWVtO1xuICB9XG59XG5cbi5nbG9iYWwtZm9vdGVyX19oZWFkaW5nIHtcbiAgY29sb3I6IGNvbG9yKGdyYXksIHhsaWdodCk7XG4gIGZvbnQtc2l6ZTogLjgxM3JlbTtcbiAgZm9udC1mYW1pbHk6ICRvcGVuU2FucztcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi5nbG9iYWwtZm9vdGVyX19zb2NpYWwge1xuICBwYWRkaW5nLWJvdHRvbTogMjBweDtcblxuICAuZ3JpZC4tY29sMyB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA1MHB4IDUwcHggNTBweDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnIgMWZyO1xuICAgIH1cbiAgfVxuXG4gIGEge1xuICAgIGNvbG9yOiBjb2xvcihncmF5LCBsaWdodCk7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHRyYW5zaXRpb246IGNvbG9yIC4yNXM7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiBjb2xvcihncmF5KTtcbiAgICB9XG4gIH1cblxuICBpIHtcbiAgICBmb250LXNpemU6IDMycHg7XG4gIH1cblxuICBwIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBjb2xvcjogY29sb3IoZ3JheSk7XG4gICAgZm9udC1zaXplOiAuNjg3NXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4zO1xuICB9XG5cbiAgI2RvbmF0ZSB7XG4gICAgcGFkZGluZy10b3A6IDUwcHg7XG4gIH1cbn1cblxuLmdsb2JhbC1mb290ZXJfX3NvY2lhbC1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLmdsb2JhbC1mb290ZXJfX2xlZ2FsIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tdG9wOiA2MHB4O1xufSIsIi5nbG9iYWwtaGVhZGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIG1heC1oZWlnaHQ6IHNldHRpbmcoJ2dsb2JhbC5oZWFkZXIuaGVpZ2h0Lm1lZGl1bScpO1xuICBvdmVyZmxvdy15OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdHJhbnNpdGlvbjogbWF4LWhlaWdodCAuNXMgZWFzZSwgYmFja2dyb3VuZC1jb2xvciAuNXMgZWFzZTtcbiAgei1pbmRleDogNTA7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LmxhcmdlJykpIHtcbiAgICBoZWlnaHQ6IHNldHRpbmcoJ2dsb2JhbC5oZWFkZXIuaGVpZ2h0LmxhcmdlJyk7XG4gICAgbWF4LWhlaWdodDogc2V0dGluZygnZ2xvYmFsLmhlYWRlci5oZWlnaHQubGFyZ2UnKTtcbiAgICBvdmVyZmxvdy15OiB2aXNpYmxlO1xuICB9XG5cbiAgJi4tZXhwYW5kZWR7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgbWF4LWhlaWdodDogMTAwMHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIC5wcmltYXJ5LW5hdiA+IGxpICYuYWN0aXZlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgICsgbWFpbiB7XG4gICAgICBvcGFjaXR5OiAwLjU7XG4gICAgfVxuICB9XG5cbiAgPiAuY29udGFpbmVyIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cbn1cbiIsIi5nbG9iYWwtbmF2aWdhdGlvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAyLjVlbTtcbiAgbWFyZ2luLXRvcDogMnB4O1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubGFyZ2UnKSkge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxufVxuIiwiJGhlcm86IChcbiAgYmFja2dyb3VuZENvbG9yOiBjb2xvcihncmF5LCB4ZGFyayksXG4gIGNvbG9yOiAjZmZmLFxuICBoZWlnaHQ6IChcbiAgICBzdGFuZGFyZDogKFxuICAgICAgc21hbGw6IDM2MHB4LFxuICAgICAgbWVkaXVtOiA0MzVweCxcbiAgICAgIGxhcmdlOiA0OTBweFxuICAgICksXG4gICAgb3ZlcnNpemVkOiAoXG4gICAgICBzbWFsbDogJycsXG4gICAgICBtZWRpdW06ICcnLFxuICAgICAgbGFyZ2U6IDc3MHB4XG4gICAgKSxcbiAgICBzbWFsbDogKFxuICAgICAgc21hbGw6IDI1MHB4LFxuICAgICAgbWVkaXVtOiAzMjBweCxcbiAgICAgIGxhcmdlOiAzOTBweFxuICAgIClcbiAgKVxuKTtcblxuLmhlcm8ge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgYmFja2dyb3VuZC1jb2xvcjogc2V0dGluZygnYmFja2dyb3VuZENvbG9yJywgJGhlcm8pO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgJi4td2l0aC1pbWFnZSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGhlaWdodDogc2V0dGluZygnaGVpZ2h0LnN0YW5kYXJkLnNtYWxsJywgJGhlcm8pO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubWVkaXVtJykpIHtcbiAgICAgIGhlaWdodDogc2V0dGluZygnaGVpZ2h0LnN0YW5kYXJkLm1lZGl1bScsICRoZXJvKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubGFyZ2UnKSkge1xuICAgICAgaGVpZ2h0OiBzZXR0aW5nKCdoZWlnaHQuc3RhbmRhcmQubGFyZ2UnLCAkaGVybyk7XG4gICAgfVxuXG4gICAgJjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLDAuMyk7XG4gICAgICBib3R0b206IDA7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICB6LWluZGV4OiAxMDtcbiAgICB9XG5cbiAgICAmLi10b3Age1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wO1xuICAgIH1cbiAgfVxuXG4gIC5jb250YWluZXIge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHotaW5kZXg6IDIwO1xuICAgIG1heC13aWR0aDogODV2dztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIH1cblxuICAmLi1vdmVyc2l6ZWQge1xuICAgIGhlaWdodDogc2V0dGluZygnaGVpZ2h0Lm92ZXJzaXplZC5sYXJnZScsICRoZXJvKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgJi4tc21hbGwge1xuICAgIGhlaWdodDogc2V0dGluZygnaGVpZ2h0LnNtYWxsLnNtYWxsJywgJGhlcm8pO1xuXG4gICAgLkNhcm91c2VsIHtcbiAgICAgIGhlaWdodDogc2V0dGluZygnaGVpZ2h0LnNtYWxsLnNtYWxsJywgJGhlcm8pOyAgICAgIFxuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5tZWRpdW0nKSkge1xuICAgICAgaGVpZ2h0OiBzZXR0aW5nKCdoZWlnaHQuc21hbGwubWVkaXVtJywgJGhlcm8pO1xuXG4gICAgICAuQ2Fyb3VzZWwge1xuICAgICAgICBoZWlnaHQ6IHNldHRpbmcoJ2hlaWdodC5zbWFsbC5tZWRpdW0nLCAkaGVybyk7ICAgICAgXG4gICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LmxhcmdlJykpIHtcbiAgICAgIGhlaWdodDogc2V0dGluZygnaGVpZ2h0LnNtYWxsLmxhcmdlJywgJGhlcm8pO1xuXG4gICAgICAuQ2Fyb3VzZWwge1xuICAgICAgICBoZWlnaHQ6IHNldHRpbmcoJ2hlaWdodC5zbWFsbC5sYXJnZScsICRoZXJvKTsgICAgICBcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB2aWRlbyB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB6LWluZGV4OiAxO1xuICB9XG59XG4iLCIubWFpbi1jb250ZW50LFxuLm1haW4tY29udGVudC5jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDIwO1xufVxuIiwiLyogWW91VHViZSBUViAqL1xuXG4vKiBCYXNlIENhbnZhcyAqL1xuLnl0di1jYW52YXN7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRiYWNrZ3JvdW5kOiAjMjgyODI4O1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHRmb250LWZhbWlseTogYXJpYWwsIHNhbnMtc2VyaWY7XG59XG4ueXR2LWNhbnZhcyA6Oi13ZWJraXQtc2Nyb2xsYmFye1xuXHRib3JkZXItbGVmdDogMXB4IHNvbGlkICMwMDA7XG5cdHdpZHRoOiAxMHB4O1xufVxuLnl0di1jYW52YXMgOjotd2Via2l0LXNjcm9sbGJhci10aHVtYntcblx0YmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjEpO1xufVxuXG4vKiBWaWRlbyAqL1xuLnl0di12aWRlb3tcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDA7XG5cdHJpZ2h0OiAzMDBweDtcblx0Ym90dG9tOiAwO1xuXHRsZWZ0OiAwO1xuXHRoZWlnaHQ6IDEwMCU7XG59XG4ueXR2LXZpZGVvIGlmcmFtZXtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcblx0Ym9yZGVyOiBub25lO1xuXHRvdXRsaW5lOiBub25lO1xuXHRkaXNwbGF5OiBibG9jaztcbn1cblxuLyogTGlzdCAqL1xuLnl0di1saXN0e1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogMDtcblx0cmlnaHQ6IDA7XG5cdGJvdHRvbTogMDtcblx0aGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAzMDBweDtcbiAgICBmb250LWZhbWlseTogJG9wZW5TYW5zO1xuICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKGdyYXksIHhsaWdodClcbn1cbi55dHYtbGlzdC1pbm5lcntcblx0b3ZlcmZsb3c6IGF1dG87XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiA1MnB4O1xuXHRyaWdodDogMDtcblx0Ym90dG9tOiAwO1xuXHRsZWZ0OiAwO1xuXHQtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG59XG4ueXR2LWxpc3QgdWx7XG5cdG1hcmdpbjogMDtcblx0cGFkZGluZzogMDtcblx0bGlzdC1zdHlsZS10eXBlOiBub25lO1xufVxuLnl0di1saXN0IC55dHYtYWN0aXZlIGF7XG5cdGJvcmRlci1sZWZ0OiAycHggc29saWQgI2ZmZjtcbiAgICAvLyBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMDUpO1xuICAgIGJhY2tncm91bmQ6IGNvbG9yKGdyYXksIGxpZ2h0KSAhaW1wb3J0YW50O1xufVxuLnl0di1saXN0IGF7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdGZvbnQtc2l6ZTogMTFweDtcblx0Y29sb3I6ICNGRUZFRkU7XG5cdHBhZGRpbmc6IDEwcHg7XG5cdHBhZGRpbmctbGVmdDogOHB4O1xuXHRib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjEpO1xuXHRib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgwLDAsMCwwLjUpO1xuXHRib3JkZXItbGVmdDogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xufVxuLnl0di1saXN0IGEgYntcblx0bWF4LWhlaWdodDogNDVweDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuLnl0di1saXN0IGxpOmZpcnN0LWNoaWxkIGF7IGJvcmRlci10b3A6IG5vbmU7IH1cbi55dHYtbGlzdCBsaTpsYXN0LWNoaWxkIGF7IGJvcmRlci1ib3R0b206IG5vbmU7IH1cbi55dHYtbGlzdCBhOmhvdmVyLFxuLnl0di1saXN0LWhlYWRlciAueXR2LXBsYXlsaXN0cyBhOmhvdmVyeyBiYWNrZ3JvdW5kOiBjb2xvcihncmF5LCBsaWdodCkgIWltcG9ydGFudDsgfVxuLnl0di1saXN0IGE6YWN0aXZlLFxuLnl0di1saXN0LWhlYWRlciAueXR2LXBsYXlsaXN0cyBhOmFjdGl2ZXsgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjA1KTsgfVxuXG4ueXR2LWxpc3QgLnl0di1jb250ZW50eyBwYWRkaW5nLWxlZnQ6IDEyNXB4OyB9XG4ueXR2LWxpc3QgLnl0di10aHVtYi1zdHJva2V7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAxcHg7XG5cdGxlZnQ6IDFweDtcblx0Ym90dG9tOiAxcHg7XG5cdHJpZ2h0OiAxcHg7XG5cdHotaW5kZXg6IDI7XG5cdG91dGxpbmU6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMSk7XG59XG4ueXR2LWxpc3QgLnl0di10aHVtYntcblx0ZmxvYXQ6IGxlZnQ7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0b3V0bGluZTogMXB4IHNvbGlkIHJnYmEoMCwwLDAsMC41KTtcbn1cbi55dHYtbGlzdCAueXR2LXRodW1iIGltZ3tcblx0d2lkdGg6IDEyMHB4O1xuXHRkaXNwbGF5OiBibG9jaztcbn1cbi55dHYtbGlzdCAueXR2LXRodW1iIHNwYW57XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0Ym90dG9tOiA1cHg7XG5cdHJpZ2h0OiA1cHg7XG5cdGNvbG9yOiAjZWVlO1xuXHRiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuNyk7XG5cdGZvbnQtc2l6ZTogMTFweDtcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdHBhZGRpbmc6IDBweCA0cHg7XG5cblx0LXdlYmtpdC1ib3JkZXItcmFkaXVzOiAzcHg7XG5cdC1tb3otYm9yZGVyLXJhZGl1czogM3B4O1xuXHRib3JkZXItcmFkaXVzOiAzcHg7XG59XG4ueXR2LXZpZXdze1xuXHRkaXNwbGF5OiBibG9jaztcblx0bWFyZ2luLXRvcDogNXB4O1xuXHRmb250LXNpemU6IDEwcHg7XG5cdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cdG9wYWNpdHk6IDAuMztcbn1cblxuLnl0di1saXN0LWhlYWRlcntcblx0aGVpZ2h0OiA1MnB4O1xuXHQtd2Via2l0LWJveC1zaGFkb3c6IDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMik7XG5cdC1tb3otYm94LXNoYWRvdzogMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgICBib3gtc2hhZG93OiAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjIpO1xuICAgIC8vIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLnl0di1saXN0LWhlYWRlciBhe1xuXHRiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMDUpO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMTA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IoZ3JheSwgeGxpZ2h0KSAhaW1wb3J0YW50O1xufVxuLnl0di1saXN0LWhlYWRlciBpbWcsXG4ueXR2LWxpc3QgLnl0di1wbGF5bGlzdHMgLnl0di10aHVtYiBpbWd7XG5cdHdpZHRoOiAzMHB4O1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLnl0di1saXN0LWhlYWRlciBzcGFue1xuXHRwYWRkaW5nLWxlZnQ6IDEwcHg7XG5cdGZvbnQtc2l6ZTogMTJweDtcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8qIFBsYXlsaXN0cyAqL1xuLnl0di1wbGF5bGlzdHN7XG5cdHotaW5kZXg6IDk7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0YmFja2dyb3VuZDogIzI4MjgyODtcblx0dG9wOjUycHg7XG5cdGxlZnQ6IDA7XG5cdHJpZ2h0OiAwO1xuXHRib3R0b206IDA7XG5cdG92ZXJmbG93OiBhdXRvO1xuXHRkaXNwbGF5OiBub25lO1xufVxuLnl0di1wbGF5bGlzdHMgaW1nLFxuLnl0di1saXN0LWhlYWRlciBpbWd7XG5cdGZsb2F0OiBsZWZ0O1xufVxuLnl0di1wbGF5bGlzdHMgYSBzcGFuLFxuLnl0di1saXN0LWhlYWRlciBhIHNwYW57XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdHBhZGRpbmctbGVmdDogMTBweDtcblx0ZGlzcGxheTogYmxvY2s7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuLnl0di1saXN0LWhlYWRlciA+IGEgc3Bhbntcblx0bGluZS1oZWlnaHQ6IDMwcHg7XG59XG4ueXR2LWxpc3QtaGVhZGVyIC55dHYtcGxheWxpc3RzIGF7XG5cdGJhY2tncm91bmQ6IG5vbmU7XG59XG4ueXR2LXBsYXlsaXN0LW9wZW4gLnl0di1wbGF5bGlzdHN7XG5cdGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKiBNb2RpZmllcnMgKi9cbi55dHYtcmVsYXRpdmV7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcbn1cbi55dHYtZnVsbHtcblx0cG9zaXRpb246IGZpeGVkO1xuXHR0b3A6IDA7XG5cdGxlZnQ6IDA7XG5cdHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG5cdGhlaWdodDogMTAwJSAhaW1wb3J0YW50O1xuXHRtYXJnaW46IDAgIWltcG9ydGFudDtcbn1cbi55dHYtYXJyb3cge1xuXHRoZWlnaHQ6IDEwcHg7XG5cdHdpZHRoOiAwO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHRvcDogMTBweDtcblx0cmlnaHQ6IDVweDtcblx0Ym9yZGVyOiAxMHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXHRmbG9hdDogcmlnaHQ7XG5cdGJvcmRlci10b3AtY29sb3I6IHJnYmEoMCwwLDAsMC40KTtcblx0ZGlzcGxheTogbm9uZTtcbn1cbi55dHYtaGFzLXBsYXlsaXN0cyAueXR2LWFycm93e1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4ueXR2LXBsYXlsaXN0LW9wZW4gLnl0di1hcnJvd3tcblx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0Ym9yZGVyLWJvdHRvbS1jb2xvcjogcmdiYSgwLDAsMCwwLjQpO1xuXHR0b3A6IC0xMHB4O1xufVxuXG4ueXR2LWxpc3QtaGVhZGVyIGE6YWZ0ZXIsXG4ueXR2LWNsZWFyOmFmdGVyIHtcblx0Y29udGVudDogXCIuXCI7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRjbGVhcjogYm90aDtcblx0dmlzaWJpbGl0eTogaGlkZGVuO1xuXHRsaW5lLWhlaWdodDogMDtcblx0aGVpZ2h0OiAwO1xufSIsIi4tZG9jcyB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gYXV0byBhdXRvIGF1dG87XG4gICAgXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LnNtYWxsJykpIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIDFmcjtcbiAgICB9XG5cbiAgICAubWFpbiB7XG4gICAgICAgIGdyaWQtcm93OiAzO1xuICAgICAgICBncmlkLWNvbHVtbjogMTtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQuc21hbGwnKSkge1xuICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubG9nby1iYXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcihncmF5LCB4bGlnaHQpO1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5zbWFsbCcpKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBncmlkLWNvbHVtbjogMSAvc3BhbiAyO1xuICAgICAgICAgICAgZ3JpZC1yb3c6IDI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLi1kb2NzLWhlYWQtbG9nbyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwcHg7XG4gICAgICAgICAgICBwYWRkaW5nOiAxMHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmdsb2JhbC1mb290ZXIge1xuICAgICAgICBncmlkLXJvdzogNDtcbiAgICAgICAgZ3JpZC1jb2x1bW46IDE7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LnNtYWxsJykpIHtcbiAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxIC9zcGFuIDI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoMS5oZXJvX19jb250ZW50X19oZWFkbGluZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS41ZW07XG4gICAgICAgIG1hcmdpbjogMC41ZW07XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubWVkaXVtJykpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogM2VtO1xuICAgICAgICAgICAgcGFkZGluZzogLjJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zZWNvbmRhcnktbmF2IHtcbiAgICAgICAgZ3JpZC1yb3c6IDE7XG4gICAgICAgIGdyaWQtY29sdW1uOiAxO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5zbWFsbCcpKSB7XG4gICAgICAgICAgICBncmlkLWNvbHVtbjogMSAvc3BhbiAyO1xuICAgICAgICB9XG4gICAgfVxufSIsIi5kb2NzLWhlYWRlciB7XG4gICAgZ3JpZC1yb3c6IDI7XG4gICAgZ3JpZC1jb2x1bW46IDEgL3NwYW4gMjtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5zbWFsbCcpKSB7XG4gICAgICAgIGdyaWQtcm93OiAzO1xuICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgICAgd2lkdGg6IDI1MHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcihibHVlKTtcbiAgICB9XG5cbiAgICAuZG9jcy1uYXYge1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5zbWFsbCcpKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcihibHVlKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZG9jcy1nbG9iYWwtaGVhZGVyIHtcbiAgICAgICAgbWF4LWhlaWdodDogODVweDtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDUwO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5zbWFsbCcpKSB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiB2aXNpYmxlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDB2aDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG87XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gYXV0byBhdXRvO1xuICAgICAgICB9XG4gICAgXG4gICAgICAgICYuLWV4cGFuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKGdyYXksIHhsaWdodCk7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAwcHg7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5zbWFsbCcpKSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IoYmx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgLnByaW1hcnktbmF2ID4gbGkgJi5hY3RpdmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgICAgICsgbWFpbiB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgXG4gICAgICAgID4gLmNvbnRhaW5lciB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5idXJnZXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAyNXB4IDEwcHggMTBweCAxMHB4O1xuICAgICAgICB6LWluZGV4OiAxMDA7XG4gICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICBhbGlnbi1zZWxmOiBzdGFydDtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDBweDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGNvbG9yOiBjb2xvcihncmF5LCB4bGlnaHQpO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5zbWFsbCcpKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnByaW1hcnktbmF2IHtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubGFyZ2UnKSkge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDIwcHg7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxZW07XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMWVtO1xuICAgICAgICB9XG5cbiAgICAgICAgPiAucHJpbWFyeS1uYXZfX2l0ZW0ge1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubGFyZ2UnKSkge1xuICAgICAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC4tZG9jcy1uYXYtbG9nbyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDgwcHg7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LnNtYWxsJykpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubmF2LW1lbnUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQuc21hbGwnKSkge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LmxhcmdlJykpIHtcbiAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICAmOm5vdCguZWRnZSk6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgICAgICY6bm90KC5lZGdlKTphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgICAgICAmLmVkZ2Uge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBcbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG5cbiAgICAucHJpbWFyeS1uYXYgPiBsaTpob3ZlciAmIHtcbiAgICAgICAgY29sb3I6IGxpZ2h0ZW4oY29sb3IoYmx1ZSksIDUlKTtcbiAgICB9XG5cbiAgICAubmF2LWxpbmsge1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG4gICAgXG4gICAgICAgICYuLXByaW1hcnkge1xuICAgICAgICAgICAgY29sb3I6IGNvbG9yKGJsdWUpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQuc21hbGwnKSkge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBjb2xvcihncmF5LCBsaWdodCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMWVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAucHJpbWFyeS1uYXYuZXhwYW5kZWQgJiB7XG4gICAgICAgICAgICAgICAgY29sb3I6IGNvbG9yKGdyYXksIGxpZ2h0KTtcbiAgICAgICAgXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiBjb2xvcihncmF5LCB4bGlnaHQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIFxuICAgICAgICBpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICBcbiAgICAgICAgLnByaW1hcnktbmF2ID4gbGk6aG92ZXIgJi4tYWN0aXZlLFxuICAgICAgICAucHJpbWFyeS1uYXYgPiBsaTpob3ZlciAmOmhvdmVyLFxuICAgICAgICAucHJpbWFyeS1uYXYgPiBsaTpob3ZlciAmOmFjdGl2ZSxcbiAgICAgICAgLnByaW1hcnktbmF2ID4gbGk6aG92ZXIgJjpmb2N1cyB7XG4gICAgICAgICAgICBjb2xvcjogY29sb3IoZ3JheSwgeGxpZ2h0KTtcbiAgICAgICAgfVxuICAgIFxuICAgICAgICAmLi1kcm9wZG93bi1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiBjb2xvcihncmF5LCB4bGlnaHQpO1xuICAgICAgICB9XG4gICAgXG4gICAgICAgIC5wcmltYXJ5LW5hdiAmIHtcblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LmxhcmdlJykpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi4tYWN0aXZlLFxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmFjdGl2ZSxcbiAgICAgICAgJjpmb2N1cyB7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgICAgICAgICAgICAgY29sb3I6IGNvbG9yKGdyYXksIHhsaWdodCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubmF2LWxpbmstYnV0dG9uIHtcbiAgICAgICAgY29sb3I6IGNvbG9yKGJsdWUpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LnNtYWxsJykpIHtcbiAgICAgICAgICAgIGNvbG9yOiBjb2xvcihncmF5LCBsaWdodCk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubGFyZ2UnKSkge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiBibHVlO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQuc21hbGwnKSkge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBjb2xvcihncmF5LCB4bGlnaHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmRvY3MtbmF2IGgyIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjJlbTtcbiAgICAgICAgcGFkZGluZy10b3A6IDJlbTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxZW07XG4gICAgICAgIGNvbG9yOiBjb2xvcihncmF5LCBkYXJrKTtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQuc21hbGwnKSkge1xuICAgICAgICAgICAgY29sb3I6IGNvbG9yKGdyYXksIHhsaWdodCk7XG4gICAgICAgICAgICBncmlkLXJvdzogMjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5kb2NzLW5hdiBsaSB7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMS4yNWVtO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5zbWFsbCcpKSB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZG9jcy1uYXYgYSB7XG4gICAgICAgIGZvbnQtc2l6ZTogLjllbTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBjb2xvcjogY29sb3IoZ3JheSwgZGFyayk7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LnNtYWxsJykpIHtcbiAgICAgICAgICAgIGNvbG9yOiBjb2xvcihncmF5LCBsaWdodCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB1bCB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDFlbTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDFlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IoZ3JheSwgeGxpZ2h0KTtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQuc21hbGwnKSkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IoYmx1ZSk7XG4gICAgICAgICAgICBncmlkLXJvdzogMztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC4tZG9jcy1oZWFkLWxvZ28ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQuc21hbGwnKSkge1xuICAgICAgICAgICAgaGVpZ2h0OiA4NXB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLi1kb2NzLWhlYWQtbG9nbyBhIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogODBweDtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQuc21hbGwnKSkge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5nbG9iYWwtaGVhZGVyIC5wcmltYXJ5LW5hdiB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAyMHB4O1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDFlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wcmltYXJ5LW5hdiAucHJpbWFyeS1uYXZfX2l0ZW0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgY29sb3IoYmx1ZSk7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LnNtYWxsJykpIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBjb2xvcihncmF5LCB4bGlnaHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LmxhcmdlJykpIHtcbiAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnByaW1hcnktbmF2X19pdGVtOmhvdmVyIGEge1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5zbWFsbCcpKSB7XG4gICAgICAgICAgICBjb2xvcjogY29sb3IoZ3JheSwgbGlnaHQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnByaW1hcnktbmF2ID4gbGk6aG92ZXIgLm5hdi1saW5rLi1wcmltYXJ5IHtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQuc21hbGwnKSkge1xuICAgICAgICAgICAgY29sb3I6IGNvbG9yKGdyYXksIHhsaWdodCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubmF2LW1lbnUgbGk6aG92ZXIgYSB7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LnNtYWxsJykpIHtcbiAgICAgICAgICAgIGNvbG9yOiBjb2xvcihncmF5LCB4bGlnaHQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnByaW1hcnktbmF2X19pdGVtIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDB2dztcbiAgICB9XG59IiwiLmZvdXItby1mb3VyLXBnIHtcblxuICAgIC5nbG9iYWwtc2VhcmNoIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIHdpZHRoOiA5MCU7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMTAwJTtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgYXV0bztcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQuc21hbGwnKSkge1xuICAgICAgICAgICAgd2lkdGg6IDcwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5idXR0b24uLXByaW1hcnkge1xuICAgICAgICBncmlkLXJvdzogMTtcbiAgICAgICAgZ3JpZC1jb2x1bW46IDI7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgaW5wdXQjZ2xvYmFsLXNlYXJjaCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgICAgZ3JpZC1yb3c6IDE7XG4gICAgfVxufSIsIkBtaXhpbiBzd2F0Y2hlcygkY29sb3JzOiAoKSkge1xuICBAZWFjaCAkbmFtZSwgJHNoYWRlcyBpbiAkY29sb3JzIHtcbiAgICBAZWFjaCAkc2hhZGUsICR2YWx1ZSBpbiAkc2hhZGVzIHtcbiAgICAgICYuLWNvbG9yLS0jeyRuYW1lfS0tI3skc2hhZGV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uc3R5bGVndWlkZV9fbmF2IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogZGFya2dyYXk7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgdWwge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIH1cblxuICBsaSB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICBhIHtcbiAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcGFkZGluZzogLjI1ZW0gLjVlbTtcbiAgICB9XG4gIH1cbn1cblxuLnNnX19pdGVtIHtcbiAgbWFyZ2luLXRvcDogMmVtO1xuICBtYXJnaW4tYm90dG9tOiAyZW07XG59XG5cbi5zZ19faGVhZGluZyB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGRkO1xuICBjb2xvcjogZ3JheTtcbiAgZm9udC1mYW1pbHk6ICRvcGVuU2FucztcbiAgZm9udC1zaXplOiA3MCU7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIG1hcmdpbi1ib3R0b206IDJlbTtcbiAgcGFkZGluZzogMWVtIDA7XG59XG5cbi5zZ19fY29sb3Ige1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IC4zZW07XG4gIHdpZHRoOiA1ZW07XG5cbiAgLnNnX19jb2xvcl9fc3dhdGNoIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDRlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAuMmVtO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgQGluY2x1ZGUgc3dhdGNoZXMoJGNvbG9ycyk7XG4gIH1cblxuICAuc2dfX2NvbG9yX19sYWJlbCB7XG4gICAgZm9udC1zaXplOiA4MCU7XG4gIH1cbn1cblxuLnNnX19pY29uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uc2dfX3RvZG8ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHBhZGRpbmc6IC4xNWVtO1xufVxuXG4vLyBPdmVycmlkZXNcblxuLnN0eWxlZ3VpZGUge1xuICAuc2VjdGlvbi13cmFwcGVyIHtcbiAgICBwYWRkaW5nOiA1ZW0gMDtcbiAgfVxuXG4gIC5oZXJvLi13aXRoLWltYWdlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgLmxvZ28ge1xuICAgICYuLWRpc3BsYXktb25seSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgICAgaGVpZ2h0OiAyMDBweDtcbiAgICAgIHBhZGRpbmc6IDEuNWVtO1xuICAgICAgd2lkdGg6IDIwNXB4O1xuICAgIH1cbiAgfVxufVxuIiwiLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vLyBPYmplY3RzIG1heSBiZSB1c2VkIGluIGFueSBudW1iZXIgb2YgdW5yZWxhdGVkIGNvbnRleHRzIHRvIHRoZSBvbmUgeW91IGNhblxuLy8vIGN1cnJlbnRseSBzZWUgaXQgaW4uIE1ha2luZyBtb2RpZmljYXRpb25zIHRvIHRoZXNlIHR5cGVzIG9mIGNsYXNzIGNvdWxkXG4vLy8gcG90ZW50aWFsbHkgbGVhZCB0byB1bmludGVuZGVkIHJlc3VsdHMgaW4gYSBsb3Qgb2Ygb3RoZXIgdW5yZWxhdGVkIHBsYWNlcy5cbi8vLyBUcmVhZCBjYXJlZnVsbHkuXG4vLy9cbi8vLyAtIE9iamVjdHMgYXJlIGFic3RyYWN0XG4vLy8gLSBUaGV5IGNhbiBiZSB1c2VkIGluIGFueSBudW1iZXIgb2YgcGxhY2VzIGFjcm9zcyB0aGUgcHJvamVjdCDigJQgcGxhY2VzIHlvdVxuLy8vICAgbWlnaHQgbm90IGhhdmUgZXZlbiBzZWVuXG4vLy8gLSBBdm9pZCBtb2RpZnlpbmcgdGhlaXIgc3R5bGVzXG4vLy8gLSBCZSBjYXJlZnVsIGFyb3VuZCBhbnl0aGluZyB3aXRoIGEgbG93ZXItY2FzZSBjbGFzc25hbWVcbi8vL1xuLy8vICMjIyBGb3JtYXRcbi8vLyBgLm9iamVjdC1uYW1lWzxlbGVtZW50Pnw8bW9kaWZpZXI+XSB7fWBcbi8vL1xuLy8vICMjIyBFeGFtcGxlXG4vLy8gYGBgXG4vLy8gLmxheW91dCB7fVxuLy8vIC5sYXlvdXRfX2l0ZW0ge31cbi8vLyAubGF5b3V0LS1maXhlZCB7fVxuLy8vIGBgYFxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQGltcG9ydCAnY29udGFpbmVyJztcbkBpbXBvcnQgJ3NlY3Rpb24td3JhcHBlcic7XG5AaW1wb3J0IFwidXBjb21pbmctZXZlbnRzXCI7XG5AaW1wb3J0IFwiZmItY29tbWVudHNcIjtcbiIsIi5jb250YWluZXIge1xuICBtYXgtd2lkdGg6IHNldHRpbmcoJ2NvbnRhaW5lcicsICRkZWZhdWx0LWxheW91dCk7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdjb250YWluZXInLCAkZGVmYXVsdC1sYXlvdXQpKSB7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICB9XG5cbiAgICAmLi1mdWxsIHtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gIH1cblxuICAmLi1ncmF5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcihncmF5LCB4bGlnaHQpO1xuICB9XG59XG4iLCIuc2VjdGlvbi13cmFwcGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIG1hcmdpbi1ib3R0b206IHNldHRpbmcoJ2d1dHRlclBhZGRpbmdTbWFsbCcpO1xuICBtYXJnaW4tdG9wOiBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nU21hbGwnKTtcbiAgcGFkZGluZzogc2V0dGluZygnZ3V0dGVyUGFkZGluZ1NtYWxsJykgc2V0dGluZygnZ3V0dGVyUGFkZGluZ1NtYWxsJyk7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50Lm1lZGl1bScpKSB7XG4gICAgcGFkZGluZzogc2V0dGluZygnZ3V0dGVyUGFkZGluZ1NtYWxsJykgc2V0dGluZygnZ3V0dGVyUGFkZGluZycpO1xuICB9XG5cbiAgLy9AaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubGFyZ2UnKSkge1xuICAvLyAgcGFkZGluZzogc2V0dGluZygnZ3V0dGVyUGFkZGluZycpIHNldHRpbmcoJ2d1dHRlclBhZGRpbmcnKTtcbiAgLy99XG5cbiAgLmdsb2JhbC1oZWFkZXIgJiB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LmxhcmdlJykpIHtcbiAgICAgIHBhZGRpbmc6IHNldHRpbmcoJ2d1dHRlclBhZGRpbmdTbWFsbCcpIHNldHRpbmcoJ2d1dHRlclBhZGRpbmdNZWRpdW0nKVxuICAgIH1cbiAgfVxuXG4gICYuLXdoaXRlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgfVxuXG4gICYuLWdyYXkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKGdyYXksIHhsaWdodCk7XG4gIH1cblxuICAmLi1ncmVlbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IoZ3JlZW4pO1xuICB9XG5cbiAgJi4tZmx1c2gtYm90dG9tIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICB9XG5cbiAgJi4tZmx1c2gtdG9wIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICB9XG5cbiAgJi4tZmx1c2gtbGVmdCB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICB9XG5cbiAgJi4tZmx1c2gtcmlnaHQge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gIH1cblxuICAmLi1mbHVzaC1hbGwge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG59XG4iLCIudXBjb21pbmctZXZlbnRzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IoZ3JleSwgeGxpZ2h0KTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgZmxleC13cmFwOiB3cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHBhZGRpbmc6IHNldHRpbmcoJ2d1dHRlclBhZGRpbmdTbWFsbCcpIHNldHRpbmcoJ2d1dHRlclBhZGRpbmdTbWFsbCcpO1xuICBtYXJnaW46IHNldHRpbmcoJ2d1dHRlclBhZGRpbmdTbWFsbCcpIDA7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LmxhcmdlJykpIHtcbiAgICBwYWRkaW5nOiBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nU21hbGwnKSBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nJyk7XG4gIH1cbn1cblxuLnVwY29taW5nLWV2ZW50c19fY29udHJvbHMge1xuICBhbGlnbi1zZWxmOiBjZW50ZXI7XG5cbiAgaSB7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICBjb2xvcjogY29sb3IoYmx1ZSk7XG4gICAgZm9udC1zaXplOiA0MHB4O1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiBsaWdodGVuKGNvbG9yKGdyYXkpLCAxMCUpO1xuICAgIH1cbiAgfVxufVxuIiwiLmZiLWNvbW1lbnRzIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59IiwiIiwiQG1lZGlhIHByaW50IHtcblxuICAqIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICBjb2xvcjogIzAwMCAhaW1wb3J0YW50O1xuICAgIHRleHQtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7IC8vIEJsYWNrIHByaW50cyBmYXN0ZXI6IGg1YnAuY29tL3NcbiAgfVxuXG4gIGEsXG4gIGE6dmlzaXRlZCB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIH1cblxuICBwcmUsXG4gIGJsb2NrcXVvdGUge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICM5OTk7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICB9XG5cbiAgdGhlYWQgeyAvLyBoNWJwLmNvbS90XG4gICAgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwO1xuICB9XG5cbiAgdHIsXG4gIGltZyB7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICB9XG5cbiAgaW1nIHtcbiAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgfVxuXG4gIEBwYWdlIHtcbiAgICBtYXJnaW46IC41Y207XG4gIH1cblxuICBwLFxuICBoMixcbiAgaDMge1xuICAgIG9ycGhhbnM6IDM7XG4gICAgd2lkb3dzOiAzO1xuICB9XG5cbiAgaDIsXG4gIGgzIHtcbiAgICBwYWdlLWJyZWFrLWFmdGVyOiBhdm9pZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgU2l0ZS1zcGVjaWZpYyBzdHlsZXMgYmVsb3dcbiAgICovXG5cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FDQUEsNERBQTREO0FBRTVEOzs7O0dBSUc7QUFFSCxBQUFBLElBQUksQ0FBQztFQUNILFdBQVcsRUFBRSxVQUFVO0VBQUUsT0FBTztFQUNoQyxvQkFBb0IsRUFBRSxJQUFJO0VBQUUsT0FBTztFQUNuQyx3QkFBd0IsRUFBRSxJQUFJO0VBQUUsT0FBTyxFQUN4Qzs7QUFFRDs7R0FFRztBQUVILEFBQUEsSUFBSSxDQUFDO0VBQ0gsTUFBTSxFQUFFLENBQUMsR0FDVjs7QUFFRDtnRkFDZ0Y7QUFFaEY7Ozs7O0dBS0c7QUFFSCxBQUFBLE9BQU87QUFDUCxLQUFLO0FBQ0wsT0FBTztBQUNQLFVBQVU7QUFDVixNQUFNO0FBQ04sTUFBTTtBQUNOLE1BQU07QUFDTixNQUFNO0FBQ04sSUFBSTtBQUNKLElBQUk7QUFDSixHQUFHO0FBQ0gsT0FBTztBQUNQLE9BQU8sQ0FBQztFQUNOLE9BQU8sRUFBRSxLQUFLLEdBQ2Y7O0FBRUQ7OztHQUdHO0FBRUgsQUFBQSxLQUFLO0FBQ0wsTUFBTTtBQUNOLFFBQVE7QUFDUixLQUFLLENBQUM7RUFDSixPQUFPLEVBQUUsWUFBWTtFQUFFLE9BQU87RUFDOUIsY0FBYyxFQUFFLFFBQVE7RUFBRSxPQUFPLEVBQ2xDOztBQUVEOzs7R0FHRztBQUVILEFBQUEsS0FBSyxBQUFBLElBQUssRUFBQSxBQUFBLFFBQUMsQUFBQSxHQUFXO0VBQ3BCLE9BQU8sRUFBRSxJQUFJO0VBQ2IsTUFBTSxFQUFFLENBQUMsR0FDVjs7QUFFRDs7O0dBR0c7Q0FFSCxBQUFBLEFBQUEsTUFBQyxBQUFBO0FBQ0QsUUFBUSxDQUFDO0VBQ1AsT0FBTyxFQUFFLElBQUksR0FD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 */
