html {
  box-sizing: border-box; }

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

:root {
  --s-grey: #333;
  --s-red: #ff4040; }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[class^='icon-']:before,
[class*=' icon-']:before {
  font-family: 'icomoon' !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

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

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

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

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

.icon-menu:before {
  content: "\e906"; }

.icon-plus:before, .box__readmore a:before {
  content: "\e909"; }

.icon-logo:before {
  content: "\e90a"; }

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

.icon-issuu:before {
  content: "\e901"; }

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

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

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

.icon-ticket:before, .path-frontpage .box-red:before, .component-screenings--day .component-screenings__tickets a:before, .component-screenings--movie .component-screenings__tickets a:before, .component-screenings--full .component-screenings-date .component-screenings--slots .component-screenings--slot .component-screenings--slot__film .component-screenings__info .component-screenings__tickets a:before, .node--type-film.node--view-mode-teaser .component-screenings__tickets a:before, .node--type-film.node--view-mode-teaser-detail .component-screenings__tickets a:before {
  content: "\e90c"; }

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

.icon-calendar:before, .component-screenings--movie .component-screenings__noresults .component-screenings__noresults--icon:before {
  content: "\e90e"; }

[class^='icona-']:after,
[class*=' icona-']:after {
  font-family: 'icomoon' !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

.icona-up:after {
  content: "\e90d";
  display: inline-block; }

.icona-down:after {
  content: "\e90d";
  transform: rotate(180deg);
  display: inline-block; }

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

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

audio:not([controls]) {
  display: none;
  height: 0; }

[hidden],
template {
  display: none; }

html {
  background: #fff;
  color: #333;
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%; }

html,
button,
input,
select,
textarea {
  font-family: sans-serif; }

body {
  margin: 0; }

a {
  background: transparent; }
  a:focus {
    outline: thin dotted; }
  a:hover, a:active {
    outline: 0; }

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

b,
strong {
  font-family: "HankenSans-ExtraBold", Helvetica, Arial, sans-serif;
  font-weight: normal; }

dfn {
  font-style: italic; }

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

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

pre {
  white-space: pre;
  white-space: pre-wrap;
  word-wrap: break-word; }

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

q:before,
q:after {
  content: '';
  content: none; }

small {
  font-size: 80%; }

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline; }

sup {
  top: -.5em; }

sub {
  bottom: -.25em; }

img {
  border: 0; }

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

figure {
  margin: 0; }

fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: .35em .625em .75em; }

legend {
  border: 0;
  padding: 0;
  white-space: normal; }

button,
input,
select,
textarea {
  font-family: inherit;
  font-size: 100%;
  margin: 0;
  vertical-align: baseline; }

button,
input {
  line-height: normal; }

button,
select {
  text-transform: none; }

button,
input[type='button'],
input[type='reset'],
input[type='submit'] {
  -webkit-appearance: button;
  cursor: pointer; }

button[disabled],
input[disabled] {
  cursor: default; }

input[type='checkbox'],
input[type='radio'] {
  box-sizing: border-box;
  padding: 0; }

input[type='search'] {
  -webkit-appearance: textfield;
  -moz-box-sizing: content-box;
  -webkit-box-sizing: content-box;
  box-sizing: content-box; }

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

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

textarea {
  overflow: auto;
  vertical-align: top; }

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

.clearfix {
  zoom: 1; }
  .clearfix:after {
    clear: both;
    content: ' ';
    display: block;
    font-size: 0;
    height: 0;
    visibility: hidden; }

.container {
  zoom: 1;
  box-sizing: content-box;
  margin-left: auto;
  margin-right: auto;
  max-width: 1170px;
  padding: 0 15px; }
  .container:after {
    clear: both;
    content: ' ';
    display: block;
    font-size: 0;
    height: 0;
    visibility: hidden; }

.container-fluid {
  width: 100%; }

header,
footer,
.main {
  zoom: 1; }
  header:after,
  footer:after,
  .main:after {
    clear: both;
    content: ' ';
    display: block;
    font-size: 0;
    height: 0;
    visibility: hidden; }

header,
header .container {
  overflow: visible; }

.lt-ie9 .column {
  float: left;
  display: block;
  margin-right: 2.5641%;
  width: 31.62393%; }
  .lt-ie9 .column:last-child {
    margin-right: 0; }

@media screen and (min-width: 45em) {
  .column {
    float: left;
    display: block;
    margin-right: 2.5641%;
    width: 31.62393%; }
    .column:last-child {
      margin-right: 0; } }

.lt-ie9 .layout-one-sidebar.layout-sidebar-first .layout-content {
  float: left;
  display: block;
  margin-right: 2.5641%;
  width: 70.08547%;
  margin-right: 0;
  float: right; }
  .lt-ie9 .layout-one-sidebar.layout-sidebar-first .layout-content:last-child {
    margin-right: 0; }

.lt-ie9 .layout-one-sidebar.layout-sidebar-second .layout-content {
  float: left;
  display: block;
  margin-right: 2.5641%;
  width: 70.08547%; }
  .lt-ie9 .layout-one-sidebar.layout-sidebar-second .layout-content:last-child {
    margin-right: 0; }

.lt-ie9 .layout-one-sidebar aside.layout-sidebar-first {
  float: left;
  display: block;
  margin-right: 2.5641%;
  width: 27.35043%;
  margin-top: 5px; }
  .lt-ie9 .layout-one-sidebar aside.layout-sidebar-first:last-child {
    margin-right: 0; }

.lt-ie9 .layout-one-sidebar aside.layout-sidebar-second {
  float: left;
  display: block;
  margin-right: 2.5641%;
  width: 27.35043%;
  margin-right: 0; }
  .lt-ie9 .layout-one-sidebar aside.layout-sidebar-second:last-child {
    margin-right: 0; }

@media screen and (min-width: 45em) {
  .layout-one-sidebar.layout-sidebar-first .layout-content {
    float: left;
    display: block;
    margin-right: 2.5641%;
    width: 70.08547%;
    margin-right: 0;
    float: right; }
    .layout-one-sidebar.layout-sidebar-first .layout-content:last-child {
      margin-right: 0; }
  .layout-one-sidebar.layout-sidebar-second .layout-content {
    float: left;
    display: block;
    margin-right: 2.5641%;
    width: 70.08547%; }
    .layout-one-sidebar.layout-sidebar-second .layout-content:last-child {
      margin-right: 0; }
  .layout-one-sidebar aside.layout-sidebar-first {
    float: left;
    display: block;
    margin-right: 2.5641%;
    width: 27.35043%;
    margin-top: 5px; }
    .layout-one-sidebar aside.layout-sidebar-first:last-child {
      margin-right: 0; }
  .layout-one-sidebar aside.layout-sidebar-second {
    float: left;
    display: block;
    margin-right: 2.5641%;
    width: 27.35043%;
    margin-right: 0; }
    .layout-one-sidebar aside.layout-sidebar-second:last-child {
      margin-right: 0; } }

.lt-ie9 .layout-no-sidebars .main {
  float: left;
  display: block;
  margin-right: 2.5641%;
  width: 100%;
  margin-right: 0; }
  .lt-ie9 .layout-no-sidebars .main:last-child {
    margin-right: 0; }

@media screen and (min-width: 45em) {
  .layout-no-sidebars .main {
    float: left;
    display: block;
    margin-right: 2.5641%;
    width: 100%;
    margin-right: 0; }
    .layout-no-sidebars .main:last-child {
      margin-right: 0; } }

.layout-content {
  margin-bottom: 20px; }

html {
  font-size: 106.25%;
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
  -webkit-font-smoothing: antialiased; }

html,
button,
input,
select,
textarea {
  font-family: "HankenSans-Light", Helvetica, Arial, sans-serif; }

body {
  font-size: 17px;
  font-size: 1rem;
  line-height: 1.35;
  font-family: "HankenSans-Light", Helvetica, Arial, sans-serif; }

h1 {
  color: #333;
  font-family: "HankenSans-ExtraBold", Helvetica, Arial, sans-serif;
  font-weight: normal;
  line-height: 1;
  font-size: 32px;
  font-size: 1.88235rem;
  margin: 0 0 20px 0;
  padding: 0; }

h2, .node-film__trailer .field-label-inline {
  color: #333;
  font-family: "HankenSans-ExtraBold", Helvetica, Arial, sans-serif;
  font-weight: normal;
  line-height: 1;
  font-size: 28px;
  font-size: 1.64706rem;
  margin: 0 0 10px 0;
  padding: 0; }

h3 {
  color: #333;
  font-family: "HankenSans-ExtraBold", Helvetica, Arial, sans-serif;
  font-weight: normal;
  line-height: 1;
  font-size: 24px;
  font-size: 1.41176rem;
  margin: 0 0 10px 0;
  padding: 0; }

h4, form label {
  color: #333;
  font-family: "HankenSans-ExtraBold", Helvetica, Arial, sans-serif;
  font-weight: normal;
  line-height: 1;
  font-size: 22px;
  font-size: 1.29412rem;
  margin: 0;
  padding: 0; }

h5 {
  color: #333;
  font-family: "HankenSans-ExtraBold", Helvetica, Arial, sans-serif;
  font-weight: normal;
  line-height: 1;
  font-size: 17px;
  font-size: 1rem;
  margin: 0;
  padding: 0; }

h6 {
  color: #333;
  font-family: "HankenSans-ExtraBold", Helvetica, Arial, sans-serif;
  font-weight: normal;
  line-height: 1;
  font-size: 12px;
  font-size: 0.70588rem;
  margin: 0;
  padding: 0; }

p {
  margin: 0 0 1em; }

span.ext {
  display: none; }

hr {
  border: 0;
  border-bottom: 1px solid #d9d9d9; }

header {
  min-height: 105px; }
  .lt-ie9 header .header {
    float: left; }
  @media screen and (min-width: 57em) {
    header .header {
      float: left; } }

.block-system-branding-block {
  display: block; }
  .block-system-branding-block .site-logo {
    padding-top: 15px;
    display: block;
    width: 210px;
    margin: 0 auto; }
  .lt-ie9 .block-system-branding-block {
    display: inline-block; }
    .lt-ie9 .block-system-branding-block .site-logo {
      display: inline-block;
      margin: 0;
      padding-top: 25px; }
      .lt-ie9 .block-system-branding-block .site-logo img {
        width: 210px; }
  @media screen and (min-width: 57em) {
    .block-system-branding-block {
      display: inline-block; }
      .block-system-branding-block .site-logo {
        display: inline-block;
        margin: 0;
        padding-top: 25px; }
        .block-system-branding-block .site-logo img {
          width: 210px; } }

footer {
  padding: 30px 0;
  text-align: center; }
  footer .developed-by-xio {
    font-size: 14px;
    font-size: 0.82353rem;
    text-align: center; }
    footer .developed-by-xio a.mailto span.mailto {
      display: none; }
  footer nav.menu--social-menu-icons {
    margin-top: 30px;
    margin-right: 5px; }
  footer nav.menu--button {
    visibility: hidden;
    text-align: center;
    margin-top: 15px; }
    .lt-ie9 footer nav.menu--button {
      visibility: visible; }
    @media screen and (min-width: 57em) {
      footer nav.menu--button {
        visibility: visible; } }
    footer nav.menu--button ul.menu li a {
      display: inline-block;
      top: 0;
      margin: 0; }

.lt-ie9 .path-frontpage.layout-one-sidebar .layout-content {
  float: left;
  display: block;
  margin-right: 2.5641%;
  width: 100%; }
  .lt-ie9 .path-frontpage.layout-one-sidebar .layout-content:last-child {
    margin-right: 0; }

.lt-ie9 .path-frontpage.layout-one-sidebar aside.layout-sidebar-first {
  float: left;
  display: block;
  margin-right: 2.5641%;
  width: 100%; }
  .lt-ie9 .path-frontpage.layout-one-sidebar aside.layout-sidebar-first:last-child {
    margin-right: 0; }
  .lt-ie9 .path-frontpage.layout-one-sidebar aside.layout-sidebar-first .field--name-field-homepage-box > .field__item {
    float: left;
    display: block;
    margin-right: 2.5641%;
    width: 48.71795%; }
    .lt-ie9 .path-frontpage.layout-one-sidebar aside.layout-sidebar-first .field--name-field-homepage-box > .field__item:last-child {
      margin-right: 0; }
    .lt-ie9 .path-frontpage.layout-one-sidebar aside.layout-sidebar-first .field--name-field-homepage-box > .field__item:nth-child(2n) {
      margin-right: 0; }

@media screen and (min-width: 45em) {
  .path-frontpage.layout-one-sidebar .layout-content {
    float: left;
    display: block;
    margin-right: 2.5641%;
    width: 100%; }
    .path-frontpage.layout-one-sidebar .layout-content:last-child {
      margin-right: 0; }
  .path-frontpage.layout-one-sidebar aside.layout-sidebar-first {
    float: left;
    display: block;
    margin-right: 2.5641%;
    width: 100%; }
    .path-frontpage.layout-one-sidebar aside.layout-sidebar-first:last-child {
      margin-right: 0; }
    .path-frontpage.layout-one-sidebar aside.layout-sidebar-first .field--name-field-homepage-box > .field__item {
      float: left;
      display: block;
      margin-right: 2.5641%;
      width: 48.71795%; }
      .path-frontpage.layout-one-sidebar aside.layout-sidebar-first .field--name-field-homepage-box > .field__item:last-child {
        margin-right: 0; }
      .path-frontpage.layout-one-sidebar aside.layout-sidebar-first .field--name-field-homepage-box > .field__item:nth-child(2n) {
        margin-right: 0; } }

.lt-ie9 .path-frontpage.layout-one-sidebar .layout-content {
  float: left;
  display: block;
  margin-right: 2.5641%;
  width: 70.08547%;
  margin-right: 0;
  float: right; }
  .lt-ie9 .path-frontpage.layout-one-sidebar .layout-content:last-child {
    margin-right: 0; }

.lt-ie9 .path-frontpage.layout-one-sidebar aside.layout-sidebar-first {
  float: left;
  display: block;
  margin-right: 2.5641%;
  width: 27.35043%; }
  .lt-ie9 .path-frontpage.layout-one-sidebar aside.layout-sidebar-first:last-child {
    margin-right: 0; }
  .lt-ie9 .path-frontpage.layout-one-sidebar aside.layout-sidebar-first .field--name-field-homepage-box > .field__item {
    float: left;
    display: block;
    margin-right: 2.5641%;
    width: 100%; }
    .lt-ie9 .path-frontpage.layout-one-sidebar aside.layout-sidebar-first .field--name-field-homepage-box > .field__item:last-child {
      margin-right: 0; }

@media screen and (min-width: 57em) {
  .path-frontpage.layout-one-sidebar .layout-content {
    float: left;
    display: block;
    margin-right: 2.5641%;
    width: 70.08547%;
    margin-right: 0;
    float: right; }
    .path-frontpage.layout-one-sidebar .layout-content:last-child {
      margin-right: 0; }
  .path-frontpage.layout-one-sidebar aside.layout-sidebar-first {
    float: left;
    display: block;
    margin-right: 2.5641%;
    width: 27.35043%; }
    .path-frontpage.layout-one-sidebar aside.layout-sidebar-first:last-child {
      margin-right: 0; }
    .path-frontpage.layout-one-sidebar aside.layout-sidebar-first .field--name-field-homepage-box > .field__item {
      float: left;
      display: block;
      margin-right: 2.5641%;
      width: 100%; }
      .path-frontpage.layout-one-sidebar aside.layout-sidebar-first .field--name-field-homepage-box > .field__item:last-child {
        margin-right: 0; } }

.path-frontpage .precontent,
.path-frontpage .shading_2,
.path-frontpage .boxes .box + .box,
.path-frontpage .block-content--type-logo-block {
  display: none; }

.path-frontpage .content {
  padding-bottom: 0; }

.path-frontpage footer {
  margin-top: 10px; }

.lt-ie9 .path-frontpage .precontent,
.lt-ie9 .path-frontpage .shading_1,
.lt-ie9 .path-frontpage .shading_2,
.lt-ie9 .path-frontpage .shading_3,
.lt-ie9 .path-frontpage .boxes .box + .box,
.lt-ie9 .path-frontpage .block-content--type-logo-block {
  display: block; }

.lt-ie9 .path-frontpage .content {
  padding-bottom: 65px;
  padding-top: 40px; }

.lt-ie9 .path-frontpage footer {
  margin-top: 30px; }

@media screen and (min-width: 45em) {
  .path-frontpage .precontent,
  .path-frontpage .shading_1,
  .path-frontpage .shading_2,
  .path-frontpage .shading_3,
  .path-frontpage .boxes .box + .box,
  .path-frontpage .block-content--type-logo-block {
    display: block; }
  .path-frontpage .content {
    padding-bottom: 65px;
    padding-top: 40px; }
  .path-frontpage footer {
    margin-top: 30px; } }

.path-frontpage .node--type-film.node--view-mode-teaser {
  float: left;
  display: block;
  margin-right: 2.5641%;
  width: 100%;
  margin: 5px 0 5px 0;
  text-align: center; }
  .path-frontpage .node--type-film.node--view-mode-teaser:last-child {
    margin-right: 0; }
  .path-frontpage .node--type-film.node--view-mode-teaser img {
    display: none; }
  .lt-ie9 .path-frontpage .node--type-film.node--view-mode-teaser {
    float: left;
    display: block;
    margin-right: 2.5641%;
    width: 31.62393%;
    font-size: 16px;
    font-size: 0.94118rem;
    margin: 50px 0 5px 0; }
    .lt-ie9 .path-frontpage .node--type-film.node--view-mode-teaser:last-child {
      margin-right: 0; }
    .lt-ie9 .path-frontpage .node--type-film.node--view-mode-teaser:nth-child(3n) {
      margin-right: 0; }
    .lt-ie9 .path-frontpage .node--type-film.node--view-mode-teaser:nth-child(3n+1) {
      clear: left; }
    .lt-ie9 .lt-ie9 .path-frontpage .node--type-film.node--view-mode-teaser {
      float: left;
      display: block;
      margin-right: 2.5641%;
      width: 14.52991%; }
      .lt-ie9 .lt-ie9 .path-frontpage .node--type-film.node--view-mode-teaser:last-child {
        margin-right: 0; }
      .lt-ie9 .lt-ie9 .path-frontpage .node--type-film.node--view-mode-teaser:nth-child(3n) {
        margin-right: 2.5641%; }
      .lt-ie9 .lt-ie9 .path-frontpage .node--type-film.node--view-mode-teaser:nth-child(3n+1) {
        clear: none; }
      .lt-ie9 .lt-ie9 .path-frontpage .node--type-film.node--view-mode-teaser:nth-child(6n) {
        margin-right: 0; }
      .lt-ie9 .lt-ie9 .path-frontpage .node--type-film.node--view-mode-teaser:nth-child(6n+1) {
        clear: left; }
    @media screen and (min-width: 45em) {
      .lt-ie9 .path-frontpage .node--type-film.node--view-mode-teaser {
        float: left;
        display: block;
        margin-right: 2.5641%;
        width: 14.52991%; }
        .lt-ie9 .path-frontpage .node--type-film.node--view-mode-teaser:last-child {
          margin-right: 0; }
        .lt-ie9 .path-frontpage .node--type-film.node--view-mode-teaser:nth-child(3n) {
          margin-right: 2.5641%; }
        .lt-ie9 .path-frontpage .node--type-film.node--view-mode-teaser:nth-child(3n+1) {
          clear: none; }
        .lt-ie9 .path-frontpage .node--type-film.node--view-mode-teaser:nth-child(6n) {
          margin-right: 0; }
        .lt-ie9 .path-frontpage .node--type-film.node--view-mode-teaser:nth-child(6n+1) {
          clear: left; } }
    .lt-ie9 .path-frontpage .node--type-film.node--view-mode-teaser img {
      display: block; }
  @media screen and (min-width: 45em) {
    .path-frontpage .node--type-film.node--view-mode-teaser {
      float: left;
      display: block;
      margin-right: 2.5641%;
      width: 31.62393%;
      font-size: 16px;
      font-size: 0.94118rem;
      margin: 50px 0 5px 0; }
      .path-frontpage .node--type-film.node--view-mode-teaser:last-child {
        margin-right: 0; }
      .path-frontpage .node--type-film.node--view-mode-teaser:nth-child(3n) {
        margin-right: 0; }
      .path-frontpage .node--type-film.node--view-mode-teaser:nth-child(3n+1) {
        clear: left; }
      .lt-ie9 .path-frontpage .node--type-film.node--view-mode-teaser {
        float: left;
        display: block;
        margin-right: 2.5641%;
        width: 14.52991%; }
        .lt-ie9 .path-frontpage .node--type-film.node--view-mode-teaser:last-child {
          margin-right: 0; }
        .lt-ie9 .path-frontpage .node--type-film.node--view-mode-teaser:nth-child(3n) {
          margin-right: 2.5641%; }
        .lt-ie9 .path-frontpage .node--type-film.node--view-mode-teaser:nth-child(3n+1) {
          clear: none; }
        .lt-ie9 .path-frontpage .node--type-film.node--view-mode-teaser:nth-child(6n) {
          margin-right: 0; }
        .lt-ie9 .path-frontpage .node--type-film.node--view-mode-teaser:nth-child(6n+1) {
          clear: left; } }
  @media screen and (min-width: 45em) and (min-width: 45em) {
    .path-frontpage .node--type-film.node--view-mode-teaser {
      float: left;
      display: block;
      margin-right: 2.5641%;
      width: 14.52991%; }
      .path-frontpage .node--type-film.node--view-mode-teaser:last-child {
        margin-right: 0; }
      .path-frontpage .node--type-film.node--view-mode-teaser:nth-child(3n) {
        margin-right: 2.5641%; }
      .path-frontpage .node--type-film.node--view-mode-teaser:nth-child(3n+1) {
        clear: none; }
      .path-frontpage .node--type-film.node--view-mode-teaser:nth-child(6n) {
        margin-right: 0; }
      .path-frontpage .node--type-film.node--view-mode-teaser:nth-child(6n+1) {
        clear: left; } }
  @media screen and (min-width: 45em) {
      .path-frontpage .node--type-film.node--view-mode-teaser img {
        display: block; } }

.path-frontpage .shading_3 {
  padding-top: 0; }

.path-frontpage h2.field-label-above, .path-frontpage .node-film__trailer .field-label-above.field-label-inline, .node-film__trailer .path-frontpage .field-label-above.field-label-inline {
  margin-bottom: 20px; }

.lt-ie9 .path-frontpage .shading_3 {
  padding-top: 50px; }

.lt-ie9 .path-frontpage h2.field-label-above, .lt-ie9 .path-frontpage .node-film__trailer .field-label-above.field-label-inline, .node-film__trailer .lt-ie9 .path-frontpage .field-label-above.field-label-inline {
  margin-bottom: 50px; }

@media screen and (min-width: 45em) {
  .path-frontpage .shading_3 {
    padding-top: 50px; }
  .path-frontpage h2.field-label-above, .path-frontpage .node-film__trailer .field-label-above.field-label-inline, .node-film__trailer .path-frontpage .field-label-above.field-label-inline {
    margin-bottom: 50px; } }

.navigation ul.links,
.navigation ul.menu {
  list-style: none;
  text-align: center;
  margin: 0; }
  .navigation ul.links > li,
  .navigation ul.menu > li {
    margin: 0;
    padding: 0;
    float: left; }
    .navigation ul.links > li > a,
    .navigation ul.menu > li > a {
      text-decoration: none;
      display: block; }
      .navigation ul.links > li > a:hover, .navigation ul.links > li > a:focus, .navigation ul.links > li > a.active,
      .navigation ul.menu > li > a:hover,
      .navigation ul.menu > li > a:focus,
      .navigation ul.menu > li > a.active {
        outline: none; }

.nav {
  text-align: right;
  padding-top: 20px;
  padding-bottom: 25px; }
  .nav .menu--social-menu-icons {
    margin-left: 15px; }
  .nav .menu--main {
    clear: both;
    margin-right: 165px; }
  .nav .menu--button {
    float: right; }

.menu--social-menu-icons ul.menu li a.icon-search {
  padding: 8px 10px 5px 12px;
  background: #333;
  color: #fff;
  margin-left: 15px; }
  .menu--social-menu-icons ul.menu li a.icon-search:hover {
    background: #ff4040;
    color: #fff; }

footer .menu--social-menu-icons ul.menu li a.icon-search {
  display: none; }

.menu--social-menu ul.menu li a {
  font-size: 14px;
  font-size: 0.82353rem;
  border-bottom: 1px solid #fff;
  color: #333;
  display: block;
  font-family: "HankenSans-Light", Helvetica, Arial, sans-serif;
  line-height: 1;
  margin-left: 15px;
  text-transform: uppercase; }
  .menu--social-menu ul.menu li a:hover, .menu--social-menu ul.menu li a:focus, .menu--social-menu ul.menu li a.active {
    border-color: #333; }

.menu--social-menu ul.menu li.menu-item--active-trail a {
  border-color: #333; }

.menu--social-menu-icons ul.menu li {
  float: none;
  display: inline-block; }
  .menu--social-menu-icons ul.menu li a {
    color: #333;
    display: block;
    font-size: 20px;
    margin-left: 5px;
    position: relative;
    transition: background 150ms linear, color 150ms linear;
    -o-transition: background 150ms linear, color 150ms linear;
    -ms-transition: background 150ms linear, color 150ms linear;
    -webkit-font-smoothing: antialiased; }
    .menu--social-menu-icons ul.menu li a:hover, .menu--social-menu-icons ul.menu li a:focus, .menu--social-menu-icons ul.menu li a.active {
      color: #ff4040; }

.menu--main {
  margin-top: 18px; }
  .menu--main ul.menu li a {
    font-size: 30px;
    font-size: 1.76471rem;
    border-bottom: 2px solid #fff;
    color: #333;
    display: block;
    font-family: "HankenSans-ExtraBold", Helvetica, Arial, sans-serif;
    font-weight: normal;
    line-height: 1;
    margin-left: 30px; }
    .menu--main ul.menu li a:hover, .menu--main ul.menu li a:focus, .menu--main ul.menu li a.active, .menu--main ul.menu li a.is-active {
      border-color: #333; }
  .menu--main ul.menu li.menu-item--active-trail a {
    border-color: #333; }

.menu--button {
  display: inline-block; }
  .menu--button ul.menu li a {
    font-size: 15px;
    font-size: 0.88235rem;
    border: 0;
    border-radius: 2px;
    box-shadow: none;
    cursor: pointer;
    display: inline-block;
    font-family: "HankenSans-Regular", Helvetica, Arial, sans-serif;
    line-height: 1;
    padding: 20px 10px;
    text-decoration: none;
    text-shadow: none;
    text-transform: uppercase;
    transition: background 150ms linear, color 150ms linear;
    -o-transition: background 150ms linear, color 150ms linear;
    -ms-transition: background 150ms linear, color 150ms linear;
    -webkit-font-smoothing: antialiased;
    background: #ff4040;
    color: #fff;
    display: inline-block;
    padding: 9px 19px 11px;
    text-align: center;
    position: relative;
    top: -2px; }
    .menu--button ul.menu li a.active, .menu--button ul.menu li a:hover, .menu--button ul.menu li a:focus {
      background: #333;
      color: #fff;
      outline: none; }
      .menu--button ul.menu li a.active a, .menu--button ul.menu li a:hover a, .menu--button ul.menu li a:focus a {
        color: #fff; }
    .menu--button ul.menu li a span.ext {
      display: none; }
    .menu--button ul.menu li a.active, .menu--button ul.menu li a:hover, .menu--button ul.menu li a:focus {
      background: #333;
      text-decoration: none; }

.mobile-menu {
  display: block;
  position: absolute;
  top: -3px;
  right: 0;
  padding: 15px;
  cursor: pointer;
  z-index: 999; }
  .lt-ie9 .mobile-menu {
    display: none; }
  @media screen and (min-width: 57em) {
    .mobile-menu {
      display: none; } }

header .nav {
  display: block;
  float: none;
  text-align: center; }
  header .nav .menu--button {
    float: none; }
    .lt-ie9 header .nav .menu--button {
      float: right; }
    @media screen and (min-width: 57em) {
      header .nav .menu--button {
        float: right; } }
  header .nav .menu--social-menu,
  header .nav .menu--social-menu-icons,
  header .nav .menu--main {
    display: none; }
  .lt-ie9 header .nav {
    float: right;
    text-align: right; }
    .lt-ie9 header .nav .menu--social-menu {
      display: inline-block; }
    .lt-ie9 header .nav .menu--social-menu-icons {
      display: inline-block; }
    .lt-ie9 header .nav .menu--main {
      display: block; }
  @media screen and (min-width: 57em) {
    header .nav {
      float: right;
      text-align: right; }
      header .nav .menu--social-menu {
        display: inline-block; }
      header .nav .menu--social-menu-icons {
        display: inline-block; }
      header .nav .menu--main {
        display: block; } }

.sb-slidebar {
  background: #222222;
  padding: 8px 20px;
  text-align: center; }
  .sb-slidebar nav.menu--social-menu,
  .sb-slidebar nav.menu--main {
    padding: 0;
    margin: 0; }
    .sb-slidebar nav.menu--social-menu ul.menu,
    .sb-slidebar nav.menu--main ul.menu {
      display: block;
      padding: 0;
      margin: 0; }
      .sb-slidebar nav.menu--social-menu ul.menu li,
      .sb-slidebar nav.menu--main ul.menu li {
        display: block;
        float: none;
        padding: 0;
        margin: 0;
        text-align: left; }
        .sb-slidebar nav.menu--social-menu ul.menu li a,
        .sb-slidebar nav.menu--main ul.menu li a {
          font-size: 17px;
          font-size: 1rem;
          color: #fff;
          border: 0;
          display: block;
          font-family: "HankenSans-Light", Helvetica, Arial, sans-serif;
          font-weight: normal;
          line-height: 1;
          padding: 5px 0;
          margin: 0;
          text-decoration: none;
          text-transform: none; }
          .sb-slidebar nav.menu--social-menu ul.menu li a:hover, .sb-slidebar nav.menu--social-menu ul.menu li a:focus, .sb-slidebar nav.menu--social-menu ul.menu li a.active,
          .sb-slidebar nav.menu--main ul.menu li a:hover,
          .sb-slidebar nav.menu--main ul.menu li a:focus,
          .sb-slidebar nav.menu--main ul.menu li a.active {
            color: #ff4040; }
  .sb-slidebar nav.menu--social-menu-icons {
    margin-top: 20px; }
    .sb-slidebar nav.menu--social-menu-icons ul.menu li a {
      color: #fff; }
      .sb-slidebar nav.menu--social-menu-icons ul.menu li a:hover, .sb-slidebar nav.menu--social-menu-icons ul.menu li a:focus, .sb-slidebar nav.menu--social-menu-icons ul.menu li a.active {
        color: #ff4040; }
  .sb-slidebar nav.menu--button {
    text-align: center;
    margin-top: 15px; }
    .sb-slidebar nav.menu--button ul.menu li a {
      display: inline-block;
      top: 0;
      margin: 0; }

button,
input,
select,
textarea {
  font-family: "HankenSans-Light", Helvetica, Arial, sans-serif; }

form input[type='text'],
form input[type='email'],
form input[type='password'],
form input[type='url'],
form input[type='tel'],
form input[type='number'],
form input[type='date'] {
  background: #fff;
  border: 1px solid #d9d9d9;
  box-sizing: border-box;
  border-radius: 2px;
  padding: 10px;
  width: 100%; }
  .lt-ie9 form input[type='text'], .lt-ie9
  form input[type='email'], .lt-ie9
  form input[type='password'], .lt-ie9
  form input[type='url'], .lt-ie9
  form input[type='tel'], .lt-ie9
  form input[type='number'], .lt-ie9
  form input[type='date'] {
    max-width: 50%; }
  @media screen and (min-width: 45em) {
    form input[type='text'],
    form input[type='email'],
    form input[type='password'],
    form input[type='url'],
    form input[type='tel'],
    form input[type='number'],
    form input[type='date'] {
      max-width: 50%; } }
  form input[type='text']:focus,
  form input[type='email']:focus,
  form input[type='password']:focus,
  form input[type='url']:focus,
  form input[type='tel']:focus,
  form input[type='number']:focus,
  form input[type='date']:focus {
    border-color: #333;
    outline: none; }

form textarea {
  background: #fff;
  border: 1px solid #d9d9d9;
  border-radius: 2px;
  box-sizing: border-box;
  min-height: 100px;
  padding: 10px;
  width: 100%; }
  form textarea:focus {
    border-color: #333;
    outline: none; }

form .form-radios input[type='radio'] {
  margin: 0 3px 0 1px; }
  form .form-radios input[type='radio']:focus {
    border-color: #333;
    outline: none; }

form .form-radios label {
  color: #333;
  display: inline-block;
  font-size: 17px;
  font-family: "HankenSans-Light", Helvetica, Arial, sans-serif;
  margin: 10px 0; }

form .form-checks input[type='checkbox'] {
  margin: 0 3px 0 1px; }
  form .form-checks input[type='checkbox']:focus {
    border-color: #333;
    outline: none; }

form .form-checks label {
  color: #333;
  display: inline-block;
  font-size: 17px;
  font-family: "HankenSans-Light", Helvetica, Arial, sans-serif;
  margin: 10px 0; }

form select {
  background: #fff;
  border: 1px solid #d9d9d9;
  box-sizing: border-box;
  min-height: 40px;
  padding: 10px;
  width: 100%; }
  .lt-ie9 form select {
    max-width: 50%; }
  @media screen and (min-width: 45em) {
    form select {
      max-width: 50%; } }
  form select:focus {
    border-color: #333;
    outline: none; }

form label {
  display: block;
  margin: 20px 0 5px; }

form input.button,
form button {
  font-size: 15px;
  font-size: 0.88235rem;
  border: 0;
  border-radius: 2px;
  box-shadow: none;
  cursor: pointer;
  display: inline-block;
  font-family: "HankenSans-Regular", Helvetica, Arial, sans-serif;
  line-height: 1;
  padding: 20px 10px;
  text-decoration: none;
  text-shadow: none;
  text-transform: uppercase;
  transition: background 150ms linear, color 150ms linear;
  -o-transition: background 150ms linear, color 150ms linear;
  -ms-transition: background 150ms linear, color 150ms linear;
  -webkit-font-smoothing: antialiased; }
  form input.button.active, form input.button:hover, form input.button:focus,
  form button.active,
  form button:hover,
  form button:focus {
    background: #333;
    color: #fff;
    outline: none; }
    form input.button.active a, form input.button:hover a, form input.button:focus a,
    form button.active a,
    form button:hover a,
    form button:focus a {
      color: #fff; }
  form input.button span.ext,
  form button span.ext {
    display: none; }

body {
  background-color: black !important; }

.row {
  display: flex; }

.col.iframe {
  width: 100%;
  height: 1080px; }

.col.video {
  display: flex;
  flex-direction: column; }
  .col.video .video-container {
    width: 960px;
    height: 540px; }
  .col.video video {
    width: 100%; }

.col .image-container {
  position: relative;
  width: 960px;
  height: 540px;
  /* Set to the desired height, or auto for intrinsic height */ }

.col .image-slide {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-size: cover;
  background-position: center;
  transition: opacity 2s ease-in-out;
  /* Smooth transition for 2 seconds */
  opacity: 0;
  /* Start with all images transparent */
  z-index: 0;
  /* Stack below the active image */ }

.col .image-slide.active {
  opacity: 1;
  z-index: 1;
  /* Ensure the active image is visible above the others */ }

.kiosk .logo {
  margin-top: 20px;
  width: 200px;
  margin-left: auto;
  margin-right: auto; }

.kiosk .field--name-body {
  padding: 20px;
  font-size: xx-large; }

.page-node-type-kiosk .block-system-branding-block .site-logo {
  padding-top: 15px; }

.page-node-type-kiosk .content {
  padding-bottom: unset; }

.page-node-type-kiosk .layout-content {
  margin-bottom: unset; }

#sb-site {
  background: url("../img/bg.jpg") center top; }

.content {
  padding-bottom: 65px; }

.shading_1,
.shading_2,
.shading_3 {
  padding: 50px 0; }
  .shading_1 h2, .shading_1 .node-film__trailer .field-label-inline, .node-film__trailer .shading_1 .field-label-inline,
  .shading_2 h2,
  .shading_2 .node-film__trailer .field-label-inline, .node-film__trailer
  .shading_2 .field-label-inline,
  .shading_3 h2,
  .shading_3 .node-film__trailer .field-label-inline, .node-film__trailer
  .shading_3 .field-label-inline {
    text-align: center;
    margin-bottom: 50px; }

header,
footer,
.precontent,
.shading_1,
.shading_3 {
  background: #fff; }
  header + footer,
  footer + footer,
  .precontent + footer,
  .shading_1 + footer,
  .shading_3 + footer {
    border-top: 1px solid #d9d9d9; }
    .path-frontpage header + footer, .path-frontpage
    footer + footer, .path-frontpage
    .precontent + footer, .path-frontpage
    .shading_1 + footer, .path-frontpage
    .shading_3 + footer {
      border: 0; }

.path-frontpage .content,
.path-frontpage .shading_2 {
  background: #fff; }

.path-frontpage .shading_1,
.path-frontpage .shading_3 {
  background: none; }

div.button--red a,
a.button--red {
  font-size: 15px;
  font-size: 0.88235rem;
  border: 0;
  border-radius: 2px;
  box-shadow: none;
  cursor: pointer;
  display: inline-block;
  font-family: "HankenSans-Regular", Helvetica, Arial, sans-serif;
  line-height: 1;
  padding: 20px 10px;
  text-decoration: none;
  text-shadow: none;
  text-transform: uppercase;
  transition: background 150ms linear, color 150ms linear;
  -o-transition: background 150ms linear, color 150ms linear;
  -ms-transition: background 150ms linear, color 150ms linear;
  -webkit-font-smoothing: antialiased;
  background: #ff4040;
  color: #fff;
  display: inline-block;
  padding: 9px 19px 11px;
  text-align: center; }
  div.button--red a.active, div.button--red a:hover, div.button--red a:focus,
  a.button--red.active,
  a.button--red:hover,
  a.button--red:focus {
    background: #333;
    color: #fff;
    outline: none; }
    div.button--red a.active a, div.button--red a:hover a, div.button--red a:focus a,
    a.button--red.active a,
    a.button--red:hover a,
    a.button--red:focus a {
      color: #fff; }
  div.button--red a span.ext,
  a.button--red span.ext {
    display: none; }
  div.button--red a.active, div.button--red a:hover, div.button--red a:focus,
  a.button--red.active,
  a.button--red:hover,
  a.button--red:focus {
    background: #333;
    text-decoration: none; }

div.button--black a,
a.button--black {
  font-size: 15px;
  font-size: 0.88235rem;
  border: 0;
  border-radius: 2px;
  box-shadow: none;
  cursor: pointer;
  display: inline-block;
  font-family: "HankenSans-Regular", Helvetica, Arial, sans-serif;
  line-height: 1;
  padding: 20px 10px;
  text-decoration: none;
  text-shadow: none;
  text-transform: uppercase;
  transition: background 150ms linear, color 150ms linear;
  -o-transition: background 150ms linear, color 150ms linear;
  -ms-transition: background 150ms linear, color 150ms linear;
  -webkit-font-smoothing: antialiased;
  background: #333;
  color: #fff;
  display: inline-block;
  padding: 9px 19px 11px;
  text-align: center; }
  div.button--black a.active, div.button--black a:hover, div.button--black a:focus,
  a.button--black.active,
  a.button--black:hover,
  a.button--black:focus {
    background: #333;
    color: #fff;
    outline: none; }
    div.button--black a.active a, div.button--black a:hover a, div.button--black a:focus a,
    a.button--black.active a,
    a.button--black:hover a,
    a.button--black:focus a {
      color: #fff; }
  div.button--black a span.ext,
  a.button--black span.ext {
    display: none; }
  div.button--black a.active, div.button--black a:hover, div.button--black a:focus,
  a.button--black.active,
  a.button--black:hover,
  a.button--black:focus {
    background: #ff4040;
    text-decoration: none; }

ul.pager {
  list-style: none;
  margin: 0;
  padding: 0; }
  ul.pager li.pager__item {
    list-style: none;
    margin: 0;
    padding: 0;
    text-align: center; }
    ul.pager li.pager__item a {
      font-size: 15px;
      font-size: 0.88235rem;
      border: 0;
      border-radius: 2px;
      box-shadow: none;
      cursor: pointer;
      display: inline-block;
      font-family: "HankenSans-Regular", Helvetica, Arial, sans-serif;
      line-height: 1;
      padding: 20px 10px;
      text-decoration: none;
      text-shadow: none;
      text-transform: uppercase;
      transition: background 150ms linear, color 150ms linear;
      -o-transition: background 150ms linear, color 150ms linear;
      -ms-transition: background 150ms linear, color 150ms linear;
      -webkit-font-smoothing: antialiased;
      background: #ff4040;
      color: #fff;
      display: inline-block;
      padding: 9px 19px 11px;
      text-align: center; }
      ul.pager li.pager__item a.active, ul.pager li.pager__item a:hover, ul.pager li.pager__item a:focus {
        background: #333;
        color: #fff;
        outline: none; }
        ul.pager li.pager__item a.active a, ul.pager li.pager__item a:hover a, ul.pager li.pager__item a:focus a {
          color: #fff; }
      ul.pager li.pager__item a span.ext {
        display: none; }
      ul.pager li.pager__item a.active, ul.pager li.pager__item a:hover, ul.pager li.pager__item a:focus {
        background: #333;
        text-decoration: none; }

.subcontent {
  clear: both; }

footer {
  padding-bottom: 0; }

.totop {
  background: #ff4040;
  bottom: 0;
  display: none;
  height: 44px;
  overflow: hidden;
  padding: 4px 20px;
  position: fixed;
  right: 0;
  width: 100%;
  z-index: 999; }
  .totop .icon-up {
    color: white;
    cursor: pointer;
    display: block;
    float: right;
    font-size: 28px;
    height: 30px;
    margin-top: 2px;
    width: 30px;
    transition: background 150ms linear, color 150ms linear;
    -o-transition: background 150ms linear, color 150ms linear;
    -ms-transition: background 150ms linear, color 150ms linear; }
    .totop .icon-up:hover, .totop .icon-up:focus {
      color: #333; }
  .totop nav {
    float: right;
    margin: 2px 20px 0 0; }

.box-black, .box-red, .box-blue {
  background: #333;
  color: #fff;
  margin-bottom: 20px;
  padding: 30px; }
  .box-black a, .box-red a, .box-blue a {
    color: #fff; }
    .box-black a:hover, .box-red a:hover, .box-blue a:hover, .box-black a:focus, .box-red a:focus, .box-blue a:focus, .box-black a.active, .box-red a.active, .box-blue a.active {
      color: #fff; }
  .box-black h3, .box-red h3, .box-blue h3 {
    color: #fff;
    margin-bottom: 25px; }

.box-red {
  background: #ff4040; }
  .path-frontpage .box-red:before {
    font-family: 'icomoon' !important;
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    margin-right: 5px;
    font-size: 27px;
    float: left; }

.box-blue {
  background: #0400FC; }

.box__icon {
  float: left;
  margin-right: 5px; }

.box__readmore a {
  font-size: 15px;
  font-size: 0.88235rem;
  font-family: "HankenSans-Light", Helvetica, Arial, sans-serif;
  text-transform: uppercase;
  text-decoration: none; }
  .box__readmore a:before {
    content: '+';
    display: inline-block;
    text-decoration: none;
    padding-right: 4px; }

.breadcrumb {
  font-size: 12px;
  font-size: 0.70588rem;
  text-transform: uppercase; }
  .breadcrumb a {
    color: #333; }

.sliding-popup-bottom {
  background: #333;
  padding: 20px 0; }

.popup-content {
  zoom: 1;
  box-sizing: content-box;
  margin-left: auto;
  margin-right: auto;
  max-width: 1170px;
  padding: 0 15px;
  background: #333; }
  .popup-content:after {
    clear: both;
    content: ' ';
    display: block;
    font-size: 0;
    height: 0;
    visibility: hidden; }

.eu-cookie-compliance-message p {
  font-size: 16px;
  font-size: 0.94118rem; }

.eu-cookie-compliance-message h2, .eu-cookie-compliance-message .node-film__trailer .field-label-inline, .node-film__trailer .eu-cookie-compliance-message .field-label-inline {
  font-size: 22px;
  font-size: 1.29412rem; }

.eu-cookie-compliance-buttons {
  display: flex; }
  .eu-cookie-compliance-buttons button {
    font-size: 15px;
    font-size: 0.88235rem;
    border: 0;
    border-radius: 2px;
    box-shadow: none;
    cursor: pointer;
    display: inline-block;
    font-family: "HankenSans-Regular", Helvetica, Arial, sans-serif;
    line-height: 1;
    padding: 20px 10px;
    text-decoration: none;
    text-shadow: none;
    text-transform: uppercase;
    transition: background 150ms linear, color 150ms linear;
    -o-transition: background 150ms linear, color 150ms linear;
    -ms-transition: background 150ms linear, color 150ms linear;
    -webkit-font-smoothing: antialiased;
    background-color: #ededed;
    color: #000;
    padding: 15px 10px;
    font-weight: bold;
    background-image: none;
    margin-top: 10px; }
    .eu-cookie-compliance-buttons button.active, .eu-cookie-compliance-buttons button:hover, .eu-cookie-compliance-buttons button:focus {
      background: #333;
      color: #fff;
      outline: none; }
      .eu-cookie-compliance-buttons button.active a, .eu-cookie-compliance-buttons button:hover a, .eu-cookie-compliance-buttons button:focus a {
        color: #fff; }
    .eu-cookie-compliance-buttons button span.ext {
      display: none; }
    .eu-cookie-compliance-buttons button.decline-button {
      margin-left: 10px; }

.eu-cookie-compliance-more-button {
  font-size: 16px;
  font-size: 0.94118rem;
  text-transform: uppercase;
  font-weight: bold;
  line-height: 1.4;
  margin: 0 0 5px 0; }
  .eu-cookie-compliance-more-button:hover {
    text-decoration: none; }

.field--name-facebook-comments {
  margin-top: 50px;
  width: 100%; }

.iframe-wrapper {
  clear: left;
  position: relative;
  padding-bottom: 56.25%;
  padding-top: 25px;
  height: 0;
  margin: 0 0 10px; }
  .iframe-wrapper iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%; }

.logo--link {
  display: inline-block;
  margin: 0 10px 20px; }
  .logo--link img {
    height: 40px;
    width: auto; }
  .lt-ie9 .logo--link {
    margin: 0 20px 20px; }
    .lt-ie9 .logo--link img {
      height: 60px; }
  @media screen and (min-width: 45em) {
    .logo--link {
      margin: 0 20px 20px; }
      .logo--link img {
        height: 60px; } }

.component-screenings--day {
  border-bottom: 1px solid #d9d9d9;
  margin-top: 0; }
  .component-screenings--day .component-screenings__row {
    border-top: 1px solid #d9d9d9;
    clear: both;
    overflow: hidden;
    padding: 16px 0 14px; }
  .component-screenings--day .component-screenings__title {
    margin: 0 30px 0 10px;
    box-sizing: border-box;
    font-family: "HankenSans-Light", Helvetica, Arial, sans-serif;
    display: inline-block;
    padding-bottom: 4px;
    margin-left: 10px; }
    .lt-ie9 .component-screenings--day .component-screenings__title {
      margin: 0 10px; }
    @media screen and (min-width: 45em) {
      .component-screenings--day .component-screenings__title {
        margin: 0 10px; } }
  .component-screenings--day .component-screenings__time {
    min-height: 25px; }
    .component-screenings--day .component-screenings__time a {
      text-decoration: underline; }
  .component-screenings--day .component-screenings__tickets a {
    font-size: 18px;
    text-decoration: none;
    display: block;
    max-height: 24px;
    max-width: 32px;
    overflow: hidden;
    color: #333; }
    .lt-ie9 .component-screenings--day .component-screenings__tickets a {
      font-size: 17px;
      padding-top: 2px; }
    @media screen and (min-width: 45em) {
      .component-screenings--day .component-screenings__tickets a {
        font-size: 17px;
        padding-top: 2px; } }
    .component-screenings--day .component-screenings__tickets a:before {
      font-family: 'icomoon' !important;
      speak: none;
      font-style: normal;
      font-weight: normal;
      font-variant: normal;
      text-transform: none;
      line-height: 1;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      margin-right: 20px; }
    .component-screenings--day .component-screenings__tickets a:hover {
      color: #ff4040; }
  .component-screenings--day .component-screenings__label--last {
    background: #ff4040;
    color: #fff;
    font-family: "HankenSans-Regular", Helvetica, Arial, sans-serif;
    line-height: 1;
    text-transform: uppercase;
    display: inline-block;
    margin: 0 0 1px 10px;
    padding: 5px 11px 6px 11px;
    font-size: 13px;
    text-align: left;
    text-decoration: none;
    color: #fff; }
    .lt-ie9 .component-screenings--day .component-screenings__label--last {
      margin-left: 10px; }
    @media screen and (min-width: 45em) {
      .component-screenings--day .component-screenings__label--last {
        margin-left: 10px; } }
  .component-screenings--day .component-screening__packages {
    display: flex;
    flex-direction: column; }
    .component-screenings--day .component-screening__packages a {
      text-transform: uppercase;
      font-size: .7rem;
      color: var(--s-grey); }
      .component-screenings--day .component-screening__packages a:hover {
        text-decoration: underline; }
  .component-screenings--day .component-screenings__row:first-child {
    border-top: 0; }
  .component-screenings--day .component-screenings__info {
    margin-bottom: 0; }
    .lt-ie9 .component-screenings--day .component-screenings__info {
      float: left;
      display: block;
      margin-right: 2.5641%;
      width: 48.71795%; }
      .lt-ie9 .component-screenings--day .component-screenings__info:last-child {
        margin-right: 0; }
    @media screen and (min-width: 45em) {
      .component-screenings--day .component-screenings__info {
        float: left;
        display: block;
        margin-right: 2.5641%;
        width: 48.71795%; }
        .component-screenings--day .component-screenings__info:last-child {
          margin-right: 0; } }
  .component-screenings--day .component-screenings__times {
    margin: 6px 10px 0; }
    .lt-ie9 .component-screenings--day .component-screenings__times {
      float: left;
      display: block;
      margin-right: 2.5641%;
      width: 48.71795%;
      margin-right: 0;
      margin: 0; }
      .lt-ie9 .component-screenings--day .component-screenings__times:last-child {
        margin-right: 0; }
    @media screen and (min-width: 45em) {
      .component-screenings--day .component-screenings__times {
        float: left;
        display: block;
        margin-right: 2.5641%;
        width: 48.71795%;
        margin-right: 0;
        margin: 0; }
        .component-screenings--day .component-screenings__times:last-child {
          margin-right: 0; } }
  .component-screenings--day .component-screenings__label,
  .component-screenings--day .component-screenings__movie-package {
    font-family: "HankenSans-Regular", Helvetica, Arial, sans-serif;
    font-size: 13px;
    text-transform: uppercase;
    margin-left: 10px;
    display: inline-block; }
    .component-screenings--day .component-screenings__label a,
    .component-screenings--day .component-screenings__movie-package a {
      color: #333;
      text-decoration: none; }
    .component-screenings--day .component-screenings__label.active, .component-screenings--day .component-screenings__label:hover, .component-screenings--day .component-screenings__label:focus,
    .component-screenings--day .component-screenings__movie-package.active,
    .component-screenings--day .component-screenings__movie-package:hover,
    .component-screenings--day .component-screenings__movie-package:focus {
      text-decoration: underline; }
  .component-screenings--day .component-screening__packages {
    display: flex;
    flex-direction: column; }
    .component-screenings--day .component-screening__packages a {
      text-transform: uppercase;
      font-size: .7rem;
      color: var(--s-grey); }
      .component-screenings--day .component-screening__packages a:hover {
        text-decoration: underline; }
  .component-screenings--day .component-screenings__time a {
    text-decoration: none; }
  .component-screenings--day .component-screenings__time {
    float: left;
    display: block;
    margin-right: 2.5641%;
    width: 14.52991%; }
    .component-screenings--day .component-screenings__time:last-child {
      margin-right: 0; }
  .component-screenings--day .component-screenings__tickets {
    float: left;
    display: block;
    margin-right: 2.5641%;
    width: 14.52991%;
    margin-right: 0; }
    .component-screenings--day .component-screenings__tickets:last-child {
      margin-right: 0; }

.component-screenings--movie {
  border-bottom: 1px solid #d9d9d9;
  border-bottom: none; }
  .component-screenings--movie .component-screenings__row {
    border-top: 1px solid #d9d9d9;
    clear: both;
    overflow: hidden;
    padding: 16px 0 14px; }
  .component-screenings--movie .component-screenings__title {
    margin: 0 30px 0 10px;
    box-sizing: border-box;
    font-family: "HankenSans-Light", Helvetica, Arial, sans-serif;
    display: inline-block;
    padding-bottom: 4px;
    margin-left: 10px; }
    .lt-ie9 .component-screenings--movie .component-screenings__title {
      margin: 0 10px; }
    @media screen and (min-width: 45em) {
      .component-screenings--movie .component-screenings__title {
        margin: 0 10px; } }
  .component-screenings--movie .component-screenings__time {
    min-height: 25px; }
    .component-screenings--movie .component-screenings__time a {
      text-decoration: underline; }
  .component-screenings--movie .component-screenings__tickets a {
    font-size: 18px;
    text-decoration: none;
    display: block;
    max-height: 24px;
    max-width: 32px;
    overflow: hidden;
    color: #333; }
    .lt-ie9 .component-screenings--movie .component-screenings__tickets a {
      font-size: 17px;
      padding-top: 2px; }
    @media screen and (min-width: 45em) {
      .component-screenings--movie .component-screenings__tickets a {
        font-size: 17px;
        padding-top: 2px; } }
    .component-screenings--movie .component-screenings__tickets a:before {
      font-family: 'icomoon' !important;
      speak: none;
      font-style: normal;
      font-weight: normal;
      font-variant: normal;
      text-transform: none;
      line-height: 1;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      margin-right: 20px; }
    .component-screenings--movie .component-screenings__tickets a:hover {
      color: #ff4040; }
  .component-screenings--movie .component-screenings__label--last {
    background: #ff4040;
    color: #fff;
    font-family: "HankenSans-Regular", Helvetica, Arial, sans-serif;
    line-height: 1;
    text-transform: uppercase;
    display: inline-block;
    margin: 0 0 1px 10px;
    padding: 5px 11px 6px 11px;
    font-size: 13px;
    text-align: left;
    text-decoration: none;
    color: #fff; }
    .lt-ie9 .component-screenings--movie .component-screenings__label--last {
      margin-left: 10px; }
    @media screen and (min-width: 45em) {
      .component-screenings--movie .component-screenings__label--last {
        margin-left: 10px; } }
  .component-screenings--movie .component-screening__packages {
    display: flex;
    flex-direction: column; }
    .component-screenings--movie .component-screening__packages a {
      text-transform: uppercase;
      font-size: .7rem;
      color: var(--s-grey); }
      .component-screenings--movie .component-screening__packages a:hover {
        text-decoration: underline; }
  .component-screenings--movie .component-screenings__rows {
    border-bottom: 1px solid #d9d9d9; }
  .component-screenings--movie .component-screenings__label {
    margin: 6px 10px 0;
    font-family: "HankenSans-Regular", Helvetica, Arial, sans-serif;
    font-size: 13px;
    text-transform: uppercase;
    margin-left: 10px;
    display: inline-block; }
    .component-screenings--movie .component-screenings__label a {
      color: #333;
      text-decoration: none; }
    .component-screenings--movie .component-screenings__label.active, .component-screenings--movie .component-screenings__label:hover, .component-screenings--movie .component-screenings__label:focus {
      text-decoration: underline; }
  .component-screenings--movie .component-screenings__info {
    margin-bottom: 10px; }
    .lt-ie9 .component-screenings--movie .component-screenings__info {
      float: left;
      display: block;
      margin-right: 3.09278%;
      width: 38.14433%;
      margin-bottom: 0; }
      .lt-ie9 .component-screenings--movie .component-screenings__info:last-child {
        margin-right: 0; }
    @media screen and (min-width: 57em) {
      .component-screenings--movie .component-screenings__info {
        float: left;
        display: block;
        margin-right: 3.09278%;
        width: 38.14433%;
        margin-bottom: 0; }
        .component-screenings--movie .component-screenings__info:last-child {
          margin-right: 0; } }
  .component-screenings--movie .component-screenings__times {
    position: relative;
    margin: 6px 10px 0; }
    .lt-ie9 .component-screenings--movie .component-screenings__times {
      float: left;
      display: block;
      margin-right: 3.09278%;
      width: 58.76289%;
      margin: 0; }
      .lt-ie9 .component-screenings--movie .component-screenings__times:last-child {
        margin-right: 0; }
    @media screen and (min-width: 57em) {
      .component-screenings--movie .component-screenings__times {
        float: left;
        display: block;
        margin-right: 3.09278%;
        width: 58.76289%;
        margin: 0; }
        .component-screenings--movie .component-screenings__times:last-child {
          margin-right: 0; } }
  .component-screenings--movie .component-screenings__time {
    float: left;
    display: block;
    margin-right: 2.80374%;
    width: 15.88785%; }
    .component-screenings--movie .component-screenings__time:last-child {
      margin-right: 0; }
    .component-screenings--movie .component-screenings__time:nth-child(5) {
      margin-right: 0; }
  .component-screenings--movie .component-screenings__tickets {
    position: relative;
    float: left;
    display: block;
    margin-right: 2.80374%;
    width: 6.54206%;
    margin-right: 0; }
    .component-screenings--movie .component-screenings__tickets:last-child {
      margin-right: 0; }
  .component-screenings--movie + .component-screenings--movie {
    display: none; }
  .component-screenings--movie .component-screening__packages {
    display: flex;
    flex-direction: column; }
    .component-screenings--movie .component-screening__packages a {
      text-transform: uppercase;
      font-size: .7rem;
      color: var(--s-grey); }
      .component-screenings--movie .component-screening__packages a:hover {
        text-decoration: underline; }
  .component-screenings--movie .component-screenings__noresults {
    background-color: #ff4040;
    border: 0;
    border-radius: 2px;
    color: #fff;
    overflow: hidden;
    margin-top: 30px;
    padding: 25px 20px; }
    .component-screenings--movie .component-screenings__noresults .component-screenings__noresults--icon {
      float: left;
      font-family: 'icomoon' !important;
      speak: none;
      font-style: normal;
      font-weight: normal;
      font-variant: normal;
      text-transform: none;
      line-height: 1;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      font-size: 44px; }
    .component-screenings--movie .component-screenings__noresults .component-screenings__noresults--top {
      font-family: "HankenSans-Medium", Helvetica, Arial, sans-serif;
      margin: 14px 0 0 64px;
      clear: right; }
    .component-screenings--movie .component-screenings__noresults .component-screenings__noresults--bottom {
      font-family: "HankenSans-Light", Helvetica, Arial, sans-serif;
      margin: 14px 0 0 64px; }
      .component-screenings--movie .component-screenings__noresults .component-screenings__noresults--bottom.with-top-text {
        margin: 24px 0 10px 40px;
        clear: both; }
  .component-screenings--movie .component-screenings__rows + .component-screenings__noresults {
    margin-top: 50px; }

.component-screenings--full {
  margin-top: 50px; }
  .component-screenings--full .component-screenings--buttons {
    text-align: center; }
    .component-screenings--full .component-screenings--buttons .screenings--load-more {
      font-size: 15px;
      font-size: 0.88235rem;
      border: 0;
      border-radius: 2px;
      box-shadow: none;
      cursor: pointer;
      display: inline-block;
      font-family: "HankenSans-Regular", Helvetica, Arial, sans-serif;
      line-height: 1;
      padding: 20px 10px;
      text-decoration: none;
      text-shadow: none;
      text-transform: uppercase;
      transition: background 150ms linear, color 150ms linear;
      -o-transition: background 150ms linear, color 150ms linear;
      -ms-transition: background 150ms linear, color 150ms linear;
      -webkit-font-smoothing: antialiased;
      background: #ff4040;
      color: #fff;
      display: inline-block;
      padding: 9px 19px 11px;
      text-align: center;
      padding: 16px 19px 18px; }
      .component-screenings--full .component-screenings--buttons .screenings--load-more.active, .component-screenings--full .component-screenings--buttons .screenings--load-more:hover, .component-screenings--full .component-screenings--buttons .screenings--load-more:focus {
        background: #333;
        color: #fff;
        outline: none; }
        .component-screenings--full .component-screenings--buttons .screenings--load-more.active a, .component-screenings--full .component-screenings--buttons .screenings--load-more:hover a, .component-screenings--full .component-screenings--buttons .screenings--load-more:focus a {
          color: #fff; }
      .component-screenings--full .component-screenings--buttons .screenings--load-more span.ext {
        display: none; }
      .component-screenings--full .component-screenings--buttons .screenings--load-more.active, .component-screenings--full .component-screenings--buttons .screenings--load-more:hover, .component-screenings--full .component-screenings--buttons .screenings--load-more:focus {
        background: #333;
        text-decoration: none; }
  .component-screenings--full .component-screenings--wrapper {
    overflow: hidden; }
  .component-screenings--full .component-screenings__row {
    margin-bottom: 34px;
    overflow: hidden;
    display: none; }
  .component-screenings--full .component-screening__packages {
    display: flex;
    flex-direction: column; }
    .component-screenings--full .component-screening__packages a {
      text-transform: uppercase;
      font-size: .7rem;
      color: var(--s-grey); }
      .component-screenings--full .component-screening__packages a:hover {
        text-decoration: underline; }
  .component-screenings--full .component-screenings-date .component-screenings--date__label {
    text-align: center; }
  .component-screenings--full .component-screenings-date .component-screenings--slots .component-screenings--slot {
    margin-top: 20px; }
    .lt-ie9 .component-screenings--full .component-screenings-date .component-screenings--slots .component-screenings--slot {
      float: left;
      display: block;
      margin-right: 2.5641%;
      width: 17.94872%; }
      .lt-ie9 .component-screenings--full .component-screenings-date .component-screenings--slots .component-screenings--slot:last-child {
        margin-right: 0; }
    @media screen and (min-width: 57em) {
      .component-screenings--full .component-screenings-date .component-screenings--slots .component-screenings--slot {
        float: left;
        display: block;
        margin-right: 2.5641%;
        width: 17.94872%; }
        .component-screenings--full .component-screenings-date .component-screenings--slots .component-screenings--slot:last-child {
          margin-right: 0; } }
    .component-screenings--full .component-screenings-date .component-screenings--slots .component-screenings--slot:last-child {
      margin-right: 0; }
    .component-screenings--full .component-screenings-date .component-screenings--slots .component-screenings--slot .component-screenings--slot__label {
      visibility: hidden; }
    .component-screenings--full .component-screenings-date .component-screenings--slots .component-screenings--slot .component-screenings--slot__film {
      background-color: #fff;
      margin-bottom: 16px;
      padding-bottom: 12px; }
      .component-screenings--full .component-screenings-date .component-screenings--slots .component-screenings--slot .component-screenings--slot__film .component-screenings__label a {
        font-size: 15px;
        font-size: 0.88235rem;
        border: 0;
        border-radius: 2px;
        box-shadow: none;
        cursor: pointer;
        display: inline-block;
        font-family: "HankenSans-Regular", Helvetica, Arial, sans-serif;
        line-height: 1;
        padding: 20px 10px;
        text-decoration: none;
        text-shadow: none;
        text-transform: uppercase;
        transition: background 150ms linear, color 150ms linear;
        -o-transition: background 150ms linear, color 150ms linear;
        -ms-transition: background 150ms linear, color 150ms linear;
        -webkit-font-smoothing: antialiased;
        background: #ff4040;
        color: #fff;
        display: inline-block;
        padding: 9px 19px 11px;
        text-align: center;
        display: block;
        margin-left: 0;
        margin-bottom: 1px;
        text-align: left;
        padding: 5px 6px 6px 11px;
        font-size: 13px;
        text-align: left;
        text-decoration: none;
        color: #fff; }
        .component-screenings--full .component-screenings-date .component-screenings--slots .component-screenings--slot .component-screenings--slot__film .component-screenings__label a.active, .component-screenings--full .component-screenings-date .component-screenings--slots .component-screenings--slot .component-screenings--slot__film .component-screenings__label a:hover, .component-screenings--full .component-screenings-date .component-screenings--slots .component-screenings--slot .component-screenings--slot__film .component-screenings__label a:focus {
          background: #333;
          color: #fff;
          outline: none; }
          .component-screenings--full .component-screenings-date .component-screenings--slots .component-screenings--slot .component-screenings--slot__film .component-screenings__label a.active a, .component-screenings--full .component-screenings-date .component-screenings--slots .component-screenings--slot .component-screenings--slot__film .component-screenings__label a:hover a, .component-screenings--full .component-screenings-date .component-screenings--slots .component-screenings--slot .component-screenings--slot__film .component-screenings__label a:focus a {
            color: #fff; }
        .component-screenings--full .component-screenings-date .component-screenings--slots .component-screenings--slot .component-screenings--slot__film .component-screenings__label a span.ext {
          display: none; }
        .component-screenings--full .component-screenings-date .component-screenings--slots .component-screenings--slot .component-screenings--slot__film .component-screenings__label a.active, .component-screenings--full .component-screenings-date .component-screenings--slots .component-screenings--slot .component-screenings--slot__film .component-screenings__label a:hover, .component-screenings--full .component-screenings-date .component-screenings--slots .component-screenings--slot .component-screenings--slot__film .component-screenings__label a:focus {
          background: #333;
          text-decoration: none; }
      .component-screenings--full .component-screenings-date .component-screenings--slots .component-screenings--slot .component-screenings--slot__film .component-screenings__label.active, .component-screenings--full .component-screenings-date .component-screenings--slots .component-screenings--slot .component-screenings--slot__film .component-screenings__label:hover, .component-screenings--full .component-screenings-date .component-screenings--slots .component-screenings--slot .component-screenings--slot__film .component-screenings__label:focus {
        text-decoration: none;
        background: #333; }
      .component-screenings--full .component-screenings-date .component-screenings--slots .component-screenings--slot .component-screenings--slot__film .component-screenings__label--last {
        background: #ff4040;
        color: #fff;
        font-family: "HankenSans-Regular", Helvetica, Arial, sans-serif;
        line-height: 1;
        text-transform: uppercase;
        display: inline-block;
        margin: 0 0 1px 10px;
        padding: 5px 11px 6px 11px;
        font-size: 13px;
        text-align: left;
        text-decoration: none;
        color: #fff;
        margin-left: 0px;
        width: 100%;
        box-sizing: border-box; }
        .lt-ie9 .component-screenings--full .component-screenings-date .component-screenings--slots .component-screenings--slot .component-screenings--slot__film .component-screenings__label--last {
          margin-left: 10px; }
        @media screen and (min-width: 45em) {
          .component-screenings--full .component-screenings-date .component-screenings--slots .component-screenings--slot .component-screenings--slot__film .component-screenings__label--last {
            margin-left: 10px; } }
        .lt-ie9 .component-screenings--full .component-screenings-date .component-screenings--slots .component-screenings--slot .component-screenings--slot__film .component-screenings__label--last {
          margin-left: 0; }
        @media screen and (min-width: 45em) {
          .component-screenings--full .component-screenings-date .component-screenings--slots .component-screenings--slot .component-screenings--slot__film .component-screenings__label--last {
            margin-left: 0; } }
      .component-screenings--full .component-screenings-date .component-screenings--slots .component-screenings--slot .component-screenings--slot__film .component-screenings__info {
        border-top: 1px solid #d9d9d9;
        padding-top: 6px; }
        .component-screenings--full .component-screenings-date .component-screenings--slots .component-screenings--slot .component-screenings--slot__film .component-screenings__info .component-screenings__time {
          float: left;
          margin-left: 10px; }
          .component-screenings--full .component-screenings-date .component-screenings--slots .component-screenings--slot .component-screenings--slot__film .component-screenings__info .component-screenings__time a {
            text-decoration: underline; }
        .component-screenings--full .component-screenings-date .component-screenings--slots .component-screenings--slot .component-screenings--slot__film .component-screenings__info .component-screenings__tickets {
          float: right; }
          .component-screenings--full .component-screenings-date .component-screenings--slots .component-screenings--slot .component-screenings--slot__film .component-screenings__info .component-screenings__tickets a {
            font-size: 18px;
            text-decoration: none;
            display: block;
            max-height: 24px;
            max-width: 32px;
            overflow: hidden;
            color: #333; }
            .lt-ie9 .component-screenings--full .component-screenings-date .component-screenings--slots .component-screenings--slot .component-screenings--slot__film .component-screenings__info .component-screenings__tickets a {
              font-size: 17px;
              padding-top: 2px; }
            @media screen and (min-width: 45em) {
              .component-screenings--full .component-screenings-date .component-screenings--slots .component-screenings--slot .component-screenings--slot__film .component-screenings__info .component-screenings__tickets a {
                font-size: 17px;
                padding-top: 2px; } }
            .component-screenings--full .component-screenings-date .component-screenings--slots .component-screenings--slot .component-screenings--slot__film .component-screenings__info .component-screenings__tickets a:before {
              font-family: 'icomoon' !important;
              speak: none;
              font-style: normal;
              font-weight: normal;
              font-variant: normal;
              text-transform: none;
              line-height: 1;
              -webkit-font-smoothing: antialiased;
              -moz-osx-font-smoothing: grayscale;
              margin-right: 20px; }
            .component-screenings--full .component-screenings-date .component-screenings--slots .component-screenings--slot .component-screenings--slot__film .component-screenings__info .component-screenings__tickets a:hover {
              color: #ff4040; }
        .component-screenings--full .component-screenings-date .component-screenings--slots .component-screenings--slot .component-screenings--slot__film .component-screenings__info .component-screenings__title {
          margin: 0 30px 0 10px;
          box-sizing: border-box;
          font-family: "HankenSans-Light", Helvetica, Arial, sans-serif;
          display: inline-block;
          display: block;
          clear: both; }
          .lt-ie9 .component-screenings--full .component-screenings-date .component-screenings--slots .component-screenings--slot .component-screenings--slot__film .component-screenings__info .component-screenings__title {
            margin: 0 10px; }
          @media screen and (min-width: 45em) {
            .component-screenings--full .component-screenings-date .component-screenings--slots .component-screenings--slot .component-screenings--slot__film .component-screenings__info .component-screenings__title {
              margin: 0 10px; } }
      .component-screenings--full .component-screenings-date .component-screenings--slots .component-screenings--slot .component-screenings--slot__film .component-screenings__label--last + .component-screenings__info,
      .component-screenings--full .component-screenings-date .component-screenings--slots .component-screenings--slot .component-screenings--slot__film .component-screenings__label + .component-screenings__info {
        border-top: 0; }

.component-quote__text {
  font-size: 14px;
  font-size: 0.82353rem;
  font-family: "merriweatherlight_italic", Helvetica, Arial, sans-serif;
  line-height: 1.6;
  margin-top: 30px; }

.component-quote__author {
  font-size: 14px;
  font-size: 0.82353rem;
  font-family: "merriweather_light", Helvetica, Arial, sans-serif;
  line-height: 1.6;
  text-transform: uppercase; }

.component-quote__dash {
  float: left;
  margin-right: 6px; }

.paragraph--type-quote a {
  color: #333; }
  .paragraph--type-quote a:hover, .paragraph--type-quote a:active {
    color: #ff4040;
    text-decoration: none; }
  .paragraph--type-quote a .component-quote__author {
    text-decoration: underline; }

.social-share {
  display: inline-block !important;
  margin: 0;
  padding: 0; }
  .social-share li {
    margin: 0;
    padding: 0; }
    .social-share li i {
      font-size: 1.2rem; }
    .social-share li a {
      font-size: .9rem;
      border-bottom: 1px solid #fff;
      color: #333;
      display: flex;
      gap: .2rem;
      align-items: center;
      font-family: "HankenSans-Light", Helvetica, Arial, sans-serif;
      text-decoration: none;
      text-transform: uppercase;
      padding: 5px 20px 5px 0;
      transition: background 150ms linear, color 150ms linear;
      -o-transition: background 150ms linear, color 150ms linear;
      -ms-transition: background 150ms linear, color 150ms linear; }
      .social-share li a:before {
        font-size: 20px;
        font-size: 1.17647rem;
        position: relative;
        top: 3px;
        margin-right: 5px; }
      .social-share li a:hover, .social-share li a:focus, .social-share li a.active {
        color: #ff4040; }
  .social-share + .fb-like {
    position: relative; }

.component-horizontal-tabs input {
  display: none; }

.component-horizontal-tabs label {
  padding: 14px 10px 16px;
  color: #333;
  font-family: "HankenSans-ExtraBold", Helvetica, Arial, sans-serif;
  font-weight: normal;
  line-height: 1;
  display: inline-block;
  margin: 0 0 -1px;
  text-align: center;
  border: 1px solid transparent;
  border-radius: 2px; }
  .lt-ie9 .component-horizontal-tabs label {
    padding: 14px 30px 16px; }
  @media screen and (min-width: 28em) {
    .component-horizontal-tabs label {
      padding: 14px 30px 16px; } }
  .component-horizontal-tabs label a {
    margin-left: -15px;
    margin-right: -40px;
    padding: 14px 30px 16px 30px;
    white-space: nowrap;
    color: #333;
    text-decoration: none; }
    .lt-ie9 .component-horizontal-tabs label a {
      margin-left: -35px;
      margin-right: -40px;
      padding: 14px 30px 16px 30px; }
    @media screen and (min-width: 28em) {
      .component-horizontal-tabs label a {
        margin-left: -35px;
        margin-right: -40px;
        padding: 14px 30px 16px 30px; } }

.component-horizontal-tabs label:before {
  font-weight: normal;
  margin-right: 10px; }

.component-horizontal-tabs label:hover {
  cursor: pointer; }

.component-horizontal-tabs input:checked + label {
  color: #ff4040;
  border: 1px solid #ddd;
  border-top: 1px solid #d9d9d9;
  border-bottom: 1px solid #fff; }
  .component-horizontal-tabs input:checked + label:hover {
    cursor: auto; }

.component-horizontal-tabs #tab1:checked ~ #content1,
.component-horizontal-tabs #tab2:checked ~ #content2,
.component-horizontal-tabs #tab3:checked ~ #content3 {
  display: block; }

.component-horizontal-tabs section {
  display: none;
  border-top: 1px solid #d9d9d9; }

.page-node-type-film .node--view-mode-full-header .container {
  background: #fff;
  border-radius: 2px;
  padding: 25px 40px;
  max-width: 870px;
  box-sizing: border-box;
  font-size: 18px;
  font-size: 1.05882rem;
  font-family: 17px;
  font-family: "HankenSans-Medium", Helvetica, Arial, sans-serif;
  text-align: center;
  margin-top: 0;
  padding-bottom: 0;
  width: 100%;
  padding-bottom: 0;
  position: relative;
  z-index: 1; }
  .lt-ie9 .page-node-type-film .node--view-mode-full-header .container {
    max-width: 870px;
    width: auto;
    margin-top: -115px;
    padding-bottom: 30px; }
  @media screen and (min-width: 57em) {
    .page-node-type-film .node--view-mode-full-header .container {
      max-width: 870px;
      width: auto;
      margin-top: -115px;
      padding-bottom: 30px; } }

.page-node-type-film .content .container {
  background: #fff;
  border-radius: 2px;
  padding: 25px 40px;
  max-width: 870px;
  box-sizing: border-box; }

.page-node-type-film .node--view-mode-full-sidebar .button--red a,
.page-node-type-film .node--view-mode-full-sidebar .button--black a {
  display: block;
  padding: 18px 19px 20px; }

.page-node-type-film .node--view-mode-full-sidebar .button--red a {
  margin-bottom: 15px; }

.page-node-type-film .node--view-mode-full-sidebar .button--black a {
  margin-bottom: 10px; }

.page-node-type-film .node--view-mode-full-sidebar .button--black:last-child a {
  margin-bottom: 40px; }

.field-name-field-kijkwijzer {
  text-align: center; }
  @media screen and (min-width: 45em) {
    .field-name-field-kijkwijzer {
      text-align: left; } }
  .field-name-field-kijkwijzer .kijkwijzer-icon {
    display: inline-block;
    width: 20%;
    padding: 0;
    margin: 0;
    max-width: 56px; }

.node-film__credits a {
  display: block;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis; }

.node-film__banner img {
  display: block; }

h4.node-film__filmreeks, form label.node-film__filmreeks {
  margin-bottom: 20px;
  display: flex;
  justify-content: center;
  flex-direction: column;
  gap: .4rem; }
  h4.node-film__filmreeks a, form label.node-film__filmreeks a {
    text-decoration: none;
    padding: .2rem 0rem;
    color: var(--s-grey);
    font-family: "HankenSans-Light";
    font-size: .9rem;
    text-transform: uppercase;
    transition: all .2s ease-in-out;
    text-decoration: underline;
    transition: all .2s ease-in-out; }
    h4.node-film__filmreeks a::before, form label.node-film__filmreeks a::before {
      content: '+';
      display: inline-block;
      text-decoration: none;
      padding-right: 4px; }
    h4.node-film__filmreeks a:hover, form label.node-film__filmreeks a:hover {
      color: var(--s-red); }

.node-film__credits {
  font-size: 16px;
  font-size: 0.94118rem;
  margin: 45px 0; }
  .node-film__credits .field__label {
    font-family: "HankenSans-Medium", Helvetica, Arial, sans-serif;
    margin-bottom: -3px;
    margin-top: 3px;
    text-transform: lowercase; }
  .node-film__credits .field--name-field-film-extra {
    margin-top: 15px; }

.node-film__poster {
  max-width: 320px;
  margin: 0 auto; }
  @media screen and (min-width: 45em) {
    .node-film__poster {
      margin: 0; } }

.node-film__trailer {
  position: relative;
  padding-top: 40px;
  text-align: center; }
  .node-film__trailer .field-label-inline {
    margin-bottom: 50px; }
  .node-film__trailer .node-film__trailer--image {
    width: 100%;
    cursor: pointer;
    position: absolute;
    top: 40px;
    border-top: 7px solid black;
    border-bottom: 8px solid black;
    z-index: 1; }
    @media screen and (min-width: 45em) {
      .node-film__trailer .node-film__trailer--image {
        border-bottom: none;
        border-top: none; } }
    .node-film__trailer .node-film__trailer--image img {
      display: block; }
    .node-film__trailer .node-film__trailer--image:after {
      content: '';
      position: absolute;
      display: block;
      z-index: 10;
      top: 50%;
      left: 50%;
      transform: translate(-36px, -25px);
      width: 72px;
      height: 51px;
      background: transparent url("../img/youtube-play.png") no-repeat left -51px; }
    .node-film__trailer .node-film__trailer--image:hover::after {
      background-position-y: 0; }

.node--type-film.node--view-mode-full .field--name-social-share-ds-field {
  margin-bottom: 2rem; }

.node--type-film.node--view-mode-full .field--name-field-film-quote {
  margin-bottom: 2rem; }

.node--type-film.node--view-mode-teaser, .node--type-film.node--view-mode-teaser-detail {
  display: flex;
  flex-direction: column;
  height: 100%;
  max-width: 170px;
  border-bottom: 1px solid #d9d9d9; }
  .node--type-film.node--view-mode-teaser .component-screenings__row, .node--type-film.node--view-mode-teaser-detail .component-screenings__row {
    border-top: 1px solid #d9d9d9;
    clear: both;
    overflow: hidden;
    padding: 16px 0 14px; }
  .node--type-film.node--view-mode-teaser .component-screenings__title, .node--type-film.node--view-mode-teaser-detail .component-screenings__title {
    margin: 0 30px 0 10px;
    box-sizing: border-box;
    font-family: "HankenSans-Light", Helvetica, Arial, sans-serif;
    display: inline-block;
    padding-bottom: 4px;
    margin-left: 10px; }
    .lt-ie9 .node--type-film.node--view-mode-teaser .component-screenings__title, .lt-ie9 .node--type-film.node--view-mode-teaser-detail .component-screenings__title {
      margin: 0 10px; }
    @media screen and (min-width: 45em) {
      .node--type-film.node--view-mode-teaser .component-screenings__title, .node--type-film.node--view-mode-teaser-detail .component-screenings__title {
        margin: 0 10px; } }
  .node--type-film.node--view-mode-teaser .component-screenings__time, .node--type-film.node--view-mode-teaser-detail .component-screenings__time {
    min-height: 25px; }
    .node--type-film.node--view-mode-teaser .component-screenings__time a, .node--type-film.node--view-mode-teaser-detail .component-screenings__time a {
      text-decoration: underline; }
  .node--type-film.node--view-mode-teaser .component-screenings__tickets a, .node--type-film.node--view-mode-teaser-detail .component-screenings__tickets a {
    font-size: 18px;
    text-decoration: none;
    display: block;
    max-height: 24px;
    max-width: 32px;
    overflow: hidden;
    color: #333; }
    .lt-ie9 .node--type-film.node--view-mode-teaser .component-screenings__tickets a, .lt-ie9 .node--type-film.node--view-mode-teaser-detail .component-screenings__tickets a {
      font-size: 17px;
      padding-top: 2px; }
    @media screen and (min-width: 45em) {
      .node--type-film.node--view-mode-teaser .component-screenings__tickets a, .node--type-film.node--view-mode-teaser-detail .component-screenings__tickets a {
        font-size: 17px;
        padding-top: 2px; } }
    .node--type-film.node--view-mode-teaser .component-screenings__tickets a:before, .node--type-film.node--view-mode-teaser-detail .component-screenings__tickets a:before {
      font-family: 'icomoon' !important;
      speak: none;
      font-style: normal;
      font-weight: normal;
      font-variant: normal;
      text-transform: none;
      line-height: 1;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      margin-right: 20px; }
    .node--type-film.node--view-mode-teaser .component-screenings__tickets a:hover, .node--type-film.node--view-mode-teaser-detail .component-screenings__tickets a:hover {
      color: #ff4040; }
  .node--type-film.node--view-mode-teaser .component-screenings__label--last, .node--type-film.node--view-mode-teaser-detail .component-screenings__label--last {
    background: #ff4040;
    color: #fff;
    font-family: "HankenSans-Regular", Helvetica, Arial, sans-serif;
    line-height: 1;
    text-transform: uppercase;
    display: inline-block;
    margin: 0 0 1px 10px;
    padding: 5px 11px 6px 11px;
    font-size: 13px;
    text-align: left;
    text-decoration: none;
    color: #fff; }
    .lt-ie9 .node--type-film.node--view-mode-teaser .component-screenings__label--last, .lt-ie9 .node--type-film.node--view-mode-teaser-detail .component-screenings__label--last {
      margin-left: 10px; }
    @media screen and (min-width: 45em) {
      .node--type-film.node--view-mode-teaser .component-screenings__label--last, .node--type-film.node--view-mode-teaser-detail .component-screenings__label--last {
        margin-left: 10px; } }
  .node--type-film.node--view-mode-teaser .component-screening__packages, .node--type-film.node--view-mode-teaser-detail .component-screening__packages {
    display: flex;
    flex-direction: column; }
    .node--type-film.node--view-mode-teaser .component-screening__packages a, .node--type-film.node--view-mode-teaser-detail .component-screening__packages a {
      text-transform: uppercase;
      font-size: .7rem;
      color: var(--s-grey); }
      .node--type-film.node--view-mode-teaser .component-screening__packages a:hover, .node--type-film.node--view-mode-teaser-detail .component-screening__packages a:hover {
        text-decoration: underline; }
  .path-frontpage .node--type-film.node--view-mode-teaser, .path-frontpage .node--type-film.node--view-mode-teaser-detail {
    border-bottom: 0; }
  .node--type-film.node--view-mode-teaser a:hover,
  .node--type-film.node--view-mode-teaser a:focus, .node--type-film.node--view-mode-teaser-detail a:hover,
  .node--type-film.node--view-mode-teaser-detail a:focus {
    text-decoration: none; }
  .node--type-film.node--view-mode-teaser img, .node--type-film.node--view-mode-teaser-detail img {
    margin-bottom: 5px; }
  .node--type-film.node--view-mode-teaser .field--name-film-screening-table-compact, .node--type-film.node--view-mode-teaser-detail .field--name-film-screening-table-compact {
    margin-top: auto; }
    .path-frontpage .node--type-film.node--view-mode-teaser .field--name-film-screening-table-compact, .path-frontpage .node--type-film.node--view-mode-teaser-detail .field--name-film-screening-table-compact {
      display: none; }
  .node--type-film.node--view-mode-teaser .component-screenings__row, .node--type-film.node--view-mode-teaser-detail .component-screenings__row {
    text-transform: uppercase;
    color: #333;
    padding: 8px 0 7px;
    font-size: 14px;
    font-size: 0.82353rem; }
    .path-frontpage .node--type-film.node--view-mode-teaser .component-screenings__row, .path-frontpage .node--type-film.node--view-mode-teaser-detail .component-screenings__row {
      display: none; }
  .node--type-film.node--view-mode-teaser .all-screenings, .node--type-film.node--view-mode-teaser-detail .all-screenings {
    position: relative; }
    .node--type-film.node--view-mode-teaser .all-screenings .all-screenings-content, .node--type-film.node--view-mode-teaser-detail .all-screenings .all-screenings-content {
      position: absolute;
      width: 100%;
      z-index: 10;
      background-color: #fff;
      box-sizing: border-box;
      box-shadow: 0px 5px white; }
    .node--type-film.node--view-mode-teaser .all-screenings.collapsed .all-screenings-content, .node--type-film.node--view-mode-teaser-detail .all-screenings.collapsed .all-screenings-content {
      display: none; }
    .node--type-film.node--view-mode-teaser .all-screenings.expanded .all-screenings-content, .node--type-film.node--view-mode-teaser-detail .all-screenings.expanded .all-screenings-content {
      display: block; }
    .node--type-film.node--view-mode-teaser .all-screenings.expanded .icona-down::after, .node--type-film.node--view-mode-teaser-detail .all-screenings.expanded .icona-down::after {
      transform: rotate(0deg); }
  .node--type-film.node--view-mode-teaser .all-screenings-title, .node--type-film.node--view-mode-teaser-detail .all-screenings-title {
    padding: 5px 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer; }
  .node--type-film.node--view-mode-teaser .all-screenings-content, .node--type-film.node--view-mode-teaser-detail .all-screenings-content {
    padding: 0 5px; }

.node--type-filmreeks.node--view-mode-full-header h1 span::after {
  font-family: 'icomoon' !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: '\e90b';
  font-size: 24px;
  visibility: visible;
  padding-left: 16px;
  margin-right: 10px; }

.node--type-filmreeks.node--view-mode-full-sidebar span.file {
  padding-left: 0;
  background-image: none;
  margin-bottom: 3px; }

.node--type-filmreeks.node--view-mode-full-sidebar .field--name-field-package-link .field__item {
  margin-bottom: 3px; }

.node--type-filmreeks.node--view-mode-full-sidebar .package__supplier {
  margin-top: 20px; }
  .node--type-filmreeks.node--view-mode-full-sidebar .package__supplier:before {
    text-transform: none;
    content: 'Deze film wordt u aangeboden door '; }

.page-node-type-filmreeks.layout-one-sidebar aside.layout-sidebar-first {
  margin-top: 0 !important; }

.page-node-type-filmreeks .node--type-film.node--view-mode-teaser .nopackage {
  display: none; }

.node--type-homepage.node--view-mode-full-shading-one .teasers, .node--type-homepage.node--view-mode-full-shading-three .teasers {
  display: flex;
  flex-direction: column;
  align-items: center; }
  @media screen and (min-width: 45em) {
    .node--type-homepage.node--view-mode-full-shading-one .teasers, .node--type-homepage.node--view-mode-full-shading-three .teasers {
      flex-direction: row;
      flex-wrap: wrap;
      align-items: start; } }

.page-node-type-multipage .node--view-mode-full-header .container {
  background: #fff;
  border-radius: 2px;
  padding: 25px 40px;
  max-width: 870px;
  box-sizing: border-box;
  font-size: 18px;
  font-size: 1.05882rem;
  font-family: 17px;
  font-family: "HankenSans-Medium", Helvetica, Arial, sans-serif;
  text-align: center;
  margin-top: 0;
  padding-bottom: 0;
  width: 100%;
  padding-bottom: 30px;
  position: relative;
  z-index: 1; }
  .lt-ie9 .page-node-type-multipage .node--view-mode-full-header .container {
    max-width: 870px;
    width: auto;
    margin-top: -115px;
    padding-bottom: 30px; }
  @media screen and (min-width: 57em) {
    .page-node-type-multipage .node--view-mode-full-header .container {
      max-width: 870px;
      width: auto;
      margin-top: -115px;
      padding-bottom: 30px; } }

.page-node-type-multipage .content .container {
  padding-top: 50px; }

.node-film__banner img {
  display: block; }

.node--type-multipage .group-left {
  float: left;
  display: block;
  margin-right: 2.5641%;
  width: 100%; }
  .node--type-multipage .group-left:last-child {
    margin-right: 0; }
  @media screen and (min-width: 45em) {
    .node--type-multipage .group-left {
      float: left;
      display: block;
      margin-right: 2.5641%;
      width: 48.71795%; }
      .node--type-multipage .group-left:last-child {
        margin-right: 0; } }

.node--type-multipage .group-right {
  float: left;
  display: block;
  margin-right: 2.5641%;
  width: 100%; }
  .node--type-multipage .group-right:last-child {
    margin-right: 0; }
  @media screen and (min-width: 45em) {
    .node--type-multipage .group-right {
      float: left;
      display: block;
      margin-right: 2.5641%;
      width: 48.71795%;
      margin-right: 0; }
      .node--type-multipage .group-right:last-child {
        margin-right: 0; } }

.node--type-subpage.node--view-mode-teaser {
  display: inline-block; }
  .field--name-field-multipage-body + .node--type-subpage.node--view-mode-teaser {
    margin-top: 13px; }

.subpage-anchor {
  font-size: 15px;
  font-size: 0.88235rem;
  border: 0;
  border-radius: 2px;
  box-shadow: none;
  cursor: pointer;
  display: inline-block;
  font-family: "HankenSans-Regular", Helvetica, Arial, sans-serif;
  line-height: 1;
  padding: 20px 10px;
  text-decoration: none;
  text-shadow: none;
  text-transform: uppercase;
  transition: background 150ms linear, color 150ms linear;
  -o-transition: background 150ms linear, color 150ms linear;
  -ms-transition: background 150ms linear, color 150ms linear;
  -webkit-font-smoothing: antialiased;
  background: #ff4040;
  color: #fff;
  display: inline-block;
  padding: 9px 19px 11px;
  text-align: center;
  margin: 0 5px 8px; }
  .subpage-anchor.active, .subpage-anchor:hover, .subpage-anchor:focus {
    background: #333;
    color: #fff;
    outline: none; }
    .subpage-anchor.active a, .subpage-anchor:hover a, .subpage-anchor:focus a {
      color: #fff; }
  .subpage-anchor span.ext {
    display: none; }
  .subpage-anchor.active, .subpage-anchor:hover, .subpage-anchor:focus {
    background: #333;
    text-decoration: none; }

.subpage {
  background: #fff;
  margin-bottom: 5.26316%;
  padding: 20px 25px; }
  .subpage iframe {
    width: 100%; }
  .subpage p:last-child {
    margin-bottom: 0; }

.node--type-news.node--view-mode-teaser a.field-group-link {
  text-decoration: none;
  color: #333; }
  .node--type-news.node--view-mode-teaser a.field-group-link h4, .node--type-news.node--view-mode-teaser a.field-group-link form label, form .node--type-news.node--view-mode-teaser a.field-group-link label {
    margin-bottom: 15px;
    margin-top: 25px; }
  .node--type-news.node--view-mode-teaser a.field-group-link .node-news__content {
    display: inline; }
    .node--type-news.node--view-mode-teaser a.field-group-link .node-news__content .node-news__body {
      display: inline;
      font-size: 15px;
      font-family: "HankenSans-Light", Helvetica, Arial, sans-serif; }
      .node--type-news.node--view-mode-teaser a.field-group-link .node-news__content .node-news__body:nth-child(2n) {
        display: none; }
      .node--type-news.node--view-mode-teaser a.field-group-link .node-news__content .node-news__body * {
        display: inline; }

.node--type-news.node--view-mode-full .container {
  margin-top: 70px;
  background: #fff;
  border-radius: 2px;
  padding: 25px 40px;
  max-width: 870px;
  box-sizing: border-box;
  max-width: 620px; }
  .node--type-news.node--view-mode-full .container > div {
    margin-top: 20px; }

.node--type-news.node--view-mode-full h1 {
  text-align: center; }

.node--type-news.node--view-mode-full .node-news__intro {
  font-family: 17px;
  font-family: "HankenSans-Medium", Helvetica, Arial, sans-serif;
  text-align: center; }

.node--type-news.node--view-mode-full:last-child {
  margin-right: auto; }

.node-news__date {
  color: #ff4040;
  font-size: 80%;
  margin-bottom: 10px;
  text-transform: uppercase;
  font-family: "HankenSans-Medium", Helvetica, Arial, sans-serif; }

.node-news__read-more {
  font-size: 15px;
  font-family: "HankenSans-Light", Helvetica, Arial, sans-serif; }
  .node-news__read-more a {
    text-decoration: none; }
    .node-news__read-more a:hover, .node-news__read-more a:focus, .node-news__read-more a.active, .node-news__read-more a.is-active {
      color: #ff4040; }

body.path-zoeken .node--type-news.node--view-mode-teaser {
  position: relative; }
  .lt-ie9 body.path-zoeken .node--type-news.node--view-mode-teaser img {
    max-width: 170px;
    margin-right: 30px;
    margin-bottom: 10px;
    float: left; }
  @media screen and (min-width: 45em) {
    body.path-zoeken .node--type-news.node--view-mode-teaser img {
      max-width: 170px;
      margin-right: 30px;
      margin-bottom: 10px;
      float: left; } }

.lt-ie9 body.path-zoeken .node-news__content {
  width: calc(100% - 200px);
  float: right;
  margin-bottom: 25px; }

@media screen and (min-width: 45em) {
  body.path-zoeken .node-news__content {
    width: calc(100% - 200px);
    float: right;
    margin-bottom: 25px; } }

.lt-ie9 body.path-zoeken .node-news__read-more {
  position: absolute;
  right: 0;
  bottom: 0px; }

@media screen and (min-width: 45em) {
  body.path-zoeken .node-news__read-more {
    position: absolute;
    right: 0;
    bottom: 0px; } }

.page-node-type-filmreeks .node--view-mode-full-header .container {
  background: #fff;
  border-radius: 2px;
  padding: 25px 40px;
  max-width: 870px;
  box-sizing: border-box;
  font-size: 18px;
  font-size: 1.05882rem;
  font-family: 17px;
  font-family: "HankenSans-Medium", Helvetica, Arial, sans-serif;
  text-align: center;
  margin-top: 0;
  padding-bottom: 0;
  width: 100%;
  padding-bottom: 0;
  position: relative;
  z-index: 1; }
  .lt-ie9 .page-node-type-filmreeks .node--view-mode-full-header .container {
    max-width: 870px;
    width: auto;
    margin-top: -115px;
    padding-bottom: 30px; }
  @media screen and (min-width: 57em) {
    .page-node-type-filmreeks .node--view-mode-full-header .container {
      max-width: 870px;
      width: auto;
      margin-top: -115px;
      padding-bottom: 30px; } }

.page-node-type-filmreeks .content .container {
  background: #fff;
  border-radius: 2px;
  padding: 25px 40px;
  max-width: 870px;
  box-sizing: border-box; }

.page-node-type-filmreeks .shading_2 {
  padding-top: 0; }

.page-node-type-filmreeks .node--view-mode-full-shading-two {
  clear: both;
  overflow: hidden; }

.node-package__banner img {
  display: block; }

.node-package__logos {
  margin-top: 3rem;
  margin-bottom: -20px;
  overflow: hidden;
  text-align: center; }
  .node-package__logos .paragraph--type--logo {
    display: inline-block; }

.page-node-type-basic-page .content .container {
  background: #fff;
  border-radius: 2px;
  padding: 25px 40px;
  max-width: 870px;
  box-sizing: border-box;
  background: #fff; }

.page-node-type-basic-page .node--view-mode-full-header .container {
  background: #fff;
  border-radius: 2px;
  padding: 25px 40px;
  max-width: 870px;
  box-sizing: border-box;
  font-size: 18px;
  font-size: 1.05882rem;
  font-family: 17px;
  font-family: "HankenSans-Medium", Helvetica, Arial, sans-serif;
  text-align: center;
  margin-top: 0;
  padding-bottom: 0;
  width: 100%;
  padding-bottom: 30px;
  position: relative;
  z-index: 1; }
  .lt-ie9 .page-node-type-basic-page .node--view-mode-full-header .container {
    max-width: 870px;
    width: auto;
    margin-top: -115px;
    padding-bottom: 30px; }
  @media screen and (min-width: 57em) {
    .page-node-type-basic-page .node--view-mode-full-header .container {
      max-width: 870px;
      width: auto;
      margin-top: -115px;
      padding-bottom: 30px; } }

.page-node-type-basic-page .node--view-mode-full-sidebar span.file {
  padding-left: 0;
  background-image: none;
  margin-bottom: 3px; }

.page-node-type-basic-page .node--view-mode-full-sidebar .field--name-field-package-link .field__item {
  margin-bottom: 3px; }

.node-basic-page__banner img {
  display: block; }

.lt-ie9 ul.rslides {
  min-height: 540px; }

@media screen and (min-width: 57em) {
  ul.rslides {
    min-height: 540px; } }

.node--type-slide {
  margin-bottom: 10px;
  overflow: hidden;
  position: relative; }
  .node--type-slide .container {
    background: #fff;
    border-radius: 2px;
    padding: 25px 40px;
    max-width: 870px;
    box-sizing: border-box;
    font-size: 18px;
    font-size: 1.05882rem;
    font-family: 17px;
    font-family: "HankenSans-Medium", Helvetica, Arial, sans-serif;
    text-align: center;
    margin-top: 0;
    padding-bottom: 0;
    width: 100%;
    position: relative;
    z-index: 1; }
    .lt-ie9 .node--type-slide .container {
      max-width: 870px;
      width: auto;
      margin-top: -115px;
      padding-bottom: 30px; }
    @media screen and (min-width: 57em) {
      .node--type-slide .container {
        max-width: 870px;
        width: auto;
        margin-top: -115px;
        padding-bottom: 30px; } }
  .node--type-slide .contextual li {
    display: block; }
  .node--type-slide .button a {
    font-size: 15px;
    font-size: 0.88235rem;
    border: 0;
    border-radius: 2px;
    box-shadow: none;
    cursor: pointer;
    display: inline-block;
    font-family: "HankenSans-Regular", Helvetica, Arial, sans-serif;
    line-height: 1;
    padding: 20px 10px;
    text-decoration: none;
    text-shadow: none;
    text-transform: uppercase;
    transition: background 150ms linear, color 150ms linear;
    -o-transition: background 150ms linear, color 150ms linear;
    -ms-transition: background 150ms linear, color 150ms linear;
    -webkit-font-smoothing: antialiased;
    background: #333;
    color: #fff;
    display: inline-block;
    padding: 9px 19px 11px;
    text-align: center;
    margin-top: 15px;
    width: auto; }
    .node--type-slide .button a.active, .node--type-slide .button a:hover, .node--type-slide .button a:focus {
      background: #333;
      color: #fff;
      outline: none; }
      .node--type-slide .button a.active a, .node--type-slide .button a:hover a, .node--type-slide .button a:focus a {
        color: #fff; }
    .node--type-slide .button a span.ext {
      display: none; }
    .node--type-slide .button a.active, .node--type-slide .button a:hover, .node--type-slide .button a:focus {
      background: #ff4040;
      text-decoration: none; }

.rslides_tabs {
  display: none;
  font-size: 1px;
  list-style: none;
  margin: 0;
  padding: 0;
  position: absolute;
  text-align: center;
  top: 0;
  width: 100%;
  z-index: 100; }
  .rslides_tabs li {
    background-color: transparent;
    border: 0;
    color: transparent;
    font: 0 / 0 a;
    text-shadow: none;
    display: inline-block;
    margin: 0;
    padding: 0; }
    .rslides_tabs li a {
      background: #fff;
      border-radius: 10px;
      width: 10px;
      height: 10px;
      display: inline-block;
      margin: 0 5px;
      -webkit-box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.5);
      -moz-box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.5);
      box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.5); }
    .rslides_tabs li.rslides_here a {
      background: #ff4040; }

.node--view-mode-full-header {
  position: relative; }

.block-facets {
  padding: 10px 15px;
  background: #fff; }
  .lt-ie9 .block-facets {
    background: #fff;
    border-radius: 2px;
    padding: 25px 40px;
    max-width: 870px;
    box-sizing: border-box;
    margin: 0 auto;
    padding: 10px 40px;
    margin-bottom: 10px; }
  @media screen and (min-width: 45em) {
    .block-facets {
      background: #fff;
      border-radius: 2px;
      padding: 25px 40px;
      max-width: 870px;
      box-sizing: border-box;
      margin: 0 auto;
      padding: 10px 40px;
      margin-bottom: 10px; } }
  .block-facets ul {
    list-style: none;
    padding: 10px 0 0 0;
    margin: 0; }
    .block-facets ul li {
      display: block;
      margin-right: 25px;
      margin-bottom: 10px; }

.view-zoeken .view-header {
  padding: 10px 15px;
  background: #fff; }
  .lt-ie9 .view-zoeken .view-header {
    background: #fff;
    border-radius: 2px;
    padding: 25px 40px;
    max-width: 870px;
    box-sizing: border-box;
    margin: 0 auto;
    padding: 10px 40px; }
  @media screen and (min-width: 45em) {
    .view-zoeken .view-header {
      background: #fff;
      border-radius: 2px;
      padding: 25px 40px;
      max-width: 870px;
      box-sizing: border-box;
      margin: 0 auto;
      padding: 10px 40px; } }

.view-zoeken .view-empty {
  padding: 10px 15px;
  background: #fff; }
  .lt-ie9 .view-zoeken .view-empty {
    background: #fff;
    border-radius: 2px;
    padding: 25px 40px;
    max-width: 870px;
    box-sizing: border-box;
    margin: 0 auto;
    padding: 10px 40px; }
  @media screen and (min-width: 45em) {
    .view-zoeken .view-empty {
      background: #fff;
      border-radius: 2px;
      padding: 25px 40px;
      max-width: 870px;
      box-sizing: border-box;
      margin: 0 auto;
      padding: 10px 40px; } }

.view-zoeken input#edit-search-api-fulltext {
  max-width: 100%; }

.view-zoeken input.button {
  font-size: 15px;
  font-size: 0.88235rem;
  border: 0;
  border-radius: 2px;
  box-shadow: none;
  cursor: pointer;
  display: inline-block;
  font-family: "HankenSans-Regular", Helvetica, Arial, sans-serif;
  line-height: 1;
  padding: 20px 10px;
  text-decoration: none;
  text-shadow: none;
  text-transform: uppercase;
  transition: background 150ms linear, color 150ms linear;
  -o-transition: background 150ms linear, color 150ms linear;
  -ms-transition: background 150ms linear, color 150ms linear;
  -webkit-font-smoothing: antialiased;
  background: #ff4040;
  color: #fff;
  display: inline-block;
  padding: 9px 19px 11px;
  text-align: center;
  margin: 10px 0; }
  .view-zoeken input.button.active, .view-zoeken input.button:hover, .view-zoeken input.button:focus {
    background: #333;
    color: #fff;
    outline: none; }
    .view-zoeken input.button.active a, .view-zoeken input.button:hover a, .view-zoeken input.button:focus a {
      color: #fff; }
  .view-zoeken input.button span.ext {
    display: none; }
  .view-zoeken input.button.active, .view-zoeken input.button:hover, .view-zoeken input.button:focus {
    background: #333;
    text-decoration: none; }

.view-zoeken .view-filters {
  padding: 0 15px 10px 15px;
  background: #fff; }
  .lt-ie9 .view-zoeken .view-filters {
    background: #fff;
    border-radius: 2px;
    padding: 25px 40px;
    max-width: 870px;
    box-sizing: border-box;
    margin: 0 auto;
    padding-top: 0; }
  @media screen and (min-width: 45em) {
    .view-zoeken .view-filters {
      background: #fff;
      border-radius: 2px;
      padding: 25px 40px;
      max-width: 870px;
      box-sizing: border-box;
      margin: 0 auto;
      padding-top: 0; } }
  .view-zoeken .view-filters label {
    margin-top: 0; }
  .view-zoeken .view-filters .views-exposed-form form input[type='text'] {
    width: 100%; }

.view-zoeken .view-content {
  padding: 15px;
  background: #fff;
  margin-top: 10px; }
  .lt-ie9 .view-zoeken .view-content {
    background: #fff;
    border-radius: 2px;
    padding: 25px 40px;
    max-width: 870px;
    box-sizing: border-box;
    margin: 25px auto; }
  @media screen and (min-width: 45em) {
    .view-zoeken .view-content {
      background: #fff;
      border-radius: 2px;
      padding: 25px 40px;
      max-width: 870px;
      box-sizing: border-box;
      margin: 25px auto; } }
  .view-zoeken .view-content .views-row {
    margin-bottom: 30px; }
    .view-zoeken .view-content .views-row:last-child {
      margin-bottom: 0; }

.view-zoeken nav.pager {
  text-align: center; }
  .view-zoeken nav.pager ul {
    list-style: none; }
    .view-zoeken nav.pager ul li {
      display: inline-block; }
      .view-zoeken nav.pager ul li a {
        padding: 10px; }
      .view-zoeken nav.pager ul li.is-active a {
        color: #333;
        text-decoration: underline; }

a.searchresult__link {
  display: flex;
  color: #333; }
  a.searchresult__link:hover {
    text-decoration: none;
    color: #333; }

.searchresult a {
  display: flex;
  color: #333; }
  .searchresult a:hover {
    text-decoration: none;
    color: #333; }

.searchresult__left {
  flex: 0 0 80px; }
  .lt-ie9 .searchresult__left {
    flex: 0 0 170px; }
  @media screen and (min-width: 45em) {
    .searchresult__left {
      flex: 0 0 170px; } }

.searchresult__right {
  flex: 1 1 auto; }
  .searchresult__right h4, .searchresult__right form label, form .searchresult__right label {
    margin-bottom: 15px; }

.searchresult__left + .searchresult__right {
  margin-left: 30px; }

.node--type-subpage.node--view-mode-searchresult h4, .node--type-subpage.node--view-mode-searchresult form label, form .node--type-subpage.node--view-mode-searchresult label {
  margin-bottom: 15px; }

.view-films-programme .view-content,
.view-films-package .view-content,
.view-films-avantpremiere .view-content,
.block-views-blockfilms-op-het-programma-zonder-tijdstip-block-1 .view-content {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 1.5rem;
  justify-content: center; }
  .lt-ie9 .view-films-programme .view-content, .lt-ie9
  .view-films-package .view-content, .lt-ie9
  .view-films-avantpremiere .view-content, .lt-ie9
  .block-views-blockfilms-op-het-programma-zonder-tijdstip-block-1 .view-content {
    justify-content: unset; }
  @media screen and (min-width: 45em) {
    .view-films-programme .view-content,
    .view-films-package .view-content,
    .view-films-avantpremiere .view-content,
    .block-views-blockfilms-op-het-programma-zonder-tijdstip-block-1 .view-content {
      justify-content: unset; } }

#stickyTitleBar {
  background: #fff;
  border-bottom: 1px solid #d9d9d9;
  display: none;
  position: fixed;
  text-align: center;
  width: 100%;
  z-index: 999;
  padding: 10px; }

.view-news .views-row {
  float: left;
  display: block;
  margin-right: 2.5641%;
  width: 100%;
  font-size: 16px;
  font-size: 0.94118rem;
  margin-bottom: 30px; }
  .view-news .views-row:last-child {
    margin-right: 0; }
  .lt-ie9 .view-news .views-row {
    float: left;
    display: block;
    margin-right: 2.5641%;
    width: 31.62393%; }
    .lt-ie9 .view-news .views-row:last-child {
      margin-right: 0; }
    .lt-ie9 .view-news .views-row:nth-child(3n) {
      margin-right: 0; }
    .lt-ie9 .view-news .views-row:nth-child(3n + 1) {
      clear: both; }
  @media screen and (min-width: 45em) {
    .view-news .views-row {
      float: left;
      display: block;
      margin-right: 2.5641%;
      width: 31.62393%; }
      .view-news .views-row:last-child {
        margin-right: 0; }
      .view-news .views-row:nth-child(3n) {
        margin-right: 0; }
      .view-news .views-row:nth-child(3n + 1) {
        clear: both; } }

.view-news .view-content {
  overflow: hidden; }

.view-news .view-footer {
  overflow: hidden;
  text-align: center; }

.block-views-blockpackages-block-packages__filmreeksen,
.block-views-blockpackages-block-packages__festivals,
.block-views-blockpackages-block-packages__special {
  float: left;
  display: block;
  margin-right: 2.5641%;
  width: 100%;
  margin-bottom: 40px; }
  .block-views-blockpackages-block-packages__filmreeksen:last-child,
  .block-views-blockpackages-block-packages__festivals:last-child,
  .block-views-blockpackages-block-packages__special:last-child {
    margin-right: 0; }
  .lt-ie9 .block-views-blockpackages-block-packages__filmreeksen, .lt-ie9
  .block-views-blockpackages-block-packages__festivals, .lt-ie9
  .block-views-blockpackages-block-packages__special {
    float: left;
    display: block;
    margin-right: 2.5641%;
    width: 31.62393%;
    margin-bottom: 0; }
    .lt-ie9 .block-views-blockpackages-block-packages__filmreeksen:last-child, .lt-ie9
    .block-views-blockpackages-block-packages__festivals:last-child, .lt-ie9
    .block-views-blockpackages-block-packages__special:last-child {
      margin-right: 0; }
  @media screen and (min-width: 57em) {
    .block-views-blockpackages-block-packages__filmreeksen,
    .block-views-blockpackages-block-packages__festivals,
    .block-views-blockpackages-block-packages__special {
      float: left;
      display: block;
      margin-right: 2.5641%;
      width: 31.62393%;
      margin-bottom: 0; }
      .block-views-blockpackages-block-packages__filmreeksen:last-child,
      .block-views-blockpackages-block-packages__festivals:last-child,
      .block-views-blockpackages-block-packages__special:last-child {
        margin-right: 0; } }
  .block-views-blockpackages-block-packages__filmreeksen h2, .block-views-blockpackages-block-packages__filmreeksen .node-film__trailer .field-label-inline, .node-film__trailer .block-views-blockpackages-block-packages__filmreeksen .field-label-inline,
  .block-views-blockpackages-block-packages__festivals h2,
  .block-views-blockpackages-block-packages__festivals .node-film__trailer .field-label-inline, .node-film__trailer
  .block-views-blockpackages-block-packages__festivals .field-label-inline,
  .block-views-blockpackages-block-packages__special h2,
  .block-views-blockpackages-block-packages__special .node-film__trailer .field-label-inline, .node-film__trailer
  .block-views-blockpackages-block-packages__special .field-label-inline {
    margin-bottom: 40px; }

.lt-ie9 .block-views-blockpackages-block-packages__special {
  margin-right: 0; }

@media screen and (min-width: 57em) {
  .block-views-blockpackages-block-packages__special {
    margin-right: 0; } }

.view-packages.block-packages .view-empty {
  float: left;
  display: block;
  margin-right: 3.44828%;
  width: 100%;
  border-top: 1px solid #d9d9d9;
  padding: 15px 10px; }
  .view-packages.block-packages .view-empty:last-child {
    margin-right: 0; }

.view-packages.block-packages .view-header {
  border-top: 1px solid #d9d9d9;
  padding: 15px 0 15px 10px;
  box-sizing: border-box; }
  .view-packages.block-packages .view-header a {
    font-family: "HankenSans-Medium", Helvetica, Arial, sans-serif; }

.view-packages.block-packages .view-content .views-row {
  border-top: 1px solid #d9d9d9;
  padding: 15px 0; }
  .view-packages.block-packages .view-content .views-row .package__title {
    float: left;
    display: block;
    margin-right: 3.44828%;
    width: 65.51724%;
    box-sizing: border-box;
    padding-left: 10px; }
    .view-packages.block-packages .view-content .views-row .package__title:last-child {
      margin-right: 0; }
    .view-packages.block-packages .view-content .views-row .package__title a {
      font-family: "HankenSans-Medium", Helvetica, Arial, sans-serif; }
  .view-packages.block-packages .view-content .views-row .package__supplier {
    float: left;
    display: block;
    margin-right: 3.44828%;
    width: 31.03448%;
    margin-right: 0;
    box-sizing: border-box;
    font-size: 14px;
    font-size: 0.82353rem;
    margin-top: 4px;
    text-align: right;
    padding-right: 20px;
    text-transform: uppercase; }
    .view-packages.block-packages .view-content .views-row .package__supplier:last-child {
      margin-right: 0; }
    .view-packages.block-packages .view-content .views-row .package__supplier a {
      color: #333; }

.view-films-in-deze-filmreeks-screening-dates .view-content {
  overflow: hidden;
  float: left;
  display: block;
  margin-right: 2.5641%;
  width: 100%;
  float: none; }
  .view-films-in-deze-filmreeks-screening-dates .view-content:last-child {
    margin-right: 0; }
  .view-films-in-deze-filmreeks-screening-dates .view-content .component-screenings--movie {
    margin-top: 0; }
    .view-films-in-deze-filmreeks-screening-dates .view-content .component-screenings--movie h2, .view-films-in-deze-filmreeks-screening-dates .view-content .component-screenings--movie .node-film__trailer .field-label-inline, .node-film__trailer .view-films-in-deze-filmreeks-screening-dates .view-content .component-screenings--movie .field-label-inline {
      text-align: left;
      margin-top: 20px;
      margin-bottom: 20px; }
    .view-films-in-deze-filmreeks-screening-dates .view-content .component-screenings--movie .component-screenings__rows {
      border-bottom: 0;
      margin-bottom: 20px; }
      .view-films-in-deze-filmreeks-screening-dates .view-content .component-screenings--movie .component-screenings__rows .component-screenings__row:last-child {
        border-bottom: 1px solid #d9d9d9; }
      .lt-ie9 .view-films-in-deze-filmreeks-screening-dates .view-content .component-screenings--movie .component-screenings__rows .component-screenings__row .col-left {
        float: left;
        display: block;
        margin-right: 2.5641%;
        width: 48.71795%; }
        .lt-ie9 .view-films-in-deze-filmreeks-screening-dates .view-content .component-screenings--movie .component-screenings__rows .component-screenings__row .col-left:last-child {
          margin-right: 0; }
      @media screen and (min-width: 57em) {
        .view-films-in-deze-filmreeks-screening-dates .view-content .component-screenings--movie .component-screenings__rows .component-screenings__row .col-left {
          float: left;
          display: block;
          margin-right: 2.5641%;
          width: 48.71795%; }
          .view-films-in-deze-filmreeks-screening-dates .view-content .component-screenings--movie .component-screenings__rows .component-screenings__row .col-left:last-child {
            margin-right: 0; } }
      .lt-ie9 .view-films-in-deze-filmreeks-screening-dates .view-content .component-screenings--movie .component-screenings__rows .component-screenings__row .col-right {
        float: left;
        display: block;
        margin-right: 2.5641%;
        width: 48.71795%; }
        .lt-ie9 .view-films-in-deze-filmreeks-screening-dates .view-content .component-screenings--movie .component-screenings__rows .component-screenings__row .col-right:last-child {
          margin-right: 0; }
      @media screen and (min-width: 57em) {
        .view-films-in-deze-filmreeks-screening-dates .view-content .component-screenings--movie .component-screenings__rows .component-screenings__row .col-right {
          float: left;
          display: block;
          margin-right: 2.5641%;
          width: 48.71795%; }
          .view-films-in-deze-filmreeks-screening-dates .view-content .component-screenings--movie .component-screenings__rows .component-screenings__row .col-right:last-child {
            margin-right: 0; } }
      .view-films-in-deze-filmreeks-screening-dates .view-content .component-screenings--movie .component-screenings__rows .component-screenings__row .col-right .component-screenings__description {
        margin: 20px 10px 0 10px;
        display: block;
        float: left; }
        .lt-ie9 .view-films-in-deze-filmreeks-screening-dates .view-content .component-screenings--movie .component-screenings__rows .component-screenings__row .col-right .component-screenings__description {
          margin: 0; }
        @media screen and (min-width: 57em) {
          .view-films-in-deze-filmreeks-screening-dates .view-content .component-screenings--movie .component-screenings__rows .component-screenings__row .col-right .component-screenings__description {
            margin: 0; } }

.view-films-in-deze-filmreeks-screening-dates .view-empty {
  text-align: center;
  margin-bottom: 50px; }

.block-views-blockfilms-in-deze-filmreeks-screening-dates-block-1 .view-content > h2, .block-views-blockfilms-in-deze-filmreeks-screening-dates-block-1 .node-film__trailer .view-content > .field-label-inline, .node-film__trailer .block-views-blockfilms-in-deze-filmreeks-screening-dates-block-1 .view-content > .field-label-inline {
  margin-top: 50px;
  margin-bottom: 0; }

.block.logo-block {
  display: inline-block; }
  .block.logo-block .field__item {
    display: inline-block;
    margin-right: 2px; }
  .block.logo-block .field__item:last-child {
    margin-right: 0; }

html {
  color: #333; }
  html ::selection {
    color: #333;
    background: #cccccc; }

img {
  height: auto;
  max-width: 100%; }

a {
  color: #ff4040;
  text-decoration: none; }
  a:hover, a:focus {
    color: #ff4040;
    text-decoration: underline; }

ul.menu {
  margin: 0;
  padding: 0; }

.tabs li {
  display: inline-block; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGUuY3NzIiwic291cmNlcyI6WyJzdHlsZS5zY3NzIiwiYmFzZS9fZ3JpZC1zZXR0aW5ncy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9fYm91cmJvbi5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9zZXR0aW5ncy9fZGVwcmVjYXRpb24td2FybmluZ3Muc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvc2V0dGluZ3MvX3ByZWZpeGVyLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL3NldHRpbmdzL19weC10by1lbS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9zZXR0aW5ncy9fYXNzZXQtcGlwZWxpbmUuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvX2JvdXJib24tZGVwcmVjYXRlLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fYXNzaWduLWlucHV0cy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX2NvbnRhaW5zLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fY29udGFpbnMtZmFsc3kuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19pcy1sZW5ndGguc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19pcy1saWdodC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX2lzLW51bWJlci5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX2lzLXNpemUuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19weC10by1lbS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX3B4LXRvLXJlbS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX3NoYWRlLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fc3RyaXAtdW5pdHMuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL190aW50LnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fdW5wYWNrLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fbW9kdWxhci1zY2FsZS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19jb252ZXJ0LXVuaXRzLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX2RpcmVjdGlvbmFsLXZhbHVlcy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19mb250LXNvdXJjZS1kZWNsYXJhdGlvbi5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19ncmFkaWVudC1wb3NpdGlvbnMtcGFyc2VyLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX2xpbmVhci1hbmdsZS1wYXJzZXIuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fbGluZWFyLWdyYWRpZW50LXBhcnNlci5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19saW5lYXItcG9zaXRpb25zLXBhcnNlci5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19saW5lYXItc2lkZS1jb3JuZXItcGFyc2VyLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX3JhZGlhbC1hcmctcGFyc2VyLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX3JhZGlhbC1wb3NpdGlvbnMtcGFyc2VyLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fcmVuZGVyLWdyYWRpZW50cy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19zaGFwZS1zaXplLXN0cmlwcGVyLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX3N0ci10by1udW0uc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fYW5pbWF0aW9uLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2FwcGVhcmFuY2Uuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fYmFja2ZhY2UtdmlzaWJpbGl0eS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19iYWNrZ3JvdW5kLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2JhY2tncm91bmQtaW1hZ2Uuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fYm9yZGVyLWltYWdlLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2NhbGMuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fY29sdW1ucy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19maWx0ZXIuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fZmxleC1ib3guc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fZm9udC1mYWNlLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2ZvbnQtZmVhdHVyZS1zZXR0aW5ncy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19oaWRwaS1tZWRpYS1xdWVyeS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19oeXBoZW5zLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2ltYWdlLXJlbmRlcmluZy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19rZXlmcmFtZXMuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fbGluZWFyLWdyYWRpZW50LnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX3BlcnNwZWN0aXZlLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX3BsYWNlaG9sZGVyLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX3JhZGlhbC1ncmFkaWVudC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19zZWxlY3Rpb24uc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fdGV4dC1kZWNvcmF0aW9uLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX3RyYW5zZm9ybS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL190cmFuc2l0aW9uLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX3VzZXItc2VsZWN0LnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fYm9yZGVyLWNvbG9yLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fYm9yZGVyLXJhZGl1cy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2JvcmRlci1zdHlsZS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2JvcmRlci13aWR0aC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2J1dHRvbnMuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19jbGVhcmZpeC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2VsbGlwc2lzLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fZm9udC1zdGFja3Muc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19oaWRlLXRleHQuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19tYXJnaW4uc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19wYWRkaW5nLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fcG9zaXRpb24uc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19wcmVmaXhlci5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3JldGluYS1pbWFnZS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3NpemUuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL190ZXh0LWlucHV0cy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3RpbWluZy1mdW5jdGlvbnMuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL190cmlhbmdsZS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3dvcmQtd3JhcC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9fYm91cmJvbi1kZXByZWNhdGVkLXVwY29taW5nLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi1uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvX25lYXQuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uLW5lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9fbmVhdC1oZWxwZXJzLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi1uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19wcml2YXRlLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi1uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19uZXctYnJlYWtwb2ludC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24tbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL3NldHRpbmdzL19ncmlkLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi1uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvc2V0dGluZ3MvX3Zpc3VhbC1ncmlkLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi1uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvc2V0dGluZ3MvX2Rpc2FibGUtd2FybmluZ3Muc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uLW5lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9ncmlkL19wcml2YXRlLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi1uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZ3JpZC9fYm94LXNpemluZy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24tbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2dyaWQvX29tZWdhLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi1uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZ3JpZC9fb3V0ZXItY29udGFpbmVyLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi1uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZ3JpZC9fc3Bhbi1jb2x1bW5zLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi1uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZ3JpZC9fcm93LnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi1uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZ3JpZC9fc2hpZnQuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uLW5lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9ncmlkL19wYWQuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uLW5lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9ncmlkL19maWxsLXBhcmVudC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24tbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2dyaWQvX21lZGlhLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi1uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZ3JpZC9fdG8tZGVwcmVjYXRlLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi1uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZ3JpZC9fdmlzdWFsLWdyaWQuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uLW5lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9ncmlkL19kaXNwbGF5LWNvbnRleHQuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uLW5lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9ncmlkL19kaXJlY3Rpb24tY29udGV4dC5zY3NzIiwiYmFzZS9fdmFyaWFibGVzLnNjc3MiLCJiYXNlL19mb250cy5zY3NzIiwiYmFzZS9fbm9ybWFsaXplLnNjc3MiLCJiYXNlL21peGlucy9fbWl4aW5zLnNjc3MiLCJiYXNlL21peGlucy9fZ3JpZC5zY3NzIiwiYmFzZS9taXhpbnMvX2J1dHRvbnMuc2NzcyIsImJhc2UvbWl4aW5zL19mb3Jtcy5zY3NzIiwiYmFzZS9taXhpbnMvX3RpdGxlcy5zY3NzIiwiZGVzaWduL19kZXNpZ24uc2NzcyIsImRlc2lnbi9fbGF5b3V0LnNjc3MiLCJkZXNpZ24vX3R5cG9ncmFwaHkuc2NzcyIsImRlc2lnbi9faGVhZGVyLnNjc3MiLCJkZXNpZ24vX2Zvb3Rlci5zY3NzIiwiZGVzaWduL19mcm9udC5zY3NzIiwiZGVzaWduL19uYXZpZ2F0aW9uLnNjc3MiLCJkZXNpZ24vX21vYmlsZS5zY3NzIiwiZGVzaWduL19mb3Jtcy5zY3NzIiwiZGVzaWduL190YWJsZXMuc2NzcyIsImtpb3NrLnNjc3MiLCJzdHlsZXMvX3N0eWxlcy5zY3NzIiwic3R5bGVzL2NvbXBvbmVudC9fY29tcG9uZW50LnNjc3MiLCJzdHlsZXMvY29tcG9uZW50L19ib3guc2NzcyIsInN0eWxlcy9jb21wb25lbnQvX2JyZWFkY3J1bWIuc2NzcyIsInN0eWxlcy9jb21wb25lbnQvX2Nvb2tpZXMuc2NzcyIsInN0eWxlcy9jb21wb25lbnQvX2ZhY2Vib29rLWNvbW1lbnRzLnNjc3MiLCJzdHlsZXMvY29tcG9uZW50L19pZnJhbWUtd3JhcHBlci5zY3NzIiwic3R5bGVzL2NvbXBvbmVudC9fbG9nby5zY3NzIiwic3R5bGVzL2NvbXBvbmVudC9fc2NyZWVuaW5ncy5zY3NzIiwic3R5bGVzL2NvbXBvbmVudC9fcXVvdGUuc2NzcyIsInN0eWxlcy9jb21wb25lbnQvX3NvY2lhbC1zaGFyZS5zY3NzIiwic3R5bGVzL2NvbXBvbmVudC9faG9yaXpvbnRhbC10YWJzLnNjc3MiLCJzdHlsZXMvbm9kZS9fbm9kZS5zY3NzIiwic3R5bGVzL25vZGUvX25vZGUtZmlsbS5zY3NzIiwic3R5bGVzL25vZGUvX25vZGUtZmlsbXJlZWtzLnNjc3MiLCJzdHlsZXMvbm9kZS9fbm9kZS1ob21lcGFnZS5zY3NzIiwic3R5bGVzL25vZGUvX25vZGUtbXVsdGlwYWdlLnNjc3MiLCJzdHlsZXMvbm9kZS9fbm9kZS1uZXdzLnNjc3MiLCJzdHlsZXMvbm9kZS9fbm9kZS1wYWNrYWdlLnNjc3MiLCJzdHlsZXMvbm9kZS9fbm9kZS1wYWdlLnNjc3MiLCJzdHlsZXMvbm9kZS9fbm9kZS1zbGlkZS5zY3NzIiwic3R5bGVzL25vZGUvX25vZGUtc2VhcmNoLnNjc3MiLCJzdHlsZXMvdmlldy9fdmlldy5zY3NzIiwic3R5bGVzL3ZpZXcvX3ZpZXctZmlsbXMtYXZhbnRwcmVtaWVyZS5zY3NzIiwic3R5bGVzL3ZpZXcvX3ZpZXctZmlsbXMtcHJvZ3JhbW1lLnNjc3MiLCJzdHlsZXMvdmlldy9fdmlldy1maWxtcy1wYWNrYWdlLnNjc3MiLCJzdHlsZXMvdmlldy9fdmlldy1uZXdzLnNjc3MiLCJzdHlsZXMvdmlldy9fdmlldy1wYWNrYWdlcy5zY3NzIiwic3R5bGVzL3ZpZXcvX3ZpZXctZmlsbXMtaW4tZGV6ZS1maWxtcmVla3Mtc2NyZWVuaW5nLWRhdGVzLnNjc3MiLCJzdHlsZXMvcGFnZS9fcGFnZS5zY3NzIiwic3R5bGVzL2Jsb2NrL19ibG9jay5zY3NzIiwic3R5bGVzL2Jsb2NrL19ibG9jay1sb2dvLnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiQGNoYXJzZXQgJ1VURi04JztcblxuLy8gU3R5bGUgZmlsZVxuLy8gVGhpcyBmaWxlIGlzIGNvbXBpbGVkIGludG8gc3R5bGUuY3NzXG5cbkBpbXBvcnQgJ2Jhc2UvZ3JpZC1zZXR0aW5ncyc7XG5AaW1wb3J0ICdib3VyYm9uJztcbkBpbXBvcnQgJ25lYXQnO1xuXG4vLyAtLS0tLS0tLS0tIEltcG9ydCBiYXNlIC0tLS0tLS0tLS1cbkBpbXBvcnQgJ2Jhc2UvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2Jhc2UvZm9udHMnO1xuQGltcG9ydCAnYmFzZS9ub3JtYWxpemUnO1xuQGltcG9ydCAnYmFzZS9taXhpbnMvbWl4aW5zJztcblxuLy8gLS0tLS0tLS0tLSBJbXBvcnQgZGVzaWduIC0tLS0tLS0tLS1cbkBpbXBvcnQgJ2Rlc2lnbi9kZXNpZ24nO1xuXG4vLyAtLS0tLS0tLS0tIEltcG9ydCBzdHlsZXMgLS0tLS0tLS0tLVxuQGltcG9ydCAnc3R5bGVzL3N0eWxlcyc7XG4iLCIvLyBHcmlkIHNldHRpbmdzIChQb3dlcmVkIGJ5IEJvdXJib24gTmVhdCkuXG4vLyBTb3VyY2U6IGh0dHA6Ly90aG91Z2h0Ym90LmdpdGh1Yi5pby9uZWF0LWRvY3MvbGF0ZXN0LyN2YXJpYWJsZVxuXG4vLyBTZXRzIHRoZSByZWxhdGl2ZSB3aWR0aCBvZiBhIHNpbmdsZSBncmlkIGNvbHVtbi4gVGhlIHVuaXQgdXNlZCBzaG91bGQgYmUgdGhlIHNhbWUgb25lIHVzZWQgdG8gZGVmaW5lIGAkZ3V0dGVyYC5cbiRjb2x1bW46IDcwO1xuXG4vLyBTZXRzIHRoZSByZWxhdGl2ZSB3aWR0aCBvZiBhIHNpbmdsZSBncmlkIGd1dHRlci4gVGhlIHVuaXQgdXNlZCBzaG91bGQgYmUgdGhlIHNhbWUgb25lIHVzZWQgdG8gZGVmaW5lIGAkY29sdW1uYC5cbiRndXR0ZXI6IDMwO1xuXG4vLyBTZXRzIHRoZSB0b3RhbCBudW1iZXIgb2YgY29sdW1ucyBpbiB0aGUgZ3JpZC4gSXRzIHZhbHVlIGNhbiBiZSBvdmVycmlkZGVuIGluc2lkZSBhIG1lZGlhIHF1ZXJ5IHVzaW5nIHRoZSBgbWVkaWEoKWAgbWl4aW4uXG4kZ3JpZC1jb2x1bW5zOiAxMjtcblxuLy8gU2V0cyB0aGUgbWF4LXdpZHRoIHByb3BlcnR5IG9mIHRoZSBlbGVtZW50IHRoYXQgaW5jbHVkZXMgYG91dGVyLWNvbnRhaW5lcigpYC5cbiRtYXgtd2lkdGg6IDExNzBweDtcblxuLy8gV2hlbiBzZXQgdG8gdHJ1ZSwgaXQgc2V0cyB0aGUgYm94LXNpemluZyBwcm9wZXJ0eSBvZiBhbGwgZWxlbWVudHMgdG8gYGJvcmRlci1ib3hgLlxuJGJvcmRlci1ib3gtc2l6aW5nOiB0cnVlO1xuXG4vLyBTZXRzIHRoZSBkZWZhdWx0IG1lZGlhIGZlYXR1cmUgdGhhdCBgbWVkaWEoKWAgYW5kIGBuZXctYnJlYWtwb2ludCgpYCByZXZlcnQgdG8gd2hlbiBvbmx5IGEgYnJlYWtwb2ludCB2YWx1ZSBpcyBwYXNzZWQuXG4kZGVmYXVsdC1mZWF0dXJlOiBtaW4td2lkdGg7XG5cbi8vIFNldHMgdGhlIGRlZmF1bHQgbGF5b3V0IGRpcmVjdGlvbiBvZiB0aGUgZ3JpZC4gQ2FuIGJlIGBMVFJgIG9yIGBSVExgLlxuJGRlZmF1bHQtbGF5b3V0LWRpcmVjdGlvbjogTFRSO1xuXG4vLyBEaXNwbGF5cyB0aGUgdmlzdWFsIGdyaWQgd2hlbiBzZXQgdG8gdHJ1ZS5cbi8vIFRoZSBvdmVybGFpZCBncmlkIG1heSBiZSBmZXcgcGl4ZWxzIG9mZiBkZXBlbmRpbmcgb24gdGhlIGJyb3dzZXIncyByZW5kZXJpbmcgZW5naW5lIGFuZCBwaXhlbCByb3VuZGluZyBhbGdvcml0aG0uXG4kdmlzdWFsLWdyaWQ6IGZhbHNlO1xuXG4vLyBTZXRzIHRoZSB2aXN1YWwgZ3JpZCBjb2xvci5cbiR2aXN1YWwtZ3JpZC1jb2xvcjogI2VlZTtcblxuLy8gU2V0cyB0aGUgJ3otaW5kZXgnIHByb3BlcnR5IG9mIHRoZSB2aXN1YWwgZ3JpZC4gQ2FuIGJlIGBiYWNrYCAoYmVoaW5kIGNvbnRlbnQpIG9yIGBmcm9udGAgKGluIGZyb250IG9mIGNvbnRlbnQpLlxuJHZpc3VhbC1ncmlkLWluZGV4OiBmcm9udDtcblxuLy8gU2V0cyB0aGUgb3BhY2l0eSBwcm9wZXJ0eSBvZiB0aGUgdmlzdWFsIGdyaWQuXG4kdmlzdWFsLWdyaWQtb3BhY2l0eTogLjQ7XG4iLCIvLyBCb3VyYm9uIDQuMy40XG4vLyBodHRwOi8vYm91cmJvbi5pb1xuLy8gQ29weXJpZ2h0IDIwMTEtMjAxNyB0aG91Z2h0Ym90LCBpbmMuXG4vLyBNSVQgTGljZW5zZVxuXG5AaW1wb3J0IFwic2V0dGluZ3MvZGVwcmVjYXRpb24td2FybmluZ3NcIjtcbkBpbXBvcnQgXCJzZXR0aW5ncy9wcmVmaXhlclwiO1xuQGltcG9ydCBcInNldHRpbmdzL3B4LXRvLWVtXCI7XG5AaW1wb3J0IFwic2V0dGluZ3MvYXNzZXQtcGlwZWxpbmVcIjtcblxuQGltcG9ydCBcImJvdXJib24tZGVwcmVjYXRlXCI7XG5cbkBpbXBvcnQgXCJmdW5jdGlvbnMvYXNzaWduLWlucHV0c1wiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9jb250YWluc1wiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9jb250YWlucy1mYWxzeVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9pcy1sZW5ndGhcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvaXMtbGlnaHRcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvaXMtbnVtYmVyXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2lzLXNpemVcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvcHgtdG8tZW1cIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvcHgtdG8tcmVtXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3NoYWRlXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3N0cmlwLXVuaXRzXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3RpbnRcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3VucGFja1wiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9tb2R1bGFyLXNjYWxlXCI7XG5cbkBpbXBvcnQgXCJoZWxwZXJzL2NvbnZlcnQtdW5pdHNcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2RpcmVjdGlvbmFsLXZhbHVlc1wiO1xuQGltcG9ydCBcImhlbHBlcnMvZm9udC1zb3VyY2UtZGVjbGFyYXRpb25cIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2dyYWRpZW50LXBvc2l0aW9ucy1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2xpbmVhci1hbmdsZS1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2xpbmVhci1ncmFkaWVudC1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9saW5lYXItc2lkZS1jb3JuZXItcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9yYWRpYWwtYXJnLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvcmFkaWFsLXBvc2l0aW9ucy1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3JhZGlhbC1ncmFkaWVudC1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3JlbmRlci1ncmFkaWVudHNcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3NoYXBlLXNpemUtc3RyaXBwZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3N0ci10by1udW1cIjtcblxuQGltcG9ydCBcImNzczMvYW5pbWF0aW9uXCI7XG5AaW1wb3J0IFwiY3NzMy9hcHBlYXJhbmNlXCI7XG5AaW1wb3J0IFwiY3NzMy9iYWNrZmFjZS12aXNpYmlsaXR5XCI7XG5AaW1wb3J0IFwiY3NzMy9iYWNrZ3JvdW5kXCI7XG5AaW1wb3J0IFwiY3NzMy9iYWNrZ3JvdW5kLWltYWdlXCI7XG5AaW1wb3J0IFwiY3NzMy9ib3JkZXItaW1hZ2VcIjtcbkBpbXBvcnQgXCJjc3MzL2NhbGNcIjtcbkBpbXBvcnQgXCJjc3MzL2NvbHVtbnNcIjtcbkBpbXBvcnQgXCJjc3MzL2ZpbHRlclwiO1xuQGltcG9ydCBcImNzczMvZmxleC1ib3hcIjtcbkBpbXBvcnQgXCJjc3MzL2ZvbnQtZmFjZVwiO1xuQGltcG9ydCBcImNzczMvZm9udC1mZWF0dXJlLXNldHRpbmdzXCI7XG5AaW1wb3J0IFwiY3NzMy9oaWRwaS1tZWRpYS1xdWVyeVwiO1xuQGltcG9ydCBcImNzczMvaHlwaGVuc1wiO1xuQGltcG9ydCBcImNzczMvaW1hZ2UtcmVuZGVyaW5nXCI7XG5AaW1wb3J0IFwiY3NzMy9rZXlmcmFtZXNcIjtcbkBpbXBvcnQgXCJjc3MzL2xpbmVhci1ncmFkaWVudFwiO1xuQGltcG9ydCBcImNzczMvcGVyc3BlY3RpdmVcIjtcbkBpbXBvcnQgXCJjc3MzL3BsYWNlaG9sZGVyXCI7XG5AaW1wb3J0IFwiY3NzMy9yYWRpYWwtZ3JhZGllbnRcIjtcbkBpbXBvcnQgXCJjc3MzL3NlbGVjdGlvblwiO1xuQGltcG9ydCBcImNzczMvdGV4dC1kZWNvcmF0aW9uXCI7XG5AaW1wb3J0IFwiY3NzMy90cmFuc2Zvcm1cIjtcbkBpbXBvcnQgXCJjc3MzL3RyYW5zaXRpb25cIjtcbkBpbXBvcnQgXCJjc3MzL3VzZXItc2VsZWN0XCI7XG5cbkBpbXBvcnQgXCJhZGRvbnMvYm9yZGVyLWNvbG9yXCI7XG5AaW1wb3J0IFwiYWRkb25zL2JvcmRlci1yYWRpdXNcIjtcbkBpbXBvcnQgXCJhZGRvbnMvYm9yZGVyLXN0eWxlXCI7XG5AaW1wb3J0IFwiYWRkb25zL2JvcmRlci13aWR0aFwiO1xuQGltcG9ydCBcImFkZG9ucy9idXR0b25zXCI7XG5AaW1wb3J0IFwiYWRkb25zL2NsZWFyZml4XCI7XG5AaW1wb3J0IFwiYWRkb25zL2VsbGlwc2lzXCI7XG5AaW1wb3J0IFwiYWRkb25zL2ZvbnQtc3RhY2tzXCI7XG5AaW1wb3J0IFwiYWRkb25zL2hpZGUtdGV4dFwiO1xuQGltcG9ydCBcImFkZG9ucy9tYXJnaW5cIjtcbkBpbXBvcnQgXCJhZGRvbnMvcGFkZGluZ1wiO1xuQGltcG9ydCBcImFkZG9ucy9wb3NpdGlvblwiO1xuQGltcG9ydCBcImFkZG9ucy9wcmVmaXhlclwiO1xuQGltcG9ydCBcImFkZG9ucy9yZXRpbmEtaW1hZ2VcIjtcbkBpbXBvcnQgXCJhZGRvbnMvc2l6ZVwiO1xuQGltcG9ydCBcImFkZG9ucy90ZXh0LWlucHV0c1wiO1xuQGltcG9ydCBcImFkZG9ucy90aW1pbmctZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiYWRkb25zL3RyaWFuZ2xlXCI7XG5AaW1wb3J0IFwiYWRkb25zL3dvcmQtd3JhcFwiO1xuXG5AaW1wb3J0IFwiYm91cmJvbi1kZXByZWNhdGVkLXVwY29taW5nXCI7XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBFbmFibGUgb3IgZGlzYWJsZSBvdXRwdXQgb2YgQm91cmJvbuKAmXMgZGVwcmVjYXRpb24tcmVsYXRlZCBTYXNzIHdhcm5pbmdzLlxuLy8vIFRoaXMgdmFyaWFibGUgbXVzdCBiZSBkZWNsYXJlZCBfYmVmb3JlXyBpbXBvcnRpbmcgQm91cmJvbi5cbi8vL1xuLy8vIEB0eXBlIEJvb2xcblxuJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiB0cnVlICFkZWZhdWx0O1xuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gR2xvYmFsIHZhcmlhYmxlcyB0byBlbmFibGUgb3IgZGlzYWJsZSB2ZW5kb3IgcHJlZml4ZXNcblxuJHByZWZpeC1mb3Itd2Via2l0OiAgICB0cnVlICFkZWZhdWx0O1xuJHByZWZpeC1mb3ItbW96aWxsYTogICB0cnVlICFkZWZhdWx0O1xuJHByZWZpeC1mb3ItbWljcm9zb2Z0OiB0cnVlICFkZWZhdWx0O1xuJHByZWZpeC1mb3Itb3BlcmE6ICAgICB0cnVlICFkZWZhdWx0O1xuJHByZWZpeC1mb3Itc3BlYzogICAgICB0cnVlICFkZWZhdWx0O1xuIiwiJGVtLWJhc2U6IDE2cHggIWRlZmF1bHQ7XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBBIGdsb2JhbCBzZXR0aW5nIHRvIGVuYWJsZSBvciBkaXNhYmxlIHRoZSBgJGFzc2V0LXBpcGVsaW5lYCB2YXJpYWJsZSBmb3IgYWxsIGZ1bmN0aW9ucyB0aGF0IGFjY2VwdCBpdC5cbi8vL1xuLy8vIEB0eXBlIEJvb2xcblxuJGFzc2V0LXBpcGVsaW5lOiBmYWxzZSAhZGVmYXVsdDtcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFRocm93cyBTYXNzIHdhcm5pbmdzIHRvIGFubm91bmNlIGxpYnJhcnkgZGVwcmVjYXRpb25zLiBZb3UgY2FuIGRpc2FibGUgdGhlbVxuLy8vIGJ5IHNldHRpbmcgdGhlIGAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3NgIHZhcmlhYmxlIHRvIGBmYWxzZWAuXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcblxuQG1peGluIF9ib3VyYm9uLWRlcHJlY2F0ZSgkZmVhdHVyZSwgJG1lc3NhZ2U6IG51bGwpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGAjeyRmZWF0dXJlfWAgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSBcIiArXG4gICAgICBcInJlbW92ZWQgaW4gNS4wLjAuICN7JG1lc3NhZ2V9XCI7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKCRmZWF0dXJlKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZSgkZmVhdHVyZSwgXCJXZSBzdWdnZXN0IHVzaW5nIGFuIGF1dG9tYXRlZCBcIiArXG4gICAgXCJwcmVmaXhpbmcgdG9vbCwgbGlrZSBBdXRvcHJlZml4ZXIuXCIpO1xufVxuIiwiQGZ1bmN0aW9uIGFzc2lnbi1pbnB1dHMoJGlucHV0cywgJHBzZXVkbzogbnVsbCkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYGFzc2lnbi1pbnB1dHNgIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgXCIgK1xuICAgIFwicmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gICRsaXN0OiAoKTtcblxuICBAZWFjaCAkaW5wdXQgaW4gJGlucHV0cyB7XG4gICAgJGlucHV0OiB1bnF1b3RlKCRpbnB1dCk7XG4gICAgJGlucHV0OiBpZigkcHNldWRvLCAkaW5wdXQgKyBcIjpcIiArICRwc2V1ZG8sICRpbnB1dCk7XG4gICAgJGxpc3Q6IGFwcGVuZCgkbGlzdCwgJGlucHV0LCBjb21tYSk7XG4gIH1cblxuICBAcmV0dXJuICRsaXN0O1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ2hlY2tzIGlmIGEgbGlzdCBjb250YWlucyBhIHZhbHVlKHMpLlxuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRsaXN0XG4vLy8gICBUaGUgbGlzdCB0byBjaGVjayBhZ2FpbnN0LlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkdmFsdWVzXG4vLy8gICBBIHNpbmdsZSB2YWx1ZSBvciBsaXN0IG9mIHZhbHVlcyB0byBjaGVjayBmb3IuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIGNvbnRhaW5zKCRsaXN0LCAkdmFsdWUpXG4vLy9cbi8vLyBAcmV0dXJuIHtCb29sfVxuXG5AZnVuY3Rpb24gY29udGFpbnMoJGxpc3QsICR2YWx1ZXMuLi4pIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBjb250YWluc2AgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSBcIiArXG4gICAgXCJyZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgQGVhY2ggJHZhbHVlIGluICR2YWx1ZXMge1xuICAgIEBpZiB0eXBlLW9mKGluZGV4KCRsaXN0LCAkdmFsdWUpKSAhPSBcIm51bWJlclwiIHtcbiAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiB0cnVlO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ2hlY2tzIGlmIGEgbGlzdCBkb2VzIG5vdCBjb250YWlucyBhIHZhbHVlLlxuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRsaXN0XG4vLy8gICBUaGUgbGlzdCB0byBjaGVjayBhZ2FpbnN0LlxuLy8vXG4vLy8gQHJldHVybiB7Qm9vbH1cblxuQGZ1bmN0aW9uIGNvbnRhaW5zLWZhbHN5KCRsaXN0KSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgY29udGFpbnMtZmFsc3lgIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgXCIgK1xuICAgIFwicmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gIEBlYWNoICRpdGVtIGluICRsaXN0IHtcbiAgICBAaWYgbm90ICRpdGVtIHtcbiAgICAgIEByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIGZhbHNlO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ2hlY2tzIGZvciBhIHZhbGlkIENTUyBsZW5ndGguXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHZhbHVlXG5cbkBmdW5jdGlvbiBpcy1sZW5ndGgoJHZhbHVlKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgaXMtbGVuZ3RoYCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIFwiICtcbiAgICBcInJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICBAcmV0dXJuIHR5cGUtb2YoJHZhbHVlKSAhPSBcIm51bGxcIiBhbmQgKHN0ci1zbGljZSgkdmFsdWUgKyBcIlwiLCAxLCA0KSA9PSBcImNhbGNcIlxuICAgICAgIG9yIGluZGV4KGF1dG8gaW5oZXJpdCBpbml0aWFsIDAsICR2YWx1ZSlcbiAgICAgICBvciAodHlwZS1vZigkdmFsdWUpID09IFwibnVtYmVyXCIgYW5kIG5vdCh1bml0bGVzcygkdmFsdWUpKSkpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvZ3JhbWF0aWNhbGx5IGRldGVybWluZXMgd2hldGhlciBhIGNvbG9yIGlzIGxpZ2h0IG9yIGRhcmsuXG4vLy9cbi8vLyBAbGluayBodHRwOi8vcm9ib3RzLnRob3VnaHRib3QuY29tL2Nsb3Nlci1sb29rLWNvbG9yLWxpZ2h0bmVzc1xuLy8vXG4vLy8gQHBhcmFtIHtDb2xvciAoSGV4KX0gJGNvbG9yXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIGlzLWxpZ2h0KCRjb2xvcilcbi8vL1xuLy8vIEByZXR1cm4ge0Jvb2x9XG5cbkBmdW5jdGlvbiBpcy1saWdodCgkaGV4LWNvbG9yKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgaXMtbGlnaHRgIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgXCIgK1xuICAgIFwicmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gICQtbG9jYWwtcmVkOiByZWQocmdiYSgkaGV4LWNvbG9yLCAxKSk7XG4gICQtbG9jYWwtZ3JlZW46IGdyZWVuKHJnYmEoJGhleC1jb2xvciwgMSkpO1xuICAkLWxvY2FsLWJsdWU6IGJsdWUocmdiYSgkaGV4LWNvbG9yLCAxKSk7XG4gICQtbG9jYWwtbGlnaHRuZXNzOiAoJC1sb2NhbC1yZWQgKiAwLjIxMjYgKyAkLWxvY2FsLWdyZWVuICogMC43MTUyICsgJC1sb2NhbC1ibHVlICogMC4wNzIyKSAvIDI1NTtcblxuICBAcmV0dXJuICQtbG9jYWwtbGlnaHRuZXNzID4gMC42O1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ2hlY2tzIGZvciBhIHZhbGlkIG51bWJlci5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWVcbi8vL1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gY29udGFpbnNcblxuQGZ1bmN0aW9uIGlzLW51bWJlcigkdmFsdWUpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBpcy1udW1iZXJgIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgXCIgK1xuICAgIFwicmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gIEByZXR1cm4gY29udGFpbnMoXCIwXCIgXCIxXCIgXCIyXCIgXCIzXCIgXCI0XCIgXCI1XCIgXCI2XCIgXCI3XCIgXCI4XCIgXCI5XCIgMCAxIDIgMyA0IDUgNiA3IDggOSwgJHZhbHVlKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENoZWNrcyBmb3IgYSB2YWxpZCBDU1Mgc2l6ZS5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdmFsdWVcbi8vL1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gY29udGFpbnNcbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGlzLWxlbmd0aFxuXG5AZnVuY3Rpb24gaXMtc2l6ZSgkdmFsdWUpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBpcy1zaXplYCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIFwiICtcbiAgICBcInJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nOiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2UgIWdsb2JhbDtcblxuICBAcmV0dXJuIGlzLWxlbmd0aCgkdmFsdWUpXG4gICAgICAgICAgb3IgY29udGFpbnMoXCJmaWxsXCIgXCJmaXQtY29udGVudFwiIFwibWluLWNvbnRlbnRcIiBcIm1heC1jb250ZW50XCIsICR2YWx1ZSk7XG5cbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nICFnbG9iYWw7XG59XG4iLCIvLyBDb252ZXJ0IHBpeGVscyB0byBlbXNcbi8vIGVnLiBmb3IgYSByZWxhdGlvbmFsIHZhbHVlIG9mIDEycHggd3JpdGUgZW0oMTIpIHdoZW4gdGhlIHBhcmVudCBpcyAxNnB4XG4vLyBpZiB0aGUgcGFyZW50IGlzIGFub3RoZXIgdmFsdWUgc2F5IDI0cHggd3JpdGUgZW0oMTIsIDI0KVxuXG5AZnVuY3Rpb24gZW0oJHB4dmFsLCAkYmFzZTogJGVtLWJhc2UpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBlbWAgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSBcIiArXG4gICAgXCJyZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZzogJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzO1xuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6IGZhbHNlICFnbG9iYWw7XG5cbiAgQGlmIG5vdCB1bml0bGVzcygkcHh2YWwpIHtcbiAgICAkcHh2YWw6IHN0cmlwLXVuaXRzKCRweHZhbCk7XG4gIH1cbiAgQGlmIG5vdCB1bml0bGVzcygkYmFzZSkge1xuICAgICRiYXNlOiBzdHJpcC11bml0cygkYmFzZSk7XG4gIH1cblxuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6ICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmcgIWdsb2JhbDtcblxuICBAcmV0dXJuICgkcHh2YWwgLyAkYmFzZSkgKiAxZW07XG59XG4iLCIvLyBDb252ZXJ0IHBpeGVscyB0byByZW1zXG4vLyBlZy4gZm9yIGEgcmVsYXRpb25hbCB2YWx1ZSBvZiAxMnB4IHdyaXRlIHJlbSgxMilcbi8vIEFzc3VtZXMgJGVtLWJhc2UgaXMgdGhlIGZvbnQtc2l6ZSBvZiA8aHRtbD5cblxuQGZ1bmN0aW9uIHJlbSgkcHh2YWwpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGByZW1gIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgXCIgK1xuICAgIFwicmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZSAhZ2xvYmFsO1xuXG4gIEBpZiBub3QgdW5pdGxlc3MoJHB4dmFsKSB7XG4gICAgJHB4dmFsOiBzdHJpcC11bml0cygkcHh2YWwpO1xuICB9XG5cbiAgJGJhc2U6ICRlbS1iYXNlO1xuICBAaWYgbm90IHVuaXRsZXNzKCRiYXNlKSB7XG4gICAgJGJhc2U6IHN0cmlwLXVuaXRzKCRiYXNlKTtcbiAgfVxuXG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZyAhZ2xvYmFsO1xuXG4gIEByZXR1cm4gKCRweHZhbCAvICRiYXNlKSAqIDFyZW07XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBNaXhlcyBhIGNvbG9yIHdpdGggYmxhY2suXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3Jcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyIChQZXJjZW50YWdlKX0gJHBlcmNlbnRcbi8vLyAgIFRoZSBhbW91bnQgb2YgYmxhY2sgdG8gYmUgbWl4ZWQgaW4uXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogc2hhZGUoI2ZmYmI1MiwgNjAlKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzY2NGEyMDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXR1cm4ge0NvbG9yfVxuXG5AZnVuY3Rpb24gc2hhZGUoJGNvbG9yLCAkcGVyY2VudCkge1xuICBAcmV0dXJuIG1peCgjMDAwLCAkY29sb3IsICRwZXJjZW50KTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFN0cmlwcyB0aGUgdW5pdCBmcm9tIGEgbnVtYmVyLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXIgKFdpdGggVW5pdCl9ICR2YWx1ZVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAkZGltZW5zaW9uOiBzdHJpcC11bml0cygxMGVtKTtcbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgICRkaW1lbnNpb246IDEwO1xuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyIChVbml0bGVzcyl9XG5cbkBmdW5jdGlvbiBzdHJpcC11bml0cygkdmFsdWUpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBzdHJpcC11bml0c2AgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSBcIiArXG4gICAgXCJyZW1vdmVkIGluIDUuMC4wIGFuZCByZXBsYWNlZCBieSB0aGUgYHN0cmlwLXVuaXRgIGZ1bmN0aW9uLlwiO1xuICB9XG5cbiAgQHJldHVybiAoJHZhbHVlIC8gKCR2YWx1ZSAqIDAgKyAxKSk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBNaXhlcyBhIGNvbG9yIHdpdGggd2hpdGUuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3Jcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyIChQZXJjZW50YWdlKX0gJHBlcmNlbnRcbi8vLyAgIFRoZSBhbW91bnQgb2Ygd2hpdGUgdG8gYmUgbWl4ZWQgaW4uXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogdGludCgjNmVjYWE2LCA0MCUpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYThkZmM5O1xuLy8vICAgfVxuLy8vXG4vLy8gQHJldHVybiB7Q29sb3J9XG5cbkBmdW5jdGlvbiB0aW50KCRjb2xvciwgJHBlcmNlbnQpIHtcbiAgQHJldHVybiBtaXgoI2ZmZiwgJGNvbG9yLCAkcGVyY2VudCk7XG59XG4iLCIvLyBSZXR1cm4gdmVuZG9yLXByZWZpeGVkIHByb3BlcnR5IG5hbWVzIGlmIGFwcHJvcHJpYXRlXG4vLyBFeGFtcGxlOiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCh0cmFuc2Zvcm0sIGNvbG9yLCBiYWNrZ3JvdW5kKSwgbW96KSAtPiAtbW96LXRyYW5zZm9ybSwgY29sb3IsIGJhY2tncm91bmRcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbkBmdW5jdGlvbiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wcywgJHZlbmRvcjogZmFsc2UpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzYCBpcyBkZXByZWNhdGVkIFwiICtcbiAgICBcImFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nOiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2UgIWdsb2JhbDtcblxuICAkbmV3LXByb3BzOiAoKTtcblxuICBAZWFjaCAkcHJvcCBpbiAkcHJvcHMge1xuICAgICRuZXctcHJvcHM6IGFwcGVuZCgkbmV3LXByb3BzLCB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWUoJHByb3AsICR2ZW5kb3IpLCBjb21tYSk7XG4gIH1cblxuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6ICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmcgIWdsb2JhbDtcblxuICBAcmV0dXJuICRuZXctcHJvcHM7XG59XG5cbkBmdW5jdGlvbiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWUoJHByb3AsICR2ZW5kb3I6IGZhbHNlKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lYCBpcyBkZXByZWNhdGVkIFwiICtcbiAgICBcImFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICAvLyBwdXQgb3RoZXIgcHJvcGVydGllcyB0aGF0IG5lZWQgdG8gYmUgcHJlZml4ZWQgaGVyZSBhc3dlbGxcbiAgQGlmICR2ZW5kb3IgYW5kICRwcm9wID09IHRyYW5zZm9ybSB7XG4gICAgQHJldHVybiB1bnF1b3RlKCctJyskdmVuZG9yKyctJyskcHJvcCk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gJHByb3A7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENvbnZlcnRzIHNob3J0aGFuZCB0byB0aGUgNC12YWx1ZSBzeW50YXguXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRzaG9ydGhhbmRcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBtYXJnaW46IHVucGFjaygxZW0gMmVtKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgbWFyZ2luOiAxZW0gMmVtIDFlbSAyZW07XG4vLy8gICB9XG5cbkBmdW5jdGlvbiB1bnBhY2soJHNob3J0aGFuZCkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYHVucGFja2AgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSBcIiArXG4gICAgXCJyZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgQGlmIGxlbmd0aCgkc2hvcnRoYW5kKSA9PSAxIHtcbiAgICBAcmV0dXJuIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAxKTtcbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHNob3J0aGFuZCkgPT0gMiB7XG4gICAgQHJldHVybiBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDIpIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMik7XG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRzaG9ydGhhbmQpID09IDMge1xuICAgIEByZXR1cm4gbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAyKSBudGgoJHNob3J0aGFuZCwgMykgbnRoKCRzaG9ydGhhbmQsIDIpO1xuICB9IEBlbHNlIHtcbiAgICBAcmV0dXJuICRzaG9ydGhhbmQ7XG4gIH1cbn1cbiIsIi8vIFNjYWxpbmcgVmFyaWFibGVzXG4kZ29sZGVuOiAgICAgICAgICAgMS42MTg7XG4kbWlub3Itc2Vjb25kOiAgICAgMS4wNjc7XG4kbWFqb3Itc2Vjb25kOiAgICAgMS4xMjU7XG4kbWlub3ItdGhpcmQ6ICAgICAgMS4yO1xuJG1ham9yLXRoaXJkOiAgICAgIDEuMjU7XG4kcGVyZmVjdC1mb3VydGg6ICAgMS4zMzM7XG4kYXVnbWVudGVkLWZvdXJ0aDogMS40MTQ7XG4kcGVyZmVjdC1maWZ0aDogICAgMS41O1xuJG1pbm9yLXNpeHRoOiAgICAgIDEuNjtcbiRtYWpvci1zaXh0aDogICAgICAxLjY2NztcbiRtaW5vci1zZXZlbnRoOiAgICAxLjc3ODtcbiRtYWpvci1zZXZlbnRoOiAgICAxLjg3NTtcbiRvY3RhdmU6ICAgICAgICAgICAyO1xuJG1ham9yLXRlbnRoOiAgICAgIDIuNTtcbiRtYWpvci1lbGV2ZW50aDogICAyLjY2NztcbiRtYWpvci10d2VsZnRoOiAgICAzO1xuJGRvdWJsZS1vY3RhdmU6ICAgIDQ7XG5cbiR1c2VyLW91dHB1dC1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nOiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M7XG4kb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6IGZhbHNlO1xuXG4kbW9kdWxhci1zY2FsZS1yYXRpbzogJHBlcmZlY3QtZm91cnRoICFkZWZhdWx0O1xuJG1vZHVsYXItc2NhbGUtYmFzZTogZW0oJGVtLWJhc2UpICFkZWZhdWx0O1xuXG4kb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6ICR1c2VyLW91dHB1dC1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nO1xuXG5AZnVuY3Rpb24gbW9kdWxhci1zY2FsZSgkaW5jcmVtZW50LCAkdmFsdWU6ICRtb2R1bGFyLXNjYWxlLWJhc2UsICRyYXRpbzogJG1vZHVsYXItc2NhbGUtcmF0aW8pIHtcbiAgJHYxOiBudGgoJHZhbHVlLCAxKTtcbiAgJHYyOiBudGgoJHZhbHVlLCBsZW5ndGgoJHZhbHVlKSk7XG4gICR2YWx1ZTogJHYxO1xuXG4gIC8vIHNjYWxlICR2MiB0byBqdXN0IGFib3ZlICR2MVxuICBAd2hpbGUgJHYyID4gJHYxIHtcbiAgICAkdjI6ICgkdjIgLyAkcmF0aW8pOyAvLyB3aWxsIGJlIG9mZi1ieS0xXG4gIH1cbiAgQHdoaWxlICR2MiA8ICR2MSB7XG4gICAgJHYyOiAoJHYyICogJHJhdGlvKTsgLy8gd2lsbCBmaXggb2ZmLWJ5LTFcbiAgfVxuXG4gIC8vIGNoZWNrIEFGVEVSIHNjYWxpbmcgJHYyIHRvIHByZXZlbnQgZG91YmxlLWNvdW50aW5nIGNvcm5lci1jYXNlXG4gICRkb3VibGUtc3RyYW5kZWQ6ICR2MiA+ICR2MTtcblxuICBAaWYgJGluY3JlbWVudCA+IDAge1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGluY3JlbWVudCB7XG4gICAgICBAaWYgJGRvdWJsZS1zdHJhbmRlZCBhbmQgKCR2MSAqICRyYXRpbykgPiAkdjIge1xuICAgICAgICAkdmFsdWU6ICR2MjtcbiAgICAgICAgJHYyOiAoJHYyICogJHJhdGlvKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAkdjE6ICgkdjEgKiAkcmF0aW8pO1xuICAgICAgICAkdmFsdWU6ICR2MTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaWYgJGluY3JlbWVudCA8IDAge1xuICAgIC8vIGFkanVzdCAkdjIgdG8ganVzdCBiZWxvdyAkdjFcbiAgICBAaWYgJGRvdWJsZS1zdHJhbmRlZCB7XG4gICAgICAkdjI6ICgkdjIgLyAkcmF0aW8pO1xuICAgIH1cblxuICAgIEBmb3IgJGkgZnJvbSAkaW5jcmVtZW50IHRocm91Z2ggLTEge1xuICAgICAgQGlmICRkb3VibGUtc3RyYW5kZWQgYW5kICgkdjEgLyAkcmF0aW8pIDwgJHYyIHtcbiAgICAgICAgJHZhbHVlOiAkdjI7XG4gICAgICAgICR2MjogKCR2MiAvICRyYXRpbyk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJHYxOiAoJHYxIC8gJHJhdGlvKTtcbiAgICAgICAgJHZhbHVlOiAkdjE7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkdmFsdWU7XG59XG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyBIZWxwZXIgZnVuY3Rpb24gZm9yIHN0ci10by1udW0gZm4uXG4vLyBTb3VyY2U6IGh0dHA6Ly9zYXNzbWVpc3Rlci5jb20vZ2lzdC85NjQ3NDA4XG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5AZnVuY3Rpb24gX2NvbnZlcnQtdW5pdHMoJG51bWJlciwgJHVuaXQpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBfY29udmVydC11bml0c2AgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBcIiArXG4gICAgXCJiZSByZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgJHN0cmluZ3M6IFwicHhcIiwgXCJjbVwiLCBcIm1tXCIsIFwiJVwiLCBcImNoXCIsIFwicGljYVwiLCBcImluXCIsIFwiZW1cIiwgXCJyZW1cIiwgXCJwdFwiLCBcInBjXCIsIFwiZXhcIiwgXCJ2d1wiLCBcInZoXCIsIFwidm1pblwiLCBcInZtYXhcIiwgXCJkZWdcIiwgXCJyYWRcIiwgXCJncmFkXCIsIFwidHVyblwiO1xuICAkdW5pdHM6ICAgMXB4LCAxY20sIDFtbSwgMSUsIDFjaCwgMXBpY2EsIDFpbiwgMWVtLCAxcmVtLCAxcHQsIDFwYywgMWV4LCAxdncsIDF2aCwgMXZtaW4sIDF2bWF4LCAxZGVnLCAxcmFkLCAxZ3JhZCwgMXR1cm47XG4gICRpbmRleDogaW5kZXgoJHN0cmluZ3MsICR1bml0KTtcblxuICBAaWYgbm90ICRpbmRleCB7XG4gICAgQHdhcm4gXCJVbmtub3duIHVuaXQgYCN7JHVuaXR9YC5cIjtcbiAgICBAcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgQGlmIHR5cGUtb2YoJG51bWJlcikgIT0gXCJudW1iZXJcIiB7XG4gICAgQHdhcm4gXCJgI3skbnVtYmVyfSBpcyBub3QgYSBudW1iZXJgXCI7XG4gICAgQHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIEByZXR1cm4gJG51bWJlciAqIG50aCgkdW5pdHMsICRpbmRleCk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBEaXJlY3Rpb25hbC1wcm9wZXJ0eSBtaXhpbnMgYXJlIHNob3J0aGFuZHMgZm9yIHdyaXRpbmcgcHJvcGVydGllcyBsaWtlIHRoZSBmb2xsb3dpbmdcbi8vL1xuLy8vIEBpZ25vcmUgWW91IGNhbiBhbHNvIHVzZSBgZmFsc2VgIGluc3RlYWQgb2YgYG51bGxgLlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiBkaXJlY3Rpb25hbCB2YWx1ZXNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBib3JkZXItc3R5bGUoZG90dGVkIG51bGwpO1xuLy8vICAgICBAaW5jbHVkZSBtYXJnaW4obnVsbCAwIDEwcHgpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBib3JkZXItYm90dG9tLXN0eWxlOiBkb3R0ZWQ7XG4vLy8gICAgIGJvcmRlci10b3Atc3R5bGU6IGRvdHRlZDtcbi8vLyAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbi8vLyAgICAgbWFyZ2luLWxlZnQ6IDA7XG4vLy8gICAgIG1hcmdpbi1yaWdodDogMDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gY29udGFpbnMtZmFsc3lcbi8vL1xuLy8vIEByZXR1cm4ge0xpc3R9XG5cbkBmdW5jdGlvbiBjb2xsYXBzZS1kaXJlY3Rpb25hbHMoJHZhbHMpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBjb2xsYXBzZS1kaXJlY3Rpb25hbHNgIGlzIGRlcHJlY2F0ZWQgYW5kIFwiICtcbiAgICBcIndpbGwgYmUgcmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gICRvdXRwdXQ6IG51bGw7XG5cbiAgJGE6IG50aCgkdmFscywgMSk7XG4gICRiOiBpZihsZW5ndGgoJHZhbHMpIDwgMiwgJGEsIG50aCgkdmFscywgMikpO1xuICAkYzogaWYobGVuZ3RoKCR2YWxzKSA8IDMsICRhLCBudGgoJHZhbHMsIDMpKTtcbiAgJGQ6IGlmKGxlbmd0aCgkdmFscykgPCAyLCAkYSwgbnRoKCR2YWxzLCBpZihsZW5ndGgoJHZhbHMpIDwgNCwgMiwgNCkpKTtcblxuICBAaWYgJGEgPT0gMCB7ICRhOiAwOyB9XG4gIEBpZiAkYiA9PSAwIHsgJGI6IDA7IH1cbiAgQGlmICRjID09IDAgeyAkYzogMDsgfVxuICBAaWYgJGQgPT0gMCB7ICRkOiAwOyB9XG5cbiAgQGlmICRhID09ICRiIGFuZCAkYSA9PSAkYyBhbmQgJGEgPT0gJGQgeyAkb3V0cHV0OiAkYTsgICAgICAgICAgfVxuICBAZWxzZSBpZiAkYSA9PSAkYyBhbmQgJGIgPT0gJGQgICAgICAgICB7ICRvdXRwdXQ6ICRhICRiOyAgICAgICB9XG4gIEBlbHNlIGlmICRiID09ICRkICAgICAgICAgICAgICAgICAgICAgIHsgJG91dHB1dDogJGEgJGIgJGM7ICAgIH1cbiAgQGVsc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkb3V0cHV0OiAkYSAkYiAkYyAkZDsgfVxuXG4gIEByZXR1cm4gJG91dHB1dDtcbn1cblxuLy8vIE91dHB1dCBkaXJlY3Rpb25hbCBwcm9wZXJ0aWVzLCBmb3IgaW5zdGFuY2UgYG1hcmdpbmAuXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkcHJlXG4vLy8gICBQcmVmaXggdG8gdXNlXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzdWZcbi8vLyAgIFN1ZmZpeCB0byB1c2Vcbi8vLyBAcGFyYW0ge0xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIHZhbHVlc1xuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb2xsYXBzZS1kaXJlY3Rpb25hbHNcbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbnRhaW5zLWZhbHN5XG5cbkBtaXhpbiBkaXJlY3Rpb25hbC1wcm9wZXJ0eSgkcHJlLCAkc3VmLCAkdmFscykge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUoXCJkaXJlY3Rpb25hbC1wcm9wZXJ0eVwiKTtcblxuICAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nOiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2UgIWdsb2JhbDtcblxuICAvLyBQcm9wZXJ0eSBOYW1lc1xuICAkdG9wOiAgICAkcHJlICsgXCItdG9wXCIgICAgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuICAkYm90dG9tOiAkcHJlICsgXCItYm90dG9tXCIgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuICAkbGVmdDogICAkcHJlICsgXCItbGVmdFwiICAgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuICAkcmlnaHQ6ICAkcHJlICsgXCItcmlnaHRcIiAgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuICAkYWxsOiAgICAkcHJlICsgICAgICAgICAgICAgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcblxuICAkdmFsczogY29sbGFwc2UtZGlyZWN0aW9uYWxzKCR2YWxzKTtcblxuICBAaWYgY29udGFpbnMtZmFsc3koJHZhbHMpIHtcbiAgICBAaWYgbnRoKCR2YWxzLCAxKSB7ICN7JHRvcH06IG50aCgkdmFscywgMSk7IH1cblxuICAgIEBpZiBsZW5ndGgoJHZhbHMpID09IDEge1xuICAgICAgQGlmIG50aCgkdmFscywgMSkgeyAjeyRyaWdodH06IG50aCgkdmFscywgMSk7IH1cbiAgICB9IEBlbHNlIHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDIpIHsgI3skcmlnaHR9OiBudGgoJHZhbHMsIDIpOyB9XG4gICAgfVxuXG4gICAgQGlmIGxlbmd0aCgkdmFscykgPT0gMiB7XG4gICAgICBAaWYgbnRoKCR2YWxzLCAxKSB7ICN7JGJvdHRvbX06IG50aCgkdmFscywgMSk7IH1cbiAgICAgIEBpZiBudGgoJHZhbHMsIDIpIHsgI3skbGVmdH06ICAgbnRoKCR2YWxzLCAyKTsgfVxuICAgIH0gQGVsc2UgaWYgbGVuZ3RoKCR2YWxzKSA9PSAzIHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDMpIHsgI3skYm90dG9tfTogbnRoKCR2YWxzLCAzKTsgfVxuICAgICAgQGlmIG50aCgkdmFscywgMikgeyAjeyRsZWZ0fTogICBudGgoJHZhbHMsIDIpOyB9XG4gICAgfSBAZWxzZSBpZiBsZW5ndGgoJHZhbHMpID09IDQge1xuICAgICAgQGlmIG50aCgkdmFscywgMykgeyAjeyRib3R0b219OiBudGgoJHZhbHMsIDMpOyB9XG4gICAgICBAaWYgbnRoKCR2YWxzLCA0KSB7ICN7JGxlZnR9OiAgIG50aCgkdmFscywgNCk7IH1cbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgICN7JGFsbH06ICR2YWxzO1xuICB9XG5cbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nICFnbG9iYWw7XG59XG4iLCIvLyBVc2VkIGZvciBjcmVhdGluZyB0aGUgc291cmNlIHN0cmluZyBmb3IgZm9udHMgdXNpbmcgQGZvbnQtZmFjZVxuLy8gUmVmZXJlbmNlOiBodHRwOi8vZ29vLmdsL1J1MWJLUFxuXG5AZnVuY3Rpb24gZm9udC11cmwtcHJlZml4ZXIoJGFzc2V0LXBpcGVsaW5lKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgZm9udC11cmwtcHJlZml4ZXJgIGlzIGRlcHJlY2F0ZWQgYW5kIFwiICtcbiAgICBcIndpbGwgYmUgcmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gIEBpZiAkYXNzZXQtcGlwZWxpbmUgPT0gdHJ1ZSB7XG4gICAgQHJldHVybiBmb250LXVybDtcbiAgfSBAZWxzZSB7XG4gICAgQHJldHVybiB1cmw7XG4gIH1cbn1cblxuQGZ1bmN0aW9uIGZvbnQtc291cmNlLWRlY2xhcmF0aW9uKFxuICAkZm9udC1mYW1pbHksXG4gICRmaWxlLXBhdGgsXG4gICRhc3NldC1waXBlbGluZSxcbiAgJGZpbGUtZm9ybWF0cyxcbiAgJGZvbnQtdXJsKSB7XG5cbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBmb250LXNvdXJjZS1kZWNsYXJhdGlvbmAgaXMgZGVwcmVjYXRlZCBcIiArXG4gICAgXCJhbmQgd2lsbCBiZSByZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgJHNyYzogKCk7XG5cbiAgJGZvcm1hdHMtbWFwOiAoXG4gICAgZW90OiAgIFwiI3skZmlsZS1wYXRofS5lb3Q/I2llZml4XCIgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksXG4gICAgd29mZjI6IFwiI3skZmlsZS1wYXRofS53b2ZmMlwiIGZvcm1hdChcIndvZmYyXCIpLFxuICAgIHdvZmY6ICBcIiN7JGZpbGUtcGF0aH0ud29mZlwiIGZvcm1hdChcIndvZmZcIiksXG4gICAgdHRmOiAgIFwiI3skZmlsZS1wYXRofS50dGZcIiBmb3JtYXQoXCJ0cnVldHlwZVwiKSxcbiAgICBzdmc6ICAgXCIjeyRmaWxlLXBhdGh9LnN2ZyMjeyRmb250LWZhbWlseX1cIiBmb3JtYXQoXCJzdmdcIilcbiAgKTtcblxuICBAZWFjaCAka2V5LCAkdmFsdWVzIGluICRmb3JtYXRzLW1hcCB7XG4gICAgQGlmIGNvbnRhaW5zKCRmaWxlLWZvcm1hdHMsICRrZXkpIHtcbiAgICAgICRmaWxlLXBhdGg6IG50aCgkdmFsdWVzLCAxKTtcbiAgICAgICRmb250LWZvcm1hdDogbnRoKCR2YWx1ZXMsIDIpO1xuXG4gICAgICBAaWYgJGFzc2V0LXBpcGVsaW5lID09IHRydWUge1xuICAgICAgICAkc3JjOiBhcHBlbmQoJHNyYywgZm9udC11cmwoJGZpbGUtcGF0aCkgJGZvbnQtZm9ybWF0LCBjb21tYSk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJHNyYzogYXBwZW5kKCRzcmMsIHVybCgkZmlsZS1wYXRoKSAkZm9udC1mb3JtYXQsIGNvbW1hKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRzcmM7XG59XG4iLCJAZnVuY3Rpb24gX2dyYWRpZW50LXBvc2l0aW9ucy1wYXJzZXIoJGdyYWRpZW50LXR5cGUsICRncmFkaWVudC1wb3NpdGlvbnMpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBfZ3JhZGllbnQtcG9zaXRpb25zLXBhcnNlcmAgaXMgXCIgK1xuICAgIFwiZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZzogJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzO1xuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6IGZhbHNlICFnbG9iYWw7XG5cbiAgQGlmICRncmFkaWVudC1wb3NpdGlvbnNcbiAgYW5kICgkZ3JhZGllbnQtdHlwZSA9PSBsaW5lYXIpXG4gIGFuZCAodHlwZS1vZigkZ3JhZGllbnQtcG9zaXRpb25zKSAhPSBjb2xvcikge1xuICAgICRncmFkaWVudC1wb3NpdGlvbnM6IF9saW5lYXItcG9zaXRpb25zLXBhcnNlcigkZ3JhZGllbnQtcG9zaXRpb25zKTtcbiAgfVxuICBAZWxzZSBpZiAkZ3JhZGllbnQtcG9zaXRpb25zXG4gIGFuZCAoJGdyYWRpZW50LXR5cGUgPT0gcmFkaWFsKVxuICBhbmQgKHR5cGUtb2YoJGdyYWRpZW50LXBvc2l0aW9ucykgIT0gY29sb3IpIHtcbiAgICAkZ3JhZGllbnQtcG9zaXRpb25zOiBfcmFkaWFsLXBvc2l0aW9ucy1wYXJzZXIoJGdyYWRpZW50LXBvc2l0aW9ucyk7XG4gIH1cblxuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6ICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmcgIWdsb2JhbDtcblxuICBAcmV0dXJuICRncmFkaWVudC1wb3NpdGlvbnM7XG59XG4iLCIvLyBQcml2YXRlIGZ1bmN0aW9uIGZvciBsaW5lYXItZ3JhZGllbnQtcGFyc2VyXG5AZnVuY3Rpb24gX2xpbmVhci1hbmdsZS1wYXJzZXIoJGltYWdlLCAkZmlyc3QtdmFsLCAkcHJlZml4LCAkc3VmZml4KSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgX2xpbmVhci1hbmdsZS1wYXJzZXJgIGlzIFwiICtcbiAgICBcImRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gICRvZmZzZXQ6IG51bGw7XG4gICR1bml0LXNob3J0OiAgc3RyLXNsaWNlKCRmaXJzdC12YWwsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkgLSAyLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcbiAgJHVuaXQtbG9uZzogICBzdHItc2xpY2UoJGZpcnN0LXZhbCwgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSAtIDMsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xuXG4gIEBpZiAoJHVuaXQtbG9uZyA9PSBcImdyYWRcIikgb3JcbiAgICAgICgkdW5pdC1sb25nID09IFwidHVyblwiKSB7XG4gICAgJG9mZnNldDogaWYoJHVuaXQtbG9uZyA9PSBcImdyYWRcIiwgLTEwMGdyYWQgKiAzLCAtMC43NXR1cm4pO1xuICB9XG5cbiAgQGVsc2UgaWYgKCR1bml0LXNob3J0ID09IFwiZGVnXCIpIG9yXG4gICAgICAgICAgICgkdW5pdC1zaG9ydCA9PSBcInJhZFwiKSB7XG4gICAgJG9mZnNldDogaWYoJHVuaXQtc2hvcnQgPT0gXCJkZWdcIiwgLTkwICogMywgMS42cmFkKTtcbiAgfVxuXG4gIEBpZiAkb2Zmc2V0IHtcbiAgICAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nOiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M7XG4gICAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZSAhZ2xvYmFsO1xuXG4gICAgJG51bTogX3N0ci10by1udW0oJGZpcnN0LXZhbCk7XG5cbiAgICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6ICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmcgIWdsb2JhbDtcblxuICAgIEByZXR1cm4gKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRwcmVmaXggKyAoJG9mZnNldCAtICRudW0pICsgJHN1ZmZpeCxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cbn1cbiIsIkBmdW5jdGlvbiBfbGluZWFyLWdyYWRpZW50LXBhcnNlcigkaW1hZ2UpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBfbGluZWFyLWdyYWRpZW50LXBhcnNlcmAgaXMgXCIgK1xuICAgIFwiZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZzogJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzO1xuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6IGZhbHNlICFnbG9iYWw7XG5cbiAgJGltYWdlOiB1bnF1b3RlKCRpbWFnZSk7XG4gICRncmFkaWVudHM6ICgpO1xuICAkc3RhcnQ6IHN0ci1pbmRleCgkaW1hZ2UsIFwiKFwiKTtcbiAgJGVuZDogc3RyLWluZGV4KCRpbWFnZSwgXCIsXCIpO1xuICAkZmlyc3QtdmFsOiBzdHItc2xpY2UoJGltYWdlLCAkc3RhcnQgKyAxLCAkZW5kIC0gMSk7XG5cbiAgJHByZWZpeDogc3RyLXNsaWNlKCRpbWFnZSwgMSwgJHN0YXJ0KTtcbiAgJHN1ZmZpeDogc3RyLXNsaWNlKCRpbWFnZSwgJGVuZCwgc3RyLWxlbmd0aCgkaW1hZ2UpKTtcblxuICAkaGFzLW11bHRpcGxlLXZhbHM6IHN0ci1pbmRleCgkZmlyc3QtdmFsLCBcIiBcIik7XG4gICRoYXMtc2luZ2xlLXBvc2l0aW9uOiB1bnF1b3RlKF9wb3NpdGlvbi1mbGlwcGVyKCRmaXJzdC12YWwpICsgXCJcIik7XG4gICRoYXMtYW5nbGU6IGlzLW51bWJlcihzdHItc2xpY2UoJGZpcnN0LXZhbCwgMSwgMSkpO1xuXG4gIEBpZiAkaGFzLW11bHRpcGxlLXZhbHMge1xuICAgICRncmFkaWVudHM6IF9saW5lYXItc2lkZS1jb3JuZXItcGFyc2VyKCRpbWFnZSwgJGZpcnN0LXZhbCwgJHByZWZpeCwgJHN1ZmZpeCwgJGhhcy1tdWx0aXBsZS12YWxzKTtcbiAgfVxuXG4gIEBlbHNlIGlmICRoYXMtc2luZ2xlLXBvc2l0aW9uICE9IFwiXCIge1xuICAgICRwb3M6IHVucXVvdGUoJGhhcy1zaW5nbGUtcG9zaXRpb24gKyBcIlwiKTtcblxuICAgICRncmFkaWVudHM6IChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkaW1hZ2UsXG4gICAgICBzcGVjLWltYWdlOiAkcHJlZml4ICsgXCJ0byBcIiArICRwb3MgKyAkc3VmZml4XG4gICAgKTtcbiAgfVxuXG4gIEBlbHNlIGlmICRoYXMtYW5nbGUge1xuICAgIC8vIFJvdGF0ZSBkZWdyZWUgZm9yIHdlYmtpdFxuICAgICRncmFkaWVudHM6IF9saW5lYXItYW5nbGUtcGFyc2VyKCRpbWFnZSwgJGZpcnN0LXZhbCwgJHByZWZpeCwgJHN1ZmZpeCk7XG4gIH1cblxuICBAZWxzZSB7XG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRpbWFnZSxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cblxuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6ICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmcgIWdsb2JhbDtcblxuICBAcmV0dXJuICRncmFkaWVudHM7XG59XG4iLCJAZnVuY3Rpb24gX2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyKCRwb3MpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBfbGluZWFyLXBvc2l0aW9ucy1wYXJzZXJgIGlzIFwiICtcbiAgICBcImRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZSAhZ2xvYmFsO1xuXG4gICR0eXBlOiB0eXBlLW9mKG50aCgkcG9zLCAxKSk7XG4gICRzcGVjOiBudWxsO1xuICAkZGVncmVlOiBudWxsO1xuICAkc2lkZTogbnVsbDtcbiAgJGNvcm5lcjogbnVsbDtcbiAgJGxlbmd0aDogbGVuZ3RoKCRwb3MpO1xuICAvLyBQYXJzZSBTaWRlIGFuZCBjb3JuZXIgcG9zaXRpb25zXG4gIEBpZiAoJGxlbmd0aCA+IDEpIHtcbiAgICBAaWYgbnRoKCRwb3MsIDEpID09IFwidG9cIiB7IC8vIE5ld2VyIHN5bnRheFxuICAgICAgJHNpZGU6IG50aCgkcG9zLCAyKTtcblxuICAgICAgQGlmICRsZW5ndGggPT0gMiB7IC8vIGVnLiB0byB0b3BcbiAgICAgICAgLy8gU3dhcCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHlcbiAgICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIobnRoKCRwb3MsIDIpKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRsZW5ndGggPT0gMyB7IC8vIGVnLiB0byB0b3AgbGVmdFxuICAgICAgICAkY29ybmVyOiBudGgoJHBvcywgMyk7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIGlmICRsZW5ndGggPT0gMiB7IC8vIE9sZGVyIHN5bnRheCAoXCJ0b3AgbGVmdFwiKVxuICAgICAgJHNpZGU6IF9wb3NpdGlvbi1mbGlwcGVyKG50aCgkcG9zLCAxKSk7XG4gICAgICAkY29ybmVyOiBfcG9zaXRpb24tZmxpcHBlcihudGgoJHBvcywgMikpO1xuICAgIH1cblxuICAgIEBpZiAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJsZWZ0IHRvcFwiKSBvciAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJ0b3AgbGVmdFwiKSB7XG4gICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcigjeyRzaWRlfSkgX3Bvc2l0aW9uLWZsaXBwZXIoI3skY29ybmVyfSk7XG4gICAgfVxuICAgIEBlbHNlIGlmIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcInJpZ2h0IHRvcFwiKSBvciAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJ0b3AgcmlnaHRcIikge1xuICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIoI3skc2lkZX0pIF9wb3NpdGlvbi1mbGlwcGVyKCN7JGNvcm5lcn0pO1xuICAgIH1cbiAgICBAZWxzZSBpZiAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJyaWdodCBib3R0b21cIikgb3IgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwiYm90dG9tIHJpZ2h0XCIpIHtcbiAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKCN7JHNpZGV9KSBfcG9zaXRpb24tZmxpcHBlcigjeyRjb3JuZXJ9KTtcbiAgICB9XG4gICAgQGVsc2UgaWYgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwibGVmdCBib3R0b21cIikgb3IgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwiYm90dG9tIGxlZnRcIikge1xuICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIoI3skc2lkZX0pIF9wb3NpdGlvbi1mbGlwcGVyKCN7JGNvcm5lcn0pO1xuICAgIH1cbiAgICAkc3BlYzogdG8gJHNpZGUgJGNvcm5lcjtcbiAgfVxuICBAZWxzZSBpZiAkbGVuZ3RoID09IDEge1xuICAgIC8vIFN3YXAgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5XG4gICAgQGlmICR0eXBlID09IHN0cmluZyB7XG4gICAgICAkZGVncmVlOiAkcG9zO1xuICAgICAgJHNwZWM6IHRvIF9wb3NpdGlvbi1mbGlwcGVyKCRwb3MpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkZGVncmVlOiAtMjcwIC0gJHBvczsgLy9yb3RhdGUgdGhlIGdyYWRpZW50IG9wcG9zaXRlIGZyb20gc3BlY1xuICAgICAgJHNwZWM6ICRwb3M7XG4gICAgfVxuICB9XG4gICRkZWdyZWU6IHVucXVvdGUoJGRlZ3JlZSArIFwiLFwiKTtcbiAgJHNwZWM6ICAgdW5xdW90ZSgkc3BlYyArIFwiLFwiKTtcblxuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6ICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmcgIWdsb2JhbDtcblxuICBAcmV0dXJuICRkZWdyZWUgJHNwZWM7XG59XG5cbkBmdW5jdGlvbiBfcG9zaXRpb24tZmxpcHBlcigkcG9zKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgX3Bvc2l0aW9uLWZsaXBwZXJgIGlzIFwiICtcbiAgICBcImRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gIEByZXR1cm4gaWYoJHBvcyA9PSBsZWZ0LCByaWdodCwgbnVsbClcbiAgICAgICAgIGlmKCRwb3MgPT0gcmlnaHQsIGxlZnQsIG51bGwpXG4gICAgICAgICBpZigkcG9zID09IHRvcCwgYm90dG9tLCBudWxsKVxuICAgICAgICAgaWYoJHBvcyA9PSBib3R0b20sIHRvcCwgbnVsbCk7XG59XG4iLCIvLyBQcml2YXRlIGZ1bmN0aW9uIGZvciBsaW5lYXItZ3JhZGllbnQtcGFyc2VyXG5AZnVuY3Rpb24gX2xpbmVhci1zaWRlLWNvcm5lci1wYXJzZXIoJGltYWdlLCAkZmlyc3QtdmFsLCAkcHJlZml4LCAkc3VmZml4LCAkaGFzLW11bHRpcGxlLXZhbHMpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBfbGluZWFyLXNpZGUtY29ybmVyLXBhcnNlcmAgaXMgXCIgK1xuICAgIFwiZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZzogJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzO1xuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6IGZhbHNlICFnbG9iYWw7XG5cbiAgJHZhbC0xOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgMSwgJGhhcy1tdWx0aXBsZS12YWxzIC0gMSk7XG4gICR2YWwtMjogc3RyLXNsaWNlKCRmaXJzdC12YWwsICRoYXMtbXVsdGlwbGUtdmFscyArIDEsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xuICAkdmFsLTM6IG51bGw7XG4gICRoYXMtdmFsLTM6IHN0ci1pbmRleCgkdmFsLTIsIFwiIFwiKTtcblxuICBAaWYgJGhhcy12YWwtMyB7XG4gICAgJHZhbC0zOiBzdHItc2xpY2UoJHZhbC0yLCAkaGFzLXZhbC0zICsgMSwgc3RyLWxlbmd0aCgkdmFsLTIpKTtcbiAgICAkdmFsLTI6IHN0ci1zbGljZSgkdmFsLTIsIDEsICRoYXMtdmFsLTMgLSAxKTtcbiAgfVxuXG4gICRwb3M6IF9wb3NpdGlvbi1mbGlwcGVyKCR2YWwtMSkgX3Bvc2l0aW9uLWZsaXBwZXIoJHZhbC0yKSBfcG9zaXRpb24tZmxpcHBlcigkdmFsLTMpO1xuICAkcG9zOiB1bnF1b3RlKCRwb3MgKyBcIlwiKTtcblxuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6ICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmcgIWdsb2JhbDtcblxuICAvLyBVc2Ugb2xkIHNwZWMgZm9yIHdlYmtpdFxuICBAaWYgJHZhbC0xID09IFwidG9cIiB7XG4gICAgQHJldHVybiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJHByZWZpeCArICRwb3MgKyAkc3VmZml4LFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxuXG4gIC8vIEJyaW5nIHRoZSBjb2RlIHVwIHRvIHNwZWNcbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRpbWFnZSxcbiAgICAgIHNwZWMtaW1hZ2U6ICRwcmVmaXggKyBcInRvIFwiICsgJHBvcyArICRzdWZmaXhcbiAgICApO1xuICB9XG59XG4iLCJAZnVuY3Rpb24gX3JhZGlhbC1hcmctcGFyc2VyKCRnMSwgJGcyLCAkcG9zLCAkc2hhcGUtc2l6ZSkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYF9yYWRpYWwtYXJnLXBhcnNlcmAgaXMgXCIgK1xuICAgIFwiZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgQGVhY2ggJHZhbHVlIGluICRnMSwgJGcyIHtcbiAgICAkZmlyc3QtdmFsOiBudGgoJHZhbHVlLCAxKTtcbiAgICAkcG9zLXR5cGU6ICB0eXBlLW9mKCRmaXJzdC12YWwpO1xuICAgICRzcGVjLWF0LWluZGV4OiBudWxsO1xuXG4gICAgLy8gRGV0ZXJtaW5lIGlmIHNwZWMgd2FzIHBhc3NlZCB0byBtaXhpblxuICAgIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gbGlzdCB7XG4gICAgICAkc3BlYy1hdC1pbmRleDogaWYoaW5kZXgoJHZhbHVlLCBhdCksIGluZGV4KCR2YWx1ZSwgYXQpLCBmYWxzZSk7XG4gICAgfVxuICAgIEBpZiAkc3BlYy1hdC1pbmRleCB7XG4gICAgICBAaWYgJHNwZWMtYXQtaW5kZXggPiAxIHtcbiAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAoJHNwZWMtYXQtaW5kZXggLSAxKSB7XG4gICAgICAgICAgJHNoYXBlLXNpemU6ICRzaGFwZS1zaXplIG50aCgkdmFsdWUsICRpKTtcbiAgICAgICAgfVxuICAgICAgICBAZm9yICRpIGZyb20gKCRzcGVjLWF0LWluZGV4ICsgMSkgdGhyb3VnaCBsZW5ndGgoJHZhbHVlKSB7XG4gICAgICAgICAgJHBvczogJHBvcyBudGgoJHZhbHVlLCAkaSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRzcGVjLWF0LWluZGV4ID09IDEge1xuICAgICAgICBAZm9yICRpIGZyb20gKCRzcGVjLWF0LWluZGV4ICsgMSkgdGhyb3VnaCBsZW5ndGgoJHZhbHVlKSB7XG4gICAgICAgICAgJHBvczogJHBvcyBudGgoJHZhbHVlLCAkaSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICRnMTogbnVsbDtcbiAgICB9XG5cbiAgICAvLyBJZiBub3Qgc3BlYyBjYWxjdWxhdGUgY29ycmVjdCB2YWx1ZXNcbiAgICBAZWxzZSB7XG4gICAgICBAaWYgKCRwb3MtdHlwZSAhPSBjb2xvcikgb3IgKCRmaXJzdC12YWwgIT0gXCJ0cmFuc3BhcmVudFwiKSB7XG4gICAgICAgIEBpZiAoJHBvcy10eXBlID09IG51bWJlcilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjZW50ZXJcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJ0b3BcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJyaWdodFwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImJvdHRvbVwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImxlZnRcIikge1xuXG4gICAgICAgICAgJHBvczogJHZhbHVlO1xuXG4gICAgICAgICAgQGlmICRwb3MgPT0gJGcxIHtcbiAgICAgICAgICAgICRnMTogbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWxzZSBpZlxuICAgICAgICAgICAoJGZpcnN0LXZhbCA9PSBcImVsbGlwc2VcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjaXJjbGVcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjbG9zZXN0LXNpZGVcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjbG9zZXN0LWNvcm5lclwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImZhcnRoZXN0LXNpZGVcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJmYXJ0aGVzdC1jb3JuZXJcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjb250YWluXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY292ZXJcIikge1xuXG4gICAgICAgICAgJHNoYXBlLXNpemU6ICR2YWx1ZTtcblxuICAgICAgICAgIEBpZiAkdmFsdWUgPT0gJGcxIHtcbiAgICAgICAgICAgICRnMTogbnVsbDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAZWxzZSBpZiAkdmFsdWUgPT0gJGcyIHtcbiAgICAgICAgICAgICRnMjogbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQHJldHVybiAkZzEsICRnMiwgJHBvcywgJHNoYXBlLXNpemU7XG59XG4iLCJAZnVuY3Rpb24gX3JhZGlhbC1wb3NpdGlvbnMtcGFyc2VyKCRncmFkaWVudC1wb3MpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBfcmFkaWFsLXBvc2l0aW9ucy1wYXJzZXJgIGlzIFwiICtcbiAgICBcImRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZSAhZ2xvYmFsO1xuXG4gICRzaGFwZS1zaXplOiBudGgoJGdyYWRpZW50LXBvcywgMSk7XG4gICRwb3M6ICAgICAgICBudGgoJGdyYWRpZW50LXBvcywgMik7XG4gICRzaGFwZS1zaXplLXNwZWM6IF9zaGFwZS1zaXplLXN0cmlwcGVyKCRzaGFwZS1zaXplKTtcblxuICAkcHJlLXNwZWM6IHVucXVvdGUoaWYoJHBvcywgXCIjeyRwb3N9LCBcIiwgbnVsbCkpXG4gICAgICAgICAgICAgdW5xdW90ZShpZigkc2hhcGUtc2l6ZSwgXCIjeyRzaGFwZS1zaXplfSxcIiwgbnVsbCkpO1xuICAkcG9zLXNwZWM6IGlmKCRwb3MsIFwiYXQgI3skcG9zfVwiLCBudWxsKTtcblxuICAkc3BlYzogXCIjeyRzaGFwZS1zaXplLXNwZWN9ICN7JHBvcy1zcGVjfVwiO1xuXG4gIC8vIEFkZCBjb21tYVxuICBAaWYgKCRzcGVjICE9IFwiICBcIikge1xuICAgICRzcGVjOiBcIiN7JHNwZWN9LFwiO1xuICB9XG5cbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nICFnbG9iYWw7XG5cbiAgQHJldHVybiAkcHJlLXNwZWMgJHNwZWM7XG59XG4iLCJAZnVuY3Rpb24gX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIoJGltYWdlKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgX3JhZGlhbC1ncmFkaWVudC1wYXJzZXJgIGlzIFwiICtcbiAgICBcImRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gICRpbWFnZTogdW5xdW90ZSgkaW1hZ2UpO1xuICAkZ3JhZGllbnRzOiAoKTtcbiAgJHN0YXJ0OiBzdHItaW5kZXgoJGltYWdlLCBcIihcIik7XG4gICRlbmQ6IHN0ci1pbmRleCgkaW1hZ2UsIFwiLFwiKTtcbiAgJGZpcnN0LXZhbDogc3RyLXNsaWNlKCRpbWFnZSwgJHN0YXJ0ICsgMSwgJGVuZCAtIDEpO1xuXG4gICRwcmVmaXg6IHN0ci1zbGljZSgkaW1hZ2UsIDEsICRzdGFydCk7XG4gICRzdWZmaXg6IHN0ci1zbGljZSgkaW1hZ2UsICRlbmQsIHN0ci1sZW5ndGgoJGltYWdlKSk7XG5cbiAgJGlzLXNwZWMtc3ludGF4OiBzdHItaW5kZXgoJGZpcnN0LXZhbCwgXCJhdFwiKTtcblxuICBAaWYgJGlzLXNwZWMtc3ludGF4IGFuZCAkaXMtc3BlYy1zeW50YXggPiAxIHtcbiAgICAka2V5d29yZDogc3RyLXNsaWNlKCRmaXJzdC12YWwsIDEsICRpcy1zcGVjLXN5bnRheCAtIDIpO1xuICAgICRwb3M6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAkaXMtc3BlYy1zeW50YXggKyAzLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcbiAgICAkcG9zOiBhcHBlbmQoJHBvcywgJGtleXdvcmQsIGNvbW1hKTtcblxuICAgICRncmFkaWVudHM6IChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkcHJlZml4ICsgJHBvcyArICRzdWZmaXgsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG5cbiAgQGVsc2UgaWYgJGlzLXNwZWMtc3ludGF4ID09IDEge1xuICAgICRwb3M6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAkaXMtc3BlYy1zeW50YXggKyAzLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcblxuICAgICRncmFkaWVudHM6IChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkcHJlZml4ICsgJHBvcyArICRzdWZmaXgsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG5cbiAgQGVsc2UgaWYgc3RyLWluZGV4KCRpbWFnZSwgXCJjb3ZlclwiKSBvciBzdHItaW5kZXgoJGltYWdlLCBcImNvbnRhaW5cIikge1xuICAgIEB3YXJuIFwiUmFkaWFsLWdyYWRpZW50IG5lZWRzIHRvIGJlIHVwZGF0ZWQgdG8gY29uZm9ybSB0byBsYXRlc3Qgc3BlYy5cIjtcblxuICAgICRncmFkaWVudHM6IChcbiAgICAgIHdlYmtpdC1pbWFnZTogbnVsbCxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cblxuICBAZWxzZSB7XG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRpbWFnZSxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cblxuICBAcmV0dXJuICRncmFkaWVudHM7XG59XG4iLCIvLyBVc2VyIGZvciBsaW5lYXIgYW5kIHJhZGlhbCBncmFkaWVudHMgd2l0aGluIGJhY2tncm91bmQtaW1hZ2Ugb3IgYm9yZGVyLWltYWdlIHByb3BlcnRpZXNcblxuQGZ1bmN0aW9uIF9yZW5kZXItZ3JhZGllbnRzKCRncmFkaWVudC1wb3NpdGlvbnMsICRncmFkaWVudHMsICRncmFkaWVudC10eXBlLCAkdmVuZG9yOiBmYWxzZSkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYF9yZW5kZXItZ3JhZGllbnRzYCBpcyBcIiArXG4gICAgXCJkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICAkcHJlLXNwZWM6IG51bGw7XG4gICRzcGVjOiBudWxsO1xuICAkdmVuZG9yLWdyYWRpZW50czogbnVsbDtcbiAgQGlmICRncmFkaWVudC10eXBlID09IGxpbmVhciB7XG4gICAgQGlmICRncmFkaWVudC1wb3NpdGlvbnMge1xuICAgICAgJHByZS1zcGVjOiBudGgoJGdyYWRpZW50LXBvc2l0aW9ucywgMSk7XG4gICAgICAkc3BlYzogICAgIG50aCgkZ3JhZGllbnQtcG9zaXRpb25zLCAyKTtcbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gcmFkaWFsIHtcbiAgICAkcHJlLXNwZWM6IG50aCgkZ3JhZGllbnQtcG9zaXRpb25zLCAxKTtcbiAgICAkc3BlYzogICAgIG50aCgkZ3JhZGllbnQtcG9zaXRpb25zLCAyKTtcbiAgfVxuXG4gIEBpZiAkdmVuZG9yIHtcbiAgICAkdmVuZG9yLWdyYWRpZW50czogLSN7JHZlbmRvcn0tI3skZ3JhZGllbnQtdHlwZX0tZ3JhZGllbnQoI3skcHJlLXNwZWN9ICRncmFkaWVudHMpO1xuICB9XG4gIEBlbHNlIGlmICR2ZW5kb3IgPT0gZmFsc2Uge1xuICAgICR2ZW5kb3ItZ3JhZGllbnRzOiBcIiN7JGdyYWRpZW50LXR5cGV9LWdyYWRpZW50KCN7JHNwZWN9ICN7JGdyYWRpZW50c30pXCI7XG4gICAgJHZlbmRvci1ncmFkaWVudHM6IHVucXVvdGUoJHZlbmRvci1ncmFkaWVudHMpO1xuICB9XG4gIEByZXR1cm4gJHZlbmRvci1ncmFkaWVudHM7XG59XG4iLCJAZnVuY3Rpb24gX3NoYXBlLXNpemUtc3RyaXBwZXIoJHNoYXBlLXNpemUpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBfc2hhcGUtc2l6ZS1zdHJpcHBlcmAgaXMgXCIgK1xuICAgIFwiZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgJHNoYXBlLXNpemUtc3BlYzogbnVsbDtcbiAgQGVhY2ggJHZhbHVlIGluICRzaGFwZS1zaXplIHtcbiAgICBAaWYgKCR2YWx1ZSA9PSBcImNvdmVyXCIpIG9yICgkdmFsdWUgPT0gXCJjb250YWluXCIpIHtcbiAgICAgICR2YWx1ZTogbnVsbDtcbiAgICB9XG4gICAgJHNoYXBlLXNpemUtc3BlYzogXCIjeyRzaGFwZS1zaXplLXNwZWN9ICN7JHZhbHVlfVwiO1xuICB9XG4gIEByZXR1cm4gJHNoYXBlLXNpemUtc3BlYztcbn1cbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIEhlbHBlciBmdW5jdGlvbiBmb3IgbGluZWFyL3JhZGlhbC1ncmFkaWVudC1wYXJzZXJzLlxuLy8gU291cmNlOiBodHRwOi8vc2Fzc21laXN0ZXIuY29tL2dpc3QvOTY0NzQwOFxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuQGZ1bmN0aW9uIF9zdHItdG8tbnVtKCRzdHJpbmcpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBfc3RyLXRvLW51bWAgaXMgXCIgK1xuICAgIFwiZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgLy8gTWF0cmljZXNcbiAgJHN0cmluZ3M6IFwiMFwiIFwiMVwiIFwiMlwiIFwiM1wiIFwiNFwiIFwiNVwiIFwiNlwiIFwiN1wiIFwiOFwiIFwiOVwiO1xuICAkbnVtYmVyczogIDAgICAxICAgMiAgIDMgICA0ICAgNSAgIDYgICA3ICAgOCAgIDk7XG5cbiAgLy8gUmVzdWx0XG4gICRyZXN1bHQ6IDA7XG4gICRkaXZpZGVyOiAwO1xuICAkbWludXM6IGZhbHNlO1xuXG4gIC8vIExvb3BpbmcgdGhyb3VnaCBhbGwgY2hhcmFjdGVyc1xuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIHN0ci1sZW5ndGgoJHN0cmluZykge1xuICAgICRjaGFyYWN0ZXI6IHN0ci1zbGljZSgkc3RyaW5nLCAkaSwgJGkpO1xuICAgICRpbmRleDogaW5kZXgoJHN0cmluZ3MsICRjaGFyYWN0ZXIpO1xuXG4gICAgQGlmICRjaGFyYWN0ZXIgPT0gXCItXCIge1xuICAgICAgJG1pbnVzOiB0cnVlO1xuICAgIH1cblxuICAgIEBlbHNlIGlmICRjaGFyYWN0ZXIgPT0gXCIuXCIge1xuICAgICAgJGRpdmlkZXI6IDE7XG4gICAgfVxuXG4gICAgQGVsc2Uge1xuICAgICAgQGlmIG5vdCAkaW5kZXgge1xuICAgICAgICAkcmVzdWx0OiBpZigkbWludXMsICRyZXN1bHQgKiAtMSwgJHJlc3VsdCk7XG4gICAgICAgIEByZXR1cm4gX2NvbnZlcnQtdW5pdHMoJHJlc3VsdCwgc3RyLXNsaWNlKCRzdHJpbmcsICRpKSk7XG4gICAgICB9XG5cbiAgICAgICRudW1iZXI6IG50aCgkbnVtYmVycywgJGluZGV4KTtcblxuICAgICAgQGlmICRkaXZpZGVyID09IDAge1xuICAgICAgICAkcmVzdWx0OiAkcmVzdWx0ICogMTA7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgLy8gTW92ZSB0aGUgZGVjaW1hbCBkb3QgdG8gdGhlIGxlZnRcbiAgICAgICAgJGRpdmlkZXI6ICRkaXZpZGVyICogMTA7XG4gICAgICAgICRudW1iZXI6ICRudW1iZXIgLyAkZGl2aWRlcjtcbiAgICAgIH1cblxuICAgICAgJHJlc3VsdDogJHJlc3VsdCArICRudW1iZXI7XG4gICAgfVxuICB9XG4gIEByZXR1cm4gaWYoJG1pbnVzLCAkcmVzdWx0ICogLTEsICRyZXN1bHQpO1xufVxuIiwiLy8gaHR0cDovL3d3dy53My5vcmcvVFIvY3NzMy1hbmltYXRpb25zLyN0aGUtYW5pbWF0aW9uLW5hbWUtcHJvcGVydHktXG4vLyBFYWNoIG9mIHRoZXNlIG1peGlucyBzdXBwb3J0IGNvbW1hIHNlcGFyYXRlZCBsaXN0cyBvZiB2YWx1ZXMsIHdoaWNoIGFsbG93cyBkaWZmZXJlbnQgdHJhbnNpdGlvbnMgZm9yIGluZGl2aWR1YWwgcHJvcGVydGllcyB0byBiZSBkZXNjcmliZWQgaW4gYSBzaW5nbGUgc3R5bGUgcnVsZS4gRWFjaCB2YWx1ZSBpbiB0aGUgbGlzdCBjb3JyZXNwb25kcyB0byB0aGUgdmFsdWUgYXQgdGhhdCBzYW1lIHBvc2l0aW9uIGluIHRoZSBvdGhlciBwcm9wZXJ0aWVzLlxuXG5AbWl4aW4gYW5pbWF0aW9uKCRhbmltYXRpb25zLi4uKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYW5pbWF0aW9uXCIpO1xuXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbiwgJGFuaW1hdGlvbnMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tbmFtZSgkbmFtZXMuLi4pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJhbmltYXRpb24tbmFtZVwiKTtcblxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tbmFtZSwgJG5hbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLWR1cmF0aW9uKCR0aW1lcy4uLikge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImFuaW1hdGlvbi1kdXJhdGlvblwiKTtcblxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZHVyYXRpb24sICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24oJG1vdGlvbnMuLi4pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uXCIpO1xuXG4gIC8vIGVhc2UgfCBsaW5lYXIgfCBlYXNlLWluIHwgZWFzZS1vdXQgfCBlYXNlLWluLW91dFxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uLCAkbW90aW9ucywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQoJHZhbHVlcy4uLikge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImFuaW1hdGlvbi1pdGVyYXRpb24tY291bnRcIik7XG5cbiAgLy8gaW5maW5pdGUgfCA8bnVtYmVyPlxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCAkdmFsdWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLWRpcmVjdGlvbigkZGlyZWN0aW9ucy4uLikge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImFuaW1hdGlvbi1kaXJlY3Rpb25cIik7XG5cbiAgLy8gbm9ybWFsIHwgYWx0ZXJuYXRlXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1kaXJlY3Rpb24sICRkaXJlY3Rpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLXBsYXktc3RhdGUoJHN0YXRlcy4uLikge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImFuaW1hdGlvbi1wbGF5LXN0YXRlXCIpO1xuXG4gIC8vIHJ1bm5pbmcgfCBwYXVzZWRcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLXBsYXktc3RhdGUsICRzdGF0ZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tZGVsYXkoJHRpbWVzLi4uKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYW5pbWF0aW9uLWRlbGF5XCIpO1xuXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1kZWxheSwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLWZpbGwtbW9kZSgkbW9kZXMuLi4pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJhbmltYXRpb24tZmlsbC1tb2RlXCIpO1xuXG4gIC8vIG5vbmUgfCBmb3J3YXJkcyB8IGJhY2t3YXJkcyB8IGJvdGhcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWZpbGwtbW9kZSwgJG1vZGVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuIiwiQG1peGluIGFwcGVhcmFuY2UoJHZhbHVlKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYXBwZWFyYW5jZVwiKTtcblxuICBAaW5jbHVkZSBwcmVmaXhlcihhcHBlYXJhbmNlLCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcbn1cbiIsIkBtaXhpbiBiYWNrZmFjZS12aXNpYmlsaXR5KCR2aXNpYmlsaXR5KSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYmFja2ZhY2UtdmlzaWJpbGl0eVwiKTtcblxuICBAaW5jbHVkZSBwcmVmaXhlcihiYWNrZmFjZS12aXNpYmlsaXR5LCAkdmlzaWJpbGl0eSwgd2Via2l0IHNwZWMpO1xufVxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gQmFja2dyb3VuZCBwcm9wZXJ0eSBmb3IgYWRkaW5nIG11bHRpcGxlIGJhY2tncm91bmRzIHVzaW5nIHNob3J0aGFuZFxuLy8gbm90YXRpb24uXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5cbkBtaXhpbiBiYWNrZ3JvdW5kKCRiYWNrZ3JvdW5kcy4uLikge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImJhY2tncm91bmRcIik7XG5cbiAgJHdlYmtpdC1iYWNrZ3JvdW5kczogKCk7XG4gICRzcGVjLWJhY2tncm91bmRzOiAoKTtcblxuICBAZWFjaCAkYmFja2dyb3VuZCBpbiAkYmFja2dyb3VuZHMge1xuICAgICR3ZWJraXQtYmFja2dyb3VuZDogKCk7XG4gICAgJHNwZWMtYmFja2dyb3VuZDogKCk7XG4gICAgJGJhY2tncm91bmQtdHlwZTogdHlwZS1vZigkYmFja2dyb3VuZCk7XG5cbiAgICBAaWYgJGJhY2tncm91bmQtdHlwZSA9PSBzdHJpbmcgb3IgJGJhY2tncm91bmQtdHlwZSA9PSBsaXN0IHtcbiAgICAgICRiYWNrZ3JvdW5kLXN0cjogaWYoJGJhY2tncm91bmQtdHlwZSA9PSBsaXN0LCBudGgoJGJhY2tncm91bmQsIDEpLCAkYmFja2dyb3VuZCk7XG5cbiAgICAgICR1cmwtc3RyOiAgICAgICBzdHItc2xpY2UoJGJhY2tncm91bmQtc3RyLCAxLCAzKTtcbiAgICAgICRncmFkaWVudC10eXBlOiBzdHItc2xpY2UoJGJhY2tncm91bmQtc3RyLCAxLCA2KTtcblxuICAgICAgQGlmICR1cmwtc3RyID09IFwidXJsXCIge1xuICAgICAgICAkd2Via2l0LWJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgICRiYWNrZ3JvdW5kO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcImxpbmVhclwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX2xpbmVhci1ncmFkaWVudC1wYXJzZXIoXCIjeyRiYWNrZ3JvdW5kfVwiKTtcbiAgICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJyYWRpYWxcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyKFwiI3skYmFja2dyb3VuZH1cIik7XG4gICAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xuICAgICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICAgICAgJHNwZWMtYmFja2dyb3VuZDogICAkYmFja2dyb3VuZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAZWxzZSB7XG4gICAgICAkd2Via2l0LWJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgICAgJHNwZWMtYmFja2dyb3VuZDogICAkYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICAkd2Via2l0LWJhY2tncm91bmRzOiBhcHBlbmQoJHdlYmtpdC1iYWNrZ3JvdW5kcywgJHdlYmtpdC1iYWNrZ3JvdW5kLCBjb21tYSk7XG4gICAgJHNwZWMtYmFja2dyb3VuZHM6ICAgYXBwZW5kKCRzcGVjLWJhY2tncm91bmRzLCAgICRzcGVjLWJhY2tncm91bmQsICAgY29tbWEpO1xuICB9XG5cbiAgYmFja2dyb3VuZDogJHdlYmtpdC1iYWNrZ3JvdW5kcztcbiAgYmFja2dyb3VuZDogJHNwZWMtYmFja2dyb3VuZHM7XG59XG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyBCYWNrZ3JvdW5kLWltYWdlIHByb3BlcnR5IGZvciBhZGRpbmcgbXVsdGlwbGUgYmFja2dyb3VuZCBpbWFnZXMgd2l0aFxuLy8gZ3JhZGllbnRzLCBvciBmb3Igc3RyaW5naW5nIG11bHRpcGxlIGdyYWRpZW50cyB0b2dldGhlci5cbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cblxuQG1peGluIGJhY2tncm91bmQtaW1hZ2UoJGltYWdlcy4uLikge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImJhY2tncm91bmQtaW1hZ2VcIik7XG5cbiAgJHdlYmtpdC1pbWFnZXM6ICgpO1xuICAkc3BlYy1pbWFnZXM6ICgpO1xuXG4gIEBlYWNoICRpbWFnZSBpbiAkaW1hZ2VzIHtcbiAgICAkd2Via2l0LWltYWdlOiAoKTtcbiAgICAkc3BlYy1pbWFnZTogKCk7XG5cbiAgICBAaWYgKHR5cGUtb2YoJGltYWdlKSA9PSBzdHJpbmcpIHtcbiAgICAgICR1cmwtc3RyOiAgICAgICBzdHItc2xpY2UoJGltYWdlLCAxLCAzKTtcbiAgICAgICRncmFkaWVudC10eXBlOiBzdHItc2xpY2UoJGltYWdlLCAxLCA2KTtcblxuICAgICAgQGlmICR1cmwtc3RyID09IFwidXJsXCIge1xuICAgICAgICAkd2Via2l0LWltYWdlOiAkaW1hZ2U7XG4gICAgICAgICRzcGVjLWltYWdlOiAgICRpbWFnZTtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJsaW5lYXJcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9saW5lYXItZ3JhZGllbnQtcGFyc2VyKCRpbWFnZSk7XG4gICAgICAgICR3ZWJraXQtaW1hZ2U6ICBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWltYWdlOiAgICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcInJhZGlhbFwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIoJGltYWdlKTtcbiAgICAgICAgJHdlYmtpdC1pbWFnZTogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xuICAgICAgICAkc3BlYy1pbWFnZTogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuICAgIH1cblxuICAgICR3ZWJraXQtaW1hZ2VzOiBhcHBlbmQoJHdlYmtpdC1pbWFnZXMsICR3ZWJraXQtaW1hZ2UsIGNvbW1hKTtcbiAgICAkc3BlYy1pbWFnZXM6ICAgYXBwZW5kKCRzcGVjLWltYWdlcywgICAkc3BlYy1pbWFnZSwgICBjb21tYSk7XG4gIH1cblxuICBiYWNrZ3JvdW5kLWltYWdlOiAkd2Via2l0LWltYWdlcztcbiAgYmFja2dyb3VuZC1pbWFnZTogJHNwZWMtaW1hZ2VzO1xufVxuIiwiQG1peGluIGJvcmRlci1pbWFnZSgkYm9yZGVycy4uLikge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImJvcmRlci1pbWFnZVwiKTtcblxuICAkd2Via2l0LWJvcmRlcnM6ICgpO1xuICAkc3BlYy1ib3JkZXJzOiAoKTtcblxuICBAZWFjaCAkYm9yZGVyIGluICRib3JkZXJzIHtcbiAgICAkd2Via2l0LWJvcmRlcjogKCk7XG4gICAgJHNwZWMtYm9yZGVyOiAoKTtcbiAgICAkYm9yZGVyLXR5cGU6IHR5cGUtb2YoJGJvcmRlcik7XG5cbiAgICBAaWYgJGJvcmRlci10eXBlID09IHN0cmluZyBvciBsaXN0IHtcbiAgICAgICRib3JkZXItc3RyOiBpZigkYm9yZGVyLXR5cGUgPT0gbGlzdCwgbnRoKCRib3JkZXIsIDEpLCAkYm9yZGVyKTtcblxuICAgICAgJHVybC1zdHI6ICAgICAgIHN0ci1zbGljZSgkYm9yZGVyLXN0ciwgMSwgMyk7XG4gICAgICAkZ3JhZGllbnQtdHlwZTogc3RyLXNsaWNlKCRib3JkZXItc3RyLCAxLCA2KTtcblxuICAgICAgQGlmICR1cmwtc3RyID09IFwidXJsXCIge1xuICAgICAgICAkd2Via2l0LWJvcmRlcjogJGJvcmRlcjtcbiAgICAgICAgJHNwZWMtYm9yZGVyOiAgICRib3JkZXI7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwibGluZWFyXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfbGluZWFyLWdyYWRpZW50LXBhcnNlcihcIiN7JGJvcmRlcn1cIik7XG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWJvcmRlcjogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcInJhZGlhbFwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIoXCIjeyRib3JkZXJ9XCIpO1xuICAgICAgICAkd2Via2l0LWJvcmRlcjogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xuICAgICAgICAkc3BlYy1ib3JkZXI6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcbiAgICAgIH1cblxuICAgICAgQGVsc2Uge1xuICAgICAgICAkd2Via2l0LWJvcmRlcjogJGJvcmRlcjtcbiAgICAgICAgJHNwZWMtYm9yZGVyOiAgICRib3JkZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGVsc2Uge1xuICAgICAgJHdlYmtpdC1ib3JkZXI6ICRib3JkZXI7XG4gICAgICAkc3BlYy1ib3JkZXI6ICAgJGJvcmRlcjtcbiAgICB9XG5cbiAgICAkd2Via2l0LWJvcmRlcnM6IGFwcGVuZCgkd2Via2l0LWJvcmRlcnMsICR3ZWJraXQtYm9yZGVyLCBjb21tYSk7XG4gICAgJHNwZWMtYm9yZGVyczogICBhcHBlbmQoJHNwZWMtYm9yZGVycywgICAkc3BlYy1ib3JkZXIsICAgY29tbWEpO1xuICB9XG5cbiAgLXdlYmtpdC1ib3JkZXItaW1hZ2U6ICR3ZWJraXQtYm9yZGVycztcbiAgICAgICAgICBib3JkZXItaW1hZ2U6ICRzcGVjLWJvcmRlcnM7XG4gICAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbn1cblxuLy9FeGFtcGxlczpcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZSh1cmwoXCJpbWFnZS5wbmdcIikpO1xuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKHVybChcImltYWdlLnBuZ1wiKSAyMCBzdHJldGNoKTtcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShsaW5lYXItZ3JhZGllbnQoNDVkZWcsIG9yYW5nZSwgeWVsbG93KSk7XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UobGluZWFyLWdyYWRpZW50KDQ1ZGVnLCBvcmFuZ2UsIHllbGxvdykgc3RyZXRjaCk7XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UobGluZWFyLWdyYWRpZW50KDQ1ZGVnLCBvcmFuZ2UsIHllbGxvdykgMjAgMzAgNDAgNTAgc3RyZXRjaCByb3VuZCk7XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UocmFkaWFsLWdyYWRpZW50KHRvcCwgY292ZXIsIG9yYW5nZSwgeWVsbG93LCBvcmFuZ2UpKTtcbiIsIkBtaXhpbiBjYWxjKCRwcm9wZXJ0eSwgJHZhbHVlKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiY2FsY1wiKTtcblxuICAjeyRwcm9wZXJ0eX06IC13ZWJraXQtY2FsYygjeyR2YWx1ZX0pO1xuICAjeyRwcm9wZXJ0eX06IGNhbGMoI3skdmFsdWV9KTtcbn1cbiIsIkBtaXhpbiBjb2x1bW5zKCRhcmc6IGF1dG8pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJjb2x1bW5zXCIpO1xuXG4gIC8vIDxjb2x1bW4tY291bnQ+IHx8IDxjb2x1bW4td2lkdGg+XG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbnMsICRhcmcsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tY291bnQoJGludDogYXV0bykge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImNvbHVtbi1jb3VudFwiKTtcblxuICAvLyBhdXRvIHx8IGludGVnZXJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLWNvdW50LCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLWdhcCgkbGVuZ3RoOiBub3JtYWwpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJjb2x1bW4tZ2FwXCIpO1xuXG4gIC8vIG5vcm1hbCB8fCBsZW5ndGhcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLWdhcCwgJGxlbmd0aCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1maWxsKCRhcmc6IGF1dG8pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJjb2x1bW4tZmlsbFwiKTtcblxuICAvLyBhdXRvIHx8IGxlbmd0aFxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tZmlsbCwgJGFyZywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1ydWxlKCRhcmcpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJjb2x1bW4tcnVsZVwiKTtcblxuICAvLyA8Ym9yZGVyLXdpZHRoPiB8fCA8Ym9yZGVyLXN0eWxlPiB8fCA8Y29sb3I+XG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1ydWxlLCAkYXJnLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXJ1bGUtY29sb3IoJGNvbG9yKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiY29sdW1uLXJ1bGUtY29sb3JcIik7XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXJ1bGUtY29sb3IsICRjb2xvciwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1ydWxlLXN0eWxlKCRzdHlsZTogbm9uZSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImNvbHVtbi1ydWxlLXN0eWxlXCIpO1xuXG4gIC8vIG5vbmUgfCBoaWRkZW4gfCBkYXNoZWQgfCBkb3R0ZWQgfCBkb3VibGUgfCBncm9vdmUgfCBpbnNldCB8IGluc2V0IHwgb3V0c2V0IHwgcmlkZ2UgfCBzb2xpZFxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZS1zdHlsZSwgJHN0eWxlLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXJ1bGUtd2lkdGgoJHdpZHRoOiBub25lKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiY29sdW1uLXJ1bGUtd2lkdGhcIik7XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXJ1bGUtd2lkdGgsICR3aWR0aCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1zcGFuKCRhcmc6IG5vbmUpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJjb2x1bW4tc3BhblwiKTtcblxuICAvLyBub25lIHx8IGFsbFxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tc3BhbiwgJGFyZywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi13aWR0aCgkbGVuZ3RoOiBhdXRvKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiY29sdW1uLXdpZHRoXCIpO1xuXG4gIC8vIGF1dG8gfHwgbGVuZ3RoXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi13aWR0aCwgJGxlbmd0aCwgd2Via2l0IG1veiBzcGVjKTtcbn1cbiIsIkBtaXhpbiBmaWx0ZXIoJGZ1bmN0aW9uOiBub25lKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiZmlsdGVyXCIpO1xuXG4gIC8vIDxmaWx0ZXItZnVuY3Rpb24+IFs8ZmlsdGVyLWZ1bmN0aW9uXSogfCBub25lXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZpbHRlciwgJGZ1bmN0aW9uLCB3ZWJraXQgc3BlYyk7XG59XG4iLCIvLyBDU1MzIEZsZXhpYmxlIEJveCBNb2RlbCBhbmQgcHJvcGVydHkgZGVmYXVsdHNcblxuLy8gQ3VzdG9tIHNob3J0aGFuZCBub3RhdGlvbiBmb3IgZmxleGJveFxuQG1peGluIGJveCgkb3JpZW50OiBpbmxpbmUtYXhpcywgJHBhY2s6IHN0YXJ0LCAkYWxpZ246IHN0cmV0Y2gpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJib3hcIik7XG5cbiAgQGluY2x1ZGUgZGlzcGxheS1ib3g7XG4gIEBpbmNsdWRlIGJveC1vcmllbnQoJG9yaWVudCk7XG4gIEBpbmNsdWRlIGJveC1wYWNrKCRwYWNrKTtcbiAgQGluY2x1ZGUgYm94LWFsaWduKCRhbGlnbik7XG59XG5cbkBtaXhpbiBkaXNwbGF5LWJveCB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiZGlzcGxheS1ib3hcIik7XG5cbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIGRpc3BsYXk6IC1tb3otYm94O1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDsgLy8gSUUgMTBcbiAgZGlzcGxheTogYm94O1xufVxuXG5AbWl4aW4gYm94LW9yaWVudCgkb3JpZW50OiBpbmxpbmUtYXhpcykge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImJveC1vcmllbnRcIik7XG5cbi8vIGhvcml6b250YWx8dmVydGljYWx8aW5saW5lLWF4aXN8YmxvY2stYXhpc3xpbmhlcml0XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmllbnQsICRvcmllbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBib3gtcGFjaygkcGFjazogc3RhcnQpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJib3gtcGFja1wiKTtcblxuLy8gc3RhcnR8ZW5kfGNlbnRlcnxqdXN0aWZ5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1wYWNrLCAkcGFjaywgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtcGFjazogJHBhY2s7IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtYWxpZ24oJGFsaWduOiBzdHJldGNoKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYm94LWFsaWduXCIpO1xuXG4vLyBzdGFydHxlbmR8Y2VudGVyfGJhc2VsaW5lfHN0cmV0Y2hcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWFsaWduLCAkYWxpZ24sIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LWFsaWduOiAkYWxpZ247IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtZGlyZWN0aW9uKCRkaXJlY3Rpb246IG5vcm1hbCkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImJveC1kaXJlY3Rpb25cIik7XG5cbi8vIG5vcm1hbHxyZXZlcnNlfGluaGVyaXRcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWRpcmVjdGlvbiwgJGRpcmVjdGlvbiwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiAkZGlyZWN0aW9uOyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWxpbmVzKCRsaW5lczogc2luZ2xlKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYm94LWxpbmVzXCIpO1xuXG4vLyBzaW5nbGV8bXVsdGlwbGVcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWxpbmVzLCAkbGluZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBib3gtb3JkaW5hbC1ncm91cCgkaW50OiAxKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYm94LW9yZGluYWwtZ3JvdXBcIik7XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yZGluYWwtZ3JvdXAsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LW9yZGVyOiAkaW50OyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWZsZXgoJHZhbHVlOiAwKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYm94LWZsZXhcIik7XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWZsZXgsICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXg6ICR2YWx1ZTsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1mbGV4LWdyb3VwKCRpbnQ6IDEpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJib3gtZmxleC1ncm91cFwiKTtcblxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZmxleC1ncm91cCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuLy8gQ1NTMyBGbGV4aWJsZSBCb3ggTW9kZWwgYW5kIHByb3BlcnR5IGRlZmF1bHRzXG4vLyBVbmlmaWVkIGF0dHJpYnV0ZXMgZm9yIDIwMDksIDIwMTEsIGFuZCAyMDEyIGZsYXZvdXJzLlxuXG4vLyAyMDA5IC0gZGlzcGxheSAoYm94IHwgaW5saW5lLWJveClcbi8vIDIwMTEgLSBkaXNwbGF5IChmbGV4Ym94IHwgaW5saW5lLWZsZXhib3gpXG4vLyAyMDEyIC0gZGlzcGxheSAoZmxleCB8IGlubGluZS1mbGV4KVxuQG1peGluIGRpc3BsYXkoJHZhbHVlKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiZGlzcGxheVwiKTtcblxuLy8gZmxleCB8IGlubGluZS1mbGV4XG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4XCIge1xuICAgIC8vIDIwMDlcbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICBkaXNwbGF5OiAtbW96LWJveDtcbiAgICBkaXNwbGF5OiBib3g7XG5cbiAgICAvLyAyMDEyXG4gICAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICAgIGRpc3BsYXk6IC1tb3otZmxleDtcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDsgLy8gMjAxMSAoSUUgMTApXG4gICAgZGlzcGxheTogZmxleDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJpbmxpbmUtZmxleFwiIHtcbiAgICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1ib3g7XG4gICAgZGlzcGxheTogLW1vei1pbmxpbmUtYm94O1xuICAgIGRpc3BsYXk6IGlubGluZS1ib3g7XG5cbiAgICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1mbGV4O1xuICAgIGRpc3BsYXk6IC1tb3otaW5saW5lLWZsZXg7XG4gICAgZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94O1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICB9IEBlbHNlIHtcbiAgICBkaXNwbGF5OiAkdmFsdWU7XG4gIH1cbn1cblxuLy8gMjAwOSAtIGJveC1mbGV4IChpbnRlZ2VyKVxuLy8gMjAxMSAtIGZsZXggKGRlY2ltYWwgfCB3aWR0aCBkZWNpbWFsKVxuLy8gMjAxMiAtIGZsZXggKGludGVnZXIgaW50ZWdlciB3aWR0aClcbkBtaXhpbiBmbGV4KCR2YWx1ZSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImZsZXhcIik7XG5cbiAgLy8gR3JhYiBmbGV4LWdyb3cgZm9yIG9sZGVyIGJyb3dzZXJzLlxuICAkZmxleC1ncm93OiBudGgoJHZhbHVlLCAxKTtcblxuICAvLyAyMDA5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1mbGV4LCAkZmxleC1ncm93LCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKSwgMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XG59XG5cbi8vIDIwMDkgLSBib3gtb3JpZW50ICggaG9yaXpvbnRhbCB8IHZlcnRpY2FsIHwgaW5saW5lLWF4aXMgfCBibG9jay1heGlzKVxuLy8gICAgICAtIGJveC1kaXJlY3Rpb24gKG5vcm1hbCB8IHJldmVyc2UpXG4vLyAyMDExIC0gZmxleC1kaXJlY3Rpb24gKHJvdyB8IHJvdy1yZXZlcnNlIHwgY29sdW1uIHwgY29sdW1uLXJldmVyc2UpXG4vLyAyMDEyIC0gZmxleC1kaXJlY3Rpb24gKHJvdyB8IHJvdy1yZXZlcnNlIHwgY29sdW1uIHwgY29sdW1uLXJldmVyc2UpXG5AbWl4aW4gZmxleC1kaXJlY3Rpb24oJHZhbHVlOiByb3cpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJmbGV4LWRpcmVjdGlvblwiKTtcblxuICAvLyBBbHQgdmFsdWVzLlxuICAkdmFsdWUtMjAwOTogJHZhbHVlO1xuICAkdmFsdWUtMjAxMTogJHZhbHVlO1xuICAkZGlyZWN0aW9uOiBub3JtYWw7XG5cbiAgQGlmICR2YWx1ZSA9PSByb3cge1xuICAgICR2YWx1ZS0yMDA5OiBob3Jpem9udGFsO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInJvdy1yZXZlcnNlXCIge1xuICAgICR2YWx1ZS0yMDA5OiBob3Jpem9udGFsO1xuICAgICRkaXJlY3Rpb246IHJldmVyc2U7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IGNvbHVtbiB7XG4gICAgJHZhbHVlLTIwMDk6IHZlcnRpY2FsO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImNvbHVtbi1yZXZlcnNlXCIge1xuICAgICR2YWx1ZS0yMDA5OiB2ZXJ0aWNhbDtcbiAgICAkZGlyZWN0aW9uOiByZXZlcnNlO1xuICB9XG5cbiAgLy8gMjAwOVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JpZW50LCAkdmFsdWUtMjAwOSwgd2Via2l0IG1veiBzcGVjKTtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWRpcmVjdGlvbiwgJGRpcmVjdGlvbiwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtZGlyZWN0aW9uLCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xufVxuXG4vLyAyMDA5IC0gYm94LWxpbmVzIChzaW5nbGUgfCBtdWx0aXBsZSlcbi8vIDIwMTEgLSBmbGV4LXdyYXAgKG5vd3JhcCB8IHdyYXAgfCB3cmFwLXJldmVyc2UpXG4vLyAyMDEyIC0gZmxleC13cmFwIChub3dyYXAgfCB3cmFwIHwgd3JhcC1yZXZlcnNlKVxuQG1peGluIGZsZXgtd3JhcCgkdmFsdWU6IG5vd3JhcCkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImZsZXgtd3JhcFwiKTtcblxuICAvLyBBbHQgdmFsdWVzXG4gICRhbHQtdmFsdWU6ICR2YWx1ZTtcbiAgQGlmICR2YWx1ZSA9PSBub3dyYXAge1xuICAgICRhbHQtdmFsdWU6IHNpbmdsZTtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gd3JhcCB7XG4gICAgJGFsdC12YWx1ZTogbXVsdGlwbGU7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwid3JhcC1yZXZlcnNlXCIge1xuICAgICRhbHQtdmFsdWU6IG11bHRpcGxlO1xuICB9XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWxpbmVzLCAkYWx0LXZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LXdyYXAsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBzcGVjKTtcbn1cblxuLy8gMjAwOSAtIFRPRE86IHBhcnNlIHZhbHVlcyBpbnRvIGZsZXgtZGlyZWN0aW9uL2ZsZXgtd3JhcFxuLy8gMjAxMSAtIFRPRE86IHBhcnNlIHZhbHVlcyBpbnRvIGZsZXgtZGlyZWN0aW9uL2ZsZXgtd3JhcFxuLy8gMjAxMiAtIGZsZXgtZmxvdyAoZmxleC1kaXJlY3Rpb24gfHwgZmxleC13cmFwKVxuQG1peGluIGZsZXgtZmxvdygkdmFsdWUpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJmbGV4LWZsb3dcIik7XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1mbG93LCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbi8vIDIwMDkgLSBib3gtb3JkaW5hbC1ncm91cCAoaW50ZWdlcilcbi8vIDIwMTEgLSBmbGV4LW9yZGVyIChpbnRlZ2VyKVxuLy8gMjAxMiAtIG9yZGVyIChpbnRlZ2VyKVxuQG1peGluIG9yZGVyKCRpbnQ6IDApIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJvcmRlclwiKTtcblxuICAvLyAyMDA5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmRpbmFsLWdyb3VwLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIob3JkZXIsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LW9yZGVyOiAkaW50O1xufVxuXG4vLyAyMDEyIC0gZmxleC1ncm93IChudW1iZXIpXG5AbWl4aW4gZmxleC1ncm93KCRudW1iZXI6IDApIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJmbGV4LWdyb3dcIik7XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1ncm93LCAkbnVtYmVyLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1wb3NpdGl2ZTogJG51bWJlcjtcbn1cblxuLy8gMjAxMiAtIGZsZXgtc2hyaW5rIChudW1iZXIpXG5AbWl4aW4gZmxleC1zaHJpbmsoJG51bWJlcjogMSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImZsZXgtc2hyaW5rXCIpO1xuXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtc2hyaW5rLCAkbnVtYmVyLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1uZWdhdGl2ZTogJG51bWJlcjtcbn1cblxuLy8gMjAxMiAtIGZsZXgtYmFzaXMgKG51bWJlcilcbkBtaXhpbiBmbGV4LWJhc2lzKCR3aWR0aDogYXV0bykge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImZsZXgtYmFzaXNcIik7XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1iYXNpcywgJHdpZHRoLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogJHdpZHRoO1xufVxuXG4vLyAyMDA5IC0gYm94LXBhY2sgKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwganVzdGlmeSlcbi8vIDIwMTEgLSBmbGV4LXBhY2sgKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwganVzdGlmeSlcbi8vIDIwMTIgLSBqdXN0aWZ5LWNvbnRlbnQgKGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IHNwYWNlLWJldHdlZW4gfCBzcGFjZS1hcm91bmQpXG5AbWl4aW4ganVzdGlmeS1jb250ZW50KCR2YWx1ZTogZmxleC1zdGFydCkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImp1c3RpZnktY29udGVudFwiKTtcblxuICAvLyBBbHQgdmFsdWVzLlxuICAkYWx0LXZhbHVlOiAkdmFsdWU7XG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xuICAgICRhbHQtdmFsdWU6IHN0YXJ0O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xuICAgICRhbHQtdmFsdWU6IGVuZDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJzcGFjZS1iZXR3ZWVuXCIge1xuICAgICRhbHQtdmFsdWU6IGp1c3RpZnk7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwic3BhY2UtYXJvdW5kXCIge1xuICAgICRhbHQtdmFsdWU6IGRpc3RyaWJ1dGU7XG4gIH1cblxuICAvLyAyMDA5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1wYWNrLCAkYWx0LXZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoanVzdGlmeS1jb250ZW50LCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtcGFjazogJGFsdC12YWx1ZTtcbn1cblxuLy8gMjAwOSAtIGJveC1hbGlnbiAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG4vLyAyMDExIC0gZmxleC1hbGlnbiAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG4vLyAyMDEyIC0gYWxpZ24taXRlbXMgKGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbkBtaXhpbiBhbGlnbi1pdGVtcygkdmFsdWU6IHN0cmV0Y2gpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJhbGlnbi1pdGVtc1wiKTtcblxuICAkYWx0LXZhbHVlOiAkdmFsdWU7XG5cbiAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XG4gICAgJGFsdC12YWx1ZTogc3RhcnQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XG4gICAgJGFsdC12YWx1ZTogZW5kO1xuICB9XG5cbiAgLy8gMjAwOVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtYWxpZ24sICRhbHQtdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihhbGlnbi1pdGVtcywgJHZhbHVlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LWFsaWduOiAkYWx0LXZhbHVlO1xufVxuXG4vLyAyMDExIC0gZmxleC1pdGVtLWFsaWduIChhdXRvIHwgc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG4vLyAyMDEyIC0gYWxpZ24tc2VsZiAoYXV0byB8IGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbkBtaXhpbiBhbGlnbi1zZWxmKCR2YWx1ZTogYXV0bykge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImFsaWduLXNlbGZcIik7XG5cbiAgJHZhbHVlLTIwMTE6ICR2YWx1ZTtcbiAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XG4gICAgJHZhbHVlLTIwMTE6IHN0YXJ0O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xuICAgICR2YWx1ZS0yMDExOiBlbmQ7XG4gIH1cblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFsaWduLXNlbGYsICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtaXRlbS1hbGlnbjogJHZhbHVlLTIwMTE7XG59XG5cbi8vIDIwMTEgLSBmbGV4LWxpbmUtcGFjayAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBqdXN0aWZ5IHwgZGlzdHJpYnV0ZSB8IHN0cmV0Y2gpXG4vLyAyMDEyIC0gYWxpZ24tY29udGVudCAoZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgc3BhY2UtYmV0d2VlbiB8IHNwYWNlLWFyb3VuZCB8IHN0cmV0Y2gpXG5AbWl4aW4gYWxpZ24tY29udGVudCgkdmFsdWU6IHN0cmV0Y2gpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJhbGlnbi1jb250ZW50XCIpO1xuXG4gICR2YWx1ZS0yMDExOiAkdmFsdWU7XG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xuICAgICR2YWx1ZS0yMDExOiBzdGFydDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAkdmFsdWUtMjAxMTogZW5kO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInNwYWNlLWJldHdlZW5cIiB7XG4gICAgJHZhbHVlLTIwMTE6IGp1c3RpZnk7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwic3BhY2UtYXJvdW5kXCIge1xuICAgICR2YWx1ZS0yMDExOiBkaXN0cmlidXRlO1xuICB9XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihhbGlnbi1jb250ZW50LCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LWxpbmUtcGFjazogJHZhbHVlLTIwMTE7XG59XG4iLCJAbWl4aW4gZm9udC1mYWNlKFxuICAkZm9udC1mYW1pbHksXG4gICRmaWxlLXBhdGgsXG4gICR3ZWlnaHQ6IG5vcm1hbCxcbiAgJHN0eWxlOiBub3JtYWwsXG4gICRhc3NldC1waXBlbGluZTogJGFzc2V0LXBpcGVsaW5lLFxuICAkZmlsZS1mb3JtYXRzOiBlb3Qgd29mZjIgd29mZiB0dGYgc3ZnKSB7XG5cbiAgJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZzogJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzO1xuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6IGZhbHNlICFnbG9iYWw7XG5cbiAgJGZvbnQtdXJsLXByZWZpeDogZm9udC11cmwtcHJlZml4ZXIoJGFzc2V0LXBpcGVsaW5lKTtcblxuICBAZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5O1xuICAgIGZvbnQtc3R5bGU6ICRzdHlsZTtcbiAgICBmb250LXdlaWdodDogJHdlaWdodDtcblxuICAgIHNyYzogZm9udC1zb3VyY2UtZGVjbGFyYXRpb24oXG4gICAgICAkZm9udC1mYW1pbHksXG4gICAgICAkZmlsZS1wYXRoLFxuICAgICAgJGFzc2V0LXBpcGVsaW5lLFxuICAgICAgJGZpbGUtZm9ybWF0cyxcbiAgICAgICRmb250LXVybC1wcmVmaXhcbiAgICApO1xuICB9XG5cbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nICFnbG9iYWw7XG59XG4iLCJAbWl4aW4gZm9udC1mZWF0dXJlLXNldHRpbmdzKCRzZXR0aW5ncy4uLikge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImZvbnQtZmVhdHVyZS1zZXR0aW5nc1wiKTtcblxuICBAaWYgbGVuZ3RoKCRzZXR0aW5ncykgPT0gMCB7ICRzZXR0aW5nczogbm9uZTsgfVxuICBAaW5jbHVkZSBwcmVmaXhlcihmb250LWZlYXR1cmUtc2V0dGluZ3MsICRzZXR0aW5ncywgd2Via2l0IG1veiBtcyBzcGVjKTtcbn1cbiIsIi8vIEhpRFBJIG1peGluLiBEZWZhdWx0IHZhbHVlIHNldCB0byAxLjMgdG8gdGFyZ2V0IEdvb2dsZSBOZXh1cyA3IChodHRwOi8vYmphbmdvLmNvbS9hcnRpY2xlcy9taW4tZGV2aWNlLXBpeGVsLXJhdGlvLylcbkBtaXhpbiBoaWRwaSgkcmF0aW86IDEuMykge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImhpZHBpXCIpO1xuXG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogJHJhdGlvKSxcbiAgb25seSBzY3JlZW4gYW5kIChtaW4tLW1vei1kZXZpY2UtcGl4ZWwtcmF0aW86ICRyYXRpbyksXG4gIG9ubHkgc2NyZWVuIGFuZCAoLW8tbWluLWRldmljZS1waXhlbC1yYXRpbzogI3skcmF0aW99LzEpLFxuICBvbmx5IHNjcmVlbiBhbmQgKG1pbi1yZXNvbHV0aW9uOiByb3VuZCgkcmF0aW8gKiA5NmRwaSkpLFxuICBvbmx5IHNjcmVlbiBhbmQgKG1pbi1yZXNvbHV0aW9uOiAkcmF0aW8gKiAxZHBweCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG4iLCJAbWl4aW4gaHlwaGVucygkaHlwaGVuYXRpb246IG5vbmUpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJoeXBoZW5zXCIpO1xuXG4gIC8vIG5vbmUgfCBtYW51YWwgfCBhdXRvXG4gIEBpbmNsdWRlIHByZWZpeGVyKGh5cGhlbnMsICRoeXBoZW5hdGlvbiwgd2Via2l0IG1veiBtcyBzcGVjKTtcbn1cbiIsIkBtaXhpbiBpbWFnZS1yZW5kZXJpbmcgKCRtb2RlOmF1dG8pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJpbWFnZS1yZW5kZXJpbmdcIik7XG5cbiAgQGlmICgkbW9kZSA9PSBjcmlzcC1lZGdlcykge1xuICAgIC1tcy1pbnRlcnBvbGF0aW9uLW1vZGU6IG5lYXJlc3QtbmVpZ2hib3I7IC8vIElFOCtcbiAgICBpbWFnZS1yZW5kZXJpbmc6IC1tb3otY3Jpc3AtZWRnZXM7XG4gICAgaW1hZ2UtcmVuZGVyaW5nOiAtby1jcmlzcC1lZGdlcztcbiAgICBpbWFnZS1yZW5kZXJpbmc6IC13ZWJraXQtb3B0aW1pemUtY29udHJhc3Q7XG4gICAgaW1hZ2UtcmVuZGVyaW5nOiBjcmlzcC1lZGdlcztcbiAgfVxuXG4gIEBlbHNlIHtcbiAgICBpbWFnZS1yZW5kZXJpbmc6ICRtb2RlO1xuICB9XG59XG4iLCIvLyBBZGRzIGtleWZyYW1lcyBibG9ja3MgZm9yIHN1cHBvcnRlZCBwcmVmaXhlcywgcmVtb3ZpbmcgcmVkdW5kYW50IHByZWZpeGVzIGluIHRoZSBibG9jaydzIGNvbnRlbnRcbkBtaXhpbiBrZXlmcmFtZXMoJG5hbWUpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJrZXlmcmFtZXNcIik7XG5cbiAgJG9yaWdpbmFsLXByZWZpeC1mb3Itd2Via2l0OiAgICAkcHJlZml4LWZvci13ZWJraXQ7XG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1vemlsbGE6ICAgJHByZWZpeC1mb3ItbW96aWxsYTtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3ItbWljcm9zb2Z0OiAkcHJlZml4LWZvci1taWNyb3NvZnQ7XG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLW9wZXJhOiAgICAgJHByZWZpeC1mb3Itb3BlcmE7XG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLXNwZWM6ICAgICAgJHByZWZpeC1mb3Itc3BlYztcblxuICBAaWYgJG9yaWdpbmFsLXByZWZpeC1mb3Itd2Via2l0IHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLXByZWZpeC1mb3ItYWxsKCk7XG4gICAgJHByZWZpeC1mb3Itd2Via2l0OiB0cnVlICFnbG9iYWw7XG4gICAgQC13ZWJraXQta2V5ZnJhbWVzICN7JG5hbWV9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkb3JpZ2luYWwtcHJlZml4LWZvci1tb3ppbGxhIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLXByZWZpeC1mb3ItYWxsKCk7XG4gICAgJHByZWZpeC1mb3ItbW96aWxsYTogdHJ1ZSAhZ2xvYmFsO1xuICAgIEAtbW96LWtleWZyYW1lcyAjeyRuYW1lfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cblxuICAkcHJlZml4LWZvci13ZWJraXQ6ICAgICRvcmlnaW5hbC1wcmVmaXgtZm9yLXdlYmtpdCAgICAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1tb3ppbGxhOiAgICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1vemlsbGEgICAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1taWNyb3NvZnQ6ICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1pY3Jvc29mdCAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1vcGVyYTogICAgICRvcmlnaW5hbC1wcmVmaXgtZm9yLW9wZXJhICAgICAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1zcGVjOiAgICAgICRvcmlnaW5hbC1wcmVmaXgtZm9yLXNwZWMgICAgICAhZ2xvYmFsO1xuXG4gIEBpZiAkb3JpZ2luYWwtcHJlZml4LWZvci1zcGVjIHtcbiAgICBAa2V5ZnJhbWVzICN7JG5hbWV9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuIiwiQG1peGluIGxpbmVhci1ncmFkaWVudCgkcG9zLCAkZzEsICRnMjogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGczOiBudWxsLCAkZzQ6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnNTogbnVsbCwgJGc2OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzc6IG51bGwsICRnODogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGc5OiBudWxsLCAkZzEwOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZmFsbGJhY2s6IG51bGwpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJsaW5lYXItZ3JhZGllbnRcIik7XG5cbiAgLy8gRGV0ZWN0IHdoYXQgdHlwZSBvZiB2YWx1ZSBleGlzdHMgaW4gJHBvc1xuICAkcG9zLXR5cGU6IHR5cGUtb2YobnRoKCRwb3MsIDEpKTtcbiAgJHBvcy1zcGVjOiBudWxsO1xuICAkcG9zLWRlZ3JlZTogbnVsbDtcblxuICAvLyBJZiAkcG9zIGlzIG1pc3NpbmcgZnJvbSBtaXhpbiwgcmVhc3NpZ24gdmFycyBhbmQgYWRkIGRlZmF1bHQgcG9zaXRpb25cbiAgQGlmICgkcG9zLXR5cGUgPT0gY29sb3IpIG9yIChudGgoJHBvcywgMSkgPT0gXCJ0cmFuc3BhcmVudFwiKSAge1xuICAgICRnMTA6ICRnOTsgJGc5OiAkZzg7ICRnODogJGc3OyAkZzc6ICRnNjsgJGc2OiAkZzU7XG4gICAgJGc1OiAkZzQ7ICRnNDogJGczOyAkZzM6ICRnMjsgJGcyOiAkZzE7ICRnMTogJHBvcztcbiAgICAkcG9zOiBudWxsO1xuICB9XG5cbiAgQGlmICRwb3Mge1xuICAgICRwb3NpdGlvbnM6IF9saW5lYXItcG9zaXRpb25zLXBhcnNlcigkcG9zKTtcbiAgICAkcG9zLWRlZ3JlZTogbnRoKCRwb3NpdGlvbnMsIDEpO1xuICAgICRwb3Mtc3BlYzogICBudGgoJHBvc2l0aW9ucywgMik7XG4gIH1cblxuICAkZnVsbDogJGcxLCAkZzIsICRnMywgJGc0LCAkZzUsICRnNiwgJGc3LCAkZzgsICRnOSwgJGcxMDtcblxuICAvLyBTZXQgJGcxIGFzIHRoZSBkZWZhdWx0IGZhbGxiYWNrIGNvbG9yXG4gICRmYWxsYmFjay1jb2xvcjogbnRoKCRnMSwgMSk7XG5cbiAgLy8gSWYgJGZhbGxiYWNrIGlzIGEgY29sb3IgdXNlIHRoYXQgY29sb3IgYXMgdGhlIGZhbGxiYWNrIGNvbG9yXG4gIEBpZiAodHlwZS1vZigkZmFsbGJhY2spID09IGNvbG9yKSBvciAoJGZhbGxiYWNrID09IFwidHJhbnNwYXJlbnRcIikge1xuICAgICRmYWxsYmFjay1jb2xvcjogJGZhbGxiYWNrO1xuICB9XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogJGZhbGxiYWNrLWNvbG9yO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCgkcG9zLWRlZ3JlZSAkZnVsbCk7IC8vIFNhZmFyaSA1LjErLCBDaHJvbWVcbiAgYmFja2dyb3VuZC1pbWFnZTogdW5xdW90ZShcImxpbmVhci1ncmFkaWVudCgjeyRwb3Mtc3BlY30jeyRmdWxsfSlcIik7XG59XG4iLCJAbWl4aW4gcGVyc3BlY3RpdmUoJGRlcHRoOiBub25lKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwicGVyc3BlY3RpdmVcIik7XG5cbiAgLy8gbm9uZSB8IDxsZW5ndGg+XG4gIEBpbmNsdWRlIHByZWZpeGVyKHBlcnNwZWN0aXZlLCAkZGVwdGgsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBwZXJzcGVjdGl2ZS1vcmlnaW4oJHZhbHVlOiA1MCUgNTAlKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwicGVyc3BlY3RpdmUtb3JpZ2luXCIpO1xuXG4gIEBpbmNsdWRlIHByZWZpeGVyKHBlcnNwZWN0aXZlLW9yaWdpbiwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuIiwiQG1peGluIHBsYWNlaG9sZGVyIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJwbGFjZWhvbGRlclwiKTtcblxuICAkcGxhY2Vob2xkZXJzOiBcIjotd2Via2l0LWlucHV0XCIgXCI6LW1velwiIFwiLW1velwiIFwiLW1zLWlucHV0XCI7XG4gIEBlYWNoICRwbGFjZWhvbGRlciBpbiAkcGxhY2Vob2xkZXJzIHtcbiAgICAmOiN7JHBsYWNlaG9sZGVyfS1wbGFjZWhvbGRlciB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIFJlcXVpcmVzIFNhc3MgMy4xK1xuQG1peGluIHJhZGlhbC1ncmFkaWVudCgkZzEsICRnMixcbiAgICAgICAgICAgICAgICAgICAgICAgJGczOiBudWxsLCAkZzQ6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnNTogbnVsbCwgJGc2OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzc6IG51bGwsICRnODogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGc5OiBudWxsLCAkZzEwOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkcG9zOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkc2hhcGUtc2l6ZTogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGZhbGxiYWNrOiBudWxsKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwicmFkaWFsLWdyYWRpZW50XCIpO1xuXG4gICRkYXRhOiBfcmFkaWFsLWFyZy1wYXJzZXIoJGcxLCAkZzIsICRwb3MsICRzaGFwZS1zaXplKTtcbiAgJGcxOiAgbnRoKCRkYXRhLCAxKTtcbiAgJGcyOiAgbnRoKCRkYXRhLCAyKTtcbiAgJHBvczogbnRoKCRkYXRhLCAzKTtcbiAgJHNoYXBlLXNpemU6IG50aCgkZGF0YSwgNCk7XG5cbiAgJGZ1bGw6ICRnMSwgJGcyLCAkZzMsICRnNCwgJGc1LCAkZzYsICRnNywgJGc4LCAkZzksICRnMTA7XG5cbiAgLy8gU3RyaXAgZGVwcmVjYXRlZCBjb3Zlci9jb250YWluIGZvciBzcGVjXG4gICRzaGFwZS1zaXplLXNwZWM6IF9zaGFwZS1zaXplLXN0cmlwcGVyKCRzaGFwZS1zaXplKTtcblxuICAvLyBTZXQgJGcxIGFzIHRoZSBkZWZhdWx0IGZhbGxiYWNrIGNvbG9yXG4gICRmaXJzdC1jb2xvcjogbnRoKCRmdWxsLCAxKTtcbiAgJGZhbGxiYWNrLWNvbG9yOiBudGgoJGZpcnN0LWNvbG9yLCAxKTtcblxuICBAaWYgKHR5cGUtb2YoJGZhbGxiYWNrKSA9PSBjb2xvcikgb3IgKCRmYWxsYmFjayA9PSBcInRyYW5zcGFyZW50XCIpIHtcbiAgICAkZmFsbGJhY2stY29sb3I6ICRmYWxsYmFjaztcbiAgfVxuXG4gIC8vIEFkZCBDb21tYXMgYW5kIHNwYWNlc1xuICAkc2hhcGUtc2l6ZTogaWYoJHNoYXBlLXNpemUsIFwiI3skc2hhcGUtc2l6ZX0sIFwiLCBudWxsKTtcbiAgJHBvczogICAgICAgIGlmKCRwb3MsIFwiI3skcG9zfSwgXCIsIG51bGwpO1xuICAkcG9zLXNwZWM6ICAgaWYoJHBvcywgXCJhdCAjeyRwb3N9XCIsIG51bGwpO1xuICAkc2hhcGUtc2l6ZS1zcGVjOiBpZigoJHNoYXBlLXNpemUtc3BlYyAhPSBcIiBcIikgYW5kICgkcG9zID09IG51bGwpLCBcIiN7JHNoYXBlLXNpemUtc3BlY30sIFwiLCBcIiN7JHNoYXBlLXNpemUtc3BlY30gXCIpO1xuXG4gIGJhY2tncm91bmQtY29sb3I6ICAkZmFsbGJhY2stY29sb3I7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtcmFkaWFsLWdyYWRpZW50KCN7JHBvc30jeyRzaGFwZS1zaXplfSN7JGZ1bGx9KTtcbiAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KCN7JHNoYXBlLXNpemUtc3BlY30jeyRwb3Mtc3BlY30jeyRmdWxsfSk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gT3V0cHV0cyB0aGUgc3BlYyBhbmQgcHJlZml4ZWQgdmVyc2lvbnMgb2YgdGhlIGA6OnNlbGVjdGlvbmAgcHNldWRvLWVsZW1lbnQuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtCb29sfSAkY3VycmVudC1zZWxlY3RvciBbZmFsc2VdXHJcbi8vLyAgIElmIHNldCB0byBgdHJ1ZWAsIGl0IHRha2VzIHRoZSBjdXJyZW50IGVsZW1lbnQgaW50byBjb25zaWRlcmF0aW9uLlxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgQGluY2x1ZGUgc2VsZWN0aW9uKHRydWUpIHtcclxuLy8vICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmJiNTI7XHJcbi8vLyAgICAgfVxyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAuZWxlbWVudDo6LW1vei1zZWxlY3Rpb24ge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmJiNTI7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyAgIC5lbGVtZW50OjpzZWxlY3Rpb24ge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmJiNTI7XHJcbi8vLyAgIH1cclxuXHJcbkBtaXhpbiBzZWxlY3Rpb24oJGN1cnJlbnQtc2VsZWN0b3I6IGZhbHNlKSB7XHJcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJzZWxlY3Rpb25cIik7XHJcblxyXG4gIEBpZiAkY3VycmVudC1zZWxlY3RvciB7XHJcbiAgICAmOjotbW96LXNlbGVjdGlvbiB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG5cclxuICAgICY6OnNlbGVjdGlvbiB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH0gQGVsc2Uge1xyXG4gICAgOjotbW96LXNlbGVjdGlvbiB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG5cclxuICAgIDo6c2VsZWN0aW9uIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIkBtaXhpbiB0ZXh0LWRlY29yYXRpb24oJHZhbHVlKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwidGV4dC1kZWNvcmF0aW9uXCIpO1xuXG4vLyA8dGV4dC1kZWNvcmF0aW9uLWxpbmU+IHx8IDx0ZXh0LWRlY29yYXRpb24tc3R5bGU+IHx8IDx0ZXh0LWRlY29yYXRpb24tY29sb3I+XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRleHQtZGVjb3JhdGlvbiwgJHZhbHVlLCBtb3opO1xufVxuXG5AbWl4aW4gdGV4dC1kZWNvcmF0aW9uLWxpbmUoJGxpbmU6IG5vbmUpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJ0ZXh0LWRlY29yYXRpb24tbGluZVwiKTtcblxuLy8gbm9uZSB8fCB1bmRlcmxpbmUgfHwgb3ZlcmxpbmUgfHwgbGluZS10aHJvdWdoXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRleHQtZGVjb3JhdGlvbi1saW5lLCAkbGluZSwgbW96KTtcbn1cblxuQG1peGluIHRleHQtZGVjb3JhdGlvbi1zdHlsZSgkc3R5bGU6IHNvbGlkKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwidGV4dC1kZWNvcmF0aW9uLXN0eWxlXCIpO1xuXG4vLyBzb2xpZCB8fCBkb3VibGUgfHwgZG90dGVkIHx8IGRhc2hlZCB8fCB3YXZ5XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRleHQtZGVjb3JhdGlvbi1zdHlsZSwgJHN0eWxlLCBtb3ogd2Via2l0KTtcbn1cblxuQG1peGluIHRleHQtZGVjb3JhdGlvbi1jb2xvcigkY29sb3I6IGN1cnJlbnRDb2xvcikge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcInRleHQtZGVjb3JhdGlvbi1jb2xvclwiKTtcblxuLy8gY3VycmVudENvbG9yIHx8IDxjb2xvcj5cbiAgQGluY2x1ZGUgcHJlZml4ZXIodGV4dC1kZWNvcmF0aW9uLWNvbG9yLCAkY29sb3IsIG1veik7XG59XG4iLCJAbWl4aW4gdHJhbnNmb3JtKCRwcm9wZXJ0eTogbm9uZSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcInRyYW5zZm9ybVwiKTtcblxuICAvLyBub25lIHwgPHRyYW5zZm9ybS1mdW5jdGlvbj5cbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNmb3JtLCAkcHJvcGVydHksIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcbn1cblxuQG1peGluIHRyYW5zZm9ybS1vcmlnaW4oJGF4ZXM6IDUwJSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcInRyYW5zZm9ybS1vcmlnaW5cIik7XG5cbiAgLy8geC1heGlzIC0gbGVmdCB8IGNlbnRlciB8IHJpZ2h0ICB8IGxlbmd0aCB8ICVcbiAgLy8geS1heGlzIC0gdG9wICB8IGNlbnRlciB8IGJvdHRvbSB8IGxlbmd0aCB8ICVcbiAgLy8gei1heGlzIC0gICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aFxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2Zvcm0tb3JpZ2luLCAkYXhlcywgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xufVxuXG5AbWl4aW4gdHJhbnNmb3JtLXN0eWxlKCRzdHlsZTogZmxhdCkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcInRyYW5zZm9ybS1zdHlsZVwiKTtcblxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2Zvcm0tc3R5bGUsICRzdHlsZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xufVxuIiwiLy8gU2hvcnRoYW5kIG1peGluLiBTdXBwb3J0cyBtdWx0aXBsZSBwYXJlbnRoZXNlcy1kZWxpbWluYXRlZCB2YWx1ZXMgZm9yIGVhY2ggdmFyaWFibGUuXG4vLyBFeGFtcGxlOiBAaW5jbHVkZSB0cmFuc2l0aW9uIChhbGwgMnMgZWFzZS1pbi1vdXQpO1xuLy8gICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbiAob3BhY2l0eSAxcyBlYXNlLWluIDJzLCB3aWR0aCAycyBlYXNlLW91dCk7XG4vLyAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLXByb3BlcnR5ICh0cmFuc2Zvcm0sIG9wYWNpdHkpO1xuXG5AbWl4aW4gdHJhbnNpdGlvbigkcHJvcGVydGllcy4uLikge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcInRyYW5zaXRpb25cIik7XG5cbiAgLy8gRml4IGZvciB2ZW5kb3ItcHJlZml4IHRyYW5zZm9ybSBwcm9wZXJ0eVxuICAkbmVlZHMtcHJlZml4ZXM6IGZhbHNlO1xuICAkd2Via2l0OiAoKTtcbiAgJG1vejogKCk7XG4gICRzcGVjOiAoKTtcblxuICAvLyBDcmVhdGUgbGlzdHMgZm9yIHZlbmRvci1wcmVmaXhlZCB0cmFuc2Zvcm1cbiAgQGVhY2ggJGxpc3QgaW4gJHByb3BlcnRpZXMge1xuICAgIEBpZiBudGgoJGxpc3QsIDEpID09IFwidHJhbnNmb3JtXCIge1xuICAgICAgJG5lZWRzLXByZWZpeGVzOiB0cnVlO1xuICAgICAgJGxpc3QxOiAtd2Via2l0LXRyYW5zZm9ybTtcbiAgICAgICRsaXN0MjogLW1vei10cmFuc2Zvcm07XG4gICAgICAkbGlzdDM6ICgpO1xuXG4gICAgICBAZWFjaCAkdmFyIGluICRsaXN0IHtcbiAgICAgICAgJGxpc3QzOiBqb2luKCRsaXN0MywgJHZhcik7XG5cbiAgICAgICAgQGlmICR2YXIgIT0gXCJ0cmFuc2Zvcm1cIiB7XG4gICAgICAgICAgJGxpc3QxOiBqb2luKCRsaXN0MSwgJHZhcik7XG4gICAgICAgICAgJGxpc3QyOiBqb2luKCRsaXN0MiwgJHZhcik7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJHdlYmtpdDogYXBwZW5kKCR3ZWJraXQsICRsaXN0MSk7XG4gICAgICAkbW96OiAgICBhcHBlbmQoJG1veiwgICAgJGxpc3QyKTtcbiAgICAgICRzcGVjOiAgIGFwcGVuZCgkc3BlYywgICAkbGlzdDMpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJHdlYmtpdDogYXBwZW5kKCR3ZWJraXQsICRsaXN0LCBjb21tYSk7XG4gICAgICAkbW96OiAgICBhcHBlbmQoJG1veiwgICAgJGxpc3QsIGNvbW1hKTtcbiAgICAgICRzcGVjOiAgIGFwcGVuZCgkc3BlYywgICAkbGlzdCwgY29tbWEpO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkbmVlZHMtcHJlZml4ZXMge1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogJHdlYmtpdDtcbiAgICAgICAtbW96LXRyYW5zaXRpb246ICRtb3o7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiAkc3BlYztcbiAgfSBAZWxzZSB7XG4gICAgQGlmIGxlbmd0aCgkcHJvcGVydGllcykgPj0gMSB7XG4gICAgICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLCAkcHJvcGVydGllcywgd2Via2l0IG1veiBzcGVjKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRwcm9wZXJ0aWVzOiBhbGwgMC4xNXMgZWFzZS1vdXQgMHM7XG4gICAgICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLCAkcHJvcGVydGllcywgd2Via2l0IG1veiBzcGVjKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHRyYW5zaXRpb24tcHJvcGVydHkoJHByb3BlcnRpZXMuLi4pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJ0cmFuc2l0aW9uLXByb3BlcnR5XCIpO1xuXG4gIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcGVydGllcywgXCJ3ZWJraXRcIik7XG4gICAgIC1tb3otdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcGVydGllcywgXCJtb3pcIik7XG4gICAgICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcGVydGllcywgZmFsc2UpO1xufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi1kdXJhdGlvbigkdGltZXMuLi4pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJ0cmFuc2l0aW9uLWR1cmF0aW9uXCIpO1xuXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24tZHVyYXRpb24sICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKCRtb3Rpb25zLi4uKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwidHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb25cIik7XG5cbiAgLy8gZWFzZSB8IGxpbmVhciB8IGVhc2UtaW4gfCBlYXNlLW91dCB8IGVhc2UtaW4tb3V0IHwgY3ViaWMtYmV6aWVyKClcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24sICRtb3Rpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi1kZWxheSgkdGltZXMuLi4pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJ0cmFuc2l0aW9uLWRlbGF5XCIpO1xuXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24tZGVsYXksICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cbiIsIkBtaXhpbiB1c2VyLXNlbGVjdCgkdmFsdWU6IG5vbmUpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJ1c2VyLXNlbGVjdFwiKTtcblxuICBAaW5jbHVkZSBwcmVmaXhlcih1c2VyLXNlbGVjdCwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgYm9yZGVyLWNvbG9yYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBib3JkZXItY29sb3IoI2E2MGI1NSAjNzZjZDljIG51bGwgI2U4YWUxYSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAjZThhZTFhO1xuLy8vICAgICBib3JkZXItcmlnaHQtY29sb3I6ICM3NmNkOWM7XG4vLy8gICAgIGJvcmRlci10b3AtY29sb3I6ICNhNjBiNTU7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7bWl4aW59IGRpcmVjdGlvbmFsLXByb3BlcnR5XG4vLy9cbi8vLyBAb3V0cHV0IGBib3JkZXItY29sb3JgXG5cbkBtaXhpbiBib3JkZXItY29sb3IoJHZhbHMuLi4pIHtcbiAgJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZzogJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzO1xuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6IGZhbHNlICFnbG9iYWw7XG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KGJvcmRlciwgY29sb3IsICR2YWxzLi4uKTtcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nICFnbG9iYWw7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBib3JkZXItcmFkaXVzYCBvbiBib3RoIGNvcm5lcnMgb24gdGhlIHNpZGUgb2YgYSBib3guXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHJhZGlpXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudC1vbmUge1xuLy8vICAgICBAaW5jbHVkZSBib3JkZXItdG9wLXJhZGl1cyg1cHgpO1xuLy8vICAgfVxuLy8vXG4vLy8gICAuZWxlbWVudC10d28ge1xuLy8vICAgICBAaW5jbHVkZSBib3JkZXItbGVmdC1yYWRpdXMoM3B4KTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50LW9uZSB7XG4vLy8gICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDVweDtcbi8vLyAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDVweDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLmVsZW1lbnQtdHdvIHtcbi8vLyAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogM3B4O1xuLy8vICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAzcHg7XG4vLy8gICB9XG4vLy9cbi8vLyBAb3V0cHV0IGBib3JkZXItcmFkaXVzYFxuXG5AbWl4aW4gYm9yZGVyLXRvcC1yYWRpdXMoJHJhZGlpKSB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRyYWRpaTtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRyYWRpaTtcbn1cblxuQG1peGluIGJvcmRlci1yaWdodC1yYWRpdXMoJHJhZGlpKSB7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkcmFkaWk7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkcmFkaWk7XG59XG5cbkBtaXhpbiBib3JkZXItYm90dG9tLXJhZGl1cygkcmFkaWkpIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJHJhZGlpO1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJHJhZGlpO1xufVxuXG5AbWl4aW4gYm9yZGVyLWxlZnQtcmFkaXVzKCRyYWRpaSkge1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkcmFkaWk7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRyYWRpaTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYGJvcmRlci1zdHlsZWAgb24gc3BlY2lmaWMgc2lkZXMgb2YgYSBib3guIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLXN0eWxlKGRhc2hlZCBudWxsIHNvbGlkKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG4vLy8gICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcbi8vL1xuLy8vIEBvdXRwdXQgYGJvcmRlci1zdHlsZWBcblxuQG1peGluIGJvcmRlci1zdHlsZSgkdmFscy4uLikge1xuICAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nOiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2UgIWdsb2JhbDtcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkoYm9yZGVyLCBzdHlsZSwgJHZhbHMuLi4pO1xuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6ICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmcgIWdsb2JhbDtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYGJvcmRlci13aWR0aGAgb24gc3BlY2lmaWMgc2lkZXMgb2YgYSBib3guIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLXdpZHRoKDFlbSBudWxsIDIwcHgpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAyMHB4O1xuLy8vICAgICBib3JkZXItdG9wLXdpZHRoOiAxZW07XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7bWl4aW59IGRpcmVjdGlvbmFsLXByb3BlcnR5XG4vLy9cbi8vLyBAb3V0cHV0IGBib3JkZXItd2lkdGhgXG5cbkBtaXhpbiBib3JkZXItd2lkdGgoJHZhbHMuLi4pIHtcbiAgJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZzogJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzO1xuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6IGZhbHNlICFnbG9iYWw7XG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KGJvcmRlciwgd2lkdGgsICR2YWxzLi4uKTtcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nICFnbG9iYWw7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBHZW5lcmF0ZXMgdmFyaWFibGVzIGZvciBhbGwgYnV0dG9ucy4gUGxlYXNlIG5vdGUgdGhhdCB5b3UgbXVzdCB1c2UgaW50ZXJwb2xhdGlvbiBvbiB0aGUgdmFyaWFibGU6IGAjeyRhbGwtYnV0dG9uc31gLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAjeyRhbGwtYnV0dG9uc30ge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjAwO1xuLy8vICAgfVxuLy8vXG4vLy8gICAjeyRhbGwtYnV0dG9ucy1mb2N1c30sXG4vLy8gICAjeyRhbGwtYnV0dG9ucy1ob3Zlcn0ge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGYwO1xuLy8vICAgfVxuLy8vXG4vLy8gICAjeyRhbGwtYnV0dG9ucy1hY3RpdmV9IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwZjtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIGJ1dHRvbixcbi8vLyAgIGlucHV0W3R5cGU9XCJidXR0b25cIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwicmVzZXRcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YwMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgYnV0dG9uOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cImJ1dHRvblwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJyZXNldFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl06Zm9jdXMsXG4vLy8gICBidXR0b246aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInJlc2V0XCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXTpob3ZlciB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMwZjA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIGJ1dHRvbjphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJyZXNldFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwic3VibWl0XCJdOmFjdGl2ZSB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMwMGY7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSBhc3NpZ24taW5wdXRzXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG4vLy9cbi8vLyBAdG9kbyBSZW1vdmUgZG91YmxlIGFzc2lnbmVkIHZhcmlhYmxlcyAoTGluZXMgNTnigJM2MikgaW4gdjUuMC4wXG5cbiRidXR0b25zLWxpc3Q6ICdidXR0b24nLFxuICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJidXR0b25cIl0nLFxuICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJyZXNldFwiXScsXG4gICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSc7XG5cbiR1c2VyLW91dHB1dC1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nOiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M7XG4kb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6IGZhbHNlO1xuXG4kYWxsLWJ1dHRvbnM6ICAgICAgICBhc3NpZ24taW5wdXRzKCRidXR0b25zLWxpc3QpO1xuJGFsbC1idXR0b25zLWFjdGl2ZTogYXNzaWduLWlucHV0cygkYnV0dG9ucy1saXN0LCBhY3RpdmUpO1xuJGFsbC1idXR0b25zLWZvY3VzOiAgYXNzaWduLWlucHV0cygkYnV0dG9ucy1saXN0LCBmb2N1cyk7XG4kYWxsLWJ1dHRvbnMtaG92ZXI6ICBhc3NpZ24taW5wdXRzKCRidXR0b25zLWxpc3QsIGhvdmVyKTtcblxuJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiAkdXNlci1vdXRwdXQtZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZztcblxuJGFsbC1idXR0b24taW5wdXRzOiAgICAgICAgJGFsbC1idXR0b25zO1xuJGFsbC1idXR0b24taW5wdXRzLWFjdGl2ZTogJGFsbC1idXR0b25zLWFjdGl2ZTtcbiRhbGwtYnV0dG9uLWlucHV0cy1mb2N1czogICRhbGwtYnV0dG9ucy1mb2N1cztcbiRhbGwtYnV0dG9uLWlucHV0cy1ob3ZlcjogICRhbGwtYnV0dG9ucy1ob3ZlcjtcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGFuIGVhc3kgd2F5IHRvIGluY2x1ZGUgYSBjbGVhcmZpeCBmb3IgY29udGFpbmluZyBmbG9hdHMuXG4vLy9cbi8vLyBAbGluayBodHRwOi8vY3NzbW9qby5jb20vbGF0ZXN0X25ld19jbGVhcmZpeF9zb19mYXIvXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudDo6YWZ0ZXIge1xuLy8vICAgICBjbGVhcjogYm90aDtcbi8vLyAgICAgY29udGVudDogXCJcIjtcbi8vLyAgICAgZGlzcGxheTogdGFibGU7XG4vLy8gICB9XG5cbkBtaXhpbiBjbGVhcmZpeCB7XG4gICY6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBUcnVuY2F0ZXMgdGV4dCBhbmQgYWRkcyBhbiBlbGxpcHNpcyB0byByZXByZXNlbnQgb3ZlcmZsb3cuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIFsxMDAlXVxuLy8vICAgTWF4LXdpZHRoIGZvciB0aGUgc3RyaW5nIHRvIHJlc3BlY3QgYmVmb3JlIGJlaW5nIHRydW5jYXRlZFxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGVsbGlwc2lzO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4vLy8gICAgIG1heC13aWR0aDogMTAwJTtcbi8vLyAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbi8vLyAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4vLy8gICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4vLy8gICAgIHdvcmQtd3JhcDogbm9ybWFsO1xuLy8vICAgfVxuXG5AbWl4aW4gZWxsaXBzaXMoJHdpZHRoOiAxMDAlKSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAkd2lkdGg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB3b3JkLXdyYXA6IG5vcm1hbDtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEdlb3JnaWEgZm9udCBzdGFjay5cbi8vL1xuLy8vIEB0eXBlIExpc3RcblxuJGdlb3JnaWE6IFwiR2VvcmdpYVwiLCBcIkNhbWJyaWFcIiwgXCJUaW1lcyBOZXcgUm9tYW5cIiwgXCJUaW1lc1wiLCBzZXJpZjtcblxuLy8vIEhlbHZldGljYSBmb250IHN0YWNrLlxuLy8vXG4vLy8gQHR5cGUgTGlzdFxuXG4kaGVsdmV0aWNhOiBcIkhlbHZldGljYSBOZXVlXCIsIFwiSGVsdmV0aWNhXCIsIFwiUm9ib3RvXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcblxuLy8vIEx1Y2lkYSBHcmFuZGUgZm9udCBzdGFjay5cbi8vL1xuLy8vIEB0eXBlIExpc3RcblxuJGx1Y2lkYS1ncmFuZGU6IFwiTHVjaWRhIEdyYW5kZVwiLCBcIlRhaG9tYVwiLCBcIlZlcmRhbmFcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuXG4vLy8gTW9ub3NwYWNlIGZvbnQgc3RhY2suXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG5cbiRtb25vc3BhY2U6IFwiQml0c3RyZWFtIFZlcmEgU2FucyBNb25vXCIsIFwiQ29uc29sYXNcIiwgXCJDb3VyaWVyXCIsIG1vbm9zcGFjZTtcblxuLy8vIFZlcmRhbmEgZm9udCBzdGFjay5cbi8vL1xuLy8vIEB0eXBlIExpc3RcblxuJHZlcmRhbmE6IFwiVmVyZGFuYVwiLCBcIkdlbmV2YVwiLCBzYW5zLXNlcmlmO1xuIiwiLy8vIEhpZGVzIHRoZSB0ZXh0IGluIGFuIGVsZW1lbnQsIGNvbW1vbmx5IHVzZWQgdG8gc2hvdyBhbiBpbWFnZS4gU29tZSBlbGVtZW50cyB3aWxsIG5lZWQgYmxvY2stbGV2ZWwgc3R5bGVzIGFwcGxpZWQuXG4vLy9cbi8vLyBAbGluayBodHRwOi8vemVsZG1hbi5jb20vMjAxMi8wMy8wMS9yZXBsYWNpbmctdGhlLTk5OTlweC1oYWNrLW5ldy1pbWFnZS1yZXBsYWNlbWVudFxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGhpZGUtdGV4dDtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbi8vLyAgICAgdGV4dC1pbmRlbnQ6IDEwMSU7XG4vLy8gICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4vLy8gICB9XG4vLy9cbi8vLyBAdG9kbyBSZW1vdmUgaGVpZ2h0IGFyZ3VtZW50IGluIHY1LjAuMFxuXG5AbWl4aW4gaGlkZS10ZXh0KCRoZWlnaHQ6IG51bGwpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1pbmRlbnQ6IDEwMSU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgQGlmICRoZWlnaHQge1xuICAgIEB3YXJuIFwiVGhlIGBoaWRlLXRleHRgIG1peGluIGhhcyBjaGFuZ2VkIGFuZCBubyBsb25nZXIgcmVxdWlyZXMgYSBoZWlnaHQuIFRoZSBoZWlnaHQgYXJndW1lbnQgd2lsbCBubyBsb25nZXIgYmUgYWNjZXB0ZWQgaW4gdjUuMC4wXCI7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYG1hcmdpbmAgb24gc3BlY2lmaWMgc2lkZXMgb2YgYSBib3guIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgbWFyZ2luKG51bGwgMTBweCAzZW0gMjB2aCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIG1hcmdpbi1ib3R0b206IDNlbTtcbi8vLyAgICAgbWFyZ2luLWxlZnQ6IDIwdmg7XG4vLy8gICAgIG1hcmdpbi1yaWdodDogMTBweDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcbi8vL1xuLy8vIEBvdXRwdXQgYG1hcmdpbmBcblxuQG1peGluIG1hcmdpbigkdmFscy4uLikge1xuICAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nOiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2UgIWdsb2JhbDtcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkobWFyZ2luLCBmYWxzZSwgJHZhbHMuLi4pO1xuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6ICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmcgIWdsb2JhbDtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYHBhZGRpbmdgIG9uIHNwZWNpZmljIHNpZGVzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHBhZGRpbmcoMTJ2aCBudWxsIDEwcHggNSUpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcbi8vLyAgICAgcGFkZGluZy1sZWZ0OiA1JTtcbi8vLyAgICAgcGFkZGluZy10b3A6IDEydmg7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7bWl4aW59IGRpcmVjdGlvbmFsLXByb3BlcnR5XG4vLy9cbi8vLyBAb3V0cHV0IGBwYWRkaW5nYFxuXG5AbWl4aW4gcGFkZGluZygkdmFscy4uLikge1xuICAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nOiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2UgIWdsb2JhbDtcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkocGFkZGluZywgZmFsc2UsICR2YWxzLi4uKTtcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nICFnbG9iYWw7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3Igc2V0dGluZyBhbiBlbGVtZW504oCZcyBwb3NpdGlvbi4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxuLy8vXG4vLy8gQHBhcmFtIHtQb3NpdGlvbn0gJHBvc2l0aW9uIFtyZWxhdGl2ZV1cbi8vLyAgIEEgQ1NTIHBvc2l0aW9uIHZhbHVlXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICRjb29yZGluYXRlcyBbbnVsbCBudWxsIG51bGwgbnVsbF1cbi8vLyAgIExpc3Qgb2YgdmFsdWVzIHRoYXQgY29ycmVzcG9uZCB0byB0aGUgNC12YWx1ZSBzeW50YXggZm9yIHRoZSBlZGdlcyBvZiBhIGJveFxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAwIG51bGwgbnVsbCAxMGVtKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgbGVmdDogMTBlbTtcbi8vLyAgICAgcG9zaXRpb246IGFic29sdXRlO1xuLy8vICAgICB0b3A6IDA7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGlzLWxlbmd0aFxuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gdW5wYWNrXG5cbkBtaXhpbiBwb3NpdGlvbigkcG9zaXRpb246IHJlbGF0aXZlLCAkY29vcmRpbmF0ZXM6IG51bGwgbnVsbCBudWxsIG51bGwpIHtcbiAgQGlmIHR5cGUtb2YoJHBvc2l0aW9uKSA9PSBsaXN0IHtcbiAgICAkY29vcmRpbmF0ZXM6ICRwb3NpdGlvbjtcbiAgICAkcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZzogJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzO1xuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6IGZhbHNlICFnbG9iYWw7XG4gICRjb29yZGluYXRlczogdW5wYWNrKCRjb29yZGluYXRlcyk7XG5cbiAgJG9mZnNldHM6IChcbiAgICB0b3A6ICAgIG50aCgkY29vcmRpbmF0ZXMsIDEpLFxuICAgIHJpZ2h0OiAgbnRoKCRjb29yZGluYXRlcywgMiksXG4gICAgYm90dG9tOiBudGgoJGNvb3JkaW5hdGVzLCAzKSxcbiAgICBsZWZ0OiAgIG50aCgkY29vcmRpbmF0ZXMsIDQpXG4gICk7XG5cbiAgcG9zaXRpb246ICRwb3NpdGlvbjtcblxuICBAZWFjaCAkb2Zmc2V0LCAkdmFsdWUgaW4gJG9mZnNldHMge1xuICAgIEBpZiBpcy1sZW5ndGgoJHZhbHVlKSB7XG4gICAgICAjeyRvZmZzZXR9OiAkdmFsdWU7XG4gICAgfVxuICB9XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZyAhZ2xvYmFsO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQSBtaXhpbiBmb3IgZ2VuZXJhdGluZyB2ZW5kb3IgcHJlZml4ZXMgb24gbm9uLXN0YW5kYXJkaXplZCBwcm9wZXJ0aWVzLlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRwcm9wZXJ0eVxuLy8vICAgUHJvcGVydHkgdG8gcHJlZml4XG4vLy9cbi8vLyBAcGFyYW0geyp9ICR2YWx1ZVxuLy8vICAgVmFsdWUgdG8gdXNlXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRwcmVmaXhlc1xuLy8vICAgUHJlZml4ZXMgdG8gZGVmaW5lXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgcHJlZml4ZXIoYm9yZGVyLXJhZGl1cywgMTBweCwgd2Via2l0IG1zIHNwZWMpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDEwcHg7XG4vLy8gICAgIC1tb3otYm9yZGVyLXJhZGl1czogMTBweDtcbi8vLyAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3Itd2Via2l0XG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci1tb3ppbGxhXG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci1taWNyb3NvZnRcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLW9wZXJhXG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci1zcGVjXG5cbkBtaXhpbiBwcmVmaXhlcigkcHJvcGVydHksICR2YWx1ZSwgJHByZWZpeGVzKSB7XG4gIEBlYWNoICRwcmVmaXggaW4gJHByZWZpeGVzIHtcbiAgICBAaWYgJHByZWZpeCA9PSB3ZWJraXQge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLXdlYmtpdCB7XG4gICAgICAgIC13ZWJraXQtI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfSBAZWxzZSBpZiAkcHJlZml4ID09IG1veiB7XG4gICAgICBAaWYgJHByZWZpeC1mb3ItbW96aWxsYSB7XG4gICAgICAgIC1tb3otI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfSBAZWxzZSBpZiAkcHJlZml4ID09IG1zIHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci1taWNyb3NvZnQge1xuICAgICAgICAtbXMtI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfSBAZWxzZSBpZiAkcHJlZml4ID09IG8ge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLW9wZXJhIHtcbiAgICAgICAgLW8tI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfSBAZWxzZSBpZiAkcHJlZml4ID09IHNwZWMge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLXNwZWMge1xuICAgICAgICAjeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlICB7XG4gICAgICBAd2FybiBcIlVucmVjb2duaXplZCBwcmVmaXg6ICN7JHByZWZpeH1cIjtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGRpc2FibGUtcHJlZml4LWZvci1hbGwoKSB7XG4gICRwcmVmaXgtZm9yLXdlYmtpdDogICAgZmFsc2UgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3ItbW96aWxsYTogICBmYWxzZSAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1taWNyb3NvZnQ6IGZhbHNlICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW9wZXJhOiAgICAgZmFsc2UgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3Itc3BlYzogICAgICBmYWxzZSAhZ2xvYmFsO1xufVxuIiwiQG1peGluIHJldGluYS1pbWFnZSgkZmlsZW5hbWUsICRiYWNrZ3JvdW5kLXNpemUsICRleHRlbnNpb246IHBuZywgJHJldGluYS1maWxlbmFtZTogbnVsbCwgJHJldGluYS1zdWZmaXg6IF8yeCwgJGFzc2V0LXBpcGVsaW5lOiAkYXNzZXQtcGlwZWxpbmUpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlKFwicmV0aW5hLWltYWdlXCIpO1xuXG4gIEBpZiAkYXNzZXQtcGlwZWxpbmUge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IGltYWdlLXVybChcIiN7JGZpbGVuYW1lfS4jeyRleHRlbnNpb259XCIpO1xuICB9IEBlbHNlIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAgICAgICB1cmwoXCIjeyRmaWxlbmFtZX0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgfVxuXG4gIEBpbmNsdWRlIGhpZHBpIHtcbiAgICBAaWYgJGFzc2V0LXBpcGVsaW5lIHtcbiAgICAgIEBpZiAkcmV0aW5hLWZpbGVuYW1lIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaW1hZ2UtdXJsKFwiI3skcmV0aW5hLWZpbGVuYW1lfS4jeyRleHRlbnNpb259XCIpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGltYWdlLXVybChcIiN7JGZpbGVuYW1lfSN7JHJldGluYS1zdWZmaXh9LiN7JGV4dGVuc2lvbn1cIik7XG4gICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICBAaWYgJHJldGluYS1maWxlbmFtZSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIiN7JHJldGluYS1maWxlbmFtZX0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIjeyRmaWxlbmFtZX0jeyRyZXRpbmEtc3VmZml4fS4jeyRleHRlbnNpb259XCIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGJhY2tncm91bmQtc2l6ZTogJGJhY2tncm91bmQtc2l6ZTtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gU2V0cyB0aGUgYHdpZHRoYCBhbmQgYGhlaWdodGAgb2YgdGhlIGVsZW1lbnQuXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRzaXplXG4vLy8gICBBIGxpc3Qgb2YgYXQgbW9zdCAyIHNpemUgdmFsdWVzLlxuLy8vXG4vLy8gICBJZiB0aGVyZSBpcyBvbmx5IGEgc2luZ2xlIHZhbHVlIGluIGAkc2l6ZWAgaXQgaXMgdXNlZCBmb3IgYm90aCB3aWR0aCBhbmQgaGVpZ2h0LiBBbGwgdW5pdHMgYXJlIHN1cHBvcnRlZC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmZpcnN0LWVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBzaXplKDJlbSk7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5zZWNvbmQtZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHNpemUoYXV0byAxMGVtKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5maXJzdC1lbGVtZW50IHtcbi8vLyAgICAgd2lkdGg6IDJlbTtcbi8vLyAgICAgaGVpZ2h0OiAyZW07XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5zZWNvbmQtZWxlbWVudCB7XG4vLy8gICAgIHdpZHRoOiBhdXRvO1xuLy8vICAgICBoZWlnaHQ6IDEwZW07XG4vLy8gICB9XG4vLy9cbi8vLyBAdG9kbyBSZWZhY3RvciBpbiA1LjAuMCB0byB1c2UgYSBjb21tYS1zZXBhcmF0ZWQgYXJndW1lbnRcblxuQG1peGluIHNpemUoJHZhbHVlKSB7XG4gICR3aWR0aDogbnRoKCR2YWx1ZSwgMSk7XG4gICRoZWlnaHQ6ICR3aWR0aDtcblxuICBAaWYgbGVuZ3RoKCR2YWx1ZSkgPiAxIHtcbiAgICAkaGVpZ2h0OiBudGgoJHZhbHVlLCAyKTtcbiAgfVxuXG4gICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZSAhZ2xvYmFsO1xuXG4gIEBpZiBpcy1zaXplKCRoZWlnaHQpIHtcbiAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIH0gQGVsc2Uge1xuICAgIEB3YXJuIFwiYCN7JGhlaWdodH1gIGlzIG5vdCBhIHZhbGlkIGxlbmd0aCBmb3IgdGhlIGAkaGVpZ2h0YCBwYXJhbWV0ZXIgaW4gdGhlIGBzaXplYCBtaXhpbi5cIjtcbiAgfVxuXG4gIEBpZiBpcy1zaXplKCR3aWR0aCkge1xuICAgIHdpZHRoOiAkd2lkdGg7XG4gIH0gQGVsc2Uge1xuICAgIEB3YXJuIFwiYCN7JHdpZHRofWAgaXMgbm90IGEgdmFsaWQgbGVuZ3RoIGZvciB0aGUgYCR3aWR0aGAgcGFyYW1ldGVyIGluIHRoZSBgc2l6ZWAgbWl4aW4uXCI7XG4gIH1cblxuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6ICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmcgIWdsb2JhbDtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEdlbmVyYXRlcyB2YXJpYWJsZXMgZm9yIGFsbCB0ZXh0LWJhc2VkIGlucHV0cy4gUGxlYXNlIG5vdGUgdGhhdCB5b3UgbXVzdCB1c2UgaW50ZXJwb2xhdGlvbiBvbiB0aGUgdmFyaWFibGU6IGAjeyRhbGwtdGV4dC1pbnB1dHN9YC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgI3skYWxsLXRleHQtaW5wdXRzfSB7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICNmMDA7XG4vLy8gICB9XG4vLy9cbi8vLyAgICN7JGFsbC10ZXh0LWlucHV0cy1mb2N1c30sXG4vLy8gICAjeyRhbGwtdGV4dC1pbnB1dHMtaG92ZXJ9IHtcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgIzBmMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgI3skYWxsLXRleHQtaW5wdXRzLWFjdGl2ZX0ge1xuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjMDBmO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgaW5wdXRbdHlwZT1cImNvbG9yXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGVcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwiZW1haWxcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwibW9udGhcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZWxcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwidGV4dFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0aW1lXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInVybFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ3ZWVrXCJdLFxuLy8vICAgdGV4dGFyZWEge1xuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjZjAwO1xuLy8vICAgfVxuLy8vXG4vLy8gICBpbnB1dFt0eXBlPVwiY29sb3JcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZVwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJtb250aFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInRlbFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInRpbWVcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwidXJsXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cIndlZWtcIl06Zm9jdXMsXG4vLy8gICB0ZXh0YXJlYTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJjb2xvclwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRlXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cImVtYWlsXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwidGVsXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInRleHRcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwidGltZVwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJ1cmxcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwid2Vla1wiXTpob3Zlcixcbi8vLyAgIHRleHRhcmVhOmhvdmVyIHtcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgIzBmMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgaW5wdXRbdHlwZT1cImNvbG9yXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRlXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cImVtYWlsXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJtb250aFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZWxcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInRleHRcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInRpbWVcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInVybFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwid2Vla1wiXTphY3RpdmUsXG4vLy8gICB0ZXh0YXJlYTphY3RpdmUge1xuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjMDBmO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUgYXNzaWduLWlucHV0c1xuLy8vXG4vLy8gQHR5cGUgTGlzdFxuXG4kdGV4dC1pbnB1dHMtbGlzdDogJ2lucHV0W3R5cGU9XCJjb2xvclwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJkYXRlXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImVtYWlsXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cIm1vbnRoXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cIm51bWJlclwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJwYXNzd29yZFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJzZWFyY2hcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwidGVsXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInRleHRcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwidGltZVwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ1cmxcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwid2Vla1wiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0Om5vdChbdHlwZV0pJyxcbiAgICAgICAgICAgICAgICAgICAndGV4dGFyZWEnO1xuXG4kdXNlci1vdXRwdXQtZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZzogJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzO1xuJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZTtcblxuJGFsbC10ZXh0LWlucHV0czogICAgICAgIGFzc2lnbi1pbnB1dHMoJHRleHQtaW5wdXRzLWxpc3QpO1xuJGFsbC10ZXh0LWlucHV0cy1hY3RpdmU6IGFzc2lnbi1pbnB1dHMoJHRleHQtaW5wdXRzLWxpc3QsIGFjdGl2ZSk7XG4kYWxsLXRleHQtaW5wdXRzLWZvY3VzOiAgYXNzaWduLWlucHV0cygkdGV4dC1pbnB1dHMtbGlzdCwgZm9jdXMpO1xuJGFsbC10ZXh0LWlucHV0cy1ob3ZlcjogIGFzc2lnbi1pbnB1dHMoJHRleHQtaW5wdXRzLWxpc3QsIGhvdmVyKTtcblxuJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiAkdXNlci1vdXRwdXQtZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZztcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENTUyBjdWJpYy1iZXppZXIgdGltaW5nIGZ1bmN0aW9ucy4gVGltaW5nIGZ1bmN0aW9ucyBjb3VydGVzeSBvZiBqcXVlcnkuZWFzaWUgKGdpdGh1Yi5jb20vamF1a2lhL2Vhc2llKVxuLy8vXG4vLy8gVGltaW5nIGZ1bmN0aW9ucyBhcmUgdGhlIHNhbWUgYXMgZGVtb2VkIGhlcmU6IGh0dHA6Ly9qcXVlcnl1aS5jb20vcmVzb3VyY2VzL2RlbW9zL2VmZmVjdC9lYXNpbmcuaHRtbFxuLy8vXG4vLy8gQHR5cGUgY3ViaWMtYmV6aWVyXG5cbiRlYXNlLWluLXF1YWQ6ICAgICAgY3ViaWMtYmV6aWVyKDAuNTUwLCAgMC4wODUsIDAuNjgwLCAwLjUzMCk7XG4kZWFzZS1pbi1jdWJpYzogICAgIGN1YmljLWJlemllcigwLjU1MCwgIDAuMDU1LCAwLjY3NSwgMC4xOTApO1xuJGVhc2UtaW4tcXVhcnQ6ICAgICBjdWJpYy1iZXppZXIoMC44OTUsICAwLjAzMCwgMC42ODUsIDAuMjIwKTtcbiRlYXNlLWluLXF1aW50OiAgICAgY3ViaWMtYmV6aWVyKDAuNzU1LCAgMC4wNTAsIDAuODU1LCAwLjA2MCk7XG4kZWFzZS1pbi1zaW5lOiAgICAgIGN1YmljLWJlemllcigwLjQ3MCwgIDAuMDAwLCAwLjc0NSwgMC43MTUpO1xuJGVhc2UtaW4tZXhwbzogICAgICBjdWJpYy1iZXppZXIoMC45NTAsICAwLjA1MCwgMC43OTUsIDAuMDM1KTtcbiRlYXNlLWluLWNpcmM6ICAgICAgY3ViaWMtYmV6aWVyKDAuNjAwLCAgMC4wNDAsIDAuOTgwLCAwLjMzNSk7XG4kZWFzZS1pbi1iYWNrOiAgICAgIGN1YmljLWJlemllcigwLjYwMCwgLTAuMjgwLCAwLjczNSwgMC4wNDUpO1xuXG4kZWFzZS1vdXQtcXVhZDogICAgIGN1YmljLWJlemllcigwLjI1MCwgIDAuNDYwLCAwLjQ1MCwgMC45NDApO1xuJGVhc2Utb3V0LWN1YmljOiAgICBjdWJpYy1iZXppZXIoMC4yMTUsICAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcbiRlYXNlLW91dC1xdWFydDogICAgY3ViaWMtYmV6aWVyKDAuMTY1LCAgMC44NDAsIDAuNDQwLCAxLjAwMCk7XG4kZWFzZS1vdXQtcXVpbnQ6ICAgIGN1YmljLWJlemllcigwLjIzMCwgIDEuMDAwLCAwLjMyMCwgMS4wMDApO1xuJGVhc2Utb3V0LXNpbmU6ICAgICBjdWJpYy1iZXppZXIoMC4zOTAsICAwLjU3NSwgMC41NjUsIDEuMDAwKTtcbiRlYXNlLW91dC1leHBvOiAgICAgY3ViaWMtYmV6aWVyKDAuMTkwLCAgMS4wMDAsIDAuMjIwLCAxLjAwMCk7XG4kZWFzZS1vdXQtY2lyYzogICAgIGN1YmljLWJlemllcigwLjA3NSwgIDAuODIwLCAwLjE2NSwgMS4wMDApO1xuJGVhc2Utb3V0LWJhY2s6ICAgICBjdWJpYy1iZXppZXIoMC4xNzUsICAwLjg4NSwgMC4zMjAsIDEuMjc1KTtcblxuJGVhc2UtaW4tb3V0LXF1YWQ6ICBjdWJpYy1iZXppZXIoMC40NTUsICAwLjAzMCwgMC41MTUsIDAuOTU1KTtcbiRlYXNlLWluLW91dC1jdWJpYzogY3ViaWMtYmV6aWVyKDAuNjQ1LCAgMC4wNDUsIDAuMzU1LCAxLjAwMCk7XG4kZWFzZS1pbi1vdXQtcXVhcnQ6IGN1YmljLWJlemllcigwLjc3MCwgIDAuMDAwLCAwLjE3NSwgMS4wMDApO1xuJGVhc2UtaW4tb3V0LXF1aW50OiBjdWJpYy1iZXppZXIoMC44NjAsICAwLjAwMCwgMC4wNzAsIDEuMDAwKTtcbiRlYXNlLWluLW91dC1zaW5lOiAgY3ViaWMtYmV6aWVyKDAuNDQ1LCAgMC4wNTAsIDAuNTUwLCAwLjk1MCk7XG4kZWFzZS1pbi1vdXQtZXhwbzogIGN1YmljLWJlemllcigxLjAwMCwgIDAuMDAwLCAwLjAwMCwgMS4wMDApO1xuJGVhc2UtaW4tb3V0LWNpcmM6ICBjdWJpYy1iZXppZXIoMC43ODUsICAwLjEzNSwgMC4xNTAsIDAuODYwKTtcbiRlYXNlLWluLW91dC1iYWNrOiAgY3ViaWMtYmV6aWVyKDAuNjgwLCAtMC41NTAsIDAuMjY1LCAxLjU1MCk7XG4iLCJAbWl4aW4gdHJpYW5nbGUoJHNpemUsICRjb2xvciwgJGRpcmVjdGlvbikge1xuICAkd2lkdGg6IG50aCgkc2l6ZSwgMSk7XG4gICRoZWlnaHQ6IG50aCgkc2l6ZSwgbGVuZ3RoKCRzaXplKSk7XG4gICRmb3JlZ3JvdW5kLWNvbG9yOiBudGgoJGNvbG9yLCAxKTtcbiAgJGJhY2tncm91bmQtY29sb3I6IGlmKGxlbmd0aCgkY29sb3IpID09IDIsIG50aCgkY29sb3IsIDIpLCB0cmFuc3BhcmVudCk7XG4gIGhlaWdodDogMDtcbiAgd2lkdGg6IDA7XG5cbiAgQGlmICgkZGlyZWN0aW9uID09IHVwKSBvciAoJGRpcmVjdGlvbiA9PSBkb3duKSBvciAoJGRpcmVjdGlvbiA9PSByaWdodCkgb3IgKCRkaXJlY3Rpb24gPT0gbGVmdCkge1xuICAgICR3aWR0aDogJHdpZHRoIC8gMjtcbiAgICAkaGVpZ2h0OiBpZihsZW5ndGgoJHNpemUpID4gMSwgJGhlaWdodCwgJGhlaWdodC8yKTtcblxuICAgIEBpZiAkZGlyZWN0aW9uID09IHVwIHtcbiAgICAgIGJvcmRlci1ib3R0b206ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItbGVmdDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IHJpZ2h0IHtcbiAgICAgIGJvcmRlci1ib3R0b206ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1sZWZ0OiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXRvcDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBkb3duIHtcbiAgICAgIGJvcmRlci1sZWZ0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci10b3A6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGxlZnQge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXRvcDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSB1cC1yaWdodCkgb3IgKCRkaXJlY3Rpb24gPT0gdXAtbGVmdCkge1xuICAgIGJvcmRlci10b3A6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG5cbiAgICBAaWYgJGRpcmVjdGlvbiA9PSB1cC1yaWdodCB7XG4gICAgICBib3JkZXItbGVmdDogICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gdXAtbGVmdCB7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gZG93bi1yaWdodCkgb3IgKCRkaXJlY3Rpb24gPT0gZG93bi1sZWZ0KSB7XG4gICAgYm9yZGVyLWJvdHRvbTogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcblxuICAgIEBpZiAkZGlyZWN0aW9uID09IGRvd24tcmlnaHQge1xuICAgICAgYm9yZGVyLWxlZnQ6ICAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGRvd24tbGVmdCB7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtdXApIHtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkaGVpZ2h0ICR3aWR0aDtcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC1kb3duKSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkZm9yZWdyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogJGhlaWdodCAkd2lkdGg7XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtcmlnaHQpIHtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkd2lkdGggJGhlaWdodDtcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC1sZWZ0KSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvciAkZm9yZWdyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogJHdpZHRoICRoZWlnaHQ7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGFuIGVhc3kgd2F5IHRvIGNoYW5nZSB0aGUgYHdvcmQtd3JhcGAgcHJvcGVydHkuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHdyYXAgW2JyZWFrLXdvcmRdXG4vLy8gICBWYWx1ZSBmb3IgdGhlIGB3b3JkLWJyZWFrYCBwcm9wZXJ0eS5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLndyYXBwZXIge1xuLy8vICAgICBAaW5jbHVkZSB3b3JkLXdyYXAoYnJlYWstd29yZCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAud3JhcHBlciB7XG4vLy8gICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4vLy8gICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbi8vLyAgICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuLy8vICAgfVxuXG5AbWl4aW4gd29yZC13cmFwKCR3cmFwOiBicmVhay13b3JkKSB7XG4gIG92ZXJmbG93LXdyYXA6ICR3cmFwO1xuICB3b3JkLXdyYXA6ICR3cmFwO1xuXG4gIEBpZiAkd3JhcCA9PSBicmVhay13b3JkIHtcbiAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gIH0gQGVsc2Uge1xuICAgIHdvcmQtYnJlYWs6ICR3cmFwO1xuICB9XG59XG4iLCIvLyBUaGUgZm9sbG93aW5nIGZlYXR1cmVzIGhhdmUgYmVlbiBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgTUFKT1IgdmVyc2lvbiByZWxlYXNlXG5cbkBtaXhpbiBpbmxpbmUtYmxvY2sge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUoXCJpbmxpbmUtYmxvY2tcIik7XG5cbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG5AbWl4aW4gYnV0dG9uICgkc3R5bGU6IHNpbXBsZSwgJGJhc2UtY29sb3I6ICM0Mjk0ZjAsICR0ZXh0LXNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUoXCJidXR0b25cIik7XG5cbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBzdHJpbmcgYW5kIHR5cGUtb2YoJGJhc2UtY29sb3IpID09IGNvbG9yIHtcbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IHN0cmluZyBhbmQgdHlwZS1vZigkYmFzZS1jb2xvcikgPT0gbnVtYmVyIHtcbiAgICAkcGFkZGluZzogJHRleHQtc2l6ZTtcbiAgICAkdGV4dC1zaXplOiAkYmFzZS1jb2xvcjtcbiAgICAkYmFzZS1jb2xvcjogIzQyOTRmMDtcblxuICAgIEBpZiAkcGFkZGluZyA9PSBpbmhlcml0IHtcbiAgICAgICRwYWRkaW5nOiA3cHggMThweDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IGNvbG9yIGFuZCB0eXBlLW9mKCRiYXNlLWNvbG9yKSA9PSBjb2xvciB7XG4gICAgJGJhc2UtY29sb3I6ICRzdHlsZTtcbiAgICAkc3R5bGU6IHNpbXBsZTtcbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IGNvbG9yIGFuZCB0eXBlLW9mKCRiYXNlLWNvbG9yKSA9PSBudW1iZXIge1xuICAgICRwYWRkaW5nOiAkdGV4dC1zaXplO1xuICAgICR0ZXh0LXNpemU6ICRiYXNlLWNvbG9yO1xuICAgICRiYXNlLWNvbG9yOiAkc3R5bGU7XG4gICAgJHN0eWxlOiBzaW1wbGU7XG5cbiAgICBAaWYgJHBhZGRpbmcgPT0gaW5oZXJpdCB7XG4gICAgICAkcGFkZGluZzogN3B4IDE4cHg7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xuICB9XG5cbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBudW1iZXIge1xuICAgICRwYWRkaW5nOiAkYmFzZS1jb2xvcjtcbiAgICAkdGV4dC1zaXplOiAkc3R5bGU7XG4gICAgJGJhc2UtY29sb3I6ICM0Mjk0ZjA7XG4gICAgJHN0eWxlOiBzaW1wbGU7XG5cbiAgICBAaWYgJHBhZGRpbmcgPT0gIzQyOTRmMCB7XG4gICAgICAkcGFkZGluZzogN3B4IDE4cHg7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xuICB9XG5cbiAgJjpkaXNhYmxlZCB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBvcGFjaXR5OiAwLjU7XG4gIH1cbn1cblxuLy8gU2VsZWN0b3IgU3R5bGUgQnV0dG9uXG5AbWl4aW4gYnV0dG9uc3R5bGUoJHR5cGUsICRiLWNvbG9yLCAkdC1zaXplLCAkcGFkKSB7XG4gIC8vIEdyYXlzY2FsZSBidXR0b25cbiAgQGlmICR0eXBlID09IHNpbXBsZSBhbmQgJGItY29sb3IgPT0gZ3JheXNjYWxlKCRiLWNvbG9yKSB7XG4gICAgQGluY2x1ZGUgc2ltcGxlKCRiLWNvbG9yLCB0cnVlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIEBpZiAkdHlwZSA9PSBzaGlueSBhbmQgJGItY29sb3IgPT0gZ3JheXNjYWxlKCRiLWNvbG9yKSB7XG4gICAgQGluY2x1ZGUgc2hpbnkoJGItY29sb3IsIHRydWUsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGlmICR0eXBlID09IHBpbGwgYW5kICRiLWNvbG9yID09IGdyYXlzY2FsZSgkYi1jb2xvcikge1xuICAgIEBpbmNsdWRlIHBpbGwoJGItY29sb3IsIHRydWUsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGlmICR0eXBlID09IGZsYXQgYW5kICRiLWNvbG9yID09IGdyYXlzY2FsZSgkYi1jb2xvcikge1xuICAgIEBpbmNsdWRlIGZsYXQoJGItY29sb3IsIHRydWUsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgLy8gQ29sb3JlZCBidXR0b25cbiAgQGlmICR0eXBlID09IHNpbXBsZSB7XG4gICAgQGluY2x1ZGUgc2ltcGxlKCRiLWNvbG9yLCBmYWxzZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAZWxzZSBpZiAkdHlwZSA9PSBzaGlueSB7XG4gICAgQGluY2x1ZGUgc2hpbnkoJGItY29sb3IsIGZhbHNlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIEBlbHNlIGlmICR0eXBlID09IHBpbGwge1xuICAgIEBpbmNsdWRlIHBpbGwoJGItY29sb3IsIGZhbHNlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIEBlbHNlIGlmICR0eXBlID09IGZsYXQge1xuICAgIEBpbmNsdWRlIGZsYXQoJGItY29sb3IsIGZhbHNlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxufVxuXG4vLyBTaW1wbGUgQnV0dG9uXG5AbWl4aW4gc2ltcGxlKCRiYXNlLWNvbG9yLCAkZ3JheXNjYWxlOiBmYWxzZSwgJHRleHRzaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcbiAgJGNvbG9yOiAgICAgICAgIGhzbCgwLCAwLCAxMDAlKTtcbiAgJGJvcmRlcjogICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246ICA5JSwgICRsaWdodG5lc3M6IC0xNCUpO1xuICAkaW5zZXQtc2hhZG93OiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogLTglLCAgJGxpZ2h0bmVzczogIDE1JSk7XG4gICRzdG9wLWdyYWRpZW50OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAgOSUsICAkbGlnaHRuZXNzOiAtMTElKTtcbiAgJHRleHQtc2hhZG93OiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246ICAxNSUsICRsaWdodG5lc3M6IC0xOCUpO1xuXG4gIEBpZiBpcy1saWdodCgkYmFzZS1jb2xvcikge1xuICAgICRjb2xvcjogICAgICAgaHNsKDAsIDAsIDIwJSk7XG4gICAgJHRleHQtc2hhZG93OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAxMCUsICRsaWdodG5lc3M6IDQlKTtcbiAgfVxuXG4gIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICRib3JkZXI6ICAgICAgICBncmF5c2NhbGUoJGJvcmRlcik7XG4gICAgJGluc2V0LXNoYWRvdzogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93KTtcbiAgICAkc3RvcC1ncmFkaWVudDogZ3JheXNjYWxlKCRzdG9wLWdyYWRpZW50KTtcbiAgICAkdGV4dC1zaGFkb3c6ICAgZ3JheXNjYWxlKCR0ZXh0LXNoYWRvdyk7XG4gIH1cblxuICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93O1xuICBjb2xvcjogJGNvbG9yO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogJHRleHRzaXplO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50ICgkYmFzZS1jb2xvciwgJHN0b3AtZ3JhZGllbnQpO1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXNoYWRvdzogMCAxcHggMCAkdGV4dC1zaGFkb3c7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG5cbiAgJjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IC00JSwgJGxpZ2h0bmVzczogLTUlKTtcbiAgICAkaW5zZXQtc2hhZG93LWhvdmVyOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogLTclLCAkbGlnaHRuZXNzOiAgNSUpO1xuICAgICRzdG9wLWdyYWRpZW50LWhvdmVyOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAgOCUsICRsaWdodG5lc3M6IC0xNCUpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgZ3JheXNjYWxlKCRiYXNlLWNvbG9yLWhvdmVyKTtcbiAgICAgICRpbnNldC1zaGFkb3ctaG92ZXI6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdy1ob3Zlcik7XG4gICAgICAkc3RvcC1ncmFkaWVudC1ob3ZlcjogZ3JheXNjYWxlKCRzdG9wLWdyYWRpZW50LWhvdmVyKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQgKCRiYXNlLWNvbG9yLWhvdmVyLCAkc3RvcC1ncmFkaWVudC1ob3Zlcik7XG5cbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdy1ob3ZlcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cblxuICAmOmFjdGl2ZTpub3QoOmRpc2FibGVkKSxcbiAgJjpmb2N1czpub3QoOmRpc2FibGVkKSB7XG4gICAgJGJvcmRlci1hY3RpdmU6ICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDklLCAkbGlnaHRuZXNzOiAtMTQlKTtcbiAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogNyUsICRsaWdodG5lc3M6IC0xNyUpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkYm9yZGVyLWFjdGl2ZTogICAgICAgZ3JheXNjYWxlKCRib3JkZXItYWN0aXZlKTtcbiAgICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiBncmF5c2NhbGUoJGluc2V0LXNoYWRvdy1hY3RpdmUpO1xuICAgIH1cblxuICAgIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItYWN0aXZlO1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCA4cHggNHB4ICRpbnNldC1zaGFkb3ctYWN0aXZlLCBpbnNldCAwIDAgOHB4IDRweCAkaW5zZXQtc2hhZG93LWFjdGl2ZTtcbiAgfVxufVxuXG4vLyBTaGlueSBCdXR0b25cbkBtaXhpbiBzaGlueSgkYmFzZS1jb2xvciwgJGdyYXlzY2FsZTogZmFsc2UsICR0ZXh0c2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XG4gICRib3JkZXI6ICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xMTcsICRncmVlbjogLTExMSwgJGJsdWU6IC04MSk7XG4gICRib3JkZXItYm90dG9tOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xMjYsICRncmVlbjogLTEyNywgJGJsdWU6IC0xMjIpO1xuICAkZm91cnRoLXN0b3A6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtNzksICAkZ3JlZW46IC03MCwgICRibHVlOiAtNDYpO1xuICAkaW5zZXQtc2hhZG93OiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAgMzcsICAkZ3JlZW46ICAyOSwgICRibHVlOiAgMTIpO1xuICAkc2Vjb25kLXN0b3A6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtNTYsICAkZ3JlZW46IC01MCwgICRibHVlOiAtMzMpO1xuICAkdGV4dC1zaGFkb3c6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTQwLCAkZ3JlZW46IC0xNDEsICRibHVlOiAtMTE0KTtcbiAgJHRoaXJkLXN0b3A6ICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTg2LCAgJGdyZWVuOiAtNzUsICAkYmx1ZTogLTQ4KTtcblxuICBAaWYgaXMtbGlnaHQoJGJhc2UtY29sb3IpIHtcbiAgICAkY29sb3I6ICAgICAgIGhzbCgwLCAwLCAyMCUpO1xuICAgICR0ZXh0LXNoYWRvdzogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogMTAlLCAkbGlnaHRuZXNzOiA0JSk7XG4gIH1cblxuICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAkYm9yZGVyOiAgICAgICAgZ3JheXNjYWxlKCRib3JkZXIpO1xuICAgICRib3JkZXItYm90dG9tOiBncmF5c2NhbGUoJGJvcmRlci1ib3R0b20pO1xuICAgICRmb3VydGgtc3RvcDogICBncmF5c2NhbGUoJGZvdXJ0aC1zdG9wKTtcbiAgICAkaW5zZXQtc2hhZG93OiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3cpO1xuICAgICRzZWNvbmQtc3RvcDogICBncmF5c2NhbGUoJHNlY29uZC1zdG9wKTtcbiAgICAkdGV4dC1zaGFkb3c6ICAgZ3JheXNjYWxlKCR0ZXh0LXNoYWRvdyk7XG4gICAgJHRoaXJkLXN0b3A6ICAgIGdyYXlzY2FsZSgkdGhpcmQtc3RvcCk7XG4gIH1cblxuICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQodG9wLCAkYmFzZS1jb2xvciAwJSwgJHNlY29uZC1zdG9wIDUwJSwgJHRoaXJkLXN0b3AgNTAlLCAkZm91cnRoLXN0b3AgMTAwJSk7XG5cbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlcjtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRib3JkZXItYm90dG9tO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93O1xuICBjb2xvcjogJGNvbG9yO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogJHRleHRzaXplO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXNoYWRvdzogMCAtMXB4IDFweCAkdGV4dC1zaGFkb3c7XG5cbiAgJjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgJGZpcnN0LXN0b3AtaG92ZXI6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xMywgJGdyZWVuOiAtMTUsICRibHVlOiAtMTgpO1xuICAgICRzZWNvbmQtc3RvcC1ob3ZlcjogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtNjYsICRncmVlbjogLTYyLCAkYmx1ZTogLTUxKTtcbiAgICAkdGhpcmQtc3RvcC1ob3ZlcjogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTkzLCAkZ3JlZW46IC04NSwgJGJsdWU6IC02Nik7XG4gICAgJGZvdXJ0aC1zdG9wLWhvdmVyOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC04NiwgJGdyZWVuOiAtODAsICRibHVlOiAtNjMpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkZmlyc3Qtc3RvcC1ob3ZlcjogIGdyYXlzY2FsZSgkZmlyc3Qtc3RvcC1ob3Zlcik7XG4gICAgICAkc2Vjb25kLXN0b3AtaG92ZXI6IGdyYXlzY2FsZSgkc2Vjb25kLXN0b3AtaG92ZXIpO1xuICAgICAgJHRoaXJkLXN0b3AtaG92ZXI6ICBncmF5c2NhbGUoJHRoaXJkLXN0b3AtaG92ZXIpO1xuICAgICAgJGZvdXJ0aC1zdG9wLWhvdmVyOiBncmF5c2NhbGUoJGZvdXJ0aC1zdG9wLWhvdmVyKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQodG9wLCAkZmlyc3Qtc3RvcC1ob3ZlciAgMCUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNlY29uZC1zdG9wLWhvdmVyIDUwJSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcmQtc3RvcC1ob3ZlciAgNTAlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRmb3VydGgtc3RvcC1ob3ZlciAxMDAlKTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cblxuICAmOmFjdGl2ZTpub3QoOmRpc2FibGVkKSxcbiAgJjpmb2N1czpub3QoOmRpc2FibGVkKSB7XG4gICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTExMSwgJGdyZWVuOiAtMTE2LCAkYmx1ZTogLTEyMik7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiBncmF5c2NhbGUoJGluc2V0LXNoYWRvdy1hY3RpdmUpO1xuICAgIH1cblxuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAyMHB4IDAgJGluc2V0LXNoYWRvdy1hY3RpdmU7XG4gIH1cbn1cblxuLy8gUGlsbCBCdXR0b25cbkBtaXhpbiBwaWxsKCRiYXNlLWNvbG9yLCAkZ3JheXNjYWxlOiBmYWxzZSwgJHRleHRzaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcbiAgJGNvbG9yOiAgICAgICAgIGhzbCgwLCAwLCAxMDAlKTtcbiAgJGJvcmRlci1ib3R0b206IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDgsICRzYXR1cmF0aW9uOiAtMTElLCAkbGlnaHRuZXNzOiAtMjYlKTtcbiAgJGJvcmRlci1zaWRlczogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDQsICRzYXR1cmF0aW9uOiAtMjElLCAkbGlnaHRuZXNzOiAtMjElKTtcbiAgJGJvcmRlci10b3A6ICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogLTEsICRzYXR1cmF0aW9uOiAtMzAlLCAkbGlnaHRuZXNzOiAtMTUlKTtcbiAgJGluc2V0LXNoYWRvdzogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogLTEsICRzYXR1cmF0aW9uOiAtMSUsICAkbGlnaHRuZXNzOiAgNyUpO1xuICAkc3RvcC1ncmFkaWVudDogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgOCwgJHNhdHVyYXRpb246ICAxNCUsICRsaWdodG5lc3M6IC0xMCUpO1xuICAkdGV4dC1zaGFkb3c6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgNSwgJHNhdHVyYXRpb246IC0xOSUsICRsaWdodG5lc3M6IC0xNSUpO1xuXG4gIEBpZiBpcy1saWdodCgkYmFzZS1jb2xvcikge1xuICAgICRjb2xvcjogICAgICAgaHNsKDAsIDAsIDIwJSk7XG4gICAgJHRleHQtc2hhZG93OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAxMCUsICRsaWdodG5lc3M6IDQlKTtcbiAgfVxuXG4gIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICRib3JkZXItYm90dG9tOiBncmF5c2NhbGUoJGJvcmRlci1ib3R0b20pO1xuICAgICRib3JkZXItc2lkZXM6ICBncmF5c2NhbGUoJGJvcmRlci1zaWRlcyk7XG4gICAgJGJvcmRlci10b3A6ICAgIGdyYXlzY2FsZSgkYm9yZGVyLXRvcCk7XG4gICAgJGluc2V0LXNoYWRvdzogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93KTtcbiAgICAkc3RvcC1ncmFkaWVudDogZ3JheXNjYWxlKCRzdG9wLWdyYWRpZW50KTtcbiAgICAkdGV4dC1zaGFkb3c6ICAgZ3JheXNjYWxlKCR0ZXh0LXNoYWRvdyk7XG4gIH1cblxuICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLXRvcDtcbiAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLXRvcCAkYm9yZGVyLXNpZGVzICRib3JkZXItYm90dG9tO1xuICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdztcbiAgY29sb3I6ICRjb2xvcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6ICR0ZXh0c2l6ZTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCAoJGJhc2UtY29sb3IsICRzdG9wLWdyYWRpZW50KTtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXNoYWRvdzogMCAtMXB4IDFweCAkdGV4dC1zaGFkb3c7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG5cbiAgJjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaWdodG5lc3M6IC00LjUlKTtcbiAgICAkYm9yZGVyLWJvdHRvbTogICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgOCwgJHNhdHVyYXRpb246ICAxMy41JSwgJGxpZ2h0bmVzczogLTMyJSk7XG4gICAgJGJvcmRlci1zaWRlczogICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDQsICRzYXR1cmF0aW9uOiAtMiUsICAgICRsaWdodG5lc3M6IC0yNyUpO1xuICAgICRib3JkZXItdG9wOiAgICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IC0xLCAkc2F0dXJhdGlvbjogLTE3JSwgICAkbGlnaHRuZXNzOiAtMjElKTtcbiAgICAkaW5zZXQtc2hhZG93LWhvdmVyOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAgICAgICAgICAgJHNhdHVyYXRpb246IC0xJSwgICAgJGxpZ2h0bmVzczogIDMlKTtcbiAgICAkc3RvcC1ncmFkaWVudC1ob3ZlcjogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgOCwgJHNhdHVyYXRpb246IC00JSwgICAgJGxpZ2h0bmVzczogLTE1LjUlKTtcbiAgICAkdGV4dC1zaGFkb3ctaG92ZXI6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgNSwgJHNhdHVyYXRpb246IC01JSwgICAgJGxpZ2h0bmVzczogLTIyJSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBncmF5c2NhbGUoJGJhc2UtY29sb3ItaG92ZXIpO1xuICAgICAgJGJvcmRlci1ib3R0b206ICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLWJvdHRvbSk7XG4gICAgICAkYm9yZGVyLXNpZGVzOiAgICAgICAgZ3JheXNjYWxlKCRib3JkZXItc2lkZXMpO1xuICAgICAgJGJvcmRlci10b3A6ICAgICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLXRvcCk7XG4gICAgICAkaW5zZXQtc2hhZG93LWhvdmVyOiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctaG92ZXIpO1xuICAgICAgJHN0b3AtZ3JhZGllbnQtaG92ZXI6IGdyYXlzY2FsZSgkc3RvcC1ncmFkaWVudC1ob3Zlcik7XG4gICAgICAkdGV4dC1zaGFkb3ctaG92ZXI6ICAgZ3JheXNjYWxlKCR0ZXh0LXNoYWRvdy1ob3Zlcik7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50ICgkYmFzZS1jb2xvci1ob3ZlciwgJHN0b3AtZ3JhZGllbnQtaG92ZXIpO1xuXG4gICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLXRvcDtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItdG9wICRib3JkZXItc2lkZXMgJGJvcmRlci1ib3R0b207XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3ctaG92ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRleHQtc2hhZG93OiAwIC0xcHggMXB4ICR0ZXh0LXNoYWRvdy1ob3ZlcjtcbiAgfVxuXG4gICY6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpLFxuICAmOmZvY3VzOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkYWN0aXZlLWNvbG9yOiAgICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogNCwgICRzYXR1cmF0aW9uOiAtMTIlLCAgJGxpZ2h0bmVzczogLTEwJSk7XG4gICAgJGJvcmRlci1hY3RpdmU6ICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDYsICAkc2F0dXJhdGlvbjogLTIuNSUsICRsaWdodG5lc3M6IC0zMCUpO1xuICAgICRib3JkZXItYm90dG9tLWFjdGl2ZTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAxMSwgJHNhdHVyYXRpb246ICA2JSwgICAkbGlnaHRuZXNzOiAtMzElKTtcbiAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogOSwgICRzYXR1cmF0aW9uOiAgMiUsICAgJGxpZ2h0bmVzczogLTIxLjUlKTtcbiAgICAkdGV4dC1zaGFkb3ctYWN0aXZlOiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogNSwgICRzYXR1cmF0aW9uOiAtMTIlLCAgJGxpZ2h0bmVzczogLTIxLjUlKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGFjdGl2ZS1jb2xvcjogICAgICAgICBncmF5c2NhbGUoJGFjdGl2ZS1jb2xvcik7XG4gICAgICAkYm9yZGVyLWFjdGl2ZTogICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLWFjdGl2ZSk7XG4gICAgICAkYm9yZGVyLWJvdHRvbS1hY3RpdmU6IGdyYXlzY2FsZSgkYm9yZGVyLWJvdHRvbS1hY3RpdmUpO1xuICAgICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdy1hY3RpdmUpO1xuICAgICAgJHRleHQtc2hhZG93LWFjdGl2ZTogICBncmF5c2NhbGUoJHRleHQtc2hhZG93LWFjdGl2ZSk7XG4gICAgfVxuXG4gICAgYmFja2dyb3VuZDogJGFjdGl2ZS1jb2xvcjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWFjdGl2ZTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJvcmRlci1ib3R0b20tYWN0aXZlO1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCA2cHggM3B4ICRpbnNldC1zaGFkb3ctYWN0aXZlO1xuICAgIHRleHQtc2hhZG93OiAwIC0xcHggMXB4ICR0ZXh0LXNoYWRvdy1hY3RpdmU7XG4gIH1cbn1cblxuLy8gRmxhdCBCdXR0b25cbkBtaXhpbiBmbGF0KCRiYXNlLWNvbG9yLCAkZ3JheXNjYWxlOiBmYWxzZSwgJHRleHRzaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcbiAgJGNvbG9yOiAgICAgICAgIGhzbCgwLCAwLCAxMDAlKTtcblxuICBAaWYgaXMtbGlnaHQoJGJhc2UtY29sb3IpIHtcbiAgICAkY29sb3I6ICAgICAgIGhzbCgwLCAwLCAyMCUpO1xuICB9XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhc2UtY29sb3I7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm9yZGVyOiAwO1xuICBjb2xvcjogJGNvbG9yO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogJHRleHRzaXplO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcblxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpe1xuICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiA0JSwgJGxpZ2h0bmVzczogNSUpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkYmFzZS1jb2xvci1ob3ZlcjogZ3JheXNjYWxlKCRiYXNlLWNvbG9yLWhvdmVyKTtcbiAgICB9XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFzZS1jb2xvci1ob3ZlcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cblxuICAmOmFjdGl2ZTpub3QoOmRpc2FibGVkKSxcbiAgJjpmb2N1czpub3QoOmRpc2FibGVkKSB7XG4gICAgJGJhc2UtY29sb3ItYWN0aXZlOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAtNCUsICRsaWdodG5lc3M6IC01JSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRiYXNlLWNvbG9yLWFjdGl2ZTogZ3JheXNjYWxlKCRiYXNlLWNvbG9yLWFjdGl2ZSk7XG4gICAgfVxuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhc2UtY29sb3ItYWN0aXZlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxufVxuXG4vLyBGbGV4aWJsZSBncmlkXG5AZnVuY3Rpb24gZmxleC1ncmlkKCRjb2x1bW5zLCAkY29udGFpbmVyLWNvbHVtbnM6ICRmZy1tYXgtY29sdW1ucykge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYGZsZXgtZ3JpZGAgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSBcIiArXG4gICAgXCJyZW1vdmVkIGluIDUuMC4wLiBGb3IgZ3JpZCBmdW5jdGlvbnMsIGNoZWNrIG91dCBCb3VyYm9uJ3Mgc2lzdGVyIGxpYnJhcnlcIiArXG4gICAgXCJOZWF0LlwiO1xuICB9XG5cbiAgJHdpZHRoOiAkY29sdW1ucyAqICRmZy1jb2x1bW4gKyAoJGNvbHVtbnMgLSAxKSAqICRmZy1ndXR0ZXI7XG4gICRjb250YWluZXItd2lkdGg6ICRjb250YWluZXItY29sdW1ucyAqICRmZy1jb2x1bW4gKyAoJGNvbnRhaW5lci1jb2x1bW5zIC0gMSkgKiAkZmctZ3V0dGVyO1xuICBAcmV0dXJuIHBlcmNlbnRhZ2UoJHdpZHRoIC8gJGNvbnRhaW5lci13aWR0aCk7XG59XG5cbi8vIEZsZXhpYmxlIGd1dHRlclxuQGZ1bmN0aW9uIGZsZXgtZ3V0dGVyKCRjb250YWluZXItY29sdW1uczogJGZnLW1heC1jb2x1bW5zLCAkZ3V0dGVyOiAkZmctZ3V0dGVyKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgZmxleC1ndXR0ZXJgIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgXCIgK1xuICAgIFwicmVtb3ZlZCBpbiA1LjAuMC4gRm9yIGdyaWQgZnVuY3Rpb25zLCBjaGVjayBvdXQgQm91cmJvbidzIHNpc3RlciBsaWJyYXJ5XCIgK1xuICAgIFwiTmVhdC5cIjtcbiAgfVxuXG4gICRjb250YWluZXItd2lkdGg6ICRjb250YWluZXItY29sdW1ucyAqICRmZy1jb2x1bW4gKyAoJGNvbnRhaW5lci1jb2x1bW5zIC0gMSkgKiAkZmctZ3V0dGVyO1xuICBAcmV0dXJuIHBlcmNlbnRhZ2UoJGd1dHRlciAvICRjb250YWluZXItd2lkdGgpO1xufVxuXG5AZnVuY3Rpb24gZ3JpZC13aWR0aCgkbikge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYGdyaWQtd2lkdGhgIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgXCIgK1xuICAgIFwicmVtb3ZlZCBpbiA1LjAuMC4gRm9yIGdyaWQgZnVuY3Rpb25zLCBjaGVjayBvdXQgQm91cmJvbidzIHNpc3RlciBsaWJyYXJ5XCIgK1xuICAgIFwiTmVhdC5cIjtcbiAgfVxuXG4gIEByZXR1cm4gJG4gKiAkZ3ctY29sdW1uICsgKCRuIC0gMSkgKiAkZ3ctZ3V0dGVyO1xufVxuXG5AZnVuY3Rpb24gZ29sZGVuLXJhdGlvKCR2YWx1ZSwgJGluY3JlbWVudCkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYGdvbGRlbi1yYXRpb2AgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSBcIiArXG4gICAgXCJyZW1vdmVkIGluIDUuMC4wLiBZb3UgY2FuIHVzZSB0aGUgYG1vZHVsYXItc2NhbGVgIGZ1bmN0aW9uIGluc3RlYWQuXCI7XG4gIH1cblxuICBAcmV0dXJuIG1vZHVsYXItc2NhbGUoJGluY3JlbWVudCwgJHZhbHVlLCAkcmF0aW86ICRnb2xkZW4pO1xufVxuXG5AbWl4aW4gYm94LXNpemluZygkYm94KSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYm94LXNpemluZ1wiKTtcblxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtc2l6aW5nLCAkYm94LCB3ZWJraXQgbW96IHNwZWMpO1xufVxuIiwiLy8gTmVhdCAxLjcuMlxuLy8gaHR0cDovL25lYXQuYm91cmJvbi5pb1xuLy8gQ29weXJpZ2h0IDIwMTItMjAxNSB0aG91Z2h0Ym90LCBpbmMuXG4vLyBNSVQgTGljZW5zZVxuXG4vLyBIZWxwZXJzXG5AaW1wb3J0IFwibmVhdC1oZWxwZXJzXCI7XG5cbi8vIEdyaWRcbkBpbXBvcnQgXCJncmlkL3ByaXZhdGVcIjtcbkBpbXBvcnQgXCJncmlkL2JveC1zaXppbmdcIjtcbkBpbXBvcnQgXCJncmlkL29tZWdhXCI7XG5AaW1wb3J0IFwiZ3JpZC9vdXRlci1jb250YWluZXJcIjtcbkBpbXBvcnQgXCJncmlkL3NwYW4tY29sdW1uc1wiO1xuQGltcG9ydCBcImdyaWQvcm93XCI7XG5AaW1wb3J0IFwiZ3JpZC9zaGlmdFwiO1xuQGltcG9ydCBcImdyaWQvcGFkXCI7XG5AaW1wb3J0IFwiZ3JpZC9maWxsLXBhcmVudFwiO1xuQGltcG9ydCBcImdyaWQvbWVkaWFcIjtcbkBpbXBvcnQgXCJncmlkL3RvLWRlcHJlY2F0ZVwiO1xuQGltcG9ydCBcImdyaWQvdmlzdWFsLWdyaWRcIjtcbkBpbXBvcnQgXCJncmlkL2Rpc3BsYXktY29udGV4dFwiO1xuQGltcG9ydCBcImdyaWQvZGlyZWN0aW9uLWNvbnRleHRcIjtcbiIsIi8vIEZ1bmN0aW9uc1xuQGltcG9ydCBcImZ1bmN0aW9ucy9wcml2YXRlXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL25ldy1icmVha3BvaW50XCI7XG5cbi8vIFNldHRpbmdzXG5AaW1wb3J0IFwic2V0dGluZ3MvZ3JpZFwiO1xuQGltcG9ydCBcInNldHRpbmdzL3Zpc3VhbC1ncmlkXCI7XG5AaW1wb3J0IFwic2V0dGluZ3MvZGlzYWJsZS13YXJuaW5nc1wiO1xuIiwiLy8gTm90IGZ1bmN0aW9uIGZvciBMaWJzYXNzIGNvbXBhdGliaWxpdHlcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzL2xpYnNhc3MvaXNzdWVzLzM2OFxuQGZ1bmN0aW9uIGlzLW5vdCgkdmFsdWUpIHtcbiAgQHJldHVybiBpZigkdmFsdWUsIGZhbHNlLCB0cnVlKTtcbn1cblxuLy8gQ2hlY2tzIGlmIGEgbnVtYmVyIGlzIGV2ZW5cbkBmdW5jdGlvbiBpcy1ldmVuKCRpbnQpIHtcbiAgQHJldHVybiAkaW50ICUgMiA9PSAwO1xufVxuXG4vLyBDaGVja3MgaWYgYW4gZWxlbWVudCBiZWxvbmdzIHRvIGEgbGlzdCBvciBub3RcbkBmdW5jdGlvbiBiZWxvbmdzLXRvKCR0ZXN0ZWQtaXRlbSwgJGxpc3QpIHtcbiAgQHJldHVybiBpcy1ub3Qobm90LWJlbG9uZ3MtdG8oJHRlc3RlZC1pdGVtLCAkbGlzdCkpO1xufVxuXG5AZnVuY3Rpb24gbm90LWJlbG9uZ3MtdG8oJHRlc3RlZC1pdGVtLCAkbGlzdCkge1xuICBAcmV0dXJuIGlzLW5vdChpbmRleCgkbGlzdCwgJHRlc3RlZC1pdGVtKSk7XG59XG5cbi8vIENvbnRhaW5zIGRpc3BsYXkgdmFsdWVcbkBmdW5jdGlvbiBjb250YWlucy1kaXNwbGF5LXZhbHVlKCRxdWVyeSkge1xuICBAcmV0dXJuIGJlbG9uZ3MtdG8odGFibGUsICRxdWVyeSlcbiAgICAgICBvciBiZWxvbmdzLXRvKGJsb2NrLCAkcXVlcnkpXG4gICAgICAgb3IgYmVsb25ncy10byhpbmxpbmUtYmxvY2ssICRxdWVyeSlcbiAgICAgICBvciBiZWxvbmdzLXRvKGlubGluZSwgJHF1ZXJ5KTtcbn1cblxuLy8gUGFyc2VzIHRoZSBmaXJzdCBhcmd1bWVudCBvZiBzcGFuLWNvbHVtbnMoKVxuQGZ1bmN0aW9uIGNvbnRhaW5lci1zcGFuKCRzcGFuOiAkc3Bhbikge1xuICBAaWYgbGVuZ3RoKCRzcGFuKSA9PSAzIHtcbiAgICAkY29udGFpbmVyLWNvbHVtbnM6IG50aCgkc3BhbiwgMyk7XG4gICAgQHJldHVybiAkY29udGFpbmVyLWNvbHVtbnM7XG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRzcGFuKSA9PSAyIHtcbiAgICAkY29udGFpbmVyLWNvbHVtbnM6IG50aCgkc3BhbiwgMik7XG4gICAgQHJldHVybiAkY29udGFpbmVyLWNvbHVtbnM7XG4gIH1cblxuICBAcmV0dXJuICRncmlkLWNvbHVtbnM7XG59XG5cbkBmdW5jdGlvbiBjb250YWluZXItc2hpZnQoJHNoaWZ0OiAkc2hpZnQpIHtcbiAgJHBhcmVudC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zICFkZWZhdWx0ICFnbG9iYWw7XG5cbiAgQGlmIGxlbmd0aCgkc2hpZnQpID09IDMge1xuICAgICRjb250YWluZXItY29sdW1uczogbnRoKCRzaGlmdCwgMyk7XG4gICAgQHJldHVybiAkY29udGFpbmVyLWNvbHVtbnM7XG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRzaGlmdCkgPT0gMiB7XG4gICAgJGNvbnRhaW5lci1jb2x1bW5zOiBudGgoJHNoaWZ0LCAyKTtcbiAgICBAcmV0dXJuICRjb250YWluZXItY29sdW1ucztcbiAgfVxuXG4gIEByZXR1cm4gJHBhcmVudC1jb2x1bW5zO1xufVxuXG4vLyBHZW5lcmF0ZXMgYSBzdHJpcGVkIGJhY2tncm91bmRcbkBmdW5jdGlvbiBncmFkaWVudC1zdG9wcygkZ3JpZC1jb2x1bW5zLCAkY29sb3I6ICR2aXN1YWwtZ3JpZC1jb2xvcikge1xuICAkdHJhbnNwYXJlbnQ6IHRyYW5zcGFyZW50O1xuXG4gICRjb2x1bW4td2lkdGg6IGZsZXgtZ3JpZCgxLCAkZ3JpZC1jb2x1bW5zKTtcbiAgJGd1dHRlci13aWR0aDogZmxleC1ndXR0ZXIoJGdyaWQtY29sdW1ucyk7XG4gICRjb2x1bW4tb2Zmc2V0OiAkY29sdW1uLXdpZHRoO1xuXG4gICR2YWx1ZXM6ICgkdHJhbnNwYXJlbnQgMCwgJGNvbG9yIDApO1xuXG4gIEBmb3IgJGkgZnJvbSAxIHRvICRncmlkLWNvbHVtbnMqMiB7XG4gICAgQGlmIGlzLWV2ZW4oJGkpIHtcbiAgICAgICR2YWx1ZXM6IGFwcGVuZCgkdmFsdWVzLCAkdHJhbnNwYXJlbnQgJGNvbHVtbi1vZmZzZXQsIGNvbW1hKTtcbiAgICAgICR2YWx1ZXM6IGFwcGVuZCgkdmFsdWVzLCAkY29sb3IgJGNvbHVtbi1vZmZzZXQsIGNvbW1hKTtcbiAgICAgICRjb2x1bW4tb2Zmc2V0OiAkY29sdW1uLW9mZnNldCArICRjb2x1bW4td2lkdGg7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkdmFsdWVzOiBhcHBlbmQoJHZhbHVlcywgJGNvbG9yICRjb2x1bW4tb2Zmc2V0LCBjb21tYSk7XG4gICAgICAkdmFsdWVzOiBhcHBlbmQoJHZhbHVlcywgJHRyYW5zcGFyZW50ICRjb2x1bW4tb2Zmc2V0LCBjb21tYSk7XG4gICAgICAkY29sdW1uLW9mZnNldDogJGNvbHVtbi1vZmZzZXQgKyAkZ3V0dGVyLXdpZHRoO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlcztcbn1cblxuLy8gTGF5b3V0IGRpcmVjdGlvblxuQGZ1bmN0aW9uIGdldC1kaXJlY3Rpb24oJGxheW91dCwgJGRlZmF1bHQpIHtcbiAgJGRpcmVjdGlvbjogbnVsbDtcblxuICBAaWYgdG8tdXBwZXItY2FzZSgkbGF5b3V0KSA9PSBcIkxUUlwiIG9yIHRvLXVwcGVyLWNhc2UoJGxheW91dCkgPT0gXCJSVExcIiB7XG4gICAgJGRpcmVjdGlvbjogZGlyZWN0aW9uLWZyb20tbGF5b3V0KCRsYXlvdXQpO1xuICB9IEBlbHNlIHtcbiAgICAkZGlyZWN0aW9uOiBkaXJlY3Rpb24tZnJvbS1sYXlvdXQoJGRlZmF1bHQpO1xuICB9XG5cbiAgQHJldHVybiAkZGlyZWN0aW9uO1xufVxuXG5AZnVuY3Rpb24gZGlyZWN0aW9uLWZyb20tbGF5b3V0KCRsYXlvdXQpIHtcbiAgJGRpcmVjdGlvbjogbnVsbDtcblxuICBAaWYgdG8tdXBwZXItY2FzZSgkbGF5b3V0KSA9PSBcIkxUUlwiIHtcbiAgICAkZGlyZWN0aW9uOiByaWdodDtcbiAgfSBAZWxzZSB7XG4gICAgJGRpcmVjdGlvbjogbGVmdDtcbiAgfVxuXG4gIEByZXR1cm4gJGRpcmVjdGlvbjtcbn1cblxuQGZ1bmN0aW9uIGdldC1vcHBvc2l0ZS1kaXJlY3Rpb24oJGRpcmVjdGlvbikge1xuICAkb3Bwb3NpdGUtZGlyZWN0aW9uOiBsZWZ0O1xuXG4gIEBpZiAkZGlyZWN0aW9uID09IFwibGVmdFwiIHtcbiAgICAkb3Bwb3NpdGUtZGlyZWN0aW9uOiByaWdodDtcbiAgfVxuXG4gIEByZXR1cm4gJG9wcG9zaXRlLWRpcmVjdGlvbjtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFJldHVybnMgYSBtZWRpYSBjb250ZXh0IChtZWRpYSBxdWVyeSAvIGdyaWQgY29udGV4dCkgdGhhdCBjYW4gYmUgc3RvcmVkIGluIGEgdmFyaWFibGUgYW5kIHBhc3NlZCB0byBgbWVkaWEoKWAgYXMgYSBzaW5nbGUta2V5d29yZCBhcmd1bWVudC4gTWVkaWEgY29udGV4dHMgZGVmaW5lZCB1c2luZyBgbmV3LWJyZWFrcG9pbnRgIGFyZSB1c2VkIGJ5IHRoZSB2aXN1YWwgZ3JpZCwgYXMgbG9uZyBhcyB0aGV5IGFyZSBkZWZpbmVkIGJlZm9yZSBpbXBvcnRpbmcgTmVhdC5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHF1ZXJ5XG4vLy8gICBBIGxpc3Qgb2YgbWVkaWEgcXVlcnkgZmVhdHVyZXMgYW5kIHZhbHVlcy4gRWFjaCBgJGZlYXR1cmVgIHNob3VsZCBoYXZlIGEgY29ycmVzcG9uZGluZyBgJHZhbHVlYC5cbi8vL1xuLy8vICAgSWYgdGhlcmUgaXMgb25seSBhIHNpbmdsZSBgJHZhbHVlYCBpbiBgJHF1ZXJ5YCwgYCRkZWZhdWx0LWZlYXR1cmVgIGlzIGdvaW5nIHRvIGJlIHVzZWQuXG4vLy9cbi8vLyAgIFRoZSBudW1iZXIgb2YgdG90YWwgY29sdW1ucyBpbiB0aGUgZ3JpZCBjYW4gYmUgc2V0IGJ5IHBhc3NpbmcgYCRjb2x1bW5zYCBhdCB0aGUgZW5kIG9mIHRoZSBsaXN0IChvdmVycmlkZXMgYCR0b3RhbC1jb2x1bW5zYCkuIEZvciBhIGxpc3Qgb2YgdmFsaWQgdmFsdWVzIGZvciBgJGZlYXR1cmVgLCBjbGljayBbaGVyZV0oaHR0cDovL3d3dy53My5vcmcvVFIvY3NzMy1tZWRpYXF1ZXJpZXMvI21lZGlhMSkuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlciAodW5pdGxlc3MpfSAkdG90YWwtY29sdW1ucyBbJGdyaWQtY29sdW1uc11cbi8vLyAgIC0gTnVtYmVyIG9mIGNvbHVtbnMgdG8gdXNlIGluIHRoZSBuZXcgZ3JpZCBjb250ZXh0LiBDYW4gYmUgc2V0IGFzIGEgc2hvcnRoYW5kIGluIHRoZSBmaXJzdCBwYXJhbWV0ZXIuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgICRtb2JpbGU6IG5ldy1icmVha3BvaW50KG1heC13aWR0aCA0ODBweCA0KTtcbi8vL1xuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBtZWRpYSgkbW9iaWxlKSB7XG4vLy8gICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDQpO1xuLy8vICAgICB9XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0ODBweCkge1xuLy8vICAgICAuZWxlbWVudCB7XG4vLy8gICAgICAgZGlzcGxheTogYmxvY2s7XG4vLy8gICAgICAgZmxvYXQ6IGxlZnQ7XG4vLy8gICAgICAgbWFyZ2luLXJpZ2h0OiA3LjQyMjk3JTtcbi8vLyAgICAgICB3aWR0aDogMTAwJTtcbi8vLyAgICAgfVxuLy8vICAgICAuZWxlbWVudDpsYXN0LWNoaWxkIHtcbi8vLyAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4vLy8gICAgIH1cbi8vLyAgIH1cblxuQGZ1bmN0aW9uIG5ldy1icmVha3BvaW50KCRxdWVyeTogJGZlYXR1cmUgJHZhbHVlICRjb2x1bW5zLCAkdG90YWwtY29sdW1uczogJGdyaWQtY29sdW1ucykge1xuICBAaWYgbGVuZ3RoKCRxdWVyeSkgPT0gMSB7XG4gICAgJHF1ZXJ5OiAkZGVmYXVsdC1mZWF0dXJlIG50aCgkcXVlcnksIDEpICR0b3RhbC1jb2x1bW5zO1xuICB9IEBlbHNlIGlmIGlzLWV2ZW4obGVuZ3RoKCRxdWVyeSkpIHtcbiAgICAkcXVlcnk6IGFwcGVuZCgkcXVlcnksICR0b3RhbC1jb2x1bW5zKTtcbiAgfVxuXG4gIEBpZiBpcy1ub3QoYmVsb25ncy10bygkcXVlcnksICR2aXN1YWwtZ3JpZC1icmVha3BvaW50cykpIHtcbiAgICAkdmlzdWFsLWdyaWQtYnJlYWtwb2ludHM6IGFwcGVuZCgkdmlzdWFsLWdyaWQtYnJlYWtwb2ludHMsICRxdWVyeSwgY29tbWEpICFnbG9iYWw7XG4gIH1cblxuICBAcmV0dXJuICRxdWVyeTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFNldHMgdGhlIHJlbGF0aXZlIHdpZHRoIG9mIGEgc2luZ2xlIGdyaWQgY29sdW1uLiBUaGUgdW5pdCB1c2VkIHNob3VsZCBiZSB0aGUgc2FtZSBvbmUgdXNlZCB0byBkZWZpbmUgYCRndXR0ZXJgLiBUbyBsZWFybiBtb3JlIGFib3V0IG1vZHVsYXItc2NhbGUoKSBzZWUgW0JvdXJib24gZG9jc10oaHR0cDovL2JvdXJib24uaW8vZG9jcy8jbW9kdWxhci1zY2FsZSkuIFNldCB3aXRoIGEgYCFnbG9iYWxgIGZsYWcuXG4vLy9cbi8vLyBAdHlwZSBOdW1iZXIgKFVuaXQpXG5cbiRjb2x1bW46IG1vZHVsYXItc2NhbGUoMywgMWVtLCAkZ29sZGVuKSAhZGVmYXVsdDtcblxuLy8vIFNldHMgdGhlIHJlbGF0aXZlIHdpZHRoIG9mIGEgc2luZ2xlIGdyaWQgZ3V0dGVyLiBUaGUgdW5pdCB1c2VkIHNob3VsZCBiZSB0aGUgc2FtZSBvbmUgdXNlZCB0byBkZWZpbmUgYCRjb2x1bW5gLiBUbyBsZWFybiBtb3JlIGFib3V0IG1vZHVsYXItc2NhbGUoKSBzZWUgW0JvdXJib24gZG9jc10oaHR0cDovL2JvdXJib24uaW8vZG9jcy8jbW9kdWxhci1zY2FsZSkuIFNldCB3aXRoIHRoZSBgIWdsb2JhbGAgZmxhZy5cbi8vL1xuLy8vIEB0eXBlIE51bWJlciAoVW5pdClcblxuJGd1dHRlcjogbW9kdWxhci1zY2FsZSgxLCAxZW0sICRnb2xkZW4pICFkZWZhdWx0O1xuXG4vLy8gU2V0cyB0aGUgdG90YWwgbnVtYmVyIG9mIGNvbHVtbnMgaW4gdGhlIGdyaWQuIEl0cyB2YWx1ZSBjYW4gYmUgb3ZlcnJpZGRlbiBpbnNpZGUgYSBtZWRpYSBxdWVyeSB1c2luZyB0aGUgYG1lZGlhKClgIG1peGluLiBTZXQgd2l0aCB0aGUgYCFnbG9iYWxgIGZsYWcuXG4vLy9cbi8vLyBAdHlwZSBOdW1iZXIgKFVuaXRsZXNzKVxuXG4kZ3JpZC1jb2x1bW5zOiAxMiAhZGVmYXVsdDtcblxuLy8vIFNldHMgdGhlIG1heC13aWR0aCBwcm9wZXJ0eSBvZiB0aGUgZWxlbWVudCB0aGF0IGluY2x1ZGVzIGBvdXRlci1jb250YWluZXIoKWAuIFRvIGxlYXJuIG1vcmUgYWJvdXQgYGVtKClgIHNlZSBbQm91cmJvbiBkb2NzXShodHRwOi8vYm91cmJvbi5pby9kb2NzLyNweC10by1lbSkuIFNldCB3aXRoIHRoZSBgIWdsb2JhbGAgZmxhZy5cbi8vL1xuLy8vIEB0eXBlIE51bWJlciAoVW5pdClcbi8vL1xuJG1heC13aWR0aDogZW0oMTA4OCkgIWRlZmF1bHQ7XG5cbi8vLyBXaGVuIHNldCB0byB0cnVlLCBpdCBzZXRzIHRoZSBib3gtc2l6aW5nIHByb3BlcnR5IG9mIGFsbCBlbGVtZW50cyB0byBgYm9yZGVyLWJveGAuIFNldCB3aXRoIGEgYCFnbG9iYWxgIGZsYWcuXG4vLy9cbi8vLyBAdHlwZSBCb29sXG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICBodG1sIHtcbi8vLyAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuLy8vXG4vLy8gICAqLCAqOjphZnRlciwgKjo6YmVmb3JlIHtcbi8vLyAgICAgYm94LXNpemluZzogaW5oZXJpdDtcbi8vLyAgIH1cblxuJGJvcmRlci1ib3gtc2l6aW5nOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gU2V0cyB0aGUgZGVmYXVsdCBbbWVkaWEgZmVhdHVyZV0oaHR0cDovL3d3dy53My5vcmcvVFIvY3NzMy1tZWRpYXF1ZXJpZXMvI21lZGlhKSB0aGF0IGBtZWRpYSgpYCBhbmQgYG5ldy1icmVha3BvaW50KClgIHJldmVydCB0byB3aGVuIG9ubHkgYSBicmVha3BvaW50IHZhbHVlIGlzIHBhc3NlZC4gU2V0IHdpdGggYSBgIWdsb2JhbGAgZmxhZy5cbi8vL1xuLy8vIEB0eXBlIFN0cmluZ1xuXG4kZGVmYXVsdC1mZWF0dXJlOiBtaW4td2lkdGg7IC8vIERlZmF1bHQgQG1lZGlhIGZlYXR1cmUgZm9yIHRoZSBicmVha3BvaW50KCkgbWl4aW5cblxuLy8vU2V0cyB0aGUgZGVmYXVsdCBsYXlvdXQgZGlyZWN0aW9uIG9mIHRoZSBncmlkLiBDYW4gYmUgYExUUmAgb3IgYFJUTGAuIFNldCB3aXRoIGEgYCFnbG9iYWxgIGZsYWcuXG4vLy9cbi8vL0B0eXBlIFN0cmluZ1xuXG4kZGVmYXVsdC1sYXlvdXQtZGlyZWN0aW9uOiBMVFIgIWRlZmF1bHQ7XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBEaXNwbGF5cyB0aGUgdmlzdWFsIGdyaWQgd2hlbiBzZXQgdG8gdHJ1ZS4gVGhlIG92ZXJsYWlkIGdyaWQgbWF5IGJlIGZldyBwaXhlbHMgb2ZmIGRlcGVuZGluZyBvbiB0aGUgYnJvd3NlcidzIHJlbmRlcmluZyBlbmdpbmUgYW5kIHBpeGVsIHJvdW5kaW5nIGFsZ29yaXRobS4gU2V0IHdpdGggdGhlIGAhZ2xvYmFsYCBmbGFnLlxuLy8vXG4vLy8gQHR5cGUgQm9vbFxuXG4kdmlzdWFsLWdyaWQ6IGZhbHNlICFkZWZhdWx0O1xuXG4vLy8gU2V0cyB0aGUgdmlzdWFsIGdyaWQgY29sb3IuIFNldCB3aXRoIGAhZ2xvYmFsYCBmbGFnLlxuLy8vXG4vLy8gQHR5cGUgQ29sb3JcblxuJHZpc3VhbC1ncmlkLWNvbG9yOiAjZWVlICFkZWZhdWx0O1xuXG4vLy8gU2V0cyB0aGUgYHotaW5kZXhgIHByb3BlcnR5IG9mIHRoZSB2aXN1YWwgZ3JpZC4gQ2FuIGJlIGBiYWNrYCAoYmVoaW5kIGNvbnRlbnQpIG9yIGBmcm9udGAgKGluIGZyb250IG9mIGNvbnRlbnQpLiBTZXQgd2l0aCBgIWdsb2JhbGAgZmxhZy5cbi8vL1xuLy8vIEB0eXBlIFN0cmluZ1xuXG4kdmlzdWFsLWdyaWQtaW5kZXg6IGJhY2sgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIHRoZSBvcGFjaXR5IHByb3BlcnR5IG9mIHRoZSB2aXN1YWwgZ3JpZC4gU2V0IHdpdGggYCFnbG9iYWxgIGZsYWcuXG4vLy9cbi8vLyBAdHlwZSBOdW1iZXIgKHVuaXRsZXNzKVxuXG4kdmlzdWFsLWdyaWQtb3BhY2l0eTogMC40ICFkZWZhdWx0O1xuXG4kdmlzdWFsLWdyaWQtYnJlYWtwb2ludHM6ICgpICFkZWZhdWx0O1xuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gRGlzYWJsZSBhbGwgZGVwcmVjYXRpb24gd2FybmluZ3MuIERlZmF1bHRzIHRvIGBmYWxzZWAuIFNldCB3aXRoIGEgYCFnbG9iYWxgIGZsYWcuXG4vLy9cbi8vLyBAdHlwZSBCb29sXG5cbiRkaXNhYmxlLXdhcm5pbmdzOiBmYWxzZSAhZGVmYXVsdDtcblxuQG1peGluIC1uZWF0LXdhcm4oJG1lc3NhZ2UpIHtcbiAgQGlmICRkaXNhYmxlLXdhcm5pbmdzID09IGZhbHNlIHtcbiAgICBAd2FybiBcIiN7JG1lc3NhZ2V9XCI7XG4gIH1cbn1cbiIsIiRwYXJlbnQtY29sdW1uczogJGdyaWQtY29sdW1ucyAhZGVmYXVsdDtcbiRmZy1jb2x1bW46ICRjb2x1bW47XG4kZmctZ3V0dGVyOiAkZ3V0dGVyO1xuJGZnLW1heC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zO1xuJGNvbnRhaW5lci1kaXNwbGF5LXRhYmxlOiBmYWxzZSAhZGVmYXVsdDtcbiRsYXlvdXQtZGlyZWN0aW9uOiBMVFIgIWRlZmF1bHQ7XG5cbkBmdW5jdGlvbiBmbGV4LWdyaWQoJGNvbHVtbnMsICRjb250YWluZXItY29sdW1uczogJGZnLW1heC1jb2x1bW5zKSB7XG4gICR3aWR0aDogJGNvbHVtbnMgKiAkZmctY29sdW1uICsgKCRjb2x1bW5zIC0gMSkgKiAkZmctZ3V0dGVyO1xuICAkY29udGFpbmVyLXdpZHRoOiAkY29udGFpbmVyLWNvbHVtbnMgKiAkZmctY29sdW1uICsgKCRjb250YWluZXItY29sdW1ucyAtIDEpICogJGZnLWd1dHRlcjtcbiAgQHJldHVybiBwZXJjZW50YWdlKCR3aWR0aCAvICRjb250YWluZXItd2lkdGgpO1xufVxuXG5AZnVuY3Rpb24gZmxleC1ndXR0ZXIoJGNvbnRhaW5lci1jb2x1bW5zOiAkZmctbWF4LWNvbHVtbnMsICRndXR0ZXI6ICRmZy1ndXR0ZXIpIHtcbiAgJGNvbnRhaW5lci13aWR0aDogJGNvbnRhaW5lci1jb2x1bW5zICogJGZnLWNvbHVtbiArICgkY29udGFpbmVyLWNvbHVtbnMgLSAxKSAqICRmZy1ndXR0ZXI7XG4gIEByZXR1cm4gcGVyY2VudGFnZSgkZ3V0dGVyIC8gJGNvbnRhaW5lci13aWR0aCk7XG59XG5cbkBmdW5jdGlvbiBncmlkLXdpZHRoKCRuKSB7XG4gIEByZXR1cm4gJG4gKiAkZ3ctY29sdW1uICsgKCRuIC0gMSkgKiAkZ3ctZ3V0dGVyO1xufVxuXG5AZnVuY3Rpb24gZ2V0LXBhcmVudC1jb2x1bW5zKCRjb2x1bW5zKSB7XG4gIEBpZiAkY29sdW1ucyAhPSAkZ3JpZC1jb2x1bW5zIHtcbiAgICAkcGFyZW50LWNvbHVtbnM6ICRjb2x1bW5zICFnbG9iYWw7XG4gIH0gQGVsc2Uge1xuICAgICRwYXJlbnQtY29sdW1uczogJGdyaWQtY29sdW1ucyAhZ2xvYmFsO1xuICB9XG5cbiAgQHJldHVybiAkcGFyZW50LWNvbHVtbnM7XG59XG5cbkBmdW5jdGlvbiBpcy1kaXNwbGF5LXRhYmxlKCRjb250YWluZXItaXMtZGlzcGxheS10YWJsZSwgJGRpc3BsYXkpIHtcbiAgQHJldHVybiAkY29udGFpbmVyLWlzLWRpc3BsYXktdGFibGUgPT0gdHJ1ZSBvciAkZGlzcGxheSA9PSB0YWJsZTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuQGlmICRib3JkZXItYm94LXNpemluZyA9PSB0cnVlIHtcbiAgaHRtbCB7IC8vIGh0dHA6Ly9iaXQubHkvMXFrMnRWUlxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIH1cblxuICAqIHtcbiAgICAmLFxuICAgICY6OmFmdGVyLFxuICAgICY6OmJlZm9yZSB7XG4gICAgICBib3gtc2l6aW5nOiBpbmhlcml0O1xuICAgIH1cbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUmVtb3ZlcyB0aGUgZWxlbWVudCdzIGd1dHRlciBtYXJnaW4sIHJlZ2FyZGxlc3Mgb2YgaXRzIHBvc2l0aW9uIGluIHRoZSBncmlkIGhpZXJhcmNoeSBvciBkaXNwbGF5IHByb3BlcnR5LiBJdCBjYW4gdGFyZ2V0IGEgc3BlY2lmaWMgZWxlbWVudCwgb3IgZXZlcnkgYG50aC1jaGlsZGAgb2NjdXJyZW5jZS4gV29ya3Mgb25seSB3aXRoIGBibG9ja2AgbGF5b3V0cy5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHF1ZXJ5IFtibG9ja11cbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzLiBTdXBwb3J0ZWQgYXJndW1lbnRzIGFyZSBgbnRoLWNoaWxkYCBzZWxlY3RvcnMgKHRhcmdldHMgYSBzcGVjaWZpYyBwc2V1ZG8gZWxlbWVudCkgYW5kIGBhdXRvYCAodGFyZ2V0cyBgbGFzdC1jaGlsZGApLlxuLy8vXG4vLy8gICBXaGVuIHBhc3NlZCBhbiBgbnRoLWNoaWxkYCBhcmd1bWVudCBvZiB0eXBlIGAqbmAgd2l0aCBgYmxvY2tgIGRpc3BsYXksIHRoZSBvbWVnYSBtaXhpbiBhdXRvbWF0aWNhbGx5IGFkZHMgYSBjbGVhciB0byB0aGUgYCpuKzFgIHRoIGVsZW1lbnQuIE5vdGUgdGhhdCBjb21wb3NpdGUgYXJndW1lbnRzIHN1Y2ggYXMgYDJuKzFgIGRvIG5vdCBzdXBwb3J0IHRoaXMgZmVhdHVyZS5cbi8vL1xuLy8vICAgKipEZXByZWNhdGlvbiB3YXJuaW5nKio6IFRoZSBvbWVnYSBtaXhpbiB3aWxsIG5vIGxvbmdlciB0YWtlIGEgYCRkaXJlY3Rpb25gIGFyZ3VtZW50LiBUbyBjaGFuZ2UgdGhlIGxheW91dCBkaXJlY3Rpb24sIHVzZSBgcm93KCRkaXJlY3Rpb24pYCBvciBzZXQgYCRkZWZhdWx0LWxheW91dC1kaXJlY3Rpb25gIGluc3RlYWQuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgb21lZ2E7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5udGgtZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIG9tZWdhKDRuKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuLy8vICAgfVxuLy8vXG4vLy8gICAubnRoLWVsZW1lbnQ6bnRoLWNoaWxkKDRuKSB7XG4vLy8gICAgIG1hcmdpbi1yaWdodDogMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLm50aC1lbGVtZW50Om50aC1jaGlsZCg0bisxKSB7XG4vLy8gICAgIGNsZWFyOiBsZWZ0O1xuLy8vICAgfVxuXG5AbWl4aW4gb21lZ2EoJHF1ZXJ5OiBibG9jaywgJGRpcmVjdGlvbjogZGVmYXVsdCkge1xuICAkdGFibGU6IGJlbG9uZ3MtdG8odGFibGUsICRxdWVyeSk7XG4gICRhdXRvOiBiZWxvbmdzLXRvKGF1dG8sICRxdWVyeSk7XG5cbiAgQGlmICRkaXJlY3Rpb24gIT0gZGVmYXVsdCB7XG4gICAgQGluY2x1ZGUgLW5lYXQtd2FybihcIlRoZSBvbWVnYSBtaXhpbiB3aWxsIG5vIGxvbmdlciB0YWtlIGEgJGRpcmVjdGlvbiBhcmd1bWVudC4gVG8gY2hhbmdlIHRoZSBsYXlvdXQgZGlyZWN0aW9uLCB1c2UgdGhlIGRpcmVjdGlvbigpey4uLn0gbWl4aW4uXCIpO1xuICB9IEBlbHNlIHtcbiAgICAkZGlyZWN0aW9uOiBnZXQtZGlyZWN0aW9uKCRsYXlvdXQtZGlyZWN0aW9uLCAkZGVmYXVsdC1sYXlvdXQtZGlyZWN0aW9uKTtcbiAgfVxuXG4gIEBpZiAkdGFibGUge1xuICAgIEBpbmNsdWRlIC1uZWF0LXdhcm4oXCJUaGUgb21lZ2EgbWl4aW4gbm8gbG9uZ2VyIHJlbW92ZXMgcGFkZGluZyBpbiB0YWJsZSBsYXlvdXRzLlwiKTtcbiAgfVxuXG4gIEBpZiBsZW5ndGgoJHF1ZXJ5KSA9PSAxIHtcbiAgICBAaWYgJGF1dG8ge1xuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLSN7JGRpcmVjdGlvbn06IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGVsc2UgaWYgY29udGFpbnMtZGlzcGxheS12YWx1ZSgkcXVlcnkpIGFuZCAkdGFibGUgPT0gZmFsc2Uge1xuICAgICAgbWFyZ2luLSN7JGRpcmVjdGlvbn06IDA7XG4gICAgfVxuXG4gICAgQGVsc2Uge1xuICAgICAgQGluY2x1ZGUgbnRoLWNoaWxkKCRxdWVyeSwgJGRpcmVjdGlvbik7XG4gICAgfVxuICB9IEBlbHNlIGlmIGxlbmd0aCgkcXVlcnkpID09IDIge1xuICAgIEBpZiAkYXV0byB7XG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tI3skZGlyZWN0aW9ufTogMDtcbiAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgIEBpbmNsdWRlIG50aC1jaGlsZChudGgoJHF1ZXJ5LCAxKSwgJGRpcmVjdGlvbik7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAaW5jbHVkZSAtbmVhdC13YXJuKFwiVG9vIG1hbnkgYXJndW1lbnRzIHBhc3NlZCB0byB0aGUgb21lZ2EoKSBtaXhpbi5cIik7XG4gIH1cbn1cblxuQG1peGluIG50aC1jaGlsZCgkcXVlcnksICRkaXJlY3Rpb24pIHtcbiAgJG9wcG9zaXRlLWRpcmVjdGlvbjogZ2V0LW9wcG9zaXRlLWRpcmVjdGlvbigkZGlyZWN0aW9uKTtcblxuICAmOm50aC1jaGlsZCgjeyRxdWVyeX0pIHtcbiAgICBtYXJnaW4tI3skZGlyZWN0aW9ufTogMDtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRxdWVyeSkgPT0gbnVtYmVyIGFuZCB1bml0KCRxdWVyeSkgPT0gXCJuXCIge1xuICAgICY6bnRoLWNoaWxkKCN7JHF1ZXJ5fSsxKSB7XG4gICAgICBjbGVhcjogJG9wcG9zaXRlLWRpcmVjdGlvbjtcbiAgICB9XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIE1ha2VzIGFuIGVsZW1lbnQgYSBvdXRlciBjb250YWluZXIgYnkgY2VudHJpbmcgaXQgaW4gdGhlIHZpZXdwb3J0LCBjbGVhcmluZyBpdHMgZmxvYXRzLCBhbmQgc2V0dGluZyBpdHMgYG1heC13aWR0aGAuXG4vLy8gQWx0aG91Z2ggb3B0aW9uYWwsIHVzaW5nIGBvdXRlci1jb250YWluZXJgIGlzIHJlY29tbWVuZGVkLiBUaGUgbWl4aW4gY2FuIGJlIGNhbGxlZCBvbiBtb3JlIHRoYW4gb25lIGVsZW1lbnQgcGVyIHBhZ2UsIGFzIGxvbmcgYXMgdGhleSBhcmUgbm90IG5lc3RlZC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyIFt1bml0XX0gJGxvY2FsLW1heC13aWR0aCBbJG1heC13aWR0aF1cbi8vLyAgIE1heCB3aWR0aCB0byBiZSBhcHBsaWVkIHRvIHRoZSBlbGVtZW50LiBDYW4gYmUgYSBwZXJjZW50YWdlIG9yIGEgbWVhc3VyZS5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBvdXRlci1jb250YWluZXIoMTAwJSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgICp6b29tOiAxO1xuLy8vICAgICBtYXgtd2lkdGg6IDEwMCU7XG4vLy8gICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5lbGVtZW50OmJlZm9yZSwgLmVsZW1lbnQ6YWZ0ZXIge1xuLy8vICAgICBjb250ZW50OiBcIiBcIjtcbi8vLyAgICAgZGlzcGxheTogdGFibGU7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5lbGVtZW50OmFmdGVyIHtcbi8vLyAgICAgY2xlYXI6IGJvdGg7XG4vLy8gICB9XG5cbkBtaXhpbiBvdXRlci1jb250YWluZXIoJGxvY2FsLW1heC13aWR0aDogJG1heC13aWR0aCkge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgbWF4LXdpZHRoOiAkbG9jYWwtbWF4LXdpZHRoO1xuICBtYXJnaW46IHtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiBhdXRvO1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBTcGVjaWZpZXMgdGhlIG51bWJlciBvZiBjb2x1bW5zIGFuIGVsZW1lbnQgc2hvdWxkIHNwYW4uIElmIHRoZSBzZWxlY3RvciBpcyBuZXN0ZWQgdGhlIG51bWJlciBvZiBjb2x1bW5zIG9mIGl0cyBwYXJlbnQgZWxlbWVudCBzaG91bGQgYmUgcGFzc2VkIGFzIGFuIGFyZ3VtZW50IGFzIHdlbGwuXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRzcGFuXG4vLy8gICBBIGxpc3QgY29udGFpbmluZyBgJGNvbHVtbnNgLCB0aGUgdW5pdGxlc3MgbnVtYmVyIG9mIGNvbHVtbnMgdGhlIGVsZW1lbnQgc3BhbnMgKHJlcXVpcmVkKSwgYW5kIGAkY29udGFpbmVyLWNvbHVtbnNgLCB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgdGhlIHBhcmVudCBlbGVtZW50IHNwYW5zIChvcHRpb25hbCkuXG4vLy9cbi8vLyAgIElmIG9ubHkgb25lIHZhbHVlIGlzIHBhc3NlZCwgaXQgaXMgYXNzdW1lZCB0aGF0IGl0J3MgYCRjb2x1bW5zYCBhbmQgdGhhdCB0aGF0IGAkY29udGFpbmVyLWNvbHVtbnNgIGlzIGVxdWFsIHRvIGAkZ3JpZC1jb2x1bW5zYCwgdGhlIHRvdGFsIG51bWJlciBvZiBjb2x1bW5zIGluIHRoZSBncmlkLlxuLy8vXG4vLy8gICBUaGUgdmFsdWVzIGNhbiBiZSBzZXBhcmF0ZWQgd2l0aCBhbnkgc3RyaW5nIHN1Y2ggYXMgYG9mYCwgYC9gLCBldGMuXG4vLy9cbi8vLyAgIGAkY29sdW1uc2AgYWxzbyBhY2NlcHRzIGRlY2ltYWxzIGZvciB3aGVuIGl0J3MgbmVjZXNzYXJ5IHRvIGJyZWFrIG91dCBvZiB0aGUgc3RhbmRhcmQgZ3JpZC4gRS5nLiBQYXNzaW5nIGAyLjRgIGluIGEgc3RhbmRhcmQgMTIgY29sdW1uIGdyaWQgd2lsbCBkaXZpZGUgdGhlIHJvdyBpbnRvIDUgY29sdW1ucy5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZGlzcGxheSBbYmxvY2tdXG4vLy8gICBTZXRzIHRoZSBkaXNwbGF5IHByb3BlcnR5IG9mIHRoZSBlbGVtZW50LiBCeSBkZWZhdWx0IGl0IHNldHMgdGhlIGRpc3BsYXkgcHJvcGVydCBvZiB0aGUgZWxlbWVudCB0byBgYmxvY2tgLlxuLy8vXG4vLy8gICBJZiBwYXNzZWQgYGJsb2NrLWNvbGxhcHNlYCwgaXQgYWxzbyByZW1vdmVzIHRoZSBtYXJnaW4gZ3V0dGVyIGJ5IGFkZGluZyBpdCB0byB0aGUgZWxlbWVudCB3aWR0aC5cbi8vL1xuLy8vICAgSWYgcGFzc2VkIGB0YWJsZWAsIGl0IHNldHMgdGhlIGRpc3BsYXkgcHJvcGVydHkgdG8gYHRhYmxlLWNlbGxgIGFuZCBjYWxjdWxhdGVzIHRoZSB3aWR0aCBvZiB0aGUgZWxlbWVudCB3aXRob3V0IHRha2luZyBndXR0ZXJzIGludG8gY29uc2lkZXJhdGlvbi4gVGhlIHJlc3VsdCBkb2VzIG5vdCBhbGlnbiB3aXRoIHRoZSBibG9jay1iYXNlZCBncmlkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg2KTtcbi8vL1xuLy8vICAgIC5uZXN0ZWQtZWxlbWVudCB7XG4vLy8gICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMiBvZiA2KTtcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgZGlzcGxheTogYmxvY2s7XG4vLy8gICAgIGZsb2F0OiBsZWZ0O1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDIuMzU3NjUlO1xuLy8vICAgICB3aWR0aDogNDguODIxMTclO1xuLy8vICAgfVxuLy8vXG4vLy8gICAuZWxlbWVudDpsYXN0LWNoaWxkIHtcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuLy8vICAgfVxuLy8vXG4vLy8gICAuZWxlbWVudCAubmVzdGVkLWVsZW1lbnQge1xuLy8vICAgICBkaXNwbGF5OiBibG9jaztcbi8vLyAgICAgZmxvYXQ6IGxlZnQ7XG4vLy8gICAgIG1hcmdpbi1yaWdodDogNC44MjkxNiU7XG4vLy8gICAgIHdpZHRoOiAzMC4xMTM4OSU7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5lbGVtZW50IC5uZXN0ZWQtZWxlbWVudDpsYXN0LWNoaWxkIHtcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuLy8vICAgfVxuXG5AbWl4aW4gc3Bhbi1jb2x1bW5zKCRzcGFuOiAkY29sdW1ucyBvZiAkY29udGFpbmVyLWNvbHVtbnMsICRkaXNwbGF5OiBibG9jaykge1xuICAkY29sdW1uczogbnRoKCRzcGFuLCAxKTtcbiAgJGNvbnRhaW5lci1jb2x1bW5zOiBjb250YWluZXItc3Bhbigkc3Bhbik7XG5cbiAgJHBhcmVudC1jb2x1bW5zOiBnZXQtcGFyZW50LWNvbHVtbnMoJGNvbnRhaW5lci1jb2x1bW5zKSAhZ2xvYmFsO1xuXG4gICRkaXJlY3Rpb246IGdldC1kaXJlY3Rpb24oJGxheW91dC1kaXJlY3Rpb24sICRkZWZhdWx0LWxheW91dC1kaXJlY3Rpb24pO1xuICAkb3Bwb3NpdGUtZGlyZWN0aW9uOiBnZXQtb3Bwb3NpdGUtZGlyZWN0aW9uKCRkaXJlY3Rpb24pO1xuXG4gICRkaXNwbGF5LXRhYmxlOiBpcy1kaXNwbGF5LXRhYmxlKCRjb250YWluZXItZGlzcGxheS10YWJsZSwgJGRpc3BsYXkpO1xuXG4gIEBpZiAkZGlzcGxheS10YWJsZSAge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgd2lkdGg6IHBlcmNlbnRhZ2UoJGNvbHVtbnMgLyAkY29udGFpbmVyLWNvbHVtbnMpO1xuICB9IEBlbHNlIHtcbiAgICBmbG9hdDogI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTtcblxuICAgIEBpZiAkZGlzcGxheSAhPSBuby1kaXNwbGF5IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIEBpZiAkZGlzcGxheSA9PSBjb2xsYXBzZSB7XG4gICAgICBAaW5jbHVkZSAtbmVhdC13YXJuKFwiVGhlICdjb2xsYXBzZScgYXJndW1lbnQgd2lsbCBiZSBkZXByZWNhdGVkLiBVc2UgJ2Jsb2NrLWNvbGxhcHNlJyBpbnN0ZWFkLlwiKTtcbiAgICB9XG5cbiAgICBAaWYgJGRpc3BsYXkgPT0gY29sbGFwc2Ugb3IgJGRpc3BsYXkgPT0gYmxvY2stY29sbGFwc2Uge1xuICAgICAgd2lkdGg6IGZsZXgtZ3JpZCgkY29sdW1ucywgJGNvbnRhaW5lci1jb2x1bW5zKSArIGZsZXgtZ3V0dGVyKCRjb250YWluZXItY29sdW1ucyk7XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIHdpZHRoOiBmbGV4LWdyaWQoJGNvbHVtbnMsICRjb250YWluZXItY29sdW1ucyk7XG4gICAgICB9XG5cbiAgICB9IEBlbHNlIHtcbiAgICAgIG1hcmdpbi0jeyRkaXJlY3Rpb259OiBmbGV4LWd1dHRlcigkY29udGFpbmVyLWNvbHVtbnMpO1xuICAgICAgd2lkdGg6IGZsZXgtZ3JpZCgkY29sdW1ucywgJGNvbnRhaW5lci1jb2x1bW5zKTtcblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLSN7JGRpcmVjdGlvbn06IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBEZXNpZ25hdGVzIHRoZSBlbGVtZW50IGFzIGEgcm93IG9mIGNvbHVtbnMgaW4gdGhlIGdyaWQgbGF5b3V0LiBJdCBjbGVhcnMgdGhlIGZsb2F0cyBvbiB0aGUgZWxlbWVudCBhbmQgc2V0cyBpdHMgZGlzcGxheSBwcm9wZXJ0eS4gUm93cyBjYW4ndCBiZSBuZXN0ZWQsIGJ1dCB0aGVyZSBjYW4gYmUgbW9yZSB0aGFuIG9uZSByb3cgZWxlbWVudOKAlHdpdGggZGlmZmVyZW50IGRpc3BsYXkgcHJvcGVydGllc+KAlHBlciBsYXlvdXQuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGRpc3BsYXkgW2RlZmF1bHRdXG4vLy8gIFNldHMgdGhlIGRpc3BsYXkgcHJvcGVydHkgb2YgdGhlIGVsZW1lbnQgYW5kIHRoZSBkaXNwbGF5IGNvbnRleHQgdGhhdCB3aWxsIGJlIHVzZWQgYnkgaXRzIGNoaWxkcmVuLiBDYW4gYmUgYGJsb2NrYCBvciBgdGFibGVgLlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRkaXJlY3Rpb24gWyRkZWZhdWx0LWxheW91dC1kaXJlY3Rpb25dXG4vLy8gIFNldHMgdGhlIGxheW91dCBkaXJlY3Rpb24uIENhbiBiZSBgTFRSYCAobGVmdC10by1yaWdodCkgb3IgYFJUTGAgKHJpZ2h0LXRvLWxlZnQpLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gIC5lbGVtZW50IHtcbi8vLyAgICBAaW5jbHVkZSByb3coKTtcbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAuZWxlbWVudCB7XG4vLy8gICAgKnpvb206IDE7XG4vLy8gICAgZGlzcGxheTogYmxvY2s7XG4vLy8gIH1cbi8vL1xuLy8vIC5lbGVtZW50OmJlZm9yZSwgLmVsZW1lbnQ6YWZ0ZXIge1xuLy8vICAgY29udGVudDogXCIgXCI7XG4vLy8gICBkaXNwbGF5OiB0YWJsZTtcbi8vLyB9XG4vLy9cbi8vLyAuZWxlbWVudDphZnRlciB7XG4vLy8gICBjbGVhcjogYm90aDtcbi8vLyB9XG5cbkBtaXhpbiByb3coJGRpc3BsYXk6IGRlZmF1bHQsICRkaXJlY3Rpb246ICRkZWZhdWx0LWxheW91dC1kaXJlY3Rpb24pIHtcbiAgQGlmICRkaXJlY3Rpb24gIT0gJGRlZmF1bHQtbGF5b3V0LWRpcmVjdGlvbiB7XG4gICAgQGluY2x1ZGUgLW5lYXQtd2FybihcIlRoZSAkZGlyZWN0aW9uIGFyZ3VtZW50IHdpbGwgYmUgZGVwcmVjYXRlZCBpbiBmdXR1cmUgdmVyc2lvbnMgaW4gZmF2b3Igb2YgdGhlIGRpcmVjdGlvbigpey4uLn0gbWl4aW4uXCIpO1xuICB9XG5cbiAgJGxheW91dC1kaXJlY3Rpb246ICRkaXJlY3Rpb24gIWdsb2JhbDtcblxuICBAaWYgJGRpc3BsYXkgIT0gZGVmYXVsdCB7XG4gICAgQGluY2x1ZGUgLW5lYXQtd2FybihcIlRoZSAkZGlzcGxheSBhcmd1bWVudCB3aWxsIGJlIGRlcHJlY2F0ZWQgaW4gZnV0dXJlIHZlcnNpb25zIGluIGZhdm9yIG9mIHRoZSBkaXNwbGF5KCl7Li4ufSBtaXhpbi5cIik7XG4gIH1cblxuICBAaWYgJGRpc3BsYXkgPT0gdGFibGUge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIEBpbmNsdWRlIGZpbGwtcGFyZW50O1xuICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gICAgJGNvbnRhaW5lci1kaXNwbGF5LXRhYmxlOiB0cnVlICFnbG9iYWw7XG4gIH0gQGVsc2Uge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICRjb250YWluZXItZGlzcGxheS10YWJsZTogZmFsc2UgIWdsb2JhbDtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gVHJhbnNsYXRlcyBhbiBlbGVtZW50IGhvcml6b250YWxseSBieSBhIG51bWJlciBvZiBjb2x1bW5zLiBQb3NpdGl2ZSBhcmd1bWVudHMgc2hpZnQgdGhlIGVsZW1lbnQgdG8gdGhlIGFjdGl2ZSBsYXlvdXQgZGlyZWN0aW9uLCB3aGlsZSBuZWdhdGl2ZSBvbmVzIHNoaWZ0IGl0IHRvIHRoZSBvcHBvc2l0ZSBkaXJlY3Rpb24uXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlciAodW5pdGxlc3MpfSAkbi1jb2x1bW5zIFsxXVxuLy8vICAgTnVtYmVyIG9mIGNvbHVtbnMgYnkgd2hpY2ggdGhlIGVsZW1lbnQgc2hpZnRzLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHNoaWZ0KC0zKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBvdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgbWFyZ2luLWxlZnQ6IC0yNS41ODk0MSU7XG4vLy8gICB9XG5cbkBtaXhpbiBzaGlmdCgkbi1jb2x1bW5zOiAxKSB7XG4gIEBpbmNsdWRlIHNoaWZ0LWluLWNvbnRleHQoJG4tY29sdW1ucyk7XG59XG5cbi8vLyBUcmFuc2xhdGVzIGFuIGVsZW1lbnQgaG9yaXpvbnRhbGx5IGJ5IGEgbnVtYmVyIG9mIGNvbHVtbnMsIGluIGEgc3BlY2lmaWMgbmVzdGluZyBjb250ZXh0LlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkc2hpZnRcbi8vLyAgIEEgbGlzdCBjb250YWluaW5nIHRoZSBudW1iZXIgb2YgY29sdW1ucyB0byBzaGlmdCAoYCRjb2x1bW5zYCkgYW5kIHRoZSBudW1iZXIgb2YgY29sdW1ucyBvZiB0aGUgcGFyZW50IGVsZW1lbnQgKGAkY29udGFpbmVyLWNvbHVtbnNgKS5cbi8vL1xuLy8vICAgVGhlIHR3byB2YWx1ZXMgY2FuIGJlIHNlcGFyYXRlZCB3aXRoIGFueSBzdHJpbmcgc3VjaCBhcyBgb2ZgLCBgL2AsIGV0Yy5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBzaGlmdCgtMyBvZiA2KTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBvdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgbWFyZ2luLWxlZnQ6IC01Mi40MTQ1OCU7XG4vLy8gICB9XG5cbkBtaXhpbiBzaGlmdC1pbi1jb250ZXh0KCRzaGlmdDogJGNvbHVtbnMgb2YgJGNvbnRhaW5lci1jb2x1bW5zKSB7XG4gICRuLWNvbHVtbnM6IG50aCgkc2hpZnQsIDEpO1xuICAkcGFyZW50LWNvbHVtbnM6IGNvbnRhaW5lci1zaGlmdCgkc2hpZnQpICFnbG9iYWw7XG5cbiAgJGRpcmVjdGlvbjogZ2V0LWRpcmVjdGlvbigkbGF5b3V0LWRpcmVjdGlvbiwgJGRlZmF1bHQtbGF5b3V0LWRpcmVjdGlvbik7XG4gICRvcHBvc2l0ZS1kaXJlY3Rpb246IGdldC1vcHBvc2l0ZS1kaXJlY3Rpb24oJGRpcmVjdGlvbik7XG5cbiAgbWFyZ2luLSN7JG9wcG9zaXRlLWRpcmVjdGlvbn06ICRuLWNvbHVtbnMgKiBmbGV4LWdyaWQoMSwgJHBhcmVudC1jb2x1bW5zKSArICRuLWNvbHVtbnMgKiBmbGV4LWd1dHRlcigkcGFyZW50LWNvbHVtbnMpO1xuXG4gIC8vIFJlc2V0IG5lc3RpbmcgY29udGV4dFxuICAkcGFyZW50LWNvbHVtbnM6ICRncmlkLWNvbHVtbnMgIWdsb2JhbDtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEFkZHMgcGFkZGluZyB0byB0aGUgZWxlbWVudC5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHBhZGRpbmcgW2ZsZXgtZ3V0dGVyKCldXG4vLy8gICBBIGxpc3Qgb2YgcGFkZGluZyB2YWx1ZShzKSB0byB1c2UuIFBhc3NpbmcgYGRlZmF1bHRgIGluIHRoZSBsaXN0IHdpbGwgcmVzdWx0IGluIHVzaW5nIHRoZSBndXR0ZXIgd2lkdGggYXMgYSBwYWRkaW5nIHZhbHVlLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHBhZCgzMHB4IC0yMHB4IDEwcHggZGVmYXVsdCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIHBhZGRpbmc6IDMwcHggLTIwcHggMTBweCAyLjM1NzY1JTtcbi8vLyAgIH1cblxuQG1peGluIHBhZCgkcGFkZGluZzogZmxleC1ndXR0ZXIoKSkge1xuICAkcGFkZGluZy1saXN0OiBudWxsO1xuICBAZWFjaCAkdmFsdWUgaW4gJHBhZGRpbmcge1xuICAgICR2YWx1ZTogaWYoJHZhbHVlID09ICdkZWZhdWx0JywgZmxleC1ndXR0ZXIoKSwgJHZhbHVlKTtcbiAgICAkcGFkZGluZy1saXN0OiBqb2luKCRwYWRkaW5nLWxpc3QsICR2YWx1ZSk7XG4gIH1cbiAgcGFkZGluZzogJHBhZGRpbmctbGlzdDtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEZvcmNlcyB0aGUgZWxlbWVudCB0byBmaWxsIGl0cyBwYXJlbnQgY29udGFpbmVyLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGZpbGwtcGFyZW50O1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICB3aWR0aDogMTAwJTtcbi8vLyAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbi8vLyAgIH1cblxuQG1peGluIGZpbGwtcGFyZW50KCkge1xuICB3aWR0aDogMTAwJTtcblxuICBAaWYgJGJvcmRlci1ib3gtc2l6aW5nID09IGZhbHNlIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBPdXRwdXRzIGEgbWVkaWEtcXVlcnkgYmxvY2sgd2l0aCBhbiBvcHRpb25hbCBncmlkIGNvbnRleHQgKHRoZSB0b3RhbCBudW1iZXIgb2YgY29sdW1ucyB1c2VkIGluIHRoZSBncmlkKS5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHF1ZXJ5XG4vLy8gICBBIGxpc3Qgb2YgbWVkaWEgcXVlcnkgZmVhdHVyZXMgYW5kIHZhbHVlcywgd2hlcmUgZWFjaCBgJGZlYXR1cmVgIHNob3VsZCBoYXZlIGEgY29ycmVzcG9uZGluZyBgJHZhbHVlYC5cbi8vLyAgIEZvciBhIGxpc3Qgb2YgdmFsaWQgdmFsdWVzIGZvciBgJGZlYXR1cmVgLCBjbGljayBbaGVyZV0oaHR0cDovL3d3dy53My5vcmcvVFIvY3NzMy1tZWRpYXF1ZXJpZXMvI21lZGlhMSkuXG4vLy9cbi8vLyAgIElmIHRoZXJlIGlzIG9ubHkgYSBzaW5nbGUgYCR2YWx1ZWAgaW4gYCRxdWVyeWAsIGAkZGVmYXVsdC1mZWF0dXJlYCBpcyBnb2luZyB0byBiZSB1c2VkLlxuLy8vXG4vLy8gICBUaGUgbnVtYmVyIG9mIHRvdGFsIGNvbHVtbnMgaW4gdGhlIGdyaWQgY2FuIGJlIHNldCBieSBwYXNzaW5nIGAkY29sdW1uc2AgYXQgdGhlIGVuZCBvZiB0aGUgbGlzdCAob3ZlcnJpZGVzIGAkdG90YWwtY29sdW1uc2ApLlxuLy8vXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlciAodW5pdGxlc3MpfSAkdG90YWwtY29sdW1ucyBbJGdyaWQtY29sdW1uc11cbi8vLyAgIC0gTnVtYmVyIG9mIGNvbHVtbnMgdG8gdXNlIGluIHRoZSBuZXcgZ3JpZCBjb250ZXh0LiBDYW4gYmUgc2V0IGFzIGEgc2hvcnRoYW5kIGluIHRoZSBmaXJzdCBwYXJhbWV0ZXIuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5yZXNwb25zaXZlLWVsZW1lbnQge1xuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoNzY5cHgpIHtcbi8vLyAgICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDYpO1xuLy8vICAgICAgfVxuLy8vICAgfVxuLy8vXG4vLy8gIC5uZXctY29udGV4dC1lbGVtZW50IHtcbi8vLyAgICBAaW5jbHVkZSBtZWRpYShtaW4td2lkdGggMzIwcHggbWF4LXdpZHRoIDQ4MHB4LCA2KSB7XG4vLy8gICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNik7XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OXB4KSB7XG4vLy8gICAgLnJlc3BvbnNpdmUtZWxlbWVudCB7XG4vLy8gICAgICBkaXNwbGF5OiBibG9jaztcbi8vLyAgICAgIGZsb2F0OiBsZWZ0O1xuLy8vICAgICAgbWFyZ2luLXJpZ2h0OiAyLjM1NzY1JTtcbi8vLyAgICAgIHdpZHRoOiA0OC44MjExNyU7XG4vLy8gICAgfVxuLy8vXG4vLy8gICAgLnJlc3BvbnNpdmUtZWxlbWVudDpsYXN0LWNoaWxkIHtcbi8vLyAgICAgIG1hcmdpbi1yaWdodDogMDtcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzMjBweCkgYW5kIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4vLy8gICAgLm5ldy1jb250ZXh0LWVsZW1lbnQge1xuLy8vICAgICAgZGlzcGxheTogYmxvY2s7XG4vLy8gICAgICBmbG9hdDogbGVmdDtcbi8vLyAgICAgIG1hcmdpbi1yaWdodDogNC44MjkxNiU7XG4vLy8gICAgICB3aWR0aDogMTAwJTtcbi8vLyAgICB9XG4vLy9cbi8vLyAgICAubmV3LWNvbnRleHQtZWxlbWVudDpsYXN0LWNoaWxkIHtcbi8vLyAgICAgIG1hcmdpbi1yaWdodDogMDtcbi8vLyAgICB9XG4vLy8gIH1cblxuQG1peGluIG1lZGlhKCRxdWVyeTogJGZlYXR1cmUgJHZhbHVlICRjb2x1bW5zLCAkdG90YWwtY29sdW1uczogJGdyaWQtY29sdW1ucykge1xuICBAaWYgbGVuZ3RoKCRxdWVyeSkgPT0gMSB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKCRkZWZhdWx0LWZlYXR1cmU6IG50aCgkcXVlcnksIDEpKSB7XG4gICAgICAkZGVmYXVsdC1ncmlkLWNvbHVtbnM6ICRncmlkLWNvbHVtbnM7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiAkdG90YWwtY29sdW1ucyAhZ2xvYmFsO1xuICAgICAgQGNvbnRlbnQ7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiAkZGVmYXVsdC1ncmlkLWNvbHVtbnMgIWdsb2JhbDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgICRsb29wLXRvOiBsZW5ndGgoJHF1ZXJ5KTtcbiAgICAkbWVkaWEtcXVlcnk6IFwic2NyZWVuIGFuZCBcIjtcbiAgICAkZGVmYXVsdC1ncmlkLWNvbHVtbnM6ICRncmlkLWNvbHVtbnM7XG4gICAgJGdyaWQtY29sdW1uczogJHRvdGFsLWNvbHVtbnMgIWdsb2JhbDtcblxuICAgIEBpZiBpcy1ub3QoaXMtZXZlbihsZW5ndGgoJHF1ZXJ5KSkpIHtcbiAgICAgICRncmlkLWNvbHVtbnM6IG50aCgkcXVlcnksICRsb29wLXRvKSAhZ2xvYmFsO1xuICAgICAgJGxvb3AtdG86ICRsb29wLXRvIC0gMTtcbiAgICB9XG5cbiAgICAkaTogMTtcbiAgICBAd2hpbGUgJGkgPD0gJGxvb3AtdG8ge1xuICAgICAgJG1lZGlhLXF1ZXJ5OiAkbWVkaWEtcXVlcnkgKyBcIihcIiArIG50aCgkcXVlcnksICRpKSArIFwiOiBcIiArIG50aCgkcXVlcnksICRpICsgMSkgKyBcIikgXCI7XG5cbiAgICAgIEBpZiAoJGkgKyAxKSAhPSAkbG9vcC10byB7XG4gICAgICAgICRtZWRpYS1xdWVyeTogJG1lZGlhLXF1ZXJ5ICsgXCJhbmQgXCI7XG4gICAgICB9XG5cbiAgICAgICRpOiAkaSArIDI7XG4gICAgfVxuXG4gICAgQG1lZGlhICN7JG1lZGlhLXF1ZXJ5fSB7XG4gICAgICBAY29udGVudDtcbiAgICAgICRncmlkLWNvbHVtbnM6ICRkZWZhdWx0LWdyaWQtY29sdW1ucyAhZ2xvYmFsO1xuICAgIH1cbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG5AbWl4aW4gYnJlYWtwb2ludCgkcXVlcnk6JGZlYXR1cmUgJHZhbHVlICRjb2x1bW5zLCAkdG90YWwtY29sdW1uczogJGdyaWQtY29sdW1ucykge1xuICBAaW5jbHVkZSAtbmVhdC13YXJuKFwiVGhlIGJyZWFrcG9pbnQoKSBtaXhpbiB3YXMgcmVuYW1lZCB0byBtZWRpYSgpIGluIE5lYXQgMS4wLiBQbGVhc2UgdXBkYXRlIHlvdXIgcHJvamVjdCB3aXRoIHRoZSBuZXcgc3ludGF4IGJlZm9yZSB0aGUgbmV4dCB2ZXJzaW9uIGJ1bXAuXCIpO1xuXG4gIEBpZiBsZW5ndGgoJHF1ZXJ5KSA9PSAxIHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAoJGRlZmF1bHQtZmVhdHVyZTogbnRoKCRxdWVyeSwgMSkpIHtcbiAgICAgICRkZWZhdWx0LWdyaWQtY29sdW1uczogJGdyaWQtY29sdW1ucztcbiAgICAgICRncmlkLWNvbHVtbnM6ICR0b3RhbC1jb2x1bW5zO1xuICAgICAgQGNvbnRlbnQ7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiAkZGVmYXVsdC1ncmlkLWNvbHVtbnM7XG4gICAgfVxuICB9IEBlbHNlIGlmIGxlbmd0aCgkcXVlcnkpID09IDIge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChudGgoJHF1ZXJ5LCAxKTogbnRoKCRxdWVyeSwgMikpIHtcbiAgICAgICRkZWZhdWx0LWdyaWQtY29sdW1uczogJGdyaWQtY29sdW1ucztcbiAgICAgICRncmlkLWNvbHVtbnM6ICR0b3RhbC1jb2x1bW5zO1xuICAgICAgQGNvbnRlbnQ7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiAkZGVmYXVsdC1ncmlkLWNvbHVtbnM7XG4gICAgfVxuICB9IEBlbHNlIGlmIGxlbmd0aCgkcXVlcnkpID09IDMge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChudGgoJHF1ZXJ5LCAxKTogbnRoKCRxdWVyeSwgMikpIHtcbiAgICAgICRkZWZhdWx0LWdyaWQtY29sdW1uczogJGdyaWQtY29sdW1ucztcbiAgICAgICRncmlkLWNvbHVtbnM6IG50aCgkcXVlcnksIDMpO1xuICAgICAgQGNvbnRlbnQ7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiAkZGVmYXVsdC1ncmlkLWNvbHVtbnM7XG4gICAgfVxuICB9IEBlbHNlIGlmIGxlbmd0aCgkcXVlcnkpID09IDQge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChudGgoJHF1ZXJ5LCAxKTogbnRoKCRxdWVyeSwgMikpIGFuZCAobnRoKCRxdWVyeSwgMyk6IG50aCgkcXVlcnksIDQpKSB7XG4gICAgICAkZGVmYXVsdC1ncmlkLWNvbHVtbnM6ICRncmlkLWNvbHVtbnM7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiAkdG90YWwtY29sdW1ucztcbiAgICAgIEBjb250ZW50O1xuICAgICAgJGdyaWQtY29sdW1uczogJGRlZmF1bHQtZ3JpZC1jb2x1bW5zO1xuICAgIH1cbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHF1ZXJ5KSA9PSA1IHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobnRoKCRxdWVyeSwgMSk6IG50aCgkcXVlcnksIDIpKSBhbmQgKG50aCgkcXVlcnksIDMpOiBudGgoJHF1ZXJ5LCA0KSkge1xuICAgICAgJGRlZmF1bHQtZ3JpZC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zO1xuICAgICAgJGdyaWQtY29sdW1uczogbnRoKCRxdWVyeSwgNSk7XG4gICAgICBAY29udGVudDtcbiAgICAgICRncmlkLWNvbHVtbnM6ICRkZWZhdWx0LWdyaWQtY29sdW1ucztcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBpbmNsdWRlIC1uZWF0LXdhcm4oXCJXcm9uZyBudW1iZXIgb2YgYXJndW1lbnRzIGZvciBicmVha3BvaW50KCkuIFJlYWQgdGhlIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgZGV0YWlscy5cIik7XG4gIH1cbn1cblxuQG1peGluIG50aC1vbWVnYSgkbnRoLCAkZGlzcGxheTogYmxvY2ssICRkaXJlY3Rpb246IGRlZmF1bHQpIHtcbiAgQGluY2x1ZGUgLW5lYXQtd2FybihcIlRoZSBudGgtb21lZ2EoKSBtaXhpbiBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlIG9tZWdhKCkgaW5zdGVhZC5cIik7XG4gIEBpbmNsdWRlIG9tZWdhKCRudGggJGRpc3BsYXksICRkaXJlY3Rpb24pO1xufVxuXG4vLy8gUmVzZXRzIHRoZSBhY3RpdmUgZGlzcGxheSBwcm9wZXJ0eSB0byBgYmxvY2tgLiBQYXJ0aWN1bGFybHkgdXNlZnVsIHdoZW4gY2hhbmdpbmcgdGhlIGRpc3BsYXkgcHJvcGVydHkgaW4gYSBzaW5nbGUgcm93LlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHJvdyh0YWJsZSk7XG4vLy8gICAgIC8vIENvbnRleHQgY2hhbmdlZCB0byB0YWJsZSBkaXNwbGF5XG4vLy8gICB9XG4vLy9cbi8vLyAgIEBpbmNsdWRlIHJlc2V0LWRpc3BsYXk7XG4vLy8gICAvLyBDb250ZXh0IGlzIHJlc2V0IHRvIGJsb2NrIGRpc3BsYXlcblxuQG1peGluIHJlc2V0LWRpc3BsYXkge1xuICAkY29udGFpbmVyLWRpc3BsYXktdGFibGU6IGZhbHNlICFnbG9iYWw7XG4gIEBpbmNsdWRlIC1uZWF0LXdhcm4oXCJSZXNldHRpbmcgJGRpc3BsYXkgd2lsbCBiZSBkZXByZWNhdGVkIGluIGZ1dHVyZSB2ZXJzaW9ucyBpbiBmYXZvciBvZiB0aGUgZGlzcGxheSgpey4uLn0gbWl4aW4uXCIpO1xufVxuXG4vLy8gUmVzZXRzIHRoZSBhY3RpdmUgbGF5b3V0IGRpcmVjdGlvbiB0byB0aGUgZGVmYXVsdCB2YWx1ZSBzZXQgaW4gYCRkZWZhdWx0LWxheW91dC1kaXJlY3Rpb25gLiBQYXJ0aWN1bGFybHkgdXNlZnVsIHdoZW4gY2hhbmdpbmcgdGhlIGxheW91dCBkaXJlY3Rpb24gaW4gYSBzaW5nbGUgcm93LlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHJvdygkZGlyZWN0aW9uOiBSVEwpO1xuLy8vICAgICAvLyBDb250ZXh0IGNoYW5nZWQgdG8gcmlnaHQtdG8tbGVmdFxuLy8vICAgfVxuLy8vXG4vLy8gICBAaW5jbHVkZSByZXNldC1sYXlvdXQtZGlyZWN0aW9uO1xuLy8vICAgLy8gQ29udGV4dCBpcyByZXNldCB0byBsZWZ0LXRvLXJpZ2h0XG5cbkBtaXhpbiByZXNldC1sYXlvdXQtZGlyZWN0aW9uIHtcbiAgJGxheW91dC1kaXJlY3Rpb246ICRkZWZhdWx0LWxheW91dC1kaXJlY3Rpb24gIWdsb2JhbDtcbiAgQGluY2x1ZGUgLW5lYXQtd2FybihcIlJlc2V0dGluZyAkZGlyZWN0aW9uIHdpbGwgYmUgZGVwcmVjYXRlZCBpbiBmdXR1cmUgdmVyc2lvbnMgaW4gZmF2b3Igb2YgdGhlIGRpcmVjdGlvbigpey4uLn0gbWl4aW4uXCIpO1xufVxuXG4vLy8gUmVzZXRzIGJvdGggdGhlIGFjdGl2ZSBsYXlvdXQgZGlyZWN0aW9uIGFuZCB0aGUgYWN0aXZlIGRpc3BsYXkgcHJvcGVydHkuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgcm93KHRhYmxlLCBSVEwpO1xuLy8vICAgICAvLyBDb250ZXh0IGNoYW5nZWQgdG8gdGFibGUgdGFibGUgYW5kIHJpZ2h0LXRvLWxlZnRcbi8vLyAgIH1cbi8vL1xuLy8vICAgQGluY2x1ZGUgcmVzZXQtYWxsO1xuLy8vICAgLy8gQ29udGV4dCBpcyByZXNldCB0byBibG9jayBkaXNwbGF5IGFuZCBsZWZ0LXRvLXJpZ2h0XG5cbkBtaXhpbiByZXNldC1hbGwge1xuICBAaW5jbHVkZSByZXNldC1kaXNwbGF5O1xuICBAaW5jbHVkZSByZXNldC1sYXlvdXQtZGlyZWN0aW9uO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tZ3JhZGllbnQoJHZhbHVlcy4uLikge1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWZ0LCAkdmFsdWVzKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW1vei1saW5lYXItZ3JhZGllbnQobGVmdCwgJHZhbHVlcyk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC1tcy1saW5lYXItZ3JhZGllbnQobGVmdCwgJHZhbHVlcyk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudChsZWZ0LCAkdmFsdWVzKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdW5xdW90ZShcImxpbmVhci1ncmFkaWVudCh0byBsZWZ0LCAjeyR2YWx1ZXN9KVwiKTtcbn1cblxuQGlmICR2aXN1YWwtZ3JpZCA9PSB0cnVlIG9yICR2aXN1YWwtZ3JpZCA9PSB5ZXMge1xuICBib2R5OmJlZm9yZSB7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tZ3JhZGllbnQoZ3JhZGllbnQtc3RvcHMoJGdyaWQtY29sdW1ucykpO1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBsZWZ0OiAwO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIG1heC13aWR0aDogJG1heC13aWR0aDtcbiAgICBvcGFjaXR5OiAkdmlzdWFsLWdyaWQtb3BhY2l0eTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgcmlnaHQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICBAaWYgJHZpc3VhbC1ncmlkLWluZGV4ID09IGJhY2sge1xuICAgICAgei1pbmRleDogLTE7XG4gICAgfVxuXG4gICAgQGVsc2UgaWYgJHZpc3VhbC1ncmlkLWluZGV4ID09IGZyb250IHtcbiAgICAgIHotaW5kZXg6IDk5OTk7XG4gICAgfVxuXG4gICAgQGVhY2ggJGJyZWFrcG9pbnQgaW4gJHZpc3VhbC1ncmlkLWJyZWFrcG9pbnRzIHtcbiAgICAgIEBpZiAkYnJlYWtwb2ludCB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50KSB7XG4gICAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tZ3JhZGllbnQoZ3JhZGllbnQtc3RvcHMoJGdyaWQtY29sdW1ucykpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDaGFuZ2VzIHRoZSBkaXNwbGF5IHByb3BlcnR5IHVzZWQgYnkgb3RoZXIgbWl4aW5zIGNhbGxlZCBpbiB0aGUgY29kZSBibG9jayBhcmd1bWVudC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZGlzcGxheSBbYmxvY2tdXG4vLy8gICBEaXNwbGF5IHZhbHVlIHRvIGJlIHVzZWQgd2l0aGluIHRoZSBibG9jay4gQ2FuIGJlIGB0YWJsZWAgb3IgYGJsb2NrYC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgIEBpbmNsdWRlIGRpc3BsYXktY29udGV4dCh0YWJsZSkge1xuLy8vICAgIC5kaXNwbGF5LXRhYmxlIHtcbi8vLyAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg2KTtcbi8vLyAgICAgfVxuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzXG4vLy8gICAuZGlzcGxheS10YWJsZSB7XG4vLy8gICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuLy8vICAgICAgLi4uXG4vLy8gICB9XG5cbkBtaXhpbiBkaXNwbGF5LWNvbnRleHQoJGRpc3BsYXk6IGJsb2NrKSB7XG4gICRzY29wZS1kaXNwbGF5OiAkY29udGFpbmVyLWRpc3BsYXktdGFibGU7XG4gICRjb250YWluZXItZGlzcGxheS10YWJsZTogJGRpc3BsYXkgPT0gdGFibGUgIWdsb2JhbDtcblxuICBAY29udGVudDtcblxuICAkY29udGFpbmVyLWRpc3BsYXktdGFibGU6ICRzY29wZS1kaXNwbGF5ICFnbG9iYWw7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDaGFuZ2VzIHRoZSBkaXJlY3Rpb24gcHJvcGVydHkgdXNlZCBieSBvdGhlciBtaXhpbnMgY2FsbGVkIGluIHRoZSBjb2RlIGJsb2NrIGFyZ3VtZW50LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRkaXJlY3Rpb24gW2xlZnQtdG8tcmlnaHRdXG4vLy8gICBMYXlvdXQgZGlyZWN0aW9uIHRvIGJlIHVzZWQgd2l0aGluIHRoZSBibG9jay4gQ2FuIGJlIGBsZWZ0LXRvLXJpZ2h0YCBvciBgcmlnaHQtdG8tbGVmdGAuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIEBpbmNsdWRlIGRpcmVjdGlvbi1jb250ZXh0KHJpZ2h0LXRvLWxlZnQpIHtcbi8vLyAgICAucmlnaHQtdG8tbGVmdC1ibG9jayB7XG4vLy8gICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNik7XG4vLy8gICAgIH1cbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5yaWdodC10by1sZWZ0LWJsb2NrIHtcbi8vLyAgICAgZmxvYXQ6IHJpZ2h0O1xuLy8vICAgICAgLi4uXG4vLy8gICB9XG5cbkBtaXhpbiBkaXJlY3Rpb24tY29udGV4dCgkZGlyZWN0aW9uOiBsZWZ0LXRvLXJpZ2h0KSB7XG4gICRzY29wZS1kaXJlY3Rpb246ICRsYXlvdXQtZGlyZWN0aW9uO1xuXG4gIEBpZiB0by1sb3dlci1jYXNlKCRkaXJlY3Rpb24pID09IFwibGVmdC10by1yaWdodFwiIHtcbiAgICAkbGF5b3V0LWRpcmVjdGlvbjogTFRSICFnbG9iYWw7XG4gIH0gQGVsc2UgaWYgdG8tbG93ZXItY2FzZSgkZGlyZWN0aW9uKSA9PSBcInJpZ2h0LXRvLWxlZnRcIiB7XG4gICAgJGxheW91dC1kaXJlY3Rpb246IFJUTCAhZ2xvYmFsO1xuICB9XG5cbiAgQGNvbnRlbnQ7XG5cbiAgJGxheW91dC1kaXJlY3Rpb246ICRzY29wZS1kaXJlY3Rpb24gIWdsb2JhbDtcbn1cbiIsIi8vIFZhcmlhYmxlcy5cbi8vIEFkZCB5b3VyIHNpdGUgdmFyaWFibGVzLCBzdWNoIGFzIGNvbG91cnMgYW5kIGZvbnQgc2l6ZXMgaW4gdGhpcyBmaWxlLlxuXG5cbjpyb290IHtcbiAgLS1zLWdyZXk6ICMzMzM7XG4gIC0tcy1yZWQ6ICNmZjQwNDA7XG59XG5cbiRsZWdhY3ktc3VwcG9ydC1mb3ItaWU6IGZhbHNlO1xuJG5vcm1hbGl6ZS1oZWFkaW5nczogdHJ1ZTtcblxuLy8gQ29sb3JzLlxuJGJhY2tncm91bmQ6ICNmZmY7XG4kY29sb3I6ICMzMzM7XG4kY29sb3ItLWFjY2VudDogI2ZmNDA0MDtcbiRjb2xvci0tYWNjZW50LWJsdWU6ICMwNDAwRkM7XG4kY29sb3ItdGl0bGU6ICRjb2xvcjtcbiRiYXNlLXRleHQtY29sb3I6ICRjb2xvcjtcbiRiYXNlLXNlbGVjdGVkLXRleHQtY29sb3I6ICRiYXNlLXRleHQtY29sb3I7XG4kYmFzZS1zZWxlY3RlZC10ZXh0LWJhY2tncm91bmQtY29sb3I6IGludmVydCgkYmFzZS10ZXh0LWNvbG9yKTtcbiRiYXNlLWxpbmstY29sb3I6ICRjb2xvci0tYWNjZW50O1xuJGJhc2UtbGluay1ob3Zlci1jb2xvcjogJGNvbG9yO1xuJGJhc2UtYm9yZGVyLWNvbG9yOiAjZDlkOWQ5O1xuJHdoaXRlOiAjZmZmO1xuXG4vLyBGb250IHNpemVzLlxuJGJhc2UtZm9udC1zaXplOiAxN3B4O1xuJGJhc2UtbGluZS1oZWlnaHQ6IDEuMzU7XG5cbi8vIERlZmF1bHQgaGVhZGluZyBzaXplcyBiYXNlZCBvbiBcIlBlcmZlY3QgRm91cnRoXCIgYW5kIGJhc2UtZm9udC1zaXplOiAxNnB4O1xuLy8gU291cmNlOiBodHRwOi8vdHlwZS1zY2FsZS5jb21cbiRoMS1mb250LXNpemU6IDMycHg7XG4kaDItZm9udC1zaXplOiAyOHB4O1xuJGgzLWZvbnQtc2l6ZTogMjRweDtcbiRoNC1mb250LXNpemU6IDIycHg7XG4kaDUtZm9udC1zaXplOiAxN3B4O1xuJGg2LWZvbnQtc2l6ZTogMTJweDtcblxuJGgxLW1hcmdpbjogMCAwIDIwcHggMDtcbiRoMi1tYXJnaW46IDAgMCAxMHB4IDA7XG4kaDMtbWFyZ2luOiAwIDAgMTBweCAwO1xuJGg0LW1hcmdpbjogMDtcbiRoNS1tYXJnaW46IDA7XG4kaDYtbWFyZ2luOiAwO1xuXG4kaDEtcGFkZGluZzogMDtcbiRoMi1wYWRkaW5nOiAwO1xuJGgzLXBhZGRpbmc6IDA7XG4kaDQtcGFkZGluZzogMDtcbiRoNS1wYWRkaW5nOiAwO1xuJGg2LXBhZGRpbmc6IDA7XG5cbi8vIEJyZWFrcG9pbnRzLlxuJGJyZWFrcG9pbnQtMTogNDVlbTtcbiRicmVha3BvaW50LTI6IDU3ZW07XG4kYnJlYWtwb2ludC1ob3Jpem9udGFsLXRhYnM6IDI4ZW07XG4iLCIvLyBGb250cy5cbi8vIEFkZCB5b3VyIGZvbnQgZGVjbGFyYXRpb25zLCBzdWNoIGFzIHdlYmZvbnRzIGluIHRoaXMgZmlsZS5cbi8vIFRoZSBhY3R1YWwgZm9udCByZWxhdGVkIHRoZW1pbmcgZ29lcyBpbiBkZXNpZ24gPiB0eXBvZ3JhcGh5LlxuXG4kYmFzZS1mb250LWZhbWlseTogJ0hhbmtlblNhbnMtTGlnaHQnLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuJGJhc2UtZm9udC1mYW1pbHktLW1lZGl1bTogJ0hhbmtlblNhbnMtTWVkaXVtJywgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiRiYXNlLWZvbnQtZmFtaWx5LS1zZXJpZjogJ21lcnJpd2VhdGhlcl9saWdodCcsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4kcXVvdGUtZm9udC1mYW1pbHk6ICdtZXJyaXdlYXRoZXJsaWdodF9pdGFsaWMnLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuJGJhc2UtZm9udC1mYW1pbHktLWxpZ2h0OiAnSGFua2VuU2Fucy1MaWdodCcsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4kdGl0bGUtZm9udC1mYW1pbHk6ICdIYW5rZW5TYW5zLUV4dHJhQm9sZCcsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4kYnV0dG9uLWZvbnQtZmFtaWx5OiAnSGFua2VuU2Fucy1SZWd1bGFyJywgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiRub3JtYWxpemVkLWZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdIYW5rZW5TYW5zLUJsYWNrJztcbiAgc3JjOiB1cmwoJ2ZvbnRzL2hhbmtlbnNhbnMtYmxhY2std2ViZm9udC5lb3QnKTtcbiAgc3JjOiB1cmwoJ2ZvbnRzL2hhbmtlbnNhbnMtYmxhY2std2ViZm9udC5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICB1cmwoJ2ZvbnRzL2hhbmtlbnNhbnMtYmxhY2std2ViZm9udC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSxcbiAgdXJsKCdmb250cy9oYW5rZW5zYW5zLWJsYWNrLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpLFxuICB1cmwoJ2ZvbnRzL2hhbmtlbnNhbnMtYmxhY2std2ViZm9udC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksXG4gIHVybCgnZm9udHMvaGFua2Vuc2Fucy1ibGFjay13ZWJmb250LnN2ZyNoYW5rZW5fc2Fuc2JsYWNrJykgZm9ybWF0KCdzdmcnKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuXG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0hhbmtlblNhbnMtUmVndWxhcic7XG4gIHNyYzogdXJsKCdmb250cy9oYW5rZW5zYW5zLXJlZ3VsYXItd2ViZm9udC5lb3QnKTtcbiAgc3JjOiB1cmwoJ2ZvbnRzL2hhbmtlbnNhbnMtcmVndWxhci13ZWJmb250LmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gIHVybCgnZm9udHMvaGFua2Vuc2Fucy1yZWd1bGFyLXdlYmZvbnQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksXG4gIHVybCgnZm9udHMvaGFua2Vuc2Fucy1yZWd1bGFyLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpLFxuICB1cmwoJ2ZvbnRzL2hhbmtlbnNhbnMtcmVndWxhci13ZWJmb250LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSxcbiAgdXJsKCdmb250cy9oYW5rZW5zYW5zLXJlZ3VsYXItd2ViZm9udC5zdmcjaGFua2VuX3NhbnNyZWd1bGFyJykgZm9ybWF0KCdzdmcnKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdIYW5rZW5TYW5zLUxpZ2h0JztcbiAgc3JjOiB1cmwoJ2ZvbnRzL2hhbmtlbnNhbnMtbGlnaHQtd2ViZm9udC5lb3QnKTtcbiAgc3JjOiB1cmwoJ2ZvbnRzL2hhbmtlbnNhbnMtbGlnaHQtd2ViZm9udC5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICB1cmwoJ2ZvbnRzL2hhbmtlbnNhbnMtbGlnaHQtd2ViZm9udC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSxcbiAgdXJsKCdmb250cy9oYW5rZW5zYW5zLWxpZ2h0LXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpLFxuICB1cmwoJ2ZvbnRzL2hhbmtlbnNhbnMtbGlnaHQtd2ViZm9udC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksXG4gIHVybCgnZm9udHMvaGFua2Vuc2Fucy1saWdodC13ZWJmb250LnN2ZyNoYW5rZW5fc2Fuc2xpZ2h0JykgZm9ybWF0KCdzdmcnKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdIYW5rZW5TYW5zLUJvbGQnO1xuICBzcmM6IHVybCgnZm9udHMvaGFua2Vuc2Fucy1ib2xkLXdlYmZvbnQuZW90Jyk7XG4gIHNyYzogdXJsKCdmb250cy9oYW5rZW5zYW5zLWJvbGQtd2ViZm9udC5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICB1cmwoJ2ZvbnRzL2hhbmtlbnNhbnMtYm9sZC13ZWJmb250LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICB1cmwoJ2ZvbnRzL2hhbmtlbnNhbnMtYm9sZC13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgdXJsKCdmb250cy9oYW5rZW5zYW5zLWJvbGQtd2ViZm9udC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksXG4gIHVybCgnZm9udHMvaGFua2Vuc2Fucy1ib2xkLXdlYmZvbnQuc3ZnI2hhbmtlbl9zYW5zYm9sZCcpIGZvcm1hdCgnc3ZnJyk7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnSGFua2VuU2Fucy1Cb2xkSXRhbGljJztcbiAgc3JjOiB1cmwoJ2ZvbnRzL2hhbmtlbnNhbnMtYm9sZGl0YWxpYy13ZWJmb250LmVvdCcpO1xuICBzcmM6IHVybCgnZm9udHMvaGFua2Vuc2Fucy1ib2xkaXRhbGljLXdlYmZvbnQuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgdXJsKCdmb250cy9oYW5rZW5zYW5zLWJvbGRpdGFsaWMtd2ViZm9udC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSxcbiAgdXJsKCdmb250cy9oYW5rZW5zYW5zLWJvbGRpdGFsaWMtd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXG4gIHVybCgnZm9udHMvaGFua2Vuc2Fucy1ib2xkaXRhbGljLXdlYmZvbnQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLFxuICB1cmwoJ2ZvbnRzL2hhbmtlbnNhbnMtYm9sZGl0YWxpYy13ZWJmb250LnN2ZyNoYW5rZW5fc2Fuc2JvbGRfaXRhbGljJykgZm9ybWF0KCdzdmcnKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdIYW5rZW5TYW5zLUV4dHJhQm9sZCc7XG4gIHNyYzogdXJsKCdmb250cy9oYW5rZW5zYW5zLWV4dHJhYm9sZC13ZWJmb250LmVvdCcpO1xuICBzcmM6IHVybCgnZm9udHMvaGFua2Vuc2Fucy1leHRyYWJvbGQtd2ViZm9udC5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICB1cmwoJ2ZvbnRzL2hhbmtlbnNhbnMtZXh0cmFib2xkLXdlYmZvbnQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksXG4gIHVybCgnZm9udHMvaGFua2Vuc2Fucy1leHRyYWJvbGQtd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXG4gIHVybCgnZm9udHMvaGFua2Vuc2Fucy1leHRyYWJvbGQtd2ViZm9udC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksXG4gIHVybCgnZm9udHMvaGFua2Vuc2Fucy1leHRyYWJvbGQtd2ViZm9udC5zdmcjaGFua2VuX3NhbnNleHRyYWJvbGQnKSBmb3JtYXQoJ3N2ZycpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0hhbmtlblNhbnMtRXh0cmFCb2xkSXRhbGljJztcbiAgc3JjOiB1cmwoJ2ZvbnRzL2hhbmtlbnNhbnMtZXh0cmFib2xkaXRhbGljLXdlYmZvbnQuZW90Jyk7XG4gIHNyYzogdXJsKCdmb250cy9oYW5rZW5zYW5zLWV4dHJhYm9sZGl0YWxpYy13ZWJmb250LmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gIHVybCgnZm9udHMvaGFua2Vuc2Fucy1leHRyYWJvbGRpdGFsaWMtd2ViZm9udC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSxcbiAgdXJsKCdmb250cy9oYW5rZW5zYW5zLWV4dHJhYm9sZGl0YWxpYy13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgdXJsKCdmb250cy9oYW5rZW5zYW5zLWV4dHJhYm9sZGl0YWxpYy13ZWJmb250LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSxcbiAgdXJsKCdmb250cy9oYW5rZW5zYW5zLWV4dHJhYm9sZGl0YWxpYy13ZWJmb250LnN2ZyNoYW5rZW5fc2Fuc2V4dHJhYm9sZF9pdGFsaWMnKSBmb3JtYXQoJ3N2ZycpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0hhbmtlblNhbnMtTGlnaHRJdGFsaWMnO1xuICBzcmM6IHVybCgnZm9udHMvaGFua2Vuc2Fucy1saWdodGl0YWxpYy13ZWJmb250LmVvdCcpO1xuICBzcmM6IHVybCgnZm9udHMvaGFua2Vuc2Fucy1saWdodGl0YWxpYy13ZWJmb250LmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gIHVybCgnZm9udHMvaGFua2Vuc2Fucy1saWdodGl0YWxpYy13ZWJmb250LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICB1cmwoJ2ZvbnRzL2hhbmtlbnNhbnMtbGlnaHRpdGFsaWMtd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXG4gIHVybCgnZm9udHMvaGFua2Vuc2Fucy1saWdodGl0YWxpYy13ZWJmb250LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSxcbiAgdXJsKCdmb250cy9oYW5rZW5zYW5zLWxpZ2h0aXRhbGljLXdlYmZvbnQuc3ZnI2hhbmtlbl9zYW5zbGlnaHRfaXRhbGljJykgZm9ybWF0KCdzdmcnKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdIYW5rZW5TYW5zLU1lZGl1bUl0YWxpYyc7XG4gIHNyYzogdXJsKCdmb250cy9oYW5rZW5zYW5zLW1lZGl1bWl0YWxpYy13ZWJmb250LmVvdCcpO1xuICBzcmM6IHVybCgnZm9udHMvaGFua2Vuc2Fucy1tZWRpdW1pdGFsaWMtd2ViZm9udC5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICB1cmwoJ2ZvbnRzL2hhbmtlbnNhbnMtbWVkaXVtaXRhbGljLXdlYmZvbnQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksXG4gIHVybCgnZm9udHMvaGFua2Vuc2Fucy1tZWRpdW1pdGFsaWMtd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXG4gIHVybCgnZm9udHMvaGFua2Vuc2Fucy1tZWRpdW1pdGFsaWMtd2ViZm9udC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksXG4gIHVybCgnZm9udHMvaGFua2Vuc2Fucy1tZWRpdW1pdGFsaWMtd2ViZm9udC5zdmcjaGFua2VuX3NhbnNtZWRpdW1faXRhbGljJykgZm9ybWF0KCdzdmcnKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdIYW5rZW5TYW5zLUl0YWxpYyc7XG4gIHNyYzogdXJsKCdmb250cy9oYW5rZW5zYW5zLWl0YWxpYy13ZWJmb250LmVvdCcpO1xuICBzcmM6IHVybCgnZm9udHMvaGFua2Vuc2Fucy1pdGFsaWMtd2ViZm9udC5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICB1cmwoJ2ZvbnRzL2hhbmtlbnNhbnMtaXRhbGljLXdlYmZvbnQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksXG4gIHVybCgnZm9udHMvaGFua2Vuc2Fucy1pdGFsaWMtd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXG4gIHVybCgnZm9udHMvaGFua2Vuc2Fucy1pdGFsaWMtd2ViZm9udC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksXG4gIHVybCgnZm9udHMvaGFua2Vuc2Fucy1pdGFsaWMtd2ViZm9udC5zdmcjaGFua2VuX3NhbnNpdGFsaWMnKSBmb3JtYXQoJ3N2ZycpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0hhbmtlblNhbnMtTWVkaXVtJztcbiAgc3JjOiB1cmwoJ2ZvbnRzL2hhbmtlbnNhbnMtbWVkaXVtLXdlYmZvbnQuZW90Jyk7XG4gIHNyYzogdXJsKCdmb250cy9oYW5rZW5zYW5zLW1lZGl1bS13ZWJmb250LmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gIHVybCgnZm9udHMvaGFua2Vuc2Fucy1tZWRpdW0td2ViZm9udC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSxcbiAgdXJsKCdmb250cy9oYW5rZW5zYW5zLW1lZGl1bS13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgdXJsKCdmb250cy9oYW5rZW5zYW5zLW1lZGl1bS13ZWJmb250LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSxcbiAgdXJsKCdmb250cy9oYW5rZW5zYW5zLW1lZGl1bS13ZWJmb250LnN2ZyNoYW5rZW5fc2Fuc21lZGl1bScpIGZvcm1hdCgnc3ZnJyk7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnbWVycml3ZWF0aGVyX2xpZ2h0JztcbiAgc3JjOiB1cmwoJ2ZvbnRzL21lcnJpd2VhdGhlcl9saWdodC13ZWJmb250LmVvdCcpO1xuICBzcmM6IHVybCgnZm9udHMvbWVycml3ZWF0aGVyX2xpZ2h0LXdlYmZvbnQuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgdXJsKCdmb250cy9tZXJyaXdlYXRoZXJfbGlnaHQtd2ViZm9udC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSxcbiAgdXJsKCdmb250cy9tZXJyaXdlYXRoZXJfbGlnaHQtd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXG4gIHVybCgnZm9udHMvbWVycml3ZWF0aGVyX2xpZ2h0LXdlYmZvbnQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLFxuICB1cmwoJ2ZvbnRzL21lcnJpd2VhdGhlcl9saWdodC13ZWJmb250LnN2ZyNtZXJyaXdlYXRoZXJfbGlnaHRyZWd1bGFyJykgZm9ybWF0KCdzdmcnKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdtZXJyaXdlYXRoZXJsaWdodF9pdGFsaWMnO1xuICBzcmM6IHVybCgnZm9udHMvbWVycml3ZWF0aGVyLWxpZ2h0aXQtd2ViZm9udC5lb3QnKTtcbiAgc3JjOiB1cmwoJ2ZvbnRzL21lcnJpd2VhdGhlci1saWdodGl0LXdlYmZvbnQuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgdXJsKCdmb250cy9tZXJyaXdlYXRoZXItbGlnaHRpdC13ZWJmb250LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICB1cmwoJ2ZvbnRzL21lcnJpd2VhdGhlci1saWdodGl0LXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpLFxuICB1cmwoJ2ZvbnRzL21lcnJpd2VhdGhlci1saWdodGl0LXdlYmZvbnQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLFxuICB1cmwoJ2ZvbnRzL21lcnJpd2VhdGhlci1saWdodGl0LXdlYmZvbnQuc3ZnI21lcnJpd2VhdGhlcmxpZ2h0X2l0YWxpYycpIGZvcm1hdCgnc3ZnJyk7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnaWNvbW9vbic7XG4gIHNyYzogIHVybCgnZm9udHMvaWNvbW9vbi5lb3Q/Zzd5YXFtJyk7XG4gIHNyYzogIHVybCgnZm9udHMvaWNvbW9vbi5lb3Q/Zzd5YXFtI2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICB1cmwoJ2ZvbnRzL2ljb21vb24ud29mZjI/Zzd5YXFtJykgZm9ybWF0KCd3b2ZmMicpLFxuICB1cmwoJ2ZvbnRzL2ljb21vb24udHRmP2c3eWFxbScpIGZvcm1hdCgndHJ1ZXR5cGUnKSxcbiAgdXJsKCdmb250cy9pY29tb29uLndvZmY/Zzd5YXFtJykgZm9ybWF0KCd3b2ZmJyksXG4gIHVybCgnZm9udHMvaWNvbW9vbi5zdmc/Zzd5YXFtI2ljb21vb24nKSBmb3JtYXQoJ3N2ZycpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbkBtaXhpbiBpY29uLWJlZm9yZSB7XG4gIGZvbnQtZmFtaWx5OiAnaWNvbW9vbicgIWltcG9ydGFudDtcbiAgc3BlYWs6IG5vbmU7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBsaW5lLWhlaWdodDogMTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG5cbkBtaXhpbiBpY29uLWFmdGVyIHtcbiAgZm9udC1mYW1pbHk6ICdpY29tb29uJyAhaW1wb3J0YW50O1xuICBzcGVhazogbm9uZTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbn1cblxuW2NsYXNzXj0naWNvbi0nXTpiZWZvcmUsXG5bY2xhc3MqPScgaWNvbi0nXTpiZWZvcmUge1xuICBAaW5jbHVkZSBpY29uLWJlZm9yZTtcbn1cblxuLmljb24tc2VhcmNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTA1XCI7XG59XG5cbi5pY29uLXJpZ2h0LWFycm93OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTBiXCI7XG59XG4uaWNvbi13aGF0c2FwcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkwOFwiO1xufVxuLmljb24tbWFpbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkwN1wiO1xufVxuLmljb24tbWVudTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkwNlwiO1xufVxuLmljb24tcGx1czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkwOVwiO1xufVxuLmljb24tbG9nbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkwYVwiO1xufVxuLmljb24taW5zdGFncmFtOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTAwXCI7XG59XG4uaWNvbi1pc3N1dTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkwMVwiO1xufVxuLmljb24teW91dHViZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkwMlwiO1xufVxuLmljb24tZmFjZWJvb2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MDNcIjtcbn1cbi5pY29uLXR3aXR0ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MDRcIjtcbn1cbi5pY29uLXRpY2tldDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkwY1wiO1xufVxuLmljb24tdXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MGRcIjtcbn1cbi5pY29uLWNhbGVuZGFyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTBlXCI7XG59XG5cbltjbGFzc149J2ljb25hLSddOmFmdGVyLFxuW2NsYXNzKj0nIGljb25hLSddOmFmdGVyIHtcbiAgQGluY2x1ZGUgaWNvbi1hZnRlcjtcbn1cblxuLmljb25hLXVwOmFmdGVyIHtcbiAgY29udGVudDogXCJcXGU5MGRcIjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uaWNvbmEtZG93bjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXFxlOTBkXCI7XG4gIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbiIsIi8vIE5vcm1hbGl6ZS5cbi8vIEJhc2VkIG9uIE5pY29sYXMgR2FsbGFnaGVyIGFuZCBKb25hdGhhbiBOZWFsJ3Mgbm9ybWFsaXplLmNzcyB2Mi4xLjMgfCBNSVQgTGljZW5zZVxuLy8gU291cmNlOiBnaXQuaW8vbm9ybWFsaXplXG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBIVE1MNSBkaXNwbGF5IGRlZmluaXRpb25zXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyBDb3JyZWN0cyBibG9jayBkaXNwbGF5IG5vdCBkZWZpbmVkIGluIElFNi83LzgvOSAmIEZGM1xuYXJ0aWNsZSxcbmFzaWRlLFxuZGV0YWlscyxcbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5mb290ZXIsXG5oZWFkZXIsXG5oZ3JvdXAsXG5uYXYsXG5zZWN0aW9uLFxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vLyBDb3JyZWN0cyBpbmxpbmUtYmxvY2sgZGlzcGxheSBub3QgZGVmaW5lZCBpbiBJRTYvNy84LzkgJiBGRjNcbmF1ZGlvLFxuY2FudmFzLFxudmlkZW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIEBpZiAkbGVnYWN5LXN1cHBvcnQtZm9yLWllIHtcbiAgICAqZGlzcGxheTogaW5saW5lO1xuICAgICp6b29tOiAxO1xuICB9XG59XG5cbi8vIDEuIFByZXZlbnRzIG1vZGVybiBicm93c2VycyBmcm9tIGRpc3BsYXlpbmcgJ2F1ZGlvJyB3aXRob3V0IGNvbnRyb2xzXG4vLyAyLiBSZW1vdmUgZXhjZXNzIGhlaWdodCBpbiBpT1M1IGRldmljZXNcbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG4gIGRpc3BsYXk6IG5vbmU7IC8vIDFcbiAgaGVpZ2h0OiAwOyAvLyAyXG59XG5cbi8vIEFkZHJlc3MgYFtoaWRkZW5dYCBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS5cbi8vIEhpZGUgdGhlIGB0ZW1wbGF0ZWAgZWxlbWVudCBpbiBJRSwgU2FmYXJpLCBhbmQgRmlyZWZveCA8IDIyLlxuW2hpZGRlbl0sXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBCYXNlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyAxLiBDb3JyZWN0cyB0ZXh0IHJlc2l6aW5nIG9kZGx5IGluIElFNi83IHdoZW4gYm9keSBmb250LXNpemUgaXMgc2V0IHVzaW5nIGVtIHVuaXRzXG4vLyAgICBodHRwOi8vY2xhZ251dC5jb20vYmxvZy8zNDgvI2M3OTBcbi8vIDIuIFByZXZlbnRzIGlPUyB0ZXh0IHNpemUgYWRqdXN0IGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZSwgd2l0aG91dCBkaXNhYmxpbmcgdXNlciB6b29tXG4vLyAgICB3d3cuNDU2YmVyZWFzdHJlZXQuY29tL2FyY2hpdmUvMjAxMDEyL2NvbnRyb2xsaW5nX3RleHRfc2l6ZV9pbl9zYWZhcmlfZm9yX2lvc193aXRob3V0X2Rpc2FibGluZ191c2VyX3pvb20vXG5odG1sIHtcbiAgQGlmICRsZWdhY3ktc3VwcG9ydC1mb3ItaWUge1xuICAgIGZvbnQtc2l6ZTogMTAwJTsgLy8gMVxuICB9XG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICBjb2xvcjogJGNvbG9yO1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8vIDJcbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8vIDJcbn1cblxuLy8gQWRkcmVzc2VzIGZvbnQtZmFtaWx5IGluY29uc2lzdGVuY3kgYmV0d2VlbiAndGV4dGFyZWEnIGFuZCBvdGhlciBmb3JtIGVsZW1lbnRzLlxuaHRtbCxcbmJ1dHRvbixcbmlucHV0LFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBmb250LWZhbWlseTogJG5vcm1hbGl6ZWQtZm9udC1mYW1pbHk7XG59XG5cbi8vIEFkZHJlc3NlcyBtYXJnaW5zIGhhbmRsZWQgaW5jb3JyZWN0bHkgaW4gSUU2LzdcbmJvZHkge1xuICBtYXJnaW46IDA7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBMaW5rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gMS4gUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgY29sb3IgZnJvbSBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4vLyAyLiBBZGRyZXNzZXMgb3V0bGluZSBkaXNwbGF5ZWQgb2RkbHkgaW4gQ2hyb21lXG4vLyAzLiBJbXByb3ZlcyByZWFkYWJpbGl0eSB3aGVuIGZvY3VzZWQgYW5kIGFsc28gbW91c2UgaG92ZXJlZCBpbiBhbGwgYnJvd3NlcnNcbi8vICAgIHBlb3BsZS5vcGVyYS5jb20vcGF0cmlja2wvZXhwZXJpbWVudHMva2V5Ym9hcmQvdGVzdFxuYSB7XG4gIC8vIDFcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cbiAgLy8gMlxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiB0aGluIGRvdHRlZDtcbiAgfVxuXG4gIC8vIDNcbiAgJjpob3ZlcixcbiAgJjphY3RpdmUge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cbn1cblxuLy8gQWRkcmVzc2VzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LCBTNSwgQ2hyb21lXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQ7XG59XG5cbi8vIEFkZHJlc3NlcyBzdHlsZSBzZXQgdG8gJ2JvbGRlcicgaW4gRkYzKywgUzQvNSwgQ2hyb21lXG5iLFxuc3Ryb25nIHtcbiAgZm9udC1mYW1pbHk6ICR0aXRsZS1mb250LWZhbWlseTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cblxuQGlmICRsZWdhY3ktc3VwcG9ydC1mb3ItaWUge1xuICBibG9ja3F1b3RlIHtcbiAgICBtYXJnaW46IDFlbSA0MHB4O1xuICB9XG59XG5cbi8vIEFkZHJlc3NlcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIFM1LCBDaHJvbWVcbmRmbiB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLy8gQWRkcmVzc2VzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUU2LzcvOC85XG5tYXJrIHtcbiAgYmFja2dyb3VuZDogI2ZmMDtcbiAgY29sb3I6ICMwMDA7XG59XG5cbi8vIEFkZHJlc3NlcyBtYXJnaW5zIHNldCBkaWZmZXJlbnRseSBpbiBJRTYvN1xuQGlmICRsZWdhY3ktc3VwcG9ydC1mb3ItaWUge1xuICBwLFxuICBwcmUge1xuICAgIG1hcmdpbjogMWVtIDA7XG4gIH1cbn1cblxuLy8gQ29ycmVjdHMgZm9udCBmYW1pbHkgc2V0IG9kZGx5IGluIElFNiwgUzQvNSwgQ2hyb21lXG4vLyBlbi53aWtpcGVkaWEub3JnL3dpa2kvVXNlcjpEYXZpZGdvdGhiZXJnL1Rlc3Q1OVxuY29kZSxcbmtiZCxcbnByZSxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBzZXJpZjtcbiAgQGlmICRsZWdhY3ktc3VwcG9ydC1mb3ItaWUge1xuICAgIF9mb250LWZhbWlseTogJ2NvdXJpZXIgbmV3JywgbW9ub3NwYWNlO1xuICB9XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuXG4vLyBJbXByb3ZlcyByZWFkYWJpbGl0eSBvZiBwcmUtZm9ybWF0dGVkIHRleHQgaW4gYWxsIGJyb3dzZXJzXG5wcmUge1xuICB3aGl0ZS1zcGFjZTogcHJlO1xuICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbn1cblxuLy8gU2V0IGNvbnNpc3RlbnQgcXVvdGUgdHlwZXMuXG5xIHtcbiAgcXVvdGVzOiAnXFwyMDFDJyAnXFwyMDFEJyAnXFwyMDE4JyAnXFwyMDE5Jztcbn1cblxuLy8gMS4gQWRkcmVzc2VzIENTUyBxdW90ZXMgbm90IHN1cHBvcnRlZCBpbiBJRTYvN1xuLy8gMi4gQWRkcmVzc2VzIHF1b3RlIHByb3BlcnR5IG5vdCBzdXBwb3J0ZWQgaW4gUzRcblxuLy8gMVxuQGlmICRsZWdhY3ktc3VwcG9ydC1mb3ItaWUge1xuICBxIHtcbiAgICBxdW90ZXM6IG5vbmU7XG4gIH1cbn1cblxuLy8gMlxucTpiZWZvcmUsXG5xOmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIGNvbnRlbnQ6IG5vbmU7XG59XG5cbi8vIEFkZHJlc3MgaW5jb25zaXN0ZW50IGFuZCB2YXJpYWJsZSBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbn1cblxuLy8gUHJldmVudHMgc3ViIGFuZCBzdXAgYWZmZWN0aW5nIGxpbmUtaGVpZ2h0IGluIGFsbCBicm93c2Vyc1xuLy8gZ2lzdC5naXRodWIuY29tLzQxMzkzMFxuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3VwIHtcbiAgdG9wOiAtLjVlbTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtLjI1ZW07XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBMaXN0c1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gQWRkcmVzc2VzIG1hcmdpbnMgc2V0IGRpZmZlcmVudGx5IGluIElFNi83XG5AaWYgJGxlZ2FjeS1zdXBwb3J0LWZvci1pZSB7XG4gIGRsLFxuICBtZW51LFxuICBvbCxcbiAgdWwge1xuICAgIG1hcmdpbjogMWVtIDA7XG4gIH1cbn1cblxuQGlmICRsZWdhY3ktc3VwcG9ydC1mb3ItaWUge1xuICBkZCB7XG4gICAgbWFyZ2luOiAwIDAgMCA0MHB4O1xuICB9XG59XG5cbi8vIEFkZHJlc3NlcyBwYWRkaW5ncyBzZXQgZGlmZmVyZW50bHkgaW4gSUU2LzdcbkBpZiAkbGVnYWN5LXN1cHBvcnQtZm9yLWllIHtcbiAgbWVudSxcbiAgb2wsXG4gIHVsIHtcbiAgICBwYWRkaW5nOiAwIDAgMCA0MHB4O1xuICB9XG59XG5cbi8vIENvcnJlY3RzIGxpc3QgaW1hZ2VzIGhhbmRsZWQgaW5jb3JyZWN0bHkgaW4gSUU3XG5uYXYge1xuICB1bCxcbiAgb2wge1xuICAgIEBpZiAkbGVnYWN5LXN1cHBvcnQtZm9yLWllIHtcbiAgICAgIGxpc3Qtc3R5bGUtaW1hZ2U6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBFbWJlZGRlZCBjb250ZW50XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyAxLiBSZW1vdmVzIGJvcmRlciB3aGVuIGluc2lkZSAnYScgZWxlbWVudCBpbiBJRTYvNy84LzksIEZGM1xuLy8gMi4gSW1wcm92ZXMgaW1hZ2UgcXVhbGl0eSB3aGVuIHNjYWxlZCBpbiBJRTdcbi8vICAgIGNvZGUuZmxpY2tyLmNvbS9ibG9nLzIwMDgvMTEvMTIvb24tdWktcXVhbGl0eS10aGUtbGl0dGxlLXRoaW5ncy1jbGllbnQtc2lkZS1pbWFnZS1yZXNpemluZy9cblxuaW1nIHtcbiAgYm9yZGVyOiAwOyAvLyAxXG4gIEBpZiAkbGVnYWN5LXN1cHBvcnQtZm9yLWllIHtcbiAgICAtbXMtaW50ZXJwb2xhdGlvbi1tb2RlOiBiaWN1YmljOyAvLyAyXG4gIH1cbn1cblxuLy8gQ29ycmVjdHMgb3ZlcmZsb3cgZGlzcGxheWVkIG9kZGx5IGluIElFOVxuc3ZnOm5vdCg6cm9vdCkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gRmlndXJlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gQWRkcmVzc2VzIG1hcmdpbiBub3QgcHJlc2VudCBpbiBJRTYvNy84LzksIFM1LCBPMTFcbmZpZ3VyZSB7XG4gIG1hcmdpbjogMDtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEZvcm1zXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyBDb3JyZWN0cyBtYXJnaW4gZGlzcGxheWVkIG9kZGx5IGluIElFNi83XG5AaWYgJGxlZ2FjeS1zdXBwb3J0LWZvci1pZSB7XG4gIGZvcm0ge1xuICAgIG1hcmdpbjogMDtcbiAgfVxufVxuXG4vLyBEZWZpbmUgY29uc2lzdGVudCBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmdcbmZpZWxkc2V0IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDtcbiAgbWFyZ2luOiAwIDJweDtcbiAgcGFkZGluZzogLjM1ZW0gLjYyNWVtIC43NWVtO1xufVxuXG4vLyAxLiBDb3JyZWN0cyBjb2xvciBub3QgYmVpbmcgaW5oZXJpdGVkIGluIElFNi83LzgvOVxuLy8gMi4gUmVtb3ZlIHBhZGRpbmcgc28gcGVvcGxlIGFyZW4ndCBjYXVnaHQgb3V0IGlmIHRoZXkgemVybyBvdXQgZmllbGRzZXRzLlxuLy8gMy4gQ29ycmVjdHMgdGV4dCBub3Qgd3JhcHBpbmcgaW4gRkYzXG4vLyA0LiBDb3JyZWN0cyBhbGlnbm1lbnQgZGlzcGxheWVkIG9kZGx5IGluIElFNi83XG5sZWdlbmQge1xuICBib3JkZXI6IDA7IC8vIDFcbiAgcGFkZGluZzogMDsgLy8gMlxuICB3aGl0ZS1zcGFjZTogbm9ybWFsOyAvLyAzXG4gIEBpZiAkbGVnYWN5LXN1cHBvcnQtZm9yLWllIHtcbiAgICAqbWFyZ2luLWxlZnQ6IC03cHg7IC8vIDRcbiAgfVxufVxuXG4vLyAxLiBDb3JyZWN0IGZvbnQgZmFtaWx5IG5vdCBiZWluZyBpbmhlcml0ZWQgaW4gYWxsIGJyb3dzZXJzLlxuLy8gMi4gQ29ycmVjdHMgZm9udCBzaXplIG5vdCBiZWluZyBpbmhlcml0ZWQgaW4gYWxsIGJyb3dzZXJzXG4vLyAzLiBBZGRyZXNzZXMgbWFyZ2lucyBzZXQgZGlmZmVyZW50bHkgaW4gSUU2LzcsIEZGMyssIFM1LCBDaHJvbWVcbi8vIDQuIEltcHJvdmVzIGFwcGVhcmFuY2UgYW5kIGNvbnNpc3RlbmN5IGluIGFsbCBicm93c2Vyc1xuYnV0dG9uLFxuaW5wdXQsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0OyAvLyAxXG4gIGZvbnQtc2l6ZTogMTAwJTsgLy8gMlxuICBtYXJnaW46IDA7IC8vIDNcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyAvLyA0XG4gIEBpZiAkbGVnYWN5LXN1cHBvcnQtZm9yLWllIHtcbiAgICAqdmVydGljYWwtYWxpZ246IG1pZGRsZTsgLy8gNFxuICB9XG59XG5cbi8vIEFkZHJlc3NlcyBGRjMvNCBzZXR0aW5nIGxpbmUtaGVpZ2h0IG9uICdpbnB1dCcgdXNpbmcgIWltcG9ydGFudCBpbiB0aGUgVUEgc3R5bGVzaGVldFxuYnV0dG9uLFxuaW5wdXQge1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xufVxuXG4vLyBBZGRyZXNzIGluY29uc2lzdGVudCBgdGV4dC10cmFuc2Zvcm1gIGluaGVyaXRhbmNlIGZvciBgYnV0dG9uYCBhbmQgYHNlbGVjdGAuXG4vLyBBbGwgb3RoZXIgZm9ybSBjb250cm9sIGVsZW1lbnRzIGRvIG5vdCBpbmhlcml0IGB0ZXh0LXRyYW5zZm9ybWAgdmFsdWVzLlxuLy8gQ29ycmVjdCBgYnV0dG9uYCBzdHlsZSBpbmhlcml0YW5jZSBpbiBDaHJvbWUsIFNhZmFyaSA1KywgYW5kIElFIDgrLlxuLy8gQ29ycmVjdCBgc2VsZWN0YCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94IDQrIGFuZCBPcGVyYS5cbmJ1dHRvbixcbnNlbGVjdCB7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vLyAxLiBBdm9pZCB0aGUgV2ViS2l0IGJ1ZyBpbiBBbmRyb2lkIDQuMC4qIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYFxuLy8gICAgYW5kIGB2aWRlb2AgY29udHJvbHNcbi8vIDIuIENvcnJlY3RzIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgJ2lucHV0JyB0eXBlcyBpbiBpT1Ncbi8vIDMuIEltcHJvdmVzIHVzYWJpbGl0eSBhbmQgY29uc2lzdGVuY3kgb2YgY3Vyc29yIHN0eWxlIGJldHdlZW4gaW1hZ2UtdHlwZVxuLy8gICAgJ2lucHV0JyBhbmQgb3RoZXJzXG4vLyA0LiBSZW1vdmVzIGlubmVyIHNwYWNpbmcgaW4gSUU3IHdpdGhvdXQgYWZmZWN0aW5nIG5vcm1hbCB0ZXh0IGlucHV0c1xuLy8gICAgS25vd24gaXNzdWU6IGlubmVyIHNwYWNpbmcgcmVtYWlucyBpbiBJRTZcbmJ1dHRvbixcbmlucHV0W3R5cGU9J2J1dHRvbiddLFxuaW5wdXRbdHlwZT0ncmVzZXQnXSxcbmlucHV0W3R5cGU9J3N1Ym1pdCddIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8vIDJcbiAgY3Vyc29yOiBwb2ludGVyOyAvLyAzXG4gIEBpZiAkbGVnYWN5LXN1cHBvcnQtZm9yLWllIHtcbiAgICAqb3ZlcmZsb3c6IHZpc2libGU7ICAvLyA0XG4gIH1cbn1cblxuLy8gUmUtc2V0IGRlZmF1bHQgY3Vyc29yIGZvciBkaXNhYmxlZCBlbGVtZW50c1xuYnV0dG9uW2Rpc2FibGVkXSxcbmlucHV0W2Rpc2FibGVkXSB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLy8gMS4gQWRkcmVzcyBib3ggc2l6aW5nIHNldCB0byBgY29udGVudC1ib3hgIGluIElFIDgvOS8xMC5cbi8vIDIuIFJlbW92ZSBleGNlc3MgcGFkZGluZyBpbiBJRSA4LzkvMTAuXG4vLyAzLiBSZW1vdmVzIGV4Y2VzcyBwYWRkaW5nIGluIElFN1xuLy8gICAgS25vd24gaXNzdWU6IGV4Y2VzcyBwYWRkaW5nIHJlbWFpbnMgaW4gSUU2XG5pbnB1dFt0eXBlPSdjaGVja2JveCddLFxuaW5wdXRbdHlwZT0ncmFkaW8nXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8vIDFcbiAgcGFkZGluZzogMDsgLy8gMlxuICBAaWYgJGxlZ2FjeS1zdXBwb3J0LWZvci1pZSB7XG4gICAgKmhlaWdodDogMTNweDsgLy8gM1xuICAgICp3aWR0aDogMTNweDsgLy8gM1xuICB9XG59XG5cbi8vIDEuIEFkZHJlc3NlcyBhcHBlYXJhbmNlIHNldCB0byBzZWFyY2hmaWVsZCBpbiBTNSwgQ2hyb21lXG4vLyAyLiBBZGRyZXNzZXMgYm94LXNpemluZyBzZXQgdG8gYm9yZGVyLWJveCBpbiBTNSwgQ2hyb21lIChpbmNsdWRlIC1tb3ogdG8gZnV0dXJlLXByb29mKVxuaW5wdXRbdHlwZT0nc2VhcmNoJ10ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLy8gMVxuICAtbW96LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAtd2Via2l0LWJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvLyAyXG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xufVxuXG4vLyBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgc2VhcmNoIGNhbmNlbCBidXR0b24gaW4gU2FmYXJpIDUgYW5kIENocm9tZSBvbiBPUyBYLlxuaW5wdXRbdHlwZT0nc2VhcmNoJ106Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG5pbnB1dFt0eXBlPSdzZWFyY2gnXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLy8gUmVtb3ZlcyBpbm5lciBwYWRkaW5nIGFuZCBib3JkZXIgaW4gRkYzK1xuLy8gd3d3LnNpdGVwZW4uY29tL2Jsb2cvMjAwOC8wNS8xNC90aGUtZGV2aWxzLWluLXRoZS1kZXRhaWxzLWZpeGluZy1kb2pvcy10b29sYmFyLWJ1dHRvbnMvXG5idXR0b24sXG5pbnB1dCB7XG4gICY6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgIGJvcmRlcjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG59XG5cbi8vIDEuIFJlbW92ZXMgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUU2LzcvOC85XG4vLyAyLiBJbXByb3ZlcyByZWFkYWJpbGl0eSBhbmQgYWxpZ25tZW50IGluIGFsbCBicm93c2Vyc1xudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bzsgLy8gMVxuICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyAvLyAyXG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBUYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIFJlbW92ZSBtb3N0IHNwYWNpbmcgYmV0d2VlbiB0YWJsZSBjZWxsc1xudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDtcbn1cbiIsIi8vIE1peGlucy5cbi8vIFNuaXBwZXRzIG9mIHJldXNhYmxlIENTUyB0byBkZXZlbG9wIGZhc3RlciBhbmQga2VlcCB5b3VyIGNvZGUgcmVhZGFibGUuXG4vLyBBZGQgYWxsIG1peGlucyBpbiB0aGlzIGZpbGUuXG5cbkBpbXBvcnQgJ2dyaWQnO1xuQGltcG9ydCAnYnV0dG9ucyc7XG5AaW1wb3J0ICdmb3Jtcyc7XG5AaW1wb3J0ICd0aXRsZXMnO1xuXG4vLyBDb21wb25lbnQgbWl4aW5zLlxuQG1peGluIGNsZWFyZml4IHtcbiAgem9vbTogMTtcblxuICAmOmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBjb250ZW50OiAnICc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIH1cbn1cblxuLmNsZWFyZml4IHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG59XG5cbkBtaXhpbiBvdXRlci1jb250YWluZXIge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1heC13aWR0aDogJG1heC13aWR0aDtcbiAgcGFkZGluZzogMCAxNXB4O1xufVxuXG5AbWl4aW4gaW5uZXItY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBwYWRkaW5nOiAyNXB4IDQwcHg7XG4gIG1heC13aWR0aDogODcwcHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbkBtaXhpbiBpbm5lci1jb250YWluZXItc21hbGwge1xuICBAaW5jbHVkZSBpbm5lci1jb250YWluZXI7XG4gIG1heC13aWR0aDogNjIwcHg7XG59XG5cbkBtaXhpbiBpbnRybyB7XG4gIEBpbmNsdWRlIHB4LXJlbShmb250LXNpemUsIDE4cHgpO1xuICBAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludC0yLCB0cnVlKSB7XG4gICAgbWF4LXdpZHRoOiA4NzBweDtcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXJnaW4tdG9wOiAtMTE1cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDMwcHg7XG4gIH1cblxuICBmb250LWZhbWlseTogJGJhc2UtZm9udC1zaXplO1xuICBmb250LWZhbWlseTogJGJhc2UtZm9udC1mYW1pbHktLW1lZGl1bTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tdG9wOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbkBtaXhpbiBmaWxtLXRlYXNlci1ncmlkIHtcbiAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDQgb2YgMTIpO1xuICBAaW5jbHVkZSBweC1yZW0oZm9udC1zaXplLCAxNnB4KTtcblxuICAmOm50aC1jaGlsZCgzbikge1xuICAgIEBpbmNsdWRlIG9tZWdhO1xuICB9XG5cbiAgJjpudGgtY2hpbGQoM24rMSkge1xuICAgIGNsZWFyOiBsZWZ0O1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQtMSwgdHJ1ZSkge1xuICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygyIG9mIDEyKTtcblxuICAgICY6bnRoLWNoaWxkKDNuKSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IGZsZXgtZ3V0dGVyKDEyKTtcbiAgICB9XG5cbiAgICAmOm50aC1jaGlsZCgzbisxKSB7XG4gICAgICBjbGVhcjogbm9uZTtcbiAgICB9XG5cbiAgICAmOm50aC1jaGlsZCg2bikge1xuICAgICAgQGluY2x1ZGUgb21lZ2E7XG4gICAgfVxuICAgIFxuICAgICY6bnRoLWNoaWxkKDZuKzEpIHtcbiAgICAgIGNsZWFyOiBsZWZ0O1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gdmlld3MtZmlsbXMtLXRlYXNlcnMge1xuICAudmlld3Mtcm93IHtcbiAgICBAaW5jbHVkZSBmaWxtLXRlYXNlci1ncmlkO1xuXG4gICAgLm5vZGUtLXR5cGUtZmlsbSB7XG4gICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMgKDEyIG9mIDEyKTtcbiAgICB9XG4gIH1cblxuICAudmlldy1jb250ZW50IHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG5cbiAgLnZpZXctZW1wdHkge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW4tYm90dG9tOiA1MHB4O1xuICB9XG59XG5cbi8vIENTUyBpbWFnZSByZXBsYWNlbWVudC5cbi8vIFNvdXJjZTogaHR0cHM6Ly9naXRodWIuY29tL2g1YnAvaHRtbDUtYm9pbGVycGxhdGUvY29tbWl0L2FhMDM5NmVhZTc1N1xuQG1peGluIGhpZGUtdGV4dCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDA7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgZm9udDogMCAvIDAgYTtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG5cbi8vIE92ZXJ3cml0ZSB0aGUgZGVmYXVsdCBtZWRpYSBtaXhpbiB3aXRoIGFuIElFOSBmYWxsYmFjay5cbkBtaXhpbiBtZWRpYSgkcXVlcnk6ICRmZWF0dXJlICR2YWx1ZSAkY29sdW1ucywgJGllOiBmYWxzZSwgJHRvdGFsLWNvbHVtbnM6ICRncmlkLWNvbHVtbnMpIHtcbiAgQGlmICRpZSB7XG4gICAgLmx0LWllOSAmIHtcbiAgICAgICRkZWZhdWx0LWdyaWQtY29sdW1uczogJGdyaWQtY29sdW1ucztcbiAgICAgICRncmlkLWNvbHVtbnM6ICR0b3RhbC1jb2x1bW5zO1xuICAgICAgQGNvbnRlbnQ7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiAkZGVmYXVsdC1ncmlkLWNvbHVtbnM7XG4gICAgfVxuICB9XG5cbiAgQGlmIGxlbmd0aCgkcXVlcnkpID09IDEge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kICgkZGVmYXVsdC1mZWF0dXJlOiBudGgoJHF1ZXJ5LCAxKSkge1xuICAgICAgJGRlZmF1bHQtZ3JpZC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zO1xuICAgICAgJGdyaWQtY29sdW1uczogJHRvdGFsLWNvbHVtbnM7XG4gICAgICBAY29udGVudDtcbiAgICAgICRncmlkLWNvbHVtbnM6ICRkZWZhdWx0LWdyaWQtY29sdW1ucztcbiAgICB9XG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRxdWVyeSkgPT0gMiB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG50aCgkcXVlcnksIDEpOiBudGgoJHF1ZXJ5LCAyKSkge1xuICAgICAgJGRlZmF1bHQtZ3JpZC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zO1xuICAgICAgJGdyaWQtY29sdW1uczogJHRvdGFsLWNvbHVtbnM7XG4gICAgICBAY29udGVudDtcbiAgICAgICRncmlkLWNvbHVtbnM6ICRkZWZhdWx0LWdyaWQtY29sdW1ucztcbiAgICB9XG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRxdWVyeSkgPT0gMyB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG50aCgkcXVlcnksIDEpOiBudGgoJHF1ZXJ5LCAyKSkge1xuICAgICAgJGRlZmF1bHQtZ3JpZC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zO1xuICAgICAgJGdyaWQtY29sdW1uczogbnRoKCRxdWVyeSwgMyk7XG4gICAgICBAY29udGVudDtcbiAgICAgICRncmlkLWNvbHVtbnM6ICRkZWZhdWx0LWdyaWQtY29sdW1ucztcbiAgICB9XG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRxdWVyeSkgPT0gNCB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG50aCgkcXVlcnksIDEpOiBudGgoJHF1ZXJ5LCAyKSkgYW5kIChudGgoJHF1ZXJ5LCAzKTogbnRoKCRxdWVyeSwgNCkpIHtcbiAgICAgICRkZWZhdWx0LWdyaWQtY29sdW1uczogJGdyaWQtY29sdW1ucztcbiAgICAgICRncmlkLWNvbHVtbnM6ICR0b3RhbC1jb2x1bW5zO1xuICAgICAgQGNvbnRlbnQ7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiAkZGVmYXVsdC1ncmlkLWNvbHVtbnM7XG4gICAgfVxuICB9IEBlbHNlIGlmIGxlbmd0aCgkcXVlcnkpID09IDUge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChudGgoJHF1ZXJ5LCAxKTogbnRoKCRxdWVyeSwgMikpIGFuZCAobnRoKCRxdWVyeSwgMyk6IG50aCgkcXVlcnksIDQpKSB7XG4gICAgICAkZGVmYXVsdC1ncmlkLWNvbHVtbnM6ICRncmlkLWNvbHVtbnM7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiBudGgoJHF1ZXJ5LCA1KTtcbiAgICAgIEBjb250ZW50O1xuICAgICAgJGdyaWQtY29sdW1uczogJGRlZmF1bHQtZ3JpZC1jb2x1bW5zO1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQHdhcm4gJ1dyb25nIG51bWJlciBvZiBhcmd1bWVudHMgZm9yIGJyZWFrcG9pbnQoKS4gUmVhZCB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBkZXRhaWxzLic7XG4gIH1cbn1cblxuLy8gQ2FsY3VsYXRlIHRoZSBweCBmYWxsYmFjayBmb3IgYW4gcmVtIHZhbHVlLlxuLy8gRS5nLjogQGluY2x1ZGUgcmVtX3B4KGxpbmUtaGVpZ2h0LCAxLjVyZW0pO1xuLy8gUmV0dXJucyBib3RoIHRoZSByZW0gYW5kIHRoZSBweCB2YWx1ZXMuXG5AbWl4aW4gcmVtLXB4KCRwcm9wZXJ0eSwgJHJlbS12YWwpIHtcbiAgZm9udC1zaXplOiAkcmVtLXZhbCAvIDFyZW0gKiAkYmFzZS1mb250LXNpemU7XG4gIGZvbnQtc2l6ZTogJHJlbS12YWw7XG59XG5cbi8vIENhbGN1bGF0ZSB0aGUgcmVtIHZhbHVlIGFuZCBweCBmYWxsYmFjayBmb3IgYSBweCB2YWx1ZS5cbi8vIEUuZy46IEBpbmNsdWRlIHB4X3JlbShsaW5lLWhlaWdodCwgMTZweCk7XG4vLyBSZXR1cm5zIGJvdGggdGhlIHJlbSBhbmQgdGhlIHB4IHZhbHVlcy5cbkBtaXhpbiBweC1yZW0oJHByb3BlcnR5LCAkcHgtdmFsKSB7XG4gIGZvbnQtc2l6ZTogJHB4LXZhbDtcbiAgZm9udC1zaXplOiAkcHgtdmFsIC8gJGJhc2UtZm9udC1zaXplICogMXJlbTtcbn1cbiIsIi8vIE1peGlucyAtIGdyaWQuXG4vLyBBZGQgYWxsIGdyaWQgcmVsYXRlZCBtaXhpbnMgaW4gdGhpcyBmaWxlLlxuXG4kZ3V0dGVyLXdpZHRoOiAoJG1heC13aWR0aCAvICRncmlkLWNvbHVtbnMpICogKCRndXR0ZXIgLyAoJGd1dHRlciArICRjb2x1bW4pKTtcblxuLy8gT21lZ2EgcmVzZXQuXG5AbWl4aW4gb21lZ2EtcmVzZXQoJG50aCkge1xuICAmOm50aC1jaGlsZCgjeyRudGh9KSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAkZ3JpZC1wYWRkaW5nO1xuICB9XG5cbiAgJjpudGgtY2hpbGQoI3skbnRofSsxKSB7XG4gICAgY2xlYXI6IG5vbmU7XG4gIH1cbn1cblxuLy8gQ29sdW1uIGxheW91dHMuXG5AbWl4aW4gY29sLTIge1xuICBAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludC0yLCB0cnVlKSB7XG4gICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDYgb2YgMTIpO1xuICB9XG5cbiAgbWFyZ2luOiAwIDAgMjVweDtcblxuICAmLnZpZXdzLXJvdy1ldmVuIHtcbiAgICBAaW5jbHVkZSBvbWVnYTtcbiAgfVxufVxuXG5AbWl4aW4gY29sLTMge1xuICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMTIgb2YgMTIpO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTEsIHRydWUpIHtcbiAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNiBvZiAxMik7XG4gICAgQGluY2x1ZGUgb21lZ2EoMm4pO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQtMiwgdHJ1ZSkge1xuICAgIEBpbmNsdWRlIG9tZWdhLXJlc2V0KDJuKTtcbiAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNCBvZiAxMik7XG4gICAgQGluY2x1ZGUgb21lZ2EoM24pO1xuICB9XG59XG5cbkBtaXhpbiBjb2wtNCB7XG4gIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTEsIHRydWUpIHtcbiAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNiBvZiAxMik7XG5cbiAgICAmOm50aC1jaGlsZCgybikge1xuICAgICAgQGluY2x1ZGUgb21lZ2E7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQtMiwgdHJ1ZSkge1xuICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygzIG9mIDEyKTtcblxuICAgICY6bnRoLWNoaWxkKDNuICsgMSkge1xuICAgICAgY2xlYXI6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAmOm50aC1jaGlsZCg0bikge1xuICAgICAgQGluY2x1ZGUgb21lZ2E7XG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQoNG4gKyAxKSB7XG4gICAgICBjbGVhcjogYm90aDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGNvbC02IHtcbiAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDYgb2YgMTIpO1xuICBAaW5jbHVkZSBvbWVnYSgybik7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQtMSwgdHJ1ZSkge1xuICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg0IG9mIDEyKTtcbiAgICBAaW5jbHVkZSBvbWVnYS1yZXNldCgybik7XG4gICAgQGluY2x1ZGUgb21lZ2EoM24pO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQtMywgdHJ1ZSkge1xuICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygyIG9mIDEyKTtcbiAgICBAaW5jbHVkZSBvbWVnYS1yZXNldCgzbik7XG4gICAgQGluY2x1ZGUgb21lZ2EoNm4pO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cbiIsIi8vIE1peGlucyAtIGJ1dHRvbnMuXG4vLyBBZGQgYWxsIGJ1dHRvbiByZWxhdGVkIG1peGlucyBpbiB0aGlzIGZpbGUuXG5cbkBtaXhpbiBidXR0b24ge1xuICBAaW5jbHVkZSBweC1yZW0oZm9udC1zaXplLCAxNXB4KTtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LWZhbWlseTogJGJ1dHRvbi1mb250LWZhbWlseTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHBhZGRpbmc6IDIwcHggMTBweDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAxNTBtcyBsaW5lYXIsIGNvbG9yIDE1MG1zIGxpbmVhcjtcbiAgLW8tdHJhbnNpdGlvbjogYmFja2dyb3VuZCAxNTBtcyBsaW5lYXIsIGNvbG9yIDE1MG1zIGxpbmVhcjtcbiAgLW1zLXRyYW5zaXRpb246IGJhY2tncm91bmQgMTUwbXMgbGluZWFyLCBjb2xvciAxNTBtcyBsaW5lYXI7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuXG4gICYuYWN0aXZlLFxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3I7XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgICBvdXRsaW5lOiBub25lO1xuXG4gICAgYSB7XG4gICAgICBjb2xvcjogJHdoaXRlO1xuICAgIH1cbiAgfVxuXG4gIHNwYW4uZXh0IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbkBtaXhpbiBidXR0b24tYmxhY2sge1xuICBAaW5jbHVkZSBidXR0b247XG4gIGJhY2tncm91bmQ6ICRjb2xvcjtcbiAgY29sb3I6ICR3aGl0ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiA5cHggMTlweCAxMXB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgJi5hY3RpdmUsXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQ6ICRjb2xvci0tYWNjZW50O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxufVxuXG5AbWl4aW4gYnV0dG9uLXJlZCB7XG4gIEBpbmNsdWRlIGJ1dHRvbjtcbiAgYmFja2dyb3VuZDogJGNvbG9yLS1hY2NlbnQ7XG4gIGNvbG9yOiAkd2hpdGU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogOXB4IDE5cHggMTFweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICYuYWN0aXZlLFxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3I7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG59XG5cbkBtaXhpbiBidXR0b24tc2lkZWJhciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAxOHB4IDE5cHggMjBweDtcbn1cbiIsIi8vIE1peGlucyAtIGZvcm1zLlxuLy8gQWRkIGFsbCBmb3JtIHJlbGF0ZWQgbWl4aW5zIGluIHRoaXMgZmlsZS5cblxuQG1peGluIGZvcm0tdGV4dGZpZWxkIHtcbiAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQtMSwgdHJ1ZSkge1xuICAgIG1heC13aWR0aDogNTAlO1xuICB9XG5cbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRiYXNlLWJvcmRlci1jb2xvcjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBwYWRkaW5nOiAxMHB4O1xuICB3aWR0aDogMTAwJTtcblxuICAmOmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6ICRjb2xvcjtcbiAgICBvdXRsaW5lOiBub25lO1xuICB9XG59XG5cbkBtaXhpbiBmb3JtLXRleHRhcmVhIHtcbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRiYXNlLWJvcmRlci1jb2xvcjtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtaW4taGVpZ2h0OiAxMDBweDtcbiAgcGFkZGluZzogMTBweDtcbiAgd2lkdGg6IDEwMCU7XG5cbiAgJjpmb2N1cyB7XG4gICAgYm9yZGVyLWNvbG9yOiAkY29sb3I7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxufVxuXG5AbWl4aW4gZm9ybS1yYWRpbyB7XG4gIGlucHV0W3R5cGU9J3JhZGlvJ10ge1xuICAgIG1hcmdpbjogMCAzcHggMCAxcHg7XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJGNvbG9yO1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG4gIH1cblxuICBsYWJlbCB7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemU7XG4gICAgZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5O1xuICAgIG1hcmdpbjogMTBweCAwO1xuICB9XG59XG5cbkBtaXhpbiBmb3JtLWNoZWNrYm94IHtcbiAgaW5wdXRbdHlwZT0nY2hlY2tib3gnXSB7XG4gICAgbWFyZ2luOiAwIDNweCAwIDFweDtcblxuICAgICY6Zm9jdXMge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkY29sb3I7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cbiAgfVxuXG4gIGxhYmVsIHtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZTtcbiAgICBmb250LWZhbWlseTogJGJhc2UtZm9udC1mYW1pbHk7XG4gICAgbWFyZ2luOiAxMHB4IDA7XG4gIH1cbn1cblxuQG1peGluIGZvcm0tc2VsZWN0IHtcbiAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQtMSwgdHJ1ZSkge1xuICAgIG1heC13aWR0aDogNTAlO1xuICB9XG5cbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRiYXNlLWJvcmRlci1jb2xvcjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgbWluLWhlaWdodDogNDBweDtcbiAgcGFkZGluZzogMTBweDtcbiAgd2lkdGg6IDEwMCU7XG5cbiAgJjpmb2N1cyB7XG4gICAgYm9yZGVyLWNvbG9yOiAkY29sb3I7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxufVxuXG5AbWl4aW4gZm9ybS1sYWJlbCB7XG4gIEBleHRlbmQgaDQ7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDIwcHggMCA1cHg7XG59XG5cbkBtaXhpbiBmb3JtLWRlc2NyaXB0aW9uIHtcbiAgLy9cbn1cbiIsIi8vIE1peGlucyAtIHRpdGxlcy5cbi8vIEFkZCBhbGwgdGl0bGUgcmVsYXRlZCBtaXhpbnMgaW4gdGhpcyBmaWxlLlxuXG5AbWl4aW4gdGl0bGUge1xuICBjb2xvcjogJGNvbG9yLXRpdGxlO1xuICBmb250LWZhbWlseTogJHRpdGxlLWZvbnQtZmFtaWx5O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMTtcbn1cbiIsIi8vIERlc2lnbi5cbi8vIEltcG9ydCBhbGwgeW91ciBkZXNpZ24gZWxlbWVudCBzYXNzIGZpbGVzIGluIHRoaXMgZmlsZS5cbkBpbXBvcnQgJ2xheW91dCc7XG5AaW1wb3J0ICd0eXBvZ3JhcGh5JztcbkBpbXBvcnQgJ2hlYWRlcic7XG5AaW1wb3J0ICdmb290ZXInO1xuQGltcG9ydCAnZnJvbnQnO1xuQGltcG9ydCAnbmF2aWdhdGlvbic7XG5AaW1wb3J0ICdtb2JpbGUnO1xuQGltcG9ydCAnZm9ybXMnO1xuQGltcG9ydCAndGFibGVzJztcbkBpbXBvcnQgJ2tpb3NrJztcblxuI3NiLXNpdGUge1xuICBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltZy9iZy5qcGcnKSBjZW50ZXIgdG9wO1xufVxuXG4ucHJlY29udGVudCxcbi5jb250ZW50LFxuLnNoYWRpbmdfMSxcbi5zaGFkaW5nXzIsXG4uc2hhZGluZ18zIHtcbiAgLy9vdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uY29udGVudCB7XG4gIHBhZGRpbmctYm90dG9tOiA2NXB4O1xufVxuXG4uc2hhZGluZ18xLFxuLnNoYWRpbmdfMixcbi5zaGFkaW5nXzMge1xuICBwYWRkaW5nOiA1MHB4IDA7XG5cbiAgaDIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW4tYm90dG9tOiA1MHB4O1xuICB9XG59XG5cbmhlYWRlcixcbmZvb3Rlcixcbi5wcmVjb250ZW50LFxuLnNoYWRpbmdfMSxcbi5zaGFkaW5nXzMge1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuXG4gICYgKyBmb290ZXIge1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkYmFzZS1ib3JkZXItY29sb3I7XG5cbiAgICAucGF0aC1mcm9udHBhZ2UgJiB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgfVxuICB9XG59XG5cbi5wYXRoLWZyb250cGFnZSB7XG4gIC5jb250ZW50LFxuICAuc2hhZGluZ18yIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICB9XG5cbiAgLnNoYWRpbmdfMSxcbiAgLnNoYWRpbmdfMyB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgfVxufVxuXG5kaXYuYnV0dG9uLS1yZWQgYSxcbmEuYnV0dG9uLS1yZWQge1xuICBAaW5jbHVkZSBidXR0b24tcmVkO1xufVxuXG5kaXYuYnV0dG9uLS1ibGFjayBhLFxuYS5idXR0b24tLWJsYWNrIHtcbiAgQGluY2x1ZGUgYnV0dG9uLWJsYWNrO1xufVxuXG51bC5wYWdlciB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcblxuICBsaS5wYWdlcl9faXRlbSB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBhIHtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1yZWQ7XG4gICAgfVxuICB9XG59XG5cbi5zdWJjb250ZW50IHtcbiAgY2xlYXI6IGJvdGg7XG59XG5cbmZvb3RlciB7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4udG90b3Age1xuICBiYWNrZ3JvdW5kOiAkY29sb3ItLWFjY2VudDtcbiAgYm90dG9tOiAwO1xuICBkaXNwbGF5OiBub25lO1xuICBoZWlnaHQ6IDQ0cHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDRweCAyMHB4O1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHJpZ2h0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgei1pbmRleDogOTk5O1xuXG4gIC5pY29uLXVwIHtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBmb250LXNpemU6IDI4cHg7XG4gICAgaGVpZ2h0OiAzMHB4O1xuICAgIG1hcmdpbi10b3A6IDJweDtcbiAgICB3aWR0aDogMzBweDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDE1MG1zIGxpbmVhciwgY29sb3IgMTUwbXMgbGluZWFyO1xuICAgIC1vLXRyYW5zaXRpb246IGJhY2tncm91bmQgMTUwbXMgbGluZWFyLCBjb2xvciAxNTBtcyBsaW5lYXI7XG4gICAgLW1zLXRyYW5zaXRpb246IGJhY2tncm91bmQgMTUwbXMgbGluZWFyLCBjb2xvciAxNTBtcyBsaW5lYXI7XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgY29sb3I6ICRjb2xvcjtcbiAgICB9XG4gIH1cblxuICBuYXYge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBtYXJnaW46IDJweCAyMHB4IDAgMDtcbiAgfVxufVxuXG4ucHJlY29udGVudCxcbi5jb250ZW50LFxuLnNoYWRpbmdfMSxcbi5zaGFkaW5nXzIsXG4uc2hhZGluZ18zIHtcbiAgaW1nIHtcbiAgICAvLyBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltZy9sb2FkZXIuZ2lmJykgY2VudGVyIGNlbnRlciBuby1yZXBlYXQ7XG4gIH1cbn1cbiIsIi8vIExheS1vdXQuXG4vLyBBZGQgeW91ciBsYXktb3V0IHJlbGF0ZWQgdGhlbWluZyBpbiB0aGlzIGZpbGUuXG5cbi5jb250YWluZXIge1xuICBAaW5jbHVkZSBvdXRlci1jb250YWluZXI7XG59XG5cbi5jb250YWluZXItZmx1aWQge1xuICB3aWR0aDogMTAwJTtcbn1cblxuaGVhZGVyLFxuZm9vdGVyLFxuLm1haW4ge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbn1cblxuaGVhZGVyLFxuaGVhZGVyIC5jb250YWluZXIge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLmNvbHVtbiB7XG4gIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTEsIHRydWUpIHtcbiAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNCAgb2YgMTIpO1xuICB9XG59XG5cbi5sYXlvdXQtb25lLXNpZGViYXIge1xuICBAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludC0xLCB0cnVlKSB7XG4gICAgJi5sYXlvdXQtc2lkZWJhci1maXJzdCB7XG4gICAgICAubGF5b3V0LWNvbnRlbnQge1xuICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoOC41IG9mIDEyKTtcbiAgICAgICAgQGluY2x1ZGUgb21lZ2E7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmxheW91dC1zaWRlYmFyLXNlY29uZCB7XG4gICAgICAubGF5b3V0LWNvbnRlbnQge1xuICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoOC41IG9mIDEyKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBhc2lkZSB7XG4gICAgICAmLmxheW91dC1zaWRlYmFyLWZpcnN0IHtcbiAgICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDMuNSBvZiAxMik7XG4gICAgICAgIG1hcmdpbi10b3A6IDVweDtcbiAgICAgIH1cblxuICAgICAgJi5sYXlvdXQtc2lkZWJhci1zZWNvbmQge1xuICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMy41IG9mIDEyKTtcbiAgICAgICAgQGluY2x1ZGUgb21lZ2E7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5sYXlvdXQtbm8tc2lkZWJhcnMge1xuICBAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludC0xLCB0cnVlKSB7XG4gICAgLm1haW4ge1xuICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDEyIG9mIDEyKTtcbiAgICAgIEBpbmNsdWRlIG9tZWdhO1xuICAgIH1cbiAgfVxufVxuXG4ubGF5b3V0LWNvbnRlbnQge1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xufVxuIiwiLy8gVHlwb2dyYXBoeVxuXG4vLyAxLiBDb3JyZWN0cyB0ZXh0IHJlc2l6aW5nIG9kZGx5IGluIElFNi83IHdoZW4gYm9keSBmb250LXNpemUgaXMgc2V0IHVzaW5nIGVtIHVuaXRzXG4vLyAgICBTb3VyY2U6IGh0dHA6Ly9jbGFnbnV0LmNvbS9ibG9nLzM0OC8jYzc5MFxuLy8gMi4gUHJldmVudHMgaU9TIHRleHQgc2l6ZSBhZGp1c3QgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlLCB3aXRob3V0IGRpc2FibGluZyB1c2VyIHpvb21cbi8vICAgIFNvdXJjZTogd3d3LjQ1NmJlcmVhc3RyZWV0LmNvbS9hcmNoaXZlLzIwMTAxMi9jb250cm9sbGluZ190ZXh0X3NpemVfaW5fc2FmYXJpX2Zvcl9pb3Nfd2l0aG91dF9kaXNhYmxpbmdfdXNlcl96b29tXG5odG1sIHtcbiAgZm9udC1zaXplOiAxMDAlICogKCRiYXNlLWZvbnQtc2l6ZSAvIDE2cHgpO1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbn1cblxuLy8gQWRkcmVzc2VzIGZvbnQtZmFtaWx5IGluY29uc2lzdGVuY3kgYmV0d2VlbiAndGV4dGFyZWEnIGFuZCBvdGhlciBmb3JtIGVsZW1lbnRzLlxuaHRtbCxcbmJ1dHRvbixcbmlucHV0LFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBmb250LWZhbWlseTogJGJhc2UtZm9udC1mYW1pbHk7XG59XG5cbi8vIExpbmUtaGVpZ2h0cy5cbmJvZHkge1xuICBAaW5jbHVkZSBweC1yZW0oZm9udC1zaXplLCAkYmFzZS1mb250LXNpemUpO1xuICBsaW5lLWhlaWdodDogJGJhc2UtbGluZS1oZWlnaHQ7XG4gIGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseTtcbn1cblxuaDEge1xuICBAaW5jbHVkZSB0aXRsZTtcbiAgQGluY2x1ZGUgcHgtcmVtKGZvbnQtc2l6ZSwgJGgxLWZvbnQtc2l6ZSk7XG4gIG1hcmdpbjogJGgxLW1hcmdpbjtcbiAgcGFkZGluZzogJGgxLXBhZGRpbmc7XG59XG5cbmgyIHtcbiAgQGluY2x1ZGUgdGl0bGU7XG4gIEBpbmNsdWRlIHB4LXJlbShmb250LXNpemUsICRoMi1mb250LXNpemUpO1xuICBtYXJnaW46ICRoMi1tYXJnaW47XG4gIHBhZGRpbmc6ICRoMi1wYWRkaW5nO1xufVxuXG5oMyB7XG4gIEBpbmNsdWRlIHRpdGxlO1xuICBAaW5jbHVkZSBweC1yZW0oZm9udC1zaXplLCAkaDMtZm9udC1zaXplKTtcbiAgbWFyZ2luOiAkaDMtbWFyZ2luO1xuICBwYWRkaW5nOiAkaDMtcGFkZGluZztcbn1cblxuaDQge1xuICBAaW5jbHVkZSB0aXRsZTtcbiAgQGluY2x1ZGUgcHgtcmVtKGZvbnQtc2l6ZSwgJGg0LWZvbnQtc2l6ZSk7XG4gIG1hcmdpbjogJGg0LW1hcmdpbjtcbiAgcGFkZGluZzogJGg0LXBhZGRpbmc7XG59XG5cbmg1IHtcbiAgQGluY2x1ZGUgdGl0bGU7XG4gIEBpbmNsdWRlIHB4LXJlbShmb250LXNpemUsICRoNS1mb250LXNpemUpO1xuICBtYXJnaW46ICRoNS1tYXJnaW47XG4gIHBhZGRpbmc6ICRoNS1wYWRkaW5nO1xufVxuXG5oNiB7XG4gIEBpbmNsdWRlIHRpdGxlO1xuICBAaW5jbHVkZSBweC1yZW0oZm9udC1zaXplLCAkaDYtZm9udC1zaXplKTtcbiAgbWFyZ2luOiAkaDYtbWFyZ2luO1xuICBwYWRkaW5nOiAkaDYtcGFkZGluZztcbn1cblxucCB7XG4gIG1hcmdpbjogMCAwIDFlbTtcbn1cblxuc3Bhbi5leHQge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG5ociB7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRiYXNlLWJvcmRlci1jb2xvcjtcbn1cbiIsIi8vIEhlYWRlci5cbi8vIEFkZCB5b3VyIGhlYWRlciByZWxhdGVkIHRoZW1pbmcgaW4gdGhpcyBmaWxlLlxuXG5oZWFkZXIge1xuICBtaW4taGVpZ2h0OiAxMDVweDtcblxuICBAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludC0yLCB0cnVlKSB7XG4gICAgLmhlYWRlciB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG4gIH1cbn1cblxuLmJsb2NrLXN5c3RlbS1icmFuZGluZy1ibG9jayB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuXG4gIC5zaXRlLWxvZ28ge1xuICAgIHBhZGRpbmctdG9wOiAxNXB4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAyMTBweDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTIsIHRydWUpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAuc2l0ZS1sb2dvIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmctdG9wOiAyNXB4O1xuXG4gICAgICBpbWcge1xuICAgICAgICB3aWR0aDogMjEwcHg7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbiIsIi8vIEZvb3Rlci5cbi8vIEFkZCB5b3VyIGZvb3Rlci1yZWxhdGVkIHRoZW1pbmcgaW4gdGhpcyBmaWxlLlxuXG5mb290ZXIge1xuICBwYWRkaW5nOiAzMHB4IDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAuZGV2ZWxvcGVkLWJ5LXhpbyB7XG4gICAgQGluY2x1ZGUgcHgtcmVtKGZvbnQtc2l6ZSwgMTRweCk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgYS5tYWlsdG8ge1xuICAgICAgJjpob3ZlciB7XG4gICAgICB9XG5cbiAgICAgIHNwYW4ubWFpbHRvIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuYXYubWVudS0tc29jaWFsLW1lbnUtaWNvbnMge1xuICAgIG1hcmdpbi10b3A6IDMwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gIH1cblxuXG4gIG5hdi5tZW51LS1idXR0b24ge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luLXRvcDogMTVweDtcbiAgICBAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludC0yLCB0cnVlKSB7XG4gICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIH1cbiAgICBcbiAgICB1bC5tZW51IGxpIGEge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgdG9wOiAwO1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRWFybGllciBzaWRlYmFyIGZ1bGwgd2lkdGggdGhhbiByZWd1bGFyIHBhZ2VzLlxuLnBhdGgtZnJvbnRwYWdlLmxheW91dC1vbmUtc2lkZWJhciB7XG4gIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTEsIHRydWUpIHtcbiAgICAubGF5b3V0LWNvbnRlbnQge1xuICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDEyIG9mIDEyKTtcbiAgICB9XG5cbiAgICBhc2lkZS5sYXlvdXQtc2lkZWJhci1maXJzdCB7XG4gICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMTIgb2YgMTIpO1xuXG4gICAgICAuZmllbGQtLW5hbWUtZmllbGQtaG9tZXBhZ2UtYm94ID4gLmZpZWxkX19pdGVtIHtcbiAgICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDYgb2YgMTIpO1xuXG4gICAgICAgICY6bnRoLWNoaWxkKDJuKSB7XG4gICAgICAgICAgQGluY2x1ZGUgb21lZ2E7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludC0yLCB0cnVlKSB7XG4gICAgLmxheW91dC1jb250ZW50IHtcbiAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg4LjUgb2YgMTIpO1xuICAgICAgQGluY2x1ZGUgb21lZ2E7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxuXG4gICAgYXNpZGUubGF5b3V0LXNpZGViYXItZmlyc3Qge1xuICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDMuNSBvZiAxMik7XG5cbiAgICAgIC5maWVsZC0tbmFtZS1maWVsZC1ob21lcGFnZS1ib3ggPiAuZmllbGRfX2l0ZW0ge1xuICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMTIgb2YgMTIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBIaWRlIGVsZW1lbnRzIG9uIG1vYmlsZS5cbi5wYXRoLWZyb250cGFnZSB7XG4gIC5wcmVjb250ZW50LFxuICAuc2hhZGluZ18yLFxuICAuYm94ZXMgLmJveCArIC5ib3gsXG4gIC5ibG9jay1jb250ZW50LS10eXBlLWxvZ28tYmxvY2sge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAuY29udGVudCB7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gIH1cblxuICBmb290ZXIge1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludC0xLCB0cnVlKSB7XG4gICAgLnByZWNvbnRlbnQsXG4gICAgLnNoYWRpbmdfMSxcbiAgICAuc2hhZGluZ18yLFxuICAgIC5zaGFkaW5nXzMsXG4gICAgLmJveGVzIC5ib3ggKyAuYm94LFxuICAgIC5ibG9jay1jb250ZW50LS10eXBlLWxvZ28tYmxvY2sge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgLmNvbnRlbnQge1xuICAgICAgcGFkZGluZy1ib3R0b206IDY1cHg7XG4gICAgICBwYWRkaW5nLXRvcDogNDBweDtcbiAgICB9XG5cbiAgICBmb290ZXIge1xuICAgICAgbWFyZ2luLXRvcDogMzBweDtcbiAgICB9XG4gIH1cbn1cblxuLnBhdGgtZnJvbnRwYWdlIHtcbiAgLm5vZGUtLXR5cGUtZmlsbS5ub2RlLS12aWV3LW1vZGUtdGVhc2VyIHtcbiAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMTIgb2YgMTIpO1xuXG4gICAgbWFyZ2luOiA1cHggMCA1cHggMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBpbWcge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludC0xLCB0cnVlKSB7XG4gICAgICBAaW5jbHVkZSBmaWxtLXRlYXNlci1ncmlkO1xuXG4gICAgICBtYXJnaW46IDUwcHggMCA1cHggMDtcblxuICAgICAgaW1nIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnNoYWRpbmdfMyB7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gIH1cblxuICBoMi5maWVsZC1sYWJlbC1hYm92ZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTEsIHRydWUpIHtcbiAgICAuc2hhZGluZ18zIHtcbiAgICAgIHBhZGRpbmctdG9wOiA1MHB4O1xuICAgIH1cblxuICAgIGgyLmZpZWxkLWxhYmVsLWFib3ZlIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDUwcHg7XG4gICAgfVxuICB9XG59XG4iLCIvLyBOYXZpZ2F0aW9uLlxuLy8gQWRkIHlvdXIgbmF2aWdhdGlvbiByZWxhdGVkIHRoZW1pbmcgaW4gdGhpcyBmaWxlLlxuXG4ubmF2aWdhdGlvbiB7XG4gIHVsLmxpbmtzLFxuICB1bC5tZW51IHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW46IDA7XG5cbiAgICA+IGxpIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBmbG9hdDogbGVmdDtcblxuICAgICAgPiBhIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzLFxuICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4ubmF2IHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIHBhZGRpbmctdG9wOiAyMHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMjVweDtcblxuICAubWVudS0tc29jaWFsLW1lbnUtaWNvbnMge1xuICAgIG1hcmdpbi1sZWZ0OiAxNXB4O1xuICB9XG5cbiAgLm1lbnUtLW1haW4ge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIG1hcmdpbi1yaWdodDogMTY1cHg7XG4gIH1cblxuICAubWVudS0tYnV0dG9uIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gIH1cbn1cblxuXG4vL3NlYXJjaFxuLm1lbnUtLXNvY2lhbC1tZW51LWljb25zIHVsLm1lbnUgbGkgYS5pY29uLXNlYXJjaCB7XG4gIHBhZGRpbmc6IDhweCAxMHB4IDVweCAxMnB4O1xuICBiYWNrZ3JvdW5kOiAkY29sb3I7XG4gIGNvbG9yOiAjZmZmO1xuICBtYXJnaW4tbGVmdDogMTVweDtcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJGNvbG9yLS1hY2NlbnQ7XG4gICAgY29sb3I6ICNmZmY7XG4gIH1cbn1cblxuLy9oaWRlIHRoZSBzZWFyY2ggYnV0dG9uIGluIHRoZSBmb290ZXIgXG5cbmZvb3RlciB7XG4gIC5tZW51LS1zb2NpYWwtbWVudS1pY29ucyB1bC5tZW51IGxpIGEuaWNvbi1zZWFyY2gge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLy8gVG9wIG1lbnVcbi5tZW51LS1zb2NpYWwtbWVudSB7XG4gIHVsLm1lbnUgbGkge1xuICAgIGEge1xuICAgICAgQGluY2x1ZGUgcHgtcmVtKGZvbnQtc2l6ZSwgMTRweCk7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJhY2tncm91bmQ7XG4gICAgICBjb2xvcjogJGNvbG9yO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBmb250LWZhbWlseTogJGJhc2UtZm9udC1mYW1pbHktLWxpZ2h0O1xuICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICBtYXJnaW4tbGVmdDogMTVweDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzLFxuICAgICAgJi5hY3RpdmUge1xuICAgICAgICBib3JkZXItY29sb3I6ICRjb2xvcjtcbiAgICAgIH1cbiAgICB9XG4gICAgJi5tZW51LWl0ZW0tLWFjdGl2ZS10cmFpbCB7XG4gICAgICBhIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkY29sb3I7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIFNvY2lhbCBtZWRpYSBtZW51XG4ubWVudS0tc29jaWFsLW1lbnUtaWNvbnMge1xuICB1bC5tZW51IGxpIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICBhIHtcbiAgICAgIGNvbG9yOiAkY29sb3I7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMTUwbXMgbGluZWFyLCBjb2xvciAxNTBtcyBsaW5lYXI7XG4gICAgICAtby10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDE1MG1zIGxpbmVhciwgY29sb3IgMTUwbXMgbGluZWFyO1xuICAgICAgLW1zLXRyYW5zaXRpb246IGJhY2tncm91bmQgMTUwbXMgbGluZWFyLCBjb2xvciAxNTBtcyBsaW5lYXI7XG4gICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcblxuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMsXG4gICAgICAmLmFjdGl2ZSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3ItLWFjY2VudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gTWFpbiBtZW51XG4ubWVudS0tbWFpbiB7XG4gIG1hcmdpbi10b3A6IDE4cHg7XG5cbiAgdWwubWVudSBsaSB7XG4gICAgYSB7XG4gICAgICBAaW5jbHVkZSBweC1yZW0oZm9udC1zaXplLCAzMHB4KTtcbiAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkYmFja2dyb3VuZDtcbiAgICAgIGNvbG9yOiAkY29sb3I7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGZvbnQtZmFtaWx5OiAkdGl0bGUtZm9udC1mYW1pbHk7XG4gICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICBtYXJnaW4tbGVmdDogMzBweDtcblxuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMsXG4gICAgICAmLmFjdGl2ZSxcbiAgICAgICYuaXMtYWN0aXZlIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkY29sb3I7XG4gICAgICB9XG4gICAgfVxuICAgICYubWVudS1pdGVtLS1hY3RpdmUtdHJhaWwge1xuICAgICAgYSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJGNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBCdXR0b24gbWVudVxuLm1lbnUtLWJ1dHRvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICB1bC5tZW51IGxpIGEge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1yZWQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogLTJweDtcbiAgfVxufVxuIiwiLy8gTW9iaWxlIG1lbnVcbi5tb2JpbGUtbWVudSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTNweDtcbiAgcmlnaHQ6IDA7XG4gIHBhZGRpbmc6IDE1cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgei1pbmRleDogOTk5O1xuXG4gIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTIsIHRydWUpIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbmhlYWRlciAubmF2IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsb2F0OiBub25lO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgLm1lbnUtLWJ1dHRvbiB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQtMiwgdHJ1ZSkge1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIC5tZW51LS1zb2NpYWwtbWVudSxcbiAgLm1lbnUtLXNvY2lhbC1tZW51LWljb25zLFxuICAubWVudS0tbWFpbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTIsIHRydWUpIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG5cbiAgICAubWVudS0tc29jaWFsLW1lbnUge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cblxuICAgIC5tZW51LS1zb2NpYWwtbWVudS1pY29ucyB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxuXG4gICAgLm1lbnUtLW1haW4ge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG59XG5cbi8vIFNsaWRlYmFyXG5cbi5zYi1zbGlkZWJhciB7XG4gIGJhY2tncm91bmQ6ICMyMjIyMjI7XG4gIHBhZGRpbmc6IDhweCAyMHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgbmF2Lm1lbnUtLXNvY2lhbC1tZW51LFxuICBuYXYubWVudS0tbWFpbiB7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG5cbiAgICB1bC5tZW51IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG1hcmdpbjogMDtcblxuICAgICAgbGkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcblxuICAgICAgICBhIHtcbiAgICAgICAgICBAaW5jbHVkZSBweC1yZW0oZm9udC1zaXplLCAkYmFzZS1mb250LXNpemUpO1xuICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBmb250LWZhbWlseTogJGJhc2UtZm9udC1mYW1pbHk7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgICBwYWRkaW5nOiA1cHggMDtcbiAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuXG4gICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgIGNvbG9yOiAkY29sb3ItLWFjY2VudDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuYXYubWVudS0tc29jaWFsLW1lbnUtaWNvbnMge1xuICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgdWwubWVudSBsaSBhIHtcbiAgICAgIGNvbG9yOiAjZmZmO1xuXG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cyxcbiAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgY29sb3I6ICRjb2xvci0tYWNjZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG5hdi5tZW51LS1idXR0b24ge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xuXG4gICAgdWwubWVudSBsaSBhIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHRvcDogMDtcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvcm1zLlxuLy8gQWRkIHlvdXIgZm9ybSByZWxhdGVkIHRoZW1pbmcgaW4gdGhpcyBmaWxlLlxuXG4vLyBQcmV2ZW50cyBmb250LWZhbWlseSBpbmNvbnNpc3RlbmN5IGJldHdlZW4gdGV4dGFyZWEgYW5kIG90aGVyIGZvcm0gZWxlbWVudHMuXG5idXR0b24sXG5pbnB1dCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5O1xufVxuXG5mb3JtIHtcbiAgaW5wdXRbdHlwZT0ndGV4dCddLFxuICBpbnB1dFt0eXBlPSdlbWFpbCddLFxuICBpbnB1dFt0eXBlPSdwYXNzd29yZCddLFxuICBpbnB1dFt0eXBlPSd1cmwnXSxcbiAgaW5wdXRbdHlwZT0ndGVsJ10sXG4gIGlucHV0W3R5cGU9J251bWJlciddLFxuICBpbnB1dFt0eXBlPSdkYXRlJ10ge1xuICAgIEBpbmNsdWRlIGZvcm0tdGV4dGZpZWxkO1xuICB9XG5cbiAgdGV4dGFyZWEge1xuICAgIEBpbmNsdWRlIGZvcm0tdGV4dGFyZWE7XG4gIH1cblxuICAuZm9ybS1yYWRpb3Mge1xuICAgIEBpbmNsdWRlIGZvcm0tcmFkaW87XG4gIH1cblxuICAuZm9ybS1jaGVja3Mge1xuICAgIEBpbmNsdWRlIGZvcm0tY2hlY2tib3g7XG4gIH1cblxuICBzZWxlY3Qge1xuICAgIEBpbmNsdWRlIGZvcm0tc2VsZWN0O1xuICB9XG5cbiAgbGFiZWwge1xuICAgIEBpbmNsdWRlIGZvcm0tbGFiZWw7XG4gIH1cblxuICBkaXYuZGVzY3JpcHRpb24ge1xuICAgIEBpbmNsdWRlIGZvcm0tZGVzY3JpcHRpb247XG4gIH1cblxuICBpbnB1dC5idXR0b24sXG4gIGJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgYnV0dG9uO1xuICB9XG59XG4iLCIvLyBUYWJsZXMuXG4vLyBBZGQgeW91ciB0YWJsZSByZWxhdGVkIHRoZW1pbmcgaW4gdGhpcyBmaWxlLlxuXG50YWJsZSB7XG4gIHRyIHtcbiAgICB0aCB7XG4gICAgICAvL1xuICAgIH1cblxuICAgIHRkIHtcbiAgICAgIC8vXG4gICAgfVxuICB9XG59XG4iLCJib2R5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2sgIWltcG9ydGFudDtcbn1cblxuLnJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbi5jb2wge1xuICAmLmlmcmFtZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDgwcHg7XG4gIH1cblxuICAmLnZpZGVvIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAudmlkZW8tY29udGFpbmVyIHtcbiAgICAgIHdpZHRoOiA5NjBweDtcbiAgICAgIGhlaWdodDogNTQwcHg7XG4gICAgfVxuICBcbiAgICB2aWRlbyB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgfVxuXG4gIC5pbWFnZS1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogOTYwcHg7XG4gICAgaGVpZ2h0OiA1NDBweDsgLyogU2V0IHRvIHRoZSBkZXNpcmVkIGhlaWdodCwgb3IgYXV0byBmb3IgaW50cmluc2ljIGhlaWdodCAqL1xuICB9XG4gIFxuICAuaW1hZ2Utc2xpZGUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAycyBlYXNlLWluLW91dDsgLyogU21vb3RoIHRyYW5zaXRpb24gZm9yIDIgc2Vjb25kcyAqL1xuICAgIG9wYWNpdHk6IDA7IC8qIFN0YXJ0IHdpdGggYWxsIGltYWdlcyB0cmFuc3BhcmVudCAqL1xuICAgIHotaW5kZXg6IDA7IC8qIFN0YWNrIGJlbG93IHRoZSBhY3RpdmUgaW1hZ2UgKi9cbiAgfVxuICBcbiAgLmltYWdlLXNsaWRlLmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB6LWluZGV4OiAxOyAvKiBFbnN1cmUgdGhlIGFjdGl2ZSBpbWFnZSBpcyB2aXNpYmxlIGFib3ZlIHRoZSBvdGhlcnMgKi9cbiAgfVxuXG59XG5cbi5raW9zayB7XG4gIC5sb2dvIHtcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgIHdpZHRoOiAyMDBweDtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIH1cblxuICAuZmllbGQtLW5hbWUtYm9keSB7XG4gICAgcGFkZGluZzogMjBweDtcbiAgICBmb250LXNpemU6IHh4LWxhcmdlO1xuICB9XG59XG5cbi5wYWdlLW5vZGUtdHlwZS1raW9zayB7XG4gIC5ibG9jay1zeXN0ZW0tYnJhbmRpbmctYmxvY2sgLnNpdGUtbG9nbyB7XG4gICAgcGFkZGluZy10b3A6IDE1cHg7XG4gIH1cbiAgLmNvbnRlbnQge1xuICAgIHBhZGRpbmctYm90dG9tOiB1bnNldDtcbiAgfVxuICAubGF5b3V0LWNvbnRlbnQge1xuICAgIG1hcmdpbi1ib3R0b206IHVuc2V0O1xuICB9XG59IiwiLy8gU3R5bGVzLlxuLy8gQWRkIHlvdXIgY29udGVudC1zcGVjaWZpYyB0aGVtaW5nIGluIHRoaXMgZmlsZS5cbi8vIEFsbCBnZW5lcmFsIHRoZW1pbmcgc2hvdWxkIGdvIGluIHRoZSBkZXNpZ24gZm9sZGVyLlxuQGltcG9ydCAnY29tcG9uZW50L2NvbXBvbmVudCc7XG5AaW1wb3J0ICdub2RlL25vZGUnO1xuQGltcG9ydCAndmlldy92aWV3JztcbkBpbXBvcnQgJ3BhZ2UvcGFnZSc7XG5AaW1wb3J0ICdibG9jay9ibG9jayc7XG5cbmh0bWwge1xuICBjb2xvcjogJGJhc2UtdGV4dC1jb2xvcjtcblxuICA6OnNlbGVjdGlvbiB7XG4gICAgY29sb3I6ICRiYXNlLXNlbGVjdGVkLXRleHQtY29sb3I7XG4gICAgYmFja2dyb3VuZDogJGJhc2Utc2VsZWN0ZWQtdGV4dC1iYWNrZ3JvdW5kLWNvbG9yO1xuICB9XG59XG5cbi8vIEJhc2UgcmVzcG9uc2l2ZSBpbWFnZXMuXG5pbWcge1xuICBoZWlnaHQ6IGF1dG87XG4gIG1heC13aWR0aDogMTAwJTtcbn1cblxuLy8gQmFzZSBsaW5rIHNldHRpbmdzLlxuYSB7XG4gIGNvbG9yOiAkYmFzZS1saW5rLWNvbG9yO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgY29sb3I6ICRiYXNlLWxpbmstY29sb3I7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIH1cbn1cblxudWwubWVudSB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuLnRhYnMge1xuICBsaSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG59XG4iLCIvLyBTdHlsZXMgPiBDb21wb25lbnRzLlxuLy8gU25pcHBldHMgb2YgcmV1c2FibGUgQ1NTIGNvbmNlcm5pbmcgc3BlY2lmaWMgY29tcG9uZW50cywgZS5nLiAnc29jaWFsLXNoYXJlJ1xuLy8gSW1wb3J0IGFsbCB5b3VyIGNvbXBvbmVudCBzYXNzIGZpbGVzIGluIHRoaXMgZmlsZS5cblxuQGltcG9ydCAnYm94JztcbkBpbXBvcnQgJ2JyZWFkY3J1bWInO1xuQGltcG9ydCAnY29va2llcyc7XG5AaW1wb3J0ICdmYWNlYm9vay1jb21tZW50cyc7XG5AaW1wb3J0ICdpZnJhbWUtd3JhcHBlcic7XG5AaW1wb3J0ICdsb2dvJztcbkBpbXBvcnQgJ3NjcmVlbmluZ3MnO1xuQGltcG9ydCAncXVvdGUnO1xuQGltcG9ydCAnc29jaWFsLXNoYXJlJztcbkBpbXBvcnQgJ2hvcml6b250YWwtdGFicyc7XG4iLCIuYm94LWJsYWNrIHtcbiAgYmFja2dyb3VuZDogJGNvbG9yO1xuICBjb2xvcjogI2ZmZjtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgcGFkZGluZzogMzBweDtcblxuICBhIHtcbiAgICBjb2xvcjogI2ZmZjtcblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmLmFjdGl2ZSB7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICB9XG4gIH1cblxuICBoMyB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgbWFyZ2luLWJvdHRvbTogMjVweDtcbiAgfVxufVxuXG4uYm94LXJlZCB7XG4gIEBleHRlbmQgLmJveC1ibGFjaztcbiAgYmFja2dyb3VuZDogJGNvbG9yLS1hY2NlbnQ7XG5cbiAgLnBhdGgtZnJvbnRwYWdlICYge1xuICAgICY6YmVmb3JlIHtcbiAgICAgIEBpbmNsdWRlIGljb24tYmVmb3JlO1xuICAgICAgQGV4dGVuZCAuaWNvbi10aWNrZXQ6YmVmb3JlO1xuICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgICBmb250LXNpemU6IDI3cHg7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG4gIH1cbn1cblxuLmJveC1ibHVlIHtcbiAgQGV4dGVuZCAuYm94LWJsYWNrO1xuICBiYWNrZ3JvdW5kOiAkY29sb3ItLWFjY2VudC1ibHVlO1xufVxuXG4uYm94X19pY29uIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi1yaWdodDogNXB4O1xufVxuXG4uYm94X19yZWFkbW9yZSB7XG4gIGEge1xuICAgIEBleHRlbmQgLmljb24tcGx1cztcbiAgICBAaW5jbHVkZSBweC1yZW0oZm9udC1zaXplLCAxNXB4KTtcbiAgICBmb250LWZhbWlseTogJGJhc2UtZm9udC1mYW1pbHk7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnKyc7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiA0cHg7XG4gICAgfVxuICB9XG59XG4iLCIvLyBTdHlsZXMgPiBDb21wb25lbnRzID4gQnJlYWRjcnVtYi5cbi8vIEFkZCB5b3VyIGJyZWFkY3J1bWItcmVsYXRlZCB0aGVtaW5nIGluIHRoaXMgZmlsZS5cblxuLmJyZWFkY3J1bWIge1xuICBAaW5jbHVkZSBweC1yZW0oZm9udC1zaXplLCAkaDYtZm9udC1zaXplKTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuICBhIHtcbiAgICBjb2xvcjogJGJhc2UtdGV4dC1jb2xvcjtcbiAgfVxufVxuIiwiLy8vIENvb2tpZSBtb2R1bGVcblxuLy8gQmFja2dyb3VuZCBjb2xvclxuLnNsaWRpbmctcG9wdXAtYm90dG9tIHtcbiAgYmFja2dyb3VuZDogJGNvbG9yO1xuICBwYWRkaW5nOiAyMHB4IDA7XG59XG5cbi8vIENvbnRlbnQgd3JhcHBlclxuLnBvcHVwLWNvbnRlbnQge1xuICBAaW5jbHVkZSBvdXRlci1jb250YWluZXI7XG4gIGJhY2tncm91bmQ6ICRjb2xvcjtcbn1cblxuLy8gTWVzc2FnZVxuLmV1LWNvb2tpZS1jb21wbGlhbmNlLW1lc3NhZ2Uge1xuICBwIHtcbiAgICBAaW5jbHVkZSBweC1yZW0oZm9udC1zaXplLCAxNnB4KTtcbiAgfVxuXG4gIGgyIHtcbiAgICBAaW5jbHVkZSBweC1yZW0oZm9udC1zaXplLCAkaDQtZm9udC1zaXplKTtcbiAgfVxufVxuXG4vLyBBZ3JlZSAvIERpc2FncmVlLWJ1dHRvbnNcbi5ldS1jb29raWUtY29tcGxpYW5jZS1idXR0b25zIHtcbiAgZGlzcGxheTogZmxleDtcblxuICBidXR0b24ge1xuICAgIEBpbmNsdWRlIGJ1dHRvbjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWRlZGVkO1xuICAgIGNvbG9yOiAjMDAwO1xuICAgIHBhZGRpbmc6IDE1cHggMTBweDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG5cbiAgICAmLmRlY2xpbmUtYnV0dG9uIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgIH1cbiAgfVxufVxuXG4vLyBNb3JlIGluZm8tYnV0dG9uIGFzIGxpbmtcbi5ldS1jb29raWUtY29tcGxpYW5jZS1tb3JlLWJ1dHRvbiB7XG4gIEBpbmNsdWRlIHB4LXJlbShmb250LXNpemUsIDE2cHgpO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgbWFyZ2luOiAwIDAgNXB4IDA7XG5cbiAgJjpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG59XG4iLCIuZmllbGQtLW5hbWUtZmFjZWJvb2stY29tbWVudHMge1xuICBtYXJnaW4tdG9wOiA1MHB4O1xuICB3aWR0aDogMTAwJTtcbn0iLCIuaWZyYW1lLXdyYXBwZXIge1xuICBjbGVhcjogbGVmdDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLWJvdHRvbTogNTYuMjUlOyAvLyAxNjo5XG4gIHBhZGRpbmctdG9wOiAyNXB4O1xuICBoZWlnaHQ6IDA7XG4gIG1hcmdpbjogMCAwIDEwcHg7XG5cbiAgaWZyYW1lIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG59XG4iLCIubG9nby0tbGluayB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luOiAwIDEwcHggMjBweDtcblxuICBpbWcge1xuICAgIGhlaWdodDogNDBweDtcbiAgICB3aWR0aDogYXV0bztcbiAgfVxuXG5cbiAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQtMSwgdHJ1ZSkge1xuICAgIG1hcmdpbjogMCAyMHB4IDIwcHg7XG5cbiAgICBpbWcge1xuICAgICAgaGVpZ2h0OiA2MHB4O1xuICAgIH1cbiAgfVxuXG59XG4iLCJAbWl4aW4gc2NyZWVuaW5nLXRpdGxlIHtcbiAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQtMSwgdHJ1ZSkge1xuICAgIG1hcmdpbjogMCAxMHB4O1xuICB9XG4gIG1hcmdpbjogMCAzMHB4IDAgMTBweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbkBtaXhpbiBzY3JlZW5pbmctdGlja2V0cyB7XG4gIGEge1xuICAgIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTEsIHRydWUpIHtcbiAgICAgIGZvbnQtc2l6ZTogMTdweDtcbiAgICAgIHBhZGRpbmctdG9wOiAycHg7XG4gICAgfVxuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWF4LWhlaWdodDogMjRweDtcbiAgICBtYXgtd2lkdGg6IDMycHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBjb2xvcjogJGJhc2UtbGluay1ob3Zlci1jb2xvcjtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgIEBpbmNsdWRlIGljb24tYmVmb3JlO1xuICAgICAgQGV4dGVuZCAuaWNvbi10aWNrZXQ6YmVmb3JlO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6ICRiYXNlLWxpbmstY29sb3I7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBzY3JlZW5pbmctbGFiZWwge1xuICBmb250LWZhbWlseTogJGJ1dHRvbi1mb250LWZhbWlseTtcbiAgZm9udC1zaXplOiAxM3B4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBtYXJnaW4tbGVmdDogMTBweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG5AbWl4aW4gc2NyZWVuaW5nLWxhYmVsLS1yZWQge1xuICBAaW5jbHVkZSBzY3JlZW5pbmctbGFiZWw7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci0tYWNjZW50O1xuICBjb2xvcjogJHdoaXRlO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBwYWRkaW5nOiA1cHggNnB4IDRweCAxMXB4O1xuICBib3JkZXItcmFkaXVzOiAycHg7XG59XG5cbkBtaXhpbiBzY3JlZW5pbmdzLWxhYmVsLS1zdGF0aWMge1xuICBiYWNrZ3JvdW5kOiAkY29sb3ItLWFjY2VudDtcbiAgY29sb3I6ICR3aGl0ZTtcbiAgZm9udC1mYW1pbHk6ICRidXR0b24tZm9udC1mYW1pbHk7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbjogMCAwIDFweCAxMHB4O1xuICBwYWRkaW5nOiA1cHggMTFweCA2cHggMTFweDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiAkYmFja2dyb3VuZDtcblxuICBAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludC0xLCB0cnVlKSB7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gIH1cbn1cblxuQG1peGluIHNjcmVlbmluZy1yb3cge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgJGJhc2UtYm9yZGVyLWNvbG9yO1xuICBjbGVhcjogYm90aDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuQG1peGluIGNvbXBvbmVudC1zY3JlZW5pbmdzIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRiYXNlLWJvcmRlci1jb2xvcjtcbiAgLy9tYXJnaW46IDUwcHggMCAwO1xuXG4gIC5jb21wb25lbnQtc2NyZWVuaW5nc19fcm93IHtcbiAgICBAaW5jbHVkZSBzY3JlZW5pbmctcm93O1xuICAgIHBhZGRpbmc6IDE2cHggMCAxNHB4O1xuICB9XG5cbiAgLmNvbXBvbmVudC1zY3JlZW5pbmdzX190aXRsZSB7XG4gICAgQGluY2x1ZGUgc2NyZWVuaW5nLXRpdGxlO1xuICAgIHBhZGRpbmctYm90dG9tOiA0cHg7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gIH1cblxuICAuY29tcG9uZW50LXNjcmVlbmluZ3NfX3RpbWUge1xuICAgIG1pbi1oZWlnaHQ6IDI1cHg7XG4gICAgYSB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB9XG4gIH1cblxuICAuY29tcG9uZW50LXNjcmVlbmluZ3NfX3RpY2tldHMge1xuICAgIEBpbmNsdWRlIHNjcmVlbmluZy10aWNrZXRzO1xuICB9XG5cbiAgLmNvbXBvbmVudC1zY3JlZW5pbmdzX19sYWJlbC0tbGFzdCB7XG4gICAgQGluY2x1ZGUgc2NyZWVuaW5ncy1sYWJlbC0tc3RhdGljO1xuICB9XG5cbiAgLmNvbXBvbmVudC1zY3JlZW5pbmdfX3BhY2thZ2VzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICBhIHtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICBmb250LXNpemU6IC43cmVtO1xuICAgICAgY29sb3I6IHZhcigtLXMtZ3JleSk7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICB9XG4gICAgICAvLyAmOjpiZWZvcmUge1xuICAgICAgLy8gICBjb250ZW50OiAnKyc7XG4gICAgICAvLyAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIC8vICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgLy8gICBwYWRkaW5nLXJpZ2h0OiA0cHg7XG4gICAgICAvLyB9XG4gICAgfVxuICB9XG5cbn1cblxuLy8gUHJvZ3JhbSBvbiBmcm9udCBwYWdlLlxuLmNvbXBvbmVudC1zY3JlZW5pbmdzLS1kYXkge1xuICBAaW5jbHVkZSBjb21wb25lbnQtc2NyZWVuaW5ncztcbiAgbWFyZ2luLXRvcDogMDtcblxuICAuY29tcG9uZW50LXNjcmVlbmluZ3NfX3JvdzpmaXJzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXRvcDogMDtcbiAgfVxuXG4gIC5jb21wb25lbnQtc2NyZWVuaW5nc19faW5mbyB7XG4gICAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQtMSwgdHJ1ZSkge1xuICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDYgb2YgMTIpO1xuICAgIH1cbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgLmNvbXBvbmVudC1zY3JlZW5pbmdzX190aW1lcyB7XG4gICAgbWFyZ2luOiA2cHggMTBweCAwO1xuICAgIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTEsIHRydWUpIHtcbiAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg2IG9mIDEyKTtcbiAgICAgIEBpbmNsdWRlIG9tZWdhO1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbiAgfVxuXG4gIC5jb21wb25lbnQtc2NyZWVuaW5nc19fbGFiZWwsXG4gIC5jb21wb25lbnQtc2NyZWVuaW5nc19fbW92aWUtcGFja2FnZSB7XG4gICAgQGluY2x1ZGUgc2NyZWVuaW5nLWxhYmVsO1xuICAgIGEge1xuICAgICAgY29sb3I6ICRiYXNlLXRleHQtY29sb3I7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuXG4gICAgJi5hY3RpdmUsXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cbiAgfVxuXG4gIC5jb21wb25lbnQtc2NyZWVuaW5nX19wYWNrYWdlcyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgYSB7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgZm9udC1zaXplOiAuN3JlbTtcbiAgICAgIGNvbG9yOiB2YXIoLS1zLWdyZXkpO1xuICAgICAgJjpob3ZlciB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgfVxuICAgICAgLy8gJjo6YmVmb3JlIHtcbiAgICAgIC8vICAgY29udGVudDogJysnO1xuICAgICAgLy8gICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAvLyAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIC8vICAgcGFkZGluZy1yaWdodDogNHB4O1xuICAgICAgLy8gfVxuICAgIH1cbiAgfVxuXG4gIC5jb21wb25lbnQtc2NyZWVuaW5nc19fdGltZSB7XG4gICAgYSB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLmNvbXBvbmVudC1zY3JlZW5pbmdzX190aW1lIHtcbiAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMiBvZiAxMik7XG4gIH1cblxuICAuY29tcG9uZW50LXNjcmVlbmluZ3NfX3RpY2tldHMge1xuICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygyIG9mIDEyKTtcbiAgICBAaW5jbHVkZSBvbWVnYTtcbiAgfVxufVxuXG4vLyBQcm9ncmFtIG9uIG1vdmllIGRldGFpbC5cbi5jb21wb25lbnQtc2NyZWVuaW5ncy0tbW92aWUge1xuICBAaW5jbHVkZSBjb21wb25lbnQtc2NyZWVuaW5ncztcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcblxuICAuY29tcG9uZW50LXNjcmVlbmluZ3NfX3Jvd3Mge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYmFzZS1ib3JkZXItY29sb3I7XG4gIH1cblxuICAuY29tcG9uZW50LXNjcmVlbmluZ3NfX2xhYmVsIHtcbiAgICBtYXJnaW46IDZweCAxMHB4IDA7XG5cbiAgICBAaW5jbHVkZSBzY3JlZW5pbmctbGFiZWw7XG4gICAgYSB7XG4gICAgICBjb2xvcjogJGJhc2UtdGV4dC1jb2xvcjtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG5cbiAgICAmLmFjdGl2ZSxcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgfVxuICB9XG5cbiAgLmNvbXBvbmVudC1zY3JlZW5pbmdzX19pbmZvIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQtMiwgdHJ1ZSkge1xuICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDQgb2YgMTApO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cblxuICAuY29tcG9uZW50LXNjcmVlbmluZ3NfX3RpbWVzIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luOiA2cHggMTBweCAwO1xuICAgIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTIsIHRydWUpIHtcbiAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg2IG9mIDEwKTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9XG4gIH1cblxuICAuY29tcG9uZW50LXNjcmVlbmluZ3NfX3RpbWUge1xuICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygyIG9mIDExKTtcbiAgICAmOm50aC1jaGlsZCg1KSB7XG4gICAgICBAaW5jbHVkZSBvbWVnYTtcbiAgICB9XG4gIH1cblxuICAuY29tcG9uZW50LXNjcmVlbmluZ3NfX3RpY2tldHMge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMSBvZiAxMSk7XG4gICAgQGluY2x1ZGUgb21lZ2E7XG4gIH1cblxuICAmICsgLmNvbXBvbmVudC1zY3JlZW5pbmdzLS1tb3ZpZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC5jb21wb25lbnQtc2NyZWVuaW5nX19wYWNrYWdlcyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgYSB7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgZm9udC1zaXplOiAuN3JlbTtcbiAgICAgIGNvbG9yOiB2YXIoLS1zLWdyZXkpO1xuICAgICAgJjpob3ZlciB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgfVxuICAgICAgLy8gJjo6YmVmb3JlIHtcbiAgICAgIC8vICAgY29udGVudDogJysnO1xuICAgICAgLy8gICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAvLyAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIC8vICAgcGFkZGluZy1yaWdodDogNHB4O1xuICAgICAgLy8gfVxuXG4gICAgfVxuICB9XG5cbiAgLmNvbXBvbmVudC1zY3JlZW5pbmdzX19ub3Jlc3VsdHMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci0tYWNjZW50O1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIG1hcmdpbi10b3A6IDMwcHg7XG4gICAgcGFkZGluZzogMjVweCAyMHB4O1xuXG4gICAgLmNvbXBvbmVudC1zY3JlZW5pbmdzX19ub3Jlc3VsdHMtLWljb24ge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBAaW5jbHVkZSBpY29uLWJlZm9yZTtcbiAgICAgIEBleHRlbmQgLmljb24tY2FsZW5kYXI7XG4gICAgICBmb250LXNpemU6IDQ0cHg7XG4gICAgfVxuXG4gICAgLmNvbXBvbmVudC1zY3JlZW5pbmdzX19ub3Jlc3VsdHMtLXRvcCB7XG4gICAgICBmb250LWZhbWlseTogXCJIYW5rZW5TYW5zLU1lZGl1bVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgICAgbWFyZ2luOiAxNHB4IDAgMCA2NHB4O1xuICAgICAgY2xlYXI6IHJpZ2h0O1xuICAgIH1cbiAgICAuY29tcG9uZW50LXNjcmVlbmluZ3NfX25vcmVzdWx0cy0tYm90dG9tIHtcbiAgICAgIGZvbnQtZmFtaWx5OiBcIkhhbmtlblNhbnMtTGlnaHRcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICAgIG1hcmdpbjogMTRweCAwIDAgNjRweDtcblxuICAgICAgJi53aXRoLXRvcC10ZXh0IHtcbiAgICAgICAgbWFyZ2luOiAyNHB4IDAgMTBweCA0MHB4O1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLmNvbXBvbmVudC1zY3JlZW5pbmdzX19yb3dzICsgLmNvbXBvbmVudC1zY3JlZW5pbmdzX19ub3Jlc3VsdHMge1xuICAgIG1hcmdpbi10b3A6IDUwcHg7XG4gIH1cbn1cblxuLy8gRnVsbCBwcm9ncmFtLlxuLmNvbXBvbmVudC1zY3JlZW5pbmdzLS1mdWxsIHtcbiAgbWFyZ2luLXRvcDogNTBweDtcblxuICAuY29tcG9uZW50LXNjcmVlbmluZ3MtLWJ1dHRvbnMge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIC5zY3JlZW5pbmdzLS1sb2FkLW1vcmUge1xuICAgICAgQGluY2x1ZGUgYnV0dG9uLXJlZDtcbiAgICAgIHBhZGRpbmc6IDE2cHggMTlweCAxOHB4O1xuICAgIH1cbiAgfVxuXG4gIC5jb21wb25lbnQtc2NyZWVuaW5ncy0td3JhcHBlciB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuXG4gIC5jb21wb25lbnQtc2NyZWVuaW5nc19fcm93IHtcbiAgICBtYXJnaW4tYm90dG9tOiAzNHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC5jb21wb25lbnQtc2NyZWVuaW5nX19wYWNrYWdlcyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgYSB7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgZm9udC1zaXplOiAuN3JlbTtcbiAgICAgIGNvbG9yOiB2YXIoLS1zLWdyZXkpO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICB9XG5cbiAgICAgIC8vICY6OmJlZm9yZSB7XG4gICAgICAvLyAgIGNvbnRlbnQ6ICcrJztcbiAgICAgIC8vICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgLy8gICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAvLyAgIHBhZGRpbmctcmlnaHQ6IDRweDtcbiAgICAgIC8vIH1cblxuICAgIH1cbiAgfVxuXG4gIC5jb21wb25lbnQtc2NyZWVuaW5ncy1kYXRlIHtcbiAgICAuY29tcG9uZW50LXNjcmVlbmluZ3MtLWRhdGVfX2xhYmVsIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICAuY29tcG9uZW50LXNjcmVlbmluZ3MtLXNsb3RzIHtcbiAgICAgIC5jb21wb25lbnQtc2NyZWVuaW5ncy0tc2xvdCB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTIsIHRydWUpIHtcbiAgICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMi40IG9mIDEyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgQGluY2x1ZGUgb21lZ2E7XG4gICAgICAgIH1cblxuICAgICAgICBtYXJnaW4tdG9wOiAyMHB4O1xuXG4gICAgICAgIC5jb21wb25lbnQtc2NyZWVuaW5ncy0tc2xvdF9fbGFiZWwge1xuICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jb21wb25lbnQtc2NyZWVuaW5ncy0tc2xvdF9fZmlsbSB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgICAgICAgcGFkZGluZy1ib3R0b206IDEycHg7XG5cbiAgICAgICAgICAuY29tcG9uZW50LXNjcmVlbmluZ3NfX2xhYmVsIHtcbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBidXR0b24tcmVkO1xuICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFweDtcbiAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgcGFkZGluZzogNXB4IDZweCA2cHggMTFweDtcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgIGNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5hY3RpdmUsXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIC5jb21wb25lbnQtc2NyZWVuaW5nc19fbGFiZWwtLWxhc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2NyZWVuaW5ncy1sYWJlbC0tc3RhdGljO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDBweDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQtMSwgdHJ1ZSkge1xuICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICAuY29tcG9uZW50LXNjcmVlbmluZ3NfX2luZm8ge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRiYXNlLWJvcmRlci1jb2xvcjtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiA2cHg7XG5cbiAgICAgICAgICAgIC5jb21wb25lbnQtc2NyZWVuaW5nc19fdGltZSB7XG4gICAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmNvbXBvbmVudC1zY3JlZW5pbmdzX190aWNrZXRzIHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgc2NyZWVuaW5nLXRpY2tldHM7XG4gICAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmNvbXBvbmVudC1zY3JlZW5pbmdzX190aXRsZSB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIHNjcmVlbmluZy10aXRsZTtcbiAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIC5jb21wb25lbnQtc2NyZWVuaW5nc19fbGFiZWwtLWxhc3QgKyAuY29tcG9uZW50LXNjcmVlbmluZ3NfX2luZm8sXG4gICAgICAgICAgLmNvbXBvbmVudC1zY3JlZW5pbmdzX19sYWJlbCArIC5jb21wb25lbnQtc2NyZWVuaW5nc19faW5mbyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLmNvbXBvbmVudC1xdW90ZV9fdGV4dCB7XG4gIEBpbmNsdWRlIHB4LXJlbShmb250LXNpemUsIDE0cHgpO1xuICBmb250LWZhbWlseTogJHF1b3RlLWZvbnQtZmFtaWx5O1xuICBsaW5lLWhlaWdodDogMS42O1xuICBtYXJnaW4tdG9wOiAzMHB4O1xufVxuXG4uY29tcG9uZW50LXF1b3RlX19hdXRob3Ige1xuICBAaW5jbHVkZSBweC1yZW0oZm9udC1zaXplLCAxNHB4KTtcbiAgZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5LS1zZXJpZjtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLmNvbXBvbmVudC1xdW90ZV9fZGFzaCB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tcmlnaHQ6IDZweDtcbn1cblxuLnBhcmFncmFwaC0tdHlwZS1xdW90ZSBhIHtcbiAgY29sb3I6ICRjb2xvcjtcbiAgXG4gICY6aG92ZXIsXG4gICY6YWN0aXZlIHtcbiAgICBjb2xvcjogJGJhc2UtbGluay1jb2xvcjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cblxuICAuY29tcG9uZW50LXF1b3RlX19hdXRob3Ige1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB9XG59XG4iLCIuc29jaWFsLXNoYXJlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcblxuICBsaSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICBpIHtcbiAgICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgIH1cblxuICAgIGEge1xuICAgICAgZm9udC1zaXplOiAuOXJlbTtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYmFja2dyb3VuZDtcbiAgICAgIGNvbG9yOiAkY29sb3I7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZ2FwOiAuMnJlbTtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBmb250LWZhbWlseTogJGJhc2UtZm9udC1mYW1pbHk7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgcGFkZGluZzogNXB4IDIwcHggNXB4IDA7XG5cbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMTUwbXMgbGluZWFyLCBjb2xvciAxNTBtcyBsaW5lYXI7XG4gICAgICAtby10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDE1MG1zIGxpbmVhciwgY29sb3IgMTUwbXMgbGluZWFyO1xuICAgICAgLW1zLXRyYW5zaXRpb246IGJhY2tncm91bmQgMTUwbXMgbGluZWFyLCBjb2xvciAxNTBtcyBsaW5lYXI7XG5cbiAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgQGluY2x1ZGUgcHgtcmVtKGZvbnQtc2l6ZSwgMjBweCk7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgdG9wOiAzcHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgICAgfVxuXG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cyxcbiAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgY29sb3I6ICRjb2xvci0tYWNjZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYgKyAuZmItbGlrZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG59XG4iLCIuY29tcG9uZW50LWhvcml6b250YWwtdGFicyB7XG4gIGlucHV0IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIGxhYmVsIHtcbiAgICBwYWRkaW5nOiAxNHB4IDEwcHggMTZweDtcbiAgICBAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludC1ob3Jpem9udGFsLXRhYnMsIHRydWUpIHtcbiAgICAgIHBhZGRpbmc6IDE0cHggMzBweCAxNnB4O1xuICAgIH1cbiAgICBAaW5jbHVkZSB0aXRsZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luOiAwIDAgLTFweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xuXG4gICAgYSB7XG4gICAgICBtYXJnaW4tbGVmdDogLTE1cHg7XG4gICAgICBtYXJnaW4tcmlnaHQ6IC00MHB4O1xuICAgICAgcGFkZGluZzogMTRweCAzMHB4IDE2cHggMzBweDtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICBAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludC1ob3Jpem9udGFsLXRhYnMsIHRydWUpIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0zNXB4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC00MHB4O1xuICAgICAgICBwYWRkaW5nOiAxNHB4IDMwcHggMTZweCAzMHB4O1xuICAgICAgfVxuICAgICAgY29sb3I6ICRjb2xvci10aXRsZTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG4gIH1cbiAgbGFiZWw6YmVmb3JlIHtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgfVxuICBsYWJlbDpob3ZlciB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG4gIGlucHV0OmNoZWNrZWQgKyBsYWJlbCB7XG4gICAgY29sb3I6ICRiYXNlLWxpbmstY29sb3I7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGJhc2UtYm9yZGVyLWNvbG9yO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZmZmO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBjdXJzb3I6IGF1dG87XG4gICAgfVxuICB9XG5cbiAgI3RhYjE6Y2hlY2tlZCB+ICNjb250ZW50MSxcbiAgI3RhYjI6Y2hlY2tlZCB+ICNjb250ZW50MixcbiAgI3RhYjM6Y2hlY2tlZCB+ICNjb250ZW50MyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICBzZWN0aW9uIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkYmFzZS1ib3JkZXItY29sb3I7XG4gIH1cbn1cbiIsIi8vIFN0eWxlcyA+IE5vZGUuXG4vLyBTbmlwcGV0cyBvZiByZXVzYWJsZSBDU1MgY29uY2VybmluZyBzcGVjaWZpYyBub2RlcywgZS5nLiAnbm9kZS1uZXdzJ1xuLy8gSW1wb3J0IGFsbCB5b3VyIG5vZGUgc2FzcyBmaWxlcyBpbiB0aGlzIGZpbGUuXG5cbkBpbXBvcnQgJ25vZGUtZmlsbSc7XG5AaW1wb3J0ICdub2RlLWZpbG1yZWVrcyc7XG5AaW1wb3J0ICdub2RlLWhvbWVwYWdlJztcbkBpbXBvcnQgJ25vZGUtbXVsdGlwYWdlJztcbkBpbXBvcnQgJ25vZGUtbmV3cyc7XG5AaW1wb3J0ICdub2RlLXBhY2thZ2UnO1xuQGltcG9ydCAnbm9kZS1wYWdlJztcbkBpbXBvcnQgJ25vZGUtc2xpZGUnO1xuQGltcG9ydCAnbm9kZS1zZWFyY2gnO1xuIiwiLnBhZ2Utbm9kZS10eXBlLWZpbG0ge1xuICAubm9kZS0tdmlldy1tb2RlLWZ1bGwtaGVhZGVyIC5jb250YWluZXIge1xuICAgIEBpbmNsdWRlIGlubmVyLWNvbnRhaW5lcjtcbiAgICBAaW5jbHVkZSBpbnRybztcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMTtcbiAgfVxuXG4gIC5jb250ZW50IC5jb250YWluZXIge1xuICAgIEBpbmNsdWRlIGlubmVyLWNvbnRhaW5lcjtcbiAgfVxuXG4gIC5ub2RlLS12aWV3LW1vZGUtZnVsbC1zaWRlYmFyIHtcbiAgICAuYnV0dG9uLS1yZWQgYSxcbiAgICAuYnV0dG9uLS1ibGFjayBhIHtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1zaWRlYmFyO1xuICAgIH1cblxuICAgIC5idXR0b24tLXJlZCBhIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gICAgfVxuXG4gICAgLmJ1dHRvbi0tYmxhY2sge1xuICAgICAgYSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1jaGlsZCBhIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNDBweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLmZpZWxkLW5hbWUtZmllbGQta2lqa3dpanplciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICBAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludC0xKSB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgfVxuXG4gIC5raWprd2lqemVyLWljb24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogMjAlO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1heC13aWR0aDogNTZweDtcbiAgfVxufVxuLm5vZGUtZmlsbV9fY3JlZGl0cyB7XG4gIGEge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgfVxufVxuXG4ubm9kZS1maWxtX19iYW5uZXIge1xuICBpbWcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5cbmg0Lm5vZGUtZmlsbV9fZmlsbXJlZWtzIHtcbiAgLy9tYXJnaW4tdG9wOiAtMTBweDtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogLjRyZW07XG5cbiAgYSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHBhZGRpbmc6IC4ycmVtIDByZW07XG4gICAgY29sb3I6IHZhcigtLXMtZ3JleSk7XG4gICAgZm9udC1mYW1pbHk6IFwiSGFua2VuU2Fucy1MaWdodFwiO1xuICAgIGZvbnQtc2l6ZTogLjlyZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgLjJzIGVhc2UtaW4tb3V0O1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIHRyYW5zaXRpb246IGFsbCAuMnMgZWFzZS1pbi1vdXQ7XG4gICAgXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDRweDtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1zLXJlZCk7XG4gICAgfVxuICB9XG59XG5cbi5ub2RlLWZpbG1fX2NyZWRpdHMge1xuICBAaW5jbHVkZSBweC1yZW0oZm9udC1zaXplLCAxNnB4KTtcbiAgbWFyZ2luOiA0NXB4IDA7XG5cbiAgLmZpZWxkX19sYWJlbCB7XG4gICAgZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5LS1tZWRpdW07XG4gICAgbWFyZ2luLWJvdHRvbTogLTNweDtcbiAgICBtYXJnaW4tdG9wOiAzcHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTtcbiAgfVxuXG4gIC5maWVsZC0tbmFtZS1maWVsZC1maWxtLWV4dHJhIHtcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xuICB9XG59XG5cbi5ub2RlLWZpbG1fX3Bvc3RlciB7XG4gIG1heC13aWR0aDogMzIwcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludC0xKSB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG59XG5cbi5ub2RlLWZpbG1fX3RyYWlsZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctdG9wOiA0MHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgLmZpZWxkLWxhYmVsLWlubGluZSB7XG4gICAgQGV4dGVuZCBoMjtcbiAgICBtYXJnaW4tYm90dG9tOiA1MHB4O1xuICB9XG5cbiAgLm5vZGUtZmlsbV9fdHJhaWxlci0taW1hZ2Uge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA0MHB4O1xuICAgIGJvcmRlci10b3A6IDdweCBzb2xpZCBibGFjaztcbiAgICBib3JkZXItYm90dG9tOiA4cHggc29saWQgYmxhY2s7XG4gICAgei1pbmRleDogMTtcblxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQtMSkge1xuICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgfVxuXG4gICAgaW1nIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICBsZWZ0OiA1MCU7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMzZweCwgLTI1cHgpO1xuICAgICAgd2lkdGg6IDcycHg7XG4gICAgICBoZWlnaHQ6IDUxcHg7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCB1cmwoJy4uL2ltZy95b3V0dWJlLXBsYXkucG5nJykgbm8tcmVwZWF0IGxlZnQgLTUxcHg7XG4gICAgfVxuXG4gICAgJjpob3Zlcjo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbi15OiAwO1xuICAgIH1cbiAgfVxufVxuXG4ubm9kZS0tdHlwZS1maWxtIHtcbiAgJi5ub2RlLS12aWV3LW1vZGUtZnVsbCB7XG4gICAgLmZpZWxkLS1uYW1lLXNvY2lhbC1zaGFyZS1kcy1maWVsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICAgIH1cblxuICAgIC5maWVsZC0tbmFtZS1maWVsZC1maWxtLXF1b3RlIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG4gICAgfVxuICB9XG5cbiAgJi5ub2RlLS12aWV3LW1vZGUtdGVhc2VyLFxuICAmLm5vZGUtLXZpZXctbW9kZS10ZWFzZXItZGV0YWlsIHtcbiAgICAvL0BpbmNsdWRlIGZpbG0tdGVhc2VyLWdyaWQ7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDE3MHB4O1xuICAgIEBpbmNsdWRlIGNvbXBvbmVudC1zY3JlZW5pbmdzO1xuICAgIC8vbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgICAucGF0aC1mcm9udHBhZ2UgJiB7XG4gICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgIH1cblxuICAgIGE6aG92ZXIsXG4gICAgYTpmb2N1cyB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuXG4gICAgaW1nIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICB9XG5cbiAgICAuZmllbGQtLW5hbWUtZmlsbS1zY3JlZW5pbmctdGFibGUtY29tcGFjdCB7XG4gICAgICBtYXJnaW4tdG9wOiBhdXRvO1xuICAgICAgLnBhdGgtZnJvbnRwYWdlICYge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5jb21wb25lbnQtc2NyZWVuaW5nc19fcm93IHtcbiAgICAgIC5wYXRoLWZyb250cGFnZSAmIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIGNvbG9yOiAkY29sb3I7XG4gICAgICBwYWRkaW5nOiA4cHggMCA3cHg7XG4gICAgICBAaW5jbHVkZSBweC1yZW0oZm9udC1zaXplLCAxNHB4KTtcbiAgICB9XG5cbiAgICAuYWxsLXNjcmVlbmluZ3Mge1xuICAgICAgLy9tYXJnaW4tdG9wOiBhdXRvO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAuYWxsLXNjcmVlbmluZ3MtY29udGVudCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAvL2JvcmRlcjogMXB4IHNvbGlkIHZhcigtLXMtZ3JleSk7XG4gICAgICAgIGJveC1zaGFkb3c6IDBweCA1cHggd2hpdGU7XG4gICAgICB9XG5cbiAgICAgICYuY29sbGFwc2VkIHtcbiAgICAgICAgLmFsbC1zY3JlZW5pbmdzLWNvbnRlbnQge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5leHBhbmRlZCB7XG4gICAgICAgIC5hbGwtc2NyZWVuaW5ncy1jb250ZW50IHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIC5pY29uYS1kb3duIHtcbiAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmFsbC1zY3JlZW5pbmdzLXRpdGxlIHtcbiAgICAgIC8vY29sb3I6ICNmZmY7XG4gICAgICAvL2ZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAvL2JhY2tncm91bmQtY29sb3I6IHZhcigtLXMtcmVkKTtcbiAgICAgIHBhZGRpbmc6IDVweCAwO1xuICAgICAgLy8gdG8gYWxpZ24gdGhlIGRyb3AgaWNvblxuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgLmFsbC1zY3JlZW5pbmdzLWNvbnRlbnQge1xuICAgICAgcGFkZGluZzogMCA1cHg7XG4gICAgfVxuXG4gIH1cbn1cbiIsIi5ub2RlLS10eXBlLWZpbG1yZWVrcyB7XG4gICYubm9kZS0tdmlldy1tb2RlLWZ1bGwtaGVhZGVyIHtcbiAgICBoMSB7XG4gICAgICBzcGFuOjphZnRlciB7XG4gICAgICAgIEBpbmNsdWRlIGljb24tYmVmb3JlO1xuICAgICAgICBjb250ZW50OiAnXFxlOTBiJztcbiAgICAgICAgZm9udC1zaXplOiAkaDMtZm9udC1zaXplO1xuICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDE2cHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLm5vZGUtLXZpZXctbW9kZS1mdWxsLXNpZGViYXIge1xuICAgIHNwYW4uZmlsZSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICAgICAgbWFyZ2luLWJvdHRvbTogM3B4O1xuICAgIH1cblxuICAgIC5maWVsZC0tbmFtZS1maWVsZC1wYWNrYWdlLWxpbmsge1xuICAgICAgLmZpZWxkX19pdGVtIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogM3B4O1xuICAgICAgfVxuICAgIH1cblxuICAgIC5wYWNrYWdlX19zdXBwbGllciB7XG4gICAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgICAgJjpiZWZvcmUge1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgY29udGVudDogJ0RlemUgZmlsbSB3b3JkdCB1IGFhbmdlYm9kZW4gZG9vciAnO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4ucGFnZS1ub2RlLXR5cGUtZmlsbXJlZWtzIHtcbiAgJi5sYXlvdXQtb25lLXNpZGViYXIge1xuICAgIGFzaWRlLmxheW91dC1zaWRlYmFyLWZpcnN0IHtcbiAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAubm9kZS0tdHlwZS1maWxtIHtcbiAgICAmLm5vZGUtLXZpZXctbW9kZS10ZWFzZXIge1xuICAgICAgLm5vcGFja2FnZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbn1cbiIsIi5ub2RlLS10eXBlLWhvbWVwYWdlIHtcbiAgJi5ub2RlLS12aWV3LW1vZGUtZnVsbC1zaGFkaW5nLW9uZSxcbiAgJi5ub2RlLS12aWV3LW1vZGUtZnVsbC1zaGFkaW5nLXRocmVlIHtcbiAgICAudGVhc2VycyB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTEpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBhbGlnbi1pdGVtczogc3RhcnQ7XG4gICAgICB9XG5cbiAgICB9XG4gIH1cbn0iLCIucGFnZS1ub2RlLXR5cGUtbXVsdGlwYWdlIHtcbiAgLm5vZGUtLXZpZXctbW9kZS1mdWxsLWhlYWRlciAuY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBpbm5lci1jb250YWluZXI7XG4gICAgQGluY2x1ZGUgaW50cm87XG4gICAgcGFkZGluZy1ib3R0b206IDMwcHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDE7XG4gIH1cblxuICAuY29udGVudCAuY29udGFpbmVyIHtcbiAgICBwYWRkaW5nLXRvcDogNTBweDtcbiAgfVxufVxuXG4ubm9kZS1maWxtX19iYW5uZXIge1xuICBpbWcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5cbi5ub2RlLS10eXBlLW11bHRpcGFnZSB7XG4gIC5ncm91cC1sZWZ0IHtcbiAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMTIgb2YgMTIpO1xuICAgIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTEpIHtcbiAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg2IG9mIDEyKTtcbiAgICB9XG4gIH1cblxuICAuZ3JvdXAtcmlnaHQge1xuICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygxMiBvZiAxMik7XG4gICAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQtMSkge1xuICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDYgb2YgMTIpO1xuICAgICAgQGluY2x1ZGUgb21lZ2E7XG4gICAgfVxuICB9XG59XG5cbi5ub2RlLS10eXBlLXN1YnBhZ2Uubm9kZS0tdmlldy1tb2RlLXRlYXNlciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAuZmllbGQtLW5hbWUtZmllbGQtbXVsdGlwYWdlLWJvZHkgKyAmIHtcbiAgICBtYXJnaW4tdG9wOiAxM3B4O1xuICB9XG59XG5cbi5zdWJwYWdlLWFuY2hvciB7XG4gIEBpbmNsdWRlIGJ1dHRvbi1yZWQ7XG4gIG1hcmdpbjogMCA1cHggOHB4O1xufVxuXG4uc3VicGFnZSB7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIG1hcmdpbi1ib3R0b206IGZsZXgtZ3V0dGVyKDYpO1xuICBwYWRkaW5nOiAyMHB4IDI1cHg7XG5cbiAgaWZyYW1lIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIHA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuIiwiLm5vZGUtLXR5cGUtbmV3cyB7XG4gICYubm9kZS0tdmlldy1tb2RlLXRlYXNlciB7XG4gICAgYS5maWVsZC1ncm91cC1saW5rIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGNvbG9yOiAkYmFzZS10ZXh0LWNvbG9yO1xuICAgICAgXG4gICAgICBoNCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gICAgICAgIG1hcmdpbi10b3A6IDI1cHg7XG4gICAgICB9XG5cbiAgICAgIC5ub2RlLW5ld3NfX2NvbnRlbnQge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG5cbiAgICAgICAgLm5vZGUtbmV3c19fYm9keSB7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICAgICAgICBmb250LWZhbWlseTogJGJhc2UtZm9udC1mYW1pbHktLWxpZ2h0O1xuXG4gICAgICAgICAgJjpudGgtY2hpbGQoMm4pIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgKiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJi5ub2RlLS12aWV3LW1vZGUtZnVsbCB7XG4gICAgLmNvbnRhaW5lciB7XG4gICAgICBtYXJnaW4tdG9wOiA3MHB4O1xuICAgICAgQGluY2x1ZGUgaW5uZXItY29udGFpbmVyLXNtYWxsO1xuXG4gICAgICA+IGRpdiB7XG4gICAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaDEge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgIC5ub2RlLW5ld3NfX2ludHJvIHtcbiAgICAgIGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LXNpemU7XG4gICAgICBmb250LWZhbWlseTogJGJhc2UtZm9udC1mYW1pbHktLW1lZGl1bTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIH1cbiAgfVxufVxuXG4ubm9kZS1uZXdzX19kYXRlIHtcbiAgY29sb3I6ICRjb2xvci0tYWNjZW50O1xuICBmb250LXNpemU6IDgwJTtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5LS1tZWRpdW07XG59XG5cbi5ub2RlLW5ld3NfX3JlYWQtbW9yZSB7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5LS1saWdodDtcblxuICBhIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMsXG4gICAgJi5hY3RpdmUsXG4gICAgJi5pcy1hY3RpdmUge1xuICAgICAgY29sb3I6ICRjb2xvci0tYWNjZW50O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vc2VhcmNoIG5ld3NcblxuYm9keS5wYXRoLXpvZWtlbiB7XG4gIC5ub2RlLS10eXBlLW5ld3Mubm9kZS0tdmlldy1tb2RlLXRlYXNlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGltZyB7XG4gICAgICBAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludC0xLCB0cnVlKSB7XG4gICAgICAgIG1heC13aWR0aDogMTcwcHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMzBweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm5vZGUtbmV3c19fY29udGVudCB7XG4gICAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQtMSwgdHJ1ZSkge1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDIwMHB4KTtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDI1cHg7XG4gICAgfVxuICB9XG5cbiAgLm5vZGUtbmV3c19fcmVhZC1tb3JlIHtcbiAgICBAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludC0xLCB0cnVlKSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICByaWdodDogMDtcbiAgICAgIGJvdHRvbTogMHB4O1xuICAgIH1cbiAgfVxufSIsIi5wYWdlLW5vZGUtdHlwZS1maWxtcmVla3Mge1xuICAubm9kZS0tdmlldy1tb2RlLWZ1bGwtaGVhZGVyIC5jb250YWluZXIge1xuICAgIEBpbmNsdWRlIGlubmVyLWNvbnRhaW5lcjtcbiAgICBAaW5jbHVkZSBpbnRybztcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMTtcbiAgfVxuXG4gIC5jb250ZW50IC5jb250YWluZXIge1xuICAgIEBpbmNsdWRlIGlubmVyLWNvbnRhaW5lcjtcbiAgfVxuXG4gIC5zaGFkaW5nXzIge1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICB9XG5cbiAgLm5vZGUtLXZpZXctbW9kZS1mdWxsLXNoYWRpbmctdHdvIHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG59XG5cbi5ub2RlLXBhY2thZ2VfX2Jhbm5lciB7XG4gIGltZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuLm5vZGUtcGFja2FnZV9fbG9nb3Mge1xuICBtYXJnaW4tdG9wOiAzcmVtO1xuICBtYXJnaW4tYm90dG9tOiAtMjBweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gIC5wYXJhZ3JhcGgtLXR5cGUtLWxvZ28ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxufVxuIiwiLnBhZ2Utbm9kZS10eXBlLWJhc2ljLXBhZ2Uge1xuICAuY29udGVudCB7XG4gICAgLmNvbnRhaW5lciB7XG4gICAgICBAaW5jbHVkZSBpbm5lci1jb250YWluZXI7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIH1cbiAgfVxuXG4gIC5ub2RlLS12aWV3LW1vZGUtZnVsbC1oZWFkZXIgLmNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgaW5uZXItY29udGFpbmVyO1xuICAgIEBpbmNsdWRlIGludHJvO1xuICAgIHBhZGRpbmctYm90dG9tOiAzMHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAxO1xuICB9XG5cbiAgLm5vZGUtLXZpZXctbW9kZS1mdWxsLXNpZGViYXIge1xuICAgIHNwYW4uZmlsZSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICAgICAgbWFyZ2luLWJvdHRvbTogM3B4O1xuICAgIH1cblxuICAgIC5maWVsZC0tbmFtZS1maWVsZC1wYWNrYWdlLWxpbmsge1xuICAgICAgLmZpZWxkX19pdGVtIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogM3B4O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4ubm9kZS1iYXNpYy1wYWdlX19iYW5uZXIge1xuICBpbWcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG4iLCJ1bC5yc2xpZGVzIHtcbiAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQtMiwgdHJ1ZSkge1xuICAgIG1pbi1oZWlnaHQ6IDU0MHB4O1xuICB9XG59XG5cbi5ub2RlLS10eXBlLXNsaWRlIHtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIC5jb250YWluZXIge1xuICAgIEBpbmNsdWRlIGlubmVyLWNvbnRhaW5lcjtcbiAgICBAaW5jbHVkZSBpbnRybztcblxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAxO1xuICB9XG5cbiAgLmNvbnRleHR1YWwge1xuICAgIGxpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxuXG4gIC5idXR0b24gYSB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLWJsYWNrO1xuICAgIG1hcmdpbi10b3A6IDE1cHg7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbn1cblxuLnJzbGlkZXNfdGFicyB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGZvbnQtc2l6ZTogMXB4O1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0b3A6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICB6LWluZGV4OiAxMDA7XG5cbiAgbGkge1xuICAgIEBpbmNsdWRlIGhpZGUtdGV4dDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICBhIHtcbiAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgICAgd2lkdGg6IDEwcHg7XG4gICAgICBoZWlnaHQ6IDEwcHg7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW46IDAgNXB4O1xuICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgMTBweCAwIHJnYmEoMCwgMCwgMCwgLjUpO1xuICAgICAgLW1vei1ib3gtc2hhZG93OiAwIDAgMTBweCAwIHJnYmEoMCwgMCwgMCwgLjUpO1xuICAgICAgYm94LXNoYWRvdzogMCAwIDEwcHggMCByZ2JhKDAsIDAsIDAsIC41KTtcbiAgICB9XG5cbiAgICAmLnJzbGlkZXNfaGVyZSBhIHtcbiAgICAgIGJhY2tncm91bmQ6ICRjb2xvci0tYWNjZW50O1xuICAgIH1cbiAgfVxufVxuXG4ubm9kZS0tdmlldy1tb2RlLWZ1bGwtaGVhZGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuIiwiLy9zaWRlYmFyIGZhY2V0c1xuXG4uYmxvY2stZmFjZXRzIHtcbiAgcGFkZGluZzogMTBweCAxNXB4O1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludC0xLCB0cnVlKSB7XG4gICAgQGluY2x1ZGUgaW5uZXItY29udGFpbmVyO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIHBhZGRpbmc6IDEwcHggNDBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICB9XG5cbiAgdWwge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgcGFkZGluZzogMTBweCAwIDAgMDtcbiAgICBtYXJnaW46IDA7XG5cbiAgICBsaSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG1hcmdpbi1yaWdodDogMjVweDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgfVxuICB9XG59XG5cbi8vc2VhcmNoIGZpbHRlclxuLnZpZXctem9la2VuIHtcbiAgLnZpZXctaGVhZGVyIHtcbiAgICBwYWRkaW5nOiAxMHB4IDE1cHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludC0xLCB0cnVlKSB7XG4gICAgICBAaW5jbHVkZSBpbm5lci1jb250YWluZXI7XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIHBhZGRpbmc6IDEwcHggNDBweDtcbiAgICB9XG4gIH1cblxuICAudmlldy1lbXB0eSB7XG4gICAgcGFkZGluZzogMTBweCAxNXB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQtMSwgdHJ1ZSkge1xuICAgICAgQGluY2x1ZGUgaW5uZXItY29udGFpbmVyO1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICBwYWRkaW5nOiAxMHB4IDQwcHg7XG4gICAgfVxuICB9XG5cbiAgaW5wdXQjZWRpdC1zZWFyY2gtYXBpLWZ1bGx0ZXh0IHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cblxuICBpbnB1dC5idXR0b24ge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1yZWQ7XG4gICAgbWFyZ2luOiAxMHB4IDA7XG4gIH1cblxuICAudmlldy1maWx0ZXJzIHtcbiAgICBwYWRkaW5nOiAwIDE1cHggMTBweCAxNXB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludC0xLCB0cnVlKSB7XG4gICAgICBAaW5jbHVkZSBpbm5lci1jb250YWluZXI7XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIH1cbiAgICBsYWJlbCB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cbiAgICAudmlld3MtZXhwb3NlZC1mb3JtIHtcbiAgICAgIGZvcm0gaW5wdXRbdHlwZT0ndGV4dCddIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnZpZXctY29udGVudCB7XG4gICAgcGFkZGluZzogMTVweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQtMSwgdHJ1ZSkge1xuICAgICAgQGluY2x1ZGUgaW5uZXItY29udGFpbmVyO1xuICAgICAgbWFyZ2luOiAyNXB4IGF1dG87XG4gICAgfVxuICAgIC52aWV3cy1yb3cge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDtcblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvL3BhZ2VyXG5cbiAgbmF2LnBhZ2VyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdWwge1xuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgIGxpIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgIGEge1xuICAgICAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICAgICAgYSB7XG4gICAgICAgICAgICBjb2xvcjogIzMzMztcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cbi8vc2VhcmNoIHJlc3VsdHMgYmFzaWMgcGFnZSAtIGZpbG0gLSBmaWxtcmVla3MgLSBuaWV1d3MtIHN1YnBhZ2VcbmEuc2VhcmNocmVzdWx0X19saW5rIHtcbiAgZGlzcGxheTogZmxleDtcbiAgY29sb3I6ICMzMzM7XG5cbiAgJjpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGNvbG9yOiAjMzMzO1xuICB9XG59XG5cbi5zZWFyY2hyZXN1bHQgYSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGNvbG9yOiAjMzMzO1xuXG4gICY6aG92ZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjb2xvcjogIzMzMztcbiAgfVxufVxuXG4uc2VhcmNocmVzdWx0X19sZWZ0IHtcbiAgZmxleDogMCAwIDgwcHg7XG4gIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTEsIHRydWUpIHtcbiAgICBmbGV4OiAwIDAgMTcwcHg7XG4gIH1cbiB9XG5cbi5zZWFyY2hyZXN1bHRfX3JpZ2h0IHtcbiAgZmxleDogMSAxIGF1dG87XG4gIGg0IHtcbiAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICB9XG59XG5cbi5zZWFyY2hyZXN1bHRfX2xlZnQgKyAuc2VhcmNocmVzdWx0X19yaWdodCB7XG4gIG1hcmdpbi1sZWZ0OiAzMHB4O1xufVxuXG5cbi8vc3VicGFnZXNcblxuLm5vZGUtLXR5cGUtc3VicGFnZS5ub2RlLS12aWV3LW1vZGUtc2VhcmNocmVzdWx0IHtcbiAgaDQge1xuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gIH1cbn1cbiIsIi8vIFN0eWxlcyA+IFZpZXcuXG4vLyBTbmlwcGV0cyBvZiByZXVzYWJsZSBDU1MgY29uY2VybmluZyBzcGVjaWZpYyB2aWV3cywgZS5nLiAndmlldy1uZXdzJ1xuLy8gSW1wb3J0IGFsbCB5b3VyIHZpZXcgc2FzcyBmaWxlcyBpbiB0aGlzIGZpbGUuXG5cbkBpbXBvcnQgJ3ZpZXctZmlsbXMtYXZhbnRwcmVtaWVyZSc7XG5AaW1wb3J0ICd2aWV3LWZpbG1zLXByb2dyYW1tZSc7XG5AaW1wb3J0ICd2aWV3LWZpbG1zLXBhY2thZ2UnO1xuQGltcG9ydCAndmlldy1uZXdzJztcbkBpbXBvcnQgJ3ZpZXctcGFja2FnZXMnO1xuQGltcG9ydCAndmlldy1maWxtcy1pbi1kZXplLWZpbG1yZWVrcy1zY3JlZW5pbmctZGF0ZXMnO1xuIiwiLnZpZXctZmlsbXMtYXZhbnRwcmVtaWVyZSB7XG4gIC8vQGluY2x1ZGUgdmlld3MtZmlsbXMtLXRlYXNlcnM7XG59XG4iLCIudmlldy1maWxtcy1wcm9ncmFtbWUsXG4udmlldy1maWxtcy1wYWNrYWdlLFxuLnZpZXctZmlsbXMtYXZhbnRwcmVtaWVyZSxcbi5ibG9jay12aWV3cy1ibG9ja2ZpbG1zLW9wLWhldC1wcm9ncmFtbWEtem9uZGVyLXRpamRzdGlwLWJsb2NrLTEge1xuICAvL0BpbmNsdWRlIHZpZXdzLWZpbG1zLS10ZWFzZXJzO1xuICAudmlldy1jb250ZW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICBnYXA6IDEuNXJlbTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTEsIHRydWUpIHtcbiAgICAgIGp1c3RpZnktY29udGVudDogdW5zZXQ7XG4gICAgfVxuXG4gIH1cbn1cblxuI3N0aWNreVRpdGxlQmFyIHtcbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYmFzZS1ib3JkZXItY29sb3I7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aWR0aDogMTAwJTtcbiAgei1pbmRleDogOTk5O1xuXG4gIHBhZGRpbmc6IDEwcHg7XG59IiwiLnZpZXctZmlsbXMtcGFja2FnZSB7XG4gIC8vQGluY2x1ZGUgdmlld3MtZmlsbXMtLXRlYXNlcnM7XG59XG4iLCIudmlldy1uZXdzIHtcbiAgLnZpZXdzLXJvdyB7XG4gICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDEyIG9mIDEyKTtcbiAgICBAaW5jbHVkZSBweC1yZW0oZm9udC1zaXplLCAxNnB4KTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTEsIHRydWUpIHtcbiAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg0IG9mIDEyKTtcblxuICAgICAgJjpudGgtY2hpbGQoM24pIHtcbiAgICAgICAgQGluY2x1ZGUgb21lZ2E7XG4gICAgICB9XG5cbiAgICAgICY6bnRoLWNoaWxkKDNuICsgMSkge1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuICB9XG5cbiAgLnZpZXctY29udGVudCB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuXG4gIC52aWV3LWZvb3RlciB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbn1cbiIsIi5ibG9jay12aWV3cy1ibG9ja3BhY2thZ2VzLWJsb2NrLXBhY2thZ2VzX19maWxtcmVla3Nlbixcbi5ibG9jay12aWV3cy1ibG9ja3BhY2thZ2VzLWJsb2NrLXBhY2thZ2VzX19mZXN0aXZhbHMsXG4uYmxvY2stdmlld3MtYmxvY2twYWNrYWdlcy1ibG9jay1wYWNrYWdlc19fc3BlY2lhbCB7XG4gIEBpbmNsdWRlIHNwYW4tY29sdW1ucygxMiBvZiAxMik7XG4gIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTIsIHRydWUpIHtcbiAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNCBvZiAxMik7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuICBtYXJnaW4tYm90dG9tOiA0MHB4O1xuXG4gIGgyIHtcbiAgICBtYXJnaW4tYm90dG9tOiA0MHB4O1xuICB9XG59XG5cbi5ibG9jay12aWV3cy1ibG9ja3BhY2thZ2VzLWJsb2NrLXBhY2thZ2VzX19zcGVjaWFsIHtcbiAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQtMiwgdHJ1ZSkge1xuICAgIEBpbmNsdWRlIG9tZWdhO1xuICB9XG59XG5cbi52aWV3LXBhY2thZ2VzIHtcbiAgJi5ibG9jay1wYWNrYWdlcyB7XG4gICAgLnZpZXctZW1wdHkge1xuICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDkgb2YgOSk7XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGJhc2UtYm9yZGVyLWNvbG9yO1xuICAgICAgcGFkZGluZzogMTVweCAxMHB4O1xuICAgIH1cblxuICAgIC52aWV3LWhlYWRlciB7XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGJhc2UtYm9yZGVyLWNvbG9yO1xuICAgICAgcGFkZGluZzogMTVweCAwIDE1cHggMTBweDtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICAgIGEge1xuICAgICAgICBmb250LWZhbWlseTogJGJhc2UtZm9udC1mYW1pbHktLW1lZGl1bTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAudmlldy1jb250ZW50IHtcbiAgICAgIC52aWV3cy1yb3cge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGJhc2UtYm9yZGVyLWNvbG9yO1xuICAgICAgICBwYWRkaW5nOiAxNXB4IDA7XG5cbiAgICAgICAgLnBhY2thZ2VfX3RpdGxlIHtcbiAgICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNiBvZiA5KTtcbiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogMTBweDtcblxuICAgICAgICAgIGEge1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5LS1tZWRpdW07XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnBhY2thZ2VfX3N1cHBsaWVyIHtcbiAgICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMyBvZiA5KTtcbiAgICAgICAgICBAaW5jbHVkZSBvbWVnYTtcbiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgIEBpbmNsdWRlIHB4LXJlbShmb250LXNpemUsIDE0cHgpO1xuICAgICAgICAgIG1hcmdpbi10b3A6IDRweDtcbiAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cbiAgICAgICAgICBhIHtcbiAgICAgICAgICAgIGNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIudmlldy1maWxtcy1pbi1kZXplLWZpbG1yZWVrcy1zY3JlZW5pbmctZGF0ZXMge1xuICAudmlldy1jb250ZW50IHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygxMiBvZiAxMik7XG4gICAgLy9tYXJnaW46IDAgYXV0byFpbXBvcnRhbnQ7XG4gICAgZmxvYXQ6IG5vbmU7XG5cblxuICAgIC5jb21wb25lbnQtc2NyZWVuaW5ncy0tbW92aWUge1xuICAgICAgbWFyZ2luLXRvcDogMDtcblxuICAgICAgaDIge1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgICAgfVxuXG4gICAgICAuY29tcG9uZW50LXNjcmVlbmluZ3NfX3Jvd3Mge1xuICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuXG4gICAgICAgIC5jb21wb25lbnQtc2NyZWVuaW5nc19fcm93IHtcbiAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRiYXNlLWJvcmRlci1jb2xvcjtcbiAgICAgICAgICB9XG4gICAgICAgICAgLmNvbC1sZWZ0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTIsIHRydWUpIHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDYgb2YgMTIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAuY29sLXJpZ2h0IHtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQtMiwgdHJ1ZSkge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNiBvZiAxMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5jb21wb25lbnQtc2NyZWVuaW5nc19fZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgICBtYXJnaW46IDIwcHggMTBweCAwIDEwcHg7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQtMiwgdHJ1ZSkge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC52aWV3LWVtcHR5IHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luLWJvdHRvbTogNTBweDtcbiAgfVxufVxuXG4uYmxvY2stdmlld3MtYmxvY2tmaWxtcy1pbi1kZXplLWZpbG1yZWVrcy1zY3JlZW5pbmctZGF0ZXMtYmxvY2stMSB7XG4gIC52aWV3LWNvbnRlbnQgPiBoMiB7XG4gICAgbWFyZ2luLXRvcDogNTBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59IiwiLy8gU3R5bGVzID4gUGFnZS5cbi8vIFNuaXBwZXRzIG9mIHJldXNhYmxlIENTUyBjb25jZXJuaW5nIHNwZWNpZmljIHBhZ2VzLCBlLmcuICdwYWdlLXNlYXJjaCdcbi8vIEltcG9ydCBhbGwgeW91ciBwYWdlIHNhc3MgZmlsZXMgaW4gdGhpcyBmaWxlLlxuIiwiQGltcG9ydCAnYmxvY2stbG9nbyc7XG4iLCIuYmxvY2subG9nby1ibG9jayB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAuZmllbGRfX2l0ZW0ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IDJweDtcbiAgfVxuXG4gIC5maWVsZF9faXRlbTpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6IkEwRkdFLEFBQUEsSUFBSSxDQUFDO0VBQ0gsVUFBVSxFQUFFLFVBQVcsR0FDeEI7O0FBRUQsQUFBQSxDQUFDLEVBQUQsQUFBQSxDQUFDLEFBRUUsT0FBTyxFQUZWLEFBQUEsQ0FBQyxBQUdFLFFBQVEsQ0FBQztFQUNSLFVBQVUsRUFBRSxPQUFRLEdBQ3JCOztBYVJMLEFBQUEsS0FBSyxDQUFDO0VBQ0osUUFBUSxFQUFFLElB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 */
