@charset "UTF-8";
/* Welcome to Compass. Use this file to define print styles.
 * Import this file using the following HTML or equivalent:
 * <link href="/stylesheets/print.css" media="print" rel="stylesheet" type="text/css" /> */
div.c-color-block {
  display: inline-block;
  height: 126px;
  width: 126px; }
  div.c-color-block.v-green {
    background-color: #00E63C; }
  div.c-color-block.v-black {
    background-color: #000000; }
  div.c-color-block.v-red {
    background-color: #FF3C00; }
  div.c-color-block.v-pink {
    background-color: #F03CA5; }
  div.c-color-block.v-yellow {
    background-color: #FFE600; }
  div.c-color-block.v-blue {
    background-color: #0096FA; }
  div.c-color-block.v-grey {
    background-color: #E6E6E6; }

/**
 * @license
 * MyFonts Webfont Build ID 2700764, 2013-12-03T11:38:10-0500
 *
 * The fonts listed in this notice are subject to the End User License
 * Agreement(s) entered into by the website owner. All other parties are
 * explicitly restricted from using the Licensed Webfonts(s).
 *
 * You may obtain a valid license at the URLs below.
 *
 * Webfont: Corbel Bold Italic by Ascender
 * URL: http://www.myfonts.com/fonts/ascender/corbel/bold-italic/
 *
 * Webfont: Corbel by Ascender
 * URL: http://www.myfonts.com/fonts/ascender/corbel/regular/
 *
 * Webfont: Corbel Bold by Ascender
 * URL: http://www.myfonts.com/fonts/ascender/corbel/bold/
 *
 * Webfont: Corbel Italic by Ascender
 * URL: http://www.myfonts.com/fonts/ascender/corbel/italic/
 *
 *
 * License: http://www.myfonts.com/viewlicense?type=web&buildid=2700764
 * Licensed pageviews: 250,000
 * Webfonts copyright: &#x00A9; 2007 Microsoft Corporation. All Rights Reserved.
 *
 * © 2013 MyFonts Inc
*/
/* @import must be at top of file, otherwise CSS will not work */
@font-face {
  font-family: 'Corbel';
  font-weight: bold;
  font-style: italic;
  src: url("../fonts/corbel/2935DC_0_0.eot");
  src: url("../fonts/corbel/2935DC_0_0.eot?#iefix") format("embedded-opentype"), url("../fonts/corbel/2935DC_0_0.woff") format("woff"), url("../fonts/corbel/2935DC_0_0.ttf") format("truetype"), url("../fonts/corbel/2935DC_0_0.svg#wf") format("svg"); }

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

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

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

/*
 * OTHER FONTS: Klavika and icons
 */
@font-face {
  font-family: 'Klavika';
  src: url("../fonts/klavika-bold-webfont.eot");
  src: local("☺"), url("../fonts/klavika-bold-webfont.woff") format("woff"), url("../fonts/klavika-bold-webfont.svg") format("svg");
  font-weight: bold;
  font-style: normal; }

@font-face {
  font-family: 'Klavika';
  src: url("../fonts/klavika-regular-webfont.eot");
  src: local("☺"), url("../fonts/klavika-regular-webfont.woff") format("woff"), url("../fonts/klavika-regular-webfont.svg") format("svg");
  font-weight: normal;
  font-style: normal; }

/**
   * @license
   * MyFonts Webfont Build ID 3187250, 2016-03-16T04:25:04-0400
   *
   * The fonts listed in this notice are subject to the End User License
   * Agreement(s) entered into by the website owner. All other parties are
   * explicitly restricted from using the Licensed Webfonts(s).
   *
   * You may obtain a valid license at the URLs below.
   *
   * Webfont: Campton-Book by Rene Bieder
   * URL: http://www.myfonts.com/fonts/rene-bieder/campton/book/
   *
   * Webfont: Campton-Medium by Rene Bieder
   * URL: http://www.myfonts.com/fonts/rene-bieder/campton/medium/
   *
   *
   * License: http://www.myfonts.com/viewlicense?type=web&buildid=3187250
   * Licensed pageviews: 10,000
   * Webfonts copyright: Copyright &#x00A9; 2014 by Ren&#x00E9; Bieder. All rights reserved.
   *
   * © 2016 MyFonts Inc
  */
/* @import must be at top of file, otherwise CSS will not work */
@font-face {
  font-family: 'Campton Book';
  src: url("/static/fonts/campton-webfonts/30E1AE_0_0.eot");
  src: url("/static/fonts/campton-webfonts/30E1AE_0_0.eot?#iefix") format("embedded-opentype"), url("/static/fonts/campton-webfonts/30E1AE_0_0.woff2") format("woff2"), url("/static/fonts/campton-webfonts/30E1AE_0_0.woff") format("woff"), url("/static/fonts/campton-webfonts/30E1AE_0_0.ttf") format("truetype"); }

@font-face {
  font-family: 'Campton Medium';
  src: url("/static/fonts/campton-webfonts/30E1AE_1_0.eot");
  src: url("/static/fonts/campton-webfonts/30E1AE_1_0.eot?#iefix") format("embedded-opentype"), url("/static/fonts/campton-webfonts/30E1AE_1_0.woff2") format("woff2"), url("/static/fonts/campton-webfonts/30E1AE_1_0.woff") format("woff"), url("/static/fonts/campton-webfonts/30E1AE_1_0.ttf") format("truetype"); }

@font-face {
  font-family: 'icons';
  src: url("/static/fonts/icomoon.ttf?nemo") format("truetype");
  font-weight: normal;
  font-style: normal; }

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video, button {
  -webkit-backface-visibility: hidden;
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline; }

* {
  box-sizing: border-box; }
  *::before, *::after {
    box-sizing: border-box;
    -webkit-backface-visibility: hidden; }

/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
  display: block; }

body {
  line-height: 1; }

button {
  -webkit-appearance: none;
  -moz-appearance: none;
  -ms-appearance: none;
  -o-appearance: none;
  appearance: none;
  background: transparent;
  border-radius: 0; }

ol, ul {
  list-style: none; }

blockquote, q {
  quotes: none; }

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

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

a {
  color: black;
  text-decoration: none; }

.c-pink-icon.v-arrow-down::after {
  font-size: 30px;
  height: 50px;
  line-height: 50px;
  width: 50px; }

@media screen and (max-width: 1199px) {
  .c-pink-icon.v-arrow-down::after {
    font-size: 30px;
    height: 50px;
    line-height: 50px;
    width: 50px; } }

@media screen and (max-width: 899px) {
  .c-pink-icon.v-arrow-down::after {
    font-size: 30px;
    height: 50px;
    line-height: 50px;
    width: 50px; } }

@media screen and (max-width: 529px) {
  .c-pink-icon.v-arrow-down::after {
    font-size: 30px;
    height: 50px;
    line-height: 50px;
    width: 50px; } }

.c-pink-icon.v-arrow-down::after {
  background-color: #F03CA5;
  color: #000000; }

.c-pink-icon.v-arrow-down::after {
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  font-family: icons;
  content: " ";
  box-sizing: border-box;
  display: inline-block;
  text-align: center;
  text-decoration: none;
  vertical-align: bottom; }

.c-pink-icon.v-arrow-left::after {
  font-size: 50px;
  height: 50px;
  line-height: 50px;
  width: 50px; }

@media screen and (max-width: 1199px) {
  .c-pink-icon.v-arrow-left::after {
    font-size: 50px;
    height: 50px;
    line-height: 50px;
    width: 50px; } }

@media screen and (max-width: 899px) {
  .c-pink-icon.v-arrow-left::after {
    font-size: 50px;
    height: 50px;
    line-height: 50px;
    width: 50px; } }

@media screen and (max-width: 529px) {
  .c-pink-icon.v-arrow-left::after {
    font-size: 50px;
    height: 50px;
    line-height: 50px;
    width: 50px; } }

.c-pink-icon.v-arrow-left::after {
  background-color: #F03CA5;
  color: #000000; }

.c-pink-icon.v-arrow-left::after {
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  font-family: icons;
  content: " ";
  box-sizing: border-box;
  display: inline-block;
  text-align: center;
  text-decoration: none;
  vertical-align: bottom; }

.c-pink-icon.v-arrow-right::after {
  font-size: 50px;
  height: 50px;
  line-height: 50px;
  width: 50px; }

@media screen and (max-width: 1199px) {
  .c-pink-icon.v-arrow-right::after {
    font-size: 50px;
    height: 50px;
    line-height: 50px;
    width: 50px; } }

@media screen and (max-width: 899px) {
  .c-pink-icon.v-arrow-right::after {
    font-size: 50px;
    height: 50px;
    line-height: 50px;
    width: 50px; } }

@media screen and (max-width: 529px) {
  .c-pink-icon.v-arrow-right::after {
    font-size: 50px;
    height: 50px;
    line-height: 50px;
    width: 50px; } }

.c-pink-icon.v-arrow-right::after {
  background-color: #F03CA5;
  color: #000000; }

.c-pink-icon.v-arrow-right::after {
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  font-family: icons;
  content: " ;";
  box-sizing: border-box;
  display: inline-block;
  text-align: center;
  text-decoration: none;
  vertical-align: bottom; }

.c-pink-icon.v-arrow-up::after {
  font-size: 50px;
  height: 50px;
  line-height: 50px;
  width: 50px; }

@media screen and (max-width: 1199px) {
  .c-pink-icon.v-arrow-up::after {
    font-size: 50px;
    height: 50px;
    line-height: 50px;
    width: 50px; } }

@media screen and (max-width: 899px) {
  .c-pink-icon.v-arrow-up::after {
    font-size: 50px;
    height: 50px;
    line-height: 50px;
    width: 50px; } }

@media screen and (max-width: 529px) {
  .c-pink-icon.v-arrow-up::after {
    font-size: 50px;
    height: 50px;
    line-height: 50px;
    width: 50px; } }

.c-pink-icon.v-arrow-up::after {
  background-color: #F03CA5;
  color: #000000; }

.c-pink-icon.v-arrow-up::after {
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  font-family: icons;
  content: " ";
  box-sizing: border-box;
  display: inline-block;
  text-align: center;
  text-decoration: none;
  vertical-align: bottom; }

.c-pink-icon.v-close::after {
  font-size: 25px;
  height: 50px;
  line-height: 50px;
  width: 50px; }

@media screen and (max-width: 1199px) {
  .c-pink-icon.v-close::after {
    font-size: 25px;
    height: 50px;
    line-height: 50px;
    width: 50px; } }

@media screen and (max-width: 899px) {
  .c-pink-icon.v-close::after {
    font-size: 25px;
    height: 50px;
    line-height: 50px;
    width: 50px; } }

@media screen and (max-width: 529px) {
  .c-pink-icon.v-close::after {
    font-size: 25px;
    height: 50px;
    line-height: 50px;
    width: 50px; } }

.c-pink-icon.v-close::after {
  background-color: #F03CA5;
  color: #000000; }

.c-pink-icon.v-close::after {
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  font-family: icons;
  content: " ";
  box-sizing: border-box;
  display: inline-block;
  text-align: center;
  text-decoration: none;
  vertical-align: bottom; }

.c-pink-icon.v-facebook::after {
  font-size: 35px;
  height: 50px;
  line-height: 50px;
  width: 50px; }

@media screen and (max-width: 1199px) {
  .c-pink-icon.v-facebook::after {
    font-size: 35px;
    height: 50px;
    line-height: 50px;
    width: 50px; } }

@media screen and (max-width: 899px) {
  .c-pink-icon.v-facebook::after {
    font-size: 35px;
    height: 50px;
    line-height: 50px;
    width: 50px; } }

@media screen and (max-width: 529px) {
  .c-pink-icon.v-facebook::after {
    font-size: 35px;
    height: 50px;
    line-height: 50px;
    width: 50px; } }

.c-pink-icon.v-facebook::after {
  background-color: #F03CA5;
  color: #000000; }

.c-pink-icon.v-facebook::after {
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  font-family: icons;
  content: " ";
  box-sizing: border-box;
  display: inline-block;
  text-align: center;
  text-decoration: none;
  vertical-align: bottom; }

.c-pink-icon.v-hamburger::after {
  font-size: 20px;
  height: 50px;
  line-height: 50px;
  width: 50px; }

@media screen and (max-width: 1199px) {
  .c-pink-icon.v-hamburger::after {
    font-size: 20px;
    height: 50px;
    line-height: 50px;
    width: 50px; } }

@media screen and (max-width: 899px) {
  .c-pink-icon.v-hamburger::after {
    font-size: 20px;
    height: 50px;
    line-height: 50px;
    width: 50px; } }

@media screen and (max-width: 529px) {
  .c-pink-icon.v-hamburger::after {
    font-size: 20px;
    height: 50px;
    line-height: 50px;
    width: 50px; } }

.c-pink-icon.v-hamburger::after {
  background-color: #F03CA5;
  color: #000000; }

.c-pink-icon.v-hamburger::after {
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  font-family: icons;
  content: " ";
  box-sizing: border-box;
  display: inline-block;
  text-align: center;
  text-decoration: none;
  vertical-align: bottom; }

.c-pink-icon.v-instagram::after {
  font-size: 40px;
  height: 50px;
  line-height: 50px;
  width: 50px; }

@media screen and (max-width: 1199px) {
  .c-pink-icon.v-instagram::after {
    font-size: 40px;
    height: 50px;
    line-height: 50px;
    width: 50px; } }

@media screen and (max-width: 899px) {
  .c-pink-icon.v-instagram::after {
    font-size: 40px;
    height: 50px;
    line-height: 50px;
    width: 50px; } }

@media screen and (max-width: 529px) {
  .c-pink-icon.v-instagram::after {
    font-size: 40px;
    height: 50px;
    line-height: 50px;
    width: 50px; } }

.c-pink-icon.v-instagram::after {
  background-color: #F03CA5;
  color: #000000; }

.c-pink-icon.v-instagram::after {
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  font-family: icons;
  content: " ";
  box-sizing: border-box;
  display: inline-block;
  text-align: center;
  text-decoration: none;
  vertical-align: bottom; }

.c-pink-icon.v-mail::after {
  font-size: 35px;
  height: 50px;
  line-height: 50px;
  width: 50px; }

@media screen and (max-width: 1199px) {
  .c-pink-icon.v-mail::after {
    font-size: 35px;
    height: 50px;
    line-height: 50px;
    width: 50px; } }

@media screen and (max-width: 899px) {
  .c-pink-icon.v-mail::after {
    font-size: 35px;
    height: 50px;
    line-height: 50px;
    width: 50px; } }

@media screen and (max-width: 529px) {
  .c-pink-icon.v-mail::after {
    font-size: 35px;
    height: 50px;
    line-height: 50px;
    width: 50px; } }

.c-pink-icon.v-mail::after {
  background-color: #F03CA5;
  color: #000000; }

.c-pink-icon.v-mail::after {
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  font-family: icons;
  content: " ";
  box-sizing: border-box;
  display: inline-block;
  text-align: center;
  text-decoration: none;
  vertical-align: bottom; }

.c-pink-icon.v-pinterest::after {
  font-size: 40px;
  height: 50px;
  line-height: 50px;
  width: 50px; }

@media screen and (max-width: 1199px) {
  .c-pink-icon.v-pinterest::after {
    font-size: 40px;
    height: 50px;
    line-height: 50px;
    width: 50px; } }

@media screen and (max-width: 899px) {
  .c-pink-icon.v-pinterest::after {
    font-size: 40px;
    height: 50px;
    line-height: 50px;
    width: 50px; } }

@media screen and (max-width: 529px) {
  .c-pink-icon.v-pinterest::after {
    font-size: 40px;
    height: 50px;
    line-height: 50px;
    width: 50px; } }

.c-pink-icon.v-pinterest::after {
  background-color: #F03CA5;
  color: #000000; }

.c-pink-icon.v-pinterest::after {
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  font-family: icons;
  content: " ";
  box-sizing: border-box;
  display: inline-block;
  text-align: center;
  text-decoration: none;
  vertical-align: bottom; }

.c-pink-icon.v-search::after {
  font-size: 25px;
  height: 50px;
  line-height: 50px;
  width: 50px; }

@media screen and (max-width: 1199px) {
  .c-pink-icon.v-search::after {
    font-size: 25px;
    height: 50px;
    line-height: 50px;
    width: 50px; } }

@media screen and (max-width: 899px) {
  .c-pink-icon.v-search::after {
    font-size: 25px;
    height: 50px;
    line-height: 50px;
    width: 50px; } }

@media screen and (max-width: 529px) {
  .c-pink-icon.v-search::after {
    font-size: 25px;
    height: 50px;
    line-height: 50px;
    width: 50px; } }

.c-pink-icon.v-search::after {
  background-color: #F03CA5;
  color: #000000; }

.c-pink-icon.v-search::after {
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  font-family: icons;
  content: " ";
  box-sizing: border-box;
  display: inline-block;
  text-align: center;
  text-decoration: none;
  vertical-align: bottom; }

.c-pink-icon.v-triangle-right::after {
  font-size: 16px;
  height: 50px;
  line-height: 50px;
  width: 50px; }

@media screen and (max-width: 1199px) {
  .c-pink-icon.v-triangle-right::after {
    font-size: 16px;
    height: 50px;
    line-height: 50px;
    width: 50px; } }

@media screen and (max-width: 899px) {
  .c-pink-icon.v-triangle-right::after {
    font-size: 16px;
    height: 50px;
    line-height: 50px;
    width: 50px; } }

@media screen and (max-width: 529px) {
  .c-pink-icon.v-triangle-right::after {
    font-size: 16px;
    height: 50px;
    line-height: 50px;
    width: 50px; } }

.c-pink-icon.v-triangle-right::after {
  background-color: #F03CA5;
  color: #000000; }

.c-pink-icon.v-triangle-right::after {
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  font-family: icons;
  content: " ";
  box-sizing: border-box;
  display: inline-block;
  text-align: center;
  text-decoration: none;
  vertical-align: bottom; }

.c-pink-icon.v-twitter::after {
  font-size: 22.5px;
  height: 50px;
  line-height: 50px;
  width: 50px; }

@media screen and (max-width: 1199px) {
  .c-pink-icon.v-twitter::after {
    font-size: 22.5px;
    height: 50px;
    line-height: 50px;
    width: 50px; } }

@media screen and (max-width: 899px) {
  .c-pink-icon.v-twitter::after {
    font-size: 22.5px;
    height: 50px;
    line-height: 50px;
    width: 50px; } }

@media screen and (max-width: 529px) {
  .c-pink-icon.v-twitter::after {
    font-size: 22.5px;
    height: 50px;
    line-height: 50px;
    width: 50px; } }

.c-pink-icon.v-twitter::after {
  background-color: #F03CA5;
  color: #000000; }

.c-pink-icon.v-twitter::after {
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  font-family: icons;
  content: " ";
  box-sizing: border-box;
  display: inline-block;
  text-align: center;
  text-decoration: none;
  vertical-align: bottom; }

.c-pink-icon.v-big-triangle-right::after {
  font-size: 30px;
  height: 50px;
  line-height: 50px;
  width: 50px; }

@media screen and (max-width: 1199px) {
  .c-pink-icon.v-big-triangle-right::after {
    font-size: 30px;
    height: 50px;
    line-height: 50px;
    width: 50px; } }

@media screen and (max-width: 899px) {
  .c-pink-icon.v-big-triangle-right::after {
    font-size: 30px;
    height: 50px;
    line-height: 50px;
    width: 50px; } }

@media screen and (max-width: 529px) {
  .c-pink-icon.v-big-triangle-right::after {
    font-size: 30px;
    height: 50px;
    line-height: 50px;
    width: 50px; } }

.c-pink-icon.v-big-triangle-right::after {
  background-color: #F03CA5;
  color: #000000; }

.c-pink-icon.v-big-triangle-right::after {
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  font-family: icons;
  content: " ";
  box-sizing: border-box;
  display: inline-block;
  text-align: center;
  text-decoration: none;
  vertical-align: bottom; }

.c-pink-icon.v-big-triangle-left::after {
  font-size: 30px;
  height: 50px;
  line-height: 50px;
  width: 50px; }

@media screen and (max-width: 1199px) {
  .c-pink-icon.v-big-triangle-left::after {
    font-size: 30px;
    height: 50px;
    line-height: 50px;
    width: 50px; } }

@media screen and (max-width: 899px) {
  .c-pink-icon.v-big-triangle-left::after {
    font-size: 30px;
    height: 50px;
    line-height: 50px;
    width: 50px; } }

@media screen and (max-width: 529px) {
  .c-pink-icon.v-big-triangle-left::after {
    font-size: 30px;
    height: 50px;
    line-height: 50px;
    width: 50px; } }

.c-pink-icon.v-big-triangle-left::after {
  background-color: #F03CA5;
  color: #000000; }

.c-pink-icon.v-big-triangle-left::after {
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  font-family: icons;
  content: " ";
  box-sizing: border-box;
  display: inline-block;
  text-align: center;
  text-decoration: none;
  vertical-align: bottom; }

.c-pink-icon.v-chevron-left::after {
  font-size: 30px;
  height: 50px;
  line-height: 50px;
  width: 50px; }

@media screen and (max-width: 1199px) {
  .c-pink-icon.v-chevron-left::after {
    font-size: 30px;
    height: 50px;
    line-height: 50px;
    width: 50px; } }

@media screen and (max-width: 899px) {
  .c-pink-icon.v-chevron-left::after {
    font-size: 30px;
    height: 50px;
    line-height: 50px;
    width: 50px; } }

@media screen and (max-width: 529px) {
  .c-pink-icon.v-chevron-left::after {
    font-size: 30px;
    height: 50px;
    line-height: 50px;
    width: 50px; } }

.c-pink-icon.v-chevron-left::after {
  background-color: #F03CA5;
  color: #000000; }

.c-pink-icon.v-chevron-left::after {
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  font-family: icons;
  content: " ";
  box-sizing: border-box;
  display: inline-block;
  text-align: center;
  text-decoration: none;
  vertical-align: bottom; }

.c-pink-icon.v-chevron-right::after {
  font-size: 30px;
  height: 50px;
  line-height: 50px;
  width: 50px; }

@media screen and (max-width: 1199px) {
  .c-pink-icon.v-chevron-right::after {
    font-size: 30px;
    height: 50px;
    line-height: 50px;
    width: 50px; } }

@media screen and (max-width: 899px) {
  .c-pink-icon.v-chevron-right::after {
    font-size: 30px;
    height: 50px;
    line-height: 50px;
    width: 50px; } }

@media screen and (max-width: 529px) {
  .c-pink-icon.v-chevron-right::after {
    font-size: 30px;
    height: 50px;
    line-height: 50px;
    width: 50px; } }

.c-pink-icon.v-chevron-right::after {
  background-color: #F03CA5;
  color: #000000; }

.c-pink-icon.v-chevron-right::after {
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  font-family: icons;
  content: " ";
  box-sizing: border-box;
  display: inline-block;
  text-align: center;
  text-decoration: none;
  vertical-align: bottom; }

/* A size variation of a configured c-text-icon-button-old */
/* A size variation of a configured c-text-icon-button */
.c-coloured-label {
  font-family: Campton Medium, sans-serif;
  font-size: 16px;
  line-height: 50px;
  text-decoration: none;
  color: #000000;
  display: inline-block;
  height: 50px;
  line-height: 50px;
  padding-left: 25px;
  padding-right: 25px;
  background-color: #00E63C; }
  body.theme-yellow .c-coloured-label {
    background-color: #FFE600; }
  body.theme-purple .c-coloured-label {
    background-color: #F03CA5; }
  body.theme-blue .c-coloured-label {
    background-color: #0096FA; }
  body.theme-orange .c-coloured-label {
    background-color: #FF3C00; }
  body.theme-green .c-coloured-label {
    background-color: #00E63C; }
  body.theme-pink .c-coloured-label {
    background-color: #F03CA5; }

.ribbon {
  font-family: Campton Medium, sans-serif;
  font-size: 16px;
  line-height: 50px;
  text-decoration: none;
  font-size: 12px;
  text-transform: uppercase;
  position: absolute;
  left: 0px;
  top: 0px;
  display: block;
  height: 30px;
  line-height: 30px;
  background-color: #00E63C;
  color: #000000;
  padding: 0 15px;
  z-index: 1; }
  .ribbon span {
    font-size: 16px; }

.ribbon-category {
  font-family: Campton Medium, sans-serif;
  font-size: 16px;
  line-height: 50px;
  text-decoration: none;
  font-size: 14px;
  letter-spacing: 0.5px;
  position: absolute;
  left: 0px;
  bottom: 0px;
  display: block;
  height: 30px;
  line-height: 30px;
  background-color: #000000;
  color: #FFFFFF;
  z-index: 1;
  padding: 0 22px; }
  @media screen and (max-width: 665px) {
    .ribbon-category {
      padding: 0 10px;
      width: 100%;
      overflow: hidden; } }

.page-representation__header .ribbon-category {
  font-weight: 300; }

.ribbon-mobile {
  font-family: Campton Medium, sans-serif;
  font-size: 16px;
  line-height: 50px;
  text-decoration: none;
  font-size: 12px;
  text-transform: uppercase;
  height: 20px;
  line-height: 20px;
  background-color: #00E63C;
  color: #000000;
  padding: 0 10px;
  z-index: 1;
  display: block;
  width: 100%;
  overflow: hidden; }

body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-smoothing: antialiased; }

.c-rich-text a:not(.contest-video):not(.button) {
  font-family: Campton Book, sans-serif;
  font-size: 16px;
  line-height: 24px;
  text-decoration: none;
  text-transform: none;
  color: #000000;
  text-decoration: underline; }
  .c-rich-text a:not(.contest-video):not(.button):hover {
    text-decoration: none; }
  .c-rich-text a:not(.contest-video):not(.button)::-moz-selection {
    color: #FFFFFF; }
  .c-rich-text a:not(.contest-video):not(.button)::selection {
    color: #FFFFFF; }

.c-rich-text strong, .c-rich-text b {
  font-weight: bold; }

.c-rich-text em, .c-rich-text i {
  font-style: italic; }

.c-rich-text ol {
  font-family: Campton Book, sans-serif;
  font-size: 16px;
  line-height: 24px;
  text-decoration: none;
  text-transform: none;
  counter-reset: foo;
  display: table; }
  .c-rich-text ol a:not(.contest-video):not(.button) {
    font-family: Campton Book, sans-serif;
    font-size: 16px;
    line-height: 24px;
    text-decoration: none;
    text-transform: none;
    color: #000000;
    text-decoration: underline; }
    .c-rich-text ol a:not(.contest-video):not(.button):hover {
      text-decoration: none; }
    .c-rich-text ol a:not(.contest-video):not(.button)::-moz-selection {
      color: #FFFFFF; }
    .c-rich-text ol a:not(.contest-video):not(.button)::selection {
      color: #FFFFFF; }
  .c-rich-text ol strong, .c-rich-text ol b {
    font-weight: bold; }
  .c-rich-text ol em, .c-rich-text ol i {
    font-style: italic; }
  .c-rich-text ol li {
    list-style: none;
    counter-increment: foo;
    display: table-row; }
    .c-rich-text ol li::before {
      content: counter(foo) ".";
      display: table-cell;
      text-align: right;
      padding-right: 11px; }

.c-rich-text ul {
  font-family: Campton Book, sans-serif;
  font-size: 16px;
  line-height: 24px;
  text-decoration: none;
  text-transform: none;
  padding-top: 10px;
  padding-bottom: 10px;
  margin-left: 7px; }
  .c-rich-text ul a:not(.contest-video):not(.button) {
    font-family: Campton Book, sans-serif;
    font-size: 16px;
    line-height: 24px;
    text-decoration: none;
    text-transform: none;
    color: #000000;
    text-decoration: underline; }
    .c-rich-text ul a:not(.contest-video):not(.button):hover {
      text-decoration: none; }
    .c-rich-text ul a:not(.contest-video):not(.button)::-moz-selection {
      color: #FFFFFF; }
    .c-rich-text ul a:not(.contest-video):not(.button)::selection {
      color: #FFFFFF; }
  .c-rich-text ul strong, .c-rich-text ul b {
    font-weight: bold; }
  .c-rich-text ul em, .c-rich-text ul i {
    font-style: italic; }
  .c-rich-text ul li {
    position: relative;
    display: block;
    padding-left: 25px;
    padding-bottom: 5px; }
  .c-rich-text ul:not(.content-list-downloads):not(.content-list-links):not(.arrangements):not(.page-share-wrapper) > li::before {
    content: "■";
    padding-right: 10px;
    color: #000000;
    position: relative;
    left: 0; }

.c-rich-text h3 {
  hyphens: none;
  font-family: Campton Book, sans-serif;
  font-size: 40px;
  line-height: 44px; }
  @media screen and (max-width: 529px) {
    .c-rich-text h3 {
      font-size: 26px;
      line-height: 30px; } }

.c-rich-text h4 {
  hyphens: none;
  font-family: Campton Medium, sans-serif;
  font-size: 18px;
  line-height: 25px; }

.step-viewer-step {
  background-color: #FFFFFF;
  margin-right: 110px;
  position: relative;
  bottom: auto;
  left: auto;
  right: auto;
  top: auto;
  transition: opacity 400ms ease; }
  @media screen and (max-width: 1299px) {
    .step-viewer-step {
      margin-right: 50px; } }
  .step-viewer-step.step-viewer-step--conclusion {
    background-color: #00E63C; }
    .step-viewer-step.step-viewer-step--conclusion .step-viewer-step__header {
      display: none; }
    .step-viewer-step.step-viewer-step--conclusion .step-viewer-step__description {
      padding: 40px; }
      @media screen and (max-width: 659px) {
        .step-viewer-step.step-viewer-step--conclusion .step-viewer-step__description {
          padding: 20px; } }
    .step-viewer-step.step-viewer-step--conclusion:not(.swiper-slide-active)::after {
      display: none; }
  @media screen and (min-width: 768px) {
    .step-viewer-step:not(.swiper-slide-active) {
      opacity: 0.0; } }
  @media screen and (min-width: 768px) {
    .step-viewer-step.swiper-slide-active ~ .swiper-slide {
      opacity: 0.6; } }
  .step-viewer-step .step-viewer-step__header {
    align-items: center;
    background-color: #FFFFFF;
    display: flex;
    flex-direction: row;
    height: 50px;
    padding: 0 20px;
    position: absolute;
    bottom: auto;
    left: 0;
    right: auto;
    top: 0;
    z-index: 2;
    font: normal 400 20px/30px Campton Book, sans-serif; }
  .step-viewer-step .step-viewer-step__image-container {
    background-color: #E6E6E6;
    height: 0;
    padding-bottom: 66.66667%;
    position: relative;
    bottom: auto;
    left: auto;
    right: auto;
    top: auto; }
  .step-viewer-step .step-viewer-step__image {
    position: absolute;
    bottom: auto;
    left: 0;
    right: auto;
    top: 0;
    height: 100%;
    width: 100%; }
  .step-viewer-step .step-viewer-step__description {
    overflow: hidden;
    padding: 25px 20px;
    font: normal 400 18px/25px Campton Book, sans-serif; }
  .step-viewer-step .discover-content h3 {
    margin-bottom: 20px; }

.discover-overview-page .c-main-logo {
  width: 100px; }

@media screen and (max-width: 529px) {
  .discover-overview-page .c-side-navigation .e-visible-icons {
    width: 50px; } }

.discover-overview-page .page-overview-section {
  background-color: #FFFFFF; }

.discover-overview-page .discover-filter-bar {
  margin-bottom: 40px; }
  @media screen and (max-width: 659px) {
    .discover-overview-page .discover-filter-bar {
      margin-bottom: 20px; } }

.discover-contest-page .discover-detail-header {
  background-color: #FF3C00;
  height: 300px; }

.discover-contest-page .discover-detail-content__background {
  background-color: #FF3C00; }

.discover-contest-page .discover-detail-aside {
  background-color: transparent; }
  .discover-contest-page .discover-detail-aside .discover-detail-aside__back {
    margin-bottom: 200px; }
    .discover-contest-page .discover-detail-aside .discover-detail-aside__back:last-child {
      margin-bottom: 0; }

.discover-contest-page .discover-detail-content__main:first-child {
  margin-top: 300px; }

.discover-contest-page .discover-detail-content__label {
  background-color: #FF3C00;
  top: 250px; }
  .discover-contest-page .discover-detail-content__label::before {
    background: url(/static/discover/images/icon-si.svg) no-repeat center; }

@media screen and (min-width: 660px) {
  .discover-contest-page .discover-detail-content__title {
    background-color: #FFFFFF;
    align-items: center;
    display: flex;
    height: 200px;
    margin-bottom: 0;
    padding-left: 30px;
    padding-right: 30px;
    position: absolute;
    bottom: 100%;
    left: 0;
    right: auto;
    top: auto; } }

.discover-detail-page .c-main-logo {
  max-width: 200px; }
  @media screen and (max-width: 1299px) {
    .discover-detail-page .c-main-logo {
      max-width: 100px; } }

.discover-detail-page .page-wrapper {
  background-color: #FFFFFF; }

.discover-detail-page .discover-content {
  margin-bottom: 30px; }
  .discover-detail-page .discover-content:last-child {
    margin-bottom: 0; }

.discover-detail-page .discover-detail-page__button-print {
  font-family: Campton Medium, sans-serif;
  font-size: 16px;
  line-height: 50px;
  text-decoration: none;
  text-transform: none;
  height: 50px;
  line-height: 50px;
  padding-left: 25px;
  padding-right: 0;
  background-color: #FFFFFF;
  color: #000000;
  display: inline-block;
  vertical-align: bottom; }
  .discover-detail-page .discover-detail-page__button-print::after {
    font-size: 16px;
    height: 50px;
    line-height: 50px;
    width: 50px;
    margin-right: 10px; }
  @media screen and (max-width: 1199px) {
    .discover-detail-page .discover-detail-page__button-print::after {
      font-size: 16px;
      height: 50px;
      line-height: 50px;
      width: 50px; } }
  @media screen and (max-width: 899px) {
    .discover-detail-page .discover-detail-page__button-print::after {
      font-size: 16px;
      height: 50px;
      line-height: 50px;
      width: 50px; } }
  @media screen and (max-width: 529px) {
    .discover-detail-page .discover-detail-page__button-print::after {
      font-size: 16px;
      height: 50px;
      line-height: 50px;
      width: 50px; } }
  @media screen and (max-width: 1199px) {
    .discover-detail-page .discover-detail-page__button-print {
      height: 50px;
      line-height: 50px; } }
  @media screen and (max-width: 899px) {
    .discover-detail-page .discover-detail-page__button-print {
      height: 50px;
      line-height: 50px;
      padding-right: 7px; }
      .discover-detail-page .discover-detail-page__button-print::after {
        margin-right: 7px; } }
  @media screen and (max-width: 529px) {
    .discover-detail-page .discover-detail-page__button-print {
      height: 50px;
      line-height: 50px; } }
  .discover-detail-page .discover-detail-page__button-print::after {
    font-size: 20px;
    height: 50px;
    line-height: 50px;
    width: 50px; }
  @media screen and (max-width: 1199px) {
    .discover-detail-page .discover-detail-page__button-print::after {
      font-size: 20px;
      height: 50px;
      line-height: 50px;
      width: 50px; } }
  @media screen and (max-width: 899px) {
    .discover-detail-page .discover-detail-page__button-print::after {
      font-size: 20px;
      height: 50px;
      line-height: 50px;
      width: 50px; } }
  @media screen and (max-width: 529px) {
    .discover-detail-page .discover-detail-page__button-print::after {
      font-size: 20px;
      height: 50px;
      line-height: 50px;
      width: 50px; } }
  .discover-detail-page .discover-detail-page__button-print::after {
    background-color: transparent;
    color: #000000; }
  .discover-detail-page .discover-detail-page__button-print::after {
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
    font-family: icons;
    content: " ";
    box-sizing: border-box;
    display: inline-block;
    text-align: center;
    text-decoration: none;
    vertical-align: bottom; }
  .discover-detail-page .discover-detail-page__button-print.v-green {
    background-color: #00E63C;
    color: #000000; }
    .discover-detail-page .discover-detail-page__button-print.v-green::before, .discover-detail-page .discover-detail-page__button-print.v-green::after {
      background-color: transparent;
      color: #000000; }
  .discover-detail-page .discover-detail-page__button-print.v-black {
    background-color: #000000;
    color: #FFFFFF; }
    .discover-detail-page .discover-detail-page__button-print.v-black::before, .discover-detail-page .discover-detail-page__button-print.v-black::after {
      background-color: transparent;
      color: #FFFFFF; }
  .discover-detail-page .discover-detail-page__button-print.v-grey {
    background-color: #E6E6E6;
    color: #000000; }
    .discover-detail-page .discover-detail-page__button-print.v-grey::before, .discover-detail-page .discover-detail-page__button-print.v-grey::after {
      background-color: transparent;
      color: #000000; }
  .discover-detail-page .discover-detail-page__button-print.v-yellow {
    background-color: #000000;
    color: #FFE600; }
    .discover-detail-page .discover-detail-page__button-print.v-yellow::before, .discover-detail-page .discover-detail-page__button-print.v-yellow::after {
      background-color: transparent;
      color: #FFE600; }
  .discover-detail-page .discover-detail-page__button-print.v-iyellow {
    background-color: #FFE600;
    color: #000000; }
    .discover-detail-page .discover-detail-page__button-print.v-iyellow::before, .discover-detail-page .discover-detail-page__button-print.v-iyellow::after {
      background-color: transparent;
      color: #000000; }
  .discover-detail-page .discover-detail-page__button-print:hover, .discover-detail-page .discover-detail-page__button-print.on-hover, .discover-detail-page .discover-detail-page__button-print:active, .discover-detail-page .discover-detail-page__button-print.on-click {
    background-color: #00E63C;
    color: #000000;
    cursor: pointer;
    text-decoration: none; }
    .discover-detail-page .discover-detail-page__button-print:hover::after, .discover-detail-page .discover-detail-page__button-print.on-hover::after, .discover-detail-page .discover-detail-page__button-print:active::after, .discover-detail-page .discover-detail-page__button-print.on-click::after {
      color: #000000; }
    .discover-detail-page .discover-detail-page__button-print:hover.v-black, .discover-detail-page .discover-detail-page__button-print.on-hover.v-black, .discover-detail-page .discover-detail-page__button-print:active.v-black, .discover-detail-page .discover-detail-page__button-print.on-click.v-black {
      background-color: #000000;
      color: #00E63C; }
      .discover-detail-page .discover-detail-page__button-print:hover.v-black::after, .discover-detail-page .discover-detail-page__button-print.on-hover.v-black::after, .discover-detail-page .discover-detail-page__button-print:active.v-black::after, .discover-detail-page .discover-detail-page__button-print.on-click.v-black::after {
        background-color: #FFFFFF;
        color: #000000; }
    .discover-detail-page .discover-detail-page__button-print:hover:before, .discover-detail-page .discover-detail-page__button-print.on-hover:before, .discover-detail-page .discover-detail-page__button-print:active:before, .discover-detail-page .discover-detail-page__button-print.on-click:before {
      color: #fff; }

.discover-detail-page .discover-detail-page__header {
  margin-bottom: 30px;
  font: normal 400 26px/34px Campton Book, sans-serif; }

.discover-detail-page .discover-detail-page__divider {
  border-width: 0;
  -moz-appearance: none;
  -webkit-appearance: none;
  margin-bottom: 35px; }
  .discover-detail-page .discover-detail-page__divider::after {
    background: #000000;
    content: '';
    display: block;
    height: 2px;
    width: 100%; }

.discover-detail-page .discover-requirements {
  margin-bottom: 30px;
  margin-top: -10px; }

.discover-experiment-page .discover-detail-header {
  background-color: #FFE600;
  height: 300px; }

.discover-experiment-page .discover-detail-content__background {
  background-color: #FFE600; }

.discover-experiment-page .discover-detail-aside {
  background-color: transparent; }
  .discover-experiment-page .discover-detail-aside .discover-detail-aside__back:last-child {
    margin-bottom: 0; }

.discover-experiment-page .discover-detail-content__label {
  background-color: #FFE600;
  top: 250px; }
  .discover-experiment-page .discover-detail-content__label::before {
    background: url(/static/discover/images/icon-diy.svg) no-repeat center; }

@media screen and (min-width: 660px) {
  .discover-experiment-page .discover-detail-content__title {
    background-color: #FFFFFF;
    align-items: center;
    display: flex;
    height: 200px;
    margin-bottom: 0;
    padding-left: 30px;
    padding-right: 30px;
    position: absolute;
    bottom: 100%;
    left: 0;
    right: auto;
    top: auto; } }

.discover-experiment-page .discover-experiment-page__duration {
  font: normal 400 20px/30px Campton Medium, sans-serif;
  display: inline-block;
  margin-bottom: 10px; }
  .discover-experiment-page .discover-experiment-page__duration::before {
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
    font-family: icons;
    content: " ";
    margin-right: 10px; }

.discover-experiment-page .step-viewer {
  margin-bottom: 30px; }

.discover-qanda-page .discover-detail-content__background {
  background-color: #0096FA; }

.discover-qanda-page .discover-detail-content__label {
  background-color: #0096FA; }
  .discover-qanda-page .discover-detail-content__label::before {
    background: url(/static/discover/images/icon-ty.svg) no-repeat center; }

.discover-tidbit-page .discover-detail-content__background {
  background-color: #F03CA5; }

.discover-tidbit-page .discover-detail-content__label {
  background-color: #F03CA5; }
  .discover-tidbit-page .discover-detail-content__label::before {
    background: url(/static/discover/images/icon-dyk.svg) no-repeat center; }

.discover-tidbit-page .discover-detail-aside {
  background-color: #fff; }

.discover-tidbit-page .discover-detail-content .discover-detail-aside {
  background-color: #fff; }

.experiment-page section > h2 {
  padding-left: 80px;
  padding-right: 80px;
  hyphens: none;
  font-family: Campton Book, sans-serif;
  font-size: 40px;
  line-height: 44px;
  background-color: transparent;
  margin-bottom: 20px; }
  @media screen and (max-width: 1199px) {
    .experiment-page section > h2 {
      padding-left: 80px;
      padding-right: 80px; } }
  @media screen and (max-width: 899px) {
    .experiment-page section > h2 {
      padding-left: 60px;
      padding-right: 60px; } }
  @media screen and (max-width: 529px) {
    .experiment-page section > h2 {
      padding-left: 20px;
      padding-right: 20px; } }
  @media screen and (max-width: 529px) {
    .experiment-page section > h2 {
      font-size: 26px;
      line-height: 30px; } }

.experiment-duration {
  margin-left: 80px;
  margin-right: 80px;
  hyphens: none;
  font-family: Campton Medium, sans-serif;
  font-size: 18px;
  line-height: 25px; }
  @media screen and (max-width: 1199px) {
    .experiment-duration {
      margin-left: 80px;
      margin-right: 80px; } }
  @media screen and (max-width: 899px) {
    .experiment-duration {
      margin-left: 60px;
      margin-right: 60px; } }
  @media screen and (max-width: 529px) {
    .experiment-duration {
      margin-left: 20px;
      margin-right: 20px; } }
  .experiment-duration::before {
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
    font-family: icons;
    content: " ";
    margin-right: 10px; }

.experiment-aside-image-left {
  display: none; }

.experiment-aside-image-right {
  display: none; }

.experiment-requirements {
  max-width: 940px;
  width: 100%;
  padding-left: 80px;
  padding-right: 80px;
  margin-bottom: 40px;
  font-family: Campton Book, sans-serif;
  font-size: 16px;
  line-height: 24px;
  text-decoration: none;
  text-transform: none; }
  @media screen and (max-width: 979px) {
    .experiment-requirements {
      max-width: 620px; } }
  @media screen and (max-width: 1199px) {
    .experiment-requirements {
      padding-left: 80px;
      padding-right: 80px; } }
  @media screen and (max-width: 899px) {
    .experiment-requirements {
      padding-left: 60px;
      padding-right: 60px; } }
  @media screen and (max-width: 529px) {
    .experiment-requirements {
      padding-left: 20px;
      padding-right: 20px; } }
  .experiment-requirements h2 {
    hyphens: none;
    font-family: Campton Book, sans-serif;
    font-size: 26px;
    line-height: 30px;
    margin-bottom: 20px; }
    @media screen and (max-width: 529px) {
      .experiment-requirements h2 {
        font-family: Campton Medium, sans-serif;
        font-size: 18px;
        line-height: 25px; } }
  .experiment-requirements ul {
    float: left;
    width: 50%; }
    .experiment-requirements ul:not(:first-of-type) {
      padding-left: 35px; }
  .experiment-requirements li {
    min-height: 32px; }
    .experiment-requirements li label {
      line-height: 27px;
      position: relative;
      vertical-align: middle; }
      .experiment-requirements li label .e-face {
        background-color: #FFFFFF;
        cursor: pointer;
        display: inline-block;
        height: 20px;
        left: 0;
        position: absolute;
        vertical-align: middle;
        width: 20px; }
      .experiment-requirements li label input {
        position: relative;
        height: 20px;
        width: 20px;
        z-index: 1000; }
      .experiment-requirements li label input:checked + .e-face::after {
        color: #00E63C;
        content: "";
        display: block;
        font-family: icons;
        position: absolute;
        left: -1px;
        font-size: 22px;
        top: -3px; }
        body.theme-yellow .experiment-requirements li label input:checked + .e-face::after {
          color: #FFE600; }
        body.theme-purple .experiment-requirements li label input:checked + .e-face::after {
          color: #F03CA5; }
        body.theme-blue .experiment-requirements li label input:checked + .e-face::after {
          color: #0096FA; }
        body.theme-orange .experiment-requirements li label input:checked + .e-face::after {
          color: #FF3C00; }
        body.theme-green .experiment-requirements li label input:checked + .e-face::after {
          color: #00E63C; }
        body.theme-pink .experiment-requirements li label input:checked + .e-face::after {
          color: #F03CA5; }
      .experiment-requirements li label input {
        margin-right: 10px;
        vertical-align: middle;
        visibility: hidden; }
  @media screen and (max-width: 499px) {
    .experiment-requirements ul {
      width: 100%; }
      .experiment-requirements ul:not(:first-of-type) {
        padding-left: 0; } }

.experiment-inner {
  background-color: #E6E6E6;
  padding: 35px 35px 20px 35px; }
  .experiment-inner::after {
    clear: both;
    content: "";
    display: table; }

.experiment-start {
  hyphens: none;
  font-family: Campton Book, sans-serif;
  font-size: 40px;
  line-height: 44px;
  background-color: #E6E6E6;
  padding-top: 35px; }
  @media screen and (max-width: 529px) {
    .experiment-start {
      font-size: 26px;
      line-height: 30px; } }

.experiment-steps-section {
  background-color: #E6E6E6; }

.experiment-step {
  padding-left: 80px;
  padding-right: 80px;
  max-width: 940px;
  width: 100%;
  position: relative;
  margin-bottom: 35px; }
  .experiment-step::after {
    clear: both;
    content: "";
    display: table; }
  @media screen and (max-width: 1199px) {
    .experiment-step {
      padding-left: 80px;
      padding-right: 80px; } }
  @media screen and (max-width: 899px) {
    .experiment-step {
      padding-left: 60px;
      padding-right: 60px; } }
  @media screen and (max-width: 529px) {
    .experiment-step {
      padding-left: 20px;
      padding-right: 20px; } }
  @media screen and (max-width: 979px) {
    .experiment-step {
      max-width: 620px; } }
  .experiment-step:last-child {
    margin-bottom: 60px; }
  .experiment-step .experiment-step-inner {
    background-color: #FFFFFF;
    position: relative; }
    .experiment-step .experiment-step-inner::after {
      clear: both;
      content: "";
      display: table; }
  .experiment-step .step-number {
    line-height: 50px;
    position: absolute;
    left: 0;
    z-index: 100;
    font-family: Campton Medium, sans-serif;
    font-size: 16px;
    line-height: 50px;
    text-decoration: none;
    color: #000000;
    display: inline-block;
    height: 50px;
    line-height: 50px;
    padding-left: 25px;
    padding-right: 25px;
    text-transform: uppercase;
    background-color: #00E63C; }
    body.theme-yellow .experiment-step .step-number {
      background-color: #FFE600; }
    body.theme-purple .experiment-step .step-number {
      background-color: #F03CA5; }
    body.theme-blue .experiment-step .step-number {
      background-color: #0096FA; }
    body.theme-orange .experiment-step .step-number {
      background-color: #FF3C00; }
    body.theme-green .experiment-step .step-number {
      background-color: #00E63C; }
    body.theme-pink .experiment-step .step-number {
      background-color: #F03CA5; }
  .experiment-step .experiment-step-figure {
    background-color: #000000;
    display: inline-block;
    float: left;
    height: 300px;
    width: 380px;
    margin: 0 20px 0 0;
    font-size: 0; }
    .experiment-step .experiment-step-figure img {
      width: 100%; }
    .experiment-step .experiment-step-figure .e-mobile {
      display: none; }
    @media screen and (max-width: 999px) {
      .experiment-step .experiment-step-figure {
        float: left;
        margin: 0 0 20px 0;
        height: 0;
        padding-bottom: 78.94737%;
        width: 100%; }
        .experiment-step .experiment-step-figure .e-mobile {
          display: block; }
        .experiment-step .experiment-step-figure .e-desktop {
          display: none; } }
  .experiment-step .experiment-step-text {
    font-family: Campton Book, sans-serif;
    font-size: 16px;
    line-height: 24px;
    text-decoration: none;
    text-transform: none;
    padding: 20px; }
    .experiment-step .experiment-step-text a:not(.contest-video):not(.button) {
      font-family: Campton Book, sans-serif;
      font-size: 16px;
      line-height: 24px;
      text-decoration: none;
      text-transform: none;
      color: #000000;
      text-decoration: underline; }
      .experiment-step .experiment-step-text a:not(.contest-video):not(.button):hover {
        text-decoration: none; }
      .experiment-step .experiment-step-text a:not(.contest-video):not(.button)::-moz-selection {
        color: #FFFFFF; }
      .experiment-step .experiment-step-text a:not(.contest-video):not(.button)::selection {
        color: #FFFFFF; }
    .experiment-step .experiment-step-text strong, .experiment-step .experiment-step-text b {
      font-weight: bold; }
    .experiment-step .experiment-step-text em, .experiment-step .experiment-step-text i {
      font-style: italic; }
    .experiment-step .experiment-step-text p + p {
      padding-top: 10px; }

.experiment-page .page-share {
  margin-top: 30px;
  margin-bottom: 10px; }

.experiment-page .discover-list-container {
  padding-top: 20px;
  padding-bottom: 100px; }

.experiment-page .other-experiments {
  background-color: #E6E6E6;
  padding-top: 35px; }
  .experiment-page .other-experiments .discover-blocks {
    padding-left: 80px;
    padding-right: 80px; }
    @media screen and (max-width: 1199px) {
      .experiment-page .other-experiments .discover-blocks {
        padding-left: 80px;
        padding-right: 80px; } }
    @media screen and (max-width: 899px) {
      .experiment-page .other-experiments .discover-blocks {
        padding-left: 60px;
        padding-right: 60px; } }
    @media screen and (max-width: 529px) {
      .experiment-page .other-experiments .discover-blocks {
        padding-left: 20px;
        padding-right: 20px; } }

.experiment-page .more-themes {
  padding-left: 80px;
  padding-right: 80px; }
  @media screen and (max-width: 1199px) {
    .experiment-page .more-themes {
      padding-left: 80px;
      padding-right: 80px; } }
  @media screen and (max-width: 899px) {
    .experiment-page .more-themes {
      padding-left: 60px;
      padding-right: 60px; } }
  @media screen and (max-width: 529px) {
    .experiment-page .more-themes {
      padding-left: 20px;
      padding-right: 20px; } }

.theme-overview-page .page-header {
  border: 5px solid red; }
  .theme-overview-page .page-header .page-header-image {
    height: 510px; }

.theme-overview-page .page-sections {
  margin-top: 510px; }
  .theme-overview-page .page-sections .inner-margined {
    margin-top: 0; }
  .theme-overview-page .page-sections .page-left-spacer {
    display: none; }

.theme-overview-page .header-wrapper {
  position: absolute;
  width: 480px;
  left: 19.53125%;
  padding-top: 9.76562%;
  top: -510px;
  width: 440px; }
  @media screen and (max-width: 1535px) {
    .theme-overview-page .header-wrapper {
      width: 360px; } }
  @media screen and (max-width: 529px) {
    .theme-overview-page .header-wrapper {
      width: calc(100% - 100px); } }
  .theme-overview-page .header-wrapper h1 {
    hyphens: none;
    font-family: Campton Book, sans-serif;
    font-size: 50px;
    line-height: 52px;
    background-color: #FFFFFF;
    padding: 30px; }
    @media screen and (max-width: 529px) {
      .theme-overview-page .header-wrapper h1 {
        font-size: 32px;
        line-height: 36px; } }

.theme-overview-page .page-overview-section {
  margin-left: auto;
  margin-right: auto;
  max-width: 1260px;
  width: 100%;
  padding-top: 35px;
  padding-bottom: 80px; }
  @media screen and (max-width: 1299px) {
    .theme-overview-page .page-overview-section {
      max-width: 940px; } }
  @media screen and (max-width: 979px) {
    .theme-overview-page .page-overview-section {
      max-width: 620px; } }
  @media screen and (max-width: 659px) {
    .theme-overview-page .page-overview-section {
      margin-left: 20px;
      margin-right: 20px;
      width: calc(100% - 40px); } }
  .theme-overview-page .page-overview-section::after {
    clear: both;
    content: "";
    display: table; }

@media screen and (min-width: 1536px) {
  .theme-overview-page .header-wrapper {
    left: 300px;
    padding-top: 150px; } }

@media screen and (max-width: 529px) {
  .theme-overview-page .header-wrapper {
    position: static;
    width: 100%;
    padding-top: 0; }
    .theme-overview-page .header-wrapper h1 {
      padding: 20px; }
  .theme-overview-page .page-header {
    border: 5px solid red; }
    .theme-overview-page .page-header .page-header-image {
      height: 235px; }
  .theme-overview-page .page-sections {
    margin-top: 235px; }
    .theme-overview-page .page-sections .inner-margined {
      max-width: 100%; } }

.theme-overview-page .page-section.theme-footer {
  padding-top: 60px;
  background: #E6E6E6 !important;
  width: 100%; }
  .theme-overview-page .page-section.theme-footer h2 {
    hyphens: none;
    font-family: Campton Book, sans-serif;
    font-size: 50px;
    line-height: 52px;
    margin-bottom: 15px; }
    @media screen and (max-width: 529px) {
      .theme-overview-page .page-section.theme-footer h2 {
        font-size: 32px;
        line-height: 36px; } }
  .theme-overview-page .page-section.theme-footer p {
    font-family: Campton Book, sans-serif;
    font-size: 16px;
    line-height: 24px;
    text-decoration: none;
    text-transform: none; }
  .theme-overview-page .page-section.theme-footer .footer-text {
    padding-left: 80px;
    padding-right: 80px;
    margin-left: auto;
    margin-right: auto;
    max-width: 940px;
    width: 100%; }
    @media screen and (max-width: 1199px) {
      .theme-overview-page .page-section.theme-footer .footer-text {
        padding-left: 80px;
        padding-right: 80px; } }
    @media screen and (max-width: 899px) {
      .theme-overview-page .page-section.theme-footer .footer-text {
        padding-left: 60px;
        padding-right: 60px; } }
    @media screen and (max-width: 529px) {
      .theme-overview-page .page-section.theme-footer .footer-text {
        padding-left: 20px;
        padding-right: 20px; } }
    @media screen and (max-width: 979px) {
      .theme-overview-page .page-section.theme-footer .footer-text {
        max-width: 620px; } }
  .theme-overview-page .page-section.theme-footer .page-section-related {
    padding-left: 80px;
    padding-right: 80px;
    margin-left: auto;
    margin-right: auto;
    max-width: 940px;
    width: 100%; }
    @media screen and (max-width: 1199px) {
      .theme-overview-page .page-section.theme-footer .page-section-related {
        padding-left: 80px;
        padding-right: 80px; } }
    @media screen and (max-width: 899px) {
      .theme-overview-page .page-section.theme-footer .page-section-related {
        padding-left: 60px;
        padding-right: 60px; } }
    @media screen and (max-width: 529px) {
      .theme-overview-page .page-section.theme-footer .page-section-related {
        padding-left: 20px;
        padding-right: 20px; } }
    @media screen and (max-width: 979px) {
      .theme-overview-page .page-section.theme-footer .page-section-related {
        max-width: 620px; } }
  .theme-overview-page .page-section.theme-footer .page-section-related {
    margin-top: 0; }
  .theme-overview-page .page-section.theme-footer .extended-related-pages {
    padding: 0; }

body {
  background-color: #E6E6E6; }

body.theme-yellow.theme-overview-page .page-sections .inner-margined {
  background-color: #FFE600; }

body.theme-purple.theme-overview-page .page-sections .inner-margined {
  background-color: #F03CA5; }

body.theme-blue.theme-overview-page .page-sections .inner-margined {
  background-color: #0096FA; }

body.theme-orange.theme-overview-page .page-sections .inner-margined {
  background-color: #FF3C00; }

body.theme-green.theme-overview-page .page-sections .inner-margined {
  background-color: #E6E6E6; }

body.theme-pink.theme-overview-page .page-sections .inner-margined {
  background-color: #F03CA5; }

body {
  background-color: #E6E6E6; }

body.theme-yellow.theme-overview-page .page-section {
  background-color: #FFE600; }

body.theme-purple.theme-overview-page .page-section {
  background-color: #F03CA5; }

body.theme-blue.theme-overview-page .page-section {
  background-color: #0096FA; }

body.theme-orange.theme-overview-page .page-section {
  background-color: #FF3C00; }

body.theme-green.theme-overview-page .page-section {
  background-color: #E6E6E6; }

body.theme-pink.theme-overview-page .page-section {
  background-color: #F03CA5; }

.discover-detail-content__title {
  margin-bottom: 0px;
  font: normal 400 60px/62px Campton Book, sans-serif;
  width: 100%;
  font-size: 48px; }
  .discover-detail-content__title br {
    display: none; }

.discover-experiment-page .discover-detail-header {
  display: none; }

.discover-detail-page .discover-requirements {
  margin-bottom: 0px; }

.discover-content strong, .discover-content b {
  font-weight: bold; }

.step-viewer-step .step-viewer-step__header {
  top: -3px; }

p, ul, ol {
  margin-bottom: 10px;
  font: normal 400 20px/30px Campton Book, sans-serif;
  font-size: 16px;
  line-height: 20px;
  font-family: Georgia, "Times New Roman", Times, serif !important; }

.discover-requirements {
  display: flex;
  flex-direction: row;
  justify-content: flex-start; }

.discover-requirements .discover-requirements__list {
  flex-grow: 1; }

.discover-content h3 {
  font: normal 400 26px/34px Campton Book, sans-serif;
  font-family: Georgia, "Times New Roman", Times, serif !important; }

span {
  font-family: Georgia, "Times New Roman", Times, serif !important; }

body {
  font-family: Georgia, "Times New Roman", Times, serif !important; }

.step-viewer-step__image-container {
  float: left;
  width: 200px;
  padding-bottom: 0 !important;
  height: auto !important; }
  .step-viewer-step__image-container img {
    position: relative !important;
    width: 100% !important; }

.step-viewer-step__description {
  padding-top: 0 !important;
  padding-right: 0 !important; }

.step-viewer-step.step-viewer-step--conclusion .step-viewer-step__description {
  padding-left: 0; }
  .step-viewer-step.step-viewer-step--conclusion .step-viewer-step__description h3 {
    margin-top: 0 !important; }

.step-viewer-step.step-viewer-step--conclusion .step-viewer-step__image-container + .step-viewer-step__description {
  padding-left: 20px; }

@media print {
  /** Seitenränder einstellen */
  page {
    padding: 2cm; }
  .page-wrapper {
    padding-top: 120px; }
  /* Font auf 16px/13pt setzen, Background auf Weiß und Schrift auf Schwarz setzen.*/
  /* Das spart Tinte */
  body {
    font: 13pt Georgia, "Times New Roman", Times, serif;
    line-height: 1.3;
    color: #000; }
  h1 {
    font-size: 24pt;
    font-family: Georgia, "Times New Roman", Times, serif !important; }
  h2, h3, h4 {
    font-size: 14pt !important;
    margin-top: 25px;
    font-family: Georgia, "Times New Roman", Times, serif !important; }
  /* Alle Seitenumbrüche definieren */
  a {
    page-break-inside: avoid; }
  blockquote {
    page-break-inside: avoid; }
  h1, h2, h3, h4, h5, h6 {
    page-break-after: avoid;
    page-break-inside: avoid;
    display: block; }
  img {
    page-break-inside: avoid;
    page-break-after: avoid; }
  table, pre {
    page-break-inside: avoid; }
  ul, ol, dl {
    page-break-before: avoid; }
  /* Linkfarbe und Linkverhalten darstellen */
  a:link, a:visited, a {
    background: transparent;
    color: #520;
    font-weight: bold;
    text-decoration: underline;
    text-align: left; }
  a {
    page-break-inside: avoid; }
  a[href^=http]:after {
    content: " <" attr(href) "> "; }
  a:after > img {
    content: ""; }
  article a[href^="#"]:after {
    content: ""; }
  a:not(:local-link):after {
    content: " <" attr(href) "> "; }
  /**
   * Eingebundene Videos verschwinden lassen und den Whitespace der iframes auf null reduzieren.
   */
  .entry iframe, ins {
    display: none;
    width: 0 !important;
    height: 0 !important;
    overflow: hidden !important;
    line-height: 0pt !important;
    white-space: nowrap; }
  .embed-youtube, .embed-responsive {
    position: absolute;
    height: 0;
    overflow: hidden; }
  /* Unnötige Elemente ausblenden für den Druck */
  #header-widgets, nav, aside.mashsb-container,
  .sidebar, .mashshare-top, .mashshare-bottom,
  .content-ads, .make-comment, .author-bio,
  .heading, .related-posts, #decomments-form-add-comment,
  #breadcrumbs, #footer, .post-byline, .meta-single,
  .site-title img, .post-tags, .readability {
    display: none; }
  /* Benutzerdefinierte Nachrichten vor und nach dem Inhalt einfügen */
  .entry:after {
    content: "\ Alle Rechte vorbehalten. (c) 2014 - 2016 TechBrain - techbrain.de";
    color: #999 !important;
    font-size: 1em;
    padding-top: 30px; }
  #header:before {
    content: "\ Vielen herzlichen Dank für das Ausdrucken unseres Artikels. Wir hoffen, dass auch andere Artikel von uns Ihr Interesse wecken können.";
    color: #777 !important;
    font-size: 1em;
    padding-top: 30px;
    text-align: center !important; }
  /* Wichtige Elemente definieren */
  /* Zeichensatz fuer Code Beispiele */
  code, pre {
    font-family: "Courier New", Courier, mono; }
  ul, ol {
    list-style: square;
    margin-left: 18pt;
    margin-bottom: 20pt; }
  li {
    line-height: 1.6em; }
  .page-footer {
    display: none; }
  img {
    height: auto;
    width: 400px; }
  .discover-detail-aside {
    display: none; }
  .discover-detail-content .discover-detail-content__main {
    margin: 0 0 0; }
  .discover-detail-content .discover-detail-content__label {
    display: none; }
  .discover-detail-content .discover-detail-content__main-wrapper {
    width: 100%; }
  .discover-requirements .discover-requirements__checkbox {
    display: none; }
  .step-viewer {
    width: 100%; }
    .step-viewer .swiper-button-next,
    .step-viewer .swiper-button-prev {
      display: none; }
    .step-viewer .swiper-wrapper {
      flex-direction: column;
      display: block;
      height: auto !important; }
  .step-viewer-step {
    margin-bottom: 0px;
    max-height: none;
    opacity: 1.0 !important;
    page-break-inside: avoid;
    clear: both; }
  .c-main-logo {
    font-size: 0; }
  .discover-conclusion .discover-conclusion__initial {
    display: none; }
  .discover-conclusion .discover-conclusion__switch {
    display: block;
    transform: none; }
  .discover-requirements + .discover-detail-page__header {
    margin: 0; }
  .break-container {
    page-break-after: avoid; }
  .discover-detail-page .c-main-logo {
    max-width: 100px; }
  .discover-experiment-page .discover-detail-content__main:first-child {
    margin-top: 0px !important; } }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbnQuY3NzIiwic291cmNlcyI6WyJwcmludC5zY3NzIiwiLi4vLi4vbmVtby9zYXNzL3ZlbmRvci9ib3VyYm9uL19ib3VyYm9uLnNjc3MiLCIuLi8uLi9uZW1vL3Nhc3MvdmVuZG9yL2JvdXJib24vc2V0dGluZ3MvX3ByZWZpeGVyLnNjc3MiLCIuLi8uLi9uZW1vL3Nhc3MvdmVuZG9yL2JvdXJib24vc2V0dGluZ3MvX3B4LXRvLWVtLnNjc3MiLCIuLi8uLi9uZW1vL3Nhc3MvdmVuZG9yL2JvdXJib24vc2V0dGluZ3MvX2Fzc2V0LXBpcGVsaW5lLnNjc3MiLCIuLi8uLi9uZW1vL3Nhc3MvdmVuZG9yL2JvdXJib24vZnVuY3Rpb25zL19hc3NpZ24taW5wdXRzLnNjc3MiLCIuLi8uLi9uZW1vL3Nhc3MvdmVuZG9yL2JvdXJib24vZnVuY3Rpb25zL19jb250YWlucy5zY3NzIiwiLi4vLi4vbmVtby9zYXNzL3ZlbmRvci9ib3VyYm9uL2Z1bmN0aW9ucy9fY29udGFpbnMtZmFsc3kuc2NzcyIsIi4uLy4uL25lbW8vc2Fzcy92ZW5kb3IvYm91cmJvbi9mdW5jdGlvbnMvX2lzLWxlbmd0aC5zY3NzIiwiLi4vLi4vbmVtby9zYXNzL3ZlbmRvci9ib3VyYm9uL2Z1bmN0aW9ucy9faXMtbGlnaHQuc2NzcyIsIi4uLy4uL25lbW8vc2Fzcy92ZW5kb3IvYm91cmJvbi9mdW5jdGlvbnMvX2lzLW51bWJlci5zY3NzIiwiLi4vLi4vbmVtby9zYXNzL3ZlbmRvci9ib3VyYm9uL2Z1bmN0aW9ucy9faXMtc2l6ZS5zY3NzIiwiLi4vLi4vbmVtby9zYXNzL3ZlbmRvci9ib3VyYm9uL2Z1bmN0aW9ucy9fcHgtdG8tZW0uc2NzcyIsIi4uLy4uL25lbW8vc2Fzcy92ZW5kb3IvYm91cmJvbi9mdW5jdGlvbnMvX3B4LXRvLXJlbS5zY3NzIiwiLi4vLi4vbmVtby9zYXNzL3ZlbmRvci9ib3VyYm9uL2Z1bmN0aW9ucy9fc2hhZGUuc2NzcyIsIi4uLy4uL25lbW8vc2Fzcy92ZW5kb3IvYm91cmJvbi9mdW5jdGlvbnMvX3N0cmlwLXVuaXRzLnNjc3MiLCIuLi8uLi9uZW1vL3Nhc3MvdmVuZG9yL2JvdXJib24vZnVuY3Rpb25zL190aW50LnNjc3MiLCIuLi8uLi9uZW1vL3Nhc3MvdmVuZG9yL2JvdXJib24vZnVuY3Rpb25zL190cmFuc2l0aW9uLXByb3BlcnR5LW5hbWUuc2NzcyIsIi4uLy4uL25lbW8vc2Fzcy92ZW5kb3IvYm91cmJvbi9mdW5jdGlvbnMvX3VucGFjay5zY3NzIiwiLi4vLi4vbmVtby9zYXNzL3ZlbmRvci9ib3VyYm9uL2Z1bmN0aW9ucy9fbW9kdWxhci1zY2FsZS5zY3NzIiwiLi4vLi4vbmVtby9zYXNzL3ZlbmRvci9ib3VyYm9uL2hlbHBlcnMvX2NvbnZlcnQtdW5pdHMuc2NzcyIsIi4uLy4uL25lbW8vc2Fzcy92ZW5kb3IvYm91cmJvbi9oZWxwZXJzL19kaXJlY3Rpb25hbC12YWx1ZXMuc2NzcyIsIi4uLy4uL25lbW8vc2Fzcy92ZW5kb3IvYm91cmJvbi9oZWxwZXJzL19mb250LXNvdXJjZS1kZWNsYXJhdGlvbi5zY3NzIiwiLi4vLi4vbmVtby9zYXNzL3ZlbmRvci9ib3VyYm9uL2hlbHBlcnMvX2dyYWRpZW50LXBvc2l0aW9ucy1wYXJzZXIuc2NzcyIsIi4uLy4uL25lbW8vc2Fzcy92ZW5kb3IvYm91cmJvbi9oZWxwZXJzL19saW5lYXItYW5nbGUtcGFyc2VyLnNjc3MiLCIuLi8uLi9uZW1vL3Nhc3MvdmVuZG9yL2JvdXJib24vaGVscGVycy9fbGluZWFyLWdyYWRpZW50LXBhcnNlci5zY3NzIiwiLi4vLi4vbmVtby9zYXNzL3ZlbmRvci9ib3VyYm9uL2hlbHBlcnMvX2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyLnNjc3MiLCIuLi8uLi9uZW1vL3Nhc3MvdmVuZG9yL2JvdXJib24vaGVscGVycy9fbGluZWFyLXNpZGUtY29ybmVyLXBhcnNlci5zY3NzIiwiLi4vLi4vbmVtby9zYXNzL3ZlbmRvci9ib3VyYm9uL2hlbHBlcnMvX3JhZGlhbC1hcmctcGFyc2VyLnNjc3MiLCIuLi8uLi9uZW1vL3Nhc3MvdmVuZG9yL2JvdXJib24vaGVscGVycy9fcmFkaWFsLXBvc2l0aW9ucy1wYXJzZXIuc2NzcyIsIi4uLy4uL25lbW8vc2Fzcy92ZW5kb3IvYm91cmJvbi9oZWxwZXJzL19yYWRpYWwtZ3JhZGllbnQtcGFyc2VyLnNjc3MiLCIuLi8uLi9uZW1vL3Nhc3MvdmVuZG9yL2JvdXJib24vaGVscGVycy9fcmVuZGVyLWdyYWRpZW50cy5zY3NzIiwiLi4vLi4vbmVtby9zYXNzL3ZlbmRvci9ib3VyYm9uL2hlbHBlcnMvX3NoYXBlLXNpemUtc3RyaXBwZXIuc2NzcyIsIi4uLy4uL25lbW8vc2Fzcy92ZW5kb3IvYm91cmJvbi9oZWxwZXJzL19zdHItdG8tbnVtLnNjc3MiLCIuLi8uLi9uZW1vL3Nhc3MvdmVuZG9yL2JvdXJib24vY3NzMy9fYW5pbWF0aW9uLnNjc3MiLCIuLi8uLi9uZW1vL3Nhc3MvdmVuZG9yL2JvdXJib24vY3NzMy9fYXBwZWFyYW5jZS5zY3NzIiwiLi4vLi4vbmVtby9zYXNzL3ZlbmRvci9ib3VyYm9uL2NzczMvX2JhY2tmYWNlLXZpc2liaWxpdHkuc2NzcyIsIi4uLy4uL25lbW8vc2Fzcy92ZW5kb3IvYm91cmJvbi9jc3MzL19iYWNrZ3JvdW5kLnNjc3MiLCIuLi8uLi9uZW1vL3Nhc3MvdmVuZG9yL2JvdXJib24vY3NzMy9fYmFja2dyb3VuZC1pbWFnZS5zY3NzIiwiLi4vLi4vbmVtby9zYXNzL3ZlbmRvci9ib3VyYm9uL2NzczMvX2JvcmRlci1pbWFnZS5zY3NzIiwiLi4vLi4vbmVtby9zYXNzL3ZlbmRvci9ib3VyYm9uL2NzczMvX2NhbGMuc2NzcyIsIi4uLy4uL25lbW8vc2Fzcy92ZW5kb3IvYm91cmJvbi9jc3MzL19jb2x1bW5zLnNjc3MiLCIuLi8uLi9uZW1vL3Nhc3MvdmVuZG9yL2JvdXJib24vY3NzMy9fZmlsdGVyLnNjc3MiLCIuLi8uLi9uZW1vL3Nhc3MvdmVuZG9yL2JvdXJib24vY3NzMy9fZmxleC1ib3guc2NzcyIsIi4uLy4uL25lbW8vc2Fzcy92ZW5kb3IvYm91cmJvbi9jc3MzL19mb250LWZhY2Uuc2NzcyIsIi4uLy4uL25lbW8vc2Fzcy92ZW5kb3IvYm91cmJvbi9jc3MzL19mb250LWZlYXR1cmUtc2V0dGluZ3Muc2NzcyIsIi4uLy4uL25lbW8vc2Fzcy92ZW5kb3IvYm91cmJvbi9jc3MzL19oaWRwaS1tZWRpYS1xdWVyeS5zY3NzIiwiLi4vLi4vbmVtby9zYXNzL3ZlbmRvci9ib3VyYm9uL2NzczMvX2h5cGhlbnMuc2NzcyIsIi4uLy4uL25lbW8vc2Fzcy92ZW5kb3IvYm91cmJvbi9jc3MzL19pbWFnZS1yZW5kZXJpbmcuc2NzcyIsIi4uLy4uL25lbW8vc2Fzcy92ZW5kb3IvYm91cmJvbi9jc3MzL19rZXlmcmFtZXMuc2NzcyIsIi4uLy4uL25lbW8vc2Fzcy92ZW5kb3IvYm91cmJvbi9jc3MzL19saW5lYXItZ3JhZGllbnQuc2NzcyIsIi4uLy4uL25lbW8vc2Fzcy92ZW5kb3IvYm91cmJvbi9jc3MzL19wZXJzcGVjdGl2ZS5zY3NzIiwiLi4vLi4vbmVtby9zYXNzL3ZlbmRvci9ib3VyYm9uL2NzczMvX3BsYWNlaG9sZGVyLnNjc3MiLCIuLi8uLi9uZW1vL3Nhc3MvdmVuZG9yL2JvdXJib24vY3NzMy9fcmFkaWFsLWdyYWRpZW50LnNjc3MiLCIuLi8uLi9uZW1vL3Nhc3MvdmVuZG9yL2JvdXJib24vY3NzMy9fc2VsZWN0aW9uLnNjc3MiLCIuLi8uLi9uZW1vL3Nhc3MvdmVuZG9yL2JvdXJib24vY3NzMy9fdGV4dC1kZWNvcmF0aW9uLnNjc3MiLCIuLi8uLi9uZW1vL3Nhc3MvdmVuZG9yL2JvdXJib24vY3NzMy9fdHJhbnNmb3JtLnNjc3MiLCIuLi8uLi9uZW1vL3Nhc3MvdmVuZG9yL2JvdXJib24vY3NzMy9fdHJhbnNpdGlvbi5zY3NzIiwiLi4vLi4vbmVtby9zYXNzL3ZlbmRvci9ib3VyYm9uL2NzczMvX3VzZXItc2VsZWN0LnNjc3MiLCIuLi8uLi9uZW1vL3Nhc3MvdmVuZG9yL2JvdXJib24vYWRkb25zL19ib3JkZXItY29sb3Iuc2NzcyIsIi4uLy4uL25lbW8vc2Fzcy92ZW5kb3IvYm91cmJvbi9hZGRvbnMvX2JvcmRlci1yYWRpdXMuc2NzcyIsIi4uLy4uL25lbW8vc2Fzcy92ZW5kb3IvYm91cmJvbi9hZGRvbnMvX2JvcmRlci1zdHlsZS5zY3NzIiwiLi4vLi4vbmVtby9zYXNzL3ZlbmRvci9ib3VyYm9uL2FkZG9ucy9fYm9yZGVyLXdpZHRoLnNjc3MiLCIuLi8uLi9uZW1vL3Nhc3MvdmVuZG9yL2JvdXJib24vYWRkb25zL19idXR0b25zLnNjc3MiLCIuLi8uLi9uZW1vL3Nhc3MvdmVuZG9yL2JvdXJib24vYWRkb25zL19jbGVhcmZpeC5zY3NzIiwiLi4vLi4vbmVtby9zYXNzL3ZlbmRvci9ib3VyYm9uL2FkZG9ucy9fZWxsaXBzaXMuc2NzcyIsIi4uLy4uL25lbW8vc2Fzcy92ZW5kb3IvYm91cmJvbi9hZGRvbnMvX2ZvbnQtc3RhY2tzLnNjc3MiLCIuLi8uLi9uZW1vL3Nhc3MvdmVuZG9yL2JvdXJib24vYWRkb25zL19oaWRlLXRleHQuc2NzcyIsIi4uLy4uL25lbW8vc2Fzcy92ZW5kb3IvYm91cmJvbi9hZGRvbnMvX21hcmdpbi5zY3NzIiwiLi4vLi4vbmVtby9zYXNzL3ZlbmRvci9ib3VyYm9uL2FkZG9ucy9fcGFkZGluZy5zY3NzIiwiLi4vLi4vbmVtby9zYXNzL3ZlbmRvci9ib3VyYm9uL2FkZG9ucy9fcG9zaXRpb24uc2NzcyIsIi4uLy4uL25lbW8vc2Fzcy92ZW5kb3IvYm91cmJvbi9hZGRvbnMvX3ByZWZpeGVyLnNjc3MiLCIuLi8uLi9uZW1vL3Nhc3MvdmVuZG9yL2JvdXJib24vYWRkb25zL19yZXRpbmEtaW1hZ2Uuc2NzcyIsIi4uLy4uL25lbW8vc2Fzcy92ZW5kb3IvYm91cmJvbi9hZGRvbnMvX3NpemUuc2NzcyIsIi4uLy4uL25lbW8vc2Fzcy92ZW5kb3IvYm91cmJvbi9hZGRvbnMvX3RleHQtaW5wdXRzLnNjc3MiLCIuLi8uLi9uZW1vL3Nhc3MvdmVuZG9yL2JvdXJib24vYWRkb25zL190aW1pbmctZnVuY3Rpb25zLnNjc3MiLCIuLi8uLi9uZW1vL3Nhc3MvdmVuZG9yL2JvdXJib24vYWRkb25zL190cmlhbmdsZS5zY3NzIiwiLi4vLi4vbmVtby9zYXNzL3ZlbmRvci9ib3VyYm9uL2FkZG9ucy9fd29yZC13cmFwLnNjc3MiLCIuLi8uLi9uZW1vL3Nhc3MvdmVuZG9yL2JvdXJib24vX2JvdXJib24tZGVwcmVjYXRlZC11cGNvbWluZy5zY3NzIiwiLi4vLi4vbmVtby9zYXNzL25lbW8vYmFzZS9fYWxsLnNjc3MiLCIuLi8uLi9uZW1vL3Nhc3MvbmVtby9iYXNlL19icmVha3BvaW50cy5zY3NzIiwiLi4vLi4vbmVtby9zYXNzL25lbW8vYmFzZS9fY2FsY3VsYXRpb25zLnNjc3MiLCIuLi8uLi9uZW1vL3Nhc3MvbmVtby9iYXNlL19jb2xvcnMuc2NzcyIsIi4uLy4uL25lbW8vc2Fzcy9uZW1vL2Jhc2UvX3RoZW1lcy5zY3NzIiwiLi4vLi4vbmVtby9zYXNzL25lbW8vYmFzZS9fY29uZmlnLnNjc3MiLCIuLi8uLi9uZW1vL3Nhc3MvbmVtby9iYXNlL19mb250cy5zY3NzIiwiLi4vLi4vbmVtby9zYXNzL25lbW8vYmFzZS9fdGFyZ2V0cy5zY3NzIiwiLi4vLi4vbmVtby9zYXNzL25lbW8vYmFzZS9fbGF5ZXJzLnNjc3MiLCIuLi8uLi9uZW1vL3Nhc3MvbmVtby9iYXNlL19sYXlvdXQuc2NzcyIsIi4uLy4uL25lbW8vc2Fzcy9uZW1vL2Jhc2UvX2Zvcm1zLnNjc3MiLCIuLi8uLi9uZW1vL3Nhc3MvbmVtby9iYXNlL19yZXNldC5zY3NzIiwiLi4vLi4vbmVtby9zYXNzL25lbW8vYmFzZS9fc2VjdGlvbnMuc2NzcyIsIi4uLy4uL25lbW8vc2Fzcy9uZW1vL2Jhc2UvX3R5cG9ncmFwaHkuc2NzcyIsIi4uLy4uL25lbW8vc2Fzcy9uZW1vL2Jhc2UvX3V0aWxzLnNjc3MiLCIuLi8uLi9uZW1vL3Nhc3MvbmVtby9iYXNlL19pY29ucy5zY3NzIiwiLi4vLi4vbmVtby9zYXNzL25lbW8vYmFzZS9fYnV0dG9ucy5zY3NzIiwiLi4vLi4vbmVtby9zYXNzL25lbW8vYmFzZS9fbGFiZWxzLnNjc3MiLCIuLi8uLi9uZW1vL3Nhc3MvbmVtby9iYXNlL19jb21wb25lbnRzLnNjc3MiLCIuLi8uLi9uZW1vL3Nhc3MvbmVtby9iYXNlL190ZXh0LnNjc3MiLCIuLi8uLi9uZW1vL3Nhc3MvbmVtby9iYXNlL192aWRlby5zY3NzIiwiX3NldHRpbmdzLnNjc3MiLCIuLi8uLi9uZW1vL3Nhc3MvZmFicmlxdWUvX2hlbHBlcnMuc2NzcyIsImNvbXBvbmVudHMvX3N0ZXAtdmlld2VyLXN0ZXAuc2NzcyIsInNlY3Rpb25zL19hbGwuc2NzcyIsInNlY3Rpb25zL19vdmVydmlldy5zY3NzIiwic2VjdGlvbnMvX2NvbnRlc3QtcGFnZS5zY3NzIiwic2VjdGlvbnMvX2RldGFpbC1wYWdlLnNjc3MiLCJzZWN0aW9ucy9fZXhwZXJpbWVudC1wYWdlLnNjc3MiLCJzZWN0aW9ucy9fcWFuZGEtcGFnZS5zY3NzIiwic2VjdGlvbnMvX3RpZGJpdC1wYWdlLnNjc3MiLCJ2aWV3cy9fYWxsLnNjc3MiLCJ2aWV3cy9fZGV0YWlsLnNjc3MiLCJ2aWV3cy9fb3ZlcnZpZXcuc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBXZWxjb21lIHRvIENvbXBhc3MuIFVzZSB0aGlzIGZpbGUgdG8gZGVmaW5lIHByaW50IHN0eWxlcy5cbiAqIEltcG9ydCB0aGlzIGZpbGUgdXNpbmcgdGhlIGZvbGxvd2luZyBIVE1MIG9yIGVxdWl2YWxlbnQ6XG4gKiA8bGluayBocmVmPVwiL3N0eWxlc2hlZXRzL3ByaW50LmNzc1wiIG1lZGlhPVwicHJpbnRcIiByZWw9XCJzdHlsZXNoZWV0XCIgdHlwZT1cInRleHQvY3NzXCIgLz4gKi9cbkBpbXBvcnQgXCIuLi8uLi9uZW1vL3Nhc3MvdmVuZG9yL2JvdXJib24vYm91cmJvblwiO1xuQGltcG9ydCBcIi4uLy4uL25lbW8vc2Fzcy9uZW1vL2Jhc2UvYWxsXCI7XG5AaW1wb3J0IFwic2V0dGluZ3NcIjtcbkBpbXBvcnQgXCIuLi8uLi9uZW1vL3Nhc3MvZmFicmlxdWUvaGVscGVyc1wiO1xuXG5AaW1wb3J0IFwiY29tcG9uZW50cy9zdGVwLXZpZXdlci1zdGVwXCI7XG5AaW1wb3J0IFwic2VjdGlvbnMvYWxsXCI7XG5AaW1wb3J0IFwidmlld3MvYWxsXCI7XG5cbi8vc29tZSBzdHlsaW5nIHNpbmNlIGV2ZXJ5dGhpbmcgYnJlYWtzIG90aGVyd2lzZSB3aGVuIHdlIHVzZSB0aGUgbm9ybWFsIHN0eWxlc1xuXG4uZGlzY292ZXItZGV0YWlsLWNvbnRlbnRfX3RpdGxlIHtcbiAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICBAaW5jbHVkZSB0eXBvZ3JhcGh5KCdkZXRhaWwtaGVhZGVyJyk7XG4gIHdpZHRoOiAxMDAlO1xuICBiciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICBmb250LXNpemU6IDQ4cHg7IC8vIGluc3RlYWQgb2YgNjBcbn1cblxuLmRpc2NvdmVyLWV4cGVyaW1lbnQtcGFnZSAuZGlzY292ZXItZGV0YWlsLWhlYWRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uZGlzY292ZXItZGV0YWlsLXBhZ2UgLmRpc2NvdmVyLXJlcXVpcmVtZW50cyB7XG4gIG1hcmdpbi1ib3R0b206IDBweDtcbn1cblxuLmRpc2NvdmVyLWNvbnRlbnQgc3Ryb25nLCAuZGlzY292ZXItY29udGVudCBiIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5zdGVwLXZpZXdlci1zdGVwIC5zdGVwLXZpZXdlci1zdGVwX19oZWFkZXIge1xuICB0b3A6IC0zcHg7XG59XG5cbnAsIHVsLCBvbCB7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIEBpbmNsdWRlIHR5cG9ncmFwaHkoJ2RldGFpbC1jb250ZW50Jyk7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIGZvbnQtZmFtaWx5OiBHZW9yZ2lhLCBcIlRpbWVzIE5ldyBSb21hblwiLCBUaW1lcywgc2VyaWYgIWltcG9ydGFudDtcbn1cblxuLmRpc2NvdmVyLXJlcXVpcmVtZW50cyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbn1cblxuLmRpc2NvdmVyLXJlcXVpcmVtZW50cyAuZGlzY292ZXItcmVxdWlyZW1lbnRzX19saXN0IHtcbiAgZmxleC1ncm93OiAxO1xufVxuXG4uZGlzY292ZXItY29udGVudCBoMyB7XG4gIEBpbmNsdWRlIHR5cG9ncmFwaHkoJ2RldGFpbC1zdWJoZWFkZXInKTtcbiAgZm9udC1mYW1pbHk6IEdlb3JnaWEsIFwiVGltZXMgTmV3IFJvbWFuXCIsIFRpbWVzLCBzZXJpZiAhaW1wb3J0YW50O1xufVxuXG5zcGFuIHtcbiAgZm9udC1mYW1pbHk6IEdlb3JnaWEsIFwiVGltZXMgTmV3IFJvbWFuXCIsIFRpbWVzLCBzZXJpZiAhaW1wb3J0YW50O1xufVxuXG5ib2R5IHtcbiAgZm9udC1mYW1pbHk6IEdlb3JnaWEsIFwiVGltZXMgTmV3IFJvbWFuXCIsIFRpbWVzLCBzZXJpZiAhaW1wb3J0YW50O1xufVxuXG4uc3RlcC12aWV3ZXItc3RlcF9faW1hZ2UtY29udGFpbmVyIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiAyMDBweDtcbiAgcGFkZGluZy1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIGltZyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgfVxufVxuLnN0ZXAtdmlld2VyLXN0ZXBfX2Rlc2NyaXB0aW9uIHtcbiAgcGFkZGluZy10b3A6IDAgIWltcG9ydGFudDtcbiAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50O1xufVxuXG4uc3RlcC12aWV3ZXItc3RlcC5zdGVwLXZpZXdlci1zdGVwLS1jb25jbHVzaW9uIC5zdGVwLXZpZXdlci1zdGVwX19kZXNjcmlwdGlvbiB7XG4gIGgzIHtcbiAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgcGFkZGluZy1sZWZ0OiAwO1xufVxuLnN0ZXAtdmlld2VyLXN0ZXAuc3RlcC12aWV3ZXItc3RlcC0tY29uY2x1c2lvbiAuc3RlcC12aWV3ZXItc3RlcF9faW1hZ2UtY29udGFpbmVyICsgLnN0ZXAtdmlld2VyLXN0ZXBfX2Rlc2NyaXB0aW9uIHtcbiAgcGFkZGluZy1sZWZ0OiAyMHB4O1xufVxuXG5cbkBtZWRpYSBwcmludCB7XG5cbiAgLyoqIFNlaXRlbnLDpG5kZXIgZWluc3RlbGxlbiAqL1xuICBwYWdlIHtcbiAgICBwYWRkaW5nOiAyY21cbiAgfVxuXG4gIC5wYWdlLXdyYXBwZXIge1xuICAgIHBhZGRpbmctdG9wOiAxMjBweDtcbiAgfVxuXG4gIC8qIEZvbnQgYXVmIDE2cHgvMTNwdCBzZXR6ZW4sIEJhY2tncm91bmQgYXVmIFdlacOfIHVuZCBTY2hyaWZ0IGF1ZiBTY2h3YXJ6IHNldHplbi4qL1xuICAvKiBEYXMgc3BhcnQgVGludGUgKi9cbiAgYm9keSB7XG4gICAgZm9udDogMTNwdCBHZW9yZ2lhLCBcIlRpbWVzIE5ldyBSb21hblwiLCBUaW1lcywgc2VyaWY7XG4gICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICBjb2xvcjogIzAwMDtcbiAgfVxuXG4gIGgxIHtcbiAgICBmb250LXNpemU6IDI0cHQ7XG4gICAgZm9udC1mYW1pbHk6IEdlb3JnaWEsIFwiVGltZXMgTmV3IFJvbWFuXCIsIFRpbWVzLCBzZXJpZiAhaW1wb3J0YW50O1xuICB9XG5cbiAgaDIsIGgzLCBoNCB7XG4gICAgZm9udC1zaXplOiAxNHB0ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXRvcDogMjVweDtcbiAgICBmb250LWZhbWlseTogR2VvcmdpYSwgXCJUaW1lcyBOZXcgUm9tYW5cIiwgVGltZXMsIHNlcmlmICFpbXBvcnRhbnQ7XG4gIH1cblxuICAvKiBBbGxlIFNlaXRlbnVtYnLDvGNoZSBkZWZpbmllcmVuICovXG4gIGEge1xuICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgfVxuICBibG9ja3F1b3RlIHtcbiAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gIH1cbiAgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7XG4gICAgcGFnZS1icmVhay1hZnRlcjogYXZvaWQ7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG4gIGltZyB7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICAgIHBhZ2UtYnJlYWstYWZ0ZXI6IGF2b2lkO1xuICB9XG4gIHRhYmxlLCBwcmUge1xuICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgfVxuICB1bCwgb2wsIGRsIHtcbiAgICBwYWdlLWJyZWFrLWJlZm9yZTogYXZvaWQ7XG4gIH1cblxuICAvKiBMaW5rZmFyYmUgdW5kIExpbmt2ZXJoYWx0ZW4gZGFyc3RlbGxlbiAqL1xuICBhOmxpbmssIGE6dmlzaXRlZCwgYSB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICM1MjA7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgfVxuXG4gIGEge1xuICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgfVxuXG4gIGFbaHJlZl49aHR0cF06YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiIDxcIiBhdHRyKGhyZWYpIFwiPiBcIjtcbiAgfVxuXG4gIGE6YWZ0ZXIgPiBpbWcge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gIH1cblxuICBhcnRpY2xlIGFbaHJlZl49XCIjXCJdOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICB9XG5cbiAgYTpub3QoOmxvY2FsLWxpbmspOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIiA8XCIgYXR0cihocmVmKSBcIj4gXCI7XG4gIH1cblxuICAvKipcbiAgICogRWluZ2VidW5kZW5lIFZpZGVvcyB2ZXJzY2h3aW5kZW4gbGFzc2VuIHVuZCBkZW4gV2hpdGVzcGFjZSBkZXIgaWZyYW1lcyBhdWYgbnVsbCByZWR1emllcmVuLlxuICAgKi9cbiAgLmVudHJ5IGlmcmFtZSwgaW5zIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuICAgIGxpbmUtaGVpZ2h0OiAwcHQgIWltcG9ydGFudDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG4gIC5lbWJlZC15b3V0dWJlLCAuZW1iZWQtcmVzcG9uc2l2ZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGhlaWdodDogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG5cbiAgLyogVW5uw7Z0aWdlIEVsZW1lbnRlIGF1c2JsZW5kZW4gZsO8ciBkZW4gRHJ1Y2sgKi9cblxuICAjaGVhZGVyLXdpZGdldHMsIG5hdiwgYXNpZGUubWFzaHNiLWNvbnRhaW5lcixcbiAgLnNpZGViYXIsIC5tYXNoc2hhcmUtdG9wLCAubWFzaHNoYXJlLWJvdHRvbSxcbiAgLmNvbnRlbnQtYWRzLCAubWFrZS1jb21tZW50LCAuYXV0aG9yLWJpbyxcbiAgLmhlYWRpbmcsIC5yZWxhdGVkLXBvc3RzLCAjZGVjb21tZW50cy1mb3JtLWFkZC1jb21tZW50LFxuICAjYnJlYWRjcnVtYnMsICNmb290ZXIsIC5wb3N0LWJ5bGluZSwgLm1ldGEtc2luZ2xlLFxuICAuc2l0ZS10aXRsZSBpbWcsIC5wb3N0LXRhZ3MsIC5yZWFkYWJpbGl0eSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC8qIEJlbnV0emVyZGVmaW5pZXJ0ZSBOYWNocmljaHRlbiB2b3IgdW5kIG5hY2ggZGVtIEluaGFsdCBlaW5mw7xnZW4gKi9cbiAgLmVudHJ5OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlxcIEFsbGUgUmVjaHRlIHZvcmJlaGFsdGVuLiAoYykgMjAxNCAtIDIwMTYgVGVjaEJyYWluIC0gdGVjaGJyYWluLmRlXCI7XG4gICAgY29sb3I6ICM5OTkgIWltcG9ydGFudDtcbiAgICBmb250LXNpemU6IDFlbTtcbiAgICBwYWRkaW5nLXRvcDogMzBweDtcbiAgfVxuICAjaGVhZGVyOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXCBWaWVsZW4gaGVyemxpY2hlbiBEYW5rIGbDvHIgZGFzIEF1c2RydWNrZW4gdW5zZXJlcyBBcnRpa2Vscy4gV2lyIGhvZmZlbiwgZGFzcyBhdWNoIGFuZGVyZSBBcnRpa2VsIHZvbiB1bnMgSWhyIEludGVyZXNzZSB3ZWNrZW4ga8O2bm5lbi5cIjtcbiAgICBjb2xvcjogIzc3NyAhaW1wb3J0YW50O1xuICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgIHBhZGRpbmctdG9wOiAzMHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50O1xuICB9XG5cbiAgLyogV2ljaHRpZ2UgRWxlbWVudGUgZGVmaW5pZXJlbiAqL1xuICAvL3AsIGFkZHJlc3MsIGxpLCBkdCwgZGQsIGJsb2NrcXVvdGUge1xuICAvLyAgLy9mb250LXNpemU6IDEwMCVcbiAgLy99XG5cbiAgLyogWmVpY2hlbnNhdHogZnVlciBDb2RlIEJlaXNwaWVsZSAqL1xuICBjb2RlLCBwcmUge1xuICAgIGZvbnQtZmFtaWx5OiBcIkNvdXJpZXIgTmV3XCIsIENvdXJpZXIsIG1vbm9cbiAgfVxuXG4gIHVsLCBvbCB7XG4gICAgbGlzdC1zdHlsZTogc3F1YXJlO1xuICAgIG1hcmdpbi1sZWZ0OiAxOHB0O1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHQ7XG4gIH1cblxuICBsaSB7XG4gICAgbGluZS1oZWlnaHQ6IDEuNmVtO1xuICB9XG5cbiAgLnBhZ2UtZm9vdGVyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgaW1nIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgd2lkdGg6IDQwMHB4O1xuICB9XG5cbiAgLmRpc2NvdmVyLWRldGFpbC1hc2lkZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC5kaXNjb3Zlci1kZXRhaWwtY29udGVudCB7XG4gICAgLmRpc2NvdmVyLWRldGFpbC1jb250ZW50X19tYWluIHtcbiAgICAgIG1hcmdpbjogMCAwIDA7XG4gICAgfVxuXG4gICAgLmRpc2NvdmVyLWRldGFpbC1jb250ZW50X19sYWJlbCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5kaXNjb3Zlci1kZXRhaWwtY29udGVudF9fbWFpbi13cmFwcGVyIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxuXG4gIC5kaXNjb3Zlci1yZXF1aXJlbWVudHMge1xuICAgIC5kaXNjb3Zlci1yZXF1aXJlbWVudHNfX2NoZWNrYm94IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLnN0ZXAtdmlld2VyIHtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIC8vcGFnZS1icmVhay1iZWZvcmU6IGF2b2lkO1xuXG4gICAgLnN3aXBlci1idXR0b24tbmV4dCxcbiAgICAuc3dpcGVyLWJ1dHRvbi1wcmV2IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLnN3aXBlci13cmFwcGVyIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC5zdGVwLXZpZXdlci1zdGVwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gICAgbWF4LWhlaWdodDogbm9uZTtcbiAgICBvcGFjaXR5OiAxLjAgIWltcG9ydGFudDtcbiAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cblxuICAuYy1tYWluLWxvZ28ge1xuICAgIGZvbnQtc2l6ZTogMDtcbiAgfVxuXG4gIC5kaXNjb3Zlci1jb25jbHVzaW9uIHtcbiAgICAuZGlzY292ZXItY29uY2x1c2lvbl9faW5pdGlhbCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5kaXNjb3Zlci1jb25jbHVzaW9uX19zd2l0Y2gge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLmRpc2NvdmVyLXJlcXVpcmVtZW50cyArIC5kaXNjb3Zlci1kZXRhaWwtcGFnZV9faGVhZGVyIHtcbiAgICAvL3BhZ2UtYnJlYWstYmVmb3JlOiBhbHdheXM7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgLmJyZWFrLWNvbnRhaW5lciB7XG4gICAgcGFnZS1icmVhay1hZnRlcjogYXZvaWQ7XG4gIH1cblxuICAvL3NtYWxsZXIgbG9nb1xuICAuZGlzY292ZXItZGV0YWlsLXBhZ2UgLmMtbWFpbi1sb2dvIHtcbiAgICBtYXgtd2lkdGg6IDEwMHB4O1xuICB9XG5cbiAgLy9ubyB0b3Agd2hpdGVzcGFjZVxuICAuZGlzY292ZXItZXhwZXJpbWVudC1wYWdlIC5kaXNjb3Zlci1kZXRhaWwtY29udGVudF9fbWFpbjpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXRvcDogMHB4ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAvLy5kaXNjb3Zlci1kZXRhaWwtY29udGVudCAuZGlzY292ZXItZGV0YWlsLWNvbnRlbnRfX21haW4ge1xuICAvLyAgZGlzcGxheTogYmxvY2s7XG4gIC8vfVxuXG59IiwiLy8gQm91cmJvbiA0LjIuMlxuLy8gaHR0cDovL2JvdXJib24uaW9cbi8vIENvcHlyaWdodCAyMDExLTIwMTUgdGhvdWdodGJvdCwgaW5jLlxuLy8gTUlUIExpY2Vuc2VcblxuQGltcG9ydCBcInNldHRpbmdzL3ByZWZpeGVyXCI7XG5AaW1wb3J0IFwic2V0dGluZ3MvcHgtdG8tZW1cIjtcbkBpbXBvcnQgXCJzZXR0aW5ncy9hc3NldC1waXBlbGluZVwiO1xuXG5AaW1wb3J0IFwiZnVuY3Rpb25zL2Fzc2lnbi1pbnB1dHNcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvY29udGFpbnNcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvY29udGFpbnMtZmFsc3lcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvaXMtbGVuZ3RoXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2lzLWxpZ2h0XCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2lzLW51bWJlclwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9pcy1zaXplXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3B4LXRvLWVtXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3B4LXRvLXJlbVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9zaGFkZVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9zdHJpcC11bml0c1wiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy90aW50XCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3RyYW5zaXRpb24tcHJvcGVydHktbmFtZVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy91bnBhY2tcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvbW9kdWxhci1zY2FsZVwiO1xuXG5AaW1wb3J0IFwiaGVscGVycy9jb252ZXJ0LXVuaXRzXCI7XG5AaW1wb3J0IFwiaGVscGVycy9kaXJlY3Rpb25hbC12YWx1ZXNcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2ZvbnQtc291cmNlLWRlY2xhcmF0aW9uXCI7XG5AaW1wb3J0IFwiaGVscGVycy9ncmFkaWVudC1wb3NpdGlvbnMtcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9saW5lYXItYW5nbGUtcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9saW5lYXItZ3JhZGllbnQtcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9saW5lYXItcG9zaXRpb25zLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLXNpZGUtY29ybmVyLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvcmFkaWFsLWFyZy1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3JhZGlhbC1wb3NpdGlvbnMtcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9yZW5kZXItZ3JhZGllbnRzXCI7XG5AaW1wb3J0IFwiaGVscGVycy9zaGFwZS1zaXplLXN0cmlwcGVyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9zdHItdG8tbnVtXCI7XG5cbkBpbXBvcnQgXCJjc3MzL2FuaW1hdGlvblwiO1xuQGltcG9ydCBcImNzczMvYXBwZWFyYW5jZVwiO1xuQGltcG9ydCBcImNzczMvYmFja2ZhY2UtdmlzaWJpbGl0eVwiO1xuQGltcG9ydCBcImNzczMvYmFja2dyb3VuZFwiO1xuQGltcG9ydCBcImNzczMvYmFja2dyb3VuZC1pbWFnZVwiO1xuQGltcG9ydCBcImNzczMvYm9yZGVyLWltYWdlXCI7XG5AaW1wb3J0IFwiY3NzMy9jYWxjXCI7XG5AaW1wb3J0IFwiY3NzMy9jb2x1bW5zXCI7XG5AaW1wb3J0IFwiY3NzMy9maWx0ZXJcIjtcbkBpbXBvcnQgXCJjc3MzL2ZsZXgtYm94XCI7XG5AaW1wb3J0IFwiY3NzMy9mb250LWZhY2VcIjtcbkBpbXBvcnQgXCJjc3MzL2ZvbnQtZmVhdHVyZS1zZXR0aW5nc1wiO1xuQGltcG9ydCBcImNzczMvaGlkcGktbWVkaWEtcXVlcnlcIjtcbkBpbXBvcnQgXCJjc3MzL2h5cGhlbnNcIjtcbkBpbXBvcnQgXCJjc3MzL2ltYWdlLXJlbmRlcmluZ1wiO1xuQGltcG9ydCBcImNzczMva2V5ZnJhbWVzXCI7XG5AaW1wb3J0IFwiY3NzMy9saW5lYXItZ3JhZGllbnRcIjtcbkBpbXBvcnQgXCJjc3MzL3BlcnNwZWN0aXZlXCI7XG5AaW1wb3J0IFwiY3NzMy9wbGFjZWhvbGRlclwiO1xuQGltcG9ydCBcImNzczMvcmFkaWFsLWdyYWRpZW50XCI7XG5AaW1wb3J0IFwiY3NzMy9zZWxlY3Rpb25cIjtcbkBpbXBvcnQgXCJjc3MzL3RleHQtZGVjb3JhdGlvblwiO1xuQGltcG9ydCBcImNzczMvdHJhbnNmb3JtXCI7XG5AaW1wb3J0IFwiY3NzMy90cmFuc2l0aW9uXCI7XG5AaW1wb3J0IFwiY3NzMy91c2VyLXNlbGVjdFwiO1xuXG5AaW1wb3J0IFwiYWRkb25zL2JvcmRlci1jb2xvclwiO1xuQGltcG9ydCBcImFkZG9ucy9ib3JkZXItcmFkaXVzXCI7XG5AaW1wb3J0IFwiYWRkb25zL2JvcmRlci1zdHlsZVwiO1xuQGltcG9ydCBcImFkZG9ucy9ib3JkZXItd2lkdGhcIjtcbkBpbXBvcnQgXCJhZGRvbnMvYnV0dG9uc1wiO1xuQGltcG9ydCBcImFkZG9ucy9jbGVhcmZpeFwiO1xuQGltcG9ydCBcImFkZG9ucy9lbGxpcHNpc1wiO1xuQGltcG9ydCBcImFkZG9ucy9mb250LXN0YWNrc1wiO1xuQGltcG9ydCBcImFkZG9ucy9oaWRlLXRleHRcIjtcbkBpbXBvcnQgXCJhZGRvbnMvbWFyZ2luXCI7XG5AaW1wb3J0IFwiYWRkb25zL3BhZGRpbmdcIjtcbkBpbXBvcnQgXCJhZGRvbnMvcG9zaXRpb25cIjtcbkBpbXBvcnQgXCJhZGRvbnMvcHJlZml4ZXJcIjtcbkBpbXBvcnQgXCJhZGRvbnMvcmV0aW5hLWltYWdlXCI7XG5AaW1wb3J0IFwiYWRkb25zL3NpemVcIjtcbkBpbXBvcnQgXCJhZGRvbnMvdGV4dC1pbnB1dHNcIjtcbkBpbXBvcnQgXCJhZGRvbnMvdGltaW5nLWZ1bmN0aW9uc1wiO1xuQGltcG9ydCBcImFkZG9ucy90cmlhbmdsZVwiO1xuQGltcG9ydCBcImFkZG9ucy93b3JkLXdyYXBcIjtcblxuQGltcG9ydCBcImJvdXJib24tZGVwcmVjYXRlZC11cGNvbWluZ1wiO1xuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gR2xvYmFsIHZhcmlhYmxlcyB0byBlbmFibGUgb3IgZGlzYWJsZSB2ZW5kb3IgcHJlZml4ZXNcblxuJHByZWZpeC1mb3Itd2Via2l0OiAgICB0cnVlICFkZWZhdWx0O1xuJHByZWZpeC1mb3ItbW96aWxsYTogICB0cnVlICFkZWZhdWx0O1xuJHByZWZpeC1mb3ItbWljcm9zb2Z0OiB0cnVlICFkZWZhdWx0O1xuJHByZWZpeC1mb3Itb3BlcmE6ICAgICB0cnVlICFkZWZhdWx0O1xuJHByZWZpeC1mb3Itc3BlYzogICAgICB0cnVlICFkZWZhdWx0O1xuIiwiJGVtLWJhc2U6IDE2cHggIWRlZmF1bHQ7XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBBIGdsb2JhbCBzZXR0aW5nIHRvIGVuYWJsZSBvciBkaXNhYmxlIHRoZSBgJGFzc2V0LXBpcGVsaW5lYCB2YXJpYWJsZSBmb3IgYWxsIGZ1bmN0aW9ucyB0aGF0IGFjY2VwdCBpdC5cbi8vL1xuLy8vIEB0eXBlIEJvb2xcblxuJGFzc2V0LXBpcGVsaW5lOiBmYWxzZSAhZGVmYXVsdDtcbiIsIkBmdW5jdGlvbiBhc3NpZ24taW5wdXRzKCRpbnB1dHMsICRwc2V1ZG86IG51bGwpIHtcbiAgJGxpc3Q6ICgpO1xuXG4gIEBlYWNoICRpbnB1dCBpbiAkaW5wdXRzIHtcbiAgICAkaW5wdXQ6IHVucXVvdGUoJGlucHV0KTtcbiAgICAkaW5wdXQ6IGlmKCRwc2V1ZG8sICRpbnB1dCArIFwiOlwiICsgJHBzZXVkbywgJGlucHV0KTtcbiAgICAkbGlzdDogYXBwZW5kKCRsaXN0LCAkaW5wdXQsIGNvbW1hKTtcbiAgfVxuXG4gIEByZXR1cm4gJGxpc3Q7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDaGVja3MgaWYgYSBsaXN0IGNvbnRhaW5zIGEgdmFsdWUocykuXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJGxpc3Rcbi8vLyAgIFRoZSBsaXN0IHRvIGNoZWNrIGFnYWluc3QuXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICR2YWx1ZXNcbi8vLyAgIEEgc2luZ2xlIHZhbHVlIG9yIGxpc3Qgb2YgdmFsdWVzIHRvIGNoZWNrIGZvci5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgY29udGFpbnMoJGxpc3QsICR2YWx1ZSlcbi8vL1xuLy8vIEByZXR1cm4ge0Jvb2x9XG5cbkBmdW5jdGlvbiBjb250YWlucygkbGlzdCwgJHZhbHVlcy4uLikge1xuICBAZWFjaCAkdmFsdWUgaW4gJHZhbHVlcyB7XG4gICAgQGlmIHR5cGUtb2YoaW5kZXgoJGxpc3QsICR2YWx1ZSkpICE9IFwibnVtYmVyXCIge1xuICAgICAgQHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIHRydWU7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDaGVja3MgaWYgYSBsaXN0IGRvZXMgbm90IGNvbnRhaW5zIGEgdmFsdWUuXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJGxpc3Rcbi8vLyAgIFRoZSBsaXN0IHRvIGNoZWNrIGFnYWluc3QuXG4vLy9cbi8vLyBAcmV0dXJuIHtCb29sfVxuXG5AZnVuY3Rpb24gY29udGFpbnMtZmFsc3koJGxpc3QpIHtcbiAgQGVhY2ggJGl0ZW0gaW4gJGxpc3Qge1xuICAgIEBpZiBub3QgJGl0ZW0ge1xuICAgICAgQHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gZmFsc2U7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDaGVja3MgZm9yIGEgdmFsaWQgQ1NTIGxlbmd0aC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdmFsdWVcblxuQGZ1bmN0aW9uIGlzLWxlbmd0aCgkdmFsdWUpIHtcbiAgQHJldHVybiB0eXBlLW9mKCR2YWx1ZSkgIT0gXCJudWxsXCIgYW5kIChzdHItc2xpY2UoJHZhbHVlICsgXCJcIiwgMSwgNCkgPT0gXCJjYWxjXCJcbiAgICAgICBvciBpbmRleChhdXRvIGluaGVyaXQgaW5pdGlhbCAwLCAkdmFsdWUpXG4gICAgICAgb3IgKHR5cGUtb2YoJHZhbHVlKSA9PSBcIm51bWJlclwiIGFuZCBub3QodW5pdGxlc3MoJHZhbHVlKSkpKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb2dyYW1hdGljYWxseSBkZXRlcm1pbmVzIHdoZXRoZXIgYSBjb2xvciBpcyBsaWdodCBvciBkYXJrLlxuLy8vXG4vLy8gQGxpbmsgaHR0cDovL3JvYm90cy50aG91Z2h0Ym90LmNvbS9jbG9zZXItbG9vay1jb2xvci1saWdodG5lc3Ncbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3IgKEhleCl9ICRjb2xvclxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICBpcy1saWdodCgkY29sb3IpXG4vLy9cbi8vLyBAcmV0dXJuIHtCb29sfVxuXG5AZnVuY3Rpb24gaXMtbGlnaHQoJGhleC1jb2xvcikge1xuICAkLWxvY2FsLXJlZDogcmVkKHJnYmEoJGhleC1jb2xvciwgMSkpO1xuICAkLWxvY2FsLWdyZWVuOiBncmVlbihyZ2JhKCRoZXgtY29sb3IsIDEpKTtcbiAgJC1sb2NhbC1ibHVlOiBibHVlKHJnYmEoJGhleC1jb2xvciwgMSkpO1xuICAkLWxvY2FsLWxpZ2h0bmVzczogKCQtbG9jYWwtcmVkICogMC4yMTI2ICsgJC1sb2NhbC1ncmVlbiAqIDAuNzE1MiArICQtbG9jYWwtYmx1ZSAqIDAuMDcyMikgLyAyNTU7XG5cbiAgQHJldHVybiAkLWxvY2FsLWxpZ2h0bmVzcyA+IDAuNjtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENoZWNrcyBmb3IgYSB2YWxpZCBudW1iZXIuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlXG4vLy9cbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbnRhaW5zXG5cbkBmdW5jdGlvbiBpcy1udW1iZXIoJHZhbHVlKSB7XG4gIEByZXR1cm4gY29udGFpbnMoXCIwXCIgXCIxXCIgXCIyXCIgXCIzXCIgXCI0XCIgXCI1XCIgXCI2XCIgXCI3XCIgXCI4XCIgXCI5XCIgMCAxIDIgMyA0IDUgNiA3IDggOSwgJHZhbHVlKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENoZWNrcyBmb3IgYSB2YWxpZCBDU1Mgc2l6ZS5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdmFsdWVcbi8vL1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gY29udGFpbnNcbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGlzLWxlbmd0aFxuXG5AZnVuY3Rpb24gaXMtc2l6ZSgkdmFsdWUpIHtcbiAgQHJldHVybiBpcy1sZW5ndGgoJHZhbHVlKVxuICAgICAgICAgIG9yIGNvbnRhaW5zKFwiZmlsbFwiIFwiZml0LWNvbnRlbnRcIiBcIm1pbi1jb250ZW50XCIgXCJtYXgtY29udGVudFwiLCAkdmFsdWUpO1xufVxuIiwiLy8gQ29udmVydCBwaXhlbHMgdG8gZW1zXG4vLyBlZy4gZm9yIGEgcmVsYXRpb25hbCB2YWx1ZSBvZiAxMnB4IHdyaXRlIGVtKDEyKSB3aGVuIHRoZSBwYXJlbnQgaXMgMTZweFxuLy8gaWYgdGhlIHBhcmVudCBpcyBhbm90aGVyIHZhbHVlIHNheSAyNHB4IHdyaXRlIGVtKDEyLCAyNClcblxuQGZ1bmN0aW9uIGVtKCRweHZhbCwgJGJhc2U6ICRlbS1iYXNlKSB7XG4gIEBpZiBub3QgdW5pdGxlc3MoJHB4dmFsKSB7XG4gICAgJHB4dmFsOiBzdHJpcC11bml0cygkcHh2YWwpO1xuICB9XG4gIEBpZiBub3QgdW5pdGxlc3MoJGJhc2UpIHtcbiAgICAkYmFzZTogc3RyaXAtdW5pdHMoJGJhc2UpO1xuICB9XG4gIEByZXR1cm4gKCRweHZhbCAvICRiYXNlKSAqIDFlbTtcbn1cbiIsIi8vIENvbnZlcnQgcGl4ZWxzIHRvIHJlbXNcbi8vIGVnLiBmb3IgYSByZWxhdGlvbmFsIHZhbHVlIG9mIDEycHggd3JpdGUgcmVtKDEyKVxuLy8gQXNzdW1lcyAkZW0tYmFzZSBpcyB0aGUgZm9udC1zaXplIG9mIDxodG1sPlxuXG5AZnVuY3Rpb24gcmVtKCRweHZhbCkge1xuICBAaWYgbm90IHVuaXRsZXNzKCRweHZhbCkge1xuICAgICRweHZhbDogc3RyaXAtdW5pdHMoJHB4dmFsKTtcbiAgfVxuXG4gICRiYXNlOiAkZW0tYmFzZTtcbiAgQGlmIG5vdCB1bml0bGVzcygkYmFzZSkge1xuICAgICRiYXNlOiBzdHJpcC11bml0cygkYmFzZSk7XG4gIH1cbiAgQHJldHVybiAoJHB4dmFsIC8gJGJhc2UpICogMXJlbTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIE1peGVzIGEgY29sb3Igd2l0aCBibGFjay5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvclxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXIgKFBlcmNlbnRhZ2UpfSAkcGVyY2VudFxuLy8vICAgVGhlIGFtb3VudCBvZiBibGFjayB0byBiZSBtaXhlZCBpbi5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzaGFkZSgjZmZiYjUyLCA2MCUpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjY0YTIwO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJldHVybiB7Q29sb3J9XG5cbkBmdW5jdGlvbiBzaGFkZSgkY29sb3IsICRwZXJjZW50KSB7XG4gIEByZXR1cm4gbWl4KCMwMDAsICRjb2xvciwgJHBlcmNlbnQpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gU3RyaXBzIHRoZSB1bml0IGZyb20gYSBudW1iZXIuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlciAoV2l0aCBVbml0KX0gJHZhbHVlXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgICRkaW1lbnNpb246IHN0cmlwLXVuaXRzKDEwZW0pO1xuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgJGRpbWVuc2lvbjogMTA7XG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXIgKFVuaXRsZXNzKX1cblxuQGZ1bmN0aW9uIHN0cmlwLXVuaXRzKCR2YWx1ZSkge1xuICBAcmV0dXJuICgkdmFsdWUgLyAoJHZhbHVlICogMCArIDEpKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIE1peGVzIGEgY29sb3Igd2l0aCB3aGl0ZS5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvclxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXIgKFBlcmNlbnRhZ2UpfSAkcGVyY2VudFxuLy8vICAgVGhlIGFtb3VudCBvZiB3aGl0ZSB0byBiZSBtaXhlZCBpbi5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aW50KCM2ZWNhYTYsIDQwJSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNhOGRmYzk7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmV0dXJuIHtDb2xvcn1cblxuQGZ1bmN0aW9uIHRpbnQoJGNvbG9yLCAkcGVyY2VudCkge1xuICBAcmV0dXJuIG1peCgjZmZmLCAkY29sb3IsICRwZXJjZW50KTtcbn1cbiIsIi8vIFJldHVybiB2ZW5kb3ItcHJlZml4ZWQgcHJvcGVydHkgbmFtZXMgaWYgYXBwcm9wcmlhdGVcbi8vIEV4YW1wbGU6IHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoKHRyYW5zZm9ybSwgY29sb3IsIGJhY2tncm91bmQpLCBtb3opIC0+IC1tb3otdHJhbnNmb3JtLCBjb2xvciwgYmFja2dyb3VuZFxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuQGZ1bmN0aW9uIHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoJHByb3BzLCAkdmVuZG9yOiBmYWxzZSkge1xuICAkbmV3LXByb3BzOiAoKTtcblxuICBAZWFjaCAkcHJvcCBpbiAkcHJvcHMge1xuICAgICRuZXctcHJvcHM6IGFwcGVuZCgkbmV3LXByb3BzLCB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWUoJHByb3AsICR2ZW5kb3IpLCBjb21tYSk7XG4gIH1cblxuICBAcmV0dXJuICRuZXctcHJvcHM7XG59XG5cbkBmdW5jdGlvbiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWUoJHByb3AsICR2ZW5kb3I6IGZhbHNlKSB7XG4gIC8vIHB1dCBvdGhlciBwcm9wZXJ0aWVzIHRoYXQgbmVlZCB0byBiZSBwcmVmaXhlZCBoZXJlIGFzd2VsbFxuICBAaWYgJHZlbmRvciBhbmQgJHByb3AgPT0gdHJhbnNmb3JtIHtcbiAgICBAcmV0dXJuIHVucXVvdGUoJy0nKyR2ZW5kb3IrJy0nKyRwcm9wKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiAkcHJvcDtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ29udmVydHMgc2hvcnRoYW5kIHRvIHRoZSA0LXZhbHVlIHN5bnRheC5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHNob3J0aGFuZFxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIG1hcmdpbjogdW5wYWNrKDFlbSAyZW0pO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBtYXJnaW46IDFlbSAyZW0gMWVtIDJlbTtcbi8vLyAgIH1cblxuQGZ1bmN0aW9uIHVucGFjaygkc2hvcnRoYW5kKSB7XG4gIEBpZiBsZW5ndGgoJHNob3J0aGFuZCkgPT0gMSB7XG4gICAgQHJldHVybiBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMSk7XG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRzaG9ydGhhbmQpID09IDIge1xuICAgIEByZXR1cm4gbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAyKSBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDIpO1xuICB9IEBlbHNlIGlmIGxlbmd0aCgkc2hvcnRoYW5kKSA9PSAzIHtcbiAgICBAcmV0dXJuIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMikgbnRoKCRzaG9ydGhhbmQsIDMpIG50aCgkc2hvcnRoYW5kLCAyKTtcbiAgfSBAZWxzZSB7XG4gICAgQHJldHVybiAkc2hvcnRoYW5kO1xuICB9XG59XG4iLCIvLyBTY2FsaW5nIFZhcmlhYmxlc1xuJGdvbGRlbjogICAgICAgICAgIDEuNjE4O1xuJG1pbm9yLXNlY29uZDogICAgIDEuMDY3O1xuJG1ham9yLXNlY29uZDogICAgIDEuMTI1O1xuJG1pbm9yLXRoaXJkOiAgICAgIDEuMjtcbiRtYWpvci10aGlyZDogICAgICAxLjI1O1xuJHBlcmZlY3QtZm91cnRoOiAgIDEuMzMzO1xuJGF1Z21lbnRlZC1mb3VydGg6IDEuNDE0O1xuJHBlcmZlY3QtZmlmdGg6ICAgIDEuNTtcbiRtaW5vci1zaXh0aDogICAgICAxLjY7XG4kbWFqb3Itc2l4dGg6ICAgICAgMS42Njc7XG4kbWlub3Itc2V2ZW50aDogICAgMS43Nzg7XG4kbWFqb3Itc2V2ZW50aDogICAgMS44NzU7XG4kb2N0YXZlOiAgICAgICAgICAgMjtcbiRtYWpvci10ZW50aDogICAgICAyLjU7XG4kbWFqb3ItZWxldmVudGg6ICAgMi42Njc7XG4kbWFqb3ItdHdlbGZ0aDogICAgMztcbiRkb3VibGUtb2N0YXZlOiAgICA0O1xuXG4kbW9kdWxhci1zY2FsZS1yYXRpbzogJHBlcmZlY3QtZm91cnRoICFkZWZhdWx0O1xuJG1vZHVsYXItc2NhbGUtYmFzZTogZW0oJGVtLWJhc2UpICFkZWZhdWx0O1xuXG5AZnVuY3Rpb24gbW9kdWxhci1zY2FsZSgkaW5jcmVtZW50LCAkdmFsdWU6ICRtb2R1bGFyLXNjYWxlLWJhc2UsICRyYXRpbzogJG1vZHVsYXItc2NhbGUtcmF0aW8pIHtcbiAgJHYxOiBudGgoJHZhbHVlLCAxKTtcbiAgJHYyOiBudGgoJHZhbHVlLCBsZW5ndGgoJHZhbHVlKSk7XG4gICR2YWx1ZTogJHYxO1xuXG4gIC8vIHNjYWxlICR2MiB0byBqdXN0IGFib3ZlICR2MVxuICBAd2hpbGUgJHYyID4gJHYxIHtcbiAgICAkdjI6ICgkdjIgLyAkcmF0aW8pOyAvLyB3aWxsIGJlIG9mZi1ieS0xXG4gIH1cbiAgQHdoaWxlICR2MiA8ICR2MSB7XG4gICAgJHYyOiAoJHYyICogJHJhdGlvKTsgLy8gd2lsbCBmaXggb2ZmLWJ5LTFcbiAgfVxuXG4gIC8vIGNoZWNrIEFGVEVSIHNjYWxpbmcgJHYyIHRvIHByZXZlbnQgZG91YmxlLWNvdW50aW5nIGNvcm5lci1jYXNlXG4gICRkb3VibGUtc3RyYW5kZWQ6ICR2MiA+ICR2MTtcblxuICBAaWYgJGluY3JlbWVudCA+IDAge1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGluY3JlbWVudCB7XG4gICAgICBAaWYgJGRvdWJsZS1zdHJhbmRlZCBhbmQgKCR2MSAqICRyYXRpbykgPiAkdjIge1xuICAgICAgICAkdmFsdWU6ICR2MjtcbiAgICAgICAgJHYyOiAoJHYyICogJHJhdGlvKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAkdjE6ICgkdjEgKiAkcmF0aW8pO1xuICAgICAgICAkdmFsdWU6ICR2MTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaWYgJGluY3JlbWVudCA8IDAge1xuICAgIC8vIGFkanVzdCAkdjIgdG8ganVzdCBiZWxvdyAkdjFcbiAgICBAaWYgJGRvdWJsZS1zdHJhbmRlZCB7XG4gICAgICAkdjI6ICgkdjIgLyAkcmF0aW8pO1xuICAgIH1cblxuICAgIEBmb3IgJGkgZnJvbSAkaW5jcmVtZW50IHRocm91Z2ggLTEge1xuICAgICAgQGlmICRkb3VibGUtc3RyYW5kZWQgYW5kICgkdjEgLyAkcmF0aW8pIDwgJHYyIHtcbiAgICAgICAgJHZhbHVlOiAkdjI7XG4gICAgICAgICR2MjogKCR2MiAvICRyYXRpbyk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJHYxOiAoJHYxIC8gJHJhdGlvKTtcbiAgICAgICAgJHZhbHVlOiAkdjE7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkdmFsdWU7XG59XG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyBIZWxwZXIgZnVuY3Rpb24gZm9yIHN0ci10by1udW0gZm4uXG4vLyBTb3VyY2U6IGh0dHA6Ly9zYXNzbWVpc3Rlci5jb20vZ2lzdC85NjQ3NDA4XG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5AZnVuY3Rpb24gX2NvbnZlcnQtdW5pdHMoJG51bWJlciwgJHVuaXQpIHtcbiAgJHN0cmluZ3M6IFwicHhcIiwgXCJjbVwiLCBcIm1tXCIsIFwiJVwiLCBcImNoXCIsIFwicGljYVwiLCBcImluXCIsIFwiZW1cIiwgXCJyZW1cIiwgXCJwdFwiLCBcInBjXCIsIFwiZXhcIiwgXCJ2d1wiLCBcInZoXCIsIFwidm1pblwiLCBcInZtYXhcIiwgXCJkZWdcIiwgXCJyYWRcIiwgXCJncmFkXCIsIFwidHVyblwiO1xuICAkdW5pdHM6ICAgMXB4LCAxY20sIDFtbSwgMSUsIDFjaCwgMXBpY2EsIDFpbiwgMWVtLCAxcmVtLCAxcHQsIDFwYywgMWV4LCAxdncsIDF2aCwgMXZtaW4sIDF2bWF4LCAxZGVnLCAxcmFkLCAxZ3JhZCwgMXR1cm47XG4gICRpbmRleDogaW5kZXgoJHN0cmluZ3MsICR1bml0KTtcblxuICBAaWYgbm90ICRpbmRleCB7XG4gICAgQHdhcm4gXCJVbmtub3duIHVuaXQgYCN7JHVuaXR9YC5cIjtcbiAgICBAcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgQGlmIHR5cGUtb2YoJG51bWJlcikgIT0gXCJudW1iZXJcIiB7XG4gICAgQHdhcm4gXCJgI3skbnVtYmVyfSBpcyBub3QgYSBudW1iZXJgXCI7XG4gICAgQHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIEByZXR1cm4gJG51bWJlciAqIG50aCgkdW5pdHMsICRpbmRleCk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBEaXJlY3Rpb25hbC1wcm9wZXJ0eSBtaXhpbnMgYXJlIHNob3J0aGFuZHMgZm9yIHdyaXRpbmcgcHJvcGVydGllcyBsaWtlIHRoZSBmb2xsb3dpbmdcbi8vL1xuLy8vIEBpZ25vcmUgWW91IGNhbiBhbHNvIHVzZSBgZmFsc2VgIGluc3RlYWQgb2YgYG51bGxgLlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiBkaXJlY3Rpb25hbCB2YWx1ZXNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBib3JkZXItc3R5bGUoZG90dGVkIG51bGwpO1xuLy8vICAgICBAaW5jbHVkZSBtYXJnaW4obnVsbCAwIDEwcHgpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBib3JkZXItYm90dG9tLXN0eWxlOiBkb3R0ZWQ7XG4vLy8gICAgIGJvcmRlci10b3Atc3R5bGU6IGRvdHRlZDtcbi8vLyAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbi8vLyAgICAgbWFyZ2luLWxlZnQ6IDA7XG4vLy8gICAgIG1hcmdpbi1yaWdodDogMDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gY29udGFpbnMtZmFsc3lcbi8vL1xuLy8vIEByZXR1cm4ge0xpc3R9XG5cbkBmdW5jdGlvbiBjb2xsYXBzZS1kaXJlY3Rpb25hbHMoJHZhbHMpIHtcbiAgJG91dHB1dDogbnVsbDtcblxuICAkYTogbnRoKCR2YWxzLCAxKTtcbiAgJGI6IGlmKGxlbmd0aCgkdmFscykgPCAyLCAkYSwgbnRoKCR2YWxzLCAyKSk7XG4gICRjOiBpZihsZW5ndGgoJHZhbHMpIDwgMywgJGEsIG50aCgkdmFscywgMykpO1xuICAkZDogaWYobGVuZ3RoKCR2YWxzKSA8IDIsICRhLCBudGgoJHZhbHMsIGlmKGxlbmd0aCgkdmFscykgPCA0LCAyLCA0KSkpO1xuXG4gIEBpZiAkYSA9PSAwIHsgJGE6IDA7IH1cbiAgQGlmICRiID09IDAgeyAkYjogMDsgfVxuICBAaWYgJGMgPT0gMCB7ICRjOiAwOyB9XG4gIEBpZiAkZCA9PSAwIHsgJGQ6IDA7IH1cblxuICBAaWYgJGEgPT0gJGIgYW5kICRhID09ICRjIGFuZCAkYSA9PSAkZCB7ICRvdXRwdXQ6ICRhOyAgICAgICAgICB9XG4gIEBlbHNlIGlmICRhID09ICRjIGFuZCAkYiA9PSAkZCAgICAgICAgIHsgJG91dHB1dDogJGEgJGI7ICAgICAgIH1cbiAgQGVsc2UgaWYgJGIgPT0gJGQgICAgICAgICAgICAgICAgICAgICAgeyAkb3V0cHV0OiAkYSAkYiAkYzsgICAgfVxuICBAZWxzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICRvdXRwdXQ6ICRhICRiICRjICRkOyB9XG5cbiAgQHJldHVybiAkb3V0cHV0O1xufVxuXG4vLy8gT3V0cHV0IGRpcmVjdGlvbmFsIHByb3BlcnRpZXMsIGZvciBpbnN0YW5jZSBgbWFyZ2luYC5cbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRwcmVcbi8vLyAgIFByZWZpeCB0byB1c2Vcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHN1ZlxuLy8vICAgU3VmZml4IHRvIHVzZVxuLy8vIEBwYXJhbSB7TGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgdmFsdWVzXG4vLy9cbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbGxhcHNlLWRpcmVjdGlvbmFsc1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gY29udGFpbnMtZmFsc3lcblxuQG1peGluIGRpcmVjdGlvbmFsLXByb3BlcnR5KCRwcmUsICRzdWYsICR2YWxzKSB7XG4gIC8vIFByb3BlcnR5IE5hbWVzXG4gICR0b3A6ICAgICRwcmUgKyBcIi10b3BcIiAgICArIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XG4gICRib3R0b206ICRwcmUgKyBcIi1ib3R0b21cIiArIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XG4gICRsZWZ0OiAgICRwcmUgKyBcIi1sZWZ0XCIgICArIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XG4gICRyaWdodDogICRwcmUgKyBcIi1yaWdodFwiICArIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XG4gICRhbGw6ICAgICRwcmUgKyAgICAgICAgICAgICBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuXG4gICR2YWxzOiBjb2xsYXBzZS1kaXJlY3Rpb25hbHMoJHZhbHMpO1xuXG4gIEBpZiBjb250YWlucy1mYWxzeSgkdmFscykge1xuICAgIEBpZiBudGgoJHZhbHMsIDEpIHsgI3skdG9wfTogbnRoKCR2YWxzLCAxKTsgfVxuXG4gICAgQGlmIGxlbmd0aCgkdmFscykgPT0gMSB7XG4gICAgICBAaWYgbnRoKCR2YWxzLCAxKSB7ICN7JHJpZ2h0fTogbnRoKCR2YWxzLCAxKTsgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgQGlmIG50aCgkdmFscywgMikgeyAjeyRyaWdodH06IG50aCgkdmFscywgMik7IH1cbiAgICB9XG5cbiAgICBAaWYgbGVuZ3RoKCR2YWxzKSA9PSAyIHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDEpIHsgI3skYm90dG9tfTogbnRoKCR2YWxzLCAxKTsgfVxuICAgICAgQGlmIG50aCgkdmFscywgMikgeyAjeyRsZWZ0fTogICBudGgoJHZhbHMsIDIpOyB9XG4gICAgfSBAZWxzZSBpZiBsZW5ndGgoJHZhbHMpID09IDMge1xuICAgICAgQGlmIG50aCgkdmFscywgMykgeyAjeyRib3R0b219OiBudGgoJHZhbHMsIDMpOyB9XG4gICAgICBAaWYgbnRoKCR2YWxzLCAyKSB7ICN7JGxlZnR9OiAgIG50aCgkdmFscywgMik7IH1cbiAgICB9IEBlbHNlIGlmIGxlbmd0aCgkdmFscykgPT0gNCB7XG4gICAgICBAaWYgbnRoKCR2YWxzLCAzKSB7ICN7JGJvdHRvbX06IG50aCgkdmFscywgMyk7IH1cbiAgICAgIEBpZiBudGgoJHZhbHMsIDQpIHsgI3skbGVmdH06ICAgbnRoKCR2YWxzLCA0KTsgfVxuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgI3skYWxsfTogJHZhbHM7XG4gIH1cbn1cbiIsIi8vIFVzZWQgZm9yIGNyZWF0aW5nIHRoZSBzb3VyY2Ugc3RyaW5nIGZvciBmb250cyB1c2luZyBAZm9udC1mYWNlXG4vLyBSZWZlcmVuY2U6IGh0dHA6Ly9nb28uZ2wvUnUxYktQXG5cbkBmdW5jdGlvbiBmb250LXVybC1wcmVmaXhlcigkYXNzZXQtcGlwZWxpbmUpIHtcbiAgQGlmICRhc3NldC1waXBlbGluZSA9PSB0cnVlIHtcbiAgICBAcmV0dXJuIGZvbnQtdXJsO1xuICB9IEBlbHNlIHtcbiAgICBAcmV0dXJuIHVybDtcbiAgfVxufVxuXG5AZnVuY3Rpb24gZm9udC1zb3VyY2UtZGVjbGFyYXRpb24oXG4gICRmb250LWZhbWlseSxcbiAgJGZpbGUtcGF0aCxcbiAgJGFzc2V0LXBpcGVsaW5lLFxuICAkZmlsZS1mb3JtYXRzLFxuICAkZm9udC11cmwpIHtcblxuICAkc3JjOiBudWxsO1xuXG4gICRmb3JtYXRzLW1hcDogKFxuICAgIGVvdDogICBcIiN7JGZpbGUtcGF0aH0uZW90PyNpZWZpeFwiIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLFxuICAgIHdvZmYyOiBcIiN7JGZpbGUtcGF0aH0ud29mZjJcIiBmb3JtYXQoXCJ3b2ZmMlwiKSxcbiAgICB3b2ZmOiAgXCIjeyRmaWxlLXBhdGh9LndvZmZcIiBmb3JtYXQoXCJ3b2ZmXCIpLFxuICAgIHR0ZjogICBcIiN7JGZpbGUtcGF0aH0udHRmXCIgZm9ybWF0KFwidHJ1ZXR5cGVcIiksXG4gICAgc3ZnOiAgIFwiI3skZmlsZS1wYXRofS5zdmcjI3skZm9udC1mYW1pbHl9XCIgZm9ybWF0KFwic3ZnXCIpXG4gICk7XG5cbiAgQGVhY2ggJGtleSwgJHZhbHVlcyBpbiAkZm9ybWF0cy1tYXAge1xuICAgIEBpZiBjb250YWlucygkZmlsZS1mb3JtYXRzLCAka2V5KSB7XG4gICAgICAkZmlsZS1wYXRoOiBudGgoJHZhbHVlcywgMSk7XG4gICAgICAkZm9udC1mb3JtYXQ6IG50aCgkdmFsdWVzLCAyKTtcblxuICAgICAgQGlmICRhc3NldC1waXBlbGluZSA9PSB0cnVlIHtcbiAgICAgICAgJHNyYzogYXBwZW5kKCRzcmMsIGZvbnQtdXJsKCRmaWxlLXBhdGgpICRmb250LWZvcm1hdCwgY29tbWEpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICRzcmM6IGFwcGVuZCgkc3JjLCB1cmwoJGZpbGUtcGF0aCkgJGZvbnQtZm9ybWF0LCBjb21tYSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkc3JjO1xufVxuIiwiQGZ1bmN0aW9uIF9ncmFkaWVudC1wb3NpdGlvbnMtcGFyc2VyKCRncmFkaWVudC10eXBlLCAkZ3JhZGllbnQtcG9zaXRpb25zKSB7XG4gIEBpZiAkZ3JhZGllbnQtcG9zaXRpb25zXG4gIGFuZCAoJGdyYWRpZW50LXR5cGUgPT0gbGluZWFyKVxuICBhbmQgKHR5cGUtb2YoJGdyYWRpZW50LXBvc2l0aW9ucykgIT0gY29sb3IpIHtcbiAgICAkZ3JhZGllbnQtcG9zaXRpb25zOiBfbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIoJGdyYWRpZW50LXBvc2l0aW9ucyk7XG4gIH1cbiAgQGVsc2UgaWYgJGdyYWRpZW50LXBvc2l0aW9uc1xuICBhbmQgKCRncmFkaWVudC10eXBlID09IHJhZGlhbClcbiAgYW5kICh0eXBlLW9mKCRncmFkaWVudC1wb3NpdGlvbnMpICE9IGNvbG9yKSB7XG4gICAgJGdyYWRpZW50LXBvc2l0aW9uczogX3JhZGlhbC1wb3NpdGlvbnMtcGFyc2VyKCRncmFkaWVudC1wb3NpdGlvbnMpO1xuICB9XG4gIEByZXR1cm4gJGdyYWRpZW50LXBvc2l0aW9ucztcbn1cbiIsIi8vIFByaXZhdGUgZnVuY3Rpb24gZm9yIGxpbmVhci1ncmFkaWVudC1wYXJzZXJcbkBmdW5jdGlvbiBfbGluZWFyLWFuZ2xlLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgpIHtcbiAgJG9mZnNldDogbnVsbDtcbiAgJHVuaXQtc2hvcnQ6ICBzdHItc2xpY2UoJGZpcnN0LXZhbCwgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSAtIDIsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xuICAkdW5pdC1sb25nOiAgIHN0ci1zbGljZSgkZmlyc3QtdmFsLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpIC0gMywgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XG5cbiAgQGlmICgkdW5pdC1sb25nID09IFwiZ3JhZFwiKSBvclxuICAgICAgKCR1bml0LWxvbmcgPT0gXCJ0dXJuXCIpIHtcbiAgICAkb2Zmc2V0OiBpZigkdW5pdC1sb25nID09IFwiZ3JhZFwiLCAtMTAwZ3JhZCAqIDMsIC0wLjc1dHVybik7XG4gIH1cblxuICBAZWxzZSBpZiAoJHVuaXQtc2hvcnQgPT0gXCJkZWdcIikgb3JcbiAgICAgICAgICAgKCR1bml0LXNob3J0ID09IFwicmFkXCIpIHtcbiAgICAkb2Zmc2V0OiBpZigkdW5pdC1zaG9ydCA9PSBcImRlZ1wiLCAtOTAgKiAzLCAxLjZyYWQpO1xuICB9XG5cbiAgQGlmICRvZmZzZXQge1xuICAgICRudW06IF9zdHItdG8tbnVtKCRmaXJzdC12YWwpO1xuXG4gICAgQHJldHVybiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJHByZWZpeCArICgkb2Zmc2V0IC0gJG51bSkgKyAkc3VmZml4LFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxufVxuIiwiQGZ1bmN0aW9uIF9saW5lYXItZ3JhZGllbnQtcGFyc2VyKCRpbWFnZSkge1xuICAkaW1hZ2U6IHVucXVvdGUoJGltYWdlKTtcbiAgJGdyYWRpZW50czogKCk7XG4gICRzdGFydDogc3RyLWluZGV4KCRpbWFnZSwgXCIoXCIpO1xuICAkZW5kOiBzdHItaW5kZXgoJGltYWdlLCBcIixcIik7XG4gICRmaXJzdC12YWw6IHN0ci1zbGljZSgkaW1hZ2UsICRzdGFydCArIDEsICRlbmQgLSAxKTtcblxuICAkcHJlZml4OiBzdHItc2xpY2UoJGltYWdlLCAwLCAkc3RhcnQpO1xuICAkc3VmZml4OiBzdHItc2xpY2UoJGltYWdlLCAkZW5kLCBzdHItbGVuZ3RoKCRpbWFnZSkpO1xuXG4gICRoYXMtbXVsdGlwbGUtdmFsczogc3RyLWluZGV4KCRmaXJzdC12YWwsIFwiIFwiKTtcbiAgJGhhcy1zaW5nbGUtcG9zaXRpb246IHVucXVvdGUoX3Bvc2l0aW9uLWZsaXBwZXIoJGZpcnN0LXZhbCkgKyBcIlwiKTtcbiAgJGhhcy1hbmdsZTogaXMtbnVtYmVyKHN0ci1zbGljZSgkZmlyc3QtdmFsLCAwLCAwKSk7XG5cbiAgQGlmICRoYXMtbXVsdGlwbGUtdmFscyB7XG4gICAgJGdyYWRpZW50czogX2xpbmVhci1zaWRlLWNvcm5lci1wYXJzZXIoJGltYWdlLCAkZmlyc3QtdmFsLCAkcHJlZml4LCAkc3VmZml4LCAkaGFzLW11bHRpcGxlLXZhbHMpO1xuICB9XG5cbiAgQGVsc2UgaWYgJGhhcy1zaW5nbGUtcG9zaXRpb24gIT0gXCJcIiB7XG4gICAgJHBvczogdW5xdW90ZSgkaGFzLXNpbmdsZS1wb3NpdGlvbiArIFwiXCIpO1xuXG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRpbWFnZSxcbiAgICAgIHNwZWMtaW1hZ2U6ICRwcmVmaXggKyBcInRvIFwiICsgJHBvcyArICRzdWZmaXhcbiAgICApO1xuICB9XG5cbiAgQGVsc2UgaWYgJGhhcy1hbmdsZSB7XG4gICAgLy8gUm90YXRlIGRlZ3JlZSBmb3Igd2Via2l0XG4gICAgJGdyYWRpZW50czogX2xpbmVhci1hbmdsZS1wYXJzZXIoJGltYWdlLCAkZmlyc3QtdmFsLCAkcHJlZml4LCAkc3VmZml4KTtcbiAgfVxuXG4gIEBlbHNlIHtcbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxuXG4gIEByZXR1cm4gJGdyYWRpZW50cztcbn1cbiIsIkBmdW5jdGlvbiBfbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIoJHBvcykge1xuICAkdHlwZTogdHlwZS1vZihudGgoJHBvcywgMSkpO1xuICAkc3BlYzogbnVsbDtcbiAgJGRlZ3JlZTogbnVsbDtcbiAgJHNpZGU6IG51bGw7XG4gICRjb3JuZXI6IG51bGw7XG4gICRsZW5ndGg6IGxlbmd0aCgkcG9zKTtcbiAgLy8gUGFyc2UgU2lkZSBhbmQgY29ybmVyIHBvc2l0aW9uc1xuICBAaWYgKCRsZW5ndGggPiAxKSB7XG4gICAgQGlmIG50aCgkcG9zLCAxKSA9PSBcInRvXCIgeyAvLyBOZXdlciBzeW50YXhcbiAgICAgICRzaWRlOiBudGgoJHBvcywgMik7XG5cbiAgICAgIEBpZiAkbGVuZ3RoID09IDIgeyAvLyBlZy4gdG8gdG9wXG4gICAgICAgIC8vIFN3YXAgZm9yIGJhY2t3YXJkcyBjb21wYXRhYmlsaXR5XG4gICAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKG50aCgkcG9zLCAyKSk7XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiAkbGVuZ3RoID09IDMgeyAvLyBlZy4gdG8gdG9wIGxlZnRcbiAgICAgICAgJGNvcm5lcjogbnRoKCRwb3MsIDMpO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSBpZiAkbGVuZ3RoID09IDIgeyAvLyBPbGRlciBzeW50YXggKFwidG9wIGxlZnRcIilcbiAgICAgICRzaWRlOiBfcG9zaXRpb24tZmxpcHBlcihudGgoJHBvcywgMSkpO1xuICAgICAgJGNvcm5lcjogX3Bvc2l0aW9uLWZsaXBwZXIobnRoKCRwb3MsIDIpKTtcbiAgICB9XG5cbiAgICBAaWYgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwibGVmdCB0b3BcIikgb3IgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwidG9wIGxlZnRcIikge1xuICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIoI3skc2lkZX0pIF9wb3NpdGlvbi1mbGlwcGVyKCN7JGNvcm5lcn0pO1xuICAgIH1cbiAgICBAZWxzZSBpZiAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJyaWdodCB0b3BcIikgb3IgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwidG9wIHJpZ2h0XCIpIHtcbiAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKCN7JHNpZGV9KSBfcG9zaXRpb24tZmxpcHBlcigjeyRjb3JuZXJ9KTtcbiAgICB9XG4gICAgQGVsc2UgaWYgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwicmlnaHQgYm90dG9tXCIpIG9yIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcImJvdHRvbSByaWdodFwiKSB7XG4gICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcigjeyRzaWRlfSkgX3Bvc2l0aW9uLWZsaXBwZXIoI3skY29ybmVyfSk7XG4gICAgfVxuICAgIEBlbHNlIGlmIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcImxlZnQgYm90dG9tXCIpIG9yIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcImJvdHRvbSBsZWZ0XCIpIHtcbiAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKCN7JHNpZGV9KSBfcG9zaXRpb24tZmxpcHBlcigjeyRjb3JuZXJ9KTtcbiAgICB9XG4gICAgJHNwZWM6IHRvICRzaWRlICRjb3JuZXI7XG4gIH1cbiAgQGVsc2UgaWYgJGxlbmd0aCA9PSAxIHtcbiAgICAvLyBTd2FwIGZvciBiYWNrd2FyZHMgY29tcGF0YWJpbGl0eVxuICAgIEBpZiAkdHlwZSA9PSBzdHJpbmcge1xuICAgICAgJGRlZ3JlZTogJHBvcztcbiAgICAgICRzcGVjOiB0byBfcG9zaXRpb24tZmxpcHBlcigkcG9zKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJGRlZ3JlZTogLTI3MCAtICRwb3M7IC8vcm90YXRlIHRoZSBncmFkaWVudCBvcHBvc2l0ZSBmcm9tIHNwZWNcbiAgICAgICRzcGVjOiAkcG9zO1xuICAgIH1cbiAgfVxuICAkZGVncmVlOiB1bnF1b3RlKCRkZWdyZWUgKyBcIixcIik7XG4gICRzcGVjOiAgIHVucXVvdGUoJHNwZWMgKyBcIixcIik7XG4gIEByZXR1cm4gJGRlZ3JlZSAkc3BlYztcbn1cblxuQGZ1bmN0aW9uIF9wb3NpdGlvbi1mbGlwcGVyKCRwb3MpIHtcbiAgQHJldHVybiBpZigkcG9zID09IGxlZnQsIHJpZ2h0LCBudWxsKVxuICAgICAgICAgaWYoJHBvcyA9PSByaWdodCwgbGVmdCwgbnVsbClcbiAgICAgICAgIGlmKCRwb3MgPT0gdG9wLCBib3R0b20sIG51bGwpXG4gICAgICAgICBpZigkcG9zID09IGJvdHRvbSwgdG9wLCBudWxsKTtcbn1cbiIsIi8vIFByaXZhdGUgZnVuY3Rpb24gZm9yIGxpbmVhci1ncmFkaWVudC1wYXJzZXJcbkBmdW5jdGlvbiBfbGluZWFyLXNpZGUtY29ybmVyLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgsICRoYXMtbXVsdGlwbGUtdmFscykge1xuICAkdmFsLTE6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAwLCAkaGFzLW11bHRpcGxlLXZhbHMgLSAxICk7XG4gICR2YWwtMjogc3RyLXNsaWNlKCRmaXJzdC12YWwsICRoYXMtbXVsdGlwbGUtdmFscyArIDEsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xuICAkdmFsLTM6IG51bGw7XG4gICRoYXMtdmFsLTM6IHN0ci1pbmRleCgkdmFsLTIsIFwiIFwiKTtcblxuICBAaWYgJGhhcy12YWwtMyB7XG4gICAgJHZhbC0zOiBzdHItc2xpY2UoJHZhbC0yLCAkaGFzLXZhbC0zICsgMSwgc3RyLWxlbmd0aCgkdmFsLTIpKTtcbiAgICAkdmFsLTI6IHN0ci1zbGljZSgkdmFsLTIsIDAsICRoYXMtdmFsLTMgLSAxKTtcbiAgfVxuXG4gICRwb3M6IF9wb3NpdGlvbi1mbGlwcGVyKCR2YWwtMSkgX3Bvc2l0aW9uLWZsaXBwZXIoJHZhbC0yKSBfcG9zaXRpb24tZmxpcHBlcigkdmFsLTMpO1xuICAkcG9zOiB1bnF1b3RlKCRwb3MgKyBcIlwiKTtcblxuICAvLyBVc2Ugb2xkIHNwZWMgZm9yIHdlYmtpdFxuICBAaWYgJHZhbC0xID09IFwidG9cIiB7XG4gICAgQHJldHVybiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJHByZWZpeCArICRwb3MgKyAkc3VmZml4LFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxuXG4gIC8vIEJyaW5nIHRoZSBjb2RlIHVwIHRvIHNwZWNcbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRpbWFnZSxcbiAgICAgIHNwZWMtaW1hZ2U6ICRwcmVmaXggKyBcInRvIFwiICsgJHBvcyArICRzdWZmaXhcbiAgICApO1xuICB9XG59XG4iLCJAZnVuY3Rpb24gX3JhZGlhbC1hcmctcGFyc2VyKCRnMSwgJGcyLCAkcG9zLCAkc2hhcGUtc2l6ZSkge1xuICBAZWFjaCAkdmFsdWUgaW4gJGcxLCAkZzIge1xuICAgICRmaXJzdC12YWw6IG50aCgkdmFsdWUsIDEpO1xuICAgICRwb3MtdHlwZTogIHR5cGUtb2YoJGZpcnN0LXZhbCk7XG4gICAgJHNwZWMtYXQtaW5kZXg6IG51bGw7XG5cbiAgICAvLyBEZXRlcm1pbmUgaWYgc3BlYyB3YXMgcGFzc2VkIHRvIG1peGluXG4gICAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSBsaXN0IHtcbiAgICAgICRzcGVjLWF0LWluZGV4OiBpZihpbmRleCgkdmFsdWUsIGF0KSwgaW5kZXgoJHZhbHVlLCBhdCksIGZhbHNlKTtcbiAgICB9XG4gICAgQGlmICRzcGVjLWF0LWluZGV4IHtcbiAgICAgIEBpZiAkc3BlYy1hdC1pbmRleCA+IDEge1xuICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICgkc3BlYy1hdC1pbmRleCAtIDEpIHtcbiAgICAgICAgICAkc2hhcGUtc2l6ZTogJHNoYXBlLXNpemUgbnRoKCR2YWx1ZSwgJGkpO1xuICAgICAgICB9XG4gICAgICAgIEBmb3IgJGkgZnJvbSAoJHNwZWMtYXQtaW5kZXggKyAxKSB0aHJvdWdoIGxlbmd0aCgkdmFsdWUpIHtcbiAgICAgICAgICAkcG9zOiAkcG9zIG50aCgkdmFsdWUsICRpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2UgaWYgJHNwZWMtYXQtaW5kZXggPT0gMSB7XG4gICAgICAgIEBmb3IgJGkgZnJvbSAoJHNwZWMtYXQtaW5kZXggKyAxKSB0aHJvdWdoIGxlbmd0aCgkdmFsdWUpIHtcbiAgICAgICAgICAkcG9zOiAkcG9zIG50aCgkdmFsdWUsICRpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJGcxOiBudWxsO1xuICAgIH1cblxuICAgIC8vIElmIG5vdCBzcGVjIGNhbGN1bGF0ZSBjb3JyZWN0IHZhbHVlc1xuICAgIEBlbHNlIHtcbiAgICAgIEBpZiAoJHBvcy10eXBlICE9IGNvbG9yKSBvciAoJGZpcnN0LXZhbCAhPSBcInRyYW5zcGFyZW50XCIpIHtcbiAgICAgICAgQGlmICgkcG9zLXR5cGUgPT0gbnVtYmVyKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNlbnRlclwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcInRvcFwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcInJpZ2h0XCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiYm90dG9tXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwibGVmdFwiKSB7XG5cbiAgICAgICAgICAkcG9zOiAkdmFsdWU7XG5cbiAgICAgICAgICBAaWYgJHBvcyA9PSAkZzEge1xuICAgICAgICAgICAgJGcxOiBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlbHNlIGlmXG4gICAgICAgICAgICgkZmlyc3QtdmFsID09IFwiZWxsaXBzZVwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNpcmNsZVwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNsb3Nlc3Qtc2lkZVwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNsb3Nlc3QtY29ybmVyXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiZmFydGhlc3Qtc2lkZVwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImZhcnRoZXN0LWNvcm5lclwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNvbnRhaW5cIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjb3ZlclwiKSB7XG5cbiAgICAgICAgICAkc2hhcGUtc2l6ZTogJHZhbHVlO1xuXG4gICAgICAgICAgQGlmICR2YWx1ZSA9PSAkZzEge1xuICAgICAgICAgICAgJGcxOiBudWxsO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIEBlbHNlIGlmICR2YWx1ZSA9PSAkZzIge1xuICAgICAgICAgICAgJGcyOiBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAcmV0dXJuICRnMSwgJGcyLCAkcG9zLCAkc2hhcGUtc2l6ZTtcbn1cbiIsIkBmdW5jdGlvbiBfcmFkaWFsLXBvc2l0aW9ucy1wYXJzZXIoJGdyYWRpZW50LXBvcykge1xuICAkc2hhcGUtc2l6ZTogbnRoKCRncmFkaWVudC1wb3MsIDEpO1xuICAkcG9zOiAgICAgICAgbnRoKCRncmFkaWVudC1wb3MsIDIpO1xuICAkc2hhcGUtc2l6ZS1zcGVjOiBfc2hhcGUtc2l6ZS1zdHJpcHBlcigkc2hhcGUtc2l6ZSk7XG5cbiAgJHByZS1zcGVjOiB1bnF1b3RlKGlmKCRwb3MsIFwiI3skcG9zfSwgXCIsIG51bGwpKVxuICAgICAgICAgICAgIHVucXVvdGUoaWYoJHNoYXBlLXNpemUsIFwiI3skc2hhcGUtc2l6ZX0sXCIsIG51bGwpKTtcbiAgJHBvcy1zcGVjOiBpZigkcG9zLCBcImF0ICN7JHBvc31cIiwgbnVsbCk7XG5cbiAgJHNwZWM6IFwiI3skc2hhcGUtc2l6ZS1zcGVjfSAjeyRwb3Mtc3BlY31cIjtcblxuICAvLyBBZGQgY29tbWFcbiAgQGlmICgkc3BlYyAhPSBcIiAgXCIpIHtcbiAgICAkc3BlYzogXCIjeyRzcGVjfSxcIjtcbiAgfVxuXG4gIEByZXR1cm4gJHByZS1zcGVjICRzcGVjO1xufVxuIiwiQGZ1bmN0aW9uIF9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyKCRpbWFnZSkge1xuICAkaW1hZ2U6IHVucXVvdGUoJGltYWdlKTtcbiAgJGdyYWRpZW50czogKCk7XG4gICRzdGFydDogc3RyLWluZGV4KCRpbWFnZSwgXCIoXCIpO1xuICAkZW5kOiBzdHItaW5kZXgoJGltYWdlLCBcIixcIik7XG4gICRmaXJzdC12YWw6IHN0ci1zbGljZSgkaW1hZ2UsICRzdGFydCArIDEsICRlbmQgLSAxKTtcblxuICAkcHJlZml4OiBzdHItc2xpY2UoJGltYWdlLCAwLCAkc3RhcnQpO1xuICAkc3VmZml4OiBzdHItc2xpY2UoJGltYWdlLCAkZW5kLCBzdHItbGVuZ3RoKCRpbWFnZSkpO1xuXG4gICRpcy1zcGVjLXN5bnRheDogc3RyLWluZGV4KCRmaXJzdC12YWwsIFwiYXRcIik7XG5cbiAgQGlmICRpcy1zcGVjLXN5bnRheCBhbmQgJGlzLXNwZWMtc3ludGF4ID4gMSB7XG4gICAgJGtleXdvcmQ6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAxLCAkaXMtc3BlYy1zeW50YXggLSAyKTtcbiAgICAkcG9zOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgJGlzLXNwZWMtc3ludGF4ICsgMywgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XG4gICAgJHBvczogYXBwZW5kKCRwb3MsICRrZXl3b3JkLCBjb21tYSk7XG5cbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJHByZWZpeCArICRwb3MgKyAkc3VmZml4LFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxuXG4gIEBlbHNlIGlmICRpcy1zcGVjLXN5bnRheCA9PSAxIHtcbiAgICAkcG9zOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgJGlzLXNwZWMtc3ludGF4ICsgMywgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XG5cbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJHByZWZpeCArICRwb3MgKyAkc3VmZml4LFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxuXG4gIEBlbHNlIGlmIHN0ci1pbmRleCgkaW1hZ2UsIFwiY292ZXJcIikgb3Igc3RyLWluZGV4KCRpbWFnZSwgXCJjb250YWluXCIpIHtcbiAgICBAd2FybiBcIlJhZGlhbC1ncmFkaWVudCBuZWVkcyB0byBiZSB1cGRhdGVkIHRvIGNvbmZvcm0gdG8gbGF0ZXN0IHNwZWMuXCI7XG5cbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IG51bGwsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG5cbiAgQGVsc2Uge1xuICAgICRncmFkaWVudHM6IChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkaW1hZ2UsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG5cbiAgQHJldHVybiAkZ3JhZGllbnRzO1xufVxuIiwiLy8gVXNlciBmb3IgbGluZWFyIGFuZCByYWRpYWwgZ3JhZGllbnRzIHdpdGhpbiBiYWNrZ3JvdW5kLWltYWdlIG9yIGJvcmRlci1pbWFnZSBwcm9wZXJ0aWVzXG5cbkBmdW5jdGlvbiBfcmVuZGVyLWdyYWRpZW50cygkZ3JhZGllbnQtcG9zaXRpb25zLCAkZ3JhZGllbnRzLCAkZ3JhZGllbnQtdHlwZSwgJHZlbmRvcjogZmFsc2UpIHtcbiAgJHByZS1zcGVjOiBudWxsO1xuICAkc3BlYzogbnVsbDtcbiAgJHZlbmRvci1ncmFkaWVudHM6IG51bGw7XG4gIEBpZiAkZ3JhZGllbnQtdHlwZSA9PSBsaW5lYXIge1xuICAgIEBpZiAkZ3JhZGllbnQtcG9zaXRpb25zIHtcbiAgICAgICRwcmUtc3BlYzogbnRoKCRncmFkaWVudC1wb3NpdGlvbnMsIDEpO1xuICAgICAgJHNwZWM6ICAgICBudGgoJGdyYWRpZW50LXBvc2l0aW9ucywgMik7XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IHJhZGlhbCB7XG4gICAgJHByZS1zcGVjOiBudGgoJGdyYWRpZW50LXBvc2l0aW9ucywgMSk7XG4gICAgJHNwZWM6ICAgICBudGgoJGdyYWRpZW50LXBvc2l0aW9ucywgMik7XG4gIH1cblxuICBAaWYgJHZlbmRvciB7XG4gICAgJHZlbmRvci1ncmFkaWVudHM6IC0jeyR2ZW5kb3J9LSN7JGdyYWRpZW50LXR5cGV9LWdyYWRpZW50KCN7JHByZS1zcGVjfSAkZ3JhZGllbnRzKTtcbiAgfVxuICBAZWxzZSBpZiAkdmVuZG9yID09IGZhbHNlIHtcbiAgICAkdmVuZG9yLWdyYWRpZW50czogXCIjeyRncmFkaWVudC10eXBlfS1ncmFkaWVudCgjeyRzcGVjfSAjeyRncmFkaWVudHN9KVwiO1xuICAgICR2ZW5kb3ItZ3JhZGllbnRzOiB1bnF1b3RlKCR2ZW5kb3ItZ3JhZGllbnRzKTtcbiAgfVxuICBAcmV0dXJuICR2ZW5kb3ItZ3JhZGllbnRzO1xufVxuIiwiQGZ1bmN0aW9uIF9zaGFwZS1zaXplLXN0cmlwcGVyKCRzaGFwZS1zaXplKSB7XG4gICRzaGFwZS1zaXplLXNwZWM6IG51bGw7XG4gIEBlYWNoICR2YWx1ZSBpbiAkc2hhcGUtc2l6ZSB7XG4gICAgQGlmICgkdmFsdWUgPT0gXCJjb3ZlclwiKSBvciAoJHZhbHVlID09IFwiY29udGFpblwiKSB7XG4gICAgICAkdmFsdWU6IG51bGw7XG4gICAgfVxuICAgICRzaGFwZS1zaXplLXNwZWM6IFwiI3skc2hhcGUtc2l6ZS1zcGVjfSAjeyR2YWx1ZX1cIjtcbiAgfVxuICBAcmV0dXJuICRzaGFwZS1zaXplLXNwZWM7XG59XG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyBIZWxwZXIgZnVuY3Rpb24gZm9yIGxpbmVhci9yYWRpYWwtZ3JhZGllbnQtcGFyc2Vycy5cbi8vIFNvdXJjZTogaHR0cDovL3Nhc3NtZWlzdGVyLmNvbS9naXN0Lzk2NDc0MDhcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbkBmdW5jdGlvbiBfc3RyLXRvLW51bSgkc3RyaW5nKSB7XG4gIC8vIE1hdHJpY2VzXG4gICRzdHJpbmdzOiBcIjBcIiBcIjFcIiBcIjJcIiBcIjNcIiBcIjRcIiBcIjVcIiBcIjZcIiBcIjdcIiBcIjhcIiBcIjlcIjtcbiAgJG51bWJlcnM6ICAwICAgMSAgIDIgICAzICAgNCAgIDUgICA2ICAgNyAgIDggICA5O1xuXG4gIC8vIFJlc3VsdFxuICAkcmVzdWx0OiAwO1xuICAkZGl2aWRlcjogMDtcbiAgJG1pbnVzOiBmYWxzZTtcblxuICAvLyBMb29waW5nIHRocm91Z2ggYWxsIGNoYXJhY3RlcnNcbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBzdHItbGVuZ3RoKCRzdHJpbmcpIHtcbiAgICAkY2hhcmFjdGVyOiBzdHItc2xpY2UoJHN0cmluZywgJGksICRpKTtcbiAgICAkaW5kZXg6IGluZGV4KCRzdHJpbmdzLCAkY2hhcmFjdGVyKTtcblxuICAgIEBpZiAkY2hhcmFjdGVyID09IFwiLVwiIHtcbiAgICAgICRtaW51czogdHJ1ZTtcbiAgICB9XG5cbiAgICBAZWxzZSBpZiAkY2hhcmFjdGVyID09IFwiLlwiIHtcbiAgICAgICRkaXZpZGVyOiAxO1xuICAgIH1cblxuICAgIEBlbHNlIHtcbiAgICAgIEBpZiBub3QgJGluZGV4IHtcbiAgICAgICAgJHJlc3VsdDogaWYoJG1pbnVzLCAkcmVzdWx0ICogLTEsICRyZXN1bHQpO1xuICAgICAgICBAcmV0dXJuIF9jb252ZXJ0LXVuaXRzKCRyZXN1bHQsIHN0ci1zbGljZSgkc3RyaW5nLCAkaSkpO1xuICAgICAgfVxuXG4gICAgICAkbnVtYmVyOiBudGgoJG51bWJlcnMsICRpbmRleCk7XG5cbiAgICAgIEBpZiAkZGl2aWRlciA9PSAwIHtcbiAgICAgICAgJHJlc3VsdDogJHJlc3VsdCAqIDEwO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSB7XG4gICAgICAgIC8vIE1vdmUgdGhlIGRlY2ltYWwgZG90IHRvIHRoZSBsZWZ0XG4gICAgICAgICRkaXZpZGVyOiAkZGl2aWRlciAqIDEwO1xuICAgICAgICAkbnVtYmVyOiAkbnVtYmVyIC8gJGRpdmlkZXI7XG4gICAgICB9XG5cbiAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKyAkbnVtYmVyO1xuICAgIH1cbiAgfVxuICBAcmV0dXJuIGlmKCRtaW51cywgJHJlc3VsdCAqIC0xLCAkcmVzdWx0KTtcbn1cbiIsIi8vIGh0dHA6Ly93d3cudzMub3JnL1RSL2NzczMtYW5pbWF0aW9ucy8jdGhlLWFuaW1hdGlvbi1uYW1lLXByb3BlcnR5LVxuLy8gRWFjaCBvZiB0aGVzZSBtaXhpbnMgc3VwcG9ydCBjb21tYSBzZXBhcmF0ZWQgbGlzdHMgb2YgdmFsdWVzLCB3aGljaCBhbGxvd3MgZGlmZmVyZW50IHRyYW5zaXRpb25zIGZvciBpbmRpdmlkdWFsIHByb3BlcnRpZXMgdG8gYmUgZGVzY3JpYmVkIGluIGEgc2luZ2xlIHN0eWxlIHJ1bGUuIEVhY2ggdmFsdWUgaW4gdGhlIGxpc3QgY29ycmVzcG9uZHMgdG8gdGhlIHZhbHVlIGF0IHRoYXQgc2FtZSBwb3NpdGlvbiBpbiB0aGUgb3RoZXIgcHJvcGVydGllcy5cblxuQG1peGluIGFuaW1hdGlvbigkYW5pbWF0aW9ucy4uLikge1xuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24sICRhbmltYXRpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLW5hbWUoJG5hbWVzLi4uKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1uYW1lLCAkbmFtZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tZHVyYXRpb24oJHRpbWVzLi4uKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1kdXJhdGlvbiwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbigkbW90aW9ucy4uLikge1xuICAvLyBlYXNlIHwgbGluZWFyIHwgZWFzZS1pbiB8IGVhc2Utb3V0IHwgZWFzZS1pbi1vdXRcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbiwgJG1vdGlvbnMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50KCR2YWx1ZXMuLi4pIHtcbiAgLy8gaW5maW5pdGUgfCA8bnVtYmVyPlxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCAkdmFsdWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLWRpcmVjdGlvbigkZGlyZWN0aW9ucy4uLikge1xuICAvLyBub3JtYWwgfCBhbHRlcm5hdGVcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWRpcmVjdGlvbiwgJGRpcmVjdGlvbnMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tcGxheS1zdGF0ZSgkc3RhdGVzLi4uKSB7XG4gIC8vIHJ1bm5pbmcgfCBwYXVzZWRcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLXBsYXktc3RhdGUsICRzdGF0ZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tZGVsYXkoJHRpbWVzLi4uKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1kZWxheSwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLWZpbGwtbW9kZSgkbW9kZXMuLi4pIHtcbiAgLy8gbm9uZSB8IGZvcndhcmRzIHwgYmFja3dhcmRzIHwgYm90aFxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZmlsbC1tb2RlLCAkbW9kZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG4iLCJAbWl4aW4gYXBwZWFyYW5jZSgkdmFsdWUpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYXBwZWFyYW5jZSwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG59XG4iLCJAbWl4aW4gYmFja2ZhY2UtdmlzaWJpbGl0eSgkdmlzaWJpbGl0eSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihiYWNrZmFjZS12aXNpYmlsaXR5LCAkdmlzaWJpbGl0eSwgd2Via2l0IHNwZWMpO1xufVxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gQmFja2dyb3VuZCBwcm9wZXJ0eSBmb3IgYWRkaW5nIG11bHRpcGxlIGJhY2tncm91bmRzIHVzaW5nIHNob3J0aGFuZFxuLy8gbm90YXRpb24uXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5cbkBtaXhpbiBiYWNrZ3JvdW5kKCRiYWNrZ3JvdW5kcy4uLikge1xuICAkd2Via2l0LWJhY2tncm91bmRzOiAoKTtcbiAgJHNwZWMtYmFja2dyb3VuZHM6ICgpO1xuXG4gIEBlYWNoICRiYWNrZ3JvdW5kIGluICRiYWNrZ3JvdW5kcyB7XG4gICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiAoKTtcbiAgICAkc3BlYy1iYWNrZ3JvdW5kOiAoKTtcbiAgICAkYmFja2dyb3VuZC10eXBlOiB0eXBlLW9mKCRiYWNrZ3JvdW5kKTtcblxuICAgIEBpZiAkYmFja2dyb3VuZC10eXBlID09IHN0cmluZyBvciAkYmFja2dyb3VuZC10eXBlID09IGxpc3Qge1xuICAgICAgJGJhY2tncm91bmQtc3RyOiBpZigkYmFja2dyb3VuZC10eXBlID09IGxpc3QsIG50aCgkYmFja2dyb3VuZCwgMSksICRiYWNrZ3JvdW5kKTtcblxuICAgICAgJHVybC1zdHI6ICAgICAgIHN0ci1zbGljZSgkYmFja2dyb3VuZC1zdHIsIDAsIDMpO1xuICAgICAgJGdyYWRpZW50LXR5cGU6IHN0ci1zbGljZSgkYmFja2dyb3VuZC1zdHIsIDAsIDYpO1xuXG4gICAgICBAaWYgJHVybC1zdHIgPT0gXCJ1cmxcIiB7XG4gICAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgJGJhY2tncm91bmQ7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwibGluZWFyXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfbGluZWFyLWdyYWRpZW50LXBhcnNlcihcIiN7JGJhY2tncm91bmR9XCIpO1xuICAgICAgICAkd2Via2l0LWJhY2tncm91bmQ6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtYmFja2dyb3VuZDogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcInJhZGlhbFwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIoXCIjeyRiYWNrZ3JvdW5kfVwiKTtcbiAgICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcbiAgICAgIH1cblxuICAgICAgQGVsc2Uge1xuICAgICAgICAkd2Via2l0LWJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgICRiYWNrZ3JvdW5kO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBlbHNlIHtcbiAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgICRiYWNrZ3JvdW5kO1xuICAgIH1cblxuICAgICR3ZWJraXQtYmFja2dyb3VuZHM6IGFwcGVuZCgkd2Via2l0LWJhY2tncm91bmRzLCAkd2Via2l0LWJhY2tncm91bmQsIGNvbW1hKTtcbiAgICAkc3BlYy1iYWNrZ3JvdW5kczogICBhcHBlbmQoJHNwZWMtYmFja2dyb3VuZHMsICAgJHNwZWMtYmFja2dyb3VuZCwgICBjb21tYSk7XG4gIH1cblxuICBiYWNrZ3JvdW5kOiAkd2Via2l0LWJhY2tncm91bmRzO1xuICBiYWNrZ3JvdW5kOiAkc3BlYy1iYWNrZ3JvdW5kcztcbn1cbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIEJhY2tncm91bmQtaW1hZ2UgcHJvcGVydHkgZm9yIGFkZGluZyBtdWx0aXBsZSBiYWNrZ3JvdW5kIGltYWdlcyB3aXRoXG4vLyBncmFkaWVudHMsIG9yIGZvciBzdHJpbmdpbmcgbXVsdGlwbGUgZ3JhZGllbnRzIHRvZ2V0aGVyLlxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuXG5AbWl4aW4gYmFja2dyb3VuZC1pbWFnZSgkaW1hZ2VzLi4uKSB7XG4gICR3ZWJraXQtaW1hZ2VzOiAoKTtcbiAgJHNwZWMtaW1hZ2VzOiAoKTtcblxuICBAZWFjaCAkaW1hZ2UgaW4gJGltYWdlcyB7XG4gICAgJHdlYmtpdC1pbWFnZTogKCk7XG4gICAgJHNwZWMtaW1hZ2U6ICgpO1xuXG4gICAgQGlmICh0eXBlLW9mKCRpbWFnZSkgPT0gc3RyaW5nKSB7XG4gICAgICAkdXJsLXN0cjogICAgICAgc3RyLXNsaWNlKCRpbWFnZSwgMCwgMyk7XG4gICAgICAkZ3JhZGllbnQtdHlwZTogc3RyLXNsaWNlKCRpbWFnZSwgMCwgNik7XG5cbiAgICAgIEBpZiAkdXJsLXN0ciA9PSBcInVybFwiIHtcbiAgICAgICAgJHdlYmtpdC1pbWFnZTogJGltYWdlO1xuICAgICAgICAkc3BlYy1pbWFnZTogICAkaW1hZ2U7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwibGluZWFyXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfbGluZWFyLWdyYWRpZW50LXBhcnNlcigkaW1hZ2UpO1xuICAgICAgICAkd2Via2l0LWltYWdlOiAgbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xuICAgICAgICAkc3BlYy1pbWFnZTogICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJyYWRpYWxcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyKCRpbWFnZSk7XG4gICAgICAgICR3ZWJraXQtaW1hZ2U6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtaW1hZ2U6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAkd2Via2l0LWltYWdlczogYXBwZW5kKCR3ZWJraXQtaW1hZ2VzLCAkd2Via2l0LWltYWdlLCBjb21tYSk7XG4gICAgJHNwZWMtaW1hZ2VzOiAgIGFwcGVuZCgkc3BlYy1pbWFnZXMsICAgJHNwZWMtaW1hZ2UsICAgY29tbWEpO1xuICB9XG5cbiAgYmFja2dyb3VuZC1pbWFnZTogJHdlYmtpdC1pbWFnZXM7XG4gIGJhY2tncm91bmQtaW1hZ2U6ICRzcGVjLWltYWdlcztcbn1cbiIsIkBtaXhpbiBib3JkZXItaW1hZ2UoJGJvcmRlcnMuLi4pIHtcbiAgJHdlYmtpdC1ib3JkZXJzOiAoKTtcbiAgJHNwZWMtYm9yZGVyczogKCk7XG5cbiAgQGVhY2ggJGJvcmRlciBpbiAkYm9yZGVycyB7XG4gICAgJHdlYmtpdC1ib3JkZXI6ICgpO1xuICAgICRzcGVjLWJvcmRlcjogKCk7XG4gICAgJGJvcmRlci10eXBlOiB0eXBlLW9mKCRib3JkZXIpO1xuXG4gICAgQGlmICRib3JkZXItdHlwZSA9PSBzdHJpbmcgb3IgbGlzdCB7XG4gICAgICAkYm9yZGVyLXN0cjogaWYoJGJvcmRlci10eXBlID09IGxpc3QsIG50aCgkYm9yZGVyLCAxKSwgJGJvcmRlcik7XG5cbiAgICAgICR1cmwtc3RyOiAgICAgICBzdHItc2xpY2UoJGJvcmRlci1zdHIsIDAsIDMpO1xuICAgICAgJGdyYWRpZW50LXR5cGU6IHN0ci1zbGljZSgkYm9yZGVyLXN0ciwgMCwgNik7XG5cbiAgICAgIEBpZiAkdXJsLXN0ciA9PSBcInVybFwiIHtcbiAgICAgICAgJHdlYmtpdC1ib3JkZXI6ICRib3JkZXI7XG4gICAgICAgICRzcGVjLWJvcmRlcjogICAkYm9yZGVyO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcImxpbmVhclwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX2xpbmVhci1ncmFkaWVudC1wYXJzZXIoXCIjeyRib3JkZXJ9XCIpO1xuICAgICAgICAkd2Via2l0LWJvcmRlcjogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xuICAgICAgICAkc3BlYy1ib3JkZXI6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJyYWRpYWxcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyKFwiI3skYm9yZGVyfVwiKTtcbiAgICAgICAgJHdlYmtpdC1ib3JkZXI6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtYm9yZGVyOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJHdlYmtpdC1ib3JkZXI6ICRib3JkZXI7XG4gICAgICAgICRzcGVjLWJvcmRlcjogICAkYm9yZGVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBlbHNlIHtcbiAgICAgICR3ZWJraXQtYm9yZGVyOiAkYm9yZGVyO1xuICAgICAgJHNwZWMtYm9yZGVyOiAgICRib3JkZXI7XG4gICAgfVxuXG4gICAgJHdlYmtpdC1ib3JkZXJzOiBhcHBlbmQoJHdlYmtpdC1ib3JkZXJzLCAkd2Via2l0LWJvcmRlciwgY29tbWEpO1xuICAgICRzcGVjLWJvcmRlcnM6ICAgYXBwZW5kKCRzcGVjLWJvcmRlcnMsICAgJHNwZWMtYm9yZGVyLCAgIGNvbW1hKTtcbiAgfVxuXG4gIC13ZWJraXQtYm9yZGVyLWltYWdlOiAkd2Via2l0LWJvcmRlcnM7XG4gICAgICAgICAgYm9yZGVyLWltYWdlOiAkc3BlYy1ib3JkZXJzO1xuICAgICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG59XG5cbi8vRXhhbXBsZXM6XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UodXJsKFwiaW1hZ2UucG5nXCIpKTtcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZSh1cmwoXCJpbWFnZS5wbmdcIikgMjAgc3RyZXRjaCk7XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UobGluZWFyLWdyYWRpZW50KDQ1ZGVnLCBvcmFuZ2UsIHllbGxvdykpO1xuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKGxpbmVhci1ncmFkaWVudCg0NWRlZywgb3JhbmdlLCB5ZWxsb3cpIHN0cmV0Y2gpO1xuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKGxpbmVhci1ncmFkaWVudCg0NWRlZywgb3JhbmdlLCB5ZWxsb3cpIDIwIDMwIDQwIDUwIHN0cmV0Y2ggcm91bmQpO1xuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKHJhZGlhbC1ncmFkaWVudCh0b3AsIGNvdmVyLCBvcmFuZ2UsIHllbGxvdywgb3JhbmdlKSk7XG4iLCJAbWl4aW4gY2FsYygkcHJvcGVydHksICR2YWx1ZSkge1xuICAjeyRwcm9wZXJ0eX06IC13ZWJraXQtY2FsYygjeyR2YWx1ZX0pO1xuICAjeyRwcm9wZXJ0eX06IGNhbGMoI3skdmFsdWV9KTtcbn1cbiIsIkBtaXhpbiBjb2x1bW5zKCRhcmc6IGF1dG8pIHtcbiAgLy8gPGNvbHVtbi1jb3VudD4gfHwgPGNvbHVtbi13aWR0aD5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1ucywgJGFyZywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1jb3VudCgkaW50OiBhdXRvKSB7XG4gIC8vIGF1dG8gfHwgaW50ZWdlclxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tY291bnQsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tZ2FwKCRsZW5ndGg6IG5vcm1hbCkge1xuICAvLyBub3JtYWwgfHwgbGVuZ3RoXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1nYXAsICRsZW5ndGgsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tZmlsbCgkYXJnOiBhdXRvKSB7XG4gIC8vIGF1dG8gfHwgbGVuZ3RoXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1maWxsLCAkYXJnLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXJ1bGUoJGFyZykge1xuICAvLyA8Ym9yZGVyLXdpZHRoPiB8fCA8Ym9yZGVyLXN0eWxlPiB8fCA8Y29sb3I+XG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1ydWxlLCAkYXJnLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXJ1bGUtY29sb3IoJGNvbG9yKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1ydWxlLWNvbG9yLCAkY29sb3IsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tcnVsZS1zdHlsZSgkc3R5bGU6IG5vbmUpIHtcbiAgLy8gbm9uZSB8IGhpZGRlbiB8IGRhc2hlZCB8IGRvdHRlZCB8IGRvdWJsZSB8IGdyb292ZSB8IGluc2V0IHwgaW5zZXQgfCBvdXRzZXQgfCByaWRnZSB8IHNvbGlkXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1ydWxlLXN0eWxlLCAkc3R5bGUsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tcnVsZS13aWR0aCAoJHdpZHRoOiBub25lKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1ydWxlLXdpZHRoLCAkd2lkdGgsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tc3BhbigkYXJnOiBub25lKSB7XG4gIC8vIG5vbmUgfHwgYWxsXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1zcGFuLCAkYXJnLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXdpZHRoKCRsZW5ndGg6IGF1dG8pIHtcbiAgLy8gYXV0byB8fCBsZW5ndGhcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXdpZHRoLCAkbGVuZ3RoLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuIiwiQG1peGluIGZpbHRlcigkZnVuY3Rpb246IG5vbmUpIHtcbiAgLy8gPGZpbHRlci1mdW5jdGlvbj4gWzxmaWx0ZXItZnVuY3Rpb25dKiB8IG5vbmVcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmlsdGVyLCAkZnVuY3Rpb24sIHdlYmtpdCBzcGVjKTtcbn1cbiIsIi8vIENTUzMgRmxleGlibGUgQm94IE1vZGVsIGFuZCBwcm9wZXJ0eSBkZWZhdWx0c1xuXG4vLyBDdXN0b20gc2hvcnRoYW5kIG5vdGF0aW9uIGZvciBmbGV4Ym94XG5AbWl4aW4gYm94KCRvcmllbnQ6IGlubGluZS1heGlzLCAkcGFjazogc3RhcnQsICRhbGlnbjogc3RyZXRjaCkge1xuICBAaW5jbHVkZSBkaXNwbGF5LWJveDtcbiAgQGluY2x1ZGUgYm94LW9yaWVudCgkb3JpZW50KTtcbiAgQGluY2x1ZGUgYm94LXBhY2soJHBhY2spO1xuICBAaW5jbHVkZSBib3gtYWxpZ24oJGFsaWduKTtcbn1cblxuQG1peGluIGRpc3BsYXktYm94IHtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIGRpc3BsYXk6IC1tb3otYm94O1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDsgLy8gSUUgMTBcbiAgZGlzcGxheTogYm94O1xufVxuXG5AbWl4aW4gYm94LW9yaWVudCgkb3JpZW50OiBpbmxpbmUtYXhpcykge1xuLy8gaG9yaXpvbnRhbHx2ZXJ0aWNhbHxpbmxpbmUtYXhpc3xibG9jay1heGlzfGluaGVyaXRcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yaWVudCwgJG9yaWVudCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGJveC1wYWNrKCRwYWNrOiBzdGFydCkge1xuLy8gc3RhcnR8ZW5kfGNlbnRlcnxqdXN0aWZ5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1wYWNrLCAkcGFjaywgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtcGFjazogJHBhY2s7IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtYWxpZ24oJGFsaWduOiBzdHJldGNoKSB7XG4vLyBzdGFydHxlbmR8Y2VudGVyfGJhc2VsaW5lfHN0cmV0Y2hcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWFsaWduLCAkYWxpZ24sIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LWFsaWduOiAkYWxpZ247IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtZGlyZWN0aW9uKCRkaXJlY3Rpb246IG5vcm1hbCkge1xuLy8gbm9ybWFsfHJldmVyc2V8aW5oZXJpdFxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZGlyZWN0aW9uLCAkZGlyZWN0aW9uLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1kaXJlY3Rpb246ICRkaXJlY3Rpb247IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtbGluZXMoJGxpbmVzOiBzaW5nbGUpIHtcbi8vIHNpbmdsZXxtdWx0aXBsZVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtbGluZXMsICRsaW5lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGJveC1vcmRpbmFsLWdyb3VwKCRpbnQ6IDEpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yZGluYWwtZ3JvdXAsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LW9yZGVyOiAkaW50OyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWZsZXgoJHZhbHVlOiAwKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1mbGV4LCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4OiAkdmFsdWU7IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtZmxleC1ncm91cCgkaW50OiAxKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1mbGV4LWdyb3VwLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG4vLyBDU1MzIEZsZXhpYmxlIEJveCBNb2RlbCBhbmQgcHJvcGVydHkgZGVmYXVsdHNcbi8vIFVuaWZpZWQgYXR0cmlidXRlcyBmb3IgMjAwOSwgMjAxMSwgYW5kIDIwMTIgZmxhdm91cnMuXG5cbi8vIDIwMDkgLSBkaXNwbGF5IChib3ggfCBpbmxpbmUtYm94KVxuLy8gMjAxMSAtIGRpc3BsYXkgKGZsZXhib3ggfCBpbmxpbmUtZmxleGJveClcbi8vIDIwMTIgLSBkaXNwbGF5IChmbGV4IHwgaW5saW5lLWZsZXgpXG5AbWl4aW4gZGlzcGxheSgkdmFsdWUpIHtcbi8vIGZsZXggfCBpbmxpbmUtZmxleFxuICBAaWYgJHZhbHVlID09IFwiZmxleFwiIHtcbiAgICAvLyAyMDA5XG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgZGlzcGxheTogLW1vei1ib3g7XG4gICAgZGlzcGxheTogYm94O1xuXG4gICAgLy8gMjAxMlxuICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgICBkaXNwbGF5OiAtbW96LWZsZXg7XG4gICAgZGlzcGxheTogLW1zLWZsZXhib3g7IC8vIDIwMTEgKElFIDEwKVxuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiaW5saW5lLWZsZXhcIiB7XG4gICAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtYm94O1xuICAgIGRpc3BsYXk6IC1tb3otaW5saW5lLWJveDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYm94O1xuXG4gICAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtZmxleDtcbiAgICBkaXNwbGF5OiAtbW96LWlubGluZS1mbGV4O1xuICAgIGRpc3BsYXk6IC1tcy1pbmxpbmUtZmxleGJveDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgfSBAZWxzZSB7XG4gICAgZGlzcGxheTogJHZhbHVlO1xuICB9XG59XG5cbi8vIDIwMDkgLSBib3gtZmxleCAoaW50ZWdlcilcbi8vIDIwMTEgLSBmbGV4IChkZWNpbWFsIHwgd2lkdGggZGVjaW1hbClcbi8vIDIwMTIgLSBmbGV4IChpbnRlZ2VyIGludGVnZXIgd2lkdGgpXG5AbWl4aW4gZmxleCgkdmFsdWUpIHtcblxuICAvLyBHcmFiIGZsZXgtZ3JvdyBmb3Igb2xkZXIgYnJvd3NlcnMuXG4gICRmbGV4LWdyb3c6IG50aCgkdmFsdWUsIDEpO1xuXG4gIC8vIDIwMDlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWZsZXgsICRmbGV4LWdyb3csIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApLCAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBzcGVjKTtcbn1cblxuLy8gMjAwOSAtIGJveC1vcmllbnQgKCBob3Jpem9udGFsIHwgdmVydGljYWwgfCBpbmxpbmUtYXhpcyB8IGJsb2NrLWF4aXMpXG4vLyAgICAgIC0gYm94LWRpcmVjdGlvbiAobm9ybWFsIHwgcmV2ZXJzZSlcbi8vIDIwMTEgLSBmbGV4LWRpcmVjdGlvbiAocm93IHwgcm93LXJldmVyc2UgfCBjb2x1bW4gfCBjb2x1bW4tcmV2ZXJzZSlcbi8vIDIwMTIgLSBmbGV4LWRpcmVjdGlvbiAocm93IHwgcm93LXJldmVyc2UgfCBjb2x1bW4gfCBjb2x1bW4tcmV2ZXJzZSlcbkBtaXhpbiBmbGV4LWRpcmVjdGlvbigkdmFsdWU6IHJvdykge1xuXG4gIC8vIEFsdCB2YWx1ZXMuXG4gICR2YWx1ZS0yMDA5OiAkdmFsdWU7XG4gICR2YWx1ZS0yMDExOiAkdmFsdWU7XG4gICRkaXJlY3Rpb246IG5vcm1hbDtcblxuICBAaWYgJHZhbHVlID09IHJvdyB7XG4gICAgJHZhbHVlLTIwMDk6IGhvcml6b250YWw7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwicm93LXJldmVyc2VcIiB7XG4gICAgJHZhbHVlLTIwMDk6IGhvcml6b250YWw7XG4gICAgJGRpcmVjdGlvbjogcmV2ZXJzZTtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gY29sdW1uIHtcbiAgICAkdmFsdWUtMjAwOTogdmVydGljYWw7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiY29sdW1uLXJldmVyc2VcIiB7XG4gICAgJHZhbHVlLTIwMDk6IHZlcnRpY2FsO1xuICAgICRkaXJlY3Rpb246IHJldmVyc2U7XG4gIH1cblxuICAvLyAyMDA5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmllbnQsICR2YWx1ZS0yMDA5LCB3ZWJraXQgbW96IHNwZWMpO1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZGlyZWN0aW9uLCAkZGlyZWN0aW9uLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1kaXJlY3Rpb24sICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG59XG5cbi8vIDIwMDkgLSBib3gtbGluZXMgKHNpbmdsZSB8IG11bHRpcGxlKVxuLy8gMjAxMSAtIGZsZXgtd3JhcCAobm93cmFwIHwgd3JhcCB8IHdyYXAtcmV2ZXJzZSlcbi8vIDIwMTIgLSBmbGV4LXdyYXAgKG5vd3JhcCB8IHdyYXAgfCB3cmFwLXJldmVyc2UpXG5AbWl4aW4gZmxleC13cmFwKCR2YWx1ZTogbm93cmFwKSB7XG4gIC8vIEFsdCB2YWx1ZXNcbiAgJGFsdC12YWx1ZTogJHZhbHVlO1xuICBAaWYgJHZhbHVlID09IG5vd3JhcCB7XG4gICAgJGFsdC12YWx1ZTogc2luZ2xlO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSB3cmFwIHtcbiAgICAkYWx0LXZhbHVlOiBtdWx0aXBsZTtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJ3cmFwLXJldmVyc2VcIiB7XG4gICAgJGFsdC12YWx1ZTogbXVsdGlwbGU7XG4gIH1cblxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtbGluZXMsICRhbHQtdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtd3JhcCwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufVxuXG4vLyAyMDA5IC0gVE9ETzogcGFyc2UgdmFsdWVzIGludG8gZmxleC1kaXJlY3Rpb24vZmxleC13cmFwXG4vLyAyMDExIC0gVE9ETzogcGFyc2UgdmFsdWVzIGludG8gZmxleC1kaXJlY3Rpb24vZmxleC13cmFwXG4vLyAyMDEyIC0gZmxleC1mbG93IChmbGV4LWRpcmVjdGlvbiB8fCBmbGV4LXdyYXApXG5AbWl4aW4gZmxleC1mbG93KCR2YWx1ZSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWZsb3csICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuLy8gMjAwOSAtIGJveC1vcmRpbmFsLWdyb3VwIChpbnRlZ2VyKVxuLy8gMjAxMSAtIGZsZXgtb3JkZXIgKGludGVnZXIpXG4vLyAyMDEyIC0gb3JkZXIgKGludGVnZXIpXG5AbWl4aW4gb3JkZXIoJGludDogMCkge1xuICAvLyAyMDA5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmRpbmFsLWdyb3VwLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIob3JkZXIsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LW9yZGVyOiAkaW50O1xufVxuXG4vLyAyMDEyIC0gZmxleC1ncm93IChudW1iZXIpXG5AbWl4aW4gZmxleC1ncm93KCRudW1iZXI6IDApIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1ncm93LCAkbnVtYmVyLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1wb3NpdGl2ZTogJG51bWJlcjtcbn1cblxuLy8gMjAxMiAtIGZsZXgtc2hyaW5rIChudW1iZXIpXG5AbWl4aW4gZmxleC1zaHJpbmsoJG51bWJlcjogMSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LXNocmluaywgJG51bWJlciwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtbmVnYXRpdmU6ICRudW1iZXI7XG59XG5cbi8vIDIwMTIgLSBmbGV4LWJhc2lzIChudW1iZXIpXG5AbWl4aW4gZmxleC1iYXNpcygkd2lkdGg6IGF1dG8pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1iYXNpcywgJHdpZHRoLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogJHdpZHRoO1xufVxuXG4vLyAyMDA5IC0gYm94LXBhY2sgKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwganVzdGlmeSlcbi8vIDIwMTEgLSBmbGV4LXBhY2sgKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwganVzdGlmeSlcbi8vIDIwMTIgLSBqdXN0aWZ5LWNvbnRlbnQgKGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IHNwYWNlLWJldHdlZW4gfCBzcGFjZS1hcm91bmQpXG5AbWl4aW4ganVzdGlmeS1jb250ZW50KCR2YWx1ZTogZmxleC1zdGFydCkge1xuXG4gIC8vIEFsdCB2YWx1ZXMuXG4gICRhbHQtdmFsdWU6ICR2YWx1ZTtcbiAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XG4gICAgJGFsdC12YWx1ZTogc3RhcnQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XG4gICAgJGFsdC12YWx1ZTogZW5kO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInNwYWNlLWJldHdlZW5cIiB7XG4gICAgJGFsdC12YWx1ZToganVzdGlmeTtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJzcGFjZS1hcm91bmRcIiB7XG4gICAgJGFsdC12YWx1ZTogZGlzdHJpYnV0ZTtcbiAgfVxuXG4gIC8vIDIwMDlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LXBhY2ssICRhbHQtdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihqdXN0aWZ5LWNvbnRlbnQsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1wYWNrOiAkYWx0LXZhbHVlO1xufVxuXG4vLyAyMDA5IC0gYm94LWFsaWduIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbi8vIDIwMTEgLSBmbGV4LWFsaWduIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbi8vIDIwMTIgLSBhbGlnbi1pdGVtcyAoZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuQG1peGluIGFsaWduLWl0ZW1zKCR2YWx1ZTogc3RyZXRjaCkge1xuXG4gICRhbHQtdmFsdWU6ICR2YWx1ZTtcblxuICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcbiAgICAkYWx0LXZhbHVlOiBzdGFydDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAkYWx0LXZhbHVlOiBlbmQ7XG4gIH1cblxuICAvLyAyMDA5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1hbGlnbiwgJGFsdC12YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFsaWduLWl0ZW1zLCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtYWxpZ246ICRhbHQtdmFsdWU7XG59XG5cbi8vIDIwMTEgLSBmbGV4LWl0ZW0tYWxpZ24gKGF1dG8gfCBzdGFydCB8IGVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbi8vIDIwMTIgLSBhbGlnbi1zZWxmIChhdXRvIHwgZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuQG1peGluIGFsaWduLXNlbGYoJHZhbHVlOiBhdXRvKSB7XG5cbiAgJHZhbHVlLTIwMTE6ICR2YWx1ZTtcbiAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XG4gICAgJHZhbHVlLTIwMTE6IHN0YXJ0O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xuICAgICR2YWx1ZS0yMDExOiBlbmQ7XG4gIH1cblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFsaWduLXNlbGYsICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtaXRlbS1hbGlnbjogJHZhbHVlLTIwMTE7XG59XG5cbi8vIDIwMTEgLSBmbGV4LWxpbmUtcGFjayAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBqdXN0aWZ5IHwgZGlzdHJpYnV0ZSB8IHN0cmV0Y2gpXG4vLyAyMDEyIC0gYWxpZ24tY29udGVudCAoZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgc3BhY2UtYmV0d2VlbiB8IHNwYWNlLWFyb3VuZCB8IHN0cmV0Y2gpXG5AbWl4aW4gYWxpZ24tY29udGVudCgkdmFsdWU6IHN0cmV0Y2gpIHtcblxuICAkdmFsdWUtMjAxMTogJHZhbHVlO1xuICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcbiAgICAkdmFsdWUtMjAxMTogc3RhcnQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XG4gICAgJHZhbHVlLTIwMTE6IGVuZDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJzcGFjZS1iZXR3ZWVuXCIge1xuICAgICR2YWx1ZS0yMDExOiBqdXN0aWZ5O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInNwYWNlLWFyb3VuZFwiIHtcbiAgICAkdmFsdWUtMjAxMTogZGlzdHJpYnV0ZTtcbiAgfVxuXG4gIC8vIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYWxpZ24tY29udGVudCwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1saW5lLXBhY2s6ICR2YWx1ZS0yMDExO1xufVxuIiwiQG1peGluIGZvbnQtZmFjZShcbiAgJGZvbnQtZmFtaWx5LFxuICAkZmlsZS1wYXRoLFxuICAkd2VpZ2h0OiBub3JtYWwsXG4gICRzdHlsZTogbm9ybWFsLFxuICAkYXNzZXQtcGlwZWxpbmU6ICRhc3NldC1waXBlbGluZSxcbiAgJGZpbGUtZm9ybWF0czogZW90IHdvZmYyIHdvZmYgdHRmIHN2Zykge1xuXG4gICRmb250LXVybC1wcmVmaXg6IGZvbnQtdXJsLXByZWZpeGVyKCRhc3NldC1waXBlbGluZSk7XG5cbiAgQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseTtcbiAgICBmb250LXN0eWxlOiAkc3R5bGU7XG4gICAgZm9udC13ZWlnaHQ6ICR3ZWlnaHQ7XG5cbiAgICBzcmM6IGZvbnQtc291cmNlLWRlY2xhcmF0aW9uKFxuICAgICAgJGZvbnQtZmFtaWx5LFxuICAgICAgJGZpbGUtcGF0aCxcbiAgICAgICRhc3NldC1waXBlbGluZSxcbiAgICAgICRmaWxlLWZvcm1hdHMsXG4gICAgICAkZm9udC11cmwtcHJlZml4XG4gICAgKTtcbiAgfVxufVxuIiwiQG1peGluIGZvbnQtZmVhdHVyZS1zZXR0aW5ncygkc2V0dGluZ3MuLi4pIHtcbiAgQGlmIGxlbmd0aCgkc2V0dGluZ3MpID09IDAgeyAkc2V0dGluZ3M6IG5vbmU7IH1cbiAgQGluY2x1ZGUgcHJlZml4ZXIoZm9udC1mZWF0dXJlLXNldHRpbmdzLCAkc2V0dGluZ3MsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XG59XG4iLCIvLyBIaURQSSBtaXhpbi4gRGVmYXVsdCB2YWx1ZSBzZXQgdG8gMS4zIHRvIHRhcmdldCBHb29nbGUgTmV4dXMgNyAoaHR0cDovL2JqYW5nby5jb20vYXJ0aWNsZXMvbWluLWRldmljZS1waXhlbC1yYXRpby8pXG5AbWl4aW4gaGlkcGkoJHJhdGlvOiAxLjMpIHtcbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAkcmF0aW8pLFxuICBvbmx5IHNjcmVlbiBhbmQgKG1pbi0tbW96LWRldmljZS1waXhlbC1yYXRpbzogJHJhdGlvKSxcbiAgb25seSBzY3JlZW4gYW5kICgtby1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAjeyRyYXRpb30vMSksXG4gIG9ubHkgc2NyZWVuIGFuZCAobWluLXJlc29sdXRpb246IHJvdW5kKCRyYXRpbyAqIDk2ZHBpKSksXG4gIG9ubHkgc2NyZWVuIGFuZCAobWluLXJlc29sdXRpb246ICRyYXRpbyAqIDFkcHB4KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cbiIsIkBtaXhpbiBoeXBoZW5zKCRoeXBoZW5hdGlvbjogbm9uZSkge1xuICAvLyBub25lIHwgbWFudWFsIHwgYXV0b1xuICBAaW5jbHVkZSBwcmVmaXhlcihoeXBoZW5zLCAkaHlwaGVuYXRpb24sIHdlYmtpdCBtb3ogbXMgc3BlYyk7XG59XG4iLCJAbWl4aW4gaW1hZ2UtcmVuZGVyaW5nICgkbW9kZTphdXRvKSB7XG5cbiAgQGlmICgkbW9kZSA9PSBjcmlzcC1lZGdlcykge1xuICAgIC1tcy1pbnRlcnBvbGF0aW9uLW1vZGU6IG5lYXJlc3QtbmVpZ2hib3I7IC8vIElFOCtcbiAgICBpbWFnZS1yZW5kZXJpbmc6IC1tb3otY3Jpc3AtZWRnZXM7XG4gICAgaW1hZ2UtcmVuZGVyaW5nOiAtby1jcmlzcC1lZGdlcztcbiAgICBpbWFnZS1yZW5kZXJpbmc6IC13ZWJraXQtb3B0aW1pemUtY29udHJhc3Q7XG4gICAgaW1hZ2UtcmVuZGVyaW5nOiBjcmlzcC1lZGdlcztcbiAgfVxuXG4gIEBlbHNlIHtcbiAgICBpbWFnZS1yZW5kZXJpbmc6ICRtb2RlO1xuICB9XG59XG4iLCIvLyBBZGRzIGtleWZyYW1lcyBibG9ja3MgZm9yIHN1cHBvcnRlZCBwcmVmaXhlcywgcmVtb3ZpbmcgcmVkdW5kYW50IHByZWZpeGVzIGluIHRoZSBibG9jaydzIGNvbnRlbnRcbkBtaXhpbiBrZXlmcmFtZXMoJG5hbWUpIHtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3Itd2Via2l0OiAgICAkcHJlZml4LWZvci13ZWJraXQ7XG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1vemlsbGE6ICAgJHByZWZpeC1mb3ItbW96aWxsYTtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3ItbWljcm9zb2Z0OiAkcHJlZml4LWZvci1taWNyb3NvZnQ7XG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLW9wZXJhOiAgICAgJHByZWZpeC1mb3Itb3BlcmE7XG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLXNwZWM6ICAgICAgJHByZWZpeC1mb3Itc3BlYztcblxuICBAaWYgJG9yaWdpbmFsLXByZWZpeC1mb3Itd2Via2l0IHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLXByZWZpeC1mb3ItYWxsKCk7XG4gICAgJHByZWZpeC1mb3Itd2Via2l0OiB0cnVlICFnbG9iYWw7XG4gICAgQC13ZWJraXQta2V5ZnJhbWVzICN7JG5hbWV9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkb3JpZ2luYWwtcHJlZml4LWZvci1tb3ppbGxhIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLXByZWZpeC1mb3ItYWxsKCk7XG4gICAgJHByZWZpeC1mb3ItbW96aWxsYTogdHJ1ZSAhZ2xvYmFsO1xuICAgIEAtbW96LWtleWZyYW1lcyAjeyRuYW1lfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cblxuICAkcHJlZml4LWZvci13ZWJraXQ6ICAgICRvcmlnaW5hbC1wcmVmaXgtZm9yLXdlYmtpdCAgICAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1tb3ppbGxhOiAgICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1vemlsbGEgICAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1taWNyb3NvZnQ6ICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1pY3Jvc29mdCAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1vcGVyYTogICAgICRvcmlnaW5hbC1wcmVmaXgtZm9yLW9wZXJhICAgICAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1zcGVjOiAgICAgICRvcmlnaW5hbC1wcmVmaXgtZm9yLXNwZWMgICAgICAhZ2xvYmFsO1xuXG4gIEBpZiAkb3JpZ2luYWwtcHJlZml4LWZvci1zcGVjIHtcbiAgICBAa2V5ZnJhbWVzICN7JG5hbWV9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuIiwiQG1peGluIGxpbmVhci1ncmFkaWVudCgkcG9zLCAkZzEsICRnMjogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGczOiBudWxsLCAkZzQ6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnNTogbnVsbCwgJGc2OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzc6IG51bGwsICRnODogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGc5OiBudWxsLCAkZzEwOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZmFsbGJhY2s6IG51bGwpIHtcbiAgLy8gRGV0ZWN0IHdoYXQgdHlwZSBvZiB2YWx1ZSBleGlzdHMgaW4gJHBvc1xuICAkcG9zLXR5cGU6IHR5cGUtb2YobnRoKCRwb3MsIDEpKTtcbiAgJHBvcy1zcGVjOiBudWxsO1xuICAkcG9zLWRlZ3JlZTogbnVsbDtcblxuICAvLyBJZiAkcG9zIGlzIG1pc3NpbmcgZnJvbSBtaXhpbiwgcmVhc3NpZ24gdmFycyBhbmQgYWRkIGRlZmF1bHQgcG9zaXRpb25cbiAgQGlmICgkcG9zLXR5cGUgPT0gY29sb3IpIG9yIChudGgoJHBvcywgMSkgPT0gXCJ0cmFuc3BhcmVudFwiKSAge1xuICAgICRnMTA6ICRnOTsgJGc5OiAkZzg7ICRnODogJGc3OyAkZzc6ICRnNjsgJGc2OiAkZzU7XG4gICAgJGc1OiAkZzQ7ICRnNDogJGczOyAkZzM6ICRnMjsgJGcyOiAkZzE7ICRnMTogJHBvcztcbiAgICAkcG9zOiBudWxsO1xuICB9XG5cbiAgQGlmICRwb3Mge1xuICAgICRwb3NpdGlvbnM6IF9saW5lYXItcG9zaXRpb25zLXBhcnNlcigkcG9zKTtcbiAgICAkcG9zLWRlZ3JlZTogbnRoKCRwb3NpdGlvbnMsIDEpO1xuICAgICRwb3Mtc3BlYzogICBudGgoJHBvc2l0aW9ucywgMik7XG4gIH1cblxuICAkZnVsbDogJGcxLCAkZzIsICRnMywgJGc0LCAkZzUsICRnNiwgJGc3LCAkZzgsICRnOSwgJGcxMDtcblxuICAvLyBTZXQgJGcxIGFzIHRoZSBkZWZhdWx0IGZhbGxiYWNrIGNvbG9yXG4gICRmYWxsYmFjay1jb2xvcjogbnRoKCRnMSwgMSk7XG5cbiAgLy8gSWYgJGZhbGxiYWNrIGlzIGEgY29sb3IgdXNlIHRoYXQgY29sb3IgYXMgdGhlIGZhbGxiYWNrIGNvbG9yXG4gIEBpZiAodHlwZS1vZigkZmFsbGJhY2spID09IGNvbG9yKSBvciAoJGZhbGxiYWNrID09IFwidHJhbnNwYXJlbnRcIikge1xuICAgICRmYWxsYmFjay1jb2xvcjogJGZhbGxiYWNrO1xuICB9XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogJGZhbGxiYWNrLWNvbG9yO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCgkcG9zLWRlZ3JlZSAkZnVsbCk7IC8vIFNhZmFyaSA1LjErLCBDaHJvbWVcbiAgYmFja2dyb3VuZC1pbWFnZTogdW5xdW90ZShcImxpbmVhci1ncmFkaWVudCgjeyRwb3Mtc3BlY30jeyRmdWxsfSlcIik7XG59XG4iLCJAbWl4aW4gcGVyc3BlY3RpdmUoJGRlcHRoOiBub25lKSB7XG4gIC8vIG5vbmUgfCA8bGVuZ3RoPlxuICBAaW5jbHVkZSBwcmVmaXhlcihwZXJzcGVjdGl2ZSwgJGRlcHRoLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gcGVyc3BlY3RpdmUtb3JpZ2luKCR2YWx1ZTogNTAlIDUwJSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihwZXJzcGVjdGl2ZS1vcmlnaW4sICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcbn1cbiIsIkBtaXhpbiBwbGFjZWhvbGRlciB7XG4gICRwbGFjZWhvbGRlcnM6IFwiOi13ZWJraXQtaW5wdXRcIiBcIjotbW96XCIgXCItbW96XCIgXCItbXMtaW5wdXRcIjtcbiAgQGVhY2ggJHBsYWNlaG9sZGVyIGluICRwbGFjZWhvbGRlcnMge1xuICAgICY6I3skcGxhY2Vob2xkZXJ9LXBsYWNlaG9sZGVyIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuIiwiLy8gUmVxdWlyZXMgU2FzcyAzLjErXG5AbWl4aW4gcmFkaWFsLWdyYWRpZW50KCRnMSwgJGcyLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzM6IG51bGwsICRnNDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGc1OiBudWxsLCAkZzY6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnNzogbnVsbCwgJGc4OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzk6IG51bGwsICRnMTA6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRwb3M6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRzaGFwZS1zaXplOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZmFsbGJhY2s6IG51bGwpIHtcblxuICAkZGF0YTogX3JhZGlhbC1hcmctcGFyc2VyKCRnMSwgJGcyLCAkcG9zLCAkc2hhcGUtc2l6ZSk7XG4gICRnMTogIG50aCgkZGF0YSwgMSk7XG4gICRnMjogIG50aCgkZGF0YSwgMik7XG4gICRwb3M6IG50aCgkZGF0YSwgMyk7XG4gICRzaGFwZS1zaXplOiBudGgoJGRhdGEsIDQpO1xuXG4gICRmdWxsOiAkZzEsICRnMiwgJGczLCAkZzQsICRnNSwgJGc2LCAkZzcsICRnOCwgJGc5LCAkZzEwO1xuXG4gIC8vIFN0cmlwIGRlcHJlY2F0ZWQgY292ZXIvY29udGFpbiBmb3Igc3BlY1xuICAkc2hhcGUtc2l6ZS1zcGVjOiBfc2hhcGUtc2l6ZS1zdHJpcHBlcigkc2hhcGUtc2l6ZSk7XG5cbiAgLy8gU2V0ICRnMSBhcyB0aGUgZGVmYXVsdCBmYWxsYmFjayBjb2xvclxuICAkZmlyc3QtY29sb3I6IG50aCgkZnVsbCwgMSk7XG4gICRmYWxsYmFjay1jb2xvcjogbnRoKCRmaXJzdC1jb2xvciwgMSk7XG5cbiAgQGlmICh0eXBlLW9mKCRmYWxsYmFjaykgPT0gY29sb3IpIG9yICgkZmFsbGJhY2sgPT0gXCJ0cmFuc3BhcmVudFwiKSB7XG4gICAgJGZhbGxiYWNrLWNvbG9yOiAkZmFsbGJhY2s7XG4gIH1cblxuICAvLyBBZGQgQ29tbWFzIGFuZCBzcGFjZXNcbiAgJHNoYXBlLXNpemU6IGlmKCRzaGFwZS1zaXplLCBcIiN7JHNoYXBlLXNpemV9LCBcIiwgbnVsbCk7XG4gICRwb3M6ICAgICAgICBpZigkcG9zLCBcIiN7JHBvc30sIFwiLCBudWxsKTtcbiAgJHBvcy1zcGVjOiAgIGlmKCRwb3MsIFwiYXQgI3skcG9zfVwiLCBudWxsKTtcbiAgJHNoYXBlLXNpemUtc3BlYzogaWYoKCRzaGFwZS1zaXplLXNwZWMgIT0gXCIgXCIpIGFuZCAoJHBvcyA9PSBudWxsKSwgXCIjeyRzaGFwZS1zaXplLXNwZWN9LCBcIiwgXCIjeyRzaGFwZS1zaXplLXNwZWN9IFwiKTtcblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAgJGZhbGxiYWNrLWNvbG9yO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LXJhZGlhbC1ncmFkaWVudCh1bnF1b3RlKCN7JHBvc30jeyRzaGFwZS1zaXplfSN7JGZ1bGx9KSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVucXVvdGUoXCJyYWRpYWwtZ3JhZGllbnQoI3skc2hhcGUtc2l6ZS1zcGVjfSN7JHBvcy1zcGVjfSN7JGZ1bGx9KVwiKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIE91dHB1dHMgdGhlIHNwZWMgYW5kIHByZWZpeGVkIHZlcnNpb25zIG9mIHRoZSBgOjpzZWxlY3Rpb25gIHBzZXVkby1lbGVtZW50LlxuLy8vXG4vLy8gQHBhcmFtIHtCb29sfSAkY3VycmVudC1zZWxlY3RvciBbZmFsc2VdXG4vLy8gICBJZiBzZXQgdG8gYHRydWVgLCBpdCB0YWtlcyB0aGUgY3VycmVudCBlbGVtZW50IGludG8gY29uc2lkZXJhdGlvbi5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBzZWxlY3Rpb24odHJ1ZSkge1xuLy8vICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmJiNTI7XG4vLy8gICAgIH1cbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50OjotbW96LXNlbGVjdGlvbiB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmJiNTI7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5lbGVtZW50OjpzZWxlY3Rpb24ge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZiYjUyO1xuLy8vICAgfVxuXG5AbWl4aW4gc2VsZWN0aW9uKCRjdXJyZW50LXNlbGVjdG9yOiBmYWxzZSkge1xuICBAaWYgJGN1cnJlbnQtc2VsZWN0b3Ige1xuICAgICY6Oi1tb3otc2VsZWN0aW9uIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cblxuICAgICY6OnNlbGVjdGlvbiB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIDo6LW1vei1zZWxlY3Rpb24ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuXG4gICAgOjpzZWxlY3Rpb24ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG4iLCJAbWl4aW4gdGV4dC1kZWNvcmF0aW9uKCR2YWx1ZSkge1xuLy8gPHRleHQtZGVjb3JhdGlvbi1saW5lPiB8fCA8dGV4dC1kZWNvcmF0aW9uLXN0eWxlPiB8fCA8dGV4dC1kZWNvcmF0aW9uLWNvbG9yPlxuICBAaW5jbHVkZSBwcmVmaXhlcih0ZXh0LWRlY29yYXRpb24sICR2YWx1ZSwgbW96KTtcbn1cblxuQG1peGluIHRleHQtZGVjb3JhdGlvbi1saW5lKCRsaW5lOiBub25lKSB7XG4vLyBub25lIHx8IHVuZGVybGluZSB8fCBvdmVybGluZSB8fCBsaW5lLXRocm91Z2hcbiAgQGluY2x1ZGUgcHJlZml4ZXIodGV4dC1kZWNvcmF0aW9uLWxpbmUsICRsaW5lLCBtb3opO1xufVxuXG5AbWl4aW4gdGV4dC1kZWNvcmF0aW9uLXN0eWxlKCRzdHlsZTogc29saWQpIHtcbi8vIHNvbGlkIHx8IGRvdWJsZSB8fCBkb3R0ZWQgfHwgZGFzaGVkIHx8IHdhdnlcbiAgQGluY2x1ZGUgcHJlZml4ZXIodGV4dC1kZWNvcmF0aW9uLXN0eWxlLCAkc3R5bGUsIG1veiB3ZWJraXQpO1xufVxuXG5AbWl4aW4gdGV4dC1kZWNvcmF0aW9uLWNvbG9yKCRjb2xvcjogY3VycmVudENvbG9yKSB7XG4vLyBjdXJyZW50Q29sb3IgfHwgPGNvbG9yPlxuICBAaW5jbHVkZSBwcmVmaXhlcih0ZXh0LWRlY29yYXRpb24tY29sb3IsICRjb2xvciwgbW96KTtcbn1cbiIsIkBtaXhpbiB0cmFuc2Zvcm0oJHByb3BlcnR5OiBub25lKSB7XG4gIC8vIG5vbmUgfCA8dHJhbnNmb3JtLWZ1bmN0aW9uPlxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2Zvcm0sICRwcm9wZXJ0eSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xufVxuXG5AbWl4aW4gdHJhbnNmb3JtLW9yaWdpbigkYXhlczogNTAlKSB7XG4gIC8vIHgtYXhpcyAtIGxlZnQgfCBjZW50ZXIgfCByaWdodCAgfCBsZW5ndGggfCAlXG4gIC8vIHktYXhpcyAtIHRvcCAgfCBjZW50ZXIgfCBib3R0b20gfCBsZW5ndGggfCAlXG4gIC8vIHotYXhpcyAtICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGhcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNmb3JtLW9yaWdpbiwgJGF4ZXMsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcbn1cblxuQG1peGluIHRyYW5zZm9ybS1zdHlsZSgkc3R5bGU6IGZsYXQpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNmb3JtLXN0eWxlLCAkc3R5bGUsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcbn1cbiIsIi8vIFNob3J0aGFuZCBtaXhpbi4gU3VwcG9ydHMgbXVsdGlwbGUgcGFyZW50aGVzZXMtZGVsaW1pbmF0ZWQgdmFsdWVzIGZvciBlYWNoIHZhcmlhYmxlLlxuLy8gRXhhbXBsZTogQGluY2x1ZGUgdHJhbnNpdGlvbiAoYWxsIDJzIGVhc2UtaW4tb3V0KTtcbi8vICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24gKG9wYWNpdHkgMXMgZWFzZS1pbiAycywgd2lkdGggMnMgZWFzZS1vdXQpO1xuLy8gICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1wcm9wZXJ0eSAodHJhbnNmb3JtLCBvcGFjaXR5KTtcblxuQG1peGluIHRyYW5zaXRpb24oJHByb3BlcnRpZXMuLi4pIHtcbiAgLy8gRml4IGZvciB2ZW5kb3ItcHJlZml4IHRyYW5zZm9ybSBwcm9wZXJ0eVxuICAkbmVlZHMtcHJlZml4ZXM6IGZhbHNlO1xuICAkd2Via2l0OiAoKTtcbiAgJG1vejogKCk7XG4gICRzcGVjOiAoKTtcblxuICAvLyBDcmVhdGUgbGlzdHMgZm9yIHZlbmRvci1wcmVmaXhlZCB0cmFuc2Zvcm1cbiAgQGVhY2ggJGxpc3QgaW4gJHByb3BlcnRpZXMge1xuICAgIEBpZiBudGgoJGxpc3QsIDEpID09IFwidHJhbnNmb3JtXCIge1xuICAgICAgJG5lZWRzLXByZWZpeGVzOiB0cnVlO1xuICAgICAgJGxpc3QxOiAtd2Via2l0LXRyYW5zZm9ybTtcbiAgICAgICRsaXN0MjogLW1vei10cmFuc2Zvcm07XG4gICAgICAkbGlzdDM6ICgpO1xuXG4gICAgICBAZWFjaCAkdmFyIGluICRsaXN0IHtcbiAgICAgICAgJGxpc3QzOiBqb2luKCRsaXN0MywgJHZhcik7XG5cbiAgICAgICAgQGlmICR2YXIgIT0gXCJ0cmFuc2Zvcm1cIiB7XG4gICAgICAgICAgJGxpc3QxOiBqb2luKCRsaXN0MSwgJHZhcik7XG4gICAgICAgICAgJGxpc3QyOiBqb2luKCRsaXN0MiwgJHZhcik7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJHdlYmtpdDogYXBwZW5kKCR3ZWJraXQsICRsaXN0MSk7XG4gICAgICAkbW96OiAgICBhcHBlbmQoJG1veiwgICAgJGxpc3QyKTtcbiAgICAgICRzcGVjOiAgIGFwcGVuZCgkc3BlYywgICAkbGlzdDMpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJHdlYmtpdDogYXBwZW5kKCR3ZWJraXQsICRsaXN0LCBjb21tYSk7XG4gICAgICAkbW96OiAgICBhcHBlbmQoJG1veiwgICAgJGxpc3QsIGNvbW1hKTtcbiAgICAgICRzcGVjOiAgIGFwcGVuZCgkc3BlYywgICAkbGlzdCwgY29tbWEpO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkbmVlZHMtcHJlZml4ZXMge1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogJHdlYmtpdDtcbiAgICAgICAtbW96LXRyYW5zaXRpb246ICRtb3o7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiAkc3BlYztcbiAgfSBAZWxzZSB7XG4gICAgQGlmIGxlbmd0aCgkcHJvcGVydGllcykgPj0gMSB7XG4gICAgICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLCAkcHJvcGVydGllcywgd2Via2l0IG1veiBzcGVjKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRwcm9wZXJ0aWVzOiBhbGwgMC4xNXMgZWFzZS1vdXQgMHM7XG4gICAgICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLCAkcHJvcGVydGllcywgd2Via2l0IG1veiBzcGVjKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHRyYW5zaXRpb24tcHJvcGVydHkoJHByb3BlcnRpZXMuLi4pIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wZXJ0aWVzLCBcIndlYmtpdFwiKTtcbiAgICAgLW1vei10cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wZXJ0aWVzLCBcIm1velwiKTtcbiAgICAgICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wZXJ0aWVzLCBmYWxzZSk7XG59XG5cbkBtaXhpbiB0cmFuc2l0aW9uLWR1cmF0aW9uKCR0aW1lcy4uLikge1xuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLWR1cmF0aW9uLCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbigkbW90aW9ucy4uLikge1xuICAvLyBlYXNlIHwgbGluZWFyIHwgZWFzZS1pbiB8IGVhc2Utb3V0IHwgZWFzZS1pbi1vdXQgfCBjdWJpYy1iZXppZXIoKVxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiwgJG1vdGlvbnMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiB0cmFuc2l0aW9uLWRlbGF5KCR0aW1lcy4uLikge1xuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLWRlbGF5LCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG4iLCJAbWl4aW4gdXNlci1zZWxlY3QoJHZhbHVlOiBub25lKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKHVzZXItc2VsZWN0LCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBib3JkZXItY29sb3JgIG9uIHNwZWNpZmljIHNpZGVzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci1jb2xvcigjYTYwYjU1ICM3NmNkOWMgbnVsbCAjZThhZTFhKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICNlOGFlMWE7XG4vLy8gICAgIGJvcmRlci1yaWdodC1jb2xvcjogIzc2Y2Q5Yztcbi8vLyAgICAgYm9yZGVyLXRvcC1jb2xvcjogI2E2MGI1NTtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcbi8vL1xuLy8vIEBvdXRwdXQgYGJvcmRlci1jb2xvcmBcblxuQG1peGluIGJvcmRlci1jb2xvcigkdmFscy4uLikge1xuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShib3JkZXIsIGNvbG9yLCAkdmFscy4uLik7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBib3JkZXItcmFkaXVzYCBvbiBib3RoIGNvcm5lcnMgb24gdGhlIHNpZGUgb2YgYSBib3guXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHJhZGlpXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudC1vbmUge1xuLy8vICAgICBAaW5jbHVkZSBib3JkZXItdG9wLXJhZGl1cyg1cHgpO1xuLy8vICAgfVxuLy8vXG4vLy8gICAuZWxlbWVudC10d28ge1xuLy8vICAgICBAaW5jbHVkZSBib3JkZXItbGVmdC1yYWRpdXMoM3B4KTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50LW9uZSB7XG4vLy8gICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDVweDtcbi8vLyAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDVweDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLmVsZW1lbnQtdHdvIHtcbi8vLyAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogM3B4O1xuLy8vICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAzcHg7XG4vLy8gICB9XG4vLy9cbi8vLyBAb3V0cHV0IGBib3JkZXItcmFkaXVzYFxuXG5AbWl4aW4gYm9yZGVyLXRvcC1yYWRpdXMoJHJhZGlpKSB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRyYWRpaTtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRyYWRpaTtcbn1cblxuQG1peGluIGJvcmRlci1yaWdodC1yYWRpdXMoJHJhZGlpKSB7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkcmFkaWk7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkcmFkaWk7XG59XG5cbkBtaXhpbiBib3JkZXItYm90dG9tLXJhZGl1cygkcmFkaWkpIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJHJhZGlpO1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJHJhZGlpO1xufVxuXG5AbWl4aW4gYm9yZGVyLWxlZnQtcmFkaXVzKCRyYWRpaSkge1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkcmFkaWk7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRyYWRpaTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYGJvcmRlci1zdHlsZWAgb24gc3BlY2lmaWMgc2lkZXMgb2YgYSBib3guIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLXN0eWxlKGRhc2hlZCBudWxsIHNvbGlkKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG4vLy8gICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcbi8vL1xuLy8vIEBvdXRwdXQgYGJvcmRlci1zdHlsZWBcblxuQG1peGluIGJvcmRlci1zdHlsZSgkdmFscy4uLikge1xuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShib3JkZXIsIHN0eWxlLCAkdmFscy4uLik7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBib3JkZXItd2lkdGhgIG9uIHNwZWNpZmljIHNpZGVzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci13aWR0aCgxZW0gbnVsbCAyMHB4KTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMjBweDtcbi8vLyAgICAgYm9yZGVyLXRvcC13aWR0aDogMWVtO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxuLy8vXG4vLy8gQG91dHB1dCBgYm9yZGVyLXdpZHRoYFxuXG5AbWl4aW4gYm9yZGVyLXdpZHRoKCR2YWxzLi4uKSB7XG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KGJvcmRlciwgd2lkdGgsICR2YWxzLi4uKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEdlbmVyYXRlcyB2YXJpYWJsZXMgZm9yIGFsbCBidXR0b25zLiBQbGVhc2Ugbm90ZSB0aGF0IHlvdSBtdXN0IHVzZSBpbnRlcnBvbGF0aW9uIG9uIHRoZSB2YXJpYWJsZTogYCN7JGFsbC1idXR0b25zfWAuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgICN7JGFsbC1idXR0b25zfSB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNmMDA7XG4vLy8gICB9XG4vLy9cbi8vLyAgICN7JGFsbC1idXR0b25zLWZvY3VzfSxcbi8vLyAgICN7JGFsbC1idXR0b25zLWhvdmVyfSB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMwZjA7XG4vLy8gICB9XG4vLy9cbi8vLyAgICN7JGFsbC1idXR0b25zLWFjdGl2ZX0ge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBmO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgYnV0dG9uLFxuLy8vICAgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJyZXNldFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjAwO1xuLy8vICAgfVxuLy8vXG4vLy8gICBidXR0b246Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInJlc2V0XCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXTpmb2N1cyxcbi8vLyAgIGJ1dHRvbjpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJidXR0b25cIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwicmVzZXRcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwic3VibWl0XCJdOmhvdmVyIHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzBmMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgYnV0dG9uOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJidXR0b25cIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInJlc2V0XCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl06YWN0aXZlIHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwZjtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIGFzc2lnbi1pbnB1dHNcbi8vL1xuLy8vIEB0eXBlIExpc3Rcbi8vL1xuLy8vIEB0b2RvIFJlbW92ZSBkb3VibGUgYXNzaWduZWQgdmFyaWFibGVzIChMaW5lcyA1OeKAkzYyKSBpbiB2NS4wLjBcblxuJGJ1dHRvbnMtbGlzdDogJ2J1dHRvbicsXG4gICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImJ1dHRvblwiXScsXG4gICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInJlc2V0XCJdJyxcbiAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwic3VibWl0XCJdJztcblxuJGFsbC1idXR0b25zOiAgICAgICAgYXNzaWduLWlucHV0cygkYnV0dG9ucy1saXN0KTtcbiRhbGwtYnV0dG9ucy1hY3RpdmU6IGFzc2lnbi1pbnB1dHMoJGJ1dHRvbnMtbGlzdCwgYWN0aXZlKTtcbiRhbGwtYnV0dG9ucy1mb2N1czogIGFzc2lnbi1pbnB1dHMoJGJ1dHRvbnMtbGlzdCwgZm9jdXMpO1xuJGFsbC1idXR0b25zLWhvdmVyOiAgYXNzaWduLWlucHV0cygkYnV0dG9ucy1saXN0LCBob3Zlcik7XG5cbiRhbGwtYnV0dG9uLWlucHV0czogICAgICAgICRhbGwtYnV0dG9ucztcbiRhbGwtYnV0dG9uLWlucHV0cy1hY3RpdmU6ICRhbGwtYnV0dG9ucy1hY3RpdmU7XG4kYWxsLWJ1dHRvbi1pbnB1dHMtZm9jdXM6ICAkYWxsLWJ1dHRvbnMtZm9jdXM7XG4kYWxsLWJ1dHRvbi1pbnB1dHMtaG92ZXI6ICAkYWxsLWJ1dHRvbnMtaG92ZXI7XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhbiBlYXN5IHdheSB0byBpbmNsdWRlIGEgY2xlYXJmaXggZm9yIGNvbnRhaW5pbmcgZmxvYXRzLlxuLy8vXG4vLy8gQGxpbmsgaHR0cDovL2Nzc21vam8uY29tL2xhdGVzdF9uZXdfY2xlYXJmaXhfc29fZmFyL1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQ6OmFmdGVyIHtcbi8vLyAgICAgY2xlYXI6IGJvdGg7XG4vLy8gICAgIGNvbnRlbnQ6IFwiXCI7XG4vLy8gICAgIGRpc3BsYXk6IHRhYmxlO1xuLy8vICAgfVxuXG5AbWl4aW4gY2xlYXJmaXgge1xuICAmOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gVHJ1bmNhdGVzIHRleHQgYW5kIGFkZHMgYW4gZWxsaXBzaXMgdG8gcmVwcmVzZW50IG92ZXJmbG93LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCBbMTAwJV1cbi8vLyAgIE1heC13aWR0aCBmb3IgdGhlIHN0cmluZyB0byByZXNwZWN0IGJlZm9yZSBiZWluZyB0cnVuY2F0ZWRcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBlbGxpcHNpcztcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuLy8vICAgICBtYXgtd2lkdGg6IDEwMCU7XG4vLy8gICAgIG92ZXJmbG93OiBoaWRkZW47XG4vLy8gICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuLy8vICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuLy8vICAgICB3b3JkLXdyYXA6IG5vcm1hbDtcbi8vLyAgIH1cblxuQG1peGluIGVsbGlwc2lzKCR3aWR0aDogMTAwJSkge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1heC13aWR0aDogJHdpZHRoO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgd29yZC13cmFwOiBub3JtYWw7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBHZW9yZ2lhIGZvbnQgc3RhY2suXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG5cbiRnZW9yZ2lhOiBcIkdlb3JnaWFcIiwgXCJDYW1icmlhXCIsIFwiVGltZXMgTmV3IFJvbWFuXCIsIFwiVGltZXNcIiwgc2VyaWY7XG5cbi8vLyBIZWx2ZXRpY2EgZm9udCBzdGFjay5cbi8vL1xuLy8vIEB0eXBlIExpc3RcblxuJGhlbHZldGljYTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBcIkhlbHZldGljYVwiLCBcIlJvYm90b1wiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG5cbi8vLyBMdWNpZGEgR3JhbmRlIGZvbnQgc3RhY2suXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG5cbiRsdWNpZGEtZ3JhbmRlOiBcIkx1Y2lkYSBHcmFuZGVcIiwgXCJUYWhvbWFcIiwgXCJWZXJkYW5hXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcblxuLy8vIE1vbm9zcGFjZSBmb250IHN0YWNrLlxuLy8vXG4vLy8gQHR5cGUgTGlzdFxuXG4kbW9ub3NwYWNlOiBcIkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ub1wiLCBcIkNvbnNvbGFzXCIsIFwiQ291cmllclwiLCBtb25vc3BhY2U7XG5cbi8vLyBWZXJkYW5hIGZvbnQgc3RhY2suXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG5cbiR2ZXJkYW5hOiBcIlZlcmRhbmFcIiwgXCJHZW5ldmFcIiwgc2Fucy1zZXJpZjtcbiIsIi8vLyBIaWRlcyB0aGUgdGV4dCBpbiBhbiBlbGVtZW50LCBjb21tb25seSB1c2VkIHRvIHNob3cgYW4gaW1hZ2UuIFNvbWUgZWxlbWVudHMgd2lsbCBuZWVkIGJsb2NrLWxldmVsIHN0eWxlcyBhcHBsaWVkLlxuLy8vXG4vLy8gQGxpbmsgaHR0cDovL3plbGRtYW4uY29tLzIwMTIvMDMvMDEvcmVwbGFjaW5nLXRoZS05OTk5cHgtaGFjay1uZXctaW1hZ2UtcmVwbGFjZW1lbnRcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBoaWRlLXRleHQ7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIG92ZXJmbG93OiBoaWRkZW47XG4vLy8gICAgIHRleHQtaW5kZW50OiAxMDElO1xuLy8vICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuLy8vICAgfVxuLy8vXG4vLy8gQHRvZG8gUmVtb3ZlIGhlaWdodCBhcmd1bWVudCBpbiB2NS4wLjBcblxuQG1peGluIGhpZGUtdGV4dCgkaGVpZ2h0OiBudWxsKSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtaW5kZW50OiAxMDElO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gIEBpZiAkaGVpZ2h0IHtcbiAgICBAd2FybiBcIlRoZSBgaGlkZS10ZXh0YCBtaXhpbiBoYXMgY2hhbmdlZCBhbmQgbm8gbG9uZ2VyIHJlcXVpcmVzIGEgaGVpZ2h0LiBUaGUgaGVpZ2h0IGFyZ3VtZW50IHdpbGwgbm8gbG9uZ2VyIGJlIGFjY2VwdGVkIGluIHY1LjAuMFwiO1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBtYXJnaW5gIG9uIHNwZWNpZmljIHNpZGVzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIG1hcmdpbihudWxsIDEwcHggM2VtIDIwdmgpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBtYXJnaW4tYm90dG9tOiAzZW07XG4vLy8gICAgIG1hcmdpbi1sZWZ0OiAyMHZoO1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7bWl4aW59IGRpcmVjdGlvbmFsLXByb3BlcnR5XG4vLy9cbi8vLyBAb3V0cHV0IGBtYXJnaW5gXG5cbkBtaXhpbiBtYXJnaW4oJHZhbHMuLi4pIHtcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkobWFyZ2luLCBmYWxzZSwgJHZhbHMuLi4pO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgcGFkZGluZ2Agb24gc3BlY2lmaWMgc2lkZXMgb2YgYSBib3guIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgcGFkZGluZygxMnZoIG51bGwgMTBweCA1JSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuLy8vICAgICBwYWRkaW5nLWxlZnQ6IDUlO1xuLy8vICAgICBwYWRkaW5nLXRvcDogMTJ2aDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcbi8vL1xuLy8vIEBvdXRwdXQgYHBhZGRpbmdgXG5cbkBtaXhpbiBwYWRkaW5nKCR2YWxzLi4uKSB7XG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KHBhZGRpbmcsIGZhbHNlLCAkdmFscy4uLik7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3Igc2V0dGluZyBhbiBlbGVtZW504oCZcyBwb3NpdGlvbi4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxuLy8vXG4vLy8gQHBhcmFtIHtQb3NpdGlvbn0gJHBvc2l0aW9uIFtyZWxhdGl2ZV1cbi8vLyAgIEEgQ1NTIHBvc2l0aW9uIHZhbHVlXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICRjb29yZGluYXRlcyBbbnVsbCBudWxsIG51bGwgbnVsbF1cbi8vLyAgIExpc3Qgb2YgdmFsdWVzIHRoYXQgY29ycmVzcG9uZCB0byB0aGUgNC12YWx1ZSBzeW50YXggZm9yIHRoZSBlZGdlcyBvZiBhIGJveFxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAwIG51bGwgbnVsbCAxMGVtKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgbGVmdDogMTBlbTtcbi8vLyAgICAgcG9zaXRpb246IGFic29sdXRlO1xuLy8vICAgICB0b3A6IDA7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGlzLWxlbmd0aFxuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gdW5wYWNrXG5cbkBtaXhpbiBwb3NpdGlvbigkcG9zaXRpb246IHJlbGF0aXZlLCAkY29vcmRpbmF0ZXM6IG51bGwgbnVsbCBudWxsIG51bGwpIHtcbiAgQGlmIHR5cGUtb2YoJHBvc2l0aW9uKSA9PSBsaXN0IHtcbiAgICAkY29vcmRpbmF0ZXM6ICRwb3NpdGlvbjtcbiAgICAkcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgJGNvb3JkaW5hdGVzOiB1bnBhY2soJGNvb3JkaW5hdGVzKTtcblxuICAkb2Zmc2V0czogKFxuICAgIHRvcDogICAgbnRoKCRjb29yZGluYXRlcywgMSksXG4gICAgcmlnaHQ6ICBudGgoJGNvb3JkaW5hdGVzLCAyKSxcbiAgICBib3R0b206IG50aCgkY29vcmRpbmF0ZXMsIDMpLFxuICAgIGxlZnQ6ICAgbnRoKCRjb29yZGluYXRlcywgNClcbiAgKTtcblxuICBwb3NpdGlvbjogJHBvc2l0aW9uO1xuXG4gIEBlYWNoICRvZmZzZXQsICR2YWx1ZSBpbiAkb2Zmc2V0cyB7XG4gICAgQGlmIGlzLWxlbmd0aCgkdmFsdWUpIHtcbiAgICAgICN7JG9mZnNldH06ICR2YWx1ZTtcbiAgICB9XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEEgbWl4aW4gZm9yIGdlbmVyYXRpbmcgdmVuZG9yIHByZWZpeGVzIG9uIG5vbi1zdGFuZGFyZGl6ZWQgcHJvcGVydGllcy5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkcHJvcGVydHlcbi8vLyAgIFByb3BlcnR5IHRvIHByZWZpeFxuLy8vXG4vLy8gQHBhcmFtIHsqfSAkdmFsdWVcbi8vLyAgIFZhbHVlIHRvIHVzZVxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkcHJlZml4ZXNcbi8vLyAgIFByZWZpeGVzIHRvIGRlZmluZVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHByZWZpeGVyKGJvcmRlci1yYWRpdXMsIDEwcHgsIHdlYmtpdCBtcyBzcGVjKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAxMHB4O1xuLy8vICAgICAtbW96LWJvcmRlci1yYWRpdXM6IDEwcHg7XG4vLy8gICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLXdlYmtpdFxuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3ItbW96aWxsYVxuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3ItbWljcm9zb2Z0XG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci1vcGVyYVxuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3Itc3BlY1xuXG5AbWl4aW4gcHJlZml4ZXIoJHByb3BlcnR5LCAkdmFsdWUsICRwcmVmaXhlcykge1xuICBAZWFjaCAkcHJlZml4IGluICRwcmVmaXhlcyB7XG4gICAgQGlmICRwcmVmaXggPT0gd2Via2l0IHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci13ZWJraXQge1xuICAgICAgICAtd2Via2l0LSN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgJHByZWZpeCA9PSBtb3oge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLW1vemlsbGEge1xuICAgICAgICAtbW96LSN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgJHByZWZpeCA9PSBtcyB7XG4gICAgICBAaWYgJHByZWZpeC1mb3ItbWljcm9zb2Z0IHtcbiAgICAgICAgLW1zLSN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgJHByZWZpeCA9PSBvIHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci1vcGVyYSB7XG4gICAgICAgIC1vLSN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgJHByZWZpeCA9PSBzcGVjIHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci1zcGVjIHtcbiAgICAgICAgI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfSBAZWxzZSAge1xuICAgICAgQHdhcm4gXCJVbnJlY29nbml6ZWQgcHJlZml4OiAjeyRwcmVmaXh9XCI7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBkaXNhYmxlLXByZWZpeC1mb3ItYWxsKCkge1xuICAkcHJlZml4LWZvci13ZWJraXQ6ICAgIGZhbHNlICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW1vemlsbGE6ICAgZmFsc2UgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3ItbWljcm9zb2Z0OiBmYWxzZSAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1vcGVyYTogICAgIGZhbHNlICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLXNwZWM6ICAgICAgZmFsc2UgIWdsb2JhbDtcbn1cbiIsIkBtaXhpbiByZXRpbmEtaW1hZ2UoJGZpbGVuYW1lLCAkYmFja2dyb3VuZC1zaXplLCAkZXh0ZW5zaW9uOiBwbmcsICRyZXRpbmEtZmlsZW5hbWU6IG51bGwsICRyZXRpbmEtc3VmZml4OiBfMngsICRhc3NldC1waXBlbGluZTogJGFzc2V0LXBpcGVsaW5lKSB7XG4gIEBpZiAkYXNzZXQtcGlwZWxpbmUge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IGltYWdlLXVybChcIiN7JGZpbGVuYW1lfS4jeyRleHRlbnNpb259XCIpO1xuICB9IEBlbHNlIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAgICAgICB1cmwoXCIjeyRmaWxlbmFtZX0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgfVxuXG4gIEBpbmNsdWRlIGhpZHBpIHtcbiAgICBAaWYgJGFzc2V0LXBpcGVsaW5lIHtcbiAgICAgIEBpZiAkcmV0aW5hLWZpbGVuYW1lIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaW1hZ2UtdXJsKFwiI3skcmV0aW5hLWZpbGVuYW1lfS4jeyRleHRlbnNpb259XCIpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGltYWdlLXVybChcIiN7JGZpbGVuYW1lfSN7JHJldGluYS1zdWZmaXh9LiN7JGV4dGVuc2lvbn1cIik7XG4gICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICBAaWYgJHJldGluYS1maWxlbmFtZSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIiN7JHJldGluYS1maWxlbmFtZX0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIjeyRmaWxlbmFtZX0jeyRyZXRpbmEtc3VmZml4fS4jeyRleHRlbnNpb259XCIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGJhY2tncm91bmQtc2l6ZTogJGJhY2tncm91bmQtc2l6ZTtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gU2V0cyB0aGUgYHdpZHRoYCBhbmQgYGhlaWdodGAgb2YgdGhlIGVsZW1lbnQuXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRzaXplXG4vLy8gICBBIGxpc3Qgb2YgYXQgbW9zdCAyIHNpemUgdmFsdWVzLlxuLy8vXG4vLy8gICBJZiB0aGVyZSBpcyBvbmx5IGEgc2luZ2xlIHZhbHVlIGluIGAkc2l6ZWAgaXQgaXMgdXNlZCBmb3IgYm90aCB3aWR0aCBhbmQgaGVpZ2h0LiBBbGwgdW5pdHMgYXJlIHN1cHBvcnRlZC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmZpcnN0LWVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBzaXplKDJlbSk7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5zZWNvbmQtZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHNpemUoYXV0byAxMGVtKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5maXJzdC1lbGVtZW50IHtcbi8vLyAgICAgd2lkdGg6IDJlbTtcbi8vLyAgICAgaGVpZ2h0OiAyZW07XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5zZWNvbmQtZWxlbWVudCB7XG4vLy8gICAgIHdpZHRoOiBhdXRvO1xuLy8vICAgICBoZWlnaHQ6IDEwZW07XG4vLy8gICB9XG4vLy9cbi8vLyBAdG9kbyBSZWZhY3RvciBpbiA1LjAuMCB0byB1c2UgYSBjb21tYS1zZXBhcmF0ZWQgYXJndW1lbnRcblxuQG1peGluIHNpemUoJHZhbHVlKSB7XG4gICR3aWR0aDogbnRoKCR2YWx1ZSwgMSk7XG4gICRoZWlnaHQ6ICR3aWR0aDtcblxuICBAaWYgbGVuZ3RoKCR2YWx1ZSkgPiAxIHtcbiAgICAkaGVpZ2h0OiBudGgoJHZhbHVlLCAyKTtcbiAgfVxuXG4gIEBpZiBpcy1zaXplKCRoZWlnaHQpIHtcbiAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIH0gQGVsc2Uge1xuICAgIEB3YXJuIFwiYCN7JGhlaWdodH1gIGlzIG5vdCBhIHZhbGlkIGxlbmd0aCBmb3IgdGhlIGAkaGVpZ2h0YCBwYXJhbWV0ZXIgaW4gdGhlIGBzaXplYCBtaXhpbi5cIjtcbiAgfVxuXG4gIEBpZiBpcy1zaXplKCR3aWR0aCkge1xuICAgIHdpZHRoOiAkd2lkdGg7XG4gIH0gQGVsc2Uge1xuICAgIEB3YXJuIFwiYCN7JHdpZHRofWAgaXMgbm90IGEgdmFsaWQgbGVuZ3RoIGZvciB0aGUgYCR3aWR0aGAgcGFyYW1ldGVyIGluIHRoZSBgc2l6ZWAgbWl4aW4uXCI7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEdlbmVyYXRlcyB2YXJpYWJsZXMgZm9yIGFsbCB0ZXh0LWJhc2VkIGlucHV0cy4gUGxlYXNlIG5vdGUgdGhhdCB5b3UgbXVzdCB1c2UgaW50ZXJwb2xhdGlvbiBvbiB0aGUgdmFyaWFibGU6IGAjeyRhbGwtdGV4dC1pbnB1dHN9YC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgI3skYWxsLXRleHQtaW5wdXRzfSB7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICNmMDA7XG4vLy8gICB9XG4vLy9cbi8vLyAgICN7JGFsbC10ZXh0LWlucHV0cy1mb2N1c30sXG4vLy8gICAjeyRhbGwtdGV4dC1pbnB1dHMtaG92ZXJ9IHtcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgIzBmMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgI3skYWxsLXRleHQtaW5wdXRzLWFjdGl2ZX0ge1xuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjMDBmO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgaW5wdXRbdHlwZT1cImNvbG9yXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGVcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwiZW1haWxcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwibW9udGhcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZWxcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwidGV4dFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0aW1lXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInVybFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ3ZWVrXCJdLFxuLy8vICAgdGV4dGFyZWEge1xuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjZjAwO1xuLy8vICAgfVxuLy8vXG4vLy8gICBpbnB1dFt0eXBlPVwiY29sb3JcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZVwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJtb250aFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInRlbFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInRpbWVcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwidXJsXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cIndlZWtcIl06Zm9jdXMsXG4vLy8gICB0ZXh0YXJlYTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJjb2xvclwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRlXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cImVtYWlsXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwidGVsXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInRleHRcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwidGltZVwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJ1cmxcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwid2Vla1wiXTpob3Zlcixcbi8vLyAgIHRleHRhcmVhOmhvdmVyIHtcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgIzBmMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgaW5wdXRbdHlwZT1cImNvbG9yXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRlXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cImVtYWlsXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJtb250aFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZWxcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInRleHRcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInRpbWVcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInVybFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwid2Vla1wiXTphY3RpdmUsXG4vLy8gICB0ZXh0YXJlYTphY3RpdmUge1xuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjMDBmO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUgYXNzaWduLWlucHV0c1xuLy8vXG4vLy8gQHR5cGUgTGlzdFxuXG4kdGV4dC1pbnB1dHMtbGlzdDogJ2lucHV0W3R5cGU9XCJjb2xvclwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJkYXRlXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImVtYWlsXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cIm1vbnRoXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cIm51bWJlclwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJwYXNzd29yZFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJzZWFyY2hcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwidGVsXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInRleHRcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwidGltZVwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ1cmxcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwid2Vla1wiXScsXG4gICAgICAgICAgICAgICAgICAgJ3RleHRhcmVhJztcblxuJGFsbC10ZXh0LWlucHV0czogICAgICAgIGFzc2lnbi1pbnB1dHMoJHRleHQtaW5wdXRzLWxpc3QpO1xuJGFsbC10ZXh0LWlucHV0cy1hY3RpdmU6IGFzc2lnbi1pbnB1dHMoJHRleHQtaW5wdXRzLWxpc3QsIGFjdGl2ZSk7XG4kYWxsLXRleHQtaW5wdXRzLWZvY3VzOiAgYXNzaWduLWlucHV0cygkdGV4dC1pbnB1dHMtbGlzdCwgZm9jdXMpO1xuJGFsbC10ZXh0LWlucHV0cy1ob3ZlcjogIGFzc2lnbi1pbnB1dHMoJHRleHQtaW5wdXRzLWxpc3QsIGhvdmVyKTtcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENTUyBjdWJpYy1iZXppZXIgdGltaW5nIGZ1bmN0aW9ucy4gVGltaW5nIGZ1bmN0aW9ucyBjb3VydGVzeSBvZiBqcXVlcnkuZWFzaWUgKGdpdGh1Yi5jb20vamF1a2lhL2Vhc2llKVxuLy8vXG4vLy8gVGltaW5nIGZ1bmN0aW9ucyBhcmUgdGhlIHNhbWUgYXMgZGVtb2VkIGhlcmU6IGh0dHA6Ly9qcXVlcnl1aS5jb20vcmVzb3VyY2VzL2RlbW9zL2VmZmVjdC9lYXNpbmcuaHRtbFxuLy8vXG4vLy8gQHR5cGUgY3ViaWMtYmV6aWVyXG5cbiRlYXNlLWluLXF1YWQ6ICAgICAgY3ViaWMtYmV6aWVyKDAuNTUwLCAgMC4wODUsIDAuNjgwLCAwLjUzMCk7XG4kZWFzZS1pbi1jdWJpYzogICAgIGN1YmljLWJlemllcigwLjU1MCwgIDAuMDU1LCAwLjY3NSwgMC4xOTApO1xuJGVhc2UtaW4tcXVhcnQ6ICAgICBjdWJpYy1iZXppZXIoMC44OTUsICAwLjAzMCwgMC42ODUsIDAuMjIwKTtcbiRlYXNlLWluLXF1aW50OiAgICAgY3ViaWMtYmV6aWVyKDAuNzU1LCAgMC4wNTAsIDAuODU1LCAwLjA2MCk7XG4kZWFzZS1pbi1zaW5lOiAgICAgIGN1YmljLWJlemllcigwLjQ3MCwgIDAuMDAwLCAwLjc0NSwgMC43MTUpO1xuJGVhc2UtaW4tZXhwbzogICAgICBjdWJpYy1iZXppZXIoMC45NTAsICAwLjA1MCwgMC43OTUsIDAuMDM1KTtcbiRlYXNlLWluLWNpcmM6ICAgICAgY3ViaWMtYmV6aWVyKDAuNjAwLCAgMC4wNDAsIDAuOTgwLCAwLjMzNSk7XG4kZWFzZS1pbi1iYWNrOiAgICAgIGN1YmljLWJlemllcigwLjYwMCwgLTAuMjgwLCAwLjczNSwgMC4wNDUpO1xuXG4kZWFzZS1vdXQtcXVhZDogICAgIGN1YmljLWJlemllcigwLjI1MCwgIDAuNDYwLCAwLjQ1MCwgMC45NDApO1xuJGVhc2Utb3V0LWN1YmljOiAgICBjdWJpYy1iZXppZXIoMC4yMTUsICAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcbiRlYXNlLW91dC1xdWFydDogICAgY3ViaWMtYmV6aWVyKDAuMTY1LCAgMC44NDAsIDAuNDQwLCAxLjAwMCk7XG4kZWFzZS1vdXQtcXVpbnQ6ICAgIGN1YmljLWJlemllcigwLjIzMCwgIDEuMDAwLCAwLjMyMCwgMS4wMDApO1xuJGVhc2Utb3V0LXNpbmU6ICAgICBjdWJpYy1iZXppZXIoMC4zOTAsICAwLjU3NSwgMC41NjUsIDEuMDAwKTtcbiRlYXNlLW91dC1leHBvOiAgICAgY3ViaWMtYmV6aWVyKDAuMTkwLCAgMS4wMDAsIDAuMjIwLCAxLjAwMCk7XG4kZWFzZS1vdXQtY2lyYzogICAgIGN1YmljLWJlemllcigwLjA3NSwgIDAuODIwLCAwLjE2NSwgMS4wMDApO1xuJGVhc2Utb3V0LWJhY2s6ICAgICBjdWJpYy1iZXppZXIoMC4xNzUsICAwLjg4NSwgMC4zMjAsIDEuMjc1KTtcblxuJGVhc2UtaW4tb3V0LXF1YWQ6ICBjdWJpYy1iZXppZXIoMC40NTUsICAwLjAzMCwgMC41MTUsIDAuOTU1KTtcbiRlYXNlLWluLW91dC1jdWJpYzogY3ViaWMtYmV6aWVyKDAuNjQ1LCAgMC4wNDUsIDAuMzU1LCAxLjAwMCk7XG4kZWFzZS1pbi1vdXQtcXVhcnQ6IGN1YmljLWJlemllcigwLjc3MCwgIDAuMDAwLCAwLjE3NSwgMS4wMDApO1xuJGVhc2UtaW4tb3V0LXF1aW50OiBjdWJpYy1iZXppZXIoMC44NjAsICAwLjAwMCwgMC4wNzAsIDEuMDAwKTtcbiRlYXNlLWluLW91dC1zaW5lOiAgY3ViaWMtYmV6aWVyKDAuNDQ1LCAgMC4wNTAsIDAuNTUwLCAwLjk1MCk7XG4kZWFzZS1pbi1vdXQtZXhwbzogIGN1YmljLWJlemllcigxLjAwMCwgIDAuMDAwLCAwLjAwMCwgMS4wMDApO1xuJGVhc2UtaW4tb3V0LWNpcmM6ICBjdWJpYy1iZXppZXIoMC43ODUsICAwLjEzNSwgMC4xNTAsIDAuODYwKTtcbiRlYXNlLWluLW91dC1iYWNrOiAgY3ViaWMtYmV6aWVyKDAuNjgwLCAtMC41NTAsIDAuMjY1LCAxLjU1MCk7XG4iLCJAbWl4aW4gdHJpYW5nbGUoJHNpemUsICRjb2xvciwgJGRpcmVjdGlvbikge1xuICAkd2lkdGg6IG50aCgkc2l6ZSwgMSk7XG4gICRoZWlnaHQ6IG50aCgkc2l6ZSwgbGVuZ3RoKCRzaXplKSk7XG4gICRmb3JlZ3JvdW5kLWNvbG9yOiBudGgoJGNvbG9yLCAxKTtcbiAgJGJhY2tncm91bmQtY29sb3I6IGlmKGxlbmd0aCgkY29sb3IpID09IDIsIG50aCgkY29sb3IsIDIpLCB0cmFuc3BhcmVudCk7XG4gIGhlaWdodDogMDtcbiAgd2lkdGg6IDA7XG5cbiAgQGlmICgkZGlyZWN0aW9uID09IHVwKSBvciAoJGRpcmVjdGlvbiA9PSBkb3duKSBvciAoJGRpcmVjdGlvbiA9PSByaWdodCkgb3IgKCRkaXJlY3Rpb24gPT0gbGVmdCkge1xuICAgICR3aWR0aDogJHdpZHRoIC8gMjtcbiAgICAkaGVpZ2h0OiBpZihsZW5ndGgoJHNpemUpID4gMSwgJGhlaWdodCwgJGhlaWdodC8yKTtcblxuICAgIEBpZiAkZGlyZWN0aW9uID09IHVwIHtcbiAgICAgIGJvcmRlci1ib3R0b206ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItbGVmdDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IHJpZ2h0IHtcbiAgICAgIGJvcmRlci1ib3R0b206ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1sZWZ0OiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXRvcDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBkb3duIHtcbiAgICAgIGJvcmRlci1sZWZ0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci10b3A6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGxlZnQge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXRvcDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSB1cC1yaWdodCkgb3IgKCRkaXJlY3Rpb24gPT0gdXAtbGVmdCkge1xuICAgIGJvcmRlci10b3A6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG5cbiAgICBAaWYgJGRpcmVjdGlvbiA9PSB1cC1yaWdodCB7XG4gICAgICBib3JkZXItbGVmdDogICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gdXAtbGVmdCB7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gZG93bi1yaWdodCkgb3IgKCRkaXJlY3Rpb24gPT0gZG93bi1sZWZ0KSB7XG4gICAgYm9yZGVyLWJvdHRvbTogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcblxuICAgIEBpZiAkZGlyZWN0aW9uID09IGRvd24tcmlnaHQge1xuICAgICAgYm9yZGVyLWxlZnQ6ICAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGRvd24tbGVmdCB7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtdXApIHtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkaGVpZ2h0ICR3aWR0aDtcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC1kb3duKSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkZm9yZWdyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogJGhlaWdodCAkd2lkdGg7XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtcmlnaHQpIHtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkd2lkdGggJGhlaWdodDtcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC1sZWZ0KSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvciAkZm9yZWdyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogJHdpZHRoICRoZWlnaHQ7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGFuIGVhc3kgd2F5IHRvIGNoYW5nZSB0aGUgYHdvcmQtd3JhcGAgcHJvcGVydHkuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHdyYXAgW2JyZWFrLXdvcmRdXG4vLy8gICBWYWx1ZSBmb3IgdGhlIGB3b3JkLWJyZWFrYCBwcm9wZXJ0eS5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLndyYXBwZXIge1xuLy8vICAgICBAaW5jbHVkZSB3b3JkLXdyYXAoYnJlYWstd29yZCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAud3JhcHBlciB7XG4vLy8gICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4vLy8gICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbi8vLyAgICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuLy8vICAgfVxuXG5AbWl4aW4gd29yZC13cmFwKCR3cmFwOiBicmVhay13b3JkKSB7XG4gIG92ZXJmbG93LXdyYXA6ICR3cmFwO1xuICB3b3JkLXdyYXA6ICR3cmFwO1xuXG4gIEBpZiAkd3JhcCA9PSBicmVhay13b3JkIHtcbiAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gIH0gQGVsc2Uge1xuICAgIHdvcmQtYnJlYWs6ICR3cmFwO1xuICB9XG59XG4iLCIvLyBUaGUgZm9sbG93aW5nIGZlYXR1cmVzIGhhdmUgYmVlbiBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgTUFKT1IgdmVyc2lvbiByZWxlYXNlXG5cbkBtaXhpbiBpbmxpbmUtYmxvY2sge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgQHdhcm4gXCJUaGUgaW5saW5lLWJsb2NrIG1peGluIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2VcIjtcbn1cblxuQG1peGluIGJ1dHRvbiAoJHN0eWxlOiBzaW1wbGUsICRiYXNlLWNvbG9yOiAjNDI5NGYwLCAkdGV4dC1zaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcblxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IHN0cmluZyBhbmQgdHlwZS1vZigkYmFzZS1jb2xvcikgPT0gY29sb3Ige1xuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gc3RyaW5nIGFuZCB0eXBlLW9mKCRiYXNlLWNvbG9yKSA9PSBudW1iZXIge1xuICAgICRwYWRkaW5nOiAkdGV4dC1zaXplO1xuICAgICR0ZXh0LXNpemU6ICRiYXNlLWNvbG9yO1xuICAgICRiYXNlLWNvbG9yOiAjNDI5NGYwO1xuXG4gICAgQGlmICRwYWRkaW5nID09IGluaGVyaXQge1xuICAgICAgJHBhZGRpbmc6IDdweCAxOHB4O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gY29sb3IgYW5kIHR5cGUtb2YoJGJhc2UtY29sb3IpID09IGNvbG9yIHtcbiAgICAkYmFzZS1jb2xvcjogJHN0eWxlO1xuICAgICRzdHlsZTogc2ltcGxlO1xuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gY29sb3IgYW5kIHR5cGUtb2YoJGJhc2UtY29sb3IpID09IG51bWJlciB7XG4gICAgJHBhZGRpbmc6ICR0ZXh0LXNpemU7XG4gICAgJHRleHQtc2l6ZTogJGJhc2UtY29sb3I7XG4gICAgJGJhc2UtY29sb3I6ICRzdHlsZTtcbiAgICAkc3R5bGU6IHNpbXBsZTtcblxuICAgIEBpZiAkcGFkZGluZyA9PSBpbmhlcml0IHtcbiAgICAgICRwYWRkaW5nOiA3cHggMThweDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IG51bWJlciB7XG4gICAgJHBhZGRpbmc6ICRiYXNlLWNvbG9yO1xuICAgICR0ZXh0LXNpemU6ICRzdHlsZTtcbiAgICAkYmFzZS1jb2xvcjogIzQyOTRmMDtcbiAgICAkc3R5bGU6IHNpbXBsZTtcblxuICAgIEBpZiAkcGFkZGluZyA9PSAjNDI5NGYwIHtcbiAgICAgICRwYWRkaW5nOiA3cHggMThweDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XG4gIH1cblxuICAmOmRpc2FibGVkIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgfVxuXG4gIEB3YXJuIFwiVGhlIGJ1dHRvbiBtaXhpbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlXCI7XG59XG5cbi8vIFNlbGVjdG9yIFN0eWxlIEJ1dHRvblxuQG1peGluIGJ1dHRvbnN0eWxlKCR0eXBlLCAkYi1jb2xvciwgJHQtc2l6ZSwgJHBhZCkge1xuICAvLyBHcmF5c2NhbGUgYnV0dG9uXG4gIEBpZiAkdHlwZSA9PSBzaW1wbGUgYW5kICRiLWNvbG9yID09IGdyYXlzY2FsZSgkYi1jb2xvcikge1xuICAgIEBpbmNsdWRlIHNpbXBsZSgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAaWYgJHR5cGUgPT0gc2hpbnkgYW5kICRiLWNvbG9yID09IGdyYXlzY2FsZSgkYi1jb2xvcikge1xuICAgIEBpbmNsdWRlIHNoaW55KCRiLWNvbG9yLCB0cnVlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIEBpZiAkdHlwZSA9PSBwaWxsIGFuZCAkYi1jb2xvciA9PSBncmF5c2NhbGUoJGItY29sb3IpIHtcbiAgICBAaW5jbHVkZSBwaWxsKCRiLWNvbG9yLCB0cnVlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIEBpZiAkdHlwZSA9PSBmbGF0IGFuZCAkYi1jb2xvciA9PSBncmF5c2NhbGUoJGItY29sb3IpIHtcbiAgICBAaW5jbHVkZSBmbGF0KCRiLWNvbG9yLCB0cnVlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIC8vIENvbG9yZWQgYnV0dG9uXG4gIEBpZiAkdHlwZSA9PSBzaW1wbGUge1xuICAgIEBpbmNsdWRlIHNpbXBsZSgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGVsc2UgaWYgJHR5cGUgPT0gc2hpbnkge1xuICAgIEBpbmNsdWRlIHNoaW55KCRiLWNvbG9yLCBmYWxzZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAZWxzZSBpZiAkdHlwZSA9PSBwaWxsIHtcbiAgICBAaW5jbHVkZSBwaWxsKCRiLWNvbG9yLCBmYWxzZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAZWxzZSBpZiAkdHlwZSA9PSBmbGF0IHtcbiAgICBAaW5jbHVkZSBmbGF0KCRiLWNvbG9yLCBmYWxzZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cbn1cblxuLy8gU2ltcGxlIEJ1dHRvblxuQG1peGluIHNpbXBsZSgkYmFzZS1jb2xvciwgJGNvbG9yLW1haW4tZ3JleXNjYWxlOiBmYWxzZSwgJHRleHRzaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcbiAgJGNvbG9yOiAgICAgICAgIGhzbCgwLCAwLCAxMDAlKTtcbiAgJGJvcmRlcjogICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246ICA5JSwgICRsaWdodG5lc3M6IC0xNCUpO1xuICAkaW5zZXQtc2hhZG93OiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogLTglLCAgJGxpZ2h0bmVzczogIDE1JSk7XG4gICRzdG9wLWdyYWRpZW50OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAgOSUsICAkbGlnaHRuZXNzOiAtMTElKTtcbiAgJHRleHQtc2hhZG93OiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246ICAxNSUsICRsaWdodG5lc3M6IC0xOCUpO1xuXG4gIEBpZiBpcy1saWdodCgkYmFzZS1jb2xvcikge1xuICAgICRjb2xvcjogICAgICAgaHNsKDAsIDAsIDIwJSk7XG4gICAgJHRleHQtc2hhZG93OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAxMCUsICRsaWdodG5lc3M6IDQlKTtcbiAgfVxuXG4gIEBpZiAkY29sb3ItbWFpbi1ncmV5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgJGJvcmRlcjogICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyKTtcbiAgICAkaW5zZXQtc2hhZG93OiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3cpO1xuICAgICRzdG9wLWdyYWRpZW50OiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQpO1xuICAgICR0ZXh0LXNoYWRvdzogICBncmF5c2NhbGUoJHRleHQtc2hhZG93KTtcbiAgfVxuXG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3c7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQgKCRiYXNlLWNvbG9yLCAkc3RvcC1ncmFkaWVudCk7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtc2hhZG93OiAwIDFweCAwICR0ZXh0LXNoYWRvdztcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcblxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogLTQlLCAkbGlnaHRuZXNzOiAtNSUpO1xuICAgICRpbnNldC1zaGFkb3ctaG92ZXI6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAtNyUsICRsaWdodG5lc3M6ICA1JSk7XG4gICAgJHN0b3AtZ3JhZGllbnQtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246ICA4JSwgJGxpZ2h0bmVzczogLTE0JSk7XG5cbiAgICBAaWYgJGNvbG9yLW1haW4tZ3JleXNjYWxlID09IHRydWUge1xuICAgICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGdyYXlzY2FsZSgkYmFzZS1jb2xvci1ob3Zlcik7XG4gICAgICAkaW5zZXQtc2hhZG93LWhvdmVyOiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctaG92ZXIpO1xuICAgICAgJHN0b3AtZ3JhZGllbnQtaG92ZXI6IGdyYXlzY2FsZSgkc3RvcC1ncmFkaWVudC1ob3Zlcik7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50ICgkYmFzZS1jb2xvci1ob3ZlciwgJHN0b3AtZ3JhZGllbnQtaG92ZXIpO1xuXG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3ctaG92ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXG4gICY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xuICAgICRib3JkZXItYWN0aXZlOiAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiA5JSwgJGxpZ2h0bmVzczogLTE0JSk7XG4gICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDclLCAkbGlnaHRuZXNzOiAtMTclKTtcblxuICAgIEBpZiAkY29sb3ItbWFpbi1ncmV5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkYm9yZGVyLWFjdGl2ZTogICAgICAgZ3JheXNjYWxlKCRib3JkZXItYWN0aXZlKTtcbiAgICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiBncmF5c2NhbGUoJGluc2V0LXNoYWRvdy1hY3RpdmUpO1xuICAgIH1cblxuICAgIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItYWN0aXZlO1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCA4cHggNHB4ICRpbnNldC1zaGFkb3ctYWN0aXZlLCBpbnNldCAwIDAgOHB4IDRweCAkaW5zZXQtc2hhZG93LWFjdGl2ZTtcbiAgfVxufVxuXG4vLyBTaGlueSBCdXR0b25cbkBtaXhpbiBzaGlueSgkYmFzZS1jb2xvciwgJGNvbG9yLW1haW4tZ3JleXNjYWxlOiBmYWxzZSwgJHRleHRzaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcbiAgJGNvbG9yOiAgICAgICAgIGhzbCgwLCAwLCAxMDAlKTtcbiAgJGJvcmRlcjogICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTExNywgJGdyZWVuOiAtMTExLCAkYmx1ZTogLTgxKTtcbiAgJGJvcmRlci1ib3R0b206IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTEyNiwgJGdyZWVuOiAtMTI3LCAkYmx1ZTogLTEyMik7XG4gICRmb3VydGgtc3RvcDogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC03OSwgICRncmVlbjogLTcwLCAgJGJsdWU6IC00Nik7XG4gICRpbnNldC1zaGFkb3c6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6ICAzNywgICRncmVlbjogIDI5LCAgJGJsdWU6ICAxMik7XG4gICRzZWNvbmQtc3RvcDogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC01NiwgICRncmVlbjogLTUwLCAgJGJsdWU6IC0zMyk7XG4gICR0ZXh0LXNoYWRvdzogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xNDAsICRncmVlbjogLTE0MSwgJGJsdWU6IC0xMTQpO1xuICAkdGhpcmQtc3RvcDogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtODYsICAkZ3JlZW46IC03NSwgICRibHVlOiAtNDgpO1xuXG4gIEBpZiBpcy1saWdodCgkYmFzZS1jb2xvcikge1xuICAgICRjb2xvcjogICAgICAgaHNsKDAsIDAsIDIwJSk7XG4gICAgJHRleHQtc2hhZG93OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAxMCUsICRsaWdodG5lc3M6IDQlKTtcbiAgfVxuXG4gIEBpZiAkY29sb3ItbWFpbi1ncmV5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgJGJvcmRlcjogICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyKTtcbiAgICAkYm9yZGVyLWJvdHRvbTogZ3JheXNjYWxlKCRib3JkZXItYm90dG9tKTtcbiAgICAkZm91cnRoLXN0b3A6ICAgZ3JheXNjYWxlKCRmb3VydGgtc3RvcCk7XG4gICAgJGluc2V0LXNoYWRvdzogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93KTtcbiAgICAkc2Vjb25kLXN0b3A6ICAgZ3JheXNjYWxlKCRzZWNvbmQtc3RvcCk7XG4gICAgJHRleHQtc2hhZG93OiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3cpO1xuICAgICR0aGlyZC1zdG9wOiAgICBncmF5c2NhbGUoJHRoaXJkLXN0b3ApO1xuICB9XG5cbiAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50KHRvcCwgJGJhc2UtY29sb3IgMCUsICRzZWNvbmQtc3RvcCA1MCUsICR0aGlyZC1zdG9wIDUwJSwgJGZvdXJ0aC1zdG9wIDEwMCUpO1xuXG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXI7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYm9yZGVyLWJvdHRvbTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdztcbiAgY29sb3I6ICRjb2xvcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6ICR0ZXh0c2l6ZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93O1xuXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgICRmaXJzdC1zdG9wLWhvdmVyOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTMsICRncmVlbjogLTE1LCAkYmx1ZTogLTE4KTtcbiAgICAkc2Vjb25kLXN0b3AtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTY2LCAkZ3JlZW46IC02MiwgJGJsdWU6IC01MSk7XG4gICAgJHRoaXJkLXN0b3AtaG92ZXI6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC05MywgJGdyZWVuOiAtODUsICRibHVlOiAtNjYpO1xuICAgICRmb3VydGgtc3RvcC1ob3ZlcjogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtODYsICRncmVlbjogLTgwLCAkYmx1ZTogLTYzKTtcblxuICAgIEBpZiAkY29sb3ItbWFpbi1ncmV5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkZmlyc3Qtc3RvcC1ob3ZlcjogIGdyYXlzY2FsZSgkZmlyc3Qtc3RvcC1ob3Zlcik7XG4gICAgICAkc2Vjb25kLXN0b3AtaG92ZXI6IGdyYXlzY2FsZSgkc2Vjb25kLXN0b3AtaG92ZXIpO1xuICAgICAgJHRoaXJkLXN0b3AtaG92ZXI6ICBncmF5c2NhbGUoJHRoaXJkLXN0b3AtaG92ZXIpO1xuICAgICAgJGZvdXJ0aC1zdG9wLWhvdmVyOiBncmF5c2NhbGUoJGZvdXJ0aC1zdG9wLWhvdmVyKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQodG9wLCAkZmlyc3Qtc3RvcC1ob3ZlciAgMCUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNlY29uZC1zdG9wLWhvdmVyIDUwJSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcmQtc3RvcC1ob3ZlciAgNTAlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRmb3VydGgtc3RvcC1ob3ZlciAxMDAlKTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cblxuICAmOmFjdGl2ZTpub3QoOmRpc2FibGVkKSxcbiAgJjpmb2N1czpub3QoOmRpc2FibGVkKSB7XG4gICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTExMSwgJGdyZWVuOiAtMTE2LCAkYmx1ZTogLTEyMik7XG5cbiAgICBAaWYgJGNvbG9yLW1haW4tZ3JleXNjYWxlID09IHRydWUge1xuICAgICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6IGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWFjdGl2ZSk7XG4gICAgfVxuXG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDIwcHggMCAkaW5zZXQtc2hhZG93LWFjdGl2ZTtcbiAgfVxufVxuXG4vLyBQaWxsIEJ1dHRvblxuQG1peGluIHBpbGwoJGJhc2UtY29sb3IsICRjb2xvci1tYWluLWdyZXlzY2FsZTogZmFsc2UsICR0ZXh0c2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XG4gICRib3JkZXItYm90dG9tOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogLTExJSwgJGxpZ2h0bmVzczogLTI2JSk7XG4gICRib3JkZXItc2lkZXM6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA0LCAkc2F0dXJhdGlvbjogLTIxJSwgJGxpZ2h0bmVzczogLTIxJSk7XG4gICRib3JkZXItdG9wOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IC0xLCAkc2F0dXJhdGlvbjogLTMwJSwgJGxpZ2h0bmVzczogLTE1JSk7XG4gICRpbnNldC1zaGFkb3c6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IC0xLCAkc2F0dXJhdGlvbjogLTElLCAgJGxpZ2h0bmVzczogIDclKTtcbiAgJHN0b3AtZ3JhZGllbnQ6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDgsICRzYXR1cmF0aW9uOiAgMTQlLCAkbGlnaHRuZXNzOiAtMTAlKTtcbiAgJHRleHQtc2hhZG93OiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDUsICRzYXR1cmF0aW9uOiAtMTklLCAkbGlnaHRuZXNzOiAtMTUlKTtcblxuICBAaWYgaXMtbGlnaHQoJGJhc2UtY29sb3IpIHtcbiAgICAkY29sb3I6ICAgICAgIGhzbCgwLCAwLCAyMCUpO1xuICAgICR0ZXh0LXNoYWRvdzogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogMTAlLCAkbGlnaHRuZXNzOiA0JSk7XG4gIH1cblxuICBAaWYgJGNvbG9yLW1haW4tZ3JleXNjYWxlID09IHRydWUge1xuICAgICRib3JkZXItYm90dG9tOiBncmF5c2NhbGUoJGJvcmRlci1ib3R0b20pO1xuICAgICRib3JkZXItc2lkZXM6ICBncmF5c2NhbGUoJGJvcmRlci1zaWRlcyk7XG4gICAgJGJvcmRlci10b3A6ICAgIGdyYXlzY2FsZSgkYm9yZGVyLXRvcCk7XG4gICAgJGluc2V0LXNoYWRvdzogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93KTtcbiAgICAkc3RvcC1ncmFkaWVudDogZ3JheXNjYWxlKCRzdG9wLWdyYWRpZW50KTtcbiAgICAkdGV4dC1zaGFkb3c6ICAgZ3JheXNjYWxlKCR0ZXh0LXNoYWRvdyk7XG4gIH1cblxuICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLXRvcDtcbiAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLXRvcCAkYm9yZGVyLXNpZGVzICRib3JkZXItYm90dG9tO1xuICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdztcbiAgY29sb3I6ICRjb2xvcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6ICR0ZXh0c2l6ZTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCAoJGJhc2UtY29sb3IsICRzdG9wLWdyYWRpZW50KTtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXNoYWRvdzogMCAtMXB4IDFweCAkdGV4dC1zaGFkb3c7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG5cbiAgJjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaWdodG5lc3M6IC00LjUlKTtcbiAgICAkYm9yZGVyLWJvdHRvbTogICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgOCwgJHNhdHVyYXRpb246ICAxMy41JSwgJGxpZ2h0bmVzczogLTMyJSk7XG4gICAgJGJvcmRlci1zaWRlczogICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDQsICRzYXR1cmF0aW9uOiAtMiUsICAgICRsaWdodG5lc3M6IC0yNyUpO1xuICAgICRib3JkZXItdG9wOiAgICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IC0xLCAkc2F0dXJhdGlvbjogLTE3JSwgICAkbGlnaHRuZXNzOiAtMjElKTtcbiAgICAkaW5zZXQtc2hhZG93LWhvdmVyOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAgICAgICAgICAgJHNhdHVyYXRpb246IC0xJSwgICAgJGxpZ2h0bmVzczogIDMlKTtcbiAgICAkc3RvcC1ncmFkaWVudC1ob3ZlcjogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgOCwgJHNhdHVyYXRpb246IC00JSwgICAgJGxpZ2h0bmVzczogLTE1LjUlKTtcbiAgICAkdGV4dC1zaGFkb3ctaG92ZXI6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgNSwgJHNhdHVyYXRpb246IC01JSwgICAgJGxpZ2h0bmVzczogLTIyJSk7XG5cbiAgICBAaWYgJGNvbG9yLW1haW4tZ3JleXNjYWxlID09IHRydWUge1xuICAgICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGdyYXlzY2FsZSgkYmFzZS1jb2xvci1ob3Zlcik7XG4gICAgICAkYm9yZGVyLWJvdHRvbTogICAgICAgZ3JheXNjYWxlKCRib3JkZXItYm90dG9tKTtcbiAgICAgICRib3JkZXItc2lkZXM6ICAgICAgICBncmF5c2NhbGUoJGJvcmRlci1zaWRlcyk7XG4gICAgICAkYm9yZGVyLXRvcDogICAgICAgICAgZ3JheXNjYWxlKCRib3JkZXItdG9wKTtcbiAgICAgICRpbnNldC1zaGFkb3ctaG92ZXI6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdy1ob3Zlcik7XG4gICAgICAkc3RvcC1ncmFkaWVudC1ob3ZlcjogZ3JheXNjYWxlKCRzdG9wLWdyYWRpZW50LWhvdmVyKTtcbiAgICAgICR0ZXh0LXNoYWRvdy1ob3ZlcjogICBncmF5c2NhbGUoJHRleHQtc2hhZG93LWhvdmVyKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQgKCRiYXNlLWNvbG9yLWhvdmVyLCAkc3RvcC1ncmFkaWVudC1ob3Zlcik7XG5cbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItdG9wO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci10b3AgJGJvcmRlci1zaWRlcyAkYm9yZGVyLWJvdHRvbTtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdy1ob3ZlcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93LWhvdmVyO1xuICB9XG5cbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXG4gICY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xuICAgICRhY3RpdmUtY29sb3I6ICAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA0LCAgJHNhdHVyYXRpb246IC0xMiUsICAkbGlnaHRuZXNzOiAtMTAlKTtcbiAgICAkYm9yZGVyLWFjdGl2ZTogICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogNiwgICRzYXR1cmF0aW9uOiAtMi41JSwgJGxpZ2h0bmVzczogLTMwJSk7XG4gICAgJGJvcmRlci1ib3R0b20tYWN0aXZlOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDExLCAkc2F0dXJhdGlvbjogIDYlLCAgICRsaWdodG5lc3M6IC0zMSUpO1xuICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA5LCAgJHNhdHVyYXRpb246ICAyJSwgICAkbGlnaHRuZXNzOiAtMjEuNSUpO1xuICAgICR0ZXh0LXNoYWRvdy1hY3RpdmU6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA1LCAgJHNhdHVyYXRpb246IC0xMiUsICAkbGlnaHRuZXNzOiAtMjEuNSUpO1xuXG4gICAgQGlmICRjb2xvci1tYWluLWdyZXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRhY3RpdmUtY29sb3I6ICAgICAgICAgZ3JheXNjYWxlKCRhY3RpdmUtY29sb3IpO1xuICAgICAgJGJvcmRlci1hY3RpdmU6ICAgICAgICBncmF5c2NhbGUoJGJvcmRlci1hY3RpdmUpO1xuICAgICAgJGJvcmRlci1ib3R0b20tYWN0aXZlOiBncmF5c2NhbGUoJGJvcmRlci1ib3R0b20tYWN0aXZlKTtcbiAgICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctYWN0aXZlKTtcbiAgICAgICR0ZXh0LXNoYWRvdy1hY3RpdmU6ICAgZ3JheXNjYWxlKCR0ZXh0LXNoYWRvdy1hY3RpdmUpO1xuICAgIH1cblxuICAgIGJhY2tncm91bmQ6ICRhY3RpdmUtY29sb3I7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1hY3RpdmU7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRib3JkZXItYm90dG9tLWFjdGl2ZTtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IDNweCAkaW5zZXQtc2hhZG93LWFjdGl2ZTtcbiAgICB0ZXh0LXNoYWRvdzogMCAtMXB4IDFweCAkdGV4dC1zaGFkb3ctYWN0aXZlO1xuICB9XG59XG5cbi8vIEZsYXQgQnV0dG9uXG5AbWl4aW4gZmxhdCgkYmFzZS1jb2xvciwgJGNvbG9yLW1haW4tZ3JleXNjYWxlOiBmYWxzZSwgJHRleHRzaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcbiAgJGNvbG9yOiAgICAgICAgIGhzbCgwLCAwLCAxMDAlKTtcblxuICBAaWYgaXMtbGlnaHQoJGJhc2UtY29sb3IpIHtcbiAgICAkY29sb3I6ICAgICAgIGhzbCgwLCAwLCAyMCUpO1xuICB9XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhc2UtY29sb3I7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm9yZGVyOiAwO1xuICBjb2xvcjogJGNvbG9yO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogJHRleHRzaXplO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcblxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpe1xuICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiA0JSwgJGxpZ2h0bmVzczogNSUpO1xuXG4gICAgQGlmICRjb2xvci1tYWluLWdyZXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRiYXNlLWNvbG9yLWhvdmVyOiBncmF5c2NhbGUoJGJhc2UtY29sb3ItaG92ZXIpO1xuICAgIH1cblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYXNlLWNvbG9yLWhvdmVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gICY6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpLFxuICAmOmZvY3VzOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkYmFzZS1jb2xvci1hY3RpdmU6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IC00JSwgJGxpZ2h0bmVzczogLTUlKTtcblxuICAgIEBpZiAkY29sb3ItbWFpbi1ncmV5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkYmFzZS1jb2xvci1hY3RpdmU6IGdyYXlzY2FsZSgkYmFzZS1jb2xvci1hY3RpdmUpO1xuICAgIH1cblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYXNlLWNvbG9yLWFjdGl2ZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbn1cblxuLy8gRmxleGlibGUgZ3JpZFxuQGZ1bmN0aW9uIGZsZXgtZ3JpZCgkY29sdW1ucywgJGNvbnRhaW5lci1jb2x1bW5zOiAkZmctbWF4LWNvbHVtbnMpIHtcbiAgJHdpZHRoOiAkY29sdW1ucyAqICRmZy1jb2x1bW4gKyAoJGNvbHVtbnMgLSAxKSAqICRmZy1ndXR0ZXI7XG4gICRjb250YWluZXItd2lkdGg6ICRjb250YWluZXItY29sdW1ucyAqICRmZy1jb2x1bW4gKyAoJGNvbnRhaW5lci1jb2x1bW5zIC0gMSkgKiAkZmctZ3V0dGVyO1xuICBAcmV0dXJuIHBlcmNlbnRhZ2UoJHdpZHRoIC8gJGNvbnRhaW5lci13aWR0aCk7XG5cbiAgQHdhcm4gXCJUaGUgZmxleC1ncmlkIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2VcIjtcbn1cblxuLy8gRmxleGlibGUgZ3V0dGVyXG5AZnVuY3Rpb24gZmxleC1ndXR0ZXIoJGNvbnRhaW5lci1jb2x1bW5zOiAkZmctbWF4LWNvbHVtbnMsICRndXR0ZXI6ICRmZy1ndXR0ZXIpIHtcbiAgJGNvbnRhaW5lci13aWR0aDogJGNvbnRhaW5lci1jb2x1bW5zICogJGZnLWNvbHVtbiArICgkY29udGFpbmVyLWNvbHVtbnMgLSAxKSAqICRmZy1ndXR0ZXI7XG4gIEByZXR1cm4gcGVyY2VudGFnZSgkZ3V0dGVyIC8gJGNvbnRhaW5lci13aWR0aCk7XG5cbiAgQHdhcm4gXCJUaGUgZmxleC1ndXR0ZXIgZnVuY3Rpb24gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZVwiO1xufVxuXG5AZnVuY3Rpb24gZ3JpZC13aWR0aCgkbikge1xuICBAcmV0dXJuICRuICogJGd3LWNvbHVtbiArICgkbiAtIDEpICogJGd3LWd1dHRlcjtcblxuICBAd2FybiBcIlRoZSBncmlkLXdpZHRoIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2VcIjtcbn1cblxuQGZ1bmN0aW9uIGdvbGRlbi1yYXRpbygkdmFsdWUsICRpbmNyZW1lbnQpIHtcbiAgQHJldHVybiBtb2R1bGFyLXNjYWxlKCRpbmNyZW1lbnQsICR2YWx1ZSwgJHJhdGlvOiAkZ29sZGVuKTtcblxuICBAd2FybiBcIlRoZSBnb2xkZW4tcmF0aW8gZnVuY3Rpb24gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZS4gUGxlYXNlIHVzZSB0aGUgbW9kdWxhci1zY2FsZSBmdW5jdGlvbiwgaW5zdGVhZC5cIjtcbn1cblxuQG1peGluIGJveC1zaXppbmcoJGJveCkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtc2l6aW5nLCAkYm94LCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIEB3YXJuIFwiVGhlIGJveC1zaXppbmcgbWl4aW4gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZS4gVGhpcyBwcm9wZXJ0eSBjYW4gbm93IGJlIHVzZWQgdW4tcHJlZml4ZWQuXCI7XG59XG4iLCJcbkBpZiB2YXJpYWJsZV9leGlzdHMoJ3dpdGgtYmFzZS1jc3MnKSA9PSBmYWxzZSB7XG4gICR3aXRoLWJhc2UtY3NzOiBmYWxzZSAhZ2xvYmFsO1xufVxuXG5AaW1wb3J0IFwiYnJlYWtwb2ludHNcIjtcbkBpbXBvcnQgXCJjYWxjdWxhdGlvbnNcIjtcbkBpbXBvcnQgXCJjb2xvcnNcIjtcbkBpbXBvcnQgXCJ0aGVtZXNcIjtcbkBpbXBvcnQgXCJjb25maWdcIjtcbkBpbXBvcnQgXCJmb250c1wiO1xuQGltcG9ydCBcInRhcmdldHNcIjtcbkBpbXBvcnQgXCJsYXllcnNcIjtcbkBpbXBvcnQgXCJsYXlvdXRcIjtcbkBpbXBvcnQgXCJmb3Jtc1wiO1xuQGltcG9ydCBcInJlc2V0XCI7XG5AaW1wb3J0IFwic2VjdGlvbnNcIjtcbkBpbXBvcnQgXCJ0eXBvZ3JhcGh5XCI7XG5AaW1wb3J0IFwidXRpbHNcIjtcblxuQGltcG9ydCBcImljb25zXCI7XG5cbkBpbXBvcnQgXCJidXR0b25zXCI7XG5AaW1wb3J0IFwibGFiZWxzXCI7XG5cbkBpbXBvcnQgXCJjb21wb25lbnRzXCI7XG5AaW1wb3J0IFwidGV4dFwiO1xuQGltcG9ydCBcInZpZGVvXCI7XG4iLCIkYnJlYWtwb2ludC1leHRyYXNtYWxsOiAzNzBweDtcbiRicmVha3BvaW50LW1vYmlsZTogNTMwcHg7XG4kYnJlYWtwb2ludC1tb2JpbGUtb3ZlcnZpZXctYmxvY2tzOiA2NjZweDtcbiRicmVha3BvaW50LXNtYWxsOiA2MjBweCArIDQwcHg7IC8vIDY2MHB4IC0tIDIgKiAzMDAgKyAzICogMjBcbiRicmVha3BvaW50LXBvcnRyYWl0OiA5MDBweDtcbiRicmVha3BvaW50LW1lZGl1bTogOTQwcHggKyA0MHB4OyAvLyA5ODBweCAtLSAzICogMzAwICsgNCAqIDIwXG4kYnJlYWtwb2ludC1pcGFkLWxhbmRzY2FwZTogMTAyNHB4O1xuJGJyZWFrcG9pbnQtbGFuZHNjYXBlOiAxMjAwcHg7XG4kYnJlYWtwb2ludC1sYXJnZTogMTI2MHB4ICsgNDBweDsgLy8gMTMwMHB4IC0tIDQgKiAzMDAgKyA1ICogMjBcbiRicmVha3BvaW50LWZ1bGwtbG9nbzogMTU3MHB4O1xuXG5AbWl4aW4gYWJvdmUoJHdpZHRoKSB7XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICR3aWR0aCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBiZWxvdygkd2lkdGgpIHtcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJHdpZHRoIC0gMSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBiZXR3ZWVuKCR3aWR0aDEsICR3aWR0aDIpIHtcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJHdpZHRoMSkgYW5kIChtYXgtd2lkdGg6ICR3aWR0aDIgLSAxKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cbiIsIlxuQGZ1bmN0aW9uIGJlemllcl9heGlzKCR4MSwgJHgyLCAkdCkge1xuICAkY3g6IDMuMCAqICR4MTtcbiAgJGJ4OiAzLjAgKiAoJHgyIC0gJHgxKSAtICRjeDtcbiAgJGF4OiAxLjAgLSAkY3ggLSAkYng7XG4gIEByZXR1cm4gJHQgKiAoJGN4ICsgKCR0ICogKCRieCArICgkdCAqICRheCkpKSk7XG59XG5cbkBmdW5jdGlvbiBiZXppZXJfZGVyaXZhdGUoJHgxLCAkeDIsICR4KSB7XG4gICRjeDogMy4wICogJHgxO1xuICAkYng6IDMuMCAqICgkeDIgLSAkeDEpIC0gJGN4O1xuICAkYXg6IDEuMCAtICRjeCAtICRieDtcbiAgQHJldHVybiAoKDMuMCAqICRheCAqICR4ICsgMi4wICogJGJ4KSAqICR4KSArICRjeDtcbn1cblxuQGZ1bmN0aW9uIGN1YmljLWJlemllcigkeDEsICR5MSwgJHgyLCAkeTIsICRwZXJjZW50YWdlKSB7XG4gICR4OiAkcGVyY2VudGFnZTtcbiAgJGk6IDA7XG4gIEB3aGlsZSAoJGkgPCAxMCkge1xuICAgICR6OiBiZXppZXJfYXhpcygkeDEsICR4MiwgJHgpIC0gJHBlcmNlbnRhZ2U7XG4gICAgJGFic3o6IGFicygkeik7XG4gICAgQGlmICRhYnN6IDwgMC4wMDAwMDEge1xuICAgIC8vIHBvb3JtYW5zIGJyZWFrXG4gICAgICAkaTogMTA7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkeDogJHggLSAoJHogLyBiZXppZXJfZGVyaXZhdGUoJHgxLCAkeDIsICR4KSk7XG4gICAgICAkaTogJGkgKyAxO1xuICAgIH1cbiAgfVxuICBAcmV0dXJuIGJlemllcl9heGlzKCR5MSwgJHkyLCAkeCk7XG59XG4iLCIvLyBSZWRlc2lnbiBjb2xvcnNcbiRjb2xvci1tYWluLWdyZWVuOiAjMDBFNjNDO1xuJGNvbG9yLW1haW4tYmxhY2s6ICMwMDAwMDA7XG4kY29sb3ItbWFpbi1yZWQ6ICNGRjNDMDA7XG4kY29sb3ItbWFpbi1waW5rOiAjRjAzQ0E1O1xuJGNvbG9yLW1haW4teWVsbG93OiAjRkZFNjAwO1xuJGNvbG9yLW1haW4tYmx1ZTogIzAwOTZGQTtcbiRjb2xvci1tYWluLXdoaXRlOiAjRkZGRkZGO1xuJGNvbG9yLW1haW4tZ3JleTogI0U2RTZFNjtcblxuLy8gU2Vjb25kYXJ5IGNvbG9yc1xuJGNvbG9yLXNlY29uZGFyeS1ncmVlbjogIzAwQzMzMztcbiRjb2xvci1saWdodGVzdC1ncmV5OiAjRjRGNEY0O1xuJGNvbG9yLXNlY29uZGFyeS1ncmV5OiAjNzA3MDcwO1xuJGNvbG9yLXRlcnRpYXJ5LWdyZXk6ICM2NjY2NjY7XG4kY29sb3ItZ3JleS05OTogIzc2NzY3NjtcbiRjb2xvci1hbmQteWV0LWFub3RoZXItZ3JleTogI2NmY2ZjZjtcbiRjb2xvci1zZWNvbmRhcnktYmxhY2s6ICMzMzMzMzM7XG5cbi8vIFNvY2lhbCBtZWRpYSBjb2xvcnNcbiRmYWNlYm9vay1ibHVlOiAjM0I1OTk4O1xuJHR3aXR0ZXItYmx1ZTogIzAwQUNFRTtcbiR5b3V0dWJlLXJlZDogI0NEMzMyRDtcblxuJG1haW4tY29sb3JzOiAoXG4gICAgXCJncmVlblwiICRjb2xvci1tYWluLWdyZWVuLFxuICAgIFwiYmxhY2tcIiAkY29sb3ItbWFpbi1ibGFjayxcbiAgICBcInJlZFwiICRjb2xvci1tYWluLXJlZCxcbiAgICBcInBpbmtcIiAkY29sb3ItbWFpbi1waW5rLFxuICAgIFwieWVsbG93XCIgJGNvbG9yLW1haW4teWVsbG93LFxuICAgIFwiYmx1ZVwiICRjb2xvci1tYWluLWJsdWUsXG4gICAgXCJncmV5XCIgJGNvbG9yLW1haW4tZ3JleVxuKTtcblxuZGl2LmMtY29sb3ItYmxvY2sge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGhlaWdodDogMTI2cHg7XG4gIHdpZHRoOiAxMjZweDtcblxuICBAZWFjaCAkY29sb3IgaW4gJG1haW4tY29sb3JzIHtcbiAgICAkbmFtZTogbnRoKCRjb2xvciwgMSk7XG4gICAgJHZhbHVlOiBudGgoJGNvbG9yLCAyKTtcblxuICAgICYudi0jeyRuYW1lfSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdmFsdWU7XG4gICAgfVxuICB9XG59XG5cbkBpZiAkd2l0aC1iYXNlLWNzcyB7XG4gIEBpbmNsdWRlIHNlbGVjdGlvbigpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItbWFpbi1ncmVlbjtcbiAgICBjb2xvcjogJGNvbG9yLW1haW4tYmxhY2s7XG4gIH1cbn1cbiIsIi8vXG4vLyBSRVNUWUxJTkdcbi8vXG5cbi8vIGZvciBtYWluIGNvbG9yOiBAaW5jbHVkZSB0aGVtZWQtbWFpbjtcbi8vIGZvciBzdXBwb3J0IGNvbG9yOiBAaW5jbHVkZSB0aGVtZWQtc3VwcG9ydDtcblxuJHRoZW1lczogcGluaywgYmx1ZSwgcmVkLCB5ZWxsb3csIGdyZXk7XG4kdGhlbWUtZGVmYXVsdC1zdXBwb3J0OiAkY29sb3ItbWFpbi1ncmVlbjtcblxuLy8gcGluayB0aGVtZVxuJHRoZW1lLXBpbmstYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLW1haW4tcGluaztcbiR0aGVtZS1waW5rLXN1cHBvcnQ6ICRjb2xvci1tYWluLXBpbms7XG5cbi8vIGJsdWUgdGhlbWVcbiR0aGVtZS1ibHVlLWJhY2tncm91bmQtY29sb3I6ICRjb2xvci1tYWluLWJsdWU7XG4kdGhlbWUtYmx1ZS1zdXBwb3J0OiAkY29sb3ItbWFpbi1ibHVlO1xuXG4vLyByZWQgdGhlbWVcbiR0aGVtZS1yZWQtYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLW1haW4tcmVkO1xuJHRoZW1lLXJlZC1zdXBwb3J0OiAkY29sb3ItbWFpbi1yZWQ7XG5cbi8vIHllbGxvdyB0aGVtZVxuJHRoZW1lLXllbGxvdy1iYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItbWFpbi15ZWxsb3c7XG4kdGhlbWUteWVsbG93LXN1cHBvcnQ6ICRjb2xvci1tYWluLXllbGxvdztcblxuLy8gZ3JleSB0aGVtZVxuJHRoZW1lLWdyZXktYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLW1haW4tZ3JleTtcbiR0aGVtZS1ncmV5LXN1cHBvcnQ6ICRjb2xvci1tYWluLWdyZWVuO1xuXG4vL1xuLy8gT0xEIFRIRU1FUyBSRUZBQ1RPUkVEXG4vL1xuXG4kdGhlbWUteWVsbG93LWJhY2tncm91bmQtY29sb3I6ICRjb2xvci1tYWluLXllbGxvdztcbiR0aGVtZS15ZWxsb3ctYmFja2dyb3VuZDogJGNvbG9yLW1haW4teWVsbG93O1xuJHRoZW1lLXllbGxvdy1iYWNrZ3JvdW5kLWZhZGU6ICRjb2xvci1tYWluLXllbGxvdztcbiR0aGVtZS15ZWxsb3ctYmFja2dyb3VuZC1mYWRlLWZpeGVkOiAkY29sb3ItbWFpbi15ZWxsb3c7XG4kdGhlbWUteWVsbG93LWJhY2tncm91bmQtcmV2ZXJzZWQ6ICRjb2xvci1tYWluLXllbGxvdztcbiR0aGVtZS15ZWxsb3ctc3VwcG9ydDogJGNvbG9yLW1haW4teWVsbG93O1xuJHRoZW1lLXllbGxvdy1zdXBwb3J0LWNvbXBsZW1lbnQ6ICRjb2xvci1tYWluLXllbGxvdztcbiR0aGVtZS15ZWxsb3ctc2lnbmFsOiAkY29sb3ItbWFpbi15ZWxsb3c7XG5cbiR0aGVtZS1wdXJwbGUtYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLW1haW4tcGluaztcbiR0aGVtZS1wdXJwbGUtYmFja2dyb3VuZDogJGNvbG9yLW1haW4tcGluaztcbiR0aGVtZS1wdXJwbGUtYmFja2dyb3VuZC1mYWRlOiAkY29sb3ItbWFpbi1waW5rO1xuJHRoZW1lLXB1cnBsZS1iYWNrZ3JvdW5kLWZhZGUtZml4ZWQ6ICRjb2xvci1tYWluLXBpbms7XG4kdGhlbWUtcHVycGxlLWJhY2tncm91bmQtcmV2ZXJzZWQ6ICRjb2xvci1tYWluLXBpbms7XG4kdGhlbWUtcHVycGxlLXN1cHBvcnQ6ICRjb2xvci1tYWluLXBpbms7XG4kdGhlbWUtcHVycGxlLXN1cHBvcnQtY29tcGxlbWVudDogJGNvbG9yLW1haW4tcGluaztcbiR0aGVtZS1wdXJwbGUtc2lnbmFsOiAkY29sb3ItbWFpbi1waW5rO1xuXG4kdGhlbWUtYmx1ZS1iYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItbWFpbi1ibHVlO1xuJHRoZW1lLWJsdWUtYmFja2dyb3VuZDogJGNvbG9yLW1haW4tYmx1ZTtcbiR0aGVtZS1ibHVlLWJhY2tncm91bmQtZmFkZTogJGNvbG9yLW1haW4tYmx1ZTtcbiR0aGVtZS1ibHVlLWJhY2tncm91bmQtZmFkZS1maXhlZDogJGNvbG9yLW1haW4tYmx1ZTtcbiR0aGVtZS1ibHVlLWJhY2tncm91bmQtcmV2ZXJzZWQ6ICRjb2xvci1tYWluLWJsdWU7XG4kdGhlbWUtYmx1ZS1zdXBwb3J0OiAkY29sb3ItbWFpbi1ibHVlO1xuJHRoZW1lLWJsdWUtc3VwcG9ydC1jb21wbGVtZW50OiAkY29sb3ItbWFpbi1ibHVlO1xuJHRoZW1lLWJsdWUtc2lnbmFsOiAkY29sb3ItbWFpbi1ibHVlO1xuXG4kdGhlbWUtb3JhbmdlLWJhY2tncm91bmQtY29sb3I6ICRjb2xvci1tYWluLXJlZDtcbiR0aGVtZS1vcmFuZ2UtYmFja2dyb3VuZDogJGNvbG9yLW1haW4tcmVkO1xuJHRoZW1lLW9yYW5nZS1iYWNrZ3JvdW5kLWZhZGU6ICRjb2xvci1tYWluLXJlZDtcbiR0aGVtZS1vcmFuZ2UtYmFja2dyb3VuZC1mYWRlLWZpeGVkOiAkY29sb3ItbWFpbi1yZWQ7XG4kdGhlbWUtb3JhbmdlLWJhY2tncm91bmQtcmV2ZXJzZWQ6ICRjb2xvci1tYWluLXJlZDtcbiR0aGVtZS1vcmFuZ2Utc3VwcG9ydDogJGNvbG9yLW1haW4tcmVkO1xuJHRoZW1lLW9yYW5nZS1zdXBwb3J0LWNvbXBsZW1lbnQ6ICRjb2xvci1tYWluLXJlZDtcbiR0aGVtZS1vcmFuZ2Utc2lnbmFsOiAkY29sb3ItbWFpbi1yZWQ7XG5cbiR0aGVtZS1ncmVlbi1iYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItbWFpbi1ncmV5O1xuJHRoZW1lLWdyZWVuLWJhY2tncm91bmQ6ICRjb2xvci1tYWluLWdyZXk7XG4kdGhlbWUtZ3JlZW4tYmFja2dyb3VuZC1mYWRlOiAkY29sb3ItbWFpbi1ncmV5O1xuJHRoZW1lLWdyZWVuLWJhY2tncm91bmQtZmFkZS1maXhlZDogJGNvbG9yLW1haW4tZ3JleTtcbiR0aGVtZS1ncmVlbi1iYWNrZ3JvdW5kLXJldmVyc2VkOiAkY29sb3ItbWFpbi1ncmV5O1xuJHRoZW1lLWdyZWVuLXN1cHBvcnQ6ICRjb2xvci1tYWluLWdyZWVuO1xuJHRoZW1lLWdyZWVuLXN1cHBvcnQtY29tcGxlbWVudDogJGNvbG9yLW1haW4tZ3JlZW47XG4kdGhlbWUtZ3JlZW4tc2lnbmFsOiAkY29sb3ItbWFpbi1ncmVlbjtcblxuJHRoZW1lLXBpbmstYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLW1haW4tcGluaztcbiR0aGVtZS1waW5rLWJhY2tncm91bmQ6ICRjb2xvci1tYWluLXBpbms7XG4kdGhlbWUtcGluay1iYWNrZ3JvdW5kLWZhZGU6ICRjb2xvci1tYWluLXBpbms7XG4kdGhlbWUtcGluay1iYWNrZ3JvdW5kLWZhZGUtZml4ZWQ6ICRjb2xvci1tYWluLXBpbms7XG4kdGhlbWUtcGluay1iYWNrZ3JvdW5kLXJldmVyc2VkOiAkY29sb3ItbWFpbi1waW5rO1xuJHRoZW1lLXBpbmstc3VwcG9ydDogJGNvbG9yLW1haW4tcGluaztcbiR0aGVtZS1waW5rLXN1cHBvcnQtY29tcGxlbWVudDogJGNvbG9yLW1haW4tcGluaztcbiR0aGVtZS1waW5rLXNpZ25hbDogJGNvbG9yLW1haW4tcGluaztcblxuJHRoZW1lLWRlZmF1bHQtYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLW1haW4tZ3JleTtcbiR0aGVtZS1kZWZhdWx0LWJhY2tncm91bmQ6ICRjb2xvci1tYWluLWdyZXk7XG4kdGhlbWUtZGVmYXVsdC1iYWNrZ3JvdW5kLWZhZGU6ICRjb2xvci1tYWluLWdyZXk7XG4kdGhlbWUtZGVmYXVsdC1iYWNrZ3JvdW5kLWZhZGUtZml4ZWQ6ICRjb2xvci1tYWluLWdyZXk7XG4kdGhlbWUtZGVmYXVsdC1jb2xvcjogJGNvbG9yLW1haW4tZ3JleTtcbiR0aGVtZS1kZWZhdWx0LWJhY2tncm91bmQtcmV2ZXJzZWQ6ICRjb2xvci1tYWluLWdyZXk7XG4kdGhlbWUtZGVmYXVsdC1zdXBwb3J0OiAkY29sb3ItbWFpbi1ncmVlbjtcbiR0aGVtZS1kZWZhdWx0LXN1cHBvcnQtY29tcGxlbWVudDogJGNvbG9yLW1haW4tZ3JlZW47XG4kdGhlbWUtZGVmYXVsdC1zaWduYWw6ICRjb2xvci1tYWluLWdyZWVuO1xuXG5AbWl4aW4gdGhlbWVkIHtcbiAgQGNvbnRlbnQ7XG5cbiAgYm9keS50aGVtZS15ZWxsb3cgJiB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbiAgYm9keS50aGVtZS1wdXJwbGUgJiB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbiAgYm9keS50aGVtZS1ibHVlICYge1xuICAgIEBjb250ZW50O1xuICB9XG4gIGJvZHkudGhlbWUtb3JhbmdlICYge1xuICAgIEBjb250ZW50O1xuICB9XG4gIGJvZHkudGhlbWUtZ3JlZW4gJiB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbiAgYm9keS50aGVtZS1waW5rICYge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIG1haW4gYmFja2dyb3VuZCBjb2xvcnNcblxuQG1peGluIHRoZW1lZC1tYWluKCRzZWxlY3RvcjogJyYnLCAkYm9keS1maWx0ZXI6JycpIHtcbiAgYm9keSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHRoZW1lLWRlZmF1bHQtYmFja2dyb3VuZC1jb2xvcjtcbiAgfVxuXG4gIGJvZHkudGhlbWUteWVsbG93I3skYm9keS1maWx0ZXJ9ICN7JHNlbGVjdG9yfSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLW1haW4teWVsbG93O1xuICB9XG4gIGJvZHkudGhlbWUtcHVycGxlI3skYm9keS1maWx0ZXJ9ICN7JHNlbGVjdG9yfSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLW1haW4tcGluaztcbiAgfVxuICBib2R5LnRoZW1lLWJsdWUjeyRib2R5LWZpbHRlcn0gI3skc2VsZWN0b3J9IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItbWFpbi1ibHVlO1xuICB9XG4gIGJvZHkudGhlbWUtb3JhbmdlI3skYm9keS1maWx0ZXJ9ICN7JHNlbGVjdG9yfSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLW1haW4tcmVkO1xuICB9XG4gIGJvZHkudGhlbWUtZ3JlZW4jeyRib2R5LWZpbHRlcn0gI3skc2VsZWN0b3J9IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItbWFpbi1ncmV5O1xuICB9XG4gIGJvZHkudGhlbWUtcGluayN7JGJvZHktZmlsdGVyfSAjeyRzZWxlY3Rvcn0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1tYWluLXBpbms7XG4gIH1cbn1cblxuLy8gc3VwcG9ydCBjb2xvcnNcblxuQG1peGluIHRoZW1lZC1zdXBwb3J0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHRoZW1lLWRlZmF1bHQtc3VwcG9ydDtcblxuICBib2R5LnRoZW1lLXllbGxvdyAmIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGhlbWUteWVsbG93LXN1cHBvcnQ7XG4gIH1cbiAgYm9keS50aGVtZS1wdXJwbGUgJiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHRoZW1lLXB1cnBsZS1zdXBwb3J0O1xuICB9XG4gIGJvZHkudGhlbWUtYmx1ZSAmIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGhlbWUtYmx1ZS1zdXBwb3J0O1xuICB9XG4gIGJvZHkudGhlbWUtb3JhbmdlICYge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR0aGVtZS1vcmFuZ2Utc3VwcG9ydDtcbiAgfVxuICBib2R5LnRoZW1lLWdyZWVuICYge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR0aGVtZS1ncmVlbi1zdXBwb3J0O1xuICB9XG4gIGJvZHkudGhlbWUtcGluayAmIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGhlbWUtcGluay1zdXBwb3J0O1xuICB9XG59XG5cbi8vIHNpZ25hbCBjb2xvcnNcblxuQG1peGluIHRoZW1lZC1zaWduYWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGhlbWUtZGVmYXVsdC1zaWduYWw7XG5cbiAgYm9keS50aGVtZS15ZWxsb3cgJiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHRoZW1lLXllbGxvdy1zaWduYWw7XG4gIH1cbiAgYm9keS50aGVtZS1wdXJwbGUgJiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHRoZW1lLXB1cnBsZS1zaWduYWw7XG4gIH1cbiAgYm9keS50aGVtZS1ibHVlICYge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR0aGVtZS1ibHVlLXNpZ25hbDtcbiAgfVxuICBib2R5LnRoZW1lLW9yYW5nZSAmIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGhlbWUtb3JhbmdlLXNpZ25hbDtcbiAgfVxuICBib2R5LnRoZW1lLWdyZWVuICYge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR0aGVtZS1ncmVlbi1zaWduYWw7XG4gIH1cbiAgYm9keS50aGVtZS1waW5rICYge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR0aGVtZS1waW5rLXNpZ25hbDtcbiAgfVxufVxuXG4vLyBmb3IgaWNvbnNcblxuQG1peGluIHRoZW1lZC1zaWduYWwtY29sb3Ige1xuICBjb2xvcjogJHRoZW1lLWRlZmF1bHQtc2lnbmFsO1xuXG4gIGJvZHkudGhlbWUteWVsbG93ICYge1xuICAgIGNvbG9yOiAkdGhlbWUteWVsbG93LXNpZ25hbDtcbiAgfVxuICBib2R5LnRoZW1lLXB1cnBsZSAmIHtcbiAgICBjb2xvcjogJHRoZW1lLXB1cnBsZS1zaWduYWw7XG4gIH1cbiAgYm9keS50aGVtZS1ibHVlICYge1xuICAgIGNvbG9yOiAkdGhlbWUtYmx1ZS1zaWduYWw7XG4gIH1cbiAgYm9keS50aGVtZS1vcmFuZ2UgJiB7XG4gICAgY29sb3I6ICR0aGVtZS1vcmFuZ2Utc2lnbmFsO1xuICB9XG4gIGJvZHkudGhlbWUtZ3JlZW4gJiB7XG4gICAgY29sb3I6ICR0aGVtZS1ncmVlbi1zaWduYWw7XG4gIH1cbiAgYm9keS50aGVtZS1waW5rICYge1xuICAgIGNvbG9yOiAkdGhlbWUtcGluay1zaWduYWw7XG4gIH1cbn1cblxuQG1peGluIHRoZW1lZC1zaWduYWwtZmlsbCB7XG4gIGZpbGw6ICR0aGVtZS1kZWZhdWx0LXN1cHBvcnQ7XG5cbiAgYm9keS50aGVtZS15ZWxsb3cgJiB7XG4gICAgZmlsbDogJHRoZW1lLXllbGxvdy1zdXBwb3J0O1xuICB9XG4gIGJvZHkudGhlbWUtcHVycGxlICYge1xuICAgIGZpbGw6ICR0aGVtZS1wdXJwbGUtc3VwcG9ydDtcbiAgfVxuICBib2R5LnRoZW1lLWJsdWUgJiB7XG4gICAgZmlsbDogJHRoZW1lLWJsdWUtc3VwcG9ydDtcbiAgfVxuICBib2R5LnRoZW1lLW9yYW5nZSAmIHtcbiAgICBmaWxsOiAkdGhlbWUtb3JhbmdlLXN1cHBvcnQ7XG4gIH1cbiAgYm9keS50aGVtZS1ncmVlbiAmIHtcbiAgICBmaWxsOiAkdGhlbWUtZ3JlZW4tc3VwcG9ydDtcbiAgfVxuICBib2R5LnRoZW1lLXBpbmsgJiB7XG4gICAgZmlsbDogJHRoZW1lLXBpbmstc3VwcG9ydDtcbiAgfVxufVxuXG5AbWl4aW4gdGhlbWVkLXN1cHBvcnQtY29sb3Ige1xuICBjb2xvcjogJHRoZW1lLWRlZmF1bHQtc3VwcG9ydDtcblxuICBib2R5LnRoZW1lLXllbGxvdyAmIHtcbiAgICBjb2xvcjogJHRoZW1lLXllbGxvdy1zdXBwb3J0O1xuICB9XG4gIGJvZHkudGhlbWUtcHVycGxlICYge1xuICAgIGNvbG9yOiAkdGhlbWUtcHVycGxlLXN1cHBvcnQ7XG4gIH1cbiAgYm9keS50aGVtZS1ibHVlICYge1xuICAgIGNvbG9yOiAkdGhlbWUtYmx1ZS1zdXBwb3J0O1xuICB9XG4gIGJvZHkudGhlbWUtb3JhbmdlICYge1xuICAgIGNvbG9yOiAkdGhlbWUtb3JhbmdlLXN1cHBvcnQ7XG4gIH1cbiAgYm9keS50aGVtZS1ncmVlbiAmIHtcbiAgICBjb2xvcjogJHRoZW1lLWdyZWVuLXN1cHBvcnQ7XG4gIH1cbiAgYm9keS50aGVtZS1waW5rICYge1xuICAgIGNvbG9yOiAkdGhlbWUtcGluay1zdXBwb3J0O1xuICB9XG59XG5cbi8vIGJveC1zaGFkb3cgY29sb3JzXG4vLyBOT1RFOiB3ZSBjYW4gcHJvYmFibHkgbG9zZSB0aGVzZSBhZnRlciB0aGUgcmVkZXNpZ24gaXMgZmluaXNoZWRcbiRkZWZhdWx0LWJveC1zaGFkb3ctaW5zZXQ6IDA7XG5AbWl4aW4gdGhlbWVkLWJveC1zaGFkb3coJG9wYWNpdHk6IDAuNSxcbiRob2ZmOiAkZGVmYXVsdC1ib3gtc2hhZG93LWgtb2Zmc2V0LFxuJHZvZmY6ICRkZWZhdWx0LWJveC1zaGFkb3ctdi1vZmZzZXQsXG4kYmx1cjogJGRlZmF1bHQtYm94LXNoYWRvdy1ibHVyLFxuJHNwcmVhZDogJGRlZmF1bHQtYm94LXNoYWRvdy1zcHJlYWQsXG4kaW5zZXQ6ICRkZWZhdWx0LWJveC1zaGFkb3ctaW5zZXQpIHtcbiAgYm94LXNoYWRvdzogcmdiYSgkdGhlbWUtZGVmYXVsdC1jb2xvciwgJG9wYWNpdHkpICRob2ZmICR2b2ZmICRibHVyICRzcHJlYWQ7XG5cbiAgYm9keS50aGVtZS15ZWxsb3cgJiB7XG4gICAgYm94LXNoYWRvdzogcmdiYSgkY29sb3ItbWFpbi15ZWxsb3csICRvcGFjaXR5KSAkaG9mZiAkdm9mZiAkYmx1ciAkc3ByZWFkO1xuICB9XG4gIGJvZHkudGhlbWUtcHVycGxlICYge1xuICAgIGJveC1zaGFkb3c6IHJnYmEoJGNvbG9yLW1haW4tcGluaywgJG9wYWNpdHkpICRob2ZmICR2b2ZmICRibHVyICRzcHJlYWQ7XG4gIH1cbiAgYm9keS50aGVtZS1ibHVlICYge1xuICAgIGJveC1zaGFkb3c6IHJnYmEoJGNvbG9yLW1haW4tYmx1ZSwgJG9wYWNpdHkpICRob2ZmICR2b2ZmICRibHVyICRzcHJlYWQ7XG4gIH1cbiAgYm9keS50aGVtZS1vcmFuZ2UgJiB7XG4gICAgYm94LXNoYWRvdzogcmdiYSgkY29sb3ItbWFpbi1yZWQsICRvcGFjaXR5KSAkaG9mZiAkdm9mZiAkYmx1ciAkc3ByZWFkO1xuICB9XG4gIGJvZHkudGhlbWUtZ3JlZW4gJiB7XG4gICAgYm94LXNoYWRvdzogcmdiYSgkY29sb3ItbWFpbi1ncmVlbiwgJG9wYWNpdHkpICRob2ZmICR2b2ZmICRibHVyICRzcHJlYWQ7XG4gIH1cbiAgYm9keS50aGVtZS1waW5rICYge1xuICAgIGJveC1zaGFkb3c6IHJnYmEoJGNvbG9yLW1haW4tcGluaywgJG9wYWNpdHkpICRob2ZmICR2b2ZmICRibHVyICRzcHJlYWQ7XG4gIH1cbn1cbiIsIiRleHBlcmltZW50YWwtc3VwcG9ydC1mb3ItbW96aWxsYSA6IHRydWUgIWRlZmF1bHQ7XG4kZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLXdlYmtpdCA6IHRydWUgIWRlZmF1bHQ7XG4kc3VwcG9ydC1mb3Itb3JpZ2luYWwtd2Via2l0LWdyYWRpZW50cyA6IGZhbHNlICFkZWZhdWx0O1xuJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1vcGVyYSA6IGZhbHNlICFkZWZhdWx0O1xuJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1taWNyb3NvZnQgOiB0cnVlICFkZWZhdWx0O1xuJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1raHRtbCA6IGZhbHNlICFkZWZhdWx0O1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogTXlGb250cyBXZWJmb250IEJ1aWxkIElEIDI3MDA3NjQsIDIwMTMtMTItMDNUMTE6Mzg6MTAtMDUwMFxuICpcbiAqIFRoZSBmb250cyBsaXN0ZWQgaW4gdGhpcyBub3RpY2UgYXJlIHN1YmplY3QgdG8gdGhlIEVuZCBVc2VyIExpY2Vuc2VcbiAqIEFncmVlbWVudChzKSBlbnRlcmVkIGludG8gYnkgdGhlIHdlYnNpdGUgb3duZXIuIEFsbCBvdGhlciBwYXJ0aWVzIGFyZVxuICogZXhwbGljaXRseSByZXN0cmljdGVkIGZyb20gdXNpbmcgdGhlIExpY2Vuc2VkIFdlYmZvbnRzKHMpLlxuICpcbiAqIFlvdSBtYXkgb2J0YWluIGEgdmFsaWQgbGljZW5zZSBhdCB0aGUgVVJMcyBiZWxvdy5cbiAqXG4gKiBXZWJmb250OiBDb3JiZWwgQm9sZCBJdGFsaWMgYnkgQXNjZW5kZXJcbiAqIFVSTDogaHR0cDovL3d3dy5teWZvbnRzLmNvbS9mb250cy9hc2NlbmRlci9jb3JiZWwvYm9sZC1pdGFsaWMvXG4gKlxuICogV2ViZm9udDogQ29yYmVsIGJ5IEFzY2VuZGVyXG4gKiBVUkw6IGh0dHA6Ly93d3cubXlmb250cy5jb20vZm9udHMvYXNjZW5kZXIvY29yYmVsL3JlZ3VsYXIvXG4gKlxuICogV2ViZm9udDogQ29yYmVsIEJvbGQgYnkgQXNjZW5kZXJcbiAqIFVSTDogaHR0cDovL3d3dy5teWZvbnRzLmNvbS9mb250cy9hc2NlbmRlci9jb3JiZWwvYm9sZC9cbiAqXG4gKiBXZWJmb250OiBDb3JiZWwgSXRhbGljIGJ5IEFzY2VuZGVyXG4gKiBVUkw6IGh0dHA6Ly93d3cubXlmb250cy5jb20vZm9udHMvYXNjZW5kZXIvY29yYmVsL2l0YWxpYy9cbiAqXG4gKlxuICogTGljZW5zZTogaHR0cDovL3d3dy5teWZvbnRzLmNvbS92aWV3bGljZW5zZT90eXBlPXdlYiZidWlsZGlkPTI3MDA3NjRcbiAqIExpY2Vuc2VkIHBhZ2V2aWV3czogMjUwLDAwMFxuICogV2ViZm9udHMgY29weXJpZ2h0OiAmI3gwMEE5OyAyMDA3IE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiDCqSAyMDEzIE15Rm9udHMgSW5jXG4qL1xuXG5cbi8qIEBpbXBvcnQgbXVzdCBiZSBhdCB0b3Agb2YgZmlsZSwgb3RoZXJ3aXNlIENTUyB3aWxsIG5vdCB3b3JrICovXG5cbkBmb250LWZhY2Uge2ZvbnQtZmFtaWx5OiAnQ29yYmVsJztmb250LXdlaWdodDogYm9sZDtmb250LXN0eWxlOiBpdGFsaWM7c3JjOiB1cmwoJy4uL2ZvbnRzL2NvcmJlbC8yOTM1RENfMF8wLmVvdCcpO3NyYzogdXJsKCcuLi9mb250cy9jb3JiZWwvMjkzNURDXzBfMC5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLHVybCgnLi4vZm9udHMvY29yYmVsLzI5MzVEQ18wXzAud29mZicpIGZvcm1hdCgnd29mZicpLHVybCgnLi4vZm9udHMvY29yYmVsLzI5MzVEQ18wXzAudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLHVybCgnLi4vZm9udHMvY29yYmVsLzI5MzVEQ18wXzAuc3ZnI3dmJykgZm9ybWF0KCdzdmcnKTt9XG5cblxuQGZvbnQtZmFjZSB7Zm9udC1mYW1pbHk6ICdDb3JiZWwnO2ZvbnQtd2VpZ2h0OiBub3JtYWw7Zm9udC1zdHlsZTogbm9ybWFsO3NyYzogdXJsKCcuLi9mb250cy9jb3JiZWwvMjkzNURDXzFfMC5lb3QnKTtzcmM6IHVybCgnLi4vZm9udHMvY29yYmVsLzI5MzVEQ18xXzAuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSx1cmwoJy4uL2ZvbnRzL2NvcmJlbC8yOTM1RENfMV8wLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSx1cmwoJy4uL2ZvbnRzL2NvcmJlbC8yOTM1RENfMV8wLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSx1cmwoJy4uL2ZvbnRzL2NvcmJlbC8yOTM1RENfMV8wLnN2ZyN3ZicpIGZvcm1hdCgnc3ZnJyk7fVxuXG5cbkBmb250LWZhY2Uge2ZvbnQtZmFtaWx5OiAnQ29yYmVsJztmb250LXdlaWdodDogYm9sZDtmb250LXN0eWxlOiBub3JtYWw7c3JjOiB1cmwoJy4uL2ZvbnRzL2NvcmJlbC8yOTM1RENfMl8wLmVvdCcpO3NyYzogdXJsKCcuLi9mb250cy9jb3JiZWwvMjkzNURDXzJfMC5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLHVybCgnLi4vZm9udHMvY29yYmVsLzI5MzVEQ18yXzAud29mZicpIGZvcm1hdCgnd29mZicpLHVybCgnLi4vZm9udHMvY29yYmVsLzI5MzVEQ18yXzAudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLHVybCgnLi4vZm9udHMvY29yYmVsLzI5MzVEQ18yXzAuc3ZnI3dmJykgZm9ybWF0KCdzdmcnKTt9XG5cblxuQGZvbnQtZmFjZSB7Zm9udC1mYW1pbHk6ICdDb3JiZWwnO2ZvbnQtd2VpZ2h0OiBub3JtYWw7Zm9udC1zdHlsZTogaXRhbGljO3NyYzogdXJsKCcuLi9mb250cy9jb3JiZWwvMjkzNURDXzNfMC5lb3QnKTtzcmM6IHVybCgnLi4vZm9udHMvY29yYmVsLzI5MzVEQ18zXzAuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSx1cmwoJy4uL2ZvbnRzL2NvcmJlbC8yOTM1RENfM18wLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSx1cmwoJy4uL2ZvbnRzL2NvcmJlbC8yOTM1RENfM18wLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSx1cmwoJy4uL2ZvbnRzL2NvcmJlbC8yOTM1RENfM18wLnN2ZyN3ZicpIGZvcm1hdCgnc3ZnJyk7fVxuXG4vKlxuICogT1RIRVIgRk9OVFM6IEtsYXZpa2EgYW5kIGljb25zXG4gKi9cblxuJGFwaTogZmFsc2UgIWRlZmF1bHQ7XG5cbkBpZihub3QgJGFwaSl7XG5cbiAgQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6ICdLbGF2aWthJztcbiAgICBzcmM6IHVybCgnLi4vZm9udHMva2xhdmlrYS1ib2xkLXdlYmZvbnQuZW90Jyk7XG4gICAgc3JjOiBsb2NhbCgn4pi6JyksIHVybCgnLi4vZm9udHMva2xhdmlrYS1ib2xkLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJy4uL2ZvbnRzL2tsYXZpa2EtYm9sZC13ZWJmb250LnN2ZycpIGZvcm1hdCgnc3ZnJyk7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICB9XG4gIEBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAnS2xhdmlrYSc7XG4gICAgc3JjOiB1cmwoJy4uL2ZvbnRzL2tsYXZpa2EtcmVndWxhci13ZWJmb250LmVvdCcpO1xuICAgIHNyYzogbG9jYWwoJ+KYuicpLCB1cmwoJy4uL2ZvbnRzL2tsYXZpa2EtcmVndWxhci13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCcuLi9mb250cy9rbGF2aWthLXJlZ3VsYXItd2ViZm9udC5zdmcnKSBmb3JtYXQoJ3N2ZycpO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICB9XG5cbiAgLyoqXG4gICAqIEBsaWNlbnNlXG4gICAqIE15Rm9udHMgV2ViZm9udCBCdWlsZCBJRCAzMTg3MjUwLCAyMDE2LTAzLTE2VDA0OjI1OjA0LTA0MDBcbiAgICpcbiAgICogVGhlIGZvbnRzIGxpc3RlZCBpbiB0aGlzIG5vdGljZSBhcmUgc3ViamVjdCB0byB0aGUgRW5kIFVzZXIgTGljZW5zZVxuICAgKiBBZ3JlZW1lbnQocykgZW50ZXJlZCBpbnRvIGJ5IHRoZSB3ZWJzaXRlIG93bmVyLiBBbGwgb3RoZXIgcGFydGllcyBhcmVcbiAgICogZXhwbGljaXRseSByZXN0cmljdGVkIGZyb20gdXNpbmcgdGhlIExpY2Vuc2VkIFdlYmZvbnRzKHMpLlxuICAgKlxuICAgKiBZb3UgbWF5IG9idGFpbiBhIHZhbGlkIGxpY2Vuc2UgYXQgdGhlIFVSTHMgYmVsb3cuXG4gICAqXG4gICAqIFdlYmZvbnQ6IENhbXB0b24tQm9vayBieSBSZW5lIEJpZWRlclxuICAgKiBVUkw6IGh0dHA6Ly93d3cubXlmb250cy5jb20vZm9udHMvcmVuZS1iaWVkZXIvY2FtcHRvbi9ib29rL1xuICAgKlxuICAgKiBXZWJmb250OiBDYW1wdG9uLU1lZGl1bSBieSBSZW5lIEJpZWRlclxuICAgKiBVUkw6IGh0dHA6Ly93d3cubXlmb250cy5jb20vZm9udHMvcmVuZS1iaWVkZXIvY2FtcHRvbi9tZWRpdW0vXG4gICAqXG4gICAqXG4gICAqIExpY2Vuc2U6IGh0dHA6Ly93d3cubXlmb250cy5jb20vdmlld2xpY2Vuc2U/dHlwZT13ZWImYnVpbGRpZD0zMTg3MjUwXG4gICAqIExpY2Vuc2VkIHBhZ2V2aWV3czogMTAsMDAwXG4gICAqIFdlYmZvbnRzIGNvcHlyaWdodDogQ29weXJpZ2h0ICYjeDAwQTk7IDIwMTQgYnkgUmVuJiN4MDBFOTsgQmllZGVyLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICAgKlxuICAgKiDCqSAyMDE2IE15Rm9udHMgSW5jXG4gICovXG5cblxuICAvKiBAaW1wb3J0IG11c3QgYmUgYXQgdG9wIG9mIGZpbGUsIG90aGVyd2lzZSBDU1Mgd2lsbCBub3Qgd29yayAqL1xuICBAZm9udC1mYWNlIHtmb250LWZhbWlseTogJ0NhbXB0b24gQm9vayc7c3JjOiB1cmwoJy9zdGF0aWMvZm9udHMvY2FtcHRvbi13ZWJmb250cy8zMEUxQUVfMF8wLmVvdCcpO3NyYzogdXJsKCcvc3RhdGljL2ZvbnRzL2NhbXB0b24td2ViZm9udHMvMzBFMUFFXzBfMC5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLHVybCgnL3N0YXRpYy9mb250cy9jYW1wdG9uLXdlYmZvbnRzLzMwRTFBRV8wXzAud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksdXJsKCcvc3RhdGljL2ZvbnRzL2NhbXB0b24td2ViZm9udHMvMzBFMUFFXzBfMC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksdXJsKCcvc3RhdGljL2ZvbnRzL2NhbXB0b24td2ViZm9udHMvMzBFMUFFXzBfMC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyk7fVxuICBAZm9udC1mYWNlIHtmb250LWZhbWlseTogJ0NhbXB0b24gTWVkaXVtJztzcmM6IHVybCgnL3N0YXRpYy9mb250cy9jYW1wdG9uLXdlYmZvbnRzLzMwRTFBRV8xXzAuZW90Jyk7c3JjOiB1cmwoJy9zdGF0aWMvZm9udHMvY2FtcHRvbi13ZWJmb250cy8zMEUxQUVfMV8wLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksdXJsKCcvc3RhdGljL2ZvbnRzL2NhbXB0b24td2ViZm9udHMvMzBFMUFFXzFfMC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSx1cmwoJy9zdGF0aWMvZm9udHMvY2FtcHRvbi13ZWJmb250cy8zMEUxQUVfMV8wLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSx1cmwoJy9zdGF0aWMvZm9udHMvY2FtcHRvbi13ZWJmb250cy8zMEUxQUVfMV8wLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKTt9XG5cbiAgLy9AZm9udC1mYWNlIHtcbiAgLy8gIGZvbnQtZmFtaWx5OiAnQ2FtcHRvbiBCb29rJztcbiAgLy8gIHNyYzogdXJsKCcuLi9mb250cy9jYW1wdG9uL2Jvb2sub3RmJyk7XG4gIC8vICBmb250LXdlaWdodDogbm9ybWFsO1xuICAvLyAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAvL31cbiAgLy9cbiAgLy9AZm9udC1mYWNlIHtcbiAgLy8gIGZvbnQtZmFtaWx5OiAnQ2FtcHRvbiBNZWRpdW0nO1xuICAvLyAgc3JjOiB1cmwoJy4uL2ZvbnRzL2NhbXB0b24vbWVkaXVtLm90ZicpO1xuICAvLyAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgLy8gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgLy99XG4gIC8vXG4gIC8vQGZvbnQtZmFjZSB7XG4gIC8vICBmb250LWZhbWlseTogJ0NhbXB0b24gU2VtaUJvbGQnO1xuICAvLyAgc3JjOiB1cmwoJy4uL2ZvbnRzL2NhbXB0b24vc2VtaWJvbGQub3RmJyk7XG4gIC8vICBmb250LXdlaWdodDogbm9ybWFsO1xuICAvLyAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAvL31cblxufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdpY29ucyc7XG5cbiAgc3JjOiB1cmwoJy9zdGF0aWMvZm9udHMvaWNvbW9vbi50dGY/bmVtbycpIGZvcm1hdCgndHJ1ZXR5cGUnKTtcblxuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5cblxuJGtsYXZpa2E6IEtsYXZpa2EsIHNhbnMtc2VyaWY7XG4kY29yYmVsOiBDb3JiZWwsIHNhbnMtc2VyaWY7XG4kY29yYmVsLXJlZ3VsYXI6IENvcmJlbCBXMDEgUmVndWxhciwgc2Fucy1zZXJpZjtcbiRjb3JiZWwtYm9sZDogQ29yYmVsIFcwMSBCb2xkLCBzYW5zLXNlcmlmO1xuJGNvcmJlbC1pdGFsaWM6IENvcmJlbCBXMDEgSXRhbGljLCBzYW5zLXNlcmlmO1xuJGNvcmJlbC1ib2xkLWl0YWxpYzogQ29yYmVsIFcwMSBCb2xkIEl0YWxpYywgc2Fucy1zZXJpZjtcblxuJGZvbnQtY2FtcHRvbi1ib29rOiBDYW1wdG9uIEJvb2ssIHNhbnMtc2VyaWY7XG4kZm9udC1jYW1wdG9uLW1lZGl1bTogQ2FtcHRvbiBNZWRpdW0sIHNhbnMtc2VyaWY7XG4kZm9udC1jYW1wdG9uLXNlbWlib2xkOiBDYW1wdG9uIFNlbWlCb2xkLCBzYW5zLXNlcmlmO1xuXG5cbiRkZWZhdWx0LWZvbnQtc2l6ZTogMTlweDtcblxuLy8gUmVkZXNpZ25cblxuJGZvbnQtYmFzZSAgOiBcIkhlbHZldGljYSBOZXVlXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcbiIsIiR0YXJnZXQtZGVidWc6IHRydWU7XG5cbi8vIFNldHRpbmdzXG5cbiR0YXJnZXQtaGFzLWhvdmVyOiB0cnVlICFkZWZhdWx0OyAvLyB0cnVlIGJ5IGRlZmF1bHRcblxuJHRhcmdldC10YWJsZXQtbGFuZHNjYXBlLXdpZHRoOiAxMDI0cHg7XG4kdGFyZ2V0LXRhYmxldC1wb3J0cmFpdC13aWR0aDogNzY4cHg7XG4kdGFyZ2V0LW1vYmlsZS1wb3J0cmFpdC13aWR0aDogMzIwcHg7XG5cbiR0YXJnZXQtdGFibGV0LWxhbmRzY2FwZS1icmVha3BvaW50OiAkdGFyZ2V0LXRhYmxldC1sYW5kc2NhcGUtd2lkdGg7XG4kdGFyZ2V0LXRhYmxldC1wb3J0cmFpdC1icmVha3BvaW50OiAoKCR0YXJnZXQtdGFibGV0LWxhbmRzY2FwZS13aWR0aCArICR0YXJnZXQtdGFibGV0LXBvcnRyYWl0LXdpZHRoKS8yKTtcbiR0YXJnZXQtbW9iaWxlLWJyZWFrcG9pbnQ6ICgoJHRhcmdldC10YWJsZXQtcG9ydHJhaXQtd2lkdGggKyAkdGFyZ2V0LW1vYmlsZS1wb3J0cmFpdC13aWR0aCkvMik7XG5cbi8vIFBsYWNlaG9sZGVycyAmIG1peGluc1xuXG5AbWl4aW4gZGVza3RvcCB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiAkdGFyZ2V0LXRhYmxldC1sYW5kc2NhcGUtYnJlYWtwb2ludCArIDFweCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiB0YWJsZXQtbGFuZHNjYXBlIHtcbiAgQG1lZGlhICh3aWR0aDogJHRhcmdldC10YWJsZXQtbGFuZHNjYXBlLWJyZWFrcG9pbnQpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gdGFibGV0LXBvcnRyYWl0IHtcbiAgQG1lZGlhIChtYXgtd2lkdGg6ICR0YXJnZXQtdGFibGV0LWxhbmRzY2FwZS13aWR0aCAtIDFweCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBtb2JpbGUge1xuICBAbWVkaWEgKG1heC13aWR0aDogJHRhcmdldC1tb2JpbGUtYnJlYWtwb2ludCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBtb2JpbGUtbGFuZHNjYXBlIHtcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDk5OXB4KSBhbmQgKG1heC1oZWlnaHQ6IDUyOXB4KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cbiIsIlxuLy9cbi8vIERlZmluZSB6LWluZGV4IGxheWVyc1xuLy9cblxuJGxheWVyLWxpZ2h0Ym94OiAxMzM3O1xuJGxheWVyLWhlYWRlcjogNzAwO1xuJGxheWVyLW1lbnUtb3ZlcmxheTogNjAwO1xuJGxheWVyLW1haW4tbWVudTogNjAwO1xuJGxheWVyLXNwZWNpYWw6IDQwMDtcbiRsYXllci1uYXZpZ2F0aW9uOiAzMDA7XG4kbGF5ZXItY29udGVudC13aWRnZXQ6IDIwMDtcbiRsYXllci1jb250ZW50OiAxMDA7XG4iLCIvL1xuLy8gQmFzZSBsYXlvdXQgY2xhc3NlcyBhbmQgbWl4aW5zXG4vL1xuXG4kZ3JpZC10aWxlOiA2MHB4O1xuJGdyaWQtdGlsZS1sYW5kc2NhcGU6IDYwcHg7IC8vIG9wdGltaXplZCBmb3IgaXBhZFxuJGdyaWQtdGlsZS1wb3J0cmFpdDogNDBweDsgLy8gb3B0aW1pemVkIGZvciBpcGFkXG4kZ3JpZC10aWxlLW1vYmlsZTogNDBweDsgLy8gVE9ETzogcHJvYmFibHkgZGlmZmVyZW50IG1ldGhvZFxuXG4kZ3V0dGVyOiAyMHB4O1xuJGd1dHRlci1sYW5kc2NhcGU6IDIwcHg7XG4kZ3V0dGVyLXBvcnRyYWl0OiAyMHB4O1xuJGd1dHRlci1tb2JpbGU6IDIwcHg7XG5cbiRjb2x1bW4tY291bnQ6IDEyO1xuJGNvbHVtbi1jb3VudC1sYW5kc2NhcGU6IDEyO1xuJGNvbHVtbi1jb3VudC1wb3J0cmFpdDogMTI7XG4kY29sdW1uLWNvdW50LW1vYmlsZTogMTI7XG5cbiRzaWRlLXBhZGRpbmctZGVza3RvcDogJGd1dHRlciArICRncmlkLXRpbGU7XG4kc2lkZS1wYWRkaW5nLW1vYmlsZTogJGd1dHRlci1tb2JpbGU7XG5cbi8vIExvZ29cbiRsb2dvZmFjdG9yOiAoMjUwLzEyODApIC8gMTAwO1xuJGxvZ29zaXplOiAoMjUwLzEyODApICogMTAwJTtcbiRsb2dvbWF4d2lkdGg6IDMwMHB4O1xuJGxvZ29taW5zaXplOiAxMDBweDtcblxuLy8gQnJlYWtwb2ludCBmb3Igd2hlbiB0aGUgbWF4LXdpZHRoIHdpbGwgYmUgaW4gZWZmZWN0XG4kYnJlYWtwb2ludC1tYXhsb2dvd2lkdGg6IDE1MzZweDsgLy8gU2ljayBtYXRoIHZlcnNpb246ICN7JGxvZ29tYXh3aWR0aCAvICRsb2dvc2l6ZSAqIDEwMCV9O1xuXG4vLyBCbG9ja3MsIHVzZWQgZm9yIGV4YW1wbGUgb24gaG9tZSBwYWdlXG4kYmxvY2stc2l6ZTogJGxvZ29zaXplICogMC42O1xuJGJsb2NrLXNpemUtbW9iaWxlOiAxMDBweDtcblxuLy8gSGVhZGVyXG4kaGVhZGVyLXdpdGgtaW1hZ2Utc2l6ZTogNjIwcHg7XG4kaGVhZGVyLXdpdGgtaW1hZ2Utc2l6ZS1zaW1wbGU6IDUxMHB4O1xuJGhlYWRlci13aXRoLWltYWdlLXNpemUtbW9iaWxlOiAyOTBweDtcbiRoZWFkZXItd2l0aC1pbWFnZS1zaXplLXNpbXBsZS1tb2JpbGU6IDIzNXB4O1xuJGhlYWRlci1oZWlnaHQtc2ltcGxlLW92ZXJ2aWV3LXBhZ2U6IDE2MHB4O1xuJGhlYWRlci1oZWlnaHQtZXZlbnRsaXN0OiAyMjVweDtcblxuJG1heC13aWR0aC0tc21hbGw6IDYyMHB4OyAvLyAyICogMzAwICsgMSAqIDIwXG4kbWF4LXdpZHRoOiA5NDBweDtcbiR3aWR0aDogMTAwJTtcbiRtYXgtd2lkdGgtLWxhcmdlOiAxMjYwcHg7ICAvLyA0ICogMzAwICsgMyAqIDIwXG5cbi8vIFBhZGRpbmdzICYgbWFyZ2luc1xuJG1hcmdpbjogMzVweDtcbiRtYXJnaW4tc21hbGw6IDIwcHg7XG5cbkBtaXhpbiBtYXgtd2lkdGgoJGNlbnRlcjpmYWxzZSwgJGxhcmdlOmZhbHNlKSB7XG4gIEBpZiAkY2VudGVyIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIH1cbiAgQGlmICRsYXJnZSB7XG4gICAgbWF4LXdpZHRoOiAkbWF4LXdpZHRoLS1sYXJnZTtcbiAgfSBAZWxzZSB7XG4gICAgbWF4LXdpZHRoOiAkbWF4LXdpZHRoO1xuICB9XG4gIHdpZHRoOiAkd2lkdGg7XG5cbiAgQGlmICRsYXJnZSB7XG4gICAgQGluY2x1ZGUgYmVsb3coJGJyZWFrcG9pbnQtbGFyZ2UpIHtcbiAgICAgIG1heC13aWR0aDogJG1heC13aWR0aDtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBiZWxvdygkYnJlYWtwb2ludC1tZWRpdW0pIHtcbiAgICBtYXgtd2lkdGg6ICRtYXgtd2lkdGgtLXNtYWxsO1xuICB9XG59XG5cbkBtaXhpbiBjb250ZW50LXdyYXBwZXIge1xuICBAaW5jbHVkZSBiZWxvdygkYnJlYWtwb2ludC1wb3J0cmFpdCkge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5cbkBtaXhpbiBjb250ZW50LXdyYXBwZXItYWJzb2x1dGUge1xuICBAaW5jbHVkZSBjb250ZW50LXdyYXBwZXI7XG4gIGxlZnQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDA7XG59XG5cbkBtaXhpbiBjb250ZW50LWNvbHVtbiB7XG4gIHdpZHRoOiA3NjBweDtcblxuICBAaW5jbHVkZSBiZWxvdygkYnJlYWtwb2ludC1sYW5kc2NhcGUpIHtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gI3skZ3JpZC10aWxlLWxhbmRzY2FwZSAqIDN9KTtcbiAgfVxuXG4gIEBpbmNsdWRlIGJlbG93KCRicmVha3BvaW50LXBvcnRyYWl0KSB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtICN7JGdyaWQtdGlsZS1wb3J0cmFpdCAqIDN9KTtcbiAgfVxuXG4gIEBpbmNsdWRlIGJlbG93KCRicmVha3BvaW50LW1vYmlsZSkge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAjeyRncmlkLXRpbGUtbW9iaWxlICogMn0pO1xuICB9XG59XG5cbi8vIEFkZCBwYWRkaW5nIG9yIG1hcmdpbiBiYXNlZCBvbiBncmlkLXRpbGVzXG5AbWl4aW4gZ3JpZC1wYWRkaW5nKCRjb2x1bW5zOjEsICRtb2RlOlwicGFkZGluZ1wiKSB7XG4gIEBpZiAkbW9kZSA9PSBcInBhZGRpbmdcIiB7XG4gICAgcGFkZGluZy1sZWZ0OiAkc2lkZS1wYWRkaW5nLWRlc2t0b3A7XG4gICAgcGFkZGluZy1yaWdodDogJHNpZGUtcGFkZGluZy1kZXNrdG9wO1xuICB9IEBlbHNlIGlmICRtb2RlID09IFwibWFyZ2luXCIge1xuICAgIG1hcmdpbi1sZWZ0OiAkc2lkZS1wYWRkaW5nLWRlc2t0b3A7XG4gICAgbWFyZ2luLXJpZ2h0OiAkc2lkZS1wYWRkaW5nLWRlc2t0b3A7XG4gIH0gQGVsc2UgaWYgJG1vZGUgPT0gXCJsZWZ0XCIge1xuICAgIGxlZnQ6ICRzaWRlLXBhZGRpbmctZGVza3RvcDtcbiAgfVxuXG4gIEBpbmNsdWRlIGJlbG93KCRicmVha3BvaW50LWxhbmRzY2FwZSkge1xuICAgIEBpZiAkbW9kZSA9PSBcInBhZGRpbmdcIiB7XG4gICAgICBwYWRkaW5nLWxlZnQ6ICRncmlkLXRpbGUtbGFuZHNjYXBlICsgJGd1dHRlci1sYW5kc2NhcGU7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAkZ3JpZC10aWxlLWxhbmRzY2FwZSArICRndXR0ZXItbGFuZHNjYXBlO1xuICAgIH0gQGVsc2UgaWYgJG1vZGUgPT0gXCJtYXJnaW5cIiB7XG4gICAgICBtYXJnaW4tbGVmdDogJGdyaWQtdGlsZS1sYW5kc2NhcGUgKyAkZ3V0dGVyLWxhbmRzY2FwZTtcbiAgICAgIG1hcmdpbi1yaWdodDogJGdyaWQtdGlsZS1sYW5kc2NhcGUgKyAkZ3V0dGVyLWxhbmRzY2FwZTtcbiAgICB9IEBlbHNlIGlmICRtb2RlID09IFwibGVmdFwiIHtcbiAgICAgIGxlZnQ6ICRncmlkLXRpbGUtbGFuZHNjYXBlICsgJGd1dHRlci1sYW5kc2NhcGU7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgYmVsb3coJGJyZWFrcG9pbnQtcG9ydHJhaXQpIHtcbiAgICBAaWYgJG1vZGUgPT0gXCJwYWRkaW5nXCIge1xuICAgICAgcGFkZGluZy1sZWZ0OiAkZ3JpZC10aWxlLXBvcnRyYWl0ICsgJGd1dHRlci1wb3J0cmFpdDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6ICRncmlkLXRpbGUtcG9ydHJhaXQgKyAkZ3V0dGVyLXBvcnRyYWl0O1xuICAgIH0gQGVsc2UgaWYgJG1vZGUgPT0gXCJtYXJnaW5cIiB7XG4gICAgICBtYXJnaW4tbGVmdDogJGdyaWQtdGlsZS1wb3J0cmFpdCArICRndXR0ZXItcG9ydHJhaXQ7XG4gICAgICBtYXJnaW4tcmlnaHQ6ICRncmlkLXRpbGUtcG9ydHJhaXQgKyAkZ3V0dGVyLXBvcnRyYWl0O1xuICAgIH0gQGVsc2UgaWYgJG1vZGUgPT0gXCJsZWZ0XCIge1xuICAgICAgbGVmdDogJGdyaWQtdGlsZS1wb3J0cmFpdCArICRndXR0ZXItcG9ydHJhaXQ7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgYmVsb3coJGJyZWFrcG9pbnQtbW9iaWxlKSB7XG4gICAgQGlmICRtb2RlID09IFwicGFkZGluZ1wiIHtcbiAgICAgIHBhZGRpbmctbGVmdDogJHNpZGUtcGFkZGluZy1tb2JpbGU7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAkc2lkZS1wYWRkaW5nLW1vYmlsZTtcbiAgICB9IEBlbHNlIGlmICRtb2RlID09IFwibWFyZ2luXCIge1xuICAgICAgbWFyZ2luLWxlZnQ6ICRzaWRlLXBhZGRpbmctbW9iaWxlO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAkc2lkZS1wYWRkaW5nLW1vYmlsZTtcbiAgICB9IEBlbHNlIGlmICRtb2RlID09IFwibGVmdFwiIHtcbiAgICAgIGxlZnQ6ICRzaWRlLXBhZGRpbmctbW9iaWxlO1xuICAgIH1cbiAgfVxufVxuXG4vLyByZXR1cm4gdGhlIGdyaWQgcGFkZGluZyB3aWR0aFxuQG1peGluIGdyaWQtcGFkZGluZy13aWR0aCgpIHtcbiAgd2lkdGg6ICRncmlkLXRpbGUgKyAkZ3V0dGVyO1xuXG4gIEBpbmNsdWRlIGJlbG93KCRicmVha3BvaW50LWxhbmRzY2FwZSkge1xuICAgIHdpZHRoOiAkZ3JpZC10aWxlLWxhbmRzY2FwZSArICRndXR0ZXItbGFuZHNjYXBlO1xuICB9XG5cbiAgQGluY2x1ZGUgYmVsb3coJGJyZWFrcG9pbnQtcG9ydHJhaXQpIHtcbiAgICB3aWR0aDogJGdyaWQtdGlsZS1wb3J0cmFpdCArICRndXR0ZXItcG9ydHJhaXQ7XG4gIH1cblxuICBAaW5jbHVkZSBiZWxvdygkYnJlYWtwb2ludC1tb2JpbGUpIHtcbiAgICB3aWR0aDogJGd1dHRlci1tb2JpbGU7XG4gIH1cbn1cblxuQG1peGluIGxheW91dC1oZWFkZXItMSB7XG4gIHBhZGRpbmctYm90dG9tOiAyMHB4O1xufVxuXG5AbWl4aW4gbGF5b3V0LWhlYWRlci0yIHtcbiAgcGFkZGluZy1ib3R0b206IDMwcHg7XG59XG5cbkBtaXhpbiBsYXlvdXQtaGVhZGVyLTMge1xuICBwYWRkaW5nLWJvdHRvbTogMjBweDtcbn1cblxuQG1peGluIGxheW91dC1oZWFkZXItNCB7XG4gIHBhZGRpbmctYm90dG9tOiAxMHB4O1xufVxuXG5AbWl4aW4gbGF5b3V0LWhlYWRlci01IHtcbiAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbkBtaXhpbiBsYXlvdXQtcGFyYWdyYXBoIHtcbiAgcGFkZGluZy1ib3R0b206IDIwcHg7XG59XG5cbi8vIChNYWluKSB0ZXh0IGJsb2NrIGFkamFjZW50IHRvIGNvbG9yZWQgYmxvY2tcbkBtaXhpbiB0ZXh0LWJsb2NrIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogNDgwcHg7XG5cbiAgQGluY2x1ZGUgYmVsb3coJGJyZWFrcG9pbnQtbWF4bG9nb3dpZHRoKSB7XG4gICAgd2lkdGg6IDM2MHB4O1xuICB9XG5cbiAgQGluY2x1ZGUgYmVsb3coJGJyZWFrcG9pbnQtbW9iaWxlKSB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtICN7JGJsb2NrLXNpemUtbW9iaWxlfSk7XG4gIH1cbn1cblxuQGlmICR3aXRoLWJhc2UtY3NzIHtcbiAgLmNvbnRlbnQtY29sdW1uIHtcbiAgICBAaW5jbHVkZSBjb250ZW50LWNvbHVtbjtcbiAgfVxuXG4gIC5jb250ZW50LWNvbHVtbiB7XG4gICAgQGluY2x1ZGUgY29udGVudC13cmFwcGVyO1xuICB9XG59XG4iLCJAbWl4aW4gaW5wdXQtZmllbGQoJGJvcmRlcjp0cnVlKSB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDUwcHg7XG4gIHBhZGRpbmctbGVmdDogMjBweDtcbiAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgQGlmICRib3JkZXIge1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICRjb2xvci1tYWluLWdyZXk7XG4gICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICB9IEBlbHNlIHtcbiAgICBib3JkZXI6IG5vbmU7XG4gIH1cbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLW1haW4td2hpdGU7XG4gIEBpbmNsdWRlIHR5cG9ncmFwaHktZGVmYXVsdCgpO1xufSIsImh0bWwsIGJvZHksIGRpdiwgc3BhbiwgYXBwbGV0LCBvYmplY3QsIGlmcmFtZSxcbmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsIHAsIGJsb2NrcXVvdGUsIHByZSxcbmEsIGFiYnIsIGFjcm9ueW0sIGFkZHJlc3MsIGJpZywgY2l0ZSwgY29kZSxcbmRlbCwgZGZuLCBlbSwgaW1nLCBpbnMsIGtiZCwgcSwgcywgc2FtcCxcbnNtYWxsLCBzdHJpa2UsIHN0cm9uZywgc3ViLCBzdXAsIHR0LCB2YXIsXG5iLCB1LCBpLCBjZW50ZXIsXG5kbCwgZHQsIGRkLCBvbCwgdWwsIGxpLFxuZmllbGRzZXQsIGZvcm0sIGxhYmVsLCBsZWdlbmQsXG50YWJsZSwgY2FwdGlvbiwgdGJvZHksIHRmb290LCB0aGVhZCwgdHIsIHRoLCB0ZCxcbmFydGljbGUsIGFzaWRlLCBjYW52YXMsIGRldGFpbHMsIGVtYmVkLFxuZmlndXJlLCBmaWdjYXB0aW9uLCBmb290ZXIsIGhlYWRlciwgaGdyb3VwLFxubWVudSwgbmF2LCBvdXRwdXQsIHJ1YnksIHNlY3Rpb24sIHN1bW1hcnksXG50aW1lLCBtYXJrLCBhdWRpbywgdmlkZW8sIGJ1dHRvbiB7XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuXHRtYXJnaW46IDA7XG5cdHBhZGRpbmc6IDA7XG5cdGJvcmRlcjogMDtcblx0Zm9udC1zaXplOiAxMDAlO1xuXHRmb250OiBpbmhlcml0O1xuXHR2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbioge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICY6OmJlZm9yZSwgJjo6YWZ0ZXIge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIH1cbn1cblxuLyogSFRNTDUgZGlzcGxheS1yb2xlIHJlc2V0IGZvciBvbGRlciBicm93c2VycyAqL1xuYXJ0aWNsZSwgYXNpZGUsIGRldGFpbHMsIGZpZ2NhcHRpb24sIGZpZ3VyZSxcbmZvb3RlciwgaGVhZGVyLCBoZ3JvdXAsIG1lbnUsIG5hdiwgc2VjdGlvbiB7XG5cdGRpc3BsYXk6IGJsb2NrO1xufVxuYm9keSB7XG5cdGxpbmUtaGVpZ2h0OiAxO1xufVxuYnV0dG9uIHtcblx0QGluY2x1ZGUgYXBwZWFyYW5jZShub25lKTtcblx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdGJvcmRlci1yYWRpdXM6IDA7XG59XG5vbCwgdWwge1xuXHRsaXN0LXN0eWxlOiBub25lO1xufVxuYmxvY2txdW90ZSwgcSB7XG5cdHF1b3Rlczogbm9uZTtcbn1cbmJsb2NrcXVvdGU6OmJlZm9yZSwgYmxvY2txdW90ZTo6YWZ0ZXIsXG5xOjpiZWZvcmUsIHE6OmFmdGVyIHtcblx0Y29udGVudDogJyc7XG5cdGNvbnRlbnQ6IG5vbmU7XG59XG50YWJsZSB7XG5cdGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG5cdGJvcmRlci1zcGFjaW5nOiAwO1xufVxuYSB7XG4gIGNvbG9yOiBibGFjaztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufSIsIkBtaXhpbiBjb250ZW50LXNlY3Rpb24tYmxvY2soJG1vZGU6XCJwYWRkaW5nXCIpIHtcbiAgQGluY2x1ZGUgZ3JpZC1wYWRkaW5nKCRtb2RlOiRtb2RlKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLW1haW4td2hpdGU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogJGxheWVyLWNvbnRlbnQ7XG59XG5cbkBtaXhpbiBhZGQtc2VjdGlvbi1ib3JkZXIoJGxvY2F0aW9uOidiZWZvcmUnKSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAmOjojeyRsb2NhdGlvbn0ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMnB4O1xuICAgIGhlaWdodDogODRweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Itc2Vjb25kYXJ5LWJsYWNrO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICB9XG59XG4iLCJAbWl4aW4gdHlwb2dyYXBoeS0xIHtcbiAgY29sb3I6ICRjb2xvci1zZWNvbmRhcnktZ3JleTtcbiAgZm9udC1mYW1pbHk6ICRjb3JiZWw7XG4gIGZvbnQtc2l6ZTogMTlweDtcbiAgbGluZS1oZWlnaHQ6IDEyNSU7XG59XG5cbi8vIFJlZGVzaWduXG5cbkBtaXhpbiB0eXBvZ3JhcGh5LWRlZmF1bHQoJGxpbmUtaGVpZ2h0OjI0cHggMjRweCkge1xuICAvL2h5cGhlbnM6IG5vbmU7XG4gIGZvbnQtZmFtaWx5OiAkZm9udC1jYW1wdG9uLWJvb2s7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgbGluZS1oZWlnaHQ6IG50aCgkbGluZS1oZWlnaHQsIDEpO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG5AbWl4aW4gdHlwb2dyYXBoeS1kZWZhdWx0LWJvbGQoJGxpbmUtaGVpZ2h0OjI0cHggMjRweCkge1xuICAvL2h5cGhlbnM6IG5vbmU7XG4gIGZvbnQtZmFtaWx5OiAkZm9udC1jYW1wdG9uLW1lZGl1bTtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBsaW5lLWhlaWdodDogbnRoKCRsaW5lLWhlaWdodCwgMSk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbkBtaXhpbiB0eXBvZ3JhcGh5LXNtYWxsIHtcbiAgQGluY2x1ZGUgdHlwb2dyYXBoeS1kZWZhdWx0O1xuICBmb250LXNpemU6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiAyM3B4O1xufVxuXG5AbWl4aW4gdHlwb2dyYXBoeS1zY2llbmNlLW11c2V1bSB7XG4gIGh5cGhlbnM6IG5vbmU7XG4gIGZvbnQtZmFtaWx5OiAkZm9udC1jYW1wdG9uLWJvb2s7XG4gIGZvbnQtc2l6ZTogNTBweDtcbiAgbGluZS1oZWlnaHQ6IDUycHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbkBtaXhpbiB0eXBvZ3JhcGh5LWhlYWRlci0xIHtcbiAgaHlwaGVuczogbm9uZTtcbiAgZm9udC1mYW1pbHk6ICRmb250LWNhbXB0b24tYm9vaztcbiAgZm9udC1zaXplOiA3MHB4O1xuICBsaW5lLWhlaWdodDogNzJweDtcbiAgd29yZC1icmVhazogbm9ybWFsO1xuXG4gIEBpbmNsdWRlIGJlbG93KDUzMHB4KSB7XG4gICAgZm9udC1zaXplOiA0MHB4O1xuICAgIGxpbmUtaGVpZ2h0OiA0NHB4O1xuICB9XG59XG5cbkBtaXhpbiB0eXBvZ3JhcGh5LWhlYWRlci0yIHtcbiAgaHlwaGVuczogbm9uZTtcbiAgZm9udC1mYW1pbHk6ICRmb250LWNhbXB0b24tYm9vaztcbiAgZm9udC1zaXplOiA1MHB4O1xuICBsaW5lLWhlaWdodDogNTJweDtcblxuICBAaW5jbHVkZSBiZWxvdyg1MzBweCkge1xuICAgIGZvbnQtc2l6ZTogMzJweDtcbiAgICBsaW5lLWhlaWdodDogMzZweDtcbiAgfVxufVxuXG4vLyBGb3IgbXVsdGlsaW5lIHRpdGxlcyB0aGUgYnJlYWtwb2ludCB0byB0aGUgc21hbGxlciBmb250IGlzIGluY3JlYXNlZFxuQG1peGluIHR5cG9ncmFwaHktaGVhZGVyLTItbXVsdGlsaW5lIHtcbiAgaHlwaGVuczogbm9uZTtcbiAgZm9udC1mYW1pbHk6ICRmb250LWNhbXB0b24tYm9vaztcbiAgZm9udC1zaXplOiA1MHB4O1xuICBsaW5lLWhlaWdodDogNTJweDtcblxuICBAaW5jbHVkZSBiZWxvdyg3NjBweCkge1xuICAgIGZvbnQtc2l6ZTogMzJweDtcbiAgICBsaW5lLWhlaWdodDogMzZweDtcbiAgfVxufVxuXG5AbWl4aW4gdHlwb2dyYXBoeS1oZWFkZXItMygkbGluZS1oZWlnaHQ6IDQ0cHggMzBweCkge1xuICBoeXBoZW5zOiBub25lO1xuICBmb250LWZhbWlseTogJGZvbnQtY2FtcHRvbi1ib29rO1xuICBmb250LXNpemU6IDQwcHg7XG4gIGxpbmUtaGVpZ2h0OiBudGgoJGxpbmUtaGVpZ2h0LCAxKTtcblxuICBAaW5jbHVkZSBiZWxvdyg1MzBweCkge1xuICAgIGZvbnQtc2l6ZTogMjZweDtcbiAgICBsaW5lLWhlaWdodDogbnRoKCRsaW5lLWhlaWdodCwgMik7XG4gIH1cbn1cblxuQG1peGluIHR5cG9ncmFwaHktaGVhZGVyLTQoJGxpbmUtaGVpZ2h0OjMwcHggMjVweCkge1xuICBoeXBoZW5zOiBub25lO1xuICBmb250LWZhbWlseTogJGZvbnQtY2FtcHRvbi1ib29rO1xuICBmb250LXNpemU6IDI2cHg7XG4gIGxpbmUtaGVpZ2h0OiBudGgoJGxpbmUtaGVpZ2h0LCAxKTtcblxuICBAaW5jbHVkZSBiZWxvdyg1MzBweCkge1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1jYW1wdG9uLW1lZGl1bTtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgbGluZS1oZWlnaHQ6IG50aCgkbGluZS1oZWlnaHQsIDIpO1xuICB9XG59XG5cbi8vIEZvciBtdWx0aWxpbmUgdGl0bGVzIHRoZSBicmVha3BvaW50IHRvIHRoZSBzbWFsbGVyIGZvbnQgaXMgaW5jcmVhc2VkXG5AbWl4aW4gdHlwb2dyYXBoeS1oZWFkZXItNC1tdWx0aWxpbmUoJGxpbmUtaGVpZ2h0OjMwcHggMjVweCkge1xuICBoeXBoZW5zOiBub25lO1xuICBmb250LWZhbWlseTogJGZvbnQtY2FtcHRvbi1ib29rO1xuICBmb250LXNpemU6IDI2cHg7XG4gIGxpbmUtaGVpZ2h0OiBudGgoJGxpbmUtaGVpZ2h0LCAxKTtcblxuICBAaW5jbHVkZSBiZWxvdyg3NjBweCkge1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1jYW1wdG9uLW1lZGl1bTtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgbGluZS1oZWlnaHQ6IG50aCgkbGluZS1oZWlnaHQsIDIpO1xuICB9XG59XG5cbkBtaXhpbiB0eXBvZ3JhcGh5LWhlYWRlci01IHtcbiAgaHlwaGVuczogbm9uZTtcbiAgZm9udC1mYW1pbHk6ICRmb250LWNhbXB0b24tbWVkaXVtO1xuICBmb250LXNpemU6IDE4cHg7XG4gIGxpbmUtaGVpZ2h0OiAyNXB4O1xufVxuXG5AbWl4aW4gdHlwb2dyYXBoeS1pbnRybyB7XG4gIC8vaHlwaGVuczogbm9uZTtcbiAgZm9udC1mYW1pbHk6ICRmb250LWNhbXB0b24tYm9vaztcbiAgZm9udC1zaXplOiAyMnB4O1xuICBsaW5lLWhlaWdodDogMzJweDtcblxuICBAaW5jbHVkZSBiZWxvdyg1MzBweCkge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBsaW5lLWhlaWdodDogMjRweDtcbiAgfVxufVxuXG5AbWl4aW4gdHlwb2dyYXBoeS1wYXJhZ3JhcGgge1xuICBAaW5jbHVkZSB0eXBvZ3JhcGh5LWRlZmF1bHQ7XG59XG5cbkBtaXhpbiB0eXBvZ3JhcGh5LWJ1dHRvbiB7XG4gIGZvbnQtZmFtaWx5OiAkZm9udC1jYW1wdG9uLW1lZGl1bTtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBsaW5lLWhlaWdodDogNTBweDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuQG1peGluIHR5cG9ncmFwaHktbGFiZWwge1xuICBmb250LWZhbWlseTogJGZvbnQtY2FtcHRvbi1tZWRpdW07XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgbGluZS1oZWlnaHQ6IDUwcHg7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuQG1peGluIHR5cG9ncmFwaHktY2FwdGlvbiB7XG4gIEBpbmNsdWRlIHR5cG9ncmFwaHktcGFyYWdyYXBoO1xuICBmb250LWZhbWlseTogJGZvbnQtY2FtcHRvbi1tZWRpdW07XG59XG5cbkBpZiAkd2l0aC1iYXNlLWNzcyB7XG4gIC5jLXR5cG9ncmFwaHktZGVmYXVsdCB7XG4gICAgQGluY2x1ZGUgdHlwb2dyYXBoeS1kZWZhdWx0O1xuICB9XG5cbiAgLmMtdHlwb2dyYXBoeS1oZWFkZXItMSB7XG4gICAgQGluY2x1ZGUgdHlwb2dyYXBoeS1oZWFkZXItMTtcbiAgfVxuXG4gIC5jLXR5cG9ncmFwaHktaGVhZGVyLTIge1xuICAgIEBpbmNsdWRlIHR5cG9ncmFwaHktaGVhZGVyLTI7XG4gIH1cblxuICAuYy10eXBvZ3JhcGh5LWhlYWRlci0zIHtcbiAgICBAaW5jbHVkZSB0eXBvZ3JhcGh5LWhlYWRlci0zO1xuICB9XG5cbiAgLmMtdHlwb2dyYXBoeS1oZWFkZXItNCB7XG4gICAgQGluY2x1ZGUgdHlwb2dyYXBoeS1oZWFkZXItNDtcbiAgfVxuXG4gIC5jLXR5cG9ncmFwaHktaGVhZGVyLTUge1xuICAgIEBpbmNsdWRlIHR5cG9ncmFwaHktaGVhZGVyLTU7XG4gIH1cblxuICAuYy10eXBvZ3JhcGh5LWludHJvIHtcbiAgICBAaW5jbHVkZSB0eXBvZ3JhcGh5LWludHJvO1xuICB9XG5cbiAgLmMtdHlwb2dyYXBoeS1wYXJhZ3JhcGgge1xuICAgIEBpbmNsdWRlIHR5cG9ncmFwaHktcGFyYWdyYXBoO1xuICB9XG59XG4iLCIvL1xuLy8gSG92ZXItbWl4aW5cbi8vIElmIHRhcmdldCBwbGF0Zm9ybSBoYXMgaG92ZXItc3RhdGVzLCBpdCB3aWxsIHJlbmRlciB0aGVtIHdpdGggOmhvdmVyXG4vLyBPdGhlcndpc2UgaXQgd2lsbCB1c2UgOmFjdGl2ZSBhcyB0aGUgXCJob3ZlclwiLXN0YXRlXG4vL1xuLy9AbWl4aW4gaG92ZXIge1xuLy8gIEBpZiAkdGFyZ2V0LWhhcy1ob3ZlciB7XG4vLyAgICAmOmhvdmVyLCAub24taG92ZXIge1xuLy8gICAgICBAY29udGVudDtcbi8vICAgIH1cbi8vICB9IEBlbHNlIHtcbi8vICAgICY6YWN0aXZlLCAub24tYWN0aXZlIHtcbi8vICAgICAgQGNvbnRlbnQ7XG4vLyAgICB9XG4vLyAgfVxuLy99XG4vL3Nob3VsZG4ndCB3ZSB1c2UgdGhpcz9cblxuQG1peGluIGhvdmVyIHtcbiAgYm9keS5uby10b3VjaCAmOmhvdmVyIHtcbiAgICBAY29udGVudDtcbiAgfVxuXG4gIC8vYm9keS50b3VjaCAmOmFjdGl2ZSB7XG4gIC8vICBAY29udGVudDtcbiAgLy99XG59XG5cbkBtaXhpbiBjaGVja2JveCgpIHtcbiAgLmUtZmFjZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLW1haW4td2hpdGU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgbGVmdDogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB3aWR0aDogMjBweDtcbiAgfVxuXG4gIGlucHV0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIHotaW5kZXg6IDEwMDA7XG4gIH1cblxuICBpbnB1dDpjaGVja2VkICsgLmUtZmFjZTo6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIHRoZW1lZC1zaWduYWwtY29sb3I7XG4gICAgY29udGVudDogJGljb24tY2hlY2s7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1mYW1pbHk6IGljb25zO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAtMXB4O1xuICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICB0b3A6IC0zcHg7XG4gIH1cbn1cbiIsIlxuJGljb24tZG93bmxvYWQ6ICdcXGUwMDAnO1xuJGljb24tY2xvc2U6ICdcXGUwMDEnO1xuJGljb24tZnVsbC1hcnJvdy1sZWZ0OiAnXFxlMDAyJztcbiRpY29uLWZ1bGwtYXJyb3ctcmlnaHQ6ICdcXGUwMDMnO1xuJGljb24tdGV4dC1hcnJvdy1sZWZ0OiAnXFxlMDA0JztcbiRpY29uLXRleHQtYXJyb3ctcmlnaHQ6ICdcXGUwMDUnO1xuJGljb24tc2VhcmNoOiAnXFxlMDA2JztcbiRpY29uLWNoZWNrOiAnXFxlMDA3JztcbiRpY29uLWNhbWVyYTogJ1xcZTkwZic7XG4kaWNvbi1kb3duLWFycm93OiAnXFxlMDA4JztcbiRpY29uLWNhYmFyZXQ6ICdcXGUwMDknO1xuJGljb24tYnVmZmV0OiAnXFxlMDBhJztcbiRpY29uLXJlY2VwdGlvbjogJ1xcZTAwYic7XG4kaWNvbi10aGVhdGVyOiAnXFxlMDBjJztcbiRpY29uLWRpbmVyOiAnXFxlMDBkJztcbiRpY29uLXUtc2hhcGU6ICdcXGUwMGUnO1xuJGljb24tcGhvbmU6ICdcXGUwMGYnO1xuJGljb24tbWFpbDogJ1xcZTAxMCc7XG4kaWNvbi1jbG9jazogJ1xcZTAxMSc7XG4kaWNvbi1iaWctZG93bi1hcnJvdzogJ1xcZTAxMic7XG5cbiRpY29uLXR3aXR0ZXI6ICdcXGU2MDAnO1xuJGljb24tcGludGVyZXN0OiAnXFxlNjAxJztcbiRpY29uLWZhY2Vib29rOiAnXFxlNjAyJztcbiRpY29uLXlvdXR1YmU6ICdcXGU2MDMnO1xuJGljb24tY2FsZW5kYXI6ICdcXGU2MDQnO1xuXG4kaWNvbi1wYXJ0eTogJ1xcZTkwMCc7XG5cbiRpY29uLWNoZXZyb24tbGVmdDogJ1xcZTkwMSc7XG4kaWNvbi1jaGV2cm9uLXJpZ2h0OiAnXFxlOTAyJztcblxuJGljb24tYXJyb3ctZG93bjogJ1xcZTkwMyc7XG4kaWNvbi1pbnN0YWdyYW06ICdcXGU5MDQnO1xuJGljb24tcGludGVyZXN0MjogJ1xcZTkwNSc7XG4kaWNvbi10d2l0dGVyMjogJ1xcZTkwNic7XG4kaWNvbi1mYWNlYm9vazI6ICdcXGU5MDcnO1xuJGljb24tY2xvc2UtMjogJ1xcZTkwOCc7XG4kaWNvbi1hcnJvdy11cDogJ1xcZTkwOSc7XG4kaWNvbi1wbGF5OiAnXFxlOTBhJztcbiRpY29uLXByaW50OiAnXFxlOTEzJztcbiRpY29uLWFycm93LXJpZ2h0OiAnO1xcZTkwYic7XG4kaWNvbi1hcnJvdy1sZWZ0OiAnXFxlOTBjJztcbiRpY29uLWhhbWJ1cmdlcjI6ICdcXGU5MGQnO1xuJGljb24taGFtYnVyZ2VyOiAnXFxlOTBlJztcbiRpY29uLXRyaWFuZ2xlLXVwOiAnXFxlOTEwJztcbiRpY29uLXRyaWFuZ2xlLWxlZnQ6ICdcXGU5MTEnO1xuJGljb24tdHJpYW5nbGUtcmlnaHQ6ICdcXGU5MTInO1xuXG4kaWNvbi1kYXRhLWFycm93LXJpZ2h0OiBcImFycm93LXJpZ2h0XCIgJGljb24tYXJyb3ctcmlnaHQgMTAwO1xuJGljb24tZGF0YS10cmlhbmdsZS1yaWdodDogXCJ0cmlhbmdsZS1yaWdodFwiICRpY29uLXRyaWFuZ2xlLXJpZ2h0IDMyO1xuJGljb24tZGF0YS10cmlhbmdsZS1sZWZ0OiBcInRyaWFuZ2xlLWxlZnRcIiAkaWNvbi10cmlhbmdsZS1sZWZ0IDMyO1xuJGljb24tZGF0YS10cmlhbmdsZS11cDogXCJ0cmlhbmdsZS11cFwiICRpY29uLXRyaWFuZ2xlLXVwIDMyO1xuJGljb24tZGF0YS1jbG9zZTogXCJjbG9zZVwiICRpY29uLWNsb3NlLTIgNTA7XG4kaWNvbi1kYXRhLWZhY2Vib29rOiBcImZhY2Vib29rXCIgJGljb24tZmFjZWJvb2sgNzA7XG4kaWNvbi1kYXRhLXR3aXR0ZXI6IFwiZmFjZWJvb2tcIiAkaWNvbi10d2l0dGVyIDgwO1xuJGljb24tZGF0YS1pbnN0YWdyYW06IFwiZmFjZWJvb2tcIiAkaWNvbi1pbnN0YWdyYW0gNTA7XG4kaWNvbi1kYXRhLW1haWw6IFwiZmFjZWJvb2tcIiAkaWNvbi1tYWlsIDU1O1xuJGljb24tZGF0YS1oYW1idXJnZXI6IFwiaGFtYnVyZ2VyXCIgJGljb24taGFtYnVyZ2VyIDQwO1xuJGljb24tZGF0YS1wcmludDogXCJwcmludFwiICRpY29uLXByaW50IDQwO1xuJGljb24tZGF0YS1zZWFyY2g6IFwic2VhcmNoXCIgJGljb24tc2VhcmNoIDUwO1xuJGljb24tZGF0YS1jaGV2cm9uLWxlZnQ6IFwiY2hldnJvbi1sZWZ0XCIgJGljb24tY2hldnJvbi1sZWZ0IDYwO1xuJGljb24tZGF0YS1jaGV2cm9uLXJpZ2h0OiBcImNoZXZyb24tcmlnaHRcIiAkaWNvbi1jaGV2cm9uLXJpZ2h0IDYwO1xuXG4kaWNvbi1kYXRhLWJpZy10cmlhbmdsZS1yaWdodDogXCJiaWctdHJpYW5nbGUtcmlnaHRcIiAkaWNvbi10cmlhbmdsZS1yaWdodCA2MDtcbiRpY29uLWRhdGEtYmlnLXRyaWFuZ2xlLWxlZnQ6IFwiYmlnLXRyaWFuZ2xlLWxlZnRcIiAkaWNvbi10cmlhbmdsZS1sZWZ0IDYwO1xuXG4kYnV0dG9uLXNpemU6IDUwcHg7XG4kYnV0dG9uLXNpemUtbGFuZHNjYXBlOiA1MHB4O1xuJGJ1dHRvbi1zaXplLXBvcnRyYWl0OiA1MHB4O1xuJGJ1dHRvbi1zaXplLW1vYmlsZTogNTBweDtcblxuLy9cbi8vIEljb24gbGlicmFyeVxuLy9cbi8vIGFyZ3VtZW50czpcbi8vICA8XCJuYW1lL3NsdWdcIj4gPGljb24gY29kZT4gPHBlcmNlbnRhZ2UgYXQgd2hpY2ggc2l6ZSBpY29uIHNob3VsZCBiZSByZW5kZXJlZD5cbi8vXG4kaWNvbnM6IChcbiAgICAgICAgXCJhcnJvdy1kb3duXCIgJGljb24tYXJyb3ctZG93biA2MCxcbiAgICAgICAgXCJhcnJvdy1sZWZ0XCIgJGljb24tYXJyb3ctbGVmdCAxMDAsXG4gICAgICAgICRpY29uLWRhdGEtYXJyb3ctcmlnaHQsXG4gICAgICAgIFwiYXJyb3ctdXBcIiAkaWNvbi1hcnJvdy11cCAxMDAsXG4gICAgICAgICRpY29uLWRhdGEtY2xvc2UsXG4gICAgICAgICRpY29uLWRhdGEtZmFjZWJvb2ssXG4gICAgICAgICRpY29uLWRhdGEtaGFtYnVyZ2VyLFxuICAgICAgICBcImluc3RhZ3JhbVwiICRpY29uLWluc3RhZ3JhbSA4MCxcbiAgICAgICAgXCJtYWlsXCIgJGljb24tbWFpbCA3MCxcbiAgICAgICAgXCJwaW50ZXJlc3RcIiAkaWNvbi1waW50ZXJlc3QyIDgwLFxuICAgICAgICAkaWNvbi1kYXRhLXNlYXJjaCxcbiAgICAgICAgJGljb24tZGF0YS10cmlhbmdsZS1yaWdodCxcbiAgICAgICAgXCJ0d2l0dGVyXCIgJGljb24tdHdpdHRlcjIgNDUsXG4gICAgICAgICRpY29uLWRhdGEtYmlnLXRyaWFuZ2xlLXJpZ2h0LFxuICAgICAgICAkaWNvbi1kYXRhLWJpZy10cmlhbmdsZS1sZWZ0LFxuICAgICAgICAkaWNvbi1kYXRhLWNoZXZyb24tbGVmdCxcbiAgICAgICAgJGljb24tZGF0YS1jaGV2cm9uLXJpZ2h0LFxuKTtcblxuJGJ1dHRvbi1pY29uczogKFxuKTtcblxuQG1peGluIGFkZC1pY29uKCRwdWEsICRsb2NhdGlvbjonYWZ0ZXInKSB7XG4gICY6OiN7JGxvY2F0aW9ufSB7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xuICAgIGZvbnQtZmFtaWx5OiBpY29ucztcbiAgICBjb250ZW50OiBcIiAjeyRwdWF9XCI7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIGJhc2UtaWNvbi1yYXcoJGljb24sICRiZy1jb2xvcjokY29sb3ItbWFpbi1waW5rLCAkZmctY29sb3I6JGNvbG9yLW1haW4tYmxhY2ssICRsb2NhdGlvbjonYWZ0ZXInKSB7XG4gIEBpbmNsdWRlIGljb24tY29sb3ItdmFyaWF0aW9uKCRiZy1jb2xvciwgJGZnLWNvbG9yLCAkbG9jYXRpb246ICRsb2NhdGlvbik7XG4gIEBpbmNsdWRlIGFkZC1pY29uKCRpY29uLCAkbG9jYXRpb246ICRsb2NhdGlvbikge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgICBAY29udGVudDtcbiAgfVxuO1xufVxuXG5AbWl4aW4gYmFzZS1pY29uKCRpY29uLXR1cGxlLCAkc2l6ZSwgJGJnLWNvbG9yOiRjb2xvci1tYWluLXBpbmssICRmZy1jb2xvcjokY29sb3ItbWFpbi1ibGFjaywgJHJhdGlvOjEwMCxcbiAgICAgICAgICAgICAgICAgJGxvY2F0aW9uOidhZnRlcicpIHtcbiAgQGluY2x1ZGUgaWNvbi1zaXplLXZhcmlhdGlvbigkaWNvbi10dXBsZSwgJHNpemUsICRyYXRpbywgJGxvY2F0aW9uOiAkbG9jYXRpb24pO1xuICBAaW5jbHVkZSBiYXNlLWljb24tcmF3KFxuICAgICAgICAgICAgICAgICAgbnRoKCRpY29uLXR1cGxlLCAyKSxcbiAgICAgICAgICAgICAgICAgICRiZy1jb2xvcixcbiAgICAgICAgICAgICAgICAgICRmZy1jb2xvcixcbiAgICAgICAgICAkbG9jYXRpb246ICRsb2NhdGlvblxuICApIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gaWNvbi12YXJpYXRpb25zKCRzaXplOiRidXR0b24tc2l6ZSwgJGJnLWNvbG9yOiRjb2xvci1tYWluLXBpbmssICRmZy1jb2xvcjokY29sb3ItbWFpbi1ibGFjaywgJHJhdGlvOjEwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGljb24tdHVwbGU6IGZhbHNlKSB7XG4gIEBpZiAkaWNvbi10dXBsZSB7XG4gICAgQGluY2x1ZGUgYmFzZS1pY29uKCRpY29uLXR1cGxlLCAkc2l6ZSwgJGJnLWNvbG9yLCAkZmctY29sb3IsICRyYXRpbyk7XG4gIH0gQGVsc2Uge1xuICAgIEBlYWNoICRpY29uIGluICRpY29ucyB7XG4gICAgICAkbmFtZTogbnRoKCRpY29uLCAxKTtcbiAgICAgICR2YWx1ZTogbnRoKCRpY29uLCAyKTtcbiAgICAgICRpY29uLXNpemU6IG50aCgkaWNvbiwgMyk7XG5cbiAgICAgICYudi0jeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGJhc2UtaWNvbigkaWNvbiwgJHNpemUsICRiZy1jb2xvciwgJGZnLWNvbG9yLCAkcmF0aW8pO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gaWNvbi1jb2xvci12YXJpYXRpb24oJGJnLWNvbG9yOmZhbHNlLCAkZmctY29sb3I6ZmFsc2UsICRsb2NhdGlvbjonYWZ0ZXInKSB7XG4gICY6OiN7JGxvY2F0aW9ufSB7XG4gICAgQGlmICgkYmctY29sb3IpIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiZy1jb2xvcjtcbiAgICB9XG4gICAgQGlmICgkZmctY29sb3IpIHtcbiAgICAgIGNvbG9yOiAkZmctY29sb3I7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBpY29uLXNpemUtdmFyaWF0aW9uLWNhbGN1bGF0b3IoJGljb24tdHVwbGUsICRzaXplLCAkYnV0dG9uLXNpemUsICRyYXRpbywgJG1vZGUpIHtcbiAgJGljb24tc2l6ZTogbnRoKCRpY29uLXR1cGxlLCAzKSAqICRzaXplICogJHJhdGlvIC8gMTAwIC8gMTAwO1xuXG4gIEBpZiAoJGljb24tc2l6ZSkge1xuICAgIGZvbnQtc2l6ZTogJGljb24tc2l6ZTtcbiAgfSBAZWxzZSB7XG4gICAgZm9udC1zaXplOiAkc2l6ZTtcbiAgfVxuO1xuICBoZWlnaHQ6ICRzaXplO1xuICBAaWYgJG1vZGUgPT0gXCJsaW5lLWhlaWdodFwiIHtcbiAgICBsaW5lLWhlaWdodDogJHNpemU7XG4gIH0gQGVsc2UgaWYgJG1vZGUgPT0gXCJwYWRkaW5nXCIge1xuICAgIHBhZGRpbmctdG9wOiAoJHNpemUgLSAkaWNvbi1zaXplKSAvIDI7XG4gIH1cbiAgd2lkdGg6ICRzaXplO1xufVxuXG5AbWl4aW4gaWNvbi1zaXplLXZhcmlhdGlvbigkaWNvbi10dXBsZSwgJHNpemUsICRyYXRpbzoxMDAsICRtb2RlOlwibGluZS1oZWlnaHRcIiwgJGxvY2F0aW9uOlwiYWZ0ZXJcIikge1xuICAmOjojeyRsb2NhdGlvbn0ge1xuICAgIEBpbmNsdWRlIGljb24tc2l6ZS12YXJpYXRpb24tY2FsY3VsYXRvcigkaWNvbi10dXBsZSwgJHNpemUsICRidXR0b24tc2l6ZSwgJHJhdGlvLCAkbW9kZSk7XG4gICAgQGNvbnRlbnQ7XG4gIH1cblxuICBAaW5jbHVkZSBiZWxvdygkYnJlYWtwb2ludC1sYW5kc2NhcGUpIHtcbiAgICAmOjojeyRsb2NhdGlvbn0ge1xuICAgICAgQGluY2x1ZGUgaWNvbi1zaXplLXZhcmlhdGlvbi1jYWxjdWxhdG9yKCRpY29uLXR1cGxlLCAkc2l6ZSwgJGJ1dHRvbi1zaXplLWxhbmRzY2FwZSwgJHJhdGlvLCAkbW9kZSk7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgYmVsb3coJGJyZWFrcG9pbnQtcG9ydHJhaXQpIHtcbiAgICAmOjojeyRsb2NhdGlvbn0ge1xuICAgICAgQGluY2x1ZGUgaWNvbi1zaXplLXZhcmlhdGlvbi1jYWxjdWxhdG9yKCRpY29uLXR1cGxlLCAkc2l6ZSwgJGJ1dHRvbi1zaXplLXBvcnRyYWl0LCAkcmF0aW8sICRtb2RlKTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBiZWxvdygkYnJlYWtwb2ludC1tb2JpbGUpIHtcbiAgICAmOjojeyRsb2NhdGlvbn0ge1xuICAgICAgQGluY2x1ZGUgaWNvbi1zaXplLXZhcmlhdGlvbi1jYWxjdWxhdG9yKCRpY29uLXR1cGxlLCAkc2l6ZSwgJGJ1dHRvbi1zaXplLW1vYmlsZSwgJHJhdGlvLCAkbW9kZSk7XG4gICAgfVxuICB9XG59XG5cbi5jLXBpbmstaWNvbiB7XG4gIEBpbmNsdWRlIGljb24tdmFyaWF0aW9ucztcbn1cblxuQG1peGluIGFycm93LWJlZm9yZSB7XG4gICY6OmJlZm9yZSB7XG4gICAgY29sb3I6ICRjb2xvci1tYWluLWJsYWNrO1xuICAgIGNvbnRlbnQ6IFwiI3skaWNvbi1mdWxsLWFycm93LXJpZ2h0fVwiO1xuICAgIGZvbnQtZmFtaWx5OiBpY29ucztcbiAgICBmb250LXNpemU6IDEwcHg7XG4gICAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAtMXB4O1xuICAgIC8vIHRvIHJlbW92ZXIgaG92ZXIgdW5kZXJsaW5lXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG59XG5cbkBtaXhpbiBmYWNpbGl0eS1pY29uKCRpY29uKSB7XG4gICY6OmJlZm9yZSB7XG4gICAgZm9udC1mYW1pbHk6IGljb25zO1xuICAgIGNvbnRlbnQ6ICRpY29uO1xuICAgIGZvbnQtc2l6ZTogNDBweDtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBwYWRkaW5nOiAxMHB4IDEwcHggMTBweCAwO1xuICB9XG59XG4iLCIvL1xuLy8gSWNvbiBCdXR0b25cbi8vXG5cbiRpY29uLWJ1dHRvbi1jb2xvcnM6IChcbiAgICBcInBpbmtcIiAkY29sb3ItbWFpbi1waW5rICRjb2xvci1tYWluLWJsYWNrIGZhbHNlLFxuICAgIFwiZ3JlZW5cIiAkY29sb3ItbWFpbi1ncmVlbiAkY29sb3ItbWFpbi1ibGFjayBmYWxzZSxcbiAgICBcIndoaXRlXCIgJGNvbG9yLW1haW4td2hpdGUgJGNvbG9yLW1haW4tYmxhY2sgZmFsc2UsXG4gICAgXCJibGFja1wiICRjb2xvci1tYWluLWJsYWNrICRjb2xvci1tYWluLXdoaXRlIHRydWUsXG4gICAgXCJ0cmFuc1wiIHJnYmEoJGNvbG9yLW1haW4tYmxhY2ssIDAuNCkgJGNvbG9yLW1haW4td2hpdGUgZmFsc2UsXG4pO1xuXG5AbWl4aW4gaWNvbi1idXR0b24oJGhlaWdodDogJGJ1dHRvbi1zaXplLCAkbW9iaWxlLWhlaWdodDogJGJ1dHRvbi1zaXplLW1vYmlsZSwgJGJnLWNvbG9yOiAkY29sb3ItbWFpbi1ncmVlbiwgJGZnLWNvbG9yOiAkY29sb3ItbWFpbi1ibGFjayxcbiAgICAgICAgICAgICAgICAgICAkaWNvbjogZmFsc2UpIHtcbiAgQGluY2x1ZGUgaWNvbi12YXJpYXRpb25zKCRoZWlnaHQsICRiZy1jb2xvcjokYmctY29sb3IsICRmZy1jb2xvcjokZmctY29sb3IsICRpY29uLXR1cGxlOiRpY29uKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAwO1xuXG4gIEBlYWNoICR2YXJpYXRpb24gaW4gJGljb24tYnV0dG9uLWNvbG9ycyB7XG4gICAgJG5hbWU6IG50aCgkdmFyaWF0aW9uLCAxKTtcbiAgICAkdi1iZy1jb2xvcjogbnRoKCR2YXJpYXRpb24sIDIpO1xuICAgICR2LWZnLWNvbG9yOiBudGgoJHZhcmlhdGlvbiwgMyk7XG5cbiAgICAmLnYtI3skbmFtZX0ge1xuICAgICAgQGluY2x1ZGUgaWNvbi1jb2xvci12YXJpYXRpb24oJHYtYmctY29sb3IsICR2LWZnLWNvbG9yKTtcbiAgICB9XG4gIH1cblxuICAmOmhvdmVyLCAmLm9uLWhvdmVyLFxuICAmOmFjdGl2ZSwgJi5vbi1jbGljaywgJi5vbi1hY3RpdmUge1xuICAgIEBpbmNsdWRlIGljb24tY29sb3ItdmFyaWF0aW9uKCRjb2xvci1tYWluLWJsYWNrLCAkY29sb3ItbWFpbi13aGl0ZSk7XG5cbiAgICBAZWFjaCAkdmFyaWF0aW9uIGluICRpY29uLWJ1dHRvbi1jb2xvcnMge1xuICAgICAgJG5hbWU6IG50aCgkdmFyaWF0aW9uLCAxKTtcbiAgICAgICR2LWJnLWNvbG9yOiBudGgoJHZhcmlhdGlvbiwgMik7XG4gICAgICAkdi1mZy1jb2xvcjogbnRoKCR2YXJpYXRpb24sIDMpO1xuICAgICAgJGludmVyc2U6IG50aCgkdmFyaWF0aW9uLCA0KTtcblxuICAgICAgQGlmICRpbnZlcnNlIHtcbiAgICAgICAgJi52LSN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBpY29uLWNvbG9yLXZhcmlhdGlvbigkdi1mZy1jb2xvciwgJHYtYmctY29sb3IpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJi52LW1vYmlsZSB7XG4gICAgQGluY2x1ZGUgaWNvbi12YXJpYXRpb25zKCRtb2JpbGUtaGVpZ2h0LCAkYmctY29sb3I6ICRiZy1jb2xvciwgJGljb24tdHVwbGU6ICRpY29uKTtcblxuICAgICY6YWN0aXZlLCAmLm9uLWNsaWNrIHtcbiAgICAgIEBpbmNsdWRlIGljb24tY29sb3ItdmFyaWF0aW9uKCRjb2xvci1tYWluLWJsYWNrLCAkY29sb3ItbWFpbi13aGl0ZSk7XG4gICAgfVxuICB9XG5cbiAgJjo6YWZ0ZXIge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBpZiAkd2l0aC1iYXNlLWNzcyB7XG4gIC5jLWljb24tYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBpY29uLWJ1dHRvbjtcbiAgfVxuXG4gIC5jLXNoYXJlLWJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgaWNvbi1idXR0b24oJGhlaWdodDogNDBweCwgJGJnLWNvbG9yOiAkY29sb3ItbWFpbi1ncmV5LCAkZmctY29sb3I6ICRjb2xvci1tYWluLWJsYWNrKTtcbiAgfVxuXG4gIC52LWZhY2Vib29rOjphZnRlciB7XG4gICAgcGFkZGluZy1yaWdodDogMTNweDtcbiAgfVxufVxuXG4vL1xuLy8gVGV4dCBJY29uIEJ1dHRvblxuLy9cblxuJHRleHQtYnV0dG9uLWNvbG9yczogKFxuICAgIFwiZ3JlZW5cIiAkY29sb3ItbWFpbi1ncmVlbiAkY29sb3ItbWFpbi1ibGFjayBmYWxzZSxcbiAgICBcImJsYWNrXCIgJGNvbG9yLW1haW4tYmxhY2sgJGNvbG9yLW1haW4td2hpdGUgdHJ1ZSxcbiAgICBcImdyZXlcIiAkY29sb3ItbWFpbi1ncmV5ICRjb2xvci1tYWluLWJsYWNrIGZhbHNlLFxuICAgIFwieWVsbG93XCIgJGNvbG9yLW1haW4tYmxhY2sgJGNvbG9yLW1haW4teWVsbG93IGZhbHNlLFxuICAgIFwiaXllbGxvd1wiICRjb2xvci1tYWluLXllbGxvdyAkY29sb3ItbWFpbi1ibGFjayBmYWxzZSxcbik7XG5cbi8qIEEgc2l6ZSB2YXJpYXRpb24gb2YgYSBjb25maWd1cmVkIGMtdGV4dC1pY29uLWJ1dHRvbi1vbGQgKi9cbkBtaXhpbiB0ZXh0LWljb24tYnV0dG9uLXNpemUtdmFyaWF0aW9uKCRzaXplLCAkaWNvbi1yYXRpbzogMTAwLCAkbG9jYXRpb246J2FmdGVyJykge1xuICBoZWlnaHQ6ICRzaXplO1xuICBsaW5lLWhlaWdodDogJHNpemU7XG4gIEBpZiAkbG9jYXRpb24gPT0gJ2FmdGVyJyB7XG4gICAgcGFkZGluZy1sZWZ0OiAyNXB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gIH0gQGVsc2Uge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyNXB4O1xuICB9XG5cbiAgQGluY2x1ZGUgaWNvbi1zaXplLXZhcmlhdGlvbigkaWNvbi1kYXRhLXRyaWFuZ2xlLXJpZ2h0LCAkc2l6ZSwgJHJhdGlvOiAkaWNvbi1yYXRpbywgJGxvY2F0aW9uOiRsb2NhdGlvbikge1xuICAgIEBpZiAkbG9jYXRpb24gPT0gJ2FmdGVyJyB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgfSBAZWxzZSB7XG4gICAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBiZWxvdygkYnJlYWtwb2ludC1sYW5kc2NhcGUpIHtcbiAgICBoZWlnaHQ6ICRzaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAkc2l6ZTtcbiAgfVxuXG4gIEBpbmNsdWRlIGJlbG93KCRicmVha3BvaW50LXBvcnRyYWl0KSB7XG4gICAgaGVpZ2h0OiAkc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogJHNpemU7XG4gICAgQGlmICRsb2NhdGlvbiA9PSAnYWZ0ZXInIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDdweDtcbiAgICB9IEBlbHNlIHtcbiAgICAgIHBhZGRpbmctbGVmdDogN3B4O1xuICAgIH1cblxuICAgICY6OiN7JGxvY2F0aW9ufSB7XG4gICAgICBAaWYgJGxvY2F0aW9uID09ICdhZnRlcicge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDdweDtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICBtYXJnaW4tbGVmdDogN3B4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGJlbG93KCRicmVha3BvaW50LW1vYmlsZSkge1xuICAgIGhlaWdodDogJHNpemU7XG4gICAgbGluZS1oZWlnaHQ6ICRzaXplO1xuICB9XG59XG5cbkBtaXhpbiB0ZXh0LWljb24tYnV0dG9uKCRiZy1jb2xvcjokY29sb3ItbWFpbi1ncmVlbiwgJGZnLWNvbG9yOiRjb2xvci1tYWluLWJsYWNrLCAkaG92ZXItYmctY29sb3I6JGNvbG9yLW1haW4tYmxhY2ssXG4gICAgJGhvdmVyLWZnLWNvbG9yOiRjb2xvci1tYWluLXdoaXRlLCAkaWNvbjokaWNvbi1kYXRhLXRyaWFuZ2xlLXJpZ2h0LCAkc2l6ZTogJGJ1dHRvbi1zaXplLCAkbG9jYXRpb246J2FmdGVyJykge1xuICBAaW5jbHVkZSB0eXBvZ3JhcGh5LWJ1dHRvbjtcbiAgQGluY2x1ZGUgdGV4dC1pY29uLWJ1dHRvbi1zaXplLXZhcmlhdGlvbigkc2l6ZSwgJGxvY2F0aW9uOiRsb2NhdGlvbik7XG4gIEBpbmNsdWRlIGJhc2UtaWNvbigkaWNvbiwgJHNpemUsIHRyYW5zcGFyZW50LCAkbG9jYXRpb246JGxvY2F0aW9uKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJnLWNvbG9yO1xuICBjb2xvcjogJGZnLWNvbG9yO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG5cbiAgQGVhY2ggJHZhcmlhdGlvbiBpbiAkdGV4dC1idXR0b24tY29sb3JzIHtcbiAgICAkbmFtZTogbnRoKCR2YXJpYXRpb24sIDEpO1xuICAgICRiZy1jb2xvcjogbnRoKCR2YXJpYXRpb24sIDIpO1xuICAgICRmZy1jb2xvcjogbnRoKCR2YXJpYXRpb24sIDMpO1xuXG4gICAgJi52LSN7JG5hbWV9IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiZy1jb2xvcjtcbiAgICAgIGNvbG9yOiAkZmctY29sb3I7XG5cbiAgICAgICY6OmJlZm9yZSwgJjo6YWZ0ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRmZy1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmOmhvdmVyLCAmLm9uLWhvdmVyLFxuICAmOmFjdGl2ZSwgJi5vbi1jbGljayB7XG4gICAgQGluY2x1ZGUgaWNvbi1jb2xvci12YXJpYXRpb24oJGZnLWNvbG9yOiRob3Zlci1mZy1jb2xvcik7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGhvdmVyLWJnLWNvbG9yO1xuICAgIGNvbG9yOiAkaG92ZXItZmctY29sb3I7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgIEBlYWNoICR2YXJpYXRpb24gaW4gJGljb24tYnV0dG9uLWNvbG9ycyB7XG4gICAgICAkbmFtZTogbnRoKCR2YXJpYXRpb24sIDEpO1xuICAgICAgJHYtYmctY29sb3I6IG50aCgkdmFyaWF0aW9uLCAyKTtcbiAgICAgICR2LWZnLWNvbG9yOiBudGgoJHZhcmlhdGlvbiwgMyk7XG4gICAgICAkaW52ZXJzZTogbnRoKCR2YXJpYXRpb24sIDQpO1xuXG4gICAgICBAaWYgJGludmVyc2Uge1xuICAgICAgICAmLnYtI3skbmFtZX0ge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRob3Zlci1mZy1jb2xvcjtcbiAgICAgICAgICBjb2xvcjogJGhvdmVyLWJnLWNvbG9yO1xuICAgICAgICAgIEBpbmNsdWRlIGljb24tY29sb3ItdmFyaWF0aW9uKCR2LWZnLWNvbG9yLCAkdi1iZy1jb2xvcik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOmJlZm9yZSB7XG5cbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgIH1cbiAgfVxufVxuXG5AaWYgJHdpdGgtYmFzZS1jc3Mge1xuICAuYy10ZXh0LWljb24tYnV0dG9uIHtcbiAgICBAaW5jbHVkZSB0ZXh0LWljb24tYnV0dG9uO1xuXG4gICAgJi52LXNjcm9sbC11cC1idXR0b24ge1xuICAgICAgQGluY2x1ZGUgYmFzZS1pY29uKCRpY29uLWRhdGEtdHJpYW5nbGUtdXAsICRidXR0b24tc2l6ZSwgdHJhbnNwYXJlbnQpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLW1haW4teWVsbG93O1xuICAgIH1cblxuICAgICYudi1mb290ZXItYnV0dG9uIHtcbiAgICAgIEBpbmNsdWRlIHRleHQtaWNvbi1idXR0b24tc2l6ZS12YXJpYXRpb24oJGJ1dHRvbi1zaXplLCAkbG9jYXRpb246J2JlZm9yZScpO1xuICAgICAgQGluY2x1ZGUgYmFzZS1pY29uKCRpY29uLWRhdGEtdHJpYW5nbGUtcmlnaHQsICRidXR0b24tc2l6ZSwgdHJhbnNwYXJlbnQsICRmZy1jb2xvcjokY29sb3ItbWFpbi1ncmVlbiwgJGxvY2F0aW9uOidiZWZvcmUnKTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1tYWluLWJsYWNrO1xuICAgICAgY29sb3I6ICRjb2xvci1tYWluLXdoaXRlO1xuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gdGV4dC1idXR0b24oJGJnLWNvbG9yOiRjb2xvci1tYWluLWdyZWVuLCAkZmctY29sb3I6JGNvbG9yLW1haW4tYmxhY2ssICRob3Zlci1iZy1jb2xvcjokY29sb3ItbWFpbi1ibGFjayxcbiAgICAkaG92ZXItZmctY29sb3I6JGNvbG9yLW1haW4td2hpdGUpIHtcbiAgJHNpemU6ICRidXR0b24tc2l6ZTtcbiAgQGluY2x1ZGUgdHlwb2dyYXBoeS1idXR0b247XG4gIGJhY2tncm91bmQtY29sb3I6ICRiZy1jb2xvcjtcbiAgY29sb3I6ICRmZy1jb2xvcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gIHBhZGRpbmctcmlnaHQ6IDIwcHg7XG4gIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG5cbiAgJjpob3ZlciwgJi5vbi1ob3ZlcixcbiAgJjphY3RpdmUsICYub24tY2xpY2sge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRob3Zlci1iZy1jb2xvcjtcbiAgICBjb2xvcjogJGhvdmVyLWZnLWNvbG9yO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBvdXRsaW5lOiBub25lO1xuICB9XG59XG5cbkBpZiAkd2l0aC1iYXNlLWNzcyB7XG4gIC5jLXRleHQtYnV0dG9uIHtcbiAgICBAaW5jbHVkZSB0ZXh0LWJ1dHRvbjtcbiAgfVxufVxuXG4vL1xuLy8gRXhwZXJpbWVudGFsIGJ1dHRvblxuLy9cblxuLyogQSBzaXplIHZhcmlhdGlvbiBvZiBhIGNvbmZpZ3VyZWQgYy10ZXh0LWljb24tYnV0dG9uICovXG5AbWl4aW4gdGV4dC1pY29uLWJ1dHRvbi1leHBlcmltZW50LTItc2l6ZS12YXJpYXRpb24oJHNpemUsICRob3Jpem9udGFsLXBhZGRpbmcsICRib3JkZXIsICRvZmZzZXQtZmFjdG9yKSB7XG4gICRvZmZzZXQ6IC0kc2l6ZSAqICRvZmZzZXQtZmFjdG9yIC0gJHNpemUgKiAkYm9yZGVyICogMC41O1xuICBoZWlnaHQ6ICRzaXplO1xuICBsaW5lLWhlaWdodDogJHNpemUgKyAkb2Zmc2V0ICogMS43NTtcbiAgbWFyZ2luLWxlZnQ6IC0gJG9mZnNldDtcbiAgcGFkZGluZy1sZWZ0OiAkaG9yaXpvbnRhbC1wYWRkaW5nO1xuXG4gICY6OmJlZm9yZSB7XG4gICAgYm9yZGVyOiAkc2l6ZSAqICRib3JkZXIgc29saWQgJGNvbG9yLW1haW4tYmxhY2s7XG4gICAgbGVmdDogJG9mZnNldDtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSArICN7JHNpemUgKiAkYm9yZGVyICogMC41fSk7XG4gICAgdG9wOiAkb2Zmc2V0O1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAjeyRzaXplICogJGJvcmRlciAqIDAuNX0pO1xuICB9XG5cbiAgQGluY2x1ZGUgaWNvbi1zaXplLXZhcmlhdGlvbihcInJhbmRvbSBzdHJpbmcgMjMzXCIgJGljb24tYXJyb3ctcmlnaHQgNjAsICRzaXplLCAkbW9kZTogXCJwYWRkaW5nXCIpIHtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBtYXJnaW4tbGVmdDogJGhvcml6b250YWwtcGFkZGluZztcbiAgICB0b3A6IC0kc2l6ZSAqICRvZmZzZXQtZmFjdG9yIC0gJHNpemUgKiAkYm9yZGVyICogMC4yNTtcbiAgICBsZWZ0OiAtJHNpemUgKiAkb2Zmc2V0LWZhY3RvciAtICRzaXplICogJGJvcmRlciAqIDAuMjU7XG4gIH1cbn1cblxuJGljb24tYnV0dG9uLWV4cGVyaW1lbnQtMi1jb2xvcnM6IChcbiAgICBcInBpbmtcIiAkY29sb3ItbWFpbi1waW5rICRjb2xvci1tYWluLWJsYWNrLFxuICAgIFwiZ3JleVwiICRjb2xvci1tYWluLWdyZXkgJGNvbG9yLW1haW4tYmxhY2ssXG4gICAgXCJibHVlXCIgJGNvbG9yLW1haW4tYmx1ZSAkY29sb3ItbWFpbi1ibGFjayxcbiAgICBcInllbGxvd1wiICRjb2xvci1tYWluLXllbGxvdyAkY29sb3ItbWFpbi1ibGFjayxcbiAgICBcImdyZWVuXCIgJGNvbG9yLW1haW4tZ3JlZW4gJGNvbG9yLW1haW4tYmxhY2ssXG4pO1xuXG5AbWl4aW4gaWNvbi1idXR0b24tZXhwZXJpbWVudC0yKCRzaXplLCAkYm9yZGVyLWZhY3RvciwgJG9mZnNldC1mYWN0b3IsICRwYWRkaW5nLWgpIHtcbiAgQGluY2x1ZGUgdHlwb2dyYXBoeS1idXR0b247XG4gIEBpbmNsdWRlIHRleHQtaWNvbi1idXR0b24tZXhwZXJpbWVudC0yLXNpemUtdmFyaWF0aW9uKCRzaXplLCAkcGFkZGluZy1oLCAkYm9yZGVyLWZhY3RvciwgJG9mZnNldC1mYWN0b3IpO1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICB6LWluZGV4OiAyO1xuXG4gIEBpbmNsdWRlIGJhc2UtaWNvbihcInJhbmRvbSBzdHJpbmdcIiAkaWNvbi1hcnJvdy1yaWdodCA2MCwgJHNpemUsIHRyYW5zcGFyZW50KSB7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIH1cblxuICAmOjpiZWZvcmUge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgei1pbmRleDogLTE7XG4gIH1cblxuICBAZWFjaCAkdmFyaWF0aW9uIGluICRpY29uLWJ1dHRvbi1leHBlcmltZW50LTItY29sb3JzIHtcbiAgICAkbmFtZTogbnRoKCR2YXJpYXRpb24sIDEpO1xuICAgICRiZy1jb2xvcjogbnRoKCR2YXJpYXRpb24sIDIpO1xuICAgICRmZy1jb2xvcjogbnRoKCR2YXJpYXRpb24sIDMpO1xuXG4gICAgJi52LSN7JG5hbWV9IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiZy1jb2xvcjtcbiAgICAgIGNvbG9yOiAkZmctY29sb3I7XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlciwgJi5vbi1ob3ZlciB7XG4gICAgQGluY2x1ZGUgdGV4dC1pY29uLWJ1dHRvbi1leHBlcmltZW50LTItc2l6ZS12YXJpYXRpb24oJHNpemUsICRwYWRkaW5nLWgsICRib3JkZXItZmFjdG9yLCAwKTtcbiAgICAkb2Zmc2V0OiAtJHNpemUgKiAkb2Zmc2V0LWZhY3RvciAtICRzaXplICogJGJvcmRlci1mYWN0b3IgKiAwLjU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIG1hcmdpbi1sZWZ0OiAtICRvZmZzZXQ7XG4gIH1cbn1cblxuQGlmICR3aXRoLWJhc2UtY3NzIHtcbiAgLmMtaWNvbi1idXR0b24tZXhwZXJpbWVudC0yIHtcbiAgICAkYm9yZGVyLWZhY3RvcjogMC4xMjtcbiAgICAkb2Zmc2V0LWZhY3RvcjogMC4xNTtcbiAgICAkc2l6ZTogMTtcbiAgICBAaW5jbHVkZSBpY29uLWJ1dHRvbi1leHBlcmltZW50LTIoJHNpemUsICRib3JkZXItZmFjdG9yLCAkb2Zmc2V0LWZhY3RvciwgMCk7XG4gICAgQGluY2x1ZGUgaWNvbi12YXJpYXRpb25zKCRzaXplLCBmYWxzZSwgJHJhdGlvOiA3NSk7XG4gIH1cblxuICAuYy10ZXh0LWljb24tYnV0dG9uLWV4cGVyaW1lbnQtMiB7XG4gICAgJHBhZGRpbmctaDogMjVweDtcbiAgICAkYm9yZGVyLWZhY3RvcjogMC4xMjtcbiAgICAkb2Zmc2V0LWZhY3RvcjogMC4xNTtcbiAgICAkc2l6ZTogMTtcbiAgICBAaW5jbHVkZSBpY29uLWJ1dHRvbi1leHBlcmltZW50LTIoJHNpemUsICRib3JkZXItZmFjdG9yLCAkb2Zmc2V0LWZhY3RvciwgJHBhZGRpbmctaCk7XG5cbiAgICAmLnYtbW9iaWxlIHtcbiAgICAgICRzaXplOiAxO1xuICAgICAgJHBhZGRpbmctaDogMjBweDtcbiAgICAgIEBpbmNsdWRlIHRleHQtaWNvbi1idXR0b24tZXhwZXJpbWVudC0yLXNpemUtdmFyaWF0aW9uKCRzaXplLCAkcGFkZGluZy1oLCAkYm9yZGVyLWZhY3RvciwgJG9mZnNldC1mYWN0b3IpO1xuXG4gICAgICAmOmhvdmVyLCAmLm9uLWhvdmVyIHtcbiAgICAgICAgQGluY2x1ZGUgdGV4dC1pY29uLWJ1dHRvbi1leHBlcmltZW50LTItc2l6ZS12YXJpYXRpb24oJHNpemUsICRwYWRkaW5nLWgsICRib3JkZXItZmFjdG9yLCAwKTtcbiAgICAgICAgJG9mZnNldDogLSRzaXplICogJG9mZnNldC1mYWN0b3IgLSAkc2l6ZSAqICRib3JkZXItZmFjdG9yICogMC41O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtICRvZmZzZXQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJAbWl4aW4gbGFiZWwoXG4gICRoZWlnaHQ6IDUwcHgsXG4gICRsaW5lLWhlaWdodDogNTBweCxcbiAgJHBhZGRpbmctaG9yaXpvbnRhbDogMjVweCxcbiAgJGZnLWNvbG9yOiAkY29sb3ItbWFpbi1ibGFjayxcbiAgJGxpbms6IGZhbHNlLFxuICAkdXBwZXJjYXNlOiBmYWxzZSxcbiAgJG1vZGU6IFwiZ3JpZFwiKSB7XG4gICRoZWlnaHQtcHg6ICRoZWlnaHQ7XG5cbiAgQGluY2x1ZGUgdHlwb2dyYXBoeS1sYWJlbDtcblxuICBjb2xvcjogJGZnLWNvbG9yO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGhlaWdodDogJGhlaWdodC1weDtcbiAgbGluZS1oZWlnaHQ6ICRoZWlnaHQtcHg7XG4gIHBhZGRpbmctbGVmdDogJHBhZGRpbmctaG9yaXpvbnRhbDtcbiAgcGFkZGluZy1yaWdodDogJHBhZGRpbmctaG9yaXpvbnRhbDtcblxuICBAaWYgJGxpbmsge1xuICAgIEBpbmNsdWRlIGhvdmVyIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1tYWluLWJsYWNrO1xuICAgICAgY29sb3I6ICRjb2xvci1tYWluLXdoaXRlO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkdXBwZXJjYXNlIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB9XG5cbiAgQGNvbnRlbnQ7XG59XG5cbi8vIExhYmVsIHdpdGggYmFja2dyb3VuZCBjb2xvciwgYW5kIG1vZGUgd2l0aCBob3ZlciBjb2xvci5cbkBtaXhpbiBjb2xvdXJlZC1sYWJlbChcbiAgJGhlaWdodDogNTBweCxcbiAgJGxpbmUtaGVpZ2h0OiA1MHB4LFxuICAkcGFkZGluZy1ob3Jpem9udGFsOiAyNXB4LFxuICAkZmctY29sb3I6ICRjb2xvci1tYWluLWJsYWNrLFxuICAkbGluazogZmFsc2UsXG4gICR1cHBlcmNhc2U6IGZhbHNlLFxuICAkbW9kZTogXCJncmlkXCIpIHtcbiAgQGluY2x1ZGUgbGFiZWwoJGhlaWdodCwgJGxpbmUtaGVpZ2h0LCAkcGFkZGluZy1ob3Jpem9udGFsLCAkZmctY29sb3IsICRsaW5rLCAkdXBwZXJjYXNlLCAkbW9kZSk7XG4gIEBpbmNsdWRlIHRoZW1lZC1zdXBwb3J0O1xufVxuXG5AbWl4aW4gc21hbGwtYmxhY2stbGFiZWwge1xuICBAaW5jbHVkZSB0eXBvZ3JhcGh5LWxhYmVsO1xuICBmb250LXNpemU6IDEycHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMHB4O1xuICB0b3A6IDBweDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogMzBweDtcbiAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1tYWluLWJsYWNrO1xuICBjb2xvcjogJGNvbG9yLW1haW4td2hpdGU7XG4gIHBhZGRpbmc6IDAgMTVweDtcbiAgei1pbmRleDogMTtcbn1cblxuQG1peGluIHJpYmJvbi1sYWJlbCB7XG4gIEBpbmNsdWRlIHR5cG9ncmFwaHktbGFiZWw7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwcHg7XG4gIHRvcDogMHB4O1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAzMHB4O1xuICBsaW5lLWhlaWdodDogMzBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLW1haW4tZ3JlZW47XG4gIGNvbG9yOiAkY29sb3ItbWFpbi1ibGFjaztcbiAgcGFkZGluZzogMCAxNXB4O1xuICB6LWluZGV4OiAxO1xufVxuXG4uYy1jb2xvdXJlZC1sYWJlbCB7XG4gIEBpbmNsdWRlIGNvbG91cmVkLWxhYmVsO1xufVxuXG4vLyBmaWdjYXB0aW9uXG5AbWl4aW4gZmlnY2FwdGlvbi1sYWJlbCB7XG4gIEBpbmNsdWRlIHR5cG9ncmFwaHktbGFiZWw7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1tYWluLWJsYWNrO1xuICBjb2xvcjogJGNvbG9yLW1haW4td2hpdGU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgaGVpZ2h0OiA1MHB4O1xuICBsaW5lLWhlaWdodDogNTBweDtcbiAgcGFkZGluZy1sZWZ0OiAyNXB4O1xuICBwYWRkaW5nLXJpZ2h0OiAyNXB4O1xufVxuXG5AbWl4aW4gY29sb3VyZWQtbGFiZWwtc21hbGwge1xuICBAaW5jbHVkZSB0eXBvZ3JhcGh5LWxhYmVsO1xuICBmb250LXNpemU6IDE2cHg7IFxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBtaW4taGVpZ2h0OiAzMnB4O1xuICBsaW5lLWhlaWdodDogMzVweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBAaW5jbHVkZSB0aGVtZWQtc3VwcG9ydDtcbiAgY29sb3I6ICRjb2xvci1tYWluLWJsYWNrO1xuICBwYWRkaW5nOiAwIDE1cHg7XG4gIHotaW5kZXg6IDE7XG59XG5cbi5yaWJib24ge1xuICBAaW5jbHVkZSByaWJib24tbGFiZWw7XG5cbiAgc3BhbiB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICB9XG59XG5cbkBtaXhpbiByaWJib24tY2F0ZWdvcnktbGFiZWwge1xuICBAaW5jbHVkZSB0eXBvZ3JhcGh5LWxhYmVsO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxldHRlci1zcGFjaW5nOiAwLjVweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwcHg7XG4gIGJvdHRvbTogMHB4O1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAzMHB4O1xuICBsaW5lLWhlaWdodDogMzBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLW1haW4tYmxhY2s7XG4gIGNvbG9yOiAkY29sb3ItbWFpbi13aGl0ZTtcbiAgei1pbmRleDogMTtcbiAgcGFkZGluZzogMCAyMnB4O1xuXG4gIEBpbmNsdWRlIGJlbG93KCRicmVha3BvaW50LW1vYmlsZS1vdmVydmlldy1ibG9ja3MpIHtcbiAgICBwYWRkaW5nOiAwIDEwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxufVxuXG4ucmliYm9uLWNhdGVnb3J5IHtcbiAgQGluY2x1ZGUgcmliYm9uLWNhdGVnb3J5LWxhYmVsO1xufVxuXG4ucGFnZS1yZXByZXNlbnRhdGlvbl9faGVhZGVyIHtcbiAgLnJpYmJvbi1jYXRlZ29yeSB7XG4gICBmb250LXdlaWdodDogMzAwO1xuICB9XG59XG5cbkBtaXhpbiByaWJib24tbW9iaWxlLWxhYmVsIHtcbiAgQGluY2x1ZGUgdHlwb2dyYXBoeS1sYWJlbDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBoZWlnaHQ6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItbWFpbi1ncmVlbjtcbiAgY29sb3I6ICRjb2xvci1tYWluLWJsYWNrO1xuICBwYWRkaW5nOiAwIDEwcHg7XG4gIHotaW5kZXg6IDE7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLnJpYmJvbi1tb2JpbGUge1xuICBAaW5jbHVkZSByaWJib24tbW9iaWxlLWxhYmVsO1xufVxuIiwiJG1haW4tbWVudS1zaWRlLXdpZHRoOiA0MjBweDtcbiRvdmVydmlldy1ibG9jay1oZWlnaHQ6IDM2MHB4OyIsImJvZHkge1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xufVxuXG5AbWl4aW4gcmljaC10ZXh0KCRsaW5rLWNvbG9yOiRjb2xvci1tYWluLWJsYWNrLCAkbGluay11bmRlcmxpbmU6dHJ1ZSkge1xuICBhOm5vdCguY29udGVzdC12aWRlbyk6bm90KC5idXR0b24pIHtcbiAgICBAaW5jbHVkZSB0eXBvZ3JhcGh5LXBhcmFncmFwaDtcbiAgICBjb2xvcjogJGxpbmstY29sb3I7XG5cbiAgICBAaWYgJGxpbmstdW5kZXJsaW5lIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIHNlbGVjdGlvbih0cnVlKSB7XG4gICAgICBjb2xvcjogJGNvbG9yLW1haW4td2hpdGU7XG4gICAgfVxuICB9XG5cbiAgc3Ryb25nLCBiIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgfVxuXG4gIGVtLCBpIHtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIH1cbn1cblxuQG1peGluIHVsLXN0eWxpbmcoJGFjY2VudC1jb2xvcjokY29sb3ItbWFpbi1ibGFjaywgJGxpbmstY29sb3I6JGNvbG9yLW1haW4tYmxhY2ssICRsaW5rLXVuZGVybGluZTp0cnVlKSB7XG4gIEBpbmNsdWRlIHR5cG9ncmFwaHktZGVmYXVsdDtcbiAgQGluY2x1ZGUgcmljaC10ZXh0O1xuICBwYWRkaW5nLXRvcDogMTBweDtcbiAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4gIG1hcmdpbi1sZWZ0OiA3cHg7XG5cbiAgbGkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nLWxlZnQ6IDI1cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDVweDtcbiAgfVxuXG4gICY6bm90KC5jb250ZW50LWxpc3QtZG93bmxvYWRzKTpub3QoLmNvbnRlbnQtbGlzdC1saW5rcyk6bm90KC5hcnJhbmdlbWVudHMpOm5vdCgucGFnZS1zaGFyZS13cmFwcGVyKSA+IGxpOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwi4pagXCI7XG4gICAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgICBjb2xvcjogJGNvbG9yLW1haW4tYmxhY2s7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDA7XG4gIH1cbn1cblxuQG1peGluIG9sLXN0eWxpbmcoJGxpbmstY29sb3I6JGNvbG9yLW1haW4tYmxhY2ssICRsaW5rLXVuZGVybGluZTp0cnVlKSB7XG4gIEBpbmNsdWRlIHR5cG9ncmFwaHktZGVmYXVsdDtcbiAgQGluY2x1ZGUgcmljaC10ZXh0KCRsaW5rLXVuZGVybGluZTokbGluay11bmRlcmxpbmUpO1xuXG4gIGNvdW50ZXItcmVzZXQ6IGZvbztcbiAgZGlzcGxheTogdGFibGU7XG5cbiAgbGkge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgY291bnRlci1pbmNyZW1lbnQ6IGZvbztcbiAgICBkaXNwbGF5OiB0YWJsZS1yb3c7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgY29udGVudDogY291bnRlcihmb28pIFwiLlwiO1xuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgcGFkZGluZy1yaWdodDogMTFweDtcbiAgICB9XG4gIH1cbn1cblxuXG4uYy1yaWNoLXRleHQge1xuICBAaW5jbHVkZSByaWNoLXRleHQ7XG5cbiAgb2wge1xuICAgIEBpbmNsdWRlIG9sLXN0eWxpbmc7XG4gIH1cblxuICB1bCB7XG4gICAgQGluY2x1ZGUgdWwtc3R5bGluZztcbiAgfVxuXG4gIGgzIHtcbiAgICBAaW5jbHVkZSB0eXBvZ3JhcGh5LWhlYWRlci0zO1xuICB9XG5cbiAgaDQge1xuICAgIEBpbmNsdWRlIHR5cG9ncmFwaHktaGVhZGVyLTU7XG4gIH1cbn1cbiIsIkBtaXhpbiB2aWRlby1wbGF5LWJ1dHRvbigpIHtcblxuICAmOmFmdGVyIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250OiBub3JtYWwgMzBweC82MHB4IGljb25zO1xuICAgIHBhZGRpbmctbGVmdDogNHB4O1xuICAgIC8vIGZpeCBmb250IHBsYWNlbWVudFxuICAgIGNvbnRlbnQ6ICRpY29uLXBsYXk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogNTVweDtcbiAgICBjb2xvcjogJGNvbG9yLW1haW4td2hpdGU7XG4gICAgd2lkdGg6IDYwcHg7XG4gICAgaGVpZ2h0OiA2MHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgbWFyZ2luLWxlZnQ6IC0zMHB4O1xuICAgIG1hcmdpbi10b3A6IC0zMHB4O1xuICB9XG59XG5cbi8vLnZpZGVvLWxpbmsge1xuLy8gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbi8vICBjdXJzb3I6IHBvaW50ZXI7XG4vLyAgQGV4dGVuZCAldmlkZW8tcGxheS1idXR0b247XG4vL31cbi8vLmNvbnRlc3QtdmlkZW8gLnZpZGVve1xuLy8gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbi8vICBAZXh0ZW5kICV2aWRlby1wbGF5LWJ1dHRvbjtcbi8vICAmOmFmdGVyIHtcbi8vICAgIG1hcmdpbi10b3A6IC01MHB4O1xuLy8gIH1cbi8vfSIsIiRicmVha3BvaW50LXN0ZXAtdmlld2VyLXZlcnRpY2FsOiA3NjhweDtcblxuJG92ZXJ2aWV3OiAoXG4gICdndXR0ZXInOiAyMHB4LFxuKTtcblxuJGhlaWdodHM6IChcbiAgJ2hlYWRlcic6IDEwMHB4LFxuICAnZXhwZXJpbWVudC1oZWFkZXInOiAzMDBweCxcbiAgJ292ZXJ2aWV3LWhlYWRlcic6IDIwNXB4LFxuICAnb3ZlcnZpZXctaGVhZGVyLXRhYmxldCc6IDE3NXB4LFxuICAnb3ZlcnZpZXctaGVhZGVyLW1vYmlsZSc6IDI1MHB4LFxuKTtcblxuJG1hcmdpbnM6IChcbiAgJ2hvcml6b250YWwtbWFyZ2luLW1vYmlsZSc6IDIwcHgsXG4gICdjb21wb25lbnQtdmVydGljYWwnOiA0MHB4LFxuICAnY29tcG9uZW50LXZlcnRpY2FsLW1vYmlsZSc6IDIwcHgsXG4gICdndXR0ZXInOiBtYXBfZ2V0KCRvdmVydmlldywgJ2d1dHRlcicpLFxuICAnc3RlcC12aWV3ZXItZ3V0dGVyJzogMTEwcHgsXG4gICdzdGVwLXZpZXdlci1ndXR0ZXItLWxhbmRzY2FwZSc6IDUwcHgsXG4pO1xuXG4kcGFkZGluZ3M6IChcbiAgJ2NvbnRlbnQtcGFkZGluZy1ob3Jpem9udGFsLS1tb2JpbGUnOiA0MHB4LFxuICAnY29udGVudC1wYWRkaW5nLWhvcml6b250YWwtLWxhbmRzY2FwZSc6IDQwcHgsXG4gICdjb250ZW50LXBhZGRpbmctaG9yaXpvbnRhbCc6IDgwcHgsXG4gICdjb250ZW50LXBhZGRpbmctdmVydGljYWwnOiA1MHB4LFxuKTtcblxuJHBhbGV0dGU6IChcbiAgJ2JsYWNrJzogJGNvbG9yLW1haW4tYmxhY2ssXG4gICdibGFjay10cmFuc3BhcmVudCc6IHJnYmEoJGNvbG9yLW1haW4tYmxhY2ssIC44KSxcbiAgJ2JsdWUnOiAkY29sb3ItbWFpbi1ibHVlLFxuICAnZ3JlZW4nOiAkY29sb3ItbWFpbi1ncmVlbixcbiAgJ2dyZXknOiAkY29sb3ItbWFpbi1ncmV5LFxuICAncGluayc6ICRjb2xvci1tYWluLXBpbmssXG4gICdyYW5rLWdvbGQnOiAjY2ZiNTNiLFxuICAncmFuay1zaWx2ZXInOiAjZTZlOGZhLFxuICAncmFuay1icm9uemUnOiAjOGM3ODUzLFxuICAncmVkJzogJGNvbG9yLW1haW4tcmVkLFxuICAndHJhbnNwYXJlbnQnOiB0cmFuc3BhcmVudCxcbiAgJ3doaXRlJzogJGNvbG9yLW1haW4td2hpdGUsXG4gICd5ZWxsb3cnOiAkY29sb3ItbWFpbi15ZWxsb3csXG4pO1xuXG4kdHlwb2dyYXBoaWVzOiAoXG4gICdpdGVtLWxhYmVsJzogKFxuICAgICdmb250Jzogbm9ybWFsIDQwMCAyNnB4IC8gMzBweCAkZm9udC1jYW1wdG9uLWJvb2ssXG4gICksXG4gICdjaGVja2JveC1sYWJlbCc6IChcbiAgICAnZm9udCc6IG5vcm1hbCA0MDAgMTZweCAvIDIycHggJGZvbnQtY2FtcHRvbi1tZWRpdW0sXG4gICksXG4gICdkZXRhaWwtbGFiZWwnOiAoXG4gICAgJ2ZvbnQnOiBub3JtYWwgNDAwIDE2cHggLyAyMnB4ICRmb250LWNhbXB0b24tbWVkaXVtLFxuICApLFxuICAnZmlndXJlLWNhcHRpb24nOiAoXG4gICAgJ2ZvbnQnOiBub3JtYWwgNDAwIDEzcHggLyAyMHB4ICRmb250LWNhbXB0b24tbWVkaXVtLFxuICApLFxuICAncmVsYXRlZC1pdGVtLWxhYmVsJzogKFxuICAgICAgJ2ZvbnQnOiBub3JtYWwgNDAwIDE4cHggLyAyMHB4ICRmb250LWNhbXB0b24tYm9vayxcbiAgKSxcbiAgJ3N0ZXAtaGVhZGVyJzogKFxuICAgICAgJ2ZvbnQnOiBub3JtYWwgNDAwIDIwcHggLyAzMHB4ICRmb250LWNhbXB0b24tYm9vayxcbiAgKSxcbiAgJ3N0ZXAtZGVzY3JpcHRpb24nOiAoXG4gICAgICAnZm9udCc6IG5vcm1hbCA0MDAgMThweCAvIDI1cHggJGZvbnQtY2FtcHRvbi1ib29rLFxuICApLFxuICAnZGV0YWlsLWhlYWRlcic6IChcbiAgICAgICdmb250Jzogbm9ybWFsIDQwMCA2MHB4IC8gNjJweCAkZm9udC1jYW1wdG9uLWJvb2ssXG4gICksXG4gICdkZXRhaWwtaGVhZGVyLW1vYmlsZSc6IChcbiAgICAgICdmb250Jzogbm9ybWFsIDQwMCA0MHB4IC8gNDJweCAkZm9udC1jYW1wdG9uLWJvb2ssXG4gICksXG4gICdkZXRhaWwtc3ViaGVhZGVyJzogKFxuICAgICAgJ2ZvbnQnOiBub3JtYWwgNDAwIDI2cHggLyAzNHB4ICRmb250LWNhbXB0b24tYm9vayxcbiAgKSxcbiAgJ2RldGFpbC1kdXJhdGlvbic6IChcbiAgICAgICdmb250Jzogbm9ybWFsIDQwMCAyMHB4IC8gMzBweCAkZm9udC1jYW1wdG9uLW1lZGl1bSxcbiAgKSxcbiAgJ2RldGFpbC1jb250ZW50JzogKFxuICAgICAgJ2ZvbnQnOiBub3JtYWwgNDAwIDIwcHggLyAzMHB4ICRmb250LWNhbXB0b24tYm9vayxcbiAgKSxcbiAgJ292ZXJ2aWV3LWhlYWRlcic6IChcbiAgICAgICdmb250Jzogbm9ybWFsIDQwMCA2MHB4IC8gNjJweCAkZm9udC1jYW1wdG9uLWJvb2ssXG4gICksXG4gICdvdmVydmlldy1oZWFkZXItbW9iaWxlJzogKFxuICAgICAgJ2ZvbnQnOiBub3JtYWwgNDAwIDQwcHggLyA0MnB4ICRmb250LWNhbXB0b24tYm9vayxcbiAgKSxcbik7XG5cbiR3aWR0aHM6IChcbiAgJ2RldGFpbC1hc2lkZSc6IDI2MHB4LFxuICAnZGV0YWlsLWNvbnRlbnQtbGFuZHNjYXBlJzogMTAyNHB4IC0gMjYwcHgsXG4gICdkZXRhaWwtY29udGVudCc6IDExMDRweCAtIDI2MHB4LFxuKTtcbiIsIkBmdW5jdGlvbiBnZXQtaGVpZ2h0KCRuYW1lKSB7XG4gIEByZXR1cm4gbWFwX2dldCgkaGVpZ2h0cywgJG5hbWUpO1xufVxuXG5AZnVuY3Rpb24gZ2V0LW1hcmdpbigkbmFtZSkge1xuICBAcmV0dXJuIG1hcF9nZXQoJG1hcmdpbnMsICRuYW1lKTtcbn1cblxuQGZ1bmN0aW9uIGdldC1wYWRkaW5nKCRuYW1lKSB7XG4gIEByZXR1cm4gbWFwX2dldCgkcGFkZGluZ3MsICRuYW1lKTtcbn1cblxuQGZ1bmN0aW9uIGdldC13aWR0aCgkbmFtZSkge1xuICBAcmV0dXJuIG1hcF9nZXQoJHdpZHRocywgJG5hbWUpO1xufVxuXG5AbWl4aW4gY29sb3JpemUoJGZvcmVncm91bmQ6ZmFsc2UsICRiYWNrZ3JvdW5kOmZhbHNlLCAkZmlsbDpmYWxzZSkge1xuICBAaWYgJGZvcmVncm91bmQge1xuICAgIGNvbG9yOiBtYXBfZ2V0KCRwYWxldHRlLCAkZm9yZWdyb3VuZCk7XG4gIH1cblxuICBAaWYgJGJhY2tncm91bmQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hcF9nZXQoJHBhbGV0dGUsICRiYWNrZ3JvdW5kKTtcbiAgfVxuXG4gIEBpZiAkZmlsbCB7XG4gICAgZmlsbDogbWFwX2dldCgkcGFsZXR0ZSwgJGZpbGwpO1xuICB9XG59XG5cbkBtaXhpbiBjaGVja2JveC1pbnB1dCgkZmFjZS1jbGFzcywgJGhlaWdodDokYnV0dG9uLXNpemUsICR3aWR0aDokYnV0dG9uLXNpemUpIHtcbiAgaGVpZ2h0OiAkaGVpZ2h0O1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6ICR3aWR0aDtcblxuICAmOmNoZWNrZWQgKyAuI3skZmFjZS1jbGFzc30ge1xuICAgICY6OmFmdGVyIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gY2hlY2tib3gtZmFjZSgkdG9wLW9mZnNldDowLCAkcmlnaHQtb2Zmc2V0OjVweCwgJHNpemU6MjBweCwgJGhlaWdodDogJGJ1dHRvbi1zaXplLCAkd2lkdGg6JGJ1dHRvbi1zaXplKSB7XG4gIEBpbmNsdWRlIGNvbG9yaXplKCRiYWNrZ3JvdW5kOiAnd2hpdGUnKTtcbiAgaGVpZ2h0OiAkc2l6ZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICAkb2Zmc2V0OiAoJHdpZHRoIC0gJHNpemUpIC8gMjtcbiAgJG9mZnNldC10b3A6ICgkaGVpZ2h0IC0gJHNpemUpIC8gMjsgLy8gYXV0b21hdGljOyBuZWVkcyB0byBiZSByZWFkanVzdGVkIHdpdGggdGhlIG1hbnVhbCB0b3Atb2Zmc2V0XG4gIEBpbmNsdWRlIHBvc2l0aW9uKCRyaWdodDokb2Zmc2V0ICsgJHJpZ2h0LW9mZnNldCwgJHRvcDokb2Zmc2V0LXRvcCArICR0b3Atb2Zmc2V0KTtcbiAgd2lkdGg6ICRzaXplO1xuXG4gIEBpbmNsdWRlIGFkZC1pY29uKCRpY29uLWNoZWNrKSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBmb250LXNpemU6IDI0cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJvdHRvbTogM3B4ICsgJHRvcC1vZmZzZXQ7XG4gICAgbGVmdDogMXB4O1xuICB9XG59XG5cbkBtaXhpbiBwb3NpdGlvbigkdHlwZTonYWJzb2x1dGUnLCAkdG9wOmF1dG8sICRyaWdodDphdXRvLCAkYm90dG9tOmF1dG8sICRsZWZ0OmF1dG8sICR6LWluZGV4Om51bGwpIHtcbiAgcG9zaXRpb246ICN7JHR5cGV9O1xuICBib3R0b206ICRib3R0b207XG4gIGxlZnQ6ICRsZWZ0O1xuICByaWdodDogJHJpZ2h0O1xuICB0b3A6ICR0b3A7XG4gIEBpZiAkei1pbmRleCB7XG4gICAgei1pbmRleDogJHotaW5kZXg7XG4gIH1cbn1cblxuQG1peGluIHR5cG9ncmFwaHkoJHR5cGUpIHtcbiAgQGVhY2ggJHByb3BlcnR5LCAkdmFsdWUgaW4gbWFwX2dldCgkdHlwb2dyYXBoaWVzLCAkdHlwZSkge1xuICAgIEBpZiAkcHJvcGVydHkgPT0gJ2NvbG9yJyB7XG4gICAgICBAaW5jbHVkZSBjb2xvcml6ZSgkZm9yZWdyb3VuZDokdmFsdWUpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgfVxuICB9XG59XG4iLCIuc3RlcC12aWV3ZXItc3RlcCB7XG4gIEBpbmNsdWRlIGNvbG9yaXplKCRiYWNrZ3JvdW5kOid3aGl0ZScpO1xuICBtYXJnaW4tcmlnaHQ6IGdldC1tYXJnaW4oJ3N0ZXAtdmlld2VyLWd1dHRlcicpO1xuICBAaW5jbHVkZSBwb3NpdGlvbigncmVsYXRpdmUnKTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSA0MDBtcyBlYXNlO1xuXG4gIEBpbmNsdWRlIGJlbG93KCRicmVha3BvaW50LWxhcmdlKSB7XG4gICAgbWFyZ2luLXJpZ2h0OiBnZXQtbWFyZ2luKCdzdGVwLXZpZXdlci1ndXR0ZXItLWxhbmRzY2FwZScpO1xuICB9XG5cbiAgJi5zdGVwLXZpZXdlci1zdGVwLS1jb25jbHVzaW9uIHtcbiAgICBAaW5jbHVkZSBjb2xvcml6ZSgkYmFja2dyb3VuZDonZ3JlZW4nKTtcblxuICAgIC5zdGVwLXZpZXdlci1zdGVwX19oZWFkZXIge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAuc3RlcC12aWV3ZXItc3RlcF9fZGVzY3JpcHRpb24ge1xuICAgICAgcGFkZGluZzogNDBweDtcblxuICAgICAgQGluY2x1ZGUgYmVsb3coJGJyZWFrcG9pbnQtc21hbGwpIHtcbiAgICAgICAgcGFkZGluZzogMjBweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm5vdCguc3dpcGVyLXNsaWRlLWFjdGl2ZSkge1xuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYuc3RlcC12aWV3ZXItc3RlcC0tbm8taW1hZ2Uge1xuICB9XG5cbiAgJjpub3QoLnN3aXBlci1zbGlkZS1hY3RpdmUpIHtcbiAgICBAaW5jbHVkZSBhYm92ZSgkYnJlYWtwb2ludC1zdGVwLXZpZXdlci12ZXJ0aWNhbCkge1xuICAgICAgb3BhY2l0eTogMC4wO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGFib3ZlKCRicmVha3BvaW50LXN0ZXAtdmlld2VyLXZlcnRpY2FsKSB7XG4gICAgICAvL21heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAvL292ZXJmbG93OiBoaWRkZW47XG4gICAgICAvLyY6OmFmdGVyIHtcbiAgICAgIC8vICBjb250ZW50OiAnJztcbiAgICAgIC8vICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICAgIC8vICBkaXNwbGF5OiBibG9jaztcbiAgICAgIC8vICBAaW5jbHVkZSBwb3NpdGlvbignYWJzb2x1dGUnLCAkYm90dG9tOjAsICRsZWZ0OjApO1xuICAgICAgLy8gIGhlaWdodDogMjRweDtcbiAgICAgIC8vICB3aWR0aDogMTAwJTtcbiAgICAgIC8vfVxuICAgIH1cbiAgfVxuXG4gICYuc3dpcGVyLXNsaWRlLWFjdGl2ZSB+IC5zd2lwZXItc2xpZGUge1xuICAgIEBpbmNsdWRlIGFib3ZlKCRicmVha3BvaW50LXN0ZXAtdmlld2VyLXZlcnRpY2FsKSB7XG4gICAgICBvcGFjaXR5OiAwLjY7XG4gICAgfVxuICB9XG5cbiAgLnN0ZXAtdmlld2VyLXN0ZXBfX2hlYWRlciB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBAaW5jbHVkZSBjb2xvcml6ZSgkYmFja2dyb3VuZDond2hpdGUnKTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgaGVpZ2h0OiAkYnV0dG9uLXNpemU7XG4gICAgcGFkZGluZzogMCAyMHB4O1xuICAgIEBpbmNsdWRlIHBvc2l0aW9uKCdhYnNvbHV0ZScsICR0b3A6MCwgJGxlZnQ6MCwgJHotaW5kZXg6Mik7XG4gICAgQGluY2x1ZGUgdHlwb2dyYXBoeSgnc3RlcC1oZWFkZXInKTtcbiAgfVxuXG4gIC5zdGVwLXZpZXdlci1zdGVwX19pbWFnZS1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIGNvbG9yaXplKCRiYWNrZ3JvdW5kOidncmV5Jyk7XG4gICAgaGVpZ2h0OiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiBwZXJjZW50YWdlKDIvMyk7XG4gICAgQGluY2x1ZGUgcG9zaXRpb24oJ3JlbGF0aXZlJyk7XG4gIH1cblxuICAuc3RlcC12aWV3ZXItc3RlcF9faW1hZ2Uge1xuICAgIEBpbmNsdWRlIHBvc2l0aW9uKCdhYnNvbHV0ZScsICR0b3A6MCwgJGxlZnQ6MCk7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLnN0ZXAtdmlld2VyLXN0ZXBfX2Rlc2NyaXB0aW9uIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmc6IDI1cHggMjBweDtcbiAgICBAaW5jbHVkZSB0eXBvZ3JhcGh5KCdzdGVwLWRlc2NyaXB0aW9uJyk7XG4gIH1cblxuICAuZGlzY292ZXItY29udGVudCB7XG4gICAgaDMge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICB9XG4gIH1cbn1cbiIsIkBpbXBvcnQgXCJvdmVydmlld1wiO1xuQGltcG9ydCBcImNvbnRlc3QtcGFnZVwiO1xuQGltcG9ydCBcImRldGFpbC1wYWdlXCI7XG5AaW1wb3J0IFwiZXhwZXJpbWVudC1wYWdlXCI7XG5AaW1wb3J0IFwicWFuZGEtcGFnZVwiO1xuQGltcG9ydCBcInRpZGJpdC1wYWdlXCI7XG5cblxuLy9AaW1wb3J0IFwidGhlbWVfZGV0YWlsX3BhZ2VcIjtcbi8vQGltcG9ydCBcImNvbnRlc3RfcGFnZVwiO1xuLy9AaW1wb3J0IFwidGhlbWVfZm9vdGVyXCI7IiwiXG4uZGlzY292ZXItb3ZlcnZpZXctcGFnZSB7XG4gIC5jLW1haW4tbG9nbyB7XG4gICAgd2lkdGg6IDEwMHB4O1xuICB9XG5cbiAgLmMtc2lkZS1uYXZpZ2F0aW9uIHtcbiAgICAuZS12aXNpYmxlLWljb25zIHtcbiAgICAgIEBpbmNsdWRlIGJlbG93KCRicmVha3BvaW50LW1vYmlsZSkge1xuICAgICAgICB3aWR0aDogNTBweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAucGFnZS1vdmVydmlldy1zZWN0aW9uIHtcbiAgICBAaW5jbHVkZSBjb2xvcml6ZSgkYmFja2dyb3VuZDond2hpdGUnKTtcbiAgfVxuXG4gIC5kaXNjb3Zlci1maWx0ZXItYmFyIHtcbiAgICBtYXJnaW4tYm90dG9tOiBnZXQtbWFyZ2luKCdjb21wb25lbnQtdmVydGljYWwnKTtcblxuICAgIEBpbmNsdWRlIGJlbG93KCRicmVha3BvaW50LXNtYWxsKSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiBnZXQtbWFyZ2luKCdjb21wb25lbnQtdmVydGljYWwtbW9iaWxlJyk7XG4gICAgfVxuICB9XG59XG4iLCJcbi5kaXNjb3Zlci1jb250ZXN0LXBhZ2Uge1xuICAuZGlzY292ZXItZGV0YWlsLWhlYWRlciB7XG4gICAgQGluY2x1ZGUgY29sb3JpemUoJGJhY2tncm91bmQ6J3JlZCcpO1xuICAgIGhlaWdodDogZ2V0LWhlaWdodCgnZXhwZXJpbWVudC1oZWFkZXInKTtcbiAgfVxuXG4gIC5kaXNjb3Zlci1kZXRhaWwtY29udGVudF9fYmFja2dyb3VuZCB7XG4gICAgQGluY2x1ZGUgY29sb3JpemUoJGJhY2tncm91bmQ6J3JlZCcpO1xuICB9XG5cbiAgLmRpc2NvdmVyLWRldGFpbC1hc2lkZSB7XG4gICAgQGluY2x1ZGUgY29sb3JpemUoJGJhY2tncm91bmQ6J3RyYW5zcGFyZW50Jyk7XG5cbiAgICAuZGlzY292ZXItZGV0YWlsLWFzaWRlX19iYWNrIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IGdldC1oZWlnaHQoJ2V4cGVyaW1lbnQtaGVhZGVyJykgLSAkYnV0dG9uLXNpemUgKiAyO1xuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5kaXNjb3Zlci1kZXRhaWwtY29udGVudF9fbWFpbiB7XG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tdG9wOiBnZXQtaGVpZ2h0KCdleHBlcmltZW50LWhlYWRlcicpO1xuICAgIH1cbiAgfVxuXG4gIC5kaXNjb3Zlci1kZXRhaWwtY29udGVudF9fbGFiZWwge1xuICAgIEBpbmNsdWRlIGNvbG9yaXplKCRiYWNrZ3JvdW5kOidyZWQnKTtcbiAgICB0b3A6IGdldC1oZWlnaHQoJ2V4cGVyaW1lbnQtaGVhZGVyJykgLSAkYnV0dG9uLXNpemU7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZDogdXJsKC9zdGF0aWMvZGlzY292ZXIvaW1hZ2VzL2ljb24tc2kuc3ZnKSBuby1yZXBlYXQgY2VudGVyO1xuICAgIH1cbiAgfVxuXG4gIC5kaXNjb3Zlci1kZXRhaWwtY29udGVudF9fdGl0bGUge1xuICAgIEBpbmNsdWRlIGFib3ZlKCRicmVha3BvaW50LXNtYWxsKSB7XG4gICAgICBAaW5jbHVkZSBjb2xvcml6ZSgkYmFja2dyb3VuZDond2hpdGUnKTtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgaGVpZ2h0OiBnZXQtaGVpZ2h0KCdleHBlcmltZW50LWhlYWRlcicpIC0gMTAwcHg7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgcGFkZGluZy1sZWZ0OiAzMHB4O1xuICAgICAgcGFkZGluZy1yaWdodDogMzBweDtcbiAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKCdhYnNvbHV0ZScsICRib3R0b206MTAwJSwgJGxlZnQ6MCk7XG4gICAgfVxuICB9XG59XG4iLCIuZGlzY292ZXItZGV0YWlsLXBhZ2Uge1xuICAuYy1tYWluLWxvZ28ge1xuICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgLy9AaW5jbHVkZSBiZWxvdygkYnJlYWtwb2ludC1mdWxsLWxvZ28pIHtcbiAgICAvL31cblxuICAgIEBpbmNsdWRlIGJlbG93KCRicmVha3BvaW50LWxhcmdlKSB7XG4gICAgICBtYXgtd2lkdGg6IDEwMHB4O1xuICAgIH1cbiAgfVxuXG4gIC5wYWdlLXdyYXBwZXIge1xuICAgIEBpbmNsdWRlIGNvbG9yaXplKCRiYWNrZ3JvdW5kOid3aGl0ZScpO1xuICB9XG5cbiAgLmRpc2NvdmVyLWNvbnRlbnQge1xuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cblxuICAuZGlzY292ZXItZGV0YWlsLXBhZ2VfX2J1dHRvbi1wcmludCB7XG4gICAgQGluY2x1ZGUgdGV4dC1pY29uLWJ1dHRvbigkYmctY29sb3I6JGNvbG9yLW1haW4td2hpdGUsICRmZy1jb2xvcjokY29sb3ItbWFpbi1ibGFjaywgJGhvdmVyLWJnLWNvbG9yOiRjb2xvci1tYWluLWdyZWVuLFxuICAgICRob3Zlci1mZy1jb2xvcjokY29sb3ItbWFpbi1ibGFjaywgJGljb246JGljb24tZGF0YS1wcmludCwgJHNpemU6ICRidXR0b24tc2l6ZSwgJGxvY2F0aW9uOidhZnRlcicpO1xuICB9XG5cbiAgLmRpc2NvdmVyLWRldGFpbC1wYWdlX19oZWFkZXIge1xuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gICAgQGluY2x1ZGUgdHlwb2dyYXBoeSgnZGV0YWlsLXN1YmhlYWRlcicpO1xuICB9XG5cbiAgLmRpc2NvdmVyLWRldGFpbC1wYWdlX19kaXZpZGVyIHtcbiAgICBib3JkZXItd2lkdGg6IDA7XG4gICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICBtYXJnaW4tYm90dG9tOiAzNXB4O1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZDogbWFwX2dldCgkcGFsZXR0ZSwgJ2JsYWNrJyk7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cblxuICAuZGlzY292ZXItcmVxdWlyZW1lbnRzIHtcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuICAgIG1hcmdpbi10b3A6IC0xMHB4O1xuICB9XG59XG4iLCJcbi5kaXNjb3Zlci1leHBlcmltZW50LXBhZ2Uge1xuXG4gIC5kaXNjb3Zlci1kZXRhaWwtaGVhZGVyIHtcbiAgICBAaW5jbHVkZSBjb2xvcml6ZSgkYmFja2dyb3VuZDogJ3llbGxvdycpO1xuICAgIGhlaWdodDogZ2V0LWhlaWdodCgnZXhwZXJpbWVudC1oZWFkZXInKTtcbiAgfVxuXG4gIC5kaXNjb3Zlci1kZXRhaWwtY29udGVudF9fYmFja2dyb3VuZCB7XG4gICAgQGluY2x1ZGUgY29sb3JpemUoJGJhY2tncm91bmQ6ICd5ZWxsb3cnKTtcbiAgfVxuXG4gIC5kaXNjb3Zlci1kZXRhaWwtYXNpZGUge1xuICAgIEBpbmNsdWRlIGNvbG9yaXplKCRiYWNrZ3JvdW5kOiAndHJhbnNwYXJlbnQnKTtcblxuICAgIC5kaXNjb3Zlci1kZXRhaWwtYXNpZGVfX2JhY2sge1xuICAgICAgLy8gbWFyZ2luLWJvdHRvbTogZ2V0LWhlaWdodCgnZXhwZXJpbWVudC1oZWFkZXInKSAtICRidXR0b24tc2l6ZSAqIDI7XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmRpc2NvdmVyLWRldGFpbC1jb250ZW50X19sYWJlbCB7XG4gICAgQGluY2x1ZGUgY29sb3JpemUoJGJhY2tncm91bmQ6ICd5ZWxsb3cnKTtcbiAgICB0b3A6IGdldC1oZWlnaHQoJ2V4cGVyaW1lbnQtaGVhZGVyJykgLSAkYnV0dG9uLXNpemU7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZDogdXJsKC9zdGF0aWMvZGlzY292ZXIvaW1hZ2VzL2ljb24tZGl5LnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcbiAgICB9XG4gIH1cblxuICAuZGlzY292ZXItZGV0YWlsLWNvbnRlbnRfX3RpdGxlIHtcbiAgICBAaW5jbHVkZSBhYm92ZSgkYnJlYWtwb2ludC1zbWFsbCkge1xuICAgICAgQGluY2x1ZGUgY29sb3JpemUoJGJhY2tncm91bmQ6ICd3aGl0ZScpO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBoZWlnaHQ6IGdldC1oZWlnaHQoJ2V4cGVyaW1lbnQtaGVhZGVyJykgLSAxMDBweDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDMwcHg7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAzMHB4O1xuICAgICAgQGluY2x1ZGUgcG9zaXRpb24oJ2Fic29sdXRlJywgJGJvdHRvbTogMTAwJSwgJGxlZnQ6IDApO1xuICAgIH1cbiAgfVxuXG4gIC5kaXNjb3Zlci1leHBlcmltZW50LXBhZ2VfX2R1cmF0aW9uIHtcbiAgICBAaW5jbHVkZSB0eXBvZ3JhcGh5KCdkZXRhaWwtZHVyYXRpb24nKTtcbiAgICBAaW5jbHVkZSBhZGQtaWNvbigkaWNvbi1jbG9jaywgJGxvY2F0aW9uOiAnYmVmb3JlJykge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgIH1cbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgfVxuXG4gIC5zdGVwLXZpZXdlciB7XG4gICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgfVxufVxuXG5cblxuIiwiXG4uZGlzY292ZXItcWFuZGEtcGFnZSB7XG4gIC5kaXNjb3Zlci1kZXRhaWwtY29udGVudF9fYmFja2dyb3VuZCB7XG4gICAgQGluY2x1ZGUgY29sb3JpemUoJGJhY2tncm91bmQ6J2JsdWUnKTtcbiAgfVxuXG4gIC5kaXNjb3Zlci1kZXRhaWwtY29udGVudF9fbGFiZWwge1xuICAgIEBpbmNsdWRlIGNvbG9yaXplKCRiYWNrZ3JvdW5kOidibHVlJyk7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZDogdXJsKC9zdGF0aWMvZGlzY292ZXIvaW1hZ2VzL2ljb24tdHkuc3ZnKSBuby1yZXBlYXQgY2VudGVyO1xuICAgIH1cbiAgfVxuXG4gIC8vIC5kaXNjb3Zlci1kZXRhaWwtYXNpZGUge1xuICAvLyAgIEBpbmNsdWRlIGNvbG9yaXplKCRiYWNrZ3JvdW5kOidibHVlJyk7XG4gIC8vIH1cbn0iLCJcbi5kaXNjb3Zlci10aWRiaXQtcGFnZSB7XG4gIC5kaXNjb3Zlci1kZXRhaWwtY29udGVudF9fYmFja2dyb3VuZCB7XG4gICAgQGluY2x1ZGUgY29sb3JpemUoJGJhY2tncm91bmQ6J3BpbmsnKTtcbiAgfVxuXG4gIC5kaXNjb3Zlci1kZXRhaWwtY29udGVudF9fbGFiZWwge1xuICAgIEBpbmNsdWRlIGNvbG9yaXplKCRiYWNrZ3JvdW5kOidwaW5rJyk7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZDogdXJsKC9zdGF0aWMvZGlzY292ZXIvaW1hZ2VzL2ljb24tZHlrLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcbiAgICB9XG4gIH1cblxuICAuZGlzY292ZXItZGV0YWlsLWFzaWRlIHtcbiAgICAvLyBAaW5jbHVkZSBjb2xvcml6ZSgkYmFja2dyb3VuZDoncGluaycpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7IFxuICB9XG59XG5cblxuLmRpc2NvdmVyLXRpZGJpdC1wYWdlIC5kaXNjb3Zlci1kZXRhaWwtY29udGVudCAuZGlzY292ZXItZGV0YWlsLWFzaWRlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgXG59IiwiQGltcG9ydCBcImRldGFpbFwiO1xuQGltcG9ydCBcIm92ZXJ2aWV3XCI7IiwiLmV4cGVyaW1lbnQtcGFnZSB7XG4gIHNlY3Rpb24gPiBoMiB7XG4gICAgQGluY2x1ZGUgZ3JpZC1wYWRkaW5nO1xuICAgIEBpbmNsdWRlIHR5cG9ncmFwaHktaGVhZGVyLTM7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgfVxufVxuXG4uZXhwZXJpbWVudC1kdXJhdGlvbiB7XG4gIEBpbmNsdWRlIGdyaWQtcGFkZGluZygkbW9kZTogJ21hcmdpbicpO1xuICBAaW5jbHVkZSB0eXBvZ3JhcGh5LWhlYWRlci01O1xuICBAaW5jbHVkZSBhZGQtaWNvbigkaWNvbi1jbG9jaywgJGxvY2F0aW9uOiAnYmVmb3JlJykge1xuICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgfVxufVxuXG4uZXhwZXJpbWVudC1hc2lkZS1pbWFnZS1sZWZ0IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmV4cGVyaW1lbnQtYXNpZGUtaW1hZ2UtcmlnaHQge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uZXhwZXJpbWVudC1yZXF1aXJlbWVudHMge1xuICBAaW5jbHVkZSBtYXgtd2lkdGg7XG4gIEBpbmNsdWRlIGdyaWQtcGFkZGluZztcbiAgbWFyZ2luLWJvdHRvbTogNDBweDtcbiAgQGluY2x1ZGUgdHlwb2dyYXBoeS1kZWZhdWx0O1xuXG4gIGgyIHtcbiAgICBAaW5jbHVkZSB0eXBvZ3JhcGh5LWhlYWRlci00O1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIH1cblxuICB1bCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDUwJTtcblxuICAgICY6bm90KDpmaXJzdC1vZi10eXBlKSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDM1cHg7XG4gICAgfVxuICB9XG5cbiAgbGkge1xuICAgIG1pbi1oZWlnaHQ6IDMycHg7XG5cbiAgICBsYWJlbCB7XG4gICAgICBAaW5jbHVkZSBjaGVja2JveDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyN3B4O1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgaW5wdXQge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgIH1cblxuICAgICAgLmUtZmFjZSB7XG5cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBiZWxvdyg1MDBweCkge1xuICAgIHVsIHtcbiAgICAgICY6bm90KDpmaXJzdC1vZi10eXBlKSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIH1cbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxufVxuXG4uZXhwZXJpbWVudC1pbm5lciB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItbWFpbi1ncmV5O1xuICBwYWRkaW5nOiAkbWFyZ2luICRtYXJnaW4gJG1hcmdpbi1zbWFsbCAkbWFyZ2luO1xufVxuXG4uZXhwZXJpbWVudC1zdGFydCB7XG4gIEBpbmNsdWRlIHR5cG9ncmFwaHktaGVhZGVyLTM7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1tYWluLWdyZXk7XG4gIHBhZGRpbmctdG9wOiAkbWFyZ2luO1xufVxuXG4uZXhwZXJpbWVudC1zdGVwcy1zZWN0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLW1haW4tZ3JleTtcbn1cblxuLmV4cGVyaW1lbnQtc3RlcCB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBAaW5jbHVkZSBncmlkLXBhZGRpbmc7XG4gIEBpbmNsdWRlIG1heC13aWR0aDtcblxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1ib3R0b206ICRtYXJnaW47XG5cbiAgJjpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiA2MHB4O1xuICB9XG5cbiAgLmV4cGVyaW1lbnQtc3RlcC1pbm5lciB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLW1haW4td2hpdGU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgLnN0ZXAtbnVtYmVyIHtcbiAgICAkaGVpZ2h0OiA1MHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAkaGVpZ2h0O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHotaW5kZXg6ICRsYXllci1jb250ZW50O1xuICAgIEBpbmNsdWRlIGNvbG91cmVkLWxhYmVsKCR1cHBlcmNhc2U6IHRydWUpO1xuICB9XG5cbiAgLmV4cGVyaW1lbnQtc3RlcC1maWd1cmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1tYWluLWJsYWNrO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmbG9hdDogbGVmdDtcbiAgICBoZWlnaHQ6IDMwMHB4O1xuICAgIHdpZHRoOiAzODBweDtcbiAgICBtYXJnaW46IDAgJG1hcmdpbi1zbWFsbCAwIDA7XG4gICAgZm9udC1zaXplOiAwO1xuXG4gICAgaW1nIHtcbiAgICAgIC8vaGVpZ2h0OiAxMDAlOyBudWh1XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAuZS1tb2JpbGUge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBiZWxvdygxMDAwcHgpIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgbWFyZ2luOiAwIDAgJG1hcmdpbi1zbWFsbCAwO1xuICAgICAgaGVpZ2h0OiAwO1xuICAgICAgcGFkZGluZy1ib3R0b206IDMwMCAvIDM4MCAqIDEwMCU7XG4gICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgLmUtbW9iaWxlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG5cbiAgICAgIC5lLWRlc2t0b3Age1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5leHBlcmltZW50LXN0ZXAtdGV4dCB7XG4gICAgQGluY2x1ZGUgdHlwb2dyYXBoeS1kZWZhdWx0O1xuICAgIEBpbmNsdWRlIHJpY2gtdGV4dDtcbiAgICBwYWRkaW5nOiAkbWFyZ2luLXNtYWxsO1xuXG4gICAgcCArIHAge1xuICAgICAgcGFkZGluZy10b3A6IDEwcHg7XG4gICAgfVxuICB9XG59XG5cbi5leHBlcmltZW50LXBhZ2Uge1xuICAucGFnZS1zaGFyZSB7XG4gICAgbWFyZ2luLXRvcDogMzBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICB9XG5cbiAgLmRpc2NvdmVyLWxpc3QtY29udGFpbmVyIHtcbiAgICBwYWRkaW5nLXRvcDogMjBweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTAwcHg7XG4gIH1cblxuICAub3RoZXItZXhwZXJpbWVudHMge1xuICAgIC5kaXNjb3Zlci1ibG9ja3Mge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1wYWRkaW5nO1xuICAgIH1cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItbWFpbi1ncmV5O1xuICAgIHBhZGRpbmctdG9wOiAkbWFyZ2luO1xuICB9XG5cbiAgLm1vcmUtdGhlbWVzIHtcbiAgICBAaW5jbHVkZSBncmlkLXBhZGRpbmc7XG4gIH1cbn1cbiIsIi50aGVtZS1vdmVydmlldy1wYWdlIHtcbiAgJGhlYWRlci1pbWFnZS1zaXplOiAkaGVhZGVyLXdpdGgtaW1hZ2Utc2l6ZS1zaW1wbGU7XG4gICRoZWFkZXItaW1hZ2Utc2l6ZS1tb2JpbGU6ICRoZWFkZXItd2l0aC1pbWFnZS1zaXplLXNpbXBsZS1tb2JpbGU7XG4gICRtaW4tbG9nby1zaXplOiAxMDBweDtcblxuICAvLyBDdXN0b20gaGVhZGVyIGltYWdlXG4gIC5wYWdlLWhlYWRlciB7XG4gICAgYm9yZGVyOiA1cHggc29saWQgcmVkO1xuICAgIC5wYWdlLWhlYWRlci1pbWFnZSB7XG4gICAgICBoZWlnaHQ6ICRoZWFkZXItaW1hZ2Utc2l6ZTtcbiAgICB9XG4gIH1cblxuICAvLyBDdXN0b20gaGVhZGVyXG4gIC5wYWdlLXNlY3Rpb25zIHtcbiAgICBtYXJnaW4tdG9wOiAkaGVhZGVyLWltYWdlLXNpemU7XG5cbiAgICAuaW5uZXItbWFyZ2luZWQge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG5cbiAgICAucGFnZS1sZWZ0LXNwYWNlciB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC8vIEhlYWRlciB0ZXh0IGJsb2NrXG4gIC5oZWFkZXItd3JhcHBlciB7XG4gICAgQGluY2x1ZGUgdGV4dC1ibG9jaztcbiAgICBsZWZ0OiAkbG9nb3NpemU7XG4gICAgcGFkZGluZy10b3A6ICN7JGxvZ29zaXplIC8gMn07XG4gICAgdG9wOiAtI3skaGVhZGVyLWltYWdlLXNpemV9O1xuICAgIHdpZHRoOiA0NDBweDtcblxuICAgIGgxIHtcbiAgICAgIEBpbmNsdWRlIHR5cG9ncmFwaHktaGVhZGVyLTI7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItbWFpbi13aGl0ZTtcbiAgICAgIHBhZGRpbmc6IDMwcHg7XG4gICAgfVxuICB9XG5cbiAgLy8gQ3VzdG9tIHBhZ2Ugb3ZlcnZpZXcgc2VjdGlvbiAsIHNhbWUgc2V0dXAgYXMgcGFnZSBjaGlsZHJlbiBpbiBvdmVydmlldyBwYWdlXG4gIC5wYWdlLW92ZXJ2aWV3LXNlY3Rpb24ge1xuICAgIEBpbmNsdWRlIG1heC13aWR0aCgkY2VudGVyOnRydWUsICRsYXJnZTp0cnVlKTtcblxuICAgIHBhZGRpbmctdG9wOiAzNXB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA4MHB4O1xuXG4gICAgQGluY2x1ZGUgYmVsb3coJGJyZWFrcG9pbnQtc21hbGwpIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xuICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDQwcHgpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICB9XG5cbiAgLy8gQ3VzdG9tIHBhZ2Ugc2VjdGlvbnNcbiAgLnBhZ2Utc2VjdGlvbiB7XG4gIH1cblxuICBAaW5jbHVkZSBhYm92ZSgkYnJlYWtwb2ludC1tYXhsb2dvd2lkdGgpIHtcbiAgICAuaGVhZGVyLXdyYXBwZXIge1xuICAgICAgbGVmdDogJGxvZ29tYXh3aWR0aDtcbiAgICAgIHBhZGRpbmctdG9wOiAkbG9nb21heHdpZHRoIC8gMjtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBiZWxvdygkYnJlYWtwb2ludC1tb2JpbGUpIHtcbiAgICAuaGVhZGVyLXdyYXBwZXIge1xuICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgLy9sZWZ0OiAkbWluLWxvZ28tc2l6ZTtcbiAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgLy90b3A6IC0jeyRoZWFkZXItaW1hZ2Utc2l6ZS1tb2JpbGV9O1xuICAgICAgLy93aWR0aDogY2FsYygxMDAlIC0gI3skbWluLWxvZ28tc2l6ZX0pO1xuXG4gICAgICBoMSB7XG4gICAgICAgIHBhZGRpbmc6ICRndXR0ZXItbW9iaWxlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5wYWdlLWhlYWRlciB7XG4gICAgICBib3JkZXI6IDVweCBzb2xpZCByZWQ7XG4gICAgICAucGFnZS1oZWFkZXItaW1hZ2Uge1xuICAgICAgICBoZWlnaHQ6ICRoZWFkZXItaW1hZ2Utc2l6ZS1tb2JpbGU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnBhZ2Utc2VjdGlvbnMge1xuICAgICAgbWFyZ2luLXRvcDogJGhlYWRlci1pbWFnZS1zaXplLW1vYmlsZTtcblxuICAgICAgLmlubmVyLW1hcmdpbmVkIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5wYWdlLXNlY3Rpb24udGhlbWUtZm9vdGVyIHtcbiAgICBwYWRkaW5nLXRvcDogNjBweDtcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3ItbWFpbi1ncmV5ICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICBoMiB7XG4gICAgICBAaW5jbHVkZSB0eXBvZ3JhcGh5LWhlYWRlci0yKCk7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICAgIH1cblxuICAgIHAge1xuICAgICAgQGluY2x1ZGUgdHlwb2dyYXBoeS1wYXJhZ3JhcGgoKTtcbiAgICB9XG5cbiAgICAuZm9vdGVyLXRleHQge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1wYWRkaW5nO1xuICAgICAgQGluY2x1ZGUgbWF4LXdpZHRoKCRjZW50ZXI6dHJ1ZSk7XG4gICAgfVxuXG4gICAgLnBhZ2Utc2VjdGlvbi1yZWxhdGVkIHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtcGFkZGluZztcbiAgICAgIEBpbmNsdWRlIG1heC13aWR0aCgkY2VudGVyOnRydWUpO1xuICAgIH1cblxuICAgIC5wYWdlLXNlY3Rpb24tcmVsYXRlZCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuXG4gICAgLmV4dGVuZGVkLXJlbGF0ZWQtcGFnZXMge1xuICAgICAgcGFkZGluZzogMDtcbiAgICB9XG4gIH1cblxufVxuXG4vLyBDdXN0b20gcGFnZSBzZWN0aW9uc1xuQGluY2x1ZGUgdGhlbWVkLW1haW4oJHNlbGVjdG9yOiAnLnBhZ2Utc2VjdGlvbnMgLmlubmVyLW1hcmdpbmVkJywgJGJvZHktZmlsdGVyOicudGhlbWUtb3ZlcnZpZXctcGFnZScpOyAvLyBUT0RPOiBIb3cgdG8gZG8gdGhpcyBiZXR0ZXI/XG5AaW5jbHVkZSB0aGVtZWQtbWFpbigkc2VsZWN0b3I6ICcucGFnZS1zZWN0aW9uJywgJGJvZHktZmlsdGVyOicudGhlbWUtb3ZlcnZpZXctcGFnZScpOyAvLyBUT0RPOiBIb3cgdG8gZG8gdGhpcyBiZXR0ZXI/XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzsyRkFFMkY7QWtGZ0MzRixBQUFBLEdBQUcsQUFBQSxjQUFjLENBQUM7RUFDaEIsT0FBTyxFQUFFLFlBQVk7RUFDckIsTUFBTSxFQUFFLEtBQUs7RUFDYixLQUFLLEVBQUUsS0FBSyxHQVViO0VBYkQsQUFTSSxHQVRELEFBQUEsY0FBYyxBQVNaLFFBQVEsQ0FBSTtJQUNYLGdCQUFnQixFQTNDSCxPQUFPLEdBNENyQjtFQVhMLEFBU0ksR0FURCxBQUFBLGNBQWMsQUFTWixRQUFRLENBQUk7SUFDWCxnQkFBZ0IsRUExQ0gsT0FBTyxHQTJDckI7RUFYTCxBQVNJLEdBVEQsQUFBQSxjQUFjLEFBU1osTUFBTSxDQUFNO0lBQ1gsZ0JBQWdCLEVBekNMLE9BQU8sR0EwQ25CO0VBWEwsQUFTSSxHQVRELEFBQUEsY0FBYyxBQVNaLE9BQU8sQ0FBSztJQUNYLGdCQUFnQixFQXhDSixPQUFPLEdBeUNwQjtFQVhMLEFBU0ksR0FURCxBQUFBLGNBQWMsQUFTWixTQUFTLENBQUc7SUFDWCxnQkFBZ0IsRUF2Q0YsT0FBTyxHQXdDdEI7RUFYTCxBQVNJLEdBVEQsQUFBQSxjQUFjLEFBU1osT0FBTyxDQUFLO0lBQ1gsZ0JB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QUFFLE1BQU07QUFDN0MsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxHQUFHO0FBQzFDLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUk7QUFDMUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJO0FBQ3ZDLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUc7QUFDeEMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTTtBQUNmLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRTtBQUN0QixRQUFRLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNO0FBQzdCLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFO0FBQy9DLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxLQUFLO0FBQ3RDLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNO0FBQzFDLElBQUksRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTztBQUN6QyxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDO0VBQy9CLDJCQUEyQixFQUFFLE1BQU07RUFDcEMsTUFBTSxFQUFFLENBQUM7RUFDVCxPQUFPLEVBQUUsQ0FBQztFQUNWLE1BQU0sRUFBRSxDQUFDO0VBQ1QsU0FBUyxFQUFFLElBQUk7RUFDZixJQUFJLEVBQUUsT0FBTztF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 */
