@charset "UTF-8";
@-webkit-keyframes moveUp {
  0% {
    -webkit-transform: translate(0, 30%);
    transform: translate(0, 30%); }
  100% {
    -webkit-transform: translate(0);
    transform: translate(0); } }
@keyframes moveUp {
  0% {
    -webkit-transform: translate(0, 30%);
    transform: translate(0, 30%); }
  100% {
    -webkit-transform: translate(0);
    transform: translate(0); } }

@-webkit-keyframes moveDown {
  0% {
    -webkit-transform: translate(0);
    transform: translate(0); }
  100% {
    -webkit-transform: translate(0, 30%);
    transform: translate(0, 30%); } }

@keyframes moveDown {
  0% {
    -webkit-transform: translate(0);
    transform: translate(0); }
  100% {
    -webkit-transform: translate(0, 30%);
    transform: translate(0, 30%); } }

@-webkit-keyframes moveLeft {
  0% {
    -webkit-transform: translate(10%, 0);
    transform: translate(10%, 0); }
  100% {
    -webkit-transform: translate(0);
    transform: translate(0); } }

@keyframes moveLeft {
  0% {
    -webkit-transform: translate(10%, 0);
    transform: translate(10%, 0); }
  100% {
    -webkit-transform: translate(0);
    transform: translate(0); } }

@-webkit-keyframes moveRight {
  0% {
    -webkit-transform: translate(-10%, 0);
    transform: translate(-10%, 0); }
  100% {
    -webkit-transform: translate(0);
    transform: translate(0); } }

@keyframes moveRight {
  0% {
    -webkit-transform: translate(-10%, 0);
    transform: translate(-10%, 0); }
  100% {
    -webkit-transform: translate(0);
    transform: translate(0); } }

@-webkit-keyframes fadeOut {
  0% {
    opacity: 1; }
  100% {
    opacity: 0; } }

@keyframes fadeOut {
  0% {
    opacity: 1; }
  100% {
    opacity: 0; } }

@-webkit-keyframes fadeIn {
  0% {
    opacity: 0; }
  100% {
    opacity: 1; } }

@keyframes fadeIn {
  0% {
    opacity: 0; }
  100% {
    opacity: 1; } }

@-webkit-keyframes spin {
  0% {
    -webkit-transform: rotate(0);
    transform: rotate(0); }
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg); } }

@keyframes spin {
  0% {
    -webkit-transform: rotate(0);
    transform: rotate(0); }
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg); } }

@-webkit-keyframes scaleInOut {
  0% {
    -webkit-transform: scale(1);
    transform: scale(1); }
  50% {
    -webkit-transform: scale(0.2);
    transform: scale(0.2); }
  100% {
    -webkit-transform: scale(1);
    transform: scale(1); } }

@keyframes scaleInOut {
  0% {
    -webkit-transform: scale(1);
    transform: scale(1); }
  50% {
    -webkit-transform: scale(0.2);
    transform: scale(0.2); }
  100% {
    -webkit-transform: scale(1);
    transform: scale(1); } }

@-webkit-keyframes batman {
  0% {
    -webkit-transform: rotate(0deg) scale(1);
    transform: rotate(0deg) scale(1); }
  50% {
    -webkit-transform: rotate(180deg) scale(0.2);
    transform: rotate(180deg) scale(0.2); }
  100% {
    -webkit-transform: rotate(360deg) scale(1);
    transform: rotate(360deg) scale(1); } }

@keyframes batman {
  0% {
    -webkit-transform: rotate(0deg) scale(1);
    transform: rotate(0deg) scale(1); }
  50% {
    -webkit-transform: rotate(180deg) scale(0.2);
    transform: rotate(180deg) scale(0.2); }
  100% {
    -webkit-transform: rotate(360deg) scale(1);
    transform: rotate(360deg) scale(1); } }

/**
 * These are the Crowd Colours.
 */
/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
/**
 * 1. Set default font family to sans-serif.
 * 2. Prevent iOS and IE text size adjust after device 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/10/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 of focused elements when they are also in an
 * active/hover state.
 */
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;
  max-width: 100%;
  vertical-align: bottom;
  height: auto; }

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

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

/**
 * Address differences between Firefox and other browsers.
 */
