@import url(https://fonts.googleapis.com/css?family=Righteous);/*! normalize.css v2.1.3 | MIT License | git.io/normalize */

/* ==========================================================================
   HTML5 display definitions
   ========================================================================== */

/**
 * Correct `block` display not defined in IE 8/9.
 */

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
nav,
section,
summary {
    display: block;
}

/**
 * Correct `inline-block` display not defined in IE 8/9.
 */

audio,
canvas,
video {
    display: inline-block;
}

/**
 * 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.
 * Hide the `template` element in IE, Safari, and Firefox < 22.
 */

[hidden],
template {
    display: none;
}

/* ==========================================================================
   Base
   ========================================================================== */

/**
 * 1. Set default font family to sans-serif.
 * 2. Prevent iOS text size adjust after orientation change, without disabling
 *    user zoom.
 */

html {
    font-family: sans-serif; /* 1 */
    -ms-text-size-adjust: 100%; /* 2 */
    -webkit-text-size-adjust: 100%; /* 2 */
}

/**
 * Remove default margin.
 */

body {
    margin: 0;
}

/* ==========================================================================
   Links
   ========================================================================== */

/**
 * Remove the gray background color from active links in IE 10.
 */

a {
    background: transparent;
}

/**
 * Address `outline` inconsistency between Chrome and other browsers.
 */

a:focus {
    outline: thin dotted;
}

/**
 * Improve readability when focused and also mouse hovered in all browsers.
 */

a:active,
a:hover {
    outline: 0;
}

/* ==========================================================================
   Typography
   ========================================================================== */

/**
 * Address variable `h1` font-size and margin within `section` and `article`
 * contexts in Firefox 4+, Safari 5, and Chrome.
 */

h1 {
    font-size: 2em;
    margin: 0.67em 0;
}

/**
 * Address styling not present in IE 8/9, Safari 5, and Chrome.
 */

abbr[title] {
    border-bottom: 1px dotted;
}

/**
 * Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome.
 */

b,
strong {
    font-weight: bold;
}

/**
 * Address styling not present in Safari 5 and Chrome.
 */

dfn {
    font-style: italic;
}

/**
 * Address differences between Firefox and other browsers.
 */

hr {
    -moz-box-sizing: content-box;
    box-sizing: content-box;
    height: 0;
}

/**
 * Address styling not present in IE 8/9.
 */

mark {
    background: #ff0;
    color: #000;
}

/**
 * Correct font family set oddly in Safari 5 and Chrome.
 */

code,
kbd,
pre,
samp {
    font-family: monospace, serif;
    font-size: 1em;
}

/**
 * Improve readability of pre-formatted text in all browsers.
 */

pre {
    white-space: pre-wrap;
}

/**
 * Set consistent quote types.
 */

q {
    quotes: "\201C" "\201D" "\2018" "\2019";
}

/**
 * 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.
 */

img {
    border: 0;
}

/**
 * Correct overflow displayed oddly in IE 9.
 */

svg:not(:root) {
    overflow: hidden;
}

/* ==========================================================================
   Figures
   ========================================================================== */

/**
 * Address margin not present in IE 8/9 and Safari 5.
 */

figure {
    margin: 0;
}

/* ==========================================================================
   Forms
   ========================================================================== */

/**
 * 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.
 * 2. Remove padding so people aren't caught out if they zero out fieldsets.
 */

legend {
    border: 0; /* 1 */
    padding: 0; /* 2 */
}

/**
 * 1. Correct font family not being inherited in all browsers.
 * 2. Correct font size not being inherited in all browsers.
 * 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome.
 */

button,
input,
select,
textarea {
    font-family: inherit; /* 1 */
    font-size: 100%; /* 2 */
    margin: 0; /* 3 */
}

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

button,
input {
    line-height: normal;
}

/**
 * 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 Chrome, Safari 5+, and IE 8+.
 * Correct `select` style inheritance in Firefox 4+ and Opera.
 */

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"], /* 1 */
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;
}

/**
 * 1. Address box sizing set to `content-box` in IE 8/9/10.
 * 2. Remove excess padding in IE 8/9/10.
 */

input[type="checkbox"],
input[type="radio"] {
    box-sizing: border-box; /* 1 */
    padding: 0; /* 2 */
}

/**
 * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome.
 * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome
 *    (include `-moz` to future-proof).
 */

input[type="search"] {
    -webkit-appearance: textfield; /* 1 */
    -moz-box-sizing: content-box;
    -webkit-box-sizing: content-box; /* 2 */
    box-sizing: content-box;
}

/**
 * Remove inner padding and search cancel button in Safari 5 and Chrome
 * on OS X.
 */

input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
    -webkit-appearance: none;
}

/**
 * Remove inner padding and border in Firefox 4+.
 */

button::-moz-focus-inner,
input::-moz-focus-inner {
    border: 0;
    padding: 0;
}

/**
 * 1. Remove default vertical scrollbar in IE 8/9.
 * 2. Improve readability and alignment in all browsers.
 */

textarea {
    overflow: auto; /* 1 */
    vertical-align: top; /* 2 */
}

/* ==========================================================================
   Tables
   ========================================================================== */

/**
 * Remove most spacing between table cells.
 */

table {
    border-collapse: collapse;
    border-spacing: 0;
}
*, *::after, *::before {
  box-sizing: border-box; }

html {
  font-size: 62.5%; }

body {
  font-size: 1.6rem;
  font-family: 'Righteous', cursive; }

h1 {
  line-height: 1;
  text-align: center; }

h2 {
  color: #bb0022;
  margin-top: 1rem;
  margin-bottom: 1rem; }

h4 {
  margin-top: 0;
  margin-bottom: 1rem;
  text-transform: capitalize;
  color: #666;
  text-transform: uppercase; }

p {
  margin-top: 0;
  margin-bottom: 1rem; }

.small, #intro > .game-version,
#homepage > .game-version {
  font-size: 1.2rem;
  opacity: 0.5; }

.grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between; }

.grid-1-of-2 > * {
  flex-basis: 100%;
  margin-bottom: 2rem; }
  @media (min-width: 20em) {
    .grid-1-of-2 > * {
      flex-basis: calc(50% - 0.5rem); } }

@media (min-width: 40em) {
  .grid-1-of-3 > * {
    flex-basis: calc(33.33% - 0.5rem); } }

.game-wrapper {
  width: 100vw;
  height: 100vh;
  position: relative; }

.game-viewport {
  height: 100vh;
  background: radial-gradient(closest-side, #444, #111); }

#canvas3d {
  display: block;
  width: 100vw;
  height: 100vh;
  touch-action: none; }
  #canvas3d.half-top {
    height: 50vh; }
  #canvas3d.collapsed {
    height: 0; }

#canvas2d-wrapper {
  position: absolute;
  top: 3.2rem;
  left: 0;
  width: 25vw;
  height: 25vw;
  transform: translateX(-100%);
  transition: all 0.25s; }
  #canvas2d-wrapper.active {
    transform: translateX(0); }

#canvas2d {
  display: block; }

