@charset "UTF-8";
@-webkit-keyframes oscilate {
  0% {
    background: #dc5323; }
  50% {
    background: #e78765; }
  100% {
    background: #dc5323; } }

@-moz-keyframes oscilate {
  0% {
    background: #dc5323; }
  50% {
    background: #e78765; }
  100% {
    background: #dc5323; } }

@keyframes oscilate {
  0% {
    background: #dc5323; }
  50% {
    background: #e78765; }
  100% {
    background: #dc5323; } }

html {
  box-sizing: border-box; }

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

/**
 * x-background
 *
 * Sets a solid or semi-transparent background color.  Accepts an optional 
 * opacity (alpha) value.  Provides a solid color fallback.
 */
/**
 * x-clear
 *
 * Multi-use clear mixin for various contexts.  Accepts an optional context.
 * Default usage implements a Bourbon micro-clearfix.
 */
/**
 * x-container
 */
/**
 *
 * x-font-face
 *
 * Implements standardized site copy. Accepts arguments for
 * variants (inversions, etc.).
 *
 */
/**
 * x-hide-text
 *
 * Hides text of applied element.  Accepts no arguments. Based
 * off of a previous version of the H5BP image replacement 
 * method.  I've found it to be far more reliable than the clip
 * method.
 *
 */
/**
 * x-icon
 *
 * Implements a webfont glyph  Needs to be used within
 * a pseudo element (e.g. &:before, &:after).  Accepts a required, named
 * icon, an optional size, and an optional color.  
 */
/**
 * x-layer
 *
 * Sets a z-index value based on semantic naming as opposed to explicit integer
 * values.  Accepts a required, named layer.  Hierarchy can be modified by
 * adding directly to the $layers map stack.
 */
/**
 * x-max-size
 *
 */
button, input[type=submit] {
  background: none; }

article, aside, details, footer, header, menu, nav, section, audio, canvas, embed, figure, figure figcaption, iframe, object, video {
  display: block; }

address, cite, dfn, em, i, var {
  font-style: normal; }

button, input[type=submit], input[type=text], input[type=email], input[type=password], textarea, blockquote, dialog, dl, dl dd, menu, p, pre, form fieldset, h1, h2, h3, h4, h5, h6, select, ul, ol, figure, hr, body {
  margin: 0; }

button, input[type=submit], input[type=text], input[type=email], input[type=password], textarea, dialog, menu, form fieldset, form fieldset legend, ul, ol, table thead th, table tbody td, table tfoot td {
  padding: 0; }

button, input[type=submit], input[type=text], input[type=email], input[type=password], textarea, dialog, form fieldset, iframe {
  border: 0; }

ul, ul li, ol, ol li {
  list-style: none; }

q {
  quotes: none; }

button, input[type=submit], input[type=text], input[type=email], input[type=password], textarea {
  font-family: inherit; }

button, input[type=submit], input[type=text], input[type=email], input[type=password], textarea {
  font-size: inherit; }

button, input[type=submit] {
  outline: none;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent; }

input[type=text]:focus, input[type=email]:focus, input[type=password]:focus, textarea:focus {
  outline: none; }

a {
  text-decoration: none; }
  a:active {
    outline: 0; }

/*
*
*  Global Border-Box Override
*
*  Unnecessary if Bourbon/Neat already being loaded.
*
*  * {
*    @include box-sizing(border-box);
*  }
*
*/
body {
  width: 100%; }

table {
  border-collapse: collapse;
  border-spacing: 0; }

/* Slider */
.slick-slider {
  position: relative;
  display: block;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -ms-touch-action: pan-y;
  touch-action: pan-y;
  -webkit-tap-highlight-color: transparent; }

.slick-list {
  position: relative;
  overflow: hidden;
  display: block;
  margin: 0;
  padding: 0; }
  .slick-list:focus {
    outline: none; }
  .slick-list.dragging {
    cursor: pointer;
    cursor: hand; }

.slick-slider .slick-track,
.slick-slider .slick-list {
  -webkit-transform: translate3d(0, 0, 0);
  -moz-transform: translate3d(0, 0, 0);
  -ms-transform: translate3d(0, 0, 0);
  -o-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0); }

.slick-track {
  position: relative;
  left: 0;
  top: 0;
  display: block; }
  .slick-track:before, .slick-track:after {
    content: "";
    display: table; }
  .slick-track:after {
    clear: both; }
  .slick-loading .slick-track {
    visibility: hidden; }

.slick-slide {
  float: left;
  height: 100%;
  min-height: 1px;
  display: none; }
  [dir="rtl"] .slick-slide {
    float: right; }
  .slick-slide img {
    display: block; }
  .slick-slide.slick-loading img {
    display: none; }
  .slick-slide.dragging img {
    pointer-events: none; }
  .slick-initialized .slick-slide {
    display: block; }
  .slick-loading .slick-slide {
    visibility: hidden; }
  .slick-vertical .slick-slide {
    display: block;
    height: auto;
    border: 1px solid transparent; }

.slick-arrow.slick-hidden {
  display: none; }

@font-face {
  font-family: "glyphs";
  font-weight: normal;
  font-style: normal;
  src: url("/wp-content/themes/stockrover/fonts/glyphs/fonts/glyphs.eot");
  src: url("/wp-content/themes/stockrover/fonts/glyphs/fonts/glyphs.eot?#iefix") format("embedded-opentype"), url("/wp-content/themes/stockrover/fonts/glyphs/fonts/glyphs.woff") format("woff"), url("/wp-content/themes/stockrover/fonts/glyphs/fonts/glyphs.ttf") format("truetype"), url("/wp-content/themes/stockrover/fonts/glyphs/fonts/glyphs.svg#glyphs") format("svg"); }

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

.glyph {
  /* use !important to prevent issues with browser extensions that change fonts */
  font-family: 'glyphs' !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

.glyph--film:before {
  content: ""; }

.glyph--folder:before {
  content: ""; }

.glyph--folder--open:before {
  content: ""; }

.glyph--phone:before {
  content: ""; }

.glyph--twitter:before {
  content: ""; }

.glyph--facebook:before {
  content: ""; }

.glyph--google-plus:before {
  content: ""; }

.glyph--caret--down:before {
  content: ""; }

.glyph--caret--up:before {
  content: ""; }

.glyph--caret--left:before {
  content: ""; }

.glyph--caret--right:before {
  content: ""; }

.glyph--mail:before {
  content: ""; }

.glyph--email:before {
  content: ""; }

.glyph--bullet:before {
  content: ""; }

.glyph--question:before {
  content: ""; }

.glyph--info:before {
  content: ""; }

.glyph--calendar:before {
  content: ""; }

.glyph--warning:before {
  content: ""; }

.glyph--new:before {
  content: ""; }

.glyph--close:before {
  content: ""; }

.glyph--currency:before {
  content: ""; }

.glyph--quote:before {
  content: ""; }

.glyph--edit:before {
  content: ""; }

.glyph--arrow--down:before {
  content: ""; }

.glyph--arrow--left:before {
  content: ""; }

.glyph--arrow--right:before {
  content: ""; }

.glyph--arrow--up:before {
  content: ""; }

.glyph--check:before {
  content: ""; }

.glyph--menu:before {
  content: ""; }

.glyph--checkbox--filled:before {
  content: ""; }

.glyph--checkbox:before {
  content: ""; }

.glyph--radio:before {
  content: ""; }

.glyph--radio--filled:before {
  content: ""; }

.glyph--document:before {
  content: ""; }

.glyph--home:before {
  content: ""; }

.glyph--lock:before {
  content: ""; }

.glyph--credit-card:before {
  content: ""; }

.glyph--location:before {
  content: ""; }

.glyph--clock:before {
  content: ""; }

.glyph--search:before {
  content: ""; }

.glyph--line-chart:before {
  content: ""; }

.glyph--play:before {
  content: ""; }

.application {
  font-family: 'Open Sans', sans-serif;
  background: #5890e3;
  background: #5890e3; }

.main {
  background: #fff;
  background: white; }

.header {
  position: relative;
  z-index: 10;
  height: 3.125em;
  width: 100%;
  display: table;
  background: #fff;
  border-bottom: 2px solid #232323; }
  @media screen and (max-width: 62.4375em) {
    .header .header__inner {
      padding-right: 2.5%;
      padding-left: 2.5%;
      overflow: hidden; } }
  @media screen and (min-width: 62.5em) {
    .header {
      height: 3.75em;
      width: 100%; } }

.logo {
  float: left; }
  .logo .logo__link {
    display: table-cell;
    vertical-align: middle;
    height: 3.125em;
    width: auto; }
  .logo .logo__heading {
    display: none; }
  .logo .logo__image {
    display: block;
    height: 100%;
    padding-top: 0.625em;
    padding-bottom: 0.625em;
    padding-left: 1em; }
  @media screen and (min-width: 62.5em) {
    .logo .logo__link {
      height: 3.75em;
      width: auto; }
    .logo .logo__image {
      padding-top: 0.75em;
      padding-bottom: 0.75em;
      padding-left: 2em; } }

.toggle.toggle--navigation {
  float: right; }
  .toggle.toggle--navigation .toggle__inner {
    display: table-cell;
    height: 3.125em;
    width: auto;
    vertical-align: middle; }
  .toggle.toggle--navigation .toggle__button {
    font-size: 0; }
    .toggle.toggle--navigation .toggle__button:before {
      display: inline-block;
      content: "";
      font-family: 'glyphs';
      font-size: 40px;
      font-variant: normal;
      text-align: center;
      text-transform: none;
      font-style: normal;
      font-weight: normal;
      color: #232323;
      speak: none;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale; }
  @media screen and (min-width: 62.5em) {
    .toggle.toggle--navigation {
      display: none; } }

.toggle.toggle--search {
  display: none; }
  @media screen and (min-width: 62.5em) {
    .toggle.toggle--search {
      display: block;
      float: left;
      background: #fff;
      background: white;
      padding-left: 1em; }
      .toggle.toggle--search .toggle__inner {
        display: table-cell;
        height: 3.75em;
        width: auto;
        vertical-align: middle; }
      .toggle.toggle--search .toggle__button {
        font-size: 0; }
        .toggle.toggle--search .toggle__button:before {
          display: inline-block;
          content: "";
          font-family: 'glyphs';
          font-size: 32px;
          font-variant: normal;
          text-align: center;
          text-transform: none;
          font-style: normal;
          font-weight: normal;
          color: #000;
          speak: none;
          -webkit-font-smoothing: antialiased;
          -moz-osx-font-smoothing: grayscale;
          -webkit-transition: all 250ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
          -moz-transition: all 250ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
          transition: all 250ms cubic-bezier(0.455, 0.03, 0.515, 0.955); } }

.aside {
  background: #414141;
  background: #414141;
  z-index: 5; }
  @media screen and (max-width: 62.4375em) {
    .aside {
      height: 100%;
      width: 17.5em;
      position: fixed;
      top: 0;
      bottom: 0;
      left: 0;
      padding-top: 3.125em;
      -webkit-transform: translate3d(-100%, 0, 0);
      -moz-transform: translate3d(-100%, 0, 0);
      -ms-transform: translate3d(-100%, 0, 0);
      -o-transform: translate3d(-100%, 0, 0);
      transform: translate3d(-100%, 0, 0);
      -webkit-transition: -webkit-transform, 500ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      -moz-transition: -moz-transform, 500ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      transition: transform, 500ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      overflow-y: auto; }
      .aside .aside__inner {
        max-height: 100%; } }
  @media screen and (min-width: 62.5em) {
    .aside {
      background: #fff;
      background: white;
      position: absolute;
      top: 0;
      left: 50%;
      margin-right: -17.1875em;
      height: 3.75em;
      width: auto;
      -webkit-transform: translateX(-50%);
      -moz-transform: translateX(-50%);
      -ms-transform: translateX(-50%);
      -o-transform: translateX(-50%);
      transform: translateX(-50%);
      z-index: 10; } }

.navigation .navigation__item {
  position: relative; }

.navigation .navigation__link {
  display: inline-block;
  height: auto;
  width: 100%;
  padding: 0.5em 1em;
  color: #fff;
  font-weight: 400;
  -webkit-transition: background-color 250ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
  -moz-transition: background-color 250ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
  transition: background-color 250ms cubic-bezier(0.455, 0.03, 0.515, 0.955); }

@media screen and (max-width: 62.4375em) {
  .navigation {
    margin-top: 4em; }
    .navigation .navigation__item:before {
      content: '';
      position: absolute;
      top: 0;
      bottom: 0;
      left: 0;
      height: 100%;
      width: 0px;
      background: #272727;
      background: #272727;
      -webkit-transition: all 250ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
      -moz-transition: all 250ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
      transition: all 250ms cubic-bezier(0.455, 0.03, 0.515, 0.955); }
    .navigation .navigation__item.navigation__item--active:before {
      content: '';
      position: absolute;
      top: 0;
      bottom: 0;
      left: 0;
      height: 100%;
      width: 4px;
      background: #ccc;
      background: #cccccc; }
    .navigation .navigation__item.navigation__item--active .navigation__link {
      background: #272727;
      background: #272727; } }

@media screen and (min-width: 62.5em) {
  .navigation {
    float: left;
    background: #fff;
    background: white;
    height: 3.75em;
    width: auto;
    line-height: 3.75em; }
    .navigation .navigation__item {
      display: inline-block; }
      .navigation .navigation__item:hover .navigation__text:before {
        height: 4px;
        width: 100%; }
      .navigation .navigation__item:hover > .subnavigation .subnavigation__inner {
        opacity: 1;
        -webkit-transition: opacity 250ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
        -moz-transition: opacity 250ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
        transition: opacity 250ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
        width: 12.5em;
        height: auto; }
      .navigation .navigation__item.navigation__item--active .navigation__text:before {
        height: 4px;
        width: 100%; }
    .navigation .navigation__link {
      padding: 0 1em;
      color: #232323;
      font-weight: 600; }
    .navigation .navigation__text {
      position: relative; }
      .navigation .navigation__text:before {
        content: '';
        position: absolute;
        top: initial;
        right: 0;
        bottom: -0.25em;
        left: 0;
        height: 4px;
        width: 0;
        background: #5E94DF;
        background: #5e94df;
        -webkit-transition: all 250ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
        -moz-transition: all 250ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
        transition: all 250ms cubic-bezier(0.455, 0.03, 0.515, 0.955); } }

.subnavigation .subnavigation__toggle {
  position: absolute;
  top: 0.4rem;
  right: 1rem;
  font-size: 0; }
  .subnavigation .subnavigation__toggle:before {
    -webkit-transition: all 250ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    -moz-transition: all 250ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    transition: all 250ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    display: inline-block;
    content: "";
    font-family: 'glyphs';
    font-size: 24px;
    font-variant: normal;
    text-align: center;
    text-transform: none;
    font-style: normal;
    font-weight: normal;
    color: #fff;
    speak: none;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale; }

.subnavigation .subnavigation__link {
  display: inline-block;
  height: auto;
  width: 100%;
  padding: 0.5em 1em 0.5em 1.5em;
  color: #fff;
  font-size: 0.875em;
  font-weight: 400; }

.subnavigation.subnavigation--active .subnavigation__toggle:before {
  color: #ccc;
  -webkit-transform: rotate(180deg);
  -moz-transform: rotate(180deg);
  -ms-transform: rotate(180deg);
  -o-transform: rotate(180deg);
  transform: rotate(180deg); }

.subnavigation.subnavigation--active .subnavigation__inner {
  -webkit-transition: max-height 500ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
  -moz-transition: max-height 500ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
  transition: max-height 500ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
  max-height: 200px; }

@media screen and (max-width: 62.4375em) {
  .subnavigation .subnavigation__inner {
    -webkit-transition: max-height 250ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    -moz-transition: max-height 250ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    transition: max-height 250ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    max-height: 0;
    overflow: hidden; } }

@media screen and (min-width: 62.5em) {
  .subnavigation {
    position: absolute; }
    .subnavigation .subnavigation__toggle {
      display: none; }
    .subnavigation .subnavigation__inner {
      height: 0;
      opacity: 0;
      overflow: hidden; }
    .subnavigation .subnavigation__list {
      background: #414141;
      background: #414141;
      line-height: 1.6; }
    .subnavigation .subnavigation__item {
      position: relative; }
      .subnavigation .subnavigation__item:before {
        position: absolute;
        top: 0;
        bottom: 0;
        left: 0;
        content: '';
        height: 100%;
        width: 0px;
        background: #ccc;
        background: #cccccc;
        -webkit-transition: all 100ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
        -moz-transition: all 100ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
        transition: all 100ms cubic-bezier(0.455, 0.03, 0.515, 0.955); }
      .subnavigation .subnavigation__item:hover:before {
        height: 100%;
        width: 4px; } }

.form.form--search {
  position: absolute;
  top: 3.625em;
  right: 0;
  left: 0;
  padding-top: 1em;
  padding-right: 1em;
  padding-left: 1em; }
  .form.form--search .form__field.form__field--search .form__input {
    height: 2em;
    width: 100%;
    padding: 0 2em 0 0.5em; }
    .form.form--search .form__field.form__field--search .form__input::-webkit-input-placeholder {
      padding-top: 0.1em;
      font-size: 0.875em; }
    .form.form--search .form__field.form__field--search .form__input::-moz-placeholder {
      padding-top: 0.1em;
      font-size: 0.875em; }
    .form.form--search .form__field.form__field--search .form__input:-moz-placeholder {
      padding-top: 0.1em;
      font-size: 0.875em; }
    .form.form--search .form__field.form__field--search .form__input:-ms-input-placeholder {
      padding-top: 0.1em;
      font-size: 0.875em; }
  .form.form--search .form__field.form__field--submit .form__submit {
    position: absolute;
    top: 1rem;
    right: 1rem;
    bottom: 1rem;
    height: 2rem;
    width: 2rem;
    font-size: 0;
    border-radius: 10px; }
    .form.form--search .form__field.form__field--submit .form__submit:before {
      display: inline-block;
      content: "";
      font-family: 'glyphs';
      font-size: 24px;
      font-variant: normal;
      text-align: center;
      text-transform: none;
      font-style: normal;
      font-weight: normal;
      color: #5890e3;
      speak: none;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale; }
  @media screen and (min-width: 62.5em) {
    .form.form--search {
      -webkit-transform: translateY(-400%);
      -moz-transform: translateY(-400%);
      -ms-transform: translateY(-400%);
      -o-transform: translateY(-400%);
      transform: translateY(-400%);
      position: absolute;
      top: 3.75em;
      right: 0;
      left: 10px;
      height: 3em;
      width: 100%;
      background: #5890e3;
      background: #5890e3;
      -webkit-transition: all 400ms cubic-bezier(0.86, 0, 0.07, 1);
      -moz-transition: all 400ms cubic-bezier(0.86, 0, 0.07, 1);
      transition: all 400ms cubic-bezier(0.86, 0, 0.07, 1);
      z-index: -1;
      padding: 0.5em; }
      .form.form--search .form__field.form__field--submit .form__submit {
        position: absolute;
        top: 0.5rem;
        right: 0.5rem;
        bottom: 0.5rem;
        border-radius: 10px; } }

.form.form--sign-in {
  position: relative;
  max-width: 31.25em;
  margin-left: auto;
  margin-right: auto; }
  .form.form--sign-in::after {
    clear: both;
    content: "";
    display: table; }
  .form.form--sign-in .form__inner {
    margin-right: 1em;
    margin-left: 1em; }
  .form.form--sign-in .form__heading {
    font-size: 1.5em;
    font-weight: 700;
    line-height: 1.2;
    color: #272727;
    color: #fff;
    text-align: center;
    padding-top: 0.5em;
    padding-bottom: 0.5em;
    background: #5890e3;
    background: #5890e3; }
    @media screen and (min-width: 46.875em) {
      .form.form--sign-in .form__heading {
        font-size: 2.5em; } }
  .form.form--sign-in .form__form {
    padding: 1em;
    background: #f2f2f2;
    background: #f2f2f2; }
  .form.form--sign-in .form__field {
    position: relative;
    margin-top: 1.5em; }
    .form.form--sign-in .form__field:first-child {
      margin-top: 1em; }
    .form.form--sign-in .form__field.form__field--forgot-password {
      margin-top: 0.25em;
      font-size: 0.75em; }
      .form.form--sign-in .form__field.form__field--forgot-password .form__link {
        color: #5890e3; }
    .form.form--sign-in .form__field.form__field--sign-in {
      margin-top: 0.5em; }
  .form.form--sign-in .form__input[type=text], .form.form--sign-in .form__input[type=email], .form.form--sign-in .form__input[type=password] {
    height: auto;
    width: 100%;
    padding: 1em 0.5em;
    color: #272727;
    font-size: 0.875em;
    -webkit-transition: all, 250ms, cubic-bezier(0.755, 0.05, 0.855, 0.06);
    -moz-transition: all, 250ms, cubic-bezier(0.755, 0.05, 0.855, 0.06);
    transition: all, 250ms, cubic-bezier(0.755, 0.05, 0.855, 0.06);
    border-bottom: 3px solid #f2f2f2; }
    .form.form--sign-in .form__input[type=text]::-webkit-input-placeholder, .form.form--sign-in .form__input[type=email]::-webkit-input-placeholder, .form.form--sign-in .form__input[type=password]::-webkit-input-placeholder {
      -webkit-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      -moz-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955); }
    .form.form--sign-in .form__input[type=text]::-moz-placeholder, .form.form--sign-in .form__input[type=email]::-moz-placeholder, .form.form--sign-in .form__input[type=password]::-moz-placeholder {
      -webkit-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      -moz-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955); }
    .form.form--sign-in .form__input[type=text]:-moz-placeholder, .form.form--sign-in .form__input[type=email]:-moz-placeholder, .form.form--sign-in .form__input[type=password]:-moz-placeholder {
      -webkit-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      -moz-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955); }
    .form.form--sign-in .form__input[type=text]:-ms-input-placeholder, .form.form--sign-in .form__input[type=email]:-ms-input-placeholder, .form.form--sign-in .form__input[type=password]:-ms-input-placeholder {
      -webkit-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      -moz-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955); }
    .form.form--sign-in .form__input[type=text] ~ .form__label, .form.form--sign-in .form__input[type=email] ~ .form__label, .form.form--sign-in .form__input[type=password] ~ .form__label {
      position: absolute;
      top: -1.5em;
      right: 0;
      display: block;
      color: #5890e3;
      -webkit-transition: opacity, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      -moz-transition: opacity, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      transition: opacity, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      text-align: right;
      white-space: nowrap;
      font-size: 10px;
      opacity: 0; }
    .form.form--sign-in .form__input[type=text]:focus, .form.form--sign-in .form__input[type=email]:focus, .form.form--sign-in .form__input[type=password]:focus {
      border-bottom: 3px solid #5890e3; }
      .form.form--sign-in .form__input[type=text]:focus ~ .form__label, .form.form--sign-in .form__input[type=email]:focus ~ .form__label, .form.form--sign-in .form__input[type=password]:focus ~ .form__label {
        opacity: 1; }
      .form.form--sign-in .form__input[type=text]:focus::-webkit-input-placeholder, .form.form--sign-in .form__input[type=email]:focus::-webkit-input-placeholder, .form.form--sign-in .form__input[type=password]:focus::-webkit-input-placeholder {
        color: #ffffff; }
      .form.form--sign-in .form__input[type=text]:focus::-moz-placeholder, .form.form--sign-in .form__input[type=email]:focus::-moz-placeholder, .form.form--sign-in .form__input[type=password]:focus::-moz-placeholder {
        color: #ffffff; }
      .form.form--sign-in .form__input[type=text]:focus:-moz-placeholder, .form.form--sign-in .form__input[type=email]:focus:-moz-placeholder, .form.form--sign-in .form__input[type=password]:focus:-moz-placeholder {
        color: #ffffff; }
      .form.form--sign-in .form__input[type=text]:focus:-ms-input-placeholder, .form.form--sign-in .form__input[type=email]:focus:-ms-input-placeholder, .form.form--sign-in .form__input[type=password]:focus:-ms-input-placeholder {
        color: #ffffff; }
    .form.form--sign-in .form__input[type=text]:valid ~ .form__label, .form.form--sign-in .form__input[type=email]:valid ~ .form__label, .form.form--sign-in .form__input[type=password]:valid ~ .form__label {
      opacity: 1; }
  .form.form--sign-in .form__input[type=radio] ~ .form__label, .form.form--sign-in .form__input[type=checkbox] ~ .form__label {
    position: relative;
    top: 1px;
    font-size: 0.875em;
    color: #272727; }
  .form.form--sign-in .form__submit {
    display: inline-block;
    margin-top: 1em;
    background: #5890e3;
    background: #5890e3;
    color: #fff;
    font-weight: bold;
    font-size: 14px;
    text-transform: uppercase;
    padding: 0.5em 1em;
    -webkit-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    -moz-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    line-height: normal;
    position: relative;
    left: 0;
    -webkit-transform: translateX(0%);
    -moz-transform: translateX(0%);
    -ms-transform: translateX(0%);
    -o-transform: translateX(0%);
    transform: translateX(0%);
    background: #5890e3;
    background: #5890e3;
    width: 100%;
    border-radius: 10px; }
    .form.form--sign-in .form__submit:hover {
      background: #6e9fe7;
      background: #6e9fe7; }
    .form.form--sign-in .form__submit:after {
      display: inline-block;
      content: "";
      font-family: 'glyphs';
      font-size: 18px;
      font-variant: normal;
      text-align: center;
      text-transform: none;
      font-style: normal;
      font-weight: normal;
      color: #fff;
      speak: none;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      position: relative;
      top: 3px;
      left: 4px; }
    .form.form--sign-in .form__submit:hover {
      background: #6e9fe7;
      background: #6e9fe7; }

.form.form--register {
  position: relative;
  max-width: 46.875em;
  margin-left: auto;
  margin-right: auto;
  padding-bottom: 5em; }
  .form.form--register::after {
    clear: both;
    content: "";
    display: table; }
  .form.form--register .form__inner {
    margin-right: 1em;
    margin-left: 1em; }
  .form.form--register .form__heading {
    font-size: 1.5em;
    font-weight: 700;
    line-height: 1.2;
    color: #272727;
    color: #fff;
    text-align: center;
    padding-top: 0.5em;
    padding-bottom: 0.5em;
    background: #5890e3;
    background: #5890e3; }
    @media screen and (min-width: 46.875em) {
      .form.form--register .form__heading {
        font-size: 2.5em; } }
  .form.form--register .form__copy {
    padding: 1em 1em 0;
    background: #f2f2f2;
    background: #f2f2f2; }
    .form.form--register .form__copy p {
      margin-top: 1em; }
  .form.form--register .form__form {
    padding: 1em; }
  .form.form--register .form__field {
    position: relative;
    margin-top: 1em; }
    .form.form--register .form__field:first-child {
      margin-top: 1em; }
    .form.form--register .form__field.form__field--forgot-password {
      margin-top: 0.25em;
      font-size: 0.75em; }
      .form.form--register .form__field.form__field--forgot-password .form__link {
        color: #5890e3; }
    .form.form--register .form__field.form__field--sign-in {
      margin-top: 0.5em; }
    .form.form--register .form__field.form__field--other {
      display: none; }
  .form.form--register .form__fieldset {
    margin-top: 2em; }
    .form.form--register .form__fieldset:first-child {
      margin-top: 1em; }
  .form.form--register .form__legend {
    font-weight: 600; }
  .form.form--register .form__input[type=text], .form.form--register .form__input[type=email], .form.form--register .form__input[type=password] {
    height: auto;
    width: 100%;
    padding: 1em 0.5em;
    margin-top: 0.5em;
    color: #272727;
    font-size: 0.875em;
    -webkit-transition: all, 250ms, cubic-bezier(0.755, 0.05, 0.855, 0.06);
    -moz-transition: all, 250ms, cubic-bezier(0.755, 0.05, 0.855, 0.06);
    transition: all, 250ms, cubic-bezier(0.755, 0.05, 0.855, 0.06);
    border-bottom: 3px solid #f2f2f2; }
    .form.form--register .form__input[type=text]::-webkit-input-placeholder, .form.form--register .form__input[type=email]::-webkit-input-placeholder, .form.form--register .form__input[type=password]::-webkit-input-placeholder {
      -webkit-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      -moz-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955); }
    .form.form--register .form__input[type=text]::-moz-placeholder, .form.form--register .form__input[type=email]::-moz-placeholder, .form.form--register .form__input[type=password]::-moz-placeholder {
      -webkit-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      -moz-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955); }
    .form.form--register .form__input[type=text]:-moz-placeholder, .form.form--register .form__input[type=email]:-moz-placeholder, .form.form--register .form__input[type=password]:-moz-placeholder {
      -webkit-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      -moz-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955); }
    .form.form--register .form__input[type=text]:-ms-input-placeholder, .form.form--register .form__input[type=email]:-ms-input-placeholder, .form.form--register .form__input[type=password]:-ms-input-placeholder {
      -webkit-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      -moz-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955); }
    .form.form--register .form__input[type=text] ~ .form__label, .form.form--register .form__input[type=email] ~ .form__label, .form.form--register .form__input[type=password] ~ .form__label {
      position: absolute;
      top: -1em;
      right: 0;
      display: block;
      color: #5890e3;
      -webkit-transition: opacity, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      -moz-transition: opacity, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      transition: opacity, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      text-align: right;
      white-space: nowrap;
      font-size: 10px;
      opacity: 0; }
    .form.form--register .form__input[type=text]:focus, .form.form--register .form__input[type=email]:focus, .form.form--register .form__input[type=password]:focus {
      border-bottom: 3px solid #5890e3; }
      .form.form--register .form__input[type=text]:focus ~ .form__label, .form.form--register .form__input[type=email]:focus ~ .form__label, .form.form--register .form__input[type=password]:focus ~ .form__label {
        opacity: 1; }
      .form.form--register .form__input[type=text]:focus::-webkit-input-placeholder, .form.form--register .form__input[type=email]:focus::-webkit-input-placeholder, .form.form--register .form__input[type=password]:focus::-webkit-input-placeholder {
        color: #ffffff; }
      .form.form--register .form__input[type=text]:focus::-moz-placeholder, .form.form--register .form__input[type=email]:focus::-moz-placeholder, .form.form--register .form__input[type=password]:focus::-moz-placeholder {
        color: #ffffff; }
      .form.form--register .form__input[type=text]:focus:-moz-placeholder, .form.form--register .form__input[type=email]:focus:-moz-placeholder, .form.form--register .form__input[type=password]:focus:-moz-placeholder {
        color: #ffffff; }
      .form.form--register .form__input[type=text]:focus:-ms-input-placeholder, .form.form--register .form__input[type=email]:focus:-ms-input-placeholder, .form.form--register .form__input[type=password]:focus:-ms-input-placeholder {
        color: #ffffff; }
    .form.form--register .form__input[type=text]:valid ~ .form__label, .form.form--register .form__input[type=email]:valid ~ .form__label, .form.form--register .form__input[type=password]:valid ~ .form__label {
      opacity: 1; }
  .form.form--register .form__input[type=radio] ~ .form__label, .form.form--register .form__input[type=checkbox] ~ .form__label {
    position: relative;
    top: 1px;
    font-size: 0.875em;
    color: #272727; }
  .form.form--register .form__input.form__input--select {
    -webkit-appearance: none;
    height: auto;
    width: 100%;
    padding: 1em 0.5em;
    margin-top: 0.5em;
    color: #272727;
    font-size: 0.875em;
    -webkit-transition: all, 250ms, cubic-bezier(0.755, 0.05, 0.855, 0.06);
    -moz-transition: all, 250ms, cubic-bezier(0.755, 0.05, 0.855, 0.06);
    transition: all, 250ms, cubic-bezier(0.755, 0.05, 0.855, 0.06);
    border: none;
    border-bottom: 3px solid #f2f2f2;
    background: white;
    border-radius: 0; }
  .form.form--register .form__submit {
    display: inline-block;
    margin-top: 1em;
    background: #5890e3;
    background: #5890e3;
    color: #fff;
    font-weight: bold;
    font-size: 14px;
    text-transform: uppercase;
    padding: 0.5em 1em;
    -webkit-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    -moz-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    line-height: normal;
    position: relative;
    left: 0;
    -webkit-transform: translateX(0%);
    -moz-transform: translateX(0%);
    -ms-transform: translateX(0%);
    -o-transform: translateX(0%);
    transform: translateX(0%);
    background: #5890e3;
    background: #5890e3;
    width: 100%;
    border-radius: 10px; }
    .form.form--register .form__submit:hover {
      background: #6e9fe7;
      background: #6e9fe7; }
    .form.form--register .form__submit:after {
      display: inline-block;
      content: "";
      font-family: 'glyphs';
      font-size: 18px;
      font-variant: normal;
      text-align: center;
      text-transform: none;
      font-style: normal;
      font-weight: normal;
      color: #fff;
      speak: none;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      position: relative;
      top: 3px;
      left: 4px; }
    .form.form--register .form__submit:hover {
      background: #6e9fe7;
      background: #6e9fe7; }
  @media screen and (min-width: 62.5em) {
    .form.form--register .form__inner {
      margin-right: 0;
      margin-left: 0; } }

.form.form--product {
  position: relative;
  padding-top: 2.5em;
  padding-bottom: 4em;
  max-width: 46.875em;
  margin-left: auto;
  margin-right: auto; }
  .form.form--product::after {
    clear: both;
    content: "";
    display: table; }
  .form.form--product .form__inner {
    margin-right: 1em;
    margin-left: 1em; }
  .form.form--product .form__copy {
    padding: 1em 1em 0;
    text-align: center; }
    .form.form--product .form__copy p {
      margin-top: 1em;
      font-size: 1.25em; }
  .form.form--product .form__form {
    padding: 1em; }
  .form.form--product .form__field {
    position: relative;
    margin-top: 1em; }
    .form.form--product .form__field:first-child {
      margin-top: 1em; }
    .form.form--product .form__field.form__field--forgot-password {
      margin-top: 0.25em;
      font-size: 0.75em; }
      .form.form--product .form__field.form__field--forgot-password .form__link {
        color: #5890e3; }
    .form.form--product .form__field.form__field--sign-in {
      margin-top: 0.5em; }
    .form.form--product .form__field.form__field--other {
      display: none; }
  .form.form--product .form__fieldset {
    margin-top: 2em; }
    .form.form--product .form__fieldset:first-child {
      margin-top: 1em; }
  .form.form--product .form__legend {
    font-weight: 600; }
  .form.form--product .form__input[type=text], .form.form--product .form__input[type=email], .form.form--product .form__input[type=password] {
    height: auto;
    width: 100%;
    padding: 1em 0.5em;
    margin-top: 0.5em;
    color: #272727;
    font-size: 0.875em;
    -webkit-transition: all, 250ms, cubic-bezier(0.755, 0.05, 0.855, 0.06);
    -moz-transition: all, 250ms, cubic-bezier(0.755, 0.05, 0.855, 0.06);
    transition: all, 250ms, cubic-bezier(0.755, 0.05, 0.855, 0.06);
    border-bottom: 3px solid #f2f2f2;
    background: #f2f2f2;
    background: #f2f2f2; }
    .form.form--product .form__input[type=text]::-webkit-input-placeholder, .form.form--product .form__input[type=email]::-webkit-input-placeholder, .form.form--product .form__input[type=password]::-webkit-input-placeholder {
      -webkit-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      -moz-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955); }
    .form.form--product .form__input[type=text]::-moz-placeholder, .form.form--product .form__input[type=email]::-moz-placeholder, .form.form--product .form__input[type=password]::-moz-placeholder {
      -webkit-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      -moz-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955); }
    .form.form--product .form__input[type=text]:-moz-placeholder, .form.form--product .form__input[type=email]:-moz-placeholder, .form.form--product .form__input[type=password]:-moz-placeholder {
      -webkit-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      -moz-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955); }
    .form.form--product .form__input[type=text]:-ms-input-placeholder, .form.form--product .form__input[type=email]:-ms-input-placeholder, .form.form--product .form__input[type=password]:-ms-input-placeholder {
      -webkit-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      -moz-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955); }
    .form.form--product .form__input[type=text] ~ .form__label, .form.form--product .form__input[type=email] ~ .form__label, .form.form--product .form__input[type=password] ~ .form__label {
      position: absolute;
      top: -1em;
      right: 0;
      display: block;
      color: #5890e3;
      -webkit-transition: opacity, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      -moz-transition: opacity, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      transition: opacity, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      text-align: right;
      white-space: nowrap;
      font-size: 10px;
      opacity: 0; }
    .form.form--product .form__input[type=text]:focus, .form.form--product .form__input[type=email]:focus, .form.form--product .form__input[type=password]:focus {
      border-bottom: 3px solid #5890e3;
      background: #f2f2f2;
      background: rgba(242, 242, 242, 0); }
      .form.form--product .form__input[type=text]:focus ~ .form__label, .form.form--product .form__input[type=email]:focus ~ .form__label, .form.form--product .form__input[type=password]:focus ~ .form__label {
        opacity: 1; }
      .form.form--product .form__input[type=text]:focus::-webkit-input-placeholder, .form.form--product .form__input[type=email]:focus::-webkit-input-placeholder, .form.form--product .form__input[type=password]:focus::-webkit-input-placeholder {
        color: #ffffff; }
      .form.form--product .form__input[type=text]:focus::-moz-placeholder, .form.form--product .form__input[type=email]:focus::-moz-placeholder, .form.form--product .form__input[type=password]:focus::-moz-placeholder {
        color: #ffffff; }
      .form.form--product .form__input[type=text]:focus:-moz-placeholder, .form.form--product .form__input[type=email]:focus:-moz-placeholder, .form.form--product .form__input[type=password]:focus:-moz-placeholder {
        color: #ffffff; }
      .form.form--product .form__input[type=text]:focus:-ms-input-placeholder, .form.form--product .form__input[type=email]:focus:-ms-input-placeholder, .form.form--product .form__input[type=password]:focus:-ms-input-placeholder {
        color: #ffffff; }
    .form.form--product .form__input[type=text]:valid ~ .form__label, .form.form--product .form__input[type=email]:valid ~ .form__label, .form.form--product .form__input[type=password]:valid ~ .form__label {
      opacity: 1; }
  .form.form--product .form__submit {
    display: inline-block;
    margin-top: 1em;
    background: #5890e3;
    background: #5890e3;
    color: #fff;
    font-weight: bold;
    font-size: 14px;
    text-transform: uppercase;
    padding: 0.5em 1em;
    -webkit-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    -moz-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    line-height: normal;
    position: relative;
    left: 0;
    -webkit-transform: translateX(0%);
    -moz-transform: translateX(0%);
    -ms-transform: translateX(0%);
    -o-transform: translateX(0%);
    transform: translateX(0%);
    width: 100%;
    border-radius: 10px; }
    .form.form--product .form__submit:hover {
      background: #6e9fe7;
      background: #6e9fe7; }
    .form.form--product .form__submit:after {
      display: inline-block;
      content: "";
      font-family: 'glyphs';
      font-size: 18px;
      font-variant: normal;
      text-align: center;
      text-transform: none;
      font-style: normal;
      font-weight: normal;
      color: #fff;
      speak: none;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      position: relative;
      top: 3px;
      left: 4px; }
  .form.form--product .form__button {
    display: inline-block;
    margin-top: 1em;
    background: #5890e3;
    background: #5890e3;
    color: #fff;
    font-weight: bold;
    font-size: 14px;
    text-transform: uppercase;
    padding: 0.5em 1em;
    -webkit-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    -moz-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    line-height: normal;
    position: relative;
    left: 0;
    -webkit-transform: translateX(0%);
    -moz-transform: translateX(0%);
    -ms-transform: translateX(0%);
    -o-transform: translateX(0%);
    transform: translateX(0%);
    width: 100%;
    border-radius: 10px; }
    .form.form--product .form__button:hover {
      background: #6e9fe7;
      background: #6e9fe7; }
    .form.form--product .form__button:after {
      display: inline-block;
      content: "";
      font-family: 'glyphs';
      font-size: 18px;
      font-variant: normal;
      text-align: center;
      text-transform: none;
      font-style: normal;
      font-weight: normal;
      color: #fff;
      speak: none;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      position: relative;
      top: 3px;
      left: 4px; }
  @media screen and (min-width: 46.875em) {
    .form.form--product .form__form {
      margin-right: 4em;
      margin-left: 4em; }
    .form.form--product .form__submit {
      height: auto;
      width: 48%;
      float: left;
      border-radius: 10px; }
    .form.form--product .form__button {
      height: auto;
      width: 48%;
      float: right; } }
  @media screen and (min-width: 62.5em) {
    .form.form--product .form__inner {
      margin-right: 0;
      margin-left: 0; } }

.form.form--splunk .form__input[type=text] ~ .form__label, .form.form--splunk .form__input[type=email] ~ .form__label, .form.form--splunk .form__input[type=password] ~ .form__label {
  color: #000; }

.form.form--splunk .form__input[type=text]:focus, .form.form--splunk .form__input[type=email]:focus, .form.form--splunk .form__input[type=password]:focus {
  border-bottom: 3px solid #000;
  background: #f2f2f2;
  background: rgba(242, 242, 242, 0); }
  .form.form--splunk .form__input[type=text]:focus ~ .form__label, .form.form--splunk .form__input[type=email]:focus ~ .form__label, .form.form--splunk .form__input[type=password]:focus ~ .form__label {
    opacity: 1; }
  .form.form--splunk .form__input[type=text]:focus::-webkit-input-placeholder, .form.form--splunk .form__input[type=email]:focus::-webkit-input-placeholder, .form.form--splunk .form__input[type=password]:focus::-webkit-input-placeholder {
    color: #ffffff; }
  .form.form--splunk .form__input[type=text]:focus::-moz-placeholder, .form.form--splunk .form__input[type=email]:focus::-moz-placeholder, .form.form--splunk .form__input[type=password]:focus::-moz-placeholder {
    color: #ffffff; }
  .form.form--splunk .form__input[type=text]:focus:-moz-placeholder, .form.form--splunk .form__input[type=email]:focus:-moz-placeholder, .form.form--splunk .form__input[type=password]:focus:-moz-placeholder {
    color: #ffffff; }
  .form.form--splunk .form__input[type=text]:focus:-ms-input-placeholder, .form.form--splunk .form__input[type=email]:focus:-ms-input-placeholder, .form.form--splunk .form__input[type=password]:focus:-ms-input-placeholder {
    color: #ffffff; }

.form.form--splunk .form__input[type=text]:valid ~ .form__label, .form.form--splunk .form__input[type=email]:valid ~ .form__label, .form.form--splunk .form__input[type=password]:valid ~ .form__label {
  opacity: 1; }

.form.form--splunk .form__submit {
  display: inline-block;
  margin-top: 1em;
  background: #5890e3;
  background: #5890e3;
  color: #fff;
  font-weight: bold;
  font-size: 14px;
  text-transform: uppercase;
  padding: 0.5em 1em;
  -webkit-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
  -moz-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
  transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
  line-height: normal;
  position: relative;
  left: 0;
  -webkit-transform: translateX(0%);
  -moz-transform: translateX(0%);
  -ms-transform: translateX(0%);
  -o-transform: translateX(0%);
  transform: translateX(0%);
  background: #000;
  background: black;
  width: 48%;
  border-radius: 10px; }
  .form.form--splunk .form__submit:hover {
    background: #6e9fe7;
    background: #6e9fe7; }
  .form.form--splunk .form__submit:after {
    display: inline-block;
    content: "";
    font-family: 'glyphs';
    font-size: 18px;
    font-variant: normal;
    text-align: center;
    text-transform: none;
    font-style: normal;
    font-weight: normal;
    color: #fff;
    speak: none;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    position: relative;
    top: 3px;
    left: 4px; }

.form.form--splunk .form__button {
  display: inline-block;
  margin-top: 1em;
  background: #5890e3;
  background: #5890e3;
  color: #fff;
  font-weight: bold;
  font-size: 14px;
  text-transform: uppercase;
  padding: 0.5em 1em;
  -webkit-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
  -moz-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
  transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
  line-height: normal;
  position: relative;
  left: 0;
  -webkit-transform: translateX(0%);
  -moz-transform: translateX(0%);
  -ms-transform: translateX(0%);
  -o-transform: translateX(0%);
  transform: translateX(0%);
  background: #000;
  background: black;
  width: 48%; }
  .form.form--splunk .form__button:hover {
    background: #6e9fe7;
    background: #6e9fe7; }
  .form.form--splunk .form__button:after {
    display: inline-block;
    content: "";
    font-family: 'glyphs';
    font-size: 18px;
    font-variant: normal;
    text-align: center;
    text-transform: none;
    font-style: normal;
    font-weight: normal;
    color: #fff;
    speak: none;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    position: relative;
    top: 3px;
    left: 4px; }

.form.form--split .form__form {
  padding: 0; }

@media screen and (max-width: 62.4375em) {
  .form.form--split .progress {
    margin-top: -2.5em; } }

@media screen and (min-width: 62.5em) {
  .form.form--split {
    max-width: none; }
    .form.form--split .form__form {
      padding: 0; }
    .form.form--split .form__fieldset {
      padding: 1em; }
    .form.form--split .form__region:nth-child(1) {
      float: left;
      display: block;
      margin-right: 1.16509%;
      width: 49.41745%; }
      .form.form--split .form__region:nth-child(1):last-child {
        margin-right: 0; }
      .form.form--split .form__region:nth-child(1) .form__fieldset {
        padding: 0; }
    .form.form--split .form__region:nth-child(2) {
      padding-top: 5em;
      padding-bottom: 5em;
      margin-left: 4.21521%;
      float: left;
      display: block;
      margin-right: 1.16509%;
      width: 45.20224%;
      margin-right: 0; }
      .form.form--split .form__region:nth-child(2):last-child {
        margin-right: 0; }
    .form.form--split .form__field.form__field--submit {
      margin-top: 0;
      padding-right: 1em;
      padding-left: 1em; }
    .form.form--split .form__submit {
      margin-top: 0.5em;
      border-radius: 10px; } }

.form.form--newsletter {
  display: none; }
  @media screen and (min-width: 62.5em) {
    .form.form--newsletter {
      display: block;
      margin-top: 2.5em;
      background: #fafafa;
      padding: 1.75em; }
      .form.form--newsletter .form__heading {
        font-weight: 700;
        font-size: 1.125em; }
      .form.form--newsletter .form__copy {
        margin-top: 1em;
        font-size: 0.875em; }
      .form.form--newsletter .form__form {
        margin-top: 1em; }
      .form.form--newsletter .form__field {
        position: relative; }
      .form.form--newsletter .form__input[type=text], .form.form--newsletter .form__input[type=email], .form.form--newsletter .form__input[type=password] {
        height: auto;
        width: 100%;
        padding: 1em 0.5em;
        margin-top: 0.5em;
        color: #272727;
        font-size: 0.875em;
        -webkit-transition: all, 250ms, cubic-bezier(0.755, 0.05, 0.855, 0.06);
        -moz-transition: all, 250ms, cubic-bezier(0.755, 0.05, 0.855, 0.06);
        transition: all, 250ms, cubic-bezier(0.755, 0.05, 0.855, 0.06);
        border-bottom: 3px solid #f2f2f2;
        background: #fff;
        background: white; }
        .form.form--newsletter .form__input[type=text]::-webkit-input-placeholder, .form.form--newsletter .form__input[type=email]::-webkit-input-placeholder, .form.form--newsletter .form__input[type=password]::-webkit-input-placeholder {
          -webkit-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
          -moz-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
          transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955); }
        .form.form--newsletter .form__input[type=text]::-moz-placeholder, .form.form--newsletter .form__input[type=email]::-moz-placeholder, .form.form--newsletter .form__input[type=password]::-moz-placeholder {
          -webkit-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
          -moz-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
          transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955); }
        .form.form--newsletter .form__input[type=text]:-moz-placeholder, .form.form--newsletter .form__input[type=email]:-moz-placeholder, .form.form--newsletter .form__input[type=password]:-moz-placeholder {
          -webkit-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
          -moz-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
          transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955); }
        .form.form--newsletter .form__input[type=text]:-ms-input-placeholder, .form.form--newsletter .form__input[type=email]:-ms-input-placeholder, .form.form--newsletter .form__input[type=password]:-ms-input-placeholder {
          -webkit-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
          -moz-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
          transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955); }
        .form.form--newsletter .form__input[type=text] ~ .form__label, .form.form--newsletter .form__input[type=email] ~ .form__label, .form.form--newsletter .form__input[type=password] ~ .form__label {
          position: absolute;
          top: -1em;
          right: 0;
          display: block;
          color: #5890e3;
          -webkit-transition: opacity, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
          -moz-transition: opacity, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
          transition: opacity, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
          text-align: right;
          white-space: nowrap;
          font-size: 10px;
          opacity: 0; }
        .form.form--newsletter .form__input[type=text]:focus, .form.form--newsletter .form__input[type=email]:focus, .form.form--newsletter .form__input[type=password]:focus {
          border-bottom: 3px solid #5890e3; }
          .form.form--newsletter .form__input[type=text]:focus ~ .form__label, .form.form--newsletter .form__input[type=email]:focus ~ .form__label, .form.form--newsletter .form__input[type=password]:focus ~ .form__label {
            opacity: 1; }
          .form.form--newsletter .form__input[type=text]:focus::-webkit-input-placeholder, .form.form--newsletter .form__input[type=email]:focus::-webkit-input-placeholder, .form.form--newsletter .form__input[type=password]:focus::-webkit-input-placeholder {
            color: #ffffff; }
          .form.form--newsletter .form__input[type=text]:focus::-moz-placeholder, .form.form--newsletter .form__input[type=email]:focus::-moz-placeholder, .form.form--newsletter .form__input[type=password]:focus::-moz-placeholder {
            color: #ffffff; }
          .form.form--newsletter .form__input[type=text]:focus:-moz-placeholder, .form.form--newsletter .form__input[type=email]:focus:-moz-placeholder, .form.form--newsletter .form__input[type=password]:focus:-moz-placeholder {
            color: #ffffff; }
          .form.form--newsletter .form__input[type=text]:focus:-ms-input-placeholder, .form.form--newsletter .form__input[type=email]:focus:-ms-input-placeholder, .form.form--newsletter .form__input[type=password]:focus:-ms-input-placeholder {
            color: #ffffff; }
        .form.form--newsletter .form__input[type=text]:valid ~ .form__label, .form.form--newsletter .form__input[type=email]:valid ~ .form__label, .form.form--newsletter .form__input[type=password]:valid ~ .form__label {
          opacity: 1; }
      .form.form--newsletter .form__submit {
        font-size: 0.875em;
        display: inline-block;
        margin-top: 1em;
        background: #5890e3;
        background: #5890e3;
        color: #fff;
        font-weight: bold;
        font-size: 14px;
        text-transform: uppercase;
        padding: 0.5em 1em;
        -webkit-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
        -moz-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
        transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
        line-height: normal;
        position: relative;
        left: 0;
        -webkit-transform: translateX(0%);
        -moz-transform: translateX(0%);
        -ms-transform: translateX(0%);
        -o-transform: translateX(0%);
        transform: translateX(0%);
        width: 100%;
        border-radius: 10px; }
        .form.form--newsletter .form__submit:hover {
          background: #6e9fe7;
          background: #6e9fe7; } }

.form.form--single-line {
  padding-bottom: 10em; }
  .form.form--single-line .form__inner {
    margin-right: auto;
    margin-left: auto;
    max-width: 90%; }
    .form.form--single-line .form__inner::after {
      clear: both;
      content: "";
      display: table; }
    @media screen and (min-width: 62.5em) {
      .form.form--single-line .form__inner {
        max-width: 1000px; } }
  .form.form--single-line .form__form {
    padding: 0em; }
  .form.form--single-line .form__field {
    position: relative;
    margin-top: 1.5em; }
    .form.form--single-line .form__field.form__field--single-line {
      border: 1px solid;
      height: 30px;
      width: 80%;
      padding-right: 100px; }
    .form.form--single-line .form__field.form__field--single-line-button {
      border: 1px solid;
      height: 30px;
      width: 100px;
      padding-left: -100px; }

.menu.menu--longitude .menu__list {
  padding-top: 1em;
  padding-bottom: 1em;
  text-align: center; }

.menu.menu--longitude .menu__item {
  display: block; }

.menu.menu--longitude .menu__link {
  color: #5890e3;
  font-size: 1.25em;
  font-weight: 600;
  text-transform: uppercase;
  display: inline-block;
  padding-top: 0.5em;
  padding-bottom: 0.5em; }
  .menu.menu--longitude .menu__link:after {
    display: inline-block;
    content: "";
    font-family: 'glyphs';
    font-size: 28px;
    font-variant: normal;
    text-align: center;
    text-transform: none;
    font-style: normal;
    font-weight: normal;
    color: #5890e3;
    speak: none;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    position: relative;
    top: 4px;
    left: 2px; }

@media screen and (min-width: 62.5em) {
  .menu.menu--longitude .menu__item {
    margin-right: 1.5em;
    margin-left: 1.5em;
    display: inline-block; } }

.menu.menu--header .menu__item:nth-child(1) .menu__link {
  background: #dc5323;
  background: #dc5323;
  border: 1px solid #dc5323; }

.menu.menu--header .menu__item:nth-child(2) .menu__link {
  background: #000;
  background: black;
  border: 1px solid #000; }

.menu.menu--header .menu__link {
  display: block;
  margin: 0.5em 1em;
  padding: 0.5em 1em;
  color: #fff;
  font-weight: 400;
  text-align: center;
  -webkit-transition: all 100ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
  -moz-transition: all 100ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
  transition: all 100ms cubic-bezier(0.455, 0.03, 0.515, 0.955); }

@media screen and (max-width: 62.4375em) {
  .menu.menu--header {
    margin-top: 1em; } }

@media screen and (min-width: 62.5em) {
  .menu.menu--header {
    float: left;
    background: #272727;
    background: #272727;
    padding-left: 1em; }
    .menu.menu--header .menu__inner {
      height: 3.75em;
      width: auto;
      display: table-cell;
      vertical-align: middle; }
    .menu.menu--header .menu__item {
      display: inline-block;
      margin: 0 0.5em; }
      .menu.menu--header .menu__item:hover:nth-child(1) .menu__link {
        border: 1px solid #ea987b; }
      .menu.menu--header .menu__item:hover:nth-child(2) .menu__link {
        border: 1px solid #333333; }
    .menu.menu--header .menu__link {
      margin: 0; } }

.menu.menu--footer {
  position: relative;
  margin-top: 1em; }
  .menu.menu--footer .menu__list {
    text-align: center; }
  .menu.menu--footer .menu__item:last-child {
    margin-top: 1em; }
    .menu.menu--footer .menu__item:last-child .menu__link {
      font-size: 12px; }
  .menu.menu--footer .menu__link {
    font-size: 14px;
    color: #fff;
    display: inline-block; }
  @media screen and (min-width: 46.875em) {
    .menu.menu--footer .menu__item {
      display: inline-block; }
      .menu.menu--footer .menu__item:before {
        content: '|';
        padding-right: 0.5em;
        padding-left: 0.5em;
        color: #fff;
        font-size: 14px; }
      .menu.menu--footer .menu__item:first-child:before {
        display: none; }
      .menu.menu--footer .menu__item:last-child {
        display: block; }
        .menu.menu--footer .menu__item:last-child:before {
          display: none; } }

.menu.menu--social .menu__list {
  text-align: center; }

.menu.menu--social .menu__item {
  display: inline-block; }
  .menu.menu--social .menu__item.menu__item--facebook .menu__link:before {
    display: inline-block;
    content: "";
    font-family: 'glyphs';
    font-size: 24px;
    font-variant: normal;
    text-align: center;
    text-transform: none;
    font-style: normal;
    font-weight: normal;
    color: #fff;
    speak: none;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale; }
  .menu.menu--social .menu__item.menu__item--twitter .menu__link:before {
    display: inline-block;
    content: "";
    font-family: 'glyphs';
    font-size: 24px;
    font-variant: normal;
    text-align: center;
    text-transform: none;
    font-style: normal;
    font-weight: normal;
    color: #fff;
    speak: none;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale; }
  .menu.menu--social .menu__item.menu__item--googleplus .menu__link:before {
    display: inline-block;
    content: "";
    font-family: 'glyphs';
    font-size: 24px;
    font-variant: normal;
    text-align: center;
    text-transform: none;
    font-style: normal;
    font-weight: normal;
    color: #fff;
    speak: none;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale; }
  .menu.menu--social .menu__item.menu__item--email .menu__link:before {
    display: inline-block;
    content: "";
    font-family: 'glyphs';
    font-size: 24px;
    font-variant: normal;
    text-align: center;
    text-transform: none;
    font-style: normal;
    font-weight: normal;
    color: #fff;
    speak: none;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale; }

.menu.menu--social .menu__link {
  display: inline-block;
  font-size: 0; }
  .menu.menu--social .menu__link:before {
    padding-right: 0.25em;
    padding-left: 0.25em; }

.menu.menu--about-us {
  display: none; }
  @media screen and (min-width: 62.5em) {
    .menu.menu--about-us {
      display: block;
      margin-top: 5.65em;
      background: #fafafa;
      padding: 1.75em; }
      .menu.menu--about-us .menu__list {
        margin-top: 1em; }
      .menu.menu--about-us .menu__heading {
        font-weight: 700;
        font-size: 1.125em; }
      .menu.menu--about-us .menu__item.menu__item--active .menu__link {
        font-weight: 700; }
      .menu.menu--about-us .menu__link {
        display: inline-block;
        padding-top: 0.5em;
        padding-bottom: 0.5em;
        color: #5890e3;
        font-size: 0.9375em; } }

.menu.menu--help {
  display: none; }
  @media screen and (min-width: 62.5em) {
    .menu.menu--help {
      display: block;
      margin-top: 5.65em;
      background: #fafafa;
      padding: 1.75em; }
      .menu.menu--help .menu__list {
        margin-top: 1em; }
      .menu.menu--help .menu__heading {
        font-weight: 700;
        font-size: 1.125em; }
      .menu.menu--help .menu__item.menu__item--active .menu__link {
        font-weight: 700; }
      .menu.menu--help .menu__link {
        display: inline-block;
        padding-top: 0.5em;
        padding-bottom: 0.5em;
        color: #5890e3;
        font-size: 0.9375em; } }
  .menu.menu--help .menu__item:before {
    display: inline-block;
    content: "";
    font-family: 'glyphs';
    font-size: 18px;
    font-variant: normal;
    text-align: center;
    text-transform: none;
    font-style: normal;
    font-weight: normal;
    color: #5890e3;
    speak: none;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    position: relative;
    top: 2px; }
  .menu.menu--help .menu__item.menu__item--toggled:before {
    display: inline-block;
    content: "";
    font-family: 'glyphs';
    font-size: 18px;
    font-variant: normal;
    text-align: center;
    text-transform: none;
    font-style: normal;
    font-weight: normal;
    color: #5890e3;
    speak: none;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    position: relative;
    top: 2px; }
  .menu.menu--help .menu__item.menu__item--toggled .submenu {
    display: block; }

.submenu.submenu--help {
  display: none; }
  .submenu.submenu--help .submenu__item.submenu__item--active .submenu__link {
    font-weight: 700; }
  .submenu.submenu--help .submenu__item.submenu__item--toggled .subsubmenu, .submenu.submenu--help .submenu__item.submenu__item--active .subsubmenu {
    display: block; }
  .submenu.submenu--help .submenu__link {
    display: inline-block;
    padding-top: 0.5em;
    padding-bottom: 0.5em;
    color: #5890e3;
    font-size: 0.875em; }

.subsubmenu.subsubmenu--help {
  display: none;
  padding-left: 0.5em; }
  .subsubmenu.subsubmenu--help .subsubmenu__item.subsubmenu__item--active .subsubmenu__link {
    font-weight: 700; }
  .subsubmenu.subsubmenu--help .subsubmenu__link {
    display: inline-block;
    padding-top: 0.5em;
    padding-bottom: 0.5em;
    color: #5890e3;
    font-size: 0.8125em; }

.subsubmenu.subsubmenu--active {
  display: block; }

.carousel {
  padding-top: 2.5em;
  padding-bottom: 2.5em;
  background: #000;
  background: black; }
  .carousel .carousel__inner {
    position: relative;
    max-width: 80%;
    margin-left: auto;
    margin-right: auto; }
    .carousel .carousel__inner::after {
      clear: both;
      content: "";
      display: table; }
  .carousel .carousel__button {
    -webkit-transform: translateY(-50%);
    -moz-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    -o-transform: translateY(-50%);
    transform: translateY(-50%);
    font-size: 0; }
    .carousel .carousel__button:before {
      -webkit-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
      -moz-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
      transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955); }
    .carousel .carousel__button.carousel__button--previous {
      position: absolute;
      top: 50%;
      left: -40px; }
      .carousel .carousel__button.carousel__button--previous:before {
        display: inline-block;
        content: "";
        font-family: 'glyphs';
        font-size: 50px;
        font-variant: normal;
        text-align: center;
        text-transform: none;
        font-style: normal;
        font-weight: normal;
        color: #999;
        speak: none;
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale; }
      .carousel .carousel__button.carousel__button--previous:hover:before {
        color: #5890e3; }
    .carousel .carousel__button.carousel__button--next {
      position: absolute;
      top: 50%;
      right: -40px; }
      .carousel .carousel__button.carousel__button--next:before {
        display: inline-block;
        content: "";
        font-family: 'glyphs';
        font-size: 50px;
        font-variant: normal;
        text-align: center;
        text-transform: none;
        font-style: normal;
        font-weight: normal;
        color: #999;
        speak: none;
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale; }
      .carousel .carousel__button.carousel__button--next:hover:before {
        color: #5890e3; }
  .carousel .slick-slide {
    outline: none; }
  .carousel .slick-dots {
    margin-top: 1em;
    text-align: center; }
    .carousel .slick-dots li {
      display: inline-block; }
      .carousel .slick-dots li.slick-active button:before, .carousel .slick-dots li:hover button:before {
        background-color: #5890e3;
        border-color: #5890e3;
        -webkit-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
        -moz-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
        transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955); }
    .carousel .slick-dots button {
      font-size: 0;
      padding-right: 2px;
      padding-left: 2px; }
      .carousel .slick-dots button:before {
        position: relative;
        display: block;
        content: '';
        border-radius: 50%;
        border: 1px solid #999;
        height: 10px;
        width: 10px; }
  .carousel .carousel__cta {
    display: inline-block;
    margin-top: 1em;
    background: #5890e3;
    background: #5890e3;
    color: #fff;
    font-weight: bold;
    font-size: 14px;
    text-transform: uppercase;
    padding: 0.5em 1em;
    -webkit-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    -moz-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    line-height: normal;
    position: relative;
    left: 50%;
    -webkit-transform: translateX(-50%);
    -moz-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    -o-transform: translateX(-50%);
    transform: translateX(-50%); }
    .carousel .carousel__cta:hover {
      background: #6e9fe7;
      background: #6e9fe7; }
    .carousel .carousel__cta:after {
      display: inline-block;
      content: "";
      font-family: 'glyphs';
      font-size: 18px;
      font-variant: normal;
      text-align: center;
      text-transform: none;
      font-style: normal;
      font-weight: normal;
      color: #fff;
      speak: none;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      position: relative;
      top: 3px;
      left: 4px; }
  @media screen and (min-width: 46.875em) {
    .carousel .carousel__button.carousel__button--previous:before {
      font-size: 70px; }
    .carousel .carousel__button.carousel__button--next:before {
      font-size: 70px; } }
  @media screen and (min-width: 62.5em) {
    .carousel .carousel__button.carousel__button--previous {
      position: absolute;
      left: -80px; }
    .carousel .carousel__button.carousel__button--next {
      position: absolute;
      right: -80px; } }

.slide .slide__inner {
  max-width: 500px;
  margin-left: auto;
  margin-right: auto; }
  .slide .slide__inner::after {
    clear: both;
    content: "";
    display: table; }

.slide .slide__heading {
  font-weight: 700;
  font-size: 1.5em;
  line-height: 1.2;
  color: #272727; }

.slide .slide__copy {
  margin-top: 1em;
  margin-bottom: 1em;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.8;
  color: #272727;
  color: #fff; }
  .slide .slide__copy strong {
    font-weight: 600; }
  .slide .slide__copy a {
    color: #5890e3; }
    .slide .slide__copy a:hover {
      color: #2c73dc; }

.slide .slide__cta {
  display: inline-block;
  margin-top: 1em;
  background: #5890e3;
  background: #5890e3;
  color: #fff;
  font-weight: bold;
  font-size: 14px;
  text-transform: uppercase;
  padding: 0.5em 1em;
  -webkit-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
  -moz-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
  transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
  line-height: normal;
  position: relative;
  left: 50%;
  -webkit-transform: translateX(-50%);
  -moz-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  -o-transform: translateX(-50%);
  transform: translateX(-50%); }
  .slide .slide__cta:hover {
    background: #6e9fe7;
    background: #6e9fe7; }
  .slide .slide__cta:after {
    display: inline-block;
    content: "";
    font-family: 'glyphs';
    font-size: 18px;
    font-variant: normal;
    text-align: center;
    text-transform: none;
    font-style: normal;
    font-weight: normal;
    color: #fff;
    speak: none;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    position: relative;
    top: 3px;
    left: 4px; }

.slide .slide__figure {
  text-align: center; }

.slide .slide__link {
  display: inline-block; }

.slide .slide__image {
  margin-top: 1em;
  display: inline-block;
  height: auto;
  max-width: 100%; }

.slide .slide__content {
  text-align: center; }
  .slide .slide__content img {
    height: auto;
    max-width: 100%; }
  .slide .slide__content h2 {
    font-size: 1.75em;
    font-weight: 600;
    line-height: 1.4; }
  .slide .slide__content em {
    font-style: italic; }
  .slide .slide__content p {
    margin-top: 0.5em;
    margin-bottom: 0.5em; }

@media screen and (min-width: 46.875em) {
  .slide .slide__content {
    text-align: center; }
    .slide .slide__content img {
      margin-right: auto;
      margin-left: auto; }
  .slide .slide__heading {
    font-size: 2em; }
  .slide .slide__cta {
    display: inline-block;
    margin-top: 1em;
    background: #5890e3;
    background: #5890e3;
    color: #fff;
    font-weight: bold;
    font-size: 14px;
    text-transform: uppercase;
    padding: 0.5em 1em;
    -webkit-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    -moz-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    line-height: normal;
    position: relative;
    left: 0;
    -webkit-transform: translateX(0%);
    -moz-transform: translateX(0%);
    -ms-transform: translateX(0%);
    -o-transform: translateX(0%);
    transform: translateX(0%); }
    .slide .slide__cta:hover {
      background: #6e9fe7;
      background: #6e9fe7; }
    .slide .slide__cta:after {
      display: inline-block;
      content: "";
      font-family: 'glyphs';
      font-size: 18px;
      font-variant: normal;
      text-align: center;
      text-transform: none;
      font-style: normal;
      font-weight: normal;
      color: #fff;
      speak: none;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      position: relative;
      top: 3px;
      left: 4px; }
  .slide .slide__image {
    margin-top: 2em; } }

@media screen and (min-width: 62.5em) {
  .slide .slide__inner {
    max-width: 1000px;
    margin-left: auto;
    margin-right: auto;
    position: relative;
    height: 300px;
    width: 100%; }
    .slide .slide__inner::after {
      clear: both;
      content: "";
      display: table; }
  .slide .slide__content {
    text-align: left;
    position: absolute;
    top: 50%;
    right: 0;
    padding-right: 1em;
    height: auto;
    width: 60%;
    -webkit-transform: translateY(-50%);
    -moz-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    -o-transform: translateY(-50%);
    transform: translateY(-50%); }
    .slide .slide__content img {
      margin-right: 0;
      margin-left: 0; }
    .slide .slide__content h1 {
      font-size: 2.25em;
      font-weight: 400; }
    .slide .slide__content h2 {
      font-size: 2.25em;
      font-weight: 400; }
  .slide .slide__figure {
    position: absolute;
    top: 50%;
    left: 0;
    height: auto;
    width: 40%;
    -webkit-transform: translateY(-50%);
    -moz-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    -o-transform: translateY(-50%);
    transform: translateY(-50%); } }

@media screen and (min-width: 62.5em) {
  .slide.slide--no-image .slide__figure {
    display: none; }
  .slide.slide--no-image .slide__content {
    text-align: center;
    position: absolute;
    top: 50%;
    right: 0;
    left: 0;
    height: auto;
    width: 100%; }
    .slide.slide--no-image .slide__content img {
      margin-right: auto;
      margin-left: auto; } }

@media screen and (min-width: 62.5em) {
  .home .slide .slide__inner {
    height: 400px;
    width: 100%; } }

.collection.collection--plans {
  padding-top: 2.5em;
  padding-bottom: 2.5em;
  background: #f2f2f2;
  background: #f2f2f2; }
  .collection.collection--plans .slick-slide, .collection.collection--plans .slick-slide a {
    outline: none !important; }
  .collection.collection--plans .slick-arrow {
    -webkit-transform: translateY(-50%);
    -moz-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    -o-transform: translateY(-50%);
    transform: translateY(-50%);
    font-size: 0;
    z-index: 1; }
    .collection.collection--plans .slick-arrow:before {
      -webkit-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
      -moz-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
      transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955); }
    .collection.collection--plans .slick-arrow.slick-prev {
      position: absolute;
      top: 50%;
      left: -5px; }
      .collection.collection--plans .slick-arrow.slick-prev:before {
        display: inline-block;
        content: "";
        font-family: 'glyphs';
        font-size: 50px;
        font-variant: normal;
        text-align: center;
        text-transform: none;
        font-style: normal;
        font-weight: normal;
        color: #5890e3;
        speak: none;
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale; }
      .collection.collection--plans .slick-arrow.slick-prev:hover:before {
        color: #5890e3; }
    .collection.collection--plans .slick-arrow.slick-next {
      position: absolute;
      top: 50%;
      right: -5px; }
      .collection.collection--plans .slick-arrow.slick-next:before {
        display: inline-block;
        content: "";
        font-family: 'glyphs';
        font-size: 50px;
        font-variant: normal;
        text-align: center;
        text-transform: none;
        font-style: normal;
        font-weight: normal;
        color: #5890e3;
        speak: none;
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale; }
      .collection.collection--plans .slick-arrow.slick-next:hover:before {
        color: #5890e3; }
  @media screen and (min-width: 62.5em) {
    .collection.collection--plans {
      padding-top: 5em;
      padding-bottom: 5em; }
      .collection.collection--plans .collection__inner {
        max-width: 1000px;
        margin-left: auto;
        margin-right: auto; }
        .collection.collection--plans .collection__inner::after {
          clear: both;
          content: "";
          display: table; } }
  .collection.collection--plans .collection__cta {
    display: inline-block;
    margin-top: 1em;
    background: #5890e3;
    background: #5890e3;
    color: #fff;
    font-weight: bold;
    font-size: 14px;
    text-transform: uppercase;
    padding: 0.5em 1em;
    -webkit-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    -moz-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    line-height: normal;
    position: relative;
    left: 50%;
    -webkit-transform: translateX(-50%);
    -moz-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    -o-transform: translateX(-50%);
    transform: translateX(-50%);
    background-color: transparent;
    border: 1px solid #fff;
    margin-top: 2.5em;
    display: none; }
    .collection.collection--plans .collection__cta:hover {
      background: #6e9fe7;
      background: #6e9fe7; }
    .collection.collection--plans .collection__cta:hover {
      background-color: #fff;
      color: #5890e3; }
      .collection.collection--plans .collection__cta:hover:after {
        color: #5890e3; }
  @media screen and (min-width: 62.5em) {
    .collection.collection--plans {
      padding-bottom: 0; } }

.collection.collection--plan-descriptions {
  padding-top: 2.5em;
  padding-bottom: 2.5em;
  background: #f2f2f2;
  background: #f2f2f2; }
  .collection.collection--plan-descriptions .collection__inner {
    max-width: 1000px;
    margin-left: auto;
    margin-right: auto; }
    .collection.collection--plan-descriptions .collection__inner::after {
      clear: both;
      content: "";
      display: table; }
  .collection.collection--plan-descriptions .collection__cta {
    display: none; }
  @media screen and (min-width: 62.5em) {
    .collection.collection--plan-descriptions {
      padding-bottom: 5em; } }

.collection.collection--testimonials {
  padding-top: 2.5em;
  padding-bottom: 2.5em; }
  .collection.collection--testimonials .collection__item {
    height: 350px;
    position: relative; }
  @media screen and (min-width: 46.875em) {
    .collection.collection--testimonials .collection__item {
      height: 250px;
      width: auto; } }
  @media screen and (min-width: 62.5em) {
    .collection.collection--testimonials {
      padding-top: 4em;
      padding-bottom: 2em; } }

.collection.collection--recent-news {
  padding-top: 2.5em;
  padding-bottom: 5em; }
  .collection.collection--recent-news .collection__heading {
    font-size: 1.5em;
    font-weight: 700;
    line-height: 1.2;
    color: #272727;
    border-bottom: 1px solid #999;
    padding-bottom: 0.5em;
    margin-bottom: 0.5em; }
    @media screen and (min-width: 46.875em) {
      .collection.collection--recent-news .collection__heading {
        font-size: 2.5em; } }
  .collection.collection--recent-news .collection__inner {
    max-width: 80%;
    margin-left: auto;
    margin-right: auto; }
    .collection.collection--recent-news .collection__inner::after {
      clear: both;
      content: "";
      display: table; }
  .collection.collection--recent-news .collection__item {
    margin-top: 2.5em; }
  @media screen and (min-width: 62.5em) {
    .collection.collection--recent-news {
      max-width: 1000px;
      margin-left: auto;
      margin-right: auto;
      padding-top: 0; }
      .collection.collection--recent-news::after {
        clear: both;
        content: "";
        display: table; }
      .collection.collection--recent-news .collection__heading {
        font-size: 2em;
        padding-top: 0; } }

.collection.collection--focus-areas {
  padding-top: 2.5em;
  padding-bottom: 2.5em; }
  .collection.collection--focus-areas .collection__item {
    margin-top: 2.5em; }
    .collection.collection--focus-areas .collection__item::after {
      clear: both;
      content: "";
      display: table; }
  .collection.collection--focus-areas .collection__inner {
    margin-right: auto;
    margin-left: auto;
    max-width: 90%; }
    .collection.collection--focus-areas .collection__inner::after {
      clear: both;
      content: "";
      display: table; }
    @media screen and (min-width: 62.5em) {
      .collection.collection--focus-areas .collection__inner {
        max-width: 1000px; } }
  .collection.collection--focus-areas .collection__heading {
    font-size: 1.5em;
    font-weight: 700;
    line-height: 1.2;
    color: #272727;
    border-bottom: 1px solid #999;
    padding-bottom: 0.5em;
    margin-bottom: 0.5em; }
    @media screen and (min-width: 46.875em) {
      .collection.collection--focus-areas .collection__heading {
        font-size: 2.5em; } }
  .collection.collection--focus-areas:after {
    content: '';
    display: block;
    height: 1px;
    width: 90%;
    margin-right: auto;
    margin-left: auto;
    border-bottom: 1px dashed #f2f2f2;
    position: relative;
    top: 2.5em;
    max-width: 1000px; }
  @media screen and (min-width: 46.875em) {
    .collection.collection--focus-areas .collection__item {
      margin-top: 4em; } }
  @media screen and (min-width: 62.5em) {
    .collection.collection--focus-areas {
      padding-top: 5em;
      padding-bottom: 5em; }
      .collection.collection--focus-areas:after {
        position: relative;
        top: 5em; } }

.collection.collection--splunk .collection__item:last-child {
  margin-top: 4em; }

.footer {
  position: relative;
  background: #5890e3;
  background: #5890e3; }
  .footer .footer__inner {
    padding-top: 3em;
    padding-bottom: 4em; }

.modal {
  visibility: hidden;
  z-index: 50;
  opacity: 0;
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  height: 100%;
  width: 100%;
  -webkit-transition: opacity, 250ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
  -moz-transition: opacity, 250ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
  transition: opacity, 250ms cubic-bezier(0.455, 0.03, 0.515, 0.955); }
  .modal:before {
    content: '';
    display: block;
    background: #5890e3;
    background: rgba(88, 144, 227, 0.95);
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    height: 100%;
    width: 100%; }
  .modal .modal__inner {
    position: fixed;
    top: 50%;
    left: 50%;
    -webkit-transform: translate3d(-50%, -50%, 0);
    -moz-transform: translate3d(-50%, -50%, 0);
    -ms-transform: translate3d(-50%, -50%, 0);
    -o-transform: translate3d(-50%, -50%, 0);
    transform: translate3d(-50%, -50%, 0);
    position: relative; }
  .modal .modal__close {
    position: fixed;
    top: -2px;
    right: 7px;
    font-size: 0; }
    .modal .modal__close:before {
      display: inline-block;
      content: "";
      font-family: 'glyphs';
      font-size: 50px;
      font-variant: normal;
      text-align: center;
      text-transform: none;
      font-style: normal;
      font-weight: normal;
      color: #fff;
      speak: none;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale; }
  @media screen and (min-width: 46.875em) {
    .modal .modal__close {
      position: fixed;
      top: 0px;
      right: 20px; } }
  @media screen and (min-width: 62.5em) {
    .modal {
      z-index: 5; }
      .modal .modal__close {
        position: fixed;
        top: 50%;
        left: 50%;
        margin-top: -250px;
        margin-left: 230px; }
        .modal .modal__close:before {
          display: inline-block;
          content: "";
          font-family: 'glyphs';
          font-size: 60px;
          font-variant: normal;
          text-align: center;
          text-transform: none;
          font-style: normal;
          font-weight: normal;
          color: #fff;
          speak: none;
          -webkit-font-smoothing: antialiased;
          -moz-osx-font-smoothing: grayscale; } }
  .modal.modal--embed .modal__inner {
    height: 0;
    width: 100%;
    padding-top: 56%;
    overflow: hidden; }
    .modal.modal--embed .modal__inner iframe {
      position: absolute;
      top: 0;
      left: 0;
      height: 100%;
      width: 100%; }
  @media screen and (min-width: 46.875em) {
    .modal.modal--embed .modal__inner {
      height: auto;
      width: 750px;
      padding-top: 420px; } }
  @media screen and (min-width: 62.5em) {
    .modal.modal--embed .modal__close {
      margin-top: -265px;
      margin-left: 370px; } }

.tile.tile--features {
  height: 220px;
  width: 220px;
  position: relative;
  left: 50%;
  margin-left: -110px;
  background: #fff;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.5); }
  .tile.tile--features .tile__image {
    position: relative;
    top: 15px;
    left: 50%;
    margin-left: -75px;
    height: 150px;
    width: 150px; }
  .tile.tile--features .tile__content {
    color: #fff;
    height: auto;
    width: 100%;
    position: absolute;
    bottom: 1em;
    left: 0;
    text-align: center; }
  .tile.tile--features .tile__heading {
    font-size: 1.25em;
    font-weight: 600; }
  .tile.tile--features .tile__copy {
    font-style: italic; }
  .tile.tile--features .tile__cta {
    display: none;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0; }
  @media screen and (min-width: 62.5em) {
    .tile.tile--features .tile__cta {
      display: block; } }

.tile.tile--plans {
  height: 220px;
  width: 220px;
  position: relative;
  left: 50%;
  margin-left: -110px;
  background: #fff;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.5);
  border: 1px solid #272727;
  border: none; }
  .tile.tile--plans .tile__image {
    position: relative;
    top: 15px;
    left: 50%;
    margin-left: -75px;
    height: 150px;
    width: 150px; }
  .tile.tile--plans .tile__content {
    color: #fff;
    height: auto;
    width: 100%;
    position: absolute;
    bottom: 1em;
    left: 0;
    text-align: center; }
  .tile.tile--plans .tile__heading {
    font-size: 1.25em;
    font-weight: 600; }
  .tile.tile--plans .tile__copy {
    font-style: italic; }
  .tile.tile--plans .tile__cta {
    display: none;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0; }
  @media screen and (min-width: 62.5em) {
    .tile.tile--plans .tile__cta {
      display: block; } }
  .tile.tile--plans .tile__heading {
    color: #272727; }
  .tile.tile--plans .tile__copy {
    color: #272727; }
  .tile.tile--plans .tile__cta {
    display: none; }
  @media screen and (min-width: 62.5em) {
    .tile.tile--plans {
      position: relative;
      left: 0;
      width: 90%;
      margin-right: auto;
      margin-left: auto;
      max-width: 500px; }
      .tile.tile--plans .tile__image {
        position: relative;
        left: 0;
        margin-right: auto;
        margin-left: -45px; }
      .tile.tile--plans .tile__content {
        text-align: left; } }

.spot.spot--feature .spot__inner {
  max-width: 80%;
  margin-left: auto;
  margin-right: auto;
  padding-top: 2em;
  padding-bottom: 2em; }
  .spot.spot--feature .spot__inner::after {
    clear: both;
    content: "";
    display: table; }

.spot.spot--feature .spot__figure {
  text-align: center; }

.spot.spot--feature .spot__image {
  display: inline-block;
  max-width: 6.25em;
  height: auto; }

.spot.spot--feature .spot__heading {
  font-size: 1.25em;
  font-weight: 600; }

.spot.spot--feature .spot__content {
  margin-top: 1em; }

.spot.spot--feature .spot__copy {
  margin-top: 1em;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.8;
  color: #272727;
  font-size: 1.0625em; }
  .spot.spot--feature .spot__copy strong {
    font-weight: 600; }
  .spot.spot--feature .spot__copy a {
    color: #5890e3; }
    .spot.spot--feature .spot__copy a:hover {
      color: #2c73dc; }
  .spot.spot--feature .spot__copy p:not(:first-child) {
    margin-top: 1em; }
  .spot.spot--feature .spot__copy ul {
    margin-top: 1em; }
  .spot.spot--feature .spot__copy li {
    position: relative;
    padding-left: 1em; }
    .spot.spot--feature .spot__copy li:before {
      position: absolute;
      top: 0.6em;
      left: 0;
      display: inline-block;
      content: "";
      font-family: 'glyphs';
      font-size: 8px;
      font-variant: normal;
      text-align: center;
      text-transform: none;
      font-style: normal;
      font-weight: normal;
      color: #fff;
      speak: none;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale; }
    .spot.spot--feature .spot__copy li:not(:first-child) {
      margin-top: 0.25em; }

.spot.spot--feature .spot__cta {
  display: inline-block;
  margin-top: 1em;
  background: #5890e3;
  background: #5890e3;
  color: #fff;
  font-weight: bold;
  font-size: 14px;
  text-transform: uppercase;
  padding: 0.5em 1em;
  -webkit-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
  -moz-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
  transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
  line-height: normal;
  position: relative;
  left: 0;
  -webkit-transform: translateX(0%);
  -moz-transform: translateX(0%);
  -ms-transform: translateX(0%);
  -o-transform: translateX(0%);
  transform: translateX(0%);
  margin-top: 2em;
  border-radius: 10px; }
  .spot.spot--feature .spot__cta:hover {
    background: #6e9fe7;
    background: #6e9fe7; }
  .spot.spot--feature .spot__cta:after {
    display: inline-block;
    content: "";
    font-family: 'glyphs';
    font-size: 18px;
    font-variant: normal;
    text-align: center;
    text-transform: none;
    font-style: normal;
    font-weight: normal;
    color: #fff;
    speak: none;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    position: relative;
    top: 3px;
    left: 4px; }

@media screen and (min-width: 62.5em) {
  .spot.spot--feature .spot__inner {
    max-width: 1000px;
    margin-left: auto;
    margin-right: auto;
    position: relative;
    height: 400px;
    width: 100%; }
    .spot.spot--feature .spot__inner::after {
      clear: both;
      content: "";
      display: table; }
  .spot.spot--feature .spot__content {
    text-align: left;
    position: absolute;
    top: 50%;
    left: 0;
    padding-right: 1em;
    margin-top: 0;
    height: auto;
    width: 70%;
    -webkit-transform: translateY(-50%);
    -moz-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    -o-transform: translateY(-50%);
    transform: translateY(-50%); }
  .spot.spot--feature .spot__heading {
    font-size: 1.75em; }
  .spot.spot--feature .spot__figure {
    position: absolute;
    top: 50%;
    right: 0;
    height: auto;
    width: 30%;
    -webkit-transform: translateY(-50%);
    -moz-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    -o-transform: translateY(-50%);
    transform: translateY(-50%);
    text-align: right; }
  .spot.spot--feature .spot__image {
    max-width: 100%; } }

@media screen and (min-width: 62.5em) {
  .spot.spot--thin .spot__inner {
    height: 300px;
    width: 100%;
    padding-top: 0;
    padding-bottom: 0; }
  .spot.spot--thin .spot__image {
    max-width: 9.375em; } }

@media screen and (min-width: 62.5em) {
  .spot.spot--thinner .spot__inner {
    height: 100px;
    width: 100%;
    padding-top: 0;
    padding-bottom: 0; }
  .spot.spot--thinner h3 {
    display: inline;
    text-align: left;
    margin-right: 0;
    margin-left: 10%; }
  .spot.spot--thinner .spot__copy {
    display: inline; }
  .spot.spot--thinner .spot_content {
    width: 100%; }
  .spot.spot--thinner .spot__cta {
    display: inline;
    margin-right: 0;
    margin-left: 3%;
    font-weight: 300;
    border-radius: 10px;
    font-size: .85em; }
  .spot.spot--thinner .spot__image {
    max-width: 3.125em; } }

@media screen and (min-width: 62.5em) {
  .spot.spot--thinner--trtl .spot__content {
    position: absolute;
    top: 50%;
    right: 0;
    left: initial;
    height: auto;
    width: 100%; }
  .spot.spot--thinner--trtl .spot__figure {
    position: absolute;
    top: 50%;
    right: initial;
    left: 0;
    height: auto;
    width: 5%;
    text-align: right; }
  .spot.spot--thinner--trtl .spot__heading {
    font-size: 1.5em; } }

@media screen and (min-width: 62.5em) {
  .spot.spot--trtl .spot__content {
    position: absolute;
    top: 50%;
    right: 0;
    left: initial;
    height: auto;
    width: 85%; }
  .spot.spot--trtl .spot__figure {
    position: absolute;
    top: 50%;
    right: initial;
    left: 0;
    height: auto;
    width: 15%;
    text-align: left; } }

@media screen and (min-width: 62.5em) {
  .spot.spot--splunk .spot__image {
    max-width: 9.375em; } }

@media screen and (min-width: 62.5em) {
  .spot.spot--rtl .spot__content {
    position: absolute;
    top: 50%;
    right: 0;
    left: initial;
    height: auto;
    width: 75%; }
  .spot.spot--rtl .spot__figure {
    position: absolute;
    top: 50%;
    right: initial;
    left: 0;
    height: auto;
    width: 25%;
    text-align: left; } }

.spot.spot--full .spot__content {
  height: auto;
  width: 100%; }

.spot.spot--grey {
  background: #b6b6b6;
  background: #b6b6b6; }

.spot.spot--grey-dark {
  background: #b6b6b6;
  background: #b6b6b6; }
  .spot.spot--grey-dark .spot__cta {
    background: #000;
    background: black;
    border-radius: 10px; }
    .spot.spot--grey-dark .spot__cta:hover {
      background: #333;
      background: #333333; }

.spot.spot--grey-light {
  background: #f0f4fc;
  background: #f0f4fc; }

.spot.spot--blue-light {
  background: #d1e0f5;
  background: #d1e0f5; }

.spot.spot--focus-areas .spot__figure {
  text-align: center; }

.spot.spot--focus-areas .spot__image {
  height: auto;
  width: 150px; }

.spot.spot--focus-areas .spot__caption {
  font-size: 1em;
  font-weight: 600;
  color: #272727; }

.spot.spot--focus-areas .spot__content {
  margin-top: 1em; }

.spot.spot--focus-areas .spot__copy {
  margin-top: 1em; }
  .spot.spot--focus-areas .spot__copy a {
    color: #5890e3; }
  .spot.spot--focus-areas .spot__copy h1 {
    font-size: 1.5em;
    font-weight: 700;
    line-height: 1.2;
    color: #272727; }
    @media screen and (min-width: 46.875em) {
      .spot.spot--focus-areas .spot__copy h1 {
        font-size: 2.5em; } }
  .spot.spot--focus-areas .spot__copy h2 {
    font-size: 1.5em;
    font-weight: 600;
    line-height: 1.2;
    color: #272727; }
    .spot.spot--focus-areas .spot__copy h2:not(:first-child) {
      margin-top: 2em; }
  .spot.spot--focus-areas .spot__copy h3 {
    font-size: 1.25em;
    font-weight: 600; }
    .spot.spot--focus-areas .spot__copy h3:not(:first-child) {
      margin-top: 1em; }
  .spot.spot--focus-areas .spot__copy h4 {
    font-size: 1.25em;
    font-weight: 600; }
  .spot.spot--focus-areas .spot__copy h5 {
    font-size: 1em;
    font-weight: 600;
    color: #272727; }
  .spot.spot--focus-areas .spot__copy em {
    font-style: italic; }
  .spot.spot--focus-areas .spot__copy ol:not(:first-child) {
    margin-top: 1em; }
  .spot.spot--focus-areas .spot__copy ol li {
    font-weight: 400;
    font-size: 16px;
    line-height: 1.8;
    color: #272727;
    line-height: 1.8;
    margin-bottom: 1em;
    margin-left: 1.5em;
    list-style: decimal; }
    .spot.spot--focus-areas .spot__copy ol li strong {
      font-weight: 600; }
    .spot.spot--focus-areas .spot__copy ol li a {
      color: #5890e3; }
      .spot.spot--focus-areas .spot__copy ol li a:hover {
        color: #2c73dc; }
  .spot.spot--focus-areas .spot__copy ul li ol li ol li, .spot.spot--focus-areas .spot__copy ul li ol li {
    font-weight: 400;
    font-size: 16px;
    line-height: 1.8;
    color: #272727;
    line-height: 1.8;
    margin-bottom: 1em;
    margin-left: 1.5em;
    list-style: decimal; }
    .spot.spot--focus-areas .spot__copy ul li ol li ol li strong, .spot.spot--focus-areas .spot__copy ul li ol li strong {
      font-weight: 600; }
    .spot.spot--focus-areas .spot__copy ul li ol li ol li a, .spot.spot--focus-areas .spot__copy ul li ol li a {
      color: #5890e3; }
      .spot.spot--focus-areas .spot__copy ul li ol li ol li a:hover, .spot.spot--focus-areas .spot__copy ul li ol li a:hover {
        color: #2c73dc; }
    .spot.spot--focus-areas .spot__copy ul li ol li ol li:before, .spot.spot--focus-areas .spot__copy ul li ol li:before {
      content: none; }
  .spot.spot--focus-areas .spot__copy ul:not(:first-child) {
    margin-top: 1em; }
  .spot.spot--focus-areas .spot__copy ul li, .spot.spot--focus-areas .spot__copy ol ul li {
    font-weight: 400;
    font-size: 16px;
    line-height: 1.8;
    color: #272727;
    line-height: 1.8;
    margin-top: 0.5em;
    margin-left: 0.5em;
    list-style: none; }
    .spot.spot--focus-areas .spot__copy ul li strong, .spot.spot--focus-areas .spot__copy ol ul li strong {
      font-weight: 600; }
    .spot.spot--focus-areas .spot__copy ul li a, .spot.spot--focus-areas .spot__copy ol ul li a {
      color: #5890e3; }
      .spot.spot--focus-areas .spot__copy ul li a:hover, .spot.spot--focus-areas .spot__copy ol ul li a:hover {
        color: #2c73dc; }
    .spot.spot--focus-areas .spot__copy ul li:before, .spot.spot--focus-areas .spot__copy ol ul li:before {
      display: inline-block;
      content: "";
      font-family: 'glyphs';
      font-size: 6px;
      font-variant: normal;
      text-align: center;
      text-transform: none;
      font-style: normal;
      font-weight: normal;
      color: #5890e3;
      speak: none;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      position: relative;
      top: -3px;
      left: -1em; }
  .spot.spot--focus-areas .spot__copy ul li ul li {
    font-weight: 400;
    font-size: 16px;
    line-height: 1.8;
    color: #272727;
    line-height: 1.8;
    margin-top: 0.3em;
    margin-left: 2em;
    list-style: square;
    padding: none; }
    .spot.spot--focus-areas .spot__copy ul li ul li strong {
      font-weight: 600; }
    .spot.spot--focus-areas .spot__copy ul li ul li a {
      color: #5890e3; }
      .spot.spot--focus-areas .spot__copy ul li ul li a:hover {
        color: #2c73dc; }
    .spot.spot--focus-areas .spot__copy ul li ul li:before {
      content: none; }
  .spot.spot--focus-areas .spot__copy table {
    margin-top: 1em;
    height: auto;
    width: 100%; }
    .spot.spot--focus-areas .spot__copy table.ltr td:first-child {
      font-weight: 600; }
    @media screen and (min-width: 46.875em) {
      .spot.spot--focus-areas .spot__copy table.ltr td:first-child {
        height: auto;
        width: 25%; } }
    .spot.spot--focus-areas .spot__copy table tr {
      border-bottom: 1px dashed #d9d9d9; }
      .spot.spot--focus-areas .spot__copy table tr:first-child td:first-child {
        margin-top: 0; }
    .spot.spot--focus-areas .spot__copy table td {
      display: block;
      font-weight: 400;
      font-size: 16px;
      line-height: 1.8;
      color: #272727; }
      .spot.spot--focus-areas .spot__copy table td strong {
        font-weight: 600; }
      .spot.spot--focus-areas .spot__copy table td a {
        color: #5890e3; }
        .spot.spot--focus-areas .spot__copy table td a:hover {
          color: #2c73dc; }
      .spot.spot--focus-areas .spot__copy table td:nth-child(odd) {
        margin-top: 1em; }
      .spot.spot--focus-areas .spot__copy table td:nth-child(even) {
        padding-bottom: 1em; }
    @media screen and (min-width: 46.875em) {
      .spot.spot--focus-areas .spot__copy table td {
        display: table-cell;
        vertical-align: top;
        padding-top: 1em;
        padding-bottom: 1em; } }
  .spot.spot--focus-areas .spot__copy dl {
    margin-top: 1em;
    display: block; }
    .spot.spot--focus-areas .spot__copy dl::after {
      clear: both;
      content: "";
      display: table; }
    .spot.spot--focus-areas .spot__copy dl dt {
      font-weight: 400;
      font-size: 16px;
      line-height: 1.8;
      color: #272727;
      font-weight: 600;
      display: block; }
      .spot.spot--focus-areas .spot__copy dl dt strong {
        font-weight: 600; }
      .spot.spot--focus-areas .spot__copy dl dt a {
        color: #5890e3; }
        .spot.spot--focus-areas .spot__copy dl dt a:hover {
          color: #2c73dc; }
      .spot.spot--focus-areas .spot__copy dl dt:not(:first-child) {
        margin-top: 1em; }
    .spot.spot--focus-areas .spot__copy dl dd {
      font-weight: 400;
      font-size: 16px;
      line-height: 1.8;
      color: #272727;
      display: block;
      border-bottom: 1px dashed #f2f2f2;
      padding-bottom: 1em; }
      .spot.spot--focus-areas .spot__copy dl dd strong {
        font-weight: 600; }
      .spot.spot--focus-areas .spot__copy dl dd a {
        color: #5890e3; }
        .spot.spot--focus-areas .spot__copy dl dd a:hover {
          color: #2c73dc; }
    @media screen and (min-width: 46.875em) {
      .spot.spot--focus-areas .spot__copy dl dt {
        float: left;
        display: block;
        margin-right: 1.16509%;
        width: 24.12618%;
        clear: left;
        border-bottom: 1px dashed #f2f2f2;
        padding-bottom: 1em; }
        .spot.spot--focus-areas .spot__copy dl dt:last-child {
          margin-right: 0; }
      .spot.spot--focus-areas .spot__copy dl dd {
        float: left;
        display: block;
        margin-right: 1.16509%;
        width: 74.70873%;
        margin-right: 0; }
        .spot.spot--focus-areas .spot__copy dl dd:last-child {
          margin-right: 0; }
        .spot.spot--focus-areas .spot__copy dl dd:not(:nth-child(2)) {
          margin-top: 1em; } }
  .spot.spot--focus-areas .spot__copy p {
    font-weight: 400;
    font-size: 16px;
    line-height: 1.8;
    color: #272727; }
    .spot.spot--focus-areas .spot__copy p strong {
      font-weight: 600; }
    .spot.spot--focus-areas .spot__copy p a {
      color: #5890e3; }
      .spot.spot--focus-areas .spot__copy p a:hover {
        color: #2c73dc; }
    .spot.spot--focus-areas .spot__copy p:not(:first-child) {
      margin-top: 1em; }
  .spot.spot--focus-areas .spot__copy img {
    max-width: 100%;
    height: auto;
    /** @include padding(2px 2px 2px 2px);**/
    border: 1px solid #b3b3b3; }
    .spot.spot--focus-areas .spot__copy img.float {
      float: left;
      margin-top: 1.5em;
      margin-right: 1em;
      margin-bottom: 1em; }
  .spot.spot--focus-areas .spot__copy small {
    font-size: 0.875em; }
  .spot.spot--focus-areas .spot__copy .responsive-iframe {
    height: 0;
    width: 100%;
    padding-top: 56.5%;
    position: relative;
    margin-top: 1em;
    margin-bottom: 1em; }
  .spot.spot--focus-areas .spot__copy iframe {
    height: 100%;
    width: 100%;
    position: absolute;
    top: 0;
    left: 0; }

.spot.spot--focus-areas .spot__heading {
  font-size: 1.5em;
  font-weight: 600;
  line-height: 1.2;
  color: #272727; }

@media screen and (min-width: 46.875em) {
  .spot.spot--focus-areas .spot__figure {
    float: left;
    display: block;
    margin-right: 1.16509%;
    width: 24.12618%;
    margin-top: 3.125em; }
    .spot.spot--focus-areas .spot__figure:last-child {
      margin-right: 0; }
  .spot.spot--focus-areas .spot__content {
    float: left;
    display: block;
    margin-right: 1.16509%;
    width: 74.70873%; }
    .spot.spot--focus-areas .spot__content:last-child {
      margin-right: 0; } }

.spot.spot--compare {
  padding-top: 2.5em; }
  .spot.spot--compare .spot__inner {
    margin-right: auto;
    margin-left: auto;
    max-width: 90%; }
    .spot.spot--compare .spot__inner::after {
      clear: both;
      content: "";
      display: table; }
    @media screen and (min-width: 62.5em) {
      .spot.spot--compare .spot__inner {
        max-width: 1000px; } }
  .spot.spot--compare .spot__content {
    position: relative;
    margin-bottom: 2.5em; }
  .spot.spot--compare .spot__heading {
    font-size: 1.5em;
    font-weight: 700;
    line-height: 1.2;
    color: #272727;
    border-bottom: 1px solid #999;
    padding-bottom: 0.5em;
    margin-bottom: 0.5em; }
    @media screen and (min-width: 46.875em) {
      .spot.spot--compare .spot__heading {
        font-size: 2.5em; } }
  .spot.spot--compare .spot__cta {
    display: inline-block;
    margin-top: 1em;
    background: #5890e3;
    background: #5890e3;
    color: #fff;
    font-weight: bold;
    font-size: 14px;
    text-transform: uppercase;
    padding: 0.5em 1em;
    -webkit-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    -moz-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    line-height: normal;
    position: relative;
    left: 0;
    -webkit-transform: translateX(0%);
    -moz-transform: translateX(0%);
    -ms-transform: translateX(0%);
    -o-transform: translateX(0%);
    transform: translateX(0%);
    border-radius: 10px; }
    .spot.spot--compare .spot__cta:hover {
      background: #6e9fe7;
      background: #6e9fe7; }
  @media screen and (min-width: 46.875em) {
    .spot.spot--compare {
      padding-bottom: 7.5em; }
      .spot.spot--compare .spot__cta {
        position: absolute;
        right: 0;
        left: auto;
        height: auto;
        width: 20%;
        margin-top: 0;
        text-align: center;
        border-radius: 10px; } }
  @media screen and (min-width: 62.5em) {
    .spot.spot--compare {
      padding-top: 5em;
      padding-bottom: 5em; } }

.spot.spot--recent-news .spot__content {
  padding-left: 0.5em; }

.spot.spot--recent-news .spot__heading {
  font-size: 1.5em;
  font-weight: 600;
  line-height: 1.2;
  color: #272727; }

.spot.spot--recent-news .spot__copy {
  font-weight: 400;
  font-size: 16px;
  line-height: 1.8;
  color: #272727;
  margin-top: 1em; }
  .spot.spot--recent-news .spot__copy strong {
    font-weight: 600; }
  .spot.spot--recent-news .spot__copy a {
    color: #5890e3; }
    .spot.spot--recent-news .spot__copy a:hover {
      color: #2c73dc; }

.spot.spot--recent-news .spot__cta {
  display: inline-block;
  margin-top: 1em;
  background: #5890e3;
  background: #5890e3;
  color: #fff;
  font-weight: bold;
  font-size: 14px;
  text-transform: uppercase;
  padding: 0.5em 1em;
  -webkit-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
  -moz-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
  transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
  line-height: normal;
  position: relative;
  left: 0;
  -webkit-transform: translateX(0%);
  -moz-transform: translateX(0%);
  -ms-transform: translateX(0%);
  -o-transform: translateX(0%);
  transform: translateX(0%);
  border-radius: 10px; }
  .spot.spot--recent-news .spot__cta:hover {
    background: #6e9fe7;
    background: #6e9fe7; }
  .spot.spot--recent-news .spot__cta:after {
    display: inline-block;
    content: "";
    font-family: 'glyphs';
    font-size: 18px;
    font-variant: normal;
    text-align: center;
    text-transform: none;
    font-style: normal;
    font-weight: normal;
    color: #fff;
    speak: none;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    position: relative;
    top: 3px;
    left: 4px; }

@media screen and (min-width: 46.875em) {
  .spot.spot--recent-news {
    margin-left: 4.5em; } }

.spot.spot--recent-news {
  position: relative; }
  @media screen and (min-width: 46.875em) {
    .spot.spot--recent-news:before {
      display: inline-block;
      content: "";
      font-family: 'glyphs';
      font-size: 65px;
      font-variant: normal;
      text-align: center;
      text-transform: none;
      font-style: normal;
      font-weight: normal;
      color: #5890e3;
      speak: none;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      position: absolute;
      top: 0;
      left: -1.2em; } }

.spot.spot--weekly-market-brief {
  position: relative; }
  @media screen and (min-width: 46.875em) {
    .spot.spot--weekly-market-brief:before {
      display: inline-block;
      content: "";
      font-family: 'glyphs';
      font-size: 65px;
      font-variant: normal;
      text-align: center;
      text-transform: none;
      font-style: normal;
      font-weight: normal;
      color: #5890e3;
      speak: none;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      position: absolute;
      top: 0;
      left: -1.2em; } }

.spot.spot--product-news {
  position: relative; }
  @media screen and (min-width: 46.875em) {
    .spot.spot--product-news:before {
      display: inline-block;
      content: "";
      font-family: 'glyphs';
      font-size: 65px;
      font-variant: normal;
      text-align: center;
      text-transform: none;
      font-style: normal;
      font-weight: normal;
      color: #5890e3;
      speak: none;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      position: absolute;
      top: 0;
      left: -1.2em; } }

.spot.spot--product-features {
  position: relative; }
  @media screen and (min-width: 46.875em) {
    .spot.spot--product-features:before {
      display: inline-block;
      content: "";
      font-family: 'glyphs';
      font-size: 65px;
      font-variant: normal;
      text-align: center;
      text-transform: none;
      font-style: normal;
      font-weight: normal;
      color: #5890e3;
      speak: none;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      position: absolute;
      top: 0;
      left: -1.2em; } }

.spot.spot--videos {
  position: relative; }
  @media screen and (min-width: 46.875em) {
    .spot.spot--videos:before {
      display: inline-block;
      content: "";
      font-family: 'glyphs';
      font-size: 65px;
      font-variant: normal;
      text-align: center;
      text-transform: none;
      font-style: normal;
      font-weight: normal;
      color: #5890e3;
      speak: none;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      position: absolute;
      top: 0;
      left: -1.2em; } }

.spot.spot--plan-descriptions .spot__inner {
  max-width: 500px;
  margin-left: auto;
  margin-right: auto;
  height: auto;
  width: 90%; }
  .spot.spot--plan-descriptions .spot__inner::after {
    clear: both;
    content: "";
    display: table; }

.spot.spot--plan-descriptions .spot__heading {
  font-size: 1.5em;
  font-weight: 600;
  line-height: 1.2;
  color: #272727; }

.spot.spot--plan-descriptions .spot__copy {
  margin-top: 1em; }
  .spot.spot--plan-descriptions .spot__copy a {
    color: #5890e3; }
  .spot.spot--plan-descriptions .spot__copy h1 {
    font-size: 1.5em;
    font-weight: 700;
    line-height: 1.2;
    color: #272727; }
    @media screen and (min-width: 46.875em) {
      .spot.spot--plan-descriptions .spot__copy h1 {
        font-size: 2.5em; } }
  .spot.spot--plan-descriptions .spot__copy h2 {
    font-size: 1.5em;
    font-weight: 600;
    line-height: 1.2;
    color: #272727; }
    .spot.spot--plan-descriptions .spot__copy h2:not(:first-child) {
      margin-top: 2em; }
  .spot.spot--plan-descriptions .spot__copy h3 {
    font-size: 1.25em;
    font-weight: 600; }
    .spot.spot--plan-descriptions .spot__copy h3:not(:first-child) {
      margin-top: 1em; }
  .spot.spot--plan-descriptions .spot__copy h4 {
    font-size: 1.25em;
    font-weight: 600; }
  .spot.spot--plan-descriptions .spot__copy h5 {
    font-size: 1em;
    font-weight: 600;
    color: #272727; }
  .spot.spot--plan-descriptions .spot__copy em {
    font-style: italic; }
  .spot.spot--plan-descriptions .spot__copy ol:not(:first-child) {
    margin-top: 1em; }
  .spot.spot--plan-descriptions .spot__copy ol li {
    font-weight: 400;
    font-size: 16px;
    line-height: 1.8;
    color: #272727;
    line-height: 1.8;
    margin-bottom: 1em;
    margin-left: 1.5em;
    list-style: decimal; }
    .spot.spot--plan-descriptions .spot__copy ol li strong {
      font-weight: 600; }
    .spot.spot--plan-descriptions .spot__copy ol li a {
      color: #5890e3; }
      .spot.spot--plan-descriptions .spot__copy ol li a:hover {
        color: #2c73dc; }
  .spot.spot--plan-descriptions .spot__copy ul li ol li ol li, .spot.spot--plan-descriptions .spot__copy ul li ol li {
    font-weight: 400;
    font-size: 16px;
    line-height: 1.8;
    color: #272727;
    line-height: 1.8;
    margin-bottom: 1em;
    margin-left: 1.5em;
    list-style: decimal; }
    .spot.spot--plan-descriptions .spot__copy ul li ol li ol li strong, .spot.spot--plan-descriptions .spot__copy ul li ol li strong {
      font-weight: 600; }
    .spot.spot--plan-descriptions .spot__copy ul li ol li ol li a, .spot.spot--plan-descriptions .spot__copy ul li ol li a {
      color: #5890e3; }
      .spot.spot--plan-descriptions .spot__copy ul li ol li ol li a:hover, .spot.spot--plan-descriptions .spot__copy ul li ol li a:hover {
        color: #2c73dc; }
    .spot.spot--plan-descriptions .spot__copy ul li ol li ol li:before, .spot.spot--plan-descriptions .spot__copy ul li ol li:before {
      content: none; }
  .spot.spot--plan-descriptions .spot__copy ul:not(:first-child) {
    margin-top: 1em; }
  .spot.spot--plan-descriptions .spot__copy ul li, .spot.spot--plan-descriptions .spot__copy ol ul li {
    font-weight: 400;
    font-size: 16px;
    line-height: 1.8;
    color: #272727;
    line-height: 1.8;
    margin-top: 0.5em;
    margin-left: 0.5em;
    list-style: none; }
    .spot.spot--plan-descriptions .spot__copy ul li strong, .spot.spot--plan-descriptions .spot__copy ol ul li strong {
      font-weight: 600; }
    .spot.spot--plan-descriptions .spot__copy ul li a, .spot.spot--plan-descriptions .spot__copy ol ul li a {
      color: #5890e3; }
      .spot.spot--plan-descriptions .spot__copy ul li a:hover, .spot.spot--plan-descriptions .spot__copy ol ul li a:hover {
        color: #2c73dc; }
    .spot.spot--plan-descriptions .spot__copy ul li:before, .spot.spot--plan-descriptions .spot__copy ol ul li:before {
      display: inline-block;
      content: "";
      font-family: 'glyphs';
      font-size: 6px;
      font-variant: normal;
      text-align: center;
      text-transform: none;
      font-style: normal;
      font-weight: normal;
      color: #5890e3;
      speak: none;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      position: relative;
      top: -3px;
      left: -1em; }
  .spot.spot--plan-descriptions .spot__copy ul li ul li {
    font-weight: 400;
    font-size: 16px;
    line-height: 1.8;
    color: #272727;
    line-height: 1.8;
    margin-top: 0.3em;
    margin-left: 2em;
    list-style: square;
    padding: none; }
    .spot.spot--plan-descriptions .spot__copy ul li ul li strong {
      font-weight: 600; }
    .spot.spot--plan-descriptions .spot__copy ul li ul li a {
      color: #5890e3; }
      .spot.spot--plan-descriptions .spot__copy ul li ul li a:hover {
        color: #2c73dc; }
    .spot.spot--plan-descriptions .spot__copy ul li ul li:before {
      content: none; }
  .spot.spot--plan-descriptions .spot__copy table {
    margin-top: 1em;
    height: auto;
    width: 100%; }
    .spot.spot--plan-descriptions .spot__copy table.ltr td:first-child {
      font-weight: 600; }
    @media screen and (min-width: 46.875em) {
      .spot.spot--plan-descriptions .spot__copy table.ltr td:first-child {
        height: auto;
        width: 25%; } }
    .spot.spot--plan-descriptions .spot__copy table tr {
      border-bottom: 1px dashed #d9d9d9; }
      .spot.spot--plan-descriptions .spot__copy table tr:first-child td:first-child {
        margin-top: 0; }
    .spot.spot--plan-descriptions .spot__copy table td {
      display: block;
      font-weight: 400;
      font-size: 16px;
      line-height: 1.8;
      color: #272727; }
      .spot.spot--plan-descriptions .spot__copy table td strong {
        font-weight: 600; }
      .spot.spot--plan-descriptions .spot__copy table td a {
        color: #5890e3; }
        .spot.spot--plan-descriptions .spot__copy table td a:hover {
          color: #2c73dc; }
      .spot.spot--plan-descriptions .spot__copy table td:nth-child(odd) {
        margin-top: 1em; }
      .spot.spot--plan-descriptions .spot__copy table td:nth-child(even) {
        padding-bottom: 1em; }
    @media screen and (min-width: 46.875em) {
      .spot.spot--plan-descriptions .spot__copy table td {
        display: table-cell;
        vertical-align: top;
        padding-top: 1em;
        padding-bottom: 1em; } }
  .spot.spot--plan-descriptions .spot__copy dl {
    margin-top: 1em;
    display: block; }
    .spot.spot--plan-descriptions .spot__copy dl::after {
      clear: both;
      content: "";
      display: table; }
    .spot.spot--plan-descriptions .spot__copy dl dt {
      font-weight: 400;
      font-size: 16px;
      line-height: 1.8;
      color: #272727;
      font-weight: 600;
      display: block; }
      .spot.spot--plan-descriptions .spot__copy dl dt strong {
        font-weight: 600; }
      .spot.spot--plan-descriptions .spot__copy dl dt a {
        color: #5890e3; }
        .spot.spot--plan-descriptions .spot__copy dl dt a:hover {
          color: #2c73dc; }
      .spot.spot--plan-descriptions .spot__copy dl dt:not(:first-child) {
        margin-top: 1em; }
    .spot.spot--plan-descriptions .spot__copy dl dd {
      font-weight: 400;
      font-size: 16px;
      line-height: 1.8;
      color: #272727;
      display: block;
      border-bottom: 1px dashed #f2f2f2;
      padding-bottom: 1em; }
      .spot.spot--plan-descriptions .spot__copy dl dd strong {
        font-weight: 600; }
      .spot.spot--plan-descriptions .spot__copy dl dd a {
        color: #5890e3; }
        .spot.spot--plan-descriptions .spot__copy dl dd a:hover {
          color: #2c73dc; }
    @media screen and (min-width: 46.875em) {
      .spot.spot--plan-descriptions .spot__copy dl dt {
        float: left;
        display: block;
        margin-right: 1.16509%;
        width: 24.12618%;
        clear: left;
        border-bottom: 1px dashed #f2f2f2;
        padding-bottom: 1em; }
        .spot.spot--plan-descriptions .spot__copy dl dt:last-child {
          margin-right: 0; }
      .spot.spot--plan-descriptions .spot__copy dl dd {
        float: left;
        display: block;
        margin-right: 1.16509%;
        width: 74.70873%;
        margin-right: 0; }
        .spot.spot--plan-descriptions .spot__copy dl dd:last-child {
          margin-right: 0; }
        .spot.spot--plan-descriptions .spot__copy dl dd:not(:nth-child(2)) {
          margin-top: 1em; } }
  .spot.spot--plan-descriptions .spot__copy p {
    font-weight: 400;
    font-size: 16px;
    line-height: 1.8;
    color: #272727; }
    .spot.spot--plan-descriptions .spot__copy p strong {
      font-weight: 600; }
    .spot.spot--plan-descriptions .spot__copy p a {
      color: #5890e3; }
      .spot.spot--plan-descriptions .spot__copy p a:hover {
        color: #2c73dc; }
    .spot.spot--plan-descriptions .spot__copy p:not(:first-child) {
      margin-top: 1em; }
  .spot.spot--plan-descriptions .spot__copy img {
    max-width: 100%;
    height: auto;
    /** @include padding(2px 2px 2px 2px);**/
    border: 1px solid #b3b3b3; }
    .spot.spot--plan-descriptions .spot__copy img.float {
      float: left;
      margin-top: 1.5em;
      margin-right: 1em;
      margin-bottom: 1em; }
  .spot.spot--plan-descriptions .spot__copy small {
    font-size: 0.875em; }
  .spot.spot--plan-descriptions .spot__copy .responsive-iframe {
    height: 0;
    width: 100%;
    padding-top: 56.5%;
    position: relative;
    margin-top: 1em;
    margin-bottom: 1em; }
  .spot.spot--plan-descriptions .spot__copy iframe {
    height: 100%;
    width: 100%;
    position: absolute;
    top: 0;
    left: 0; }

.spot.spot--plan-descriptions .spot__cta {
  display: inline-block;
  margin-top: 1em;
  background: #5890e3;
  background: #5890e3;
  color: #fff;
  font-weight: bold;
  font-size: 14px;
  text-transform: uppercase;
  padding: 0.5em 1em;
  -webkit-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
  -moz-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
  transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
  line-height: normal;
  position: relative;
  left: 0;
  -webkit-transform: translateX(0%);
  -moz-transform: translateX(0%);
  -ms-transform: translateX(0%);
  -o-transform: translateX(0%);
  transform: translateX(0%);
  font-size: 20px;
  border-radius: 10px; }
  .spot.spot--plan-descriptions .spot__cta:hover {
    background: #6e9fe7;
    background: #6e9fe7; }
  .spot.spot--plan-descriptions .spot__cta:after {
    display: inline-block;
    content: "";
    font-family: 'glyphs';
    font-size: 18px;
    font-variant: normal;
    text-align: center;
    text-transform: none;
    font-style: normal;
    font-weight: normal;
    color: #fff;
    speak: none;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    position: relative;
    top: 3px;
    left: 4px; }
  .spot.spot--plan-descriptions .spot__cta:after {
    position: relative;
    top: 0px; }

.testimonial {
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  -o-transform: translateY(-50%);
  transform: translateY(-50%); }
  .testimonial .testimonial__inner {
    max-width: 80%;
    margin-left: auto;
    margin-right: auto;
    text-align: center; }
    .testimonial .testimonial__inner::after {
      clear: both;
      content: "";
      display: table; }
  .testimonial .testimonial__quote {
    font-size: 18px;
    position: relative; }
    .testimonial .testimonial__quote:before {
      display: inline-block;
      content: "";
      font-family: 'glyphs';
      font-size: 75px;
      font-variant: normal;
      text-align: center;
      text-transform: none;
      font-style: normal;
      font-weight: normal;
      color: #999;
      speak: none;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      -webkit-transform: rotate(180deg);
      -moz-transform: rotate(180deg);
      -ms-transform: rotate(180deg);
      -o-transform: rotate(180deg);
      transform: rotate(180deg);
      position: absolute;
      top: -0.5em;
      left: -0.25em;
      opacity: .2; }
    .testimonial .testimonial__quote:after {
      display: inline-block;
      content: "";
      font-family: 'glyphs';
      font-size: 75px;
      font-variant: normal;
      text-align: center;
      text-transform: none;
      font-style: normal;
      font-weight: normal;
      color: #999;
      speak: none;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      position: absolute;
      top: -0.5em;
      right: -0.25em;
      opacity: .2; }
  .testimonial .testimonial__meta {
    margin-top: 1em; }
  .testimonial .testimonial__author {
    font-style: italic;
    font-size: 0.75em; }
    .testimonial .testimonial__author:before {
      content: "\2014";
      padding-right: 0.25em; }
  .testimonial .testimonial__image {
    display: inline-block;
    max-width: 200px;
    height: auto;
    margin-top: 2em; }
  @media screen and (min-width: 46.875em) {
    .testimonial {
      height: auto;
      width: 100%; }
      .testimonial .testimonial__inner {
        height: auto;
        width: 750px; }
      .testimonial .testimonial__quote {
        font-size: 20px; } }

.components {
  display: none; }

.table:not(:last-child) {
  margin-bottom: 2.5em; }

.table.table--active .table__heading:after {
  -webkit-transform: rotate(180deg);
  -moz-transform: rotate(180deg);
  -ms-transform: rotate(180deg);
  -o-transform: rotate(180deg);
  transform: rotate(180deg); }

.table.table--active .table__table {
  max-height: 2500px; }

.table .table__inner {
  margin-right: auto;
  margin-left: auto;
  max-width: 90%; }
  .table .table__inner::after {
    clear: both;
    content: "";
    display: table; }
  @media screen and (min-width: 62.5em) {
    .table .table__inner {
      max-width: 1000px; } }

.table .table__heading {
  font-size: 1.5em;
  font-weight: 600;
  line-height: 1.2;
  color: #272727;
  color: #5890e3; }

.table .table__row {
  border-bottom: 1px dashed #d9d9d9; }

.table .table__cell {
  display: block;
  padding-top: 0.5em;
  padding-bottom: 0.5em; }
  .table .table__cell a {
    color: #5890e3; }
  .table .table__cell h1 {
    font-size: 1.5em;
    font-weight: 700;
    line-height: 1.2;
    color: #272727; }
    @media screen and (min-width: 46.875em) {
      .table .table__cell h1 {
        font-size: 2.5em; } }
  .table .table__cell h2 {
    font-size: 1.5em;
    font-weight: 600;
    line-height: 1.2;
    color: #272727; }
    .table .table__cell h2:not(:first-child) {
      margin-top: 2em; }
  .table .table__cell h3 {
    font-size: 1.25em;
    font-weight: 600; }
    .table .table__cell h3:not(:first-child) {
      margin-top: 1em; }
  .table .table__cell h4 {
    font-size: 1.25em;
    font-weight: 600; }
  .table .table__cell h5 {
    font-size: 1em;
    font-weight: 600;
    color: #272727; }
  .table .table__cell em {
    font-style: italic; }
  .table .table__cell ol:not(:first-child) {
    margin-top: 1em; }
  .table .table__cell ol li {
    font-weight: 400;
    font-size: 16px;
    line-height: 1.8;
    color: #272727;
    line-height: 1.8;
    margin-bottom: 1em;
    margin-left: 1.5em;
    list-style: decimal; }
    .table .table__cell ol li strong {
      font-weight: 600; }
    .table .table__cell ol li a {
      color: #5890e3; }
      .table .table__cell ol li a:hover {
        color: #2c73dc; }
  .table .table__cell ul li ol li ol li, .table .table__cell ul li ol li {
    font-weight: 400;
    font-size: 16px;
    line-height: 1.8;
    color: #272727;
    line-height: 1.8;
    margin-bottom: 1em;
    margin-left: 1.5em;
    list-style: decimal; }
    .table .table__cell ul li ol li ol li strong, .table .table__cell ul li ol li strong {
      font-weight: 600; }
    .table .table__cell ul li ol li ol li a, .table .table__cell ul li ol li a {
      color: #5890e3; }
      .table .table__cell ul li ol li ol li a:hover, .table .table__cell ul li ol li a:hover {
        color: #2c73dc; }
    .table .table__cell ul li ol li ol li:before, .table .table__cell ul li ol li:before {
      content: none; }
  .table .table__cell ul:not(:first-child) {
    margin-top: 1em; }
  .table .table__cell ul li, .table .table__cell ol ul li {
    font-weight: 400;
    font-size: 16px;
    line-height: 1.8;
    color: #272727;
    line-height: 1.8;
    margin-top: 0.5em;
    margin-left: 0.5em;
    list-style: none; }
    .table .table__cell ul li strong, .table .table__cell ol ul li strong {
      font-weight: 600; }
    .table .table__cell ul li a, .table .table__cell ol ul li a {
      color: #5890e3; }
      .table .table__cell ul li a:hover, .table .table__cell ol ul li a:hover {
        color: #2c73dc; }
    .table .table__cell ul li:before, .table .table__cell ol ul li:before {
      display: inline-block;
      content: "";
      font-family: 'glyphs';
      font-size: 6px;
      font-variant: normal;
      text-align: center;
      text-transform: none;
      font-style: normal;
      font-weight: normal;
      color: #5890e3;
      speak: none;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      position: relative;
      top: -3px;
      left: -1em; }
  .table .table__cell ul li ul li {
    font-weight: 400;
    font-size: 16px;
    line-height: 1.8;
    color: #272727;
    line-height: 1.8;
    margin-top: 0.3em;
    margin-left: 2em;
    list-style: square;
    padding: none; }
    .table .table__cell ul li ul li strong {
      font-weight: 600; }
    .table .table__cell ul li ul li a {
      color: #5890e3; }
      .table .table__cell ul li ul li a:hover {
        color: #2c73dc; }
    .table .table__cell ul li ul li:before {
      content: none; }
  .table .table__cell table {
    margin-top: 1em;
    height: auto;
    width: 100%; }
    .table .table__cell table.ltr td:first-child {
      font-weight: 600; }
    @media screen and (min-width: 46.875em) {
      .table .table__cell table.ltr td:first-child {
        height: auto;
        width: 25%; } }
    .table .table__cell table tr {
      border-bottom: 1px dashed #d9d9d9; }
      .table .table__cell table tr:first-child td:first-child {
        margin-top: 0; }
    .table .table__cell table td {
      display: block;
      font-weight: 400;
      font-size: 16px;
      line-height: 1.8;
      color: #272727; }
      .table .table__cell table td strong {
        font-weight: 600; }
      .table .table__cell table td a {
        color: #5890e3; }
        .table .table__cell table td a:hover {
          color: #2c73dc; }
      .table .table__cell table td:nth-child(odd) {
        margin-top: 1em; }
      .table .table__cell table td:nth-child(even) {
        padding-bottom: 1em; }
    @media screen and (min-width: 46.875em) {
      .table .table__cell table td {
        display: table-cell;
        vertical-align: top;
        padding-top: 1em;
        padding-bottom: 1em; } }
  .table .table__cell dl {
    margin-top: 1em;
    display: block; }
    .table .table__cell dl::after {
      clear: both;
      content: "";
      display: table; }
    .table .table__cell dl dt {
      font-weight: 400;
      font-size: 16px;
      line-height: 1.8;
      color: #272727;
      font-weight: 600;
      display: block; }
      .table .table__cell dl dt strong {
        font-weight: 600; }
      .table .table__cell dl dt a {
        color: #5890e3; }
        .table .table__cell dl dt a:hover {
          color: #2c73dc; }
      .table .table__cell dl dt:not(:first-child) {
        margin-top: 1em; }
    .table .table__cell dl dd {
      font-weight: 400;
      font-size: 16px;
      line-height: 1.8;
      color: #272727;
      display: block;
      border-bottom: 1px dashed #f2f2f2;
      padding-bottom: 1em; }
      .table .table__cell dl dd strong {
        font-weight: 600; }
      .table .table__cell dl dd a {
        color: #5890e3; }
        .table .table__cell dl dd a:hover {
          color: #2c73dc; }
    @media screen and (min-width: 46.875em) {
      .table .table__cell dl dt {
        float: left;
        display: block;
        margin-right: 1.16509%;
        width: 24.12618%;
        clear: left;
        border-bottom: 1px dashed #f2f2f2;
        padding-bottom: 1em; }
        .table .table__cell dl dt:last-child {
          margin-right: 0; }
      .table .table__cell dl dd {
        float: left;
        display: block;
        margin-right: 1.16509%;
        width: 74.70873%;
        margin-right: 0; }
        .table .table__cell dl dd:last-child {
          margin-right: 0; }
        .table .table__cell dl dd:not(:nth-child(2)) {
          margin-top: 1em; } }
  .table .table__cell p {
    font-weight: 400;
    font-size: 16px;
    line-height: 1.8;
    color: #272727; }
    .table .table__cell p strong {
      font-weight: 600; }
    .table .table__cell p a {
      color: #5890e3; }
      .table .table__cell p a:hover {
        color: #2c73dc; }
    .table .table__cell p:not(:first-child) {
      margin-top: 1em; }
  .table .table__cell img {
    max-width: 100%;
    height: auto;
    /** @include padding(2px 2px 2px 2px);**/
    border: 1px solid #b3b3b3; }
    .table .table__cell img.float {
      float: left;
      margin-top: 1.5em;
      margin-right: 1em;
      margin-bottom: 1em; }
  .table .table__cell small {
    font-size: 0.875em; }
  .table .table__cell .responsive-iframe {
    height: 0;
    width: 100%;
    padding-top: 56.5%;
    position: relative;
    margin-top: 1em;
    margin-bottom: 1em; }
  .table .table__cell iframe {
    height: 100%;
    width: 100%;
    position: absolute;
    top: 0;
    left: 0; }
  .table .table__cell .glyph {
    font-size: 2em; }
    .table .table__cell .glyph.glyph--check {
      color: #5890e3; }
    .table .table__cell .glyph.glyph--close {
      color: #999; }
  .table .table__cell:nth-child(1) {
    height: auto;
    width: 100%;
    padding-top: 1.5em;
    padding-bottom: 1em; }
  .table .table__cell:nth-child(2) {
    text-align: center;
    font-size: 0.875em; }
  .table .table__cell:nth-child(3) {
    text-align: center;
    font-size: 0.875em;
    border-left: 1px dashed #d9d9d9;
    background: #dc5323;
    background: rgba(220, 83, 35, 0.02); }

.table:last-child {
  padding-bottom: 2.5em; }

@media screen and (max-width: 46.8125em) {
  .table .table__cell:nth-child(2) {
    position: relative;
    float: left;
    height: auto;
    width: 50%;
    border-top: 1px dashed #d9d9d9; }
    .table .table__cell:nth-child(2) span {
      display: block;
      position: absolute;
      top: 50%;
      left: 50%;
      -webkit-transform: translateY(-60%);
      -moz-transform: translateY(-60%);
      -ms-transform: translateY(-60%);
      -o-transform: translateY(-60%);
      transform: translateY(-60%);
      height: auto;
      width: 50%; }
    .table .table__cell:nth-child(2) .glyph {
      position: absolute;
      top: 50%;
      left: 50%;
      -webkit-transform: translateY(-60%);
      -moz-transform: translateY(-60%);
      -ms-transform: translateY(-60%);
      -o-transform: translateY(-60%);
      transform: translateY(-60%); }
    .table .table__cell:nth-child(2):before {
      position: relative;
      left: -5px;
      content: url("/wp-content/themes/stockrover/media/images/icon-basic--grayscale.svg");
      display: inline-block;
      float: left; }
    .table .table__cell:nth-child(2):after {
      font-weight: 600;
      content: 'Basic';
      height: auto;
      width: 100px;
      display: inline-block;
      position: absolute;
      top: 10px;
      left: -5px; }
  .table .table__cell:nth-child(3) {
    position: relative;
    float: left;
    height: auto;
    width: 50%;
    border-top: 1px dashed #d9d9d9; }
    .table .table__cell:nth-child(3) span {
      display: block;
      position: absolute;
      top: 50%;
      left: 50%;
      -webkit-transform: translateY(-60%);
      -moz-transform: translateY(-60%);
      -ms-transform: translateY(-60%);
      -o-transform: translateY(-60%);
      transform: translateY(-60%);
      height: auto;
      width: 50%; }
    .table .table__cell:nth-child(3) .glyph {
      position: absolute;
      top: 50%;
      left: 50%;
      -webkit-transform: translateY(-60%);
      -moz-transform: translateY(-60%);
      -ms-transform: translateY(-60%);
      -o-transform: translateY(-60%);
      transform: translateY(-60%); }
    .table .table__cell:nth-child(3):before {
      position: relative;
      left: -5px;
      content: url("/wp-content/themes/stockrover/media/images/icon-premium--grayscale.svg");
      display: inline-block;
      float: left; }
    .table .table__cell:nth-child(3):after {
      font-weight: 600;
      content: 'Premium';
      height: auto;
      width: 100px;
      display: inline-block;
      position: absolute;
      top: 10px;
      left: -5px; } }

@media screen and (min-width: 46.875em) {
  .table:not(:last-child) {
    margin-bottom: 7.5em; }
  .table .table__row:nth-child(1) .table__cell {
    position: relative; }
    .table .table__row:nth-child(1) .table__cell:nth-child(2):before {
      display: inline-block;
      position: absolute;
      top: -100px;
      left: 50%;
      -webkit-transform: translateX(-50%);
      -moz-transform: translateX(-50%);
      -ms-transform: translateX(-50%);
      -o-transform: translateX(-50%);
      transform: translateX(-50%);
      content: url("/wp-content/themes/stockrover/media/images/icon-basic--grayscale.svg"); }
    .table .table__row:nth-child(1) .table__cell:nth-child(2):after {
      display: inline-block;
      position: absolute;
      top: -25px;
      left: 50%;
      -webkit-transform: translateX(-50%);
      -moz-transform: translateX(-50%);
      -ms-transform: translateX(-50%);
      -o-transform: translateX(-50%);
      transform: translateX(-50%);
      height: auto;
      width: 100px;
      content: 'Basic';
      font-weight: 600; }
    .table .table__row:nth-child(1) .table__cell:nth-child(3):before {
      display: inline-block;
      position: absolute;
      top: -100px;
      left: 50%;
      -webkit-transform: translateX(-50%);
      -moz-transform: translateX(-50%);
      -ms-transform: translateX(-50%);
      -o-transform: translateX(-50%);
      transform: translateX(-50%);
      content: url("/wp-content/themes/stockrover/media/images/icon-premium--grayscale.svg"); }
    .table .table__row:nth-child(1) .table__cell:nth-child(3):after {
      display: inline-block;
      position: absolute;
      top: -25px;
      left: 50%;
      -webkit-transform: translateX(-50%);
      -moz-transform: translateX(-50%);
      -ms-transform: translateX(-50%);
      -o-transform: translateX(-50%);
      transform: translateX(-50%);
      height: auto;
      width: 100px;
      content: 'Premium';
      font-weight: 600; }
  .table .table__cell {
    display: table-cell; }
    .table .table__cell:nth-child(1) {
      height: auto;
      width: 60%; }
    .table .table__cell:nth-child(2) {
      height: auto;
      width: 20%; }
      .table .table__cell:nth-child(2):before {
        display: none; }
      .table .table__cell:nth-child(2):after {
        display: none; }
    .table .table__cell:nth-child(3) {
      height: auto;
      width: 20%;
      background: #dc5323;
      background: rgba(220, 83, 35, 0.02); } }

@media screen and (min-width: 62.5em) {
  .table:last-child {
    padding-bottom: 5em; } }

.content {
  padding-top: 2.5em;
  padding-bottom: 2.5em; }
  .content .content__inner {
    margin-right: auto;
    margin-left: auto;
    max-width: 90%; }
    .content .content__inner::after {
      clear: both;
      content: "";
      display: table; }
    @media screen and (min-width: 62.5em) {
      .content .content__inner {
        max-width: 1000px; } }
  .content .content__heading {
    font-size: 1.5em;
    font-weight: 700;
    line-height: 1.2;
    color: #272727;
    border-bottom: 1px solid #999;
    padding-bottom: 0.5em;
    margin-bottom: 0.5em; }
    @media screen and (min-width: 46.875em) {
      .content .content__heading {
        font-size: 2.5em; } }
  .content .content__copy a {
    color: #5890e3; }
  .content .content__copy h1 {
    font-size: 1.5em;
    font-weight: 700;
    line-height: 1.2;
    color: #272727; }
    @media screen and (min-width: 46.875em) {
      .content .content__copy h1 {
        font-size: 2.5em; } }
  .content .content__copy h2 {
    font-size: 1.5em;
    font-weight: 600;
    line-height: 1.2;
    color: #272727; }
    .content .content__copy h2:not(:first-child) {
      margin-top: 2em; }
  .content .content__copy h3 {
    font-size: 1.25em;
    font-weight: 600; }
    .content .content__copy h3:not(:first-child) {
      margin-top: 1em; }
  .content .content__copy h4 {
    font-size: 1.25em;
    font-weight: 600; }
  .content .content__copy h5 {
    font-size: 1em;
    font-weight: 600;
    color: #272727; }
  .content .content__copy em {
    font-style: italic; }
  .content .content__copy ol:not(:first-child) {
    margin-top: 1em; }
  .content .content__copy ol li {
    font-weight: 400;
    font-size: 16px;
    line-height: 1.8;
    color: #272727;
    line-height: 1.8;
    margin-bottom: 1em;
    margin-left: 1.5em;
    list-style: decimal; }
    .content .content__copy ol li strong {
      font-weight: 600; }
    .content .content__copy ol li a {
      color: #5890e3; }
      .content .content__copy ol li a:hover {
        color: #2c73dc; }
  .content .content__copy ul li ol li ol li, .content .content__copy ul li ol li {
    font-weight: 400;
    font-size: 16px;
    line-height: 1.8;
    color: #272727;
    line-height: 1.8;
    margin-bottom: 1em;
    margin-left: 1.5em;
    list-style: decimal; }
    .content .content__copy ul li ol li ol li strong, .content .content__copy ul li ol li strong {
      font-weight: 600; }
    .content .content__copy ul li ol li ol li a, .content .content__copy ul li ol li a {
      color: #5890e3; }
      .content .content__copy ul li ol li ol li a:hover, .content .content__copy ul li ol li a:hover {
        color: #2c73dc; }
    .content .content__copy ul li ol li ol li:before, .content .content__copy ul li ol li:before {
      content: none; }
  .content .content__copy ul:not(:first-child) {
    margin-top: 1em; }
  .content .content__copy ul li, .content .content__copy ol ul li {
    font-weight: 400;
    font-size: 16px;
    line-height: 1.8;
    color: #272727;
    line-height: 1.8;
    margin-top: 0.5em;
    margin-left: 0.5em;
    list-style: none; }
    .content .content__copy ul li strong, .content .content__copy ol ul li strong {
      font-weight: 600; }
    .content .content__copy ul li a, .content .content__copy ol ul li a {
      color: #5890e3; }
      .content .content__copy ul li a:hover, .content .content__copy ol ul li a:hover {
        color: #2c73dc; }
    .content .content__copy ul li:before, .content .content__copy ol ul li:before {
      display: inline-block;
      content: "";
      font-family: 'glyphs';
      font-size: 6px;
      font-variant: normal;
      text-align: center;
      text-transform: none;
      font-style: normal;
      font-weight: normal;
      color: #5890e3;
      speak: none;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      position: relative;
      top: -3px;
      left: -1em; }
  .content .content__copy ul li ul li {
    font-weight: 400;
    font-size: 16px;
    line-height: 1.8;
    color: #272727;
    line-height: 1.8;
    margin-top: 0.3em;
    margin-left: 2em;
    list-style: square;
    padding: none; }
    .content .content__copy ul li ul li strong {
      font-weight: 600; }
    .content .content__copy ul li ul li a {
      color: #5890e3; }
      .content .content__copy ul li ul li a:hover {
        color: #2c73dc; }
    .content .content__copy ul li ul li:before {
      content: none; }
  .content .content__copy table {
    margin-top: 1em;
    height: auto;
    width: 100%; }
    .content .content__copy table.ltr td:first-child {
      font-weight: 600; }
    @media screen and (min-width: 46.875em) {
      .content .content__copy table.ltr td:first-child {
        height: auto;
        width: 25%; } }
    .content .content__copy table tr {
      border-bottom: 1px dashed #d9d9d9; }
      .content .content__copy table tr:first-child td:first-child {
        margin-top: 0; }
    .content .content__copy table td {
      display: block;
      font-weight: 400;
      font-size: 16px;
      line-height: 1.8;
      color: #272727; }
      .content .content__copy table td strong {
        font-weight: 600; }
      .content .content__copy table td a {
        color: #5890e3; }
        .content .content__copy table td a:hover {
          color: #2c73dc; }
      .content .content__copy table td:nth-child(odd) {
        margin-top: 1em; }
      .content .content__copy table td:nth-child(even) {
        padding-bottom: 1em; }
    @media screen and (min-width: 46.875em) {
      .content .content__copy table td {
        display: table-cell;
        vertical-align: top;
        padding-top: 1em;
        padding-bottom: 1em; } }
  .content .content__copy dl {
    margin-top: 1em;
    display: block; }
    .content .content__copy dl::after {
      clear: both;
      content: "";
      display: table; }
    .content .content__copy dl dt {
      font-weight: 400;
      font-size: 16px;
      line-height: 1.8;
      color: #272727;
      font-weight: 600;
      display: block; }
      .content .content__copy dl dt strong {
        font-weight: 600; }
      .content .content__copy dl dt a {
        color: #5890e3; }
        .content .content__copy dl dt a:hover {
          color: #2c73dc; }
      .content .content__copy dl dt:not(:first-child) {
        margin-top: 1em; }
    .content .content__copy dl dd {
      font-weight: 400;
      font-size: 16px;
      line-height: 1.8;
      color: #272727;
      display: block;
      border-bottom: 1px dashed #f2f2f2;
      padding-bottom: 1em; }
      .content .content__copy dl dd strong {
        font-weight: 600; }
      .content .content__copy dl dd a {
        color: #5890e3; }
        .content .content__copy dl dd a:hover {
          color: #2c73dc; }
    @media screen and (min-width: 46.875em) {
      .content .content__copy dl dt {
        float: left;
        display: block;
        margin-right: 1.16509%;
        width: 24.12618%;
        clear: left;
        border-bottom: 1px dashed #f2f2f2;
        padding-bottom: 1em; }
        .content .content__copy dl dt:last-child {
          margin-right: 0; }
      .content .content__copy dl dd {
        float: left;
        display: block;
        margin-right: 1.16509%;
        width: 74.70873%;
        margin-right: 0; }
        .content .content__copy dl dd:last-child {
          margin-right: 0; }
        .content .content__copy dl dd:not(:nth-child(2)) {
          margin-top: 1em; } }
  .content .content__copy p {
    font-weight: 400;
    font-size: 16px;
    line-height: 1.8;
    color: #272727; }
    .content .content__copy p strong {
      font-weight: 600; }
    .content .content__copy p a {
      color: #5890e3; }
      .content .content__copy p a:hover {
        color: #2c73dc; }
    .content .content__copy p:not(:first-child) {
      margin-top: 1em; }
  .content .content__copy img {
    max-width: 100%;
    height: auto;
    /** @include padding(2px 2px 2px 2px);**/
    border: 1px solid #b3b3b3; }
    .content .content__copy img.float {
      float: left;
      margin-top: 1.5em;
      margin-right: 1em;
      margin-bottom: 1em; }
  .content .content__copy small {
    font-size: 0.875em; }
  .content .content__copy .responsive-iframe {
    height: 0;
    width: 100%;
    padding-top: 56.5%;
    position: relative;
    margin-top: 1em;
    margin-bottom: 1em; }
  .content .content__copy iframe {
    height: 100%;
    width: 100%;
    position: absolute;
    top: 0;
    left: 0; }
  @media screen and (min-width: 62.5em) {
    .content {
      padding-top: 5em;
      padding-bottom: 5em; } }
  .content.content--tags .content__inner, .content.content--author .content__inner {
    position: relative; }
  .content.content--tags .content__cta, .content.content--author .content__cta {
    position: absolute;
    top: 0.65em;
    right: 0;
    color: #5890e3;
    font-size: 0.875em; }
  @media screen and (min-width: 46.875em) {
    .content.content--tags .content__cta, .content.content--author .content__cta {
      position: absolute;
      top: 2em;
      right: 0; } }

.progress .progress__list {
  text-align: center; }

.progress .progress__item {
  position: relative;
  background: #ddd;
  display: inline-block;
  border-radius: 50%;
  height: 50px;
  width: 50px;
  color: #fff;
  line-height: 50px;
  text-align: center;
  font-size: 18px;
  margin: 1em 0.5em; }
  .progress .progress__item:before {
    content: '';
    position: absolute;
    top: 50%;
    left: 100%;
    height: 1px;
    width: 100%;
    background: #ddd; }
  .progress .progress__item:last-child:before {
    display: none; }
  .progress .progress__item.progress__item--completed {
    background: #5890e3; }
    .progress .progress__item.progress__item--completed:before {
      background: #ddd; }
  .progress .progress__item.progress__item--active {
    -webkit-animation: oscilate 1.5s infinite;
    -moz-animation: oscilate 1.5s infinite;
    animation: oscilate 1.5s infinite; }
  .progress .progress__item.progress__item--check span:before {
    display: inline-block;
    content: "";
    font-family: 'glyphs';
    font-size: 30px;
    font-variant: normal;
    text-align: center;
    text-transform: none;
    font-style: normal;
    font-weight: normal;
    color: #fff;
    speak: none;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    position: absolute;
    left: 0;
    width: 100%; }

@media screen and (min-width: 62.5em) {
  .progress .progress__item {
    margin-right: 1em;
    margin-left: 1em; } }

.layout.layout--home {
  padding-bottom: 5em; }

@media screen and (min-width: 62.5em) {
  .layout.layout--sidebar {
    padding-bottom: 5em; }
    .layout.layout--sidebar .layout__inner {
      margin-right: auto;
      margin-left: auto;
      max-width: 90%; }
      .layout.layout--sidebar .layout__inner::after {
        clear: both;
        content: "";
        display: table; } }
    @media screen and (min-width: 62.5em) and (min-width: 62.5em) {
      .layout.layout--sidebar .layout__inner {
        max-width: 1000px; } }

@media screen and (min-width: 62.5em) {
    .layout.layout--sidebar .layout__region:nth-child(1) {
      float: left;
      display: block;
      margin-right: 1.16509%;
      width: 24.12618%; }
      .layout.layout--sidebar .layout__region:nth-child(1):last-child {
        margin-right: 0; }
    .layout.layout--sidebar .layout__region:nth-child(2) {
      margin-left: 4.21521%;
      float: left;
      display: block;
      margin-right: 1.16509%;
      width: 70.49352%; }
      .layout.layout--sidebar .layout__region:nth-child(2):last-child {
        margin-right: 0; } }

.layout.layout--basic .layout__region {
  padding-bottom: 5em; }

@media screen and (max-width: 62.4375em) {
  .layout.layout--basic .layout__inner {
    position: relative; }
  .layout.layout--basic .progress {
    position: absolute;
    top: 0;
    left: 50%;
    -webkit-transform: translateX(-50%);
    -moz-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    -o-transform: translateX(-50%);
    transform: translateX(-50%);
    width: 100%; } }

.layout.layout--register {
  background: #F7F9FA; }
  .layout.layout--register .content__cta {
    display: inline-block;
    margin-top: 1em;
    background: #5890e3;
    background: #5890e3;
    color: #fff;
    font-weight: bold;
    font-size: 14px;
    text-transform: uppercase;
    padding: 0.5em 1em;
    -webkit-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    -moz-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    line-height: normal;
    position: relative;
    left: 0;
    -webkit-transform: translateX(0%);
    -moz-transform: translateX(0%);
    -ms-transform: translateX(0%);
    -o-transform: translateX(0%);
    transform: translateX(0%);
    background: #5890e3;
    background: #5890e3; }
    .layout.layout--register .content__cta:hover {
      background: #6e9fe7;
      background: #6e9fe7; }
    .layout.layout--register .content__cta:hover {
      background: #6e9fe7;
      background: #6e9fe7; }
  @media screen and (max-width: 62.4375em) {
    .layout.layout--register .layout__inner {
      position: relative;
      padding-top: 2.5em; }
    .layout.layout--register .progress {
      position: absolute;
      top: 0;
      left: 50%;
      -webkit-transform: translateX(-50%);
      -moz-transform: translateX(-50%);
      -ms-transform: translateX(-50%);
      -o-transform: translateX(-50%);
      transform: translateX(-50%);
      width: 100%; } }
  @media screen and (min-width: 62.5em) {
    .layout.layout--register {
      padding-bottom: 10em; }
      .layout.layout--register .layout__inner {
        margin-right: auto;
        margin-left: auto;
        max-width: 90%; }
        .layout.layout--register .layout__inner::after {
          clear: both;
          content: "";
          display: table; } }
    @media screen and (min-width: 62.5em) and (min-width: 62.5em) {
      .layout.layout--register .layout__inner {
        max-width: 1000px; } }
  @media screen and (min-width: 62.5em) {
      .layout.layout--register .layout__region:nth-child(1) {
        float: left;
        display: block;
        margin-right: 1.16509%;
        width: 49.41745%; }
        .layout.layout--register .layout__region:nth-child(1):last-child {
          margin-right: 0; }
      .layout.layout--register .layout__region:nth-child(2) {
        padding-top: 5em;
        padding-bottom: 5em;
        margin-left: 4.21521%;
        float: left;
        display: block;
        margin-right: 1.16509%;
        width: 45.20224%; }
        .layout.layout--register .layout__region:nth-child(2):last-child {
          margin-right: 0; }
        .layout.layout--register .layout__region:nth-child(2) .content {
          padding-top: 2em; }
      .layout.layout--register .content {
        padding-top: 6em;
        padding-bottom: 0; }
        .layout.layout--register .content .content__heading {
          margin-bottom: 0.75em; } }

.layout.layout--split .content {
  padding-bottom: 0; }
  .layout.layout--split .content .content__inner {
    margin-right: 0;
    margin-left: 0; }
  .layout.layout--split .content + .form__fieldset {
    margin-top: 0; }

@media screen and (min-width: 62.5em) {
  .layout.layout--split .content {
    padding-top: 6em;
    padding-bottom: 0; }
    .layout.layout--split .content .content__heading {
      margin-bottom: 0.75em; }
  .layout.layout--split .layout__region:nth-child(1) {
    float: left;
    display: block;
    margin-right: 1.16509%;
    width: 100%; }
    .layout.layout--split .layout__region:nth-child(1):last-child {
      margin-right: 0; } }

.definitions .definitions__inner {
  margin-right: auto;
  margin-left: auto;
  max-width: 90%; }
  .definitions .definitions__inner::after {
    clear: both;
    content: "";
    display: table; }
  @media screen and (min-width: 62.5em) {
    .definitions .definitions__inner {
      max-width: 1000px; } }

.definitions .definitions__heading {
  font-size: 1.5em;
  font-weight: 600;
  line-height: 1.2;
  color: #272727;
  margin-top: 2em; }

.definitions .definitions__list {
  margin-top: 1em; }

.definitions .definitions__term {
  font-weight: 400;
  font-size: 16px;
  line-height: 1.8;
  color: #272727;
  font-weight: 600; }
  .definitions .definitions__term strong {
    font-weight: 600; }
  .definitions .definitions__term a {
    color: #5890e3; }
    .definitions .definitions__term a:hover {
      color: #2c73dc; }
  .definitions .definitions__term:not(:first-child) {
    margin-top: 1em; }

.definitions .definitions__definition {
  font-weight: 400;
  font-size: 16px;
  line-height: 1.8;
  color: #272727; }
  .definitions .definitions__definition strong {
    font-weight: 600; }
  .definitions .definitions__definition a {
    color: #5890e3; }
    .definitions .definitions__definition a:hover {
      color: #2c73dc; }

.comments-title {
  margin-top: 2rem; }

.comment-list .comment-author img {
  display: none; }

.comment-list .comment-metadata {
  font-size: 12px; }

.comment-list .comment {
  margin-top: 1em;
  padding-top: 1em; }
  .comment-list .comment:not(:first-child) {
    border-top: 1px dashed #f2f2f2; }
  .comment-list .comment.depth-2 {
    margin-left: 1em; }

.comment-list .comment-awaiting-moderation {
  display: none; }

.comment-list .comment-content {
  margin-top: 1em;
  margin-bottom: 1em; }

.comment-list .reply {
  font-size: 12px;
  text-align: right; }

.comment-respond {
  margin-top: 2em;
  padding-top: 2em;
  border-top: 1px solid #f2f2f2; }

.comment-form .comment-form-url {
  display: none; }

.comment-form .comment-notes {
  display: none; }

.comment-form label {
  color: #272727;
  font-size: 0.75em; }

.comment-form textarea {
  display: block;
  width: 100%;
  border: 1px solid #f2f2f2;
  border-bottom: 3px solid #f2f2f2;
  padding: 1em 0.5em;
  color: #272727;
  font-size: 0.875em;
  margin-top: 0.5em;
  -webkit-transition: all, 250ms, cubic-bezier(0.755, 0.05, 0.855, 0.06);
  -moz-transition: all, 250ms, cubic-bezier(0.755, 0.05, 0.855, 0.06);
  transition: all, 250ms, cubic-bezier(0.755, 0.05, 0.855, 0.06); }
  .comment-form textarea:focus {
    border-bottom: 3px solid #5890e3; }

.comment-form input[type=text], .comment-form input[type=email], .comment-form input[type=password] {
  height: auto;
  width: 100%;
  padding: 1em 0.5em;
  margin-top: 0.5em;
  color: #272727;
  font-size: 0.875em;
  -webkit-transition: all, 250ms, cubic-bezier(0.755, 0.05, 0.855, 0.06);
  -moz-transition: all, 250ms, cubic-bezier(0.755, 0.05, 0.855, 0.06);
  transition: all, 250ms, cubic-bezier(0.755, 0.05, 0.855, 0.06);
  border: 1px solid #f2f2f2;
  border-bottom: 3px solid #f2f2f2; }
  .comment-form input[type=text]::-webkit-input-placeholder, .comment-form input[type=email]::-webkit-input-placeholder, .comment-form input[type=password]::-webkit-input-placeholder {
    -webkit-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
    -moz-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
    transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955); }
  .comment-form input[type=text]::-moz-placeholder, .comment-form input[type=email]::-moz-placeholder, .comment-form input[type=password]::-moz-placeholder {
    -webkit-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
    -moz-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
    transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955); }
  .comment-form input[type=text]:-moz-placeholder, .comment-form input[type=email]:-moz-placeholder, .comment-form input[type=password]:-moz-placeholder {
    -webkit-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
    -moz-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
    transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955); }
  .comment-form input[type=text]:-ms-input-placeholder, .comment-form input[type=email]:-ms-input-placeholder, .comment-form input[type=password]:-ms-input-placeholder {
    -webkit-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
    -moz-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
    transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955); }
  .comment-form input[type=text] ~ .form__label, .comment-form input[type=email] ~ .form__label, .comment-form input[type=password] ~ .form__label {
    position: absolute;
    top: -1em;
    right: 0;
    display: block;
    color: #5890e3;
    -webkit-transition: opacity, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
    -moz-transition: opacity, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
    transition: opacity, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
    text-align: right;
    white-space: nowrap;
    font-size: 10px;
    opacity: 0; }
  .comment-form input[type=text]:focus, .comment-form input[type=email]:focus, .comment-form input[type=password]:focus {
    border-bottom: 3px solid #5890e3; }
    .comment-form input[type=text]:focus ~ .form__label, .comment-form input[type=email]:focus ~ .form__label, .comment-form input[type=password]:focus ~ .form__label {
      opacity: 1; }
    .comment-form input[type=text]:focus::-webkit-input-placeholder, .comment-form input[type=email]:focus::-webkit-input-placeholder, .comment-form input[type=password]:focus::-webkit-input-placeholder {
      color: #ffffff; }
    .comment-form input[type=text]:focus::-moz-placeholder, .comment-form input[type=email]:focus::-moz-placeholder, .comment-form input[type=password]:focus::-moz-placeholder {
      color: #ffffff; }
    .comment-form input[type=text]:focus:-moz-placeholder, .comment-form input[type=email]:focus:-moz-placeholder, .comment-form input[type=password]:focus:-moz-placeholder {
      color: #ffffff; }
    .comment-form input[type=text]:focus:-ms-input-placeholder, .comment-form input[type=email]:focus:-ms-input-placeholder, .comment-form input[type=password]:focus:-ms-input-placeholder {
      color: #ffffff; }
  .comment-form input[type=text]:valid ~ .form__label, .comment-form input[type=email]:valid ~ .form__label, .comment-form input[type=password]:valid ~ .form__label {
    opacity: 1; }

.comment-form input.submit {
  display: inline-block;
  margin-top: 1em;
  background: #5890e3;
  background: #5890e3;
  color: #fff;
  font-weight: bold;
  font-size: 14px;
  text-transform: uppercase;
  padding: 0.5em 1em;
  -webkit-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
  -moz-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
  transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
  line-height: normal;
  position: relative;
  left: 0;
  -webkit-transform: translateX(0%);
  -moz-transform: translateX(0%);
  -ms-transform: translateX(0%);
  -o-transform: translateX(0%);
  transform: translateX(0%);
  background: #5890e3;
  background: #5890e3;
  width: 100%; }
  .comment-form input.submit:hover {
    background: #6e9fe7;
    background: #6e9fe7; }
  .comment-form input.submit:after {
    display: inline-block;
    content: "";
    font-family: 'glyphs';
    font-size: 18px;
    font-variant: normal;
    text-align: center;
    text-transform: none;
    font-style: normal;
    font-weight: normal;
    color: #fff;
    speak: none;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    position: relative;
    top: 3px;
    left: 4px; }
  .comment-form input.submit:hover {
    background: #6e9fe7;
    background: #6e9fe7; }

.application.active--navigation {
  overflow: hidden; }
  .application.active--navigation .aside {
    -webkit-transform: translate3d(0%, 0, 0);
    -moz-transform: translate3d(0%, 0, 0);
    -ms-transform: translate3d(0%, 0, 0);
    -o-transform: translate3d(0%, 0, 0);
    transform: translate3d(0%, 0, 0); }
  .application.active--navigation .toggle.toggle--navigation .toggle__button:before {
    display: inline-block;
    content: "";
    font-family: 'glyphs';
    font-size: 40px;
    font-variant: normal;
    text-align: center;
    text-transform: none;
    font-style: normal;
    font-weight: normal;
    color: #232323;
    speak: none;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale; }

.application.active--search .toggle.toggle--search .toggle__button:before {
  display: inline-block;
  content: "";
  font-family: 'glyphs';
  font-size: 32px;
  font-variant: normal;
  text-align: center;
  text-transform: none;
  font-style: normal;
  font-weight: normal;
  color: #5890e3;
  speak: none;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

.application.active--search .form.form--search {
  -webkit-transform: translateY(0%);
  -moz-transform: translateY(0%);
  -ms-transform: translateY(0%);
  -o-transform: translateY(0%);
  transform: translateY(0%); }

.application.active--modal {
  overflow: hidden; }
  .application.active--modal .modal {
    visibility: visible;
    opacity: 1; }

@media screen and (max-width: 62.4375em) {
  .page-id-1712 .layout__inner {
    position: relative;
    padding-top: 2.5em; }
  .page-id-1712 .progress {
    position: absolute;
    top: 0;
    left: 50%;
    -webkit-transform: translateX(-50%);
    -moz-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    -o-transform: translateX(-50%);
    transform: translateX(-50%);
    width: 100%; } }

@media screen and (min-width: 62.5em) {
  .page-id-1712 .content .content__heading {
    float: left;
    display: block;
    margin-right: 1.16509%;
    width: 49.41745%; }
    .page-id-1712 .content .content__heading:last-child {
      margin-right: 0; }
  .page-id-1712 .content .content__copy {
    float: left;
    display: block;
    margin-right: 1.16509%;
    width: 100%; }
    .page-id-1712 .content .content__copy:last-child {
      margin-right: 0; }
  .page-id-1712 .progress {
    margin-left: 4.21521%;
    float: left;
    display: block;
    margin-right: 1.16509%;
    width: 45.20224%;
    margin-right: 0; }
    .page-id-1712 .progress:last-child {
      margin-right: 0; } }

.newspaperrover {
  margin-top: 1.5em; }

.indicessummary {
  margin-top: 1.5em;
  margin-bottom: 2.5em; }

.commoditiessummary {
  margin-top: 1.5em;
  margin-bottom: 2.5em; }

@media screen and (min-width: 46.875em) {
  .indicessummary {
    float: left;
    display: block;
    margin-right: 1.16509%;
    width: 49.41745%; }
    .indicessummary:last-child {
      margin-right: 0; }
  .commoditiessummary {
    float: left;
    display: block;
    margin-right: 1.16509%;
    width: 49.41745%;
    margin-right: 0; }
    .commoditiessummary:last-child {
      margin-right: 0; } }

.resources img {
  padding: 0;
  margin: 5px 0; }

.resources th {
  text-align: left;
  vertical-align: bottom;
  padding: 3em 0 .2em .1em;
  margin: 0;
  border-bottom: 1px solid grey; }

.resources td {
  text-align: left;
  vertical-align: bottom;
  margin: 0;
  padding: 0; }

.resources .resource_nav {
  width: 100%;
  position: relative;
  left: 0;
  transform: translateX(0%); }
  .resources .resource_nav a {
    color: white;
    font-weight: 300; }
  .resources .resource_nav .links {
    display: inline-block;
    margin-top: 1em;
    background: #5890e3;
    background: #5890e3;
    color: #fff;
    font-weight: bold;
    font-size: 14px;
    text-transform: uppercase;
    padding: 0.5em 1em;
    -webkit-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    -moz-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    line-height: normal;
    position: relative;
    left: 0;
    -webkit-transform: translateX(0%);
    -moz-transform: translateX(0%);
    -ms-transform: translateX(0%);
    -o-transform: translateX(0%);
    transform: translateX(0%);
    float: right; }
    .resources .resource_nav .links:hover {
      background: #6e9fe7;
      background: #6e9fe7; }
    .resources .resource_nav .links:after {
      display: inline-block;
      content: "";
      font-family: 'glyphs';
      font-size: 18px;
      font-variant: normal;
      text-align: center;
      text-transform: none;
      font-style: normal;
      font-weight: normal;
      color: #fff;
      speak: none;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      position: relative;
      top: 3px;
      left: 4px; }
  .resources .resource_nav .backlinks {
    float: left; }
  .resources .resource_nav .applinks {
    float: none;
    margin-left: 25%; }
  .resources .resource_nav .backlinks:before, .resources .resource_nav .applinks:before {
    display: inline-block;
    content: "";
    font-family: 'glyphs';
    font-size: 18px;
    font-variant: normal;
    text-align: center;
    text-transform: none;
    font-style: normal;
    font-weight: normal;
    color: #fff;
    speak: none;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    position: relative;
    top: 3px;
    right: 4px; }
  .resources .resource_nav .backlinks:after, .resources .resource_nav .applinks:after {
    content: none; }
  .resources .resource_nav .links, .resources .resource_nav .backlinks, .resources .resource_nav .applinks {
    display: inline-block;
    width: 46%;
    font: 14px Arial;
    background-color: #5890E3;
    margin-top: 1em;
    text-align: center;
    vertical-align: middle;
    padding: .5em 1em;
    text-transform: none;
    border-radius: 10px; }
  .resources .resource_nav .links:hover, .resources .resource_nav .backlinks:hover {
    background-color: #6E9FE7; }

.content .content__copy table.pricingTable td {
  display: table-cell; }

@media screen and (min-width: 46.875em) {
  .content .content__copy .pricingTable__right table.pricingTable tbody tr th {
    padding-top: 3em; } }

@media screen and (max-width: 46.8125em) {
  .content .content__copy .pricingTable__right table.pricingTable tbody tr th {
    padding-top: 3em; } }

@media screen and (min-width: 62.5em) {
  .content .content__copy .pricingTable__right table.pricingTable tbody tr th {
    padding-top: 0; } }

@media screen and (min-width: 46.875em) {
  .pricingTable__left {
    width: 95%;
    display: block;
    margin-left: 3%;
    margin-bottom: 1em; } }

@media screen and (min-width: 62.5em) {
  .pricingTable__left {
    width: 40%;
    float: left; } }

@media screen and (min-width: 46.875em) {
  .pricingTable__right {
    width: 95%;
    display: block;
    margin-right: 3%; } }

@media screen and (min-width: 62.5em) {
  .pricingTable__right {
    width: 40%;
    float: right; } }

table.pricingTable tbody tr td {
  text-align: center; }
  @media screen and (max-width: 46.8125em) {
    table.pricingTable tbody tr td {
      display: table-cell;
      margin: 0;
      padding: 1em 0 1em 0; } }
  @media screen and (min-width: 46.875em) {
    table.pricingTable tbody tr td {
      display: table-cell;
      margin: 0;
      padding: 1em 0 1em 0; } }

@media screen and (min-width: 46.875em) {
  .pricingDownload {
    margin-left: auto; } }

@media screen and (min-width: 62.5em) {
  .pricingDownload {
    margin-left: 34%; } }

@media screen and (max-width: 62.4375em) {
  .page-id-1712 .layout__inner {
    position: relative;
    padding-top: 2.5em; }
  .page-id-1712 .progress {
    position: absolute;
    top: 0;
    left: 50%;
    -webkit-transform: translateX(-50%);
    -moz-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    -o-transform: translateX(-50%);
    transform: translateX(-50%);
    width: 100%; } }

@media screen and (min-width: 62.5em) {
  .page-id-1712 .content .content__heading {
    float: left;
    display: block;
    margin-right: 1.16509%;
    width: 49.41745%; }
    .page-id-1712 .content .content__heading:last-child {
      margin-right: 0; }
  .page-id-1712 .content .content__copy {
    float: left;
    display: block;
    margin-right: 1.16509%;
    width: 100%; }
    .page-id-1712 .content .content__copy:last-child {
      margin-right: 0; }
  .page-id-1712 .progress {
    margin-left: 4.21521%;
    float: left;
    display: block;
    margin-right: 1.16509%;
    width: 45.20224%;
    margin-right: 0; }
    .page-id-1712 .progress:last-child {
      margin-right: 0; } }

.newspaperrover {
  margin-top: 1.5em; }

.indicessummary {
  margin-top: 1.5em;
  margin-bottom: 2.5em; }

.commoditiessummary {
  margin-top: 1.5em;
  margin-bottom: 2.5em; }

@media screen and (min-width: 46.875em) {
  .indicessummary {
    float: left;
    display: block;
    margin-right: 1.16509%;
    width: 49.41745%; }
    .indicessummary:last-child {
      margin-right: 0; }
  .commoditiessummary {
    float: left;
    display: block;
    margin-right: 1.16509%;
    width: 49.41745%;
    margin-right: 0; }
    .commoditiessummary:last-child {
      margin-right: 0; } }

.resources img {
  padding: 0;
  margin: 5px 0; }

.resources th {
  text-align: left;
  vertical-align: bottom;
  padding: 3em 0 .2em .1em;
  margin: 0;
  border-bottom: 1px solid grey; }

.resources td {
  text-align: left;
  vertical-align: bottom;
  margin: 0;
  padding: 0; }

.resources .resource_nav {
  width: 100%;
  position: relative;
  left: 0;
  transform: translateX(0%); }
  .resources .resource_nav a {
    color: white;
    font-weight: 300; }
  .resources .resource_nav .links {
    display: inline-block;
    margin-top: 1em;
    background: #5890e3;
    background: #5890e3;
    color: #fff;
    font-weight: bold;
    font-size: 14px;
    text-transform: uppercase;
    padding: 0.5em 1em;
    -webkit-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    -moz-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    line-height: normal;
    position: relative;
    left: 0;
    -webkit-transform: translateX(0%);
    -moz-transform: translateX(0%);
    -ms-transform: translateX(0%);
    -o-transform: translateX(0%);
    transform: translateX(0%);
    float: right; }
    .resources .resource_nav .links:hover {
      background: #6e9fe7;
      background: #6e9fe7; }
    .resources .resource_nav .links:after {
      display: inline-block;
      content: "";
      font-family: 'glyphs';
      font-size: 18px;
      font-variant: normal;
      text-align: center;
      text-transform: none;
      font-style: normal;
      font-weight: normal;
      color: #fff;
      speak: none;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      position: relative;
      top: 3px;
      left: 4px; }
  .resources .resource_nav .backlinks {
    float: left; }
  .resources .resource_nav .applinks {
    float: none;
    margin-left: 25%; }
  .resources .resource_nav .backlinks:before, .resources .resource_nav .applinks:before {
    display: inline-block;
    content: "";
    font-family: 'glyphs';
    font-size: 18px;
    font-variant: normal;
    text-align: center;
    text-transform: none;
    font-style: normal;
    font-weight: normal;
    color: #fff;
    speak: none;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    position: relative;
    top: 3px;
    right: 4px; }
  .resources .resource_nav .backlinks:after, .resources .resource_nav .applinks:after {
    content: none; }
  .resources .resource_nav .links, .resources .resource_nav .backlinks, .resources .resource_nav .applinks {
    display: inline-block;
    width: 46%;
    font: 14px Arial;
    background-color: #5890E3;
    margin-top: 1em;
    text-align: center;
    vertical-align: middle;
    padding: .5em 1em;
    text-transform: none; }
  .resources .resource_nav .links:hover, .resources .resource_nav .backlinks:hover {
    background-color: #6E9FE7; }

.content .content__copy table.pricingTable td {
  display: table-cell; }

@media screen and (min-width: 46.875em) {
  .content .content__copy .pricingTable__right table.pricingTable tbody tr th {
    padding-top: 3em; } }

@media screen and (max-width: 46.8125em) {
  .content .content__copy .pricingTable__right table.pricingTable tbody tr th {
    padding-top: 3em; } }

@media screen and (min-width: 62.5em) {
  .content .content__copy .pricingTable__right table.pricingTable tbody tr th {
    padding-top: 0; } }

@media screen and (min-width: 46.875em) {
  .pricingTable__left {
    width: 95%;
    display: block;
    margin-left: 3%;
    margin-bottom: 1em; } }

@media screen and (min-width: 62.5em) {
  .pricingTable__left {
    width: 40%;
    float: left; } }

@media screen and (min-width: 46.875em) {
  .pricingTable__right {
    width: 95%;
    display: block;
    margin-right: 3%; } }

@media screen and (min-width: 62.5em) {
  .pricingTable__right {
    width: 40%;
    float: right; } }

table.pricingTable tbody tr td {
  text-align: center; }
  @media screen and (max-width: 46.8125em) {
    table.pricingTable tbody tr td {
      display: table-cell;
      margin: 0;
      padding: 1em 0 1em 0; } }
  @media screen and (min-width: 46.875em) {
    table.pricingTable tbody tr td {
      display: table-cell;
      margin: 0;
      padding: 1em 0 1em 0; } }

@media screen and (min-width: 46.875em) {
  .pricingDownload {
    margin-left: auto; } }

@media screen and (min-width: 62.5em) {
  .pricingDownload {
    margin-left: 34%; } }

.footer .footer__inner .sm__icons ul {
  display: block;
  text-align: center;
  padding-bottom: 10px; }
  .footer .footer__inner .sm__icons ul li {
    display: inline-block;
    padding: 0 5px; }
    .footer .footer__inner .sm__icons ul li img {
      height: 20px; }

.hs-form-booleancheckbox li {
  content: none; }

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxsLmNzcyIsInNvdXJjZXMiOlsiYWxsLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL19ib3VyYm9uLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL3NldHRpbmdzL19wcmVmaXhlci5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9zZXR0aW5ncy9fcHgtdG8tZW0uc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvc2V0dGluZ3MvX2Fzc2V0LXBpcGVsaW5lLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fYXNzaWduLWlucHV0cy5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX2NvbnRhaW5zLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fY29udGFpbnMtZmFsc3kuc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19pcy1sZW5ndGguc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19pcy1saWdodC5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX2lzLW51bWJlci5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX2lzLXNpemUuc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19weC10by1lbS5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX3B4LXRvLXJlbS5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX3NoYWRlLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fc3RyaXAtdW5pdHMuc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL190aW50LnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fdW5wYWNrLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fbW9kdWxhci1zY2FsZS5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19jb252ZXJ0LXVuaXRzLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX2RpcmVjdGlvbmFsLXZhbHVlcy5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19mb250LXNvdXJjZS1kZWNsYXJhdGlvbi5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19ncmFkaWVudC1wb3NpdGlvbnMtcGFyc2VyLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX2xpbmVhci1hbmdsZS1wYXJzZXIuc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fbGluZWFyLWdyYWRpZW50LXBhcnNlci5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19saW5lYXItcG9zaXRpb25zLXBhcnNlci5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19saW5lYXItc2lkZS1jb3JuZXItcGFyc2VyLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX3JhZGlhbC1hcmctcGFyc2VyLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX3JhZGlhbC1wb3NpdGlvbnMtcGFyc2VyLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIuc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fcmVuZGVyLWdyYWRpZW50cy5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19zaGFwZS1zaXplLXN0cmlwcGVyLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX3N0ci10by1udW0uc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fYW5pbWF0aW9uLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2FwcGVhcmFuY2Uuc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fYmFja2ZhY2UtdmlzaWJpbGl0eS5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19iYWNrZ3JvdW5kLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2JhY2tncm91bmQtaW1hZ2Uuc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fYm9yZGVyLWltYWdlLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2NhbGMuc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fY29sdW1ucy5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19maWx0ZXIuc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fZmxleC1ib3guc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fZm9udC1mYWNlLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2ZvbnQtZmVhdHVyZS1zZXR0aW5ncy5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19oaWRwaS1tZWRpYS1xdWVyeS5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19oeXBoZW5zLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2ltYWdlLXJlbmRlcmluZy5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19rZXlmcmFtZXMuc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fbGluZWFyLWdyYWRpZW50LnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX3BlcnNwZWN0aXZlLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX3BsYWNlaG9sZGVyLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX3JhZGlhbC1ncmFkaWVudC5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19zZWxlY3Rpb24uc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fdGV4dC1kZWNvcmF0aW9uLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX3RyYW5zZm9ybS5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL190cmFuc2l0aW9uLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX3VzZXItc2VsZWN0LnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fYm9yZGVyLWNvbG9yLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fYm9yZGVyLXJhZGl1cy5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2JvcmRlci1zdHlsZS5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2JvcmRlci13aWR0aC5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2J1dHRvbnMuc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19jbGVhcmZpeC5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2VsbGlwc2lzLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fZm9udC1zdGFja3Muc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19oaWRlLXRleHQuc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19tYXJnaW4uc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19wYWRkaW5nLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fcG9zaXRpb24uc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19wcmVmaXhlci5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3JldGluYS1pbWFnZS5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3NpemUuc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL190ZXh0LWlucHV0cy5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3RpbWluZy1mdW5jdGlvbnMuc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL190cmlhbmdsZS5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3dvcmQtd3JhcC5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9fYm91cmJvbi1kZXByZWNhdGVkLXVwY29taW5nLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL19uZWF0LWhlbHBlcnMuc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19wcml2YXRlLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fbmV3LWJyZWFrcG9pbnQuc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvc2V0dGluZ3MvX2dyaWQuc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvc2V0dGluZ3MvX3Zpc3VhbC1ncmlkLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL3NldHRpbmdzL19kaXNhYmxlLXdhcm5pbmdzLnNjc3MiLCJfdmFyaWFibGVzLnNjc3MiLCJfYW5pbWF0aW9ucy5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL25lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9fbmVhdC5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL25lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9ncmlkL19wcml2YXRlLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2dyaWQvX2JveC1zaXppbmcuc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZ3JpZC9fb21lZ2Euc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZ3JpZC9fb3V0ZXItY29udGFpbmVyLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2dyaWQvX3NwYW4tY29sdW1ucy5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL25lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9ncmlkL19yb3cuc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZ3JpZC9fc2hpZnQuc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZ3JpZC9fcGFkLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2dyaWQvX2ZpbGwtcGFyZW50LnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2dyaWQvX21lZGlhLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2dyaWQvX3RvLWRlcHJlY2F0ZS5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL25lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9ncmlkL192aXN1YWwtZ3JpZC5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL25lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9ncmlkL19kaXNwbGF5LWNvbnRleHQuc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZ3JpZC9fZGlyZWN0aW9uLWNvbnRleHQuc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9kYWlzaG8vX2RhaXNoby5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL2RhaXNoby9oZWxwZXJzL19taXhpbnMuc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9kYWlzaG8vaGVscGVycy9taXhpbnMvX2JhY2tncm91bmQuc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9kYWlzaG8vaGVscGVycy9taXhpbnMvX2NsZWFyLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvZGFpc2hvL2hlbHBlcnMvbWl4aW5zL19jb250YWluZXIuc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9kYWlzaG8vaGVscGVycy9taXhpbnMvX2ZvbnQtZmFjZS5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL2RhaXNoby9oZWxwZXJzL21peGlucy9faGlkZS10ZXh0LnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvZGFpc2hvL2hlbHBlcnMvbWl4aW5zL19pY29uLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvZGFpc2hvL2hlbHBlcnMvbWl4aW5zL19sYXllci5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL2RhaXNoby9oZWxwZXJzL21peGlucy9fbWF4LXNpemUuc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9kYWlzaG8vaGVscGVycy9fcmVzZXRzLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvZGFpc2hvL3Jlc2V0L19ibG9jay5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL2RhaXNoby9yZXNldC9fZm9ybXMuc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9kYWlzaG8vcmVzZXQvX2hlYWRpbmdzLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvZGFpc2hvL3Jlc2V0L19pbmxpbmUuc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9kYWlzaG8vcmVzZXQvX2lucHV0cy5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL2RhaXNoby9yZXNldC9fbGlzdHMuc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9kYWlzaG8vcmVzZXQvX21lZGlhLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvZGFpc2hvL3Jlc2V0L19zaXRlLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvZGFpc2hvL3Jlc2V0L190YWJsZXMuc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9zbGljay1jYXJvdXNlbC9zbGljay9zbGljay5zY3NzIiwiX2dseXBocy5zY3NzIiwiLi4vLi4vZm9udHMvZ2x5cGhzL3ZhcmlhYmxlcy5zY3NzIiwiLi4vLi4vZm9udHMvZ2x5cGhzL3N0eWxlLnNjc3MiLCJfbWl4aW5zLnNjc3MiLCJjb21wb25lbnRzL19hcHBsaWNhdGlvbi5zY3NzIiwiY29tcG9uZW50cy9fbWFpbi5zY3NzIiwiY29tcG9uZW50cy9faGVhZGVyLnNjc3MiLCJjb21wb25lbnRzL19sb2dvLnNjc3MiLCJjb21wb25lbnRzL190b2dnbGUuc2NzcyIsImNvbXBvbmVudHMvX2FzaWRlLnNjc3MiLCJjb21wb25lbnRzL19uYXZpZ2F0aW9uLnNjc3MiLCJjb21wb25lbnRzL19zdWJuYXZpZ2F0aW9uLnNjc3MiLCJjb21wb25lbnRzL19mb3JtLnNjc3MiLCJjb21wb25lbnRzL19tZW51LnNjc3MiLCJjb21wb25lbnRzL19zdWJtZW51LnNjc3MiLCJjb21wb25lbnRzL19zdWJzdWJtZW51LnNjc3MiLCJjb21wb25lbnRzL19jYXJvdXNlbC5zY3NzIiwiY29tcG9uZW50cy9fc2xpZGUuc2NzcyIsImNvbXBvbmVudHMvX2NvbGxlY3Rpb24uc2NzcyIsImNvbXBvbmVudHMvX2Zvb3Rlci5zY3NzIiwiY29tcG9uZW50cy9fbW9kYWwuc2NzcyIsImNvbXBvbmVudHMvX3RpbGUuc2NzcyIsImNvbXBvbmVudHMvX3Nwb3Quc2NzcyIsImNvbXBvbmVudHMvX3Rlc3RpbW9uaWFsLnNjc3MiLCJjb21wb25lbnRzL19jb21wb25lbnRzLnNjc3MiLCJjb21wb25lbnRzL190YWJsZS5zY3NzIiwiY29tcG9uZW50cy9fY29udGVudC5zY3NzIiwiY29tcG9uZW50cy9fcHJvZ3Jlc3Muc2NzcyIsImNvbXBvbmVudHMvX2xheW91dC5zY3NzIiwiY29tcG9uZW50cy9fZGVmaW5pdGlvbnMuc2NzcyIsImNvbXBvbmVudHMvX2NvbW1lbnRzLnNjc3MiLCJjb21wb25lbnRzL19wYWdlLXN0YXRlcy5zY3NzIiwiY29tcG9uZW50cy9fcGFnZS1zcGVjaWZpYy1vdmVycmlkZXMuc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyJAaW1wb3J0IFwiLi4vLi4vZGVwZW5kZW5jaWVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib3VyYm9uXCI7XG5AaW1wb3J0IFwiLi4vLi4vZGVwZW5kZW5jaWVzL25lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9uZWF0LWhlbHBlcnNcIjtcbkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJhbmltYXRpb25zXCI7XG5AaW1wb3J0IFwiLi4vLi4vZGVwZW5kZW5jaWVzL25lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9uZWF0XCI7XG5AaW1wb3J0IFwiLi4vLi4vZGVwZW5kZW5jaWVzL2RhaXNoby9kYWlzaG9cIjtcbkBpbXBvcnQgXCIuLi8uLi9kZXBlbmRlbmNpZXMvc2xpY2stY2Fyb3VzZWwvc2xpY2svc2xpY2suc2Nzc1wiO1xuXG5AaW1wb3J0IFwiZ2x5cGhzXCI7XG5AaW1wb3J0IFwibWl4aW5zXCI7XG5cbkBpbXBvcnQgXCJjb21wb25lbnRzL2FwcGxpY2F0aW9uXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9tYWluXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9oZWFkZXJcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL2xvZ29cIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL3RvZ2dsZVwiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvYXNpZGVcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL25hdmlnYXRpb25cIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL3N1Ym5hdmlnYXRpb25cIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL2Zvcm1cIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL21lbnVcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL3N1Ym1lbnVcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL3N1YnN1Ym1lbnVcIjtcblxuQGltcG9ydCBcImNvbXBvbmVudHMvY2Fyb3VzZWxcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL3NsaWRlXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9jb2xsZWN0aW9uXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9mb290ZXJcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL21vZGFsXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy90aWxlXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9zcG90XCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy90ZXN0aW1vbmlhbFwiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvY29tcG9uZW50c1wiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvdGFibGVcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL2NvbnRlbnRcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL3Byb2dyZXNzXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9sYXlvdXRcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL2RlZmluaXRpb25zXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9jb21tZW50c1wiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvcGFnZS1zdGF0ZXNcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL3BhZ2Utc3BlY2lmaWMtb3ZlcnJpZGVzXCI7XG4iLCIvLyBCb3VyYm9uIDQuMi42XG4vLyBodHRwOi8vYm91cmJvbi5pb1xuLy8gQ29weXJpZ2h0IDIwMTEtMjAxNSB0aG91Z2h0Ym90LCBpbmMuXG4vLyBNSVQgTGljZW5zZVxuXG5AaW1wb3J0IFwic2V0dGluZ3MvcHJlZml4ZXJcIjtcbkBpbXBvcnQgXCJzZXR0aW5ncy9weC10by1lbVwiO1xuQGltcG9ydCBcInNldHRpbmdzL2Fzc2V0LXBpcGVsaW5lXCI7XG5cbkBpbXBvcnQgXCJmdW5jdGlvbnMvYXNzaWduLWlucHV0c1wiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9jb250YWluc1wiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9jb250YWlucy1mYWxzeVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9pcy1sZW5ndGhcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvaXMtbGlnaHRcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvaXMtbnVtYmVyXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2lzLXNpemVcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvcHgtdG8tZW1cIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvcHgtdG8tcmVtXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3NoYWRlXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3N0cmlwLXVuaXRzXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3RpbnRcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3VucGFja1wiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9tb2R1bGFyLXNjYWxlXCI7XG5cbkBpbXBvcnQgXCJoZWxwZXJzL2NvbnZlcnQtdW5pdHNcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2RpcmVjdGlvbmFsLXZhbHVlc1wiO1xuQGltcG9ydCBcImhlbHBlcnMvZm9udC1zb3VyY2UtZGVjbGFyYXRpb25cIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2dyYWRpZW50LXBvc2l0aW9ucy1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2xpbmVhci1hbmdsZS1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2xpbmVhci1ncmFkaWVudC1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9saW5lYXItc2lkZS1jb3JuZXItcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9yYWRpYWwtYXJnLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvcmFkaWFsLXBvc2l0aW9ucy1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3JhZGlhbC1ncmFkaWVudC1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3JlbmRlci1ncmFkaWVudHNcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3NoYXBlLXNpemUtc3RyaXBwZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3N0ci10by1udW1cIjtcblxuQGltcG9ydCBcImNzczMvYW5pbWF0aW9uXCI7XG5AaW1wb3J0IFwiY3NzMy9hcHBlYXJhbmNlXCI7XG5AaW1wb3J0IFwiY3NzMy9iYWNrZmFjZS12aXNpYmlsaXR5XCI7XG5AaW1wb3J0IFwiY3NzMy9iYWNrZ3JvdW5kXCI7XG5AaW1wb3J0IFwiY3NzMy9iYWNrZ3JvdW5kLWltYWdlXCI7XG5AaW1wb3J0IFwiY3NzMy9ib3JkZXItaW1hZ2VcIjtcbkBpbXBvcnQgXCJjc3MzL2NhbGNcIjtcbkBpbXBvcnQgXCJjc3MzL2NvbHVtbnNcIjtcbkBpbXBvcnQgXCJjc3MzL2ZpbHRlclwiO1xuQGltcG9ydCBcImNzczMvZmxleC1ib3hcIjtcbkBpbXBvcnQgXCJjc3MzL2ZvbnQtZmFjZVwiO1xuQGltcG9ydCBcImNzczMvZm9udC1mZWF0dXJlLXNldHRpbmdzXCI7XG5AaW1wb3J0IFwiY3NzMy9oaWRwaS1tZWRpYS1xdWVyeVwiO1xuQGltcG9ydCBcImNzczMvaHlwaGVuc1wiO1xuQGltcG9ydCBcImNzczMvaW1hZ2UtcmVuZGVyaW5nXCI7XG5AaW1wb3J0IFwiY3NzMy9rZXlmcmFtZXNcIjtcbkBpbXBvcnQgXCJjc3MzL2xpbmVhci1ncmFkaWVudFwiO1xuQGltcG9ydCBcImNzczMvcGVyc3BlY3RpdmVcIjtcbkBpbXBvcnQgXCJjc3MzL3BsYWNlaG9sZGVyXCI7XG5AaW1wb3J0IFwiY3NzMy9yYWRpYWwtZ3JhZGllbnRcIjtcbkBpbXBvcnQgXCJjc3MzL3NlbGVjdGlvblwiO1xuQGltcG9ydCBcImNzczMvdGV4dC1kZWNvcmF0aW9uXCI7XG5AaW1wb3J0IFwiY3NzMy90cmFuc2Zvcm1cIjtcbkBpbXBvcnQgXCJjc3MzL3RyYW5zaXRpb25cIjtcbkBpbXBvcnQgXCJjc3MzL3VzZXItc2VsZWN0XCI7XG5cbkBpbXBvcnQgXCJhZGRvbnMvYm9yZGVyLWNvbG9yXCI7XG5AaW1wb3J0IFwiYWRkb25zL2JvcmRlci1yYWRpdXNcIjtcbkBpbXBvcnQgXCJhZGRvbnMvYm9yZGVyLXN0eWxlXCI7XG5AaW1wb3J0IFwiYWRkb25zL2JvcmRlci13aWR0aFwiO1xuQGltcG9ydCBcImFkZG9ucy9idXR0b25zXCI7XG5AaW1wb3J0IFwiYWRkb25zL2NsZWFyZml4XCI7XG5AaW1wb3J0IFwiYWRkb25zL2VsbGlwc2lzXCI7XG5AaW1wb3J0IFwiYWRkb25zL2ZvbnQtc3RhY2tzXCI7XG5AaW1wb3J0IFwiYWRkb25zL2hpZGUtdGV4dFwiO1xuQGltcG9ydCBcImFkZG9ucy9tYXJnaW5cIjtcbkBpbXBvcnQgXCJhZGRvbnMvcGFkZGluZ1wiO1xuQGltcG9ydCBcImFkZG9ucy9wb3NpdGlvblwiO1xuQGltcG9ydCBcImFkZG9ucy9wcmVmaXhlclwiO1xuQGltcG9ydCBcImFkZG9ucy9yZXRpbmEtaW1hZ2VcIjtcbkBpbXBvcnQgXCJhZGRvbnMvc2l6ZVwiO1xuQGltcG9ydCBcImFkZG9ucy90ZXh0LWlucHV0c1wiO1xuQGltcG9ydCBcImFkZG9ucy90aW1pbmctZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiYWRkb25zL3RyaWFuZ2xlXCI7XG5AaW1wb3J0IFwiYWRkb25zL3dvcmQtd3JhcFwiO1xuXG5AaW1wb3J0IFwiYm91cmJvbi1kZXByZWNhdGVkLXVwY29taW5nXCI7XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBHbG9iYWwgdmFyaWFibGVzIHRvIGVuYWJsZSBvciBkaXNhYmxlIHZlbmRvciBwcmVmaXhlc1xuXG4kcHJlZml4LWZvci13ZWJraXQ6ICAgIHRydWUgIWRlZmF1bHQ7XG4kcHJlZml4LWZvci1tb3ppbGxhOiAgIHRydWUgIWRlZmF1bHQ7XG4kcHJlZml4LWZvci1taWNyb3NvZnQ6IHRydWUgIWRlZmF1bHQ7XG4kcHJlZml4LWZvci1vcGVyYTogICAgIHRydWUgIWRlZmF1bHQ7XG4kcHJlZml4LWZvci1zcGVjOiAgICAgIHRydWUgIWRlZmF1bHQ7XG4iLCIkZW0tYmFzZTogMTZweCAhZGVmYXVsdDtcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEEgZ2xvYmFsIHNldHRpbmcgdG8gZW5hYmxlIG9yIGRpc2FibGUgdGhlIGAkYXNzZXQtcGlwZWxpbmVgIHZhcmlhYmxlIGZvciBhbGwgZnVuY3Rpb25zIHRoYXQgYWNjZXB0IGl0LlxuLy8vXG4vLy8gQHR5cGUgQm9vbFxuXG4kYXNzZXQtcGlwZWxpbmU6IGZhbHNlICFkZWZhdWx0O1xuIiwiQGZ1bmN0aW9uIGFzc2lnbi1pbnB1dHMoJGlucHV0cywgJHBzZXVkbzogbnVsbCkge1xuICAkbGlzdDogKCk7XG5cbiAgQGVhY2ggJGlucHV0IGluICRpbnB1dHMge1xuICAgICRpbnB1dDogdW5xdW90ZSgkaW5wdXQpO1xuICAgICRpbnB1dDogaWYoJHBzZXVkbywgJGlucHV0ICsgXCI6XCIgKyAkcHNldWRvLCAkaW5wdXQpO1xuICAgICRsaXN0OiBhcHBlbmQoJGxpc3QsICRpbnB1dCwgY29tbWEpO1xuICB9XG5cbiAgQHJldHVybiAkbGlzdDtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENoZWNrcyBpZiBhIGxpc3QgY29udGFpbnMgYSB2YWx1ZShzKS5cbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkbGlzdFxuLy8vICAgVGhlIGxpc3QgdG8gY2hlY2sgYWdhaW5zdC5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHZhbHVlc1xuLy8vICAgQSBzaW5nbGUgdmFsdWUgb3IgbGlzdCBvZiB2YWx1ZXMgdG8gY2hlY2sgZm9yLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICBjb250YWlucygkbGlzdCwgJHZhbHVlKVxuLy8vXG4vLy8gQHJldHVybiB7Qm9vbH1cblxuQGZ1bmN0aW9uIGNvbnRhaW5zKCRsaXN0LCAkdmFsdWVzLi4uKSB7XG4gIEBlYWNoICR2YWx1ZSBpbiAkdmFsdWVzIHtcbiAgICBAaWYgdHlwZS1vZihpbmRleCgkbGlzdCwgJHZhbHVlKSkgIT0gXCJudW1iZXJcIiB7XG4gICAgICBAcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gdHJ1ZTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENoZWNrcyBpZiBhIGxpc3QgZG9lcyBub3QgY29udGFpbnMgYSB2YWx1ZS5cbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkbGlzdFxuLy8vICAgVGhlIGxpc3QgdG8gY2hlY2sgYWdhaW5zdC5cbi8vL1xuLy8vIEByZXR1cm4ge0Jvb2x9XG5cbkBmdW5jdGlvbiBjb250YWlucy1mYWxzeSgkbGlzdCkge1xuICBAZWFjaCAkaXRlbSBpbiAkbGlzdCB7XG4gICAgQGlmIG5vdCAkaXRlbSB7XG4gICAgICBAcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiBmYWxzZTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENoZWNrcyBmb3IgYSB2YWxpZCBDU1MgbGVuZ3RoLlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR2YWx1ZVxuXG5AZnVuY3Rpb24gaXMtbGVuZ3RoKCR2YWx1ZSkge1xuICBAcmV0dXJuIHR5cGUtb2YoJHZhbHVlKSAhPSBcIm51bGxcIiBhbmQgKHN0ci1zbGljZSgkdmFsdWUgKyBcIlwiLCAxLCA0KSA9PSBcImNhbGNcIlxuICAgICAgIG9yIGluZGV4KGF1dG8gaW5oZXJpdCBpbml0aWFsIDAsICR2YWx1ZSlcbiAgICAgICBvciAodHlwZS1vZigkdmFsdWUpID09IFwibnVtYmVyXCIgYW5kIG5vdCh1bml0bGVzcygkdmFsdWUpKSkpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvZ3JhbWF0aWNhbGx5IGRldGVybWluZXMgd2hldGhlciBhIGNvbG9yIGlzIGxpZ2h0IG9yIGRhcmsuXG4vLy9cbi8vLyBAbGluayBodHRwOi8vcm9ib3RzLnRob3VnaHRib3QuY29tL2Nsb3Nlci1sb29rLWNvbG9yLWxpZ2h0bmVzc1xuLy8vXG4vLy8gQHBhcmFtIHtDb2xvciAoSGV4KX0gJGNvbG9yXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIGlzLWxpZ2h0KCRjb2xvcilcbi8vL1xuLy8vIEByZXR1cm4ge0Jvb2x9XG5cbkBmdW5jdGlvbiBpcy1saWdodCgkaGV4LWNvbG9yKSB7XG4gICQtbG9jYWwtcmVkOiByZWQocmdiYSgkaGV4LWNvbG9yLCAxKSk7XG4gICQtbG9jYWwtZ3JlZW46IGdyZWVuKHJnYmEoJGhleC1jb2xvciwgMSkpO1xuICAkLWxvY2FsLWJsdWU6IGJsdWUocmdiYSgkaGV4LWNvbG9yLCAxKSk7XG4gICQtbG9jYWwtbGlnaHRuZXNzOiAoJC1sb2NhbC1yZWQgKiAwLjIxMjYgKyAkLWxvY2FsLWdyZWVuICogMC43MTUyICsgJC1sb2NhbC1ibHVlICogMC4wNzIyKSAvIDI1NTtcblxuICBAcmV0dXJuICQtbG9jYWwtbGlnaHRuZXNzID4gMC42O1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ2hlY2tzIGZvciBhIHZhbGlkIG51bWJlci5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWVcbi8vL1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gY29udGFpbnNcblxuQGZ1bmN0aW9uIGlzLW51bWJlcigkdmFsdWUpIHtcbiAgQHJldHVybiBjb250YWlucyhcIjBcIiBcIjFcIiBcIjJcIiBcIjNcIiBcIjRcIiBcIjVcIiBcIjZcIiBcIjdcIiBcIjhcIiBcIjlcIiAwIDEgMiAzIDQgNSA2IDcgOCA5LCAkdmFsdWUpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ2hlY2tzIGZvciBhIHZhbGlkIENTUyBzaXplLlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR2YWx1ZVxuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb250YWluc1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gaXMtbGVuZ3RoXG5cbkBmdW5jdGlvbiBpcy1zaXplKCR2YWx1ZSkge1xuICBAcmV0dXJuIGlzLWxlbmd0aCgkdmFsdWUpXG4gICAgICAgICAgb3IgY29udGFpbnMoXCJmaWxsXCIgXCJmaXQtY29udGVudFwiIFwibWluLWNvbnRlbnRcIiBcIm1heC1jb250ZW50XCIsICR2YWx1ZSk7XG59XG4iLCIvLyBDb252ZXJ0IHBpeGVscyB0byBlbXNcbi8vIGVnLiBmb3IgYSByZWxhdGlvbmFsIHZhbHVlIG9mIDEycHggd3JpdGUgZW0oMTIpIHdoZW4gdGhlIHBhcmVudCBpcyAxNnB4XG4vLyBpZiB0aGUgcGFyZW50IGlzIGFub3RoZXIgdmFsdWUgc2F5IDI0cHggd3JpdGUgZW0oMTIsIDI0KVxuXG5AZnVuY3Rpb24gZW0oJHB4dmFsLCAkYmFzZTogJGVtLWJhc2UpIHtcbiAgQGlmIG5vdCB1bml0bGVzcygkcHh2YWwpIHtcbiAgICAkcHh2YWw6IHN0cmlwLXVuaXRzKCRweHZhbCk7XG4gIH1cbiAgQGlmIG5vdCB1bml0bGVzcygkYmFzZSkge1xuICAgICRiYXNlOiBzdHJpcC11bml0cygkYmFzZSk7XG4gIH1cbiAgQHJldHVybiAoJHB4dmFsIC8gJGJhc2UpICogMWVtO1xufVxuIiwiLy8gQ29udmVydCBwaXhlbHMgdG8gcmVtc1xuLy8gZWcuIGZvciBhIHJlbGF0aW9uYWwgdmFsdWUgb2YgMTJweCB3cml0ZSByZW0oMTIpXG4vLyBBc3N1bWVzICRlbS1iYXNlIGlzIHRoZSBmb250LXNpemUgb2YgPGh0bWw+XG5cbkBmdW5jdGlvbiByZW0oJHB4dmFsKSB7XG4gIEBpZiBub3QgdW5pdGxlc3MoJHB4dmFsKSB7XG4gICAgJHB4dmFsOiBzdHJpcC11bml0cygkcHh2YWwpO1xuICB9XG5cbiAgJGJhc2U6ICRlbS1iYXNlO1xuICBAaWYgbm90IHVuaXRsZXNzKCRiYXNlKSB7XG4gICAgJGJhc2U6IHN0cmlwLXVuaXRzKCRiYXNlKTtcbiAgfVxuICBAcmV0dXJuICgkcHh2YWwgLyAkYmFzZSkgKiAxcmVtO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gTWl4ZXMgYSBjb2xvciB3aXRoIGJsYWNrLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlciAoUGVyY2VudGFnZSl9ICRwZXJjZW50XG4vLy8gICBUaGUgYW1vdW50IG9mIGJsYWNrIHRvIGJlIG1peGVkIGluLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6IHNoYWRlKCNmZmJiNTIsIDYwJSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICM2NjRhMjA7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmV0dXJuIHtDb2xvcn1cblxuQGZ1bmN0aW9uIHNoYWRlKCRjb2xvciwgJHBlcmNlbnQpIHtcbiAgQHJldHVybiBtaXgoIzAwMCwgJGNvbG9yLCAkcGVyY2VudCk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBTdHJpcHMgdGhlIHVuaXQgZnJvbSBhIG51bWJlci5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyIChXaXRoIFVuaXQpfSAkdmFsdWVcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgJGRpbWVuc2lvbjogc3RyaXAtdW5pdHMoMTBlbSk7XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAkZGltZW5zaW9uOiAxMDtcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlciAoVW5pdGxlc3MpfVxuXG5AZnVuY3Rpb24gc3RyaXAtdW5pdHMoJHZhbHVlKSB7XG4gIEByZXR1cm4gKCR2YWx1ZSAvICgkdmFsdWUgKiAwICsgMSkpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gTWl4ZXMgYSBjb2xvciB3aXRoIHdoaXRlLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlciAoUGVyY2VudGFnZSl9ICRwZXJjZW50XG4vLy8gICBUaGUgYW1vdW50IG9mIHdoaXRlIHRvIGJlIG1peGVkIGluLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6IHRpbnQoIzZlY2FhNiwgNDAlKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2E4ZGZjOTtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXR1cm4ge0NvbG9yfVxuXG5AZnVuY3Rpb24gdGludCgkY29sb3IsICRwZXJjZW50KSB7XG4gIEByZXR1cm4gbWl4KCNmZmYsICRjb2xvciwgJHBlcmNlbnQpO1xufVxuIiwiLy8gUmV0dXJuIHZlbmRvci1wcmVmaXhlZCBwcm9wZXJ0eSBuYW1lcyBpZiBhcHByb3ByaWF0ZVxuLy8gRXhhbXBsZTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygodHJhbnNmb3JtLCBjb2xvciwgYmFja2dyb3VuZCksIG1veikgLT4gLW1vei10cmFuc2Zvcm0sIGNvbG9yLCBiYWNrZ3JvdW5kXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5AZnVuY3Rpb24gdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcHMsICR2ZW5kb3I6IGZhbHNlKSB7XG4gICRuZXctcHJvcHM6ICgpO1xuXG4gIEBlYWNoICRwcm9wIGluICRwcm9wcyB7XG4gICAgJG5ldy1wcm9wczogYXBwZW5kKCRuZXctcHJvcHMsIHRyYW5zaXRpb24tcHJvcGVydHktbmFtZSgkcHJvcCwgJHZlbmRvciksIGNvbW1hKTtcbiAgfVxuXG4gIEByZXR1cm4gJG5ldy1wcm9wcztcbn1cblxuQGZ1bmN0aW9uIHRyYW5zaXRpb24tcHJvcGVydHktbmFtZSgkcHJvcCwgJHZlbmRvcjogZmFsc2UpIHtcbiAgLy8gcHV0IG90aGVyIHByb3BlcnRpZXMgdGhhdCBuZWVkIHRvIGJlIHByZWZpeGVkIGhlcmUgYXN3ZWxsXG4gIEBpZiAkdmVuZG9yIGFuZCAkcHJvcCA9PSB0cmFuc2Zvcm0ge1xuICAgIEByZXR1cm4gdW5xdW90ZSgnLScrJHZlbmRvcisnLScrJHByb3ApO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuICRwcm9wO1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDb252ZXJ0cyBzaG9ydGhhbmQgdG8gdGhlIDQtdmFsdWUgc3ludGF4LlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkc2hvcnRoYW5kXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgbWFyZ2luOiB1bnBhY2soMWVtIDJlbSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIG1hcmdpbjogMWVtIDJlbSAxZW0gMmVtO1xuLy8vICAgfVxuXG5AZnVuY3Rpb24gdW5wYWNrKCRzaG9ydGhhbmQpIHtcbiAgQGlmIGxlbmd0aCgkc2hvcnRoYW5kKSA9PSAxIHtcbiAgICBAcmV0dXJuIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAxKTtcbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHNob3J0aGFuZCkgPT0gMiB7XG4gICAgQHJldHVybiBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDIpIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMik7XG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRzaG9ydGhhbmQpID09IDMge1xuICAgIEByZXR1cm4gbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAyKSBudGgoJHNob3J0aGFuZCwgMykgbnRoKCRzaG9ydGhhbmQsIDIpO1xuICB9IEBlbHNlIHtcbiAgICBAcmV0dXJuICRzaG9ydGhhbmQ7XG4gIH1cbn1cbiIsIi8vIFNjYWxpbmcgVmFyaWFibGVzXG4kZ29sZGVuOiAgICAgICAgICAgMS42MTg7XG4kbWlub3Itc2Vjb25kOiAgICAgMS4wNjc7XG4kbWFqb3Itc2Vjb25kOiAgICAgMS4xMjU7XG4kbWlub3ItdGhpcmQ6ICAgICAgMS4yO1xuJG1ham9yLXRoaXJkOiAgICAgIDEuMjU7XG4kcGVyZmVjdC1mb3VydGg6ICAgMS4zMzM7XG4kYXVnbWVudGVkLWZvdXJ0aDogMS40MTQ7XG4kcGVyZmVjdC1maWZ0aDogICAgMS41O1xuJG1pbm9yLXNpeHRoOiAgICAgIDEuNjtcbiRtYWpvci1zaXh0aDogICAgICAxLjY2NztcbiRtaW5vci1zZXZlbnRoOiAgICAxLjc3ODtcbiRtYWpvci1zZXZlbnRoOiAgICAxLjg3NTtcbiRvY3RhdmU6ICAgICAgICAgICAyO1xuJG1ham9yLXRlbnRoOiAgICAgIDIuNTtcbiRtYWpvci1lbGV2ZW50aDogICAyLjY2NztcbiRtYWpvci10d2VsZnRoOiAgICAzO1xuJGRvdWJsZS1vY3RhdmU6ICAgIDQ7XG5cbiRtb2R1bGFyLXNjYWxlLXJhdGlvOiAkcGVyZmVjdC1mb3VydGggIWRlZmF1bHQ7XG4kbW9kdWxhci1zY2FsZS1iYXNlOiBlbSgkZW0tYmFzZSkgIWRlZmF1bHQ7XG5cbkBmdW5jdGlvbiBtb2R1bGFyLXNjYWxlKCRpbmNyZW1lbnQsICR2YWx1ZTogJG1vZHVsYXItc2NhbGUtYmFzZSwgJHJhdGlvOiAkbW9kdWxhci1zY2FsZS1yYXRpbykge1xuICAkdjE6IG50aCgkdmFsdWUsIDEpO1xuICAkdjI6IG50aCgkdmFsdWUsIGxlbmd0aCgkdmFsdWUpKTtcbiAgJHZhbHVlOiAkdjE7XG5cbiAgLy8gc2NhbGUgJHYyIHRvIGp1c3QgYWJvdmUgJHYxXG4gIEB3aGlsZSAkdjIgPiAkdjEge1xuICAgICR2MjogKCR2MiAvICRyYXRpbyk7IC8vIHdpbGwgYmUgb2ZmLWJ5LTFcbiAgfVxuICBAd2hpbGUgJHYyIDwgJHYxIHtcbiAgICAkdjI6ICgkdjIgKiAkcmF0aW8pOyAvLyB3aWxsIGZpeCBvZmYtYnktMVxuICB9XG5cbiAgLy8gY2hlY2sgQUZURVIgc2NhbGluZyAkdjIgdG8gcHJldmVudCBkb3VibGUtY291bnRpbmcgY29ybmVyLWNhc2VcbiAgJGRvdWJsZS1zdHJhbmRlZDogJHYyID4gJHYxO1xuXG4gIEBpZiAkaW5jcmVtZW50ID4gMCB7XG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkaW5jcmVtZW50IHtcbiAgICAgIEBpZiAkZG91YmxlLXN0cmFuZGVkIGFuZCAoJHYxICogJHJhdGlvKSA+ICR2MiB7XG4gICAgICAgICR2YWx1ZTogJHYyO1xuICAgICAgICAkdjI6ICgkdjIgKiAkcmF0aW8pO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICR2MTogKCR2MSAqICRyYXRpbyk7XG4gICAgICAgICR2YWx1ZTogJHYxO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpZiAkaW5jcmVtZW50IDwgMCB7XG4gICAgLy8gYWRqdXN0ICR2MiB0byBqdXN0IGJlbG93ICR2MVxuICAgIEBpZiAkZG91YmxlLXN0cmFuZGVkIHtcbiAgICAgICR2MjogKCR2MiAvICRyYXRpbyk7XG4gICAgfVxuXG4gICAgQGZvciAkaSBmcm9tICRpbmNyZW1lbnQgdGhyb3VnaCAtMSB7XG4gICAgICBAaWYgJGRvdWJsZS1zdHJhbmRlZCBhbmQgKCR2MSAvICRyYXRpbykgPCAkdjIge1xuICAgICAgICAkdmFsdWU6ICR2MjtcbiAgICAgICAgJHYyOiAoJHYyIC8gJHJhdGlvKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAkdjE6ICgkdjEgLyAkcmF0aW8pO1xuICAgICAgICAkdmFsdWU6ICR2MTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIEhlbHBlciBmdW5jdGlvbiBmb3Igc3RyLXRvLW51bSBmbi5cbi8vIFNvdXJjZTogaHR0cDovL3Nhc3NtZWlzdGVyLmNvbS9naXN0Lzk2NDc0MDhcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbkBmdW5jdGlvbiBfY29udmVydC11bml0cygkbnVtYmVyLCAkdW5pdCkge1xuICAkc3RyaW5nczogXCJweFwiLCBcImNtXCIsIFwibW1cIiwgXCIlXCIsIFwiY2hcIiwgXCJwaWNhXCIsIFwiaW5cIiwgXCJlbVwiLCBcInJlbVwiLCBcInB0XCIsIFwicGNcIiwgXCJleFwiLCBcInZ3XCIsIFwidmhcIiwgXCJ2bWluXCIsIFwidm1heFwiLCBcImRlZ1wiLCBcInJhZFwiLCBcImdyYWRcIiwgXCJ0dXJuXCI7XG4gICR1bml0czogICAxcHgsIDFjbSwgMW1tLCAxJSwgMWNoLCAxcGljYSwgMWluLCAxZW0sIDFyZW0sIDFwdCwgMXBjLCAxZXgsIDF2dywgMXZoLCAxdm1pbiwgMXZtYXgsIDFkZWcsIDFyYWQsIDFncmFkLCAxdHVybjtcbiAgJGluZGV4OiBpbmRleCgkc3RyaW5ncywgJHVuaXQpO1xuXG4gIEBpZiBub3QgJGluZGV4IHtcbiAgICBAd2FybiBcIlVua25vd24gdW5pdCBgI3skdW5pdH1gLlwiO1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkbnVtYmVyKSAhPSBcIm51bWJlclwiIHtcbiAgICBAd2FybiBcImAjeyRudW1iZXJ9IGlzIG5vdCBhIG51bWJlcmBcIjtcbiAgICBAcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgQHJldHVybiAkbnVtYmVyICogbnRoKCR1bml0cywgJGluZGV4KTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIERpcmVjdGlvbmFsLXByb3BlcnR5IG1peGlucyBhcmUgc2hvcnRoYW5kcyBmb3Igd3JpdGluZyBwcm9wZXJ0aWVzIGxpa2UgdGhlIGZvbGxvd2luZ1xuLy8vXG4vLy8gQGlnbm9yZSBZb3UgY2FuIGFsc28gdXNlIGBmYWxzZWAgaW5zdGVhZCBvZiBgbnVsbGAuXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIGRpcmVjdGlvbmFsIHZhbHVlc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci1zdHlsZShkb3R0ZWQgbnVsbCk7XG4vLy8gICAgIEBpbmNsdWRlIG1hcmdpbihudWxsIDAgMTBweCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IGRvdHRlZDtcbi8vLyAgICAgYm9yZGVyLXRvcC1zdHlsZTogZG90dGVkO1xuLy8vICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuLy8vICAgICBtYXJnaW4tbGVmdDogMDtcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb250YWlucy1mYWxzeVxuLy8vXG4vLy8gQHJldHVybiB7TGlzdH1cblxuQGZ1bmN0aW9uIGNvbGxhcHNlLWRpcmVjdGlvbmFscygkdmFscykge1xuICAkb3V0cHV0OiBudWxsO1xuXG4gICRhOiBudGgoJHZhbHMsIDEpO1xuICAkYjogaWYobGVuZ3RoKCR2YWxzKSA8IDIsICRhLCBudGgoJHZhbHMsIDIpKTtcbiAgJGM6IGlmKGxlbmd0aCgkdmFscykgPCAzLCAkYSwgbnRoKCR2YWxzLCAzKSk7XG4gICRkOiBpZihsZW5ndGgoJHZhbHMpIDwgMiwgJGEsIG50aCgkdmFscywgaWYobGVuZ3RoKCR2YWxzKSA8IDQsIDIsIDQpKSk7XG5cbiAgQGlmICRhID09IDAgeyAkYTogMDsgfVxuICBAaWYgJGIgPT0gMCB7ICRiOiAwOyB9XG4gIEBpZiAkYyA9PSAwIHsgJGM6IDA7IH1cbiAgQGlmICRkID09IDAgeyAkZDogMDsgfVxuXG4gIEBpZiAkYSA9PSAkYiBhbmQgJGEgPT0gJGMgYW5kICRhID09ICRkIHsgJG91dHB1dDogJGE7ICAgICAgICAgIH1cbiAgQGVsc2UgaWYgJGEgPT0gJGMgYW5kICRiID09ICRkICAgICAgICAgeyAkb3V0cHV0OiAkYSAkYjsgICAgICAgfVxuICBAZWxzZSBpZiAkYiA9PSAkZCAgICAgICAgICAgICAgICAgICAgICB7ICRvdXRwdXQ6ICRhICRiICRjOyAgICB9XG4gIEBlbHNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJG91dHB1dDogJGEgJGIgJGMgJGQ7IH1cblxuICBAcmV0dXJuICRvdXRwdXQ7XG59XG5cbi8vLyBPdXRwdXQgZGlyZWN0aW9uYWwgcHJvcGVydGllcywgZm9yIGluc3RhbmNlIGBtYXJnaW5gLlxuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHByZVxuLy8vICAgUHJlZml4IHRvIHVzZVxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc3VmXG4vLy8gICBTdWZmaXggdG8gdXNlXG4vLy8gQHBhcmFtIHtMaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiB2YWx1ZXNcbi8vL1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gY29sbGFwc2UtZGlyZWN0aW9uYWxzXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb250YWlucy1mYWxzeVxuXG5AbWl4aW4gZGlyZWN0aW9uYWwtcHJvcGVydHkoJHByZSwgJHN1ZiwgJHZhbHMpIHtcbiAgLy8gUHJvcGVydHkgTmFtZXNcbiAgJHRvcDogICAgJHByZSArIFwiLXRvcFwiICAgICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcbiAgJGJvdHRvbTogJHByZSArIFwiLWJvdHRvbVwiICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcbiAgJGxlZnQ6ICAgJHByZSArIFwiLWxlZnRcIiAgICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcbiAgJHJpZ2h0OiAgJHByZSArIFwiLXJpZ2h0XCIgICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcbiAgJGFsbDogICAgJHByZSArICAgICAgICAgICAgIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XG5cbiAgJHZhbHM6IGNvbGxhcHNlLWRpcmVjdGlvbmFscygkdmFscyk7XG5cbiAgQGlmIGNvbnRhaW5zLWZhbHN5KCR2YWxzKSB7XG4gICAgQGlmIG50aCgkdmFscywgMSkgeyAjeyR0b3B9OiBudGgoJHZhbHMsIDEpOyB9XG5cbiAgICBAaWYgbGVuZ3RoKCR2YWxzKSA9PSAxIHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDEpIHsgI3skcmlnaHR9OiBudGgoJHZhbHMsIDEpOyB9XG4gICAgfSBAZWxzZSB7XG4gICAgICBAaWYgbnRoKCR2YWxzLCAyKSB7ICN7JHJpZ2h0fTogbnRoKCR2YWxzLCAyKTsgfVxuICAgIH1cblxuICAgIEBpZiBsZW5ndGgoJHZhbHMpID09IDIge1xuICAgICAgQGlmIG50aCgkdmFscywgMSkgeyAjeyRib3R0b219OiBudGgoJHZhbHMsIDEpOyB9XG4gICAgICBAaWYgbnRoKCR2YWxzLCAyKSB7ICN7JGxlZnR9OiAgIG50aCgkdmFscywgMik7IH1cbiAgICB9IEBlbHNlIGlmIGxlbmd0aCgkdmFscykgPT0gMyB7XG4gICAgICBAaWYgbnRoKCR2YWxzLCAzKSB7ICN7JGJvdHRvbX06IG50aCgkdmFscywgMyk7IH1cbiAgICAgIEBpZiBudGgoJHZhbHMsIDIpIHsgI3skbGVmdH06ICAgbnRoKCR2YWxzLCAyKTsgfVxuICAgIH0gQGVsc2UgaWYgbGVuZ3RoKCR2YWxzKSA9PSA0IHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDMpIHsgI3skYm90dG9tfTogbnRoKCR2YWxzLCAzKTsgfVxuICAgICAgQGlmIG50aCgkdmFscywgNCkgeyAjeyRsZWZ0fTogICBudGgoJHZhbHMsIDQpOyB9XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICAjeyRhbGx9OiAkdmFscztcbiAgfVxufVxuIiwiLy8gVXNlZCBmb3IgY3JlYXRpbmcgdGhlIHNvdXJjZSBzdHJpbmcgZm9yIGZvbnRzIHVzaW5nIEBmb250LWZhY2Vcbi8vIFJlZmVyZW5jZTogaHR0cDovL2dvby5nbC9SdTFiS1BcblxuQGZ1bmN0aW9uIGZvbnQtdXJsLXByZWZpeGVyKCRhc3NldC1waXBlbGluZSkge1xuICBAaWYgJGFzc2V0LXBpcGVsaW5lID09IHRydWUge1xuICAgIEByZXR1cm4gZm9udC11cmw7XG4gIH0gQGVsc2Uge1xuICAgIEByZXR1cm4gdXJsO1xuICB9XG59XG5cbkBmdW5jdGlvbiBmb250LXNvdXJjZS1kZWNsYXJhdGlvbihcbiAgJGZvbnQtZmFtaWx5LFxuICAkZmlsZS1wYXRoLFxuICAkYXNzZXQtcGlwZWxpbmUsXG4gICRmaWxlLWZvcm1hdHMsXG4gICRmb250LXVybCkge1xuXG4gICRzcmM6ICgpO1xuXG4gICRmb3JtYXRzLW1hcDogKFxuICAgIGVvdDogICBcIiN7JGZpbGUtcGF0aH0uZW90PyNpZWZpeFwiIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLFxuICAgIHdvZmYyOiBcIiN7JGZpbGUtcGF0aH0ud29mZjJcIiBmb3JtYXQoXCJ3b2ZmMlwiKSxcbiAgICB3b2ZmOiAgXCIjeyRmaWxlLXBhdGh9LndvZmZcIiBmb3JtYXQoXCJ3b2ZmXCIpLFxuICAgIHR0ZjogICBcIiN7JGZpbGUtcGF0aH0udHRmXCIgZm9ybWF0KFwidHJ1ZXR5cGVcIiksXG4gICAgc3ZnOiAgIFwiI3skZmlsZS1wYXRofS5zdmcjI3skZm9udC1mYW1pbHl9XCIgZm9ybWF0KFwic3ZnXCIpXG4gICk7XG5cbiAgQGVhY2ggJGtleSwgJHZhbHVlcyBpbiAkZm9ybWF0cy1tYXAge1xuICAgIEBpZiBjb250YWlucygkZmlsZS1mb3JtYXRzLCAka2V5KSB7XG4gICAgICAkZmlsZS1wYXRoOiBudGgoJHZhbHVlcywgMSk7XG4gICAgICAkZm9udC1mb3JtYXQ6IG50aCgkdmFsdWVzLCAyKTtcblxuICAgICAgQGlmICRhc3NldC1waXBlbGluZSA9PSB0cnVlIHtcbiAgICAgICAgJHNyYzogYXBwZW5kKCRzcmMsIGZvbnQtdXJsKCRmaWxlLXBhdGgpICRmb250LWZvcm1hdCwgY29tbWEpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICRzcmM6IGFwcGVuZCgkc3JjLCB1cmwoJGZpbGUtcGF0aCkgJGZvbnQtZm9ybWF0LCBjb21tYSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkc3JjO1xufVxuIiwiQGZ1bmN0aW9uIF9ncmFkaWVudC1wb3NpdGlvbnMtcGFyc2VyKCRncmFkaWVudC10eXBlLCAkZ3JhZGllbnQtcG9zaXRpb25zKSB7XG4gIEBpZiAkZ3JhZGllbnQtcG9zaXRpb25zXG4gIGFuZCAoJGdyYWRpZW50LXR5cGUgPT0gbGluZWFyKVxuICBhbmQgKHR5cGUtb2YoJGdyYWRpZW50LXBvc2l0aW9ucykgIT0gY29sb3IpIHtcbiAgICAkZ3JhZGllbnQtcG9zaXRpb25zOiBfbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIoJGdyYWRpZW50LXBvc2l0aW9ucyk7XG4gIH1cbiAgQGVsc2UgaWYgJGdyYWRpZW50LXBvc2l0aW9uc1xuICBhbmQgKCRncmFkaWVudC10eXBlID09IHJhZGlhbClcbiAgYW5kICh0eXBlLW9mKCRncmFkaWVudC1wb3NpdGlvbnMpICE9IGNvbG9yKSB7XG4gICAgJGdyYWRpZW50LXBvc2l0aW9uczogX3JhZGlhbC1wb3NpdGlvbnMtcGFyc2VyKCRncmFkaWVudC1wb3NpdGlvbnMpO1xuICB9XG4gIEByZXR1cm4gJGdyYWRpZW50LXBvc2l0aW9ucztcbn1cbiIsIi8vIFByaXZhdGUgZnVuY3Rpb24gZm9yIGxpbmVhci1ncmFkaWVudC1wYXJzZXJcbkBmdW5jdGlvbiBfbGluZWFyLWFuZ2xlLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgpIHtcbiAgJG9mZnNldDogbnVsbDtcbiAgJHVuaXQtc2hvcnQ6ICBzdHItc2xpY2UoJGZpcnN0LXZhbCwgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSAtIDIsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xuICAkdW5pdC1sb25nOiAgIHN0ci1zbGljZSgkZmlyc3QtdmFsLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpIC0gMywgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XG5cbiAgQGlmICgkdW5pdC1sb25nID09IFwiZ3JhZFwiKSBvclxuICAgICAgKCR1bml0LWxvbmcgPT0gXCJ0dXJuXCIpIHtcbiAgICAkb2Zmc2V0OiBpZigkdW5pdC1sb25nID09IFwiZ3JhZFwiLCAtMTAwZ3JhZCAqIDMsIC0wLjc1dHVybik7XG4gIH1cblxuICBAZWxzZSBpZiAoJHVuaXQtc2hvcnQgPT0gXCJkZWdcIikgb3JcbiAgICAgICAgICAgKCR1bml0LXNob3J0ID09IFwicmFkXCIpIHtcbiAgICAkb2Zmc2V0OiBpZigkdW5pdC1zaG9ydCA9PSBcImRlZ1wiLCAtOTAgKiAzLCAxLjZyYWQpO1xuICB9XG5cbiAgQGlmICRvZmZzZXQge1xuICAgICRudW06IF9zdHItdG8tbnVtKCRmaXJzdC12YWwpO1xuXG4gICAgQHJldHVybiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJHByZWZpeCArICgkb2Zmc2V0IC0gJG51bSkgKyAkc3VmZml4LFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxufVxuIiwiQGZ1bmN0aW9uIF9saW5lYXItZ3JhZGllbnQtcGFyc2VyKCRpbWFnZSkge1xuICAkaW1hZ2U6IHVucXVvdGUoJGltYWdlKTtcbiAgJGdyYWRpZW50czogKCk7XG4gICRzdGFydDogc3RyLWluZGV4KCRpbWFnZSwgXCIoXCIpO1xuICAkZW5kOiBzdHItaW5kZXgoJGltYWdlLCBcIixcIik7XG4gICRmaXJzdC12YWw6IHN0ci1zbGljZSgkaW1hZ2UsICRzdGFydCArIDEsICRlbmQgLSAxKTtcblxuICAkcHJlZml4OiBzdHItc2xpY2UoJGltYWdlLCAxLCAkc3RhcnQpO1xuICAkc3VmZml4OiBzdHItc2xpY2UoJGltYWdlLCAkZW5kLCBzdHItbGVuZ3RoKCRpbWFnZSkpO1xuXG4gICRoYXMtbXVsdGlwbGUtdmFsczogc3RyLWluZGV4KCRmaXJzdC12YWwsIFwiIFwiKTtcbiAgJGhhcy1zaW5nbGUtcG9zaXRpb246IHVucXVvdGUoX3Bvc2l0aW9uLWZsaXBwZXIoJGZpcnN0LXZhbCkgKyBcIlwiKTtcbiAgJGhhcy1hbmdsZTogaXMtbnVtYmVyKHN0ci1zbGljZSgkZmlyc3QtdmFsLCAxLCAxKSk7XG5cbiAgQGlmICRoYXMtbXVsdGlwbGUtdmFscyB7XG4gICAgJGdyYWRpZW50czogX2xpbmVhci1zaWRlLWNvcm5lci1wYXJzZXIoJGltYWdlLCAkZmlyc3QtdmFsLCAkcHJlZml4LCAkc3VmZml4LCAkaGFzLW11bHRpcGxlLXZhbHMpO1xuICB9XG5cbiAgQGVsc2UgaWYgJGhhcy1zaW5nbGUtcG9zaXRpb24gIT0gXCJcIiB7XG4gICAgJHBvczogdW5xdW90ZSgkaGFzLXNpbmdsZS1wb3NpdGlvbiArIFwiXCIpO1xuXG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRpbWFnZSxcbiAgICAgIHNwZWMtaW1hZ2U6ICRwcmVmaXggKyBcInRvIFwiICsgJHBvcyArICRzdWZmaXhcbiAgICApO1xuICB9XG5cbiAgQGVsc2UgaWYgJGhhcy1hbmdsZSB7XG4gICAgLy8gUm90YXRlIGRlZ3JlZSBmb3Igd2Via2l0XG4gICAgJGdyYWRpZW50czogX2xpbmVhci1hbmdsZS1wYXJzZXIoJGltYWdlLCAkZmlyc3QtdmFsLCAkcHJlZml4LCAkc3VmZml4KTtcbiAgfVxuXG4gIEBlbHNlIHtcbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxuXG4gIEByZXR1cm4gJGdyYWRpZW50cztcbn1cbiIsIkBmdW5jdGlvbiBfbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIoJHBvcykge1xuICAkdHlwZTogdHlwZS1vZihudGgoJHBvcywgMSkpO1xuICAkc3BlYzogbnVsbDtcbiAgJGRlZ3JlZTogbnVsbDtcbiAgJHNpZGU6IG51bGw7XG4gICRjb3JuZXI6IG51bGw7XG4gICRsZW5ndGg6IGxlbmd0aCgkcG9zKTtcbiAgLy8gUGFyc2UgU2lkZSBhbmQgY29ybmVyIHBvc2l0aW9uc1xuICBAaWYgKCRsZW5ndGggPiAxKSB7XG4gICAgQGlmIG50aCgkcG9zLCAxKSA9PSBcInRvXCIgeyAvLyBOZXdlciBzeW50YXhcbiAgICAgICRzaWRlOiBudGgoJHBvcywgMik7XG5cbiAgICAgIEBpZiAkbGVuZ3RoID09IDIgeyAvLyBlZy4gdG8gdG9wXG4gICAgICAgIC8vIFN3YXAgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5XG4gICAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKG50aCgkcG9zLCAyKSk7XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiAkbGVuZ3RoID09IDMgeyAvLyBlZy4gdG8gdG9wIGxlZnRcbiAgICAgICAgJGNvcm5lcjogbnRoKCRwb3MsIDMpO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSBpZiAkbGVuZ3RoID09IDIgeyAvLyBPbGRlciBzeW50YXggKFwidG9wIGxlZnRcIilcbiAgICAgICRzaWRlOiBfcG9zaXRpb24tZmxpcHBlcihudGgoJHBvcywgMSkpO1xuICAgICAgJGNvcm5lcjogX3Bvc2l0aW9uLWZsaXBwZXIobnRoKCRwb3MsIDIpKTtcbiAgICB9XG5cbiAgICBAaWYgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwibGVmdCB0b3BcIikgb3IgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwidG9wIGxlZnRcIikge1xuICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIoI3skc2lkZX0pIF9wb3NpdGlvbi1mbGlwcGVyKCN7JGNvcm5lcn0pO1xuICAgIH1cbiAgICBAZWxzZSBpZiAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJyaWdodCB0b3BcIikgb3IgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwidG9wIHJpZ2h0XCIpIHtcbiAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKCN7JHNpZGV9KSBfcG9zaXRpb24tZmxpcHBlcigjeyRjb3JuZXJ9KTtcbiAgICB9XG4gICAgQGVsc2UgaWYgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwicmlnaHQgYm90dG9tXCIpIG9yIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcImJvdHRvbSByaWdodFwiKSB7XG4gICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcigjeyRzaWRlfSkgX3Bvc2l0aW9uLWZsaXBwZXIoI3skY29ybmVyfSk7XG4gICAgfVxuICAgIEBlbHNlIGlmIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcImxlZnQgYm90dG9tXCIpIG9yIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcImJvdHRvbSBsZWZ0XCIpIHtcbiAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKCN7JHNpZGV9KSBfcG9zaXRpb24tZmxpcHBlcigjeyRjb3JuZXJ9KTtcbiAgICB9XG4gICAgJHNwZWM6IHRvICRzaWRlICRjb3JuZXI7XG4gIH1cbiAgQGVsc2UgaWYgJGxlbmd0aCA9PSAxIHtcbiAgICAvLyBTd2FwIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eVxuICAgIEBpZiAkdHlwZSA9PSBzdHJpbmcge1xuICAgICAgJGRlZ3JlZTogJHBvcztcbiAgICAgICRzcGVjOiB0byBfcG9zaXRpb24tZmxpcHBlcigkcG9zKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJGRlZ3JlZTogLTI3MCAtICRwb3M7IC8vcm90YXRlIHRoZSBncmFkaWVudCBvcHBvc2l0ZSBmcm9tIHNwZWNcbiAgICAgICRzcGVjOiAkcG9zO1xuICAgIH1cbiAgfVxuICAkZGVncmVlOiB1bnF1b3RlKCRkZWdyZWUgKyBcIixcIik7XG4gICRzcGVjOiAgIHVucXVvdGUoJHNwZWMgKyBcIixcIik7XG4gIEByZXR1cm4gJGRlZ3JlZSAkc3BlYztcbn1cblxuQGZ1bmN0aW9uIF9wb3NpdGlvbi1mbGlwcGVyKCRwb3MpIHtcbiAgQHJldHVybiBpZigkcG9zID09IGxlZnQsIHJpZ2h0LCBudWxsKVxuICAgICAgICAgaWYoJHBvcyA9PSByaWdodCwgbGVmdCwgbnVsbClcbiAgICAgICAgIGlmKCRwb3MgPT0gdG9wLCBib3R0b20sIG51bGwpXG4gICAgICAgICBpZigkcG9zID09IGJvdHRvbSwgdG9wLCBudWxsKTtcbn1cbiIsIi8vIFByaXZhdGUgZnVuY3Rpb24gZm9yIGxpbmVhci1ncmFkaWVudC1wYXJzZXJcbkBmdW5jdGlvbiBfbGluZWFyLXNpZGUtY29ybmVyLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgsICRoYXMtbXVsdGlwbGUtdmFscykge1xuICAkdmFsLTE6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAxLCAkaGFzLW11bHRpcGxlLXZhbHMgLSAxKTtcbiAgJHZhbC0yOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgJGhhcy1tdWx0aXBsZS12YWxzICsgMSwgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XG4gICR2YWwtMzogbnVsbDtcbiAgJGhhcy12YWwtMzogc3RyLWluZGV4KCR2YWwtMiwgXCIgXCIpO1xuXG4gIEBpZiAkaGFzLXZhbC0zIHtcbiAgICAkdmFsLTM6IHN0ci1zbGljZSgkdmFsLTIsICRoYXMtdmFsLTMgKyAxLCBzdHItbGVuZ3RoKCR2YWwtMikpO1xuICAgICR2YWwtMjogc3RyLXNsaWNlKCR2YWwtMiwgMSwgJGhhcy12YWwtMyAtIDEpO1xuICB9XG5cbiAgJHBvczogX3Bvc2l0aW9uLWZsaXBwZXIoJHZhbC0xKSBfcG9zaXRpb24tZmxpcHBlcigkdmFsLTIpIF9wb3NpdGlvbi1mbGlwcGVyKCR2YWwtMyk7XG4gICRwb3M6IHVucXVvdGUoJHBvcyArIFwiXCIpO1xuXG4gIC8vIFVzZSBvbGQgc3BlYyBmb3Igd2Via2l0XG4gIEBpZiAkdmFsLTEgPT0gXCJ0b1wiIHtcbiAgICBAcmV0dXJuIChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkcHJlZml4ICsgJHBvcyArICRzdWZmaXgsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG5cbiAgLy8gQnJpbmcgdGhlIGNvZGUgdXAgdG8gc3BlY1xuICBAZWxzZSB7XG4gICAgQHJldHVybiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxuICAgICAgc3BlYy1pbWFnZTogJHByZWZpeCArIFwidG8gXCIgKyAkcG9zICsgJHN1ZmZpeFxuICAgICk7XG4gIH1cbn1cbiIsIkBmdW5jdGlvbiBfcmFkaWFsLWFyZy1wYXJzZXIoJGcxLCAkZzIsICRwb3MsICRzaGFwZS1zaXplKSB7XG4gIEBlYWNoICR2YWx1ZSBpbiAkZzEsICRnMiB7XG4gICAgJGZpcnN0LXZhbDogbnRoKCR2YWx1ZSwgMSk7XG4gICAgJHBvcy10eXBlOiAgdHlwZS1vZigkZmlyc3QtdmFsKTtcbiAgICAkc3BlYy1hdC1pbmRleDogbnVsbDtcblxuICAgIC8vIERldGVybWluZSBpZiBzcGVjIHdhcyBwYXNzZWQgdG8gbWl4aW5cbiAgICBAaWYgdHlwZS1vZigkdmFsdWUpID09IGxpc3Qge1xuICAgICAgJHNwZWMtYXQtaW5kZXg6IGlmKGluZGV4KCR2YWx1ZSwgYXQpLCBpbmRleCgkdmFsdWUsIGF0KSwgZmFsc2UpO1xuICAgIH1cbiAgICBAaWYgJHNwZWMtYXQtaW5kZXgge1xuICAgICAgQGlmICRzcGVjLWF0LWluZGV4ID4gMSB7XG4gICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggKCRzcGVjLWF0LWluZGV4IC0gMSkge1xuICAgICAgICAgICRzaGFwZS1zaXplOiAkc2hhcGUtc2l6ZSBudGgoJHZhbHVlLCAkaSk7XG4gICAgICAgIH1cbiAgICAgICAgQGZvciAkaSBmcm9tICgkc3BlYy1hdC1pbmRleCArIDEpIHRocm91Z2ggbGVuZ3RoKCR2YWx1ZSkge1xuICAgICAgICAgICRwb3M6ICRwb3MgbnRoKCR2YWx1ZSwgJGkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiAkc3BlYy1hdC1pbmRleCA9PSAxIHtcbiAgICAgICAgQGZvciAkaSBmcm9tICgkc3BlYy1hdC1pbmRleCArIDEpIHRocm91Z2ggbGVuZ3RoKCR2YWx1ZSkge1xuICAgICAgICAgICRwb3M6ICRwb3MgbnRoKCR2YWx1ZSwgJGkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAkZzE6IG51bGw7XG4gICAgfVxuXG4gICAgLy8gSWYgbm90IHNwZWMgY2FsY3VsYXRlIGNvcnJlY3QgdmFsdWVzXG4gICAgQGVsc2Uge1xuICAgICAgQGlmICgkcG9zLXR5cGUgIT0gY29sb3IpIG9yICgkZmlyc3QtdmFsICE9IFwidHJhbnNwYXJlbnRcIikge1xuICAgICAgICBAaWYgKCRwb3MtdHlwZSA9PSBudW1iZXIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY2VudGVyXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwidG9wXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwicmlnaHRcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJib3R0b21cIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJsZWZ0XCIpIHtcblxuICAgICAgICAgICRwb3M6ICR2YWx1ZTtcblxuICAgICAgICAgIEBpZiAkcG9zID09ICRnMSB7XG4gICAgICAgICAgICAkZzE6IG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVsc2UgaWZcbiAgICAgICAgICAgKCRmaXJzdC12YWwgPT0gXCJlbGxpcHNlXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY2lyY2xlXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY2xvc2VzdC1zaWRlXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY2xvc2VzdC1jb3JuZXJcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJmYXJ0aGVzdC1zaWRlXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiZmFydGhlc3QtY29ybmVyXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY29udGFpblwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNvdmVyXCIpIHtcblxuICAgICAgICAgICRzaGFwZS1zaXplOiAkdmFsdWU7XG5cbiAgICAgICAgICBAaWYgJHZhbHVlID09ICRnMSB7XG4gICAgICAgICAgICAkZzE6IG51bGw7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGVsc2UgaWYgJHZhbHVlID09ICRnMiB7XG4gICAgICAgICAgICAkZzI6IG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEByZXR1cm4gJGcxLCAkZzIsICRwb3MsICRzaGFwZS1zaXplO1xufVxuIiwiQGZ1bmN0aW9uIF9yYWRpYWwtcG9zaXRpb25zLXBhcnNlcigkZ3JhZGllbnQtcG9zKSB7XG4gICRzaGFwZS1zaXplOiBudGgoJGdyYWRpZW50LXBvcywgMSk7XG4gICRwb3M6ICAgICAgICBudGgoJGdyYWRpZW50LXBvcywgMik7XG4gICRzaGFwZS1zaXplLXNwZWM6IF9zaGFwZS1zaXplLXN0cmlwcGVyKCRzaGFwZS1zaXplKTtcblxuICAkcHJlLXNwZWM6IHVucXVvdGUoaWYoJHBvcywgXCIjeyRwb3N9LCBcIiwgbnVsbCkpXG4gICAgICAgICAgICAgdW5xdW90ZShpZigkc2hhcGUtc2l6ZSwgXCIjeyRzaGFwZS1zaXplfSxcIiwgbnVsbCkpO1xuICAkcG9zLXNwZWM6IGlmKCRwb3MsIFwiYXQgI3skcG9zfVwiLCBudWxsKTtcblxuICAkc3BlYzogXCIjeyRzaGFwZS1zaXplLXNwZWN9ICN7JHBvcy1zcGVjfVwiO1xuXG4gIC8vIEFkZCBjb21tYVxuICBAaWYgKCRzcGVjICE9IFwiICBcIikge1xuICAgICRzcGVjOiBcIiN7JHNwZWN9LFwiO1xuICB9XG5cbiAgQHJldHVybiAkcHJlLXNwZWMgJHNwZWM7XG59XG4iLCJAZnVuY3Rpb24gX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIoJGltYWdlKSB7XG4gICRpbWFnZTogdW5xdW90ZSgkaW1hZ2UpO1xuICAkZ3JhZGllbnRzOiAoKTtcbiAgJHN0YXJ0OiBzdHItaW5kZXgoJGltYWdlLCBcIihcIik7XG4gICRlbmQ6IHN0ci1pbmRleCgkaW1hZ2UsIFwiLFwiKTtcbiAgJGZpcnN0LXZhbDogc3RyLXNsaWNlKCRpbWFnZSwgJHN0YXJ0ICsgMSwgJGVuZCAtIDEpO1xuXG4gICRwcmVmaXg6IHN0ci1zbGljZSgkaW1hZ2UsIDEsICRzdGFydCk7XG4gICRzdWZmaXg6IHN0ci1zbGljZSgkaW1hZ2UsICRlbmQsIHN0ci1sZW5ndGgoJGltYWdlKSk7XG5cbiAgJGlzLXNwZWMtc3ludGF4OiBzdHItaW5kZXgoJGZpcnN0LXZhbCwgXCJhdFwiKTtcblxuICBAaWYgJGlzLXNwZWMtc3ludGF4IGFuZCAkaXMtc3BlYy1zeW50YXggPiAxIHtcbiAgICAka2V5d29yZDogc3RyLXNsaWNlKCRmaXJzdC12YWwsIDEsICRpcy1zcGVjLXN5bnRheCAtIDIpO1xuICAgICRwb3M6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAkaXMtc3BlYy1zeW50YXggKyAzLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcbiAgICAkcG9zOiBhcHBlbmQoJHBvcywgJGtleXdvcmQsIGNvbW1hKTtcblxuICAgICRncmFkaWVudHM6IChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkcHJlZml4ICsgJHBvcyArICRzdWZmaXgsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG5cbiAgQGVsc2UgaWYgJGlzLXNwZWMtc3ludGF4ID09IDEge1xuICAgICRwb3M6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAkaXMtc3BlYy1zeW50YXggKyAzLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcblxuICAgICRncmFkaWVudHM6IChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkcHJlZml4ICsgJHBvcyArICRzdWZmaXgsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG5cbiAgQGVsc2UgaWYgc3RyLWluZGV4KCRpbWFnZSwgXCJjb3ZlclwiKSBvciBzdHItaW5kZXgoJGltYWdlLCBcImNvbnRhaW5cIikge1xuICAgIEB3YXJuIFwiUmFkaWFsLWdyYWRpZW50IG5lZWRzIHRvIGJlIHVwZGF0ZWQgdG8gY29uZm9ybSB0byBsYXRlc3Qgc3BlYy5cIjtcblxuICAgICRncmFkaWVudHM6IChcbiAgICAgIHdlYmtpdC1pbWFnZTogbnVsbCxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cblxuICBAZWxzZSB7XG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRpbWFnZSxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cblxuICBAcmV0dXJuICRncmFkaWVudHM7XG59XG4iLCIvLyBVc2VyIGZvciBsaW5lYXIgYW5kIHJhZGlhbCBncmFkaWVudHMgd2l0aGluIGJhY2tncm91bmQtaW1hZ2Ugb3IgYm9yZGVyLWltYWdlIHByb3BlcnRpZXNcblxuQGZ1bmN0aW9uIF9yZW5kZXItZ3JhZGllbnRzKCRncmFkaWVudC1wb3NpdGlvbnMsICRncmFkaWVudHMsICRncmFkaWVudC10eXBlLCAkdmVuZG9yOiBmYWxzZSkge1xuICAkcHJlLXNwZWM6IG51bGw7XG4gICRzcGVjOiBudWxsO1xuICAkdmVuZG9yLWdyYWRpZW50czogbnVsbDtcbiAgQGlmICRncmFkaWVudC10eXBlID09IGxpbmVhciB7XG4gICAgQGlmICRncmFkaWVudC1wb3NpdGlvbnMge1xuICAgICAgJHByZS1zcGVjOiBudGgoJGdyYWRpZW50LXBvc2l0aW9ucywgMSk7XG4gICAgICAkc3BlYzogICAgIG50aCgkZ3JhZGllbnQtcG9zaXRpb25zLCAyKTtcbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gcmFkaWFsIHtcbiAgICAkcHJlLXNwZWM6IG50aCgkZ3JhZGllbnQtcG9zaXRpb25zLCAxKTtcbiAgICAkc3BlYzogICAgIG50aCgkZ3JhZGllbnQtcG9zaXRpb25zLCAyKTtcbiAgfVxuXG4gIEBpZiAkdmVuZG9yIHtcbiAgICAkdmVuZG9yLWdyYWRpZW50czogLSN7JHZlbmRvcn0tI3skZ3JhZGllbnQtdHlwZX0tZ3JhZGllbnQoI3skcHJlLXNwZWN9ICRncmFkaWVudHMpO1xuICB9XG4gIEBlbHNlIGlmICR2ZW5kb3IgPT0gZmFsc2Uge1xuICAgICR2ZW5kb3ItZ3JhZGllbnRzOiBcIiN7JGdyYWRpZW50LXR5cGV9LWdyYWRpZW50KCN7JHNwZWN9ICN7JGdyYWRpZW50c30pXCI7XG4gICAgJHZlbmRvci1ncmFkaWVudHM6IHVucXVvdGUoJHZlbmRvci1ncmFkaWVudHMpO1xuICB9XG4gIEByZXR1cm4gJHZlbmRvci1ncmFkaWVudHM7XG59XG4iLCJAZnVuY3Rpb24gX3NoYXBlLXNpemUtc3RyaXBwZXIoJHNoYXBlLXNpemUpIHtcbiAgJHNoYXBlLXNpemUtc3BlYzogbnVsbDtcbiAgQGVhY2ggJHZhbHVlIGluICRzaGFwZS1zaXplIHtcbiAgICBAaWYgKCR2YWx1ZSA9PSBcImNvdmVyXCIpIG9yICgkdmFsdWUgPT0gXCJjb250YWluXCIpIHtcbiAgICAgICR2YWx1ZTogbnVsbDtcbiAgICB9XG4gICAgJHNoYXBlLXNpemUtc3BlYzogXCIjeyRzaGFwZS1zaXplLXNwZWN9ICN7JHZhbHVlfVwiO1xuICB9XG4gIEByZXR1cm4gJHNoYXBlLXNpemUtc3BlYztcbn1cbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIEhlbHBlciBmdW5jdGlvbiBmb3IgbGluZWFyL3JhZGlhbC1ncmFkaWVudC1wYXJzZXJzLlxuLy8gU291cmNlOiBodHRwOi8vc2Fzc21laXN0ZXIuY29tL2dpc3QvOTY0NzQwOFxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuQGZ1bmN0aW9uIF9zdHItdG8tbnVtKCRzdHJpbmcpIHtcbiAgLy8gTWF0cmljZXNcbiAgJHN0cmluZ3M6IFwiMFwiIFwiMVwiIFwiMlwiIFwiM1wiIFwiNFwiIFwiNVwiIFwiNlwiIFwiN1wiIFwiOFwiIFwiOVwiO1xuICAkbnVtYmVyczogIDAgICAxICAgMiAgIDMgICA0ICAgNSAgIDYgICA3ICAgOCAgIDk7XG5cbiAgLy8gUmVzdWx0XG4gICRyZXN1bHQ6IDA7XG4gICRkaXZpZGVyOiAwO1xuICAkbWludXM6IGZhbHNlO1xuXG4gIC8vIExvb3BpbmcgdGhyb3VnaCBhbGwgY2hhcmFjdGVyc1xuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIHN0ci1sZW5ndGgoJHN0cmluZykge1xuICAgICRjaGFyYWN0ZXI6IHN0ci1zbGljZSgkc3RyaW5nLCAkaSwgJGkpO1xuICAgICRpbmRleDogaW5kZXgoJHN0cmluZ3MsICRjaGFyYWN0ZXIpO1xuXG4gICAgQGlmICRjaGFyYWN0ZXIgPT0gXCItXCIge1xuICAgICAgJG1pbnVzOiB0cnVlO1xuICAgIH1cblxuICAgIEBlbHNlIGlmICRjaGFyYWN0ZXIgPT0gXCIuXCIge1xuICAgICAgJGRpdmlkZXI6IDE7XG4gICAgfVxuXG4gICAgQGVsc2Uge1xuICAgICAgQGlmIG5vdCAkaW5kZXgge1xuICAgICAgICAkcmVzdWx0OiBpZigkbWludXMsICRyZXN1bHQgKiAtMSwgJHJlc3VsdCk7XG4gICAgICAgIEByZXR1cm4gX2NvbnZlcnQtdW5pdHMoJHJlc3VsdCwgc3RyLXNsaWNlKCRzdHJpbmcsICRpKSk7XG4gICAgICB9XG5cbiAgICAgICRudW1iZXI6IG50aCgkbnVtYmVycywgJGluZGV4KTtcblxuICAgICAgQGlmICRkaXZpZGVyID09IDAge1xuICAgICAgICAkcmVzdWx0OiAkcmVzdWx0ICogMTA7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgLy8gTW92ZSB0aGUgZGVjaW1hbCBkb3QgdG8gdGhlIGxlZnRcbiAgICAgICAgJGRpdmlkZXI6ICRkaXZpZGVyICogMTA7XG4gICAgICAgICRudW1iZXI6ICRudW1iZXIgLyAkZGl2aWRlcjtcbiAgICAgIH1cblxuICAgICAgJHJlc3VsdDogJHJlc3VsdCArICRudW1iZXI7XG4gICAgfVxuICB9XG4gIEByZXR1cm4gaWYoJG1pbnVzLCAkcmVzdWx0ICogLTEsICRyZXN1bHQpO1xufVxuIiwiLy8gaHR0cDovL3d3dy53My5vcmcvVFIvY3NzMy1hbmltYXRpb25zLyN0aGUtYW5pbWF0aW9uLW5hbWUtcHJvcGVydHktXG4vLyBFYWNoIG9mIHRoZXNlIG1peGlucyBzdXBwb3J0IGNvbW1hIHNlcGFyYXRlZCBsaXN0cyBvZiB2YWx1ZXMsIHdoaWNoIGFsbG93cyBkaWZmZXJlbnQgdHJhbnNpdGlvbnMgZm9yIGluZGl2aWR1YWwgcHJvcGVydGllcyB0byBiZSBkZXNjcmliZWQgaW4gYSBzaW5nbGUgc3R5bGUgcnVsZS4gRWFjaCB2YWx1ZSBpbiB0aGUgbGlzdCBjb3JyZXNwb25kcyB0byB0aGUgdmFsdWUgYXQgdGhhdCBzYW1lIHBvc2l0aW9uIGluIHRoZSBvdGhlciBwcm9wZXJ0aWVzLlxuXG5AbWl4aW4gYW5pbWF0aW9uKCRhbmltYXRpb25zLi4uKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbiwgJGFuaW1hdGlvbnMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tbmFtZSgkbmFtZXMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLW5hbWUsICRuYW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1kdXJhdGlvbigkdGltZXMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWR1cmF0aW9uLCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uKCRtb3Rpb25zLi4uKSB7XG4gIC8vIGVhc2UgfCBsaW5lYXIgfCBlYXNlLWluIHwgZWFzZS1vdXQgfCBlYXNlLWluLW91dFxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uLCAkbW90aW9ucywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQoJHZhbHVlcy4uLikge1xuICAvLyBpbmZpbml0ZSB8IDxudW1iZXI+XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsICR2YWx1ZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tZGlyZWN0aW9uKCRkaXJlY3Rpb25zLi4uKSB7XG4gIC8vIG5vcm1hbCB8IGFsdGVybmF0ZVxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZGlyZWN0aW9uLCAkZGlyZWN0aW9ucywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1wbGF5LXN0YXRlKCRzdGF0ZXMuLi4pIHtcbiAgLy8gcnVubmluZyB8IHBhdXNlZFxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tcGxheS1zdGF0ZSwgJHN0YXRlcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1kZWxheSgkdGltZXMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWRlbGF5LCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tZmlsbC1tb2RlKCRtb2Rlcy4uLikge1xuICAvLyBub25lIHwgZm9yd2FyZHMgfCBiYWNrd2FyZHMgfCBib3RoXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1maWxsLW1vZGUsICRtb2Rlcywgd2Via2l0IG1veiBzcGVjKTtcbn1cbiIsIkBtaXhpbiBhcHBlYXJhbmNlKCR2YWx1ZSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihhcHBlYXJhbmNlLCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcbn1cbiIsIkBtaXhpbiBiYWNrZmFjZS12aXNpYmlsaXR5KCR2aXNpYmlsaXR5KSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJhY2tmYWNlLXZpc2liaWxpdHksICR2aXNpYmlsaXR5LCB3ZWJraXQgc3BlYyk7XG59XG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyBCYWNrZ3JvdW5kIHByb3BlcnR5IGZvciBhZGRpbmcgbXVsdGlwbGUgYmFja2dyb3VuZHMgdXNpbmcgc2hvcnRoYW5kXG4vLyBub3RhdGlvbi5cbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cblxuQG1peGluIGJhY2tncm91bmQoJGJhY2tncm91bmRzLi4uKSB7XG4gICR3ZWJraXQtYmFja2dyb3VuZHM6ICgpO1xuICAkc3BlYy1iYWNrZ3JvdW5kczogKCk7XG5cbiAgQGVhY2ggJGJhY2tncm91bmQgaW4gJGJhY2tncm91bmRzIHtcbiAgICAkd2Via2l0LWJhY2tncm91bmQ6ICgpO1xuICAgICRzcGVjLWJhY2tncm91bmQ6ICgpO1xuICAgICRiYWNrZ3JvdW5kLXR5cGU6IHR5cGUtb2YoJGJhY2tncm91bmQpO1xuXG4gICAgQGlmICRiYWNrZ3JvdW5kLXR5cGUgPT0gc3RyaW5nIG9yICRiYWNrZ3JvdW5kLXR5cGUgPT0gbGlzdCB7XG4gICAgICAkYmFja2dyb3VuZC1zdHI6IGlmKCRiYWNrZ3JvdW5kLXR5cGUgPT0gbGlzdCwgbnRoKCRiYWNrZ3JvdW5kLCAxKSwgJGJhY2tncm91bmQpO1xuXG4gICAgICAkdXJsLXN0cjogICAgICAgc3RyLXNsaWNlKCRiYWNrZ3JvdW5kLXN0ciwgMSwgMyk7XG4gICAgICAkZ3JhZGllbnQtdHlwZTogc3RyLXNsaWNlKCRiYWNrZ3JvdW5kLXN0ciwgMSwgNik7XG5cbiAgICAgIEBpZiAkdXJsLXN0ciA9PSBcInVybFwiIHtcbiAgICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICAgICAgJHNwZWMtYmFja2dyb3VuZDogICAkYmFja2dyb3VuZDtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJsaW5lYXJcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9saW5lYXItZ3JhZGllbnQtcGFyc2VyKFwiI3skYmFja2dyb3VuZH1cIik7XG4gICAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xuICAgICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwicmFkaWFsXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcihcIiN7JGJhY2tncm91bmR9XCIpO1xuICAgICAgICAkd2Via2l0LWJhY2tncm91bmQ6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtYmFja2dyb3VuZDogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSB7XG4gICAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgJGJhY2tncm91bmQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGVsc2Uge1xuICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgJGJhY2tncm91bmQ7XG4gICAgfVxuXG4gICAgJHdlYmtpdC1iYWNrZ3JvdW5kczogYXBwZW5kKCR3ZWJraXQtYmFja2dyb3VuZHMsICR3ZWJraXQtYmFja2dyb3VuZCwgY29tbWEpO1xuICAgICRzcGVjLWJhY2tncm91bmRzOiAgIGFwcGVuZCgkc3BlYy1iYWNrZ3JvdW5kcywgICAkc3BlYy1iYWNrZ3JvdW5kLCAgIGNvbW1hKTtcbiAgfVxuXG4gIGJhY2tncm91bmQ6ICR3ZWJraXQtYmFja2dyb3VuZHM7XG4gIGJhY2tncm91bmQ6ICRzcGVjLWJhY2tncm91bmRzO1xufVxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gQmFja2dyb3VuZC1pbWFnZSBwcm9wZXJ0eSBmb3IgYWRkaW5nIG11bHRpcGxlIGJhY2tncm91bmQgaW1hZ2VzIHdpdGhcbi8vIGdyYWRpZW50cywgb3IgZm9yIHN0cmluZ2luZyBtdWx0aXBsZSBncmFkaWVudHMgdG9nZXRoZXIuXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5cbkBtaXhpbiBiYWNrZ3JvdW5kLWltYWdlKCRpbWFnZXMuLi4pIHtcbiAgJHdlYmtpdC1pbWFnZXM6ICgpO1xuICAkc3BlYy1pbWFnZXM6ICgpO1xuXG4gIEBlYWNoICRpbWFnZSBpbiAkaW1hZ2VzIHtcbiAgICAkd2Via2l0LWltYWdlOiAoKTtcbiAgICAkc3BlYy1pbWFnZTogKCk7XG5cbiAgICBAaWYgKHR5cGUtb2YoJGltYWdlKSA9PSBzdHJpbmcpIHtcbiAgICAgICR1cmwtc3RyOiAgICAgICBzdHItc2xpY2UoJGltYWdlLCAxLCAzKTtcbiAgICAgICRncmFkaWVudC10eXBlOiBzdHItc2xpY2UoJGltYWdlLCAxLCA2KTtcblxuICAgICAgQGlmICR1cmwtc3RyID09IFwidXJsXCIge1xuICAgICAgICAkd2Via2l0LWltYWdlOiAkaW1hZ2U7XG4gICAgICAgICRzcGVjLWltYWdlOiAgICRpbWFnZTtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJsaW5lYXJcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9saW5lYXItZ3JhZGllbnQtcGFyc2VyKCRpbWFnZSk7XG4gICAgICAgICR3ZWJraXQtaW1hZ2U6ICBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWltYWdlOiAgICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcInJhZGlhbFwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIoJGltYWdlKTtcbiAgICAgICAgJHdlYmtpdC1pbWFnZTogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xuICAgICAgICAkc3BlYy1pbWFnZTogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuICAgIH1cblxuICAgICR3ZWJraXQtaW1hZ2VzOiBhcHBlbmQoJHdlYmtpdC1pbWFnZXMsICR3ZWJraXQtaW1hZ2UsIGNvbW1hKTtcbiAgICAkc3BlYy1pbWFnZXM6ICAgYXBwZW5kKCRzcGVjLWltYWdlcywgICAkc3BlYy1pbWFnZSwgICBjb21tYSk7XG4gIH1cblxuICBiYWNrZ3JvdW5kLWltYWdlOiAkd2Via2l0LWltYWdlcztcbiAgYmFja2dyb3VuZC1pbWFnZTogJHNwZWMtaW1hZ2VzO1xufVxuIiwiQG1peGluIGJvcmRlci1pbWFnZSgkYm9yZGVycy4uLikge1xuICAkd2Via2l0LWJvcmRlcnM6ICgpO1xuICAkc3BlYy1ib3JkZXJzOiAoKTtcblxuICBAZWFjaCAkYm9yZGVyIGluICRib3JkZXJzIHtcbiAgICAkd2Via2l0LWJvcmRlcjogKCk7XG4gICAgJHNwZWMtYm9yZGVyOiAoKTtcbiAgICAkYm9yZGVyLXR5cGU6IHR5cGUtb2YoJGJvcmRlcik7XG5cbiAgICBAaWYgJGJvcmRlci10eXBlID09IHN0cmluZyBvciBsaXN0IHtcbiAgICAgICRib3JkZXItc3RyOiBpZigkYm9yZGVyLXR5cGUgPT0gbGlzdCwgbnRoKCRib3JkZXIsIDEpLCAkYm9yZGVyKTtcblxuICAgICAgJHVybC1zdHI6ICAgICAgIHN0ci1zbGljZSgkYm9yZGVyLXN0ciwgMSwgMyk7XG4gICAgICAkZ3JhZGllbnQtdHlwZTogc3RyLXNsaWNlKCRib3JkZXItc3RyLCAxLCA2KTtcblxuICAgICAgQGlmICR1cmwtc3RyID09IFwidXJsXCIge1xuICAgICAgICAkd2Via2l0LWJvcmRlcjogJGJvcmRlcjtcbiAgICAgICAgJHNwZWMtYm9yZGVyOiAgICRib3JkZXI7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwibGluZWFyXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfbGluZWFyLWdyYWRpZW50LXBhcnNlcihcIiN7JGJvcmRlcn1cIik7XG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWJvcmRlcjogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcInJhZGlhbFwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIoXCIjeyRib3JkZXJ9XCIpO1xuICAgICAgICAkd2Via2l0LWJvcmRlcjogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xuICAgICAgICAkc3BlYy1ib3JkZXI6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcbiAgICAgIH1cblxuICAgICAgQGVsc2Uge1xuICAgICAgICAkd2Via2l0LWJvcmRlcjogJGJvcmRlcjtcbiAgICAgICAgJHNwZWMtYm9yZGVyOiAgICRib3JkZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGVsc2Uge1xuICAgICAgJHdlYmtpdC1ib3JkZXI6ICRib3JkZXI7XG4gICAgICAkc3BlYy1ib3JkZXI6ICAgJGJvcmRlcjtcbiAgICB9XG5cbiAgICAkd2Via2l0LWJvcmRlcnM6IGFwcGVuZCgkd2Via2l0LWJvcmRlcnMsICR3ZWJraXQtYm9yZGVyLCBjb21tYSk7XG4gICAgJHNwZWMtYm9yZGVyczogICBhcHBlbmQoJHNwZWMtYm9yZGVycywgICAkc3BlYy1ib3JkZXIsICAgY29tbWEpO1xuICB9XG5cbiAgLXdlYmtpdC1ib3JkZXItaW1hZ2U6ICR3ZWJraXQtYm9yZGVycztcbiAgICAgICAgICBib3JkZXItaW1hZ2U6ICRzcGVjLWJvcmRlcnM7XG4gICAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbn1cblxuLy9FeGFtcGxlczpcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZSh1cmwoXCJpbWFnZS5wbmdcIikpO1xuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKHVybChcImltYWdlLnBuZ1wiKSAyMCBzdHJldGNoKTtcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShsaW5lYXItZ3JhZGllbnQoNDVkZWcsIG9yYW5nZSwgeWVsbG93KSk7XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UobGluZWFyLWdyYWRpZW50KDQ1ZGVnLCBvcmFuZ2UsIHllbGxvdykgc3RyZXRjaCk7XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UobGluZWFyLWdyYWRpZW50KDQ1ZGVnLCBvcmFuZ2UsIHllbGxvdykgMjAgMzAgNDAgNTAgc3RyZXRjaCByb3VuZCk7XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UocmFkaWFsLWdyYWRpZW50KHRvcCwgY292ZXIsIG9yYW5nZSwgeWVsbG93LCBvcmFuZ2UpKTtcbiIsIkBtaXhpbiBjYWxjKCRwcm9wZXJ0eSwgJHZhbHVlKSB7XG4gICN7JHByb3BlcnR5fTogLXdlYmtpdC1jYWxjKCN7JHZhbHVlfSk7XG4gICN7JHByb3BlcnR5fTogY2FsYygjeyR2YWx1ZX0pO1xufVxuIiwiQG1peGluIGNvbHVtbnMoJGFyZzogYXV0bykge1xuICAvLyA8Y29sdW1uLWNvdW50PiB8fCA8Y29sdW1uLXdpZHRoPlxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW5zLCAkYXJnLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLWNvdW50KCRpbnQ6IGF1dG8pIHtcbiAgLy8gYXV0byB8fCBpbnRlZ2VyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1jb3VudCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1nYXAoJGxlbmd0aDogbm9ybWFsKSB7XG4gIC8vIG5vcm1hbCB8fCBsZW5ndGhcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLWdhcCwgJGxlbmd0aCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1maWxsKCRhcmc6IGF1dG8pIHtcbiAgLy8gYXV0byB8fCBsZW5ndGhcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLWZpbGwsICRhcmcsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tcnVsZSgkYXJnKSB7XG4gIC8vIDxib3JkZXItd2lkdGg+IHx8IDxib3JkZXItc3R5bGU+IHx8IDxjb2xvcj5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXJ1bGUsICRhcmcsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tcnVsZS1jb2xvcigkY29sb3IpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXJ1bGUtY29sb3IsICRjb2xvciwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1ydWxlLXN0eWxlKCRzdHlsZTogbm9uZSkge1xuICAvLyBub25lIHwgaGlkZGVuIHwgZGFzaGVkIHwgZG90dGVkIHwgZG91YmxlIHwgZ3Jvb3ZlIHwgaW5zZXQgfCBpbnNldCB8IG91dHNldCB8IHJpZGdlIHwgc29saWRcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXJ1bGUtc3R5bGUsICRzdHlsZSwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1ydWxlLXdpZHRoICgkd2lkdGg6IG5vbmUpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXJ1bGUtd2lkdGgsICR3aWR0aCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1zcGFuKCRhcmc6IG5vbmUpIHtcbiAgLy8gbm9uZSB8fCBhbGxcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXNwYW4sICRhcmcsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4td2lkdGgoJGxlbmd0aDogYXV0bykge1xuICAvLyBhdXRvIHx8IGxlbmd0aFxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4td2lkdGgsICRsZW5ndGgsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG4iLCJAbWl4aW4gZmlsdGVyKCRmdW5jdGlvbjogbm9uZSkge1xuICAvLyA8ZmlsdGVyLWZ1bmN0aW9uPiBbPGZpbHRlci1mdW5jdGlvbl0qIHwgbm9uZVxuICBAaW5jbHVkZSBwcmVmaXhlcihmaWx0ZXIsICRmdW5jdGlvbiwgd2Via2l0IHNwZWMpO1xufVxuIiwiLy8gQ1NTMyBGbGV4aWJsZSBCb3ggTW9kZWwgYW5kIHByb3BlcnR5IGRlZmF1bHRzXG5cbi8vIEN1c3RvbSBzaG9ydGhhbmQgbm90YXRpb24gZm9yIGZsZXhib3hcbkBtaXhpbiBib3goJG9yaWVudDogaW5saW5lLWF4aXMsICRwYWNrOiBzdGFydCwgJGFsaWduOiBzdHJldGNoKSB7XG4gIEBpbmNsdWRlIGRpc3BsYXktYm94O1xuICBAaW5jbHVkZSBib3gtb3JpZW50KCRvcmllbnQpO1xuICBAaW5jbHVkZSBib3gtcGFjaygkcGFjayk7XG4gIEBpbmNsdWRlIGJveC1hbGlnbigkYWxpZ24pO1xufVxuXG5AbWl4aW4gZGlzcGxheS1ib3gge1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgZGlzcGxheTogLW1vei1ib3g7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94OyAvLyBJRSAxMFxuICBkaXNwbGF5OiBib3g7XG59XG5cbkBtaXhpbiBib3gtb3JpZW50KCRvcmllbnQ6IGlubGluZS1heGlzKSB7XG4vLyBob3Jpem9udGFsfHZlcnRpY2FsfGlubGluZS1heGlzfGJsb2NrLWF4aXN8aW5oZXJpdFxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JpZW50LCAkb3JpZW50LCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYm94LXBhY2soJHBhY2s6IHN0YXJ0KSB7XG4vLyBzdGFydHxlbmR8Y2VudGVyfGp1c3RpZnlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LXBhY2ssICRwYWNrLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1wYWNrOiAkcGFjazsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1hbGlnbigkYWxpZ246IHN0cmV0Y2gpIHtcbi8vIHN0YXJ0fGVuZHxjZW50ZXJ8YmFzZWxpbmV8c3RyZXRjaFxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtYWxpZ24sICRhbGlnbiwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtYWxpZ246ICRhbGlnbjsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1kaXJlY3Rpb24oJGRpcmVjdGlvbjogbm9ybWFsKSB7XG4vLyBub3JtYWx8cmV2ZXJzZXxpbmhlcml0XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1kaXJlY3Rpb24sICRkaXJlY3Rpb24sIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LWRpcmVjdGlvbjogJGRpcmVjdGlvbjsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1saW5lcygkbGluZXM6IHNpbmdsZSkge1xuLy8gc2luZ2xlfG11bHRpcGxlXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1saW5lcywgJGxpbmVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYm94LW9yZGluYWwtZ3JvdXAoJGludDogMSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JkaW5hbC1ncm91cCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtb3JkZXI6ICRpbnQ7IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtZmxleCgkdmFsdWU6IDApIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWZsZXgsICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXg6ICR2YWx1ZTsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1mbGV4LWdyb3VwKCRpbnQ6IDEpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWZsZXgtZ3JvdXAsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbi8vIENTUzMgRmxleGlibGUgQm94IE1vZGVsIGFuZCBwcm9wZXJ0eSBkZWZhdWx0c1xuLy8gVW5pZmllZCBhdHRyaWJ1dGVzIGZvciAyMDA5LCAyMDExLCBhbmQgMjAxMiBmbGF2b3Vycy5cblxuLy8gMjAwOSAtIGRpc3BsYXkgKGJveCB8IGlubGluZS1ib3gpXG4vLyAyMDExIC0gZGlzcGxheSAoZmxleGJveCB8IGlubGluZS1mbGV4Ym94KVxuLy8gMjAxMiAtIGRpc3BsYXkgKGZsZXggfCBpbmxpbmUtZmxleClcbkBtaXhpbiBkaXNwbGF5KCR2YWx1ZSkge1xuLy8gZmxleCB8IGlubGluZS1mbGV4XG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4XCIge1xuICAgIC8vIDIwMDlcbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICBkaXNwbGF5OiAtbW96LWJveDtcbiAgICBkaXNwbGF5OiBib3g7XG5cbiAgICAvLyAyMDEyXG4gICAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICAgIGRpc3BsYXk6IC1tb3otZmxleDtcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDsgLy8gMjAxMSAoSUUgMTApXG4gICAgZGlzcGxheTogZmxleDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJpbmxpbmUtZmxleFwiIHtcbiAgICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1ib3g7XG4gICAgZGlzcGxheTogLW1vei1pbmxpbmUtYm94O1xuICAgIGRpc3BsYXk6IGlubGluZS1ib3g7XG5cbiAgICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1mbGV4O1xuICAgIGRpc3BsYXk6IC1tb3otaW5saW5lLWZsZXg7XG4gICAgZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94O1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICB9IEBlbHNlIHtcbiAgICBkaXNwbGF5OiAkdmFsdWU7XG4gIH1cbn1cblxuLy8gMjAwOSAtIGJveC1mbGV4IChpbnRlZ2VyKVxuLy8gMjAxMSAtIGZsZXggKGRlY2ltYWwgfCB3aWR0aCBkZWNpbWFsKVxuLy8gMjAxMiAtIGZsZXggKGludGVnZXIgaW50ZWdlciB3aWR0aClcbkBtaXhpbiBmbGV4KCR2YWx1ZSkge1xuXG4gIC8vIEdyYWIgZmxleC1ncm93IGZvciBvbGRlciBicm93c2Vycy5cbiAgJGZsZXgtZ3JvdzogbnRoKCR2YWx1ZSwgMSk7XG5cbiAgLy8gMjAwOVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZmxleCwgJGZsZXgtZ3Jvdywgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMCksIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleCwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufVxuXG4vLyAyMDA5IC0gYm94LW9yaWVudCAoIGhvcml6b250YWwgfCB2ZXJ0aWNhbCB8IGlubGluZS1heGlzIHwgYmxvY2stYXhpcylcbi8vICAgICAgLSBib3gtZGlyZWN0aW9uIChub3JtYWwgfCByZXZlcnNlKVxuLy8gMjAxMSAtIGZsZXgtZGlyZWN0aW9uIChyb3cgfCByb3ctcmV2ZXJzZSB8IGNvbHVtbiB8IGNvbHVtbi1yZXZlcnNlKVxuLy8gMjAxMiAtIGZsZXgtZGlyZWN0aW9uIChyb3cgfCByb3ctcmV2ZXJzZSB8IGNvbHVtbiB8IGNvbHVtbi1yZXZlcnNlKVxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCR2YWx1ZTogcm93KSB7XG5cbiAgLy8gQWx0IHZhbHVlcy5cbiAgJHZhbHVlLTIwMDk6ICR2YWx1ZTtcbiAgJHZhbHVlLTIwMTE6ICR2YWx1ZTtcbiAgJGRpcmVjdGlvbjogbm9ybWFsO1xuXG4gIEBpZiAkdmFsdWUgPT0gcm93IHtcbiAgICAkdmFsdWUtMjAwOTogaG9yaXpvbnRhbDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJyb3ctcmV2ZXJzZVwiIHtcbiAgICAkdmFsdWUtMjAwOTogaG9yaXpvbnRhbDtcbiAgICAkZGlyZWN0aW9uOiByZXZlcnNlO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBjb2x1bW4ge1xuICAgICR2YWx1ZS0yMDA5OiB2ZXJ0aWNhbDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJjb2x1bW4tcmV2ZXJzZVwiIHtcbiAgICAkdmFsdWUtMjAwOTogdmVydGljYWw7XG4gICAgJGRpcmVjdGlvbjogcmV2ZXJzZTtcbiAgfVxuXG4gIC8vIDIwMDlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yaWVudCwgJHZhbHVlLTIwMDksIHdlYmtpdCBtb3ogc3BlYyk7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1kaXJlY3Rpb24sICRkaXJlY3Rpb24sIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWRpcmVjdGlvbiwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbn1cblxuLy8gMjAwOSAtIGJveC1saW5lcyAoc2luZ2xlIHwgbXVsdGlwbGUpXG4vLyAyMDExIC0gZmxleC13cmFwIChub3dyYXAgfCB3cmFwIHwgd3JhcC1yZXZlcnNlKVxuLy8gMjAxMiAtIGZsZXgtd3JhcCAobm93cmFwIHwgd3JhcCB8IHdyYXAtcmV2ZXJzZSlcbkBtaXhpbiBmbGV4LXdyYXAoJHZhbHVlOiBub3dyYXApIHtcbiAgLy8gQWx0IHZhbHVlc1xuICAkYWx0LXZhbHVlOiAkdmFsdWU7XG4gIEBpZiAkdmFsdWUgPT0gbm93cmFwIHtcbiAgICAkYWx0LXZhbHVlOiBzaW5nbGU7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IHdyYXAge1xuICAgICRhbHQtdmFsdWU6IG11bHRpcGxlO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcIndyYXAtcmV2ZXJzZVwiIHtcbiAgICAkYWx0LXZhbHVlOiBtdWx0aXBsZTtcbiAgfVxuXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1saW5lcywgJGFsdC12YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC13cmFwLCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XG59XG5cbi8vIDIwMDkgLSBUT0RPOiBwYXJzZSB2YWx1ZXMgaW50byBmbGV4LWRpcmVjdGlvbi9mbGV4LXdyYXBcbi8vIDIwMTEgLSBUT0RPOiBwYXJzZSB2YWx1ZXMgaW50byBmbGV4LWRpcmVjdGlvbi9mbGV4LXdyYXBcbi8vIDIwMTIgLSBmbGV4LWZsb3cgKGZsZXgtZGlyZWN0aW9uIHx8IGZsZXgtd3JhcClcbkBtaXhpbiBmbGV4LWZsb3coJHZhbHVlKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtZmxvdywgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG4vLyAyMDA5IC0gYm94LW9yZGluYWwtZ3JvdXAgKGludGVnZXIpXG4vLyAyMDExIC0gZmxleC1vcmRlciAoaW50ZWdlcilcbi8vIDIwMTIgLSBvcmRlciAoaW50ZWdlcilcbkBtaXhpbiBvcmRlcigkaW50OiAwKSB7XG4gIC8vIDIwMDlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yZGluYWwtZ3JvdXAsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihvcmRlciwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtb3JkZXI6ICRpbnQ7XG59XG5cbi8vIDIwMTIgLSBmbGV4LWdyb3cgKG51bWJlcilcbkBtaXhpbiBmbGV4LWdyb3coJG51bWJlcjogMCkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWdyb3csICRudW1iZXIsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LXBvc2l0aXZlOiAkbnVtYmVyO1xufVxuXG4vLyAyMDEyIC0gZmxleC1zaHJpbmsgKG51bWJlcilcbkBtaXhpbiBmbGV4LXNocmluaygkbnVtYmVyOiAxKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtc2hyaW5rLCAkbnVtYmVyLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1uZWdhdGl2ZTogJG51bWJlcjtcbn1cblxuLy8gMjAxMiAtIGZsZXgtYmFzaXMgKG51bWJlcilcbkBtaXhpbiBmbGV4LWJhc2lzKCR3aWR0aDogYXV0bykge1xuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWJhc2lzLCAkd2lkdGgsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiAkd2lkdGg7XG59XG5cbi8vIDIwMDkgLSBib3gtcGFjayAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBqdXN0aWZ5KVxuLy8gMjAxMSAtIGZsZXgtcGFjayAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBqdXN0aWZ5KVxuLy8gMjAxMiAtIGp1c3RpZnktY29udGVudCAoZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgc3BhY2UtYmV0d2VlbiB8IHNwYWNlLWFyb3VuZClcbkBtaXhpbiBqdXN0aWZ5LWNvbnRlbnQoJHZhbHVlOiBmbGV4LXN0YXJ0KSB7XG5cbiAgLy8gQWx0IHZhbHVlcy5cbiAgJGFsdC12YWx1ZTogJHZhbHVlO1xuICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcbiAgICAkYWx0LXZhbHVlOiBzdGFydDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAkYWx0LXZhbHVlOiBlbmQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwic3BhY2UtYmV0d2VlblwiIHtcbiAgICAkYWx0LXZhbHVlOiBqdXN0aWZ5O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInNwYWNlLWFyb3VuZFwiIHtcbiAgICAkYWx0LXZhbHVlOiBkaXN0cmlidXRlO1xuICB9XG5cbiAgLy8gMjAwOVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtcGFjaywgJGFsdC12YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGp1c3RpZnktY29udGVudCwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LXBhY2s6ICRhbHQtdmFsdWU7XG59XG5cbi8vIDIwMDkgLSBib3gtYWxpZ24gKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuLy8gMjAxMSAtIGZsZXgtYWxpZ24gKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuLy8gMjAxMiAtIGFsaWduLWl0ZW1zIChmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG5AbWl4aW4gYWxpZ24taXRlbXMoJHZhbHVlOiBzdHJldGNoKSB7XG5cbiAgJGFsdC12YWx1ZTogJHZhbHVlO1xuXG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xuICAgICRhbHQtdmFsdWU6IHN0YXJ0O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xuICAgICRhbHQtdmFsdWU6IGVuZDtcbiAgfVxuXG4gIC8vIDIwMDlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWFsaWduLCAkYWx0LXZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYWxpZ24taXRlbXMsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1hbGlnbjogJGFsdC12YWx1ZTtcbn1cblxuLy8gMjAxMSAtIGZsZXgtaXRlbS1hbGlnbiAoYXV0byB8IHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuLy8gMjAxMiAtIGFsaWduLXNlbGYgKGF1dG8gfCBmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG5AbWl4aW4gYWxpZ24tc2VsZigkdmFsdWU6IGF1dG8pIHtcblxuICAkdmFsdWUtMjAxMTogJHZhbHVlO1xuICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcbiAgICAkdmFsdWUtMjAxMTogc3RhcnQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XG4gICAgJHZhbHVlLTIwMTE6IGVuZDtcbiAgfVxuXG4gIC8vIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYWxpZ24tc2VsZiwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1pdGVtLWFsaWduOiAkdmFsdWUtMjAxMTtcbn1cblxuLy8gMjAxMSAtIGZsZXgtbGluZS1wYWNrIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGp1c3RpZnkgfCBkaXN0cmlidXRlIHwgc3RyZXRjaClcbi8vIDIwMTIgLSBhbGlnbi1jb250ZW50IChmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBzcGFjZS1iZXR3ZWVuIHwgc3BhY2UtYXJvdW5kIHwgc3RyZXRjaClcbkBtaXhpbiBhbGlnbi1jb250ZW50KCR2YWx1ZTogc3RyZXRjaCkge1xuXG4gICR2YWx1ZS0yMDExOiAkdmFsdWU7XG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xuICAgICR2YWx1ZS0yMDExOiBzdGFydDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAkdmFsdWUtMjAxMTogZW5kO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInNwYWNlLWJldHdlZW5cIiB7XG4gICAgJHZhbHVlLTIwMTE6IGp1c3RpZnk7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwic3BhY2UtYXJvdW5kXCIge1xuICAgICR2YWx1ZS0yMDExOiBkaXN0cmlidXRlO1xuICB9XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihhbGlnbi1jb250ZW50LCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LWxpbmUtcGFjazogJHZhbHVlLTIwMTE7XG59XG4iLCJAbWl4aW4gZm9udC1mYWNlKFxuICAkZm9udC1mYW1pbHksXG4gICRmaWxlLXBhdGgsXG4gICR3ZWlnaHQ6IG5vcm1hbCxcbiAgJHN0eWxlOiBub3JtYWwsXG4gICRhc3NldC1waXBlbGluZTogJGFzc2V0LXBpcGVsaW5lLFxuICAkZmlsZS1mb3JtYXRzOiBlb3Qgd29mZjIgd29mZiB0dGYgc3ZnKSB7XG5cbiAgJGZvbnQtdXJsLXByZWZpeDogZm9udC11cmwtcHJlZml4ZXIoJGFzc2V0LXBpcGVsaW5lKTtcblxuICBAZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5O1xuICAgIGZvbnQtc3R5bGU6ICRzdHlsZTtcbiAgICBmb250LXdlaWdodDogJHdlaWdodDtcblxuICAgIHNyYzogZm9udC1zb3VyY2UtZGVjbGFyYXRpb24oXG4gICAgICAkZm9udC1mYW1pbHksXG4gICAgICAkZmlsZS1wYXRoLFxuICAgICAgJGFzc2V0LXBpcGVsaW5lLFxuICAgICAgJGZpbGUtZm9ybWF0cyxcbiAgICAgICRmb250LXVybC1wcmVmaXhcbiAgICApO1xuICB9XG59XG4iLCJAbWl4aW4gZm9udC1mZWF0dXJlLXNldHRpbmdzKCRzZXR0aW5ncy4uLikge1xuICBAaWYgbGVuZ3RoKCRzZXR0aW5ncykgPT0gMCB7ICRzZXR0aW5nczogbm9uZTsgfVxuICBAaW5jbHVkZSBwcmVmaXhlcihmb250LWZlYXR1cmUtc2V0dGluZ3MsICRzZXR0aW5ncywgd2Via2l0IG1veiBtcyBzcGVjKTtcbn1cbiIsIi8vIEhpRFBJIG1peGluLiBEZWZhdWx0IHZhbHVlIHNldCB0byAxLjMgdG8gdGFyZ2V0IEdvb2dsZSBOZXh1cyA3IChodHRwOi8vYmphbmdvLmNvbS9hcnRpY2xlcy9taW4tZGV2aWNlLXBpeGVsLXJhdGlvLylcbkBtaXhpbiBoaWRwaSgkcmF0aW86IDEuMykge1xuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86ICRyYXRpbyksXG4gIG9ubHkgc2NyZWVuIGFuZCAobWluLS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAkcmF0aW8pLFxuICBvbmx5IHNjcmVlbiBhbmQgKC1vLW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86ICN7JHJhdGlvfS8xKSxcbiAgb25seSBzY3JlZW4gYW5kIChtaW4tcmVzb2x1dGlvbjogcm91bmQoJHJhdGlvICogOTZkcGkpKSxcbiAgb25seSBzY3JlZW4gYW5kIChtaW4tcmVzb2x1dGlvbjogJHJhdGlvICogMWRwcHgpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuIiwiQG1peGluIGh5cGhlbnMoJGh5cGhlbmF0aW9uOiBub25lKSB7XG4gIC8vIG5vbmUgfCBtYW51YWwgfCBhdXRvXG4gIEBpbmNsdWRlIHByZWZpeGVyKGh5cGhlbnMsICRoeXBoZW5hdGlvbiwgd2Via2l0IG1veiBtcyBzcGVjKTtcbn1cbiIsIkBtaXhpbiBpbWFnZS1yZW5kZXJpbmcgKCRtb2RlOmF1dG8pIHtcblxuICBAaWYgKCRtb2RlID09IGNyaXNwLWVkZ2VzKSB7XG4gICAgLW1zLWludGVycG9sYXRpb24tbW9kZTogbmVhcmVzdC1uZWlnaGJvcjsgLy8gSUU4K1xuICAgIGltYWdlLXJlbmRlcmluZzogLW1vei1jcmlzcC1lZGdlcztcbiAgICBpbWFnZS1yZW5kZXJpbmc6IC1vLWNyaXNwLWVkZ2VzO1xuICAgIGltYWdlLXJlbmRlcmluZzogLXdlYmtpdC1vcHRpbWl6ZS1jb250cmFzdDtcbiAgICBpbWFnZS1yZW5kZXJpbmc6IGNyaXNwLWVkZ2VzO1xuICB9XG5cbiAgQGVsc2Uge1xuICAgIGltYWdlLXJlbmRlcmluZzogJG1vZGU7XG4gIH1cbn1cbiIsIi8vIEFkZHMga2V5ZnJhbWVzIGJsb2NrcyBmb3Igc3VwcG9ydGVkIHByZWZpeGVzLCByZW1vdmluZyByZWR1bmRhbnQgcHJlZml4ZXMgaW4gdGhlIGJsb2NrJ3MgY29udGVudFxuQG1peGluIGtleWZyYW1lcygkbmFtZSkge1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci13ZWJraXQ6ICAgICRwcmVmaXgtZm9yLXdlYmtpdDtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3ItbW96aWxsYTogICAkcHJlZml4LWZvci1tb3ppbGxhO1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci1taWNyb3NvZnQ6ICRwcmVmaXgtZm9yLW1pY3Jvc29mdDtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3Itb3BlcmE6ICAgICAkcHJlZml4LWZvci1vcGVyYTtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3Itc3BlYzogICAgICAkcHJlZml4LWZvci1zcGVjO1xuXG4gIEBpZiAkb3JpZ2luYWwtcHJlZml4LWZvci13ZWJraXQge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtcHJlZml4LWZvci1hbGwoKTtcbiAgICAkcHJlZml4LWZvci13ZWJraXQ6IHRydWUgIWdsb2JhbDtcbiAgICBALXdlYmtpdC1rZXlmcmFtZXMgI3skbmFtZX0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG5cbiAgQGlmICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1vemlsbGEge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtcHJlZml4LWZvci1hbGwoKTtcbiAgICAkcHJlZml4LWZvci1tb3ppbGxhOiB0cnVlICFnbG9iYWw7XG4gICAgQC1tb3ota2V5ZnJhbWVzICN7JG5hbWV9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuXG4gICRwcmVmaXgtZm9yLXdlYmtpdDogICAgJG9yaWdpbmFsLXByZWZpeC1mb3Itd2Via2l0ICAgICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW1vemlsbGE6ICAgJG9yaWdpbmFsLXByZWZpeC1mb3ItbW96aWxsYSAgICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW1pY3Jvc29mdDogJG9yaWdpbmFsLXByZWZpeC1mb3ItbWljcm9zb2Z0ICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW9wZXJhOiAgICAgJG9yaWdpbmFsLXByZWZpeC1mb3Itb3BlcmEgICAgICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLXNwZWM6ICAgICAgJG9yaWdpbmFsLXByZWZpeC1mb3Itc3BlYyAgICAgICFnbG9iYWw7XG5cbiAgQGlmICRvcmlnaW5hbC1wcmVmaXgtZm9yLXNwZWMge1xuICAgIEBrZXlmcmFtZXMgI3skbmFtZX0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG4iLCJAbWl4aW4gbGluZWFyLWdyYWRpZW50KCRwb3MsICRnMSwgJGcyOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzM6IG51bGwsICRnNDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGc1OiBudWxsLCAkZzY6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnNzogbnVsbCwgJGc4OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzk6IG51bGwsICRnMTA6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRmYWxsYmFjazogbnVsbCkge1xuICAvLyBEZXRlY3Qgd2hhdCB0eXBlIG9mIHZhbHVlIGV4aXN0cyBpbiAkcG9zXG4gICRwb3MtdHlwZTogdHlwZS1vZihudGgoJHBvcywgMSkpO1xuICAkcG9zLXNwZWM6IG51bGw7XG4gICRwb3MtZGVncmVlOiBudWxsO1xuXG4gIC8vIElmICRwb3MgaXMgbWlzc2luZyBmcm9tIG1peGluLCByZWFzc2lnbiB2YXJzIGFuZCBhZGQgZGVmYXVsdCBwb3NpdGlvblxuICBAaWYgKCRwb3MtdHlwZSA9PSBjb2xvcikgb3IgKG50aCgkcG9zLCAxKSA9PSBcInRyYW5zcGFyZW50XCIpICB7XG4gICAgJGcxMDogJGc5OyAkZzk6ICRnODsgJGc4OiAkZzc7ICRnNzogJGc2OyAkZzY6ICRnNTtcbiAgICAkZzU6ICRnNDsgJGc0OiAkZzM7ICRnMzogJGcyOyAkZzI6ICRnMTsgJGcxOiAkcG9zO1xuICAgICRwb3M6IG51bGw7XG4gIH1cblxuICBAaWYgJHBvcyB7XG4gICAgJHBvc2l0aW9uczogX2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyKCRwb3MpO1xuICAgICRwb3MtZGVncmVlOiBudGgoJHBvc2l0aW9ucywgMSk7XG4gICAgJHBvcy1zcGVjOiAgIG50aCgkcG9zaXRpb25zLCAyKTtcbiAgfVxuXG4gICRmdWxsOiAkZzEsICRnMiwgJGczLCAkZzQsICRnNSwgJGc2LCAkZzcsICRnOCwgJGc5LCAkZzEwO1xuXG4gIC8vIFNldCAkZzEgYXMgdGhlIGRlZmF1bHQgZmFsbGJhY2sgY29sb3JcbiAgJGZhbGxiYWNrLWNvbG9yOiBudGgoJGcxLCAxKTtcblxuICAvLyBJZiAkZmFsbGJhY2sgaXMgYSBjb2xvciB1c2UgdGhhdCBjb2xvciBhcyB0aGUgZmFsbGJhY2sgY29sb3JcbiAgQGlmICh0eXBlLW9mKCRmYWxsYmFjaykgPT0gY29sb3IpIG9yICgkZmFsbGJhY2sgPT0gXCJ0cmFuc3BhcmVudFwiKSB7XG4gICAgJGZhbGxiYWNrLWNvbG9yOiAkZmFsbGJhY2s7XG4gIH1cblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZmFsbGJhY2stY29sb3I7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KCRwb3MtZGVncmVlICRmdWxsKTsgLy8gU2FmYXJpIDUuMSssIENocm9tZVxuICBiYWNrZ3JvdW5kLWltYWdlOiB1bnF1b3RlKFwibGluZWFyLWdyYWRpZW50KCN7JHBvcy1zcGVjfSN7JGZ1bGx9KVwiKTtcbn1cbiIsIkBtaXhpbiBwZXJzcGVjdGl2ZSgkZGVwdGg6IG5vbmUpIHtcbiAgLy8gbm9uZSB8IDxsZW5ndGg+XG4gIEBpbmNsdWRlIHByZWZpeGVyKHBlcnNwZWN0aXZlLCAkZGVwdGgsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBwZXJzcGVjdGl2ZS1vcmlnaW4oJHZhbHVlOiA1MCUgNTAlKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKHBlcnNwZWN0aXZlLW9yaWdpbiwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuIiwiQG1peGluIHBsYWNlaG9sZGVyIHtcbiAgJHBsYWNlaG9sZGVyczogXCI6LXdlYmtpdC1pbnB1dFwiIFwiOi1tb3pcIiBcIi1tb3pcIiBcIi1tcy1pbnB1dFwiO1xuICBAZWFjaCAkcGxhY2Vob2xkZXIgaW4gJHBsYWNlaG9sZGVycyB7XG4gICAgJjojeyRwbGFjZWhvbGRlcn0tcGxhY2Vob2xkZXIge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG4iLCIvLyBSZXF1aXJlcyBTYXNzIDMuMStcbkBtaXhpbiByYWRpYWwtZ3JhZGllbnQoJGcxLCAkZzIsXG4gICAgICAgICAgICAgICAgICAgICAgICRnMzogbnVsbCwgJGc0OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzU6IG51bGwsICRnNjogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGc3OiBudWxsLCAkZzg6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnOTogbnVsbCwgJGcxMDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJHBvczogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJHNoYXBlLXNpemU6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRmYWxsYmFjazogbnVsbCkge1xuXG4gICRkYXRhOiBfcmFkaWFsLWFyZy1wYXJzZXIoJGcxLCAkZzIsICRwb3MsICRzaGFwZS1zaXplKTtcbiAgJGcxOiAgbnRoKCRkYXRhLCAxKTtcbiAgJGcyOiAgbnRoKCRkYXRhLCAyKTtcbiAgJHBvczogbnRoKCRkYXRhLCAzKTtcbiAgJHNoYXBlLXNpemU6IG50aCgkZGF0YSwgNCk7XG5cbiAgJGZ1bGw6ICRnMSwgJGcyLCAkZzMsICRnNCwgJGc1LCAkZzYsICRnNywgJGc4LCAkZzksICRnMTA7XG5cbiAgLy8gU3RyaXAgZGVwcmVjYXRlZCBjb3Zlci9jb250YWluIGZvciBzcGVjXG4gICRzaGFwZS1zaXplLXNwZWM6IF9zaGFwZS1zaXplLXN0cmlwcGVyKCRzaGFwZS1zaXplKTtcblxuICAvLyBTZXQgJGcxIGFzIHRoZSBkZWZhdWx0IGZhbGxiYWNrIGNvbG9yXG4gICRmaXJzdC1jb2xvcjogbnRoKCRmdWxsLCAxKTtcbiAgJGZhbGxiYWNrLWNvbG9yOiBudGgoJGZpcnN0LWNvbG9yLCAxKTtcblxuICBAaWYgKHR5cGUtb2YoJGZhbGxiYWNrKSA9PSBjb2xvcikgb3IgKCRmYWxsYmFjayA9PSBcInRyYW5zcGFyZW50XCIpIHtcbiAgICAkZmFsbGJhY2stY29sb3I6ICRmYWxsYmFjaztcbiAgfVxuXG4gIC8vIEFkZCBDb21tYXMgYW5kIHNwYWNlc1xuICAkc2hhcGUtc2l6ZTogaWYoJHNoYXBlLXNpemUsIFwiI3skc2hhcGUtc2l6ZX0sIFwiLCBudWxsKTtcbiAgJHBvczogICAgICAgIGlmKCRwb3MsIFwiI3skcG9zfSwgXCIsIG51bGwpO1xuICAkcG9zLXNwZWM6ICAgaWYoJHBvcywgXCJhdCAjeyRwb3N9XCIsIG51bGwpO1xuICAkc2hhcGUtc2l6ZS1zcGVjOiBpZigoJHNoYXBlLXNpemUtc3BlYyAhPSBcIiBcIikgYW5kICgkcG9zID09IG51bGwpLCBcIiN7JHNoYXBlLXNpemUtc3BlY30sIFwiLCBcIiN7JHNoYXBlLXNpemUtc3BlY30gXCIpO1xuXG4gIGJhY2tncm91bmQtY29sb3I6ICAkZmFsbGJhY2stY29sb3I7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtcmFkaWFsLWdyYWRpZW50KHVucXVvdGUoI3skcG9zfSN7JHNoYXBlLXNpemV9I3skZnVsbH0pKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdW5xdW90ZShcInJhZGlhbC1ncmFkaWVudCgjeyRzaGFwZS1zaXplLXNwZWN9I3skcG9zLXNwZWN9I3skZnVsbH0pXCIpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIE91dHB1dHMgdGhlIHNwZWMgYW5kIHByZWZpeGVkIHZlcnNpb25zIG9mIHRoZSBgOjpzZWxlY3Rpb25gIHBzZXVkby1lbGVtZW50LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7Qm9vbH0gJGN1cnJlbnQtc2VsZWN0b3IgW2ZhbHNlXVxyXG4vLy8gICBJZiBzZXQgdG8gYHRydWVgLCBpdCB0YWtlcyB0aGUgY3VycmVudCBlbGVtZW50IGludG8gY29uc2lkZXJhdGlvbi5cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIEBpbmNsdWRlIHNlbGVjdGlvbih0cnVlKSB7XHJcbi8vLyAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZiYjUyO1xyXG4vLy8gICAgIH1cclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmVsZW1lbnQ6Oi1tb3otc2VsZWN0aW9uIHtcclxuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZiYjUyO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gICAuZWxlbWVudDo6c2VsZWN0aW9uIHtcclxuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZiYjUyO1xyXG4vLy8gICB9XHJcblxyXG5AbWl4aW4gc2VsZWN0aW9uKCRjdXJyZW50LXNlbGVjdG9yOiBmYWxzZSkge1xyXG4gIEBpZiAkY3VycmVudC1zZWxlY3RvciB7XHJcbiAgICAmOjotbW96LXNlbGVjdGlvbiB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG5cclxuICAgICY6OnNlbGVjdGlvbiB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH0gQGVsc2Uge1xyXG4gICAgOjotbW96LXNlbGVjdGlvbiB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG5cclxuICAgIDo6c2VsZWN0aW9uIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIkBtaXhpbiB0ZXh0LWRlY29yYXRpb24oJHZhbHVlKSB7XG4vLyA8dGV4dC1kZWNvcmF0aW9uLWxpbmU+IHx8IDx0ZXh0LWRlY29yYXRpb24tc3R5bGU+IHx8IDx0ZXh0LWRlY29yYXRpb24tY29sb3I+XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRleHQtZGVjb3JhdGlvbiwgJHZhbHVlLCBtb3opO1xufVxuXG5AbWl4aW4gdGV4dC1kZWNvcmF0aW9uLWxpbmUoJGxpbmU6IG5vbmUpIHtcbi8vIG5vbmUgfHwgdW5kZXJsaW5lIHx8IG92ZXJsaW5lIHx8IGxpbmUtdGhyb3VnaFxuICBAaW5jbHVkZSBwcmVmaXhlcih0ZXh0LWRlY29yYXRpb24tbGluZSwgJGxpbmUsIG1veik7XG59XG5cbkBtaXhpbiB0ZXh0LWRlY29yYXRpb24tc3R5bGUoJHN0eWxlOiBzb2xpZCkge1xuLy8gc29saWQgfHwgZG91YmxlIHx8IGRvdHRlZCB8fCBkYXNoZWQgfHwgd2F2eVxuICBAaW5jbHVkZSBwcmVmaXhlcih0ZXh0LWRlY29yYXRpb24tc3R5bGUsICRzdHlsZSwgbW96IHdlYmtpdCk7XG59XG5cbkBtaXhpbiB0ZXh0LWRlY29yYXRpb24tY29sb3IoJGNvbG9yOiBjdXJyZW50Q29sb3IpIHtcbi8vIGN1cnJlbnRDb2xvciB8fCA8Y29sb3I+XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRleHQtZGVjb3JhdGlvbi1jb2xvciwgJGNvbG9yLCBtb3opO1xufVxuIiwiQG1peGluIHRyYW5zZm9ybSgkcHJvcGVydHk6IG5vbmUpIHtcbiAgLy8gbm9uZSB8IDx0cmFuc2Zvcm0tZnVuY3Rpb24+XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zZm9ybSwgJHByb3BlcnR5LCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG59XG5cbkBtaXhpbiB0cmFuc2Zvcm0tb3JpZ2luKCRheGVzOiA1MCUpIHtcbiAgLy8geC1heGlzIC0gbGVmdCB8IGNlbnRlciB8IHJpZ2h0ICB8IGxlbmd0aCB8ICVcbiAgLy8geS1heGlzIC0gdG9wICB8IGNlbnRlciB8IGJvdHRvbSB8IGxlbmd0aCB8ICVcbiAgLy8gei1heGlzIC0gICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aFxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2Zvcm0tb3JpZ2luLCAkYXhlcywgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xufVxuXG5AbWl4aW4gdHJhbnNmb3JtLXN0eWxlKCRzdHlsZTogZmxhdCkge1xuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2Zvcm0tc3R5bGUsICRzdHlsZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xufVxuIiwiLy8gU2hvcnRoYW5kIG1peGluLiBTdXBwb3J0cyBtdWx0aXBsZSBwYXJlbnRoZXNlcy1kZWxpbWluYXRlZCB2YWx1ZXMgZm9yIGVhY2ggdmFyaWFibGUuXG4vLyBFeGFtcGxlOiBAaW5jbHVkZSB0cmFuc2l0aW9uIChhbGwgMnMgZWFzZS1pbi1vdXQpO1xuLy8gICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbiAob3BhY2l0eSAxcyBlYXNlLWluIDJzLCB3aWR0aCAycyBlYXNlLW91dCk7XG4vLyAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLXByb3BlcnR5ICh0cmFuc2Zvcm0sIG9wYWNpdHkpO1xuXG5AbWl4aW4gdHJhbnNpdGlvbigkcHJvcGVydGllcy4uLikge1xuICAvLyBGaXggZm9yIHZlbmRvci1wcmVmaXggdHJhbnNmb3JtIHByb3BlcnR5XG4gICRuZWVkcy1wcmVmaXhlczogZmFsc2U7XG4gICR3ZWJraXQ6ICgpO1xuICAkbW96OiAoKTtcbiAgJHNwZWM6ICgpO1xuXG4gIC8vIENyZWF0ZSBsaXN0cyBmb3IgdmVuZG9yLXByZWZpeGVkIHRyYW5zZm9ybVxuICBAZWFjaCAkbGlzdCBpbiAkcHJvcGVydGllcyB7XG4gICAgQGlmIG50aCgkbGlzdCwgMSkgPT0gXCJ0cmFuc2Zvcm1cIiB7XG4gICAgICAkbmVlZHMtcHJlZml4ZXM6IHRydWU7XG4gICAgICAkbGlzdDE6IC13ZWJraXQtdHJhbnNmb3JtO1xuICAgICAgJGxpc3QyOiAtbW96LXRyYW5zZm9ybTtcbiAgICAgICRsaXN0MzogKCk7XG5cbiAgICAgIEBlYWNoICR2YXIgaW4gJGxpc3Qge1xuICAgICAgICAkbGlzdDM6IGpvaW4oJGxpc3QzLCAkdmFyKTtcblxuICAgICAgICBAaWYgJHZhciAhPSBcInRyYW5zZm9ybVwiIHtcbiAgICAgICAgICAkbGlzdDE6IGpvaW4oJGxpc3QxLCAkdmFyKTtcbiAgICAgICAgICAkbGlzdDI6IGpvaW4oJGxpc3QyLCAkdmFyKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAkd2Via2l0OiBhcHBlbmQoJHdlYmtpdCwgJGxpc3QxKTtcbiAgICAgICRtb3o6ICAgIGFwcGVuZCgkbW96LCAgICAkbGlzdDIpO1xuICAgICAgJHNwZWM6ICAgYXBwZW5kKCRzcGVjLCAgICRsaXN0Myk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkd2Via2l0OiBhcHBlbmQoJHdlYmtpdCwgJGxpc3QsIGNvbW1hKTtcbiAgICAgICRtb3o6ICAgIGFwcGVuZCgkbW96LCAgICAkbGlzdCwgY29tbWEpO1xuICAgICAgJHNwZWM6ICAgYXBwZW5kKCRzcGVjLCAgICRsaXN0LCBjb21tYSk7XG4gICAgfVxuICB9XG5cbiAgQGlmICRuZWVkcy1wcmVmaXhlcyB7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiAkd2Via2l0O1xuICAgICAgIC1tb3otdHJhbnNpdGlvbjogJG1vejtcbiAgICAgICAgICAgIHRyYW5zaXRpb246ICRzcGVjO1xuICB9IEBlbHNlIHtcbiAgICBAaWYgbGVuZ3RoKCRwcm9wZXJ0aWVzKSA+PSAxIHtcbiAgICAgIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24sICRwcm9wZXJ0aWVzLCB3ZWJraXQgbW96IHNwZWMpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJHByb3BlcnRpZXM6IGFsbCAwLjE1cyBlYXNlLW91dCAwcztcbiAgICAgIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24sICRwcm9wZXJ0aWVzLCB3ZWJraXQgbW96IHNwZWMpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi1wcm9wZXJ0eSgkcHJvcGVydGllcy4uLikge1xuICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoJHByb3BlcnRpZXMsIFwid2Via2l0XCIpO1xuICAgICAtbW96LXRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoJHByb3BlcnRpZXMsIFwibW96XCIpO1xuICAgICAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoJHByb3BlcnRpZXMsIGZhbHNlKTtcbn1cblxuQG1peGluIHRyYW5zaXRpb24tZHVyYXRpb24oJHRpbWVzLi4uKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24tZHVyYXRpb24sICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKCRtb3Rpb25zLi4uKSB7XG4gIC8vIGVhc2UgfCBsaW5lYXIgfCBlYXNlLWluIHwgZWFzZS1vdXQgfCBlYXNlLWluLW91dCB8IGN1YmljLWJlemllcigpXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uLCAkbW90aW9ucywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIHRyYW5zaXRpb24tZGVsYXkoJHRpbWVzLi4uKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24tZGVsYXksICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cbiIsIkBtaXhpbiB1c2VyLXNlbGVjdCgkdmFsdWU6IG5vbmUpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIodXNlci1zZWxlY3QsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBzcGVjKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYGJvcmRlci1jb2xvcmAgb24gc3BlY2lmaWMgc2lkZXMgb2YgYSBib3guIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLWNvbG9yKCNhNjBiNTUgIzc2Y2Q5YyBudWxsICNlOGFlMWEpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBib3JkZXItbGVmdC1jb2xvcjogI2U4YWUxYTtcbi8vLyAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAjNzZjZDljO1xuLy8vICAgICBib3JkZXItdG9wLWNvbG9yOiAjYTYwYjU1O1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxuLy8vXG4vLy8gQG91dHB1dCBgYm9yZGVyLWNvbG9yYFxuXG5AbWl4aW4gYm9yZGVyLWNvbG9yKCR2YWxzLi4uKSB7XG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KGJvcmRlciwgY29sb3IsICR2YWxzLi4uKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYGJvcmRlci1yYWRpdXNgIG9uIGJvdGggY29ybmVycyBvbiB0aGUgc2lkZSBvZiBhIGJveC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcmFkaWlcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50LW9uZSB7XG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci10b3AtcmFkaXVzKDVweCk7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5lbGVtZW50LXR3byB7XG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci1sZWZ0LXJhZGl1cygzcHgpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQtb25lIHtcbi8vLyAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNXB4O1xuLy8vICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNXB4O1xuLy8vICAgfVxuLy8vXG4vLy8gICAuZWxlbWVudC10d28ge1xuLy8vICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAzcHg7XG4vLy8gICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDNweDtcbi8vLyAgIH1cbi8vL1xuLy8vIEBvdXRwdXQgYGJvcmRlci1yYWRpdXNgXG5cbkBtaXhpbiBib3JkZXItdG9wLXJhZGl1cygkcmFkaWkpIHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJHJhZGlpO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJHJhZGlpO1xufVxuXG5AbWl4aW4gYm9yZGVyLXJpZ2h0LXJhZGl1cygkcmFkaWkpIHtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRyYWRpaTtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRyYWRpaTtcbn1cblxuQG1peGluIGJvcmRlci1ib3R0b20tcmFkaXVzKCRyYWRpaSkge1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkcmFkaWk7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkcmFkaWk7XG59XG5cbkBtaXhpbiBib3JkZXItbGVmdC1yYWRpdXMoJHJhZGlpKSB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRyYWRpaTtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJHJhZGlpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgYm9yZGVyLXN0eWxlYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBib3JkZXItc3R5bGUoZGFzaGVkIG51bGwgc29saWQpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcbi8vLyAgICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxuLy8vXG4vLy8gQG91dHB1dCBgYm9yZGVyLXN0eWxlYFxuXG5AbWl4aW4gYm9yZGVyLXN0eWxlKCR2YWxzLi4uKSB7XG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KGJvcmRlciwgc3R5bGUsICR2YWxzLi4uKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYGJvcmRlci13aWR0aGAgb24gc3BlY2lmaWMgc2lkZXMgb2YgYSBib3guIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLXdpZHRoKDFlbSBudWxsIDIwcHgpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAyMHB4O1xuLy8vICAgICBib3JkZXItdG9wLXdpZHRoOiAxZW07XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7bWl4aW59IGRpcmVjdGlvbmFsLXByb3BlcnR5XG4vLy9cbi8vLyBAb3V0cHV0IGBib3JkZXItd2lkdGhgXG5cbkBtaXhpbiBib3JkZXItd2lkdGgoJHZhbHMuLi4pIHtcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkoYm9yZGVyLCB3aWR0aCwgJHZhbHMuLi4pO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gR2VuZXJhdGVzIHZhcmlhYmxlcyBmb3IgYWxsIGJ1dHRvbnMuIFBsZWFzZSBub3RlIHRoYXQgeW91IG11c3QgdXNlIGludGVycG9sYXRpb24gb24gdGhlIHZhcmlhYmxlOiBgI3skYWxsLWJ1dHRvbnN9YC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgI3skYWxsLWJ1dHRvbnN9IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YwMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgI3skYWxsLWJ1dHRvbnMtZm9jdXN9LFxuLy8vICAgI3skYWxsLWJ1dHRvbnMtaG92ZXJ9IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzBmMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgI3skYWxsLWJ1dHRvbnMtYWN0aXZlfSB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMwMGY7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICBidXR0b24sXG4vLy8gICBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNmMDA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIGJ1dHRvbjpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJidXR0b25cIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwicmVzZXRcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwic3VibWl0XCJdOmZvY3VzLFxuLy8vICAgYnV0dG9uOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cImJ1dHRvblwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJyZXNldFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl06aG92ZXIge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGYwO1xuLy8vICAgfVxuLy8vXG4vLy8gICBidXR0b246YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cImJ1dHRvblwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwicmVzZXRcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXTphY3RpdmUge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBmO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUgYXNzaWduLWlucHV0c1xuLy8vXG4vLy8gQHR5cGUgTGlzdFxuLy8vXG4vLy8gQHRvZG8gUmVtb3ZlIGRvdWJsZSBhc3NpZ25lZCB2YXJpYWJsZXMgKExpbmVzIDU54oCTNjIpIGluIHY1LjAuMFxuXG4kYnV0dG9ucy1saXN0OiAnYnV0dG9uJyxcbiAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiYnV0dG9uXCJdJyxcbiAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwicmVzZXRcIl0nLFxuICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJzdWJtaXRcIl0nO1xuXG4kYWxsLWJ1dHRvbnM6ICAgICAgICBhc3NpZ24taW5wdXRzKCRidXR0b25zLWxpc3QpO1xuJGFsbC1idXR0b25zLWFjdGl2ZTogYXNzaWduLWlucHV0cygkYnV0dG9ucy1saXN0LCBhY3RpdmUpO1xuJGFsbC1idXR0b25zLWZvY3VzOiAgYXNzaWduLWlucHV0cygkYnV0dG9ucy1saXN0LCBmb2N1cyk7XG4kYWxsLWJ1dHRvbnMtaG92ZXI6ICBhc3NpZ24taW5wdXRzKCRidXR0b25zLWxpc3QsIGhvdmVyKTtcblxuJGFsbC1idXR0b24taW5wdXRzOiAgICAgICAgJGFsbC1idXR0b25zO1xuJGFsbC1idXR0b24taW5wdXRzLWFjdGl2ZTogJGFsbC1idXR0b25zLWFjdGl2ZTtcbiRhbGwtYnV0dG9uLWlucHV0cy1mb2N1czogICRhbGwtYnV0dG9ucy1mb2N1cztcbiRhbGwtYnV0dG9uLWlucHV0cy1ob3ZlcjogICRhbGwtYnV0dG9ucy1ob3ZlcjtcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGFuIGVhc3kgd2F5IHRvIGluY2x1ZGUgYSBjbGVhcmZpeCBmb3IgY29udGFpbmluZyBmbG9hdHMuXG4vLy9cbi8vLyBAbGluayBodHRwOi8vY3NzbW9qby5jb20vbGF0ZXN0X25ld19jbGVhcmZpeF9zb19mYXIvXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudDo6YWZ0ZXIge1xuLy8vICAgICBjbGVhcjogYm90aDtcbi8vLyAgICAgY29udGVudDogXCJcIjtcbi8vLyAgICAgZGlzcGxheTogdGFibGU7XG4vLy8gICB9XG5cbkBtaXhpbiBjbGVhcmZpeCB7XG4gICY6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBUcnVuY2F0ZXMgdGV4dCBhbmQgYWRkcyBhbiBlbGxpcHNpcyB0byByZXByZXNlbnQgb3ZlcmZsb3cuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIFsxMDAlXVxuLy8vICAgTWF4LXdpZHRoIGZvciB0aGUgc3RyaW5nIHRvIHJlc3BlY3QgYmVmb3JlIGJlaW5nIHRydW5jYXRlZFxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGVsbGlwc2lzO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4vLy8gICAgIG1heC13aWR0aDogMTAwJTtcbi8vLyAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbi8vLyAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4vLy8gICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4vLy8gICAgIHdvcmQtd3JhcDogbm9ybWFsO1xuLy8vICAgfVxuXG5AbWl4aW4gZWxsaXBzaXMoJHdpZHRoOiAxMDAlKSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAkd2lkdGg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB3b3JkLXdyYXA6IG5vcm1hbDtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEdlb3JnaWEgZm9udCBzdGFjay5cbi8vL1xuLy8vIEB0eXBlIExpc3RcblxuJGdlb3JnaWE6IFwiR2VvcmdpYVwiLCBcIkNhbWJyaWFcIiwgXCJUaW1lcyBOZXcgUm9tYW5cIiwgXCJUaW1lc1wiLCBzZXJpZjtcblxuLy8vIEhlbHZldGljYSBmb250IHN0YWNrLlxuLy8vXG4vLy8gQHR5cGUgTGlzdFxuXG4kaGVsdmV0aWNhOiBcIkhlbHZldGljYSBOZXVlXCIsIFwiSGVsdmV0aWNhXCIsIFwiUm9ib3RvXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcblxuLy8vIEx1Y2lkYSBHcmFuZGUgZm9udCBzdGFjay5cbi8vL1xuLy8vIEB0eXBlIExpc3RcblxuJGx1Y2lkYS1ncmFuZGU6IFwiTHVjaWRhIEdyYW5kZVwiLCBcIlRhaG9tYVwiLCBcIlZlcmRhbmFcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuXG4vLy8gTW9ub3NwYWNlIGZvbnQgc3RhY2suXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG5cbiRtb25vc3BhY2U6IFwiQml0c3RyZWFtIFZlcmEgU2FucyBNb25vXCIsIFwiQ29uc29sYXNcIiwgXCJDb3VyaWVyXCIsIG1vbm9zcGFjZTtcblxuLy8vIFZlcmRhbmEgZm9udCBzdGFjay5cbi8vL1xuLy8vIEB0eXBlIExpc3RcblxuJHZlcmRhbmE6IFwiVmVyZGFuYVwiLCBcIkdlbmV2YVwiLCBzYW5zLXNlcmlmO1xuIiwiLy8vIEhpZGVzIHRoZSB0ZXh0IGluIGFuIGVsZW1lbnQsIGNvbW1vbmx5IHVzZWQgdG8gc2hvdyBhbiBpbWFnZS4gU29tZSBlbGVtZW50cyB3aWxsIG5lZWQgYmxvY2stbGV2ZWwgc3R5bGVzIGFwcGxpZWQuXG4vLy9cbi8vLyBAbGluayBodHRwOi8vemVsZG1hbi5jb20vMjAxMi8wMy8wMS9yZXBsYWNpbmctdGhlLTk5OTlweC1oYWNrLW5ldy1pbWFnZS1yZXBsYWNlbWVudFxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGhpZGUtdGV4dDtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbi8vLyAgICAgdGV4dC1pbmRlbnQ6IDEwMSU7XG4vLy8gICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4vLy8gICB9XG4vLy9cbi8vLyBAdG9kbyBSZW1vdmUgaGVpZ2h0IGFyZ3VtZW50IGluIHY1LjAuMFxuXG5AbWl4aW4gaGlkZS10ZXh0KCRoZWlnaHQ6IG51bGwpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1pbmRlbnQ6IDEwMSU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgQGlmICRoZWlnaHQge1xuICAgIEB3YXJuIFwiVGhlIGBoaWRlLXRleHRgIG1peGluIGhhcyBjaGFuZ2VkIGFuZCBubyBsb25nZXIgcmVxdWlyZXMgYSBoZWlnaHQuIFRoZSBoZWlnaHQgYXJndW1lbnQgd2lsbCBubyBsb25nZXIgYmUgYWNjZXB0ZWQgaW4gdjUuMC4wXCI7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYG1hcmdpbmAgb24gc3BlY2lmaWMgc2lkZXMgb2YgYSBib3guIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgbWFyZ2luKG51bGwgMTBweCAzZW0gMjB2aCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIG1hcmdpbi1ib3R0b206IDNlbTtcbi8vLyAgICAgbWFyZ2luLWxlZnQ6IDIwdmg7XG4vLy8gICAgIG1hcmdpbi1yaWdodDogMTBweDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcbi8vL1xuLy8vIEBvdXRwdXQgYG1hcmdpbmBcblxuQG1peGluIG1hcmdpbigkdmFscy4uLikge1xuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShtYXJnaW4sIGZhbHNlLCAkdmFscy4uLik7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBwYWRkaW5nYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBwYWRkaW5nKDEydmggbnVsbCAxMHB4IDUlKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4vLy8gICAgIHBhZGRpbmctbGVmdDogNSU7XG4vLy8gICAgIHBhZGRpbmctdG9wOiAxMnZoO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxuLy8vXG4vLy8gQG91dHB1dCBgcGFkZGluZ2BcblxuQG1peGluIHBhZGRpbmcoJHZhbHMuLi4pIHtcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkocGFkZGluZywgZmFsc2UsICR2YWxzLi4uKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciBzZXR0aW5nIGFuIGVsZW1lbnTigJlzIHBvc2l0aW9uLiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXG4vLy9cbi8vLyBAcGFyYW0ge1Bvc2l0aW9ufSAkcG9zaXRpb24gW3JlbGF0aXZlXVxuLy8vICAgQSBDU1MgcG9zaXRpb24gdmFsdWVcbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJGNvb3JkaW5hdGVzIFtudWxsIG51bGwgbnVsbCBudWxsXVxuLy8vICAgTGlzdCBvZiB2YWx1ZXMgdGhhdCBjb3JyZXNwb25kIHRvIHRoZSA0LXZhbHVlIHN5bnRheCBmb3IgdGhlIGVkZ2VzIG9mIGEgYm94XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDAgbnVsbCBudWxsIDEwZW0pO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBsZWZ0OiAxMGVtO1xuLy8vICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4vLy8gICAgIHRvcDogMDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gaXMtbGVuZ3RoXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSB1bnBhY2tcblxuQG1peGluIHBvc2l0aW9uKCRwb3NpdGlvbjogcmVsYXRpdmUsICRjb29yZGluYXRlczogbnVsbCBudWxsIG51bGwgbnVsbCkge1xuICBAaWYgdHlwZS1vZigkcG9zaXRpb24pID09IGxpc3Qge1xuICAgICRjb29yZGluYXRlczogJHBvc2l0aW9uO1xuICAgICRwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cblxuICAkY29vcmRpbmF0ZXM6IHVucGFjaygkY29vcmRpbmF0ZXMpO1xuXG4gICRvZmZzZXRzOiAoXG4gICAgdG9wOiAgICBudGgoJGNvb3JkaW5hdGVzLCAxKSxcbiAgICByaWdodDogIG50aCgkY29vcmRpbmF0ZXMsIDIpLFxuICAgIGJvdHRvbTogbnRoKCRjb29yZGluYXRlcywgMyksXG4gICAgbGVmdDogICBudGgoJGNvb3JkaW5hdGVzLCA0KVxuICApO1xuXG4gIHBvc2l0aW9uOiAkcG9zaXRpb247XG5cbiAgQGVhY2ggJG9mZnNldCwgJHZhbHVlIGluICRvZmZzZXRzIHtcbiAgICBAaWYgaXMtbGVuZ3RoKCR2YWx1ZSkge1xuICAgICAgI3skb2Zmc2V0fTogJHZhbHVlO1xuICAgIH1cbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQSBtaXhpbiBmb3IgZ2VuZXJhdGluZyB2ZW5kb3IgcHJlZml4ZXMgb24gbm9uLXN0YW5kYXJkaXplZCBwcm9wZXJ0aWVzLlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRwcm9wZXJ0eVxuLy8vICAgUHJvcGVydHkgdG8gcHJlZml4XG4vLy9cbi8vLyBAcGFyYW0geyp9ICR2YWx1ZVxuLy8vICAgVmFsdWUgdG8gdXNlXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRwcmVmaXhlc1xuLy8vICAgUHJlZml4ZXMgdG8gZGVmaW5lXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgcHJlZml4ZXIoYm9yZGVyLXJhZGl1cywgMTBweCwgd2Via2l0IG1zIHNwZWMpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDEwcHg7XG4vLy8gICAgIC1tb3otYm9yZGVyLXJhZGl1czogMTBweDtcbi8vLyAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3Itd2Via2l0XG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci1tb3ppbGxhXG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci1taWNyb3NvZnRcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLW9wZXJhXG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci1zcGVjXG5cbkBtaXhpbiBwcmVmaXhlcigkcHJvcGVydHksICR2YWx1ZSwgJHByZWZpeGVzKSB7XG4gIEBlYWNoICRwcmVmaXggaW4gJHByZWZpeGVzIHtcbiAgICBAaWYgJHByZWZpeCA9PSB3ZWJraXQge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLXdlYmtpdCB7XG4gICAgICAgIC13ZWJraXQtI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfSBAZWxzZSBpZiAkcHJlZml4ID09IG1veiB7XG4gICAgICBAaWYgJHByZWZpeC1mb3ItbW96aWxsYSB7XG4gICAgICAgIC1tb3otI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfSBAZWxzZSBpZiAkcHJlZml4ID09IG1zIHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci1taWNyb3NvZnQge1xuICAgICAgICAtbXMtI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfSBAZWxzZSBpZiAkcHJlZml4ID09IG8ge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLW9wZXJhIHtcbiAgICAgICAgLW8tI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfSBAZWxzZSBpZiAkcHJlZml4ID09IHNwZWMge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLXNwZWMge1xuICAgICAgICAjeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlICB7XG4gICAgICBAd2FybiBcIlVucmVjb2duaXplZCBwcmVmaXg6ICN7JHByZWZpeH1cIjtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGRpc2FibGUtcHJlZml4LWZvci1hbGwoKSB7XG4gICRwcmVmaXgtZm9yLXdlYmtpdDogICAgZmFsc2UgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3ItbW96aWxsYTogICBmYWxzZSAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1taWNyb3NvZnQ6IGZhbHNlICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW9wZXJhOiAgICAgZmFsc2UgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3Itc3BlYzogICAgICBmYWxzZSAhZ2xvYmFsO1xufVxuIiwiQG1peGluIHJldGluYS1pbWFnZSgkZmlsZW5hbWUsICRiYWNrZ3JvdW5kLXNpemUsICRleHRlbnNpb246IHBuZywgJHJldGluYS1maWxlbmFtZTogbnVsbCwgJHJldGluYS1zdWZmaXg6IF8yeCwgJGFzc2V0LXBpcGVsaW5lOiAkYXNzZXQtcGlwZWxpbmUpIHtcbiAgQGlmICRhc3NldC1waXBlbGluZSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogaW1hZ2UtdXJsKFwiI3skZmlsZW5hbWV9LiN7JGV4dGVuc2lvbn1cIik7XG4gIH0gQGVsc2Uge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6ICAgICAgIHVybChcIiN7JGZpbGVuYW1lfS4jeyRleHRlbnNpb259XCIpO1xuICB9XG5cbiAgQGluY2x1ZGUgaGlkcGkge1xuICAgIEBpZiAkYXNzZXQtcGlwZWxpbmUge1xuICAgICAgQGlmICRyZXRpbmEtZmlsZW5hbWUge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBpbWFnZS11cmwoXCIjeyRyZXRpbmEtZmlsZW5hbWV9LiN7JGV4dGVuc2lvbn1cIik7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaW1hZ2UtdXJsKFwiI3skZmlsZW5hbWV9I3skcmV0aW5hLXN1ZmZpeH0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgIEBpZiAkcmV0aW5hLWZpbGVuYW1lIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiI3skcmV0aW5hLWZpbGVuYW1lfS4jeyRleHRlbnNpb259XCIpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIiN7JGZpbGVuYW1lfSN7JHJldGluYS1zdWZmaXh9LiN7JGV4dGVuc2lvbn1cIik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgYmFja2dyb3VuZC1zaXplOiAkYmFja2dyb3VuZC1zaXplO1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBTZXRzIHRoZSBgd2lkdGhgIGFuZCBgaGVpZ2h0YCBvZiB0aGUgZWxlbWVudC5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHNpemVcbi8vLyAgIEEgbGlzdCBvZiBhdCBtb3N0IDIgc2l6ZSB2YWx1ZXMuXG4vLy9cbi8vLyAgIElmIHRoZXJlIGlzIG9ubHkgYSBzaW5nbGUgdmFsdWUgaW4gYCRzaXplYCBpdCBpcyB1c2VkIGZvciBib3RoIHdpZHRoIGFuZCBoZWlnaHQuIEFsbCB1bml0cyBhcmUgc3VwcG9ydGVkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZmlyc3QtZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHNpemUoMmVtKTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLnNlY29uZC1lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgc2l6ZShhdXRvIDEwZW0pO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmZpcnN0LWVsZW1lbnQge1xuLy8vICAgICB3aWR0aDogMmVtO1xuLy8vICAgICBoZWlnaHQ6IDJlbTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLnNlY29uZC1lbGVtZW50IHtcbi8vLyAgICAgd2lkdGg6IGF1dG87XG4vLy8gICAgIGhlaWdodDogMTBlbTtcbi8vLyAgIH1cbi8vL1xuLy8vIEB0b2RvIFJlZmFjdG9yIGluIDUuMC4wIHRvIHVzZSBhIGNvbW1hLXNlcGFyYXRlZCBhcmd1bWVudFxuXG5AbWl4aW4gc2l6ZSgkdmFsdWUpIHtcbiAgJHdpZHRoOiBudGgoJHZhbHVlLCAxKTtcbiAgJGhlaWdodDogJHdpZHRoO1xuXG4gIEBpZiBsZW5ndGgoJHZhbHVlKSA+IDEge1xuICAgICRoZWlnaHQ6IG50aCgkdmFsdWUsIDIpO1xuICB9XG5cbiAgQGlmIGlzLXNpemUoJGhlaWdodCkge1xuICAgIGhlaWdodDogJGhlaWdodDtcbiAgfSBAZWxzZSB7XG4gICAgQHdhcm4gXCJgI3skaGVpZ2h0fWAgaXMgbm90IGEgdmFsaWQgbGVuZ3RoIGZvciB0aGUgYCRoZWlnaHRgIHBhcmFtZXRlciBpbiB0aGUgYHNpemVgIG1peGluLlwiO1xuICB9XG5cbiAgQGlmIGlzLXNpemUoJHdpZHRoKSB7XG4gICAgd2lkdGg6ICR3aWR0aDtcbiAgfSBAZWxzZSB7XG4gICAgQHdhcm4gXCJgI3skd2lkdGh9YCBpcyBub3QgYSB2YWxpZCBsZW5ndGggZm9yIHRoZSBgJHdpZHRoYCBwYXJhbWV0ZXIgaW4gdGhlIGBzaXplYCBtaXhpbi5cIjtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gR2VuZXJhdGVzIHZhcmlhYmxlcyBmb3IgYWxsIHRleHQtYmFzZWQgaW5wdXRzLiBQbGVhc2Ugbm90ZSB0aGF0IHlvdSBtdXN0IHVzZSBpbnRlcnBvbGF0aW9uIG9uIHRoZSB2YXJpYWJsZTogYCN7JGFsbC10ZXh0LWlucHV0c31gLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAjeyRhbGwtdGV4dC1pbnB1dHN9IHtcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgI2YwMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgI3skYWxsLXRleHQtaW5wdXRzLWZvY3VzfSxcbi8vLyAgICN7JGFsbC10ZXh0LWlucHV0cy1ob3Zlcn0ge1xuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjMGYwO1xuLy8vICAgfVxuLy8vXG4vLy8gICAjeyRhbGwtdGV4dC1pbnB1dHMtYWN0aXZlfSB7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICMwMGY7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICBpbnB1dFt0eXBlPVwiY29sb3JcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZVwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJtb250aFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInRlbFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInRpbWVcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwidXJsXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cIndlZWtcIl0sXG4vLy8gICB0ZXh0YXJlYSB7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICNmMDA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIGlucHV0W3R5cGU9XCJjb2xvclwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRlXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cImVtYWlsXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwidGVsXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInRleHRcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwidGltZVwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJ1cmxcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwid2Vla1wiXTpmb2N1cyxcbi8vLyAgIHRleHRhcmVhOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cImNvbG9yXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGVcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwiZW1haWxcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwibW9udGhcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZWxcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwidGV4dFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJ0aW1lXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInVybFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJ3ZWVrXCJdOmhvdmVyLFxuLy8vICAgdGV4dGFyZWE6aG92ZXIge1xuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjMGYwO1xuLy8vICAgfVxuLy8vXG4vLy8gICBpbnB1dFt0eXBlPVwiY29sb3JcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGVcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwiZW1haWxcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInRlbFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwidGV4dFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwidGltZVwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwidXJsXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ3ZWVrXCJdOmFjdGl2ZSxcbi8vLyAgIHRleHRhcmVhOmFjdGl2ZSB7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICMwMGY7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSBhc3NpZ24taW5wdXRzXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG5cbiR0ZXh0LWlucHV0cy1saXN0OiAnaW5wdXRbdHlwZT1cImNvbG9yXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImRhdGVcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiZW1haWxcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwibW9udGhcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwibnVtYmVyXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInNlYXJjaFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ0ZWxcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwidGV4dFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ0aW1lXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInVybFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ3ZWVrXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXQ6bm90KFt0eXBlXSknLFxuICAgICAgICAgICAgICAgICAgICd0ZXh0YXJlYSc7XG5cbiRhbGwtdGV4dC1pbnB1dHM6ICAgICAgICBhc3NpZ24taW5wdXRzKCR0ZXh0LWlucHV0cy1saXN0KTtcbiRhbGwtdGV4dC1pbnB1dHMtYWN0aXZlOiBhc3NpZ24taW5wdXRzKCR0ZXh0LWlucHV0cy1saXN0LCBhY3RpdmUpO1xuJGFsbC10ZXh0LWlucHV0cy1mb2N1czogIGFzc2lnbi1pbnB1dHMoJHRleHQtaW5wdXRzLWxpc3QsIGZvY3VzKTtcbiRhbGwtdGV4dC1pbnB1dHMtaG92ZXI6ICBhc3NpZ24taW5wdXRzKCR0ZXh0LWlucHV0cy1saXN0LCBob3Zlcik7XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDU1MgY3ViaWMtYmV6aWVyIHRpbWluZyBmdW5jdGlvbnMuIFRpbWluZyBmdW5jdGlvbnMgY291cnRlc3kgb2YganF1ZXJ5LmVhc2llIChnaXRodWIuY29tL2phdWtpYS9lYXNpZSlcbi8vL1xuLy8vIFRpbWluZyBmdW5jdGlvbnMgYXJlIHRoZSBzYW1lIGFzIGRlbW9lZCBoZXJlOiBodHRwOi8vanF1ZXJ5dWkuY29tL3Jlc291cmNlcy9kZW1vcy9lZmZlY3QvZWFzaW5nLmh0bWxcbi8vL1xuLy8vIEB0eXBlIGN1YmljLWJlemllclxuXG4kZWFzZS1pbi1xdWFkOiAgICAgIGN1YmljLWJlemllcigwLjU1MCwgIDAuMDg1LCAwLjY4MCwgMC41MzApO1xuJGVhc2UtaW4tY3ViaWM6ICAgICBjdWJpYy1iZXppZXIoMC41NTAsICAwLjA1NSwgMC42NzUsIDAuMTkwKTtcbiRlYXNlLWluLXF1YXJ0OiAgICAgY3ViaWMtYmV6aWVyKDAuODk1LCAgMC4wMzAsIDAuNjg1LCAwLjIyMCk7XG4kZWFzZS1pbi1xdWludDogICAgIGN1YmljLWJlemllcigwLjc1NSwgIDAuMDUwLCAwLjg1NSwgMC4wNjApO1xuJGVhc2UtaW4tc2luZTogICAgICBjdWJpYy1iZXppZXIoMC40NzAsICAwLjAwMCwgMC43NDUsIDAuNzE1KTtcbiRlYXNlLWluLWV4cG86ICAgICAgY3ViaWMtYmV6aWVyKDAuOTUwLCAgMC4wNTAsIDAuNzk1LCAwLjAzNSk7XG4kZWFzZS1pbi1jaXJjOiAgICAgIGN1YmljLWJlemllcigwLjYwMCwgIDAuMDQwLCAwLjk4MCwgMC4zMzUpO1xuJGVhc2UtaW4tYmFjazogICAgICBjdWJpYy1iZXppZXIoMC42MDAsIC0wLjI4MCwgMC43MzUsIDAuMDQ1KTtcblxuJGVhc2Utb3V0LXF1YWQ6ICAgICBjdWJpYy1iZXppZXIoMC4yNTAsICAwLjQ2MCwgMC40NTAsIDAuOTQwKTtcbiRlYXNlLW91dC1jdWJpYzogICAgY3ViaWMtYmV6aWVyKDAuMjE1LCAgMC42MTAsIDAuMzU1LCAxLjAwMCk7XG4kZWFzZS1vdXQtcXVhcnQ6ICAgIGN1YmljLWJlemllcigwLjE2NSwgIDAuODQwLCAwLjQ0MCwgMS4wMDApO1xuJGVhc2Utb3V0LXF1aW50OiAgICBjdWJpYy1iZXppZXIoMC4yMzAsICAxLjAwMCwgMC4zMjAsIDEuMDAwKTtcbiRlYXNlLW91dC1zaW5lOiAgICAgY3ViaWMtYmV6aWVyKDAuMzkwLCAgMC41NzUsIDAuNTY1LCAxLjAwMCk7XG4kZWFzZS1vdXQtZXhwbzogICAgIGN1YmljLWJlemllcigwLjE5MCwgIDEuMDAwLCAwLjIyMCwgMS4wMDApO1xuJGVhc2Utb3V0LWNpcmM6ICAgICBjdWJpYy1iZXppZXIoMC4wNzUsICAwLjgyMCwgMC4xNjUsIDEuMDAwKTtcbiRlYXNlLW91dC1iYWNrOiAgICAgY3ViaWMtYmV6aWVyKDAuMTc1LCAgMC44ODUsIDAuMzIwLCAxLjI3NSk7XG5cbiRlYXNlLWluLW91dC1xdWFkOiAgY3ViaWMtYmV6aWVyKDAuNDU1LCAgMC4wMzAsIDAuNTE1LCAwLjk1NSk7XG4kZWFzZS1pbi1vdXQtY3ViaWM6IGN1YmljLWJlemllcigwLjY0NSwgIDAuMDQ1LCAwLjM1NSwgMS4wMDApO1xuJGVhc2UtaW4tb3V0LXF1YXJ0OiBjdWJpYy1iZXppZXIoMC43NzAsICAwLjAwMCwgMC4xNzUsIDEuMDAwKTtcbiRlYXNlLWluLW91dC1xdWludDogY3ViaWMtYmV6aWVyKDAuODYwLCAgMC4wMDAsIDAuMDcwLCAxLjAwMCk7XG4kZWFzZS1pbi1vdXQtc2luZTogIGN1YmljLWJlemllcigwLjQ0NSwgIDAuMDUwLCAwLjU1MCwgMC45NTApO1xuJGVhc2UtaW4tb3V0LWV4cG86ICBjdWJpYy1iZXppZXIoMS4wMDAsICAwLjAwMCwgMC4wMDAsIDEuMDAwKTtcbiRlYXNlLWluLW91dC1jaXJjOiAgY3ViaWMtYmV6aWVyKDAuNzg1LCAgMC4xMzUsIDAuMTUwLCAwLjg2MCk7XG4kZWFzZS1pbi1vdXQtYmFjazogIGN1YmljLWJlemllcigwLjY4MCwgLTAuNTUwLCAwLjI2NSwgMS41NTApO1xuIiwiQG1peGluIHRyaWFuZ2xlKCRzaXplLCAkY29sb3IsICRkaXJlY3Rpb24pIHtcbiAgJHdpZHRoOiBudGgoJHNpemUsIDEpO1xuICAkaGVpZ2h0OiBudGgoJHNpemUsIGxlbmd0aCgkc2l6ZSkpO1xuICAkZm9yZWdyb3VuZC1jb2xvcjogbnRoKCRjb2xvciwgMSk7XG4gICRiYWNrZ3JvdW5kLWNvbG9yOiBpZihsZW5ndGgoJGNvbG9yKSA9PSAyLCBudGgoJGNvbG9yLCAyKSwgdHJhbnNwYXJlbnQpO1xuICBoZWlnaHQ6IDA7XG4gIHdpZHRoOiAwO1xuXG4gIEBpZiAoJGRpcmVjdGlvbiA9PSB1cCkgb3IgKCRkaXJlY3Rpb24gPT0gZG93bikgb3IgKCRkaXJlY3Rpb24gPT0gcmlnaHQpIG9yICgkZGlyZWN0aW9uID09IGxlZnQpIHtcbiAgICAkd2lkdGg6ICR3aWR0aCAvIDI7XG4gICAgJGhlaWdodDogaWYobGVuZ3RoKCRzaXplKSA+IDEsICRoZWlnaHQsICRoZWlnaHQvMik7XG5cbiAgICBAaWYgJGRpcmVjdGlvbiA9PSB1cCB7XG4gICAgICBib3JkZXItYm90dG9tOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLWxlZnQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSByaWdodCB7XG4gICAgICBib3JkZXItYm90dG9tOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItbGVmdDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci10b3A6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gZG93biB7XG4gICAgICBib3JkZXItbGVmdDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItdG9wOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBsZWZ0IHtcbiAgICAgIGJvcmRlci1ib3R0b206ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1yaWdodDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci10b3A6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gdXAtcmlnaHQpIG9yICgkZGlyZWN0aW9uID09IHVwLWxlZnQpIHtcbiAgICBib3JkZXItdG9wOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gdXAtcmlnaHQge1xuICAgICAgYm9yZGVyLWxlZnQ6ICAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IHVwLWxlZnQge1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfVxuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGRvd24tcmlnaHQpIG9yICgkZGlyZWN0aW9uID09IGRvd24tbGVmdCkge1xuICAgIGJvcmRlci1ib3R0b206ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG5cbiAgICBAaWYgJGRpcmVjdGlvbiA9PSBkb3duLXJpZ2h0IHtcbiAgICAgIGJvcmRlci1sZWZ0OiAgJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBkb3duLWxlZnQge1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfVxuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LXVwKSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogJGhlaWdodCAkd2lkdGg7XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtZG93bikge1xuICAgIGJvcmRlci1jb2xvcjogJGZvcmVncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6ICRoZWlnaHQgJHdpZHRoO1xuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LXJpZ2h0KSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogJHdpZHRoICRoZWlnaHQ7XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtbGVmdCkge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6ICR3aWR0aCAkaGVpZ2h0O1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhbiBlYXN5IHdheSB0byBjaGFuZ2UgdGhlIGB3b3JkLXdyYXBgIHByb3BlcnR5LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR3cmFwIFticmVhay13b3JkXVxuLy8vICAgVmFsdWUgZm9yIHRoZSBgd29yZC1icmVha2AgcHJvcGVydHkuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC53cmFwcGVyIHtcbi8vLyAgICAgQGluY2x1ZGUgd29yZC13cmFwKGJyZWFrLXdvcmQpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLndyYXBwZXIge1xuLy8vICAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuLy8vICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4vLy8gICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbi8vLyAgIH1cblxuQG1peGluIHdvcmQtd3JhcCgkd3JhcDogYnJlYWstd29yZCkge1xuICBvdmVyZmxvdy13cmFwOiAkd3JhcDtcbiAgd29yZC13cmFwOiAkd3JhcDtcblxuICBAaWYgJHdyYXAgPT0gYnJlYWstd29yZCB7XG4gICAgd29yZC1icmVhazogYnJlYWstYWxsO1xuICB9IEBlbHNlIHtcbiAgICB3b3JkLWJyZWFrOiAkd3JhcDtcbiAgfVxufVxuIiwiLy8gVGhlIGZvbGxvd2luZyBmZWF0dXJlcyBoYXZlIGJlZW4gZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IE1BSk9SIHZlcnNpb24gcmVsZWFzZVxuXG5AbWl4aW4gaW5saW5lLWJsb2NrIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gIEB3YXJuIFwiVGhlIGlubGluZS1ibG9jayBtaXhpbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlXCI7XG59XG5cbkBtaXhpbiBidXR0b24gKCRzdHlsZTogc2ltcGxlLCAkYmFzZS1jb2xvcjogIzQyOTRmMCwgJHRleHQtc2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XG5cbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBzdHJpbmcgYW5kIHR5cGUtb2YoJGJhc2UtY29sb3IpID09IGNvbG9yIHtcbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IHN0cmluZyBhbmQgdHlwZS1vZigkYmFzZS1jb2xvcikgPT0gbnVtYmVyIHtcbiAgICAkcGFkZGluZzogJHRleHQtc2l6ZTtcbiAgICAkdGV4dC1zaXplOiAkYmFzZS1jb2xvcjtcbiAgICAkYmFzZS1jb2xvcjogIzQyOTRmMDtcblxuICAgIEBpZiAkcGFkZGluZyA9PSBpbmhlcml0IHtcbiAgICAgICRwYWRkaW5nOiA3cHggMThweDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IGNvbG9yIGFuZCB0eXBlLW9mKCRiYXNlLWNvbG9yKSA9PSBjb2xvciB7XG4gICAgJGJhc2UtY29sb3I6ICRzdHlsZTtcbiAgICAkc3R5bGU6IHNpbXBsZTtcbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IGNvbG9yIGFuZCB0eXBlLW9mKCRiYXNlLWNvbG9yKSA9PSBudW1iZXIge1xuICAgICRwYWRkaW5nOiAkdGV4dC1zaXplO1xuICAgICR0ZXh0LXNpemU6ICRiYXNlLWNvbG9yO1xuICAgICRiYXNlLWNvbG9yOiAkc3R5bGU7XG4gICAgJHN0eWxlOiBzaW1wbGU7XG5cbiAgICBAaWYgJHBhZGRpbmcgPT0gaW5oZXJpdCB7XG4gICAgICAkcGFkZGluZzogN3B4IDE4cHg7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xuICB9XG5cbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBudW1iZXIge1xuICAgICRwYWRkaW5nOiAkYmFzZS1jb2xvcjtcbiAgICAkdGV4dC1zaXplOiAkc3R5bGU7XG4gICAgJGJhc2UtY29sb3I6ICM0Mjk0ZjA7XG4gICAgJHN0eWxlOiBzaW1wbGU7XG5cbiAgICBAaWYgJHBhZGRpbmcgPT0gIzQyOTRmMCB7XG4gICAgICAkcGFkZGluZzogN3B4IDE4cHg7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xuICB9XG5cbiAgJjpkaXNhYmxlZCB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBvcGFjaXR5OiAwLjU7XG4gIH1cblxuICBAd2FybiBcIlRoZSBidXR0b24gbWl4aW4gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZVwiO1xufVxuXG4vLyBTZWxlY3RvciBTdHlsZSBCdXR0b25cbkBtaXhpbiBidXR0b25zdHlsZSgkdHlwZSwgJGItY29sb3IsICR0LXNpemUsICRwYWQpIHtcbiAgLy8gR3JheXNjYWxlIGJ1dHRvblxuICBAaWYgJHR5cGUgPT0gc2ltcGxlIGFuZCAkYi1jb2xvciA9PSBncmF5c2NhbGUoJGItY29sb3IpIHtcbiAgICBAaW5jbHVkZSBzaW1wbGUoJGItY29sb3IsIHRydWUsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGlmICR0eXBlID09IHNoaW55IGFuZCAkYi1jb2xvciA9PSBncmF5c2NhbGUoJGItY29sb3IpIHtcbiAgICBAaW5jbHVkZSBzaGlueSgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAaWYgJHR5cGUgPT0gcGlsbCBhbmQgJGItY29sb3IgPT0gZ3JheXNjYWxlKCRiLWNvbG9yKSB7XG4gICAgQGluY2x1ZGUgcGlsbCgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAaWYgJHR5cGUgPT0gZmxhdCBhbmQgJGItY29sb3IgPT0gZ3JheXNjYWxlKCRiLWNvbG9yKSB7XG4gICAgQGluY2x1ZGUgZmxhdCgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICAvLyBDb2xvcmVkIGJ1dHRvblxuICBAaWYgJHR5cGUgPT0gc2ltcGxlIHtcbiAgICBAaW5jbHVkZSBzaW1wbGUoJGItY29sb3IsIGZhbHNlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIEBlbHNlIGlmICR0eXBlID09IHNoaW55IHtcbiAgICBAaW5jbHVkZSBzaGlueSgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGVsc2UgaWYgJHR5cGUgPT0gcGlsbCB7XG4gICAgQGluY2x1ZGUgcGlsbCgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGVsc2UgaWYgJHR5cGUgPT0gZmxhdCB7XG4gICAgQGluY2x1ZGUgZmxhdCgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xuICB9XG59XG5cbi8vIFNpbXBsZSBCdXR0b25cbkBtaXhpbiBzaW1wbGUoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xuICAkY29sb3I6ICAgICAgICAgaHNsKDAsIDAsIDEwMCUpO1xuICAkYm9yZGVyOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogIDklLCAgJGxpZ2h0bmVzczogLTE0JSk7XG4gICRpbnNldC1zaGFkb3c6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAtOCUsICAkbGlnaHRuZXNzOiAgMTUlKTtcbiAgJHN0b3AtZ3JhZGllbnQ6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246ICA5JSwgICRsaWdodG5lc3M6IC0xMSUpO1xuICAkdGV4dC1zaGFkb3c6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogIDE1JSwgJGxpZ2h0bmVzczogLTE4JSk7XG5cbiAgQGlmIGlzLWxpZ2h0KCRiYXNlLWNvbG9yKSB7XG4gICAgJGNvbG9yOiAgICAgICBoc2woMCwgMCwgMjAlKTtcbiAgICAkdGV4dC1zaGFkb3c6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDEwJSwgJGxpZ2h0bmVzczogNCUpO1xuICB9XG5cbiAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgJGJvcmRlcjogICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyKTtcbiAgICAkaW5zZXQtc2hhZG93OiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3cpO1xuICAgICRzdG9wLWdyYWRpZW50OiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQpO1xuICAgICR0ZXh0LXNoYWRvdzogICBncmF5c2NhbGUoJHRleHQtc2hhZG93KTtcbiAgfVxuXG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3c7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQgKCRiYXNlLWNvbG9yLCAkc3RvcC1ncmFkaWVudCk7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtc2hhZG93OiAwIDFweCAwICR0ZXh0LXNoYWRvdztcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcblxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogLTQlLCAkbGlnaHRuZXNzOiAtNSUpO1xuICAgICRpbnNldC1zaGFkb3ctaG92ZXI6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAtNyUsICRsaWdodG5lc3M6ICA1JSk7XG4gICAgJHN0b3AtZ3JhZGllbnQtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246ICA4JSwgJGxpZ2h0bmVzczogLTE0JSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBncmF5c2NhbGUoJGJhc2UtY29sb3ItaG92ZXIpO1xuICAgICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWhvdmVyKTtcbiAgICAgICRzdG9wLWdyYWRpZW50LWhvdmVyOiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQtaG92ZXIpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCAoJGJhc2UtY29sb3ItaG92ZXIsICRzdG9wLWdyYWRpZW50LWhvdmVyKTtcblxuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93LWhvdmVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gICY6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpLFxuICAmOmZvY3VzOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkYm9yZGVyLWFjdGl2ZTogICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogOSUsICRsaWdodG5lc3M6IC0xNCUpO1xuICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiA3JSwgJGxpZ2h0bmVzczogLTE3JSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRib3JkZXItYWN0aXZlOiAgICAgICBncmF5c2NhbGUoJGJvcmRlci1hY3RpdmUpO1xuICAgICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6IGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWFjdGl2ZSk7XG4gICAgfVxuXG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1hY3RpdmU7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDhweCA0cHggJGluc2V0LXNoYWRvdy1hY3RpdmUsIGluc2V0IDAgMCA4cHggNHB4ICRpbnNldC1zaGFkb3ctYWN0aXZlO1xuICB9XG59XG5cbi8vIFNoaW55IEJ1dHRvblxuQG1peGluIHNoaW55KCRiYXNlLWNvbG9yLCAkZ3JheXNjYWxlOiBmYWxzZSwgJHRleHRzaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcbiAgJGNvbG9yOiAgICAgICAgIGhzbCgwLCAwLCAxMDAlKTtcbiAgJGJvcmRlcjogICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTExNywgJGdyZWVuOiAtMTExLCAkYmx1ZTogLTgxKTtcbiAgJGJvcmRlci1ib3R0b206IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTEyNiwgJGdyZWVuOiAtMTI3LCAkYmx1ZTogLTEyMik7XG4gICRmb3VydGgtc3RvcDogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC03OSwgICRncmVlbjogLTcwLCAgJGJsdWU6IC00Nik7XG4gICRpbnNldC1zaGFkb3c6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6ICAzNywgICRncmVlbjogIDI5LCAgJGJsdWU6ICAxMik7XG4gICRzZWNvbmQtc3RvcDogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC01NiwgICRncmVlbjogLTUwLCAgJGJsdWU6IC0zMyk7XG4gICR0ZXh0LXNoYWRvdzogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xNDAsICRncmVlbjogLTE0MSwgJGJsdWU6IC0xMTQpO1xuICAkdGhpcmQtc3RvcDogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtODYsICAkZ3JlZW46IC03NSwgICRibHVlOiAtNDgpO1xuXG4gIEBpZiBpcy1saWdodCgkYmFzZS1jb2xvcikge1xuICAgICRjb2xvcjogICAgICAgaHNsKDAsIDAsIDIwJSk7XG4gICAgJHRleHQtc2hhZG93OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAxMCUsICRsaWdodG5lc3M6IDQlKTtcbiAgfVxuXG4gIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICRib3JkZXI6ICAgICAgICBncmF5c2NhbGUoJGJvcmRlcik7XG4gICAgJGJvcmRlci1ib3R0b206IGdyYXlzY2FsZSgkYm9yZGVyLWJvdHRvbSk7XG4gICAgJGZvdXJ0aC1zdG9wOiAgIGdyYXlzY2FsZSgkZm91cnRoLXN0b3ApO1xuICAgICRpbnNldC1zaGFkb3c6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdyk7XG4gICAgJHNlY29uZC1zdG9wOiAgIGdyYXlzY2FsZSgkc2Vjb25kLXN0b3ApO1xuICAgICR0ZXh0LXNoYWRvdzogICBncmF5c2NhbGUoJHRleHQtc2hhZG93KTtcbiAgICAkdGhpcmQtc3RvcDogICAgZ3JheXNjYWxlKCR0aGlyZC1zdG9wKTtcbiAgfVxuXG4gIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCh0b3AsICRiYXNlLWNvbG9yIDAlLCAkc2Vjb25kLXN0b3AgNTAlLCAkdGhpcmQtc3RvcCA1MCUsICRmb3VydGgtc3RvcCAxMDAlKTtcblxuICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJvcmRlci1ib3R0b207XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3c7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtc2hhZG93OiAwIC0xcHggMXB4ICR0ZXh0LXNoYWRvdztcblxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkZmlyc3Qtc3RvcC1ob3ZlcjogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTEzLCAkZ3JlZW46IC0xNSwgJGJsdWU6IC0xOCk7XG4gICAgJHNlY29uZC1zdG9wLWhvdmVyOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC02NiwgJGdyZWVuOiAtNjIsICRibHVlOiAtNTEpO1xuICAgICR0aGlyZC1zdG9wLWhvdmVyOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtOTMsICRncmVlbjogLTg1LCAkYmx1ZTogLTY2KTtcbiAgICAkZm91cnRoLXN0b3AtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTg2LCAkZ3JlZW46IC04MCwgJGJsdWU6IC02Myk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRmaXJzdC1zdG9wLWhvdmVyOiAgZ3JheXNjYWxlKCRmaXJzdC1zdG9wLWhvdmVyKTtcbiAgICAgICRzZWNvbmQtc3RvcC1ob3ZlcjogZ3JheXNjYWxlKCRzZWNvbmQtc3RvcC1ob3Zlcik7XG4gICAgICAkdGhpcmQtc3RvcC1ob3ZlcjogIGdyYXlzY2FsZSgkdGhpcmQtc3RvcC1ob3Zlcik7XG4gICAgICAkZm91cnRoLXN0b3AtaG92ZXI6IGdyYXlzY2FsZSgkZm91cnRoLXN0b3AtaG92ZXIpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCh0b3AsICRmaXJzdC1zdG9wLWhvdmVyICAwJSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc2Vjb25kLXN0b3AtaG92ZXIgNTAlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlyZC1zdG9wLWhvdmVyICA1MCUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGZvdXJ0aC1zdG9wLWhvdmVyIDEwMCUpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gICY6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpLFxuICAmOmZvY3VzOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTExLCAkZ3JlZW46IC0xMTYsICRibHVlOiAtMTIyKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6IGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWFjdGl2ZSk7XG4gICAgfVxuXG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDIwcHggMCAkaW5zZXQtc2hhZG93LWFjdGl2ZTtcbiAgfVxufVxuXG4vLyBQaWxsIEJ1dHRvblxuQG1peGluIHBpbGwoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xuICAkY29sb3I6ICAgICAgICAgaHNsKDAsIDAsIDEwMCUpO1xuICAkYm9yZGVyLWJvdHRvbTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgOCwgJHNhdHVyYXRpb246IC0xMSUsICRsaWdodG5lc3M6IC0yNiUpO1xuICAkYm9yZGVyLXNpZGVzOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgNCwgJHNhdHVyYXRpb246IC0yMSUsICRsaWdodG5lc3M6IC0yMSUpO1xuICAkYm9yZGVyLXRvcDogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAtMSwgJHNhdHVyYXRpb246IC0zMCUsICRsaWdodG5lc3M6IC0xNSUpO1xuICAkaW5zZXQtc2hhZG93OiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAtMSwgJHNhdHVyYXRpb246IC0xJSwgICRsaWdodG5lc3M6ICA3JSk7XG4gICRzdG9wLWdyYWRpZW50OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogIDE0JSwgJGxpZ2h0bmVzczogLTEwJSk7XG4gICR0ZXh0LXNoYWRvdzogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA1LCAkc2F0dXJhdGlvbjogLTE5JSwgJGxpZ2h0bmVzczogLTE1JSk7XG5cbiAgQGlmIGlzLWxpZ2h0KCRiYXNlLWNvbG9yKSB7XG4gICAgJGNvbG9yOiAgICAgICBoc2woMCwgMCwgMjAlKTtcbiAgICAkdGV4dC1zaGFkb3c6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDEwJSwgJGxpZ2h0bmVzczogNCUpO1xuICB9XG5cbiAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgJGJvcmRlci1ib3R0b206IGdyYXlzY2FsZSgkYm9yZGVyLWJvdHRvbSk7XG4gICAgJGJvcmRlci1zaWRlczogIGdyYXlzY2FsZSgkYm9yZGVyLXNpZGVzKTtcbiAgICAkYm9yZGVyLXRvcDogICAgZ3JheXNjYWxlKCRib3JkZXItdG9wKTtcbiAgICAkaW5zZXQtc2hhZG93OiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3cpO1xuICAgICRzdG9wLWdyYWRpZW50OiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQpO1xuICAgICR0ZXh0LXNoYWRvdzogICBncmF5c2NhbGUoJHRleHQtc2hhZG93KTtcbiAgfVxuXG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItdG9wO1xuICBib3JkZXItY29sb3I6ICRib3JkZXItdG9wICRib3JkZXItc2lkZXMgJGJvcmRlci1ib3R0b207XG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93O1xuICBjb2xvcjogJGNvbG9yO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogJHRleHRzaXplO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMTtcbiAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50ICgkYmFzZS1jb2xvciwgJHN0b3AtZ3JhZGllbnQpO1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtc2hhZG93OiAwIC0xcHggMXB4ICR0ZXh0LXNoYWRvdztcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcblxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpZ2h0bmVzczogLTQuNSUpO1xuICAgICRib3JkZXItYm90dG9tOiAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogIDEzLjUlLCAkbGlnaHRuZXNzOiAtMzIlKTtcbiAgICAkYm9yZGVyLXNpZGVzOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgNCwgJHNhdHVyYXRpb246IC0yJSwgICAgJGxpZ2h0bmVzczogLTI3JSk7XG4gICAgJGJvcmRlci10b3A6ICAgICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogLTEsICRzYXR1cmF0aW9uOiAtMTclLCAgICRsaWdodG5lc3M6IC0yMSUpO1xuICAgICRpbnNldC1zaGFkb3ctaG92ZXI6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICAgICAgICAgICAkc2F0dXJhdGlvbjogLTElLCAgICAkbGlnaHRuZXNzOiAgMyUpO1xuICAgICRzdG9wLWdyYWRpZW50LWhvdmVyOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogLTQlLCAgICAkbGlnaHRuZXNzOiAtMTUuNSUpO1xuICAgICR0ZXh0LXNoYWRvdy1ob3ZlcjogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA1LCAkc2F0dXJhdGlvbjogLTUlLCAgICAkbGlnaHRuZXNzOiAtMjIlKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGdyYXlzY2FsZSgkYmFzZS1jb2xvci1ob3Zlcik7XG4gICAgICAkYm9yZGVyLWJvdHRvbTogICAgICAgZ3JheXNjYWxlKCRib3JkZXItYm90dG9tKTtcbiAgICAgICRib3JkZXItc2lkZXM6ICAgICAgICBncmF5c2NhbGUoJGJvcmRlci1zaWRlcyk7XG4gICAgICAkYm9yZGVyLXRvcDogICAgICAgICAgZ3JheXNjYWxlKCRib3JkZXItdG9wKTtcbiAgICAgICRpbnNldC1zaGFkb3ctaG92ZXI6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdy1ob3Zlcik7XG4gICAgICAkc3RvcC1ncmFkaWVudC1ob3ZlcjogZ3JheXNjYWxlKCRzdG9wLWdyYWRpZW50LWhvdmVyKTtcbiAgICAgICR0ZXh0LXNoYWRvdy1ob3ZlcjogICBncmF5c2NhbGUoJHRleHQtc2hhZG93LWhvdmVyKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQgKCRiYXNlLWNvbG9yLWhvdmVyLCAkc3RvcC1ncmFkaWVudC1ob3Zlcik7XG5cbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItdG9wO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci10b3AgJGJvcmRlci1zaWRlcyAkYm9yZGVyLWJvdHRvbTtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdy1ob3ZlcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93LWhvdmVyO1xuICB9XG5cbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXG4gICY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xuICAgICRhY3RpdmUtY29sb3I6ICAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA0LCAgJHNhdHVyYXRpb246IC0xMiUsICAkbGlnaHRuZXNzOiAtMTAlKTtcbiAgICAkYm9yZGVyLWFjdGl2ZTogICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogNiwgICRzYXR1cmF0aW9uOiAtMi41JSwgJGxpZ2h0bmVzczogLTMwJSk7XG4gICAgJGJvcmRlci1ib3R0b20tYWN0aXZlOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDExLCAkc2F0dXJhdGlvbjogIDYlLCAgICRsaWdodG5lc3M6IC0zMSUpO1xuICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA5LCAgJHNhdHVyYXRpb246ICAyJSwgICAkbGlnaHRuZXNzOiAtMjEuNSUpO1xuICAgICR0ZXh0LXNoYWRvdy1hY3RpdmU6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA1LCAgJHNhdHVyYXRpb246IC0xMiUsICAkbGlnaHRuZXNzOiAtMjEuNSUpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkYWN0aXZlLWNvbG9yOiAgICAgICAgIGdyYXlzY2FsZSgkYWN0aXZlLWNvbG9yKTtcbiAgICAgICRib3JkZXItYWN0aXZlOiAgICAgICAgZ3JheXNjYWxlKCRib3JkZXItYWN0aXZlKTtcbiAgICAgICRib3JkZXItYm90dG9tLWFjdGl2ZTogZ3JheXNjYWxlKCRib3JkZXItYm90dG9tLWFjdGl2ZSk7XG4gICAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWFjdGl2ZSk7XG4gICAgICAkdGV4dC1zaGFkb3ctYWN0aXZlOiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3ctYWN0aXZlKTtcbiAgICB9XG5cbiAgICBiYWNrZ3JvdW5kOiAkYWN0aXZlLWNvbG9yO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItYWN0aXZlO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYm9yZGVyLWJvdHRvbS1hY3RpdmU7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDZweCAzcHggJGluc2V0LXNoYWRvdy1hY3RpdmU7XG4gICAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93LWFjdGl2ZTtcbiAgfVxufVxuXG4vLyBGbGF0IEJ1dHRvblxuQG1peGluIGZsYXQoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xuICAkY29sb3I6ICAgICAgICAgaHNsKDAsIDAsIDEwMCUpO1xuXG4gIEBpZiBpcy1saWdodCgkYmFzZS1jb2xvcikge1xuICAgICRjb2xvcjogICAgICAgaHNsKDAsIDAsIDIwJSk7XG4gIH1cblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFzZS1jb2xvcjtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBib3JkZXI6IDA7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCl7XG4gICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDQlLCAkbGlnaHRuZXNzOiA1JSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRiYXNlLWNvbG9yLWhvdmVyOiBncmF5c2NhbGUoJGJhc2UtY29sb3ItaG92ZXIpO1xuICAgIH1cblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYXNlLWNvbG9yLWhvdmVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gICY6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpLFxuICAmOmZvY3VzOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkYmFzZS1jb2xvci1hY3RpdmU6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IC00JSwgJGxpZ2h0bmVzczogLTUlKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGJhc2UtY29sb3ItYWN0aXZlOiBncmF5c2NhbGUoJGJhc2UtY29sb3ItYWN0aXZlKTtcbiAgICB9XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFzZS1jb2xvci1hY3RpdmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG59XG5cbi8vIEZsZXhpYmxlIGdyaWRcbkBmdW5jdGlvbiBmbGV4LWdyaWQoJGNvbHVtbnMsICRjb250YWluZXItY29sdW1uczogJGZnLW1heC1jb2x1bW5zKSB7XG4gICR3aWR0aDogJGNvbHVtbnMgKiAkZmctY29sdW1uICsgKCRjb2x1bW5zIC0gMSkgKiAkZmctZ3V0dGVyO1xuICAkY29udGFpbmVyLXdpZHRoOiAkY29udGFpbmVyLWNvbHVtbnMgKiAkZmctY29sdW1uICsgKCRjb250YWluZXItY29sdW1ucyAtIDEpICogJGZnLWd1dHRlcjtcbiAgQHJldHVybiBwZXJjZW50YWdlKCR3aWR0aCAvICRjb250YWluZXItd2lkdGgpO1xuXG4gIEB3YXJuIFwiVGhlIGZsZXgtZ3JpZCBmdW5jdGlvbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlXCI7XG59XG5cbi8vIEZsZXhpYmxlIGd1dHRlclxuQGZ1bmN0aW9uIGZsZXgtZ3V0dGVyKCRjb250YWluZXItY29sdW1uczogJGZnLW1heC1jb2x1bW5zLCAkZ3V0dGVyOiAkZmctZ3V0dGVyKSB7XG4gICRjb250YWluZXItd2lkdGg6ICRjb250YWluZXItY29sdW1ucyAqICRmZy1jb2x1bW4gKyAoJGNvbnRhaW5lci1jb2x1bW5zIC0gMSkgKiAkZmctZ3V0dGVyO1xuICBAcmV0dXJuIHBlcmNlbnRhZ2UoJGd1dHRlciAvICRjb250YWluZXItd2lkdGgpO1xuXG4gIEB3YXJuIFwiVGhlIGZsZXgtZ3V0dGVyIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2VcIjtcbn1cblxuQGZ1bmN0aW9uIGdyaWQtd2lkdGgoJG4pIHtcbiAgQHJldHVybiAkbiAqICRndy1jb2x1bW4gKyAoJG4gLSAxKSAqICRndy1ndXR0ZXI7XG5cbiAgQHdhcm4gXCJUaGUgZ3JpZC13aWR0aCBmdW5jdGlvbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlXCI7XG59XG5cbkBmdW5jdGlvbiBnb2xkZW4tcmF0aW8oJHZhbHVlLCAkaW5jcmVtZW50KSB7XG4gIEByZXR1cm4gbW9kdWxhci1zY2FsZSgkaW5jcmVtZW50LCAkdmFsdWUsICRyYXRpbzogJGdvbGRlbik7XG5cbiAgQHdhcm4gXCJUaGUgZ29sZGVuLXJhdGlvIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2UuIFBsZWFzZSB1c2UgdGhlIG1vZHVsYXItc2NhbGUgZnVuY3Rpb24sIGluc3RlYWQuXCI7XG59XG5cbkBtaXhpbiBib3gtc2l6aW5nKCRib3gpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LXNpemluZywgJGJveCwgd2Via2l0IG1veiBzcGVjKTtcblxuICBAd2FybiBcIlRoZSBib3gtc2l6aW5nIG1peGluIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2UuIFRoaXMgcHJvcGVydHkgY2FuIG5vdyBiZSB1c2VkIHVuLXByZWZpeGVkLlwiO1xufVxuIiwiLy8gRnVuY3Rpb25zXG5AaW1wb3J0IFwiZnVuY3Rpb25zL3ByaXZhdGVcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvbmV3LWJyZWFrcG9pbnRcIjtcblxuLy8gU2V0dGluZ3NcbkBpbXBvcnQgXCJzZXR0aW5ncy9ncmlkXCI7XG5AaW1wb3J0IFwic2V0dGluZ3MvdmlzdWFsLWdyaWRcIjtcbkBpbXBvcnQgXCJzZXR0aW5ncy9kaXNhYmxlLXdhcm5pbmdzXCI7XG4iLCIvLyBOb3QgZnVuY3Rpb24gZm9yIExpYnNhc3MgY29tcGF0aWJpbGl0eVxuLy8gaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MvbGlic2Fzcy9pc3N1ZXMvMzY4XG5AZnVuY3Rpb24gaXMtbm90KCR2YWx1ZSkge1xuICBAcmV0dXJuIGlmKCR2YWx1ZSwgZmFsc2UsIHRydWUpO1xufVxuXG4vLyBDaGVja3MgaWYgYSBudW1iZXIgaXMgZXZlblxuQGZ1bmN0aW9uIGlzLWV2ZW4oJGludCkge1xuICBAcmV0dXJuICRpbnQgJSAyID09IDA7XG59XG5cbi8vIENoZWNrcyBpZiBhbiBlbGVtZW50IGJlbG9uZ3MgdG8gYSBsaXN0IG9yIG5vdFxuQGZ1bmN0aW9uIGJlbG9uZ3MtdG8oJHRlc3RlZC1pdGVtLCAkbGlzdCkge1xuICBAcmV0dXJuIGlzLW5vdChub3QtYmVsb25ncy10bygkdGVzdGVkLWl0ZW0sICRsaXN0KSk7XG59XG5cbkBmdW5jdGlvbiBub3QtYmVsb25ncy10bygkdGVzdGVkLWl0ZW0sICRsaXN0KSB7XG4gIEByZXR1cm4gaXMtbm90KGluZGV4KCRsaXN0LCAkdGVzdGVkLWl0ZW0pKTtcbn1cblxuLy8gQ29udGFpbnMgZGlzcGxheSB2YWx1ZVxuQGZ1bmN0aW9uIGNvbnRhaW5zLWRpc3BsYXktdmFsdWUoJHF1ZXJ5KSB7XG4gIEByZXR1cm4gYmVsb25ncy10byh0YWJsZSwgJHF1ZXJ5KVxuICAgICAgIG9yIGJlbG9uZ3MtdG8oYmxvY2ssICRxdWVyeSlcbiAgICAgICBvciBiZWxvbmdzLXRvKGlubGluZS1ibG9jaywgJHF1ZXJ5KVxuICAgICAgIG9yIGJlbG9uZ3MtdG8oaW5saW5lLCAkcXVlcnkpO1xufVxuXG4vLyBQYXJzZXMgdGhlIGZpcnN0IGFyZ3VtZW50IG9mIHNwYW4tY29sdW1ucygpXG5AZnVuY3Rpb24gY29udGFpbmVyLXNwYW4oJHNwYW46ICRzcGFuKSB7XG4gIEBpZiBsZW5ndGgoJHNwYW4pID09IDMge1xuICAgICRjb250YWluZXItY29sdW1uczogbnRoKCRzcGFuLCAzKTtcbiAgICBAcmV0dXJuICRjb250YWluZXItY29sdW1ucztcbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHNwYW4pID09IDIge1xuICAgICRjb250YWluZXItY29sdW1uczogbnRoKCRzcGFuLCAyKTtcbiAgICBAcmV0dXJuICRjb250YWluZXItY29sdW1ucztcbiAgfVxuXG4gIEByZXR1cm4gJGdyaWQtY29sdW1ucztcbn1cblxuQGZ1bmN0aW9uIGNvbnRhaW5lci1zaGlmdCgkc2hpZnQ6ICRzaGlmdCkge1xuICAkcGFyZW50LWNvbHVtbnM6ICRncmlkLWNvbHVtbnMgIWRlZmF1bHQgIWdsb2JhbDtcblxuICBAaWYgbGVuZ3RoKCRzaGlmdCkgPT0gMyB7XG4gICAgJGNvbnRhaW5lci1jb2x1bW5zOiBudGgoJHNoaWZ0LCAzKTtcbiAgICBAcmV0dXJuICRjb250YWluZXItY29sdW1ucztcbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHNoaWZ0KSA9PSAyIHtcbiAgICAkY29udGFpbmVyLWNvbHVtbnM6IG50aCgkc2hpZnQsIDIpO1xuICAgIEByZXR1cm4gJGNvbnRhaW5lci1jb2x1bW5zO1xuICB9XG5cbiAgQHJldHVybiAkcGFyZW50LWNvbHVtbnM7XG59XG5cbi8vIEdlbmVyYXRlcyBhIHN0cmlwZWQgYmFja2dyb3VuZFxuQGZ1bmN0aW9uIGdyYWRpZW50LXN0b3BzKCRncmlkLWNvbHVtbnMsICRjb2xvcjogJHZpc3VhbC1ncmlkLWNvbG9yKSB7XG4gICR0cmFuc3BhcmVudDogdHJhbnNwYXJlbnQ7XG5cbiAgJGNvbHVtbi13aWR0aDogZmxleC1ncmlkKDEsICRncmlkLWNvbHVtbnMpO1xuICAkZ3V0dGVyLXdpZHRoOiBmbGV4LWd1dHRlcigkZ3JpZC1jb2x1bW5zKTtcbiAgJGNvbHVtbi1vZmZzZXQ6ICRjb2x1bW4td2lkdGg7XG5cbiAgJHZhbHVlczogKCR0cmFuc3BhcmVudCAwLCAkY29sb3IgMCk7XG5cbiAgQGZvciAkaSBmcm9tIDEgdG8gJGdyaWQtY29sdW1ucyoyIHtcbiAgICBAaWYgaXMtZXZlbigkaSkge1xuICAgICAgJHZhbHVlczogYXBwZW5kKCR2YWx1ZXMsICR0cmFuc3BhcmVudCAkY29sdW1uLW9mZnNldCwgY29tbWEpO1xuICAgICAgJHZhbHVlczogYXBwZW5kKCR2YWx1ZXMsICRjb2xvciAkY29sdW1uLW9mZnNldCwgY29tbWEpO1xuICAgICAgJGNvbHVtbi1vZmZzZXQ6ICRjb2x1bW4tb2Zmc2V0ICsgJGNvbHVtbi13aWR0aDtcbiAgICB9IEBlbHNlIHtcbiAgICAgICR2YWx1ZXM6IGFwcGVuZCgkdmFsdWVzLCAkY29sb3IgJGNvbHVtbi1vZmZzZXQsIGNvbW1hKTtcbiAgICAgICR2YWx1ZXM6IGFwcGVuZCgkdmFsdWVzLCAkdHJhbnNwYXJlbnQgJGNvbHVtbi1vZmZzZXQsIGNvbW1hKTtcbiAgICAgICRjb2x1bW4tb2Zmc2V0OiAkY29sdW1uLW9mZnNldCArICRndXR0ZXItd2lkdGg7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkdmFsdWVzO1xufVxuXG4vLyBMYXlvdXQgZGlyZWN0aW9uXG5AZnVuY3Rpb24gZ2V0LWRpcmVjdGlvbigkbGF5b3V0LCAkZGVmYXVsdCkge1xuICAkZGlyZWN0aW9uOiBudWxsO1xuXG4gIEBpZiB0by11cHBlci1jYXNlKCRsYXlvdXQpID09IFwiTFRSXCIgb3IgdG8tdXBwZXItY2FzZSgkbGF5b3V0KSA9PSBcIlJUTFwiIHtcbiAgICAkZGlyZWN0aW9uOiBkaXJlY3Rpb24tZnJvbS1sYXlvdXQoJGxheW91dCk7XG4gIH0gQGVsc2Uge1xuICAgICRkaXJlY3Rpb246IGRpcmVjdGlvbi1mcm9tLWxheW91dCgkZGVmYXVsdCk7XG4gIH1cblxuICBAcmV0dXJuICRkaXJlY3Rpb247XG59XG5cbkBmdW5jdGlvbiBkaXJlY3Rpb24tZnJvbS1sYXlvdXQoJGxheW91dCkge1xuICAkZGlyZWN0aW9uOiBudWxsO1xuXG4gIEBpZiB0by11cHBlci1jYXNlKCRsYXlvdXQpID09IFwiTFRSXCIge1xuICAgICRkaXJlY3Rpb246IHJpZ2h0O1xuICB9IEBlbHNlIHtcbiAgICAkZGlyZWN0aW9uOiBsZWZ0O1xuICB9XG5cbiAgQHJldHVybiAkZGlyZWN0aW9uO1xufVxuXG5AZnVuY3Rpb24gZ2V0LW9wcG9zaXRlLWRpcmVjdGlvbigkZGlyZWN0aW9uKSB7XG4gICRvcHBvc2l0ZS1kaXJlY3Rpb246IGxlZnQ7XG5cbiAgQGlmICRkaXJlY3Rpb24gPT0gXCJsZWZ0XCIge1xuICAgICRvcHBvc2l0ZS1kaXJlY3Rpb246IHJpZ2h0O1xuICB9XG5cbiAgQHJldHVybiAkb3Bwb3NpdGUtZGlyZWN0aW9uO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUmV0dXJucyBhIG1lZGlhIGNvbnRleHQgKG1lZGlhIHF1ZXJ5IC8gZ3JpZCBjb250ZXh0KSB0aGF0IGNhbiBiZSBzdG9yZWQgaW4gYSB2YXJpYWJsZSBhbmQgcGFzc2VkIHRvIGBtZWRpYSgpYCBhcyBhIHNpbmdsZS1rZXl3b3JkIGFyZ3VtZW50LiBNZWRpYSBjb250ZXh0cyBkZWZpbmVkIHVzaW5nIGBuZXctYnJlYWtwb2ludGAgYXJlIHVzZWQgYnkgdGhlIHZpc3VhbCBncmlkLCBhcyBsb25nIGFzIHRoZXkgYXJlIGRlZmluZWQgYmVmb3JlIGltcG9ydGluZyBOZWF0LlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkcXVlcnlcbi8vLyAgIEEgbGlzdCBvZiBtZWRpYSBxdWVyeSBmZWF0dXJlcyBhbmQgdmFsdWVzLiBFYWNoIGAkZmVhdHVyZWAgc2hvdWxkIGhhdmUgYSBjb3JyZXNwb25kaW5nIGAkdmFsdWVgLlxuLy8vXG4vLy8gICBJZiB0aGVyZSBpcyBvbmx5IGEgc2luZ2xlIGAkdmFsdWVgIGluIGAkcXVlcnlgLCBgJGRlZmF1bHQtZmVhdHVyZWAgaXMgZ29pbmcgdG8gYmUgdXNlZC5cbi8vL1xuLy8vICAgVGhlIG51bWJlciBvZiB0b3RhbCBjb2x1bW5zIGluIHRoZSBncmlkIGNhbiBiZSBzZXQgYnkgcGFzc2luZyBgJGNvbHVtbnNgIGF0IHRoZSBlbmQgb2YgdGhlIGxpc3QgKG92ZXJyaWRlcyBgJHRvdGFsLWNvbHVtbnNgKS4gRm9yIGEgbGlzdCBvZiB2YWxpZCB2YWx1ZXMgZm9yIGAkZmVhdHVyZWAsIGNsaWNrIFtoZXJlXShodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLW1lZGlhcXVlcmllcy8jbWVkaWExKS5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyICh1bml0bGVzcyl9ICR0b3RhbC1jb2x1bW5zIFskZ3JpZC1jb2x1bW5zXVxuLy8vICAgLSBOdW1iZXIgb2YgY29sdW1ucyB0byB1c2UgaW4gdGhlIG5ldyBncmlkIGNvbnRleHQuIENhbiBiZSBzZXQgYXMgYSBzaG9ydGhhbmQgaW4gdGhlIGZpcnN0IHBhcmFtZXRlci5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgJG1vYmlsZTogbmV3LWJyZWFrcG9pbnQobWF4LXdpZHRoIDQ4MHB4IDQpO1xuLy8vXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIG1lZGlhKCRtb2JpbGUpIHtcbi8vLyAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNCk7XG4vLy8gICAgIH1cbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4vLy8gICAgIC5lbGVtZW50IHtcbi8vLyAgICAgICBkaXNwbGF5OiBibG9jaztcbi8vLyAgICAgICBmbG9hdDogbGVmdDtcbi8vLyAgICAgICBtYXJnaW4tcmlnaHQ6IDcuNDIyOTclO1xuLy8vICAgICAgIHdpZHRoOiAxMDAlO1xuLy8vICAgICB9XG4vLy8gICAgIC5lbGVtZW50Omxhc3QtY2hpbGQge1xuLy8vICAgICAgIG1hcmdpbi1yaWdodDogMDtcbi8vLyAgICAgfVxuLy8vICAgfVxuXG5AZnVuY3Rpb24gbmV3LWJyZWFrcG9pbnQoJHF1ZXJ5OiAkZmVhdHVyZSAkdmFsdWUgJGNvbHVtbnMsICR0b3RhbC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zKSB7XG4gIEBpZiBsZW5ndGgoJHF1ZXJ5KSA9PSAxIHtcbiAgICAkcXVlcnk6ICRkZWZhdWx0LWZlYXR1cmUgbnRoKCRxdWVyeSwgMSkgJHRvdGFsLWNvbHVtbnM7XG4gIH0gQGVsc2UgaWYgaXMtZXZlbihsZW5ndGgoJHF1ZXJ5KSkge1xuICAgICRxdWVyeTogYXBwZW5kKCRxdWVyeSwgJHRvdGFsLWNvbHVtbnMpO1xuICB9XG5cbiAgQGlmIGlzLW5vdChiZWxvbmdzLXRvKCRxdWVyeSwgJHZpc3VhbC1ncmlkLWJyZWFrcG9pbnRzKSkge1xuICAgICR2aXN1YWwtZ3JpZC1icmVha3BvaW50czogYXBwZW5kKCR2aXN1YWwtZ3JpZC1icmVha3BvaW50cywgJHF1ZXJ5LCBjb21tYSkgIWdsb2JhbDtcbiAgfVxuXG4gIEByZXR1cm4gJHF1ZXJ5O1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gU2V0cyB0aGUgcmVsYXRpdmUgd2lkdGggb2YgYSBzaW5nbGUgZ3JpZCBjb2x1bW4uIFRoZSB1bml0IHVzZWQgc2hvdWxkIGJlIHRoZSBzYW1lIG9uZSB1c2VkIHRvIGRlZmluZSBgJGd1dHRlcmAuIFRvIGxlYXJuIG1vcmUgYWJvdXQgYG1vZHVsYXItc2NhbGUoKWAgc2VlIFtCb3VyYm9uIGRvY3NdKGh0dHA6Ly9ib3VyYm9uLmlvL2RvY3MvI21vZHVsYXItc2NhbGUpLiBTZXQgd2l0aCBhIGAhZ2xvYmFsYCBmbGFnLlxuLy8vXG4vLy8gQHR5cGUgTnVtYmVyIChVbml0KVxuXG4kY29sdW1uOiBtb2R1bGFyLXNjYWxlKDMsIDFlbSwgJGdvbGRlbikgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIHRoZSByZWxhdGl2ZSB3aWR0aCBvZiBhIHNpbmdsZSBncmlkIGd1dHRlci4gVGhlIHVuaXQgdXNlZCBzaG91bGQgYmUgdGhlIHNhbWUgb25lIHVzZWQgdG8gZGVmaW5lIGAkY29sdW1uYC4gVG8gbGVhcm4gbW9yZSBhYm91dCBgbW9kdWxhci1zY2FsZSgpYCBzZWUgW0JvdXJib24gZG9jc10oaHR0cDovL2JvdXJib24uaW8vZG9jcy8jbW9kdWxhci1zY2FsZSkuIFNldCB3aXRoIHRoZSBgIWdsb2JhbGAgZmxhZy5cbi8vL1xuLy8vIEB0eXBlIE51bWJlciAoVW5pdClcblxuJGd1dHRlcjogbW9kdWxhci1zY2FsZSgxLCAxZW0sICRnb2xkZW4pICFkZWZhdWx0O1xuXG4vLy8gU2V0cyB0aGUgdG90YWwgbnVtYmVyIG9mIGNvbHVtbnMgaW4gdGhlIGdyaWQuIEl0cyB2YWx1ZSBjYW4gYmUgb3ZlcnJpZGRlbiBpbnNpZGUgYSBtZWRpYSBxdWVyeSB1c2luZyB0aGUgYG1lZGlhKClgIG1peGluLiBTZXQgd2l0aCB0aGUgYCFnbG9iYWxgIGZsYWcuXG4vLy9cbi8vLyBAdHlwZSBOdW1iZXIgKFVuaXRsZXNzKVxuXG4kZ3JpZC1jb2x1bW5zOiAxMiAhZGVmYXVsdDtcblxuLy8vIFNldHMgdGhlIG1heC13aWR0aCBwcm9wZXJ0eSBvZiB0aGUgZWxlbWVudCB0aGF0IGluY2x1ZGVzIGBvdXRlci1jb250YWluZXIoKWAuIFNldCB3aXRoIHRoZSBgIWdsb2JhbGAgZmxhZy5cbi8vL1xuLy8vIEB0eXBlIE51bWJlciAoVW5pdClcbi8vL1xuJG1heC13aWR0aDogMTIwMHB4ICFkZWZhdWx0O1xuXG4vLy8gV2hlbiBzZXQgdG8gdHJ1ZSwgaXQgc2V0cyB0aGUgYm94LXNpemluZyBwcm9wZXJ0eSBvZiBhbGwgZWxlbWVudHMgdG8gYGJvcmRlci1ib3hgLiBTZXQgd2l0aCBhIGAhZ2xvYmFsYCBmbGFnLlxuLy8vXG4vLy8gQHR5cGUgQm9vbFxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgaHRtbCB7XG4vLy8gICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cbi8vL1xuLy8vICAgKiwgKjo6YWZ0ZXIsICo6OmJlZm9yZSB7XG4vLy8gICAgIGJveC1zaXppbmc6IGluaGVyaXQ7XG4vLy8gICB9XG5cbiRib3JkZXItYm94LXNpemluZzogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgdGhlIGRlZmF1bHQgW21lZGlhIGZlYXR1cmVdKGh0dHA6Ly93d3cudzMub3JnL1RSL2NzczMtbWVkaWFxdWVyaWVzLyNtZWRpYSkgdGhhdCBgbWVkaWEoKWAgYW5kIGBuZXctYnJlYWtwb2ludCgpYCByZXZlcnQgdG8gd2hlbiBvbmx5IGEgYnJlYWtwb2ludCB2YWx1ZSBpcyBwYXNzZWQuIFNldCB3aXRoIGEgYCFnbG9iYWxgIGZsYWcuXG4vLy9cbi8vLyBAdHlwZSBTdHJpbmdcblxuJGRlZmF1bHQtZmVhdHVyZTogbWluLXdpZHRoOyAvLyBEZWZhdWx0IEBtZWRpYSBmZWF0dXJlIGZvciB0aGUgYnJlYWtwb2ludCgpIG1peGluXG5cbi8vL1NldHMgdGhlIGRlZmF1bHQgbGF5b3V0IGRpcmVjdGlvbiBvZiB0aGUgZ3JpZC4gQ2FuIGJlIGBMVFJgIG9yIGBSVExgLiBTZXQgd2l0aCBhIGAhZ2xvYmFsYCBmbGFnLlxuLy8vXG4vLy9AdHlwZSBTdHJpbmdcblxuJGRlZmF1bHQtbGF5b3V0LWRpcmVjdGlvbjogTFRSICFkZWZhdWx0O1xuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gRGlzcGxheXMgdGhlIHZpc3VhbCBncmlkIHdoZW4gc2V0IHRvIHRydWUuIFRoZSBvdmVybGFpZCBncmlkIG1heSBiZSBmZXcgcGl4ZWxzIG9mZiBkZXBlbmRpbmcgb24gdGhlIGJyb3dzZXIncyByZW5kZXJpbmcgZW5naW5lIGFuZCBwaXhlbCByb3VuZGluZyBhbGdvcml0aG0uIFNldCB3aXRoIHRoZSBgIWdsb2JhbGAgZmxhZy5cbi8vL1xuLy8vIEB0eXBlIEJvb2xcblxuJHZpc3VhbC1ncmlkOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgdGhlIHZpc3VhbCBncmlkIGNvbG9yLiBTZXQgd2l0aCBgIWdsb2JhbGAgZmxhZy5cbi8vL1xuLy8vIEB0eXBlIENvbG9yXG5cbiR2aXN1YWwtZ3JpZC1jb2xvcjogI2VlZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgdGhlIGB6LWluZGV4YCBwcm9wZXJ0eSBvZiB0aGUgdmlzdWFsIGdyaWQuIENhbiBiZSBgYmFja2AgKGJlaGluZCBjb250ZW50KSBvciBgZnJvbnRgIChpbiBmcm9udCBvZiBjb250ZW50KS4gU2V0IHdpdGggYCFnbG9iYWxgIGZsYWcuXG4vLy9cbi8vLyBAdHlwZSBTdHJpbmdcblxuJHZpc3VhbC1ncmlkLWluZGV4OiBiYWNrICFkZWZhdWx0O1xuXG4vLy8gU2V0cyB0aGUgb3BhY2l0eSBwcm9wZXJ0eSBvZiB0aGUgdmlzdWFsIGdyaWQuIFNldCB3aXRoIGAhZ2xvYmFsYCBmbGFnLlxuLy8vXG4vLy8gQHR5cGUgTnVtYmVyICh1bml0bGVzcylcblxuJHZpc3VhbC1ncmlkLW9wYWNpdHk6IDAuNCAhZGVmYXVsdDtcblxuJHZpc3VhbC1ncmlkLWJyZWFrcG9pbnRzOiAoKSAhZGVmYXVsdDtcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIERpc2FibGUgYWxsIGRlcHJlY2F0aW9uIHdhcm5pbmdzLiBEZWZhdWx0cyB0byBgZmFsc2VgLiBTZXQgd2l0aCBhIGAhZ2xvYmFsYCBmbGFnLlxuLy8vXG4vLy8gQHR5cGUgQm9vbFxuXG4kZGlzYWJsZS13YXJuaW5nczogZmFsc2UgIWRlZmF1bHQ7XG5cbkBtaXhpbiAtbmVhdC13YXJuKCRtZXNzYWdlKSB7XG4gIEBpZiAkZGlzYWJsZS13YXJuaW5ncyA9PSBmYWxzZSB7XG4gICAgQHdhcm4gXCIjeyRtZXNzYWdlfVwiO1xuICB9XG59XG4iLCIvLyBDb2xvcnM6IFNwZWNpZmljXG4kY29sb3ItZ3JleS1kYXJrOiAjMjcyNzI3O1xuJGNvbG9yLWdyZXk6ICM5OTk7XG4kY29sb3ItZ3JleS1taWQ6ICNkZGQ7XG4kY29sb3ItZ3JleS1saWdodDogI2YyZjJmMjtcbiRjb2xvci13aGl0ZTogI2ZmZjtcbiRjb2xvci1ibGFjazogIzAwMDtcbiRjb2xvci10ZWFsOiAjNTg5MGUzO1xuJGNvbG9yLXRlYWwtZGFyazogIzU4OTBlMztcbiRjb2xvci1vcmFuZ2U6ICNkYzUzMjM7XG5cbi8vIENvbG9yczogU2VtYW50aWNcbiRjb2xvci10ZXh0OiAkY29sb3ItZ3JleS1kYXJrO1xuJGNvbG9yLXRleHQtaW52ZXJ0OiAkY29sb3Itd2hpdGU7XG5cbi8vIFZpZXdwb3J0IFdpZHRoczogRXJnb25vbWljXG4kd2lkdGgtd3Jpc3QtbWF4OiAxMDAlO1xuJHdpZHRoLXBhbG06IDk1JTtcbiR3aWR0aC1wYWxtLW1xOiBlbSgzMDApO1xuJHdpZHRoLXBhbG0tbWF4OiBlbSg1MDApO1xuJHdpZHRoLWxhcDogOTUlO1xuJHdpZHRoLWxhcC1tcTogZW0oNzUwKTtcbiR3aWR0aC1sYXAtbWF4OiA5NSU7XG4kd2lkdGgtZGVzazogOTUlO1xuJHdpZHRoLWRlc2stbXE6IGVtKDEwMDApO1xuJHdpZHRoLWRlc2stbWF4OiBlbSg3NTApO1xuJHdpZHRoLXdhbGw6IDk1JTtcbiR3aWR0aC13YWxsLW1xOiBlbSgxMjAwKTtcbiR3aWR0aC13YWxsLW1heDogZW0oMTUwMCk7XG5cbi8vIFJlZ2lvbiBTaXplc1xuJGhlaWdodC1oZWFkZXItcGFsbTogZW0oNTApO1xuJGhlaWdodC1oZWFkZXItZGVzazogZW0oNjApO1xuXG4vLyBCcmVha3BvaW50cyBmb3IgTmVhdCdzIG1lZGlhKCkgbWl4aW5cbiRtcS13cmlzdC1kb3duOiBuZXctYnJlYWtwb2ludChtYXgtd2lkdGggJHdpZHRoLXBhbG0tbXEgMSk7XG4kbXEtcGFsbTogbmV3LWJyZWFrcG9pbnQobWluLXdpZHRoICR3aWR0aC1wYWxtLW1xIDQpO1xuJG1xLXBhbG0tb25seTogbmV3LWJyZWFrcG9pbnQobWluLXdpZHRoICR3aWR0aC1wYWxtLW1xIG1heC13aWR0aCAkd2lkdGgtbGFwLW1xIDQpO1xuJG1xLXBhbG0tZG93bjogbmV3LWJyZWFrcG9pbnQobWF4LXdpZHRoICgkd2lkdGgtbGFwLW1xIC0gZW0oMSkpIDQpO1xuJG1xLWxhcDogbmV3LWJyZWFrcG9pbnQobWluLXdpZHRoICR3aWR0aC1sYXAtbXEgMjQpO1xuJG1xLWxhcC1vbmx5OiBuZXctYnJlYWtwb2ludChtaW4td2lkdGggJHdpZHRoLWxhcC1tcSBtYXgtd2lkdGggJHdpZHRoLWRlc2stbXEgMjQpO1xuJG1xLWxhcC1kb3duOiBuZXctYnJlYWtwb2ludChtYXgtd2lkdGggKCR3aWR0aC1kZXNrLW1xIC0gZW0oMSkpIDI0KTtcbiRtcS1kZXNrOiBuZXctYnJlYWtwb2ludChtaW4td2lkdGggJHdpZHRoLWRlc2stbXEgMjQpO1xuJG1xLWRlc2stb25seTogbmV3LWJyZWFrcG9pbnQobWluLXdpZHRoICR3aWR0aC1kZXNrLW1xIG1heC13aWR0aCAkd2lkdGgtd2FsbC1tcSAyNCk7XG4kbXEtZGVzay1kb3duOiBuZXctYnJlYWtwb2ludChtYXgtd2lkdGggKCR3aWR0aC13YWxsLW1xIC0gZW0oMSkpIDI0KTtcbiRtcS13YWxsOiBuZXctYnJlYWtwb2ludChtaW4td2lkdGggJHdpZHRoLXdhbGwtbXEgMTIpO1xuIiwiQGluY2x1ZGUga2V5ZnJhbWVzKG9zY2lsYXRlKSB7XG4gIDAlIHtcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3Itb3JhbmdlO1xuICB9XG4gIDUwJSB7XG4gICAgYmFja2dyb3VuZDogbGlnaHRlbigkY29sb3Itb3JhbmdlLCAxNSUpO1xuICB9XG4gIDEwMCUge1xuICAgIGJhY2tncm91bmQ6ICRjb2xvci1vcmFuZ2U7XG4gIH1cbn1cbiIsIi8vIE5lYXQgMS43LjRcbi8vIGh0dHA6Ly9uZWF0LmJvdXJib24uaW9cbi8vIENvcHlyaWdodCAyMDEyLTIwMTUgdGhvdWdodGJvdCwgaW5jLlxuLy8gTUlUIExpY2Vuc2VcblxuLy8gSGVscGVyc1xuQGltcG9ydCBcIm5lYXQtaGVscGVyc1wiO1xuXG4vLyBHcmlkXG5AaW1wb3J0IFwiZ3JpZC9wcml2YXRlXCI7XG5AaW1wb3J0IFwiZ3JpZC9ib3gtc2l6aW5nXCI7XG5AaW1wb3J0IFwiZ3JpZC9vbWVnYVwiO1xuQGltcG9ydCBcImdyaWQvb3V0ZXItY29udGFpbmVyXCI7XG5AaW1wb3J0IFwiZ3JpZC9zcGFuLWNvbHVtbnNcIjtcbkBpbXBvcnQgXCJncmlkL3Jvd1wiO1xuQGltcG9ydCBcImdyaWQvc2hpZnRcIjtcbkBpbXBvcnQgXCJncmlkL3BhZFwiO1xuQGltcG9ydCBcImdyaWQvZmlsbC1wYXJlbnRcIjtcbkBpbXBvcnQgXCJncmlkL21lZGlhXCI7XG5AaW1wb3J0IFwiZ3JpZC90by1kZXByZWNhdGVcIjtcbkBpbXBvcnQgXCJncmlkL3Zpc3VhbC1ncmlkXCI7XG5AaW1wb3J0IFwiZ3JpZC9kaXNwbGF5LWNvbnRleHRcIjtcbkBpbXBvcnQgXCJncmlkL2RpcmVjdGlvbi1jb250ZXh0XCI7XG4iLCIkcGFyZW50LWNvbHVtbnM6ICRncmlkLWNvbHVtbnMgIWRlZmF1bHQ7XG4kZmctY29sdW1uOiAkY29sdW1uO1xuJGZnLWd1dHRlcjogJGd1dHRlcjtcbiRmZy1tYXgtY29sdW1uczogJGdyaWQtY29sdW1ucztcbiRjb250YWluZXItZGlzcGxheS10YWJsZTogZmFsc2UgIWRlZmF1bHQ7XG4kbGF5b3V0LWRpcmVjdGlvbjogTFRSICFkZWZhdWx0O1xuXG5AZnVuY3Rpb24gZmxleC1ncmlkKCRjb2x1bW5zLCAkY29udGFpbmVyLWNvbHVtbnM6ICRmZy1tYXgtY29sdW1ucykge1xuICAkd2lkdGg6ICRjb2x1bW5zICogJGZnLWNvbHVtbiArICgkY29sdW1ucyAtIDEpICogJGZnLWd1dHRlcjtcbiAgJGNvbnRhaW5lci13aWR0aDogJGNvbnRhaW5lci1jb2x1bW5zICogJGZnLWNvbHVtbiArICgkY29udGFpbmVyLWNvbHVtbnMgLSAxKSAqICRmZy1ndXR0ZXI7XG4gIEByZXR1cm4gcGVyY2VudGFnZSgkd2lkdGggLyAkY29udGFpbmVyLXdpZHRoKTtcbn1cblxuQGZ1bmN0aW9uIGZsZXgtZ3V0dGVyKCRjb250YWluZXItY29sdW1uczogJGZnLW1heC1jb2x1bW5zLCAkZ3V0dGVyOiAkZmctZ3V0dGVyKSB7XG4gICRjb250YWluZXItd2lkdGg6ICRjb250YWluZXItY29sdW1ucyAqICRmZy1jb2x1bW4gKyAoJGNvbnRhaW5lci1jb2x1bW5zIC0gMSkgKiAkZmctZ3V0dGVyO1xuICBAcmV0dXJuIHBlcmNlbnRhZ2UoJGd1dHRlciAvICRjb250YWluZXItd2lkdGgpO1xufVxuXG5AZnVuY3Rpb24gZ3JpZC13aWR0aCgkbikge1xuICBAcmV0dXJuICRuICogJGd3LWNvbHVtbiArICgkbiAtIDEpICogJGd3LWd1dHRlcjtcbn1cblxuQGZ1bmN0aW9uIGdldC1wYXJlbnQtY29sdW1ucygkY29sdW1ucykge1xuICBAaWYgJGNvbHVtbnMgIT0gJGdyaWQtY29sdW1ucyB7XG4gICAgJHBhcmVudC1jb2x1bW5zOiAkY29sdW1ucyAhZ2xvYmFsO1xuICB9IEBlbHNlIHtcbiAgICAkcGFyZW50LWNvbHVtbnM6ICRncmlkLWNvbHVtbnMgIWdsb2JhbDtcbiAgfVxuXG4gIEByZXR1cm4gJHBhcmVudC1jb2x1bW5zO1xufVxuXG5AZnVuY3Rpb24gaXMtZGlzcGxheS10YWJsZSgkY29udGFpbmVyLWlzLWRpc3BsYXktdGFibGUsICRkaXNwbGF5KSB7XG4gIEByZXR1cm4gJGNvbnRhaW5lci1pcy1kaXNwbGF5LXRhYmxlID09IHRydWUgb3IgJGRpc3BsYXkgPT0gdGFibGU7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbkBpZiAkYm9yZGVyLWJveC1zaXppbmcgPT0gdHJ1ZSB7XG4gIGh0bWwgeyAvLyBodHRwOi8vYml0Lmx5LzFxazJ0VlJcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG5cbiAgKiB7XG4gICAgJixcbiAgICAmOjphZnRlcixcbiAgICAmOjpiZWZvcmUge1xuICAgICAgYm94LXNpemluZzogaW5oZXJpdDtcbiAgICB9XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFJlbW92ZXMgdGhlIGVsZW1lbnQncyBndXR0ZXIgbWFyZ2luLCByZWdhcmRsZXNzIG9mIGl0cyBwb3NpdGlvbiBpbiB0aGUgZ3JpZCBoaWVyYXJjaHkgb3IgZGlzcGxheSBwcm9wZXJ0eS4gSXQgY2FuIHRhcmdldCBhIHNwZWNpZmljIGVsZW1lbnQsIG9yIGV2ZXJ5IGBudGgtY2hpbGRgIG9jY3VycmVuY2UuIFdvcmtzIG9ubHkgd2l0aCBgYmxvY2tgIGxheW91dHMuXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRxdWVyeSBbYmxvY2tdXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50cy4gU3VwcG9ydGVkIGFyZ3VtZW50cyBhcmUgYG50aC1jaGlsZGAgc2VsZWN0b3JzICh0YXJnZXRzIGEgc3BlY2lmaWMgcHNldWRvIGVsZW1lbnQpIGFuZCBgYXV0b2AgKHRhcmdldHMgYGxhc3QtY2hpbGRgKS5cbi8vL1xuLy8vICAgV2hlbiBwYXNzZWQgYW4gYG50aC1jaGlsZGAgYXJndW1lbnQgb2YgdHlwZSBgKm5gIHdpdGggYGJsb2NrYCBkaXNwbGF5LCB0aGUgb21lZ2EgbWl4aW4gYXV0b21hdGljYWxseSBhZGRzIGEgY2xlYXIgdG8gdGhlIGAqbisxYCB0aCBlbGVtZW50LiBOb3RlIHRoYXQgY29tcG9zaXRlIGFyZ3VtZW50cyBzdWNoIGFzIGAybisxYCBkbyBub3Qgc3VwcG9ydCB0aGlzIGZlYXR1cmUuXG4vLy9cbi8vLyAgICoqRGVwcmVjYXRpb24gd2FybmluZyoqOiBUaGUgb21lZ2EgbWl4aW4gd2lsbCBubyBsb25nZXIgdGFrZSBhIGAkZGlyZWN0aW9uYCBhcmd1bWVudC4gVG8gY2hhbmdlIHRoZSBsYXlvdXQgZGlyZWN0aW9uLCB1c2UgYHJvdygkZGlyZWN0aW9uKWAgb3Igc2V0IGAkZGVmYXVsdC1sYXlvdXQtZGlyZWN0aW9uYCBpbnN0ZWFkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIG9tZWdhO1xuLy8vICAgfVxuLy8vXG4vLy8gICAubnRoLWVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBvbWVnYSg0bik7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIG1hcmdpbi1yaWdodDogMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLm50aC1lbGVtZW50Om50aC1jaGlsZCg0bikge1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5udGgtZWxlbWVudDpudGgtY2hpbGQoNG4rMSkge1xuLy8vICAgICBjbGVhcjogbGVmdDtcbi8vLyAgIH1cblxuQG1peGluIG9tZWdhKCRxdWVyeTogYmxvY2ssICRkaXJlY3Rpb246IGRlZmF1bHQpIHtcbiAgJHRhYmxlOiBiZWxvbmdzLXRvKHRhYmxlLCAkcXVlcnkpO1xuICAkYXV0bzogYmVsb25ncy10byhhdXRvLCAkcXVlcnkpO1xuXG4gIEBpZiAkZGlyZWN0aW9uICE9IGRlZmF1bHQge1xuICAgIEBpbmNsdWRlIC1uZWF0LXdhcm4oXCJUaGUgb21lZ2EgbWl4aW4gd2lsbCBubyBsb25nZXIgdGFrZSBhICRkaXJlY3Rpb24gYXJndW1lbnQuIFRvIGNoYW5nZSB0aGUgbGF5b3V0IGRpcmVjdGlvbiwgdXNlIHRoZSBkaXJlY3Rpb24oKXsuLi59IG1peGluLlwiKTtcbiAgfSBAZWxzZSB7XG4gICAgJGRpcmVjdGlvbjogZ2V0LWRpcmVjdGlvbigkbGF5b3V0LWRpcmVjdGlvbiwgJGRlZmF1bHQtbGF5b3V0LWRpcmVjdGlvbik7XG4gIH1cblxuICBAaWYgJHRhYmxlIHtcbiAgICBAaW5jbHVkZSAtbmVhdC13YXJuKFwiVGhlIG9tZWdhIG1peGluIG5vIGxvbmdlciByZW1vdmVzIHBhZGRpbmcgaW4gdGFibGUgbGF5b3V0cy5cIik7XG4gIH1cblxuICBAaWYgbGVuZ3RoKCRxdWVyeSkgPT0gMSB7XG4gICAgQGlmICRhdXRvIHtcbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi0jeyRkaXJlY3Rpb259OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBlbHNlIGlmIGNvbnRhaW5zLWRpc3BsYXktdmFsdWUoJHF1ZXJ5KSBhbmQgJHRhYmxlID09IGZhbHNlIHtcbiAgICAgIG1hcmdpbi0jeyRkaXJlY3Rpb259OiAwO1xuICAgIH1cblxuICAgIEBlbHNlIHtcbiAgICAgIEBpbmNsdWRlIG50aC1jaGlsZCgkcXVlcnksICRkaXJlY3Rpb24pO1xuICAgIH1cbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHF1ZXJ5KSA9PSAyIHtcbiAgICBAaWYgJGF1dG8ge1xuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLSN7JGRpcmVjdGlvbn06IDA7XG4gICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICBAaW5jbHVkZSBudGgtY2hpbGQobnRoKCRxdWVyeSwgMSksICRkaXJlY3Rpb24pO1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQGluY2x1ZGUgLW5lYXQtd2FybihcIlRvbyBtYW55IGFyZ3VtZW50cyBwYXNzZWQgdG8gdGhlIG9tZWdhKCkgbWl4aW4uXCIpO1xuICB9XG59XG5cbkBtaXhpbiBudGgtY2hpbGQoJHF1ZXJ5LCAkZGlyZWN0aW9uKSB7XG4gICRvcHBvc2l0ZS1kaXJlY3Rpb246IGdldC1vcHBvc2l0ZS1kaXJlY3Rpb24oJGRpcmVjdGlvbik7XG5cbiAgJjpudGgtY2hpbGQoI3skcXVlcnl9KSB7XG4gICAgbWFyZ2luLSN7JGRpcmVjdGlvbn06IDA7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkcXVlcnkpID09IG51bWJlciBhbmQgdW5pdCgkcXVlcnkpID09IFwiblwiIHtcbiAgICAmOm50aC1jaGlsZCgjeyRxdWVyeX0rMSkge1xuICAgICAgY2xlYXI6ICRvcHBvc2l0ZS1kaXJlY3Rpb247XG4gICAgfVxuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBNYWtlcyBhbiBlbGVtZW50IGEgb3V0ZXIgY29udGFpbmVyIGJ5IGNlbnRlcmluZyBpdCBpbiB0aGUgdmlld3BvcnQsIGNsZWFyaW5nIGl0cyBmbG9hdHMsIGFuZCBzZXR0aW5nIGl0cyBgbWF4LXdpZHRoYC5cbi8vLyBBbHRob3VnaCBvcHRpb25hbCwgdXNpbmcgYG91dGVyLWNvbnRhaW5lcmAgaXMgcmVjb21tZW5kZWQuIFRoZSBtaXhpbiBjYW4gYmUgY2FsbGVkIG9uIG1vcmUgdGhhbiBvbmUgZWxlbWVudCBwZXIgcGFnZSwgYXMgbG9uZyBhcyB0aGV5IGFyZSBub3QgbmVzdGVkLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXIgW3VuaXRdfSAkbG9jYWwtbWF4LXdpZHRoIFskbWF4LXdpZHRoXVxuLy8vICAgTWF4IHdpZHRoIHRvIGJlIGFwcGxpZWQgdG8gdGhlIGVsZW1lbnQuIENhbiBiZSBhIHBlcmNlbnRhZ2Ugb3IgYSBtZWFzdXJlLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIG91dGVyLWNvbnRhaW5lcigxMDAlKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgKnpvb206IDE7XG4vLy8gICAgIG1heC13aWR0aDogMTAwJTtcbi8vLyAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4vLy8gICAgIG1hcmdpbi1yaWdodDogYXV0bztcbi8vLyAgIH1cbi8vL1xuLy8vICAgLmVsZW1lbnQ6YmVmb3JlLCAuZWxlbWVudDphZnRlciB7XG4vLy8gICAgIGNvbnRlbnQ6IFwiIFwiO1xuLy8vICAgICBkaXNwbGF5OiB0YWJsZTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLmVsZW1lbnQ6YWZ0ZXIge1xuLy8vICAgICBjbGVhcjogYm90aDtcbi8vLyAgIH1cblxuQG1peGluIG91dGVyLWNvbnRhaW5lcigkbG9jYWwtbWF4LXdpZHRoOiAkbWF4LXdpZHRoKSB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBtYXgtd2lkdGg6ICRsb2NhbC1tYXgtd2lkdGg7XG4gIG1hcmdpbjoge1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IGF1dG87XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFNwZWNpZmllcyB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgYW4gZWxlbWVudCBzaG91bGQgc3Bhbi4gSWYgdGhlIHNlbGVjdG9yIGlzIG5lc3RlZCB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgb2YgaXRzIHBhcmVudCBlbGVtZW50IHNob3VsZCBiZSBwYXNzZWQgYXMgYW4gYXJndW1lbnQgYXMgd2VsbC5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHNwYW5cbi8vLyAgIEEgbGlzdCBjb250YWluaW5nIGAkY29sdW1uc2AsIHRoZSB1bml0bGVzcyBudW1iZXIgb2YgY29sdW1ucyB0aGUgZWxlbWVudCBzcGFucyAocmVxdWlyZWQpLCBhbmQgYCRjb250YWluZXItY29sdW1uc2AsIHRoZSBudW1iZXIgb2YgY29sdW1ucyB0aGUgcGFyZW50IGVsZW1lbnQgc3BhbnMgKG9wdGlvbmFsKS5cbi8vL1xuLy8vICAgSWYgb25seSBvbmUgdmFsdWUgaXMgcGFzc2VkLCBpdCBpcyBhc3N1bWVkIHRoYXQgaXQncyBgJGNvbHVtbnNgIGFuZCB0aGF0IHRoYXQgYCRjb250YWluZXItY29sdW1uc2AgaXMgZXF1YWwgdG8gYCRncmlkLWNvbHVtbnNgLCB0aGUgdG90YWwgbnVtYmVyIG9mIGNvbHVtbnMgaW4gdGhlIGdyaWQuXG4vLy9cbi8vLyAgIFRoZSB2YWx1ZXMgY2FuIGJlIHNlcGFyYXRlZCB3aXRoIGFueSBzdHJpbmcgc3VjaCBhcyBgb2ZgLCBgL2AsIGV0Yy5cbi8vL1xuLy8vICAgYCRjb2x1bW5zYCBhbHNvIGFjY2VwdHMgZGVjaW1hbHMgZm9yIHdoZW4gaXQncyBuZWNlc3NhcnkgdG8gYnJlYWsgb3V0IG9mIHRoZSBzdGFuZGFyZCBncmlkLiBFLmcuIFBhc3NpbmcgYDIuNGAgaW4gYSBzdGFuZGFyZCAxMiBjb2x1bW4gZ3JpZCB3aWxsIGRpdmlkZSB0aGUgcm93IGludG8gNSBjb2x1bW5zLlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRkaXNwbGF5IFtibG9ja11cbi8vLyAgIFNldHMgdGhlIGRpc3BsYXkgcHJvcGVydHkgb2YgdGhlIGVsZW1lbnQuIEJ5IGRlZmF1bHQgaXQgc2V0cyB0aGUgZGlzcGxheSBwcm9wZXJ0eSBvZiB0aGUgZWxlbWVudCB0byBgYmxvY2tgLlxuLy8vXG4vLy8gICBJZiBwYXNzZWQgYGJsb2NrLWNvbGxhcHNlYCwgaXQgYWxzbyByZW1vdmVzIHRoZSBtYXJnaW4gZ3V0dGVyIGJ5IGFkZGluZyBpdCB0byB0aGUgZWxlbWVudCB3aWR0aC5cbi8vL1xuLy8vICAgSWYgcGFzc2VkIGB0YWJsZWAsIGl0IHNldHMgdGhlIGRpc3BsYXkgcHJvcGVydHkgdG8gYHRhYmxlLWNlbGxgIGFuZCBjYWxjdWxhdGVzIHRoZSB3aWR0aCBvZiB0aGUgZWxlbWVudCB3aXRob3V0IHRha2luZyBndXR0ZXJzIGludG8gY29uc2lkZXJhdGlvbi4gVGhlIHJlc3VsdCBkb2VzIG5vdCBhbGlnbiB3aXRoIHRoZSBibG9jay1iYXNlZCBncmlkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg2KTtcbi8vL1xuLy8vICAgIC5uZXN0ZWQtZWxlbWVudCB7XG4vLy8gICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMiBvZiA2KTtcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgZGlzcGxheTogYmxvY2s7XG4vLy8gICAgIGZsb2F0OiBsZWZ0O1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDIuMzU3NjUlO1xuLy8vICAgICB3aWR0aDogNDguODIxMTclO1xuLy8vICAgfVxuLy8vXG4vLy8gICAuZWxlbWVudDpsYXN0LWNoaWxkIHtcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuLy8vICAgfVxuLy8vXG4vLy8gICAuZWxlbWVudCAubmVzdGVkLWVsZW1lbnQge1xuLy8vICAgICBkaXNwbGF5OiBibG9jaztcbi8vLyAgICAgZmxvYXQ6IGxlZnQ7XG4vLy8gICAgIG1hcmdpbi1yaWdodDogNC44MjkxNiU7XG4vLy8gICAgIHdpZHRoOiAzMC4xMTM4OSU7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5lbGVtZW50IC5uZXN0ZWQtZWxlbWVudDpsYXN0LWNoaWxkIHtcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuLy8vICAgfVxuXG5AbWl4aW4gc3Bhbi1jb2x1bW5zKCRzcGFuOiAkY29sdW1ucyBvZiAkY29udGFpbmVyLWNvbHVtbnMsICRkaXNwbGF5OiBibG9jaykge1xuICAkY29sdW1uczogbnRoKCRzcGFuLCAxKTtcbiAgJGNvbnRhaW5lci1jb2x1bW5zOiBjb250YWluZXItc3Bhbigkc3Bhbik7XG5cbiAgJHBhcmVudC1jb2x1bW5zOiBnZXQtcGFyZW50LWNvbHVtbnMoJGNvbnRhaW5lci1jb2x1bW5zKSAhZ2xvYmFsO1xuXG4gICRkaXJlY3Rpb246IGdldC1kaXJlY3Rpb24oJGxheW91dC1kaXJlY3Rpb24sICRkZWZhdWx0LWxheW91dC1kaXJlY3Rpb24pO1xuICAkb3Bwb3NpdGUtZGlyZWN0aW9uOiBnZXQtb3Bwb3NpdGUtZGlyZWN0aW9uKCRkaXJlY3Rpb24pO1xuXG4gICRkaXNwbGF5LXRhYmxlOiBpcy1kaXNwbGF5LXRhYmxlKCRjb250YWluZXItZGlzcGxheS10YWJsZSwgJGRpc3BsYXkpO1xuXG4gIEBpZiAkZGlzcGxheS10YWJsZSAge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgd2lkdGg6IHBlcmNlbnRhZ2UoJGNvbHVtbnMgLyAkY29udGFpbmVyLWNvbHVtbnMpO1xuICB9IEBlbHNlIHtcbiAgICBmbG9hdDogI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTtcblxuICAgIEBpZiAkZGlzcGxheSAhPSBuby1kaXNwbGF5IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIEBpZiAkZGlzcGxheSA9PSBjb2xsYXBzZSB7XG4gICAgICBAaW5jbHVkZSAtbmVhdC13YXJuKFwiVGhlICdjb2xsYXBzZScgYXJndW1lbnQgd2lsbCBiZSBkZXByZWNhdGVkLiBVc2UgJ2Jsb2NrLWNvbGxhcHNlJyBpbnN0ZWFkLlwiKTtcbiAgICB9XG5cbiAgICBAaWYgJGRpc3BsYXkgPT0gY29sbGFwc2Ugb3IgJGRpc3BsYXkgPT0gYmxvY2stY29sbGFwc2Uge1xuICAgICAgd2lkdGg6IGZsZXgtZ3JpZCgkY29sdW1ucywgJGNvbnRhaW5lci1jb2x1bW5zKSArIGZsZXgtZ3V0dGVyKCRjb250YWluZXItY29sdW1ucyk7XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIHdpZHRoOiBmbGV4LWdyaWQoJGNvbHVtbnMsICRjb250YWluZXItY29sdW1ucyk7XG4gICAgICB9XG5cbiAgICB9IEBlbHNlIHtcbiAgICAgIG1hcmdpbi0jeyRkaXJlY3Rpb259OiBmbGV4LWd1dHRlcigkY29udGFpbmVyLWNvbHVtbnMpO1xuICAgICAgd2lkdGg6IGZsZXgtZ3JpZCgkY29sdW1ucywgJGNvbnRhaW5lci1jb2x1bW5zKTtcblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLSN7JGRpcmVjdGlvbn06IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBEZXNpZ25hdGVzIHRoZSBlbGVtZW50IGFzIGEgcm93IG9mIGNvbHVtbnMgaW4gdGhlIGdyaWQgbGF5b3V0LiBJdCBjbGVhcnMgdGhlIGZsb2F0cyBvbiB0aGUgZWxlbWVudCBhbmQgc2V0cyBpdHMgZGlzcGxheSBwcm9wZXJ0eS4gUm93cyBjYW4ndCBiZSBuZXN0ZWQsIGJ1dCB0aGVyZSBjYW4gYmUgbW9yZSB0aGFuIG9uZSByb3cgZWxlbWVudOKAlHdpdGggZGlmZmVyZW50IGRpc3BsYXkgcHJvcGVydGllc+KAlHBlciBsYXlvdXQuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGRpc3BsYXkgW2RlZmF1bHRdXG4vLy8gIFNldHMgdGhlIGRpc3BsYXkgcHJvcGVydHkgb2YgdGhlIGVsZW1lbnQgYW5kIHRoZSBkaXNwbGF5IGNvbnRleHQgdGhhdCB3aWxsIGJlIHVzZWQgYnkgaXRzIGNoaWxkcmVuLiBDYW4gYmUgYGJsb2NrYCBvciBgdGFibGVgLlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRkaXJlY3Rpb24gWyRkZWZhdWx0LWxheW91dC1kaXJlY3Rpb25dXG4vLy8gIFNldHMgdGhlIGxheW91dCBkaXJlY3Rpb24uIENhbiBiZSBgTFRSYCAobGVmdC10by1yaWdodCkgb3IgYFJUTGAgKHJpZ2h0LXRvLWxlZnQpLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gIC5lbGVtZW50IHtcbi8vLyAgICBAaW5jbHVkZSByb3coKTtcbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAuZWxlbWVudCB7XG4vLy8gICAgKnpvb206IDE7XG4vLy8gICAgZGlzcGxheTogYmxvY2s7XG4vLy8gIH1cbi8vL1xuLy8vIC5lbGVtZW50OmJlZm9yZSwgLmVsZW1lbnQ6YWZ0ZXIge1xuLy8vICAgY29udGVudDogXCIgXCI7XG4vLy8gICBkaXNwbGF5OiB0YWJsZTtcbi8vLyB9XG4vLy9cbi8vLyAuZWxlbWVudDphZnRlciB7XG4vLy8gICBjbGVhcjogYm90aDtcbi8vLyB9XG5cbkBtaXhpbiByb3coJGRpc3BsYXk6IGRlZmF1bHQsICRkaXJlY3Rpb246ICRkZWZhdWx0LWxheW91dC1kaXJlY3Rpb24pIHtcbiAgQGlmICRkaXJlY3Rpb24gIT0gJGRlZmF1bHQtbGF5b3V0LWRpcmVjdGlvbiB7XG4gICAgQGluY2x1ZGUgLW5lYXQtd2FybihcIlRoZSAkZGlyZWN0aW9uIGFyZ3VtZW50IHdpbGwgYmUgZGVwcmVjYXRlZCBpbiBmdXR1cmUgdmVyc2lvbnMgaW4gZmF2b3Igb2YgdGhlIGRpcmVjdGlvbigpey4uLn0gbWl4aW4uXCIpO1xuICB9XG5cbiAgJGxheW91dC1kaXJlY3Rpb246ICRkaXJlY3Rpb24gIWdsb2JhbDtcblxuICBAaWYgJGRpc3BsYXkgIT0gZGVmYXVsdCB7XG4gICAgQGluY2x1ZGUgLW5lYXQtd2FybihcIlRoZSAkZGlzcGxheSBhcmd1bWVudCB3aWxsIGJlIGRlcHJlY2F0ZWQgaW4gZnV0dXJlIHZlcnNpb25zIGluIGZhdm9yIG9mIHRoZSBkaXNwbGF5KCl7Li4ufSBtaXhpbi5cIik7XG4gIH1cblxuICBAaWYgJGRpc3BsYXkgPT0gdGFibGUge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIEBpbmNsdWRlIGZpbGwtcGFyZW50O1xuICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gICAgJGNvbnRhaW5lci1kaXNwbGF5LXRhYmxlOiB0cnVlICFnbG9iYWw7XG4gIH0gQGVsc2Uge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICRjb250YWluZXItZGlzcGxheS10YWJsZTogZmFsc2UgIWdsb2JhbDtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gVHJhbnNsYXRlcyBhbiBlbGVtZW50IGhvcml6b250YWxseSBieSBhIG51bWJlciBvZiBjb2x1bW5zLiBQb3NpdGl2ZSBhcmd1bWVudHMgc2hpZnQgdGhlIGVsZW1lbnQgdG8gdGhlIGFjdGl2ZSBsYXlvdXQgZGlyZWN0aW9uLCB3aGlsZSBuZWdhdGl2ZSBvbmVzIHNoaWZ0IGl0IHRvIHRoZSBvcHBvc2l0ZSBkaXJlY3Rpb24uXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlciAodW5pdGxlc3MpfSAkbi1jb2x1bW5zIFsxXVxuLy8vICAgTnVtYmVyIG9mIGNvbHVtbnMgYnkgd2hpY2ggdGhlIGVsZW1lbnQgc2hpZnRzLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHNoaWZ0KC0zKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBvdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgbWFyZ2luLWxlZnQ6IC0yNS41ODk0MSU7XG4vLy8gICB9XG5cbkBtaXhpbiBzaGlmdCgkbi1jb2x1bW5zOiAxKSB7XG4gIEBpbmNsdWRlIHNoaWZ0LWluLWNvbnRleHQoJG4tY29sdW1ucyk7XG59XG5cbi8vLyBUcmFuc2xhdGVzIGFuIGVsZW1lbnQgaG9yaXpvbnRhbGx5IGJ5IGEgbnVtYmVyIG9mIGNvbHVtbnMsIGluIGEgc3BlY2lmaWMgbmVzdGluZyBjb250ZXh0LlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkc2hpZnRcbi8vLyAgIEEgbGlzdCBjb250YWluaW5nIHRoZSBudW1iZXIgb2YgY29sdW1ucyB0byBzaGlmdCAoYCRjb2x1bW5zYCkgYW5kIHRoZSBudW1iZXIgb2YgY29sdW1ucyBvZiB0aGUgcGFyZW50IGVsZW1lbnQgKGAkY29udGFpbmVyLWNvbHVtbnNgKS5cbi8vL1xuLy8vICAgVGhlIHR3byB2YWx1ZXMgY2FuIGJlIHNlcGFyYXRlZCB3aXRoIGFueSBzdHJpbmcgc3VjaCBhcyBgb2ZgLCBgL2AsIGV0Yy5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBzaGlmdCgtMyBvZiA2KTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBvdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgbWFyZ2luLWxlZnQ6IC01Mi40MTQ1OCU7XG4vLy8gICB9XG5cbkBtaXhpbiBzaGlmdC1pbi1jb250ZXh0KCRzaGlmdDogJGNvbHVtbnMgb2YgJGNvbnRhaW5lci1jb2x1bW5zKSB7XG4gICRuLWNvbHVtbnM6IG50aCgkc2hpZnQsIDEpO1xuICAkcGFyZW50LWNvbHVtbnM6IGNvbnRhaW5lci1zaGlmdCgkc2hpZnQpICFnbG9iYWw7XG5cbiAgJGRpcmVjdGlvbjogZ2V0LWRpcmVjdGlvbigkbGF5b3V0LWRpcmVjdGlvbiwgJGRlZmF1bHQtbGF5b3V0LWRpcmVjdGlvbik7XG4gICRvcHBvc2l0ZS1kaXJlY3Rpb246IGdldC1vcHBvc2l0ZS1kaXJlY3Rpb24oJGRpcmVjdGlvbik7XG5cbiAgbWFyZ2luLSN7JG9wcG9zaXRlLWRpcmVjdGlvbn06ICRuLWNvbHVtbnMgKiBmbGV4LWdyaWQoMSwgJHBhcmVudC1jb2x1bW5zKSArICRuLWNvbHVtbnMgKiBmbGV4LWd1dHRlcigkcGFyZW50LWNvbHVtbnMpO1xuXG4gIC8vIFJlc2V0IG5lc3RpbmcgY29udGV4dFxuICAkcGFyZW50LWNvbHVtbnM6ICRncmlkLWNvbHVtbnMgIWdsb2JhbDtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEFkZHMgcGFkZGluZyB0byB0aGUgZWxlbWVudC5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHBhZGRpbmcgW2ZsZXgtZ3V0dGVyKCldXG4vLy8gICBBIGxpc3Qgb2YgcGFkZGluZyB2YWx1ZShzKSB0byB1c2UuIFBhc3NpbmcgYGRlZmF1bHRgIGluIHRoZSBsaXN0IHdpbGwgcmVzdWx0IGluIHVzaW5nIHRoZSBndXR0ZXIgd2lkdGggYXMgYSBwYWRkaW5nIHZhbHVlLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHBhZCgzMHB4IC0yMHB4IDEwcHggZGVmYXVsdCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIHBhZGRpbmc6IDMwcHggLTIwcHggMTBweCAyLjM1NzY1JTtcbi8vLyAgIH1cblxuQG1peGluIHBhZCgkcGFkZGluZzogZmxleC1ndXR0ZXIoKSkge1xuICAkcGFkZGluZy1saXN0OiBudWxsO1xuICBAZWFjaCAkdmFsdWUgaW4gJHBhZGRpbmcge1xuICAgICR2YWx1ZTogaWYoJHZhbHVlID09ICdkZWZhdWx0JywgZmxleC1ndXR0ZXIoKSwgJHZhbHVlKTtcbiAgICAkcGFkZGluZy1saXN0OiBqb2luKCRwYWRkaW5nLWxpc3QsICR2YWx1ZSk7XG4gIH1cbiAgcGFkZGluZzogJHBhZGRpbmctbGlzdDtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEZvcmNlcyB0aGUgZWxlbWVudCB0byBmaWxsIGl0cyBwYXJlbnQgY29udGFpbmVyLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGZpbGwtcGFyZW50O1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICB3aWR0aDogMTAwJTtcbi8vLyAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbi8vLyAgIH1cblxuQG1peGluIGZpbGwtcGFyZW50KCkge1xuICB3aWR0aDogMTAwJTtcblxuICBAaWYgJGJvcmRlci1ib3gtc2l6aW5nID09IGZhbHNlIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBPdXRwdXRzIGEgbWVkaWEtcXVlcnkgYmxvY2sgd2l0aCBhbiBvcHRpb25hbCBncmlkIGNvbnRleHQgKHRoZSB0b3RhbCBudW1iZXIgb2YgY29sdW1ucyB1c2VkIGluIHRoZSBncmlkKS5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHF1ZXJ5XG4vLy8gICBBIGxpc3Qgb2YgbWVkaWEgcXVlcnkgZmVhdHVyZXMgYW5kIHZhbHVlcywgd2hlcmUgZWFjaCBgJGZlYXR1cmVgIHNob3VsZCBoYXZlIGEgY29ycmVzcG9uZGluZyBgJHZhbHVlYC5cbi8vLyAgIEZvciBhIGxpc3Qgb2YgdmFsaWQgdmFsdWVzIGZvciBgJGZlYXR1cmVgLCBjbGljayBbaGVyZV0oaHR0cDovL3d3dy53My5vcmcvVFIvY3NzMy1tZWRpYXF1ZXJpZXMvI21lZGlhMSkuXG4vLy9cbi8vLyAgIElmIHRoZXJlIGlzIG9ubHkgYSBzaW5nbGUgYCR2YWx1ZWAgaW4gYCRxdWVyeWAsIGAkZGVmYXVsdC1mZWF0dXJlYCBpcyBnb2luZyB0byBiZSB1c2VkLlxuLy8vXG4vLy8gICBUaGUgbnVtYmVyIG9mIHRvdGFsIGNvbHVtbnMgaW4gdGhlIGdyaWQgY2FuIGJlIHNldCBieSBwYXNzaW5nIGAkY29sdW1uc2AgYXQgdGhlIGVuZCBvZiB0aGUgbGlzdCAob3ZlcnJpZGVzIGAkdG90YWwtY29sdW1uc2ApLlxuLy8vXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlciAodW5pdGxlc3MpfSAkdG90YWwtY29sdW1ucyBbJGdyaWQtY29sdW1uc11cbi8vLyAgIC0gTnVtYmVyIG9mIGNvbHVtbnMgdG8gdXNlIGluIHRoZSBuZXcgZ3JpZCBjb250ZXh0LiBDYW4gYmUgc2V0IGFzIGEgc2hvcnRoYW5kIGluIHRoZSBmaXJzdCBwYXJhbWV0ZXIuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5yZXNwb25zaXZlLWVsZW1lbnQge1xuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoNzY5cHgpIHtcbi8vLyAgICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDYpO1xuLy8vICAgICAgfVxuLy8vICAgfVxuLy8vXG4vLy8gIC5uZXctY29udGV4dC1lbGVtZW50IHtcbi8vLyAgICBAaW5jbHVkZSBtZWRpYShtaW4td2lkdGggMzIwcHggbWF4LXdpZHRoIDQ4MHB4LCA2KSB7XG4vLy8gICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNik7XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OXB4KSB7XG4vLy8gICAgLnJlc3BvbnNpdmUtZWxlbWVudCB7XG4vLy8gICAgICBkaXNwbGF5OiBibG9jaztcbi8vLyAgICAgIGZsb2F0OiBsZWZ0O1xuLy8vICAgICAgbWFyZ2luLXJpZ2h0OiAyLjM1NzY1JTtcbi8vLyAgICAgIHdpZHRoOiA0OC44MjExNyU7XG4vLy8gICAgfVxuLy8vXG4vLy8gICAgLnJlc3BvbnNpdmUtZWxlbWVudDpsYXN0LWNoaWxkIHtcbi8vLyAgICAgIG1hcmdpbi1yaWdodDogMDtcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzMjBweCkgYW5kIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4vLy8gICAgLm5ldy1jb250ZXh0LWVsZW1lbnQge1xuLy8vICAgICAgZGlzcGxheTogYmxvY2s7XG4vLy8gICAgICBmbG9hdDogbGVmdDtcbi8vLyAgICAgIG1hcmdpbi1yaWdodDogNC44MjkxNiU7XG4vLy8gICAgICB3aWR0aDogMTAwJTtcbi8vLyAgICB9XG4vLy9cbi8vLyAgICAubmV3LWNvbnRleHQtZWxlbWVudDpsYXN0LWNoaWxkIHtcbi8vLyAgICAgIG1hcmdpbi1yaWdodDogMDtcbi8vLyAgICB9XG4vLy8gIH1cblxuQG1peGluIG1lZGlhKCRxdWVyeTogJGZlYXR1cmUgJHZhbHVlICRjb2x1bW5zLCAkdG90YWwtY29sdW1uczogJGdyaWQtY29sdW1ucykge1xuICBAaWYgbGVuZ3RoKCRxdWVyeSkgPT0gMSB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKCRkZWZhdWx0LWZlYXR1cmU6IG50aCgkcXVlcnksIDEpKSB7XG4gICAgICAkZGVmYXVsdC1ncmlkLWNvbHVtbnM6ICRncmlkLWNvbHVtbnM7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiAkdG90YWwtY29sdW1ucyAhZ2xvYmFsO1xuICAgICAgQGNvbnRlbnQ7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiAkZGVmYXVsdC1ncmlkLWNvbHVtbnMgIWdsb2JhbDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgICRsb29wLXRvOiBsZW5ndGgoJHF1ZXJ5KTtcbiAgICAkbWVkaWEtcXVlcnk6IFwic2NyZWVuIGFuZCBcIjtcbiAgICAkZGVmYXVsdC1ncmlkLWNvbHVtbnM6ICRncmlkLWNvbHVtbnM7XG4gICAgJGdyaWQtY29sdW1uczogJHRvdGFsLWNvbHVtbnMgIWdsb2JhbDtcblxuICAgIEBpZiBpcy1ub3QoaXMtZXZlbihsZW5ndGgoJHF1ZXJ5KSkpIHtcbiAgICAgICRncmlkLWNvbHVtbnM6IG50aCgkcXVlcnksICRsb29wLXRvKSAhZ2xvYmFsO1xuICAgICAgJGxvb3AtdG86ICRsb29wLXRvIC0gMTtcbiAgICB9XG5cbiAgICAkaTogMTtcbiAgICBAd2hpbGUgJGkgPD0gJGxvb3AtdG8ge1xuICAgICAgJG1lZGlhLXF1ZXJ5OiAkbWVkaWEtcXVlcnkgKyBcIihcIiArIG50aCgkcXVlcnksICRpKSArIFwiOiBcIiArIG50aCgkcXVlcnksICRpICsgMSkgKyBcIikgXCI7XG5cbiAgICAgIEBpZiAoJGkgKyAxKSAhPSAkbG9vcC10byB7XG4gICAgICAgICRtZWRpYS1xdWVyeTogJG1lZGlhLXF1ZXJ5ICsgXCJhbmQgXCI7XG4gICAgICB9XG5cbiAgICAgICRpOiAkaSArIDI7XG4gICAgfVxuXG4gICAgQG1lZGlhICN7JG1lZGlhLXF1ZXJ5fSB7XG4gICAgICBAY29udGVudDtcbiAgICAgICRncmlkLWNvbHVtbnM6ICRkZWZhdWx0LWdyaWQtY29sdW1ucyAhZ2xvYmFsO1xuICAgIH1cbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG5AbWl4aW4gYnJlYWtwb2ludCgkcXVlcnk6JGZlYXR1cmUgJHZhbHVlICRjb2x1bW5zLCAkdG90YWwtY29sdW1uczogJGdyaWQtY29sdW1ucykge1xuICBAaW5jbHVkZSAtbmVhdC13YXJuKFwiVGhlIGJyZWFrcG9pbnQoKSBtaXhpbiB3YXMgcmVuYW1lZCB0byBtZWRpYSgpIGluIE5lYXQgMS4wLiBQbGVhc2UgdXBkYXRlIHlvdXIgcHJvamVjdCB3aXRoIHRoZSBuZXcgc3ludGF4IGJlZm9yZSB0aGUgbmV4dCB2ZXJzaW9uIGJ1bXAuXCIpO1xuXG4gIEBpZiBsZW5ndGgoJHF1ZXJ5KSA9PSAxIHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAoJGRlZmF1bHQtZmVhdHVyZTogbnRoKCRxdWVyeSwgMSkpIHtcbiAgICAgICRkZWZhdWx0LWdyaWQtY29sdW1uczogJGdyaWQtY29sdW1ucztcbiAgICAgICRncmlkLWNvbHVtbnM6ICR0b3RhbC1jb2x1bW5zO1xuICAgICAgQGNvbnRlbnQ7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiAkZGVmYXVsdC1ncmlkLWNvbHVtbnM7XG4gICAgfVxuICB9IEBlbHNlIGlmIGxlbmd0aCgkcXVlcnkpID09IDIge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChudGgoJHF1ZXJ5LCAxKTogbnRoKCRxdWVyeSwgMikpIHtcbiAgICAgICRkZWZhdWx0LWdyaWQtY29sdW1uczogJGdyaWQtY29sdW1ucztcbiAgICAgICRncmlkLWNvbHVtbnM6ICR0b3RhbC1jb2x1bW5zO1xuICAgICAgQGNvbnRlbnQ7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiAkZGVmYXVsdC1ncmlkLWNvbHVtbnM7XG4gICAgfVxuICB9IEBlbHNlIGlmIGxlbmd0aCgkcXVlcnkpID09IDMge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChudGgoJHF1ZXJ5LCAxKTogbnRoKCRxdWVyeSwgMikpIHtcbiAgICAgICRkZWZhdWx0LWdyaWQtY29sdW1uczogJGdyaWQtY29sdW1ucztcbiAgICAgICRncmlkLWNvbHVtbnM6IG50aCgkcXVlcnksIDMpO1xuICAgICAgQGNvbnRlbnQ7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiAkZGVmYXVsdC1ncmlkLWNvbHVtbnM7XG4gICAgfVxuICB9IEBlbHNlIGlmIGxlbmd0aCgkcXVlcnkpID09IDQge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChudGgoJHF1ZXJ5LCAxKTogbnRoKCRxdWVyeSwgMikpIGFuZCAobnRoKCRxdWVyeSwgMyk6IG50aCgkcXVlcnksIDQpKSB7XG4gICAgICAkZGVmYXVsdC1ncmlkLWNvbHVtbnM6ICRncmlkLWNvbHVtbnM7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiAkdG90YWwtY29sdW1ucztcbiAgICAgIEBjb250ZW50O1xuICAgICAgJGdyaWQtY29sdW1uczogJGRlZmF1bHQtZ3JpZC1jb2x1bW5zO1xuICAgIH1cbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHF1ZXJ5KSA9PSA1IHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobnRoKCRxdWVyeSwgMSk6IG50aCgkcXVlcnksIDIpKSBhbmQgKG50aCgkcXVlcnksIDMpOiBudGgoJHF1ZXJ5LCA0KSkge1xuICAgICAgJGRlZmF1bHQtZ3JpZC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zO1xuICAgICAgJGdyaWQtY29sdW1uczogbnRoKCRxdWVyeSwgNSk7XG4gICAgICBAY29udGVudDtcbiAgICAgICRncmlkLWNvbHVtbnM6ICRkZWZhdWx0LWdyaWQtY29sdW1ucztcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBpbmNsdWRlIC1uZWF0LXdhcm4oXCJXcm9uZyBudW1iZXIgb2YgYXJndW1lbnRzIGZvciBicmVha3BvaW50KCkuIFJlYWQgdGhlIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgZGV0YWlscy5cIik7XG4gIH1cbn1cblxuQG1peGluIG50aC1vbWVnYSgkbnRoLCAkZGlzcGxheTogYmxvY2ssICRkaXJlY3Rpb246IGRlZmF1bHQpIHtcbiAgQGluY2x1ZGUgLW5lYXQtd2FybihcIlRoZSBudGgtb21lZ2EoKSBtaXhpbiBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlIG9tZWdhKCkgaW5zdGVhZC5cIik7XG4gIEBpbmNsdWRlIG9tZWdhKCRudGggJGRpc3BsYXksICRkaXJlY3Rpb24pO1xufVxuXG4vLy8gUmVzZXRzIHRoZSBhY3RpdmUgZGlzcGxheSBwcm9wZXJ0eSB0byBgYmxvY2tgLiBQYXJ0aWN1bGFybHkgdXNlZnVsIHdoZW4gY2hhbmdpbmcgdGhlIGRpc3BsYXkgcHJvcGVydHkgaW4gYSBzaW5nbGUgcm93LlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHJvdyh0YWJsZSk7XG4vLy8gICAgIC8vIENvbnRleHQgY2hhbmdlZCB0byB0YWJsZSBkaXNwbGF5XG4vLy8gICB9XG4vLy9cbi8vLyAgIEBpbmNsdWRlIHJlc2V0LWRpc3BsYXk7XG4vLy8gICAvLyBDb250ZXh0IGlzIHJlc2V0IHRvIGJsb2NrIGRpc3BsYXlcblxuQG1peGluIHJlc2V0LWRpc3BsYXkge1xuICAkY29udGFpbmVyLWRpc3BsYXktdGFibGU6IGZhbHNlICFnbG9iYWw7XG4gIEBpbmNsdWRlIC1uZWF0LXdhcm4oXCJSZXNldHRpbmcgJGRpc3BsYXkgd2lsbCBiZSBkZXByZWNhdGVkIGluIGZ1dHVyZSB2ZXJzaW9ucyBpbiBmYXZvciBvZiB0aGUgZGlzcGxheSgpey4uLn0gbWl4aW4uXCIpO1xufVxuXG4vLy8gUmVzZXRzIHRoZSBhY3RpdmUgbGF5b3V0IGRpcmVjdGlvbiB0byB0aGUgZGVmYXVsdCB2YWx1ZSBzZXQgaW4gYCRkZWZhdWx0LWxheW91dC1kaXJlY3Rpb25gLiBQYXJ0aWN1bGFybHkgdXNlZnVsIHdoZW4gY2hhbmdpbmcgdGhlIGxheW91dCBkaXJlY3Rpb24gaW4gYSBzaW5nbGUgcm93LlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHJvdygkZGlyZWN0aW9uOiBSVEwpO1xuLy8vICAgICAvLyBDb250ZXh0IGNoYW5nZWQgdG8gcmlnaHQtdG8tbGVmdFxuLy8vICAgfVxuLy8vXG4vLy8gICBAaW5jbHVkZSByZXNldC1sYXlvdXQtZGlyZWN0aW9uO1xuLy8vICAgLy8gQ29udGV4dCBpcyByZXNldCB0byBsZWZ0LXRvLXJpZ2h0XG5cbkBtaXhpbiByZXNldC1sYXlvdXQtZGlyZWN0aW9uIHtcbiAgJGxheW91dC1kaXJlY3Rpb246ICRkZWZhdWx0LWxheW91dC1kaXJlY3Rpb24gIWdsb2JhbDtcbiAgQGluY2x1ZGUgLW5lYXQtd2FybihcIlJlc2V0dGluZyAkZGlyZWN0aW9uIHdpbGwgYmUgZGVwcmVjYXRlZCBpbiBmdXR1cmUgdmVyc2lvbnMgaW4gZmF2b3Igb2YgdGhlIGRpcmVjdGlvbigpey4uLn0gbWl4aW4uXCIpO1xufVxuXG4vLy8gUmVzZXRzIGJvdGggdGhlIGFjdGl2ZSBsYXlvdXQgZGlyZWN0aW9uIGFuZCB0aGUgYWN0aXZlIGRpc3BsYXkgcHJvcGVydHkuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgcm93KHRhYmxlLCBSVEwpO1xuLy8vICAgICAvLyBDb250ZXh0IGNoYW5nZWQgdG8gdGFibGUgdGFibGUgYW5kIHJpZ2h0LXRvLWxlZnRcbi8vLyAgIH1cbi8vL1xuLy8vICAgQGluY2x1ZGUgcmVzZXQtYWxsO1xuLy8vICAgLy8gQ29udGV4dCBpcyByZXNldCB0byBibG9jayBkaXNwbGF5IGFuZCBsZWZ0LXRvLXJpZ2h0XG5cbkBtaXhpbiByZXNldC1hbGwge1xuICBAaW5jbHVkZSByZXNldC1kaXNwbGF5O1xuICBAaW5jbHVkZSByZXNldC1sYXlvdXQtZGlyZWN0aW9uO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tZ3JhZGllbnQoJHZhbHVlcy4uLikge1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWZ0LCAkdmFsdWVzKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW1vei1saW5lYXItZ3JhZGllbnQobGVmdCwgJHZhbHVlcyk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC1tcy1saW5lYXItZ3JhZGllbnQobGVmdCwgJHZhbHVlcyk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudChsZWZ0LCAkdmFsdWVzKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdW5xdW90ZShcImxpbmVhci1ncmFkaWVudCh0byBsZWZ0LCAjeyR2YWx1ZXN9KVwiKTtcbn1cblxuQGlmICR2aXN1YWwtZ3JpZCA9PSB0cnVlIG9yICR2aXN1YWwtZ3JpZCA9PSB5ZXMge1xuICBib2R5OmJlZm9yZSB7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tZ3JhZGllbnQoZ3JhZGllbnQtc3RvcHMoJGdyaWQtY29sdW1ucykpO1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBsZWZ0OiAwO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIG1heC13aWR0aDogJG1heC13aWR0aDtcbiAgICBvcGFjaXR5OiAkdmlzdWFsLWdyaWQtb3BhY2l0eTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgcmlnaHQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICBAaWYgJHZpc3VhbC1ncmlkLWluZGV4ID09IGJhY2sge1xuICAgICAgei1pbmRleDogLTE7XG4gICAgfVxuXG4gICAgQGVsc2UgaWYgJHZpc3VhbC1ncmlkLWluZGV4ID09IGZyb250IHtcbiAgICAgIHotaW5kZXg6IDk5OTk7XG4gICAgfVxuXG4gICAgQGVhY2ggJGJyZWFrcG9pbnQgaW4gJHZpc3VhbC1ncmlkLWJyZWFrcG9pbnRzIHtcbiAgICAgIEBpZiAkYnJlYWtwb2ludCB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50KSB7XG4gICAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tZ3JhZGllbnQoZ3JhZGllbnQtc3RvcHMoJGdyaWQtY29sdW1ucykpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDaGFuZ2VzIHRoZSBkaXNwbGF5IHByb3BlcnR5IHVzZWQgYnkgb3RoZXIgbWl4aW5zIGNhbGxlZCBpbiB0aGUgY29kZSBibG9jayBhcmd1bWVudC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZGlzcGxheSBbYmxvY2tdXG4vLy8gICBEaXNwbGF5IHZhbHVlIHRvIGJlIHVzZWQgd2l0aGluIHRoZSBibG9jay4gQ2FuIGJlIGB0YWJsZWAgb3IgYGJsb2NrYC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgIEBpbmNsdWRlIGRpc3BsYXktY29udGV4dCh0YWJsZSkge1xuLy8vICAgIC5kaXNwbGF5LXRhYmxlIHtcbi8vLyAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg2KTtcbi8vLyAgICAgfVxuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzXG4vLy8gICAuZGlzcGxheS10YWJsZSB7XG4vLy8gICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuLy8vICAgICAgLi4uXG4vLy8gICB9XG5cbkBtaXhpbiBkaXNwbGF5LWNvbnRleHQoJGRpc3BsYXk6IGJsb2NrKSB7XG4gICRzY29wZS1kaXNwbGF5OiAkY29udGFpbmVyLWRpc3BsYXktdGFibGU7XG4gICRjb250YWluZXItZGlzcGxheS10YWJsZTogJGRpc3BsYXkgPT0gdGFibGUgIWdsb2JhbDtcblxuICBAY29udGVudDtcblxuICAkY29udGFpbmVyLWRpc3BsYXktdGFibGU6ICRzY29wZS1kaXNwbGF5ICFnbG9iYWw7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDaGFuZ2VzIHRoZSBkaXJlY3Rpb24gcHJvcGVydHkgdXNlZCBieSBvdGhlciBtaXhpbnMgY2FsbGVkIGluIHRoZSBjb2RlIGJsb2NrIGFyZ3VtZW50LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRkaXJlY3Rpb24gW2xlZnQtdG8tcmlnaHRdXG4vLy8gICBMYXlvdXQgZGlyZWN0aW9uIHRvIGJlIHVzZWQgd2l0aGluIHRoZSBibG9jay4gQ2FuIGJlIGBsZWZ0LXRvLXJpZ2h0YCBvciBgcmlnaHQtdG8tbGVmdGAuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIEBpbmNsdWRlIGRpcmVjdGlvbi1jb250ZXh0KHJpZ2h0LXRvLWxlZnQpIHtcbi8vLyAgICAucmlnaHQtdG8tbGVmdC1ibG9jayB7XG4vLy8gICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNik7XG4vLy8gICAgIH1cbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5yaWdodC10by1sZWZ0LWJsb2NrIHtcbi8vLyAgICAgZmxvYXQ6IHJpZ2h0O1xuLy8vICAgICAgLi4uXG4vLy8gICB9XG5cbkBtaXhpbiBkaXJlY3Rpb24tY29udGV4dCgkZGlyZWN0aW9uOiBsZWZ0LXRvLXJpZ2h0KSB7XG4gICRzY29wZS1kaXJlY3Rpb246ICRsYXlvdXQtZGlyZWN0aW9uO1xuXG4gIEBpZiB0by1sb3dlci1jYXNlKCRkaXJlY3Rpb24pID09IFwibGVmdC10by1yaWdodFwiIHtcbiAgICAkbGF5b3V0LWRpcmVjdGlvbjogTFRSICFnbG9iYWw7XG4gIH0gQGVsc2UgaWYgdG8tbG93ZXItY2FzZSgkZGlyZWN0aW9uKSA9PSBcInJpZ2h0LXRvLWxlZnRcIiB7XG4gICAgJGxheW91dC1kaXJlY3Rpb246IFJUTCAhZ2xvYmFsO1xuICB9XG5cbiAgQGNvbnRlbnQ7XG5cbiAgJGxheW91dC1kaXJlY3Rpb246ICRzY29wZS1kaXJlY3Rpb24gIWdsb2JhbDtcbn1cbiIsIi8vIEhlbHBlcnNcbkBpbXBvcnQgXCJoZWxwZXJzL21peGluc1wiO1xuQGltcG9ydCBcImhlbHBlcnMvcmVzZXRzXCI7XG5cbi8vIFJlc2V0XG5AaW1wb3J0IFwicmVzZXQvYmxvY2tcIjtcbkBpbXBvcnQgXCJyZXNldC9mb3Jtc1wiO1xuQGltcG9ydCBcInJlc2V0L2hlYWRpbmdzXCI7XG5AaW1wb3J0IFwicmVzZXQvaW5saW5lXCI7XG5AaW1wb3J0IFwicmVzZXQvaW5wdXRzXCI7XG5AaW1wb3J0IFwicmVzZXQvbGlzdHNcIjtcbkBpbXBvcnQgXCJyZXNldC9tZWRpYVwiO1xuQGltcG9ydCBcInJlc2V0L3NpdGVcIjtcbkBpbXBvcnQgXCJyZXNldC90YWJsZXNcIjtcbiIsIi8vIE1peGluc1xuQGltcG9ydCBcIm1peGlucy9iYWNrZ3JvdW5kXCI7XG5AaW1wb3J0IFwibWl4aW5zL2NsZWFyXCI7XG5AaW1wb3J0IFwibWl4aW5zL2NvbnRhaW5lclwiO1xuQGltcG9ydCBcIm1peGlucy9mb250LWZhY2VcIjtcbkBpbXBvcnQgXCJtaXhpbnMvaGlkZS10ZXh0XCI7XG5AaW1wb3J0IFwibWl4aW5zL2ljb25cIjtcbkBpbXBvcnQgXCJtaXhpbnMvbGF5ZXJcIjtcbkBpbXBvcnQgXCJtaXhpbnMvbWF4LXNpemVcIjtcbiIsIi8qKlxuICogeC1iYWNrZ3JvdW5kXG4gKlxuICogU2V0cyBhIHNvbGlkIG9yIHNlbWktdHJhbnNwYXJlbnQgYmFja2dyb3VuZCBjb2xvci4gIEFjY2VwdHMgYW4gb3B0aW9uYWwgXG4gKiBvcGFjaXR5IChhbHBoYSkgdmFsdWUuICBQcm92aWRlcyBhIHNvbGlkIGNvbG9yIGZhbGxiYWNrLlxuICovXG5AbWl4aW4geC1iYWNrZ3JvdW5kKCRjb2xvciwgJGFscGhhOiAxKSB7XG4gIGJhY2tncm91bmQ6ICRjb2xvcjtcbiAgYmFja2dyb3VuZDogcmdiYSgkY29sb3IsICRhbHBoYSk7XG59XG4iLCIvKipcbiAqIHgtY2xlYXJcbiAqXG4gKiBNdWx0aS11c2UgY2xlYXIgbWl4aW4gZm9yIHZhcmlvdXMgY29udGV4dHMuICBBY2NlcHRzIGFuIG9wdGlvbmFsIGNvbnRleHQuXG4gKiBEZWZhdWx0IHVzYWdlIGltcGxlbWVudHMgYSBCb3VyYm9uIG1pY3JvLWNsZWFyZml4LlxuICovXG5AbWl4aW4geC1jbGVhcigkZWxlbWVudDogc2VsZikge1xuXG4gIEBpZiAkZWxlbWVudCA9PSBzZWxmIHtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgfVxufVxuIiwiLyoqXG4gKiB4LWNvbnRhaW5lclxuICovXG5AbWl4aW4geC1jb250YWluZXIoJHdpZHRoKSB7XG4gIEBpbmNsdWRlIGNsZWFyZml4OyBcbiAgQGluY2x1ZGUgbWFyZ2luKG51bGwgYXV0byBudWxsIGF1dG8pO1xuICBtYXgtd2lkdGg6IDkwJTtcblxuICBAaW5jbHVkZSBtZWRpYSgkbXEtbGFwKSB7XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgkbXEtZGVzaykge1xuICAgIG1heC13aWR0aDogJHdpZHRoO1xuICB9XG59XG4iLCIvKipcbiAqXG4gKiB4LWZvbnQtZmFjZVxuICpcbiAqIEltcGxlbWVudHMgc3RhbmRhcmRpemVkIHNpdGUgY29weS4gQWNjZXB0cyBhcmd1bWVudHMgZm9yXG4gKiB2YXJpYW50cyAoaW52ZXJzaW9ucywgZXRjLikuXG4gKlxuICovXG5AbWl4aW4geC1mb250LWZhY2UoJGZvbnQtZmFtaWx5LCAkZmlsZS1wYXRoLCAkcXVlcnktc3RyaW5nLCAkd2VpZ2h0OiBub3JtYWwsICRzdHlsZTogbm9ybWFsKSB7XG4gIEBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHk7XG4gICAgZm9udC13ZWlnaHQ6ICR3ZWlnaHQ7XG4gICAgZm9udC1zdHlsZTogJHN0eWxlO1xuXG4gICAgQGlmICRxdWVyeS1zdHJpbmcgPT0gJycge1xuICAgICAgc3JjOiB1cmwoJyN7JGZpbGUtcGF0aH0uZW90Jyk7XG4gICAgICBzcmM6IHVybCgnI3skZmlsZS1wYXRofS5lb3Q/I2llZml4JykgICAgICAgICAgICAgICBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gICAgICB1cmwoJyN7JGZpbGUtcGF0aH0ud29mZicpICAgICAgICAgICAgICAgICAgICAgZm9ybWF0KCd3b2ZmJyksXG4gICAgICB1cmwoJyN7JGZpbGUtcGF0aH0udHRmJykgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0KCd0cnVldHlwZScpLFxuICAgICAgdXJsKCcjeyRmaWxlLXBhdGh9LnN2ZyMjeyRmb250LWZhbWlseX0nKSAgICAgIGZvcm1hdCgnc3ZnJyk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHNyYzogdXJsKCcjeyRmaWxlLXBhdGh9LmVvdD8jeyRxdWVyeS1zdHJpbmd9Jyk7XG4gICAgICBzcmM6IHVybCgnI3skZmlsZS1wYXRofS5lb3Q/I3skcXVlcnktc3RyaW5nfSNpZWZpeCcpICAgICAgICAgICAgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICAgICAgdXJsKCcjeyRmaWxlLXBhdGh9LndvZmY/I3skcXVlcnktc3RyaW5nfScpICAgICAgICAgICAgICAgICBmb3JtYXQoJ3dvZmYnKSxcbiAgICAgIHVybCgnI3skZmlsZS1wYXRofS50dGY/I3skcXVlcnktc3RyaW5nfScpICAgICAgICAgICAgICAgICAgZm9ybWF0KCd0cnVldHlwZScpLFxuICAgICAgdXJsKCcjeyRmaWxlLXBhdGh9LnN2Zz8jeyRxdWVyeS1zdHJpbmd9IyN7JGZvbnQtZmFtaWx5fScpICBmb3JtYXQoJ3N2ZycpO1xuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4gKiB4LWhpZGUtdGV4dFxuICpcbiAqIEhpZGVzIHRleHQgb2YgYXBwbGllZCBlbGVtZW50LiAgQWNjZXB0cyBubyBhcmd1bWVudHMuIEJhc2VkXG4gKiBvZmYgb2YgYSBwcmV2aW91cyB2ZXJzaW9uIG9mIHRoZSBINUJQIGltYWdlIHJlcGxhY2VtZW50IFxuICogbWV0aG9kLiAgSSd2ZSBmb3VuZCBpdCB0byBiZSBmYXIgbW9yZSByZWxpYWJsZSB0aGFuIHRoZSBjbGlwXG4gKiBtZXRob2QuXG4gKlxuICovXG5AbWl4aW4geC1oaWRlLXRleHQge1xuICBmb250OiAwLzAgYTtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbiIsIi8qKlxuICogeC1pY29uXG4gKlxuICogSW1wbGVtZW50cyBhIHdlYmZvbnQgZ2x5cGggIE5lZWRzIHRvIGJlIHVzZWQgd2l0aGluXG4gKiBhIHBzZXVkbyBlbGVtZW50IChlLmcuICY6YmVmb3JlLCAmOmFmdGVyKS4gIEFjY2VwdHMgYSByZXF1aXJlZCwgbmFtZWRcbiAqIGljb24sIGFuIG9wdGlvbmFsIHNpemUsIGFuZCBhbiBvcHRpb25hbCBjb2xvci4gIFxuICovXG5AbWl4aW4geC1pY29uKCRpY29uLCAkc2l6ZTogMTYsICRjb2xvcjogJGNvbG9yLXRleHQpIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBjb250ZW50OiAkaWNvbjtcbiAgZm9udC1mYW1pbHk6ICdnbHlwaHMnO1xuICBmb250LXNpemU6ICRzaXplO1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBjb2xvcjogJGNvbG9yO1xuICBzcGVhazogbm9uZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG4iLCIvKipcbiAqIHgtbGF5ZXJcbiAqXG4gKiBTZXRzIGEgei1pbmRleCB2YWx1ZSBiYXNlZCBvbiBzZW1hbnRpYyBuYW1pbmcgYXMgb3Bwb3NlZCB0byBleHBsaWNpdCBpbnRlZ2VyXG4gKiB2YWx1ZXMuICBBY2NlcHRzIGEgcmVxdWlyZWQsIG5hbWVkIGxheWVyLiAgSGllcmFyY2h5IGNhbiBiZSBtb2RpZmllZCBieVxuICogYWRkaW5nIGRpcmVjdGx5IHRvIHRoZSAkbGF5ZXJzIG1hcCBzdGFjay5cbiAqL1xuQG1peGluIHgtbGF5ZXIoJGxheWVyKSB7XG4gICRsYXllcnM6IChcbiAgICB0b3A6IDEwMCxcbiAgICBtaWRkbGU6IDUwLFxuICAgIGJvdHRvbTogMTAsXG4gICAgdW5kZXJuZWF0aDogLTFcbiAgKTtcblxuICB6LWluZGV4OiBtYXAtZ2V0KCRsYXllcnMsICRsYXllcik7XG59XG4iLCIvKipcbiAqIHgtbWF4LXNpemVcbiAqXG4gKi9cbkBtaXhpbiB4LW1heC1zaXplKCRzaXplKSB7XG4gICRoZWlnaHQ6IG50aCgkc2l6ZSwgMSk7XG4gICR3aWR0aDogJGhlaWdodDtcblxuICBAaWYgbGVuZ3RoKCRzaXplKSA+IDEge1xuICAgICRoZWlnaHQ6IG50aCgkc2l6ZSwgMik7XG4gIH1cblxuICBAaWYgJGhlaWdodCA9PSBhdXRvIG9yICh0eXBlLW9mKCRoZWlnaHQpID09IG51bWJlciBhbmQgbm90IHVuaXRsZXNzKCRoZWlnaHQpKSB7XG4gICAgbWF4LWhlaWdodDogJGhlaWdodDtcbiAgfVxuXG4gIEBpZiAkd2lkdGggPT0gYXV0byBvciAodHlwZS1vZigkd2lkdGgpID09IG51bWJlciBhbmQgbm90IHVuaXRsZXNzKCR3aWR0aCkpIHtcbiAgICBtYXgtd2lkdGg6ICR3aWR0aDtcbiAgfVxufVxuIiwiJXJlc2V0LWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kOiBub25lO1xufVxuXG4lcmVzZXQtYmxvY2sge1xuICBkaXNwbGF5OmJsb2NrO1xufVxuXG4lcmVzZXQtZm9udC1zdHlsZSB7XG4gIGZvbnQtc3R5bGU6bm9ybWFsO1xufVxuXG4lcmVzZXQtbWFyZ2luIHtcbiAgbWFyZ2luOiAwO1xufVxuXG4lcmVzZXQtcGFkZGluZyB7XG4gIHBhZGRpbmc6IDA7XG59XG5cbiVyZXNldC1ib3JkZXIge1xuICBib3JkZXI6IDA7XG59XG5cbiVyZXNldC1saXN0IHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxuJXJlc2V0LXF1b3RlcyB7XG4gIHF1b3Rlczogbm9uZTtcbn1cblxuJXJlc2V0LWNvbnRlbnQge1xuICBjb250ZW50OiAnJztcbiAgY29udGVudDogbm9uZTtcbn1cblxuJXJlc2V0LXRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7XG59XG5cbiVyZXNldC1mb250LWZhbWlseSB7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xufVxuXG4lcmVzZXQtZm9udC1zaXplIHtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xufVxuXG4lcmVzZXQtYnV0dG9uIHtcbiAgQGV4dGVuZCAlcmVzZXQtYmFja2dyb3VuZDtcbiAgQGV4dGVuZCAlcmVzZXQtbWFyZ2luO1xuICBAZXh0ZW5kICVyZXNldC1wYWRkaW5nO1xuICBAZXh0ZW5kICVyZXNldC1ib3JkZXI7XG4gIEBleHRlbmQgJXJlc2V0LWZvbnQtc2l6ZTtcbiAgQGV4dGVuZCAlcmVzZXQtZm9udC1mYW1pbHk7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsMCwwLDApO1xufVxuXG4lcmVzZXQtaW5wdXQge1xuICBAZXh0ZW5kICVyZXNldC1tYXJnaW47XG4gIEBleHRlbmQgJXJlc2V0LXBhZGRpbmc7XG4gIEBleHRlbmQgJXJlc2V0LWJvcmRlcjtcbiAgQGV4dGVuZCAlcmVzZXQtZm9udC1zaXplO1xuICBAZXh0ZW5kICVyZXNldC1mb250LWZhbWlseTtcblxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICB9XG59XG4iLCJhZGRyZXNzIHtcbiAgQGV4dGVuZCAlcmVzZXQtZm9udC1zdHlsZTtcbn1cblxuYXJ0aWNsZSB7XG4gIEBleHRlbmQgJXJlc2V0LWJsb2NrO1xufVxuXG5hc2lkZSB7XG4gIEBleHRlbmQgJXJlc2V0LWJsb2NrO1xufVxuXG5ibG9ja3F1b3RlIHtcbiAgQGV4dGVuZCAlcmVzZXQtbWFyZ2luO1xufVxuXG5kZXRhaWxzIHtcbiAgQGV4dGVuZCAlcmVzZXQtYmxvY2s7XG59XG5cbmRpYWxvZyB7XG4gIEBleHRlbmQgJXJlc2V0LW1hcmdpbjtcbiAgQGV4dGVuZCAlcmVzZXQtcGFkZGluZztcbiAgQGV4dGVuZCAlcmVzZXQtYm9yZGVyO1xuXG4gIHN1bW1hcnkge1xuICB9XG59XG5cbmRpdiB7XG59XG5cbmRsIHtcbiAgQGV4dGVuZCAlcmVzZXQtbWFyZ2luO1xuXG4gIGR0IHtcbiAgfVxuXG4gIGRkIHtcbiAgICBAZXh0ZW5kICVyZXNldC1tYXJnaW47XG4gIH1cbn1cblxuZm9vdGVyIHtcbiAgQGV4dGVuZCAlcmVzZXQtYmxvY2s7XG59XG5cbmhlYWRlciB7XG4gIEBleHRlbmQgJXJlc2V0LWJsb2NrO1xufVxuXG5tZW51IHtcbiAgQGV4dGVuZCAlcmVzZXQtYmxvY2s7XG4gIEBleHRlbmQgJXJlc2V0LW1hcmdpbjtcbiAgQGV4dGVuZCAlcmVzZXQtcGFkZGluZztcbn1cblxubmF2IHtcbiAgQGV4dGVuZCAlcmVzZXQtYmxvY2s7XG59XG5cbnAge1xuICBAZXh0ZW5kICVyZXNldC1tYXJnaW47XG59XG5cbnByZSB7XG4gIEBleHRlbmQgJXJlc2V0LW1hcmdpbjtcbn1cblxuc2VjdGlvbiB7XG4gIEBleHRlbmQgJXJlc2V0LWJsb2NrO1xufVxuXG4iLCJmb3JtIHtcblxuICBmaWVsZHNldCB7XG4gICAgQGV4dGVuZCAlcmVzZXQtbWFyZ2luO1xuICAgIEBleHRlbmQgJXJlc2V0LXBhZGRpbmc7XG4gICAgQGV4dGVuZCAlcmVzZXQtYm9yZGVyO1xuXG4gICAgbGVnZW5kIHtcbiAgICAgIEBleHRlbmQgJXJlc2V0LXBhZGRpbmc7XG4gICAgfVxuICB9XG5cbiAga2V5Z2VuIHtcbiAgfVxufVxuIiwiaDEge1xuICBAZXh0ZW5kICVyZXNldC1tYXJnaW47XG59XG5cbmgyIHtcbiAgQGV4dGVuZCAlcmVzZXQtbWFyZ2luO1xufVxuXG5oMyB7XG4gIEBleHRlbmQgJXJlc2V0LW1hcmdpbjtcbn1cblxuaDQge1xuICBAZXh0ZW5kICVyZXNldC1tYXJnaW47XG59XG5cbmg1IHtcbiAgQGV4dGVuZCAlcmVzZXQtbWFyZ2luO1xufVxuXG5oNiB7XG4gIEBleHRlbmQgJXJlc2V0LW1hcmdpbjtcbn1cbiIsImEge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgJjphY3RpdmUge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cbn1cblxuYWJiciB7XG59XG5cbmIge1xufVxuXG5iZGkge1xufVxuXG5iZG8ge1xufVxuXG5jaXRlIHtcbiAgQGV4dGVuZCAlcmVzZXQtZm9udC1zdHlsZTtcbn1cblxuY29kZSB7XG59XG5cbmRlbCB7XG59XG5cbmRmbiB7XG4gIEBleHRlbmQgJXJlc2V0LWZvbnQtc3R5bGU7XG59XG5cbmVtIHtcbiAgQGV4dGVuZCAlcmVzZXQtZm9udC1zdHlsZTtcbn1cblxuaSB7XG4gIEBleHRlbmQgJXJlc2V0LWZvbnQtc3R5bGU7XG59XG5cbmlucyB7XG59XG5cbmtiZCB7XG59XG5cbm1hcmsge1xufVxuXG5tZXRlciB7XG59XG5cbm91dHB1dCB7XG59XG5cbnByb2dyZXNzIHtcbn1cblxucSB7XG4gIEBleHRlbmQgJXJlc2V0LXF1b3Rlcztcbn1cblxucnVieSB7XG5cbiAgcnAge1xuICB9XG5cbiAgcnQge1xuICB9XG59XG5cbnMge1xufVxuXG5zYW1wIHtcbn1cblxuc21hbGwge1xufVxuXG5zcGFuIHtcbn1cblxuc3Ryb25nIHtcbn1cblxuc3ViIHtcbn1cblxuc3VwIHtcbn1cblxudGltZSB7XG59XG5cbnUge1xufVxuXG52YXIge1xuICBAZXh0ZW5kICVyZXNldC1mb250LXN0eWxlO1xufVxuIiwiYnV0dG9uIHtcbiAgQGV4dGVuZCAlcmVzZXQtYnV0dG9uO1xufVxuXG5jb21tYW5kIHtcbn1cblxuaW5wdXQge1xuXG4gICZbdHlwZT10ZXh0XSxcbiAgJlt0eXBlPWVtYWlsXSxcbiAgJlt0eXBlPXBhc3N3b3JkXXtcbiAgICBAZXh0ZW5kICVyZXNldC1pbnB1dDtcbiAgfVxuXG4gICZbdHlwZT1zdWJtaXRdIHtcbiAgICBAZXh0ZW5kICVyZXNldC1idXR0b247XG4gIH1cbn1cblxubGFiZWwge1xufVxuXG5zZWxlY3Qge1xuICBAZXh0ZW5kICVyZXNldC1tYXJnaW47XG5cbiAgb3B0Z3JvdXAge1xuXG4gICAgb3B0aW9uIHtcbiAgICB9XG4gIH1cbn1cblxudGV4dGFyZWEge1xuICBAZXh0ZW5kICVyZXNldC1pbnB1dDtcbn1cbiIsInVsIHtcbiAgQGV4dGVuZCAlcmVzZXQtbGlzdDtcbiAgQGV4dGVuZCAlcmVzZXQtbWFyZ2luO1xuICBAZXh0ZW5kICVyZXNldC1wYWRkaW5nO1xuXG4gIGxpIHtcbiAgICBAZXh0ZW5kICVyZXNldC1saXN0O1xuICB9XG59XG5cbm9sIHtcbiAgQGV4dGVuZCAlcmVzZXQtbGlzdDtcbiAgQGV4dGVuZCAlcmVzZXQtbWFyZ2luO1xuICBAZXh0ZW5kICVyZXNldC1wYWRkaW5nO1xuXG4gIGxpIHtcbiAgICBAZXh0ZW5kICVyZXNldC1saXN0O1xuICB9XG59XG5cbiIsImFyZWEge1xufVxuXG5hdWRpbyB7XG4gIEBleHRlbmQgJXJlc2V0LWJsb2NrO1xufVxuXG5jYW52YXMge1xuICBAZXh0ZW5kICVyZXNldC1ibG9jaztcbn1cblxuZW1iZWQge1xuICBAZXh0ZW5kICVyZXNldC1ibG9jaztcbn1cblxuZmlndXJlIHtcbiAgQGV4dGVuZCAlcmVzZXQtYmxvY2s7XG4gIEBleHRlbmQgJXJlc2V0LW1hcmdpbjtcblxuICBmaWdjYXB0aW9uIHtcbiAgICBAZXh0ZW5kICVyZXNldC1ibG9jaztcbiAgfVxufVxuXG5ociB7XG4gIEBleHRlbmQgJXJlc2V0LW1hcmdpbjtcbn1cblxuaWZyYW1lIHtcbiAgQGV4dGVuZCAlcmVzZXQtYmxvY2s7XG4gIEBleHRlbmQgJXJlc2V0LWJvcmRlcjtcbn1cblxuaW1nIHtcbn1cblxubWFwIHtcbiAgXG4gIGFyZWEge1xuICB9XG59XG5cbm9iamVjdCB7XG4gIEBleHRlbmQgJXJlc2V0LWJsb2NrO1xufVxuXG52aWRlbyB7XG4gIEBleHRlbmQgJXJlc2V0LWJsb2NrO1xufVxuIiwiLypcbipcbiogIEdsb2JhbCBCb3JkZXItQm94IE92ZXJyaWRlXG4qXG4qICBVbm5lY2Vzc2FyeSBpZiBCb3VyYm9uL05lYXQgYWxyZWFkeSBiZWluZyBsb2FkZWQuXG4qXG4qICAqIHtcbiogICAgQGluY2x1ZGUgYm94LXNpemluZyhib3JkZXItYm94KTtcbiogIH1cbipcbiovXG5odG1sIHtcbn1cblxuYm9keSB7XG4gIEBleHRlbmQgJXJlc2V0LW1hcmdpbjtcbiAgd2lkdGg6MTAwJTtcbn1cbiIsInRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7XG4gIGNhcHRpb24ge1xuICB9XG4gIGNvbGdyb3VwIHtcbiAgICBjb2wge1xuICAgIH1cbiAgfVxuICB0aGVhZCB7XG4gICAgdGgge1xuICAgICAgQGV4dGVuZCAlcmVzZXQtcGFkZGluZztcbiAgICB9XG4gIH1cbiAgdGJvZHkge1xuICAgIHRkIHtcbiAgICAgIEBleHRlbmQgJXJlc2V0LXBhZGRpbmc7XG4gICAgfVxuICB9XG4gIHRmb290IHtcbiAgICB0ZCB7XG4gICAgICBAZXh0ZW5kICVyZXNldC1wYWRkaW5nO1xuICAgIH1cbiAgfVxufVxuIiwiLyogU2xpZGVyICovXG5cbi5zbGljay1zbGlkZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7XG4gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAta2h0bWwtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW1zLXRvdWNoLWFjdGlvbjogcGFuLXk7XG4gICAgdG91Y2gtYWN0aW9uOiBwYW4teTtcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLnNsaWNrLWxpc3Qge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgJjpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuXG4gICAgJi5kcmFnZ2luZyB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgY3Vyc29yOiBoYW5kO1xuICAgIH1cbn1cbi5zbGljay1zbGlkZXIgLnNsaWNrLXRyYWNrLFxuLnNsaWNrLXNsaWRlciAuc2xpY2stbGlzdCB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG59XG5cbi5zbGljay10cmFjayB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgJjpiZWZvcmUsXG4gICAgJjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICB9XG5cbiAgICAuc2xpY2stbG9hZGluZyAmIHtcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIH1cbn1cbi5zbGljay1zbGlkZSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDFweDtcbiAgICBbZGlyPVwicnRsXCJdICYge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxuICAgIGltZyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgICAmLnNsaWNrLWxvYWRpbmcgaW1nIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgJi5kcmFnZ2luZyBpbWcge1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG5cbiAgICAuc2xpY2staW5pdGlhbGl6ZWQgJiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIC5zbGljay1sb2FkaW5nICYge1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgfVxuXG4gICAgLnNsaWNrLXZlcnRpY2FsICYge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICB9XG59XG4uc2xpY2stYXJyb3cuc2xpY2staGlkZGVuIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuIiwiQGluY2x1ZGUgeC1mb250LWZhY2UoJ2dseXBocycsICcvd3AtY29udGVudC90aGVtZXMvc3RvY2tyb3Zlci9mb250cy9nbHlwaHMvZm9udHMvZ2x5cGhzJywgJycpO1xuXG5AaW1wb3J0ICcuLi8uLi9mb250cy9nbHlwaHMvdmFyaWFibGVzJztcbkBpbXBvcnQgJy4uLy4uL2ZvbnRzL2dseXBocy9zdHlsZS5zY3NzJztcbiIsIiRpY29tb29uLWZvbnQtcGF0aDogXCJmb250c1wiICFkZWZhdWx0O1xuXG4kZ2x5cGgtLWZpbG06IFwiXFxmMDA4XCI7XG4kZ2x5cGgtLWZvbGRlcjogXCJcXGYwN2JcIjtcbiRnbHlwaC0tZm9sZGVyLS1vcGVuOiBcIlxcZjA3Y1wiO1xuJGdseXBoLS1waG9uZTogXCJcXGYwOTVcIjtcbiRnbHlwaC0tdHdpdHRlcjogXCJcXGYwOTlcIjtcbiRnbHlwaC0tZmFjZWJvb2s6IFwiXFxmMDlhXCI7XG4kZ2x5cGgtLWdvb2dsZS1wbHVzOiBcIlxcZjBkNVwiO1xuJGdseXBoLS1jYXJldC0tZG93bjogXCJcXGYwZDdcIjtcbiRnbHlwaC0tY2FyZXQtLXVwOiBcIlxcZjBkOFwiO1xuJGdseXBoLS1jYXJldC0tbGVmdDogXCJcXGYwZDlcIjtcbiRnbHlwaC0tY2FyZXQtLXJpZ2h0OiBcIlxcZjBkYVwiO1xuJGdseXBoLS1tYWlsOiBcIlxcZjBlMFwiO1xuJGdseXBoLS1lbWFpbDogXCJcXGYwZTBcIjtcbiRnbHlwaC0tYnVsbGV0OiBcIlxcZjExMVwiO1xuJGdseXBoLS1xdWVzdGlvbjogXCJcXGYxMjhcIjtcbiRnbHlwaC0taW5mbzogXCJcXGYxMjlcIjtcbiRnbHlwaC0tY2FsZW5kYXI6IFwiXFxmMTMzXCI7XG4kZ2x5cGgtLXdhcm5pbmc6IFwiXFxlMDAyXCI7XG4kZ2x5cGgtLW5ldzogXCJcXGUwNWVcIjtcbiRnbHlwaC0tY2xvc2U6IFwiXFxlMTRjXCI7XG4kZ2x5cGgtLWN1cnJlbmN5OiBcIlxcZTIyN1wiO1xuJGdseXBoLS1xdW90ZTogXCJcXGUyNDRcIjtcbiRnbHlwaC0tZWRpdDogXCJcXGUyNTRcIjtcbiRnbHlwaC0tYXJyb3ctLWRvd246IFwiXFxlMzEzXCI7XG4kZ2x5cGgtLWFycm93LS1sZWZ0OiBcIlxcZTMxNFwiO1xuJGdseXBoLS1hcnJvdy0tcmlnaHQ6IFwiXFxlMzE1XCI7XG4kZ2x5cGgtLWFycm93LS11cDogXCJcXGUzMTZcIjtcbiRnbHlwaC0tY2hlY2s6IFwiXFxlNWNhXCI7XG4kZ2x5cGgtLW1lbnU6IFwiXFxlNWQyXCI7XG4kZ2x5cGgtLWNoZWNrYm94LS1maWxsZWQ6IFwiXFxlODM0XCI7XG4kZ2x5cGgtLWNoZWNrYm94OiBcIlxcZTgzNVwiO1xuJGdseXBoLS1yYWRpbzogXCJcXGU4MzZcIjtcbiRnbHlwaC0tcmFkaW8tLWZpbGxlZDogXCJcXGU4MzdcIjtcbiRnbHlwaC0tZG9jdW1lbnQ6IFwiXFxlODczXCI7XG4kZ2x5cGgtLWhvbWU6IFwiXFxlODhhXCI7XG4kZ2x5cGgtLWxvY2s6IFwiXFxlODk3XCI7XG4kZ2x5cGgtLWNyZWRpdC1jYXJkOiBcIlxcZThhMVwiO1xuJGdseXBoLS1sb2NhdGlvbjogXCJcXGU4YjRcIjtcbiRnbHlwaC0tY2xvY2s6IFwiXFxlOGI1XCI7XG4kZ2x5cGgtLXNlYXJjaDogXCJcXGU4YjZcIjtcbiRnbHlwaC0tbGluZS1jaGFydDogXCJcXGU5MjJcIjtcbiRnbHlwaC0tcGxheTogXCJcXGU5MDBcIjtcblxuIiwiQGltcG9ydCBcInZhcmlhYmxlc1wiO1xuXG5AZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogJ2dseXBocyc7XG4gICAgc3JjOiAgICB1cmwoJyN7JGljb21vb24tZm9udC1wYXRofS9nbHlwaHMuZW90PzQ4MzQ4aycpO1xuICAgIHNyYzogICAgdXJsKCcjeyRpY29tb29uLWZvbnQtcGF0aH0vZ2x5cGhzLmVvdD80ODM0OGsjaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gICAgICAgIHVybCgnI3skaWNvbW9vbi1mb250LXBhdGh9L2dseXBocy50dGY/NDgzNDhrJykgZm9ybWF0KCd0cnVldHlwZScpLFxuICAgICAgICB1cmwoJyN7JGljb21vb24tZm9udC1wYXRofS9nbHlwaHMud29mZj80ODM0OGsnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICAgICAgdXJsKCcjeyRpY29tb29uLWZvbnQtcGF0aH0vZ2x5cGhzLnN2Zz80ODM0OGsjZ2x5cGhzJykgZm9ybWF0KCdzdmcnKTtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuLmdseXBoIHtcbiAgICAvKiB1c2UgIWltcG9ydGFudCB0byBwcmV2ZW50IGlzc3VlcyB3aXRoIGJyb3dzZXIgZXh0ZW5zaW9ucyB0aGF0IGNoYW5nZSBmb250cyAqL1xuICAgIGZvbnQtZmFtaWx5OiAnZ2x5cGhzJyAhaW1wb3J0YW50O1xuICAgIHNwZWFrOiBub25lO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgLyogQmV0dGVyIEZvbnQgUmVuZGVyaW5nID09PT09PT09PT09ICovXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbn1cblxuLmdseXBoLS1maWxtIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRnbHlwaC0tZmlsbTtcbiAgICB9XG59XG4uZ2x5cGgtLWZvbGRlciB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkZ2x5cGgtLWZvbGRlcjtcbiAgICB9XG59XG4uZ2x5cGgtLWZvbGRlci0tb3BlbiB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkZ2x5cGgtLWZvbGRlci0tb3BlbjtcbiAgICB9XG59XG4uZ2x5cGgtLXBob25lIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRnbHlwaC0tcGhvbmU7XG4gICAgfVxufVxuLmdseXBoLS10d2l0dGVyIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRnbHlwaC0tdHdpdHRlcjtcbiAgICB9XG59XG4uZ2x5cGgtLWZhY2Vib29rIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRnbHlwaC0tZmFjZWJvb2s7XG4gICAgfVxufVxuLmdseXBoLS1nb29nbGUtcGx1cyB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkZ2x5cGgtLWdvb2dsZS1wbHVzO1xuICAgIH1cbn1cbi5nbHlwaC0tY2FyZXQtLWRvd24ge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGdseXBoLS1jYXJldC0tZG93bjtcbiAgICB9XG59XG4uZ2x5cGgtLWNhcmV0LS11cCB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkZ2x5cGgtLWNhcmV0LS11cDtcbiAgICB9XG59XG4uZ2x5cGgtLWNhcmV0LS1sZWZ0IHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRnbHlwaC0tY2FyZXQtLWxlZnQ7XG4gICAgfVxufVxuLmdseXBoLS1jYXJldC0tcmlnaHQge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGdseXBoLS1jYXJldC0tcmlnaHQ7XG4gICAgfVxufVxuLmdseXBoLS1tYWlsIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRnbHlwaC0tbWFpbDtcbiAgICB9XG59XG4uZ2x5cGgtLWVtYWlsIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRnbHlwaC0tZW1haWw7XG4gICAgfVxufVxuLmdseXBoLS1idWxsZXQge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGdseXBoLS1idWxsZXQ7XG4gICAgfVxufVxuLmdseXBoLS1xdWVzdGlvbiB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkZ2x5cGgtLXF1ZXN0aW9uO1xuICAgIH1cbn1cbi5nbHlwaC0taW5mbyB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkZ2x5cGgtLWluZm87XG4gICAgfVxufVxuLmdseXBoLS1jYWxlbmRhciB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkZ2x5cGgtLWNhbGVuZGFyO1xuICAgIH1cbn1cbi5nbHlwaC0td2FybmluZyB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkZ2x5cGgtLXdhcm5pbmc7XG4gICAgfVxufVxuLmdseXBoLS1uZXcge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGdseXBoLS1uZXc7XG4gICAgfVxufVxuLmdseXBoLS1jbG9zZSB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkZ2x5cGgtLWNsb3NlO1xuICAgIH1cbn1cbi5nbHlwaC0tY3VycmVuY3kge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGdseXBoLS1jdXJyZW5jeTtcbiAgICB9XG59XG4uZ2x5cGgtLXF1b3RlIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRnbHlwaC0tcXVvdGU7XG4gICAgfVxufVxuLmdseXBoLS1lZGl0IHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRnbHlwaC0tZWRpdDtcbiAgICB9XG59XG4uZ2x5cGgtLWFycm93LS1kb3duIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRnbHlwaC0tYXJyb3ctLWRvd247XG4gICAgfVxufVxuLmdseXBoLS1hcnJvdy0tbGVmdCB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkZ2x5cGgtLWFycm93LS1sZWZ0O1xuICAgIH1cbn1cbi5nbHlwaC0tYXJyb3ctLXJpZ2h0IHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRnbHlwaC0tYXJyb3ctLXJpZ2h0O1xuICAgIH1cbn1cbi5nbHlwaC0tYXJyb3ctLXVwIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRnbHlwaC0tYXJyb3ctLXVwO1xuICAgIH1cbn1cbi5nbHlwaC0tY2hlY2sge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGdseXBoLS1jaGVjaztcbiAgICB9XG59XG4uZ2x5cGgtLW1lbnUge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGdseXBoLS1tZW51O1xuICAgIH1cbn1cbi5nbHlwaC0tY2hlY2tib3gtLWZpbGxlZCB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkZ2x5cGgtLWNoZWNrYm94LS1maWxsZWQ7XG4gICAgfVxufVxuLmdseXBoLS1jaGVja2JveCB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkZ2x5cGgtLWNoZWNrYm94O1xuICAgIH1cbn1cbi5nbHlwaC0tcmFkaW8ge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGdseXBoLS1yYWRpbztcbiAgICB9XG59XG4uZ2x5cGgtLXJhZGlvLS1maWxsZWQge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGdseXBoLS1yYWRpby0tZmlsbGVkO1xuICAgIH1cbn1cbi5nbHlwaC0tZG9jdW1lbnQge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGdseXBoLS1kb2N1bWVudDtcbiAgICB9XG59XG4uZ2x5cGgtLWhvbWUge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGdseXBoLS1ob21lO1xuICAgIH1cbn1cbi5nbHlwaC0tbG9jayB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkZ2x5cGgtLWxvY2s7XG4gICAgfVxufVxuLmdseXBoLS1jcmVkaXQtY2FyZCB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkZ2x5cGgtLWNyZWRpdC1jYXJkO1xuICAgIH1cbn1cbi5nbHlwaC0tbG9jYXRpb24ge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGdseXBoLS1sb2NhdGlvbjtcbiAgICB9XG59XG4uZ2x5cGgtLWNsb2NrIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRnbHlwaC0tY2xvY2s7XG4gICAgfVxufVxuLmdseXBoLS1zZWFyY2gge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGdseXBoLS1zZWFyY2g7XG4gICAgfVxufVxuLmdseXBoLS1saW5lLWNoYXJ0IHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRnbHlwaC0tbGluZS1jaGFydDtcbiAgICB9XG59XG4uZ2x5cGgtLXBsYXkge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGdseXBoLS1wbGF5O1xuICAgIH1cbn1cblxuIiwiQG1peGluIG1lbnUoJHZhcmlhbnQ6IGRlZmF1bHQpIHtcclxuXHJcbiAgQGlmICgkdmFyaWFudCA9PSAnaW50ZXJuYWwnKSB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG5cclxuICAgIEBpbmNsdWRlIG1lZGlhKCRtcS1kZXNrKSB7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICBAaW5jbHVkZSBtYXJnaW4oNS42NWVtIG51bGwgbnVsbCBudWxsKTtcclxuICAgICAgYmFja2dyb3VuZDogbGlnaHRlbigkY29sb3ItZ3JleS1saWdodCwgMyUpO1xyXG4gICAgICBAaW5jbHVkZSBwYWRkaW5nKDEuNzVlbSAxLjc1ZW0gMS43NWVtIDEuNzVlbSk7XHJcblxyXG4gICAgICAubWVudV9fbGlzdCB7XHJcbiAgICAgICAgQGluY2x1ZGUgbWFyZ2luKDFlbSBudWxsIG51bGwgbnVsbCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5tZW51X19oZWFkaW5nIHtcclxuICAgICAgICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogZW0oMTgpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAubWVudV9faXRlbSB7XHJcblxyXG4gICAgICAgICYubWVudV9faXRlbS0tYWN0aXZlIHtcclxuXHJcbiAgICAgICAgICAubWVudV9fbGluayB7XHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAubWVudV9fbGluayB7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgIEBpbmNsdWRlIHBhZGRpbmcoLjVlbSBudWxsIC41ZW0gbnVsbCk7XHJcbiAgICAgICAgY29sb3I6ICRjb2xvci10ZWFsLWRhcms7XHJcbiAgICAgICAgZm9udC1zaXplOiBlbSgxNSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiB4LXJ0ZSB7XHJcblxyXG4gIGEge1xyXG4gICAgY29sb3I6ICRjb2xvci10ZWFsO1xyXG4gIH1cclxuXHJcbiAgaDEge1xyXG4gICAgQGluY2x1ZGUgeC1oZWFkaW5nKDEpO1xyXG4gIH1cclxuXHJcbiAgaDIge1xyXG4gICAgQGluY2x1ZGUgeC1oZWFkaW5nKDIpO1xyXG5cclxuICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xyXG4gICAgICBAaW5jbHVkZSBtYXJnaW4oMmVtIG51bGwgbnVsbCBudWxsKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGgzIHtcclxuICAgIEBpbmNsdWRlIHgtaGVhZGluZygzKTtcclxuXHJcbiAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcclxuICAgICAgQGluY2x1ZGUgbWFyZ2luKDFlbSBudWxsIG51bGwgbnVsbCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoNCB7XHJcbiAgICBAaW5jbHVkZSB4LWhlYWRpbmcoNCk7XHJcbiAgfVxyXG5cclxuICBoNSB7XHJcbiAgICBAaW5jbHVkZSB4LWhlYWRpbmcoNSk7XHJcbiAgfVxyXG5cclxuICBlbSB7XHJcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XHJcbiAgfVxyXG5cclxub2wge1xyXG5cclxuICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xyXG4gICAgICBAaW5jbHVkZSBtYXJnaW4oMWVtIG51bGwgbnVsbCBudWxsKTtcclxuICAgIH1cclxuICBcclxufVxyXG5vbCBsaSB7XHJcbiAgICBAaW5jbHVkZSB4LWNvcHk7XHJcbiAgICBsaW5lLWhlaWdodDogMS44O1xyXG4gICAgQGluY2x1ZGUgbWFyZ2luKG51bGwgbnVsbCAxLjBlbSAxLjVlbSk7XHJcbiAgICBsaXN0LXN0eWxlOiBkZWNpbWFsO1xyXG4gIH1cclxuXHJcbnVsIGxpIG9sIGxpIG9sIGxpLCB1bCBsaSBvbCBsaSB7XHJcbiAgICBAaW5jbHVkZSB4LWNvcHk7XHJcbiAgICBsaW5lLWhlaWdodDogMS44O1xyXG4gICAgQGluY2x1ZGUgbWFyZ2luKG51bGwgbnVsbCAxLjBlbSAxLjVlbSk7XHJcbiAgICBsaXN0LXN0eWxlOiBkZWNpbWFsO1xyXG5cclxuICAgICY6YmVmb3JlIHtcclxuICAgICAgIGNvbnRlbnQ6bm9uZTtcclxuICAgIH1cclxuICB9IFxyXG5cclxuXHJcbiAgdWwge1xyXG5cclxuICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xyXG4gICAgICBAaW5jbHVkZSBtYXJnaW4oMWVtIG51bGwgbnVsbCBudWxsKTtcclxuICAgIH1cclxuICBcclxufVxyXG4gXHJcbnVsIGxpLCBvbCB1bCBsaSB7XHJcbiAgICBAaW5jbHVkZSB4LWNvcHk7XHJcbiAgICBsaW5lLWhlaWdodDogMS44O1xyXG4gICAgQGluY2x1ZGUgbWFyZ2luKC41ZW0gbnVsbCBudWxsIC41ZW0pO1xyXG4gICAgbGlzdC1zdHlsZTogbm9uZTtcclxuXHJcbiAgICAmOmJlZm9yZSB7XHJcbiAgICAgIEBpbmNsdWRlIHgtaWNvbigkZ2x5cGgtLWJ1bGxldCwgNnB4LCAkY29sb3ItdGVhbCk7ICBcclxuICAgICAgQGluY2x1ZGUgcG9zaXRpb24ocmVsYXRpdmUsIC0zcHggbnVsbCBudWxsIC0xZW0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbnVsIGxpIHVsIGxpIHtcclxuICAgIEBpbmNsdWRlIHgtY29weTtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjg7XHJcbiAgICBAaW5jbHVkZSBtYXJnaW4oLjNlbSBudWxsIG51bGwgMmVtKTtcclxuICAgIGxpc3Qtc3R5bGU6IHNxdWFyZTtcclxuICAgIHBhZGRpbmc6IG5vbmU7XHJcblxyXG4gICAgJjpiZWZvcmUge1xyXG4gICAgICBjb250ZW50Om5vbmU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgdGFibGUge1xyXG4gICAgQGluY2x1ZGUgbWFyZ2luKDFlbSBudWxsIG51bGwgbnVsbCk7XHJcbiAgICBAaW5jbHVkZSBzaXplKDEwMCUgYXV0byk7XHJcblxyXG4gICAgJi5sdHIge1xyXG5cclxuICAgICAgdGQge1xyXG5cclxuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcclxuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBAaW5jbHVkZSBtZWRpYSgkbXEtbGFwKSB7XHJcblxyXG4gICAgICAgIHRkIHtcclxuXHJcbiAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcclxuICAgICAgICAgICAgQGluY2x1ZGUgc2l6ZSgyNSUgYXV0byk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdHIge1xyXG4gICAgICBib3JkZXItYm90dG9tOiAxcHggZGFzaGVkIGRhcmtlbigkY29sb3ItZ3JleS1saWdodCwgMTAlKTtcclxuXHJcbiAgICAgICY6Zmlyc3QtY2hpbGQge1xyXG5cclxuICAgICAgICB0ZCB7XHJcblxyXG4gICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1hcmdpbigwIG51bGwgbnVsbCBudWxsKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0ZCB7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICBAaW5jbHVkZSB4LWNvcHk7XHJcblxyXG4gICAgICAmOm50aC1jaGlsZChvZGQpIHtcclxuICAgICAgICBAaW5jbHVkZSBtYXJnaW4oMWVtIG51bGwgbnVsbCBudWxsKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xyXG4gICAgICAgIEBpbmNsdWRlIHBhZGRpbmcobnVsbCBudWxsIDFlbSBudWxsKTtcclxuICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgkbXEtbGFwKSB7XHJcblxyXG4gICAgICB0ZCB7XHJcbiAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcclxuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xyXG4gICAgICAgIEBpbmNsdWRlIHBhZGRpbmcoMWVtIG51bGwgMWVtIG51bGwpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBkbCB7XHJcbiAgICBAaW5jbHVkZSBtYXJnaW4oMWVtIG51bGwgbnVsbCBudWxsKTtcclxuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcblxyXG4gICAgZHQge1xyXG4gICAgICBAaW5jbHVkZSB4LWNvcHk7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG5cclxuICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XHJcbiAgICAgICAgQGluY2x1ZGUgbWFyZ2luKDFlbSBudWxsIG51bGwgbnVsbCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBkZCB7XHJcbiAgICAgIEBpbmNsdWRlIHgtY29weTtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBkYXNoZWQgJGNvbG9yLWdyZXktbGlnaHQ7XHJcbiAgICAgIEBpbmNsdWRlIHBhZGRpbmcobnVsbCBudWxsIDFlbSBudWxsKTtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgkbXEtbGFwKSB7XHJcbiAgICAgIFxyXG4gICAgICBkdCB7XHJcbiAgICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDYpO1xyXG4gICAgICAgIGNsZWFyOiBsZWZ0O1xyXG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBkYXNoZWQgJGNvbG9yLWdyZXktbGlnaHQ7XHJcbiAgICAgICAgQGluY2x1ZGUgcGFkZGluZyhudWxsIG51bGwgMWVtIG51bGwpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBkZCB7XHJcbiAgICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDE4KTtcclxuICAgICAgICBAaW5jbHVkZSBvbWVnYTtcclxuXHJcbiAgICAgICAgJjpub3QoOm50aC1jaGlsZCgyKSkge1xyXG4gICAgICAgICAgQGluY2x1ZGUgbWFyZ2luKDFlbSBudWxsIG51bGwgbnVsbCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwIHtcclxuICAgIEBpbmNsdWRlIHgtY29weTtcclxuXHJcbiAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcclxuICAgICAgQGluY2x1ZGUgbWFyZ2luKDFlbSBudWxsIG51bGwgbnVsbCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpbWcge1xyXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgLyoqIEBpbmNsdWRlIHBhZGRpbmcoMnB4IDJweCAycHggMnB4KTsqKi9cclxuICAgIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0ZW4oJGNvbG9yLWdyZXksIDEwJSk7XHJcblxyXG4gICAgJi5mbG9hdCB7XHJcbiAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICBAaW5jbHVkZSBtYXJnaW4oMS41ZW0gMWVtIDFlbSBudWxsKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNtYWxsIHtcclxuICAgIGZvbnQtc2l6ZTogZW0oMTQpO1xyXG4gIH1cclxuXHJcbiAgLnJlc3BvbnNpdmUtaWZyYW1lIHtcclxuICAgIEBpbmNsdWRlIHNpemUoMTAwJSAwKTtcclxuICAgIEBpbmNsdWRlIHBhZGRpbmcoNTYuNSUgbnVsbCBudWxsIG51bGwpO1xyXG4gICAgQGluY2x1ZGUgcG9zaXRpb24ocmVsYXRpdmUsIG51bGwgbnVsbCBudWxsIG51bGwpO1xyXG4gICAgQGluY2x1ZGUgbWFyZ2luKDFlbSBudWxsIDFlbSBudWxsKTtcclxuICB9XHJcblxyXG4gIGlmcmFtZSB7XHJcbiAgICBAaW5jbHVkZSBzaXplKDEwMCUgMTAwJSk7XHJcbiAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMCBudWxsIG51bGwgMCk7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4geC1jb3B5KCR2YXJpYW50OiAnZGVmYXVsdCcpIHtcclxuICBmb250LXdlaWdodDogNDAwO1xyXG4gIGZvbnQtc2l6ZTogMTZweDtcclxuICBsaW5lLWhlaWdodDoxLjg7XHJcbiAgY29sb3I6ICRjb2xvci1ncmV5LWRhcms7XHJcblxyXG4gIHN0cm9uZyB7XHJcbiAgICBmb250LXdlaWdodDogNjAwO1xyXG4gIH1cclxuXHJcbiAgYSB7XHJcbiAgICBjb2xvcjogJGNvbG9yLXRlYWw7XHJcblxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIGNvbG9yOiBkYXJrZW4oJGNvbG9yLXRlYWwsIDEwJSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAaWYoJHZhcmlhbnQ9PVwiaW52ZXJ0ZWRcIikge1xyXG4gICAgY29sb3I6ICRjb2xvci10ZXh0LWludmVydDtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiB4LWhlYWRpbmcoJGxldmVsLCAkdmFyaWFudDogJ2RlZmF1bHQnKSB7XHJcblxyXG4gIEBpZigkbGV2ZWw9PTEpIHtcclxuICAgIGZvbnQtc2l6ZTogZW0oMjQpO1xyXG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XHJcbiAgICBjb2xvcjogJGNvbG9yLWdyZXktZGFyaztcclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgkbXEtbGFwKSB7XHJcbiAgICAgIGZvbnQtc2l6ZTogZW0oNDApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGlmKCRsZXZlbD09Mikge1xyXG4gICAgZm9udC1zaXplOiBlbSgyNCk7XHJcbiAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcclxuICAgIGNvbG9yOiAkY29sb3ItZ3JleS1kYXJrO1xyXG4gIH1cclxuXHJcbiAgQGlmKCRsZXZlbD09Mykge1xyXG4gICAgZm9udC1zaXplOiBlbSgyMCk7XHJcbiAgICBmb250LXdlaWdodDogNjAwO1xyXG4gIH1cclxuXHJcbiAgQGlmKCRsZXZlbD09NCkge1xyXG4gICAgZm9udC1zaXplOiBlbSgyMCk7XHJcbiAgICBmb250LXdlaWdodDogNjAwO1xyXG4gIH1cclxuXHJcbiAgQGlmKCRsZXZlbD09NSkge1xyXG4gICAgZm9udC1zaXplOiBlbSgxNik7XHJcbiAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgY29sb3I6ICRjb2xvci10ZXh0O1xyXG4gIH1cclxuXHJcbiAgQGlmKCRsZXZlbD09cGFnZSkge1xyXG4gICAgQGluY2x1ZGUgeC1oZWFkaW5nKDEpO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjb2xvci1ncmV5O1xyXG4gICAgQGluY2x1ZGUgcGFkZGluZyhudWxsIG51bGwgLjVlbSBudWxsKTtcclxuICAgIEBpbmNsdWRlIG1hcmdpbihudWxsIG51bGwgLjVlbSBudWxsKTtcclxuICB9XHJcblxyXG4gIEBpZigkdmFyaWFudD09XCJpbnZlcnRlZFwiKSB7XHJcbiAgICBjb2xvcjogJGNvbG9yLXRleHQtaW52ZXJ0O1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIHgtYnV0dG9uKCRpY29uOiBub25lLCAkY2VudGVyZWQ6IGZhbHNlLCAkdmFyaWFudDogZGVmYXVsdCwgJHNpemU6IGRlZmF1bHQpIHtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgQGluY2x1ZGUgbWFyZ2luKDFlbSBudWxsIG51bGwgbnVsbCk7XHJcbiAgQGluY2x1ZGUgeC1iYWNrZ3JvdW5kKCRjb2xvci10ZWFsLCAxKTtcclxuICBjb2xvcjogJGNvbG9yLXRleHQtaW52ZXJ0O1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIGZvbnQtc2l6ZTogMTRweDtcclxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gIEBpbmNsdWRlIHBhZGRpbmcoLjVlbSAxZW0gLjVlbSAxZW0pO1xyXG4gIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDE1MG1zICRlYXNlLWluLW91dC1xdWFkKTtcclxuICBsaW5lLWhlaWdodDogbm9ybWFsO1xyXG5cclxuICAmOmhvdmVyIHtcclxuICAgIEBpbmNsdWRlIHgtYmFja2dyb3VuZChsaWdodGVuKCRjb2xvci10ZWFsLCA1JSksIDEpO1xyXG4gIH1cclxuXHJcbiAgQGlmICggJGljb24gIT0gJ25vbmUnICkge1xyXG5cclxuICAgICY6YWZ0ZXIge1xyXG4gICAgICBAaW5jbHVkZSB4LWljb24oJGljb24sIDE4cHgsICRjb2xvci10ZXh0LWludmVydCk7XHJcbiAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKHJlbGF0aXZlLCAzcHggbnVsbCBudWxsIDRweCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAaWYgKCAkY2VudGVyZWQgPT0gdHJ1ZSApIHtcclxuICAgIEBpbmNsdWRlIHBvc2l0aW9uKHJlbGF0aXZlLCBudWxsIG51bGwgbnVsbCA1MCUpO1xyXG4gICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVgoLTUwJSkpO1xyXG4gIH1cclxuXHJcbiAgQGlmICggJGNlbnRlcmVkID09IGZhbHNlICkge1xyXG4gICAgQGluY2x1ZGUgcG9zaXRpb24ocmVsYXRpdmUsIG51bGwgbnVsbCBudWxsIDApO1xyXG4gICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVgoMCUpKTtcclxuICB9XHJcblxyXG4gIEBpZiAoICR2YXJpYW50ID09ICdpbnZlcnRlZCcgKSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci10ZXh0LWludmVydDtcclxuXHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXRleHQtaW52ZXJ0O1xyXG4gICAgICBjb2xvcjogJGNvbG9yLXRlYWwtZGFyaztcclxuXHJcbiAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgIGNvbG9yOiAkY29sb3ItdGVhbC1kYXJrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAaWYgKCAkdmFyaWFudCA9PSAnZGFyaycgKSB7XHJcbiAgICBAaW5jbHVkZSB4LWJhY2tncm91bmQoJGNvbG9yLXRlYWwtZGFyaywgMSk7XHJcblxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIEBpbmNsdWRlIHgtYmFja2dyb3VuZChsaWdodGVuKCRjb2xvci10ZWFsLWRhcmssIDUlKSwgMSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAaWYoICRzaXplID09ICdsYXJnZScgKSB7XHJcbiAgICBmb250LXNpemU6IDIwcHg7XHJcblxyXG4gICAgJjphZnRlciB7XHJcbiAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKHJlbGF0aXZlLCAwcHggbnVsbCBudWxsIG51bGwpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuQG1peGluIHRpbGUoJHZhcmlhbnQ6IGRlZmF1bHQpIHtcclxuICBAaW5jbHVkZSBzaXplKDIyMHB4IDIyMHB4KTtcclxuICBAaW5jbHVkZSBwb3NpdGlvbihyZWxhdGl2ZSwgbnVsbCBudWxsIG51bGwgNTAlKTtcclxuICBAaW5jbHVkZSBtYXJnaW4obnVsbCBudWxsIG51bGwgLTExMHB4KTtcclxuICBAaW5jbHVkZSB4LWJhY2tncm91bmQoJGNvbG9yLXdoaXRlLCAuMDUpO1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgLjUpO1xyXG5cclxuICAudGlsZV9faW1hZ2Uge1xyXG4gICAgQGluY2x1ZGUgcG9zaXRpb24ocmVsYXRpdmUsIDE1cHggbnVsbCBudWxsIDUwJSk7XHJcbiAgICBAaW5jbHVkZSBtYXJnaW4obnVsbCBudWxsIG51bGwgLTc1cHgpO1xyXG4gICAgQGluY2x1ZGUgc2l6ZSgxNTBweCAxNTBweCk7XHJcbiAgfVxyXG5cclxuICAudGlsZV9fY29udGVudCB7XHJcbiAgICBjb2xvcjogJGNvbG9yLXRleHQtaW52ZXJ0O1xyXG4gICAgQGluY2x1ZGUgc2l6ZSgxMDAlIGF1dG8pO1xyXG4gICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIG51bGwgbnVsbCAxZW0gMCk7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgfVxyXG5cclxuICAudGlsZV9faGVhZGluZyB7XHJcbiAgICBmb250LXNpemU6IGVtKDIwKTtcclxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgfVxyXG5cclxuICAudGlsZV9fY29weSB7XHJcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XHJcbiAgfVxyXG5cclxuICAudGlsZV9fY3RhIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMCAwIDAgMCk7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBtZWRpYSgkbXEtZGVzaykge1xyXG5cclxuICAgIC50aWxlX19jdGEge1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBpZiAoJHZhcmlhbnQgPT0gJ2ludmVydGVkJykge1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLWdyZXktZGFyaztcclxuXHJcbiAgICAudGlsZV9faGVhZGluZyB7XHJcbiAgICAgIGNvbG9yOiAkY29sb3ItZ3JleS1kYXJrO1xyXG4gICAgfVxyXG5cclxuICAgIC50aWxlX19jb3B5IHtcclxuICAgICAgY29sb3I6ICRjb2xvci1ncmV5LWRhcms7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gY29sbGVjdGlvbigkdmFyaWFudDogc2xpY2spIHtcclxuICBAaW5jbHVkZSBwYWRkaW5nKDIuNWVtIG51bGwgMi41ZW0gbnVsbCk7XHJcblxyXG4gIC5zbGljay1zbGlkZSwgLnNsaWNrLXNsaWRlIGEge1xyXG4gICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLnNsaWNrLWFycm93IHtcclxuICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVZKC01MCUpKTtcclxuICAgIGZvbnQtc2l6ZTogMDtcclxuICAgIHotaW5kZXg6IDE7XHJcblxyXG4gICAgJjpiZWZvcmUge1xyXG4gICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAxNTBtcyAkZWFzZS1pbi1vdXQtcXVhZCk7XHJcbiAgICB9XHJcblxyXG4gICAgJi5zbGljay1wcmV2e1xyXG4gICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgNTAlIG51bGwgbnVsbCAtNXB4KTtcclxuICAgICAgXHJcbiAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICBAaW5jbHVkZSB4LWljb24oJGdseXBoLS1hcnJvdy0tbGVmdCwgNTBweCwgJGNvbG9yLXRlYWwpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmOmhvdmVyIHtcclxuXHJcbiAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgY29sb3I6ICRjb2xvci10ZWFsO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYuc2xpY2stbmV4dCB7XHJcbiAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCA1MCUgLTVweCBudWxsIG51bGwpO1xyXG4gICAgICBcclxuICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgIEBpbmNsdWRlIHgtaWNvbigkZ2x5cGgtLWFycm93LS1yaWdodCwgNTBweCwgJGNvbG9yLXRlYWwpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmOmhvdmVyIHtcclxuXHJcbiAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgY29sb3I6ICRjb2xvci10ZWFsO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJG1xLWRlc2spIHtcclxuICAgIEBpbmNsdWRlIHBhZGRpbmcoNWVtIG51bGwgNWVtIG51bGwpO1xyXG5cclxuICAgIC5jb2xsZWN0aW9uX19pbm5lciB7XHJcbiAgICAgIEBpbmNsdWRlIG91dGVyLWNvbnRhaW5lcigxMDAwcHgpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIuYXBwbGljYXRpb24ge1xuICBmb250LWZhbWlseTogJ09wZW4gU2FucycsIHNhbnMtc2VyaWY7XG4gIEBpbmNsdWRlIHgtYmFja2dyb3VuZCgkY29sb3ItdGVhbCwgMSk7XG59XG4iLCIubWFpbiB7XG4gIEBpbmNsdWRlIHgtYmFja2dyb3VuZCgkY29sb3Itd2hpdGUsIDEpO1xufVxuIiwiLmhlYWRlciB7XG4gIEBpbmNsdWRlIHBvc2l0aW9uKHJlbGF0aXZlLCBudWxsIG51bGwgbnVsbCBudWxsKTtcbiAgei1pbmRleDogMTA7XG4gIEBpbmNsdWRlIHNpemUoMTAwJSAkaGVpZ2h0LWhlYWRlci1wYWxtKTtcbiAgZGlzcGxheTogdGFibGU7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCByZ2JhKDM1LDM1LDM1LDEpO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCRtcS1sYXAtZG93bikge1xuXG4gICAgLmhlYWRlcl9faW5uZXIge1xuICAgICAgQGluY2x1ZGUgcGFkZGluZyhudWxsIDIuNSUgbnVsbCAyLjUlKTtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJG1xLWRlc2spIHsgXG4gICAgQGluY2x1ZGUgc2l6ZSgxMDAlICRoZWlnaHQtaGVhZGVyLWRlc2spO1xuXG4gICAgLmhlYWRlcl9faW5uZXIge1xuICAvLyAgICBAaW5jbHVkZSBvdXRlci1jb250YWluZXIoZW0oMTAwMCkpO1xuICAgIH1cbiAgfVxufVxuIiwiLmxvZ28ge1xuICBmbG9hdDogbGVmdDtcblxuICAubG9nb19fbGluayB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIEBpbmNsdWRlIHNpemUoYXV0byAkaGVpZ2h0LWhlYWRlci1wYWxtKTtcbiAgfVxuXG4gIC5sb2dvX19oZWFkaW5nIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLmxvZ29fX2ltYWdlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgQGluY2x1ZGUgcGFkZGluZyggZW0oIDEwICkgbnVsbCBlbSggMTAgKSAxZW0gKTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCRtcS1kZXNrKSB7XG5cbiAgICAubG9nb19fbGluayB7XG4gICAgICBAaW5jbHVkZSBzaXplKGF1dG8gJGhlaWdodC1oZWFkZXItZGVzayk7XG4gICAgfVxuXG4gICAgLmxvZ29fX2ltYWdlIHtcbiAgICAgIEBpbmNsdWRlIHBhZGRpbmcoIC43NWVtIG51bGwgLjc1ZW0gMmVtICk7XG4gICAgfVxuICB9XG59XG4iLCIudG9nZ2xlIHtcclxuXHJcbiAgJi50b2dnbGUtLW5hdmlnYXRpb24ge1xyXG4gICAgZmxvYXQ6IHJpZ2h0O1xyXG5cclxuICAgIC50b2dnbGVfX2lubmVyIHtcclxuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcclxuICAgICAgQGluY2x1ZGUgc2l6ZShhdXRvICRoZWlnaHQtaGVhZGVyLXBhbG0pO1xyXG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gICAgfVxyXG5cclxuICAgIC50b2dnbGVfX2J1dHRvbiB7XHJcbiAgICAgIGZvbnQtc2l6ZTogMDtcclxuXHJcbiAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICBAaW5jbHVkZSB4LWljb24oJGdseXBoLS1tZW51LCA0MHB4LCByZ2JhKDM1LDM1LDM1LDEpKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIG1lZGlhKCRtcS1kZXNrKSB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLnRvZ2dsZS0tc2VhcmNoIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJG1xLWRlc2spIHtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICBAaW5jbHVkZSB4LWJhY2tncm91bmQoJGNvbG9yLXdoaXRlKTtcclxuICAgICAgQGluY2x1ZGUgcGFkZGluZyhudWxsIG51bGwgbnVsbCAxZW0pO1xyXG5cclxuICAgICAgLnRvZ2dsZV9faW5uZXIge1xyXG4gICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XHJcbiAgICAgICAgQGluY2x1ZGUgc2l6ZShhdXRvICRoZWlnaHQtaGVhZGVyLWRlc2spO1xyXG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC50b2dnbGVfX2J1dHRvbiB7XHJcbiAgICAgICAgZm9udC1zaXplOiAwO1xyXG5cclxuICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICBAaW5jbHVkZSB4LWljb24oJGdseXBoLS1zZWFyY2gsIDMycHgsICRjb2xvci1ibGFjayk7XHJcbiAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAyNTBtcyAkZWFzZS1pbi1vdXQtcXVhZCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi5hc2lkZSB7XHJcbiAgQGluY2x1ZGUgeC1iYWNrZ3JvdW5kKGxpZ2h0ZW4oJGNvbG9yLWdyZXktZGFyaywgMTAlKSwgMSk7XHJcbiAgei1pbmRleDogNTtcclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJG1xLWxhcC1kb3duKSB7XHJcbiAgICBAaW5jbHVkZSBzaXplKGVtKDI4MCkgMTAwJSk7XHJcbiAgICBAaW5jbHVkZSBwb3NpdGlvbihmaXhlZCwgMCBudWxsIDAgMCk7XHJcbiAgICBAaW5jbHVkZSBwYWRkaW5nKCRoZWlnaHQtaGVhZGVyLXBhbG0gbnVsbCBudWxsIG51bGwpO1xyXG4gICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKSk7XHJcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMsICRlYXNlLWluLW91dC1xdWFkKTtcclxuICAgIG92ZXJmbG93LXk6IGF1dG87XHJcblxyXG4gICAgLmFzaWRlX19pbm5lciB7XHJcbiAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBtZWRpYSgkbXEtZGVzaykge1xyXG4gICAgQGluY2x1ZGUgeC1iYWNrZ3JvdW5kKCRjb2xvci13aGl0ZSwgMSk7XHJcbiAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMCBudWxsIG51bGwgNTAlKTtcclxuICAgIEBpbmNsdWRlIG1hcmdpbihudWxsIGVtKC0yNzUpIG51bGwgbnVsbCk7XHJcbiAgICBAaW5jbHVkZSBzaXplKGF1dG8gJGhlaWdodC1oZWFkZXItZGVzayk7XHJcbiAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oIHRyYW5zbGF0ZVgoIC01MCUgKSApO1xyXG4gICAgei1pbmRleDogMTA7XHJcbiAgfVxyXG59XHJcbiIsIi5uYXZpZ2F0aW9uIHtcclxuXHJcbiAgLm5hdmlnYXRpb25fX2l0ZW0ge1xyXG4gICAgQGluY2x1ZGUgcG9zaXRpb24ocmVsYXRpdmUsIG51bGwgbnVsbCBudWxsIG51bGwpO1xyXG4gIH1cclxuICBcclxuICAubmF2aWdhdGlvbl9fbGluayB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBAaW5jbHVkZSBzaXplKDEwMCUgYXV0byk7XHJcbiAgICBAaW5jbHVkZSBwYWRkaW5nKC41ZW0gMWVtIC41ZW0gMWVtKTtcclxuICAgIGNvbG9yOiAkY29sb3ItdGV4dC1pbnZlcnQ7XHJcbiAgICBmb250LXdlaWdodDogNDAwO1xyXG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIDI1MG1zICRlYXNlLWluLW91dC1xdWFkKTtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKCRtcS1sYXAtZG93bikge1xyXG4gICAgQGluY2x1ZGUgbWFyZ2luKDRlbSBudWxsIG51bGwgbnVsbCk7XHJcblxyXG4gICAgLm5hdmlnYXRpb25fX2l0ZW0ge1xyXG5cclxuICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAwIG51bGwgMCAwKTtcclxuICAgICAgICBAaW5jbHVkZSBzaXplKDBweCAxMDAlKTtcclxuICAgICAgICBAaW5jbHVkZSB4LWJhY2tncm91bmQoJGNvbG9yLWdyZXktZGFyaywgMSk7XHJcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMjUwbXMgJGVhc2UtaW4tb3V0LXF1YWQpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmLm5hdmlnYXRpb25fX2l0ZW0tLWFjdGl2ZSB7XHJcblxyXG4gICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDAgbnVsbCAwIDApO1xyXG4gICAgICAgICAgQGluY2x1ZGUgc2l6ZSg0cHggMTAwJSk7XHJcbiAgICAgICAgICBAaW5jbHVkZSB4LWJhY2tncm91bmQoI2NjYywgMSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAubmF2aWdhdGlvbl9fbGluayB7XHJcbiAgICAgICAgICBAaW5jbHVkZSB4LWJhY2tncm91bmQoJGNvbG9yLWdyZXktZGFyaywgMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBtZWRpYSgkbXEtZGVzaykge1xyXG4gICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICBAaW5jbHVkZSB4LWJhY2tncm91bmQoI2ZmZik7XHJcbiAgICBAaW5jbHVkZSBzaXplKGF1dG8gJGhlaWdodC1oZWFkZXItZGVzayk7XHJcbiAgICBsaW5lLWhlaWdodDogJGhlaWdodC1oZWFkZXItZGVzaztcclxuXHJcbiAgICAubmF2aWdhdGlvbl9faXRlbSB7XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHJcbiAgICAgICY6aG92ZXJ7XHJcblxyXG4gICAgICAgIC5uYXZpZ2F0aW9uX190ZXh0IHtcclxuXHJcbiAgICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIHNpemUoMTAwJSA0cHgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJiA+IC5zdWJuYXZpZ2F0aW9uIHtcclxuXHJcbiAgICAgICAgICAuc3VibmF2aWdhdGlvbl9faW5uZXIge1xyXG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKG9wYWNpdHkgMjUwbXMgJGVhc2UtaW4tb3V0LXF1YWQpO1xyXG4gICAgICAgICAgICB3aWR0aDogZW0oMjAwKTtcclxuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgJi5uYXZpZ2F0aW9uX19pdGVtLS1hY3RpdmUge1xyXG5cclxuICAgICAgICAubmF2aWdhdGlvbl9fdGV4dCB7XHJcblxyXG4gICAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBzaXplKDEwMCUgNHB4KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAubmF2aWdhdGlvbl9fbGluayB7XHJcbiAgICAgIEBpbmNsdWRlIHBhZGRpbmcoMCAxZW0gMCAxZW0pO1xyXG4gICAgICBjb2xvcjogcmdiYSgzNSwzNSwzNSwxKTtcclxuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgIH1cclxuXHJcbiAgICAubmF2aWdhdGlvbl9fdGV4dCB7XHJcbiAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKHJlbGF0aXZlLCBudWxsIG51bGwgbnVsbCBudWxsKTtcclxuXHJcbiAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICBjb250ZW50OiAnJztcclxuICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgaW5pdGlhbCAwIC0uMjVlbSAwKTtcclxuICAgICAgICBAaW5jbHVkZSBzaXplKDAgNHB4KTtcclxuICAgICAgICBAaW5jbHVkZSB4LWJhY2tncm91bmQoIzVFOTRERiwgMSk7XHJcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMjUwbXMgJGVhc2UtaW4tb3V0LXF1YWQpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi5zdWJuYXZpZ2F0aW9uIHtcblxuICAuc3VibmF2aWdhdGlvbl9fdG9nZ2xlIHtcbiAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgLjRyZW0gMXJlbSBudWxsIG51bGwpO1xuICAgIGZvbnQtc2l6ZTogMDtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDI1MG1zICRlYXNlLWluLW91dC1xdWFkKTtcbiAgICAgIEBpbmNsdWRlIHgtaWNvbigkZ2x5cGgtLWFycm93LS1kb3duLCAyNHB4LCAkY29sb3Itd2hpdGUpO1xuICAgIH1cbiAgfVxuXG4gIC5zdWJuYXZpZ2F0aW9uX19saW5rIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgQGluY2x1ZGUgc2l6ZSgxMDAlIGF1dG8pO1xuICAgIEBpbmNsdWRlIHBhZGRpbmcoLjVlbSAxZW0gLjVlbSAxLjVlbSk7XG4gICAgY29sb3I6ICRjb2xvci10ZXh0LWludmVydDtcbiAgICBmb250LXNpemU6IGVtKDE0KTtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICB9XG5cbiAgJi5zdWJuYXZpZ2F0aW9uLS1hY3RpdmUge1xuXG4gICAgLnN1Ym5hdmlnYXRpb25fX3RvZ2dsZSB7XG5cbiAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29sb3I6ICNjY2M7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybShyb3RhdGUoMTgwZGVnKSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnN1Ym5hdmlnYXRpb25fX2lubmVyIHtcbiAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24obWF4LWhlaWdodCA1MDBtcyAkZWFzZS1pbi1vdXQtcXVhZCk7XG4gICAgICBtYXgtaGVpZ2h0OiAyMDBweDtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgkbXEtbGFwLWRvd24pIHtcblxuICAgIC5zdWJuYXZpZ2F0aW9uX19pbm5lciB7XG4gICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKG1heC1oZWlnaHQgMjUwbXMgJGVhc2UtaW4tb3V0LXF1YWQpO1xuICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJG1xLWRlc2spIHtcbiAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgbnVsbCBudWxsIG51bGwgbnVsbCk7XG5cbiAgICAuc3VibmF2aWdhdGlvbl9fdG9nZ2xlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLnN1Ym5hdmlnYXRpb25fX2lubmVyIHtcbiAgICAgIGhlaWdodDogMDtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICBvdmVyZmxvdzpoaWRkZW47XG4gICAgfVxuXG4gICAgLnN1Ym5hdmlnYXRpb25fX2xpc3Qge1xuICAgICAgQGluY2x1ZGUgeC1iYWNrZ3JvdW5kKGxpZ2h0ZW4oJGNvbG9yLWdyZXktZGFyaywgMTAlKSwgMSk7XG4gICAgICBsaW5lLWhlaWdodDogMS42O1xuICAgIH1cblxuICAgIC5zdWJuYXZpZ2F0aW9uX19pdGVtIHtcbiAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKHJlbGF0aXZlLCBudWxsIG51bGwgbnVsbCBudWxsKTtcbiAgICAgIFxuICAgICAgJjpiZWZvcmUge1xuICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMCBudWxsIDAgMCk7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBAaW5jbHVkZSBzaXplKDBweCAxMDAlKTtcbiAgICAgICAgQGluY2x1ZGUgeC1iYWNrZ3JvdW5kKCNjY2MsIDEpO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAxMDBtcyAkZWFzZS1pbi1vdXQtcXVhZCk7XG4gICAgICB9XG5cbiAgICAgICY6aG92ZXIge1xuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICBAaW5jbHVkZSBzaXplKDRweCAxMDAlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLmZvcm0ge1xyXG5cclxuICAmLmZvcm0tLXNlYXJjaCB7XHJcbiAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgKCRoZWlnaHQtaGVhZGVyLXBhbG0gKyAuNWVtKSAwIG51bGwgMCk7XHJcbiAgICBAaW5jbHVkZSBwYWRkaW5nKDFlbSAxZW0gbnVsbCAxZW0pO1xyXG5cclxuICAgIC5mb3JtX19maWVsZCB7XHJcblxyXG4gICAgICAmLmZvcm1fX2ZpZWxkLS1zZWFyY2gge1xyXG5cclxuICAgICAgICAuZm9ybV9faW5wdXQge1xyXG4gICAgICAgICAgQGluY2x1ZGUgc2l6ZSgxMDAlIDJlbSk7XHJcbiAgICAgICAgICBAaW5jbHVkZSBwYWRkaW5nKDAgMmVtIDAgLjVlbSk7XHJcblxyXG4gICAgICAgICAgQGluY2x1ZGUgcGxhY2Vob2xkZXIge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBwYWRkaW5nKC4xZW0gbnVsbCBudWxsIG51bGwpO1xyXG4gICAgICAgICAgICBmb250LXNpemU6IGVtKDE0KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYuZm9ybV9fZmllbGQtLXN1Ym1pdCB7XHJcblxyXG4gICAgICAgIC5mb3JtX19zdWJtaXQge1xyXG4gICAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDFyZW0gMXJlbSAxcmVtIG51bGwpO1xyXG4gICAgICAgICAgQGluY2x1ZGUgc2l6ZSgycmVtIDJyZW0pO1xyXG4gICAgICAgICAgZm9udC1zaXplOiAwO1xyXG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSB4LWljb24oJGdseXBoLS1zZWFyY2gsIDI0cHgsICRjb2xvci10ZWFsKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgkbXEtZGVzaykge1xyXG4gICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWSgtNDAwJSkpO1xyXG4gICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgJGhlaWdodC1oZWFkZXItZGVzayAwIG51bGwgMTBweCk7XHJcbiAgICAgIEBpbmNsdWRlIHNpemUoMTAwJSAzZW0pO1xyXG4gICAgICBAaW5jbHVkZSB4LWJhY2tncm91bmQoJGNvbG9yLXRlYWwsIDEpO1xyXG4gICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCA0MDBtcyAkZWFzZS1pbi1vdXQtcXVpbnQpO1xyXG4gICAgICB6LWluZGV4OiAtMTtcclxuICAgICAgQGluY2x1ZGUgcGFkZGluZyguNWVtIC41ZW0gLjVlbSAuNWVtKTtcclxuXHJcbiAgICAgIC5mb3JtX19maWVsZCB7XHJcblxyXG4gICAgICAgICYuZm9ybV9fZmllbGQtLXN1Ym1pdCB7XHJcblxyXG4gICAgICAgICAgLmZvcm1fX3N1Ym1pdCB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAuNXJlbSAuNXJlbSAuNXJlbSBudWxsKTtcclxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICYuZm9ybS0tc2lnbi1pbiB7XHJcbiAgICBAaW5jbHVkZSBwb3NpdGlvbihyZWxhdGl2ZSwgbnVsbCBudWxsIG51bGwgbnVsbCk7XHJcbiAgICBAaW5jbHVkZSBvdXRlci1jb250YWluZXIoZW0oNTAwKSk7XHJcblxyXG4gICAgLmZvcm1fX2lubmVyIHtcclxuICAgICAgQGluY2x1ZGUgbWFyZ2luKG51bGwgMWVtIG51bGwgMWVtKTtcclxuICAgIH1cclxuXHJcbiAgICAuZm9ybV9faGVhZGluZyB7XHJcbiAgICAgIEBpbmNsdWRlIHgtaGVhZGluZygxLCAnaW52ZXJ0ZWQnKTtcclxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICBAaW5jbHVkZSBwYWRkaW5nKC41ZW0gbnVsbCAuNWVtIG51bGwpO1xyXG4gICAgICBAaW5jbHVkZSB4LWJhY2tncm91bmQoJGNvbG9yLXRlYWwtZGFyaywgMSk7XHJcbiAgICB9XHJcblxyXG4gICAgLmZvcm1fX2Zvcm0ge1xyXG4gICAgICBAaW5jbHVkZSBwYWRkaW5nKDFlbSAxZW0gMWVtIDFlbSk7XHJcbiAgICAgIEBpbmNsdWRlIHgtYmFja2dyb3VuZCgkY29sb3ItZ3JleS1saWdodCwgMSk7XHJcbiAgICB9XHJcblxyXG4gICAgLmZvcm1fX2ZpZWxkIHtcclxuICAgICAgQGluY2x1ZGUgcG9zaXRpb24ocmVsYXRpdmUsIG51bGwgbnVsbCBudWxsIG51bGwpO1xyXG4gICAgICBAaW5jbHVkZSBtYXJnaW4oMS41ZW0gbnVsbCBudWxsIG51bGwpO1xyXG5cclxuICAgICAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgICAgQGluY2x1ZGUgbWFyZ2luKDFlbSBudWxsIG51bGwgbnVsbCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYuZm9ybV9fZmllbGQtLWZvcmdvdC1wYXNzd29yZCB7XHJcbiAgICAgICAgQGluY2x1ZGUgbWFyZ2luKC4yNWVtIG51bGwgbnVsbCBudWxsKTtcclxuICAgICAgICBmb250LXNpemU6IGVtKDEyKTtcclxuXHJcbiAgICAgICAgLmZvcm1fX2xpbmsge1xyXG4gICAgICAgICAgY29sb3I6ICRjb2xvci10ZWFsLWRhcms7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAmLmZvcm1fX2ZpZWxkLS1zaWduLWluIHtcclxuICAgICAgICBAaW5jbHVkZSBtYXJnaW4oLjVlbSBudWxsIG51bGwgbnVsbCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuZm9ybV9faW5wdXQge1xyXG4gICAgICAmW3R5cGU9dGV4dF0sXHJcbiAgICAgICZbdHlwZT1lbWFpbF0sXHJcbiAgICAgICZbdHlwZT1wYXNzd29yZF0ge1xyXG5cclxuICAgICAgICBAaW5jbHVkZSBzaXplKDEwMCUgYXV0byk7XHJcbiAgICAgICAgQGluY2x1ZGUgcGFkZGluZygxZW0gLjVlbSAxZW0gLjVlbSk7XHJcbiAgICAgICAgY29sb3I6ICRjb2xvci10ZXh0O1xyXG4gICAgICAgIGZvbnQtc2l6ZTogZW0oMTQpO1xyXG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsLCAyNTBtcywgJGVhc2UtaW4tcXVpbnQpO1xyXG4gICAgICAgIGJvcmRlci1ib3R0b206IDNweCBzb2xpZCAkY29sb3ItZ3JleS1saWdodDtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgcGxhY2Vob2xkZXIge1xyXG4gICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihjb2xvciwgMjUwbXMsICRlYXNlLWluLW91dC1xdWFkKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIH4gLmZvcm1fX2xhYmVsIHtcclxuICAgICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAtMS41ZW0gMCBudWxsIG51bGwpO1xyXG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICBjb2xvcjogJGNvbG9yLXRlYWwtZGFyaztcclxuICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24ob3BhY2l0eSwgMjUwbXMsICRlYXNlLWluLW91dC1xdWFkKTtcclxuICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMTBweDtcclxuICAgICAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOmZvY3VzIHtcclxuICAgICAgICAgIGJvcmRlci1ib3R0b206IDNweCBzb2xpZCAkY29sb3ItdGVhbC1kYXJrO1xyXG5cclxuICAgICAgICAgIH4gLmZvcm1fX2xhYmVsIHtcclxuICAgICAgICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBAaW5jbHVkZSBwbGFjZWhvbGRlciB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmZmZmO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjp2YWxpZCB7XHJcblxyXG4gICAgICAgICAgfiAuZm9ybV9fbGFiZWwge1xyXG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgJlt0eXBlPXJhZGlvXSxcclxuICAgICAgJlt0eXBlPWNoZWNrYm94XSB7XHJcblxyXG4gICAgICAgIH4gLmZvcm1fX2xhYmVsIHtcclxuICAgICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKCByZWxhdGl2ZSwgMXB4IG51bGwgbnVsbCBudWxsICk7XHJcbiAgICAgICAgICBmb250LXNpemU6IGVtKDE0KTtcclxuICAgICAgICAgIGNvbG9yOiAkY29sb3ItdGV4dDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuZm9ybV9fc3VibWl0IHtcclxuICAgICAgQGluY2x1ZGUgeC1idXR0b24oJGdseXBoLS1hcnJvdy0tcmlnaHQsIGZhbHNlLCAnZGFyaycpO1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgYm9yZGVyLXJhZGl1czoxMHB4O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5mb3JtLS1yZWdpc3RlciB7XHJcbiAgICBAaW5jbHVkZSBwb3NpdGlvbihyZWxhdGl2ZSwgbnVsbCBudWxsIG51bGwgbnVsbCk7XHJcbiAgICBAaW5jbHVkZSBvdXRlci1jb250YWluZXIoZW0oNzUwKSk7XHJcbiAgICBAaW5jbHVkZSBwYWRkaW5nKG51bGwgbnVsbCA1ZW0gbnVsbCApO1xyXG5cclxuICAgIC5mb3JtX19pbm5lciB7XHJcbiAgICAgIEBpbmNsdWRlIG1hcmdpbihudWxsIDFlbSBudWxsIDFlbSk7XHJcbiAgICB9XHJcblxyXG4gICAgLmZvcm1fX2hlYWRpbmcge1xyXG4gICAgICBAaW5jbHVkZSB4LWhlYWRpbmcoMSwgJ2ludmVydGVkJyk7XHJcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgQGluY2x1ZGUgcGFkZGluZyguNWVtIG51bGwgLjVlbSBudWxsKTtcclxuICAgICAgQGluY2x1ZGUgeC1iYWNrZ3JvdW5kKCRjb2xvci10ZWFsLWRhcmssIDEpO1xyXG4gICAgfVxyXG5cclxuICAgIC5mb3JtX19jb3B5IHtcclxuICAgICAgQGluY2x1ZGUgcGFkZGluZygxZW0gMWVtIDAgMWVtKTtcclxuICAgICAgQGluY2x1ZGUgeC1iYWNrZ3JvdW5kKCRjb2xvci1ncmV5LWxpZ2h0LCAxKTtcclxuXHJcbiAgICAgIHAge1xyXG4gICAgICAgIEBpbmNsdWRlIG1hcmdpbigxZW0gbnVsbCBudWxsIG51bGwpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmZvcm1fX2Zvcm0ge1xyXG4gICAgICBAaW5jbHVkZSBwYWRkaW5nKDFlbSAxZW0gMWVtIDFlbSk7XHJcbiAgICB9XHJcblxyXG4gICAgLmZvcm1fX2ZpZWxkIHtcclxuICAgICAgQGluY2x1ZGUgcG9zaXRpb24ocmVsYXRpdmUsIG51bGwgbnVsbCBudWxsIG51bGwpO1xyXG4gICAgICBAaW5jbHVkZSBtYXJnaW4oMWVtIG51bGwgbnVsbCBudWxsKTtcclxuXHJcbiAgICAgICY6Zmlyc3QtY2hpbGQge1xyXG4gICAgICAgIEBpbmNsdWRlIG1hcmdpbigxZW0gbnVsbCBudWxsIG51bGwpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmLmZvcm1fX2ZpZWxkLS1mb3Jnb3QtcGFzc3dvcmQge1xyXG4gICAgICAgIEBpbmNsdWRlIG1hcmdpbiguMjVlbSBudWxsIG51bGwgbnVsbCk7XHJcbiAgICAgICAgZm9udC1zaXplOiBlbSgxMik7XHJcblxyXG4gICAgICAgIC5mb3JtX19saW5rIHtcclxuICAgICAgICAgIGNvbG9yOiAkY29sb3ItdGVhbC1kYXJrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgJi5mb3JtX19maWVsZC0tc2lnbi1pbiB7XHJcbiAgICAgICAgQGluY2x1ZGUgbWFyZ2luKC41ZW0gbnVsbCBudWxsIG51bGwpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmLmZvcm1fX2ZpZWxkLS1vdGhlciB7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5mb3JtX19maWVsZHNldCB7XHJcbiAgICAgIEBpbmNsdWRlIG1hcmdpbigyZW0gbnVsbCBudWxsIG51bGwpO1xyXG5cclxuICAgICAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgICAgQGluY2x1ZGUgbWFyZ2luKDFlbSBudWxsIG51bGwgbnVsbCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuZm9ybV9fbGVnZW5kIHtcclxuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgIH1cclxuXHJcbiAgICAuZm9ybV9faW5wdXQge1xyXG4gICAgICAmW3R5cGU9dGV4dF0sXHJcbiAgICAgICZbdHlwZT1lbWFpbF0sXHJcbiAgICAgICZbdHlwZT1wYXNzd29yZF0ge1xyXG5cclxuICAgICAgICBAaW5jbHVkZSBzaXplKDEwMCUgYXV0byk7XHJcbiAgICAgICAgQGluY2x1ZGUgcGFkZGluZygxZW0gLjVlbSAxZW0gLjVlbSk7XHJcbiAgICAgICAgQGluY2x1ZGUgbWFyZ2luKC41ZW0gbnVsbCBudWxsIG51bGwpO1xyXG4gICAgICAgIGNvbG9yOiAkY29sb3ItdGV4dDtcclxuICAgICAgICBmb250LXNpemU6IGVtKDE0KTtcclxuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCwgMjUwbXMsICRlYXNlLWluLXF1aW50KTtcclxuICAgICAgICBib3JkZXItYm90dG9tOiAzcHggc29saWQgJGNvbG9yLWdyZXktbGlnaHQ7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIHBsYWNlaG9sZGVyIHtcclxuICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oY29sb3IsIDI1MG1zLCAkZWFzZS1pbi1vdXQtcXVhZCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB+IC5mb3JtX19sYWJlbCB7XHJcbiAgICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgLTFlbSAwIG51bGwgbnVsbCk7XHJcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgIGNvbG9yOiAkY29sb3ItdGVhbC1kYXJrO1xyXG4gICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihvcGFjaXR5LCAyNTBtcywgJGVhc2UtaW4tb3V0LXF1YWQpO1xyXG4gICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbiAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgICAgICAgZm9udC1zaXplOiAxMHB4O1xyXG4gICAgICAgICAgb3BhY2l0eTogMDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6Zm9jdXMge1xyXG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogM3B4IHNvbGlkICRjb2xvci10ZWFsLWRhcms7XHJcblxyXG4gICAgICAgICAgfiAuZm9ybV9fbGFiZWwge1xyXG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIEBpbmNsdWRlIHBsYWNlaG9sZGVyIHtcclxuICAgICAgICAgICAgY29sb3I6ICNmZmZmZmY7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOnZhbGlkIHtcclxuXHJcbiAgICAgICAgICB+IC5mb3JtX19sYWJlbCB7XHJcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAmW3R5cGU9cmFkaW9dLFxyXG4gICAgICAmW3R5cGU9Y2hlY2tib3hdIHtcclxuXHJcbiAgICAgICAgfiAuZm9ybV9fbGFiZWwge1xyXG4gICAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24oIHJlbGF0aXZlLCAxcHggbnVsbCBudWxsIG51bGwgKTtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogZW0oMTQpO1xyXG4gICAgICAgICAgY29sb3I6ICRjb2xvci10ZXh0O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgJi5mb3JtX19pbnB1dC0tc2VsZWN0IHtcclxuICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XHJcbiAgICAgICAgQGluY2x1ZGUgc2l6ZSgxMDAlIGF1dG8pO1xyXG4gICAgICAgIEBpbmNsdWRlIHBhZGRpbmcoMWVtIC41ZW0gMWVtIC41ZW0pO1xyXG4gICAgICAgIEBpbmNsdWRlIG1hcmdpbiguNWVtIG51bGwgbnVsbCBudWxsKTtcclxuICAgICAgICBjb2xvcjogJGNvbG9yLXRleHQ7XHJcbiAgICAgICAgZm9udC1zaXplOiBlbSgxNCk7XHJcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwsIDI1MG1zLCAkZWFzZS1pbi1xdWludCk7XHJcbiAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICAgIGJvcmRlci1ib3R0b206IDNweCBzb2xpZCAkY29sb3ItZ3JleS1saWdodDtcclxuICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIC5mb3JtX19zdWJtaXQge1xyXG4gICAgICBAaW5jbHVkZSB4LWJ1dHRvbigkZ2x5cGgtLWFycm93LS1yaWdodCwgZmFsc2UsICdkYXJrJyk7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIG1lZGlhKCRtcS1kZXNrKSB7XHJcblxyXG4gICAgICAuZm9ybV9faW5uZXIge1xyXG4gICAgICAgIEBpbmNsdWRlIG1hcmdpbihudWxsIDAgbnVsbCAwKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5mb3JtLS1wcm9kdWN0IHtcclxuICAgIEBpbmNsdWRlIHBvc2l0aW9uKHJlbGF0aXZlLCBudWxsIG51bGwgbnVsbCBudWxsKTtcclxuICAgIEBpbmNsdWRlIHBhZGRpbmcoIDIuNWVtIG51bGwgNGVtIG51bGwgKTtcclxuICAgIEBpbmNsdWRlIG91dGVyLWNvbnRhaW5lcihlbSg3NTApKTtcclxuXHJcbiAgICAuZm9ybV9faW5uZXIge1xyXG4gICAgICBAaW5jbHVkZSBtYXJnaW4obnVsbCAxZW0gbnVsbCAxZW0pO1xyXG4gICAgfVxyXG5cclxuICAgIC5mb3JtX19jb3B5IHtcclxuICAgICAgQGluY2x1ZGUgcGFkZGluZygxZW0gMWVtIDAgMWVtKTtcclxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG5cclxuICAgICAgcCB7XHJcbiAgICAgICAgQGluY2x1ZGUgbWFyZ2luKDFlbSBudWxsIG51bGwgbnVsbCk7XHJcbiAgICAgICAgZm9udC1zaXplOiBlbSggMjAgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5mb3JtX19mb3JtIHtcclxuICAgICAgQGluY2x1ZGUgcGFkZGluZygxZW0gMWVtIDFlbSAxZW0pO1xyXG4gICAgfVxyXG5cclxuICAgIC5mb3JtX19maWVsZCB7XHJcbiAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKHJlbGF0aXZlLCBudWxsIG51bGwgbnVsbCBudWxsKTtcclxuICAgICAgQGluY2x1ZGUgbWFyZ2luKDFlbSBudWxsIG51bGwgbnVsbCk7XHJcblxyXG4gICAgICAmOmZpcnN0LWNoaWxkIHtcclxuICAgICAgICBAaW5jbHVkZSBtYXJnaW4oMWVtIG51bGwgbnVsbCBudWxsKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJi5mb3JtX19maWVsZC0tZm9yZ290LXBhc3N3b3JkIHtcclxuICAgICAgICBAaW5jbHVkZSBtYXJnaW4oLjI1ZW0gbnVsbCBudWxsIG51bGwpO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogZW0oMTIpO1xyXG5cclxuICAgICAgICAuZm9ybV9fbGluayB7XHJcbiAgICAgICAgICBjb2xvcjogJGNvbG9yLXRlYWwtZGFyaztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYuZm9ybV9fZmllbGQtLXNpZ24taW4ge1xyXG4gICAgICAgIEBpbmNsdWRlIG1hcmdpbiguNWVtIG51bGwgbnVsbCBudWxsKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJi5mb3JtX19maWVsZC0tb3RoZXIge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuZm9ybV9fZmllbGRzZXQge1xyXG4gICAgICBAaW5jbHVkZSBtYXJnaW4oMmVtIG51bGwgbnVsbCBudWxsKTtcclxuXHJcbiAgICAgICY6Zmlyc3QtY2hpbGQge1xyXG4gICAgICAgIEBpbmNsdWRlIG1hcmdpbigxZW0gbnVsbCBudWxsIG51bGwpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmZvcm1fX2xlZ2VuZCB7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICB9XHJcblxyXG4gICAgLmZvcm1fX2lucHV0IHtcclxuICAgICAgJlt0eXBlPXRleHRdLFxyXG4gICAgICAmW3R5cGU9ZW1haWxdLFxyXG4gICAgICAmW3R5cGU9cGFzc3dvcmRdIHtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgc2l6ZSgxMDAlIGF1dG8pO1xyXG4gICAgICAgIEBpbmNsdWRlIHBhZGRpbmcoMWVtIC41ZW0gMWVtIC41ZW0pO1xyXG4gICAgICAgIEBpbmNsdWRlIG1hcmdpbiguNWVtIG51bGwgbnVsbCBudWxsKTtcclxuICAgICAgICBjb2xvcjogJGNvbG9yLXRleHQ7XHJcbiAgICAgICAgZm9udC1zaXplOiBlbSgxNCk7XHJcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwsIDI1MG1zLCAkZWFzZS1pbi1xdWludCk7XHJcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogM3B4IHNvbGlkICRjb2xvci1ncmV5LWxpZ2h0O1xyXG4gICAgICAgIEBpbmNsdWRlIHgtYmFja2dyb3VuZCggJGNvbG9yLWdyZXktbGlnaHQsIDEgKTtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgcGxhY2Vob2xkZXIge1xyXG4gICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihjb2xvciwgMjUwbXMsICRlYXNlLWluLW91dC1xdWFkKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIH4gLmZvcm1fX2xhYmVsIHtcclxuICAgICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAtMWVtIDAgbnVsbCBudWxsKTtcclxuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgY29sb3I6ICRjb2xvci10ZWFsO1xyXG4gICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihvcGFjaXR5LCAyNTBtcywgJGVhc2UtaW4tb3V0LXF1YWQpO1xyXG4gICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbiAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgICAgICAgZm9udC1zaXplOiAxMHB4O1xyXG4gICAgICAgICAgb3BhY2l0eTogMDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6Zm9jdXMge1xyXG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogM3B4IHNvbGlkICRjb2xvci10ZWFsO1xyXG4gICAgICAgICAgQGluY2x1ZGUgeC1iYWNrZ3JvdW5kKCAkY29sb3ItZ3JleS1saWdodCwgMCApO1xyXG5cclxuICAgICAgICAgIH4gLmZvcm1fX2xhYmVsIHtcclxuICAgICAgICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBAaW5jbHVkZSBwbGFjZWhvbGRlciB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmZmZmO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjp2YWxpZCB7XHJcblxyXG4gICAgICAgICAgfiAuZm9ybV9fbGFiZWwge1xyXG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5mb3JtX19zdWJtaXQge1xyXG4gICAgICBAaW5jbHVkZSB4LWJ1dHRvbigkZ2x5cGgtLWFycm93LS1yaWdodCwgZmFsc2UpO1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgYm9yZGVyLXJhZGl1czoxMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5mb3JtX19idXR0b24ge1xyXG4gICAgICBAaW5jbHVkZSB4LWJ1dHRvbigkZ2x5cGgtLWFycm93LS1yaWdodCwgZmFsc2UpO1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgkbXEtbGFwKSB7XHJcblxyXG4gICAgICAuZm9ybV9fZm9ybSB7XHJcbiAgICAgICAgQGluY2x1ZGUgbWFyZ2luKG51bGwgNGVtIG51bGwgNGVtKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLmZvcm1fX3N1Ym1pdCB7XHJcbiAgICAgICAgQGluY2x1ZGUgc2l6ZSggNDglIGF1dG8gKTtcclxuICAgICAgICBmbG9hdDogbGVmdDtcclxuICAgICAgICBib3JkZXItcmFkaXVzOjEwcHg7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5mb3JtX19idXR0b24ge1xyXG4gICAgICAgIEBpbmNsdWRlIHNpemUoIDQ4JSBhdXRvICk7XHJcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJG1xLWRlc2spIHtcclxuXHJcbiAgICAgIC5mb3JtX19pbm5lciB7XHJcbiAgICAgICAgQGluY2x1ZGUgbWFyZ2luKG51bGwgMCBudWxsIDApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLmZvcm0tLXNwbHVuayB7XHJcblxyXG4gICAgLmZvcm1fX2lucHV0IHtcclxuICAgICAgJlt0eXBlPXRleHRdLFxyXG4gICAgICAmW3R5cGU9ZW1haWxdLFxyXG4gICAgICAmW3R5cGU9cGFzc3dvcmRdIHtcclxuXHJcbiAgICAgICAgfiAuZm9ybV9fbGFiZWwge1xyXG4gICAgICAgICAgY29sb3I6ICRjb2xvci1ibGFjaztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6Zm9jdXMge1xyXG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogM3B4IHNvbGlkICRjb2xvci1ibGFjaztcclxuICAgICAgICAgIEBpbmNsdWRlIHgtYmFja2dyb3VuZCggJGNvbG9yLWdyZXktbGlnaHQsIDAgKTtcclxuXHJcbiAgICAgICAgICB+IC5mb3JtX19sYWJlbCB7XHJcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgQGluY2x1ZGUgcGxhY2Vob2xkZXIge1xyXG4gICAgICAgICAgICBjb2xvcjogI2ZmZmZmZjtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6dmFsaWQge1xyXG5cclxuICAgICAgICAgIH4gLmZvcm1fX2xhYmVsIHtcclxuICAgICAgICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuZm9ybV9fc3VibWl0IHtcclxuICAgICAgQGluY2x1ZGUgeC1idXR0b24oJGdseXBoLS1hcnJvdy0tcmlnaHQsIGZhbHNlKTtcclxuICAgICAgQGluY2x1ZGUgeC1iYWNrZ3JvdW5kKCAjMDAwLCAxICk7XHJcbiAgICAgIHdpZHRoOiA0OCU7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgLmZvcm1fX2J1dHRvbiB7XHJcbiAgICAgIEBpbmNsdWRlIHgtYnV0dG9uKCRnbHlwaC0tYXJyb3ctLXJpZ2h0LCBmYWxzZSk7XHJcbiAgICAgIEBpbmNsdWRlIHgtYmFja2dyb3VuZCggIzAwMCwgMSApO1xyXG4gICAgICB3aWR0aDogNDglO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5mb3JtLS1zcGxpdCB7XHJcblxyXG4gICAgLmZvcm1fX2Zvcm0ge1xyXG4gICAgICBAaW5jbHVkZSBwYWRkaW5nKDAgMCAwIDApO1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIG1lZGlhKCRtcS1sYXAtZG93bikgeyBcclxuXHJcbiAgICAgIC5wcm9ncmVzcyB7XHJcbiAgICAgICAgQGluY2x1ZGUgbWFyZ2luKC0yLjVlbSBudWxsIG51bGwgbnVsbCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgkbXEtZGVzaykge1xyXG4gICAgICBtYXgtd2lkdGg6IG5vbmU7IFxyXG5cclxuICAgICAgLmZvcm1fX2Zvcm0ge1xyXG4gICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5mb3JtX19maWVsZHNldCB7XHJcbiAgICAgICAgQGluY2x1ZGUgcGFkZGluZygxZW0gMWVtIDFlbSAxZW0pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAuZm9ybV9fcmVnaW9uIHtcclxuXHJcbiAgICAgICAgJjpudGgtY2hpbGQoMSkge1xyXG4gICAgICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDEyKTtcclxuXHJcbiAgICAgICAgICAuZm9ybV9fZmllbGRzZXQge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBwYWRkaW5nKDAgMCAwIDApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjpudGgtY2hpbGQoMikge1xyXG4gICAgICAgICAgQGluY2x1ZGUgcGFkZGluZyg1ZW0gbnVsbCA1ZW0gbnVsbCk7XHJcbiAgICAgICAgICBAaW5jbHVkZSBzaGlmdCgxKTtcclxuICAgICAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygxMSk7XHJcbiAgICAgICAgICBAaW5jbHVkZSBvbWVnYTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5mb3JtX19maWVsZCB7XHJcblxyXG4gICAgICAgICYuZm9ybV9fZmllbGQtLXN1Ym1pdCB7XHJcbiAgICAgICAgICBAaW5jbHVkZSBtYXJnaW4oMCBudWxsIG51bGwgbnVsbCk7XHJcbiAgICAgICAgICBAaW5jbHVkZSBwYWRkaW5nKG51bGwgMWVtIG51bGwgMWVtKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5mb3JtX19zdWJtaXQge1xyXG4gICAgICAgIEBpbmNsdWRlIG1hcmdpbiguNWVtIG51bGwgbnVsbCBudWxsKTtcclxuICAgICAgICBib3JkZXItcmFkaXVzOjEwcHg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICYuZm9ybS0tbmV3c2xldHRlciB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG5cclxuICAgIEBpbmNsdWRlIG1lZGlhKCRtcS1kZXNrKSB7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICBAaW5jbHVkZSBtYXJnaW4oMi41ZW0gbnVsbCBudWxsIG51bGwpO1xyXG4gICAgICBiYWNrZ3JvdW5kOiBsaWdodGVuKCRjb2xvci1ncmV5LWxpZ2h0LCAzJSk7XHJcbiAgICAgIEBpbmNsdWRlIHBhZGRpbmcoMS43NWVtIDEuNzVlbSAxLjc1ZW0gMS43NWVtKTtcclxuXHJcbiAgICAgIC5mb3JtX19oZWFkaW5nIHtcclxuICAgICAgICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogZW0oMTgpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAuZm9ybV9fY29weSB7XHJcbiAgICAgICAgQGluY2x1ZGUgbWFyZ2luKCAxZW0gbnVsbCBudWxsIG51bGwgKTtcclxuICAgICAgICBmb250LXNpemU6IGVtKCAxNCApO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAuZm9ybV9fZm9ybSB7XHJcbiAgICAgICAgQGluY2x1ZGUgbWFyZ2luKDFlbSBudWxsIG51bGwgbnVsbCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5mb3JtX19maWVsZCB7XHJcbiAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24oIHJlbGF0aXZlLCBudWxsIG51bGwgbnVsbCBudWxsICk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5mb3JtX19pbnB1dCB7XHJcbiAgICAgICAgJlt0eXBlPXRleHRdLFxyXG4gICAgICAgICZbdHlwZT1lbWFpbF0sXHJcbiAgICAgICAgJlt0eXBlPXBhc3N3b3JkXSB7XHJcblxyXG4gICAgICAgICAgQGluY2x1ZGUgc2l6ZSgxMDAlIGF1dG8pO1xyXG4gICAgICAgICAgQGluY2x1ZGUgcGFkZGluZygxZW0gLjVlbSAxZW0gLjVlbSk7XHJcbiAgICAgICAgICBAaW5jbHVkZSBtYXJnaW4oLjVlbSBudWxsIG51bGwgbnVsbCk7XHJcbiAgICAgICAgICBjb2xvcjogJGNvbG9yLXRleHQ7XHJcbiAgICAgICAgICBmb250LXNpemU6IGVtKDE0KTtcclxuICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsLCAyNTBtcywgJGVhc2UtaW4tcXVpbnQpO1xyXG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogM3B4IHNvbGlkICRjb2xvci1ncmV5LWxpZ2h0O1xyXG4gICAgICAgICAgQGluY2x1ZGUgeC1iYWNrZ3JvdW5kKCAkY29sb3Itd2hpdGUsIDEgKTtcclxuXHJcbiAgICAgICAgICBAaW5jbHVkZSBwbGFjZWhvbGRlciB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oY29sb3IsIDI1MG1zLCAkZWFzZS1pbi1vdXQtcXVhZCk7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgfiAuZm9ybV9fbGFiZWwge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgLTFlbSAwIG51bGwgbnVsbCk7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICBjb2xvcjogJGNvbG9yLXRlYWw7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24ob3BhY2l0eSwgMjUwbXMsICRlYXNlLWluLW91dC1xdWFkKTtcclxuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTBweDtcclxuICAgICAgICAgICAgb3BhY2l0eTogMDtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAmOmZvY3VzIHtcclxuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogM3B4IHNvbGlkICRjb2xvci10ZWFsO1xyXG5cclxuICAgICAgICAgICAgfiAuZm9ybV9fbGFiZWwge1xyXG4gICAgICAgICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIEBpbmNsdWRlIHBsYWNlaG9sZGVyIHtcclxuICAgICAgICAgICAgICBjb2xvcjogI2ZmZmZmZjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICY6dmFsaWQge1xyXG5cclxuICAgICAgICAgICAgfiAuZm9ybV9fbGFiZWwge1xyXG4gICAgICAgICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5mb3JtX19zdWJtaXQge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogZW0oIDE0ICk7XHJcbiAgICAgICAgQGluY2x1ZGUgeC1idXR0b24obm9uZSwgZmFsc2UpO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICAmLmZvcm0tLXNpbmdsZS1saW5lIHtcclxuICAgIEBpbmNsdWRlIHBhZGRpbmcobnVsbCBudWxsIDEwZW0gbnVsbCk7XHJcblxyXG4gICAgLmZvcm1fX2lubmVyIHtcclxuICAgICAgQGluY2x1ZGUgbWFyZ2luKG51bGwgbnVsbCBudWxsIG51bGwpO1xyXG4gICAgICBAaW5jbHVkZSB4LWNvbnRhaW5lcigxMDAwcHgpO1xyXG4gICAgfVxyXG5cclxuICAgIC5mb3JtX19mb3JtIHtcclxuICAgICAgQGluY2x1ZGUgcGFkZGluZygwZW0gMGVtIDBlbSAwZW0pO1xyXG4gICAgfVxyXG5cclxuICAgIC5mb3JtX19maWVsZCB7XHJcbiAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKHJlbGF0aXZlLCBudWxsIG51bGwgbnVsbCBudWxsKTtcclxuICAgICAgQGluY2x1ZGUgbWFyZ2luKDEuNWVtIG51bGwgbnVsbCBudWxsKTtcclxuXHJcbiAgICAgICYuZm9ybV9fZmllbGQtLXNpbmdsZS1saW5lIHtcclxuXHQgICAgICBib3JkZXI6IDFweCBzb2xpZDtcclxuXHRcdCAgaGVpZ2h0OiAzMHB4O1xyXG5cdFx0ICB3aWR0aDogODAlO1xyXG5cdFx0ICBwYWRkaW5nLXJpZ2h0OiAxMDBweDtcclxuXHQgfVxyXG5cclxuICAgICAgJi5mb3JtX19maWVsZC0tc2luZ2xlLWxpbmUtYnV0dG9uIHtcclxuXHQgICAgICBib3JkZXI6IDFweCBzb2xpZDtcclxuXHRcdCAgaGVpZ2h0OiAzMHB4O1xyXG5cdFx0ICB3aWR0aDogMTAwcHg7XHJcblx0XHQgIHBhZGRpbmctbGVmdDogLTEwMHB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi5tZW51IHtcblxuICAmLm1lbnUtLWxvbmdpdHVkZSB7XG5cbiAgICAubWVudV9fbGlzdCB7XG4gICAgICBAaW5jbHVkZSBwYWRkaW5nKCAxZW0gbnVsbCAxZW0gbnVsbCApO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgIC5tZW51X19pdGVtIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIC5tZW51X19saW5rIHtcbiAgICAgIGNvbG9yOiAkY29sb3ItdGVhbDtcbiAgICAgIGZvbnQtc2l6ZTogZW0oMjApO1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBAaW5jbHVkZSBwYWRkaW5nKCAuNWVtIG51bGwgLjVlbSBudWxsICk7XG5cbiAgICAgICY6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSB4LWljb24oJGdseXBoLS1hcnJvdy0tcmlnaHQsIDI4cHgsICRjb2xvci10ZWFsKTtcbiAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24ocmVsYXRpdmUsIDRweCBudWxsIG51bGwgMnB4KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSggJG1xLWRlc2sgKSB7XG5cbiAgICAgIC5tZW51X19pdGVtIHtcbiAgICAgICAgQGluY2x1ZGUgbWFyZ2luKCBudWxsIDEuNWVtIG51bGwgMS41ZW0gKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYubWVudS0taGVhZGVyIHtcblxuICAgIC5tZW51X19pdGVtIHtcblxuICAgICAgJjpudGgtY2hpbGQoMSkge1xuXG4gICAgICAgIC5tZW51X19saW5rIHtcbiAgICAgICAgICBAaW5jbHVkZSB4LWJhY2tncm91bmQoJGNvbG9yLW9yYW5nZSk7XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLW9yYW5nZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmOm50aC1jaGlsZCgyKSB7XG5cbiAgICAgICAgLm1lbnVfX2xpbmsge1xuICAgICAgICAgIEBpbmNsdWRlIHgtYmFja2dyb3VuZCgkY29sb3ItYmxhY2spO1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci1ibGFjaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5tZW51X19saW5rIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgQGluY2x1ZGUgbWFyZ2luKC41ZW0gMWVtIC41ZW0gMWVtKTtcbiAgICAgIEBpbmNsdWRlIHBhZGRpbmcoLjVlbSAxZW0gLjVlbSAxZW0pO1xuICAgICAgY29sb3I6ICRjb2xvci10ZXh0LWludmVydDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAxMDBtcyAkZWFzZS1pbi1vdXQtcXVhZCk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJG1xLWxhcC1kb3duKSB7XG4gICAgICBAaW5jbHVkZSBtYXJnaW4oMWVtIG51bGwgbnVsbCBudWxsKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkbXEtZGVzaykge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBAaW5jbHVkZSB4LWJhY2tncm91bmQoJGNvbG9yLWdyZXktZGFyayk7XG4gICAgICBAaW5jbHVkZSBwYWRkaW5nKG51bGwgbnVsbCBudWxsIDFlbSk7XG5cbiAgICAgIC5tZW51X19pbm5lciB7XG4gICAgICAgIEBpbmNsdWRlIHNpemUoYXV0byAkaGVpZ2h0LWhlYWRlci1kZXNrKTtcbiAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIH1cblxuICAgICAgLm1lbnVfX2l0ZW0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIEBpbmNsdWRlIG1hcmdpbigwIC41ZW0gMCAuNWVtKTtcblxuICAgICAgICAmOmhvdmVyIHtcblxuICAgICAgICAgICY6bnRoLWNoaWxkKDEpIHtcblxuICAgICAgICAgICAgLm1lbnVfX2xpbmsge1xuICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGVuKCRjb2xvci1vcmFuZ2UsIDIwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJjpudGgtY2hpbGQoMikge1xuXG4gICAgICAgICAgICAubWVudV9fbGluayB7XG4gICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0ZW4oJGNvbG9yLWJsYWNrLCAyMCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAubWVudV9fbGluayB7XG4gICAgICAgIEBpbmNsdWRlIG1hcmdpbigwIDAgMCAwKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLm1lbnUtLWZvb3RlciB7XG4gICAgQGluY2x1ZGUgcG9zaXRpb24ocmVsYXRpdmUsIG51bGwgbnVsbCBudWxsIG51bGwpO1xuICAgIEBpbmNsdWRlIG1hcmdpbigxZW0gbnVsbCBudWxsIG51bGwpO1xuXG4gICAgLm1lbnVfX2xpc3Qge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgIC5tZW51X19pdGVtIHtcblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgQGluY2x1ZGUgbWFyZ2luKDFlbSBudWxsIG51bGwgbnVsbCk7XG5cbiAgICAgICAgLm1lbnVfX2xpbmsge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5tZW51X19saW5rIHtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIGNvbG9yOiAkY29sb3ItdGV4dC1pbnZlcnQ7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJG1xLWxhcCkge1xuXG4gICAgICAubWVudV9faXRlbSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgIEBpbmNsdWRlIHBhZGRpbmcobnVsbCAuNWVtIG51bGwgLjVlbSk7XG4gICAgICAgICAgY29sb3I6ICRjb2xvci10ZXh0LWludmVydDtcbiAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIH1cblxuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcblxuICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJi5tZW51LS1zb2NpYWwge1xuXG4gICAgLm1lbnVfX2xpc3Qge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgIC5tZW51X19pdGVtIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgJi5tZW51X19pdGVtLS1mYWNlYm9vayB7XG5cbiAgICAgICAgLm1lbnVfX2xpbmsge1xuXG4gICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgeC1pY29uKCRnbHlwaC0tZmFjZWJvb2ssIDI0cHgsICRjb2xvci10ZXh0LWludmVydCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYubWVudV9faXRlbS0tdHdpdHRlciB7XG5cbiAgICAgICAgLm1lbnVfX2xpbmsge1xuXG4gICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgeC1pY29uKCRnbHlwaC0tdHdpdHRlciwgMjRweCwgJGNvbG9yLXRleHQtaW52ZXJ0KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5tZW51X19pdGVtLS1nb29nbGVwbHVzIHtcblxuICAgICAgICAubWVudV9fbGluayB7XG5cbiAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB4LWljb24oJGdseXBoLS1nb29nbGUtcGx1cywgMjRweCwgJGNvbG9yLXRleHQtaW52ZXJ0KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5tZW51X19pdGVtLS1lbWFpbCB7XG5cbiAgICAgICAgLm1lbnVfX2xpbmsge1xuXG4gICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgeC1pY29uKCRnbHlwaC0tbWFpbCwgMjRweCwgJGNvbG9yLXRleHQtaW52ZXJ0KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWVudV9fbGluayB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBmb250LXNpemU6IDA7XG5cbiAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgQGluY2x1ZGUgcGFkZGluZyhudWxsIC4yNWVtIG51bGwgLjI1ZW0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYubWVudS0tYWJvdXQtdXMge1xuICAgIEBpbmNsdWRlIG1lbnUoaW50ZXJuYWwpO1xuICB9XG5cbiAgJi5tZW51LS1oZWxwIHtcbiAgICBAaW5jbHVkZSBtZW51KGludGVybmFsKTtcblxuICAgIC5tZW51X19pdGVtIHtcblxuICAgICAgJjpiZWZvcmUge1xuICAgICAgICBAaW5jbHVkZSB4LWljb24oJGdseXBoLS1mb2xkZXIsIDE4cHgsICRjb2xvci10ZWFsLWRhcmspO1xuICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbihyZWxhdGl2ZSwgMnB4IG51bGwgbnVsbCBudWxsKTtcbiAgICAgIH1cblxuICAgICAgJi5tZW51X19pdGVtLS10b2dnbGVkIHtcblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgQGluY2x1ZGUgeC1pY29uKCRnbHlwaC0tZm9sZGVyLS1vcGVuLCAxOHB4LCAkY29sb3ItdGVhbC1kYXJrKTtcbiAgICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbihyZWxhdGl2ZSwgMnB4IG51bGwgbnVsbCBudWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5zdWJtZW51IHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLnN1Ym1lbnUge1xuXG4gICYuc3VibWVudS0taGVscCB7XG4gICAgZGlzcGxheTogbm9uZTtcblxuICAgIC5zdWJtZW51X19pdGVtIHtcblxuICAgICAgJi5zdWJtZW51X19pdGVtLS1hY3RpdmUge1xuXG4gICAgICAgIC5zdWJtZW51X19saW5rIHtcbiAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYuc3VibWVudV9faXRlbS0tdG9nZ2xlZCwgJi5zdWJtZW51X19pdGVtLS1hY3RpdmUge1xuXG4gICAgICAgIC5zdWJzdWJtZW51IHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5zdWJtZW51X19saW5rIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIEBpbmNsdWRlIHBhZGRpbmcoLjVlbSBudWxsIC41ZW0gbnVsbCk7XG4gICAgICBjb2xvcjogJGNvbG9yLXRlYWwtZGFyaztcbiAgICAgIGZvbnQtc2l6ZTogZW0oMTQpO1xuICAgIH1cbiAgfVxufVxuIiwiLnN1YnN1Ym1lbnUge1xyXG5cclxuICAmLnN1YnN1Ym1lbnUtLWhlbHAge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICAgIEBpbmNsdWRlIHBhZGRpbmcobnVsbCBudWxsIG51bGwgLjVlbSk7XHJcblxyXG4gICAgLnN1YnN1Ym1lbnVfX2l0ZW0ge1xyXG5cclxuICAgICAgJi5zdWJzdWJtZW51X19pdGVtLS1hY3RpdmUge1xyXG5cclxuICAgICAgICAuc3Vic3VibWVudV9fbGluayB7XHJcbiAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5zdWJzdWJtZW51X19saW5rIHtcclxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICBAaW5jbHVkZSBwYWRkaW5nKC41ZW0gbnVsbCAuNWVtIG51bGwpO1xyXG4gICAgICBjb2xvcjogJGNvbG9yLXRlYWwtZGFyaztcclxuICAgICAgZm9udC1zaXplOiBlbSgxMyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLnN1YnN1Ym1lbnUtLWFjdGl2ZSB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICB9XHJcbn1cclxuIiwiLmNhcm91c2VsIHtcbiAgQGluY2x1ZGUgcGFkZGluZygyLjVlbSBudWxsIDIuNWVtIG51bGwpO1xuICBAaW5jbHVkZSB4LWJhY2tncm91bmQoICMwMDAsIDEgKTtcblxuICAuY2Fyb3VzZWxfX2lubmVyIHtcbiAgICBAaW5jbHVkZSBwb3NpdGlvbihyZWxhdGl2ZSwgbnVsbCBudWxsIG51bGwgbnVsbCk7XG4gICAgQGluY2x1ZGUgb3V0ZXItY29udGFpbmVyKDgwJSk7XG4gIH1cblxuICAuY2Fyb3VzZWxfX2J1dHRvbiB7XG4gICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVkoLTUwJSkpO1xuICAgIGZvbnQtc2l6ZTogMDtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDE1MG1zICRlYXNlLWluLW91dC1xdWFkKTtcbiAgICB9XG5cbiAgICAmLmNhcm91c2VsX19idXR0b24tLXByZXZpb3Vze1xuICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDUwJSBudWxsIG51bGwgLTQwcHgpO1xuICAgICAgXG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIEBpbmNsdWRlIHgtaWNvbigkZ2x5cGgtLWFycm93LS1sZWZ0LCA1MHB4LCAkY29sb3ItZ3JleSk7XG4gICAgICB9XG5cbiAgICAgICY6aG92ZXIge1xuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICBjb2xvcjogJGNvbG9yLXRlYWw7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmNhcm91c2VsX19idXR0b24tLW5leHQge1xuICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDUwJSAtNDBweCBudWxsIG51bGwpO1xuICAgICAgXG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIEBpbmNsdWRlIHgtaWNvbigkZ2x5cGgtLWFycm93LS1yaWdodCwgNTBweCwgJGNvbG9yLWdyZXkpO1xuICAgICAgfVxuXG4gICAgICAmOmhvdmVyIHtcblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgY29sb3I6ICRjb2xvci10ZWFsO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnNsaWNrLXNsaWRlIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICB9XG5cbiAgLnNsaWNrLWRvdHMge1xuICAgIEBpbmNsdWRlIG1hcmdpbigxZW0gbnVsbCBudWxsIG51bGwpO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIGxpIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgJi5zbGljay1hY3RpdmUsXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgXG4gICAgICAgIGJ1dHRvbiB7XG5cbiAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItdGVhbDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGNvbG9yLXRlYWw7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAxNTBtcyAkZWFzZS1pbi1vdXQtcXVhZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgYnV0dG9uIHtcbiAgICAgIGZvbnQtc2l6ZTogMDtcbiAgICAgIEBpbmNsdWRlIHBhZGRpbmcobnVsbCAycHggbnVsbCAycHgpO1xuXG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKHJlbGF0aXZlLCBudWxsIG51bGwgbnVsbCBudWxsKTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci1ncmV5O1xuICAgICAgICBAaW5jbHVkZSBzaXplKDEwcHggMTBweCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmNhcm91c2VsX19jdGEge1xuICAgIEBpbmNsdWRlIHgtYnV0dG9uKCRnbHlwaC0tYXJyb3ctLWRvd24sIHRydWUpOyBcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCRtcS1sYXApIHtcblxuICAgIC5jYXJvdXNlbF9fYnV0dG9uIHtcblxuICAgICAgJi5jYXJvdXNlbF9fYnV0dG9uLS1wcmV2aW91cyB7XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgIGZvbnQtc2l6ZTogNzBweDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLmNhcm91c2VsX19idXR0b24tLW5leHQge1xuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICBmb250LXNpemU6IDcwcHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgkbXEtZGVzaykge1xuXG4gICAgLmNhcm91c2VsX19idXR0b24ge1xuXG4gICAgICAmLmNhcm91c2VsX19idXR0b24tLXByZXZpb3VzIHtcbiAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIG51bGwgbnVsbCBudWxsIC04MHB4KTtcbiAgICAgIH1cblxuICAgICAgJi5jYXJvdXNlbF9fYnV0dG9uLS1uZXh0IHtcbiAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIG51bGwgLTgwcHggbnVsbCBudWxsKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi5zbGlkZSB7XG5cbiAgLnNsaWRlX19pbm5lciB7XG4gICAgQGluY2x1ZGUgb3V0ZXItY29udGFpbmVyKDUwMHB4KTtcbiAgfVxuXG4gIC5zbGlkZV9faGVhZGluZyB7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBmb250LXNpemU6IGVtKDI0KTtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgIGNvbG9yOiAkY29sb3ItZ3JleS1kYXJrO1xuICB9XG5cbiAgLnNsaWRlX19jb3B5IHtcbiAgICBAaW5jbHVkZSBtYXJnaW4oMWVtIG51bGwgMWVtIG51bGwpO1xuICAgIEBpbmNsdWRlIHgtY29weTtcbiAgICBjb2xvcjogJGNvbG9yLXRleHQtaW52ZXJ0O1xuICB9XG5cbiAgLnNsaWRlX19jdGEge1xuXG4gICAgQGluY2x1ZGUgeC1idXR0b24oJGdseXBoLS1hcnJvdy0tcmlnaHQsIHRydWUpO1xuICB9XG5cbiAgLnNsaWRlX19maWd1cmUge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gIC5zbGlkZV9fbGluayB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG5cbiAgLnNsaWRlX19pbWFnZSB7XG4gICAgQGluY2x1ZGUgbWFyZ2luKDFlbSBudWxsIG51bGwgbnVsbCk7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cblxuICAuc2xpZGVfX2NvbnRlbnQge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIGltZyB7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgaDIge1xuICAgICAgZm9udC1zaXplOiBlbSggMjggKTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgIH1cblxuICAgIGVtIHtcbiAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICB9XG5cbiAgICBwIHtcbiAgICAgIEBpbmNsdWRlIG1hcmdpbiggLjVlbSBudWxsIC41ZW0gbnVsbCApO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCRtcS1sYXApIHtcblxuICAgIC5zbGlkZV9fY29udGVudCB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgIGltZyB7XG4gICAgICAgIEBpbmNsdWRlIG1hcmdpbiggbnVsbCBhdXRvIG51bGwgYXV0byApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5zbGlkZV9faGVhZGluZyB7XG4gICAgICBmb250LXNpemU6IGVtKDMyKTtcbiAgICB9XG5cbiAgICAuc2xpZGVfX2N0YSB7XG4gICAgICBAaW5jbHVkZSB4LWJ1dHRvbigkZ2x5cGgtLWFycm93LS1yaWdodCwgZmFsc2UpO1xuICAgIH1cblxuICAgIC5zbGlkZV9faW1hZ2Uge1xuICAgICAgQGluY2x1ZGUgbWFyZ2luKDJlbSBudWxsIG51bGwgbnVsbCk7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJG1xLWRlc2spIHtcblxuICAgIC5zbGlkZV9faW5uZXIge1xuICAgICAgQGluY2x1ZGUgb3V0ZXItY29udGFpbmVyKDEwMDBweCk7XG4gICAgICBAaW5jbHVkZSBwb3NpdGlvbihyZWxhdGl2ZSwgbnVsbCBudWxsIG51bGwgbnVsbCk7XG4gICAgICBAaW5jbHVkZSBzaXplKDEwMCUgMzAwcHgpO1xuICAgIH1cblxuICAgIC5zbGlkZV9fY29udGVudCB7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDUwJSAwIG51bGwgbnVsbCk7XG4gICAgICBAaW5jbHVkZSBwYWRkaW5nKG51bGwgMWVtIG51bGwgbnVsbCk7XG4gICAgICBAaW5jbHVkZSBzaXplKDYwJSBhdXRvKTtcbiAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVZKC01MCUpKTtcblxuICAgICAgaW1nIHtcbiAgICAgICAgQGluY2x1ZGUgbWFyZ2luKCBudWxsIDAgbnVsbCAwICk7XG4gICAgICB9XG5cbiAgICAgIGgxIHtcbiAgICAgICAgZm9udC1zaXplOiBlbSggMzYgKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgIH1cblxuICAgICAgaDIge1xuICAgICAgICBmb250LXNpemU6IGVtKCAzNiApO1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5zbGlkZV9fZmlndXJlIHtcbiAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCA1MCUgbnVsbCBudWxsIDApO1xuICAgICAgQGluY2x1ZGUgc2l6ZSg0MCUgYXV0byk7XG4gICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWSgtNTAlKSk7XG4gICAgfVxuICB9XG5cbiAgJi5zbGlkZS0tbm8taW1hZ2Uge1xuICAgIFxuICAgIEBpbmNsdWRlIG1lZGlhKCAkbXEtZGVzayApIHtcblxuICAgICAgLnNsaWRlX19maWd1cmUge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuXG4gICAgICAuc2xpZGVfX2NvbnRlbnQge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKCBhYnNvbHV0ZSwgNTAlIDAgbnVsbCAwICk7XG4gICAgICAgIEBpbmNsdWRlIHNpemUoIDEwMCUgYXV0byApO1xuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgQGluY2x1ZGUgbWFyZ2luKCBudWxsIGF1dG8gbnVsbCBhdXRvICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLmhvbWUge1xuXG4gIEBpbmNsdWRlIG1lZGlhKCAkbXEtZGVzayApIHtcblxuICAgIC5zbGlkZSB7XG5cbiAgICAgIC5zbGlkZV9faW5uZXIge1xuICAgICAgICBAaW5jbHVkZSBzaXplKDEwMCUgNDAwcHgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLmNvbGxlY3Rpb24ge1xyXG5cclxuICAmLmNvbGxlY3Rpb24tLXBsYW5zIHtcclxuICAgIEBpbmNsdWRlIGNvbGxlY3Rpb24oc2xpY2spO1xyXG4gICAgQGluY2x1ZGUgeC1iYWNrZ3JvdW5kKCRjb2xvci1ncmV5LWxpZ2h0LCAxKTtcclxuXHJcbiAgICAuY29sbGVjdGlvbl9fY3RhIHtcclxuICAgICAgQGluY2x1ZGUgeC1idXR0b24obm9uZSwgdHJ1ZSwgaW52ZXJ0ZWQpO1xyXG4gICAgICBAaW5jbHVkZSBtYXJnaW4oMi41ZW0gbnVsbCBudWxsIG51bGwpO1xyXG4gICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIG1lZGlhKCRtcS1kZXNrKSB7XHJcbiAgICAgIEBpbmNsdWRlIHBhZGRpbmcobnVsbCBudWxsIDAgbnVsbCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLmNvbGxlY3Rpb24tLXBsYW4tZGVzY3JpcHRpb25zIHtcclxuICAgIEBpbmNsdWRlIHBhZGRpbmcoMi41ZW0gbnVsbCAyLjVlbSBudWxsKTtcclxuICAgIEBpbmNsdWRlIHgtYmFja2dyb3VuZCgkY29sb3ItZ3JleS1saWdodCwgMSk7XHJcblxyXG4gICAgLmNvbGxlY3Rpb25fX2lubmVyIHtcclxuICAgICAgQGluY2x1ZGUgb3V0ZXItY29udGFpbmVyKDEwMDBweCk7XHJcbiAgICB9XHJcblxyXG4gICAgLmNvbGxlY3Rpb25fX2N0YSB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJG1xLWRlc2spIHtcclxuICAgICAgQGluY2x1ZGUgcGFkZGluZyhudWxsIG51bGwgNWVtIG51bGwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5jb2xsZWN0aW9uLS10ZXN0aW1vbmlhbHMge1xyXG4gICAgQGluY2x1ZGUgcGFkZGluZygyLjVlbSBudWxsIDIuNWVtIG51bGwpO1xyXG5cclxuICAgIC5jb2xsZWN0aW9uX19pdGVtIHtcclxuICAgICAgaGVpZ2h0OiAzNTBweDtcclxuICAgICAgQGluY2x1ZGUgcG9zaXRpb24ocmVsYXRpdmUsIG51bGwgbnVsbCBudWxsIG51bGwpO1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIG1lZGlhKCRtcS1sYXApIHtcclxuXHJcbiAgICAgIC5jb2xsZWN0aW9uX19pdGVtIHtcclxuICAgICAgICBAaW5jbHVkZSBzaXplKGF1dG8gMjUwcHgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJG1xLWRlc2spIHtcclxuICAgICAgQGluY2x1ZGUgcGFkZGluZyg0ZW0gbnVsbCAyZW0gbnVsbCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLmNvbGxlY3Rpb24tLXJlY2VudC1uZXdzIHtcclxuICAgIEBpbmNsdWRlIHBhZGRpbmcoMi41ZW0gbnVsbCA1ZW0gbnVsbCk7XHJcblxyXG4gICAgLmNvbGxlY3Rpb25fX2hlYWRpbmcge1xyXG4gICAgICBAaW5jbHVkZSB4LWhlYWRpbmcocGFnZSk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC5jb2xsZWN0aW9uX19pbm5lciB7XHJcbiAgICAgIEBpbmNsdWRlIG91dGVyLWNvbnRhaW5lcig4MCUpO1xyXG4gICAgfVxyXG5cclxuICAgIC5jb2xsZWN0aW9uX19pdGVtIHtcclxuICAgICAgQGluY2x1ZGUgbWFyZ2luKDIuNWVtIG51bGwgbnVsbCBudWxsKTtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgkbXEtZGVzaykge1xyXG4gICAgICBAaW5jbHVkZSBvdXRlci1jb250YWluZXIoMTAwMHB4KTtcclxuICAgICAgQGluY2x1ZGUgcGFkZGluZygwIG51bGwgbnVsbCBudWxsKTtcclxuXHJcbiAgICAgIC5jb2xsZWN0aW9uX19oZWFkaW5nIHtcclxuICAgICAgICBmb250LXNpemU6IGVtKDMyKTtcclxuXHRcdHBhZGRpbmctdG9wOiAwO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLmNvbGxlY3Rpb24tLWZvY3VzLWFyZWFzIHtcclxuICAgIEBpbmNsdWRlIHBhZGRpbmcoMi41ZW0gbnVsbCAyLjVlbSBudWxsKTtcclxuXHJcbiAgICAuY29sbGVjdGlvbl9faXRlbSB7XHJcbiAgICAgIEBpbmNsdWRlIG1hcmdpbigyLjVlbSBudWxsIG51bGwgbnVsbCk7XHJcbiAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xyXG4gICAgfVxyXG5cclxuICAgIC5jb2xsZWN0aW9uX19pbm5lciB7XHJcbiAgICAgIEBpbmNsdWRlIHgtY29udGFpbmVyKDEwMDBweCk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC5jb2xsZWN0aW9uX19oZWFkaW5nIHtcclxuICAgICAgQGluY2x1ZGUgeC1oZWFkaW5nKHBhZ2UpO1xyXG4gICAgfVxyXG5cclxuICAgICY6YWZ0ZXIge1xyXG4gICAgICBjb250ZW50OiAnJztcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIEBpbmNsdWRlIHNpemUoOTAlIDFweCk7XHJcbiAgICAgIEBpbmNsdWRlIG1hcmdpbihudWxsIGF1dG8gbnVsbCBhdXRvKTtcclxuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IGRhc2hlZCAkY29sb3ItZ3JleS1saWdodDtcclxuICAgICAgQGluY2x1ZGUgcG9zaXRpb24ocmVsYXRpdmUsIDIuNWVtIG51bGwgbnVsbCBudWxsKTtcclxuICAgICAgbWF4LXdpZHRoOiAxMDAwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJG1xLWxhcCkge1xyXG4gICAgICBcclxuICAgICAgLmNvbGxlY3Rpb25fX2l0ZW0ge1xyXG4gICAgICAgIEBpbmNsdWRlIG1hcmdpbig0ZW0gbnVsbCBudWxsIG51bGwpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJG1xLWRlc2spIHtcclxuICAgICAgQGluY2x1ZGUgcGFkZGluZyg1ZW0gbnVsbCA1ZW0gbnVsbCk7XHJcblxyXG4gICAgICAmOmFmdGVyIHtcclxuICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbihyZWxhdGl2ZSwgNWVtIG51bGwgbnVsbCBudWxsKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5jb2xsZWN0aW9uLS1zcGx1bmsge1xyXG5cclxuICAgIC5jb2xsZWN0aW9uX19pdGVtIHtcclxuICAgICAgXHJcbiAgICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgQGluY2x1ZGUgbWFyZ2luKCA0ZW0gbnVsbCBudWxsIG51bGwgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIuZm9vdGVyIHtcbiAgQGluY2x1ZGUgcG9zaXRpb24ocmVsYXRpdmUsIG51bGwgbnVsbCBudWxsIG51bGwpO1xuICBAaW5jbHVkZSB4LWJhY2tncm91bmQoJGNvbG9yLXRlYWwsIDEpO1xuXG4gIC5mb290ZXJfX2lubmVyIHtcbiAgICBAaW5jbHVkZSBwYWRkaW5nKDNlbSBudWxsIDRlbSBudWxsKTtcbiAgfVxufVxuIiwiLm1vZGFsIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB6LWluZGV4OiA1MDtcbiAgb3BhY2l0eTogMDtcbiAgQGluY2x1ZGUgcG9zaXRpb24oZml4ZWQsIDAgMCAwIDApO1xuICBAaW5jbHVkZSBzaXplKDEwMCUgMTAwJSk7XG4gIEBpbmNsdWRlIHRyYW5zaXRpb24ob3BhY2l0eSwgMjUwbXMgJGVhc2UtaW4tb3V0LXF1YWQpO1xuXG4gICY6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBAaW5jbHVkZSB4LWJhY2tncm91bmQoJGNvbG9yLXRlYWwsIC45NSk7XG4gICAgQGluY2x1ZGUgcG9zaXRpb24oZml4ZWQsIDAgMCAwIDApO1xuICAgIEBpbmNsdWRlIHNpemUoMTAwJSAxMDAlKTtcbiAgfVxuXG4gIC5tb2RhbF9faW5uZXIge1xuICAgIEBpbmNsdWRlIHBvc2l0aW9uKGZpeGVkLCA1MCUgbnVsbCBudWxsIDUwJSk7XG4gICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZTNkKC01MCUsIC01MCUsIDApKTtcbiAgICBAaW5jbHVkZSBwb3NpdGlvbihyZWxhdGl2ZSwgbnVsbCBudWxsIG51bGwgbnVsbCk7XG4gIH1cblxuICAubW9kYWxfX2Nsb3NlIHtcbiAgICBAaW5jbHVkZSBwb3NpdGlvbihmaXhlZCwgLTJweCA3cHggbnVsbCBudWxsKTtcbiAgICBmb250LXNpemU6IDA7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSB4LWljb24oJGdseXBoLS1jbG9zZSwgNTBweCwgJGNvbG9yLXRleHQtaW52ZXJ0KTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgkbXEtbGFwKSB7XG5cbiAgICAubW9kYWxfX2Nsb3NlIHtcbiAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGZpeGVkLCAwcHggMjBweCBudWxsIG51bGwpO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCRtcS1kZXNrKSB7XG5cbiAgICB6LWluZGV4OiA1O1xuXG4gICAgLm1vZGFsX19jbG9zZSB7XG4gICAgICBAaW5jbHVkZSBwb3NpdGlvbihmaXhlZCwgNTAlIG51bGwgbnVsbCA1MCUpO1xuICAgICAgQGluY2x1ZGUgbWFyZ2luKC0yNTBweCBudWxsIG51bGwgMjMwcHgpO1xuXG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIEBpbmNsdWRlIHgtaWNvbigkZ2x5cGgtLWNsb3NlLCA2MHB4LCAkY29sb3ItdGV4dC1pbnZlcnQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYubW9kYWwtLWVtYmVkIHtcblxuICAgIC5tb2RhbF9faW5uZXIge1xuICAgIEBpbmNsdWRlIHNpemUoMTAwJSAwKTtcbiAgICBwYWRkaW5nLXRvcDogNTYlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgIGlmcmFtZSB7XG4gICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAwIG51bGwgbnVsbCAwKTtcbiAgICAgICAgQGluY2x1ZGUgc2l6ZSgxMDAlIDEwMCUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCRtcS1sYXApIHtcbiAgICAgIFxuICAgICAgLm1vZGFsX19pbm5lciB7XG4gICAgICAgIEBpbmNsdWRlIHNpemUoNzUwcHggYXV0byk7XG4gICAgICAgIEBpbmNsdWRlIHBhZGRpbmcoNDIwcHggbnVsbCBudWxsIG51bGwpO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCRtcS1kZXNrKSB7XG5cbiAgICAgIC5tb2RhbF9fY2xvc2Uge1xuICAgICAgICBAaW5jbHVkZSBtYXJnaW4oLTI2NXB4IG51bGwgbnVsbCAzNzBweCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIudGlsZSB7XG5cbiAgJi50aWxlLS1mZWF0dXJlcyB7XG4gICAgQGluY2x1ZGUgdGlsZShkZWZhdWx0KTtcbiAgfVxuICBcbiAgJi50aWxlLS1wbGFucyB7XG4gICAgQGluY2x1ZGUgdGlsZShpbnZlcnRlZCk7XG4gICAgYm9yZGVyOiBub25lO1xuXG4gICAgLnRpbGVfX2N0YSAge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkbXEtZGVzaykge1xuICAgICAgQGluY2x1ZGUgcG9zaXRpb24ocmVsYXRpdmUsIG51bGwgbnVsbCBudWxsIDApO1xuICAgICAgQGluY2x1ZGUgc2l6ZSg5MCUgbnVsbCk7XG4gICAgICBAaW5jbHVkZSBtYXJnaW4obnVsbCBhdXRvIG51bGwgYXV0byk7XG4gICAgICBtYXgtd2lkdGg6IDUwMHB4O1xuXG4gICAgICAudGlsZV9faW1hZ2Uge1xuICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbihyZWxhdGl2ZSwgbnVsbCBudWxsIG51bGwgMCk7XG4gICAgICAgIEBpbmNsdWRlIG1hcmdpbihudWxsIGF1dG8gbnVsbCAtNDVweCk7XG4gICAgICB9XG5cbiAgICAgIC50aWxlX19jb250ZW50IHtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi5zcG90IHtcclxuICBcclxuICAmLnNwb3QtLWZlYXR1cmUge1xyXG5cclxuICAgIC5zcG90X19pbm5lciB7XHJcbiAgICAgIEBpbmNsdWRlIG91dGVyLWNvbnRhaW5lcig4MCUpO1xyXG4gICAgICBAaW5jbHVkZSBwYWRkaW5nKCAyZW0gbnVsbCAyZW0gbnVsbCApO1xyXG4gICAgfVxyXG5cclxuICAgIC5zcG90X19maWd1cmUge1xyXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICB9XHJcblxyXG4gICAgLnNwb3RfX2ltYWdlIHtcclxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICBtYXgtd2lkdGg6IGVtKCAxMDAgKTtcclxuICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgfVxyXG5cclxuICAgIC5zcG90X19oZWFkaW5nIHtcclxuICAgICAgZm9udC1zaXplOiBlbSgyMCk7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICB9XHJcblxyXG4gICAgLnNwb3RfX2NvbnRlbnQge1xyXG4gICAgICBAaW5jbHVkZSBtYXJnaW4oIDFlbSBudWxsIG51bGwgbnVsbCApO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAuc3BvdF9fY29weSB7XHJcbiAgICAgIEBpbmNsdWRlIG1hcmdpbigxZW0gbnVsbCBudWxsIG51bGwpO1xyXG4gICAgICBAaW5jbHVkZSB4LWNvcHk7XHJcbiAgICAgIGZvbnQtc2l6ZTogZW0oMTcpO1xyXG5cclxuICAgICAgcCB7XHJcblxyXG4gICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xyXG4gICAgICAgICAgQGluY2x1ZGUgbWFyZ2luKCAxZW0gbnVsbCBudWxsIG51bGwgKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHVsIHtcclxuICAgICAgICBAaW5jbHVkZSBtYXJnaW4oMWVtIG51bGwgbnVsbCBudWxsKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgbGkge1xyXG4gICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKHJlbGF0aXZlLCBudWxsIG51bGwgbnVsbCBudWxsKTtcclxuICAgICAgICBAaW5jbHVkZSBwYWRkaW5nKG51bGwgbnVsbCBudWxsIDFlbSk7XHJcbiAgICAgICAgXHJcbiAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIC42ZW0gbnVsbCBudWxsIDApO1xyXG4gICAgICAgICAgQGluY2x1ZGUgeC1pY29uKCRnbHlwaC0tYnVsbGV0LCA4cHgsICRjb2xvci10ZXh0LWludmVydCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcclxuICAgICAgICAgIEBpbmNsdWRlIG1hcmdpbiguMjVlbSBudWxsIG51bGwgbnVsbCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnNwb3RfX2N0YSB7XHJcbiAgICAgIEBpbmNsdWRlIHgtYnV0dG9uKCRnbHlwaC0tYXJyb3ctLXJpZ2h0LCBmYWxzZSk7XHJcbiAgICAgIEBpbmNsdWRlIG1hcmdpbigyZW0gbnVsbCBudWxsIG51bGwpO1xyXG5cdCAgYm9yZGVyLXJhZGl1czogMTBweDtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgkbXEtZGVzaykge1xyXG5cclxuICAgICAgLnNwb3RfX2lubmVyIHtcclxuICAgICAgICBAaW5jbHVkZSBvdXRlci1jb250YWluZXIoMTAwMHB4KTtcclxuICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbihyZWxhdGl2ZSwgbnVsbCBudWxsIG51bGwgbnVsbCk7XHJcbiAgICAgICAgQGluY2x1ZGUgc2l6ZSgxMDAlIDQwMHB4KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLnNwb3RfX2NvbnRlbnQge1xyXG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDUwJSBudWxsIG51bGwgMCk7XHJcbiAgICAgICAgQGluY2x1ZGUgcGFkZGluZyhudWxsIDFlbSBudWxsIG51bGwpO1xyXG4gICAgICAgIEBpbmNsdWRlIG1hcmdpbiggMCBudWxsIG51bGwgbnVsbCApO1xyXG4gICAgICAgIEBpbmNsdWRlIHNpemUoNzAlIGF1dG8pO1xyXG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVZKC01MCUpKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLnNwb3RfX2hlYWRpbmcge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogZW0oMjgpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAuc3BvdF9fZmlndXJlIHtcclxuICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgNTAlIDAgbnVsbCBudWxsKTtcclxuICAgICAgICBAaW5jbHVkZSBzaXplKDMwJSBhdXRvKTtcclxuICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWSgtNTAlKSk7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5zcG90X19pbWFnZSB7XHJcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLnNwb3QtLXRoaW4ge1xyXG5cclxuICAgIEBpbmNsdWRlIG1lZGlhKCRtcS1kZXNrKSB7XHJcblxyXG4gICAgICAuc3BvdF9faW5uZXIge1xyXG4gICAgICAgIEBpbmNsdWRlIHNpemUoIDEwMCUgMzAwcHggKTtcclxuICAgICAgICBAaW5jbHVkZSBwYWRkaW5nKCAwIG51bGwgMCBudWxsICk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5zcG90X19pbWFnZSB7XHJcbiAgICAgICAgbWF4LXdpZHRoOiBlbSggMTUwICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICYuc3BvdC0tdGhpbm5lciB7XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJG1xLWRlc2spIHtcclxuXHJcbiAgICAgLnNwb3RfX2lubmVyIHtcclxuICAgICAgICBAaW5jbHVkZSBzaXplKCAxMDAlIDEwMHB4ICk7XHJcbiAgICAgICAgQGluY2x1ZGUgcGFkZGluZyggMCBudWxsIDAgbnVsbCApO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBoMyB7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xyXG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgICAgQGluY2x1ZGUgbWFyZ2luICggbnVsbCAwIG51bGwgMTAlICk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5zcG90X19jb3B5IHtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgLnNwb3RfY29udGVudCB7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgfVxyXG5cclxuICAgICAuc3BvdF9fY3RhIHtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XHJcbiAgICAgICAgQGluY2x1ZGUgbWFyZ2luICggbnVsbCAwIG51bGwgMyUpO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XHJcblx0XHRib3JkZXItcmFkaXVzOiAxMHB4O1xyXG5cdFx0Zm9udC1zaXplOi44NWVtO1xyXG4gICAgIH1cclxuXHJcbiAgICAgIC5zcG90X19pbWFnZSB7XHJcbiAgICAgICAgbWF4LXdpZHRoOiBlbSggNTAgKTtcclxuICAgICAgfVxyXG5cclxuICAgIH1cclxuICB9XHJcblxyXG4gICYuc3BvdC0tdGhpbm5lci0tdHJ0bCB7XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJG1xLWRlc2spIHtcclxuXHJcbiAgICAgIC5zcG90X19jb250ZW50IHtcclxuICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgNTAlIDAgbnVsbCBpbml0aWFsKTtcclxuICAgICAgICBAaW5jbHVkZSBzaXplKDEwMCUgYXV0byk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5zcG90X19maWd1cmUge1xyXG4gICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCA1MCUgaW5pdGlhbCBudWxsIDApO1xyXG4gICAgICAgIEBpbmNsdWRlIHNpemUoNSUgYXV0byk7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbiAgICAgIH1cclxuXHQgIFxyXG5cdCAgLnNwb3RfX2hlYWRpbmcge1xyXG5cdCAgICBmb250LXNpemU6IDEuNWVtO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfSAgXHJcbiAgXHJcbiAgJi5zcG90LS10cnRsIHtcclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgkbXEtZGVzaykge1xyXG5cclxuICAgICAgLnNwb3RfX2NvbnRlbnQge1xyXG4gICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCA1MCUgMCBudWxsIGluaXRpYWwpO1xyXG4gICAgICAgIEBpbmNsdWRlIHNpemUoODUlIGF1dG8pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAuc3BvdF9fZmlndXJlIHtcclxuICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgNTAlIGluaXRpYWwgbnVsbCAwKTtcclxuICAgICAgICBAaW5jbHVkZSBzaXplKDE1JSBhdXRvKTtcclxuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLnNwb3QtLXNwbHVuayB7XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJG1xLWRlc2spIHtcclxuXHJcbiAgICAgIC5zcG90X19pbWFnZSB7XHJcbiAgICAgICAgbWF4LXdpZHRoOiBlbSggMTUwICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICYuc3BvdC0tcnRsIHtcclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgkbXEtZGVzaykge1xyXG5cclxuICAgICAgLnNwb3RfX2NvbnRlbnQge1xyXG4gICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCA1MCUgMCBudWxsIGluaXRpYWwpO1xyXG4gICAgICAgIEBpbmNsdWRlIHNpemUoNzUlIGF1dG8pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAuc3BvdF9fZmlndXJlIHtcclxuICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgNTAlIGluaXRpYWwgbnVsbCAwKTtcclxuICAgICAgICBAaW5jbHVkZSBzaXplKDI1JSBhdXRvKTtcclxuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLnNwb3QtLWZ1bGwge1xyXG4gICAgXHJcbiAgICAuc3BvdF9fY29udGVudCB7XHJcbiAgICAgIEBpbmNsdWRlIHNpemUoIDEwMCUgYXV0byApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5zcG90LS1ncmV5IHtcclxuICAgIEBpbmNsdWRlIHgtYmFja2dyb3VuZCggI2I2YjZiNiwgMSApO1xyXG4gIH1cclxuXHJcbiAgJi5zcG90LS1ncmV5LWRhcmsge1xyXG4gICAgQGluY2x1ZGUgeC1iYWNrZ3JvdW5kKCAjYjZiNmI2LCAxICk7XHJcblxyXG4gICAgLnNwb3RfX2N0YSB7XHJcbiAgICAgIEBpbmNsdWRlIHgtYmFja2dyb3VuZCggIzAwMCwgMSApO1xyXG5cdCAgYm9yZGVyLXJhZGl1czogMTBweDtcclxuXHJcbiAgICAgICY6aG92ZXIgIHtcclxuICAgICAgICBAaW5jbHVkZSB4LWJhY2tncm91bmQoICMzMzMsIDEgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5zcG90LS1ncmV5LWxpZ2h0IHtcclxuICAgIEBpbmNsdWRlIHgtYmFja2dyb3VuZCggI2YwZjRmYywgMSApO1xyXG4gIH1cclxuXHJcbiAgJi5zcG90LS1ibHVlLWxpZ2h0IHtcclxuICAgIEBpbmNsdWRlIHgtYmFja2dyb3VuZCggI2QxZTBmNSwgMSApO1xyXG4gIH1cclxuXHJcbiAgJi5zcG90LS1mb2N1cy1hcmVhcyB7XHJcblxyXG4gICAgLnNwb3RfX2ZpZ3VyZSB7XHJcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIH1cclxuICAgIFxyXG4gICAgLnNwb3RfX2ltYWdlIHtcclxuICAgICAgQGluY2x1ZGUgc2l6ZSgxNTBweCBhdXRvKTtcclxuICAgIH1cclxuXHJcbiAgICAuc3BvdF9fY2FwdGlvbiB7XHJcbiAgICAgIEBpbmNsdWRlIHgtaGVhZGluZyg1KTtcclxuICAgIH1cclxuXHJcbiAgICAuc3BvdF9fY29udGVudCB7XHJcbiAgICAgIEBpbmNsdWRlIG1hcmdpbigxZW0gbnVsbCBudWxsIG51bGwpO1xyXG4gICAgfVxyXG5cclxuICAgIC5zcG90X19jb3B5IHtcclxuICAgICAgQGluY2x1ZGUgbWFyZ2luKDFlbSBudWxsIG51bGwgbnVsbCBudWxsKTtcclxuICAgICAgQGluY2x1ZGUgeC1ydGU7XHJcbiAgICB9XHJcblxyXG4gICAgLnNwb3RfX2hlYWRpbmcge1xyXG4gICAgICBAaW5jbHVkZSB4LWhlYWRpbmcoMik7XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJG1xLWxhcCkge1xyXG4gICAgICBcclxuICAgICAgLnNwb3RfX2ZpZ3VyZSB7XHJcbiAgICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDYpO1xyXG4gICAgICAgIEBpbmNsdWRlIG1hcmdpbihlbSg1MCkgbnVsbCBudWxsIG51bGwpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAuc3BvdF9fY29udGVudCB7XHJcbiAgICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDE4KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5zcG90LS1jb21wYXJlIHtcclxuICAgIEBpbmNsdWRlIHBhZGRpbmcoMi41ZW0gbnVsbCBudWxsIG51bGwpO1xyXG5cclxuICAgIC5zcG90X19pbm5lciB7XHJcbiAgICAgIEBpbmNsdWRlIHgtY29udGFpbmVyKDEwMDBweCk7XHJcbiAgICB9XHJcblxyXG4gICAgLnNwb3RfX2NvbnRlbnQge1xyXG4gICAgICBAaW5jbHVkZSBwb3NpdGlvbihyZWxhdGl2ZSwgbnVsbCBudWxsIG51bGwgbnVsbCk7XHJcbiAgICAgIEBpbmNsdWRlIG1hcmdpbihudWxsIG51bGwgMi41ZW0gbnVsbCk7XHJcbiAgICB9XHJcblxyXG4gICAgLnNwb3RfX2hlYWRpbmcge1xyXG4gICAgICBAaW5jbHVkZSB4LWhlYWRpbmcocGFnZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLnNwb3RfX2N0YSB7XHJcbiAgICAgIEBpbmNsdWRlIHgtYnV0dG9uO1xyXG5cdCAgYm9yZGVyLXJhZGl1czogMTBweDtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgkbXEtbGFwKSB7XHJcbiAgICAgIEBpbmNsdWRlIHBhZGRpbmcobnVsbCBudWxsIDcuNWVtIG51bGwpO1xyXG5cclxuICAgICAgLnNwb3RfX2N0YSB7XHJcbiAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24gKGFic29sdXRlLCBudWxsIDAgbnVsbCBhdXRvKTtcclxuICAgICAgICBAaW5jbHVkZSBzaXplKDIwJSBhdXRvKTtcclxuICAgICAgICBAaW5jbHVkZSBtYXJnaW4oMCBudWxsIG51bGwgbnVsbCk7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogMTBweDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIG1lZGlhKCRtcS1kZXNrKSB7XHJcbiAgICAgIEBpbmNsdWRlIHBhZGRpbmcoNWVtIG51bGwgNWVtIG51bGwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5zcG90LS1yZWNlbnQtbmV3cyB7XHJcblxyXG4gICAgLnNwb3RfX2NvbnRlbnQge1xyXG4gICAgICBAaW5jbHVkZSBwYWRkaW5nKG51bGwgbnVsbCBudWxsIC41ZW0pO1xyXG4gICAgfVxyXG5cclxuICAgIC5zcG90X19oZWFkaW5nIHtcclxuICAgICAgQGluY2x1ZGUgeC1oZWFkaW5nKDIpO1xyXG4gICAgfVxyXG5cclxuICAgIC5zcG90X19jb3B5IHtcclxuICAgICAgQGluY2x1ZGUgeC1jb3B5O1xyXG4gICAgICBAaW5jbHVkZSBtYXJnaW4oMWVtIG51bGwgbnVsbCBudWxsKTtcclxuICAgIH1cclxuXHJcbiAgICAuc3BvdF9fY3RhIHtcclxuICAgICAgQGluY2x1ZGUgeC1idXR0b24oJGdseXBoLS1hcnJvdy0tcmlnaHQpO1xyXG5cdCAgYm9yZGVyLXJhZGl1czogMTBweDtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgkbXEtbGFwKSB7XHJcbiAgICAgIEBpbmNsdWRlIG1hcmdpbihudWxsIG51bGwgbnVsbCA0LjVlbSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLnNwb3QtLXJlY2VudC1uZXdzIHtcclxuICAgIEBpbmNsdWRlIHBvc2l0aW9uKHJlbGF0aXZlLCBudWxsIG51bGwgbnVsbCBudWxsKTtcclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgkbXEtbGFwKSB7XHJcblxyXG4gICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgQGluY2x1ZGUgeC1pY29uKCRnbHlwaC0tZG9jdW1lbnQsIDY1cHgsICRjb2xvci10ZWFsKTtcclxuICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMCBudWxsIG51bGwgLTEuMmVtKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5zcG90LS13ZWVrbHktbWFya2V0LWJyaWVmIHtcclxuICAgIEBpbmNsdWRlIHBvc2l0aW9uKHJlbGF0aXZlLCBudWxsIG51bGwgbnVsbCBudWxsKTtcclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgkbXEtbGFwKSB7XHJcblxyXG4gICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgQGluY2x1ZGUgeC1pY29uKCRnbHlwaC0tbGluZS1jaGFydCwgNjVweCwgJGNvbG9yLXRlYWwpO1xyXG4gICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAwIG51bGwgbnVsbCAtMS4yZW0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLnNwb3QtLXByb2R1Y3QtbmV3cyB7XHJcbiAgICBAaW5jbHVkZSBwb3NpdGlvbihyZWxhdGl2ZSwgbnVsbCBudWxsIG51bGwgbnVsbCk7XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJG1xLWxhcCkge1xyXG5cclxuICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgIEBpbmNsdWRlIHgtaWNvbigkZ2x5cGgtLWNhbGVuZGFyLCA2NXB4LCAkY29sb3ItdGVhbCk7XHJcbiAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDAgbnVsbCBudWxsIC0xLjJlbSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICYuc3BvdC0tcHJvZHVjdC1mZWF0dXJlcyB7XHJcbiAgICBAaW5jbHVkZSBwb3NpdGlvbihyZWxhdGl2ZSwgbnVsbCBudWxsIG51bGwgbnVsbCk7XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJG1xLWxhcCkge1xyXG5cclxuICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgIEBpbmNsdWRlIHgtaWNvbigkZ2x5cGgtLW5ldywgNjVweCwgJGNvbG9yLXRlYWwpO1xyXG4gICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAwIG51bGwgbnVsbCAtMS4yZW0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLnNwb3QtLXZpZGVvcyB7XHJcbiAgICBAaW5jbHVkZSBwb3NpdGlvbihyZWxhdGl2ZSwgbnVsbCBudWxsIG51bGwgbnVsbCk7XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJG1xLWxhcCkge1xyXG5cclxuICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgIEBpbmNsdWRlIHgtaWNvbigkZ2x5cGgtLXBsYXksIDY1cHgsICRjb2xvci10ZWFsKTtcclxuICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMCBudWxsIG51bGwgLTEuMmVtKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5zcG90LS1wbGFuLWRlc2NyaXB0aW9ucyB7XHJcblxyXG4gICAgLnNwb3RfX2lubmVyIHtcclxuICAgICAgQGluY2x1ZGUgb3V0ZXItY29udGFpbmVyKDUwMHB4KTtcclxuICAgICAgQGluY2x1ZGUgc2l6ZSg5MCUgYXV0byk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC5zcG90X19oZWFkaW5nIHtcclxuICAgICAgQGluY2x1ZGUgeC1oZWFkaW5nKDIpO1xyXG4gICAgfVxyXG5cclxuICAgIC5zcG90X19jb3B5IHtcclxuICAgICAgQGluY2x1ZGUgeC1ydGU7XHJcbiAgICAgIEBpbmNsdWRlIG1hcmdpbigxZW0gbnVsbCBudWxsIG51bGwpO1xyXG4gICAgfVxyXG5cclxuICAgIC5zcG90X19jdGEge1xyXG4gICAgICBAaW5jbHVkZSB4LWJ1dHRvbigkZ2x5cGgtLWVkaXQsIGZhbHNlLCBkZWZhdWx0LCBsYXJnZSk7XHJcblx0ICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIudGVzdGltb25pYWwge1xuICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgNTAlIG51bGwgbnVsbCBudWxsKTtcbiAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVkoLTUwJSkpO1xuXG4gIC50ZXN0aW1vbmlhbF9faW5uZXIge1xuICAgIEBpbmNsdWRlIG91dGVyLWNvbnRhaW5lcig4MCUpO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gIC50ZXN0aW1vbmlhbF9fcXVvdGUge1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBAaW5jbHVkZSBwb3NpdGlvbihyZWxhdGl2ZSwgbnVsbCBudWxsIG51bGwgbnVsbCk7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSB4LWljb24oJGdseXBoLS1xdW90ZSwgNzVweCwgJGNvbG9yLWdyZXkpO1xuICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZSgxODBkZWcpKTtcbiAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAtLjVlbSBudWxsIG51bGwgLS4yNWVtKTtcbiAgICAgIG9wYWNpdHk6IC4yO1xuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgQGluY2x1ZGUgeC1pY29uKCRnbHlwaC0tcXVvdGUsIDc1cHgsICRjb2xvci1ncmV5KTtcbiAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAtLjVlbSAtLjI1ZW0gbnVsbCBudWxsKTtcbiAgICAgIG9wYWNpdHk6IC4yO1xuICAgIH1cbiAgfVxuXG4gIC50ZXN0aW1vbmlhbF9fbWV0YSB7XG4gICAgQGluY2x1ZGUgbWFyZ2luKDFlbSBudWxsIG51bGwgbnVsbCk7XG4gIH1cblxuICAudGVzdGltb25pYWxfX2F1dGhvciB7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIGZvbnQtc2l6ZTogZW0oMTIpO1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcXDIwMTRcIjtcbiAgICAgIEBpbmNsdWRlIHBhZGRpbmcobnVsbCAuMjVlbSBudWxsIG51bGwpO1xuICAgIH1cbiAgfVxuXG4gIC50ZXN0aW1vbmlhbF9faW1hZ2Uge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgIGhlaWdodDogYXV0bztcbiAgICBAaW5jbHVkZSBtYXJnaW4oMmVtIG51bGwgbnVsbCBudWxsKTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCRtcS1sYXApIHtcbiAgICBAaW5jbHVkZSBzaXplKDEwMCUgYXV0byk7XG5cbiAgICAudGVzdGltb25pYWxfX2lubmVyIHtcbiAgICAgIEBpbmNsdWRlIHNpemUoNzUwcHggYXV0byk7XG4gICAgfVxuXG4gICAgLnRlc3RpbW9uaWFsX19xdW90ZSB7XG4gICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgfVxuICB9XG59XG4iLCIuY29tcG9uZW50cyB7XG5cbiAgZGlzcGxheTogbm9uZTtcbn1cbiIsIi50YWJsZSB7XG5cbiAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICBAaW5jbHVkZSBtYXJnaW4obnVsbCBudWxsIDIuNWVtIG51bGwpO1xuICB9XG5cbiAgJi50YWJsZS0tYWN0aXZlIHtcblxuICAgIC50YWJsZV9faGVhZGluZyB7XG5cbiAgICAgICY6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlKDE4MGRlZykpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC50YWJsZV9fdGFibGUge1xuICAgICAgbWF4LWhlaWdodDogMjUwMHB4O1xuICAgIH1cbiAgfVxuXG4gIC50YWJsZV9faW5uZXIge1xuICAgIEBpbmNsdWRlIHgtY29udGFpbmVyKDEwMDBweCk7XG4gIH1cblxuICAudGFibGVfX2hlYWRpbmcge1xuICAgIEBpbmNsdWRlIHgtaGVhZGluZygyKTtcbiAgICBjb2xvcjogJGNvbG9yLXRlYWw7XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgIC8vQGluY2x1ZGUgeC1pY29uKCRnbHlwaC0tYXJyb3ctLXVwLCAyNHB4LCAkY29sb3ItdGVhbClcbiAgICAgIC8vQGluY2x1ZGUgcG9zaXRpb24ocmVsYXRpdmUsIDRweCBudWxsIG51bGwgbnVsbCk7XG4gICAgICAvL0BpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDE1MG1zICRlYXNlLWluLW91dC1xdWFkKTtcbiAgICB9XG4gIH1cblxuICAudGFibGVfX3RhYmxlIHtcbiAgICAvL2Rpc3BsYXk6IGJsb2NrO1xuICAgIC8vbWF4LWhlaWdodDogMDtcbiAgICAvL292ZXJmbG93OiBoaWRkZW47XG4gICAgLy9AaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAxNTBtcyAkZWFzZS1pbi1vdXQtcXVhZCk7XG4gIH1cblxuICAudGFibGVfX3JvdyB7XG5cbiAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgIH1cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICB9XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IGRhc2hlZCBkYXJrZW4oJGNvbG9yLWdyZXktbGlnaHQsIDEwJSk7XG4gIH1cblxuICAudGFibGVfX2NlbGwge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIEBpbmNsdWRlIHBhZGRpbmcoLjVlbSBudWxsIC41ZW0gbnVsbCk7XG4gICAgQGluY2x1ZGUgeC1ydGU7XG5cbiAgICAuZ2x5cGgge1xuICAgICAgZm9udC1zaXplOiBlbSgzMik7XG5cbiAgICAgICYuZ2x5cGgtLWNoZWNrIHtcbiAgICAgICAgY29sb3I6ICRjb2xvci10ZWFsO1xuICAgICAgfVxuXG4gICAgICAmLmdseXBoLS1jbG9zZSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3ItZ3JleTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm50aC1jaGlsZCgxKSB7XG4gICAgICBAaW5jbHVkZSBzaXplKDEwMCUgYXV0byk7XG4gICAgICBAaW5jbHVkZSBwYWRkaW5nKDEuNWVtIG51bGwgMWVtIG51bGwpO1xuICAgIH1cblxuICAgICY6bnRoLWNoaWxkKDIpIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGZvbnQtc2l6ZTogZW0oMTQpO1xuICAgIH1cblxuICAgICY6bnRoLWNoaWxkKDMpIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGZvbnQtc2l6ZTogZW0oMTQpO1xuICAgICAgYm9yZGVyLWxlZnQ6IDFweCBkYXNoZWQgZGFya2VuKCRjb2xvci1ncmV5LWxpZ2h0LCAxMCUpO1xuICAgICAgICBAaW5jbHVkZSB4LWJhY2tncm91bmQoJGNvbG9yLW9yYW5nZSwgLjAyKTtcbiAgICB9XG4gIH1cblxuICAmOmxhc3QtY2hpbGQge1xuICAgIEBpbmNsdWRlIHBhZGRpbmcobnVsbCBudWxsIDIuNWVtIG51bGwpO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJG1xLXBhbG0tZG93bikge1xuXG4gICAgLnRhYmxlX19jZWxsIHtcblxuICAgICAgJjpudGgtY2hpbGQoMikge1xuICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbihyZWxhdGl2ZSwgbnVsbCBudWxsIG51bGwgbnVsbCk7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBAaW5jbHVkZSBzaXplKDUwJSBhdXRvKTtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IGRhc2hlZCBkYXJrZW4oJGNvbG9yLWdyZXktbGlnaHQsIDEwJSk7XG5cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDUwJSBudWxsIG51bGwgNTAlKTtcbiAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWSgtNjAlKSk7XG4gICAgICAgICAgQGluY2x1ZGUgc2l6ZSg1MCUgYXV0byk7XG4gICAgICAgIH1cblxuICAgICAgICAuZ2x5cGgge1xuICAgICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCA1MCUgbnVsbCBudWxsIDUwJSk7XG4gICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVkoLTYwJSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKHJlbGF0aXZlLCBudWxsIG51bGwgbnVsbCAtNXB4KTtcbiAgICAgICAgICBjb250ZW50OiB1cmwoJy93cC1jb250ZW50L3RoZW1lcy9zdG9ja3JvdmVyL21lZGlhL2ltYWdlcy9pY29uLWJhc2ljLS1ncmF5c2NhbGUuc3ZnJyk7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgICBjb250ZW50OiAnQmFzaWMnO1xuICAgICAgICAgIEBpbmNsdWRlIHNpemUoMTAwcHggYXV0byk7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAxMHB4IG51bGwgbnVsbCAtNXB4KTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmOm50aC1jaGlsZCgzKSB7XG4gICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKHJlbGF0aXZlLCBudWxsIG51bGwgbnVsbCBudWxsKTtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIEBpbmNsdWRlIHNpemUoNTAlIGF1dG8pO1xuICAgICAgICBib3JkZXItdG9wOiAxcHggZGFzaGVkIGRhcmtlbigkY29sb3ItZ3JleS1saWdodCwgMTAlKTtcblxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgNTAlIG51bGwgbnVsbCA1MCUpO1xuICAgICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVZKC02MCUpKTtcbiAgICAgICAgICBAaW5jbHVkZSBzaXplKDUwJSBhdXRvKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5nbHlwaCB7XG4gICAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDUwJSBudWxsIG51bGwgNTAlKTtcbiAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWSgtNjAlKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24ocmVsYXRpdmUsIG51bGwgbnVsbCBudWxsIC01cHgpO1xuICAgICAgICAgIGNvbnRlbnQ6IHVybCgnL3dwLWNvbnRlbnQvdGhlbWVzL3N0b2Nrcm92ZXIvbWVkaWEvaW1hZ2VzL2ljb24tcHJlbWl1bS0tZ3JheXNjYWxlLnN2ZycpO1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgY29udGVudDogJ1ByZW1pdW0nO1xuICAgICAgICAgIEBpbmNsdWRlIHNpemUoMTAwcHggYXV0byk7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAxMHB4IG51bGwgbnVsbCAtNXB4KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCRtcS1sYXApIHtcblxuICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICBAaW5jbHVkZSBtYXJnaW4obnVsbCBudWxsIDcuNWVtIG51bGwpO1xuICAgIH1cblxuICAgIC50YWJsZV9fcm93IHtcblxuICAgICAgJjpudGgtY2hpbGQoMSkge1xuXG4gICAgICAgIC50YWJsZV9fY2VsbCB7XG4gICAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24ocmVsYXRpdmUsIG51bGwgbnVsbCBudWxsIG51bGwpO1xuXG4gICAgICAgICAgJjpudGgtY2hpbGQoMikge1xuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIC0xMDBweCBudWxsIG51bGwgNTAlKTtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVgoLTUwJSkpO1xuICAgICAgICAgICAgICBjb250ZW50OiB1cmwoJy93cC1jb250ZW50L3RoZW1lcy9zdG9ja3JvdmVyL21lZGlhL2ltYWdlcy9pY29uLWJhc2ljLS1ncmF5c2NhbGUuc3ZnJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAtMjVweCBudWxsIG51bGwgNTAlKTtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVgoLTUwJSkpO1xuICAgICAgICAgICAgICBAaW5jbHVkZSBzaXplKDEwMHB4IGF1dG8pO1xuICAgICAgICAgICAgICBjb250ZW50OiAnQmFzaWMnO1xuICAgICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgICY6bnRoLWNoaWxkKDMpIHtcblxuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAtMTAwcHggbnVsbCBudWxsIDUwJSk7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVYKC01MCUpKTtcbiAgICAgICAgICAgICAgY29udGVudDogdXJsKCcvd3AtY29udGVudC90aGVtZXMvc3RvY2tyb3Zlci9tZWRpYS9pbWFnZXMvaWNvbi1wcmVtaXVtLS1ncmF5c2NhbGUuc3ZnJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAtMjVweCBudWxsIG51bGwgNTAlKTtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVgoLTUwJSkpO1xuICAgICAgICAgICAgICBAaW5jbHVkZSBzaXplKDEwMHB4IGF1dG8pO1xuICAgICAgICAgICAgICBjb250ZW50OiAnUHJlbWl1bSc7XG4gICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnRhYmxlX19jZWxsIHtcbiAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG5cbiAgICAgICY6bnRoLWNoaWxkKDEpIHtcbiAgICAgICAgQGluY2x1ZGUgc2l6ZSg2MCUgYXV0byk7XG4gICAgICB9XG5cbiAgICAgICY6bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgQGluY2x1ZGUgc2l6ZSgyMCUgYXV0byk7XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICY6bnRoLWNoaWxkKDMpIHtcbiAgICAgICAgQGluY2x1ZGUgc2l6ZSgyMCUgYXV0byk7XG4gICAgICAgIEBpbmNsdWRlIHgtYmFja2dyb3VuZCgkY29sb3Itb3JhbmdlLCAuMDIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCRtcS1kZXNrKSB7XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgQGluY2x1ZGUgcGFkZGluZyhudWxsIG51bGwgNWVtIG51bGwpO1xuICAgIH1cbiAgfVxufVxuIiwiLmNvbnRlbnQge1xuICBAaW5jbHVkZSBwYWRkaW5nKDIuNWVtIG51bGwgMi41ZW0gbnVsbCk7XG5cbiAgLmNvbnRlbnRfX2lubmVyIHtcbiAgICBAaW5jbHVkZSB4LWNvbnRhaW5lcigxMDAwcHgpO1xuICB9XG5cbiAgLmNvbnRlbnRfX2hlYWRpbmcge1xuICAgIEBpbmNsdWRlIHgtaGVhZGluZyhwYWdlKTtcbiAgfVxuXG4gIC5jb250ZW50X19jb3B5IHtcbiAgICBAaW5jbHVkZSB4LXJ0ZTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCRtcS1kZXNrKSB7XG4gICAgQGluY2x1ZGUgcGFkZGluZyg1ZW0gbnVsbCA1ZW0gbnVsbCk7XG4gIH1cblxuICAmLmNvbnRlbnQtLXRhZ3MsXG4gICYuY29udGVudC0tYXV0aG9yIHtcblxuICAgIC5jb250ZW50X19pbm5lciB7XG4gICAgICBAaW5jbHVkZSBwb3NpdGlvbihyZWxhdGl2ZSwgbnVsbCBudWxsIG51bGwgbnVsbCk7XG4gICAgfVxuXG4gICAgLmNvbnRlbnRfX2N0YSB7XG4gICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgLjY1ZW0gMCBudWxsIG51bGwpO1xuICAgICAgY29sb3I6ICRjb2xvci10ZWFsO1xuICAgICAgZm9udC1zaXplOiBlbSgxNCk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJG1xLWxhcCkge1xuXG4gICAgICAuY29udGVudF9fY3RhIHtcbiAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDJlbSAwIG51bGwgbnVsbCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIucHJvZ3Jlc3Mge1xuXG4gIC5wcm9ncmVzc19fbGlzdCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG5cbiAgLnByb2dyZXNzX19pdGVtIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYmFja2dyb3VuZDogJGNvbG9yLWdyZXktbWlkO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgQGluY2x1ZGUgc2l6ZSg1MHB4IDUwcHgpO1xuICAgIGNvbG9yOiAkY29sb3Itd2hpdGU7XG4gICAgbGluZS1oZWlnaHQ6IDUwcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBAaW5jbHVkZSBtYXJnaW4oMWVtIC41ZW0gMWVtIC41ZW0pO1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6NTAlO1xuICAgICAgbGVmdDogMTAwJTtcbiAgICAgIGhlaWdodDoxcHg7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGJhY2tncm91bmQ6ICRjb2xvci1ncmV5LW1pZDtcbiAgICB9XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuXG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5wcm9ncmVzc19faXRlbS0tY29tcGxldGVkIHtcbiAgICAgIGJhY2tncm91bmQ6ICRjb2xvci10ZWFsLWRhcms7XG5cbiAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yLWdyZXktbWlkO1xuICAgICAgfVxuICAgIH1cblxuICAgICYucHJvZ3Jlc3NfX2l0ZW0tLWFjdGl2ZSB7XG4gICAgICBAaW5jbHVkZSBhbmltYXRpb24ob3NjaWxhdGUgMS41cyBpbmZpbml0ZSk7XG4gICAgfVxuXG4gICAgJi5wcm9ncmVzc19faXRlbS0tY2hlY2sge1xuICAgICAgXG4gICAgICBzcGFuIHtcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgIEBpbmNsdWRlIHgtaWNvbigkZ2x5cGgtLWNoZWNrLCAzMHB4LCAkY29sb3Itd2hpdGUpOyAgXG4gICAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIG51bGwgbnVsbCBudWxsIDApO1xuICAgICAgICAgIEBpbmNsdWRlIHNpemUoMTAwJSBudWxsKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCRtcS1kZXNrKSB7XG5cbiAgICAucHJvZ3Jlc3NfX2l0ZW0ge1xuICAgICAgQGluY2x1ZGUgbWFyZ2luKG51bGwgMWVtIG51bGwgMWVtKTtcbiAgICB9XG4gIH1cbn1cbiIsIi5sYXlvdXQge1xuXG4gICYubGF5b3V0LS1ob21lIHtcbiAgICBAaW5jbHVkZSBwYWRkaW5nKG51bGwgbnVsbCA1ZW0gbnVsbCk7XG4gIH1cblxuICAmLmxheW91dC0tc2lkZWJhciB7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkbXEtZGVzaykge1xuICAgICAgQGluY2x1ZGUgcGFkZGluZyggbnVsbCBudWxsIDVlbSBudWxsICk7XG5cbiAgICAgIC5sYXlvdXRfX2lubmVyIHtcbiAgICAgICAgQGluY2x1ZGUgeC1jb250YWluZXIoMTAwMHB4KTtcbiAgICAgIH1cblxuICAgICAgLmxheW91dF9fcmVnaW9uIHtcblxuICAgICAgICAmOm50aC1jaGlsZCgxKSB7XG4gICAgICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDYpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpudGgtY2hpbGQoMikge1xuICAgICAgICAgIEBpbmNsdWRlIHNoaWZ0KDEpO1xuICAgICAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygxNyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLmxheW91dC0tYmFzaWMge1xuXG4gICAgLmxheW91dF9fcmVnaW9uIHtcbiAgICAgIEBpbmNsdWRlIHBhZGRpbmcobnVsbCBudWxsIDVlbSBudWxsKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkbXEtbGFwLWRvd24pIHtcblxuICAgICAgLmxheW91dF9faW5uZXIge1xuICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbihyZWxhdGl2ZSwgbnVsbCBudWxsIG51bGwgbnVsbCk7XG4gICAgICB9XG5cbiAgICAgIC5wcm9ncmVzcyB7XG4gICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAwIG51bGwgbnVsbCA1MCUpO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWCgtNTAlKSk7XG4gICAgICAgIEBpbmNsdWRlIHNpemUoMTAwJSBudWxsKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLmxheW91dC0tcmVnaXN0ZXIge1xuICAgIGJhY2tncm91bmQ6ICNGN0Y5RkE7XG5cbiAgICAuY29udGVudF9fY3RhIHtcbiAgICAgIEBpbmNsdWRlIHgtYnV0dG9uKG5vbmUsIGZhbHNlLCBkYXJrKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkbXEtbGFwLWRvd24pIHtcblxuICAgICAgLmxheW91dF9faW5uZXIge1xuICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbihyZWxhdGl2ZSwgbnVsbCBudWxsIG51bGwgbnVsbCk7XG4gICAgICAgIEBpbmNsdWRlIHBhZGRpbmcoMi41ZW0gbnVsbCBudWxsIG51bGwpO1xuICAgICAgfVxuXG4gICAgICAucHJvZ3Jlc3Mge1xuICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMCBudWxsIG51bGwgNTAlKTtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVgoLTUwJSkpO1xuICAgICAgICBAaW5jbHVkZSBzaXplKDEwMCUgbnVsbCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJG1xLWRlc2spIHtcbiAgICAgIEBpbmNsdWRlIHBhZGRpbmcobnVsbCBudWxsIDEwZW0gbnVsbCk7XG5cbiAgICAgIC5sYXlvdXRfX2lubmVyIHtcbiAgICAgICAgQGluY2x1ZGUgeC1jb250YWluZXIoMTAwMHB4KTtcbiAgICAgIH1cblxuICAgICAgLmxheW91dF9fcmVnaW9uIHtcblxuICAgICAgICAmOm50aC1jaGlsZCgxKSB7XG4gICAgICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDEyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgICBAaW5jbHVkZSBwYWRkaW5nKDVlbSBudWxsIDVlbSBudWxsKTtcbiAgICAgICAgICBAaW5jbHVkZSBzaGlmdCgxKTtcbiAgICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMTEpO1xuXG4gICAgICAgICAgLmNvbnRlbnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgcGFkZGluZygyZW0gbnVsbCBudWxsIG51bGwpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuY29udGVudCB7XG4gICAgICAgIEBpbmNsdWRlIHBhZGRpbmcoNmVtIG51bGwgMCBudWxsKTtcblxuICAgICAgICAuY29udGVudF9faGVhZGluZyB7XG4gICAgICAgICAgQGluY2x1ZGUgbWFyZ2luKCBudWxsIG51bGwgLjc1ZW0gbnVsbCApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJi5sYXlvdXQtLXNwbGl0IHtcblxuICAgIC5jb250ZW50IHtcbiAgICAgIEBpbmNsdWRlIHBhZGRpbmcobnVsbCBudWxsIDAgbnVsbCk7XG5cbiAgICAgIC5jb250ZW50X19pbm5lciB7XG4gICAgICAgIEBpbmNsdWRlIG1hcmdpbihudWxsIDAgbnVsbCAwKTtcblxuICAgICAgfVxuXG4gICAgICAmKyAuZm9ybV9fZmllbGRzZXQge1xuICAgICAgICBAaW5jbHVkZSBtYXJnaW4oMCBudWxsIG51bGwgbnVsbCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJG1xLWRlc2spIHtcblxuICAgICAgLmNvbnRlbnQge1xuICAgICAgICBAaW5jbHVkZSBwYWRkaW5nKDZlbSBudWxsIDAgbnVsbCk7XG5cbiAgICAgICAgLmNvbnRlbnRfX2hlYWRpbmcge1xuICAgICAgICAgIEBpbmNsdWRlIG1hcmdpbiggbnVsbCBudWxsIC43NWVtIG51bGwgKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAubGF5b3V0X19yZWdpb24ge1xuXG4gICAgICAgICY6bnRoLWNoaWxkKDEpIHtcbiAgICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMjQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIuZGVmaW5pdGlvbnMge1xuXG4gIC5kZWZpbml0aW9uc19faW5uZXIge1xuICAgIEBpbmNsdWRlIHgtY29udGFpbmVyKDEwMDBweCk7XG4gIH1cblxuICAuZGVmaW5pdGlvbnNfX2hlYWRpbmcge1xuICAgIEBpbmNsdWRlIHgtaGVhZGluZygyKTtcbiAgICBAaW5jbHVkZSBtYXJnaW4oMmVtIG51bGwgbnVsbCBudWxsKTtcbiAgfVxuICBcbiAgLmRlZmluaXRpb25zX19saXN0IHtcbiAgICBAaW5jbHVkZSBtYXJnaW4oMWVtIG51bGwgbnVsbCBudWxsKTtcbiAgfVxuXG4gIC5kZWZpbml0aW9uc19fdGVybSB7XG4gICAgQGluY2x1ZGUgeC1jb3B5O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG5cbiAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgIEBpbmNsdWRlIG1hcmdpbigxZW0gbnVsbCBudWxsIG51bGwpO1xuICAgIH1cbiAgfVxuICBcbiAgLmRlZmluaXRpb25zX19kZWZpbml0aW9uIHtcbiAgICBAaW5jbHVkZSB4LWNvcHk7XG4gIH1cbn1cblxuIiwiLmNvbW1lbnRzLXRpdGxlIHtcbiAgQGluY2x1ZGUgbWFyZ2luKDJyZW0gbnVsbCBudWxsIG51bGwpO1xufVxuXG4uY29tbWVudC1saXN0IHtcblxuICAuY29tbWVudC1hdXRob3Ige1xuICAgIFxuICAgIGltZyB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC5jb21tZW50LW1ldGFkYXRhIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gIH1cblxuICAuY29tbWVudCB7XG4gICAgQGluY2x1ZGUgbWFyZ2luKDFlbSBudWxsIG51bGwgbnVsbCk7XG4gICAgQGluY2x1ZGUgcGFkZGluZygxZW0gbnVsbCBudWxsIG51bGwpO1xuXG4gICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICBib3JkZXItdG9wOiAxcHggZGFzaGVkICRjb2xvci1ncmV5LWxpZ2h0O1xuICAgIH1cblxuICAgICYuZGVwdGgtMiB7XG4gICAgICBAaW5jbHVkZSBtYXJnaW4obnVsbCBudWxsIG51bGwgMWVtKTtcbiAgICB9XG4gIH1cblxuICAuY29tbWVudC1hd2FpdGluZy1tb2RlcmF0aW9uIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLmNvbW1lbnQtY29udGVudCB7XG4gICAgQGluY2x1ZGUgbWFyZ2luKDFlbSBudWxsIDFlbSBudWxsKTtcbiAgfVxuXG4gIC5yZXBseSB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICB9XG59XG5cbi5jb21tZW50LXJlc3BvbmQge1xuICBAaW5jbHVkZSBtYXJnaW4oMmVtIG51bGwgbnVsbCBudWxsKTtcbiAgQGluY2x1ZGUgcGFkZGluZygyZW0gbnVsbCBudWxsIG51bGwpO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgJGNvbG9yLWdyZXktbGlnaHQ7XG59XG5cbi5jb21tZW50LWZvcm0ge1xuXG4gIC5jb21tZW50LWZvcm0tdXJsIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLmNvbW1lbnQtbm90ZXMge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICBsYWJlbCB7XG4gICAgY29sb3I6ICRjb2xvci10ZXh0O1xuICAgIGZvbnQtc2l6ZTogZW0oMTIpO1xuICB9XG5cbiAgdGV4dGFyZWEge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci1ncmV5LWxpZ2h0O1xuICAgIGJvcmRlci1ib3R0b206IDNweCBzb2xpZCAkY29sb3ItZ3JleS1saWdodDtcbiAgICBAaW5jbHVkZSBwYWRkaW5nKDFlbSAuNWVtIDFlbSAuNWVtKTtcbiAgICBjb2xvcjogJGNvbG9yLXRleHQ7XG4gICAgZm9udC1zaXplOiBlbSgxNCk7XG4gICAgQGluY2x1ZGUgbWFyZ2luKC41ZW0gbnVsbCBudWxsIG51bGwpO1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsLCAyNTBtcywgJGVhc2UtaW4tcXVpbnQpO1xuXG4gICAgJjpmb2N1cyB7XG4gICAgICBib3JkZXItYm90dG9tOiAzcHggc29saWQgJGNvbG9yLXRlYWwtZGFyaztcbiAgICB9XG4gIH1cbiAgaW5wdXQge1xuICAgICZbdHlwZT10ZXh0XSxcbiAgICAmW3R5cGU9ZW1haWxdLFxuICAgICZbdHlwZT1wYXNzd29yZF0ge1xuXG4gICAgICBAaW5jbHVkZSBzaXplKDEwMCUgYXV0byk7XG4gICAgICBAaW5jbHVkZSBwYWRkaW5nKDFlbSAuNWVtIDFlbSAuNWVtKTtcbiAgICAgIEBpbmNsdWRlIG1hcmdpbiguNWVtIG51bGwgbnVsbCBudWxsKTtcbiAgICAgIGNvbG9yOiAkY29sb3ItdGV4dDtcbiAgICAgIGZvbnQtc2l6ZTogZW0oMTQpO1xuICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwsIDI1MG1zLCAkZWFzZS1pbi1xdWludCk7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItZ3JleS1saWdodDtcbiAgICAgIGJvcmRlci1ib3R0b206IDNweCBzb2xpZCAkY29sb3ItZ3JleS1saWdodDtcblxuICAgICAgQGluY2x1ZGUgcGxhY2Vob2xkZXIge1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGNvbG9yLCAyNTBtcywgJGVhc2UtaW4tb3V0LXF1YWQpO1xuICAgICAgfVxuXG4gICAgICB+IC5mb3JtX19sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAtMWVtIDAgbnVsbCBudWxsKTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGNvbG9yOiAkY29sb3ItdGVhbC1kYXJrO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKG9wYWNpdHksIDI1MG1zLCAkZWFzZS1pbi1vdXQtcXVhZCk7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG5cbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBib3JkZXItYm90dG9tOiAzcHggc29saWQgJGNvbG9yLXRlYWwtZGFyaztcblxuICAgICAgICB+IC5mb3JtX19sYWJlbCB7XG4gICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIHBsYWNlaG9sZGVyIHtcbiAgICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmOnZhbGlkIHtcblxuICAgICAgICB+IC5mb3JtX19sYWJlbCB7XG4gICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICYuc3VibWl0IHtcbiAgICAgIEBpbmNsdWRlIHgtYnV0dG9uKCRnbHlwaC0tYXJyb3ctLXJpZ2h0LCBmYWxzZSwgJ2RhcmsnKTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxufVxuIiwiLmFwcGxpY2F0aW9uIHtcclxuXHJcbiAgJi5hY3RpdmUtLW5hdmlnYXRpb24ge1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuXHJcbiAgICAuYXNpZGUge1xyXG4gICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlM2QoMCUsIDAsIDApKTtcclxuICAgIH1cclxuXHJcbiAgICAudG9nZ2xlIHtcclxuXHJcbiAgICAgICYudG9nZ2xlLS1uYXZpZ2F0aW9uIHtcclxuXHJcbiAgICAgICAgLnRvZ2dsZV9fYnV0dG9uIHtcclxuXHJcbiAgICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIHgtaWNvbigkZ2x5cGgtLWNsb3NlLCA0MHB4LCByZ2JhKDM1LDM1LDM1LDEpKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICYuYWN0aXZlLS1zZWFyY2gge1xyXG5cclxuICAgIC50b2dnbGUge1xyXG5cclxuICAgICAgJi50b2dnbGUtLXNlYXJjaCB7XHJcblxyXG4gICAgICAgIC50b2dnbGVfX2J1dHRvbiB7XHJcblxyXG4gICAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSB4LWljb24oJGdseXBoLS1zZWFyY2gsIDMycHgsICRjb2xvci10ZWFsKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuZm9ybSB7XHJcblxyXG4gICAgICAmLmZvcm0tLXNlYXJjaCB7XHJcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVkoMCUpKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5hY3RpdmUtLW1vZGFsIHtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcblxyXG4gICAgLm1vZGFsIHtcclxuICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcclxuICAgICAgb3BhY2l0eTogMTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLnBhZ2UtaWQtMTcxMiB7XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKCRtcS1sYXAtZG93bikge1xyXG5cclxuICAgIC5sYXlvdXRfX2lubmVyIHtcclxuICAgICAgQGluY2x1ZGUgcG9zaXRpb24ocmVsYXRpdmUsIG51bGwgbnVsbCBudWxsIG51bGwpO1xyXG4gICAgICBAaW5jbHVkZSBwYWRkaW5nKDIuNWVtIG51bGwgbnVsbCBudWxsKTtcclxuICAgIH1cclxuXHJcbiAgICAucHJvZ3Jlc3Mge1xyXG4gICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMCBudWxsIG51bGwgNTAlKTtcclxuICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVgoLTUwJSkpO1xyXG4gICAgICBAaW5jbHVkZSBzaXplKDEwMCUgbnVsbCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBtZWRpYSgkbXEtZGVzaykge1xyXG5cclxuICAgIC5jb250ZW50IHtcclxuXHJcbiAgICAgIC5jb250ZW50X19oZWFkaW5nIHtcclxuICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMTIpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAuY29udGVudF9fY29weSB7XHJcbiAgICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDI0KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5wcm9ncmVzcyB7XHJcbiAgICAgIEBpbmNsdWRlIHNoaWZ0KDEpO1xyXG4gICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMTEpO1xyXG4gICAgICBAaW5jbHVkZSBvbWVnYTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5uZXdzcGFwZXJyb3ZlciB7XHJcbiAgbWFyZ2luLXRvcDogMS41ZW07XHJcbn1cclxuXHJcbi5pbmRpY2Vzc3VtbWFyeSB7XHJcbiAgQGluY2x1ZGUgbWFyZ2luKDEuNWVtIG51bGwgMi41ZW0gbnVsbCk7XHJcbn1cclxuXHJcblxyXG4uY29tbW9kaXRpZXNzdW1tYXJ5IHtcclxuICBAaW5jbHVkZSBtYXJnaW4oMS41ZW0gbnVsbCAyLjVlbSBudWxsKTtcclxufVxyXG5cclxuQGluY2x1ZGUgbWVkaWEoJG1xLWxhcCkge1xyXG5cclxuICAuaW5kaWNlc3N1bW1hcnkge1xyXG4gICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDEyKTtcclxuICB9XHJcblxyXG4gIC5jb21tb2RpdGllc3N1bW1hcnkge1xyXG4gICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDEyKTtcclxuICAgIEBpbmNsdWRlIG9tZWdhO1xyXG4gIH1cclxufVxyXG5cclxuLnJlc291cmNlcyBpbWcge1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIG1hcmdpbjogNXB4IDA7XHJcbn1cclxuXHJcbi5yZXNvdXJjZXMgdGgge1xyXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XHJcbiAgICBwYWRkaW5nOiAzZW0gMCAuMmVtIC4xZW07XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgZ3JleTtcclxufVxyXG5cclxuLnJlc291cmNlcyB0ZCB7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIHBhZGRpbmc6IDA7XHJcbn1cclxuXHJcbi5yZXNvdXJjZXMgLnJlc291cmNlX25hdiB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpO1xyXG5cdFxyXG4gICAgICAgIGEge1xyXG4gICAgICAgICAgICBjb2xvcjogd2hpdGU7XHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIC5saW5rcyB7XHJcbiAgICAgICAgQGluY2x1ZGUgeC1idXR0b24oJGdseXBoLS1hcnJvdy0tcmlnaHQsIGZhbHNlKTtcclxuICAgICAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICB9XHJcblxyXG4gICAgLmJhY2tsaW5rcyB7XHJcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICB9XHJcblxyXG4gICAgLmFwcGxpbmtzIHtcclxuICAgICAgICBmbG9hdDogbm9uZTtcclxuICAgICAgICBtYXJnaW4tbGVmdDogMjUlO1xyXG4gICAgfVxyXG5cclxuICAgIC5iYWNrbGlua3MsIC5hcHBsaW5rcyB7XHJcbiAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSB4LWljb24oJGdseXBoLS1hcnJvdy0tbGVmdCwgMThweCwgJGNvbG9yLXRleHQtaW52ZXJ0KTtcclxuICAgICAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24ocmVsYXRpdmUsIDNweCA0cHggbnVsbCBudWxsKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgICAgIGNvbnRlbnQ6IG5vbmU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gICAgLmxpbmtzLCAuYmFja2xpbmtzLCAuYXBwbGlua3Mge1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICB3aWR0aDogNDYlO1xyXG4gICAgICAgIGZvbnQ6IDE0cHggQXJpYWw7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzU4OTBFMztcclxuICAgICAgICBtYXJnaW4tdG9wOiAxZW07XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgICAgICAgcGFkZGluZzogLjVlbSAxZW07XHJcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XHJcblx0XHRib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5saW5rczpob3ZlciwgLmJhY2tsaW5rczpob3ZlciB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzZFOUZFNztcclxuICAgIH1cclxufVxyXG5cclxuXHJcblxyXG5cclxuXHRcclxuXHJcbi5jb250ZW50IC5jb250ZW50X19jb3B5IHRhYmxlLnByaWNpbmdUYWJsZSB0ZCB7XHJcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xyXG5cdH1cclxuXHRcclxuLmNvbnRlbnQgLmNvbnRlbnRfX2NvcHkgLnByaWNpbmdUYWJsZV9fcmlnaHQgdGFibGUucHJpY2luZ1RhYmxlIHRib2R5IHRyIHRoIHtcclxuXHRAaW5jbHVkZSBtZWRpYSgkbXEtbGFwKSB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDNlbTtcclxuICAgIH1cclxuXHRAaW5jbHVkZSBtZWRpYSgkbXEtcGFsbS1kb3duKSB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDNlbTtcclxuICAgIH1cclxuXHRAaW5jbHVkZSBtZWRpYSgkbXEtZGVzaykge1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiAwO1xyXG4gICAgfVx0XHJcbn1cdFxyXG5cdFxyXG4ucHJpY2luZ1RhYmxlX19sZWZ0IHtcclxuXHRcdEBpbmNsdWRlIG1lZGlhKCRtcS1sYXApIHtcclxuXHRcdHdpZHRoOiA5NSU7XHJcblx0XHRkaXNwbGF5OiBibG9jaztcclxuXHRcdG1hcmdpbi1sZWZ0OiAzJTtcclxuXHRcdG1hcmdpbi1ib3R0b206IDFlbTtcclxuXHR9XHJcblx0XHRAaW5jbHVkZSBtZWRpYSgkbXEtZGVzaykge1xyXG5cdFx0d2lkdGg6IDQwJTtcclxuXHRcdGZsb2F0OiBsZWZ0O1xyXG5cdFx0fVxyXG59XHJcblx0XHJcbi5wcmljaW5nVGFibGVfX3JpZ2h0IHtcclxuXHRcdEBpbmNsdWRlIG1lZGlhKCRtcS1sYXApIHtcclxuXHRcdHdpZHRoOiA5NSU7XHJcblx0XHRkaXNwbGF5OiBibG9jaztcclxuXHRcdG1hcmdpbi1yaWdodDogMyU7XHJcblx0fVxyXG5cdFx0QGluY2x1ZGUgbWVkaWEoJG1xLWRlc2spIHtcclxuXHRcdHdpZHRoOiA0MCU7XHJcblx0XHRmbG9hdDogcmlnaHQ7XHJcblx0XHR9XHJcbn1cclxuXHRcclxudGFibGUucHJpY2luZ1RhYmxlIHRib2R5IHRyIHRkIHtcclxuICAgIHRleHQtYWxpZ246Y2VudGVyO1xyXG5cdCAgQGluY2x1ZGUgbWVkaWEoJG1xLXBhbG0tZG93bikge1xyXG4gICAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcclxuXHRcdCAgbWFyZ2luOjA7XHJcblx0XHQgIHBhZGRpbmc6IDFlbSAwIDFlbSAwO1xyXG5cdCAgfVxyXG5cdCAgICBAaW5jbHVkZSBtZWRpYSgkbXEtbGFwKSB7XHJcblx0XHQgZGlzcGxheTogdGFibGUtY2VsbDtcclxuXHRcdCBtYXJnaW46IDA7XHJcblx0XHQgcGFkZGluZzogMWVtIDAgMWVtIDA7XHJcblx0ICB9XHJcblx0fVxyXG5cclxuLnByaWNpbmdEb3dubG9hZCAge1xyXG5cclxuXHRAaW5jbHVkZSBtZWRpYSgkbXEtbGFwKSB7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87IFxyXG5cdH1cclxuXHRAaW5jbHVkZSBtZWRpYSgkbXEtZGVzaykge1xyXG5cdCAgICBtYXJnaW4tbGVmdDogMzQlO1xyXG4gICAgfVxyXG59XHJcblxyXG5cclxuLnBhZ2UtaWQtMTcxMiB7XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKCRtcS1sYXAtZG93bikge1xyXG5cclxuICAgIC5sYXlvdXRfX2lubmVyIHtcclxuICAgICAgQGluY2x1ZGUgcG9zaXRpb24ocmVsYXRpdmUsIG51bGwgbnVsbCBudWxsIG51bGwpO1xyXG4gICAgICBAaW5jbHVkZSBwYWRkaW5nKDIuNWVtIG51bGwgbnVsbCBudWxsKTtcclxuICAgIH1cclxuXHJcbiAgICAucHJvZ3Jlc3Mge1xyXG4gICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMCBudWxsIG51bGwgNTAlKTtcclxuICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVgoLTUwJSkpO1xyXG4gICAgICBAaW5jbHVkZSBzaXplKDEwMCUgbnVsbCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBtZWRpYSgkbXEtZGVzaykge1xyXG5cclxuICAgIC5jb250ZW50IHtcclxuXHJcbiAgICAgIC5jb250ZW50X19oZWFkaW5nIHtcclxuICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMTIpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAuY29udGVudF9fY29weSB7XHJcbiAgICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDI0KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5wcm9ncmVzcyB7XHJcbiAgICAgIEBpbmNsdWRlIHNoaWZ0KDEpO1xyXG4gICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMTEpO1xyXG4gICAgICBAaW5jbHVkZSBvbWVnYTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5uZXdzcGFwZXJyb3ZlciB7XHJcbiAgbWFyZ2luLXRvcDogMS41ZW07XHJcbn1cclxuXHJcbi5pbmRpY2Vzc3VtbWFyeSB7XHJcbiAgQGluY2x1ZGUgbWFyZ2luKDEuNWVtIG51bGwgMi41ZW0gbnVsbCk7XHJcbn1cclxuXHJcblxyXG4uY29tbW9kaXRpZXNzdW1tYXJ5IHtcclxuICBAaW5jbHVkZSBtYXJnaW4oMS41ZW0gbnVsbCAyLjVlbSBudWxsKTtcclxufVxyXG5cclxuQGluY2x1ZGUgbWVkaWEoJG1xLWxhcCkge1xyXG5cclxuICAuaW5kaWNlc3N1bW1hcnkge1xyXG4gICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDEyKTtcclxuICB9XHJcblxyXG4gIC5jb21tb2RpdGllc3N1bW1hcnkge1xyXG4gICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDEyKTtcclxuICAgIEBpbmNsdWRlIG9tZWdhO1xyXG4gIH1cclxufVxyXG5cclxuLnJlc291cmNlcyBpbWcge1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIG1hcmdpbjogNXB4IDA7XHJcbn1cclxuXHJcbi5yZXNvdXJjZXMgdGgge1xyXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XHJcbiAgICBwYWRkaW5nOiAzZW0gMCAuMmVtIC4xZW07XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgZ3JleTtcclxufVxyXG5cclxuLnJlc291cmNlcyB0ZCB7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIHBhZGRpbmc6IDA7XHJcbn1cclxuXHJcbi5yZXNvdXJjZXMgLnJlc291cmNlX25hdiB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpO1xyXG4gICAgICAgIGEge1xyXG4gICAgICAgICAgICBjb2xvcjogd2hpdGU7XHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIC5saW5rcyB7XHJcbiAgICAgICAgQGluY2x1ZGUgeC1idXR0b24oJGdseXBoLS1hcnJvdy0tcmlnaHQsIGZhbHNlKTtcclxuICAgICAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICB9XHJcblxyXG4gICAgLmJhY2tsaW5rcyB7XHJcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICB9XHJcblxyXG4gICAgLmFwcGxpbmtzIHtcclxuICAgICAgICBmbG9hdDogbm9uZTtcclxuICAgICAgICBtYXJnaW4tbGVmdDogMjUlO1xyXG4gICAgfVxyXG5cclxuICAgIC5iYWNrbGlua3MsIC5hcHBsaW5rcyB7XHJcbiAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSB4LWljb24oJGdseXBoLS1hcnJvdy0tbGVmdCwgMThweCwgJGNvbG9yLXRleHQtaW52ZXJ0KTtcclxuICAgICAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24ocmVsYXRpdmUsIDNweCA0cHggbnVsbCBudWxsKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgICAgIGNvbnRlbnQ6IG5vbmU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gICAgLmxpbmtzLCAuYmFja2xpbmtzLCAuYXBwbGlua3Mge1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICB3aWR0aDogNDYlO1xyXG4gICAgICAgIGZvbnQ6IDE0cHggQXJpYWw7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzU4OTBFMztcclxuICAgICAgICBtYXJnaW4tdG9wOiAxZW07XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgICAgICAgcGFkZGluZzogLjVlbSAxZW07XHJcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XHJcblxyXG5cclxuICAgIH1cclxuXHJcbiAgICAubGlua3M6aG92ZXIsIC5iYWNrbGlua3M6aG92ZXIge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM2RTlGRTc7XHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG5cclxuXHJcblx0XHJcblxyXG4uY29udGVudCAuY29udGVudF9fY29weSB0YWJsZS5wcmljaW5nVGFibGUgdGQge1xyXG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcclxuXHR9XHJcblx0XHJcbi5jb250ZW50IC5jb250ZW50X19jb3B5IC5wcmljaW5nVGFibGVfX3JpZ2h0IHRhYmxlLnByaWNpbmdUYWJsZSB0Ym9keSB0ciB0aCB7XHJcblx0QGluY2x1ZGUgbWVkaWEoJG1xLWxhcCkge1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiAzZW07XHJcbiAgICB9XHJcblx0QGluY2x1ZGUgbWVkaWEoJG1xLXBhbG0tZG93bikge1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiAzZW07XHJcbiAgICB9XHJcblx0QGluY2x1ZGUgbWVkaWEoJG1xLWRlc2spIHtcclxuICAgICAgICBwYWRkaW5nLXRvcDogMDtcclxuICAgIH1cdFxyXG59XHRcclxuXHRcclxuLnByaWNpbmdUYWJsZV9fbGVmdCB7XHJcblx0XHRAaW5jbHVkZSBtZWRpYSgkbXEtbGFwKSB7XHJcblx0XHR3aWR0aDogOTUlO1xyXG5cdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0XHRtYXJnaW4tbGVmdDogMyU7XHJcblx0XHRtYXJnaW4tYm90dG9tOiAxZW07XHJcblx0fVxyXG5cdFx0QGluY2x1ZGUgbWVkaWEoJG1xLWRlc2spIHtcclxuXHRcdHdpZHRoOiA0MCU7XHJcblx0XHRmbG9hdDogbGVmdDtcclxuXHRcdH1cclxufVxyXG5cdFxyXG4ucHJpY2luZ1RhYmxlX19yaWdodCB7XHJcblx0XHRAaW5jbHVkZSBtZWRpYSgkbXEtbGFwKSB7XHJcblx0XHR3aWR0aDogOTUlO1xyXG5cdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0XHRtYXJnaW4tcmlnaHQ6IDMlO1xyXG5cdH1cclxuXHRcdEBpbmNsdWRlIG1lZGlhKCRtcS1kZXNrKSB7XHJcblx0XHR3aWR0aDogNDAlO1xyXG5cdFx0ZmxvYXQ6IHJpZ2h0O1xyXG5cdFx0fVxyXG59XHJcblx0XHJcbnRhYmxlLnByaWNpbmdUYWJsZSB0Ym9keSB0ciB0ZCB7XHJcbiAgICB0ZXh0LWFsaWduOmNlbnRlcjtcclxuXHQgIEBpbmNsdWRlIG1lZGlhKCRtcS1wYWxtLWRvd24pIHtcclxuICAgICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XHJcblx0XHQgIG1hcmdpbjowO1xyXG5cdFx0ICBwYWRkaW5nOiAxZW0gMCAxZW0gMDtcclxuXHQgIH1cclxuXHQgICAgQGluY2x1ZGUgbWVkaWEoJG1xLWxhcCkge1xyXG5cdFx0IGRpc3BsYXk6IHRhYmxlLWNlbGw7XHJcblx0XHQgbWFyZ2luOiAwO1xyXG5cdFx0IHBhZGRpbmc6IDFlbSAwIDFlbSAwO1xyXG5cdCAgfVxyXG5cdH1cclxuXHJcbi5wcmljaW5nRG93bmxvYWQgIHtcclxuXHJcblx0QGluY2x1ZGUgbWVkaWEoJG1xLWxhcCkge1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOyBcclxuXHR9XHJcblx0QGluY2x1ZGUgbWVkaWEoJG1xLWRlc2spIHtcclxuXHQgICAgbWFyZ2luLWxlZnQ6IDM0JTtcclxuICAgIH1cclxufVxyXG5cclxuXHJcbi5mb290ZXIgLmZvb3Rlcl9faW5uZXIgLnNtX19pY29ucyB7XHJcbiAgICB1bCB7XHJcblx0ICAgIGRpc3BsYXk6YmxvY2s7XHJcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0XHRwYWRkaW5nLWJvdHRvbTogMTBweDtcclxuXHRcdFxyXG5cdFx0bGkge1xyXG5cdFx0ICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdFx0cGFkZGluZzogMCA1cHg7XHJcblx0XHRcdFxyXG5cdFx0XHRpbWcge1xyXG5cdFx0XHQgICAgaGVpZ2h0OiAyMHB4O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH0gXHJcblxyXG4uaHMtZm9ybS1ib29sZWFuY2hlY2tib3ggbGkge1xyXG4gICAgY29udGVudDpub25lO1xyXG5cdH1cclxuXHRcdFx0Il0sIm1hcHBpbmdzIjoiO0FpRFdJLGtCQUFrQixDQUFDLFFBQVE7RXFDVjdCLEVBQUU7SUFDQSxVQUFVLEVET0MsT0FBTztFQ0xwQixHQUFHO0lBQ0QsVUFBVSxFQUFFLE9BQU87RUFFckIsSUFBSTtJQUNGLFVBQVUsRURDQyxPQUFPOztBcENVbEIsZUFBZSxDQUFDLFFBQVE7RXFDbEIxQixFQUFFO0lBQ0EsVUFBVSxFRE9DLE9BQU87RUNMcEIsR0FBRztJQUNELFVBQVUsRUFBRSxPQUFPO0VBRXJCLElBQUk7SUFDRixVQUFVLEVE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QUFTLEVBQUUsTUFBTTtFMERxU2pDLG9CQUFvQixDQUFDO0lBT25CLEtBQUssRUFBRSxHQUFJO0lBQ1gsS0FBSyxFQUFFLEtBQU0sR0FFZDs7QUFFRCxLQUFLLEFBQUEsYUFBYSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO0VBQzNCLFVBQVUsRUFBQyxNQUFPLEdBV3BCO0UxRDdURSxNQUFNLENBQU4sTUFBTSxNQUFNLFNBQVMsRUFBRSxTQUFTO0kwRGlUcEMsS0FBSyxBQUFBLGFBQWEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztNQUdyQixPQUFPLEVBQUUsVUFBVztNQUMxQixNQUFNLEVBQUMsQ0FBRTtNQUNULE9BQU8sRUFBRSxXQUFZLEdBT3ZCO0UxRDdURSxNQUFNLENBQU4sTUFBTSxNQUFNLFNBQVMsRUFBRSxRQUFRO0kwRGlUbkMsS0FBSyxBQUFBLGFBQWEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztNQVE1QixPQUFPLEVBQUUsVUFBVztNQUNwQixNQUFNLEVBQUUsQ0FBRTtNQUNWLE9BQU8sRUFBRSxXQUFZLEdBRXRCOztBMUQ3VEUsTUFBTSxDQUFOLE1BQU0sTUFBTSxTQUFTLEVBQUUsUUFBUTtFMEQrVG5DLGdCQUFnQixDQUFFO0lBR1YsV0FBVyxFQUFFLElBQUssR0FLekI7O0ExRHZVRyxNQUFNLENBQU4sTUFBTSxNQUFNLFNBQVMsRUFBRSxNQUFNO0UwRCtUakMsZ0JBQWdCLENBQUU7SUFNYixXQUFXLEVBQUUsR0FBSSxHQUVyQjs7QUFHRCxPQUFPLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FDN0IsRUFBRSxDQUFDO0VBQ0YsT0FBTyxFQUFDLEtBQU07RUFDakIsVUFBVSxFQUFFLE1BQU87RUFDbkIsY0FBYyxFQUFFLElBQUssR0FVcEI7RUFkSCxPQUFPLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FDN0IsRUFBRSxDQUtKLEVBQUUsQ0FBQztJQUNDLE9BQU8sRUFBRSxZQUFhO0lBQ3pCLE9BQU8sRUFBRSxLQUFNLEdBS2Q7SUFiSixPQUFPLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FDN0IsRUFBRSxDQUtKLEVBQUUsQ0FJRCxHQUFHLENBQUM7TUFDQSxNQUFNLEVBQUUsSUFBSyxHQUNmOztBQUtMLHdCQUF3QixDQUFDLEVBQUUsQ0FBQztFQUN4QixPQUFPLEVBQUMsSUFBSyxHQUNmIiwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ== */