hr {
  -webkit-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"] {
  -webkit-box-sizing: border-box;
  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.
 */
input[type="search"] {
  -webkit-appearance: textfield;
  /* 1 */
  -webkit-box-sizing: content-box;
  box-sizing: content-box;
  /* 2 */ }

/**
 * 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; }

* {
  -webkit-box-sizing: border-box;
  box-sizing: border-box; }

body {
  background: #ffffff;
  color: #647a7b;
  -webkit-transition: color 0.5s cubic-bezier(0, 0.78, 0.25, 1), background 0.5s cubic-bezier(0, 0.78, 0.25, 1);
  transition: color 0.5s cubic-bezier(0, 0.78, 0.25, 1), background 0.5s cubic-bezier(0, 0.78, 0.25, 1);
  font-family: "Gotham SSm A", "Gotham SSm B", Helvetica, Arial, Sans-serif;
  line-height: 1.42857143;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }
  body.orange {
    background: #ff5b00;
    color: #ffffff; }
  body.aqua {
    background: #00d1d9;
    color: #ffffff; }
  body.neon-green {
    background: #04de38;
    color: #ffffff; }
  body.slate {
    background: #edf3f3;
    color: #647a7b; }

a {
  color: #ff5b00;
  text-decoration: none;
  -webkit-transition: color 0.5s cubic-bezier(0, 0.78, 0.25, 1);
  transition: color 0.5s cubic-bezier(0, 0.78, 0.25, 1);
  border-bottom: 2px solid transparent; }
  a:hover {
    border-bottom: 2px solid #647a7b;
    border-bottom-color: inherit; }
  body.orange a {
    color: #432821; }
  body.neon-green a {
    color: #2d643a; }
  body.aqua a {
    color: #2d6163; }
  body.slate a {
    color: #ffffff; }

h1,
h2 {
  margin: 0.67rem 0;
  font: 500 6.1vw/1.1 "Sentinel SSm A", "Sentinel SSm B", Georgia, Serif; }
  h1 em,
  h2 em {
    font-weight: 800;
    font-style: italic; }

h2 {
  font-size: 2vw; }

h3 {
  font-weight: 500;
  font-family: "Gotham SSm A", "Gotham SSm B", Helvetica, Arial, Sans-serif;
  line-height: 1.1;
  font-size: 2rem; }

b,
strong {
  font-weight: 500; }

hr {
  margin: 4rem 0;
  border: 0;
  border-top: 2px solid #edf3f3; }

code {
  font-family: Monaco, "Lucida Console", monospace;
  font-size: inherit; }

[data-aspect-ratio] {
  height: 0; }

[data-aspect-ratio="1:1"] {
  padding-bottom: 100%; }

[data-aspect-ratio="1:2"] {
  padding-bottom: 50%; }

[data-aspect-ratio="3:2"] {
  padding-bottom: 66.6666%; }

[data-aspect-ratio="16:9"] {
  padding-bottom: 56.25%; }

[data-aspect-ratio="4:3"] {
  padding-bottom: 75%; }

[data-aspect-ratio="4:1"] {
  padding-bottom: 25%; }

.button {
  position: relative;
  display: inline-block;
  text-align: center;
  font-family: "Gotham SSm A", "Gotham SSm B", Helvetica, Arial, Sans-serif;
  font-weight: 500;
  text-transform: uppercase;
  padding: 1rem 2.5rem;
  border: 2px solid #647a7b;
  background: transparent;
  -webkit-transition: opacity 0.25s cubic-bezier(0, 0.6, 0.7, 1), -webkit-transform 0.25s cubic-bezier(0, 0.6, 0.7, 1);
  transition: opacity 0.25s cubic-bezier(0, 0.6, 0.7, 1), -webkit-transform 0.25s cubic-bezier(0, 0.6, 0.7, 1);
  transition: transform 0.25s cubic-bezier(0, 0.6, 0.7, 1), opacity 0.25s cubic-bezier(0, 0.6, 0.7, 1);
  transition: transform 0.25s cubic-bezier(0, 0.6, 0.7, 1), opacity 0.25s cubic-bezier(0, 0.6, 0.7, 1), -webkit-transform 0.25s cubic-bezier(0, 0.6, 0.7, 1);
  outline: none;
  cursor: pointer;
  color: #647a7b;
  border-color: #647a7b; }
  .button[disabled] {
    opacity: 0.5; }
    .button[disabled]:after {
      -webkit-transform: scale(0);
      transform: scale(0); }
  .button:after {
    content: '';
    width: 1rem;
    height: 1rem;
    background: #cde3e4;
    border-radius: 50%;
    -webkit-transition: -webkit-transform 0.25s cubic-bezier(0, 0.6, 0.7, 1);
    transition: -webkit-transform 0.25s cubic-bezier(0, 0.6, 0.7, 1);
    transition: transform 0.25s cubic-bezier(0, 0.6, 0.7, 1);
    transition: transform 0.25s cubic-bezier(0, 0.6, 0.7, 1), -webkit-transform 0.25s cubic-bezier(0, 0.6, 0.7, 1);
    position: absolute;
    right: -0.5rem;
    bottom: -0.5rem;
    z-index: -1; }
  .button.white:after {
    background: #ffffff; }
  .button.orange:after {
    background: #ff5b00; }
  .button.cocoa:after {
    background: #432821; }
  .button.neon-green:after {
    background: #04de38; }
  .button.forest:after {
    background: #2d643a; }
  .button.aqua:after {
    background: #00d1d9; }
  .button.petrol:after {
    background: #2d6163; }
  .button.mist:after {
    background: #edf3f3; }
  .button.blue-grey:after {
    background: #cde3e4; }
  .button.slate:after {
    background: #647a7b; }
  .button:hover:not([disabled]):after {
    -webkit-transform: translate(-30%, -30%) scale(2.25);
    transform: translate(-30%, -30%) scale(2.25); }
  .button:active:not([disabled]):after {
    -webkit-transform: translate(-30%, -30%) scale(2.8);
    transform: translate(-30%, -30%) scale(2.8); }
  body.orange .button {
    color: #ffffff;
    border-color: #432821; }
    body.orange .button:after {
      background: #ffffff; }
  body.aqua .button {
    color: #ffffff;
    border-color: #2d6163; }
    body.aqua .button:after {
      background: #ffffff; }
  body.neon-green .button {
    color: #ffffff;
    border-color: #2d643a; }
    body.neon-green .button:after {
      background: #ffffff; }
  body.slate .button {
    color: #647a7b;
    border-color: #647a7b; }
    body.slate .button:after {
      background: #647a7b; }

.blipper {
  position: fixed;
  padding: 0;
  text-indent: -9999px;
  width: 40px;
  height: 40px;
  bottom: 0;
  right: 0; }

/*******************************************************************************
 * Grid System
 *
 * The new website has an underlying grid system. The system uses flexbox and
 * widths by default, but prefers @grid rules for progressive enhancement.
 *
 * This means IE11 is catered to with a basic layout, but better layout tools
 * are available on modern browsers.
 *
 * A gutter of 2% of the viewwidth is applied either side of the grid.
 ******************************************************************************/
.grid {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  padding: 0 2vw; }
  @supports (display: grid) {
    .grid {
      display: grid;
      grid-template-columns: repeat(20, 1fr [col]); }
      .grid .item {
        width: auto !important;
        margin-left: 0;
        margin-right: 0; } }

@supports (display: grid) { }

/*******************************************************************************
 * SVG Container
 *
 * Allows you to size SVGs with padding (see svg-containment.js JavaScript)
 ******************************************************************************/
.svg-container {
  height: 0;
  position: relative; }
  .svg-container svg {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    overflow: visible; }

/*******************************************************************************
 * For modern browsers
 * 1. The space content is one way to avoid an Opera bug when the
 *    contenteditable attribute is included anywhere else in the document.
 *    Otherwise it causes space to appear at the top and bottom of elements
 *    that are clearfixed.
 * 2. The use of `table` rather than `block` is only necessary if using
 *    `:before` to contain the top-margins of child elements.
 ******************************************************************************/
.cf:before,
.cf:after {
  content: " ";
  /* 1 */
  display: table;
  /* 2 */ }

.cf:after {
  clear: both; }

/*******************************************************************************
 * Fix for plyr fullscreen being broken accidently.
 ******************************************************************************/
.plyr--fullscreen-active {
  max-width: none !important; }

/*******************************************************************************
 * Media Object
 *
 * http://www.stubbornella.org/content/2010/06/25/the-media-object-saves-hundreds-of-lines-of-code/
 ******************************************************************************/
.media {
  margin: 1rem;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap; }
  .media .img {
    margin-right: 1rem; }
  .media .bd {
    -ms-flex: 1 1;
    flex: 1 1;
    -ms-flex-item-align: center;
    align-self: center; }

.poi-icon {
  width: 80px;
  height: 80px;
  position: relative;
  z-index: 5;
  overflow: visible;
  background: transparent;
  border: none;
  outline: none;
  display: inline-block;
  text-indent: -9999rem; }
  .poi-icon.labelled {
    margin-bottom: 1.3rem; }
  .poi-icon .label {
    display: block;
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    text-indent: 0;
    text-transform: uppercase;
    font-weight: 200;
    font-size: 0.875rem;
    -webkit-transition: color 0.25s cubic-bezier(0, 0.6, 0.7, 1);
    transition: color 0.25s cubic-bezier(0, 0.6, 0.7, 1); }
  .poi-icon[type="submit"] {
    width: 40px;
    height: 40px; }
    .poi-icon[type="submit"]:before {
      background: #ffffff;
      width: 10px;
      height: 10px; }
  .poi-icon svg {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    height: 100%;
    z-index: 5;
    pointer-events: none;
    -webkit-transition: -webkit-transform 0.25s cubic-bezier(0, 0.6, 0.7, 1);
    transition: -webkit-transform 0.25s cubic-bezier(0, 0.6, 0.7, 1);
    transition: transform 0.25s cubic-bezier(0, 0.6, 0.7, 1);
    transition: transform 0.25s cubic-bezier(0, 0.6, 0.7, 1), -webkit-transform 0.25s cubic-bezier(0, 0.6, 0.7, 1);
    -webkit-transform-origin: center;
    transform-origin: center; }
    .poi-icon svg path,
    .poi-icon svg circle,
    .poi-icon svg polyline,
    .poi-icon svg line {
      stroke: #647a7b;
      vector-effect: non-scaling-stroke;
      -webkit-transition: fill 0.25s cubic-bezier(0, 0.78, 0.25, 1), stroke 0.25s cubic-bezier(0, 0.78, 0.25, 1);
      transition: fill 0.25s cubic-bezier(0, 0.78, 0.25, 1), stroke 0.25s cubic-bezier(0, 0.78, 0.25, 1); }
      body.orange .poi-icon svg path, body.orange
      .poi-icon svg circle, body.orange
      .poi-icon svg polyline, body.orange
      .poi-icon svg line {
        stroke: #432821; }
      body.aqua .poi-icon svg path, body.aqua
      .poi-icon svg circle, body.aqua
      .poi-icon svg polyline, body.aqua
      .poi-icon svg line {
        stroke: #2d6163; }
      body.neon-green .poi-icon svg path, body.neon-green
      .poi-icon svg circle, body.neon-green
      .poi-icon svg polyline, body.neon-green
      .poi-icon svg line {
        stroke: #2d643a; }
      body.slate .poi-icon svg path, body.slate
      .poi-icon svg circle, body.slate
      .poi-icon svg polyline, body.slate
      .poi-icon svg line {
        stroke: #647a7b; }
  .poi-icon:hover {
    border: none; }
    .poi-icon:hover svg {
      -webkit-transform: scale(0.75);
      transform: scale(0.75); }
  .poi-icon:before {
    content: '';
    background: #cde3e4;
    border-radius: 50%;
    width: 20px;
    height: 20px;
    position: absolute;
    z-index: -1;
    -webkit-transform-origin: center center;
    transform-origin: center center;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    -webkit-transition: -webkit-transform 0.25s cubic-bezier(0, 0.6, 0.7, 1);
    transition: -webkit-transform 0.25s cubic-bezier(0, 0.6, 0.7, 1);
    transition: transform 0.25s cubic-bezier(0, 0.6, 0.7, 1);
    transition: transform 0.25s cubic-bezier(0, 0.6, 0.7, 1), -webkit-transform 0.25s cubic-bezier(0, 0.6, 0.7, 1); }
    body.orange .poi-icon:before,
    body.aqua .poi-icon:before,
    body.slate .poi-icon:before,
    body.neon-green .poi-icon:before {
      background: #ffffff; }
  .poi-icon.trail-icon {
    top: 0;
    left: 0;
    position: absolute;
    pointer-events: none; }
    .poi-icon.trail-icon:before {
      width: 7px;
      height: 7px; }
  .poi-icon.white {
    color: #ffffff; }
  .poi-icon.white:before {
    background: #ffffff; }
  .poi-icon.orange {
    color: #ff5b00; }
  .poi-icon.orange:before {
    background: #ff5b00; }
  .poi-icon.cocoa {
    color: #432821; }
  .poi-icon.cocoa:before {
    background: #432821; }
  .poi-icon.neon-green {
    color: #04de38; }
  .poi-icon.neon-green:before {
    background: #04de38; }
  .poi-icon.forest {
    color: #2d643a; }
  .poi-icon.forest:before {
    background: #2d643a; }
  .poi-icon.aqua {
    color: #00d1d9; }
  .poi-icon.aqua:before {
    background: #00d1d9; }
  .poi-icon.petrol {
    color: #2d6163; }
  .poi-icon.petrol:before {
    background: #2d6163; }
  .poi-icon.mist {
    color: #edf3f3; }
  .poi-icon.mist:before {
    background: #edf3f3; }
  .poi-icon.blue-grey {
    color: #cde3e4; }
  .poi-icon.blue-grey:before {
    background: #cde3e4; }
  .poi-icon.slate {
    color: #647a7b; }
  .poi-icon.slate:before {
    background: #647a7b; }
  .poi-icon:hover:before {
    -webkit-transform: translate(-50%, -50%) scale(4) !important;
    transform: translate(-50%, -50%) scale(4) !important; }
  .poi-icon:active:before {
    -webkit-transform: translate(-50%, -50%) scale(4.8) !important;
    transform: translate(-50%, -50%) scale(4.8) !important; }
  .poi-icon.bottom:before {
    -webkit-transform: translate(-50%, 100%);
    transform: translate(-50%, 100%); }
  .poi-icon.bottom.right:before {
    -webkit-transform: translate(100%, 100%);
    transform: translate(100%, 100%); }
  .poi-icon.bottom.left:before {
    -webkit-transform: translate(-100%, 100%);
    transform: translate(-100%, 100%); }
  .poi-icon.right:before {
    -webkit-transform: translate(100%, -50%);
    transform: translate(100%, -50%); }
  .poi-icon.left:before {
    -webkit-transform: translate(-100%, -50%);
    transform: translate(-100%, -50%); }
  .poi-icon.top:before {
    -webkit-transform: translate(-50%, -100%);
    transform: translate(-50%, -100%); }
  .poi-icon.top.right:before {
    -webkit-transform: translate(100%, -100%);
    transform: translate(100%, -100%); }
  .poi-icon.top.left:before {
    -webkit-transform: translate(-100%, -100%);
    transform: translate(-100%, -100%); }

.category-mark {
  text-transform: uppercase;
  font-weight: 500;
  font-size: 1.125rem;
  margin: 4em 0;
  color: #647a7b;
  text-indent: -2rem; }
  .category-mark:before {
    content: '';
    display: inline-block;
    height: 1rem;
    width: 1rem;
    margin-right: 1rem;
    border-radius: 50%;
    -webkit-transition: background 0.25s cubic-bezier(0, 0.6, 0.7, 1), -webkit-transform 0.25s cubic-bezier(0, 0.6, 0.7, 1);
    transition: background 0.25s cubic-bezier(0, 0.6, 0.7, 1), -webkit-transform 0.25s cubic-bezier(0, 0.6, 0.7, 1);
    transition: background 0.25s cubic-bezier(0, 0.6, 0.7, 1), transform 0.25s cubic-bezier(0, 0.6, 0.7, 1);
    transition: background 0.25s cubic-bezier(0, 0.6, 0.7, 1), transform 0.25s cubic-bezier(0, 0.6, 0.7, 1), -webkit-transform 0.25s cubic-bezier(0, 0.6, 0.7, 1); }
  .category-mark.white:before {
    background: #ffffff; }
  .category-mark.orange:before {
    background: #ff5b00; }
  .category-mark.cocoa:before {
    background: #432821; }
  .category-mark.neon-green:before {
    background: #04de38; }
  .category-mark.forest:before {
    background: #2d643a; }
  .category-mark.aqua:before {
    background: #00d1d9; }
  .category-mark.petrol:before {
    background: #2d6163; }
  .category-mark.mist:before {
    background: #edf3f3; }
  .category-mark.blue-grey:before {
    background: #cde3e4; }
  .category-mark.slate:before {
    background: #647a7b; }
  body.orange .category-mark,
  body.aqua .category-mark,
  body.neon-green .category-mark {
    color: #ffffff; }
    body.orange .category-mark:before,
    body.aqua .category-mark:before,
    body.neon-green .category-mark:before {
      background: #ffffff;
      -webkit-transform: scale(0.5);
      transform: scale(0.5); }
  body.slate .category-mark {
    color: #647a7b; }
    body.slate .category-mark:before {
      background: #647a7b;
      -webkit-transform: scale(0.5);
      transform: scale(0.5); }

@media screen and (max-width: 650px) {
  .category-mark {
    margin: 2em 0; } }

.load-container {
  position: relative;
  overflow: hidden;
  z-index: 2; }
  .load-container:after {
    content: '';
    position: absolute;
    top: -10px;
    left: -10px;
    right: -10px;
    bottom: -10px;
    pointer-events: none;
    opacity: 0.8;
    z-index: 1;
    -webkit-transition: background 1s cubic-bezier(0, 0.6, 0.7, 1), opacity 1s cubic-bezier(0, 0.6, 0.7, 1);
    transition: background 1s cubic-bezier(0, 0.6, 0.7, 1), opacity 1s cubic-bezier(0, 0.6, 0.7, 1); }
  .load-container .lazy-loaded {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    -webkit-transition: opacity 1s cubic-bezier(0, 0.6, 0.7, 1);
    transition: opacity 1s cubic-bezier(0, 0.6, 0.7, 1); }
  .load-container.loaded:after {
    opacity: 0; }
  .load-container.loaded .lazy-loaded {
    opacity: 1; }
  .load-container.white:after {
    background: #ff5b00; }
  .load-container.orange:after {
    background: #432821; }
  .load-container.cocoa:after {
    background: #04de38; }
  .load-container.neon-green:after {
    background: #2d643a; }
  .load-container.forest:after {
    background: #00d1d9; }
  .load-container.aqua:after {
    background: #2d6163; }
  .load-container.petrol:after {
    background: #edf3f3; }
  .load-container.mist:after {
    background: #cde3e4; }
  .load-container.blue-grey:after {
    background: #647a7b; }
  .load-container.slate:after {
    background: #647a7b; }
  body.orange .load-container:after,
  body.aqua .load-container:after,
  body.neon-green .load-container:after,
  body.slate .load-container:after {
    background: #647a7b; }

.post-body p > img {
  margin: 2rem 0; }

.wp-video {
  width: 100% !important;
  height: auto; }

.wp-video-shortcode video,
video.wp-video-shortcode {
  height: auto; }

.crowd-identified {
  color: #ff5b00; }
  body.orange .crowd-identified,
  body.aqua .crowd-identified,
  body.neon-green .crowd-identified,
  body.slate .crowd-identified {
    color: #ffffff; }

input,
textarea {
  background: transparent;
  border: 0;
  color: #ffffff;
  border-bottom: 1px solid #432821;
  padding: 0.5rem 0;
  display: inline-block;
  margin: 0 0.5rem;
  text-transform: uppercase;
  outline: none;
  font-size: 0.875rem;
  font-weight: 500;
  border-radius: 0; }
  input::-webkit-input-placeholder,
  textarea::-webkit-input-placeholder {
    color: #ffffff; }
  input:-ms-input-placeholder,
  textarea:-ms-input-placeholder {
    color: #ffffff; }
  input::-ms-input-placeholder,
  textarea::-ms-input-placeholder {
    color: #ffffff; }
  input::placeholder,
  textarea::placeholder {
    color: #ffffff; }
  input:not(input[type="range"]),
  textarea:not(input[type="range"]) {
    min-width: 21rem; }

select {
  background: transparent;
  -webkit-appearance: none;
  border: 0;
  border-bottom: 1px solid #647a7b;
  border-bottom-color: inherit;
  outline: none;
  padding: 0.5rem 0;
  border-radius: 0;
  font-weight: 500;
  font-size: 0.875rem;
  text-transform: uppercase;
  line-height: normal; }

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

[class^="fa-icon-"]:before,
[class*=" fa-icon-"]:before {
  color: inherit;
  font-family: "fontello";
  font-style: normal;
  font-weight: normal;
  speak: none;
  display: inline-block;
  text-decoration: inherit;
  width: 1em;
  margin-right: .2em;
  text-align: center;
  /* opacity: .8; */
  /* For safety - reset parent styles, that can break glyph codes*/
  font-variant: normal;
  text-transform: none;
  /* fix buttons height, for twitter bootstrap */
  line-height: 1em;
  /* Animation center compensation - margins should be symmetric */
  /* remove if not needed */
  margin-left: .2em;
  /* you can be more comfortable with increased icons size */
  /* font-size: 120%; */
  /* Font smoothing. That was taken from TWBS */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  /* Uncomment for 3D effect */
  /* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */ }

.fa-icon-twitter:before {
  content: '\f099'; }

/* '' */
.fa-icon-facebook:before {
  content: '\f09a'; }

/* '' */
.fa-icon-pinterest-circled:before {
  content: '\f0d2'; }

/* '' */
.fa-icon-gplus:before {
  content: '\f0d5'; }

/* '' */
.fa-icon-linkedin:before {
  content: '\f0e1'; }

/* '' */
.fa-icon-youtube-play:before {
  content: '\f16a'; }

/* '' */
.fa-icon-instagram:before {
  content: '\f16d'; }

/* '' */
.fa-icon-snapchat-ghost:before {
  content: '\f2ac'; }

/* '' */
body {
  background-color: #ff5b00;
  color: #ffffff;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-direction: column;
  flex-direction: column;
  cursor: none;
  /*Cursor will be activated on right click in Chrome*/ }
  body #content,
  body #footer {
    -ms-flex: 1;
    flex: 1;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
    flex-direction: column; }

html, body {
  height: 100%;
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0; }

#header {
  position: relative;
  margin: 3.5rem auto 0 auto;
  width: 100%;
  max-width: 80%;
  max-height: 3.5rem;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-direction: column;
  flex-direction: column; }
  #header .logo-link {
    display: block;
    width: 3rem;
    border: 0;
    position: relative;
    z-index: 1; }
    #header .logo-link:hover {
      border: 0; }
    #header .logo-link .logo-container {
      height: 0;
      position: relative;
      padding-bottom: 107.3%; }
      #header .logo-link .logo-container svg {
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        width: 100%;
        height: 100%; }
        #header .logo-link .logo-container svg path {
          fill: #ffffff; }
    .nav-active #header .logo-link path {
      fill: #ffffff; }

#welcome {
  margin: 3.5rem auto 0 auto;
  max-width: 80%;
  width: 100%; }
  #welcome h1 {
    font-size: 9vw;
    font-weight: 800;
    line-height: 1;
    margin: 0; }
  #welcome h2 {
    font-size: 4vw;
    font-weight: 700;
    width: 100%;
    font-family: "Gotham SSm A","Gotham SSm B",Helvetica,Arial,Sans-serif; }
    @media screen and (min-width: 2000px) {
      #welcome h2 {
        font-size: 6.25rem; } }
    @media screen and (max-width: 600px) {
      #welcome h2 {
        font-size: 7vw;
        width: 100%; } }
    @media screen and (max-width: 500px) {
      #welcome h2 {
        display: none; } }
  #welcome header {
    position: relative; }
    #welcome header .message {
      position: fixed;
      bottom: 10vh;
      overflow: hidden; }
    #welcome header .grid-title {
      top: 10vh;
      left: 50%;
      -webkit-transform: translateX(-50%);
      transform: translateX(-50%); }
      #welcome header .grid-title h1 {
        font-size: 4vw; }
    #welcome header .outer {
      overflow: hidden;
      vertical-align: bottom;
      margin: -10px; }
    #welcome header .inner {
      padding: 10px; }

#background-image {
  background-size: cover;
  height: 100%;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  opacity: 0; }

#grid-div {
  opacity: 1;
  margin: 10%;
  margin-top: 250px;
  position: absolute; }
  #grid-div ul {
    list-style: none;
    margin: 12vh 0;
    padding: 0;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap; }
    #grid-div ul li {
      margin: 2vw;
      -ms-flex: 1 0 20%;
      flex: 1 0 20%;
      opacity: 0;
      display: -ms-flexbox;
      display: flex;
      -ms-flex-pack: center;
      justify-content: center; }
      #grid-div ul li img {
        width: 22vh;
        height: 17vh; }

#footer {
  -ms-flex-pack: center;
  justify-content: center;
  margin: 0 auto;
  width: 100%;
  max-width: 80%;
  max-height: 3.5rem;
  text-align: right;
  font-size: 12px; }

#wpadminbar {
  display: none !important; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1haW4uY3NzIiwiY2FzY2FkZS9fYW5pbWF0aW9ucy5zY3NzIiwiY2FzY2FkZS9fY29sb3JzLnNjc3MiLCJjYXNjYWRlL19yZXNldC5zY3NzIiwiY2FzY2FkZS9fdHlwZS5zY3NzIiwiY2FzY2FkZS9fYXNwZWN0LXJhdGlvcy5zY3NzIiwiY2FzY2FkZS9fYnV0dG9ucy5zY3NzIiwiY2FzY2FkZS9fZ3JpZC5zY3NzIiwiY2FzY2FkZS9faWNvbnMuc2NzcyIsImNhc2NhZGUvX2NhdGVnb3J5LnNjc3MiLCJjYXNjYWRlL19sYXp5LWxvYWQuc2NzcyIsImNhc2NhZGUvX3dwLXN0eWxlcy5zY3NzIiwiY2FzY2FkZS9faWRlbnRpZmllci5zY3NzIiwiY2FzY2FkZS9fZm9ybXMuc2NzcyIsImNhc2NhZGUvX2ZvbnRlbGxvLnNjc3MiLCJjb21wb25lbnRzL193ZWxjb21lLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUJBQWlCO0FDSWpCO0VBQ0k7SUFDSSxxQ0FBNEI7SUFBNUIsNkJBQTRCLEVBQUE7RUFHaEM7SUFDSSxnQ0FBdUI7SUFBdkIsd0JBQXVCLEVBQUEsRUFBQTtBQU4vQjtFQUNJO0lBQ0kscUNBQTRCO0lBQTVCLDZCQUE0QixFQUFBO0VBR2hDO0lBQ0ksZ0NBQXVCO0lBQXZCLHdCQUF1QixFQUFBLEVBQUE7O0FBSS9CO0VBQ0k7SUFDSSxnQ0FBdUI7SUFBdkIsd0JBQXVCLEVBQUE7RUFHM0I7SUFDSSxxQ0FBNEI7SUFBNUIsNkJBQTRCLEVBQUEsRUFBQTs7QUFOcEM7RUFDSTtJQUNJLGdDQUF1QjtJQUF2Qix3QkFBdUIsRUFBQTtFQUczQjtJQUNJLHFDQUE0QjtJQUE1Qiw2QkFBNEIsRUFBQSxFQUFBOztBQUlwQztFQUNJO0lBQ0kscUNBQTRCO0lBQTVCLDZCQUE0QixFQUFBO0VBR2hDO0lBQ0ksZ0NBQXVCO0lBQXZCLHdCQUF1QixFQUFBLEVBQUE7O0FBTi9CO0VBQ0k7SUFDSSxxQ0FBNEI7SUFBNUIsNkJBQTRCLEVBQUE7RUFHaEM7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O0VBQ3ZCLGVBQWM7RUFDZCxZQUFXO0VBQ1gsZUFBYztFQUNkLG1CQUFrQjtFQUNsQixrQkFBaUI7RUFDakIsZ0JBQWUsRUFDaEI7O0FBRUQ7RUFDRSx5QkFBd0IsRUFDekIiLCJmaWxlIjoibWFpbi5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAY2hhcnNldCBcIlVURi04XCI7XG5Aa2V5ZnJhbWVzIG1vdmVVcCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAzMCUpOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDApOyB9IH1cblxuQGtleWZyYW1lcyBtb3ZlRG93biB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwKTsgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAzMCUpOyB9IH1cblxuQGtleWZyYW1lcyBtb3ZlTGVmdCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxMCUsIDApOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDApOyB9IH1cblxuQGtleWZyYW1lcyBtb3ZlUmlnaHQge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTEwJSwgMCk7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCk7IH0gfVxuXG5Aa2V5ZnJhbWVzIGZhZGVPdXQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwOyB9IH1cblxuQGtleWZyYW1lcyBmYWRlSW4ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxOyB9IH1cblxuQGtleWZyYW1lcyBzcGluIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDApOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0gfVxuXG5Aa2V5ZnJhbWVzIHNjYWxlSW5PdXQge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfVxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC4yKTsgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9IH1cblxuQGtleWZyYW1lcyBiYXRtYW4ge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZykgc2NhbGUoMSk7IH1cbiAgNTAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpIHNjYWxlKDAuMik7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKSBzY2FsZSgxKTsgfSB9XG5cbi8qKlxuICogVGhlc2UgYXJlIHRoZSBDcm93ZCBDb2xvdXJzLlxuICovXG4vKiEgbm9ybWFsaXplLmNzcyB2My4wLjMgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXG4vKipcbiAqIDEuIFNldCBkZWZhdWx0IGZvbnQgZmFtaWx5IHRvIHNhbnMtc2VyaWYuXG4gKiAyLiBQcmV2ZW50IGlPUyBhbmQgSUUgdGV4dCBzaXplIGFkanVzdCBhZnRlciBkZXZpY2Ugb3JpZW50YXRpb24gY2hhbmdlLFxuICogICAgd2l0aG91dCBkaXNhYmxpbmcgdXNlciB6b29tLlxuICovXG5odG1sIHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XG4gIC8qIDEgKi9cbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC8qIDIgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAvKiAyICovIH1cblxuLyoqXG4gKiBSZW1vdmUgZGVmYXVsdCBtYXJnaW4uXG4gKi9cbmJvZHkge1xuICBtYXJnaW46IDA7IH1cblxuLyogSFRNTDUgZGlzcGxheSBkZWZpbml0aW9uc1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGFueSBIVE1MNSBlbGVtZW50IGluIElFIDgvOS5cbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgZGV0YWlsc2Agb3IgYHN1bW1hcnlgIGluIElFIDEwLzExXG4gKiBhbmQgRmlyZWZveC5cbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgbWFpbmAgaW4gSUUgMTEuXG4gKi9cbmFydGljbGUsXG5hc2lkZSxcbmRldGFpbHMsXG5maWdjYXB0aW9uLFxuZmlndXJlLFxuZm9vdGVyLFxuaGVhZGVyLFxuaGdyb3VwLFxubWFpbixcbm1lbnUsXG5uYXYsXG5zZWN0aW9uLFxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi8qKlxuICogMS4gQ29ycmVjdCBgaW5saW5lLWJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGluIElFIDgvOS5cbiAqIDIuIE5vcm1hbGl6ZSB2ZXJ0aWNhbCBhbGlnbm1lbnQgb2YgYHByb2dyZXNzYCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAqL1xuYXVkaW8sXG5jYW52YXMsXG5wcm9ncmVzcyxcbnZpZGVvIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAvKiAxICovXG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICogUHJldmVudCBtb2Rlcm4gYnJvd3NlcnMgZnJvbSBkaXNwbGF5aW5nIGBhdWRpb2Agd2l0aG91dCBjb250cm9scy5cbiAqIFJlbW92ZSBleGNlc3MgaGVpZ2h0IGluIGlPUyA1IGRldmljZXMuXG4gKi9cbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogMDsgfVxuXG4vKipcbiAqIEFkZHJlc3MgYFtoaWRkZW5dYCBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC5cbiAqIEhpZGUgdGhlIGB0ZW1wbGF0ZWAgZWxlbWVudCBpbiBJRSA4LzkvMTAvMTEsIFNhZmFyaSwgYW5kIEZpcmVmb3ggPCAyMi5cbiAqL1xuW2hpZGRlbl0sXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLyogTGlua3Ncbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIGNvbG9yIGZyb20gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICovXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cblxuLyoqXG4gKiBJbXByb3ZlIHJlYWRhYmlsaXR5IG9mIGZvY3VzZWQgZWxlbWVudHMgd2hlbiB0aGV5IGFyZSBhbHNvIGluIGFuXG4gKiBhY3RpdmUvaG92ZXIgc3RhdGUuXG4gKi9cbmE6YWN0aXZlLFxuYTpob3ZlciB7XG4gIG91dGxpbmU6IDA7IH1cblxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3Ncbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAvMTEsIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkOyB9XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsZSBzZXQgdG8gYGJvbGRlcmAgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gKi9cbmRmbiB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxuXG4vKipcbiAqIEFkZHJlc3MgdmFyaWFibGUgYGgxYCBmb250LXNpemUgYW5kIG1hcmdpbiB3aXRoaW4gYHNlY3Rpb25gIGFuZCBgYXJ0aWNsZWBcbiAqIGNvbnRleHRzIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDsgfVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkuXG4gKi9cbm1hcmsge1xuICBiYWNrZ3JvdW5kOiAjZmYwO1xuICBjb2xvcjogIzAwMDsgfVxuXG4vKipcbiAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGFuZCB2YXJpYWJsZSBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlOyB9XG5cbi8qKlxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgYWZmZWN0aW5nIGBsaW5lLWhlaWdodGAgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyB9XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtOyB9XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTsgfVxuXG4vKiBFbWJlZGRlZCBjb250ZW50XG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBSZW1vdmUgYm9yZGVyIHdoZW4gaW5zaWRlIGBhYCBlbGVtZW50IGluIElFIDgvOS8xMC5cbiAqL1xuaW1nIHtcbiAgYm9yZGVyOiAwO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gIGhlaWdodDogYXV0bzsgfVxuXG4vKipcbiAqIENvcnJlY3Qgb3ZlcmZsb3cgbm90IGhpZGRlbiBpbiBJRSA5LzEwLzExLlxuICovXG5zdmc6bm90KDpyb290KSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuXG4vKiBHcm91cGluZyBjb250ZW50XG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBBZGRyZXNzIG1hcmdpbiBub3QgcHJlc2VudCBpbiBJRSA4LzkgYW5kIFNhZmFyaS5cbiAqL1xuZmlndXJlIHtcbiAgbWFyZ2luOiAxZW0gNDBweDsgfVxuXG4vKipcbiAqIEFkZHJlc3MgZGlmZmVyZW5jZXMgYmV0d2VlbiBGaXJlZm94IGFuZCBvdGhlciBicm93c2Vycy5cbiAqL1xuaHIge1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgaGVpZ2h0OiAwOyB9XG5cbi8qKlxuICogQ29udGFpbiBvdmVyZmxvdyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbnByZSB7XG4gIG92ZXJmbG93OiBhdXRvOyB9XG5cbi8qKlxuICogQWRkcmVzcyBvZGQgYGVtYC11bml0IGZvbnQgc2l6ZSByZW5kZXJpbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5jb2RlLFxua2JkLFxucHJlLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgZm9udC1zaXplOiAxZW07IH1cblxuLyogRm9ybXNcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIEtub3duIGxpbWl0YXRpb246IGJ5IGRlZmF1bHQsIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFggYWxsb3cgdmVyeSBsaW1pdGVkXG4gKiBzdHlsaW5nIG9mIGBzZWxlY3RgLCB1bmxlc3MgYSBgYm9yZGVyYCBwcm9wZXJ0eSBpcyBzZXQuXG4gKi9cbi8qKlxuICogMS4gQ29ycmVjdCBjb2xvciBub3QgYmVpbmcgaW5oZXJpdGVkLlxuICogICAgS25vd24gaXNzdWU6IGFmZmVjdHMgY29sb3Igb2YgZGlzYWJsZWQgZWxlbWVudHMuXG4gKiAyLiBDb3JyZWN0IGZvbnQgcHJvcGVydGllcyBub3QgYmVpbmcgaW5oZXJpdGVkLlxuICogMy4gQWRkcmVzcyBtYXJnaW5zIHNldCBkaWZmZXJlbnRseSBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICAvKiAxICovXG4gIGZvbnQ6IGluaGVyaXQ7XG4gIC8qIDIgKi9cbiAgbWFyZ2luOiAwO1xuICAvKiAzICovIH1cblxuLyoqXG4gKiBBZGRyZXNzIGBvdmVyZmxvd2Agc2V0IHRvIGBoaWRkZW5gIGluIElFIDgvOS8xMC8xMS5cbiAqL1xuYnV0dG9uIHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7IH1cblxuLyoqXG4gKiBBZGRyZXNzIGluY29uc2lzdGVudCBgdGV4dC10cmFuc2Zvcm1gIGluaGVyaXRhbmNlIGZvciBgYnV0dG9uYCBhbmQgYHNlbGVjdGAuXG4gKiBBbGwgb3RoZXIgZm9ybSBjb250cm9sIGVsZW1lbnRzIGRvIG5vdCBpbmhlcml0IGB0ZXh0LXRyYW5zZm9ybWAgdmFsdWVzLlxuICogQ29ycmVjdCBgYnV0dG9uYCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LCBJRSA4LzkvMTAvMTEsIGFuZCBPcGVyYS5cbiAqIENvcnJlY3QgYHNlbGVjdGAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveC5cbiAqL1xuYnV0dG9uLFxuc2VsZWN0IHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7IH1cblxuLyoqXG4gKiAxLiBBdm9pZCB0aGUgV2ViS2l0IGJ1ZyBpbiBBbmRyb2lkIDQuMC4qIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYFxuICogICAgYW5kIGB2aWRlb2AgY29udHJvbHMuXG4gKiAyLiBDb3JyZWN0IGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgYGlucHV0YCB0eXBlcyBpbiBpT1MuXG4gKiAzLiBJbXByb3ZlIHVzYWJpbGl0eSBhbmQgY29uc2lzdGVuY3kgb2YgY3Vyc29yIHN0eWxlIGJldHdlZW4gaW1hZ2UtdHlwZVxuICogICAgYGlucHV0YCBhbmQgb3RoZXJzLlxuICovXG5idXR0b24sXG5odG1sIGlucHV0W3R5cGU9XCJidXR0b25cIl0sXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0sXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIC8qIDIgKi9cbiAgY3Vyc29yOiBwb2ludGVyO1xuICAvKiAzICovIH1cblxuLyoqXG4gKiBSZS1zZXQgZGVmYXVsdCBjdXJzb3IgZm9yIGRpc2FibGVkIGVsZW1lbnRzLlxuICovXG5idXR0b25bZGlzYWJsZWRdLFxuaHRtbCBpbnB1dFtkaXNhYmxlZF0ge1xuICBjdXJzb3I6IGRlZmF1bHQ7IH1cblxuLyoqXG4gKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgYm9yZGVyIGluIEZpcmVmb3ggNCsuXG4gKi9cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbmlucHV0OjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwOyB9XG5cbi8qKlxuICogQWRkcmVzcyBGaXJlZm94IDQrIHNldHRpbmcgYGxpbmUtaGVpZ2h0YCBvbiBgaW5wdXRgIHVzaW5nIGAhaW1wb3J0YW50YCBpblxuICogdGhlIFVBIHN0eWxlc2hlZXQuXG4gKi9cbmlucHV0IHtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDsgfVxuXG4vKipcbiAqIEl0J3MgcmVjb21tZW5kZWQgdGhhdCB5b3UgZG9uJ3QgYXR0ZW1wdCB0byBzdHlsZSB0aGVzZSBlbGVtZW50cy5cbiAqIEZpcmVmb3gncyBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0IHJlc3BlY3QgYm94LXNpemluZywgcGFkZGluZywgb3Igd2lkdGguXG4gKlxuICogMS4gQWRkcmVzcyBib3ggc2l6aW5nIHNldCB0byBgY29udGVudC1ib3hgIGluIElFIDgvOS8xMC5cbiAqIDIuIFJlbW92ZSBleGNlc3MgcGFkZGluZyBpbiBJRSA4LzkvMTAuXG4gKi9cbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbmlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC8qIDEgKi9cbiAgcGFkZGluZzogMDtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICogRml4IHRoZSBjdXJzb3Igc3R5bGUgZm9yIENocm9tZSdzIGluY3JlbWVudC9kZWNyZW1lbnQgYnV0dG9ucy4gRm9yIGNlcnRhaW5cbiAqIGBmb250LXNpemVgIHZhbHVlcyBvZiB0aGUgYGlucHV0YCwgaXQgY2F1c2VzIHRoZSBjdXJzb3Igc3R5bGUgb2YgdGhlXG4gKiBkZWNyZW1lbnQgYnV0dG9uIHRvIGNoYW5nZSBmcm9tIGBkZWZhdWx0YCB0byBgdGV4dGAuXG4gKi9cbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvOyB9XG5cbi8qKlxuICogMS4gQWRkcmVzcyBgYXBwZWFyYW5jZWAgc2V0IHRvIGBzZWFyY2hmaWVsZGAgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gKiAyLiBBZGRyZXNzIGBib3gtc2l6aW5nYCBzZXQgdG8gYGJvcmRlci1ib3hgIGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuICovXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG4gIC8qIDEgKi9cbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAqIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBzZWFyY2ggY2FuY2VsIGJ1dHRvbiBpbiBTYWZhcmkgYW5kIENocm9tZSBvbiBPUyBYLlxuICogU2FmYXJpIChidXQgbm90IENocm9tZSkgY2xpcHMgdGhlIGNhbmNlbCBidXR0b24gd2hlbiB0aGUgc2VhcmNoIGlucHV0IGhhc1xuICogcGFkZGluZyAoYW5kIGB0ZXh0ZmllbGRgIGFwcGVhcmFuY2UpLlxuICovXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgfVxuXG4vKipcbiAqIERlZmluZSBjb25zaXN0ZW50IGJvcmRlciwgbWFyZ2luLCBhbmQgcGFkZGluZy5cbiAqL1xuZmllbGRzZXQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICBtYXJnaW46IDAgMnB4O1xuICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07IH1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGBjb2xvcmAgbm90IGJlaW5nIGluaGVyaXRlZCBpbiBJRSA4LzkvMTAvMTEuXG4gKiAyLiBSZW1vdmUgcGFkZGluZyBzbyBwZW9wbGUgYXJlbid0IGNhdWdodCBvdXQgaWYgdGhleSB6ZXJvIG91dCBmaWVsZHNldHMuXG4gKi9cbmxlZ2VuZCB7XG4gIGJvcmRlcjogMDtcbiAgLyogMSAqL1xuICBwYWRkaW5nOiAwO1xuICAvKiAyICovIH1cblxuLyoqXG4gKiBSZW1vdmUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgOC85LzEwLzExLlxuICovXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvOyB9XG5cbi8qKlxuICogRG9uJ3QgaW5oZXJpdCB0aGUgYGZvbnQtd2VpZ2h0YCAoYXBwbGllZCBieSBhIHJ1bGUgYWJvdmUpLlxuICogTk9URTogdGhlIGRlZmF1bHQgY2Fubm90IHNhZmVseSBiZSBjaGFuZ2VkIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFguXG4gKi9cbm9wdGdyb3VwIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuLyogVGFibGVzXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBSZW1vdmUgbW9zdCBzcGFjaW5nIGJldHdlZW4gdGFibGUgY2VsbHMuXG4gKi9cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7IH1cblxudGQsXG50aCB7XG4gIHBhZGRpbmc6IDA7IH1cblxuKiB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuYm9keSB7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIGNvbG9yOiAjNjQ3YTdiO1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjVzIGN1YmljLWJlemllcigwLCAwLjc4LCAwLjI1LCAxKSwgYmFja2dyb3VuZCAwLjVzIGN1YmljLWJlemllcigwLCAwLjc4LCAwLjI1LCAxKTtcbiAgZm9udC1mYW1pbHk6IFwiR290aGFtIFNTbSBBXCIsIFwiR290aGFtIFNTbSBCXCIsIEhlbHZldGljYSwgQXJpYWwsIFNhbnMtc2VyaWY7XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsgfVxuICBib2R5Lm9yYW5nZSB7XG4gICAgYmFja2dyb3VuZDogI2ZmNWIwMDtcbiAgICBjb2xvcjogI2ZmZmZmZjsgfVxuICBib2R5LmFxdWEge1xuICAgIGJhY2tncm91bmQ6ICMwMGQxZDk7XG4gICAgY29sb3I6ICNmZmZmZmY7IH1cbiAgYm9keS5uZW9uLWdyZWVuIHtcbiAgICBiYWNrZ3JvdW5kOiAjMDRkZTM4O1xuICAgIGNvbG9yOiAjZmZmZmZmOyB9XG4gIGJvZHkuc2xhdGUge1xuICAgIGJhY2tncm91bmQ6ICNlZGYzZjM7XG4gICAgY29sb3I6ICM2NDdhN2I7IH1cblxuYSB7XG4gIGNvbG9yOiAjZmY1YjAwO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuNXMgY3ViaWMtYmV6aWVyKDAsIDAuNzgsIDAuMjUsIDEpO1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgdHJhbnNwYXJlbnQ7IH1cbiAgYTpob3ZlciB7XG4gICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICM2NDdhN2I7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogaW5oZXJpdDsgfVxuICBib2R5Lm9yYW5nZSBhIHtcbiAgICBjb2xvcjogIzQzMjgyMTsgfVxuICBib2R5Lm5lb24tZ3JlZW4gYSB7XG4gICAgY29sb3I6ICMyZDY0M2E7IH1cbiAgYm9keS5hcXVhIGEge1xuICAgIGNvbG9yOiAjMmQ2MTYzOyB9XG4gIGJvZHkuc2xhdGUgYSB7XG4gICAgY29sb3I6ICNmZmZmZmY7IH1cblxuaDEsXG5oMiB7XG4gIG1hcmdpbjogMC42N3JlbSAwO1xuICBmb250OiA1MDAgNi4xdncvMS4xIFwiU2VudGluZWwgU1NtIEFcIiwgXCJTZW50aW5lbCBTU20gQlwiLCBHZW9yZ2lhLCBTZXJpZjsgfVxuICBoMSBlbSxcbiAgaDIgZW0ge1xuICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG4gICAgZm9udC1zdHlsZTogaXRhbGljOyB9XG5cbmgyIHtcbiAgZm9udC1zaXplOiAydnc7IH1cblxuaDMge1xuICBmb250LXdlaWdodDogNTAwO1xuICBmb250LWZhbWlseTogXCJHb3RoYW0gU1NtIEFcIiwgXCJHb3RoYW0gU1NtIEJcIiwgSGVsdmV0aWNhLCBBcmlhbCwgU2Fucy1zZXJpZjtcbiAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgZm9udC1zaXplOiAycmVtOyB9XG5cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogNTAwOyB9XG5cbmhyIHtcbiAgbWFyZ2luOiA0cmVtIDA7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICNlZGYzZjM7IH1cblxuY29kZSB7XG4gIGZvbnQtZmFtaWx5OiBNb25hY28sIFwiTHVjaWRhIENvbnNvbGVcIiwgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IGluaGVyaXQ7IH1cblxuW2RhdGEtYXNwZWN0LXJhdGlvXSB7XG4gIGhlaWdodDogMDsgfVxuXG5bZGF0YS1hc3BlY3QtcmF0aW89XCIxOjFcIl0ge1xuICBwYWRkaW5nLWJvdHRvbTogMTAwJTsgfVxuXG5bZGF0YS1hc3BlY3QtcmF0aW89XCIxOjJcIl0ge1xuICBwYWRkaW5nLWJvdHRvbTogNTAlOyB9XG5cbltkYXRhLWFzcGVjdC1yYXRpbz1cIjM6MlwiXSB7XG4gIHBhZGRpbmctYm90dG9tOiA2Ni42NjY2JTsgfVxuXG5bZGF0YS1hc3BlY3QtcmF0aW89XCIxNjo5XCJdIHtcbiAgcGFkZGluZy1ib3R0b206IDU2LjI1JTsgfVxuXG5bZGF0YS1hc3BlY3QtcmF0aW89XCI0OjNcIl0ge1xuICBwYWRkaW5nLWJvdHRvbTogNzUlOyB9XG5cbltkYXRhLWFzcGVjdC1yYXRpbz1cIjQ6MVwiXSB7XG4gIHBhZGRpbmctYm90dG9tOiAyNSU7IH1cblxuLmJ1dHRvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtZmFtaWx5OiBcIkdvdGhhbSBTU20gQVwiLCBcIkdvdGhhbSBTU20gQlwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBTYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogNTAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBwYWRkaW5nOiAxcmVtIDIuNXJlbTtcbiAgYm9yZGVyOiAycHggc29saWQgIzY0N2E3YjtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjI1cyBjdWJpYy1iZXppZXIoMCwgMC42LCAwLjcsIDEpLCBvcGFjaXR5IDAuMjVzIGN1YmljLWJlemllcigwLCAwLjYsIDAuNywgMSk7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgY29sb3I6ICM2NDdhN2I7XG4gIGJvcmRlci1jb2xvcjogIzY0N2E3YjsgfVxuICAuYnV0dG9uW2Rpc2FibGVkXSB7XG4gICAgb3BhY2l0eTogMC41OyB9XG4gICAgLmJ1dHRvbltkaXNhYmxlZF06YWZ0ZXIge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwKTsgfVxuICAuYnV0dG9uOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICB3aWR0aDogMXJlbTtcbiAgICBoZWlnaHQ6IDFyZW07XG4gICAgYmFja2dyb3VuZDogI2NkZTNlNDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMjVzIGN1YmljLWJlemllcigwLCAwLjYsIDAuNywgMSk7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAtMC41cmVtO1xuICAgIGJvdHRvbTogLTAuNXJlbTtcbiAgICB6LWluZGV4OiAtMTsgfVxuICAuYnV0dG9uLndoaXRlOmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmOyB9XG4gIC5idXR0b24ub3JhbmdlOmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmY1YjAwOyB9XG4gIC5idXR0b24uY29jb2E6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQ6ICM0MzI4MjE7IH1cbiAgLmJ1dHRvbi5uZW9uLWdyZWVuOmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjMDRkZTM4OyB9XG4gIC5idXR0b24uZm9yZXN0OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjMmQ2NDNhOyB9XG4gIC5idXR0b24uYXF1YTphZnRlciB7XG4gICAgYmFja2dyb3VuZDogIzAwZDFkOTsgfVxuICAuYnV0dG9uLnBldHJvbDphZnRlciB7XG4gICAgYmFja2dyb3VuZDogIzJkNjE2MzsgfVxuICAuYnV0dG9uLm1pc3Q6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQ6ICNlZGYzZjM7IH1cbiAgLmJ1dHRvbi5ibHVlLWdyZXk6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQ6ICNjZGUzZTQ7IH1cbiAgLmJ1dHRvbi5zbGF0ZTphZnRlciB7XG4gICAgYmFja2dyb3VuZDogIzY0N2E3YjsgfVxuICAuYnV0dG9uOmhvdmVyOm5vdChbZGlzYWJsZWRdKTphZnRlciB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTMwJSwgLTMwJSkgc2NhbGUoMi4yNSk7IH1cbiAgLmJ1dHRvbjphY3RpdmU6bm90KFtkaXNhYmxlZF0pOmFmdGVyIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMzAlLCAtMzAlKSBzY2FsZSgyLjgpOyB9XG4gIGJvZHkub3JhbmdlIC5idXR0b24ge1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIGJvcmRlci1jb2xvcjogIzQzMjgyMTsgfVxuICAgIGJvZHkub3JhbmdlIC5idXR0b246YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZDogI2ZmZmZmZjsgfVxuICBib2R5LmFxdWEgLmJ1dHRvbiB7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgYm9yZGVyLWNvbG9yOiAjMmQ2MTYzOyB9XG4gICAgYm9keS5hcXVhIC5idXR0b246YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZDogI2ZmZmZmZjsgfVxuICBib2R5Lm5lb24tZ3JlZW4gLmJ1dHRvbiB7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgYm9yZGVyLWNvbG9yOiAjMmQ2NDNhOyB9XG4gICAgYm9keS5uZW9uLWdyZWVuIC5idXR0b246YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZDogI2ZmZmZmZjsgfVxuICBib2R5LnNsYXRlIC5idXR0b24ge1xuICAgIGNvbG9yOiAjNjQ3YTdiO1xuICAgIGJvcmRlci1jb2xvcjogIzY0N2E3YjsgfVxuICAgIGJvZHkuc2xhdGUgLmJ1dHRvbjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAjNjQ3YTdiOyB9XG5cbi5ibGlwcGVyIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBwYWRkaW5nOiAwO1xuICB0ZXh0LWluZGVudDogLTk5OTlweDtcbiAgd2lkdGg6IDQwcHg7XG4gIGhlaWdodDogNDBweDtcbiAgYm90dG9tOiAwO1xuICByaWdodDogMDsgfVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogR3JpZCBTeXN0ZW1cbiAqXG4gKiBUaGUgbmV3IHdlYnNpdGUgaGFzIGFuIHVuZGVybHlpbmcgZ3JpZCBzeXN0ZW0uIFRoZSBzeXN0ZW0gdXNlcyBmbGV4Ym94IGFuZFxuICogd2lkdGhzIGJ5IGRlZmF1bHQsIGJ1dCBwcmVmZXJzIEBncmlkIHJ1bGVzIGZvciBwcm9ncmVzc2l2ZSBlbmhhbmNlbWVudC5cbiAqXG4gKiBUaGlzIG1lYW5zIElFMTEgaXMgY2F0ZXJlZCB0byB3aXRoIGEgYmFzaWMgbGF5b3V0LCBidXQgYmV0dGVyIGxheW91dCB0b29sc1xuICogYXJlIGF2YWlsYWJsZSBvbiBtb2Rlcm4gYnJvd3NlcnMuXG4gKlxuICogQSBndXR0ZXIgb2YgMiUgb2YgdGhlIHZpZXd3aWR0aCBpcyBhcHBsaWVkIGVpdGhlciBzaWRlIG9mIHRoZSBncmlkLlxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi5ncmlkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBwYWRkaW5nOiAwIDJ2dzsgfVxuICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAuZ3JpZCB7XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMjAsIDFmciBbY29sXSk7IH1cbiAgICAgIC5ncmlkIC5pdGVtIHtcbiAgICAgICAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDsgfSB9XG5cbkBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkgeyB9XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBTVkcgQ29udGFpbmVyXG4gKlxuICogQWxsb3dzIHlvdSB0byBzaXplIFNWR3Mgd2l0aCBwYWRkaW5nIChzZWUgc3ZnLWNvbnRhaW5tZW50LmpzIEphdmFTY3JpcHQpXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnN2Zy1jb250YWluZXIge1xuICBoZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuc3ZnLWNvbnRhaW5lciBzdmcge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7IH1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIEZvciBtb2Rlcm4gYnJvd3NlcnNcbiAqIDEuIFRoZSBzcGFjZSBjb250ZW50IGlzIG9uZSB3YXkgdG8gYXZvaWQgYW4gT3BlcmEgYnVnIHdoZW4gdGhlXG4gKiAgICBjb250ZW50ZWRpdGFibGUgYXR0cmlidXRlIGlzIGluY2x1ZGVkIGFueXdoZXJlIGVsc2UgaW4gdGhlIGRvY3VtZW50LlxuICogICAgT3RoZXJ3aXNlIGl0IGNhdXNlcyBzcGFjZSB0byBhcHBlYXIgYXQgdGhlIHRvcCBhbmQgYm90dG9tIG9mIGVsZW1lbnRzXG4gKiAgICB0aGF0IGFyZSBjbGVhcmZpeGVkLlxuICogMi4gVGhlIHVzZSBvZiBgdGFibGVgIHJhdGhlciB0aGFuIGBibG9ja2AgaXMgb25seSBuZWNlc3NhcnkgaWYgdXNpbmdcbiAqICAgIGA6YmVmb3JlYCB0byBjb250YWluIHRoZSB0b3AtbWFyZ2lucyBvZiBjaGlsZCBlbGVtZW50cy5cbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4uY2Y6YmVmb3JlLFxuLmNmOmFmdGVyIHtcbiAgY29udGVudDogXCIgXCI7XG4gIC8qIDEgKi9cbiAgZGlzcGxheTogdGFibGU7XG4gIC8qIDIgKi8gfVxuXG4uY2Y6YWZ0ZXIge1xuICBjbGVhcjogYm90aDsgfVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogRml4IGZvciBwbHlyIGZ1bGxzY3JlZW4gYmVpbmcgYnJva2VuIGFjY2lkZW50bHkuXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnBseXItLWZ1bGxzY3JlZW4tYWN0aXZlIHtcbiAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7IH1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIE1lZGlhIE9iamVjdFxuICpcbiAqIGh0dHA6Ly93d3cuc3R1YmJvcm5lbGxhLm9yZy9jb250ZW50LzIwMTAvMDYvMjUvdGhlLW1lZGlhLW9iamVjdC1zYXZlcy1odW5kcmVkcy1vZi1saW5lcy1vZi1jb2RlL1xuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi5tZWRpYSB7XG4gIG1hcmdpbjogMXJlbTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwOyB9XG4gIC5tZWRpYSAuaW1nIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDFyZW07IH1cbiAgLm1lZGlhIC5iZCB7XG4gICAgZmxleDogMSAxO1xuICAgIGFsaWduLXNlbGY6IGNlbnRlcjsgfVxuXG4ucG9pLWljb24ge1xuICB3aWR0aDogODBweDtcbiAgaGVpZ2h0OiA4MHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDU7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiBub25lO1xuICBvdXRsaW5lOiBub25lO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHRleHQtaW5kZW50OiAtOTk5OXJlbTsgfVxuICAucG9pLWljb24ubGFiZWxsZWQge1xuICAgIG1hcmdpbi1ib3R0b206IDEuM3JlbTsgfVxuICAucG9pLWljb24gLmxhYmVsIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxMDAlO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdGV4dC1pbmRlbnQ6IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXdlaWdodDogMjAwO1xuICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgdHJhbnNpdGlvbjogY29sb3IgMC4yNXMgY3ViaWMtYmV6aWVyKDAsIDAuNiwgMC43LCAxKTsgfVxuICAucG9pLWljb25bdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgd2lkdGg6IDQwcHg7XG4gICAgaGVpZ2h0OiA0MHB4OyB9XG4gICAgLnBvaS1pY29uW3R5cGU9XCJzdWJtaXRcIl06YmVmb3JlIHtcbiAgICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgICB3aWR0aDogMTBweDtcbiAgICAgIGhlaWdodDogMTBweDsgfVxuICAucG9pLWljb24gc3ZnIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB6LWluZGV4OiA1O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjI1cyBjdWJpYy1iZXppZXIoMCwgMC42LCAwLjcsIDEpO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjsgfVxuICAgIC5wb2ktaWNvbiBzdmcgcGF0aCxcbiAgICAucG9pLWljb24gc3ZnIGNpcmNsZSxcbiAgICAucG9pLWljb24gc3ZnIHBvbHlsaW5lLFxuICAgIC5wb2ktaWNvbiBzdmcgbGluZSB7XG4gICAgICBzdHJva2U6ICM2NDdhN2I7XG4gICAgICB2ZWN0b3ItZWZmZWN0OiBub24tc2NhbGluZy1zdHJva2U7XG4gICAgICB0cmFuc2l0aW9uOiBmaWxsIDAuMjVzIGN1YmljLWJlemllcigwLCAwLjc4LCAwLjI1LCAxKSwgc3Ryb2tlIDAuMjVzIGN1YmljLWJlemllcigwLCAwLjc4LCAwLjI1LCAxKTsgfVxuICAgICAgYm9keS5vcmFuZ2UgLnBvaS1pY29uIHN2ZyBwYXRoLCBib2R5Lm9yYW5nZVxuICAgICAgLnBvaS1pY29uIHN2ZyBjaXJjbGUsIGJvZHkub3JhbmdlXG4gICAgICAucG9pLWljb24gc3ZnIHBvbHlsaW5lLCBib2R5Lm9yYW5nZVxuICAgICAgLnBvaS1pY29uIHN2ZyBsaW5lIHtcbiAgICAgICAgc3Ryb2tlOiAjNDMyODIxOyB9XG4gICAgICBib2R5LmFxdWEgLnBvaS1pY29uIHN2ZyBwYXRoLCBib2R5LmFxdWFcbiAgICAgIC5wb2ktaWNvbiBzdmcgY2lyY2xlLCBib2R5LmFxdWFcbiAgICAgIC5wb2ktaWNvbiBzdmcgcG9seWxpbmUsIGJvZHkuYXF1YVxuICAgICAgLnBvaS1pY29uIHN2ZyBsaW5lIHtcbiAgICAgICAgc3Ryb2tlOiAjMmQ2MTYzOyB9XG4gICAgICBib2R5Lm5lb24tZ3JlZW4gLnBvaS1pY29uIHN2ZyBwYXRoLCBib2R5Lm5lb24tZ3JlZW5cbiAgICAgIC5wb2ktaWNvbiBzdmcgY2lyY2xlLCBib2R5Lm5lb24tZ3JlZW5cbiAgICAgIC5wb2ktaWNvbiBzdmcgcG9seWxpbmUsIGJvZHkubmVvbi1ncmVlblxuICAgICAgLnBvaS1pY29uIHN2ZyBsaW5lIHtcbiAgICAgICAgc3Ryb2tlOiAjMmQ2NDNhOyB9XG4gICAgICBib2R5LnNsYXRlIC5wb2ktaWNvbiBzdmcgcGF0aCwgYm9keS5zbGF0ZVxuICAgICAgLnBvaS1pY29uIHN2ZyBjaXJjbGUsIGJvZHkuc2xhdGVcbiAgICAgIC5wb2ktaWNvbiBzdmcgcG9seWxpbmUsIGJvZHkuc2xhdGVcbiAgICAgIC5wb2ktaWNvbiBzdmcgbGluZSB7XG4gICAgICAgIHN0cm9rZTogIzY0N2E3YjsgfVxuICAucG9pLWljb246aG92ZXIge1xuICAgIGJvcmRlcjogbm9uZTsgfVxuICAgIC5wb2ktaWNvbjpob3ZlciBzdmcge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjc1KTsgfVxuICAucG9pLWljb246YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBiYWNrZ3JvdW5kOiAjY2RlM2U0O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IC0xO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjI1cyBjdWJpYy1iZXppZXIoMCwgMC42LCAwLjcsIDEpOyB9XG4gICAgYm9keS5vcmFuZ2UgLnBvaS1pY29uOmJlZm9yZSxcbiAgICBib2R5LmFxdWEgLnBvaS1pY29uOmJlZm9yZSxcbiAgICBib2R5LnNsYXRlIC5wb2ktaWNvbjpiZWZvcmUsXG4gICAgYm9keS5uZW9uLWdyZWVuIC5wb2ktaWNvbjpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZDogI2ZmZmZmZjsgfVxuICAucG9pLWljb24udHJhaWwtaWNvbiB7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4gICAgLnBvaS1pY29uLnRyYWlsLWljb246YmVmb3JlIHtcbiAgICAgIHdpZHRoOiA3cHg7XG4gICAgICBoZWlnaHQ6IDdweDsgfVxuICAucG9pLWljb24ud2hpdGUge1xuICAgIGNvbG9yOiAjZmZmZmZmOyB9XG4gIC5wb2ktaWNvbi53aGl0ZTpiZWZvcmUge1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7IH1cbiAgLnBvaS1pY29uLm9yYW5nZSB7XG4gICAgY29sb3I6ICNmZjViMDA7IH1cbiAgLnBvaS1pY29uLm9yYW5nZTpiZWZvcmUge1xuICAgIGJhY2tncm91bmQ6ICNmZjViMDA7IH1cbiAgLnBvaS1pY29uLmNvY29hIHtcbiAgICBjb2xvcjogIzQzMjgyMTsgfVxuICAucG9pLWljb24uY29jb2E6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kOiAjNDMyODIxOyB9XG4gIC5wb2ktaWNvbi5uZW9uLWdyZWVuIHtcbiAgICBjb2xvcjogIzA0ZGUzODsgfVxuICAucG9pLWljb24ubmVvbi1ncmVlbjpiZWZvcmUge1xuICAgIGJhY2tncm91bmQ6ICMwNGRlMzg7IH1cbiAgLnBvaS1pY29uLmZvcmVzdCB7XG4gICAgY29sb3I6ICMyZDY0M2E7IH1cbiAgLnBvaS1pY29uLmZvcmVzdDpiZWZvcmUge1xuICAgIGJhY2tncm91bmQ6ICMyZDY0M2E7IH1cbiAgLnBvaS1pY29uLmFxdWEge1xuICAgIGNvbG9yOiAjMDBkMWQ5OyB9XG4gIC5wb2ktaWNvbi5hcXVhOmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZDogIzAwZDFkOTsgfVxuICAucG9pLWljb24ucGV0cm9sIHtcbiAgICBjb2xvcjogIzJkNjE2MzsgfVxuICAucG9pLWljb24ucGV0cm9sOmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZDogIzJkNjE2MzsgfVxuICAucG9pLWljb24ubWlzdCB7XG4gICAgY29sb3I6ICNlZGYzZjM7IH1cbiAgLnBvaS1pY29uLm1pc3Q6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kOiAjZWRmM2YzOyB9XG4gIC5wb2ktaWNvbi5ibHVlLWdyZXkge1xuICAgIGNvbG9yOiAjY2RlM2U0OyB9XG4gIC5wb2ktaWNvbi5ibHVlLWdyZXk6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kOiAjY2RlM2U0OyB9XG4gIC5wb2ktaWNvbi5zbGF0ZSB7XG4gICAgY29sb3I6ICM2NDdhN2I7IH1cbiAgLnBvaS1pY29uLnNsYXRlOmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZDogIzY0N2E3YjsgfVxuICAucG9pLWljb246aG92ZXI6YmVmb3JlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSBzY2FsZSg0KSAhaW1wb3J0YW50OyB9XG4gIC5wb2ktaWNvbjphY3RpdmU6YmVmb3JlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSBzY2FsZSg0LjgpICFpbXBvcnRhbnQ7IH1cbiAgLnBvaS1pY29uLmJvdHRvbTpiZWZvcmUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIDEwMCUpOyB9XG4gIC5wb2ktaWNvbi5ib3R0b20ucmlnaHQ6YmVmb3JlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxMDAlLCAxMDAlKTsgfVxuICAucG9pLWljb24uYm90dG9tLmxlZnQ6YmVmb3JlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTAwJSwgMTAwJSk7IH1cbiAgLnBvaS1pY29uLnJpZ2h0OmJlZm9yZSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTAwJSwgLTUwJSk7IH1cbiAgLnBvaS1pY29uLmxlZnQ6YmVmb3JlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTAwJSwgLTUwJSk7IH1cbiAgLnBvaS1pY29uLnRvcDpiZWZvcmUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC0xMDAlKTsgfVxuICAucG9pLWljb24udG9wLnJpZ2h0OmJlZm9yZSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTAwJSwgLTEwMCUpOyB9XG4gIC5wb2ktaWNvbi50b3AubGVmdDpiZWZvcmUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xMDAlLCAtMTAwJSk7IH1cblxuLmNhdGVnb3J5LW1hcmsge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXdlaWdodDogNTAwO1xuICBmb250LXNpemU6IDEuMTI1cmVtO1xuICBtYXJnaW46IDRlbSAwO1xuICBjb2xvcjogIzY0N2E3YjtcbiAgdGV4dC1pbmRlbnQ6IC0ycmVtOyB9XG4gIC5jYXRlZ29yeS1tYXJrOmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGhlaWdodDogMXJlbTtcbiAgICB3aWR0aDogMXJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4yNXMgY3ViaWMtYmV6aWVyKDAsIDAuNiwgMC43LCAxKSwgdHJhbnNmb3JtIDAuMjVzIGN1YmljLWJlemllcigwLCAwLjYsIDAuNywgMSk7IH1cbiAgLmNhdGVnb3J5LW1hcmsud2hpdGU6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmOyB9XG4gIC5jYXRlZ29yeS1tYXJrLm9yYW5nZTpiZWZvcmUge1xuICAgIGJhY2tncm91bmQ6ICNmZjViMDA7IH1cbiAgLmNhdGVnb3J5LW1hcmsuY29jb2E6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kOiAjNDMyODIxOyB9XG4gIC5jYXRlZ29yeS1tYXJrLm5lb24tZ3JlZW46YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kOiAjMDRkZTM4OyB9XG4gIC5jYXRlZ29yeS1tYXJrLmZvcmVzdDpiZWZvcmUge1xuICAgIGJhY2tncm91bmQ6ICMyZDY0M2E7IH1cbiAgLmNhdGVnb3J5LW1hcmsuYXF1YTpiZWZvcmUge1xuICAgIGJhY2tncm91bmQ6ICMwMGQxZDk7IH1cbiAgLmNhdGVnb3J5LW1hcmsucGV0cm9sOmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZDogIzJkNjE2MzsgfVxuICAuY2F0ZWdvcnktbWFyay5taXN0OmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZDogI2VkZjNmMzsgfVxuICAuY2F0ZWdvcnktbWFyay5ibHVlLWdyZXk6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kOiAjY2RlM2U0OyB9XG4gIC5jYXRlZ29yeS1tYXJrLnNsYXRlOmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZDogIzY0N2E3YjsgfVxuICBib2R5Lm9yYW5nZSAuY2F0ZWdvcnktbWFyayxcbiAgYm9keS5hcXVhIC5jYXRlZ29yeS1tYXJrLFxuICBib2R5Lm5lb24tZ3JlZW4gLmNhdGVnb3J5LW1hcmsge1xuICAgIGNvbG9yOiAjZmZmZmZmOyB9XG4gICAgYm9keS5vcmFuZ2UgLmNhdGVnb3J5LW1hcms6YmVmb3JlLFxuICAgIGJvZHkuYXF1YSAuY2F0ZWdvcnktbWFyazpiZWZvcmUsXG4gICAgYm9keS5uZW9uLWdyZWVuIC5jYXRlZ29yeS1tYXJrOmJlZm9yZSB7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjUpOyB9XG4gIGJvZHkuc2xhdGUgLmNhdGVnb3J5LW1hcmsge1xuICAgIGNvbG9yOiAjNjQ3YTdiOyB9XG4gICAgYm9keS5zbGF0ZSAuY2F0ZWdvcnktbWFyazpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZDogIzY0N2E3YjtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC41KTsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NTBweCkge1xuICAuY2F0ZWdvcnktbWFyayB7XG4gICAgbWFyZ2luOiAyZW0gMDsgfSB9XG5cbi5sb2FkLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgei1pbmRleDogMjsgfVxuICAubG9hZC1jb250YWluZXI6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC0xMHB4O1xuICAgIGxlZnQ6IC0xMHB4O1xuICAgIHJpZ2h0OiAtMTBweDtcbiAgICBib3R0b206IC0xMHB4O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIG9wYWNpdHk6IDAuODtcbiAgICB6LWluZGV4OiAxO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMXMgY3ViaWMtYmV6aWVyKDAsIDAuNiwgMC43LCAxKSwgb3BhY2l0eSAxcyBjdWJpYy1iZXppZXIoMCwgMC42LCAwLjcsIDEpOyB9XG4gIC5sb2FkLWNvbnRhaW5lciAubGF6eS1sb2FkZWQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxcyBjdWJpYy1iZXppZXIoMCwgMC42LCAwLjcsIDEpOyB9XG4gIC5sb2FkLWNvbnRhaW5lci5sb2FkZWQ6YWZ0ZXIge1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgLmxvYWQtY29udGFpbmVyLmxvYWRlZCAubGF6eS1sb2FkZWQge1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgLmxvYWQtY29udGFpbmVyLndoaXRlOmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmY1YjAwOyB9XG4gIC5sb2FkLWNvbnRhaW5lci5vcmFuZ2U6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQ6ICM0MzI4MjE7IH1cbiAgLmxvYWQtY29udGFpbmVyLmNvY29hOmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjMDRkZTM4OyB9XG4gIC5sb2FkLWNvbnRhaW5lci5uZW9uLWdyZWVuOmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjMmQ2NDNhOyB9XG4gIC5sb2FkLWNvbnRhaW5lci5mb3Jlc3Q6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQ6ICMwMGQxZDk7IH1cbiAgLmxvYWQtY29udGFpbmVyLmFxdWE6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQ6ICMyZDYxNjM7IH1cbiAgLmxvYWQtY29udGFpbmVyLnBldHJvbDphZnRlciB7XG4gICAgYmFja2dyb3VuZDogI2VkZjNmMzsgfVxuICAubG9hZC1jb250YWluZXIubWlzdDphZnRlciB7XG4gICAgYmFja2dyb3VuZDogI2NkZTNlNDsgfVxuICAubG9hZC1jb250YWluZXIuYmx1ZS1ncmV5OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjNjQ3YTdiOyB9XG4gIC5sb2FkLWNvbnRhaW5lci5zbGF0ZTphZnRlciB7XG4gICAgYmFja2dyb3VuZDogIzY0N2E3YjsgfVxuICBib2R5Lm9yYW5nZSAubG9hZC1jb250YWluZXI6YWZ0ZXIsXG4gIGJvZHkuYXF1YSAubG9hZC1jb250YWluZXI6YWZ0ZXIsXG4gIGJvZHkubmVvbi1ncmVlbiAubG9hZC1jb250YWluZXI6YWZ0ZXIsXG4gIGJvZHkuc2xhdGUgLmxvYWQtY29udGFpbmVyOmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjNjQ3YTdiOyB9XG5cbi5wb3N0LWJvZHkgcCA+IGltZyB7XG4gIG1hcmdpbjogMnJlbSAwOyB9XG5cbi53cC12aWRlbyB7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogYXV0bzsgfVxuXG4ud3AtdmlkZW8tc2hvcnRjb2RlIHZpZGVvLFxudmlkZW8ud3AtdmlkZW8tc2hvcnRjb2RlIHtcbiAgaGVpZ2h0OiBhdXRvOyB9XG5cbi5jcm93ZC1pZGVudGlmaWVkIHtcbiAgY29sb3I6ICNmZjViMDA7IH1cbiAgYm9keS5vcmFuZ2UgLmNyb3dkLWlkZW50aWZpZWQsXG4gIGJvZHkuYXF1YSAuY3Jvd2QtaWRlbnRpZmllZCxcbiAgYm9keS5uZW9uLWdyZWVuIC5jcm93ZC1pZGVudGlmaWVkLFxuICBib2R5LnNsYXRlIC5jcm93ZC1pZGVudGlmaWVkIHtcbiAgICBjb2xvcjogI2ZmZmZmZjsgfVxuXG5pbnB1dCxcbnRleHRhcmVhIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMDtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjNDMyODIxO1xuICBwYWRkaW5nOiAwLjVyZW0gMDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW46IDAgMC41cmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBvdXRsaW5lOiBub25lO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBmb250LXdlaWdodDogNTAwO1xuICBib3JkZXItcmFkaXVzOiAwOyB9XG4gIGlucHV0OjpwbGFjZWhvbGRlcixcbiAgdGV4dGFyZWE6OnBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogI2ZmZmZmZjsgfVxuICBpbnB1dDpub3QoaW5wdXRbdHlwZT1cInJhbmdlXCJdKSxcbiAgdGV4dGFyZWE6bm90KGlucHV0W3R5cGU9XCJyYW5nZVwiXSkge1xuICAgIG1pbi13aWR0aDogMjFyZW07IH1cblxuc2VsZWN0IHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzY0N2E3YjtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogaW5oZXJpdDtcbiAgb3V0bGluZTogbm9uZTtcbiAgcGFkZGluZzogMC41cmVtIDA7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7IH1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnZm9udGVsbG8nO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzL2ZvbnRlbGxvLmVvdD81MjgyNDEyNlwiKTtcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9mb250ZWxsby5lb3Q/NTI4MjQxMjYjaWVmaXhcIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksIHVybChcIi4uL2ZvbnRzL2ZvbnRlbGxvLndvZmYyPzUyODI0MTI2XCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCIuLi9mb250cy9mb250ZWxsby53b2ZmPzUyODI0MTI2XCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcIi4uL2ZvbnRzL2ZvbnRlbGxvLnR0Zj81MjgyNDEyNlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSwgdXJsKFwiLi4vZm9udHMvZm9udGVsbG8uc3ZnPzUyODI0MTI2I2ZvbnRlbGxvXCIpIGZvcm1hdChcInN2Z1wiKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsOyB9XG5cbltjbGFzc149XCJmYS1pY29uLVwiXTpiZWZvcmUsXG5bY2xhc3MqPVwiIGZhLWljb24tXCJdOmJlZm9yZSB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBmb250LWZhbWlseTogXCJmb250ZWxsb1wiO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHNwZWFrOiBub25lO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgd2lkdGg6IDFlbTtcbiAgbWFyZ2luLXJpZ2h0OiAuMmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIC8qIG9wYWNpdHk6IC44OyAqL1xuICAvKiBGb3Igc2FmZXR5IC0gcmVzZXQgcGFyZW50IHN0eWxlcywgdGhhdCBjYW4gYnJlYWsgZ2x5cGggY29kZXMqL1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIC8qIGZpeCBidXR0b25zIGhlaWdodCwgZm9yIHR3aXR0ZXIgYm9vdHN0cmFwICovXG4gIGxpbmUtaGVpZ2h0OiAxZW07XG4gIC8qIEFuaW1hdGlvbiBjZW50ZXIgY29tcGVuc2F0aW9uIC0gbWFyZ2lucyBzaG91bGQgYmUgc3ltbWV0cmljICovXG4gIC8qIHJlbW92ZSBpZiBub3QgbmVlZGVkICovXG4gIG1hcmdpbi1sZWZ0OiAuMmVtO1xuICAvKiB5b3UgY2FuIGJlIG1vcmUgY29tZm9ydGFibGUgd2l0aCBpbmNyZWFzZWQgaWNvbnMgc2l6ZSAqL1xuICAvKiBmb250LXNpemU6IDEyMCU7ICovXG4gIC8qIEZvbnQgc21vb3RoaW5nLiBUaGF0IHdhcyB0YWtlbiBmcm9tIFRXQlMgKi9cbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC8qIFVuY29tbWVudCBmb3IgM0QgZWZmZWN0ICovXG4gIC8qIHRleHQtc2hhZG93OiAxcHggMXB4IDFweCByZ2JhKDEyNywgMTI3LCAxMjcsIDAuMyk7ICovIH1cblxuLmZhLWljb24tdHdpdHRlcjpiZWZvcmUge1xuICBjb250ZW50OiAnXFxmMDk5JzsgfVxuXG4vKiAn74KZJyAqL1xuLmZhLWljb24tZmFjZWJvb2s6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZjA5YSc7IH1cblxuLyogJ++CmicgKi9cbi5mYS1pY29uLXBpbnRlcmVzdC1jaXJjbGVkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGYwZDInOyB9XG5cbi8qICfvg5InICovXG4uZmEtaWNvbi1ncGx1czpiZWZvcmUge1xuICBjb250ZW50OiAnXFxmMGQ1JzsgfVxuXG4vKiAn74OVJyAqL1xuLmZhLWljb24tbGlua2VkaW46YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZjBlMSc7IH1cblxuLyogJ++DoScgKi9cbi5mYS1pY29uLXlvdXR1YmUtcGxheTpiZWZvcmUge1xuICBjb250ZW50OiAnXFxmMTZhJzsgfVxuXG4vKiAn74WqJyAqL1xuLmZhLWljb24taW5zdGFncmFtOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGYxNmQnOyB9XG5cbi8qICfvha0nICovXG4uZmEtaWNvbi1zbmFwY2hhdC1naG9zdDpiZWZvcmUge1xuICBjb250ZW50OiAnXFxmMmFjJzsgfVxuXG4vKiAn74qsJyAqL1xuYm9keSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjViMDA7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBjdXJzb3I6IG5vbmU7XG4gIC8qQ3Vyc29yIHdpbGwgYmUgYWN0aXZhdGVkIG9uIHJpZ2h0IGNsaWNrIGluIENocm9tZSovIH1cbiAgYm9keSAjY29udGVudCxcbiAgYm9keSAjZm9vdGVyIHtcbiAgICBmbGV4OiAxO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuXG5odG1sLCBib2R5IHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDsgfVxuXG4jaGVhZGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46IDMuNXJlbSBhdXRvIDAgYXV0bztcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogODAlO1xuICBtYXgtaGVpZ2h0OiAzLjVyZW07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgI2hlYWRlciAubG9nby1saW5rIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogM3JlbTtcbiAgICBib3JkZXI6IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDE7IH1cbiAgICAjaGVhZGVyIC5sb2dvLWxpbms6aG92ZXIge1xuICAgICAgYm9yZGVyOiAwOyB9XG4gICAgI2hlYWRlciAubG9nby1saW5rIC5sb2dvLWNvbnRhaW5lciB7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMTA3LjMlOyB9XG4gICAgICAjaGVhZGVyIC5sb2dvLWxpbmsgLmxvZ28tY29udGFpbmVyIHN2ZyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlOyB9XG4gICAgICAgICNoZWFkZXIgLmxvZ28tbGluayAubG9nby1jb250YWluZXIgc3ZnIHBhdGgge1xuICAgICAgICAgIGZpbGw6ICNmZmZmZmY7IH1cbiAgICAubmF2LWFjdGl2ZSAjaGVhZGVyIC5sb2dvLWxpbmsgcGF0aCB7XG4gICAgICBmaWxsOiAjZmZmZmZmOyB9XG5cbiN3ZWxjb21lIHtcbiAgbWFyZ2luOiAzLjVyZW0gYXV0byAwIGF1dG87XG4gIG1heC13aWR0aDogODAlO1xuICB3aWR0aDogMTAwJTsgfVxuICAjd2VsY29tZSBoMSB7XG4gICAgZm9udC1zaXplOiA5dnc7XG4gICAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBtYXJnaW46IDA7IH1cbiAgI3dlbGNvbWUgaDIge1xuICAgIGZvbnQtc2l6ZTogNHZ3O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZm9udC1mYW1pbHk6IFwiR290aGFtIFNTbSBBXCIsXCJHb3RoYW0gU1NtIEJcIixIZWx2ZXRpY2EsQXJpYWwsU2Fucy1zZXJpZjsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDIwMDBweCkge1xuICAgICAgI3dlbGNvbWUgaDIge1xuICAgICAgICBmb250LXNpemU6IDYuMjVyZW07IH0gfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gICAgICAjd2VsY29tZSBoMiB7XG4gICAgICAgIGZvbnQtc2l6ZTogN3Z3O1xuICAgICAgICB3aWR0aDogMTAwJTsgfSB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTAwcHgpIHtcbiAgICAgICN3ZWxjb21lIGgyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gICN3ZWxjb21lIGhlYWRlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgI3dlbGNvbWUgaGVhZGVyIC5tZXNzYWdlIHtcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgIGJvdHRvbTogMTB2aDtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgICAjd2VsY29tZSBoZWFkZXIgLmdyaWQtdGl0bGUge1xuICAgICAgdG9wOiAxMHZoO1xuICAgICAgbGVmdDogNTAlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOyB9XG4gICAgICAjd2VsY29tZSBoZWFkZXIgLmdyaWQtdGl0bGUgaDEge1xuICAgICAgICBmb250LXNpemU6IDR2dzsgfVxuICAgICN3ZWxjb21lIGhlYWRlciAub3V0ZXIge1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gICAgICBtYXJnaW46IC0xMHB4OyB9XG4gICAgI3dlbGNvbWUgaGVhZGVyIC5pbm5lciB7XG4gICAgICBwYWRkaW5nOiAxMHB4OyB9XG5cbiNiYWNrZ3JvdW5kLWltYWdlIHtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgb3BhY2l0eTogMDsgfVxuXG4jZ3JpZC1kaXYge1xuICBvcGFjaXR5OiAxO1xuICBtYXJnaW46IDEwJTtcbiAgbWFyZ2luLXRvcDogMjUwcHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTsgfVxuICAjZ3JpZC1kaXYgdWwge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbWFyZ2luOiAxMnZoIDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgICNncmlkLWRpdiB1bCBsaSB7XG4gICAgICBtYXJnaW46IDJ2dztcbiAgICAgIGZsZXg6IDEgMCAyMCU7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gICAgICAjZ3JpZC1kaXYgdWwgbGkgaW1nIHtcbiAgICAgICAgd2lkdGg6IDIydmg7XG4gICAgICAgIGhlaWdodDogMTd2aDsgfVxuXG4jZm9vdGVyIHtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG1hcmdpbjogMCBhdXRvO1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiA4MCU7XG4gIG1heC1oZWlnaHQ6IDMuNXJlbTtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIGZvbnQtc2l6ZTogMTJweDsgfVxuXG4jd3BhZG1pbmJhciB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuIiwiJHF1aWNrLWJlemllcjogY3ViaWMtYmV6aWVyKDAsIDAuNiwgMC43LCAxKTtcbiRxdWljay1zd2l0Y2g6IGN1YmljLWJlemllcigwLCAwLjc4LCAwLjI1LCAxKTtcbiRib3VuY2UtYmV6aWVyOiBjdWJpYy1iZXppZXIoMCwgMS42MywgMC43OSwgMSk7XG5cbkBrZXlmcmFtZXMgbW92ZVVwIHtcbiAgICAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDMwJSk7XG4gICAgfVxuXG4gICAgMTAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDApO1xuICAgIH1cbn1cblxuQGtleWZyYW1lcyBtb3ZlRG93biB7XG4gICAgMCUge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwKTtcbiAgICB9XG5cbiAgICAxMDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMzAlKTtcbiAgICB9XG59XG5cbkBrZXlmcmFtZXMgbW92ZUxlZnQge1xuICAgIDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTAlLCAwKTtcbiAgICB9XG5cbiAgICAxMDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCk7XG4gICAgfVxufVxuXG5Aa2V5ZnJhbWVzIG1vdmVSaWdodCB7XG4gICAgMCUge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTAlLCAwKTtcbiAgICB9XG5cbiAgICAxMDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCk7XG4gICAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZhZGVPdXQge1xuICAgIDAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAxMDAlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG59XG5cbkBrZXlmcmFtZXMgZmFkZUluIHtcbiAgICAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuXG4gICAgMTAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxufVxuXG5Aa2V5ZnJhbWVzIHNwaW4ge1xuICAgIDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gICAgfVxuXG4gICAgMTAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgfVxufVxuXG5Aa2V5ZnJhbWVzIHNjYWxlSW5PdXQge1xuICAgIDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICB9XG5cbiAgICA1MCUge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuMik7XG4gICAgfVxuXG4gICAgMTAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgfVxufVxuXG5Aa2V5ZnJhbWVzIGJhdG1hbiB7XG4gICAgMCUge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKSBzY2FsZSgxKTtcbiAgICB9XG5cbiAgICA1MCUge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpIHNjYWxlKDAuMik7XG4gICAgfVxuXG4gICAgMTAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZykgc2NhbGUoMSk7XG4gICAgfVxufVxuXG5cblxuXG4lY29udGVudC10eXBlLWluLW91dCB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNSUpO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzICRxdWljay1zd2l0Y2gsIG9wYWNpdHkgMC41cyAkcXVpY2stYmV6aWVyO1xuXG4gICAgJi5pbi1hbmltIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgIH1cblxuICAgICYub3V0LWFuaW0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUlKTtcbiAgICB9XG59XG5cbiVjb250ZW50LXR5cGUtZXhpdCB7XG4gICAgJi5leGl0IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG59XG5cbiVjb250ZW50LXR5cGUtYW5pbWF0aW9uIHtcbiAgICBvcGFjaXR5OiAwO1xuXG4gICAgJi5lbnRlciB7XG4gICAgICAgIGFuaW1hdGlvbjogZmFkZUluIDAuNzVzICRxdWljay1iZXppZXIgZm9yd2FyZHMsXG4gICAgICAgICAgICAgICAgICAgbW92ZVVwIDAuNzVzICRxdWljay1iZXppZXIgZm9yd2FyZHM7XG4gICAgfVxuXG4gICAgJi5hY3RpdmUtaW4ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICYuYWN0aXZlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAmLmFjdGl2ZS1vdXQge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICYuZXhpdCB7XG4gICAgICAgIGFuaW1hdGlvbjogZmFkZU91dCAwLjc1cyAkcXVpY2stYmV6aWVyIGZvcndhcmRzLFxuICAgICAgICAgICAgICAgICAgIG1vdmVEb3duIDAuNzVzICRxdWljay1iZXppZXIgZm9yd2FyZHM7XG4gICAgfVxufVxuIiwiLyoqXG4gKiBUaGVzZSBhcmUgdGhlIENyb3dkIENvbG91cnMuXG4gKi9cblxuJHdoaXRlOiAjZmZmZmZmO1xuJG9yYW5nZTogI2ZmNWIwMDtcbiRjb2NvYTogIzQzMjgyMTtcbiRuZW9uLWdyZWVuOiAjMDRkZTM4O1xuJGZvcmVzdDogIzJkNjQzYTtcbiRhcXVhOiAjMDBkMWQ5O1xuJHBldHJvbDogIzJkNjE2MztcbiRtaXN0OiAjZWRmM2YzO1xuJGJsdWUtZ3JleTogI2NkZTNlNDtcbiRzbGF0ZTogIzY0N2E3YjtcblxuXG4vLyAkY29sb3JzIGlzIGRlZmluZWQgaW4gX2NvbG9ycy5zY3NzXG4kY2xhc3NlczogKCd3aGl0ZScsICdvcmFuZ2UnLCAnY29jb2EnLCAnbmVvbi1ncmVlbicsICdmb3Jlc3QnLCAnYXF1YScsICdwZXRyb2wnLCAnbWlzdCcsICdibHVlLWdyZXknLCAnc2xhdGUnKTtcblxuJGNvbG9yczogKCR3aGl0ZSwgJG9yYW5nZSwgJGNvY29hLCAkbmVvbi1ncmVlbiwgJGZvcmVzdCwgJGFxdWEsICRwZXRyb2wsICRtaXN0LCAkYmx1ZS1ncmV5LCAkc2xhdGUpO1xuIiwiLyohIG5vcm1hbGl6ZS5jc3MgdjMuMC4zIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuXG4vKipcbiAqIDEuIFNldCBkZWZhdWx0IGZvbnQgZmFtaWx5IHRvIHNhbnMtc2VyaWYuXG4gKiAyLiBQcmV2ZW50IGlPUyBhbmQgSUUgdGV4dCBzaXplIGFkanVzdCBhZnRlciBkZXZpY2Ugb3JpZW50YXRpb24gY2hhbmdlLFxuICogICAgd2l0aG91dCBkaXNhYmxpbmcgdXNlciB6b29tLlxuICovXG5cbmh0bWwge1xuICAgIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOyAvKiAxICovXG4gICAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbiAgICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgZGVmYXVsdCBtYXJnaW4uXG4gKi9cblxuYm9keSB7XG4gICAgbWFyZ2luOiAwO1xufVxuXG4vKiBIVE1MNSBkaXNwbGF5IGRlZmluaXRpb25zXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBhbnkgSFRNTDUgZWxlbWVudCBpbiBJRSA4LzkuXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYGRldGFpbHNgIG9yIGBzdW1tYXJ5YCBpbiBJRSAxMC8xMVxuICogYW5kIEZpcmVmb3guXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYG1haW5gIGluIElFIDExLlxuICovXG5cbmFydGljbGUsXG5hc2lkZSxcbmRldGFpbHMsXG5maWdjYXB0aW9uLFxuZmlndXJlLFxuZm9vdGVyLFxuaGVhZGVyLFxuaGdyb3VwLFxubWFpbixcbm1lbnUsXG5uYXYsXG5zZWN0aW9uLFxuc3VtbWFyeSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCBgaW5saW5lLWJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGluIElFIDgvOS5cbiAqIDIuIE5vcm1hbGl6ZSB2ZXJ0aWNhbCBhbGlnbm1lbnQgb2YgYHByb2dyZXNzYCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAqL1xuXG5hdWRpbyxcbmNhbnZhcyxcbnByb2dyZXNzLFxudmlkZW8ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgLyogMSAqL1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgLyogMiAqL1xufVxuXG4vKipcbiAqIFByZXZlbnQgbW9kZXJuIGJyb3dzZXJzIGZyb20gZGlzcGxheWluZyBgYXVkaW9gIHdpdGhvdXQgY29udHJvbHMuXG4gKiBSZW1vdmUgZXhjZXNzIGhlaWdodCBpbiBpT1MgNSBkZXZpY2VzLlxuICovXG5cbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBoZWlnaHQ6IDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBgW2hpZGRlbl1gIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLlxuICogSGlkZSB0aGUgYHRlbXBsYXRlYCBlbGVtZW50IGluIElFIDgvOS8xMC8xMSwgU2FmYXJpLCBhbmQgRmlyZWZveCA8IDIyLlxuICovXG5cbltoaWRkZW5dLFxudGVtcGxhdGUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIExpbmtzXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIGNvbG9yIGZyb20gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICovXG5cbmEge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4vKipcbiAqIEltcHJvdmUgcmVhZGFiaWxpdHkgb2YgZm9jdXNlZCBlbGVtZW50cyB3aGVuIHRoZXkgYXJlIGFsc28gaW4gYW5cbiAqIGFjdGl2ZS9ob3ZlciBzdGF0ZS5cbiAqL1xuXG5hOmFjdGl2ZSxcbmE6aG92ZXIge1xuICAgIG91dGxpbmU6IDA7XG59XG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAvMTEsIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5hYmJyW3RpdGxlXSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxlIHNldCB0byBgYm9sZGVyYCBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cblxuYixcbnN0cm9uZyB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuICovXG5cbmRmbiB7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgdmFyaWFibGUgYGgxYCBmb250LXNpemUgYW5kIG1hcmdpbiB3aXRoaW4gYHNlY3Rpb25gIGFuZCBgYXJ0aWNsZWBcbiAqIGNvbnRleHRzIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5oMSB7XG4gICAgZm9udC1zaXplOiAyZW07XG4gICAgbWFyZ2luOiAwLjY3ZW0gMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LlxuICovXG5cbm1hcmsge1xuICAgIGJhY2tncm91bmQ6ICNmZjA7XG4gICAgY29sb3I6ICMwMDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYW5kIHZhcmlhYmxlIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc21hbGwge1xuICAgIGZvbnQtc2l6ZTogODAlO1xufVxuXG4vKipcbiAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGFmZmVjdGluZyBgbGluZS1oZWlnaHRgIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zdWIsXG5zdXAge1xuICAgIGZvbnQtc2l6ZTogNzUlO1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnN1cCB7XG4gICAgdG9wOiAtMC41ZW07XG59XG5cbnN1YiB7XG4gICAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG4vKiBFbWJlZGRlZCBjb250ZW50XG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSBib3JkZXIgd2hlbiBpbnNpZGUgYGFgIGVsZW1lbnQgaW4gSUUgOC85LzEwLlxuICovXG5cbmltZyB7XG4gICAgYm9yZGVyOiAwO1xuICAgIG1heC13aWR0aDoxMDAlO1xuICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gICAgaGVpZ2h0OiBhdXRvO1xufVxuXG4vKipcbiAqIENvcnJlY3Qgb3ZlcmZsb3cgbm90IGhpZGRlbiBpbiBJRSA5LzEwLzExLlxuICovXG5cbnN2Zzpub3QoOnJvb3QpIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLyogR3JvdXBpbmcgY29udGVudFxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGRyZXNzIG1hcmdpbiBub3QgcHJlc2VudCBpbiBJRSA4LzkgYW5kIFNhZmFyaS5cbiAqL1xuXG5maWd1cmUge1xuICAgIG1hcmdpbjogMWVtIDQwcHg7XG59XG5cbi8qKlxuICogQWRkcmVzcyBkaWZmZXJlbmNlcyBiZXR3ZWVuIEZpcmVmb3ggYW5kIG90aGVyIGJyb3dzZXJzLlxuICovXG5cbmhyIHtcbiAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgICBoZWlnaHQ6IDA7XG59XG5cbi8qKlxuICogQ29udGFpbiBvdmVyZmxvdyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxucHJlIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiBBZGRyZXNzIG9kZCBgZW1gLXVuaXQgZm9udCBzaXplIHJlbmRlcmluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuY29kZSxcbmtiZCxcbnByZSxcbnNhbXAge1xuICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgICBmb250LXNpemU6IDFlbTtcbn1cblxuLyogRm9ybXNcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogS25vd24gbGltaXRhdGlvbjogYnkgZGVmYXVsdCwgQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWCBhbGxvdyB2ZXJ5IGxpbWl0ZWRcbiAqIHN0eWxpbmcgb2YgYHNlbGVjdGAsIHVubGVzcyBhIGBib3JkZXJgIHByb3BlcnR5IGlzIHNldC5cbiAqL1xuXG4vKipcbiAqIDEuIENvcnJlY3QgY29sb3Igbm90IGJlaW5nIGluaGVyaXRlZC5cbiAqICAgIEtub3duIGlzc3VlOiBhZmZlY3RzIGNvbG9yIG9mIGRpc2FibGVkIGVsZW1lbnRzLlxuICogMi4gQ29ycmVjdCBmb250IHByb3BlcnRpZXMgbm90IGJlaW5nIGluaGVyaXRlZC5cbiAqIDMuIEFkZHJlc3MgbWFyZ2lucyBzZXQgZGlmZmVyZW50bHkgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gICAgY29sb3I6IGluaGVyaXQ7IC8qIDEgKi9cbiAgICBmb250OiBpbmhlcml0OyAvKiAyICovXG4gICAgbWFyZ2luOiAwOyAvKiAzICovXG59XG5cbi8qKlxuICogQWRkcmVzcyBgb3ZlcmZsb3dgIHNldCB0byBgaGlkZGVuYCBpbiBJRSA4LzkvMTAvMTEuXG4gKi9cblxuYnV0dG9uIHtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGluY29uc2lzdGVudCBgdGV4dC10cmFuc2Zvcm1gIGluaGVyaXRhbmNlIGZvciBgYnV0dG9uYCBhbmQgYHNlbGVjdGAuXG4gKiBBbGwgb3RoZXIgZm9ybSBjb250cm9sIGVsZW1lbnRzIGRvIG5vdCBpbmhlcml0IGB0ZXh0LXRyYW5zZm9ybWAgdmFsdWVzLlxuICogQ29ycmVjdCBgYnV0dG9uYCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LCBJRSA4LzkvMTAvMTEsIGFuZCBPcGVyYS5cbiAqIENvcnJlY3QgYHNlbGVjdGAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveC5cbiAqL1xuXG5idXR0b24sXG5zZWxlY3Qge1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vKipcbiAqIDEuIEF2b2lkIHRoZSBXZWJLaXQgYnVnIGluIEFuZHJvaWQgNC4wLiogd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gXG4gKiAgICBhbmQgYHZpZGVvYCBjb250cm9scy5cbiAqIDIuIENvcnJlY3QgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSBgaW5wdXRgIHR5cGVzIGluIGlPUy5cbiAqIDMuIEltcHJvdmUgdXNhYmlsaXR5IGFuZCBjb25zaXN0ZW5jeSBvZiBjdXJzb3Igc3R5bGUgYmV0d2VlbiBpbWFnZS10eXBlXG4gKiAgICBgaW5wdXRgIGFuZCBvdGhlcnMuXG4gKi9cblxuYnV0dG9uLFxuaHRtbCBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLCAvKiAxICovXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0sXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMiAqL1xuICAgIGN1cnNvcjogcG9pbnRlcjsgLyogMyAqL1xufVxuXG4vKipcbiAqIFJlLXNldCBkZWZhdWx0IGN1cnNvciBmb3IgZGlzYWJsZWQgZWxlbWVudHMuXG4gKi9cblxuYnV0dG9uW2Rpc2FibGVkXSxcbmh0bWwgaW5wdXRbZGlzYWJsZWRdIHtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi8qKlxuICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIGJvcmRlciBpbiBGaXJlZm94IDQrLlxuICovXG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbmlucHV0OjotbW96LWZvY3VzLWlubmVyIHtcbiAgICBib3JkZXI6IDA7XG4gICAgcGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIEZpcmVmb3ggNCsgc2V0dGluZyBgbGluZS1oZWlnaHRgIG9uIGBpbnB1dGAgdXNpbmcgYCFpbXBvcnRhbnRgIGluXG4gKiB0aGUgVUEgc3R5bGVzaGVldC5cbiAqL1xuXG5pbnB1dCB7XG4gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cblxuLyoqXG4gKiBJdCdzIHJlY29tbWVuZGVkIHRoYXQgeW91IGRvbid0IGF0dGVtcHQgdG8gc3R5bGUgdGhlc2UgZWxlbWVudHMuXG4gKiBGaXJlZm94J3MgaW1wbGVtZW50YXRpb24gZG9lc24ndCByZXNwZWN0IGJveC1zaXppbmcsIHBhZGRpbmcsIG9yIHdpZHRoLlxuICpcbiAqIDEuIEFkZHJlc3MgYm94IHNpemluZyBzZXQgdG8gYGNvbnRlbnQtYm94YCBpbiBJRSA4LzkvMTAuXG4gKiAyLiBSZW1vdmUgZXhjZXNzIHBhZGRpbmcgaW4gSUUgOC85LzEwLlxuICovXG5cbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbmlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICAgIHBhZGRpbmc6IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBGaXggdGhlIGN1cnNvciBzdHlsZSBmb3IgQ2hyb21lJ3MgaW5jcmVtZW50L2RlY3JlbWVudCBidXR0b25zLiBGb3IgY2VydGFpblxuICogYGZvbnQtc2l6ZWAgdmFsdWVzIG9mIHRoZSBgaW5wdXRgLCBpdCBjYXVzZXMgdGhlIGN1cnNvciBzdHlsZSBvZiB0aGVcbiAqIGRlY3JlbWVudCBidXR0b24gdG8gY2hhbmdlIGZyb20gYGRlZmF1bHRgIHRvIGB0ZXh0YC5cbiAqL1xuXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gICAgaGVpZ2h0OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIEFkZHJlc3MgYGFwcGVhcmFuY2VgIHNldCB0byBgc2VhcmNoZmllbGRgIGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuICogMi4gQWRkcmVzcyBgYm94LXNpemluZ2Agc2V0IHRvIGBib3JkZXItYm94YCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAqL1xuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIHNlYXJjaCBjYW5jZWwgYnV0dG9uIGluIFNhZmFyaSBhbmQgQ2hyb21lIG9uIE9TIFguXG4gKiBTYWZhcmkgKGJ1dCBub3QgQ2hyb21lKSBjbGlwcyB0aGUgY2FuY2VsIGJ1dHRvbiB3aGVuIHRoZSBzZWFyY2ggaW5wdXQgaGFzXG4gKiBwYWRkaW5nIChhbmQgYHRleHRmaWVsZGAgYXBwZWFyYW5jZSkuXG4gKi9cblxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLyoqXG4gKiBEZWZpbmUgY29uc2lzdGVudCBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcuXG4gKi9cblxuZmllbGRzZXQge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gICAgbWFyZ2luOiAwIDJweDtcbiAgICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCBgY29sb3JgIG5vdCBiZWluZyBpbmhlcml0ZWQgaW4gSUUgOC85LzEwLzExLlxuICogMi4gUmVtb3ZlIHBhZGRpbmcgc28gcGVvcGxlIGFyZW4ndCBjYXVnaHQgb3V0IGlmIHRoZXkgemVybyBvdXQgZmllbGRzZXRzLlxuICovXG5cbmxlZ2VuZCB7XG4gICAgYm9yZGVyOiAwOyAvKiAxICovXG4gICAgcGFkZGluZzogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSA4LzkvMTAvMTEuXG4gKi9cblxudGV4dGFyZWEge1xuICAgIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiAqIERvbid0IGluaGVyaXQgdGhlIGBmb250LXdlaWdodGAgKGFwcGxpZWQgYnkgYSBydWxlIGFib3ZlKS5cbiAqIE5PVEU6IHRoZSBkZWZhdWx0IGNhbm5vdCBzYWZlbHkgYmUgY2hhbmdlZCBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYLlxuICovXG5cbm9wdGdyb3VwIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLyogVGFibGVzXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSBtb3N0IHNwYWNpbmcgYmV0d2VlbiB0YWJsZSBjZWxscy5cbiAqL1xuXG50YWJsZSB7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICBib3JkZXItc3BhY2luZzogMDtcbn1cblxudGQsXG50aCB7XG4gICAgcGFkZGluZzogMDtcbn1cblxuKiB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbiIsIiR0aXRsZS1zdGFjazogXCJTZW50aW5lbCBTU20gQVwiLCBcIlNlbnRpbmVsIFNTbSBCXCIsIEdlb3JnaWEsIFNlcmlmO1xuJGJvZHktc3RhY2s6IFwiR290aGFtIFNTbSBBXCIsIFwiR290aGFtIFNTbSBCXCIsIEhlbHZldGljYSwgQXJpYWwsIFNhbnMtc2VyaWY7XG5cbmJvZHkge1xuICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcbiAgICBjb2xvcjogJHNsYXRlO1xuICAgIHRyYW5zaXRpb246IGNvbG9yIDAuNXMgJHF1aWNrLXN3aXRjaCwgYmFja2dyb3VuZCAwLjVzICRxdWljay1zd2l0Y2g7XG5cbiAgICBmb250LWZhbWlseTogJGJvZHktc3RhY2s7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDM7IC8vIExpbmUtaGVpZ2h0IG9mIGJvZHkgY29weVxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG5cbiAgICAmLm9yYW5nZSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRvcmFuZ2U7XG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgfVxuXG4gICAgJi5hcXVhIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGFxdWE7XG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgfVxuXG4gICAgJi5uZW9uLWdyZWVuIHtcbiAgICAgICAgYmFja2dyb3VuZDogJG5lb24tZ3JlZW47XG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgfVxuXG4gICAgJi5zbGF0ZSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRtaXN0O1xuICAgICAgICBjb2xvcjogJHNsYXRlO1xuICAgIH1cbn1cblxuYSB7XG4gICAgY29sb3I6ICRvcmFuZ2U7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHRyYW5zaXRpb246IGNvbG9yIDAuNXMgJHF1aWNrLXN3aXRjaDtcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICRzbGF0ZTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogaW5oZXJpdDtcbiAgICB9XG5cbiAgICBib2R5Lm9yYW5nZSAmIHtcbiAgICAgICAgY29sb3I6ICRjb2NvYTtcbiAgICB9XG5cbiAgICBib2R5Lm5lb24tZ3JlZW4gJiB7XG4gICAgICAgIGNvbG9yOiAkZm9yZXN0O1xuICAgIH1cblxuICAgIGJvZHkuYXF1YSAmIHtcbiAgICAgICAgY29sb3I6ICRwZXRyb2w7XG4gICAgfVxuXG4gICAgYm9keS5zbGF0ZSAmIHtcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICB9XG59XG5cblxuaDEsXG5oMiB7XG4gICAgbWFyZ2luOiAwLjY3cmVtIDA7XG4gICAgZm9udDogNTAwIDYuMXZ3LzEuMSAkdGl0bGUtc3RhY2s7XG5cbiAgICBlbSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG4gICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICB9XG59XG5cbmgyIHtcbiAgICBmb250LXNpemU6IDJ2dztcbn1cblxuaDMge1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgZm9udC1mYW1pbHk6ICRib2R5LXN0YWNrO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjE7XG4gICAgZm9udC1zaXplOiAycmVtO1xufVxuXG5iLFxuc3Ryb25nIHtcbiAgICBmb250LXdlaWdodDogNTAwO1xufVxuXG5ociB7XG4gICAgbWFyZ2luOiA0cmVtIDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCAkbWlzdDtcbn1cblxuY29kZSB7XG4gICAgZm9udC1mYW1pbHk6IE1vbmFjbywgXCJMdWNpZGEgQ29uc29sZVwiLCBtb25vc3BhY2U7XG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xufVxuIiwiW2RhdGEtYXNwZWN0LXJhdGlvXSB7XG4gICAgaGVpZ2h0OiAwO1xufVxuXG5bZGF0YS1hc3BlY3QtcmF0aW89XCIxOjFcIl0ge1xuICAgIHBhZGRpbmctYm90dG9tOiAxMDAlO1xufVxuXG5bZGF0YS1hc3BlY3QtcmF0aW89XCIxOjJcIl0ge1xuICAgIHBhZGRpbmctYm90dG9tOiA1MCU7XG59XG5cbltkYXRhLWFzcGVjdC1yYXRpbz1cIjM6MlwiXSB7XG4gICAgcGFkZGluZy1ib3R0b206IDY2LjY2NjYlO1xufVxuXG5bZGF0YS1hc3BlY3QtcmF0aW89XCIxNjo5XCJdIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogNTYuMjUlO1xufVxuXG5bZGF0YS1hc3BlY3QtcmF0aW89XCI0OjNcIl0ge1xuICAgIHBhZGRpbmctYm90dG9tOiA3NSU7XG59XG5cbltkYXRhLWFzcGVjdC1yYXRpbz1cIjQ6MVwiXSB7XG4gICAgcGFkZGluZy1ib3R0b206IDI1JTtcbn1cbiIsIi5idXR0b24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtZmFtaWx5OiAkYm9keS1zdGFjaztcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgcGFkZGluZzogMXJlbSAyLjVyZW07XG4gICAgYm9yZGVyOiAycHggc29saWQgJHNsYXRlO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjI1cyAkcXVpY2stYmV6aWVyLCBvcGFjaXR5IDAuMjVzICRxdWljay1iZXppZXI7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAvLyBUbyBjaGFuZ2Ugd2l0aCB0aGVtZVxuICAgIGNvbG9yOiAkc2xhdGU7XG4gICAgYm9yZGVyLWNvbG9yOiAkc2xhdGU7XG5cbiAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHdpZHRoOiAxcmVtO1xuICAgICAgICBoZWlnaHQ6IDFyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRibHVlLWdyZXk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMjVzICRxdWljay1iZXppZXI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IC0wLjVyZW07XG4gICAgICAgIGJvdHRvbTogLTAuNXJlbTtcbiAgICAgICAgei1pbmRleDogLTE7XG4gICAgfVxuXG4gICAgLy8gR2VuZXJhdGUgY2xhc3NlcyBhbmQgY29sb3Vycy5cbiAgICAvLyBGcm9tIF9jb2xvdXJzLnNjc3NcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIGxlbmd0aCgkY2xhc3Nlcykge1xuICAgICAgICAmLiN7bnRoKCRjbGFzc2VzLCAkaSl9OmFmdGVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICN7bnRoKCRjb2xvcnMsICRpKX07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOmhvdmVyOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTMwJSwgLTMwJSkgc2NhbGUoMi4yNSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0zMCUsIC0zMCUpIHNjYWxlKDIuOCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBib2R5Lm9yYW5nZSAmIHtcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkY29jb2E7XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBib2R5LmFxdWEgJiB7XG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHBldHJvbDtcblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGJvZHkubmVvbi1ncmVlbiAmIHtcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkZm9yZXN0O1xuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHdoaXRlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYm9keS5zbGF0ZSAmIHtcbiAgICAgICAgY29sb3I6ICRzbGF0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2xhdGU7XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2xhdGU7XG4gICAgICAgIH1cbiAgICB9XG5cblxufVxuXG4uYmxpcHBlciB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgdGV4dC1pbmRlbnQ6IC05OTk5cHg7XG4gICAgd2lkdGg6IDQwcHg7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIGJvdHRvbTogMDtcbiAgICByaWdodDogMDtcbn1cbiIsIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBHcmlkIFN5c3RlbVxuICpcbiAqIFRoZSBuZXcgd2Vic2l0ZSBoYXMgYW4gdW5kZXJseWluZyBncmlkIHN5c3RlbS4gVGhlIHN5c3RlbSB1c2VzIGZsZXhib3ggYW5kXG4gKiB3aWR0aHMgYnkgZGVmYXVsdCwgYnV0IHByZWZlcnMgQGdyaWQgcnVsZXMgZm9yIHByb2dyZXNzaXZlIGVuaGFuY2VtZW50LlxuICpcbiAqIFRoaXMgbWVhbnMgSUUxMSBpcyBjYXRlcmVkIHRvIHdpdGggYSBiYXNpYyBsYXlvdXQsIGJ1dCBiZXR0ZXIgbGF5b3V0IHRvb2xzXG4gKiBhcmUgYXZhaWxhYmxlIG9uIG1vZGVybiBicm93c2Vycy5cbiAqXG4gKiBBIGd1dHRlciBvZiAyJSBvZiB0aGUgdmlld3dpZHRoIGlzIGFwcGxpZWQgZWl0aGVyIHNpZGUgb2YgdGhlIGdyaWQuXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLmdyaWQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIHBhZGRpbmc6IDAgMnZ3O1xuXG4gICAgQHN1cHBvcnRzKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgLy8gMjAgY29sdW1ucyBzcGxpdCBldmVubHkgd2l0aCBubyBndXR0ZXJzXG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIwLCAxZnIgW2NvbF0pO1xuXG4gICAgICAgIC5pdGVtIHtcbiAgICAgICAgICAgIC8vIEZvcmNlIHdpZHRocyBvZmYgd2hlcmUgYXBwbGllZCBmb3IgZmxleGJveCBsYXlvdXRcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgICAgIC8vICBSZXNldCBsZWZ0L3JpZ2h0IG1hcmdpbnMgdXN1YWxseSB0aGVyZSBmb3IgYWxpZ25tZW50XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuJWNlbnRyYWwtY29sdW1uIHsgLy8gVXNlIHRoaXMgdG8gY2VudGVyIGNvbnRlbnQgdG8gdGhlIG1pZGRsZSBvZiB0aGUgZ3JpZCAoc2VlIHRoZSBsb25nIGFydGljbGUpXG4gICAgQHN1cHBvcnRzKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgICAgZ3JpZC1jb2x1bW46IDUgLyBzcGFuIDEyO1xuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjgwcHgpIHtcbiAgICAgICAgICAgIGdyaWQtY29sdW1uOiA1IC8gc3BhbiA2O1xuICAgICAgICB9XG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6NzY4cHgpIHtcbiAgICAgICAgICAgIGdyaWQtY29sdW1uOiAyIC8gc3BhbiAxODtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogU1ZHIENvbnRhaW5lclxuICpcbiAqIEFsbG93cyB5b3UgdG8gc2l6ZSBTVkdzIHdpdGggcGFkZGluZyAoc2VlIHN2Zy1jb250YWlubWVudC5qcyBKYXZhU2NyaXB0KVxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi5zdmctY29udGFpbmVyIHtcbiAgaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgc3ZnIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICB9XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBGb3IgbW9kZXJuIGJyb3dzZXJzXG4gKiAxLiBUaGUgc3BhY2UgY29udGVudCBpcyBvbmUgd2F5IHRvIGF2b2lkIGFuIE9wZXJhIGJ1ZyB3aGVuIHRoZVxuICogICAgY29udGVudGVkaXRhYmxlIGF0dHJpYnV0ZSBpcyBpbmNsdWRlZCBhbnl3aGVyZSBlbHNlIGluIHRoZSBkb2N1bWVudC5cbiAqICAgIE90aGVyd2lzZSBpdCBjYXVzZXMgc3BhY2UgdG8gYXBwZWFyIGF0IHRoZSB0b3AgYW5kIGJvdHRvbSBvZiBlbGVtZW50c1xuICogICAgdGhhdCBhcmUgY2xlYXJmaXhlZC5cbiAqIDIuIFRoZSB1c2Ugb2YgYHRhYmxlYCByYXRoZXIgdGhhbiBgYmxvY2tgIGlzIG9ubHkgbmVjZXNzYXJ5IGlmIHVzaW5nXG4gKiAgICBgOmJlZm9yZWAgdG8gY29udGFpbiB0aGUgdG9wLW1hcmdpbnMgb2YgY2hpbGQgZWxlbWVudHMuXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLmNmOmJlZm9yZSxcbi5jZjphZnRlciB7XG4gICAgY29udGVudDogXCIgXCI7IC8qIDEgKi9cbiAgICBkaXNwbGF5OiB0YWJsZTsgLyogMiAqL1xufVxuXG4uY2Y6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogRml4IGZvciBwbHlyIGZ1bGxzY3JlZW4gYmVpbmcgYnJva2VuIGFjY2lkZW50bHkuXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnBseXItLWZ1bGxzY3JlZW4tYWN0aXZlIHtcbiAgICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIE1lZGlhIE9iamVjdFxuICpcbiAqIGh0dHA6Ly93d3cuc3R1YmJvcm5lbGxhLm9yZy9jb250ZW50LzIwMTAvMDYvMjUvdGhlLW1lZGlhLW9iamVjdC1zYXZlcy1odW5kcmVkcy1vZi1saW5lcy1vZi1jb2RlL1xuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi5tZWRpYSB7XG4gICAgbWFyZ2luOiAxcmVtO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuXG4gICAgLmltZyB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICB9XG5cbiAgICAuYmQge1xuICAgICAgICBmbGV4OiAxIDE7XG4gICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICB9XG59XG4iLCIucG9pLWljb24ge1xuICAgIHdpZHRoOiA4MHB4O1xuICAgIGhlaWdodDogODBweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogNTtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdGV4dC1pbmRlbnQ6IC05OTk5cmVtO1xuXG4gICAgJi5sYWJlbGxlZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEuM3JlbTtcbiAgICB9XG5cbiAgICAubGFiZWwge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB0ZXh0LWluZGVudDogMDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDIwMDtcbiAgICAgICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4yNXMgJHF1aWNrLWJlemllcjtcbiAgICB9XG5cbiAgICAmW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAgICAgICB3aWR0aDogNDBweDtcbiAgICAgICAgaGVpZ2h0OiA0MHB4O1xuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc3ZnIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHotaW5kZXg6IDU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4yNXMgJHF1aWNrLWJlemllcjtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuXG4gICAgICAgIHBhdGgsXG4gICAgICAgIGNpcmNsZSxcbiAgICAgICAgcG9seWxpbmUsXG4gICAgICAgIGxpbmUge1xuICAgICAgICAgICAgc3Ryb2tlOiAkc2xhdGU7XG4gICAgICAgICAgICB2ZWN0b3ItZWZmZWN0OiBub24tc2NhbGluZy1zdHJva2U7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBmaWxsIDAuMjVzICRxdWljay1zd2l0Y2gsIHN0cm9rZSAwLjI1cyAkcXVpY2stc3dpdGNoO1xuXG4gICAgICAgICAgICBib2R5Lm9yYW5nZSAmIHtcbiAgICAgICAgICAgICAgICBzdHJva2U6ICRjb2NvYTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYm9keS5hcXVhICYge1xuICAgICAgICAgICAgICAgIHN0cm9rZTogJHBldHJvbDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYm9keS5uZW9uLWdyZWVuICYge1xuICAgICAgICAgICAgICAgIHN0cm9rZTogJGZvcmVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYm9keS5zbGF0ZSAmIHtcbiAgICAgICAgICAgICAgICBzdHJva2U6ICRzbGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgICBib3JkZXI6IG5vbmU7XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC43NSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkYmx1ZS1ncmV5O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgei1pbmRleDogLTE7XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4yNXMgJHF1aWNrLWJlemllcjtcblxuICAgICAgICBib2R5Lm9yYW5nZSAmLFxuICAgICAgICBib2R5LmFxdWEgJixcbiAgICAgICAgYm9keS5zbGF0ZSAmLFxuICAgICAgICBib2R5Lm5lb24tZ3JlZW4gJiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgICYudHJhaWwtaWNvbiB7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICB3aWR0aDogN3B4O1xuICAgICAgICAgICAgaGVpZ2h0OiA3cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBHZW5lcmF0ZSBjbGFzc2VzIGFuZCBjb2xvdXJzLlxuICAgIC8vIEZyb20gX2NvbG91cnMuc2Nzc1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggbGVuZ3RoKCRjbGFzc2VzKSB7XG4gICAgICAgICYuI3tudGgoJGNsYXNzZXMsICRpKX0ge1xuICAgICAgICAgICAgY29sb3I6ICN7bnRoKCRjb2xvcnMsICRpKX07XG4gICAgICAgIH1cblxuICAgICAgICAmLiN7bnRoKCRjbGFzc2VzLCAkaSl9OmJlZm9yZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAje250aCgkY29sb3JzLCAkaSl9O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpob3ZlcjpiZWZvcmUge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSBzY2FsZSg0KSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICY6YWN0aXZlOmJlZm9yZSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIHNjYWxlKDQuOCkgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAmLmJvdHRvbTpiZWZvcmUge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAxMDAlKTtcbiAgICB9XG5cbiAgICAmLmJvdHRvbS5yaWdodDpiZWZvcmUge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxMDAlLCAxMDAlKTtcbiAgICB9XG5cbiAgICAmLmJvdHRvbS5sZWZ0OmJlZm9yZSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xMDAlLCAxMDAlKTtcbiAgICB9XG5cbiAgICAmLnJpZ2h0OmJlZm9yZSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDEwMCUsIC01MCUpO1xuICAgIH1cblxuICAgICYubGVmdDpiZWZvcmUge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTAwJSwgLTUwJSk7XG4gICAgfVxuXG4gICAgJi50b3A6YmVmb3JlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTEwMCUpO1xuICAgIH1cblxuICAgICYudG9wLnJpZ2h0OmJlZm9yZSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDEwMCUsIC0xMDAlKTtcbiAgICB9XG5cbiAgICAmLnRvcC5sZWZ0OmJlZm9yZSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xMDAlLCAtMTAwJSk7XG4gICAgfVxuXG59XG4iLCIuY2F0ZWdvcnktbWFyayB7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGZvbnQtc2l6ZTogMS4xMjVyZW07IC8vIDE4cHhcbiAgICBtYXJnaW46IDRlbSAwO1xuICAgIGNvbG9yOiAkc2xhdGU7XG4gICAgdGV4dC1pbmRlbnQ6IC0ycmVtO1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDFyZW07XG4gICAgICAgIHdpZHRoOiAxcmVtO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjI1cyAkcXVpY2stYmV6aWVyLCB0cmFuc2Zvcm0gMC4yNXMgJHF1aWNrLWJlemllcjtcbiAgICB9XG5cbiAgICAvLyBHZW5lcmF0ZSBjbGFzc2VzIGFuZCBjb2xvdXJzLlxuICAgIC8vIEZyb20gX2NvbG91cnMuc2Nzc1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggbGVuZ3RoKCRjbGFzc2VzKSB7XG4gICAgICAgICYuI3tudGgoJGNsYXNzZXMsICRpKX06YmVmb3JlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICN7bnRoKCRjb2xvcnMsICRpKX07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBib2R5Lm9yYW5nZSAmLFxuICAgIGJvZHkuYXF1YSAmLFxuICAgIGJvZHkubmVvbi1ncmVlbiAmIHtcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBib2R5LnNsYXRlICYge1xuICAgICAgICBjb2xvcjogJHNsYXRlO1xuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzbGF0ZTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC41KTtcbiAgICAgICAgfVxuICAgIH1cblxufVxuXG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY1MHB4KSB7XG4gICAgLmNhdGVnb3J5LW1hcmsge1xuICAgICAgICBtYXJnaW46IDJlbSAwO1xuICAgIH1cbn1cbiIsIi5sb2FkLWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgei1pbmRleDogMjtcblxuICAgICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IC0xMHB4O1xuICAgICAgICBsZWZ0OiAtMTBweDtcbiAgICAgICAgcmlnaHQ6IC0xMHB4O1xuICAgICAgICBib3R0b206IC0xMHB4O1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgb3BhY2l0eTogMC44O1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDFzICRxdWljay1iZXppZXIsIG9wYWNpdHkgMXMgJHF1aWNrLWJlemllcjtcbiAgICB9XG5cbiAgICAubGF6eS1sb2FkZWQge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDowO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYm90dG9tOjA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxcyAkcXVpY2stYmV6aWVyO1xuICAgIH1cblxuICAgICYubG9hZGVkIHtcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmxhenktbG9hZGVkIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBHZW5lcmF0ZSBjbGFzc2VzIGFuZCBjb2xvdXJzLlxuICAgIC8vIEZyb20gX2NvbG91cnMuc2Nzc1xuICAgIC8vIFNlbGVjdHMgYW5kIGFwcGxpZXMgcGFsZSBjb2xvdXJzIGZyb20gbGlzdFxuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggbGVuZ3RoKCRjbGFzc2VzKSB7XG4gICAgICAgIEBpZigkaSArIDEgPD0gbGVuZ3RoKCRjbGFzc2VzKSkge1xuICAgICAgICAgICAgJi4je250aCgkY2xhc3NlcywgJGkpfTphZnRlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogI3tudGgoJGNvbG9ycywgJGkgKyAxKX07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgJi4je250aCgkY2xhc3NlcywgJGkpfTphZnRlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogI3tudGgoJGNvbG9ycywgJGkpfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIEJvZHkgY29sb3VycyBzdGlsbCBvdmVycmlkZSB0aGlzIGNvbXBvbmVudFxuICAgIGJvZHkub3JhbmdlICYsXG4gICAgYm9keS5hcXVhICYsXG4gICAgYm9keS5uZW9uLWdyZWVuICYsXG4gICAgYm9keS5zbGF0ZSAmIHtcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2xhdGU7XG4gICAgICAgIH1cbiAgICB9XG5cbn1cbiIsIi5wb3N0LWJvZHkgcCA+IGltZyB7XG4gICAgbWFyZ2luOiAycmVtIDA7XG59XG5cbi53cC12aWRlbyB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IGF1dG87XG59XG5cbi53cC12aWRlby1zaG9ydGNvZGUgdmlkZW8sXG52aWRlby53cC12aWRlby1zaG9ydGNvZGUge1xuICAgIGhlaWdodDogYXV0bztcbn1cbiIsIi5jcm93ZC1pZGVudGlmaWVkIHtcbiAgICBjb2xvcjogJG9yYW5nZTtcblxuICAgIGJvZHkub3JhbmdlICYsXG4gICAgYm9keS5hcXVhICYsXG4gICAgYm9keS5uZW9uLWdyZWVuICYsXG4gICAgYm9keS5zbGF0ZSAmIHtcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICB9XG59XG4iLCJpbnB1dCxcbnRleHRhcmVhIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXI6IDA7XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGNvY29hO1xuICAgIHBhZGRpbmc6IDAuNXJlbSAwO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICB9XG5cbiAgICAmOm5vdChpbnB1dFt0eXBlPVwicmFuZ2VcIl0pIHtcbiAgICAgICAgbWluLXdpZHRoOiAyMXJlbTtcbiAgICB9XG59XG5cbnNlbGVjdHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2xhdGU7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogaW5oZXJpdDtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIHBhZGRpbmc6IDAuNXJlbSAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cblxuIiwiQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6ICdmb250ZWxsbyc7XG4gICAgc3JjOiB1cmwoJy4uL2ZvbnRzL2ZvbnRlbGxvLmVvdD81MjgyNDEyNicpO1xuICAgIHNyYzogdXJsKCcuLi9mb250cy9mb250ZWxsby5lb3Q/NTI4MjQxMjYjaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gICAgdXJsKCcuLi9mb250cy9mb250ZWxsby53b2ZmMj81MjgyNDEyNicpIGZvcm1hdCgnd29mZjInKSxcbiAgICB1cmwoJy4uL2ZvbnRzL2ZvbnRlbGxvLndvZmY/NTI4MjQxMjYnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICB1cmwoJy4uL2ZvbnRzL2ZvbnRlbGxvLnR0Zj81MjgyNDEyNicpIGZvcm1hdCgndHJ1ZXR5cGUnKSxcbiAgICB1cmwoJy4uL2ZvbnRzL2ZvbnRlbGxvLnN2Zz81MjgyNDEyNiNmb250ZWxsbycpIGZvcm1hdCgnc3ZnJyk7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbltjbGFzc149XCJmYS1pY29uLVwiXTpiZWZvcmUsXG5bY2xhc3MqPVwiIGZhLWljb24tXCJdOmJlZm9yZSB7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgZm9udC1mYW1pbHk6IFwiZm9udGVsbG9cIjtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBzcGVhazogbm9uZTtcblxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gICAgd2lkdGg6IDFlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IC4yZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIC8qIG9wYWNpdHk6IC44OyAqL1xuXG4gICAgLyogRm9yIHNhZmV0eSAtIHJlc2V0IHBhcmVudCBzdHlsZXMsIHRoYXQgY2FuIGJyZWFrIGdseXBoIGNvZGVzKi9cbiAgICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblxuICAgIC8qIGZpeCBidXR0b25zIGhlaWdodCwgZm9yIHR3aXR0ZXIgYm9vdHN0cmFwICovXG4gICAgbGluZS1oZWlnaHQ6IDFlbTtcblxuICAgIC8qIEFuaW1hdGlvbiBjZW50ZXIgY29tcGVuc2F0aW9uIC0gbWFyZ2lucyBzaG91bGQgYmUgc3ltbWV0cmljICovXG4gICAgLyogcmVtb3ZlIGlmIG5vdCBuZWVkZWQgKi9cbiAgICBtYXJnaW4tbGVmdDogLjJlbTtcblxuICAgIC8qIHlvdSBjYW4gYmUgbW9yZSBjb21mb3J0YWJsZSB3aXRoIGluY3JlYXNlZCBpY29ucyBzaXplICovXG4gICAgLyogZm9udC1zaXplOiAxMjAlOyAqL1xuXG4gICAgLyogRm9udCBzbW9vdGhpbmcuIFRoYXQgd2FzIHRha2VuIGZyb20gVFdCUyAqL1xuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG5cbiAgICAvKiBVbmNvbW1lbnQgZm9yIDNEIGVmZmVjdCAqL1xuICAgIC8qIHRleHQtc2hhZG93OiAxcHggMXB4IDFweCByZ2JhKDEyNywgMTI3LCAxMjcsIDAuMyk7ICovXG59XG5cbi5mYS1pY29uLXR3aXR0ZXI6YmVmb3JlIHsgY29udGVudDogJ1xcZjA5OSc7IH0gLyogJ++CmScgKi9cbi5mYS1pY29uLWZhY2Vib29rOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGYwOWEnOyB9IC8qICfvgponICovXG4uZmEtaWNvbi1waW50ZXJlc3QtY2lyY2xlZDpiZWZvcmUgeyBjb250ZW50OiAnXFxmMGQyJzsgfSAvKiAn74OSJyAqL1xuLmZhLWljb24tZ3BsdXM6YmVmb3JlIHsgY29udGVudDogJ1xcZjBkNSc7IH0gLyogJ++DlScgKi9cbi5mYS1pY29uLWxpbmtlZGluOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGYwZTEnOyB9IC8qICfvg6EnICovXG4uZmEtaWNvbi15b3V0dWJlLXBsYXk6YmVmb3JlIHsgY29udGVudDogJ1xcZjE2YSc7IH0gLyogJ++FqicgKi9cbi5mYS1pY29uLWluc3RhZ3JhbTpiZWZvcmUgeyBjb250ZW50OiAnXFxmMTZkJzsgfSAvKiAn74WtJyAqL1xuLmZhLWljb24tc25hcGNoYXQtZ2hvc3Q6YmVmb3JlIHsgY29udGVudDogJ1xcZjJhYyc7IH0gLyogJ++KrCcgKi9cbiIsImJvZHkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3JhbmdlO1xuICBjb2xvcjogJHdoaXRlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBjdXJzb3I6IG5vbmU7IC8qQ3Vyc29yIHdpbGwgYmUgYWN0aXZhdGVkIG9uIHJpZ2h0IGNsaWNrIGluIENocm9tZSovXG5cbiAgI2NvbnRlbnQsXG4gICNmb290ZXIge1xuICAgIGZsZXg6IDE7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG59XG5cbmh0bWwsYm9keSB7XG4gIGhlaWdodDogMTAwJTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG59XG5cbiNoZWFkZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbjogMy41cmVtIGF1dG8gMCBhdXRvO1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiA4MCU7XG4gIG1heC1oZWlnaHQ6IDMuNXJlbTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAubG9nby1saW5rIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogM3JlbTtcbiAgICBib3JkZXI6IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDE7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICB9XG5cbiAgICAubG9nby1jb250YWluZXIge1xuICAgICAgaGVpZ2h0OiAwO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgcGFkZGluZy1ib3R0b206IDEwNy4zJTtcblxuICAgICAgc3ZnIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgcGF0aCB7XG4gICAgICAgICAgZmlsbDogJHdoaXRlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm5hdi1hY3RpdmUgJiB7XG4gICAgICBwYXRoIHtcbiAgICAgICAgZmlsbDogJHdoaXRlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4jd2VsY29tZSB7XG4gIG1hcmdpbjogMy41cmVtIGF1dG8gMCBhdXRvO1xuICBtYXgtd2lkdGg6IDgwJTtcbiAgd2lkdGg6IDEwMCU7XG5cbiAgaDEge1xuICAgIGZvbnQtc2l6ZTogOXZ3O1xuICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgaDIge1xuICAgIGZvbnQtc2l6ZTogNHZ3O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZm9udC1mYW1pbHk6IFwiR290aGFtIFNTbSBBXCIsXCJHb3RoYW0gU1NtIEJcIixIZWx2ZXRpY2EsQXJpYWwsU2Fucy1zZXJpZjtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDIwMDBweCkge1xuICAgICAgZm9udC1zaXplOiA2LjI1cmVtO1xuICAgIH1cblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gICAgICBmb250LXNpemU6IDd2dztcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDUwMHB4KSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIGhlYWRlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgLm1lc3NhZ2Uge1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgYm90dG9tOiAxMHZoO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG5cbiAgICAuZ3JpZC10aXRsZSB7XG4gICAgICB0b3A6IDEwdmg7XG4gICAgICBsZWZ0OjUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgaDEge1xuICAgICAgICBmb250LXNpemU6IDR2dztcbiAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgLm91dGVyIHtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICAgICAgbWFyZ2luOiAtMTBweDtcbiAgICB9XG5cbiAgICAuaW5uZXIge1xuICAgICAgcGFkZGluZzogMTBweDtcbiAgICB9XG4gIH1cbn1cblxuI2JhY2tncm91bmQtaW1hZ2Uge1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBvcGFjaXR5OiAwO1xufVxuXG4jZ3JpZC1kaXYge1xuICBvcGFjaXR5OiAxO1xuICBtYXJnaW46MTAlO1xuICBtYXJnaW4tdG9wOiAyNTBweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gIHVsIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIG1hcmdpbjogMTJ2aCAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgICBsaSB7XG4gICAgICBtYXJnaW46IDJ2dztcbiAgICAgIGZsZXg6IDEgMCAyMCU7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgICBpbWcge1xuICAgICAgICB3aWR0aDoyMnZoO1xuICAgICAgICBoZWlnaHQ6IDE3dmg7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbiNmb290ZXIge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDgwJTtcbiAgbWF4LWhlaWdodDogMy41cmVtO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4jd3BhZG1pbmJhciB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbiJdfQ== */
