/*! PhotoSwipe main CSS by Dmitry Semenov | photoswipe.com | MIT license */
/*
	Styles for basic PhotoSwipe functionality (sliding area, open/close transitions)
*/
/* pswp = photoswipe */
.pswp {
  display: none;
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  overflow: hidden;
  -ms-touch-action: none;
  touch-action: none;
  z-index: 1500;
  -webkit-text-size-adjust: 100%;
  /* create separate layer, to avoid paint on window.onscroll in webkit/blink */
  -webkit-backface-visibility: hidden;
  outline: none; }
  .pswp * {
    -webkit-box-sizing: border-box;
            box-sizing: border-box; }
  .pswp img {
    max-width: none; }

/* style is added when JS option showHideOpacity is set to true */
.pswp--animate_opacity {
  /* 0.001, because opacity:0 doesn't trigger Paint action, which causes lag at start of transition */
  opacity: 0.001;
  will-change: opacity;
  /* for open/close transition */
  -webkit-transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1);
          transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1); }

.pswp--open {
  display: block; }

.pswp--zoom-allowed .pswp__img {
  /* autoprefixer: off */
  cursor: -webkit-zoom-in;
  cursor: -moz-zoom-in;
  cursor: zoom-in; }

.pswp--zoomed-in .pswp__img {
  /* autoprefixer: off */
  cursor: -webkit-grab;
  cursor: -moz-grab;
  cursor: grab; }

.pswp--dragging .pswp__img {
  /* autoprefixer: off */
  cursor: -webkit-grabbing;
  cursor: -moz-grabbing;
  cursor: grabbing; }

/*
	Background is added as a separate element.
	As animating opacity is much faster than animating rgba() background-color.
*/
.pswp__bg {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: #000;
  opacity: 0;
  -webkit-transform: translateZ(0);
          transform: translateZ(0);
  -webkit-backface-visibility: hidden;
  will-change: opacity; }

.pswp__scroll-wrap {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  overflow: hidden; }

.pswp__container,
.pswp__zoom-wrap {
  -ms-touch-action: none;
  touch-action: none;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0; }

/* Prevent selection and tap highlights */
.pswp__container,
.pswp__img {
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
      user-select: none;
  -webkit-tap-highlight-color: transparent;
  -webkit-touch-callout: none; }

.pswp__zoom-wrap {
  position: absolute;
  width: 100%;
  -webkit-transform-origin: left top;
  -ms-transform-origin: left top;
  transform-origin: left top;
  /* for open/close transition */
  -webkit-transition: -webkit-transform 333ms cubic-bezier(0.4, 0, 0.22, 1);
          transition: transform 333ms cubic-bezier(0.4, 0, 0.22, 1); }

.pswp__bg {
  will-change: opacity;
  /* for open/close transition */
  -webkit-transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1);
          transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1); }

.pswp--animated-in .pswp__bg,
.pswp--animated-in .pswp__zoom-wrap {
  -webkit-transition: none;
  transition: none; }

.pswp__container,
.pswp__zoom-wrap {
  -webkit-backface-visibility: hidden; }

.pswp__item {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  overflow: hidden; }

.pswp__img {
  position: absolute;
  width: auto;
  height: auto;
  top: 0;
  left: 0; }

/*
	stretched thumbnail or div placeholder element (see below)
	style is added to avoid flickering in webkit/blink when layers overlap
*/
.pswp__img--placeholder {
  -webkit-backface-visibility: hidden; }

/*
	div element that matches size of large image
	large image loads on top of it
*/
.pswp__img--placeholder--blank {
  background: #222; }

.pswp--ie .pswp__img {
  width: 100% !important;
  height: auto !important;
  left: 0;
  top: 0; }

/*
	Error message appears when image is not loaded
	(JS option errorMsg controls markup)
*/
.pswp__error-msg {
  position: absolute;
  left: 0;
  top: 50%;
  width: 100%;
  text-align: center;
  font-size: 14px;
  line-height: 16px;
  margin-top: -8px;
  color: #CCC; }

.pswp__error-msg a {
  color: #CCC;
  text-decoration: underline; }

@charset "UTF-8";
/**
 * ----------------------
 * Un.titled
 * Main - Global
 * ----------------------
 */
/**
 * Dependencies
 */
/*! normalize.scss v0.1.0 | MIT License | based on 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;
}

:root {
  --reflex-columns: 12;
  --reflex-grid-spacing: 15px;
  --reflex-xs: 576px;
  --reflex-sm: 768px;
  --reflex-md: 992px;
  --reflex-lg: 1200px;
  --reflex-xlg: 1600px;
  --reflex-xxs-max: 575px;
  --reflex-xs-max: 767px;
  --reflex-sm-max: 991px;
  --reflex-md-max: 1199px;
  --reflex-lg-max: 1599px;
}

.container,
.container-full {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  width: 100%;
  margin-right: auto;
  margin-left: auto;
  padding-right: 30px;
  padding-left: 30px;
}
.container .grid,
.container-full .grid {
  margin-right: -15px;
  margin-left: -15px;
}

@media (min-width: 576px) {
  .container {
    max-width: 576px;
  }
}
@media (min-width: 768px) {
  .container {
    max-width: 768px;
  }
}
@media (min-width: 992px) {
  .container {
    max-width: 992px;
  }
}
@media (min-width: 1200px) {
  .container {
    max-width: 1200px;
  }
}
@media (min-width: 1600px) {
  .container {
    max-width: 1600px;
  }
}

.grid {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  display: block;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -ms-flex-wrap: wrap;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  padding: 0;
  margin: 0 auto;
  position: relative;
  letter-spacing: -0.31em;
  *letter-spacing: normal;
  word-spacing: -0.43em;
  list-style-type: none;
}
.grid::before, .grid::after {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  letter-spacing: normal;
  word-spacing: normal;
  white-space: normal;
}

[class*=col-] {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  letter-spacing: normal;
  word-spacing: normal;
  white-space: normal;
  position: relative;
  width: 100%;
  vertical-align: top;
  padding: 15px;
  display: inline-block;
  *display: inline;
  zoom: 1;
}
[class*=col-]::before, [class*=col-]::after {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  letter-spacing: normal;
  word-spacing: normal;
  white-space: normal;
}
[class*=col-] .grid {
  -ms-flex: 1 1 auto;
  -webkit-flex: 1 1 auto;
  flex: 1 1 auto;
  margin: -15px;
}

.col-12 {
  width: 100%;
  *width: 99.9%;
}

.col-11 {
  width: 91.6666666667%;
  *width: 91.5666666667%;
}

.col-10 {
  width: 83.3333333333%;
  *width: 83.2333333333%;
}

.col-9 {
  width: 75%;
  *width: 74.9%;
}

.col-8 {
  width: 66.6666666667%;
  *width: 66.5666666667%;
}

.col-7 {
  width: 58.3333333333%;
  *width: 58.2333333333%;
}

.col-6 {
  width: 50%;
  *width: 49.9%;
}

.col-5 {
  width: 41.6666666667%;
  *width: 41.5666666667%;
}

.col-4 {
  width: 33.3333333333%;
  *width: 33.2333333333%;
}

.col-3 {
  width: 25%;
  *width: 24.9%;
}

.col-2 {
  width: 16.6666666667%;
  *width: 16.5666666667%;
}

.col-1 {
  width: 8.3333333333%;
  *width: 8.2333333333%;
}

@media (min-width: 576px) {
  .col-xs-12 {
    width: 100%;
    *width: 99.9%;
  }
  .col-xs-11 {
    width: 91.6666666667%;
    *width: 91.5666666667%;
  }
  .col-xs-10 {
    width: 83.3333333333%;
    *width: 83.2333333333%;
  }
  .col-xs-9 {
    width: 75%;
    *width: 74.9%;
  }
  .col-xs-8 {
    width: 66.6666666667%;
    *width: 66.5666666667%;
  }
  .col-xs-7 {
    width: 58.3333333333%;
    *width: 58.2333333333%;
  }
  .col-xs-6 {
    width: 50%;
    *width: 49.9%;
  }
  .col-xs-5 {
    width: 41.6666666667%;
    *width: 41.5666666667%;
  }
  .col-xs-4 {
    width: 33.3333333333%;
    *width: 33.2333333333%;
  }
  .col-xs-3 {
    width: 25%;
    *width: 24.9%;
  }
  .col-xs-2 {
    width: 16.6666666667%;
    *width: 16.5666666667%;
  }
  .col-xs-1 {
    width: 8.3333333333%;
    *width: 8.2333333333%;
  }
}
@media (min-width: 768px) {
  .col-sm-12 {
    width: 100%;
    *width: 99.9%;
  }
  .col-sm-11 {
    width: 91.6666666667%;
    *width: 91.5666666667%;
  }
  .col-sm-10 {
    width: 83.3333333333%;
    *width: 83.2333333333%;
  }
  .col-sm-9 {
    width: 75%;
    *width: 74.9%;
  }
  .col-sm-8 {
    width: 66.6666666667%;
    *width: 66.5666666667%;
  }
  .col-sm-7 {
    width: 58.3333333333%;
    *width: 58.2333333333%;
  }
  .col-sm-6 {
    width: 50%;
    *width: 49.9%;
  }
  .col-sm-5 {
    width: 41.6666666667%;
    *width: 41.5666666667%;
  }
  .col-sm-4 {
    width: 33.3333333333%;
    *width: 33.2333333333%;
  }
  .col-sm-3 {
    width: 25%;
    *width: 24.9%;
  }
  .col-sm-2 {
    width: 16.6666666667%;
    *width: 16.5666666667%;
  }
  .col-sm-1 {
    width: 8.3333333333%;
    *width: 8.2333333333%;
  }
}
@media (min-width: 992px) {
  .col-md-12 {
    width: 100%;
    *width: 99.9%;
  }
  .col-md-11 {
    width: 91.6666666667%;
    *width: 91.5666666667%;
  }
  .col-md-10 {
    width: 83.3333333333%;
    *width: 83.2333333333%;
  }
  .col-md-9 {
    width: 75%;
    *width: 74.9%;
  }
  .col-md-8 {
    width: 66.6666666667%;
    *width: 66.5666666667%;
  }
  .col-md-7 {
    width: 58.3333333333%;
    *width: 58.2333333333%;
  }
  .col-md-6 {
    width: 50%;
    *width: 49.9%;
  }
  .col-md-5 {
    width: 41.6666666667%;
    *width: 41.5666666667%;
  }
  .col-md-4 {
    width: 33.3333333333%;
    *width: 33.2333333333%;
  }
  .col-md-3 {
    width: 25%;
    *width: 24.9%;
  }
  .col-md-2 {
    width: 16.6666666667%;
    *width: 16.5666666667%;
  }
  .col-md-1 {
    width: 8.3333333333%;
    *width: 8.2333333333%;
  }
}
@media (min-width: 1200px) {
  .col-lg-12 {
    width: 100%;
    *width: 99.9%;
  }
  .col-lg-11 {
    width: 91.6666666667%;
    *width: 91.5666666667%;
  }
  .col-lg-10 {
    width: 83.3333333333%;
    *width: 83.2333333333%;
  }
  .col-lg-9 {
    width: 75%;
    *width: 74.9%;
  }
  .col-lg-8 {
    width: 66.6666666667%;
    *width: 66.5666666667%;
  }
  .col-lg-7 {
    width: 58.3333333333%;
    *width: 58.2333333333%;
  }
  .col-lg-6 {
    width: 50%;
    *width: 49.9%;
  }
  .col-lg-5 {
    width: 41.6666666667%;
    *width: 41.5666666667%;
  }
  .col-lg-4 {
    width: 33.3333333333%;
    *width: 33.2333333333%;
  }
  .col-lg-3 {
    width: 25%;
    *width: 24.9%;
  }
  .col-lg-2 {
    width: 16.6666666667%;
    *width: 16.5666666667%;
  }
  .col-lg-1 {
    width: 8.3333333333%;
    *width: 8.2333333333%;
  }
}
@media (min-width: 1600px) {
  .col-xlg-12 {
    width: 100%;
    *width: 99.9%;
  }
  .col-xlg-11 {
    width: 91.6666666667%;
    *width: 91.5666666667%;
  }
  .col-xlg-10 {
    width: 83.3333333333%;
    *width: 83.2333333333%;
  }
  .col-xlg-9 {
    width: 75%;
    *width: 74.9%;
  }
  .col-xlg-8 {
    width: 66.6666666667%;
    *width: 66.5666666667%;
  }
  .col-xlg-7 {
    width: 58.3333333333%;
    *width: 58.2333333333%;
  }
  .col-xlg-6 {
    width: 50%;
    *width: 49.9%;
  }
  .col-xlg-5 {
    width: 41.6666666667%;
    *width: 41.5666666667%;
  }
  .col-xlg-4 {
    width: 33.3333333333%;
    *width: 33.2333333333%;
  }
  .col-xlg-3 {
    width: 25%;
    *width: 24.9%;
  }
  .col-xlg-2 {
    width: 16.6666666667%;
    *width: 16.5666666667%;
  }
  .col-xlg-1 {
    width: 8.3333333333%;
    *width: 8.2333333333%;
  }
}
.col-auto {
  -ms-flex: 1 0 0px;
  -webkit-flex: 1 0 0px;
  flex: 1 0 0px;
  width: auto;
}

@media (min-width: 576px) {
  .col-xs-auto {
    -ms-flex: 1 0 0px;
    -webkit-flex: 1 0 0px;
    flex: 1 0 0px;
    width: auto;
  }
}
@media (min-width: 768px) {
  .col-sm-auto {
    -ms-flex: 1 0 0px;
    -webkit-flex: 1 0 0px;
    flex: 1 0 0px;
    width: auto;
  }
}
@media (min-width: 992px) {
  .col-md-auto {
    -ms-flex: 1 0 0px;
    -webkit-flex: 1 0 0px;
    flex: 1 0 0px;
    width: auto;
  }
}
@media (min-width: 1200px) {
  .col-lg-auto {
    -ms-flex: 1 0 0px;
    -webkit-flex: 1 0 0px;
    flex: 1 0 0px;
    width: auto;
  }
}
@media (min-width: 1600px) {
  .col-xlg-auto {
    -ms-flex: 1 0 0px;
    -webkit-flex: 1 0 0px;
    flex: 1 0 0px;
    width: auto;
  }
}
.order-12 {
  -ms-flex-order: 12;
  -webkit-order: 12;
  order: 12;
}

.order-11 {
  -ms-flex-order: 11;
  -webkit-order: 11;
  order: 11;
}

.order-10 {
  -ms-flex-order: 10;
  -webkit-order: 10;
  order: 10;
}

.order-9 {
  -ms-flex-order: 9;
  -webkit-order: 9;
  order: 9;
}

.order-8 {
  -ms-flex-order: 8;
  -webkit-order: 8;
  order: 8;
}

.order-7 {
  -ms-flex-order: 7;
  -webkit-order: 7;
  order: 7;
}

.order-6 {
  -ms-flex-order: 6;
  -webkit-order: 6;
  order: 6;
}

.order-5 {
  -ms-flex-order: 5;
  -webkit-order: 5;
  order: 5;
}

.order-4 {
  -ms-flex-order: 4;
  -webkit-order: 4;
  order: 4;
}

.order-3 {
  -ms-flex-order: 3;
  -webkit-order: 3;
  order: 3;
}

.order-2 {
  -ms-flex-order: 2;
  -webkit-order: 2;
  order: 2;
}

.order-1 {
  -ms-flex-order: 1;
  -webkit-order: 1;
  order: 1;
}

.order-0 {
  -ms-flex-order: 0;
  -webkit-order: 0;
  order: 0;
}

@media (min-width: 576px) {
  .order-xs-12 {
    -ms-flex-order: 12;
    -webkit-order: 12;
    order: 12;
  }
  .order-xs-11 {
    -ms-flex-order: 11;
    -webkit-order: 11;
    order: 11;
  }
  .order-xs-10 {
    -ms-flex-order: 10;
    -webkit-order: 10;
    order: 10;
  }
  .order-xs-9 {
    -ms-flex-order: 9;
    -webkit-order: 9;
    order: 9;
  }
  .order-xs-8 {
    -ms-flex-order: 8;
    -webkit-order: 8;
    order: 8;
  }
  .order-xs-7 {
    -ms-flex-order: 7;
    -webkit-order: 7;
    order: 7;
  }
  .order-xs-6 {
    -ms-flex-order: 6;
    -webkit-order: 6;
    order: 6;
  }
  .order-xs-5 {
    -ms-flex-order: 5;
    -webkit-order: 5;
    order: 5;
  }
  .order-xs-4 {
    -ms-flex-order: 4;
    -webkit-order: 4;
    order: 4;
  }
  .order-xs-3 {
    -ms-flex-order: 3;
    -webkit-order: 3;
    order: 3;
  }
  .order-xs-2 {
    -ms-flex-order: 2;
    -webkit-order: 2;
    order: 2;
  }
  .order-xs-1 {
    -ms-flex-order: 1;
    -webkit-order: 1;
    order: 1;
  }
  .order-xs-0 {
    -ms-flex-order: 0;
    -webkit-order: 0;
    order: 0;
  }
}
@media (min-width: 768px) {
  .order-sm-12 {
    -ms-flex-order: 12;
    -webkit-order: 12;
    order: 12;
  }
  .order-sm-11 {
    -ms-flex-order: 11;
    -webkit-order: 11;
    order: 11;
  }
  .order-sm-10 {
    -ms-flex-order: 10;
    -webkit-order: 10;
    order: 10;
  }
  .order-sm-9 {
    -ms-flex-order: 9;
    -webkit-order: 9;
    order: 9;
  }
  .order-sm-8 {
    -ms-flex-order: 8;
    -webkit-order: 8;
    order: 8;
  }
  .order-sm-7 {
    -ms-flex-order: 7;
    -webkit-order: 7;
    order: 7;
  }
  .order-sm-6 {
    -ms-flex-order: 6;
    -webkit-order: 6;
    order: 6;
  }
  .order-sm-5 {
    -ms-flex-order: 5;
    -webkit-order: 5;
    order: 5;
  }
  .order-sm-4 {
    -ms-flex-order: 4;
    -webkit-order: 4;
    order: 4;
  }
  .order-sm-3 {
    -ms-flex-order: 3;
    -webkit-order: 3;
    order: 3;
  }
  .order-sm-2 {
    -ms-flex-order: 2;
    -webkit-order: 2;
    order: 2;
  }
  .order-sm-1 {
    -ms-flex-order: 1;
    -webkit-order: 1;
    order: 1;
  }
  .order-sm-0 {
    -ms-flex-order: 0;
    -webkit-order: 0;
    order: 0;
  }
}
@media (min-width: 992px) {
  .order-md-12 {
    -ms-flex-order: 12;
    -webkit-order: 12;
    order: 12;
  }
  .order-md-11 {
    -ms-flex-order: 11;
    -webkit-order: 11;
    order: 11;
  }
  .order-md-10 {
    -ms-flex-order: 10;
    -webkit-order: 10;
    order: 10;
  }
  .order-md-9 {
    -ms-flex-order: 9;
    -webkit-order: 9;
    order: 9;
  }
  .order-md-8 {
    -ms-flex-order: 8;
    -webkit-order: 8;
    order: 8;
  }
  .order-md-7 {
    -ms-flex-order: 7;
    -webkit-order: 7;
    order: 7;
  }
  .order-md-6 {
    -ms-flex-order: 6;
    -webkit-order: 6;
    order: 6;
  }
  .order-md-5 {
    -ms-flex-order: 5;
    -webkit-order: 5;
    order: 5;
  }
  .order-md-4 {
    -ms-flex-order: 4;
    -webkit-order: 4;
    order: 4;
  }
  .order-md-3 {
    -ms-flex-order: 3;
    -webkit-order: 3;
    order: 3;
  }
  .order-md-2 {
    -ms-flex-order: 2;
    -webkit-order: 2;
    order: 2;
  }
  .order-md-1 {
    -ms-flex-order: 1;
    -webkit-order: 1;
    order: 1;
  }
  .order-md-0 {
    -ms-flex-order: 0;
    -webkit-order: 0;
    order: 0;
  }
}
@media (min-width: 1200px) {
  .order-lg-12 {
    -ms-flex-order: 12;
    -webkit-order: 12;
    order: 12;
  }
  .order-lg-11 {
    -ms-flex-order: 11;
    -webkit-order: 11;
    order: 11;
  }
  .order-lg-10 {
    -ms-flex-order: 10;
    -webkit-order: 10;
    order: 10;
  }
  .order-lg-9 {
    -ms-flex-order: 9;
    -webkit-order: 9;
    order: 9;
  }
  .order-lg-8 {
    -ms-flex-order: 8;
    -webkit-order: 8;
    order: 8;
  }
  .order-lg-7 {
    -ms-flex-order: 7;
    -webkit-order: 7;
    order: 7;
  }
  .order-lg-6 {
    -ms-flex-order: 6;
    -webkit-order: 6;
    order: 6;
  }
  .order-lg-5 {
    -ms-flex-order: 5;
    -webkit-order: 5;
    order: 5;
  }
  .order-lg-4 {
    -ms-flex-order: 4;
    -webkit-order: 4;
    order: 4;
  }
  .order-lg-3 {
    -ms-flex-order: 3;
    -webkit-order: 3;
    order: 3;
  }
  .order-lg-2 {
    -ms-flex-order: 2;
    -webkit-order: 2;
    order: 2;
  }
  .order-lg-1 {
    -ms-flex-order: 1;
    -webkit-order: 1;
    order: 1;
  }
  .order-lg-0 {
    -ms-flex-order: 0;
    -webkit-order: 0;
    order: 0;
  }
}
@media (min-width: 1600px) {
  .order-xlg-12 {
    -ms-flex-order: 12;
    -webkit-order: 12;
    order: 12;
  }
  .order-xlg-11 {
    -ms-flex-order: 11;
    -webkit-order: 11;
    order: 11;
  }
  .order-xlg-10 {
    -ms-flex-order: 10;
    -webkit-order: 10;
    order: 10;
  }
  .order-xlg-9 {
    -ms-flex-order: 9;
    -webkit-order: 9;
    order: 9;
  }
  .order-xlg-8 {
    -ms-flex-order: 8;
    -webkit-order: 8;
    order: 8;
  }
  .order-xlg-7 {
    -ms-flex-order: 7;
    -webkit-order: 7;
    order: 7;
  }
  .order-xlg-6 {
    -ms-flex-order: 6;
    -webkit-order: 6;
    order: 6;
  }
  .order-xlg-5 {
    -ms-flex-order: 5;
    -webkit-order: 5;
    order: 5;
  }
  .order-xlg-4 {
    -ms-flex-order: 4;
    -webkit-order: 4;
    order: 4;
  }
  .order-xlg-3 {
    -ms-flex-order: 3;
    -webkit-order: 3;
    order: 3;
  }
  .order-xlg-2 {
    -ms-flex-order: 2;
    -webkit-order: 2;
    order: 2;
  }
  .order-xlg-1 {
    -ms-flex-order: 1;
    -webkit-order: 1;
    order: 1;
  }
  .order-xlg-0 {
    -ms-flex-order: 0;
    -webkit-order: 0;
    order: 0;
  }
}
.offset-11 {
  margin-left: 91.6666666667%;
  *margin-left: 91.5666666667%;
}

.offset-10 {
  margin-left: 83.3333333333%;
  *margin-left: 83.2333333333%;
}

.offset-9 {
  margin-left: 75%;
  *margin-left: 74.9%;
}

.offset-8 {
  margin-left: 66.6666666667%;
  *margin-left: 66.5666666667%;
}

.offset-7 {
  margin-left: 58.3333333333%;
  *margin-left: 58.2333333333%;
}

.offset-6 {
  margin-left: 50%;
  *margin-left: 49.9%;
}

.offset-5 {
  margin-left: 41.6666666667%;
  *margin-left: 41.5666666667%;
}

.offset-4 {
  margin-left: 33.3333333333%;
  *margin-left: 33.2333333333%;
}

.offset-3 {
  margin-left: 25%;
  *margin-left: 24.9%;
}

.offset-2 {
  margin-left: 16.6666666667%;
  *margin-left: 16.5666666667%;
}

.offset-1 {
  margin-left: 8.3333333333%;
  *margin-left: 8.2333333333%;
}

@media (min-width: 576px) {
  .offset-xs-11 {
    margin-left: 91.6666666667%;
    *margin-left: 91.5666666667%;
  }
  .offset-xs-10 {
    margin-left: 83.3333333333%;
    *margin-left: 83.2333333333%;
  }
  .offset-xs-9 {
    margin-left: 75%;
    *margin-left: 74.9%;
  }
  .offset-xs-8 {
    margin-left: 66.6666666667%;
    *margin-left: 66.5666666667%;
  }
  .offset-xs-7 {
    margin-left: 58.3333333333%;
    *margin-left: 58.2333333333%;
  }
  .offset-xs-6 {
    margin-left: 50%;
    *margin-left: 49.9%;
  }
  .offset-xs-5 {
    margin-left: 41.6666666667%;
    *margin-left: 41.5666666667%;
  }
  .offset-xs-4 {
    margin-left: 33.3333333333%;
    *margin-left: 33.2333333333%;
  }
  .offset-xs-3 {
    margin-left: 25%;
    *margin-left: 24.9%;
  }
  .offset-xs-2 {
    margin-left: 16.6666666667%;
    *margin-left: 16.5666666667%;
  }
  .offset-xs-1 {
    margin-left: 8.3333333333%;
    *margin-left: 8.2333333333%;
  }
  .offset-xs-0 {
    margin-left: 0;
    *margin-left: -0.1%;
  }
}
@media (min-width: 768px) {
  .offset-sm-11 {
    margin-left: 91.6666666667%;
    *margin-left: 91.5666666667%;
  }
  .offset-sm-10 {
    margin-left: 83.3333333333%;
    *margin-left: 83.2333333333%;
  }
  .offset-sm-9 {
    margin-left: 75%;
    *margin-left: 74.9%;
  }
  .offset-sm-8 {
    margin-left: 66.6666666667%;
    *margin-left: 66.5666666667%;
  }
  .offset-sm-7 {
    margin-left: 58.3333333333%;
    *margin-left: 58.2333333333%;
  }
  .offset-sm-6 {
    margin-left: 50%;
    *margin-left: 49.9%;
  }
  .offset-sm-5 {
    margin-left: 41.6666666667%;
    *margin-left: 41.5666666667%;
  }
  .offset-sm-4 {
    margin-left: 33.3333333333%;
    *margin-left: 33.2333333333%;
  }
  .offset-sm-3 {
    margin-left: 25%;
    *margin-left: 24.9%;
  }
  .offset-sm-2 {
    margin-left: 16.6666666667%;
    *margin-left: 16.5666666667%;
  }
  .offset-sm-1 {
    margin-left: 8.3333333333%;
    *margin-left: 8.2333333333%;
  }
  .offset-sm-0 {
    margin-left: 0;
    *margin-left: -0.1%;
  }
}
@media (min-width: 992px) {
  .offset-md-11 {
    margin-left: 91.6666666667%;
    *margin-left: 91.5666666667%;
  }
  .offset-md-10 {
    margin-left: 83.3333333333%;
    *margin-left: 83.2333333333%;
  }
  .offset-md-9 {
    margin-left: 75%;
    *margin-left: 74.9%;
  }
  .offset-md-8 {
    margin-left: 66.6666666667%;
    *margin-left: 66.5666666667%;
  }
  .offset-md-7 {
    margin-left: 58.3333333333%;
    *margin-left: 58.2333333333%;
  }
  .offset-md-6 {
    margin-left: 50%;
    *margin-left: 49.9%;
  }
  .offset-md-5 {
    margin-left: 41.6666666667%;
    *margin-left: 41.5666666667%;
  }
  .offset-md-4 {
    margin-left: 33.3333333333%;
    *margin-left: 33.2333333333%;
  }
  .offset-md-3 {
    margin-left: 25%;
    *margin-left: 24.9%;
  }
  .offset-md-2 {
    margin-left: 16.6666666667%;
    *margin-left: 16.5666666667%;
  }
  .offset-md-1 {
    margin-left: 8.3333333333%;
    *margin-left: 8.2333333333%;
  }
  .offset-md-0 {
    margin-left: 0;
    *margin-left: -0.1%;
  }
}
@media (min-width: 1200px) {
  .offset-lg-11 {
    margin-left: 91.6666666667%;
    *margin-left: 91.5666666667%;
  }
  .offset-lg-10 {
    margin-left: 83.3333333333%;
    *margin-left: 83.2333333333%;
  }
  .offset-lg-9 {
    margin-left: 75%;
    *margin-left: 74.9%;
  }
  .offset-lg-8 {
    margin-left: 66.6666666667%;
    *margin-left: 66.5666666667%;
  }
  .offset-lg-7 {
    margin-left: 58.3333333333%;
    *margin-left: 58.2333333333%;
  }
  .offset-lg-6 {
    margin-left: 50%;
    *margin-left: 49.9%;
  }
  .offset-lg-5 {
    margin-left: 41.6666666667%;
    *margin-left: 41.5666666667%;
  }
  .offset-lg-4 {
    margin-left: 33.3333333333%;
    *margin-left: 33.2333333333%;
  }
  .offset-lg-3 {
    margin-left: 25%;
    *margin-left: 24.9%;
  }
  .offset-lg-2 {
    margin-left: 16.6666666667%;
    *margin-left: 16.5666666667%;
  }
  .offset-lg-1 {
    margin-left: 8.3333333333%;
    *margin-left: 8.2333333333%;
  }
  .offset-lg-0 {
    margin-left: 0;
    *margin-left: -0.1%;
  }
}
@media (min-width: 1600px) {
  .offset-xlg-11 {
    margin-left: 91.6666666667%;
    *margin-left: 91.5666666667%;
  }
  .offset-xlg-10 {
    margin-left: 83.3333333333%;
    *margin-left: 83.2333333333%;
  }
  .offset-xlg-9 {
    margin-left: 75%;
    *margin-left: 74.9%;
  }
  .offset-xlg-8 {
    margin-left: 66.6666666667%;
    *margin-left: 66.5666666667%;
  }
  .offset-xlg-7 {
    margin-left: 58.3333333333%;
    *margin-left: 58.2333333333%;
  }
  .offset-xlg-6 {
    margin-left: 50%;
    *margin-left: 49.9%;
  }
  .offset-xlg-5 {
    margin-left: 41.6666666667%;
    *margin-left: 41.5666666667%;
  }
  .offset-xlg-4 {
    margin-left: 33.3333333333%;
    *margin-left: 33.2333333333%;
  }
  .offset-xlg-3 {
    margin-left: 25%;
    *margin-left: 24.9%;
  }
  .offset-xlg-2 {
    margin-left: 16.6666666667%;
    *margin-left: 16.5666666667%;
  }
  .offset-xlg-1 {
    margin-left: 8.3333333333%;
    *margin-left: 8.2333333333%;
  }
  .offset-xlg-0 {
    margin-left: 0;
    *margin-left: -0.1%;
  }
}
.wrap {
  -ms-flex-wrap: wrap;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
}

.no-wrap {
  -ms-flex-wrap: nowrap;
  -webkit-flex-wrap: nowrap;
  flex-wrap: nowrap;
}
.no-wrap [class*=col-] {
  -ms-flex-negative: 1;
  -webkit-flex-shrink: 1;
  flex-shrink: 1;
}

.wrap-reverse {
  -ms-flex-wrap: wrap-reverse;
  -webkit-flex-wrap: wrap-reverse;
  flex-wrap: wrap-reverse;
}

.direction-row {
  -ms-flex-direction: row;
  -webkit-flex-direction: row;
  flex-direction: row;
}

.direction-row-reverse {
  -ms-flex-direction: row-reverse;
  -webkit-flex-direction: row-reverse;
  flex-direction: row-reverse;
}

.direction-column {
  -ms-flex-direction: column;
  -webkit-flex-direction: column;
  flex-direction: column;
}

.direction-column-reverse {
  -ms-flex-direction: column-reverse;
  -webkit-flex-direction: column-reverse;
  flex-direction: column-reverse;
}

.align-start {
  -ms-flex-align: start;
  -webkit-align-items: flex-start;
  align-items: flex-start;
}

.align-end {
  -ms-flex-align: end;
  -webkit-align-items: flex-end;
  align-items: flex-end;
}
.align-end [class*=col-] {
  vertical-align: bottom;
}

.align-center {
  -ms-flex-align: center;
  -webkit-align-items: center;
  align-items: center;
}
.align-center [class*=col-] {
  vertical-align: middle;
}

.align-baseline {
  -ms-flex-align: baseline;
  -webkit-align-items: baseline;
  align-items: baseline;
}

.align-content-start {
  -ms-flex-line-pack: start;
  -webkit-align-content: flex-start;
  align-content: flex-start;
}

.align-content-end {
  -ms-flex-line-pack: end;
  -webkit-align-content: flex-end;
  align-content: flex-end;
}
.align-content-end [class*=col-] {
  vertical-align: bottom;
}

.align-content-center {
  -ms-flex-line-pack: center;
  -webkit-align-content: center;
  align-content: center;
}

.align-content-space-between {
  -ms-flex-line-pack: justify;
  -webkit-align-content: space-between;
  align-content: space-between;
}

.align-content-space-around {
  -ms-flex-line-pack: distribute;
  -webkit-align-content: space-around;
  align-content: space-around;
}

.align-self-stretch {
  -ms-flex-item-align: stretch;
  -webkit-align-self: stretch;
  align-self: stretch;
}

.align-self-start {
  -ms-flex-item-align: start;
  -webkit-align-self: flex-start;
  align-self: flex-start;
}

.align-self-end {
  -ms-flex-item-align: end;
  -webkit-align-self: flex-end;
  align-self: flex-end;
  vertical-align: bottom;
}

.align-self-center {
  -ms-flex-item-align: center;
  -webkit-align-self: center;
  align-self: center;
  vertical-align: middle;
}

.align-self-baseline {
  -ms-flex-item-align: baseline;
  -webkit-align-self: baseline;
  align-self: baseline;
  vertical-align: baseline;
}

.justify-start {
  -ms-flex-pack: start;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
}
.justify-start.grid {
  text-align: left;
}

.justify-end {
  -ms-flex-pack: end;
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
}
.justify-end.grid {
  text-align: right;
  -moz-text-align-last: right;
  text-align-last: right;
}
.justify-end.grid [class*=col-] {
  text-align: left;
  text-align: start;
  -moz-text-align-last: left;
  -moz-text-align-last: start;
  text-align-last: left;
  text-align-last: start;
}

.justify-center {
  -ms-flex-pack: center;
  -webkit-justify-content: center;
  justify-content: center;
}
.justify-center.grid {
  text-align: center;
  -moz-text-align-last: center;
  text-align-last: center;
}
.justify-center.grid [class*=col-] {
  text-align: left;
  text-align: start;
  -moz-text-align-last: left;
  -moz-text-align-last: start;
  text-align-last: left;
  text-align-last: start;
}

.justify-space-between {
  -ms-flex-pack: justify;
  -webkit-justify-content: space-between;
  justify-content: space-between;
}
.justify-space-between.grid {
  text-align: justify;
  -moz-text-align-last: justify;
  text-align-last: justify;
}
.justify-space-between.grid [class*=col-] {
  text-align: left;
  text-align: start;
  -moz-text-align-last: left;
  -moz-text-align-last: start;
  text-align-last: left;
  text-align-last: start;
}

.justify-space-around {
  -ms-flex-pack: distribute;
  -webkit-justify-content: space-around;
  justify-content: space-around;
}
.justify-space-around.grid {
  text-align: justify;
  -moz-text-align-last: justify;
  text-align-last: justify;
}
.justify-space-around.grid [class*=col-] {
  text-align: left;
  text-align: start;
  -moz-text-align-last: left;
  -moz-text-align-last: start;
  text-align-last: left;
  text-align-last: start;
}

.grid-bleed [class*=col-] {
  padding: 0;
}

.col-grid {
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -ms-flex-direction: column;
  -webkit-flex-direction: column;
  flex-direction: column;
}
.col-grid.direction-row {
  -ms-flex-direction: row;
  -webkit-flex-direction: row;
  flex-direction: row;
}

.col-bleed {
  padding: 0;
}

.col-bleed-x {
  padding: 15px 0;
}

.col-bleed-y {
  padding: 0 15px;
}

.flex-img {
  display: block;
  -ms-flex: 0 0 auto;
  -webkit-flex: 0 0 auto;
  flex: 0 0 auto;
  max-width: 100%;
  height: auto;
  width: 100%;
  *width: auto;
}

.flex-footer {
  width: 100%;
  margin-top: auto;
  margin-bottom: 0;
}
.flex-footer > :last-child {
  margin-bottom: 0;
}

@media (min-width: 0px) and (max-width: 575px) {
  .hidden-xxs {
    display: none;
  }
}

@media (min-width: 576px) {
  .hidden-xs-up {
    display: none;
  }
}

@media (max-width: 767px) {
  .hidden-xs-down {
    display: none;
  }
}

@media (min-width: 576px) and (max-width: 767px) {
  .hidden-xs {
    display: none;
  }
}

@media (min-width: 768px) {
  .hidden-sm-up {
    display: none;
  }
}

@media (max-width: 991px) {
  .hidden-sm-down {
    display: none;
  }
}

@media (min-width: 768px) and (max-width: 991px) {
  .hidden-sm {
    display: none;
  }
}

@media (min-width: 992px) {
  .hidden-md-up {
    display: none;
  }
}

@media (max-width: 1199px) {
  .hidden-md-down {
    display: none;
  }
}

@media (min-width: 992px) and (max-width: 1199px) {
  .hidden-md {
    display: none;
  }
}

@media (min-width: 1200px) {
  .hidden-lg-up {
    display: none;
  }
}

@media (max-width: 1599px) {
  .hidden-lg-down {
    display: none;
  }
}

@media (min-width: 1200px) and (max-width: 1599px) {
  .hidden-lg {
    display: none;
  }
}

@media (min-width: 1600px) {
  .hidden-xlg {
    display: none;
  }
}

/**
 * Helpers
 */
/**
 * ----------------------
 * Un.titled
 * Helpers - Focus Visible
 * ----------------------
 */
/**
 * Focus Visible
 * https://github.com/WICG/focus-visible
 * Override base focus styles for mouse and touch interactions
 */
/**
 * ----------------------
 * Un.titled
 * Helpers - Font Smoothing
 * ----------------------
 */
/** 
 * Font Smoothing
 * Enables font smoothing for capable browsers.
 * Optionally force font-smoothing on non-retina devices.
 * @param {boolean} $force [false]
 * @return {string}
 */
/**
 * ----------------------
 * Un.titled
 * Helpers - Global mixins
 * ----------------------
 */
/**
 * ----------------------
 * Un.titled
 * Helpers - Table
 * ----------------------
 */
/**
 * Responsive Table
 * Creates a responsive table
 * Accepts a list of headers to replace main 
 * table headers on mobile.
 * @param {map} $headers
 * @return {string}
 */
/**
 * Config
 */
/**
 * ----------------------
 * Un.titled
 * Config - Fonts
 * ----------------------
 */
@font-face {
  font-family: "Avenir Next World W05 Regular";
  src: url("../font/6080836/09ab0626-bb45-4650-acc8-0182d693df02.woff2") format("woff2"), url("../font/6080836/1397e812-9307-4267-8a99-8a22ea7c69c7.woff") format("woff");
  font-display: swap;
}
@font-face {
  font-family: "Avenir Next World W05 Italic";
  src: url("../font/6080994/b9c5b839-db56-4419-8fcb-6ab661babb1d.woff2") format("woff2"), url("../font/6080994/950b5788-cfdd-48d9-9d8a-523560042c5b.woff") format("woff");
  font-display: swap;
}
@font-face {
  font-family: "Avenir Next World W05 Bold";
  src: url("../font/6080870/074dfc70-6436-4f4b-9314-d1e69287aea1.woff2") format("woff2"), url("../font/6080870/0c4cefca-3b78-44b9-8b2b-667bbabffe38.woff") format("woff");
  font-display: swap;
}
@font-face {
  font-family: "AvenirNextLTW01-Regular";
  src: url("../font/2cd55546-ec00-4af9-aeca-4a3cd186da53.woff2") format("woff2"), url("../font/1e9892c0-6927-4412-9874-1b82801ba47a.woff") format("woff");
  font-display: swap;
}
@font-face {
  font-family: "AvenirNextLTW01-Italic";
  src: url("../font/7377dbe6-f11a-4a05-b33c-bc8ce1f60f84.woff2") format("woff2"), url("../font/92b66dbd-4201-4ac2-a605-4d4ffc8705cc.woff") format("woff");
  font-display: swap;
}
@font-face {
  font-family: "Avenir Next LT W01 Bold";
  src: url("../font/14c73713-e4df-4dba-933b-057feeac8dd1.woff2") format("woff2"), url("../font/b8e906a1-f5e8-4bf1-8e80-82c646ca4d5f.woff") format("woff");
  font-display: swap;
}
@font-face {
  font-family: "GT America";
  src: url("../font/GT-America-Compressed-Bold.woff2") format("woff2"), url("../font/GT-America-Compressed-Bold.woff") format("woff");
  font-display: swap;
}
/**
 * ----------------------
 * Un.titled
 * Config - Vars
 * ----------------------
 */
:root {
  --c-primary: #0e3034;
  --c-secondary: var(--c-pink);
  --c-white: #ffffff;
  --c-greyLight: #f3f2f1;
  --c-grey: #d0ccc7;
  --c-teal: #00c7b1;
  --c-yellow: #ffb81c;
  --c-purple: #af8ee0;
  --c-pink: #ffabba;
  --c-magenta: #eb4264;
  --c-red: #D5234A;
  --c-blue: #b4e4f5;
  --c-maroon: #640a32;
  --c-black: #000;
  --fontBody: "AvenirNextLTW01-Regular", "Avenir Next World W05 Regular",
    -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu,
    Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
  --fontBold: "Avenir Next LT W01 Bold", "Avenir Next World W05 Bold",
    -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu,
    Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
  --fontItalic: "AvenirNextLTW01-Italic", "Avenir Next World W05 Italic",
    -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu,
    Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
  --fontTitle: "GT America", -apple-system, BlinkMacSystemFont, "Segoe UI",
    Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
  --fontSize: 112.5%;
  --fontSmall: 70%;
  --lineHeight: 1.5;
  --containerWidth: 1802px;
  --cols-3: calc(var(--containerWidth) * 0.25);
  --cols-6: calc(var(--containerWidth) * 0.5);
  --cols-8: calc(var(--containerWidth) * 0.6666666667);
  --cols-10: calc(var(--containerWidth) * 0.833333333333);
  --variableHeightLimit: clamp(20vh, 60vw, 60vh);
  --heightLimit: 700px;
  --gutter: 15px;
  --easing: cubic-bezier(0.83, 0, 0.17, 1);
  --transition: 0.3s var(--easing);
  --lineLength: 600px;
}

/**
* Breakpoints for @include-media
*/
/**
 * Base
 */
/**
 * ----------------------
 * Un.titled
 * Base - Defaults
 * ----------------------
 */
.grid {
  max-width: var(--containerWidth);
}

.container-full > .grid {
  max-width: none;
}

ul.menu,
ul.plain {
  list-style: none;
  margin: 0;
  padding: 0;
}
ul.menu li,
ul.plain li {
  list-style: none;
  margin: 0;
  padding: 0;
}

img {
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  transition: opacity var(--transition);
}
img.lazy {
  opacity: 0;
}
@media not all and (-webkit-min-device-pixel-ratio: 0), not all and (min-resolution: 0.001dpcm) {
  @supports (-webkit-appearance: none) {
    img.lazy {
      opacity: 1;
    }
  }
}
img.loaded {
  opacity: 1;
}

.restricted-height {
  max-height: var(--heightLimit);
  width: auto;
  max-width: 100%;
  display: block;
  margin: 0 auto;
}

a[data-gallery] {
  cursor: zoom-in;
}
a[data-gallery]:hover {
  opacity: 0.85;
  text-decoration: none;
}

.hidden {
  display: none !important;
  visibility: hidden !important;
}

.video-container,
.media-vimeo-video {
  position: relative;
  padding-bottom: 56.25%;
  padding-top: 25px;
  height: 0;
}
.video-container iframe,
.media-vimeo-video iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.video-wrapper {
  position: relative;
}

.video-caption {
  margin-top: 0.5rem;
  font-size: var(--fontSmall);
}

.media-soundcloud-audio iframe {
  width: 100%;
  max-height: 150px;
}

figcaption {
  margin-top: 0.5rem;
  font-size: 90%;
}

/**
 * ----------------------
 * Un.titled
 * Base - Typography
 * ----------------------
 */
/**
 * Config
 */
/**
 * Heading
 */
h1,
.h1,
h2,
.h2,
h3,
.h3,
h4,
.h4,
h5,
.h5,
h6,
.h6 {
  margin-top: 0;
  font-family: var(--fontTitle);
  font-weight: normal;
  margin-bottom: 1rem;
}

h1,
.h1 {
  line-height: 1.15;
  font-size: clamp(2.5rem, 5vw, 5rem);
}

h2,
.h2 {
  line-height: 1.15;
  font-size: clamp(1.8rem, 2.5vw, 3rem);
}

h3,
.h3 {
  line-height: 1.3;
  font-size: clamp(1.25rem, 2.5vw, 1.5rem);
}

h4,
.h4,
h5,
.h5,
h6,
.h6 {
  font-family: var(--fontBold);
  line-height: 1.5;
  font-size: 1rem;
}
@media (max-width: 575px) {
  h4,
  .h4,
  h5,
  .h5,
  h6,
  .h6 {
    margin-bottom: 0.5rem;
  }
}

.centered {
  text-align: center;
  -moz-text-align-last: center;
       text-align-last: center;
}
.centered-padding-bottom {
  text-align: center;
  -moz-text-align-last: center;
       text-align-last: center;
  padding-bottom: 1rem;
}

.border-bottom {
  border-bottom: 1px solid var(--c-primary);
  padding-bottom: 1rem;
  margin-bottom: 2rem;
}
@media (max-width: 767px) {
  .border-bottom {
    margin-bottom: 1rem;
  }
}
.border-top {
  border-top: 1px solid var(--c-primary);
  padding-top: 1rem;
  margin-top: 2rem;
}
@media (max-width: 767px) {
  .border-top {
    margin-top: 1rem;
  }
}

/**
 * Paragraphs
 */
p {
  margin: 0 0 1.5rem;
}
p:first-of-type {
  margin-top: 0;
}
p:last-of-type {
  margin-bottom: 0;
}

/**
 * Lists
 */
ul,
ol {
  margin: 1.5rem 0;
  list-style-position: inside;
  padding-left: 0;
}

/**
 * Links
 */
a,
.link {
  color: inherit;
  font-weight: inherit;
  text-decoration: underline;
  transition: all var(--transition);
}
a:hover, a:focus, a:active,
.link:hover,
.link:focus,
.link:active {
  text-decoration: none;
  color: currentColor;
}
a:focus,
.link:focus {
  outline: 3px dashed currentColor;
}
.js-focus-visible a:focus:not(.focus-visible),
.js-focus-visible .link:focus:not(.focus-visible) {
  outline: 0;
}
a.no-link,
.link.no-link {
  pointer-events: none;
}

.no-click {
  pointer-events: none;
  cursor: default;
}

::-moz-selection {
  background-color: var(--c-secondary);
  color: var(--c-primary);
}

::selection {
  background-color: var(--c-secondary);
  color: var(--c-primary);
}

/**
 * Buttons
 */
button:focus {
  outline: 3px dashed currentColor;
}
.js-focus-visible button:focus:not(.focus-visible) {
  outline: 0;
}

/**
 * Inline
 */
strong {
  font-weight: normal;
  font-family: var(--fontBold);
}

em {
  font-family: var(--fontItalic);
  font-style: italic;
}

span {
  font-family: inherit;
  font-weight: inherit;
  line-height: inherit;
  letter-spacing: inherit;
  font-size: inherit;
}

address {
  font-family: inherit;
  font-weight: inherit;
  line-height: inherit;
  letter-spacing: inherit;
  font-size: inherit;
  font-style: normal;
}

small {
  font-size: 90%;
}

hr {
  border: solid var(--c-primary);
  border-width: 0 0 1px 0;
  width: 100%;
}

figure {
  margin: 0;
}

/**
 * ----------------------
 * Un.titled
 * Base - Main
 * ----------------------
 */
/**
 * Styles
 */
html,
body {
  -moz-font-smoothing: grayscale;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  box-sizing: border-box;
  font-size: var(--fontSize);
  line-height: var(--lineHeight);
  font-family: var(--fontBody);
  background-color: var(--c-greyLight);
  color: var(--c-primary);
}
@media (max-width: 1199px) {
  html,
  body {
    --fontSize: 100%;
  }
}

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

body {
  display: flex;
  flex-direction: column;
}

/**
 * ----------------------
 * Un.titled
 * Base - Animations
 * ----------------------
 */
@keyframes fadeIn {
  0% {
    opacity: 0;
    visibility: hidden;
  }
  100% {
    opacity: 1;
    visibility: visible;
  }
}
@keyframes fadeOut {
  0% {
    opacity: 1;
    visibility: visible;
    display: flex;
  }
  100% {
    opacity: 0;
    visibility: hidden;
    display: none;
  }
}
/**
* Atoms
*/
/**
 * ----------------------
 * Un.titled
 * Atoms - Buttons
 * ----------------------
 */
/**
 * Config
 **/
/**
 * Styles
 **/
.a-btn {
  --btnBg: var(--c-primary);
  --btnColour: var(--c-white);
  border-bottom: none;
  cursor: pointer;
  padding: 0.75rem 1rem;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  background-color: var(--btnBg);
  color: var(--btnColour);
  border: 1px solid var(--btnBg);
  transition: all var(--transition);
  text-decoration: none;
}
.a-btn::after {
  display: none;
  visibility: hidden;
}
.a-btn svg {
  margin-left: 10px;
  transition: transform var(--transition);
  width: 20px;
}
.a-btn path {
  fill: currentColor;
}
.a-btn:focus, .a-btn:hover {
  text-decoration: none;
  color: var(--btnColour);
}
.a-btn:focus svg, .a-btn:hover svg {
  transform: translateX(5px);
}
.a-btn--yel {
  --btnBg: var(--c-yellow);
  --btnColour: var(--c-primary);
}
.a-btn--blue {
  --btnBg: var(--c-blue);
  --btnColour: var(--c-primary);
}
.a-btn--wh {
  --btnBg: var(--c-white);
  --btnColour: var(--c-primary);
}
.a-btn--wide {
  padding-left: 4rem;
  padding-right: 4rem;
}
@media (max-width: 575px) {
  .a-btn--wide {
    padding-left: 1rem;
    padding-right: 1rem;
    display: flex;
  }
}
.a-btn--fullWidth {
  display: flex;
  width: 100%;
}
.a-btn--narrow {
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}
.a-btn--sm {
  --btnBg: transparent;
  --btnColour: var(--c-primary);
  border-color: var(--c-primary);
  text-transform: uppercase;
  padding: 0.25rem 0.75rem;
  font-size: var(--fontSmall);
  letter-spacing: 1px;
}
.a-btn--sm:hover {
  --btnBg: var(--c-primary);
  color: var(--c-white);
}
.a-btn--hollow {
  --btnBg: transparent;
  --btnColour: var(--c-primary);
  border-color: var(--c-primary);
}
.a-btn--iconLeft svg {
  margin: 0 10px 0 0;
}
.a-btn--iconLeft:hover svg {
  transform: translateX(-5px);
}
.a-btn--white {
  --btnBg: transparent;
  --btnColour: var(--c-white);
  border-color: var(--c-white);
}
.a-btn--white:hover {
  background-color: var(--c-pink);
  color: var(--c-primary);
  border-color: var(--c-pink);
}
.a-btn:focus {
  outline: 3px dashed var(--btnBg);
}

/**
 * ----------------------
 * Un.titled
 * Atoms - Image credits
 * ----------------------
 */
.a-image-credit {
  position: absolute;
  bottom: 0;
  right: 0;
  cursor: help;
  border: 0;
  width: 50px;
  height: 50px;
  background-color: transparent;
  display: flex;
  justify-content: center;
  align-items: center;
}
.a-image-credit__icon {
  background-color: var(--c-white);
  color: var(--c-primary);
  width: 1.25rem;
  height: 1.25rem;
  display: flex;
  justify-content: center;
  border-radius: 50%;
  align-items: center;
  text-transform: none;
  line-height: 15px;
  text-align: center;
  font-size: var(--fontSmall);
}
.a-image-credit__copy {
  background: var(--c-white);
  color: var(--c-primary);
  opacity: 0;
  position: absolute;
  right: 0;
  top: 0;
  padding: 1rem 3rem 1rem 1rem;
  font-size: var(--fontSmall);
  width: 95vw;
  max-width: 500px;
  text-align: left;
  display: block;
  pointer-events: none;
  transition: opacity var(--transition);
}
@media (max-width: 767px) {
  .a-image-credit__copy {
    padding-right: 2rem;
  }
}
.a-image-credit:focus .a-image-credit__icon, .a-image-credit:active .a-image-credit__icon, .a-image-credit:hover .a-image-credit__icon {
  color: var(--c-white);
  background-color: var(--c-primary);
}
.a-image-credit:focus .a-image-credit__copy, .a-image-credit:active .a-image-credit__copy, .a-image-credit:hover .a-image-credit__copy {
  opacity: 1;
  visibility: visible;
  z-index: 21;
}

/**
* ----------------------
* Un.titled
* Atoms - Breadcrumbs
* ----------------------
*/
/**
* Styling
*/
.a-breadcrumbs {
  padding: 0.5rem 2rem;
  font-size: var(--fontSmall);
  display: flex;
  align-items: center;
  flex-wrap: wrap;
}
@media (max-width: 767px) {
  .a-breadcrumbs {
    display: none;
    visibility: hidden;
    padding: 0.5rem 1rem;
  }
}
@media (max-width: 575px) {
  .a-breadcrumbs {
    padding: 0.5rem 15px;
  }
}
.a-breadcrumbs__divider {
  margin: 0 5px;
}
.a-breadcrumbs a {
  text-decoration: none;
}
.a-breadcrumbs a:hover {
  text-decoration: underline;
}

/**
* ----------------------
* Un.titled
* Atoms - Loader
* ----------------------
*/
/**
* Config
*/
@keyframes loaderAnimation {
  0%, 10% {
    -webkit-transform: perspective(140px) rotateX(-180deg);
    transform: perspective(140px) rotateX(-180deg);
    opacity: 0;
  }
  25%, 75% {
    -webkit-transform: perspective(140px) rotateX(0deg);
    transform: perspective(140px) rotateX(0deg);
    opacity: 1;
  }
  90%, 100% {
    -webkit-transform: perspective(140px) rotateY(180deg);
    transform: perspective(140px) rotateY(180deg);
    opacity: 0;
  }
}
:root {
  --loaderColour: var(--c-primary);
}

/**
* Styling
*/
.a-loader {
  margin: 20px auto;
  width: 40px;
  height: 40px;
  position: relative;
  transform: rotateZ(45deg);
}
.a-loader--white {
  --loaderColour: rgba(255, 255, 255, 0.8);
}
.a-loader__cube {
  float: left;
  width: 50%;
  height: 50%;
  position: relative;
  transform: scale(1.1);
}
.a-loader__cube::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: var(--loaderColour);
  animation: loaderAnimation 2.4s infinite linear both;
  transform-origin: 100% 100%;
}
.a-loader__cube-2 {
  transform: scale(1.1) rotateZ(90deg);
}
.a-loader__cube-2::before {
  animation-delay: 0.3s;
}
.a-loader__cube-3 {
  transform: scale(1.1) rotateZ(180deg);
}
.a-loader__cube-3::before {
  animation-delay: 0.6s;
}
.a-loader__cube-4 {
  transform: scale(1.1) rotateZ(270deg);
}
.a-loader__cube-4::before {
  animation-delay: 0.9s;
}

/**
* ----------------------
* Un.titled
* Atoms - Date picker
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.a-date-picker {
  width: 100%;
  max-width: 80%;
  margin-bottom: 2rem;
}
@media (max-width: 767px) {
  .a-date-picker {
    max-width: 100%;
  }
}
.a-date-picker .DayPicker-wrapper {
  position: unset;
}
.a-date-picker .DayPicker-NavBar {
  position: absolute;
  top: 1.5rem;
  right: 1rem;
  display: flex;
  align-items: center;
}
@media (max-width: 767px) {
  .a-date-picker .DayPicker-NavBar {
    width: 100%;
    right: 0;
    top: 1.25rem;
    padding: 0 1rem;
    justify-content: space-between;
  }
}
@media (max-width: 575px) {
  .a-date-picker .DayPicker-NavBar {
    top: 0.5rem;
  }
}
.a-date-picker .DayPicker-NavButton {
  position: relative;
  top: 0;
  left: 0;
  width: 40px;
  height: 40px;
  margin: 0 0.5rem;
}
@media (max-width: 767px) {
  .a-date-picker .DayPicker-NavButton {
    background-size: 15px;
    margin: 0;
  }
}
.a-date-picker .DayPicker-NavButton--prev {
  background-image: url("../img/arrow-head-left.svg") !important;
}
.a-date-picker .DayPicker-NavButton--next {
  background-image: url("../img/arrow-head-right.svg") !important;
}
.a-date-picker .DayPicker-Caption {
  font-family: var(--fontTitle);
  text-align: center;
  font-size: 1.5rem;
  border-bottom: 1px solid var(--c-primary);
  padding: 1rem 0;
}
@media (max-width: 575px) {
  .a-date-picker .DayPicker-Caption {
    font-size: 1rem;
    padding: 0.5rem 0;
  }
}
.a-date-picker abbr {
  font-family: var(--fontBold);
  font-size: 1rem;
  color: vaR(--c-primary);
}
.a-date-picker .DayPicker-Day--selected:not(.DayPicker-Day--start):not(.DayPicker-Day--end):not(.DayPicker-Day--outside) {
  background-color: rgba(255, 171, 186, 0.4) !important;
  color: var(--c-primary);
  transition: background var(--transition);
}
.a-date-picker .DayPicker-Day {
  border-radius: 0% !important;
}
.a-date-picker .DayPicker-Day--today {
  border: 1px solid var(--c-primary);
  color: var(--c-primary);
}
.a-date-picker .DayPicker-Day:hover {
  background-color: var(--c-pink) !important;
}
.a-date-picker .DayPicker-Day--start {
  border-top-left-radius: 10px !important;
  border-bottom-left-radius: 10px !important;
}
.a-date-picker .DayPicker-Day--end {
  border-top-right-radius: 10px !important;
  border-bottom-right-radius: 10px !important;
}
.a-date-picker .DayPicker-Day--selected:not(.DayPicker-Day--disabled):not(.DayPicker-Day--outside) {
  background-color: var(--c-pink);
  color: var(--c-primary);
  transition: background var(--transition);
}

/**
* ----------------------
* Un.titled
* Atoms - Pagination
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.a-pager {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  margin: 2rem 0;
}
.a-pager li {
  list-style: none;
  margin: 0;
  padding: 0;
}
.a-pager .disabled {
  display: none;
  visibility: hidden;
}
.a-pager span,
.a-pager a {
  border-bottom: none;
  text-decoration: none;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 0.25rem 0.5rem;
}
.a-pager span::after,
.a-pager a::after {
  display: none;
  visibility: hidden;
}
.a-pager a:hover {
  text-decoration: underline;
}
.a-pager a:hover path {
  fill: var(--c-secondary);
}
.a-pager span,
.a-pager a.undefined {
  text-decoration: underline;
}
.a-pager svg {
  width: 25px;
  margin: 0 0.5rem;
}
.a-pager path {
  transition: fill var(--transition);
}

/**
* ----------------------
* Un.titled
* Atoms - Columns
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.a-cols {
  width: 100%;
  padding: 0 15px;
  width: 100%;
  margin: 0 auto;
}
.a-cols--xs {
  max-width: var(--cols-3);
}
.a-cols--sm {
  max-width: var(--cols-6);
}
.a-cols--md {
  max-width: var(--cols-8);
}
.a-cols--full {
  max-width: var(--containerWidth);
}
.a-cols--bgColour {
  margin: 4rem auto;
}

/**
* ----------------------
* Un.titled
* Atoms - Image captions
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.a-caption {
  background-position: center center;
  background-repeat: no-repeat;
  background-size: 8px;
  padding-left: var(--gutter);
  background-image: url("../img/arrow-head.svg");
  background-position: left 11px;
  font-size: var(--fontSmall);
}

/**
* ----------------------
* Un.titled
* Atoms - Auto grid
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.a-auto-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(var(--autoGridMin, 1fr), var(--autoGridMax, 1fr)));
  gap: var(--autoGridGap, 1rem);
  align-items: start;
}

/**
* ----------------------
* Un.titled
* Atoms - Links
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.a-links {
  margin: 2rem 0;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
}
@media (max-width: 767px) {
  .a-links {
    margin: 1rem 0;
  }
}
.a-links a {
  margin-right: 1rem;
}

/**
* ----------------------
* Un.titled
* Atoms - Sidebar
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.a-sidebar {
  margin-bottom: 3rem;
  font-size: 1rem;
}
@media (max-width: 767px) {
  .a-sidebar {
    margin-bottom: 1.5rem;
  }
}
.a-sidebar--block {
  border: 1px solid var(--c-primary);
  border-left: 0;
  border-right: 0;
  padding: 1rem 0;
  margin-bottom: 1.5rem;
}
.a-sidebar .a-tag,
.a-sidebar .a-btn {
  margin-bottom: 1.5rem;
}
.a-sidebar svg {
  width: 15px;
}
@media (max-width: 991px) {
  .single-people .a-sidebar {
    order: -1;
  }
}

/**
* ----------------------
* Un.titled
* Atoms - Tags
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.a-tag {
  --tagBg: var(--c-primary);
  --tagColour: var(--c-white);
  display: inline-block;
  text-transform: uppercase;
  padding: 0.25rem 0.5rem;
  font-size: 90%;
  letter-spacing: 1px;
  background-color: var(--tagBg);
  color: var(--tagColour);
}
.a-tag--yel {
  --tagBg: var(--c-yellow);
  --tagColour: var(--c-primary);
}

/**
* ----------------------
* Un.titled
* Atoms - Sticky
* ----------------------
*/
/**
* Config
*/
:root {
  --stickyLeft: 0;
  --stickyWidth: 0;
  --stickyHeight: 0;
}

/**
* Styling
*/
.a-sticky[data-sticky=true] .a-btn {
  position: fixed;
  top: 0;
  left: var(--stickyLeft);
  width: var(--stickyWidth);
  z-index: 20;
  transition: none;
}
@media (max-width: 575px) {
  .a-sticky[data-sticky=true] .a-btn {
    left: 0;
    width: 100%;
  }
}
.a-sticky[data-sticky=true] .a-sticky__placeholder {
  display: block;
}
.a-sticky__placeholder {
  height: var(--stickyHeight);
  margin-bottom: 1.5rem;
  display: none;
}

/**
* ----------------------
* Un.titled
* Atoms - Event cancelled message
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.a-cancelled {
  width: 100%;
  padding: 0.75rem;
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  background-color: var(--c-yellow);
  color: var(--c-primary);
}
.a-cancelled p {
  max-width: var(--containerWidth);
}

/**
* ----------------------
* Un.titled
* Atoms - Skip link
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.a-skip-link {
  font-family: var(--fontBold);
  position: absolute;
  transform: translateY(-100%);
  width: 100%;
  background-color: var(--c-primary);
  color: var(--c-white);
  text-align: center;
  padding: 0.5rem;
  z-index: 10;
  border: 0;
  outline: 0;
}
.a-skip-link:focus, .a-skip-link:active {
  transform: translateY(0);
  color: var(--c-white);
}

/**
* ----------------------
* Un.titled
* Atoms - Listing
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.a-listing {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2rem;
}
@media (max-width: 1199px) {
  .a-listing {
    gap: 1rem;
  }
}
@media (max-width: 768px) {
  .a-listing {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 575px) {
  .a-listing {
    align-items: start;
    grid-template-columns: 1fr;
    gap: 2rem;
  }
}

/**
* ----------------------
* Un.titled
* Atoms - Citations
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.a-cite {
  position: relative;
}
.a-cite a {
  border-bottom: none;
}
.a-cite a::after {
  display: none;
  visibility: hidden;
}
.a-cite__number {
  font-size: var(--fontSmall);
  vertical-align: top;
  transition: color var(--transition);
}
.a-cite__description {
  display: none;
  visibility: hidden;
  position: absolute;
  padding: 0.5rem;
  background-color: var(--c-white);
  top: 100%;
  left: 0;
  max-width: 230px;
  font-size: var(--fontSmall);
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
}
.a-cite:focus .a-cite__number, .a-cite:hover .a-cite__number {
  color: var(--c-red);
}
.a-cite:focus .a-cite__description, .a-cite:hover .a-cite__description {
  display: block;
  visibility: visible;
}

/**
* ----------------------
* Un.titled
* Atoms - Back to top
* ----------------------
*/
/**
* Styling
*/
.a-back-top {
  border-bottom: none;
  position: sticky;
  left: calc(100% - 6rem);
  bottom: 3rem;
  margin-bottom: -30px;
  height: 60px;
  width: 60px;
  background-color: var(--c-white);
  border-radius: 50%;
  z-index: 2;
  display: flex;
  justify-content: center;
  align-items: center;
  visibility: hidden;
}
.a-back-top::after {
  display: none;
  visibility: hidden;
}
@media (max-width: 1199px) {
  .a-back-top {
    left: calc(100% - 4rem);
    bottom: 1rem;
  }
}
@media (max-width: 767px) {
  .a-back-top {
    height: 40px;
    width: 40px;
    margin-bottom: -20px;
  }
}
.a-back-top[data-visible=true] {
  display: flex;
  animation: fadeIn 0.2s ease-in-out forwards;
}
.a-back-top[data-visible=false] {
  display: flex;
  visibility: visible;
  animation: fadeOut 0.2s ease-in-out forwards;
}
.a-back-top:hover {
  transform: translateY(-10px);
}
@media (max-width: 767px) {
  .a-back-top:hover {
    transform: translateY(-5px);
  }
}
.a-back-top svg {
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
  max-height: 30px;
}
@media (max-width: 767px) {
  .a-back-top svg {
    max-height: 20px;
  }
}

/**
 * ----------------------
 * Un.titled
 * Atoms - Grid
 * ----------------------
 */
/**
 * Styling
 */
.a-grid {
  display: grid;
  gap: var(--autoGridGap, 1rem);
  align-items: start;
}
.a-grid--1 {
  grid-template-columns: 1fr;
}
.a-grid--2 {
  grid-template-columns: 1fr 1fr;
}
@media (max-width: 767px) {
  .a-grid--2 {
    grid-template-columns: 1fr;
  }
}
.a-grid--3 {
  grid-template-columns: 1fr 1fr 1fr;
}
@media (max-width: 767px) {
  .a-grid--3 {
    grid-template-columns: 1fr;
  }
}
.a-grid--4 {
  grid-template-columns: 1fr 1fr 1fr 1fr;
  grid-auto-rows: 1fr;
}
@media (max-width: 991px) {
  .a-grid--4 {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 575px) {
  .a-grid--4 {
    grid-template-columns: 1fr;
  }
}

/**
 * Molecules
 */
/**
 * ----------------------
 * Un.titled
 * Molecules - Emergency Message
 * ----------------------
 */
/**
 * Config
 **/
@keyframes slideInUp {
  0% {
    opacity: 0;
    transform: translateY(100%);
  }
  80% {
    transform: scale(1.02);
  }
  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}
/**
 * Styling
 **/
.m-emmsg {
  width: 100%;
  padding: 0.25rem 1rem;
  display: none;
  visibility: hidden;
  text-align: center;
  min-height: 52px;
  position: relative;
  align-items: center;
}
.m-emmsg.primary {
  background-color: var(--c-yellow);
  color: var(--c-primary);
}
.m-emmsg.secondary {
  background-color: var(--c-primary);
  color: #fff;
}
@media (max-width: 767px) {
  .m-emmsg {
    text-align: left;
    padding: 1rem 0;
  }
}
@media (max-width: 575px) {
  .m-emmsg {
    padding: 1rem 0;
  }
}
.m-emmsg[data-state=visible] {
  display: flex;
  visibility: visible;
}
.m-emmsg h3 {
  margin-bottom: 0.5rem;
  width: 85%;
}
.m-emmsg p {
  width: 85%;
  margin-left: auto;
  margin-right: auto;
}
@media (max-width: 767px) {
  .m-emmsg p {
    margin-left: 0;
  }
}
@media (max-width: 359px) {
  .m-emmsg p {
    max-width: 80%;
  }
}
.m-emmsg p a:hover, .m-emmsg p a:focus {
  text-decoration: underline;
}
.m-emmsg button {
  background-color: transparent;
  border: 0;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  padding: 0;
  position: absolute;
  top: 0.25rem;
  right: 2rem;
  height: 42px;
  width: 42px;
  display: flex;
  justify-content: center;
  align-items: center;
  transition: all var(--transition);
  background-color: var(--c-white);
  border-radius: 50%;
}
@media (max-width: 767px) {
  .m-emmsg button {
    right: 1rem;
  }
}
@media (max-width: 575px) {
  .m-emmsg button {
    right: 15px;
  }
}
.m-emmsg button svg {
  width: 15px;
}
.m-emmsg button path {
  stroke: var(--c-primary);
  transition: stroke var(--transition);
}
.m-emmsg button:hover {
  background-color: var(--c-primary);
}
.m-emmsg button:hover path {
  stroke: var(--c-white);
}

/**
 * ----------------------
 * Un.titled
 * Molecules - Entities
 * ----------------------
 */
article > .m-entity:last-of-type.bgColour {
  margin-bottom: -30px;
}
@media (max-width: 767px) {
  article > .m-entity:last-of-type.bgColour {
    margin-bottom: -20px;
  }
}

.m-entity {
  margin: 0 0 clamp(2rem, 5vw, 5rem);
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  /**
   * ----------------------
   * Un.titled
   * Molecules - Intro
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Image
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Quotes
   * ----------------------
   */
  /**
   * Config
   */
  /**
   * Styles
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Accordions
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Gallery
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Image & Text
   * ----------------------
   */
  /**
  * ----------------------
  * Un.titled
  * Molecules - Downloads
  * ----------------------
  */
  /**
  * Config
  */
  /**
  * Styling
  */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Embed
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Tables
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Flexible signpost
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - signposts
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Linked logos
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Video
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - YMAL
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Big CTA
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - News tags
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Quick links
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Special Options
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - People profiles
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Listing
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Mini listing
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Enhanced Event listing
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Featured content
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Citations
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Image Zoom
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Forms
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Search results
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Divider
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Buy Now Button
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - CTA Multiple
   * ----------------------
   */
}
.m-entity img:not(.restricted-height) {
  width: 100%;
  height: auto;
  display: block;
}
.m-entity--top {
  margin-top: clamp(2rem, 5vw, 5rem);
}
.m-entity__body ul, .m-entity__text ul, .m-entity__accordion ul {
  margin-left: var(--gutter);
}
.m-entity__body ul li, .m-entity__text ul li, .m-entity__accordion ul li {
  list-style: none;
  position: relative;
  margin-bottom: 10px;
}
.m-entity__body ul li::before, .m-entity__text ul li::before, .m-entity__accordion ul li::before {
  content: "";
  border-radius: 50%;
  height: 7px;
  width: 7px;
  display: block;
  position: absolute;
  left: -15px;
  top: 12px;
  background-color: currentColor;
}
.m-entity__intro {
  align-items: flex-start;
}
.m-entity__intro-block_image {
  align-items: center;
}
.m-entity__image {
  position: relative;
  padding-bottom: var(--captionHeight);
}
.m-entity__image figure {
  padding: 0 var(--gutter);
}
.m-entity__image figcaption {
  width: var(--captionWidth);
  position: absolute;
  left: var(--captionOffset);
  padding-right: var(--captionPadding);
  max-width: calc(100% - 30px);
}
.m-entity__image a {
  border-bottom: none;
}
.m-entity__image a::after {
  display: none;
  visibility: hidden;
}
.m-entity__quote {
  --starSize: 17px;
}
.m-entity__quote .short-quote {
  --starSize: 24px;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.m-entity__quote .short-quote blockquote {
  text-align: center;
  -moz-text-align-last: center;
       text-align-last: center;
}
.m-entity__quote blockquote {
  margin: 0 0 1rem;
}
.m-entity__quote cite {
  font-style: normal;
}
.m-entity__quote .rating {
  display: inline-flex;
  margin-right: 0.5rem;
  margin-bottom: 1rem;
}
.short-quote .m-entity__quote .rating {
  margin-bottom: 2rem;
}
.m-entity__quote .rating__star {
  width: var(--starSize);
  height: var(--starSize);
  margin-right: 5px;
  stroke: var(--c-primary);
}
.m-entity__quote .rating__star:last-child {
  margin-right: 0;
}
.m-entity__quote .rating--1 .rating__star:nth-child(-n+1) path {
  fill: var(--c-primary);
  stroke: var(--c-primary);
}
.m-entity__quote .rating--2 .rating__star:nth-child(-n+2) path {
  fill: var(--c-primary);
  stroke: var(--c-primary);
}
.m-entity__quote .rating--3 .rating__star:nth-child(-n+3) path {
  fill: var(--c-primary);
  stroke: var(--c-primary);
}
.m-entity__quote .rating--4 .rating__star:nth-child(-n+4) path {
  fill: var(--c-primary);
  stroke: var(--c-primary);
}
.m-entity__quote .rating--5 .rating__star:nth-child(-n+5) path {
  fill: var(--c-primary);
  stroke: var(--c-primary);
}
.m-entity__accordion .accordion {
  border-bottom: 1px solid var(--c-primary);
}
.m-entity__accordion .accordion__header {
  border-bottom: none;
  display: flex;
  width: 100%;
  border: 0;
  background-color: transparent;
  -moz-text-align-last: left;
       text-align-last: left;
  justify-content: space-between;
  align-items: center;
  padding: 0.75rem 0;
  border-top: 1px solid var(--c-primary);
  transition: all var(--transition);
  text-align: left;
}
.m-entity__accordion .accordion__header::after {
  display: none;
  visibility: hidden;
}
.m-entity__accordion .accordion__header::after {
  content: "";
  background-position: center center;
  background-repeat: no-repeat;
  background-size: contain;
  background-image: url("../img/plus.svg");
  height: 12px;
  width: 12px;
  min-width: 12px;
  transition: all var(--transition);
  visibility: visible;
  display: block;
  margin-left: 10px;
}
.m-entity__accordion .accordion__header:focus, .m-entity__accordion .accordion__header[aria-expanded=true] {
  outline: none;
  background-color: rgba(0, 0, 0, 0.05);
}
.m-entity__accordion .accordion__header:focus::after, .m-entity__accordion .accordion__header[aria-expanded=true]::after {
  transform: translateX(-10px);
}
.m-entity__accordion .accordion__header[aria-expanded=true]::after {
  transform: translateX(-10px);
  background-image: url("../img/close-accordion.svg");
}
.m-entity__accordion .accordion__title {
  margin: 0;
}
.m-entity__accordion .accordion__title:before {
  display: none;
}
.m-entity__accordion .js-accordion__panel {
  display: none;
}
.m-entity__accordion .accordion__panel {
  display: block;
  overflow: hidden;
  opacity: 1;
  transition: visibility 0s ease, max-height 0.2s ease, opacity 0.2s ease;
  max-height: 1000em;
  visibility: visible;
  transition-delay: 0s;
}
.m-entity__accordion .accordion__panel[aria-hidden=true] {
  display: block;
  max-height: 0;
  opacity: 0;
  visibility: hidden;
  transition-delay: 0.2s, 0s, 0s;
}
.m-entity__accordion .accordion__panel p:first-child {
  margin-top: 1rem;
}
.m-entity__accordion .accordion__panel p:last-child {
  margin-bottom: 1rem;
}
.m-entity__gallery {
  --autoGridMin: 20%;
  --autoGridGap: 2rem;
}
@media (max-width: 767px) {
  .m-entity__gallery {
    --autoGridMin: 30%;
    --autoGridGap: 1rem;
  }
}
@media (max-width: 499px) {
  .m-entity__gallery {
    --autoGridMin: 100px;
  }
}
.m-entity__gallery a {
  border-bottom: none;
  display: flex;
  align-items: flex-end;
}
.m-entity__gallery a::after {
  display: none;
  visibility: hidden;
}
.m-entity__gallery .a-auto-grid {
  align-items: end;
}
.m-entity__gallery figure {
  width: 100%;
}
.m-entity__gallery figcaption {
  font-size: var(--fontSmall);
}
.m-entity .m-imagetext {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 2rem;
}
@media (max-width: 575px) {
  .m-entity .m-imagetext {
    grid-template-columns: 1fr;
    gap: 1rem;
  }
}
.m-entity .m-imagetext--reverse {
  grid-template-columns: 2fr 1fr;
}
@media (max-width: 575px) {
  .m-entity .m-imagetext--reverse {
    grid-template-columns: 1fr;
  }
}
.m-entity .m-imagetext--reverse .m-imagetext__copy {
  order: -1;
}
@media (max-width: 575px) {
  .m-entity .m-imagetext--reverse .m-imagetext__copy {
    order: 1;
  }
}
.m-entity__downloads a {
  margin-bottom: 1rem;
}
.m-entity__downloads a:last-of-type {
  margin-bottom: 0;
}
.m-entity__embed iframe {
  width: 100%;
}
.m-entity__table table {
  width: 100%;
  -moz-text-align-last: left;
       text-align-last: left;
  text-align: left;
  border-spacing: 2px;
  border-collapse: unset;
}
.m-entity__table table th {
  background-color: #0e3034;
  color: #fff;
  font-weight: bold;
}
.m-entity__table table td {
  background-color: #a4dbe8;
  transition: 0.2s var(--easing);
}
.m-entity__table table td,
.m-entity__table table th {
  padding: 0.5rem;
}
.m-entity__table table tbody th {
  background-color: #a4dbe8;
  color: var(--c-primary);
  font-weight: normal;
}
.m-entity__table table tr:hover td {
  background-color: #fff;
  cursor: crosshair;
}
.m-entity__signpost:last-of-type {
  margin-bottom: 0;
}
.m-entity__signpost .signpost {
  max-width: var(--containerWidth);
  margin: 2rem auto;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 3rem;
  align-items: start;
}
@media (max-width: 1199px) {
  .m-entity__signpost .signpost {
    gap: 2rem;
    margin-left: 1rem auto;
  }
}
@media (max-width: 767px) {
  .m-entity__signpost .signpost {
    grid-template-columns: 1fr;
    margin: 0;
  }
}
.m-entity__signpost .signpost--reverse .signpost__image {
  order: -1;
}
.m-entity__signpost .signpost__image {
  border-bottom: none;
}
.m-entity__signpost .signpost__image::after {
  display: none;
  visibility: hidden;
}
.m-entity__signpost .signpost__image img {
  transition: opacity var(--transition);
}
.m-entity__signpost .signpost__image:hover {
  opacity: 1;
}
.m-entity__signpost .signpost__image:hover img {
  opacity: 0.85;
}
.m-entity__signpost .signpost__image figure {
  position: relative;
}
.m-entity__signpost .signpost__content {
  display: grid;
  gap: 1.5rem;
  justify-items: start;
}
.m-entity__signpost .signpost__content h2,
.m-entity__signpost .signpost__content .a-links {
  margin: 0;
}
.m-entity__signpost .signpost__content p {
  max-width: var(--lineLength);
}
.m-entity__signposts {
  --autoGridMin: 20%;
  --autoGridGap: 2rem;
}
.m-entity__signposts p:last-of-type {
  margin-bottom: 1rem;
}
.m-entity__signposts .a-auto-grid {
  margin-top: 2rem;
}
@media (max-width: 768px) {
  .m-entity__signposts {
    --autoGridMin: 30%;
    --autoGridGap: 1rem;
  }
}
@media (max-width: 575px) {
  .m-entity__signposts {
    --autoGridMin: 48%;
  }
}
.m-entity__externalsignposts .o-teaser__thumb {
  overflow: hidden;
}
.m-entity__linkedlogos {
  --autoGridMin: 100px;
  --autoGridMax: 30%;
  --autoGridGap: 2rem;
}
@media (max-width: 575px) {
  .m-entity__linkedlogos {
    --autoGridMax: 1fr;
  }
}
.m-entity__linkedlogos a {
  border-bottom: none;
}
.m-entity__linkedlogos a::after {
  display: none;
  visibility: hidden;
}
.m-entity__linkedlogos a:hover {
  opacity: 0.7;
}
.m-entity__linkedlogos .a-auto-grid {
  align-items: end;
  justify-content: start;
}
.m-entity__linkedlogos .single img {
  width: auto;
  height: auto;
  max-width: 100%;
}
.m-entity__video {
  --autoGridGap: 2rem;
}
@media (min-width: 361px) {
  .m-entity__video {
    --autoGridMin: 230px;
  }
}
.m-entity__ymal {
  background-color: var(--c-white);
}
.m-entity__ymal:last-of-type {
  margin-bottom: 0;
}
.m-entity__bigcta {
  text-align: center;
  -moz-text-align-last: center;
       text-align-last: center;
}
.m-entity__bigcta .a-links {
  justify-content: center;
}
.m-entity__bigcta .a-links a {
  margin: 0 0.5rem;
}
.m-entity__bigcta .h2 p {
  line-height: 1.5;
}
.m-entity__bigcta .big-btn {
  border-bottom: none;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  padding: 0.5rem 3rem 1.5rem;
  overflow: hidden;
  position: relative;
  z-index: 1;
  text-decoration: none;
}
.m-entity__bigcta .big-btn::after {
  display: none;
  visibility: hidden;
}
@media (max-width: 767px) {
  .m-entity__bigcta .big-btn {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }
}
.m-entity__bigcta .big-btn svg {
  margin-top: 1rem;
  width: 50px;
}
.m-entity__bigcta .big-btn::after {
  content: "";
  background-color: var(--c-pink);
  position: absolute;
  left: 0;
  bottom: 0;
  height: 100%;
  width: 100%;
  transform: translateY(35%);
  visibility: visible;
  display: block;
  z-index: -1;
  transition: transform var(--transition);
}
@media (max-width: 767px) {
  .m-entity__bigcta .big-btn::after {
    transform: translateY(27%);
  }
}
.m-entity__bigcta .big-btn:hover::after {
  transform: translateY(0);
}
.m-entity__readmore .terms {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
}
.m-entity__readmore .terms a {
  margin-right: 1rem;
}
.m-entity__quicklinks {
  margin-top: -5rem;
  position: relative;
}
@media (max-width: 1199px) {
  .m-entity__quicklinks {
    margin-top: -3rem;
  }
}
@media (max-width: 991px) {
  .m-entity__quicklinks {
    margin-top: -2rem;
  }
}
.m-entity__quicklinks .a-cols {
  background-color: var(--c-white);
  padding-top: 1.25rem;
  padding-bottom: 1.8rem;
}
.m-entity__quicklinks .a-links {
  margin: 0;
  justify-content: center;
}
.m-entity__special-options hr {
  margin-bottom: 3rem;
}
@media (max-width: 767px) {
  .m-entity__special-options hr {
    margin-bottom: 1.5rem;
  }
}
.m-entity__special-options .a-auto-grid {
  --autoGridMin: 23%;
  --autoGridMax: 1fr;
  --autoGridGap: 2rem;
  margin-top: 3rem;
}
@media (max-width: 767px) {
  .m-entity__special-options .a-auto-grid {
    --autoGridMin: 200px;
    --autoGridMax: 1fr;
    margin-top: 1.5rem;
  }
}
@media (max-width: 575px) {
  .m-entity__special-options .a-auto-grid {
    --autoGridMin: 150px;
  }
}
.m-entity__peopleprofiles .title {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.m-entity__peopleprofiles .title--border {
  border-bottom: 1px solid var(--c-primary);
}
.m-entity__peopleprofiles .title a {
  border-bottom-color: var(--c-teal);
}
.m-entity__peopleprofiles .title a:hover::after {
  background-color: var(--c-teal);
}
.m-entity__listing .whats-on {
  min-height: 60vh;
  width: 100%;
}
.m-entity__minilisting {
  --autoGridMin: 20%;
  --autoGridGap: 2rem;
}
@media (max-width: 991px) {
  .m-entity__minilisting {
    --autoGridMin: 30%;
    --autoGridGap: 1rem;
  }
}
@media (max-width: 768px) {
  .m-entity__minilisting {
    --autoGridMin: 48%;
  }
}
.m-entity__minilisting .listing-header {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  align-items: flex-end;
  border-bottom: 1px solid var(--c-primary);
  padding-bottom: 2rem;
  margin-bottom: 2rem;
}
@media (max-width: 991px) {
  .m-entity__minilisting .listing-header {
    grid-template-columns: 1fr;
  }
}
.m-entity__minilisting .listing-header a {
  align-self: end;
  justify-self: end;
}
.m-entity__enhancedeventlisting {
  --autoGridMin: 20%;
  --autoGridGap: 2rem;
}
@media (max-width: 991px) {
  .m-entity__enhancedeventlisting {
    --autoGridMin: 30%;
    --autoGridGap: 1rem;
  }
}
@media (max-width: 768px) {
  .m-entity__enhancedeventlisting {
    --autoGridMin: 48%;
  }
}
.m-entity__enhancedeventlisting .listing-header {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  align-items: flex-end;
  border-bottom: 1px solid var(--c-primary);
  padding-bottom: 2rem;
  margin-bottom: 2rem;
}
@media (max-width: 991px) {
  .m-entity__enhancedeventlisting .listing-header {
    grid-template-columns: 1fr;
  }
}
.m-entity__enhancedeventlisting .listing-header a {
  align-self: end;
  justify-self: end;
}
.m-entity__featuredcontent {
  background-color: var(--c-primary);
}
.m-entity__featuredcontent .featured {
  width: 100%;
}
@media (max-width: 767px) {
  .m-entity__featuredcontent .featured {
    padding: 1rem 0;
  }
}
.m-entity__featuredcontent .featured--multi {
  padding: 2rem 0;
}
@media (max-width: 767px) {
  .m-entity__featuredcontent .featured--multi {
    padding: 1rem 0;
  }
}
.m-entity__featuredcontent .a-auto-grid {
  --autoGridGap: 2rem;
  --autoGridMin: 225px;
}
@media (max-width: 767px) {
  .m-entity__featuredcontent .a-auto-grid {
    --autoGridMin: 1fr;
  }
}
.m-entity__citations cite {
  font-style: normal;
  display: grid;
  grid-template-columns: 30px 1fr;
  gap: 0.5rem;
  align-items: start;
  margin-bottom: 2rem;
}
@media (max-width: 575px) {
  .m-entity__citations cite {
    margin-bottom: 1rem;
  }
}
.m-entity__citations cite a {
  border-bottom: none;
}
.m-entity__citations cite a::after {
  display: none;
  visibility: hidden;
}
.m-entity__citations cite a:hover {
  color: var(--c-red);
}
.m-entity__citations cite p a {
  text-decoration: underline;
}
.m-entity__citations cite p a:hover {
  text-decoration: none;
}
.m-entity__imagezoom .deepzoomContainer {
  background-color: var(--c-white);
}
.m-entity__imagezoom .navigator {
  background-color: rgba(255, 255, 255, 0.8) !important;
  border-color: var(--c-primary) !important;
  margin: 0 10px 0 0 !important;
}
.m-entity__form .gform_wrapper ul li.gfield {
  margin-top: 1.5rem;
}
.m-entity__form .gform_wrapper select,
.m-entity__form .gform_wrapper input:not([type=radio]):not([type=checkbox]):not([type=submit]):not([type=button]):not([type=image]):not([type=file]) {
  padding: 0.75rem 1rem;
}
@media (max-width: 767px) {
  .m-entity__form .gform_wrapper select,
  .m-entity__form .gform_wrapper input:not([type=radio]):not([type=checkbox]):not([type=submit]):not([type=button]):not([type=image]):not([type=file]) {
    padding: 0.5rem 0.75rem;
  }
}
.m-entity__form .gform_wrapper .field_sublabel_above .ginput_complex.ginput_container label,
.m-entity__form .gform_wrapper .field_sublabel_above div[class*=gfield_date_].ginput_container label,
.m-entity__form .gform_wrapper .field_sublabel_above div[class*=gfield_time_].ginput_container label,
.m-entity__form .gform_wrapper .field_sublabel_below .ginput_complex.ginput_container label,
.m-entity__form .gform_wrapper .field_sublabel_below div[class*=gfield_date_].ginput_container label,
.m-entity__form .gform_wrapper .field_sublabel_below div[class*=gfield_time_].ginput_container label {
  font-size: var(--fontSmall);
  letter-spacing: 0;
  margin-top: 0.25rem;
}
.m-entity__form .gform_wrapper ul.gfield_checkbox li input[type=checkbox],
.m-entity__form .gform_wrapper ul.gfield_radio li input[type=radio] {
  height: 25px !important;
  width: 25px !important;
  padding: 0 !important;
  margin-right: 0.25rem;
}
.m-entity__form .gform_wrapper .gform_button {
  --btnBg: var(--c-primary);
  --btnColour: var(--c-white);
  border-bottom: none;
  cursor: pointer;
  padding: 0.75rem 1rem;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  background-color: var(--btnBg);
  color: var(--btnColour);
  border: 1px solid var(--btnBg);
  transition: all var(--transition);
  text-decoration: none;
}
.m-entity__form .gform_wrapper .gform_button::after {
  display: none;
  visibility: hidden;
}
.m-entity__form .gform_wrapper .gform_button svg {
  margin-left: 10px;
  transition: transform var(--transition);
  width: 20px;
}
.m-entity__form .gform_wrapper .gform_button path {
  fill: currentColor;
}
.m-entity__form .gform_wrapper .gform_button:hover {
  text-decoration: none;
  color: var(--btnColour);
  --btnColour: var(--c-primary);
  --btnBg: var(--c-white);
}
.m-entity__form .gform_wrapper .gform_button:hover svg {
  transform: translateX(5px);
}
.m-entity .gfield_time_hour,
.m-entity .gfield_time_minute {
  max-width: 100px !important;
}
.m-entity .gfield_time_hour input,
.m-entity .gfield_time_minute input {
  max-width: 100px !important;
}
.m-entity__search-results .a-listing {
  align-items: start;
}
.m-entity__buynowbutton .product-ids {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-gap: 20px;
}
@media (max-width: 767px) {
  .m-entity__buynowbutton .product-ids {
    grid-template-columns: 1fr;
  }
}
.m-entity__buynowbutton .product-ids--item {
  background: #fff;
  padding: 15px;
  display: grid;
  align-items: flex-end;
}
.m-entity__buynowbutton .product-ids--item:empty {
  display: none;
}
.m-entity__buynowbutton .product-ids--item h2 {
  margin-top: 10px;
}
.m-entity__buynowbutton .product-ids--item .shopify-buy__product__variant-selectors {
  display: none;
}
.m-entity__buynowbutton .product-ids--item .shopify-buy__option-select-wrapper svg {
  display: none;
}
.m-entity__buynowbutton .see-collection {
  text-align: center;
  margin-top: 10px;
}
.m-entity__buynowbutton .see-collection a {
  --btnBg: var(--c-primary);
  --btnColour: var(--c-white);
  border-bottom: none;
  cursor: pointer;
  padding: 0.75rem 1rem;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  background-color: var(--btnBg);
  color: var(--btnColour);
  border: 1px solid var(--btnBg);
  transition: all var(--transition);
  text-decoration: none;
}
.m-entity__buynowbutton .see-collection a::after {
  display: none;
  visibility: hidden;
}
.m-entity__buynowbutton .see-collection a svg {
  margin-left: 10px;
  transition: transform var(--transition);
  width: 20px;
}
.m-entity__buynowbutton .see-collection a path {
  fill: currentColor;
}
.m-entity__buynowbutton .see-collection a:hover {
  text-decoration: none;
  color: var(--btnColour);
}
.m-entity__buynowbutton .see-collection a:hover svg {
  transform: translateX(5px);
}
.m-entity__ctamultiple {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-gap: 40px;
}
@media (max-width: 767px) {
  .m-entity__ctamultiple {
    grid-template-columns: 1fr;
  }
}
.m-entity__primosearch h2.h2 {
  text-align: center;
}
@media (max-width: 767px) {
  .m-entity__primosearch .m-search-form {
    overflow: visible;
  }
}
.acf-block-body .m-entity__primosearch .m-search-form {
  background-color: transparent;
}

/**
 * ----------------------
 * Un.titled
 * Molecules - Forms
 * ----------------------
 */
input,
input[type=text],
input[type=password],
input[type=email],
input[type=submit],
textarea,
select {
  font-family: var(--fontBody);
  color: var(--c-primary);
  resize: none;
  padding: 0.75rem 1rem;
  -webkit-border-radius: 0px;
  border-radius: 0;
  outline: 0;
  border: 1px solid var(--c-primary);
  transition: all var(--transition);
  background-color: var(--c-white);
}
input:focus,
input[type=text]:focus,
input[type=password]:focus,
input[type=email]:focus,
input[type=submit]:focus,
textarea:focus,
select:focus {
  border: 1px solid var(--c-secondary);
}

input[type=search],
input[type=text],
input[type=submit] {
  -webkit-appearance: none;
}

.form-actions input,
input[type=submit] {
  cursor: pointer;
}

button {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}

/**
 * ----------------------
 * Un.titled
 * Molecules - Main nav
 * ----------------------
 */
.m-nav {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 5vw;
}
@media (max-width: 991px) {
  .m-nav {
    grid-template-columns: 1fr;
    gap: 0;
    padding-top: 2rem;
  }
}
.m-nav__cols {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 3rem;
}
@media (max-width: 991px) {
  .m-nav__cols {
    grid-template-columns: 1fr;
    gap: 0;
    padding: 0 5vw;
  }
}
@media (max-width: 767px) {
  .m-nav__cols {
    width: 100%;
    max-width: 300px;
    justify-self: center;
  }
  .m-nav__cols:first-of-type {
    padding-bottom: 3rem;
  }
  .m-nav__cols:last-of-type {
    margin-top: 1rem;
  }
}
@media (max-width: 359px) {
  .m-nav__cols {
    padding: 0 5vw;
  }
}
.m-nav__cols .column {
  display: grid;
  gap: 3rem;
  align-items: start;
}
@media (max-width: 991px) {
  .m-nav__cols .column {
    gap: 0;
  }
}
@media (max-width: 767px) {
  .m-nav__cols .column {
    margin: 0 auto;
    width: 100%;
  }
}
@media (max-width: 991px) {
  .m-nav__info .m-nav__social,
  .m-nav__info h3,
  .m-nav__info p {
    display: none;
    visibility: hidden;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .m-nav__info {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 991px) {
  .m-nav__menu {
    order: -1;
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem;
  }
}
@media (max-width: 767px) {
  .m-nav__menu {
    grid-template-columns: 1fr;
    gap: 0;
    justify-content: center;
  }
}
@media (max-width: 767px) {
  .m-nav__menu .primary {
    order: 2;
  }
}
.m-nav__menu .primary a {
  color: var(--c-grey);
}
.m-nav__menu .primary a:hover {
  color: var(--c-secondary);
}
.m-nav__menu a:hover {
  color: var(--c-secondary);
}
.m-nav h3 {
  font-family: var(--fontBody);
}
.m-nav a:not(.a-btn) {
  border-bottom: none;
  text-decoration: none;
}
.m-nav a:not(.a-btn)::after {
  display: none;
  visibility: hidden;
}
.m-nav .a-btn {
  margin-top: 1.5rem;
  max-width: 300px;
}
@media (max-width: 991px) {
  .m-nav .a-btn {
    max-width: 35vw;
  }
}
@media (max-width: 767px) {
  .m-nav .a-btn {
    max-width: 250px;
  }
}
@media (max-width: 575px) {
  .m-nav .a-btn {
    margin-top: 1rem;
  }
}
.m-nav nav {
  font-family: var(--fontTitle);
  font-size: clamp(1.5rem, 4vw, 2.5rem);
  line-height: 1;
  display: flex;
  flex-direction: column;
}
@media (max-width: 1199px) {
  .m-nav nav {
    font-size: clamp(1.5rem, 4vw, 2rem);
  }
}
@media (max-width: 767px) {
  .m-nav nav {
    width: 100%;
    margin: 0 auto;
  }
}
.m-nav nav a {
  margin-bottom: 1rem;
}

/**
 * ----------------------
 * Un.titled
 * Molecules - Banner
 * ----------------------
 */
.m-no-banner {
  width: 100%;
  padding: 4rem 0 5rem;
  text-align: center;
  -moz-text-align-last: center;
       text-align-last: center;
}
@media (max-width: 767px) {
  .m-no-banner {
    padding: 3rem 0 4rem;
  }
}
.m-no-banner--news {
  padding-bottom: 0;
}
.m-no-banner--page h1 {
  margin-bottom: 0;
}
.m-no-banner p {
  font-size: 110%;
}
.m-no-banner .pre-title {
  margin-bottom: 0.5rem;
}

.m-banner {
  position: relative;
  margin: 0 0 clamp(1.5rem, 4vw, 3rem);
  width: 100%;
}
.m-banner__image {
  position: relative;
  width: 100%;
}
.m-banner__image picture {
  width: 100%;
}
.m-banner--default img, .m-banner--alt img {
  width: 100%;
  height: 100%;
  display: block;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center center;
     object-position: center center;
}
.m-banner--default {
  height: clamp(20vh, 60vw, 60vh);
}
.m-banner--alt {
  height: auto;
}
@media (max-width: 767px) {
  .m-banner--alt .a-cols {
    padding: 0;
  }
}
.m-banner--alt .m-banner__inner {
  display: grid;
  grid-template-columns: 1fr 2fr;
  align-items: stretch;
}
@media (max-width: 767px) {
  .m-banner--alt .m-banner__inner {
    grid-template-columns: 1fr;
  }
}
.m-banner--alt .m-banner__copy {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  padding: 2rem;
  text-align: center;
}
@media (max-width: 767px) {
  .m-banner--alt .m-banner__copy {
    order: 1;
    padding: 1rem 1rem 1.5rem;
  }
}
.m-banner--alt h1 {
  font-weight: bold;
  font-size: clamp(2rem, 5vw, 4.75rem);
  line-height: 1.1;
  text-align: center;
  -moz-text-align-last: center;
       text-align-last: center;
  margin-bottom: 1.5rem;
}
.m-banner--alt .h4 {
  font-size: 1rem;
  margin-bottom: 0;
}
.m-banner--alt .a-cols {
  padding: 0;
}
.m-banner--collection {
  height: var(--variableHeightLimit);
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: var(--c-white);
  position: relative;
  margin-bottom: 0;
}
.m-banner--collection a,
.m-banner--collection picture {
  height: 100%;
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
}
.m-banner--collection a img,
.m-banner--collection picture img {
  height: auto;
  width: auto;
  max-height: 100%;
  max-width: 100%;
  display: block;
}
.m-banner--collection__icon {
  position: absolute;
  bottom: 1rem;
  right: 1rem;
}
.m-banner--collection__icon svg {
  width: 40px;
}
@media (max-width: 575px) {
  .m-banner--collection__icon svg {
    width: 25px;
  }
}
.m-banner--listing {
  margin: clamp(1.5rem, 5vw, 2rem) 0 clamp(1.5rem, 5vw, 3rem);
}
.m-banner--listing h1 {
  margin: 0;
}
.m-banner a {
  border-bottom: none;
}
.m-banner a::after {
  display: none;
  visibility: hidden;
}
.m-banner .pre-title {
  margin-bottom: 0.5rem;
}
.m-banner .a-image-credit {
  z-index: 5;
}

/**
 * ----------------------
 * Un.titled
 * Molecules - Social links
 * ----------------------
 */
/**
 * Styling
 */
.m-social-links {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 1rem;
}
@media (max-width: 359px) {
  .m-social-links {
    grid-template-columns: repeat(4, 1fr);
  }
}
.m-nav__social .m-social-links {
  grid-template-columns: repeat(6, 1fr);
}
.m-social-links a {
  border-bottom: none;
  display: block;
  padding: 0.5rem;
  height: 35px;
  width: 35px;
}
.m-social-links a::after {
  display: none;
  visibility: hidden;
}
.m-social-links a span {
  display: none;
  visibility: hidden;
}
.m-social-links a svg {
  -o-object-fit: contain;
     object-fit: contain;
  width: 100%;
  height: 100%;
}
.m-social-links a path {
  transition: 0.2s var(--transition);
  fill: var(--c-white);
}
.m-social-links a:hover path {
  fill: var(--c-pink);
}

/**
* ----------------------
* Un.titled
* Molecules - Subnav
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
ul.m-subnav {
  list-style: none;
  margin: 0;
  padding: 0;
}
ul.m-subnav li {
  list-style: none;
  margin: 0;
  padding: 0;
}
ul.m-subnav ul {
  margin-top: 0.25rem;
  margin-bottom: 0;
  margin-left: 1rem;
}
ul.m-subnav a {
  border-bottom: none;
  text-decoration: none;
  display: flex;
  align-items: center;
  min-height: 20px;
}
ul.m-subnav a::after {
  display: none;
  visibility: hidden;
}
ul.m-subnav a span {
  text-decoration: none;
}
ul.m-subnav a[aria-current], ul.m-subnav a:hover {
  color: var(--c-red);
}
ul.m-subnav a[aria-current] span, ul.m-subnav a:hover span {
  text-decoration: none;
}
ul.m-subnav > li > a {
  font-family: var(--fontBold);
  padding-bottom: 0.25rem;
  display: inline-block;
}

/**
* ----------------------
* Un.titled
* Molecules - Intro
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.m-intro {
  width: 100%;
  max-width: var(--containerWidth);
  display: grid;
  justify-content: end;
  grid-template-columns: minmax(0, var(--cols-6)) minmax(0, var(--cols-3));
  margin-top: 2rem;
}
.m-intro--alt {
  grid-template-columns: minmax(0, var(--cols-3)) minmax(0, var(--cols-6));
  justify-content: start;
}
.m-intro--collection {
  margin-top: 1rem;
}
.m-intro--collection .a-cols--sm {
  padding-top: clamp(1.5rem, 4vw, 3rem);
}
.m-intro--collection .a-cols--sm > .a-cols--sm {
  padding: 0;
}
@media (max-width: 991px) {
  .m-intro {
    grid-template-columns: 1fr;
    justify-items: center;
  }
  .m-intro .a-cols--xs {
    max-width: var(--cols-6);
  }
}
@media (max-width: 767px) {
  .m-intro {
    margin-top: 1rem;
  }
}

/**
* ----------------------
* Un.titled
* Molecules - Anchor nav
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.m-anchor-nav__links {
  margin-top: 1rem;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.m-anchor-nav__links a {
  border-bottom: none;
  margin-bottom: 0.25rem;
}
.m-anchor-nav__links a::after {
  display: none;
  visibility: hidden;
}
.m-anchor-nav__links a:hover {
  text-decoration: underline;
}

span[data-anchor] {
  margin-top: -50px;
  margin-bottom: 50px;
}

/**
* ----------------------
* Un.titled
* Molecules - Course details
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.m-course-details {
  --autoGridMin: 15%;
  --autoGridGap: 2rem;
  margin: 3rem 0 2rem;
}
@media (max-width: 991px) {
  .m-course-details {
    margin: 2rem 0 1rem;
  }
}
@media (max-width: 767px) {
  .m-course-details {
    --autoGridMin: 150px;
    --autoGridGap: 1rem;
    margin-top: 1rem;
  }
}
@media (max-width: 359px) {
  .m-course-details {
    --autoGridMin: 1fr;
  }
}
.m-course-details__detail {
  border-top: 1px solid var(--c-primary);
  padding-top: 0.5rem;
  font-size: 1rem;
}
.m-course-details__detail h3 {
  margin-bottom: 0;
}

/**
* ----------------------
* Un.titled
* Molecules - People sidebar
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.m-people-sidebar {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.m-people-sidebar__links {
  width: 100%;
}
@media (max-width: 575px) {
  .m-people-sidebar__links {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
  }
}
.m-people-sidebar img {
  margin-top: var(--photoOffset);
  margin-bottom: 2rem;
  border-radius: 50%;
  max-width: 330px;
  width: 100%;
  display: block;
}
@media (max-width: 1599px) {
  .m-people-sidebar img {
    margin-top: 0;
  }
}
.m-people-sidebar a {
  border-bottom: none;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: 20px;
  display: flex;
  align-items: center;
  border-top: 1px solid var(--c-primary);
  padding: 0.5rem 0 0.5rem 32px;
  width: 100%;
  background-position: left center;
  background-image: url("../img/link.svg");
}
.m-people-sidebar a::after {
  display: none;
  visibility: hidden;
}
@media (max-width: 575px) {
  .m-people-sidebar a {
    border-top: 0;
    padding: 0.75rem;
    width: auto;
    margin: 0.25rem;
  }
  .m-people-sidebar a span {
    display: none;
  }
}
.m-people-sidebar a svg {
  justify-self: center;
}
.m-people-sidebar a:hover span {
  text-decoration: underline;
}
@media (max-width: 575px) {
  .m-people-sidebar a:hover {
    opacity: 0.7;
  }
}
.m-people-sidebar a[href*=mailto] {
  background-image: url("../img/email.svg");
}
.m-people-sidebar a[href*=tel] {
  background-image: url("../img/phone.svg");
}
.m-people-sidebar a[href*=twitter] {
  background-image: url("../img/twitter.svg");
}
.m-people-sidebar a[href*=facebook] {
  background-image: url("../img/facebook.svg");
  background-size: auto 20px;
  background-position: 5px center;
}
.m-people-sidebar a[href*=linkedin] {
  background-image: url("../img/linkedin.svg");
}

/**
* ----------------------
* Un.titled
* Molecules - Homepage banner
* ----------------------
*/
/**
* Config
*/
@keyframes bannerIn {
  0% {
    opacity: 0;
    z-index: -1;
  }
  10% {
    opacity: 0;
    z-index: 1;
  }
  100% {
    opacity: 1;
    z-index: 1;
  }
}
@keyframes bannerOut {
  0% {
    opacity: 1;
    z-index: 1;
  }
  90% {
    opacity: 0;
    z-index: 1;
  }
  100% {
    opacity: 0;
    z-index: -1;
  }
}
/**
* Styling
*/
.m-homepage-banner {
  position: relative;
  min-height: 60vh;
  width: 100%;
}
.m-homepage-banner figure.default-image {
  position: relative;
  height: 0;
  width: 100%;
  padding-top: 56.25%;
}
.m-homepage-banner figure.default-image img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.m-homepage-banner figure a {
  border-bottom: none;
}
.m-homepage-banner figure a::after {
  display: none;
  visibility: hidden;
}
.m-homepage-banner img {
  width: 100%;
  height: auto;
}
.m-homepage-banner__block-img {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  opacity: 0;
  transition: opacity var(--transition);
  z-index: -1;
}
.m-homepage-banner__block-img[data-visible=true] {
  animation: bannerIn 0.2s ease-in-out forwards;
}
.m-homepage-banner__block-img[data-visible=false] {
  animation: bannerOut 0.2s ease-in-out forwards;
}
.m-homepage-banner__blocks {
  padding: 0 5rem;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.5rem;
}
@media (max-width: 1199px) {
  .m-homepage-banner__blocks {
    padding: 0 3.5rem;
  }
}
@media (max-width: 767px) {
  .m-homepage-banner__blocks {
    grid-template-columns: 1fr;
    padding: 0;
  }
}
.m-homepage-banner__block {
  background-color: var(--c-white);
  padding: 2rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  position: relative;
  z-index: 2;
  margin-top: -14rem;
  transition: background-color var(--transition);
}
@media (max-width: 1199px) {
  .m-homepage-banner__block {
    padding: 1rem;
    margin-top: -5rem;
  }
}
@media (max-width: 767px) {
  .m-homepage-banner__block {
    margin-top: 0;
  }
}
.m-homepage-banner__block .pre-title {
  margin-bottom: 0;
}
.m-homepage-banner__block .a-links {
  justify-content: center;
}
.m-homepage-banner__block .a-links a {
  margin: 0 0.5rem;
}
.m-homepage-banner__block .a-btn {
  margin-top: 1rem;
}
.m-homepage-banner__block:hover {
  background-color: var(--c-teal);
}
.m-homepage-banner__block:hover:last-child {
  background-color: var(--c-purple);
}

/**
* ----------------------
* Un.titled
* Molecules - Event sidebar
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.m-event-sidebar {
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
.m-event-sidebar .promo-copy {
  margin-bottom: 1rem;
}
.m-event-sidebar .detail {
  border-top: 1px solid var(--c-primary);
  padding-top: 0.5rem;
  margin-top: 0.5rem;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
}
.m-event-sidebar .detail--bold {
  font-family: var(--fontBold);
  flex-wrap: nowrap;
}
.m-event-sidebar .detail--copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.m-event-sidebar .detail--copy h2,
.m-event-sidebar .detail--copy h3,
.m-event-sidebar .detail--copy h4 {
  margin-bottom: 0.5rem;
}
.m-event-sidebar .detail--copy > p {
  display: flex;
  flex-direction: column;
}
.m-event-sidebar .detail svg {
  margin-right: 0.5rem;
  width: 100%;
  height: 100%;
  max-width: 15px;
}
.m-event-sidebar .detail a {
  margin-right: 5px;
}

/**
* ----------------------
* Un.titled
* Molecules - Search form
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.m-search-form {
  display: flex;
  flex-direction: column;
  align-items: center;
}
@media (max-width: 767px) {
  .m-search-form {
    overflow-y: scroll;
    padding-top: 2rem;
  }
}
@media (max-height: 599px) {
  .m-search-form {
    max-height: 70vh;
  }
}
.m-search-form__row {
  margin-bottom: 3rem;
}
@media (max-width: 575px) {
  .m-search-form__row {
    margin-bottom: 1.5rem;
  }
}
.m-search-form__row:last-child {
  margin-bottom: 0;
}
.m-search-form h3 {
  margin-bottom: 1rem;
  font-family: var(--fontBody);
  font-size: 1.2rem;
}
.m-search-form .a-links {
  margin: 0;
  justify-content: center;
}
.m-search-form .a-links--big {
  font-size: 1.5rem;
}
@media (max-width: 767px) {
  .m-search-form .a-links--big {
    font-size: 1.25rem;
  }
}
@media (max-width: 359px) {
  .m-search-form .a-links--big {
    font-size: 1rem;
  }
}
.m-search-form a {
  border-bottom: none;
  text-decoration: none;
  border-bottom: 1px solid var(--c-white);
  margin: 0 0.5rem 0.5rem;
}
.m-search-form a::after {
  display: none;
  visibility: hidden;
}
.m-search-form a:hover {
  color: var(--c-secondary);
  border-color: var(--c-secondary);
}
.m-search-form form {
  border-bottom: 1px solid var(--c-white);
  display: grid;
  grid-template-columns: 1fr 75px;
  width: 100%;
  max-width: 1300px;
}
@media (max-width: 767px) {
  .m-search-form form {
    grid-template-columns: 1fr 50px;
  }
}
.m-search-form form input {
  background-color: transparent;
  color: var(--c-white);
  font-family: var(--fontTitle);
  font-size: 3rem;
  padding: 0.5rem 0 0.5rem 1rem;
  min-width: 0;
}
@media (max-width: 991px) {
  .m-search-form form input {
    padding: 0.5rem;
    text-align: left;
  }
}
@media (max-width: 767px) {
  .m-search-form form input {
    font-size: 1.5rem;
  }
}
.m-search-form form input:focus {
  border: 0;
}
.m-search-form form input.submit:-webkit-input-placeholder, .m-search-form form input.submit:-moz-placeholder, .m-search-form form input.submit:-ms-input-placeholder, .m-search-form form input.submit:-moz-placeholder, .m-search-form form input.submit::placeholder {
  color: var(--c-white);
  color: #fff;
  opacity: 0.7;
}
.m-search-form form input:-webkit-input-placeholder, .m-search-form form input:-moz-placeholder, .m-search-form form input:-ms-input-placeholder, .m-search-form form input:-moz-placeholder, .m-search-form form input::placeholder,
.m-search-form form input ::placeholder {
  color: var(--c-white);
  color: #fff !important;
  opacity: 0.7;
}
.m-search-form form input::-moz-placeholder {
  color: var(--c-white);
  color: #fff !important;
  opacity: 0.7;
}
.m-search-form form input::placeholder {
  color: var(--c-white);
  color: #fff !important;
  opacity: 0.7;
}
.m-search-form form button {
  border: 0;
  background-color: transparent;
  display: flex;
  justify-content: center;
  align-items: center;
  transition: background var(--transition);
}
.m-search-form form button svg {
  width: 30px;
}
.m-search-form form button path {
  stroke: var(--c-white);
  transition: stroke var(--transition);
}
.m-search-form form button:hover {
  background-color: var(--c-white);
}
.m-search-form form button:hover path {
  stroke: var(--c-primary);
}

/**
* ----------------------
* Un.titled
* Molecules - Performances modal
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.m-performances {
  --modalPadding: 4rem;
  background-color: rgba(14, 48, 52, 0.9);
}
@media (max-width: 767px) {
  .m-performances {
    --modalPadding: 2rem;
  }
}
@media (max-width: 575px) {
  .m-performances {
    --modalPadding: 1rem;
  }
}
.m-performances__inner {
  background-color: var(--c-greyLight);
  display: flex;
  flex-direction: column;
  align-items: stretch;
  width: 100%;
  max-width: var(--containerWidth);
  padding: 2rem 0;
  position: relative;
  max-height: 100vh;
}
@media (max-width: 767px) {
  .m-performances__inner h2 {
    margin-top: 3rem;
  }
}
.m-performances__performances {
  margin: 2rem 0 0;
  padding: 0 var(--modalPadding);
  overflow: hidden;
  overflow-y: scroll;
}
@media (max-width: 767px) {
  .m-performances__performances {
    margin-top: 1rem;
  }
}
.m-performances__performance {
  display: grid;
  grid-template-columns: minmax(150px, auto) 1fr minmax(200px, auto);
  gap: 2rem;
  position: relative;
  padding: 0.75rem 0;
  align-items: center;
  border-bottom: 1px solid var(--c-primary);
  transition: var(--transition);
}
@media (max-width: 767px) {
  .m-performances__performance {
    grid-template-columns: minmax(150px, auto) 1fr;
    gap: 1rem;
  }
}
@media (max-width: 575px) {
  .m-performances__performance {
    grid-template-columns: 1fr;
    gap: 0.5rem;
  }
}
.m-performances__performance:first-of-type {
  border-top: 1px solid var(--c-primary);
}
.m-performances__performance time {
  font-size: 1.3rem;
}
@media (max-width: 1199px) {
  .m-performances__performance time {
    font-size: 1rem;
  }
}
@media (min-width: 577px) and (max-width: 767px) {
  .m-performances__performance time:nth-child(2) {
    text-align: right;
  }
}
.m-performances__performance .a-btn {
  justify-self: end;
  margin-bottom: 0;
}
@media (min-width: 577px) and (max-width: 767px) {
  .m-performances__performance .a-btn {
    grid-column: span 2;
  }
}
.m-performances__performance::before, .m-performances__performance::after {
  content: "";
  position: absolute;
  width: var(--modalPadding);
  height: 100%;
  top: 0;
  background-color: inherit;
}
.m-performances__performance::before {
  left: calc(var(--modalPadding) * -1);
}
.m-performances__performance::after {
  right: calc(var(--modalPadding) * -1);
}
.m-performances__performance:hover {
  background-color: var(--c-yellow);
  border-color: transparent;
}

/**
* ----------------------
* Un.titled
* Molecules - Gallery
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.m-gallery {
  /* pswp__ui--over-close class it added when mouse is over element that should close gallery */
  /* no arrows on touch screens */
  /*
    Arrow buttons hit area
    (icon is added to :before pseudo-element)
  */
  /*

    2. Share modal/popup and links

   */
  /* increase size of share links on touch devices */
  /*

    3. Index indicator ("1 of X" counter)

   */
  /*

    4. Caption

   */
  /* Fake caption element, used to calculate height of next/prev image */
  /*

    5. Loading indicator (preloader)

    You can play with it here - http://codepen.io/dimsemenov/pen/yyBWoR

   */
  /*

    6. Additional styles

   */
  /* root element of UI */
  /* top black bar with buttons and "1 of X" indicator */
  /* pswp--has_mouse class is added only when two subsequent mousemove events occur */
  /* pswp__ui--fit class is added when main image "fits" between top bar and bottom bar (caption) */
  /* pswp__ui--idle class is added when mouse isn't moving for several seconds (JS option timeToIdle) */
  /*
    pswp__ui--hidden class is added when controls are hidden
    e.g. when user taps to toggle visibility of controls
  */
  /* pswp__ui--one-slide class is added when there is just one item in gallery */
}
.m-gallery .pswp__button {
  width: 44px;
  height: 44px;
  position: relative;
  background: none;
  cursor: pointer;
  overflow: visible;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  display: block;
  border: 0;
  padding: 0;
  margin: 0;
  float: right;
  opacity: 0.75;
  transition: all var(--transition);
}
.m-gallery .pswp__button:focus,
.m-gallery .pswp__button:hover {
  opacity: 1;
}
.m-gallery .pswp__button:active {
  outline: none;
  opacity: 0.9;
}
.m-gallery .pswp__button::-moz-focus-inner {
  padding: 0;
  border: 0;
}
.m-gallery .pswp__ui--over-close .pswp__button--close {
  opacity: 1;
}
.m-gallery .pswp__button,
.m-gallery .pswp__button--arrow--left:before,
.m-gallery .pswp__button--arrow--right:before {
  background: url("../img/default-skin.png") 0 0 no-repeat;
  background-size: 264px 88px;
  width: 44px;
  height: 44px;
}
@media (-webkit-min-device-pixel-ratio: 1.1), (-webkit-min-device-pixel-ratio: 1.09375), (min-resolution: 105dpi), (min-resolution: 1.1dppx) {
  .m-gallery {
    /* Serve SVG sprite if browser supports SVG and resolution is more than 105dpi */
  }
  .m-gallery .pswp--svg .pswp__button,
  .m-gallery .pswp--svg .pswp__button--arrow--left:before,
  .m-gallery .pswp--svg .pswp__button--arrow--right:before {
    background-image: url("../img/default-skin.svg");
  }
  .m-gallery .pswp--svg .pswp__button--arrow--left,
  .m-gallery .pswp--svg .pswp__button--arrow--right {
    background: none;
  }
}
.m-gallery .pswp__button--close {
  background-position: 0 -44px;
}
.m-gallery .pswp__button--share {
  background-position: -44px -44px;
}
.m-gallery .pswp__button--fs {
  display: none;
}
.m-gallery .pswp--supports-fs .pswp__button--fs {
  display: block;
}
.m-gallery .pswp--fs .pswp__button--fs {
  background-position: -44px 0;
}
.m-gallery .pswp__button--zoom {
  display: none;
  background-position: -88px 0;
}
.m-gallery .pswp--zoom-allowed .pswp__button--zoom {
  display: block;
}
.m-gallery .pswp--zoomed-in .pswp__button--zoom {
  background-position: -132px 0;
}
.m-gallery .pswp--touch .pswp__button--arrow--left,
.m-gallery .pswp--touch .pswp__button--arrow--right {
  visibility: hidden;
}
.m-gallery .pswp__button--arrow--left,
.m-gallery .pswp__button--arrow--right {
  background: none;
  top: 50%;
  margin-top: -50px;
  width: 70px;
  height: 100px;
  position: absolute;
}
.m-gallery .pswp__button--arrow--left {
  left: 0;
}
.m-gallery .pswp__button--arrow--right {
  right: 0;
}
.m-gallery .pswp__button--arrow--left:before,
.m-gallery .pswp__button--arrow--right:before {
  content: "";
  top: 35px;
  height: 30px;
  width: 32px;
  position: absolute;
}
.m-gallery .pswp__button--arrow--left:before {
  left: 6px;
  background-position: -138px -44px;
}
.m-gallery .pswp__button--arrow--right:before {
  right: 6px;
  background-position: -94px -44px;
}
.m-gallery .pswp__counter,
.m-gallery .pswp__share-modal {
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
.m-gallery .pswp__share-modal {
  display: block;
  background: rgba(0, 0, 0, 0.5);
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  padding: 10px;
  position: absolute;
  z-index: 1600;
  opacity: 0;
  -webkit-transition: opacity 0.25s ease-out;
  transition: opacity 0.25s ease-out;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  will-change: opacity;
}
.m-gallery .pswp__share-modal--hidden {
  display: none;
}
.m-gallery .pswp__share-tooltip {
  z-index: 1620;
  position: absolute;
  background: var(--c-white);
  top: 56px;
  border-radius: 2px;
  display: block;
  width: auto;
  right: 44px;
  -webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.25);
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.25);
  -webkit-transform: translateY(6px);
  -ms-transform: translateY(6px);
  transform: translateY(6px);
  -webkit-transition: -webkit-transform 0.25s;
  transition: transform 0.25s;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  will-change: transform;
}
.m-gallery .pswp__share-tooltip a {
  display: block;
  padding: 8px 12px;
  color: var(--c-primary);
  text-decoration: none;
  font-size: 14px;
  line-height: 18px;
}
.m-gallery .pswp__share-tooltip a:hover {
  text-decoration: none;
  color: var(--c-primary);
}
.m-gallery .pswp__share-tooltip a:first-child {
  /* round corners on the first/last list item */
  border-radius: 2px 2px 0 0;
}
.m-gallery .pswp__share-tooltip a:last-child {
  border-radius: 0 0 2px 2px;
}
.m-gallery .pswp__share-modal--fade-in {
  opacity: 1;
}
.m-gallery .pswp__share-modal--fade-in .pswp__share-tooltip {
  -webkit-transform: translateY(0);
  -ms-transform: translateY(0);
  transform: translateY(0);
}
.m-gallery .pswp--touch .pswp__share-tooltip a {
  padding: 16px 12px;
}
.m-gallery a.pswp__share--facebook:before {
  content: "";
  display: block;
  width: 0;
  height: 0;
  position: absolute;
  top: -12px;
  right: 15px;
  border: 6px solid transparent;
  border-bottom-color: var(--c-white);
  -webkit-pointer-events: none;
  -moz-pointer-events: none;
  pointer-events: none;
}
.m-gallery a.pswp__share--facebook:hover {
  background: #3e5c9a;
  color: var(--c-white);
}
.m-gallery a.pswp__share--facebook:hover:before {
  border-bottom-color: #3e5c9a;
}
.m-gallery a.pswp__share--twitter:hover {
  background: #55acee;
  color: var(--c-white);
}
.m-gallery a.pswp__share--pinterest:hover {
  background: #ccc;
  color: #ce272d;
}
.m-gallery a.pswp__share--download:hover {
  background: #ddd;
}
.m-gallery .pswp__counter {
  position: absolute;
  left: 0;
  top: 0;
  height: 44px;
  font-size: 13px;
  line-height: 44px;
  color: var(--c-white);
  opacity: 0.75;
  padding: 0 10px;
}
.m-gallery .pswp__caption {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  min-height: 44px;
}
.m-gallery .pswp__caption small {
  font-size: 11px;
  color: #bbb;
}
.m-gallery .pswp__caption__center {
  text-align: center;
  max-width: 700px;
  margin: 0 auto;
  padding: 0.5rem;
  color: var(--c-primary);
}
.m-gallery .pswp__caption--empty {
  display: none;
}
.m-gallery .pswp__caption--fake {
  visibility: hidden;
}
.m-gallery .pswp__preloader {
  width: 44px;
  height: 44px;
  position: absolute;
  top: 0;
  left: 50%;
  margin-left: -22px;
  opacity: 0;
  -webkit-transition: opacity 0.25s ease-out;
  transition: opacity 0.25s ease-out;
  will-change: opacity;
  direction: ltr;
}
.m-gallery .pswp__preloader__icn {
  width: 20px;
  height: 20px;
  margin: 12px;
}
.m-gallery .pswp__preloader--active {
  opacity: 1;
}
.m-gallery .pswp__preloader--active .pswp__preloader__icn {
  /* We use .gif in browsers that don't support CSS animation */
  background: url(../img/preloader.gif) 0 0 no-repeat;
}
.m-gallery .pswp--css_animation .pswp__preloader--active {
  opacity: 1;
}
.m-gallery .pswp--css_animation .pswp__preloader--active .pswp__preloader__icn {
  -webkit-animation: clockwise 500ms linear infinite;
  animation: clockwise 500ms linear infinite;
}
.m-gallery .pswp--css_animation .pswp__preloader--active .pswp__preloader__donut {
  -webkit-animation: donut-rotate 1000ms cubic-bezier(0.4, 0, 0.22, 1) infinite;
  animation: donut-rotate 1000ms cubic-bezier(0.4, 0, 0.22, 1) infinite;
}
.m-gallery .pswp--css_animation .pswp__preloader__icn {
  background: none;
  opacity: 0.75;
  width: 14px;
  height: 14px;
  position: absolute;
  left: 15px;
  top: 15px;
  margin: 0;
}
.m-gallery .pswp--css_animation .pswp__preloader__cut {
  /* 
      The idea of animating inner circle is based on Polymer ("material") loading indicator 
       by Keanu Lee https://blog.keanulee.com/2014/10/20/the-tale-of-three-spinners.html
    */
  position: relative;
  width: 7px;
  height: 14px;
  overflow: hidden;
}
.m-gallery .pswp--css_animation .pswp__preloader__donut {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  width: 14px;
  height: 14px;
  border: 2px solid var(--c-white);
  border-radius: 50%;
  border-left-color: transparent;
  border-bottom-color: transparent;
  position: absolute;
  top: 0;
  left: 0;
  background: none;
  margin: 0;
}
@media screen and (max-width: 1024px) {
  .m-gallery .pswp__preloader {
    position: relative;
    left: auto;
    top: auto;
    margin: 0;
    float: right;
  }
}
@-webkit-keyframes clockwise {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}
@keyframes clockwise {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}
@-webkit-keyframes donut-rotate {
  0% {
    -webkit-transform: rotate(0);
    transform: rotate(0);
  }
  50% {
    -webkit-transform: rotate(-140deg);
    transform: rotate(-140deg);
  }
  100% {
    -webkit-transform: rotate(0);
    transform: rotate(0);
  }
}
@keyframes donut-rotate {
  0% {
    -webkit-transform: rotate(0);
    transform: rotate(0);
  }
  50% {
    -webkit-transform: rotate(-140deg);
    transform: rotate(-140deg);
  }
  100% {
    -webkit-transform: rotate(0);
    transform: rotate(0);
  }
}
.m-gallery .pswp__ui {
  -webkit-font-smoothing: auto;
  visibility: visible;
  opacity: 1;
  z-index: 1550;
}
.m-gallery .pswp__top-bar {
  position: absolute;
  left: 0;
  top: 0;
  height: 44px;
  width: 100%;
}
.m-gallery .pswp__caption,
.m-gallery .pswp__top-bar,
.m-gallery .pswp--has_mouse .pswp__button--arrow--left,
.m-gallery .pswp--has_mouse .pswp__button--arrow--right {
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  will-change: opacity;
  -webkit-transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1);
  transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1);
}
.m-gallery .pswp--has_mouse .pswp__button--arrow--left,
.m-gallery .pswp--has_mouse .pswp__button--arrow--right {
  visibility: visible;
}
.m-gallery .pswp__top-bar,
.m-gallery .pswp__caption {
  background-color: rgba(0, 0, 0, 0.5);
}
.m-gallery .pswp__ui--fit .pswp__top-bar,
.m-gallery .pswp__ui--fit .pswp__caption {
  background-color: rgba(255, 255, 255, 0.8);
}
.m-gallery .pswp__ui--idle .pswp__top-bar {
  opacity: 0;
}
.m-gallery .pswp__ui--idle .pswp__button--arrow--left,
.m-gallery .pswp__ui--idle .pswp__button--arrow--right {
  opacity: 0;
}
.m-gallery .pswp__ui--hidden .pswp__top-bar,
.m-gallery .pswp__ui--hidden .pswp__caption,
.m-gallery .pswp__ui--hidden .pswp__button--arrow--left,
.m-gallery .pswp__ui--hidden .pswp__button--arrow--right {
  /* Force paint & create composition layer for controls. */
  opacity: 0.001;
}
.m-gallery .pswp__ui--one-slide .pswp__button--arrow--left,
.m-gallery .pswp__ui--one-slide .pswp__button--arrow--right,
.m-gallery .pswp__ui--one-slide .pswp__counter {
  display: none;
}
.m-gallery .pswp__element--disabled {
  display: none !important;
}
.m-gallery .pswp--minimal--dark .pswp__top-bar {
  background: none;
}
.m-gallery .pswp__zoom-wrap,
.m-gallery .pswp__container,
.m-gallery .pswp__item {
  background-color: var(--c-white);
}
.m-gallery .pswp__button {
  color: var(--c-primary);
}
.m-gallery .pswp__button:hover {
  background-color: #efefef;
}
.m-gallery .pswp__counter {
  color: var(--c-primary);
}
.m-gallery .pswp--zoomed-in .pswp__caption {
  opacity: 0;
}

/**
* ----------------------
* Un.titled
* Molecules - Toggle subnav
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.m-toggle-subnav[data-isOpen=false] button:after {
  content: "+";
}
.m-toggle-subnav[data-isOpen=false] > div {
  display: none;
}
.m-toggle-subnav button {
  display: flex;
  border: 0;
  background-color: transparent;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  padding: 0;
  margin-bottom: 0;
  text-align: left;
}
.m-toggle-subnav button::after {
  content: "—";
  display: block;
  transition: transform var(--transition);
}
.m-toggle-subnav button:hover::after {
  transform: translateX(-10px);
}

/**
* ----------------------
* Un.titled
* Molecules - Subnav container
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.m-subnav-container {
  border-bottom: 1px solid var(--c-primary);
}
.m-subnav-container .m-subnav {
  margin-top: 1.5rem;
}

/**
 * Organisims
 */
/**
 * ----------------------
 * Un.titled
 * Organisms - Header
 * ----------------------
 */
.o-header {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  justify-items: center;
  align-items: center;
  padding: 1rem 2rem;
}
@media (max-width: 1099px) {
  .o-header {
    grid-template-columns: repeat(2, 1fr);
    justify-items: start;
  }
}
@media (max-width: 767px) {
  .o-header {
    padding: 1rem;
  }
}
@media (max-width: 575px) {
  .o-header {
    padding: 0.5rem 15px;
  }
}
.o-header__nav {
  justify-self: start;
}
@media (max-width: 1099px) {
  .o-header__nav {
    display: none;
    visibility: hidden;
  }
}
.o-header__nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  flex-wrap: wrap;
}
.o-header__nav ul li {
  list-style: none;
  margin: 0;
  padding: 0;
}
.o-header__nav a {
  border-bottom: none;
  text-decoration: none;
  margin-right: 1.25rem;
}
.o-header__nav a::after {
  display: none;
  visibility: hidden;
}
.o-header__nav a:hover {
  text-decoration: underline;
}
.o-header__logo {
  border-bottom: none;
  text-decoration: none;
  display: flex;
  justify-content: center;
  align-items: center;
}
.o-header__logo::after {
  display: none;
  visibility: hidden;
}
.o-header__logo svg {
  width: 100%;
  height: auto;
  max-width: 240px;
}
.o-header__logo path {
  transition: fill var(--transition);
}
.o-header__logo:hover path {
  fill: var(--c-red);
}
.o-header__buttons {
  justify-self: end;
  display: grid;
  gap: 0.5rem;
  grid-template-columns: repeat(4, 1fr);
  align-items: center;
}
@media (max-width: 575px) {
  .o-header__buttons {
    gap: 0;
  }
}
.o-header__buttons button,
.o-header__buttons a {
  border: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 42px;
  width: 42px;
  padding: 0 0.5rem;
  transition: background var(--transition);
  background-color: transparent;
  border-radius: 50%;
}
.o-header__buttons button svg,
.o-header__buttons a svg {
  height: 20px;
  width: auto;
}
.o-header__buttons button.ticket-icon:hover path,
.o-header__buttons a.ticket-icon:hover path {
  stroke: none;
  fill: var(--c-white);
}
.o-header__buttons button path,
.o-header__buttons a path {
  transition: stroke var(--transition);
}
.o-header__buttons button:hover,
.o-header__buttons a:hover {
  background-color: var(--c-primary);
}
.o-header__buttons button:hover path,
.o-header__buttons a:hover path {
  stroke: var(--c-white);
}
.o-header h1 {
  margin-bottom: 0;
}

/**
 * ----------------------
 * Un.titled
 * Organisms - Footer
 * ----------------------
 */
.o-footer {
  --colMaxWidth: 250px;
  --padding: 3rem;
  background-color: var(--c-primary);
  color: var(--c-white);
  padding: var(--padding) 0;
}
@media (max-width: 767px) {
  .o-footer {
    --colMaxWidth: 350px;
    --padding: 2rem;
  }
}
@media (max-width: 359px) {
  .o-footer {
    --colMaxWidth: none;
  }
}
.o-footer .a-cols--full {
  max-width: 1200px;
}
.o-footer .a-links {
  margin-top: 0;
  flex-direction: column;
  align-items: flex-start;
}
.o-footer .a-links a {
  margin-bottom: 0.5rem;
}
.o-footer h3 {
  font-family: var(--fontBody);
}
.o-footer__top {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
}
@media (max-width: 767px) {
  .o-footer__top {
    grid-template-columns: 1fr;
    align-items: center;
    justify-items: center;
    gap: 2rem;
  }
}
.o-footer__top > div {
  width: 100%;
  max-width: var(--colMaxWidth);
}
.o-footer__about {
  grid-column: 1;
  grid-row: 1/5;
}
@media (max-width: 767px) {
  .o-footer__about {
    grid-column: 1;
    grid-row: auto;
  }
  .o-footer__about p {
    display: none;
    visibility: hidden;
  }
}
.o-footer__about .a-links {
  margin-top: 1rem;
}
.o-footer__newsletter {
  grid-column: 2;
  grid-row: 1/2;
  justify-self: center;
}
@media (max-width: 767px) {
  .o-footer__newsletter {
    grid-column: 1;
    grid-row: auto;
    order: -1;
  }
}
.o-footer__info {
  grid-column: 2;
  grid-row: 2/5;
  align-self: end;
  justify-self: center;
}
@media (max-width: 767px) {
  .o-footer__info {
    grid-column: 1;
    grid-row: auto;
    align-self: center;
    order: 2;
  }
}
.o-footer__join-support {
  grid-column: 3;
  grid-row: 1/3;
  justify-self: end;
}
@media (max-width: 767px) {
  .o-footer__join-support {
    grid-column: 1;
    grid-row: auto;
    justify-self: center;
  }
}
.o-footer__join-support .links {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}
.o-footer__social {
  grid-column: 3;
  grid-row: 3;
  align-self: end;
  justify-self: end;
}
@media (max-width: 767px) {
  .o-footer__social {
    grid-column: 1;
    grid-row: auto;
    align-self: center;
    justify-self: center;
    order: -2;
  }
}
.o-footer__bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  margin-top: var(--padding);
}
@media (max-width: 767px) {
  .o-footer__bottom {
    flex-direction: column;
  }
}
@media (max-width: 767px) {
  .o-footer__partners, .o-footer__headline-partner {
    width: 100%;
    max-width: var(--colMaxWidth);
  }
}
.o-footer__partners a, .o-footer__headline-partner a {
  border-bottom: none;
}
.o-footer__partners a::after, .o-footer__headline-partner a::after {
  display: none;
  visibility: hidden;
}
.o-footer__partners a:hover, .o-footer__headline-partner a:hover {
  opacity: 0.7;
}
.o-footer__headline-partner {
  width: 100%;
}
.o-footer__headline-partner p {
  max-width: var(--colMaxWidth);
  font-size: var(--fontSmall);
}
.o-footer__headline-partner img {
  margin-top: 1rem;
}
.o-footer__partners {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-wrap: wrap;
  margin-top: var(--padding);
}
@media (max-width: 767px) {
  .o-footer__partners {
    flex-direction: column;
    align-items: flex-start;
  }
}
.o-footer__partners img {
  height: 50px;
  width: auto;
  margin-right: 1.5rem;
}
@media (max-width: 359px) {
  .o-footer__partners img {
    height: 40px;
    max-width: 100%;
  }
}
.o-footer__legal {
  align-self: flex-end;
  font-size: var(--fontSmall);
  margin-top: 1rem;
}
@media (max-width: 767px) {
  .o-footer__legal {
    margin-top: var(--padding);
    align-self: center;
    width: 100%;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
  }
}

/**
 * ----------------------
 * Un.titled
 * Organisms - Search results
 * ----------------------
 */
.o-search-results-wrapper h2 {
  display: none;
}
.o-search-results-wrapper .result__title {
  margin-bottom: 0;
}
.o-search-results-wrapper__list {
  margin-bottom: 2rem;
}
.o-search-results-wrapper__list ol {
  list-style: none;
  margin: 0;
  padding: 0;
}
.o-search-results-wrapper__list ol li {
  list-style: none;
  margin: 0;
  padding: 0;
}
.o-search-results-wrapper__list ol li {
  margin-bottom: 1rem;
}

/**
 * ----------------------
 * Un.titled
 * Organisms - Teasers
 * ----------------------
 */
.o-featured-teaser,
.o-listing-teaser,
.o-teaser {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
@media (min-width: 769px) {
  .o-featured-teaser--single,
  .o-listing-teaser--single,
  .o-teaser--single {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem;
  }
}
.o-featured-teaser__thumb,
.o-listing-teaser__thumb,
.o-teaser__thumb {
  border-bottom: none;
  display: block;
  width: 100%;
  position: relative;
}
.o-featured-teaser__thumb::after,
.o-listing-teaser__thumb::after,
.o-teaser__thumb::after {
  display: none;
  visibility: hidden;
}
.o-featured-teaser__thumb figure,
.o-listing-teaser__thumb figure,
.o-teaser__thumb figure {
  height: 0;
  position: relative;
  padding-top: 56.25%;
}
.o-featured-teaser__thumb figure.listing_image_square,
.o-listing-teaser__thumb figure.listing_image_square,
.o-teaser__thumb figure.listing_image_square {
  padding-top: 100%;
}
.o-featured-teaser__thumb figure.listing_image_portrait,
.o-listing-teaser__thumb figure.listing_image_portrait,
.o-teaser__thumb figure.listing_image_portrait {
  padding-top: 133.3333%;
}
.o-featured-teaser__thumb figure picture,
.o-listing-teaser__thumb figure picture,
.o-teaser__thumb figure picture {
  position: absolute;
  top: 0;
  left: 0;
  background-color: var(--c-greyLight);
  width: 100%;
  height: 100%;
  display: flex;
}
.o-featured-teaser__thumb img,
.o-listing-teaser__thumb img,
.o-teaser__thumb img {
  width: 100%;
  height: auto;
  display: block;
  transition: opacity var(--transition);
  -o-object-fit: cover;
     object-fit: cover;
}
.o-featured-teaser__thumb .label,
.o-listing-teaser__thumb .label,
.o-teaser__thumb .label {
  position: absolute;
  top: -0.8rem;
  left: 0.5rem;
  text-transform: uppercase;
  font-size: var(--fontSmall);
  padding: 5px 10px;
  background-color: var(--c-primary);
  color: var(--c-white);
}
.o-featured-teaser__thumb .label.teal,
.o-listing-teaser__thumb .label.teal,
.o-teaser__thumb .label.teal {
  background-color: var(--c-teal);
}
.o-featured-teaser__thumb .label.violet,
.o-listing-teaser__thumb .label.violet,
.o-teaser__thumb .label.violet {
  background-color: var(--c-maroon);
}
.o-featured-teaser__thumb .label.yellow,
.o-listing-teaser__thumb .label.yellow,
.o-teaser__thumb .label.yellow {
  background-color: var(--c-yellow);
  color: var(--c-primary);
}
.o-featured-teaser__thumb:hover img,
.o-listing-teaser__thumb:hover img,
.o-teaser__thumb:hover img {
  opacity: 0.9;
}
.o-featured-teaser__content,
.o-listing-teaser__content,
.o-teaser__content {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
  padding: 1rem 0;
}
@media (max-width: 767px) {
  .o-featured-teaser__content,
  .o-listing-teaser__content,
  .o-teaser__content {
    padding: 0.5rem 0;
  }
}
.o-featured-teaser__content a:not(.a-btn):not(.read-more),
.o-listing-teaser__content a:not(.a-btn):not(.read-more),
.o-teaser__content a:not(.a-btn):not(.read-more) {
  border-bottom: none;
  text-decoration: none;
}
.o-featured-teaser__content a:not(.a-btn):not(.read-more)::after,
.o-listing-teaser__content a:not(.a-btn):not(.read-more)::after,
.o-teaser__content a:not(.a-btn):not(.read-more)::after {
  display: none;
  visibility: hidden;
}
.o-featured-teaser__content .tag,
.o-listing-teaser__content .tag,
.o-teaser__content .tag {
  margin-bottom: 0.5rem;
  text-transform: capitalize;
  font-size: var(--fontSmall);
}
@media (min-width: 769px) {
  .o-teaser--single .o-featured-teaser__content,
  .o-teaser--single .o-listing-teaser__content,
  .o-teaser--single .o-teaser__content {
    grid-row: 1;
    grid-column: 2;
    padding: 0;
  }
}
.o-featured-teaser__content p:last-of-type,
.o-listing-teaser__content p:last-of-type,
.o-teaser__content p:last-of-type {
  margin-bottom: 0;
}
.o-featured-teaser__buttons,
.o-listing-teaser__buttons,
.o-teaser__buttons {
  margin-top: auto;
  padding: 0 0 1rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}
.o-featured-teaser__buttons > .a-btn,
.o-listing-teaser__buttons > .a-btn,
.o-teaser__buttons > .a-btn {
  width: auto;
  margin-right: 1rem;
  font-size: var(--fontSmall);
  text-transform: uppercase;
  margin-top: 0.5rem;
}
.o-featured-teaser__buttons > .a-btn svg,
.o-listing-teaser__buttons > .a-btn svg,
.o-teaser__buttons > .a-btn svg {
  display: none;
  visibility: hidden;
}
.o-featured-teaser__buttons > .a-btn:not(.no-link):hover,
.o-listing-teaser__buttons > .a-btn:not(.no-link):hover,
.o-teaser__buttons > .a-btn:not(.no-link):hover {
  background-color: var(--c-secondary);
  color: var(--c-primary);
}
.o-featured-teaser__buttons > a,
.o-listing-teaser__buttons > a,
.o-teaser__buttons > a {
  margin-right: 1rem;
  margin-top: 0.5rem;
}
@media (min-width: 769px) {
  .o-teaser--single .o-featured-teaser__buttons,
  .o-teaser--single .o-listing-teaser__buttons,
  .o-teaser--single .o-teaser__buttons {
    grid-row: 1;
    grid-column: 2;
    padding-bottom: 0;
  }
}
.o-featured-teaser p,
.o-listing-teaser p,
.o-teaser p {
  max-width: var(--lineLength);
}

.o-listing-teaser h2 {
  font-size: clamp(1.6rem, 2.2vw, 2.8rem);
}
.o-listing-teaser__thumb {
  background-color: transparent;
  align-self: end;
}
.o-listing-teaser__content {
  align-items: stretch;
}
.o-listing-teaser__buttons {
  margin-top: 1rem;
}

.o-featured-teaser {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2rem;
}
@media (max-width: 1199px) {
  .o-featured-teaser {
    grid-template-columns: 1fr 1.5fr;
    gap: 1rem;
  }
}
@media (max-width: 991px) {
  .o-featured-teaser {
    grid-template-columns: 1fr;
  }
}
.o-featured-teaser--single {
  align-items: center;
}
.o-featured-teaser__content {
  color: var(--c-white);
  padding: 0;
}
.o-featured-teaser__buttons {
  padding-bottom: 0;
  flex-direction: column-reverse;
  align-items: flex-start;
  margin-top: 1.5rem;
}
.o-featured-teaser__buttons > .a-btn {
  font-size: 1rem;
  text-transform: none;
  margin-top: 1.5rem;
  border: 0;
  --btnBg: var(--c-yellow);
  --btnColour: var(--c-primary);
}
.o-featured-teaser__buttons > .a-btn svg {
  display: block;
  visibility: visible;
}

.o-teaser__content p {
  word-break: break-word;
}

/**
* ----------------------
* Un.titled
* Organisms - Listing **temp**
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.o-listing__filters {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  border: 1px solid var(--c-primary);
  border-left: 0;
  border-right: 0;
  margin-bottom: 2rem;
}
@media (max-width: 575px) {
  .o-listing__filters {
    margin-bottom: 1rem;
  }
}
.o-listing__filters .btn {
  border: 0;
  background-color: transparent;
  padding: 1.5rem;
  margin: 0;
  transition: color var(--transition);
}
@media (max-width: 767px) {
  .o-listing__filters .btn {
    padding: 0.5rem;
  }
}
@media (max-width: 359px) {
  .o-listing__filters .btn {
    font-size: 1rem;
  }
  .o-listing__filters .btn--dropdown {
    width: auto;
  }
}
.o-listing__filters .btn.active, .o-listing__filters .btn:hover {
  color: var(--c-red);
}
.o-listing__filters .divider {
  height: 100%;
  width: 1px;
  padding-left: 0;
  padding-right: 0;
  margin: 0 0.5rem;
  display: block;
  background-color: var(--c-primary);
}
@media (max-width: 767px) {
  .o-listing__filters .divider {
    display: none;
    visibility: hidden;
  }
}
.o-listing__dropdown {
  z-index: 2;
  top: calc(100% + 1px);
  left: 0;
  width: 100%;
  background-color: var(--c-greyLight);
  box-shadow: 0 4px 5px rgba(0, 0, 0, 0.15);
  padding: 2rem 1rem;
}
.o-listing__dropdown .show-results {
  margin: 20px 0 0 0;
}
.o-listing__dropdown .a-cols {
  display: flex;
  justify-content: center;
  align-items: flex-start;
}
@media (max-width: 575px) {
  .o-listing__dropdown .a-cols {
    flex-direction: column;
  }
}
.o-listing__dropdown-calendar {
  position: fixed !important;
  top: 50% !important;
  left: 50% !important;
  transform: translate(-50%, -50%);
  width: 50%;
}
.o-listing__dropdown-calendar .DayPicker-NavBar {
  top: 0;
}
.o-listing__dropdown-calendar .DayPicker-NavBar span {
  width: 20px;
  height: 20px;
}
.o-listing__dropdown-calendar .a-cols {
  flex-direction: column;
  align-items: center;
  position: relative;
}
.o-listing__dropdown-calendar-controls {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.o-listing__dropdown-calendar-controls p {
  margin-bottom: 1rem;
}
.o-listing__dropdown-taxonomy {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  grid-gap: 20px;
  justify-content: center;
  margin: 0 1rem;
  margin-bottom: 40px;
}
@media (max-width: 991px) {
  .o-listing__dropdown-taxonomy {
    grid-template-columns: 1fr 1fr;
    grid-gap: 15px;
  }
}
@media (max-width: 767px) {
  .o-listing__dropdown-taxonomy {
    grid-template-columns: 1fr;
    grid-gap: 10px;
    margin-bottom: 15px;
  }
}
.o-listing__dropdown-taxonomy label {
  display: flex;
  justify-content: center;
  align-items: center;
  grid-gap: 10px;
}
.o-listing__dropdown-taxonomy label input {
  accent-color: #ffb81c;
  width: 15px;
  height: 15px;
}
.o-listing__dropdown-taxonomy h3 {
  width: 100%;
  text-align: center;
}
@media (max-width: 575px) {
  .o-listing__dropdown-taxonomy h3 {
    text-align: left;
  }
}
.o-listing__dropdown-taxonomy--filters {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-gap: 10px;
  width: 100%;
}
@media (max-width: 767px) {
  .o-listing__dropdown-taxonomy--filters {
    grid-template-columns: 1fr;
  }
}
.o-listing__dropdown-taxonomy--filters label {
  display: grid;
  grid-template-columns: auto 1fr;
  grid-gap: 5px;
  align-items: center;
}
@media (max-width: 575px) {
  .o-listing__dropdown-taxonomy {
    margin: 0 0 1rem;
    max-width: none;
  }
  .o-listing__dropdown-taxonomy:last-child {
    margin-bottom: 0;
  }
}
.o-listing__dropdown .link {
  border-bottom: none;
  border: 0;
  padding: 0;
  border-bottom: 2px solid transparent;
  margin-bottom: 0.5rem;
  background-color: transparent;
  text-align: left;
}
.o-listing__dropdown .link::after {
  display: none;
  visibility: hidden;
}
.o-listing__dropdown .link:hover, .o-listing__dropdown .link.active {
  border-bottom-color: var(--c-red);
}
.o-listing__active-filters {
  padding: 0.5rem 0 0;
  background-color: var(--c-greyLight);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  margin-bottom: 1rem;
}
@media (max-width: 575px) {
  .o-listing__active-filters {
    margin-top: 0;
  }
}
.o-listing__active-filters .a-btn {
  margin-right: 1rem;
  padding: 0.25rem 0.5rem;
  text-transform: uppercase;
  font-size: var(--fontSmall);
  display: flex;
  justify-content: space-between;
  align-items: center;
  letter-spacing: 1px;
  margin-bottom: 0.5rem;
}
.o-listing__active-filters .a-btn span {
  display: inline-block;
  margin-left: 0.5rem;
  color: var(--c-red);
  line-height: 1;
  transition: color var(--transition);
}
.o-listing__active-filters .a-btn:hover {
  border-color: var(--c-red);
  background-color: var(--c-red);
  color: var(--c-white);
}
.o-listing__active-filters .a-btn:hover span {
  color: var(--c-white);
}
.o-listing .DayPicker-Months {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2rem;
}
@media (max-width: 575px) {
  .o-listing .DayPicker-Months {
    grid-template-columns: 1fr;
    gap: 0;
    font-size: var(--fontSmall);
  }
}
.o-listing .DayPicker-Month {
  width: 100%;
  margin: 0;
}

/**
* ----------------------
* Un.titled
* Organisms - Person teaser
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.o-people--sm {
  margin-top: 1.5rem;
  display: grid;
  gap: 2rem;
  grid-template-columns: repeat(4, 1fr);
}
@media (max-width: 767px) {
  .o-people--sm {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (max-width: 575px) {
  .o-people--sm {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 359px) {
  .o-people--sm {
    grid-template-columns: 1fr;
  }
}
.o-people--sm .o-people__person {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.o-people--sm .o-people__person figure {
  margin-bottom: 1.5rem;
  order: -1;
  position: relative;
  height: 0;
  padding-top: 100%;
}
.o-people--sm .o-people__person img {
  position: absolute;
  top: 0;
  left: 0;
}
.o-people--sm .o-people__person h3 {
  margin-bottom: 0;
}
.o-people--sm .o-people__person h4 {
  font-family: var(--fontBody);
}
.o-people--lg .o-people__person {
  display: grid;
  grid-template-columns: 1fr 220px;
  gap: 2rem;
  border-top: 1px solid var(--c-primary);
  padding-top: 1.5rem;
  margin-top: 1.5rem;
}
.o-people--lg .o-people__person:first-of-type {
  margin-top: 0;
}
@media (max-width: 767px) {
  .o-people--lg .o-people__person {
    grid-template-columns: 1fr 150px;
  }
}
@media (max-width: 575px) {
  .o-people--lg .o-people__person {
    grid-template-columns: 1fr;
  }
  .o-people--lg .o-people__person img {
    max-width: 300px;
    width: 100%;
    height: auto;
    justify-self: center;
    order: -1;
  }
}
.o-people__person {
  border-bottom: none;
  text-decoration: none;
}
.o-people__person::after {
  display: none;
  visibility: hidden;
}
.o-people__person .link {
  display: inline-block;
  margin-top: 1rem;
}
.o-people__person:hover h3,
.o-people__person:hover .link {
  text-decoration: underline;
}
.o-people__person:hover .link::after {
  background-color: currentColor;
}
.o-people__person:hover img {
  opacity: 0.7;
}
.o-people img {
  border-radius: 50%;
  overflow: hidden;
  transition: opacity var(--transition);
}

/**
* ----------------------
* Un.titled
* Organisms - Performances modal
* ----------------------
*/
/**
* Styling
*/
[data-modalOpen=true] {
  overflow: hidden;
}

.o-modal {
  border: 0;
  position: fixed;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  z-index: 25;
  visibility: hidden;
  justify-content: center;
  align-items: center;
  color: var(--c-primary);
}
.o-modal[data-visible=true] {
  display: flex;
  animation: fadeIn 0.2s ease-in-out forwards;
}
.o-modal[data-visible=false] {
  display: none;
  visibility: hidden;
}
@media (max-width: 767px) {
  .o-modal .a-cols {
    padding: 0;
  }
}
.o-modal--fullscreen {
  background-color: var(--c-primary);
  color: var(--c-white);
  padding: 2rem;
  overflow-y: scroll;
}
@media (max-width: 767px) {
  .o-modal--fullscreen {
    padding: 2rem 0;
  }
}
.o-modal--fullscreen .a-cols {
  max-height: 95vh;
  padding: 1rem 0 0;
}
.o-modal--fullscreen .o-modal__close {
  background-color: transparent;
  right: 2rem;
}
@media (max-width: 767px) {
  .o-modal--fullscreen .o-modal__close {
    right: 1rem;
  }
}
@media (max-width: 575px) {
  .o-modal--fullscreen .o-modal__close {
    right: 15px;
  }
}
.o-modal--fullscreen .o-modal__close path {
  stroke: var(--c-white);
}
.o-modal--fullscreen .o-modal__close:hover {
  background-color: var(--c-white);
}
.o-modal--fullscreen .o-modal__close:hover path {
  stroke: var(--c-primary);
}
.o-modal__close {
  position: absolute;
  height: 42px;
  width: 42px;
  background-color: var(--c-white);
  border-radius: 50%;
  padding: 0;
  margin: 0;
  top: 1rem;
  right: 1rem;
  border: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  transition: background-color var(--transition);
}
@media (max-width: 575px) {
  .o-modal__close {
    right: 0.5rem;
    height: 35px;
    width: 35px;
  }
}
.o-modal__close svg {
  width: 20px;
}
@media (max-width: 575px) {
  .o-modal__close svg {
    width: 15px;
  }
}
.o-modal__close path {
  transition: stroke var(--transition);
}
.o-modal__close:hover {
  background-color: var(--c-primary);
}
.o-modal__close:hover path {
  stroke: var(--c-white);
}

#ccc #ccc-close.ccc-close--labelled {
  background-color: transparent !important;
  transition: all var(--transition);
}
#ccc #ccc-close.ccc-close--labelled:hover svg {
  animation: shake 0.82s cubic-bezier(0.36, 0.07, 0.19, 0.97) both;
}
#ccc #ccc-reject-settings.ccc-notify-button.ccc-reject-button {
  background-color: var(--c-white) !important;
  border-color: var(--c-primary) !important;
  color: var(--c-primary) !important;
}
#ccc #ccc-reject-settings.ccc-notify-button.ccc-reject-button > span {
  background-color: var(--c-white) !important;
  border-color: var(--c-primary) !important;
  color: var(--c-primary) !important;
}

@keyframes shake {
  10%, 90% {
    transform: translate3d(-1px, 0, 0);
  }
  20%, 80% {
    transform: translate3d(2px, 0, 0);
  }
  30%, 50%, 70% {
    transform: translate3d(-2px, 0, 0);
  }
  40%, 60% {
    transform: translate3d(2px, 0, 0);
  }
}
/**
* Templates
*/
/**
* ----------------------
* Un.titled
* Template - Posts
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
article {
  display: flex;
  flex-direction: column;
  align-items: center;
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3NzL2dsb2JhbC5jc3MiLCJtYXBwaW5ncyI6IkFBQUEsMEVBQTBFO0FBQzFFOztDQUVDO0FBQ0Qsc0JBQXNCO0FBQ3RCO0VBQ0UsYUFBYTtFQUNiLGtCQUFrQjtFQUNsQixXQUFXO0VBQ1gsWUFBWTtFQUNaLE9BQU87RUFDUCxNQUFNO0VBQ04sZ0JBQWdCO0VBQ2hCLHNCQUFzQjtFQUN0QixrQkFBa0I7RUFDbEIsYUFBYTtFQUNiLDhCQUE4QjtFQUM5Qiw2RUFBNkU7RUFDN0UsbUNBQW1DO0VBQ25DLGFBQWEsRUFBRTtFQUNmO0lBQ0UsOEJBQThCO1lBQ3RCLHNCQUFzQixFQUFFO0VBQ2xDO0lBQ0UsZUFBZSxFQUFFOztBQUVyQixpRUFBaUU7QUFDakU7RUFDRSxtR0FBbUc7RUFDbkcsY0FBYztFQUNkLG9CQUFvQjtFQUNwQiw4QkFBOEI7RUFDOUIsK0RBQStEO1VBQ3ZELHVEQUF1RCxFQUFFOztBQUVuRTtFQUNFLGNBQWMsRUFBRTs7QUFFbEI7RUFDRSxzQkFBc0I7RUFDdEIsdUJBQXVCO0VBQ3ZCLG9CQUFvQjtFQUNwQixlQUFlLEVBQUU7O0FBRW5CO0VBQ0Usc0JBQXNCO0VBQ3RCLG9CQUFvQjtFQUNwQixpQkFBaUI7RUFDakIsWUFBWSxFQUFFOztBQUVoQjtFQUNFLHNCQUFzQjtFQUN0Qix3QkFBd0I7RUFDeEIscUJBQXFCO0VBQ3JCLGdCQUFnQixFQUFFOztBQUVwQjs7O0NBR0M7QUFDRDtFQUNFLGtCQUFrQjtFQUNsQixPQUFPO0VBQ1AsTUFBTTtFQUNOLFdBQVc7RUFDWCxZQUFZO0VBQ1osZ0JBQWdCO0VBQ2hCLFVBQVU7RUFDVixnQ0FBZ0M7VUFDeEIsd0JBQXdCO0VBQ2hDLG1DQUFtQztFQUNuQyxvQkFBb0IsRUFBRTs7QUFFeEI7RUFDRSxrQkFBa0I7RUFDbEIsT0FBTztFQUNQLE1BQU07RUFDTixXQUFXO0VBQ1gsWUFBWTtFQUNaLGdCQUFnQixFQUFFOztBQUVwQjs7RUFFRSxzQkFBc0I7RUFDdEIsa0JBQWtCO0VBQ2xCLGtCQUFrQjtFQUNsQixPQUFPO0VBQ1AsUUFBUTtFQUNSLE1BQU07RUFDTixTQUFTLEVBQUU7O0FBRWIseUNBQXlDO0FBQ3pDOztFQUVFLHlCQUF5QjtFQUN6QixzQkFBc0I7RUFDdEIscUJBQXFCO01BQ2pCLGlCQUFpQjtFQUNyQix3Q0FBd0M7RUFDeEMsMkJBQTJCLEVBQUU7O0FBRS9CO0VBQ0Usa0JBQWtCO0VBQ2xCLFdBQVc7RUFDWCxrQ0FBa0M7RUFDbEMsOEJBQThCO0VBQzlCLDBCQUEwQjtFQUMxQiw4QkFBOEI7RUFDOUIseUVBQXlFO1VBQ2pFLHlEQUF5RCxFQUFFOztBQUVyRTtFQUNFLG9CQUFvQjtFQUNwQiw4QkFBOEI7RUFDOUIsK0RBQStEO1VBQ3ZELHVEQUF1RCxFQUFFOztBQUVuRTs7RUFFRSx3QkFBd0I7RUFDeEIsZ0JBQWdCLEVBQUU7O0FBRXBCOztFQUVFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLGtCQUFrQjtFQUNsQixPQUFPO0VBQ1AsUUFBUTtFQUNSLE1BQU07RUFDTixTQUFTO0VBQ1QsZ0JBQWdCLEVBQUU7O0FBRXBCO0VBQ0Usa0JBQWtCO0VBQ2xCLFdBQVc7RUFDWCxZQUFZO0VBQ1osTUFBTTtFQUNOLE9BQU8sRUFBRTs7QUFFWDs7O0NBR0M7QUFDRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2Qzs7O0NBR0M7QUFDRDtFQUNFLGdCQUFnQixFQUFFOztBQUVwQjtFQUNFLHNCQUFzQjtFQUN0Qix1QkFBdUI7RUFDdkIsT0FBTztFQUNQLE1BQU0sRUFBRTs7QUFFVjs7O0NBR0M7QUFDRDtFQUNFLGtCQUFrQjtFQUNsQixPQUFPO0VBQ1AsUUFBUTtFQUNSLFdBQVc7RUFDWCxrQkFBa0I7RUFDbEIsZUFBZTtFQUNmLGlCQUFpQjtFQUNqQixnQkFBZ0I7RUFDaEIsV0FBVyxFQUFFOztBQUVmO0VBQ0UsV0FBVztFQUNYLDBCQUEwQixFQUFFOztBQ2xMOUIsZ0JBQWdCO0FBQWhCOzs7OztFQUFBO0FBT0E7O0VBQUE7QUNQQTtBQUVBOzs7O0VBQUE7QUFNQTtFQUNFO0VBQ0E7RUFDQTtBRFVGOztBQ1BBOztFQUFBO0FBSUE7RUFDRTtBRFNGOztBQ05BOytFQUFBO0FBR0E7Ozs7O0VBQUE7QUFPQTs7Ozs7Ozs7Ozs7OztFQWFFO0FET0Y7O0FDSkE7OztFQUFBO0FBS0E7Ozs7RUFJRTtFQUNBO0FETUY7O0FDSEE7OztFQUFBO0FBS0E7RUFDRTtFQUNBO0FES0Y7O0FDRkE7OztFQUFBO0FBS0E7O0VBRUU7QURJRjs7QUNEQTsrRUFBQTtBQUdBOztFQUFBO0FBSUE7RUFDRTtBREVGOztBQ0NBOztFQUFBO0FBSUE7O0VBRUU7QURDRjs7QUNFQTsrRUFBQTtBQUdBOztFQUFBO0FBSUE7RUFDRTtBRERGOztBQ0lBOztFQUFBO0FBSUE7O0VBRUU7QURGRjs7QUNLQTs7RUFBQTtBQUlBO0VBQ0U7QURIRjs7QUNNQTs7O0VBQUE7QUFLQTtFQUNFO0VBQ0E7QURKRjs7QUNPQTs7RUFBQTtBQUlBO0VBQ0U7RUFDQTtBRExGOztBQ1FBOztFQUFBO0FBSUE7RUFDRTtBRE5GOztBQ1NBOztFQUFBO0FBSUE7O0VBRUU7RUFDQTtFQUNBO0VBQ0E7QURQRjs7QUNVQTtFQUNFO0FEUEY7O0FDVUE7RUFDRTtBRFBGOztBQ1VBOytFQUFBO0FBR0E7O0VBQUE7QUFJQTtFQUNFO0FEVEY7O0FDWUE7O0VBQUE7QUFJQTtFQUNFO0FEVkY7O0FDYUE7K0VBQUE7QUFHQTs7RUFBQTtBQUlBO0VBQ0U7QURaRjs7QUNlQTs7RUFBQTtBQUlBO0VBQ0U7RUFDQTtFQUNBO0FEYkY7O0FDZ0JBOztFQUFBO0FBSUE7RUFDRTtBRGRGOztBQ2lCQTs7RUFBQTtBQUlBOzs7O0VBSUU7RUFDQTtBRGZGOztBQ2tCQTsrRUFBQTtBQUdBOzs7RUFBQTtBQUtBOzs7OztFQUFBO0FBT0E7Ozs7O0VBS0U7RUFDQTtFQUNBO0FEbEJGOztBQ3FCQTs7RUFBQTtBQUlBO0VBQ0U7QURuQkY7O0FDc0JBOzs7OztFQUFBO0FBT0E7O0VBRUU7QURwQkY7O0FDdUJBOzs7Ozs7RUFBQTtBQVFBOzs7O0VBSUU7RUFDQTtBRHJCRjs7QUN3QkE7O0VBQUE7QUFJQTs7RUFFRTtBRHRCRjs7QUN5QkE7O0VBQUE7QUFJQTs7RUFFRTtFQUNBO0FEdkJGOztBQzBCQTs7O0VBQUE7QUFLQTtFQUNFO0FEeEJGOztBQzJCQTs7Ozs7O0VBQUE7QUFRQTs7RUFFRTtFQUNBO0FEekJGOztBQzRCQTs7OztFQUFBO0FBTUE7O0VBRUU7QUQxQkY7O0FDNkJBOzs7O0VBQUE7QUFNQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0FEM0JGOztBQzhCQTs7OztFQUFBO0FBTUE7O0VBRUU7QUQ1QkY7O0FDK0JBOztFQUFBO0FBSUE7RUFDRTtFQUNBO0VBQ0E7QUQ3QkY7O0FDZ0NBOzs7RUFBQTtBQUtBO0VBQ0U7RUFDQTtBRDlCRjs7QUNpQ0E7O0VBQUE7QUFJQTtFQUNFO0FEL0JGOztBQ2tDQTs7O0VBQUE7QUFLQTtFQUNFO0FEaENGOztBQ21DQTsrRUFBQTtBQUdBOztFQUFBO0FBSUE7RUFDRTtFQUNBO0FEbENGOztBQ3FDQTs7RUFFRTtBRGxDRjs7QUU5VUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUZpVkY7O0FHbFpBOztFQ29hSSw4QkRsYW9CO0VDbWFwQiwyQkRuYW9CO0VDb2FwQixzQkRwYW9CO0VBQ3BCO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUh1Wko7QUdyWkk7O0VBQ0k7RUFDQTtBSHdaUjs7QUduWkk7RUFESjtJQUVRLGdCRFVJO0VGNllWO0FBQ0Y7QUdyWkk7RUFMSjtJQU1RLGdCRE9JO0VGaVpWO0FBQ0Y7QUd0Wkk7RUFUSjtJQVVRLGdCRElJO0VGcVpWO0FBQ0Y7QUd2Wkk7RUFiSjtJQWNRLGlCRENJO0VGeVpWO0FBQ0Y7QUd4Wkk7RUFqQko7SUFrQlEsaUJERks7RUY2Wlg7QUFDRjs7QUdwWkE7RUMyWEksOEJEMVhvQjtFQzJYcEIsMkJEM1hvQjtFQzRYcEIsc0JENVhvQjtFQUNwQjtFQ3FHQTtFQUNBO0VBQ0E7RUE0Q0EsbUJBRG9CO0VBRXBCLHVCQUZvQjtFQUdwQixlQUhvQjtFRC9JcEI7RUFDQTtFQUNBO0VDTEk7R0FDQTtFQUNBO0VEYUo7QUh1Wko7QUc5Wkk7RUNpWEEsOEJEL1d3QjtFQ2dYeEIsMkJEaFh3QjtFQ2lYeEIsc0JEalh3QjtFQ0ZwQjtFQUNBO0VBQ0E7QUpvYVI7O0FHeFpBO0VDbVdJLDhCRGxXb0I7RUNtV3BCLDJCRG5Xb0I7RUNvV3BCLHNCRHBXb0I7RUNmaEI7RUFDQTtFQUNBO0VEZUo7RUFDQTtFQUNBO0VBQ0EsYURyQmtCO0VDb0NkO0dBQ0E7RUFDQTtBSGlaUjtBR2hhSTtFQzJWQSw4QkR6VndCO0VDMFZ4QiwyQkQxVndCO0VDMlZ4QixzQkQzVndCO0VDeEJwQjtFQUNBO0VBQ0E7QUo0YlI7QUdqYUk7RUM2RUk7RUFHSjtFQUNBO0VEL0VJO0FIcWFSOztBSTVlUTtFQUNJO0dBRUk7QUo4ZWhCOztBSWpmUTtFQUNJO0dBRUk7QUptZmhCOztBSXRmUTtFQUNJO0dBRUk7QUp3ZmhCOztBSTNmUTtFQUNJO0dBRUk7QUo2ZmhCOztBSWhnQlE7RUFDSTtHQUVJO0FKa2dCaEI7O0FJcmdCUTtFQUNJO0dBRUk7QUp1Z0JoQjs7QUkxZ0JRO0VBQ0k7R0FFSTtBSjRnQmhCOztBSS9nQlE7RUFDSTtHQUVJO0FKaWhCaEI7O0FJcGhCUTtFQUNJO0dBRUk7QUpzaEJoQjs7QUl6aEJRO0VBQ0k7R0FFSTtBSjJoQmhCOztBSTloQlE7RUFDSTtHQUVJO0FKZ2lCaEI7O0FJbmlCUTtFQUNJO0dBRUk7QUpxaUJoQjs7QUdqZEE7RUN2RlE7SUFDSTtLQUVJO0VKMmlCZDtFSTlpQk07SUFDSTtLQUVJO0VKK2lCZDtFSWxqQk07SUFDSTtLQUVJO0VKbWpCZDtFSXRqQk07SUFDSTtLQUVJO0VKdWpCZDtFSTFqQk07SUFDSTtLQUVJO0VKMmpCZDtFSTlqQk07SUFDSTtLQUVJO0VKK2pCZDtFSWxrQk07SUFDSTtLQUVJO0VKbWtCZDtFSXRrQk07SUFDSTtLQUVJO0VKdWtCZDtFSTFrQk07SUFDSTtLQUVJO0VKMmtCZDtFSTlrQk07SUFDSTtLQUVJO0VKK2tCZDtFSWxsQk07SUFDSTtLQUVJO0VKbWxCZDtFSXRsQk07SUFDSTtLQUVJO0VKdWxCZDtBQUNGO0FHaGdCQTtFQzNGUTtJQUNJO0tBRUk7RUo2bEJkO0VJaG1CTTtJQUNJO0tBRUk7RUppbUJkO0VJcG1CTTtJQUNJO0tBRUk7RUpxbUJkO0VJeG1CTTtJQUNJO0tBRUk7RUp5bUJkO0VJNW1CTTtJQUNJO0tBRUk7RUo2bUJkO0VJaG5CTTtJQUNJO0tBRUk7RUppbkJkO0VJcG5CTTtJQUNJO0tBRUk7RUpxbkJkO0VJeG5CTTtJQUNJO0tBRUk7RUp5bkJkO0VJNW5CTTtJQUNJO0tBRUk7RUo2bkJkO0VJaG9CTTtJQUNJO0tBRUk7RUppb0JkO0VJcG9CTTtJQUNJO0tBRUk7RUpxb0JkO0VJeG9CTTtJQUNJO0tBRUk7RUp5b0JkO0FBQ0Y7QUc5aUJBO0VDL0ZRO0lBQ0k7S0FFSTtFSitvQmQ7RUlscEJNO0lBQ0k7S0FFSTtFSm1wQmQ7RUl0cEJNO0lBQ0k7S0FFSTtFSnVwQmQ7RUkxcEJNO0lBQ0k7S0FFSTtFSjJwQmQ7RUk5cEJNO0lBQ0k7S0FFSTtFSitwQmQ7RUlscUJNO0lBQ0k7S0FFSTtFSm1xQmQ7RUl0cUJNO0lBQ0k7S0FFSTtFSnVxQmQ7RUkxcUJNO0lBQ0k7S0FFSTtFSjJxQmQ7RUk5cUJNO0lBQ0k7S0FFSTtFSitxQmQ7RUlsckJNO0lBQ0k7S0FFSTtFSm1yQmQ7RUl0ckJNO0lBQ0k7S0FFSTtFSnVyQmQ7RUkxckJNO0lBQ0k7S0FFSTtFSjJyQmQ7QUFDRjtBRzVsQkE7RUNuR1E7SUFDSTtLQUVJO0VKaXNCZDtFSXBzQk07SUFDSTtLQUVJO0VKcXNCZDtFSXhzQk07SUFDSTtLQUVJO0VKeXNCZDtFSTVzQk07SUFDSTtLQUVJO0VKNnNCZDtFSWh0Qk07SUFDSTtLQUVJO0VKaXRCZDtFSXB0Qk07SUFDSTtLQUVJO0VKcXRCZDtFSXh0Qk07SUFDSTtLQUVJO0VKeXRCZDtFSTV0Qk07SUFDSTtLQUVJO0VKNnRCZDtFSWh1Qk07SUFDSTtLQUVJO0VKaXVCZDtFSXB1Qk07SUFDSTtLQUVJO0VKcXVCZDtFSXh1Qk07SUFDSTtLQUVJO0VKeXVCZDtFSTV1Qk07SUFDSTtLQUVJO0VK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QU9MO0VKbXZDTjtBQUNGO0FHbnFDQTtFQ2pFUTtJQWxCSiwyQkFGYTtLQUlUO0VKeXZDTjtFSXp1Q007SUFsQkosMkJBRmE7S0FJVDtFSjZ2Q047RUk3dUNNO0lBbEJKLGdCQUZhO0tBSVQ7RUppd0NOO0VJanZDTTtJQWxCSiwyQkFGYTtLQUlUO0VKcXdDTjtFSXJ2Q007SUFsQkosMkJBRmE7S0FJVDtFSnl3Q047RUl6dkNNO0lBbEJKLGdCQUZhO0tBSVQ7RUo2d0NOO0VJN3ZDTTtJQWxCSiwyQkFGYTtLQUlUO0VKaXhDTjtFSWp3Q007SUFsQkosMkJBRmE7S0FJVDtFSnF4Q047RUlyd0NNO0lBbEJKLGdCQUZhO0tBSVQ7RUp5eENOO0VJendDTTtJQWxCSiwyQkFGYTtLQUlUO0VKNnhDTjtFSTd3Q007SUFsQkosMEJBRmE7S0FJVDtFSml5Q047RUlqeENNO0lBbEJKLGNBTFM7S0FPTDtFSnF5Q047QUFDRjtBR2p0Q0E7RUNyRVE7SUFsQkosMkJBRmE7S0FJVDtFSjJ5Q047RUkzeENNO0lBbEJKLDJCQUZhO0tBSVQ7RUoreUNOO0VJL3hDTTtJQWxCSixnQkFGYTtLQUlUO0VKbXpDTjtFSW55Q007SUFsQkosMkJBRmE7S0FJVDtFSnV6Q047RUl2eUNNO0lBbEJKLDJCQUZhO0tBSVQ7RUoyekNOO0VJM3lDTTtJQWxCSixnQkFGYTtLQUlUO0VKK3pDTjtFSS95Q007SUFsQkosMkJBRmE7S0FJVDtFSm0wQ047RUluekNNO0lBbEJKLDJCQUZhO0tBSVQ7RUp1MENOO0VJdnpDTTtJQWxCSixnQkFGYTtLQUlUO0VKMjBDTjtFSTN6Q007SUFsQkosMkJBRmE7S0FJVDtFSiswQ047RUkvekNNO0lBbEJKLDBCQUZhO0tBSVQ7RUptMUNOO0VJbjBDTTtJQWxCSixjQUxTO0tBT0w7RUp1MUNOO0FBQ0Y7QUcvdkNBO0VDekVRO0lBbEJKLDJCQUZhO0tBSVQ7RUo2MUNOO0VJNzBDTTtJQWxCSiwyQkFGYTtLQUlUO0VKaTJDTjtFSWoxQ007SUFsQkosZ0JBRmE7S0FJVDtFSnEyQ047RUlyMUNNO0lBbEJKLDJCQUZhO0tBSVQ7RUp5MkNOO0VJejFDTTtJQWxCSiwyQkFGYTtLQUlUO0VKNjJDTjtFSTcxQ007SUFsQkosZ0JBRmE7S0FJVDtFSmkzQ047RUlqMkNNO0lBbEJKLDJCQUZhO0tBSVQ7RUpxM0NOO0VJcjJDTTtJQWxCSiwyQkFGYTtLQUlUO0VKeTNDTjtFSXoyQ007SUFsQkosZ0JBRmE7S0FJVDtFSjYzQ047RUk3MkNNO0lBbEJKLDJCQUZhO0tBSVQ7RUppNENOO0VJajNDTTtJQWxCSiwwQkFGYTtLQUlUO0VKcTRDTjtFSXIzQ007SUFsQkosY0FMUztLQU9MO0VKeTRDTjtBQUNGO0FHN3lDQTtFQzdFUTtJQWxCSiwyQkFGYTtLQUlUO0VKKzRDTjtFSS8zQ007SUFsQkosMkJBRmE7S0FJVDtFSm01Q047RUluNENNO0lBbEJKLGdCQUZhO0tBSVQ7RUp1NUNOO0VJdjRDTTtJQWxCSiwyQkFGYTtLQUlUO0VKMjVDTjtFSTM0Q007SUFsQkosMkJBRmE7S0FJVDtFSis1Q047RUkvNENNO0lBbEJKLGdCQUZhO0tBSVQ7RUptNkNOO0VJbjVDTTtJQWxCSiwyQkFGYTtLQUlUO0VKdTZDTjtFSXY1Q007SUFsQkosMkJBRmE7S0FJVDtFSjI2Q047RUkzNUNNO0lBbEJKLGdCQUZhO0tBSVQ7RUorNkNOO0VJLzVDTTtJQWxCSiwyQkFGYTtLQUlUO0VKbTdDTjtFSW42Q007SUFsQkosMEJBRmE7S0FJVDtFSnU3Q047RUl2NkNNO0lBbEJKLGNBTFM7S0FPTDtFSjI3Q047QUFDRjtBS3RpREE7RUR5TEksbUJDeExtQjtFRHlMbkIsdUJDekxtQjtFRDBMbkIsZUMxTG1CO0FMMGlEdkI7O0FLdmlEQTtFRHFMSSxxQkNwTG1CO0VEcUxuQix5QkNyTG1CO0VEc0xuQixpQkN0TG1CO0FMNGlEdkI7QUt2aURJO0VENEpBLG9CQzNKeUI7RUQ0SnpCLHNCQzVKeUI7RUQ2SnpCLGNDN0p5QjtBTDJpRDdCOztBS3ZpREE7RUQwS0ksMkJDekttQjtFRDBLbkIsK0JDMUttQjtFRDJLbkIsdUJDM0ttQjtBTDRpRHZCOztBS3JpREE7RUR3S0ksdUJDdkt3QjtFRHdLeEIsMkJDeEt3QjtFRHlLeEIsbUJDekt3QjtBTDBpRDVCOztBS3ZpREE7RURvS0ksK0JDbkt3QjtFRG9LeEIsbUNDcEt3QjtFRHFLeEIsMkJDckt3QjtBTDRpRDVCOztBS3ppREE7RURnS0ksMEJDL0p3QjtFRGdLeEIsOEJDaEt3QjtFRGlLeEIsc0JDakt3QjtBTDhpRDVCOztBSzNpREE7RUQ0Skksa0NDM0p3QjtFRDRKeEIsc0NDNUp3QjtFRDZKeEIsOEJDN0p3QjtBTGdqRDVCOztBS3ppREE7RURxTFE7RUF0QkosK0JDOUpxQjtFRCtKckIsdUJDL0pxQjtBTDhpRHpCOztBSzNpREE7RURtTFE7RUF4QkosNkJDMUpxQjtFRDJKckIscUJDM0pxQjtBTGdqRHpCO0FLNWlEUTtFQUNJO0FMOGlEWjs7QUt6aURBO0VEMEtRLHNCQ3pLaUI7RUQrSXJCLDJCQy9JcUI7RURnSnJCLG1CQ2hKcUI7QUw4aUR6QjtBSzFpRFE7RUFDSTtBTDRpRFo7O0FLdmlEQTtFRCtKUSx3QkM5SmlCO0VEb0lyQiw2QkNwSXFCO0VEcUlyQixxQkNySXFCO0FMNGlEekI7O0FLcmlEQTtFRHVLUTtFQTlCSixpQ0N4SXVCO0VEeUl2Qix5QkN6SXVCO0FMMGlEM0I7O0FLdmlEQTtFRHFLUTtFQWhDSiwrQkNwSXVCO0VEcUl2Qix1QkNySXVCO0FMNGlEM0I7QUt6aURJO0VBQ0k7QUwyaURSOztBS3ZpREE7RURrS1EsMEJDakttQjtFRDJIdkIsNkJDM0h1QjtFRDRIdkIscUJDNUh1QjtBTDRpRDNCOztBS3ppREE7RUQwSlE7RUFsQ0osb0NDdkh1QjtFRHdIdkIsNEJDeEh1QjtBTDhpRDNCOztBSzNpREE7RUR3SlE7RUFwQ0osbUNDbkh1QjtFRG9IdkIsMkJDcEh1QjtBTGdqRDNCOztBS3ppREE7RURvSVEsNEJDbklnQjtFRHFHcEIsMkJDckdvQjtFRHNHcEIsbUJDdEdvQjtBTDhpRHhCOztBSzNpREE7RUQ0SFE7RUExQkosOEJDakdvQjtFRGtHcEIsc0JDbEdvQjtBTGdqRHhCOztBSzdpREE7RUQwSFE7RUE1QkosNEJDN0ZvQjtFRDhGcEIsb0JDOUZvQjtFQUNwQjtBTGtqREo7O0FLL2lEQTtFRHVIUSwyQkN0SGdCO0VEd0ZwQiwwQkN4Rm9CO0VEeUZwQixrQkN6Rm9CO0VBQ3BCO0FMb2pESjs7QUtqakRBO0VEa0hRLDZCQ2pIZ0I7RURtRnBCLDRCQ25Gb0I7RURvRnBCLG9CQ3BGb0I7RUFDcEI7QUxzakRKOztBSy9pREE7RURvSUk7RUFDQTtFQUNBO0FKKzZDSjtBS2pqRFE7RUFDSTtBTG1qRFo7O0FLOWlEQTtFRGdJSTtFQUNBO0VBQ0E7QUprN0NKO0FLaGpEUTtFQUNJO0VBQ0E7RUFDQTtBTGtqRFo7QUtoakRZO0VEekZSO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBSjRvREo7O0FLampEQTtFRHNISTtFQUNBO0VBQ0E7QUorN0NKO0FLbmpEUTtFQUNJO0VBQ0E7RUFDQTtBTHFqRFo7QUtuakRZO0VEekdSO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBSitwREo7O0FLcGpEQTtFRDRHSTtFQUNBO0VBQ0E7QUo0OENKO0FLdGpEUTtFQUNJO0VBQ0E7RUFDQTtBTHdqRFo7QUt0akRZO0VEekhSO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBSmtyREo7O0FLdmpEQTtFRGtHSTtFQUNBO0VBQ0E7QUp5OUNKO0FLempEUTtFQUNJO0VBQ0E7RUFDQTtBTDJqRFo7QUt6akRZO0VEeklSO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBSnFzREo7O0FLcGpESTtFQUNJO0FMdWpEUjs7QUs5aURBO0VEcEZJO0VBQ0E7RUFDQTtFQWtEQSwwQkNrQ3dCO0VEakN4Qiw4QkNpQ3dCO0VEaEN4QixzQkNnQ3dCO0FMcWpENUI7QUtuakRJO0VEcENBLHVCQ3FDNEI7RURwQzVCLDJCQ29DNEI7RURuQzVCLG1CQ21DNEI7QUx1akRoQzs7QUtsakRBO0VBQ0k7QUxxakRKOztBS2pqREE7RUFDSTtBTG9qREo7O0FLaGpEQTtFQUNJO0FMbWpESjs7QUs1aURBO0VBQ0k7RURwR0k7RUFHSjtFQUNBO0VDa0dBO0VBQ0E7RUFDQTtHQUVJO0FMZ2pE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O0lBQUE7RUNBQTs7Ozs7SUFBQTtFQ0FBOzs7OztJQUFBO0VDQUE7Ozs7O0lBQUE7RUNBQTs7Ozs7SUFBQTtFQ0FBOzs7OztJQUFBO0VDQUE7Ozs7O0lBQUE7RUNBQTs7Ozs7SUFBQTtFQ0FBOzs7OztJQUFBO0VDQUE7Ozs7O0lBQUE7RUNBQTs7Ozs7SUFBQTtFQ0FBOzs7OztJQUFBO0VDQUE7Ozs7O0lBQUE7RUNBQTs7Ozs7SUFBQTtFQ0FBOzs7OztJQUFBO0VDQUE7Ozs7O0lBQUE7RUNBQTs7Ozs7SUFBQTtFQ0FBOzs7OztJQUFBO0VDQUE7Ozs7O0lBQUE7QW5FaXJIQTtBcUNucEhFO0VBQ0U7RUFDQTtFQUNBO0FyQ3FwSEo7QXFDbHBIRTtFQUNFO0FyQ29wSEo7QXFDOW9ISTtFQUNFO0FyQ2dwSE47QXFDOW9ITTtFQUNFO0VBQ0E7RUFDQTtBckNncEhSO0FxQzlvSFE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QXJDZ3BIVjtBc0Nyc0hBO0VBQ0U7QXRDdXNIRjtBc0Nyc0hFO0VBQ0U7QXRDdXNISjtBdUMzc0hBO0VBQ0U7RUFDQTtBdkM2c0hGO0F1QzNzSEU7RUFDRTtBdkM2c0hKO0F1QzFzSEU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0F2QzRzSEo7QXVDenNIRTtFL0J5QkE7QVJtckhGO0FRanJIRTtFQUNFO0VBQ0E7QVJtckhKO0F3Qy9zSEE7RUFDRTtBeENpdEhGO0F3Qy9zSEU7RUFDRTtFQUVBO0VBQ0E7RUFDQTtBeENndEhKO0F3QzlzSEk7RUFDRTtFQUNBO09BQUE7QXhDZ3RITjtBd0M1c0hFO0VBQ0U7QXhDOHNISjtBd0Mzc0hFO0VBQ0U7QXhDNnNISjtBd0Mxc0hFO0VBQ0U7RUFDQTtFQUNBO0F4QzRzSEo7QXdDMXNISTtFQUNFO0F4QzRzSE47QXdDenNISTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0F4QzJzSE47QXdDenNITTtFQUNFO0F4QzJzSFI7QXdDOXZISTtFQUNFO0VBQ0E7QXhDZ3dITjtBd0Nsd0hJO0VBQ0U7RUFDQTtBeENvd0hOO0F3Q3R3SEk7RUFDRTtFQUNBO0F4Q3d3SE47QXdDMXdISTtFQUNFO0VBQ0E7QXhDNHdITjtBd0M5d0hJO0VBQ0U7RUFDQTtBeENneEhOO0F5Q3Z4SEU7RUFDRTtBekN5eEhKO0F5Q3Z4SEU7RWpDcUNBO0VpQ25DRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO09BQUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QXpDeXhISjtBUTl2SEU7RUFDRTtFQUNBO0FSZ3dISjtBeUMzeEhJO0VBQ0U7RWpDRUo7RUFDQTtFQUNBLHdCaUNIb0I7RUFDaEI7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBekMreEhOO0F5QzV4SEk7RUFFRTtFQUNBO0F6QzZ4SE47QXlDM3hITTtFQUNFO0F6QzZ4SFI7QXlDenhISTtFQUNFO0VBQ0E7QXpDMnhITjtBeUN2eEhFO0VBQ0U7QXpDeXhISjtBeUN4eEhJO0VBQ0U7QXpDMHhITjtBeUN0eEhFO0VBQ0U7QXpDd3hISjtBeUNyeEhFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QXpDdXhISjtBeUNyeEhJO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBekN1eEhOO0F5Q3B4SEk7RUFDRTtBekNzeEhOO0F5Q254SEk7RUFDRTtBekNxeEhOO0EwQ3IySEE7RUFDRTtFQUNBO0ExQ3UySEY7QWNuMEdJO0U0QnRpQko7SUFLSTtJQUNBO0UxQ3cySEY7QUFDRjtBY3owR0k7RTRCdGlCSjtJQVVJO0UxQ3kySEY7QUFDRjtBMEN2MkhFO0VsQzRCQTtFa0MxQkU7RUFDQTtBMUN5MkhKO0FROTBIRTtFQUNFO0VBQ0E7QVJnMUhKO0EwQzEySEU7RUFDRTtBMUM0MkhKO0EwQ3oySEU7RUFDRTtBMUMyMkhKO0EwQ3gySEU7RUFDRTtBMUMwMkhKO0EyQ3Q0SEE7RUFDRTtFQUNBO0VBQ0E7QTNDdzRIRjtBY3IyR0k7RTZCdGlCSjtJQU1JO0lBQ0E7RTNDeTRIRjtBQUNGO0EyQ3Y0SEU7RUFDRTtBM0N5NEhKO0FjOTJHSTtFNkI1aEJGO0lBSUk7RTNDMDRISjtBQUNGO0EyQ3g0SEk7RUFDRTtBM0MwNEhOO0FjdDNHSTtFNkJyaEJBO0lBSUk7RTNDMjRITjtBQUNGO0E0Q3o1SEU7RUFDRTtBNUMyNUhKO0E0Q3o1SEk7RUFDRTtBNUMyNUhOO0E2Q3Q2SEU7RUFDRTtBN0N3NkhKO0E4Q3o2SEU7RUFDRTtFQUNBO09BQUE7RUFDQTtFQUNBO0VBQ0E7QTlDMjZISjtBOEN6NkhJO0VBQ0U7RUFDQTtFQUNBO0E5QzI2SE47QThDeDZISTtFQUNFO0VBQ0E7QTlDMDZITjtBOEN2NkhJOztFQUVFO0E5Q3k2SE47QThDcjZITTtFQUNFO0VBQ0E7RUFDQTtBOUN1NkhSO0E4Q2w2SE07RUFDRTtFQUNBO0E5Q282SFI7QStDdDhIRTtFQUNFO0EvQ3c4SEo7QStDcjhIRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBL0N1OEhKO0FjNTZHSTtFaUNqaUJGO0lBU0k7SUFDQTtFL0N3OEhKO0FBQ0Y7QWNsN0dJO0VpQ2ppQkY7SUFjSTtJQUNBO0UvQ3k4SEo7QUFDRjtBK0N0OEhNO0VBQ0U7QS9DdzhIUjtBK0NwOEhJO0V2Q1lGO0FSMjdIRjtBUXo3SEU7RUFDRTtFQUNBO0FSMjdISjtBK0N4OEhNO0VBQ0U7QS9DMDhIUjtBK0N2OEhNO0VBQ0U7QS9DeThIUjtBK0N2OEhRO0VBQ0U7QS9DeThIVjtBK0N0OEhNO0VBQ0U7QS9DdzhIUjtBK0NwOEhJO0VBQ0U7RUFDQTtFQUNBO0EvQ3M4SE47QStDcDhITTs7RUFFRTtBL0NzOEhSO0ErQ244SE07RUFDRTtBL0NxOEhSO0FnRGhnSUE7RUFDRTtFQUNBO0FoRGtnSUY7QWdEaGdJRTtFQUNFO0FoRGtnSUo7QWdELy9IRTtFQUNFO0FoRGlnSUo7QWNwK0dJO0VrQ3RpQko7SUFhSTtJQUNBO0VoRGlnSUY7QUFDRjtBYzErR0k7RWtDdGlCSjtJQWtCSTtFaERrZ0lGO0FBQ0Y7QWdEOS9IRTtFQUNFO0FoRGdnSUo7QWlEeGhJQTtFQUNFO0VBQ0E7RUFDQTtBakQwaElGO0Fjdi9HSTtFbUN0aUJKO0lBTUk7RWpEMmhJRjtBQUNGO0FpRHpoSUU7RXpDZ0NBO0FSNC9IRjtBUTEvSEU7RUFDRTtFQUNBO0FSNC9ISjtBaUQ3aElJO0VBQ0U7QWpEK2hJTjtBaUQzaElFO0VBQ0U7RUFDQTtBakQ2aElKO0FpRHpoSUk7RUFDRTtFQUNBO0VBQ0E7QWpEMmhJTjtBa0RyaklBO0VBQ0U7QWxEdWpJRjtBY2xoSEk7RW9DdGlCSjtJQUlJO0VsRHdqSUY7QUFDRjtBbUQ3aklBO0VBQ0U7QW5EK2pJRjtBbUQ3aklFO0VBQ0U7QW5EK2pJSjtBb0Rua0lBO0VBQ0U7RUFDQTtPQUFBO0FwRHFrSUY7QW9EOWpJRTtFQUNFO0FwRGdrSUo7QW9EOWpJSTtFQUNFO0FwRGdrSU47QW9EM2pJSTtFQUNFO0FwRDZqSU47QW9EempJRTtFNUNrQkE7RTRDaEJFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QXBEMmpJSjtBUWhqSUU7RUFDRTtFQUNBO0FSa2pJSjtBY3pqSEk7RXNDL2dCRjtJQVlJO0lBQ0E7RXBEZ2tJSjtBQUNGO0FvRDlqSUk7RUFDRTtFQUNBO0FwRGdrSU47QW9EN2pJSTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBcEQraklOO0FjamxISTtFc0MxZkE7SUFlSTtFcERna0lOO0FBQ0Y7QW9ENWpJTTtFQUNFO0FwRDhqSVI7QXFEOW5JRTtFQUNFO0VBQ0E7RUFDQTtBckRnb0lKO0FxRDluSUk7RUFDRTtBckRnb0lOO0FzRHZvSUE7RUFDRTtFQUNBO0F0RHlvSUY7QWNybUhJO0V3Q3RpQko7SUFLSTtFdEQwb0lGO0FBQ0Y7QWMxbUhJO0V3Q3RpQko7SUFTSTtFdEQyb0lGO0FBQ0Y7QXNEem9JRTtFQUNFO0VBQ0E7RUFDQTtBdEQyb0lKO0FzRHhvSUU7RUFDRTtFQUNBO0F0RDBvSUo7QXVEN3BJRTtFQUNFO0F2RCtwSUo7QWMzbkhJO0V5Q3JpQkY7SUFJSTtFdkRncUlKO0FBQ0Y7QXVEN3BJRTtFQUNFO0VBQ0E7RUFDQTtFQUVBO0F2RDhwSUo7QWN0b0hJO0V5QzdoQkY7SUFRSTtJQUNBO0lBRUE7RXZEOHBJSjtBQUNGO0FjN29ISTtFeUM3aEJGO0lBZUk7RXZEK3BJSjtBQUNGO0F3RHZySUU7RUFDRTtFQUNBO0VBQ0E7QXhEeXJJSjtBd0R2cklJO0VBQ0U7QXhEeXJJTjtBd0R0cklJO0VBQ0U7QXhEd3JJTjtBd0RycklRO0VBQ0U7QXhEdXJJVjtBeURyc0lFO0VBQ0U7RUFDQTtBekR1c0lKO0EwRDFzSUE7RUFDRTtFQUNBO0ExRDRzSUY7QWN4cUhJO0U0Q3RpQko7SUFLSTtJQUNBO0UxRDZzSUY7QUFDRjtBYzlxSEk7RTRDdGlCSjtJQVVJO0UxRDhzSUY7QUFDRjtBMEQ1c0lFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QTFEOHNJSjtBYzVySEk7RTRDemhCRjtJQVVJO0UxRCtzSUo7QUFDRjtBMEQ3c0lJO0VBQ0U7RUFDQTtBMUQrc0lOO0EyRDN1SUM7RUFDRztFQUNBO0EzRDZ1SUo7QWN6c0hJO0U2Q3RpQkg7SUFLSztJQUNBO0UzRDh1SUo7QUFDRjtBYy9zSEk7RTZDdGlCSDtJQVVLO0UzRCt1SUo7QUFDRjtBMkQ3dUlJO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QTNEK3VJTjtBYzd0SEk7RTZDemhCQTtJQVVJO0UzRGd2SU47QUFDRjtBMkQ5dUlNO0VBQ0U7RUFDQTtBM0RndklSO0E0RDV3SUE7RUFDRTtBNUQ4d0lGO0E0RDV3SUU7RUFDRTtBNUQ4d0lKO0FjNXVISTtFOENuaUJGO0lBSUk7RTVEK3dJSjtBQUNGO0E0RDd3SUk7RUFDRTtBNUQrd0lOO0FjcHZISTtFOEM1aEJBO0lBSUk7RTVEZ3hJTjtBQUNGO0E0RHJ2SUU7RUFDRTtFQUNBO0E1RHV2SUo7QWM3dkhJO0U4QzVmRjtJQUtJO0U1RHd2SUo7QUFDRjtBNkR2eUlFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0E3RHl5SUo7QWMxd0hJO0UrQ3JpQkY7SUFTSTtFN0QweUlKO0FBQ0Y7QTZEeHlJSTtFckQ0QkY7QVIrd0lGO0FRN3dJRTtFQUNFO0VBQ0E7QVIrd0lKO0E2RDV5SU07RUFDRTtBN0Q4eUlSO0E2RDF5SUk7RUFDRTtBN0Q0eUlOO0E2RDF5SU07RUFDRTtBN0Q0eUlSO0E4RHAwSUU7RUFDRTtBOURzMElKO0E4RHAwSUU7RUFDRTtFQUNBO0VBQ0E7QTlEczBJSjtBK0QxMElNO0VBQ0U7QS9ENDBJUjtBK0R4MElJOztFQUVFO0EvRDAwSU47QWM5eUhJO0VpRDloQkE7O0lBS0k7RS9ENDBJTjtBQUNGO0ErRHowSUk7Ozs7OztFQU1FO0VBQ0E7RUFDQTtBL0QyMElOO0ErRHgwSUk7O0VBRUU7RUFDQTtFQUNBO0VBQ0E7QS9EMDBJTjtBK0R2MElJO0VBQ0U7RUFDQTtFdkRHSjtFU25DQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBakIyMklGO0FRLzBJRTtFQUNFO0VBQ0E7QVJpMUlKO0FpQjcySUU7RUFDRTtFQUNBO0VBQ0E7QWpCKzJJSjtBaUI1MklFO0VBQ0U7QWpCODJJSjtBK0Q3MUlNO0U5Q1pKO0VBQ0E7RThDY007RUFDQTtBL0QrMUlSO0FpQjUySUU7RUFDRTtBakI4MklKO0ErRDUxSUE7O0VBRUU7QS9EODFJRjtBK0Q3MUlFOztFQUNFO0EvRGcySUo7QWdFdDVJRTtFQUNFO0FoRXc1SUo7QWtFejVJRTtFQUNFO0VBQ0E7RUFDQTtBbEUyNUlKO0FjejNISTtFb0RyaUJGO0lBS0k7RWxFNjVJSjtBQUNGO0FrRTU1SUk7RUFDRTtFQUNBO0VBQ0E7RUFDQTtBbEU4NUlOO0FrRTc1SU07RUFDRTtBbEUrNUlSO0FrRTc1SU07RUFDRTtBbEUrNUlSO0FrRTc1SU07RUFDRTtBbEUrNUlSO0FrRTU1SVE7RUFDRTtBbEU4NUlWO0FrRXo1SUU7RUFDRTtFQUNFO0FsRTI1SU47QWtFMTVJTTtFQUNFO0VBQ0E7RTFET047RVNuQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QWpCMDdJRjtBUTk1SUU7RUFDRTtFQUNBO0FSZzZJSjtBaUI1N0lFO0VBQ0U7RUFDQTtFQUNBO0FqQjg3SUo7QWlCMzdJRTtFQUNFO0FqQjY3SUo7QWtFaDdJUTtFakRSTjtFQUNBO0FqQjI3SUY7QWlCejdJRTtFQUNFO0FqQjI3SUo7QW1FNTlJQTtFQUNFO0VBQ0E7RUFDQTtBbkU4OUlGO0FjMzdISTtFcUR0aUJKO0lBS0k7RW5FZytJRjtBQUNGO0FvRTUrSUk7RUFDSTtBcEU4K0lSO0FjbjhISTtFc0R4aUJBO0lBRVE7RXBFNitJVjtBQUNGO0FvRTMrSVE7RUFDSTtBcEU2K0laOztBcUV4L0lBOzs7OztFQUFBO0FBT0E7Ozs7Ozs7RUFPRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBckUwL0lGO0FxRXgvSUU7Ozs7Ozs7RUFDRTtBckVnZ0pKOztBcUU1L0lBOzs7RUFHRTtBckUrL0lGOztBcUU1L0lBOztFQUVFO0FyRSsvSUY7O0FxRTUvSUE7RUFDRTtLQUFBO1VBQUE7QXJFKy9JRjs7QXNFemlKQTs7Ozs7RUFBQTtBQU9BO0VBQ0U7RUFDQTtFQUNBO0F0RTJpSkY7QWN4Z0lJO0V3RHRpQko7SUFNSTtJQUNBO0lBQ0E7RXRFNGlKRjtBQUNGO0FzRTFpSkU7RUFDRTtFQUNBO0VBQ0E7QXRFNGlKSjtBY3BoSUk7RXdEM2hCRjtJQU1JO0lBQ0E7SUFDQTtFdEU2aUpKO0FBQ0Y7QWMzaElJO0V3RDNoQkY7SUFZSTtJQUNBO0lBQ0E7RXRFOGlKSjtFc0U1aUpJO0lBQ0U7RXRFOGlKTjtFc0UzaUpJO0lBQ0U7RXRFNmlKTjtBQUNGO0FjeGlJSTtFd0QzaEJGO0lBMEJJO0V0RTZpSko7QUFDRjtBc0UzaUpJO0VBQ0U7RUFDQTtFQUNBO0F0RTZpSk47QWNsaklJO0V3RDlmQTtJQU1JO0V0RThpSk47QUFDRjtBY3ZqSUk7RXdEOWZBO0lBVUk7SUFDQTtFdEUraUpOO0FBQ0Y7QWM3aklJO0V3RDVlRTs7O0lBR0U7SUFDQTtFdEU0aUpOO0FBQ0Y7QWNya0lJO0V3RDllRjtJQVVJO0V0RTZpSko7QUFDRjtBYzFrSUk7RXdEaGVGO0lBRUk7SUFDQTtJQUNBO0V0RTRpSko7QUFDRjtBY2psSUk7RXdEaGVGO0lBUUk7SUFDQTtJQUNBO0V0RTZpSko7QUFDRjtBY3hsSUk7RXdEbmRBO0lBRUk7RXRFNmlKTjtBQUNGO0FzRTNpSk07RUFDRTtBdEU2aUpSO0FzRTNpSlE7RUFDRTtBdEU2aUpWO0FzRXZpSk07RUFDRTtBdEV5aUpSO0FzRXBpSkU7RUFDRTtBdEVzaUpKO0FzRW5pSkU7RTlEbkVBO0U4RHFFRTtBdEVxaUpKO0FReG1KRTtFQUNFO0VBQ0E7QVIwbUpKO0FzRXRpSkU7RUFDRTtFQUNBO0F0RXdpSko7QWNybklJO0V3RHJiRjtJQUtJO0V0RXlpSko7QUFDRjtBYzFuSUk7RXdEcmJGO0lBU0k7RXRFMGlKSjtBQUNGO0FjL25JSTtFd0RyYkY7SUFhSTtFdEUyaUpKO0FBQ0Y7QXNFeGlKRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QXRFMGlKSjtBYzNvSUk7RXdEcGFGO0lBUUk7RXRFMmlKSjtBQUNGO0FjaHBJSTtFd0RwYUY7SUFZSTtJQUNBO0V0RTRpSko7QUFDRjtBc0UxaUpJO0VBQ0U7QXRFNGlKTjs7QXVFdHNKQTs7Ozs7RUFBQTtBQU1BO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7T0FBQTtBdkV5c0pGO0FjdHFJSTtFeUR2aUJKO0lBT0k7RXZFMHNKRjtBQUNGO0F1RXhzSkU7RUFDRTtBdkUwc0pKO0F1RXRzSkk7RUFDRTtBdkV3c0pOO0F1RXBzSkU7RUFDRTtBdkVzc0pKO0F1RW5zSkU7RUFDRTtBdkVxc0pKOztBdUVqc0pBO0VBQ0U7RUFDQTtFQUNBO0F2RW9zSkY7QXVFbHNKRTtFQUNFO0VBQ0E7QXZFb3NKSjtBdUVuc0pJO0VBQ0U7QXZFcXNKTjtBdUUvckpJO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7S0FBQTtFQUNBO0tBQUE7QXZFaXNKTjtBdUU3ckpFO0VBQ0U7QXZFK3JKSjtBdUU1ckpFO0VBQ0U7QXZFOHJKSjtBY2p0SUk7RXlEMWVFO0lBQ0U7RXZFOHJKTjtBQUNGO0F1RTNySkk7RUFDRTtFQUNBO0VBQ0E7QXZFNnJKTjtBYzN0SUk7RXlEcmVBO0lBTUk7RXZFOHJKTjtBQUNG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Q0E7RUFDQTtBbEZ1b0xKO0FrRnJvTEU7RUFDRTtFQUNBO0FsRnVvTEo7QWtGcm9MRTtFQUNFO0VBQ0E7QWxGdW9MSjtBa0Zyb0xFO0VBQ0U7QWxGdW9MSjtBa0Zwb0xFO0VBQ0U7QWxGc29MSjtBa0Zwb0xFO0VBQ0U7RUFDQTtFQUNBO0FsRnNvTEo7QWtGbG9MRTtFQUNFO0FsRm9vTEo7QWtGam9MRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBbEZtb0xKO0FrRmhvTEU7RUFDRTtFQUNBO0FsRmtvTEo7QWtGaG9MRTtFQUNFO0FsRmtvTEo7QWtGL25MRTtFQUNFO0VBQ0E7QWxGaW9MSjtBa0Y5bkxFO0VBQ0U7RUFDQTtBbEZnb0xKO0FrRjduTEU7RUFDRTtBbEYrbkxKO0FrRnZuTEU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QWxGeW5MSjtBa0ZqbkxFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBbEZtbkxKO0FrRmpuTEU7RUFDRTtFQUNBO0FsRm1uTEo7QWtGaG5MRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QWxGa25MSjtBa0YvbUxFO0VBQ0U7QWxGaW5MSjtBa0Y3bUxFO0VBQ0U7QWxGK21MSjtBa0ZybUxFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBbEZ1bUxKO0FrRnBtTEU7RUFDRTtFQUNBO0VBQ0E7QWxGc21MSjtBa0ZubUxFO0VBQ0U7QWxGcW1MSjtBa0ZubUxFO0VBQ0U7RUFDQTtBbEZxbUxKO0FrRmxtTEU7RUFDRTtBbEZvbUxKO0FrRmxtTEU7RUFDRTtFQUNBO0FsRm9tTEo7QWtGbG1MRTtFQUNFO0VBRUE7QWxGbW1MSjtBa0ZobUxFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBbEZrbUxKO0FrRi9sTEU7RUFDRTs7O0tBQUE7RUFJQTtFQUNBO0VBQ0E7RUFDQTtBbEZpbUxKO0FrRjls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Q0U7QXhGeWtOUjtBd0Z0a05NOzs7RUFDRTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtBeEZ5a05SO0F3RnJrTkk7OztFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7S0FBQTtBeEZ5a05OO0F3RnRrTkk7OztFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QXhGMGtOTjtBd0Z4a05NOzs7RUFDRTtBeEY0a05SO0F3RjFrTk07OztFQUNFO0F4RjhrTlI7QXdGM2tOTTs7O0VBQ0U7RUFDQTtBeEYra05SO0F3RjFrTk07OztFQUNFO0F4RjhrTlI7QXdGemtORTs7O0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBeEY2a05KO0FjL25NSTtFMEVuZEY7OztJQVFJO0V4RmdsTko7QUFDRjtBd0Y5a05JOzs7RWhGckRGO0VnRnVESTtBeEZrbE5OO0FRdm9ORTs7O0VBQ0U7RUFDQTtBUjJvTko7QXdGcmxOSTs7O0VBQ0U7RUFDQTtFQUNBO0F4RnlsTk47QWN6cE1JO0UwRTViRTs7O0lBQ0U7SUFDQTtJQUNBO0V4RjBsTk47QUFDRjtBd0Z2bE5JOzs7RUFDRTtBeEYybE5OO0F3RnZsTkU7OztFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QXhGMmxOSjtBd0Z6bE5JOzs7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0F4RjZsTk47QXdGM2xOTTs7O0VBQ0U7RUFDQTtBeEYrbE5SO0F3RjVsTk07OztFQUNFO0VBQ0E7QXhGZ21OUjtBd0Y1bE5JOzs7RUFDRTtFQUNBO0F4RmdtTk47QWMzc01JO0UwRWpaRTs7O0lBQ0U7SUFDQTtJQUNBO0V4RmltTk47QUFDRjtBd0Y3bE5FOzs7RUFDRTtBeEZpbU5KOztBd0ZubE5FO0VBQ0U7QXhGc2xOSjtBd0ZubE5FO0VBQ0U7RUFDQTtBeEZxbE5KO0F3RmxsTkU7RUFDRTtBeEZvbE5KO0F3RmpsTkU7RUFDRTtBeEZtbE5KOztBd0Yva05BO0VBQ0U7RUFDQTtFQUNBO0F4RmtsTkY7QWM3dU1JO0UwRXhXSjtJQU1JO0lBQ0E7RXhGbWxORjtBQUNGO0Fj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STtFQUNFO0VBQ0E7QTNGK3FPTjtBYy9yTkk7RTZFbGZBO0lBS0k7RTNGZ3JPTjtBQUNGO0FjcHNOSTtFNkVsZkE7SUFTSTtFM0Zpck9OO0FBQ0Y7QTJGL3FPTTtFQUNFO0EzRmlyT1I7QTJGOXFPTTtFQUNFO0EzRmdyT1I7QTJGOXFPUTtFQUNFO0EzRmdyT1Y7QTJGMXFPRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QTNGNHFPSjtBY2x1Tkk7RTZFeGRGO0lBa0JJO0lBQ0E7SUFDQTtFM0Y0cU9KO0FBQ0Y7QTJGMXFPSTtFQUNFO0EzRjRxT047QWM1dU5JO0U2RWpjQTtJQUlJO0UzRjZxT047QUFDRjtBMkYxcU9JO0VBQ0U7QTNGNHFPTjtBMkZ6cU9JO0VBQ0U7QTNGMnFPTjtBMkZ6cU9NO0VBQ0U7QTNGMnFPUjs7QTJGaHFPVTtFQUNFO0VBQ0E7QTNGbXFPWjtBMkZocU9jO0VBQ0U7QTNGa3FPaEI7QTJGdnBPVTtFQUNFO0VBQ0E7RUFDQTtBM0Z5cE9aO0EyRnhwT1k7RUFDRTtFQUNBO0VBQ0E7QTNGMHBPZDs7QTJGL29PQTtFQUNFO0lBQ0U7RTNGa3BPRjtFMkZocE9BO0lBQ0U7RTNGa3BPRjtFMkYvb09BO0lBQ0U7RTNGaXBPRjtFMkYvb09BO0lBQ0U7RTNGaXBPRjtBQUNGO0FBM3VPQTs7Q0FBQTtBNEY3RkE7Ozs7O0NBQUE7QUFPQTs7Q0FBQTtBQUlBOztDQUFBO0FBR0E7RUFDRTtFQUNBO0VBQ0E7QTVGMjBPRixDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vbm9kZV9tb2R1bGVzL3Bob3Rvc3dpcGUvZGlzdC9waG90b3N3aXBlLmNzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvZ2xvYmFsLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vbm9kZV9tb2R1bGVzL25vcm1hbGl6ZS5zY3NzL25vcm1hbGl6ZS5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL25vZGVfbW9kdWxlcy9yZWZsZXgtZ3JpZC9zY3NzL2luY2x1ZGVzL192YXJpYWJsZXMuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi9ub2RlX21vZHVsZXMvcmVmbGV4LWdyaWQvc2Nzcy9pbmNsdWRlcy9fZ3JpZC5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL25vZGVfbW9kdWxlcy9yZWZsZXgtZ3JpZC9zY3NzL2luY2x1ZGVzL19taXhpbnMuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi9ub2RlX21vZHVsZXMvcmVmbGV4LWdyaWQvc2Nzcy9pbmNsdWRlcy9faGVscGVycy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9oZWxwZXJzL19mb2N1cy12aXNpYmxlLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL2hlbHBlcnMvX2ZvbnQtc21vb3RoaW5nLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL2hlbHBlcnMvX21peGlucy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9oZWxwZXJzL190YWJsZS5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9jb25maWcvX2ZvbnRzLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL2NvbmZpZy9fdmFycy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9iYXNlL19kZWZhdWx0cy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9iYXNlL190eXBvZ3JhcGh5LnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vbm9kZV9tb2R1bGVzL2luY2x1ZGUtbWVkaWEvZGlzdC9faW5jbHVkZS1tZWRpYS5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9iYXNlL19tYWluLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL2Jhc2UvX2FuaW1hdGlvbnMuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvYXRvbXMvX2J1dHRvbnMuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvYXRvbXMvX2ltYWdlLWNyZWRpdC5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9hdG9tcy9fYnJlYWRjcnVtYnMuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvYXRvbXMvX2xvYWRlci5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9hdG9tcy9fZGF0ZS1waWNrZXIuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvYXRvbXMvX3BhZ2VyLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL2F0b21zL19jb2xzLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL2F0b21zL19jYXB0aW9uLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL2F0b21zL19hdXRvLWdyaWQuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvYXRvbXMvX2xpbmtzLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL2F0b21zL19zaWRlYmFyLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL2F0b21zL190YWcuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvYXRvbXMvX3N0aWNreS5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9hdG9tcy9fY2FuY2VsbGVkLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL2F0b21zL19za2lwLWxpbmsuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvYXRvbXMvX2xpc3Rpbmcuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvYXRvbXMvX2NpdGUuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvYXRvbXMvX2JhY2stdG9wLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL2F0b21zL19ncmlkLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9fZW1tc2cuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL19ibG9ja3Muc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL2Jsb2NrL19pbnRyby5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvYmxvY2svX2ltYWdlLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9ibG9jay9fcXVvdGUuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL2Jsb2NrL19hY2NvcmRpb24uc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL2Jsb2NrL19nYWxsZXJ5LnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9ibG9jay9faW1hZ2UtdGV4dC5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvYmxvY2svX2Rvd25sb2Fkcy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvYmxvY2svX2VtYmVkLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9ibG9jay9fdGFibGUuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL2Jsb2NrL19zaWducG9zdC5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvYmxvY2svX3NpZ25wb3N0cy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvYmxvY2svX2xpbmtlZC1sb2dvcy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvYmxvY2svX3ZpZGVvLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9ibG9jay9feW1hbC5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvYmxvY2svX2JpZy1jdGEuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL2Jsb2NrL19yZWFkbW9yZS5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvYmxvY2svX3F1aWNrbGlua3Muc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL2Jsb2NrL19zcGVjaWFsLW9wdGlvbnMuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL2Jsb2NrL19wZW9wbGUtcHJvZmlsZXMuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL2Jsb2NrL19saXN0aW5nLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9ibG9jay9fbWluaWxpc3Rpbmcuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL2Jsb2NrL19lbmhhbmNlZGV2ZW50bGlzdGluZy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvYmxvY2svX2ZlYXR1cmVkLWNvbnRlbnQuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL2Jsb2NrL19jaXRhdGlvbnMuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL2Jsb2NrL19pbWFnZXpvb20uc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL2Jsb2NrL19mb3Jtcy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvYmxvY2svX3NlYXJjaC1yZXN1bHRzLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9ibG9jay9fZGl2aWRlci5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvYmxvY2svX2J1eS1ub3ctYnV0dG9uLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9ibG9jay9fY3RhbXVsdGlwbGUuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL2Jsb2NrL19wcmltb3NlYXJjaC5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvX2Zvcm1zLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9fbmF2LnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9fYmFubmVyLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9fc29jaWFsLWxpbmtzLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9fc3VibmF2LnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9faW50cm8uc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL19hbmNob3ItbmF2LnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9fY291cnNlLWRldGFpbHMuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL19wZW9wbGUtc2lkZWJhci5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvX2hvbWVwYWdlLWJhbm5lci5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvX2V2ZW50LXNpZGViYXIuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL19zZWFyY2gtZm9ybS5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvX3BlcmZvcm1hbmNlcy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvX3Bob3Rvc3dpcGUuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL190b2dnbGUtc3VibmF2LnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9fc3VibmF2LWNvbnRhaW5lci5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9vcmdhbmlzbXMvX2hlYWRlci5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9vcmdhbmlzbXMvX2Zvb3Rlci5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9vcmdhbmlzbXMvX3NlYXJjaC1yZXN1bHRzLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL29yZ2FuaXNtcy9fdGVhc2VyLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL29yZ2FuaXNtcy9fbGlzdGluZy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9vcmdhbmlzbXMvX3Blb3BsZS5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9vcmdhbmlzbXMvX21vZGFsLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL3RlbXBsYXRlcy9fcG9zdC5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qISBQaG90b1N3aXBlIG1haW4gQ1NTIGJ5IERtaXRyeSBTZW1lbm92IHwgcGhvdG9zd2lwZS5jb20gfCBNSVQgbGljZW5zZSAqL1xuLypcblx0U3R5bGVzIGZvciBiYXNpYyBQaG90b1N3aXBlIGZ1bmN0aW9uYWxpdHkgKHNsaWRpbmcgYXJlYSwgb3Blbi9jbG9zZSB0cmFuc2l0aW9ucylcbiovXG4vKiBwc3dwID0gcGhvdG9zd2lwZSAqL1xuLnBzd3Age1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgLW1zLXRvdWNoLWFjdGlvbjogbm9uZTtcbiAgdG91Y2gtYWN0aW9uOiBub25lO1xuICB6LWluZGV4OiAxNTAwO1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC8qIGNyZWF0ZSBzZXBhcmF0ZSBsYXllciwgdG8gYXZvaWQgcGFpbnQgb24gd2luZG93Lm9uc2Nyb2xsIGluIHdlYmtpdC9ibGluayAqL1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgb3V0bGluZTogbm9uZTsgfVxuICAucHN3cCAqIHtcbiAgICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG4gIC5wc3dwIGltZyB7XG4gICAgbWF4LXdpZHRoOiBub25lOyB9XG5cbi8qIHN0eWxlIGlzIGFkZGVkIHdoZW4gSlMgb3B0aW9uIHNob3dIaWRlT3BhY2l0eSBpcyBzZXQgdG8gdHJ1ZSAqL1xuLnBzd3AtLWFuaW1hdGVfb3BhY2l0eSB7XG4gIC8qIDAuMDAxLCBiZWNhdXNlIG9wYWNpdHk6MCBkb2Vzbid0IHRyaWdnZXIgUGFpbnQgYWN0aW9uLCB3aGljaCBjYXVzZXMgbGFnIGF0IHN0YXJ0IG9mIHRyYW5zaXRpb24gKi9cbiAgb3BhY2l0eTogMC4wMDE7XG4gIHdpbGwtY2hhbmdlOiBvcGFjaXR5O1xuICAvKiBmb3Igb3Blbi9jbG9zZSB0cmFuc2l0aW9uICovXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAzMzNtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIyLCAxKTtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDMzM21zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMjIsIDEpOyB9XG5cbi5wc3dwLS1vcGVuIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLnBzd3AtLXpvb20tYWxsb3dlZCAucHN3cF9faW1nIHtcbiAgLyogYXV0b3ByZWZpeGVyOiBvZmYgKi9cbiAgY3Vyc29yOiAtd2Via2l0LXpvb20taW47XG4gIGN1cnNvcjogLW1vei16b29tLWluO1xuICBjdXJzb3I6IHpvb20taW47IH1cblxuLnBzd3AtLXpvb21lZC1pbiAucHN3cF9faW1nIHtcbiAgLyogYXV0b3ByZWZpeGVyOiBvZmYgKi9cbiAgY3Vyc29yOiAtd2Via2l0LWdyYWI7XG4gIGN1cnNvcjogLW1vei1ncmFiO1xuICBjdXJzb3I6IGdyYWI7IH1cblxuLnBzd3AtLWRyYWdnaW5nIC5wc3dwX19pbWcge1xuICAvKiBhdXRvcHJlZml4ZXI6IG9mZiAqL1xuICBjdXJzb3I6IC13ZWJraXQtZ3JhYmJpbmc7XG4gIGN1cnNvcjogLW1vei1ncmFiYmluZztcbiAgY3Vyc29yOiBncmFiYmluZzsgfVxuXG4vKlxuXHRCYWNrZ3JvdW5kIGlzIGFkZGVkIGFzIGEgc2VwYXJhdGUgZWxlbWVudC5cblx0QXMgYW5pbWF0aW5nIG9wYWNpdHkgaXMgbXVjaCBmYXN0ZXIgdGhhbiBhbmltYXRpbmcgcmdiYSgpIGJhY2tncm91bmQtY29sb3IuXG4qL1xuLnBzd3BfX2JnIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQ6ICMwMDA7XG4gIG9wYWNpdHk6IDA7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpbGwtY2hhbmdlOiBvcGFjaXR5OyB9XG5cbi5wc3dwX19zY3JvbGwtd3JhcCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi5wc3dwX19jb250YWluZXIsXG4ucHN3cF9fem9vbS13cmFwIHtcbiAgLW1zLXRvdWNoLWFjdGlvbjogbm9uZTtcbiAgdG91Y2gtYWN0aW9uOiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDsgfVxuXG4vKiBQcmV2ZW50IHNlbGVjdGlvbiBhbmQgdGFwIGhpZ2hsaWdodHMgKi9cbi5wc3dwX19jb250YWluZXIsXG4ucHN3cF9faW1nIHtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTsgfVxuXG4ucHN3cF9fem9vbS13cmFwIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTAwJTtcbiAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IHRvcDtcbiAgLW1zLXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgdG9wO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IHRvcDtcbiAgLyogZm9yIG9wZW4vY2xvc2UgdHJhbnNpdGlvbiAqL1xuICAtd2Via2l0LXRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtIDMzM21zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMjIsIDEpO1xuICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAzMzNtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIyLCAxKTsgfVxuXG4ucHN3cF9fYmcge1xuICB3aWxsLWNoYW5nZTogb3BhY2l0eTtcbiAgLyogZm9yIG9wZW4vY2xvc2UgdHJhbnNpdGlvbiAqL1xuICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMzMzbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yMiwgMSk7XG4gICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAzMzNtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIyLCAxKTsgfVxuXG4ucHN3cC0tYW5pbWF0ZWQtaW4gLnBzd3BfX2JnLFxuLnBzd3AtLWFuaW1hdGVkLWluIC5wc3dwX196b29tLXdyYXAge1xuICAtd2Via2l0LXRyYW5zaXRpb246IG5vbmU7XG4gIHRyYW5zaXRpb246IG5vbmU7IH1cblxuLnBzd3BfX2NvbnRhaW5lcixcbi5wc3dwX196b29tLXdyYXAge1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4ucHN3cF9faXRlbSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi5wc3dwX19pbWcge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IGF1dG87XG4gIHRvcDogMDtcbiAgbGVmdDogMDsgfVxuXG4vKlxuXHRzdHJldGNoZWQgdGh1bWJuYWlsIG9yIGRpdiBwbGFjZWhvbGRlciBlbGVtZW50IChzZWUgYmVsb3cpXG5cdHN0eWxlIGlzIGFkZGVkIHRvIGF2b2lkIGZsaWNrZXJpbmcgaW4gd2Via2l0L2JsaW5rIHdoZW4gbGF5ZXJzIG92ZXJsYXBcbiovXG4ucHN3cF9faW1nLS1wbGFjZWhvbGRlciB7XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi8qXG5cdGRpdiBlbGVtZW50IHRoYXQgbWF0Y2hlcyBzaXplIG9mIGxhcmdlIGltYWdlXG5cdGxhcmdlIGltYWdlIGxvYWRzIG9uIHRvcCBvZiBpdFxuKi9cbi5wc3dwX19pbWctLXBsYWNlaG9sZGVyLS1ibGFuayB7XG4gIGJhY2tncm91bmQ6ICMyMjI7IH1cblxuLnBzd3AtLWllIC5wc3dwX19pbWcge1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgbGVmdDogMDtcbiAgdG9wOiAwOyB9XG5cbi8qXG5cdEVycm9yIG1lc3NhZ2UgYXBwZWFycyB3aGVuIGltYWdlIGlzIG5vdCBsb2FkZWRcblx0KEpTIG9wdGlvbiBlcnJvck1zZyBjb250cm9scyBtYXJrdXApXG4qL1xuLnBzd3BfX2Vycm9yLW1zZyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiA1MCU7XG4gIHdpZHRoOiAxMDAlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gIG1hcmdpbi10b3A6IC04cHg7XG4gIGNvbG9yOiAjQ0NDOyB9XG5cbi5wc3dwX19lcnJvci1tc2cgYSB7XG4gIGNvbG9yOiAjQ0NDO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1haW4gLSBHbG9iYWxcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4vKipcbiAqIERlcGVuZGVuY2llc1xuICovXG5AaW1wb3J0ICd+aW5jbHVkZS1tZWRpYS9kaXN0L19pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ35ub3JtYWxpemUuc2Nzcy9ub3JtYWxpemUuc2Nzcyc7XG5AaW1wb3J0ICd+cmVmbGV4LWdyaWQvc2Nzcy9yZWZsZXguc2Nzcyc7XG5AaW1wb3J0ICd+cGhvdG9zd2lwZS9kaXN0L3Bob3Rvc3dpcGUuY3NzJztcblxuLyoqXG4gKiBIZWxwZXJzXG4gKi9cbkBpbXBvcnQgJ2hlbHBlcnMvZm9jdXMtdmlzaWJsZSc7XG5AaW1wb3J0ICdoZWxwZXJzL2ZvbnQtc21vb3RoaW5nJztcbkBpbXBvcnQgJ2hlbHBlcnMvbWl4aW5zJztcbkBpbXBvcnQgJ2hlbHBlcnMvdGFibGUnO1xuXG4vKipcbiAqIENvbmZpZ1xuICovXG5AaW1wb3J0ICdjb25maWcvZm9udHMnO1xuQGltcG9ydCAnY29uZmlnL3ZhcnMnO1xuXG4vKipcbiAqIEJhc2VcbiAqL1xuQGltcG9ydCAnYmFzZS9kZWZhdWx0cyc7XG5AaW1wb3J0ICdiYXNlL3R5cG9ncmFwaHknO1xuQGltcG9ydCAnYmFzZS9tYWluJztcbkBpbXBvcnQgJ2Jhc2UvYW5pbWF0aW9ucyc7XG5cbi8qKlxuKiBBdG9tc1xuKi9cbkBpbXBvcnQgJ2F0b21zL2J1dHRvbnMnO1xuQGltcG9ydCAnYXRvbXMvaW1hZ2UtY3JlZGl0JztcbkBpbXBvcnQgJ2F0b21zL2JyZWFkY3J1bWJzJztcbkBpbXBvcnQgJ2F0b21zL2xvYWRlcic7XG5AaW1wb3J0ICdhdG9tcy9kYXRlLXBpY2tlcic7XG5AaW1wb3J0ICdhdG9tcy9wYWdlcic7XG5AaW1wb3J0ICdhdG9tcy9jb2xzJztcbkBpbXBvcnQgJ2F0b21zL2NhcHRpb24nO1xuQGltcG9ydCAnYXRvbXMvYXV0by1ncmlkJztcbkBpbXBvcnQgJ2F0b21zL2xpbmtzJztcbkBpbXBvcnQgJ2F0b21zL3NpZGViYXInO1xuQGltcG9ydCAnYXRvbXMvdGFnJztcbkBpbXBvcnQgJ2F0b21zL3N0aWNreSc7XG5AaW1wb3J0ICdhdG9tcy9jYW5jZWxsZWQnO1xuQGltcG9ydCAnYXRvbXMvc2tpcC1saW5rJztcbkBpbXBvcnQgJ2F0b21zL2xpc3RpbmcnO1xuQGltcG9ydCAnYXRvbXMvY2l0ZSc7XG5AaW1wb3J0ICdhdG9tcy9iYWNrLXRvcCc7XG5AaW1wb3J0ICdhdG9tcy9ncmlkJztcblxuLyoqXG4gKiBNb2xlY3VsZXNcbiAqL1xuQGltcG9ydCAnbW9sZWN1bGVzL2VtbXNnJztcbkBpbXBvcnQgJ21vbGVjdWxlcy9ibG9ja3MnO1xuQGltcG9ydCAnbW9sZWN1bGVzL2Zvcm1zJztcbkBpbXBvcnQgJ21vbGVjdWxlcy9uYXYnO1xuQGltcG9ydCAnbW9sZWN1bGVzL2Jhbm5lcic7XG5AaW1wb3J0ICdtb2xlY3VsZXMvc29jaWFsLWxpbmtzJztcbkBpbXBvcnQgJ21vbGVjdWxlcy9zdWJuYXYnO1xuQGltcG9ydCAnbW9sZWN1bGVzL2ludHJvJztcbkBpbXBvcnQgJ21vbGVjdWxlcy9hbmNob3ItbmF2JztcbkBpbXBvcnQgJ21vbGVjdWxlcy9jb3Vyc2UtZGV0YWlscyc7XG5AaW1wb3J0ICdtb2xlY3VsZXMvcGVvcGxlLXNpZGViYXInO1xuQGltcG9ydCAnbW9sZWN1bGVzL2hvbWVwYWdlLWJhbm5lcic7XG5AaW1wb3J0ICdtb2xlY3VsZXMvZXZlbnQtc2lkZWJhcic7XG5AaW1wb3J0ICdtb2xlY3VsZXMvc2VhcmNoLWZvcm0nO1xuQGltcG9ydCAnbW9sZWN1bGVzL3BlcmZvcm1hbmNlcyc7XG5AaW1wb3J0ICdtb2xlY3VsZXMvcGhvdG9zd2lwZSc7XG5AaW1wb3J0ICdtb2xlY3VsZXMvdG9nZ2xlLXN1Ym5hdic7XG5AaW1wb3J0ICdtb2xlY3VsZXMvc3VibmF2LWNvbnRhaW5lcic7XG5cbi8qKlxuICogT3JnYW5pc2ltc1xuICovXG5AaW1wb3J0ICdvcmdhbmlzbXMvaGVhZGVyJztcbkBpbXBvcnQgJ29yZ2FuaXNtcy9mb290ZXInO1xuQGltcG9ydCAnb3JnYW5pc21zL3NlYXJjaC1yZXN1bHRzJztcbkBpbXBvcnQgJ29yZ2FuaXNtcy90ZWFzZXInO1xuQGltcG9ydCAnb3JnYW5pc21zL2xpc3RpbmcnO1xuQGltcG9ydCAnb3JnYW5pc21zL3Blb3BsZSc7XG5AaW1wb3J0ICdvcmdhbmlzbXMvbW9kYWwnO1xuXG4vKipcbiogVGVtcGxhdGVzXG4qL1xuQGltcG9ydCAndGVtcGxhdGVzL3Bvc3QnO1xuIiwiLyohIG5vcm1hbGl6ZS5zY3NzIHYwLjEuMCB8IE1JVCBMaWNlbnNlIHwgYmFzZWQgb24gZ2l0LmlvL25vcm1hbGl6ZSAqL1xuXG4vKipcbiAqIDEuIFNldCBkZWZhdWx0IGZvbnQgZmFtaWx5IHRvIHNhbnMtc2VyaWYuXG4gKiAyLiBQcmV2ZW50IGlPUyB0ZXh0IHNpemUgYWRqdXN0IGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZSwgd2l0aG91dCBkaXNhYmxpbmdcbiAqICAgIHVzZXIgem9vbS5cbiAqL1xuXG5odG1sIHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7IC8qIDEgKi9cbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIGRlZmF1bHQgbWFyZ2luLlxuICovXG5cbmJvZHkge1xuICBtYXJnaW46IDA7XG59XG5cbi8qIEhUTUw1IGRpc3BsYXkgZGVmaW5pdGlvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGFueSBIVE1MNSBlbGVtZW50IGluIElFIDgvOS5cbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgZGV0YWlsc2Agb3IgYHN1bW1hcnlgIGluIElFIDEwLzExXG4gKiBhbmQgRmlyZWZveC5cbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgbWFpbmAgaW4gSUUgMTEuXG4gKi9cblxuYXJ0aWNsZSxcbmFzaWRlLFxuZGV0YWlscyxcbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5mb290ZXIsXG5oZWFkZXIsXG5oZ3JvdXAsXG5tYWluLFxubWVudSxcbm5hdixcbnNlY3Rpb24sXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCBgaW5saW5lLWJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGluIElFIDgvOS5cbiAqIDIuIE5vcm1hbGl6ZSB2ZXJ0aWNhbCBhbGlnbm1lbnQgb2YgYHByb2dyZXNzYCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAqL1xuXG5hdWRpbyxcbmNhbnZhcyxcbnByb2dyZXNzLFxudmlkZW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IC8qIDEgKi9cbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyAvKiAyICovXG59XG5cbi8qKlxuICogUHJldmVudCBtb2Rlcm4gYnJvd3NlcnMgZnJvbSBkaXNwbGF5aW5nIGBhdWRpb2Agd2l0aG91dCBjb250cm9scy5cbiAqIFJlbW92ZSBleGNlc3MgaGVpZ2h0IGluIGlPUyA1IGRldmljZXMuXG4gKi9cblxuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgYFtoaWRkZW5dYCBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC5cbiAqIEhpZGUgdGhlIGB0ZW1wbGF0ZWAgZWxlbWVudCBpbiBJRSA4LzkvMTEsIFNhZmFyaSwgYW5kIEZpcmVmb3ggPCAyMi5cbiAqL1xuXG5baGlkZGVuXSxcbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogTGlua3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgY29sb3IgZnJvbSBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gKi9cblxuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4vKipcbiAqIEltcHJvdmUgcmVhZGFiaWxpdHkgd2hlbiBmb2N1c2VkIGFuZCBhbHNvIG1vdXNlIGhvdmVyZWQgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmE6YWN0aXZlLFxuYTpob3ZlciB7XG4gIG91dGxpbmU6IDA7XG59XG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAvMTEsIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQ7XG59XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsZSBzZXQgdG8gYGJvbGRlcmAgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gKi9cblxuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgdmFyaWFibGUgYGgxYCBmb250LXNpemUgYW5kIG1hcmdpbiB3aXRoaW4gYHNlY3Rpb25gIGFuZCBgYXJ0aWNsZWBcbiAqIGNvbnRleHRzIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkuXG4gKi9cblxubWFyayB7XG4gIGJhY2tncm91bmQ6ICNmZjA7XG4gIGNvbG9yOiAjMDAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGFuZCB2YXJpYWJsZSBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5cbi8qKlxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgYWZmZWN0aW5nIGBsaW5lLWhlaWdodGAgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtO1xufVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07XG59XG5cbi8qIEVtYmVkZGVkIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIGJvcmRlciB3aGVuIGluc2lkZSBgYWAgZWxlbWVudCBpbiBJRSA4LzkvMTAuXG4gKi9cblxuaW1nIHtcbiAgYm9yZGVyOiAwO1xufVxuXG4vKipcbiAqIENvcnJlY3Qgb3ZlcmZsb3cgbm90IGhpZGRlbiBpbiBJRSA5LzEwLzExLlxuICovXG5cbnN2Zzpub3QoOnJvb3QpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLyogR3JvdXBpbmcgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGRyZXNzIG1hcmdpbiBub3QgcHJlc2VudCBpbiBJRSA4LzkgYW5kIFNhZmFyaS5cbiAqL1xuXG5maWd1cmUge1xuICBtYXJnaW46IDFlbSA0MHB4O1xufVxuXG4vKipcbiAqIEFkZHJlc3MgZGlmZmVyZW5jZXMgYmV0d2VlbiBGaXJlZm94IGFuZCBvdGhlciBicm93c2Vycy5cbiAqL1xuXG5ociB7XG4gIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBoZWlnaHQ6IDA7XG59XG5cbi8qKlxuICogQ29udGFpbiBvdmVyZmxvdyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxucHJlIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qKlxuICogQWRkcmVzcyBvZGQgYGVtYC11bml0IGZvbnQgc2l6ZSByZW5kZXJpbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmNvZGUsXG5rYmQsXG5wcmUsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDFlbTtcbn1cblxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogS25vd24gbGltaXRhdGlvbjogYnkgZGVmYXVsdCwgQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWCBhbGxvdyB2ZXJ5IGxpbWl0ZWRcbiAqIHN0eWxpbmcgb2YgYHNlbGVjdGAsIHVubGVzcyBhIGBib3JkZXJgIHByb3BlcnR5IGlzIHNldC5cbiAqL1xuXG4vKipcbiAqIDEuIENvcnJlY3QgY29sb3Igbm90IGJlaW5nIGluaGVyaXRlZC5cbiAqICAgIEtub3duIGlzc3VlOiBhZmZlY3RzIGNvbG9yIG9mIGRpc2FibGVkIGVsZW1lbnRzLlxuICogMi4gQ29ycmVjdCBmb250IHByb3BlcnRpZXMgbm90IGJlaW5nIGluaGVyaXRlZC5cbiAqIDMuIEFkZHJlc3MgbWFyZ2lucyBzZXQgZGlmZmVyZW50bHkgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGNvbG9yOiBpbmhlcml0OyAvKiAxICovXG4gIGZvbnQ6IGluaGVyaXQ7IC8qIDIgKi9cbiAgbWFyZ2luOiAwOyAvKiAzICovXG59XG5cbi8qKlxuICogQWRkcmVzcyBgb3ZlcmZsb3dgIHNldCB0byBgaGlkZGVuYCBpbiBJRSA4LzkvMTAvMTEuXG4gKi9cblxuYnV0dG9uIHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi8qKlxuICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYHRleHQtdHJhbnNmb3JtYCBpbmhlcml0YW5jZSBmb3IgYGJ1dHRvbmAgYW5kIGBzZWxlY3RgLlxuICogQWxsIG90aGVyIGZvcm0gY29udHJvbCBlbGVtZW50cyBkbyBub3QgaW5oZXJpdCBgdGV4dC10cmFuc2Zvcm1gIHZhbHVlcy5cbiAqIENvcnJlY3QgYGJ1dHRvbmAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveCwgSUUgOC85LzEwLzExLCBhbmQgT3BlcmEuXG4gKiBDb3JyZWN0IGBzZWxlY3RgIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3guXG4gKi9cblxuYnV0dG9uLFxuc2VsZWN0IHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8qKlxuICogMS4gQXZvaWQgdGhlIFdlYktpdCBidWcgaW4gQW5kcm9pZCA0LjAuKiB3aGVyZSAoMikgZGVzdHJveXMgbmF0aXZlIGBhdWRpb2BcbiAqICAgIGFuZCBgdmlkZW9gIGNvbnRyb2xzLlxuICogMi4gQ29ycmVjdCBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIGBpbnB1dGAgdHlwZXMgaW4gaU9TLlxuICogMy4gSW1wcm92ZSB1c2FiaWxpdHkgYW5kIGNvbnNpc3RlbmN5IG9mIGN1cnNvciBzdHlsZSBiZXR3ZWVuIGltYWdlLXR5cGVcbiAqICAgIGBpbnB1dGAgYW5kIG90aGVycy5cbiAqL1xuXG5idXR0b24sXG5odG1sIGlucHV0W3R5cGU9XCJidXR0b25cIl0sIC8qIDEgKi9cbmlucHV0W3R5cGU9XCJyZXNldFwiXSxcbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMiAqL1xuICBjdXJzb3I6IHBvaW50ZXI7IC8qIDMgKi9cbn1cblxuLyoqXG4gKiBSZS1zZXQgZGVmYXVsdCBjdXJzb3IgZm9yIGRpc2FibGVkIGVsZW1lbnRzLlxuICovXG5cbmJ1dHRvbltkaXNhYmxlZF0sXG5odG1sIGlucHV0W2Rpc2FibGVkXSB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLyoqXG4gKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgYm9yZGVyIGluIEZpcmVmb3ggNCsuXG4gKi9cblxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBGaXJlZm94IDQrIHNldHRpbmcgYGxpbmUtaGVpZ2h0YCBvbiBgaW5wdXRgIHVzaW5nIGAhaW1wb3J0YW50YCBpblxuICogdGhlIFVBIHN0eWxlc2hlZXQuXG4gKi9cblxuaW5wdXQge1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xufVxuXG4vKipcbiAqIEl0J3MgcmVjb21tZW5kZWQgdGhhdCB5b3UgZG9uJ3QgYXR0ZW1wdCB0byBzdHlsZSB0aGVzZSBlbGVtZW50cy5cbiAqIEZpcmVmb3gncyBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0IHJlc3BlY3QgYm94LXNpemluZywgcGFkZGluZywgb3Igd2lkdGguXG4gKlxuICogMS4gQWRkcmVzcyBib3ggc2l6aW5nIHNldCB0byBgY29udGVudC1ib3hgIGluIElFIDgvOS8xMC5cbiAqIDIuIFJlbW92ZSBleGNlc3MgcGFkZGluZyBpbiBJRSA4LzkvMTAuXG4gKi9cblxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogRml4IHRoZSBjdXJzb3Igc3R5bGUgZm9yIENocm9tZSdzIGluY3JlbWVudC9kZWNyZW1lbnQgYnV0dG9ucy4gRm9yIGNlcnRhaW5cbiAqIGBmb250LXNpemVgIHZhbHVlcyBvZiB0aGUgYGlucHV0YCwgaXQgY2F1c2VzIHRoZSBjdXJzb3Igc3R5bGUgb2YgdGhlXG4gKiBkZWNyZW1lbnQgYnV0dG9uIHRvIGNoYW5nZSBmcm9tIGBkZWZhdWx0YCB0byBgdGV4dGAuXG4gKi9cblxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi8qKlxuICogMS4gQWRkcmVzcyBgYXBwZWFyYW5jZWAgc2V0IHRvIGBzZWFyY2hmaWVsZGAgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gKiAyLiBBZGRyZXNzIGBib3gtc2l6aW5nYCBzZXQgdG8gYGJvcmRlci1ib3hgIGluIFNhZmFyaSBhbmQgQ2hyb21lXG4gKiAgICAoaW5jbHVkZSBgLW1vemAgdG8gZnV0dXJlLXByb29mKS5cbiAqL1xuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8qIDEgKi9cbiAgLW1vei1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogMiAqL1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbn1cblxuLyoqXG4gKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgc2VhcmNoIGNhbmNlbCBidXR0b24gaW4gU2FmYXJpIGFuZCBDaHJvbWUgb24gT1MgWC5cbiAqIFNhZmFyaSAoYnV0IG5vdCBDaHJvbWUpIGNsaXBzIHRoZSBjYW5jZWwgYnV0dG9uIHdoZW4gdGhlIHNlYXJjaCBpbnB1dCBoYXNcbiAqIHBhZGRpbmcgKGFuZCBgdGV4dGZpZWxkYCBhcHBlYXJhbmNlKS5cbiAqL1xuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLyoqXG4gKiBEZWZpbmUgY29uc2lzdGVudCBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcuXG4gKi9cblxuZmllbGRzZXQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICBtYXJnaW46IDAgMnB4O1xuICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCBgY29sb3JgIG5vdCBiZWluZyBpbmhlcml0ZWQgaW4gSUUgOC85LzEwLzExLlxuICogMi4gUmVtb3ZlIHBhZGRpbmcgc28gcGVvcGxlIGFyZW4ndCBjYXVnaHQgb3V0IGlmIHRoZXkgemVybyBvdXQgZmllbGRzZXRzLlxuICovXG5cbmxlZ2VuZCB7XG4gIGJvcmRlcjogMDsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDgvOS8xMC8xMS5cbiAqL1xuXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiAqIERvbid0IGluaGVyaXQgdGhlIGBmb250LXdlaWdodGAgKGFwcGxpZWQgYnkgYSBydWxlIGFib3ZlKS5cbiAqIE5PVEU6IHRoZSBkZWZhdWx0IGNhbm5vdCBzYWZlbHkgYmUgY2hhbmdlZCBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYLlxuICovXG5cbm9wdGdyb3VwIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8qIFRhYmxlc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgbW9zdCBzcGFjaW5nIGJldHdlZW4gdGFibGUgY2VsbHMuXG4gKi9cblxudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDtcbn1cblxudGQsXG50aCB7XG4gIHBhZGRpbmc6IDA7XG59XG4iLCIvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gcmVmbGV4IHZhcmlhYmxlc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gUHJlZml4XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBZb3UgY2FuIG9wdGlvbmFsbHkgbmFtZXNwYWNlIHJlZmxleCBjbGFzc2VzIHRvIGF2b2lkIGNsYXNoaW5nIHdpdGggb3RoZXIgY3NzIGZyYW1ld29ya3Ncbi8vIGUuZy4gc2V0dGluZyAkcmVmbGV4LXByZWZpeCBhcyBcInJlZmxleC1cIiBoZXJlIHdvdWxkIGNhdXNlIGNvbC1zbS02IHRvIGJlY29tZSByZWZsZXgtY29sLXNtLTZcbi8vIEV4YW1wbGU6ICRyZWZsZXgtcHJlZml4OiByZWZsZXgtO1xuLy8gQnkgZGVmYXVsdCB0aGlzIGlzIGFuIGVtcHR5IHN0cmluZ1xuJHJlZmxleC1wcmVmaXg6IG51bGwgIWRlZmF1bHQ7XG5cblxuLy8gTGVnYWN5IHN1cHBvcnRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFJlZmxleCBhZGRzIGEgbG90IG9mIGNzcyBwcm9wZXJ0aWUgdG8gc3VwcG9ydCBvbGRlciBicm93c2VycyB0aGF0IGRvbid0IHN1cHBvcnQgZmxleGJveCBsYXlvdXQuXG4vLyBJZiB5b3UgcHJlZmVyIHRvIHVzZSB0aGlzIGFzIGEgcHVyZWx5IGZsZXhib3ggZ3JpZCB3aXRob3V0IGxlZ2FjeSBzdXBwb3J0IHRoZW4gc2V0IHRoaXMgdG8gZmFsc2VcbiRsZWdhY3ktc3VwcG9ydDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8gUmVzcG9uc2l2ZSB2aXNpYmlsaXR5IGhlbHBlcnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFJlZmxleCBoYXMgc29tZSBnZW5lcmljIHZpc2liaWxpdHkgY2xhc3NlcyB0byBoaWRlIGVsZW1lbnRzIGF0IGRpZmZlcmVudCBicmVha3BvaW50cy5cbi8vIElmIHlvdSB3YW50IHRvIGRpc2FibGUgdGhlc2UgdGhlbiBzZXQgdGhpcyB0byBmYWxzZVxuJHZpc2liaWxpdHktaGVscGVyczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8gR3JpZFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuJHJlZmxleC1jb2x1bW5zOiAxMiAhZGVmYXVsdDsgLy8gbnVtYmVyIG9mIGNvbHVtbnNcblxuLy8gQnJlYWtwb2ludHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiRyZWZsZXgteHM6IDU3NnB4ICFkZWZhdWx0O1xuJHJlZmxleC1zbTogNzY4cHggIWRlZmF1bHQ7XG4kcmVmbGV4LW1kOiA5OTJweCAhZGVmYXVsdDtcbiRyZWZsZXgtbGc6IDEyMDBweCAhZGVmYXVsdDtcbiRyZWZsZXgteGxnOiAxNjAwcHggIWRlZmF1bHQ7XG5cbiRyZWZsZXgteHhzLW1heDogKCRyZWZsZXgteHMgLSAxKTtcbiRyZWZsZXgteHMtbWF4OiAoJHJlZmxleC1zbSAtIDEpO1xuJHJlZmxleC1zbS1tYXg6ICgkcmVmbGV4LW1kIC0gMSk7XG4kcmVmbGV4LW1kLW1heDogKCRyZWZsZXgtbGcgLSAxKTtcbiRyZWZsZXgtbGctbWF4OiAoJHJlZmxleC14bGcgLSAxKTtcblxuJHJlZmxleC1icmVha3BvaW50czogKFxuICB4eHM6IDBweCxcbiAgeHM6ICRyZWZsZXgteHMsXG4gIHNtOiAkcmVmbGV4LXNtLFxuICBtZDogJHJlZmxleC1tZCxcbiAgbGc6ICRyZWZsZXgtbGcsXG4gIHhsZzogJHJlZmxleC14bGdcbik7XG5cbi8vIFNwYWNpbmdcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiRyZWZsZXgtZ3JpZC1zcGFjaW5nOiAxNXB4ICFkZWZhdWx0O1xuXG4vLyBDdXN0b20gcHJvcGVydGllcyBzbyBvdGhlcnMgY2FuIHJlZmVyZW5jZSB0aGUgdmFyaWFibGVzLlxuOnJvb3Qge1xuICAtLXJlZmxleC1jb2x1bW5zOiAjeyAkcmVmbGV4LWNvbHVtbnMgfTtcbiAgLS1yZWZsZXgtZ3JpZC1zcGFjaW5nOiAjeyAkcmVmbGV4LWdyaWQtc3BhY2luZyB9O1xuICAtLXJlZmxleC14czogI3sgJHJlZmxleC14cyB9O1xuICAtLXJlZmxleC1zbTogI3sgJHJlZmxleC1zbSB9O1xuICAtLXJlZmxleC1tZDogI3sgJHJlZmxleC1tZCB9O1xuICAtLXJlZmxleC1sZzogI3sgJHJlZmxleC1sZyB9O1xuICAtLXJlZmxleC14bGc6ICN7ICRyZWZsZXgteGxnIH07XG4gIC0tcmVmbGV4LXh4cy1tYXg6ICN7ICRyZWZsZXgteHhzLW1heCB9O1xuICAtLXJlZmxleC14cy1tYXg6ICN7ICRyZWZsZXgteHMtbWF4IH07XG4gIC0tcmVmbGV4LXNtLW1heDogI3sgJHJlZmxleC1zbS1tYXggfTtcbiAgLS1yZWZsZXgtbWQtbWF4OiAjeyAkcmVmbGV4LW1kLW1heCB9O1xuICAtLXJlZmxleC1sZy1tYXg6ICN7ICRyZWZsZXgtbGctbWF4IH07XG59XG4iLCIvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gcmVmbGV4IGNvbnRhaW5lcnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi4jeyRyZWZsZXgtcHJlZml4fWNvbnRhaW5lcixcbi4jeyRyZWZsZXgtcHJlZml4fWNvbnRhaW5lci1mdWxsIHtcbiAgICBAaW5jbHVkZSBib3gtc2l6aW5nKGJvcmRlci1ib3gpO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBwYWRkaW5nLXJpZ2h0OiAoJHJlZmxleC1ncmlkLXNwYWNpbmcgKiAyKTtcbiAgICBwYWRkaW5nLWxlZnQ6ICgkcmVmbGV4LWdyaWQtc3BhY2luZyAqIDIpO1xuXG4gICAgLiN7JHJlZmxleC1wcmVmaXh9Z3JpZCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLSRyZWZsZXgtZ3JpZC1zcGFjaW5nO1xuICAgICAgICBtYXJnaW4tbGVmdDogLSRyZWZsZXgtZ3JpZC1zcGFjaW5nO1xuICAgIH1cbn1cblxuLiN7JHJlZmxleC1wcmVmaXh9Y29udGFpbmVyIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJHJlZmxleC14cykge1xuICAgICAgICBtYXgtd2lkdGg6ICRyZWZsZXgteHM7XG4gICAgfVxuXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRyZWZsZXgtc20pIHtcbiAgICAgICAgbWF4LXdpZHRoOiAkcmVmbGV4LXNtO1xuICAgIH1cblxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkcmVmbGV4LW1kKSB7XG4gICAgICAgIG1heC13aWR0aDogJHJlZmxleC1tZDtcbiAgICB9XG5cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJHJlZmxleC1sZykge1xuICAgICAgICBtYXgtd2lkdGg6ICRyZWZsZXgtbGc7XG4gICAgfVxuXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRyZWZsZXgteGxnKSB7XG4gICAgICAgIG1heC13aWR0aDogJHJlZmxleC14bGc7XG4gICAgfVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gcmVmbGV4IGdyaWRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi4jeyRyZWZsZXgtcHJlZml4fWdyaWQge1xuICAgIEBpbmNsdWRlIGJveC1zaXppbmcoYm9yZGVyLWJveCk7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgQGluY2x1ZGUgZGlzcGxheS1mbGV4KCk7XG4gICAgQGluY2x1ZGUgZmxleC13cmFwKCk7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgQGluY2x1ZGUgc2V0dXAtd2hpdGVzcGFjZSgpO1xuXG4gICAgJjo6YmVmb3JlLFxuICAgICY6OmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgYm94LXNpemluZyhib3JkZXItYm94KTtcbiAgICAgICAgQGluY2x1ZGUgcmVzZXQtd2hpdGVzcGFjZSgpO1xuICAgIH1cblxuICAgIC8vIGhhbmRsZSB3aGVuIGxpc3RzIGFyZSB1c2VkIGFzIGEgZ3JpZFxuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHJlZmxleCBjb2wgZGVmYXVsdHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbltjbGFzcyo9XCIjeyRyZWZsZXgtcHJlZml4fWNvbC1cIl0ge1xuICAgIEBpbmNsdWRlIGJveC1zaXppbmcoYm9yZGVyLWJveCk7XG4gICAgQGluY2x1ZGUgcmVzZXQtd2hpdGVzcGFjZSgpO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIHBhZGRpbmc6ICRyZWZsZXgtZ3JpZC1zcGFjaW5nO1xuXG4gICAgJjo6YmVmb3JlLFxuICAgICY6OmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgYm94LXNpemluZyhib3JkZXItYm94KTtcbiAgICAgICAgQGluY2x1ZGUgcmVzZXQtd2hpdGVzcGFjZSgpO1xuICAgIH1cblxuICAgIC8vIGhhbmRsZSBncmlkcyBuZXN0ZWQgaW4gY29sdW1uc1xuICAgIC4jeyRyZWZsZXgtcHJlZml4fWdyaWQge1xuICAgICAgICBAaW5jbHVkZSBmbGV4KDEsIDEsIGF1dG8pO1xuICAgICAgICBtYXJnaW46IC0kcmVmbGV4LWdyaWQtc3BhY2luZztcbiAgICB9XG5cbiAgICBAaWYgJGxlZ2FjeS1zdXBwb3J0ID09IHRydWUge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICpkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgIHpvb206IDE7XG4gICAgfVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gcmVmbGV4IGdyaWQgZ2VuZXJhdGlvblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQGluY2x1ZGUgbWFrZS1yZWZsZXgtZ3JpZChjb2wtKTtcblxuQG1lZGlhIChtaW4td2lkdGg6ICRyZWZsZXgteHMpIHtcbiAgICBAaW5jbHVkZSBtYWtlLXJlZmxleC1ncmlkKGNvbC14cy0pO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogJHJlZmxleC1zbSkge1xuICAgIEBpbmNsdWRlIG1ha2UtcmVmbGV4LWdyaWQoY29sLXNtLSk7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAkcmVmbGV4LW1kKSB7XG4gICAgQGluY2x1ZGUgbWFrZS1yZWZsZXgtZ3JpZChjb2wtbWQtKTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6ICRyZWZsZXgtbGcpIHtcbiAgICBAaW5jbHVkZSBtYWtlLXJlZmxleC1ncmlkKGNvbC1sZy0pO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogJHJlZmxleC14bGcpIHtcbiAgICBAaW5jbHVkZSBtYWtlLXJlZmxleC1ncmlkKGNvbC14bGctKTtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHJlZmxleCBjb2wtYXV0b1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLiN7JHJlZmxleC1wcmVmaXh9Y29sLWF1dG8ge1xuICAgIEBpbmNsdWRlIHNldHVwLWF1dG8tY29scygpO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogJHJlZmxleC14cykge1xuICAgIC4jeyRyZWZsZXgtcHJlZml4fWNvbC14cy1hdXRvIHtcbiAgICAgICAgQGluY2x1ZGUgc2V0dXAtYXV0by1jb2xzKCk7XG4gICAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogJHJlZmxleC1zbSkge1xuICAgIC4jeyRyZWZsZXgtcHJlZml4fWNvbC1zbS1hdXRvIHtcbiAgICAgICAgQGluY2x1ZGUgc2V0dXAtYXV0by1jb2xzKCk7XG4gICAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogJHJlZmxleC1tZCkge1xuICAgIC4jeyRyZWZsZXgtcHJlZml4fWNvbC1tZC1hdXRvIHtcbiAgICAgICAgQGluY2x1ZGUgc2V0dXAtYXV0by1jb2xzKCk7XG4gICAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogJHJlZmxleC1sZykge1xuICAgIC4jeyRyZWZsZXgtcHJlZml4fWNvbC1sZy1hdXRvIHtcbiAgICAgICAgQGluY2x1ZGUgc2V0dXAtYXV0by1jb2xzKCk7XG4gICAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogJHJlZmxleC14bGcpIHtcbiAgICAuI3skcmVmbGV4LXByZWZpeH1jb2wteGxnLWF1dG8ge1xuICAgICAgICBAaW5jbHVkZSBzZXR1cC1hdXRvLWNvbHMoKTtcbiAgICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyByZWZsZXggb3JkZXIgaGVscGVycyBnZW5lcmF0aW9uXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AaW5jbHVkZSBtYWtlLW9yZGVyLWhlbHBlcnMoKTtcblxuQG1lZGlhIChtaW4td2lkdGg6ICRyZWZsZXgteHMpIHtcbiAgICBAaW5jbHVkZSBsb29wLW9yZGVyLWhlbHBlcnMoJHJlZmxleC1jb2x1bW5zLCAnLXhzJyk7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAkcmVmbGV4LXNtKSB7XG4gICAgQGluY2x1ZGUgbG9vcC1vcmRlci1oZWxwZXJzKCRyZWZsZXgtY29sdW1ucywgJy1zbScpO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogJHJlZmxleC1tZCkge1xuICAgIEBpbmNsdWRlIGxvb3Atb3JkZXItaGVscGVycygkcmVmbGV4LWNvbHVtbnMsICctbWQnKTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6ICRyZWZsZXgtbGcpIHtcbiAgICBAaW5jbHVkZSBsb29wLW9yZGVyLWhlbHBlcnMoJHJlZmxleC1jb2x1bW5zLCAnLWxnJyk7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAkcmVmbGV4LXhsZykge1xuICAgIEBpbmNsdWRlIGxvb3Atb3JkZXItaGVscGVycygkcmVmbGV4LWNvbHVtbnMsICcteGxnJyk7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyByZWZsZXggb2Zmc2V0IGhlbHBlcnMgZ2VuZXJhdGlvblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQGluY2x1ZGUgbWFrZS1vZmZzZXQtaGVscGVycygpO1xuXG5AbWVkaWEgKG1pbi13aWR0aDogJHJlZmxleC14cykge1xuICAgIEBpbmNsdWRlIGxvb3Atb2Zmc2V0LWhlbHBlcnMoJHJlZmxleC1jb2x1bW5zIC0gMSwgJy14cycpO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogJHJlZmxleC1zbSkge1xuICAgIEBpbmNsdWRlIGxvb3Atb2Zmc2V0LWhlbHBlcnMoJHJlZmxleC1jb2x1bW5zIC0gMSwgJy1zbScpO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogJHJlZmxleC1tZCkge1xuICAgIEBpbmNsdWRlIGxvb3Atb2Zmc2V0LWhlbHBlcnMoJHJlZmxleC1jb2x1bW5zIC0gMSwgJy1tZCcpO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogJHJlZmxleC1sZykge1xuICAgIEBpbmNsdWRlIGxvb3Atb2Zmc2V0LWhlbHBlcnMoJHJlZmxleC1jb2x1bW5zIC0gMSwgJy1sZycpO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogJHJlZmxleC14bGcpIHtcbiAgICBAaW5jbHVkZSBsb29wLW9mZnNldC1oZWxwZXJzKCRyZWZsZXgtY29sdW1ucyAtIDEsICcteGxnJyk7XG59XG4iLCIvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gcmVmbGV4IG1peGluc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gcmVmbGV4IGdyaWQgZ2VuZXJhdGlvbiBtaXhpbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AdXNlIFwic2FzczptYXRoXCI7XG5cbkBtaXhpbiBtYWtlLXJlZmxleC1ncmlkKCRjbGFzcykge1xuICAgIEBpbmNsdWRlIGxvb3AtcmVmbGV4LWNvbHVtbnMoJHJlZmxleC1jb2x1bW5zLCAkY2xhc3MsIHdpZHRoKTtcbn1cblxuQG1peGluIGNhbGMtcmVmbGV4LWNvbHVtbnMoJGluZGV4LCAkY2xhc3MsICR0eXBlKSB7XG4gICAgQGlmICR0eXBlID09IHdpZHRoIGFuZCAkaW5kZXggPiAwIHtcbiAgICAgICAgLiN7JHJlZmxleC1wcmVmaXh9I3skY2xhc3N9I3skaW5kZXh9IHtcbiAgICAgICAgICAgIHdpZHRoOiBwZXJjZW50YWdlKG1hdGguZGl2KCRpbmRleCwgJHJlZmxleC1jb2x1bW5zKSk7XG4gICAgICAgICAgICBAaWYgJGxlZ2FjeS1zdXBwb3J0ID09IHRydWUge1xuICAgICAgICAgICAgICAgICp3aWR0aDogcGVyY2VudGFnZShtYXRoLmRpdigkaW5kZXgsICRyZWZsZXgtY29sdW1ucykpIC0gLjE7IC8vIGllNyBjc3MgaGFja1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWl4aW4gbG9vcC1yZWZsZXgtY29sdW1ucygkaW5kZXgsICRjbGFzcywgJHR5cGUpIHtcbiAgICBAaWYgJGluZGV4ID49IDAge1xuICAgICAgICBAaW5jbHVkZSBjYWxjLXJlZmxleC1jb2x1bW5zKCRpbmRleCwgJGNsYXNzLCAkdHlwZSk7XG4gICAgICAgIC8vIG5leHQgaXRlcmF0aW9uXG4gICAgICAgIEBpbmNsdWRlIGxvb3AtcmVmbGV4LWNvbHVtbnMoKCRpbmRleCAtIDEpLCAkY2xhc3MsICR0eXBlKTtcbiAgICB9XG59XG5cbi8vIGRlZmF1bHRzIGZvciBhdXRvIGNvbHNcbkBtaXhpbiBzZXR1cC1hdXRvLWNvbHMoKSB7XG4gICAgQGluY2x1ZGUgZmxleCgxLCAwLCAwcHgpOyAvLyBhIHVuaXQgb24gbGFzdCB2YWx1ZSBpcyByZXF1aXJlZCBieSBJRTEwLTExXG5cbiAgICBAaWYgJGxlZ2FjeS1zdXBwb3J0ID09IHRydWUge1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBpbmxpbmUtYmxvY2sgc3BlY2lmaWMgbWl4aW5zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AbWl4aW4gc2V0dXAtd2hpdGVzcGFjZSgpIHtcbiAgICBAaWYgJGxlZ2FjeS1zdXBwb3J0ID09IHRydWUge1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogLS4zMWVtO1xuICAgICAgICAqbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgICAgICAgd29yZC1zcGFjaW5nOiAtLjQzZW07XG4gICAgfVxufVxuXG5AbWl4aW4gcmVzZXQtd2hpdGVzcGFjZSgpIHtcbiAgICBAaWYgJGxlZ2FjeS1zdXBwb3J0ID09IHRydWUge1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICAgICAgICB3b3JkLXNwYWNpbmc6IG5vcm1hbDtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICB9XG59XG5cbkBtaXhpbiByZXNldC10ZXh0LWFsaWduKCkge1xuICAgIC8vXG4gICAgLy8gV2Ugd2FudCB0byByZXNldCBhbnkgdGV4dC1hbGlnbiBwcm9wZXJ0aWVzIHNldCBieSB0aGUgZ3JpZFxuICAgIC8vIChyZXF1aXJlZCBmb3IgdGhlIGlubGluZS1ibG9jayBmYWxsYmFjaylcbiAgICAvLyBidXQgd2UgZG9uJ3Qgd2FudCB0byBvdmVycmlkZSBhbnkgdGV4dC1hbGlnbiBwcm9wZXJ0aWVzXG4gICAgLy8gc2V0IG9uIHRoZSBpbmRpdmlkdWFsIGNvbC14IGVsZW1lbnRcbiAgICAvLyBvciBvbiBhbnkgb2YgaXQncyBjaGlsZCBlbGVtZW50c1xuICAgIC8vXG4gICAgLy8gMSkgc2V0IHRvIGxlZnQgYnkgZGVmYXVsdCAod29ya3MgZXZlcnl3aGVyZSlcbiAgICAvLyAyKSBzZXQgdG8gc3RhcnQgKHJlc3BlY3RzIHJpZ2h0IHRvIGxlZnQgdGV4dClcbiAgICAvL1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgdGV4dC1hbGlnbjogc3RhcnQ7XG4gICAgLW1vei10ZXh0LWFsaWduLWxhc3Q6IGxlZnQ7XG4gICAgLW1vei10ZXh0LWFsaWduLWxhc3Q6IHN0YXJ0O1xuICAgIHRleHQtYWxpZ24tbGFzdDogbGVmdDtcbiAgICB0ZXh0LWFsaWduLWxhc3Q6IHN0YXJ0O1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gb3JkZXIgY2xhc3MgZ2VuZXJhdGlvbiBtaXhpbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBtaXhpbiBvcmRlcigkb3JkZXI6IDApIHtcbiAgICAtbXMtZmxleC1vcmRlcjogJG9yZGVyO1xuICAgIC13ZWJraXQtb3JkZXI6ICRvcmRlcjtcbiAgICBvcmRlcjogJG9yZGVyO1xufVxuXG5AbWl4aW4gbWFrZS1vcmRlci1oZWxwZXJzKCkge1xuICAgIEBpbmNsdWRlIGxvb3Atb3JkZXItaGVscGVycygkcmVmbGV4LWNvbHVtbnMpO1xufVxuXG5AbWl4aW4gbG9vcC1vcmRlci1oZWxwZXJzKCRpbmRleCwgJGJyZWFrcG9pbnQ6IG51bGwpIHtcbiAgICBAaWYgJGluZGV4ID49IDAge1xuICAgICAgICAuI3skcmVmbGV4LXByZWZpeH1vcmRlciN7JGJyZWFrcG9pbnR9LSN7JGluZGV4fSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBvcmRlcigkaW5kZXgpO1xuICAgICAgICB9XG4gICAgICAgIC8vIG5leHQgaXRlcmF0aW9uXG4gICAgICAgIEBpbmNsdWRlIGxvb3Atb3JkZXItaGVscGVycygoJGluZGV4IC0gMSksICRicmVha3BvaW50KTtcbiAgICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBvZmZzZXQgY2xhc3MgZ2VuZXJhdGlvbiBtaXhpbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AbWl4aW4gb2Zmc2V0KCRpbmRleDogMCkge1xuICAgICRvZmZzZXQ6IG1hdGguZGl2KCRpbmRleCwgJHJlZmxleC1jb2x1bW5zKTtcbiAgICAvLyBjb252ZXJ0IHRvIHBlcmNlbnRhZ2Ugb25seSBpZiBub3QgemVyb1xuICAgIEBpZiAkb2Zmc2V0ICE9IDAge1xuICAgICAgICAkb2Zmc2V0OiBwZXJjZW50YWdlKCRvZmZzZXQpO1xuICAgIH1cbiAgICBtYXJnaW4tbGVmdDogJG9mZnNldDtcbiAgICBAaWYgJGxlZ2FjeS1zdXBwb3J0ID09IHRydWUge1xuICAgICAgICAqbWFyZ2luLWxlZnQ6IHBlcmNlbnRhZ2UobWF0aC5kaXYoJGluZGV4LCAkcmVmbGV4LWNvbHVtbnMpKSAtIC4xOyAvLyBpZTcgY3NzIGhhY2tcbiAgICB9XG59XG5cbkBtaXhpbiBtYWtlLW9mZnNldC1oZWxwZXJzKCkge1xuICAgIEBpbmNsdWRlIGxvb3Atb2Zmc2V0LWhlbHBlcnMoJHJlZmxleC1jb2x1bW5zIC0gMSk7XG59XG5cbkBtaXhpbiBsb29wLW9mZnNldC1oZWxwZXJzKCRpbmRleCwgJGJyZWFrcG9pbnQ6IG51bGwpIHtcbiAgICBAaWYgJGluZGV4ID4gMCBhbmQgJGJyZWFrcG9pbnQgPT0gbnVsbCB7XG4gICAgICAgIC4jeyRyZWZsZXgtcHJlZml4fW9mZnNldCN7JGJyZWFrcG9pbnR9LSN7JGluZGV4fSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBvZmZzZXQoJGluZGV4KTtcbiAgICAgICAgfVxuICAgICAgICAvLyBuZXh0IGl0ZXJhdGlvblxuICAgICAgICBAaW5jbHVkZSBsb29wLW9mZnNldC1oZWxwZXJzKCgkaW5kZXggLSAxKSwgJGJyZWFrcG9pbnQpO1xuICAgIH0gQGVsc2UgaWYgJGluZGV4ID49IDAgYW5kICRicmVha3BvaW50ICE9IG51bGwge1xuICAgICAgICAuI3skcmVmbGV4LXByZWZpeH1vZmZzZXQjeyRicmVha3BvaW50fS0jeyRpbmRleH0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgb2Zmc2V0KCRpbmRleCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gbmV4dCBpdGVyYXRpb25cbiAgICAgICAgQGluY2x1ZGUgbG9vcC1vZmZzZXQtaGVscGVycygoJGluZGV4IC0gMSksICRicmVha3BvaW50KTtcbiAgICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyByZWZsZXggbW9kaWZpZXIgbWl4aW5zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vL1xuLy8gZGlzcGxheVxuLy8gLS0tXG5cbkBtaXhpbiBkaXNwbGF5LWZsZXgoKSB7XG4gICAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gICAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG59XG5cbi8vXG4vLyBmbGV4XG4vLyAtLS1cblxuQG1peGluIGZsZXgoJGdyb3c6IDAsICRzaHJpbms6IDEsICRiYXNpczogYXV0bykge1xuICAgIEBpZiAkYmFzaXMgPT0gMCB7XG4gICAgICAgIC1tcy1mbGV4OiAkZ3JvdyAkc2hyaW5rIGF1dG87IC8vaWUxMCBuZWVkcyBhdXRvXG4gICAgfSBAZWxzZSB7XG4gICAgICAgIC1tcy1mbGV4OiAkZ3JvdyAkc2hyaW5rICRiYXNpcztcbiAgICB9XG5cbiAgICAtd2Via2l0LWZsZXg6ICRncm93ICRzaHJpbmsgJGJhc2lzO1xuICAgIGZsZXg6ICRncm93ICRzaHJpbmsgJGJhc2lzO1xufVxuXG5AbWl4aW4gZmxleC1ncm93KCRncm93OjEpIHtcbiAgICAtbXMtZmxleC1wb3NpdGl2ZTogJGdyb3c7XG4gICAgLXdlYmtpdC1mbGV4LWdyb3c6ICRncm93O1xuICAgIGZsZXgtZ3JvdzogJGdyb3c7XG59XG5cbkBtaXhpbiBmbGV4LXNocmluaygkc2hyaW5rOjEpIHtcbiAgICAtbXMtZmxleC1uZWdhdGl2ZTogJHNocmluaztcbiAgICAtd2Via2l0LWZsZXgtc2hyaW5rOiAkc2hyaW5rO1xuICAgIGZsZXgtc2hyaW5rOiAkc2hyaW5rO1xufVxuXG5AbWl4aW4gZmxleC1iYXNpcygkYmFzaXM6YXV0bykge1xuICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiAkYmFzaXM7XG4gICAgLXdlYmtpdC1mbGV4LWJhc2lzOiAkYmFzaXM7XG4gICAgZmxleC1iYXNpczogJGJhc2lzO1xufVxuXG5AbWl4aW4gZmxleC1mbG93KCRkaXJlY3Rpb246IHJvdywgJHdyYXA6IG5vd3JhcCkge1xuICAgIC1tcy1mbGV4LXdyYXA6ICR3cmFwO1xuICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogJGRpcmVjdGlvbjtcbiAgICAtd2Via2l0LWZsZXgtZmxvdzogJGRpcmVjdGlvbiAkd3JhcDtcbiAgICBmbGV4LWZsb3c6ICRkaXJlY3Rpb24gJHdyYXA7XG59XG5cbkBtaXhpbiBmbGV4LXdyYXAoJHdyYXA6IHdyYXApIHtcbiAgICAtbXMtZmxleC13cmFwOiAkd3JhcDtcbiAgICAtd2Via2l0LWZsZXgtd3JhcDogJHdyYXA7XG4gICAgZmxleC13cmFwOiAkd3JhcDtcbn1cblxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCRkaXJlY3Rpb246IHJvdykge1xuICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogJGRpcmVjdGlvbjtcbiAgICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkZGlyZWN0aW9uO1xuICAgIGZsZXgtZGlyZWN0aW9uOiAkZGlyZWN0aW9uO1xufVxuXG4vL1xuLy8gYWxpZ25cbi8vIC0tLVxuXG5AbWl4aW4gYWxpZ24taXRlbXMoJGFsaWduOiBzdHJldGNoKSB7XG4gICAgQGluY2x1ZGUgbXMtYWxpZ24taXRlbXMoJGFsaWduKTtcbiAgICAtd2Via2l0LWFsaWduLWl0ZW1zOiAkYWxpZ247XG4gICAgYWxpZ24taXRlbXM6ICRhbGlnbjtcbn1cblxuQG1peGluIGFsaWduLXNlbGYoJGFsaWduOiBzdHJldGNoKSB7XG4gICAgQGluY2x1ZGUgbXMtYWxpZ24tc2VsZigkYWxpZ24pO1xuICAgIC13ZWJraXQtYWxpZ24tc2VsZjogJGFsaWduO1xuICAgIGFsaWduLXNlbGY6ICRhbGlnbjtcbn1cblxuQG1peGluIGFsaWduLWNvbnRlbnQoJGFsaWduOiBzdHJldGNoKSB7XG4gICAgQGluY2x1ZGUgbXMtYWxpZ24tY29udGVudCgkYWxpZ24pO1xuICAgIC13ZWJraXQtYWxpZ24tY29udGVudDogJGFsaWduO1xuICAgIGFsaWduLWNvbnRlbnQ6ICRhbGlnbjtcbn1cblxuLy9cbi8vIGllMTAgc3ludGF4IGZvciBhbGlnblxuLy8gLS0tXG5cbkBtaXhpbiBtcy1hbGlnbi1pdGVtcygkYWxpZ24pIHtcbiAgICBAaWYgJGFsaWduID09ICdmbGV4LXN0YXJ0JyB7XG4gICAgICAgIC1tcy1mbGV4LWFsaWduOiBzdGFydDtcbiAgICB9IEBlbHNlIGlmICRhbGlnbiA9PSAnZmxleC1lbmQnIHtcbiAgICAgICAgLW1zLWZsZXgtYWxpZ246IGVuZDtcbiAgICB9IEBlbHNlIHtcbiAgICAgICAgLW1zLWZsZXgtYWxpZ246ICRhbGlnbjtcbiAgICB9XG59XG5cbkBtaXhpbiBtcy1hbGlnbi1zZWxmKCRhbGlnbikge1xuICAgIEBpZiAkYWxpZ24gPT0gJ2ZsZXgtc3RhcnQnIHtcbiAgICAgICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogc3RhcnQ7XG4gICAgfSBAZWxzZSBpZiAkYWxpZ24gPT0gJ2ZsZXgtZW5kJyB7XG4gICAgICAgIC1tcy1mbGV4LWl0ZW0tYWxpZ246IGVuZDtcbiAgICB9IEBlbHNlIHtcbiAgICAgICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogJGFsaWduO1xuICAgIH1cbn1cblxuQG1peGluIG1zLWFsaWduLWNvbnRlbnQoJGFsaWduKSB7XG4gICAgQGlmICRhbGlnbiA9PSAnZmxleC1zdGFydCcge1xuICAgICAgICAtbXMtZmxleC1saW5lLXBhY2s6IHN0YXJ0O1xuICAgIH0gQGVsc2UgaWYgJGFsaWduID09ICdmbGV4LWVuZCcge1xuICAgICAgICAtbXMtZmxleC1saW5lLXBhY2s6IGVuZDtcbiAgICB9IEBlbHNlIGlmICRhbGlnbiA9PSAnc3BhY2UtYmV0d2Vlbicge1xuICAgICAgICAtbXMtZmxleC1saW5lLXBhY2s6IGp1c3RpZnk7XG4gICAgfSBAZWxzZSBpZiAkYWxpZ24gPT0gJ3NwYWNlLWFyb3VuZCcge1xuICAgICAgICAtbXMtZmxleC1saW5lLXBhY2s6IGRpc3RyaWJ1dGU7XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIC1tcy1mbGV4LWxpbmUtcGFjazogJGFsaWduO1xuICAgIH1cbn1cblxuLy9cbi8vIGp1c3RpZnktY29udGVudFxuLy9cbi8vIFVzZXMgXCJ0ZXh0LWFsaWduXCIgZm9yIHRoZSBmYWxsYmFjayBpbmxpbmUtYmxvY2sgZ3JpZFxuLy8gXCJ0ZXh0LWFsaWduXCIgaXMgZ2xvYmFsbHkgc3VwcG9ydGVkIGFuZCB3b3JrcyBvbiBhbGwgcm93cyBleGNlcHQgdGhlIGxhc3Rcbi8vIFwidGV4dC1hbGlnbi1sYXN0XCIsIHdoZXJlIHN1cHBvcnRlZCwgaGFuZGxlcyB0aGUgbGFzdCBsaW5lIChhbmQsIGhhcHBpbHksIGdyaWRzIHdpdGggb25seSBvbmUgcm93KVxuLy8gLS0tXG5cbkBtaXhpbiBqdXN0aWZ5LWNvbnRlbnQtc3RhcnQoKSB7XG4gICAgLW1zLWZsZXgtcGFjazogc3RhcnQ7XG4gICAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xufVxuXG5AbWl4aW4ganVzdGlmeS1jb250ZW50LWVuZCgpIHtcbiAgICAtbXMtZmxleC1wYWNrOiBlbmQ7XG4gICAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG59XG5cbkBtaXhpbiBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyKCkge1xuICAgIC1tcy1mbGV4LXBhY2s6IGNlbnRlcjtcbiAgICAtd2Via2l0LWp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG5AbWl4aW4ganVzdGlmeS1jb250ZW50LXNwYWNlLWJldHdlZW4oKSB7XG4gICAgLW1zLWZsZXgtcGFjazoganVzdGlmeTtcbiAgICAtd2Via2l0LWp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG5cbkBtaXhpbiBqdXN0aWZ5LWNvbnRlbnQtc3BhY2UtYXJvdW5kKCkge1xuICAgIC1tcy1mbGV4LXBhY2s6IGRpc3RyaWJ1dGU7XG4gICAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFJlc3BvbnNpYmxlIFZpc2liaWxpdHlcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBtaXhpbiByZXNwb25zaXZlLXZpc2liaWxpdHktaGVscGVycygpIHtcbiAgICBAaWYgJHZpc2liaWxpdHktaGVscGVycyA9PSB0cnVlIHtcbiAgICAgICAgLy8gV2UgbmVlZCB0byBoYW5kbGUgeHhzIGFuZCB4bGcgYnJlYWtwb2ludHMgZGlmZmVyZW50bHlcbiAgICAgICAgJG1hcC1yZWZsZXgtYnJlYWtwb2ludHM6IG1hcC1yZW1vdmUoJHJlZmxleC1icmVha3BvaW50cywgeHhzLCB4bGcpO1xuXG4gICAgICAgIC4jeyRyZWZsZXgtcHJlZml4fWhpZGRlbi14eHMge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1vbmx5KCd4eHMnKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRicCBpbiBtYXAta2V5cygkbWFwLXJlZmxleC1icmVha3BvaW50cykge1xuICAgICAgICAgICAgLiN7JHJlZmxleC1wcmVmaXh9aGlkZGVuLSN7JGJwfS11cCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkYnApIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIFxuXG4gICAgICAgICAgICAuI3skcmVmbGV4LXByZWZpeH1oaWRkZW4tI3skYnB9LWRvd24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkYnApIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC4jeyRyZWZsZXgtcHJlZml4fWhpZGRlbi0jeyRicH0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtb25seSgkYnApIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuI3skcmVmbGV4LXByZWZpeH1oaWRkZW4teGxnIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtb25seSgneGxnJykge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIEJyZWFrcG9pbnQgdmlld3BvcnQgc2l6ZXMgYW5kIG1lZGlhIHF1ZXJpZXMuXG4vL1xuLy8gQnJlYWtwb2ludHMgYXJlIGRlZmluZWQgYXMgYSBtYXAgb2YgKG5hbWU6IG1pbmltdW0gd2lkdGgpLCBvcmRlciBmcm9tIHNtYWxsIHRvIGxhcmdlOlxuLy8gKHhzOiA1NzZweCwgc206IDc2OHB4LCBtZDogOTkycHgpXG4vLyBUaGUgbWFwIGRlZmluZWQgaW4gdGhlIGAkcmVmbGV4LWJyZWFrcG9pbnRzYCBnbG9iYWwgdmFyaWFibGUgaXMgdXNlZCBhcyB0aGUgYCRicmVha3BvaW50c2AgYXJndW1lbnQgYnkgZGVmYXVsdC5cbi8vIE5hbWUgb2YgdGhlIG5leHQgYnJlYWtwb2ludCwgb3IgbnVsbCBmb3IgdGhlIGxhc3QgYnJlYWtwb2ludC5cbi8vID4+IGJyZWFrcG9pbnQtbmV4dChzbSkgLT4gbWRcbi8vID4+IGJyZWFrcG9pbnQtbmV4dChzbSwgJGJyZWFrcG9pbnRzOiAoeHM6IDU3NnB4LCBzbTogNzY4cHgsIG1kOiA5OTJweCkpIC0+IG1kXG4vLyA+PiBicmVha3BvaW50LW5leHQoc20sICRicmVha3BvaW50LW5hbWVzOiAoeHMgc20gbWQpKSAtPiBtZFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbmV4dCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkcmVmbGV4LWJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludC1uYW1lczogbWFwLWtleXMoJGJyZWFrcG9pbnRzKSkge1xuICAgICRuOiBpbmRleCgkYnJlYWtwb2ludC1uYW1lcywgJG5hbWUpO1xuICAgIEByZXR1cm4gaWYoJG4gPCBsZW5ndGgoJGJyZWFrcG9pbnQtbmFtZXMpLCBudGgoJGJyZWFrcG9pbnQtbmFtZXMsICRuICsgMSksIG51bGwpO1xufVxuXG4vLyBNaW5pbXVtIGJyZWFrcG9pbnQgd2lkdGguIE51bGwgZm9yIHRoZSBzbWFsbGVzdCAoZmlyc3QpIGJyZWFrcG9pbnQuXG4vLyA+PiBicmVha3BvaW50LW1pbihzbSwgKHhzOiA1NzZweCwgc206IDc2OHB4LCBtZDogOTkycHgpKSAtPiA3NjhweFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRyZWZsZXgtYnJlYWtwb2ludHMpIHtcbiAgICAkbWluOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJG5hbWUpO1xuICAgIEByZXR1cm4gaWYoJG1pbiAhPTAsICRtaW4sIG51bGwpO1xufVxuXG4vLyBNYXhpbXVtIGJyZWFrcG9pbnQgd2lkdGguIE51bGwgZm9yIHRoZSBsYXJnZXN0IChsYXN0KSBicmVha3BvaW50LlxuLy8gVGhlIG1heGltdW0gdmFsdWUgaXMgY2FsY3VsYXRlZCBhcyB0aGUgbWluaW11bSBvZiB0aGUgbmV4dCBvbmUgbGVzcyAwLjEuXG4vLyA+PiBicmVha3BvaW50LW1heChzbSwgKHhzOiA1NzZweCwgc206IDc2OHB4LCBtZDogOTkycHgpKSAtPiA5OTFweFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRyZWZsZXgtYnJlYWtwb2ludHMpIHtcbiAgICAkbmV4dDogYnJlYWtwb2ludC1uZXh0KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuICAgIEByZXR1cm4gaWYoJG5leHQsIGJyZWFrcG9pbnQtbWluKCRuZXh0LCAkYnJlYWtwb2ludHMpIC0gMSwgbnVsbCk7XG59XG5cbi8vIE1lZGlhIG9mIGF0IGxlYXN0IHRoZSBtaW5pbXVtIGJyZWFrcG9pbnQgd2lkdGguIE5vIHF1ZXJ5IGZvciB0aGUgc21hbGxlc3QgYnJlYWtwb2ludC5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSB0byB0aGUgZ2l2ZW4gYnJlYWtwb2ludCBhbmQgd2lkZXIuXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC11cCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkcmVmbGV4LWJyZWFrcG9pbnRzKSB7XG4gICAgJG1pbjogYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XG5cbiAgICBAaWYgJG1pbiB7XG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSB7XG4gICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBlbHNlIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vLyBNZWRpYSBvZiBhdCBtb3N0IHRoZSBtYXhpbXVtIGJyZWFrcG9pbnQgd2lkdGguIE5vIHF1ZXJ5IGZvciB0aGUgbGFyZ2VzdCBicmVha3BvaW50LlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50IGFuZCBuYXJyb3dlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LWRvd24oJG5hbWUsICRicmVha3BvaW50czogJHJlZmxleC1icmVha3BvaW50cykge1xuICAgICRtYXg6IGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuXG4gICAgQGlmICRtYXgge1xuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogJG1heCkge1xuICAgICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAZWxzZSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLy8gTWVkaWEgYmV0d2VlbiB0aGUgYnJlYWtwb2ludCdzIG1pbmltdW0gYW5kIG1heGltdW0gd2lkdGhzLlxuLy8gTm8gbWluaW11bSBmb3IgdGhlIHNtYWxsZXN0IGJyZWFrcG9pbnQsIGFuZCBubyBtYXhpbXVtIGZvciB0aGUgbGFyZ2VzdCBvbmUuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgb25seSB0byB0aGUgZ2l2ZW4gYnJlYWtwb2ludCwgbm90IHZpZXdwb3J0cyBhbnkgd2lkZXIgb3IgbmFycm93ZXIuXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1vbmx5KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRyZWZsZXgtYnJlYWtwb2ludHMpIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRuYW1lLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKCRuYW1lLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gb3RoZXIgbWl4aW5zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AbWl4aW4gYm94LXNpemluZygkYm94bW9kZWwpIHtcbiAgICAtd2Via2l0LWJveC1zaXppbmc6ICRib3htb2RlbDtcbiAgICAtbW96LWJveC1zaXppbmc6ICRib3htb2RlbDtcbiAgICBib3gtc2l6aW5nOiAkYm94bW9kZWw7XG59XG4iLCJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBncmlkIG1vZGlmaWVyc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIGZsZXgtd3JhcFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLiN7JHJlZmxleC1wcmVmaXh9d3JhcCB7XG4gICAgQGluY2x1ZGUgZmxleC13cmFwKHdyYXApO1xufVxuXG4uI3skcmVmbGV4LXByZWZpeH1uby13cmFwIHtcbiAgICBAaW5jbHVkZSBmbGV4LXdyYXAobm93cmFwKTtcblxuICAgIC8vIFRoaXMgaXMgbW9zdGx5IG5lZWRlZCB0byBzdG9wIHRoZSBncmlkIGNvbnRlbnRzIG92ZXJmbG93aW5nIGluIHRoZVxuICAgIC8vIGllMTAgaW1wbGVtZW50YXRpb24gb2YgZmxleGJveCBidXQgaXQgY2FuJ3QgaHVydCBpbiBvdGhlciBicm93c2Vyc1xuICAgIC8vIGFzIGl0IGlzIHRoZSBkZXNpcmVkIGJlaGF2aW91ciBvZiBub24gd3JhcHBpbmcgZmxleCBpdGVtc1xuICAgIFtjbGFzcyo9XCIjeyRyZWZsZXgtcHJlZml4fWNvbC1cIl0ge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LXNocmluaygxKTtcbiAgICB9XG59XG5cbi4jeyRyZWZsZXgtcHJlZml4fXdyYXAtcmV2ZXJzZSB7XG4gICAgQGluY2x1ZGUgZmxleC13cmFwKHdyYXAtcmV2ZXJzZSk7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBmbGV4LWRpcmVjdGlvblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLiN7JHJlZmxleC1wcmVmaXh9ZGlyZWN0aW9uLXJvdyB7XG4gICAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24ocm93KTtcbn1cblxuLiN7JHJlZmxleC1wcmVmaXh9ZGlyZWN0aW9uLXJvdy1yZXZlcnNlIHtcbiAgICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihyb3ctcmV2ZXJzZSk7XG59XG5cbi4jeyRyZWZsZXgtcHJlZml4fWRpcmVjdGlvbi1jb2x1bW4ge1xuICAgIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKGNvbHVtbik7XG59XG5cbi4jeyRyZWZsZXgtcHJlZml4fWRpcmVjdGlvbi1jb2x1bW4tcmV2ZXJzZSB7XG4gICAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oY29sdW1uLXJldmVyc2UpO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gYWxpZ24gaXRlbXMgKGNyb3NzIGF4aXMpXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4uI3skcmVmbGV4LXByZWZpeH1hbGlnbi1zdGFydCB7XG4gICAgQGluY2x1ZGUgYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbi4jeyRyZWZsZXgtcHJlZml4fWFsaWduLWVuZCB7XG4gICAgQGluY2x1ZGUgYWxpZ24taXRlbXMoZmxleC1lbmQpO1xuXG4gICAgQGlmICRsZWdhY3ktc3VwcG9ydCA9PSB0cnVlIHtcbiAgICAgICAgLy8gZmFsbGJhY2sgdG8gbGVnYWN5IHZlcnRpY2FsLWFsaWduXG4gICAgICAgIFtjbGFzcyo9XCIjeyRyZWZsZXgtcHJlZml4fWNvbC1cIl0ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLiN7JHJlZmxleC1wcmVmaXh9YWxpZ24tY2VudGVyIHtcbiAgICBAaW5jbHVkZSBhbGlnbi1pdGVtcyhjZW50ZXIpO1xuXG4gICAgQGlmICRsZWdhY3ktc3VwcG9ydCA9PSB0cnVlIHtcbiAgICAgICAgLy8gZmFsbGJhY2sgdG8gbGVnYWN5IHZlcnRpY2FsLWFsaWduXG4gICAgICAgIFtjbGFzcyo9XCIjeyRyZWZsZXgtcHJlZml4fWNvbC1cIl0ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLiN7JHJlZmxleC1wcmVmaXh9YWxpZ24tYmFzZWxpbmUge1xuICAgIEBpbmNsdWRlIGFsaWduLWl0ZW1zKGJhc2VsaW5lKTtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIGFsaWduIGNvbnRlbnQgKGNyb3NzIGF4aXMpXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4uI3skcmVmbGV4LXByZWZpeH1hbGlnbi1jb250ZW50LXN0YXJ0IHtcbiAgICBAaW5jbHVkZSBhbGlnbi1jb250ZW50KGZsZXgtc3RhcnQpO1xufVxuXG4uI3skcmVmbGV4LXByZWZpeH1hbGlnbi1jb250ZW50LWVuZCB7XG4gICAgQGluY2x1ZGUgYWxpZ24tY29udGVudChmbGV4LWVuZCk7XG5cbiAgICAvLyBmYWxsYmFjayB0byBsZWdhY3kgdmVydGljYWwtYWxpZ25cbiAgICBbY2xhc3MqPVwiI3skcmVmbGV4LXByZWZpeH1jb2wtXCJdIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgICB9XG59XG5cbi4jeyRyZWZsZXgtcHJlZml4fWFsaWduLWNvbnRlbnQtY2VudGVyIHtcbiAgICBAaW5jbHVkZSBhbGlnbi1jb250ZW50KGNlbnRlcik7XG59XG5cbi4jeyRyZWZsZXgtcHJlZml4fWFsaWduLWNvbnRlbnQtc3BhY2UtYmV0d2VlbiB7XG4gICAgQGluY2x1ZGUgYWxpZ24tY29udGVudChzcGFjZS1iZXR3ZWVuKTtcbn1cblxuLiN7JHJlZmxleC1wcmVmaXh9YWxpZ24tY29udGVudC1zcGFjZS1hcm91bmQge1xuICAgIEBpbmNsdWRlIGFsaWduLWNvbnRlbnQoc3BhY2UtYXJvdW5kKTtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIGFsaWduLXNlbGZcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi4jeyRyZWZsZXgtcHJlZml4fWFsaWduLXNlbGYtc3RyZXRjaCB7XG4gICAgQGluY2x1ZGUgYWxpZ24tc2VsZihzdHJldGNoKTtcbn1cblxuLiN7JHJlZmxleC1wcmVmaXh9YWxpZ24tc2VsZi1zdGFydCB7XG4gICAgQGluY2x1ZGUgYWxpZ24tc2VsZihmbGV4LXN0YXJ0KTtcbn1cblxuLiN7JHJlZmxleC1wcmVmaXh9YWxpZ24tc2VsZi1lbmQge1xuICAgIEBpbmNsdWRlIGFsaWduLXNlbGYoZmxleC1lbmQpO1xuICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG59XG5cbi4jeyRyZWZsZXgtcHJlZml4fWFsaWduLXNlbGYtY2VudGVyIHtcbiAgICBAaW5jbHVkZSBhbGlnbi1zZWxmKGNlbnRlcik7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLiN7JHJlZmxleC1wcmVmaXh9YWxpZ24tc2VsZi1iYXNlbGluZSB7XG4gICAgQGluY2x1ZGUgYWxpZ24tc2VsZihiYXNlbGluZSk7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8ganVzdGlmeS1jb250ZW50IChtYWluIGF4aXMpXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4uI3skcmVmbGV4LXByZWZpeH1qdXN0aWZ5LXN0YXJ0IHtcbiAgICBAaW5jbHVkZSBqdXN0aWZ5LWNvbnRlbnQtc3RhcnQoKTtcblxuICAgIEBpZiAkbGVnYWN5LXN1cHBvcnQgPT0gdHJ1ZSB7XG4gICAgICAgICYuZ3JpZCB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uI3skcmVmbGV4LXByZWZpeH1qdXN0aWZ5LWVuZCB7XG4gICAgQGluY2x1ZGUganVzdGlmeS1jb250ZW50LWVuZCgpO1xuXG4gICAgQGlmICRsZWdhY3ktc3VwcG9ydCA9PSB0cnVlIHtcbiAgICAgICAgJi5ncmlkIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgLW1vei10ZXh0LWFsaWduLWxhc3Q6IHJpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbi1sYXN0OiByaWdodDtcblxuICAgICAgICAgICAgW2NsYXNzKj1cIiN7JHJlZmxleC1wcmVmaXh9Y29sLVwiXSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgcmVzZXQtdGV4dC1hbGlnbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4uI3skcmVmbGV4LXByZWZpeH1qdXN0aWZ5LWNlbnRlciB7XG4gICAgQGluY2x1ZGUganVzdGlmeS1jb250ZW50LWNlbnRlcigpO1xuXG4gICAgQGlmICRsZWdhY3ktc3VwcG9ydCA9PSB0cnVlIHtcbiAgICAgICAgJi5ncmlkIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIC1tb3otdGV4dC1hbGlnbi1sYXN0OiBjZW50ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduLWxhc3Q6IGNlbnRlcjtcblxuICAgICAgICAgICAgW2NsYXNzKj1cIiN7JHJlZmxleC1wcmVmaXh9Y29sLVwiXSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgcmVzZXQtdGV4dC1hbGlnbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4uI3skcmVmbGV4LXByZWZpeH1qdXN0aWZ5LXNwYWNlLWJldHdlZW4ge1xuICAgIEBpbmNsdWRlIGp1c3RpZnktY29udGVudC1zcGFjZS1iZXR3ZWVuKCk7XG5cbiAgICBAaWYgJGxlZ2FjeS1zdXBwb3J0ID09IHRydWUge1xuICAgICAgICAmLmdyaWQge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjoganVzdGlmeTtcbiAgICAgICAgICAgIC1tb3otdGV4dC1hbGlnbi1sYXN0OiBqdXN0aWZ5O1xuICAgICAgICAgICAgdGV4dC1hbGlnbi1sYXN0OiBqdXN0aWZ5O1xuXG4gICAgICAgICAgICBbY2xhc3MqPVwiI3skcmVmbGV4LXByZWZpeH1jb2wtXCJdIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSByZXNldC10ZXh0LWFsaWduKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi4jeyRyZWZsZXgtcHJlZml4fWp1c3RpZnktc3BhY2UtYXJvdW5kIHtcbiAgICBAaW5jbHVkZSBqdXN0aWZ5LWNvbnRlbnQtc3BhY2UtYXJvdW5kKCk7XG5cbiAgICBAaWYgJGxlZ2FjeS1zdXBwb3J0ID09IHRydWUge1xuICAgICAgICAmLmdyaWQge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjoganVzdGlmeTtcbiAgICAgICAgICAgIC1tb3otdGV4dC1hbGlnbi1sYXN0OiBqdXN0aWZ5O1xuICAgICAgICAgICAgdGV4dC1hbGlnbi1sYXN0OiBqdXN0aWZ5O1xuXG4gICAgICAgICAgICBbY2xhc3MqPVwiI3skcmVmbGV4LXByZWZpeH1jb2wtXCJdIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSByZXNldC10ZXh0LWFsaWduKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBjb3NtZXRpYyBncmlkIG1vZGlmaWVyc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gUmVtb3ZlcyBpbnRlcm5hbCBwYWRkaW5nIGZyb20gYWxsIGNvbHVtbnMgaW4gYSBncmlkXG4uI3skcmVmbGV4LXByZWZpeH1ncmlkLWJsZWVkIHtcbiAgICBbY2xhc3MqPVwiI3skcmVmbGV4LXByZWZpeH1jb2wtXCJdIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBjb2wgbW9kaWZpZXJzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBNYWtlcyBhIGNvbHVtbiBlbGVtZW50IGludG8gYSBmbGV4Ym94IGNvbHVtblxuLiN7JHJlZmxleC1wcmVmaXh9Y29sLWdyaWQge1xuICAgIEBpbmNsdWRlIGRpc3BsYXktZmxleCgpO1xuICAgIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKGNvbHVtbik7XG5cbiAgICAmLiN7JHJlZmxleC1wcmVmaXh9ZGlyZWN0aW9uLXJvdyB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKHJvdyk7XG4gICAgfVxufVxuXG4vLyBSZW1vdmVzIGludGVybmFsIHBhZGRpbmcgZnJvbSBhbGwgY29sdW1ucyBpbiBhIGdyaWRcbi4jeyRyZWZsZXgtcHJlZml4fWNvbC1ibGVlZCB7XG4gICAgcGFkZGluZzogMDtcbn1cblxuLy8gUmVtb3ZlcyBob3Jpem9udGFsIHBhZGRpbmcgZnJvbSBhbGwgY29sdW1ucyBpbiBhIGdyaWRcbi4jeyRyZWZsZXgtcHJlZml4fWNvbC1ibGVlZC14IHtcbiAgICBwYWRkaW5nOiAkcmVmbGV4LWdyaWQtc3BhY2luZyAwO1xufVxuXG4vLyBSZW1vdmVzIHZlcnRpY2FsIHBhZGRpbmcgZnJvbSBhbGwgY29sdW1ucyBpbiBhIGdyaWRcbi4jeyRyZWZsZXgtcHJlZml4fWNvbC1ibGVlZC15IHtcbiAgICBwYWRkaW5nOiAwICRyZWZsZXgtZ3JpZC1zcGFjaW5nO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gY29sLWdyaWQgY29udGVudHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi4jeyRyZWZsZXgtcHJlZml4fWZsZXgtaW1nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBAaW5jbHVkZSBmbGV4KDAsIDAsIGF1dG8pO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgQGlmICRsZWdhY3ktc3VwcG9ydCA9PSB0cnVlIHtcbiAgICAgICAgKndpZHRoOiBhdXRvO1xuICAgIH1cbn1cblxuLiN7JHJlZmxleC1wcmVmaXh9ZmxleC1mb290ZXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi10b3A6IGF1dG87XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgID4gOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFJlc3BvbnNpdmUgdmlzaWJpbGl0eSBtb2RpZmllcnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBpbmNsdWRlIHJlc3BvbnNpdmUtdmlzaWJpbGl0eS1oZWxwZXJzKCk7XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogSGVscGVycyAtIEZvY3VzIFZpc2libGVcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4vKipcbiAqIEZvY3VzIFZpc2libGVcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9XSUNHL2ZvY3VzLXZpc2libGVcbiAqIE92ZXJyaWRlIGJhc2UgZm9jdXMgc3R5bGVzIGZvciBtb3VzZSBhbmQgdG91Y2ggaW50ZXJhY3Rpb25zXG4gKi9cbkBtaXhpbiBmb2N1cy12aXNpYmxlKCkge1xuICAuanMtZm9jdXMtdmlzaWJsZSAmIHtcbiAgICAmOm5vdCguZm9jdXMtdmlzaWJsZSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogSGVscGVycyAtIEZvbnQgU21vb3RoaW5nXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuLyoqIFxuICogRm9udCBTbW9vdGhpbmdcbiAqIEVuYWJsZXMgZm9udCBzbW9vdGhpbmcgZm9yIGNhcGFibGUgYnJvd3NlcnMuXG4gKiBPcHRpb25hbGx5IGZvcmNlIGZvbnQtc21vb3RoaW5nIG9uIG5vbi1yZXRpbmEgZGV2aWNlcy5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gJGZvcmNlIFtmYWxzZV1cbiAqIEByZXR1cm4ge3N0cmluZ31cbiAqL1xuQG1peGluIGZvbnQtc21vb3RoaW5nKCRmb3JjZTogZmFsc2UpIHtcbiAgQGlmICRmb3JjZSA9PSB0cnVlIHtcbiAgICAtbW96LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgfSBAZWxzZSB7XG4gICAgQG1lZGlhICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSkge1xuICAgICAgLW1vei1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIEhlbHBlcnMgLSBHbG9iYWwgbWl4aW5zXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuLy8gUmVzZXQgPGxpPiBlbGVtZW50c1xuQG1peGluIGxpLXJlc2V0IHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuXG4gIGxpIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG59XG5cbi8vIFJlbW92ZSB0ZXh0IGZyb20gZWxlbWVudHNcbkBtaXhpbiBybS10ZXh0IHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgdGV4dC1pbmRlbnQ6IC05OTk5cHg7XG59XG5cbi8vIEJhY2tncm91bmQgaW1hZ2VzXG5AbWl4aW4gYmctaW1nKCRzaXplKSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogJHNpemU7XG59XG5cbi8vIElFIDkrIG9ubHlcbkBtaXhpbiBpZSgkcHJvcGVydHksICR2YWx1ZSkge1xuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAwXFwwKSBhbmQgKG1pbi1yZXNvbHV0aW9uOiArNzJkcGkpIHtcbiAgICAjeyRwcm9wZXJ0eX06ICN7JHZhbHVlfTtcbiAgfVxufVxuXG5AbWl4aW4gYnRuUmVzZXQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAwO1xuICBhcHBlYXJhbmNlOiBub25lO1xuICBwYWRkaW5nOiAwO1xufVxuXG5AbWl4aW4gbGlua1Jlc2V0IHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcblxuICAmOjphZnRlciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBIZWxwZXJzIC0gVGFibGVcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4vKipcbiAqIFJlc3BvbnNpdmUgVGFibGVcbiAqIENyZWF0ZXMgYSByZXNwb25zaXZlIHRhYmxlXG4gKiBBY2NlcHRzIGEgbGlzdCBvZiBoZWFkZXJzIHRvIHJlcGxhY2UgbWFpbiBcbiAqIHRhYmxlIGhlYWRlcnMgb24gbW9iaWxlLlxuICogQHBhcmFtIHttYXB9ICRoZWFkZXJzXG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cbkBtaXhpbiByZXNwb25zaXZlLXRhYmxlKCRoZWFkZXJzOiAoKSkge1xuICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIHRhYmxlLFxuICB0aGVhZCxcbiAgdGJvZHksXG4gIHRoLFxuICB0ZCxcbiAgdHIge1xuICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG5cbiAgdGhlYWQge1xuICAgIHRyIHtcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogLTk5OTlweDtcbiAgICAgICAgbGVmdDogLTk5OTlweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB0ciB7XG4gICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICBtYXJnaW4tdG9wOiAtMXB4O1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLWJsYWNrO1xuICAgICAgYm9yZGVyLXdpZHRoOiAxcHggMDtcbiAgICAgIHBhZGRpbmc6IHNpemUoMzBweCkgMDtcbiAgICB9XG5cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHRkIHtcbiAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG1hcmdpbi10b3A6IHNpemUoMTZweCk7XG4gICAgfVxuXG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSGVhZGVyc1xuICAgKi9cbiAgQGVhY2ggJGhlYWRlciBpbiAkaGVhZGVycyB7XG4gICAgJGk6IGluZGV4KCRoZWFkZXJzLCAkaGVhZGVyKTtcblxuICAgIHRkOm50aC1vZi10eXBlKCN7JGl9KTo6YmVmb3JlIHtcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICBjb250ZW50OiAkaGVhZGVyO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIENvbmZpZyAtIEZvbnRzXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuLy8gQGltcG9ydCB1cmwoJ2h0dHBzOi8vZmFzdC5mb250cy5uZXQvbHQvMS5jc3M/YXBpVHlwZT1jc3MmYz0wM2FkYjM1ZC0xYmEzLTRiMGUtOGExOS02ZjFmNzRjNmU5OGMmZm9udGlkcz03MjEyODEsNzIxMjY2LDcyMTI2MycpO1xuLy8gQGltcG9ydCB1cmwoXCJodHRwczovL2Zhc3QuZm9udHMubmV0L2x0LzEuY3NzP2FwaVR5cGU9Y3NzJmM9OGU4M2NiMTEtODgxYi00ODUxLWJmYTYtNjM1Mzc5ZjFhZmJiJmZvbnRpZHM9NjA4MDgzNiw2MDgwODUyLDYwODA4NzBcIik7XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0F2ZW5pciBOZXh0IFdvcmxkIFcwNSBSZWd1bGFyJztcbiAgc3JjOnVybChcIi4uL2ZvbnQvNjA4MDgzNi8wOWFiMDYyNi1iYjQ1LTQ2NTAtYWNjOC0wMTgyZDY5M2RmMDIud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksXG4gIHVybChcIi4uL2ZvbnQvNjA4MDgzNi8xMzk3ZTgxMi05MzA3LTQyNjctOGE5OS04YTIyZWE3YzY5Yzcud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0F2ZW5pciBOZXh0IFdvcmxkIFcwNSBJdGFsaWMnO1xuICBzcmM6dXJsKFwiLi4vZm9udC82MDgwOTk0L2I5YzViODM5LWRiNTYtNDQxOS04ZmNiLTZhYjY2MWJhYmIxZC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSxcbiAgdXJsKFwiLi4vZm9udC82MDgwOTk0Lzk1MGI1Nzg4LWNmZGQtNDhkOS05ZDhhLTUyMzU2MDA0MmM1Yi53b2ZmXCIpIGZvcm1hdChcIndvZmZcIik7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnQXZlbmlyIE5leHQgV29ybGQgVzA1IEJvbGQnO1xuICBzcmM6dXJsKFwiLi4vZm9udC82MDgwODcwLzA3NGRmYzcwLTY0MzYtNGY0Yi05MzE0LWQxZTY5Mjg3YWVhMS53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSxcbiAgdXJsKFwiLi4vZm9udC82MDgwODcwLzBjNGNlZmNhLTNiNzgtNDRiOS04YjJiLTY2N2JiYWJmZmUzOC53b2ZmXCIpIGZvcm1hdChcIndvZmZcIik7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnQXZlbmlyTmV4dExUVzAxLVJlZ3VsYXInO1xuICBzcmM6IHVybCgnLi4vZm9udC8yY2Q1NTU0Ni1lYzAwLTRhZjktYWVjYS00YTNjZDE4NmRhNTMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksXG4gICAgdXJsKCcuLi9mb250LzFlOTg5MmMwLTY5MjctNDQxMi05ODc0LTFiODI4MDFiYTQ3YS53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbn1cblxuLy8gNzIxMjY2XG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdBdmVuaXJOZXh0TFRXMDEtSXRhbGljJztcbiAgc3JjOiB1cmwoJy4uL2ZvbnQvNzM3N2RiZTYtZjExYS00YTA1LWIzM2MtYmM4Y2UxZjYwZjg0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICAgIHVybCgnLi4vZm9udC85MmI2NmRiZC00MjAxLTRhYzItYTYwNS00ZDRmZmM4NzA1Y2Mud29mZicpIGZvcm1hdCgnd29mZicpO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG59XG5cbi8vIDcyMTI4MVxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnQXZlbmlyIE5leHQgTFQgVzAxIEJvbGQnO1xuICBzcmM6IHVybCgnLi4vZm9udC8xNGM3MzcxMy1lNGRmLTRkYmEtOTMzYi0wNTdmZWVhYzhkZDEud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksXG4gICAgdXJsKCcuLi9mb250L2I4ZTkwNmExLWY1ZTgtNGJmMS04ZTgwLTgyYzY0NmNhNGQ1Zi53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnR1QgQW1lcmljYSc7XG4gIHNyYzogdXJsKCcuLi9mb250L0dULUFtZXJpY2EtQ29tcHJlc3NlZC1Cb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICAgIHVybCgnLi4vZm9udC9HVC1BbWVyaWNhLUNvbXByZXNzZWQtQm9sZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBDb25maWcgLSBWYXJzXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuOnJvb3Qge1xuICAvLyBDb2xvdXJzXG4gIC0tYy1wcmltYXJ5OiAjMGUzMDM0O1xuICAtLWMtc2Vjb25kYXJ5OiB2YXIoLS1jLXBpbmspO1xuICAtLWMtd2hpdGU6ICNmZmZmZmY7XG4gIC0tYy1ncmV5TGlnaHQ6ICNmM2YyZjE7XG4gIC0tYy1ncmV5OiAjZDBjY2M3O1xuICAtLWMtdGVhbDogIzAwYzdiMTtcbiAgLS1jLXllbGxvdzogI2ZmYjgxYztcbiAgLS1jLXB1cnBsZTogI2FmOGVlMDtcbiAgLS1jLXBpbms6ICNmZmFiYmE7XG4gIC0tYy1tYWdlbnRhOiAjZWI0MjY0O1xuICAtLWMtcmVkOiAjRDUyMzRBO1xuICAtLWMtYmx1ZTogI2I0ZTRmNTtcbiAgLS1jLW1hcm9vbjogIzY0MGEzMjtcbiAgLS1jLWJsYWNrOiAjMDAwO1xuXG4gIC8vIFR5cG9ncmFwaHlcbiAgLS1mb250Qm9keTogJ0F2ZW5pck5leHRMVFcwMS1SZWd1bGFyJywgJ0F2ZW5pciBOZXh0IFdvcmxkIFcwNSBSZWd1bGFyJyxcbiAgICAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIFJvYm90bywgT3h5Z2VuLCBVYnVudHUsXG4gICAgQ2FudGFyZWxsLCAnT3BlbiBTYW5zJywgJ0hlbHZldGljYSBOZXVlJywgc2Fucy1zZXJpZjtcbiAgLS1mb250Qm9sZDogJ0F2ZW5pciBOZXh0IExUIFcwMSBCb2xkJywgJ0F2ZW5pciBOZXh0IFdvcmxkIFcwNSBCb2xkJyxcbiAgICAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIFJvYm90bywgT3h5Z2VuLCBVYnVudHUsXG4gICAgQ2FudGFyZWxsLCAnT3BlbiBTYW5zJywgJ0hlbHZldGljYSBOZXVlJywgc2Fucy1zZXJpZjtcbiAgLS1mb250SXRhbGljOiAnQXZlbmlyTmV4dExUVzAxLUl0YWxpYycsICdBdmVuaXIgTmV4dCBXb3JsZCBXMDUgSXRhbGljJyxcbiAgICAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIFJvYm90bywgT3h5Z2VuLCBVYnVudHUsXG4gICAgQ2FudGFyZWxsLCAnT3BlbiBTYW5zJywgJ0hlbHZldGljYSBOZXVlJywgc2Fucy1zZXJpZjtcbiAgLS1mb250VGl0bGU6ICdHVCBBbWVyaWNhJywgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLFxuICAgIFJvYm90bywgT3h5Z2VuLCBVYnVudHUsIENhbnRhcmVsbCwgJ09wZW4gU2FucycsICdIZWx2ZXRpY2EgTmV1ZScsIHNhbnMtc2VyaWY7XG4gIC0tZm9udFNpemU6IDExMi41JTtcbiAgLS1mb250U21hbGw6IDcwJTtcbiAgLS1saW5lSGVpZ2h0OiAxLjU7XG5cbiAgLy8gTGF5b3V0XG4gIC0tY29udGFpbmVyV2lkdGg6IDE4MDJweDtcbiAgLS1jb2xzLTM6IGNhbGModmFyKC0tY29udGFpbmVyV2lkdGgpICogMC4yNSk7XG4gIC0tY29scy02OiBjYWxjKHZhcigtLWNvbnRhaW5lcldpZHRoKSAqIDAuNSk7XG4gIC0tY29scy04OiBjYWxjKHZhcigtLWNvbnRhaW5lcldpZHRoKSAqIDAuNjY2NjY2NjY2Nyk7XG4gIC0tY29scy0xMDogY2FsYyh2YXIoLS1jb250YWluZXJXaWR0aCkgKiAwLjgzMzMzMzMzMzMzMyk7XG4gIC0tdmFyaWFibGVIZWlnaHRMaW1pdDogY2xhbXAoMjB2aCwgNjB2dywgNjB2aCk7XG4gIC0taGVpZ2h0TGltaXQ6IDcwMHB4O1xuICAtLWd1dHRlcjogMTVweDtcblxuICAvLyBBbmltYXRpb25zXG4gIC0tZWFzaW5nOiBjdWJpYy1iZXppZXIoMC44MywgMCwgMC4xNywgMSk7XG4gIC0tdHJhbnNpdGlvbjogMC4zcyB2YXIoLS1lYXNpbmcpO1xuXG4gIC0tbGluZUxlbmd0aDogNjAwcHg7XG59XG5cbi8qKlxuKiBCcmVha3BvaW50cyBmb3IgQGluY2x1ZGUtbWVkaWFcbiovXG4kYnJlYWtwb2ludHM6IChcbiAgeHhzOiAzNjBweCxcbiAgeHM6IDU3NnB4LFxuICBzbTogNzY4cHgsXG4gIG1kOiA5OTJweCxcbiAgbGc6IDEyMDBweCxcbiAgeGxnOiAxNjAwcHgsXG4pO1xuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIEJhc2UgLSBEZWZhdWx0c1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbi5ncmlkIHtcbiAgbWF4LXdpZHRoOiB2YXIoLS1jb250YWluZXJXaWR0aCk7XG59XG5cbi5jb250YWluZXItZnVsbCA+IC5ncmlkIHtcbiAgbWF4LXdpZHRoOiBub25lO1xufVxuXG51bC5tZW51LFxudWwucGxhaW4ge1xuICBAaW5jbHVkZSBsaS1yZXNldDtcbn1cblxuaW1nIHtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSB2YXIoLS10cmFuc2l0aW9uKTtcblxuICAmLmxhenkge1xuICAgIG9wYWNpdHk6IDA7XG5cbiAgICBAbWVkaWEgbm90IGFsbCBhbmQgKG1pbi1yZXNvbHV0aW9uOiAwLjAwMWRwY20pIHtcbiAgICAgIEBzdXBwb3J0cyAoLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lKSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJi5sb2FkZWQge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuLnJlc3RyaWN0ZWQtaGVpZ2h0IHtcbiAgbWF4LWhlaWdodDogdmFyKC0taGVpZ2h0TGltaXQpO1xuICB3aWR0aDogYXV0bztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwIGF1dG87XG59XG5cbmFbZGF0YS1nYWxsZXJ5XSB7XG4gIGN1cnNvcjogem9vbS1pbjtcblxuICAmOmhvdmVyIHtcbiAgICBvcGFjaXR5OiAwLjg1O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxufVxuXG4uaGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB2aXNpYmlsaXR5OiBoaWRkZW4gIWltcG9ydGFudDtcbn1cblxuLy8gS2VlcCB2aWRlbyByYXRpbyBmb3IgZmx1aWQgd2lkdGhzXG4udmlkZW8tY29udGFpbmVyLFxuLm1lZGlhLXZpbWVvLXZpZGVvIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLWJvdHRvbTogNTYuMjUlO1xuICBwYWRkaW5nLXRvcDogMjVweDtcbiAgaGVpZ2h0OiAwO1xuXG4gIGlmcmFtZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxufVxuXG4vLyBWaWRlbyBDYXB0aW9uc1xuLnZpZGVvLXdyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi52aWRlby1jYXB0aW9uIHtcbiAgbWFyZ2luLXRvcDogLjVyZW07XG4gIGZvbnQtc2l6ZTogdmFyKC0tZm9udFNtYWxsKTtcbn1cblxuLy8gU291bmNsb3VkXG4ubWVkaWEtc291bmRjbG91ZC1hdWRpbyBpZnJhbWUge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LWhlaWdodDogMTUwcHg7XG59XG5cbmZpZ2NhcHRpb24ge1xuICBtYXJnaW4tdG9wOiAwLjVyZW07XG4gIGZvbnQtc2l6ZTogOTAlO1xuICAvLyBmb250LWZhbWlseTogdmFyKC0tZm9udEl0YWxpYyk7XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogQmFzZSAtIFR5cG9ncmFwaHlcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4vKipcbiAqIENvbmZpZ1xuICovXG5cbi8qKlxuICogSGVhZGluZ1xuICovXG5oMSxcbi5oMSxcbmgyLFxuLmgyLFxuaDMsXG4uaDMsXG5oNCxcbi5oNCxcbmg1LFxuLmg1LFxuaDYsXG4uaDYge1xuICBtYXJnaW4tdG9wOiAwO1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udFRpdGxlKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cblxuaDEsXG4uaDEge1xuICBsaW5lLWhlaWdodDogMS4xNTtcbiAgZm9udC1zaXplOiBjbGFtcCgyLjVyZW0sIDV2dywgNXJlbSk7XG59XG5cbmgyLFxuLmgyIHtcbiAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gIGZvbnQtc2l6ZTogY2xhbXAoMS44cmVtLCAyLjV2dywgM3JlbSk7XG59XG5cbmgzLFxuLmgzIHtcbiAgbGluZS1oZWlnaHQ6IDEuMztcbiAgZm9udC1zaXplOiBjbGFtcCgxLjI1cmVtLCAyLjV2dywgMS41cmVtKTtcbn1cblxuaDQsXG4uaDQsXG5oNSxcbi5oNSxcbmg2LFxuLmg2IHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnRCb2xkKTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgZm9udC1zaXplOiAxcmVtO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc8eHMnKSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICB9XG59XG5cbi5jZW50ZXJlZCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1hbGlnbi1sYXN0OiBjZW50ZXI7XG4gICYtcGFkZGluZy1ib3R0b20ge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB0ZXh0LWFsaWduLWxhc3Q6IGNlbnRlcjtcbiAgICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbiAgfVxufVxuXG4uYm9yZGVyIHtcbiAgJi1ib3R0b20ge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jLXByaW1hcnkpO1xuICAgIHBhZGRpbmctYm90dG9tOiAxcmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICB9XG4gIH1cbiAgJi10b3Age1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jLXByaW1hcnkpO1xuICAgIHBhZGRpbmctdG9wOiAxcmVtO1xuICAgIG1hcmdpbi10b3A6IDJyZW07XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBQYXJhZ3JhcGhzXG4gKi9cbnAge1xuICBtYXJnaW46IDAgMCAxLjVyZW07XG5cbiAgJjpmaXJzdC1vZi10eXBlIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG5cbiAgJjpsYXN0LW9mLXR5cGUge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLyoqXG4gKiBMaXN0c1xuICovXG51bCxcbm9sIHtcbiAgbWFyZ2luOiAxLjVyZW0gMDtcbiAgbGlzdC1zdHlsZS1wb3NpdGlvbjogaW5zaWRlO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG59XG5cbi8qKlxuICogTGlua3NcbiAqL1xuYSxcbi5saW5rIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgdHJhbnNpdGlvbjogYWxsIHZhcigtLXRyYW5zaXRpb24pO1xuICAvLyBib3JkZXItYm90dG9tOiAxcHggc29saWQgY3VycmVudENvbG9yO1xuICAvLyBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgLy8gJjo6YWZ0ZXIge1xuICAvLyAgIGNvbnRlbnQ6ICcnO1xuICAvLyAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgLy8gICBib3R0b206IDA7XG4gIC8vICAgbGVmdDogMDtcbiAgLy8gICBkaXNwbGF5OiBibG9jaztcbiAgLy8gICBoZWlnaHQ6IDJweDtcbiAgLy8gICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLy8gICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLXRyYW5zaXRpb24pO1xuICAvLyAgIHdpZHRoOiAxMDAlO1xuICAvLyB9XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjb2xvcjogY3VycmVudENvbG9yO1xuXG4gICAgLy8gJjo6YWZ0ZXIge1xuICAgIC8vICAgYmFja2dyb3VuZC1jb2xvcjogY3VycmVudENvbG9yO1xuICAgIC8vIH1cbiAgfVxuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IDNweCBkYXNoZWQgY3VycmVudENvbG9yO1xuXG4gICAgQGluY2x1ZGUgZm9jdXMtdmlzaWJsZSgpIHtcbiAgICAgIG91dGxpbmU6IDA7XG4gICAgfVxuICB9XG5cbiAgJi5uby1saW5rIHtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgfVxufVxuXG4ubm8tY2xpY2sge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG46OnNlbGVjdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtc2Vjb25kYXJ5KTtcbiAgY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG59XG5cbi8qKlxuICogQnV0dG9uc1xuICovXG5idXR0b24ge1xuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiAzcHggZGFzaGVkIGN1cnJlbnRDb2xvcjtcblxuICAgIEBpbmNsdWRlIGZvY3VzLXZpc2libGUoKSB7XG4gICAgICBvdXRsaW5lOiAwO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIElubGluZVxuICovXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udEJvbGQpO1xufVxuXG5lbSB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250SXRhbGljKTtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG5zcGFuIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgbGV0dGVyLXNwYWNpbmc6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbn1cblxuYWRkcmVzcyB7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXdlaWdodDogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIGxldHRlci1zcGFjaW5nOiBpbmhlcml0O1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuc21hbGwge1xuICBmb250LXNpemU6IDkwJTtcbn1cblxuaHIge1xuICBib3JkZXI6IHNvbGlkIHZhcigtLWMtcHJpbWFyeSk7XG4gIGJvcmRlci13aWR0aDogMCAwIDFweCAwO1xuICB3aWR0aDogMTAwJTtcbn1cblxuZmlndXJlIHtcbiAgbWFyZ2luOiAwO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLyAgICAgXyAgICAgICAgICAgIF8gICAgICAgICAgIF8gICAgICAgICAgICAgICAgICAgICAgICAgICBfIF9cbi8vICAgIChfKSAgICAgICAgICB8IHwgICAgICAgICB8IHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAoXylcbi8vICAgICBfIF8gX18gICBfX198IHxfICAgXyAgX198IHwgX19fICAgXyBfXyBfX18gICBfX18gIF9ffCB8XyAgX18gX1xuLy8gICAgfCB8ICdfIFxcIC8gX198IHwgfCB8IHwvIF9gIHwvIF8gXFwgfCAnXyBgIF8gXFwgLyBfIFxcLyBfYCB8IHwvIF9gIHxcbi8vICAgIHwgfCB8IHwgfCAoX198IHwgfF98IHwgKF98IHwgIF9fLyB8IHwgfCB8IHwgfCAgX18vIChffCB8IHwgKF98IHxcbi8vICAgIHxffF98IHxffFxcX19ffF98XFxfXyxffFxcX18sX3xcXF9fX3wgfF98IHxffCB8X3xcXF9fX3xcXF9fLF98X3xcXF9fLF98XG4vL1xuLy8gICAgICBTaW1wbGUsIGVsZWdhbnQgYW5kIG1haW50YWluYWJsZSBtZWRpYSBxdWVyaWVzIGluIFNhc3Ncbi8vICAgICAgICAgICAgICAgICAgICAgICAgdjEuNC45XG4vL1xuLy8gICAgICAgIGh0dHBzOi8vZWR1YXJkb2JvdWNhcy5naXRodWIuaW8vaW5jbHVkZS1tZWRpYVxuLy9cbi8vICAgICAgICAgQXV0aG9yczogRWR1YXJkbyBCb3VjYXMgKEBlZHVhcmRvYm91Y2FzKVxuLy8gICAgICAgICAgICAgICAgICBLaXR0eSBHaXJhdWRlbCAoQGtpdHR5Z2lyYXVkZWwpXG4vL1xuLy8gICAgICBUaGlzIHByb2plY3QgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNSVQgbGljZW5zZVxuLy8vL1xuLy8vIGluY2x1ZGUtbWVkaWEgbGlicmFyeSBwdWJsaWMgY29uZmlndXJhdGlvblxuLy8vIEBhdXRob3IgRWR1YXJkbyBCb3VjYXNcbi8vLyBAYWNjZXNzIHB1YmxpY1xuLy8vL1xuXG5cbi8vL1xuLy8vIENyZWF0ZXMgYSBsaXN0IG9mIGdsb2JhbCBicmVha3BvaW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzaW5nbGUgYnJlYWtwb2ludCB3aXRoIHRoZSBsYWJlbCBgcGhvbmVgXG4vLy8gICRicmVha3BvaW50czogKCdwaG9uZSc6IDMyMHB4KTtcbi8vL1xuJGJyZWFrcG9pbnRzOiAoXG4gICdwaG9uZSc6IDMyMHB4LFxuICAndGFibGV0JzogNzY4cHgsXG4gICdkZXNrdG9wJzogMTAyNHB4XG4pICFkZWZhdWx0O1xuXG5cbi8vL1xuLy8vIENyZWF0ZXMgYSBsaXN0IG9mIHN0YXRpYyBleHByZXNzaW9ucyBvciBtZWRpYSB0eXBlc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzaW5nbGUgbWVkaWEgdHlwZSAoc2NyZWVuKVxuLy8vICAkbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJzogJ3NjcmVlbicpO1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzdGF0aWMgZXhwcmVzc2lvbiB3aXRoIGxvZ2ljYWwgZGlzanVuY3Rpb24gKE9SIG9wZXJhdG9yKVxuLy8vICAkbWVkaWEtZXhwcmVzc2lvbnM6IChcbi8vLyAgICAncmV0aW5hMngnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSdcbi8vLyAgKTtcbi8vL1xuJG1lZGlhLWV4cHJlc3Npb25zOiAoXG4gICdzY3JlZW4nOiAnc2NyZWVuJyxcbiAgJ3ByaW50JzogJ3ByaW50JyxcbiAgJ2hhbmRoZWxkJzogJ2hhbmRoZWxkJyxcbiAgJ2xhbmRzY2FwZSc6ICcob3JpZW50YXRpb246IGxhbmRzY2FwZSknLFxuICAncG9ydHJhaXQnOiAnKG9yaWVudGF0aW9uOiBwb3J0cmFpdCknLFxuICAncmV0aW5hMngnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSwgKG1pbi1yZXNvbHV0aW9uOiAyZHBweCknLFxuICAncmV0aW5hM3gnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMyksIChtaW4tcmVzb2x1dGlvbjogMzUwZHBpKSwgKG1pbi1yZXNvbHV0aW9uOiAzZHBweCknXG4pICFkZWZhdWx0O1xuXG5cbi8vL1xuLy8vIERlZmluZXMgYSBudW1iZXIgdG8gYmUgYWRkZWQgb3Igc3VidHJhY3RlZCBmcm9tIGVhY2ggdW5pdCB3aGVuIGRlY2xhcmluZyBicmVha3BvaW50cyB3aXRoIGV4Y2x1c2l2ZSBpbnRlcnZhbHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgcGl4ZWxzIGlzIGRlZmluZWQgYXMgYDFgIGJ5IGRlZmF1bHRcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4xMjhweCcpIHt9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMTI5cHgpIHt9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIGVtcyBpcyBkZWZpbmVkIGFzIGAwLjAxYCBieSBkZWZhdWx0XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+MjBlbScpIHt9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMjAuMDFlbSkge31cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgcmVtcyBpcyBkZWZpbmVkIGFzIGAwLjFgIGJ5IGRlZmF1bHQsIHRvIGJlIHVzZWQgd2l0aCBgZm9udC1zaXplOiA2Mi41JTtgXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+Mi4wcmVtJykge31cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAyLjFyZW0pIHt9XG4vLy9cbiR1bml0LWludGVydmFsczogKFxuICAncHgnOiAxLFxuICAnZW0nOiAwLjAxLFxuICAncmVtJzogMC4xLFxuICAnJzogMFxuKSAhZGVmYXVsdDtcblxuLy8vXG4vLy8gRGVmaW5lcyB3aGV0aGVyIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXMgaXMgYXZhaWxhYmxlLCB1c2VmdWwgZm9yIGNyZWF0aW5nIHNlcGFyYXRlIHN0eWxlc2hlZXRzXG4vLy8gZm9yIGJyb3dzZXJzIHRoYXQgZG9uJ3Qgc3VwcG9ydCBtZWRpYSBxdWVyaWVzLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIERpc2FibGVzIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXNcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgLmZvbyB7XG4vLy8gICAgY29sb3I6IHRvbWF0bztcbi8vLyAgfVxuLy8vXG4kaW0tbWVkaWEtc3VwcG9ydDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vXG4vLy8gU2VsZWN0cyB3aGljaCBicmVha3BvaW50IHRvIGVtdWxhdGUgd2hlbiBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzIGlzIGRpc2FibGVkLiBNZWRpYSBxdWVyaWVzIHRoYXQgc3RhcnQgYXQgb3Jcbi8vLyBpbnRlcmNlcHQgdGhlIGJyZWFrcG9pbnQgd2lsbCBiZSBkaXNwbGF5ZWQsIGFueSBvdGhlcnMgd2lsbCBiZSBpZ25vcmVkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnRcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgLmZvbyB7XG4vLy8gICAgY29sb3I6IHRvbWF0bztcbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBOT1Qgc2hvdyBiZWNhdXNlIGl0IGRvZXMgbm90IGludGVyY2VwdCB0aGUgZGVza3RvcCBicmVha3BvaW50XG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICd0YWJsZXQnO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj1kZXNrdG9wJykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBObyBvdXRwdXQgKi9cbi8vL1xuJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJyAhZGVmYXVsdDtcblxuLy8vXG4vLy8gU2VsZWN0cyB3aGljaCBtZWRpYSBleHByZXNzaW9ucyBhcmUgYWxsb3dlZCBpbiBhbiBleHByZXNzaW9uIGZvciBpdCB0byBiZSB1c2VkIHdoZW4gbWVkaWEgcXVlcmllc1xuLy8vIGFyZSBub3Qgc3VwcG9ydGVkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnQgYW5kIGNvbnRhaW5zIG9ubHkgYWNjZXB0ZWQgbWVkaWEgZXhwcmVzc2lvbnNcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xuLy8vICAkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJyk7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcsICdzY3JlZW4nKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gICAuZm9vIHtcbi8vLyAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgTk9UIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludCBidXQgY29udGFpbnMgYSBtZWRpYSBleHByZXNzaW9uIHRoYXQgaXMgbm90IGFjY2VwdGVkXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcbi8vLyAgJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicpO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAncmV0aW5hMngnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIE5vIG91dHB1dCAqL1xuLy8vXG4kaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJywgJ3BvcnRyYWl0JywgJ2xhbmRzY2FwZScpICFkZWZhdWx0O1xuXG4vLy8vXG4vLy8gQ3Jvc3MtZW5naW5lIGxvZ2dpbmcgZW5naW5lXG4vLy8gQGF1dGhvciBLaXR0eSBHaXJhdWRlbFxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vL1xuXG5cbi8vL1xuLy8vIExvZyBhIG1lc3NhZ2UgZWl0aGVyIHdpdGggYEBlcnJvcmAgaWYgc3VwcG9ydGVkXG4vLy8gZWxzZSB3aXRoIGBAd2FybmAsIHVzaW5nIGBmZWF0dXJlLWV4aXN0cygnYXQtZXJyb3InKWBcbi8vLyB0byBkZXRlY3Qgc3VwcG9ydC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVzc2FnZSAtIE1lc3NhZ2UgdG8gbG9nXG4vLy9cbkBmdW5jdGlvbiBpbS1sb2coJG1lc3NhZ2UpIHtcbiAgQGlmIGZlYXR1cmUtZXhpc3RzKCdhdC1lcnJvcicpIHtcbiAgICBAZXJyb3IgJG1lc3NhZ2U7XG4gIH0gQGVsc2Uge1xuICAgIEB3YXJuICRtZXNzYWdlO1xuICAgICRfOiBub29wKCk7XG4gIH1cblxuICBAcmV0dXJuICRtZXNzYWdlO1xufVxuXG5cbi8vL1xuLy8vIFdyYXBwZXIgbWl4aW4gZm9yIHRoZSBsb2cgZnVuY3Rpb24gc28gaXQgY2FuIGJlIHVzZWQgd2l0aCBhIG1vcmUgZnJpZW5kbHlcbi8vLyBBUEkgdGhhbiBgQGlmIGltLWxvZygnLi4nKSB7fWAgb3IgYCRfOiBpbS1sb2coJy4uJylgLiBCYXNpY2FsbHksIHVzZSB0aGUgZnVuY3Rpb25cbi8vLyB3aXRoaW4gZnVuY3Rpb25zIGJlY2F1c2UgaXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbiBhIGZ1bmN0aW9uXG4vLy8gYW5kIHVzZSB0aGUgbWl4aW4gZXZlcnl3aGVyZSBlbHNlIGJlY2F1c2UgaXQncyBtdWNoIG1vcmUgZWxlZ2FudC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVzc2FnZSAtIE1lc3NhZ2UgdG8gbG9nXG4vLy9cbkBtaXhpbiBsb2coJG1lc3NhZ2UpIHtcbiAgQGlmIGltLWxvZygkbWVzc2FnZSkge31cbn1cblxuXG4vLy9cbi8vLyBGdW5jdGlvbiB3aXRoIG5vIGBAcmV0dXJuYCBjYWxsZWQgbmV4dCB0byBgQHdhcm5gIGluIFNhc3MgMy4zXG4vLy8gdG8gdHJpZ2dlciBhIGNvbXBpbGluZyBlcnJvciBhbmQgc3RvcCB0aGUgcHJvY2Vzcy5cbi8vL1xuQGZ1bmN0aW9uIG5vb3AoKSB7fVxuXG4vLy9cbi8vLyBEZXRlcm1pbmVzIHdoZXRoZXIgYSBsaXN0IG9mIGNvbmRpdGlvbnMgaXMgaW50ZXJjZXB0ZWQgYnkgdGhlIHN0YXRpYyBicmVha3BvaW50LlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAgICRjb25kaXRpb25zICAtIE1lZGlhIHF1ZXJ5IGNvbmRpdGlvbnNcbi8vL1xuLy8vIEByZXR1cm4ge0Jvb2xlYW59IC0gUmV0dXJucyB0cnVlIGlmIHRoZSBjb25kaXRpb25zIGFyZSBpbnRlcmNlcHRlZCBieSB0aGUgc3RhdGljIGJyZWFrcG9pbnRcbi8vL1xuQGZ1bmN0aW9uIGltLWludGVyY2VwdHMtc3RhdGljLWJyZWFrcG9pbnQoJGNvbmRpdGlvbnMuLi4pIHtcbiAgJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludCk7XG5cbiAgQGlmIG5vdCAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSB7XG4gICAgQGlmIGltLWxvZygnYCN7JGltLW5vLW1lZGlhLWJyZWFrcG9pbnR9YCBpcyBub3QgYSB2YWxpZCBicmVha3BvaW50LicpIHt9XG4gIH1cblxuICBAZWFjaCAkY29uZGl0aW9uIGluICRjb25kaXRpb25zIHtcbiAgICBAaWYgbm90IG1hcC1oYXMta2V5KCRtZWRpYS1leHByZXNzaW9ucywgJGNvbmRpdGlvbikge1xuICAgICAgJG9wZXJhdG9yOiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkY29uZGl0aW9uKTtcbiAgICAgICRwcmVmaXg6IGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpO1xuICAgICAgJHZhbHVlOiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkY29uZGl0aW9uLCAkb3BlcmF0b3IpO1xuXG4gICAgICBAaWYgKCRwcmVmaXggPT0gJ21heCcgYW5kICR2YWx1ZSA8PSAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSkgb3JcbiAgICAgICAgICAoJHByZWZpeCA9PSAnbWluJyBhbmQgJHZhbHVlID4gJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUpIHtcbiAgICAgICAgQHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmIG5vdCBpbmRleCgkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnMsICRjb25kaXRpb24pIHtcbiAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiB0cnVlO1xufVxuXG4vLy8vXG4vLy8gUGFyc2luZyBlbmdpbmVcbi8vLyBAYXV0aG9yIEtpdHR5IEdpcmF1ZGVsXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy8vXG5cblxuLy8vXG4vLy8gR2V0IG9wZXJhdG9yIG9mIGFuIGV4cHJlc3Npb25cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCBvcGVyYXRvciBmcm9tXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gQW55IG9mIGA+PWAsIGA+YCwgYDw9YCwgYDxgLCBg4omlYCwgYOKJpGBcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRleHByZXNzaW9uKSB7XG4gIEBlYWNoICRvcGVyYXRvciBpbiAoJz49JywgJz4nLCAnPD0nLCAnPCcsICfiiaUnLCAn4omkJykge1xuICAgIEBpZiBzdHItaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xuICAgICAgQHJldHVybiAkb3BlcmF0b3I7XG4gICAgfVxuICB9XG5cbiAgLy8gSXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbnNpZGUgYSBmdW5jdGlvbiwgc28gd2UgaGF2ZSB0b1xuICAvLyByZWx5IG9uIHRoZSBgaW0tbG9nKC4uKWAgZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhlIGBsb2coLi4pYCBtaXhpbi4gQmVjYXVzZVxuICAvLyBmdW5jdGlvbnMgY2Fubm90IGJlIGNhbGxlZCBhbnl3aGVyZSBpbiBTYXNzLCB3ZSBuZWVkIHRvIGhhY2sgdGhlIGNhbGwgaW5cbiAgLy8gYSBkdW1teSB2YXJpYWJsZSwgc3VjaCBhcyBgJF9gLiBJZiBhbnlib2R5IGV2ZXIgcmFpc2UgYSBzY29waW5nIGlzc3VlIHdpdGhcbiAgLy8gU2FzcyAzLjMsIGNoYW5nZSB0aGlzIGxpbmUgaW4gYEBpZiBpbS1sb2coLi4pIHt9YCBpbnN0ZWFkLlxuICAkXzogaW0tbG9nKCdObyBvcGVyYXRvciBmb3VuZCBpbiBgI3skZXhwcmVzc2lvbn1gLicpO1xufVxuXG5cbi8vL1xuLy8vIEdldCBkaW1lbnNpb24gb2YgYW4gZXhwcmVzc2lvbiwgYmFzZWQgb24gYSBmb3VuZCBvcGVyYXRvclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IGRpbWVuc2lvbiBmcm9tXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yIGZyb20gYCRleHByZXNzaW9uYFxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIGB3aWR0aGAgb3IgYGhlaWdodGAgKG9yIHBvdGVudGlhbGx5IGFueXRoaW5nIGVsc2UpXG4vLy9cbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1kaW1lbnNpb24oJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xuICAkb3BlcmF0b3ItaW5kZXg6IHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcbiAgJHBhcnNlZC1kaW1lbnNpb246IHN0ci1zbGljZSgkZXhwcmVzc2lvbiwgMCwgJG9wZXJhdG9yLWluZGV4IC0gMSk7XG4gICRkaW1lbnNpb246ICd3aWR0aCc7XG5cbiAgQGlmIHN0ci1sZW5ndGgoJHBhcnNlZC1kaW1lbnNpb24pID4gMCB7XG4gICAgJGRpbWVuc2lvbjogJHBhcnNlZC1kaW1lbnNpb247XG4gIH1cblxuICBAcmV0dXJuICRkaW1lbnNpb247XG59XG5cblxuLy8vXG4vLy8gR2V0IGRpbWVuc2lvbiBwcmVmaXggYmFzZWQgb24gYW4gb3BlcmF0b3Jcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvclxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIGBtaW5gIG9yIGBtYXhgXG4vLy9cbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKSB7XG4gIEByZXR1cm4gaWYoaW5kZXgoKCc8JywgJzw9JywgJ+KJpCcpLCAkb3BlcmF0b3IpLCAnbWF4JywgJ21pbicpO1xufVxuXG5cbi8vL1xuLy8vIEdldCB2YWx1ZSBvZiBhbiBleHByZXNzaW9uLCBiYXNlZCBvbiBhIGZvdW5kIG9wZXJhdG9yXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3QgdmFsdWUgZnJvbVxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvciBmcm9tIGAkZXhwcmVzc2lvbmBcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn0gLSBBIG51bWVyaWMgdmFsdWVcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLXZhbHVlKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcbiAgJG9wZXJhdG9yLWluZGV4OiBzdHItaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XG4gICR2YWx1ZTogc3RyLXNsaWNlKCRleHByZXNzaW9uLCAkb3BlcmF0b3ItaW5kZXggKyBzdHItbGVuZ3RoKCRvcGVyYXRvcikpO1xuXG4gIEBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICR2YWx1ZSkge1xuICAgICR2YWx1ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICR2YWx1ZSk7XG4gIH0gQGVsc2Uge1xuICAgICR2YWx1ZTogdG8tbnVtYmVyKCR2YWx1ZSk7XG4gIH1cblxuICAkaW50ZXJ2YWw6IG1hcC1nZXQoJHVuaXQtaW50ZXJ2YWxzLCB1bml0KCR2YWx1ZSkpO1xuXG4gIEBpZiBub3QgJGludGVydmFsIHtcbiAgICAvLyBJdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluc2lkZSBhIGZ1bmN0aW9uLCBzbyB3ZSBoYXZlIHRvXG4gICAgLy8gcmVseSBvbiB0aGUgYGltLWxvZyguLilgIGZ1bmN0aW9uIHJhdGhlciB0aGFuIHRoZSBgbG9nKC4uKWAgbWl4aW4uIEJlY2F1c2VcbiAgICAvLyBmdW5jdGlvbnMgY2Fubm90IGJlIGNhbGxlZCBhbnl3aGVyZSBpbiBTYXNzLCB3ZSBuZWVkIHRvIGhhY2sgdGhlIGNhbGwgaW5cbiAgICAvLyBhIGR1bW15IHZhcmlhYmxlLCBzdWNoIGFzIGAkX2AuIElmIGFueWJvZHkgZXZlciByYWlzZSBhIHNjb3BpbmcgaXNzdWUgd2l0aFxuICAgIC8vIFNhc3MgMy4zLCBjaGFuZ2UgdGhpcyBsaW5lIGluIGBAaWYgaW0tbG9nKC4uKSB7fWAgaW5zdGVhZC5cbiAgICAkXzogaW0tbG9nKCdVbmtub3duIHVuaXQgYCN7dW5pdCgkdmFsdWUpfWAuJyk7XG4gIH1cblxuICBAaWYgJG9wZXJhdG9yID09ICc+JyB7XG4gICAgJHZhbHVlOiAkdmFsdWUgKyAkaW50ZXJ2YWw7XG4gIH0gQGVsc2UgaWYgJG9wZXJhdG9yID09ICc8JyB7XG4gICAgJHZhbHVlOiAkdmFsdWUgLSAkaW50ZXJ2YWw7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cblxuXG4vLy9cbi8vLyBQYXJzZSBhbiBleHByZXNzaW9uIHRvIHJldHVybiBhIHZhbGlkIG1lZGlhLXF1ZXJ5IGV4cHJlc3Npb25cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gcGFyc2Vcbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBWYWxpZCBtZWRpYSBxdWVyeVxuLy8vXG5AZnVuY3Rpb24gcGFyc2UtZXhwcmVzc2lvbigkZXhwcmVzc2lvbikge1xuICAvLyBJZiBpdCBpcyBwYXJ0IG9mICRtZWRpYS1leHByZXNzaW9ucywgaXQgaGFzIG5vIG9wZXJhdG9yXG4gIC8vIHRoZW4gdGhlcmUgaXMgbm8gbmVlZCB0byBnbyBhbnkgZnVydGhlciwganVzdCByZXR1cm4gdGhlIHZhbHVlXG4gIEBpZiBtYXAtaGFzLWtleSgkbWVkaWEtZXhwcmVzc2lvbnMsICRleHByZXNzaW9uKSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRtZWRpYS1leHByZXNzaW9ucywgJGV4cHJlc3Npb24pO1xuICB9XG5cbiAgJG9wZXJhdG9yOiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkZXhwcmVzc2lvbik7XG4gICRkaW1lbnNpb246IGdldC1leHByZXNzaW9uLWRpbWVuc2lvbigkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcbiAgJHByZWZpeDogZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcik7XG4gICR2YWx1ZTogZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XG5cbiAgQHJldHVybiAnKCN7JHByZWZpeH0tI3skZGltZW5zaW9ufTogI3skdmFsdWV9KSc7XG59XG5cbi8vL1xuLy8vIFNsaWNlIGAkbGlzdGAgYmV0d2VlbiBgJHN0YXJ0YCBhbmQgYCRlbmRgIGluZGV4ZXNcbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkbGlzdCAtIExpc3QgdG8gc2xpY2Vcbi8vLyBAcGFyYW0ge051bWJlcn0gJHN0YXJ0IFsxXSAtIFN0YXJ0IGluZGV4XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRlbmQgW2xlbmd0aCgkbGlzdCldIC0gRW5kIGluZGV4XG4vLy9cbi8vLyBAcmV0dXJuIHtMaXN0fSBTbGljZWQgbGlzdFxuLy8vXG5AZnVuY3Rpb24gc2xpY2UoJGxpc3QsICRzdGFydDogMSwgJGVuZDogbGVuZ3RoKCRsaXN0KSkge1xuICBAaWYgbGVuZ3RoKCRsaXN0KSA8IDEgb3IgJHN0YXJ0ID4gJGVuZCB7XG4gICAgQHJldHVybiAoKTtcbiAgfVxuXG4gICRyZXN1bHQ6ICgpO1xuXG4gIEBmb3IgJGkgZnJvbSAkc3RhcnQgdGhyb3VnaCAkZW5kIHtcbiAgICAkcmVzdWx0OiBhcHBlbmQoJHJlc3VsdCwgbnRoKCRsaXN0LCAkaSkpO1xuICB9XG5cbiAgQHJldHVybiAkcmVzdWx0O1xufVxuXG4vLy8vXG4vLy8gU3RyaW5nIHRvIG51bWJlciBjb252ZXJ0ZXJcbi8vLyBAYXV0aG9yIEtpdHR5IEdpcmF1ZGVsXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy8vXG5cblxuLy8vXG4vLy8gQ2FzdHMgYSBzdHJpbmcgaW50byBhIG51bWJlclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmcgfCBOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGJlIHBhcnNlZFxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfVxuLy8vXG5AZnVuY3Rpb24gdG8tbnVtYmVyKCR2YWx1ZSkge1xuICBAaWYgdHlwZS1vZigkdmFsdWUpID09ICdudW1iZXInIHtcbiAgICBAcmV0dXJuICR2YWx1ZTtcbiAgfSBAZWxzZSBpZiB0eXBlLW9mKCR2YWx1ZSkgIT0gJ3N0cmluZycge1xuICAgICRfOiBpbS1sb2coJ1ZhbHVlIGZvciBgdG8tbnVtYmVyYCBzaG91bGQgYmUgYSBudW1iZXIgb3IgYSBzdHJpbmcuJyk7XG4gIH1cblxuICAkZmlyc3QtY2hhcmFjdGVyOiBzdHItc2xpY2UoJHZhbHVlLCAxLCAxKTtcbiAgJHJlc3VsdDogMDtcbiAgJGRpZ2l0czogMDtcbiAgJG1pbnVzOiAoJGZpcnN0LWNoYXJhY3RlciA9PSAnLScpO1xuICAkbnVtYmVyczogKCcwJzogMCwgJzEnOiAxLCAnMic6IDIsICczJzogMywgJzQnOiA0LCAnNSc6IDUsICc2JzogNiwgJzcnOiA3LCAnOCc6IDgsICc5JzogOSk7XG5cbiAgLy8gUmVtb3ZlICsvLSBzaWduIGlmIHByZXNlbnQgYXQgZmlyc3QgY2hhcmFjdGVyXG4gIEBpZiAoJGZpcnN0LWNoYXJhY3RlciA9PSAnKycgb3IgJGZpcnN0LWNoYXJhY3RlciA9PSAnLScpIHtcbiAgICAkdmFsdWU6IHN0ci1zbGljZSgkdmFsdWUsIDIpO1xuICB9XG5cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBzdHItbGVuZ3RoKCR2YWx1ZSkge1xuICAgICRjaGFyYWN0ZXI6IHN0ci1zbGljZSgkdmFsdWUsICRpLCAkaSk7XG5cbiAgICBAaWYgbm90IChpbmRleChtYXAta2V5cygkbnVtYmVycyksICRjaGFyYWN0ZXIpIG9yICRjaGFyYWN0ZXIgPT0gJy4nKSB7XG4gICAgICBAcmV0dXJuIHRvLWxlbmd0aChpZigkbWludXMsIC0kcmVzdWx0LCAkcmVzdWx0KSwgc3RyLXNsaWNlKCR2YWx1ZSwgJGkpKVxuICAgIH1cblxuICAgIEBpZiAkY2hhcmFjdGVyID09ICcuJyB7XG4gICAgICAkZGlnaXRzOiAxO1xuICAgIH0gQGVsc2UgaWYgJGRpZ2l0cyA9PSAwIHtcbiAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKiAxMCArIG1hcC1nZXQoJG51bWJlcnMsICRjaGFyYWN0ZXIpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJGRpZ2l0czogJGRpZ2l0cyAqIDEwO1xuICAgICAgJHJlc3VsdDogJHJlc3VsdCArIG1hcC1nZXQoJG51bWJlcnMsICRjaGFyYWN0ZXIpIC8gJGRpZ2l0cztcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIGlmKCRtaW51cywgLSRyZXN1bHQsICRyZXN1bHQpO1xufVxuXG5cbi8vL1xuLy8vIEFkZCBgJHVuaXRgIHRvIGAkdmFsdWVgXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gVmFsdWUgdG8gYWRkIHVuaXQgdG9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHVuaXQgLSBTdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHVuaXRcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn0gLSBgJHZhbHVlYCBleHByZXNzZWQgaW4gYCR1bml0YFxuLy8vXG5AZnVuY3Rpb24gdG8tbGVuZ3RoKCR2YWx1ZSwgJHVuaXQpIHtcbiAgJHVuaXRzOiAoJ3B4JzogMXB4LCAnY20nOiAxY20sICdtbSc6IDFtbSwgJyUnOiAxJSwgJ2NoJzogMWNoLCAncGMnOiAxcGMsICdpbic6IDFpbiwgJ2VtJzogMWVtLCAncmVtJzogMXJlbSwgJ3B0JzogMXB0LCAnZXgnOiAxZXgsICd2dyc6IDF2dywgJ3ZoJzogMXZoLCAndm1pbic6IDF2bWluLCAndm1heCc6IDF2bWF4KTtcblxuICBAaWYgbm90IGluZGV4KG1hcC1rZXlzKCR1bml0cyksICR1bml0KSB7XG4gICAgJF86IGltLWxvZygnSW52YWxpZCB1bml0IGAjeyR1bml0fWAuJyk7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZSAqIG1hcC1nZXQoJHVuaXRzLCAkdW5pdCk7XG59XG5cbi8vL1xuLy8vIFRoaXMgbWl4aW4gYWltcyBhdCByZWRlZmluaW5nIHRoZSBjb25maWd1cmF0aW9uIGp1c3QgZm9yIHRoZSBzY29wZSBvZlxuLy8vIHRoZSBjYWxsLiBJdCBpcyBoZWxwZnVsIHdoZW4gaGF2aW5nIGEgY29tcG9uZW50IG5lZWRpbmcgYW4gZXh0ZW5kZWRcbi8vLyBjb25maWd1cmF0aW9uIHN1Y2ggYXMgY3VzdG9tIGJyZWFrcG9pbnRzIChyZWZlcnJlZCB0byBhcyB0d2Vha3BvaW50cylcbi8vLyBmb3IgaW5zdGFuY2UuXG4vLy9cbi8vLyBAYXV0aG9yIEtpdHR5IEdpcmF1ZGVsXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJHR3ZWFrcG9pbnRzIFsoKV0gLSBNYXAgb2YgdHdlYWtwb2ludHMgdG8gYmUgbWVyZ2VkIHdpdGggYCRicmVha3BvaW50c2Bcbi8vLyBAcGFyYW0ge01hcH0gJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zIFsoKV0gLSBNYXAgb2YgdHdlYWtlZCBtZWRpYSBleHByZXNzaW9ucyB0byBiZSBtZXJnZWQgd2l0aCBgJG1lZGlhLWV4cHJlc3Npb25gXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIHRoZSBnbG9iYWwgYnJlYWtwb2ludHMgd2l0aCBhIHR3ZWFrcG9pbnRcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgoJ2N1c3RvbSc6IDY3OHB4KSkge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScsICc8PWN1c3RvbScpIHtcbi8vLyAgICAgICAvLyAuLi5cbi8vLyAgICAgIH1cbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgdGhlIGdsb2JhbCBtZWRpYSBleHByZXNzaW9ucyB3aXRoIGEgY3VzdG9tIG9uZVxuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCR0d2Vhay1tZWRpYS1leHByZXNzaW9uczogKCdhbGwnOiAnYWxsJykpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCdhbGwnLCAnPnBob25lJykge1xuLy8vICAgICAgIC8vIC4uLlxuLy8vICAgICAgfVxuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCBib3RoIGNvbmZpZ3VyYXRpb24gbWFwc1xuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCgnY3VzdG9tJzogNjc4cHgpLCAoJ2FsbCc6ICdhbGwnKSkge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJ2FsbCcsICc+cGhvbmUnLCAnPD1jdXN0b20nKSB7XG4vLy8gICAgICAgLy8gLi4uXG4vLy8gICAgICB9XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbkBtaXhpbiBtZWRpYS1jb250ZXh0KCR0d2Vha3BvaW50czogKCksICR0d2Vhay1tZWRpYS1leHByZXNzaW9uczogKCkpIHtcbiAgLy8gU2F2ZSBnbG9iYWwgY29uZmlndXJhdGlvblxuICAkZ2xvYmFsLWJyZWFrcG9pbnRzOiAkYnJlYWtwb2ludHM7XG4gICRnbG9iYWwtbWVkaWEtZXhwcmVzc2lvbnM6ICRtZWRpYS1leHByZXNzaW9ucztcblxuICAvLyBVcGRhdGUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cbiAgJGJyZWFrcG9pbnRzOiBtYXAtbWVyZ2UoJGJyZWFrcG9pbnRzLCAkdHdlYWtwb2ludHMpICFnbG9iYWw7XG4gICRtZWRpYS1leHByZXNzaW9uczogbWFwLW1lcmdlKCRtZWRpYS1leHByZXNzaW9ucywgJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zKSAhZ2xvYmFsO1xuXG4gIEBjb250ZW50O1xuXG4gIC8vIFJlc3RvcmUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cbiAgJGJyZWFrcG9pbnRzOiAkZ2xvYmFsLWJyZWFrcG9pbnRzICFnbG9iYWw7XG4gICRtZWRpYS1leHByZXNzaW9uczogJGdsb2JhbC1tZWRpYS1leHByZXNzaW9ucyAhZ2xvYmFsO1xufVxuXG4vLy8vXG4vLy8gaW5jbHVkZS1tZWRpYSBwdWJsaWMgZXhwb3NlZCBBUElcbi8vLyBAYXV0aG9yIEVkdWFyZG8gQm91Y2FzXG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vLy9cblxuXG4vLy9cbi8vLyBHZW5lcmF0ZXMgYSBtZWRpYSBxdWVyeSBiYXNlZCBvbiBhIGxpc3Qgb2YgY29uZGl0aW9uc1xuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAgICRjb25kaXRpb25zICAtIE1lZGlhIHF1ZXJ5IGNvbmRpdGlvbnNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGEgc2luZ2xlIHNldCBicmVha3BvaW50XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIHR3byBzZXQgYnJlYWtwb2ludHNcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScsICc8PXRhYmxldCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggY3VzdG9tIHZhbHVlc1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj0zNThweCcsICc8ODUwcHgnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIHNldCBicmVha3BvaW50cyB3aXRoIGN1c3RvbSB2YWx1ZXNcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5kZXNrdG9wJywgJzw9MTM1MHB4JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBhIHN0YXRpYyBleHByZXNzaW9uXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCdyZXRpbmEyeCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIE1peGluZyBldmVyeXRoaW5nXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PTM1MHB4JywgJzx0YWJsZXQnLCAncmV0aW5hM3gnKSB7IH1cbi8vL1xuQG1peGluIG1lZGlhKCRjb25kaXRpb25zLi4uKSB7XG4gIEBpZiAoJGltLW1lZGlhLXN1cHBvcnQgYW5kIGxlbmd0aCgkY29uZGl0aW9ucykgPT0gMCkgb3JcbiAgICAgIChub3QgJGltLW1lZGlhLXN1cHBvcnQgYW5kIGltLWludGVyY2VwdHMtc3RhdGljLWJyZWFrcG9pbnQoJGNvbmRpdGlvbnMuLi4pKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH0gQGVsc2UgaWYgKCRpbS1tZWRpYS1zdXBwb3J0IGFuZCBsZW5ndGgoJGNvbmRpdGlvbnMpID4gMCkge1xuICAgIEBtZWRpYSAje3VucXVvdGUocGFyc2UtZXhwcmVzc2lvbihudGgoJGNvbmRpdGlvbnMsIDEpKSl9IHtcbiAgICAgIC8vIFJlY3Vyc2l2ZSBjYWxsXG4gICAgICBAaW5jbHVkZSBtZWRpYShzbGljZSgkY29uZGl0aW9ucywgMikuLi4pIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogQmFzZSAtIE1haW5cbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4vKipcbiAqIFN0eWxlc1xuICovXG5odG1sLFxuYm9keSB7XG4gIEBpbmNsdWRlIGZvbnQtc21vb3RoaW5nKHRydWUpO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBmb250LXNpemU6IHZhcigtLWZvbnRTaXplKTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmVIZWlnaHQpO1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udEJvZHkpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLWdyZXlMaWdodCk7XG4gIGNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc8bGcnKSB7XG4gICAgLS1mb250U2l6ZTogMTAwJTtcbiAgfVxufVxuXG4qLFxuKjpiZWZvcmUsXG4qOmFmdGVyIHtcbiAgYm94LXNpemluZzogaW5oZXJpdDtcbn1cblxuYm9keSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogQmFzZSAtIEFuaW1hdGlvbnNcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG5Aa2V5ZnJhbWVzIGZhZGVJbiB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZhZGVPdXQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cblxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogQXRvbXMgLSBCdXR0b25zXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuLyoqXG4gKiBDb25maWdcbiAqKi9cblxuQG1peGluIGJ0biB7XG4gIEBpbmNsdWRlIGxpbmtSZXNldDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwYWRkaW5nOiAwLjc1cmVtIDFyZW07XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnRuQmcpO1xuICBjb2xvcjogdmFyKC0tYnRuQ29sb3VyKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYnRuQmcpO1xuICB0cmFuc2l0aW9uOiBhbGwgdmFyKC0tdHJhbnNpdGlvbik7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICBzdmcge1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSB2YXIoLS10cmFuc2l0aW9uKTtcbiAgICB3aWR0aDogMjBweDtcbiAgfVxuXG4gIHBhdGgge1xuICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgfVxufVxuXG5AbWl4aW4gYnRuLWhvdmVyIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogdmFyKC0tYnRuQ29sb3VyKTtcblxuICBzdmcge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg1cHgpO1xuICB9XG59XG5cbi8qKlxuICogU3R5bGVzXG4gKiovXG5cbi5hLWJ0biB7XG4gIC0tYnRuQmc6IHZhcigtLWMtcHJpbWFyeSk7XG4gIC0tYnRuQ29sb3VyOiB2YXIoLS1jLXdoaXRlKTtcbiAgQGluY2x1ZGUgYnRuO1xuXG4gICY6Zm9jdXMsXG4gICY6aG92ZXIge1xuICAgIEBpbmNsdWRlIGJ0bi1ob3ZlcjtcbiAgfVxuXG4gICYtLXllbCB7XG4gICAgLS1idG5CZzogdmFyKC0tYy15ZWxsb3cpO1xuICAgIC0tYnRuQ29sb3VyOiB2YXIoLS1jLXByaW1hcnkpO1xuICB9XG5cbiAgJi0tYmx1ZSB7XG4gICAgLS1idG5CZzogdmFyKC0tYy1ibHVlKTtcbiAgICAtLWJ0bkNvbG91cjogdmFyKC0tYy1wcmltYXJ5KTtcbiAgfVxuXG4gICYtLXdoIHtcbiAgICAtLWJ0bkJnOiB2YXIoLS1jLXdoaXRlKTtcbiAgICAtLWJ0bkNvbG91cjogdmFyKC0tYy1wcmltYXJ5KTtcbiAgfVxuXG4gICYtLXdpZGUge1xuICAgIHBhZGRpbmctbGVmdDogNHJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiA0cmVtO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cbiAgfVxuXG4gICYtLWZ1bGxXaWR0aCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gICYtLW5hcnJvdyB7XG4gICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICB9XG5cbiAgJi0tc20ge1xuICAgIC0tYnRuQmc6IHRyYW5zcGFyZW50O1xuICAgIC0tYnRuQ29sb3VyOiB2YXIoLS1jLXByaW1hcnkpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIHBhZGRpbmc6IDAuMjVyZW0gMC43NXJlbTtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnRTbWFsbCk7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcblxuICAgICY6aG92ZXIge1xuICAgICAgLS1idG5CZzogdmFyKC0tYy1wcmltYXJ5KTtcbiAgICAgIGNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbiAgICB9XG4gIH1cblxuICAmLS1ob2xsb3cge1xuICAgIC0tYnRuQmc6IHRyYW5zcGFyZW50O1xuICAgIC0tYnRuQ29sb3VyOiB2YXIoLS1jLXByaW1hcnkpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcbiAgfVxuXG4gICYtLWljb25MZWZ0IHtcbiAgICBzdmcge1xuICAgICAgbWFyZ2luOiAwIDEwcHggMCAwO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgc3ZnIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01cHgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYtLXdoaXRlIHtcbiAgICAtLWJ0bkJnOiB0cmFuc3BhcmVudDtcbiAgICAtLWJ0bkNvbG91cjogdmFyKC0tYy13aGl0ZSk7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1waW5rKTtcbiAgICAgIGNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXBpbmspO1xuICAgIH1cbiAgfVxuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IDNweCBkYXNoZWQgdmFyKC0tYnRuQmcpO1xuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogQXRvbXMgLSBJbWFnZSBjcmVkaXRzXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuLmEtaW1hZ2UtY3JlZGl0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDA7XG4gIHJpZ2h0OiAwO1xuICBjdXJzb3I6IGhlbHA7XG4gIGJvcmRlcjogMDtcbiAgd2lkdGg6IDUwcHg7XG4gIGhlaWdodDogNTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gIC8vIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gIC8vICAgYm90dG9tOiAwLjVyZW07XG4gIC8vICAgcmlnaHQ6IDFyZW07XG4gIC8vIH1cblxuICAmX19pY29uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbiAgICBjb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcbiAgICB3aWR0aDogMS4yNXJlbTtcbiAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBsaW5lLWhlaWdodDogMTVweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250U21hbGwpO1xuICB9XG5cbiAgJl9fY29weSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy13aGl0ZSk7XG4gICAgY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIHBhZGRpbmc6IDFyZW0gM3JlbSAxcmVtIDFyZW07XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250U21hbGwpO1xuICAgIHdpZHRoOiA5NXZ3O1xuICAgIG1heC13aWR0aDogNTAwcHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IHZhcigtLXRyYW5zaXRpb24pO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDJyZW07XG4gICAgfVxuICB9XG5cbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUsXG4gICY6aG92ZXIge1xuICAgIC5hLWltYWdlLWNyZWRpdF9faWNvbiB7XG4gICAgICBjb2xvcjogdmFyKC0tYy13aGl0ZSk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xuICAgIH1cblxuICAgIC5hLWltYWdlLWNyZWRpdF9fY29weSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgIHotaW5kZXg6IDIxO1xuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogVW4udGl0bGVkXG4qIEF0b21zIC0gQnJlYWRjcnVtYnNcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKi9cblxuLyoqXG4qIFN0eWxpbmdcbiovXG4uYS1icmVhZGNydW1icyB7XG4gIHBhZGRpbmc6IDAuNXJlbSAycmVtO1xuICBmb250LXNpemU6IHZhcigtLWZvbnRTbWFsbCk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZsZXgtd3JhcDogd3JhcDtcblxuICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcbiAgICBwYWRkaW5nOiAwLjVyZW0gMTVweDtcbiAgfVxuXG4gICZfX2RpdmlkZXIge1xuICAgIG1hcmdpbjogMCA1cHg7XG4gIH1cblxuICBhIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogVW4udGl0bGVkXG4qIEF0b21zIC0gTG9hZGVyXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cbi8qKlxuKiBDb25maWdcbiovXG5Aa2V5ZnJhbWVzIGxvYWRlckFuaW1hdGlvbiB7XG4gIDAlLFxuICAxMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxNDBweCkgcm90YXRlWCgtMTgwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDE0MHB4KSByb3RhdGVYKC0xODBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbiAgMjUlLFxuICA3NSUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxNDBweCkgcm90YXRlWCgwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDE0MHB4KSByb3RhdGVYKDBkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgOTAlLFxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMTQwcHgpIHJvdGF0ZVkoMTgwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDE0MHB4KSByb3RhdGVZKDE4MGRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG46cm9vdCB7XG4gIC0tbG9hZGVyQ29sb3VyOiB2YXIoLS1jLXByaW1hcnkpO1xufVxuXG4vKipcbiogU3R5bGluZ1xuKi9cbi5hLWxvYWRlciB7XG4gIG1hcmdpbjogMjBweCBhdXRvO1xuICB3aWR0aDogNDBweDtcbiAgaGVpZ2h0OiA0MHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRyYW5zZm9ybTogcm90YXRlWig0NWRlZyk7XG5cbiAgJi0td2hpdGUge1xuICAgIC0tbG9hZGVyQ29sb3VyOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCk7XG4gIH1cblxuICAmX19jdWJlIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogNTAlO1xuICAgIGhlaWdodDogNTAlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1sb2FkZXJDb2xvdXIpO1xuICAgICAgYW5pbWF0aW9uOiBsb2FkZXJBbmltYXRpb24gMi40cyBpbmZpbml0ZSBsaW5lYXIgYm90aDtcbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMTAwJTtcbiAgICB9XG4gIH1cblxuICAmX19jdWJlLTIge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKSByb3RhdGVaKDkwZGVnKTtcblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBhbmltYXRpb24tZGVsYXk6IDAuM3M7XG4gICAgfVxuICB9XG5cbiAgJl9fY3ViZS0zIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSkgcm90YXRlWigxODBkZWcpO1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGFuaW1hdGlvbi1kZWxheTogMC42cztcbiAgICB9XG4gIH1cblxuICAmX19jdWJlLTQge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKSByb3RhdGVaKDI3MGRlZyk7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgYW5pbWF0aW9uLWRlbGF5OiAwLjlzO1xuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogVW4udGl0bGVkXG4qIEF0b21zIC0gRGF0ZSBwaWNrZXJcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKi9cblxuLyoqXG4qIENvbmZpZ1xuKi9cblxuLyoqXG4qIFN0eWxpbmdcbiovXG4uYS1kYXRlLXBpY2tlciB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDgwJTtcbiAgbWFyZ2luLWJvdHRvbTogMnJlbTtcblxuICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxuXG4gIC5EYXlQaWNrZXItd3JhcHBlciB7XG4gICAgcG9zaXRpb246IHVuc2V0O1xuICB9XG5cbiAgLkRheVBpY2tlci1OYXZCYXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDEuNXJlbTtcbiAgICByaWdodDogMXJlbTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICByaWdodDogMDtcbiAgICAgIHRvcDogMS4yNXJlbTtcbiAgICAgIHBhZGRpbmc6IDAgMXJlbTtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xuICAgICAgdG9wOiAwLjVyZW07XG4gICAgfVxuICB9XG5cbiAgLkRheVBpY2tlci1OYXZCdXR0b24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogNDBweDtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IDE1cHg7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgJi0tcHJldiB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltZy9hcnJvdy1oZWFkLWxlZnQuc3ZnJykgIWltcG9ydGFudDtcbiAgICB9XG4gICAgJi0tbmV4dCB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltZy9hcnJvdy1oZWFkLXJpZ2h0LnN2ZycpICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLkRheVBpY2tlci1DYXB0aW9uIHtcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udFRpdGxlKTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWMtcHJpbWFyeSk7XG4gICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcbiAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgIHBhZGRpbmc6IDAuNXJlbSAwO1xuICAgIH1cbiAgfVxuXG4gIGFiYnIge1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250Qm9sZCk7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIGNvbG9yOiB2YVIoLS1jLXByaW1hcnkpO1xuICB9XG5cbiAgLkRheVBpY2tlci1EYXktLXNlbGVjdGVkOm5vdCguRGF5UGlja2VyLURheS0tc3RhcnQpOm5vdCguRGF5UGlja2VyLURheS0tZW5kKTpub3QoLkRheVBpY2tlci1EYXktLW91dHNpZGUpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMTcxLCAxODYsIDAuNCkgIWltcG9ydGFudDtcbiAgICBjb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXRyYW5zaXRpb24pO1xuICB9XG5cbiAgLkRheVBpY2tlci1EYXkge1xuICAgIGJvcmRlci1yYWRpdXM6IDAlICFpbXBvcnRhbnQ7XG5cbiAgICAmLS10b2RheSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLXByaW1hcnkpO1xuICAgICAgY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXBpbmspICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLkRheVBpY2tlci1EYXktLXN0YXJ0IHtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAxMHB4ICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMTBweCAhaW1wb3J0YW50O1xuICB9XG5cbiAgLkRheVBpY2tlci1EYXktLWVuZCB7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDEwcHggIWltcG9ydGFudDtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMTBweCAhaW1wb3J0YW50O1xuICB9XG5cbiAgLkRheVBpY2tlci1EYXktLXNlbGVjdGVkOm5vdCguRGF5UGlja2VyLURheS0tZGlzYWJsZWQpOm5vdCguRGF5UGlja2VyLURheS0tb3V0c2lkZSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtcGluayk7XG4gICAgY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS10cmFuc2l0aW9uKTtcbiAgfVxufVxuIiwiLyoqXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogVW4udGl0bGVkXG4qIEF0b21zIC0gUGFnaW5hdGlvblxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qL1xuXG4vKipcbiogQ29uZmlnXG4qL1xuXG4vKipcbiogU3R5bGluZ1xuKi9cbi5hLXBhZ2VyIHtcbiAgQGluY2x1ZGUgbGktcmVzZXQ7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIG1hcmdpbjogMnJlbSAwO1xuXG4gIC5kaXNhYmxlZCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIH1cblxuICBzcGFuLFxuICBhIHtcbiAgICBAaW5jbHVkZSBsaW5rUmVzZXQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgfVxuXG4gIGEge1xuICAgICY6aG92ZXIge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cbiAgICAgIHBhdGgge1xuICAgICAgICBmaWxsOiB2YXIoLS1jLXNlY29uZGFyeSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgc3BhbixcbiAgYS51bmRlZmluZWQge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB9XG5cbiAgc3ZnIHtcbiAgICB3aWR0aDogMjVweDtcbiAgICBtYXJnaW46IDAgMC41cmVtO1xuICB9XG5cbiAgcGF0aCB7XG4gICAgdHJhbnNpdGlvbjogZmlsbCB2YXIoLS10cmFuc2l0aW9uKTtcbiAgfVxufVxuIiwiLyoqXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogVW4udGl0bGVkXG4qIEF0b21zIC0gQ29sdW1uc1xuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qL1xuXG4vKipcbiogQ29uZmlnXG4qL1xuXG4vKipcbiogU3R5bGluZ1xuKi9cbi5hLWNvbHMge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMCAxNXB4O1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAwIGF1dG87XG5cbiAgJi0teHMge1xuICAgIG1heC13aWR0aDogdmFyKC0tY29scy0zKTtcbiAgfVxuXG4gICYtLXNtIHtcbiAgICBtYXgtd2lkdGg6IHZhcigtLWNvbHMtNik7XG4gIH1cblxuICAmLS1tZCB7XG4gICAgbWF4LXdpZHRoOiB2YXIoLS1jb2xzLTgpO1xuICB9XG5cbiAgJi0tZnVsbCB7XG4gICAgbWF4LXdpZHRoOiB2YXIoLS1jb250YWluZXJXaWR0aCk7XG4gIH1cblxuICAmLS1iZ0NvbG91ciB7XG4gICAgbWFyZ2luOiA0cmVtIGF1dG87XG4gIH1cbn1cbiIsIi8qKlxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qIFVuLnRpdGxlZFxuKiBBdG9tcyAtIEltYWdlIGNhcHRpb25zXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cbi8qKlxuKiBDb25maWdcbiovXG5cbi8qKlxuKiBTdHlsaW5nXG4qL1xuLmEtY2FwdGlvbiB7XG4gIEBpbmNsdWRlIGJnLWltZyg4cHgpO1xuICBwYWRkaW5nLWxlZnQ6IHZhcigtLWd1dHRlcik7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1nL2Fycm93LWhlYWQuc3ZnJyk7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGxlZnQgMTFweDtcbiAgZm9udC1zaXplOiB2YXIoLS1mb250U21hbGwpO1xufVxuIiwiLyoqXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogVW4udGl0bGVkXG4qIEF0b21zIC0gQXV0byBncmlkXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cbi8qKlxuKiBDb25maWdcbiovXG5cbi8qKlxuKiBTdHlsaW5nXG4qL1xuLmEtYXV0by1ncmlkIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoXG4gICAgYXV0by1maXQsXG4gICAgbWlubWF4KHZhcigtLWF1dG9HcmlkTWluLCAxZnIpLCB2YXIoLS1hdXRvR3JpZE1heCwgMWZyKSlcbiAgKTtcbiAgZ2FwOiB2YXIoLS1hdXRvR3JpZEdhcCwgMXJlbSk7XG4gIGFsaWduLWl0ZW1zOiBzdGFydDtcbn1cbiIsIi8qKlxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qIFVuLnRpdGxlZFxuKiBBdG9tcyAtIExpbmtzXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cbi8qKlxuKiBDb25maWdcbiovXG5cbi8qKlxuKiBTdHlsaW5nXG4qL1xuLmEtbGlua3Mge1xuICBtYXJnaW46IDJyZW0gMDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZmxleC13cmFwOiB3cmFwO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgbWFyZ2luOiAxcmVtIDA7XG4gIH1cblxuICBhIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gIH1cbn1cbiIsIi8qKlxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qIFVuLnRpdGxlZFxuKiBBdG9tcyAtIFNpZGViYXJcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKi9cblxuLyoqXG4qIENvbmZpZ1xuKi9cblxuLyoqXG4qIFN0eWxpbmdcbiovXG4uYS1zaWRlYmFyIHtcbiAgbWFyZ2luLWJvdHRvbTogM3JlbTtcbiAgZm9udC1zaXplOiAxcmVtO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuICB9XG5cbiAgJi0tYmxvY2sge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtcHJpbWFyeSk7XG4gICAgYm9yZGVyLWxlZnQ6IDA7XG4gICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmc6IDFyZW0gMDtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gIH1cblxuICAuYS10YWcsXG4gIC5hLWJ0biB7XG4gICAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuICB9XG5cbiAgc3ZnIHtcbiAgICB3aWR0aDogMTVweDtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCc8bWQnKSB7XG4gICAgLnNpbmdsZS1wZW9wbGUgJiB7XG4gICAgICBvcmRlcjogLTE7XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKiBVbi50aXRsZWRcbiogQXRvbXMgLSBUYWdzXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cbi8qKlxuKiBDb25maWdcbiovXG5cbi8qKlxuKiBTdHlsaW5nXG4qL1xuLmEtdGFnIHtcbiAgLS10YWdCZzogdmFyKC0tYy1wcmltYXJ5KTtcbiAgLS10YWdDb2xvdXI6IHZhcigtLWMtd2hpdGUpO1xuXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gIGZvbnQtc2l6ZTogOTAlO1xuICBsZXR0ZXItc3BhY2luZzogMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10YWdCZyk7XG4gIGNvbG9yOiB2YXIoLS10YWdDb2xvdXIpO1xuXG4gICYtLXllbCB7XG4gICAgLS10YWdCZzogdmFyKC0tYy15ZWxsb3cpO1xuICAgIC0tdGFnQ29sb3VyOiB2YXIoLS1jLXByaW1hcnkpO1xuICB9XG59XG4iLCIvKipcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKiBVbi50aXRsZWRcbiogQXRvbXMgLSBTdGlja3lcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKi9cblxuLyoqXG4qIENvbmZpZ1xuKi9cbjpyb290IHtcbiAgLS1zdGlja3lMZWZ0OiAwO1xuICAtLXN0aWNreVdpZHRoOiAwO1xuICAtLXN0aWNreUhlaWdodDogMDtcbn1cblxuLyoqXG4qIFN0eWxpbmdcbiovXG4uYS1zdGlja3kge1xuICAmW2RhdGEtc3RpY2t5PSd0cnVlJ10ge1xuICAgIC5hLWJ0biB7XG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiB2YXIoLS1zdGlja3lMZWZ0KTtcbiAgICAgIHdpZHRoOiB2YXIoLS1zdGlja3lXaWR0aCk7XG4gICAgICB6LWluZGV4OiAyMDtcbiAgICAgIHRyYW5zaXRpb246IG5vbmU7XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8eHMnKSB7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5hLXN0aWNreV9fcGxhY2Vob2xkZXIge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG5cbiAgJl9fcGxhY2Vob2xkZXIge1xuICAgIGhlaWdodDogdmFyKC0tc3RpY2t5SGVpZ2h0KTtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuIiwiLyoqXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogVW4udGl0bGVkXG4qIEF0b21zIC0gRXZlbnQgY2FuY2VsbGVkIG1lc3NhZ2VcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKi9cblxuLyoqXG4qIENvbmZpZ1xuKi9cblxuLyoqXG4qIFN0eWxpbmdcbiovXG4uYS1jYW5jZWxsZWQge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMC43NXJlbTtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy15ZWxsb3cpO1xuICBjb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcblxuICBwIHtcbiAgICBtYXgtd2lkdGg6IHZhcigtLWNvbnRhaW5lcldpZHRoKTtcbiAgfVxufVxuIiwiLyoqXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogVW4udGl0bGVkXG4qIEF0b21zIC0gU2tpcCBsaW5rXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cbi8qKlxuKiBDb25maWdcbiovXG5cbi8qKlxuKiBTdHlsaW5nXG4qL1xuLmEtc2tpcC1saW5rIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnRCb2xkKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpO1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcbiAgY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDAuNXJlbTtcbiAgei1pbmRleDogMTA7XG4gIGJvcmRlcjogMDtcbiAgb3V0bGluZTogMDtcblxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgIGNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbiAgfVxufVxuIiwiLyoqXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogVW4udGl0bGVkXG4qIEF0b21zIC0gTGlzdGluZ1xuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qL1xuXG4vKipcbiogQ29uZmlnXG4qL1xuXG4vKipcbiogU3R5bGluZ1xuKi9cbi5hLWxpc3Rpbmcge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCAxZnIpO1xuICBnYXA6IDJyZW07XG4gIC8vIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzxsZycpIHtcbiAgICBnYXA6IDFyZW07XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgnPD1zbScpIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcbiAgICBhbGlnbi1pdGVtczogc3RhcnQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgZ2FwOiAycmVtO1xuICB9XG59XG4iLCIvKipcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKiBVbi50aXRsZWRcbiogQXRvbXMgLSBDaXRhdGlvbnNcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKi9cblxuLyoqXG4qIENvbmZpZ1xuKi9cblxuLyoqXG4qIFN0eWxpbmdcbiovXG4uYS1jaXRlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIGEge1xuICAgIEBpbmNsdWRlIGxpbmtSZXNldDtcbiAgfVxuXG4gICZfX251bWJlciB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250U21hbGwpO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tdHJhbnNpdGlvbik7XG4gIH1cblxuICAmX19kZXNjcmlwdGlvbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbiAgICB0b3A6IDEwMCU7XG4gICAgbGVmdDogMDtcbiAgICBtYXgtd2lkdGg6IDIzMHB4O1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udFNtYWxsKTtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAmOmZvY3VzLFxuICAmOmhvdmVyIHtcbiAgICAuYS1jaXRlX19udW1iZXIge1xuICAgICAgY29sb3I6IHZhcigtLWMtcmVkKTtcbiAgICB9XG4gICAgLmEtY2l0ZV9fZGVzY3JpcHRpb24ge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogVW4udGl0bGVkXG4qIEF0b21zIC0gQmFjayB0byB0b3BcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKi9cblxuLyoqXG4qIFN0eWxpbmdcbiovXG4uYS1iYWNrLXRvcCB7XG4gIEBpbmNsdWRlIGxpbmtSZXNldDtcbiAgcG9zaXRpb246IHN0aWNreTtcbiAgbGVmdDogY2FsYygxMDAlIC0gNnJlbSk7XG4gIGJvdHRvbTogM3JlbTtcbiAgbWFyZ2luLWJvdHRvbTogLTMwcHg7XG4gIGhlaWdodDogNjBweDtcbiAgd2lkdGg6IDYwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHotaW5kZXg6IDI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzxsZycpIHtcbiAgICBsZWZ0OiBjYWxjKDEwMCUgLSA0cmVtKTtcbiAgICBib3R0b206IDFyZW07XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgIGhlaWdodDogNDBweDtcbiAgICB3aWR0aDogNDBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAtMjBweDtcbiAgfVxuXG4gICZbZGF0YS12aXNpYmxlPSd0cnVlJ10ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYW5pbWF0aW9uOiBmYWRlSW4gMC4ycyBlYXNlLWluLW91dCBmb3J3YXJkcztcbiAgfVxuXG4gICZbZGF0YS12aXNpYmxlPSdmYWxzZSddIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgYW5pbWF0aW9uOiBmYWRlT3V0IDAuMnMgZWFzZS1pbi1vdXQgZm9yd2FyZHM7XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwcHgpO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNXB4KTtcbiAgICB9XG4gIH1cblxuICBzdmcge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgIG1heC1oZWlnaHQ6IDMwcHg7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgbWF4LWhlaWdodDogMjBweDtcbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBBdG9tcyAtIEdyaWRcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4vKipcbiAqIFN0eWxpbmdcbiAqL1xuIC5hLWdyaWQge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ2FwOiB2YXIoLS1hdXRvR3JpZEdhcCwgMXJlbSk7XG4gICAgYWxpZ24taXRlbXM6IHN0YXJ0O1xuICBcbiAgICAmLS0xIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgIH1cbiAgXG4gICAgJi0tMiB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gIFxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgICB9XG4gICAgfVxuICBcbiAgICAmLS0zIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmciAxZnI7XG4gIFxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgICB9XG4gICAgfVxuICBcbiAgICAmLS00IHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmciAxZnIgMWZyO1xuICAgICAgZ3JpZC1hdXRvLXJvd3M6IDFmcjtcbiAgXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPG1kJykge1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gICAgICB9XG4gIFxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgICB9XG4gICAgfVxuICB9XG4gICIsIi8qKlxyXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAqIFVuLnRpdGxlZFxyXG4gKiBNb2xlY3VsZXMgLSBFbWVyZ2VuY3kgTWVzc2FnZVxyXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIENvbmZpZ1xyXG4gKiovXHJcbkBrZXlmcmFtZXMgc2xpZGVJblVwIHtcclxuICAwJSB7XHJcbiAgICBvcGFjaXR5OiAwO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpO1xyXG4gIH1cclxuICA4MCUge1xyXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjAyKTtcclxuICB9XHJcbiAgMTAwJSB7XHJcbiAgICBvcGFjaXR5OiAxO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIHNjYWxlKDEpO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIFN0eWxpbmdcclxuICoqL1xyXG4ubS1lbW1zZyB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcblxyXG4gICYucHJpbWFyeSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXllbGxvdyk7XHJcbiAgICBjb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcclxuICB9XHJcbiAgJi5zZWNvbmRhcnkge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcclxuICAgIGNvbG9yOiAjZmZmO1xyXG4gIH1cclxuICBwYWRkaW5nOiAwLjI1cmVtIDFyZW07XHJcbiAgZGlzcGxheTogbm9uZTtcclxuICB2aXNpYmlsaXR5OiBoaWRkZW47XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIG1pbi1oZWlnaHQ6IDUycHg7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgcGFkZGluZzogMXJlbSAwO1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcclxuICAgIHBhZGRpbmc6IDFyZW0gMDtcclxuICB9XHJcblxyXG4gICZbZGF0YS1zdGF0ZT0ndmlzaWJsZSddIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xyXG4gIH1cclxuXHJcbiAgaDMge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xyXG4gICAgd2lkdGg6IDg1JTtcclxuICB9XHJcblxyXG4gIHAge1xyXG4gICAgd2lkdGg6IDg1JTtcclxuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xyXG5cclxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIG1lZGlhKCc8eHhzJykge1xyXG4gICAgICBtYXgtd2lkdGg6IDgwJTtcclxuICAgIH1cclxuXHJcbiAgICBhIHtcclxuICAgICAgJjpob3ZlcixcclxuICAgICAgJjpmb2N1cyB7XHJcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGJ1dHRvbiB7XHJcbiAgICBAaW5jbHVkZSBidG5SZXNldDtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogMC4yNXJlbTtcclxuICAgIHJpZ2h0OiAycmVtO1xyXG4gICAgaGVpZ2h0OiA0MnB4O1xyXG4gICAgd2lkdGg6IDQycHg7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIHZhcigtLXRyYW5zaXRpb24pO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy13aGl0ZSk7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcclxuICAgICAgcmlnaHQ6IDFyZW07XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcclxuICAgICAgcmlnaHQ6IDE1cHg7XHJcbiAgICB9XHJcblxyXG4gICAgc3ZnIHtcclxuICAgICAgd2lkdGg6IDE1cHg7XHJcbiAgICB9XHJcblxyXG4gICAgcGF0aCB7XHJcbiAgICAgIHN0cm9rZTogdmFyKC0tYy1wcmltYXJ5KTtcclxuICAgICAgdHJhbnNpdGlvbjogc3Ryb2tlIHZhcigtLXRyYW5zaXRpb24pO1xyXG4gICAgfVxyXG5cclxuICAgICY6aG92ZXIge1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xyXG5cclxuICAgICAgcGF0aCB7XHJcbiAgICAgICAgc3Ryb2tlOiB2YXIoLS1jLXdoaXRlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvKipcclxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gKiBVbi50aXRsZWRcclxuICogTW9sZWN1bGVzIC0gRW50aXRpZXNcclxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gKi9cclxuXHJcbmFydGljbGUge1xyXG4gICYgPiAubS1lbnRpdHk6bGFzdC1vZi10eXBlIHtcclxuICAgICYuYmdDb2xvdXIge1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAtMzBweDtcclxuXHJcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTIwcHg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5tLWVudGl0eSB7XHJcbiAgbWFyZ2luOiAwIDAgY2xhbXAoMnJlbSwgNXZ3LCA1cmVtKTtcclxuICB3aWR0aDogMTAwJTtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHJcbiAgLy8gJl9fdGV4dC5iZ0NvbG91ciB7XHJcbiAgLy8gICBtYXJnaW46IDA7XHJcbiAgLy8gfVxyXG5cclxuICBpbWc6bm90KC5yZXN0cmljdGVkLWhlaWdodCkge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICB9XHJcblxyXG4gICYtLXRvcCB7XHJcbiAgICBtYXJnaW4tdG9wOiBjbGFtcCgycmVtLCA1dncsIDVyZW0pO1xyXG4gIH1cclxuXHJcbiAgJl9fYm9keSxcclxuICAmX190ZXh0LFxyXG4gICZfX2FjY29yZGlvbiB7XHJcbiAgICB1bCB7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1ndXR0ZXIpO1xyXG5cclxuICAgICAgbGkge1xyXG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XHJcblxyXG4gICAgICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICBjb250ZW50OiAnJztcclxuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgICAgICAgIGhlaWdodDogN3B4O1xyXG4gICAgICAgICAgd2lkdGg6IDdweDtcclxuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgbGVmdDogLTE1cHg7XHJcbiAgICAgICAgICB0b3A6IDEycHg7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAaW1wb3J0ICcuL2Jsb2NrL2ludHJvJztcclxuICBAaW1wb3J0ICcuL2Jsb2NrL2ltYWdlJztcclxuICBAaW1wb3J0ICcuL2Jsb2NrL3F1b3RlJztcclxuICBAaW1wb3J0ICcuL2Jsb2NrL2FjY29yZGlvbic7XHJcbiAgQGltcG9ydCAnLi9ibG9jay9nYWxsZXJ5JztcclxuICBAaW1wb3J0ICcuL2Jsb2NrL2ltYWdlLXRleHQnO1xyXG4gIEBpbXBvcnQgJy4vYmxvY2svZG93bmxvYWRzJztcclxuICBAaW1wb3J0ICcuL2Jsb2NrL2VtYmVkJztcclxuICBAaW1wb3J0ICcuL2Jsb2NrL3RhYmxlJztcclxuICBAaW1wb3J0ICcuL2Jsb2NrL3NpZ25wb3N0JztcclxuICBAaW1wb3J0ICcuL2Jsb2NrL3NpZ25wb3N0cyc7XHJcbiAgQGltcG9ydCAnLi9ibG9jay9saW5rZWQtbG9nb3MnO1xyXG4gIEBpbXBvcnQgJy4vYmxvY2svdmlkZW8nO1xyXG4gIEBpbXBvcnQgJy4vYmxvY2sveW1hbCc7XHJcbiAgQGltcG9ydCAnLi9ibG9jay9iaWctY3RhJztcclxuICBAaW1wb3J0ICcuL2Jsb2NrL3JlYWRtb3JlJztcclxuICBAaW1wb3J0ICcuL2Jsb2NrL3F1aWNrbGlua3MnO1xyXG4gIEBpbXBvcnQgJy4vYmxvY2svc3BlY2lhbC1vcHRpb25zJztcclxuICBAaW1wb3J0ICcuL2Jsb2NrL3Blb3BsZS1wcm9maWxlcyc7XHJcbiAgQGltcG9ydCAnLi9ibG9jay9saXN0aW5nJztcclxuICBAaW1wb3J0ICcuL2Jsb2NrL21pbmlsaXN0aW5nJztcclxuICBAaW1wb3J0ICcuL2Jsb2NrL2VuaGFuY2VkZXZlbnRsaXN0aW5nJztcclxuICBAaW1wb3J0ICcuL2Jsb2NrL2ZlYXR1cmVkLWNvbnRlbnQnO1xyXG4gIEBpbXBvcnQgJy4vYmxvY2svY2l0YXRpb25zJztcclxuICBAaW1wb3J0ICcuL2Jsb2NrL2ltYWdlem9vbSc7XHJcbiAgQGltcG9ydCAnLi9ibG9jay9mb3Jtcyc7XHJcbiAgQGltcG9ydCAnLi9ibG9jay9zZWFyY2gtcmVzdWx0cyc7XHJcbiAgQGltcG9ydCAnLi9ibG9jay9kaXZpZGVyJztcclxuICBAaW1wb3J0ICcuL2Jsb2NrL2J1eS1ub3ctYnV0dG9uJztcclxuICBAaW1wb3J0ICcuL2Jsb2NrL2N0YW11bHRpcGxlJztcclxuICBAaW1wb3J0ICcuL2Jsb2NrL3ByaW1vc2VhcmNoJztcclxuXHJcbn1cclxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIEludHJvXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuJl9faW50cm8ge1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcblxuICAmLWJsb2NrX2ltYWdlIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogTW9sZWN1bGVzIC0gSW1hZ2VcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4mX19pbWFnZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy1ib3R0b206IHZhcigtLWNhcHRpb25IZWlnaHQpO1xuXG4gIGZpZ3VyZSB7XG4gICAgcGFkZGluZzogMCB2YXIoLS1ndXR0ZXIpO1xuICB9XG5cbiAgZmlnY2FwdGlvbiB7XG4gICAgd2lkdGg6IHZhcigtLWNhcHRpb25XaWR0aCk7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IHZhcigtLWNhcHRpb25PZmZzZXQpO1xuICAgIHBhZGRpbmctcmlnaHQ6IHZhcigtLWNhcHRpb25QYWRkaW5nKTtcbiAgICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtIDMwcHgpO1xuICB9XG5cbiAgYSB7XG4gICAgQGluY2x1ZGUgbGlua1Jlc2V0O1xuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogTW9sZWN1bGVzIC0gUXVvdGVzXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuLyoqXG4gKiBDb25maWdcbiAqL1xuXG5AbWl4aW4gcmF0aW5nKCRzdGFycykge1xuICAmOm50aC1jaGlsZCgtbiArICN7JHN0YXJzfSkge1xuICAgIHBhdGgge1xuICAgICAgZmlsbDogdmFyKC0tYy1wcmltYXJ5KTtcbiAgICAgIHN0cm9rZTogdmFyKC0tYy1wcmltYXJ5KTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBTdHlsZXNcbiAqL1xuXG4mX19xdW90ZSB7XG4gIC0tc3RhclNpemU6IDE3cHg7XG5cbiAgLnNob3J0LXF1b3RlIHtcbiAgICAtLXN0YXJTaXplOiAyNHB4O1xuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICBibG9ja3F1b3RlIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHRleHQtYWxpZ24tbGFzdDogY2VudGVyO1xuICAgIH1cbiAgfVxuXG4gIGJsb2NrcXVvdGUge1xuICAgIG1hcmdpbjogMCAwIDFyZW07XG4gIH1cblxuICBjaXRlIHtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gIH1cblxuICAucmF0aW5nIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgLnNob3J0LXF1b3RlICYge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgICB9XG5cbiAgICAmX19zdGFyIHtcbiAgICAgIHdpZHRoOiB2YXIoLS1zdGFyU2l6ZSk7XG4gICAgICBoZWlnaHQ6IHZhcigtLXN0YXJTaXplKTtcbiAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgICAgc3Ryb2tlOiB2YXIoLS1jLXByaW1hcnkpO1xuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGZvciAkc3RhcnMgZnJvbSAxIHRocm91Z2ggNSB7XG4gICAgICAmLS0jeyRzdGFyc30ge1xuICAgICAgICAucmF0aW5nX19zdGFyIHtcbiAgICAgICAgICBAaW5jbHVkZSByYXRpbmcoI3skc3RhcnN9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIEFjY29yZGlvbnNcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4mX19hY2NvcmRpb24ge1xuICAuYWNjb3JkaW9uIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYy1wcmltYXJ5KTtcbiAgfVxuICAuYWNjb3JkaW9uX19oZWFkZXIge1xuICAgIEBpbmNsdWRlIGxpbmtSZXNldDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlcjogMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB0ZXh0LWFsaWduLWxhc3Q6IGxlZnQ7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMC43NXJlbSAwO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jLXByaW1hcnkpO1xuICAgIHRyYW5zaXRpb246IGFsbCB2YXIoLS10cmFuc2l0aW9uKTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBAaW5jbHVkZSBiZy1pbWcoY29udGFpbik7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltZy9wbHVzLnN2ZycpO1xuICAgICAgaGVpZ2h0OiAxMnB4O1xuICAgICAgd2lkdGg6IDEycHg7XG4gICAgICBtaW4td2lkdGg6IDEycHg7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgdmFyKC0tdHJhbnNpdGlvbik7XG4gICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICB9XG5cbiAgICAmOmZvY3VzLFxuICAgICZbYXJpYS1leHBhbmRlZD0ndHJ1ZSddIHtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICAgICAgLy8gcGFkZGluZy1yaWdodDogMC43NXJlbTtcbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMHB4KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmW2FyaWEtZXhwYW5kZWQ9J3RydWUnXTo6YWZ0ZXIge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMHB4KTtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1nL2Nsb3NlLWFjY29yZGlvbi5zdmcnKTtcbiAgICB9XG4gIH1cblxuICAuYWNjb3JkaW9uX190aXRsZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgICY6YmVmb3JlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLmpzLWFjY29yZGlvbl9fcGFuZWwge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAuYWNjb3JkaW9uX19wYW5lbCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zaXRpb246IHZpc2liaWxpdHkgMHMgZWFzZSwgbWF4LWhlaWdodCAwLjJzIGVhc2UsIG9wYWNpdHkgMC4ycyBlYXNlO1xuICAgIG1heC1oZWlnaHQ6IDEwMDBlbTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIHRyYW5zaXRpb24tZGVsYXk6IDBzO1xuXG4gICAgJlthcmlhLWhpZGRlbj0ndHJ1ZSddIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjJzLCAwcywgMHM7XG4gICAgfVxuXG4gICAgcDpmaXJzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgIH1cblxuICAgIHA6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIEdhbGxlcnlcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4mX19nYWxsZXJ5IHtcbiAgLS1hdXRvR3JpZE1pbjogMjAlO1xuICAtLWF1dG9HcmlkR2FwOiAycmVtO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgLS1hdXRvR3JpZE1pbjogMzAlO1xuICAgIC0tYXV0b0dyaWRHYXA6IDFyZW07XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgnPDUwMHB4Jykge1xuICAgIC0tYXV0b0dyaWRNaW46IDEwMHB4O1xuICB9XG5cbiAgYSB7XG4gICAgQGluY2x1ZGUgbGlua1Jlc2V0O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICB9XG5cbiAgLmEtYXV0by1ncmlkIHtcbiAgICBhbGlnbi1pdGVtczogZW5kO1xuICB9XG5cbiAgZmlndXJlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIGZpZ2NhcHRpb24ge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udFNtYWxsKTtcbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIEltYWdlICYgVGV4dFxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbi5tLWltYWdldGV4dCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDJmcjtcbiAgZ2FwOiAycmVtO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc8eHMnKSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgZ2FwOiAxcmVtO1xuICB9XG5cbiAgJi0tcmV2ZXJzZSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyZnIgMWZyO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgIH1cblxuICAgIC5tLWltYWdldGV4dF9fY29weSB7XG4gICAgICBvcmRlcjogLTE7XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8eHMnKSB7XG4gICAgICAgIG9yZGVyOiAxO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogVW4udGl0bGVkXG4qIE1vbGVjdWxlcyAtIERvd25sb2Fkc1xuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qL1xuXG4vKipcbiogQ29uZmlnXG4qL1xuXG4vKipcbiogU3R5bGluZ1xuKi9cbiZfX2Rvd25sb2FkcyB7XG4gIGEge1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIEVtYmVkXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuJl9fZW1iZWQge1xuICBpZnJhbWUge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogTW9sZWN1bGVzIC0gVGFibGVzXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuJl9fdGFibGUge1xuICB0YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdGV4dC1hbGlnbi1sYXN0OiBsZWZ0O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgYm9yZGVyLXNwYWNpbmc6IDJweDtcbiAgICBib3JkZXItY29sbGFwc2U6IHVuc2V0O1xuXG4gICAgdGgge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzBlMzAzNDtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgfVxuXG4gICAgdGQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2E0ZGJlODtcbiAgICAgIHRyYW5zaXRpb246IDAuMnMgdmFyKC0tZWFzaW5nKTtcbiAgICB9XG5cbiAgICB0ZCxcbiAgICB0aCB7XG4gICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgfVxuXG4gICAgdGJvZHkge1xuICAgICAgdGgge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTRkYmU4O1xuICAgICAgICBjb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0ciB7XG4gICAgICAmOmhvdmVyIHRkIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgICAgY3Vyc29yOiBjcm9zc2hhaXI7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogTW9sZWN1bGVzIC0gRmxleGlibGUgc2lnbnBvc3RcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4mX19zaWducG9zdCB7XG4gICY6bGFzdC1vZi10eXBlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgLnNpZ25wb3N0IHtcbiAgICBtYXgtd2lkdGg6IHZhcigtLWNvbnRhaW5lcldpZHRoKTtcbiAgICBtYXJnaW46IDJyZW0gYXV0bztcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gICAgZ2FwOiAzcmVtO1xuICAgIGFsaWduLWl0ZW1zOiBzdGFydDtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8bGcnKSB7XG4gICAgICBnYXA6IDJyZW07XG4gICAgICBtYXJnaW4tbGVmdDogMXJlbSBhdXRvO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAmLS1yZXZlcnNlIHtcbiAgICAgIC5zaWducG9zdF9faW1hZ2Uge1xuICAgICAgICBvcmRlcjogLTE7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJl9faW1hZ2Uge1xuICAgICAgQGluY2x1ZGUgbGlua1Jlc2V0O1xuXG4gICAgICBpbWcge1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IHZhcigtLXRyYW5zaXRpb24pO1xuICAgICAgfVxuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgb3BhY2l0eTogMTtcblxuICAgICAgICBpbWcge1xuICAgICAgICAgIG9wYWNpdHk6IDAuODU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGZpZ3VyZSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jb250ZW50IHtcbiAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICBnYXA6IDEuNXJlbTtcbiAgICAgIGp1c3RpZnktaXRlbXM6IHN0YXJ0O1xuXG4gICAgICBoMixcbiAgICAgIC5hLWxpbmtzIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfVxuXG4gICAgICBwIHtcbiAgICAgICAgbWF4LXdpZHRoOiB2YXIoLS1saW5lTGVuZ3RoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBNb2xlY3VsZXMgLSBzaWducG9zdHNcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4mX19zaWducG9zdHMge1xuICAtLWF1dG9HcmlkTWluOiAyMCU7XG4gIC0tYXV0b0dyaWRHYXA6IDJyZW07XG5cbiAgcDpsYXN0LW9mLXR5cGUge1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIH1cblxuICAuYS1hdXRvLWdyaWQge1xuICAgIG1hcmdpbi10b3A6IDJyZW07XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgnPD1zbScpIHtcbiAgICAtLWF1dG9HcmlkTWluOiAzMCU7XG4gICAgLS1hdXRvR3JpZEdhcDogMXJlbTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCc8eHMnKSB7XG4gICAgLS1hdXRvR3JpZE1pbjogNDglO1xuICB9XG59XG5cbiZfX2V4dGVybmFsc2lnbnBvc3RzIHtcbiAgLm8tdGVhc2VyX190aHVtYiB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIExpbmtlZCBsb2dvc1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbiZfX2xpbmtlZGxvZ29zIHtcbiAgLS1hdXRvR3JpZE1pbjogMTAwcHg7XG4gIC0tYXV0b0dyaWRNYXg6IDMwJTtcbiAgLS1hdXRvR3JpZEdhcDogMnJlbTtcblxuICBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xuICAgIC0tYXV0b0dyaWRNYXg6IDFmcjtcbiAgfVxuXG4gIGEge1xuICAgIEBpbmNsdWRlIGxpbmtSZXNldDtcblxuICAgICY6aG92ZXIge1xuICAgICAgb3BhY2l0eTogMC43O1xuICAgIH1cbiAgfVxuXG4gIC5hLWF1dG8tZ3JpZCB7XG4gICAgYWxpZ24taXRlbXM6IGVuZDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHN0YXJ0O1xuICB9XG5cbiAgLnNpbmdsZSB7XG4gICAgaW1nIHtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIFZpZGVvXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuJl9fdmlkZW8ge1xuICAtLWF1dG9HcmlkR2FwOiAycmVtO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc+eHhzJykge1xuICAgIC0tYXV0b0dyaWRNaW46IDIzMHB4O1xuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogTW9sZWN1bGVzIC0gWU1BTFxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbiZfX3ltYWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcblxuICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIEJpZyBDVEFcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4mX19iaWdjdGEge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtYWxpZ24tbGFzdDogY2VudGVyO1xuICAvLyBwYWRkaW5nOiAzcmVtIDA7XG5cbiAgLy8gQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgLy8gICBwYWRkaW5nOiAxLjVyZW0gMDtcbiAgLy8gfVxuXG4gIC5hLWxpbmtzIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgIGEge1xuICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICB9XG4gIH1cblxuICAuaDIge1xuICAgIHAge1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNVxuICAgIH1cbiAgfVxuXG4gIC5iaWctYnRuIHtcbiAgICBAaW5jbHVkZSBsaW5rUmVzZXQ7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBhZGRpbmc6IDAuNXJlbSAzcmVtIDEuNXJlbTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAxO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDEuNXJlbTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICB9XG5cbiAgICBzdmcge1xuICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgIHdpZHRoOiA1MHB4O1xuICAgIH1cblxuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1waW5rKTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBib3R0b206IDA7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgzNSUpO1xuICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgei1pbmRleDogLTE7XG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gdmFyKC0tdHJhbnNpdGlvbik7XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyNyUpO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogTW9sZWN1bGVzIC0gTmV3cyB0YWdzXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuJl9fcmVhZG1vcmUge1xuICAudGVybXMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgICBhIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBNb2xlY3VsZXMgLSBRdWljayBsaW5rc1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbiZfX3F1aWNrbGlua3Mge1xuICBtYXJnaW4tdG9wOiAtNXJlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc8bGcnKSB7XG4gICAgbWFyZ2luLXRvcDogLTNyZW07XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgnPG1kJykge1xuICAgIG1hcmdpbi10b3A6IC0ycmVtO1xuICB9XG5cbiAgLmEtY29scyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy13aGl0ZSk7XG4gICAgcGFkZGluZy10b3A6IDEuMjVyZW07XG4gICAgcGFkZGluZy1ib3R0b206IDEuOHJlbTtcbiAgfVxuXG4gIC5hLWxpbmtzIHtcbiAgICBtYXJnaW46IDA7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBNb2xlY3VsZXMgLSBTcGVjaWFsIE9wdGlvbnNcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4mX19zcGVjaWFsLW9wdGlvbnMge1xuICBociB7XG4gICAgbWFyZ2luLWJvdHRvbTogM3JlbTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gICAgfVxuICB9XG5cbiAgLmEtYXV0by1ncmlkIHtcbiAgICAtLWF1dG9HcmlkTWluOiAyMyU7XG4gICAgLS1hdXRvR3JpZE1heDogMWZyO1xuICAgIC0tYXV0b0dyaWRHYXA6IDJyZW07XG5cbiAgICBtYXJnaW4tdG9wOiAzcmVtO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIC0tYXV0b0dyaWRNaW46IDIwMHB4O1xuICAgICAgLS1hdXRvR3JpZE1heDogMWZyO1xuXG4gICAgICBtYXJnaW4tdG9wOiAxLjVyZW07XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcbiAgICAgIC0tYXV0b0dyaWRNaW46IDE1MHB4O1xuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIFBlb3BsZSBwcm9maWxlc1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbiZfX3Blb3BsZXByb2ZpbGVzIHtcbiAgLnRpdGxlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgJi0tYm9yZGVyIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jLXByaW1hcnkpO1xuICAgIH1cblxuICAgIGEge1xuICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tYy10ZWFsKTtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXRlYWwpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogTW9sZWN1bGVzIC0gTGlzdGluZ1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbiZfX2xpc3Rpbmcge1xuICAud2hhdHMtb24ge1xuICAgIG1pbi1oZWlnaHQ6IDYwdmg7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBNb2xlY3VsZXMgLSBNaW5pIGxpc3RpbmdcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4mX19taW5pbGlzdGluZyB7XG4gIC0tYXV0b0dyaWRNaW46IDIwJTtcbiAgLS1hdXRvR3JpZEdhcDogMnJlbTtcblxuICBAaW5jbHVkZSBtZWRpYSgnPG1kJykge1xuICAgIC0tYXV0b0dyaWRNaW46IDMwJTtcbiAgICAtLWF1dG9HcmlkR2FwOiAxcmVtO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzw9c20nKSB7XG4gICAgLS1hdXRvR3JpZE1pbjogNDglO1xuICB9XG5cbiAgLmxpc3RpbmctaGVhZGVyIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7XG4gICAgZ2FwOiAxcmVtO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYy1wcmltYXJ5KTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMnJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxtZCcpIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgIH1cblxuICAgIGEge1xuICAgICAgYWxpZ24tc2VsZjogZW5kO1xuICAgICAganVzdGlmeS1zZWxmOiBlbmQ7XG4gICAgfVxuICB9XG5cbiAgLy8gLmEtYXV0by1ncmlkIHtcbiAgLy8gICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAvLyB9XG59XG4iLCIvKipcclxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gKiBVbi50aXRsZWRcclxuICogTW9sZWN1bGVzIC0gRW5oYW5jZWQgRXZlbnQgbGlzdGluZ1xyXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAqL1xyXG5cclxuICZfX2VuaGFuY2VkZXZlbnRsaXN0aW5nIHtcclxuICAgIC0tYXV0b0dyaWRNaW46IDIwJTtcclxuICAgIC0tYXV0b0dyaWRHYXA6IDJyZW07XHJcbiAgXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgnPG1kJykge1xyXG4gICAgICAtLWF1dG9HcmlkTWluOiAzMCU7XHJcbiAgICAgIC0tYXV0b0dyaWRHYXA6IDFyZW07XHJcbiAgICB9XHJcbiAgXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgnPD1zbScpIHtcclxuICAgICAgLS1hdXRvR3JpZE1pbjogNDglO1xyXG4gICAgfVxyXG4gIFxyXG4gICAgLmxpc3RpbmctaGVhZGVyIHtcclxuICAgICAgZGlzcGxheTogZ3JpZDtcclxuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMWZyKTtcclxuICAgICAgZ2FwOiAxcmVtO1xyXG4gICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XHJcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jLXByaW1hcnkpO1xyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogMnJlbTtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcclxuICBcclxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzxtZCcpIHtcclxuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcclxuICAgICAgfVxyXG4gIFxyXG4gICAgICBhIHtcclxuICAgICAgICBhbGlnbi1zZWxmOiBlbmQ7XHJcbiAgICAgICAganVzdGlmeS1zZWxmOiBlbmQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICBcclxuICAgIC8vIC5hLWF1dG8tZ3JpZCB7XHJcbiAgICAvLyAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAvLyB9XHJcbiAgfVxyXG4gICIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBNb2xlY3VsZXMgLSBGZWF0dXJlZCBjb250ZW50XG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuJl9fZmVhdHVyZWRjb250ZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcblxuICAuZmVhdHVyZWQge1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIHBhZGRpbmc6IDFyZW0gMDtcbiAgICB9XG5cbiAgICAmLS1tdWx0aSB7XG4gICAgICBwYWRkaW5nOiAycmVtIDA7XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcbiAgICAgIH1cblxuICAgICAgLy8gcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgLy8gcGFkZGluZy1ib3R0b206IDNyZW07XG5cbiAgICAgIC8vICY6OmJlZm9yZSB7XG4gICAgICAvLyAgIGNvbnRlbnQ6ICcnO1xuICAgICAgLy8gICB3aWR0aDogMTAwJTtcbiAgICAgIC8vICAgaGVpZ2h0OiA4MCU7XG4gICAgICAvLyAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgLy8gICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAvLyAgIGxlZnQ6IDA7XG4gICAgICAvLyAgIGJvdHRvbTogMDtcbiAgICAgIC8vICAgei1pbmRleDogMDtcbiAgICAgIC8vICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcblxuICAgICAgLy8gICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgLy8gICAgIGhlaWdodDogOTAlO1xuICAgICAgLy8gICB9XG4gICAgICAvLyB9XG5cbiAgICAgIC8vIC5hLWNvbHMge1xuICAgICAgLy8gICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAvLyB9XG4gICAgfVxuICB9XG5cbiAgLmEtYXV0by1ncmlkIHtcbiAgICAtLWF1dG9HcmlkR2FwOiAycmVtO1xuICAgIC0tYXV0b0dyaWRNaW46IDIyNXB4O1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIC0tYXV0b0dyaWRNaW46IDFmcjtcbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBNb2xlY3VsZXMgLSBDaXRhdGlvbnNcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4mX19jaXRhdGlvbnMge1xuICBjaXRlIHtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDMwcHggMWZyO1xuICAgIGdhcDogMC41cmVtO1xuICAgIGFsaWduLWl0ZW1zOiBzdGFydDtcbiAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICBAaW5jbHVkZSBsaW5rUmVzZXQ7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogdmFyKC0tYy1yZWQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHAgYSB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBNb2xlY3VsZXMgLSBJbWFnZSBab29tXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuJl9faW1hZ2V6b29tIHtcbiAgLmRlZXB6b29tQ29udGFpbmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbiAgfVxuICAubmF2aWdhdG9yIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCkgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWMtcHJpbWFyeSkgIWltcG9ydGFudDtcbiAgICBtYXJnaW46IDAgMTBweCAwIDAgIWltcG9ydGFudDtcbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIEZvcm1zXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuJl9fZm9ybSB7XG4gIC5nZm9ybV93cmFwcGVyIHtcbiAgICB1bCB7XG4gICAgICBsaS5nZmllbGQge1xuICAgICAgICBtYXJnaW4tdG9wOiAxLjVyZW07XG4gICAgICB9XG4gICAgfVxuXG4gICAgc2VsZWN0LFxuICAgIGlucHV0Om5vdChbdHlwZT0ncmFkaW8nXSk6bm90KFt0eXBlPSdjaGVja2JveCddKTpub3QoW3R5cGU9J3N1Ym1pdCddKTpub3QoW3R5cGU9J2J1dHRvbiddKTpub3QoW3R5cGU9J2ltYWdlJ10pOm5vdChbdHlwZT0nZmlsZSddKSB7XG4gICAgICBwYWRkaW5nOiAwLjc1cmVtIDFyZW07XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5maWVsZF9zdWJsYWJlbF9hYm92ZSAuZ2lucHV0X2NvbXBsZXguZ2lucHV0X2NvbnRhaW5lciBsYWJlbCxcbiAgICAuZmllbGRfc3VibGFiZWxfYWJvdmUgZGl2W2NsYXNzKj0nZ2ZpZWxkX2RhdGVfJ10uZ2lucHV0X2NvbnRhaW5lciBsYWJlbCxcbiAgICAuZmllbGRfc3VibGFiZWxfYWJvdmUgZGl2W2NsYXNzKj0nZ2ZpZWxkX3RpbWVfJ10uZ2lucHV0X2NvbnRhaW5lciBsYWJlbCxcbiAgICAuZmllbGRfc3VibGFiZWxfYmVsb3cgLmdpbnB1dF9jb21wbGV4LmdpbnB1dF9jb250YWluZXIgbGFiZWwsXG4gICAgLmZpZWxkX3N1YmxhYmVsX2JlbG93IGRpdltjbGFzcyo9J2dmaWVsZF9kYXRlXyddLmdpbnB1dF9jb250YWluZXIgbGFiZWwsXG4gICAgLmZpZWxkX3N1YmxhYmVsX2JlbG93IGRpdltjbGFzcyo9J2dmaWVsZF90aW1lXyddLmdpbnB1dF9jb250YWluZXIgbGFiZWwge1xuICAgICAgZm9udC1zaXplOiB2YXIoLS1mb250U21hbGwpO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgICBtYXJnaW4tdG9wOiAwLjI1cmVtO1xuICAgIH1cblxuICAgIHVsLmdmaWVsZF9jaGVja2JveCBsaSBpbnB1dFt0eXBlPSdjaGVja2JveCddLFxuICAgIHVsLmdmaWVsZF9yYWRpbyBsaSBpbnB1dFt0eXBlPSdyYWRpbyddIHtcbiAgICAgIGhlaWdodDogMjVweCAhaW1wb3J0YW50O1xuICAgICAgd2lkdGg6IDI1cHggIWltcG9ydGFudDtcbiAgICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICB9XG5cbiAgICAuZ2Zvcm1fYnV0dG9uIHtcbiAgICAgIC0tYnRuQmc6IHZhcigtLWMtcHJpbWFyeSk7XG4gICAgICAtLWJ0bkNvbG91cjogdmFyKC0tYy13aGl0ZSk7XG4gICAgICBAaW5jbHVkZSBidG47XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBAaW5jbHVkZSBidG4taG92ZXI7XG5cbiAgICAgICAgLS1idG5Db2xvdXI6IHZhcigtLWMtcHJpbWFyeSk7XG4gICAgICAgIC0tYnRuQmc6IHZhcigtLWMtd2hpdGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uZ2ZpZWxkX3RpbWVfaG91cixcbi5nZmllbGRfdGltZV9taW51dGUgIHtcbiAgbWF4LXdpZHRoOiAxMDBweCAhaW1wb3J0YW50O1xuICBpbnB1dCB7XG4gICAgbWF4LXdpZHRoOiAxMDBweCAhaW1wb3J0YW50O1xuICB9XG59IiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIFNlYXJjaCByZXN1bHRzXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuJl9fc2VhcmNoLXJlc3VsdHMge1xuICAuYS1saXN0aW5nIHtcbiAgICBhbGlnbi1pdGVtczogc3RhcnQ7XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBNb2xlY3VsZXMgLSBEaXZpZGVyXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuJl9fZGl2aWRlciB7XG5cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBNb2xlY3VsZXMgLSBCdXkgTm93IEJ1dHRvblxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbiZfX2J1eW5vd2J1dHRvbiB7XG4gIC5wcm9kdWN0LWlkcyB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpO1xuICAgIGdyaWQtZ2FwOiAyMHB4O1xuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICB9XG4gICAgJi0taXRlbSB7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgcGFkZGluZzogMTVweDtcbiAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAmOmVtcHR5IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICAgIGgyIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICAgIH1cbiAgICAgIC5zaG9waWZ5LWJ1eV9fcHJvZHVjdF9fdmFyaWFudC1zZWxlY3RvcnMge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgICAgLnNob3BpZnktYnV5X19vcHRpb24tc2VsZWN0LXdyYXBwZXIge1xuICAgICAgICBzdmcge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLnNlZS1jb2xsZWN0aW9uIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgICAgYSB7XG4gICAgICAgIC0tYnRuQmc6IHZhcigtLWMtcHJpbWFyeSk7XG4gICAgICAgIC0tYnRuQ29sb3VyOiB2YXIoLS1jLXdoaXRlKTtcbiAgICAgICAgQGluY2x1ZGUgYnRuO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIEBpbmNsdWRlIGJ0bi1ob3ZlcjtcbiAgICAgICAgfVxuICAgICAgfVxuICB9XG59XG5cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBNb2xlY3VsZXMgLSBDVEEgTXVsdGlwbGVcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4mX19jdGFtdWx0aXBsZSB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gIGdyaWQtZ2FwOiA0MHB4O1xuICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICB9XG59XG4iLCImX19wcmltb3NlYXJjaCB7XG4gICAgaDIuaDIge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLm0tc2VhcmNoLWZvcm0ge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAuYWNmLWJsb2NrLWJvZHkgJiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgfVxuICAgIH1cbn0iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogTW9sZWN1bGVzIC0gRm9ybXNcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG5pbnB1dCxcbmlucHV0W3R5cGU9J3RleHQnXSxcbmlucHV0W3R5cGU9J3Bhc3N3b3JkJ10sXG5pbnB1dFt0eXBlPSdlbWFpbCddLFxuaW5wdXRbdHlwZT0nc3VibWl0J10sXG50ZXh0YXJlYSxcbnNlbGVjdCB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250Qm9keSk7XG4gIGNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xuICByZXNpemU6IG5vbmU7XG4gIHBhZGRpbmc6IDAuNzVyZW0gMXJlbTtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIG91dGxpbmU6IDA7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtcHJpbWFyeSk7XG4gIHRyYW5zaXRpb246IGFsbCB2YXIoLS10cmFuc2l0aW9uKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy13aGl0ZSk7XG5cbiAgJjpmb2N1cyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1zZWNvbmRhcnkpO1xuICB9XG59XG5cbmlucHV0W3R5cGU9J3NlYXJjaCddLFxuaW5wdXRbdHlwZT0ndGV4dCddLFxuaW5wdXRbdHlwZT0nc3VibWl0J10ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi5mb3JtLWFjdGlvbnMgaW5wdXQsXG5pbnB1dFt0eXBlPSdzdWJtaXQnXSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuYnV0dG9uIHtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLy8gLy8gQ2hlY2tib3hlc1xuLy8gW3R5cGU9J2NoZWNrYm94J106Y2hlY2tlZCxcbi8vIFt0eXBlPSdjaGVja2JveCddOm5vdCg6Y2hlY2tlZCkge1xuLy8gICBwb3NpdGlvbjogYWJzb2x1dGU7XG4vLyAgIGxlZnQ6IC05OTk5cHg7XG4vLyB9XG4vLyBbdHlwZT0nY2hlY2tib3gnXTpjaGVja2VkICsgbGFiZWwsXG4vLyBbdHlwZT0nY2hlY2tib3gnXTpub3QoOmNoZWNrZWQpICsgbGFiZWwge1xuLy8gICBwb3NpdGlvbjogcmVsYXRpdmU7XG4vLyAgIHBhZGRpbmctbGVmdDogMjhweDtcbi8vICAgY3Vyc29yOiBwb2ludGVyO1xuLy8gICBsaW5lLWhlaWdodDogMjBweDtcbi8vICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuLy8gfVxuLy8gW3R5cGU9J2NoZWNrYm94J106Y2hlY2tlZCArIGxhYmVsOmJlZm9yZSxcbi8vIFt0eXBlPSdjaGVja2JveCddOm5vdCg6Y2hlY2tlZCkgKyBsYWJlbDpiZWZvcmUge1xuLy8gICBjb250ZW50OiAnJztcbi8vICAgcG9zaXRpb246IGFic29sdXRlO1xuLy8gICBsZWZ0OiAwO1xuLy8gICB0b3A6IDA7XG4vLyAgIHdpZHRoOiAyMHB4O1xuLy8gICBoZWlnaHQ6IDIwcHg7XG4vLyAgIGJvcmRlci1yYWRpdXM6IDNweDtcbi8vICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy13aGl0ZSk7XG4vLyAgIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWMtcHJpbWFyeSk7XG4vLyB9XG4vLyBbdHlwZT0nY2hlY2tib3gnXTpjaGVja2VkICsgbGFiZWw6YWZ0ZXIsXG4vLyBbdHlwZT0nY2hlY2tib3gnXTpub3QoOmNoZWNrZWQpICsgbGFiZWw6YWZ0ZXIge1xuLy8gICBjb250ZW50OiAnXFwyNzE0XFwwMDIwJztcbi8vICAgY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG4vLyAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbi8vICAgdG9wOiAxcHg7XG4vLyAgIGxlZnQ6IDMuNXB4O1xuLy8gICB0cmFuc2l0aW9uOiBhbGwgdmFyKC0tdHJhbnNpdGlvbik7XG4vLyB9XG4vLyBbdHlwZT0nY2hlY2tib3gnXTpub3QoOmNoZWNrZWQpICsgbGFiZWw6YWZ0ZXIge1xuLy8gICBvcGFjaXR5OiAwO1xuLy8gICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuLy8gfVxuLy8gW3R5cGU9J2NoZWNrYm94J106Y2hlY2tlZCArIGxhYmVsOmFmdGVyIHtcbi8vICAgb3BhY2l0eTogMTtcbi8vICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbi8vIH1cblxuLy8gW3R5cGU9J2NoZWNrYm94J106Zm9jdXMgKyBsYWJlbDpiZWZvcmUge1xuLy8gICBib3JkZXItY29sb3I6IHZhcigtLWMtc2Vjb25kYXJ5KTtcbi8vIH1cblxuLy8gLy8gUmFkaW9zXG4vLyBbdHlwZT0ncmFkaW8nXTpjaGVja2VkLFxuLy8gW3R5cGU9J3JhZGlvJ106bm90KDpjaGVja2VkKSB7XG4vLyAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbi8vICAgbGVmdDogLTk5OTlweDtcbi8vIH1cbi8vIFt0eXBlPSdyYWRpbyddOmNoZWNrZWQgKyBsYWJlbCxcbi8vIFt0eXBlPSdyYWRpbyddOm5vdCg6Y2hlY2tlZCkgKyBsYWJlbCB7XG4vLyAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbi8vICAgcGFkZGluZy1sZWZ0OiAyOHB4O1xuLy8gICBjdXJzb3I6IHBvaW50ZXI7XG4vLyAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuLy8gICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4vLyAgIGNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xuLy8gfVxuLy8gW3R5cGU9J3JhZGlvJ106Y2hlY2tlZCArIGxhYmVsOmJlZm9yZSxcbi8vIFt0eXBlPSdyYWRpbyddOm5vdCg6Y2hlY2tlZCkgKyBsYWJlbDpiZWZvcmUge1xuLy8gICBjb250ZW50OiAnJztcbi8vICAgcG9zaXRpb246IGFic29sdXRlO1xuLy8gICBsZWZ0OiAwO1xuLy8gICB0b3A6IDA7XG4vLyAgIHdpZHRoOiAyMHB4O1xuLy8gICBoZWlnaHQ6IDIwcHg7XG4vLyAgIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWMtcHJpbWFyeSk7XG4vLyAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4vLyAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuLy8gfVxuLy8gW3R5cGU9J3JhZGlvJ106Y2hlY2tlZCArIGxhYmVsOmFmdGVyLFxuLy8gW3R5cGU9J3JhZGlvJ106bm90KDpjaGVja2VkKSArIGxhYmVsOmFmdGVyIHtcbi8vICAgY29udGVudDogJyc7XG4vLyAgIHdpZHRoOiAxMnB4O1xuLy8gICBoZWlnaHQ6IDEycHg7XG4vLyAgIGJhY2tncm91bmQ6IHZhcigtLWMtcHJpbWFyeSk7XG4vLyAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbi8vICAgdG9wOiA0cHg7XG4vLyAgIGxlZnQ6IDRweDtcbi8vICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbi8vICAgdHJhbnNpdGlvbjogYWxsIHZhcigtLXRyYW5zaXRpb24pO1xuLy8gfVxuLy8gW3R5cGU9J3JhZGlvJ106bm90KDpjaGVja2VkKSArIGxhYmVsOmFmdGVyIHtcbi8vICAgb3BhY2l0eTogMDtcbi8vICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbi8vIH1cbi8vIFt0eXBlPSdyYWRpbyddOmNoZWNrZWQgKyBsYWJlbDphZnRlciB7XG4vLyAgIG9wYWNpdHk6IDE7XG4vLyAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4vLyB9XG4vLyBbdHlwZT0ncmFkaW8nXTpmb2N1cyArIGxhYmVsOmJlZm9yZSB7XG4vLyAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy1zZWNvbmRhcnkpO1xuLy8gfVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIE1haW4gbmF2XG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuLm0tbmF2IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcbiAgZ2FwOiA1dnc7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzxtZCcpIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICBnYXA6IDA7XG4gICAgcGFkZGluZy10b3A6IDJyZW07XG4gIH1cblxuICAmX19jb2xzIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gICAgZ2FwOiAzcmVtO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxtZCcpIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgICAgZ2FwOiAwO1xuICAgICAgcGFkZGluZzogMCA1dnc7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWF4LXdpZHRoOiAzMDBweDtcbiAgICAgIGp1c3RpZnktc2VsZjogY2VudGVyO1xuXG4gICAgICAmOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogM3JlbTtcbiAgICAgIH1cblxuICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8eHhzJykge1xuICAgICAgcGFkZGluZzogMCA1dnc7XG4gICAgfVxuXG4gICAgLmNvbHVtbiB7XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgZ2FwOiAzcmVtO1xuICAgICAgYWxpZ24taXRlbXM6IHN0YXJ0O1xuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPG1kJykge1xuICAgICAgICBnYXA6IDA7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmX19pbmZvIHtcbiAgICBAaW5jbHVkZSBtZWRpYSgnPG1kJykge1xuICAgICAgLm0tbmF2X19zb2NpYWwsXG4gICAgICBoMyxcbiAgICAgIHAge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICB9XG4gICAgfVxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PXNtJywgJzxtZCcpIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gICAgfVxuICB9XG5cbiAgJl9fbWVudSB7XG4gICAgQGluY2x1ZGUgbWVkaWEoJzxtZCcpIHtcbiAgICAgIG9yZGVyOiAtMTtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gICAgICBnYXA6IDJyZW07XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgICAgZ2FwOiAwO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLnByaW1hcnkge1xuICAgICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgICAgb3JkZXI6IDI7XG4gICAgICB9XG5cbiAgICAgIGEge1xuICAgICAgICBjb2xvcjogdmFyKC0tYy1ncmV5KTtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBjb2xvcjogdmFyKC0tYy1zZWNvbmRhcnkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtc2Vjb25kYXJ5KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBoMyB7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnRCb2R5KTtcbiAgfVxuXG4gIGE6bm90KC5hLWJ0bikge1xuICAgIEBpbmNsdWRlIGxpbmtSZXNldDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cblxuICAuYS1idG4ge1xuICAgIG1hcmdpbi10b3A6IDEuNXJlbTtcbiAgICBtYXgtd2lkdGg6IDMwMHB4O1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxtZCcpIHtcbiAgICAgIG1heC13aWR0aDogMzV2dztcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgbWF4LXdpZHRoOiAyNTBweDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xuICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICB9XG4gIH1cblxuICBuYXYge1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250VGl0bGUpO1xuICAgIGZvbnQtc2l6ZTogY2xhbXAoMS41cmVtLCA0dncsIDIuNXJlbSk7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxsZycpIHtcbiAgICAgIGZvbnQtc2l6ZTogY2xhbXAoMS41cmVtLCA0dncsIDJyZW0pO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIH1cblxuICAgIGEge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBNb2xlY3VsZXMgLSBCYW5uZXJcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuLm0tbm8tYmFubmVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDRyZW0gMCA1cmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtYWxpZ24tbGFzdDogY2VudGVyO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgcGFkZGluZzogM3JlbSAwIDRyZW07XG4gIH1cblxuICAmLS1uZXdzIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgfVxuXG4gICYtLXBhZ2Uge1xuICAgIGgxIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG5cbiAgcCB7XG4gICAgZm9udC1zaXplOiAxMTAlO1xuICB9XG5cbiAgLnByZS10aXRsZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICB9XG59XG5cbi5tLWJhbm5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luOiAwIDAgY2xhbXAoMS41cmVtLCA0dncsIDNyZW0pO1xuICB3aWR0aDogMTAwJTtcblxuICAmX19pbWFnZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBpY3R1cmUge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG5cbiAgJi0tZGVmYXVsdCxcbiAgJi0tYWx0IHtcbiAgICBpbWcge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgb2JqZWN0LXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICAgIH1cbiAgfVxuXG4gICYtLWRlZmF1bHQge1xuICAgIGhlaWdodDogY2xhbXAoMjB2aCwgNjB2dywgNjB2aCk7XG4gIH1cblxuICAmLS1hbHQge1xuICAgIGhlaWdodDogYXV0bztcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICAuYS1jb2xzIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubS1iYW5uZXJfX2lubmVyIHtcbiAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAyZnI7XG4gICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm0tYmFubmVyX19jb3B5IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgcGFkZGluZzogMnJlbTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgICAgb3JkZXI6IDE7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMXJlbSAxLjVyZW07XG4gICAgICB9XG4gICAgfVxuXG4gICAgaDEge1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBmb250LXNpemU6IGNsYW1wKDJyZW0sIDV2dywgNC43NXJlbSk7XG4gICAgICBsaW5lLWhlaWdodDogMS4xO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgdGV4dC1hbGlnbi1sYXN0OiBjZW50ZXI7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gICAgfVxuXG4gICAgLmg0IHtcbiAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgLmEtY29scyB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgIH1cbiAgfVxuXG4gICYtLWNvbGxlY3Rpb24ge1xuICAgIGhlaWdodDogdmFyKC0tdmFyaWFibGVIZWlnaHRMaW1pdCk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgYSxcbiAgICBwaWN0dXJlIHtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgaW1nIHtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pY29uIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGJvdHRvbTogMXJlbTtcbiAgICAgIHJpZ2h0OiAxcmVtO1xuXG4gICAgICBzdmcge1xuICAgICAgICB3aWR0aDogNDBweDtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xuICAgICAgICAgIHdpZHRoOiAyNXB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJi0tbGlzdGluZyB7XG4gICAgbWFyZ2luOiBjbGFtcCgxLjVyZW0sIDV2dywgMnJlbSkgMCBjbGFtcCgxLjVyZW0sIDV2dywgM3JlbSk7XG5cbiAgICBoMSB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuICB9XG5cbiAgYSB7XG4gICAgQGluY2x1ZGUgbGlua1Jlc2V0O1xuICB9XG5cbiAgLnByZS10aXRsZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICB9XG5cbiAgLmEtaW1hZ2UtY3JlZGl0IHtcbiAgICB6LWluZGV4OiA1O1xuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogTW9sZWN1bGVzIC0gU29jaWFsIGxpbmtzXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuLyoqXG4gKiBTdHlsaW5nXG4gKi9cbi5tLXNvY2lhbC1saW5rcyB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDUsIDFmcik7XG4gIGdhcDogMXJlbTtcbiAgLy8gZGlzcGxheTogZmxleDtcbiAgLy8gYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgLy8gZmxleC13cmFwOiB3cmFwO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc8eHhzJykge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIDFmcik7XG4gIH1cblxuICAubS1uYXZfX3NvY2lhbCAmIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg2LCAxZnIpO1xuICB9XG5cbiAgYSB7XG4gICAgQGluY2x1ZGUgbGlua1Jlc2V0O1xuICAgIC8vIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgaGVpZ2h0OiAzNXB4O1xuICAgIHdpZHRoOiAzNXB4O1xuXG4gICAgLy8gJjpsYXN0LWNoaWxkIHtcbiAgICAvLyAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAvLyB9XG5cbiAgICBzcGFuIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgfVxuXG4gICAgc3ZnIHtcbiAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICBwYXRoIHtcbiAgICAgIHRyYW5zaXRpb246IDAuMnMgdmFyKC0tdHJhbnNpdGlvbik7XG4gICAgICBmaWxsOiB2YXIoLS1jLXdoaXRlKTtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIHBhdGgge1xuICAgICAgICBmaWxsOiB2YXIoLS1jLXBpbmspO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogVW4udGl0bGVkXG4qIE1vbGVjdWxlcyAtIFN1Ym5hdlxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qL1xuXG4vKipcbiogQ29uZmlnXG4qL1xuXG4vKipcbiogU3R5bGluZ1xuKi9cblxudWwubS1zdWJuYXYge1xuICBAaW5jbHVkZSBsaS1yZXNldDtcblxuICB1bCB7XG4gICAgbWFyZ2luLXRvcDogMC4yNXJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAxcmVtO1xuICB9XG5cbiAgLy8gLmN1cnJlbnRfcGFnZV9hbmNlc3RvciA+IGEsXG4gIC8vIC5jdXJyZW50X3BhZ2VfcGFyZW50ID4gYSB7XG4gIC8vICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIC8vIH1cbiAgLy8gW2FyaWEtY3VycmVudD0ncGFnZSddIHtcbiAgLy8gICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgLy8gfVxuXG4gIGEge1xuICAgIEBpbmNsdWRlIGxpbmtSZXNldDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIG1pbi1oZWlnaHQ6IDIwcHg7XG5cbiAgICBzcGFuIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG5cbiAgICAmW2FyaWEtY3VycmVudF0sXG4gICAgJjpob3ZlciB7XG4gICAgICAvLyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgIGNvbG9yOiB2YXIoLS1jLXJlZCk7XG5cbiAgICAgIHNwYW4ge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJiA+IGxpID4gYSB7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnRCb2xkKTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIH1cbn1cbiIsIi8qKlxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qIFVuLnRpdGxlZFxuKiBNb2xlY3VsZXMgLSBJbnRyb1xuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qL1xuXG4vKipcbiogQ29uZmlnXG4qL1xuXG4vKipcbiogU3R5bGluZ1xuKi9cbi5tLWludHJvIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogdmFyKC0tY29udGFpbmVyV2lkdGgpO1xuICBkaXNwbGF5OiBncmlkO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGVuZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgdmFyKC0tY29scy02KSkgbWlubWF4KDAsIHZhcigtLWNvbHMtMykpO1xuICBtYXJnaW4tdG9wOiAycmVtO1xuXG4gICYtLWFsdCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgdmFyKC0tY29scy0zKSkgbWlubWF4KDAsIHZhcigtLWNvbHMtNikpO1xuICAgIGp1c3RpZnktY29udGVudDogc3RhcnQ7XG4gIH1cblxuICAmLS1jb2xsZWN0aW9uIHtcbiAgICBtYXJnaW4tdG9wOiAxcmVtO1xuXG4gICAgLmEtY29scy0tc20ge1xuICAgICAgcGFkZGluZy10b3A6IGNsYW1wKDEuNXJlbSwgNHZ3LCAzcmVtKTtcblxuICAgICAgJiA+IC5hLWNvbHMtLXNtIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgnPG1kJykge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgIGp1c3RpZnktaXRlbXM6IGNlbnRlcjtcblxuICAgIC5hLWNvbHMtLXhzIHtcbiAgICAgIG1heC13aWR0aDogdmFyKC0tY29scy02KTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgIG1hcmdpbi10b3A6IDFyZW07XG4gIH1cbn1cbiIsIi8qKlxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qIFVuLnRpdGxlZFxuKiBNb2xlY3VsZXMgLSBBbmNob3IgbmF2XG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cbi8qKlxuKiBDb25maWdcbiovXG5cbi8qKlxuKiBTdHlsaW5nXG4qL1xuLm0tYW5jaG9yLW5hdiB7XG4gICZfX2xpbmtzIHtcbiAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcblxuICAgIGEge1xuICAgICAgQGluY2x1ZGUgbGlua1Jlc2V0O1xuICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBBbmNob3Igc2Nyb2xsIHBvc2l0aW9uIG9mZnNldFxuc3BhbltkYXRhLWFuY2hvcl0ge1xuICBtYXJnaW4tdG9wOiAtNTBweDtcbiAgbWFyZ2luLWJvdHRvbTogNTBweDtcbn1cbiIsIi8qKlxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qIFVuLnRpdGxlZFxuKiBNb2xlY3VsZXMgLSBDb3Vyc2UgZGV0YWlsc1xuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qL1xuXG4vKipcbiogQ29uZmlnXG4qL1xuXG4vKipcbiogU3R5bGluZ1xuKi9cbi5tLWNvdXJzZS1kZXRhaWxzIHtcbiAgLS1hdXRvR3JpZE1pbjogMTUlO1xuICAtLWF1dG9HcmlkR2FwOiAycmVtO1xuICBtYXJnaW46IDNyZW0gMCAycmVtO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc8bWQnKSB7XG4gICAgbWFyZ2luOiAycmVtIDAgMXJlbTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgLS1hdXRvR3JpZE1pbjogMTUwcHg7XG4gICAgLS1hdXRvR3JpZEdhcDogMXJlbTtcbiAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzx4eHMnKSB7XG4gICAgLS1hdXRvR3JpZE1pbjogMWZyO1xuICB9XG5cbiAgJl9fZGV0YWlsIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYy1wcmltYXJ5KTtcbiAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcblxuICAgIGgzIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKiBVbi50aXRsZWRcbiogTW9sZWN1bGVzIC0gUGVvcGxlIHNpZGViYXJcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKi9cblxuLyoqXG4qIENvbmZpZ1xuKi9cblxuLyoqXG4qIFN0eWxpbmdcbiovXG4ubS1wZW9wbGUtc2lkZWJhciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgJl9fbGlua3Mge1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB9XG4gIH1cblxuICBpbWcge1xuICAgIG1hcmdpbi10b3A6IHZhcigtLXBob3RvT2Zmc2V0KTtcbiAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBtYXgtd2lkdGg6IDMzMHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzwxNjAwcHgnKSB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cbiAgfVxuXG4gIGEge1xuICAgIEBpbmNsdWRlIGxpbmtSZXNldDtcbiAgICBAaW5jbHVkZSBiZy1pbWcoMjBweCk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jLXByaW1hcnkpO1xuICAgIHBhZGRpbmc6IDAuNXJlbSAwIDAuNXJlbSAzMnB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGxlZnQgY2VudGVyO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1nL2xpbmsuc3ZnJyk7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xuICAgICAgYm9yZGVyLXRvcDogMDtcbiAgICAgIHBhZGRpbmc6IDAuNzVyZW07XG4gICAgICB3aWR0aDogYXV0bztcbiAgICAgIG1hcmdpbjogMC4yNXJlbTtcblxuICAgICAgc3BhbiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgc3ZnIHtcbiAgICAgIGp1c3RpZnktc2VsZjogY2VudGVyO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgc3BhbiB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xuICAgICAgICBvcGFjaXR5OiAwLjc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJltocmVmKj0nbWFpbHRvJ10ge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWcvZW1haWwuc3ZnJyk7XG4gICAgfVxuICAgICZbaHJlZio9J3RlbCddIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1nL3Bob25lLnN2ZycpO1xuICAgIH1cbiAgICAmW2hyZWYqPSd0d2l0dGVyJ10ge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWcvdHdpdHRlci5zdmcnKTtcbiAgICB9XG4gICAgJltocmVmKj0nZmFjZWJvb2snXSB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltZy9mYWNlYm9vay5zdmcnKTtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogYXV0byAyMHB4O1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNXB4IGNlbnRlcjtcbiAgICB9XG4gICAgJltocmVmKj0nbGlua2VkaW4nXSB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltZy9saW5rZWRpbi5zdmcnKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qIFVuLnRpdGxlZFxuKiBNb2xlY3VsZXMgLSBIb21lcGFnZSBiYW5uZXJcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKi9cblxuLyoqXG4qIENvbmZpZ1xuKi9cblxuQGtleWZyYW1lcyBiYW5uZXJJbiB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHotaW5kZXg6IC0xO1xuICB9XG4gIDEwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB6LWluZGV4OiAxO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgei1pbmRleDogMTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGJhbm5lck91dCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHotaW5kZXg6IDE7XG4gIH1cbiAgOTAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHotaW5kZXg6IDE7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB6LWluZGV4OiAtMTtcbiAgfVxufVxuXG4vKipcbiogU3R5bGluZ1xuKi9cbi5tLWhvbWVwYWdlLWJhbm5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWluLWhlaWdodDogNjB2aDtcbiAgd2lkdGg6IDEwMCU7XG5cbiAgZmlndXJlIHtcbiAgICAmLmRlZmF1bHQtaW1hZ2Uge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgaGVpZ2h0OiAwO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBwYWRkaW5nLXRvcDogNTYuMjUlO1xuXG4gICAgICBpbWcge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBhIHtcbiAgICAgIEBpbmNsdWRlIGxpbmtSZXNldDtcbiAgICB9XG4gIH1cblxuICBpbWcge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxuXG4gICZfX2Jsb2NrLWltZyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgdmFyKC0tdHJhbnNpdGlvbik7XG4gICAgei1pbmRleDogLTE7XG5cbiAgICAmW2RhdGEtdmlzaWJsZT0ndHJ1ZSddIHtcbiAgICAgIGFuaW1hdGlvbjogYmFubmVySW4gMC4ycyBlYXNlLWluLW91dCBmb3J3YXJkcztcbiAgICB9XG4gICAgJltkYXRhLXZpc2libGU9J2ZhbHNlJ10ge1xuICAgICAgYW5pbWF0aW9uOiBiYW5uZXJPdXQgMC4ycyBlYXNlLWluLW91dCBmb3J3YXJkcztcbiAgICB9XG4gIH1cblxuICAmX19ibG9ja3Mge1xuICAgIHBhZGRpbmc6IDAgNXJlbTtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gICAgZ2FwOiAwLjVyZW07XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPGxnJykge1xuICAgICAgcGFkZGluZzogMCAzLjVyZW07XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgICAgcGFkZGluZzogMDtcbiAgICB9XG4gIH1cblxuICAmX19ibG9jayB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy13aGl0ZSk7XG4gICAgcGFkZGluZzogMnJlbTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDI7XG4gICAgbWFyZ2luLXRvcDogLTE0cmVtO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgdmFyKC0tdHJhbnNpdGlvbik7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPGxnJykge1xuICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgIG1hcmdpbi10b3A6IC01cmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cblxuICAgIC5wcmUtdGl0bGUge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAuYS1saW5rcyB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICAgYSB7XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmEtYnRuIHtcbiAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXRlYWwpO1xuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXB1cnBsZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKiBVbi50aXRsZWRcbiogTW9sZWN1bGVzIC0gRXZlbnQgc2lkZWJhclxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qL1xuXG4vKipcbiogQ29uZmlnXG4qL1xuXG4vKipcbiogU3R5bGluZ1xuKi9cbi5tLWV2ZW50LXNpZGViYXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcblxuICAucHJvbW8tY29weSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgfVxuXG4gIC5kZXRhaWwge1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jLXByaW1hcnkpO1xuICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgbWFyZ2luLXRvcDogMC41cmVtO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgICAmLS1ib2xkIHtcbiAgICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250Qm9sZCk7XG4gICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICB9XG5cbiAgICAmLS1jb3B5IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cbiAgICAgIGgyLFxuICAgICAgaDMsXG4gICAgICBoNCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgIH1cbiAgICAgICYgPiBwIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBzdmcge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIG1heC13aWR0aDogMTVweDtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogVW4udGl0bGVkXG4qIE1vbGVjdWxlcyAtIFNlYXJjaCBmb3JtXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cbi8qKlxuKiBDb25maWdcbiovXG5cbi8qKlxuKiBTdHlsaW5nXG4qL1xuLm0tc2VhcmNoLWZvcm0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICAgIHBhZGRpbmctdG9wOiAycmVtO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJ2hlaWdodDw2MDBweCcpIHtcbiAgICBtYXgtaGVpZ2h0OiA3MHZoO1xuICB9XG5cbiAgJl9fcm93IHtcbiAgICBtYXJnaW4tYm90dG9tOiAzcmVtO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbiAgICB9XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cblxuICBoMyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udEJvZHkpO1xuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICB9XG5cbiAgLmEtbGlua3Mge1xuICAgIG1hcmdpbjogMDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICYtLWJpZyB7XG4gICAgICBmb250LXNpemU6IDEuNXJlbTtcblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHh4cycpIHtcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGEge1xuICAgIEBpbmNsdWRlIGxpbmtSZXNldDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgLy8gdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWMtd2hpdGUpO1xuICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogdmFyKC0tYy1zZWNvbmRhcnkpO1xuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXNlY29uZGFyeSk7XG4gICAgfVxuICB9XG5cbiAgZm9ybSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWMtd2hpdGUpO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgNzVweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEzMDBweDtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciA1MHB4O1xuICAgIH1cblxuICAgIGlucHV0IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuICAgICAgLy8gdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnRUaXRsZSk7XG4gICAgICBmb250LXNpemU6IDNyZW07XG4gICAgICBwYWRkaW5nOiAwLjVyZW0gMCAwLjVyZW0gMXJlbTtcbiAgICAgIG1pbi13aWR0aDogMDtcblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzxtZCcpIHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgIH1cblxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIC8vIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgfVxuXG4gICAgICAmLnN1Ym1pdCB7XG4gICAgICAgICY6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlcixcbiAgICAgICAgJjotbW96LXBsYWNlaG9sZGVyLFxuICAgICAgICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlcixcbiAgICAgICAgJjotbW96LXBsYWNlaG9sZGVyLFxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgIG9wYWNpdHk6IDAuNztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmOi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIsXG4gICAgICAmOi1tb3otcGxhY2Vob2xkZXIsXG4gICAgICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlcixcbiAgICAgICY6LW1vei1wbGFjZWhvbGRlcixcbiAgICAgICY6OnBsYWNlaG9sZGVyLFxuICAgICAgOjpwbGFjZWhvbGRlciB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbiAgICAgICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDtcbiAgICAgICAgb3BhY2l0eTogMC43O1xuICAgICAgfVxuICAgIH1cblxuICAgIGlucHV0OjpwbGFjZWhvbGRlciB7XG4gICAgICBjb2xvcjogdmFyKC0tYy13aGl0ZSk7XG4gICAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xuICAgICAgb3BhY2l0eTogMC43O1xuICAgIH1cblxuICAgIGJ1dHRvbiB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXRyYW5zaXRpb24pO1xuXG4gICAgICBzdmcge1xuICAgICAgICB3aWR0aDogMzBweDtcbiAgICAgIH1cblxuICAgICAgcGF0aCB7XG4gICAgICAgIHN0cm9rZTogdmFyKC0tYy13aGl0ZSk7XG4gICAgICAgIHRyYW5zaXRpb246IHN0cm9rZSB2YXIoLS10cmFuc2l0aW9uKTtcbiAgICAgIH1cblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuXG4gICAgICAgIHBhdGgge1xuICAgICAgICAgIHN0cm9rZTogdmFyKC0tYy1wcmltYXJ5KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogVW4udGl0bGVkXG4qIE1vbGVjdWxlcyAtIFBlcmZvcm1hbmNlcyBtb2RhbFxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qL1xuXG4vKipcbiogQ29uZmlnXG4qL1xuXG4vKipcbiogU3R5bGluZ1xuKi9cbi5tLXBlcmZvcm1hbmNlcyB7XG4gIC0tbW9kYWxQYWRkaW5nOiA0cmVtO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgLS1tb2RhbFBhZGRpbmc6IDJyZW07XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xuICAgIC0tbW9kYWxQYWRkaW5nOiAxcmVtO1xuICB9XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxNCwgNDgsIDUyLCAwLjkpO1xuXG4gICZfX2lubmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLWdyZXlMaWdodCk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogdmFyKC0tY29udGFpbmVyV2lkdGgpO1xuICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWF4LWhlaWdodDogMTAwdmg7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgaDIge1xuICAgICAgICBtYXJnaW4tdG9wOiAzcmVtO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZfX3BlcmZvcm1hbmNlcyB7XG4gICAgbWFyZ2luOiAycmVtIDAgMDtcbiAgICBwYWRkaW5nOiAwIHZhcigtLW1vZGFsUGFkZGluZyk7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICB9XG4gIH1cblxuICAmX19wZXJmb3JtYW5jZSB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgxNTBweCwgYXV0bykgMWZyIG1pbm1heCgyMDBweCwgYXV0byk7XG4gICAgZ2FwOiAycmVtO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nOiAwLjc1cmVtIDA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYy1wcmltYXJ5KTtcbiAgICB0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uKTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgxNTBweCwgYXV0bykgMWZyO1xuICAgICAgZ2FwOiAxcmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8eHMnKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICAgIGdhcDogMC41cmVtO1xuICAgIH1cblxuICAgICY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYy1wcmltYXJ5KTtcbiAgICB9XG5cbiAgICB0aW1lIHtcbiAgICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPGxnJykge1xuICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc+eHMnLCAnPHNtJykge1xuICAgICAgICAmOm50aC1jaGlsZCgyKSB7XG4gICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAuYS1idG4ge1xuICAgICAganVzdGlmeS1zZWxmOiBlbmQ7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPnhzJywgJzxzbScpIHtcbiAgICAgICAgZ3JpZC1jb2x1bW46IHNwYW4gMjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOjpiZWZvcmUsXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB3aWR0aDogdmFyKC0tbW9kYWxQYWRkaW5nKTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gICAgfVxuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGxlZnQ6IGNhbGModmFyKC0tbW9kYWxQYWRkaW5nKSAqIC0xKTtcbiAgICB9XG5cbiAgICAmOjphZnRlciB7XG4gICAgICByaWdodDogY2FsYyh2YXIoLS1tb2RhbFBhZGRpbmcpICogLTEpO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy15ZWxsb3cpO1xuICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qIFVuLnRpdGxlZFxuKiBNb2xlY3VsZXMgLSBHYWxsZXJ5XG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cbi8qKlxuKiBDb25maWdcbiovXG5cbi8qKlxuKiBTdHlsaW5nXG4qL1xuLm0tZ2FsbGVyeSB7XG4gIC5wc3dwX19idXR0b24ge1xuICAgIHdpZHRoOiA0NHB4O1xuICAgIGhlaWdodDogNDRweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBib3JkZXI6IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIG9wYWNpdHk6IDAuNzU7XG4gICAgdHJhbnNpdGlvbjogYWxsIHZhcigtLXRyYW5zaXRpb24pO1xuICB9XG4gIC5wc3dwX19idXR0b246Zm9jdXMsXG4gIC5wc3dwX19idXR0b246aG92ZXIge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgLnBzd3BfX2J1dHRvbjphY3RpdmUge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG4gIC5wc3dwX19idXR0b246Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAwO1xuICB9XG5cbiAgLyogcHN3cF9fdWktLW92ZXItY2xvc2UgY2xhc3MgaXQgYWRkZWQgd2hlbiBtb3VzZSBpcyBvdmVyIGVsZW1lbnQgdGhhdCBzaG91bGQgY2xvc2UgZ2FsbGVyeSAqL1xuICAucHN3cF9fdWktLW92ZXItY2xvc2UgLnBzd3BfX2J1dHRvbi0tY2xvc2Uge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAucHN3cF9fYnV0dG9uLFxuICAucHN3cF9fYnV0dG9uLS1hcnJvdy0tbGVmdDpiZWZvcmUsXG4gIC5wc3dwX19idXR0b24tLWFycm93LS1yaWdodDpiZWZvcmUge1xuICAgIGJhY2tncm91bmQ6IHVybCgnLi4vaW1nL2RlZmF1bHQtc2tpbi5wbmcnKSAwIDAgbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogMjY0cHggODhweDtcbiAgICB3aWR0aDogNDRweDtcbiAgICBoZWlnaHQ6IDQ0cHg7XG4gIH1cblxuICBAbWVkaWEgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMS4xKSxcbiAgICAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjA5Mzc1KSxcbiAgICAobWluLXJlc29sdXRpb246IDEwNWRwaSksXG4gICAgKG1pbi1yZXNvbHV0aW9uOiAxLjFkcHB4KSB7XG4gICAgLyogU2VydmUgU1ZHIHNwcml0ZSBpZiBicm93c2VyIHN1cHBvcnRzIFNWRyBhbmQgcmVzb2x1dGlvbiBpcyBtb3JlIHRoYW4gMTA1ZHBpICovXG4gICAgLnBzd3AtLXN2ZyAucHN3cF9fYnV0dG9uLFxuICAgIC5wc3dwLS1zdmcgLnBzd3BfX2J1dHRvbi0tYXJyb3ctLWxlZnQ6YmVmb3JlLFxuICAgIC5wc3dwLS1zdmcgLnBzd3BfX2J1dHRvbi0tYXJyb3ctLXJpZ2h0OmJlZm9yZSB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltZy9kZWZhdWx0LXNraW4uc3ZnJyk7XG4gICAgfVxuICAgIC5wc3dwLS1zdmcgLnBzd3BfX2J1dHRvbi0tYXJyb3ctLWxlZnQsXG4gICAgLnBzd3AtLXN2ZyAucHN3cF9fYnV0dG9uLS1hcnJvdy0tcmlnaHQge1xuICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICB9XG4gIH1cblxuICAucHN3cF9fYnV0dG9uLS1jbG9zZSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtNDRweDtcbiAgfVxuXG4gIC5wc3dwX19idXR0b24tLXNoYXJlIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDRweCAtNDRweDtcbiAgfVxuXG4gIC5wc3dwX19idXR0b24tLWZzIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLnBzd3AtLXN1cHBvcnRzLWZzIC5wc3dwX19idXR0b24tLWZzIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIC5wc3dwLS1mcyAucHN3cF9fYnV0dG9uLS1mcyB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQ0cHggMDtcbiAgfVxuXG4gIC5wc3dwX19idXR0b24tLXpvb20ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTg4cHggMDtcbiAgfVxuXG4gIC5wc3dwLS16b29tLWFsbG93ZWQgLnBzd3BfX2J1dHRvbi0tem9vbSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAucHN3cC0tem9vbWVkLWluIC5wc3dwX19idXR0b24tLXpvb20ge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IC0xMzJweCAwO1xuICB9XG5cbiAgLyogbm8gYXJyb3dzIG9uIHRvdWNoIHNjcmVlbnMgKi9cbiAgLnBzd3AtLXRvdWNoIC5wc3dwX19idXR0b24tLWFycm93LS1sZWZ0LFxuICAucHN3cC0tdG91Y2ggLnBzd3BfX2J1dHRvbi0tYXJyb3ctLXJpZ2h0IHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIH1cblxuICAvKlxuICAgIEFycm93IGJ1dHRvbnMgaGl0IGFyZWFcbiAgICAoaWNvbiBpcyBhZGRlZCB0byA6YmVmb3JlIHBzZXVkby1lbGVtZW50KVxuICAqL1xuICAucHN3cF9fYnV0dG9uLS1hcnJvdy0tbGVmdCxcbiAgLnBzd3BfX2J1dHRvbi0tYXJyb3ctLXJpZ2h0IHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIHRvcDogNTAlO1xuICAgIG1hcmdpbi10b3A6IC01MHB4O1xuICAgIHdpZHRoOiA3MHB4O1xuICAgIGhlaWdodDogMTAwcHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICB9XG5cbiAgLnBzd3BfX2J1dHRvbi0tYXJyb3ctLWxlZnQge1xuICAgIGxlZnQ6IDA7XG4gIH1cblxuICAucHN3cF9fYnV0dG9uLS1hcnJvdy0tcmlnaHQge1xuICAgIHJpZ2h0OiAwO1xuICB9XG5cbiAgLnBzd3BfX2J1dHRvbi0tYXJyb3ctLWxlZnQ6YmVmb3JlLFxuICAucHN3cF9fYnV0dG9uLS1hcnJvdy0tcmlnaHQ6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICB0b3A6IDM1cHg7XG4gICAgLy8gYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjMpO1xuICAgIGhlaWdodDogMzBweDtcbiAgICB3aWR0aDogMzJweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIH1cblxuICAucHN3cF9fYnV0dG9uLS1hcnJvdy0tbGVmdDpiZWZvcmUge1xuICAgIGxlZnQ6IDZweDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTM4cHggLTQ0cHg7XG4gIH1cblxuICAucHN3cF9fYnV0dG9uLS1hcnJvdy0tcmlnaHQ6YmVmb3JlIHtcbiAgICByaWdodDogNnB4O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IC05NHB4IC00NHB4O1xuICB9XG5cbiAgLypcbiAgXG4gICAgMi4gU2hhcmUgbW9kYWwvcG9wdXAgYW5kIGxpbmtzXG4gIFxuICAgKi9cbiAgLnBzd3BfX2NvdW50ZXIsXG4gIC5wc3dwX19zaGFyZS1tb2RhbCB7XG4gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgfVxuXG4gIC5wc3dwX19zaGFyZS1tb2RhbCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjUpO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBwYWRkaW5nOiAxMHB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAxNjAwO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDAuMjVzIGVhc2Utb3V0O1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4yNXMgZWFzZS1vdXQ7XG4gICAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIHdpbGwtY2hhbmdlOiBvcGFjaXR5O1xuICB9XG5cbiAgLnBzd3BfX3NoYXJlLW1vZGFsLS1oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAucHN3cF9fc2hhcmUtdG9vbHRpcCB7XG4gICAgei1pbmRleDogMTYyMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy13aGl0ZSk7XG4gICAgdG9wOiA1NnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogYXV0bztcbiAgICByaWdodDogNDRweDtcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMnB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMjUpO1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMjUpO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDZweCk7XG4gICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSg2cHgpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg2cHgpO1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gMC4yNXM7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMjVzO1xuICAgIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xuICB9XG4gIC5wc3dwX19zaGFyZS10b29sdGlwIGEge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDhweCAxMnB4O1xuICAgIGNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gIH1cbiAgLnBzd3BfX3NoYXJlLXRvb2x0aXAgYTpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xuICB9XG4gIC5wc3dwX19zaGFyZS10b29sdGlwIGE6Zmlyc3QtY2hpbGQge1xuICAgIC8qIHJvdW5kIGNvcm5lcnMgb24gdGhlIGZpcnN0L2xhc3QgbGlzdCBpdGVtICovXG4gICAgYm9yZGVyLXJhZGl1czogMnB4IDJweCAwIDA7XG4gIH1cbiAgLnBzd3BfX3NoYXJlLXRvb2x0aXAgYTpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgMnB4IDJweDtcbiAgfVxuXG4gIC5wc3dwX19zaGFyZS1tb2RhbC0tZmFkZS1pbiB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICAucHN3cF9fc2hhcmUtbW9kYWwtLWZhZGUtaW4gLnBzd3BfX3NoYXJlLXRvb2x0aXAge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB9XG5cbiAgLyogaW5jcmVhc2Ugc2l6ZSBvZiBzaGFyZSBsaW5rcyBvbiB0b3VjaCBkZXZpY2VzICovXG4gIC5wc3dwLS10b3VjaCAucHN3cF9fc2hhcmUtdG9vbHRpcCBhIHtcbiAgICBwYWRkaW5nOiAxNnB4IDEycHg7XG4gIH1cblxuICBhLnBzd3BfX3NoYXJlLS1mYWNlYm9vazpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAtMTJweDtcbiAgICByaWdodDogMTVweDtcbiAgICBib3JkZXI6IDZweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbiAgICAtd2Via2l0LXBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIC1tb3otcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cblxuICBhLnBzd3BfX3NoYXJlLS1mYWNlYm9vazpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogIzNlNWM5YTtcbiAgICBjb2xvcjogdmFyKC0tYy13aGl0ZSk7XG4gIH1cbiAgYS5wc3dwX19zaGFyZS0tZmFjZWJvb2s6aG92ZXI6YmVmb3JlIHtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiAjM2U1YzlhO1xuICB9XG5cbiAgYS5wc3dwX19zaGFyZS0tdHdpdHRlcjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogIzU1YWNlZTtcbiAgICBjb2xvcjogdmFyKC0tYy13aGl0ZSk7XG4gIH1cblxuICBhLnBzd3BfX3NoYXJlLS1waW50ZXJlc3Q6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICNjY2M7XG4gICAgY29sb3I6ICNjZTI3MmQ7XG4gIH1cblxuICBhLnBzd3BfX3NoYXJlLS1kb3dubG9hZDpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2RkZDtcbiAgfVxuXG4gIC8qXG4gIFxuICAgIDMuIEluZGV4IGluZGljYXRvciAoXCIxIG9mIFhcIiBjb3VudGVyKVxuICBcbiAgICovXG4gIC5wc3dwX19jb3VudGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDA7XG4gICAgaGVpZ2h0OiA0NHB4O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBsaW5lLWhlaWdodDogNDRweDtcbiAgICBjb2xvcjogdmFyKC0tYy13aGl0ZSk7XG4gICAgb3BhY2l0eTogMC43NTtcbiAgICBwYWRkaW5nOiAwIDEwcHg7XG4gIH1cblxuICAvKlxuICAgIFxuICAgIDQuIENhcHRpb25cbiAgXG4gICAqL1xuICAucHN3cF9fY2FwdGlvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDQ0cHg7XG4gIH1cbiAgLnBzd3BfX2NhcHRpb24gc21hbGwge1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBjb2xvcjogI2JiYjtcbiAgfVxuXG4gIC5wc3dwX19jYXB0aW9uX19jZW50ZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXgtd2lkdGg6IDcwMHB4O1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICBjb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcbiAgfVxuXG4gIC5wc3dwX19jYXB0aW9uLS1lbXB0eSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC8qIEZha2UgY2FwdGlvbiBlbGVtZW50LCB1c2VkIHRvIGNhbGN1bGF0ZSBoZWlnaHQgb2YgbmV4dC9wcmV2IGltYWdlICovXG4gIC5wc3dwX19jYXB0aW9uLS1mYWtlIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIH1cblxuICAvKlxuICBcbiAgICA1LiBMb2FkaW5nIGluZGljYXRvciAocHJlbG9hZGVyKVxuICBcbiAgICBZb3UgY2FuIHBsYXkgd2l0aCBpdCBoZXJlIC0gaHR0cDovL2NvZGVwZW4uaW8vZGltc2VtZW5vdi9wZW4veXlCV29SXG4gIFxuICAgKi9cbiAgLnBzd3BfX3ByZWxvYWRlciB7XG4gICAgd2lkdGg6IDQ0cHg7XG4gICAgaGVpZ2h0OiA0NHB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogNTAlO1xuICAgIG1hcmdpbi1sZWZ0OiAtMjJweDtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAwLjI1cyBlYXNlLW91dDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMjVzIGVhc2Utb3V0O1xuICAgIHdpbGwtY2hhbmdlOiBvcGFjaXR5O1xuICAgIGRpcmVjdGlvbjogbHRyO1xuICB9XG5cbiAgLnBzd3BfX3ByZWxvYWRlcl9faWNuIHtcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgbWFyZ2luOiAxMnB4O1xuICB9XG5cbiAgLnBzd3BfX3ByZWxvYWRlci0tYWN0aXZlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIC5wc3dwX19wcmVsb2FkZXItLWFjdGl2ZSAucHN3cF9fcHJlbG9hZGVyX19pY24ge1xuICAgIC8qIFdlIHVzZSAuZ2lmIGluIGJyb3dzZXJzIHRoYXQgZG9uJ3Qgc3VwcG9ydCBDU1MgYW5pbWF0aW9uICovXG4gICAgYmFja2dyb3VuZDogdXJsKC4uL2ltZy9wcmVsb2FkZXIuZ2lmKSAwIDAgbm8tcmVwZWF0O1xuICB9XG5cbiAgLnBzd3AtLWNzc19hbmltYXRpb24gLnBzd3BfX3ByZWxvYWRlci0tYWN0aXZlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIC5wc3dwLS1jc3NfYW5pbWF0aW9uIC5wc3dwX19wcmVsb2FkZXItLWFjdGl2ZSAucHN3cF9fcHJlbG9hZGVyX19pY24ge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uOiBjbG9ja3dpc2UgNTAwbXMgbGluZWFyIGluZmluaXRlO1xuICAgIGFuaW1hdGlvbjogY2xvY2t3aXNlIDUwMG1zIGxpbmVhciBpbmZpbml0ZTtcbiAgfVxuICAucHN3cC0tY3NzX2FuaW1hdGlvbiAucHN3cF9fcHJlbG9hZGVyLS1hY3RpdmUgLnBzd3BfX3ByZWxvYWRlcl9fZG9udXQge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uOiBkb251dC1yb3RhdGUgMTAwMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMjIsIDEpXG4gICAgICBpbmZpbml0ZTtcbiAgICBhbmltYXRpb246IGRvbnV0LXJvdGF0ZSAxMDAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yMiwgMSkgaW5maW5pdGU7XG4gIH1cblxuICAucHN3cC0tY3NzX2FuaW1hdGlvbiAucHN3cF9fcHJlbG9hZGVyX19pY24ge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgb3BhY2l0eTogMC43NTtcbiAgICB3aWR0aDogMTRweDtcbiAgICBoZWlnaHQ6IDE0cHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDE1cHg7XG4gICAgdG9wOiAxNXB4O1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIC5wc3dwLS1jc3NfYW5pbWF0aW9uIC5wc3dwX19wcmVsb2FkZXJfX2N1dCB7XG4gICAgLyogXG4gICAgICAgIFRoZSBpZGVhIG9mIGFuaW1hdGluZyBpbm5lciBjaXJjbGUgaXMgYmFzZWQgb24gUG9seW1lciAoXCJtYXRlcmlhbFwiKSBsb2FkaW5nIGluZGljYXRvciBcbiAgICAgICAgIGJ5IEtlYW51IExlZSBodHRwczovL2Jsb2cua2VhbnVsZWUuY29tLzIwMTQvMTAvMjAvdGhlLXRhbGUtb2YtdGhyZWUtc3Bpbm5lcnMuaHRtbFxuICAgICAgKi9cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDdweDtcbiAgICBoZWlnaHQ6IDE0cHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuXG4gIC5wc3dwLS1jc3NfYW5pbWF0aW9uIC5wc3dwX19wcmVsb2FkZXJfX2RvbnV0IHtcbiAgICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB3aWR0aDogMTRweDtcbiAgICBoZWlnaHQ6IDE0cHg7XG4gICAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tYy13aGl0ZSk7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgICAucHN3cF9fcHJlbG9hZGVyIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGxlZnQ6IGF1dG87XG4gICAgICB0b3A6IGF1dG87XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxuICB9XG5cbiAgQC13ZWJraXQta2V5ZnJhbWVzIGNsb2Nrd2lzZSB7XG4gICAgMCUge1xuICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIH1cbiAgICAxMDAlIHtcbiAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgfVxuICB9XG5cbiAgQGtleWZyYW1lcyBjbG9ja3dpc2Uge1xuICAgIDAlIHtcbiAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgIH1cbiAgfVxuXG4gIEAtd2Via2l0LWtleWZyYW1lcyBkb251dC1yb3RhdGUge1xuICAgIDAlIHtcbiAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgICB9XG4gICAgNTAlIHtcbiAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoLTE0MGRlZyk7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTQwZGVnKTtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDApO1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gICAgfVxuICB9XG5cbiAgQGtleWZyYW1lcyBkb251dC1yb3RhdGUge1xuICAgIDAlIHtcbiAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgICB9XG4gICAgNTAlIHtcbiAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoLTE0MGRlZyk7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTQwZGVnKTtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDApO1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gICAgfVxuICB9XG5cbiAgLypcbiAgICBcbiAgICA2LiBBZGRpdGlvbmFsIHN0eWxlc1xuICBcbiAgICovXG4gIC8qIHJvb3QgZWxlbWVudCBvZiBVSSAqL1xuICAucHN3cF9fdWkge1xuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGF1dG87XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHotaW5kZXg6IDE1NTA7XG4gIH1cblxuICAvKiB0b3AgYmxhY2sgYmFyIHdpdGggYnV0dG9ucyBhbmQgXCIxIG9mIFhcIiBpbmRpY2F0b3IgKi9cbiAgLnBzd3BfX3RvcC1iYXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMDtcbiAgICBoZWlnaHQ6IDQ0cHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAucHN3cF9fY2FwdGlvbixcbiAgLnBzd3BfX3RvcC1iYXIsXG4gIC5wc3dwLS1oYXNfbW91c2UgLnBzd3BfX2J1dHRvbi0tYXJyb3ctLWxlZnQsXG4gIC5wc3dwLS1oYXNfbW91c2UgLnBzd3BfX2J1dHRvbi0tYXJyb3ctLXJpZ2h0IHtcbiAgICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgd2lsbC1jaGFuZ2U6IG9wYWNpdHk7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDMzM21zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMjIsIDEpO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMzMzbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yMiwgMSk7XG4gIH1cblxuICAvKiBwc3dwLS1oYXNfbW91c2UgY2xhc3MgaXMgYWRkZWQgb25seSB3aGVuIHR3byBzdWJzZXF1ZW50IG1vdXNlbW92ZSBldmVudHMgb2NjdXIgKi9cbiAgLnBzd3AtLWhhc19tb3VzZSAucHN3cF9fYnV0dG9uLS1hcnJvdy0tbGVmdCxcbiAgLnBzd3AtLWhhc19tb3VzZSAucHN3cF9fYnV0dG9uLS1hcnJvdy0tcmlnaHQge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIH1cblxuICAucHN3cF9fdG9wLWJhcixcbiAgLnBzd3BfX2NhcHRpb24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgfVxuXG4gIC8qIHBzd3BfX3VpLS1maXQgY2xhc3MgaXMgYWRkZWQgd2hlbiBtYWluIGltYWdlIFwiZml0c1wiIGJldHdlZW4gdG9wIGJhciBhbmQgYm90dG9tIGJhciAoY2FwdGlvbikgKi9cbiAgLnBzd3BfX3VpLS1maXQgLnBzd3BfX3RvcC1iYXIsXG4gIC5wc3dwX191aS0tZml0IC5wc3dwX19jYXB0aW9uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCk7XG4gIH1cblxuICAvKiBwc3dwX191aS0taWRsZSBjbGFzcyBpcyBhZGRlZCB3aGVuIG1vdXNlIGlzbid0IG1vdmluZyBmb3Igc2V2ZXJhbCBzZWNvbmRzIChKUyBvcHRpb24gdGltZVRvSWRsZSkgKi9cbiAgLnBzd3BfX3VpLS1pZGxlIC5wc3dwX190b3AtYmFyIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgLnBzd3BfX3VpLS1pZGxlIC5wc3dwX19idXR0b24tLWFycm93LS1sZWZ0LFxuICAucHN3cF9fdWktLWlkbGUgLnBzd3BfX2J1dHRvbi0tYXJyb3ctLXJpZ2h0IHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgLypcbiAgICBwc3dwX191aS0taGlkZGVuIGNsYXNzIGlzIGFkZGVkIHdoZW4gY29udHJvbHMgYXJlIGhpZGRlblxuICAgIGUuZy4gd2hlbiB1c2VyIHRhcHMgdG8gdG9nZ2xlIHZpc2liaWxpdHkgb2YgY29udHJvbHNcbiAgKi9cbiAgLnBzd3BfX3VpLS1oaWRkZW4gLnBzd3BfX3RvcC1iYXIsXG4gIC5wc3dwX191aS0taGlkZGVuIC5wc3dwX19jYXB0aW9uLFxuICAucHN3cF9fdWktLWhpZGRlbiAucHN3cF9fYnV0dG9uLS1hcnJvdy0tbGVmdCxcbiAgLnBzd3BfX3VpLS1oaWRkZW4gLnBzd3BfX2J1dHRvbi0tYXJyb3ctLXJpZ2h0IHtcbiAgICAvKiBGb3JjZSBwYWludCAmIGNyZWF0ZSBjb21wb3NpdGlvbiBsYXllciBmb3IgY29udHJvbHMuICovXG4gICAgb3BhY2l0eTogMC4wMDE7XG4gIH1cblxuICAvKiBwc3dwX191aS0tb25lLXNsaWRlIGNsYXNzIGlzIGFkZGVkIHdoZW4gdGhlcmUgaXMganVzdCBvbmUgaXRlbSBpbiBnYWxsZXJ5ICovXG4gIC5wc3dwX191aS0tb25lLXNsaWRlIC5wc3dwX19idXR0b24tLWFycm93LS1sZWZ0LFxuICAucHN3cF9fdWktLW9uZS1zbGlkZSAucHN3cF9fYnV0dG9uLS1hcnJvdy0tcmlnaHQsXG4gIC5wc3dwX191aS0tb25lLXNsaWRlIC5wc3dwX19jb3VudGVyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLnBzd3BfX2VsZW1lbnQtLWRpc2FibGVkIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cblxuICAucHN3cC0tbWluaW1hbC0tZGFyayAucHN3cF9fdG9wLWJhciB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgfVxuXG4gIC5wc3dwX196b29tLXdyYXAsXG4gIC5wc3dwX19jb250YWluZXIsXG4gIC5wc3dwX19pdGVtIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbiAgfVxuXG4gIC5wc3dwX19idXR0b24ge1xuICAgIGNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWZlZmVmO1xuICAgIH1cbiAgfVxuXG4gIC5wc3dwX19jb3VudGVyIHtcbiAgICBjb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcbiAgfVxuXG4gIC5wc3dwLS16b29tZWQtaW4ge1xuICAgIC5wc3dwX19jYXB0aW9uIHtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKiBVbi50aXRsZWRcbiogTW9sZWN1bGVzIC0gVG9nZ2xlIHN1Ym5hdlxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qL1xuXG4vKipcbiogQ29uZmlnXG4qL1xuXG4vKipcbiogU3R5bGluZ1xuKi9cbi5tLXRvZ2dsZS1zdWJuYXYge1xuICAmW2RhdGEtaXNPcGVuPSdmYWxzZSddIHtcbiAgICBidXR0b246YWZ0ZXIge1xuICAgICAgY29udGVudDogJysnO1xuICAgIH1cblxuICAgICYgPiBkaXYge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICBidXR0b24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgY29udGVudDogJ1xcMjAxNCc7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSB2YXIoLS10cmFuc2l0aW9uKTtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMHB4KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qIFVuLnRpdGxlZFxuKiBNb2xlY3VsZXMgLSBTdWJuYXYgY29udGFpbmVyXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cbi8qKlxuKiBDb25maWdcbiovXG5cbi8qKlxuKiBTdHlsaW5nXG4qL1xuLm0tc3VibmF2LWNvbnRhaW5lciB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jLXByaW1hcnkpO1xuXG4gIC5tLXN1Ym5hdiB7XG4gICAgbWFyZ2luLXRvcDogMS41cmVtO1xuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogT3JnYW5pc21zIC0gSGVhZGVyXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuLm8taGVhZGVyIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMWZyKTtcbiAganVzdGlmeS1pdGVtczogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nOiAxcmVtIDJyZW07XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzwxMTAwcHgnKSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcbiAgICBqdXN0aWZ5LWl0ZW1zOiBzdGFydDtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgcGFkZGluZzogMXJlbTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCc8eHMnKSB7XG4gICAgcGFkZGluZzogMC41cmVtIDE1cHg7XG4gIH1cblxuICAmX19uYXYge1xuICAgIGp1c3RpZnktc2VsZjogc3RhcnQ7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPDExMDBweCcpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgfVxuXG4gICAgdWwge1xuICAgICAgQGluY2x1ZGUgbGktcmVzZXQ7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgIEBpbmNsdWRlIGxpbmtSZXNldDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIG1hcmdpbi1yaWdodDogMS4yNXJlbTtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZfX2xvZ28ge1xuICAgIEBpbmNsdWRlIGxpbmtSZXNldDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgc3ZnIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgbWF4LXdpZHRoOiAyNDBweDtcbiAgICB9XG5cbiAgICBwYXRoIHtcbiAgICAgIHRyYW5zaXRpb246IGZpbGwgdmFyKC0tdHJhbnNpdGlvbik7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICBwYXRoIHtcbiAgICAgICAgZmlsbDogdmFyKC0tYy1yZWQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZfX2J1dHRvbnMge1xuICAgIGp1c3RpZnktc2VsZjogZW5kO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ2FwOiAwLjVyZW07XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgMWZyKTtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcbiAgICAgIGdhcDogMDtcbiAgICB9XG5cbiAgICBidXR0b24sXG4gICAgYSB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgaGVpZ2h0OiA0MnB4O1xuICAgICAgd2lkdGg6IDQycHg7XG4gICAgICBwYWRkaW5nOiAwIDAuNXJlbTtcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tdHJhbnNpdGlvbik7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcblxuICAgICAgc3ZnIHtcbiAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgIH1cbiAgICAgICYudGlja2V0LWljb24ge1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBwYXRoIHtcbiAgICAgICAgICAgIHN0cm9rZTogbm9uZTtcbiAgICAgICAgICAgIGZpbGw6ICB2YXIoLS1jLXdoaXRlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcGF0aCB7XG4gICAgICAgIHRyYW5zaXRpb246IHN0cm9rZSB2YXIoLS10cmFuc2l0aW9uKTtcbiAgICAgIH1cblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG5cbiAgICAgICAgcGF0aCB7XG4gICAgICAgICAgc3Ryb2tlOiB2YXIoLS1jLXdoaXRlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGgxIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogT3JnYW5pc21zIC0gRm9vdGVyXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuLm8tZm9vdGVyIHtcbiAgLS1jb2xNYXhXaWR0aDogMjUwcHg7XG4gIC0tcGFkZGluZzogM3JlbTtcblxuICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgIC0tY29sTWF4V2lkdGg6IDM1MHB4O1xuICAgIC0tcGFkZGluZzogMnJlbTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCc8eHhzJykge1xuICAgIC0tY29sTWF4V2lkdGg6IG5vbmU7XG4gIH1cblxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xuICBjb2xvcjogdmFyKC0tYy13aGl0ZSk7XG4gIHBhZGRpbmc6IHZhcigtLXBhZGRpbmcpIDA7XG5cbiAgLmEtY29scy0tZnVsbCB7XG4gICAgbWF4LXdpZHRoOiAxMjAwcHg7XG4gIH1cblxuICAuYS1saW5rcyB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuXG4gICAgYSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgfVxuICB9XG5cbiAgaDMge1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250Qm9keSk7XG4gIH1cblxuICAmX190b3Age1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMWZyKTtcbiAgICBnYXA6IDFyZW07XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1pdGVtczogY2VudGVyO1xuICAgICAgZ2FwOiAycmVtO1xuICAgIH1cblxuICAgICYgPiBkaXYge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXgtd2lkdGg6IHZhcigtLWNvbE1heFdpZHRoKTtcbiAgICB9XG4gIH1cblxuICAmX19hYm91dCB7XG4gICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgZ3JpZC1yb3c6IDEgLyA1O1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgZ3JpZC1yb3c6IGF1dG87XG5cbiAgICAgIHAge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmEtbGlua3Mge1xuICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICB9XG4gIH1cblxuICAmX19uZXdzbGV0dGVyIHtcbiAgICBncmlkLWNvbHVtbjogMjtcbiAgICBncmlkLXJvdzogMSAvIDI7XG4gICAganVzdGlmeS1zZWxmOiBjZW50ZXI7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICBncmlkLXJvdzogYXV0bztcbiAgICAgIG9yZGVyOiAtMTtcbiAgICB9XG4gIH1cblxuICAmX19pbmZvIHtcbiAgICBncmlkLWNvbHVtbjogMjtcbiAgICBncmlkLXJvdzogMiAvIDU7XG4gICAgYWxpZ24tc2VsZjogZW5kO1xuICAgIGp1c3RpZnktc2VsZjogY2VudGVyO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgZ3JpZC1yb3c6IGF1dG87XG4gICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICBvcmRlcjogMjtcbiAgICB9XG4gIH1cblxuICAmX19qb2luLXN1cHBvcnQge1xuICAgIGdyaWQtY29sdW1uOiAzO1xuICAgIGdyaWQtcm93OiAxIC8gMztcbiAgICBqdXN0aWZ5LXNlbGY6IGVuZDtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgIGdyaWQtcm93OiBhdXRvO1xuICAgICAganVzdGlmeS1zZWxmOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLmxpbmtzIHtcbiAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICAgIGdhcDogMXJlbTtcbiAgICB9XG4gIH1cblxuICAmX19zb2NpYWwge1xuICAgIGdyaWQtY29sdW1uOiAzO1xuICAgIGdyaWQtcm93OiAzO1xuICAgIGFsaWduLXNlbGY6IGVuZDtcbiAgICBqdXN0aWZ5LXNlbGY6IGVuZDtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgIGdyaWQtcm93OiBhdXRvO1xuICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgICAganVzdGlmeS1zZWxmOiBjZW50ZXI7XG4gICAgICBvcmRlcjogLTI7XG4gICAgfVxuICB9XG5cbiAgJl9fYm90dG9tIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1wYWRkaW5nKTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cbiAgfVxuXG4gICZfX3BhcnRuZXJzLFxuICAmX19oZWFkbGluZS1wYXJ0bmVyIHtcbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXgtd2lkdGg6IHZhcigtLWNvbE1heFdpZHRoKTtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgIEBpbmNsdWRlIGxpbmtSZXNldDtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIG9wYWNpdHk6IDAuNztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmX19oZWFkbGluZS1wYXJ0bmVyIHtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIHAge1xuICAgICAgbWF4LXdpZHRoOiB2YXIoLS1jb2xNYXhXaWR0aCk7XG4gICAgICBmb250LXNpemU6IHZhcigtLWZvbnRTbWFsbCk7XG4gICAgfVxuXG4gICAgaW1nIHtcbiAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgfVxuICB9XG5cbiAgJl9fcGFydG5lcnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIG1hcmdpbi10b3A6IHZhcigtLXBhZGRpbmcpO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgaGVpZ2h0OiA1MHB4O1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBtYXJnaW4tcmlnaHQ6IDEuNXJlbTtcblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzx4eHMnKSB7XG4gICAgICAgIGhlaWdodDogNDBweDtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZfX2xlZ2FsIHtcbiAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnRTbWFsbCk7XG4gICAgbWFyZ2luLXRvcDogMXJlbTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICBtYXJnaW4tdG9wOiB2YXIoLS1wYWRkaW5nKTtcbiAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE9yZ2FuaXNtcyAtIFNlYXJjaCByZXN1bHRzXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuLm8tc2VhcmNoLXJlc3VsdHMtd3JhcHBlciB7XG4gIGgyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLnJlc3VsdF9fdGl0bGUge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICAmX19saXN0IHtcbiAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuXG4gICAgb2wge1xuICAgICAgQGluY2x1ZGUgbGktcmVzZXQ7XG5cbiAgICAgIGxpIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBPcmdhbmlzbXMgLSBUZWFzZXJzXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuLm8tZmVhdHVyZWQtdGVhc2VyLFxuLm8tbGlzdGluZy10ZWFzZXIsXG4uby10ZWFzZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcblxuICBAaW5jbHVkZSBtZWRpYSgnPnNtJykge1xuICAgICYtLXNpbmdsZSB7XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcbiAgICAgIGdhcDogMnJlbTtcbiAgICB9XG4gIH1cblxuICAmX190aHVtYiB7XG4gICAgQGluY2x1ZGUgbGlua1Jlc2V0O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIGZpZ3VyZSB7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBwYWRkaW5nLXRvcDogNTYuMjUlO1xuXG4gICAgICAmLmxpc3RpbmdfaW1hZ2Vfc3F1YXJlIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDEwMCU7XG4gICAgICB9XG4gICAgICAmLmxpc3RpbmdfaW1hZ2VfcG9ydHJhaXQge1xuICAgICAgICBwYWRkaW5nLXRvcDogMTMzLjMzMzMlO1xuICAgICAgfVxuXG4gICAgICBwaWN0dXJlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIC8vIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtYmxhY2spO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLWdyZXlMaWdodCk7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaW1nIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IHZhcigtLXRyYW5zaXRpb24pO1xuICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgfVxuXG4gICAgLmxhYmVsIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogLTAuOHJlbTtcbiAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICBmb250LXNpemU6IHZhcigtLWZvbnRTbWFsbCk7XG4gICAgICBwYWRkaW5nOiA1cHggMTBweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG4gICAgICBjb2xvcjogdmFyKC0tYy13aGl0ZSk7XG5cbiAgICAgICYudGVhbCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtdGVhbCk7XG4gICAgICB9XG4gICAgICAmLnZpb2xldCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtbWFyb29uKTtcbiAgICAgIH1cblxuICAgICAgJi55ZWxsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXllbGxvdyk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgaW1nIHtcbiAgICAgICAgb3BhY2l0eTogMC45O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZfX2NvbnRlbnQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIHBhZGRpbmc6IDAuNXJlbSAwO1xuICAgIH1cblxuICAgIGE6bm90KC5hLWJ0bik6bm90KC5yZWFkLW1vcmUpIHtcbiAgICAgIEBpbmNsdWRlIGxpbmtSZXNldDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG5cbiAgICAudGFnIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuICAgICAgZm9udC1zaXplOiB2YXIoLS1mb250U21hbGwpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCc+c20nKSB7XG4gICAgICAuby10ZWFzZXItLXNpbmdsZSAmIHtcbiAgICAgICAgZ3JpZC1yb3c6IDE7XG4gICAgICAgIGdyaWQtY29sdW1uOiAyO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIHA6bGFzdC1vZi10eXBlIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG5cbiAgJl9fYnV0dG9ucyB7XG4gICAgbWFyZ2luLXRvcDogYXV0bztcbiAgICBwYWRkaW5nOiAwIDAgMXJlbTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgJiA+IC5hLWJ0biB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udFNtYWxsKTtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgIHN2ZyB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgIH1cblxuICAgICAgJjpub3QoLm5vLWxpbmspOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1zZWNvbmRhcnkpO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmID4gYSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJz5zbScpIHtcbiAgICAgIC5vLXRlYXNlci0tc2luZ2xlICYge1xuICAgICAgICBncmlkLXJvdzogMTtcbiAgICAgICAgZ3JpZC1jb2x1bW46IDI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHAge1xuICAgIG1heC13aWR0aDogdmFyKC0tbGluZUxlbmd0aCk7XG4gIH1cbn1cblxuLm8tbGlzdGluZy10ZWFzZXIge1xuICAvLyBkaXNwbGF5OiBncmlkO1xuICAvLyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgLy8gZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnIgMWZyO1xuICAvLyBhbGlnbi1pdGVtczogc3RyZXRjaDtcblxuICAvLyBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xuICAvLyAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyO1xuICAvLyB9XG5cbiAgaDIge1xuICAgIGZvbnQtc2l6ZTogY2xhbXAoMS42cmVtLCAyLjJ2dywgMi44cmVtKTtcbiAgfVxuXG4gICZfX3RodW1iIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBhbGlnbi1zZWxmOiBlbmQ7XG4gIH1cblxuICAmX19jb250ZW50IHtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgfVxuXG4gICZfX2J1dHRvbnMge1xuICAgIG1hcmdpbi10b3A6IDFyZW07XG4gIH1cbn1cblxuLm8tZmVhdHVyZWQtdGVhc2VyIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcbiAgZ2FwOiAycmVtO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc8bGcnKSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMS41ZnI7XG4gICAgZ2FwOiAxcmVtO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzxtZCcpIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgfVxuXG4gICYtLXNpbmdsZSB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAvLyAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDEyLCAxZnIpO1xuICAgIC8vICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgIC8vICAgQGluY2x1ZGUgbWVkaWEoJzw9c20nKSB7XG4gICAgLy8gICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgIC8vICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICAvLyAgIH1cblxuICAgIC8vICAgLm8tZmVhdHVyZWQtdGVhc2VyX190aHVtYiB7XG4gICAgLy8gICAgIGdyaWQtY29sdW1uOiAxIC8gOTtcbiAgICAvLyAgICAgZ3JpZC1yb3c6IDE7XG5cbiAgICAvLyAgICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAvLyAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAvLyAgICAgfVxuICAgIC8vICAgfVxuXG4gICAgLy8gICAuby1mZWF0dXJlZC10ZWFzZXJfX2NvbnRlbnQge1xuICAgIC8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xuICAgIC8vICAgICBncmlkLWNvbHVtbjogOCAvIDEzO1xuICAgIC8vICAgICBncmlkLXJvdzogMTtcbiAgICAvLyAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIC8vICAgICBwYWRkaW5nOiAzcmVtO1xuXG4gICAgLy8gICAgIEBpbmNsdWRlIG1lZGlhKCc8bGcnKSB7XG4gICAgLy8gICAgICAgcGFkZGluZzogMS41cmVtIDEuNXJlbSAzcmVtO1xuICAgIC8vICAgICB9XG5cbiAgICAvLyAgICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAvLyAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAvLyAgICAgICBncmlkLXJvdzogMjtcbiAgICAvLyAgICAgICBwYWRkaW5nLWJvdHRvbTogMS41cmVtO1xuICAgIC8vICAgICB9XG4gICAgLy8gICB9XG5cbiAgICAvLyAgIEBpbmNsdWRlIG1lZGlhKCc+c20nKSB7XG4gICAgLy8gICAgIC5vLWZlYXR1cmVkLXRlYXNlcl9fYnV0dG9ucyB7XG4gICAgLy8gICAgICAgcGFkZGluZy1ib3R0b206IDA7XG5cbiAgICAvLyAgICAgICAmID4gLmEtYnRuIHtcbiAgICAvLyAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAvLyAgICAgICAgIGJvdHRvbTogLTEuMjVyZW07XG4gICAgLy8gICAgICAgICBsZWZ0OiAzcmVtO1xuICAgIC8vICAgICAgICAgbWFyZ2luLXRvcDogMDtcblxuICAgIC8vICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxsZycpIHtcbiAgICAvLyAgICAgICAgICAgbGVmdDogMS41cmVtO1xuICAgIC8vICAgICAgICAgfVxuICAgIC8vICAgICAgIH1cbiAgICAvLyAgICAgfVxuICAgIC8vICAgfVxuICB9XG5cbiAgJl9fY29udGVudCB7XG4gICAgY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICAmX19idXR0b25zIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgbWFyZ2luLXRvcDogMS41cmVtO1xuXG4gICAgJiA+IC5hLWJ0biB7XG4gICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgIG1hcmdpbi10b3A6IDEuNXJlbTtcbiAgICAgIGJvcmRlcjogMDtcblxuICAgICAgc3ZnIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICB9XG5cbiAgICAgIC0tYnRuQmc6IHZhcigtLWMteWVsbG93KTtcbiAgICAgIC0tYnRuQ29sb3VyOiB2YXIoLS1jLXByaW1hcnkpO1xuICAgIH1cbiAgfVxufVxuXG4uby10ZWFzZXIge1xuICAmX19jb250ZW50IHtcbiAgICBwIHtcbiAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gICAgfVxuICB9XG59IiwiLyoqXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogVW4udGl0bGVkXG4qIE9yZ2FuaXNtcyAtIExpc3RpbmcgKip0ZW1wKipcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKi9cblxuLyoqXG4qIENvbmZpZ1xuKi9cblxuLyoqXG4qIFN0eWxpbmdcbiovXG4uby1saXN0aW5nIHtcbiAgJl9fZmlsdGVycyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1wcmltYXJ5KTtcbiAgICBib3JkZXItbGVmdDogMDtcbiAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8eHMnKSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgIH1cblxuICAgIC5idG4ge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBwYWRkaW5nOiAxLjVyZW07XG4gICAgICBtYXJnaW46IDA7XG4gICAgICB0cmFuc2l0aW9uOiBjb2xvciB2YXIoLS10cmFuc2l0aW9uKTtcblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG5cbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzx4eHMnKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcblxuICAgICAgICAmLS1kcm9wZG93biB7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5hY3RpdmUsXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtcmVkKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuZGl2aWRlciB7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB3aWR0aDogMXB4O1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmX19kcm9wZG93biB7XG5cbiAgICB6LWluZGV4OiAyO1xuICAgIHRvcDogY2FsYygxMDAlICsgMXB4KTtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtZ3JleUxpZ2h0KTtcbiAgICBib3gtc2hhZG93OiAwIDRweCA1cHggcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgICBwYWRkaW5nOiAycmVtIDFyZW07XG4gICAgLnNob3ctcmVzdWx0cyB7XG4gICAgICAgbWFyZ2luOiAyMHB4IDAgMCAwO1xuICAgIH1cbiAgICAuYS1jb2xzIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgfVxuICAgIH1cblxuICAgICYtY2FsZW5kYXIge1xuICAgICAgcG9zaXRpb246IGZpeGVkICFpbXBvcnRhbnQ7XG4gICAgICB0b3A6IDUwJSAhaW1wb3J0YW50O1xuICAgICAgbGVmdDogNTAlICFpbXBvcnRhbnQ7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLC01MCUpO1xuICAgICAgd2lkdGg6IDUwJTtcblxuICAgICAgLkRheVBpY2tlci1OYXZCYXIge1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLmEtY29scyB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIH1cblxuICAgICAgJi1jb250cm9scyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgcCB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICYtdGF4b25vbXkge1xuXG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyIDFmcjtcbiAgICAgIGdyaWQtZ2FwOiAyMHB4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBtYXJnaW46IDAgMXJlbTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7XG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPG1kJykge1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gICAgICAgIGdyaWQtZ2FwOiAxNXB4O1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgICAgIGdyaWQtZ2FwOiAxMHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICAgICAgfVxuICAgICAgbGFiZWwge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ3JpZC1nYXA6IDEwcHg7XG4gICAgICAgIGlucHV0IHtcbiAgICAgICAgICBhY2NlbnQtY29sb3I6ICNmZmI4MWM7XG4gICAgICAgICAgd2lkdGg6IDE1cHg7XG4gICAgICAgICAgaGVpZ2h0OiAxNXB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBoMyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8eHMnKSB7XG4gICAgICAgICAgdGV4dC1hbGlnbjogbGVmdFxuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmLS1maWx0ZXJzIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgICAgICB9XG4gICAgICAgIGdyaWQtZ2FwOiAxMHB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbGFiZWwge1xuICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIDFmcjtcbiAgICAgICAgICBncmlkLWdhcDogNXB4O1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8eHMnKSB7XG4gICAgICAgIG1hcmdpbjogMCAwIDFyZW07XG4gICAgICAgIG1heC13aWR0aDogbm9uZTtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAubGluayB7XG4gICAgICBAaW5jbHVkZSBsaW5rUmVzZXQ7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICAgICAmOmhvdmVyLFxuICAgICAgJi5hY3RpdmUge1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1jLXJlZCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9fYWN0aXZlLWZpbHRlcnMge1xuICAgIHBhZGRpbmc6IDAuNXJlbSAwIDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1ncmV5TGlnaHQpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8eHMnKSB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cblxuICAgIC5hLWJ0biB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICBmb250LXNpemU6IHZhcigtLWZvbnRTbWFsbCk7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgIHNwYW4ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXJlZCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciB2YXIoLS10cmFuc2l0aW9uKTtcbiAgICAgIH1cblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy1yZWQpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXJlZCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcblxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICBjb2xvcjogdmFyKC0tYy13aGl0ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuRGF5UGlja2VyIHtcbiAgICAmLU1vbnRocyB7XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcbiAgICAgIGdhcDogMnJlbTtcblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgICAgIGdhcDogMDtcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1mb250U21hbGwpO1xuICAgICAgfVxuICAgIH1cbiAgICAmLU1vbnRoIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogVW4udGl0bGVkXG4qIE9yZ2FuaXNtcyAtIFBlcnNvbiB0ZWFzZXJcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKi9cblxuLyoqXG4qIENvbmZpZ1xuKi9cblxuLyoqXG4qIFN0eWxpbmdcbiovXG4uby1wZW9wbGUge1xuICAmLS1zbSB7XG4gICAgbWFyZ2luLXRvcDogMS41cmVtO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ2FwOiAycmVtO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIDFmcik7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMWZyKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHh4cycpIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgIH1cblxuICAgIC5vLXBlb3BsZV9fcGVyc29uIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgZ2FwOiAwO1xuXG4gICAgICBmaWd1cmUge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gICAgICAgIG9yZGVyOiAtMTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmctdG9wOiAxMDAlO1xuICAgICAgfVxuXG4gICAgICBpbWcge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgIH1cblxuICAgICAgaDMge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgfVxuXG4gICAgICBoNCB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250Qm9keSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJi0tbGcge1xuICAgIC5vLXBlb3BsZV9fcGVyc29uIHtcbiAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAyMjBweDtcbiAgICAgIGdhcDogMnJlbTtcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jLXByaW1hcnkpO1xuICAgICAgcGFkZGluZy10b3A6IDEuNXJlbTtcbiAgICAgIG1hcmdpbi10b3A6IDEuNXJlbTtcblxuICAgICAgJjpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMTUwcHg7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8eHMnKSB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgbWF4LXdpZHRoOiAzMDBweDtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAganVzdGlmeS1zZWxmOiBjZW50ZXI7XG4gICAgICAgICAgb3JkZXI6IC0xO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9fcGVyc29uIHtcbiAgICBAaW5jbHVkZSBsaW5rUmVzZXQ7XG5cbiAgICAubGluayB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgIH1cblxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICY6aG92ZXIge1xuICAgICAgaDMsXG4gICAgICAubGluayB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgfVxuXG4gICAgICAubGluazo6YWZ0ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7XG4gICAgICB9XG5cbiAgICAgIGltZyB7XG4gICAgICAgIG9wYWNpdHk6IDAuNztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpbWcge1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgdmFyKC0tdHJhbnNpdGlvbik7XG4gIH1cbn1cbiIsIi8qKlxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qIFVuLnRpdGxlZFxuKiBPcmdhbmlzbXMgLSBQZXJmb3JtYW5jZXMgbW9kYWxcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKi9cblxuLyoqXG4qIFN0eWxpbmdcbiovXG5bZGF0YS1tb2RhbE9wZW49J3RydWUnXSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5vLW1vZGFsIHtcbiAgYm9yZGVyOiAwO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgei1pbmRleDogMjU7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xuXG4gICZbZGF0YS12aXNpYmxlPSd0cnVlJ10ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYW5pbWF0aW9uOiBmYWRlSW4gMC4ycyBlYXNlLWluLW91dCBmb3J3YXJkcztcbiAgfVxuXG4gICZbZGF0YS12aXNpYmxlPSdmYWxzZSddIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAvLyBhbmltYXRpb246IGZhZGVPdXQgMC4ycyBlYXNlLWluLW91dCBmb3J3YXJkcztcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgLmEtY29scyB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgIH1cbiAgfVxuXG4gICYtLWZ1bGxzY3JlZW4ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG4gICAgY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuICAgIHBhZGRpbmc6IDJyZW07XG4gICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICB9XG5cbiAgICAuYS1jb2xzIHtcbiAgICAgIG1heC1oZWlnaHQ6IDk1dmg7XG4gICAgICBwYWRkaW5nOiAxcmVtIDAgMDtcbiAgICB9XG5cbiAgICAuby1tb2RhbF9fY2xvc2Uge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICByaWdodDogMnJlbTtcblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgICAgcmlnaHQ6IDFyZW07XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8eHMnKSB7XG4gICAgICAgIHJpZ2h0OiAxNXB4O1xuICAgICAgfVxuXG4gICAgICBwYXRoIHtcbiAgICAgICAgc3Ryb2tlOiB2YXIoLS1jLXdoaXRlKTtcbiAgICAgIH1cblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuXG4gICAgICAgIHBhdGgge1xuICAgICAgICAgIHN0cm9rZTogdmFyKC0tYy1wcmltYXJ5KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZfX2Nsb3NlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaGVpZ2h0OiA0MnB4O1xuICAgIHdpZHRoOiA0MnB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICB0b3A6IDFyZW07XG4gICAgcmlnaHQ6IDFyZW07XG4gICAgYm9yZGVyOiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLXRyYW5zaXRpb24pO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcbiAgICAgIC8vIHRvcDogMC41cmVtO1xuICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgIGhlaWdodDogMzVweDtcbiAgICAgIHdpZHRoOiAzNXB4O1xuICAgIH1cblxuICAgIHN2ZyB7XG4gICAgICB3aWR0aDogMjBweDtcblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcbiAgICAgICAgd2lkdGg6IDE1cHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcGF0aCB7XG4gICAgICB0cmFuc2l0aW9uOiBzdHJva2UgdmFyKC0tdHJhbnNpdGlvbik7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xuXG4gICAgICBwYXRoIHtcbiAgICAgICAgc3Ryb2tlOiB2YXIoLS1jLXdoaXRlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuI2NjYyB7XG4gICNjY2Mge1xuICAgICYtY2xvc2Uge1xuICAgICAgJi5jY2Mge1xuICAgICAgICAmLWNsb3NlIHtcbiAgICAgICAgICAmLS1sYWJlbGxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIHZhcigtLXRyYW5zaXRpb24pO1xuICBcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogc2hha2UgMC44MnMgY3ViaWMtYmV6aWVyKC4zNiwuMDcsLjE5LC45NykgYm90aDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgXG4gICAgJi1yZWplY3Qtc2V0dGluZ3Mge1xuICAgICAgJi5jY2Mge1xuICAgICAgICAmLW5vdGlmeS1idXR0b24ge1xuICAgICAgICAgICYuY2NjLXJlamVjdC1idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy13aGl0ZSkgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy1wcmltYXJ5KSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWMtcHJpbWFyeSkgIWltcG9ydGFudDtcbiAgICAgICAgICAgICYgPiBzcGFuIHtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy13aGl0ZSkgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXByaW1hcnkpICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jLXByaW1hcnkpICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9IFxufVxuXG5cblxuQGtleWZyYW1lcyBzaGFrZSB7XG4gIDEwJSwgOTAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xcHgsIDAsIDApO1xuICB9XG4gIDIwJSwgODAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDJweCwgMCwgMCk7XG4gIH1cblxuICAzMCUsIDUwJSwgNzAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0ycHgsIDAsIDApO1xuICB9XG4gIDQwJSwgNjAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDJweCwgMCwgMCk7XG4gIH1cbn0iLCIvKipcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKiBVbi50aXRsZWRcbiogVGVtcGxhdGUgLSBQb3N0c1xuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qL1xuXG4vKipcbiogQ29uZmlnXG4qL1xuXG4vKipcbiogU3R5bGluZ1xuKi9cbmFydGljbGUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gIC8vICY6bm90KC5vLXRlYXNlcik6bm90KC5vLWxpc3RpbmctdGVhc2VyKSB7XG4gIC8vICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAvLyAgIHotaW5kZXg6IDE7XG4gIC8vIH1cbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==*/