button {
  display: inline-block;
  border: 0.2rem solid;
  color: white;
  background-color: transparent;
  border-color: white;
  padding: 0.5rem 1rem;
  font-weight: bold;
  text-transform: capitalize;
  transition: all 0.25s; }
  button:hover, button:focus {
    background-color: white;
    color: #111; }
  button:active {
    background-color: #bb0022;
    border-color: #bb0022;
    color: white; }
  button:hover, button:focus {
    outline: none; }
  button:disabled {
    opacity: 0.5; }
  button.btn--strong {
    text-transform: uppercase; }
  button.btn--highlight {
    color: #bb0022;
    background-color: transparent;
    border-color: #bb0022; }
    button.btn--highlight:hover, button.btn--highlight:focus {
      background-color: #bb0022;
      color: #111; }
    button.btn--highlight:active {
      background-color: #bb0022;
      border-color: #bb0022;
      color: white; }
  button.btn--small {
    padding: 0.25rem 0.5rem;
    font-weight: normal; }

.input-block {
  display: flex;
  align-items: end;
  flex-wrap: wrap;
  margin-bottom: 1rem; }
  @media (min-width: 40em) {
    .input-block {
      flex-wrap: nowrap; } }
  .input-block > * {
    flex-basis: 100%; }
    @media (min-width: 40em) {
      .input-block > * {
        flex-basis: 50%;
        max-width: 50%; } }
  .input-block > label,
  .input-block > .label {
    text-align: left;
    margin-bottom: 0.5rem;
    text-transform: capitalize; }
  .input-block > .input-with-unit {
    text-align: left; }

input[type="text"],
input[type="number"],
.checky,
.raydio {
  display: inline-block;
  border: 0.2rem solid #666; }

label,
.label,
input[type="text"],
input[type="number"] {
  padding: 0.25rem 0.5rem;
  background-color: transparent;
  color: white; }

label,
.label {
  padding: 0.25rem 0;
  display: inline-block;
  color: #bb0022;
  line-height: 1; }

input[type="text"].input--full,
input[type="number"].input--full {
  width: 100%;
  max-width: 100%;
  flex-basis: 100%; }

input[type="text"] {
  max-width: 10rem; }

input[type="number"] {
  max-width: 7rem;
  text-align: right; }
  input[type="number"].number--small {
    max-width: 4rem; }

textarea {
  display: block;
  width: 100%;
  font-size: 1.2rem;
  margin-bottom: 2rem; }

.input-unit {
  padding: 0.25rem;
  padding-left: 0;
  background-color: #666;
  border: 0.2rem solid #666;
  color: white; }

.checky > input[type="checkbox"] {
  position: absolute;
  left: -1000rem; }

.checky > input[type="checkbox"] + label {
  display: inline-block;
  color: #666;
  font-size: 0;
  padding: 0; }
  .checky > input[type="checkbox"] + label::before, .checky > input[type="checkbox"] + label::after {
    font-size: 1.4rem;
    display: inline-block;
    padding: 0.45rem 0.7rem;
    transition: color 0.25s, background-color 0.5s; }
  .checky > input[type="checkbox"] + label::before {
    content: "on"; }
  .checky > input[type="checkbox"] + label::after {
    content: "off";
    color: white;
    background-color: #666; }
  .checky > input[type="checkbox"] + label:hover {
    color: white; }

.checky > input[type="checkbox"]:checked + label::before {
  color: white;
  background-color: #bb0022; }

.checky > input[type="checkbox"]:checked + label::after {
  color: #666;
  background-color: transparent; }

.checky > input[type="checkbox"]:checked + label:hover::after {
  color: white; }

.raydio > input[type="radio"] {
  position: absolute;
  left: -1000rem; }

.raydio > input[type="radio"] + label {
  display: inline-block;
  padding: 0.45rem 0.7rem;
  color: #666;
  transition: color 0.25s, background-color 0.5s; }
  .raydio > input[type="radio"] + label:hover {
    color: white; }

.raydio > input[type="radio"]:checked + label {
  background: #bb0022;
  color: white; }

.slidey {
  display: flex;
  border: 0.2rem solid #666; }
  .slidey > input[type="range"] {
    flex-grow: 1;
    min-width: 0; }
  .slidey > .slidey-value {
    min-width: 4rem;
    padding: 0.25rem 0.5rem;
    text-align: left;
    background-color: #666; }
  .slidey.slidey--disabled {
    opacity: 0.5; }

#intro,
#homepage,
#configuration,
#options,
#topbar,
#game-menu,
#infos {
  position: fixed;
  padding: 1rem;
  background-color: rgba(0, 0, 0, 0.75);
  color: white; }

#intro,
#homepage,
#options {
  padding: 2rem;
  top: 50%;
  left: 50%;
  transform: translate3d(-50%, calc(-100vh - 50%), 0);
  transition: all 0.5s; }
  #intro.active,
  #homepage.active,
  #options.active {
    transform: translate3d(-50%, -50%, 0); }

#intro > .game-version,
#homepage > .game-version {
  text-align: right; }

#intro > h1,
#homepage > h1 {
  font-size: 4rem;
  margin-top: 2rem;
  margin-bottom: 0; }

#intro > p.small, #intro > p.game-version,
#homepage > p.small,
#homepage > p.game-version {
  margin-bottom: 2rem; }

#intro > button,
#homepage > button {
  display: block;
  width: 100%; }
  #intro > button:not(:last-child),
  #homepage > button:not(:last-child) {
    margin-bottom: 1rem; }

#intro,
#homepage {
  width: 75vw; }
  @media (min-width: 20em) {
    #intro,
    #homepage {
      width: 50vw; } }
  @media (min-width: 40em) {
    #intro,
    #homepage {
      width: 35vw; } }
  @media (min-width: 60em) {
    #intro,
    #homepage {
      width: 25vw; } }

#options {
  text-align: center; }
  #options > h2 {
    margin-top: 1rem; }

#topbar {
  top: 0;
  left: 0;
  width: 100vw;
  padding: 0;
  display: flex;
  justify-content: space-between;
  transform: translate3d(0, -100%, 0);
  transition: transform 0.25s; }
  #topbar.active {
    transform: translate3d(0, 0, 0); }

.itembar {
  display: flex; }

.itembar-item {
  padding: 1rem; }
  .itembar-item > span {
    font-weight: bold; }

#infos {
  top: 3.2rem;
  right: 0;
  min-width: 25vw;
  transform: translateX(100%);
  transition: all .25s; }
  .active-infos #infos {
    transform: translateX(0); }

.infos-item {
  display: flex;
  margin-bottom: 0.5rem; }

.infos-item__label {
  flex-grow: 1;
  padding-right: 1rem;
  color: #bb0022; }

.infos-item__value {
  text-align: right; }

#configuration {
  overflow-y: hidden;
  overflow-y: visible;
  bottom: 0;
  left: 0;
  width: 100vw;
  height: 50vh;
  background-color: #222;
  text-align: center;
  transform: translateY(100%);
  transition: transform 0.25s; }
  #configuration.active {
    transform: translateY(0); }

.configuration {
  position: relative; }
  @media (min-width: 40em) {
    .configuration {
      margin-left: 4rem;
      margin-right: 4rem; } }
  @media (min-width: 60em) {
    .configuration {
      margin-left: 6rem;
      margin-right: 6rem; } }

.configuration-ready {
  display: none; }
  @media (min-width: 40em) {
    .configuration-ready {
      display: block; } }

.configuration-ready__item {
  margin: 0 0.25rem;
  color: red;
  background-color: transparent;
  border-color: transparent;
  border-bottom-color: transparent;
  transition: all 0.25s; }
  .configuration-ready__item.configuration-ready__item--active {
    background-color: #111;
    border-color: #111; }
  .configuration-ready__item.configuration-ready__item--good {
    color: green; }

.configuration-btn {
  position: absolute;
  z-index: +1; }

.configuration-btn--previous {
  top: 1rem;
  left: 0; }

.configuration-btn--next {
  bottom: 1rem;
  right: 0; }

.configuration-wrapper {
  width: 700%;
  display: flex;
  transition: transform 0.25s; }
  .step-0 .configuration-wrapper {
    transform: translateX(0); }
  .step-1 .configuration-wrapper {
    transform: translateX(-14.28571%); }
  .step-2 .configuration-wrapper {
    transform: translateX(-28.57143%); }
  .step-3 .configuration-wrapper {
    transform: translateX(-42.85714%); }
  .step-4 .configuration-wrapper {
    transform: translateX(-57.14286%); }
  .step-5 .configuration-wrapper {
    transform: translateX(-71.42857%); }
  .step-6 .configuration-wrapper {
    transform: translateX(-85.71429%); }

.configuration-section {
  flex-basis: 14.28571%;
  margin-left: 1rem;
  margin-right: 1rem;
  padding: 1rem;
  padding-top: 0;
  background-color: #111;
  display: flex;
  flex-direction: column; }
  .configuration-section h3 {
    margin-top: 2rem;
    margin-bottom: 2rem; }
  .configuration-section h4 {
    text-align: left; }

.configuration-section__body {
  flex-grow: 1;
  max-height: 27vh;
  overflow-y: auto; }
  .configuration-section__body button:first-child {
    margin-bottom: 2rem; }

.configuration-section__footer {
  padding-top: 1rem;
  padding-right: 4rem; }

.configuration-player {
  margin-bottom: 0.5rem;
  display: flex;
  justify-content: center;
  flex-wrap: wrap; }
  .configuration-player > * {
    margin-bottom: 0.5rem;
    margin-right: 0.5rem; }
    .configuration-player > *:last-child, .configuration-player > *:first-child {
      margin-right: 0; }

.configuration-player__p-color {
  width: 3rem;
  color: #111;
  border: 0.2rem solid; }

#game-menu {
  top: 3.2rem;
  right: 0;
  padding: 0.5rem;
  padding-bottom: 0;
  color: white;
  transform: translateX(100%);
  transition: all 0.25s; }
  #game-menu.active {
    transform: translateX(0); }
  #game-menu button {
    width: 100%;
    margin-bottom: 0.5rem;
    text-align: left;
    border-width: 0 !important; }
    #game-menu button.game-menu-item--with-value {
      display: flex;
      justify-content: space-between; }
      #game-menu button.game-menu-item--with-value > span {
        margin-left: 1rem; }
    #game-menu button.game-menu-item--disabled {
      opacity: 0.5; }

