@charset "UTF-8";
/*! normalize.css v3.0.2 | MIT License | git.io/normalize */
/**
 * 1. Set default font family to sans-serif.
 * 2. Prevent iOS text size adjust after orientation change, without disabling
 *    user zoom.
 */
@import url("https://fonts.googleapis.com/css?family=Roboto&subset=latin-ext");
html {
  font-family: sans-serif;
  /* 1 */
  -ms-text-size-adjust: 100%;
  /* 2 */
  -webkit-text-size-adjust: 100%;
  /* 2 */ }

/**
 * Remove default margin.
 */
body {
  margin: 0; }

/* HTML5 display definitions
   ========================================================================== */
/**
 * Correct `block` display not defined for any HTML5 element in IE 8/9.
 * Correct `block` display not defined for `details` or `summary` in IE 10/11
 * and Firefox.
 * Correct `block` display not defined for `main` in IE 11.
 */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
  display: block; }

/**
 * 1. Correct `inline-block` display not defined in IE 8/9.
 * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
 */
audio,
canvas,
progress,
video {
  display: inline-block;
  /* 1 */
  vertical-align: baseline;
  /* 2 */ }

/**
 * Prevent modern browsers from displaying `audio` without controls.
 * Remove excess height in iOS 5 devices.
 */
audio:not([controls]) {
  display: none;
  height: 0; }

/**
 * Address `[hidden]` styling not present in IE 8/9/10.
 * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.
 */
[hidden],
template {
  display: none; }

/* Links
   ========================================================================== */
/**
 * Remove the gray background color from active links in IE 10.
 */
a {
  background-color: transparent; }

/**
 * Improve readability when focused and also mouse hovered in all browsers.
 */
a:active,
a:hover {
  outline: 0; }

/* Text-level semantics
   ========================================================================== */
/**
 * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
 */
abbr[title] {
  border-bottom: 1px dotted; }

/**
 * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
 */
b,
strong {
  font-weight: bold; }

/**
 * Address styling not present in Safari and Chrome.
 */
dfn {
  font-style: italic; }

/**
 * Address variable `h1` font-size and margin within `section` and `article`
 * contexts in Firefox 4+, Safari, and Chrome.
 */
h1 {
  font-size: 2em;
  margin: 0.67em 0; }

/**
 * Address styling not present in IE 8/9.
 */
mark {
  background: #ff0;
  color: #000; }

/**
 * Address inconsistent and variable font size in all browsers.
 */
small {
  font-size: 80%; }

/**
 * Prevent `sub` and `sup` affecting `line-height` in all browsers.
 */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline; }

sup {
  top: -0.5em; }

sub {
  bottom: -0.25em; }

/* Embedded content
   ========================================================================== */
/**
 * Remove border when inside `a` element in IE 8/9/10.
 */
img {
  border: 0; }

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

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

/**
 * Address differences between Firefox and other browsers.
 */
hr {
  box-sizing: content-box;
  height: 0; }

/**
 * Contain overflow in all browsers.
 */
pre {
  overflow: auto; }

/**
 * Address odd `em`-unit font size rendering in all browsers.
 */
code,
kbd,
pre,
samp {
  font-family: monospace, monospace;
  font-size: 1em; }

/* Forms
   ========================================================================== */
/**
 * Known limitation: by default, Chrome and Safari on OS X allow very limited
 * styling of `select`, unless a `border` property is set.
 */
/**
 * 1. Correct color not being inherited.
 *    Known issue: affects color of disabled elements.
 * 2. Correct font properties not being inherited.
 * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
 */
button,
input,
optgroup,
select,
textarea {
  color: inherit;
  /* 1 */
  font: inherit;
  /* 2 */
  margin: 0;
  /* 3 */ }

/**
 * Address `overflow` set to `hidden` in IE 8/9/10/11.
 */
button {
  overflow: visible; }

/**
 * Address inconsistent `text-transform` inheritance for `button` and `select`.
 * All other form control elements do not inherit `text-transform` values.
 * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
 * Correct `select` style inheritance in Firefox.
 */
button,
select {
  text-transform: none; }

/**
 * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
 *    and `video` controls.
 * 2. Correct inability to style clickable `input` types in iOS.
 * 3. Improve usability and consistency of cursor style between image-type
 *    `input` and others.
 */
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
  -webkit-appearance: button;
  /* 2 */
  cursor: pointer;
  /* 3 */ }

/**
 * Re-set default cursor for disabled elements.
 */
button[disabled],
html input[disabled] {
  cursor: default; }

/**
 * Remove inner padding and border in Firefox 4+.
 */
button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0; }

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

/**
 * It's recommended that you don't attempt to style these elements.
 * Firefox's implementation doesn't respect box-sizing, padding, or width.
 *
 * 1. Address box sizing set to `content-box` in IE 8/9/10.
 * 2. Remove excess padding in IE 8/9/10.
 */
input[type="checkbox"],
input[type="radio"] {
  box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */ }

/**
 * Fix the cursor style for Chrome's increment/decrement buttons. For certain
 * `font-size` values of the `input`, it causes the cursor style of the
 * decrement button to change from `default` to `text`.
 */
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
  height: auto; }

/**
 * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
 * 2. Address `box-sizing` set to `border-box` in Safari and Chrome
 *    (include `-moz` to future-proof).
 */
input[type="search"] {
  -webkit-appearance: textfield;
  /* 1 */
  /* 2 */
  box-sizing: content-box; }

/**
 * Remove inner padding and search cancel button in Safari and Chrome on OS X.
 * Safari (but not Chrome) clips the cancel button when the search input has
 * padding (and `textfield` appearance).
 */
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none; }

/**
 * Define consistent border, margin, and padding.
 */
fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em; }

/**
 * 1. Correct `color` not being inherited in IE 8/9/10/11.
 * 2. Remove padding so people aren't caught out if they zero out fieldsets.
 */
legend {
  border: 0;
  /* 1 */
  padding: 0;
  /* 2 */ }

/**
 * Remove default vertical scrollbar in IE 8/9/10/11.
 */
textarea {
  overflow: auto; }

/**
 * Don't inherit the `font-weight` (applied by a rule above).
 * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
 */
optgroup {
  font-weight: bold; }

/* Tables
   ========================================================================== */
/**
 * Remove most spacing between table cells.
 */
table {
  border-collapse: collapse;
  border-spacing: 0; }

td,
th {
  padding: 0; }

/*@include gridle_register_state (landscape, (
    query : "(orientation : landscape)"
));*/
/* ---------------------------------------------------------- */
/*
/* wCMS - base.css
/*
/* klasy podstawowych modyfikacji styli
/* (nie modyfikować, zmiany nadpisywać w layout.css)
/*
/* ---------------------------------------------------------- */
*, *:before, *:after {
  box-sizing: border-box; }

html, body {
  width: 100%;
  height: auto;
  overflow: auto; }

html.no-scroll {
  overflow-y: hidden !important; }

body * {
  margin: 0;
  padding: 0;
  text-overflow: ellipsis;
  list-style: none; }

#page {
  min-height: 100%;
  position: relative;
  overflow: hidden; }

.container {
  margin-left: auto;
  margin-right: auto; }

a {
  text-decoration: none; }

p {
  margin: 0; }

ul {
  list-style-type: none;
  margin: 0;
  padding: 0; }

address {
  font-style: normal; }

figure img {
  display: block;
  width: 100%; }

/*----- TEKST -----*/
.text-left {
  text-align: left; }

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

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

.text-bold {
  font-weight: bold; }

.text-italic {
  font-style: italic; }

.text-strike {
  text-decoration: line-through; }

.text-underline {
  text-decoration: underline; }

.text-uppercase {
  text-transform: uppercase; }

.text-lowercase {
  text-transform: lowercase; }

.text-hide {
  text-indent: -999em; }

.text-nowrap {
  white-space: nowrap; }

.text-color {
  color: #00a2ff; }

.font-content {
  font-family: "Roboto";
  font-size: 22px;
  line-height: 1.5em; }
  @media screen and (min-width: 720px) and (max-width: 959px) {
    .font-content {
      font-size: 16px; } }
  @media screen and (min-width: 480px) and (max-width: 719px) {
    .font-content {
      font-size: 16px; } }
  @media screen and (max-width: 479px) {
    .font-content {
      font-size: 16px; } }

/*----- TABELE -----*/
.table-wrap {
  width: 100%;
  overflow-x: auto; }

/*----- POZYCJONOWANIE -----*/
.center {
  margin-left: auto;
  margin-right: auto; }

.fclear {
  float: none;
  clear: both; }

.fleft {
  float: left; }

.fright {
  float: right; }

.crop {
  position: relative;
  overflow: hidden; }

.hide {
  display: none; }

.invisible {
  opacity: 0; }

/*----- OBRAMOWANIE -----*/
.border {
  border: 1px solid #c1c1c1; }

.border-top {
  border-top: 1px solid #c1c1c1; }

.border-left {
  border-left: 1px solid #c1c1c1; }

.border-right {
  border-right: 1px solid #c1c1c1; }

.border-bottom {
  border-bottom: 1px solid #c1c1c1; }

/*----- MARGINESY ------*/
.mTop5 {
  margin-top: 5px; }

.mTop10 {
  margin-top: 10px; }

.mTop20 {
  margin-top: 20px; }

.mTop30 {
  margin-top: 30px; }

.mTop40 {
  margin-top: 40px; }

.mTop50 {
  margin-top: 50px; }

.mRight5 {
  margin-right: 5px; }

.mRight10 {
  margin-right: 10px; }

.mRight20 {
  margin-right: 20px; }

.mRight30 {
  margin-right: 30px; }

.mRight40 {
  margin-right: 40px; }

.mRight50 {
  margin-right: 50px; }

.mBottom5 {
  margin-bottom: 5px; }

.mBottom10 {
  margin-bottom: 10px; }

.mBottom15 {
  margin-bottom: 15px; }

.mBottom20 {
  margin-bottom: 20px; }

.mBottom30 {
  margin-bottom: 30px; }

.mBottom40 {
  margin-bottom: 40px; }

.mBottom50 {
  margin-bottom: 50px; }

.mLeft5 {
  margin-left: 5px; }

.mLeft10 {
  margin-left: 10px; }

.mLeft20 {
  margin-left: 20px; }

.mLeft30 {
  margin-left: 30px; }

.mLeft40 {
  margin-left: 40px; }

.mLeft50 {
  margin-left: 50px; }

.pTop5 {
  padding-top: 5px; }

.pTop10 {
  padding-top: 10px; }

.pTop20 {
  padding-top: 20px; }

.pTop30 {
  padding-top: 30px; }

.pTop40 {
  padding-top: 40px; }

.pTop50 {
  padding-top: 50px; }

.pRight5 {
  padding-right: 5px; }

.pRight10 {
  padding-right: 10px; }

.pRight20 {
  padding-right: 20px; }

.pRight30 {
  padding-right: 30px; }

.pRight40 {
  padding-right: 40px; }

.pRight50 {
  padding-right: 50px; }

.pBottom5 {
  padding-bottom: 5px; }

.pBottom10 {
  padding-bottom: 10px; }

.pBottom20 {
  padding-bottom: 20px; }

.pBottom30 {
  padding-bottom: 30px; }

.pBottom40 {
  padding-bottom: 40px; }

.pBottom50 {
  padding-bottom: 50px; }

.pLeft5 {
  padding-left: 5px; }

.pLeft10 {
  padding-left: 10px; }

.pLeft20 {
  padding-left: 20px; }

.pLeft30 {
  padding-left: 30px; }

.pLeft40 {
  padding-left: 40px; }

.pLeft50 {
  padding-left: 50px; }

/*----- DROPDOWN ----- */
.dropdown {
  position: absolute;
  z-index: 100;
  display: none; }

.dropdown .dropdown-menu,
.dropdown .dropdown-panel {
  overflow: visible;
  min-width: 160px;
  max-width: 360px;
  margin: 0;
  padding: 4px 0;
  background: #FFF;
  border: solid 1px #DDD;
  border: solid 1px rgba(0, 0, 0, 0.2);
  border-radius: 6px;
  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
  text-align: left;
  list-style: none; }

.dropdown .dropdown-panel {
  color: #555;
  padding: 10px; }

.dropdown .dropdown-panel .dropdown-menu {
  margin: 0 -10px;
  padding: 0;
  border: 0;
  box-shadow: none; }

.dropdown.dropdown-tip {
  margin-top: 8px; }

.dropdown.dropdown-tip:before {
  content: '';
  display: inline-block;
  position: absolute;
  top: -6px;
  left: 9px;
  border-left: 7px solid transparent;
  border-right: 7px solid transparent;
  border-bottom: 7px solid #CCC;
  border-bottom-color: rgba(0, 0, 0, 0.2); }

.dropdown.dropdown-tip.dropdown-anchor-center:before {
  left: calc(50% - 5px); }

.dropdown.dropdown-tip.dropdown-anchor-right:before {
  left: auto;
  right: 9px; }

.dropdown.dropdown-tip:after {
  content: '';
  display: inline-block;
  position: absolute;
  top: -5px;
  left: 10px;
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
  border-bottom: 6px solid #FFF; }

.dropdown.dropdown-tip.dropdown-anchor-center:after {
  left: calc(50% - 4px); }

.dropdown.dropdown-tip.dropdown-anchor-right:after {
  left: auto;
  right: 10px; }

.dropdown.dropdown-scroll .dropdown-menu,
.dropdown.dropdown-scroll .dropdown-panel {
  overflow: auto;
  max-height: 358px; }

.dropdown .dropdown-menu li {
  list-style: none;
  padding: 0 0;
  margin: 0;
  line-height: 18px; }

.dropdown .dropdown-menu li > a,
.dropdown .dropdown-menu label {
  display: block;
  margin: 0;
  padding: 3px 15px;
  color: #555;
  line-height: 18px;
  text-decoration: none;
  white-space: nowrap; }

.dropdown .dropdown-menu li > a:hover,
.dropdown .dropdown-menu label:hover {
  background-color: #08C;
  color: #FFF;
  cursor: pointer; }

.dropdown .dropdown-menu .dropdown-divider {
  margin: 5px 0;
  padding: 0;
  border-top: solid 1px #E5E5E5;
  font-size: 1px; }

.dropdown.has-icons li > a {
  padding-left: 30px;
  background-position: 8px center;
  background-repeat: no-repeat; }

/*----- SORT -----*/
.sortable .order-trigger {
  cursor: move !important; }

.sortable li.dragged {
  position: absolute;
  top: 0;
  z-index: 100;
  min-height: 43px;
  border: 1px solid #c1c1c1; }

/*.sortable li.placeholder {position: relative; border: 1px dashed #c1c1c1}
.sortable li.placeholder:before {position: absolute}*/
.sortable li.placeholder {
  position: relative;
  margin: 0;
  padding: 0;
  border: 1px dashed #c1c1c1; }

/*----- ANIMACJE -----*/
.fade-in-up {
  -webkit-animation: fade-in-up 1s;
  -webkit-animation-fill-mode: both;
  -webkit-animation: fade-in-up 1s;
  animation: fade-in-up 1s;
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both; }

@-webkit-keyframes fade-in-up {
  0% {
    opacity: 0;
    -webkit-transform: translateY(-20px); }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0); } }

@keyframes fade-in-up {
  0% {
    opacity: 0;
    -webkit-transform: translateY(-20px);
    transform: translateY(-20px); }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
    transform: translateY(0); } }

.fade-out {
  -webkit-animation: fade-out .25s;
  -webkit-animation-fill-mode: both;
  -webkit-animation: fade-out .25s;
  animation: fade-out .25s;
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both; }

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

@keyframes fade-out {
  0% {
    opacity: 1; }
  100% {
    opacity: 0; } }

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

@font-face {
  font-family: 'Oswald';
  src: url("../fonts/oswald-light-webfont.eot");
  src: url("../fonts/oswald-light-webfont.eot?#iefix") format("embedded-opentype"), url("../fonts/oswald-light-webfont.woff") format("woff"), url("../fonts/oswald-light-webfont.ttf") format("truetype");
  font-weight: 300;
  font-style: normal; }

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

@font-face {
  font-family: 'Oswald';
  src: url("../fonts/oswald-bold-webfont.eot");
  src: url("../fonts/oswald-bold-webfont.eot?#iefix") format("embedded-opentype"), url("../fonts/oswald-bold-webfont.woff") format("woff"), url("../fonts/oswald-bold-webfont.ttf") format("truetype");
  font-weight: 700;
  font-style: normal; }

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

[class^="icon-"]:before,
[class*=" icon-"]:before,
.icon {
  font-family: 'Icons';
  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; }

.icon-glass:before {
  content: "\f000"; }

.icon-music:before {
  content: "\f001"; }

.icon-search:before {
  content: "\f002"; }

.icon-envelope-o:before {
  content: "\f003"; }

.icon-heart:before {
  content: "\f004"; }

.icon-star:before {
  content: "\f005"; }

.icon-star-o:before {
  content: "\f006"; }

.icon-user:before {
  content: "\f007"; }

.icon-film:before {
  content: "\f008"; }

.icon-th-large:before {
  content: "\f009"; }

.icon-th:before {
  content: "\f00a"; }

.icon-th-list:before {
  content: "\f00b"; }

.icon-check:before {
  content: "\f00c"; }

.icon-close:before {
  content: "\f00d"; }

.icon-remove:before {
  content: "\f00d"; }

.icon-times:before {
  content: "\f00d"; }

.icon-search-plus:before {
  content: "\f00e"; }

.icon-search-minus:before {
  content: "\f010"; }

.icon-power-off:before {
  content: "\f011"; }

.icon-signal:before {
  content: "\f012"; }

.icon-cog:before {
  content: "\f013"; }

.icon-gear:before {
  content: "\f013"; }

.icon-trash-o:before {
  content: "\f014"; }

.icon-home:before {
  content: "\f015"; }

.icon-file-o:before {
  content: "\f016"; }

.icon-clock-o:before {
  content: "\f017"; }

.icon-road:before {
  content: "\f018"; }

.icon-download:before {
  content: "\f019"; }

.icon-arrow-circle-o-down:before {
  content: "\f01a"; }

.icon-arrow-circle-o-up:before {
  content: "\f01b"; }

.icon-inbox:before {
  content: "\f01c"; }

.icon-play-circle-o:before {
  content: "\f01d"; }

.icon-repeat:before {
  content: "\f01e"; }

.icon-rotate-right:before {
  content: "\f01e"; }

.icon-refresh:before {
  content: "\f021"; }

.icon-list-alt:before {
  content: "\f022"; }

.icon-lock:before {
  content: "\f023"; }

.icon-flag:before {
  content: "\f024"; }

.icon-headphones:before {
  content: "\f025"; }

.icon-volume-off:before {
  content: "\f026"; }

.icon-volume-down:before {
  content: "\f027"; }

.icon-volume-up:before {
  content: "\f028"; }

.icon-qrcode:before {
  content: "\f029"; }

.icon-barcode:before {
  content: "\f02a"; }

.icon-tag:before {
  content: "\f02b"; }

.icon-tags:before {
  content: "\f02c"; }

.icon-book:before {
  content: "\f02d"; }

.icon-bookmark:before {
  content: "\f02e"; }

.icon-print:before {
  content: "\f02f"; }

.icon-camera:before {
  content: "\f030"; }

.icon-font:before {
  content: "\f031"; }

.icon-bold:before {
  content: "\f032"; }

.icon-italic:before {
  content: "\f033"; }

.icon-text-height:before {
  content: "\f034"; }

.icon-text-width:before {
  content: "\f035"; }

.icon-align-left:before {
  content: "\f036"; }

.icon-align-center:before {
  content: "\f037"; }

.icon-align-right:before {
  content: "\f038"; }

.icon-align-justify:before {
  content: "\f039"; }

.icon-list:before {
  content: "\f03a"; }

.icon-dedent:before {
  content: "\f03b"; }

.icon-outdent:before {
  content: "\f03b"; }

.icon-indent:before {
  content: "\f03c"; }

.icon-video-camera:before {
  content: "\f03d"; }

.icon-image:before {
  content: "\f03e"; }

.icon-photo:before {
  content: "\f03e"; }

.icon-picture-o:before {
  content: "\f03e"; }

.icon-pencil:before {
  content: "\f040"; }

.icon-map-marker:before {
  content: "\f041"; }

.icon-adjust:before {
  content: "\f042"; }

.icon-tint:before {
  content: "\f043"; }

.icon-edit:before {
  content: "\f044"; }

.icon-pencil-square-o:before {
  content: "\f044"; }

.icon-share-square-o:before {
  content: "\f045"; }

.icon-check-square-o:before {
  content: "\f046"; }

.icon-arrows:before {
  content: "\f047"; }

.icon-step-backward:before {
  content: "\f048"; }

.icon-fast-backward:before {
  content: "\f049"; }

.icon-backward:before {
  content: "\f04a"; }

.icon-play:before {
  content: "\f04b"; }

.icon-pause:before {
  content: "\f04c"; }

.icon-stop:before {
  content: "\f04d"; }

.icon-forward:before {
  content: "\f04e"; }

.icon-fast-forward:before {
  content: "\f050"; }

.icon-step-forward:before {
  content: "\f051"; }

.icon-eject:before {
  content: "\f052"; }

.icon-chevron-left:before {
  content: "\f053"; }

.icon-chevron-right:before {
  content: "\f054"; }

.icon-plus-circle:before {
  content: "\f055"; }

.icon-minus-circle:before {
  content: "\f056"; }

.icon-times-circle:before {
  content: "\f057"; }

.icon-check-circle:before {
  content: "\f058"; }

.icon-question-circle:before {
  content: "\f059"; }

.icon-info-circle:before {
  content: "\f05a"; }

.icon-crosshairs:before {
  content: "\f05b"; }

.icon-times-circle-o:before {
  content: "\f05c"; }

.icon-check-circle-o:before {
  content: "\f05d"; }

.icon-ban:before {
  content: "\f05e"; }

.icon-arrow-left:before {
  content: "\f060"; }

.icon-arrow-right:before {
  content: "\f061"; }

.icon-arrow-up:before {
  content: "\f062"; }

.icon-arrow-down:before {
  content: "\f063"; }

.icon-mail-forward:before {
  content: "\f064"; }

.icon-share:before {
  content: "\f064"; }

.icon-expand:before {
  content: "\f065"; }

.icon-compress:before {
  content: "\f066"; }

.icon-plus:before {
  content: "\f067"; }

.icon-minus:before {
  content: "\f068"; }

.icon-asterisk:before {
  content: "\f069"; }

.icon-exclamation-circle:before {
  content: "\f06a"; }

.icon-gift:before {
  content: "\f06b"; }

.icon-leaf:before {
  content: "\f06c"; }

.icon-fire:before {
  content: "\f06d"; }

.icon-eye:before {
  content: "\f06e"; }

.icon-eye-slash:before {
  content: "\f070"; }

.icon-exclamation-triangle:before {
  content: "\f071"; }

.icon-warning:before {
  content: "\f071"; }

.icon-plane:before {
  content: "\f072"; }

.icon-calendar:before {
  content: "\f073"; }

.icon-random:before {
  content: "\f074"; }

.icon-comment:before {
  content: "\f075"; }

.icon-magnet:before {
  content: "\f076"; }

.icon-chevron-up:before {
  content: "\f077"; }

.icon-chevron-down:before {
  content: "\f078"; }

.icon-retweet:before {
  content: "\f079"; }

.icon-shopping-cart:before {
  content: "\f07a"; }

.icon-folder:before {
  content: "\f07b"; }

.icon-folder-open:before {
  content: "\f07c"; }

.icon-arrows-v:before {
  content: "\f07d"; }

.icon-arrows-h:before {
  content: "\f07e"; }

.icon-bar-chart:before {
  content: "\f080"; }

.icon-bar-chart-o:before {
  content: "\f080"; }

.icon-twitter-square:before {
  content: "\f081"; }

.icon-facebook-square:before {
  content: "\f082"; }

.icon-camera-retro:before {
  content: "\f083"; }

.icon-key:before {
  content: "\f084"; }

.icon-cogs:before {
  content: "\f085"; }

.icon-gears:before {
  content: "\f085"; }

.icon-comments:before {
  content: "\f086"; }

.icon-thumbs-o-up:before {
  content: "\f087"; }

.icon-thumbs-o-down:before {
  content: "\f088"; }

.icon-star-half:before {
  content: "\f089"; }

.icon-heart-o:before {
  content: "\f08a"; }

.icon-sign-out:before {
  content: "\f08b"; }

.icon-linkedin-square:before {
  content: "\f08c"; }

.icon-thumb-tack:before {
  content: "\f08d"; }

.icon-external-link:before {
  content: "\f08e"; }

.icon-sign-in:before {
  content: "\f090"; }

.icon-trophy:before {
  content: "\f091"; }

.icon-github-square:before {
  content: "\f092"; }

.icon-upload:before {
  content: "\f093"; }

.icon-lemon-o:before {
  content: "\f094"; }

.icon-phone:before {
  content: "\f095"; }

.icon-square-o:before {
  content: "\f096"; }

.icon-bookmark-o:before {
  content: "\f097"; }

.icon-phone-square:before {
  content: "\f098"; }

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

.icon-facebook:before {
  content: "\f09a"; }

.icon-facebook-f:before {
  content: "\f09a"; }

.icon-github:before {
  content: "\f09b"; }

.icon-unlock:before {
  content: "\f09c"; }

.icon-credit-card:before {
  content: "\f09d"; }

.icon-feed:before {
  content: "\f09e"; }

.icon-rss:before {
  content: "\f09e"; }

.icon-hdd-o:before {
  content: "\f0a0"; }

.icon-bullhorn:before {
  content: "\f0a1"; }

.icon-bell-o:before {
  content: "\f0a2"; }

.icon-certificate:before {
  content: "\f0a3"; }

.icon-hand-o-right:before {
  content: "\f0a4"; }

.icon-hand-o-left:before {
  content: "\f0a5"; }

.icon-hand-o-up:before {
  content: "\f0a6"; }

.icon-hand-o-down:before {
  content: "\f0a7"; }

.icon-arrow-circle-left:before {
  content: "\f0a8"; }

.icon-arrow-circle-right:before {
  content: "\f0a9"; }

.icon-arrow-circle-up:before {
  content: "\f0aa"; }

.icon-arrow-circle-down:before {
  content: "\f0ab"; }

.icon-globe:before {
  content: "\f0ac"; }

.icon-wrench:before {
  content: "\f0ad"; }

.icon-tasks:before {
  content: "\f0ae"; }

.icon-filter:before {
  content: "\f0b0"; }

.icon-briefcase:before {
  content: "\f0b1"; }

.icon-arrows-alt:before {
  content: "\f0b2"; }

.icon-group:before {
  content: "\f0c0"; }

.icon-users:before {
  content: "\f0c0"; }

.icon-chain:before {
  content: "\f0c1"; }

.icon-link:before {
  content: "\f0c1"; }

.icon-cloud:before {
  content: "\f0c2"; }

.icon-flask:before {
  content: "\f0c3"; }

.icon-cut:before {
  content: "\f0c4"; }

.icon-scissors:before {
  content: "\f0c4"; }

.icon-copy:before {
  content: "\f0c5"; }

.icon-files-o:before {
  content: "\f0c5"; }

.icon-paperclip:before {
  content: "\f0c6"; }

.icon-floppy-o:before {
  content: "\f0c7"; }

.icon-save:before {
  content: "\f0c7"; }

.icon-square:before {
  content: "\f0c8"; }

.icon-bars:before {
  content: "\f0c9"; }

.icon-navicon:before {
  content: "\f0c9"; }

.icon-reorder:before {
  content: "\f0c9"; }

.icon-list-ul:before {
  content: "\f0ca"; }

.icon-list-ol:before {
  content: "\f0cb"; }

.icon-strikethrough:before {
  content: "\f0cc"; }

.icon-underline:before {
  content: "\f0cd"; }

.icon-table:before {
  content: "\f0ce"; }

.icon-magic:before {
  content: "\f0d0"; }

.icon-truck:before {
  content: "\f0d1"; }

.icon-pinterest:before {
  content: "\f0d2"; }

.icon-pinterest-square:before {
  content: "\f0d3"; }

.icon-google-plus-square:before {
  content: "\f0d4"; }

.icon-google-plus:before {
  content: "\f0d5"; }

.icon-money:before {
  content: "\f0d6"; }

.icon-caret-down:before {
  content: "\f0d7"; }

.icon-caret-up:before {
  content: "\f0d8"; }

.icon-caret-left:before {
  content: "\f0d9"; }

.icon-caret-right:before {
  content: "\f0da"; }

.icon-columns:before {
  content: "\f0db"; }

.icon-sort:before {
  content: "\f0dc"; }

.icon-unsorted:before {
  content: "\f0dc"; }

.icon-sort-desc:before {
  content: "\f0dd"; }

.icon-sort-down:before {
  content: "\f0dd"; }

.icon-sort-asc:before {
  content: "\f0de"; }

.icon-sort-up:before {
  content: "\f0de"; }

.icon-envelope:before {
  content: "\f0e0"; }

.icon-linkedin:before {
  content: "\f0e1"; }

.icon-rotate-left:before {
  content: "\f0e2"; }

.icon-undo:before {
  content: "\f0e2"; }

.icon-gavel:before {
  content: "\f0e3"; }

.icon-legal:before {
  content: "\f0e3"; }

.icon-dashboard:before {
  content: "\f0e4"; }

.icon-tachometer:before {
  content: "\f0e4"; }

.icon-comment-o:before {
  content: "\f0e5"; }

.icon-comments-o:before {
  content: "\f0e6"; }

.icon-bolt:before {
  content: "\f0e7"; }

.icon-flash:before {
  content: "\f0e7"; }

.icon-sitemap:before {
  content: "\f0e8"; }

.icon-umbrella:before {
  content: "\f0e9"; }

.icon-clipboard:before {
  content: "\f0ea"; }

.icon-paste:before {
  content: "\f0ea"; }

.icon-lightbulb-o:before {
  content: "\f0eb"; }

.icon-exchange:before {
  content: "\f0ec"; }

.icon-cloud-download:before {
  content: "\f0ed"; }

.icon-cloud-upload:before {
  content: "\f0ee"; }

.icon-user-md:before {
  content: "\f0f0"; }

.icon-stethoscope:before {
  content: "\f0f1"; }

.icon-suitcase:before {
  content: "\f0f2"; }

.icon-bell:before {
  content: "\f0f3"; }

.icon-coffee:before {
  content: "\f0f4"; }

.icon-cutlery:before {
  content: "\f0f5"; }

.icon-file-text-o:before {
  content: "\f0f6"; }

.icon-building-o:before {
  content: "\f0f7"; }

.icon-hospital-o:before {
  content: "\f0f8"; }

.icon-ambulance:before {
  content: "\f0f9"; }

.icon-medkit:before {
  content: "\f0fa"; }

.icon-fighter-jet:before {
  content: "\f0fb"; }

.icon-beer:before {
  content: "\f0fc"; }

.icon-h-square:before {
  content: "\f0fd"; }

.icon-plus-square:before {
  content: "\f0fe"; }

.icon-angle-double-left:before {
  content: "\f100"; }

.icon-angle-double-right:before {
  content: "\f101"; }

.icon-angle-double-up:before {
  content: "\f102"; }

.icon-angle-double-down:before {
  content: "\f103"; }

.icon-angle-left:before {
  content: "\f104"; }

.icon-angle-right:before {
  content: "\f105"; }

.icon-angle-up:before {
  content: "\f106"; }

.icon-angle-down:before {
  content: "\f107"; }

.icon-desktop:before {
  content: "\f108"; }

.icon-laptop:before {
  content: "\f109"; }

.icon-tablet:before {
  content: "\f10a"; }

.icon-mobile:before {
  content: "\f10b"; }

.icon-mobile-phone:before {
  content: "\f10b"; }

.icon-circle-o:before {
  content: "\f10c"; }

.icon-quote-left:before {
  content: "\f10d"; }

.icon-quote-right:before {
  content: "\f10e"; }

.icon-spinner:before {
  content: "\f110"; }

.icon-circle:before {
  content: "\f111"; }

.icon-mail-reply:before {
  content: "\f112"; }

.icon-reply:before {
  content: "\f112"; }

.icon-github-alt:before {
  content: "\f113"; }

.icon-folder-o:before {
  content: "\f114"; }

.icon-folder-open-o:before {
  content: "\f115"; }

.icon-smile-o:before {
  content: "\f118"; }

.icon-frown-o:before {
  content: "\f119"; }

.icon-meh-o:before {
  content: "\f11a"; }

.icon-gamepad:before {
  content: "\f11b"; }

.icon-keyboard-o:before {
  content: "\f11c"; }

.icon-flag-o:before {
  content: "\f11d"; }

.icon-flag-checkered:before {
  content: "\f11e"; }

.icon-terminal:before {
  content: "\f120"; }

.icon-code:before {
  content: "\f121"; }

.icon-mail-reply-all:before {
  content: "\f122"; }

.icon-reply-all:before {
  content: "\f122"; }

.icon-star-half-empty:before {
  content: "\f123"; }

.icon-star-half-full:before {
  content: "\f123"; }

.icon-star-half-o:before {
  content: "\f123"; }

.icon-location-arrow:before {
  content: "\f124"; }

.icon-crop:before {
  content: "\f125"; }

.icon-code-fork:before {
  content: "\f126"; }

.icon-chain-broken:before {
  content: "\f127"; }

.icon-unlink:before {
  content: "\f127"; }

.icon-question:before {
  content: "\f128"; }

.icon-info:before {
  content: "\f129"; }

.icon-exclamation:before {
  content: "\f12a"; }

.icon-superscript:before {
  content: "\f12b"; }

.icon-subscript:before {
  content: "\f12c"; }

.icon-eraser:before {
  content: "\f12d"; }

.icon-puzzle-piece:before {
  content: "\f12e"; }

.icon-microphone:before {
  content: "\f130"; }

.icon-microphone-slash:before {
  content: "\f131"; }

.icon-shield:before {
  content: "\f132"; }

.icon-calendar-o:before {
  content: "\f133"; }

.icon-fire-extinguisher:before {
  content: "\f134"; }

.icon-rocket:before {
  content: "\f135"; }

.icon-maxcdn:before {
  content: "\f136"; }

.icon-chevron-circle-left:before {
  content: "\f137"; }

.icon-chevron-circle-right:before {
  content: "\f138"; }

.icon-chevron-circle-up:before {
  content: "\f139"; }

.icon-chevron-circle-down:before {
  content: "\f13a"; }

.icon-html5:before {
  content: "\f13b"; }

.icon-css3:before {
  content: "\f13c"; }

.icon-anchor:before {
  content: "\f13d"; }

.icon-unlock-alt:before {
  content: "\f13e"; }

.icon-bullseye:before {
  content: "\f140"; }

.icon-ellipsis-h:before {
  content: "\f141"; }

.icon-ellipsis-v:before {
  content: "\f142"; }

.icon-rss-square:before {
  content: "\f143"; }

.icon-play-circle:before {
  content: "\f144"; }

.icon-ticket:before {
  content: "\f145"; }

.icon-minus-square:before {
  content: "\f146"; }

.icon-minus-square-o:before {
  content: "\f147"; }

.icon-level-up:before {
  content: "\f148"; }

.icon-level-down:before {
  content: "\f149"; }

.icon-check-square:before {
  content: "\f14a"; }

.icon-pencil-square:before {
  content: "\f14b"; }

.icon-external-link-square:before {
  content: "\f14c"; }

.icon-share-square:before {
  content: "\f14d"; }

.icon-compass:before {
  content: "\f14e"; }

.icon-caret-square-o-down:before {
  content: "\f150"; }

.icon-toggle-down:before {
  content: "\f150"; }

.icon-caret-square-o-up:before {
  content: "\f151"; }

.icon-toggle-up:before {
  content: "\f151"; }

.icon-caret-square-o-right:before {
  content: "\f152"; }

.icon-toggle-right:before {
  content: "\f152"; }

.icon-eur:before {
  content: "\f153"; }

.icon-euro:before {
  content: "\f153"; }

.icon-gbp:before {
  content: "\f154"; }

.icon-dollar:before {
  content: "\f155"; }

.icon-usd:before {
  content: "\f155"; }

.icon-inr:before {
  content: "\f156"; }

.icon-rupee:before {
  content: "\f156"; }

.icon-cny:before {
  content: "\f157"; }

.icon-jpy:before {
  content: "\f157"; }

.icon-rmb:before {
  content: "\f157"; }

.icon-yen:before {
  content: "\f157"; }

.icon-rouble:before {
  content: "\f158"; }

.icon-rub:before {
  content: "\f158"; }

.icon-ruble:before {
  content: "\f158"; }

.icon-krw:before {
  content: "\f159"; }

.icon-won:before {
  content: "\f159"; }

.icon-bitcoin:before {
  content: "\f15a"; }

.icon-btc:before {
  content: "\f15a"; }

.icon-file:before {
  content: "\f15b"; }

.icon-file-text:before {
  content: "\f15c"; }

.icon-sort-alpha-asc:before {
  content: "\f15d"; }

.icon-sort-alpha-desc:before {
  content: "\f15e"; }

.icon-sort-amount-asc:before {
  content: "\f160"; }

.icon-sort-amount-desc:before {
  content: "\f161"; }

.icon-sort-numeric-asc:before {
  content: "\f162"; }

.icon-sort-numeric-desc:before {
  content: "\f163"; }

.icon-thumbs-up:before {
  content: "\f164"; }

.icon-thumbs-down:before {
  content: "\f165"; }

.icon-youtube-square:before {
  content: "\f166"; }

.icon-youtube:before {
  content: "\f167"; }

.icon-xing:before {
  content: "\f168"; }

.icon-xing-square:before {
  content: "\f169"; }

.icon-youtube-play:before {
  content: "\f16a"; }

.icon-dropbox:before {
  content: "\f16b"; }

.icon-stack-overflow:before {
  content: "\f16c"; }

.icon-instagram:before {
  content: "\f16d"; }

.icon-flickr:before {
  content: "\f16e"; }

.icon-adn:before {
  content: "\f170"; }

.icon-bitbucket:before {
  content: "\f171"; }

.icon-bitbucket-square:before {
  content: "\f172"; }

.icon-tumblr:before {
  content: "\f173"; }

.icon-tumblr-square:before {
  content: "\f174"; }

.icon-long-arrow-down:before {
  content: "\f175"; }

.icon-long-arrow-up:before {
  content: "\f176"; }

.icon-long-arrow-left:before {
  content: "\f177"; }

.icon-long-arrow-right:before {
  content: "\f178"; }

.icon-apple:before {
  content: "\f179"; }

.icon-windows:before {
  content: "\f17a"; }

.icon-android:before {
  content: "\f17b"; }

.icon-linux:before {
  content: "\f17c"; }

.icon-dribbble:before {
  content: "\f17d"; }

.icon-skype:before {
  content: "\f17e"; }

.icon-foursquare:before {
  content: "\f180"; }

.icon-trello:before {
  content: "\f181"; }

.icon-female:before {
  content: "\f182"; }

.icon-male:before {
  content: "\f183"; }

.icon-gittip:before {
  content: "\f184"; }

.icon-gratipay:before {
  content: "\f184"; }

.icon-sun-o:before {
  content: "\f185"; }

.icon-moon-o:before {
  content: "\f186"; }

.icon-archive:before {
  content: "\f187"; }

.icon-bug:before {
  content: "\f188"; }

.icon-vk:before {
  content: "\f189"; }

.icon-weibo:before {
  content: "\f18a"; }

.icon-renren:before {
  content: "\f18b"; }

.icon-pagelines:before {
  content: "\f18c"; }

.icon-stack-exchange:before {
  content: "\f18d"; }

.icon-arrow-circle-o-right:before {
  content: "\f18e"; }

.icon-arrow-circle-o-left:before {
  content: "\f190"; }

.icon-caret-square-o-left:before {
  content: "\f191"; }

.icon-toggle-left:before {
  content: "\f191"; }

.icon-dot-circle-o:before {
  content: "\f192"; }

.icon-wheelchair:before {
  content: "\f193"; }

.icon-vimeo-square:before {
  content: "\f194"; }

.icon-try:before {
  content: "\f195"; }

.icon-turkish-lira:before {
  content: "\f195"; }

.icon-plus-square-o:before {
  content: "\f196"; }

.icon-space-shuttle:before {
  content: "\f197"; }

.icon-slack:before {
  content: "\f198"; }

.icon-envelope-square:before {
  content: "\f199"; }

.icon-wordpress:before {
  content: "\f19a"; }

.icon-openid:before {
  content: "\f19b"; }

.icon-bank:before {
  content: "\f19c"; }

.icon-institution:before {
  content: "\f19c"; }

.icon-university:before {
  content: "\f19c"; }

.icon-graduation-cap:before {
  content: "\f19d"; }

.icon-mortar-board:before {
  content: "\f19d"; }

.icon-yahoo:before {
  content: "\f19e"; }

.icon-google:before {
  content: "\f1a0"; }

.icon-reddit:before {
  content: "\f1a1"; }

.icon-reddit-square:before {
  content: "\f1a2"; }

.icon-stumbleupon-circle:before {
  content: "\f1a3"; }

.icon-stumbleupon:before {
  content: "\f1a4"; }

.icon-delicious:before {
  content: "\f1a5"; }

.icon-digg:before {
  content: "\f1a6"; }

.icon-pied-piper:before {
  content: "\f1a7"; }

.icon-pied-piper-alt:before {
  content: "\f1a8"; }

.icon-drupal:before {
  content: "\f1a9"; }

.icon-joomla:before {
  content: "\f1aa"; }

.icon-language:before {
  content: "\f1ab"; }

.icon-fax:before {
  content: "\f1ac"; }

.icon-building:before {
  content: "\f1ad"; }

.icon-child:before {
  content: "\f1ae"; }

.icon-paw:before {
  content: "\f1b0"; }

.icon-spoon:before {
  content: "\f1b1"; }

.icon-cube:before {
  content: "\f1b2"; }

.icon-cubes:before {
  content: "\f1b3"; }

.icon-behance:before {
  content: "\f1b4"; }

.icon-behance-square:before {
  content: "\f1b5"; }

.icon-steam:before {
  content: "\f1b6"; }

.icon-steam-square:before {
  content: "\f1b7"; }

.icon-recycle:before {
  content: "\f1b8"; }

.icon-automobile:before {
  content: "\f1b9"; }

.icon-car:before {
  content: "\f1b9"; }

.icon-cab:before {
  content: "\f1ba"; }

.icon-taxi:before {
  content: "\f1ba"; }

.icon-tree:before {
  content: "\f1bb"; }

.icon-spotify:before {
  content: "\f1bc"; }

.icon-deviantart:before {
  content: "\f1bd"; }

.icon-soundcloud:before {
  content: "\f1be"; }

.icon-database:before {
  content: "\f1c0"; }

.icon-file-pdf-o:before {
  content: "\f1c1"; }

.icon-file-word-o:before {
  content: "\f1c2"; }

.icon-file-excel-o:before {
  content: "\f1c3"; }

.icon-file-powerpoint-o:before {
  content: "\f1c4"; }

.icon-file-image-o:before {
  content: "\f1c5"; }

.icon-file-photo-o:before {
  content: "\f1c5"; }

.icon-file-picture-o:before {
  content: "\f1c5"; }

.icon-file-archive-o:before {
  content: "\f1c6"; }

.icon-file-zip-o:before {
  content: "\f1c6"; }

.icon-file-audio-o:before {
  content: "\f1c7"; }

.icon-file-sound-o:before {
  content: "\f1c7"; }

.icon-file-movie-o:before {
  content: "\f1c8"; }

.icon-file-video-o:before {
  content: "\f1c8"; }

.icon-file-code-o:before {
  content: "\f1c9"; }

.icon-vine:before {
  content: "\f1ca"; }

.icon-codepen:before {
  content: "\f1cb"; }

.icon-jsfiddle:before {
  content: "\f1cc"; }

.icon-life-bouy:before {
  content: "\f1cd"; }

.icon-life-buoy:before {
  content: "\f1cd"; }

.icon-life-ring:before {
  content: "\f1cd"; }

.icon-life-saver:before {
  content: "\f1cd"; }

.icon-support:before {
  content: "\f1cd"; }

.icon-circle-o-notch:before {
  content: "\f1ce"; }

.icon-ra:before {
  content: "\f1d0"; }

.icon-rebel:before {
  content: "\f1d0"; }

.icon-empire:before {
  content: "\f1d1"; }

.icon-ge:before {
  content: "\f1d1"; }

.icon-git-square:before {
  content: "\f1d2"; }

.icon-git:before {
  content: "\f1d3"; }

.icon-hacker-news:before {
  content: "\f1d4"; }

.icon-y-combinator-square:before {
  content: "\f1d4"; }

.icon-yc-square:before {
  content: "\f1d4"; }

.icon-tencent-weibo:before {
  content: "\f1d5"; }

.icon-qq:before {
  content: "\f1d6"; }

.icon-wechat:before {
  content: "\f1d7"; }

.icon-weixin:before {
  content: "\f1d7"; }

.icon-paper-plane:before {
  content: "\f1d8"; }

.icon-send:before {
  content: "\f1d8"; }

.icon-paper-plane-o:before {
  content: "\f1d9"; }

.icon-send-o:before {
  content: "\f1d9"; }

.icon-history:before {
  content: "\f1da"; }

.icon-circle-thin:before {
  content: "\f1db"; }

.icon-header:before {
  content: "\f1dc"; }

.icon-paragraph:before {
  content: "\f1dd"; }

.icon-sliders:before {
  content: "\f1de"; }

.icon-share-alt:before {
  content: "\f1e0"; }

.icon-share-alt-square:before {
  content: "\f1e1"; }

.icon-bomb:before {
  content: "\f1e2"; }

.icon-futbol-o:before {
  content: "\f1e3"; }

.icon-soccer-ball-o:before {
  content: "\f1e3"; }

.icon-tty:before {
  content: "\f1e4"; }

.icon-binoculars:before {
  content: "\f1e5"; }

.icon-plug:before {
  content: "\f1e6"; }

.icon-slideshare:before {
  content: "\f1e7"; }

.icon-twitch:before {
  content: "\f1e8"; }

.icon-yelp:before {
  content: "\f1e9"; }

.icon-newspaper-o:before {
  content: "\f1ea"; }

.icon-wifi:before {
  content: "\f1eb"; }

.icon-calculator:before {
  content: "\f1ec"; }

.icon-paypal:before {
  content: "\f1ed"; }

.icon-google-wallet:before {
  content: "\f1ee"; }

.icon-cc-visa:before {
  content: "\f1f0"; }

.icon-cc-mastercard:before {
  content: "\f1f1"; }

.icon-cc-discover:before {
  content: "\f1f2"; }

.icon-cc-amex:before {
  content: "\f1f3"; }

.icon-cc-paypal:before {
  content: "\f1f4"; }

.icon-cc-stripe:before {
  content: "\f1f5"; }

.icon-bell-slash:before {
  content: "\f1f6"; }

.icon-bell-slash-o:before {
  content: "\f1f7"; }

.icon-trash:before {
  content: "\f1f8"; }

.icon-copyright:before {
  content: "\f1f9"; }

.icon-at:before {
  content: "\f1fa"; }

.icon-eyedropper:before {
  content: "\f1fb"; }

.icon-paint-brush:before {
  content: "\f1fc"; }

.icon-birthday-cake:before {
  content: "\f1fd"; }

.icon-area-chart:before {
  content: "\f1fe"; }

.icon-pie-chart:before {
  content: "\f200"; }

.icon-line-chart:before {
  content: "\f201"; }

.icon-lastfm:before {
  content: "\f202"; }

.icon-lastfm-square:before {
  content: "\f203"; }

.icon-toggle-off:before {
  content: "\f204"; }

.icon-toggle-on:before {
  content: "\f205"; }

.icon-bicycle:before {
  content: "\f206"; }

.icon-bus:before {
  content: "\f207"; }

.icon-ioxhost:before {
  content: "\f208"; }

.icon-angellist:before {
  content: "\f209"; }

.icon-cc:before {
  content: "\f20a"; }

.icon-ils:before {
  content: "\f20b"; }

.icon-shekel:before {
  content: "\f20b"; }

.icon-sheqel:before {
  content: "\f20b"; }

.icon-meanpath:before {
  content: "\f20c"; }

.icon-buysellads:before {
  content: "\f20d"; }

.icon-connectdevelop:before {
  content: "\f20e"; }

.icon-dashcube:before {
  content: "\f210"; }

.icon-forumbee:before {
  content: "\f211"; }

.icon-leanpub:before {
  content: "\f212"; }

.icon-sellsy:before {
  content: "\f213"; }

.icon-shirtsinbulk:before {
  content: "\f214"; }

.icon-simplybuilt:before {
  content: "\f215"; }

.icon-skyatlas:before {
  content: "\f216"; }

.icon-cart-plus:before {
  content: "\f217"; }

.icon-cart-arrow-down:before {
  content: "\f218"; }

.icon-diamond:before {
  content: "\f219"; }

.icon-ship:before {
  content: "\f21a"; }

.icon-user-secret:before {
  content: "\f21b"; }

.icon-motorcycle:before {
  content: "\f21c"; }

.icon-street-view:before {
  content: "\f21d"; }

.icon-heartbeat:before {
  content: "\f21e"; }

.icon-venus:before {
  content: "\f221"; }

.icon-mars:before {
  content: "\f222"; }

.icon-mercury:before {
  content: "\f223"; }

.icon-intersex:before {
  content: "\f224"; }

.icon-transgender:before {
  content: "\f224"; }

.icon-transgender-alt:before {
  content: "\f225"; }

.icon-venus-double:before {
  content: "\f226"; }

.icon-mars-double:before {
  content: "\f227"; }

.icon-venus-mars:before {
  content: "\f228"; }

.icon-mars-stroke:before {
  content: "\f229"; }

.icon-mars-stroke-v:before {
  content: "\f22a"; }

.icon-mars-stroke-h:before {
  content: "\f22b"; }

.icon-neuter:before {
  content: "\f22c"; }

.icon-genderless:before {
  content: "\f22d"; }

.icon-facebook-official:before {
  content: "\f230"; }

.icon-pinterest-p:before {
  content: "\f231"; }

.icon-whatsapp:before {
  content: "\f232"; }

.icon-server:before {
  content: "\f233"; }

.icon-user-plus:before {
  content: "\f234"; }

.icon-user-times:before {
  content: "\f235"; }

.icon-bed:before {
  content: "\f236"; }

.icon-hotel:before {
  content: "\f236"; }

.icon-viacoin:before {
  content: "\f237"; }

.icon-train:before {
  content: "\f238"; }

.icon-subway:before {
  content: "\f239"; }

.icon-medium:before {
  content: "\f23a"; }

.icon-y-combinator:before {
  content: "\f23b"; }

.icon-yc:before {
  content: "\f23b"; }

.icon-optin-monster:before {
  content: "\f23c"; }

.icon-opencart:before {
  content: "\f23d"; }

.icon-expeditedssl:before {
  content: "\f23e"; }

.icon-battery-4:before {
  content: "\f240"; }

.icon-battery-full:before {
  content: "\f240"; }

.icon-battery-3:before {
  content: "\f241"; }

.icon-battery-three-quarters:before {
  content: "\f241"; }

.icon-battery-2:before {
  content: "\f242"; }

.icon-battery-half:before {
  content: "\f242"; }

.icon-battery-1:before {
  content: "\f243"; }

.icon-battery-quarter:before {
  content: "\f243"; }

.icon-battery-0:before {
  content: "\f244"; }

.icon-battery-empty:before {
  content: "\f244"; }

.icon-mouse-pointer:before {
  content: "\f245"; }

.icon-i-cursor:before {
  content: "\f246"; }

.icon-object-group:before {
  content: "\f247"; }

.icon-object-ungroup:before {
  content: "\f248"; }

.icon-sticky-note:before {
  content: "\f249"; }

.icon-sticky-note-o:before {
  content: "\f24a"; }

.icon-cc-jcb:before {
  content: "\f24b"; }

.icon-cc-diners-club:before {
  content: "\f24c"; }

.icon-clone:before {
  content: "\f24d"; }

.icon-balance-scale:before {
  content: "\f24e"; }

.icon-hourglass-o:before {
  content: "\f250"; }

.icon-hourglass-1:before {
  content: "\f251"; }

.icon-hourglass-start:before {
  content: "\f251"; }

.icon-hourglass-2:before {
  content: "\f252"; }

.icon-hourglass-half:before {
  content: "\f252"; }

.icon-hourglass-3:before {
  content: "\f253"; }

.icon-hourglass-end:before {
  content: "\f253"; }

.icon-hourglass:before {
  content: "\f254"; }

.icon-hand-grab-o:before {
  content: "\f255"; }

.icon-hand-rock-o:before {
  content: "\f255"; }

.icon-hand-paper-o:before {
  content: "\f256"; }

.icon-hand-stop-o:before {
  content: "\f256"; }

.icon-hand-scissors-o:before {
  content: "\f257"; }

.icon-hand-lizard-o:before {
  content: "\f258"; }

.icon-hand-spock-o:before {
  content: "\f259"; }

.icon-hand-pointer-o:before {
  content: "\f25a"; }

.icon-hand-peace-o:before {
  content: "\f25b"; }

.icon-trademark:before {
  content: "\f25c"; }

.icon-registered:before {
  content: "\f25d"; }

.icon-creative-commons:before {
  content: "\f25e"; }

.icon-gg:before {
  content: "\f260"; }

.icon-gg-circle:before {
  content: "\f261"; }

.icon-tripadvisor:before {
  content: "\f262"; }

.icon-odnoklassniki:before {
  content: "\f263"; }

.icon-odnoklassniki-square:before {
  content: "\f264"; }

.icon-get-pocket:before {
  content: "\f265"; }

.icon-wikipedia-w:before {
  content: "\f266"; }

.icon-safari:before {
  content: "\f267"; }

.icon-chrome:before {
  content: "\f268"; }

.icon-firefox:before {
  content: "\f269"; }

.icon-opera:before {
  content: "\f26a"; }

.icon-internet-explorer:before {
  content: "\f26b"; }

.icon-television:before {
  content: "\f26c"; }

.icon-tv:before {
  content: "\f26c"; }

.icon-contao:before {
  content: "\f26d"; }

.icon-500px:before {
  content: "\f26e"; }

.icon-amazon:before {
  content: "\f270"; }

.icon-calendar-plus-o:before {
  content: "\f271"; }

.icon-calendar-minus-o:before {
  content: "\f272"; }

.icon-calendar-times-o:before {
  content: "\f273"; }

.icon-calendar-check-o:before {
  content: "\f274"; }

.icon-industry:before {
  content: "\f275"; }

.icon-map-pin:before {
  content: "\f276"; }

.icon-map-signs:before {
  content: "\f277"; }

.icon-map-o:before {
  content: "\f278"; }

.icon-map:before {
  content: "\f279"; }

.icon-commenting:before {
  content: "\f27a"; }

.icon-commenting-o:before {
  content: "\f27b"; }

.icon-houzz:before {
  content: "\f27c"; }

.icon-vimeo:before {
  content: "\f27d"; }

.icon-black-tie:before {
  content: "\f27e"; }

.icon-fonticons:before {
  content: "\f280"; }

.icon-reddit-alien:before {
  content: "\f281"; }

.icon-edge:before {
  content: "\f282"; }

.icon-credit-card-alt:before {
  content: "\f283"; }

.icon-codiepie:before {
  content: "\f284"; }

.icon-modx:before {
  content: "\f285"; }

.icon-fort-awesome:before {
  content: "\f286"; }

.icon-usb:before {
  content: "\f287"; }

.icon-product-hunt:before {
  content: "\f288"; }

.icon-mixcloud:before {
  content: "\f289"; }

.icon-scribd:before {
  content: "\f28a"; }

.icon-pause-circle:before {
  content: "\f28b"; }

.icon-pause-circle-o:before {
  content: "\f28c"; }

.icon-stop-circle:before {
  content: "\f28d"; }

.icon-stop-circle-o:before {
  content: "\f28e"; }

.icon-shopping-bag:before {
  content: "\f290"; }

.icon-shopping-basket:before {
  content: "\f291"; }

.icon-hashtag:before {
  content: "\f292"; }

.icon-bluetooth:before {
  content: "\f293"; }

.icon-bluetooth-b:before {
  content: "\f294"; }

.icon-percent:before {
  content: "\f295"; }

/*----- BASE -----*/
input,
button,
select {
  vertical-align: middle;
  outline: none; }

textarea {
  vertical-align: top;
  outline: none; }

input[type="date"] {
  -webkit-appearance: none;
  -moz-appearance: textfield;
  appearance: textfield; }

.ios input, .ios select, .ios textarea {
  -webkit-appearance: none; }

/*----- POLA FORMULARZY -----*/
input[type="text"],
input[type="email"],
input[type="password"],
input[type="search"],
input[type="date"],
input[type="url"],
textarea {
  width: 100%;
  padding: 8px;
  background: #f3f3f3;
  border: 1px solid #e8e8e8;
  border-radius: 0;
  color: #6b6b6b;
  transition: border 0.25s ease; }

/* Zdarzenia */
input[type="text"]:focus,
input[type="email"]:focus,
input[type="password"]:focus,
input[type="search"]:focus,
input[type="date"]:focus,
input[type="url"]:focus,
.button:focus,
textarea:focus {
  border-color: #00a2ff;
  outline: 0 none; }

button,
select,
label[for],
input[type="reset"],
input[type="radio"],
input[type="button"],
input[type="submit"],
input[type="checkbox"] {
  cursor: pointer; }

button[disabled],
select[disabled],
label[disabled][for],
input[disabled][type="reset"],
input[disabled][type="radio"],
input[disabled][type="button"],
input[disabled][type="submit"],
input[disabled][type="checkbox"] {
  cursor: default; }

/*----- PRZYCISKI -----*/
.button {
  position: relative;
  display: inline-block;
  overflow: hidden;
  min-height: 42px;
  padding: 0px 46px;
  color: #000;
  background: #fff;
  border: 4px solid #000;
  border-radius: 0;
  font-family: "Oswald", "Roboto", "Arial", "Helvetica", "sans-serif";
  font-size: 18px;
  font-weight: 700;
  line-height: 40px;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
  transition: all 0.25s ease; }
  .button.active, .button:hover {
    color: #fff;
    border-color: #00a2ff;
    background: #00a2ff; }
  .button a {
    color: #7d7e7e; }
  .button img {
    display: inline-block;
    vertical-align: middle; }
    .button img.arrow {
      position: relative;
      top: -2px;
      margin-right: 10px; }
  .button i.left {
    float: left;
    padding-right: 10px; }
  .button i.right {
    float: right;
    padding-left: 10px; }
  .button.text-hide {
    padding-left: 0;
    padding-right: 0;
    text-indent: -999em; }

/* Grupa przycisków */
.button-group .button {
  float: left;
  border-right-width: 0;
  border-radius: 0; }
  .button-group .button:first-child {
    border-radius: 5px 0 0 5px; }
  .button-group .button:last-child {
    border-right-width: 1px;
    border-radius: 0 5px 5px 0; }

/*----- CHECKBOX -----*/
input[type="checkbox"] {
  position: absolute;
  visibility: hidden; }
  input[type="checkbox"] + span {
    overflow: hidden;
    display: inline-block;
    width: 20px;
    height: 20px;
    border: 1px solid #dcdcdc;
    background: #fff;
    text-indent: -99em;
    vertical-align: middle;
    white-space: nowrap;
    cursor: pointer; }
    input[type="checkbox"] + span:before {
      float: left;
      width: 100%;
      height: 100%;
      text-indent: 0;
      color: transparent;
      font-size: 12px;
      text-align: center;
      line-height: 18px;
      transition: color 0.25s ease; }
  input[type="checkbox"]:checked + span:before {
    color: #222; }

/*----- RADIO BUTTON -----*/
input[type="radio"] {
  position: absolute;
  visibility: hidden; }
  input[type="radio"] + span {
    position: relative;
    overflow: hidden;
    display: inline-block;
    width: 20px;
    height: 20px;
    border: 1px solid #dcdcdc;
    border-radius: 20px;
    background: #fff;
    text-indent: -99em;
    vertical-align: middle;
    white-space: nowrap;
    cursor: pointer; }
    input[type="radio"] + span:before {
      content: '';
      position: absolute;
      top: 0;
      right: 0;
      bottom: 0;
      left: 0;
      width: 10px;
      height: 10px;
      margin: auto;
      border-radius: 10px;
      background: transparent;
      transition: background 0.25s ease; }
  input[type="radio"]:checked + span:before {
    background: #222; }

/*----- SELECTBOX -----*/
/*
 * Style dla treści z edytorów WYSIWYG
 */
.wysiwyg * + p,
.wysiwyg * + dl,
.wysiwyg * + h1,
.wysiwyg * + h2,
.wysiwyg * + h3,
.wysiwyg * + h4,
.wysiwyg * + h5,
.wysiwyg * + h6,
.wysiwyg * + ol,
.wysiwyg * + ul,
.wysiwyg * + figure,
.wysiwyg * + table,
.wysiwyg * + blockquote {
  margin-top: 20px; }

.wysiwyg ul li {
  position: relative;
  padding-left: 40px; }
  .wysiwyg ul li:before {
    content: '♦';
    position: absolute;
    left: 0;
    width: 28px;
    padding: 4px 0;
    color: #222;
    text-align: center;
    line-height: 1; }
  .wysiwyg ul li + li {
    margin-top: 10px; }

.wysiwyg ol li {
  counter-increment: ordered-list; }
  .wysiwyg ol li:before {
    content: counter(ordered-list);
    display: inline-block;
    width: 32px;
    margin-right: 8px;
    padding: 7px 0;
    background: #E8E2DA;
    color: #222;
    font-size: 14px;
    text-align: center; }
  .wysiwyg ol li + li {
    margin-top: 10px; }

.wysiwyg li ul, .wysiwyg li ol {
  margin-top: 0;
  margin-bottom: 0; }

.wysiwyg dl dt {
  font-style: italic; }

.wysiwyg dl dd + dt {
  margin-top: 10px; }

/*----- BASE -----*/
body {
  background: #fff;
  font-family: "Oswald", "Roboto", "Arial", "Helvetica", "sans-serif";
  color: #181717;
  width: 100%;
  overflow-y: hidden;
  overflow-x: hidden; }
  @media all and (min-width: 1921px) {
    body {
      background-size: cover; } }

.page-container {
  position: relative;
  margin: 40px; }
  @media screen and (min-width: 720px) and (max-width: 959px) {
    .page-container {
      margin: 0; } }
  @media screen and (min-width: 480px) and (max-width: 719px) {
    .page-container {
      margin: 0; } }
  @media screen and (max-width: 479px) {
    .page-container {
      margin: 0; } }

body, .grid > * {
  font-size: 18px; }

::-moz-selection {
  background: #b3d4fc;
  text-shadow: none; }

::selection {
  background: #b3d4fc;
  text-shadow: none; }

::-moz-selection {
  background: #b3d4fc;
  text-shadow: none; }

::-webkit-input-placeholder {
  color: #fff; }

::-moz-placeholder {
  color: #fff; }

:-ms-input-placeholder {
  color: #fff; }

h1, h2, h3, h4, h5, h6 {
  margin-bottom: 20px;
  letter-spacing: -2.5px; 

 }
 
 @media all and (max-width: 720px) {
 h1, h2, h3, h4, h5, h6 {
  letter-spacing: 0px; 
 }
 }

a {
  color: #00a2ff;
  transition: all 0.25s ease; }
  a:hover {
    color: #666;
    transition: all 0.25s ease; }

.container {
  width: 100%;
  max-width: 1300px;
  padding: 0 10px;
  margin: 0 auto; }

blockquote {
  position: relative;
  padding: 20px 20px 20px 60px;
  border: 1px solid #E8E2DA;
  border-width: 1px 0;
  font-style: italic; }
  blockquote:after {
    content: open-quote;
    position: absolute;
    top: 16px;
    left: 0;
    color: #E8E2DA;
    font-size: 72px;
    font-weight: 700;
    line-height: 1; }

/*----- MARGINESY ------*/
.margin {
  margin: 20px; }

.wMargin {
  margin: 0 20px; }

.hMargin {
  margin: 20px 0; }

.padding {
  padding: 20px; }

/*----- TABELE -----*/
table {
  width: 100%;
  border-spacing: 10px;
  color: #222; }
  table tr > * {
    padding: 15px 30px;
    background: #F0ECE7;
    text-align: left; }
  table tr:nth-child(2n+1) > * {
    background: #E8E2DA; }
  table tr * > * {
    border-left: 1px solid #fff; }
  table tr + tr > * {
    border-top: 1px solid #fff; }
  table tr th {
    background: #00A2FF !important;
    color: #fff;
    font-size: 18px;
    text-transform: uppercase; }
  table thead th {
    text-align: center; }

.page-header {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 10;
  width: 100%;
  height: 50px;
  background: rgba(0, 0, 0, 0.9);
  color: #fff;
  font-size: 15px; }
  .page-header a {
    color: #fff; }
    .page-header a:hover {
      color: #00a2ff; }
  .page-header .logo {
    position: relative;
    top: 22px;
    left: 22px;
    display: inline-block;
    width: 258px;
    height: 48px; }
  .page-header .phone-field {
    position: relative;
    overflow: hidden;
    display: inline-block;
    height: 50px;
    line-height: 50px;
    margin-left: 20px;
    padding-left: 12px;
    font-size: 18px;
    text-transform: uppercase; }
    .page-header .phone-field p {
      padding: 0 40px 0 30px;
      background: #00a2ff; }
      .page-header .phone-field p:before {
        content: '';
        position: absolute;
        top: 0px;
        left: 6px;
        width: 12px;
        height: 52px;
        background: #00a2ff;
        -webkit-transform: rotate(12deg);
        transform: rotate(12deg); }
  .page-header .page-menu {
    display: inline-block;
    float: right; }
    .page-header .page-menu .desktop-menu {
      float: right;
      display: inline-block;
      height: 50px;
      text-align: right;
      -webkit-transform: translate3d(0, 0, 0);
      transform: translate3d(0, 0, 0);
      -webkit-transform-style: preserve-3d;
      transform-style: preserve-3d; }
      .page-header .page-menu .desktop-menu ul {
        display: inline-block;
        vertical-align: top; }
      .page-header .page-menu .desktop-menu li {
        position: relative;
        display: inline-block;
        text-transform: uppercase; }
        .page-header .page-menu .desktop-menu li a {
          display: block;
          line-height: 50px; }
        .page-header .page-menu .desktop-menu li + li {
          margin-left: 20px; }
    .page-header .page-menu .menu-img {
      margin-right: 10px;
      display: inline-block;
      vertical-align: middle; }
    .page-header .page-menu .mobile-header {
      float: left; }
      .page-header .page-menu .mobile-header .menu-button {
        display: block;
        position: absolute;
        top: 0px;
        right: 0;
        z-index: 3;
        width: 70px;
        height: 70px;
        padding: 13px;
        border: none;
        background: #00a2ff;
        cursor: pointer; }
        .page-header .page-menu .mobile-header .menu-button span {
          display: block;
          width: 45px;
          height: 5px;
          margin-top: -2px;
          background: #fff;
          text-indent: -999em;
          transition: all 0.25s ease; }
          .page-header .page-menu .mobile-header .menu-button span:before, .page-header .page-menu .mobile-header .menu-button span:after {
            content: '';
            position: absolute;
            top: 17px;
            display: block;
            width: 45px;
            height: 5px;
            margin-top: 15px;
            background: #fff;
            text-indent: -999em;
            transition: all 0.25s ease; }
          .page-header .page-menu .mobile-header .menu-button span:before {
            -webkit-transform: translateY(-14px) rotate(0deg);
            transform: translateY(-14px) rotate(0deg); }
          .page-header .page-menu .mobile-header .menu-button span:after {
            -webkit-transform: translateY(14px) rotate(0deg);
            transform: translateY(14px) rotate(0deg); }
        .page-header .page-menu .mobile-header .menu-button.open span {
          background: #00a2ff; }
          .page-header .page-menu .mobile-header .menu-button.open span:before {
            -webkit-transform: translateY(0px) rotate(45deg);
            transform: translateY(0px) rotate(45deg); }
          .page-header .page-menu .mobile-header .menu-button.open span:after {
            -webkit-transform: translateY(0px) rotate(-45deg);
            transform: translateY(0px) rotate(-45deg); }
        .page-header .page-menu .mobile-header .menu-button .button-closed {
          display: block; }
        .page-header .page-menu .mobile-header .menu-button .button-open {
          display: none; }
      .page-header .page-menu .mobile-header .mobile-menu {
        display: none;
        position: absolute;
        z-index: 2;
        top: 0px;
        left: 0;
        width: 100%;
        background: rgba(0, 162, 255, 0.95);
        padding-bottom: 20px; }
        .page-header .page-menu .mobile-header .mobile-menu .logo {
          top: 0;
          left: 0;
          display: block;
          width: 100%;
          height: auto;
          max-width: 380px;
          padding: 20px;
          margin: 10vh auto;
          margin-bottom: 80px; }
        .page-header .page-menu .mobile-header .mobile-menu li {
          display: block;
          text-align: center;
          text-transform: uppercase; }
          .page-header .page-menu .mobile-header .mobile-menu li a {
            font-size: 64px;
            line-height: 64px; }
            .page-header .page-menu .mobile-header .mobile-menu li a img {
              display: none; }
            .page-header .page-menu .mobile-header .mobile-menu li a:hover {
              color: inherit; }
          .page-header .page-menu .mobile-header .mobile-menu li + li {
            margin-top: 20px; }
        .page-header .page-menu .mobile-header .mobile-menu .phone-field {
          width: 100%;
          height: auto;
          font-size: 64px;
          line-height: 64px;
          margin: 0;
          margin-bottom: 140px;
          text-align: center; }
          .page-header .page-menu .mobile-header .mobile-menu .phone-field p {
            background: none; }
            .page-header .page-menu .mobile-header .mobile-menu .phone-field p:before {
              position: relative;
              left: 0;
              display: block;
              width: 152px;
              height: 28px;
              margin: 140px auto;
              background: url("../img/img_bike_chain_white.png") no-repeat;
              background-size: 100%;
              -webkit-transform: none;
              transform: none; }
        @media screen and (min-width: 480px) and (max-width: 719px) {
          .page-header .page-menu .mobile-header .mobile-menu .logo {
            margin-bottom: 10px; }
          .page-header .page-menu .mobile-header .mobile-menu li a, .page-header .page-menu .mobile-header .mobile-menu .phone-field {
            font-size: 10vw;
            line-height: 12vw; }
          .page-header .page-menu .mobile-header .mobile-menu .phone-field {
            margin-bottom: 60px; }
            .page-header .page-menu .mobile-header .mobile-menu .phone-field p:before {
              margin: 60px auto; } }
        @media screen and (max-width: 479px) {
          .page-header .page-menu .mobile-header .mobile-menu .logo {
            margin-bottom: 10px; }
          .page-header .page-menu .mobile-header .mobile-menu li a, .page-header .page-menu .mobile-header .mobile-menu .phone-field {
            font-size: 10vw;
            line-height: 12vw; }
          .page-header .page-menu .mobile-header .mobile-menu .phone-field {
            margin-bottom: 60px; }
            .page-header .page-menu .mobile-header .mobile-menu .phone-field p:before {
              margin: 60px auto; } }
      @media screen and (min-width: 960px) and (max-width: 1279px) {
        .page-header .page-menu .mobile-header {
          display: none !important; } }
      @media screen and (min-width: 1280px) {
        .page-header .page-menu .mobile-header {
          display: none !important; } }
    .page-header .page-menu.open .mobile-header button .button-closed {
      display: none; }
    .page-header .page-menu.open .mobile-header button .button-open {
      display: block; }
  @media screen and (min-width: 720px) and (max-width: 959px) {
    .page-header {
      height: 70px; }
      .page-header .page-menu {
        padding: 0 20px; }
        .page-header .page-menu .desktop-menu {
          display: none; } }
  @media screen and (min-width: 480px) and (max-width: 719px) {
    .page-header {
      height: 70px; }
      .page-header .page-menu {
        padding: 0 20px; }
        .page-header .page-menu .desktop-menu {
          display: none; } }
  @media screen and (max-width: 479px) {
    .page-header {
      height: 70px; }
      .page-header .page-menu {
        padding: 0 20px; }
        .page-header .page-menu .desktop-menu {
          display: none; } }
  @media screen and (min-width: 480px) and (max-width: 719px) {
    .page-header > .logo {
      max-width: 210px; } }
  @media screen and (max-width: 479px) {
    .page-header > .logo {
      max-width: 210px; } }

.page-footer {
  position: relative;
  bottom: 0;
  width: 100%;
  height: 54px;
  padding: 9px 0;
  background: #282725;
  color: #fff;
  font-family: "Roboto";
  font-size: 12px;
  text-transform: uppercase; }
  .page-footer .container {
    margin: 0 auto; }
    .page-footer .container:after, .page-index .section-column:after, .page-index .section-list:after, .page-index .section-slogan:after, .page-index .section-contact .page-container:after {
      content: "";
      display: table;
      clear: both; }
    .page-footer .copyright, .page-footer .credits, .page-index .section-column figure, .page-index .section-column .content, .page-index .section-list .column, .page-index .section-slogan figure, .page-index .section-contact .content, .page-index .section-contact #map {
      display: inline-block;
      min-height: 1px;
      float: left;
      box-sizing: border-box;
      vertical-align: top;
      padding-top: 10px;
      padding-right: 10px;
      padding-bottom: 10px;
      padding-left: 10px; }
    @media screen and (min-width: 720px) and (max-width: 959px) {
      .page-footer .container .page-index .section-column figure, .page-index .section-column .page-footer .container figure, .page-footer .container .page-index .section-column .content, .page-index .section-column .page-footer .container .content, .page-footer .container .page-index .section-list .column, .page-index .section-list .page-footer .container .column, .page-footer .container .page-index .section-slogan figure, .page-index .section-slogan .page-footer .container figure, .page-footer .container .page-index .section-contact .content, .page-index .section-contact .page-footer .container .content {
        display: inline-block;
        min-height: 1px;
        float: left;
        box-sizing: border-box;
        vertical-align: top;
        padding-top: 10px;
        padding-right: 10px;
        padding-bottom: 10px;
        padding-left: 10px; } }
    @media screen and (min-width: 480px) and (max-width: 719px) {
      .page-footer .container .copyright, .page-footer .container .credits, .page-footer .container .page-index .section-column figure, .page-index .section-column .page-footer .container figure, .page-footer .container .page-index .section-column .content, .page-index .section-column .page-footer .container .content, .page-footer .container .page-index .section-list .column, .page-index .section-list .page-footer .container .column, .page-footer .container .page-index .section-slogan figure, .page-index .section-slogan .page-footer .container figure, .page-footer .container .page-index .section-contact .content, .page-index .section-contact .page-footer .container .content {
        display: inline-block;
        min-height: 1px;
        float: left;
        box-sizing: border-box;
        vertical-align: top;
        padding-top: 10px;
        padding-right: 10px;
        padding-bottom: 10px;
        padding-left: 10px; } }
    @media screen and (max-width: 479px) {
      .page-footer .container .copyright, .page-footer .container .credits, .page-footer .container .page-index .section-column figure, .page-index .section-column .page-footer .container figure, .page-footer .container .page-index .section-column .content, .page-index .section-column .page-footer .container .content, .page-footer .container .page-index .section-list .column, .page-index .section-list .page-footer .container .column, .page-footer .container .page-index .section-slogan figure, .page-index .section-slogan .page-footer .container figure, .page-footer .container .page-index .section-contact .content, .page-index .section-contact .page-footer .container .content {
        display: inline-block;
        min-height: 1px;
        float: left;
        box-sizing: border-box;
        vertical-align: top;
        padding-top: 10px;
        padding-right: 10px;
        padding-bottom: 10px;
        padding-left: 10px; } }
    .page-footer .container img {
      margin-top: 5px; }
  .page-footer a {
    color: #fff; }
  .page-footer .copyright {
    width: 58.33333%; }
    @media screen and (min-width: 720px) and (max-width: 959px) {
      .page-footer .copyright {
        padding-top: 6px;
        padding-right: 6px;
        padding-bottom: 6px;
        padding-left: 6px; } }
    @media screen and (min-width: 480px) and (max-width: 719px) {
      .page-footer .copyright {
        padding-top: 6px;
        padding-right: 6px;
        padding-bottom: 6px;
        padding-left: 6px; } }
    @media screen and (max-width: 479px) {
      .page-footer .copyright {
        padding-top: 6px;
        padding-right: 6px;
        padding-bottom: 6px;
        padding-left: 6px; } }
  .page-footer .credits {
    width: 41.66667%;
    text-align: right; }
    @media screen and (min-width: 720px) and (max-width: 959px) {
      .page-footer .credits {
        padding-top: 6px;
        padding-right: 6px;
        padding-bottom: 6px;
        padding-left: 6px; } }
    @media screen and (min-width: 480px) and (max-width: 719px) {
      .page-footer .credits {
        padding-top: 6px;
        padding-right: 6px;
        padding-bottom: 6px;
        padding-left: 6px; } }
    @media screen and (max-width: 479px) {
      .page-footer .credits {
        padding-top: 6px;
        padding-right: 6px;
        padding-bottom: 6px;
        padding-left: 6px; } }
    .page-footer .credits img {
      position: relative;
      top: -3px;
      display: inline-block;
      height: 12px;
      margin-left: 8px;
      vertical-align: top; }
  @media screen and (min-width: 720px) and (max-width: 959px) {
    .page-footer {
      height: auto; } }
  @media screen and (min-width: 480px) and (max-width: 719px) {
    .page-footer {
      height: auto; } }
  @media screen and (max-width: 479px) {
    .page-footer {
      height: auto; } }
  @media screen and (min-width: 480px) and (max-width: 719px) {
    .page-footer .copyright,
    .page-footer .credits {
      width: 100%;
      text-align: center; } }

@media screen and (min-width: 720px) and (max-width: 959px) {
  .page-footer .copyright,
  .page-footer .credits {
    padding-top: 6px;
    padding-right: 6px;
    padding-bottom: 6px;
    padding-left: 6px; } }

@media screen and (min-width: 480px) and (max-width: 719px) {
  .page-footer .copyright,
  .page-footer .credits {
    padding-top: 6px;
    padding-right: 6px;
    padding-bottom: 6px;
    padding-left: 6px; } }

@media screen and (max-width: 479px) {
  .page-footer .copyright,
  .page-footer .credits {
    padding-top: 6px;
    padding-right: 6px;
    padding-bottom: 6px;
    padding-left: 6px; } }
  @media screen and (max-width: 479px) {
    .page-footer .copyright,
    .page-footer .credits {
      width: 100%;
      text-align: center; } }

/* Slider */
.slick-slider {
  position: relative;
  display: block;
  box-sizing: border-box;
  -moz-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);
  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; }

/* Slider */
.slick-loading .slick-list {
  background: #fff url("../img/ajax-loader.gif") center center no-repeat; }

/* Icons */
/*@if $slick-font-family == "slick" {
    @font-face {
        font-family: "slick";
        src: slick-font-url("slick.eot");
        src: slick-font-url("slick.eot?#iefix") format("embedded-opentype"), slick-font-url("slick.woff") format("woff"), slick-font-url("slick.ttf") format("truetype"), slick-font-url("slick.svg#slick") format("svg");
        font-weight: normal;
        font-style: normal;
    }
}*/
/* Arrows */
.slick-prev,
.slick-next {
  position: absolute;
  display: block;
  height: 20px;
  width: 20px;
  line-height: 0px;
  font-size: 0px;
  cursor: pointer;
  background: transparent;
  color: transparent;
  top: 50%;
  margin-top: -10px;
  padding: 0;
  border: none;
  outline: none; }
  .slick-prev:hover, .slick-prev:focus,
  .slick-next:hover,
  .slick-next:focus {
    outline: none;
    background: transparent;
    color: transparent; }
    .slick-prev:hover:before, .slick-prev:focus:before,
    .slick-next:hover:before,
    .slick-next:focus:before {
      color: #00a2ff;
      opacity: 1; }
  .slick-prev.slick-disabled:before,
  .slick-next.slick-disabled:before {
    opacity: 1; }
  .slick-prev:before,
  .slick-next:before {
    transition: color 0.25s opacity; }

.slick-prev:before, .slick-next:before {
  font-family: "slick";
  font-size: 20px;
  line-height: 1;
  color: #181717;
  opacity: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

.slick-prev {
  left: -25px; }
  [dir="rtl"] .slick-prev {
    left: auto;
    right: -25px; }
  .slick-prev:before {
    content: "←"; }
    [dir="rtl"] .slick-prev:before {
      content: "→"; }

.slick-next {
  right: -25px; }
  [dir="rtl"] .slick-next {
    left: -25px;
    right: auto; }
  .slick-next:before {
    content: "→"; }
    [dir="rtl"] .slick-next:before {
      content: "←"; }

/* Dots */
.slick-slider {
  margin-bottom: 30px; }

.slick-dots {
  position: absolute;
  bottom: 65px;
  list-style: none;
  display: block;
  text-align: center;
  padding: 0;
  width: 100%; }
  .slick-dots li {
    position: relative;
    display: inline-block;
    height: 20px;
    width: 20px;
    margin: 0;
    padding: 0;
    cursor: pointer; }
    .slick-dots li button {
      border: 0;
      background: transparent;
      display: block;
      height: 20px;
      width: 20px;
      outline: none;
      line-height: 0px;
      font-size: 0px;
      color: transparent;
      padding: 5px;
      cursor: pointer; }
      .slick-dots li button:hover, .slick-dots li button:focus {
        outline: none; }
        .slick-dots li button:hover:before, .slick-dots li button:focus:before {
          opacity: 1; }
      .slick-dots li button:before {
        position: absolute;
        top: 0;
        left: 0;
        content: "•";
        width: 20px;
        height: 20px;
        font-family: "slick";
        font-size: 9px;
        line-height: 20px;
        text-align: center;
        color: #fff;
        opacity: 1;
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale; }
    .slick-dots li.slick-active button:before {
      color: #00a2ff;
      opacity: 1; }

.page-index .slider {
  overflow: hidden;
  margin-bottom: 70px;
  max-height: 720px; }
  .page-index .slider .slide {
    position: relative; }
  .page-index .slider:after {
    content: '';
    position: absolute;
    bottom: -45px;
    left: -10px;
    width: 110%;
    height: 100px;
    background: #fff;
    -webkit-transform: rotate(-3deg);
    transform: rotate(-3deg); }
  .page-index .slider .description {
    position: absolute;
    top: 30%;
    left: 105px;
    text-transform: uppercase;
    color: #fff;
    font-weight: 300;
    font-size: 70px;
    font-size: 5.5vw;
    line-height: 5.5vw;
    text-align: left; }
    .page-index .slider .description header {
      font-weight: 700; }
    .page-index .slider .description .small {
      font-size: 24px;
      line-height: 1.4em; }

.page-index section header {
  text-transform: uppercase;
  font-size: 36px;
  line-height: 1.7em;
  text-align: left; }
  @media screen and (min-width: 720px) and (max-width: 959px) {
    .page-index section header {
      font-size: 22px;
      line-height: 42px;
      text-align: center; }
      .page-index section header:after {
        margin: 0 auto; } }
  @media screen and (min-width: 480px) and (max-width: 719px) {
    .page-index section header {
      font-size: 22px;
      line-height: 42px;
      text-align: center; }
      .page-index section header:after {
        margin: 0 auto; } }
  @media screen and (max-width: 479px) {
    .page-index section header {
      font-size: 22px;
      line-height: 42px;
      text-align: center; }
      .page-index section header:after {
        margin: 0 auto; } }

.page-index .section-column {
  margin-bottom: 100px; }
  .page-index .section-column figure {
    width: 41.66667%; }
    @media screen and (min-width: 720px) and (max-width: 959px) {
      .page-index .section-column figure {
        padding-top: 6px;
        padding-right: 6px;
        padding-bottom: 6px;
        padding-left: 6px; } }
    @media screen and (min-width: 480px) and (max-width: 719px) {
      .page-index .section-column figure {
        padding-top: 6px;
        padding-right: 6px;
        padding-bottom: 6px;
        padding-left: 6px; } }
    @media screen and (max-width: 479px) {
      .page-index .section-column figure {
        padding-top: 6px;
        padding-right: 6px;
        padding-bottom: 6px;
        padding-left: 6px; } }
    .page-index .section-column figure img {
      max-width: 485px;
      margin: 0 auto; }
  .page-index .section-column .content {
    width: 58.33333%;
    text-align: center; }
    @media screen and (min-width: 720px) and (max-width: 959px) {
      .page-index .section-column .content {
        padding-top: 6px;
        padding-right: 6px;
        padding-bottom: 6px;
        padding-left: 6px; } }
    @media screen and (min-width: 480px) and (max-width: 719px) {
      .page-index .section-column .content {
        padding-top: 6px;
        padding-right: 6px;
        padding-bottom: 6px;
        padding-left: 6px; } }
    @media screen and (max-width: 479px) {
      .page-index .section-column .content {
        padding-top: 6px;
        padding-right: 6px;
        padding-bottom: 6px;
        padding-left: 6px; } }
  @media screen and (min-width: 720px) and (max-width: 959px) {
    .page-index .section-column figure, .page-index .section-column .content {
      width: 100%; } }

@media screen and (min-width: 720px) and (max-width: 959px) {
  .page-index .section-column figure, .page-index .section-column .content {
    padding-top: 6px;
    padding-right: 6px;
    padding-bottom: 6px;
    padding-left: 6px; } }

@media screen and (min-width: 480px) and (max-width: 719px) {
  .page-index .section-column figure, .page-index .section-column .content {
    padding-top: 6px;
    padding-right: 6px;
    padding-bottom: 6px;
    padding-left: 6px; } }

@media screen and (max-width: 479px) {
  .page-index .section-column figure, .page-index .section-column .content {
    padding-top: 6px;
    padding-right: 6px;
    padding-bottom: 6px;
    padding-left: 6px; } }
  @media screen and (min-width: 480px) and (max-width: 719px) {
    .page-index .section-column figure, .page-index .section-column .content {
      width: 100%; } }
  @media screen and (max-width: 479px) {
    .page-index .section-column figure, .page-index .section-column .content {
      width: 100%; } }

.page-index .section-center, .page-index .section-center header {
  text-align: center; }

.page-index .section-center .button {
  margin-top: 22px;
  padding-left: 72px;
  padding-right: 50px; }
  .page-index .section-center .button:before {
    position: absolute;
    content: '\e900';
    font-size: 8px;
    margin-right: 10px;
    margin-left: -30px;
    font-family: 'slick';
    display: inline-block;
    vertical-align: bottom; }

.page-index .section-list {
  max-width: 1080px;
  margin: 0 auto;
  margin-bottom: 50px;
  padding: 70px 0;
  text-transform: uppercase; }
  .page-index .section-list .column {
    width: 33.33333%;
    position: relative;
    text-align: center; }
    @media screen and (min-width: 720px) and (max-width: 959px) {
      .page-index .section-list .column {
        padding-top: 6px;
        padding-right: 6px;
        padding-bottom: 6px;
        padding-left: 6px; } }
    @media screen and (min-width: 480px) and (max-width: 719px) {
      .page-index .section-list .column {
        padding-top: 6px;
        padding-right: 6px;
        padding-bottom: 6px;
        padding-left: 6px; } }
    @media screen and (max-width: 479px) {
      .page-index .section-list .column {
        padding-top: 6px;
        padding-right: 6px;
        padding-bottom: 6px;
        padding-left: 6px; } }
    .page-index .section-list .column + .column ul:before {
      content: '';
      position: absolute;
      top: 50%;
      left: -12px;
      width: 27px;
      height: 27px;
      background: url("../img/img_plus.png") no-repeat;
      -webkit-transform: translateY(-50%);
      transform: translateY(-50%); }
  .page-index .section-list ul {
    display: inline-block;
    text-align: left; }
    .page-index .section-list ul li + li {
      margin-top: 15px; }
  @media screen and (min-width: 720px) and (max-width: 959px) {
    .page-index .section-list .column {
      width: 100%;
      padding-top: 5px; }
      .page-index .section-list .column ul {
        text-align: center; }
        .page-index .section-list .column ul:before {
          display: none; } }
  @media screen and (min-width: 480px) and (max-width: 719px) {
    .page-index .section-list .column {
      width: 100%;
      padding-top: 5px; }
      .page-index .section-list .column ul {
        text-align: center; }
        .page-index .section-list .column ul:before {
          display: none; } }
  @media screen and (max-width: 479px) {
    .page-index .section-list .column {
      width: 100%;
      padding-top: 5px; }
      .page-index .section-list .column ul {
        text-align: center; }
        .page-index .section-list .column ul:before {
          display: none; } }

.page-index .chains:after {
  content: '';
  display: block;
  width: 103px;
  height: 20px;
  background: url("../img/img_bike_chain.png") no-repeat;
  margin-bottom: 20px; }

.page-index .section-slogan figure {
  width: 66.66667%;
  padding-top: 0;
  padding-right: 0;
  padding-bottom: 0;
  padding-left: 0;
  position: relative; }
  @media screen and (min-width: 720px) and (max-width: 959px) {
    .page-index .section-slogan figure {
      padding-top: 6px;
      padding-right: 6px;
      padding-bottom: 6px;
      padding-left: 6px; } }
  @media screen and (min-width: 480px) and (max-width: 719px) {
    .page-index .section-slogan figure {
      padding-top: 6px;
      padding-right: 6px;
      padding-bottom: 6px;
      padding-left: 6px; } }
  @media screen and (max-width: 479px) {
    .page-index .section-slogan figure {
      padding-top: 6px;
      padding-right: 6px;
      padding-bottom: 6px;
      padding-left: 6px; } }
  .page-index .section-slogan figure figcaption {
    position: absolute;
    right: 0;
    top: 50%;
    width: 520px;
    margin-right: -300px;
    padding: 30px 40px;
    background: #fff;
    font-size: 50px;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%); }

@media screen and (min-width: 720px) and (max-width: 959px) {
  .page-index .section-slogan {
    position: relative;
    min-height: 300px;
    margin-left: -10px;
    width: calc(100% + 20px); }
    .page-index .section-slogan figure {
      width: 100%; }
      .page-index .section-slogan figure figcaption {
        width: auto;
        min-width: 300px;
        left: 50%;
        right: auto;
        margin-right: 0;
        font-size: 32px;
        -webkit-transform: translate(-50%, -50%) !important;
        transform: translate(-50%, -50%) !important; } }

@media screen and (min-width: 480px) and (max-width: 719px) {
  .page-index .section-slogan {
    position: relative;
    min-height: 300px;
    margin-left: -10px;
    width: calc(100% + 20px); }
    .page-index .section-slogan figure {
      width: 100%; }
      .page-index .section-slogan figure figcaption {
        width: auto;
        min-width: 300px;
        left: 50%;
        right: auto;
        margin-right: 0;
        font-size: 32px;
        -webkit-transform: translate(-50%, -50%) !important;
        transform: translate(-50%, -50%) !important; } }

@media screen and (max-width: 479px) {
  .page-index .section-slogan {
    position: relative;
    min-height: 300px;
    margin-left: -10px;
    width: calc(100% + 20px); }
    .page-index .section-slogan figure {
      width: 100%; }
      .page-index .section-slogan figure figcaption {
        width: auto;
        min-width: 300px;
        left: 50%;
        right: auto;
        margin-right: 0;
        font-size: 32px;
        -webkit-transform: translate(-50%, -50%) !important;
        transform: translate(-50%, -50%) !important; } }

@media screen and (min-width: 480px) and (max-width: 719px) {
  .page-index .section-slogan {
    height: 300px; }
    .page-index .section-slogan figure {
      height: 100%; }
      .page-index .section-slogan figure img {
        width: auto;
        height: 100%;
        position: absolute;
        left: 50%;
        -webkit-transform: translateX(-50%);
        transform: translateX(-50%); }
      .page-index .section-slogan figure figcaption {
        font-size: 22px; } }

@media screen and (max-width: 479px) {
  .page-index .section-slogan {
    height: 300px; }
    .page-index .section-slogan figure {
      height: 100%; }
      .page-index .section-slogan figure img {
        width: auto;
        height: 100%;
        position: absolute;
        left: 50%;
        -webkit-transform: translateX(-50%);
        transform: translateX(-50%); }
      .page-index .section-slogan figure figcaption {
        font-size: 22px; } }

.page-index .section-partners {
  margin: 100px 0;
  padding: 10px; }
  .page-index .section-partners img {
    max-width: 180px;
    margin: 0 auto; }
  .page-index .section-partners .slick-slider {
    margin-bottom: 0; }
  @media screen and (min-width: 480px) and (max-width: 719px) {
    .page-index .section-partners .slick-prev {
      left: 0; }
    .page-index .section-partners .slick-next {
      right: 0; } }
  @media screen and (max-width: 479px) {
    .page-index .section-partners .slick-prev {
      left: 0; }
    .page-index .section-partners .slick-next {
      right: 0; } }

.page-index .section-contact {
  background: url("../img/bg_contact.png"); }
  .page-index .section-contact .page-container {
    margin-right: 0;
    margin-bottom: 0; }
  .page-index .section-contact h3 {
    position: relative;
    margin: 20px 0;
    font-size: 40px;
    line-height: 1em;
    text-transform: uppercase; }
    .page-index .section-contact h3:before {
      content: '';
      position: absolute;
      top: 10px;
      left: -36px;
      display: inline-block;
      width: 25px;
      height: 19px;
      background: url("../img/img_chain.png") no-repeat; }
  .page-index .section-contact .content {
    width: 41.66667%;
    height: 500px;
    padding-top: 48px;
    text-transform: uppercase; }
    @media screen and (min-width: 720px) and (max-width: 959px) {
      .page-index .section-contact .content {
        padding-top: 6px;
        padding-right: 6px;
        padding-bottom: 6px;
        padding-left: 6px; } }
    @media screen and (min-width: 480px) and (max-width: 719px) {
      .page-index .section-contact .content {
        padding-top: 6px;
        padding-right: 6px;
        padding-bottom: 6px;
        padding-left: 6px; } }
    @media screen and (max-width: 479px) {
      .page-index .section-contact .content {
        padding-top: 6px;
        padding-right: 6px;
        padding-bottom: 6px;
        padding-left: 6px; } }
  .page-index .section-contact #map {
    position: absolute !important;
    top: 0;
    right: 0;
    height: 500px;
    padding: 0 !important;
    width: 58.33333%; }
    @media screen and (min-width: 720px) and (max-width: 959px) {
      .page-index .section-contact #map {
        padding-top: 6px;
        padding-right: 6px;
        padding-bottom: 6px;
        padding-left: 6px; } }
    @media screen and (min-width: 480px) and (max-width: 719px) {
      .page-index .section-contact #map {
        padding-top: 6px;
        padding-right: 6px;
        padding-bottom: 6px;
        padding-left: 6px; } }
    @media screen and (max-width: 479px) {
      .page-index .section-contact #map {
        padding-top: 6px;
        padding-right: 6px;
        padding-bottom: 6px;
        padding-left: 6px; } }
  .page-index .section-contact .hours {
    display: inline-block;
    padding: 2px 10px;
    color: #fff;
    background: #000000;
    margin-top: 5px;
    font-family: 'Roboto'; }
  @media screen and (min-width: 720px) and (max-width: 959px) {
    .page-index .section-contact .container {
      padding: 0; }
    .page-index .section-contact h3 {
      margin-top: 0; }
    .page-index .section-contact h3:before {
      position: static;
      display: block;
      margin: 0 auto 20px; }
    .page-index .section-contact .content {
      width: 100%;
      height: auto;
      padding: 30px 10px;
      text-align: center; }
    .page-index .section-contact #map {
      position: relative !important;
      width: 100%; } }
  @media screen and (min-width: 480px) and (max-width: 719px) {
    .page-index .section-contact .container {
      padding: 0; }
    .page-index .section-contact h3 {
      margin-top: 0; }
    .page-index .section-contact h3:before {
      position: static;
      display: block;
      margin: 0 auto 20px; }
    .page-index .section-contact .content {
      width: 100%;
      height: auto;
      padding: 30px 10px;
      text-align: center; }
    .page-index .section-contact #map {
      position: relative !important;
      width: 100%; } }
  @media screen and (max-width: 479px) {
    .page-index .section-contact .container {
      padding: 0; }
    .page-index .section-contact h3 {
      margin-top: 0; }
    .page-index .section-contact h3:before {
      position: static;
      display: block;
      margin: 0 auto 20px; }
    .page-index .section-contact .content {
      width: 100%;
      height: auto;
      padding: 30px 10px;
      text-align: center; }
    .page-index .section-contact #map {
      position: relative !important;
      width: 100%; } }
  @media screen and (min-width: 480px) and (max-width: 719px) {
    .page-index .section-contact #map {
      height: 300px; } }
  @media screen and (max-width: 479px) {
    .page-index .section-contact #map {
      height: 300px; } }

@media screen and (min-width: 720px) and (max-width: 959px) {
  .page-index .slider {
    height: 500px; }
    .page-index .slider > div,
    .page-index .slider .slick-track,
    .page-index .slider .slider,
    .page-index .slider figure {
      height: 100%; }
    .page-index .slider figure {
      position: relative;
      overflow: hidden; }
    .page-index .slider img {
      position: absolute;
      left: 50%;
      width: auto;
      height: 100%;
      -webkit-transform: translateX(-50%);
      transform: translateX(-50%); }
    .page-index .slider .description {
      z-index: 2;
      left: 50%;
      text-align: center;
      -webkit-transform: translateX(-50%);
      transform: translateX(-50%); }
      .page-index .slider .description .small {
        font-size: 16px; } }

@media screen and (min-width: 480px) and (max-width: 719px) {
  .page-index .slider {
    height: 500px; }
    .page-index .slider > div,
    .page-index .slider .slick-track,
    .page-index .slider .slider,
    .page-index .slider figure {
      height: 100%; }
    .page-index .slider figure {
      position: relative;
      overflow: hidden; }
    .page-index .slider img {
      position: absolute;
      left: 50%;
      width: auto;
      height: 100%;
      -webkit-transform: translateX(-50%);
      transform: translateX(-50%); }
    .page-index .slider .description {
      z-index: 2;
      left: 50%;
      text-align: center;
      -webkit-transform: translateX(-50%);
      transform: translateX(-50%); }
      .page-index .slider .description .small {
        font-size: 16px; } }

@media screen and (max-width: 479px) {
  .page-index .slider {
    height: 500px; }
    .page-index .slider > div,
    .page-index .slider .slick-track,
    .page-index .slider .slider,
    .page-index .slider figure {
      height: 100%; }
    .page-index .slider figure {
      position: relative;
      overflow: hidden; }
    .page-index .slider img {
      position: absolute;
      left: 50%;
      width: auto;
      height: 100%;
      -webkit-transform: translateX(-50%);
      transform: translateX(-50%); }
    .page-index .slider .description {
      z-index: 2;
      left: 50%;
      text-align: center;
      -webkit-transform: translateX(-50%);
      transform: translateX(-50%); }
      .page-index .slider .description .small {
        font-size: 16px; } }

@media screen and (min-width: 480px) and (max-width: 719px) {
  .page-index .slider {
    margin-bottom: -20px;
    height: 350px; }
    .page-index .slider .description {
      line-height: 7vw; }
  .page-index .section-column {
    margin-bottom: 40px; }
  .page-index .section-list {
    margin-bottom: 0; }
  .page-index .section-partners {
    margin: 50px auto; } }

@media screen and (max-width: 479px) {
  .page-index .slider {
    margin-bottom: -20px;
    height: 350px; }
    .page-index .slider .description {
      line-height: 7vw; }
  .page-index .section-column {
    margin-bottom: 40px; }
  .page-index .section-list {
    margin-bottom: 0; }
  .page-index .section-partners {
    margin: 50px auto; } }

.remodal .wysiwyg {
  text-align: left; }

.scroll-top {
  display: none;
  position: fixed;
  right: 0;
  top: 70%;
  width: 56px;
  height: 112px;
  padding-top: 40px;
  color: #fff;
  border: none;
  background: url("../img/scroll-up.png") 50% 25px no-repeat #00a2ff;
  text-transform: uppercase; }
  @media screen and (min-width: 480px) and (max-width: 719px) {
    .scroll-top {
      display: none !important; } }
  @media screen and (max-width: 479px) {
    .scroll-top {
      display: none !important; } }

.page-price-list .header-img {
  position: relative;
  width: 100%;
  height: 378px;
  margin-bottom: 60px;
  background: url("../img/img_header_price.jpg") no-repeat;
  background-position: center;
  background-size: cover;
  padding: 150px 0 50px;
  color: #fff;
  font-weight: 300;
  font-size: 2vw;
  line-height: 2vw;
  text-align: center;
  text-transform: uppercase; }

.page-price-list .page-header .desktop-menu li:not(.back) {
  display: none; }

.page-price-list table {
  max-width: 980px;
  margin: 0 auto; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1haW4uY3NzIiwiYmFzZS9fbm9ybWFsaXplLnNjc3MiLCJsYXlvdXQvX2ZvbnRzLnNjc3MiLCJsYXlvdXQvX2dyaWQuc2NzcyIsImJhc2UvX2Jhc2Uuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ncmlkbGUvc2Fzcy9ncmlkbGUvX21peGlucy5zY3NzIiwibGF5b3V0L19pY29ucy5zY3NzIiwibGF5b3V0L19mb3Jtcy5zY3NzIiwibGF5b3V0L193eXNpd3lnLnNjc3MiLCJsYXlvdXQvX21haW4uc2NzcyIsImNvbXBvbmVudHMvX2hlYWRlci5zY3NzIiwiY29tcG9uZW50cy9fZm9vdGVyLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZ3JpZGxlL3Nhc3MvZ3JpZGxlL19hcGkuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ncmlkbGUvc2Fzcy9ncmlkbGUvX2RyaXZlci1kZWZhdWx0LnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZ3JpZGxlL3Nhc3MvZ3JpZGxlL19mdW5jdGlvbnMuc2NzcyIsIndpZGdldHMvc2xpY2suc2NzcyIsIndpZGdldHMvc2xpY2stdGhlbWUuc2NzcyIsInBhZ2VzL19pbmRleC5zY3NzIiwicGFnZXMvX3ByaWNlLWxpc3Quc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxrQkFBaUI7QUNBakIsNkRBQTREO0FBRTVEOzs7O0lBSUc7QUNrQ0gsZ0ZBQVk7QURoQ1o7RUFDRSx5QkFBd0I7RUFBRSxRQUFPO0VBQ2pDLDRCQUEyQjtFQUFFLFFBQU87RUFDcEMsZ0NBQStCO0VBQUUsUUFBTyxFQUN6Qzs7QUFFRDs7SUFFRztBQUVIO0VBQ0UsV0FBVSxFQUNYOztBQUVEO2lGQUNnRjtBQUVoRjs7Ozs7SUFLRztBQUVIOzs7Ozs7Ozs7Ozs7O0VBYUUsZ0JBQWUsRUFDaEI7O0FBRUQ7OztJQUdHO0FBRUg7Ozs7RUFJRSx1QkFBc0I7RUFBRSxRQUFPO0VBQy9CLDBCQUF5QjtFQUFFLFFBQU8sRUFDbkM7O0FBRUQ7OztJQUdHO0FBRWlCO0VBQ2xC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RThJQyx1QkFBcUI7UUFDckIsaUJBQWU7UUFJZCxhQUFXO1FBT1osd0JBQXVCO1FBQ3ZCLHFCQUFvQjtRRDZvQmpCLG1CRS9WdUQ7UUYrVnZELHFCRXZXd0Q7UUZ1V3hELHNCRWhXMEQ7UUZnVzFELG9CRXhXdUQsRVRwWnhELEVBQUE7SUF4Qkc7TUFxQko7UVFxR0QsdUJBQXFCO1FBQ3JCLGlCQUFlO1FBSWQsYUFBVztRQU9aLHdCQUF1QjtRQUN2QixxQkFBb0I7UUQ2b0JqQixtQkUvVnVEO1FGK1Z2RCxxQkV2V3dEO1FGdVd4RCxzQkVoVzBEO1FGZ1cxRCxvQkV4V3VELEVUcFp4RCxFQUFBO0lNNUNIO01BZVksaUJBQWdCLEVBQ25CO0VBRUw7SUFDSSxhQUFZLEVBQ2Y7RUFwQkw7SUV3Tkcsa0JBSm9CLEVGN0xsQjtJTjBYSDtNTWpaRjtRQ3d5Qkksa0JFL1Z1RDtRRitWdkQsb0JFdld3RDtRRnVXeEQscUJFaFcwRDtRRmdXMUQsbUJFeFd1RCxFSHphdEQsRUFBQTtJTjBYSDtNTTVYRTtRQ214QkEsa0JFL1Z1RDtRRitWdkQsb0JFdld3RDtRRnVXeEQscUJFaFcwRDtRRmdXMUQsbUJFeFd1RCxFSHphdEQsRUFBQTtJTjBYSDtNTWpaRjtRQ3d5Qkksa0JFL1Z1RDtRRitWdkQsb0JFdld3RDtRRnVXeEQscUJFaFcwRDtRRmdXMUQsbUJFeFd1RCxFSHphdEQsRUFBQTtFQXZCTDtJRXdORyxrQkFKb0I7SUYxTGYsbUJBQWtCLEVBU3JCO0lOOFdIO01NalpGO1FDd3lCSSxrQkUvVnVEO1FGK1Z2RCxvQkV2V3dEO1FGdVd4RCxxQkVoVzBEO1FGZ1cxRCxtQkV4V3VELEVIN1p0RCxFQUFBO0lOOFdIO01NalpGO1FDd3lCSSxrQkUvVnVEO1FGK1Z2RCxvQkV2V3dEO1FGdVd4RCxxQkVoVzBEO1FGZ1cxRCxtQkV4V3VELEVIN1p0RCxFQUFBO0lOOFdIO01NalpGO1FDd3lCSSxrQkUvVnVEO1FGK1Z2RCxvQkV2V3dEO1FGdVd4RCxxQkVoVzBEO1FGZ1cxRCxtQkV4V3VELEVIN1p0RCxFQUFBO0lBUkc7TUFDSSxvQkFBbUI7TUFDbkIsV0FBVTtNQUNWLHVCQUFzQjtNQUN0QixjQUFhO01BQ2Isa0JBQWlCO01BQ2pCLHFCQUFvQixFQUN2QjtFTitXUDtJTWpaRjtNQXNDWSxjQUFhLEVBQ2hCLEVBQUE7RU4wV1A7SU1qWkY7TUFzQ1ksY0FBYSxFQUNoQixFQUFBO0VOMFdQO0lNalpGO01Bc0NZLGNBQWEsRUFDaEIsRUFBQTtFTjBXUDtJTWpaRjs7TUV3TkcsYUFKb0I7TUZ2S1gsb0JBQW1CLEVBQ3RCLEVBQUE7O0FObVdQO0VNdldNOztJQzh2Qkosa0JFL1Z1RDtJRitWdkQsb0JFdld3RDtJRnVXeEQscUJFaFcwRDtJRmdXMUQsbUJFeFd1RCxFSGxabEQsRUFBQTs7QU5tV1A7RU1qWkY7O0lDd3lCSSxrQkUvVnVEO0lGK1Z2RCxvQkV2V3dEO0lGdVd4RCxxQkVoVzBEO0lGZ1cxRCxtQkV4V3VELEVIbFpsRCxFQUFBOztBTm1XUDtFTWpaRjs7SUN3eUJJLGtCRS9WdUQ7SUYrVnZELG9CRXZXd0Q7SUZ1V3hELHFCRWhXMEQ7SUZnVzFELG1CRXhXdUQsRUhsWmxELEVBQUE7RU5tV1A7SU1qWkY7O01Fd05HLGFBSm9CO01GdktYLG9CQUFtQixFQUN0QixFQUFBOztBSTlDVCxhQUFZO0FBRVo7RUFDSSxvQkFBbUI7RUFDbkIsZ0JBQWU7RUFDZix3QkFBdUI7RUFDdkIsNkJBQTRCO0VBQzVCLDZCQUE0QjtFQUM1QiwyQkFBMEI7RUFDMUIsMEJBQXlCO0VBQ3pCLHdCQUF1QjtFQUN2Qix1QkFBc0I7RUFDdEIsbUJBQWtCO0VBQ2xCLHlCQUF3QjtFQUN4QixxQkFBb0I7RUFDcEIsMENBQXlDLEVBQzVDOztBQUNEO0VBQ0ksb0JBQW1CO0VBQ25CLGtCQUFpQjtFQUNqQixnQkFBZTtFQUNmLFdBQVU7RUFDVixZQUFXLEVBVWQ7RUFmRDtJQVFRLGVBQWMsRUFDakI7RUFUTDtJQVlRLGlCQUFnQjtJQUNoQixjQUFhLEVBQ2hCOztBQUVTOztFQUVWLHlDQUE4QjtFQUk5QixpQ0FBc0IsRUFDekI7O0FBRUQ7RUFDSSxvQkFBbUI7RUFDbkIsU0FBUTtFQUNSLFFBQU87RUFDUCxnQkFBZSxFQWVsQjtFQW5CRDtJQVFRLGFBQVk7SUFDWixnQkFBZSxFQUNsQjtFQVZMO0lBYVEsYUFBWSxFQUNmO0VBZEw7SUFpQlEsb0JBQW1CLEVBQ3RCOztBQUVMO0VBQ0ksYUFBWTtFQUNaLGNBQWE7RUFDYixpQkFBZ0I7RUFXaEIsZUFBYyxFQW1CakI7RWZnbEhDO0llNW1ITSxjQUFhLEVBQ2hCO0VBTkw7SUFRUSxnQkFBZSxFQUNsQjtFQUNlO0lBQ1osZUFBYyxFQUNqQjtFQVpMO0lBaUJRLHNCQUFxQixFQUN4QjtFQUVEO0lBQ0ksZ0JBQWUsRUFDbEI7RUF0Qkw7SUF5QlEsb0JBQW1CLEVBQ3RCO0VBMUJMO0lBNkJRLGdCQUFlO0lBQ2YsY0FBYTtJQUNiLCtCQUE4QixFQUNqQzs7QUMxREwsYUFBWTtBQUdSO0VBQ0ksd0VBQTJFLEVBQzlFOztBQUdMLFlBQVc7QUFDWDs7Ozs7Ozs7SUFRRztBQUVILGFBQVk7QUFFWjs7RUFFSSxvQkFBbUI7RUFDbkIsZ0JBQWU7RUFDZixjQUFhO0VBQ2IsYUFBWTtFQUNaLGtCQUFpQjtFQUNqQixnQkFBZTtFQUNmLGlCQUFnQjtFQUNoQix5QkFBd0I7RUFDeEIsb0JBQW1CO0VBQ25CLFVBQVM7RUFDVCxtQkFBa0I7RUFDbEIsWUFBVztFQUNYLGNBQWE7RUFDYixlQUFjLEVBZ0JqQjtFQS9CRDs7O0lBaUJRLGVBQWM7SUFDZCx5QkFBd0I7SUFDeEIsb0JBQW1CLEVBS3RCO0lBeEJMOzs7TUFxQlksZ0JaaEVXO01ZaUVYLFlBaEVjLEVBaUVqQjtFQXZCVDs7SUEwQlEsWUFuRW9CLEVBb0V2QjtFQTNCTDs7SUE2QlEsaUNBQWdDLEVBQ25DOztBQUdMO0VBQ0ksc0JBdEZ1QjtFQXVGdkIsaUJBQWdCO0VBQ2hCLGdCQUFlO0VBQ2YsZ0JBQWU7RUFDZixZQWpGcUI7RUFrRnJCLHFDQUFvQztFQUNwQyxvQ0FBbUMsRUFDdEM7O0FBRUQ7RUFDSSxhQUFZLEVBV2Y7RWhCNG9IQztJZ0JycEhNLFlBQVc7SUFDWCxjQUFhLEVBQ2hCO0VBTEw7SUFPUSxjQWpHZSxFQUFLO0loQnV2SHhCO01nQnBwSFEsY0FsR1csRUFBSzs7QUF1RzVCO0VBQ0ksY0FBYSxFQVdoQjtFaEJ3b0hDO0lnQmpwSE0sYUFBWTtJQUNaLGFBQVksRUFDZjtFQUxMO0lBT1EsY0E5R2UsRUFBSztJaEJnd0h4QjtNZ0JocEhRLGNBakhXLEVBQUs7O0FBc0g1QixXQUFVO0FBRVY7RUFDSSxxQkFBb0IsRUFDdkI7O0FBRUQ7RUFDSSxvQkFBbUI7RUFDbkIsY0FBYTtFQUNiLGtCQUFpQjtFQUNqQixnQkFBZTtFQUNmLG9CQUFtQjtFQUNuQixZQUFXO0VBQ1gsYUFBWSxFQWlEZjtFQXhERDtJQVNRLG9CQUFtQjtJQUNuQix1QkFBc0I7SUFDdEIsY0FBYTtJQUNiLGFBQVk7SUFDWixXQUFVO0lBQ1YsWUFBVztJQUNYLGlCQUFnQixFQXdDbkI7SUF2Q0c7TUFDSSxXQUFVO01BQ1YseUJBQXdCO01BQ3hCLGdCQUFlO01BQ2YsY0FBYTtNQUNiLGFBQVk7TUFDWixlQUFjO01BQ2Qsa0JBQWlCO01BQ2pCLGdCQUFlO01BQ2Ysb0JBQW1CO01BQ25CLGNBQWE7TUFDYixpQkFBZ0IsRUF1Qm5CO01BbENEO1FBYVEsZUFBYyxFQUlqQjtRQWpCTDtVQWVZLFlBdEpNLEVBdUpUO01BaENqQjtRQW1DZ0Isb0JBQW1CO1FBQ25CLFFBQU87UUFDUCxTQUFRO1FBQ1IsY0FoS007UUFpS04sYUFBWTtRQUNaLGNBQWE7UUFDYixzQkExS1c7UUEyS1gsZ0JBbktJO1FBb0tKLG1CQUFrQjtRQUNsQixvQkFBbUI7UUFDbkIsYUEzS007UUE0S04sWUFwS1k7UUFxS1oscUNBQW9DO1FBQ3BDLG9DQUFtQyxFQUN0QztJQUVnQjtNQUNqQixnQlo1S1c7TVk2S1gsWUE3S2EsRUE4S2hCOztBQzNMTDtFQUNJLGtCQUFpQjtFQUNqQixxQkFBb0I7RUFDcEIsbUJBQWtCLEVBaUNyQjtFQWhDRztJQUNJLG9CQUFtQixFQUN0QjtFQVBUO0lBU1ksYUFBWTtJQUNaLG9CQUFtQjtJQUNuQixlQUFjO0lBQ2QsYUFBWTtJQUNaLGFBQVk7SUFDWixlQUFjO0lBQ2Qsa0JBQWlCO0lBQ2pCLGtDQUFpQjtJQUFqQiwwQkFBaUIsRUFDcEI7RUFDRDtJQUNJLG9CQUFtQjtJQUNuQixVQUFTO0lBQ1QsYUFBWTtJQUNaLDJCQUEwQjtJQUMxQixhQUFZO0lBQ1osa0JBQWlCO0lBQ2pCLGlCQUFnQjtJQUNoQixrQkFBaUI7SUFDakIsb0JBQW1CO0lBQ25CLGtCQUFpQixFQVFwQjtJQVBHO01BQ0ksa0JBQWlCLEVBQ3BCO0lBQ0Q7TUFDSSxpQkFBZ0I7TUFDaEIsb0JBQW1CLEVBQ3RCOztBQW5DYjtFQXdDWSwyQkFBMEI7RUFDMUIsaUJBQWdCO0VBQ2hCLG9CQUFtQjtFQUNuQixrQkFBaUIsRUFVcEI7RVo0VlA7SVkxV007TUFPUSxpQkFBZ0I7TUFDaEIsbUJBQWtCO01BQ2xCLG9CQUFtQixFQUsxQjtNQWREO1FBV1ksZ0JBQWUsRUFDbEIsRUFBQTtFWjhWZjtJWWpaRjtNQThDZ0IsaUJBQWdCO01BQ2hCLG1CQUFrQjtNQUNsQixvQkFBbUIsRUFLMUI7TUFyRFQ7UUFrRG9CLGdCQUFlLEVBQ2xCLEVBQUE7RVo4VmY7SVkxV007TUFPUSxpQkFBZ0I7TUFDaEIsbUJBQWtCO01BQ2xCLG9CQUFtQixFQUsxQjtNQWREO1FBV1ksZ0JBQWUsRUFDbEIsRUFBQTs7QUFuRGpCO0VBeURRLHNCQUFxQixFQWlCeEI7RUExRUw7SUp3Tkcsa0JBSm9CLEVJcEpkO0laaVZQO01ZalpGO1FMd3lCSSxrQkUvVnVEO1FGK1Z2RCxvQkV2V3dEO1FGdVd4RCxxQkVoVzBEO1FGZ1cxRCxtQkV4V3VELEVHaFlsRCxFQUFBO0laaVZQO01ZalpGO1FMd3lCSSxrQkUvVnVEO1FGK1Z2RCxvQkV2V3dEO1FGdVd4RCxxQkVoVzBEO1FGZ1cxRCxtQkV4V3VELEVHaFlsRCxFQUFBO0laaVZQO01ZalpGO1FMd3lCSSxrQkUvVnVEO1FGK1Z2RCxvQkV2V3dEO1FGdVd4RCxxQkVoVzBEO1FGZ1cxRCxtQkV4V3VELEVHaFlsRCxFQUFBO0lBSkc7TUFDSSxrQkFBaUI7TUFDakIsZ0JBQWUsRUFDbEI7RUFFTDtJSnVKTCxrQkFKb0I7SUlqSlgsb0JBQW1CLEVBQ3RCO0laNlVQO01ZalpGO1FMd3lCSSxrQkUvVnVEO1FGK1Z2RCxvQkV2V3dEO1FGdVd4RCxxQkVoVzBEO1FGZ1cxRCxtQkV4V3VELEVHNVhsRCxFQUFBO0laNlVQO01ZaFZNO1FMdXVCSixrQkUvVnVEO1FGK1Z2RCxvQkV2V3dEO1FGdVd4RCxxQkVoVzBEO1FGZ1cxRCxtQkV4V3VELEVHNVhsRCxFQUFBO0laNlVQO01ZalpGO1FMd3lCSSxrQkUvVnVEO1FGK1Z2RCxvQkV2V3dEO1FGdVd4RCxxQkVoVzBEO1FGZ1cxRCxtQkV4V3VELEVHNVhsRCxFQUFBO0VaNlVQO0lZalpGO01Kd05HLGFBSm9CLEVJNUlWLEVBQUE7O0FaeVVYO0VZalpGO0lMd3lCSSxrQkUvVnVEO0lGK1Z2RCxvQkV2V3dEO0lGdVd4RCxxQkVoVzBEO0lGZ1cxRCxtQkV4V3VELEVHeFg5QyxFQUFBOztBWnlVWDtFWTNVVTtJTGt1QlIsa0JFL1Z1RDtJRitWdkQsb0JFdld3RDtJRnVXeEQscUJFaFcwRDtJRmdXMUQsbUJFeFd1RCxFR3hYOUMsRUFBQTs7QVp5VVg7RVkzVVU7SUxrdUJSLGtCRS9WdUQ7SUYrVnZELG9CRXZXd0Q7SUZ1V3hELHFCRWhXMEQ7SUZnVzFELG1CRXhXdUQsRUd4WDlDLEVBQUE7RVp5VVg7SVkzVVU7TUprSlQsYUFKb0IsRUk1SVYsRUFBQTtFWnlVWDtJWWpaRjtNSndORyxhQUpvQixFSTVJVixFQUFBOztBQUdUO0VBRVEsb0JBQW1CLEVBQ3RCOztBQTlFVDtFQWdGWSxrQkFBaUI7RUFDakIsb0JBQW1CO0VBQ25CLHFCQUFvQixFQVd2QjtFQTdGVDtJQW9GZ0Isb0JBQW1CO0lBQ25CLGtCQUFpQjtJQUNqQixnQkFBZTtJQUNmLG9CQUFtQjtJQUNuQixvQkFBbUI7SUFDbkIsc0JBQXFCO0lBQ3JCLHVCQUFzQjtJQUN0Qix3QkFBdUIsRUFDMUI7O0FBR1Q7RUFFSSxtQkFBa0I7RUFDbEIsZ0JBQWU7RUFDZixxQkFBb0I7RUFD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O01BQ1osdUJBQXNCO01BQ3RCLGFBQVk7TUFDWixjQUFhO01BQ2IsbURBQWlELEVBQ3BEO0VBRUw7SUo3Qkwsa0JBSm9CO0lJbUNYLGVBQWM7SUFDZCxtQkFBa0I7SUFDbEIsMkJBQTBCLEVBQzdCO0ladUpQO01ZalpGO1FMd3lCSSxrQkUvVnVEO1FGK1Z2RCxvQkV2V3dEO1FGdVd4RCxxQkVoVzBEO1FGZ1cxRCxtQkV4V3VELEVHdE1sRCxFQUFBO0ladUpQO01ZNUpNO1FMbWpCSixrQkUvVnVEO1FGK1Z2RCxvQkV2V3dEO1FGdVd4RCxxQkVoVzBEO1FGZ1cxRCxtQkV4V3VELEVHdE1sRCxFQUFBO0ladUpQO01ZNUpNO1FMbWpCSixrQkUvVnVEO1FGK1Z2RCxvQkV2V3dEO1FGdVd4RCxxQkVoVzBEO1FGZ1cxRCxtQkV4V3VELEVHdE1sRCxFQUFBO0VBQ0Q7SUFDSSwrQkFBOEI7SUFDOUIsUUFBTztJQUNQLFVBQVM7SUFDVCxlQUFjO0lBQ2QsdUJBQXNCO0lKeEMvQixrQkFKb0IsRUk4Q2Q7SVorSVA7TVlqWkY7UUx3eUJJLGtCRS9WdUQ7UUYrVnZELG9CRXZXd0Q7UUZ1V3hELHFCRWhXMEQ7UUZnVzFELG1CRXhXdUQsRUc5TGxELEVBQUE7SVorSVA7TVlqWkY7UUx3eUJJLGtCRS9WdUQ7UUYrVnZELG9CRXZXd0Q7UUZ1V3hELHFCRWhXMEQ7UUZnVzFELG1CRXhXdUQsRUc5TGxELEVBQUE7SVorSVA7TVlqWkY7UUx3eUJJLGtCRS9WdUQ7UUYrVnZELG9CRXZXd0Q7UUZ1V3hELHFCRWhXMEQ7UUZnVzFELG1CRXhXdUQsRUc5TGxELEVBQUE7RUFDRDtJQUNJLHVCQUFzQjtJQUN0QixtQkFBa0I7SUFDbEIsYUFBWTtJQUNaLHFCQUFvQjtJQUNwQixpQkFBZ0I7SUFDaEIsdUJBQXNCLEVBQ3pCO0VadUlQO0lZalpGO01BNlFnQixZQUFXLEVBQ2Q7SUFDRDtNQUNJLGVBQWMsRUFDakI7SUFqUmI7TUFtUmdCLGtCQUFpQjtNQUNqQixnQkFBZTtNQUNmLHFCQUFvQixFQUN2QjtJQUNEO01KL0RULGFBSm9CO01J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QkFBMEIsRUFNN0I7RVprQ0M7SVluREY7TUFjWSwwQkFBeUIsRUFDNUIsRUFBQTtFWm9DUDtJWW5ERjtNQWNZLDBCQUF5QixFQUM1QixFQUFBOztBQzdXVDtFQUVRLG9CQUFtQjtFQUNuQixhQUFZO0VBQ1osZUFBYztFQUNkLHFCQUFvQjtFQUNwQiwwREFBd0Q7RUFDeEQsNkJBQTRCO0VBQzVCLHdCQUF1QjtFQUN2Qix1QkFBc0I7RUFDdEIsYUFBWTtFQUNaLGtCQUFpQjtFQUNqQixnQkFBZTtFQUNmLGtCQUFpQjtFQUNqQixvQkFBbUI7RUFDbkIsMkJBQTBCLEVBQzdCOztBQUdtQjtFQUNSLGVBQWMsRUFDakI7O0FBckJiO0VBeUJRLGtCQUFpQjtFQUNqQixnQkFBZSxFQUNsQiIsImZpbGUiOiJtYWluLmNzcyIsInNvdXJjZXNDb250ZW50IjpbbnVsbCwiLyohIG5vcm1hbGl6ZS5jc3MgdjMuMC4yIHwgTUlUIExpY2Vuc2UgfCBnaXQuaW8vbm9ybWFsaXplICovXHJcblxyXG4vKipcclxuICogMS4gU2V0IGRlZmF1bHQgZm9udCBmYW1pbHkgdG8gc2Fucy1zZXJpZi5cclxuICogMi4gUHJldmVudCBpT1MgdGV4dCBzaXplIGFkanVzdCBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2UsIHdpdGhvdXQgZGlzYWJsaW5nXHJcbiAqICAgIHVzZXIgem9vbS5cclxuICovXHJcblxyXG5odG1sIHtcclxuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjsgLyogMSAqL1xyXG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXHJcbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZW1vdmUgZGVmYXVsdCBtYXJnaW4uXHJcbiAqL1xyXG5cclxuYm9keSB7XHJcbiAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG4vKiBIVE1MNSBkaXNwbGF5IGRlZmluaXRpb25zXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKipcclxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGFueSBIVE1MNSBlbGVtZW50IGluIElFIDgvOS5cclxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBkZXRhaWxzYCBvciBgc3VtbWFyeWAgaW4gSUUgMTAvMTFcclxuICogYW5kIEZpcmVmb3guXHJcbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgbWFpbmAgaW4gSUUgMTEuXHJcbiAqL1xyXG5cclxuYXJ0aWNsZSxcclxuYXNpZGUsXHJcbmRldGFpbHMsXHJcbmZpZ2NhcHRpb24sXHJcbmZpZ3VyZSxcclxuZm9vdGVyLFxyXG5oZWFkZXIsXHJcbmhncm91cCxcclxubWFpbixcclxubWVudSxcclxubmF2LFxyXG5zZWN0aW9uLFxyXG5zdW1tYXJ5IHtcclxuICBkaXNwbGF5OiBibG9jaztcclxufVxyXG5cclxuLyoqXHJcbiAqIDEuIENvcnJlY3QgYGlubGluZS1ibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBpbiBJRSA4LzkuXHJcbiAqIDIuIE5vcm1hbGl6ZSB2ZXJ0aWNhbCBhbGlnbm1lbnQgb2YgYHByb2dyZXNzYCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cclxuICovXHJcblxyXG5hdWRpbyxcclxuY2FudmFzLFxyXG5wcm9ncmVzcyxcclxudmlkZW8ge1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgLyogMSAqL1xyXG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgLyogMiAqL1xyXG59XHJcblxyXG4vKipcclxuICogUHJldmVudCBtb2Rlcm4gYnJvd3NlcnMgZnJvbSBkaXNwbGF5aW5nIGBhdWRpb2Agd2l0aG91dCBjb250cm9scy5cclxuICogUmVtb3ZlIGV4Y2VzcyBoZWlnaHQgaW4gaU9TIDUgZGV2aWNlcy5cclxuICovXHJcblxyXG5hdWRpbzpub3QoW2NvbnRyb2xzXSkge1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbiAgaGVpZ2h0OiAwO1xyXG59XHJcblxyXG4vKipcclxuICogQWRkcmVzcyBgW2hpZGRlbl1gIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLlxyXG4gKiBIaWRlIHRoZSBgdGVtcGxhdGVgIGVsZW1lbnQgaW4gSUUgOC85LzExLCBTYWZhcmksIGFuZCBGaXJlZm94IDwgMjIuXHJcbiAqL1xyXG5cclxuW2hpZGRlbl0sXHJcbnRlbXBsYXRlIHtcclxuICBkaXNwbGF5OiBub25lO1xyXG59XHJcblxyXG4vKiBMaW5rc1xyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIGNvbG9yIGZyb20gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxyXG4gKi9cclxuXHJcbmEge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG59XHJcblxyXG4vKipcclxuICogSW1wcm92ZSByZWFkYWJpbGl0eSB3aGVuIGZvY3VzZWQgYW5kIGFsc28gbW91c2UgaG92ZXJlZCBpbiBhbGwgYnJvd3NlcnMuXHJcbiAqL1xyXG5cclxuYTphY3RpdmUsXHJcbmE6aG92ZXIge1xyXG4gIG91dGxpbmU6IDA7XHJcbn1cclxuXHJcbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKipcclxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC8xMSwgU2FmYXJpLCBhbmQgQ2hyb21lLlxyXG4gKi9cclxuXHJcbmFiYnJbdGl0bGVdIHtcclxuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkO1xyXG59XHJcblxyXG4vKipcclxuICogQWRkcmVzcyBzdHlsZSBzZXQgdG8gYGJvbGRlcmAgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxyXG4gKi9cclxuXHJcbmIsXHJcbnN0cm9uZyB7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXHJcbiAqL1xyXG5cclxuZGZuIHtcclxuICBmb250LXN0eWxlOiBpdGFsaWM7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBZGRyZXNzIHZhcmlhYmxlIGBoMWAgZm9udC1zaXplIGFuZCBtYXJnaW4gd2l0aGluIGBzZWN0aW9uYCBhbmQgYGFydGljbGVgXHJcbiAqIGNvbnRleHRzIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cclxuICovXHJcblxyXG5oMSB7XHJcbiAgZm9udC1zaXplOiAyZW07XHJcbiAgbWFyZ2luOiAwLjY3ZW0gMDtcclxufVxyXG5cclxuLyoqXHJcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkuXHJcbiAqL1xyXG5cclxubWFyayB7XHJcbiAgYmFja2dyb3VuZDogI2ZmMDtcclxuICBjb2xvcjogIzAwMDtcclxufVxyXG5cclxuLyoqXHJcbiAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGFuZCB2YXJpYWJsZSBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxyXG4gKi9cclxuXHJcbnNtYWxsIHtcclxuICBmb250LXNpemU6IDgwJTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGFmZmVjdGluZyBgbGluZS1oZWlnaHRgIGluIGFsbCBicm93c2Vycy5cclxuICovXHJcblxyXG5zdWIsXHJcbnN1cCB7XHJcbiAgZm9udC1zaXplOiA3NSU7XHJcbiAgbGluZS1oZWlnaHQ6IDA7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcclxufVxyXG5cclxuc3VwIHtcclxuICB0b3A6IC0wLjVlbTtcclxufVxyXG5cclxuc3ViIHtcclxuICBib3R0b206IC0wLjI1ZW07XHJcbn1cclxuXHJcbi8qIEVtYmVkZGVkIGNvbnRlbnRcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiBSZW1vdmUgYm9yZGVyIHdoZW4gaW5zaWRlIGBhYCBlbGVtZW50IGluIElFIDgvOS8xMC5cclxuICovXHJcblxyXG5pbWcge1xyXG4gIGJvcmRlcjogMDtcclxufVxyXG5cclxuLyoqXHJcbiAqIENvcnJlY3Qgb3ZlcmZsb3cgbm90IGhpZGRlbiBpbiBJRSA5LzEwLzExLlxyXG4gKi9cclxuXHJcbnN2Zzpub3QoOnJvb3QpIHtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG59XHJcblxyXG4vKiBHcm91cGluZyBjb250ZW50XHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKipcclxuICogQWRkcmVzcyBtYXJnaW4gbm90IHByZXNlbnQgaW4gSUUgOC85IGFuZCBTYWZhcmkuXHJcbiAqL1xyXG5cclxuZmlndXJlIHtcclxuICBtYXJnaW46IDFlbSA0MHB4O1xyXG59XHJcblxyXG4vKipcclxuICogQWRkcmVzcyBkaWZmZXJlbmNlcyBiZXR3ZWVuIEZpcmVmb3ggYW5kIG90aGVyIGJyb3dzZXJzLlxyXG4gKi9cclxuXHJcbmhyIHtcclxuICAtbW96LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xyXG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xyXG4gIGhlaWdodDogMDtcclxufVxyXG5cclxuLyoqXHJcbiAqIENvbnRhaW4gb3ZlcmZsb3cgaW4gYWxsIGJyb3dzZXJzLlxyXG4gKi9cclxuXHJcbnByZSB7XHJcbiAgb3ZlcmZsb3c6IGF1dG87XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBZGRyZXNzIG9kZCBgZW1gLXVuaXQgZm9udCBzaXplIHJlbmRlcmluZyBpbiBhbGwgYnJvd3NlcnMuXHJcbiAqL1xyXG5cclxuY29kZSxcclxua2JkLFxyXG5wcmUsXHJcbnNhbXAge1xyXG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcclxuICBmb250LXNpemU6IDFlbTtcclxufVxyXG5cclxuLyogRm9ybXNcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiBLbm93biBsaW1pdGF0aW9uOiBieSBkZWZhdWx0LCBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYIGFsbG93IHZlcnkgbGltaXRlZFxyXG4gKiBzdHlsaW5nIG9mIGBzZWxlY3RgLCB1bmxlc3MgYSBgYm9yZGVyYCBwcm9wZXJ0eSBpcyBzZXQuXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIDEuIENvcnJlY3QgY29sb3Igbm90IGJlaW5nIGluaGVyaXRlZC5cclxuICogICAgS25vd24gaXNzdWU6IGFmZmVjdHMgY29sb3Igb2YgZGlzYWJsZWQgZWxlbWVudHMuXHJcbiAqIDIuIENvcnJlY3QgZm9udCBwcm9wZXJ0aWVzIG5vdCBiZWluZyBpbmhlcml0ZWQuXHJcbiAqIDMuIEFkZHJlc3MgbWFyZ2lucyBzZXQgZGlmZmVyZW50bHkgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxyXG4gKi9cclxuXHJcbmJ1dHRvbixcclxuaW5wdXQsXHJcbm9wdGdyb3VwLFxyXG5zZWxlY3QsXHJcbnRleHRhcmVhIHtcclxuICBjb2xvcjogaW5oZXJpdDsgLyogMSAqL1xyXG4gIGZvbnQ6IGluaGVyaXQ7IC8qIDIgKi9cclxuICBtYXJnaW46IDA7IC8qIDMgKi9cclxufVxyXG5cclxuLyoqXHJcbiAqIEFkZHJlc3MgYG92ZXJmbG93YCBzZXQgdG8gYGhpZGRlbmAgaW4gSUUgOC85LzEwLzExLlxyXG4gKi9cclxuXHJcbmJ1dHRvbiB7XHJcbiAgb3ZlcmZsb3c6IHZpc2libGU7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBZGRyZXNzIGluY29uc2lzdGVudCBgdGV4dC10cmFuc2Zvcm1gIGluaGVyaXRhbmNlIGZvciBgYnV0dG9uYCBhbmQgYHNlbGVjdGAuXHJcbiAqIEFsbCBvdGhlciBmb3JtIGNvbnRyb2wgZWxlbWVudHMgZG8gbm90IGluaGVyaXQgYHRleHQtdHJhbnNmb3JtYCB2YWx1ZXMuXHJcbiAqIENvcnJlY3QgYGJ1dHRvbmAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveCwgSUUgOC85LzEwLzExLCBhbmQgT3BlcmEuXHJcbiAqIENvcnJlY3QgYHNlbGVjdGAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveC5cclxuICovXHJcblxyXG5idXR0b24sXHJcbnNlbGVjdCB7XHJcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiAxLiBBdm9pZCB0aGUgV2ViS2l0IGJ1ZyBpbiBBbmRyb2lkIDQuMC4qIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYFxyXG4gKiAgICBhbmQgYHZpZGVvYCBjb250cm9scy5cclxuICogMi4gQ29ycmVjdCBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIGBpbnB1dGAgdHlwZXMgaW4gaU9TLlxyXG4gKiAzLiBJbXByb3ZlIHVzYWJpbGl0eSBhbmQgY29uc2lzdGVuY3kgb2YgY3Vyc29yIHN0eWxlIGJldHdlZW4gaW1hZ2UtdHlwZVxyXG4gKiAgICBgaW5wdXRgIGFuZCBvdGhlcnMuXHJcbiAqL1xyXG5cclxuYnV0dG9uLFxyXG5odG1sIGlucHV0W3R5cGU9XCJidXR0b25cIl0sIC8qIDEgKi9cclxuaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxyXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcclxuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMiAqL1xyXG4gIGN1cnNvcjogcG9pbnRlcjsgLyogMyAqL1xyXG59XHJcblxyXG4vKipcclxuICogUmUtc2V0IGRlZmF1bHQgY3Vyc29yIGZvciBkaXNhYmxlZCBlbGVtZW50cy5cclxuICovXHJcblxyXG5idXR0b25bZGlzYWJsZWRdLFxyXG5odG1sIGlucHV0W2Rpc2FibGVkXSB7XHJcbiAgY3Vyc29yOiBkZWZhdWx0O1xyXG59XHJcblxyXG4vKipcclxuICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIGJvcmRlciBpbiBGaXJlZm94IDQrLlxyXG4gKi9cclxuXHJcbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcclxuaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xyXG4gIGJvcmRlcjogMDtcclxuICBwYWRkaW5nOiAwO1xyXG59XHJcblxyXG4vKipcclxuICogQWRkcmVzcyBGaXJlZm94IDQrIHNldHRpbmcgYGxpbmUtaGVpZ2h0YCBvbiBgaW5wdXRgIHVzaW5nIGAhaW1wb3J0YW50YCBpblxyXG4gKiB0aGUgVUEgc3R5bGVzaGVldC5cclxuICovXHJcblxyXG5pbnB1dCB7XHJcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcclxufVxyXG5cclxuLyoqXHJcbiAqIEl0J3MgcmVjb21tZW5kZWQgdGhhdCB5b3UgZG9uJ3QgYXR0ZW1wdCB0byBzdHlsZSB0aGVzZSBlbGVtZW50cy5cclxuICogRmlyZWZveCdzIGltcGxlbWVudGF0aW9uIGRvZXNuJ3QgcmVzcGVjdCBib3gtc2l6aW5nLCBwYWRkaW5nLCBvciB3aWR0aC5cclxuICpcclxuICogMS4gQWRkcmVzcyBib3ggc2l6aW5nIHNldCB0byBgY29udGVudC1ib3hgIGluIElFIDgvOS8xMC5cclxuICogMi4gUmVtb3ZlIGV4Y2VzcyBwYWRkaW5nIGluIElFIDgvOS8xMC5cclxuICovXHJcblxyXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXHJcbmlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XHJcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xyXG4gIHBhZGRpbmc6IDA7IC8qIDIgKi9cclxufVxyXG5cclxuLyoqXHJcbiAqIEZpeCB0aGUgY3Vyc29yIHN0eWxlIGZvciBDaHJvbWUncyBpbmNyZW1lbnQvZGVjcmVtZW50IGJ1dHRvbnMuIEZvciBjZXJ0YWluXHJcbiAqIGBmb250LXNpemVgIHZhbHVlcyBvZiB0aGUgYGlucHV0YCwgaXQgY2F1c2VzIHRoZSBjdXJzb3Igc3R5bGUgb2YgdGhlXHJcbiAqIGRlY3JlbWVudCBidXR0b24gdG8gY2hhbmdlIGZyb20gYGRlZmF1bHRgIHRvIGB0ZXh0YC5cclxuICovXHJcblxyXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxyXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcclxuICBoZWlnaHQ6IGF1dG87XHJcbn1cclxuXHJcbi8qKlxyXG4gKiAxLiBBZGRyZXNzIGBhcHBlYXJhbmNlYCBzZXQgdG8gYHNlYXJjaGZpZWxkYCBpbiBTYWZhcmkgYW5kIENocm9tZS5cclxuICogMi4gQWRkcmVzcyBgYm94LXNpemluZ2Agc2V0IHRvIGBib3JkZXItYm94YCBpbiBTYWZhcmkgYW5kIENocm9tZVxyXG4gKiAgICAoaW5jbHVkZSBgLW1vemAgdG8gZnV0dXJlLXByb29mKS5cclxuICovXHJcblxyXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcclxuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xyXG4gIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XHJcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogMiAqL1xyXG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xyXG59XHJcblxyXG4vKipcclxuICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIHNlYXJjaCBjYW5jZWwgYnV0dG9uIGluIFNhZmFyaSBhbmQgQ2hyb21lIG9uIE9TIFguXHJcbiAqIFNhZmFyaSAoYnV0IG5vdCBDaHJvbWUpIGNsaXBzIHRoZSBjYW5jZWwgYnV0dG9uIHdoZW4gdGhlIHNlYXJjaCBpbnB1dCBoYXNcclxuICogcGFkZGluZyAoYW5kIGB0ZXh0ZmllbGRgIGFwcGVhcmFuY2UpLlxyXG4gKi9cclxuXHJcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXHJcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xyXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxufVxyXG5cclxuLyoqXHJcbiAqIERlZmluZSBjb25zaXN0ZW50IGJvcmRlciwgbWFyZ2luLCBhbmQgcGFkZGluZy5cclxuICovXHJcblxyXG5maWVsZHNldCB7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDtcclxuICBtYXJnaW46IDAgMnB4O1xyXG4gIHBhZGRpbmc6IDAuMzVlbSAwLjYyNWVtIDAuNzVlbTtcclxufVxyXG5cclxuLyoqXHJcbiAqIDEuIENvcnJlY3QgYGNvbG9yYCBub3QgYmVpbmcgaW5oZXJpdGVkIGluIElFIDgvOS8xMC8xMS5cclxuICogMi4gUmVtb3ZlIHBhZGRpbmcgc28gcGVvcGxlIGFyZW4ndCBjYXVnaHQgb3V0IGlmIHRoZXkgemVybyBvdXQgZmllbGRzZXRzLlxyXG4gKi9cclxuXHJcbmxlZ2VuZCB7XHJcbiAgYm9yZGVyOiAwOyAvKiAxICovXHJcbiAgcGFkZGluZzogMDsgLyogMiAqL1xyXG59XHJcblxyXG4vKipcclxuICogUmVtb3ZlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDgvOS8xMC8xMS5cclxuICovXHJcblxyXG50ZXh0YXJlYSB7XHJcbiAgb3ZlcmZsb3c6IGF1dG87XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBEb24ndCBpbmhlcml0IHRoZSBgZm9udC13ZWlnaHRgIChhcHBsaWVkIGJ5IGEgcnVsZSBhYm92ZSkuXHJcbiAqIE5PVEU6IHRoZSBkZWZhdWx0IGNhbm5vdCBzYWZlbHkgYmUgY2hhbmdlZCBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYLlxyXG4gKi9cclxuXHJcbm9wdGdyb3VwIHtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxufVxyXG5cclxuLyogVGFibGVzXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKipcclxuICogUmVtb3ZlIG1vc3Qgc3BhY2luZyBiZXR3ZWVuIHRhYmxlIGNlbGxzLlxyXG4gKi9cclxuXHJcbnRhYmxlIHtcclxuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xyXG4gIGJvcmRlci1zcGFjaW5nOiAwO1xyXG59XHJcblxyXG50ZCxcclxudGgge1xyXG4gIHBhZGRpbmc6IDA7XHJcbn0iLCJAZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogJ3NsaWNrJztcbiAgICBzcmM6IHVybCgnLi4vZm9udHMvc2xpY2suZW90Jyk7XG4gICAgc3JjOiB1cmwoJy4uL2ZvbnRzL3NsaWNrLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gICAgICAgICB1cmwoJy4uL2ZvbnRzL3NsaWNrLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICAgICAgIHVybCgnLi4vZm9udHMvc2xpY2sudHRmJykgZm9ybWF0KCd0cnVldHlwZScpO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogJ09zd2FsZCc7XG4gICAgc3JjOiB1cmwoJy4uL2ZvbnRzL29zd2FsZC1saWdodC13ZWJmb250LmVvdCcpO1xuICAgIHNyYzogdXJsKCcuLi9mb250cy9vc3dhbGQtbGlnaHQtd2ViZm9udC5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICAgICAgICAgdXJsKCcuLi9mb250cy9vc3dhbGQtbGlnaHQtd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXG4gICAgICAgICB1cmwoJy4uL2ZvbnRzL29zd2FsZC1saWdodC13ZWJmb250LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKTtcbiAgICBmb250LXdlaWdodDogMzAwO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6ICdPc3dhbGQnO1xuICAgIHNyYzogdXJsKCcuLi9mb250cy9vc3dhbGQtcmVndWxhci13ZWJmb250LmVvdCcpO1xuICAgIHNyYzogdXJsKCcuLi9mb250cy9vc3dhbGQtcmVndWxhci13ZWJmb250LmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gICAgICAgICB1cmwoJy4uL2ZvbnRzL29zd2FsZC1yZWd1bGFyLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpLFxuICAgICAgICAgdXJsKCcuLi9mb250cy9vc3dhbGQtcmVndWxhci13ZWJmb250LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKTtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6ICdPc3dhbGQnO1xuICAgIHNyYzogdXJsKCcuLi9mb250cy9vc3dhbGQtYm9sZC13ZWJmb250LmVvdCcpO1xuICAgIHNyYzogdXJsKCcuLi9mb250cy9vc3dhbGQtYm9sZC13ZWJmb250LmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gICAgICAgICB1cmwoJy4uL2ZvbnRzL29zd2FsZC1ib2xkLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpLFxuICAgICAgICAgdXJsKCcuLi9mb250cy9vc3dhbGQtYm9sZC13ZWJmb250LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuQGltcG9ydCB1cmwoJ2h0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1Sb2JvdG8mc3Vic2V0PWxhdGluLWV4dCcpOyIsIi8vIGltcG9ydCBncmlkbGVcclxuQGltcG9ydCBcImdyaWRsZVwiO1xyXG5cclxuLy8gc2V0dGluZyB1cCB0aGUgZ3JpZFxyXG5AaW5jbHVkZSBncmlkbGVfc2V0dXAoIChcclxuICAgIGNvbnRleHQ6IDEyLFxyXG4gICAgZ3V0dGVyLXdpZHRoOiAyMHB4LFxyXG4gICAgZ3V0dGVyLWhlaWdodDogMjBweFxyXG4pKTtcclxuXHJcbi8vIHJlZ2lzdGVyIHN0YXRlc1xyXG5AaW5jbHVkZSBncmlkbGVfcmVnaXN0ZXJfc3RhdGUoeGwsIChcclxuICBtaW4td2lkdGg6IDEyODBweCxcclxuKSk7XHJcbkBpbmNsdWRlIGdyaWRsZV9yZWdpc3Rlcl9zdGF0ZShsZywgKFxyXG4gIG1pbi13aWR0aDogOTYwcHgsXHJcbiAgbWF4LXdpZHRoOiAxMjc5cHhcclxuKSk7XHJcbkBpbmNsdWRlIGdyaWRsZV9yZWdpc3Rlcl9zdGF0ZShtZCwgKFxyXG4gIG1pbi13aWR0aDogNzIwcHgsXHJcbiAgbWF4LXdpZHRoOiA5NTlweCxcclxuICBndXR0ZXItd2lkdGg6IDEycHgsXHJcbiAgZ3V0dGVyLWhlaWdodDogMTJweFxyXG4pKTtcclxuQGluY2x1ZGUgZ3JpZGxlX3JlZ2lzdGVyX3N0YXRlKHNtLCAoXHJcbiAgbWluLXdpZHRoOiA0ODBweCxcclxuICBtYXgtd2lkdGg6IDcxOXB4LFxyXG4gIGd1dHRlci13aWR0aDogMTJweCxcclxuICBndXR0ZXItaGVpZ2h0OiAxMnB4XHJcbikpO1xyXG5AaW5jbHVkZSBncmlkbGVfcmVnaXN0ZXJfc3RhdGUoeHMsIChcclxuICBtYXgtd2lkdGg6IDQ3OXB4LFxyXG4gIGd1dHRlci13aWR0aDogMTJweCxcclxuICBndXR0ZXItaGVpZ2h0OiAxMnB4XHJcbikpO1xyXG5cclxuLy8gZXZlbiB3aXRoIGZ1bGwgY3VzdG9tIHF1ZXJpZXMgOlxyXG4vKkBpbmNsdWRlIGdyaWRsZV9yZWdpc3Rlcl9zdGF0ZSAobGFuZHNjYXBlLCAoXHJcbiAgICBxdWVyeSA6IFwiKG9yaWVudGF0aW9uIDogbGFuZHNjYXBlKVwiXHJcbikpOyovIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xyXG4vKlxyXG4vKiB3Q01TIC0gYmFzZS5jc3NcclxuLypcclxuLyoga2xhc3kgcG9kc3Rhd293eWNoIG1vZHlmaWthY2ppIHN0eWxpXHJcbi8qIChuaWUgbW9keWZpa293YcSHLCB6bWlhbnkgbmFkcGlzeXdhxIcgdyBsYXlvdXQuY3NzKVxyXG4vKlxyXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXHJcblxyXG4vLyBabWllbm5lXHJcbiRmb250LWZhbWlseTogJ09zd2FsZCcsICdSb2JvdG8nLCAnQXJpYWwnLCAnSGVsdmV0aWNhJywgJ3NhbnMtc2VyaWYnO1xyXG4kZm9udC1jb250ZW50OiAnUm9ib3RvJztcclxuJGZvbnQtc2l6ZTogMThweDtcclxuJGNvbG9yLWRlZmF1bHQ6ICMxODE3MTc7XHJcbiRjb2xvci1wcmltYXJ5OiAjMDBhMmZmO1xyXG5cclxuKiwgKjpiZWZvcmUsICo6YWZ0ZXIgey13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94OyBib3gtc2l6aW5nOiBib3JkZXItYm94O31cclxuXHJcbmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlOyBoZWlnaHQ6IGF1dG87IG92ZXJmbG93OiBhdXRvfVxyXG5odG1sLm5vLXNjcm9sbCB7b3ZlcmZsb3cteTogaGlkZGVuICFpbXBvcnRhbnR9XHJcbmJvZHkgKiB7bWFyZ2luOiAwOyBwYWRkaW5nOiAwOyB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsgbGlzdC1zdHlsZTogbm9uZX1cclxuXHJcbiNwYWdlIHttaW4taGVpZ2h0OiAxMDAlOyBwb3NpdGlvbjogcmVsYXRpdmU7IG92ZXJmbG93OiBoaWRkZW59XHJcbi5jb250YWluZXIge21hcmdpbi1sZWZ0OiBhdXRvOyBtYXJnaW4tcmlnaHQ6IGF1dG99XHJcblxyXG5hIHt0ZXh0LWRlY29yYXRpb246IG5vbmV9XHJcbnAge21hcmdpbjogMH1cclxudWwge2xpc3Qtc3R5bGUtdHlwZTogbm9uZTsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwfVxyXG5hZGRyZXNzIHtmb250LXN0eWxlOiBub3JtYWx9XHJcbmZpZ3VyZSBpbWcge2Rpc3BsYXk6IGJsb2NrOyB3aWR0aDogMTAwJX1cclxuXHJcblxyXG4vKi0tLS0tIFRFS1NUIC0tLS0tKi9cclxuLnRleHQtbGVmdCAgICAgIHt0ZXh0LWFsaWduOiBsZWZ0fVxyXG4udGV4dC1jZW50ZXIgICAge3RleHQtYWxpZ246IGNlbnRlcn1cclxuLnRleHQtcmlnaHQgICAgIHt0ZXh0LWFsaWduOiByaWdodH1cclxuLnRleHQtYm9sZCAgICAgIHtmb250LXdlaWdodDogYm9sZH1cclxuLnRleHQtaXRhbGljICAgIHtmb250LXN0eWxlOiBpdGFsaWN9XHJcbi50ZXh0LXN0cmlrZSAgICB7dGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2h9XHJcbi50ZXh0LXVuZGVybGluZSB7dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmV9XHJcbi50ZXh0LXVwcGVyY2FzZSB7dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZX1cclxuLnRleHQtbG93ZXJjYXNlIHt0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlfVxyXG4udGV4dC1oaWRlICAgICAge3RleHQtaW5kZW50OiAtOTk5ZW19XHJcbi50ZXh0LW5vd3JhcCB7d2hpdGUtc3BhY2U6IG5vd3JhcH1cclxuXHJcbi50ZXh0LWNvbG9yIHtjb2xvcjogJGNvbG9yLXByaW1hcnl9XHJcblxyXG4uZm9udC1jb250ZW50IHtcclxuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1jb250ZW50O1xyXG4gICAgZm9udC1zaXplOiAyMnB4O1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuNWVtO1xyXG4gICAgQGluY2x1ZGUgZ3JpZGxlX3N0YXRlKG1kIHNtIHhzKSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgfVxyXG59XHJcblxyXG4vKi0tLS0tIFRBQkVMRSAtLS0tLSovXHJcbi50YWJsZS13cmFwIHt3aWR0aDogMTAwJTsgb3ZlcmZsb3cteDogYXV0b31cclxuXHJcblxyXG4vKi0tLS0tIFBPWllDSk9OT1dBTklFIC0tLS0tKi9cclxuLmNlbnRlciB7bWFyZ2luLWxlZnQ6IGF1dG87IG1hcmdpbi1yaWdodDogYXV0b31cclxuLmZjbGVhciB7ZmxvYXQ6IG5vbmU7IGNsZWFyOiBib3RofVxyXG4uZmxlZnQgIHtmbG9hdDogbGVmdH1cclxuLmZyaWdodCB7ZmxvYXQ6IHJpZ2h0fVxyXG5cclxuLmNyb3Age3Bvc2l0aW9uOiByZWxhdGl2ZTsgb3ZlcmZsb3c6IGhpZGRlbn1cclxuLmhpZGUge2Rpc3BsYXk6IG5vbmV9XHJcbi5pbnZpc2libGUge29wYWNpdHk6IDB9XHJcblxyXG5cclxuLyotLS0tLSBPQlJBTU9XQU5JRSAtLS0tLSovXHJcbi5ib3JkZXIgICAgICAgIHtib3JkZXI6IDFweCBzb2xpZCAjYzFjMWMxfVxyXG4uYm9yZGVyLXRvcCAgICB7Ym9yZGVyLXRvcDogMXB4IHNvbGlkICNjMWMxYzF9XHJcbi5ib3JkZXItbGVmdCAgIHtib3JkZXItbGVmdDogMXB4IHNvbGlkICNjMWMxYzF9XHJcbi5ib3JkZXItcmlnaHQgIHtib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjYzFjMWMxfVxyXG4uYm9yZGVyLWJvdHRvbSB7Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjMWMxYzF9XHJcblxyXG5cclxuLyotLS0tLSBNQVJHSU5FU1kgLS0tLS0tKi9cclxuLm1Ub3A1ICAgICAge21hcmdpbi10b3A6IDVweH1cclxuLm1Ub3AxMCAgICAge21hcmdpbi10b3A6IDEwcHh9XHJcbi5tVG9wMjAgICAgIHttYXJnaW4tdG9wOiAyMHB4fVxyXG4ubVRvcDMwICAgICB7bWFyZ2luLXRvcDogMzBweH1cclxuLm1Ub3A0MCAgICAge21hcmdpbi10b3A6IDQwcHh9XHJcbi5tVG9wNTAgICAgIHttYXJnaW4tdG9wOiA1MHB4fVxyXG4ubVJpZ2h0NSAgICB7bWFyZ2luLXJpZ2h0OiA1cHh9XHJcbi5tUmlnaHQxMCAgIHttYXJnaW4tcmlnaHQ6IDEwcHh9XHJcbi5tUmlnaHQyMCAgIHttYXJnaW4tcmlnaHQ6IDIwcHh9XHJcbi5tUmlnaHQzMCAgIHttYXJnaW4tcmlnaHQ6IDMwcHh9XHJcbi5tUmlnaHQ0MCAgIHttYXJnaW4tcmlnaHQ6IDQwcHh9XHJcbi5tUmlnaHQ1MCAgIHttYXJnaW4tcmlnaHQ6IDUwcHh9XHJcbi5tQm90dG9tNSAgIHttYXJnaW4tYm90dG9tOiA1cHh9XHJcbi5tQm90dG9tMTAgIHttYXJnaW4tYm90dG9tOiAxMHB4fVxyXG4ubUJvdHRvbTE1ICB7bWFyZ2luLWJvdHRvbTogMTVweH1cclxuLm1Cb3R0b20yMCAge21hcmdpbi1ib3R0b206IDIwcHh9XHJcbi5tQm90dG9tMzAgIHttYXJnaW4tYm90dG9tOiAzMHB4fVxyXG4ubUJvdHRvbTQwICB7bWFyZ2luLWJvdHRvbTogNDBweH1cclxuLm1Cb3R0b201MCAge21hcmdpbi1ib3R0b206IDUwcHh9XHJcbi5tTGVmdDUgICAgIHttYXJnaW4tbGVmdDogNXB4fVxyXG4ubUxlZnQxMCAgICB7bWFyZ2luLWxlZnQ6IDEwcHh9XHJcbi5tTGVmdDIwICAgIHttYXJnaW4tbGVmdDogMjBweH1cclxuLm1MZWZ0MzAgICAge21hcmdpbi1sZWZ0OiAzMHB4fVxyXG4ubUxlZnQ0MCAgICB7bWFyZ2luLWxlZnQ6IDQwcHh9XHJcbi5tTGVmdDUwICAgIHttYXJnaW4tbGVmdDogNTBweH1cclxuICAgXHJcbi5wVG9wNSAgICAgIHtwYWRkaW5nLXRvcDogNXB4fVxyXG4ucFRvcDEwICAgICB7cGFkZGluZy10b3A6IDEwcHh9XHJcbi5wVG9wMjAgICAgIHtwYWRkaW5nLXRvcDogMjBweH1cclxuLnBUb3AzMCAgICAge3BhZGRpbmctdG9wOiAzMHB4fVxyXG4ucFRvcDQwICAgICB7cGFkZGluZy10b3A6IDQwcHh9XHJcbi5wVG9wNTAgICAgIHtwYWRkaW5nLXRvcDogNTBweH1cclxuLnBSaWdodDUgICAge3BhZGRpbmctcmlnaHQ6IDVweH1cclxuLnBSaWdodDEwICAge3BhZGRpbmctcmlnaHQ6IDEwcHh9XHJcbi5wUmlnaHQyMCAgIHtwYWRkaW5nLXJpZ2h0OiAyMHB4fVxyXG4ucFJpZ2h0MzAgICB7cGFkZGluZy1yaWdodDogMzBweH1cclxuLnBSaWdodDQwICAge3BhZGRpbmctcmlnaHQ6IDQwcHh9XHJcbi5wUmlnaHQ1MCAgIHtwYWRkaW5nLXJpZ2h0OiA1MHB4fVxyXG4ucEJvdHRvbTUgICB7cGFkZGluZy1ib3R0b206IDVweH1cclxuLnBCb3R0b20xMCAge3BhZGRpbmctYm90dG9tOiAxMHB4fVxyXG4ucEJvdHRvbTIwICB7cGFkZGluZy1ib3R0b206IDIwcHh9XHJcbi5wQm90dG9tMzAgIHtwYWRkaW5nLWJvdHRvbTogMzBweH1cclxuLnBCb3R0b200MCAge3BhZGRpbmctYm90dG9tOiA0MHB4fVxyXG4ucEJvdHRvbTUwICB7cGFkZGluZy1ib3R0b206IDUwcHh9XHJcbi5wTGVmdDUgICAgIHtwYWRkaW5nLWxlZnQ6IDVweH1cclxuLnBMZWZ0MTAgICAge3BhZGRpbmctbGVmdDogMTBweH1cclxuLnBMZWZ0MjAgICAge3BhZGRpbmctbGVmdDogMjBweH1cclxuLnBMZWZ0MzAgICAge3BhZGRpbmctbGVmdDogMzBweH1cclxuLnBMZWZ0NDAgICAge3BhZGRpbmctbGVmdDogNDBweH1cclxuLnBMZWZ0NTAgICAge3BhZGRpbmctbGVmdDogNTBweH1cclxuXHJcblxyXG4vKi0tLS0tIERST1BET1dOIC0tLS0tICovXHJcbi5kcm9wZG93biB7cG9zaXRpb246IGFic29sdXRlOyB6LWluZGV4OiAxMDA7IGRpc3BsYXk6IG5vbmV9XHJcbi5kcm9wZG93biAuZHJvcGRvd24tbWVudSxcclxuLmRyb3Bkb3duIC5kcm9wZG93bi1wYW5lbCB7b3ZlcmZsb3c6IHZpc2libGU7IG1pbi13aWR0aDogMTYwcHg7IG1heC13aWR0aDogMzYwcHg7IG1hcmdpbjogMDsgcGFkZGluZzogNHB4IDA7IGJhY2tncm91bmQ6ICNGRkY7IGJvcmRlcjogc29saWQgMXB4ICNEREQ7IGJvcmRlcjogc29saWQgMXB4IHJnYmEoMCwgMCwgMCwgLjIpOyBib3JkZXItcmFkaXVzOiA2cHg7IGJveC1zaGFkb3c6IDAgNXB4IDEwcHggcmdiYSgwLCAwLCAwLCAuMik7IHRleHQtYWxpZ246IGxlZnQ7IGxpc3Qtc3R5bGU6IG5vbmV9XHJcbi5kcm9wZG93biAuZHJvcGRvd24tcGFuZWwge2NvbG9yOiAjNTU1OyBwYWRkaW5nOiAxMHB4fVxyXG4uZHJvcGRvd24gLmRyb3Bkb3duLXBhbmVsIC5kcm9wZG93bi1tZW51IHttYXJnaW46IDAgLTEwcHg7IHBhZGRpbmc6IDA7IGJvcmRlcjogMDsgYm94LXNoYWRvdzogbm9uZX1cclxuLmRyb3Bkb3duLmRyb3Bkb3duLXRpcCB7bWFyZ2luLXRvcDogOHB4fVxyXG4uZHJvcGRvd24uZHJvcGRvd24tdGlwOmJlZm9yZSB7Y29udGVudDogJyc7ICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7ICBwb3NpdGlvbjogYWJzb2x1dGU7ICB0b3A6IC02cHg7ICBsZWZ0OiA5cHg7ICBib3JkZXItbGVmdDogN3B4IHNvbGlkIHRyYW5zcGFyZW50OyAgYm9yZGVyLXJpZ2h0OiA3cHggc29saWQgdHJhbnNwYXJlbnQ7ICBib3JkZXItYm90dG9tOiA3cHggc29saWQgI0NDQzsgIGJvcmRlci1ib3R0b20tY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yKX1cclxuLmRyb3Bkb3duLmRyb3Bkb3duLXRpcC5kcm9wZG93bi1hbmNob3ItY2VudGVyOmJlZm9yZSB7bGVmdDogY2FsYyg1MCUgLSA1cHgpfVxyXG4uZHJvcGRvd24uZHJvcGRvd24tdGlwLmRyb3Bkb3duLWFuY2hvci1yaWdodDpiZWZvcmUge2xlZnQ6IGF1dG87IHJpZ2h0OiA5cHh9XHJcbi5kcm9wZG93bi5kcm9wZG93bi10aXA6YWZ0ZXIge2NvbnRlbnQ6ICcnOyAgZGlzcGxheTogaW5saW5lLWJsb2NrOyAgcG9zaXRpb246IGFic29sdXRlOyAgdG9wOiAtNXB4OyAgbGVmdDogMTBweDsgIGJvcmRlci1sZWZ0OiA2cHggc29saWQgdHJhbnNwYXJlbnQ7ICBib3JkZXItcmlnaHQ6IDZweCBzb2xpZCB0cmFuc3BhcmVudDsgIGJvcmRlci1ib3R0b206IDZweCBzb2xpZCAjRkZGfVxyXG4uZHJvcGRvd24uZHJvcGRvd24tdGlwLmRyb3Bkb3duLWFuY2hvci1jZW50ZXI6YWZ0ZXIge2xlZnQ6IGNhbGMoNTAlIC0gNHB4KX1cclxuLmRyb3Bkb3duLmRyb3Bkb3duLXRpcC5kcm9wZG93bi1hbmNob3ItcmlnaHQ6YWZ0ZXIge2xlZnQ6IGF1dG87IHJpZ2h0OiAxMHB4fVxyXG4uZHJvcGRvd24uZHJvcGRvd24tc2Nyb2xsIC5kcm9wZG93bi1tZW51LFxyXG4uZHJvcGRvd24uZHJvcGRvd24tc2Nyb2xsIC5kcm9wZG93bi1wYW5lbCB7b3ZlcmZsb3c6IGF1dG87IG1heC1oZWlnaHQ6IDM1OHB4fVxyXG4uZHJvcGRvd24gLmRyb3Bkb3duLW1lbnUgbGkge2xpc3Qtc3R5bGU6IG5vbmU7IHBhZGRpbmc6IDAgMDsgbWFyZ2luOiAwOyBsaW5lLWhlaWdodDogMThweH1cclxuLmRyb3Bkb3duIC5kcm9wZG93bi1tZW51IGxpID4gYSxcclxuLmRyb3Bkb3duIC5kcm9wZG93bi1tZW51IGxhYmVsIHtkaXNwbGF5OiBibG9jazsgbWFyZ2luOiAwOyBwYWRkaW5nOiAzcHggMTVweDsgY29sb3I6ICM1NTU7IGxpbmUtaGVpZ2h0OiAxOHB4OyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IHdoaXRlLXNwYWNlOiBub3dyYXB9XHJcbi5kcm9wZG93biAuZHJvcGRvd24tbWVudSBsaSA+IGE6aG92ZXIsXHJcbi5kcm9wZG93biAuZHJvcGRvd24tbWVudSBsYWJlbDpob3ZlciB7YmFja2dyb3VuZC1jb2xvcjogIzA4QzsgY29sb3I6ICNGRkY7IGN1cnNvcjogcG9pbnRlcn1cclxuLmRyb3Bkb3duIC5kcm9wZG93bi1tZW51IC5kcm9wZG93bi1kaXZpZGVyIHttYXJnaW46IDVweCAwOyBwYWRkaW5nOiAwOyBib3JkZXItdG9wOiBzb2xpZCAxcHggI0U1RTVFNTsgZm9udC1zaXplOiAxcHh9XHJcbi5kcm9wZG93bi5oYXMtaWNvbnMgbGkgPiBhIHtwYWRkaW5nLWxlZnQ6IDMwcHg7IGJhY2tncm91bmQtcG9zaXRpb246IDhweCBjZW50ZXI7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXR9XHJcblxyXG5cclxuLyotLS0tLSBTT1JUIC0tLS0tKi9cclxuLnNvcnRhYmxlIC5vcmRlci10cmlnZ2VyIHtjdXJzb3I6IG1vdmUgIWltcG9ydGFudH1cclxuLnNvcnRhYmxlIGxpLmRyYWdnZWQge3Bvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyB6LWluZGV4OiAxMDA7IG1pbi1oZWlnaHQ6IDQzcHg7IGJvcmRlcjogMXB4IHNvbGlkICNjMWMxYzF9XHJcbi8qLnNvcnRhYmxlIGxpLnBsYWNlaG9sZGVyIHtwb3NpdGlvbjogcmVsYXRpdmU7IGJvcmRlcjogMXB4IGRhc2hlZCAjYzFjMWMxfVxyXG4uc29ydGFibGUgbGkucGxhY2Vob2xkZXI6YmVmb3JlIHtwb3NpdGlvbjogYWJzb2x1dGV9Ki9cclxuLnNvcnRhYmxlIGxpLnBsYWNlaG9sZGVyIHtwb3NpdGlvbjogcmVsYXRpdmU7IG1hcmdpbjogMDsgcGFkZGluZzogMDsgYm9yZGVyOiAxcHggZGFzaGVkICNjMWMxYzF9XHJcblxyXG5cclxuLyotLS0tLSBBTklNQUNKRSAtLS0tLSovXHJcbi5mYWRlLWluLXVwICAgey13ZWJraXQtYW5pbWF0aW9uOiBmYWRlLWluLXVwIDFzOyAtd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7IGFuaW1hdGlvbjogZmFkZS1pbi11cCAxczsgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aH1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlLWluLXVwIHtcclxuICAgIDAlIHtvcGFjaXR5OiAwOyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjBweCl9XHJcbiAgICAxMDAlIHtvcGFjaXR5OiAxOy13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApfVxyXG59XHJcbkBrZXlmcmFtZXMgZmFkZS1pbi11cCB7XHJcbiAgICAwJSB7b3BhY2l0eTogMDsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yMHB4KX1cclxuICAgIDEwMCUge29wYWNpdHk6IDE7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKX1cclxufVxyXG4uZmFkZS1vdXQgICB7LXdlYmtpdC1hbmltYXRpb246IGZhZGUtb3V0IC4yNXM7IC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDsgYW5pbWF0aW9uOiBmYWRlLW91dCAuMjVzOyBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RofVxyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIGZhZGUtb3V0IHtcclxuICAgIDAlIHtvcGFjaXR5OiAxfVxyXG4gICAgMTAwJSB7b3BhY2l0eTogMH1cclxufVxyXG5Aa2V5ZnJhbWVzIGZhZGUtb3V0IHtcclxuICAgIDAlIHtvcGFjaXR5OiAxfVxyXG4gICAgMTAwJSB7b3BhY2l0eTogMH1cclxufSIsIi8vIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHwgTWl4aW5zXG4vLyB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy9cbi8vIEluaXRcbi8vIGNhbGxlZCBieSBfZ3JpZGxlX2NhbGwgbWl4aW4gbXVsdGlwbGUgdGltZXNcbi8vXG5AbWl4aW4gZ3JpZGxlX2luaXQoKSB7XG5cdEBpZiAkX2dyaWRsZV9pbml0ZWQgPT0gZmFsc2Uge1xuXHRcdCRfZ3JpZGxlX2luaXRlZCA6IHRydWUgIWdsb2JhbDtcblx0XHRAZWFjaCAkc3RhdGVOYW1lLCAkc3RhdGUgaW4gJF9ncmlkbGVfc3RhdGVzIHtcblx0XHRcdCRjbGFzc2VzIDogZ3JpZGxlX2dldF9zdGF0ZV92YXIoY2xhc3NlcywgJHN0YXRlKTtcblx0XHRcdEBpZiAkY2xhc3NlcyB7XG5cdFx0XHRcdEBhdC1yb290ICh3aXRob3V0OmFsbCkge1xuXHRcdFx0XHRcdCRxIDogZ3JpZGxlX2dldF9tZWRpYV9xdWVyeSgkc3RhdGUpO1xuXHRcdFx0XHRcdEBpZiAkcSB7XG5cdFx0XHRcdFx0XHRAbWVkaWEgI3skcX0ge1xuXHRcdFx0XHRcdFx0XHRAaW5jbHVkZSBfZ3JpZGxlX2luaXRfY29tbW9uX3NpbGVudF9jbGFzc2VzKCRzdGF0ZSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSBAZWxzZSB7XG5cdFx0XHRcdFx0XHRAaW5jbHVkZSBfZ3JpZGxlX2luaXRfY29tbW9uX3NpbGVudF9jbGFzc2VzKCRzdGF0ZSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cblxuLy9cbi8vIEluaXQgc2lsZW50IGNsYXNzZXNcbi8vXG5AbWl4aW4gX2dyaWRsZV9jb21tb25fc2lsZW50X2NsYXNzX25hbWUoXG5cdCRmb3IsXG5cdCRzdGF0ZU5hbWUgOiBkZWZhdWx0XG4pIHtcblx0QGlmIG1peGluLWV4aXN0cygnX2dyaWRsZV9jb21tb25fI3skZm9yfScpIHtcblx0XHQlI3skc3RhdGVOYW1lfS0jeyRmb3J9IHtcblx0XHRcdC8vIGluamVjdCBjb250ZW50XG5cdFx0XHRAY29udGVudDtcblx0XHR9XG5cdFx0QGF0LXJvb3QgKHdpdGhvdXQ6IG1lZGlhKSB7XG5cdFx0XHQlYXQtcm9vdC0jeyRzdGF0ZU5hbWV9LSN7JGZvcn0ge1xuXHRcdFx0XHQvLyBpbmplY3QgY29udGVudFxuXHRcdFx0XHRAY29udGVudDtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbkBtaXhpbiBfZ3JpZGxlX2luaXRfY29tbW9uX3NpbGVudF9jbGFzc2VzKFxuXHQkc3RhdGUgOiBkZWZhdWx0XG4pIHtcblx0Ly8gZ2V0IHN0YXRlIG5hbWVcblx0JHN0YXRlTmFtZSA6IGdyaWRsZV9nZXRfc3RhdGVfdmFyKG5hbWUsICRzdGF0ZSk7XG5cblx0Ly8gZGVmaW5lIHBhY2thZ2VzIHRvIGluaXRcblx0Ly8gdGhlIG9yZGVyIGNhbiBtYXR0ZXIgaGVyZVxuXHQkcGFja2FnZXMgOiAoXG5cdFx0Y29udGFpbmVyLFxuXHRcdGdyaWQtb3JkZXIsXG5cdFx0cm93LFxuXHRcdHJvdy1mdWxsLFxuXHRcdGNvbCxcblx0XHRncmlkLFxuXHRcdGdyaWQtdGFibGUsXG5cdFx0Z3JpZC1hZGFwdCxcblx0XHRncmlkLWdyb3csXG5cdFx0cHVzaCxcblx0XHRwdWxsLFxuXHRcdHByZWZpeCxcblx0XHRzdWZmaXgsXG5cdFx0bm93cmFwLFxuXHRcdHdyYXAsXG5cdFx0Y2xlYXItZWFjaCxcblx0XHRncmlkLWNlbnRlcmVkLFxuXHRcdHJvdy1hbGlnbixcblx0XHRoaWRlLFxuXHRcdG5vdC12aXNpYmxlLFxuXHRcdHNob3csXG5cdFx0c2hvdy1pbmxpbmUsXG5cdFx0dmlzaWJsZSxcblx0XHRmbG9hdCxcblx0XHRjbGVhcixcblx0XHRuby1ndXR0ZXIsXG5cdFx0Z3V0dGVyLFxuXHRcdHJvdy1kZWJ1Z1xuXHQpO1xuXG5cdC8vIGxvb3Agb24gZWFjaCBwYWNrYWdlcyB0byBpbml0IHRoZWlyIGNvbW1vbiBzaWxpZW50IGNsYXNzZXNcblx0QGVhY2ggJHBhY2thZ2UgaW4gJHBhY2thZ2VzIHtcblx0XHQvLyBpbmNsdWRlIGNvbW1vblxuXHRcdEBpbmNsdWRlIF9ncmlkbGVfY29tbW9uX3NpbGVudF9jbGFzc19uYW1lKCRwYWNrYWdlLCAkc3RhdGVOYW1lKSB7XG5cdFx0XHRAaW5jbHVkZSBfZ3JpZGxlX2luY2x1ZGVfY29tbW9uKCRwYWNrYWdlLCAkc3RhdGVOYW1lKTtcblx0XHR9XG5cdH1cbn1cblxuQG1peGluIF9ncmlkbGVfaW5jbHVkZV9jb21tb24oXG5cdCRwYWNrYWdlLFxuXHQkc3RhdGUgOiBjdXJyZW50XG4pIHtcblxuXHQvLyBnZXQgc3RhdGUgbmFtZVxuXHQkc3RhdGUgOiBncmlkbGVfZ2V0X3N0YXRlKCRzdGF0ZSk7XG5cdFxuXHQvLyBjb250YWluZXJcblx0QGlmICRwYWNrYWdlID09IGNvbnRhaW5lciB7XG5cdFx0QGluY2x1ZGUgX2dyaWRsZV9jb21tb25fY29udGFpbmVyKCRzdGF0ZSk7XG5cdH1cblxuXHQvLyBvcmRlclxuXHRAaWYgJHBhY2thZ2UgPT0gZ3JpZC1vcmRlciB7XG5cdFx0QGluY2x1ZGUgX2dyaWRsZV9jb21tb25fZ3JpZF9vcmRlcigkc3RhdGUpO1xuXHR9XG5cblx0Ly8gcm93XG5cdEBpZiAkcGFja2FnZSA9PSByb3cge1xuXHRcdEBpbmNsdWRlIF9ncmlkbGVfY29tbW9uX3Jvdygkc3RhdGUpO1xuXHR9XG5cblx0Ly8gcm93LWZ1bGxcblx0QGlmICRwYWNrYWdlID09IHJvdy1mdWxsIHtcblx0XHRAaW5jbHVkZSBfZ3JpZGxlX2NvbW1vbl9yb3dfZnVsbCgkc3RhdGUpO1xuXHR9XG5cblx0Ly8gY29sXG5cdEBpZiAkcGFja2FnZSA9PSBjb2wge1xuXHRcdEBpbmNsdWRlIF9ncmlkbGVfY29tbW9uX2NvbCgkc3RhdGUpO1xuXHR9XG5cblx0Ly8gZ3JpZFxuXHRAaWYgJHBhY2thZ2UgPT0gZ3JpZCB7XG5cdFx0QGluY2x1ZGUgX2dyaWRsZV9jb21tb25fZ3JpZCgkc3RhdGUpO1xuXHR9XG5cblx0Ly8gZ3JpZC10YWJsZVxuXHRAaWYgJHBhY2thZ2UgPT0gZ3JpZC10YWJsZSB7XG5cdFx0QGluY2x1ZGUgX2dyaWRsZV9jb21tb25fZ3JpZF90YWJsZSgkc3RhdGUpO1xuXHR9XG5cblx0Ly8gZ3JpZC1hZGFwdFxuXHRAaWYgJHBhY2thZ2UgPT0gZ3JpZC1hZGFwdCB7XG5cdFx0QGluY2x1ZGUgX2dyaWRsZV9jb21tb25fZ3JpZF9hZGFwdCgkc3RhdGUpO1xuXHR9XG5cblx0Ly8gZ3JpZC1ncm93XG5cdEBpZiAkcGFja2FnZSA9PSBncmlkLWdyb3cge1xuXHRcdEBpbmNsdWRlIF9ncmlkbGVfY29tbW9uX2dyaWRfZ3Jvdygkc3RhdGUpO1xuXHR9XG5cblx0Ly8gcHVzaFxuXHRAaWYgJHBhY2thZ2UgPT0gcHVzaHtcblx0XHRAaW5jbHVkZSBfZ3JpZGxlX2NvbW1vbl9wdXNoKCRzdGF0ZSk7XG5cdH1cblxuXHQvLyBwdWxsXG5cdEBpZiAkcGFja2FnZSA9PSBwdWxse1xuXHRcdEBpbmNsdWRlIF9ncmlkbGVfY29tbW9uX3B1bGwoJHN0YXRlKTtcblx0fVxuXG5cdC8vIHByZWZpeFxuXHRAaWYgJHBhY2thZ2UgPT0gcHJlZml4e1xuXHRcdEBpbmNsdWRlIF9ncmlkbGVfY29tbW9uX3ByZWZpeCgkc3RhdGUpO1xuXHR9XG5cblx0Ly8gc3VmZml4XG5cdEBpZiAkcGFja2FnZSA9PSBzdWZmaXgge1xuXHRcdEBpbmNsdWRlIF9ncmlkbGVfY29tbW9uX3N1ZmZpeCgkc3RhdGUpO1xuXHR9XG5cblx0Ly8gbm93cmFwXG5cdEBpZiAkcGFja2FnZSA9PSBub3dyYXAge1xuXHRcdEBpbmNsdWRlIF9ncmlkbGVfY29tbW9uX25vd3JhcCgkc3RhdGUpO1xuXHR9XG5cblx0Ly8gd3JhcFxuXHRAaWYgJHBhY2thZ2UgPT0gd3JhcCB7XG5cdFx0QGluY2x1ZGUgX2dyaWRsZV9jb21tb25fd3JhcCgkc3RhdGUpO1xuXHR9XG5cblx0Ly8gY2xlYXItZWFjaFxuXHRAaWYgJHBhY2thZ2UgPT0gY2xlYXItZWFjaCB7XG5cdFx0QGluY2x1ZGUgX2dyaWRsZV9jb21tb25fY2xlYXJfZWFjaCgkc3RhdGUpO1xuXHR9XG5cblx0Ly8gY2VudGVyZWRcblx0QGlmICRwYWNrYWdlID09IGdyaWQtY2VudGVyZWQge1xuXHRcdEBpbmNsdWRlIF9ncmlkbGVfY29tbW9uX2dyaWRfY2VudGVyZWQoJHN0YXRlKTtcblx0fVxuXG5cdC8vIHJvdy1hbGlnblxuXHRAaWYgJHBhY2thZ2UgPT0gcm93LWFsaWduIHtcblx0XHRAaW5jbHVkZSBfZ3JpZGxlX2NvbW1vbl9yb3dfYWxpZ24oJHN0YXRlKTtcblx0fVxuXG5cdC8vIGhpZGVcblx0QGlmICRwYWNrYWdlID09IGhpZGUge1xuXHRcdEBpbmNsdWRlIF9ncmlkbGVfY29tbW9uX2hpZGUoJHN0YXRlKTtcblx0fVxuXG5cdC8vIG5vdC12aXNpYmxlXG5cdEBpZiAkcGFja2FnZSA9PSBub3QtdmlzaWJsZSB7XG5cdFx0QGluY2x1ZGUgX2dyaWRsZV9jb21tb25fbm90X3Zpc2libGUoJHN0YXRlKTtcblx0fVxuXG5cdC8vIHNob3dcblx0QGlmICRwYWNrYWdlID09IHNob3d7XG5cdFx0QGluY2x1ZGUgX2dyaWRsZV9jb21tb25fc2hvdygkc3RhdGUpO1xuXHR9XG5cblx0Ly8gc2hvdy1pbmxpbmVcblx0QGlmICRwYWNrYWdlID09IHNob3ctaW5saW5lIHtcblx0XHRAaW5jbHVkZSBfZ3JpZGxlX2NvbW1vbl9zaG93X2lubGluZSgkc3RhdGUpO1xuXHR9XG5cblx0Ly8gdmlzaWJsZVxuXHRAaWYgJHBhY2thZ2UgPT0gdmlzaWJsZSB7XG5cdFx0QGluY2x1ZGUgX2dyaWRsZV9jb21tb25fdmlzaWJsZSgkc3RhdGUpO1xuXHR9XG5cblx0Ly8gZmxvYXRcblx0QGlmICRwYWNrYWdlID09IGZsb2F0IHtcblx0XHRAaW5jbHVkZSBfZ3JpZGxlX2NvbW1vbl9mbG9hdCgkc3RhdGUpO1xuXHR9XG5cblx0Ly8gY2xlYXJcblx0QGlmICRwYWNrYWdlID09IGNsZWFyIHtcblx0XHRAaW5jbHVkZSBfZ3JpZGxlX2NvbW1vbl9jbGVhcigkc3RhdGUpO1xuXHR9XG5cblx0Ly8gbm8tZ3V0dGVyXG5cdEBpZiAkcGFja2FnZSA9PSBuby1ndXR0ZXIge1xuXHRcdEBpbmNsdWRlIF9ncmlkbGVfY29tbW9uX25vX2d1dHRlcigkc3RhdGUpO1xuXHR9XG5cblx0Ly8gZ3V0dGVyXG5cdEBpZiAkcGFja2FnZSA9PSBndXR0ZXIge1xuXHRcdEBpbmNsdWRlIF9ncmlkbGVfY29tbW9uX2d1dHRlcigkc3RhdGUpO1xuXHR9XG5cblx0Ly8gcm93IGRlYnVnXG5cdEBpZiAkcGFja2FnZSA9PSByb3ctZGVidWcge1xuXHRcdEBpbmNsdWRlIF9ncmlkbGVfY29tbW9uX3Jvd19kZWJ1Zygkc3RhdGUpO1xuXHR9XG5cblx0Ly8gZXh0ZW5kIGNvbW1vbiBjbGFzcyBieSB0aGUgcmVnaXN0ZXJlZCBjc3Ncblx0QGluY2x1ZGUgX2dyaWRsZV9leHRlbmRfY29tbW9uX2NsYXNzKCRwYWNrYWdlLCAkc3RhdGUpO1xufVxuXG5cbi8vXG4vLyBXcmFwIGdyaWRsZSBtaXhpbiBjb250ZW50IHRvIGluaXQgaWYgbmVlZGVkIGFuZCB0aGVuIGlmIG5lZWRlZFxuLy9cdFx0XHRcbkBtaXhpbiBfZ3JpZGxlX2NhbGwoXG5cdCRmb3IgOiBudWxsXG4pIHtcblx0Ly8gaW5pdCBpZiBuZWVkZWRcblx0QGluY2x1ZGUgZ3JpZGxlX2luaXQoKTtcblxuXHQvLyBwdXQgY29udGVudFxuXHRAY29udGVudDtcblxuXHQvLyBleHRlbmQgYW5kIGFwcGx5IGNzcyBmb3IgZGlmZmVyZW50IHN0YXRlc1xuXHRAaWYgJGZvciB7XG5cdFx0QGluY2x1ZGUgX2dyaWRsZV9leHRlbmQoJGZvcik7XG5cdFx0QGlmIG5vdCBfZ3JpZGxlX2lzX2luX2dlbmVyYXRlX3BoYXNlKCkge1xuXHRcdFx0QGluY2x1ZGUgX2dyaWRsZV9hcHBseV9jc3NfZm9yKCRmb3IpO1xuXHRcdH1cblx0fVxufVxuXG5cbi8vXG4vLyBFeHRlbmRcbi8vIEBzdGF0ZUNvbnRleHRcbi8vIEBjYWxsZWRCeSBcdFx0X2dyaWRsZV9jYWxsXG4vL1xuQG1peGluIF9ncmlkbGVfZXh0ZW5kKFxuXHQkcGFja2FnZVxuKSB7XG5cdC8vIGNoZWNrIGlmIHdlIG5lZWQgdGhlIHN0YXRlIGNsYXNzZXNcblx0JHN0YXRlcy1jbGFzc2VzIDogZ3JpZGxlX2dldF9zdGF0ZV92YXIoc3RhdGVzLWNsYXNzZXMpO1xuXHQkc3RhdGVOYW1lIDogZ3JpZGxlX2dldF9zdGF0ZV92YXIobmFtZSk7XG5cblx0Ly8gaWYgaXMgYW4gZXhpc3RpbmcgZ3JpZGxlIHN0YXRlXG5cdEBpZiBncmlkbGVfaGFzX3N0YXRlKCRzdGF0ZU5hbWUpIHtcblx0XHQvLyBleHRlbmQgdGhlIFwiYXQtcm9vdFwiIHZlcnNpb24gZm9yIHRoZSAuc3RhdGUte3N0YXRlTmFtZX0gY2xhc3Nlc1xuXHRcdEBpZiAkc3RhdGVzLWNsYXNzZXMgYW5kIHN0ci1pbmRleCh1bnF1b3RlKFwiI3smfVwiKSwgdW5xdW90ZSgnLnN0YXRlLSN7JF9ncmlkbGVfY3VycmVudF9zdGF0ZU5hbWV9JykpIHtcblx0XHRcdC8vIEBhdC1yb290ICh3aXRob3V0OiBtZWRpYSkgeyAvLyBzZWVtcyBub3QgbmVlZGVkIGhlcmUsIGNhdXNlIGlzc3VlcyB3aXRoIGxpYnNhc3Ncblx0XHRcdFx0Ly8gQGRlYnVnKFwiJWF0LXJvb3QtI3skX2dyaWRsZV9jdXJyZW50X3N0YXRlTmFtZX0tI3skcGFja2FnZX1cIik7XG5cdFx0XHRcdEBleHRlbmQgJWF0LXJvb3QtI3skX2dyaWRsZV9jdXJyZW50X3N0YXRlTmFtZX0tI3skcGFja2FnZX0gIW9wdGlvbmFsO1xuXHRcdFx0Ly8gfVxuXHRcdH0gQGVsc2Uge1xuXHRcdFx0Ly8gZXh0ZW5kIHVzaW5nIHRoZSBjdXJyZW50IHN0YXRlIG5hbWUgc2V0IGluIGVhY2ggZ3JpZGxlX3N0YXRlIGNhbGxcblx0XHRcdC8vIEBkZWJ1ZyhcIiUjeyRfZ3JpZGxlX2N1cnJlbnRfc3RhdGVOYW1lfS0jeyRwYWNrYWdlfVwiKTtcblx0XHRcdEBleHRlbmQgJSN7JF9ncmlkbGVfY3VycmVudF9zdGF0ZU5hbWV9LSN7JHBhY2thZ2V9ICFvcHRpb25hbDtcblx0XHR9XG5cdH0gQGVsc2Uge1xuXHRcdC8vIGl0J3Mgbm90IGFuIGV4aXN0aW5nIHN0YXRlIHNvIHdlIGNhbm5vdCBleHRlbmQuXG5cdFx0Ly8gd2UgbmVlZCB0byBpbmNsdWRlIGluc3RlYWRcblx0XHRAaW5jbHVkZSBfZ3JpZGxlX2luY2x1ZGVfY29tbW9uKCRwYWNrYWdlLCAkc3RhdGVOYW1lKTtcblx0fVxufVxuXG5cbi8vXG4vLyBBcHBseSB0aGUgcmVnaXN0ZXJlZCBjc3MgZm9yIGEgY2VydGFpbiB0eXBlIChncmlkLCBwdXNoLCBldGMuLi4pXG4vLyBpbiBlYWNoIHN0YXRlc1xuLy9cbiRfZ3JpZGxlX2FwcGxpZWRfZm9yIDogKCk7XG5AbWl4aW4gX2dyaWRsZV9hcHBseV9jc3NfZm9yKFxuXHQkX2ZvclxuKSB7XG5cdCRzZWxlY3RvciA6IFwiI3smfS0jeyRfZm9yfVwiOyAvLyBnZW5lcmF0ZSBhIHVuaXF1ZSBuYW1lIHRoYXQgd2lsbCBiZSBzdGFja2VkIGluIGEgbWFwIHRvIGdlbmVyYXRlIG9ubHkgMSB0aW1lIFxuXHRAaWYgbWFwLWdldCgkX2dyaWRsZV9hcHBsaWVkX2ZvciwgJHNlbGVjdG9yKSA9PSBudWxsIHtcblx0XHQkX2dyaWRsZV9hcHBsaWVkX2ZvciA6IG1hcC1zZXQoJF9ncmlkbGVfYXBwbGllZF9mb3IsICRzZWxlY3RvciwgdHJ1ZSkgIWdsb2JhbDtcblx0XHQkZm9ycy1wYXR0ZXJucyA6ICRfZ3JpZGxlLXBhY2thZ2VzO1xuXHRcdEBlYWNoICRtYXAgaW4gJF9ncmlkbGVfYXBwbHlfY3NzX2ZvciB7XG5cdFx0XHRAZWFjaCAkc3RhdGVOYW1lLCAkZm9ycyBpbiAkbWFwIHtcblx0XHRcdFx0JHJ1bGVzIDogbWFwLWdldCgkZm9ycywgJF9mb3IpO1xuXHRcdFx0XHRAaWYgJHJ1bGVzIGFuZCBtYXAtZ2V0KCRmb3JzLXBhdHRlcm5zLCAkX2Zvcikge1xuXHRcdFx0XHRcdEBhdC1yb290ICh3aXRob3V0IDogbWVkaWEpIHtcblx0XHRcdFx0XHRcdEBpbmNsdWRlIF9ncmlkbGVfc3RhdGUoJHN0YXRlTmFtZSwgdHJ1ZSwgZmFsc2UpIHtcblx0XHRcdFx0XHRcdFx0QGluY2x1ZGUgZ3JpZGxlX3VzZV9zdGF0ZSgkc3RhdGVOYW1lKSB7XG5cdFx0XHRcdFx0XHRcdFx0QGluY2x1ZGUgX2dyaWRsZV9tYXBfMl9jc3MoJHJ1bGVzKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG5cbi8vXG4vLyBHcmlkbGUgc3RhdGVcbi8vXG4vLyBAcGFyYW0gXHRzdHJpbmd8bWFwfGxpc3QgXHQkc3RhdGVzIFx0XHRBIGxpc3Qgb2Ygc3RhdGVzLCBhIHN0YXRlIG5hbWUgb3IgYSBzdGF0ZSBtYXBcbi8vIEBwYXJhbSBcdGJvb2xlYW4gXHRcdFx0JGhhcy1wYXJlbnQgXHRNb3N0bHkgYWx3YXlzIHRydWUsIG1lYW4gdGhhdCB0aGUgbWl4aW4gaXMgdXNlZCBpbiBhIGNzcyBzZWxlY3RvciBhbmQgbm90IGluIGNzcyByb290IGxldmVsXG4vL1xuQG1peGluIF9ncmlkbGVfc3RhdGUoXG5cdCRzdGF0ZSA6IGRlZmF1bHQsXG5cdCRoYXMtcGFyZW50IDogdHJ1ZSxcblx0JHRyYWNrLWN1cnJlbnQtc3RhdGUgOiB0cnVlXG4pIHtcblxuXHQvLyB2YXJpYWJsZXMgOlxuXHQkc3RhdGUgOiBncmlkbGVfZ2V0X3N0YXRlKCRzdGF0ZSk7XG5cdCRzdGF0ZXMtY2xhc3NlcyA6IGdyaWRsZV9nZXRfc3RhdGVfdmFyKHN0YXRlcy1jbGFzc2VzLCAkc3RhdGUpO1xuXHQkc3RhdGVOYW1lIDogZ3JpZGxlX2dldF9zdGF0ZV92YXIobmFtZSwgJHN0YXRlKTtcblxuXHQvLyBtYW5hZ2UgcHJldmlvdXMgc3RhdGVcblx0JHByZXZpb3VzX3N0YXRlIDogbnVsbDtcblx0JHByZXZpb3VzX3N0YXRlTmFtZSA6IG51bGw7XG5cblx0Ly8gY2hlY2sgaWYgbmVlZCB0byB0YWNrIHRoZSBjdXJyZW50IHN0YXRlXG5cdEBpZiAkdHJhY2stY3VycmVudC1zdGF0ZSB7XG5cdFx0QGlmICRfZ3JpZGxlX2N1cnJlbnRfc3RhdGUge1xuXHRcdFx0JHByZXZpb3VzX3N0YXRlIDogJF9ncmlkbGVfY3VycmVudF9zdGF0ZTtcblx0XHRcdCRwcmV2aW91c19zdGF0ZU5hbWUgOiAkX2dyaWRsZV9jdXJyZW50X3N0YXRlTmFtZTtcblx0XHR9XG5cdFx0Ly8gaWYgd2UgaGF2ZSBhIHByZXZpb3VzIHN0YXRlIHRoYXQgaXMgbm90IHRoZSBkZWZhdWx0IG9uZSwgd2Vcblx0XHQvLyBtYWtlIHRoZSBpbmhlcml0ZW5jZSBwcm9jZXNzLlxuXHRcdC8vIGlmIGJvdGggc3RhdGVzIGFyZSByZWdpc3RlcmVkIG9uZXMgOiBqdXN0IHRha2UgdGhlIHdhbnRlZCBzdGF0ZVxuXHRcdC8vIGlmIG9ubHkgcHJldmlvdXNfc3RhdGUgaXMgYSByZWdpc3RlcmVkIG9uZSA6IGV4dGVuZCBwcmV2aW91c19zdGF0ZSB3aXRoIHRoZSB3YW50ZWQgb25lXG5cdFx0Ly8gaWYgbm9uZSBvZiB0aGVtIGFyZSByZXNpdGVyZWQgOiBleHRlbmQgdGhlIHdhbnRlZCB3aXRoIHRoZSBwcmV2aW91cyBvbmVcblx0XHRAaWYgJHByZXZpb3VzX3N0YXRlIHtcblx0XHRcdCRfZ3JpZGxlX2N1cnJlbnRfc3RhdGUgOiBfZ3JpZGxlX2luaGVyaXRfc3RhdGUoJHN0YXRlLCAkcHJldmlvdXNfc3RhdGUpICFnbG9iYWw7XG5cdFx0fSBAZWxzZSB7XG5cdFx0XHQkX2dyaWRsZV9jdXJyZW50X3N0YXRlIDogJHN0YXRlICFnbG9iYWw7XHRcblx0XHR9XG5cdFx0JF9ncmlkbGVfY3VycmVudF9zdGF0ZU5hbWUgOiAkc3RhdGVOYW1lICFnbG9iYWw7XG5cdH1cblxuXHQvLyBjaGVjayBpZiBpcyBhIHN0YXRlIDpcblx0QGlmICgkc3RhdGVzLWNsYXNzZXMpXG5cdFx0YW5kICRzdGF0ZU5hbWUge1xuXHRcdC8vIGh0bWwgY2xhc3MgOlxuXHRcdEBhdC1yb290ICh3aXRob3V0OiBtZWRpYSkge1xuXHRcdFx0QGlmICRoYXMtcGFyZW50IHtcblx0XHRcdFx0LnN0YXRlLSN7JHN0YXRlTmFtZX0gJiB7IFxuXHRcdFx0XHRcdEBjb250ZW50O1xuXHRcdFx0XHR9XG5cdFx0XHR9IEBlbHNlIHtcblx0XHRcdFx0LnN0YXRlLSN7JHN0YXRlTmFtZX0ge1xuXHRcdFx0XHRcdEBjb250ZW50O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Ly8gZ2V0IHRoZSBtZWRpYSBxdWVyeSA6XG5cdCRxIDogZ3JpZGxlX2dldF9tZWRpYV9xdWVyeSgkc3RhdGUpO1xuXG5cdC8vIG1ha2UgdGhlIG1lZGlhIHF1ZXJ5IGlmIGEgcXVlcnkgZXhpc3QgOlxuXHRAaWYgJHEge1xuXHRcdEBtZWRpYSAjeyRxfSB7XG5cdFx0XHRAY29udGVudDtcblx0XHR9XG5cdH0gQGVsc2Uge1xuXHRcdEBjb250ZW50O1xuXHR9XG5cblx0Ly8gcmVzZXQgY3VycmVudCBzdGF0ZSB0byBkZWZhdWx0XG5cdEBpZiAkdHJhY2stY3VycmVudC1zdGF0ZSBhbmQgJHByZXZpb3VzX3N0YXRlIGFuZCAkcHJldmlvdXNfc3RhdGVOYW1lIHtcblx0XHQkX2dyaWRsZV9jdXJyZW50X3N0YXRlIDogJHByZXZpb3VzX3N0YXRlICFnbG9iYWw7XG5cdFx0JF9ncmlkbGVfY3VycmVudF9zdGF0ZU5hbWUgOiAkcHJldmlvdXNfc3RhdGVOYW1lICFnbG9iYWw7XG5cdH1cbn1cblxuXG4vL1xuLy8gVHJhbnNmb3JtIG1hcCB0byBjc3Ncbi8vXG5AbWl4aW4gX2dyaWRsZV9tYXBfMl9jc3MoXG5cdCRtYXBcbikge1xuXHRAZWFjaCAka2V5LCAkdmFsdWUgaW4gJG1hcCB7XG5cdFx0QGlmIHR5cGUtb2YoJHZhbHVlKSA9PSBtYXAge1xuXHRcdFx0JiN7JGtleX0ge1xuXHRcdFx0XHRAZWFjaCAkaywgJHYgaW4gJHZhbHVlIHtcblx0XHRcdFx0XHRAaWYgJGsgIT0gbnVsbCBhbmQgc3RyLWluZGV4KCRrLCBncmlkbGUpIGFuZCBtaXhpbi1leGlzdHMoJGspIHtcblx0XHRcdFx0XHRcdCRzZXQtbmFtZSA6IHN0ci1yZXBsYWNlKCRrLCBcImdyaWRsZV9cIiwgXCJcIik7XG5cdFx0XHRcdFx0XHQkc2V0LW5hbWUgOiBzdHItcmVwbGFjZSgkc2V0LW5hbWUsIFwiX1wiLCBcIi1cIiwgMSk7XG5cdFx0XHRcdFx0XHRAaW5jbHVkZSBfZ3JpZGxlX3NldCgoXG5cdFx0XHRcdFx0XHRcdCRzZXQtbmFtZSA6ICR2XG5cdFx0XHRcdFx0XHQpKTtcblx0XHRcdFx0XHR9IEBlbHNlIHtcblx0XHRcdFx0XHRcdCN7JGt9OiN7JHZ9O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0gQGVsc2Uge1xuXHRcdFx0QGlmICRrZXkgIT0gbnVsbCBhbmQgc3RyLWluZGV4KCRrZXksIGdyaWRsZSkgYW5kIG1peGluLWV4aXN0cygka2V5KSB7XG5cdFx0XHRcdCRzZXQtbmFtZSA6IHN0ci1yZXBsYWNlKFwiI3ska2V5fVwiLCBcImdyaWRsZV9cIiwgXCJcIik7XG5cdFx0XHRcdCRzZXQtbmFtZSA6IHN0ci1yZXBsYWNlKFwiI3skc2V0LW5hbWV9XCIsIFwiX1wiLCBcIi1cIiwgMSk7XG5cdFx0XHRcdEBpbmNsdWRlIF9ncmlkbGVfc2V0KChcblx0XHRcdFx0XHQkc2V0LW5hbWUgOiAkdmFsdWVcblx0XHRcdFx0KSk7XG5cdFx0XHR9IEBlbHNlIHtcblx0XHRcdFx0I3ska2V5fTojeyR2YWx1ZX07XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi8vXG4vLyBFeHRlbmQgY29tbW9uIGNsYXNzXG4vL1xuQG1peGluIF9ncmlkbGVfZXh0ZW5kX2NvbW1vbl9jbGFzcyhcblx0JHdoYXQsXG5cdCRzdGF0ZSA6IGRlZmF1bHRcbikge1xuXHQvLyBleHRlbmRcblx0JHN0YXRlTmFtZSA6IGdyaWRsZV9nZXRfc3RhdGVfdmFyKG5hbWUsICRzdGF0ZSk7XG5cdCRleHRlbmQgOiBncmlkbGVfZ2V0X2V4dGVuZF9jbGFzc19tYXAoJHdoYXQsICRzdGF0ZU5hbWUpO1xuXHRAaWYgJGV4dGVuZCAhPSBudWxsIHtcblx0XHRAaW5jbHVkZSBfZ3JpZGxlX21hcF8yX2NzcygkZXh0ZW5kKTtcblx0fVxufSIsIkBmb250LWZhY2Uge1xuXHRmb250LWZhbWlseTogJ2ljb25zJztcblx0c3JjOnVybCgnLi4vZm9udHMvaWNvbnMuZW90Py1zOG9ycWwnKTtcblx0c3JjOnVybCgnLi4vZm9udHMvaWNvbnMuZW90PyNpZWZpeC1zOG9ycWwnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG5cdFx0dXJsKCcuLi9mb250cy9pY29ucy53b2ZmPy1zOG9ycWwnKSBmb3JtYXQoJ3dvZmYnKSxcblx0XHR1cmwoJy4uL2ZvbnRzL2ljb25zLnR0Zj8tczhvcnFsJykgZm9ybWF0KCd0cnVldHlwZScpLFxuXHRcdHVybCgnLi4vZm9udHMvaWNvbnMuc3ZnPy1zOG9ycWwjaWNvbnMnKSBmb3JtYXQoJ3N2ZycpO1xuXHRmb250LXdlaWdodDogbm9ybWFsO1xuXHRmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbltjbGFzc149XCJpY29uLVwiXTpiZWZvcmUsXG5bY2xhc3MqPVwiIGljb24tXCJdOmJlZm9yZSxcbi5pY29uIHtcblx0Zm9udC1mYW1pbHk6ICdJY29ucyc7XG5cdHNwZWFrOiBub25lO1xuXHRmb250LXN0eWxlOiBub3JtYWw7XG5cdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cdGZvbnQtdmFyaWFudDogbm9ybWFsO1xuXHR0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblx0bGluZS1oZWlnaHQ6IDE7XG5cblx0LyogQmV0dGVyIEZvbnQgUmVuZGVyaW5nID09PT09PT09PT09ICovXG5cdC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuXHQtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufVxuXG5cbi5pY29uLWdsYXNzOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwMDBcIjtcbn1cbi5pY29uLW11c2ljOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwMDFcIjtcbn1cbi5pY29uLXNlYXJjaDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMDAyXCI7XG59XG4uaWNvbi1lbnZlbG9wZS1vOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwMDNcIjtcbn1cbi5pY29uLWhlYXJ0OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwMDRcIjtcbn1cbi5pY29uLXN0YXI6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjAwNVwiO1xufVxuLmljb24tc3Rhci1vOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwMDZcIjtcbn1cbi5pY29uLXVzZXI6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjAwN1wiO1xufVxuLmljb24tZmlsbTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMDA4XCI7XG59XG4uaWNvbi10aC1sYXJnZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMDA5XCI7XG59XG4uaWNvbi10aDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMDBhXCI7XG59XG4uaWNvbi10aC1saXN0OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwMGJcIjtcbn1cbi5pY29uLWNoZWNrOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwMGNcIjtcbn1cbi5pY29uLWNsb3NlOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwMGRcIjtcbn1cbi5pY29uLXJlbW92ZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMDBkXCI7XG59XG4uaWNvbi10aW1lczpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMDBkXCI7XG59XG4uaWNvbi1zZWFyY2gtcGx1czpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMDBlXCI7XG59XG4uaWNvbi1zZWFyY2gtbWludXM6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjAxMFwiO1xufVxuLmljb24tcG93ZXItb2ZmOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwMTFcIjtcbn1cbi5pY29uLXNpZ25hbDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMDEyXCI7XG59XG4uaWNvbi1jb2c6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjAxM1wiO1xufVxuLmljb24tZ2VhcjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMDEzXCI7XG59XG4uaWNvbi10cmFzaC1vOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwMTRcIjtcbn1cbi5pY29uLWhvbWU6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjAxNVwiO1xufVxuLmljb24tZmlsZS1vOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwMTZcIjtcbn1cbi5pY29uLWNsb2NrLW86YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjAxN1wiO1xufVxuLmljb24tcm9hZDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMDE4XCI7XG59XG4uaWNvbi1kb3dubG9hZDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMDE5XCI7XG59XG4uaWNvbi1hcnJvdy1jaXJjbGUtby1kb3duOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwMWFcIjtcbn1cbi5pY29uLWFycm93LWNpcmNsZS1vLXVwOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwMWJcIjtcbn1cbi5pY29uLWluYm94OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwMWNcIjtcbn1cbi5pY29uLXBsYXktY2lyY2xlLW86YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjAxZFwiO1xufVxuLmljb24tcmVwZWF0OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwMWVcIjtcbn1cbi5pY29uLXJvdGF0ZS1yaWdodDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMDFlXCI7XG59XG4uaWNvbi1yZWZyZXNoOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwMjFcIjtcbn1cbi5pY29uLWxpc3QtYWx0OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwMjJcIjtcbn1cbi5pY29uLWxvY2s6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjAyM1wiO1xufVxuLmljb24tZmxhZzpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMDI0XCI7XG59XG4uaWNvbi1oZWFkcGhvbmVzOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwMjVcIjtcbn1cbi5pY29uLXZvbHVtZS1vZmY6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjAyNlwiO1xufVxuLmljb24tdm9sdW1lLWRvd246YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjAyN1wiO1xufVxuLmljb24tdm9sdW1lLXVwOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwMjhcIjtcbn1cbi5pY29uLXFyY29kZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMDI5XCI7XG59XG4uaWNvbi1iYXJjb2RlOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwMmFcIjtcbn1cbi5pY29uLXRhZzpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMDJiXCI7XG59XG4uaWNvbi10YWdzOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwMmNcIjtcbn1cbi5pY29uLWJvb2s6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjAyZFwiO1xufVxuLmljb24tYm9va21hcms6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjAyZVwiO1xufVxuLmljb24tcHJpbnQ6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjAyZlwiO1xufVxuLmljb24tY2FtZXJhOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwMzBcIjtcbn1cbi5pY29uLWZvbnQ6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjAzMVwiO1xufVxuLmljb24tYm9sZDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMDMyXCI7XG59XG4uaWNvbi1pdGFsaWM6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjAzM1wiO1xufVxuLmljb24tdGV4dC1oZWlnaHQ6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjAzNFwiO1xufVxuLmljb24tdGV4dC13aWR0aDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMDM1XCI7XG59XG4uaWNvbi1hbGlnbi1sZWZ0OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwMzZcIjtcbn1cbi5pY29uLWFsaWduLWNlbnRlcjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMDM3XCI7XG59XG4uaWNvbi1hbGlnbi1yaWdodDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMDM4XCI7XG59XG4uaWNvbi1hbGlnbi1qdXN0aWZ5OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwMzlcIjtcbn1cbi5pY29uLWxpc3Q6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjAzYVwiO1xufVxuLmljb24tZGVkZW50OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwM2JcIjtcbn1cbi5pY29uLW91dGRlbnQ6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjAzYlwiO1xufVxuLmljb24taW5kZW50OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwM2NcIjtcbn1cbi5pY29uLXZpZGVvLWNhbWVyYTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMDNkXCI7XG59XG4uaWNvbi1pbWFnZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMDNlXCI7XG59XG4uaWNvbi1waG90bzpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMDNlXCI7XG59XG4uaWNvbi1waWN0dXJlLW86YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjAzZVwiO1xufVxuLmljb24tcGVuY2lsOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwNDBcIjtcbn1cbi5pY29uLW1hcC1tYXJrZXI6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjA0MVwiO1xufVxuLmljb24tYWRqdXN0OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwNDJcIjtcbn1cbi5pY29uLXRpbnQ6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjA0M1wiO1xufVxuLmljb24tZWRpdDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMDQ0XCI7XG59XG4uaWNvbi1wZW5jaWwtc3F1YXJlLW86YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjA0NFwiO1xufVxuLmljb24tc2hhcmUtc3F1YXJlLW86YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjA0NVwiO1xufVxuLmljb24tY2hlY2stc3F1YXJlLW86YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjA0NlwiO1xufVxuLmljb24tYXJyb3dzOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwNDdcIjtcbn1cbi5pY29uLXN0ZXAtYmFja3dhcmQ6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjA0OFwiO1xufVxuLmljb24tZmFzdC1iYWNrd2FyZDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMDQ5XCI7XG59XG4uaWNvbi1iYWNrd2FyZDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMDRhXCI7XG59XG4uaWNvbi1wbGF5OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwNGJcIjtcbn1cbi5pY29uLXBhdXNlOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwNGNcIjtcbn1cbi5pY29uLXN0b3A6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjA0ZFwiO1xufVxuLmljb24tZm9yd2FyZDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMDRlXCI7XG59XG4uaWNvbi1mYXN0LWZvcndhcmQ6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjA1MFwiO1xufVxuLmljb24tc3RlcC1mb3J3YXJkOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwNTFcIjtcbn1cbi5pY29uLWVqZWN0OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwNTJcIjtcbn1cbi5pY29uLWNoZXZyb24tbGVmdDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMDUzXCI7XG59XG4uaWNvbi1jaGV2cm9uLXJpZ2h0OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwNTRcIjtcbn1cbi5pY29uLXBsdXMtY2lyY2xlOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwNTVcIjtcbn1cbi5pY29uLW1pbnVzLWNpcmNsZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMDU2XCI7XG59XG4uaWNvbi10aW1lcy1jaXJjbGU6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjA1N1wiO1xufVxuLmljb24tY2hlY2stY2lyY2xlOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwNThcIjtcbn1cbi5pY29uLXF1ZXN0aW9uLWNpcmNsZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMDU5XCI7XG59XG4uaWNvbi1pbmZvLWNpcmNsZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMDVhXCI7XG59XG4uaWNvbi1jcm9zc2hhaXJzOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwNWJcIjtcbn1cbi5pY29uLXRpbWVzLWNpcmNsZS1vOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwNWNcIjtcbn1cbi5pY29uLWNoZWNrLWNpcmNsZS1vOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwNWRcIjtcbn1cbi5pY29uLWJhbjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMDVlXCI7XG59XG4uaWNvbi1hcnJvdy1sZWZ0OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwNjBcIjtcbn1cbi5pY29uLWFycm93LXJpZ2h0OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwNjFcIjtcbn1cbi5pY29uLWFycm93LXVwOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwNjJcIjtcbn1cbi5pY29uLWFycm93LWRvd246YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjA2M1wiO1xufVxuLmljb24tbWFpbC1mb3J3YXJkOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwNjRcIjtcbn1cbi5pY29uLXNoYXJlOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwNjRcIjtcbn1cbi5pY29uLWV4cGFuZDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMDY1XCI7XG59XG4uaWNvbi1jb21wcmVzczpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMDY2XCI7XG59XG4uaWNvbi1wbHVzOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwNjdcIjtcbn1cbi5pY29uLW1pbnVzOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwNjhcIjtcbn1cbi5pY29uLWFzdGVyaXNrOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwNjlcIjtcbn1cbi5pY29uLWV4Y2xhbWF0aW9uLWNpcmNsZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMDZhXCI7XG59XG4uaWNvbi1naWZ0OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwNmJcIjtcbn1cbi5pY29uLWxlYWY6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjA2Y1wiO1xufVxuLmljb24tZmlyZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMDZkXCI7XG59XG4uaWNvbi1leWU6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjA2ZVwiO1xufVxuLmljb24tZXllLXNsYXNoOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwNzBcIjtcbn1cbi5pY29uLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwNzFcIjtcbn1cbi5pY29uLXdhcm5pbmc6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjA3MVwiO1xufVxuLmljb24tcGxhbmU6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjA3MlwiO1xufVxuLmljb24tY2FsZW5kYXI6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjA3M1wiO1xufVxuLmljb24tcmFuZG9tOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwNzRcIjtcbn1cbi5pY29uLWNvbW1lbnQ6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjA3NVwiO1xufVxuLmljb24tbWFnbmV0OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwNzZcIjtcbn1cbi5pY29uLWNoZXZyb24tdXA6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjA3N1wiO1xufVxuLmljb24tY2hldnJvbi1kb3duOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwNzhcIjtcbn1cbi5pY29uLXJldHdlZXQ6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjA3OVwiO1xufVxuLmljb24tc2hvcHBpbmctY2FydDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMDdhXCI7XG59XG4uaWNvbi1mb2xkZXI6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjA3YlwiO1xufVxuLmljb24tZm9sZGVyLW9wZW46YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjA3Y1wiO1xufVxuLmljb24tYXJyb3dzLXY6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjA3ZFwiO1xufVxuLmljb24tYXJyb3dzLWg6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjA3ZVwiO1xufVxuLmljb24tYmFyLWNoYXJ0OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwODBcIjtcbn1cbi5pY29uLWJhci1jaGFydC1vOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwODBcIjtcbn1cbi5pY29uLXR3aXR0ZXItc3F1YXJlOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwODFcIjtcbn1cbi5pY29uLWZhY2Vib29rLXNxdWFyZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMDgyXCI7XG59XG4uaWNvbi1jYW1lcmEtcmV0cm86YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjA4M1wiO1xufVxuLmljb24ta2V5OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwODRcIjtcbn1cbi5pY29uLWNvZ3M6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjA4NVwiO1xufVxuLmljb24tZ2VhcnM6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjA4NVwiO1xufVxuLmljb24tY29tbWVudHM6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjA4NlwiO1xufVxuLmljb24tdGh1bWJzLW8tdXA6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjA4N1wiO1xufVxuLmljb24tdGh1bWJzLW8tZG93bjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMDg4XCI7XG59XG4uaWNvbi1zdGFyLWhhbGY6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjA4OVwiO1xufVxuLmljb24taGVhcnQtbzpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMDhhXCI7XG59XG4uaWNvbi1zaWduLW91dDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMDhiXCI7XG59XG4uaWNvbi1saW5rZWRpbi1zcXVhcmU6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjA4Y1wiO1xufVxuLmljb24tdGh1bWItdGFjazpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMDhkXCI7XG59XG4uaWNvbi1leHRlcm5hbC1saW5rOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwOGVcIjtcbn1cbi5pY29uLXNpZ24taW46YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjA5MFwiO1xufVxuLmljb24tdHJvcGh5OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwOTFcIjtcbn1cbi5pY29uLWdpdGh1Yi1zcXVhcmU6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjA5MlwiO1xufVxuLmljb24tdXBsb2FkOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwOTNcIjtcbn1cbi5pY29uLWxlbW9uLW86YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjA5NFwiO1xufVxuLmljb24tcGhvbmU6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjA5NVwiO1xufVxuLmljb24tc3F1YXJlLW86YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjA5NlwiO1xufVxuLmljb24tYm9va21hcmstbzpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMDk3XCI7XG59XG4uaWNvbi1waG9uZS1zcXVhcmU6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjA5OFwiO1xufVxuLmljb24tdHdpdHRlcjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMDk5XCI7XG59XG4uaWNvbi1mYWNlYm9vazpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMDlhXCI7XG59XG4uaWNvbi1mYWNlYm9vay1mOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwOWFcIjtcbn1cbi5pY29uLWdpdGh1YjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMDliXCI7XG59XG4uaWNvbi11bmxvY2s6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjA5Y1wiO1xufVxuLmljb24tY3JlZGl0LWNhcmQ6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjA5ZFwiO1xufVxuLmljb24tZmVlZDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMDllXCI7XG59XG4uaWNvbi1yc3M6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjA5ZVwiO1xufVxuLmljb24taGRkLW86YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjBhMFwiO1xufVxuLmljb24tYnVsbGhvcm46YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjBhMVwiO1xufVxuLmljb24tYmVsbC1vOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwYTJcIjtcbn1cbi5pY29uLWNlcnRpZmljYXRlOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwYTNcIjtcbn1cbi5pY29uLWhhbmQtby1yaWdodDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMGE0XCI7XG59XG4uaWNvbi1oYW5kLW8tbGVmdDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMGE1XCI7XG59XG4uaWNvbi1oYW5kLW8tdXA6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjBhNlwiO1xufVxuLmljb24taGFuZC1vLWRvd246YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjBhN1wiO1xufVxuLmljb24tYXJyb3ctY2lyY2xlLWxlZnQ6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjBhOFwiO1xufVxuLmljb24tYXJyb3ctY2lyY2xlLXJpZ2h0OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwYTlcIjtcbn1cbi5pY29uLWFycm93LWNpcmNsZS11cDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMGFhXCI7XG59XG4uaWNvbi1hcnJvdy1jaXJjbGUtZG93bjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMGFiXCI7XG59XG4uaWNvbi1nbG9iZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMGFjXCI7XG59XG4uaWNvbi13cmVuY2g6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjBhZFwiO1xufVxuLmljb24tdGFza3M6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjBhZVwiO1xufVxuLmljb24tZmlsdGVyOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwYjBcIjtcbn1cbi5pY29uLWJyaWVmY2FzZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMGIxXCI7XG59XG4uaWNvbi1hcnJvd3MtYWx0OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwYjJcIjtcbn1cbi5pY29uLWdyb3VwOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwYzBcIjtcbn1cbi5pY29uLXVzZXJzOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwYzBcIjtcbn1cbi5pY29uLWNoYWluOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwYzFcIjtcbn1cbi5pY29uLWxpbms6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjBjMVwiO1xufVxuLmljb24tY2xvdWQ6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjBjMlwiO1xufVxuLmljb24tZmxhc2s6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjBjM1wiO1xufVxuLmljb24tY3V0OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwYzRcIjtcbn1cbi5pY29uLXNjaXNzb3JzOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwYzRcIjtcbn1cbi5pY29uLWNvcHk6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjBjNVwiO1xufVxuLmljb24tZmlsZXMtbzpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMGM1XCI7XG59XG4uaWNvbi1wYXBlcmNsaXA6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjBjNlwiO1xufVxuLmljb24tZmxvcHB5LW86YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjBjN1wiO1xufVxuLmljb24tc2F2ZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMGM3XCI7XG59XG4uaWNvbi1zcXVhcmU6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjBjOFwiO1xufVxuLmljb24tYmFyczpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMGM5XCI7XG59XG4uaWNvbi1uYXZpY29uOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwYzlcIjtcbn1cbi5pY29uLXJlb3JkZXI6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjBjOVwiO1xufVxuLmljb24tbGlzdC11bDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMGNhXCI7XG59XG4uaWNvbi1saXN0LW9sOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwY2JcIjtcbn1cbi5pY29uLXN0cmlrZXRocm91Z2g6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjBjY1wiO1xufVxuLmljb24tdW5kZXJsaW5lOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwY2RcIjtcbn1cbi5pY29uLXRhYmxlOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwY2VcIjtcbn1cbi5pY29uLW1hZ2ljOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwZDBcIjtcbn1cbi5pY29uLXRydWNrOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwZDFcIjtcbn1cbi5pY29uLXBpbnRlcmVzdDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMGQyXCI7XG59XG4uaWNvbi1waW50ZXJlc3Qtc3F1YXJlOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwZDNcIjtcbn1cbi5pY29uLWdvb2dsZS1wbHVzLXNxdWFyZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMGQ0XCI7XG59XG4uaWNvbi1nb29nbGUtcGx1czpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMGQ1XCI7XG59XG4uaWNvbi1tb25leTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMGQ2XCI7XG59XG4uaWNvbi1jYXJldC1kb3duOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwZDdcIjtcbn1cbi5pY29uLWNhcmV0LXVwOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwZDhcIjtcbn1cbi5pY29uLWNhcmV0LWxlZnQ6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjBkOVwiO1xufVxuLmljb24tY2FyZXQtcmlnaHQ6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjBkYVwiO1xufVxuLmljb24tY29sdW1uczpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMGRiXCI7XG59XG4uaWNvbi1zb3J0OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwZGNcIjtcbn1cbi5pY29uLXVuc29ydGVkOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwZGNcIjtcbn1cbi5pY29uLXNvcnQtZGVzYzpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMGRkXCI7XG59XG4uaWNvbi1zb3J0LWRvd246YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjBkZFwiO1xufVxuLmljb24tc29ydC1hc2M6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjBkZVwiO1xufVxuLmljb24tc29ydC11cDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMGRlXCI7XG59XG4uaWNvbi1lbnZlbG9wZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMGUwXCI7XG59XG4uaWNvbi1saW5rZWRpbjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMGUxXCI7XG59XG4uaWNvbi1yb3RhdGUtbGVmdDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMGUyXCI7XG59XG4uaWNvbi11bmRvOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwZTJcIjtcbn1cbi5pY29uLWdhdmVsOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwZTNcIjtcbn1cbi5pY29uLWxlZ2FsOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwZTNcIjtcbn1cbi5pY29uLWRhc2hib2FyZDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMGU0XCI7XG59XG4uaWNvbi10YWNob21ldGVyOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwZTRcIjtcbn1cbi5pY29uLWNvbW1lbnQtbzpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMGU1XCI7XG59XG4uaWNvbi1jb21tZW50cy1vOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwZTZcIjtcbn1cbi5pY29uLWJvbHQ6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjBlN1wiO1xufVxuLmljb24tZmxhc2g6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjBlN1wiO1xufVxuLmljb24tc2l0ZW1hcDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMGU4XCI7XG59XG4uaWNvbi11bWJyZWxsYTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMGU5XCI7XG59XG4uaWNvbi1jbGlwYm9hcmQ6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjBlYVwiO1xufVxuLmljb24tcGFzdGU6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjBlYVwiO1xufVxuLmljb24tbGlnaHRidWxiLW86YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjBlYlwiO1xufVxuLmljb24tZXhjaGFuZ2U6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjBlY1wiO1xufVxuLmljb24tY2xvdWQtZG93bmxvYWQ6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjBlZFwiO1xufVxuLmljb24tY2xvdWQtdXBsb2FkOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwZWVcIjtcbn1cbi5pY29uLXVzZXItbWQ6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjBmMFwiO1xufVxuLmljb24tc3RldGhvc2NvcGU6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjBmMVwiO1xufVxuLmljb24tc3VpdGNhc2U6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjBmMlwiO1xufVxuLmljb24tYmVsbDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMGYzXCI7XG59XG4uaWNvbi1jb2ZmZWU6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjBmNFwiO1xufVxuLmljb24tY3V0bGVyeTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMGY1XCI7XG59XG4uaWNvbi1maWxlLXRleHQtbzpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMGY2XCI7XG59XG4uaWNvbi1idWlsZGluZy1vOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwZjdcIjtcbn1cbi5pY29uLWhvc3BpdGFsLW86YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjBmOFwiO1xufVxuLmljb24tYW1idWxhbmNlOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwZjlcIjtcbn1cbi5pY29uLW1lZGtpdDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMGZhXCI7XG59XG4uaWNvbi1maWdodGVyLWpldDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMGZiXCI7XG59XG4uaWNvbi1iZWVyOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwZmNcIjtcbn1cbi5pY29uLWgtc3F1YXJlOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwZmRcIjtcbn1cbi5pY29uLXBsdXMtc3F1YXJlOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwZmVcIjtcbn1cbi5pY29uLWFuZ2xlLWRvdWJsZS1sZWZ0OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxMDBcIjtcbn1cbi5pY29uLWFuZ2xlLWRvdWJsZS1yaWdodDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMTAxXCI7XG59XG4uaWNvbi1hbmdsZS1kb3VibGUtdXA6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjEwMlwiO1xufVxuLmljb24tYW5nbGUtZG91YmxlLWRvd246YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjEwM1wiO1xufVxuLmljb24tYW5nbGUtbGVmdDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMTA0XCI7XG59XG4uaWNvbi1hbmdsZS1yaWdodDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMTA1XCI7XG59XG4uaWNvbi1hbmdsZS11cDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMTA2XCI7XG59XG4uaWNvbi1hbmdsZS1kb3duOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxMDdcIjtcbn1cbi5pY29uLWRlc2t0b3A6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjEwOFwiO1xufVxuLmljb24tbGFwdG9wOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxMDlcIjtcbn1cbi5pY29uLXRhYmxldDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMTBhXCI7XG59XG4uaWNvbi1tb2JpbGU6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjEwYlwiO1xufVxuLmljb24tbW9iaWxlLXBob25lOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxMGJcIjtcbn1cbi5pY29uLWNpcmNsZS1vOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxMGNcIjtcbn1cbi5pY29uLXF1b3RlLWxlZnQ6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjEwZFwiO1xufVxuLmljb24tcXVvdGUtcmlnaHQ6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjEwZVwiO1xufVxuLmljb24tc3Bpbm5lcjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMTEwXCI7XG59XG4uaWNvbi1jaXJjbGU6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjExMVwiO1xufVxuLmljb24tbWFpbC1yZXBseTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMTEyXCI7XG59XG4uaWNvbi1yZXBseTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMTEyXCI7XG59XG4uaWNvbi1naXRodWItYWx0OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxMTNcIjtcbn1cbi5pY29uLWZvbGRlci1vOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxMTRcIjtcbn1cbi5pY29uLWZvbGRlci1vcGVuLW86YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjExNVwiO1xufVxuLmljb24tc21pbGUtbzpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMTE4XCI7XG59XG4uaWNvbi1mcm93bi1vOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxMTlcIjtcbn1cbi5pY29uLW1laC1vOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxMWFcIjtcbn1cbi5pY29uLWdhbWVwYWQ6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjExYlwiO1xufVxuLmljb24ta2V5Ym9hcmQtbzpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMTFjXCI7XG59XG4uaWNvbi1mbGFnLW86YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjExZFwiO1xufVxuLmljb24tZmxhZy1jaGVja2VyZWQ6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjExZVwiO1xufVxuLmljb24tdGVybWluYWw6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjEyMFwiO1xufVxuLmljb24tY29kZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMTIxXCI7XG59XG4uaWNvbi1tYWlsLXJlcGx5LWFsbDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMTIyXCI7XG59XG4uaWNvbi1yZXBseS1hbGw6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjEyMlwiO1xufVxuLmljb24tc3Rhci1oYWxmLWVtcHR5OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxMjNcIjtcbn1cbi5pY29uLXN0YXItaGFsZi1mdWxsOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxMjNcIjtcbn1cbi5pY29uLXN0YXItaGFsZi1vOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxMjNcIjtcbn1cbi5pY29uLWxvY2F0aW9uLWFycm93OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxMjRcIjtcbn1cbi5pY29uLWNyb3A6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjEyNVwiO1xufVxuLmljb24tY29kZS1mb3JrOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxMjZcIjtcbn1cbi5pY29uLWNoYWluLWJyb2tlbjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMTI3XCI7XG59XG4uaWNvbi11bmxpbms6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjEyN1wiO1xufVxuLmljb24tcXVlc3Rpb246YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjEyOFwiO1xufVxuLmljb24taW5mbzpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMTI5XCI7XG59XG4uaWNvbi1leGNsYW1hdGlvbjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMTJhXCI7XG59XG4uaWNvbi1zdXBlcnNjcmlwdDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMTJiXCI7XG59XG4uaWNvbi1zdWJzY3JpcHQ6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjEyY1wiO1xufVxuLmljb24tZXJhc2VyOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxMmRcIjtcbn1cbi5pY29uLXB1enpsZS1waWVjZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMTJlXCI7XG59XG4uaWNvbi1taWNyb3Bob25lOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxMzBcIjtcbn1cbi5pY29uLW1pY3JvcGhvbmUtc2xhc2g6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjEzMVwiO1xufVxuLmljb24tc2hpZWxkOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxMzJcIjtcbn1cbi5pY29uLWNhbGVuZGFyLW86YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjEzM1wiO1xufVxuLmljb24tZmlyZS1leHRpbmd1aXNoZXI6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjEzNFwiO1xufVxuLmljb24tcm9ja2V0OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxMzVcIjtcbn1cbi5pY29uLW1heGNkbjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMTM2XCI7XG59XG4uaWNvbi1jaGV2cm9uLWNpcmNsZS1sZWZ0OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxMzdcIjtcbn1cbi5pY29uLWNoZXZyb24tY2lyY2xlLXJpZ2h0OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxMzhcIjtcbn1cbi5pY29uLWNoZXZyb24tY2lyY2xlLXVwOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxMzlcIjtcbn1cbi5pY29uLWNoZXZyb24tY2lyY2xlLWRvd246YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjEzYVwiO1xufVxuLmljb24taHRtbDU6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjEzYlwiO1xufVxuLmljb24tY3NzMzpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMTNjXCI7XG59XG4uaWNvbi1hbmNob3I6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjEzZFwiO1xufVxuLmljb24tdW5sb2NrLWFsdDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMTNlXCI7XG59XG4uaWNvbi1idWxsc2V5ZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMTQwXCI7XG59XG4uaWNvbi1lbGxpcHNpcy1oOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxNDFcIjtcbn1cbi5pY29uLWVsbGlwc2lzLXY6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjE0MlwiO1xufVxuLmljb24tcnNzLXNxdWFyZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMTQzXCI7XG59XG4uaWNvbi1wbGF5LWNpcmNsZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMTQ0XCI7XG59XG4uaWNvbi10aWNrZXQ6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjE0NVwiO1xufVxuLmljb24tbWludXMtc3F1YXJlOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxNDZcIjtcbn1cbi5pY29uLW1pbnVzLXNxdWFyZS1vOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxNDdcIjtcbn1cbi5pY29uLWxldmVsLXVwOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxNDhcIjtcbn1cbi5pY29uLWxldmVsLWRvd246YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjE0OVwiO1xufVxuLmljb24tY2hlY2stc3F1YXJlOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxNGFcIjtcbn1cbi5pY29uLXBlbmNpbC1zcXVhcmU6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjE0YlwiO1xufVxuLmljb24tZXh0ZXJuYWwtbGluay1zcXVhcmU6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjE0Y1wiO1xufVxuLmljb24tc2hhcmUtc3F1YXJlOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxNGRcIjtcbn1cbi5pY29uLWNvbXBhc3M6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjE0ZVwiO1xufVxuLmljb24tY2FyZXQtc3F1YXJlLW8tZG93bjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMTUwXCI7XG59XG4uaWNvbi10b2dnbGUtZG93bjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMTUwXCI7XG59XG4uaWNvbi1jYXJldC1zcXVhcmUtby11cDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMTUxXCI7XG59XG4uaWNvbi10b2dnbGUtdXA6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjE1MVwiO1xufVxuLmljb24tY2FyZXQtc3F1YXJlLW8tcmlnaHQ6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjE1MlwiO1xufVxuLmljb24tdG9nZ2xlLXJpZ2h0OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxNTJcIjtcbn1cbi5pY29uLWV1cjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMTUzXCI7XG59XG4uaWNvbi1ldXJvOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxNTNcIjtcbn1cbi5pY29uLWdicDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMTU0XCI7XG59XG4uaWNvbi1kb2xsYXI6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjE1NVwiO1xufVxuLmljb24tdXNkOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxNTVcIjtcbn1cbi5pY29uLWlucjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMTU2XCI7XG59XG4uaWNvbi1ydXBlZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMTU2XCI7XG59XG4uaWNvbi1jbnk6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjE1N1wiO1xufVxuLmljb24tanB5OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxNTdcIjtcbn1cbi5pY29uLXJtYjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMTU3XCI7XG59XG4uaWNvbi15ZW46YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjE1N1wiO1xufVxuLmljb24tcm91YmxlOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxNThcIjtcbn1cbi5pY29uLXJ1YjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMTU4XCI7XG59XG4uaWNvbi1ydWJsZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMTU4XCI7XG59XG4uaWNvbi1rcnc6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjE1OVwiO1xufVxuLmljb24td29uOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxNTlcIjtcbn1cbi5pY29uLWJpdGNvaW46YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjE1YVwiO1xufVxuLmljb24tYnRjOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxNWFcIjtcbn1cbi5pY29uLWZpbGU6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjE1YlwiO1xufVxuLmljb24tZmlsZS10ZXh0OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxNWNcIjtcbn1cbi5pY29uLXNvcnQtYWxwaGEtYXNjOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxNWRcIjtcbn1cbi5pY29uLXNvcnQtYWxwaGEtZGVzYzpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMTVlXCI7XG59XG4uaWNvbi1zb3J0LWFtb3VudC1hc2M6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjE2MFwiO1xufVxuLmljb24tc29ydC1hbW91bnQtZGVzYzpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMTYxXCI7XG59XG4uaWNvbi1zb3J0LW51bWVyaWMtYXNjOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxNjJcIjtcbn1cbi5pY29uLXNvcnQtbnVtZXJpYy1kZXNjOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxNjNcIjtcbn1cbi5pY29uLXRodW1icy11cDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMTY0XCI7XG59XG4uaWNvbi10aHVtYnMtZG93bjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMTY1XCI7XG59XG4uaWNvbi15b3V0dWJlLXNxdWFyZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMTY2XCI7XG59XG4uaWNvbi15b3V0dWJlOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxNjdcIjtcbn1cbi5pY29uLXhpbmc6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjE2OFwiO1xufVxuLmljb24teGluZy1zcXVhcmU6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjE2OVwiO1xufVxuLmljb24teW91dHViZS1wbGF5OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxNmFcIjtcbn1cbi5pY29uLWRyb3Bib3g6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjE2YlwiO1xufVxuLmljb24tc3RhY2stb3ZlcmZsb3c6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjE2Y1wiO1xufVxuLmljb24taW5zdGFncmFtOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxNmRcIjtcbn1cbi5pY29uLWZsaWNrcjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMTZlXCI7XG59XG4uaWNvbi1hZG46YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjE3MFwiO1xufVxuLmljb24tYml0YnVja2V0OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxNzFcIjtcbn1cbi5pY29uLWJpdGJ1Y2tldC1zcXVhcmU6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjE3MlwiO1xufVxuLmljb24tdHVtYmxyOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxNzNcIjtcbn1cbi5pY29uLXR1bWJsci1zcXVhcmU6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjE3NFwiO1xufVxuLmljb24tbG9uZy1hcnJvdy1kb3duOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxNzVcIjtcbn1cbi5pY29uLWxvbmctYXJyb3ctdXA6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjE3NlwiO1xufVxuLmljb24tbG9uZy1hcnJvdy1sZWZ0OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxNzdcIjtcbn1cbi5pY29uLWxvbmctYXJyb3ctcmlnaHQ6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjE3OFwiO1xufVxuLmljb24tYXBwbGU6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjE3OVwiO1xufVxuLmljb24td2luZG93czpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMTdhXCI7XG59XG4uaWNvbi1hbmRyb2lkOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxN2JcIjtcbn1cbi5pY29uLWxpbnV4OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxN2NcIjtcbn1cbi5pY29uLWRyaWJiYmxlOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxN2RcIjtcbn1cbi5pY29uLXNreXBlOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxN2VcIjtcbn1cbi5pY29uLWZvdXJzcXVhcmU6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjE4MFwiO1xufVxuLmljb24tdHJlbGxvOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxODFcIjtcbn1cbi5pY29uLWZlbWFsZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMTgyXCI7XG59XG4uaWNvbi1tYWxlOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxODNcIjtcbn1cbi5pY29uLWdpdHRpcDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMTg0XCI7XG59XG4uaWNvbi1ncmF0aXBheTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMTg0XCI7XG59XG4uaWNvbi1zdW4tbzpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMTg1XCI7XG59XG4uaWNvbi1tb29uLW86YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjE4NlwiO1xufVxuLmljb24tYXJjaGl2ZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMTg3XCI7XG59XG4uaWNvbi1idWc6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjE4OFwiO1xufVxuLmljb24tdms6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjE4OVwiO1xufVxuLmljb24td2VpYm86YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjE4YVwiO1xufVxuLmljb24tcmVucmVuOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxOGJcIjtcbn1cbi5pY29uLXBhZ2VsaW5lczpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMThjXCI7XG59XG4uaWNvbi1zdGFjay1leGNoYW5nZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMThkXCI7XG59XG4uaWNvbi1hcnJvdy1jaXJjbGUtby1yaWdodDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMThlXCI7XG59XG4uaWNvbi1hcnJvdy1jaXJjbGUtby1sZWZ0OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxOTBcIjtcbn1cbi5pY29uLWNhcmV0LXNxdWFyZS1vLWxlZnQ6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjE5MVwiO1xufVxuLmljb24tdG9nZ2xlLWxlZnQ6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjE5MVwiO1xufVxuLmljb24tZG90LWNpcmNsZS1vOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxOTJcIjtcbn1cbi5pY29uLXdoZWVsY2hhaXI6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjE5M1wiO1xufVxuLmljb24tdmltZW8tc3F1YXJlOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxOTRcIjtcbn1cbi5pY29uLXRyeTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMTk1XCI7XG59XG4uaWNvbi10dXJraXNoLWxpcmE6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjE5NVwiO1xufVxuLmljb24tcGx1cy1zcXVhcmUtbzpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMTk2XCI7XG59XG4uaWNvbi1zcGFjZS1zaHV0dGxlOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxOTdcIjtcbn1cbi5pY29uLXNsYWNrOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxOThcIjtcbn1cbi5pY29uLWVudmVsb3BlLXNxdWFyZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMTk5XCI7XG59XG4uaWNvbi13b3JkcHJlc3M6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjE5YVwiO1xufVxuLmljb24tb3BlbmlkOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxOWJcIjtcbn1cbi5pY29uLWJhbms6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjE5Y1wiO1xufVxuLmljb24taW5zdGl0dXRpb246YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjE5Y1wiO1xufVxuLmljb24tdW5pdmVyc2l0eTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMTljXCI7XG59XG4uaWNvbi1ncmFkdWF0aW9uLWNhcDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMTlkXCI7XG59XG4uaWNvbi1tb3J0YXItYm9hcmQ6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjE5ZFwiO1xufVxuLmljb24teWFob286YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjE5ZVwiO1xufVxuLmljb24tZ29vZ2xlOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxYTBcIjtcbn1cbi5pY29uLXJlZGRpdDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMWExXCI7XG59XG4uaWNvbi1yZWRkaXQtc3F1YXJlOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxYTJcIjtcbn1cbi5pY29uLXN0dW1ibGV1cG9uLWNpcmNsZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMWEzXCI7XG59XG4uaWNvbi1zdHVtYmxldXBvbjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMWE0XCI7XG59XG4uaWNvbi1kZWxpY2lvdXM6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjFhNVwiO1xufVxuLmljb24tZGlnZzpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMWE2XCI7XG59XG4uaWNvbi1waWVkLXBpcGVyOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxYTdcIjtcbn1cbi5pY29uLXBpZWQtcGlwZXItYWx0OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxYThcIjtcbn1cbi5pY29uLWRydXBhbDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMWE5XCI7XG59XG4uaWNvbi1qb29tbGE6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjFhYVwiO1xufVxuLmljb24tbGFuZ3VhZ2U6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjFhYlwiO1xufVxuLmljb24tZmF4OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxYWNcIjtcbn1cbi5pY29uLWJ1aWxkaW5nOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxYWRcIjtcbn1cbi5pY29uLWNoaWxkOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxYWVcIjtcbn1cbi5pY29uLXBhdzpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMWIwXCI7XG59XG4uaWNvbi1zcG9vbjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMWIxXCI7XG59XG4uaWNvbi1jdWJlOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxYjJcIjtcbn1cbi5pY29uLWN1YmVzOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxYjNcIjtcbn1cbi5pY29uLWJlaGFuY2U6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjFiNFwiO1xufVxuLmljb24tYmVoYW5jZS1zcXVhcmU6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjFiNVwiO1xufVxuLmljb24tc3RlYW06YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjFiNlwiO1xufVxuLmljb24tc3RlYW0tc3F1YXJlOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxYjdcIjtcbn1cbi5pY29uLXJlY3ljbGU6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjFiOFwiO1xufVxuLmljb24tYXV0b21vYmlsZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMWI5XCI7XG59XG4uaWNvbi1jYXI6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjFiOVwiO1xufVxuLmljb24tY2FiOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxYmFcIjtcbn1cbi5pY29uLXRheGk6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjFiYVwiO1xufVxuLmljb24tdHJlZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMWJiXCI7XG59XG4uaWNvbi1zcG90aWZ5OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxYmNcIjtcbn1cbi5pY29uLWRldmlhbnRhcnQ6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjFiZFwiO1xufVxuLmljb24tc291bmRjbG91ZDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMWJlXCI7XG59XG4uaWNvbi1kYXRhYmFzZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMWMwXCI7XG59XG4uaWNvbi1maWxlLXBkZi1vOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxYzFcIjtcbn1cbi5pY29uLWZpbGUtd29yZC1vOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxYzJcIjtcbn1cbi5pY29uLWZpbGUtZXhjZWwtbzpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMWMzXCI7XG59XG4uaWNvbi1maWxlLXBvd2VycG9pbnQtbzpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMWM0XCI7XG59XG4uaWNvbi1maWxlLWltYWdlLW86YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjFjNVwiO1xufVxuLmljb24tZmlsZS1waG90by1vOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxYzVcIjtcbn1cbi5pY29uLWZpbGUtcGljdHVyZS1vOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxYzVcIjtcbn1cbi5pY29uLWZpbGUtYXJjaGl2ZS1vOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxYzZcIjtcbn1cbi5pY29uLWZpbGUtemlwLW86YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjFjNlwiO1xufVxuLmljb24tZmlsZS1hdWRpby1vOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxYzdcIjtcbn1cbi5pY29uLWZpbGUtc291bmQtbzpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMWM3XCI7XG59XG4uaWNvbi1maWxlLW1vdmllLW86YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjFjOFwiO1xufVxuLmljb24tZmlsZS12aWRlby1vOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxYzhcIjtcbn1cbi5pY29uLWZpbGUtY29kZS1vOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxYzlcIjtcbn1cbi5pY29uLXZpbmU6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjFjYVwiO1xufVxuLmljb24tY29kZXBlbjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMWNiXCI7XG59XG4uaWNvbi1qc2ZpZGRsZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMWNjXCI7XG59XG4uaWNvbi1saWZlLWJvdXk6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjFjZFwiO1xufVxuLmljb24tbGlmZS1idW95OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxY2RcIjtcbn1cbi5pY29uLWxpZmUtcmluZzpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMWNkXCI7XG59XG4uaWNvbi1saWZlLXNhdmVyOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxY2RcIjtcbn1cbi5pY29uLXN1cHBvcnQ6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjFjZFwiO1xufVxuLmljb24tY2lyY2xlLW8tbm90Y2g6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjFjZVwiO1xufVxuLmljb24tcmE6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjFkMFwiO1xufVxuLmljb24tcmViZWw6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjFkMFwiO1xufVxuLmljb24tZW1waXJlOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxZDFcIjtcbn1cbi5pY29uLWdlOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxZDFcIjtcbn1cbi5pY29uLWdpdC1zcXVhcmU6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjFkMlwiO1xufVxuLmljb24tZ2l0OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxZDNcIjtcbn1cbi5pY29uLWhhY2tlci1uZXdzOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxZDRcIjtcbn1cbi5pY29uLXktY29tYmluYXRvci1zcXVhcmU6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjFkNFwiO1xufVxuLmljb24teWMtc3F1YXJlOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxZDRcIjtcbn1cbi5pY29uLXRlbmNlbnQtd2VpYm86YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjFkNVwiO1xufVxuLmljb24tcXE6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjFkNlwiO1xufVxuLmljb24td2VjaGF0OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxZDdcIjtcbn1cbi5pY29uLXdlaXhpbjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMWQ3XCI7XG59XG4uaWNvbi1wYXBlci1wbGFuZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMWQ4XCI7XG59XG4uaWNvbi1zZW5kOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxZDhcIjtcbn1cbi5pY29uLXBhcGVyLXBsYW5lLW86YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjFkOVwiO1xufVxuLmljb24tc2VuZC1vOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxZDlcIjtcbn1cbi5pY29uLWhpc3Rvcnk6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjFkYVwiO1xufVxuLmljb24tY2lyY2xlLXRoaW46YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjFkYlwiO1xufVxuLmljb24taGVhZGVyOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxZGNcIjtcbn1cbi5pY29uLXBhcmFncmFwaDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMWRkXCI7XG59XG4uaWNvbi1zbGlkZXJzOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxZGVcIjtcbn1cbi5pY29uLXNoYXJlLWFsdDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMWUwXCI7XG59XG4uaWNvbi1zaGFyZS1hbHQtc3F1YXJlOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxZTFcIjtcbn1cbi5pY29uLWJvbWI6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjFlMlwiO1xufVxuLmljb24tZnV0Ym9sLW86YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjFlM1wiO1xufVxuLmljb24tc29jY2VyLWJhbGwtbzpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMWUzXCI7XG59XG4uaWNvbi10dHk6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjFlNFwiO1xufVxuLmljb24tYmlub2N1bGFyczpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMWU1XCI7XG59XG4uaWNvbi1wbHVnOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxZTZcIjtcbn1cbi5pY29uLXNsaWRlc2hhcmU6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjFlN1wiO1xufVxuLmljb24tdHdpdGNoOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxZThcIjtcbn1cbi5pY29uLXllbHA6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjFlOVwiO1xufVxuLmljb24tbmV3c3BhcGVyLW86YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjFlYVwiO1xufVxuLmljb24td2lmaTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMWViXCI7XG59XG4uaWNvbi1jYWxjdWxhdG9yOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxZWNcIjtcbn1cbi5pY29uLXBheXBhbDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMWVkXCI7XG59XG4uaWNvbi1nb29nbGUtd2FsbGV0OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxZWVcIjtcbn1cbi5pY29uLWNjLXZpc2E6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjFmMFwiO1xufVxuLmljb24tY2MtbWFzdGVyY2FyZDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMWYxXCI7XG59XG4uaWNvbi1jYy1kaXNjb3ZlcjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMWYyXCI7XG59XG4uaWNvbi1jYy1hbWV4OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxZjNcIjtcbn1cbi5pY29uLWNjLXBheXBhbDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMWY0XCI7XG59XG4uaWNvbi1jYy1zdHJpcGU6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjFmNVwiO1xufVxuLmljb24tYmVsbC1zbGFzaDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMWY2XCI7XG59XG4uaWNvbi1iZWxsLXNsYXNoLW86YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjFmN1wiO1xufVxuLmljb24tdHJhc2g6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjFmOFwiO1xufVxuLmljb24tY29weXJpZ2h0OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxZjlcIjtcbn1cbi5pY29uLWF0OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxZmFcIjtcbn1cbi5pY29uLWV5ZWRyb3BwZXI6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjFmYlwiO1xufVxuLmljb24tcGFpbnQtYnJ1c2g6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjFmY1wiO1xufVxuLmljb24tYmlydGhkYXktY2FrZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMWZkXCI7XG59XG4uaWNvbi1hcmVhLWNoYXJ0OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxZmVcIjtcbn1cbi5pY29uLXBpZS1jaGFydDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMjAwXCI7XG59XG4uaWNvbi1saW5lLWNoYXJ0OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYyMDFcIjtcbn1cbi5pY29uLWxhc3RmbTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMjAyXCI7XG59XG4uaWNvbi1sYXN0Zm0tc3F1YXJlOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYyMDNcIjtcbn1cbi5pY29uLXRvZ2dsZS1vZmY6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjIwNFwiO1xufVxuLmljb24tdG9nZ2xlLW9uOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYyMDVcIjtcbn1cbi5pY29uLWJpY3ljbGU6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjIwNlwiO1xufVxuLmljb24tYnVzOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYyMDdcIjtcbn1cbi5pY29uLWlveGhvc3Q6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjIwOFwiO1xufVxuLmljb24tYW5nZWxsaXN0OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYyMDlcIjtcbn1cbi5pY29uLWNjOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYyMGFcIjtcbn1cbi5pY29uLWlsczpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMjBiXCI7XG59XG4uaWNvbi1zaGVrZWw6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjIwYlwiO1xufVxuLmljb24tc2hlcWVsOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYyMGJcIjtcbn1cbi5pY29uLW1lYW5wYXRoOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYyMGNcIjtcbn1cbi5pY29uLWJ1eXNlbGxhZHM6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjIwZFwiO1xufVxuLmljb24tY29ubmVjdGRldmVsb3A6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjIwZVwiO1xufVxuLmljb24tZGFzaGN1YmU6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjIxMFwiO1xufVxuLmljb24tZm9ydW1iZWU6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjIxMVwiO1xufVxuLmljb24tbGVhbnB1YjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMjEyXCI7XG59XG4uaWNvbi1zZWxsc3k6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjIxM1wiO1xufVxuLmljb24tc2hpcnRzaW5idWxrOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYyMTRcIjtcbn1cbi5pY29uLXNpbXBseWJ1aWx0OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYyMTVcIjtcbn1cbi5pY29uLXNreWF0bGFzOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYyMTZcIjtcbn1cbi5pY29uLWNhcnQtcGx1czpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMjE3XCI7XG59XG4uaWNvbi1jYXJ0LWFycm93LWRvd246YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjIxOFwiO1xufVxuLmljb24tZGlhbW9uZDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMjE5XCI7XG59XG4uaWNvbi1zaGlwOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYyMWFcIjtcbn1cbi5pY29uLXVzZXItc2VjcmV0OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYyMWJcIjtcbn1cbi5pY29uLW1vdG9yY3ljbGU6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjIxY1wiO1xufVxuLmljb24tc3RyZWV0LXZpZXc6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjIxZFwiO1xufVxuLmljb24taGVhcnRiZWF0OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYyMWVcIjtcbn1cbi5pY29uLXZlbnVzOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYyMjFcIjtcbn1cbi5pY29uLW1hcnM6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjIyMlwiO1xufVxuLmljb24tbWVyY3VyeTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMjIzXCI7XG59XG4uaWNvbi1pbnRlcnNleDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMjI0XCI7XG59XG4uaWNvbi10cmFuc2dlbmRlcjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMjI0XCI7XG59XG4uaWNvbi10cmFuc2dlbmRlci1hbHQ6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjIyNVwiO1xufVxuLmljb24tdmVudXMtZG91YmxlOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYyMjZcIjtcbn1cbi5pY29uLW1hcnMtZG91YmxlOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYyMjdcIjtcbn1cbi5pY29uLXZlbnVzLW1hcnM6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjIyOFwiO1xufVxuLmljb24tbWFycy1zdHJva2U6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjIyOVwiO1xufVxuLmljb24tbWFycy1zdHJva2UtdjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMjJhXCI7XG59XG4uaWNvbi1tYXJzLXN0cm9rZS1oOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYyMmJcIjtcbn1cbi5pY29uLW5ldXRlcjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMjJjXCI7XG59XG4uaWNvbi1nZW5kZXJsZXNzOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYyMmRcIjtcbn1cbi5pY29uLWZhY2Vib29rLW9mZmljaWFsOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYyMzBcIjtcbn1cbi5pY29uLXBpbnRlcmVzdC1wOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYyMzFcIjtcbn1cbi5pY29uLXdoYXRzYXBwOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYyMzJcIjtcbn1cbi5pY29uLXNlcnZlcjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMjMzXCI7XG59XG4uaWNvbi11c2VyLXBsdXM6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjIzNFwiO1xufVxuLmljb24tdXNlci10aW1lczpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMjM1XCI7XG59XG4uaWNvbi1iZWQ6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjIzNlwiO1xufVxuLmljb24taG90ZWw6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjIzNlwiO1xufVxuLmljb24tdmlhY29pbjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMjM3XCI7XG59XG4uaWNvbi10cmFpbjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMjM4XCI7XG59XG4uaWNvbi1zdWJ3YXk6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjIzOVwiO1xufVxuLmljb24tbWVkaXVtOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYyM2FcIjtcbn1cbi5pY29uLXktY29tYmluYXRvcjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMjNiXCI7XG59XG4uaWNvbi15YzpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMjNiXCI7XG59XG4uaWNvbi1vcHRpbi1tb25zdGVyOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYyM2NcIjtcbn1cbi5pY29uLW9wZW5jYXJ0OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYyM2RcIjtcbn1cbi5pY29uLWV4cGVkaXRlZHNzbDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMjNlXCI7XG59XG4uaWNvbi1iYXR0ZXJ5LTQ6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjI0MFwiO1xufVxuLmljb24tYmF0dGVyeS1mdWxsOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYyNDBcIjtcbn1cbi5pY29uLWJhdHRlcnktMzpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMjQxXCI7XG59XG4uaWNvbi1iYXR0ZXJ5LXRocmVlLXF1YXJ0ZXJzOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYyNDFcIjtcbn1cbi5pY29uLWJhdHRlcnktMjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMjQyXCI7XG59XG4uaWNvbi1iYXR0ZXJ5LWhhbGY6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjI0MlwiO1xufVxuLmljb24tYmF0dGVyeS0xOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYyNDNcIjtcbn1cbi5pY29uLWJhdHRlcnktcXVhcnRlcjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMjQzXCI7XG59XG4uaWNvbi1iYXR0ZXJ5LTA6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjI0NFwiO1xufVxuLmljb24tYmF0dGVyeS1lbXB0eTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMjQ0XCI7XG59XG4uaWNvbi1tb3VzZS1wb2ludGVyOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYyNDVcIjtcbn1cbi5pY29uLWktY3Vyc29yOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYyNDZcIjtcbn1cbi5pY29uLW9iamVjdC1ncm91cDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMjQ3XCI7XG59XG4uaWNvbi1vYmplY3QtdW5ncm91cDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMjQ4XCI7XG59XG4uaWNvbi1zdGlja3ktbm90ZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMjQ5XCI7XG59XG4uaWNvbi1zdGlja3ktbm90ZS1vOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYyNGFcIjtcbn1cbi5pY29uLWNjLWpjYjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMjRiXCI7XG59XG4uaWNvbi1jYy1kaW5lcnMtY2x1YjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMjRjXCI7XG59XG4uaWNvbi1jbG9uZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMjRkXCI7XG59XG4uaWNvbi1iYWxhbmNlLXNjYWxlOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYyNGVcIjtcbn1cbi5pY29uLWhvdXJnbGFzcy1vOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYyNTBcIjtcbn1cbi5pY29uLWhvdXJnbGFzcy0xOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYyNTFcIjtcbn1cbi5pY29uLWhvdXJnbGFzcy1zdGFydDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMjUxXCI7XG59XG4uaWNvbi1ob3VyZ2xhc3MtMjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMjUyXCI7XG59XG4uaWNvbi1ob3VyZ2xhc3MtaGFsZjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMjUyXCI7XG59XG4uaWNvbi1ob3VyZ2xhc3MtMzpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMjUzXCI7XG59XG4uaWNvbi1ob3VyZ2xhc3MtZW5kOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYyNTNcIjtcbn1cbi5pY29uLWhvdXJnbGFzczpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMjU0XCI7XG59XG4uaWNvbi1oYW5kLWdyYWItbzpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMjU1XCI7XG59XG4uaWNvbi1oYW5kLXJvY2stbzpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMjU1XCI7XG59XG4uaWNvbi1oYW5kLXBhcGVyLW86YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjI1NlwiO1xufVxuLmljb24taGFuZC1zdG9wLW86YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjI1NlwiO1xufVxuLmljb24taGFuZC1zY2lzc29ycy1vOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYyNTdcIjtcbn1cbi5pY29uLWhhbmQtbGl6YXJkLW86YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjI1OFwiO1xufVxuLmljb24taGFuZC1zcG9jay1vOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYyNTlcIjtcbn1cbi5pY29uLWhhbmQtcG9pbnRlci1vOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYyNWFcIjtcbn1cbi5pY29uLWhhbmQtcGVhY2UtbzpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMjViXCI7XG59XG4uaWNvbi10cmFkZW1hcms6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjI1Y1wiO1xufVxuLmljb24tcmVnaXN0ZXJlZDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMjVkXCI7XG59XG4uaWNvbi1jcmVhdGl2ZS1jb21tb25zOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYyNWVcIjtcbn1cbi5pY29uLWdnOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYyNjBcIjtcbn1cbi5pY29uLWdnLWNpcmNsZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMjYxXCI7XG59XG4uaWNvbi10cmlwYWR2aXNvcjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMjYyXCI7XG59XG4uaWNvbi1vZG5va2xhc3NuaWtpOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYyNjNcIjtcbn1cbi5pY29uLW9kbm9rbGFzc25pa2ktc3F1YXJlOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYyNjRcIjtcbn1cbi5pY29uLWdldC1wb2NrZXQ6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjI2NVwiO1xufVxuLmljb24td2lraXBlZGlhLXc6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjI2NlwiO1xufVxuLmljb24tc2FmYXJpOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYyNjdcIjtcbn1cbi5pY29uLWNocm9tZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMjY4XCI7XG59XG4uaWNvbi1maXJlZm94OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYyNjlcIjtcbn1cbi5pY29uLW9wZXJhOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYyNmFcIjtcbn1cbi5pY29uLWludGVybmV0LWV4cGxvcmVyOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYyNmJcIjtcbn1cbi5pY29uLXRlbGV2aXNpb246YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjI2Y1wiO1xufVxuLmljb24tdHY6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjI2Y1wiO1xufVxuLmljb24tY29udGFvOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYyNmRcIjtcbn1cbi5pY29uLTUwMHB4OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYyNmVcIjtcbn1cbi5pY29uLWFtYXpvbjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMjcwXCI7XG59XG4uaWNvbi1jYWxlbmRhci1wbHVzLW86YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjI3MVwiO1xufVxuLmljb24tY2FsZW5kYXItbWludXMtbzpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMjcyXCI7XG59XG4uaWNvbi1jYWxlbmRhci10aW1lcy1vOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYyNzNcIjtcbn1cbi5pY29uLWNhbGVuZGFyLWNoZWNrLW86YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjI3NFwiO1xufVxuLmljb24taW5kdXN0cnk6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjI3NVwiO1xufVxuLmljb24tbWFwLXBpbjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMjc2XCI7XG59XG4uaWNvbi1tYXAtc2lnbnM6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjI3N1wiO1xufVxuLmljb24tbWFwLW86YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjI3OFwiO1xufVxuLmljb24tbWFwOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYyNzlcIjtcbn1cbi5pY29uLWNvbW1lbnRpbmc6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjI3YVwiO1xufVxuLmljb24tY29tbWVudGluZy1vOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYyN2JcIjtcbn1cbi5pY29uLWhvdXp6OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYyN2NcIjtcbn1cbi5pY29uLXZpbWVvOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYyN2RcIjtcbn1cbi5pY29uLWJsYWNrLXRpZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMjdlXCI7XG59XG4uaWNvbi1mb250aWNvbnM6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjI4MFwiO1xufVxuLmljb24tcmVkZGl0LWFsaWVuOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYyODFcIjtcbn1cbi5pY29uLWVkZ2U6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjI4MlwiO1xufVxuLmljb24tY3JlZGl0LWNhcmQtYWx0OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYyODNcIjtcbn1cbi5pY29uLWNvZGllcGllOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYyODRcIjtcbn1cbi5pY29uLW1vZHg6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjI4NVwiO1xufVxuLmljb24tZm9ydC1hd2Vzb21lOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYyODZcIjtcbn1cbi5pY29uLXVzYjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMjg3XCI7XG59XG4uaWNvbi1wcm9kdWN0LWh1bnQ6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjI4OFwiO1xufVxuLmljb24tbWl4Y2xvdWQ6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjI4OVwiO1xufVxuLmljb24tc2NyaWJkOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYyOGFcIjtcbn1cbi5pY29uLXBhdXNlLWNpcmNsZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMjhiXCI7XG59XG4uaWNvbi1wYXVzZS1jaXJjbGUtbzpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMjhjXCI7XG59XG4uaWNvbi1zdG9wLWNpcmNsZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMjhkXCI7XG59XG4uaWNvbi1zdG9wLWNpcmNsZS1vOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYyOGVcIjtcbn1cbi5pY29uLXNob3BwaW5nLWJhZzpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMjkwXCI7XG59XG4uaWNvbi1zaG9wcGluZy1iYXNrZXQ6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjI5MVwiO1xufVxuLmljb24taGFzaHRhZzpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMjkyXCI7XG59XG4uaWNvbi1ibHVldG9vdGg6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjI5M1wiO1xufVxuLmljb24tYmx1ZXRvb3RoLWI6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjI5NFwiO1xufVxuLmljb24tcGVyY2VudDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMjk1XCI7XG59XG5cbiIsIi8qLS0tLS0gQkFTRSAtLS0tLSovXG5pbnB1dCxcbmJ1dHRvbixcbnNlbGVjdCB7dmVydGljYWwtYWxpZ246IG1pZGRsZTsgb3V0bGluZTogbm9uZX1cbnRleHRhcmVhIHt2ZXJ0aWNhbC1hbGlnbjogdG9wOyBvdXRsaW5lOiBub25lfVxuaW5wdXRbdHlwZT1cImRhdGVcIl0gey13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgLW1vei1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IGFwcGVhcmFuY2U6IHRleHRmaWVsZH1cblxuLmlvcyBpbnB1dCwgLmlvcyBzZWxlY3QsIC5pb3MgdGV4dGFyZWEgey13ZWJraXQtYXBwZWFyYW5jZTogbm9uZX1cblxuXG4vKi0tLS0tIFBPTEEgRk9STVVMQVJaWSAtLS0tLSovXG5pbnB1dFt0eXBlPVwidGV4dFwiXSxcbmlucHV0W3R5cGU9XCJlbWFpbFwiXSxcbmlucHV0W3R5cGU9XCJwYXNzd29yZFwiXSxcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0sXG5pbnB1dFt0eXBlPVwiZGF0ZVwiXSxcbmlucHV0W3R5cGU9XCJ1cmxcIl0sXG50ZXh0YXJlYSB7d2lkdGg6IDEwMCU7IHBhZGRpbmc6IDhweDsgYmFja2dyb3VuZDogI2YzZjNmMzsgYm9yZGVyOiAxcHggc29saWQgI2U4ZThlODsgYm9yZGVyLXJhZGl1czogMDsgY29sb3I6ICM2YjZiNmI7IHRyYW5zaXRpb246IGJvcmRlciAwLjI1cyBlYXNlfVxuXG4vKiBaZGFyemVuaWEgKi9cbmlucHV0W3R5cGU9XCJ0ZXh0XCJdOmZvY3VzLFxuaW5wdXRbdHlwZT1cImVtYWlsXCJdOmZvY3VzLFxuaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdOmZvY3VzLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTpmb2N1cyxcbmlucHV0W3R5cGU9XCJkYXRlXCJdOmZvY3VzLFxuaW5wdXRbdHlwZT1cInVybFwiXTpmb2N1cyxcbi5idXR0b246Zm9jdXMsXG50ZXh0YXJlYTpmb2N1cyB7Ym9yZGVyLWNvbG9yOiAkY29sb3ItcHJpbWFyeTsgb3V0bGluZTogMCBub25lO31cblxuYnV0dG9uLFxuc2VsZWN0LFxubGFiZWxbZm9yXSxcbmlucHV0W3R5cGU9XCJyZXNldFwiXSxcbmlucHV0W3R5cGU9XCJyYWRpb1wiXSxcbmlucHV0W3R5cGU9XCJidXR0b25cIl0sXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdLFxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtjdXJzb3I6IHBvaW50ZXJ9XG5cbmJ1dHRvbltkaXNhYmxlZF0sXG5zZWxlY3RbZGlzYWJsZWRdLFxubGFiZWxbZGlzYWJsZWRdW2Zvcl0sXG5pbnB1dFtkaXNhYmxlZF1bdHlwZT1cInJlc2V0XCJdLFxuaW5wdXRbZGlzYWJsZWRdW3R5cGU9XCJyYWRpb1wiXSxcbmlucHV0W2Rpc2FibGVkXVt0eXBlPVwiYnV0dG9uXCJdLFxuaW5wdXRbZGlzYWJsZWRdW3R5cGU9XCJzdWJtaXRcIl0sXG5pbnB1dFtkaXNhYmxlZF1bdHlwZT1cImNoZWNrYm94XCJdIHtjdXJzb3I6IGRlZmF1bHR9XG5cblxuLyotLS0tLSBQUlpZQ0lTS0kgLS0tLS0qL1xuLmJ1dHRvbiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyBcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IFxuICAgIG92ZXJmbG93OiBoaWRkZW47IFxuICAgIG1pbi1oZWlnaHQ6IDQycHg7IFxuICAgIHBhZGRpbmc6IDBweCA0NnB4OyBcbiAgICBjb2xvcjogIzAwMDsgXG4gICAgYmFja2dyb3VuZDogI2ZmZjsgXG4gICAgYm9yZGVyOiA0cHggc29saWQgIzAwMDsgXG4gICAgYm9yZGVyLXJhZGl1czogMDsgXG4gICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseTtcbiAgICBmb250LXNpemU6IDE4cHg7IFxuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbGluZS1oZWlnaHQ6IDQwcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyBcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IFxuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMjVzIGVhc2U7XG4gICAgJi5hY3RpdmUsXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBib3JkZXItY29sb3I6ICRjb2xvci1wcmltYXJ5O1xuICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3ItcHJpbWFyeTtcbiAgICB9XG4gICAgYSB7XG4gICAgICAgIGNvbG9yOiAjN2Q3ZTdlO1xuICAgIH1cbiAgICBpbWcge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICYuYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgdG9wOiAtMnB4O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgICAgICB9XG4gICAgfVxuICAgIGkge1xuICAgICAgICAmLmxlZnQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7IFxuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgICAgICAgfVxuICAgICAgICAmLnJpZ2h0IHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAmLnRleHQtaGlkZSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgdGV4dC1pbmRlbnQ6IC05OTllbTtcbiAgICB9XG59XG5cbi8qIEdydXBhIHByenljaXNrw7N3ICovXG4uYnV0dG9uLWdyb3VwIHtcbiAgICAuYnV0dG9uIHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1cHggMCAwIDVweFxuICAgICAgICB9XG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDFweDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAgNXB4IDVweCAwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKi0tLS0tIENIRUNLQk9YIC0tLS0tKi9cbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAmICsgc3BhbiB7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2RjZGNkYztcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgICAgdGV4dC1pbmRlbnQ6IC05OWVtO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB0ZXh0LWluZGVudDogMDtcbiAgICAgICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4yNXMgZWFzZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAmOmNoZWNrZWQge1xuICAgICAgICAmICsgc3BhbjpiZWZvcmUge1xuICAgICAgICAgICAgY29sb3I6ICMyMjI7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qLS0tLS0gUkFESU8gQlVUVE9OIC0tLS0tKi9cbmlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAmICsgc3BhbiB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZGNkY2RjO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgICB0ZXh0LWluZGVudDogLTk5ZW07XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTBweDtcbiAgICAgICAgICAgIGhlaWdodDogMTBweDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4yNXMgZWFzZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAmOmNoZWNrZWQge1xuICAgICAgICAmICsgc3BhbjpiZWZvcmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogIzIyMjtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG4vKi0tLS0tIFNFTEVDVEJPWCAtLS0tLSovXG4iLCIvKlxuICogU3R5bGUgZGxhIHRyZcWbY2kgeiBlZHl0b3LDs3cgV1lTSVdZR1xuICovXG4ud3lzaXd5ZyB7XG4gICAgKiArIHAsXG4gICAgKiArIGRsLFxuICAgICogKyBoMSxcbiAgICAqICsgaDIsXG4gICAgKiArIGgzLFxuICAgICogKyBoNCxcbiAgICAqICsgaDUsXG4gICAgKiArIGg2LFxuICAgICogKyBvbCxcbiAgICAqICsgdWwsXG4gICAgKiArIGZpZ3VyZSxcbiAgICAqICsgdGFibGUsXG4gICAgKiArIGJsb2NrcXVvdGUge1xuICAgICAgICBtYXJnaW4tdG9wOiAyMHB4XG4gICAgfVxuICAgIFxuICAgIHVsIHtcbiAgICAgICAgbGkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA0MHB4O1xuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfimaYnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAyOHB4O1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDRweCAwO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAjMjIyO1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJiArIGxpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIFxuICAgIH1cblxuICAgIG9sIHtcbiAgICAgICAgbGkge1xuICAgICAgICAgICAgY291bnRlci1pbmNyZW1lbnQ6IG9yZGVyZWQtbGlzdDtcbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBjb3VudGVyKG9yZGVyZWQtbGlzdCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAzMnB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDdweCAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNFOEUyREE7XG4gICAgICAgICAgICAgICAgY29sb3I6ICMyMjI7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYgKyBsaSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBcbiAgICBsaSB7XG4gICAgICAgIHVsLCBvbCB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwOyBcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDBcbiAgICAgICAgfVxuICAgIH1cbiAgICBcbiAgICBkbCB7XG4gICAgICAgIGR0IHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuICAgICAgICBkZCB7XG4gICAgICAgICAgICAmICsgZHQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKi0tLS0tIEJBU0UgLS0tLS0qL1xyXG5cclxuYm9keSB7XHJcbiAgICBiYWNrZ3JvdW5kOiAjZmZmOyBcclxuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHk7XHJcbiAgICBjb2xvcjogJGNvbG9yLWRlZmF1bHQ7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcclxuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcclxuICAgIEBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6IDE5MjFweCkge1xyXG4gICAgICAgICYge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLnBhZ2UtY29udGFpbmVyIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIG1hcmdpbjogNDBweDtcclxuICAgIEBpbmNsdWRlIGdyaWRsZV9zdGF0ZSAobWQgc20geHMpIHtcclxuICAgICAgICBtYXJnaW46IDA7XHJcbiAgICB9XHJcbn1cclxuXHJcbmJvZHksIC5ncmlkID4gKiB7XHJcbiAgICBmb250LXNpemU6ICRmb250LXNpemU7XHJcbn1cclxuXHJcbjo6c2VsZWN0aW9uIHtiYWNrZ3JvdW5kOiAjYjNkNGZjOyB0ZXh0LXNoYWRvdzogbm9uZX1cclxuOjotbW96LXNlbGVjdGlvbiB7YmFja2dyb3VuZDogI2IzZDRmYzsgdGV4dC1zaGFkb3c6IG5vbmV9XHJcblxyXG46Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge2NvbG9yOiAjZmZmfVxyXG46Oi1tb3otcGxhY2Vob2xkZXIge2NvbG9yOiAjZmZmfVxyXG46LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtjb2xvcjogI2ZmZn1cclxuXHJcbmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuICAgIGxldHRlci1zcGFjaW5nOiAtMi41cHg7XHJcbn1cclxuXHJcbmEge1xyXG4gICAgY29sb3I6ICRjb2xvci1wcmltYXJ5OyBcclxuICAgIHRyYW5zaXRpb246IGFsbCAwLjI1cyBlYXNlO1xyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgICAgY29sb3I6ICM2NjY7IFxyXG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjI1cyBlYXNlO1xyXG4gICAgfVxyXG59XHJcblxyXG4uY29udGFpbmVyIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgbWF4LXdpZHRoOiAxMzAwcHg7XHJcbiAgICBwYWRkaW5nOiAwIDEwcHg7XHJcbiAgICBtYXJnaW46IDAgYXV0bztcclxufVxyXG5cclxuYmxvY2txdW90ZSB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBwYWRkaW5nOiAyMHB4IDIwcHggMjBweCA2MHB4O1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgI0U4RTJEQTtcclxuICAgIGJvcmRlci13aWR0aDogMXB4IDA7XHJcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XHJcbiAgICAmOmFmdGVyIHtcclxuICAgICAgICBjb250ZW50OiBvcGVuLXF1b3RlO1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB0b3A6IDE2cHg7XHJcbiAgICAgICAgbGVmdDogMDtcclxuICAgICAgICBjb2xvcjogI0U4RTJEQTtcclxuICAgICAgICBmb250LXNpemU6IDcycHg7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgICAgICBsaW5lLWhlaWdodDogMTtcclxuICAgIH1cclxufVxyXG5cclxuXHJcbi8qLS0tLS0gTUFSR0lORVNZIC0tLS0tLSovXHJcbi5tYXJnaW4gICAgIHttYXJnaW46IDIwcHh9XHJcbi53TWFyZ2luICAgIHttYXJnaW46IDAgMjBweH1cclxuLmhNYXJnaW4gICAge21hcmdpbjogMjBweCAwfVxyXG5cclxuLnBhZGRpbmcgICAge3BhZGRpbmc6IDIwcHh9XHJcblxyXG5cclxuLyotLS0tLSBUQUJFTEUgLS0tLS0qL1xyXG50YWJsZSB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGJvcmRlci1zcGFjaW5nOiAxMHB4O1xyXG4gICAgY29sb3I6ICMyMjI7XHJcbiAgICB0ciB7XHJcbiAgICAgICAgJiA+ICoge1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAxNXB4IDMwcHg7IFxyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjRjBFQ0U3OyBcclxuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgICAgICB9XHJcbiAgICAgICAgJjpudGgtY2hpbGQoMm4rMSk+KiB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNFOEUyREE7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICogPiAqIHtcclxuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZmZmO1xyXG4gICAgICAgIH1cclxuICAgICAgICAmICsgdHIgPiAqIHtcclxuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNmZmY7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogIzAwQTJGRiAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICBjb2xvcjogI2ZmZjtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxOHB4O1xyXG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHRoZWFkIHRoIHtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICB9XHJcbn1cclxuIiwiLnBhZ2UtaGVhZGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgei1pbmRleDogMTA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiA1MHB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC45KTtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgYSB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkY29sb3ItcHJpbWFyeTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAubG9nbyB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgdG9wOiAyMnB4O1xuICAgICAgICBsZWZ0OiAyMnB4O1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHdpZHRoOiAyNThweDtcbiAgICAgICAgaGVpZ2h0OiA0OHB4O1xuICAgIH1cbiAgICAucGhvbmUtZmllbGQge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgaGVpZ2h0OiA1MHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogNTBweDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMTJweDtcbiAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBwIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgNDBweCAwIDMwcHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMDBhMmZmO1xuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDBweDtcbiAgICAgICAgICAgICAgICBsZWZ0OiA2cHg7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEycHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiA1MnB4O1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvci1wcmltYXJ5O1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDEyZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAucGFnZS1tZW51IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIC5kZXNrdG9wLW1lbnUge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgaGVpZ2h0OiA1MHB4OyBcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7XG4gICAgICAgICAgICB1bCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsaSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyBcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IFxuICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogNTBweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJiBhOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJiArIGxpIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5tZW51LWltZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG4gICAgICAgIC5tb2JpbGUtaGVhZGVyIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgLm1lbnUtYnV0dG9uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jazsgXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOyBcbiAgICAgICAgICAgICAgICB0b3A6IDBweDsgXG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7IFxuICAgICAgICAgICAgICAgIHotaW5kZXg6IDM7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDcwcHg7IFxuICAgICAgICAgICAgICAgIGhlaWdodDogNzBweDsgXG4gICAgICAgICAgICAgICAgcGFkZGluZzogMTNweDtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yLXByaW1hcnk7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jazsgXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA0NXB4OyBcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiA1cHg7IFxuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAtMnB4OyBcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZmZjsgXG4gICAgICAgICAgICAgICAgICAgIHRleHQtaW5kZW50OiAtOTk5ZW07IFxuICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4yNXMgZWFzZTtcbiAgICAgICAgICAgICAgICAgICAgJjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7IFxuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOyBcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogMTdweDsgXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jazsgXG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogNDVweDsgXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDVweDsgXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAxNXB4OyBcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7IFxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1pbmRlbnQ6IC05OTllbTsgXG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4yNXMgZWFzZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTE0cHgpIHJvdGF0ZSgwZGVnKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxNHB4KSByb3RhdGUoMGRlZyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJi5vcGVuIHNwYW4ge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3ItcHJpbWFyeTtcbiAgICAgICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAmOmFmdGVyIHt0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHB4KSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAuYnV0dG9uLWNsb3NlZCB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAuYnV0dG9uLW9wZW4ge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5tb2JpbGUtbWVudSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgICAgICAgICB0b3A6IDBweDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50aXplKCRjb2xvci1wcmltYXJ5LCAwLjA1KTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMjBweDtcbiAgICAgICAgICAgICAgICAubG9nbyB7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogMzgwcHg7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMTB2aCBhdXRvO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA4MHB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBsaSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiA2NHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDY0cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmVcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICYgKyBsaSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5waG9uZS1maWVsZCB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogNjRweDtcbiAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDY0cHg7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTQwcHg7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgcCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNTJweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDI4cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAxNDBweCBhdXRvO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHVybCgnLi4vaW1nL2ltZ19iaWtlX2NoYWluX3doaXRlLnBuZycpIG5vLXJlcGVhdDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGdyaWRsZV9zdGF0ZSAoc20geHMpIHtcbiAgICAgICAgICAgICAgICAgICAgLmxvZ28ge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBsaSBhLCAucGhvbmUtZmllbGQge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxMHZ3O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEydnc7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLnBob25lLWZpZWxkIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDYwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBwIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogNjBweCBhdXRvO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpbmNsdWRlIGdyaWRsZV9zdGF0ZSAobGcgeGwpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJi5vcGVuIHtcbiAgICAgICAgICAgIC5tb2JpbGUtaGVhZGVyIHtcbiAgICAgICAgICAgICAgICBidXR0b24ge1xuICAgICAgICAgICAgICAgICAgICAuYnV0dG9uLWNsb3NlZCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC5idXR0b24tb3BlbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBAaW5jbHVkZSBncmlkbGVfc3RhdGUgKG1kIHNtIHhzKSB7XG4gICAgICAgIGhlaWdodDogNzBweDtcbiAgICAgICAgLnBhZ2UtbWVudSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDIwcHg7XG4gICAgICAgICAgICAuZGVza3RvcC1tZW51IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIEBpbmNsdWRlIGdyaWRsZV9zdGF0ZSAoc20geHMpIHtcbiAgICAgICAgJiA+IC5sb2dvIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMjEwcHg7XG4gICAgICAgIH1cbiAgICB9XG59IiwiLnBhZ2UtZm9vdGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm90dG9tOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogNTRweDtcbiAgICBwYWRkaW5nOiA5cHggMDtcbiAgICBiYWNrZ3JvdW5kOiAjMjgyNzI1O1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1jb250ZW50O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIC5jb250YWluZXIge1xuICAgICAgICBAaW5jbHVkZSBncmlkbGVfY29udGFpbmVyKCk7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICBpbWcge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogNXB4O1xuICAgICAgICB9XG4gICAgfVxuICAgIGEge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICB9XG4gICAgLmNvcHlyaWdodCB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWRsZV9ncmlkKDcpO1xuICAgIH1cbiAgICAuY3JlZGl0cyB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWRsZV9ncmlkKDUpO1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHRvcDogLTNweDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGhlaWdodDogMTJweDtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG4gICAgfVxuICAgIEBpbmNsdWRlIGdyaWRsZV9zdGF0ZShtZCBzbSB4cykge1xuICAgICAgICAmIHtcbiAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgfVxuICAgIH1cbiAgICBAaW5jbHVkZSBncmlkbGVfc3RhdGUoc20geHMpIHtcbiAgICAgICAgLmNvcHlyaWdodCxcbiAgICAgICAgLmNyZWRpdHMge1xuICAgICAgICAgICAgQGluY2x1ZGUgZ3JpZGxlX2dyaWQoMTIpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG4gICAgfVxufSIsIi8vXG4vLyBMYXlvdXQgaGVscGVyXG4vL1xuQG1peGluIGdyaWRsZV9sYXlvdXQoXG5cdCRsYXlvdXQsXG5cdCRjb250ZXh0IDogbnVsbFxuKSB7XG5cdEBpbmNsdWRlIGdyaWRsZV9zdGF0ZSgkY29udGV4dCkge1xuXHRcdEBpbmNsdWRlIGdyaWRsZV9yb3coKTtcblx0XHRAZWFjaCAkc2VsLCAkbCBpbiAkbGF5b3V0IHtcblx0XHRcdD4gI3skc2VsfSB7XG5cdFx0XHRcdEBpbmNsdWRlIGdyaWRsZSgkbCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi8vXG4vLyBHcmlkbGUgc3RhdGVcbi8vXG4vLyBAcGFyYW0gXHRzdHJpbmd8bWFwfGxpc3QgXHQkc3RhdGVzIFx0XHRBIGxpc3Qgb2Ygc3RhdGVzLCBhIHN0YXRlIG5hbWUgb3IgYSBzdGF0ZSBtYXBcbi8vIEBwYXJhbSBcdGJvb2xlYW4gXHRcdFx0JGhhcy1wYXJlbnQgXHRNb3N0bHkgYWx3YXlzIHRydWUsIG1lYW4gdGhhdCB0aGUgbWl4aW4gaXMgdXNlZCBpbiBhIGNzcyBzZWxlY3RvciBhbmQgbm90IGluIGNzcyByb290IGxldmVsXG4vL1xuQG1peGluIGdyaWRsZV9zdGF0ZShcblx0JHN0YXRlcyxcblx0JGhhcy1wYXJlbnQgOiB0cnVlXG4pIHtcblxuXHQvLyBjaGVjayBpZiBpcyBhIG1pbi1tYXggd2l0ZGggcXVlcnkgKGNvbXBhdGliaWxpdHkgbGF5ZXIpXG5cdEBpZiB0eXBlLW9mKCRzdGF0ZXMpID09IG51bWJlciBhbmQgdHlwZS1vZigkaGFzLXBhcmVudCkgPT0gbnVtYmVyIHtcblxuXHRcdC8vIGdldCBhIG5ldyBzdGF0ZSBmcm9tIHNldHRpbmdzIHBhc3NlZFxuXHRcdCRzdGF0ZSA6IGdyaWRsZV9nZXRfc3RhdGUoKFxuXHRcdFx0bWluLXdpZHRoIDogJHN0YXRlcyxcblx0XHRcdG1heC13aWR0aCA6ICRoYXMtcGFyZW50XG5cdFx0KSk7XG5cblx0XHQvLyBtYWtlIGEgcXVlcnlcblx0XHRAaW5jbHVkZSBncmlkbGVfc3RhdGUoJHN0YXRlKSB7XG5cdFx0XHRAY29udGVudDtcblx0XHR9XG5cblx0fSBAZWxzZWlmIHR5cGUtb2YoJHN0YXRlcykgPT0gbGlzdFxuXHRcdG9yIHR5cGUtb2YoJHN0YXRlcykgPT0gc3RyaW5nIHtcblxuXHRcdC8vIGxvb3Agb24gZWFjaCBzdGF0ZXMgOlxuXHRcdEBlYWNoICRzdGF0ZSBpbiAkc3RhdGVzXG5cdFx0e1xuXHRcdFx0Ly8gbWFrZSBzdXJlIHdlIGhhdmUgdGhlIHN0YXRlIG9iamVjdFxuXHRcdFx0JHN0YXRlIDogZ3JpZGxlX2dldF9zdGF0ZSgkc3RhdGUpO1xuXG5cdFx0XHQvLyBtYWtlIGdyaWRsZSBzdGF0ZVxuXHRcdFx0QGluY2x1ZGUgX2dyaWRsZV9zdGF0ZSgkc3RhdGUsICRoYXMtcGFyZW50LCB0cnVlKSB7XG5cdFx0XHRcdEBjb250ZW50O1xuXHRcdFx0fVxuXHRcdH1cblxuXHR9IEBlbHNlaWYgdHlwZS1vZigkc3RhdGVzKSA9PSBtYXAge1xuXG5cdFx0Ly8gZ2V0IGEgc3RhdGUgZnJvbSB0aGUgcGFzc2VkIG9uZVxuXHRcdCRzdGF0ZSA6IGdyaWRsZV9nZXRfc3RhdGUoJHN0YXRlcyk7XG5cblx0XHQvLyBtYWtlIGdyaWRsZSBzdGF0ZVxuXHRcdEBpbmNsdWRlIF9ncmlkbGVfc3RhdGUoJHN0YXRlLCAkaGFzLXBhcmVudCwgdHJ1ZSkge1xuXHRcdFx0QGNvbnRlbnQ7XG5cdFx0fVxuXHR9IEBlbHNlIHtcblx0XHRAY29udGVudDtcblx0fVxufVxuXG5cbi8vXG4vLyBFbGVtZW50IHF1ZXJpZXNcbi8vXG5AbWl4aW4gZ3JpZGxlX2VxKFxuXHQkdmFyLFxuXHQkaGVpZ2h0IDogZmFsc2Vcbikge1xuXHQkb3AgOiBcIm1pbi13aWR0aFwiO1xuXHRAaWYgJGhlaWdodCB7XG5cdFx0QGlmICR2YXIgPCAwIHtcblx0XHRcdCRvcCA6IFwibWF4LWhlaWdodFwiO1xuXHRcdFx0JHZhciA6ICR2YXIgKiAtMTtcblx0XHR9IEBlbHNlIHtcblx0XHRcdCRvcCA6IFwibWluLWhlaWdodFwiO1xuXHRcdH1cblx0fSBAZWxzZSB7XG5cdFx0QGlmICR2YXIgPCAwIHtcblx0XHRcdCRvcCA6IFwibWF4LXdpZHRoXCI7XG5cdFx0XHQkdmFyIDogJHZhciAqIC0xO1xuXHRcdH1cblx0fVxuXG5cdCZbI3skb3B9fj1cIiN7JHZhcn1cIl0ge1xuXHRcdEBjb250ZW50O1xuXHR9XG59XG5cblxuLy9cbi8vIEdyaWRsZSB1c2Ugc3RhdGVcbi8vIFRoaXMgbWl4aW4gd2lsbCBvbmx5IHNldCB0aGUgY3VycmVudCBzdGF0ZSB0byB1c2UgYW5kIE5PVCBwcmludCBvdXQgYW55IG1lZGlhIHF1ZXJ5XG4vL1xuQG1peGluIGdyaWRsZV91c2Vfc3RhdGUoXG5cdCRzdGF0ZVxuKSB7XG5cdC8vIGdldCB0aGUgc3RhdGVcblx0JHN0YXRlIDogZ3JpZGxlX2dldF9zdGF0ZSgkc3RhdGUpO1xuXHQkc3RhdGVOYW1lIDogZ3JpZGxlX2dldF9zdGF0ZV92YXIobmFtZSwgJHN0YXRlKTtcblxuXHQvLyBzYXZlIHRoZSBjdXJyZW50IHN0YXRlXG5cdCRzYXZlZFN0YXRlIDogJF9ncmlkbGVfY3VycmVudF9zdGF0ZTtcblx0JHNhdmVkU3RhdGVOYW1lIDogJF9ncmlkbGVfY3VycmVudF9zdGF0ZU5hbWU7XG5cblx0Ly8gc2V0IHRoZSBjdXJyZW50IHN0YXRlXG5cdCRfZ3JpZGxlX2N1cnJlbnRfc3RhdGUgOiAkc3RhdGUgIWdsb2JhbDtcblx0JF9ncmlkbGVfY3VycmVudF9zdGF0ZU5hbWUgOiAkc3RhdGVOYW1lICFnbG9iYWw7XG5cblx0Ly8gZ2VuZXJhdGUgY29udGVudFxuXHRAY29udGVudDtcblxuXHQvLyByZXNldCB0aGUgc3RhdGVcblx0JF9ncmlkbGVfY3VycmVudF9zdGF0ZSA6ICRzYXZlZFN0YXRlICFnbG9iYWw7XG5cdCRfZ3JpZGxlX2N1cnJlbnRfc3RhdGVOYW1lIDogJHNhdmVkU3RhdGVOYW1lICFnbG9iYWw7XG59XG5cblxuLy9cbi8vIEdyaWRsZSBzZWxlY3RvclxuLy9cbkBtaXhpbiBncmlkbGVfc2VsZWN0b3IoXG5cdCRmb3IsXG5cdCRzdGF0ZXMgOiBudWxsXG4pIHtcblx0I3tncmlkbGVfc2VsZWN0b3IoJGZvciwgJHN0YXRlcyl9IHtcblx0XHRAY29udGVudDtcblx0fVxufVxuXG5cbi8vXG4vLyBHcmlkbGUgaGVscGVyXG4vL1xuQG1peGluIGdyaWRsZSgkbGF5b3V0KSB7XG5cdCRtYXAgOiBfZ3JpZGxlX2dldF9ncmlkbGVfc2V0X21hcF9mcm9tX2xpc3QoJGxheW91dCk7XG5cdEBpZiB0eXBlLW9mKCRtYXApID09IG1hcCB7XG5cdFx0QGluY2x1ZGUgZ3JpZGxlX3NldCgkbWFwKTtcblx0fVxufVxuXG5cbi8vXG4vLyBIZWxwZXIgdG8gYXBwbHkgbXVsdGlwbGUgY29uZmlnIGZvciBhIGNlcnRhaW4gc3RhdGUgd2l0aCBvbmUgbWl4aW5cbi8vXG5AbWl4aW4gZ3JpZGxlX3NldChcblx0JHNldHRpbmdzLFxuXHQkc3RhdGUgOiBjdXJyZW50XG4pIHtcblx0Ly8gaW5pdCBpZiBuZWVkZWRcblx0QGluY2x1ZGUgZ3JpZGxlX2luaXQoKTtcblx0Ly8gd3JhcCBpbiBtZWRpYSBxdWVyeVxuXHRAaW5jbHVkZSBncmlkbGVfc3RhdGUoJHN0YXRlKSB7XG5cdFx0QGluY2x1ZGUgX2dyaWRsZV9zZXQoJHNldHRpbmdzKTtcblx0fVxufVxuQG1peGluIF9ncmlkbGVfc2V0KFxuXHQkc2V0dGluZ3Ncbikge1xuXHQvLyBsb29wIG9uIGVhY2ggc2V0dGluZ3Ncblx0QGVhY2ggJHNldHRpbmdOYW1lLCAkc2V0dGluZ1ZhbHVlIGluICRzZXR0aW5nc1xuXHR7XG5cdFx0JHNuIDogdW5xdW90ZShcIiN7JHNldHRpbmdOYW1lfVwiKTtcblx0XHQkc3YgOiAkc2V0dGluZ1ZhbHVlO1xuXG5cdFx0Ly8gY2hlY2sgaWYgc2V0dGluZyBuYW1lIGlzIGEgc3RhdGUgOlxuXHRcdEBpZiBncmlkbGVfaGFzX3N0YXRlKCRzbikge1xuXHRcdFx0Ly8gcHJvY2VzcyB0aGUgc3RhdGVcblx0XHRcdEBpbmNsdWRlIGdyaWRsZV9zZXQoJHN2LCAkc24pO1xuXHRcdH0gQGVsc2Uge1xuXHRcdFx0QGlmICRzbiA9PSBjb250YWluZXIge1xuXHRcdFx0XHRAaWYgJHN2ID09IHRydWUge1xuXHRcdFx0XHRcdEBpbmNsdWRlIGdyaWRsZV9jb250YWluZXIoKTtcblx0XHRcdFx0fVxuXHRcdFx0fSBAZWxzZSBpZiAkc24gPT0gZ3JpZCB7XG5cdFx0XHRcdEBpZiBsZW5ndGgoJHN2KSA9PSAyIHtcblx0XHRcdFx0XHRAaW5jbHVkZSBncmlkbGVfZ3JpZChudGgoJHN2LDEpLCBudGgoJHN2LDIpKTtcblx0XHRcdFx0fSBAZWxzZSBpZiB0eXBlLW9mKCRzdikgPT0gbGlzdCBhbmQgbGVuZ3RoKCRzdikgPT0gMSB7XG5cdFx0XHRcdFx0QGluY2x1ZGUgZ3JpZGxlX2dyaWQobnRoKCRzdiwxKSk7XG5cdFx0XHRcdH0gQGVsc2Uge1xuXHRcdFx0XHRcdEBpbmNsdWRlIGdyaWRsZV9ncmlkKCRzdik7XG5cdFx0XHRcdH1cblx0XHRcdH0gQGVsc2UgaWYgJHNuID09IGdyaWQtZ3JvdyB7XG5cdFx0XHRcdEBpZiAkc3YgPT0gdHJ1ZSB7XG5cdFx0XHRcdFx0QGluY2x1ZGUgZ3JpZGxlX2dyaWRfZ3JvdygpO1xuXHRcdFx0XHR9XG5cdFx0XHR9IEBlbHNlIGlmICRzbiA9PSBncmlkLWFkYXB0IHtcblx0XHRcdFx0QGlmICRzdiA9PSB0cnVlIHtcblx0XHRcdFx0XHRAaW5jbHVkZSBncmlkbGVfZ3JpZF9hZGFwdCgpO1xuXHRcdFx0XHR9XG5cdFx0XHR9IEBlbHNlIGlmICRzbiA9PSBncmlkLXRhYmxlIHtcblx0XHRcdFx0QGlmICRzdiA9PSB0cnVlIHtcblx0XHRcdFx0XHRAaW5jbHVkZSBncmlkbGVfZ3JpZF90YWJsZSgpO1xuXHRcdFx0XHR9XG5cdFx0XHR9IEBlbHNlIGlmICRzbiA9PSBwdXNoIHtcblx0XHRcdFx0QGlmIGxlbmd0aCgkc3YpID09IDIge1xuXHRcdFx0XHRcdEBpbmNsdWRlIGdyaWRsZV9wdXNoKG50aCgkc3YsMSksIG50aCgkc3YsMikpO1xuXHRcdFx0XHR9IEBlbHNlIHtcblx0XHRcdFx0XHRAaW5jbHVkZSBncmlkbGVfcHVzaCgkc3YpO1xuXHRcdFx0XHR9XG5cdFx0XHR9IEBlbHNlIGlmICRzbiA9PSBwdWxsIHtcblx0XHRcdFx0QGlmIGxlbmd0aCgkc3YpID09IDIge1xuXHRcdFx0XHRcdEBpbmNsdWRlIGdyaWRsZV9wdWxsKG50aCgkc3YsMSksIG50aCgkc3YsMikpO1xuXHRcdFx0XHR9IEBlbHNlIHtcblx0XHRcdFx0XHRAaW5jbHVkZSBncmlkbGVfcHVsbCgkc3YpO1xuXHRcdFx0XHR9XG5cdFx0XHR9IEBlbHNlIGlmICRzbiA9PSBwcmVmaXgge1xuXHRcdFx0XHRAaWYgbGVuZ3RoKCRzdikgPT0gMiB7XG5cdFx0XHRcdFx0QGluY2x1ZGUgZ3JpZGxlX3ByZWZpeChudGgoJHN2LDEpLCBudGgoJHN2LDIpKTtcblx0XHRcdFx0fSBAZWxzZSB7XG5cdFx0XHRcdFx0QGluY2x1ZGUgZ3JpZGxlX3ByZWZpeCgkc3YpO1xuXHRcdFx0XHR9XG5cdFx0XHR9IEBlbHNlIGlmICRzbiA9PSBzdWZmaXgge1xuXHRcdFx0XHRAaWYgbGVuZ3RoKCRzdikgPT0gMiB7XG5cdFx0XHRcdFx0QGluY2x1ZGUgZ3JpZGxlX3N1ZmZpeChudGgoJHN2LDEpLCBudGgoJHN2LDIpKTtcblx0XHRcdFx0fSBAZWxzZSB7XG5cdFx0XHRcdFx0QGluY2x1ZGUgZ3JpZGxlX3N1ZmZpeCgkc3YpO1xuXHRcdFx0XHR9XG5cdFx0XHR9IEBlbHNlIGlmICRzbiA9PSBjbGVhci1lYWNoIHtcblx0XHRcdFx0QGlmIGxlbmd0aCgkc3YpID09IDIge1xuXHRcdFx0XHRcdEBpbmNsdWRlIGdyaWRsZV9jbGVhcl9lYWNoKG50aCgkc3YsMSksIG50aCgkc3YsMikpO1xuXHRcdFx0XHR9IEBlbHNlIHtcblx0XHRcdFx0XHRAaW5jbHVkZSBncmlkbGVfY2xlYXJfZWFjaCgkc3YpO1xuXHRcdFx0XHR9XG5cdFx0XHR9IEBlbHNlIGlmICRzbiA9PSBncmlkLWNlbnRlcmVkIGFuZCAkc3YgPT0gdHJ1ZSB7XG5cdFx0XHRcdEBpbmNsdWRlIGdyaWRsZV9ncmlkX2NlbnRlcmVkKCk7XG5cdFx0XHR9IEBlbHNlIGlmICRzbiA9PSByb3cgYW5kICRzdiA9PSB0cnVlIHtcblx0XHRcdFx0QGluY2x1ZGUgZ3JpZGxlX3JvdygpO1xuXHRcdFx0fSBAZWxzZSBpZiAkc24gPT0gcm93LWZ1bGwgYW5kICRzdiA9PSB0cnVlIHtcblx0XHRcdFx0QGluY2x1ZGUgZ3JpZGxlX3Jvd19mdWxsKCk7XG5cdFx0XHR9IEBlbHNlIGlmICRzbiA9PSBjb2wgYW5kICRzdiA9PSB0cnVlIHtcblx0XHRcdFx0QGluY2x1ZGUgZ3JpZGxlX2NvbCgpO1xuXHRcdFx0fSBAZWxzZSBpZiAkc24gPT0gcm93LWFsaWduIHtcblx0XHRcdFx0QGluY2x1ZGUgZ3JpZGxlX3Jvd19hbGlnbigkc3YpO1xuXHRcdFx0fSBAZWxzZSBpZiAkc24gPT0gbm93cmFwIHtcblx0XHRcdFx0QGlmICRzdiA9PSB0cnVlIHtcblx0XHRcdFx0XHRAaW5jbHVkZSBncmlkbGVfbm93cmFwKCk7XG5cdFx0XHRcdH0gQGVsc2Uge1xuXHRcdFx0XHRcdEBpbmNsdWRlIGdyaWRsZV93cmFwKCk7XG5cdFx0XHRcdH1cblx0XHRcdH0gQGVsc2UgaWYgJHNuID09IHdyYXAge1xuXHRcdFx0XHRAaWYgJHN2ID09IHRydWUge1xuXHRcdFx0XHRcdEBpbmNsdWRlIGdyaWRsZV93cmFwKCk7XG5cdFx0XHRcdH0gQGVsc2Uge1xuXHRcdFx0XHRcdEBpbmNsdWRlIGdyaWRsZV9ub3dyYXAoKTtcblx0XHRcdFx0fVxuXHRcdFx0fSBAZWxzZSBpZiAkc24gPT0gb3JkZXIge1xuXHRcdFx0XHRAaW5jbHVkZSBncmlkbGVfb3JkZXIoJHN2KTtcblx0XHRcdH0gQGVsc2UgaWYgJHNuID09IGhpZGUge1xuXHRcdFx0XHRAaWYgJHN2ID09IHRydWUge1xuXHRcdFx0XHRcdEBpbmNsdWRlIGdyaWRsZV9oaWRlKCk7XG5cdFx0XHRcdH0gQGVsc2Uge1xuXHRcdFx0XHRcdEBpbmNsdWRlIGdyaWRsZV9zaG93KCk7XG5cdFx0XHRcdH1cblx0XHRcdH0gQGVsc2UgaWYgJHNuID09IHNob3cge1xuXHRcdFx0XHRAaWYgJHN2ID09IHRydWUge1xuXHRcdFx0XHRcdEBpbmNsdWRlIGdyaWRsZV9zaG93KCk7XG5cdFx0XHRcdH0gQGVsc2Uge1xuXHRcdFx0XHRcdEBpbmNsdWRlIGdyaWRsZV9oaWRlKCk7XG5cdFx0XHRcdH1cblx0XHRcdH0gQGVsc2UgaWYgJHNuID09IHZpc2libGUge1xuXHRcdFx0XHRAaWYgJHN2ID09IHRydWUge1xuXHRcdFx0XHRcdEBpbmNsdWRlIGdyaWRsZV92aXNpYmxlKCk7XG5cdFx0XHRcdH0gQGVsc2Uge1xuXHRcdFx0XHRcdEBpbmNsdWRlIGdyaWRsZV9ub3RfdmlzaWJsZSgpO1xuXHRcdFx0XHR9XG5cdFx0XHR9IEBlbHNlIGlmICRzbiA9PSBub3QtdmlzaWJsZSB7XG5cdFx0XHRcdEBpZiAkc3YgPT0gdHJ1ZSB7XG5cdFx0XHRcdFx0QGluY2x1ZGUgZ3JpZGxlX25vdF92aXNpYmxlKCk7XG5cdFx0XHRcdH0gQGVsc2Uge1xuXHRcdFx0XHRcdEBpbmNsdWRlIGdyaWRsZV92aXNpYmxlKCk7XG5cdFx0XHRcdH1cblx0XHRcdH0gQGVsc2UgaWYgJHNuID09IHNob3ctaW5saW5lIHtcblx0XHRcdFx0QGlmICRzdiA9PSB0cnVlIHtcblx0XHRcdFx0XHRAaW5jbHVkZSBncmlkbGVfc2hvd19pbmxpbmUoKTtcblx0XHRcdFx0fSBAZWxzZSB7XG5cdFx0XHRcdFx0QGluY2x1ZGUgZ3JpZGxlX2hpZGUoKTtcblx0XHRcdFx0fVxuXHRcdFx0fSBAZWxzZSBpZiAkc24gPT0gZmxvYXQge1xuXHRcdFx0XHRAaW5jbHVkZSBncmlkbGVfZmxvYXQoJHN2KTtcblx0XHRcdH0gQGVsc2UgaWYgJHNuID09IGNsZWFyIHtcblx0XHRcdFx0QGlmICRzdiA9PSB0cnVlIHtcblx0XHRcdFx0XHRAaW5jbHVkZSBncmlkbGVfY2xlYXIoKTtcblx0XHRcdFx0fSBAZWxzZSB7XG5cdFx0XHRcdFx0QGluY2x1ZGUgZ3JpZGxlX2NsZWFyKCRzdik7XG5cdFx0XHRcdH1cblx0XHRcdH0gQGVsc2UgaWYgJHNuID09IG5vLWd1dHRlciB7XG5cdFx0XHRcdEBpZiAkc3YgPT0gdHJ1ZSB7XG5cdFx0XHRcdFx0QGluY2x1ZGUgZ3JpZGxlX25vX2d1dHRlcigpO1xuXHRcdFx0XHR9IEBlbHNlIHtcblx0XHRcdFx0XHRAaW5jbHVkZSBncmlkbGVfbm9fZ3V0dGVyKCRzdik7XG5cdFx0XHRcdH1cblx0XHRcdH0gQGVsc2UgaWYgJHNuID09IGd1dHRlciBvciAkc24gPT0gZ3V0dGVyLXdpZHRoIHtcblx0XHRcdFx0QGlmICRzdiA9PSB0cnVlIHtcblx0XHRcdFx0XHRAaW5jbHVkZSBncmlkbGVfZ3V0dGVyKCk7XG5cdFx0XHRcdH0gQGVsc2Uge1xuXHRcdFx0XHRcdEBpbmNsdWRlIGdyaWRsZV9ndXR0ZXIoJHN2KTtcblx0XHRcdFx0fVxuXHRcdFx0fSBAZWxzZSB7XG5cdFx0XHRcdC8vIHdlIGRvIG5vdGhpbmdcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuXG4vL1xuLy8gUHVzaFxuLy9cbkBtaXhpbiBfZ3JpZGxlX2NvbW1vbl9wdXNoKFxuXHQkc3RhdGUgOiBkZWZhdWx0XG4pIHtcblx0Ly8gY3NzXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHQvLyBoYW5kbGUgZGlyZWN0aW9uIGF0dHJpYnV0ZVxuXHRAaWYgZ3JpZGxlX2dldF9zdGF0ZV92YXIoZGlyLWF0dHJpYnV0ZSwgJHN0YXRlKSB7XG5cdFx0W2Rpcj1cInJ0bFwiXSAmIHtcblx0XHRcdGxlZnQ6IGF1dG87XG5cdFx0fVxuXHRcdFtkaXI9XCJsdHJcIl0gJiB7XG5cdFx0XHRyaWdodDogYXV0bztcblx0XHR9XG5cdH1cbn1cbkBtaXhpbiBncmlkbGVfcHVzaChcblx0JGNvbHVtbnMsXG5cdCRjb250ZXh0IDogbnVsbFxuKSB7XG5cdEBpbmNsdWRlIF9ncmlkbGVfY2FsbChwdXNoKSB7XG5cdFx0Ly8gdmFyaWFibGVzIDpcblx0XHRAaWYgdHlwZS1vZigkY29udGV4dCkgIT0gbnVtYmVyIHtcblx0XHRcdCRjb250ZXh0IDogZ3JpZGxlX2dldF9zdGF0ZV92YXIoY29udGV4dCk7XG5cdFx0fVxuXHRcdCRkaXJlY3Rpb24gOiBncmlkbGVfZ2V0X3N0YXRlX3ZhcihkaXJlY3Rpb24pO1xuXHRcdCRuYW1lLW11bHRpcGxpY2F0b3IgOiBncmlkbGVfZ2V0X3N0YXRlX3ZhcihuYW1lLW11bHRpcGxpY2F0b3IpO1xuXHRcdCRjb2x1bW4td2lkdGggOiBncmlkbGVfZ2V0X3N0YXRlX3Zhcihjb2x1bW4td2lkdGgpO1xuXG5cdFx0Ly8gdmFycyA6XG5cdFx0JHdpZHRoIDogMDtcblx0XHRAaWYgJGNvbHVtbi13aWR0aCB7XG5cdFx0XHQkd2lkdGggOiAkY29sdW1uLXdpZHRoICogKCRjb2x1bW5zIC8gJG5hbWUtbXVsdGlwbGljYXRvcik7XG5cdFx0fSBAZWxzZSB7XG5cdFx0XHQkd2lkdGggOiBwZXJjZW50YWdlKDEgLyAkY29udGV4dCkgKiAoJGNvbHVtbnMgLyAkbmFtZS1tdWx0aXBsaWNhdG9yKTtcblx0XHR9XG5cdFx0Ly8gQGlmICRkaXJlY3Rpb24gPT0gcnRsIHsgJHdpZHRoIDogJHdpZHRoKi0xOyB9XG5cdFx0Ly8gbGVmdDokd2lkdGg7XG5cdFx0Ly8gQGlmICRkaXJlY3Rpb24gPT0gbHRyIHtcblx0XHQvLyBcdFtkaXI9XCJydGxcIl0gJiB7XG5cdFx0Ly8gXHRcdGxlZnQ6ICR3aWR0aCAqIC0xO1xuXHRcdC8vIFx0fVxuXHRcdC8vIH1cblxuXHRcdC8vIHNldCB2YWx1ZSA6XG5cdFx0QGlmICRkaXJlY3Rpb24gPT0gcnRsIHsgcmlnaHQ6JHdpZHRoO2xlZnQ6YXV0bzsgfVxuXHRcdEBlbHNlIHsgbGVmdDokd2lkdGg7cmlnaHQ6YXV0bzsgfVxuXHRcdC8vIGhhbmRsZSBkaXJlY3Rpb24gYXR0cmlidXRlXG5cdFx0QGlmIGdyaWRsZV9nZXRfc3RhdGVfdmFyKGRpci1hdHRyaWJ1dGUpIHtcblx0XHRcdFtkaXI9XCJydGxcIl0gJiB7XG5cdFx0XHRcdHJpZ2h0OiAkd2lkdGg7XG5cdFx0XHR9XG5cdFx0XHRbZGlyPVwibHRyXCJdICYge1xuXHRcdFx0XHRsZWZ0OiAkd2lkdGg7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cblxuLy9cbi8vIFB1bGxcbi8vXG5AbWl4aW4gX2dyaWRsZV9jb21tb25fcHVsbChcblx0JHN0YXRlIDogZGVmYXVsdFxuKSB7XG5cdC8vIGNzc1xuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0Ly8gaGFuZGxlIGRpcmVjdGlvbiBhdHRyaWJ1dGVcblx0QGlmIGdyaWRsZV9nZXRfc3RhdGVfdmFyKGRpci1hdHRyaWJ1dGUsICRzdGF0ZSkge1xuXHRcdFtkaXI9XCJydGxcIl0gJiB7XG5cdFx0XHRyaWdodDogYXV0bztcblx0XHR9XG5cdFx0W2Rpcj1cImx0clwiXSAmIHtcblx0XHRcdGxlZnQ6IGF1dG87XG5cdFx0fVxuXHR9XG59XG5AbWl4aW4gZ3JpZGxlX3B1bGwoXG5cdCRjb2x1bW5zLFxuXHQkY29udGV4dCA6IG51bGxcbikge1xuXHRAaW5jbHVkZSBfZ3JpZGxlX2NhbGwocHVsbCkge1xuXHRcdC8vIHZhcmlhYmxlcyA6XG5cdFx0QGlmIHR5cGUtb2YoJGNvbnRleHQpICE9IG51bWJlciB7XG5cdFx0XHQkY29udGV4dCA6IGdyaWRsZV9nZXRfc3RhdGVfdmFyKGNvbnRleHQpO1xuXHRcdH1cblx0XHQkZGlyZWN0aW9uIDogZ3JpZGxlX2dldF9zdGF0ZV92YXIoZGlyZWN0aW9uKTtcblx0XHQkbmFtZS1tdWx0aXBsaWNhdG9yIDogZ3JpZGxlX2dldF9zdGF0ZV92YXIobmFtZS1tdWx0aXBsaWNhdG9yKTtcblx0XHQkY29sdW1uLXdpZHRoIDogZ3JpZGxlX2dldF9zdGF0ZV92YXIoY29sdW1uLXdpZHRoKTtcblxuXHRcdC8vIHZhcnMgOlxuXHRcdCR3aWR0aCA6IDA7XG5cdFx0QGlmICRjb2x1bW4td2lkdGgge1xuXHRcdFx0JHdpZHRoIDogJGNvbHVtbi13aWR0aCAqICgkY29sdW1ucyAvICRuYW1lLW11bHRpcGxpY2F0b3IpO1xuXHRcdH0gQGVsc2Uge1xuXHRcdFx0JHdpZHRoIDogcGVyY2VudGFnZSgxIC8gJGNvbnRleHQpICogKCRjb2x1bW5zIC8gJG5hbWUtbXVsdGlwbGljYXRvcik7XG5cdFx0fVxuXHRcdC8vIEBpZiAkZGlyZWN0aW9uID09IHJ0bCB7ICR3aWR0aCA6ICR3aWR0aCotMTsgfVxuXHRcdC8vIHJpZ2h0OiR3aWR0aDtcblx0XHQvLyBAaWYgJGRpcmVjdGlvbiA9PSBsdHIge1xuXHRcdC8vIFx0W2Rpcj1cInJ0bFwiXSAmIHtcblx0XHQvLyBcdFx0bGVmdDogJHdpZHRoICogLTE7XG5cdFx0Ly8gXHR9XG5cdFx0Ly8gfVxuXG5cdFx0Ly8gc2V0IHZhbHVlIDpcblx0XHRAaWYgJGRpcmVjdGlvbiA9PSBydGwgeyBsZWZ0OiR3aWR0aDtyaWdodDphdXRvOyB9XG5cdFx0QGVsc2UgeyByaWdodDokd2lkdGg7bGVmdDphdXRvOyB9XG5cdFx0Ly8gaGFuZGxlIGRpcmVjdGlvbiBhdHRyaWJ1dGVcblx0XHRAaWYgZ3JpZGxlX2dldF9zdGF0ZV92YXIoZGlyLWF0dHJpYnV0ZSkge1xuXHRcdFx0W2Rpcj1cInJ0bFwiXSAmIHtcblx0XHRcdFx0bGVmdDogJHdpZHRoO1xuXHRcdFx0fVxuXHRcdFx0W2Rpcj1cImx0clwiXSAmIHtcblx0XHRcdFx0cmlnaHQ6ICR3aWR0aDtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuXG4vL1xuLy8gUHJlZml4XG4vL1xuQG1peGluIF9ncmlkbGVfY29tbW9uX3ByZWZpeChcblx0JHN0YXRlIDogZGVmYXVsdFxuKSB7XG5cdC8vIGhhbmRsZSBkaXJlY3Rpb24gYXR0cmlidXRlXG5cdEBpZiBncmlkbGVfZ2V0X3N0YXRlX3ZhcihkaXItYXR0cmlidXRlLCAkc3RhdGUpIHtcblx0XHRbZGlyPVwicnRsXCJdICYge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IGF1dG87XG5cdFx0fVxuXHRcdFtkaXI9XCJsdHJcIl0gJiB7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IGF1dG87XG5cdFx0fVxuXHR9XG59XG5AbWl4aW4gZ3JpZGxlX3ByZWZpeChcblx0JGNvbHVtbnMsXG5cdCRjb250ZXh0IDogbnVsbFxuKSB7XG5cdEBpbmNsdWRlIF9ncmlkbGVfY2FsbChwcmVmaXgpIHtcblx0XHQvLyB2YXJzIDpcblx0XHRAaWYgdHlwZS1vZigkY29udGV4dCkgIT0gbnVtYmVyIHtcblx0XHRcdCRjb250ZXh0IDogZ3JpZGxlX2dldF9zdGF0ZV92YXIoY29udGV4dCk7XG5cdFx0fVxuXHRcdCRkaXJlY3Rpb24gOiBncmlkbGVfZ2V0X3N0YXRlX3ZhcihkaXJlY3Rpb24pO1xuXHRcdCRuYW1lLW11bHRpcGxpY2F0b3IgOiBncmlkbGVfZ2V0X3N0YXRlX3ZhcihuYW1lLW11bHRpcGxpY2F0b3IpO1xuXHRcdCRjb2x1bW4td2lkdGggOiBncmlkbGVfZ2V0X3N0YXRlX3Zhcihjb2x1bW4td2lkdGgpO1xuXG5cdFx0Ly8gdmFycyA6XG5cdFx0JHdpZHRoIDogMDtcblx0XHRAaWYgJGNvbHVtbi13aWR0aCB7XG5cdFx0XHQkd2lkdGggOiAkY29sdW1uLXdpZHRoICogKCRjb2x1bW5zIC8gJG5hbWUtbXVsdGlwbGljYXRvcik7XG5cdFx0fSBAZWxzZSB7XG5cdFx0XHQkd2lkdGggOiBwZXJjZW50YWdlKDEgLyAkY29udGV4dCkgKiAoJGNvbHVtbnMgLyAkbmFtZS1tdWx0aXBsaWNhdG9yKTtcblx0XHR9XG5cblx0XHQvLyBzZXQgdmFsdWUgOlxuXHRcdEBpZiAkZGlyZWN0aW9uID09IHJ0bCB7IG1hcmdpbi1yaWdodDokd2lkdGg7IH1cblx0XHRAZWxzZSB7IG1hcmdpbi1sZWZ0OiR3aWR0aDsgfVxuXHRcdC8vIGhhbmRsZSBkaXJlY3Rpb24gYXR0cmlidXRlXG5cdFx0QGlmIGdyaWRsZV9nZXRfc3RhdGVfdmFyKGRpci1hdHRyaWJ1dGUpIHtcblx0XHRcdFtkaXI9XCJydGxcIl0gJiB7XG5cdFx0XHRcdG1hcmdpbi1yaWdodDogJHdpZHRoO1xuXHRcdFx0fVxuXHRcdFx0W2Rpcj1cImx0clwiXSAmIHtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6ICR3aWR0aDtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuXG4vL1xuLy8gU3VmZml4XG4vL1xuQG1peGluIF9ncmlkbGVfY29tbW9uX3N1ZmZpeChcblx0JHN0YXRlIDogZGVmYXVsdFxuKSB7XG5cdEBpZiBncmlkbGVfZ2V0X3N0YXRlX3ZhcihkaXItYXR0cmlidXRlLCAkc3RhdGUpIHtcblx0XHRbZGlyPVwicnRsXCJdICYge1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiBhdXRvO1xuXHRcdH1cblx0XHRbZGlyPVwibHRyXCJdICYge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IGF1dG87XG5cdFx0fVxuXHR9XG59XG5AbWl4aW4gZ3JpZGxlX3N1ZmZpeChcblx0JGNvbHVtbnMsXG5cdCRjb250ZXh0IDogbnVsbFxuKSB7XG5cdEBpbmNsdWRlIF9ncmlkbGVfY2FsbChzdWZmaXgpIHtcblx0XHQvLyB2YXJzIDpcblx0XHRAaWYgdHlwZS1vZigkY29udGV4dCkgIT0gbnVtYmVyIHtcblx0XHRcdCRjb250ZXh0IDogZ3JpZGxlX2dldF9zdGF0ZV92YXIoY29udGV4dCk7XG5cdFx0fVxuXHRcdCRkaXJlY3Rpb24gOiBncmlkbGVfZ2V0X3N0YXRlX3ZhcihkaXJlY3Rpb24pO1xuXHRcdCRuYW1lLW11bHRpcGxpY2F0b3IgOiBncmlkbGVfZ2V0X3N0YXRlX3ZhcihuYW1lLW11bHRpcGxpY2F0b3IpO1xuXHRcdCRjb2x1bW4td2lkdGggOiBncmlkbGVfZ2V0X3N0YXRlX3Zhcihjb2x1bW4td2lkdGgpO1xuXG5cdFx0Ly8gdmFycyA6XG5cdFx0JHdpZHRoIDogMDtcblx0XHRAaWYgJGNvbHVtbi13aWR0aCB7XG5cdFx0XHQkd2lkdGggOiAkY29sdW1uLXdpZHRoICogKCRjb2x1bW5zIC8gJG5hbWUtbXVsdGlwbGljYXRvcik7XG5cdFx0fSBAZWxzZSB7XG5cdFx0XHQkd2lkdGggOiBwZXJjZW50YWdlKDEgLyAkY29udGV4dCkgKiAoJGNvbHVtbnMgLyAkbmFtZS1tdWx0aXBsaWNhdG9yKTtcblx0XHR9XG5cblx0XHQvLyBzZXQgdmFsdWUgOlxuXHRcdEBpZiAkZGlyZWN0aW9uID09IHJ0bCB7IG1hcmdpbi1sZWZ0OiR3aWR0aDsgfVxuXHRcdEBlbHNlIHsgbWFyZ2luLXJpZ2h0OiR3aWR0aDsgfVxuXG5cdFx0Ly8gaGFuZGxlIGRpcmVjdGlvbiBhdHRyaWJ1dGVcblx0XHRAaWYgZ3JpZGxlX2dldF9zdGF0ZV92YXIoZGlyLWF0dHJpYnV0ZSkge1xuXHRcdFx0W2Rpcj1cInJ0bFwiXSAmIHtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6ICR3aWR0aDtcblx0XHRcdH1cblx0XHRcdFtkaXI9XCJsdHJcIl0gJiB7XG5cdFx0XHRcdG1hcmdpbi1yaWdodDogJHdpZHRoO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG5cbi8vXG4vLyBSb3cgZGVidWdcbi8vXG5AbWl4aW4gX2dyaWRsZV9jb21tb25fcm93X2RlYnVnKFxuXHQkc3RhdGUgOiBkZWZhdWx0XG4pIHtcbn1cbkBtaXhpbiBncmlkbGVfcm93X2RlYnVnKFxuXHQkc3RhdGVzIDogbnVsbFxuKSB7XG5cdEBpbmNsdWRlIF9ncmlkbGVfY2FsbChyb3ctZGVidWcpIHtcblx0XHQvLyB2YXJpYWJsZXMgOlxuXHRcdCRjb250ZXh0IDogZ3JpZGxlX2dldF9zdGF0ZV92YXIoY29udGV4dCk7XG5cblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHR6LWluZGV4Ojk5OTk5O1xuXHRcdG92ZXJmbG93OmhpZGRlbjtcblxuXHRcdCY6YmVmb3JlIHtcblx0XHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRcdFx0Y29udGVudDonJztcblx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xuXHRcdFx0dG9wOjA7IGxlZnQ6MDtcblx0XHRcdHdpZHRoOjEwMCU7IGhlaWdodDo5OTk5OXB4O1xuXHRcdFx0Ly8gdmFycyA6XG5cdFx0XHQkd2lkdGggOiBwZXJjZW50YWdlKDEgLyAkY29udGV4dCk7XG5cdFx0XHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMCwwLDAsMCkgNTAlICwgcmdiYSgwLDAsMCwuMDIpIDUwJSk7IC8vIFN0YW5kYXJkIHN5bnRheFxuXHRcdFx0YmFja2dyb3VuZC1zaXplOigkd2lkdGgqMikgMTAwJTtcblx0XHRcdHotaW5kZXg6OTk5OTk7XG5cdFx0fVxuXHR9XG59XG5cblxuLy9cbi8vIERlYnVnXG4vL1xuQG1peGluIGdyaWRsZV9kZWJ1Zyhcblx0JHdoYXQsXG5cdCRvdXRwdXQgOiBzaGVsbFxuKSB7XG5cdEBpZiAkZ3JpZGxlLWRlYnVnIHtcblx0XHRAaWYgJG91dHB1dCA9PSBzaGVsbCB7XG5cdFx0XHRAZGVidWcoaW5zcGVjdCgkd2hhdCkpO1xuXHRcdH0gQGVsc2Uge1xuXHRcdFx0QGlmIHR5cGUtb2YoJHdoYXQpID09IG1hcCB7XG5cdFx0XHRcdEBpbmNsdWRlIGdyaWRsZV9kZWJ1Z19tYXAoJHdoYXQpO1xuXHRcdFx0fSBAZWxzZSB7XG5cdFx0XHRcdEBfIHtcblx0XHRcdFx0XHQje3R5cGUtb2YoJHdoYXQpfSA6IGluc3BlY3QoJHdoYXQpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cblxuLy9cbi8vIERlYnVnIGEgbWFwXG4vL1xuQG1peGluIGdyaWRsZV9kZWJ1Z19tYXAoJG1hcCwgJG5hbWUgOiAnJykge1xuXHRAYXQtcm9vdCB7XG5cdFx0QF8gI3skbmFtZX0ge1xuXHRcdFx0QGVhY2ggJGtleSwgJHZhbHVlIGluICRtYXAge1xuXHRcdFx0XHRAaWYgdHlwZS1vZigkdmFsdWUpID09IG1hcCB7XG5cdFx0XHRcdFx0QGluY2x1ZGUgZ3JpZGxlX2RlYnVnX21hcCgkdmFsdWUsICRrZXkpO1xuXHRcdFx0XHR9IEBlbHNlIHtcblx0XHRcdFx0XHQjeyRrZXl9OiBpbnNwZWN0KCR2YWx1ZSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuXG4vL1xuLy8gQ29udGFpbmVyXG4vL1xuQG1peGluIF9ncmlkbGVfY29tbW9uX2NvbnRhaW5lcihcblx0JHN0YXRlIDogZGVmYXVsdFxuKSB7XG5cdCY6YWZ0ZXIge1xuXHRcdGNvbnRlbnQ6IFwiXCI7XG5cdFx0ZGlzcGxheTogdGFibGU7XG5cdFx0Y2xlYXI6IGJvdGg7XG5cdH1cblxufVxuQG1peGluIGdyaWRsZV9jb250YWluZXIoXG4pIHtcblx0QGluY2x1ZGUgX2dyaWRsZV9jYWxsKGNvbnRhaW5lcikge1xuXHR9XG59XG5cblxuLy9cbi8vIENlbnRlcmVkXG4vL1xuQG1peGluIF9ncmlkbGVfY29tbW9uX2dyaWRfY2VudGVyZWQoXG5cdCRzdGF0ZSA6IGRlZmF1bHRcbikge1xuXHRkaXNwbGF5OmJsb2NrICFpbXBvcnRhbnQ7XG5cdGZsb2F0Om5vbmUgIWltcG9ydGFudDtcblx0bWFyZ2luLWxlZnQ6YXV0byAhaW1wb3J0YW50O1xuXHRtYXJnaW4tcmlnaHQ6YXV0byAhaW1wb3J0YW50O1xuXHRjbGVhcjpib3RoICFpbXBvcnRhbnQ7XG59XG5AbWl4aW4gZ3JpZGxlX2dyaWRfY2VudGVyZWQoXG4pIHtcblx0QGluY2x1ZGUgX2dyaWRsZV9jYWxsKGdyaWQtY2VudGVyZWQpIHtcblx0fVxufVxuXG5cbi8vXG4vLyBIaWRlXG4vL1xuQG1peGluIF9ncmlkbGVfY29tbW9uX2hpZGUoXG5cdCRzdGF0ZSA6IGRlZmF1bHRcbikge1xufVxuQG1peGluIGdyaWRsZV9oaWRlKFxuKSB7XG5cdEBpbmNsdWRlIF9ncmlkbGVfY2FsbChoaWRlKSB7XG5cdFx0ZGlzcGxheTpub25lO1xuXHR9XG59XG5cblxuLy9cbi8vIE5vdCB2aXNpYmxlIG9uXG4vL1xuQG1peGluIF9ncmlkbGVfY29tbW9uX25vdF92aXNpYmxlKFxuXHQkc3RhdGUgOiBkZWZhdWx0XG4pIHtcbn1cbkBtaXhpbiBncmlkbGVfbm90X3Zpc2libGUoXG4pIHtcblx0QGluY2x1ZGUgX2dyaWRsZV9jYWxsKG5vdC12aXNpYmxlKSB7XG5cdFx0dmlzaWJpbGl0eTpoaWRkZW47XG5cdH1cbn1cblxuXG4vL1xuLy8gU2hvdyBvblxuLy9cbi8vIEBwYXJhbSBcdFN0cmluZyBcdCRtZWRpYSBcdFdoYXQgdG8gaGlkZSAob25lIG9mIHRoZSAzIHN0YXRlIGNsYXNzZXMgbmFtZSlcbi8vXG5AbWl4aW4gX2dyaWRsZV9jb21tb25fc2hvdyhcblx0JHN0YXRlIDogZGVmYXVsdFxuKSB7XG59XG5AbWl4aW4gZ3JpZGxlX3Nob3coXG4pIHtcblx0QGluY2x1ZGUgX2dyaWRsZV9jYWxsKHNob3cpIHtcblx0XHRkaXNwbGF5OmJsb2NrO1xuXHR9XG59XG5cblxuLy9cbi8vIFNob3cgaW5saW5lXG4vL1xuLy8gQHBhcmFtIFx0U3RyaW5nIFx0XHQkc3RhdGUgXHRcdFRoZSBzdGF0ZSBuYW1lXG4vL1xuQG1peGluIF9ncmlkbGVfY29tbW9uX3Nob3dfaW5saW5lKFxuXHQkc3RhdGUgOiBkZWZhdWx0XG4pIHtcbn1cbkBtaXhpbiBncmlkbGVfc2hvd19pbmxpbmUoXG4pIHtcblx0QGluY2x1ZGUgX2dyaWRsZV9jYWxsKHNob3ctaW5saW5lKSB7XG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdH1cbn1cblxuXG4vL1xuLy8gVmlzaWJsZSBvbiA6XG4vLyBAcGFyYW0gXHRTdHJpbmcgXHQkbWVkaWEgXHRPbiB3aGF0IHN0YXRlXG4vL1xuQG1peGluIF9ncmlkbGVfY29tbW9uX3Zpc2libGUoXG5cdCRzdGF0ZSA6IGRlZmF1bHRcbikge1xufVxuQG1peGluIGdyaWRsZV92aXNpYmxlKFxuKSB7XG5cdEBpbmNsdWRlIF9ncmlkbGVfY2FsbCh2aXNpYmxlKSB7XG5cdFx0dmlzaWJpbGl0eTp2aXNpYmxlO1xuXHR9XG59XG5cblxuLy9cbi8vIEZsb2F0IDpcbi8vXG5AbWl4aW4gX2dyaWRsZV9jb21tb25fZmxvYXQoXG5cdCRzdGF0ZSA6IGRlZmF1bHRcbikge1xufVxuQG1peGluIGdyaWRsZV9mbG9hdChcblx0JGZsb2F0LWRpcmVjdGlvbiA6IGxlZnRcbikge1xuXHRAaW5jbHVkZSBfZ3JpZGxlX2NhbGwoZmxvYXQpIHtcblx0XHRmbG9hdDojeyRmbG9hdC1kaXJlY3Rpb259O1xuXHR9XG59XG5cblxuLy9cbi8vIEdyaWRsZSBjbGVhciA6XG4vL1xuQG1peGluIF9ncmlkbGVfY29tbW9uX2NsZWFyKFxuXHQkc3RhdGUgOiBkZWZhdWx0XG4pIHtcbn1cbkBtaXhpbiBncmlkbGVfY2xlYXIoXG5cdCRjbGVhci1kaXJlY3Rpb24gOiBib3RoXG4pIHtcblx0QGluY2x1ZGUgX2dyaWRsZV9jYWxsKGNsZWFyKSB7XG5cdFx0Y2xlYXI6I3skY2xlYXItZGlyZWN0aW9ufTtcblx0fVxufVxuXG5cbi8vXG4vLyBHcmlkbGUgbm8gZ3V0dGVyIDpcbi8vXG5AbWl4aW4gX2dyaWRsZV9jb21tb25fbm9fZ3V0dGVyKFxuXHQkc3RhdGUgOiBkZWZhdWx0XG4pIHtcbn1cbkBtaXhpbiBncmlkbGVfbm9fZ3V0dGVyKFxuXHQkc2lkZSA6IHRvcCByaWdodCBib3R0b20gbGVmdFxuKSB7XG5cdEBpbmNsdWRlIF9ncmlkbGVfY2FsbChuby1ndXR0ZXIpIHtcblx0XHRAZWFjaCAkcyBpbiAkc2lkZSB7XG5cdFx0XHRwYWRkaW5nLSN7JHN9IDogMDtcblx0XHR9XG5cdH1cbn1cblxuXG4vL1xuLy8gR3JpZGxlIGd1dHRlciA6XG4vL1xuQG1peGluIF9ncmlkbGVfY29tbW9uX2d1dHRlcihcblx0JHN0YXRlIDogZGVmYXVsdFxuKSB7XG59XG5AbWl4aW4gZ3JpZGxlX2d1dHRlcihcblx0JHNpZGUtb3Itc2l6ZSA6IHRvcCByaWdodCBib3R0b20gbGVmdFxuKSB7XG5cdEBpbmNsdWRlIF9ncmlkbGVfY2FsbChndXR0ZXIpIHtcblxuXHRcdC8vIGdldCBhIGd1dHRlciBtYXBcblx0XHQkZ3V0dGVycyA6IF9ncmlkbGVfZm9yZ2VfZ3V0dGVyc19tYXAoJHNpZGUtb3Itc2l6ZSk7XG5cblx0XHQvLyBjaGVjayB0aGF0IHdlIGhhdmUgYSBndXR0ZXIgbWFwXG5cdFx0QGVhY2ggJHNpZGUsICR2YWx1ZSBpbiAkZ3V0dGVycyB7XG5cdFx0XHRAaWYgJHZhbHVlIGFuZCAkdmFsdWUgPiAwIHtcblx0XHRcdFx0cGFkZGluZy0jeyRzaWRlfSA6ICR2YWx1ZTtcblx0XHRcdH1cblx0XHR9XG5cblx0fVxufVxuIiwiLy9cbi8vIFJvd1xuLy9cbkBtaXhpbiBfZ3JpZGxlX2NvbW1vbl9yb3coXG5cdCRzdGF0ZSA6IGRlZmF1bHRcbikge1xuXHQvLyBGb3IgbW9kZXJuIGJyb3dzZXJcblx0JjpiZWZvcmUsXG5cdCY6YWZ0ZXIge1xuXHRcdGNvbnRlbnQ6XCJcIjtcblx0XHRkaXNwbGF5OnRhYmxlO1xuXHR9XG5cdCY6YWZ0ZXIge1xuXHRcdGNsZWFyOmJvdGg7XG5cdH1cblx0Ly8gRm9yIElFIDYvNyAodHJpZ2dlciBoYXNMYXlvdXRcblx0JiB7XG5cdCAgIHpvb206MTtcblx0fVxufVxuQG1peGluIGdyaWRsZV9yb3coXG5cdCRyZXZlcnNlIDogZmFsc2Vcbikge1xuXHRAaW5jbHVkZSBfZ3JpZGxlX2NhbGwocm93KSB7XG5cdFx0cGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG5cdFx0cGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50O1xuXHRcdG1hcmdpbi1sZWZ0OiAtI3tncmlkbGVfZ2V0X3N0YXRlX3ZhcihndXR0ZXItbGVmdCl9O1xuXHRcdG1hcmdpbi1yaWdodDogLSN7Z3JpZGxlX2dldF9zdGF0ZV92YXIoZ3V0dGVyLXJpZ2h0KX07XG5cdFx0Ly8gZm9udC1zaXplOjA7IC8vIHRvIGF2b2lkIHByb2JsZW1zIHdpdGggaW5saW5lLWJsb2NrIG1hcmdpbnNcblxuXHRcdEBpZiAkcmV2ZXJzZSB7XG5cdFx0XHR0cmFuc2Zvcm0gOiByb3RhdGVZKDE4MGRlZyk7XG5cblx0XHRcdD4gI3tfZ3JpZGxlX2dldF9nZW5lcmljX3NlbGVjdG9yKGdyaWQpfSB7XG5cdFx0XHRcdHRyYW5zZm9ybSA6IHJvdGF0ZVkoLTE4MGRlZyk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0I3tfZ3JpZGxlX2dldF9nZW5lcmljX3NlbGVjdG9yKG5vLWd1dHRlcil9ID4gJiB7XG5cdFx0XHRtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG5cdFx0fVxuXG5cdFx0Ly8gZG8gdGhpcyBvbmx5IHdoZW4gbm90IGluIGdlbmVyYXRlIHBoYXNlXG5cdFx0Ly8gbWVhbiB0aGF0IHdlIHVzZSB0aGUgbWl4aW4gZGlyZWN0bHlcblx0XHRAaWYgX2dyaWRsZV9pc19pbl9nZW5lcmF0ZV9waGFzZSgpID09IGZhbHNlIHtcblx0XHRcdEBlYWNoICRzdGF0ZU5hbWUsICRzdGF0ZSBpbiBncmlkbGVfZ2V0X3N0YXRlcygpIHtcblx0XHRcdFx0QGluY2x1ZGUgZ3JpZGxlX3N0YXRlKCRzdGF0ZSkge1xuXHRcdFx0XHRcdCYgI3tzdHItcmVwbGFjZSh1bnF1b3RlKFwiI3smfVwiKSxcIi5zdGF0ZS0je2dyaWRsZV9nZXRfc3RhdGVfdmFyKG5hbWUsICRzdGF0ZSl9XCIsXCJcIil9IHtcblx0XHRcdFx0XHRcdG1hcmdpbi1sZWZ0OiAtI3tncmlkbGVfZ2V0X3N0YXRlX3ZhcihndXR0ZXItbGVmdCwgJHN0YXRlKX07XG5cdFx0XHRcdFx0XHRtYXJnaW4tcmlnaHQ6IC0je2dyaWRsZV9nZXRfc3RhdGVfdmFyKGd1dHRlci1yaWdodCwgJHN0YXRlKX07XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cblxuLy9cbi8vIENvbFxuLy9cbkBtaXhpbiBfZ3JpZGxlX2NvbW1vbl9jb2woXG5cdCRzdGF0ZSA6IGRlZmF1bHRcbikge1xufVxuQG1peGluIGdyaWRsZV9jb2woXG5cdCRyZXZlcnNlIDogZmFsc2Vcbikge1xuXHRAaW5jbHVkZSBfZ3JpZGxlX2NhbGwoY29sKSB7XG5cdFx0cGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG5cdFx0cGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50O1xuXHRcdG1hcmdpbi1sZWZ0OiAtI3tncmlkbGVfZ2V0X3N0YXRlX3ZhcihndXR0ZXItbGVmdCl9O1xuXHRcdG1hcmdpbi1yaWdodDogLSN7Z3JpZGxlX2dldF9zdGF0ZV92YXIoZ3V0dGVyLXJpZ2h0KX07XG5cdFx0Ly8gZm9udC1zaXplOjA7IC8vIHRvIGF2b2lkIHByb2JsZW1zIHdpdGggaW5saW5lLWJsb2NrIG1hcmdpbnNcblxuXHRcdEBpZiAkcmV2ZXJzZSB7XG5cdFx0XHR0cmFuc2Zvcm0gOiByb3RhdGVYKDE4MGRlZyk7XG5cblx0XHRcdD4gI3tfZ3JpZGxlX2dldF9nZW5lcmljX3NlbGVjdG9yKGdyaWQpfSB7XG5cdFx0XHRcdHRyYW5zZm9ybSA6IHJvdGF0ZVgoLTE4MGRlZyk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gZG8gdGhpcyBvbmx5IHdoZW4gbm90IGluIGdlbmVyYXRlIHBoYXNlXG5cdFx0Ly8gbWVhbiB0aGF0IHdlIHVzZSB0aGUgbWl4aW4gZGlyZWN0bHlcblx0XHRAaWYgX2dyaWRsZV9pc19pbl9nZW5lcmF0ZV9waGFzZSgpID09IGZhbHNlIHtcblx0XHRcdEBlYWNoICRzdGF0ZU5hbWUsICRzdGF0ZSBpbiBncmlkbGVfZ2V0X3N0YXRlcygpIHtcblx0XHRcdFx0QGluY2x1ZGUgZ3JpZGxlX3N0YXRlKCRzdGF0ZSkge1xuXHRcdFx0XHRcdCYgI3tzdHItcmVwbGFjZSgjeyZ9LFwiLnN0YXRlLSN7Z3JpZGxlX2dldF9zdGF0ZV92YXIobmFtZSwgJHN0YXRlKX1cIixcIlwiKX0ge1xuXHRcdFx0XHRcdFx0bWFyZ2luLWxlZnQ6IC0je2dyaWRsZV9nZXRfc3RhdGVfdmFyKGd1dHRlci1sZWZ0LCAkc3RhdGUpfTtcblx0XHRcdFx0XHRcdG1hcmdpbi1yaWdodDogLSN7Z3JpZGxlX2dldF9zdGF0ZV92YXIoZ3V0dGVyLXJpZ2h0LCAkc3RhdGUpfTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuXG4vL1xuLy8gTm93cmFwXG4vL1xuQG1peGluIF9ncmlkbGVfY29tbW9uX25vd3JhcChcblx0JHN0YXRlIDogZGVmYXVsdFxuKSB7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cblx0PiAqIHtcblx0XHR3aGl0ZS1zcGFjZTogbm9ybWFsO1xuXHR9XG59XG5AbWl4aW4gZ3JpZGxlX25vd3JhcCgpIHtcblx0QGluY2x1ZGUgX2dyaWRsZV9jYWxsKG5vd3JhcCkge1xuXHR9XG59XG5cblxuLy9cbi8vIFdyYXBcbi8vXG5AbWl4aW4gX2dyaWRsZV9jb21tb25fd3JhcChcblx0JHN0YXRlIDogZGVmYXVsdFxuKSB7XG5cdHdoaXRlLXNwYWNlOm5vcm1hbDtcbn1cbkBtaXhpbiBncmlkbGVfd3JhcCgpIHtcblx0QGluY2x1ZGUgX2dyaWRsZV9jYWxsKHdyYXApIHtcblx0fVxufVxuXG5cbi8vXG4vLyBHcmlkXG4vL1xuQG1peGluIF9ncmlkbGVfY29tbW9uX2dyaWQoXG5cdCRzdGF0ZSA6IGRlZmF1bHRcbikge1xuXHQvLyB2YXJzXG5cdCRkaXJlY3Rpb24gOiBncmlkbGVfZ2V0X3N0YXRlX3ZhcihkaXJlY3Rpb24sICRzdGF0ZSk7XG5cblx0Ly8gY3NzXG5cdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHRtaW4taGVpZ2h0OjFweDtcblx0QGlmICRkaXJlY3Rpb24gPT0gcnRsIHtcblx0XHRmbG9hdDpyaWdodDtcblx0fSBAZWxzZSB7XG5cdFx0ZmxvYXQ6bGVmdDtcblx0fVxuXHRAaWYgJGdyaWRsZS12ZW5kb3ItcHJlZml4IHtcblx0XHQtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0LW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHR9XG5cdC8vIGZvbnQtc2l6ZToxcmVtOyAvLyByZXNldCB0aGUgZm9udCBzaXplXG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdHZlcnRpY2FsLWFsaWduOiB0b3A7XG5cdEBpbmNsdWRlIGdyaWRsZV9ndXR0ZXIoKTtcblxuXHQvLyBoYW5kbGUgZGlyZWN0aW9uIGF0dHJpYnV0ZVxuXHRAaWYgZ3JpZGxlX2dldF9zdGF0ZV92YXIoZGlyLWF0dHJpYnV0ZSwgJHN0YXRlKSB7XG5cdFx0W2Rpcj1cInJ0bFwiXSAmIHtcblx0XHRcdGZsb2F0OiByaWdodDtcblx0XHR9XG5cdFx0W2Rpcj1cImx0clwiXSAmIHtcblx0XHRcdGZsb2F0OiBsZWZ0O1xuXHRcdH1cblx0fVxuXG59XG5AbWl4aW4gZ3JpZGxlX2dyaWQoXG5cdCRjb2x1bW5zLFxuXHQkY29udGV4dCA6IG51bGxcbikge1xuXHRAaWYgJGNvbHVtbnMgPT0gZ3JvdyB7XG5cdFx0QGluY2x1ZGUgZ3JpZGxlX2dyaWRfZ3JvdygpO1xuXHR9IEBlbHNlIGlmICRjb2x1bW5zID09IGFkYXB0IHtcblx0XHRAaW5jbHVkZSBncmlkbGVfZ3JpZF9hZGFwdCgpO1xuXHR9IEBlbHNlIHtcblxuXHRcdEBpbmNsdWRlIF9ncmlkbGVfY2FsbChncmlkKSB7XG5cblx0XHRcdC8vIHZhcnNcblx0XHRcdCRuYW1lIDogZ3JpZGxlX2dldF9zdGF0ZV92YXIobmFtZSk7XG5cdFx0XHRAaWYgdHlwZS1vZigkY29udGV4dCkgIT0gbnVtYmVyIHtcblx0XHRcdFx0JGNvbnRleHQgOiBncmlkbGVfZ2V0X3N0YXRlX3Zhcihjb250ZXh0KTtcblx0XHRcdH1cblx0XHRcdCRuYW1lLW11bHRpcGxpY2F0b3IgOiBncmlkbGVfZ2V0X3N0YXRlX3ZhcihuYW1lLW11bHRpcGxpY2F0b3IpO1xuXHRcdFx0JGd1dHRlci1sZWZ0IDogZ3JpZGxlX2dldF9zdGF0ZV92YXIoZ3V0dGVyLWxlZnQpO1xuXHRcdFx0JGd1dHRlci1yaWdodCA6IGdyaWRsZV9nZXRfc3RhdGVfdmFyKGd1dHRlci1yaWdodCk7XG5cdFx0XHQkY29sdW1uLXdpZHRoIDogZ3JpZGxlX2dldF9zdGF0ZV92YXIoY29sdW1uLXdpZHRoKTtcblxuXHRcdFx0Ly8gbWFuYWdlIGNvbHVtbnNcblx0XHRcdEBpZiB0eXBlLW9mKCRjb2x1bW5zKSAhPSBudW1iZXIgYW5kIGdyaWRsZV9oYXNfY29sdW1uKCRjb2x1bW5zKSB7XG5cdFx0XHRcdC8vIHRoZSBjb2x1bW5zIGlzIGEgc2F2ZWQgb25lLCBnZXQgdGhlIGNvbnRleHQgYW5kIGNvbHVtbiB2YWx1ZVxuXHRcdFx0XHQkY29sdW1uIDogbWFwLWdldCgkX2dyaWRsZV9jb2x1bW5zLCAkY29sdW1ucyk7XG5cdFx0XHRcdCRjb250ZXh0IDogbWFwLWdldCgkY29sdW1uLCBjb250ZXh0KTtcblx0XHRcdFx0JGNvbHVtbnMgOiBtYXAtZ2V0KCRjb2x1bW4sIGNvbHVtbnMpO1xuXHRcdFx0fSBAZWxzZSBpZiB0eXBlLW9mKCRjb2x1bW5zKSA9PSBudW1iZXIge1xuXHRcdFx0XHQvLyBjaGVjayBpZiB3ZSBoYXZlIGEgcmF0aW9cblx0XHRcdFx0QGlmICRjb2x1bW5zIDwgMSB7XG5cdFx0XHRcdFx0JGNvbHVtbnMgOiAkY29udGV4dCAvIDEwMCAqICgkY29sdW1ucyAqIDEwMCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0JGNvbHVtbnMgOiAkY29sdW1ucyAvICRuYW1lLW11bHRpcGxpY2F0b3I7XG5cdFx0XHR9IEBlbHNlIHtcblx0XHRcdFx0QGVycm9yIFwidGhlIGNvbHVtbiAjeyRjb2x1bW5zfSBkb2VzIG5vdCBleGlzdC4uLlwiO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyB3aWR0aCA6XG5cdFx0XHQkd2lkdGggOiAwO1xuXHRcdFx0QGlmICRjb2x1bW4td2lkdGgge1xuXHRcdFx0XHQkd2lkdGggOiAkY29sdW1uLXdpZHRoICogJGNvbHVtbnM7XG5cdFx0XHR9IEBlbHNlIHtcblx0XHRcdFx0JHdpZHRoIDogcGVyY2VudGFnZSgxIC8gJGNvbnRleHQgKiAkY29sdW1ucyk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIHNldCB2YWx1ZSA6XG5cdFx0XHR3aWR0aDokd2lkdGg7XG5cdFx0fVxuXHR9XG59XG5cblxuLy9cbi8vIEdyaWQgdGFibGVcbi8vXG5AbWl4aW4gX2dyaWRsZV9jb21tb25fZ3JpZF90YWJsZShcblx0JHN0YXRlIDogZGVmYXVsdFxuKSB7XG59XG5AbWl4aW4gZ3JpZGxlX2dyaWRfdGFibGUoXG4pIHtcblx0QGluY2x1ZGUgX2dyaWRsZV9jYWxsKGdyaWQtdGFibGUpIHtcblx0XHRkaXNwbGF5OiB0YWJsZS1jZWxsO1xuXHRcdGZsb2F0OiBub25lO1xuXHRcdHZlcnRpY2FsLWFsaWduOiB0b3A7XG5cdH1cbn1cblxuXG4vL1xuLy8gUm93IGZ1bGxcbi8vXG5AbWl4aW4gX2dyaWRsZV9jb21tb25fcm93X2Z1bGwoXG5cdCRzdGF0ZSA6IGRlZmF1bHRcbikge1xufVxuQG1peGluIGdyaWRsZV9yb3dfZnVsbChcbikge1xuXHRAaW5jbHVkZSBfZ3JpZGxlX2NhbGwocm93LWZ1bGwpIHtcblx0XHQkZGlyZWN0aW9uIDogZ3JpZGxlX2dldF9zdGF0ZV92YXIoZGlyZWN0aW9uKTtcblx0XHR3aWR0aDogMTAwdnc7XG5cdFx0QGlmICRkaXJlY3Rpb24gPT0gbHRyIHtcblx0XHRcdG1hcmdpbi1sZWZ0OjUwJSAhaW1wb3J0YW50O1xuXHRcdFx0bWFyZ2luLXJpZ2h0OjAgIWltcG9ydGFudDtcblx0XHRcdEBpZiAkZ3JpZGxlLXZlbmRvci1wcmVmaXgge1xuXHRcdFx0XHQtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblx0XHRcdFx0LW1vei10cmFuc2l0aW9uOiB0cmFuc2xhdGVYKC01MCUpO1xuXHRcdFx0XHQtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXHRcdFx0XHQtby10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cdFx0XHR9XG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cdFx0fSBAZWxzZSB7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6NTAlICFpbXBvcnRhbnQ7XG5cdFx0XHRtYXJnaW4tbGVmdDowICFpbXBvcnRhbnQ7XG5cdFx0XHRAaWYgJGdyaWRsZS12ZW5kb3ItcHJlZml4IHtcblx0XHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNTAlKTtcblx0XHRcdFx0LW1vei10cmFuc2l0aW9uOiB0cmFuc2xhdGVYKDUwJSk7XG5cdFx0XHRcdC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNTAlKTtcblx0XHRcdFx0LW8tdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDUwJSk7XG5cdFx0XHR9XG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNTAlKTtcblx0XHR9XG5cdFx0QGlmIGdyaWRsZV9nZXRfc3RhdGVfdmFyKGRpci1hdHRyaWJ1dGUpIHtcblx0XHRcdFtkaXI9XCJsdHJcIl0gJiB7XG5cdFx0XHRcdG1hcmdpbi1sZWZ0OjUwJSAhaW1wb3J0YW50O1xuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6MCAhaW1wb3J0YW50O1xuXHRcdFx0XHRAaWYgJGdyaWRsZS12ZW5kb3ItcHJlZml4IHtcblx0XHRcdFx0XHQtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblx0XHRcdFx0XHQtbW96LXRyYW5zaXRpb246IHRyYW5zbGF0ZVgoLTUwJSk7XG5cdFx0XHRcdFx0LW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblx0XHRcdFx0XHQtby10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cdFx0XHRcdH1cblx0XHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXHRcdFx0fVxuXHRcdFx0W2Rpcj1cInJ0bFwiXSAmIHtcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OjUwJSAhaW1wb3J0YW50O1xuXHRcdFx0XHRtYXJnaW4tbGVmdDowICFpbXBvcnRhbnQ7XG5cdFx0XHRcdEBpZiAkZ3JpZGxlLXZlbmRvci1wcmVmaXgge1xuXHRcdFx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDUwJSk7XG5cdFx0XHRcdFx0LW1vei10cmFuc2l0aW9uOiB0cmFuc2xhdGVYKDUwJSk7XG5cdFx0XHRcdFx0LW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWCg1MCUpO1xuXHRcdFx0XHRcdC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlWCg1MCUpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCg1MCUpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG5cbi8vXG4vLyBncmlkIGFkYXB0XG4vL1xuQG1peGluIF9ncmlkbGVfY29tbW9uX2dyaWRfYWRhcHQoXG5cdCRzdGF0ZSA6IGRlZmF1bHRcbikge1xuXHRkaXNwbGF5OiB0YWJsZS1jZWxsO1xuXHR3aWR0aDoxcHg7XG5cdHdoaXRlLXNwYWNlOm5vd3JhcCAhaW1wb3J0YW50O1xuXHRAaWYgJGdyaWRsZS12ZW5kb3ItcHJlZml4IHtcblx0XHQtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0LW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHR9XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdEBpbmNsdWRlIGdyaWRsZV9ndXR0ZXIoKTtcbn1cbkBtaXhpbiBncmlkbGVfZ3JpZF9hZGFwdChcbikge1xuXHRAaW5jbHVkZSBfZ3JpZGxlX2NhbGwoZ3JpZC1hZGFwdCkge1xuXHR9XG59XG5cblxuLy9cbi8vIEdyb3dcbi8vXG5AbWl4aW4gX2dyaWRsZV9jb21tb25fZ3JpZF9ncm93KFxuXHQkc3RhdGUgOiBkZWZhdWx0XG4pIHtcblx0ZGlzcGxheTogdGFibGUtY2VsbDtcblx0d2lkdGg6OTk5OTlweDtcblx0QGlmICRncmlkbGUtdmVuZG9yLXByZWZpeCB7XG5cdFx0LXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcblx0fVxuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRAaW5jbHVkZSBncmlkbGVfZ3V0dGVyKCk7XG5cbn1cbkBtaXhpbiBncmlkbGVfZ3JpZF9ncm93KFxuKSB7XG5cdEBpbmNsdWRlIF9ncmlkbGVfY2FsbChncmlkLWdyb3cpIHtcblx0fVxufVxuXG5cbi8vXG4vLyBPcmRlclxuLy9cbkBtaXhpbiBfZ3JpZGxlX2NvbW1vbl9vcmRlcihcblx0JHN0YXRlIDogZGVmYXVsdFxuKSB7XG59XG5AbWl4aW4gZ3JpZGxlX29yZGVyKFxuXHQkcG9zaXRpb25cbikge1xuXHRAaW5jbHVkZSBfZ3JpZGxlX2NhbGwob3JkZXIpIHtcblx0fVxufVxuXG5cbi8vXG4vLyBDbGVhciBlYWNoXG4vL1xuQG1peGluIF9ncmlkbGVfY29tbW9uX2NsZWFyX2VhY2goXG5cdCRzdGF0ZSA6IGRlZmF1bHRcbikge1xufVxuQG1peGluIGdyaWRsZV9jbGVhcl9lYWNoKFxuXHQkY2xlYXJFYWNoLFxuXHQkY2xlYXJXaGF0IDogYm90aFxuKSB7XG5cdEBpbmNsdWRlIF9ncmlkbGVfY2FsbChjbGVhci1lYWNoKSB7XG5cdFx0JGdyaWQgOiBtYXAtZ2V0KCRfZ3JpZGxlLXBhY2thZ2VzLCBncmlkKTtcblx0XHQkc2VsIDogbWFwLWdldCgkZ3JpZCwgZ2VuZXJpYy1zZWxlY3Rvcik7XG5cdFx0QGlmIG5vdCAkc2VsIHtcblx0XHRcdCRzZWwgOiBfZ3JpZGxlX2dldF9nZW5lcmljX3NlbGVjdG9yKGdyaWQpO1xuXHRcdH1cblxuXHRcdD4gI3skc2VsfTpudGgtb2YtdHlwZSgjeyRjbGVhckVhY2h9bisxKSB7XG5cdFx0XHRjbGVhciA6ICRjbGVhcldoYXQ7XG5cdFx0fVxuXHR9XG59XG5cblxuLy9cbi8vIEFsaWduIDpcbi8vXG5AbWl4aW4gX2dyaWRsZV9jb21tb25fcm93X2FsaWduKFxuXHQkc3RhdGUgOiBkZWZhdWx0XG4pIHtcbn1cblxuQG1peGluIGdyaWRsZV9yb3dfYWxpZ24oXG5cdCRhbGlnbiA6IG1pZGRsZVxuKSB7XG5cdEBpbmNsdWRlIF9ncmlkbGVfY2FsbChyb3ctYWxpZ24pIHtcblx0XHQvLyBuZWVkIHRvIGNoYW5nZSB0aGUgd2F5IGdyaWRzIGl0ZW1zIGFyZSBsYXllZCBvdXRcblx0XHRAaWYgaW4tbWFwKCRhbGlnbiwgdG9wKSBvZiBpbi1tYXAoJGFsaWduLCBtaWRkbGUpIG9yIGluLW1hcCgkYWxpZ24sIGJvdHRvbSkge1xuXHRcdFx0Zm9udC1zaXplOjA7XG5cdFx0XHRjbGVhcjpib3RoO1xuXG5cdFx0XHQ+ICoge1xuXHRcdFx0XHRmbG9hdDpub25lICFpbXBvcnRhbnQ7XG5cdFx0XHRcdEBpZiBpbi1tYXAoJGFsaWduLCB0b3ApIHtcblx0XHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjp0b3A7XG5cdFx0XHRcdH0gQGVsc2VpZiBpbi1tYXAoJGFsaWduLCBtaWRkbGUpIHtcblx0XHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XG5cdFx0XHRcdH0gQGVsc2Uge1xuXHRcdFx0XHRcdHZlcnRpY2FsLWFsaWduOmJvdHRvbTtcblx0XHRcdFx0fVxuXHRcdFx0XHRmb250LXNpemU6MXJlbTtcblx0XHRcdFx0QC1tb3otZG9jdW1lbnQgdXJsLXByZWZpeCgpIHtcblx0XHRcdFx0XHQmIHtcblx0XHRcdFx0XHRcdG1hcmdpbi1yaWdodDogLTAuNXB4OyAvLyBmaXggZmlyZWZveCB3ZWlyZCBpc3N1ZVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdEBlYWNoICRhIGluICRhbGlnbiB7XG5cdFx0XHRAaWYgJGEgPT0gbGVmdCB7XG5cdFx0XHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdFx0XHR9IEBlbHNlIGlmICRhID09IGNlbnRlciB7XG5cdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdH0gQGVsc2UgaWYgJGEgPT0gcmlnaHQge1xuXHRcdFx0XHR0ZXh0LWFsaWduOiByaWdodDtcblx0XHRcdH0gQGVsc2UgaWYgJGEgPT0gdG9wIHtcblx0XHRcdFx0dmVydGljYWwtYWxpZ246IHRvcDtcblx0XHRcdH0gQGVsc2UgaWYgJGEgPT0gbWlkZGxlIHtcblx0XHRcdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0XHRcdH0gQGVsc2UgaWYgJGEgPT0gYm90dG9tIHtcblx0XHRcdFx0dmVydGljYWwtYWxpZ246IGJvdHRvbTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRAaWYgaW4tbWFwKCRhbGlnbiwgY2VudGVyKSBvciBpbi1tYXAoJGFsaWduLCByaWdodCkge1xuXHRcdFx0Ly8gcmVzdG9yZSB0ZXh0IGFsaWduIG9mIHRoZSBncmlkIGl0ZW1zXG5cdFx0XHQ+ICoge1xuXHRcdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIiwiLy8gfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gfCBGdW5jdGlvbnNcbi8vIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy9cbi8vIFN0ciByZXBsYWNlXG4vL1xuLy8gQHBhcmFtIHtzdHJpbmd9ICAkc3RyaW5nICAgIFN0cmluZyB0aGF0IHlvdSB3YW50IHRvIHJlcGxhY2Vcbi8vIEBwYXJhbSB7c3RyaW5nfSAgJHN1YnN0ciAgICBTdHJpbmcgdGhhdCBpcyB0byBiZSByZXBsYWNlZCBieSBgJG5ld3N1YnN0cmBcbi8vIEBwYXJhbSB7c3RyaW5nfSAgJG5ld3N1YnN0ciBTdHJpbmcgdGhhdCByZXBsYWNlcyBgJHN1YnN0cmBcbi8vIEBwYXJhbSB7bnVtYmVyKn0gJGFsbCAgICAgICBGbGFnIGZvciByZXBsYWNlaW5nIGFsbCAoMSspIG9yIG5vdCAoMClcbi8vIEByZXR1cm4ge3N0cmluZ31cbi8vXG5AZnVuY3Rpb24gc3RyLXJlcGxhY2UoJHN0cmluZywgJHN1YnN0ciwgJG5ld3N1YnN0ciwgJGFsbDogMCkge1xuXHQkcG9zaXRpb24tZm91bmQ6IHN0ci1pbmRleCgkc3RyaW5nLCAkc3Vic3RyKTtcblx0JHByb2Nlc3NlZDogKCk7XG5cblx0QHdoaWxlICgkcG9zaXRpb24tZm91bmQgYW5kICRwb3NpdGlvbi1mb3VuZCA+IDApIHtcblx0XHQkbGVuZ3RoLXN1YnN0cjogc3RyLWxlbmd0aCgkc3Vic3RyKTtcblx0XHQkcHJvY2Vzc2VkOiBhcHBlbmQoJHByb2Nlc3NlZCwgc3RyLXNsaWNlKCRzdHJpbmcsIDAsICRwb3NpdGlvbi1mb3VuZCAtIDEpKTtcblx0XHQkcHJvY2Vzc2VkOiBhcHBlbmQoJHByb2Nlc3NlZCwgJG5ld3N1YnN0cik7XG5cdFx0JHN0cmluZzogc3RyLXNsaWNlKCRzdHJpbmcsICRwb3NpdGlvbi1mb3VuZCArICRsZW5ndGgtc3Vic3RyKTtcblxuXHRcdCRwb3NpdGlvbi1mb3VuZDogMDtcblxuXHRcdEBpZiAoJGFsbCA+IDApIHtcblx0XHRcdCRwb3NpdGlvbi1mb3VuZDogc3RyLWluZGV4KCRzdHJpbmcsICRzdWJzdHIpO1xuXHRcdH1cblx0fVxuXG5cdCRwcm9jZXNzZWQ6IGFwcGVuZCgkcHJvY2Vzc2VkLCAkc3RyaW5nKTtcblx0JHN0cmluZzogXCJcIjtcblxuXHRAZWFjaCAkcyBpbiAkcHJvY2Vzc2VkIHtcblx0XHQkc3RyaW5nOiAjeyRzdHJpbmd9I3skc307XG5cdH1cblxuXHRAcmV0dXJuICRzdHJpbmc7XG59XG5cbi8vXG4vLyBNYXAgc2V0XG4vL1xuLy8gQHBhcmFtIFx0TWFwIFx0JG1hcCBcdFx0VGhlIG1hcCB0byB1c2Vcbi8vIEBwYXJhbSBcdFN0cmluZyBcdCRrZXkgXHRcdFRoZSBrZXkgdG8gdXBkYXRlXG4vLyBAcGFyYW0gXHRNaXhlZCBcdCR2YWx1ZSBcdFx0VGhlIG5ldyB2YWx1ZVxuLy8gQHJldHVybiBcdE1hcCBcdFx0XHRUaGUgbmV3IG1hcFxuLy9cbkBmdW5jdGlvbiBtYXAtc2V0KCRtYXAsICRrZXksICR2YWx1ZSkge1xuXHQkbmV3OiAoJGtleTogJHZhbHVlKTtcblx0QHJldHVybiBtYXAtbWVyZ2UoJG1hcCwgJG5ldyk7XG59XG5cbi8vXG4vLyBSZW1vdmUgaXRlbSBmcm9tIGxpc3Rcbi8vXG5AZnVuY3Rpb24gcmVtb3ZlLW50aCgkbGlzdCwgJGluZGV4KSB7XG4gICRyZXN1bHQ6IG51bGw7XG5cbiAgQGlmIHR5cGUtb2YoJGluZGV4KSAhPSBudW1iZXIge1xuXHRAd2FybiBcIiRpbmRleDogI3txdW90ZSgkaW5kZXgpfSBpcyBub3QgYSBudW1iZXIgZm9yIGByZW1vdmUtbnRoYC5cIjtcbiAgfVxuXG4gIEBlbHNlIGlmICRpbmRleCA9PSAwIHtcblx0QHdhcm4gXCJMaXN0IGluZGV4IDAgbXVzdCBiZSBhIG5vbi16ZXJvIGludGVnZXIgZm9yIGByZW1vdmUtbnRoYC5cIjtcbiAgfVxuXG4gIEBlbHNlIGlmIGFicygkaW5kZXgpID4gbGVuZ3RoKCRsaXN0KSB7XG5cdEB3YXJuIFwiTGlzdCBpbmRleCBpcyAjeyRpbmRleH0gYnV0IGxpc3QgaXMgb25seSAje2xlbmd0aCgkbGlzdCl9IGl0ZW0gbG9uZyBmb3IgYHJlbW92ZS1udGhgLlwiO1xuICB9XG5cbiAgQGVsc2Uge1xuXHQkcmVzdWx0OiAoKTtcblx0JGluZGV4OiBpZigkaW5kZXggPCAwLCBsZW5ndGgoJGxpc3QpICsgJGluZGV4ICsgMSwgJGluZGV4KTtcblxuXHRAZm9yICRpIGZyb20gMSB0aHJvdWdoIGxlbmd0aCgkbGlzdCkge1xuXHQgIEBpZiAkaSAhPSAkaW5kZXgge1xuXHRcdCRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCBudGgoJGxpc3QsICRpKSk7XG5cdCAgfVxuXHR9XG4gIH1cblxuICBAcmV0dXJuICRyZXN1bHQ7XG59XG5cbi8vXG4vLyBMaXN0IHNoaWZ0XG4vL1xuLy8gQHBhcmFtIFx0TGlzdCBcdCRsaXN0IFx0XHRUaGUgbGlzdCB0byB1c2Vcbi8vIEByZXR1cm4gXHRMaXN0IFx0XHRcdFx0VGhlIHByb2Nlc3NlZCBsaXN0XG4vL1xuQGZ1bmN0aW9uIGxpc3Qtc2hpZnQoJGxpc3QpIHtcblx0QHJldHVybiByZW1vdmUtbnRoKCRsaXN0LDEpO1xufVxuXG4vL1xuLy8gTGlzdCBwb3Bcbi8vXG4vLyBAcGFyYW0gXHRMaXN0IFx0JGxpc3QgXHRcdFRoZSBsaXN0IHRvIHVzZVxuLy8gQHJldHVybiBcdExpc3QgXHRcdFx0XHRUaGUgcHJvY2Vzc2VkIGxpc3Rcbi8vXG5AZnVuY3Rpb24gbGlzdC1wb3AoJGxpc3QpIHtcblx0QHJldHVybiByZW1vdmUtbnRoKCRsaXN0LGxlbmd0aCgkbGlzdCkpO1xufVxuXG4vL1xuLy8gSW4gbWFwXG4vLyBEZXRlcm1pbmUgaWYgc29tZXRoaW5nIGlzIGluIHRoZSBwcm92aWRlZCBtYXBcbi8vXG4vLyBAcGFyYW0gXHRNYXAgXHQkbWFwIFx0XHRUaGUgbWFwIHRvIHVzZVxuLy8gQHBhcmFtIFx0TWl4ZWQgXHQkbmVlZGxlXHRcdFdoYXQgdG8gc2VhcmNoXG4vLyBAcmV0dXJuIFx0Qm9vbGVhblx0XHRcdFx0VHJ1ZXxmYWxzZVxuLy9cbkBmdW5jdGlvbiBpbi1tYXAoJG1hcCwgJG5lZWRsZSkge1xuXHRAZWFjaCAkdiBpbiAkbWFwIHtcblx0XHRAaWYgJHYgPT0gJG5lZWRsZSB7XG5cdFx0XHRAcmV0dXJuIHRydWU7XG5cdFx0fVxuXHR9XG5cdEByZXR1cm4gZmFsc2U7XG59XG5cblxuLy9cbi8vIEdldCBzdGF0ZXMgY291bnRcbi8vXG4vLyBAcmV0dXJuIFx0aW50IFx0VGhlIG51bWJlciBvZiBzdGF0ZXMgZGVmaW5lZFxuLy9cbkBmdW5jdGlvbiBncmlkbGVfc3RhdGVzX2NvdW50KCkge1xuXHRAcmV0dXJuIGxlbmd0aCgkX2dyaWRsZV9zdGF0ZXMpO1xufVxuXG5cbi8vXG4vLyBHZXQgdGhlIGN1cnJlbnQgc3RhdGVcbi8vXG5AZnVuY3Rpb24gZ3JpZGxlX2N1cnJlbnRfc3RhdGUoKSB7XG5cdEByZXR1cm4gJF9ncmlkbGVfY3VycmVudF9zdGF0ZTtcbn1cblxuXG4vL1xuLy8gR2V0IHRoZSBjdXJyZW50IHN0YXRlIG5hbWVcbi8vXG5AZnVuY3Rpb24gZ3JpZGxlX2N1cnJlbnRfc3RhdGVfbmFtZSgpIHtcblx0QHJldHVybiAkX2dyaWRsZV9jdXJyZW50X3N0YXRlTmFtZTtcbn1cblxuXG4vL1xuLy8gR2V0IHRoZSBjb2x1bW4gd2lkdGggaW4gcGVyY2VudCBmb3IgdGhlIGdsb2JhbCBvciBhIHNwZWNpZmljIGNvbnRleHRcbi8vXG4vLyBAcGFyYW0gXHRpbnQgXHRcdCRjb2x1bW5zIFx0XHRcdFx0XHRUaGUgbnVtYmVyIG9mIGNvbHVtbnMgdG8gY2FsY3VsYXRlXG4vLyBAcGFyYW0gXHRpbnQgXHRcdCRjb250ZXh0IDogJGdyaWRsZS1jb2x1bW5zLWNvdW50IFx0IFx0VGhlIGNvbnRleHQgdG8gdXNlXG4vLyBAcmV0dXJuIFx0cGVyY2VudGFnZSBcdFx0XHRcdFx0XHRcdFRoZSB3aWR0aCBpbiBwZXJjZW50XG4vL1xuQGZ1bmN0aW9uIGdyaWRsZV9jb2x1bW5fd2lkdGgoXG5cdCRjb2x1bW5zIDogMSxcblx0JHN0YXRlTWFwLW9yLXN0YXRlTmFtZSA6IGN1cnJlbnRcbikge1xuXHQkY29udGV4dCA6IGdyaWRsZV9nZXRfc3RhdGVfdmFyKGNvbnRleHQsICRzdGF0ZU1hcC1vci1zdGF0ZU5hbWUpO1xuXHRAcmV0dXJuIHBlcmNlbnRhZ2UoMSAvICRjb250ZXh0ICogJGNvbHVtbnMpO1xufVxuXG5cbi8vXG4vLyAgR2V0IGEgc3RhdGUgbWFwXG4vL1xuLy8gQHBhcmFtIFx0c3RyaW5nIFx0XHQkbmFtZSBcdFx0VGhlIG5hbWUgb2YgdGhlIHN0YXRlIHRvIGdldFxuLy8gQHJldHVybiBcdG1hcCBcdFx0XHRcdEEgc3RhdGUgbWFwIG9iamVjdFxuLy9cbkBmdW5jdGlvbiBncmlkbGVfZ2V0X3N0YXRlKFxuXHQkc3RhdGVNYXAtb3Itc3RhdGVOYW1lIDogY3VycmVudFxuKSB7XG5cblx0Ly8gY2hlY2sgaWYgbmVlZCB0byByZXR1cm4gdGhlIGN1cnJlbnQgc3RhdGVcblx0QGlmICRzdGF0ZU1hcC1vci1zdGF0ZU5hbWUgPT0gY3VycmVudCB7XG5cdFx0QHJldHVybiBncmlkbGVfY3VycmVudF9zdGF0ZSgpO1xuXHR9XG5cblx0Ly8gY2hlY2sgaWYgaGFzIGEgc3RhdGUgbmFtZWQgbGlrZSB0aGlzXG5cdEBpZiAodHlwZS1vZigkc3RhdGVNYXAtb3Itc3RhdGVOYW1lKSA9PSBzdHJpbmdcblx0XHRhbmQgIG1hcC1oYXMta2V5KCRfZ3JpZGxlX3N0YXRlcywgdW5xdW90ZShcIiN7JHN0YXRlTWFwLW9yLXN0YXRlTmFtZX1cIikpKVxuXHR7XG5cdFx0QHJldHVybiBtYXAtZ2V0KCRfZ3JpZGxlX3N0YXRlcywgdW5xdW90ZShcIiN7JHN0YXRlTWFwLW9yLXN0YXRlTmFtZX1cIikpO1xuXHR9XG5cblx0Ly8gY2hlY2sgaWYgaXQncyBhIHJlZ2lzdGVyZWQgc3RhdGUgYXMgbWFwIHBhc3NlZFxuXHRAaWYgdHlwZS1vZigkc3RhdGVNYXAtb3Itc3RhdGVOYW1lKSA9PSBtYXBcblx0XHRhbmQgbWFwLWdldCgkc3RhdGVNYXAtb3Itc3RhdGVOYW1lLCBuYW1lKSB7XG5cdFx0JG5hbWUgOiBtYXAtZ2V0KCRzdGF0ZU1hcC1vci1zdGF0ZU5hbWUsIG5hbWUpO1xuXHRcdEBpZiBncmlkbGVfaGFzX3N0YXRlKCRuYW1lKSB7XG5cdFx0XHRAcmV0dXJuICRzdGF0ZU1hcC1vci1zdGF0ZU5hbWU7XG5cdFx0fVxuXHR9XG5cblx0Ly8gYSBtYXAgaXMgcGFzc2VkLCBzbyBpdCdzIGEgc3RhdGUgaGltc2VsZlxuXHRAaWYgJHN0YXRlTWFwLW9yLXN0YXRlTmFtZVxuXHRcdGFuZCB0eXBlLW9mKCRzdGF0ZU1hcC1vci1zdGF0ZU5hbWUpID09IG1hcFxuXHR7XG5cdFx0Ly8gcHJlcGFyZSBzdGF0ZVxuXHRcdCRzdGF0ZU1hcC1vci1zdGF0ZU5hbWUgOiBfZ3JpZGxlX3ByZXBhcmVfc3RhdGVfc2V0dGluZ3MoJHN0YXRlTWFwLW9yLXN0YXRlTmFtZSk7XG5cdFx0Ly8gY3JlYXRlIGEgbmV3IHN0YXRlIGJ5IG1lcmdpbmcgZ2l2ZW4gb25lIHdpdGggZGVmYXVsdCBvbmVcblx0XHQkc3RhdGUgOiBtYXAtbWVyZ2UoJF9ncmlkbGUtc2V0dGluZ3MsICRzdGF0ZU1hcC1vci1zdGF0ZU5hbWUpO1xuXHRcdC8vIHNldCB0aGUgbmFtZSB3aXRoIHJhbmRvbSBuYW1lXG5cdFx0JHN0YXRlIDogbWFwLXNldCgkc3RhdGUsIG5hbWUsIHVuaXF1ZS1pZCgpKTtcblx0XHQvLyByZXR1cm4gdGhlIGN1c3RvbSBzdGF0ZVxuXHRcdEByZXR1cm4gJHN0YXRlO1xuXHR9XG5cblx0Ly8gcmV0dXJuIHRoZSBkZWZhdWx0IG9uZSBpZiBleGlzdFxuXHRAaWYgbWFwLWhhcy1rZXkoJF9ncmlkbGVfc3RhdGVzLCBkZWZhdWx0KVxuXHR7XG5cdFx0QHJldHVybiBtYXAtZ2V0KCRfZ3JpZGxlX3N0YXRlcywgZGVmYXVsdCk7XG5cdH1cblxuXHQvLyBub3RoaW5nIGZpbmRlZCwgcmV0dXJuIHRoZSBkZWZhdWx0IHN0YXRlXG5cdEByZXR1cm4gJF9ncmlkbGUtc2V0dGluZ3M7XG59XG5cblxuLy9cbi8vIENoZWNrIGlmIGEgc3RhdGUgZXhpc3QgOlxuLy9cbi8vIEBwYXJhbSBcdHN0cmluZyBcdFx0JG5hbWUgXHRcdFRoZSBuYW1lIG9mIHRoZSBzdGF0ZSB0byBjaGVja1xuLy8gQHJldHVybiBcdEJvb2xlYW4gXHRcdFx0dHJ1ZSBpcyBleGlzdFxuLy9cbkBmdW5jdGlvbiBncmlkbGVfaGFzX3N0YXRlKFxuXHQkc3RhdGVOYW1lXG4pIHtcblx0QGlmICRzdGF0ZU5hbWUgPT0gY3VycmVudCB7XG5cdFx0QHJldHVybiB0cnVlO1xuXHR9XG5cdEBpZiBtYXAtaGFzLWtleSgkX2dyaWRsZV9zdGF0ZXMsIHVucXVvdGUoXCIjeyRzdGF0ZU5hbWV9XCIpKSB7XG5cdFx0QHJldHVybiB0cnVlO1xuXHR9IEBlbHNlIHtcblx0XHRAcmV0dXJuIGZhbHNlO1xuXHR9XG59XG5cblxuLy9cbi8vIEdldCBhIHZhcmlhYmxlXG4vL1xuLy8gQHBhcmFtIFx0U3RyaW5nIFx0XHQkdmFyTmFtZSBcdFx0XHRcdFx0VGhlIHZhcmlhYmxlIG5hbWVcbi8vIEBwYXJhbSAgXHRTdHJpbmcgXHRcdCRzdGF0ZU1hcC1vci1zdGF0ZU5hbWUgXHQgXHRUaGUgc3RhdGUgbmFtZSBvciBhIG1hcCBzdGF0ZSB2YWx1ZVxuLy8gQHJldHVybiBcdE1peGVkIFx0XHRcdFx0XHRcdFx0XHRcdFRoZSBmaW5kZWQgdmFsdWVcbi8vXG5AZnVuY3Rpb24gZ3JpZGxlX2dldF9zdGF0ZV92YXIoXG5cdCR2YXJOYW1lLFxuXHQkc3RhdGVNYXAtb3Itc3RhdGVOYW1lIDogY3VycmVudFxuKSB7XG5cdC8vIGlmIGlzIGEgc3RhdGUgOlxuXHQkc3RhdGUgOiBudWxsO1xuXG5cdC8vIGdldCB0aGUgc3RhdGUgKGlmIG5vIHN0YXRlIGZpbmQsIHJldHVybiB0aGUgY3VycmVudCBvbmUpIDpcblx0JHN0YXRlIDogZ3JpZGxlX2dldF9zdGF0ZSgkc3RhdGVNYXAtb3Itc3RhdGVOYW1lKTtcblxuXHQvLyBjaGVjayBpZiBoYXMga2V5XG5cdEBpZiBtYXAtaGFzLWtleSgkc3RhdGUsIHVucXVvdGUoXCIjeyR2YXJOYW1lfVwiKSkge1xuXHRcdEByZXR1cm4gbWFwLWdldCgkc3RhdGUsIHVucXVvdGUoXCIjeyR2YXJOYW1lfVwiKSk7XG5cdH1cblxuXHQvLyBub3RoaW5nIGZpbmRlZCA6XG5cdEByZXR1cm4gbnVsbDtcbn1cblxuXG4vL1xuLy8gU2V0IGEgdmFyaWFibGUgaW4gYSBzdGF0ZVxuLy8gQHBhcmFtIFx0TWl4ZWQgJHN0YXRlTmFtZS1vci1zdGF0ZUluZGV4IFx0VGhlIHN0YXRlIG5hbWUgb2Ygc3RhdGUgaW5kZXhcbi8vIEBwYXJhbSAgXHRTdHJpbmcgJHZhciAgICAgICAgICAgICAgICAgICAgXHRcdFZhcmlhYmxlIG5hbWUgdG8gYXNzaWduXG4vLyBAcGFyYW0gIFx0TWl4ZWQgJG5ld1ZhbHVlICAgICAgICAgIFx0XHRUaGUgbmV3IHZhbHVlIHRvIGFzc2lnblxuLy8gQHJldHVybiBcdExpc3QgICAgICAgICAgICAgICAgICAgICAgICAgXHRcdFx0VGhlIHN0YXRlcyBsaXN0IChmdWxsKVxuLy9cbkBmdW5jdGlvbiBncmlkbGVfc2V0X3N0YXRlX3Zhcihcblx0JHZhcixcblx0JG5ld1ZhbHVlLFxuXHQkc3RhdGVOYW1lIDogZGVmYXVsdFxuKSB7XG5cdC8vIGdldCB0aGUgc3RhdGUgOlxuXHQkc3RhdGUgOiBncmlkbGVfZ2V0X3N0YXRlKCRzdGF0ZU5hbWUpO1xuXG5cdC8vIGNoZWNrIGlnIHN0YXRlIGFuZCBpZiBoYXMgdGhlIHZhcmlhYmxlIDpcblx0QGlmICRzdGF0ZVxuXHRcdCAgYW5kIG1hcC1oYXMta2V5KCRzdGF0ZSx1bnF1b3RlKFwiI3skdmFyfVwiKSlcblx0e1xuXHRcdC8vIHNldCBuZXcgdmFsdWUgaW4gc3RhdGUgOlxuXHRcdCRzdGF0ZSA6IG1hcC1zZXQoJHN0YXRlLCB1bnF1b3RlKFwiI3skdmFyfVwiKSwgJG5ld1ZhbHVlKTtcblxuXHRcdC8vIHNldCBzdGF0ZXMgOlxuXHRcdCRfZ3JpZGxlX3N0YXRlcyA6IG1hcC1zZXQoJF9ncmlkbGVfc3RhdGVzLCB1bnF1b3RlKFwiI3skc3RhdGVOYW1lfVwiKSwgJHN0YXRlKTtcblxuXHRcdC8vIHJldHVybiBuZXcgc3RhdGUgOlxuXHRcdEByZXR1cm4gJHN0YXRlO1xuXHR9XG5cblx0Ly8gbm90aGluZyBnZXR0ZWQgOlxuXHRAcmV0dXJuIG51bGw7XG59XG5cblxuLy9cbi8vIGdldCB0aGUgcmVnaXN0ZXJlZCBncmlkbGUgc3RhdGVzXG4vL1xuQGZ1bmN0aW9uIGdyaWRsZV9nZXRfc3RhdGVzKCkge1xuXHRAcmV0dXJuICRfZ3JpZGxlX3N0YXRlcztcbn1cblxuXG4vL1xuLy8gR2V0IHRoZSBzdGF0ZXMgbmFtZXNcbi8vXG5AZnVuY3Rpb24gZ3JpZGxlX2dldF9zdGF0ZXNfbmFtZXMoKSB7XG5cdCRsaXN0IDogKCk7XG5cdEBlYWNoICRzdGF0ZU5hbWUsICRzdGF0ZSBpbiAkX2dyaWRsZV9zdGF0ZXMge1xuXHRcdCRsaXN0IDogYXBwZW5kKCRsaXN0LCAkc3RhdGVOYW1lKTtcblx0fVxuXHRAcmV0dXJuICRsaXN0O1xufVxuQGZ1bmN0aW9uIGdyaWRsZV9zdGF0ZXNfbmFtZXMoKSB7XG5cdEByZXR1cm4gZ3JpZGxlX2dldF9zdGF0ZXNfbmFtZXMoKTtcbn1cblxuXG4vL1xuLy8gR2V0IHRoZSBhcHBseSBjc3MgZm9yIG1hcCBmb3IgYSBjZXJ0YWluIGNsYXNzIGFuZCBzdGF0ZVxuLy9cbkBmdW5jdGlvbiBncmlkbGVfZ2V0X2FwcGx5X2Nzc19mb3JfbWFwKFxuXHQkZm9yLFxuXHQkc3RhdGVOYW1lIDogZGVmYXVsdFxuKSB7XG5cdC8vIGNoZWNrIGlmIGhhcyBzb21lIGV4dGVuZCBmb3IgdGhpcyBzdGF0ZVxuXHQkbWFwIDogbWFwLWdldCgkX2dyaWRsZV9hcHBseV9jc3NfZm9yLCAkc3RhdGVOYW1lKTtcblx0QGlmICRtYXAgPT0gbnVsbCB7IEByZXR1cm4gbnVsbDsgfVxuXG5cdC8vIGNoZWNrIGlmIGhhcyBzb21lIGV4dGVuZCBmb3IgdGhlIHJlcXVlc3RlZCBmb3Jcblx0JGV4dGVuZCA6IG1hcC1nZXQoJG1hcCwgJGZvcik7XG5cblx0Ly8gcmV0dXJuIHRoZSByZXN1bHRpbmcgZXh0ZW5kIG1hcFxuXHRAcmV0dXJuICRleHRlbmQ7XG59XG5cblxuLy9cbi8vIEdldCB0aGUgZXh0ZW5kIG1hcCBmb3IgYSBjZXJ0YWluIGNsYXNzIGFuZCBzdGF0ZVxuLy9cbkBmdW5jdGlvbiBncmlkbGVfZ2V0X2V4dGVuZF9jbGFzc19tYXAoXG5cdCRmb3IsXG5cdCRzdGF0ZU5hbWUgOiBkZWZhdWx0XG4pIHtcblx0Ly8gY2hlY2sgaWYgaGFzIHNvbWUgZXh0ZW5kIGZvciB0aGlzIHN0YXRlXG5cdCRtYXAgOiBtYXAtZ2V0KCRfZ3JpZGxlX2V4dGVuZF9iYXNlX2NsYXNzZXMsICRzdGF0ZU5hbWUpO1xuXHRAaWYgJG1hcCA9PSBudWxsIHsgQHJldHVybiBudWxsOyB9XG5cblx0Ly8gY2hlY2sgaWYgaGFzIHNvbWUgZXh0ZW5kIGZvciB0aGUgcmVxdWVzdGVkIGZvclxuXHQkZXh0ZW5kIDogbWFwLWdldCgkbWFwLCAkZm9yKTtcblxuXHQvLyByZXR1cm4gdGhlIHJlc3VsdGluZyBleHRlbmQgbWFwXG5cdEByZXR1cm4gJGV4dGVuZDtcbn1cblxuXG4vL1xuLy8gR2VuZXJhdGUgYSBjb2x1bW5cbi8vXG4vLyBAcGFyYW0gXHRTdHJpbmcgXHRcdCRuYW1lIFx0XHRcdFx0VGhlIGNvbHVtbiBuYW1lIChvZnRlbiBjb3VudClcbi8vIEBwYXJhbSBcdGludCBcdFx0JGNvbHVtbnMgXHRcdFx0VGhlIGNvbHVtbiBjb3VudCB0aGF0IHRoZSBjb2x1bW4gd2lsbCB0YWtlXG4vLyBAcGFyYW0gXHRpbnQgXHRcdCRjb250ZXh0IFx0XHRcdFRoZSBjb250ZXh0IG9uIHdoaWNoIHRoZSB3aWR0aCB3aWxsIGJlIGNhbGN1bGVkXG4vLyBAcGFyYW0gXHRCb29sZWFuIFx0JGdlbmVyYXRlQ2xhc3NlcyBcdFNldCBpZiB0aGUgY29sdW1uIGhhcyB0byBiZSBnZW5lcmF0ZWQgaW4gY3NzXG4vL1xuQGZ1bmN0aW9uIF9ncmlkbGVfY3JlYXRlX2NvbHVtbihcblx0JG5hbWUsXG5cdCRjb2x1bW5zLFxuXHQkY29udGV4dCxcblx0JG5hbWUtbXVsdGlwbGljYXRvciA6IDEgLy8gdXNlZCB0byBleHRlbmQgdGhlIHN0YXRlIG9uIGN1c3RvbSByZWdpc3RlcmVkIGNvbHVtbnNcbikge1xuXHRAcmV0dXJuIChcblx0XHRuYW1lIDogJG5hbWUsXG5cdFx0Y29sdW1ucyA6ICRjb2x1bW5zLFxuXHRcdGNvbnRleHQgOiAkY29udGV4dCxcblx0XHRuYW1lLW11bHRpcGxpY2F0b3IgOiAkbmFtZS1tdWx0aXBsaWNhdG9yXG5cdCk7XG59XG5cblxuLy8gZ2V0IGNvbHVtbnMgbmFtZXMgaW4gYSBsaXN0XG5AZnVuY3Rpb24gZ3JpZGxlX2dldF9jb2x1bW5zKFxuXHQkc3RhdGUgOiBkZWZhdWx0XG4pIHtcblx0Ly8gZ2V0IHZhcmlhYmxlc1xuXHQkY29udGV4dCA6IGdyaWRsZV9nZXRfc3RhdGVfdmFyKGNvbnRleHQsICRzdGF0ZSk7XG5cdCRuYW1lLW11bHRpcGxpY2F0b3IgOiBncmlkbGVfZ2V0X3N0YXRlX3ZhcihuYW1lLW11bHRpcGxpY2F0b3IsICRzdGF0ZSk7XG5cblx0Ly8gZ2V0IHNwZWNpYWxzIGNvbHVtbnNcblx0JGNvbHVtbnNNYXAgOiBtYXAtbWVyZ2UoKCksICRfZ3JpZGxlX2NvbHVtbnMpO1xuXG5cdC8vIGxvb3AgdGhyb3VnaCBjb250ZXh0XG5cdEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggJGNvbnRleHQge1xuXG5cdFx0Ly8gbmFtZVxuXHRcdCRjb2x1bW5OYW1lIDogXCIjeyRpKiRuYW1lLW11bHRpcGxpY2F0b3J9XCI7XG5cdFx0JGNvbHVtbldpZHRoIDogJGkgKiAkbmFtZS1tdWx0aXBsaWNhdG9yO1xuXG5cdFx0Ly8gLy8gY3JlYXRlIGEgY29sdW1uXG5cdFx0JGNvbCA6IF9ncmlkbGVfY3JlYXRlX2NvbHVtbigkY29sdW1uTmFtZSwgJGNvbHVtbldpZHRoLCAkY29udGV4dCwgJG5hbWUtbXVsdGlwbGljYXRvcik7XG5cblx0XHQvLyAvLyBhZGQgY29sdW1uIGluIGNvbHVtbnMgbWFwXG5cdFx0JGNvbHVtbnNNYXAgOiBtYXAtc2V0KCRjb2x1bW5zTWFwLCAkY29sdW1uTmFtZSwgICRjb2wpO1xuXHR9XG5cblx0Ly8gcmV0dXJuIGNvbHVtbnNcblx0QHJldHVybiAkY29sdW1uc01hcDtcbn1cblxuXG4vL1xuLy8gQ2hlY2sgaWYgaGFzIGNvbHVtblxuLy9cbkBmdW5jdGlvbiBncmlkbGVfaGFzX2NvbHVtbihcblx0JG5hbWVcbikge1xuXHQkY29sdW1uIDogbWFwLWdldCgkX2dyaWRsZV9jb2x1bW5zLCRuYW1lKTtcblx0QGlmICRjb2x1bW4ge1xuXHRcdEByZXR1cm4gdHJ1ZTtcblx0fSBAZWxzZSB7XG5cdFx0QHJldHVybiBmYWxzZTtcblx0fVxufVxuXG5cbkBmdW5jdGlvbiBfZ3JpZGxlX3ByZXBhcmVfc3RhdGVfc2V0dGluZ3MoXG5cdCRzZXR0aW5nc1xuKSB7XG5cdC8vIG1hbmFnZSBndXR0ZXJzXG5cdCRndXR0ZXItdG9wIDogbWFwLWdldCgkc2V0dGluZ3MsIGd1dHRlci10b3ApO1xuXHQkZ3V0dGVyLWJvdHRvbSA6IG1hcC1nZXQoJHNldHRpbmdzLCBndXR0ZXItYm90dG9tKTtcblx0JGd1dHRlci1sZWZ0IDogbWFwLWdldCgkc2V0dGluZ3MsIGd1dHRlci1sZWZ0KTtcblx0JGd1dHRlci1yaWdodCA6IG1hcC1nZXQoJHNldHRpbmdzLCBndXR0ZXItcmlnaHQpO1xuXHQkZ3V0dGVyLXdpZHRoIDogbWFwLWdldCgkc2V0dGluZ3MsIGd1dHRlci13aWR0aCk7XG5cdCRndXR0ZXItaGVpZ2h0IDogbWFwLWdldCgkc2V0dGluZ3MsIGd1dHRlci1oZWlnaHQpO1xuXHRAaWYgJGd1dHRlci1yaWdodCBhbmQgJGd1dHRlci1sZWZ0IHtcblx0XHQvLyBjYWxjdWxhdGUgdGhlIGd1dHRlci13aWR0aFxuXHRcdCRzZXR0aW5ncyA6IG1hcC1zZXQoJHNldHRpbmdzLCBndXR0ZXItd2lkdGgsICRndXR0ZXItbGVmdCArICRndXR0ZXItcmlnaHQpO1xuXHR9IEBlbHNlIGlmICRndXR0ZXItd2lkdGgge1xuXHRcdC8vIGNhbGN1bGF0ZSB0aGUgZ3V0dGVyLWxlZnQgYW5kIHJpZ2h0XG5cdFx0JHNldHRpbmdzIDogbWFwLXNldCgkc2V0dGluZ3MsIGd1dHRlci1sZWZ0LCAkZ3V0dGVyLXdpZHRoICogLjUpO1xuXHRcdCRzZXR0aW5ncyA6IG1hcC1zZXQoJHNldHRpbmdzLCBndXR0ZXItcmlnaHQsICRndXR0ZXItd2lkdGggKiAuNSk7XG5cdH1cblx0QGlmICRndXR0ZXItdG9wIGFuZCAkZ3V0dGVyLWJvdHRvbSB7XG5cdFx0Ly8gY2FsY3VsYXRlIHRoZSBndXR0ZXItaGVpZ2h0XG5cdFx0JHNldHRpbmdzIDogbWFwLXNldCgkc2V0dGluZ3MsIGd1dHRlci1oZWlnaHQsICRndXR0ZXItYm90dG9tICsgJGd1dHRlci10b3ApO1xuXHR9IEBlbHNlIGlmICRndXR0ZXItaGVpZ2h0IHtcblx0XHQvLyBjYWxjdWxhdGUgdGhlIGd1dHRlci1ib3R0b20gYW5kIHRvcFxuXHRcdCRzZXR0aW5ncyA6IG1hcC1zZXQoJHNldHRpbmdzLCBndXR0ZXItYm90dG9tLCAkZ3V0dGVyLWhlaWdodCAqIC41KTtcblx0XHQkc2V0dGluZ3MgOiBtYXAtc2V0KCRzZXR0aW5ncywgZ3V0dGVyLXRvcCwgJGd1dHRlci1oZWlnaHQgKiAuNSk7XG5cdH1cblxuXHQvLyByZXR1cm4gcHJlcGFyZWQgc2V0dGluZ3Ncblx0QHJldHVybiAkc2V0dGluZ3M7XG59XG5cblxuLy9cbi8vIEV4dGVuZCBhIHN0YXRlXG4vL1xuQGZ1bmN0aW9uIF9ncmlkbGVfaW5oZXJpdF9zdGF0ZShcblx0JHN0YXRlLFxuXHQkZXh0ZW5kLXN0YXRlXG4pIHtcblx0JGV4dGVuZC1zdGF0ZS1uYW1lIDogZ3JpZGxlX2dldF9zdGF0ZV92YXIobmFtZSwgJGV4dGVuZC1zdGF0ZSk7XG5cdCRzdGF0ZS1uYW1lIDogZ3JpZGxlX2dldF9zdGF0ZV92YXIobmFtZSwgJHN0YXRlKTtcblx0JGhhcy1zdGF0ZSA6IGdyaWRsZV9oYXNfc3RhdGUoJHN0YXRlLW5hbWUpO1xuXHQkaGFzLWV4dGVuZC1zdGF0ZSA6IGdyaWRsZV9oYXNfc3RhdGUoJGV4dGVuZC1zdGF0ZS1uYW1lKTtcblx0QGlmICRoYXMtc3RhdGUgYW5kICRoYXMtZXh0ZW5kLXN0YXRlIHtcblx0XHQvLyB3ZSBkbyBub3RoaW5nIGlmIHRoaXMgaXMgbmVzdGVkIGV4aXN0aW5nIHN0YXRlc1xuXHRcdEByZXR1cm4gJHN0YXRlO1xuXHR9IEBlbHNlIGlmICRoYXMtZXh0ZW5kLXN0YXRlIHtcblx0XHQvLyBpZiB0aGUgYmFzZSBzdGF0ZSBpcyBhIHJlZ2lzdGVyZWQgb25lXG5cdFx0Ly8ga2VlcCB0aGUgZXh0ZW5kIHN0YXRlIGFuZCBleHRlbmQgaXQgd2l0aCB0aGUgd2FudGVkIHN0YXRlXG5cdFx0QHJldHVybiBtYXAtbWVyZ2UoJGV4dGVuZC1zdGF0ZSwgJHN0YXRlKTtcblx0fSBAZWxzZSB7XG5cdFx0Ly8gb3RoZXJ3aXNlLCB0aGUgYmFzZSBzdGF0ZSBpcyBhIGN1c3RvbSBvbmUgc28gd2Uga2VlcFxuXHRcdC8vIGl0IGFuZCBleHRlbmQgdGhlIHdhbnRlZCBzdGF0ZSB3aXRoIGl0XG5cdFx0JG5ldy1zdGF0ZSA6IG1hcC1yZW1vdmUoJGV4dGVuZC1zdGF0ZSwgbmFtZSk7IC8vIHJlbW92ZSB0aGUgbmFtZSBpcyBpbXBvcnRhbnQgaGVyZSFcblx0XHRAcmV0dXJuIG1hcC1tZXJnZSgkc3RhdGUsICRuZXctc3RhdGUpO1xuXHR9XG59XG5cblxuLy9cbi8vIEdldCB0aGUgcGFkZGluZyB2YWx1ZVxuLy9cbkBmdW5jdGlvbiBfZ3JpZGxlX2ZvcmdlX2d1dHRlcnNfbWFwKFxuXHQkc2lkZS1vci1zaXplLFxuXHQkc3RhdGUgOiBjdXJyZW50XG4pIHtcblx0JG1hcCA6ICgpO1xuXHQvLyBjaGVjayBpZiBpcyBudW1iZXIgcGFzc2VkXG5cdEBpZiB0eXBlLW9mKCRzaWRlLW9yLXNpemUpID09IG1hcCB7XG5cdFx0QGVhY2ggJHNpZGUgaW4gKHRvcCByaWdodCBib3R0b20gbGVmdCkge1xuXHRcdFx0QGlmIG1hcC1nZXQoJHNpZGUtb3Itc2l6ZSwgJHNpZGUpIHtcblx0XHRcdFx0JG1hcCA6IG1hcC1zZXQoJG1hcCwgJHNpZGUsIG1hcC1nZXQoJHNpZGUtb3Itc2l6ZSwgJHNpZGUpKTtcblx0XHRcdH0gQGVsc2Uge1xuXHRcdFx0XHQkbWFwIDogbWFwLXNldCgkbWFwLCAkc2lkZSwgMCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9IEBlbHNlIGlmIHR5cGUtb2YoJHNpZGUtb3Itc2l6ZSkgPT0gbnVtYmVyIHtcblx0XHQkbWFwIDogKFxuXHRcdFx0dG9wIDogMCxcblx0XHRcdHJpZ2h0IDogJHNpZGUtb3Itc2l6ZSAqIC41LFxuXHRcdFx0Ym90dG9tIDogMCxcblx0XHRcdGxlZnQgOiAkc2lkZS1vci1zaXplICogLjVcblx0XHQpO1xuXHR9IEBlbHNlIGlmIHR5cGUtb2YoJHNpZGUtb3Itc2l6ZSkgPT0gbGlzdCBvciB0eXBlLW9mKCRzaWRlLW9yLXNpemUpID09IHN0cmluZyB7XG5cblx0XHQvLyBjaGVjayBpZiBpcyBhIGZ1bGwgbnVtYmVyIGxpc3Rcblx0XHQkbGlzdC1udW1iZXIgOiB0cnVlO1xuXHRcdEBlYWNoICRzIGluICRzaWRlLW9yLXNpemUge1xuXHRcdFx0QGlmIHR5cGUtb2YoJHMpICE9IG51bWJlciB7XG5cdFx0XHRcdCRsaXN0LW51bWJlciA6IGZhbHNlO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdEBpZiAkbGlzdC1udW1iZXIge1xuXG5cdFx0XHRAaWYgbGVuZ3RoKCRzaWRlLW9yLXNpemUpID09IDIge1xuXHRcdFx0XHQkdmFsMSA6IG50aCgkc2lkZS1vci1zaXplLDEpICogLjU7XG5cdFx0XHRcdCR2YWwyIDogbnRoKCRzaWRlLW9yLXNpemUsMikgKiAuNTtcblx0XHRcdFx0JG1hcCA6IChcblx0XHRcdFx0XHR0b3AgOiAkdmFsMSxcblx0XHRcdFx0XHRyaWdodCA6ICR2YWwyLFxuXHRcdFx0XHRcdGJvdHRvbSA6ICR2YWwxLFxuXHRcdFx0XHRcdGxlZnQgOiAkdmFsMlxuXHRcdFx0XHQpXG5cdFx0XHR9IEBlbHNlIGlmIGxlbmd0aCgkc2lkZS1vci1zaXplKSA9PSA0IHtcblx0XHRcdFx0JG1hcCA6IChcblx0XHRcdFx0XHR0b3AgOiBudGgoJHNpZGUtb3Itc2l6ZSwxKSxcblx0XHRcdFx0XHRyaWdodCA6IG50aCgkc2lkZS1vci1zaXplLDIpLFxuXHRcdFx0XHRcdGJvdHRvbSA6IG50aCgkc2lkZS1vci1zaXplLDMpLFxuXHRcdFx0XHRcdGxlZnQgOiBudGgoJHNpZGUtb3Itc2l6ZSw0KVxuXHRcdFx0XHQpXG5cdFx0XHR9XG5cblx0XHR9IEBlbHNlIHtcblx0XHRcdC8vIGZvcmdlIHRoZSBtYXAgd2l0aCByZWdpc3RlcmVkIHZhbHVlc1xuXHRcdFx0QGVhY2ggJHNpZGUgaW4gKHRvcCByaWdodCBib3R0b20gbGVmdCkge1xuXHRcdFx0XHRAaWYgaW5kZXgoJHNpZGUtb3Itc2l6ZSwgJHNpZGUpIHtcblx0XHRcdFx0XHQkbWFwIDogbWFwLXNldCgkbWFwLCAkc2lkZSwgZ3JpZGxlX2dldF9zdGF0ZV92YXIoXCJndXR0ZXItI3skc2lkZX1cIiwgJHN0YXRlKSk7XG5cdFx0XHRcdH0gQGVsc2Uge1xuXHRcdFx0XHRcdCRtYXAgOiBtYXAtc2V0KCRtYXAsICRzaWRlLCAwKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0Ly8gQGRlYnVnKFwiZ2V0IGd1dHRlcnMgZnJvbSByZWdpc3RlcmVkICN7aW5zcGVjdCgkbWFwKX1cIik7XG5cdFx0fVxuXHR9IEBlbHNlIHtcblx0XHQvLyB1bmFibGUgdG8gZ2VuZXJhdGUgYSBndXR0ZXIgbWFwXG5cdFx0QHJldHVybiBmYWxzZTtcblx0fVxuXG5cdC8vIHJldHVybiB0aGUgcGFkZGluZyBtYXBcblx0QHJldHVybiAkbWFwO1xufVxuXG5cbi8vXG4vLyBHZXQgdGhlIGF0dHJpYnV0ZSBzZWxlY3RvclxuLy9cbkBmdW5jdGlvbiBncmlkbGVfc2VsZWN0b3IoXG5cdCRmb3IsXG5cdCRzdGF0ZXMgOiBudWxsLFxuXHQkdmFsdWVzIDogbnVsbFxuKSB7XG5cdCRzZWwgOiAoKTtcblxuXHRAaWYgbGVuZ3RoKCRmb3IpID4gMSB7XG5cdFx0QGVhY2ggJGYgaW4gJGZvciB7XG5cdFx0XHQkc2VsIDogYXBwZW5kKCRzZWwsIGdyaWRsZV9zZWxlY3RvcigkZiwgJHN0YXRlcywgJHZhbHVlcyksIGNvbW1hKTtcblx0XHR9XG5cdH0gQGVsc2Uge1xuXG5cdFx0Ly8gZ2V0IGFsbCBzdGF0ZXMgaWYgbm90IHNwZWNpZmllZFxuXHRcdEBpZiAkc3RhdGVzID09IG51bGwge1xuXHRcdFx0JHN0YXRlcyA6IGdyaWRsZV9nZXRfc3RhdGVzX25hbWVzKCk7XG5cdFx0fVxuXG5cdFx0Ly8gZ2V0IHRoZSBwYXR0ZXJuXG5cdFx0JHBhdHRlcm4gOiBtYXAtZ2V0KCRfZ3JpZGxlLXBhY2thZ2VzLCAkZm9yKTtcblx0XHQkcGF0dGVybiA6IG1hcC1nZXQoJHBhdHRlcm4sIGNsYXNzbmFtZSk7XG5cblx0XHRAZWFjaCAkc3RhdGVOYW1lIGluICRzdGF0ZXMge1xuXHRcdFx0QGlmICR2YWx1ZXMgIT0gbnVsbCB7XG5cdFx0XHRcdCRzZWwgOiBhcHBlbmQoJHNlbCwgX2dyaWRsZV9jbGFzc25hbWUoJGZvciwgJHN0YXRlTmFtZSwgJHZhbHVlcyksIGNvbW1hKTtcblx0XHRcdH0gQGVsc2UgaWYgaW5kZXgoJHBhdHRlcm4sICclY29sdW1uJykge1xuXHRcdFx0XHRAZWFjaCAkY29sdW1uTmFtZSwgJGNvbHVtbiBpbiBfZ3JpZGxlX2dldF9wYXR0ZXJuX3ZhbHVlcyhjb2x1bW4pIHtcblx0XHRcdFx0XHQkc2VsIDogYXBwZW5kKCRzZWwsIF9ncmlkbGVfY2xhc3NuYW1lKCRmb3IsICRzdGF0ZU5hbWUsICRjb2x1bW5OYW1lKSwgY29tbWEpO1xuXHRcdFx0XHR9XG5cdFx0XHR9IEBlbHNlIGlmIGluZGV4KCRwYXR0ZXJuLCAnJWNvbHVtbi1jb3VudCcpIHtcblx0XHRcdFx0QGZvciAkaSBmcm9tIDAgdGhyb3VnaCBfZ3JpZGxlX2dldF9wYXR0ZXJuX3ZhbHVlcyhjb2x1bW4tY291bnQpIHtcblx0XHRcdFx0XHQkc2VsIDogYXBwZW5kKCRzZWwsIF9ncmlkbGVfY2xhc3NuYW1lKCRmb3IsICRzdGF0ZU5hbWUsICRpKSwgY29tbWEpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdEBpZiAkZm9yID09IGZsZXgtb3JkZXIge1xuXHRcdFx0XHRcdCRzZWwgOiBhcHBlbmQoJHNlbCwgX2dyaWRsZV9jbGFzc25hbWUoJGZvciwgJHN0YXRlTmFtZSwgZmlyc3QpLCBjb21tYSk7XG5cdFx0XHRcdFx0JHNlbCA6IGFwcGVuZCgkc2VsLCBfZ3JpZGxlX2NsYXNzbmFtZSgkZm9yLCAkc3RhdGVOYW1lLCBsYXN0KSwgY29tbWEpO1xuXHRcdFx0XHR9XG5cdFx0XHR9IEBlbHNlIGlmIGluZGV4KCRwYXR0ZXJuLCAnJWFsaWduJykge1xuXHRcdFx0XHRAZWFjaCAkYSBpbiBfZ3JpZGxlX2dldF9wYXR0ZXJuX3ZhbHVlcyhhbGlnbikge1xuXHRcdFx0XHRcdCRzZWwgOiBhcHBlbmQoJHNlbCwgX2dyaWRsZV9jbGFzc25hbWUoJGZvciwgJHN0YXRlTmFtZSwgJGEpLCBjb21tYSk7XG5cdFx0XHRcdH1cblx0XHRcdH0gQGVsc2UgaWYgaW5kZXgoJHBhdHRlcm4sICclY291bnQnKSBhbmQgJGZvciA9PSBjbGVhci1lYWNoIHtcblx0XHRcdFx0QGVhY2ggJGlkeCwgJGNsZWFyRWFjaCBpbiBfZ3JpZGxlX2dldF9wYXR0ZXJuX3ZhbHVlcyhjb3VudCkge1xuXHRcdFx0XHRcdCRjb3VudCA6IG1hcC1nZXQoJGNsZWFyRWFjaCwgY2xlYXJFYWNoKTtcblx0XHRcdFx0XHQkc2VsIDogYXBwZW5kKCRzZWwsIF9ncmlkbGVfY2xhc3NuYW1lKCRmb3IsICRzdGF0ZU5hbWUsICRjb3VudCksIGNvbW1hKTtcblx0XHRcdFx0fVxuXHRcdFx0fSBAZWxzZSBpZiBpbmRleCgkcGF0dGVybiwgJyVzaWRlJykge1xuXHRcdFx0XHRAZWFjaCAkc2lkZSBpbiBfZ3JpZGxlX2dldF9wYXR0ZXJuX3ZhbHVlcyhzaWRlKSB7XG5cdFx0XHRcdFx0JHNlbCA6IGFwcGVuZCgkc2VsLCBfZ3JpZGxlX2NsYXNzbmFtZSgkZm9yLCAkc3RhdGVOYW1lLCAkc2lkZSksIGNvbW1hKTtcblx0XHRcdFx0fVxuXHRcdFx0fSBAZWxzZSBpZiBpbmRleCgkcGF0dGVybiwgJyVmbG9hdCcpIHtcblx0XHRcdFx0QGVhY2ggJGZsb2F0IGluIF9ncmlkbGVfZ2V0X3BhdHRlcm5fdmFsdWVzKGZsb2F0KSB7XG5cdFx0XHRcdFx0JHNlbCA6IGFwcGVuZCgkc2VsLCBfZ3JpZGxlX2NsYXNzbmFtZSgkZm9yLCAkc3RhdGVOYW1lLCAkZmxvYXQpLCBjb21tYSk7XG5cdFx0XHRcdH1cblx0XHRcdH0gQGVsc2UgaWYgaW5kZXgoJHBhdHRlcm4sICclcmV2ZXJzZScpIHtcblx0XHRcdFx0QGVhY2ggJHJldmVyc2UgaW4gX2dyaWRsZV9nZXRfcGF0dGVybl92YWx1ZXMocmV2ZXJzZSkge1xuXHRcdFx0XHRcdCRzZWwgOiBhcHBlbmQoJHNlbCwgX2dyaWRsZV9jbGFzc25hbWUoJGZvciwgJHN0YXRlTmFtZSwgJHJldmVyc2UpLCBjb21tYSk7XG5cdFx0XHRcdH1cblx0XHRcdH0gQGVsc2Uge1xuXHRcdFx0XHQkc2VsIDogYXBwZW5kKCRzZWwsIF9ncmlkbGVfY2xhc3NuYW1lKCRmb3IsICRzdGF0ZU5hbWUpLCBjb21tYSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdEByZXR1cm4gJHNlbDtcbn1cblxuXG4vL1xuLy8gR2VuZXJhdGUgY2xhc3NuYW1lXG4vL1xuLy8gQHBhcmFtIFx0TGlzdCBcdFx0JHBhdHRlcm4gXHRUaGUgcGF0dGVybiB0byB1c2UgdG8gZ2VuZXJhdGUgY2xhc3NuYW1lXG4vLyBAcGFyYW0gXHRTdHJpbmcgXHRcdCRzdGF0ZSBcdFx0VGhlIHN0YXRlXG4vLyBAcGFyYW0gXHRpbnQgXHRcdCRjb3VudCBcdFx0VGhlIGNvbHVtbiBjb3VudFxuLy9cbkBmdW5jdGlvbiBfZ3JpZGxlX2NsYXNzbmFtZShcblx0JGZvcixcblx0JHN0YXRlIDogbnVsbCxcblx0JHZhbHVlIDogbnVsbFxuKSB7XG5cblx0Ly8gZ2V0IHRoZSBwYXR0ZXJuXG5cdCRwYXR0ZXJuIDogJGZvcjtcblx0QGlmIHR5cGUtb2YoJGZvcikgPT0gc3RyaW5nIHtcblx0XHQkcGF0dGVybiA6IG1hcC1nZXQoJF9ncmlkbGUtcGFja2FnZXMsICRmb3IpO1xuXHRcdCRwYXR0ZXJuIDogbWFwLWdldCgkcGF0dGVybiwgY2xhc3NuYW1lKTtcblx0fVxuXG5cdC8vIGRlbGV0ZSBkZWZhdWx0IDpcblx0QGlmIHVucXVvdGUoXCIjeyRzdGF0ZX1cIikgPT0gZGVmYXVsdCB7XG5cdFx0JHN0YXRlIDogbnVsbDtcblx0fVxuXG5cdC8vIGNvbnN0cnVjdCBjbGFzcyBuYW1lIDpcblx0JHJlbW92ZVNlcGFyYXRvciA6IGZhbHNlO1xuXHRAZm9yICRpIGZyb20gbGVuZ3RoKCRwYXR0ZXJuKSB0aHJvdWdoIDEge1xuXHRcdCR2YXIgOiBudGgoJHBhdHRlcm4sICRpKTtcblxuXHRcdEBpZiAkdmFyID09ICdAJyB7XG5cdFx0XHQkcGF0dGVybiA6IHNldC1udGgoJHBhdHRlcm4sICRpLCAnXFxcXEAnKTtcblx0XHR9XG5cblx0XHRAaWYgaW5kZXgoJF9ncmlkbGVfbmFtZXMtc2VwYXJhdG9ycywgJHZhcikge1xuXHRcdFx0Ly8gY2hlY2sgaWYgbmVlZCB0byByZW1vdmUgc2VwYXJhdG9yXG5cdFx0XHRAaWYgJHJlbW92ZVNlcGFyYXRvciB7XG5cdFx0XHRcdCRwYXR0ZXJuIDogc2V0LW50aCgkcGF0dGVybiwgJGksIG51bGwpO1xuXHRcdFx0fVxuXHRcdFx0JHJlbW92ZVNlcGFyYXRvciA6IGZhbHNlO1xuXHRcdH0gQGVsc2UgaWYgJHZhciA9PSBcIiVzdGF0ZVwiIHtcblx0XHRcdEBpZiAkc3RhdGUgPT0gbnVsbCB7XG5cdFx0XHRcdCRwYXR0ZXJuIDogc2V0LW50aCgkcGF0dGVybiwgJGksIG51bGwpO1xuXHRcdFx0XHQkcmVtb3ZlU2VwYXJhdG9yIDogdHJ1ZTtcblx0XHRcdH0gQGVsc2Uge1xuXHRcdFx0XHQkcGF0dGVybiA6IHNldC1udGgoJHBhdHRlcm4sICRpLCAkc3RhdGUpO1xuXHRcdFx0fVxuXHRcdH0gQGVsc2UgaWYgJHZhciBhbmQgc3RyLWluZGV4KCR2YXIsICclJykgPT0gMSB7XG5cdFx0XHQkdG9rZW4gOiBzdHItc2xpY2UoJHZhciwgMik7XG5cdFx0XHQvLyBjaGVjayB0aGF0IHRoZSB2YWx1ZSBpcyBwYXJ0IG9mIHRoZSB0b2tlblxuXHRcdFx0JHRva2VucyA6IG1hcC1nZXQoJF9ncmlkbGUtbmFtZXMtdG9rZW5zLCAkdG9rZW4pO1xuXHRcdFx0QGlmICR0b2tlbnMge1xuXHRcdFx0XHQkcGF0dGVybiA6IHNldC1udGgoJHBhdHRlcm4sICRpLCAkdmFsdWUpO1xuXHRcdFx0XHRAaWYgJHZhbHVlID09IG51bGwge1xuXHRcdFx0XHRcdCRyZW1vdmVTZXBhcmF0b3IgOiB0cnVlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSBAZWxzZSBpZiAkdmFyID09IG51bGwge1xuXHRcdFx0JHJlbW92ZVNlcGFyYXRvciA6IHRydWU7XG5cdFx0fVxuXG5cdH1cblxuXHQvLyBjbGVhbiBzZWxlY3RvclxuXHQkbGlzdDogKCk7XG5cdEBlYWNoICR2YXIgaW4gJHBhdHRlcm4ge1xuXHRcdEBpZiAkdmFyIHtcblx0XHRcdCRsaXN0OiBhcHBlbmQoJGxpc3QsICR2YXIpO1xuXHRcdH1cblx0fVxuXHQkcGF0dGVybiA6ICRsaXN0O1xuXG5cdC8vIGJ1aWxkIHNlbGVjdG9yXG5cdCRzZWwgOiBcIlwiO1xuXHQkcHJlZml4IDogZ3JpZGxlX2dldF9zdGF0ZV92YXIoY2xhc3Nlcy1wcmVmaXgsICRzdGF0ZSk7XG5cdEBlYWNoICRwYXJ0IGluICRwYXR0ZXJuIHtcblx0XHRAaWYgJHBhcnQge1xuXHRcdFx0JHNlbCA6IFwiI3skc2VsfSN7JHBhcnR9XCI7XG5cdFx0fVxuXHR9XG5cdEBpZiAkcHJlZml4IGFuZCBzdHItc2xpY2UoJHNlbCwxLHN0cl9sZW5ndGgoJHByZWZpeCkpICE9ICRwcmVmaXgge1xuXHRcdCRzZWwgOiBcIi4jeyRwcmVmaXh9I3skc2VsfVwiO1xuXHR9IEBlbHNlIHtcblx0XHQkc2VsIDogXCIuI3skc2VsfVwiO1xuXHR9XG5cblx0Ly8gcmV0dXJuIGdlbmVyYXRlZCBjbGFzcyA6XG5cdEByZXR1cm4gdW5xdW90ZSgkc2VsKTtcbn1cblxuXG4vL1xuLy8gVW5tYXRjaGVkIHBhdHRlcm5zXG4vL1xuLy8gQHBhcmFtIFx0TGlzdCBcdFx0JHBhdHRlcm4gXHRUaGUgcGF0dGVybiB0byB1c2UgdG8gZ2VuZXJhdGUgY2xhc3NuYW1lXG4vLyBAcmV0dXJuICBNYXAgICAgICAgICAgICAgICAgICAgICBNYXAgb2YgdW5tYXRjaGVkIHBhdHRlcm4gaW5kZXg6cGF0dGVyblxuLy9cbkBmdW5jdGlvbiBfZ3JpZGxlX3VubWF0Y2hlZF9wYXR0ZXJucyhcblx0JHBhdHRlcm5cbikge1xuXHQkdW5tYXRjaGVkIDogKCk7XG5cblx0Ly8gTG9vcCBlYWNoIHBhcnRlcm5cblx0QGZvciAkaSBmcm9tIGxlbmd0aCgkcGF0dGVybikgdGhyb3VnaCAxIHtcblx0XHQkdmFyIDogbnRoKCRwYXR0ZXJuLCAkaSk7XG5cdFx0QGlmICR2YXIgYW5kIHN0ci1pbmRleCgkdmFyLCAnJScpID09IDEge1xuXHRcdFx0JHRva2VuIDogc3RyLXNsaWNlKCR2YXIsIDIpO1xuXHRcdFx0Ly8gY2hlY2sgdGhhdCB0aGUgdmFsdWUgaXMgcGFydCBvZiB0aGUgdG9rZW5cblx0XHRcdCR0b2tlbnMgOiBtYXAtZ2V0KCRfZ3JpZGxlLW5hbWVzLXRva2VucywgJHRva2VuKTtcblx0XHRcdEBpZiAkdG9rZW5zID09IG51bGwge1xuXHRcdFx0XHQkdW5tYXRjaGVkIDogbWFwLXNldCgkdW5tYXRjaGVkLCAkaSwgJHZhcik7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0QHJldHVybiAkdW5tYXRjaGVkO1xufVxuXG5cbi8vXG4vLyBtYXRjaGVkIHBhdHRlcm5zXG4vL1xuLy8gQHBhcmFtIFx0TGlzdCBcdFx0JHBhdHRlcm4gXHRUaGUgcGF0dGVybiB0byB1c2UgdG8gZ2VuZXJhdGUgY2xhc3NuYW1lXG4vLyBAcmV0dXJuICBNYXAgICAgICAgICAgICAgICAgICAgICBNYXAgb2YgbWF0Y2hlZCBwYXR0ZXJuIGluZGV4OnBhdHRlcm5cbi8vXG5AZnVuY3Rpb24gX2dyaWRsZV9tYXRjaGVkX3BhdHRlcm5zKFxuXHQkcGF0dGVyblxuKSB7XG5cdCRtYXRjaGVkIDogKCk7XG5cblx0Ly8gTG9vcCBlYWNoIHBhcnRlcm5cblx0QGZvciAkaSBmcm9tIGxlbmd0aCgkcGF0dGVybikgdGhyb3VnaCAxIHtcblx0XHQkdmFyIDogbnRoKCRwYXR0ZXJuLCAkaSk7XG5cdFx0QGlmICR2YXIgYW5kIHN0ci1pbmRleCgkdmFyLCAnJScpID09IDEge1xuXHRcdFx0JHRva2VuIDogc3RyLXNsaWNlKCR2YXIsIDIpO1xuXHRcdFx0Ly8gY2hlY2sgdGhhdCB0aGUgdmFsdWUgaXMgcGFydCBvZiB0aGUgdG9rZW5cblx0XHRcdCR0b2tlbnMgOiBtYXAtZ2V0KCRfZ3JpZGxlLW5hbWVzLXRva2VucywgJHRva2VuKTtcblx0XHRcdEBpZiAkdG9rZW5zICE9IG51bGwge1xuXHRcdFx0XHQkbWF0Y2hlZCA6IG1hcC1zZXQoJG1hdGNoZWQsICRpLCAkdmFyKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRAcmV0dXJuICRtYXRjaGVkO1xufVxuXG5cbi8vXG4vLyBHZXQgZHluYW1pYyBwYXR0ZXJuIHZhbHVlc1xuLy9cbi8vIEBwYXJhbSBcdFN0cmluZyBcdFx0JGZvciBcdFx0XHROYW1lIG9mIHRoZSB0b2tlblxuLy8gQHJldHVybiBcdE1peGVkIFx0XHRcdFx0XHQgICAgVmFsdWVzIG9mIHRoZSB0b2tlblxuLy9cbkBmdW5jdGlvbiBfZ3JpZGxlX2dldF9wYXR0ZXJuX3ZhbHVlcyhcblx0JGZvclxuKXtcblx0QGlmICRmb3IgPT0gY29sdW1uIHtcblx0XHRAcmV0dXJuIGdyaWRsZV9nZXRfY29sdW1ucygpO1xuXHR9XG5cblx0QGlmICRmb3IgPT0gY29sdW1uLWNvdW50IHtcblx0XHRAcmV0dXJuIGxlbmd0aChncmlkbGVfZ2V0X2NvbHVtbnMoKSk7XG5cdH1cblxuXHRAaWYgJGZvciA9PSBjb3VudCB7XG5cdFx0QHJldHVybiAkX2dyaWRsZV9jbGVhcl9jbGFzc2VzO1xuXHR9XG5cblx0QHJldHVybiBtYXAtZ2V0KCRfZ3JpZGxlLW5hbWVzLXRva2VucywgJGZvcik7XG59XG5cblxuLy9cbi8vIEdldCB0aGUgY3VycmVudCBkcml2ZXJcbi8vXG5AZnVuY3Rpb24gZ3JpZGxlX2dldF9kcml2ZXIoKSB7XG5cdEByZXR1cm4gJF9ncmlkbGUtZHJpdmVyO1xufVxuXG5cbi8vXG4vLyBJcyBkcml2ZXJcbi8vXG5AZnVuY3Rpb24gZ3JpZGxlX2lzX2RyaXZlcigkZHJpdmVyKSB7XG5cdEBlYWNoICRkIGluICRkcml2ZXIge1xuXHRcdEBpZiAkZCA9PSBncmlkbGVfZ2V0X2RyaXZlcigpIHtcblx0XHRcdEByZXR1cm4gdHJ1ZTtcblx0XHR9XG5cdH1cblx0QHJldHVybiBmYWxzZTtcbn1cblxuXG4vL1xuLy8gQ2hlY2sgaWYgd2UgbmVlZCB0byBnZW5lcmF0ZSB0aGUgY2xhc3Mgb3Igbm90XG4vL1xuLy8gQHBhcmFtIFx0TGlzdCBcdFx0JGZvciBcdFx0XHROYW1lIG9mIHRoZSBjbGFzcyBtYXBcbi8vIEBwYXJhbSBcdExpc3QgXHRcdCR3aGF0IFx0XHRcdFRoZSBtYXAgdGhhdCBzZXQgd2hpY2ggY2xhc3MgbWFwIHRvIGluY2x1ZGUgYW5kIGV4Y2x1ZGVcbi8vIEByZXR1cm4gXHRCb29sZWFuIFx0XHRcdFx0XHR0cnVlIGlmIG5lZWQgdG8gZ2VuZXJhdGUsIGZhbHNlIGlmIG5vdFxuLy9cbkBmdW5jdGlvbiBfZ3JpZGxlX25lZWRfdG9fZ2VuZXJhdGUoXG5cdCRwYWNrYWdlLFxuXHQkd2hhdFxuKSB7XG5cdC8vIGNoZWNrIHRoYXQgdGhlIHdhbnRlZCBwYWNrYWdlIGV4aXN0IGluIHN5c3RlbVxuXHRAaWYgbWFwLWdldCgkX2dyaWRsZS1wYWNrYWdlcywgJHBhY2thZ2UpIHtcblx0XHQkcGFja2FnZSA6IG1hcC1nZXQoJF9ncmlkbGUtcGFja2FnZXMsICRwYWNrYWdlKTtcblx0XHQkcGFja2FnZSA6IG1hcC1nZXQoJHBhY2thZ2UsIHBhY2thZ2UpO1xuXHR9IEBlbHNlIHtcblx0XHRAcmV0dXJuIGZhbHNlO1xuXHR9XG5cblx0Ly8gaWYgd2UgaGF2ZSBhIHdoYXQgcGFyYW0sIG5lZWQgdG8gY2hlY2sgaWYgdGhlIHBhY2thZ2UgaXMgbmVlZGVkXG5cdEBpZiAkd2hhdCBhbmQgJHdoYXQgIT0gYWxsIHtcblxuXHRcdC8vIGNoZWNrIGlmIHdlIGhhdmUgb25seSBzb21lIC0gaW4gdGhlIHN0YXRlcyBsaXN0XG5cdFx0Ly8gbWVhbiB0aGF0IHdlIHdhbnQgdG8gb25seSByZW1vdmUgdGhlc2Ugc3BlY2lmaWVkIHN0YXRlc1xuXHRcdC8vIGZyb20gdGhlIGFsbCBzdGF0ZXMgbGlzdFxuXHRcdCRvbmx5UmVtb3ZlIDogdHJ1ZTtcblx0XHRAZWFjaCAkdyBpbiAkd2hhdCB7XG5cdFx0XHRAaWYgc3RyLXNsaWNlKCR3LDEsMSkgIT0gJy0nIHtcblx0XHRcdFx0JG9ubHlSZW1vdmUgOiBmYWxzZTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRAaWYgJG9ubHlSZW1vdmUge1xuXHRcdFx0QGVhY2ggJG5hbWUgaW4gJHBhY2thZ2Uge1xuXHRcdFx0XHRAaWYgaW5kZXgoJHdoYXQsIHVucXVvdGUoXCItI3skbmFtZX1cIikpIHtcblx0XHRcdFx0XHRAcmV0dXJuIGZhbHNlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRAcmV0dXJuIHRydWU7XG5cdFx0fSBAZWxzZSB7XG5cdFx0XHRAZWFjaCAkbmFtZSBpbiAkcGFja2FnZSB7XG5cdFx0XHRcdEBpZiBpbmRleCgkd2hhdCwgdW5xdW90ZShcIiN7JG5hbWV9XCIpKSB7XG5cdFx0XHRcdFx0QHJldHVybiB0cnVlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRAcmV0dXJuIGZhbHNlO1xuXHRcdH1cblx0fVxuXHQvLyB3ZSBkb24ndCBoYXZlIGEgd2hhdCBwYXJhbSBzbyB0aGUgcGFja2FnZSBpc1xuXHRAcmV0dXJuIHRydWU7XG59XG5cblxuLy9cbi8vIEdldCBnZW5lcmljIHNlbGVjdG9yIGZvciBhIGNsYXNzXG4vL1xuQGZ1bmN0aW9uIF9ncmlkbGVfZ2V0X2dlbmVyaWNfc2VsZWN0b3IoXG5cdCRwYWNrYWdlXG4pIHtcblx0JHAgOiBtYXAtZ2V0KCRfZ3JpZGxlLXBhY2thZ2VzLCAkcGFja2FnZSk7XG5cdCRzZWwgOiBtYXAtZ2V0KCRwLCBnZW5lcmljLXNlbGVjdG9yKTtcblx0QGlmICRzZWwge1xuXHRcdEByZXR1cm4gdW5xdW90ZSgkc2VsKTtcblx0fVxuXHQkc2VsIDogbWFwLWdldCgkcCwgY2xhc3NuYW1lKTtcblx0JGdlbmVyaWMgOiBcIlwiO1xuXHQkZW5kIDogZmFsc2U7XG5cdCRpIDogMTtcblx0QGVhY2ggJHBhcnQgaW4gJHNlbCB7XG5cdFx0QGlmIG5vdCAkZW5kIHtcblx0XHRcdC8vIGlmIHdlIGhhdmUgYSBzZXBhcmF0b3IsIGNoZWNrIHRoZSBuZXh0IHZhbHVlIHRvIHNlZSBpZiBpdCdzIGEgdmFyaWFibGVcblx0XHRcdEBpZiBpbmRleCgkX2dyaWRsZS1uYW1lcy1zZXBhcmF0b3JzLCAkcGFydCkgYW5kICRpIDwgbGVuZ3RoKCRzZWwpIHtcblx0XHRcdFx0QGlmIG50aCgkc2VsLCRpICsgMSkgIT0gJyVzdGF0ZScge1xuXHRcdFx0XHRcdCRnZW5lcmljIDogI3skZ2VuZXJpY30jeyRwYXJ0fTtcblx0XHRcdFx0fSBAZWxzZSB7XG5cdFx0XHRcdFx0JGVuZCA6IHRydWU7XG5cdFx0XHRcdH1cblx0XHRcdH0gQGVsc2Uge1xuXHRcdFx0XHRAaWYgc3RyLXNsaWNlKCRwYXJ0LDEsMSkgIT0gJyUnIHtcblx0XHRcdFx0XHQkZ2VuZXJpYyA6ICN7JGdlbmVyaWN9I3skcGFydH07XG5cdFx0XHRcdH0gQGVsc2Uge1xuXHRcdFx0XHRcdCRlbmQgOiB0cnVlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdCRpIDogJGkgKyAxO1xuXHR9XG5cdEByZXR1cm4gdW5xdW90ZSgnW2NsYXNzKj1cIiN7JGdlbmVyaWN9XCJdJyk7XG59XG5cblxuLy9cbi8vIENoZWNrIGlmIGdyaWRsZSBpcyBpbiBnZW5lcmF0aW9uIHBoYXNlXG4vL1xuQGZ1bmN0aW9uIF9ncmlkbGVfaXNfaW5fZ2VuZXJhdGVfcGhhc2UoKSB7XG5cdEByZXR1cm4gJF9ncmlkbGVfaXNfaW5fZ2VuZXJhdGVfcGhhc2U7XG59XG5cblxuLy9cbi8vIFBhcnNlIGdyaWRsZSBtaXhpbiBsaXN0XG4vL1xuQGZ1bmN0aW9uIF9ncmlkbGVfcGFyc2VfZ3JpZGxlX21peGluX2xpc3QoXG5cdCRsaXN0XG4pIHtcblx0Ly8gbWFwXG5cdCRtYXAgOiAoKTtcblxuXHQvLyBjb250ZXh0XG5cdCRjb250ZXh0IDogbnVsbDtcblx0JG9mIDogaW5kZXgoJGxpc3QsIG9mKTtcblx0QGlmICRvZiB7XG5cdFx0JGNvbnRleHQgOiBudGgoJGxpc3QsICgkb2YgKyAxKSk7XG5cdFx0JGxpc3QgOiByZW1vdmUtbnRoKCRsaXN0LCRvZik7XG5cdFx0JGxpc3QgOiByZW1vdmUtbnRoKCRsaXN0LCRvZik7XG5cdH0gQGVsc2Uge1xuXHRcdCRjdHggOiBpbmRleCgkbGlzdCwgY29udGV4dCk7XG5cdFx0QGlmICRjdHgge1xuXHRcdFx0JGNvbnRleHQgOiBudGgoJGxpc3QsICgkY3R4ICsgMSkpO1xuXHRcdFx0JGxpc3QgOiByZW1vdmUtbnRoKCRsaXN0LCRjdHgpO1xuXHRcdFx0JGxpc3QgOiByZW1vdmUtbnRoKCRsaXN0LCRjdHgpO1xuXHRcdH1cblx0fVxuXG5cdC8vIGdyaWRcblx0JGdyIDogbnRoKCRsaXN0LCAxKTtcblx0QGlmIHR5cGUtb2YoJGdyKSA9PSBudW1iZXIgb3IgJGdyID09IGFkYXB0IG9yICRnciA9PSBncm93IG9yIGdyaWRsZV9oYXNfY29sdW1uKCRncikge1xuXHRcdCRtYXAgOiBtYXAtc2V0KCRtYXAsIGdyaWQsICRnciAkY29udGV4dCk7XG5cdFx0JGxpc3QgOiByZW1vdmUtbnRoKCRsaXN0LDEpO1xuXHR9XG5cblx0Ly8gcHJlZml4XG5cdCRwcmVmaXggOiBudWxsO1xuXHQkYXQgOiBpbmRleCgkbGlzdCwgYXQpO1xuXHRAaWYgJGF0IHtcblx0XHQkbWFwIDogbWFwLXNldCgkbWFwLCBwcmVmaXgsIG50aCgkbGlzdCwoJGF0ICsgMSkpICRjb250ZXh0KTtcblx0XHQkbGlzdCA6IHJlbW92ZS1udGgoJGxpc3QsJGF0KTtcblx0XHQkbGlzdCA6IHJlbW92ZS1udGgoJGxpc3QsJGF0KTtcblx0fVxuXG5cdC8vIGxvb3Agb24gZWFjaCBwYXJhbWV0ZXJzXG5cdCRwcm9wX3ZhbHVlcyA6ICgpO1xuXHQkcHJvcF9uYW1lIDogbnVsbDtcblx0JGxpc3QgOiBhcHBlbmQoJGxpc3QsIF9ncmlkbGUtbGFzdCk7XG5cdEBlYWNoICRwYXJhbSBpbiAkbGlzdCB7XG5cblx0XHRAaWYgJHBhcmFtICE9IHdpdGggYW5kICRwYXJhbSAhPSAnYW5kJyB7XG5cdFx0XHRAaWYgbWFwLWdldCgkX2dyaWRsZS1wYWNrYWdlcywgJHBhcmFtKSBvciAkcGFyYW0gPT0gX2dyaWRsZS1sYXN0IHtcblx0XHRcdFx0QGlmICRwcm9wX25hbWUge1xuXHRcdFx0XHRcdCR2YWx1ZXMgOiB0cnVlO1xuXHRcdFx0XHRcdEBpZiBsZW5ndGgoJHByb3BfdmFsdWVzKSA+IDAge1xuXHRcdFx0XHRcdFx0JHZhbHVlcyA6ICRwcm9wX3ZhbHVlcztcblx0XHRcdFx0XHRcdEBpZiBsZW5ndGgoJHByb3BfdmFsdWVzKSA9PSAxIHtcblx0XHRcdFx0XHRcdFx0JHZhbHVlcyA6IG50aCgkcHJvcF92YWx1ZXMsMSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHQkcHJvcF92YWx1ZXMgOiAoKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0JG1hcCA6IG1hcC1zZXQoJG1hcCwgJHByb3BfbmFtZSwgJHZhbHVlcyk7XG5cdFx0XHRcdH1cblx0XHRcdFx0JHByb3BfbmFtZSA6ICRwYXJhbTtcblx0XHRcdH0gQGVsc2Uge1xuXHRcdFx0XHQkcHJvcF92YWx1ZXMgOiBhcHBlbmQoJHByb3BfdmFsdWVzLCAkcGFyYW0pO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHRcblx0Ly8gLy8gY2hlY2sgaWYgd2UgZG9uJ3QgaGF2ZSBhbnkgZ3V0dGVyIHBhcmFtZXRlcnNcblx0Ly8gQGlmIG5vdCBtYXAtZ2V0KCRtYXAsIGd1dHRlcikgYW5kIG5vdCBtYXAtZ2V0KCRtYXAsIG5vLWd1dHRlcikge1xuXHQvLyBcdCRtYXAgOiBtYXAtc2V0KCRtYXAsIGd1dHRlciwgdHJ1ZSk7XG5cdC8vIH1cblxuXHQvLyByZXR1cm4gdGhlIG1hcFxuXHRAcmV0dXJuICRtYXA7XG59XG5cblxuLy9cbi8vIEdldCBzZXQgbWFwIGZyb20gc3RyaW5nXG4vL1xuQGZ1bmN0aW9uIF9ncmlkbGVfZ2V0X2dyaWRsZV9zZXRfbWFwX2Zyb21fbGlzdChcblx0JGxpc3Rcbikge1xuXHQvLyBsb29wIG9uIGVhY2ggbGlzdCBlbGVtZW50IHRvIHNwbGl0IGludG8gc3RhdGVzIGxpc3RzXG5cdCRzdGF0ZSA6IGN1cnJlbnQ7XG5cdCRtYXAgOiAoKTtcblx0QGVhY2ggJHByb3AgaW4gJGxpc3Qge1xuXHRcdEBpZiBtYXAtZ2V0KCRtYXAsICRzdGF0ZSkgPT0gbnVsbCB7XG5cdFx0XHQkbWFwIDogbWFwLXNldCgkbWFwLCAkc3RhdGUsICgpKTtcblx0XHR9XG5cdFx0QGlmIHR5cGUtb2YoJHByb3ApID09IHN0cmluZyBhbmQgZ3JpZGxlX2hhc19zdGF0ZSgkcHJvcCkge1xuXHRcdFx0JHN0YXRlIDogJHByb3A7XG5cdFx0fSBAZWxzZSB7XG5cdFx0XHQkbHMgOiBtYXAtZ2V0KCRtYXAsICRzdGF0ZSk7XG5cdFx0XHQkbHMgOiBhcHBlbmQoJGxzLCAkcHJvcCk7XG5cdFx0XHQkbWFwIDogbWFwLXNldCgkbWFwLCAkc3RhdGUsICRscyk7XG5cdFx0fVxuXHR9XG5cblx0Ly8gbG9vcCBvbiBlYWNoIHN0YXRlc1xuXHRAZWFjaCAkc3RhdGVOYW1lLCAkcHJvcHMgaW4gJG1hcCB7XG5cdFx0QGlmIGxlbmd0aCgkcHJvcHMpID4gMCB7XG5cdFx0XHQkcHJvcHNfbWFwIDogX2dyaWRsZV9wYXJzZV9ncmlkbGVfbWl4aW5fbGlzdCgkcHJvcHMpO1xuXHRcdFx0QGlmIHR5cGUtb2YoJHByb3BzX21hcCkgPT0gbWFwIHtcblx0XHRcdFx0JG1hcCA6IG1hcC1zZXQoJG1hcCwgJHN0YXRlTmFtZSwgJHByb3BzX21hcCk7XG5cdFx0XHR9IEBlbHNlIHtcblx0XHRcdFx0JG1hcCA6IG1hcC1zZXQoJG1hcCwgJHN0YXRlTmFtZSwgbnVsbCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdFxuXHRAcmV0dXJuICRtYXA7XG59XG5cblxuLy9cbi8vIEdldCB0aGUgbWVkaWEgcXVlcnkgZm9yIGEgcGFydGljdWxhciBzdGF0ZSwgb3Igd2lkdGgsIGV0Yy4uLlxuLy9cbi8vIEBwYXJhbSBcdE1peGVkIFx0XHQkc3RhdGUtb3ItbWluLXdpZHRoIFx0XHRUaGUgc3RhdGUgbmFtZSBvZiB0aGUgbWluIHdpZHRoXG4vLyBAcGFyYW0gXHRNaXhlZCBcdFx0JG1heC13aWR0aCBcdFx0XHRUaGUgbWF4IHdpZHRoIGlmIGZpcnN0IHBhcmFtIGlzIGEgbWluIHdpZHRoXG4vLyBAcmV0dXJuIFx0U3RyaW5nIFx0XHRcdFx0XHRcdFRoZSBtZWRpYSBxdWVyeSBzdHJpbmcgd2l0aG91dCB0aGUgQG1lZGlhXG4vL1xuQGZ1bmN0aW9uIGdyaWRsZV9nZXRfbWVkaWFfcXVlcnkoXG5cdCRzdGF0ZS1vci1zZXR0aW5ncyA6IGN1cnJlbnRcbikge1xuXHQvLyBjaGVjayBpZiBpcyBhIHN0cmluZyA6XG5cdCRzdGF0ZSA6IG51bGw7XG5cdEBpZiB0eXBlLW9mKCRzdGF0ZS1vci1zZXR0aW5ncykgPT0gc3RyaW5nXG5cdHtcblx0XHQkc3RhdGUgOiBncmlkbGVfZ2V0X3N0YXRlKCRzdGF0ZS1vci1zZXR0aW5ncyk7XG5cdH1cblx0QGVsc2UgaWYgJHN0YXRlLW9yLXNldHRpbmdzID09IG51bGxcblx0e1xuXHRcdCRzdGF0ZSA6ICRfZ3JpZGxlLXNldHRpbmdzO1xuXHR9XG5cdEBlbHNlXG5cdHtcblx0XHQkc3RhdGUgOiBtYXAtbWVyZ2UoJF9ncmlkbGUtc2V0dGluZ3MsICRzdGF0ZS1vci1zZXR0aW5ncyk7XG5cdH1cblxuXHQvLyBpZiBpdCdzIHNvbWUgc2V0dGluZ3Mgb3IgYSBzdGF0ZSA6XG5cdEBpZiAkc3RhdGUge1xuXG5cdFx0Ly8gZ2V0IHZhcnMgOlxuXHRcdCRuYW1lIDogbWFwLWdldCgkc3RhdGUsIG5hbWUpO1xuXHRcdCRtaW4td2lkdGggOiBtYXAtZ2V0KCRzdGF0ZSwgbWluLXdpZHRoKTtcblx0XHQkbWF4LXdpZHRoIDogbWFwLWdldCgkc3RhdGUsIG1heC13aWR0aCk7XG5cdFx0JHF1ZXJ5IDogbWFwLWdldCgkc3RhdGUsIHF1ZXJ5KTtcblxuXHRcdC8vIGRpcmVjdCBxdWVyeSA6XG5cdFx0QGlmICRxdWVyeVxuXHRcdHtcblx0XHRcdEByZXR1cm4gJHF1ZXJ5O1xuXHRcdH1cblx0XHRAZWxzZSBpZiAkbWluLXdpZHRoIGFuZCAkbWF4LXdpZHRoXG5cdFx0e1xuXHRcdFx0QHJldHVybiBcInNjcmVlbiBhbmQgKG1pbi13aWR0aDogI3skbWluLXdpZHRofSkgYW5kIChtYXgtd2lkdGg6ICN7JG1heC13aWR0aH0pXCI7XG5cdFx0fVxuXHRcdEBlbHNlIGlmICRtaW4td2lkdGhcblx0XHR7XG5cdFx0XHRAcmV0dXJuIFwic2NyZWVuIGFuZCAobWluLXdpZHRoOiAjeyRtaW4td2lkdGh9KVwiO1xuXHRcdH1cblx0XHRAZWxzZSBpZiAkbWF4LXdpZHRoXG5cdFx0e1xuXHRcdFx0QHJldHVybiBcInNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skbWF4LXdpZHRofSlcIjtcblx0XHR9XG5cdFx0QGVsc2Vcblx0XHR7XG5cdFx0XHRAcmV0dXJuIG51bGw7XG5cdFx0fVxuXG5cdH1cblx0QGVsc2Vcblx0e1xuXHRcdEByZXR1cm4gbnVsbDtcblx0fVxufVxuIiwiLyogU2xpZGVyICovXG5cbi5zbGljay1zbGlkZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7XG4gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAta2h0bWwtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW1zLXRvdWNoLWFjdGlvbjogcGFuLXk7XG4gICAgdG91Y2gtYWN0aW9uOiBwYW4teTtcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLnNsaWNrLWxpc3Qge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgJjpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuXG4gICAgJi5kcmFnZ2luZyB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgY3Vyc29yOiBoYW5kO1xuICAgIH1cbn1cbi5zbGljay1zbGlkZXIgLnNsaWNrLXRyYWNrLFxuLnNsaWNrLXNsaWRlciAuc2xpY2stbGlzdCB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG59XG5cbi5zbGljay10cmFjayB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgJjpiZWZvcmUsXG4gICAgJjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICB9XG5cbiAgICAuc2xpY2stbG9hZGluZyAmIHtcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIH1cbn1cbi5zbGljay1zbGlkZSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDFweDtcbiAgICBbZGlyPVwicnRsXCJdICYge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxuICAgIGltZyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgICAmLnNsaWNrLWxvYWRpbmcgaW1nIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgJi5kcmFnZ2luZyBpbWcge1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG5cbiAgICAuc2xpY2staW5pdGlhbGl6ZWQgJiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIC5zbGljay1sb2FkaW5nICYge1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgfVxuXG4gICAgLnNsaWNrLXZlcnRpY2FsICYge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICB9XG59IiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLyBEZWZhdWx0IFZhcmlhYmxlc1xuXG4kc2xpY2stZm9udC1wYXRoOiBcIi4uLy4uL2ZvbnRzL1wiICFkZWZhdWx0O1xuJHNsaWNrLWZvbnQtZmFtaWx5OiBcInNsaWNrXCIgIWRlZmF1bHQ7XG4kc2xpY2stbG9hZGVyLXBhdGg6IFwiLi4vaW1nL1wiICFkZWZhdWx0O1xuJHNsaWNrLWFycm93LWNvbG9yOiAkY29sb3ItcHJpbWFyeSAhZGVmYXVsdDtcbiRzbGljay1kb3QtY29sb3I6ICNmZmYgIWRlZmF1bHQ7XG4kc2xpY2stZG90LWNvbG9yLWFjdGl2ZTogJGNvbG9yLXByaW1hcnkgIWRlZmF1bHQ7XG4kc2xpY2stcHJldi1jaGFyYWN0ZXI6IFwi4oaQXCIgIWRlZmF1bHQ7XG4kc2xpY2stbmV4dC1jaGFyYWN0ZXI6IFwi4oaSXCIgIWRlZmF1bHQ7XG4kc2xpY2stZG90LWNoYXJhY3RlcjogXCLigKJcIiAhZGVmYXVsdDtcbiRzbGljay1kb3Qtc2l6ZTogOXB4ICFkZWZhdWx0O1xuJHNsaWNrLW9wYWNpdHktZGVmYXVsdDogMSAhZGVmYXVsdDtcbiRzbGljay1vcGFjaXR5LW9uLWhvdmVyOiAxICFkZWZhdWx0O1xuJHNsaWNrLW9wYWNpdHktbm90LWFjdGl2ZTogMSAhZGVmYXVsdDtcblxuQGZ1bmN0aW9uIHNsaWNrLWltYWdlLXVybCgkdXJsKSB7XG4gICAgQGlmIGZ1bmN0aW9uLWV4aXN0cyhpbWFnZS11cmwpIHtcbiAgICAgICAgQHJldHVybiBpbWFnZS11cmwoJHVybCk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICAgQHJldHVybiB1cmwoJHNsaWNrLWxvYWRlci1wYXRoICsgJHVybCk7XG4gICAgfVxufVxuXG5AZnVuY3Rpb24gc2xpY2stZm9udC11cmwoJHVybCkge1xuICAgIEBpZiBmdW5jdGlvbi1leGlzdHMoZm9udC11cmwpIHtcbiAgICAgICAgQHJldHVybiBmb250LXVybCgkdXJsKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgICBAcmV0dXJuIHVybCgkc2xpY2stZm9udC1wYXRoICsgJHVybCk7XG4gICAgfVxufVxuXG4vKiBTbGlkZXIgKi9cblxuLnNsaWNrLWxpc3Qge1xuICAgIC5zbGljay1sb2FkaW5nICYge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmIHNsaWNrLWltYWdlLXVybChcImFqYXgtbG9hZGVyLmdpZlwiKSBjZW50ZXIgY2VudGVyIG5vLXJlcGVhdDtcbiAgICB9XG59XG5cbi8qIEljb25zICovXG4vKkBpZiAkc2xpY2stZm9udC1mYW1pbHkgPT0gXCJzbGlja1wiIHtcbiAgICBAZm9udC1mYWNlIHtcbiAgICAgICAgZm9udC1mYW1pbHk6IFwic2xpY2tcIjtcbiAgICAgICAgc3JjOiBzbGljay1mb250LXVybChcInNsaWNrLmVvdFwiKTtcbiAgICAgICAgc3JjOiBzbGljay1mb250LXVybChcInNsaWNrLmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksIHNsaWNrLWZvbnQtdXJsKFwic2xpY2sud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCBzbGljay1mb250LXVybChcInNsaWNrLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSwgc2xpY2stZm9udC11cmwoXCJzbGljay5zdmcjc2xpY2tcIikgZm9ybWF0KFwic3ZnXCIpO1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgfVxufSovXG5cbi8qIEFycm93cyAqL1xuXG4uc2xpY2stcHJldixcbi5zbGljay1uZXh0IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAwcHg7XG4gICAgZm9udC1zaXplOiAwcHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB0b3A6IDUwJTtcbiAgICBtYXJnaW4tdG9wOiAtMTBweDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNsaWNrLWFycm93LWNvbG9yO1xuICAgICAgICAgICAgb3BhY2l0eTogJHNsaWNrLW9wYWNpdHktb24taG92ZXI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgJi5zbGljay1kaXNhYmxlZDpiZWZvcmUge1xuICAgICAgICBvcGFjaXR5OiAkc2xpY2stb3BhY2l0eS1ub3QtYWN0aXZlO1xuICAgIH1cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMjVzIG9wYWNpdHk7XG4gICAgfVxufVxuXG4uc2xpY2stcHJldjpiZWZvcmUsIC5zbGljay1uZXh0OmJlZm9yZSB7XG4gICAgZm9udC1mYW1pbHk6ICRzbGljay1mb250LWZhbWlseTtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgY29sb3I6ICMxODE3MTc7XG4gICAgb3BhY2l0eTogJHNsaWNrLW9wYWNpdHktZGVmYXVsdDtcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufVxuXG4uc2xpY2stcHJldiB7XG4gICAgbGVmdDogLTI1cHg7XG4gICAgW2Rpcj1cInJ0bFwiXSAmIHtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgcmlnaHQ6IC0yNXB4O1xuICAgIH1cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRzbGljay1wcmV2LWNoYXJhY3RlcjtcbiAgICAgICAgW2Rpcj1cInJ0bFwiXSAmIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICRzbGljay1uZXh0LWNoYXJhY3RlcjtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnNsaWNrLW5leHQge1xuICAgIHJpZ2h0OiAtMjVweDtcbiAgICBbZGlyPVwicnRsXCJdICYge1xuICAgICAgICBsZWZ0OiAtMjVweDtcbiAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgfVxuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJHNsaWNrLW5leHQtY2hhcmFjdGVyO1xuICAgICAgICBbZGlyPVwicnRsXCJdICYge1xuICAgICAgICAgICAgY29udGVudDogJHNsaWNrLXByZXYtY2hhcmFjdGVyO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiBEb3RzICovXG5cbi5zbGljay1zbGlkZXIge1xuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG59XG5cbi5zbGljay1kb3RzIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiA2NXB4O1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbGkge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGJ1dHRvbiB7XG4gICAgICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDBweDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMHB4O1xuICAgICAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgcGFkZGluZzogNXB4O1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6ICRzbGljay1vcGFjaXR5LW9uLWhvdmVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgY29udGVudDogJHNsaWNrLWRvdC1jaGFyYWN0ZXI7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkc2xpY2stZm9udC1mYW1pbHk7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkc2xpY2stZG90LXNpemU7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2xpY2stZG90LWNvbG9yO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6ICRzbGljay1vcGFjaXR5LW5vdC1hY3RpdmU7XG4gICAgICAgICAgICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgICAgICAgICAgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLnNsaWNrLWFjdGl2ZSBidXR0b246YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2xpY2stZG90LWNvbG9yLWFjdGl2ZTtcbiAgICAgICAgICAgIG9wYWNpdHk6ICRzbGljay1vcGFjaXR5LWRlZmF1bHQ7XG4gICAgICAgIH1cbiAgICB9XG59IiwiLnBhZ2UtaW5kZXgge1xuICAgIC5zbGlkZXIge1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA3MHB4O1xuICAgICAgICBtYXgtaGVpZ2h0OiA3MjBweDtcbiAgICAgICAgLnNsaWRlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAtNDVweDtcbiAgICAgICAgICAgIGxlZnQ6IC0xMHB4O1xuICAgICAgICAgICAgd2lkdGg6IDExMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMHB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC0zZGVnKTtcbiAgICAgICAgfVxuICAgICAgICAuZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAzMCU7XG4gICAgICAgICAgICBsZWZ0OiAxMDVweDtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgICAgICBmb250LXNpemU6IDcwcHg7XG4gICAgICAgICAgICBmb250LXNpemU6IDUuNXZ3O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDUuNXZ3O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgIGhlYWRlciB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5zbWFsbCB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAyNHB4O1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjRlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBzZWN0aW9uIHtcbiAgICAgICAgaGVhZGVyIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICBmb250LXNpemU6IDM2cHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS43ZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBAaW5jbHVkZSBncmlkbGVfc3RhdGUobWQgc20geHMpIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDIycHg7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDQycHg7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLnNlY3Rpb24tY29sdW1uIHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZGxlX2NvbnRhaW5lcigpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMDBweDtcbiAgICAgICAgZmlndXJlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGdyaWRsZV9ncmlkKDUpO1xuICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDQ4NXB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5jb250ZW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGdyaWRsZV9ncmlkKDcpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIGdyaWRsZV9zdGF0ZShtZCBzbSB4cykge1xuICAgICAgICAgICAgZmlndXJlLCAuY29udGVudCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgZ3JpZGxlX2dyaWQoMTIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC5zZWN0aW9uLWNlbnRlciB7XG4gICAgICAgICYsIGhlYWRlciB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICAgICAgLmJ1dHRvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAyMnB4O1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA3MnB4O1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogNTBweDtcbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ1xcZTkwMCc7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiA4cHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMzBweDtcbiAgICAgICAgICAgICAgICBmb250LWZhbWlseTogJ3NsaWNrJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAuc2VjdGlvbi1saXN0IHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZGxlX2NvbnRhaW5lcigpO1xuICAgICAgICBtYXgtd2lkdGg6IDEwODBweDtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDUwcHg7XG4gICAgICAgIHBhZGRpbmc6IDcwcHggMDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgLmNvbHVtbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBncmlkbGVfZ3JpZCg0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICYgKyAuY29sdW1uIHtcbiAgICAgICAgICAgICAgICB1bDpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogLTEycHg7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyN3B4O1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDI3cHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHVybCgnLi4vaW1nL2ltZ19wbHVzLnBuZycpIG5vLXJlcGVhdDtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB1bCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgbGkgKyBsaSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMTVweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBncmlkbGVfc3RhdGUobWQgc20geHMpIHtcbiAgICAgICAgICAgIC5jb2x1bW4ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGdyaWRsZV9ncmlkKDEyKTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogNXB4O1xuICAgICAgICAgICAgICAgIHVsIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC5jaGFpbnMge1xuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAzcHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltZy9pbWdfYmlrZV9jaGFpbi5wbmcnKSBuby1yZXBlYXQ7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgICAgICB9XG4gICAgfVxuICAgIC5zZWN0aW9uLXNsb2dhbiB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWRsZV9jb250YWluZXIoKTtcbiAgICAgICAgZmlndXJlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGdyaWRsZV9ncmlkKDgpO1xuICAgICAgICAgICAgQGluY2x1ZGUgZ3JpZGxlX25vX2d1dHRlcigpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZmlnY2FwdGlvbiB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiA1MjBweDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0zMDBweDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAzMHB4IDQwcHg7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDUwcHg7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIGdyaWRsZV9zdGF0ZShtZCBzbSB4cykge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMzAwcHg7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLTEwcHg7XG4gICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMjBweCk7XG4gICAgICAgICAgICBmaWd1cmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGdyaWRsZV9ncmlkKDEyKTtcbiAgICAgICAgICAgICAgICBmaWdjYXB0aW9uIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMzAwcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAzMnB4O1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBncmlkbGVfc3RhdGUoc20geHMpIHtcbiAgICAgICAgICAgIGhlaWdodDogMzAwcHg7XG4gICAgICAgICAgICBmaWd1cmUge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBmaWdjYXB0aW9uIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAyMnB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAuc2VjdGlvbi1wYXJ0bmVycyB7XG4gICAgICAgIG1hcmdpbjogMTAwcHggMDtcbiAgICAgICAgcGFkZGluZzogMTBweDtcbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTgwcHg7XG4gICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgfVxuICAgICAgICAuc2xpY2stc2xpZGVyIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgZ3JpZGxlX3N0YXRlKHNtIHhzKSB7XG4gICAgICAgICAgICAuc2xpY2stcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5zbGljay1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAuc2VjdGlvbi1jb250YWN0IHtcbiAgICAgICAgYmFja2dyb3VuZDogdXJsKCcuLi9pbWcvYmdfY29udGFjdC5wbmcnKTtcbiAgICAgICAgLnBhZ2UtY29udGFpbmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGdyaWRsZV9jb250YWluZXIoKTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgICAgaDMge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWFyZ2luOiAyMHB4IDA7XG4gICAgICAgICAgICBmb250LXNpemU6IDQwcHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMWVtO1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAxMHB4O1xuICAgICAgICAgICAgICAgIGxlZnQ6IC0zNnB4O1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMjVweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE5cHg7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdXJsKCcuLi9pbWcvaW1nX2NoYWluLnBuZycpIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAuY29udGVudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBncmlkbGVfZ3JpZCg1KVxuICAgICAgICAgICAgaGVpZ2h0OiA1MDBweDtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiA0OHB4O1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuICAgICAgICAjbWFwIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDUwMHB4O1xuICAgICAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgQGluY2x1ZGUgZ3JpZGxlX2dyaWQoNylcbiAgICAgICAgfVxuICAgICAgICAuaG91cnMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnB4IDEwcHg7XG4gICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMwMDAwMDA7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgICAgICAgICBmb250LWZhbWlseTogJ1JvYm90byc7XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgZ3JpZGxlX3N0YXRlKG1kIHNtIHhzKSB7XG4gICAgICAgICAgICAuY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaDMge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBoMzpiZWZvcmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG8gMjBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5jb250ZW50IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBncmlkbGVfZ3JpZCgxMik7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDMwcHggMTBweDtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAjbWFwIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBncmlkbGVfc3RhdGUoc20geHMpIHtcbiAgICAgICAgICAgICNtYXAge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMzAwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgQGluY2x1ZGUgZ3JpZGxlX3N0YXRlKG1kIHNtIHhzKSB7XG4gICAgICAgIC5zbGlkZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiA1MDBweDtcbiAgICAgICAgICAgICYgPiBkaXYsXG4gICAgICAgICAgICAuc2xpY2stdHJhY2ssXG4gICAgICAgICAgICAuc2xpZGVyLFxuICAgICAgICAgICAgZmlndXJlIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmaWd1cmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICAgICAgICAgICAgLnNtYWxsIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBAaW5jbHVkZSBncmlkbGVfc3RhdGUoc20geHMpIHtcbiAgICAgICAgLnNsaWRlciB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAtMjBweDtcbiAgICAgICAgICAgIGhlaWdodDogMzUwcHg7XG4gICAgICAgICAgICAuZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiA3dnc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLnNlY3Rpb24tY29sdW1uIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7XG4gICAgICAgIH1cbiAgICAgICAgLnNlY3Rpb24tbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgICAgIC5zZWN0aW9uLXBhcnRuZXJzIHtcbiAgICAgICAgICAgIG1hcmdpbjogNTBweCBhdXRvO1xuICAgICAgICB9XG4gICAgfVxufVxuLnJlbW9kYWwgLnd5c2l3eWcge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5zY3JvbGwtdG9wIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICByaWdodDogMDtcbiAgICB0b3A6IDcwJTtcbiAgICB3aWR0aDogNTZweDtcbiAgICBoZWlnaHQ6IDExMnB4O1xuICAgIHBhZGRpbmctdG9wOiA0MHB4O1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltZy9zY3JvbGwtdXAucG5nJykgNTAlIDI1cHggbm8tcmVwZWF0ICMwMGEyZmY7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBAaW5jbHVkZSBncmlkbGVfc3RhdGUoc20geHMpIHtcbiAgICAgICAgJiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG59IiwiLnBhZ2UtcHJpY2UtbGlzdCB7XG4gICAgLmhlYWRlci1pbWcge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDM3OHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA2MHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltZy9pbWdfaGVhZGVyX3ByaWNlLmpwZycpIG5vLXJlcGVhdDtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICBwYWRkaW5nOiAxNTBweCAwIDUwcHg7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgICBmb250LXNpemU6IDJ2dztcbiAgICAgICAgbGluZS1oZWlnaHQ6IDJ2dztcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIH1cbiAgICAucGFnZS1oZWFkZXIge1xuICAgICAgICAuZGVza3RvcC1tZW51IHtcbiAgICAgICAgICAgIGxpOm5vdCguYmFjaykge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgdGFibGUge1xuICAgICAgICBtYXgtd2lkdGg6IDk4MHB4O1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICB9XG59Il19 */
