/*! 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 only screen and (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 only screen and (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 only screen and (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 only screen and (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 only screen and (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 only screen and (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 only screen and (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 only screen and (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 only screen and (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 only screen and (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
 * ----------------------
 */
@-webkit-keyframes fadeIn {
  0% {
    opacity: 0;
    visibility: hidden;
  }
  100% {
    opacity: 1;
    visibility: visible;
  }
}
@keyframes fadeIn {
  0% {
    opacity: 0;
    visibility: hidden;
  }
  100% {
    opacity: 1;
    visibility: visible;
  }
}
@-webkit-keyframes fadeOut {
  0% {
    opacity: 1;
    visibility: visible;
    display: flex;
  }
  100% {
    opacity: 0;
    visibility: hidden;
    display: none;
  }
}
@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);
}
.js-focus-visible .a-btn:focus:not(.focus-visible) {
  outline: 0;
}

/**
 * ----------------------
 * 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
*/
@-webkit-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;
  }
}
@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);
  -webkit-animation: loaderAnimation 2.4s infinite linear both;
          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 {
  -webkit-animation-delay: 0.3s;
          animation-delay: 0.3s;
}
.a-loader__cube-3 {
  transform: scale(1.1) rotateZ(180deg);
}
.a-loader__cube-3::before {
  -webkit-animation-delay: 0.6s;
          animation-delay: 0.6s;
}
.a-loader__cube-4 {
  transform: scale(1.1) rotateZ(270deg);
}
.a-loader__cube-4::before {
  -webkit-animation-delay: 0.9s;
          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;
  -webkit-animation: fadeIn 0.2s ease-in-out forwards;
          animation: fadeIn 0.2s ease-in-out forwards;
}
.a-back-top[data-visible=false] {
  display: flex;
  visibility: visible;
  -webkit-animation: fadeOut 0.2s ease-in-out forwards;
          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
 **/
@-webkit-keyframes slideInUp {
  0% {
    opacity: 0;
    transform: translateY(100%);
  }
  80% {
    transform: scale(1.02);
  }
  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}
@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 .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 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;
  }
}

/**
 * ----------------------
 * 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
*/
@-webkit-keyframes bannerIn {
  0% {
    opacity: 0;
    z-index: -1;
  }
  10% {
    opacity: 0;
    z-index: 1;
  }
  100% {
    opacity: 1;
    z-index: 1;
  }
}
@keyframes bannerIn {
  0% {
    opacity: 0;
    z-index: -1;
  }
  10% {
    opacity: 0;
    z-index: 1;
  }
  100% {
    opacity: 1;
    z-index: 1;
  }
}
@-webkit-keyframes bannerOut {
  0% {
    opacity: 1;
    z-index: 1;
  }
  90% {
    opacity: 0;
    z-index: 1;
  }
  100% {
    opacity: 0;
    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] {
  -webkit-animation: bannerIn 0.2s ease-in-out forwards;
          animation: bannerIn 0.2s ease-in-out forwards;
}
.m-homepage-banner__block-img[data-visible=false] {
  -webkit-animation: bannerOut 0.2s ease-in-out forwards;
          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 ::-webkit-input-placeholder,
.m-search-form form ::-moz-placeholder,
.m-search-form form :-ms-input-placeholder,
.m-search-form form :-moz-placeholder {
  color: #879799;
  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: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;
  -webkit-animation: fadeIn 0.2s ease-in-out forwards;
          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);
}

/**
* Templates
*/
/**
* ----------------------
* Un.titled
* Template - Posts
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
article {
  display: flex;
  flex-direction: column;
  align-items: center;
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi9ub2RlX21vZHVsZXMvcGhvdG9zd2lwZS9kaXN0L3Bob3Rvc3dpcGUuY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9nbG9iYWwuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi9ub2RlX21vZHVsZXMvbm9ybWFsaXplLnNjc3Mvbm9ybWFsaXplLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vbm9kZV9tb2R1bGVzL3JlZmxleC1ncmlkL3Njc3MvaW5jbHVkZXMvX3ZhcmlhYmxlcy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL25vZGVfbW9kdWxlcy9yZWZsZXgtZ3JpZC9zY3NzL2luY2x1ZGVzL19ncmlkLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vbm9kZV9tb2R1bGVzL3JlZmxleC1ncmlkL3Njc3MvaW5jbHVkZXMvX21peGlucy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL25vZGVfbW9kdWxlcy9yZWZsZXgtZ3JpZC9zY3NzL2luY2x1ZGVzL19oZWxwZXJzLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL2hlbHBlcnMvX2ZvY3VzLXZpc2libGUuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvaGVscGVycy9fZm9udC1zbW9vdGhpbmcuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvaGVscGVycy9fbWl4aW5zLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL2hlbHBlcnMvX3RhYmxlLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL2NvbmZpZy9fZm9udHMuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvY29uZmlnL192YXJzLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL2Jhc2UvX2RlZmF1bHRzLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL2Jhc2UvX3R5cG9ncmFwaHkuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi9ub2RlX21vZHVsZXMvaW5jbHVkZS1tZWRpYS9kaXN0L19pbmNsdWRlLW1lZGlhLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL2Jhc2UvX21haW4uc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvYmFzZS9fYW5pbWF0aW9ucy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9hdG9tcy9fYnV0dG9ucy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9hdG9tcy9faW1hZ2UtY3JlZGl0LnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL2F0b21zL19icmVhZGNydW1icy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9hdG9tcy9fbG9hZGVyLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL2F0b21zL19kYXRlLXBpY2tlci5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9hdG9tcy9fcGFnZXIuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvYXRvbXMvX2NvbHMuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvYXRvbXMvX2NhcHRpb24uc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvYXRvbXMvX2F1dG8tZ3JpZC5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9hdG9tcy9fbGlua3Muc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvYXRvbXMvX3NpZGViYXIuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvYXRvbXMvX3RhZy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9hdG9tcy9fc3RpY2t5LnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL2F0b21zL19jYW5jZWxsZWQuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvYXRvbXMvX3NraXAtbGluay5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9hdG9tcy9fbGlzdGluZy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9hdG9tcy9fY2l0ZS5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9hdG9tcy9fYmFjay10b3Auc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvYXRvbXMvX2dyaWQuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL19lbW1zZy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvX2Jsb2Nrcy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvYmxvY2svX2ludHJvLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9ibG9jay9faW1hZ2Uuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL2Jsb2NrL19xdW90ZS5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvYmxvY2svX2FjY29yZGlvbi5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvYmxvY2svX2dhbGxlcnkuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL2Jsb2NrL19pbWFnZS10ZXh0LnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9ibG9jay9fZG93bmxvYWRzLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9ibG9jay9fZW1iZWQuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL2Jsb2NrL190YWJsZS5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvYmxvY2svX3NpZ25wb3N0LnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9ibG9jay9fc2lnbnBvc3RzLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9ibG9jay9fbGlua2VkLWxvZ29zLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9ibG9jay9fdmlkZW8uc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL2Jsb2NrL195bWFsLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9ibG9jay9fYmlnLWN0YS5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvYmxvY2svX3JlYWRtb3JlLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9ibG9jay9fcXVpY2tsaW5rcy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvYmxvY2svX3NwZWNpYWwtb3B0aW9ucy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvYmxvY2svX3Blb3BsZS1wcm9maWxlcy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvYmxvY2svX2xpc3Rpbmcuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL2Jsb2NrL19taW5pbGlzdGluZy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvYmxvY2svX2VuaGFuY2VkZXZlbnRsaXN0aW5nLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9ibG9jay9fZmVhdHVyZWQtY29udGVudC5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvYmxvY2svX2NpdGF0aW9ucy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvYmxvY2svX2ltYWdlem9vbS5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvYmxvY2svX2Zvcm1zLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9ibG9jay9fc2VhcmNoLXJlc3VsdHMuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL2Jsb2NrL19kaXZpZGVyLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9ibG9jay9fYnV5LW5vdy1idXR0b24uc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL2Jsb2NrL19jdGFtdWx0aXBsZS5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvX2Zvcm1zLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9fbmF2LnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9fYmFubmVyLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9fc29jaWFsLWxpbmtzLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9fc3VibmF2LnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9faW50cm8uc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL19hbmNob3ItbmF2LnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9fY291cnNlLWRldGFpbHMuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL19wZW9wbGUtc2lkZWJhci5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvX2hvbWVwYWdlLWJhbm5lci5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvX2V2ZW50LXNpZGViYXIuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL19zZWFyY2gtZm9ybS5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvX3BlcmZvcm1hbmNlcy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvX3Bob3Rvc3dpcGUuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL190b2dnbGUtc3VibmF2LnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9fc3VibmF2LWNvbnRhaW5lci5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9vcmdhbmlzbXMvX2hlYWRlci5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9vcmdhbmlzbXMvX2Zvb3Rlci5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9vcmdhbmlzbXMvX3NlYXJjaC1yZXN1bHRzLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL29yZ2FuaXNtcy9fdGVhc2VyLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL29yZ2FuaXNtcy9fbGlzdGluZy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9vcmdhbmlzbXMvX3Blb3BsZS5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9vcmdhbmlzbXMvX21vZGFsLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL3RlbXBsYXRlcy9fcG9zdC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDBFQUEwRTtBQUMxRTs7Q0FFQztBQUNELHNCQUFzQjtBQUN0QjtFQUNFLGFBQWE7RUFDYixrQkFBa0I7RUFDbEIsV0FBVztFQUNYLFlBQVk7RUFDWixPQUFPO0VBQ1AsTUFBTTtFQUNOLGdCQUFnQjtFQUNoQixzQkFBc0I7RUFDdEIsa0JBQWtCO0VBQ2xCLGFBQWE7RUFDYiw4QkFBOEI7RUFDOUIsNkVBQTZFO0VBQzdFLG1DQUFtQztFQUNuQyxhQUFhLEVBQUU7RUFDZjtJQUNFLDhCQUE4QjtZQUN0QixzQkFBc0IsRUFBRTtFQUNsQztJQUNFLGVBQWUsRUFBRTs7QUFFckIsaUVBQWlFO0FBQ2pFO0VBQ0UsbUdBQW1HO0VBQ25HLGNBQWM7RUFDZCxvQkFBb0I7RUFDcEIsOEJBQThCO0VBQzlCLCtEQUErRDtVQUN2RCx1REFBdUQsRUFBRTs7QUFFbkU7RUFDRSxjQUFjLEVBQUU7O0FBRWxCO0VBQ0Usc0JBQXNCO0VBQ3RCLHVCQUF1QjtFQUN2QixvQkFBb0I7RUFDcEIsZUFBZSxFQUFFOztBQUVuQjtFQUNFLHNCQUFzQjtFQUN0QixvQkFBb0I7RUFDcEIsaUJBQWlCO0VBQ2pCLFlBQVksRUFBRTs7QUFFaEI7RUFDRSxzQkFBc0I7RUFDdEIsd0JBQXdCO0VBQ3hCLHFCQUFxQjtFQUNyQixnQkFBZ0IsRUFBRTs7QUFFcEI7OztDQUdDO0FBQ0Q7RUFDRSxrQkFBa0I7RUFDbEIsT0FBTztFQUNQLE1BQU07RUFDTixXQUFXO0VBQ1gsWUFBWTtFQUNaLGdCQUFnQjtFQUNoQixVQUFV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RUFMSjtJQU1RLGdCRE9JO0VGaWFWO0FBQ0Y7QUd0YUk7RUFUSjtJQVVRLGdCRElJO0VGcWFWO0FBQ0Y7QUd2YUk7RUFiSjtJQWNRLGlCRENJO0VGeWFWO0FBQ0Y7QUd4YUk7RUFqQko7SUFrQlEsaUJERks7RUY2YVg7QUFDRjs7QUdwYUE7RUMwWEksOEJEelhvQjtFQzBYcEIsMkJEMVhvQjtFQzJYcEIsc0JEM1hvQjtFQUNwQjtFQ29HQTtFQUNBO0VBQ0E7RUE0Q0EsbUJBRG9CO0VBRXBCLHVCQUZvQjtFQUdwQixlQUhvQjtFRDlJcEI7RUFDQTtFQUNBO0VDTkk7R0FDQTtFQUNBO0VEY0o7QUh1YUo7QUc5YUk7RUNnWEEsOEJEOVd3QjtFQytXeEIsMkJEL1d3QjtFQ2dYeEIsc0JEaFh3QjtFQ0hwQjtFQUNBO0VBQ0E7QUpxYlI7O0FHeGFBO0VDa1dJLDhCRGpXb0I7RUNrV3BCLDJCRGxXb0I7RUNtV3BCLHNCRG5Xb0I7RUNoQmhCO0VBQ0E7RUFDQTtFRGdCSjtFQUNBO0VBQ0E7RUFDQSxhRHJCa0I7RUNvQ2Q7R0FDQTtFQUNBO0FIaWFSO0FHaGJJO0VDMFZBLDhCRHhWd0I7RUN5VnhCLDJCRHpWd0I7RUMwVnhCLHNCRDFWd0I7RUN6QnBCO0VBQ0E7RUFDQTtBSjZjUjtBR2piSTtFQzRFSTtFQUdKO0VBQ0E7RUQ5RUk7QUhxYlI7O0FJN2ZRO0VBQ0k7R0FFSTtBSitmaEI7O0FJbGdCUTtFQUNJO0dBRUk7QUpvZ0JoQjs7QUl2Z0JRO0VBQ0k7R0FFSTtBSnlnQmhCOztBSTVnQlE7RUFDSTtHQUVJO0FKOGdCaEI7O0FJamhCUTtFQUNJO0dBRUk7QUptaEJoQjs7QUl0aEJRO0VBQ0k7R0FFSTtBSndoQmhCOztBSTNoQlE7RUFDSTtHQUVJO0FKNmhCaEI7O0FJaGlCUTtFQUNJO0dBRUk7QUpraUJoQjs7QUlyaUJRO0VBQ0k7R0FFSTtBSnVpQmhCOztBSTFpQlE7RUFDSTtHQUVJO0FKNGlCaEI7O0FJL2lCUTtFQUNJO0dBRUk7QUppakJoQjs7QUlwakJRO0VBQ0k7R0FFSTtBSnNqQmhCOztBR2plQTtFQ3hGUTtJQUNJO0tBRUk7RUo0akJkOztFSS9qQk07SUFDSTtLQUVJO0VKaWtCZDs7RUlwa0JNO0lBQ0k7S0FFSTtFSnNrQmQ7O0VJemtCTTtJQUNJO0tBRUk7RUoya0JkOztFSTlrQk07SUFDSTtLQUVJO0VKZ2xCZDs7RUlubEJNO0lBQ0k7S0FFSTtFSnFsQmQ7O0VJeGxCTTtJQUNJO0tBRUk7RUowbEJkOztFSTdsQk07SUFDSTtLQUVJO0VKK2xCZDs7RUlsbUJNO0lBQ0k7S0FFSTtFSm9tQmQ7O0VJdm1CTTtJQUNJO0tBRUk7RUp5bUJkOztFSTVtQk07SUFDSTtLQUVJO0VKOG1CZDs7RUlqbkJNO0lBQ0k7S0FFSTtFSm1uQmQ7QUFDRjtBRzNoQkE7RUM1RlE7SUFDSTtLQUVJO0VKeW5CZDs7RUk1bkJNO0lBQ0k7S0FFSTtFSjhuQmQ7O0VJam9CTTtJQUNJO0tBRUk7RUptb0JkOztFSXRvQk07SUFDSTtLQUVJO0VKd29CZDs7RUkzb0JNO0lBQ0k7S0FFSTtFSjZvQmQ7O0VJaHBCTTtJQUNJO0tBRUk7RUprcEJkOztFSXJwQk07SUFDSTtLQUVJO0VKdXBCZDs7RUkxcEJNO0lBQ0k7S0FFSTtFSjRwQmQ7O0VJL3BCTTtJQUNJO0tBRUk7RUppcUJkOztFSXBxQk07SUFDSTtLQUVJO0VKc3FCZDs7RUl6cUJNO0lBQ0k7S0FFSTtFSjJxQmQ7O0VJOXFCTTtJQUNJO0tBRUk7RUpnckJkO0FBQ0Y7QUdwbEJBO0VDaEdRO0lBQ0k7S0FFSTtFSnNyQmQ7O0VJenJCTTtJQUNJO0tBRUk7RUoyckJkOztFSTlyQk07SUFDSTtLQUVJO0VKZ3NCZDs7RUluc0JNO0lBQ0k7S0FFSTtFSnFzQmQ7O0VJeHNCTTtJQUNJO0tBRUk7RUowc0JkOztFSTdzQk07SUFDSTtLQUVJO0VKK3NCZDs7RUlsdEJNO0lBQ0k7S0FFSTtFSm90QmQ7O0VJdnRCTTtJQUNJO0tBRUk7RUp5dEJkOztFSTV0Qk07SUFDSTtLQUVJO0VKOHRCZDs7RUlqdUJNO0lBQ0k7S0FFSTtFSm11QmQ7O0VJdHVCTTtJQUNJO0tBRUk7RUp3dUJkOztFSTN1Qk07SUFD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QUlUO0VKKzhDTjs7RUkvN0NNO0lBbEJKLDJCQUZhO0tBSVQ7RUpvOUNOOztFSXA4Q007SUFsQkosMkJBRmE7S0FJVDtFSnk5Q047O0VJejhDTTtJQWxCSixnQkFGYTtLQUlUO0VKODlDTjs7RUk5OENNO0lBbEJKLDJCQUZhO0tBSVQ7RUptK0NOOztFSW45Q007SUFsQkosMkJBRmE7S0FJVDtFSncrQ047O0VJeDlDTTtJQWxCSixnQkFGYTtLQUlUO0VKNitDTjs7RUk3OUNNO0lBbEJKLDJCQUZhO0tBSVQ7RUprL0NOOztFSWwrQ007SUFsQkosMEJBRmE7S0FJVDtFSnUvQ047O0VJditDTTtJQWxCSixjQUxTO0tBT0w7RUo0L0NOO0FBQ0Y7QUduNkNBO0VDMUVRO0lBbEJKLDJCQUZhO0tBSVQ7RUprZ0ROOztFSWwvQ007SUFsQkosMkJBRmE7S0FJVDtFSnVnRE47O0VJdi9DTTtJQWxCSixnQkFGYTtLQUlUO0VKNGdETjs7RUk1L0NNO0lBbEJKLDJCQUZhO0tBSVQ7RUppaEROOztFSWpnRE07SUFsQkosMkJBRmE7S0FJVDtFSnNoRE47O0VJdGdETTtJQWxCSixnQkFGYTtLQUlUO0VKMmhETjs7RUkzZ0RNO0lBbEJKLDJCQUZhO0tBSVQ7RUpnaUROOztFSWhoRE07SUFsQkosMkJBRmE7S0FJVDtFSnFpRE47O0VJcmhETTtJQWxCSixnQkFGYTtLQUlUO0VKMGlETjs7RUkxaERNO0lBbEJKLDJCQUZhO0tBSVQ7RUoraUROOztFSS9oRE07SUFsQkosMEJBRmE7S0FJVDtFSm9qRE47O0VJcGlETTtJQWxCSixjQUxTO0tBT0w7RUp5akROO0FBQ0Y7QUc1OUNBO0VDOUVRO0lBbEJKLDJCQUZhO0tBSVQ7RUorakROOztFSS9pRE07SUFsQkosMkJBRmE7S0FJVDtFSm9rRE47O0VJcGpETTtJQWxCSixnQkFGYTtLQUlUO0VKeWtETjs7RUl6akRNO0lBbEJKLDJCQUZhO0tBSVQ7RUo4a0ROOztFSTlqRE07SUFsQkosMkJBRmE7S0FJVDtFSm1sRE47O0VJbmtETTtJQWxCSixnQkFGYTtLQUlUO0VKd2xETjs7RUl4a0RNO0lBbEJKLDJCQUZhO0tBSVQ7RUo2bEROOztFSTdrRE07SUFsQkosMkJBRmE7S0FJVDtFSmttRE47O0VJbGxETTtJQWxCSixnQkFGYTtLQUlUO0VKdW1ETjs7RUl2bERNO0lBbEJKLDJCQUZhO0tBSVQ7RUo0bUROOztFSTVsRE07SUFsQkosMEJBRmE7S0FJVDtFSmluRE47O0VJam1ETTtJQWxCSixjQUxTO0tBT0w7RUpzbkROO0FBQ0Y7QUtodURBO0VEd0xJLG1CQ3ZMbUI7RUR3TG5CLHVCQ3hMbUI7RUR5TG5CLGVDekxtQjtBTG91RHZCOztBS2p1REE7RURvTEkscUJDbkxtQjtFRG9MbkIseUJDcExtQjtFRHFMbkIsaUJDckxtQjtBTHN1RHZCO0FLanVESTtFRDJKQSxvQkMxSnlCO0VEMkp6QixzQkMzSnlCO0VENEp6QixjQzVKeUI7QUxxdUQ3Qjs7QUtqdURBO0VEeUtJLDJCQ3hLbUI7RUR5S25CLCtCQ3pLbUI7RUQwS25CLHVCQzFLbUI7QUxzdUR2Qjs7QUsvdERBO0VEdUtJLHVCQ3RLd0I7RUR1S3hCLDJCQ3ZLd0I7RUR3S3hCLG1CQ3hLd0I7QUxvdUQ1Qjs7QUtqdURBO0VEbUtJLCtCQ2xLd0I7RURtS3hCLG1DQ25Ld0I7RURvS3hCLDJCQ3BLd0I7QUxzdUQ1Qjs7QUtudURBO0VEK0pJLDBCQzlKd0I7RUQrSnhCLDhCQy9Kd0I7RURnS3hCLHNCQ2hLd0I7QUx3dUQ1Qjs7QUtydURBO0VEMkpJLGtDQzFKd0I7RUQySnhCLHNDQzNKd0I7RUQ0SnhCLDhCQzVKd0I7QUwwdUQ1Qjs7QUtudURBO0VEb0xRO0VBdEJKLCtCQzdKcUI7RUQ4SnJCLHVCQzlKcUI7QUx3dUR6Qjs7QUtydURBO0VEa0xRO0VBeEJKLDZCQ3pKcUI7RUQwSnJCLHFCQzFKcUI7QUwwdUR6QjtBS3R1RFE7RUFDSTtBTHd1RFo7O0FLbnVEQTtFRHlLUSxzQkN4S2lCO0VEOElyQiwyQkM5SXFCO0VEK0lyQixtQkMvSXFCO0FMd3VEekI7QUtwdURRO0VBQ0k7QUxzdURaOztBS2p1REE7RUQ4SlEsd0JDN0ppQjtFRG1JckIsNkJDbklxQjtFRG9JckIscUJDcElxQjtBTHN1RHpCOztBSy90REE7RURzS1E7RUE5QkosaUNDdkl1QjtFRHdJdkIseUJDeEl1QjtBTG91RDNCOztBS2p1REE7RURvS1E7RUFoQ0osK0JDbkl1QjtFRG9JdkIsdUJDcEl1QjtBTHN1RDNCO0FLbnVESTtFQUNJO0FMcXVEUjs7QUtqdURBO0VEaUtRLDBCQ2hLbUI7RUQwSHZCLDZCQzFIdUI7RUQySHZCLHFCQzNIdUI7QUxzdUQzQjs7QUtudURBO0VEeUpRO0VBbENKLG9DQ3RIdUI7RUR1SHZCLDRCQ3ZIdUI7QUx3dUQzQjs7QUtydURBO0VEdUpRO0VBcENKLG1DQ2xIdUI7RURtSHZCLDJCQ25IdUI7QUwwdUQzQjs7QUtudURBO0VEbUlRLDRCQ2xJZ0I7RURvR3BCLDJCQ3BHb0I7RURxR3BCLG1CQ3JHb0I7QUx3dUR4Qjs7QUtydURBO0VEMkhRO0VBMUJKLDhCQ2hHb0I7RURpR3BCLHNCQ2pHb0I7QUwwdUR4Qjs7QUt2dURBO0VEeUhRO0VBNUJKLDRCQzVGb0I7RUQ2RnBCLG9CQzdGb0I7RUFDcEI7QUw0dURKOztBS3p1REE7RURzSFEsMkJDckhnQjtFRHVGcEIsMEJDdkZvQjtFRHdGcEIsa0JDeEZvQjtFQUNwQjtBTDh1REo7O0FLM3VEQTtFRGlIUSw2QkNoSGdCO0VEa0ZwQiw0QkNsRm9CO0VEbUZwQixvQkNuRm9CO0VBQ3BCO0FMZ3ZESjs7QUt6dURBO0VEbUlJO0VBQ0E7RUFDQTtBSjBtREo7QUszdURRO0VBQ0k7QUw2dURaOztBS3h1REE7RUQrSEk7RUFDQTtFQUNBO0FKNm1ESjtBSzF1RFE7RUFDSTtFQUNBO0VBQ0E7QUw0dURaO0FLMXVEWTtFRDFGUjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUp1MERKOztBSzN1REE7RURxSEk7RUFDQTtFQUNBO0FKMG5ESjtBSzd1RFE7RUFDSTtFQUNBO0VBQ0E7QUwrdURaO0FLN3VEWTtFRDFHUjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUowMURKOztBSzl1REE7RUQyR0k7RUFDQTtFQUNBO0FKdW9ESjtBS2h2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OG1GRjtBUWxsRkU7RUFDRTtFQUNBO0FSb2xGSjtBaUJobkZFO0VBQ0U7RUFDQTtFQUNBO0FqQmtuRko7QWlCL21GRTtFQUNFO0FqQmluRko7QWlCM2xGRTtFQWpCQTtFQUNBO0FqQittRkY7QWlCN21GRTtFQUNFO0FqQittRko7QWlCN2xGRTtFQUNFO0VBQ0E7QWpCK2xGSjtBaUI1bEZFO0VBQ0U7RUFDQTtBakI4bEZKO0FpQjNsRkU7RUFDRTtFQUNBO0FqQjZsRko7QWlCMWxGRTtFQUNFO0VBQ0E7QWpCNGxGSjtBY3RuRUk7RUd4ZUY7SUFLSTtJQUNBO0lBQ0E7RWpCNmxGSjtBQUNGO0FpQjFsRkU7RUFDRTtFQUNBO0FqQjRsRko7QWlCemxGRTtFQUNFO0VBQ0E7QWpCMmxGSjtBaUJ4bEZFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QWpCMGxGSjtBaUJ4bEZJO0VBQ0U7RUFDQTtBakIwbEZOO0FpQnRsRkU7RUFDRTtFQUNBO0VBQ0E7QWpCd2xGSjtBaUJwbEZJO0VBQ0U7QWpCc2xGTjtBaUJsbEZNO0VBQ0U7QWpCb2xGUjtBaUIva0ZFO0VBQ0U7RUFDQTtFQUNBO0FqQmlsRko7QWlCL2tGSTtFQUNFO0VBQ0E7RUFDQTtBakJpbEZOO0FpQjdrRkU7RUFDRTtBakIra0ZKO0FNN3NGSTtFV2lJRTtBakIra0ZOOztBa0I5dEZBOzs7OztFQUFBO0FBT0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FsQmd1RkY7QWtCenRGRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBbEIydEZKO0FrQnh0RkU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FsQjB0Rko7QWMvdEVJO0VJemdCRjtJQWlCSTtFbEIydEZKO0FBQ0Y7QWtCcnRGSTtFQUNFO0VBQ0E7QWxCdXRGTjtBa0JwdEZJO0VBQ0U7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Ozs7SUFBQTtFQ0FBOzs7OztJQUFBO0VDQUE7Ozs7O0lBQUE7RUNBQTs7Ozs7SUFBQTtFQ0FBOzs7OztJQUFBO0VDQUE7Ozs7O0lBQUE7RUNBQTs7Ozs7SUFBQTtFQ0FBOzs7OztJQUFBO0VDQUE7Ozs7O0lBQUE7RUNBQTs7Ozs7SUFBQTtFQ0FBOzs7OztJQUFBO0VDQUE7Ozs7O0lBQUE7RUNBQTs7Ozs7SUFBQTtBbkU4MkhBO0FxQ2gxSEU7RUFDRTtFQUNBO0VBQ0E7QXJDazFISjtBcUMvMEhFO0VBQ0U7QXJDaTFISjtBcUMzMEhJO0VBQ0U7QXJDNjBITjtBcUMzMEhNO0VBQ0U7RUFDQTtFQUNBO0FyQzYwSFI7QXFDMzBIUTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBckM2MEhWO0FzQ2w0SEE7RUFDRTtBdENvNEhGO0FzQ2w0SEU7RUFDRTtBdENvNEhKO0F1Q3g0SEE7RUFDRTtFQUNBO0F2QzA0SEY7QXVDeDRIRTtFQUNFO0F2QzA0SEo7QXVDdjRIRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QXZDeTRISjtBdUN0NEhFO0UvQnlCQTtBUmczSEY7QVE5MkhFO0VBQ0U7RUFDQTtBUmczSEo7QXdDNTRIQTtFQUNFO0F4Qzg0SEY7QXdDNTRIRTtFQUNFO0VBRUE7RUFDQTtFQUNBO0F4QzY0SEo7QXdDMzRISTtFQUNFO0VBQ0E7T0FBQTtBeEM2NEhOO0F3Q3o0SEU7RUFDRTtBeEMyNEhKO0F3Q3g0SEU7RUFDRTtBeEMwNEhKO0F3Q3Y0SEU7RUFDRTtFQUNBO0VBQ0E7QXhDeTRISjtBd0N2NEhJO0VBQ0U7QXhDeTRITjtBd0N0NEhJO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7QXhDdzRITjtBd0N0NEhNO0VBQ0U7QXhDdzRIUjtBd0MzN0hJO0VBQ0U7RUFDQTtBeEM2N0hOO0F3Qy83SEk7RUFDRTtFQUNBO0F4Q2k4SE47QXdDbjhISTtFQUNFO0VBQ0E7QXhDcThITjtBd0N2OEhJO0VBQ0U7RUFDQTtBeEN5OEhOO0F3QzM4SEk7RUFDRTtFQUNBO0F4QzY4SE47QXlDcDlIRTtFQUNFO0F6Q3M5SEo7QXlDcDlIRTtFakNxQ0E7RWlDbkNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7T0FBQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBekNzOUhKO0FRMzdIRTtFQUNFO0VBQ0E7QVI2N0hKO0F5Q3g5SEk7RUFDRTtFakNFSjtFQUNBO0VBQ0Esd0JpQ0hvQjtFQUNoQjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0F6QzQ5SE47QXlDejlISTtFQUVFO0VBQ0E7QXpDMDlITjtBeUN4OUhNO0VBQ0U7QXpDMDlIUjtBeUN0OUhJO0VBQ0U7RUFDQTtBekN3OUhOO0F5Q3A5SEU7RUFDRTtBekNzOUhKO0F5Q245SEU7RUFDRTtBekNxOUhKO0F5Q2w5SEU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBekNvOUhKO0F5Q2w5SEk7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0F6Q285SE47QXlDajlISTtFQUNFO0F6Q205SE47QXlDaDlISTtFQUNFO0F6Q2s5SE47QTBDL2hJQTtFQUNFO0VBQ0E7QTFDaWlJRjtBY3ovR0k7RTRCMWlCSjtJQUtJO0lBQ0E7RTFDa2lJRjtBQUNGO0FjLy9HSTtFNEIxaUJKO0lBVUk7RTFDbWlJRjtBQUNGO0EwQ2ppSUU7RWxDNEJBO0VrQzFCRTtFQUNBO0ExQ21pSUo7QVF4Z0lFO0VBQ0U7RUFDQTtBUjBnSUo7QTBDcGlJRTtFQUNFO0ExQ3NpSUo7QTBDbmlJRTtFQUNFO0ExQ3FpSUo7QTBDbGlJRTtFQUNFO0ExQ29pSUo7QTJDaGtJQTtFQUNFO0VBQ0E7RUFDQTtBM0Nra0lGO0FjM2hISTtFNkIxaUJKO0lBTUk7SUFDQTtFM0Nta0lGO0FBQ0Y7QTJDamtJRTtFQUNFO0EzQ21rSUo7QWNwaUhJO0U2QmhpQkY7SUFJSTtFM0Nva0lKO0FBQ0Y7QTJDbGtJSTtFQUNFO0EzQ29rSU47QWM1aUhJO0U2QnpoQkE7SUFJSTtFM0Nxa0lOO0FBQ0Y7QTRDbmxJRTtFQUNFO0E1Q3FsSUo7QTRDbmxJSTtFQUNFO0E1Q3FsSU47QTZDaG1JRTtFQUNFO0E3Q2ttSUo7QThDbm1JRTtFQUNFO0VBQ0E7T0FBQTtFQUNBO0VBQ0E7RUFDQTtBOUNxbUlKO0E4Q25tSUk7RUFDRTtFQUNBO0VBQ0E7QTlDcW1JTjtBOENsbUlJO0VBQ0U7RUFDQTtBOUNvbUlOO0E4Q2ptSUk7O0VBRUU7QTlDbW1JTjtBOEMvbElNO0VBQ0U7RUFDQTtBOUNpbUlSO0ErQzNuSUU7RUFDRTtBL0M2bklKO0ErQzFuSUU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QS9DNG5JSjtBYzdsSEk7RWlDcmlCRjtJQVNJO0lBQ0E7RS9DNm5JSjtBQUNGO0Fjbm1ISTtFaUNyaUJGO0lBY0k7SUFDQTtFL0M4bklKO0FBQ0Y7QStDM25JTTtFQUNFO0EvQzZuSVI7QStDem5JSTtFdkNZRjtBUmduSUY7QVE5bUlFO0VBQ0U7RUFDQTtBUmduSUo7QStDN25JTTtFQUNFO0EvQytuSVI7QStDNW5JTTtFQUNFO0EvQzhuSVI7QStDNW5JUTtFQUNFO0EvQzhuSVY7QStDM25JTTtFQUNFO0EvQzZuSVI7QStDem5JSTtFQUNFO0VBQ0E7RUFDQTtBL0MybklOO0ErQ3puSU07O0VBRUU7QS9DMm5JUjtBK0N4bklNO0VBQ0U7QS9DMG5JUjtBZ0RycklBO0VBQ0U7RUFDQTtBaER1cklGO0FnRHJySUU7RUFDRTtBaER1cklKO0FnRHBySUU7RUFDRTtBaERzcklKO0FjcnBISTtFa0MxaUJKO0lBYUk7SUFDQTtFaERzcklGO0FBQ0Y7QWMzcEhJO0VrQzFpQko7SUFrQkk7RWhEdXJJRjtBQUNGO0FnRG5ySUU7RUFDRTtBaERxcklKO0FpRDdzSUE7RUFDRTtFQUNBO0VBQ0E7QWpEK3NJRjtBY3hxSEk7RW1DMWlCSjtJQU1JO0VqRGd0SUY7QUFDRjtBaUQ5c0lFO0V6Q2dDQTtBUmlySUY7QVEvcUlFO0VBQ0U7RUFDQTtBUmlySUo7QWlEbHRJSTtFQUNFO0FqRG90SU47QWlEaHRJRTtFQUNFO0VBQ0E7QWpEa3RJSjtBaUQ5c0lJO0VBQ0U7RUFDQTtFQUNBO0FqRGd0SU47QWtEMXVJQTtFQUNFO0FsRDR1SUY7QWNuc0hJO0VvQzFpQko7SUFJSTtFbEQ2dUlGO0FBQ0Y7QW1EbHZJQTtFQUNFO0FuRG92SUY7QW1EbHZJRTtFQUNFO0FuRG92SUo7QW9EeHZJQTtFQUNFO0VBQ0E7T0FBQTtBcEQwdklGO0FvRG52SUU7RUFDRTtBcERxdklKO0FvRG52SUk7RUFDRTtBcERxdklOO0FvRGh2SUk7RUFDRTtBcERrdklOO0FvRDl1SUU7RTVDa0JBO0U0Q2hCRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FwRGd2SUo7QVFydUlFO0VBQ0U7RUFDQTtBUnV1SUo7QWMxdUhJO0VzQ25oQkY7SUFZSTtJQUNBO0VwRHF2SUo7QUFDRjtBb0RudklJO0VBQ0U7RUFDQTtBcERxdklOO0FvRGx2SUk7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QXBEb3ZJTjtBY2x3SEk7RXNDOWZBO0lBZUk7RXBEcXZJTjtBQUNGO0FvRGp2SU07RUFDRTtBcERtdklSO0FxRG56SUU7RUFDRTtFQUNBO0VBQ0E7QXJEcXpJSjtBcURueklJO0VBQ0U7QXJEcXpJTjtBc0Q1eklBO0VBQ0U7RUFDQTtBdEQ4eklGO0FjdHhISTtFd0MxaUJKO0lBS0k7RXREK3pJRjtBQUNGO0FjM3hISTtFd0MxaUJKO0lBU0k7RXREZzBJRjtBQUNGO0FzRDl6SUU7RUFDRTtFQUNBO0VBQ0E7QXREZzBJSjtBc0Q3eklFO0VBQ0U7RUFDQTtBdEQreklKO0F1RGwxSUU7RUFDRTtBdkRvMUlKO0FjNXlISTtFeUN6aUJGO0lBSUk7RXZEcTFJSjtBQUNGO0F1RGwxSUU7RUFDRTtFQUNBO0VBQ0E7RUFFQTtBdkRtMUlKO0FjdnpISTtFeUNqaUJGO0lBUUk7SUFDQTtJQUVBO0V2RG0xSUo7QUFDRjtBYzl6SEk7RXlDamlCRjtJQWVJO0V2RG8xSUo7QUFDRjtBd0Q1MklFO0VBQ0U7RUFDQTtFQUNBO0F4RDgySUo7QXdENTJJSTtFQUNFO0F4RDgySU47QXdEMzJJSTtFQUNFO0F4RDYySU47QXdEMTJJUTtFQUNFO0F4RDQySVY7QXlEMTNJRTtFQUNFO0VBQ0E7QXpENDNJSjtBMEQvM0lBO0VBQ0U7RUFDQTtBMURpNElGO0FjejFISTtFNEMxaUJKO0lBS0k7SUFDQTtFMURrNElGO0FBQ0Y7QWMvMUhJO0U0QzFpQko7SUFVSTtFMURtNElGO0FBQ0Y7QTBEajRJRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0ExRG00SUo7QWM3MkhJO0U0QzdoQkY7SUFVSTtFMURvNElKO0FBQ0Y7QTBEbDRJSTtFQUNFO0VBQ0E7QTFEbzRJTjtBMkRoNklDO0VBQ0c7RUFDQTtBM0RrNklKO0FjMTNISTtFNkMxaUJIO0lBS0s7SUFDQTtFM0RtNklKO0FBQ0Y7QWNoNEhJO0U2QzFpQkg7SUFVSztFM0RvNklKO0FBQ0Y7QTJEbDZJSTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0EzRG82SU47QWM5NEhJO0U2QzdoQkE7SUFVSTtFM0RxNklOO0FBQ0Y7QTJEbjZJTTtFQUNFO0VBQ0E7QTNEcTZJUjtBNERqOElBO0VBQ0U7QTVEbThJRjtBNERqOElFO0VBQ0U7QTVEbThJSjtBYzc1SEk7RThDdmlCRjtJQUlJO0U1RG84SUo7QUFDRjtBNERsOElJO0VBQ0U7QTVEbzhJTjtBY3I2SEk7RThDaGlCQTtJQUlJO0U1RHE4SU47QUFDRjtBNEQxNklFO0VBQ0U7RUFDQTtBNUQ0NklKO0FjOTZISTtFOENoZ0JGO0lBS0k7RTVENjZJSjtBQUNGO0E2RDU5SUU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QTdEODlJSjtBYzM3SEk7RStDemlCRjtJQVNJO0U3RCs5SUo7QUFDRjtBNkQ3OUlJO0VyRDRCRjtBUm84SUY7QVFsOElFO0VBQ0U7RUFDQTtBUm84SUo7QTZEaitJTTtFQUNFO0E3RG0rSVI7QTZELzlJSTtFQUNFO0E3RGkrSU47QTZELzlJTTtFQUNFO0E3RGkrSVI7QThEei9JRTtFQUNFO0E5RDIvSUo7QThEei9JRTtFQUNFO0VBQ0E7RUFDQTtBOUQyL0lKO0ErRC8vSU07RUFDRTtBL0RpZ0pSO0ErRDcvSUk7O0VBRUU7QS9EKy9JTjtBYy85SEk7RWlEbGlCQTs7SUFLSTtFL0RpZ0pOO0FBQ0Y7QStEOS9JSTs7Ozs7O0VBTUU7RUFDQTtFQUNBO0EvRGdnSk47QStENy9JSTs7RUFFRTtFQUNBO0VBQ0E7RUFDQTtBL0QrL0lOO0ErRDUvSUk7RUFDRTtFQUNBO0V2REdKO0VTbkNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FqQmdpSkY7QVFwZ0pFO0VBQ0U7RUFDQTtBUnNnSko7QWlCbGlKRTtFQUNFO0VBQ0E7RUFDQTtBakJvaUpKO0FpQmppSkU7RUFDRTtBakJtaUpKO0ErRGxoSk07RTlDWko7RUFDQTtFOENjTTtFQUNBO0EvRG9oSlI7QWlCamlKRTtFQUNFO0FqQm1pSko7QStEamhKQTs7RUFFRTtBL0RtaEpGO0ErRGxoSkU7O0VBQ0U7QS9EcWhKSjtBZ0Uza0pFO0VBQ0U7QWhFNmtKSjtBa0U5a0pFO0VBQ0U7RUFDQTtFQUNBO0FsRWdsSko7QWMxaUlJO0VvRHppQkY7SUFLSTtFbEVrbEpKO0FBQ0Y7QWtFamxKSTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0FsRW1sSk47QWtFbGxKTTtFQUNFO0FsRW9sSlI7QWtFbGxKTTtFQUNFO0FsRW9sSlI7QWtFbGxKTTtFQUNFO0FsRW9sSlI7QWtFamxKUTtFQUNFO0FsRW1sSlY7QWtFOWtKRTtFQUNFO0VBQ0U7QWxFZ2xKTjtBa0Uva0pNO0VBQ0U7RUFDQTtFMURPTjtFU25DQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBakIrbUpGO0FRbmxKRTtFQUNFO0VBQ0E7QVJxbEpKO0FpQmpuSkU7RUFDRTtFQUNBO0VBQ0E7QWpCbW5KSjtBaUJobkpFO0VBQ0U7QWpCa25KSjtBa0VybUpRO0VqRFJOO0VBQ0E7QWpCZ25KRjtBaUI5bUpFO0VBQ0U7QWpCZ25KSjtBbUVqcEpBO0VBQ0U7RUFDQTtFQUNBO0FuRW1wSkY7QWM1bUlJO0VxRDFpQko7SUFLSTtFbkVxcEpGO0FBQ0Y7O0FvRWxxSkE7Ozs7O0VBQUE7QUFPQTs7Ozs7OztFQU9FO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FwRW9xSkY7QW9FbHFKRTs7Ozs7OztFQUNFO0FwRTBxSko7O0FvRXRxSkE7OztFQUdFO0FwRXlxSkY7O0FvRXRxSkE7O0VBRUU7QXBFeXFKRjs7QW9FdHFKQTtFQUNFO0tBQUE7VUFBQTtBcEV5cUpGOztBcUVudEpBOzs7OztFQUFBO0FBT0E7RUFDRTtFQUNBO0VBQ0E7QXJFcXRKRjtBYzlxSUk7RXVEMWlCSjtJQU1JO0lBQ0E7SUFDQTtFckVzdEpGO0FBQ0Y7QXFFcHRKRTtFQUNFO0VBQ0E7RUFDQTtBckVzdEpKO0FjMXJJSTtFdUQvaEJGO0lBTUk7SUFDQTtJQUNBO0VyRXV0Sko7QUFDRjtBY2pzSUk7RXVEL2hCRjtJQVlJO0lBQ0E7SUFDQTtFckV3dEpKO0VxRXR0Skk7SUFDRTtFckV3dEpOO0VxRXJ0Skk7SUFDRTtFckV1dEpOO0FBQ0Y7QWM5c0lJO0V1RC9oQkY7SUEwQkk7RXJFdXRKSjtBQUNGO0FxRXJ0Skk7RUFDRTtFQUNBO0VBQ0E7QXJFdXRKTjtBY3h0SUk7RXVEbGdCQTtJQU1JO0VyRXd0Sk47QUFDRjtBYzd0SUk7RXVEbGdCQTtJQVVJO0lBQ0E7RXJFeXRKTjtBQUNGO0FjbnVJSTtFdURoZkU7OztJQUdFO0lBQ0E7RXJFc3RKTjtBQUNGO0FjM3VJSTtFdURsZkY7SUFVSTtFckV1dEpKO0FBQ0Y7QWNodklJO0V1RHBlRjtJQUVJO0lBQ0E7SUFDQTtFckVzdEpKO0FBQ0Y7QWN2dklJO0V1RHBlRjtJQVFJO0lBQ0E7SUFDQTtFckV1dEpKO0FBQ0Y7QWM5dklJO0V1RHZkQTtJQUVJO0VyRXV0Sk47QUFDRjtBcUVydEpNO0VBQ0U7QXJFdXRKUjtBcUVydEpRO0VBQ0U7QXJFdXRKVjtBcUVqdEpNO0VBQ0U7QXJFbXRKUjtBcUU5c0pFO0VBQ0U7QXJFZ3RKSjtBcUU3c0pFO0U3RG5FQTtFNkRxRUU7QXJFK3NKSjtBUWx4SkU7RUFDRTtFQUNBO0FSb3hKSjtBcUVodEpFO0VBQ0U7RUFDQTtBckVrdEpKO0FjM3hJSTtFdUR6YkY7SUFLSTtFckVtdEpKO0FBQ0Y7QWNoeUlJO0V1RHpiRjtJQVNJO0VyRW90Sko7QUFDRjtBY3J5SUk7RXVEemJGO0lBYUk7RXJFcXRKSjtBQUNGO0FxRWx0SkU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FyRW90Sko7QWNqeklJO0V1RHhhRjtJQVFJO0VyRXF0Sko7QUFDRjtBY3R6SUk7RXVEeGFGO0lBWUk7SUFDQTtFckVzdEpKO0FBQ0Y7QXFFcHRKSTtFQUNFO0FyRXN0Sk47O0FzRWgzSkE7Ozs7O0VBQUE7QUFNQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO09BQUE7QXRFbTNKRjtBYzUwSUk7RXdEM2lCSjtJQU9JO0V0RW8zSkY7QUFDRjtBc0VsM0pFO0VBQ0U7QXRFbzNKSjtBc0VoM0pJO0VBQ0U7QXRFazNKTjtBc0U5MkpFO0VBQ0U7QXRFZzNKSjtBc0U3MkpFO0VBQ0U7QXRFKzJKSjs7QXNFMzJKQTtFQUNFO0VBQ0E7RUFDQTtBdEU4MkpGO0FzRTUySkU7RUFDRTtFQUNBO0F0RTgySko7QXNFNzJKSTtFQUNFO0F0RSsySk47QXNFejJKSTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0tBQUE7RUFDQTtLQUFBO0F0RTIySk47QXNFdjJKRTtFQUNFO0F0RXkySko7QXNFdDJKRTtFQUNFO0F0RXcySko7QWN2M0lJO0V3RDllRTtJQUNFO0V0RXcySk47QUFDRjtBc0VyMkpJO0VBQ0U7RUFDQTtFQUNBO0F0RXUySk47QWNqNElJO0V3RHplQTtJQU1JO0V0RXcySk47QUFDRjtBc0VyMkpJO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0F0RXUySk47QWM5NElJO0V3RC9kQTtJQVNJO0lBQ0E7RXRFdzJKTjtBQUNGO0FzRXIySkk7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO09BQUE7RUFDQTtBdEV1MkpOO0FzRXAySkk7RUFDRTtFQUNBO0F0RXMySk47QXNFbjJKSTtFQUNFO0F0RXEySk47QXNFajJKRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0F0RW0ySko7QXNFajJKSTs7RUFFRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0F0RW0ySk47QXNFajJKTTs7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0F0RW8ySlI7QXNFaDJKSTtFQUNFO0VBQ0E7RUFDQTtBdEVrMkpOO0FzRWgySk07RUFDRTtBdEVrMkpSO0FjcDhJSTtFd0QvWkU7SUFJSTtFdEVtMkpSO0FBQ0Y7QXNFOTFKRTtFQUNFO0F0RWcySko7QXNFOTFKSTtFQUNFO0F0RWcySk47QXNFNTFKRTtFOURwSEE7QVJtOUpGO0FRajlKRTtFQUNFO0VBQ0E7QVJtOUpKO0FzRS8xSkU7RUFDRTtBdEVpMkpKO0FzRTkxSkU7RUFDRTtBdEVnMkpKOztBdUU3Z0tBOzs7OztFQUFBO0FBT0E7O0VBQUE7QUFHQTtFQUNFO0VBQ0E7RUFDQTtBdkUrZ0tGO0FjMytJSTtFeUR2aUJKO0lBU0k7RXZFNmdLRjtBQUNGO0F1RTNnS0U7RUFDRTtBdkU2Z0tKO0F1RTFnS0U7RS9Ec0JBO0UrRG5CRTtFQUNBO0VBQ0E7RUFDQTtBdkUyZ0tKO0FRei9KRTtFQUNFO0VBQ0E7QVIyL0pKO0F1RXpnS0k7RUFDRTtFQUNBO0F2RTJnS047QXVFeGdLSTtFQUNFO0tBQUE7RUFDQTtFQUNBO0F2RTBnS047QXVFdmdLSTtFQUNFO0VBQ0E7QXZFeWdLTjtBdUVyZ0tNO0VBQ0U7QXZFdWdLUjs7QXdFL2pLQTs7Ozs7Q0FBQTtBQU9BOztDQUFBO0FBSUE7O0NBQUE7QUFJQTtFaEVORTtFQUNBO0VBQ0E7QVJza0tGO0FRcGtLRTtFQUNFO0VBQ0E7RUFDQTtBUnNrS0o7QXdFcGtLRTtFQUNFO0VBQ0E7RUFDQTtBeEVza0tKO0F3RTNqS0U7RWhFZ0JBO0VnRWRFO0VBQ0E7RUFDQTtFQUNBO0F4RTZqS0o7QVFoaktFO0VBQ0U7RUFDQTtBUmtqS0o7QXdFL2pLSTtFQUNFO0F4RWlrS047QXdFOWpLSTtFQUdFO0F4RThqS047QXdFNWpLTTtFQUNFO0F4RThqS1I7QXdFempLRTtFQUNFO0VBQ0E7RUFDQTtBeEUyaktKOztBeUVwbktBOzs7OztDQUFBO0FBT0E7O0NBQUE7QUFJQTs7Q0FBQTtBQUdBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0F6RXFuS0Y7QXlFbm5LRTtFQUNFO0VBQ0E7QXpFcW5LSjtBeUVsbktFO0VBQ0U7QXpFb25LSjtBeUVsbktJO0VBQ0U7QXpFb25LTjtBeUVsbktNO0VBQ0U7QXpFb25LUjtBY3JtSkk7RTJEbmlCSjtJQTBCSTtJQUNBO0V6RWtuS0Y7RXlFaG5LRTtJQUNFO0V6RWtuS0o7QUFDRjtBYzltSkk7RTJEbmlCSjtJQW1DSTtFekVrbktGO0FBQ0Y7O0EwRXBxS0E7Ozs7O0NBQUE7QUFPQTs7Q0FBQTtBQUlBOztDQUFBO0FBSUU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtBMUVvcUtKO0EwRWxxS0k7RWxFMkJGO0VrRXpCSTtBMUVvcUtOO0FRem9LRTtFQUNFO0VBQ0E7QVIyb0tKO0EwRXRxS007RUFDRTtBMUV3cUtSOztBMEVqcUtBO0VBQ0U7RUFDQTtBMUVvcUtGOztBMkV2c0tBOzs7OztDQUFBO0FBT0E7O0NBQUE7QUFJQTs7Q0FBQTtBQUdBO0VBQ0U7RUFDQTtFQUNBO0EzRXdzS0Y7QWN4cUpJO0U2RG5pQko7SUFNSTtFM0V5c0tGO0FBQ0Y7QWM3cUpJO0U2RG5pQko7SUFVSTtJQUNBO0lBQ0E7RTNFMHNLRjtBQUNGO0FjcHJKSTtFNkRuaUJKO0lBZ0JJO0UzRTJzS0Y7QUFDRjtBMkV6c0tFO0VBQ0U7RUFDQTtFQUNBO0EzRTJzS0o7QTJFenNLSTtFQUNFO0EzRTJzS047O0E0RWx2S0E7Ozs7O0NBQUE7QUFPQTs7Q0FBQTtBQUlBOztDQUFBO0FBR0E7RUFDRTtFQUNBO0VBQ0E7QTVFbXZLRjtBNEVqdktFO0VBQ0U7QTVFbXZLSjtBY3R0Skk7RThEOWhCRjtJQUlJO0lBQ0E7SUFDQTtFNUVvdktKO0FBQ0Y7QTRFanZLRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBNUVtdktKO0FjcnVKSTtFOERwaEJGO0lBU0k7RTVFb3ZLSjtBQUNGO0E0RWp2S0U7RXBFTUE7RUFwQkE7RUFDQTtFQUNBLHFCb0Vja0I7RUFDaEI7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QTVFcXZLSjtBUXR2S0U7RUFDRTtFQUNBO0FSd3ZLSjtBYzN2Skk7RThEdmdCRjtJQVlJO0lBQ0E7SUFDQTtJQUNBO0U1RTB2S0o7RTRFeHZLSTtJQUNFO0U1RTB2S047QUFDRjtBNEV2dktJO0VBQ0U7QTVFeXZLTjtBNEVydktNO0VBQ0U7QTVFdXZLUjtBYzV3Skk7RThEN2VBO0lBTUk7RTVFdXZLTjtBQUNGO0E0RXB2S0k7RUFDRTtBNUVzdktOO0E0RXB2S0k7RUFDRTtBNUVzdktOO0E0RXB2S0k7RUFDRTtBNUVzdktOO0E0RXB2S0k7RUFDRTtFQUNBO0VBQ0E7QTVFc3ZLTjtBNEVwdktJO0VBQ0U7QTVFc3ZLTjs7QTZFbjFLQTs7Ozs7Q0FBQTtBQU9BOztDQUFBO0FBSUE7RUFDRTtJQUNFO0lBQ0E7RTdFbzFLRjtFNkVsMUtBO0lBQ0U7SUFDQTtFN0VvMUtGO0U2RWwxS0E7SUFDRTtJQUNBO0U3RW8xS0Y7QUFDRjtBNkVoMktBO0VBQ0U7SUFDRTtJQUNBO0U3RW8xS0Y7RTZFbDFLQTtJQUNFO0lBQ0E7RTdFbzFLRjtFNkVsMUtBO0lBQ0U7SUFDQTtFN0VvMUtGO0FBQ0Y7QTZFajFLQTtFQUNFO0lBQ0U7SUFDQTtFN0VtMUtGO0U2RWoxS0E7SUFDRTtJQUNBO0U3RW0xS0Y7RTZFajFLQTtJQUNFO0lBQ0E7RTdFbTFLRjtBQUNGO0E2RS8xS0E7RUFDRTtJQUNFO0lBQ0E7RTdFbTFLRjtFNkVqMUtBO0lBQ0U7SUFDQTtFN0VtMUtGO0U2RWoxS0E7SUFDRTtJQUNBO0U3RW0xS0Y7QUFDRjtBNkVoMUtBOztDQUFBO0FBR0E7RUFDRTtFQUNBO0VBQ0E7QTdFazFLRjtBNkUvMEtJO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7QTdFaTFLTjtBNkUvMEtNO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBN0VpMUtSO0E2RTcwS0k7RXJFakJGO0FSaTJLRjtBUS8xS0U7RUFDRTtFQUNBO0FSaTJLSjtBNkUvMEtFO0VBQ0U7RUFDQTtBN0VpMUtKO0E2RTkwS0U7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0E3RWcxS0o7QTZFOTBLSTtFQUNFO1VBQUE7QTdFZzFLTjtBNkU5MEtJO0VBQ0U7VUFBQTtBN0VnMUtOO0E2RTUwS0U7RUFDRTtFQUNBO0VBQ0E7RUFDQTtBN0U4MEtKO0FjOTNKSTtFK0RwZEY7SUFPSTtFN0UrMEtKO0FBQ0Y7QWNuNEpJO0UrRHBkRjtJQVdJO0lBQ0E7RTdFZzFLSjtBQUNGO0E2RTcwS0U7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBN0UrMEtKO0FjcjVKSTtFK0RwY0Y7SUFhSTtJQUNBO0U3RWcxS0o7QUFDRjtBYzM1Skk7RStEcGNGO0lBa0JJO0U3RWkxS0o7QUFDRjtBNkUvMEtJO0VBQ0U7QTdFaTFLTjtBNkU5MEtJO0VBQ0U7QTdFZzFLTjtBNkU5MEtNO0VBQ0U7QTdFZzFLUjtBNkU1MEtJO0VBQ0U7QTdFODBLTjtBNkUzMEtJO0VBQ0U7QTdFNjBLTjtBNkUzMEtNO0VBQ0U7QTdFNjBLUjs7QThFbitLQTs7Ozs7Q0FBQTtBQU9BOztDQUFBO0FBSUE7O0NBQUE7QUFHQTtFQUNFO0VBQ0E7RUFDQTtBOUVvK0tGO0E4RWwrS0U7RUFDRTtBOUVvK0tKO0E4RWorS0U7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QTlFbStLSjtBOEVqK0tJO0VBQ0U7RUFDQTtBOUVtK0tOO0E4RWgrS0k7RUFDRTtFQUNBO0VBQ0E7QTlFaytLTjtBOEVoK0tNOzs7RUFHRTtBOUVrK0tSO0E4RWgrS007RUFDRTtFQUNBO0E5RWsrS1I7QThFOTlLSTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0E5RWcrS047QThFNzlLSTtFQUNFO0E5RSs5S047O0ErRTNoTEE7Ozs7O0NBQUE7QUFPQTs7Q0FBQTtBQUlBOztDQUFBO0FBR0E7RUFDRTtFQUNBO0VBQ0E7QS9FNGhMRjtBYzUvSkk7RWlFbmlCSjtJQU1JO0lBQ0E7RS9FNmhMRjtBQUNGO0FjbGdLSTtFaUVuaUJKO0lBV0k7RS9FOGhMRjtBQUNGO0ErRTVoTEU7RUFDRTtBL0U4aExKO0FjMWdLSTtFaUVyaEJGO0lBSUk7RS9FK2hMSjtBQUNGO0ErRTdoTEk7RUFDRTtBL0UraExOO0ErRTNoTEU7RUFDRTtFQUNBO0VBQ0E7QS9FNmhMSjtBK0UxaExFO0VBQ0U7RUFDQTtBL0U0aExKO0ErRTFoTEk7RUFDRTtBL0U0aExOO0FjOWhLSTtFaUUvZkE7SUFJSTtFL0U2aExOO0FBQ0Y7QWNuaUtJO0VpRS9mQTtJQVFJO0UvRThoTE47QUFDRjtBK0UxaExFO0V2RWZBO0V1RWlCRTtFQUVBO0VBQ0E7QS9FMmhMSjtBUTdpTEU7RUFDRTtFQUNBO0FSK2lMSjtBK0U3aExJO0VBQ0U7RUFDQTtBL0UraExOO0ErRTNoTEU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0EvRTZoTEo7QWM3aktJO0VpRXJlRjtJQVFJO0UvRThoTEo7QUFDRjtBK0U1aExJO0VBQ0U7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0EvRTZoTE47QWMxa0tJO0VpRTFkQTtJQVVJO0lBQ0E7RS9FOGhMTjtBQUNGO0FjaGxLSTtFaUUxZEE7SUFlSTtFL0UraExOO0FBQ0Y7QStFN2hMTTtFQUVFO0EvRThoTFI7QStFMWhMSTs7OztFQUlFO0VBQ0E7QS9FNGhMTjtBK0V6aExJO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0EvRTJoTE47QStFemhMTTtFQUNFO0EvRTJoTFI7QStFeGhMTTtFQUNFO0VBQ0E7QS9FMGhMUjtBK0V2aExNO0VBQ0U7QS9FeWhMUjtBK0V2aExRO0VBQ0U7QS9FeWhMVjs7QWdGcnFMQTs7Ozs7Q0FBQTtBQU9BOztDQUFBO0FBSUE7O0NBQUE7QUFHQTtFQUNFO0VBVUE7QWhGNnBMRjtBY3JvS0k7RWtFbmlCSjtJQUlJO0VoRndxTEY7QUFDRjtBYzFvS0k7RWtFbmlCSjtJQVFJO0VoRnlxTEY7QUFDRjtBZ0ZycUxFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FoRnVxTEo7QWMxcEtJO0VrRTFnQkU7SUFDRTtFaEZ1cUxOO0FBQ0Y7QWdGbnFMRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0FoRnFxTEo7QWNycUtJO0VrRXBnQkY7SUFPSTtFaEZzcUxKO0FBQ0Y7QWdGbnFMRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QWhGcXFMSjtBY3ByS0k7RWtFemZGO0lBV0k7SUFDQTtFaEZzcUxKO0FBQ0Y7QWMxcktJO0VrRXpmRjtJQWdCSTtJQUNBO0VoRnVxTEo7QUFDRjtBZ0ZycUxJO0VBQ0U7QWhGdXFMTjtBZ0ZwcUxJO0VBQ0U7QWhGc3FMTjtBY3RzS0k7RWtFamVBO0lBSUk7RWhGdXFMTjtBQUNGO0FjM3NLSTtFa0V6ZEk7SUFDRTtFaEZ1cUxSO0FBQ0Y7QWdGbnFMSTtFQUNFO0VBQ0E7QWhGcXFMTjtBY3B0S0k7RWtFbmRBO0lBS0k7RWhGc3FMTjtBQUNGO0FnRm5xTEk7RUFFRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QWhGb3FMTjtBZ0ZqcUxJO0VBQ0U7QWhGbXFMTjtBZ0ZocUxJO0VBQ0U7QWhGa3FMTjtBZ0YvcExJO0VBQ0U7RUFDQTtBaEZpcUxOOztBaUY1eExBOzs7OztDQUFBO0FBT0E7O0NBQUE7QUFJQTs7Q0FBQTtBQUdBO0VBOEJFO0VBK0RBO0VBTUE7OztHQUFBO0VBMENBOzs7O0lBQUE7RUFvRkE7RUEwQ0E7Ozs7SUFBQTtFQWlCQTs7OztJQUFBO0VBNkJBO0VBS0E7Ozs7OztJQUFBO0VBb0pBOzs7O0lBQUE7RUFLQTtFQVFBO0VBb0JBO0VBV0E7RUFNQTtFQVVBOzs7R0FBQTtFQVlBO0FqRmd6S0Y7QWlGejBMRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0tBQUE7VUFBQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FqRjIwTEo7QWlGejBMRTs7RUFFRTtBakYyMExKO0FpRnowTEU7RUFDRTtFQUNBO0FqRjIwTEo7QWlGejBMRTtFQUNFO0VBQ0E7QWpGMjBMSjtBaUZ2MExFO0VBQ0U7QWpGeTBMSjtBaUZ0MExFOzs7RUFHRTtFQUNBO0VBQ0E7RUFDQTtBakZ3MExKO0FpRnIwTEU7RUE1Q0Y7SUFnREk7RWpGcTBMRjtFaUZwMExFOzs7SUFHRTtFakZzMExKO0VpRnAwTEU7O0lBRUU7RWpGczBMSjtBQUNGO0FpRm4wTEU7RUFDRTtBakZxMExKO0FpRmwwTEU7RUFDRTtBakZvMExKO0FpRmowTEU7RUFDRTtBakZtMExKO0FpRmgwTEU7RUFDRTtBakZrMExKO0FpRi96TEU7RUFDRTtBakZpMExKO0FpRjl6TEU7RUFDRTtFQUNBO0FqRmcwTEo7QWlGN3pMRTtFQUNFO0FqRit6TEo7QWlGNXpMRTtFQUNFO0FqRjh6TEo7QWlGMXpMRTs7RUFFRTtBakY0ekxKO0FpRnJ6TEU7O0VBRUU7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FqRnV6TEo7QWlGcHpMRTtFQUNFO0FqRnN6TEo7QWlGbnpMRTtFQUNFO0FqRnF6TEo7QWlGbHpMRTs7RUFFRTtFQUNBO0VBRUE7RUFDQTtFQUNBO0FqRm16TEo7QWlGaHpMRTtFQUNFO0VBQ0E7QWpGa3pMSjtBaUYveUxFO0VBQ0U7RUFDQTtBakZpekxKO0FpRnp5TEU7O0VBRUU7RUFDQTtFQUNBO0VBQ0E7QWpGMnlMSjtBaUZ4eUxFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FqRjB5TEo7QWlGdnlMRTtFQUNFO0FqRnl5TEo7QWlGdHlMRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBakZ3eUxKO0FpRnR5TEU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QWpGd3lMSjtBaUZ0eUxFO0VBQ0U7RUFDQTtBakZ3eUxKO0FpRnR5TEU7RUFDRTtFQUNBO0FqRnd5TEo7QWlGdHlMRTtFQUNFO0FqRnd5TEo7QWlGcnlMRTtFQUNFO0FqRnV5TEo7QWlGcnlMRTtFQUNFO0VBQ0E7RUFDQTtBakZ1eUxKO0FpRm55TEU7RUFDRTtBakZxeUxKO0FpRmx5TEU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QWpGb3lMSjtBaUZqeUxFO0VBQ0U7RUFDQTtBakZteUxKO0FpRmp5TEU7RUFDRTtBakZteUxKO0FpRmh5TEU7RUFDRTtFQUNBO0FqRmt5TEo7QWlGL3hMRTtFQUNFO0VBQ0E7QWpGaXlMSjtBaUY5eExFO0VBQ0U7QWpGZ3lMSjtBaUZ4eExFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FqRjB4TEo7QWlGbHhMRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QWpGb3hMSjtBaUZseExFO0VBQ0U7RUFDQTtBakZveExKO0FpRmp4TEU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FqRm14TEo7QWlGaHhMRTtFQUNFO0FqRmt4TEo7QWlGOXdMRTtFQUNFO0FqRmd4TEo7QWlGdHdMRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QWpGd3dMSjtBaUZyd0xFO0VBQ0U7RUFDQTtFQUNBO0FqRnV3TEo7QWlGcHdMRTtFQUNFO0FqRnN3TEo7QWlGcHdMRTtFQUNFO0VBQ0E7QWpGc3dMSjtBaUZud0xFO0VBQ0U7QWpGcXdMSjtBaUZud0xFO0VBQ0U7RUFDQTtBakZxd0xKO0FpRm53TEU7RUFDRTtFQUVBO0FqRm93TEo7QWlGandMRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QWpGbXdMSjtBaUZod0xFO0VBQ0U7OztLQUFBO0VBSUE7RUFDQTtFQUNBO0VBQ0E7QWpGa3dMSjtBaUYvdkxFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QWpGaXdMSjtBaUY5dkxFO0VBQ0U7SUFDRTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0Vq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dU5JOzs7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0F2RjJ1Tk47QXVGdnVOTTs7O0VBQ0U7QXZGMnVOUjtBdUZ0dU5FOzs7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0F2RjB1Tko7QWM1d01JO0V5RW5lRjs7O0lBUUk7RXZGNnVOSjtBQUNGO0F1RjN1Tkk7OztFL0V6Q0Y7RStFMkNJO0F2Rit1Tk47QVF4eE5FOzs7RUFDRTtFQUNBO0FSNHhOSjtBdUZsdk5JOzs7RUFDRTtFQUNBO0VBQ0E7QXZGc3ZOTjtBY3R5TUk7RXlFNWNFOzs7SUFDRTtJQUNBO0lBQ0E7RXZGdXZOTjtBQUNGO0F1RnB2Tkk7OztFQUNFO0F2Rnd2Tk47QXVGcHZORTs7O0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBdkZ3dk5KO0F1RnR2Tkk7OztFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QXZGMHZOTjtBdUZ4dk5NOzs7RUFDRTtFQUNBO0F2RjR2TlI7QXVGenZOTTs7O0VBQ0U7RUFDQTtBdkY2dk5SO0F1Rnp2Tkk7OztFQUNFO0VBQ0E7QXZGNnZOTjtBY3gxTUk7RXlFamFFOzs7SUFDRTtJQUNBO0lBQ0E7RXZGOHZOTjtBQUNGO0F1RjF2TkU7OztFQUNFO0F2Rjh2Tko7O0F1Rmh2TkU7RUFDRTtBdkZtdk5KO0F1Rmh2TkU7RUFDRTtFQUNBO0F2Rmt2Tko7QXVGL3VORTtFQUNFO0F2Rml2Tko7QXVGOXVORTtFQUNFO0F2Rmd2Tko7O0F1RjV1TkE7RUFDRTtFQUNBO0VBQ0E7QXZGK3VORjtBYzEzTUk7RXlFeFhKO0lBTUk7SUFDQTtFdkZndk5GO0FBQ0Y7QWNoNE1JO0V5RXhYSjtJQVdJO0V2Rml2TkY7QUFDRjtBdUYvdU5FO0VBQ0U7QXZGaXZOSjtBdUYzck5FO0VBQ0U7RUFDQTtBdkY2ck5KO0F1RjFyTkU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtBdkY0ck5KO0F1RjFyTkk7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQU9BO0VBQ0E7QXZGc3JOTjtBdUY1ck5NO0VBQ0U7RUFDQTtBdkY4ck5SOztBdUZu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RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0ExRjZ6T0o7QWMvMk5JO0U0RTVkRjtJQWtCSTtJQUNBO0lBQ0E7RTFGNnpPSjtBQUNGO0EwRjN6T0k7RUFDRTtBMUY2ek9OO0FjejNOSTtFNEVyY0E7SUFJSTtFMUY4ek9OO0FBQ0Y7QTBGM3pPSTtFQUNFO0ExRjZ6T047QTBGMXpPSTtFQUNFO0ExRjR6T047QTBGMXpPTTtFQUNFO0ExRjR6T1I7O0FBMzFPQTs7Q0FBQTtBMkY3RkE7Ozs7O0NBQUE7QUFPQTs7Q0FBQTtBQUlBOztDQUFBO0FBR0E7RUFDRTtFQUNBO0VBQ0E7QTNGNDdPRixDIiwiZmlsZSI6ImNzcy9nbG9iYWwuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyohIFBob3RvU3dpcGUgbWFpbiBDU1MgYnkgRG1pdHJ5IFNlbWVub3YgfCBwaG90b3N3aXBlLmNvbSB8IE1JVCBsaWNlbnNlICovXG4vKlxuXHRTdHlsZXMgZm9yIGJhc2ljIFBob3RvU3dpcGUgZnVuY3Rpb25hbGl0eSAoc2xpZGluZyBhcmVhLCBvcGVuL2Nsb3NlIHRyYW5zaXRpb25zKVxuKi9cbi8qIHBzd3AgPSBwaG90b3N3aXBlICovXG4ucHN3cCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAtbXMtdG91Y2gtYWN0aW9uOiBub25lO1xuICB0b3VjaC1hY3Rpb246IG5vbmU7XG4gIHotaW5kZXg6IDE1MDA7XG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLyogY3JlYXRlIHNlcGFyYXRlIGxheWVyLCB0byBhdm9pZCBwYWludCBvbiB3aW5kb3cub25zY3JvbGwgaW4gd2Via2l0L2JsaW5rICovXG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICBvdXRsaW5lOiBub25lOyB9XG4gIC5wc3dwICoge1xuICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cbiAgLnBzd3AgaW1nIHtcbiAgICBtYXgtd2lkdGg6IG5vbmU7IH1cblxuLyogc3R5bGUgaXMgYWRkZWQgd2hlbiBKUyBvcHRpb24gc2hvd0hpZGVPcGFjaXR5IGlzIHNldCB0byB0cnVlICovXG4ucHN3cC0tYW5pbWF0ZV9vcGFjaXR5IHtcbiAgLyogMC4wMDEsIGJlY2F1c2Ugb3BhY2l0eTowIGRvZXNuJ3QgdHJpZ2dlciBQYWludCBhY3Rpb24sIHdoaWNoIGNhdXNlcyBsYWcgYXQgc3RhcnQgb2YgdHJhbnNpdGlvbiAqL1xuICBvcGFjaXR5OiAwLjAwMTtcbiAgd2lsbC1jaGFuZ2U6IG9wYWNpdHk7XG4gIC8qIGZvciBvcGVuL2Nsb3NlIHRyYW5zaXRpb24gKi9cbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDMzM21zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMjIsIDEpO1xuICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMzMzbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yMiwgMSk7IH1cblxuLnBzd3AtLW9wZW4ge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4ucHN3cC0tem9vbS1hbGxvd2VkIC5wc3dwX19pbWcge1xuICAvKiBhdXRvcHJlZml4ZXI6IG9mZiAqL1xuICBjdXJzb3I6IC13ZWJraXQtem9vbS1pbjtcbiAgY3Vyc29yOiAtbW96LXpvb20taW47XG4gIGN1cnNvcjogem9vbS1pbjsgfVxuXG4ucHN3cC0tem9vbWVkLWluIC5wc3dwX19pbWcge1xuICAvKiBhdXRvcHJlZml4ZXI6IG9mZiAqL1xuICBjdXJzb3I6IC13ZWJraXQtZ3JhYjtcbiAgY3Vyc29yOiAtbW96LWdyYWI7XG4gIGN1cnNvcjogZ3JhYjsgfVxuXG4ucHN3cC0tZHJhZ2dpbmcgLnBzd3BfX2ltZyB7XG4gIC8qIGF1dG9wcmVmaXhlcjogb2ZmICovXG4gIGN1cnNvcjogLXdlYmtpdC1ncmFiYmluZztcbiAgY3Vyc29yOiAtbW96LWdyYWJiaW5nO1xuICBjdXJzb3I6IGdyYWJiaW5nOyB9XG5cbi8qXG5cdEJhY2tncm91bmQgaXMgYWRkZWQgYXMgYSBzZXBhcmF0ZSBlbGVtZW50LlxuXHRBcyBhbmltYXRpbmcgb3BhY2l0eSBpcyBtdWNoIGZhc3RlciB0aGFuIGFuaW1hdGluZyByZ2JhKCkgYmFja2dyb3VuZC1jb2xvci5cbiovXG4ucHN3cF9fYmcge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZDogIzAwMDtcbiAgb3BhY2l0eTogMDtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lsbC1jaGFuZ2U6IG9wYWNpdHk7IH1cblxuLnBzd3BfX3Njcm9sbC13cmFwIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLnBzd3BfX2NvbnRhaW5lcixcbi5wc3dwX196b29tLXdyYXAge1xuICAtbXMtdG91Y2gtYWN0aW9uOiBub25lO1xuICB0b3VjaC1hY3Rpb246IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwOyB9XG5cbi8qIFByZXZlbnQgc2VsZWN0aW9uIGFuZCB0YXAgaGlnaGxpZ2h0cyAqL1xuLnBzd3BfX2NvbnRhaW5lcixcbi5wc3dwX19pbWcge1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lOyB9XG5cbi5wc3dwX196b29tLXdyYXAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgdG9wO1xuICAtbXMtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCB0b3A7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgdG9wO1xuICAvKiBmb3Igb3Blbi9jbG9zZSB0cmFuc2l0aW9uICovXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gMzMzbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yMiwgMSk7XG4gICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDMzM21zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMjIsIDEpOyB9XG5cbi5wc3dwX19iZyB7XG4gIHdpbGwtY2hhbmdlOiBvcGFjaXR5O1xuICAvKiBmb3Igb3Blbi9jbG9zZSB0cmFuc2l0aW9uICovXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAzMzNtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIyLCAxKTtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDMzM21zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMjIsIDEpOyB9XG5cbi5wc3dwLS1hbmltYXRlZC1pbiAucHN3cF9fYmcsXG4ucHN3cC0tYW5pbWF0ZWQtaW4gLnBzd3BfX3pvb20td3JhcCB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogbm9uZTtcbiAgdHJhbnNpdGlvbjogbm9uZTsgfVxuXG4ucHN3cF9fY29udGFpbmVyLFxuLnBzd3BfX3pvb20td3JhcCB7XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5wc3dwX19pdGVtIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLnBzd3BfX2ltZyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgdG9wOiAwO1xuICBsZWZ0OiAwOyB9XG5cbi8qXG5cdHN0cmV0Y2hlZCB0aHVtYm5haWwgb3IgZGl2IHBsYWNlaG9sZGVyIGVsZW1lbnQgKHNlZSBiZWxvdylcblx0c3R5bGUgaXMgYWRkZWQgdG8gYXZvaWQgZmxpY2tlcmluZyBpbiB3ZWJraXQvYmxpbmsgd2hlbiBsYXllcnMgb3ZlcmxhcFxuKi9cbi5wc3dwX19pbWctLXBsYWNlaG9sZGVyIHtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLypcblx0ZGl2IGVsZW1lbnQgdGhhdCBtYXRjaGVzIHNpemUgb2YgbGFyZ2UgaW1hZ2Vcblx0bGFyZ2UgaW1hZ2UgbG9hZHMgb24gdG9wIG9mIGl0XG4qL1xuLnBzd3BfX2ltZy0tcGxhY2Vob2xkZXItLWJsYW5rIHtcbiAgYmFja2dyb3VuZDogIzIyMjsgfVxuXG4ucHN3cC0taWUgLnBzd3BfX2ltZyB7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7IH1cblxuLypcblx0RXJyb3IgbWVzc2FnZSBhcHBlYXJzIHdoZW4gaW1hZ2UgaXMgbm90IGxvYWRlZFxuXHQoSlMgb3B0aW9uIGVycm9yTXNnIGNvbnRyb2xzIG1hcmt1cClcbiovXG4ucHN3cF9fZXJyb3ItbXNnIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB0b3A6IDUwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMTZweDtcbiAgbWFyZ2luLXRvcDogLThweDtcbiAgY29sb3I6ICNDQ0M7IH1cblxuLnBzd3BfX2Vycm9yLW1zZyBhIHtcbiAgY29sb3I6ICNDQ0M7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogTWFpbiAtIEdsb2JhbFxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbi8qKlxuICogRGVwZW5kZW5jaWVzXG4gKi9cbkBpbXBvcnQgJ35pbmNsdWRlLW1lZGlhL2Rpc3QvX2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAnfm5vcm1hbGl6ZS5zY3NzL25vcm1hbGl6ZS5zY3NzJztcbkBpbXBvcnQgJ35yZWZsZXgtZ3JpZC9zY3NzL3JlZmxleC5zY3NzJztcbkBpbXBvcnQgJ35waG90b3N3aXBlL2Rpc3QvcGhvdG9zd2lwZS5jc3MnO1xuXG4vKipcbiAqIEhlbHBlcnNcbiAqL1xuQGltcG9ydCAnaGVscGVycy9mb2N1cy12aXNpYmxlJztcbkBpbXBvcnQgJ2hlbHBlcnMvZm9udC1zbW9vdGhpbmcnO1xuQGltcG9ydCAnaGVscGVycy9taXhpbnMnO1xuQGltcG9ydCAnaGVscGVycy90YWJsZSc7XG5cbi8qKlxuICogQ29uZmlnXG4gKi9cbkBpbXBvcnQgJ2NvbmZpZy9mb250cyc7XG5AaW1wb3J0ICdjb25maWcvdmFycyc7XG5cbi8qKlxuICogQmFzZVxuICovXG5AaW1wb3J0ICdiYXNlL2RlZmF1bHRzJztcbkBpbXBvcnQgJ2Jhc2UvdHlwb2dyYXBoeSc7XG5AaW1wb3J0ICdiYXNlL21haW4nO1xuQGltcG9ydCAnYmFzZS9hbmltYXRpb25zJztcblxuLyoqXG4qIEF0b21zXG4qL1xuQGltcG9ydCAnYXRvbXMvYnV0dG9ucyc7XG5AaW1wb3J0ICdhdG9tcy9pbWFnZS1jcmVkaXQnO1xuQGltcG9ydCAnYXRvbXMvYnJlYWRjcnVtYnMnO1xuQGltcG9ydCAnYXRvbXMvbG9hZGVyJztcbkBpbXBvcnQgJ2F0b21zL2RhdGUtcGlja2VyJztcbkBpbXBvcnQgJ2F0b21zL3BhZ2VyJztcbkBpbXBvcnQgJ2F0b21zL2NvbHMnO1xuQGltcG9ydCAnYXRvbXMvY2FwdGlvbic7XG5AaW1wb3J0ICdhdG9tcy9hdXRvLWdyaWQnO1xuQGltcG9ydCAnYXRvbXMvbGlua3MnO1xuQGltcG9ydCAnYXRvbXMvc2lkZWJhcic7XG5AaW1wb3J0ICdhdG9tcy90YWcnO1xuQGltcG9ydCAnYXRvbXMvc3RpY2t5JztcbkBpbXBvcnQgJ2F0b21zL2NhbmNlbGxlZCc7XG5AaW1wb3J0ICdhdG9tcy9za2lwLWxpbmsnO1xuQGltcG9ydCAnYXRvbXMvbGlzdGluZyc7XG5AaW1wb3J0ICdhdG9tcy9jaXRlJztcbkBpbXBvcnQgJ2F0b21zL2JhY2stdG9wJztcbkBpbXBvcnQgJ2F0b21zL2dyaWQnO1xuXG4vKipcbiAqIE1vbGVjdWxlc1xuICovXG5AaW1wb3J0ICdtb2xlY3VsZXMvZW1tc2cnO1xuQGltcG9ydCAnbW9sZWN1bGVzL2Jsb2Nrcyc7XG5AaW1wb3J0ICdtb2xlY3VsZXMvZm9ybXMnO1xuQGltcG9ydCAnbW9sZWN1bGVzL25hdic7XG5AaW1wb3J0ICdtb2xlY3VsZXMvYmFubmVyJztcbkBpbXBvcnQgJ21vbGVjdWxlcy9zb2NpYWwtbGlua3MnO1xuQGltcG9ydCAnbW9sZWN1bGVzL3N1Ym5hdic7XG5AaW1wb3J0ICdtb2xlY3VsZXMvaW50cm8nO1xuQGltcG9ydCAnbW9sZWN1bGVzL2FuY2hvci1uYXYnO1xuQGltcG9ydCAnbW9sZWN1bGVzL2NvdXJzZS1kZXRhaWxzJztcbkBpbXBvcnQgJ21vbGVjdWxlcy9wZW9wbGUtc2lkZWJhcic7XG5AaW1wb3J0ICdtb2xlY3VsZXMvaG9tZXBhZ2UtYmFubmVyJztcbkBpbXBvcnQgJ21vbGVjdWxlcy9ldmVudC1zaWRlYmFyJztcbkBpbXBvcnQgJ21vbGVjdWxlcy9zZWFyY2gtZm9ybSc7XG5AaW1wb3J0ICdtb2xlY3VsZXMvcGVyZm9ybWFuY2VzJztcbkBpbXBvcnQgJ21vbGVjdWxlcy9waG90b3N3aXBlJztcbkBpbXBvcnQgJ21vbGVjdWxlcy90b2dnbGUtc3VibmF2JztcbkBpbXBvcnQgJ21vbGVjdWxlcy9zdWJuYXYtY29udGFpbmVyJztcblxuLyoqXG4gKiBPcmdhbmlzaW1zXG4gKi9cbkBpbXBvcnQgJ29yZ2FuaXNtcy9oZWFkZXInO1xuQGltcG9ydCAnb3JnYW5pc21zL2Zvb3Rlcic7XG5AaW1wb3J0ICdvcmdhbmlzbXMvc2VhcmNoLXJlc3VsdHMnO1xuQGltcG9ydCAnb3JnYW5pc21zL3RlYXNlcic7XG5AaW1wb3J0ICdvcmdhbmlzbXMvbGlzdGluZyc7XG5AaW1wb3J0ICdvcmdhbmlzbXMvcGVvcGxlJztcbkBpbXBvcnQgJ29yZ2FuaXNtcy9tb2RhbCc7XG5cbi8qKlxuKiBUZW1wbGF0ZXNcbiovXG5AaW1wb3J0ICd0ZW1wbGF0ZXMvcG9zdCc7XG4iLCIvKiEgbm9ybWFsaXplLnNjc3MgdjAuMS4wIHwgTUlUIExpY2Vuc2UgfCBiYXNlZCBvbiBnaXQuaW8vbm9ybWFsaXplICovXG5cbi8qKlxuICogMS4gU2V0IGRlZmF1bHQgZm9udCBmYW1pbHkgdG8gc2Fucy1zZXJpZi5cbiAqIDIuIFByZXZlbnQgaU9TIHRleHQgc2l6ZSBhZGp1c3QgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlLCB3aXRob3V0IGRpc2FibGluZ1xuICogICAgdXNlciB6b29tLlxuICovXG5cbmh0bWwge1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjsgLyogMSAqL1xuICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgZGVmYXVsdCBtYXJnaW4uXG4gKi9cblxuYm9keSB7XG4gIG1hcmdpbjogMDtcbn1cblxuLyogSFRNTDUgZGlzcGxheSBkZWZpbml0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYW55IEhUTUw1IGVsZW1lbnQgaW4gSUUgOC85LlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBkZXRhaWxzYCBvciBgc3VtbWFyeWAgaW4gSUUgMTAvMTFcbiAqIGFuZCBGaXJlZm94LlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBtYWluYCBpbiBJRSAxMS5cbiAqL1xuXG5hcnRpY2xlLFxuYXNpZGUsXG5kZXRhaWxzLFxuZmlnY2FwdGlvbixcbmZpZ3VyZSxcbmZvb3RlcixcbmhlYWRlcixcbmhncm91cCxcbm1haW4sXG5tZW51LFxubmF2LFxuc2VjdGlvbixcbnN1bW1hcnkge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGBpbmxpbmUtYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgaW4gSUUgOC85LlxuICogMi4gTm9ybWFsaXplIHZlcnRpY2FsIGFsaWdubWVudCBvZiBgcHJvZ3Jlc3NgIGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICovXG5cbmF1ZGlvLFxuY2FudmFzLFxucHJvZ3Jlc3MsXG52aWRlbyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgLyogMSAqL1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBQcmV2ZW50IG1vZGVybiBicm93c2VycyBmcm9tIGRpc3BsYXlpbmcgYGF1ZGlvYCB3aXRob3V0IGNvbnRyb2xzLlxuICogUmVtb3ZlIGV4Y2VzcyBoZWlnaHQgaW4gaU9TIDUgZGV2aWNlcy5cbiAqL1xuXG5hdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICBkaXNwbGF5OiBub25lO1xuICBoZWlnaHQ6IDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBgW2hpZGRlbl1gIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLlxuICogSGlkZSB0aGUgYHRlbXBsYXRlYCBlbGVtZW50IGluIElFIDgvOS8xMSwgU2FmYXJpLCBhbmQgRmlyZWZveCA8IDIyLlxuICovXG5cbltoaWRkZW5dLFxudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiBMaW5rc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBjb2xvciBmcm9tIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAqL1xuXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi8qKlxuICogSW1wcm92ZSByZWFkYWJpbGl0eSB3aGVuIGZvY3VzZWQgYW5kIGFsc28gbW91c2UgaG92ZXJlZCBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuYTphY3RpdmUsXG5hOmhvdmVyIHtcbiAgb3V0bGluZTogMDtcbn1cblxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC8xMSwgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxlIHNldCB0byBgYm9sZGVyYCBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cblxuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAqL1xuXG5kZm4ge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi8qKlxuICogQWRkcmVzcyB2YXJpYWJsZSBgaDFgIGZvbnQtc2l6ZSBhbmQgbWFyZ2luIHdpdGhpbiBgc2VjdGlvbmAgYW5kIGBhcnRpY2xlYFxuICogY29udGV4dHMgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS5cbiAqL1xuXG5tYXJrIHtcbiAgYmFja2dyb3VuZDogI2ZmMDtcbiAgY29sb3I6ICMwMDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYW5kIHZhcmlhYmxlIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbn1cblxuLyoqXG4gKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBhZmZlY3RpbmcgYGxpbmUtaGVpZ2h0YCBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07XG59XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTtcbn1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgYm9yZGVyIHdoZW4gaW5zaWRlIGBhYCBlbGVtZW50IGluIElFIDgvOS8xMC5cbiAqL1xuXG5pbWcge1xuICBib3JkZXI6IDA7XG59XG5cbi8qKlxuICogQ29ycmVjdCBvdmVyZmxvdyBub3QgaGlkZGVuIGluIElFIDkvMTAvMTEuXG4gKi9cblxuc3ZnOm5vdCg6cm9vdCkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vKiBHcm91cGluZyBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZHJlc3MgbWFyZ2luIG5vdCBwcmVzZW50IGluIElFIDgvOSBhbmQgU2FmYXJpLlxuICovXG5cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMWVtIDQwcHg7XG59XG5cbi8qKlxuICogQWRkcmVzcyBkaWZmZXJlbmNlcyBiZXR3ZWVuIEZpcmVmb3ggYW5kIG90aGVyIGJyb3dzZXJzLlxuICovXG5cbmhyIHtcbiAgLW1vei1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGhlaWdodDogMDtcbn1cblxuLyoqXG4gKiBDb250YWluIG92ZXJmbG93IGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5wcmUge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiBBZGRyZXNzIG9kZCBgZW1gLXVuaXQgZm9udCBzaXplIHJlbmRlcmluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuY29kZSxcbmtiZCxcbnByZSxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuXG4vKiBGb3Jtc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBLbm93biBsaW1pdGF0aW9uOiBieSBkZWZhdWx0LCBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYIGFsbG93IHZlcnkgbGltaXRlZFxuICogc3R5bGluZyBvZiBgc2VsZWN0YCwgdW5sZXNzIGEgYGJvcmRlcmAgcHJvcGVydHkgaXMgc2V0LlxuICovXG5cbi8qKlxuICogMS4gQ29ycmVjdCBjb2xvciBub3QgYmVpbmcgaW5oZXJpdGVkLlxuICogICAgS25vd24gaXNzdWU6IGFmZmVjdHMgY29sb3Igb2YgZGlzYWJsZWQgZWxlbWVudHMuXG4gKiAyLiBDb3JyZWN0IGZvbnQgcHJvcGVydGllcyBub3QgYmVpbmcgaW5oZXJpdGVkLlxuICogMy4gQWRkcmVzcyBtYXJnaW5zIHNldCBkaWZmZXJlbnRseSBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cblxuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgY29sb3I6IGluaGVyaXQ7IC8qIDEgKi9cbiAgZm9udDogaW5oZXJpdDsgLyogMiAqL1xuICBtYXJnaW46IDA7IC8qIDMgKi9cbn1cblxuLyoqXG4gKiBBZGRyZXNzIGBvdmVyZmxvd2Agc2V0IHRvIGBoaWRkZW5gIGluIElFIDgvOS8xMC8xMS5cbiAqL1xuXG5idXR0b24ge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGluY29uc2lzdGVudCBgdGV4dC10cmFuc2Zvcm1gIGluaGVyaXRhbmNlIGZvciBgYnV0dG9uYCBhbmQgYHNlbGVjdGAuXG4gKiBBbGwgb3RoZXIgZm9ybSBjb250cm9sIGVsZW1lbnRzIGRvIG5vdCBpbmhlcml0IGB0ZXh0LXRyYW5zZm9ybWAgdmFsdWVzLlxuICogQ29ycmVjdCBgYnV0dG9uYCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LCBJRSA4LzkvMTAvMTEsIGFuZCBPcGVyYS5cbiAqIENvcnJlY3QgYHNlbGVjdGAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveC5cbiAqL1xuXG5idXR0b24sXG5zZWxlY3Qge1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLyoqXG4gKiAxLiBBdm9pZCB0aGUgV2ViS2l0IGJ1ZyBpbiBBbmRyb2lkIDQuMC4qIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYFxuICogICAgYW5kIGB2aWRlb2AgY29udHJvbHMuXG4gKiAyLiBDb3JyZWN0IGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgYGlucHV0YCB0eXBlcyBpbiBpT1MuXG4gKiAzLiBJbXByb3ZlIHVzYWJpbGl0eSBhbmQgY29uc2lzdGVuY3kgb2YgY3Vyc29yIHN0eWxlIGJldHdlZW4gaW1hZ2UtdHlwZVxuICogICAgYGlucHV0YCBhbmQgb3RoZXJzLlxuICovXG5cbmJ1dHRvbixcbmh0bWwgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSwgLyogMSAqL1xuaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAyICovXG4gIGN1cnNvcjogcG9pbnRlcjsgLyogMyAqL1xufVxuXG4vKipcbiAqIFJlLXNldCBkZWZhdWx0IGN1cnNvciBmb3IgZGlzYWJsZWQgZWxlbWVudHMuXG4gKi9cblxuYnV0dG9uW2Rpc2FibGVkXSxcbmh0bWwgaW5wdXRbZGlzYWJsZWRdIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vKipcbiAqIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBib3JkZXIgaW4gRmlyZWZveCA0Ky5cbiAqL1xuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5pbnB1dDo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIEZpcmVmb3ggNCsgc2V0dGluZyBgbGluZS1oZWlnaHRgIG9uIGBpbnB1dGAgdXNpbmcgYCFpbXBvcnRhbnRgIGluXG4gKiB0aGUgVUEgc3R5bGVzaGVldC5cbiAqL1xuXG5pbnB1dCB7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG59XG5cbi8qKlxuICogSXQncyByZWNvbW1lbmRlZCB0aGF0IHlvdSBkb24ndCBhdHRlbXB0IHRvIHN0eWxlIHRoZXNlIGVsZW1lbnRzLlxuICogRmlyZWZveCdzIGltcGxlbWVudGF0aW9uIGRvZXNuJ3QgcmVzcGVjdCBib3gtc2l6aW5nLCBwYWRkaW5nLCBvciB3aWR0aC5cbiAqXG4gKiAxLiBBZGRyZXNzIGJveCBzaXppbmcgc2V0IHRvIGBjb250ZW50LWJveGAgaW4gSUUgOC85LzEwLlxuICogMi4gUmVtb3ZlIGV4Y2VzcyBwYWRkaW5nIGluIElFIDgvOS8xMC5cbiAqL1xuXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBGaXggdGhlIGN1cnNvciBzdHlsZSBmb3IgQ2hyb21lJ3MgaW5jcmVtZW50L2RlY3JlbWVudCBidXR0b25zLiBGb3IgY2VydGFpblxuICogYGZvbnQtc2l6ZWAgdmFsdWVzIG9mIHRoZSBgaW5wdXRgLCBpdCBjYXVzZXMgdGhlIGN1cnNvciBzdHlsZSBvZiB0aGVcbiAqIGRlY3JlbWVudCBidXR0b24gdG8gY2hhbmdlIGZyb20gYGRlZmF1bHRgIHRvIGB0ZXh0YC5cbiAqL1xuXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBBZGRyZXNzIGBhcHBlYXJhbmNlYCBzZXQgdG8gYHNlYXJjaGZpZWxkYCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAqIDIuIEFkZHJlc3MgYGJveC1zaXppbmdgIHNldCB0byBgYm9yZGVyLWJveGAgaW4gU2FmYXJpIGFuZCBDaHJvbWVcbiAqICAgIChpbmNsdWRlIGAtbW96YCB0byBmdXR1cmUtcHJvb2YpLlxuICovXG5cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xuICAtbW96LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAtd2Via2l0LWJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvKiAyICovXG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xufVxuXG4vKipcbiAqIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBzZWFyY2ggY2FuY2VsIGJ1dHRvbiBpbiBTYWZhcmkgYW5kIENocm9tZSBvbiBPUyBYLlxuICogU2FmYXJpIChidXQgbm90IENocm9tZSkgY2xpcHMgdGhlIGNhbmNlbCBidXR0b24gd2hlbiB0aGUgc2VhcmNoIGlucHV0IGhhc1xuICogcGFkZGluZyAoYW5kIGB0ZXh0ZmllbGRgIGFwcGVhcmFuY2UpLlxuICovXG5cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4vKipcbiAqIERlZmluZSBjb25zaXN0ZW50IGJvcmRlciwgbWFyZ2luLCBhbmQgcGFkZGluZy5cbiAqL1xuXG5maWVsZHNldCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gIG1hcmdpbjogMCAycHg7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjYyNWVtIDAuNzVlbTtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGBjb2xvcmAgbm90IGJlaW5nIGluaGVyaXRlZCBpbiBJRSA4LzkvMTAvMTEuXG4gKiAyLiBSZW1vdmUgcGFkZGluZyBzbyBwZW9wbGUgYXJlbid0IGNhdWdodCBvdXQgaWYgdGhleSB6ZXJvIG91dCBmaWVsZHNldHMuXG4gKi9cblxubGVnZW5kIHtcbiAgYm9yZGVyOiAwOyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgOC85LzEwLzExLlxuICovXG5cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qKlxuICogRG9uJ3QgaW5oZXJpdCB0aGUgYGZvbnQtd2VpZ2h0YCAoYXBwbGllZCBieSBhIHJ1bGUgYWJvdmUpLlxuICogTk9URTogdGhlIGRlZmF1bHQgY2Fubm90IHNhZmVseSBiZSBjaGFuZ2VkIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFguXG4gKi9cblxub3B0Z3JvdXAge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLyogVGFibGVzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSBtb3N0IHNwYWNpbmcgYmV0d2VlbiB0YWJsZSBjZWxscy5cbiAqL1xuXG50YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGJvcmRlci1zcGFjaW5nOiAwO1xufVxuXG50ZCxcbnRoIHtcbiAgcGFkZGluZzogMDtcbn1cbiIsIi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyByZWZsZXggdmFyaWFibGVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBQcmVmaXhcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFlvdSBjYW4gb3B0aW9uYWxseSBuYW1lc3BhY2UgcmVmbGV4IGNsYXNzZXMgdG8gYXZvaWQgY2xhc2hpbmcgd2l0aCBvdGhlciBjc3MgZnJhbWV3b3Jrc1xuLy8gZS5nLiBzZXR0aW5nICRyZWZsZXgtcHJlZml4IGFzIFwicmVmbGV4LVwiIGhlcmUgd291bGQgY2F1c2UgY29sLXNtLTYgdG8gYmVjb21lIHJlZmxleC1jb2wtc20tNlxuLy8gRXhhbXBsZTogJHJlZmxleC1wcmVmaXg6IHJlZmxleC07XG4vLyBCeSBkZWZhdWx0IHRoaXMgaXMgYW4gZW1wdHkgc3RyaW5nXG4kcmVmbGV4LXByZWZpeDogbnVsbCAhZGVmYXVsdDtcblxuXG4vLyBMZWdhY3kgc3VwcG9ydFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUmVmbGV4IGFkZHMgYSBsb3Qgb2YgY3NzIHByb3BlcnRpZSB0byBzdXBwb3J0IG9sZGVyIGJyb3dzZXJzIHRoYXQgZG9uJ3Qgc3VwcG9ydCBmbGV4Ym94IGxheW91dC5cbi8vIElmIHlvdSBwcmVmZXIgdG8gdXNlIHRoaXMgYXMgYSBwdXJlbHkgZmxleGJveCBncmlkIHdpdGhvdXQgbGVnYWN5IHN1cHBvcnQgdGhlbiBzZXQgdGhpcyB0byBmYWxzZVxuJGxlZ2FjeS1zdXBwb3J0OiB0cnVlICFkZWZhdWx0O1xuXG4vLyBSZXNwb25zaXZlIHZpc2liaWxpdHkgaGVscGVyc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUmVmbGV4IGhhcyBzb21lIGdlbmVyaWMgdmlzaWJpbGl0eSBjbGFzc2VzIHRvIGhpZGUgZWxlbWVudHMgYXQgZGlmZmVyZW50IGJyZWFrcG9pbnRzLlxuLy8gSWYgeW91IHdhbnQgdG8gZGlzYWJsZSB0aGVzZSB0aGVuIHNldCB0aGlzIHRvIGZhbHNlXG4kdmlzaWJpbGl0eS1oZWxwZXJzOiB0cnVlICFkZWZhdWx0O1xuXG4vLyBHcmlkXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4kcmVmbGV4LWNvbHVtbnM6IDEyICFkZWZhdWx0OyAvLyBudW1iZXIgb2YgY29sdW1uc1xuXG4vLyBCcmVha3BvaW50c1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuJHJlZmxleC14czogNTc2cHggIWRlZmF1bHQ7XG4kcmVmbGV4LXNtOiA3NjhweCAhZGVmYXVsdDtcbiRyZWZsZXgtbWQ6IDk5MnB4ICFkZWZhdWx0O1xuJHJlZmxleC1sZzogMTIwMHB4ICFkZWZhdWx0O1xuJHJlZmxleC14bGc6IDE2MDBweCAhZGVmYXVsdDtcblxuJHJlZmxleC14eHMtbWF4OiAoJHJlZmxleC14cyAtIDEpO1xuJHJlZmxleC14cy1tYXg6ICgkcmVmbGV4LXNtIC0gMSk7XG4kcmVmbGV4LXNtLW1heDogKCRyZWZsZXgtbWQgLSAxKTtcbiRyZWZsZXgtbWQtbWF4OiAoJHJlZmxleC1sZyAtIDEpO1xuJHJlZmxleC1sZy1tYXg6ICgkcmVmbGV4LXhsZyAtIDEpO1xuXG4kcmVmbGV4LWJyZWFrcG9pbnRzOiAoXG4gIHh4czogMHB4LFxuICB4czogJHJlZmxleC14cyxcbiAgc206ICRyZWZsZXgtc20sXG4gIG1kOiAkcmVmbGV4LW1kLFxuICBsZzogJHJlZmxleC1sZyxcbiAgeGxnOiAkcmVmbGV4LXhsZ1xuKTtcblxuLy8gU3BhY2luZ1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuJHJlZmxleC1ncmlkLXNwYWNpbmc6IDE1cHggIWRlZmF1bHQ7XG5cbi8vIEN1c3RvbSBwcm9wZXJ0aWVzIHNvIG90aGVycyBjYW4gcmVmZXJlbmNlIHRoZSB2YXJpYWJsZXMuXG46cm9vdCB7XG4gIC0tcmVmbGV4LWNvbHVtbnM6ICN7ICRyZWZsZXgtY29sdW1ucyB9O1xuICAtLXJlZmxleC1ncmlkLXNwYWNpbmc6ICN7ICRyZWZsZXgtZ3JpZC1zcGFjaW5nIH07XG4gIC0tcmVmbGV4LXhzOiAjeyAkcmVmbGV4LXhzIH07XG4gIC0tcmVmbGV4LXNtOiAjeyAkcmVmbGV4LXNtIH07XG4gIC0tcmVmbGV4LW1kOiAjeyAkcmVmbGV4LW1kIH07XG4gIC0tcmVmbGV4LWxnOiAjeyAkcmVmbGV4LWxnIH07XG4gIC0tcmVmbGV4LXhsZzogI3sgJHJlZmxleC14bGcgfTtcbiAgLS1yZWZsZXgteHhzLW1heDogI3sgJHJlZmxleC14eHMtbWF4IH07XG4gIC0tcmVmbGV4LXhzLW1heDogI3sgJHJlZmxleC14cy1tYXggfTtcbiAgLS1yZWZsZXgtc20tbWF4OiAjeyAkcmVmbGV4LXNtLW1heCB9O1xuICAtLXJlZmxleC1tZC1tYXg6ICN7ICRyZWZsZXgtbWQtbWF4IH07XG4gIC0tcmVmbGV4LWxnLW1heDogI3sgJHJlZmxleC1sZy1tYXggfTtcbn1cbiIsIi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyByZWZsZXggY29udGFpbmVyc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLiN7JHJlZmxleC1wcmVmaXh9Y29udGFpbmVyLFxuLiN7JHJlZmxleC1wcmVmaXh9Y29udGFpbmVyLWZ1bGwge1xuICAgIEBpbmNsdWRlIGJveC1zaXppbmcoYm9yZGVyLWJveCk7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIHBhZGRpbmctcmlnaHQ6ICgkcmVmbGV4LWdyaWQtc3BhY2luZyAqIDIpO1xuICAgIHBhZGRpbmctbGVmdDogKCRyZWZsZXgtZ3JpZC1zcGFjaW5nICogMik7XG5cbiAgICAuI3skcmVmbGV4LXByZWZpeH1ncmlkIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHJlZmxleC1ncmlkLXNwYWNpbmc7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtJHJlZmxleC1ncmlkLXNwYWNpbmc7XG4gICAgfVxufVxuXG4uI3skcmVmbGV4LXByZWZpeH1jb250YWluZXIge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkcmVmbGV4LXhzKSB7XG4gICAgICAgIG1heC13aWR0aDogJHJlZmxleC14cztcbiAgICB9XG5cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJHJlZmxleC1zbSkge1xuICAgICAgICBtYXgtd2lkdGg6ICRyZWZsZXgtc207XG4gICAgfVxuXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRyZWZsZXgtbWQpIHtcbiAgICAgICAgbWF4LXdpZHRoOiAkcmVmbGV4LW1kO1xuICAgIH1cblxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkcmVmbGV4LWxnKSB7XG4gICAgICAgIG1heC13aWR0aDogJHJlZmxleC1sZztcbiAgICB9XG5cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJHJlZmxleC14bGcpIHtcbiAgICAgICAgbWF4LXdpZHRoOiAkcmVmbGV4LXhsZztcbiAgICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyByZWZsZXggZ3JpZFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLiN7JHJlZmxleC1wcmVmaXh9Z3JpZCB7XG4gICAgQGluY2x1ZGUgYm94LXNpemluZyhib3JkZXItYm94KTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBAaW5jbHVkZSBkaXNwbGF5LWZsZXgoKTtcbiAgICBAaW5jbHVkZSBmbGV4LXdyYXAoKTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBAaW5jbHVkZSBzZXR1cC13aGl0ZXNwYWNlKCk7XG5cbiAgICAmOjpiZWZvcmUsXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSBib3gtc2l6aW5nKGJvcmRlci1ib3gpO1xuICAgICAgICBAaW5jbHVkZSByZXNldC13aGl0ZXNwYWNlKCk7XG4gICAgfVxuXG4gICAgLy8gaGFuZGxlIHdoZW4gbGlzdHMgYXJlIHVzZWQgYXMgYSBncmlkXG4gICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gcmVmbGV4IGNvbCBkZWZhdWx0c1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuW2NsYXNzKj1cIiN7JHJlZmxleC1wcmVmaXh9Y29sLVwiXSB7XG4gICAgQGluY2x1ZGUgYm94LXNpemluZyhib3JkZXItYm94KTtcbiAgICBAaW5jbHVkZSByZXNldC13aGl0ZXNwYWNlKCk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgcGFkZGluZzogJHJlZmxleC1ncmlkLXNwYWNpbmc7XG5cbiAgICAmOjpiZWZvcmUsXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSBib3gtc2l6aW5nKGJvcmRlci1ib3gpO1xuICAgICAgICBAaW5jbHVkZSByZXNldC13aGl0ZXNwYWNlKCk7XG4gICAgfVxuXG4gICAgLy8gaGFuZGxlIGdyaWRzIG5lc3RlZCBpbiBjb2x1bW5zXG4gICAgLiN7JHJlZmxleC1wcmVmaXh9Z3JpZCB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgoMSwgMSwgYXV0byk7XG4gICAgICAgIG1hcmdpbjogLSRyZWZsZXgtZ3JpZC1zcGFjaW5nO1xuICAgIH1cblxuICAgIEBpZiAkbGVnYWN5LXN1cHBvcnQgPT0gdHJ1ZSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgKmRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgem9vbTogMTtcbiAgICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyByZWZsZXggZ3JpZCBnZW5lcmF0aW9uXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AaW5jbHVkZSBtYWtlLXJlZmxleC1ncmlkKGNvbC0pO1xuXG5AbWVkaWEgKG1pbi13aWR0aDogJHJlZmxleC14cykge1xuICAgIEBpbmNsdWRlIG1ha2UtcmVmbGV4LWdyaWQoY29sLXhzLSk7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAkcmVmbGV4LXNtKSB7XG4gICAgQGluY2x1ZGUgbWFrZS1yZWZsZXgtZ3JpZChjb2wtc20tKTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6ICRyZWZsZXgtbWQpIHtcbiAgICBAaW5jbHVkZSBtYWtlLXJlZmxleC1ncmlkKGNvbC1tZC0pO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogJHJlZmxleC1sZykge1xuICAgIEBpbmNsdWRlIG1ha2UtcmVmbGV4LWdyaWQoY29sLWxnLSk7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAkcmVmbGV4LXhsZykge1xuICAgIEBpbmNsdWRlIG1ha2UtcmVmbGV4LWdyaWQoY29sLXhsZy0pO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gcmVmbGV4IGNvbC1hdXRvXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4uI3skcmVmbGV4LXByZWZpeH1jb2wtYXV0byB7XG4gICAgQGluY2x1ZGUgc2V0dXAtYXV0by1jb2xzKCk7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAkcmVmbGV4LXhzKSB7XG4gICAgLiN7JHJlZmxleC1wcmVmaXh9Y29sLXhzLWF1dG8ge1xuICAgICAgICBAaW5jbHVkZSBzZXR1cC1hdXRvLWNvbHMoKTtcbiAgICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAkcmVmbGV4LXNtKSB7XG4gICAgLiN7JHJlZmxleC1wcmVmaXh9Y29sLXNtLWF1dG8ge1xuICAgICAgICBAaW5jbHVkZSBzZXR1cC1hdXRvLWNvbHMoKTtcbiAgICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAkcmVmbGV4LW1kKSB7XG4gICAgLiN7JHJlZmxleC1wcmVmaXh9Y29sLW1kLWF1dG8ge1xuICAgICAgICBAaW5jbHVkZSBzZXR1cC1hdXRvLWNvbHMoKTtcbiAgICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAkcmVmbGV4LWxnKSB7XG4gICAgLiN7JHJlZmxleC1wcmVmaXh9Y29sLWxnLWF1dG8ge1xuICAgICAgICBAaW5jbHVkZSBzZXR1cC1hdXRvLWNvbHMoKTtcbiAgICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAkcmVmbGV4LXhsZykge1xuICAgIC4jeyRyZWZsZXgtcHJlZml4fWNvbC14bGctYXV0byB7XG4gICAgICAgIEBpbmNsdWRlIHNldHVwLWF1dG8tY29scygpO1xuICAgIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHJlZmxleCBvcmRlciBoZWxwZXJzIGdlbmVyYXRpb25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBpbmNsdWRlIG1ha2Utb3JkZXItaGVscGVycygpO1xuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRyZWZsZXgteHMpIHtcbiAgICBAaW5jbHVkZSBsb29wLW9yZGVyLWhlbHBlcnMoJHJlZmxleC1jb2x1bW5zLCAnLXhzJyk7XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJHJlZmxleC1zbSkge1xuICAgIEBpbmNsdWRlIGxvb3Atb3JkZXItaGVscGVycygkcmVmbGV4LWNvbHVtbnMsICctc20nKTtcbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkcmVmbGV4LW1kKSB7XG4gICAgQGluY2x1ZGUgbG9vcC1vcmRlci1oZWxwZXJzKCRyZWZsZXgtY29sdW1ucywgJy1tZCcpO1xufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRyZWZsZXgtbGcpIHtcbiAgICBAaW5jbHVkZSBsb29wLW9yZGVyLWhlbHBlcnMoJHJlZmxleC1jb2x1bW5zLCAnLWxnJyk7XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJHJlZmxleC14bGcpIHtcbiAgICBAaW5jbHVkZSBsb29wLW9yZGVyLWhlbHBlcnMoJHJlZmxleC1jb2x1bW5zLCAnLXhsZycpO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gcmVmbGV4IG9mZnNldCBoZWxwZXJzIGdlbmVyYXRpb25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBpbmNsdWRlIG1ha2Utb2Zmc2V0LWhlbHBlcnMoKTtcblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkcmVmbGV4LXhzKSB7XG4gICAgQGluY2x1ZGUgbG9vcC1vZmZzZXQtaGVscGVycygkcmVmbGV4LWNvbHVtbnMgLSAxLCAnLXhzJyk7XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJHJlZmxleC1zbSkge1xuICAgIEBpbmNsdWRlIGxvb3Atb2Zmc2V0LWhlbHBlcnMoJHJlZmxleC1jb2x1bW5zIC0gMSwgJy1zbScpO1xufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRyZWZsZXgtbWQpIHtcbiAgICBAaW5jbHVkZSBsb29wLW9mZnNldC1oZWxwZXJzKCRyZWZsZXgtY29sdW1ucyAtIDEsICctbWQnKTtcbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkcmVmbGV4LWxnKSB7XG4gICAgQGluY2x1ZGUgbG9vcC1vZmZzZXQtaGVscGVycygkcmVmbGV4LWNvbHVtbnMgLSAxLCAnLWxnJyk7XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJHJlZmxleC14bGcpIHtcbiAgICBAaW5jbHVkZSBsb29wLW9mZnNldC1oZWxwZXJzKCRyZWZsZXgtY29sdW1ucyAtIDEsICcteGxnJyk7XG59XG4iLCIvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gcmVmbGV4IG1peGluc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gcmVmbGV4IGdyaWQgZ2VuZXJhdGlvbiBtaXhpbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBtaXhpbiBtYWtlLXJlZmxleC1ncmlkKCRjbGFzcykge1xuICAgIEBpbmNsdWRlIGxvb3AtcmVmbGV4LWNvbHVtbnMoJHJlZmxleC1jb2x1bW5zLCAkY2xhc3MsIHdpZHRoKTtcbn1cblxuQG1peGluIGNhbGMtcmVmbGV4LWNvbHVtbnMoJGluZGV4LCAkY2xhc3MsICR0eXBlKSB7XG4gICAgQGlmICR0eXBlID09IHdpZHRoIGFuZCAkaW5kZXggPiAwIHtcbiAgICAgICAgLiN7JHJlZmxleC1wcmVmaXh9I3skY2xhc3N9I3skaW5kZXh9IHtcbiAgICAgICAgICAgIHdpZHRoOiBwZXJjZW50YWdlKCgkaW5kZXggLyAkcmVmbGV4LWNvbHVtbnMpKTtcbiAgICAgICAgICAgIEBpZiAkbGVnYWN5LXN1cHBvcnQgPT0gdHJ1ZSB7XG4gICAgICAgICAgICAgICAgKndpZHRoOiBwZXJjZW50YWdlKCgkaW5kZXggLyAkcmVmbGV4LWNvbHVtbnMpKSAtIC4xOyAvLyBpZTcgY3NzIGhhY2tcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1peGluIGxvb3AtcmVmbGV4LWNvbHVtbnMoJGluZGV4LCAkY2xhc3MsICR0eXBlKSB7XG4gICAgQGlmICRpbmRleCA+PSAwIHtcbiAgICAgICAgQGluY2x1ZGUgY2FsYy1yZWZsZXgtY29sdW1ucygkaW5kZXgsICRjbGFzcywgJHR5cGUpO1xuICAgICAgICAvLyBuZXh0IGl0ZXJhdGlvblxuICAgICAgICBAaW5jbHVkZSBsb29wLXJlZmxleC1jb2x1bW5zKCgkaW5kZXggLSAxKSwgJGNsYXNzLCAkdHlwZSk7XG4gICAgfVxufVxuXG4vLyBkZWZhdWx0cyBmb3IgYXV0byBjb2xzXG5AbWl4aW4gc2V0dXAtYXV0by1jb2xzKCkge1xuICAgIEBpbmNsdWRlIGZsZXgoMSwgMCwgMHB4KTsgLy8gYSB1bml0IG9uIGxhc3QgdmFsdWUgaXMgcmVxdWlyZWQgYnkgSUUxMC0xMVxuXG4gICAgQGlmICRsZWdhY3ktc3VwcG9ydCA9PSB0cnVlIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gaW5saW5lLWJsb2NrIHNwZWNpZmljIG1peGluc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQG1peGluIHNldHVwLXdoaXRlc3BhY2UoKSB7XG4gICAgQGlmICRsZWdhY3ktc3VwcG9ydCA9PSB0cnVlIHtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0uMzFlbTtcbiAgICAgICAgKmxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gICAgICAgIHdvcmQtc3BhY2luZzogLS40M2VtO1xuICAgIH1cbn1cblxuQG1peGluIHJlc2V0LXdoaXRlc3BhY2UoKSB7XG4gICAgQGlmICRsZWdhY3ktc3VwcG9ydCA9PSB0cnVlIHtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgICAgICAgd29yZC1zcGFjaW5nOiBub3JtYWw7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgfVxufVxuXG5AbWl4aW4gcmVzZXQtdGV4dC1hbGlnbigpIHtcbiAgICAvL1xuICAgIC8vIFdlIHdhbnQgdG8gcmVzZXQgYW55IHRleHQtYWxpZ24gcHJvcGVydGllcyBzZXQgYnkgdGhlIGdyaWRcbiAgICAvLyAocmVxdWlyZWQgZm9yIHRoZSBpbmxpbmUtYmxvY2sgZmFsbGJhY2spXG4gICAgLy8gYnV0IHdlIGRvbid0IHdhbnQgdG8gb3ZlcnJpZGUgYW55IHRleHQtYWxpZ24gcHJvcGVydGllc1xuICAgIC8vIHNldCBvbiB0aGUgaW5kaXZpZHVhbCBjb2wteCBlbGVtZW50XG4gICAgLy8gb3Igb24gYW55IG9mIGl0J3MgY2hpbGQgZWxlbWVudHNcbiAgICAvL1xuICAgIC8vIDEpIHNldCB0byBsZWZ0IGJ5IGRlZmF1bHQgKHdvcmtzIGV2ZXJ5d2hlcmUpXG4gICAgLy8gMikgc2V0IHRvIHN0YXJ0IChyZXNwZWN0cyByaWdodCB0byBsZWZ0IHRleHQpXG4gICAgLy9cbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHRleHQtYWxpZ246IHN0YXJ0O1xuICAgIC1tb3otdGV4dC1hbGlnbi1sYXN0OiBsZWZ0O1xuICAgIC1tb3otdGV4dC1hbGlnbi1sYXN0OiBzdGFydDtcbiAgICB0ZXh0LWFsaWduLWxhc3Q6IGxlZnQ7XG4gICAgdGV4dC1hbGlnbi1sYXN0OiBzdGFydDtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIG9yZGVyIGNsYXNzIGdlbmVyYXRpb24gbWl4aW5zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AbWl4aW4gb3JkZXIoJG9yZGVyOiAwKSB7XG4gICAgLW1zLWZsZXgtb3JkZXI6ICRvcmRlcjtcbiAgICAtd2Via2l0LW9yZGVyOiAkb3JkZXI7XG4gICAgb3JkZXI6ICRvcmRlcjtcbn1cblxuQG1peGluIG1ha2Utb3JkZXItaGVscGVycygpIHtcbiAgICBAaW5jbHVkZSBsb29wLW9yZGVyLWhlbHBlcnMoJHJlZmxleC1jb2x1bW5zKTtcbn1cblxuQG1peGluIGxvb3Atb3JkZXItaGVscGVycygkaW5kZXgsICRicmVha3BvaW50OiBudWxsKSB7XG4gICAgQGlmICRpbmRleCA+PSAwIHtcbiAgICAgICAgLiN7JHJlZmxleC1wcmVmaXh9b3JkZXIjeyRicmVha3BvaW50fS0jeyRpbmRleH0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgb3JkZXIoJGluZGV4KTtcbiAgICAgICAgfVxuICAgICAgICAvLyBuZXh0IGl0ZXJhdGlvblxuICAgICAgICBAaW5jbHVkZSBsb29wLW9yZGVyLWhlbHBlcnMoKCRpbmRleCAtIDEpLCAkYnJlYWtwb2ludCk7XG4gICAgfVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gb2Zmc2V0IGNsYXNzIGdlbmVyYXRpb24gbWl4aW5zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQG1peGluIG9mZnNldCgkaW5kZXg6IDApIHtcbiAgICAkb2Zmc2V0OiAoJGluZGV4IC8gJHJlZmxleC1jb2x1bW5zKTtcbiAgICAvLyBjb252ZXJ0IHRvIHBlcmNlbnRhZ2Ugb25seSBpZiBub3QgemVyb1xuICAgIEBpZiAkb2Zmc2V0ICE9IDAge1xuICAgICAgICAkb2Zmc2V0OiBwZXJjZW50YWdlKCRvZmZzZXQpO1xuICAgIH1cbiAgICBtYXJnaW4tbGVmdDogJG9mZnNldDtcbiAgICBAaWYgJGxlZ2FjeS1zdXBwb3J0ID09IHRydWUge1xuICAgICAgICAqbWFyZ2luLWxlZnQ6IHBlcmNlbnRhZ2UoKCRpbmRleCAvICRyZWZsZXgtY29sdW1ucykpIC0gLjE7IC8vIGllNyBjc3MgaGFja1xuICAgIH1cbn1cblxuQG1peGluIG1ha2Utb2Zmc2V0LWhlbHBlcnMoKSB7XG4gICAgQGluY2x1ZGUgbG9vcC1vZmZzZXQtaGVscGVycygkcmVmbGV4LWNvbHVtbnMgLSAxKTtcbn1cblxuQG1peGluIGxvb3Atb2Zmc2V0LWhlbHBlcnMoJGluZGV4LCAkYnJlYWtwb2ludDogbnVsbCkge1xuICAgIEBpZiAkaW5kZXggPiAwIGFuZCAkYnJlYWtwb2ludCA9PSBudWxsIHtcbiAgICAgICAgLiN7JHJlZmxleC1wcmVmaXh9b2Zmc2V0I3skYnJlYWtwb2ludH0tI3skaW5kZXh9IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG9mZnNldCgkaW5kZXgpO1xuICAgICAgICB9XG4gICAgICAgIC8vIG5leHQgaXRlcmF0aW9uXG4gICAgICAgIEBpbmNsdWRlIGxvb3Atb2Zmc2V0LWhlbHBlcnMoKCRpbmRleCAtIDEpLCAkYnJlYWtwb2ludCk7XG4gICAgfSBAZWxzZSBpZiAkaW5kZXggPj0gMCBhbmQgJGJyZWFrcG9pbnQgIT0gbnVsbCB7XG4gICAgICAgIC4jeyRyZWZsZXgtcHJlZml4fW9mZnNldCN7JGJyZWFrcG9pbnR9LSN7JGluZGV4fSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBvZmZzZXQoJGluZGV4KTtcbiAgICAgICAgfVxuICAgICAgICAvLyBuZXh0IGl0ZXJhdGlvblxuICAgICAgICBAaW5jbHVkZSBsb29wLW9mZnNldC1oZWxwZXJzKCgkaW5kZXggLSAxKSwgJGJyZWFrcG9pbnQpO1xuICAgIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHJlZmxleCBtb2RpZmllciBtaXhpbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vXG4vLyBkaXNwbGF5XG4vLyAtLS1cblxuQG1peGluIGRpc3BsYXktZmxleCgpIHtcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gICAgZGlzcGxheTogZmxleDtcbn1cblxuLy9cbi8vIGZsZXhcbi8vIC0tLVxuXG5AbWl4aW4gZmxleCgkZ3JvdzogMCwgJHNocmluazogMSwgJGJhc2lzOiBhdXRvKSB7XG4gICAgQGlmICRiYXNpcyA9PSAwIHtcbiAgICAgICAgLW1zLWZsZXg6ICRncm93ICRzaHJpbmsgYXV0bzsgLy9pZTEwIG5lZWRzIGF1dG9cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgLW1zLWZsZXg6ICRncm93ICRzaHJpbmsgJGJhc2lzO1xuICAgIH1cblxuICAgIC13ZWJraXQtZmxleDogJGdyb3cgJHNocmluayAkYmFzaXM7XG4gICAgZmxleDogJGdyb3cgJHNocmluayAkYmFzaXM7XG59XG5cbkBtaXhpbiBmbGV4LWdyb3coJGdyb3c6MSkge1xuICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAkZ3JvdztcbiAgICAtd2Via2l0LWZsZXgtZ3JvdzogJGdyb3c7XG4gICAgZmxleC1ncm93OiAkZ3Jvdztcbn1cblxuQG1peGluIGZsZXgtc2hyaW5rKCRzaHJpbms6MSkge1xuICAgIC1tcy1mbGV4LW5lZ2F0aXZlOiAkc2hyaW5rO1xuICAgIC13ZWJraXQtZmxleC1zaHJpbms6ICRzaHJpbms7XG4gICAgZmxleC1zaHJpbms6ICRzaHJpbms7XG59XG5cbkBtaXhpbiBmbGV4LWJhc2lzKCRiYXNpczphdXRvKSB7XG4gICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6ICRiYXNpcztcbiAgICAtd2Via2l0LWZsZXgtYmFzaXM6ICRiYXNpcztcbiAgICBmbGV4LWJhc2lzOiAkYmFzaXM7XG59XG5cbkBtaXhpbiBmbGV4LWZsb3coJGRpcmVjdGlvbjogcm93LCAkd3JhcDogbm93cmFwKSB7XG4gICAgLW1zLWZsZXgtd3JhcDogJHdyYXA7XG4gICAgLW1zLWZsZXgtZGlyZWN0aW9uOiAkZGlyZWN0aW9uO1xuICAgIC13ZWJraXQtZmxleC1mbG93OiAkZGlyZWN0aW9uICR3cmFwO1xuICAgIGZsZXgtZmxvdzogJGRpcmVjdGlvbiAkd3JhcDtcbn1cblxuQG1peGluIGZsZXgtd3JhcCgkd3JhcDogd3JhcCkge1xuICAgIC1tcy1mbGV4LXdyYXA6ICR3cmFwO1xuICAgIC13ZWJraXQtZmxleC13cmFwOiAkd3JhcDtcbiAgICBmbGV4LXdyYXA6ICR3cmFwO1xufVxuXG5AbWl4aW4gZmxleC1kaXJlY3Rpb24oJGRpcmVjdGlvbjogcm93KSB7XG4gICAgLW1zLWZsZXgtZGlyZWN0aW9uOiAkZGlyZWN0aW9uO1xuICAgIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICRkaXJlY3Rpb247XG4gICAgZmxleC1kaXJlY3Rpb246ICRkaXJlY3Rpb247XG59XG5cbi8vXG4vLyBhbGlnblxuLy8gLS0tXG5cbkBtaXhpbiBhbGlnbi1pdGVtcygkYWxpZ246IHN0cmV0Y2gpIHtcbiAgICBAaW5jbHVkZSBtcy1hbGlnbi1pdGVtcygkYWxpZ24pO1xuICAgIC13ZWJraXQtYWxpZ24taXRlbXM6ICRhbGlnbjtcbiAgICBhbGlnbi1pdGVtczogJGFsaWduO1xufVxuXG5AbWl4aW4gYWxpZ24tc2VsZigkYWxpZ246IHN0cmV0Y2gpIHtcbiAgICBAaW5jbHVkZSBtcy1hbGlnbi1zZWxmKCRhbGlnbik7XG4gICAgLXdlYmtpdC1hbGlnbi1zZWxmOiAkYWxpZ247XG4gICAgYWxpZ24tc2VsZjogJGFsaWduO1xufVxuXG5AbWl4aW4gYWxpZ24tY29udGVudCgkYWxpZ246IHN0cmV0Y2gpIHtcbiAgICBAaW5jbHVkZSBtcy1hbGlnbi1jb250ZW50KCRhbGlnbik7XG4gICAgLXdlYmtpdC1hbGlnbi1jb250ZW50OiAkYWxpZ247XG4gICAgYWxpZ24tY29udGVudDogJGFsaWduO1xufVxuXG4vL1xuLy8gaWUxMCBzeW50YXggZm9yIGFsaWduXG4vLyAtLS1cblxuQG1peGluIG1zLWFsaWduLWl0ZW1zKCRhbGlnbikge1xuICAgIEBpZiAkYWxpZ24gPT0gJ2ZsZXgtc3RhcnQnIHtcbiAgICAgICAgLW1zLWZsZXgtYWxpZ246IHN0YXJ0O1xuICAgIH0gQGVsc2UgaWYgJGFsaWduID09ICdmbGV4LWVuZCcge1xuICAgICAgICAtbXMtZmxleC1hbGlnbjogZW5kO1xuICAgIH0gQGVsc2Uge1xuICAgICAgICAtbXMtZmxleC1hbGlnbjogJGFsaWduO1xuICAgIH1cbn1cblxuQG1peGluIG1zLWFsaWduLXNlbGYoJGFsaWduKSB7XG4gICAgQGlmICRhbGlnbiA9PSAnZmxleC1zdGFydCcge1xuICAgICAgICAtbXMtZmxleC1pdGVtLWFsaWduOiBzdGFydDtcbiAgICB9IEBlbHNlIGlmICRhbGlnbiA9PSAnZmxleC1lbmQnIHtcbiAgICAgICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogZW5kO1xuICAgIH0gQGVsc2Uge1xuICAgICAgICAtbXMtZmxleC1pdGVtLWFsaWduOiAkYWxpZ247XG4gICAgfVxufVxuXG5AbWl4aW4gbXMtYWxpZ24tY29udGVudCgkYWxpZ24pIHtcbiAgICBAaWYgJGFsaWduID09ICdmbGV4LXN0YXJ0JyB7XG4gICAgICAgIC1tcy1mbGV4LWxpbmUtcGFjazogc3RhcnQ7XG4gICAgfSBAZWxzZSBpZiAkYWxpZ24gPT0gJ2ZsZXgtZW5kJyB7XG4gICAgICAgIC1tcy1mbGV4LWxpbmUtcGFjazogZW5kO1xuICAgIH0gQGVsc2UgaWYgJGFsaWduID09ICdzcGFjZS1iZXR3ZWVuJyB7XG4gICAgICAgIC1tcy1mbGV4LWxpbmUtcGFjazoganVzdGlmeTtcbiAgICB9IEBlbHNlIGlmICRhbGlnbiA9PSAnc3BhY2UtYXJvdW5kJyB7XG4gICAgICAgIC1tcy1mbGV4LWxpbmUtcGFjazogZGlzdHJpYnV0ZTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICAgLW1zLWZsZXgtbGluZS1wYWNrOiAkYWxpZ247XG4gICAgfVxufVxuXG4vL1xuLy8ganVzdGlmeS1jb250ZW50XG4vL1xuLy8gVXNlcyBcInRleHQtYWxpZ25cIiBmb3IgdGhlIGZhbGxiYWNrIGlubGluZS1ibG9jayBncmlkXG4vLyBcInRleHQtYWxpZ25cIiBpcyBnbG9iYWxseSBzdXBwb3J0ZWQgYW5kIHdvcmtzIG9uIGFsbCByb3dzIGV4Y2VwdCB0aGUgbGFzdFxuLy8gXCJ0ZXh0LWFsaWduLWxhc3RcIiwgd2hlcmUgc3VwcG9ydGVkLCBoYW5kbGVzIHRoZSBsYXN0IGxpbmUgKGFuZCwgaGFwcGlseSwgZ3JpZHMgd2l0aCBvbmx5IG9uZSByb3cpXG4vLyAtLS1cblxuQG1peGluIGp1c3RpZnktY29udGVudC1zdGFydCgpIHtcbiAgICAtbXMtZmxleC1wYWNrOiBzdGFydDtcbiAgICAtd2Via2l0LWp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG59XG5cbkBtaXhpbiBqdXN0aWZ5LWNvbnRlbnQtZW5kKCkge1xuICAgIC1tcy1mbGV4LXBhY2s6IGVuZDtcbiAgICAtd2Via2l0LWp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbn1cblxuQG1peGluIGp1c3RpZnktY29udGVudC1jZW50ZXIoKSB7XG4gICAgLW1zLWZsZXgtcGFjazogY2VudGVyO1xuICAgIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbkBtaXhpbiBqdXN0aWZ5LWNvbnRlbnQtc3BhY2UtYmV0d2VlbigpIHtcbiAgICAtbXMtZmxleC1wYWNrOiBqdXN0aWZ5O1xuICAgIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cblxuQG1peGluIGp1c3RpZnktY29udGVudC1zcGFjZS1hcm91bmQoKSB7XG4gICAgLW1zLWZsZXgtcGFjazogZGlzdHJpYnV0ZTtcbiAgICAtd2Via2l0LWp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUmVzcG9uc2libGUgVmlzaWJpbGl0eVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQG1peGluIHJlc3BvbnNpdmUtdmlzaWJpbGl0eS1oZWxwZXJzKCkge1xuICAgIEBpZiAkdmlzaWJpbGl0eS1oZWxwZXJzID09IHRydWUge1xuICAgICAgICAvLyBXZSBuZWVkIHRvIGhhbmRsZSB4eHMgYW5kIHhsZyBicmVha3BvaW50cyBkaWZmZXJlbnRseVxuICAgICAgICAkbWFwLXJlZmxleC1icmVha3BvaW50czogbWFwLXJlbW92ZSgkcmVmbGV4LWJyZWFrcG9pbnRzLCB4eHMsIHhsZyk7XG5cbiAgICAgICAgLiN7JHJlZmxleC1wcmVmaXh9aGlkZGVuLXh4cyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LW9ubHkoJ3h4cycpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGJwIGluIG1hcC1rZXlzKCRtYXAtcmVmbGV4LWJyZWFrcG9pbnRzKSB7XG4gICAgICAgICAgICAuI3skcmVmbGV4LXByZWZpeH1oaWRkZW4tI3skYnB9LXVwIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRicCkge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgXG5cbiAgICAgICAgICAgIC4jeyRyZWZsZXgtcHJlZml4fWhpZGRlbi0jeyRicH0tZG93biB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKCRicCkge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLiN7JHJlZmxleC1wcmVmaXh9aGlkZGVuLSN7JGJwfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1vbmx5KCRicCkge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC4jeyRyZWZsZXgtcHJlZml4fWhpZGRlbi14bGcge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1vbmx5KCd4bGcnKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gQnJlYWtwb2ludCB2aWV3cG9ydCBzaXplcyBhbmQgbWVkaWEgcXVlcmllcy5cbi8vXG4vLyBCcmVha3BvaW50cyBhcmUgZGVmaW5lZCBhcyBhIG1hcCBvZiAobmFtZTogbWluaW11bSB3aWR0aCksIG9yZGVyIGZyb20gc21hbGwgdG8gbGFyZ2U6XG4vLyAoeHM6IDU3NnB4LCBzbTogNzY4cHgsIG1kOiA5OTJweClcbi8vIFRoZSBtYXAgZGVmaW5lZCBpbiB0aGUgYCRyZWZsZXgtYnJlYWtwb2ludHNgIGdsb2JhbCB2YXJpYWJsZSBpcyB1c2VkIGFzIHRoZSBgJGJyZWFrcG9pbnRzYCBhcmd1bWVudCBieSBkZWZhdWx0LlxuLy8gTmFtZSBvZiB0aGUgbmV4dCBicmVha3BvaW50LCBvciBudWxsIGZvciB0aGUgbGFzdCBicmVha3BvaW50LlxuLy8gPj4gYnJlYWtwb2ludC1uZXh0KHNtKSAtPiBtZFxuLy8gPj4gYnJlYWtwb2ludC1uZXh0KHNtLCAkYnJlYWtwb2ludHM6ICh4czogNTc2cHgsIHNtOiA3NjhweCwgbWQ6IDk5MnB4KSkgLT4gbWRcbi8vID4+IGJyZWFrcG9pbnQtbmV4dChzbSwgJGJyZWFrcG9pbnQtbmFtZXM6ICh4cyBzbSBtZCkpIC0+IG1kXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1uZXh0KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRyZWZsZXgtYnJlYWtwb2ludHMsICRicmVha3BvaW50LW5hbWVzOiBtYXAta2V5cygkYnJlYWtwb2ludHMpKSB7XG4gICAgJG46IGluZGV4KCRicmVha3BvaW50LW5hbWVzLCAkbmFtZSk7XG4gICAgQHJldHVybiBpZigkbiA8IGxlbmd0aCgkYnJlYWtwb2ludC1uYW1lcyksIG50aCgkYnJlYWtwb2ludC1uYW1lcywgJG4gKyAxKSwgbnVsbCk7XG59XG5cbi8vIE1pbmltdW0gYnJlYWtwb2ludCB3aWR0aC4gTnVsbCBmb3IgdGhlIHNtYWxsZXN0IChmaXJzdCkgYnJlYWtwb2ludC5cbi8vID4+IGJyZWFrcG9pbnQtbWluKHNtLCAoeHM6IDU3NnB4LCBzbTogNzY4cHgsIG1kOiA5OTJweCkpIC0+IDc2OHB4XG5AZnVuY3Rpb24gYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50czogJHJlZmxleC1icmVha3BvaW50cykge1xuICAgICRtaW46IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XG4gICAgQHJldHVybiBpZigkbWluICE9MCwgJG1pbiwgbnVsbCk7XG59XG5cbi8vIE1heGltdW0gYnJlYWtwb2ludCB3aWR0aC4gTnVsbCBmb3IgdGhlIGxhcmdlc3QgKGxhc3QpIGJyZWFrcG9pbnQuXG4vLyBUaGUgbWF4aW11bSB2YWx1ZSBpcyBjYWxjdWxhdGVkIGFzIHRoZSBtaW5pbXVtIG9mIHRoZSBuZXh0IG9uZSBsZXNzIDAuMS5cbi8vID4+IGJyZWFrcG9pbnQtbWF4KHNtLCAoeHM6IDU3NnB4LCBzbTogNzY4cHgsIG1kOiA5OTJweCkpIC0+IDk5MXB4XG5AZnVuY3Rpb24gYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50czogJHJlZmxleC1icmVha3BvaW50cykge1xuICAgICRuZXh0OiBicmVha3BvaW50LW5leHQoJG5hbWUsICRicmVha3BvaW50cyk7XG4gICAgQHJldHVybiBpZigkbmV4dCwgYnJlYWtwb2ludC1taW4oJG5leHQsICRicmVha3BvaW50cykgLSAxLCBudWxsKTtcbn1cblxuLy8gTWVkaWEgb2YgYXQgbGVhc3QgdGhlIG1pbmltdW0gYnJlYWtwb2ludCB3aWR0aC4gTm8gcXVlcnkgZm9yIHRoZSBzbWFsbGVzdCBicmVha3BvaW50LlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50IGFuZCB3aWRlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LXVwKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRyZWZsZXgtYnJlYWtwb2ludHMpIHtcbiAgICAkbWluOiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKTtcblxuICAgIEBpZiAkbWluIHtcbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIHtcbiAgICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGVsc2Uge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8vIE1lZGlhIG9mIGF0IG1vc3QgdGhlIG1heGltdW0gYnJlYWtwb2ludCB3aWR0aC4gTm8gcXVlcnkgZm9yIHRoZSBsYXJnZXN0IGJyZWFrcG9pbnQuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQgYW5kIG5hcnJvd2VyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkbmFtZSwgJGJyZWFrcG9pbnRzOiAkcmVmbGV4LWJyZWFrcG9pbnRzKSB7XG4gICAgJG1heDogYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50cyk7XG5cbiAgICBAaWYgJG1heCB7XG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBlbHNlIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vLyBNZWRpYSBiZXR3ZWVuIHRoZSBicmVha3BvaW50J3MgbWluaW11bSBhbmQgbWF4aW11bSB3aWR0aHMuXG4vLyBObyBtaW5pbXVtIGZvciB0aGUgc21hbGxlc3QgYnJlYWtwb2ludCwgYW5kIG5vIG1heGltdW0gZm9yIHRoZSBsYXJnZXN0IG9uZS5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSBvbmx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50LCBub3Qgdmlld3BvcnRzIGFueSB3aWRlciBvciBuYXJyb3dlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LW9ubHkoJG5hbWUsICRicmVha3BvaW50czogJHJlZmxleC1icmVha3BvaW50cykge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJG5hbWUsICRicmVha3BvaW50cykge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oJG5hbWUsICRicmVha3BvaW50cykge1xuICAgICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBvdGhlciBtaXhpbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBtaXhpbiBib3gtc2l6aW5nKCRib3htb2RlbCkge1xuICAgIC13ZWJraXQtYm94LXNpemluZzogJGJveG1vZGVsO1xuICAgIC1tb3otYm94LXNpemluZzogJGJveG1vZGVsO1xuICAgIGJveC1zaXppbmc6ICRib3htb2RlbDtcbn1cbiIsIlxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIGdyaWQgbW9kaWZpZXJzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gZmxleC13cmFwXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4uI3skcmVmbGV4LXByZWZpeH13cmFwIHtcbiAgICBAaW5jbHVkZSBmbGV4LXdyYXAod3JhcCk7XG59XG5cbi4jeyRyZWZsZXgtcHJlZml4fW5vLXdyYXAge1xuICAgIEBpbmNsdWRlIGZsZXgtd3JhcChub3dyYXApO1xuXG4gICAgLy8gVGhpcyBpcyBtb3N0bHkgbmVlZGVkIHRvIHN0b3AgdGhlIGdyaWQgY29udGVudHMgb3ZlcmZsb3dpbmcgaW4gdGhlXG4gICAgLy8gaWUxMCBpbXBsZW1lbnRhdGlvbiBvZiBmbGV4Ym94IGJ1dCBpdCBjYW4ndCBodXJ0IGluIG90aGVyIGJyb3dzZXJzXG4gICAgLy8gYXMgaXQgaXMgdGhlIGRlc2lyZWQgYmVoYXZpb3VyIG9mIG5vbiB3cmFwcGluZyBmbGV4IGl0ZW1zXG4gICAgW2NsYXNzKj1cIiN7JHJlZmxleC1wcmVmaXh9Y29sLVwiXSB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtc2hyaW5rKDEpO1xuICAgIH1cbn1cblxuLiN7JHJlZmxleC1wcmVmaXh9d3JhcC1yZXZlcnNlIHtcbiAgICBAaW5jbHVkZSBmbGV4LXdyYXAod3JhcC1yZXZlcnNlKTtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIGZsZXgtZGlyZWN0aW9uXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4uI3skcmVmbGV4LXByZWZpeH1kaXJlY3Rpb24tcm93IHtcbiAgICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihyb3cpO1xufVxuXG4uI3skcmVmbGV4LXByZWZpeH1kaXJlY3Rpb24tcm93LXJldmVyc2Uge1xuICAgIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKHJvdy1yZXZlcnNlKTtcbn1cblxuLiN7JHJlZmxleC1wcmVmaXh9ZGlyZWN0aW9uLWNvbHVtbiB7XG4gICAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oY29sdW1uKTtcbn1cblxuLiN7JHJlZmxleC1wcmVmaXh9ZGlyZWN0aW9uLWNvbHVtbi1yZXZlcnNlIHtcbiAgICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihjb2x1bW4tcmV2ZXJzZSk7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBhbGlnbiBpdGVtcyAoY3Jvc3MgYXhpcylcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi4jeyRyZWZsZXgtcHJlZml4fWFsaWduLXN0YXJ0IHtcbiAgICBAaW5jbHVkZSBhbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuLiN7JHJlZmxleC1wcmVmaXh9YWxpZ24tZW5kIHtcbiAgICBAaW5jbHVkZSBhbGlnbi1pdGVtcyhmbGV4LWVuZCk7XG5cbiAgICBAaWYgJGxlZ2FjeS1zdXBwb3J0ID09IHRydWUge1xuICAgICAgICAvLyBmYWxsYmFjayB0byBsZWdhY3kgdmVydGljYWwtYWxpZ25cbiAgICAgICAgW2NsYXNzKj1cIiN7JHJlZmxleC1wcmVmaXh9Y29sLVwiXSB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uI3skcmVmbGV4LXByZWZpeH1hbGlnbi1jZW50ZXIge1xuICAgIEBpbmNsdWRlIGFsaWduLWl0ZW1zKGNlbnRlcik7XG5cbiAgICBAaWYgJGxlZ2FjeS1zdXBwb3J0ID09IHRydWUge1xuICAgICAgICAvLyBmYWxsYmFjayB0byBsZWdhY3kgdmVydGljYWwtYWxpZ25cbiAgICAgICAgW2NsYXNzKj1cIiN7JHJlZmxleC1wcmVmaXh9Y29sLVwiXSB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uI3skcmVmbGV4LXByZWZpeH1hbGlnbi1iYXNlbGluZSB7XG4gICAgQGluY2x1ZGUgYWxpZ24taXRlbXMoYmFzZWxpbmUpO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gYWxpZ24gY29udGVudCAoY3Jvc3MgYXhpcylcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi4jeyRyZWZsZXgtcHJlZml4fWFsaWduLWNvbnRlbnQtc3RhcnQge1xuICAgIEBpbmNsdWRlIGFsaWduLWNvbnRlbnQoZmxleC1zdGFydCk7XG59XG5cbi4jeyRyZWZsZXgtcHJlZml4fWFsaWduLWNvbnRlbnQtZW5kIHtcbiAgICBAaW5jbHVkZSBhbGlnbi1jb250ZW50KGZsZXgtZW5kKTtcblxuICAgIC8vIGZhbGxiYWNrIHRvIGxlZ2FjeSB2ZXJ0aWNhbC1hbGlnblxuICAgIFtjbGFzcyo9XCIjeyRyZWZsZXgtcHJlZml4fWNvbC1cIl0ge1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICAgIH1cbn1cblxuLiN7JHJlZmxleC1wcmVmaXh9YWxpZ24tY29udGVudC1jZW50ZXIge1xuICAgIEBpbmNsdWRlIGFsaWduLWNvbnRlbnQoY2VudGVyKTtcbn1cblxuLiN7JHJlZmxleC1wcmVmaXh9YWxpZ24tY29udGVudC1zcGFjZS1iZXR3ZWVuIHtcbiAgICBAaW5jbHVkZSBhbGlnbi1jb250ZW50KHNwYWNlLWJldHdlZW4pO1xufVxuXG4uI3skcmVmbGV4LXByZWZpeH1hbGlnbi1jb250ZW50LXNwYWNlLWFyb3VuZCB7XG4gICAgQGluY2x1ZGUgYWxpZ24tY29udGVudChzcGFjZS1hcm91bmQpO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gYWxpZ24tc2VsZlxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLiN7JHJlZmxleC1wcmVmaXh9YWxpZ24tc2VsZi1zdHJldGNoIHtcbiAgICBAaW5jbHVkZSBhbGlnbi1zZWxmKHN0cmV0Y2gpO1xufVxuXG4uI3skcmVmbGV4LXByZWZpeH1hbGlnbi1zZWxmLXN0YXJ0IHtcbiAgICBAaW5jbHVkZSBhbGlnbi1zZWxmKGZsZXgtc3RhcnQpO1xufVxuXG4uI3skcmVmbGV4LXByZWZpeH1hbGlnbi1zZWxmLWVuZCB7XG4gICAgQGluY2x1ZGUgYWxpZ24tc2VsZihmbGV4LWVuZCk7XG4gICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbn1cblxuLiN7JHJlZmxleC1wcmVmaXh9YWxpZ24tc2VsZi1jZW50ZXIge1xuICAgIEBpbmNsdWRlIGFsaWduLXNlbGYoY2VudGVyKTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4uI3skcmVmbGV4LXByZWZpeH1hbGlnbi1zZWxmLWJhc2VsaW5lIHtcbiAgICBAaW5jbHVkZSBhbGlnbi1zZWxmKGJhc2VsaW5lKTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBqdXN0aWZ5LWNvbnRlbnQgKG1haW4gYXhpcylcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi4jeyRyZWZsZXgtcHJlZml4fWp1c3RpZnktc3RhcnQge1xuICAgIEBpbmNsdWRlIGp1c3RpZnktY29udGVudC1zdGFydCgpO1xuXG4gICAgQGlmICRsZWdhY3ktc3VwcG9ydCA9PSB0cnVlIHtcbiAgICAgICAgJi5ncmlkIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi4jeyRyZWZsZXgtcHJlZml4fWp1c3RpZnktZW5kIHtcbiAgICBAaW5jbHVkZSBqdXN0aWZ5LWNvbnRlbnQtZW5kKCk7XG5cbiAgICBAaWYgJGxlZ2FjeS1zdXBwb3J0ID09IHRydWUge1xuICAgICAgICAmLmdyaWQge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICAtbW96LXRleHQtYWxpZ24tbGFzdDogcmlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduLWxhc3Q6IHJpZ2h0O1xuXG4gICAgICAgICAgICBbY2xhc3MqPVwiI3skcmVmbGV4LXByZWZpeH1jb2wtXCJdIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSByZXNldC10ZXh0LWFsaWduKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi4jeyRyZWZsZXgtcHJlZml4fWp1c3RpZnktY2VudGVyIHtcbiAgICBAaW5jbHVkZSBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyKCk7XG5cbiAgICBAaWYgJGxlZ2FjeS1zdXBwb3J0ID09IHRydWUge1xuICAgICAgICAmLmdyaWQge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgLW1vei10ZXh0LWFsaWduLWxhc3Q6IGNlbnRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ24tbGFzdDogY2VudGVyO1xuXG4gICAgICAgICAgICBbY2xhc3MqPVwiI3skcmVmbGV4LXByZWZpeH1jb2wtXCJdIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSByZXNldC10ZXh0LWFsaWduKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi4jeyRyZWZsZXgtcHJlZml4fWp1c3RpZnktc3BhY2UtYmV0d2VlbiB7XG4gICAgQGluY2x1ZGUganVzdGlmeS1jb250ZW50LXNwYWNlLWJldHdlZW4oKTtcblxuICAgIEBpZiAkbGVnYWN5LXN1cHBvcnQgPT0gdHJ1ZSB7XG4gICAgICAgICYuZ3JpZCB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xuICAgICAgICAgICAgLW1vei10ZXh0LWFsaWduLWxhc3Q6IGp1c3RpZnk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduLWxhc3Q6IGp1c3RpZnk7XG5cbiAgICAgICAgICAgIFtjbGFzcyo9XCIjeyRyZWZsZXgtcHJlZml4fWNvbC1cIl0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHJlc2V0LXRleHQtYWxpZ24oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLiN7JHJlZmxleC1wcmVmaXh9anVzdGlmeS1zcGFjZS1hcm91bmQge1xuICAgIEBpbmNsdWRlIGp1c3RpZnktY29udGVudC1zcGFjZS1hcm91bmQoKTtcblxuICAgIEBpZiAkbGVnYWN5LXN1cHBvcnQgPT0gdHJ1ZSB7XG4gICAgICAgICYuZ3JpZCB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xuICAgICAgICAgICAgLW1vei10ZXh0LWFsaWduLWxhc3Q6IGp1c3RpZnk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduLWxhc3Q6IGp1c3RpZnk7XG5cbiAgICAgICAgICAgIFtjbGFzcyo9XCIjeyRyZWZsZXgtcHJlZml4fWNvbC1cIl0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHJlc2V0LXRleHQtYWxpZ24oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIGNvc21ldGljIGdyaWQgbW9kaWZpZXJzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBSZW1vdmVzIGludGVybmFsIHBhZGRpbmcgZnJvbSBhbGwgY29sdW1ucyBpbiBhIGdyaWRcbi4jeyRyZWZsZXgtcHJlZml4fWdyaWQtYmxlZWQge1xuICAgIFtjbGFzcyo9XCIjeyRyZWZsZXgtcHJlZml4fWNvbC1cIl0ge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIGNvbCBtb2RpZmllcnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIE1ha2VzIGEgY29sdW1uIGVsZW1lbnQgaW50byBhIGZsZXhib3ggY29sdW1uXG4uI3skcmVmbGV4LXByZWZpeH1jb2wtZ3JpZCB7XG4gICAgQGluY2x1ZGUgZGlzcGxheS1mbGV4KCk7XG4gICAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oY29sdW1uKTtcblxuICAgICYuI3skcmVmbGV4LXByZWZpeH1kaXJlY3Rpb24tcm93IHtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24ocm93KTtcbiAgICB9XG59XG5cbi8vIFJlbW92ZXMgaW50ZXJuYWwgcGFkZGluZyBmcm9tIGFsbCBjb2x1bW5zIGluIGEgZ3JpZFxuLiN7JHJlZmxleC1wcmVmaXh9Y29sLWJsZWVkIHtcbiAgICBwYWRkaW5nOiAwO1xufVxuXG4vLyBSZW1vdmVzIGhvcml6b250YWwgcGFkZGluZyBmcm9tIGFsbCBjb2x1bW5zIGluIGEgZ3JpZFxuLiN7JHJlZmxleC1wcmVmaXh9Y29sLWJsZWVkLXgge1xuICAgIHBhZGRpbmc6ICRyZWZsZXgtZ3JpZC1zcGFjaW5nIDA7XG59XG5cbi8vIFJlbW92ZXMgdmVydGljYWwgcGFkZGluZyBmcm9tIGFsbCBjb2x1bW5zIGluIGEgZ3JpZFxuLiN7JHJlZmxleC1wcmVmaXh9Y29sLWJsZWVkLXkge1xuICAgIHBhZGRpbmc6IDAgJHJlZmxleC1ncmlkLXNwYWNpbmc7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBjb2wtZ3JpZCBjb250ZW50c1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLiN7JHJlZmxleC1wcmVmaXh9ZmxleC1pbWcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIEBpbmNsdWRlIGZsZXgoMCwgMCwgYXV0byk7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBAaWYgJGxlZ2FjeS1zdXBwb3J0ID09IHRydWUge1xuICAgICAgICAqd2lkdGg6IGF1dG87XG4gICAgfVxufVxuXG4uI3skcmVmbGV4LXByZWZpeH1mbGV4LWZvb3RlciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLXRvcDogYXV0bztcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgPiA6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUmVzcG9uc2l2ZSB2aXNpYmlsaXR5IG1vZGlmaWVyc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQGluY2x1ZGUgcmVzcG9uc2l2ZS12aXNpYmlsaXR5LWhlbHBlcnMoKTtcbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBIZWxwZXJzIC0gRm9jdXMgVmlzaWJsZVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbi8qKlxuICogRm9jdXMgVmlzaWJsZVxuICogaHR0cHM6Ly9naXRodWIuY29tL1dJQ0cvZm9jdXMtdmlzaWJsZVxuICogT3ZlcnJpZGUgYmFzZSBmb2N1cyBzdHlsZXMgZm9yIG1vdXNlIGFuZCB0b3VjaCBpbnRlcmFjdGlvbnNcbiAqL1xuQG1peGluIGZvY3VzLXZpc2libGUoKSB7XG4gIC5qcy1mb2N1cy12aXNpYmxlICYge1xuICAgICY6bm90KC5mb2N1cy12aXNpYmxlKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBIZWxwZXJzIC0gRm9udCBTbW9vdGhpbmdcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4vKiogXG4gKiBGb250IFNtb290aGluZ1xuICogRW5hYmxlcyBmb250IHNtb290aGluZyBmb3IgY2FwYWJsZSBicm93c2Vycy5cbiAqIE9wdGlvbmFsbHkgZm9yY2UgZm9udC1zbW9vdGhpbmcgb24gbm9uLXJldGluYSBkZXZpY2VzLlxuICogQHBhcmFtIHtib29sZWFufSAkZm9yY2UgW2ZhbHNlXVxuICogQHJldHVybiB7c3RyaW5nfVxuICovXG5AbWl4aW4gZm9udC1zbW9vdGhpbmcoJGZvcmNlOiBmYWxzZSkge1xuICBAaWYgJGZvcmNlID09IHRydWUge1xuICAgIC1tb3otZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICB9IEBlbHNlIHtcbiAgICBAbWVkaWEgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSB7XG4gICAgICAtbW96LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gICAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogSGVscGVycyAtIEdsb2JhbCBtaXhpbnNcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4vLyBSZXNldCA8bGk+IGVsZW1lbnRzXG5AbWl4aW4gbGktcmVzZXQge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG5cbiAgbGkge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cbn1cblxuLy8gUmVtb3ZlIHRleHQgZnJvbSBlbGVtZW50c1xuQG1peGluIHJtLXRleHQge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB0ZXh0LWluZGVudDogLTk5OTlweDtcbn1cblxuLy8gQmFja2dyb3VuZCBpbWFnZXNcbkBtaXhpbiBiZy1pbWcoJHNpemUpIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiAkc2l6ZTtcbn1cblxuLy8gSUUgOSsgb25seVxuQG1peGluIGllKCRwcm9wZXJ0eSwgJHZhbHVlKSB7XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDBcXDApIGFuZCAobWluLXJlc29sdXRpb246ICs3MmRwaSkge1xuICAgICN7JHByb3BlcnR5fTogI3skdmFsdWV9O1xuICB9XG59XG5cbkBtaXhpbiBidG5SZXNldCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDA7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG59XG5cbkBtaXhpbiBsaW5rUmVzZXQge1xuICBib3JkZXItYm90dG9tOiBub25lO1xuXG4gICY6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIEhlbHBlcnMgLSBUYWJsZVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbi8qKlxuICogUmVzcG9uc2l2ZSBUYWJsZVxuICogQ3JlYXRlcyBhIHJlc3BvbnNpdmUgdGFibGVcbiAqIEFjY2VwdHMgYSBsaXN0IG9mIGhlYWRlcnMgdG8gcmVwbGFjZSBtYWluIFxuICogdGFibGUgaGVhZGVycyBvbiBtb2JpbGUuXG4gKiBAcGFyYW0ge21hcH0gJGhlYWRlcnNcbiAqIEByZXR1cm4ge3N0cmluZ31cbiAqL1xuQG1peGluIHJlc3BvbnNpdmUtdGFibGUoJGhlYWRlcnM6ICgpKSB7XG4gIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgdGFibGUsXG4gIHRoZWFkLFxuICB0Ym9keSxcbiAgdGgsXG4gIHRkLFxuICB0ciB7XG4gICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cblxuICB0aGVhZCB7XG4gICAgdHIge1xuICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAtOTk5OXB4O1xuICAgICAgICBsZWZ0OiAtOTk5OXB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHRyIHtcbiAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgIG1hcmdpbi10b3A6IC0xcHg7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItYmxhY2s7XG4gICAgICBib3JkZXItd2lkdGg6IDFweCAwO1xuICAgICAgcGFkZGluZzogc2l6ZSgzMHB4KSAwO1xuICAgIH1cblxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdGQge1xuICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgbWFyZ2luLXRvcDogc2l6ZSgxNnB4KTtcbiAgICB9XG5cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBIZWFkZXJzXG4gICAqL1xuICBAZWFjaCAkaGVhZGVyIGluICRoZWFkZXJzIHtcbiAgICAkaTogaW5kZXgoJGhlYWRlcnMsICRoZWFkZXIpO1xuXG4gICAgdGQ6bnRoLW9mLXR5cGUoI3skaX0pOjpiZWZvcmUge1xuICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgIGNvbnRlbnQ6ICRoZWFkZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogQ29uZmlnIC0gRm9udHNcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4vLyBAaW1wb3J0IHVybCgnaHR0cHM6Ly9mYXN0LmZvbnRzLm5ldC9sdC8xLmNzcz9hcGlUeXBlPWNzcyZjPTAzYWRiMzVkLTFiYTMtNGIwZS04YTE5LTZmMWY3NGM2ZTk4YyZmb250aWRzPTcyMTI4MSw3MjEyNjYsNzIxMjYzJyk7XG4vLyBAaW1wb3J0IHVybChcImh0dHBzOi8vZmFzdC5mb250cy5uZXQvbHQvMS5jc3M/YXBpVHlwZT1jc3MmYz04ZTgzY2IxMS04ODFiLTQ4NTEtYmZhNi02MzUzNzlmMWFmYmImZm9udGlkcz02MDgwODM2LDYwODA4NTIsNjA4MDg3MFwiKTtcblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnQXZlbmlyIE5leHQgV29ybGQgVzA1IFJlZ3VsYXInO1xuICBzcmM6dXJsKFwiLi4vZm9udC82MDgwODM2LzA5YWIwNjI2LWJiNDUtNDY1MC1hY2M4LTAxODJkNjkzZGYwMi53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSxcbiAgdXJsKFwiLi4vZm9udC82MDgwODM2LzEzOTdlODEyLTkzMDctNDI2Ny04YTk5LThhMjJlYTdjNjljNy53b2ZmXCIpIGZvcm1hdChcIndvZmZcIik7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnQXZlbmlyIE5leHQgV29ybGQgVzA1IEl0YWxpYyc7XG4gIHNyYzp1cmwoXCIuLi9mb250LzYwODA5OTQvYjljNWI4MzktZGI1Ni00NDE5LThmY2ItNmFiNjYxYmFiYjFkLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLFxuICB1cmwoXCIuLi9mb250LzYwODA5OTQvOTUwYjU3ODgtY2ZkZC00OGQ5LTlkOGEtNTIzNTYwMDQyYzViLndvZmZcIikgZm9ybWF0KFwid29mZlwiKTtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdBdmVuaXIgTmV4dCBXb3JsZCBXMDUgQm9sZCc7XG4gIHNyYzp1cmwoXCIuLi9mb250LzYwODA4NzAvMDc0ZGZjNzAtNjQzNi00ZjRiLTkzMTQtZDFlNjkyODdhZWExLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLFxuICB1cmwoXCIuLi9mb250LzYwODA4NzAvMGM0Y2VmY2EtM2I3OC00NGI5LThiMmItNjY3YmJhYmZmZTM4LndvZmZcIikgZm9ybWF0KFwid29mZlwiKTtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdBdmVuaXJOZXh0TFRXMDEtUmVndWxhcic7XG4gIHNyYzogdXJsKCcuLi9mb250LzJjZDU1NTQ2LWVjMDAtNGFmOS1hZWNhLTRhM2NkMTg2ZGE1My53b2ZmMicpIGZvcm1hdCgnd29mZjInKSxcbiAgICB1cmwoJy4uL2ZvbnQvMWU5ODkyYzAtNjkyNy00NDEyLTk4NzQtMWI4MjgwMWJhNDdhLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xufVxuXG4vLyA3MjEyNjZcbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0F2ZW5pck5leHRMVFcwMS1JdGFsaWMnO1xuICBzcmM6IHVybCgnLi4vZm9udC83Mzc3ZGJlNi1mMTFhLTRhMDUtYjMzYy1iYzhjZTFmNjBmODQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksXG4gICAgdXJsKCcuLi9mb250LzkyYjY2ZGJkLTQyMDEtNGFjMi1hNjA1LTRkNGZmYzg3MDVjYy53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbn1cblxuLy8gNzIxMjgxXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdBdmVuaXIgTmV4dCBMVCBXMDEgQm9sZCc7XG4gIHNyYzogdXJsKCcuLi9mb250LzE0YzczNzEzLWU0ZGYtNGRiYS05MzNiLTA1N2ZlZWFjOGRkMS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSxcbiAgICB1cmwoJy4uL2ZvbnQvYjhlOTA2YTEtZjVlOC00YmYxLThlODAtODJjNjQ2Y2E0ZDVmLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdHVCBBbWVyaWNhJztcbiAgc3JjOiB1cmwoJy4uL2ZvbnQvR1QtQW1lcmljYS1Db21wcmVzc2VkLUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksXG4gICAgdXJsKCcuLi9mb250L0dULUFtZXJpY2EtQ29tcHJlc3NlZC1Cb2xkLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIENvbmZpZyAtIFZhcnNcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG46cm9vdCB7XG4gIC8vIENvbG91cnNcbiAgLS1jLXByaW1hcnk6ICMwZTMwMzQ7XG4gIC0tYy1zZWNvbmRhcnk6IHZhcigtLWMtcGluayk7XG4gIC0tYy13aGl0ZTogI2ZmZmZmZjtcbiAgLS1jLWdyZXlMaWdodDogI2YzZjJmMTtcbiAgLS1jLWdyZXk6ICNkMGNjYzc7XG4gIC0tYy10ZWFsOiAjMDBjN2IxO1xuICAtLWMteWVsbG93OiAjZmZiODFjO1xuICAtLWMtcHVycGxlOiAjYWY4ZWUwO1xuICAtLWMtcGluazogI2ZmYWJiYTtcbiAgLS1jLW1hZ2VudGE6ICNlYjQyNjQ7XG4gIC0tYy1yZWQ6ICNENTIzNEE7XG4gIC0tYy1ibHVlOiAjYjRlNGY1O1xuICAtLWMtbWFyb29uOiAjNjQwYTMyO1xuICAtLWMtYmxhY2s6ICMwMDA7XG5cbiAgLy8gVHlwb2dyYXBoeVxuICAtLWZvbnRCb2R5OiAnQXZlbmlyTmV4dExUVzAxLVJlZ3VsYXInLCAnQXZlbmlyIE5leHQgV29ybGQgVzA1IFJlZ3VsYXInLFxuICAgIC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgUm9ib3RvLCBPeHlnZW4sIFVidW50dSxcbiAgICBDYW50YXJlbGwsICdPcGVuIFNhbnMnLCAnSGVsdmV0aWNhIE5ldWUnLCBzYW5zLXNlcmlmO1xuICAtLWZvbnRCb2xkOiAnQXZlbmlyIE5leHQgTFQgVzAxIEJvbGQnLCAnQXZlbmlyIE5leHQgV29ybGQgVzA1IEJvbGQnLFxuICAgIC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgUm9ib3RvLCBPeHlnZW4sIFVidW50dSxcbiAgICBDYW50YXJlbGwsICdPcGVuIFNhbnMnLCAnSGVsdmV0aWNhIE5ldWUnLCBzYW5zLXNlcmlmO1xuICAtLWZvbnRJdGFsaWM6ICdBdmVuaXJOZXh0TFRXMDEtSXRhbGljJywgJ0F2ZW5pciBOZXh0IFdvcmxkIFcwNSBJdGFsaWMnLFxuICAgIC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgUm9ib3RvLCBPeHlnZW4sIFVidW50dSxcbiAgICBDYW50YXJlbGwsICdPcGVuIFNhbnMnLCAnSGVsdmV0aWNhIE5ldWUnLCBzYW5zLXNlcmlmO1xuICAtLWZvbnRUaXRsZTogJ0dUIEFtZXJpY2EnLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsXG4gICAgUm9ib3RvLCBPeHlnZW4sIFVidW50dSwgQ2FudGFyZWxsLCAnT3BlbiBTYW5zJywgJ0hlbHZldGljYSBOZXVlJywgc2Fucy1zZXJpZjtcbiAgLS1mb250U2l6ZTogMTEyLjUlO1xuICAtLWZvbnRTbWFsbDogNzAlO1xuICAtLWxpbmVIZWlnaHQ6IDEuNTtcblxuICAvLyBMYXlvdXRcbiAgLS1jb250YWluZXJXaWR0aDogMTgwMnB4O1xuICAtLWNvbHMtMzogY2FsYyh2YXIoLS1jb250YWluZXJXaWR0aCkgKiAwLjI1KTtcbiAgLS1jb2xzLTY6IGNhbGModmFyKC0tY29udGFpbmVyV2lkdGgpICogMC41KTtcbiAgLS1jb2xzLTg6IGNhbGModmFyKC0tY29udGFpbmVyV2lkdGgpICogMC42NjY2NjY2NjY3KTtcbiAgLS1jb2xzLTEwOiBjYWxjKHZhcigtLWNvbnRhaW5lcldpZHRoKSAqIDAuODMzMzMzMzMzMzMzKTtcbiAgLS12YXJpYWJsZUhlaWdodExpbWl0OiBjbGFtcCgyMHZoLCA2MHZ3LCA2MHZoKTtcbiAgLS1oZWlnaHRMaW1pdDogNzAwcHg7XG4gIC0tZ3V0dGVyOiAxNXB4O1xuXG4gIC8vIEFuaW1hdGlvbnNcbiAgLS1lYXNpbmc6IGN1YmljLWJlemllcigwLjgzLCAwLCAwLjE3LCAxKTtcbiAgLS10cmFuc2l0aW9uOiAwLjNzIHZhcigtLWVhc2luZyk7XG5cbiAgLS1saW5lTGVuZ3RoOiA2MDBweDtcbn1cblxuLyoqXG4qIEJyZWFrcG9pbnRzIGZvciBAaW5jbHVkZS1tZWRpYVxuKi9cbiRicmVha3BvaW50czogKFxuICB4eHM6IDM2MHB4LFxuICB4czogNTc2cHgsXG4gIHNtOiA3NjhweCxcbiAgbWQ6IDk5MnB4LFxuICBsZzogMTIwMHB4LFxuICB4bGc6IDE2MDBweCxcbik7XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogQmFzZSAtIERlZmF1bHRzXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuLmdyaWQge1xuICBtYXgtd2lkdGg6IHZhcigtLWNvbnRhaW5lcldpZHRoKTtcbn1cblxuLmNvbnRhaW5lci1mdWxsID4gLmdyaWQge1xuICBtYXgtd2lkdGg6IG5vbmU7XG59XG5cbnVsLm1lbnUsXG51bC5wbGFpbiB7XG4gIEBpbmNsdWRlIGxpLXJlc2V0O1xufVxuXG5pbWcge1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IHZhcigtLXRyYW5zaXRpb24pO1xuXG4gICYubGF6eSB7XG4gICAgb3BhY2l0eTogMDtcblxuICAgIEBtZWRpYSBub3QgYWxsIGFuZCAobWluLXJlc29sdXRpb246IDAuMDAxZHBjbSkge1xuICAgICAgQHN1cHBvcnRzICgtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmUpIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLmxvYWRlZCB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG4ucmVzdHJpY3RlZC1oZWlnaHQge1xuICBtYXgtaGVpZ2h0OiB2YXIoLS1oZWlnaHRMaW1pdCk7XG4gIHdpZHRoOiBhdXRvO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDAgYXV0bztcbn1cblxuYVtkYXRhLWdhbGxlcnldIHtcbiAgY3Vyc29yOiB6b29tLWluO1xuXG4gICY6aG92ZXIge1xuICAgIG9wYWNpdHk6IDAuODU7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG59XG5cbi5oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIHZpc2liaWxpdHk6IGhpZGRlbiAhaW1wb3J0YW50O1xufVxuXG4vLyBLZWVwIHZpZGVvIHJhdGlvIGZvciBmbHVpZCB3aWR0aHNcbi52aWRlby1jb250YWluZXIsXG4ubWVkaWEtdmltZW8tdmlkZW8ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctYm90dG9tOiA1Ni4yNSU7XG4gIHBhZGRpbmctdG9wOiAyNXB4O1xuICBoZWlnaHQ6IDA7XG5cbiAgaWZyYW1lIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG59XG5cbi8vIFZpZGVvIENhcHRpb25zXG4udmlkZW8td3JhcHBlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLnZpZGVvLWNhcHRpb24ge1xuICBtYXJnaW4tdG9wOiAuNXJlbTtcbiAgZm9udC1zaXplOiB2YXIoLS1mb250U21hbGwpO1xufVxuXG4vLyBTb3VuY2xvdWRcbi5tZWRpYS1zb3VuZGNsb3VkLWF1ZGlvIGlmcmFtZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtaGVpZ2h0OiAxNTBweDtcbn1cblxuZmlnY2FwdGlvbiB7XG4gIG1hcmdpbi10b3A6IDAuNXJlbTtcbiAgZm9udC1zaXplOiA5MCU7XG4gIC8vIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250SXRhbGljKTtcbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBCYXNlIC0gVHlwb2dyYXBoeVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbi8qKlxuICogQ29uZmlnXG4gKi9cblxuLyoqXG4gKiBIZWFkaW5nXG4gKi9cbmgxLFxuLmgxLFxuaDIsXG4uaDIsXG5oMyxcbi5oMyxcbmg0LFxuLmg0LFxuaDUsXG4uaDUsXG5oNixcbi5oNiB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250VGl0bGUpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xufVxuXG5oMSxcbi5oMSB7XG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICBmb250LXNpemU6IGNsYW1wKDIuNXJlbSwgNXZ3LCA1cmVtKTtcbn1cblxuaDIsXG4uaDIge1xuICBsaW5lLWhlaWdodDogMS4xNTtcbiAgZm9udC1zaXplOiBjbGFtcCgxLjhyZW0sIDIuNXZ3LCAzcmVtKTtcbn1cblxuaDMsXG4uaDMge1xuICBsaW5lLWhlaWdodDogMS4zO1xuICBmb250LXNpemU6IGNsYW1wKDEuMjVyZW0sIDIuNXZ3LCAxLjVyZW0pO1xufVxuXG5oNCxcbi5oNCxcbmg1LFxuLmg1LFxuaDYsXG4uaDYge1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udEJvbGQpO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBmb250LXNpemU6IDFyZW07XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gIH1cbn1cblxuLmNlbnRlcmVkIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LWFsaWduLWxhc3Q6IGNlbnRlcjtcbiAgJi1wYWRkaW5nLWJvdHRvbSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHRleHQtYWxpZ24tbGFzdDogY2VudGVyO1xuICAgIHBhZGRpbmctYm90dG9tOiAxcmVtO1xuICB9XG59XG5cbi5ib3JkZXIge1xuICAmLWJvdHRvbSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWMtcHJpbWFyeSk7XG4gICAgcGFkZGluZy1ib3R0b206IDFyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgIH1cbiAgfVxuICAmLXRvcCB7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWMtcHJpbWFyeSk7XG4gICAgcGFkZGluZy10b3A6IDFyZW07XG4gICAgbWFyZ2luLXRvcDogMnJlbTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFBhcmFncmFwaHNcbiAqL1xucCB7XG4gIG1hcmdpbjogMCAwIDEuNXJlbTtcblxuICAmOmZpcnN0LW9mLXR5cGUge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cblxuICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4vKipcbiAqIExpc3RzXG4gKi9cbnVsLFxub2wge1xuICBtYXJnaW46IDEuNXJlbSAwO1xuICBsaXN0LXN0eWxlLXBvc2l0aW9uOiBpbnNpZGU7XG4gIHBhZGRpbmctbGVmdDogMDtcbn1cblxuLyoqXG4gKiBMaW5rc1xuICovXG5hLFxuLmxpbmsge1xuICBjb2xvcjogaW5oZXJpdDtcbiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB0cmFuc2l0aW9uOiBhbGwgdmFyKC0tdHJhbnNpdGlvbik7XG4gIC8vIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBjdXJyZW50Q29sb3I7XG4gIC8vIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAvLyAmOjphZnRlciB7XG4gIC8vICAgY29udGVudDogJyc7XG4gIC8vICAgcG9zaXRpb246IGFic29sdXRlO1xuICAvLyAgIGJvdHRvbTogMDtcbiAgLy8gICBsZWZ0OiAwO1xuICAvLyAgIGRpc3BsYXk6IGJsb2NrO1xuICAvLyAgIGhlaWdodDogMnB4O1xuICAvLyAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAvLyAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgdmFyKC0tdHJhbnNpdGlvbik7XG4gIC8vICAgd2lkdGg6IDEwMCU7XG4gIC8vIH1cblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGNvbG9yOiBjdXJyZW50Q29sb3I7XG5cbiAgICAvLyAmOjphZnRlciB7XG4gICAgLy8gICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7XG4gICAgLy8gfVxuICB9XG5cbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogM3B4IGRhc2hlZCBjdXJyZW50Q29sb3I7XG5cbiAgICBAaW5jbHVkZSBmb2N1cy12aXNpYmxlKCkge1xuICAgICAgb3V0bGluZTogMDtcbiAgICB9XG4gIH1cblxuICAmLm5vLWxpbmsge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB9XG59XG5cbi5uby1jbGljayB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbjo6c2VsZWN0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1zZWNvbmRhcnkpO1xuICBjb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcbn1cblxuLyoqXG4gKiBCdXR0b25zXG4gKi9cbmJ1dHRvbiB7XG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IDNweCBkYXNoZWQgY3VycmVudENvbG9yO1xuXG4gICAgQGluY2x1ZGUgZm9jdXMtdmlzaWJsZSgpIHtcbiAgICAgIG91dGxpbmU6IDA7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogSW5saW5lXG4gKi9cbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250Qm9sZCk7XG59XG5cbmVtIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnRJdGFsaWMpO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbnNwYW4ge1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICBsZXR0ZXItc3BhY2luZzogaW5oZXJpdDtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xufVxuXG5hZGRyZXNzIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgbGV0dGVyLXNwYWNpbmc6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogOTAlO1xufVxuXG5ociB7XG4gIGJvcmRlcjogc29saWQgdmFyKC0tYy1wcmltYXJ5KTtcbiAgYm9yZGVyLXdpZHRoOiAwIDAgMXB4IDA7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG5maWd1cmUge1xuICBtYXJnaW46IDA7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vICAgICBfICAgICAgICAgICAgXyAgICAgICAgICAgXyAgICAgICAgICAgICAgICAgICAgICAgICAgIF8gX1xuLy8gICAgKF8pICAgICAgICAgIHwgfCAgICAgICAgIHwgfCAgICAgICAgICAgICAgICAgICAgICAgICB8IChfKVxuLy8gICAgIF8gXyBfXyAgIF9fX3wgfF8gICBfICBfX3wgfCBfX18gICBfIF9fIF9fXyAgIF9fXyAgX198IHxfICBfXyBfXG4vLyAgICB8IHwgJ18gXFwgLyBfX3wgfCB8IHwgfC8gX2AgfC8gXyBcXCB8ICdfIGAgXyBcXCAvIF8gXFwvIF9gIHwgfC8gX2AgfFxuLy8gICAgfCB8IHwgfCB8IChfX3wgfCB8X3wgfCAoX3wgfCAgX18vIHwgfCB8IHwgfCB8ICBfXy8gKF98IHwgfCAoX3wgfFxuLy8gICAgfF98X3wgfF98XFxfX198X3xcXF9fLF98XFxfXyxffFxcX19ffCB8X3wgfF98IHxffFxcX19ffFxcX18sX3xffFxcX18sX3xcbi8vXG4vLyAgICAgIFNpbXBsZSwgZWxlZ2FudCBhbmQgbWFpbnRhaW5hYmxlIG1lZGlhIHF1ZXJpZXMgaW4gU2Fzc1xuLy8gICAgICAgICAgICAgICAgICAgICAgICB2MS40Ljlcbi8vXG4vLyAgICAgICAgICAgICAgICBodHRwOi8vaW5jbHVkZS1tZWRpYS5jb21cbi8vXG4vLyAgICAgICAgIEF1dGhvcnM6IEVkdWFyZG8gQm91Y2FzIChAZWR1YXJkb2JvdWNhcylcbi8vICAgICAgICAgICAgICAgICAgSHVnbyBHaXJhdWRlbCAoQGh1Z29naXJhdWRlbClcbi8vXG4vLyAgICAgIFRoaXMgcHJvamVjdCBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBsaWNlbnNlXG5cblxuLy8vL1xuLy8vIGluY2x1ZGUtbWVkaWEgbGlicmFyeSBwdWJsaWMgY29uZmlndXJhdGlvblxuLy8vIEBhdXRob3IgRWR1YXJkbyBCb3VjYXNcbi8vLyBAYWNjZXNzIHB1YmxpY1xuLy8vL1xuXG5cbi8vL1xuLy8vIENyZWF0ZXMgYSBsaXN0IG9mIGdsb2JhbCBicmVha3BvaW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzaW5nbGUgYnJlYWtwb2ludCB3aXRoIHRoZSBsYWJlbCBgcGhvbmVgXG4vLy8gICRicmVha3BvaW50czogKCdwaG9uZSc6IDMyMHB4KTtcbi8vL1xuJGJyZWFrcG9pbnRzOiAoXG4gICdwaG9uZSc6IDMyMHB4LFxuICAndGFibGV0JzogNzY4cHgsXG4gICdkZXNrdG9wJzogMTAyNHB4XG4pICFkZWZhdWx0O1xuXG5cbi8vL1xuLy8vIENyZWF0ZXMgYSBsaXN0IG9mIHN0YXRpYyBleHByZXNzaW9ucyBvciBtZWRpYSB0eXBlc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzaW5nbGUgbWVkaWEgdHlwZSAoc2NyZWVuKVxuLy8vICAkbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJzogJ3NjcmVlbicpO1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzdGF0aWMgZXhwcmVzc2lvbiB3aXRoIGxvZ2ljYWwgZGlzanVuY3Rpb24gKE9SIG9wZXJhdG9yKVxuLy8vICAkbWVkaWEtZXhwcmVzc2lvbnM6IChcbi8vLyAgICAncmV0aW5hMngnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSdcbi8vLyAgKTtcbi8vL1xuJG1lZGlhLWV4cHJlc3Npb25zOiAoXG4gICdzY3JlZW4nOiAnc2NyZWVuJyxcbiAgJ3ByaW50JzogJ3ByaW50JyxcbiAgJ2hhbmRoZWxkJzogJ2hhbmRoZWxkJyxcbiAgJ2xhbmRzY2FwZSc6ICcob3JpZW50YXRpb246IGxhbmRzY2FwZSknLFxuICAncG9ydHJhaXQnOiAnKG9yaWVudGF0aW9uOiBwb3J0cmFpdCknLFxuICAncmV0aW5hMngnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSwgKG1pbi1yZXNvbHV0aW9uOiAyZHBweCknLFxuICAncmV0aW5hM3gnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMyksIChtaW4tcmVzb2x1dGlvbjogMzUwZHBpKSwgKG1pbi1yZXNvbHV0aW9uOiAzZHBweCknXG4pICFkZWZhdWx0O1xuXG5cbi8vL1xuLy8vIERlZmluZXMgYSBudW1iZXIgdG8gYmUgYWRkZWQgb3Igc3VidHJhY3RlZCBmcm9tIGVhY2ggdW5pdCB3aGVuIGRlY2xhcmluZyBicmVha3BvaW50cyB3aXRoIGV4Y2x1c2l2ZSBpbnRlcnZhbHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgcGl4ZWxzIGlzIGRlZmluZWQgYXMgYDFgIGJ5IGRlZmF1bHRcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4xMjhweCcpIHt9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMTI5cHgpIHt9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIGVtcyBpcyBkZWZpbmVkIGFzIGAwLjAxYCBieSBkZWZhdWx0XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+MjBlbScpIHt9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMjAuMDFlbSkge31cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgcmVtcyBpcyBkZWZpbmVkIGFzIGAwLjFgIGJ5IGRlZmF1bHQsIHRvIGJlIHVzZWQgd2l0aCBgZm9udC1zaXplOiA2Mi41JTtgXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+Mi4wcmVtJykge31cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAyLjFyZW0pIHt9XG4vLy9cbiR1bml0LWludGVydmFsczogKFxuICAncHgnOiAxLFxuICAnZW0nOiAwLjAxLFxuICAncmVtJzogMC4xLFxuICAnJzogMFxuKSAhZGVmYXVsdDtcblxuLy8vXG4vLy8gRGVmaW5lcyB3aGV0aGVyIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXMgaXMgYXZhaWxhYmxlLCB1c2VmdWwgZm9yIGNyZWF0aW5nIHNlcGFyYXRlIHN0eWxlc2hlZXRzXG4vLy8gZm9yIGJyb3dzZXJzIHRoYXQgZG9uJ3Qgc3VwcG9ydCBtZWRpYSBxdWVyaWVzLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIERpc2FibGVzIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXNcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgLmZvbyB7XG4vLy8gICAgY29sb3I6IHRvbWF0bztcbi8vLyAgfVxuLy8vXG4kaW0tbWVkaWEtc3VwcG9ydDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vXG4vLy8gU2VsZWN0cyB3aGljaCBicmVha3BvaW50IHRvIGVtdWxhdGUgd2hlbiBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzIGlzIGRpc2FibGVkLiBNZWRpYSBxdWVyaWVzIHRoYXQgc3RhcnQgYXQgb3Jcbi8vLyBpbnRlcmNlcHQgdGhlIGJyZWFrcG9pbnQgd2lsbCBiZSBkaXNwbGF5ZWQsIGFueSBvdGhlcnMgd2lsbCBiZSBpZ25vcmVkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnRcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgLmZvbyB7XG4vLy8gICAgY29sb3I6IHRvbWF0bztcbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBOT1Qgc2hvdyBiZWNhdXNlIGl0IGRvZXMgbm90IGludGVyY2VwdCB0aGUgZGVza3RvcCBicmVha3BvaW50XG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICd0YWJsZXQnO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj1kZXNrdG9wJykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBObyBvdXRwdXQgKi9cbi8vL1xuJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJyAhZGVmYXVsdDtcblxuLy8vXG4vLy8gU2VsZWN0cyB3aGljaCBtZWRpYSBleHByZXNzaW9ucyBhcmUgYWxsb3dlZCBpbiBhbiBleHByZXNzaW9uIGZvciBpdCB0byBiZSB1c2VkIHdoZW4gbWVkaWEgcXVlcmllc1xuLy8vIGFyZSBub3Qgc3VwcG9ydGVkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnQgYW5kIGNvbnRhaW5zIG9ubHkgYWNjZXB0ZWQgbWVkaWEgZXhwcmVzc2lvbnNcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xuLy8vICAkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJyk7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcsICdzY3JlZW4nKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gICAuZm9vIHtcbi8vLyAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgTk9UIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludCBidXQgY29udGFpbnMgYSBtZWRpYSBleHByZXNzaW9uIHRoYXQgaXMgbm90IGFjY2VwdGVkXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcbi8vLyAgJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicpO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAncmV0aW5hMngnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIE5vIG91dHB1dCAqL1xuLy8vXG4kaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJywgJ3BvcnRyYWl0JywgJ2xhbmRzY2FwZScpICFkZWZhdWx0O1xuXG4vLy8vXG4vLy8gQ3Jvc3MtZW5naW5lIGxvZ2dpbmcgZW5naW5lXG4vLy8gQGF1dGhvciBIdWdvIEdpcmF1ZGVsXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy8vXG5cblxuLy8vXG4vLy8gTG9nIGEgbWVzc2FnZSBlaXRoZXIgd2l0aCBgQGVycm9yYCBpZiBzdXBwb3J0ZWRcbi8vLyBlbHNlIHdpdGggYEB3YXJuYCwgdXNpbmcgYGZlYXR1cmUtZXhpc3RzKCdhdC1lcnJvcicpYFxuLy8vIHRvIGRldGVjdCBzdXBwb3J0LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtZXNzYWdlIC0gTWVzc2FnZSB0byBsb2dcbi8vL1xuQGZ1bmN0aW9uIGltLWxvZygkbWVzc2FnZSkge1xuICBAaWYgZmVhdHVyZS1leGlzdHMoJ2F0LWVycm9yJykge1xuICAgIEBlcnJvciAkbWVzc2FnZTtcbiAgfSBAZWxzZSB7XG4gICAgQHdhcm4gJG1lc3NhZ2U7XG4gICAgJF86IG5vb3AoKTtcbiAgfVxuXG4gIEByZXR1cm4gJG1lc3NhZ2U7XG59XG5cblxuLy8vXG4vLy8gV3JhcHBlciBtaXhpbiBmb3IgdGhlIGxvZyBmdW5jdGlvbiBzbyBpdCBjYW4gYmUgdXNlZCB3aXRoIGEgbW9yZSBmcmllbmRseVxuLy8vIEFQSSB0aGFuIGBAaWYgaW0tbG9nKCcuLicpIHt9YCBvciBgJF86IGltLWxvZygnLi4nKWAuIEJhc2ljYWxseSwgdXNlIHRoZSBmdW5jdGlvblxuLy8vIHdpdGhpbiBmdW5jdGlvbnMgYmVjYXVzZSBpdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluIGEgZnVuY3Rpb25cbi8vLyBhbmQgdXNlIHRoZSBtaXhpbiBldmVyeXdoZXJlIGVsc2UgYmVjYXVzZSBpdCdzIG11Y2ggbW9yZSBlbGVnYW50LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtZXNzYWdlIC0gTWVzc2FnZSB0byBsb2dcbi8vL1xuQG1peGluIGxvZygkbWVzc2FnZSkge1xuICBAaWYgaW0tbG9nKCRtZXNzYWdlKSB7fVxufVxuXG5cbi8vL1xuLy8vIEZ1bmN0aW9uIHdpdGggbm8gYEByZXR1cm5gIGNhbGxlZCBuZXh0IHRvIGBAd2FybmAgaW4gU2FzcyAzLjNcbi8vLyB0byB0cmlnZ2VyIGEgY29tcGlsaW5nIGVycm9yIGFuZCBzdG9wIHRoZSBwcm9jZXNzLlxuLy8vXG5AZnVuY3Rpb24gbm9vcCgpIHt9XG5cbi8vL1xuLy8vIERldGVybWluZXMgd2hldGhlciBhIGxpc3Qgb2YgY29uZGl0aW9ucyBpcyBpbnRlcmNlcHRlZCBieSB0aGUgc3RhdGljIGJyZWFrcG9pbnQuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICAgJGNvbmRpdGlvbnMgIC0gTWVkaWEgcXVlcnkgY29uZGl0aW9uc1xuLy8vXG4vLy8gQHJldHVybiB7Qm9vbGVhbn0gLSBSZXR1cm5zIHRydWUgaWYgdGhlIGNvbmRpdGlvbnMgYXJlIGludGVyY2VwdGVkIGJ5IHRoZSBzdGF0aWMgYnJlYWtwb2ludFxuLy8vXG5AZnVuY3Rpb24gaW0taW50ZXJjZXB0cy1zdGF0aWMtYnJlYWtwb2ludCgkY29uZGl0aW9ucy4uLikge1xuICAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICRpbS1uby1tZWRpYS1icmVha3BvaW50KTtcblxuICBAaWYgbm90ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlIHtcbiAgICBAaWYgaW0tbG9nKCdgI3skaW0tbm8tbWVkaWEtYnJlYWtwb2ludH1gIGlzIG5vdCBhIHZhbGlkIGJyZWFrcG9pbnQuJykge31cbiAgfVxuXG4gIEBlYWNoICRjb25kaXRpb24gaW4gJGNvbmRpdGlvbnMge1xuICAgIEBpZiBub3QgbWFwLWhhcy1rZXkoJG1lZGlhLWV4cHJlc3Npb25zLCAkY29uZGl0aW9uKSB7XG4gICAgICAkb3BlcmF0b3I6IGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRjb25kaXRpb24pO1xuICAgICAgJHByZWZpeDogZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcik7XG4gICAgICAkdmFsdWU6IGdldC1leHByZXNzaW9uLXZhbHVlKCRjb25kaXRpb24sICRvcGVyYXRvcik7XG5cbiAgICAgIC8vIHNjc3MtbGludDpkaXNhYmxlIFNwYWNlQXJvdW5kT3BlcmF0b3JcbiAgICAgIEBpZiAoJHByZWZpeCA9PSAnbWF4JyBhbmQgJHZhbHVlIDw9ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlKSBvclxuICAgICAgICAgICgkcHJlZml4ID09ICdtaW4nIGFuZCAkdmFsdWUgPiAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSkge1xuICAgICAgICBAcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgbm90IGluZGV4KCRpbS1uby1tZWRpYS1leHByZXNzaW9ucywgJGNvbmRpdGlvbikge1xuICAgICAgQHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIHRydWU7XG59XG5cbi8vLy9cbi8vLyBQYXJzaW5nIGVuZ2luZVxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vL1xuXG5cbi8vL1xuLy8vIEdldCBvcGVyYXRvciBvZiBhbiBleHByZXNzaW9uXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3Qgb3BlcmF0b3IgZnJvbVxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIEFueSBvZiBgPj1gLCBgPmAsIGA8PWAsIGA8YCwgYOKJpWAsIGDiiaRgXG4vLy9cbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkZXhwcmVzc2lvbikge1xuICBAZWFjaCAkb3BlcmF0b3IgaW4gKCc+PScsICc+JywgJzw9JywgJzwnLCAn4omlJywgJ+KJpCcpIHtcbiAgICBAaWYgc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcbiAgICAgIEByZXR1cm4gJG9wZXJhdG9yO1xuICAgIH1cbiAgfVxuXG4gIC8vIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW5zaWRlIGEgZnVuY3Rpb24sIHNvIHdlIGhhdmUgdG9cbiAgLy8gcmVseSBvbiB0aGUgYGltLWxvZyguLilgIGZ1bmN0aW9uIHJhdGhlciB0aGFuIHRoZSBgbG9nKC4uKWAgbWl4aW4uIEJlY2F1c2VcbiAgLy8gZnVuY3Rpb25zIGNhbm5vdCBiZSBjYWxsZWQgYW55d2hlcmUgaW4gU2Fzcywgd2UgbmVlZCB0byBoYWNrIHRoZSBjYWxsIGluXG4gIC8vIGEgZHVtbXkgdmFyaWFibGUsIHN1Y2ggYXMgYCRfYC4gSWYgYW55Ym9keSBldmVyIHJhaXNlIGEgc2NvcGluZyBpc3N1ZSB3aXRoXG4gIC8vIFNhc3MgMy4zLCBjaGFuZ2UgdGhpcyBsaW5lIGluIGBAaWYgaW0tbG9nKC4uKSB7fWAgaW5zdGVhZC5cbiAgJF86IGltLWxvZygnTm8gb3BlcmF0b3IgZm91bmQgaW4gYCN7JGV4cHJlc3Npb259YC4nKTtcbn1cblxuXG4vLy9cbi8vLyBHZXQgZGltZW5zaW9uIG9mIGFuIGV4cHJlc3Npb24sIGJhc2VkIG9uIGEgZm91bmQgb3BlcmF0b3Jcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCBkaW1lbnNpb24gZnJvbVxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvciBmcm9tIGAkZXhwcmVzc2lvbmBcbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBgd2lkdGhgIG9yIGBoZWlnaHRgIChvciBwb3RlbnRpYWxseSBhbnl0aGluZyBlbHNlKVxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tZGltZW5zaW9uKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcbiAgJG9wZXJhdG9yLWluZGV4OiBzdHItaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XG4gICRwYXJzZWQtZGltZW5zaW9uOiBzdHItc2xpY2UoJGV4cHJlc3Npb24sIDAsICRvcGVyYXRvci1pbmRleCAtIDEpO1xuICAkZGltZW5zaW9uOiAnd2lkdGgnO1xuXG4gIEBpZiBzdHItbGVuZ3RoKCRwYXJzZWQtZGltZW5zaW9uKSA+IDAge1xuICAgICRkaW1lbnNpb246ICRwYXJzZWQtZGltZW5zaW9uO1xuICB9XG5cbiAgQHJldHVybiAkZGltZW5zaW9uO1xufVxuXG5cbi8vL1xuLy8vIEdldCBkaW1lbnNpb24gcHJlZml4IGJhc2VkIG9uIGFuIG9wZXJhdG9yXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3Jcbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBgbWluYCBvciBgbWF4YFxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcikge1xuICBAcmV0dXJuIGlmKGluZGV4KCgnPCcsICc8PScsICfiiaQnKSwgJG9wZXJhdG9yKSwgJ21heCcsICdtaW4nKTtcbn1cblxuXG4vLy9cbi8vLyBHZXQgdmFsdWUgb2YgYW4gZXhwcmVzc2lvbiwgYmFzZWQgb24gYSBmb3VuZCBvcGVyYXRvclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IHZhbHVlIGZyb21cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3IgZnJvbSBgJGV4cHJlc3Npb25gXG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gQSBudW1lcmljIHZhbHVlXG4vLy9cbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XG4gICRvcGVyYXRvci1pbmRleDogc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuICAkdmFsdWU6IHN0ci1zbGljZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yLWluZGV4ICsgc3RyLWxlbmd0aCgkb3BlcmF0b3IpKTtcblxuICBAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkdmFsdWUpIHtcbiAgICAkdmFsdWU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkdmFsdWUpO1xuICB9IEBlbHNlIHtcbiAgICAkdmFsdWU6IHRvLW51bWJlcigkdmFsdWUpO1xuICB9XG5cbiAgJGludGVydmFsOiBtYXAtZ2V0KCR1bml0LWludGVydmFscywgdW5pdCgkdmFsdWUpKTtcblxuICBAaWYgbm90ICRpbnRlcnZhbCB7XG4gICAgLy8gSXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbnNpZGUgYSBmdW5jdGlvbiwgc28gd2UgaGF2ZSB0b1xuICAgIC8vIHJlbHkgb24gdGhlIGBpbS1sb2coLi4pYCBmdW5jdGlvbiByYXRoZXIgdGhhbiB0aGUgYGxvZyguLilgIG1peGluLiBCZWNhdXNlXG4gICAgLy8gZnVuY3Rpb25zIGNhbm5vdCBiZSBjYWxsZWQgYW55d2hlcmUgaW4gU2Fzcywgd2UgbmVlZCB0byBoYWNrIHRoZSBjYWxsIGluXG4gICAgLy8gYSBkdW1teSB2YXJpYWJsZSwgc3VjaCBhcyBgJF9gLiBJZiBhbnlib2R5IGV2ZXIgcmFpc2UgYSBzY29waW5nIGlzc3VlIHdpdGhcbiAgICAvLyBTYXNzIDMuMywgY2hhbmdlIHRoaXMgbGluZSBpbiBgQGlmIGltLWxvZyguLikge31gIGluc3RlYWQuXG4gICAgJF86IGltLWxvZygnVW5rbm93biB1bml0IGAje3VuaXQoJHZhbHVlKX1gLicpO1xuICB9XG5cbiAgQGlmICRvcGVyYXRvciA9PSAnPicge1xuICAgICR2YWx1ZTogJHZhbHVlICsgJGludGVydmFsO1xuICB9IEBlbHNlIGlmICRvcGVyYXRvciA9PSAnPCcge1xuICAgICR2YWx1ZTogJHZhbHVlIC0gJGludGVydmFsO1xuICB9XG5cbiAgQHJldHVybiAkdmFsdWU7XG59XG5cblxuLy8vXG4vLy8gUGFyc2UgYW4gZXhwcmVzc2lvbiB0byByZXR1cm4gYSB2YWxpZCBtZWRpYS1xdWVyeSBleHByZXNzaW9uXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIHBhcnNlXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gVmFsaWQgbWVkaWEgcXVlcnlcbi8vL1xuQGZ1bmN0aW9uIHBhcnNlLWV4cHJlc3Npb24oJGV4cHJlc3Npb24pIHtcbiAgLy8gSWYgaXQgaXMgcGFydCBvZiAkbWVkaWEtZXhwcmVzc2lvbnMsIGl0IGhhcyBubyBvcGVyYXRvclxuICAvLyB0aGVuIHRoZXJlIGlzIG5vIG5lZWQgdG8gZ28gYW55IGZ1cnRoZXIsIGp1c3QgcmV0dXJuIHRoZSB2YWx1ZVxuICBAaWYgbWFwLWhhcy1rZXkoJG1lZGlhLWV4cHJlc3Npb25zLCAkZXhwcmVzc2lvbikge1xuICAgIEByZXR1cm4gbWFwLWdldCgkbWVkaWEtZXhwcmVzc2lvbnMsICRleHByZXNzaW9uKTtcbiAgfVxuXG4gICRvcGVyYXRvcjogZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGV4cHJlc3Npb24pO1xuICAkZGltZW5zaW9uOiBnZXQtZXhwcmVzc2lvbi1kaW1lbnNpb24oJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XG4gICRwcmVmaXg6IGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpO1xuICAkdmFsdWU6IGdldC1leHByZXNzaW9uLXZhbHVlKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuXG4gIEByZXR1cm4gJygjeyRwcmVmaXh9LSN7JGRpbWVuc2lvbn06ICN7JHZhbHVlfSknO1xufVxuXG4vLy9cbi8vLyBTbGljZSBgJGxpc3RgIGJldHdlZW4gYCRzdGFydGAgYW5kIGAkZW5kYCBpbmRleGVzXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJGxpc3QgLSBMaXN0IHRvIHNsaWNlXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzdGFydCBbMV0gLSBTdGFydCBpbmRleFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZW5kIFtsZW5ndGgoJGxpc3QpXSAtIEVuZCBpbmRleFxuLy8vXG4vLy8gQHJldHVybiB7TGlzdH0gU2xpY2VkIGxpc3Rcbi8vL1xuQGZ1bmN0aW9uIHNsaWNlKCRsaXN0LCAkc3RhcnQ6IDEsICRlbmQ6IGxlbmd0aCgkbGlzdCkpIHtcbiAgQGlmIGxlbmd0aCgkbGlzdCkgPCAxIG9yICRzdGFydCA+ICRlbmQge1xuICAgIEByZXR1cm4gKCk7XG4gIH1cblxuICAkcmVzdWx0OiAoKTtcblxuICBAZm9yICRpIGZyb20gJHN0YXJ0IHRocm91Z2ggJGVuZCB7XG4gICAgJHJlc3VsdDogYXBwZW5kKCRyZXN1bHQsIG50aCgkbGlzdCwgJGkpKTtcbiAgfVxuXG4gIEByZXR1cm4gJHJlc3VsdDtcbn1cblxuLy8vL1xuLy8vIFN0cmluZyB0byBudW1iZXIgY29udmVydGVyXG4vLy8gQGF1dGhvciBIdWdvIEdpcmF1ZGVsXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy8vXG5cblxuLy8vXG4vLy8gQ2FzdHMgYSBzdHJpbmcgaW50byBhIG51bWJlclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmcgfCBOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGJlIHBhcnNlZFxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfVxuLy8vXG5AZnVuY3Rpb24gdG8tbnVtYmVyKCR2YWx1ZSkge1xuICBAaWYgdHlwZS1vZigkdmFsdWUpID09ICdudW1iZXInIHtcbiAgICBAcmV0dXJuICR2YWx1ZTtcbiAgfSBAZWxzZSBpZiB0eXBlLW9mKCR2YWx1ZSkgIT0gJ3N0cmluZycge1xuICAgICRfOiBpbS1sb2coJ1ZhbHVlIGZvciBgdG8tbnVtYmVyYCBzaG91bGQgYmUgYSBudW1iZXIgb3IgYSBzdHJpbmcuJyk7XG4gIH1cblxuICAkZmlyc3QtY2hhcmFjdGVyOiBzdHItc2xpY2UoJHZhbHVlLCAxLCAxKTtcbiAgJHJlc3VsdDogMDtcbiAgJGRpZ2l0czogMDtcbiAgJG1pbnVzOiAoJGZpcnN0LWNoYXJhY3RlciA9PSAnLScpO1xuICAkbnVtYmVyczogKCcwJzogMCwgJzEnOiAxLCAnMic6IDIsICczJzogMywgJzQnOiA0LCAnNSc6IDUsICc2JzogNiwgJzcnOiA3LCAnOCc6IDgsICc5JzogOSk7XG5cbiAgLy8gUmVtb3ZlICsvLSBzaWduIGlmIHByZXNlbnQgYXQgZmlyc3QgY2hhcmFjdGVyXG4gIEBpZiAoJGZpcnN0LWNoYXJhY3RlciA9PSAnKycgb3IgJGZpcnN0LWNoYXJhY3RlciA9PSAnLScpIHtcbiAgICAkdmFsdWU6IHN0ci1zbGljZSgkdmFsdWUsIDIpO1xuICB9XG5cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBzdHItbGVuZ3RoKCR2YWx1ZSkge1xuICAgICRjaGFyYWN0ZXI6IHN0ci1zbGljZSgkdmFsdWUsICRpLCAkaSk7XG5cbiAgICBAaWYgbm90IChpbmRleChtYXAta2V5cygkbnVtYmVycyksICRjaGFyYWN0ZXIpIG9yICRjaGFyYWN0ZXIgPT0gJy4nKSB7XG4gICAgICBAcmV0dXJuIHRvLWxlbmd0aChpZigkbWludXMsIC0kcmVzdWx0LCAkcmVzdWx0KSwgc3RyLXNsaWNlKCR2YWx1ZSwgJGkpKVxuICAgIH1cblxuICAgIEBpZiAkY2hhcmFjdGVyID09ICcuJyB7XG4gICAgICAkZGlnaXRzOiAxO1xuICAgIH0gQGVsc2UgaWYgJGRpZ2l0cyA9PSAwIHtcbiAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKiAxMCArIG1hcC1nZXQoJG51bWJlcnMsICRjaGFyYWN0ZXIpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJGRpZ2l0czogJGRpZ2l0cyAqIDEwO1xuICAgICAgJHJlc3VsdDogJHJlc3VsdCArIG1hcC1nZXQoJG51bWJlcnMsICRjaGFyYWN0ZXIpIC8gJGRpZ2l0cztcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIGlmKCRtaW51cywgLSRyZXN1bHQsICRyZXN1bHQpO1xufVxuXG5cbi8vL1xuLy8vIEFkZCBgJHVuaXRgIHRvIGAkdmFsdWVgXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gVmFsdWUgdG8gYWRkIHVuaXQgdG9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHVuaXQgLSBTdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHVuaXRcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn0gLSBgJHZhbHVlYCBleHByZXNzZWQgaW4gYCR1bml0YFxuLy8vXG5AZnVuY3Rpb24gdG8tbGVuZ3RoKCR2YWx1ZSwgJHVuaXQpIHtcbiAgJHVuaXRzOiAoJ3B4JzogMXB4LCAnY20nOiAxY20sICdtbSc6IDFtbSwgJyUnOiAxJSwgJ2NoJzogMWNoLCAncGMnOiAxcGMsICdpbic6IDFpbiwgJ2VtJzogMWVtLCAncmVtJzogMXJlbSwgJ3B0JzogMXB0LCAnZXgnOiAxZXgsICd2dyc6IDF2dywgJ3ZoJzogMXZoLCAndm1pbic6IDF2bWluLCAndm1heCc6IDF2bWF4KTtcblxuICBAaWYgbm90IGluZGV4KG1hcC1rZXlzKCR1bml0cyksICR1bml0KSB7XG4gICAgJF86IGltLWxvZygnSW52YWxpZCB1bml0IGAjeyR1bml0fWAuJyk7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZSAqIG1hcC1nZXQoJHVuaXRzLCAkdW5pdCk7XG59XG5cbi8vL1xuLy8vIFRoaXMgbWl4aW4gYWltcyBhdCByZWRlZmluaW5nIHRoZSBjb25maWd1cmF0aW9uIGp1c3QgZm9yIHRoZSBzY29wZSBvZlxuLy8vIHRoZSBjYWxsLiBJdCBpcyBoZWxwZnVsIHdoZW4gaGF2aW5nIGEgY29tcG9uZW50IG5lZWRpbmcgYW4gZXh0ZW5kZWRcbi8vLyBjb25maWd1cmF0aW9uIHN1Y2ggYXMgY3VzdG9tIGJyZWFrcG9pbnRzIChyZWZlcnJlZCB0byBhcyB0d2Vha3BvaW50cylcbi8vLyBmb3IgaW5zdGFuY2UuXG4vLy9cbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkdHdlYWtwb2ludHMgWygpXSAtIE1hcCBvZiB0d2Vha3BvaW50cyB0byBiZSBtZXJnZWQgd2l0aCBgJGJyZWFrcG9pbnRzYFxuLy8vIEBwYXJhbSB7TWFwfSAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnMgWygpXSAtIE1hcCBvZiB0d2Vha2VkIG1lZGlhIGV4cHJlc3Npb25zIHRvIGJlIG1lcmdlZCB3aXRoIGAkbWVkaWEtZXhwcmVzc2lvbmBcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgdGhlIGdsb2JhbCBicmVha3BvaW50cyB3aXRoIGEgdHdlYWtwb2ludFxuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCgnY3VzdG9tJzogNjc4cHgpKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJywgJzw9Y3VzdG9tJykge1xuLy8vICAgICAgIC8vIC4uLlxuLy8vICAgICAgfVxuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCB0aGUgZ2xvYmFsIG1lZGlhIGV4cHJlc3Npb25zIHdpdGggYSBjdXN0b20gb25lXG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zOiAoJ2FsbCc6ICdhbGwnKSkge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJ2FsbCcsICc+cGhvbmUnKSB7XG4vLy8gICAgICAgLy8gLi4uXG4vLy8gICAgICB9XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIGJvdGggY29uZmlndXJhdGlvbiBtYXBzXG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoKCdjdXN0b20nOiA2NzhweCksICgnYWxsJzogJ2FsbCcpKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnYWxsJywgJz5waG9uZScsICc8PWN1c3RvbScpIHtcbi8vLyAgICAgICAvLyAuLi5cbi8vLyAgICAgIH1cbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuQG1peGluIG1lZGlhLWNvbnRleHQoJHR3ZWFrcG9pbnRzOiAoKSwgJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zOiAoKSkge1xuICAvLyBTYXZlIGdsb2JhbCBjb25maWd1cmF0aW9uXG4gICRnbG9iYWwtYnJlYWtwb2ludHM6ICRicmVha3BvaW50cztcbiAgJGdsb2JhbC1tZWRpYS1leHByZXNzaW9uczogJG1lZGlhLWV4cHJlc3Npb25zO1xuXG4gIC8vIFVwZGF0ZSBnbG9iYWwgY29uZmlndXJhdGlvblxuICAkYnJlYWtwb2ludHM6IG1hcC1tZXJnZSgkYnJlYWtwb2ludHMsICR0d2Vha3BvaW50cykgIWdsb2JhbDtcbiAgJG1lZGlhLWV4cHJlc3Npb25zOiBtYXAtbWVyZ2UoJG1lZGlhLWV4cHJlc3Npb25zLCAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnMpICFnbG9iYWw7XG5cbiAgQGNvbnRlbnQ7XG5cbiAgLy8gUmVzdG9yZSBnbG9iYWwgY29uZmlndXJhdGlvblxuICAkYnJlYWtwb2ludHM6ICRnbG9iYWwtYnJlYWtwb2ludHMgIWdsb2JhbDtcbiAgJG1lZGlhLWV4cHJlc3Npb25zOiAkZ2xvYmFsLW1lZGlhLWV4cHJlc3Npb25zICFnbG9iYWw7XG59XG5cbi8vLy9cbi8vLyBpbmNsdWRlLW1lZGlhIHB1YmxpYyBleHBvc2VkIEFQSVxuLy8vIEBhdXRob3IgRWR1YXJkbyBCb3VjYXNcbi8vLyBAYWNjZXNzIHB1YmxpY1xuLy8vL1xuXG5cbi8vL1xuLy8vIEdlbmVyYXRlcyBhIG1lZGlhIHF1ZXJ5IGJhc2VkIG9uIGEgbGlzdCBvZiBjb25kaXRpb25zXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICAgJGNvbmRpdGlvbnMgIC0gTWVkaWEgcXVlcnkgY29uZGl0aW9uc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggYSBzaW5nbGUgc2V0IGJyZWFrcG9pbnRcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggdHdvIHNldCBicmVha3BvaW50c1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJywgJzw9dGFibGV0JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBjdXN0b20gdmFsdWVzXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PTM1OHB4JywgJzw4NTBweCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggc2V0IGJyZWFrcG9pbnRzIHdpdGggY3VzdG9tIHZhbHVlc1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPmRlc2t0b3AnLCAnPD0xMzUwcHgnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGEgc3RhdGljIGV4cHJlc3Npb25cbi8vLyAgQGluY2x1ZGUgbWVkaWEoJ3JldGluYTJ4JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gTWl4aW5nIGV2ZXJ5dGhpbmdcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49MzUwcHgnLCAnPHRhYmxldCcsICdyZXRpbmEzeCcpIHsgfVxuLy8vXG5AbWl4aW4gbWVkaWEoJGNvbmRpdGlvbnMuLi4pIHtcbiAgLy8gc2Nzcy1saW50OmRpc2FibGUgU3BhY2VBcm91bmRPcGVyYXRvclxuICBAaWYgKCRpbS1tZWRpYS1zdXBwb3J0IGFuZCBsZW5ndGgoJGNvbmRpdGlvbnMpID09IDApIG9yXG4gICAgICAobm90ICRpbS1tZWRpYS1zdXBwb3J0IGFuZCBpbS1pbnRlcmNlcHRzLXN0YXRpYy1icmVha3BvaW50KCRjb25kaXRpb25zLi4uKSkge1xuICAgIEBjb250ZW50O1xuICB9IEBlbHNlIGlmICgkaW0tbWVkaWEtc3VwcG9ydCBhbmQgbGVuZ3RoKCRjb25kaXRpb25zKSA+IDApIHtcbiAgICBAbWVkaWEgI3t1bnF1b3RlKHBhcnNlLWV4cHJlc3Npb24obnRoKCRjb25kaXRpb25zLCAxKSkpfSB7XG4gICAgICAvLyBSZWN1cnNpdmUgY2FsbFxuICAgICAgQGluY2x1ZGUgbWVkaWEoc2xpY2UoJGNvbmRpdGlvbnMsIDIpLi4uKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIEJhc2UgLSBNYWluXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuLyoqXG4gKiBTdHlsZXNcbiAqL1xuaHRtbCxcbmJvZHkge1xuICBAaW5jbHVkZSBmb250LXNtb290aGluZyh0cnVlKTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgZm9udC1zaXplOiB2YXIoLS1mb250U2l6ZSk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lSGVpZ2h0KTtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnRCb2R5KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1ncmV5TGlnaHQpO1xuICBjb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcblxuICBAaW5jbHVkZSBtZWRpYSgnPGxnJykge1xuICAgIC0tZm9udFNpemU6IDEwMCU7XG4gIH1cbn1cblxuKixcbio6YmVmb3JlLFxuKjphZnRlciB7XG4gIGJveC1zaXppbmc6IGluaGVyaXQ7XG59XG5cbmJvZHkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIEJhc2UgLSBBbmltYXRpb25zXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuQGtleWZyYW1lcyBmYWRlSW4ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIH1cblxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmYWRlT3V0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIEF0b21zIC0gQnV0dG9uc1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbi8qKlxuICogQ29uZmlnXG4gKiovXG5cbkBtaXhpbiBidG4ge1xuICBAaW5jbHVkZSBsaW5rUmVzZXQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcGFkZGluZzogMC43NXJlbSAxcmVtO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ0bkJnKTtcbiAgY29sb3I6IHZhcigtLWJ0bkNvbG91cik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJ0bkJnKTtcbiAgdHJhbnNpdGlvbjogYWxsIHZhcigtLXRyYW5zaXRpb24pO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgc3ZnIHtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gdmFyKC0tdHJhbnNpdGlvbik7XG4gICAgd2lkdGg6IDIwcHg7XG4gIH1cblxuICBwYXRoIHtcbiAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gIH1cbn1cblxuQG1peGluIGJ0bi1ob3ZlciB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6IHZhcigtLWJ0bkNvbG91cik7XG5cbiAgc3ZnIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNXB4KTtcbiAgfVxufVxuXG4vKipcbiAqIFN0eWxlc1xuICoqL1xuXG4uYS1idG4ge1xuICAtLWJ0bkJnOiB2YXIoLS1jLXByaW1hcnkpO1xuICAtLWJ0bkNvbG91cjogdmFyKC0tYy13aGl0ZSk7XG4gIEBpbmNsdWRlIGJ0bjtcblxuICAmOmZvY3VzLFxuICAmOmhvdmVyIHtcbiAgICBAaW5jbHVkZSBidG4taG92ZXI7XG4gIH1cblxuICAmLS15ZWwge1xuICAgIC0tYnRuQmc6IHZhcigtLWMteWVsbG93KTtcbiAgICAtLWJ0bkNvbG91cjogdmFyKC0tYy1wcmltYXJ5KTtcbiAgfVxuXG4gICYtLWJsdWUge1xuICAgIC0tYnRuQmc6IHZhcigtLWMtYmx1ZSk7XG4gICAgLS1idG5Db2xvdXI6IHZhcigtLWMtcHJpbWFyeSk7XG4gIH1cblxuICAmLS13aCB7XG4gICAgLS1idG5CZzogdmFyKC0tYy13aGl0ZSk7XG4gICAgLS1idG5Db2xvdXI6IHZhcigtLWMtcHJpbWFyeSk7XG4gIH1cblxuICAmLS13aWRlIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDRyZW07XG4gICAgcGFkZGluZy1yaWdodDogNHJlbTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8eHMnKSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG4gIH1cblxuICAmLS1mdWxsV2lkdGgge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAmLS1uYXJyb3cge1xuICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgfVxuXG4gICYtLXNtIHtcbiAgICAtLWJ0bkJnOiB0cmFuc3BhcmVudDtcbiAgICAtLWJ0bkNvbG91cjogdmFyKC0tYy1wcmltYXJ5KTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNzVyZW07XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250U21hbGwpO1xuICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIC0tYnRuQmc6IHZhcigtLWMtcHJpbWFyeSk7XG4gICAgICBjb2xvcjogdmFyKC0tYy13aGl0ZSk7XG4gICAgfVxuICB9XG5cbiAgJi0taG9sbG93IHtcbiAgICAtLWJ0bkJnOiB0cmFuc3BhcmVudDtcbiAgICAtLWJ0bkNvbG91cjogdmFyKC0tYy1wcmltYXJ5KTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG4gIH1cblxuICAmLS1pY29uTGVmdCB7XG4gICAgc3ZnIHtcbiAgICAgIG1hcmdpbjogMCAxMHB4IDAgMDtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIHN2ZyB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNXB4KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLS13aGl0ZSB7XG4gICAgLS1idG5CZzogdHJhbnNwYXJlbnQ7XG4gICAgLS1idG5Db2xvdXI6IHZhcigtLWMtd2hpdGUpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy13aGl0ZSk7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtcGluayk7XG4gICAgICBjb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy1waW5rKTtcbiAgICB9XG4gIH1cblxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiAzcHggZGFzaGVkIHZhcigtLWJ0bkJnKTtcblxuICAgIEBpbmNsdWRlIGZvY3VzLXZpc2libGUoKSB7XG4gICAgICBvdXRsaW5lOiAwO1xuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIEF0b21zIC0gSW1hZ2UgY3JlZGl0c1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbi5hLWltYWdlLWNyZWRpdCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICByaWdodDogMDtcbiAgY3Vyc29yOiBoZWxwO1xuICBib3JkZXI6IDA7XG4gIHdpZHRoOiA1MHB4O1xuICBoZWlnaHQ6IDUwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAvLyBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAvLyAgIGJvdHRvbTogMC41cmVtO1xuICAvLyAgIHJpZ2h0OiAxcmVtO1xuICAvLyB9XG5cbiAgJl9faWNvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy13aGl0ZSk7XG4gICAgY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG4gICAgd2lkdGg6IDEuMjVyZW07XG4gICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgbGluZS1oZWlnaHQ6IDE1cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udFNtYWxsKTtcbiAgfVxuXG4gICZfX2NvcHkge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtd2hpdGUpO1xuICAgIGNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAwO1xuICAgIHRvcDogMDtcbiAgICBwYWRkaW5nOiAxcmVtIDNyZW0gMXJlbSAxcmVtO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udFNtYWxsKTtcbiAgICB3aWR0aDogOTV2dztcbiAgICBtYXgtd2lkdGg6IDUwMHB4O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSB2YXIoLS10cmFuc2l0aW9uKTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAycmVtO1xuICAgIH1cbiAgfVxuXG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlLFxuICAmOmhvdmVyIHtcbiAgICAuYS1pbWFnZS1jcmVkaXRfX2ljb24ge1xuICAgICAgY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcbiAgICB9XG5cbiAgICAuYS1pbWFnZS1jcmVkaXRfX2NvcHkge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICB6LWluZGV4OiAyMTtcbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qIFVuLnRpdGxlZFxuKiBBdG9tcyAtIEJyZWFkY3J1bWJzXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cbi8qKlxuKiBTdHlsaW5nXG4qL1xuLmEtYnJlYWRjcnVtYnMge1xuICBwYWRkaW5nOiAwLjVyZW0gMnJlbTtcbiAgZm9udC1zaXplOiB2YXIoLS1mb250U21hbGwpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCc8eHMnKSB7XG4gICAgcGFkZGluZzogMC41cmVtIDE1cHg7XG4gIH1cblxuICAmX19kaXZpZGVyIHtcbiAgICBtYXJnaW46IDAgNXB4O1xuICB9XG5cbiAgYSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qIFVuLnRpdGxlZFxuKiBBdG9tcyAtIExvYWRlclxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qL1xuXG4vKipcbiogQ29uZmlnXG4qL1xuQGtleWZyYW1lcyBsb2FkZXJBbmltYXRpb24ge1xuICAwJSxcbiAgMTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMTQwcHgpIHJvdGF0ZVgoLTE4MGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxNDBweCkgcm90YXRlWCgtMTgwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIDI1JSxcbiAgNzUlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMTQwcHgpIHJvdGF0ZVgoMGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxNDBweCkgcm90YXRlWCgwZGVnKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDkwJSxcbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDE0MHB4KSByb3RhdGVZKDE4MGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxNDBweCkgcm90YXRlWSgxODBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuOnJvb3Qge1xuICAtLWxvYWRlckNvbG91cjogdmFyKC0tYy1wcmltYXJ5KTtcbn1cblxuLyoqXG4qIFN0eWxpbmdcbiovXG4uYS1sb2FkZXIge1xuICBtYXJnaW46IDIwcHggYXV0bztcbiAgd2lkdGg6IDQwcHg7XG4gIGhlaWdodDogNDBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0cmFuc2Zvcm06IHJvdGF0ZVooNDVkZWcpO1xuXG4gICYtLXdoaXRlIHtcbiAgICAtLWxvYWRlckNvbG91cjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpO1xuICB9XG5cbiAgJl9fY3ViZSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDUwJTtcbiAgICBoZWlnaHQ6IDUwJTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbG9hZGVyQ29sb3VyKTtcbiAgICAgIGFuaW1hdGlvbjogbG9hZGVyQW5pbWF0aW9uIDIuNHMgaW5maW5pdGUgbGluZWFyIGJvdGg7XG4gICAgICB0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDEwMCU7XG4gICAgfVxuICB9XG5cbiAgJl9fY3ViZS0yIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSkgcm90YXRlWig5MGRlZyk7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgYW5pbWF0aW9uLWRlbGF5OiAwLjNzO1xuICAgIH1cbiAgfVxuXG4gICZfX2N1YmUtMyB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpIHJvdGF0ZVooMTgwZGVnKTtcblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBhbmltYXRpb24tZGVsYXk6IDAuNnM7XG4gICAgfVxuICB9XG5cbiAgJl9fY3ViZS00IHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSkgcm90YXRlWigyNzBkZWcpO1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGFuaW1hdGlvbi1kZWxheTogMC45cztcbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qIFVuLnRpdGxlZFxuKiBBdG9tcyAtIERhdGUgcGlja2VyXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cbi8qKlxuKiBDb25maWdcbiovXG5cbi8qKlxuKiBTdHlsaW5nXG4qL1xuLmEtZGF0ZS1waWNrZXIge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiA4MCU7XG4gIG1hcmdpbi1ib3R0b206IDJyZW07XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cblxuICAuRGF5UGlja2VyLXdyYXBwZXIge1xuICAgIHBvc2l0aW9uOiB1bnNldDtcbiAgfVxuXG4gIC5EYXlQaWNrZXItTmF2QmFyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxLjVyZW07XG4gICAgcmlnaHQ6IDFyZW07XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICB0b3A6IDEuMjVyZW07XG4gICAgICBwYWRkaW5nOiAwIDFyZW07XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcbiAgICAgIHRvcDogMC41cmVtO1xuICAgIH1cbiAgfVxuXG4gIC5EYXlQaWNrZXItTmF2QnV0dG9uIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDQwcHg7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgYmFja2dyb3VuZC1zaXplOiAxNXB4O1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgICYtLXByZXYge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWcvYXJyb3ctaGVhZC1sZWZ0LnN2ZycpICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgICYtLW5leHQge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWcvYXJyb3ctaGVhZC1yaWdodC5zdmcnKSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC5EYXlQaWNrZXItQ2FwdGlvbiB7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnRUaXRsZSk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jLXByaW1hcnkpO1xuICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8eHMnKSB7XG4gICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICBwYWRkaW5nOiAwLjVyZW0gMDtcbiAgICB9XG4gIH1cblxuICBhYmJyIHtcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udEJvbGQpO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBjb2xvcjogdmFSKC0tYy1wcmltYXJ5KTtcbiAgfVxuXG4gIC5EYXlQaWNrZXItRGF5LS1zZWxlY3RlZDpub3QoLkRheVBpY2tlci1EYXktLXN0YXJ0KTpub3QoLkRheVBpY2tlci1EYXktLWVuZCk6bm90KC5EYXlQaWNrZXItRGF5LS1vdXRzaWRlKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDE3MSwgMTg2LCAwLjQpICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS10cmFuc2l0aW9uKTtcbiAgfVxuXG4gIC5EYXlQaWNrZXItRGF5IHtcbiAgICBib3JkZXItcmFkaXVzOiAwJSAhaW1wb3J0YW50O1xuXG4gICAgJi0tdG9kYXkge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1wcmltYXJ5KTtcbiAgICAgIGNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1waW5rKSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC5EYXlQaWNrZXItRGF5LS1zdGFydCB7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMTBweCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDEwcHggIWltcG9ydGFudDtcbiAgfVxuXG4gIC5EYXlQaWNrZXItRGF5LS1lbmQge1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAxMHB4ICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDEwcHggIWltcG9ydGFudDtcbiAgfVxuXG4gIC5EYXlQaWNrZXItRGF5LS1zZWxlY3RlZDpub3QoLkRheVBpY2tlci1EYXktLWRpc2FibGVkKTpub3QoLkRheVBpY2tlci1EYXktLW91dHNpZGUpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXBpbmspO1xuICAgIGNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tdHJhbnNpdGlvbik7XG4gIH1cbn1cbiIsIi8qKlxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qIFVuLnRpdGxlZFxuKiBBdG9tcyAtIFBhZ2luYXRpb25cbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKi9cblxuLyoqXG4qIENvbmZpZ1xuKi9cblxuLyoqXG4qIFN0eWxpbmdcbiovXG4uYS1wYWdlciB7XG4gIEBpbmNsdWRlIGxpLXJlc2V0O1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBtYXJnaW46IDJyZW0gMDtcblxuICAuZGlzYWJsZWQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB9XG5cbiAgc3BhbixcbiAgYSB7XG4gICAgQGluY2x1ZGUgbGlua1Jlc2V0O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gIH1cblxuICBhIHtcbiAgICAmOmhvdmVyIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXG4gICAgICBwYXRoIHtcbiAgICAgICAgZmlsbDogdmFyKC0tYy1zZWNvbmRhcnkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHNwYW4sXG4gIGEudW5kZWZpbmVkIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgfVxuXG4gIHN2ZyB7XG4gICAgd2lkdGg6IDI1cHg7XG4gICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgfVxuXG4gIHBhdGgge1xuICAgIHRyYW5zaXRpb246IGZpbGwgdmFyKC0tdHJhbnNpdGlvbik7XG4gIH1cbn1cbiIsIi8qKlxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qIFVuLnRpdGxlZFxuKiBBdG9tcyAtIENvbHVtbnNcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKi9cblxuLyoqXG4qIENvbmZpZ1xuKi9cblxuLyoqXG4qIFN0eWxpbmdcbiovXG4uYS1jb2xzIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDAgMTVweDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMCBhdXRvO1xuXG4gICYtLXhzIHtcbiAgICBtYXgtd2lkdGg6IHZhcigtLWNvbHMtMyk7XG4gIH1cblxuICAmLS1zbSB7XG4gICAgbWF4LXdpZHRoOiB2YXIoLS1jb2xzLTYpO1xuICB9XG5cbiAgJi0tbWQge1xuICAgIG1heC13aWR0aDogdmFyKC0tY29scy04KTtcbiAgfVxuXG4gICYtLWZ1bGwge1xuICAgIG1heC13aWR0aDogdmFyKC0tY29udGFpbmVyV2lkdGgpO1xuICB9XG5cbiAgJi0tYmdDb2xvdXIge1xuICAgIG1hcmdpbjogNHJlbSBhdXRvO1xuICB9XG59XG4iLCIvKipcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKiBVbi50aXRsZWRcbiogQXRvbXMgLSBJbWFnZSBjYXB0aW9uc1xuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qL1xuXG4vKipcbiogQ29uZmlnXG4qL1xuXG4vKipcbiogU3R5bGluZ1xuKi9cbi5hLWNhcHRpb24ge1xuICBAaW5jbHVkZSBiZy1pbWcoOHB4KTtcbiAgcGFkZGluZy1sZWZ0OiB2YXIoLS1ndXR0ZXIpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltZy9hcnJvdy1oZWFkLnN2ZycpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0IDExcHg7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZm9udFNtYWxsKTtcbn1cbiIsIi8qKlxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qIFVuLnRpdGxlZFxuKiBBdG9tcyAtIEF1dG8gZ3JpZFxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qL1xuXG4vKipcbiogQ29uZmlnXG4qL1xuXG4vKipcbiogU3R5bGluZ1xuKi9cbi5hLWF1dG8tZ3JpZCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KFxuICAgIGF1dG8tZml0LFxuICAgIG1pbm1heCh2YXIoLS1hdXRvR3JpZE1pbiwgMWZyKSwgdmFyKC0tYXV0b0dyaWRNYXgsIDFmcikpXG4gICk7XG4gIGdhcDogdmFyKC0tYXV0b0dyaWRHYXAsIDFyZW0pO1xuICBhbGlnbi1pdGVtczogc3RhcnQ7XG59XG4iLCIvKipcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKiBVbi50aXRsZWRcbiogQXRvbXMgLSBMaW5rc1xuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qL1xuXG4vKipcbiogQ29uZmlnXG4qL1xuXG4vKipcbiogU3R5bGluZ1xuKi9cbi5hLWxpbmtzIHtcbiAgbWFyZ2luOiAycmVtIDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZsZXgtd3JhcDogd3JhcDtcblxuICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgIG1hcmdpbjogMXJlbSAwO1xuICB9XG5cbiAgYSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICB9XG59XG4iLCIvKipcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKiBVbi50aXRsZWRcbiogQXRvbXMgLSBTaWRlYmFyXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cbi8qKlxuKiBDb25maWdcbiovXG5cbi8qKlxuKiBTdHlsaW5nXG4qL1xuLmEtc2lkZWJhciB7XG4gIG1hcmdpbi1ib3R0b206IDNyZW07XG4gIGZvbnQtc2l6ZTogMXJlbTtcblxuICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbiAgfVxuXG4gICYtLWJsb2NrIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLXByaW1hcnkpO1xuICAgIGJvcmRlci1sZWZ0OiAwO1xuICAgIGJvcmRlci1yaWdodDogMDtcbiAgICBwYWRkaW5nOiAxcmVtIDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuICB9XG5cbiAgLmEtdGFnLFxuICAuYS1idG4ge1xuICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbiAgfVxuXG4gIHN2ZyB7XG4gICAgd2lkdGg6IDE1cHg7XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgnPG1kJykge1xuICAgIC5zaW5nbGUtcGVvcGxlICYge1xuICAgICAgb3JkZXI6IC0xO1xuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogVW4udGl0bGVkXG4qIEF0b21zIC0gVGFnc1xuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qL1xuXG4vKipcbiogQ29uZmlnXG4qL1xuXG4vKipcbiogU3R5bGluZ1xuKi9cbi5hLXRhZyB7XG4gIC0tdGFnQmc6IHZhcigtLWMtcHJpbWFyeSk7XG4gIC0tdGFnQ29sb3VyOiB2YXIoLS1jLXdoaXRlKTtcblxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICBmb250LXNpemU6IDkwJTtcbiAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGFnQmcpO1xuICBjb2xvcjogdmFyKC0tdGFnQ29sb3VyKTtcblxuICAmLS15ZWwge1xuICAgIC0tdGFnQmc6IHZhcigtLWMteWVsbG93KTtcbiAgICAtLXRhZ0NvbG91cjogdmFyKC0tYy1wcmltYXJ5KTtcbiAgfVxufVxuIiwiLyoqXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogVW4udGl0bGVkXG4qIEF0b21zIC0gU3RpY2t5XG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cbi8qKlxuKiBDb25maWdcbiovXG46cm9vdCB7XG4gIC0tc3RpY2t5TGVmdDogMDtcbiAgLS1zdGlja3lXaWR0aDogMDtcbiAgLS1zdGlja3lIZWlnaHQ6IDA7XG59XG5cbi8qKlxuKiBTdHlsaW5nXG4qL1xuLmEtc3RpY2t5IHtcbiAgJltkYXRhLXN0aWNreT0ndHJ1ZSddIHtcbiAgICAuYS1idG4ge1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogdmFyKC0tc3RpY2t5TGVmdCk7XG4gICAgICB3aWR0aDogdmFyKC0tc3RpY2t5V2lkdGgpO1xuICAgICAgei1pbmRleDogMjA7XG4gICAgICB0cmFuc2l0aW9uOiBub25lO1xuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuYS1zdGlja3lfX3BsYWNlaG9sZGVyIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxuXG4gICZfX3BsYWNlaG9sZGVyIHtcbiAgICBoZWlnaHQ6IHZhcigtLXN0aWNreUhlaWdodCk7XG4gICAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbiIsIi8qKlxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qIFVuLnRpdGxlZFxuKiBBdG9tcyAtIEV2ZW50IGNhbmNlbGxlZCBtZXNzYWdlXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cbi8qKlxuKiBDb25maWdcbiovXG5cbi8qKlxuKiBTdHlsaW5nXG4qL1xuLmEtY2FuY2VsbGVkIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDAuNzVyZW07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMteWVsbG93KTtcbiAgY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG5cbiAgcCB7XG4gICAgbWF4LXdpZHRoOiB2YXIoLS1jb250YWluZXJXaWR0aCk7XG4gIH1cbn1cbiIsIi8qKlxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qIFVuLnRpdGxlZFxuKiBBdG9tcyAtIFNraXAgbGlua1xuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qL1xuXG4vKipcbiogQ29uZmlnXG4qL1xuXG4vKipcbiogU3R5bGluZ1xuKi9cbi5hLXNraXAtbGluayB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250Qm9sZCk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG4gIGNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiAwLjVyZW07XG4gIHotaW5kZXg6IDEwO1xuICBib3JkZXI6IDA7XG4gIG91dGxpbmU6IDA7XG5cbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICBjb2xvcjogdmFyKC0tYy13aGl0ZSk7XG4gIH1cbn1cbiIsIi8qKlxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qIFVuLnRpdGxlZFxuKiBBdG9tcyAtIExpc3RpbmdcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKi9cblxuLyoqXG4qIENvbmZpZ1xuKi9cblxuLyoqXG4qIFN0eWxpbmdcbiovXG4uYS1saXN0aW5nIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgMWZyKTtcbiAgZ2FwOiAycmVtO1xuICAvLyBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc8bGcnKSB7XG4gICAgZ2FwOiAxcmVtO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzw9c20nKSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCc8eHMnKSB7XG4gICAgYWxpZ24taXRlbXM6IHN0YXJ0O1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgIGdhcDogMnJlbTtcbiAgfVxufVxuIiwiLyoqXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogVW4udGl0bGVkXG4qIEF0b21zIC0gQ2l0YXRpb25zXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cbi8qKlxuKiBDb25maWdcbiovXG5cbi8qKlxuKiBTdHlsaW5nXG4qL1xuLmEtY2l0ZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICBhIHtcbiAgICBAaW5jbHVkZSBsaW5rUmVzZXQ7XG4gIH1cblxuICAmX19udW1iZXIge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udFNtYWxsKTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXRyYW5zaXRpb24pO1xuICB9XG5cbiAgJl9fZGVzY3JpcHRpb24ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy13aGl0ZSk7XG4gICAgdG9wOiAxMDAlO1xuICAgIGxlZnQ6IDA7XG4gICAgbWF4LXdpZHRoOiAyMzBweDtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnRTbWFsbCk7XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG5cbiAgJjpmb2N1cyxcbiAgJjpob3ZlciB7XG4gICAgLmEtY2l0ZV9fbnVtYmVyIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jLXJlZCk7XG4gICAgfVxuICAgIC5hLWNpdGVfX2Rlc2NyaXB0aW9uIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qIFVuLnRpdGxlZFxuKiBBdG9tcyAtIEJhY2sgdG8gdG9wXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cbi8qKlxuKiBTdHlsaW5nXG4qL1xuLmEtYmFjay10b3Age1xuICBAaW5jbHVkZSBsaW5rUmVzZXQ7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIGxlZnQ6IGNhbGMoMTAwJSAtIDZyZW0pO1xuICBib3R0b206IDNyZW07XG4gIG1hcmdpbi1ib3R0b206IC0zMHB4O1xuICBoZWlnaHQ6IDYwcHg7XG4gIHdpZHRoOiA2MHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICB6LWluZGV4OiAyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc8bGcnKSB7XG4gICAgbGVmdDogY2FsYygxMDAlIC0gNHJlbSk7XG4gICAgYm90dG9tOiAxcmVtO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgd2lkdGg6IDQwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogLTIwcHg7XG4gIH1cblxuICAmW2RhdGEtdmlzaWJsZT0ndHJ1ZSddIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFuaW1hdGlvbjogZmFkZUluIDAuMnMgZWFzZS1pbi1vdXQgZm9yd2FyZHM7XG4gIH1cblxuICAmW2RhdGEtdmlzaWJsZT0nZmFsc2UnXSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIGFuaW1hdGlvbjogZmFkZU91dCAwLjJzIGVhc2UtaW4tb3V0IGZvcndhcmRzO1xuICB9XG5cbiAgJjpob3ZlciB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMHB4KTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTVweCk7XG4gICAgfVxuICB9XG5cbiAgc3ZnIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICBtYXgtaGVpZ2h0OiAzMHB4O1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIG1heC1oZWlnaHQ6IDIwcHg7XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogQXRvbXMgLSBHcmlkXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuLyoqXG4gKiBTdHlsaW5nXG4gKi9cbiAuYS1ncmlkIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdhcDogdmFyKC0tYXV0b0dyaWRHYXAsIDFyZW0pO1xuICAgIGFsaWduLWl0ZW1zOiBzdGFydDtcbiAgXG4gICAgJi0tMSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICB9XG4gIFxuICAgICYtLTIge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuICBcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgICAgfVxuICAgIH1cbiAgXG4gICAgJi0tMyB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnIgMWZyO1xuICBcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgICAgfVxuICAgIH1cbiAgXG4gICAgJi0tNCB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnIgMWZyIDFmcjtcbiAgICAgIGdyaWQtYXV0by1yb3dzOiAxZnI7XG4gIFxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzxtZCcpIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuICAgICAgfVxuICBcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8eHMnKSB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAiLCIvKipcclxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gKiBVbi50aXRsZWRcclxuICogTW9sZWN1bGVzIC0gRW1lcmdlbmN5IE1lc3NhZ2VcclxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBDb25maWdcclxuICoqL1xyXG5Aa2V5ZnJhbWVzIHNsaWRlSW5VcCB7XHJcbiAgMCUge1xyXG4gICAgb3BhY2l0eTogMDtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTtcclxuICB9XHJcbiAgODAlIHtcclxuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wMik7XHJcbiAgfVxyXG4gIDEwMCUge1xyXG4gICAgb3BhY2l0eTogMTtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKSBzY2FsZSgxKTtcclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBTdHlsaW5nXHJcbiAqKi9cclxuLm0tZW1tc2cge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG5cclxuICAmLnByaW1hcnkge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy15ZWxsb3cpO1xyXG4gICAgY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XHJcbiAgfVxyXG4gICYuc2Vjb25kYXJ5IHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XHJcbiAgICBjb2xvcjogI2ZmZjtcclxuICB9XHJcbiAgcGFkZGluZzogMC4yNXJlbSAxcmVtO1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICBtaW4taGVpZ2h0OiA1MnB4O1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cclxuICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xyXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgIHBhZGRpbmc6IDFyZW0gMDtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKCc8eHMnKSB7XHJcbiAgICBwYWRkaW5nOiAxcmVtIDA7XHJcbiAgfVxyXG5cclxuICAmW2RhdGEtc3RhdGU9J3Zpc2libGUnXSB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcclxuICB9XHJcblxyXG4gIGgzIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcclxuICAgIHdpZHRoOiA4NSU7XHJcbiAgfVxyXG5cclxuICBwIHtcclxuICAgIHdpZHRoOiA4NSU7XHJcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcclxuICAgIG1hcmdpbi1yaWdodDogYXV0bztcclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xyXG4gICAgICBtYXJnaW4tbGVmdDogMDtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgnPHh4cycpIHtcclxuICAgICAgbWF4LXdpZHRoOiA4MCU7XHJcbiAgICB9XHJcblxyXG4gICAgYSB7XHJcbiAgICAgICY6aG92ZXIsXHJcbiAgICAgICY6Zm9jdXMge1xyXG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBidXR0b24ge1xyXG4gICAgQGluY2x1ZGUgYnRuUmVzZXQ7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDAuMjVyZW07XHJcbiAgICByaWdodDogMnJlbTtcclxuICAgIGhlaWdodDogNDJweDtcclxuICAgIHdpZHRoOiA0MnB4O1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIHRyYW5zaXRpb246IGFsbCB2YXIoLS10cmFuc2l0aW9uKTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtd2hpdGUpO1xyXG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG5cclxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XHJcbiAgICAgIHJpZ2h0OiAxcmVtO1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIG1lZGlhKCc8eHMnKSB7XHJcbiAgICAgIHJpZ2h0OiAxNXB4O1xyXG4gICAgfVxyXG5cclxuICAgIHN2ZyB7XHJcbiAgICAgIHdpZHRoOiAxNXB4O1xyXG4gICAgfVxyXG5cclxuICAgIHBhdGgge1xyXG4gICAgICBzdHJva2U6IHZhcigtLWMtcHJpbWFyeSk7XHJcbiAgICAgIHRyYW5zaXRpb246IHN0cm9rZSB2YXIoLS10cmFuc2l0aW9uKTtcclxuICAgIH1cclxuXHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcclxuXHJcbiAgICAgIHBhdGgge1xyXG4gICAgICAgIHN0cm9rZTogdmFyKC0tYy13aGl0ZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLyoqXHJcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICogVW4udGl0bGVkXHJcbiAqIE1vbGVjdWxlcyAtIEVudGl0aWVzXHJcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICovXHJcblxyXG5hcnRpY2xlIHtcclxuICAmID4gLm0tZW50aXR5Omxhc3Qtb2YtdHlwZSB7XHJcbiAgICAmLmJnQ29sb3VyIHtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogLTMwcHg7XHJcblxyXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IC0yMHB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4ubS1lbnRpdHkge1xyXG4gIG1hcmdpbjogMCAwIGNsYW1wKDJyZW0sIDV2dywgNXJlbSk7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblxyXG4gIC8vICZfX3RleHQuYmdDb2xvdXIge1xyXG4gIC8vICAgbWFyZ2luOiAwO1xyXG4gIC8vIH1cclxuXHJcbiAgaW1nOm5vdCgucmVzdHJpY3RlZC1oZWlnaHQpIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgfVxyXG5cclxuICAmLS10b3Age1xyXG4gICAgbWFyZ2luLXRvcDogY2xhbXAoMnJlbSwgNXZ3LCA1cmVtKTtcclxuICB9XHJcblxyXG4gICZfX2JvZHksXHJcbiAgJl9fdGV4dCxcclxuICAmX19hY2NvcmRpb24ge1xyXG4gICAgdWwge1xyXG4gICAgICBtYXJnaW4tbGVmdDogdmFyKC0tZ3V0dGVyKTtcclxuXHJcbiAgICAgIGxpIHtcclxuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG5cclxuICAgICAgICAmOjpiZWZvcmUge1xyXG4gICAgICAgICAgY29udGVudDogJyc7XHJcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICAgICAgICBoZWlnaHQ6IDdweDtcclxuICAgICAgICAgIHdpZHRoOiA3cHg7XHJcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgIGxlZnQ6IC0xNXB4O1xyXG4gICAgICAgICAgdG9wOiAxMnB4O1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogY3VycmVudENvbG9yO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGltcG9ydCAnLi9ibG9jay9pbnRybyc7XHJcbiAgQGltcG9ydCAnLi9ibG9jay9pbWFnZSc7XHJcbiAgQGltcG9ydCAnLi9ibG9jay9xdW90ZSc7XHJcbiAgQGltcG9ydCAnLi9ibG9jay9hY2NvcmRpb24nO1xyXG4gIEBpbXBvcnQgJy4vYmxvY2svZ2FsbGVyeSc7XHJcbiAgQGltcG9ydCAnLi9ibG9jay9pbWFnZS10ZXh0JztcclxuICBAaW1wb3J0ICcuL2Jsb2NrL2Rvd25sb2Fkcyc7XHJcbiAgQGltcG9ydCAnLi9ibG9jay9lbWJlZCc7XHJcbiAgQGltcG9ydCAnLi9ibG9jay90YWJsZSc7XHJcbiAgQGltcG9ydCAnLi9ibG9jay9zaWducG9zdCc7XHJcbiAgQGltcG9ydCAnLi9ibG9jay9zaWducG9zdHMnO1xyXG4gIEBpbXBvcnQgJy4vYmxvY2svbGlua2VkLWxvZ29zJztcclxuICBAaW1wb3J0ICcuL2Jsb2NrL3ZpZGVvJztcclxuICBAaW1wb3J0ICcuL2Jsb2NrL3ltYWwnO1xyXG4gIEBpbXBvcnQgJy4vYmxvY2svYmlnLWN0YSc7XHJcbiAgQGltcG9ydCAnLi9ibG9jay9yZWFkbW9yZSc7XHJcbiAgQGltcG9ydCAnLi9ibG9jay9xdWlja2xpbmtzJztcclxuICBAaW1wb3J0ICcuL2Jsb2NrL3NwZWNpYWwtb3B0aW9ucyc7XHJcbiAgQGltcG9ydCAnLi9ibG9jay9wZW9wbGUtcHJvZmlsZXMnO1xyXG4gIEBpbXBvcnQgJy4vYmxvY2svbGlzdGluZyc7XHJcbiAgQGltcG9ydCAnLi9ibG9jay9taW5pbGlzdGluZyc7XHJcbiAgQGltcG9ydCAnLi9ibG9jay9lbmhhbmNlZGV2ZW50bGlzdGluZyc7XHJcbiAgQGltcG9ydCAnLi9ibG9jay9mZWF0dXJlZC1jb250ZW50JztcclxuICBAaW1wb3J0ICcuL2Jsb2NrL2NpdGF0aW9ucyc7XHJcbiAgQGltcG9ydCAnLi9ibG9jay9pbWFnZXpvb20nO1xyXG4gIEBpbXBvcnQgJy4vYmxvY2svZm9ybXMnO1xyXG4gIEBpbXBvcnQgJy4vYmxvY2svc2VhcmNoLXJlc3VsdHMnO1xyXG4gIEBpbXBvcnQgJy4vYmxvY2svZGl2aWRlcic7XHJcbiAgQGltcG9ydCAnLi9ibG9jay9idXktbm93LWJ1dHRvbic7XHJcbiAgQGltcG9ydCAnLi9ibG9jay9jdGFtdWx0aXBsZSc7XHJcblxyXG59XHJcbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBNb2xlY3VsZXMgLSBJbnRyb1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbiZfX2ludHJvIHtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cbiAgJi1ibG9ja19pbWFnZSB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIEltYWdlXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuJl9faW1hZ2Uge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctYm90dG9tOiB2YXIoLS1jYXB0aW9uSGVpZ2h0KTtcblxuICBmaWd1cmUge1xuICAgIHBhZGRpbmc6IDAgdmFyKC0tZ3V0dGVyKTtcbiAgfVxuXG4gIGZpZ2NhcHRpb24ge1xuICAgIHdpZHRoOiB2YXIoLS1jYXB0aW9uV2lkdGgpO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiB2YXIoLS1jYXB0aW9uT2Zmc2V0KTtcbiAgICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1jYXB0aW9uUGFkZGluZyk7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAzMHB4KTtcbiAgfVxuXG4gIGEge1xuICAgIEBpbmNsdWRlIGxpbmtSZXNldDtcbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIFF1b3Rlc1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbi8qKlxuICogQ29uZmlnXG4gKi9cblxuQG1peGluIHJhdGluZygkc3RhcnMpIHtcbiAgJjpudGgtY2hpbGQoLW4gKyAjeyRzdGFyc30pIHtcbiAgICBwYXRoIHtcbiAgICAgIGZpbGw6IHZhcigtLWMtcHJpbWFyeSk7XG4gICAgICBzdHJva2U6IHZhcigtLWMtcHJpbWFyeSk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogU3R5bGVzXG4gKi9cblxuJl9fcXVvdGUge1xuICAtLXN0YXJTaXplOiAxN3B4O1xuXG4gIC5zaG9ydC1xdW90ZSB7XG4gICAgLS1zdGFyU2l6ZTogMjRweDtcblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgYmxvY2txdW90ZSB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB0ZXh0LWFsaWduLWxhc3Q6IGNlbnRlcjtcbiAgICB9XG4gIH1cblxuICBibG9ja3F1b3RlIHtcbiAgICBtYXJnaW46IDAgMCAxcmVtO1xuICB9XG5cbiAgY2l0ZSB7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICB9XG5cbiAgLnJhdGluZyB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgIC5zaG9ydC1xdW90ZSAmIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG4gICAgfVxuXG4gICAgJl9fc3RhciB7XG4gICAgICB3aWR0aDogdmFyKC0tc3RhclNpemUpO1xuICAgICAgaGVpZ2h0OiB2YXIoLS1zdGFyU2l6ZSk7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICAgIHN0cm9rZTogdmFyKC0tYy1wcmltYXJ5KTtcblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBmb3IgJHN0YXJzIGZyb20gMSB0aHJvdWdoIDUge1xuICAgICAgJi0tI3skc3RhcnN9IHtcbiAgICAgICAgLnJhdGluZ19fc3RhciB7XG4gICAgICAgICAgQGluY2x1ZGUgcmF0aW5nKCN7JHN0YXJzfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBNb2xlY3VsZXMgLSBBY2NvcmRpb25zXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuJl9fYWNjb3JkaW9uIHtcbiAgLmFjY29yZGlvbiB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWMtcHJpbWFyeSk7XG4gIH1cbiAgLmFjY29yZGlvbl9faGVhZGVyIHtcbiAgICBAaW5jbHVkZSBsaW5rUmVzZXQ7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXI6IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgdGV4dC1hbGlnbi1sYXN0OiBsZWZ0O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBhZGRpbmc6IDAuNzVyZW0gMDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYy1wcmltYXJ5KTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgdmFyKC0tdHJhbnNpdGlvbik7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgQGluY2x1ZGUgYmctaW1nKGNvbnRhaW4pO1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWcvcGx1cy5zdmcnKTtcbiAgICAgIGhlaWdodDogMTJweDtcbiAgICAgIHdpZHRoOiAxMnB4O1xuICAgICAgbWluLXdpZHRoOiAxMnB4O1xuICAgICAgdHJhbnNpdGlvbjogYWxsIHZhcigtLXRyYW5zaXRpb24pO1xuICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgfVxuXG4gICAgJjpmb2N1cyxcbiAgICAmW2FyaWEtZXhwYW5kZWQ9J3RydWUnXSB7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgICAgIC8vIHBhZGRpbmctcmlnaHQ6IDAuNzVyZW07XG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTBweCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJlthcmlhLWV4cGFuZGVkPSd0cnVlJ106OmFmdGVyIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTBweCk7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltZy9jbG9zZS1hY2NvcmRpb24uc3ZnJyk7XG4gICAgfVxuICB9XG5cbiAgLmFjY29yZGlvbl9fdGl0bGUge1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIC5qcy1hY2NvcmRpb25fX3BhbmVsIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLmFjY29yZGlvbl9fcGFuZWwge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2l0aW9uOiB2aXNpYmlsaXR5IDBzIGVhc2UsIG1heC1oZWlnaHQgMC4ycyBlYXNlLCBvcGFjaXR5IDAuMnMgZWFzZTtcbiAgICBtYXgtaGVpZ2h0OiAxMDAwZW07XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAwcztcblxuICAgICZbYXJpYS1oaWRkZW49J3RydWUnXSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgdHJhbnNpdGlvbi1kZWxheTogMC4ycywgMHMsIDBzO1xuICAgIH1cblxuICAgIHA6Zmlyc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICB9XG5cbiAgICBwOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBNb2xlY3VsZXMgLSBHYWxsZXJ5XG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuJl9fZ2FsbGVyeSB7XG4gIC0tYXV0b0dyaWRNaW46IDIwJTtcbiAgLS1hdXRvR3JpZEdhcDogMnJlbTtcblxuICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgIC0tYXV0b0dyaWRNaW46IDMwJTtcbiAgICAtLWF1dG9HcmlkR2FwOiAxcmVtO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzw1MDBweCcpIHtcbiAgICAtLWF1dG9HcmlkTWluOiAxMDBweDtcbiAgfVxuXG4gIGEge1xuICAgIEBpbmNsdWRlIGxpbmtSZXNldDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgfVxuXG4gIC5hLWF1dG8tZ3JpZCB7XG4gICAgYWxpZ24taXRlbXM6IGVuZDtcbiAgfVxuXG4gIGZpZ3VyZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICBmaWdjYXB0aW9uIHtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnRTbWFsbCk7XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBNb2xlY3VsZXMgLSBJbWFnZSAmIFRleHRcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4ubS1pbWFnZXRleHQge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAyZnI7XG4gIGdhcDogMnJlbTtcblxuICBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgIGdhcDogMXJlbTtcbiAgfVxuXG4gICYtLXJldmVyc2Uge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMmZyIDFmcjtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8eHMnKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICB9XG5cbiAgICAubS1pbWFnZXRleHRfX2NvcHkge1xuICAgICAgb3JkZXI6IC0xO1xuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xuICAgICAgICBvcmRlcjogMTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qIFVuLnRpdGxlZFxuKiBNb2xlY3VsZXMgLSBEb3dubG9hZHNcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKi9cblxuLyoqXG4qIENvbmZpZ1xuKi9cblxuLyoqXG4qIFN0eWxpbmdcbiovXG4mX19kb3dubG9hZHMge1xuICBhIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBNb2xlY3VsZXMgLSBFbWJlZFxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbiZfX2VtYmVkIHtcbiAgaWZyYW1lIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIFRhYmxlc1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbiZfX3RhYmxlIHtcbiAgdGFibGUge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRleHQtYWxpZ24tbGFzdDogbGVmdDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGJvcmRlci1zcGFjaW5nOiAycHg7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiB1bnNldDtcblxuICAgIHRoIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwZTMwMzQ7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIH1cblxuICAgIHRkIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNhNGRiZTg7XG4gICAgICB0cmFuc2l0aW9uOiAwLjJzIHZhcigtLWVhc2luZyk7XG4gICAgfVxuXG4gICAgdGQsXG4gICAgdGgge1xuICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgIH1cblxuICAgIHRyIHtcbiAgICAgICY6aG92ZXIgdGQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgICAgICBjdXJzb3I6IGNyb3NzaGFpcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBNb2xlY3VsZXMgLSBGbGV4aWJsZSBzaWducG9zdFxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbiZfX3NpZ25wb3N0IHtcbiAgJjpsYXN0LW9mLXR5cGUge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICAuc2lnbnBvc3Qge1xuICAgIG1heC13aWR0aDogdmFyKC0tY29udGFpbmVyV2lkdGgpO1xuICAgIG1hcmdpbjogMnJlbSBhdXRvO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcbiAgICBnYXA6IDNyZW07XG4gICAgYWxpZ24taXRlbXM6IHN0YXJ0O1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxsZycpIHtcbiAgICAgIGdhcDogMnJlbTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxcmVtIGF1dG87XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgICYtLXJldmVyc2Uge1xuICAgICAgLnNpZ25wb3N0X19pbWFnZSB7XG4gICAgICAgIG9yZGVyOiAtMTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pbWFnZSB7XG4gICAgICBAaW5jbHVkZSBsaW5rUmVzZXQ7XG5cbiAgICAgIGltZyB7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgdmFyKC0tdHJhbnNpdGlvbik7XG4gICAgICB9XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBvcGFjaXR5OiAxO1xuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgb3BhY2l0eTogMC44NTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZmlndXJlIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgfVxuICAgIH1cblxuICAgICZfX2NvbnRlbnQge1xuICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgIGdhcDogMS41cmVtO1xuICAgICAganVzdGlmeS1pdGVtczogc3RhcnQ7XG5cbiAgICAgIGgyLFxuICAgICAgLmEtbGlua3Mge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9XG5cbiAgICAgIHAge1xuICAgICAgICBtYXgtd2lkdGg6IHZhcigtLWxpbmVMZW5ndGgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIHNpZ25wb3N0c1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbiZfX3NpZ25wb3N0cyB7XG4gIC0tYXV0b0dyaWRNaW46IDIwJTtcbiAgLS1hdXRvR3JpZEdhcDogMnJlbTtcblxuICBwOmxhc3Qtb2YtdHlwZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgfVxuXG4gIC5hLWF1dG8tZ3JpZCB7XG4gICAgbWFyZ2luLXRvcDogMnJlbTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCc8PXNtJykge1xuICAgIC0tYXV0b0dyaWRNaW46IDMwJTtcbiAgICAtLWF1dG9HcmlkR2FwOiAxcmVtO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcbiAgICAtLWF1dG9HcmlkTWluOiA0OCU7XG4gIH1cbn1cblxuJl9fZXh0ZXJuYWxzaWducG9zdHMge1xuICAuby10ZWFzZXJfX3RodW1iIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogTW9sZWN1bGVzIC0gTGlua2VkIGxvZ29zXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuJl9fbGlua2VkbG9nb3Mge1xuICAtLWF1dG9HcmlkTWluOiAxMDBweDtcbiAgLS1hdXRvR3JpZE1heDogMzAlO1xuICAtLWF1dG9HcmlkR2FwOiAycmVtO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc8eHMnKSB7XG4gICAgLS1hdXRvR3JpZE1heDogMWZyO1xuICB9XG5cbiAgYSB7XG4gICAgQGluY2x1ZGUgbGlua1Jlc2V0O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBvcGFjaXR5OiAwLjc7XG4gICAgfVxuICB9XG5cbiAgLmEtYXV0by1ncmlkIHtcbiAgICBhbGlnbi1pdGVtczogZW5kO1xuICAgIGp1c3RpZnktY29udGVudDogc3RhcnQ7XG4gIH1cblxuICAuc2luZ2xlIHtcbiAgICBpbWcge1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogTW9sZWN1bGVzIC0gVmlkZW9cbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4mX192aWRlbyB7XG4gIC0tYXV0b0dyaWRHYXA6IDJyZW07XG5cbiAgQGluY2x1ZGUgbWVkaWEoJz54eHMnKSB7XG4gICAgLS1hdXRvR3JpZE1pbjogMjMwcHg7XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBNb2xlY3VsZXMgLSBZTUFMXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuJl9feW1hbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuXG4gICY6bGFzdC1vZi10eXBlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogTW9sZWN1bGVzIC0gQmlnIENUQVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbiZfX2JpZ2N0YSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1hbGlnbi1sYXN0OiBjZW50ZXI7XG4gIC8vIHBhZGRpbmc6IDNyZW0gMDtcblxuICAvLyBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAvLyAgIHBhZGRpbmc6IDEuNXJlbSAwO1xuICAvLyB9XG5cbiAgLmEtbGlua3Mge1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgYSB7XG4gICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgIH1cbiAgfVxuXG4gIC5oMiB7XG4gICAgcCB7XG4gICAgICBsaW5lLWhlaWdodDogMS41XG4gICAgfVxuICB9XG5cbiAgLmJpZy1idG4ge1xuICAgIEBpbmNsdWRlIGxpbmtSZXNldDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMC41cmVtIDNyZW0gMS41cmVtO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDE7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMS41cmVtO1xuICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgIH1cblxuICAgIHN2ZyB7XG4gICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgd2lkdGg6IDUwcHg7XG4gICAgfVxuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXBpbmspO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgbGVmdDogMDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDM1JSk7XG4gICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB6LWluZGV4OiAtMTtcbiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSB2YXIoLS10cmFuc2l0aW9uKTtcblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDI3JSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBNb2xlY3VsZXMgLSBOZXdzIHRhZ3NcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4mX19yZWFkbW9yZSB7XG4gIC50ZXJtcyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcblxuICAgIGEge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIFF1aWNrIGxpbmtzXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuJl9fcXVpY2tsaW5rcyB7XG4gIG1hcmdpbi10b3A6IC01cmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzxsZycpIHtcbiAgICBtYXJnaW4tdG9wOiAtM3JlbTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCc8bWQnKSB7XG4gICAgbWFyZ2luLXRvcDogLTJyZW07XG4gIH1cblxuICAuYS1jb2xzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbiAgICBwYWRkaW5nLXRvcDogMS4yNXJlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMS44cmVtO1xuICB9XG5cbiAgLmEtbGlua3Mge1xuICAgIG1hcmdpbjogMDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIFNwZWNpYWwgT3B0aW9uc1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbiZfX3NwZWNpYWwtb3B0aW9ucyB7XG4gIGhyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAzcmVtO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbiAgICB9XG4gIH1cblxuICAuYS1hdXRvLWdyaWQge1xuICAgIC0tYXV0b0dyaWRNaW46IDIzJTtcbiAgICAtLWF1dG9HcmlkTWF4OiAxZnI7XG4gICAgLS1hdXRvR3JpZEdhcDogMnJlbTtcblxuICAgIG1hcmdpbi10b3A6IDNyZW07XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgLS1hdXRvR3JpZE1pbjogMjAwcHg7XG4gICAgICAtLWF1dG9HcmlkTWF4OiAxZnI7XG5cbiAgICAgIG1hcmdpbi10b3A6IDEuNXJlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xuICAgICAgLS1hdXRvR3JpZE1pbjogMTUwcHg7XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogTW9sZWN1bGVzIC0gUGVvcGxlIHByb2ZpbGVzXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuJl9fcGVvcGxlcHJvZmlsZXMge1xuICAudGl0bGUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAmLS1ib3JkZXIge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWMtcHJpbWFyeSk7XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1jLXRlYWwpO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtdGVhbCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBNb2xlY3VsZXMgLSBMaXN0aW5nXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuJl9fbGlzdGluZyB7XG4gIC53aGF0cy1vbiB7XG4gICAgbWluLWhlaWdodDogNjB2aDtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIE1pbmkgbGlzdGluZ1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbiZfX21pbmlsaXN0aW5nIHtcbiAgLS1hdXRvR3JpZE1pbjogMjAlO1xuICAtLWF1dG9HcmlkR2FwOiAycmVtO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc8bWQnKSB7XG4gICAgLS1hdXRvR3JpZE1pbjogMzAlO1xuICAgIC0tYXV0b0dyaWRHYXA6IDFyZW07XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgnPD1zbScpIHtcbiAgICAtLWF1dG9HcmlkTWluOiA0OCU7XG4gIH1cblxuICAubGlzdGluZy1oZWFkZXIge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMWZyKTtcbiAgICBnYXA6IDFyZW07XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jLXByaW1hcnkpO1xuICAgIHBhZGRpbmctYm90dG9tOiAycmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPG1kJykge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICBhbGlnbi1zZWxmOiBlbmQ7XG4gICAgICBqdXN0aWZ5LXNlbGY6IGVuZDtcbiAgICB9XG4gIH1cblxuICAvLyAuYS1hdXRvLWdyaWQge1xuICAvLyAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIC8vIH1cbn1cbiIsIi8qKlxyXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAqIFVuLnRpdGxlZFxyXG4gKiBNb2xlY3VsZXMgLSBFbmhhbmNlZCBFdmVudCBsaXN0aW5nXHJcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICovXHJcblxyXG4gJl9fZW5oYW5jZWRldmVudGxpc3Rpbmcge1xyXG4gICAgLS1hdXRvR3JpZE1pbjogMjAlO1xyXG4gICAgLS1hdXRvR3JpZEdhcDogMnJlbTtcclxuICBcclxuICAgIEBpbmNsdWRlIG1lZGlhKCc8bWQnKSB7XHJcbiAgICAgIC0tYXV0b0dyaWRNaW46IDMwJTtcclxuICAgICAgLS1hdXRvR3JpZEdhcDogMXJlbTtcclxuICAgIH1cclxuICBcclxuICAgIEBpbmNsdWRlIG1lZGlhKCc8PXNtJykge1xyXG4gICAgICAtLWF1dG9HcmlkTWluOiA0OCU7XHJcbiAgICB9XHJcbiAgXHJcbiAgICAubGlzdGluZy1oZWFkZXIge1xyXG4gICAgICBkaXNwbGF5OiBncmlkO1xyXG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpO1xyXG4gICAgICBnYXA6IDFyZW07XHJcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcclxuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWMtcHJpbWFyeSk7XHJcbiAgICAgIHBhZGRpbmctYm90dG9tOiAycmVtO1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xyXG4gIFxyXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPG1kJykge1xyXG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xyXG4gICAgICB9XHJcbiAgXHJcbiAgICAgIGEge1xyXG4gICAgICAgIGFsaWduLXNlbGY6IGVuZDtcclxuICAgICAgICBqdXN0aWZ5LXNlbGY6IGVuZDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIFxyXG4gICAgLy8gLmEtYXV0by1ncmlkIHtcclxuICAgIC8vICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIC8vIH1cclxuICB9XHJcbiAgIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIEZlYXR1cmVkIGNvbnRlbnRcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4mX19mZWF0dXJlZGNvbnRlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xuXG4gIC5mZWF0dXJlZCB7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgcGFkZGluZzogMXJlbSAwO1xuICAgIH1cblxuICAgICYtLW11bHRpIHtcbiAgICAgIHBhZGRpbmc6IDJyZW0gMDtcblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuICAgICAgfVxuXG4gICAgICAvLyBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAvLyBwYWRkaW5nLWJvdHRvbTogM3JlbTtcblxuICAgICAgLy8gJjo6YmVmb3JlIHtcbiAgICAgIC8vICAgY29udGVudDogJyc7XG4gICAgICAvLyAgIHdpZHRoOiAxMDAlO1xuICAgICAgLy8gICBoZWlnaHQ6IDgwJTtcbiAgICAgIC8vICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAvLyAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIC8vICAgbGVmdDogMDtcbiAgICAgIC8vICAgYm90dG9tOiAwO1xuICAgICAgLy8gICB6LWluZGV4OiAwO1xuICAgICAgLy8gICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xuXG4gICAgICAvLyAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICAvLyAgICAgaGVpZ2h0OiA5MCU7XG4gICAgICAvLyAgIH1cbiAgICAgIC8vIH1cblxuICAgICAgLy8gLmEtY29scyB7XG4gICAgICAvLyAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIC8vIH1cbiAgICB9XG4gIH1cblxuICAuYS1hdXRvLWdyaWQge1xuICAgIC0tYXV0b0dyaWRHYXA6IDJyZW07XG4gICAgLS1hdXRvR3JpZE1pbjogMjI1cHg7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgLS1hdXRvR3JpZE1pbjogMWZyO1xuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIENpdGF0aW9uc1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbiZfX2NpdGF0aW9ucyB7XG4gIGNpdGUge1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMzBweCAxZnI7XG4gICAgZ2FwOiAwLjVyZW07XG4gICAgYWxpZ24taXRlbXM6IHN0YXJ0O1xuICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgIEBpbmNsdWRlIGxpbmtSZXNldDtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXJlZCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcCBhIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIEltYWdlIFpvb21cbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4mX19pbWFnZXpvb20ge1xuICAuZGVlcHpvb21Db250YWluZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuICB9XG4gIC5uYXZpZ2F0b3Ige1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy1wcmltYXJ5KSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbjogMCAxMHB4IDAgMCAhaW1wb3J0YW50O1xuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogTW9sZWN1bGVzIC0gRm9ybXNcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4mX19mb3JtIHtcbiAgLmdmb3JtX3dyYXBwZXIge1xuICAgIHVsIHtcbiAgICAgIGxpLmdmaWVsZCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDEuNXJlbTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBzZWxlY3QsXG4gICAgaW5wdXQ6bm90KFt0eXBlPSdyYWRpbyddKTpub3QoW3R5cGU9J2NoZWNrYm94J10pOm5vdChbdHlwZT0nc3VibWl0J10pOm5vdChbdHlwZT0nYnV0dG9uJ10pOm5vdChbdHlwZT0naW1hZ2UnXSk6bm90KFt0eXBlPSdmaWxlJ10pIHtcbiAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMXJlbTtcblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmZpZWxkX3N1YmxhYmVsX2Fib3ZlIC5naW5wdXRfY29tcGxleC5naW5wdXRfY29udGFpbmVyIGxhYmVsLFxuICAgIC5maWVsZF9zdWJsYWJlbF9hYm92ZSBkaXZbY2xhc3MqPSdnZmllbGRfZGF0ZV8nXS5naW5wdXRfY29udGFpbmVyIGxhYmVsLFxuICAgIC5maWVsZF9zdWJsYWJlbF9hYm92ZSBkaXZbY2xhc3MqPSdnZmllbGRfdGltZV8nXS5naW5wdXRfY29udGFpbmVyIGxhYmVsLFxuICAgIC5maWVsZF9zdWJsYWJlbF9iZWxvdyAuZ2lucHV0X2NvbXBsZXguZ2lucHV0X2NvbnRhaW5lciBsYWJlbCxcbiAgICAuZmllbGRfc3VibGFiZWxfYmVsb3cgZGl2W2NsYXNzKj0nZ2ZpZWxkX2RhdGVfJ10uZ2lucHV0X2NvbnRhaW5lciBsYWJlbCxcbiAgICAuZmllbGRfc3VibGFiZWxfYmVsb3cgZGl2W2NsYXNzKj0nZ2ZpZWxkX3RpbWVfJ10uZ2lucHV0X2NvbnRhaW5lciBsYWJlbCB7XG4gICAgICBmb250LXNpemU6IHZhcigtLWZvbnRTbWFsbCk7XG4gICAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICAgIG1hcmdpbi10b3A6IDAuMjVyZW07XG4gICAgfVxuXG4gICAgdWwuZ2ZpZWxkX2NoZWNrYm94IGxpIGlucHV0W3R5cGU9J2NoZWNrYm94J10sXG4gICAgdWwuZ2ZpZWxkX3JhZGlvIGxpIGlucHV0W3R5cGU9J3JhZGlvJ10ge1xuICAgICAgaGVpZ2h0OiAyNXB4ICFpbXBvcnRhbnQ7XG4gICAgICB3aWR0aDogMjVweCAhaW1wb3J0YW50O1xuICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgIH1cblxuICAgIC5nZm9ybV9idXR0b24ge1xuICAgICAgLS1idG5CZzogdmFyKC0tYy1wcmltYXJ5KTtcbiAgICAgIC0tYnRuQ29sb3VyOiB2YXIoLS1jLXdoaXRlKTtcbiAgICAgIEBpbmNsdWRlIGJ0bjtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIEBpbmNsdWRlIGJ0bi1ob3ZlcjtcblxuICAgICAgICAtLWJ0bkNvbG91cjogdmFyKC0tYy1wcmltYXJ5KTtcbiAgICAgICAgLS1idG5CZzogdmFyKC0tYy13aGl0ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5nZmllbGRfdGltZV9ob3VyLFxuLmdmaWVsZF90aW1lX21pbnV0ZSAge1xuICBtYXgtd2lkdGg6IDEwMHB4ICFpbXBvcnRhbnQ7XG4gIGlucHV0IHtcbiAgICBtYXgtd2lkdGg6IDEwMHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn0iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogTW9sZWN1bGVzIC0gU2VhcmNoIHJlc3VsdHNcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4mX19zZWFyY2gtcmVzdWx0cyB7XG4gIC5hLWxpc3Rpbmcge1xuICAgIGFsaWduLWl0ZW1zOiBzdGFydDtcbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIERpdmlkZXJcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4mX19kaXZpZGVyIHtcblxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIEJ1eSBOb3cgQnV0dG9uXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuJl9fYnV5bm93YnV0dG9uIHtcbiAgLnByb2R1Y3QtaWRzIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7XG4gICAgZ3JpZC1nYXA6IDIwcHg7XG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgIH1cbiAgICAmLS1pdGVtIHtcbiAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICBwYWRkaW5nOiAxNXB4O1xuICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICY6ZW1wdHkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgICAgaDIge1xuICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgICAgfVxuICAgICAgLnNob3BpZnktYnV5X19wcm9kdWN0X192YXJpYW50LXNlbGVjdG9ycyB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgICAuc2hvcGlmeS1idXlfX29wdGlvbi1zZWxlY3Qtd3JhcHBlciB7XG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICAuc2VlLWNvbGxlY3Rpb24ge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgICBhIHtcbiAgICAgICAgLS1idG5CZzogdmFyKC0tYy1wcmltYXJ5KTtcbiAgICAgICAgLS1idG5Db2xvdXI6IHZhcigtLWMtd2hpdGUpO1xuICAgICAgICBAaW5jbHVkZSBidG47XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgQGluY2x1ZGUgYnRuLWhvdmVyO1xuICAgICAgICB9XG4gICAgICB9XG4gIH1cbn1cblxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIENUQSBNdWx0aXBsZVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbiZfX2N0YW11bHRpcGxlIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcbiAgZ3JpZC1nYXA6IDQwcHg7XG4gIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBNb2xlY3VsZXMgLSBGb3Jtc1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbmlucHV0LFxuaW5wdXRbdHlwZT0ndGV4dCddLFxuaW5wdXRbdHlwZT0ncGFzc3dvcmQnXSxcbmlucHV0W3R5cGU9J2VtYWlsJ10sXG5pbnB1dFt0eXBlPSdzdWJtaXQnXSxcbnRleHRhcmVhLFxuc2VsZWN0IHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnRCb2R5KTtcbiAgY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG4gIHJlc2l6ZTogbm9uZTtcbiAgcGFkZGluZzogMC43NXJlbSAxcmVtO1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDBweDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgb3V0bGluZTogMDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1wcmltYXJ5KTtcbiAgdHJhbnNpdGlvbjogYWxsIHZhcigtLXRyYW5zaXRpb24pO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcblxuICAmOmZvY3VzIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLXNlY29uZGFyeSk7XG4gIH1cbn1cblxuaW5wdXRbdHlwZT0nc2VhcmNoJ10sXG5pbnB1dFt0eXBlPSd0ZXh0J10sXG5pbnB1dFt0eXBlPSdzdWJtaXQnXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLmZvcm0tYWN0aW9ucyBpbnB1dCxcbmlucHV0W3R5cGU9J3N1Ym1pdCddIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG5idXR0b24ge1xuICBhcHBlYXJhbmNlOiBub25lO1xufVxuXG4vLyAvLyBDaGVja2JveGVzXG4vLyBbdHlwZT0nY2hlY2tib3gnXTpjaGVja2VkLFxuLy8gW3R5cGU9J2NoZWNrYm94J106bm90KDpjaGVja2VkKSB7XG4vLyAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbi8vICAgbGVmdDogLTk5OTlweDtcbi8vIH1cbi8vIFt0eXBlPSdjaGVja2JveCddOmNoZWNrZWQgKyBsYWJlbCxcbi8vIFt0eXBlPSdjaGVja2JveCddOm5vdCg6Y2hlY2tlZCkgKyBsYWJlbCB7XG4vLyAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbi8vICAgcGFkZGluZy1sZWZ0OiAyOHB4O1xuLy8gICBjdXJzb3I6IHBvaW50ZXI7XG4vLyAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuLy8gICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4vLyB9XG4vLyBbdHlwZT0nY2hlY2tib3gnXTpjaGVja2VkICsgbGFiZWw6YmVmb3JlLFxuLy8gW3R5cGU9J2NoZWNrYm94J106bm90KDpjaGVja2VkKSArIGxhYmVsOmJlZm9yZSB7XG4vLyAgIGNvbnRlbnQ6ICcnO1xuLy8gICBwb3NpdGlvbjogYWJzb2x1dGU7XG4vLyAgIGxlZnQ6IDA7XG4vLyAgIHRvcDogMDtcbi8vICAgd2lkdGg6IDIwcHg7XG4vLyAgIGhlaWdodDogMjBweDtcbi8vICAgYm9yZGVyLXJhZGl1czogM3B4O1xuLy8gICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbi8vICAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tYy1wcmltYXJ5KTtcbi8vIH1cbi8vIFt0eXBlPSdjaGVja2JveCddOmNoZWNrZWQgKyBsYWJlbDphZnRlcixcbi8vIFt0eXBlPSdjaGVja2JveCddOm5vdCg6Y2hlY2tlZCkgKyBsYWJlbDphZnRlciB7XG4vLyAgIGNvbnRlbnQ6ICdcXDI3MTRcXDAwMjAnO1xuLy8gICBjb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcbi8vICAgcG9zaXRpb246IGFic29sdXRlO1xuLy8gICB0b3A6IDFweDtcbi8vICAgbGVmdDogMy41cHg7XG4vLyAgIHRyYW5zaXRpb246IGFsbCB2YXIoLS10cmFuc2l0aW9uKTtcbi8vIH1cbi8vIFt0eXBlPSdjaGVja2JveCddOm5vdCg6Y2hlY2tlZCkgKyBsYWJlbDphZnRlciB7XG4vLyAgIG9wYWNpdHk6IDA7XG4vLyAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4vLyB9XG4vLyBbdHlwZT0nY2hlY2tib3gnXTpjaGVja2VkICsgbGFiZWw6YWZ0ZXIge1xuLy8gICBvcGFjaXR5OiAxO1xuLy8gICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuLy8gfVxuXG4vLyBbdHlwZT0nY2hlY2tib3gnXTpmb2N1cyArIGxhYmVsOmJlZm9yZSB7XG4vLyAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy1zZWNvbmRhcnkpO1xuLy8gfVxuXG4vLyAvLyBSYWRpb3Ncbi8vIFt0eXBlPSdyYWRpbyddOmNoZWNrZWQsXG4vLyBbdHlwZT0ncmFkaW8nXTpub3QoOmNoZWNrZWQpIHtcbi8vICAgcG9zaXRpb246IGFic29sdXRlO1xuLy8gICBsZWZ0OiAtOTk5OXB4O1xuLy8gfVxuLy8gW3R5cGU9J3JhZGlvJ106Y2hlY2tlZCArIGxhYmVsLFxuLy8gW3R5cGU9J3JhZGlvJ106bm90KDpjaGVja2VkKSArIGxhYmVsIHtcbi8vICAgcG9zaXRpb246IHJlbGF0aXZlO1xuLy8gICBwYWRkaW5nLWxlZnQ6IDI4cHg7XG4vLyAgIGN1cnNvcjogcG9pbnRlcjtcbi8vICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4vLyAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbi8vICAgY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG4vLyB9XG4vLyBbdHlwZT0ncmFkaW8nXTpjaGVja2VkICsgbGFiZWw6YmVmb3JlLFxuLy8gW3R5cGU9J3JhZGlvJ106bm90KDpjaGVja2VkKSArIGxhYmVsOmJlZm9yZSB7XG4vLyAgIGNvbnRlbnQ6ICcnO1xuLy8gICBwb3NpdGlvbjogYWJzb2x1dGU7XG4vLyAgIGxlZnQ6IDA7XG4vLyAgIHRvcDogMDtcbi8vICAgd2lkdGg6IDIwcHg7XG4vLyAgIGhlaWdodDogMjBweDtcbi8vICAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tYy1wcmltYXJ5KTtcbi8vICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbi8vICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy13aGl0ZSk7XG4vLyB9XG4vLyBbdHlwZT0ncmFkaW8nXTpjaGVja2VkICsgbGFiZWw6YWZ0ZXIsXG4vLyBbdHlwZT0ncmFkaW8nXTpub3QoOmNoZWNrZWQpICsgbGFiZWw6YWZ0ZXIge1xuLy8gICBjb250ZW50OiAnJztcbi8vICAgd2lkdGg6IDEycHg7XG4vLyAgIGhlaWdodDogMTJweDtcbi8vICAgYmFja2dyb3VuZDogdmFyKC0tYy1wcmltYXJ5KTtcbi8vICAgcG9zaXRpb246IGFic29sdXRlO1xuLy8gICB0b3A6IDRweDtcbi8vICAgbGVmdDogNHB4O1xuLy8gICBib3JkZXItcmFkaXVzOiAxMDAlO1xuLy8gICB0cmFuc2l0aW9uOiBhbGwgdmFyKC0tdHJhbnNpdGlvbik7XG4vLyB9XG4vLyBbdHlwZT0ncmFkaW8nXTpub3QoOmNoZWNrZWQpICsgbGFiZWw6YWZ0ZXIge1xuLy8gICBvcGFjaXR5OiAwO1xuLy8gICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuLy8gfVxuLy8gW3R5cGU9J3JhZGlvJ106Y2hlY2tlZCArIGxhYmVsOmFmdGVyIHtcbi8vICAgb3BhY2l0eTogMTtcbi8vICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbi8vIH1cbi8vIFt0eXBlPSdyYWRpbyddOmZvY3VzICsgbGFiZWw6YmVmb3JlIHtcbi8vICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXNlY29uZGFyeSk7XG4vLyB9XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogTW9sZWN1bGVzIC0gTWFpbiBuYXZcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4ubS1uYXYge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xuICBnYXA6IDV2dztcblxuICBAaW5jbHVkZSBtZWRpYSgnPG1kJykge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgIGdhcDogMDtcbiAgICBwYWRkaW5nLXRvcDogMnJlbTtcbiAgfVxuXG4gICZfX2NvbHMge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcbiAgICBnYXA6IDNyZW07XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPG1kJykge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgICBnYXA6IDA7XG4gICAgICBwYWRkaW5nOiAwIDV2dztcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXgtd2lkdGg6IDMwMHB4O1xuICAgICAganVzdGlmeS1zZWxmOiBjZW50ZXI7XG5cbiAgICAgICY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAzcmVtO1xuICAgICAgfVxuXG4gICAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzx4eHMnKSB7XG4gICAgICBwYWRkaW5nOiAwIDV2dztcbiAgICB9XG5cbiAgICAuY29sdW1uIHtcbiAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICBnYXA6IDNyZW07XG4gICAgICBhbGlnbi1pdGVtczogc3RhcnQ7XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bWQnKSB7XG4gICAgICAgIGdhcDogMDtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZfX2luZm8ge1xuICAgIEBpbmNsdWRlIG1lZGlhKCc8bWQnKSB7XG4gICAgICAubS1uYXZfX3NvY2lhbCxcbiAgICAgIGgzLFxuICAgICAgcCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgIH1cbiAgICB9XG4gICAgQGluY2x1ZGUgbWVkaWEoJz49c20nLCAnPG1kJykge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcbiAgICB9XG4gIH1cblxuICAmX19tZW51IHtcbiAgICBAaW5jbHVkZSBtZWRpYSgnPG1kJykge1xuICAgICAgb3JkZXI6IC0xO1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcbiAgICAgIGdhcDogMnJlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgICBnYXA6IDA7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAucHJpbWFyeSB7XG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgICBvcmRlcjogMjtcbiAgICAgIH1cblxuICAgICAgYSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLWdyZXkpO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIGNvbG9yOiB2YXIoLS1jLXNlY29uZGFyeSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBhIHtcbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogdmFyKC0tYy1zZWNvbmRhcnkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGgzIHtcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udEJvZHkpO1xuICB9XG5cbiAgYTpub3QoLmEtYnRuKSB7XG4gICAgQGluY2x1ZGUgbGlua1Jlc2V0O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxuXG4gIC5hLWJ0biB7XG4gICAgbWFyZ2luLXRvcDogMS41cmVtO1xuICAgIG1heC13aWR0aDogMzAwcHg7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPG1kJykge1xuICAgICAgbWF4LXdpZHRoOiAzNXZ3O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICBtYXgtd2lkdGg6IDI1MHB4O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8eHMnKSB7XG4gICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgIH1cbiAgfVxuXG4gIG5hdiB7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnRUaXRsZSk7XG4gICAgZm9udC1zaXplOiBjbGFtcCgxLjVyZW0sIDR2dywgMi41cmVtKTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPGxnJykge1xuICAgICAgZm9udC1zaXplOiBjbGFtcCgxLjVyZW0sIDR2dywgMnJlbSk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIEJhbm5lclxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG4ubS1uby1iYW5uZXIge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogNHJlbSAwIDVyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1hbGlnbi1sYXN0OiBjZW50ZXI7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICBwYWRkaW5nOiAzcmVtIDAgNHJlbTtcbiAgfVxuXG4gICYtLW5ld3Mge1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICB9XG5cbiAgJi0tcGFnZSB7XG4gICAgaDEge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cblxuICBwIHtcbiAgICBmb250LXNpemU6IDExMCU7XG4gIH1cblxuICAucHJlLXRpdGxlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gIH1cbn1cblxuLm0tYmFubmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46IDAgMCBjbGFtcCgxLjVyZW0sIDR2dywgM3JlbSk7XG4gIHdpZHRoOiAxMDAlO1xuXG4gICZfX2ltYWdlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGljdHVyZSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cblxuICAmLS1kZWZhdWx0LFxuICAmLS1hbHQge1xuICAgIGltZyB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICBvYmplY3QtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gICAgfVxuICB9XG5cbiAgJi0tZGVmYXVsdCB7XG4gICAgaGVpZ2h0OiBjbGFtcCgyMHZoLCA2MHZ3LCA2MHZoKTtcbiAgfVxuXG4gICYtLWFsdCB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIC5hLWNvbHMge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tLWJhbm5lcl9faW5uZXIge1xuICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDJmcjtcbiAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubS1iYW5uZXJfX2NvcHkge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBwYWRkaW5nOiAycmVtO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgICBvcmRlcjogMTtcbiAgICAgICAgcGFkZGluZzogMXJlbSAxcmVtIDEuNXJlbTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBoMSB7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIGZvbnQtc2l6ZTogY2xhbXAoMnJlbSwgNXZ3LCA0Ljc1cmVtKTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB0ZXh0LWFsaWduLWxhc3Q6IGNlbnRlcjtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbiAgICB9XG5cbiAgICAuaDQge1xuICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAuYS1jb2xzIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuICB9XG5cbiAgJi0tY29sbGVjdGlvbiB7XG4gICAgaGVpZ2h0OiB2YXIoLS12YXJpYWJsZUhlaWdodExpbWl0KTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy13aGl0ZSk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICBhLFxuICAgIHBpY3R1cmUge1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICBpbWcge1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cblxuICAgICZfX2ljb24ge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm90dG9tOiAxcmVtO1xuICAgICAgcmlnaHQ6IDFyZW07XG5cbiAgICAgIHN2ZyB7XG4gICAgICAgIHdpZHRoOiA0MHB4O1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8eHMnKSB7XG4gICAgICAgICAgd2lkdGg6IDI1cHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLS1saXN0aW5nIHtcbiAgICBtYXJnaW46IGNsYW1wKDEuNXJlbSwgNXZ3LCAycmVtKSAwIGNsYW1wKDEuNXJlbSwgNXZ3LCAzcmVtKTtcblxuICAgIGgxIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9XG4gIH1cblxuICBhIHtcbiAgICBAaW5jbHVkZSBsaW5rUmVzZXQ7XG4gIH1cblxuICAucHJlLXRpdGxlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gIH1cblxuICAuYS1pbWFnZS1jcmVkaXQge1xuICAgIHotaW5kZXg6IDU7XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBNb2xlY3VsZXMgLSBTb2NpYWwgbGlua3NcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4vKipcbiAqIFN0eWxpbmdcbiAqL1xuLm0tc29jaWFsLWxpbmtzIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNSwgMWZyKTtcbiAgZ2FwOiAxcmVtO1xuICAvLyBkaXNwbGF5OiBmbGV4O1xuICAvLyBhbGlnbi1pdGVtczogY2VudGVyO1xuICAvLyBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzx4eHMnKSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgMWZyKTtcbiAgfVxuXG4gIC5tLW5hdl9fc29jaWFsICYge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDYsIDFmcik7XG4gIH1cblxuICBhIHtcbiAgICBAaW5jbHVkZSBsaW5rUmVzZXQ7XG4gICAgLy8gbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICBoZWlnaHQ6IDM1cHg7XG4gICAgd2lkdGg6IDM1cHg7XG5cbiAgICAvLyAmOmxhc3QtY2hpbGQge1xuICAgIC8vICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIC8vIH1cblxuICAgIHNwYW4ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB9XG5cbiAgICBzdmcge1xuICAgICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgIHBhdGgge1xuICAgICAgdHJhbnNpdGlvbjogMC4ycyB2YXIoLS10cmFuc2l0aW9uKTtcbiAgICAgIGZpbGw6IHZhcigtLWMtd2hpdGUpO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgcGF0aCB7XG4gICAgICAgIGZpbGw6IHZhcigtLWMtcGluayk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKiBVbi50aXRsZWRcbiogTW9sZWN1bGVzIC0gU3VibmF2XG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cbi8qKlxuKiBDb25maWdcbiovXG5cbi8qKlxuKiBTdHlsaW5nXG4qL1xuXG51bC5tLXN1Ym5hdiB7XG4gIEBpbmNsdWRlIGxpLXJlc2V0O1xuXG4gIHVsIHtcbiAgICBtYXJnaW4tdG9wOiAwLjI1cmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDFyZW07XG4gIH1cblxuICAvLyAuY3VycmVudF9wYWdlX2FuY2VzdG9yID4gYSxcbiAgLy8gLmN1cnJlbnRfcGFnZV9wYXJlbnQgPiBhIHtcbiAgLy8gICBmb250LXdlaWdodDogYm9sZDtcbiAgLy8gfVxuICAvLyBbYXJpYS1jdXJyZW50PSdwYWdlJ10ge1xuICAvLyAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAvLyB9XG5cbiAgYSB7XG4gICAgQGluY2x1ZGUgbGlua1Jlc2V0O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbWluLWhlaWdodDogMjBweDtcblxuICAgIHNwYW4ge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cblxuICAgICZbYXJpYS1jdXJyZW50XSxcbiAgICAmOmhvdmVyIHtcbiAgICAgIC8vIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgY29sb3I6IHZhcigtLWMtcmVkKTtcblxuICAgICAgc3BhbiB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmID4gbGkgPiBhIHtcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udEJvbGQpO1xuICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxufVxuIiwiLyoqXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogVW4udGl0bGVkXG4qIE1vbGVjdWxlcyAtIEludHJvXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cbi8qKlxuKiBDb25maWdcbiovXG5cbi8qKlxuKiBTdHlsaW5nXG4qL1xuLm0taW50cm8ge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiB2YXIoLS1jb250YWluZXJXaWR0aCk7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGp1c3RpZnktY29udGVudDogZW5kO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCB2YXIoLS1jb2xzLTYpKSBtaW5tYXgoMCwgdmFyKC0tY29scy0zKSk7XG4gIG1hcmdpbi10b3A6IDJyZW07XG5cbiAgJi0tYWx0IHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCB2YXIoLS1jb2xzLTMpKSBtaW5tYXgoMCwgdmFyKC0tY29scy02KSk7XG4gICAganVzdGlmeS1jb250ZW50OiBzdGFydDtcbiAgfVxuXG4gICYtLWNvbGxlY3Rpb24ge1xuICAgIG1hcmdpbi10b3A6IDFyZW07XG5cbiAgICAuYS1jb2xzLS1zbSB7XG4gICAgICBwYWRkaW5nLXRvcDogY2xhbXAoMS41cmVtLCA0dncsIDNyZW0pO1xuXG4gICAgICAmID4gLmEtY29scy0tc20ge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCc8bWQnKSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAganVzdGlmeS1pdGVtczogY2VudGVyO1xuXG4gICAgLmEtY29scy0teHMge1xuICAgICAgbWF4LXdpZHRoOiB2YXIoLS1jb2xzLTYpO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgfVxufVxuIiwiLyoqXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogVW4udGl0bGVkXG4qIE1vbGVjdWxlcyAtIEFuY2hvciBuYXZcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKi9cblxuLyoqXG4qIENvbmZpZ1xuKi9cblxuLyoqXG4qIFN0eWxpbmdcbiovXG4ubS1hbmNob3ItbmF2IHtcbiAgJl9fbGlua3Mge1xuICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuXG4gICAgYSB7XG4gICAgICBAaW5jbHVkZSBsaW5rUmVzZXQ7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIEFuY2hvciBzY3JvbGwgcG9zaXRpb24gb2Zmc2V0XG5zcGFuW2RhdGEtYW5jaG9yXSB7XG4gIG1hcmdpbi10b3A6IC01MHB4O1xuICBtYXJnaW4tYm90dG9tOiA1MHB4O1xufVxuIiwiLyoqXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogVW4udGl0bGVkXG4qIE1vbGVjdWxlcyAtIENvdXJzZSBkZXRhaWxzXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cbi8qKlxuKiBDb25maWdcbiovXG5cbi8qKlxuKiBTdHlsaW5nXG4qL1xuLm0tY291cnNlLWRldGFpbHMge1xuICAtLWF1dG9HcmlkTWluOiAxNSU7XG4gIC0tYXV0b0dyaWRHYXA6IDJyZW07XG4gIG1hcmdpbjogM3JlbSAwIDJyZW07XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzxtZCcpIHtcbiAgICBtYXJnaW46IDJyZW0gMCAxcmVtO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAtLWF1dG9HcmlkTWluOiAxNTBweDtcbiAgICAtLWF1dG9HcmlkR2FwOiAxcmVtO1xuICAgIG1hcmdpbi10b3A6IDFyZW07XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgnPHh4cycpIHtcbiAgICAtLWF1dG9HcmlkTWluOiAxZnI7XG4gIH1cblxuICAmX19kZXRhaWwge1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jLXByaW1hcnkpO1xuICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgZm9udC1zaXplOiAxcmVtO1xuXG4gICAgaDMge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qIFVuLnRpdGxlZFxuKiBNb2xlY3VsZXMgLSBQZW9wbGUgc2lkZWJhclxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qL1xuXG4vKipcbiogQ29uZmlnXG4qL1xuXG4vKipcbiogU3R5bGluZ1xuKi9cbi5tLXBlb3BsZS1zaWRlYmFyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAmX19saW5rcyB7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIH1cbiAgfVxuXG4gIGltZyB7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tcGhvdG9PZmZzZXQpO1xuICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIG1heC13aWR0aDogMzMwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPDE2MDBweCcpIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuICB9XG5cbiAgYSB7XG4gICAgQGluY2x1ZGUgbGlua1Jlc2V0O1xuICAgIEBpbmNsdWRlIGJnLWltZygyMHB4KTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWMtcHJpbWFyeSk7XG4gICAgcGFkZGluZzogMC41cmVtIDAgMC41cmVtIDMycHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdCBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWcvbGluay5zdmcnKTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8eHMnKSB7XG4gICAgICBib3JkZXItdG9wOiAwO1xuICAgICAgcGFkZGluZzogMC43NXJlbTtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgbWFyZ2luOiAwLjI1cmVtO1xuXG4gICAgICBzcGFuIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBzdmcge1xuICAgICAganVzdGlmeS1zZWxmOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICBzcGFuIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8eHMnKSB7XG4gICAgICAgIG9wYWNpdHk6IDAuNztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmW2hyZWYqPSdtYWlsdG8nXSB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltZy9lbWFpbC5zdmcnKTtcbiAgICB9XG4gICAgJltocmVmKj0ndGVsJ10ge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWcvcGhvbmUuc3ZnJyk7XG4gICAgfVxuICAgICZbaHJlZio9J3R3aXR0ZXInXSB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltZy90d2l0dGVyLnN2ZycpO1xuICAgIH1cbiAgICAmW2hyZWYqPSdmYWNlYm9vayddIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1nL2ZhY2Vib29rLnN2ZycpO1xuICAgICAgYmFja2dyb3VuZC1zaXplOiBhdXRvIDIwcHg7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1cHggY2VudGVyO1xuICAgIH1cbiAgICAmW2hyZWYqPSdsaW5rZWRpbiddIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1nL2xpbmtlZGluLnN2ZycpO1xuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogVW4udGl0bGVkXG4qIE1vbGVjdWxlcyAtIEhvbWVwYWdlIGJhbm5lclxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qL1xuXG4vKipcbiogQ29uZmlnXG4qL1xuXG5Aa2V5ZnJhbWVzIGJhbm5lckluIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgei1pbmRleDogLTE7XG4gIH1cbiAgMTAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHotaW5kZXg6IDE7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB6LWluZGV4OiAxO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgYmFubmVyT3V0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgei1pbmRleDogMTtcbiAgfVxuICA5MCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgei1pbmRleDogMTtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHotaW5kZXg6IC0xO1xuICB9XG59XG5cbi8qKlxuKiBTdHlsaW5nXG4qL1xuLm0taG9tZXBhZ2UtYmFubmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtaW4taGVpZ2h0OiA2MHZoO1xuICB3aWR0aDogMTAwJTtcblxuICBmaWd1cmUge1xuICAgICYuZGVmYXVsdC1pbWFnZSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHBhZGRpbmctdG9wOiA1Ni4yNSU7XG5cbiAgICAgIGltZyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGEge1xuICAgICAgQGluY2x1ZGUgbGlua1Jlc2V0O1xuICAgIH1cbiAgfVxuXG4gIGltZyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICB9XG5cbiAgJl9fYmxvY2staW1nIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSB2YXIoLS10cmFuc2l0aW9uKTtcbiAgICB6LWluZGV4OiAtMTtcblxuICAgICZbZGF0YS12aXNpYmxlPSd0cnVlJ10ge1xuICAgICAgYW5pbWF0aW9uOiBiYW5uZXJJbiAwLjJzIGVhc2UtaW4tb3V0IGZvcndhcmRzO1xuICAgIH1cbiAgICAmW2RhdGEtdmlzaWJsZT0nZmFsc2UnXSB7XG4gICAgICBhbmltYXRpb246IGJhbm5lck91dCAwLjJzIGVhc2UtaW4tb3V0IGZvcndhcmRzO1xuICAgIH1cbiAgfVxuXG4gICZfX2Jsb2NrcyB7XG4gICAgcGFkZGluZzogMCA1cmVtO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcbiAgICBnYXA6IDAuNXJlbTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8bGcnKSB7XG4gICAgICBwYWRkaW5nOiAwIDMuNXJlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgIH1cbiAgfVxuXG4gICZfX2Jsb2NrIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbiAgICBwYWRkaW5nOiAycmVtO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMjtcbiAgICBtYXJnaW4tdG9wOiAtMTRyZW07XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciB2YXIoLS10cmFuc2l0aW9uKTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8bGcnKSB7XG4gICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgbWFyZ2luLXRvcDogLTVyZW07XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuXG4gICAgLnByZS10aXRsZSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgIC5hLWxpbmtzIHtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgICBhIHtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuYS1idG4ge1xuICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtdGVhbCk7XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtcHVycGxlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qIFVuLnRpdGxlZFxuKiBNb2xlY3VsZXMgLSBFdmVudCBzaWRlYmFyXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cbi8qKlxuKiBDb25maWdcbiovXG5cbi8qKlxuKiBTdHlsaW5nXG4qL1xuLm0tZXZlbnQtc2lkZWJhciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuXG4gIC5wcm9tby1jb3B5IHtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICB9XG5cbiAgLmRldGFpbCB7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWMtcHJpbWFyeSk7XG4gICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcblxuICAgICYtLWJvbGQge1xuICAgICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnRCb2xkKTtcbiAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIH1cblxuICAgICYtLWNvcHkge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcblxuICAgICAgaDIsXG4gICAgICBoMyxcbiAgICAgIGg0IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgfVxuICAgICAgJiA+IHAge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgfVxuICAgIH1cblxuICAgIHN2ZyB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgbWF4LXdpZHRoOiAxNXB4O1xuICAgIH1cblxuICAgIGEge1xuICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKiBVbi50aXRsZWRcbiogTW9sZWN1bGVzIC0gU2VhcmNoIGZvcm1cbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKi9cblxuLyoqXG4qIENvbmZpZ1xuKi9cblxuLyoqXG4qIFN0eWxpbmdcbiovXG4ubS1zZWFyY2gtZm9ybSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gICAgcGFkZGluZy10b3A6IDJyZW07XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgnaGVpZ2h0PDYwMHB4Jykge1xuICAgIG1heC1oZWlnaHQ6IDcwdmg7XG4gIH1cblxuICAmX19yb3cge1xuICAgIG1hcmdpbi1ib3R0b206IDNyZW07XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuICAgIH1cblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuXG4gIGgzIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250Qm9keSk7XG4gICAgZm9udC1zaXplOiAxLjJyZW07XG4gIH1cblxuICAuYS1saW5rcyB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgJi0tYmlnIHtcbiAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8eHhzJykge1xuICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgYSB7XG4gICAgQGluY2x1ZGUgbGlua1Jlc2V0O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAvLyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYy13aGl0ZSk7XG4gICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jLXNlY29uZGFyeSk7XG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLWMtc2Vjb25kYXJ5KTtcbiAgICB9XG4gIH1cblxuICBmb3JtIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYy13aGl0ZSk7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciA3NXB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogMTMwMHB4O1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDUwcHg7XG4gICAgfVxuXG4gICAgaW5wdXQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBjb2xvcjogdmFyKC0tYy13aGl0ZSk7XG4gICAgICAvLyB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBmb250LWZhbWlseTogdmFyKC0tZm9udFRpdGxlKTtcbiAgICAgIGZvbnQtc2l6ZTogM3JlbTtcbiAgICAgIHBhZGRpbmc6IDAuNXJlbSAwIDAuNXJlbSAxcmVtO1xuICAgICAgbWluLXdpZHRoOiAwO1xuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPG1kJykge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgICAgfVxuXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgLy8gYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyLFxuICAgIDo6LW1vei1wbGFjZWhvbGRlcixcbiAgICA6LW1zLWlucHV0LXBsYWNlaG9sZGVyLFxuICAgIDotbW96LXBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiAjODc5Nzk5O1xuICAgICAgb3BhY2l0eTogMC43O1xuICAgIH1cblxuICAgIGJ1dHRvbiB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXRyYW5zaXRpb24pO1xuXG4gICAgICBzdmcge1xuICAgICAgICB3aWR0aDogMzBweDtcbiAgICAgIH1cblxuICAgICAgcGF0aCB7XG4gICAgICAgIHN0cm9rZTogdmFyKC0tYy13aGl0ZSk7XG4gICAgICAgIHRyYW5zaXRpb246IHN0cm9rZSB2YXIoLS10cmFuc2l0aW9uKTtcbiAgICAgIH1cblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuXG4gICAgICAgIHBhdGgge1xuICAgICAgICAgIHN0cm9rZTogdmFyKC0tYy1wcmltYXJ5KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogVW4udGl0bGVkXG4qIE1vbGVjdWxlcyAtIFBlcmZvcm1hbmNlcyBtb2RhbFxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qL1xuXG4vKipcbiogQ29uZmlnXG4qL1xuXG4vKipcbiogU3R5bGluZ1xuKi9cbi5tLXBlcmZvcm1hbmNlcyB7XG4gIC0tbW9kYWxQYWRkaW5nOiA0cmVtO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgLS1tb2RhbFBhZGRpbmc6IDJyZW07XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xuICAgIC0tbW9kYWxQYWRkaW5nOiAxcmVtO1xuICB9XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxNCwgNDgsIDUyLCAwLjkpO1xuXG4gICZfX2lubmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLWdyZXlMaWdodCk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogdmFyKC0tY29udGFpbmVyV2lkdGgpO1xuICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWF4LWhlaWdodDogMTAwdmg7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgaDIge1xuICAgICAgICBtYXJnaW4tdG9wOiAzcmVtO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZfX3BlcmZvcm1hbmNlcyB7XG4gICAgbWFyZ2luOiAycmVtIDAgMDtcbiAgICBwYWRkaW5nOiAwIHZhcigtLW1vZGFsUGFkZGluZyk7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICB9XG4gIH1cblxuICAmX19wZXJmb3JtYW5jZSB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgxNTBweCwgYXV0bykgMWZyIG1pbm1heCgyMDBweCwgYXV0byk7XG4gICAgZ2FwOiAycmVtO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nOiAwLjc1cmVtIDA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYy1wcmltYXJ5KTtcbiAgICB0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uKTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgxNTBweCwgYXV0bykgMWZyO1xuICAgICAgZ2FwOiAxcmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8eHMnKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICAgIGdhcDogMC41cmVtO1xuICAgIH1cblxuICAgICY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYy1wcmltYXJ5KTtcbiAgICB9XG5cbiAgICB0aW1lIHtcbiAgICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPGxnJykge1xuICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc+eHMnLCAnPHNtJykge1xuICAgICAgICAmOm50aC1jaGlsZCgyKSB7XG4gICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAuYS1idG4ge1xuICAgICAganVzdGlmeS1zZWxmOiBlbmQ7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPnhzJywgJzxzbScpIHtcbiAgICAgICAgZ3JpZC1jb2x1bW46IHNwYW4gMjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOjpiZWZvcmUsXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB3aWR0aDogdmFyKC0tbW9kYWxQYWRkaW5nKTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gICAgfVxuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGxlZnQ6IGNhbGModmFyKC0tbW9kYWxQYWRkaW5nKSAqIC0xKTtcbiAgICB9XG5cbiAgICAmOjphZnRlciB7XG4gICAgICByaWdodDogY2FsYyh2YXIoLS1tb2RhbFBhZGRpbmcpICogLTEpO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy15ZWxsb3cpO1xuICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qIFVuLnRpdGxlZFxuKiBNb2xlY3VsZXMgLSBHYWxsZXJ5XG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cbi8qKlxuKiBDb25maWdcbiovXG5cbi8qKlxuKiBTdHlsaW5nXG4qL1xuLm0tZ2FsbGVyeSB7XG4gIC5wc3dwX19idXR0b24ge1xuICAgIHdpZHRoOiA0NHB4O1xuICAgIGhlaWdodDogNDRweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBib3JkZXI6IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIG9wYWNpdHk6IDAuNzU7XG4gICAgdHJhbnNpdGlvbjogYWxsIHZhcigtLXRyYW5zaXRpb24pO1xuICB9XG4gIC5wc3dwX19idXR0b246Zm9jdXMsXG4gIC5wc3dwX19idXR0b246aG92ZXIge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgLnBzd3BfX2J1dHRvbjphY3RpdmUge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG4gIC5wc3dwX19idXR0b246Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAwO1xuICB9XG5cbiAgLyogcHN3cF9fdWktLW92ZXItY2xvc2UgY2xhc3MgaXQgYWRkZWQgd2hlbiBtb3VzZSBpcyBvdmVyIGVsZW1lbnQgdGhhdCBzaG91bGQgY2xvc2UgZ2FsbGVyeSAqL1xuICAucHN3cF9fdWktLW92ZXItY2xvc2UgLnBzd3BfX2J1dHRvbi0tY2xvc2Uge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAucHN3cF9fYnV0dG9uLFxuICAucHN3cF9fYnV0dG9uLS1hcnJvdy0tbGVmdDpiZWZvcmUsXG4gIC5wc3dwX19idXR0b24tLWFycm93LS1yaWdodDpiZWZvcmUge1xuICAgIGJhY2tncm91bmQ6IHVybCgnLi4vaW1nL2RlZmF1bHQtc2tpbi5wbmcnKSAwIDAgbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogMjY0cHggODhweDtcbiAgICB3aWR0aDogNDRweDtcbiAgICBoZWlnaHQ6IDQ0cHg7XG4gIH1cblxuICBAbWVkaWEgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMS4xKSxcbiAgICAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjA5Mzc1KSxcbiAgICAobWluLXJlc29sdXRpb246IDEwNWRwaSksXG4gICAgKG1pbi1yZXNvbHV0aW9uOiAxLjFkcHB4KSB7XG4gICAgLyogU2VydmUgU1ZHIHNwcml0ZSBpZiBicm93c2VyIHN1cHBvcnRzIFNWRyBhbmQgcmVzb2x1dGlvbiBpcyBtb3JlIHRoYW4gMTA1ZHBpICovXG4gICAgLnBzd3AtLXN2ZyAucHN3cF9fYnV0dG9uLFxuICAgIC5wc3dwLS1zdmcgLnBzd3BfX2J1dHRvbi0tYXJyb3ctLWxlZnQ6YmVmb3JlLFxuICAgIC5wc3dwLS1zdmcgLnBzd3BfX2J1dHRvbi0tYXJyb3ctLXJpZ2h0OmJlZm9yZSB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltZy9kZWZhdWx0LXNraW4uc3ZnJyk7XG4gICAgfVxuICAgIC5wc3dwLS1zdmcgLnBzd3BfX2J1dHRvbi0tYXJyb3ctLWxlZnQsXG4gICAgLnBzd3AtLXN2ZyAucHN3cF9fYnV0dG9uLS1hcnJvdy0tcmlnaHQge1xuICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICB9XG4gIH1cblxuICAucHN3cF9fYnV0dG9uLS1jbG9zZSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtNDRweDtcbiAgfVxuXG4gIC5wc3dwX19idXR0b24tLXNoYXJlIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDRweCAtNDRweDtcbiAgfVxuXG4gIC5wc3dwX19idXR0b24tLWZzIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLnBzd3AtLXN1cHBvcnRzLWZzIC5wc3dwX19idXR0b24tLWZzIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIC5wc3dwLS1mcyAucHN3cF9fYnV0dG9uLS1mcyB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQ0cHggMDtcbiAgfVxuXG4gIC5wc3dwX19idXR0b24tLXpvb20ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTg4cHggMDtcbiAgfVxuXG4gIC5wc3dwLS16b29tLWFsbG93ZWQgLnBzd3BfX2J1dHRvbi0tem9vbSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAucHN3cC0tem9vbWVkLWluIC5wc3dwX19idXR0b24tLXpvb20ge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IC0xMzJweCAwO1xuICB9XG5cbiAgLyogbm8gYXJyb3dzIG9uIHRvdWNoIHNjcmVlbnMgKi9cbiAgLnBzd3AtLXRvdWNoIC5wc3dwX19idXR0b24tLWFycm93LS1sZWZ0LFxuICAucHN3cC0tdG91Y2ggLnBzd3BfX2J1dHRvbi0tYXJyb3ctLXJpZ2h0IHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIH1cblxuICAvKlxuICAgIEFycm93IGJ1dHRvbnMgaGl0IGFyZWFcbiAgICAoaWNvbiBpcyBhZGRlZCB0byA6YmVmb3JlIHBzZXVkby1lbGVtZW50KVxuICAqL1xuICAucHN3cF9fYnV0dG9uLS1hcnJvdy0tbGVmdCxcbiAgLnBzd3BfX2J1dHRvbi0tYXJyb3ctLXJpZ2h0IHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIHRvcDogNTAlO1xuICAgIG1hcmdpbi10b3A6IC01MHB4O1xuICAgIHdpZHRoOiA3MHB4O1xuICAgIGhlaWdodDogMTAwcHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICB9XG5cbiAgLnBzd3BfX2J1dHRvbi0tYXJyb3ctLWxlZnQge1xuICAgIGxlZnQ6IDA7XG4gIH1cblxuICAucHN3cF9fYnV0dG9uLS1hcnJvdy0tcmlnaHQge1xuICAgIHJpZ2h0OiAwO1xuICB9XG5cbiAgLnBzd3BfX2J1dHRvbi0tYXJyb3ctLWxlZnQ6YmVmb3JlLFxuICAucHN3cF9fYnV0dG9uLS1hcnJvdy0tcmlnaHQ6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICB0b3A6IDM1cHg7XG4gICAgLy8gYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjMpO1xuICAgIGhlaWdodDogMzBweDtcbiAgICB3aWR0aDogMzJweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIH1cblxuICAucHN3cF9fYnV0dG9uLS1hcnJvdy0tbGVmdDpiZWZvcmUge1xuICAgIGxlZnQ6IDZweDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTM4cHggLTQ0cHg7XG4gIH1cblxuICAucHN3cF9fYnV0dG9uLS1hcnJvdy0tcmlnaHQ6YmVmb3JlIHtcbiAgICByaWdodDogNnB4O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IC05NHB4IC00NHB4O1xuICB9XG5cbiAgLypcbiAgXG4gICAgMi4gU2hhcmUgbW9kYWwvcG9wdXAgYW5kIGxpbmtzXG4gIFxuICAgKi9cbiAgLnBzd3BfX2NvdW50ZXIsXG4gIC5wc3dwX19zaGFyZS1tb2RhbCB7XG4gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgfVxuXG4gIC5wc3dwX19zaGFyZS1tb2RhbCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjUpO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBwYWRkaW5nOiAxMHB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAxNjAwO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDAuMjVzIGVhc2Utb3V0O1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4yNXMgZWFzZS1vdXQ7XG4gICAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIHdpbGwtY2hhbmdlOiBvcGFjaXR5O1xuICB9XG5cbiAgLnBzd3BfX3NoYXJlLW1vZGFsLS1oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAucHN3cF9fc2hhcmUtdG9vbHRpcCB7XG4gICAgei1pbmRleDogMTYyMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy13aGl0ZSk7XG4gICAgdG9wOiA1NnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogYXV0bztcbiAgICByaWdodDogNDRweDtcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMnB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMjUpO1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMjUpO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDZweCk7XG4gICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSg2cHgpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg2cHgpO1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gMC4yNXM7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMjVzO1xuICAgIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xuICB9XG4gIC5wc3dwX19zaGFyZS10b29sdGlwIGEge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDhweCAxMnB4O1xuICAgIGNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gIH1cbiAgLnBzd3BfX3NoYXJlLXRvb2x0aXAgYTpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xuICB9XG4gIC5wc3dwX19zaGFyZS10b29sdGlwIGE6Zmlyc3QtY2hpbGQge1xuICAgIC8qIHJvdW5kIGNvcm5lcnMgb24gdGhlIGZpcnN0L2xhc3QgbGlzdCBpdGVtICovXG4gICAgYm9yZGVyLXJhZGl1czogMnB4IDJweCAwIDA7XG4gIH1cbiAgLnBzd3BfX3NoYXJlLXRvb2x0aXAgYTpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgMnB4IDJweDtcbiAgfVxuXG4gIC5wc3dwX19zaGFyZS1tb2RhbC0tZmFkZS1pbiB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICAucHN3cF9fc2hhcmUtbW9kYWwtLWZhZGUtaW4gLnBzd3BfX3NoYXJlLXRvb2x0aXAge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB9XG5cbiAgLyogaW5jcmVhc2Ugc2l6ZSBvZiBzaGFyZSBsaW5rcyBvbiB0b3VjaCBkZXZpY2VzICovXG4gIC5wc3dwLS10b3VjaCAucHN3cF9fc2hhcmUtdG9vbHRpcCBhIHtcbiAgICBwYWRkaW5nOiAxNnB4IDEycHg7XG4gIH1cblxuICBhLnBzd3BfX3NoYXJlLS1mYWNlYm9vazpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAtMTJweDtcbiAgICByaWdodDogMTVweDtcbiAgICBib3JkZXI6IDZweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbiAgICAtd2Via2l0LXBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIC1tb3otcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cblxuICBhLnBzd3BfX3NoYXJlLS1mYWNlYm9vazpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogIzNlNWM5YTtcbiAgICBjb2xvcjogdmFyKC0tYy13aGl0ZSk7XG4gIH1cbiAgYS5wc3dwX19zaGFyZS0tZmFjZWJvb2s6aG92ZXI6YmVmb3JlIHtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiAjM2U1YzlhO1xuICB9XG5cbiAgYS5wc3dwX19zaGFyZS0tdHdpdHRlcjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogIzU1YWNlZTtcbiAgICBjb2xvcjogdmFyKC0tYy13aGl0ZSk7XG4gIH1cblxuICBhLnBzd3BfX3NoYXJlLS1waW50ZXJlc3Q6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICNjY2M7XG4gICAgY29sb3I6ICNjZTI3MmQ7XG4gIH1cblxuICBhLnBzd3BfX3NoYXJlLS1kb3dubG9hZDpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2RkZDtcbiAgfVxuXG4gIC8qXG4gIFxuICAgIDMuIEluZGV4IGluZGljYXRvciAoXCIxIG9mIFhcIiBjb3VudGVyKVxuICBcbiAgICovXG4gIC5wc3dwX19jb3VudGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDA7XG4gICAgaGVpZ2h0OiA0NHB4O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBsaW5lLWhlaWdodDogNDRweDtcbiAgICBjb2xvcjogdmFyKC0tYy13aGl0ZSk7XG4gICAgb3BhY2l0eTogMC43NTtcbiAgICBwYWRkaW5nOiAwIDEwcHg7XG4gIH1cblxuICAvKlxuICAgIFxuICAgIDQuIENhcHRpb25cbiAgXG4gICAqL1xuICAucHN3cF9fY2FwdGlvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDQ0cHg7XG4gIH1cbiAgLnBzd3BfX2NhcHRpb24gc21hbGwge1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBjb2xvcjogI2JiYjtcbiAgfVxuXG4gIC5wc3dwX19jYXB0aW9uX19jZW50ZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXgtd2lkdGg6IDcwMHB4O1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICBjb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcbiAgfVxuXG4gIC5wc3dwX19jYXB0aW9uLS1lbXB0eSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC8qIEZha2UgY2FwdGlvbiBlbGVtZW50LCB1c2VkIHRvIGNhbGN1bGF0ZSBoZWlnaHQgb2YgbmV4dC9wcmV2IGltYWdlICovXG4gIC5wc3dwX19jYXB0aW9uLS1mYWtlIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIH1cblxuICAvKlxuICBcbiAgICA1LiBMb2FkaW5nIGluZGljYXRvciAocHJlbG9hZGVyKVxuICBcbiAgICBZb3UgY2FuIHBsYXkgd2l0aCBpdCBoZXJlIC0gaHR0cDovL2NvZGVwZW4uaW8vZGltc2VtZW5vdi9wZW4veXlCV29SXG4gIFxuICAgKi9cbiAgLnBzd3BfX3ByZWxvYWRlciB7XG4gICAgd2lkdGg6IDQ0cHg7XG4gICAgaGVpZ2h0OiA0NHB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogNTAlO1xuICAgIG1hcmdpbi1sZWZ0OiAtMjJweDtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAwLjI1cyBlYXNlLW91dDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMjVzIGVhc2Utb3V0O1xuICAgIHdpbGwtY2hhbmdlOiBvcGFjaXR5O1xuICAgIGRpcmVjdGlvbjogbHRyO1xuICB9XG5cbiAgLnBzd3BfX3ByZWxvYWRlcl9faWNuIHtcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgbWFyZ2luOiAxMnB4O1xuICB9XG5cbiAgLnBzd3BfX3ByZWxvYWRlci0tYWN0aXZlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIC5wc3dwX19wcmVsb2FkZXItLWFjdGl2ZSAucHN3cF9fcHJlbG9hZGVyX19pY24ge1xuICAgIC8qIFdlIHVzZSAuZ2lmIGluIGJyb3dzZXJzIHRoYXQgZG9uJ3Qgc3VwcG9ydCBDU1MgYW5pbWF0aW9uICovXG4gICAgYmFja2dyb3VuZDogdXJsKC4uL2ltZy9wcmVsb2FkZXIuZ2lmKSAwIDAgbm8tcmVwZWF0O1xuICB9XG5cbiAgLnBzd3AtLWNzc19hbmltYXRpb24gLnBzd3BfX3ByZWxvYWRlci0tYWN0aXZlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIC5wc3dwLS1jc3NfYW5pbWF0aW9uIC5wc3dwX19wcmVsb2FkZXItLWFjdGl2ZSAucHN3cF9fcHJlbG9hZGVyX19pY24ge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uOiBjbG9ja3dpc2UgNTAwbXMgbGluZWFyIGluZmluaXRlO1xuICAgIGFuaW1hdGlvbjogY2xvY2t3aXNlIDUwMG1zIGxpbmVhciBpbmZpbml0ZTtcbiAgfVxuICAucHN3cC0tY3NzX2FuaW1hdGlvbiAucHN3cF9fcHJlbG9hZGVyLS1hY3RpdmUgLnBzd3BfX3ByZWxvYWRlcl9fZG9udXQge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uOiBkb251dC1yb3RhdGUgMTAwMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMjIsIDEpXG4gICAgICBpbmZpbml0ZTtcbiAgICBhbmltYXRpb246IGRvbnV0LXJvdGF0ZSAxMDAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yMiwgMSkgaW5maW5pdGU7XG4gIH1cblxuICAucHN3cC0tY3NzX2FuaW1hdGlvbiAucHN3cF9fcHJlbG9hZGVyX19pY24ge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgb3BhY2l0eTogMC43NTtcbiAgICB3aWR0aDogMTRweDtcbiAgICBoZWlnaHQ6IDE0cHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDE1cHg7XG4gICAgdG9wOiAxNXB4O1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIC5wc3dwLS1jc3NfYW5pbWF0aW9uIC5wc3dwX19wcmVsb2FkZXJfX2N1dCB7XG4gICAgLyogXG4gICAgICAgIFRoZSBpZGVhIG9mIGFuaW1hdGluZyBpbm5lciBjaXJjbGUgaXMgYmFzZWQgb24gUG9seW1lciAoXCJtYXRlcmlhbFwiKSBsb2FkaW5nIGluZGljYXRvciBcbiAgICAgICAgIGJ5IEtlYW51IExlZSBodHRwczovL2Jsb2cua2VhbnVsZWUuY29tLzIwMTQvMTAvMjAvdGhlLXRhbGUtb2YtdGhyZWUtc3Bpbm5lcnMuaHRtbFxuICAgICAgKi9cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDdweDtcbiAgICBoZWlnaHQ6IDE0cHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuXG4gIC5wc3dwLS1jc3NfYW5pbWF0aW9uIC5wc3dwX19wcmVsb2FkZXJfX2RvbnV0IHtcbiAgICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB3aWR0aDogMTRweDtcbiAgICBoZWlnaHQ6IDE0cHg7XG4gICAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tYy13aGl0ZSk7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgICAucHN3cF9fcHJlbG9hZGVyIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGxlZnQ6IGF1dG87XG4gICAgICB0b3A6IGF1dG87XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxuICB9XG5cbiAgQC13ZWJraXQta2V5ZnJhbWVzIGNsb2Nrd2lzZSB7XG4gICAgMCUge1xuICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIH1cbiAgICAxMDAlIHtcbiAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgfVxuICB9XG5cbiAgQGtleWZyYW1lcyBjbG9ja3dpc2Uge1xuICAgIDAlIHtcbiAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgIH1cbiAgfVxuXG4gIEAtd2Via2l0LWtleWZyYW1lcyBkb251dC1yb3RhdGUge1xuICAgIDAlIHtcbiAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgICB9XG4gICAgNTAlIHtcbiAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoLTE0MGRlZyk7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTQwZGVnKTtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDApO1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gICAgfVxuICB9XG5cbiAgQGtleWZyYW1lcyBkb251dC1yb3RhdGUge1xuICAgIDAlIHtcbiAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgICB9XG4gICAgNTAlIHtcbiAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoLTE0MGRlZyk7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTQwZGVnKTtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDApO1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gICAgfVxuICB9XG5cbiAgLypcbiAgICBcbiAgICA2LiBBZGRpdGlvbmFsIHN0eWxlc1xuICBcbiAgICovXG4gIC8qIHJvb3QgZWxlbWVudCBvZiBVSSAqL1xuICAucHN3cF9fdWkge1xuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGF1dG87XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHotaW5kZXg6IDE1NTA7XG4gIH1cblxuICAvKiB0b3AgYmxhY2sgYmFyIHdpdGggYnV0dG9ucyBhbmQgXCIxIG9mIFhcIiBpbmRpY2F0b3IgKi9cbiAgLnBzd3BfX3RvcC1iYXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMDtcbiAgICBoZWlnaHQ6IDQ0cHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAucHN3cF9fY2FwdGlvbixcbiAgLnBzd3BfX3RvcC1iYXIsXG4gIC5wc3dwLS1oYXNfbW91c2UgLnBzd3BfX2J1dHRvbi0tYXJyb3ctLWxlZnQsXG4gIC5wc3dwLS1oYXNfbW91c2UgLnBzd3BfX2J1dHRvbi0tYXJyb3ctLXJpZ2h0IHtcbiAgICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgd2lsbC1jaGFuZ2U6IG9wYWNpdHk7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDMzM21zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMjIsIDEpO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMzMzbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yMiwgMSk7XG4gIH1cblxuICAvKiBwc3dwLS1oYXNfbW91c2UgY2xhc3MgaXMgYWRkZWQgb25seSB3aGVuIHR3byBzdWJzZXF1ZW50IG1vdXNlbW92ZSBldmVudHMgb2NjdXIgKi9cbiAgLnBzd3AtLWhhc19tb3VzZSAucHN3cF9fYnV0dG9uLS1hcnJvdy0tbGVmdCxcbiAgLnBzd3AtLWhhc19tb3VzZSAucHN3cF9fYnV0dG9uLS1hcnJvdy0tcmlnaHQge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIH1cblxuICAucHN3cF9fdG9wLWJhcixcbiAgLnBzd3BfX2NhcHRpb24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgfVxuXG4gIC8qIHBzd3BfX3VpLS1maXQgY2xhc3MgaXMgYWRkZWQgd2hlbiBtYWluIGltYWdlIFwiZml0c1wiIGJldHdlZW4gdG9wIGJhciBhbmQgYm90dG9tIGJhciAoY2FwdGlvbikgKi9cbiAgLnBzd3BfX3VpLS1maXQgLnBzd3BfX3RvcC1iYXIsXG4gIC5wc3dwX191aS0tZml0IC5wc3dwX19jYXB0aW9uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCk7XG4gIH1cblxuICAvKiBwc3dwX191aS0taWRsZSBjbGFzcyBpcyBhZGRlZCB3aGVuIG1vdXNlIGlzbid0IG1vdmluZyBmb3Igc2V2ZXJhbCBzZWNvbmRzIChKUyBvcHRpb24gdGltZVRvSWRsZSkgKi9cbiAgLnBzd3BfX3VpLS1pZGxlIC5wc3dwX190b3AtYmFyIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgLnBzd3BfX3VpLS1pZGxlIC5wc3dwX19idXR0b24tLWFycm93LS1sZWZ0LFxuICAucHN3cF9fdWktLWlkbGUgLnBzd3BfX2J1dHRvbi0tYXJyb3ctLXJpZ2h0IHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgLypcbiAgICBwc3dwX191aS0taGlkZGVuIGNsYXNzIGlzIGFkZGVkIHdoZW4gY29udHJvbHMgYXJlIGhpZGRlblxuICAgIGUuZy4gd2hlbiB1c2VyIHRhcHMgdG8gdG9nZ2xlIHZpc2liaWxpdHkgb2YgY29udHJvbHNcbiAgKi9cbiAgLnBzd3BfX3VpLS1oaWRkZW4gLnBzd3BfX3RvcC1iYXIsXG4gIC5wc3dwX191aS0taGlkZGVuIC5wc3dwX19jYXB0aW9uLFxuICAucHN3cF9fdWktLWhpZGRlbiAucHN3cF9fYnV0dG9uLS1hcnJvdy0tbGVmdCxcbiAgLnBzd3BfX3VpLS1oaWRkZW4gLnBzd3BfX2J1dHRvbi0tYXJyb3ctLXJpZ2h0IHtcbiAgICAvKiBGb3JjZSBwYWludCAmIGNyZWF0ZSBjb21wb3NpdGlvbiBsYXllciBmb3IgY29udHJvbHMuICovXG4gICAgb3BhY2l0eTogMC4wMDE7XG4gIH1cblxuICAvKiBwc3dwX191aS0tb25lLXNsaWRlIGNsYXNzIGlzIGFkZGVkIHdoZW4gdGhlcmUgaXMganVzdCBvbmUgaXRlbSBpbiBnYWxsZXJ5ICovXG4gIC5wc3dwX191aS0tb25lLXNsaWRlIC5wc3dwX19idXR0b24tLWFycm93LS1sZWZ0LFxuICAucHN3cF9fdWktLW9uZS1zbGlkZSAucHN3cF9fYnV0dG9uLS1hcnJvdy0tcmlnaHQsXG4gIC5wc3dwX191aS0tb25lLXNsaWRlIC5wc3dwX19jb3VudGVyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLnBzd3BfX2VsZW1lbnQtLWRpc2FibGVkIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cblxuICAucHN3cC0tbWluaW1hbC0tZGFyayAucHN3cF9fdG9wLWJhciB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgfVxuXG4gIC5wc3dwX196b29tLXdyYXAsXG4gIC5wc3dwX19jb250YWluZXIsXG4gIC5wc3dwX19pdGVtIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbiAgfVxuXG4gIC5wc3dwX19idXR0b24ge1xuICAgIGNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWZlZmVmO1xuICAgIH1cbiAgfVxuXG4gIC5wc3dwX19jb3VudGVyIHtcbiAgICBjb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcbiAgfVxuXG4gIC5wc3dwLS16b29tZWQtaW4ge1xuICAgIC5wc3dwX19jYXB0aW9uIHtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKiBVbi50aXRsZWRcbiogTW9sZWN1bGVzIC0gVG9nZ2xlIHN1Ym5hdlxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qL1xuXG4vKipcbiogQ29uZmlnXG4qL1xuXG4vKipcbiogU3R5bGluZ1xuKi9cbi5tLXRvZ2dsZS1zdWJuYXYge1xuICAmW2RhdGEtaXNPcGVuPSdmYWxzZSddIHtcbiAgICBidXR0b246YWZ0ZXIge1xuICAgICAgY29udGVudDogJysnO1xuICAgIH1cblxuICAgICYgPiBkaXYge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICBidXR0b24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgY29udGVudDogJ1xcMjAxNCc7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSB2YXIoLS10cmFuc2l0aW9uKTtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMHB4KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qIFVuLnRpdGxlZFxuKiBNb2xlY3VsZXMgLSBTdWJuYXYgY29udGFpbmVyXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cbi8qKlxuKiBDb25maWdcbiovXG5cbi8qKlxuKiBTdHlsaW5nXG4qL1xuLm0tc3VibmF2LWNvbnRhaW5lciB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jLXByaW1hcnkpO1xuXG4gIC5tLXN1Ym5hdiB7XG4gICAgbWFyZ2luLXRvcDogMS41cmVtO1xuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogT3JnYW5pc21zIC0gSGVhZGVyXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuLm8taGVhZGVyIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMWZyKTtcbiAganVzdGlmeS1pdGVtczogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nOiAxcmVtIDJyZW07XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzwxMTAwcHgnKSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcbiAgICBqdXN0aWZ5LWl0ZW1zOiBzdGFydDtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgcGFkZGluZzogMXJlbTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCc8eHMnKSB7XG4gICAgcGFkZGluZzogMC41cmVtIDE1cHg7XG4gIH1cblxuICAmX19uYXYge1xuICAgIGp1c3RpZnktc2VsZjogc3RhcnQ7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPDExMDBweCcpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgfVxuXG4gICAgdWwge1xuICAgICAgQGluY2x1ZGUgbGktcmVzZXQ7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgIEBpbmNsdWRlIGxpbmtSZXNldDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIG1hcmdpbi1yaWdodDogMS4yNXJlbTtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZfX2xvZ28ge1xuICAgIEBpbmNsdWRlIGxpbmtSZXNldDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgc3ZnIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgbWF4LXdpZHRoOiAyNDBweDtcbiAgICB9XG5cbiAgICBwYXRoIHtcbiAgICAgIHRyYW5zaXRpb246IGZpbGwgdmFyKC0tdHJhbnNpdGlvbik7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICBwYXRoIHtcbiAgICAgICAgZmlsbDogdmFyKC0tYy1yZWQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZfX2J1dHRvbnMge1xuICAgIGp1c3RpZnktc2VsZjogZW5kO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ2FwOiAwLjVyZW07XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgMWZyKTtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcbiAgICAgIGdhcDogMDtcbiAgICB9XG5cbiAgICBidXR0b24sXG4gICAgYSB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgaGVpZ2h0OiA0MnB4O1xuICAgICAgd2lkdGg6IDQycHg7XG4gICAgICBwYWRkaW5nOiAwIDAuNXJlbTtcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tdHJhbnNpdGlvbik7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcblxuICAgICAgc3ZnIHtcbiAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgIH1cbiAgICAgICYudGlja2V0LWljb24ge1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBwYXRoIHtcbiAgICAgICAgICAgIHN0cm9rZTogbm9uZTtcbiAgICAgICAgICAgIGZpbGw6ICB2YXIoLS1jLXdoaXRlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcGF0aCB7XG4gICAgICAgIHRyYW5zaXRpb246IHN0cm9rZSB2YXIoLS10cmFuc2l0aW9uKTtcbiAgICAgIH1cblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG5cbiAgICAgICAgcGF0aCB7XG4gICAgICAgICAgc3Ryb2tlOiB2YXIoLS1jLXdoaXRlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGgxIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogT3JnYW5pc21zIC0gRm9vdGVyXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuLm8tZm9vdGVyIHtcbiAgLS1jb2xNYXhXaWR0aDogMjUwcHg7XG4gIC0tcGFkZGluZzogM3JlbTtcblxuICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgIC0tY29sTWF4V2lkdGg6IDM1MHB4O1xuICAgIC0tcGFkZGluZzogMnJlbTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCc8eHhzJykge1xuICAgIC0tY29sTWF4V2lkdGg6IG5vbmU7XG4gIH1cblxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xuICBjb2xvcjogdmFyKC0tYy13aGl0ZSk7XG4gIHBhZGRpbmc6IHZhcigtLXBhZGRpbmcpIDA7XG5cbiAgLmEtY29scy0tZnVsbCB7XG4gICAgbWF4LXdpZHRoOiAxMjAwcHg7XG4gIH1cblxuICAuYS1saW5rcyB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuXG4gICAgYSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgfVxuICB9XG5cbiAgaDMge1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250Qm9keSk7XG4gIH1cblxuICAmX190b3Age1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMWZyKTtcbiAgICBnYXA6IDFyZW07XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1pdGVtczogY2VudGVyO1xuICAgICAgZ2FwOiAycmVtO1xuICAgIH1cblxuICAgICYgPiBkaXYge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXgtd2lkdGg6IHZhcigtLWNvbE1heFdpZHRoKTtcbiAgICB9XG4gIH1cblxuICAmX19hYm91dCB7XG4gICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgZ3JpZC1yb3c6IDEgLyA1O1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgZ3JpZC1yb3c6IGF1dG87XG5cbiAgICAgIHAge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmEtbGlua3Mge1xuICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICB9XG4gIH1cblxuICAmX19uZXdzbGV0dGVyIHtcbiAgICBncmlkLWNvbHVtbjogMjtcbiAgICBncmlkLXJvdzogMSAvIDI7XG4gICAganVzdGlmeS1zZWxmOiBjZW50ZXI7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICBncmlkLXJvdzogYXV0bztcbiAgICAgIG9yZGVyOiAtMTtcbiAgICB9XG4gIH1cblxuICAmX19pbmZvIHtcbiAgICBncmlkLWNvbHVtbjogMjtcbiAgICBncmlkLXJvdzogMiAvIDU7XG4gICAgYWxpZ24tc2VsZjogZW5kO1xuICAgIGp1c3RpZnktc2VsZjogY2VudGVyO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgZ3JpZC1yb3c6IGF1dG87XG4gICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICBvcmRlcjogMjtcbiAgICB9XG4gIH1cblxuICAmX19qb2luLXN1cHBvcnQge1xuICAgIGdyaWQtY29sdW1uOiAzO1xuICAgIGdyaWQtcm93OiAxIC8gMztcbiAgICBqdXN0aWZ5LXNlbGY6IGVuZDtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgIGdyaWQtcm93OiBhdXRvO1xuICAgICAganVzdGlmeS1zZWxmOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLmxpbmtzIHtcbiAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICAgIGdhcDogMXJlbTtcbiAgICB9XG4gIH1cblxuICAmX19zb2NpYWwge1xuICAgIGdyaWQtY29sdW1uOiAzO1xuICAgIGdyaWQtcm93OiAzO1xuICAgIGFsaWduLXNlbGY6IGVuZDtcbiAgICBqdXN0aWZ5LXNlbGY6IGVuZDtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgIGdyaWQtcm93OiBhdXRvO1xuICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgICAganVzdGlmeS1zZWxmOiBjZW50ZXI7XG4gICAgICBvcmRlcjogLTI7XG4gICAgfVxuICB9XG5cbiAgJl9fYm90dG9tIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1wYWRkaW5nKTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cbiAgfVxuXG4gICZfX3BhcnRuZXJzLFxuICAmX19oZWFkbGluZS1wYXJ0bmVyIHtcbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXgtd2lkdGg6IHZhcigtLWNvbE1heFdpZHRoKTtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgIEBpbmNsdWRlIGxpbmtSZXNldDtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIG9wYWNpdHk6IDAuNztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmX19oZWFkbGluZS1wYXJ0bmVyIHtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIHAge1xuICAgICAgbWF4LXdpZHRoOiB2YXIoLS1jb2xNYXhXaWR0aCk7XG4gICAgICBmb250LXNpemU6IHZhcigtLWZvbnRTbWFsbCk7XG4gICAgfVxuXG4gICAgaW1nIHtcbiAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgfVxuICB9XG5cbiAgJl9fcGFydG5lcnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIG1hcmdpbi10b3A6IHZhcigtLXBhZGRpbmcpO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgaGVpZ2h0OiA1MHB4O1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBtYXJnaW4tcmlnaHQ6IDEuNXJlbTtcblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzx4eHMnKSB7XG4gICAgICAgIGhlaWdodDogNDBweDtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZfX2xlZ2FsIHtcbiAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnRTbWFsbCk7XG4gICAgbWFyZ2luLXRvcDogMXJlbTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICBtYXJnaW4tdG9wOiB2YXIoLS1wYWRkaW5nKTtcbiAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE9yZ2FuaXNtcyAtIFNlYXJjaCByZXN1bHRzXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuLm8tc2VhcmNoLXJlc3VsdHMtd3JhcHBlciB7XG4gIGgyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLnJlc3VsdF9fdGl0bGUge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICAmX19saXN0IHtcbiAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuXG4gICAgb2wge1xuICAgICAgQGluY2x1ZGUgbGktcmVzZXQ7XG5cbiAgICAgIGxpIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBPcmdhbmlzbXMgLSBUZWFzZXJzXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuLm8tZmVhdHVyZWQtdGVhc2VyLFxuLm8tbGlzdGluZy10ZWFzZXIsXG4uby10ZWFzZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcblxuICBAaW5jbHVkZSBtZWRpYSgnPnNtJykge1xuICAgICYtLXNpbmdsZSB7XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcbiAgICAgIGdhcDogMnJlbTtcbiAgICB9XG4gIH1cblxuICAmX190aHVtYiB7XG4gICAgQGluY2x1ZGUgbGlua1Jlc2V0O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIGZpZ3VyZSB7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBwYWRkaW5nLXRvcDogNTYuMjUlO1xuXG4gICAgICAmLmxpc3RpbmdfaW1hZ2Vfc3F1YXJlIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDEwMCU7XG4gICAgICB9XG4gICAgICAmLmxpc3RpbmdfaW1hZ2VfcG9ydHJhaXQge1xuICAgICAgICBwYWRkaW5nLXRvcDogMTMzLjMzMzMlO1xuICAgICAgfVxuXG4gICAgICBwaWN0dXJlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIC8vIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtYmxhY2spO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLWdyZXlMaWdodCk7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaW1nIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IHZhcigtLXRyYW5zaXRpb24pO1xuICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgfVxuXG4gICAgLmxhYmVsIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogLTAuOHJlbTtcbiAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICBmb250LXNpemU6IHZhcigtLWZvbnRTbWFsbCk7XG4gICAgICBwYWRkaW5nOiA1cHggMTBweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG4gICAgICBjb2xvcjogdmFyKC0tYy13aGl0ZSk7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICBpbWcge1xuICAgICAgICBvcGFjaXR5OiAwLjk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9fY29udGVudCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgcGFkZGluZzogMC41cmVtIDA7XG4gICAgfVxuXG4gICAgYTpub3QoLmEtYnRuKTpub3QoLnJlYWQtbW9yZSkge1xuICAgICAgQGluY2x1ZGUgbGlua1Jlc2V0O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cblxuICAgIC50YWcge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG4gICAgICBmb250LXNpemU6IHZhcigtLWZvbnRTbWFsbCk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJz5zbScpIHtcbiAgICAgIC5vLXRlYXNlci0tc2luZ2xlICYge1xuICAgICAgICBncmlkLXJvdzogMTtcbiAgICAgICAgZ3JpZC1jb2x1bW46IDI7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcDpsYXN0LW9mLXR5cGUge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cblxuICAmX19idXR0b25zIHtcbiAgICBtYXJnaW4tdG9wOiBhdXRvO1xuICAgIHBhZGRpbmc6IDAgMCAxcmVtO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAmID4gLmEtYnRuIHtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICAgICAgZm9udC1zaXplOiB2YXIoLS1mb250U21hbGwpO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgc3ZnIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgfVxuXG4gICAgICAmOm5vdCgubm8tbGluayk6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXNlY29uZGFyeSk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xuICAgICAgfVxuICAgIH1cblxuICAgICYgPiBhIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPnNtJykge1xuICAgICAgLm8tdGVhc2VyLS1zaW5nbGUgJiB7XG4gICAgICAgIGdyaWQtcm93OiAxO1xuICAgICAgICBncmlkLWNvbHVtbjogMjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcCB7XG4gICAgbWF4LXdpZHRoOiB2YXIoLS1saW5lTGVuZ3RoKTtcbiAgfVxufVxuXG4uby1saXN0aW5nLXRlYXNlciB7XG4gIC8vIGRpc3BsYXk6IGdyaWQ7XG4gIC8vIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAvLyBncmlkLXRlbXBsYXRlLXJvd3M6IDFmciAxZnI7XG4gIC8vIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuXG4gIC8vIEBpbmNsdWRlIG1lZGlhKCc8eHMnKSB7XG4gIC8vICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnI7XG4gIC8vIH1cblxuICBoMiB7XG4gICAgZm9udC1zaXplOiBjbGFtcCgxLjZyZW0sIDIuMnZ3LCAyLjhyZW0pO1xuICB9XG5cbiAgJl9fdGh1bWIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGFsaWduLXNlbGY6IGVuZDtcbiAgfVxuXG4gICZfX2NvbnRlbnQge1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICB9XG5cbiAgJl9fYnV0dG9ucyB7XG4gICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgfVxufVxuXG4uby1mZWF0dXJlZC10ZWFzZXIge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xuICBnYXA6IDJyZW07XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzxsZycpIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxLjVmcjtcbiAgICBnYXA6IDFyZW07XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgnPG1kJykge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICB9XG5cbiAgJi0tc2luZ2xlIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIC8vICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMTIsIDFmcik7XG4gICAgLy8gICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgLy8gICBAaW5jbHVkZSBtZWRpYSgnPD1zbScpIHtcbiAgICAvLyAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgLy8gICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIC8vICAgfVxuXG4gICAgLy8gICAuby1mZWF0dXJlZC10ZWFzZXJfX3RodW1iIHtcbiAgICAvLyAgICAgZ3JpZC1jb2x1bW46IDEgLyA5O1xuICAgIC8vICAgICBncmlkLXJvdzogMTtcblxuICAgIC8vICAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgIC8vICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgIC8vICAgICB9XG4gICAgLy8gICB9XG5cbiAgICAvLyAgIC5vLWZlYXR1cmVkLXRlYXNlcl9fY29udGVudCB7XG4gICAgLy8gICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG4gICAgLy8gICAgIGdyaWQtY29sdW1uOiA4IC8gMTM7XG4gICAgLy8gICAgIGdyaWQtcm93OiAxO1xuICAgIC8vICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgLy8gICAgIHBhZGRpbmc6IDNyZW07XG5cbiAgICAvLyAgICAgQGluY2x1ZGUgbWVkaWEoJzxsZycpIHtcbiAgICAvLyAgICAgICBwYWRkaW5nOiAxLjVyZW0gMS41cmVtIDNyZW07XG4gICAgLy8gICAgIH1cblxuICAgIC8vICAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgIC8vICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgIC8vICAgICAgIGdyaWQtcm93OiAyO1xuICAgIC8vICAgICAgIHBhZGRpbmctYm90dG9tOiAxLjVyZW07XG4gICAgLy8gICAgIH1cbiAgICAvLyAgIH1cblxuICAgIC8vICAgQGluY2x1ZGUgbWVkaWEoJz5zbScpIHtcbiAgICAvLyAgICAgLm8tZmVhdHVyZWQtdGVhc2VyX19idXR0b25zIHtcbiAgICAvLyAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcblxuICAgIC8vICAgICAgICYgPiAuYS1idG4ge1xuICAgIC8vICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIC8vICAgICAgICAgYm90dG9tOiAtMS4yNXJlbTtcbiAgICAvLyAgICAgICAgIGxlZnQ6IDNyZW07XG4gICAgLy8gICAgICAgICBtYXJnaW4tdG9wOiAwO1xuXG4gICAgLy8gICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPGxnJykge1xuICAgIC8vICAgICAgICAgICBsZWZ0OiAxLjVyZW07XG4gICAgLy8gICAgICAgICB9XG4gICAgLy8gICAgICAgfVxuICAgIC8vICAgICB9XG4gICAgLy8gICB9XG4gIH1cblxuICAmX19jb250ZW50IHtcbiAgICBjb2xvcjogdmFyKC0tYy13aGl0ZSk7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gICZfX2J1dHRvbnMge1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBtYXJnaW4tdG9wOiAxLjVyZW07XG5cbiAgICAmID4gLmEtYnRuIHtcbiAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgbWFyZ2luLXRvcDogMS41cmVtO1xuICAgICAgYm9yZGVyOiAwO1xuXG4gICAgICBzdmcge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgIH1cblxuICAgICAgLS1idG5CZzogdmFyKC0tYy15ZWxsb3cpO1xuICAgICAgLS1idG5Db2xvdXI6IHZhcigtLWMtcHJpbWFyeSk7XG4gICAgfVxuICB9XG59XG5cbi5vLXRlYXNlciB7XG4gICZfX2NvbnRlbnQge1xuICAgIHAge1xuICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgICB9XG4gIH1cbn0iLCIvKipcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKiBVbi50aXRsZWRcbiogT3JnYW5pc21zIC0gTGlzdGluZyAqKnRlbXAqKlxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qL1xuXG4vKipcbiogQ29uZmlnXG4qL1xuXG4vKipcbiogU3R5bGluZ1xuKi9cbi5vLWxpc3Rpbmcge1xuICAmX19maWx0ZXJzIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLXByaW1hcnkpO1xuICAgIGJvcmRlci1sZWZ0OiAwO1xuICAgIGJvcmRlci1yaWdodDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgfVxuXG4gICAgLmJ0biB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIHBhZGRpbmc6IDEuNXJlbTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXRyYW5zaXRpb24pO1xuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cblxuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHh4cycpIHtcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuXG4gICAgICAgICYtLWRyb3Bkb3duIHtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLmFjdGl2ZSxcbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogdmFyKC0tYy1yZWQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5kaXZpZGVyIHtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIHdpZHRoOiAxcHg7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZfX2Ryb3Bkb3duIHtcblxuICAgIHotaW5kZXg6IDI7XG4gICAgdG9wOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1ncmV5TGlnaHQpO1xuICAgIGJveC1zaGFkb3c6IDAgNHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuICAgIHBhZGRpbmc6IDJyZW0gMXJlbTtcbiAgICAuc2hvdy1yZXN1bHRzIHtcbiAgICAgICBtYXJnaW46IDIwcHggMCAwIDA7XG4gICAgfVxuICAgIC5hLWNvbHMge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8eHMnKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi1jYWxlbmRhciB7XG4gICAgICBwb3NpdGlvbjogZml4ZWQgIWltcG9ydGFudDtcbiAgICAgIHRvcDogNTAlICFpbXBvcnRhbnQ7XG4gICAgICBsZWZ0OiA1MCUgIWltcG9ydGFudDtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsLTUwJSk7XG4gICAgICB3aWR0aDogNTAlO1xuXG4gICAgICAuRGF5UGlja2VyLU5hdkJhciB7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAuYS1jb2xzIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgfVxuXG4gICAgICAmLWNvbnRyb2xzIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICBwIHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi10YXhvbm9teSB7XG5cbiAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnIgMWZyO1xuICAgICAgZ3JpZC1nYXA6IDIwcHg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIG1hcmdpbjogMCAxcmVtO1xuICAgICAgbWFyZ2luLWJvdHRvbTogNDBweDtcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bWQnKSB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgICAgICAgZ3JpZC1nYXA6IDE1cHg7XG4gICAgICB9XG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICAgICAgZ3JpZC1nYXA6IDEwcHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gICAgICB9XG4gICAgICBsYWJlbCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBncmlkLWdhcDogMTBweDtcbiAgICAgICAgaW5wdXQge1xuICAgICAgICAgIGFjY2VudC1jb2xvcjogI2ZmYjgxYztcbiAgICAgICAgICB3aWR0aDogMTVweDtcbiAgICAgICAgICBoZWlnaHQ6IDE1cHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGgzIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYtLWZpbHRlcnMge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgICAgIH1cbiAgICAgICAgZ3JpZC1nYXA6IDEwcHg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gMWZyO1xuICAgICAgICAgIGdyaWQtZ2FwOiA1cHg7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcbiAgICAgICAgbWFyZ2luOiAwIDAgMXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiBub25lO1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5saW5rIHtcbiAgICAgIEBpbmNsdWRlIGxpbmtSZXNldDtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICAgICY6aG92ZXIsXG4gICAgICAmLmFjdGl2ZSB7XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWMtcmVkKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmX19hY3RpdmUtZmlsdGVycyB7XG4gICAgcGFkZGluZzogMC41cmVtIDAgMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLWdyZXlMaWdodCk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuXG4gICAgLmEtYnRuIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udFNtYWxsKTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgc3BhbiB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtcmVkKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXRyYW5zaXRpb24pO1xuICAgICAgfVxuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXJlZCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtcmVkKTtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuXG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgIGNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5EYXlQaWNrZXIge1xuICAgICYtTW9udGhzIHtcbiAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xuICAgICAgZ2FwOiAycmVtO1xuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICAgICAgZ2FwOiAwO1xuICAgICAgICBmb250LXNpemU6IHZhcigtLWZvbnRTbWFsbCk7XG4gICAgICB9XG4gICAgfVxuICAgICYtTW9udGgge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKiBVbi50aXRsZWRcbiogT3JnYW5pc21zIC0gUGVyc29uIHRlYXNlclxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qL1xuXG4vKipcbiogQ29uZmlnXG4qL1xuXG4vKipcbiogU3R5bGluZ1xuKi9cbi5vLXBlb3BsZSB7XG4gICYtLXNtIHtcbiAgICBtYXJnaW4tdG9wOiAxLjVyZW07XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBnYXA6IDJyZW07XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgMWZyKTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8eHMnKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8eHhzJykge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgfVxuXG4gICAgLm8tcGVvcGxlX19wZXJzb24ge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBnYXA6IDA7XG5cbiAgICAgIGZpZ3VyZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbiAgICAgICAgb3JkZXI6IC0xO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgcGFkZGluZy10b3A6IDEwMCU7XG4gICAgICB9XG5cbiAgICAgIGltZyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgfVxuXG4gICAgICBoMyB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICB9XG5cbiAgICAgIGg0IHtcbiAgICAgICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnRCb2R5KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLS1sZyB7XG4gICAgLm8tcGVvcGxlX19wZXJzb24ge1xuICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDIyMHB4O1xuICAgICAgZ2FwOiAycmVtO1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWMtcHJpbWFyeSk7XG4gICAgICBwYWRkaW5nLXRvcDogMS41cmVtO1xuICAgICAgbWFyZ2luLXRvcDogMS41cmVtO1xuXG4gICAgICAmOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxNTBweDtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG5cbiAgICAgICAgaW1nIHtcbiAgICAgICAgICBtYXgtd2lkdGg6IDMwMHB4O1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICBqdXN0aWZ5LXNlbGY6IGNlbnRlcjtcbiAgICAgICAgICBvcmRlcjogLTE7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmX19wZXJzb24ge1xuICAgIEBpbmNsdWRlIGxpbmtSZXNldDtcblxuICAgIC5saW5rIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgfVxuXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBoMyxcbiAgICAgIC5saW5rIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICB9XG5cbiAgICAgIC5saW5rOjphZnRlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbiAgICAgIH1cblxuICAgICAgaW1nIHtcbiAgICAgICAgb3BhY2l0eTogMC43O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGltZyB7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSB2YXIoLS10cmFuc2l0aW9uKTtcbiAgfVxufVxuIiwiLyoqXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogVW4udGl0bGVkXG4qIE9yZ2FuaXNtcyAtIFBlcmZvcm1hbmNlcyBtb2RhbFxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qL1xuXG4vKipcbiogU3R5bGluZ1xuKi9cbltkYXRhLW1vZGFsT3Blbj0ndHJ1ZSddIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLm8tbW9kYWwge1xuICBib3JkZXI6IDA7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xuICB6LWluZGV4OiAyNTtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG5cbiAgJltkYXRhLXZpc2libGU9J3RydWUnXSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbmltYXRpb246IGZhZGVJbiAwLjJzIGVhc2UtaW4tb3V0IGZvcndhcmRzO1xuICB9XG5cbiAgJltkYXRhLXZpc2libGU9J2ZhbHNlJ10ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIC8vIGFuaW1hdGlvbjogZmFkZU91dCAwLjJzIGVhc2UtaW4tb3V0IGZvcndhcmRzO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAuYS1jb2xzIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuICB9XG5cbiAgJi0tZnVsbHNjcmVlbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcbiAgICBjb2xvcjogdmFyKC0tYy13aGl0ZSk7XG4gICAgcGFkZGluZzogMnJlbTtcbiAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgIH1cblxuICAgIC5hLWNvbHMge1xuICAgICAgbWF4LWhlaWdodDogOTV2aDtcbiAgICAgIHBhZGRpbmc6IDFyZW0gMCAwO1xuICAgIH1cblxuICAgIC5vLW1vZGFsX19jbG9zZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIHJpZ2h0OiAycmVtO1xuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgICByaWdodDogMXJlbTtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcbiAgICAgICAgcmlnaHQ6IDE1cHg7XG4gICAgICB9XG5cbiAgICAgIHBhdGgge1xuICAgICAgICBzdHJva2U6IHZhcigtLWMtd2hpdGUpO1xuICAgICAgfVxuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy13aGl0ZSk7XG5cbiAgICAgICAgcGF0aCB7XG4gICAgICAgICAgc3Ryb2tlOiB2YXIoLS1jLXByaW1hcnkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9fY2xvc2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBoZWlnaHQ6IDQycHg7XG4gICAgd2lkdGg6IDQycHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy13aGl0ZSk7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIHRvcDogMXJlbTtcbiAgICByaWdodDogMXJlbTtcbiAgICBib3JkZXI6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgdmFyKC0tdHJhbnNpdGlvbik7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xuICAgICAgLy8gdG9wOiAwLjVyZW07XG4gICAgICByaWdodDogMC41cmVtO1xuICAgICAgaGVpZ2h0OiAzNXB4O1xuICAgICAgd2lkdGg6IDM1cHg7XG4gICAgfVxuXG4gICAgc3ZnIHtcbiAgICAgIHdpZHRoOiAyMHB4O1xuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xuICAgICAgICB3aWR0aDogMTVweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwYXRoIHtcbiAgICAgIHRyYW5zaXRpb246IHN0cm9rZSB2YXIoLS10cmFuc2l0aW9uKTtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG5cbiAgICAgIHBhdGgge1xuICAgICAgICBzdHJva2U6IHZhcigtLWMtd2hpdGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogVW4udGl0bGVkXG4qIFRlbXBsYXRlIC0gUG9zdHNcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKi9cblxuLyoqXG4qIENvbmZpZ1xuKi9cblxuLyoqXG4qIFN0eWxpbmdcbiovXG5hcnRpY2xlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAvLyAmOm5vdCguby10ZWFzZXIpOm5vdCguby1saXN0aW5nLXRlYXNlcikge1xuICAvLyAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLy8gICB6LWluZGV4OiAxO1xuICAvLyB9XG59XG4iXSwic291cmNlUm9vdCI6IiJ9*/