#big-banner {
  position: fixed;
  width: 100vw;
  min-height: 50vh;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  background-color: white;
  transition: all 1s;
  display: none; }
  #big-banner.active {
    display: block; }
  #big-banner.above {
    transform: translateY(-250%); }
  #big-banner.below {
    transform: translateY(150%); }

#big-banner-content {
  position: absolute;
  width: 100%;
  top: 50%;
  left: 50%;
  transform: translate3d(-50%, -50%, 0);
  color: #444;
  font-size: calc(2rem + 2vw);
  text-align: center;
  transition: all 1s; }
  .text-left #big-banner-content {
    transform: translate3d(-150%, -50%, 0); }
  .text-right #big-banner-content {
    transform: translate3d(50%, -50%, 0); }

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vbm9kZV9tb2R1bGVzL25vcm1hbGl6ZS1jc3Mvbm9ybWFsaXplLmNzcyIsIndlYnBhY2s6Ly8vLi9zY3NzL3NyYy9zY3NzL2xpYi9fYmFzZS5zY3NzIiwid2VicGFjazovLy8uL3Njc3Mvc3JjL3Njc3MvbGliL192YXJpYWJsZXMuc2NzcyIsIndlYnBhY2s6Ly8vLi9zY3NzL3NyYy9zY3NzL2xpYi9fZ3JpZC5zY3NzIiwid2VicGFjazovLy8uL3Njc3Mvc3JjL3Njc3MvbGliL19nYW1lLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vc2Nzcy9zcmMvc2Nzcy9saWIvX2Zvcm1zLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vc2Nzcy9zcmMvc2Nzcy9saWIvX3Bhbm5lbHMuc2NzcyIsIndlYnBhY2s6Ly8vLi9zY3NzL3NyYy9zY3NzL2xpYi9fZ2FtZS1tZW51LnNjc3MiLCJ3ZWJwYWNrOi8vLy4vc2Nzcy9zcmMvc2Nzcy9saWIvX2JpZy1iYW5uZXIuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiK0RBQUEsNERBQTREOztBQUU1RDs7Z0ZBRWdGOztBQUVoRjs7R0FFRzs7QUFFSDs7Ozs7Ozs7Ozs7O0lBWUksZUFBZTtDQUNsQjs7QUFFRDs7R0FFRzs7QUFFSDs7O0lBR0ksc0JBQXNCO0NBQ3pCOztBQUVEOzs7R0FHRzs7QUFFSDtJQUNJLGNBQWM7SUFDZCxVQUFVO0NBQ2I7O0FBRUQ7OztHQUdHOztBQUVIOztJQUVJLGNBQWM7Q0FDakI7O0FBRUQ7O2dGQUVnRjs7QUFFaEY7Ozs7R0FJRzs7QUFFSDtJQUNJLHdCQUF3QixDQUFDLE9BQU87SUFDaEMsMkJBQTJCLENBQUMsT0FBTztJQUNuQywrQkFBK0IsQ0FBQyxPQUFPO0NBQzFDOztBQUVEOztHQUVHOztBQUVIO0lBQ0ksVUFBVTtDQUNiOztBQUVEOztnRkFFZ0Y7O0FBRWhGOztHQUVHOztBQUVIO0lBQ0ksd0JBQXdCO0NBQzNCOztBQUVEOztHQUVHOztBQUVIO0lBQ0kscUJBQXFCO0NBQ3hCOztB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LCtCQUE4QixFQUs5QjtNQTFCSDtRQXdCSSxrQkFBaUIsRUFDakI7SUF6Qko7TUE2QkcsYUFBWSxFQUNaOztBQzlCSDtFQUNDLGdCQUFlO0VBQ2YsYUFBWTtFQUNaLGlCQUFnQjtFQUNoQixTQUFRO0VBQ1IsUUFBTztFQUNQLDRCQUEyQjtFQUMzQix3QkFBdUI7RUFDdkIsbUJBQWtCO0VBQ2xCLGNBQWEsRUFXYjtFQXBCRDtJQVlFLGVBQWMsRUFDZDtFQWJGO0lBZUUsNkJBQTRCLEVBQzVCO0VBaEJGO0lBa0JFLDRCQUEyQixFQUMzQjs7QUFHRjtFQUNDLG1CQUFrQjtFQUNsQixZQUFXO0VBQ1gsU0FBUTtFQUNSLFVBQVM7RUFDVCxzQ0FBcUM7RUFDckMsWUFBVztFQUNYLDRCQUEyQjtFQUMzQixtQkFBa0I7RUFDbEIsbUJBQWtCLEVBUWxCO0VBTkE7SUFDQyx1Q0FBc0MsRUFDdEM7RUFDRDtJQUNDLHFDQUFvQyxFQUNwQyIsImZpbGUiOiIuL2Nzcy9hcHAuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyohIG5vcm1hbGl6ZS5jc3MgdjIuMS4zIHwgTUlUIExpY2Vuc2UgfCBnaXQuaW8vbm9ybWFsaXplICovXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBIVE1MNSBkaXNwbGF5IGRlZmluaXRpb25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGluIElFIDgvOS5cbiAqL1xuXG5hcnRpY2xlLFxuYXNpZGUsXG5kZXRhaWxzLFxuZmlnY2FwdGlvbixcbmZpZ3VyZSxcbmZvb3RlcixcbmhlYWRlcixcbmhncm91cCxcbm1haW4sXG5uYXYsXG5zZWN0aW9uLFxuc3VtbWFyeSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICogQ29ycmVjdCBgaW5saW5lLWJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGluIElFIDgvOS5cbiAqL1xuXG5hdWRpbyxcbmNhbnZhcyxcbnZpZGVvIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi8qKlxuICogUHJldmVudCBtb2Rlcm4gYnJvd3NlcnMgZnJvbSBkaXNwbGF5aW5nIGBhdWRpb2Agd2l0aG91dCBjb250cm9scy5cbiAqIFJlbW92ZSBleGNlc3MgaGVpZ2h0IGluIGlPUyA1IGRldmljZXMuXG4gKi9cblxuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGhlaWdodDogMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGBbaGlkZGVuXWAgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkuXG4gKiBIaWRlIHRoZSBgdGVtcGxhdGVgIGVsZW1lbnQgaW4gSUUsIFNhZmFyaSwgYW5kIEZpcmVmb3ggPCAyMi5cbiAqL1xuXG5baGlkZGVuXSxcbnRlbXBsYXRlIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQmFzZVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBTZXQgZGVmYXVsdCBmb250IGZhbWlseSB0byBzYW5zLXNlcmlmLlxuICogMi4gUHJldmVudCBpT1MgdGV4dCBzaXplIGFkanVzdCBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2UsIHdpdGhvdXQgZGlzYWJsaW5nXG4gKiAgICB1c2VyIHpvb20uXG4gKi9cblxuaHRtbCB7XG4gICAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7IC8qIDEgKi9cbiAgICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xuICAgIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSBkZWZhdWx0IG1hcmdpbi5cbiAqL1xuXG5ib2R5IHtcbiAgICBtYXJnaW46IDA7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBMaW5rc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBjb2xvciBmcm9tIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAqL1xuXG5hIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGBvdXRsaW5lYCBpbmNvbnNpc3RlbmN5IGJldHdlZW4gQ2hyb21lIGFuZCBvdGhlciBicm93c2Vycy5cbiAqL1xuXG5hOmZvY3VzIHtcbiAgICBvdXRsaW5lOiB0aGluIGRvdHRlZDtcbn1cblxuLyoqXG4gKiBJbXByb3ZlIHJlYWRhYmlsaXR5IHdoZW4gZm9jdXNlZCBhbmQgYWxzbyBtb3VzZSBob3ZlcmVkIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5hOmFjdGl2ZSxcbmE6aG92ZXIge1xuICAgIG91dGxpbmU6IDA7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBUeXBvZ3JhcGh5XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZHJlc3MgdmFyaWFibGUgYGgxYCBmb250LXNpemUgYW5kIG1hcmdpbiB3aXRoaW4gYHNlY3Rpb25gIGFuZCBgYXJ0aWNsZWBcbiAqIGNvbnRleHRzIGluIEZpcmVmb3ggNCssIFNhZmFyaSA1LCBhbmQgQ2hyb21lLlxuICovXG5cbmgxIHtcbiAgICBmb250LXNpemU6IDJlbTtcbiAgICBtYXJnaW46IDAuNjdlbSAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzksIFNhZmFyaSA1LCBhbmQgQ2hyb21lLlxuICovXG5cbmFiYnJbdGl0bGVdIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGUgc2V0IHRvIGBib2xkZXJgIGluIEZpcmVmb3ggNCssIFNhZmFyaSA1LCBhbmQgQ2hyb21lLlxuICovXG5cbmIsXG5zdHJvbmcge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBTYWZhcmkgNSBhbmQgQ2hyb21lLlxuICovXG5cbmRmbiB7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgZGlmZmVyZW5jZXMgYmV0d2VlbiBGaXJlZm94IGFuZCBvdGhlciBicm93c2Vycy5cbiAqL1xuXG5ociB7XG4gICAgLW1vei1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgICBoZWlnaHQ6IDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS5cbiAqL1xuXG5tYXJrIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmYwO1xuICAgIGNvbG9yOiAjMDAwO1xufVxuXG4vKipcbiAqIENvcnJlY3QgZm9udCBmYW1pbHkgc2V0IG9kZGx5IGluIFNhZmFyaSA1IGFuZCBDaHJvbWUuXG4gKi9cblxuY29kZSxcbmtiZCxcbnByZSxcbnNhbXAge1xuICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIHNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMWVtO1xufVxuXG4vKipcbiAqIEltcHJvdmUgcmVhZGFiaWxpdHkgb2YgcHJlLWZvcm1hdHRlZCB0ZXh0IGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5wcmUge1xuICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbn1cblxuLyoqXG4gKiBTZXQgY29uc2lzdGVudCBxdW90ZSB0eXBlcy5cbiAqL1xuXG5xIHtcbiAgICBxdW90ZXM6IFwiXFwyMDFDXCIgXCJcXDIwMURcIiBcIlxcMjAxOFwiIFwiXFwyMDE5XCI7XG59XG5cbi8qKlxuICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYW5kIHZhcmlhYmxlIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc21hbGwge1xuICAgIGZvbnQtc2l6ZTogODAlO1xufVxuXG4vKipcbiAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGFmZmVjdGluZyBgbGluZS1oZWlnaHRgIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zdWIsXG5zdXAge1xuICAgIGZvbnQtc2l6ZTogNzUlO1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnN1cCB7XG4gICAgdG9wOiAtMC41ZW07XG59XG5cbnN1YiB7XG4gICAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgYm9yZGVyIHdoZW4gaW5zaWRlIGBhYCBlbGVtZW50IGluIElFIDgvOS5cbiAqL1xuXG5pbWcge1xuICAgIGJvcmRlcjogMDtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IG92ZXJmbG93IGRpc3BsYXllZCBvZGRseSBpbiBJRSA5LlxuICovXG5cbnN2Zzpub3QoOnJvb3QpIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgRmlndXJlc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGRyZXNzIG1hcmdpbiBub3QgcHJlc2VudCBpbiBJRSA4LzkgYW5kIFNhZmFyaSA1LlxuICovXG5cbmZpZ3VyZSB7XG4gICAgbWFyZ2luOiAwO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogRGVmaW5lIGNvbnNpc3RlbnQgYm9yZGVyLCBtYXJnaW4sIGFuZCBwYWRkaW5nLlxuICovXG5cbmZpZWxkc2V0IHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICAgIG1hcmdpbjogMCAycHg7XG4gICAgcGFkZGluZzogMC4zNWVtIDAuNjI1ZW0gMC43NWVtO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgYGNvbG9yYCBub3QgYmVpbmcgaW5oZXJpdGVkIGluIElFIDgvOS5cbiAqIDIuIFJlbW92ZSBwYWRkaW5nIHNvIHBlb3BsZSBhcmVuJ3QgY2F1Z2h0IG91dCBpZiB0aGV5IHplcm8gb3V0IGZpZWxkc2V0cy5cbiAqL1xuXG5sZWdlbmQge1xuICAgIGJvcmRlcjogMDsgLyogMSAqL1xuICAgIHBhZGRpbmc6IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGZvbnQgZmFtaWx5IG5vdCBiZWluZyBpbmhlcml0ZWQgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCBmb250IHNpemUgbm90IGJlaW5nIGluaGVyaXRlZCBpbiBhbGwgYnJvd3NlcnMuXG4gKiAzLiBBZGRyZXNzIG1hcmdpbnMgc2V0IGRpZmZlcmVudGx5IGluIEZpcmVmb3ggNCssIFNhZmFyaSA1LCBhbmQgQ2hyb21lLlxuICovXG5cbmJ1dHRvbixcbmlucHV0LFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OyAvKiAxICovXG4gICAgZm9udC1zaXplOiAxMDAlOyAvKiAyICovXG4gICAgbWFyZ2luOiAwOyAvKiAzICovXG59XG5cbi8qKlxuICogQWRkcmVzcyBGaXJlZm94IDQrIHNldHRpbmcgYGxpbmUtaGVpZ2h0YCBvbiBgaW5wdXRgIHVzaW5nIGAhaW1wb3J0YW50YCBpblxuICogdGhlIFVBIHN0eWxlc2hlZXQuXG4gKi9cblxuYnV0dG9uLFxuaW5wdXQge1xuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG59XG5cbi8qKlxuICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYHRleHQtdHJhbnNmb3JtYCBpbmhlcml0YW5jZSBmb3IgYGJ1dHRvbmAgYW5kIGBzZWxlY3RgLlxuICogQWxsIG90aGVyIGZvcm0gY29udHJvbCBlbGVtZW50cyBkbyBub3QgaW5oZXJpdCBgdGV4dC10cmFuc2Zvcm1gIHZhbHVlcy5cbiAqIENvcnJlY3QgYGJ1dHRvbmAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gQ2hyb21lLCBTYWZhcmkgNSssIGFuZCBJRSA4Ky5cbiAqIENvcnJlY3QgYHNlbGVjdGAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveCA0KyBhbmQgT3BlcmEuXG4gKi9cblxuYnV0dG9uLFxuc2VsZWN0IHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLyoqXG4gKiAxLiBBdm9pZCB0aGUgV2ViS2l0IGJ1ZyBpbiBBbmRyb2lkIDQuMC4qIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYFxuICogICAgYW5kIGB2aWRlb2AgY29udHJvbHMuXG4gKiAyLiBDb3JyZWN0IGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgYGlucHV0YCB0eXBlcyBpbiBpT1MuXG4gKiAzLiBJbXByb3ZlIHVzYWJpbGl0eSBhbmQgY29uc2lzdGVuY3kgb2YgY3Vyc29yIHN0eWxlIGJldHdlZW4gaW1hZ2UtdHlwZVxuICogICAgYGlucHV0YCBhbmQgb3RoZXJzLlxuICovXG5cbmJ1dHRvbixcbmh0bWwgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSwgLyogMSAqL1xuaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDIgKi9cbiAgICBjdXJzb3I6IHBvaW50ZXI7IC8qIDMgKi9cbn1cblxuLyoqXG4gKiBSZS1zZXQgZGVmYXVsdCBjdXJzb3IgZm9yIGRpc2FibGVkIGVsZW1lbnRzLlxuICovXG5cbmJ1dHRvbltkaXNhYmxlZF0sXG5odG1sIGlucHV0W2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vKipcbiAqIDEuIEFkZHJlc3MgYm94IHNpemluZyBzZXQgdG8gYGNvbnRlbnQtYm94YCBpbiBJRSA4LzkvMTAuXG4gKiAyLiBSZW1vdmUgZXhjZXNzIHBhZGRpbmcgaW4gSUUgOC85LzEwLlxuICovXG5cbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbmlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICAgIHBhZGRpbmc6IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiAxLiBBZGRyZXNzIGBhcHBlYXJhbmNlYCBzZXQgdG8gYHNlYXJjaGZpZWxkYCBpbiBTYWZhcmkgNSBhbmQgQ2hyb21lLlxuICogMi4gQWRkcmVzcyBgYm94LXNpemluZ2Agc2V0IHRvIGBib3JkZXItYm94YCBpbiBTYWZhcmkgNSBhbmQgQ2hyb21lXG4gKiAgICAoaW5jbHVkZSBgLW1vemAgdG8gZnV0dXJlLXByb29mKS5cbiAqL1xuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xuICAgIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogMiAqL1xuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xufVxuXG4vKipcbiAqIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBzZWFyY2ggY2FuY2VsIGJ1dHRvbiBpbiBTYWZhcmkgNSBhbmQgQ2hyb21lXG4gKiBvbiBPUyBYLlxuICovXG5cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi8qKlxuICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIGJvcmRlciBpbiBGaXJlZm94IDQrLlxuICovXG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbmlucHV0OjotbW96LWZvY3VzLWlubmVyIHtcbiAgICBib3JkZXI6IDA7XG4gICAgcGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiAxLiBSZW1vdmUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgOC85LlxuICogMi4gSW1wcm92ZSByZWFkYWJpbGl0eSBhbmQgYWxpZ25tZW50IGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG50ZXh0YXJlYSB7XG4gICAgb3ZlcmZsb3c6IGF1dG87IC8qIDEgKi9cbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyAvKiAyICovXG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBUYWJsZXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIG1vc3Qgc3BhY2luZyBiZXR3ZWVuIHRhYmxlIGNlbGxzLlxuICovXG5cbnRhYmxlIHtcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICAgIGJvcmRlci1zcGFjaW5nOiAwO1xufVxuIiwiLy8gQkFTRVxuXG4qLCAqOjphZnRlciwgKjo6YmVmb3JlIHtcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuJHRvcGJhci1oZWlnaHQ6IDMuMnJlbTtcblxuaHRtbCB7XG5cdGZvbnQtc2l6ZTogNjIuNSU7XG59XG5cbmJvZHkge1xuXHQvLyBvdmVyZmxvdzogaGlkZGVuO1xuXHRmb250LXNpemU6IDEuNnJlbTtcblx0Ly8gZm9udC1mYW1pbHk6ICdSYW5jaGVycycsIGN1cnNpdmU7XG5cdGZvbnQtZmFtaWx5OiAnUmlnaHRlb3VzJywgY3Vyc2l2ZTtcbn1cblxuaDEge1xuXHRsaW5lLWhlaWdodDogMTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG5oMiB7XG5cdGNvbG9yOiAkY29sb3ItcHJpbWFyeTtcblx0bWFyZ2luLXRvcDogJGd1dHRlci1oYWxmO1xuXHRtYXJnaW4tYm90dG9tOiAkZ3V0dGVyLWhhbGY7XG59XG5cbmg0IHtcblx0bWFyZ2luLXRvcDogMDtcblx0bWFyZ2luLWJvdHRvbTogJGd1dHRlci1oYWxmO1xuXHR0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcblx0Y29sb3I6ICM2NjY7XG5cdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbnAge1xuXHRtYXJnaW4tdG9wOiAwO1xuXHRtYXJnaW4tYm90dG9tOiAkZ3V0dGVyLWhhbGY7XG59XG5cbi5zbWFsbCB7XG5cdGZvbnQtc2l6ZTogMS4ycmVtO1xuXHRvcGFjaXR5OiAwLjU7XG59XG5cbiIsIi8vIFZBUklBQkxFU1xuXG4kY29sb3ItcHJpbWFyeTogI2JiMDAyMjtcblxuJGd1dHRlcjogMnJlbTtcblxuJGd1dHRlci1oYWxmOiAkZ3V0dGVyIC8gMjtcbiRndXR0ZXItcXVhcnRlcjogJGd1dHRlciAvIDQ7XG4kZ3V0dGVyLWhlaWdodGg6ICRndXR0ZXIgLyA4O1xuJGd1dHRlci1kb3VibGU6ICRndXR0ZXIgKiAyO1xuXG4iLCIvLyBHUklEXG5cbi5ncmlkIHtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC13cmFwOiB3cmFwO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG5cbi5ncmlkLTEtb2YtMiB7XG5cblx0PiAqIHtcblx0XHRmbGV4LWJhc2lzOiAxMDAlO1xuXHRcdG1hcmdpbi1ib3R0b206ICRndXR0ZXI7XG5cblx0XHRAbWVkaWEgKG1pbi13aWR0aDogMjBlbSkge1xuXHRcdFx0ZmxleC1iYXNpczogY2FsYyg1MCUgLSAwLjVyZW0pO1xuXHRcdH1cblx0fVxufVxuXG4uZ3JpZC0xLW9mLTMge1xuXG5cdD4gKiB7XG5cblx0XHRAbWVkaWEgKG1pbi13aWR0aDogNDBlbSkge1xuXHRcdFx0ZmxleC1iYXNpczogY2FsYygzMy4zMyUgLSAwLjVyZW0pO1xuXHRcdH1cblx0fVxufVxuIiwiLy8gR0FNRSBXUkFQUEVSXG5cbi5nYW1lLXdyYXBwZXIge1xuXHR3aWR0aDogMTAwdnc7XG5cdGhlaWdodDogMTAwdmg7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmdhbWUtdmlld3BvcnQge1xuXHRoZWlnaHQ6IDEwMHZoO1xuXHRiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoY2xvc2VzdC1zaWRlLCAjNDQ0LCAjMTExKTtcbn1cblxuLy8gQ0FOVkFTIDNEXG5cbiNjYW52YXMzZCB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHR3aWR0aDogMTAwdnc7XG5cdGhlaWdodDogMTAwdmg7XG5cdHRvdWNoLWFjdGlvbjogbm9uZTtcblx0Ly8gdHJhbnNpdGlvbjogaGVpZ2h0IDAuNXM7IC8vIEJFV0FSRTogbGlua2VkIHRvIGF3YWl0IGdhbWUud2FpdCB0aW1lICg1MDBtcylcblxuXHQmLmhhbGYtdG9wIHtcblx0XHRoZWlnaHQ6IDUwdmg7XG5cdH1cblxuXHQmLmNvbGxhcHNlZCB7XG5cdFx0aGVpZ2h0OiAwO1xuXHR9XG59XG5cbi8vIENBTlZBUyAyRFxuXG4jY2FudmFzMmQtd3JhcHBlciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAkdG9wYmFyLWhlaWdodDtcblx0bGVmdDogMDtcblx0d2lkdGg6IDI1dnc7XG5cdGhlaWdodDogMjV2dztcblx0Ly8gYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsMCwwLDAuNSk7XG5cdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XG5cdHRyYW5zaXRpb246IGFsbCAwLjI1cztcblxuXHQmLmFjdGl2ZSB7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuXHR9XG59XG5cbiNjYW52YXMyZCB7XG5cdGRpc3BsYXk6IGJsb2NrO1xufVxuXG4iLCIvLyBGT1JNU1xuXG5AbWl4aW4gYnRuLWNvbG9yKCRjb2xvcikge1xuXHRjb2xvcjogJGNvbG9yO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0Ym9yZGVyLWNvbG9yOiAkY29sb3I7XG5cblx0Jjpob3Zlcixcblx0Jjpmb2N1cyB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuXHRcdGNvbG9yOiAjMTExO1xuXHR9XG5cblx0JjphY3RpdmUge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1wcmltYXJ5O1xuXHRcdGJvcmRlci1jb2xvcjogJGNvbG9yLXByaW1hcnk7XG5cdFx0Y29sb3I6IHdoaXRlO1xuXHR9XG59XG5cbmJ1dHRvbiB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0Ym9yZGVyOiAwLjJyZW0gc29saWQ7XG5cblx0QGluY2x1ZGUgYnRuLWNvbG9yKHdoaXRlKTtcblxuXHRwYWRkaW5nOiAkZ3V0dGVyLXF1YXJ0ZXIgJGd1dHRlci1oYWxmO1xuXHRmb250LXdlaWdodDogYm9sZDtcblx0dGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG5cdHRyYW5zaXRpb246IGFsbCAwLjI1cztcblxuXHQmOmhvdmVyLFxuXHQmOmZvY3VzIHtcblx0XHRvdXRsaW5lOiBub25lO1xuXHR9XG5cblx0JjpkaXNhYmxlZCB7XG5cdFx0b3BhY2l0eTogMC41O1xuXHR9XG5cdFxuXHQmLmJ0bi0tc3Ryb25nIHtcblx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHR9XG5cdFxuXHQmLmJ0bi0taGlnaGxpZ2h0IHtcblx0XHRAaW5jbHVkZSBidG4tY29sb3IoJGNvbG9yLXByaW1hcnkpO1xuXHR9XG5cdFxuXHQmLmJ0bi0tc21hbGwge1xuXHRcdHBhZGRpbmc6ICRndXR0ZXItaGVpZ2h0aCAkZ3V0dGVyLXF1YXJ0ZXI7XG5cdFx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblx0fVxufVx0XG5cbi8vIEZPUk0gVUlcblxuLmlucHV0LWJsb2NrIHtcblx0ZGlzcGxheTogZmxleDtcblx0YWxpZ24taXRlbXM6IGVuZDtcblx0ZmxleC13cmFwOiB3cmFwO1xuXHRtYXJnaW4tYm90dG9tOiAkZ3V0dGVyLWhhbGY7XG5cdEBtZWRpYSAobWluLXdpZHRoOiA0MGVtKSB7XG5cdFx0ZmxleC13cmFwOiBub3dyYXA7XG5cdH1cblxuXHQ+ICoge1xuXHRcdGZsZXgtYmFzaXM6IDEwMCU7XG5cblx0XHRAbWVkaWEgKG1pbi13aWR0aDogNDBlbSkge1xuXHRcdFx0ZmxleC1iYXNpczogNTAlO1xuXHRcdFx0bWF4LXdpZHRoOiA1MCU7XG5cdFx0fVxuXHR9XG5cblx0PiBsYWJlbCxcblx0PiAubGFiZWwge1xuXHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdFx0bWFyZ2luLWJvdHRvbTogJGd1dHRlci1xdWFydGVyO1xuXHRcdHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuXG5cdFx0Ly8gQG1lZGlhIChtaW4td2lkdGg6IDQwZW0pIHtcblx0XHQvLyBcdHRleHQtYWxpZ246IHJpZ2h0O1xuXHRcdC8vIFx0cGFkZGluZy1yaWdodDogJGd1dHRlci1oYWxmO1xuXHRcdC8vIH1cblx0fVxuXG5cdD4gLmlucHV0LXdpdGgtdW5pdCB7XG5cdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0fVxufVxuXG5pbnB1dFt0eXBlPVwidGV4dFwiXSxcbmlucHV0W3R5cGU9XCJudW1iZXJcIl0sXG4uY2hlY2t5LFxuLnJheWRpbyB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0Ym9yZGVyOiAwLjJyZW0gc29saWQgIzY2Njtcbn1cblxubGFiZWwsIFxuLmxhYmVsLFxuaW5wdXRbdHlwZT1cInRleHRcIl0sXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdIHtcblx0cGFkZGluZzogJGd1dHRlci1oZWlnaHRoICRndXR0ZXItcXVhcnRlcjtcblx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdGNvbG9yOiB3aGl0ZTtcbn1cblxubGFiZWwsXG4ubGFiZWwge1xuXHRwYWRkaW5nOiAkZ3V0dGVyLWhlaWdodGggMDtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRjb2xvcjogJGNvbG9yLXByaW1hcnk7XG5cdGxpbmUtaGVpZ2h0OiAxO1xufVxuXG5pbnB1dFt0eXBlPVwidGV4dFwiXSxcbmlucHV0W3R5cGU9XCJudW1iZXJcIl0ge1xuXG5cdCYuaW5wdXQtLWZ1bGwge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdG1heC13aWR0aDogMTAwJTtcblx0XHRmbGV4LWJhc2lzOiAxMDAlO1xuXHR9XG59XG5cbmlucHV0W3R5cGU9XCJ0ZXh0XCJdIHtcblx0bWF4LXdpZHRoOiAkZ3V0dGVyICogNTtcbn1cbmlucHV0W3R5cGU9XCJudW1iZXJcIl0ge1xuXHRtYXgtd2lkdGg6ICRndXR0ZXIgKiAzLjU7XG5cdHRleHQtYWxpZ246IHJpZ2h0O1xuXG5cdCYubnVtYmVyLS1zbWFsbCB7XG5cdFx0bWF4LXdpZHRoOiAkZ3V0dGVyICogMjtcblx0fVxufVxuXG50ZXh0YXJlYSB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHR3aWR0aDogMTAwJTtcblx0Zm9udC1zaXplOiAxLjJyZW07XG5cdG1hcmdpbi1ib3R0b206ICRndXR0ZXI7XG59XG5cblxuLmlucHV0LXVuaXQge1xuXHRwYWRkaW5nOiAkZ3V0dGVyLWhlaWdodGg7XG5cdHBhZGRpbmctbGVmdDogMDtcblx0YmFja2dyb3VuZC1jb2xvcjogIzY2Njtcblx0Ym9yZGVyOiAwLjJyZW0gc29saWQgIzY2Njtcblx0Y29sb3I6IHdoaXRlO1xufVxuXG4uY2hlY2t5IHtcblx0PiBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRsZWZ0OiAtMTAwMHJlbTtcblx0fVxuXG5cdD4gaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdICsgbGFiZWwge1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRjb2xvcjogIzY2Njtcblx0XHRmb250LXNpemU6IDA7XG5cdFx0cGFkZGluZzogMDtcblxuXHRcdCY6OmJlZm9yZSxcblx0XHQmOjphZnRlciB7XG5cdFx0XHRmb250LXNpemU6IDEuNHJlbTtcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdHBhZGRpbmc6ICgkZ3V0dGVyLWhlaWdodGggKyAwLjJyZW0pICgkZ3V0dGVyLXF1YXJ0ZXIgKyAwLjJyZW0pO1xuXHRcdFx0dHJhbnNpdGlvbjogY29sb3IgMC4yNXMsIGJhY2tncm91bmQtY29sb3IgMC41cztcblx0XHR9XG5cdFx0Jjo6YmVmb3JlIHtcblx0XHRcdGNvbnRlbnQ6IFwib25cIjtcblx0XHR9XG5cdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0Y29udGVudDogXCJvZmZcIjtcblx0XHRcdGNvbG9yOiB3aGl0ZTtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICM2NjY7XG5cdFx0fVxuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRjb2xvcjogd2hpdGU7XG5cdFx0fVxuXHR9XG5cblx0PiBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl06Y2hlY2tlZCArIGxhYmVsIHtcblx0XHQmOjpiZWZvcmUge1xuXHRcdFx0Y29sb3I6IHdoaXRlO1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXByaW1hcnk7XG5cdFx0fVxuXHRcdCY6OmFmdGVyIHtcblx0XHRcdGNvbG9yOiAjNjY2O1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0fVxuXHRcdCY6aG92ZXIge1xuXHRcdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0XHRjb2xvcjogd2hpdGU7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi5yYXlkaW8ge1xuXHQ+IGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGxlZnQ6IC0xMDAwcmVtO1xuXHRcdC8vIGRpc3BsYXk6IG5vbmU7XG5cdH1cblxuXHQ+IGlucHV0W3R5cGU9XCJyYWRpb1wiXSArIGxhYmVsIHtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0cGFkZGluZzogKCRndXR0ZXItaGVpZ2h0aCArIDAuMnJlbSkgKCRndXR0ZXItcXVhcnRlciArIDAuMnJlbSk7XG5cdFx0Y29sb3I6ICM2NjY7XG5cdFx0dHJhbnNpdGlvbjogY29sb3IgMC4yNXMsIGJhY2tncm91bmQtY29sb3IgMC41cztcblxuXHRcdCY6aG92ZXIge1xuXHRcdFx0Y29sb3I6IHdoaXRlO1xuXHRcdH1cblx0fVxuXG5cdD4gaW5wdXRbdHlwZT1cInJhZGlvXCJdOmNoZWNrZWQgKyBsYWJlbCB7XG5cdFx0YmFja2dyb3VuZDogJGNvbG9yLXByaW1hcnk7XG5cdFx0Y29sb3I6IHdoaXRlO1xuXHR9XG59XG5cbi5zbGlkZXkge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRib3JkZXI6IDAuMnJlbSBzb2xpZCAjNjY2O1xuXG5cdD4gaW5wdXRbdHlwZT1cInJhbmdlXCJdIHtcblx0XHRmbGV4LWdyb3c6IDE7XG5cdFx0bWluLXdpZHRoOiAwO1xuXHR9XG5cdFxuXHQ+IC5zbGlkZXktdmFsdWUge1xuXHRcdG1pbi13aWR0aDogJGd1dHRlci1kb3VibGU7XG5cdFx0cGFkZGluZzogJGd1dHRlci1oZWlnaHRoICRndXR0ZXItcXVhcnRlcjtcblx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICM2NjY7XG5cdH1cblxuXHQmLnNsaWRleS0tZGlzYWJsZWQge1xuXHRcdG9wYWNpdHk6IDAuNTtcblx0fVxufVxuXG4iLCIjaW50cm8sXG4jaG9tZXBhZ2UsXG4jY29uZmlndXJhdGlvbixcbiNvcHRpb25zLFxuI3RvcGJhcixcbiNnYW1lLW1lbnUsXG4jaW5mb3Mge1xuXHRwb3NpdGlvbjogZml4ZWQ7XG5cdHBhZGRpbmc6ICRndXR0ZXItaGFsZjtcblx0YmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwwLjc1KTtcblx0Y29sb3I6IHdoaXRlO1xufVxuXG4vLyBDRU5URVJFRCBQQU5FTFNcbiNpbnRybyxcbiNob21lcGFnZSxcbiNvcHRpb25zIHtcblx0cGFkZGluZzogJGd1dHRlcjtcblx0dG9wOiA1MCU7XG5cdGxlZnQ6IDUwJTtcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCBjYWxjKC0xMDB2aCAtIDUwJSksIDApO1xuXHR0cmFuc2l0aW9uOiBhbGwgMC41cztcblxuXHQmLmFjdGl2ZSB7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKTtcblx0fVxufVxuXG4jaW50cm8sXG4jaG9tZXBhZ2Uge1xuXG5cdD4gLmdhbWUtdmVyc2lvbiB7XG5cdFx0QGV4dGVuZCAuc21hbGw7XG5cdFx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdH1cblxuXHQ+IGgxIHtcblx0XHRmb250LXNpemU6IDRyZW07XG5cdFx0bWFyZ2luLXRvcDogJGd1dHRlcjtcblx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHR9XG5cblx0PiBwLnNtYWxsIHtcblx0XHRtYXJnaW4tYm90dG9tOiAkZ3V0dGVyO1xuXHR9XG5cblx0PiBidXR0b24ge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHdpZHRoOiAxMDAlO1xuXG5cdFx0Jjpub3QoOmxhc3QtY2hpbGQpIHtcblx0XHRcdG1hcmdpbi1ib3R0b206ICRndXR0ZXItaGFsZjtcblx0XHR9XG5cdH1cbn1cblxuI2ludHJvLFxuI2hvbWVwYWdlIHtcblx0d2lkdGg6IDc1dnc7XG5cblx0QG1lZGlhIChtaW4td2lkdGg6IDIwZW0pIHsgd2lkdGg6IDUwdnc7IH1cblx0QG1lZGlhIChtaW4td2lkdGg6IDQwZW0pIHsgd2lkdGg6IDM1dnc7IH1cblx0QG1lZGlhIChtaW4td2lkdGg6IDYwZW0pIHsgd2lkdGg6IDI1dnc7IH1cbn1cblxuI29wdGlvbnMge1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cblx0PiBoMiB7XG5cdFx0bWFyZ2luLXRvcDogJGd1dHRlci1oYWxmO1xuXHR9XG59XG5cbi8vIFRPUCBQQU5FTFxuXG4jdG9wYmFyIHtcblx0dG9wOiAwO1xuXHRsZWZ0OiAwO1xuXHR3aWR0aDogMTAwdnc7XG5cdHBhZGRpbmc6IDA7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCk7XG5cdHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjI1cztcblxuXHQmLmFjdGl2ZSB7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcblx0fVxufVxuXG4uaXRlbWJhciB7XG5cdGRpc3BsYXk6IGZsZXg7XG59XG5cbi5pdGVtYmFyLWl0ZW0ge1xuXHRwYWRkaW5nOiAkZ3V0dGVyLWhhbGY7XG5cblx0PiBzcGFuIHtcblx0XHRmb250LXdlaWdodDogYm9sZDtcblx0fVxufVxuXG4vLyBJTkZPUyBQQU5FTFxuXG4jaW5mb3Mge1xuXHQvLyBib3R0b206IDA7XG5cdHRvcDogJHRvcGJhci1oZWlnaHQ7XG5cdHJpZ2h0OiAwO1xuXHRtaW4td2lkdGg6IDI1dnc7XG5cdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcblx0dHJhbnNpdGlvbjogYWxsIC4yNXM7XG5cblx0LmFjdGl2ZS1pbmZvcyAmIHtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG5cdH1cbn1cblxuLmluZm9zLWl0ZW0ge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRtYXJnaW4tYm90dG9tOiAkZ3V0dGVyLXF1YXJ0ZXI7XG59XG5cbi5pbmZvcy1pdGVtX19sYWJlbCB7XG5cdGZsZXgtZ3JvdzogMTtcblx0cGFkZGluZy1yaWdodDogJGd1dHRlci1oYWxmO1xuXHRjb2xvcjogJGNvbG9yLXByaW1hcnk7XG59XG5cbi5pbmZvcy1pdGVtX192YWx1ZSB7XG5cdHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4vLyBHQU1FIENPTkZJR1VSQVRJT04gUEFORUxcblxuI2NvbmZpZ3VyYXRpb24ge1xuXHRvdmVyZmxvdy15OiBoaWRkZW47XG5cdG92ZXJmbG93LXk6IHZpc2libGU7XG5cdGJvdHRvbTogMDtcblx0bGVmdDogMDtcblx0d2lkdGg6IDEwMHZ3O1xuXHRoZWlnaHQ6IDUwdmg7XG5cdGJhY2tncm91bmQtY29sb3I6ICMyMjI7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpO1xuXHR0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4yNXM7XG5cblx0Ji5hY3RpdmUge1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcblx0fVxufVxuXG4vLyBHQU1FIENPTkZJR1VSQVRJT05cblxuLmNvbmZpZ3VyYXRpb24ge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0QG1lZGlhIChtaW4td2lkdGg6IDQwZW0pIHtcblx0XHRtYXJnaW4tbGVmdDogNHJlbTtcblx0XHRtYXJnaW4tcmlnaHQ6IDRyZW07XG5cdH1cblx0QG1lZGlhIChtaW4td2lkdGg6IDYwZW0pIHtcblx0XHRtYXJnaW4tbGVmdDogNnJlbTtcblx0XHRtYXJnaW4tcmlnaHQ6IDZyZW07XG5cdH1cbn1cblxuLy8gR0FNRSBSRUFEWVxuXG4uY29uZmlndXJhdGlvbi1yZWFkeSB7XG5cdGRpc3BsYXk6IG5vbmU7XG5cblx0QG1lZGlhIChtaW4td2lkdGg6IDQwZW0pIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVxufVxuXG4uY29uZmlndXJhdGlvbi1yZWFkeV9faXRlbSB7XG5cdG1hcmdpbjogMCAoJGd1dHRlci1xdWFydGVyIC8gMik7XG5cdGNvbG9yOiByZWQ7XG5cdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuXHRib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0dHJhbnNpdGlvbjogYWxsIDAuMjVzO1xuXG5cdCYuY29uZmlndXJhdGlvbi1yZWFkeV9faXRlbS0tYWN0aXZlIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjMTExO1xuXHRcdGJvcmRlci1jb2xvcjogIzExMTtcblx0fVxuXG5cdCYuY29uZmlndXJhdGlvbi1yZWFkeV9faXRlbS0tZ29vZCB7XG5cdFx0Y29sb3I6IGdyZWVuO1xuXHR9XG5cdC8vICYuY29uZmlndXJhdGlvbi1yZWFkeV9faXRlbS0tYmFkIHtcblx0Ly8gfVxufVxuXG4uY29uZmlndXJhdGlvbi1idG4ge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHotaW5kZXg6ICsxO1xufVxuLmNvbmZpZ3VyYXRpb24tYnRuLS1wcmV2aW91cyB7IHRvcDogJGd1dHRlci1oYWxmOyBsZWZ0OiAwOyB9XG4uY29uZmlndXJhdGlvbi1idG4tLW5leHQgeyBib3R0b206ICRndXR0ZXItaGFsZjsgcmlnaHQ6IDA7IH1cblxuLmNvbmZpZ3VyYXRpb24td3JhcHBlciB7XG5cdHdpZHRoOiA3MDAlO1xuXHRkaXNwbGF5OiBmbGV4O1xuXHR0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4yNXM7XG5cblx0LnN0ZXAtMCAmIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9XG5cdC5zdGVwLTEgJiB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtKDEwMCUgKiAxIC8gNykpOyB9XG5cdC5zdGVwLTIgJiB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtKDEwMCUgKiAyIC8gNykpOyB9XG5cdC5zdGVwLTMgJiB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtKDEwMCUgKiAzIC8gNykpOyB9XG5cdC5zdGVwLTQgJiB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtKDEwMCUgKiA0IC8gNykpOyB9XG5cdC5zdGVwLTUgJiB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtKDEwMCUgKiA1IC8gNykpOyB9XG5cdC5zdGVwLTYgJiB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtKDEwMCUgKiA2IC8gNykpOyB9XG59XG5cbi5jb25maWd1cmF0aW9uLXNlY3Rpb24ge1xuXHRmbGV4LWJhc2lzOiAoMTAwJSAvIDcpO1xuXHRtYXJnaW4tbGVmdDogMXJlbTtcblx0bWFyZ2luLXJpZ2h0OiAxcmVtO1xuXHRwYWRkaW5nOiAkZ3V0dGVyLWhhbGY7XG5cdHBhZGRpbmctdG9wOiAwOyAvLyBIMyBoYW5kbGVzIHRvcCBzcGFjZVxuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjMTExO1xuXG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cblx0aDMge1xuXHRcdG1hcmdpbi10b3A6ICRndXR0ZXI7XG5cdFx0bWFyZ2luLWJvdHRvbTogJGd1dHRlcjtcblx0fVxuXHRcblx0aDQge1xuXHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdH1cbn1cblxuLmNvbmZpZ3VyYXRpb24tc2VjdGlvbl9faGVhZGVyIHtcbn1cbi5jb25maWd1cmF0aW9uLXNlY3Rpb25fX2JvZHkge1xuXHRmbGV4LWdyb3c6IDE7XG5cdG1heC1oZWlnaHQ6IDI3dmg7IC8vIE1hZ2ljIHZhbHVlIVxuXHRvdmVyZmxvdy15OiBhdXRvO1xuXG5cdGJ1dHRvbjpmaXJzdC1jaGlsZCB7XG5cdFx0bWFyZ2luLWJvdHRvbTogJGd1dHRlcjtcblx0fVxufVxuLmNvbmZpZ3VyYXRpb24tc2VjdGlvbl9fZm9vdGVyIHtcblx0cGFkZGluZy10b3A6ICRndXR0ZXItaGFsZjtcblx0cGFkZGluZy1yaWdodDogJGd1dHRlci1kb3VibGU7IC8vIFNwYWNlIGZvciBcIm5leHRcIiBidXR0b25cbn1cblxuLmNvbmZpZ3VyYXRpb24tcGxheWVyIHtcblx0bWFyZ2luLWJvdHRvbTogJGd1dHRlci1xdWFydGVyO1xuXG5cdGRpc3BsYXk6IGZsZXg7XG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRmbGV4LXdyYXA6IHdyYXA7XG5cblx0PiAqIHtcblx0XHRtYXJnaW4tYm90dG9tOiAkZ3V0dGVyLXF1YXJ0ZXI7XG5cdFx0bWFyZ2luLXJpZ2h0OiAkZ3V0dGVyLXF1YXJ0ZXI7XG5cdFx0XG5cdFx0JjpsYXN0LWNoaWxkLFxuXHRcdCY6Zmlyc3QtY2hpbGQge1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiAwO1xuXHRcdH1cblx0fVxufVxuXG4uY29uZmlndXJhdGlvbi1wbGF5ZXJfX3AtY29sb3Ige1xuXHR3aWR0aDogJGd1dHRlci1oYWxmICogMztcblx0Y29sb3I6ICMxMTE7XG5cdGJvcmRlcjogMC4ycmVtIHNvbGlkO1xufVxuXG5cblxuIiwiLy8gR0FNRSBNRU5VIFBBTkVMXG5cbiNnYW1lLW1lbnUge1xuXHR0b3A6ICR0b3BiYXItaGVpZ2h0O1xuXHRyaWdodDogMDtcblx0cGFkZGluZzogMC41cmVtO1xuXHRwYWRkaW5nLWJvdHRvbTogMDtcblx0Y29sb3I6IHdoaXRlO1xuXHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XG5cdHRyYW5zaXRpb246IGFsbCAwLjI1cztcblxuXHQmLmFjdGl2ZSB7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuXHR9XG5cblx0YnV0dG9uIHtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0XHRib3JkZXItd2lkdGg6IDAgIWltcG9ydGFudDtcblx0XHRcblx0XHQmLmdhbWUtbWVudS1pdGVtLS13aXRoLXZhbHVlIHtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cblx0XHRcdD4gc3BhbiB7XG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiAxcmVtO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCYuZ2FtZS1tZW51LWl0ZW0tLWRpc2FibGVkIHtcblx0XHRcdG9wYWNpdHk6IDAuNTtcblx0XHR9XG5cdH1cbn1cblxuIiwiLy8gQklHIEJBTk5FUlxuXG4jYmlnLWJhbm5lciB7XG5cdHBvc2l0aW9uOiBmaXhlZDtcblx0d2lkdGg6IDEwMHZ3O1xuXHRtaW4taGVpZ2h0OiA1MHZoO1xuXHR0b3A6IDUwJTtcblx0bGVmdDogMDtcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcblx0dHJhbnNpdGlvbjogYWxsIDFzO1xuXHRkaXNwbGF5OiBub25lO1xuXG5cdCYuYWN0aXZlIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVxuXHQmLmFib3ZlIHtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTI1MCUpO1xuXHR9XG5cdCYuYmVsb3cge1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxNTAlKTtcblx0fVxufVxuXG4jYmlnLWJhbm5lci1jb250ZW50IHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR3aWR0aDogMTAwJTtcblx0dG9wOiA1MCU7XG5cdGxlZnQ6IDUwJTtcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKTtcblx0Y29sb3I6ICM0NDQ7XG5cdGZvbnQtc2l6ZTogY2FsYygycmVtICsgMnZ3KTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHR0cmFuc2l0aW9uOiBhbGwgMXM7XG5cblx0LnRleHQtbGVmdCAmIHtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xNTAlLCAtNTAlLCAwKTtcblx0fVxuXHQudGV4dC1yaWdodCAmIHtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDUwJSwgLTUwJSwgMCk7XG5cdH1cbn1cblxuIl0sInNvdXJjZVJvb3QiOiIifQ==*/