/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
/* Document
   ========================================================================== */
/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */
html {
  line-height: 1.15;
  /* 1 */
  -webkit-text-size-adjust: 100%;
  /* 2 */
}

/* Sections
     ========================================================================== */
/**
   * Remove the margin in all browsers.
   */
body {
  margin: 0;
}

/**
   * Render the `main` element consistently in IE.
   */
main {
  display: block;
}

/**
   * Correct the font size and margin on `h1` elements within `section` and
   * `article` contexts in Chrome, Firefox, and Safari.
   */
h1 {
  font-size: 2em;
  margin: 0.67em 0;
}

/* Grouping content
     ========================================================================== */
/**
   * 1. Add the correct box sizing in Firefox.
   * 2. Show the overflow in Edge and IE.
   */
hr {
  box-sizing: content-box;
  /* 1 */
  height: 0;
  /* 1 */
  overflow: visible;
  /* 2 */
}

/**
   * 1. Correct the inheritance and scaling of font size in all browsers.
   * 2. Correct the odd `em` font sizing in all browsers.
   */
pre {
  font-family: monospace, monospace;
  /* 1 */
  font-size: 1em;
  /* 2 */
}

/* Text-level semantics
     ========================================================================== */
/**
   * Remove the gray background on active links in IE 10.
   */
a {
  background-color: transparent;
}

/**
   * 1. Remove the bottom border in Chrome 57-
   * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
   */
abbr[title] {
  border-bottom: none;
  /* 1 */
  text-decoration: underline;
  /* 2 */
  text-decoration: underline dotted;
  /* 2 */
}

/**
   * Add the correct font weight in Chrome, Edge, and Safari.
   */
b,
strong {
  font-weight: bolder;
}

/**
   * 1. Correct the inheritance and scaling of font size in all browsers.
   * 2. Correct the odd `em` font sizing in all browsers.
   */
code,
kbd,
samp {
  font-family: monospace, monospace;
  /* 1 */
  font-size: 1em;
  /* 2 */
}

/**
   * Add the correct font size in all browsers.
   */
small {
  font-size: 80%;
}

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

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/* Embedded content
     ========================================================================== */
/**
   * Remove the border on images inside links in IE 10.
   */
img {
  border-style: none;
}

/* Forms
     ========================================================================== */
/**
   * 1. Change the font styles in all browsers.
   * 2. Remove the margin in Firefox and Safari.
   */
button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
  /* 1 */
  font-size: 100%;
  /* 1 */
  line-height: 1.15;
  /* 1 */
  margin: 0;
  /* 2 */
}

/**
   * Show the overflow in IE.
   * 1. Show the overflow in Edge.
   */
button,
input {
  /* 1 */
  overflow: visible;
}

/**
   * Remove the inheritance of text transform in Edge, Firefox, and IE.
   * 1. Remove the inheritance of text transform in Firefox.
   */
button,
select {
  /* 1 */
  text-transform: none;
}

/**
   * Correct the inability to style clickable types in iOS and Safari.
   */
button,
[type=button],
[type=reset],
[type=submit] {
  -webkit-appearance: button;
}

/**
   * Remove the inner border and padding in Firefox.
   */
button::-moz-focus-inner,
[type=button]::-moz-focus-inner,
[type=reset]::-moz-focus-inner,
[type=submit]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

/**
   * Restore the focus styles unset by the previous rule.
   */
button:-moz-focusring,
[type=button]:-moz-focusring,
[type=reset]:-moz-focusring,
[type=submit]:-moz-focusring {
  outline: 1px dotted ButtonText;
}

/**
   * Correct the padding in Firefox.
   */
fieldset {
  padding: 0.35em 0.75em 0.625em;
}

/**
   * 1. Correct the text wrapping in Edge and IE.
   * 2. Correct the color inheritance from `fieldset` elements in IE.
   * 3. Remove the padding so developers are not caught out when they zero out
   *    `fieldset` elements in all browsers.
   */
legend {
  box-sizing: border-box;
  /* 1 */
  color: inherit;
  /* 2 */
  display: table;
  /* 1 */
  max-width: 100%;
  /* 1 */
  padding: 0;
  /* 3 */
  white-space: normal;
  /* 1 */
}

/**
   * Add the correct vertical alignment in Chrome, Firefox, and Opera.
   */
progress {
  vertical-align: baseline;
}

/**
   * Remove the default vertical scrollbar in IE 10+.
   */
textarea {
  overflow: auto;
}

/**
   * 1. Add the correct box sizing in IE 10.
   * 2. Remove the padding in IE 10.
   */
[type=checkbox],
[type=radio] {
  box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */
}

/**
   * Correct the cursor style of increment and decrement buttons in Chrome.
   */
[type=number]::-webkit-inner-spin-button,
[type=number]::-webkit-outer-spin-button {
  height: auto;
}

/**
   * 1. Correct the odd appearance in Chrome and Safari.
   * 2. Correct the outline style in Safari.
   */
[type=search] {
  -webkit-appearance: textfield;
  /* 1 */
  outline-offset: -2px;
  /* 2 */
}

/**
   * Remove the inner padding in Chrome and Safari on macOS.
   */
[type=search]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
   * 1. Correct the inability to style clickable types in iOS and Safari.
   * 2. Change font properties to `inherit` in Safari.
   */
::-webkit-file-upload-button {
  -webkit-appearance: button;
  /* 1 */
  font: inherit;
  /* 2 */
}

/* Interactive
     ========================================================================== */
/*
   * Add the correct display in Edge, IE 10+, and Firefox.
   */
details {
  display: block;
}

/*
   * Add the correct display in all browsers.
   */
summary {
  display: list-item;
}

/* Misc
     ========================================================================== */
/**
   * Add the correct display in IE 10+.
   */
template {
  display: none;
}

/**
   * Add the correct display in IE 10.
   */
[hidden] {
  display: none;
}

@font-face {
  font-family: "gotham";
  src: url("../fonts/gotham-book-webfont.woff2") format("woff2"), url("../fonts/gotham-book-webfont.woff") format("woff");
  font-weight: normal;
  font-style: normal;
}
@font-face {
  font-family: "gotham";
  src: url("../fonts/gotham-bookitalic-webfont.woff2") format("woff2"), url("../fonts/gotham-bookitalic-webfont.woff") format("woff");
  font-weight: normal;
  font-style: italic;
}
@font-face {
  font-family: "gotham";
  src: url("../fonts/gotham-black-webfont.woff2") format("woff2"), url("../fonts/gotham-black-webfont.woff") format("woff");
  font-weight: 900;
  font-style: normal;
}
html {
  box-sizing: border-box;
  -webkit-text-size-adjust: 100%;
}

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

* {
  max-height: 1000000px;
}

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

ul,
ol,
dl,
p,
h1,
h2,
h3,
h4,
h5,
h6,
address,
form,
table,
blockquote,
applet,
embed,
object,
iframe,
frameset {
  margin: 0 0 18px;
}

blockquote {
  border-left: 4px solid #ddd;
  padding-left: 10px;
  margin-left: 0;
}

table {
  border-collapse: collapse;
}

th,
td {
  border: 1px solid #ddd;
  padding: 3px;
  text-align: left;
  vertical-align: top;
}

th {
  text-align: center;
  vertical-align: middle;
}

ul,
ol {
  padding-left: 20px;
}

ul ul,
ul ol,
ol ul,
ol ol {
  padding-left: 20px;
  margin: 0;
}

ul {
  list-style-type: disc;
}

dl dt {
  float: left;
  clear: left;
  padding-right: 0.3em;
  font-weight: bold;
}
dl dd {
  overflow: hidden;
}

pre {
  max-width: 100%;
  overflow: auto;
}

body {
  color: #fff;
  background: #050505;
  font: 14px/1.214 "gotham", "Arial", "Helvetica Neue", "Helvetica", sans-serif;
  min-width: 360px;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  margin: 0;
}
@media (min-width: 768px) {
  body {
    font-size: 16px;
    line-height: 1.1875;
  }
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: top;
  display: inline-block;
}

.gm-style img {
  max-width: none;
}

@media (max-width: 991.98px) {
  iframe {
    width: 100%;
  }
}

.resize-active * {
  transition: none !important;
}

.clearfix:after, dl:after {
  content: "";
  display: block;
  clear: both;
}

.ellipsis {
  white-space: nowrap;
  /* 1 */
  text-overflow: ellipsis;
  /* 2 */
  overflow: hidden;
}

.df-row {
  display: flex;
  flex-wrap: wrap;
}
@media (min-width: 576px) {
  .df-row.df-rr-ph {
    flex-direction: row-reverse;
  }
}
@media (min-width: 576px) {
  .df-row.df-aic-ph {
    align-items: center;
  }
}
@media (min-width: 768px) {
  .df-row.df-rr-sm {
    flex-direction: row-reverse;
  }
}
@media (min-width: 768px) {
  .df-row.df-aic-sm {
    align-items: center;
  }
}
@media (min-width: 992px) {
  .df-row.df-rr-md {
    flex-direction: row-reverse;
  }
}
@media (min-width: 992px) {
  .df-row.df-aic-md {
    align-items: center;
  }
}
@media (min-width: 576px) {
  .df-row .col-ph-1 {
    flex: 1 0 calc(8.3333333333% * 1);
    max-width: calc(8.3333333333% * 1);
  }
}
@media (min-width: 576px) {
  .df-row .col-ph-2 {
    flex: 1 0 calc(8.3333333333% * 2);
    max-width: calc(8.3333333333% * 2);
  }
}
@media (min-width: 576px) {
  .df-row .col-ph-3 {
    flex: 1 0 calc(8.3333333333% * 3);
    max-width: calc(8.3333333333% * 3);
  }
}
@media (min-width: 576px) {
  .df-row .col-ph-4 {
    flex: 1 0 calc(8.3333333333% * 4);
    max-width: calc(8.3333333333% * 4);
  }
}
@media (min-width: 576px) {
  .df-row .col-ph-5 {
    flex: 1 0 calc(8.3333333333% * 5);
    max-width: calc(8.3333333333% * 5);
  }
}
@media (min-width: 576px) {
  .df-row .col-ph-6 {
    flex: 1 0 calc(8.3333333333% * 6);
    max-width: calc(8.3333333333% * 6);
  }
}
@media (min-width: 576px) {
  .df-row .col-ph-7 {
    flex: 1 0 calc(8.3333333333% * 7);
    max-width: calc(8.3333333333% * 7);
  }
}
@media (min-width: 576px) {
  .df-row .col-ph-8 {
    flex: 1 0 calc(8.3333333333% * 8);
    max-width: calc(8.3333333333% * 8);
  }
}
@media (min-width: 576px) {
  .df-row .col-ph-9 {
    flex: 1 0 calc(8.3333333333% * 9);
    max-width: calc(8.3333333333% * 9);
  }
}
@media (min-width: 576px) {
  .df-row .col-ph-10 {
    flex: 1 0 calc(8.3333333333% * 10);
    max-width: calc(8.3333333333% * 10);
  }
}
@media (min-width: 576px) {
  .df-row .col-ph-11 {
    flex: 1 0 calc(8.3333333333% * 11);
    max-width: calc(8.3333333333% * 11);
  }
}
@media (min-width: 576px) {
  .df-row .col-ph-12 {
    flex: 1 0 calc(8.3333333333% * 12);
    max-width: calc(8.3333333333% * 12);
  }
}
@media (min-width: 576px) {
  .df-row .col-offset-ph-0 {
    margin-left: calc(8.3333333333% * 0);
  }
}
@media (min-width: 576px) {
  .df-row .col-offset-ph-1 {
    margin-left: calc(8.3333333333% * 1);
  }
}
@media (min-width: 576px) {
  .df-row .col-offset-ph-2 {
    margin-left: calc(8.3333333333% * 2);
  }
}
@media (min-width: 576px) {
  .df-row .col-offset-ph-3 {
    margin-left: calc(8.3333333333% * 3);
  }
}
@media (min-width: 576px) {
  .df-row .col-offset-ph-4 {
    margin-left: calc(8.3333333333% * 4);
  }
}
@media (min-width: 576px) {
  .df-row .col-offset-ph-5 {
    margin-left: calc(8.3333333333% * 5);
  }
}
@media (min-width: 576px) {
  .df-row .col-offset-ph-6 {
    margin-left: calc(8.3333333333% * 6);
  }
}
@media (min-width: 576px) {
  .df-row .col-offset-ph-7 {
    margin-left: calc(8.3333333333% * 7);
  }
}
@media (min-width: 576px) {
  .df-row .col-offset-ph-8 {
    margin-left: calc(8.3333333333% * 8);
  }
}
@media (min-width: 576px) {
  .df-row .col-offset-ph-9 {
    margin-left: calc(8.3333333333% * 9);
  }
}
@media (min-width: 576px) {
  .df-row .col-offset-ph-10 {
    margin-left: calc(8.3333333333% * 10);
  }
}
@media (min-width: 576px) {
  .df-row .col-offset-ph-11 {
    margin-left: calc(8.3333333333% * 11);
  }
}
@media (min-width: 768px) {
  .df-row .col-sm-1 {
    flex: 1 0 calc(8.3333333333% * 1);
    max-width: calc(8.3333333333% * 1);
  }
}
@media (min-width: 768px) {
  .df-row .col-sm-2 {
    flex: 1 0 calc(8.3333333333% * 2);
    max-width: calc(8.3333333333% * 2);
  }
}
@media (min-width: 768px) {
  .df-row .col-sm-3 {
    flex: 1 0 calc(8.3333333333% * 3);
    max-width: calc(8.3333333333% * 3);
  }
}
@media (min-width: 768px) {
  .df-row .col-sm-4 {
    flex: 1 0 calc(8.3333333333% * 4);
    max-width: calc(8.3333333333% * 4);
  }
}
@media (min-width: 768px) {
  .df-row .col-sm-5 {
    flex: 1 0 calc(8.3333333333% * 5);
    max-width: calc(8.3333333333% * 5);
  }
}
@media (min-width: 768px) {
  .df-row .col-sm-6 {
    flex: 1 0 calc(8.3333333333% * 6);
    max-width: calc(8.3333333333% * 6);
  }
}
@media (min-width: 768px) {
  .df-row .col-sm-7 {
    flex: 1 0 calc(8.3333333333% * 7);
    max-width: calc(8.3333333333% * 7);
  }
}
@media (min-width: 768px) {
  .df-row .col-sm-8 {
    flex: 1 0 calc(8.3333333333% * 8);
    max-width: calc(8.3333333333% * 8);
  }
}
@media (min-width: 768px) {
  .df-row .col-sm-9 {
    flex: 1 0 calc(8.3333333333% * 9);
    max-width: calc(8.3333333333% * 9);
  }
}
@media (min-width: 768px) {
  .df-row .col-sm-10 {
    flex: 1 0 calc(8.3333333333% * 10);
    max-width: calc(8.3333333333% * 10);
  }
}
@media (min-width: 768px) {
  .df-row .col-sm-11 {
    flex: 1 0 calc(8.3333333333% * 11);
    max-width: calc(8.3333333333% * 11);
  }
}
@media (min-width: 768px) {
  .df-row .col-sm-12 {
    flex: 1 0 calc(8.3333333333% * 12);
    max-width: calc(8.3333333333% * 12);
  }
}
@media (min-width: 768px) {
  .df-row .col-offset-sm-0 {
    margin-left: calc(8.3333333333% * 0);
  }
}
@media (min-width: 768px) {
  .df-row .col-offset-sm-1 {
    margin-left: calc(8.3333333333% * 1);
  }
}
@media (min-width: 768px) {
  .df-row .col-offset-sm-2 {
    margin-left: calc(8.3333333333% * 2);
  }
}
@media (min-width: 768px) {
  .df-row .col-offset-sm-3 {
    margin-left: calc(8.3333333333% * 3);
  }
}
@media (min-width: 768px) {
  .df-row .col-offset-sm-4 {
    margin-left: calc(8.3333333333% * 4);
  }
}
@media (min-width: 768px) {
  .df-row .col-offset-sm-5 {
    margin-left: calc(8.3333333333% * 5);
  }
}
@media (min-width: 768px) {
  .df-row .col-offset-sm-6 {
    margin-left: calc(8.3333333333% * 6);
  }
}
@media (min-width: 768px) {
  .df-row .col-offset-sm-7 {
    margin-left: calc(8.3333333333% * 7);
  }
}
@media (min-width: 768px) {
  .df-row .col-offset-sm-8 {
    margin-left: calc(8.3333333333% * 8);
  }
}
@media (min-width: 768px) {
  .df-row .col-offset-sm-9 {
    margin-left: calc(8.3333333333% * 9);
  }
}
@media (min-width: 768px) {
  .df-row .col-offset-sm-10 {
    margin-left: calc(8.3333333333% * 10);
  }
}
@media (min-width: 768px) {
  .df-row .col-offset-sm-11 {
    margin-left: calc(8.3333333333% * 11);
  }
}
@media (min-width: 992px) {
  .df-row .col-md-1 {
    flex: 1 0 calc(8.3333333333% * 1);
    max-width: calc(8.3333333333% * 1);
  }
}
@media (min-width: 992px) {
  .df-row .col-md-2 {
    flex: 1 0 calc(8.3333333333% * 2);
    max-width: calc(8.3333333333% * 2);
  }
}
@media (min-width: 992px) {
  .df-row .col-md-3 {
    flex: 1 0 calc(8.3333333333% * 3);
    max-width: calc(8.3333333333% * 3);
  }
}
@media (min-width: 992px) {
  .df-row .col-md-4 {
    flex: 1 0 calc(8.3333333333% * 4);
    max-width: calc(8.3333333333% * 4);
  }
}
@media (min-width: 992px) {
  .df-row .col-md-5 {
    flex: 1 0 calc(8.3333333333% * 5);
    max-width: calc(8.3333333333% * 5);
  }
}
@media (min-width: 992px) {
  .df-row .col-md-6 {
    flex: 1 0 calc(8.3333333333% * 6);
    max-width: calc(8.3333333333% * 6);
  }
}
@media (min-width: 992px) {
  .df-row .col-md-7 {
    flex: 1 0 calc(8.3333333333% * 7);
    max-width: calc(8.3333333333% * 7);
  }
}
@media (min-width: 992px) {
  .df-row .col-md-8 {
    flex: 1 0 calc(8.3333333333% * 8);
    max-width: calc(8.3333333333% * 8);
  }
}
@media (min-width: 992px) {
  .df-row .col-md-9 {
    flex: 1 0 calc(8.3333333333% * 9);
    max-width: calc(8.3333333333% * 9);
  }
}
@media (min-width: 992px) {
  .df-row .col-md-10 {
    flex: 1 0 calc(8.3333333333% * 10);
    max-width: calc(8.3333333333% * 10);
  }
}
@media (min-width: 992px) {
  .df-row .col-md-11 {
    flex: 1 0 calc(8.3333333333% * 11);
    max-width: calc(8.3333333333% * 11);
  }
}
@media (min-width: 992px) {
  .df-row .col-md-12 {
    flex: 1 0 calc(8.3333333333% * 12);
    max-width: calc(8.3333333333% * 12);
  }
}
@media (min-width: 992px) {
  .df-row .col-offset-md-0 {
    margin-left: calc(8.3333333333% * 0);
  }
}
@media (min-width: 992px) {
  .df-row .col-offset-md-1 {
    margin-left: calc(8.3333333333% * 1);
  }
}
@media (min-width: 992px) {
  .df-row .col-offset-md-2 {
    margin-left: calc(8.3333333333% * 2);
  }
}
@media (min-width: 992px) {
  .df-row .col-offset-md-3 {
    margin-left: calc(8.3333333333% * 3);
  }
}
@media (min-width: 992px) {
  .df-row .col-offset-md-4 {
    margin-left: calc(8.3333333333% * 4);
  }
}
@media (min-width: 992px) {
  .df-row .col-offset-md-5 {
    margin-left: calc(8.3333333333% * 5);
  }
}
@media (min-width: 992px) {
  .df-row .col-offset-md-6 {
    margin-left: calc(8.3333333333% * 6);
  }
}
@media (min-width: 992px) {
  .df-row .col-offset-md-7 {
    margin-left: calc(8.3333333333% * 7);
  }
}
@media (min-width: 992px) {
  .df-row .col-offset-md-8 {
    margin-left: calc(8.3333333333% * 8);
  }
}
@media (min-width: 992px) {
  .df-row .col-offset-md-9 {
    margin-left: calc(8.3333333333% * 9);
  }
}
@media (min-width: 992px) {
  .df-row .col-offset-md-10 {
    margin-left: calc(8.3333333333% * 10);
  }
}
@media (min-width: 992px) {
  .df-row .col-offset-md-11 {
    margin-left: calc(8.3333333333% * 11);
  }
}
@media (min-width: 768px) {
  .df-row {
    margin: 0 -30px;
  }
}

h1,
.h1 {
  font-size: 24px;
}

h2,
.h2 {
  font-size: 24px;
}

h3,
.h3 {
  font-size: 15px;
}

h4,
.h4 {
  font-size: 14px;
}

h5,
.h5 {
  font-size: 14px;
}

h6,
.h6 {
  font-size: 14px;
}

@media (min-width: 768px) {
  h1,
  .h1 {
    font-size: 30px;
  }
  h2,
  .h2 {
    font-size: 38px;
  }
  h3,
  .h3 {
    font-size: 28px;
  }
  h4,
  .h4 {
    font-size: 20px;
  }
  h5,
  .h5 {
    font-size: 18px;
  }
  h6,
  .h6 {
    font-size: 16px;
  }
}
@media (min-width: 992px) {
  h1,
  .h1 {
    font-size: 40px;
  }
  h2,
  .h2 {
    font-size: 30px;
  }
  h3,
  .h3 {
    font-size: 28px;
  }
  h4,
  .h4 {
    font-size: 20px;
  }
  h5,
  .h5 {
    font-size: 18px;
  }
  h6,
  .h6 {
    font-size: 16px;
  }
}
@media (min-width: 1300px) {
  h1,
  .h1 {
    font-size: 48px;
  }
  h2,
  .h2 {
    font-size: 32px;
  }
  h3,
  .h3 {
    font-size: 28px;
  }
  h4,
  .h4 {
    font-size: 20px;
  }
  h5,
  .h5 {
    font-size: 18px;
  }
  h6,
  .h6 {
    font-size: 16px;
  }
}
h1,
.h1,
h2,
.h2,
h3,
.h3,
h4,
.h4,
h5,
.h5,
h6,
.h6,
.h {
  font-family: "gotham", "Arial", "Helvetica Neue", "Helvetica", sans-serif;
  color: inherit;
  font-weight: 900;
  margin: 0 0 10px;
}

h1 {
  margin: 0 0 1.15em;
  font-weight: 900;
  font-size: calc(24px + 24 * (100vw - 360px) / 940);
  text-transform: uppercase;
  line-height: 1.2083333333;
}
@media (min-width: 768px) {
  h1 {
    line-height: 1;
    margin: 0 0 0.25em;
  }
}
@media (min-width: 1300px) {
  h1 {
    font-size: 48px;
  }
}

h2 {
  margin: 0 0 1.1em;
  font-weight: 900;
  font-size: calc(24px + 8 * (100vw - 360px) / 940);
  line-height: 1.2083333333;
  text-transform: uppercase;
}
@media (min-width: 768px) {
  h2 {
    margin: 0 0 0.9em;
    line-height: 1;
  }
}
@media (min-width: 1300px) {
  h2 {
    font-size: 32px;
  }
}

h3 {
  margin: 0 0 0.5em;
  text-transform: uppercase;
  font-weight: 900;
  font-size: calc(20px + 10 * (100vw - 360px) / 940);
  line-height: 1;
}
@media (min-width: 1300px) {
  h3 {
    font-size: 30px;
  }
}

p {
  margin: 0 0 1em;
}

a {
  color: #007bff;
  text-decoration: none;
}
a:hover, a:focus {
  color: #000;
  text-decoration: none;
}

a[href*="mailto:"] {
  word-wrap: break-word;
}

mark {
  background: none;
  color: #fcc717;
}

form,
fieldset {
  margin: 0;
  padding: 0;
  border-style: none;
}

input[type=text],
input[type=tel],
input[type=email],
input[type=search],
input[type=password],
input[type=url],
textarea {
  -webkit-appearance: none;
  -webkit-border-radius: 0;
  padding: 10px 20px;
  font-size: 14px;
  line-height: 16px;
  font-family: "gotham", "Arial", "Helvetica Neue", "Helvetica", sans-serif;
  box-sizing: border-box;
  border: 1px solid #000;
  border-radius: 0;
}
input[type=text]:not(textarea),
input[type=tel]:not(textarea),
input[type=email]:not(textarea),
input[type=search]:not(textarea),
input[type=password]:not(textarea),
input[type=url]:not(textarea),
textarea:not(textarea) {
  height: 38px;
}
input[type=text]:focus,
input[type=tel]:focus,
input[type=email]:focus,
input[type=search]:focus,
input[type=password]:focus,
input[type=url]:focus,
textarea:focus {
  outline: none;
  border-color: #000;
}
input[type=text]::-webkit-input-placeholder,
input[type=tel]::-webkit-input-placeholder,
input[type=email]::-webkit-input-placeholder,
input[type=search]::-webkit-input-placeholder,
input[type=password]::-webkit-input-placeholder,
input[type=url]::-webkit-input-placeholder,
textarea::-webkit-input-placeholder {
  color: #ddd;
}
input[type=text]::-moz-placeholder,
input[type=tel]::-moz-placeholder,
input[type=email]::-moz-placeholder,
input[type=search]::-moz-placeholder,
input[type=password]::-moz-placeholder,
input[type=url]::-moz-placeholder,
textarea::-moz-placeholder {
  opacity: 1;
  color: #ddd;
}
input[type=text]:-moz-placeholder,
input[type=tel]:-moz-placeholder,
input[type=email]:-moz-placeholder,
input[type=search]:-moz-placeholder,
input[type=password]:-moz-placeholder,
input[type=url]:-moz-placeholder,
textarea:-moz-placeholder {
  color: #ddd;
}
input[type=text]:-ms-input-placeholder,
input[type=tel]:-ms-input-placeholder,
input[type=email]:-ms-input-placeholder,
input[type=search]:-ms-input-placeholder,
input[type=password]:-ms-input-placeholder,
input[type=url]:-ms-input-placeholder,
textarea:-ms-input-placeholder {
  color: #ddd;
}
input[type=text].placeholder,
input[type=tel].placeholder,
input[type=email].placeholder,
input[type=search].placeholder,
input[type=password].placeholder,
input[type=url].placeholder,
textarea.placeholder {
  color: #ddd;
}

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

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

button,
input[type=button],
input[type=reset],
input[type=file],
input[type=submit] {
  transition: background 0.5s ease-in-out;
  -webkit-appearance: none;
  -webkit-border-radius: 0;
  height: 38px;
  padding: 8px 19px;
  font-size: 14px;
  line-height: 16px;
  color: #804f19;
  background: linear-gradient(to bottom, #ffef07 0%, #f35d1b 100%);
  border-width: 0;
  border-style: solid;
  border-color: linear-gradient(to bottom, #ffef07 0%, #f35d1b 100%);
  border-radius: 9px;
  cursor: pointer;
  transition: all 0.5s;
}
button:hover,
input[type=button]:hover,
input[type=reset]:hover,
input[type=file]:hover,
input[type=submit]:hover {
  background: #804f19;
  color: linear-gradient(to bottom, #ffef07 0%, #f35d1b 100%);
}

noscript {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  margin: 0;
  font-size: 14px;
  color: #000;
  background: #ff8f8f;
  display: block;
  padding: 5px 0;
  text-align: center;
  z-index: 99999;
}

.accessibility {
  position: absolute;
  left: -200vw;
  top: auto;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
.accessibility:focus {
  position: static;
  width: auto;
  height: auto;
}

.hidden {
  position: absolute;
  left: -9999px;
  top: auto;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

[id=header] {
  position: absolute;
  width: 100%;
  left: 0;
  top: 0;
  padding: 39px 0 0;
  z-index: 99;
}
@media (min-width: 576px) {
  [id=header] {
    padding-top: 15vw;
  }
}
@media (min-width: 992px) {
  [id=header] {
    padding: 168px 0 0;
  }
}

.logo {
  width: 256px;
  min-width: 256px;
  margin: 0 auto 10px;
}
@media (min-width: 768px) {
  .logo {
    margin: 0 0 10px;
  }
}

.button-watch-wrap {
  text-align: center;
}
@media (min-width: 768px) {
  .button-watch-wrap {
    text-align: left;
  }
}
.fixed-button .button-watch-wrap .btn-watch {
  position: fixed;
  z-index: 99;
  bottom: 50px;
  right: 20px;
  padding: 7px;
  min-width: 0;
}
.fixed-button .button-watch-wrap .btn-watch .text-button {
  display: none;
}

[id=wrapper] {
  display: flex;
  flex-direction: column;
  width: 100%;
  background-color: #050505;
  background-repeat: no-repeat;
  background-position: 50% 0;
  min-height: 100vh;
  overflow: hidden;
  background-size: 150vw auto;
}
@media (min-width: 1300px) {
  [id=wrapper] {
    background-size: auto auto;
  }
}

main {
  flex-grow: 1;
}

.container {
  width: 100%;
  max-width: 1300px;
  padding: 0 30px;
  margin: 0 auto;
}
@media (min-width: 992px) {
  .container {
    padding-left: 50px;
    padding-right: 50px;
  }
}

.list-custom {
  margin: 35px 0 35px 17px;
  padding: 0;
  list-style: none;
  font-size: 14px;
  line-height: 1.2;
  text-align: left;
}
@media (min-width: 768px) {
  .list-custom {
    margin: 10px 0 30px;
    padding: 0 0 0 20px;
  }
}
@media (min-width: 992px) {
  .list-custom {
    padding: 15px 0 0 37px;
  }
}
.list-custom > li {
  position: relative;
  display: flex;
  align-items: center;
  padding-left: 27px;
  min-height: 19px;
}
@media (min-width: 768px) {
  .list-custom > li {
    min-height: 25px;
    padding-left: 39px;
  }
}
.list-custom > li + li {
  margin-top: 13px;
}
@media (min-width: 768px) {
  .list-custom > li + li {
    margin-top: 8px;
  }
}
.list-custom > li:after {
  position: absolute;
  top: 0;
  left: 0;
  width: 19px;
  height: 19px;
  content: url("../images/bulet.svg");
}
@media (min-width: 768px) {
  .list-custom > li:after {
    width: 25px;
    height: 25px;
  }
}

[id=footer] {
  position: relative;
  color: #726c8d;
  font-size: 12px;
  line-height: 14px;
  padding: 60px 0 2px;
  background: url("../images/bg-footer.png") no-repeat, #08070a;
  background-position: 50% 100%;
}
@media (min-width: 768px) {
  [id=footer] {
    padding: 80px 0 30px;
  }
}
@media (min-width: 992px) {
  [id=footer] {
    padding: 130px 0 30px;
  }
}
@media (min-width: 1300px) {
  [id=footer] {
    padding: 156px 0 94px;
  }
}
[id=footer] a {
  color: inherit;
  transition: color 0.5s;
}
[id=footer] a:hover {
  color: #fff;
}
[id=footer] .container {
  position: relative;
  z-index: 1;
}

.footer-text {
  max-width: 710px;
  text-align: center;
  margin: 0 auto 61px;
}
@media (min-width: 768px) {
  .footer-text {
    margin: 0 auto 47px;
  }
}
.footer-text p {
  margin: 0 0 1.2em;
}

.footer-menu {
  margin: 0 0 30px;
  padding: 0;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  color: #fff;
}
.footer-menu > li:before {
  content: "|";
  margin: 0 5px;
  color: #fcc717;
}
.footer-menu > li:first-child:before {
  display: none;
}
.footer-menu a {
  color: #fcc717;
}
.footer-menu a:hover {
  text-decoration: underline;
}

.footer-list {
  margin: 0;
  padding: 0;
  list-style: none;
  text-align: center;
  display: flex;
  text-align: left;
  justify-content: space-around;
  flex-wrap: wrap;
}
.footer-list > li {
  max-width: 270px;
  width: 100%;
  padding: 0 10px 46px;
}
@media (min-width: 768px) {
  .footer-list > li {
    padding: 0 10px 20px;
  }
}

.footer-list-item {
  display: flex;
  align-items: center;
  color: #fff;
  font-weight: 400;
  font-size: 11px;
  line-height: 13px;
}
@media (min-width: 768px) {
  .footer-list-item {
    font-size: 12px;
    line-height: 15px;
  }
}
.footer-list-item h5 {
  margin: 0;
  text-transform: uppercase;
  font-weight: 400;
  font-size: 11px;
  line-height: 13px;
  color: inherit;
}
@media (min-width: 768px) {
  .footer-list-item h5 {
    font-size: 12px;
    line-height: 15px;
  }
}
.footer-list-item__icon {
  margin-right: 20px;
}
@media (max-width: 767.98px) {
  .footer-list-item__icon {
    width: 60px;
    min-width: 60px;
    text-align: center;
  }
}
.footer-list-item img {
  max-width: none;
  height: 60px;
}
.footer-list-item p {
  margin: 0;
}

.btn.btn {
  display: inline-block;
  padding: 8px 19px;
  font-size: 14px;
  font-weight: 700;
  text-align: center;
  line-height: 16px;
  vertical-align: top;
  transition: all 0.5s;
  height: auto;
  text-transform: uppercase;
  border-style: solid;
  border-color: transparent;
  border-width: 0;
  border-radius: 9px;
}
.btn.btn--default {
  color: #804f19;
  background: linear-gradient(to bottom, #ffef07 0%, #f35d1b 100%);
  border-color: linear-gradient(to bottom, #ffef07 0%, #f35d1b 100%);
  box-shadow: 0 1px 0 #fb1f1f;
  text-transform: uppercase;
  font-size: 14px;
  line-height: 18px;
  font-weight: 400;
  text-shadow: 0 1px 0 rgba(253, 217, 10, 0.3);
}
@media (min-width: 768px) {
  .btn.btn--default {
    font-size: 16px;
  }
}
.btn.btn--default:hover {
  color: #804f19;
  background: linear-gradient(to top, #ffef07 0%, #f35d1b 100%);
  border-color: linear-gradient(to bottom, #ffef07 0%, #f35d1b 100%);
}
.btn.btn--default .icon {
  margin-right: 10px;
}
.btn.btn--arrow {
  position: relative;
}
.btn.btn--arrow:after {
  display: block;
  position: absolute;
  right: -26px;
  top: 50%;
  transform: translateY(-50%);
  width: 11px;
  height: 16px;
  content: "";
  background: url("../images/arrow-left.png") no-repeat;
  animation: shift 1.8s linear infinite;
}
.btn.btn--primary {
  color: #fff;
  background: #83d186;
  border: 0;
}
.btn.btn--primary:hover {
  color: #fff;
  background: #377839;
}
.btn.btn--secondary {
  color: #252525;
  background: linear-gradient(to bottom, #dededc 0%, #afb3b3 100%);
  text-transform: uppercase;
  font-size: 14px;
  line-height: 18px;
  font-weight: 400;
  border: 0;
}
@media (min-width: 768px) {
  .btn.btn--secondary {
    font-size: 16px;
  }
}
.btn.btn--secondary:hover {
  color: #252525;
  background: linear-gradient(to top, #dededc 0%, #afb3b3 100%);
}
.btn.btn--sm {
  padding: 5px 10px;
  font-size: 12px;
  line-height: 14px;
  border-radius: 4.5px;
}
.btn.btn--lg {
  padding: 15px 20px 26px;
  font-size: 18px;
  line-height: 26px;
  border-radius: 18px;
  min-width: 256px;
}
@media (min-width: 576px) {
  .btn.btn--lg {
    font-size: 24px;
  }
}
.btn.btn .icon-phone_flip_icon {
  display: inline-block;
  margin: 0 5px 0 0;
  transform: scaleX(-1);
  position: relative;
  top: 1px;
}
.btn.btn .icon-bitcoin-money-cryptocurrency-svgrepo-com {
  margin: 0 0 0 5px;
  font-size: 22px;
  line-height: 17px;
  position: relative;
  top: 5px;
}

.btn-premium {
  min-width: 205px;
  display: inline-flex;
  align-items: center;
  overflow: hidden;
  border-radius: 9px;
  padding: 2px;
  font-weight: 400;
  color: #fcc717;
  background: linear-gradient(to right, #c35af4 0%, #fcc70c 25%, #c35af4 50%, #fcc70c 75%, #c35af4 100%);
  background-size: 400% 400%;
  animation: gradient 6s infinite;
}
.btn-premium > span {
  padding: 8px 19px;
  width: 100%;
  display: flex;
  align-items: center;
  border-radius: inherit;
  background: #282042;
  white-space: nowrap;
  transition: background 0.5s;
}
.btn-premium .icon {
  color: #fff;
  margin: 0 8px 0 0;
  display: block;
  width: 16px;
}
.btn-premium .icon svg {
  display: block;
  width: 100%;
  height: auto;
}
.btn-premium:focus, .btn-premium:hover {
  color: #fcc717;
}
.btn-premium:focus > span, .btn-premium:hover > span {
  background: #6f57b8;
}

.btn-watch {
  display: inline-flex;
  align-items: center;
  gap: 15px;
  background: #4d3b82;
  color: #fff;
  padding: 7px 13px;
  border-radius: 99px;
  border: 1px solid #6f57b8;
  font-size: 14px;
  line-height: 1;
  min-width: 179px;
  transition: background 0.5s;
}
.btn-watch .icon {
  position: relative;
  display: block;
  width: 36px;
  animation: shift 2s infinite;
}
.btn-watch:hover, .btn-watch:focus {
  color: #fff;
  background: #282042;
}

.btn-group {
  margin: 0 -5px -10px;
  display: flex;
  flex-wrap: wrap;
}
.btn-group .btn {
  margin: 0 5px 10px;
}

@keyframes shift {
  0% {
    transform: scale(1.1);
  }
  50% {
    transform: scale(0.9);
  }
  100% {
    transform: scale(1.1);
  }
}
@keyframes gradient {
  0% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
  100% {
    background-position: 0% 50%;
  }
}
.trailer {
  position: relative;
  overflow: hidden;
  padding-top: 375px;
  padding-bottom: calc(63px + 17 * (100vw - 360px) / 940);
  text-align: center;
}
@media (min-width: 576px) {
  .trailer {
    padding-top: 80vw;
  }
}
@media (min-width: 768px) {
  .trailer {
    padding-top: 60vw;
    text-align: left;
  }
}
@media (min-width: 1300px) {
  .trailer {
    padding-top: 573px;
    padding-bottom: 80px;
  }
}
.trailer__image {
  position: absolute;
  inset: 0;
  text-align: center;
}
@media (min-width: 768px) {
  .trailer__image {
    inset: 0 -40vw;
  }
}
@media (min-width: 1300px) {
  .trailer__image {
    inset: 0;
  }
}
.trailer__image img {
  height: auto;
  max-width: none;
  width: 100%;
}
@media (min-width: 576px) {
  .trailer__image img {
    max-width: 100%;
  }
}
@media (min-width: 768px) {
  .trailer__image img {
    width: auto;
  }
}
.trailer__content {
  position: relative;
  z-index: 1;
  width: 100%;
}
@media (min-width: 768px) {
  .trailer__content {
    max-width: 560px;
    width: 50%;
  }
}
.trailer__text {
  margin-bottom: 37px;
}
@media (min-width: 768px) {
  .trailer__text {
    width: 90%;
  }
}

.upgrade {
  position: relative;
  overflow: hidden;
  background: #08070a;
  padding-top: 80vw;
  padding-bottom: 60px;
}
@media (min-width: 768px) {
  .upgrade {
    padding-top: 70px;
  }
}
@media (min-width: 992px) {
  .upgrade {
    padding-top: 182px;
    padding-bottom: 180px;
  }
}
@media (min-width: 1300px) {
  .upgrade {
    padding-bottom: 235px;
  }
}
.upgrade__image {
  position: absolute;
  inset: 0;
  text-align: center;
}
@media (min-width: 768px) {
  .upgrade__image {
    inset: 0 -25vw;
  }
}
@media (min-width: 1300px) {
  .upgrade__image {
    inset: 0;
    top: -36px;
  }
}
.upgrade__image img {
  height: auto;
  max-width: none;
  width: 100%;
}
@media (min-width: 576px) {
  .upgrade__image img {
    max-width: 100%;
  }
}
@media (min-width: 768px) {
  .upgrade__image img {
    width: auto;
  }
}
.upgrade__content {
  position: relative;
  z-index: 1;
  width: 100%;
  text-align: center;
  max-width: 370px;
  margin: 0 auto;
}
@media (min-width: 768px) {
  .upgrade__content {
    margin-right: 0;
    text-align: left;
    max-width: 37%;
  }
}

.models {
  position: relative;
  overflow: hidden;
  background: #08070a;
  padding: 60px 0 60px;
}
@media (min-width: 768px) {
  .models {
    padding: 60px 0 80px;
  }
}
@media (min-width: 992px) {
  .models {
    padding: 138px 0 109px;
  }
}
.models__image {
  position: absolute;
  inset: 0;
}
@media (min-width: 768px) {
  .models__image {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    inset: 0 -25vw;
  }
}
@media (min-width: 1300px) {
  .models__image {
    inset: 0;
  }
}
.models__image img {
  height: auto;
  max-width: none;
  width: 100%;
}
@media (min-width: 768px) {
  .models__image img {
    max-width: 100%;
    width: auto;
    height: auto;
  }
}
.models__container {
  width: 100%;
  position: relative;
  text-align: center;
  margin-bottom: 30px;
}
@media (min-width: 768px) {
  .models__container {
    margin-bottom: 0;
    max-width: 49%;
    text-align: left;
  }
}
.models__footer {
  position: relative;
  display: flex;
  flex-direction: column-reverse;
  align-items: center;
  gap: 36px;
  font-size: 14px;
  line-height: 1.2142857143;
  max-width: 1010px;
  text-align: center;
}
@media (min-width: 768px) {
  .models__footer {
    gap: 30px;
    flex-direction: row;
    text-align: left;
    font-size: 16px;
    line-height: 1.1875;
  }
}
.models__footer p {
  margin: 0;
}
.models h2 {
  margin: 0 0 2.2em;
  font-weight: 900;
  font-size: calc(24px + 24 * (100vw - 360px) / 940);
  text-transform: uppercase;
  line-height: 1.2083333333;
}
@media (min-width: 768px) {
  .models h2 {
    margin: 0 0 1.5em;
  }
}
@media (min-width: 1300px) {
  .models h2 {
    font-size: 48px;
    line-height: 1;
  }
}
.models .list-models {
  max-width: 45%;
}
@media (min-width: 768px) {
  .models .list-models {
    max-width: 100%;
  }
}

.list-models {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}
@media (min-width: 992px) {
  .list-models {
    margin-left: -34px;
  }
}
.list-models > li {
  width: 50%;
  margin-bottom: 8px;
}
@media (min-width: 768px) {
  .list-models > li {
    margin-bottom: 30px;
    width: 33.3333333333%;
  }
}
@media (min-width: 992px) {
  .list-models > li {
    margin-bottom: 61px;
  }
}

.model {
  text-align: center;
}
.model__name {
  display: block;
  margin: 0 0 2px;
  font-size: 10px;
  line-height: 1;
  color: #fff;
}
@media (min-width: 768px) {
  .model__name {
    margin: 0 0 11px;
    font-size: 14px;
  }
}
.model__avatar {
  display: inline-block;
  vertical-align: top;
  width: 62px;
  height: 62px;
  border-radius: 50%;
  overflow: hidden;
}
@media (min-width: 576px) {
  .model__avatar {
    width: 100px;
    height: 100px;
  }
}
@media (min-width: 992px) {
  .model__avatar {
    width: 130px;
    height: 130px;
  }
}
.model__avatar img {
  display: block;
  width: 100%;
  max-width: none;
  height: 100%;
  object-fit: cover;
  object-position: 50% 50%;
}

.video-playing {
  overflow: hidden;
}

#video {
  max-width: 80vw;
  max-height: 80vh;
  border-radius: 9px;
}

.video-full-page {
  position: fixed;
  padding: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  inset: 0;
  z-index: 9999;
  background: rgba(40, 32, 66, 0.95);
  transition: all 0.5s;
}
@media (min-width: 768px) {
  .video-full-page {
    padding: 60px;
  }
}
.video-stop .video-full-page, .video-end .video-full-page {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.video-buttons {
  padding: 5px 0;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 10px;
}
@media (min-width: 768px) {
  .video-buttons {
    padding: 10px 0;
  }
}

.get,
.stop-button {
  background: transparent;
  color: #fff;
  padding: 0;
  border: 0;
  height: auto;
  font-size: 12px;
  line-height: 1.2;
}
@media (min-width: 768px) {
  .get,
  .stop-button {
    font-size: 14px;
  }
}
.get:hover,
.stop-button:hover {
  text-decoration: underline;
  background: transparent;
}

.get {
  color: #fcc717;
}
.get:focus, .get:hover {
  color: #fcc717;
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZlbmRvcnMvX25vcm1hbGl6ZS5zY3NzIiwidmVuZG9ycy9fZm9udHMuc2NzcyIsImJhc2UvX2Jhc2Uuc2NzcyIsImFic3RyYWN0cy9fdmFyaWFibGVzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvaW5jbHVkZS1tZWRpYS9kaXN0L19pbmNsdWRlLW1lZGlhLnNjc3MiLCJiYXNlL19oZWxwZXJzLnNjc3MiLCJhYnN0cmFjdHMvX21peGlucy5zY3NzIiwiYWJzdHJhY3RzL19mdW5jdGlvbnMuc2NzcyIsImJhc2UvX3R5cG9ncmFwaHkuc2NzcyIsImJhc2UvX2Zvcm1zLnNjc3MiLCJiYXNlL193ZWJfYWNjZXNzaWJpbGl0eS5zY3NzIiwibGF5b3V0L19oZWFkZXIuc2NzcyIsImxheW91dC9fY29tbW9uLnNjc3MiLCJsYXlvdXQvX2Zvb3Rlci5zY3NzIiwiY29tcG9uZW50cy9fYnV0dG9uLnNjc3MiLCJjb21wb25lbnRzL190cmFpbGVyLnNjc3MiLCJjb21wb25lbnRzL191cGdyYWRlLnNjc3MiLCJjb21wb25lbnRzL19tb2RlbHMuc2NzcyIsImNvbXBvbmVudHMvX3NlY3Rpb24tdmlkZW8uc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUVBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0k7QUFDQTtFQUNBO0FBQ0E7OztBQUdKO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFJQTtFQUNJOzs7QUFHSjtBQUFBO0FBQUE7QUFJQTtFQUNJOzs7QUFHSjtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0k7RUFDQTs7O0FBR0o7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFDSTtBQUNBO0VBQ0E7QUFDQTtFQUNBO0FBQ0E7OztBQUdKO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFDSTtBQUNBO0VBQ0E7QUFDQTs7O0FBR0o7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUlBO0VBQ0k7OztBQUdKO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFDSTtBQUNBO0VBQ0E7QUFDQTtFQUNBO0FBQ0E7OztBQUdKO0FBQUE7QUFBQTtBQUlBO0FBQUE7RUFFSTs7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7RUFHSTtBQUNBO0VBQ0E7QUFDQTs7O0FBR0o7QUFBQTtBQUFBO0FBSUE7RUFDSTs7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0VBRUk7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7OztBQUdKO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFJQTtFQUNJOzs7QUFHSjtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBS0k7QUFDQTtFQUNBO0FBQ0E7RUFDQTtBQUNBO0VBQ0E7QUFDQTs7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBRUk7RUFDQTs7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBRUk7RUFDQTs7O0FBR0o7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7RUFJSTs7O0FBR0o7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7RUFJSTtFQUNBOzs7QUFHSjtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtFQUlJOzs7QUFHSjtBQUFBO0FBQUE7QUFJQTtFQUNJOzs7QUFHSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtFQUNJO0FBQ0E7RUFDQTtBQUNBO0VBQ0E7QUFDQTtFQUNBO0FBQ0E7RUFDQTtBQUNBO0VBQ0E7QUFDQTs7O0FBR0o7QUFBQTtBQUFBO0FBSUE7RUFDSTs7O0FBR0o7QUFBQTtBQUFBO0FBSUE7RUFDSTs7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0VBRUk7QUFDQTtFQUNBO0FBQ0E7OztBQUdKO0FBQUE7QUFBQTtBQUlBO0FBQUE7RUFFSTs7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNJO0FBQ0E7RUFDQTtBQUNBOzs7QUFHSjtBQUFBO0FBQUE7QUFJQTtFQUNJOzs7QUFHSjtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0k7QUFDQTtFQUNBO0FBQ0E7OztBQUdKO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFJQTtFQUNJOzs7QUFHSjtBQUFBO0FBQUE7QUFJQTtFQUNJOzs7QUFHSjtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBSUE7RUFDSTs7O0FBR0o7QUFBQTtBQUFBO0FBSUE7RUFDSTs7O0FDelhKO0VBQ0k7RUFDQTtFQUVBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBRUE7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFFQTtFQUNBOztBQ3JCSjtFQUNJO0VBQ0E7OztBQUdKO0FBQUE7QUFBQTtFQUdJOzs7QUFHSjtFQUNJOzs7QUFJSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFZSTs7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFtQkk7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFHSjtBQUFBO0VBRUk7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7O0FBR0o7QUFBQTtFQUVJOzs7QUFHSjtBQUFBO0FBQUE7QUFBQTtFQUlJO0VBQ0E7OztBQUdKO0VBQ0k7OztBQU1BO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTs7O0FBSVI7RUFDSTtFQUNBOzs7QUFHSjtFQUNJLE9DN0dJO0VEOEdKLFlDcEdPO0VEcUdQO0VBQ0EsV0NWYTtFRFdiO0VBQ0E7RUFDQTs7QUVxYkE7RUY1Yko7SUFVUSxXQ25CZTtJRG9CZixhQ25CaUI7Ozs7QUQwQnpCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUlKO0VBQ0k7OztBRWlhQTtFRjlaSjtJQUVROzs7O0FBSVI7RUFDSTs7O0FHN0lBO0VBQ0k7RUFDQTtFQUNBOzs7QUFzRFI7RUFDSTtBQUNBO0VBQ0E7QUFDQTtFQUNBOzs7QUFHSjtFQUlJO0VBQ0E7O0FEOGRBO0VFcE9JO0lBRVE7OztBRmtPWjtFRTlOSTtJQUVROzs7QUY0Tlo7RUVwT0k7SUFFUTs7O0FGa09aO0VFOU5JO0lBRVE7OztBRjROWjtFRXBPSTtJQUVROzs7QUZrT1o7RUU5Tkk7SUFFUTs7O0FGNE5aO0VFaE5RO0lBRVE7SUFDQTs7O0FGNk1oQjtFRWhOUTtJQUVRO0lBQ0E7OztBRjZNaEI7RUVoTlE7SUFFUTtJQUNBOzs7QUY2TWhCO0VFaE5RO0lBRVE7SUFDQTs7O0FGNk1oQjtFRWhOUTtJQUVRO0lBQ0E7OztBRjZNaEI7RUVoTlE7SUFFUTtJQUNBOzs7QUY2TWhCO0VFaE5RO0lBRVE7SUFDQTs7O0FGNk1oQjtFRWhOUTtJQUVRO0lBQ0E7OztBRjZNaEI7RUVoTlE7SUFFUTtJQUNBOzs7QUY2TWhCO0VFaE5RO0lBRVE7SUFDQTs7O0FGNk1oQjtFRWhOUTtJQUVRO0lBQ0E7OztBRjZNaEI7RUVoTlE7SUFFUTtJQUNBOzs7QUY2TWhCO0VFdk1RO0lBRVE7OztBRnFNaEI7RUV2TVE7SUFFUTs7O0FGcU1oQjtFRXZNUTtJQUVROzs7QUZxTWhCO0VFdk1RO0lBRVE7OztBRnFNaEI7RUV2TVE7SUFFUTs7O0FGcU1oQjtFRXZNUTtJQUVROzs7QUZxTWhCO0VFdk1RO0lBRVE7OztBRnFNaEI7RUV2TVE7SUFFUTs7O0FGcU1oQjtFRXZNUTtJQUVROzs7QUZxTWhCO0VFdk1RO0lBRVE7OztBRnFNaEI7RUV2TVE7SUFFUTs7O0FGcU1oQjtFRXZNUTtJQUVROzs7QUZxTWhCO0VFaE5RO0lBRVE7SUFDQTs7O0FGNk1oQjtFRWhOUTtJQUVRO0lBQ0E7OztBRjZNaEI7RUVoTlE7SUFFUTtJQUNBOzs7QUY2TWhCO0VFaE5RO0lBRVE7SUFDQTs7O0FGNk1oQjtFRWhOUTtJQUVRO0lBQ0E7OztBRjZNaEI7RUVoTlE7SUFFUTtJQUNBOzs7QUY2TWhCO0VFaE5RO0lBRVE7SUFDQTs7O0FGNk1oQjtFRWhOUTtJQUVRO0lBQ0E7OztBRjZNaEI7RUVoTlE7SUFFUTtJQUNBOzs7QUY2TWhCO0VFaE5RO0lBRVE7SUFDQTs7O0FGNk1oQjtFRWhOUTtJQUVRO0lBQ0E7OztBRjZNaEI7RUVoTlE7SUFFUTtJQUNBOzs7QUY2TWhCO0VFdk1RO0lBRVE7OztBRnFNaEI7RUV2TVE7SUFFUTs7O0FGcU1oQjtFRXZNUTtJQUVROzs7QUZxTWhCO0VFdk1RO0lBRVE7OztBRnFNaEI7RUV2TVE7SUFFUTs7O0FGcU1oQjtFRXZNUTtJQUVROzs7QUZxTWhCO0VFdk1RO0lBRVE7OztBRnFNaEI7RUV2TVE7SUFFUTs7O0FGcU1oQjtFRXZNUTtJQUVROzs7QUZxTWhCO0VFdk1RO0lBRVE7OztBRnFNaEI7RUV2TVE7SUFFUTs7O0FGcU1oQjtFRXZNUTtJQUVROzs7QUZxTWhCO0VFaE5RO0lBRVE7SUFDQTs7O0FGNk1oQjtFRWhOUTtJQUVRO0lBQ0E7OztBRjZNaEI7RUVoTlE7SUFFUTtJQUNBOzs7QUY2TWhCO0VFaE5RO0lBRVE7SUFDQTs7O0FGNk1oQjtFRWhOUTtJQUVRO0lBQ0E7OztBRjZNaEI7RUVoTlE7SUFFUTtJQUNBOzs7QUY2TWhCO0VFaE5RO0lBRVE7SUFDQTs7O0FGNk1oQjtFRWhOUTtJQUVRO0lBQ0E7OztBRjZNaEI7RUVoTlE7SUFFUTtJQUNBOzs7QUY2TWhCO0VFaE5RO0lBRVE7SUFDQTs7O0FGNk1oQjtFRWhOUTtJQUVRO0lBQ0E7OztBRjZNaEI7RUVoTlE7SUFFUTtJQUNBOzs7QUY2TWhCO0VFdk1RO0lBRVE7OztBRnFNaEI7RUV2TVE7SUFFUTs7O0FGcU1oQjtFRXZNUTtJQUVROzs7QUZxTWhCO0VFdk1RO0lBRVE7OztBRnFNaEI7RUV2TVE7SUFFUTs7O0FGcU1oQjtFRXZNUTtJQUVROzs7QUZxTWhCO0VFdk1RO0lBRVE7OztBRnFNaEI7RUV2TVE7SUFFUTs7O0FGcU1oQjtFRXZNUTtJQUVROzs7QUZxTWhCO0VFdk1RO0lBRVE7OztBRnFNaEI7RUV2TVE7SUFFUTs7O0FGcU1oQjtFRXZNUTtJQUVROzs7QUZxTWhCO0VDbmVKO0lBUVE7Ozs7QUUzRFE7QUFBQTtFQUVJOzs7QUFGSjtBQUFBO0VBRUk7OztBQUZKO0FBQUE7RUFFSTs7O0FBRko7QUFBQTtFQUVJOzs7QUFGSjtBQUFBO0VBRUk7OztBQUZKO0FBQUE7RUFFSTs7O0FIb2hCaEI7RUd6Z0JnQjtBQUFBO0lBRUk7O0VBRko7QUFBQTtJQUVJOztFQUZKO0FBQUE7SUFFSTs7RUFGSjtBQUFBO0lBRUk7O0VBRko7QUFBQTtJQUVJOztFQUZKO0FBQUE7SUFFSTs7O0FIdWdCcEI7RUd6Z0JnQjtBQUFBO0lBRUk7O0VBRko7QUFBQTtJQUVJOztFQUZKO0FBQUE7SUFFSTs7RUFGSjtBQUFBO0lBRUk7O0VBRko7QUFBQTtJQUVJOztFQUZKO0FBQUE7SUFFSTs7O0FIdWdCcEI7RUd6Z0JnQjtBQUFBO0lBRUk7O0VBRko7QUFBQTtJQUVJOztFQUZKO0FBQUE7SUFFSTs7RUFGSjtBQUFBO0lBRUk7O0VBRko7QUFBQTtJQUVJOztFQUZKO0FBQUE7SUFFSTs7O0FDbEN4QjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQWFJLGFMNkVRO0VLNUVSLE9Mb0thO0VLbktiLGFMeUhTO0VLeEhUOzs7QUFHSjtFQUNJO0VBQ0EsYUxtSFM7RUtsSFQ7RUFDQTtFQUNBOztBSmloQkE7RUl0aEJKO0lBUVE7SUFDQTs7O0FKNmdCSjtFSXRoQko7SUFhUTs7OztBQUlSO0VBQ0k7RUFDQSxhTGtHUztFS2pHVDtFQUNBO0VBQ0E7O0FKZ2dCQTtFSXJnQko7SUFRUTtJQUNBOzs7QUo0Zko7RUlyZ0JKO0lBYVE7Ozs7QUFJUjtFQUNJO0VBQ0E7RUFDQSxhTGdGUztFSy9FVDtFQUNBOztBSitlQTtFSXBmSjtJQVFROzs7O0FBSVI7RUFDSTs7O0FBR0o7RUFDSSxPTHpDRztFSzBDSCxpQkwwRWM7O0FLeEVkO0VBRUksT0wvREE7RUtnRUEsaUJMc0VnQjs7O0FLbEV4QjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0EsT0xuREs7OztBTXRDVDtBQUFBO0VBRUk7RUFDQTtFQUNBOzs7QUFHSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQVFJO0VBQ0E7RUFDQSxTTjBOWTtFTXpOWixXTm1GYTtFTWxGYixhTm9OZ0I7RU1uTmhCLGFOeUVRO0VNeEVSO0VBQ0EsUU51Tlc7RU10TlgsZU51TmtCOztBTXJObEI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFDSSxRTnNOTzs7QU1uTlg7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFDSTtFQUNBLGNOaEJBOztBRzRQSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFR3hPSSxPTjlCRDs7QUcwUUg7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFDSTtFRzdPQSxPTjlCRDs7QUcrUUg7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUdqUEksT045QkQ7O0FHbVJIO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VHclBJLE9OOUJEOztBR3VSSDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFR3pQSSxPTjlCRDs7O0FNa0NQO0VBQ0k7OztBQU9KO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0VIbU1JLFlBSFc7RUcxTFg7RUFDQTtFQUNBLFFObUxXO0VNbExYLFNOOEhVO0VNN0hWLFdOc0NhO0VNckNiLGFOa0ljO0VNaklkLE9OdkJJO0VNd0JKLFlOc0lxQjtFTW5JakIsY05tSFc7RU1sSFgsY05pTGM7RU1oTGQsY05pSWlCO0VNaElqQixlTmlIWTtFTTlHaEI7RUFDQTs7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBQ0ksWU5yQ0E7RU1zQ0EsT053SGlCOzs7QU96TXpCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTs7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQ2pDSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QVBvaUJBO0VPMWlCSjtJQVNROzs7QVBpaUJKO0VPMWlCSjtJQWFROzs7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7O0FQc2hCQTtFT3poQko7SUFNUTs7OztBQUlSO0VBQ0k7O0FQOGdCQTtFTy9nQko7SUFJUTs7O0FBSUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBSUE7RUFDSTs7O0FDOUNoQjtFQUNJO0VBQ0E7RUFDQTtFQUNBLGtCVFFPO0VTUFA7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QVJpaUJBO0VRMWlCSjtJQVlROzs7O0FBSVI7RUFDSTs7O0FBR0o7RUFDSTtFQUNBLFdUeUZ5QjtFU3hGekIsU1QwRmdCO0VTekZoQjs7QVJraEJBO0VRdGhCSjtJQU9RO0lBQ0E7Ozs7QUFJUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QVJvZ0JBO0VRMWdCSjtJQVNRO0lBQ0E7OztBUmdnQko7RVExZ0JKO0lBY1E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QVJvZko7RVF6ZkE7SUFRUTtJQUNBOzs7QUFHSjtFQUNJOztBUjRlUjtFUTdlSTtJQUlROzs7QUFJUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QVIrZFI7RVFyZUk7SUFTUTtJQUNBOzs7O0FDbEZoQjtFQUNJO0VBQ0EsT1ZpQ0s7RVVoQ0w7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QVRzaUJBO0VTN2lCSjtJQVVROzs7QVRtaUJKO0VTN2lCSjtJQWNROzs7QVQraEJKO0VTN2lCSjtJQWtCUTs7O0FBR0o7RUFDSTtFQUNBOztBQUVBO0VBQ0ksT1ZyQko7O0FVeUJKO0VBQ0k7RUFDQTs7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7O0FUc2dCQTtFU3pnQko7SUFNUTs7O0FBR0o7RUFDSTs7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxPVnBESTs7QVV1REE7RUFDSTtFQUNBO0VBQ0EsT1Z4Qkg7O0FVNEJHO0VBQ0k7O0FBS1o7RUFDSSxPVm5DQzs7QVVxQ0Q7RUFDSTs7O0FBS1o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBOztBVDhjSjtFU2pkQTtJQU1ROzs7O0FBS1o7RUFDSTtFQUNBO0VBQ0EsT1ZyR0k7RVVzR0osYVY0Qks7RVUzQkw7RUFDQTs7QVRnY0E7RVN0Y0o7SUFTUTtJQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQSxhVmdCQztFVWZEO0VBQ0E7RUFDQTs7QVRtYko7RVN6YkE7SUFTUTtJQUNBOzs7QUFJUjtFQUNJOztBVDBhSjtFUzNhQTtJQUlRO0lBQ0E7SUFDQTs7O0FBSVI7RUFDSTtFQUNBOztBQUdKO0VBQ0k7OztBQy9JUjtFQUNJO0VBQ0EsU1h3TFU7RVd2TFYsV1gwTFk7RVd6TFosYVhtSUc7RVdsSUg7RUFDQSxhWDBMYztFV3pMZDtFQUNBO0VBQ0E7RUFDQTtFQUdJO0VBQ0E7RUFDQSxjWHVLVztFV3RLWCxlWHVLWTs7QVdwS2hCO0VBQ0ksT1hvQkE7RVduQkEsWVhpTGlCO0VXaExqQixjWGdMaUI7RVcvS2pCO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsYVh5R0M7RVd4R0Q7O0FWOGdCSjtFVXZoQkE7SUFZUTs7O0FBR0o7RUFDSSxPWEtKO0VXSkksWVh5S21CO0VXeEtuQixjWGlLYTs7QVc5SmpCO0VBQ0k7O0FBSVI7RUFDSTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUlSO0VBQ0ksT1g3REE7RVc4REEsWVgzQkE7RVc0QkE7O0FBRUE7RUFDSSxPWGxFSjtFV21FSSxZWGtKbUI7O0FXOUkzQjtFQUNJLE9YaUpjO0VXaEpkLFlYaUptQjtFV2hKbkI7RUFDQTtFQUNBO0VBQ0EsYVhxREM7RVdwREQ7O0FWMGRKO0VVamVBO0lBVVE7OztBQUdKO0VBQ0ksT1h3SWdCO0VXdkloQixZWHdJcUI7O0FXcEk3QjtFQUNJLFNYOEZTO0VXN0ZULFdYZ0dXO0VXL0ZYLGFYa0dhO0VXakdiLGVYd0ZlOztBV3JGbkI7RUFDSSxTWHdGUztFV3ZGVDtFQUNBLGFYNEZhO0VXM0ZiLGVYa0ZlO0VXakZmOztBVmtjSjtFVXZjQTtJQVFRLFdYb0ZPOzs7QVdoRmY7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxhWEhLO0VXSUwsT1hwR0s7RVdxR0w7RUFDQTtFQUNBOztBQUVBO0VBQ0ksU1g0Q007RVczQ047RUFDQTtFQUNBO0VBQ0E7RUFDQSxZWDFHQztFVzJHRDtFQUNBOztBQUdKO0VBQ0ksT1h2SkE7RVd3SkE7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBOztBQUlSO0VBRUksT1huSUM7O0FXcUlEO0VBQ0ksWVhoSUQ7OztBV3FJWDtFQUNJO0VBQ0E7RUFDQTtFQUNBLFlYeElPO0VXeUlQLE9YbExJO0VXbUxKO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFFSSxPWHBNQTtFV3FNQSxZWDlKQzs7O0FXa0tUO0VBQ0k7RUFDQTtFQUNBOztBQUVBO0VBQ0k7OztBQUlSO0VBQ0k7SUFDSTs7RUFHSjtJQUNJOztFQUdKO0lBQ0k7OztBQUlSO0VBQ0k7SUFDSTs7RUFFSjtJQUNJOztFQUVKO0lBQ0k7OztBQzlPUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FYd2lCQTtFVzdpQko7SUFRUTs7O0FYcWlCSjtFVzdpQko7SUFZUTtJQUNBOzs7QVhnaUJKO0VXN2lCSjtJQWlCUTtJQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7QVhxaEJKO0VXeGhCQTtJQU1ROzs7QVhraEJSO0VXeGhCQTtJQVVROzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7QVh3Z0JSO0VXM2dCSTtJQU1ROzs7QVhxZ0JaO0VXM2dCSTtJQVVROzs7QUFLWjtFQUNJO0VBQ0E7RUFDQTs7QVh5Zko7RVc1ZkE7SUFNUTtJQUNBOzs7QUFJUjtFQUNJOztBWGdmSjtFV2pmQTtJQUlROzs7O0FDaEVaO0VBQ0k7RUFDQTtFQUNBLFliV087RWFWUDtFQUNBOztBWndpQkE7RVk3aUJKO0lBUVE7OztBWnFpQko7RVk3aUJKO0lBWVE7SUFDQTs7O0FaZ2lCSjtFWTdpQko7SUFpQlE7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOztBWnNoQko7RVl6aEJBO0lBTVE7OztBWm1oQlI7RVl6aEJBO0lBVVE7SUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7O0Fad2dCUjtFWTNnQkk7SUFNUTs7O0FacWdCWjtFWTNnQkk7SUFVUTs7O0FBS1o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0Fac2ZKO0VZNWZBO0lBU1E7SUFDQTtJQUNBOzs7O0FDNURaO0VBQ0k7RUFDQTtFQUNBLFlkV087RWNWUDs7QWJ5aUJBO0VhN2lCSjtJQU9ROzs7QWJzaUJKO0VhN2lCSjtJQVdROzs7QUFHSjtFQUNJO0VBQ0E7O0FiNmhCSjtFYS9oQkE7SUFLUTtJQUNBO0lBQ0E7SUFDQTs7O0FidWhCUjtFYS9oQkE7SUFlUTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7O0FiMGdCUjtFYTdnQkk7SUFTUTtJQUNBO0lBQ0E7OztBQU1aO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0Fid2ZKO0VhNWZBO0lBT1E7SUFDQTtJQUNBOzs7QUFJUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QWJzZUo7RWEvZUE7SUFZUTtJQUNBO0lBQ0E7SUFDQTtJQUNBOzs7QUFHSjtFQUNJOztBQUlSO0VBQ0k7RUFDQSxhZG9ESztFY25ETDtFQUNBO0VBQ0E7O0Fia2RKO0VhdmRBO0lBUVE7OztBYitjUjtFYXZkQTtJQVlRO0lBQ0E7OztBQUlSO0VBQ0k7O0FicWNKO0VhdGNBO0lBSVE7Ozs7QUFLWjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QWJ1YkE7RWE3Yko7SUFTUTs7O0FBR0o7RUFDSTtFQUNBOztBYithSjtFYWpiQTtJQUtRO0lBQ0E7OztBYjJhUjtFYWpiQTtJQVVROzs7O0FBS1o7RUFDSTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsT2Q5SUE7O0FDd2lCSjtFYS9aQTtJQVFRO0lBQ0E7OztBQUlSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBYjRZSjtFYWxaQTtJQVNRO0lBQ0E7OztBYndZUjtFYWxaQTtJQWNRO0lBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUNuTFo7RUFDSTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBZDBoQkE7RWNuaUJKO0lBWVE7OztBQUdKO0VBRUk7RUFDQTtFQUNBOzs7QUFJUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FkdWdCQTtFYzVnQko7SUFRUTs7OztBQUlSO0FBQUE7RUFFSTtFQUNBLE9mM0NJO0VlNENKO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0Fkd2ZBO0VjaGdCSjtBQUFBO0lBV1E7OztBQUdKO0FBQUE7RUFDSTtFQUNBOzs7QUFJUjtFQUNJLE9mM0JLOztBZTZCTDtFQUVJLE9mL0JDIiwiZmlsZSI6InN0eWxlLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qISBub3JtYWxpemUuY3NzIHY4LjAuMSB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cclxuXHJcbi8qIERvY3VtZW50XHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKipcclxuICogMS4gQ29ycmVjdCB0aGUgbGluZSBoZWlnaHQgaW4gYWxsIGJyb3dzZXJzLlxyXG4gKiAyLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluIGlPUy5cclxuICovXHJcblxyXG5odG1sIHtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjE1O1xyXG4gICAgLyogMSAqL1xyXG4gICAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xyXG4gICAgLyogMiAqL1xyXG59XHJcblxyXG4vKiBTZWN0aW9uc1xyXG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKipcclxuICAgKiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMuXHJcbiAgICovXHJcblxyXG5ib2R5IHtcclxuICAgIG1hcmdpbjogMDtcclxufVxyXG5cclxuLyoqXHJcbiAgICogUmVuZGVyIHRoZSBgbWFpbmAgZWxlbWVudCBjb25zaXN0ZW50bHkgaW4gSUUuXHJcbiAgICovXHJcblxyXG5tYWluIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG59XHJcblxyXG4vKipcclxuICAgKiBDb3JyZWN0IHRoZSBmb250IHNpemUgYW5kIG1hcmdpbiBvbiBgaDFgIGVsZW1lbnRzIHdpdGhpbiBgc2VjdGlvbmAgYW5kXHJcbiAgICogYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cclxuICAgKi9cclxuXHJcbmgxIHtcclxuICAgIGZvbnQtc2l6ZTogMmVtO1xyXG4gICAgbWFyZ2luOiAwLjY3ZW0gMDtcclxufVxyXG5cclxuLyogR3JvdXBpbmcgY29udGVudFxyXG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKipcclxuICAgKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBGaXJlZm94LlxyXG4gICAqIDIuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxyXG4gICAqL1xyXG5cclxuaHIge1xyXG4gICAgYm94LXNpemluZzogY29udGVudC1ib3g7XHJcbiAgICAvKiAxICovXHJcbiAgICBoZWlnaHQ6IDA7XHJcbiAgICAvKiAxICovXHJcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcclxuICAgIC8qIDIgKi9cclxufVxyXG5cclxuLyoqXHJcbiAgICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cclxuICAgKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXHJcbiAgICovXHJcblxyXG5wcmUge1xyXG4gICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xyXG4gICAgLyogMSAqL1xyXG4gICAgZm9udC1zaXplOiAxZW07XHJcbiAgICAvKiAyICovXHJcbn1cclxuXHJcbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXHJcbiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gICAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIG9uIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cclxuICAgKi9cclxuXHJcbmEge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbn1cclxuXHJcbi8qKlxyXG4gICAqIDEuIFJlbW92ZSB0aGUgYm90dG9tIGJvcmRlciBpbiBDaHJvbWUgNTctXHJcbiAgICogMi4gQWRkIHRoZSBjb3JyZWN0IHRleHQgZGVjb3JhdGlvbiBpbiBDaHJvbWUsIEVkZ2UsIElFLCBPcGVyYSwgYW5kIFNhZmFyaS5cclxuICAgKi9cclxuXHJcbmFiYnJbdGl0bGVdIHtcclxuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XHJcbiAgICAvKiAxICovXHJcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuICAgIC8qIDIgKi9cclxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDtcclxuICAgIC8qIDIgKi9cclxufVxyXG5cclxuLyoqXHJcbiAgICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cclxuICAgKi9cclxuXHJcbmIsXHJcbnN0cm9uZyB7XHJcbiAgICBmb250LXdlaWdodDogYm9sZGVyO1xyXG59XHJcblxyXG4vKipcclxuICAgKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxyXG4gICAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cclxuICAgKi9cclxuXHJcbmNvZGUsXHJcbmtiZCxcclxuc2FtcCB7XHJcbiAgICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XHJcbiAgICAvKiAxICovXHJcbiAgICBmb250LXNpemU6IDFlbTtcclxuICAgIC8qIDIgKi9cclxufVxyXG5cclxuLyoqXHJcbiAgICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXHJcbiAgICovXHJcblxyXG5zbWFsbCB7XHJcbiAgICBmb250LXNpemU6IDgwJTtcclxufVxyXG5cclxuLyoqXHJcbiAgICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluXHJcbiAgICogYWxsIGJyb3dzZXJzLlxyXG4gICAqL1xyXG5cclxuc3ViLFxyXG5zdXAge1xyXG4gICAgZm9udC1zaXplOiA3NSU7XHJcbiAgICBsaW5lLWhlaWdodDogMDtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcclxufVxyXG5cclxuc3ViIHtcclxuICAgIGJvdHRvbTogLTAuMjVlbTtcclxufVxyXG5cclxuc3VwIHtcclxuICAgIHRvcDogLTAuNWVtO1xyXG59XHJcblxyXG4vKiBFbWJlZGRlZCBjb250ZW50XHJcbiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gICAqIFJlbW92ZSB0aGUgYm9yZGVyIG9uIGltYWdlcyBpbnNpZGUgbGlua3MgaW4gSUUgMTAuXHJcbiAgICovXHJcblxyXG5pbWcge1xyXG4gICAgYm9yZGVyLXN0eWxlOiBub25lO1xyXG59XHJcblxyXG4vKiBGb3Jtc1xyXG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKipcclxuICAgKiAxLiBDaGFuZ2UgdGhlIGZvbnQgc3R5bGVzIGluIGFsbCBicm93c2Vycy5cclxuICAgKiAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXHJcbiAgICovXHJcblxyXG5idXR0b24sXHJcbmlucHV0LFxyXG5vcHRncm91cCxcclxuc2VsZWN0LFxyXG50ZXh0YXJlYSB7XHJcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDtcclxuICAgIC8qIDEgKi9cclxuICAgIGZvbnQtc2l6ZTogMTAwJTtcclxuICAgIC8qIDEgKi9cclxuICAgIGxpbmUtaGVpZ2h0OiAxLjE1O1xyXG4gICAgLyogMSAqL1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgLyogMiAqL1xyXG59XHJcblxyXG4vKipcclxuICAgKiBTaG93IHRoZSBvdmVyZmxvdyBpbiBJRS5cclxuICAgKiAxLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlLlxyXG4gICAqL1xyXG5cclxuYnV0dG9uLFxyXG5pbnB1dCB7XHJcbiAgICAvKiAxICovXHJcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcclxufVxyXG5cclxuLyoqXHJcbiAgICogUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXHJcbiAgICogMS4gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBGaXJlZm94LlxyXG4gICAqL1xyXG5cclxuYnV0dG9uLFxyXG5zZWxlY3Qge1xyXG4gICAgLyogMSAqL1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XHJcbn1cclxuXHJcbi8qKlxyXG4gICAqIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXHJcbiAgICovXHJcblxyXG5idXR0b24sXHJcblt0eXBlPVwiYnV0dG9uXCJdLFxyXG5bdHlwZT1cInJlc2V0XCJdLFxyXG5bdHlwZT1cInN1Ym1pdFwiXSB7XHJcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcclxufVxyXG5cclxuLyoqXHJcbiAgICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cclxuICAgKi9cclxuXHJcbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcclxuW3R5cGU9XCJidXR0b25cIl06Oi1tb3otZm9jdXMtaW5uZXIsXHJcblt0eXBlPVwicmVzZXRcIl06Oi1tb3otZm9jdXMtaW5uZXIsXHJcblt0eXBlPVwic3VibWl0XCJdOjotbW96LWZvY3VzLWlubmVyIHtcclxuICAgIGJvcmRlci1zdHlsZTogbm9uZTtcclxuICAgIHBhZGRpbmc6IDA7XHJcbn1cclxuXHJcbi8qKlxyXG4gICAqIFJlc3RvcmUgdGhlIGZvY3VzIHN0eWxlcyB1bnNldCBieSB0aGUgcHJldmlvdXMgcnVsZS5cclxuICAgKi9cclxuXHJcbmJ1dHRvbjotbW96LWZvY3VzcmluZyxcclxuW3R5cGU9XCJidXR0b25cIl06LW1vei1mb2N1c3JpbmcsXHJcblt0eXBlPVwicmVzZXRcIl06LW1vei1mb2N1c3JpbmcsXHJcblt0eXBlPVwic3VibWl0XCJdOi1tb3otZm9jdXNyaW5nIHtcclxuICAgIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcclxufVxyXG5cclxuLyoqXHJcbiAgICogQ29ycmVjdCB0aGUgcGFkZGluZyBpbiBGaXJlZm94LlxyXG4gICAqL1xyXG5cclxuZmllbGRzZXQge1xyXG4gICAgcGFkZGluZzogMC4zNWVtIDAuNzVlbSAwLjYyNWVtO1xyXG59XHJcblxyXG4vKipcclxuICAgKiAxLiBDb3JyZWN0IHRoZSB0ZXh0IHdyYXBwaW5nIGluIEVkZ2UgYW5kIElFLlxyXG4gICAqIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cclxuICAgKiAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XHJcbiAgICogICAgYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBhbGwgYnJvd3NlcnMuXHJcbiAgICovXHJcblxyXG5sZWdlbmQge1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgIC8qIDEgKi9cclxuICAgIGNvbG9yOiBpbmhlcml0O1xyXG4gICAgLyogMiAqL1xyXG4gICAgZGlzcGxheTogdGFibGU7XHJcbiAgICAvKiAxICovXHJcbiAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICAvKiAxICovXHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgLyogMyAqL1xyXG4gICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcclxuICAgIC8qIDEgKi9cclxufVxyXG5cclxuLyoqXHJcbiAgICogQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cclxuICAgKi9cclxuXHJcbnByb2dyZXNzIHtcclxuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcclxufVxyXG5cclxuLyoqXHJcbiAgICogUmVtb3ZlIHRoZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSAxMCsuXHJcbiAgICovXHJcblxyXG50ZXh0YXJlYSB7XHJcbiAgICBvdmVyZmxvdzogYXV0bztcclxufVxyXG5cclxuLyoqXHJcbiAgICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gSUUgMTAuXHJcbiAgICogMi4gUmVtb3ZlIHRoZSBwYWRkaW5nIGluIElFIDEwLlxyXG4gICAqL1xyXG5cclxuW3R5cGU9XCJjaGVja2JveFwiXSxcclxuW3R5cGU9XCJyYWRpb1wiXSB7XHJcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgLyogMSAqL1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIC8qIDIgKi9cclxufVxyXG5cclxuLyoqXHJcbiAgICogQ29ycmVjdCB0aGUgY3Vyc29yIHN0eWxlIG9mIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgaW4gQ2hyb21lLlxyXG4gICAqL1xyXG5cclxuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXHJcblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcclxuICAgIGhlaWdodDogYXV0bztcclxufVxyXG5cclxuLyoqXHJcbiAgICogMS4gQ29ycmVjdCB0aGUgb2RkIGFwcGVhcmFuY2UgaW4gQ2hyb21lIGFuZCBTYWZhcmkuXHJcbiAgICogMi4gQ29ycmVjdCB0aGUgb3V0bGluZSBzdHlsZSBpbiBTYWZhcmkuXHJcbiAgICovXHJcblxyXG5bdHlwZT1cInNlYXJjaFwiXSB7XHJcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcclxuICAgIC8qIDEgKi9cclxuICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xyXG4gICAgLyogMiAqL1xyXG59XHJcblxyXG4vKipcclxuICAgKiBSZW1vdmUgdGhlIGlubmVyIHBhZGRpbmcgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXHJcbiAgICovXHJcblxyXG5bdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XHJcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XHJcbn1cclxuXHJcbi8qKlxyXG4gICAqIDEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXHJcbiAgICogMi4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gU2FmYXJpLlxyXG4gICAqL1xyXG5cclxuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XHJcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcclxuICAgIC8qIDEgKi9cclxuICAgIGZvbnQ6IGluaGVyaXQ7XHJcbiAgICAvKiAyICovXHJcbn1cclxuXHJcbi8qIEludGVyYWN0aXZlXHJcbiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qXHJcbiAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUgMTArLCBhbmQgRmlyZWZveC5cclxuICAgKi9cclxuXHJcbmRldGFpbHMge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbn1cclxuXHJcbi8qXHJcbiAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gYWxsIGJyb3dzZXJzLlxyXG4gICAqL1xyXG5cclxuc3VtbWFyeSB7XHJcbiAgICBkaXNwbGF5OiBsaXN0LWl0ZW07XHJcbn1cclxuXHJcbi8qIE1pc2NcclxuICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTArLlxyXG4gICAqL1xyXG5cclxudGVtcGxhdGUge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxufVxyXG5cclxuLyoqXHJcbiAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAuXHJcbiAgICovXHJcblxyXG5baGlkZGVuXSB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG59IiwiQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6ICdnb3RoYW0nO1xuICAgIHNyYzogdXJsKCcuLi9mb250cy9nb3RoYW0tYm9vay13ZWJmb250LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICAgICAgICB1cmwoJy4uL2ZvbnRzL2dvdGhhbS1ib29rLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogJ2dvdGhhbSc7XG4gICAgc3JjOiB1cmwoJy4uL2ZvbnRzL2dvdGhhbS1ib29raXRhbGljLXdlYmZvbnQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksXG4gICAgICAgIHVybCgnLi4vZm9udHMvZ290aGFtLWJvb2tpdGFsaWMtd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbkBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAnZ290aGFtJztcbiAgICBzcmM6IHVybCgnLi4vZm9udHMvZ290aGFtLWJsYWNrLXdlYmZvbnQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksXG4gICAgICAgIHVybCgnLi4vZm9udHMvZ290aGFtLWJsYWNrLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpO1xuICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xufSIsImh0bWwge1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcclxufVxyXG5cclxuKixcclxuKjpiZWZvcmUsXHJcbio6YWZ0ZXIge1xyXG4gICAgYm94LXNpemluZzogaW5oZXJpdDtcclxufVxyXG5cclxuKiB7XHJcbiAgICBtYXgtaGVpZ2h0OiAxMDAwMDAwcHg7XHJcbn1cclxuXHJcbi8vLSBIVE1MNSBkaXNwbGF5LXJvbGUgcmVzZXQgZm9yIG9sZGVyIGJyb3dzZXJzXHJcbm1haW4sXHJcbmFydGljbGUsXHJcbmFzaWRlLFxyXG5kZXRhaWxzLFxyXG5maWdjYXB0aW9uLFxyXG5maWd1cmUsXHJcbmZvb3RlcixcclxuaGVhZGVyLFxyXG5oZ3JvdXAsXHJcbm1lbnUsXHJcbm5hdixcclxuc2VjdGlvbiB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxufVxyXG5cclxudWwsXHJcbm9sLFxyXG5kbCxcclxucCxcclxuaDEsXHJcbmgyLFxyXG5oMyxcclxuaDQsXHJcbmg1LFxyXG5oNixcclxuYWRkcmVzcyxcclxuZm9ybSxcclxudGFibGUsXHJcbmJsb2NrcXVvdGUsXHJcbmFwcGxldCxcclxuZW1iZWQsXHJcbm9iamVjdCxcclxuaWZyYW1lLFxyXG5mcmFtZXNldCB7XHJcbiAgICBtYXJnaW46IDAgMCAkdmVydGljYWwtcmh5dGhtO1xyXG59XHJcblxyXG5ibG9ja3F1b3RlIHtcclxuICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgJGdyYXk7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XHJcbiAgICBtYXJnaW4tbGVmdDogMDtcclxufVxyXG5cclxudGFibGUge1xyXG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcclxufVxyXG5cclxudGgsXHJcbnRkIHtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICRncmF5O1xyXG4gICAgcGFkZGluZzogM3B4O1xyXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XHJcbn1cclxuXHJcbnRoIHtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbn1cclxuXHJcbnVsLFxyXG5vbCB7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XHJcbn1cclxuXHJcbnVsIHVsLFxyXG51bCBvbCxcclxub2wgdWwsXHJcbm9sIG9sIHtcclxuICAgIHBhZGRpbmctbGVmdDogMjBweDtcclxuICAgIG1hcmdpbjogMDtcclxufVxyXG5cclxudWwge1xyXG4gICAgbGlzdC1zdHlsZS10eXBlOiBkaXNjO1xyXG59XHJcblxyXG5kbCB7XHJcbiAgICBAZXh0ZW5kICVjbGVhcmZpeDtcclxuXHJcbiAgICBkdCB7XHJcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgICAgY2xlYXI6IGxlZnQ7XHJcbiAgICAgICAgcGFkZGluZy1yaWdodDogMC4zZW07XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICB9XHJcblxyXG4gICAgZGQge1xyXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICB9XHJcbn1cclxuXHJcbnByZSB7XHJcbiAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICBvdmVyZmxvdzogYXV0bztcclxufVxyXG5cclxuYm9keSB7XHJcbiAgICBjb2xvcjogJGJhc2UtdGV4dC1jb2xvcjtcclxuICAgIGJhY2tncm91bmQ6ICRiYXNlLWJhY2tncm91bmQtYm9keTtcclxuICAgIGZvbnQ6ICN7JGZvbnQtc2l6ZS1iYXNlfS8jeyRsaW5lLWhlaWdodC1iYXNlfSAkYmFzZS1mb250LWZhbWlseTtcclxuICAgIG1pbi13aWR0aDogJGJhc2UtbWluLXdpZHRoO1xyXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XHJcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xyXG4gICAgbWFyZ2luOiAwO1xyXG5cclxuICAgIEBpbmNsdWRlIG1lZGlhKCfiiaV0YWJsZXQnKSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLWJhc2UtbGFncmU7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1iYXNlLWxhZ3JlO1xyXG4gICAgfVxyXG5cclxuICAgIFxyXG59XHJcblxyXG4vLyBhZGFwdGl2ZSBpbWFnZXNcclxuaW1nIHtcclxuICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogYXV0bztcclxuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbn1cclxuXHJcbi8vIGdvb2dsZSBtYXAgZml4XHJcbi5nbS1zdHlsZSBpbWcge1xyXG4gICAgbWF4LXdpZHRoOiBub25lO1xyXG59XHJcblxyXG5pZnJhbWUge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxkZXNrdG9wJykge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgfVxyXG59XHJcblxyXG4ucmVzaXplLWFjdGl2ZSAqIHtcclxuICAgIHRyYW5zaXRpb246IG5vbmUgIWltcG9ydGFudDtcclxufSIsIi8vIENvbG9yc1xyXG4vLyBDb2xvciBjYWxjdWxhdG9yIC0gaHR0cDovL3Jhem9yamFtLmdpdGh1Yi5pby9zYXNzY29sb3VyZnVuY3Rpb25jYWxjdWxhdG9yL1xyXG4vLyBDb2xvciBuYW1lcyAtIGh0dHA6Ly9uYW1lLW9mLWNvbG9yLmNvbS9cclxuLy8gQ29sb3Igc3lzdGVtXHJcblxyXG4kd2hpdGU6ICNmZmYgIWRlZmF1bHQ7XHJcbiRncmF5OiAjZGRkICFkZWZhdWx0O1xyXG4kZ3JheS0xMDA6ICNmOGY5ZmEgIWRlZmF1bHQ7XHJcbiRncmF5LTIwMDogI2U5ZWNlZiAhZGVmYXVsdDtcclxuJGdyYXktMzAwOiAjZGVlMmU2ICFkZWZhdWx0O1xyXG4kZ3JheS00MDA6ICNjZWQ0ZGEgIWRlZmF1bHQ7XHJcbiRncmF5LTUwMDogI2FkYjViZCAhZGVmYXVsdDtcclxuJGdyYXktNjAwOiAjNmM3NTdkICFkZWZhdWx0O1xyXG4kZ3JheS03MDA6ICM0OTUwNTcgIWRlZmF1bHQ7XHJcbiRncmF5LTgwMDogIzA4MDcwYTsgLy9cclxuJGdyYXktOTAwOiAjMDUwNTA1OyAvL1xyXG4kYmxhY2s6ICMwMDAgIWRlZmF1bHQ7XHJcblxyXG4kZ3JheXM6IChcclxuICAgICkgIWRlZmF1bHQ7XHJcbi8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzY3NzL2RvbGxhci12YXJpYWJsZS1kZWZhdWx0XHJcbiRncmF5czogbWFwLW1lcmdlKChcIjEwMFwiOiAkZ3JheS0xMDAsXHJcbiAgICAgICAgICAgIFwiMjAwXCI6ICRncmF5LTIwMCxcclxuICAgICAgICAgICAgXCIzMDBcIjogJGdyYXktMzAwLFxyXG4gICAgICAgICAgICBcIjQwMFwiOiAkZ3JheS00MDAsXHJcbiAgICAgICAgICAgIFwiNTAwXCI6ICRncmF5LTUwMCxcclxuICAgICAgICAgICAgXCI2MDBcIjogJGdyYXktNjAwLFxyXG4gICAgICAgICAgICBcIjcwMFwiOiAkZ3JheS03MDAsXHJcbiAgICAgICAgICAgIFwiODAwXCI6ICRncmF5LTgwMCxcclxuICAgICAgICAgICAgXCI5MDBcIjogJGdyYXktOTAwICksXHJcbiAgICAgICAgJGdyYXlzXHJcbik7XHJcblxyXG4kYmx1ZTogIzAwN2JmZiAhZGVmYXVsdDtcclxuJGluZGlnbzogIzIyMTgzOCAhZGVmYXVsdDtcclxuJHB1cnBsZTogIzcyNmM4ZDsgLy9cclxuJHBpbms6ICNlYjMyNWQgIWRlZmF1bHQ7XHJcbiRyZWQ6ICNkYzM1NDUgIWRlZmF1bHQ7XHJcbiRvcmFuZ2U6ICNmMzVkMWIgIWRlZmF1bHQ7XHJcbiR5ZWxsb3c6ICNmY2M3MTc7IC8vXHJcbiRncmVlbjogIzgzZDE4NiAhZGVmYXVsdDtcclxuJHRlYWw6ICMyMGM5OTcgIWRlZmF1bHQ7XHJcbiRjeWFuOiAjMTdhMmI4ICFkZWZhdWx0O1xyXG4kYnJhdW46ICM4MDRmMTkgIWRlZmF1bHQ7XHJcbiR2aW9sZXQ6ICMyODIwNDI7IC8vXHJcbiR2aW9sZXQtMTogIzZmNTdiODsgLy9cclxuJHZpb2xldC0yOiAjNGQzYjgyOyAvL1xyXG5cclxuJGNvbG9yczogKFxyXG4gICAgKSAhZGVmYXVsdDtcclxuLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNjc3MvZG9sbGFyLXZhcmlhYmxlLWRlZmF1bHRcclxuJGNvbG9yczogbWFwLW1lcmdlKChcImJsdWVcIjogJGJsdWUsXHJcbiAgICAgICAgICAgIFwiaW5kaWdvXCI6ICRpbmRpZ28sXHJcbiAgICAgICAgICAgIFwicHVycGxlXCI6ICRwdXJwbGUsXHJcbiAgICAgICAgICAgIFwicGlua1wiOiAkcGluayxcclxuICAgICAgICAgICAgXCJyZWRcIjogJHJlZCxcclxuICAgICAgICAgICAgXCJvcmFuZ2VcIjogJG9yYW5nZSxcclxuICAgICAgICAgICAgXCJ5ZWxsb3dcIjogJHllbGxvdyxcclxuICAgICAgICAgICAgXCJncmVlblwiOiAkZ3JlZW4sXHJcbiAgICAgICAgICAgIFwidGVhbFwiOiAkdGVhbCxcclxuICAgICAgICAgICAgXCJjeWFuXCI6ICRjeWFuLFxyXG4gICAgICAgICAgICBcIndoaXRlXCI6ICR3aGl0ZSxcclxuICAgICAgICAgICAgXCJncmF5XCI6ICRncmF5LTYwMCxcclxuICAgICAgICAgICAgXCJncmF5LWRhcmtcIjogJGdyYXktODAwICksXHJcbiAgICAgICAgJGNvbG9yc1xyXG4pO1xyXG5cclxuJHByaW1hcnk6ICRibHVlICFkZWZhdWx0O1xyXG4kc2Vjb25kYXJ5OiAkZ3JheS02MDAgIWRlZmF1bHQ7XHJcbiRzdWNjZXNzOiAkZ3JlZW4gIWRlZmF1bHQ7XHJcbiRpbmZvOiAkY3lhbiAhZGVmYXVsdDtcclxuJHdhcm5pbmc6ICR5ZWxsb3cgIWRlZmF1bHQ7XHJcbiRkYW5nZXI6ICRyZWQgIWRlZmF1bHQ7XHJcbiRsaWdodDogJGdyYXktMTAwICFkZWZhdWx0O1xyXG4kZGFyazogJGdyYXktODAwICFkZWZhdWx0O1xyXG5cclxuJHRoZW1lLWNvbG9yczogKFxyXG4gICAgKSAhZGVmYXVsdDtcclxuLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNjc3MvZG9sbGFyLXZhcmlhYmxlLWRlZmF1bHRcclxuJHRoZW1lLWNvbG9yczogbWFwLW1lcmdlKChcInByaW1hcnlcIjogJHByaW1hcnksXHJcbiAgICAgICAgICAgIFwic2Vjb25kYXJ5XCI6ICRzZWNvbmRhcnksXHJcbiAgICAgICAgICAgIFwic3VjY2Vzc1wiOiAkc3VjY2VzcyxcclxuICAgICAgICAgICAgXCJpbmZvXCI6ICRpbmZvLFxyXG4gICAgICAgICAgICBcIndhcm5pbmdcIjogJHdhcm5pbmcsXHJcbiAgICAgICAgICAgIFwiZGFuZ2VyXCI6ICRkYW5nZXIsXHJcbiAgICAgICAgICAgIFwibGlnaHRcIjogJGxpZ2h0LFxyXG4gICAgICAgICAgICBcImRhcmtcIjogJGRhcmsgKSxcclxuICAgICAgICAkdGhlbWUtY29sb3JzXHJcbik7XHJcblxyXG4vLyBmb250cyBuYW1lXHJcbiRiYXNlLWZvbnQtc2Fucy1zZXJpZjogJ0FyaWFsJywgJ0hlbHZldGljYSBOZXVlJywgJ0hlbHZldGljYScsIHNhbnMtc2VyaWY7XHJcbiRiYXNlLWZvbnQtc2VyaWY6ICdUaW1lcyBOZXcgUm9tYW4nLCAnVGltZXMnLCAnQmFza2VydmlsbGUnLCAnR2VvcmdpYScsIHNlcmlmO1xyXG5cclxuJGJhc2UtZm9udDogJ2dvdGhhbScsICRiYXNlLWZvbnQtc2Fucy1zZXJpZjtcclxuJGljb25zOiAnaWNvbW9vbic7XHJcblxyXG4vLyBCb2R5XHJcbiRiYXNlLXRleHQtY29sb3I6ICR3aGl0ZTsgLy9cclxuJGJhc2UtYmFja2dyb3VuZC1jb2xvcjogJGdyYXktOTAwOyAvL1xyXG4kYmFzZS1iYWNrZ3JvdW5kLWJvZHk6ICRncmF5LTkwMDsgLy9cclxuJGJhc2UtYmFja2dyb3VuZC1mb290ZXI6ICRncmF5LTgwMDsgLy9cclxuJGZvbnQtc2l6ZS1iYXNlOiAxNHB4OyAvL1xyXG4kbGluZS1oZWlnaHQtYmFzZTogMS4yMTQ7IC8vXHJcbiRmb250LXNpemUtYmFzZS1sYWdyZTogMTZweDsgLy9cclxuJGxpbmUtaGVpZ2h0LWJhc2UtbGFncmU6IDEuMTg3NTsgLy9cclxuJGJhc2UtZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQgIWRlZmF1bHQ7XHJcbiRiYXNlLW1pbi13aWR0aDogMzYwcHg7XHJcblxyXG4vLyBiYXNlIHZhcmlhYmxlc1xyXG4kYmFzZS1yYWRpdXM6IDA7XHJcbiRiYXNlLXJhZGl1cy1zbWFsbDogMDtcclxuXHJcbi8vIGNvbnRhaW5lciBzZXR0aW5nc1xyXG4kbWF4LXdpZHRoLWNlbnRlci1jb250YWluZXI6IDEzMDBweDtcclxuJGd1dHRlcjogMzBweDtcclxuJHBhZGRpbmctY29udGFpbmVyOiAwICRndXR0ZXI7XHJcblxyXG4kdW5pdC1pbnRlcnZhbHM6IChcclxuICAgICdweCc6IDAuMDIsXHJcbiAgICAnZW0nOiAwLjAxLFxyXG4gICAgJ3JlbSc6IDAuMSxcclxuICAgICcnOiAwXHJcbik7XHJcblxyXG4vLyBncmlkIHNpc3RlbVxyXG4kZ3JpZDogKFxyXG4gICAgcGg6ICdwaG9uZScsXHJcbiAgICBzbTogJ3RhYmxldCcsXHJcbiAgICBtZDogJ2Rlc2t0b3AnXHJcbik7XHJcblxyXG4vLyBmb250IHdlaWdodFxyXG4kdGhpbjogMTAwO1xyXG4kbGlnaHQtZm9udDogMzAwO1xyXG4kbm9ybWFsOiA0MDA7XHJcbiRtZWRpdW06IDUwMDtcclxuJHNlbWlib2xkOiA2MDA7XHJcbiRib2xkOiA3MDA7XHJcbiRleHRyYTogODAwO1xyXG4kYmxhY2stZm9udDogOTAwO1xyXG5cclxuLy8gZGVmYXVsdCBtYXJnaW5zXHJcbiR2ZXJ0aWNhbC1yaHl0aG06ICRmb250LXNpemUtYmFzZSArIDQ7XHJcbiR3aWRnZXQtbWFyZ2luOiAyMHB4O1xyXG5cclxuLy8gTGlrc1xyXG4kYmFzZS1saW5rLWNvbG9yOiAkYmx1ZTtcclxuJGJhc2UtbGluay1ob3Zlci1jb2xvcjogJGJsYWNrO1xyXG4kdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4kdGV4dC1kZWNvcmF0aW9uLWhvdmVyOiBub25lO1xyXG5cclxuLy8gSGVhZGVycyBzaXplXHJcbiR0aXRsZS1wYWxldHRlOiAoXHJcbiAgICBtb2JpbGU6ICgnaDEnOiAyNCxcclxuICAgICAgICAnaDInOiAyNCxcclxuICAgICAgICAnaDMnOiAxNSxcclxuICAgICAgICAnaDQnOiAxNCxcclxuICAgICAgICAnaDUnOiAxNCxcclxuICAgICAgICAnaDYnOiAxNCksXHJcbiAgICB0YWJsZXQ6ICgnaDEnOiAzMCxcclxuICAgICAgICAnaDInOiAzOCxcclxuICAgICAgICAnaDMnOiAyOCxcclxuICAgICAgICAnaDQnOiAyMCxcclxuICAgICAgICAnaDUnOiAxOCxcclxuICAgICAgICAnaDYnOiAxNiksXHJcbiAgICBkZXNrdG9wOiAoJ2gxJzogNDAsXHJcbiAgICAgICAgJ2gyJzogMzAsXHJcbiAgICAgICAgJ2gzJzogMjgsXHJcbiAgICAgICAgJ2g0JzogMjAsXHJcbiAgICAgICAgJ2g1JzogMTgsXHJcbiAgICAgICAgJ2g2JzogMTYpLFxyXG4gICAgd2lkZXNjcmVlbjogKCdoMSc6IDQ4LFxyXG4gICAgICAgICdoMic6IDMyLFxyXG4gICAgICAgICdoMyc6IDI4LFxyXG4gICAgICAgICdoNCc6IDIwLFxyXG4gICAgICAgICdoNSc6IDE4LFxyXG4gICAgICAgICdoNic6IDE2KVxyXG4pO1xyXG5cclxuLy8gaGVhZGluZ3Mgc3R5bGVcclxuJGhlYWRpbmdzLWZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseTtcclxuJGhlYWRpbmdzLWNvbG9yOiBpbmhlcml0ICFkZWZhdWx0O1xyXG5cclxuLy8gQnV0dG9uc1xyXG4kYnRuLWJvcmRlci13aWR0aDogMDsgLy9cclxuJGJ0bi1ib3JkZXItcmFkaXVzOiA5cHg7IC8vXHJcbiRidG4tYm9yZGVyLXJhZGl1cy1zbTogY2FsYygkYnRuLWJvcmRlci1yYWRpdXMgLyAyKSAhZGVmYXVsdDtcclxuJGJ0bi1ib3JkZXItcmFkaXVzLWxnOiBjYWxjKCRidG4tYm9yZGVyLXJhZGl1cyAqIDIpICFkZWZhdWx0O1xyXG4kYnRuLXBhZGRpbmc6IDhweCAxOXB4OyAvL1xyXG4kYnRuLXBhZGRpbmctc206IDVweCAxMHB4ICFkZWZhdWx0O1xyXG4kYnRuLXBhZGRpbmctbGc6IDE1cHggMjBweCAyNnB4ICFkZWZhdWx0O1xyXG4kYnRuLWZvbnQtc2l6ZTogMTRweDsgLy9cclxuJGJ0bi1mb250LXNpemUtc206IDEycHggIWRlZmF1bHQ7XHJcbiRidG4tZm9udC1zaXplLWxnOiAyNHB4ICFkZWZhdWx0O1xyXG4kYnRuLWxpbmUtaGVpZ2h0OiAkYnRuLWZvbnQtc2l6ZSArIDI7XHJcbiRidG4tbGluZS1oZWlnaHQtc206ICRidG4tZm9udC1zaXplLXNtICsgMjtcclxuJGJ0bi1saW5lLWhlaWdodC1sZzogJGJ0bi1mb250LXNpemUtbGcgKyAyO1xyXG5cclxuLy8gYnRuIGRlZmF1bHRcclxuJGJ0bi1jb2xvci1kZWZhdWx0OiAkYnJhdW47IC8vXHJcbiRidG4tYmFja2dyb3VuZC1kZWZhdWx0OiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjZmZlZjA3IDAlLCAkb3JhbmdlIDEwMCUpOyAvL1xyXG4kYnRuLWJvcmRlci1jb2xvci1kZWZhdWx0OiAkYnRuLWJhY2tncm91bmQtZGVmYXVsdCAhZGVmYXVsdDtcclxuJGJ0bi1zaGFkb3ctZGVmYXVsdDogMCAxcHggMCAjZmIxZjFmOyAvL1xyXG5cclxuXHJcbi8vIGhvdmVyXHJcbiRidG4taG92ZXItY29sb3ItZGVmYXVsdDogJGJyYXVuOyAvL1xyXG4kYnRuLWhvdmVyLWJhY2tncm91bmQtZGVmYXVsdDogbGluZWFyLWdyYWRpZW50KHRvIHRvcCwgI2ZmZWYwNyAwJSwgJG9yYW5nZSAxMDAlKTsgLy9cclxuJGJ0bi1ob3Zlci1ib3JkZXItY29sb3ItZGVmYXVsdDogJGJ0bi1iYWNrZ3JvdW5kLWRlZmF1bHQgIWRlZmF1bHQ7XHJcbiRidG4taG92ZXItc2hhZG93LWRlZmF1bHQ6IDAgLTFweCAwICNmYjFmMWY7IC8vXHJcblxyXG4vLyBidG4gcHJpbWFyeVxyXG4kYnRuLWNvbG9yLXByaW1hcnk6ICR3aGl0ZTsgLy9cclxuJGJ0bi1iYWNrZ3JvdW5kLXByaW1hcnk6ICRncmVlbjsgLy9cclxuJGJ0bi1ib3JkZXItY29sb3ItcHJpbWFyeTogJHByaW1hcnkgIWRlZmF1bHQ7XHJcbi8vIGhvdmVyXHJcbiRidG4taG92ZXItY29sb3ItcHJpbWFyeTogJHdoaXRlOyAvL1xyXG4kYnRuLWhvdmVyLWJhY2tncm91bmQtcHJpbWFyeTogIzM3NzgzOTsgLy9cclxuJGJ0bi1ob3Zlci1ib3JkZXItY29sb3ItcHJpbWFyeTogJGJ0bi1ob3Zlci1iYWNrZ3JvdW5kLXByaW1hcnkgIWRlZmF1bHQ7XHJcblxyXG4vLyBidG4gc2Vjb25kYXJ5XHJcbiRidG4tY29sb3Itc2Vjb25kYXJ5OiAjMjUyNTI1OyAvL1xyXG4kYnRuLWJhY2tncm91bmQtc2Vjb25kYXJ5OiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjZGVkZWRjIDAlLCAjYWZiM2IzIDEwMCUpOyAvL1xyXG4kYnRuLWJvcmRlci1jb2xvci1zZWNvbmRhcnk6ICRzZWNvbmRhcnkgIWRlZmF1bHQ7XHJcbi8vIGhvdmVyXHJcbiRidG4taG92ZXItY29sb3Itc2Vjb25kYXJ5OiAjMjUyNTI1OyAvL1xyXG4kYnRuLWhvdmVyLWJhY2tncm91bmQtc2Vjb25kYXJ5OiBsaW5lYXItZ3JhZGllbnQodG8gdG9wLCAjZGVkZWRjIDAlLCAjYWZiM2IzIDEwMCUpOyAvL1xyXG4kYnRuLWhvdmVyLWJvcmRlci1jb2xvci1zZWNvbmRhcnk6ICRzZWNvbmRhcnkgIWRlZmF1bHQ7XHJcblxyXG4vLyBGb3Jtc1xyXG4kaW5wdXQtZm9udC1zaXplOiAkZm9udC1zaXplLWJhc2U7IC8vIGZvbnQgc2l6ZSBmb3IgZm9ybXMgZWxlbWVudHNcclxuJGlucHV0LWxpbmUtaGVpZ2h0OiAkaW5wdXQtZm9udC1zaXplICsgMjsgLy8gbGluZSBoZWlnaHQgZm9yIGZvcm1zIGVsZW1lbnRzXHJcbiRpbnB1dC1mb250LWZhbWlseTogJGJhc2UtZm9udDtcclxuJGlucHV0LXBhZGRpbmctdmVydGljYWw6IDEwcHggIWRlZmF1bHQ7IC8vIHBhZGRpbmcgZm9yIGZvcm1zIGVsZW1lbnRzXHJcbiRpbnB1dC1wYWRkaW5nLWhvcml6b250YWw6IDIwcHggIWRlZmF1bHQ7IC8vIHBhZGRpbmcgZm9yIGZvcm1zIGVsZW1lbnRzXHJcbiRpbnB1dC1wYWRkaW5nOiAkaW5wdXQtcGFkZGluZy12ZXJ0aWNhbCAkaW5wdXQtcGFkZGluZy1ob3Jpem9udGFsICFkZWZhdWx0O1xyXG4kaW5wdXQtYm9yZGVyLXdpZHRoOiAxcHggIWRlZmF1bHQ7IC8vIGJvcmRlciBpbnB1dCdzIHdpZHRoXHJcbiRpbnB1dC1ib3JkZXI6ICRpbnB1dC1ib3JkZXItd2lkdGggc29saWQgJGJsYWNrICFkZWZhdWx0OyAvLyBib3JkZXIgZm9yIGZvcm1zIGVsZW1lbnRzXHJcbiRpbnB1dC1ib3JkZXItcmFkaXVzOiAwICFkZWZhdWx0OyAvLyBib3JkZXIgcmFkaXVzIGZvciBmb3JtcyBlbGVtZW50c1xyXG4kaW5wSDogJGlucHV0LWJvcmRlci13aWR0aCArIDIgKiAkaW5wdXQtcGFkZGluZy12ZXJ0aWNhbCArICRpbnB1dC1saW5lLWhlaWdodDtcclxuJGlucHV0LWhlaWdodDogKFxyXG4gICAgMiAqICgkaW5wdXQtYm9yZGVyLXdpZHRoICsgJGlucHV0LXBhZGRpbmctdmVydGljYWwpICsgJGlucHV0LWxpbmUtaGVpZ2h0KSAhZGVmYXVsdDsgLy8gaGVpZ2h0IGZvciBmb3JtcyBlbGVtZW50c1xyXG4vL3N1Ym1pdFxyXG4kc3VibWl0LWJhY2tncm91bmQ6ICRidG4tYmFja2dyb3VuZC1kZWZhdWx0O1xyXG4kc3VibWl0LWNvbG9yOiAkYnRuLWNvbG9yLWRlZmF1bHQ7XHJcbiRzdWJtaXQtaGVpZ2h0OiAkaW5wdXQtaGVpZ2h0O1xyXG4kc3VibWl0LWJvcmRlci13aWR0aDogJGJ0bi1ib3JkZXItd2lkdGg7XHJcbiRzdWJtaXQtYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuJHN1Ym1pdC1ib3JkZXItY29sb3I6ICRidG4tYm9yZGVyLWNvbG9yLWRlZmF1bHQ7XHJcbiRzdWJtaXQtcGFkZGluZzogJGJ0bi1wYWRkaW5nO1xyXG4kc3VibWl0LWZvbnQtc2l6ZTogJGlucHV0LWZvbnQtc2l6ZTtcclxuJHN1Ym1pdC1saW5lLWhlaWdodDogJGJ0bi1saW5lLWhlaWdodDtcclxuJHN1Ym1pdC1yYWRpdXM6ICRidG4tYm9yZGVyLXJhZGl1cztcclxuLy8gc3VibWl0IGhvdmVyXHJcbiRzdWJtaXQtaG92ZXItYmFja2dyb3VuZDogJHN1Ym1pdC1jb2xvcjsgLy8gc3VibWl0IGJhY2tncm91bmQgaG92ZXJcclxuJHN1Ym1pdC1ob3Zlci1jb2xvcjogJHN1Ym1pdC1iYWNrZ3JvdW5kOyAvLyBzdWJtaXQgY29sb3IgaG92ZXJcclxuJHN1Ym1pdC1ob3Zlci1ib3JkZXItY29sb3I6ICRzdWJtaXQtYmFja2dyb3VuZDsgLy8gc3VibWl0IGNvbG9yIGhvdmVyXHJcblxyXG4vL2ZvY3VzXHJcbiRpbnB1dC1mb2N1cy1ib3JkZXItY29sb3I6ICRibGFjayAhZGVmYXVsdDsgLy8gYm9yZGVyIGNvbG9yIGZvciBmb3JtcyBlbGVtZW50c1xyXG4vL3BsYWNlaG9sZGVyXHJcbiRwbGFjZWhvbGRlci1jb2xvcjogJGdyYXkgIWRlZmF1bHQ7XHJcbi8vIHNlbGVjdFxyXG4kc2VsZWN0LWhlaWdodDogJGlucHV0LWhlaWdodDtcclxuJHNlbGVjdC1ib3JkZXI6ICRpbnB1dC1ib3JkZXI7XHJcbiRzZWxlY3QtYm9yZGVyLXJhZGl1czogJGlucHV0LWJvcmRlci1yYWRpdXM7XHJcbiRzZWxlY3QtcGFkZGluZzogJGlucHV0LXBhZGRpbmc7XHJcbiRzZWxlY3QtZm9udC1zaXplOiAkaW5wdXQtZm9udC1zaXplO1xyXG4kc2VsZWN0LWxpbmUtaGVpZ2h0OiAkaW5wdXQtbGluZS1oZWlnaHQ7XHJcblxyXG4vLyBhbmltYXRpb24gc3BlZWRcclxuJGFuaW1hdGlvbi1zcGVlZDogMC41czsiLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vICAgICBfICAgICAgICAgICAgXyAgICAgICAgICAgXyAgICAgICAgICAgICAgICAgICAgICAgICAgIF8gX1xuLy8gICAgKF8pICAgICAgICAgIHwgfCAgICAgICAgIHwgfCAgICAgICAgICAgICAgICAgICAgICAgICB8IChfKVxuLy8gICAgIF8gXyBfXyAgIF9fX3wgfF8gICBfICBfX3wgfCBfX18gICBfIF9fIF9fXyAgIF9fXyAgX198IHxfICBfXyBfXG4vLyAgICB8IHwgJ18gXFwgLyBfX3wgfCB8IHwgfC8gX2AgfC8gXyBcXCB8ICdfIGAgXyBcXCAvIF8gXFwvIF9gIHwgfC8gX2AgfFxuLy8gICAgfCB8IHwgfCB8IChfX3wgfCB8X3wgfCAoX3wgfCAgX18vIHwgfCB8IHwgfCB8ICBfXy8gKF98IHwgfCAoX3wgfFxuLy8gICAgfF98X3wgfF98XFxfX198X3xcXF9fLF98XFxfXyxffFxcX19ffCB8X3wgfF98IHxffFxcX19ffFxcX18sX3xffFxcX18sX3xcbi8vXG4vLyAgICAgIFNpbXBsZSwgZWxlZ2FudCBhbmQgbWFpbnRhaW5hYmxlIG1lZGlhIHF1ZXJpZXMgaW4gU2Fzc1xuLy8gICAgICAgICAgICAgICAgICAgICAgICB2MS40Ljlcbi8vXG4vLyAgICAgICAgaHR0cHM6Ly9lZHVhcmRvYm91Y2FzLmdpdGh1Yi5pby9pbmNsdWRlLW1lZGlhXG4vL1xuLy8gICAgICAgICBBdXRob3JzOiBFZHVhcmRvIEJvdWNhcyAoQGVkdWFyZG9ib3VjYXMpXG4vLyAgICAgICAgICAgICAgICAgIEtpdHR5IEdpcmF1ZGVsIChAa2l0dHlnaXJhdWRlbClcbi8vXG4vLyAgICAgIFRoaXMgcHJvamVjdCBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBsaWNlbnNlXG4vLy8vXG4vLy8gaW5jbHVkZS1tZWRpYSBsaWJyYXJ5IHB1YmxpYyBjb25maWd1cmF0aW9uXG4vLy8gQGF1dGhvciBFZHVhcmRvIEJvdWNhc1xuLy8vIEBhY2Nlc3MgcHVibGljXG4vLy8vXG5cblxuLy8vXG4vLy8gQ3JlYXRlcyBhIGxpc3Qgb2YgZ2xvYmFsIGJyZWFrcG9pbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3JlYXRlcyBhIHNpbmdsZSBicmVha3BvaW50IHdpdGggdGhlIGxhYmVsIGBwaG9uZWBcbi8vLyAgJGJyZWFrcG9pbnRzOiAoJ3Bob25lJzogMzIwcHgpO1xuLy8vXG4kYnJlYWtwb2ludHM6IChcbiAgJ3Bob25lJzogMzIwcHgsXG4gICd0YWJsZXQnOiA3NjhweCxcbiAgJ2Rlc2t0b3AnOiAxMDI0cHhcbikgIWRlZmF1bHQ7XG5cblxuLy8vXG4vLy8gQ3JlYXRlcyBhIGxpc3Qgb2Ygc3RhdGljIGV4cHJlc3Npb25zIG9yIG1lZGlhIHR5cGVzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3JlYXRlcyBhIHNpbmdsZSBtZWRpYSB0eXBlIChzY3JlZW4pXG4vLy8gICRtZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nOiAnc2NyZWVuJyk7XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3JlYXRlcyBhIHN0YXRpYyBleHByZXNzaW9uIHdpdGggbG9naWNhbCBkaXNqdW5jdGlvbiAoT1Igb3BlcmF0b3IpXG4vLy8gICRtZWRpYS1leHByZXNzaW9uczogKFxuLy8vICAgICdyZXRpbmEyeCc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpJ1xuLy8vICApO1xuLy8vXG4kbWVkaWEtZXhwcmVzc2lvbnM6IChcbiAgJ3NjcmVlbic6ICdzY3JlZW4nLFxuICAncHJpbnQnOiAncHJpbnQnLFxuICAnaGFuZGhlbGQnOiAnaGFuZGhlbGQnLFxuICAnbGFuZHNjYXBlJzogJyhvcmllbnRhdGlvbjogbGFuZHNjYXBlKScsXG4gICdwb3J0cmFpdCc6ICcob3JpZW50YXRpb246IHBvcnRyYWl0KScsXG4gICdyZXRpbmEyeCc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpLCAobWluLXJlc29sdXRpb246IDJkcHB4KScsXG4gICdyZXRpbmEzeCc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAzKSwgKG1pbi1yZXNvbHV0aW9uOiAzNTBkcGkpLCAobWluLXJlc29sdXRpb246IDNkcHB4KSdcbikgIWRlZmF1bHQ7XG5cblxuLy8vXG4vLy8gRGVmaW5lcyBhIG51bWJlciB0byBiZSBhZGRlZCBvciBzdWJ0cmFjdGVkIGZyb20gZWFjaCB1bml0IHdoZW4gZGVjbGFyaW5nIGJyZWFrcG9pbnRzIHdpdGggZXhjbHVzaXZlIGludGVydmFsc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciBwaXhlbHMgaXMgZGVmaW5lZCBhcyBgMWAgYnkgZGVmYXVsdFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjEyOHB4Jykge31cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAxMjlweCkge31cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgZW1zIGlzIGRlZmluZWQgYXMgYDAuMDFgIGJ5IGRlZmF1bHRcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4yMGVtJykge31cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAyMC4wMWVtKSB7fVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciByZW1zIGlzIGRlZmluZWQgYXMgYDAuMWAgYnkgZGVmYXVsdCwgdG8gYmUgdXNlZCB3aXRoIGBmb250LXNpemU6IDYyLjUlO2Bcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4yLjByZW0nKSB7fVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDIuMXJlbSkge31cbi8vL1xuJHVuaXQtaW50ZXJ2YWxzOiAoXG4gICdweCc6IDEsXG4gICdlbSc6IDAuMDEsXG4gICdyZW0nOiAwLjEsXG4gICcnOiAwXG4pICFkZWZhdWx0O1xuXG4vLy9cbi8vLyBEZWZpbmVzIHdoZXRoZXIgc3VwcG9ydCBmb3IgbWVkaWEgcXVlcmllcyBpcyBhdmFpbGFibGUsIHVzZWZ1bCBmb3IgY3JlYXRpbmcgc2VwYXJhdGUgc3R5bGVzaGVldHNcbi8vLyBmb3IgYnJvd3NlcnMgdGhhdCBkb24ndCBzdXBwb3J0IG1lZGlhIHF1ZXJpZXMuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRGlzYWJsZXMgc3VwcG9ydCBmb3IgbWVkaWEgcXVlcmllc1xuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICAuZm9vIHtcbi8vLyAgICBjb2xvcjogdG9tYXRvO1xuLy8vICB9XG4vLy9cbiRpbS1tZWRpYS1zdXBwb3J0OiB0cnVlICFkZWZhdWx0O1xuXG4vLy9cbi8vLyBTZWxlY3RzIHdoaWNoIGJyZWFrcG9pbnQgdG8gZW11bGF0ZSB3aGVuIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXMgaXMgZGlzYWJsZWQuIE1lZGlhIHF1ZXJpZXMgdGhhdCBzdGFydCBhdCBvclxuLy8vIGludGVyY2VwdCB0aGUgYnJlYWtwb2ludCB3aWxsIGJlIGRpc3BsYXllZCwgYW55IG90aGVycyB3aWxsIGJlIGlnbm9yZWQuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludFxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICAuZm9vIHtcbi8vLyAgICBjb2xvcjogdG9tYXRvO1xuLy8vICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIE5PVCBzaG93IGJlY2F1c2UgaXQgZG9lcyBub3QgaW50ZXJjZXB0IHRoZSBkZXNrdG9wIGJyZWFrcG9pbnRcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ3RhYmxldCc7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PWRlc2t0b3AnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIE5vIG91dHB1dCAqL1xuLy8vXG4kaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnICFkZWZhdWx0O1xuXG4vLy9cbi8vLyBTZWxlY3RzIHdoaWNoIG1lZGlhIGV4cHJlc3Npb25zIGFyZSBhbGxvd2VkIGluIGFuIGV4cHJlc3Npb24gZm9yIGl0IHRvIGJlIHVzZWQgd2hlbiBtZWRpYSBxdWVyaWVzXG4vLy8gYXJlIG5vdCBzdXBwb3J0ZWQuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludCBhbmQgY29udGFpbnMgb25seSBhY2NlcHRlZCBtZWRpYSBleHByZXNzaW9uc1xuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XG4vLy8gICRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nKTtcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJ3NjcmVlbicpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgIC5mb28ge1xuLy8vICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBOT1Qgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50IGJ1dCBjb250YWlucyBhIG1lZGlhIGV4cHJlc3Npb24gdGhhdCBpcyBub3QgYWNjZXB0ZWRcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xuLy8vICAkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJyk7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcsICdyZXRpbmEyeCcpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgLyogTm8gb3V0cHV0ICovXG4vLy9cbiRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nLCAncG9ydHJhaXQnLCAnbGFuZHNjYXBlJykgIWRlZmF1bHQ7XG5cbi8vLy9cbi8vLyBDcm9zcy1lbmdpbmUgbG9nZ2luZyBlbmdpbmVcbi8vLyBAYXV0aG9yIEtpdHR5IEdpcmF1ZGVsXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy8vXG5cblxuLy8vXG4vLy8gTG9nIGEgbWVzc2FnZSBlaXRoZXIgd2l0aCBgQGVycm9yYCBpZiBzdXBwb3J0ZWRcbi8vLyBlbHNlIHdpdGggYEB3YXJuYCwgdXNpbmcgYGZlYXR1cmUtZXhpc3RzKCdhdC1lcnJvcicpYFxuLy8vIHRvIGRldGVjdCBzdXBwb3J0LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtZXNzYWdlIC0gTWVzc2FnZSB0byBsb2dcbi8vL1xuQGZ1bmN0aW9uIGltLWxvZygkbWVzc2FnZSkge1xuICBAaWYgZmVhdHVyZS1leGlzdHMoJ2F0LWVycm9yJykge1xuICAgIEBlcnJvciAkbWVzc2FnZTtcbiAgfSBAZWxzZSB7XG4gICAgQHdhcm4gJG1lc3NhZ2U7XG4gICAgJF86IG5vb3AoKTtcbiAgfVxuXG4gIEByZXR1cm4gJG1lc3NhZ2U7XG59XG5cblxuLy8vXG4vLy8gV3JhcHBlciBtaXhpbiBmb3IgdGhlIGxvZyBmdW5jdGlvbiBzbyBpdCBjYW4gYmUgdXNlZCB3aXRoIGEgbW9yZSBmcmllbmRseVxuLy8vIEFQSSB0aGFuIGBAaWYgaW0tbG9nKCcuLicpIHt9YCBvciBgJF86IGltLWxvZygnLi4nKWAuIEJhc2ljYWxseSwgdXNlIHRoZSBmdW5jdGlvblxuLy8vIHdpdGhpbiBmdW5jdGlvbnMgYmVjYXVzZSBpdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluIGEgZnVuY3Rpb25cbi8vLyBhbmQgdXNlIHRoZSBtaXhpbiBldmVyeXdoZXJlIGVsc2UgYmVjYXVzZSBpdCdzIG11Y2ggbW9yZSBlbGVnYW50LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtZXNzYWdlIC0gTWVzc2FnZSB0byBsb2dcbi8vL1xuQG1peGluIGxvZygkbWVzc2FnZSkge1xuICBAaWYgaW0tbG9nKCRtZXNzYWdlKSB7fVxufVxuXG5cbi8vL1xuLy8vIEZ1bmN0aW9uIHdpdGggbm8gYEByZXR1cm5gIGNhbGxlZCBuZXh0IHRvIGBAd2FybmAgaW4gU2FzcyAzLjNcbi8vLyB0byB0cmlnZ2VyIGEgY29tcGlsaW5nIGVycm9yIGFuZCBzdG9wIHRoZSBwcm9jZXNzLlxuLy8vXG5AZnVuY3Rpb24gbm9vcCgpIHt9XG5cbi8vL1xuLy8vIERldGVybWluZXMgd2hldGhlciBhIGxpc3Qgb2YgY29uZGl0aW9ucyBpcyBpbnRlcmNlcHRlZCBieSB0aGUgc3RhdGljIGJyZWFrcG9pbnQuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICAgJGNvbmRpdGlvbnMgIC0gTWVkaWEgcXVlcnkgY29uZGl0aW9uc1xuLy8vXG4vLy8gQHJldHVybiB7Qm9vbGVhbn0gLSBSZXR1cm5zIHRydWUgaWYgdGhlIGNvbmRpdGlvbnMgYXJlIGludGVyY2VwdGVkIGJ5IHRoZSBzdGF0aWMgYnJlYWtwb2ludFxuLy8vXG5AZnVuY3Rpb24gaW0taW50ZXJjZXB0cy1zdGF0aWMtYnJlYWtwb2ludCgkY29uZGl0aW9ucy4uLikge1xuICAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICRpbS1uby1tZWRpYS1icmVha3BvaW50KTtcblxuICBAaWYgbm90ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlIHtcbiAgICBAaWYgaW0tbG9nKCdgI3skaW0tbm8tbWVkaWEtYnJlYWtwb2ludH1gIGlzIG5vdCBhIHZhbGlkIGJyZWFrcG9pbnQuJykge31cbiAgfVxuXG4gIEBlYWNoICRjb25kaXRpb24gaW4gJGNvbmRpdGlvbnMge1xuICAgIEBpZiBub3QgbWFwLWhhcy1rZXkoJG1lZGlhLWV4cHJlc3Npb25zLCAkY29uZGl0aW9uKSB7XG4gICAgICAkb3BlcmF0b3I6IGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRjb25kaXRpb24pO1xuICAgICAgJHByZWZpeDogZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcik7XG4gICAgICAkdmFsdWU6IGdldC1leHByZXNzaW9uLXZhbHVlKCRjb25kaXRpb24sICRvcGVyYXRvcik7XG5cbiAgICAgIEBpZiAoJHByZWZpeCA9PSAnbWF4JyBhbmQgJHZhbHVlIDw9ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlKSBvclxuICAgICAgICAgICgkcHJlZml4ID09ICdtaW4nIGFuZCAkdmFsdWUgPiAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSkge1xuICAgICAgICBAcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgbm90IGluZGV4KCRpbS1uby1tZWRpYS1leHByZXNzaW9ucywgJGNvbmRpdGlvbikge1xuICAgICAgQHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIHRydWU7XG59XG5cbi8vLy9cbi8vLyBQYXJzaW5nIGVuZ2luZVxuLy8vIEBhdXRob3IgS2l0dHkgR2lyYXVkZWxcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vLy9cblxuXG4vLy9cbi8vLyBHZXQgb3BlcmF0b3Igb2YgYW4gZXhwcmVzc2lvblxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IG9wZXJhdG9yIGZyb21cbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBBbnkgb2YgYD49YCwgYD5gLCBgPD1gLCBgPGAsIGDiiaVgLCBg4omkYFxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGV4cHJlc3Npb24pIHtcbiAgQGVhY2ggJG9wZXJhdG9yIGluICgnPj0nLCAnPicsICc8PScsICc8JywgJ+KJpScsICfiiaQnKSB7XG4gICAgQGlmIHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XG4gICAgICBAcmV0dXJuICRvcGVyYXRvcjtcbiAgICB9XG4gIH1cblxuICAvLyBJdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluc2lkZSBhIGZ1bmN0aW9uLCBzbyB3ZSBoYXZlIHRvXG4gIC8vIHJlbHkgb24gdGhlIGBpbS1sb2coLi4pYCBmdW5jdGlvbiByYXRoZXIgdGhhbiB0aGUgYGxvZyguLilgIG1peGluLiBCZWNhdXNlXG4gIC8vIGZ1bmN0aW9ucyBjYW5ub3QgYmUgY2FsbGVkIGFueXdoZXJlIGluIFNhc3MsIHdlIG5lZWQgdG8gaGFjayB0aGUgY2FsbCBpblxuICAvLyBhIGR1bW15IHZhcmlhYmxlLCBzdWNoIGFzIGAkX2AuIElmIGFueWJvZHkgZXZlciByYWlzZSBhIHNjb3BpbmcgaXNzdWUgd2l0aFxuICAvLyBTYXNzIDMuMywgY2hhbmdlIHRoaXMgbGluZSBpbiBgQGlmIGltLWxvZyguLikge31gIGluc3RlYWQuXG4gICRfOiBpbS1sb2coJ05vIG9wZXJhdG9yIGZvdW5kIGluIGAjeyRleHByZXNzaW9ufWAuJyk7XG59XG5cblxuLy8vXG4vLy8gR2V0IGRpbWVuc2lvbiBvZiBhbiBleHByZXNzaW9uLCBiYXNlZCBvbiBhIGZvdW5kIG9wZXJhdG9yXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3QgZGltZW5zaW9uIGZyb21cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3IgZnJvbSBgJGV4cHJlc3Npb25gXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gYHdpZHRoYCBvciBgaGVpZ2h0YCAob3IgcG90ZW50aWFsbHkgYW55dGhpbmcgZWxzZSlcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLWRpbWVuc2lvbigkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XG4gICRvcGVyYXRvci1pbmRleDogc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuICAkcGFyc2VkLWRpbWVuc2lvbjogc3RyLXNsaWNlKCRleHByZXNzaW9uLCAwLCAkb3BlcmF0b3ItaW5kZXggLSAxKTtcbiAgJGRpbWVuc2lvbjogJ3dpZHRoJztcblxuICBAaWYgc3RyLWxlbmd0aCgkcGFyc2VkLWRpbWVuc2lvbikgPiAwIHtcbiAgICAkZGltZW5zaW9uOiAkcGFyc2VkLWRpbWVuc2lvbjtcbiAgfVxuXG4gIEByZXR1cm4gJGRpbWVuc2lvbjtcbn1cblxuXG4vLy9cbi8vLyBHZXQgZGltZW5zaW9uIHByZWZpeCBiYXNlZCBvbiBhbiBvcGVyYXRvclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gYG1pbmAgb3IgYG1heGBcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpIHtcbiAgQHJldHVybiBpZihpbmRleCgoJzwnLCAnPD0nLCAn4omkJyksICRvcGVyYXRvciksICdtYXgnLCAnbWluJyk7XG59XG5cblxuLy8vXG4vLy8gR2V0IHZhbHVlIG9mIGFuIGV4cHJlc3Npb24sIGJhc2VkIG9uIGEgZm91bmQgb3BlcmF0b3Jcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCB2YWx1ZSBmcm9tXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yIGZyb20gYCRleHByZXNzaW9uYFxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIEEgbnVtZXJpYyB2YWx1ZVxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xuICAkb3BlcmF0b3ItaW5kZXg6IHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcbiAgJHZhbHVlOiBzdHItc2xpY2UoJGV4cHJlc3Npb24sICRvcGVyYXRvci1pbmRleCArIHN0ci1sZW5ndGgoJG9wZXJhdG9yKSk7XG5cbiAgQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJHZhbHVlKSB7XG4gICAgJHZhbHVlOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJHZhbHVlKTtcbiAgfSBAZWxzZSB7XG4gICAgJHZhbHVlOiB0by1udW1iZXIoJHZhbHVlKTtcbiAgfVxuXG4gICRpbnRlcnZhbDogbWFwLWdldCgkdW5pdC1pbnRlcnZhbHMsIHVuaXQoJHZhbHVlKSk7XG5cbiAgQGlmIG5vdCAkaW50ZXJ2YWwge1xuICAgIC8vIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW5zaWRlIGEgZnVuY3Rpb24sIHNvIHdlIGhhdmUgdG9cbiAgICAvLyByZWx5IG9uIHRoZSBgaW0tbG9nKC4uKWAgZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhlIGBsb2coLi4pYCBtaXhpbi4gQmVjYXVzZVxuICAgIC8vIGZ1bmN0aW9ucyBjYW5ub3QgYmUgY2FsbGVkIGFueXdoZXJlIGluIFNhc3MsIHdlIG5lZWQgdG8gaGFjayB0aGUgY2FsbCBpblxuICAgIC8vIGEgZHVtbXkgdmFyaWFibGUsIHN1Y2ggYXMgYCRfYC4gSWYgYW55Ym9keSBldmVyIHJhaXNlIGEgc2NvcGluZyBpc3N1ZSB3aXRoXG4gICAgLy8gU2FzcyAzLjMsIGNoYW5nZSB0aGlzIGxpbmUgaW4gYEBpZiBpbS1sb2coLi4pIHt9YCBpbnN0ZWFkLlxuICAgICRfOiBpbS1sb2coJ1Vua25vd24gdW5pdCBgI3t1bml0KCR2YWx1ZSl9YC4nKTtcbiAgfVxuXG4gIEBpZiAkb3BlcmF0b3IgPT0gJz4nIHtcbiAgICAkdmFsdWU6ICR2YWx1ZSArICRpbnRlcnZhbDtcbiAgfSBAZWxzZSBpZiAkb3BlcmF0b3IgPT0gJzwnIHtcbiAgICAkdmFsdWU6ICR2YWx1ZSAtICRpbnRlcnZhbDtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuXG5cbi8vL1xuLy8vIFBhcnNlIGFuIGV4cHJlc3Npb24gdG8gcmV0dXJuIGEgdmFsaWQgbWVkaWEtcXVlcnkgZXhwcmVzc2lvblxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBwYXJzZVxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIFZhbGlkIG1lZGlhIHF1ZXJ5XG4vLy9cbkBmdW5jdGlvbiBwYXJzZS1leHByZXNzaW9uKCRleHByZXNzaW9uKSB7XG4gIC8vIElmIGl0IGlzIHBhcnQgb2YgJG1lZGlhLWV4cHJlc3Npb25zLCBpdCBoYXMgbm8gb3BlcmF0b3JcbiAgLy8gdGhlbiB0aGVyZSBpcyBubyBuZWVkIHRvIGdvIGFueSBmdXJ0aGVyLCBqdXN0IHJldHVybiB0aGUgdmFsdWVcbiAgQGlmIG1hcC1oYXMta2V5KCRtZWRpYS1leHByZXNzaW9ucywgJGV4cHJlc3Npb24pIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1lZGlhLWV4cHJlc3Npb25zLCAkZXhwcmVzc2lvbik7XG4gIH1cblxuICAkb3BlcmF0b3I6IGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRleHByZXNzaW9uKTtcbiAgJGRpbWVuc2lvbjogZ2V0LWV4cHJlc3Npb24tZGltZW5zaW9uKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuICAkcHJlZml4OiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKTtcbiAgJHZhbHVlOiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcblxuICBAcmV0dXJuICcoI3skcHJlZml4fS0jeyRkaW1lbnNpb259OiAjeyR2YWx1ZX0pJztcbn1cblxuLy8vXG4vLy8gU2xpY2UgYCRsaXN0YCBiZXR3ZWVuIGAkc3RhcnRgIGFuZCBgJGVuZGAgaW5kZXhlc1xuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRsaXN0IC0gTGlzdCB0byBzbGljZVxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc3RhcnQgWzFdIC0gU3RhcnQgaW5kZXhcbi8vLyBAcGFyYW0ge051bWJlcn0gJGVuZCBbbGVuZ3RoKCRsaXN0KV0gLSBFbmQgaW5kZXhcbi8vL1xuLy8vIEByZXR1cm4ge0xpc3R9IFNsaWNlZCBsaXN0XG4vLy9cbkBmdW5jdGlvbiBzbGljZSgkbGlzdCwgJHN0YXJ0OiAxLCAkZW5kOiBsZW5ndGgoJGxpc3QpKSB7XG4gIEBpZiBsZW5ndGgoJGxpc3QpIDwgMSBvciAkc3RhcnQgPiAkZW5kIHtcbiAgICBAcmV0dXJuICgpO1xuICB9XG5cbiAgJHJlc3VsdDogKCk7XG5cbiAgQGZvciAkaSBmcm9tICRzdGFydCB0aHJvdWdoICRlbmQge1xuICAgICRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCBudGgoJGxpc3QsICRpKSk7XG4gIH1cblxuICBAcmV0dXJuICRyZXN1bHQ7XG59XG5cbi8vLy9cbi8vLyBTdHJpbmcgdG8gbnVtYmVyIGNvbnZlcnRlclxuLy8vIEBhdXRob3IgS2l0dHkgR2lyYXVkZWxcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vLy9cblxuXG4vLy9cbi8vLyBDYXN0cyBhIHN0cmluZyBpbnRvIGEgbnVtYmVyXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZyB8IE51bWJlcn0gJHZhbHVlIC0gVmFsdWUgdG8gYmUgcGFyc2VkXG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9XG4vLy9cbkBmdW5jdGlvbiB0by1udW1iZXIoJHZhbHVlKSB7XG4gIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gJ251bWJlcicge1xuICAgIEByZXR1cm4gJHZhbHVlO1xuICB9IEBlbHNlIGlmIHR5cGUtb2YoJHZhbHVlKSAhPSAnc3RyaW5nJyB7XG4gICAgJF86IGltLWxvZygnVmFsdWUgZm9yIGB0by1udW1iZXJgIHNob3VsZCBiZSBhIG51bWJlciBvciBhIHN0cmluZy4nKTtcbiAgfVxuXG4gICRmaXJzdC1jaGFyYWN0ZXI6IHN0ci1zbGljZSgkdmFsdWUsIDEsIDEpO1xuICAkcmVzdWx0OiAwO1xuICAkZGlnaXRzOiAwO1xuICAkbWludXM6ICgkZmlyc3QtY2hhcmFjdGVyID09ICctJyk7XG4gICRudW1iZXJzOiAoJzAnOiAwLCAnMSc6IDEsICcyJzogMiwgJzMnOiAzLCAnNCc6IDQsICc1JzogNSwgJzYnOiA2LCAnNyc6IDcsICc4JzogOCwgJzknOiA5KTtcblxuICAvLyBSZW1vdmUgKy8tIHNpZ24gaWYgcHJlc2VudCBhdCBmaXJzdCBjaGFyYWN0ZXJcbiAgQGlmICgkZmlyc3QtY2hhcmFjdGVyID09ICcrJyBvciAkZmlyc3QtY2hhcmFjdGVyID09ICctJykge1xuICAgICR2YWx1ZTogc3RyLXNsaWNlKCR2YWx1ZSwgMik7XG4gIH1cblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIHN0ci1sZW5ndGgoJHZhbHVlKSB7XG4gICAgJGNoYXJhY3Rlcjogc3RyLXNsaWNlKCR2YWx1ZSwgJGksICRpKTtcblxuICAgIEBpZiBub3QgKGluZGV4KG1hcC1rZXlzKCRudW1iZXJzKSwgJGNoYXJhY3Rlcikgb3IgJGNoYXJhY3RlciA9PSAnLicpIHtcbiAgICAgIEByZXR1cm4gdG8tbGVuZ3RoKGlmKCRtaW51cywgLSRyZXN1bHQsICRyZXN1bHQpLCBzdHItc2xpY2UoJHZhbHVlLCAkaSkpXG4gICAgfVxuXG4gICAgQGlmICRjaGFyYWN0ZXIgPT0gJy4nIHtcbiAgICAgICRkaWdpdHM6IDE7XG4gICAgfSBAZWxzZSBpZiAkZGlnaXRzID09IDAge1xuICAgICAgJHJlc3VsdDogJHJlc3VsdCAqIDEwICsgbWFwLWdldCgkbnVtYmVycywgJGNoYXJhY3Rlcik7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkZGlnaXRzOiAkZGlnaXRzICogMTA7XG4gICAgICAkcmVzdWx0OiAkcmVzdWx0ICsgbWFwLWdldCgkbnVtYmVycywgJGNoYXJhY3RlcikgLyAkZGlnaXRzO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gaWYoJG1pbnVzLCAtJHJlc3VsdCwgJHJlc3VsdCk7XG59XG5cblxuLy8vXG4vLy8gQWRkIGAkdW5pdGAgdG8gYCR2YWx1ZWBcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBhZGQgdW5pdCB0b1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdW5pdCAtIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdW5pdFxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIGAkdmFsdWVgIGV4cHJlc3NlZCBpbiBgJHVuaXRgXG4vLy9cbkBmdW5jdGlvbiB0by1sZW5ndGgoJHZhbHVlLCAkdW5pdCkge1xuICAkdW5pdHM6ICgncHgnOiAxcHgsICdjbSc6IDFjbSwgJ21tJzogMW1tLCAnJSc6IDElLCAnY2gnOiAxY2gsICdwYyc6IDFwYywgJ2luJzogMWluLCAnZW0nOiAxZW0sICdyZW0nOiAxcmVtLCAncHQnOiAxcHQsICdleCc6IDFleCwgJ3Z3JzogMXZ3LCAndmgnOiAxdmgsICd2bWluJzogMXZtaW4sICd2bWF4JzogMXZtYXgpO1xuXG4gIEBpZiBub3QgaW5kZXgobWFwLWtleXMoJHVuaXRzKSwgJHVuaXQpIHtcbiAgICAkXzogaW0tbG9nKCdJbnZhbGlkIHVuaXQgYCN7JHVuaXR9YC4nKTtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlICogbWFwLWdldCgkdW5pdHMsICR1bml0KTtcbn1cblxuLy8vXG4vLy8gVGhpcyBtaXhpbiBhaW1zIGF0IHJlZGVmaW5pbmcgdGhlIGNvbmZpZ3VyYXRpb24ganVzdCBmb3IgdGhlIHNjb3BlIG9mXG4vLy8gdGhlIGNhbGwuIEl0IGlzIGhlbHBmdWwgd2hlbiBoYXZpbmcgYSBjb21wb25lbnQgbmVlZGluZyBhbiBleHRlbmRlZFxuLy8vIGNvbmZpZ3VyYXRpb24gc3VjaCBhcyBjdXN0b20gYnJlYWtwb2ludHMgKHJlZmVycmVkIHRvIGFzIHR3ZWFrcG9pbnRzKVxuLy8vIGZvciBpbnN0YW5jZS5cbi8vL1xuLy8vIEBhdXRob3IgS2l0dHkgR2lyYXVkZWxcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkdHdlYWtwb2ludHMgWygpXSAtIE1hcCBvZiB0d2Vha3BvaW50cyB0byBiZSBtZXJnZWQgd2l0aCBgJGJyZWFrcG9pbnRzYFxuLy8vIEBwYXJhbSB7TWFwfSAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnMgWygpXSAtIE1hcCBvZiB0d2Vha2VkIG1lZGlhIGV4cHJlc3Npb25zIHRvIGJlIG1lcmdlZCB3aXRoIGAkbWVkaWEtZXhwcmVzc2lvbmBcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgdGhlIGdsb2JhbCBicmVha3BvaW50cyB3aXRoIGEgdHdlYWtwb2ludFxuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCgnY3VzdG9tJzogNjc4cHgpKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJywgJzw9Y3VzdG9tJykge1xuLy8vICAgICAgIC8vIC4uLlxuLy8vICAgICAgfVxuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCB0aGUgZ2xvYmFsIG1lZGlhIGV4cHJlc3Npb25zIHdpdGggYSBjdXN0b20gb25lXG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zOiAoJ2FsbCc6ICdhbGwnKSkge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJ2FsbCcsICc+cGhvbmUnKSB7XG4vLy8gICAgICAgLy8gLi4uXG4vLy8gICAgICB9XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIGJvdGggY29uZmlndXJhdGlvbiBtYXBzXG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoKCdjdXN0b20nOiA2NzhweCksICgnYWxsJzogJ2FsbCcpKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnYWxsJywgJz5waG9uZScsICc8PWN1c3RvbScpIHtcbi8vLyAgICAgICAvLyAuLi5cbi8vLyAgICAgIH1cbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuQG1peGluIG1lZGlhLWNvbnRleHQoJHR3ZWFrcG9pbnRzOiAoKSwgJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zOiAoKSkge1xuICAvLyBTYXZlIGdsb2JhbCBjb25maWd1cmF0aW9uXG4gICRnbG9iYWwtYnJlYWtwb2ludHM6ICRicmVha3BvaW50cztcbiAgJGdsb2JhbC1tZWRpYS1leHByZXNzaW9uczogJG1lZGlhLWV4cHJlc3Npb25zO1xuXG4gIC8vIFVwZGF0ZSBnbG9iYWwgY29uZmlndXJhdGlvblxuICAkYnJlYWtwb2ludHM6IG1hcC1tZXJnZSgkYnJlYWtwb2ludHMsICR0d2Vha3BvaW50cykgIWdsb2JhbDtcbiAgJG1lZGlhLWV4cHJlc3Npb25zOiBtYXAtbWVyZ2UoJG1lZGlhLWV4cHJlc3Npb25zLCAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnMpICFnbG9iYWw7XG5cbiAgQGNvbnRlbnQ7XG5cbiAgLy8gUmVzdG9yZSBnbG9iYWwgY29uZmlndXJhdGlvblxuICAkYnJlYWtwb2ludHM6ICRnbG9iYWwtYnJlYWtwb2ludHMgIWdsb2JhbDtcbiAgJG1lZGlhLWV4cHJlc3Npb25zOiAkZ2xvYmFsLW1lZGlhLWV4cHJlc3Npb25zICFnbG9iYWw7XG59XG5cbi8vLy9cbi8vLyBpbmNsdWRlLW1lZGlhIHB1YmxpYyBleHBvc2VkIEFQSVxuLy8vIEBhdXRob3IgRWR1YXJkbyBCb3VjYXNcbi8vLyBAYWNjZXNzIHB1YmxpY1xuLy8vL1xuXG5cbi8vL1xuLy8vIEdlbmVyYXRlcyBhIG1lZGlhIHF1ZXJ5IGJhc2VkIG9uIGEgbGlzdCBvZiBjb25kaXRpb25zXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICAgJGNvbmRpdGlvbnMgIC0gTWVkaWEgcXVlcnkgY29uZGl0aW9uc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggYSBzaW5nbGUgc2V0IGJyZWFrcG9pbnRcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggdHdvIHNldCBicmVha3BvaW50c1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJywgJzw9dGFibGV0JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBjdXN0b20gdmFsdWVzXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PTM1OHB4JywgJzw4NTBweCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggc2V0IGJyZWFrcG9pbnRzIHdpdGggY3VzdG9tIHZhbHVlc1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPmRlc2t0b3AnLCAnPD0xMzUwcHgnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGEgc3RhdGljIGV4cHJlc3Npb25cbi8vLyAgQGluY2x1ZGUgbWVkaWEoJ3JldGluYTJ4JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gTWl4aW5nIGV2ZXJ5dGhpbmdcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49MzUwcHgnLCAnPHRhYmxldCcsICdyZXRpbmEzeCcpIHsgfVxuLy8vXG5AbWl4aW4gbWVkaWEoJGNvbmRpdGlvbnMuLi4pIHtcbiAgQGlmICgkaW0tbWVkaWEtc3VwcG9ydCBhbmQgbGVuZ3RoKCRjb25kaXRpb25zKSA9PSAwKSBvclxuICAgICAgKG5vdCAkaW0tbWVkaWEtc3VwcG9ydCBhbmQgaW0taW50ZXJjZXB0cy1zdGF0aWMtYnJlYWtwb2ludCgkY29uZGl0aW9ucy4uLikpIHtcbiAgICBAY29udGVudDtcbiAgfSBAZWxzZSBpZiAoJGltLW1lZGlhLXN1cHBvcnQgYW5kIGxlbmd0aCgkY29uZGl0aW9ucykgPiAwKSB7XG4gICAgQG1lZGlhICN7dW5xdW90ZShwYXJzZS1leHByZXNzaW9uKG50aCgkY29uZGl0aW9ucywgMSkpKX0ge1xuICAgICAgLy8gUmVjdXJzaXZlIGNhbGxcbiAgICAgIEBpbmNsdWRlIG1lZGlhKHNsaWNlKCRjb25kaXRpb25zLCAyKS4uLikge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIGxpc3QgcmVzZXRcclxuJWxpc3RyZXNldCB7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgbGlzdC1zdHlsZTogbm9uZTtcclxufVxyXG5cclxuLy8gY2xlYXJmaXhcclxuJWNsZWFyZml4IHtcclxuICAgICY6YWZ0ZXIge1xyXG4gICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIGNsZWFyOiBib3RoO1xyXG4gICAgfVxyXG59XHJcblxyXG4uY2xlYXJmaXgge1xyXG4gICAgQGV4dGVuZCAlY2xlYXJmaXg7XHJcbn1cclxuXHJcbi8vIHRyYW5zaXRpb25cclxuJXRyYW5zaXRpb24ge1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1pbi1vdXQ7XHJcbn1cclxuXHJcbi8vIGp1c3RpZnkgbmF2XHJcbiVqdXN0aWZ5IHtcclxuICAgIHRleHQtYWxpZ246IGp1c3RpZnk7XHJcbiAgICBmb250LXNpemU6IDFweDtcclxuICAgIGxpbmUtaGVpZ2h0OiAwO1xyXG5cclxuICAgID4qIHtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcclxuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1iYXNlO1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQtYmFzZTtcclxuICAgIH1cclxuXHJcbiAgICAmOmFmdGVyIHtcclxuICAgICAgICBjb250ZW50OiAnJztcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcclxuICAgIH1cclxufVxyXG5cclxuJWJnQ292ZXIge1xyXG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XHJcbn1cclxuXHJcbiVhYnNvbHV0ZUNvdmVyIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogMDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICByaWdodDogMDtcclxuICAgIGJvdHRvbTogMDtcclxufVxyXG5cclxuLy8vICogSGVscGVyIGNsYXNzIHRvIHRydW5jYXRlIGFuZCBhZGQgZWxsaXBzaXMgdG8gYSBzdHJpbmcgdG9vIGxvbmcgZm9yIGl0IHRvIGZpdFxyXG4vLy8gKiBvbiBhIHNpbmdsZSBsaW5lLlxyXG4vLy8gKiAxLiBQcmV2ZW50IGNvbnRlbnQgZnJvbSB3cmFwcGluZywgZm9yY2luZyBpdCBvbiBhIHNpbmdsZSBsaW5lLlxyXG4vLy8gKiAyLiBBZGQgZWxsaXBzaXMgYXQgdGhlIGVuZCBvZiB0aGUgbGluZS5cclxuXHJcbi5lbGxpcHNpcyB7XHJcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgLyogMSAqL1xyXG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcbiAgICAvKiAyICovXHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG59XHJcblxyXG4uZGYtcm93IHtcclxuICAgIEBpbmNsdWRlIGFkZC1wYXJhbXMoKTtcclxuICAgIEBpbmNsdWRlIGZsZXgtZ3JpZCgpO1xyXG5cclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LXdyYXA6IHdyYXA7XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ+KJpXRhYmxldCcpIHtcclxuICAgICAgICBtYXJnaW46IDAgKC0kZ3V0dGVyKTtcclxuICAgIH1cclxufSIsIi8vIHZlcnRpY2FsIGFsaWduIGVsIGluc2lkZSBwYXJlbnQgd2l0aCBmaXhlZCBoZWlnaHQvbWluLWhlaWdodFxyXG4vLyB1c2FnZVxyXG4vLyBodG1sIC0gLnBhcmVudD4uY2hpbGRcclxuLy8gc2NzcyAtIEBpbmNsdWRlIHYtYWxpZ247XHJcbi8vICAgICBvciBAaW5jbHVkZSB2LWFsaWduKDI1MHB4KTtcclxuLy8gICAgIG9yIEBpbmNsdWRlIHYtYWxpZ24oMjUwcHgsIGJvdHRvbSwgYmVmb3JlKTtcclxuLy9cclxuQG1peGluIHYtYWxpZ24oJHZhLWhlaWdodDogMTAwJSwgJHZhLWRpcmVjdGlvbjogbWlkZGxlLCAkdmEtcHNldWRvOiBhZnRlcikge1xyXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHJcbiAgICAmOiN7JHZhLXBzZXVkb30ge1xyXG4gICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogJHZhLWRpcmVjdGlvbjtcclxuICAgICAgICB3aWR0aDogMDtcclxuICAgICAgICBtaW4taGVpZ2h0OiAkdmEtaGVpZ2h0O1xyXG4gICAgfVxyXG5cclxuICAgID4qIHtcclxuICAgICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogJHZhLWRpcmVjdGlvbjtcclxuICAgICAgICBtYXgtd2lkdGg6IDk5JTtcclxuICAgIH1cclxufVxyXG5cclxuLy8gdmVydGljYWwgYWxpZ24gYSBwYWlyIG9mIGNoaWxkIGVsIGluc2lkZSBwYXJlbnRcclxuLy8gdXNhZ2VcclxuLy8gaHRtbCAtIC5wb3N0Pi5pbWFnZSsudGV4dFxyXG4vLyBzY3NzIC0gQGluY2x1ZGUgdi1hbGlnbi1wYWlyKGltYWdlLCB0ZXh0KTtcclxuLy8gICAgIG9yIEBpbmNsdWRlIHYtYWxpZ24tcGFpcihpbWFnZSwgdGV4dCwgYm90dG9tKTtcclxuLy8gICAgIG9yIEBpbmNsdWRlIHYtYWxpZ24tcGFpcihpbWFnZSwgdGV4dCwgbWlkZGxlLCAyMDBweCk7XHJcbi8vXHJcbkBtaXhpbiB2LWFsaWduLXBhaXIoJGNoaWxkLW5hbWUxLCAkY2hpbGQtbmFtZTIsICR2YWxpZ246IG1pZGRsZSwgJHdpZHRoMTogYXV0bywgJHdpZHRoMjogYXV0bykge1xyXG4gICAgZGlzcGxheTogdGFibGU7XHJcblxyXG4gICAgLiN7JGNoaWxkLW5hbWUxfSB7XHJcbiAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcclxuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogJHZhbGlnbjtcclxuICAgICAgICB3aWR0aDogJHdpZHRoMTtcclxuICAgIH1cclxuXHJcbiAgICAuI3skY2hpbGQtbmFtZTJ9IHtcclxuICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xyXG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiAkdmFsaWduO1xyXG4gICAgICAgIHdpZHRoOiAkd2lkdGgyO1xyXG4gICAgfVxyXG59XHJcblxyXG4vLyB2ZXJ0aWNhbCBhbGlnbiBlbFxyXG4vLyB1c2FnZTogQGluY2x1ZGUgdmVydGljYWwtYWxpZ24tZWw7XHJcbi8vXHJcbkBtaXhpbiB2ZXJ0aWNhbC1hbGlnbi1lbCB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB0b3A6IDUwJTtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcclxufVxyXG5cclxuLy8vIE1peGluIGhlbHBpbmcgZGVmaW5pbmcgYm90aCBgd2lkdGhgIGFuZCBgaGVpZ2h0YCBzaW11bHRhbmVvdXNseS5cclxuLy8vXHJcbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcclxuLy8vXHJcbi8vLyBAYWNjZXNzIHB1YmxpY1xyXG4vLy9cclxuLy8vIEBwYXJhbSB7TGVuZ3RofSAkd2lkdGggLSBFbGVtZW504oCZcyBgd2lkdGhgXHJcbi8vLyBAcGFyYW0ge0xlbmd0aH0gJGhlaWdodCAoJHdpZHRoKSAtIEVsZW1lbnTigJlzIGBoZWlnaHRgXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5mb28ge1xyXG4vLy8gICAgIEBpbmNsdWRlIHNpemUoMTBlbSk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyAgIC5iYXIge1xyXG4vLy8gICAgIEBpbmNsdWRlIHNpemUoMTAwJSwgMTBlbSk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1Mgb3V0cHV0XHJcbi8vLyAgIC5mb28ge1xyXG4vLy8gICAgIHdpZHRoOiAxMGVtO1xyXG4vLy8gICAgIGhlaWdodDogMTBlbTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vICAgLmJhciB7XHJcbi8vLyAgICAgd2lkdGg6IDEwMCU7XHJcbi8vLyAgICAgaGVpZ2h0OiAxMGVtO1xyXG4vLy8gICB9XHJcbi8vL1xyXG5AbWl4aW4gc2l6ZSgkd2lkdGgsICRoZWlnaHQ6ICR3aWR0aCkge1xyXG4gICAgd2lkdGg6ICR3aWR0aDtcclxuICAgIGhlaWdodDogJGhlaWdodDtcclxufVxyXG5cclxuLy8vIGZvbnQtc21vdGhpbmdcclxuLy8vIEBpbmNsdWRlIGZvbnQtc21vb3RoaW5nKG9uKTtcclxuLy8vIEBpbmNsdWRlIGZvbnQtc21vb3RoaW5nKG9mZik7XHJcbkBtaXhpbiBmb250LXNtb290aGluZygkdmFsdWU6IG9uKSB7XHJcbiAgICBAaWYgJHZhbHVlID09b24ge1xyXG4gICAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xyXG4gICAgICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XHJcbiAgICB9XHJcblxyXG4gICAgQGVsc2Uge1xyXG4gICAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IHN1YnBpeGVsLWFudGlhbGlhc2VkO1xyXG4gICAgICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBhdXRvO1xyXG4gICAgfVxyXG59XHJcblxyXG5cclxuLy8vIEhpZGVzIHRoZSB0ZXh0IGluIGFuIGVsZW1lbnQsIGNvbW1vbmx5IHVzZWQgdG8gc2hvdyBhbiBpbWFnZS4gU29tZSBlbGVtZW50cyB3aWxsIG5lZWQgYmxvY2stbGV2ZWwgc3R5bGVzIGFwcGxpZWQuXHJcbi8vL1xyXG4vLy8gQGxpbmsgaHR0cDovL3plbGRtYW4uY29tLzIwMTIvMDMvMDEvcmVwbGFjaW5nLXRoZS05OTk5cHgtaGFjay1uZXctaW1hZ2UtcmVwbGFjZW1lbnRcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIEBpbmNsdWRlIGhpZGUtdGV4dDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbi8vLyAgICAgdGV4dC1pbmRlbnQ6IDEwMSU7XHJcbi8vLyAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuLy8vICAgfVxyXG4vLy9cclxuQG1peGluIGhpZGUtdGV4dCB7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgdGV4dC1pbmRlbnQ6IDEwMSU7XHJcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG59XHJcblxyXG5cclxuLy8vIENyZWF0ZXMgYSB2aXN1YWwgdHJpYW5nbGUuXHJcbi8vLyBNaXhpbiB0YWtlcyAoJHNpemUsICRjb2xvciwgJGRpcmVjdGlvbilcclxuLy8vIFRoZSAkc2l6ZSBhcmd1bWVudCBjYW4gdGFrZSBvbmUgb3IgdHdvIHZhbHVlc+KAlHdpZHRoIGhlaWdodC5cclxuLy8vIFRoZSAkY29sb3IgYXJndW1lbnQgY2FuIHRha2Ugb25lIG9yIHR3b1xyXG4vLy8gdmFsdWVz4oCUZm9yZWdyb3VuZC1jb2xvciBiYWNrZ3JvdW5kLWNvbG9yLlxyXG4vLy9cclxuLy8vIEBhdXRob3IgaHR0cDovL2JvdXJib24uaW8vZG9jcy8jdHJpYW5nbGVcclxuLy8vXHJcbi8vLyAkZGlyZWN0aW9uOlxyXG4vLy8gdXAsIGRvd24sIGxlZnQsIHJpZ2h0LCB1cC1yaWdodCwgdXAtbGVmdCwgZG93bi1yaWdodCwgZG93bi1sZWZ0XHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgQGluY2x1ZGUgdHJpYW5nbGUoMTJweCwgZ3JheSwgZG93bik7XHJcbi8vLyAgIEBpbmNsdWRlIHRyaWFuZ2xlKDEycHggNnB4LCBncmF5IGJsdWUsIHVwLWxlZnQpO1xyXG4vLy9cclxuQG1peGluIHRyaWFuZ2xlKCRzaXplLCAkY29sb3IsICRkaXJlY3Rpb24pIHtcclxuICAgICR3aWR0aDogbnRoKCRzaXplLCAxKTtcclxuICAgICRoZWlnaHQ6IG50aCgkc2l6ZSwgbGVuZ3RoKCRzaXplKSk7XHJcbiAgICAkZm9yZWdyb3VuZC1jb2xvcjogbnRoKCRjb2xvciwgMSk7XHJcbiAgICAkYmFja2dyb3VuZC1jb2xvcjogaWYobGVuZ3RoKCRjb2xvcik9PTIsIG50aCgkY29sb3IsIDIpLCB0cmFuc3BhcmVudCk7XHJcbiAgICBoZWlnaHQ6IDA7XHJcbiAgICB3aWR0aDogMDtcclxuXHJcbiAgICBAaWYgKCRkaXJlY3Rpb24gPT11cCkgb3IgKCRkaXJlY3Rpb24gPT1kb3duKSBvciAoJGRpcmVjdGlvbiA9PXJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PWxlZnQpIHtcclxuICAgICAgICAkd2lkdGg6ICR3aWR0aCAvIDI7XHJcbiAgICAgICAgJGhlaWdodDogaWYobGVuZ3RoKCRzaXplKSA+IDEsICRoZWlnaHQsICRoZWlnaHQvMik7XHJcblxyXG4gICAgICAgIEBpZiAkZGlyZWN0aW9uID09dXAge1xyXG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xyXG4gICAgICAgICAgICBib3JkZXItbGVmdDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xyXG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEBlbHNlIGlmICRkaXJlY3Rpb24gPT1yaWdodCB7XHJcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XHJcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEBlbHNlIGlmICRkaXJlY3Rpb24gPT1kb3duIHtcclxuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XHJcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBAZWxzZSBpZiAkZGlyZWN0aW9uID09bGVmdCB7XHJcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xyXG4gICAgICAgICAgICBib3JkZXItdG9wOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBlbHNlIGlmICgkZGlyZWN0aW9uID09dXAtcmlnaHQpIG9yICgkZGlyZWN0aW9uID09dXAtbGVmdCkge1xyXG4gICAgICAgIGJvcmRlci10b3A6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XHJcblxyXG4gICAgICAgIEBpZiAkZGlyZWN0aW9uID09dXAtcmlnaHQge1xyXG4gICAgICAgICAgICBib3JkZXItbGVmdDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgQGVsc2UgaWYgJGRpcmVjdGlvbiA9PXVwLWxlZnQge1xyXG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT1kb3duLXJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PWRvd24tbGVmdCkge1xyXG4gICAgICAgIGJvcmRlci1ib3R0b206ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XHJcblxyXG4gICAgICAgIEBpZiAkZGlyZWN0aW9uID09ZG93bi1yaWdodCB7XHJcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBAZWxzZSBpZiAkZGlyZWN0aW9uID09ZG93bi1sZWZ0IHtcclxuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBlbHNlIGlmICgkZGlyZWN0aW9uID09aW5zZXQtdXApIHtcclxuICAgICAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRmb3JlZ3JvdW5kLWNvbG9yO1xyXG4gICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAkaGVpZ2h0ICR3aWR0aDtcclxuICAgIH1cclxuXHJcbiAgICBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PWluc2V0LWRvd24pIHtcclxuICAgICAgICBib3JkZXItY29sb3I6ICRmb3JlZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yO1xyXG4gICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAkaGVpZ2h0ICR3aWR0aDtcclxuICAgIH1cclxuXHJcbiAgICBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PWluc2V0LXJpZ2h0KSB7XHJcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkZm9yZWdyb3VuZC1jb2xvcjtcclxuICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xyXG4gICAgICAgIGJvcmRlci13aWR0aDogJHdpZHRoICRoZWlnaHQ7XHJcbiAgICB9XHJcblxyXG4gICAgQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT1pbnNldC1sZWZ0KSB7XHJcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvciAkZm9yZWdyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xyXG4gICAgICAgIGJvcmRlci13aWR0aDogJHdpZHRoICRoZWlnaHQ7XHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG4vLy8gQW5pbWF0ZSBjc3MgcHJvcGVydGllc1xyXG4vLyB1c2FnZVxyXG4vLyBzY3NzIC0gQGluY2x1ZGUgYW5pbWF0ZShjb2xvcik7XHJcbi8vICAgICBvciBAaW5jbHVkZSBhbmltYXRlKGNvbG9yIHdpZHRoKTtcclxuLy8gICAgIG9yIEBpbmNsdWRlIGFuaW1hdGUoY29sb3Igd2lkdGgsIDFzLCBsaW5lYXIpO1xyXG4vL1xyXG4kYW5pbWF0aW9uLXNwZWVkOiAwLjNzICFkZWZhdWx0O1xyXG5cclxuQG1peGluIGFuaW1hdGUoJHByb3BlcnRpZXMsICRkdXJhdGlvbjogJGFuaW1hdGlvbi1zcGVlZCwgJGVhc2luZzogZWFzZS1pbi1vdXQpIHtcclxuICAgICRsaXN0OiAoKTtcclxuXHJcbiAgICBAZWFjaCAkcHJvcCBpbiAkcHJvcGVydGllcyB7XHJcbiAgICAgICAgJHN0cjogI3skcHJvcH0gI3skZHVyYXRpb259ICN7JGVhc2luZ307XHJcbiAgICAgICAgJGxpc3Q6IGpvaW4oJGxpc3QsICN7JHN0cn0sIGNvbW1hKTtcclxuICAgIH1cclxuXHJcbiAgICB0cmFuc2l0aW9uOiAkbGlzdDtcclxufVxyXG5cclxuXHJcbi8vLyBNaXhpbiBmb3Igc3R5bGluZyBmb3JtLXBsYWNlaG9sZGVyc1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIEBpbmNsdWRlIHBsYWNlaG9sZGVyIHtcclxuLy8vICAgIGNvbG9yOiAjMzMzO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gICBpbnB1dFt0eXBlPSd0ZXh0J10sXHJcbi8vLyAgIGlucHV0W3R5cGU9J3RlbCddLFxyXG4vLy8gICBpbnB1dFt0eXBlPSdlbWFpbCddIHtcclxuLy8vICAgICBAaW5jbHVkZSBwbGFjZWhvbGRlciB7XHJcbi8vLyAgICAgIGNvbG9yOiByZWQ7XHJcbi8vLyAgICAgfVxyXG4vLy8gICB9XHJcblxyXG5AbWl4aW4gcGxhY2Vob2xkZXIge1xyXG4gICAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XHJcbiAgICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgJjo6LW1vei1wbGFjZWhvbGRlciB7XHJcbiAgICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgICBAY29udGVudDtcclxuICAgIH1cclxuXHJcbiAgICAmOi1tb3otcGxhY2Vob2xkZXIge1xyXG4gICAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG5cclxuICAgICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcclxuICAgICAgICBAY29udGVudDtcclxuICAgIH1cclxuXHJcbiAgICAmLnBsYWNlaG9sZGVyIHtcclxuICAgICAgICBAY29udGVudDtcclxuICAgIH1cclxufVxyXG5cclxuLy8vIEZvbnQtc2l6ZSBweCB0byByZW0gY2FsY1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyBzZWxlY3RvciB7XHJcbi8vLyAgICBAaW5jbHVkZSByZW0tZm9udC1zaXplKDE2cHgpO1xyXG4vLy8gfVxyXG5cclxuQG1peGluIHJlbS1mb250LXNpemUoJHB4LXNpemUpIHtcclxuICAgIGZvbnQtc2l6ZTogJHB4LXNpemU7XHJcbiAgICBmb250LXNpemU6ICgkcHgtc2l6ZSAvIDEwcHgpICsgcmVtO1xyXG59XHJcblxyXG4vL2ZvbnQtZmFjZVxyXG5AbWl4aW4gZm9udC1mYWNlKCRmb250LW5hbWUsICRmb250LXBhdGgsICR3ZWlnaHQsICRzdHlsZSkge1xyXG4gICAgQGZvbnQtZmFjZSB7XHJcbiAgICAgICAgZm9udC1mYW1pbHk6ICcjeyRmb250LW5hbWV9JztcclxuICAgICAgICBzcmM6IHVybCgnZm9udHMvI3skZm9udC1wYXRofS53b2ZmMicpIGZvcm1hdCgnd29mZicpLFxyXG4gICAgICAgIHVybCgnZm9udHMvI3skZm9udC1wYXRofS53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6ICR3ZWlnaHQ7XHJcbiAgICAgICAgZm9udC1zdHlsZTogJHN0eWxlO1xyXG4gICAgfVxyXG59XHJcblxyXG4vLyBCdXR0b24gc2l6ZXNcclxuQG1peGluIGJ1dHRvbi1jb2xvcigkYnRuLWJhY2tncm91bmQsICRidG4tY29sb3IsICRidG4tYm9yZGVyLCAkYnRuLWhvdmVyLWJhY2tncm91bmQsICRidG4taG92ZXItYm9yZGVyLCAkYnRuLWhvdmVyLWNvbG9yKSB7XHJcbiAgICBiYWNrZ3JvdW5kOiAkYnRuLWJhY2tncm91bmQ7XHJcbiAgICBjb2xvcjogJGJ0bi1jb2xvcjtcclxuICAgIGJvcmRlcjogJGJ0bi1ib3JkZXI7XHJcblxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogJGJ0bi1ob3Zlci1iYWNrZ3JvdW5kO1xyXG4gICAgICAgIGNvbG9yOiAkYnRuLWhvdmVyLWNvbG9yO1xyXG4gICAgICAgIGJvcmRlcjogJGJ0bi1ob3Zlci1ib3JkZXI7XHJcbiAgICB9XHJcbn1cclxuXHJcbkBtaXhpbiBhZGQtcGFyYW1zKCkge1xyXG5cclxuICAgIEBlYWNoICR2YWwsXHJcbiAgICAkbWVkaWEgaW4gJGdyaWQge1xyXG4gICAgICAgICYuZGYtcnItI3skdmFsfSB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCfiiaUnICsgJG1lZGlhKSB7XHJcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYuZGYtYWljLSN7JHZhbH0ge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgn4omlJyArICRtZWRpYSkge1xyXG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLy8gZmxleCBncmlkXHJcbkBtaXhpbiBmbGV4LWdyaWQoKSB7XHJcblxyXG4gICAgQGVhY2ggJHZhbCxcclxuICAgICRtZWRpYSBpbiAkZ3JpZCB7XHJcbiAgICAgICAgQGZvciAkZ3V0dGVyIGZyb20gMSB0aHJvdWdoIDEyIHtcclxuICAgICAgICAgICAgLmNvbC0jeyR2YWx9LSN7JGd1dHRlcn0ge1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJ+KJpScgKyAkbWVkaWEpIHtcclxuICAgICAgICAgICAgICAgICAgICBmbGV4OiAxIDAgY2FsYygxMDAlIC8gMTIgKiAjeyRndXR0ZXJ9KTtcclxuICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAvIDEyICogI3skZ3V0dGVyfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEBmb3IgJGd1dHRlciBmcm9tIDAgdGhyb3VnaCAxMSB7XHJcbiAgICAgICAgICAgIC5jb2wtb2Zmc2V0LSN7JHZhbH0tI3skZ3V0dGVyfSB7XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgn4omlJyArICRtZWRpYSkge1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDEwMCUgLyAxMiAqICN7JGd1dHRlcn0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5AbWl4aW4gdi1jZW50ZXIoJG1pbi1oZWlnaHQ6IDQwMHB4KSB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG5cclxuICAgID4qIHtcclxuICAgICAgICBtaW4taGVpZ2h0OiAkbWluLWhlaWdodDtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcbn0iLCIvLy8gY29sb3JzIGJsYWNrICYgd2hpdGVcclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAubXktY2xhc3Mge1xyXG4vLy8gICAgIGJhY2tncm91bmQ6IGJsYWNrKDAuMTUpO1xyXG4vLy8gICAgIGNvbG9yOiB3aGl0ZSgwLjkpO1xyXG4vLy8gICB9XHJcbkBmdW5jdGlvbiBibGFjaygkb3BhY2l0eSkge1xyXG4gICAgQHJldHVybiByZ2JhKGJsYWNrLCAkb3BhY2l0eSk7XHJcbn1cclxuXHJcbkBmdW5jdGlvbiB3aGl0ZSgkb3BhY2l0eSkge1xyXG4gICAgQHJldHVybiByZ2JhKHdoaXRlLCAkb3BhY2l0eSk7XHJcbn1cclxuXHJcbkBtaXhpbiB0aXRsZS1zaXplKCRzeW1ib2wpIHtcclxuXHJcbiAgICBAZWFjaCAkbWVkaWEsXHJcbiAgICAkdGl0bGVzLXNpemUgaW4gJHRpdGxlLXBhbGV0dGUge1xyXG4gICAgICAgIEBpZiAkbWVkaWEgPT1tb2JpbGUge1xyXG5cclxuICAgICAgICAgICAgQGVhY2ggJHRpdGxlLFxyXG4gICAgICAgICAgICAkc2l6ZSBpbiAkdGl0bGVzLXNpemUge1xyXG5cclxuICAgICAgICAgICAgICAgICN7JHRpdGxlfSxcclxuICAgICAgICAgICAgICAgIC4jeyR0aXRsZX0ge1xyXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJHNpemUgKyBweDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgQGVsc2Uge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgjeyRzeW1ib2x9I3skbWVkaWF9KSB7XHJcblxyXG4gICAgICAgICAgICAgICAgQGVhY2ggJHRpdGxlLFxyXG4gICAgICAgICAgICAgICAgJHNpemUgaW4gJHRpdGxlcy1zaXplIHtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgI3skdGl0bGV9LFxyXG4gICAgICAgICAgICAgICAgICAgIC4jeyR0aXRsZX0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6ICRzaXplICsgcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4vL1xyXG4vLyBAZnVuY3Rpb25zXHJcbi8vXHJcblxyXG4vLyBTVFJJUCBVTklUXHJcbi8vIEl0IHN0cmlwcyB0aGUgdW5pdCBvZiBtZWFzdXJlIGFuZCByZXR1cm5zIGl0XHJcbkBmdW5jdGlvbiBzdHJpcC11bml0KCRudW0pIHtcclxuICAgIEByZXR1cm4gJG51bSAvICgkbnVtICogMCArIDEpO1xyXG59XHJcblxyXG4vLyBDT05WRVJUIFRPIFJFTVxyXG5AZnVuY3Rpb24gY29udmVydC10by1yZW0oJHZhbHVlLCAkYmFzZS12YWx1ZTogJHJlbS1iYXNlKSB7XHJcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAvIHN0cmlwLXVuaXQoJGJhc2UtdmFsdWUpICogMXJlbTtcclxuXHJcbiAgICBAaWYgKCR2YWx1ZSA9PTByZW0pIHtcclxuICAgICAgICAkdmFsdWU6IDA7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gVHVybiAwcmVtIGludG8gMFxyXG4gICAgQHJldHVybiAkdmFsdWU7XHJcbn1cclxuXHJcbi8vIFJFTSBDQUxDXHJcblxyXG4vLyBOZXcgU3ludGF4LCBhbGxvd3MgdG8gb3B0aW9uYWxseSBjYWxjdWxhdGUgb24gYSBkaWZmZXJlbnQgYmFzZSB2YWx1ZSB0byBjb3VudGVyIGNvbXBvdW5kaW5nIGVmZmVjdCBvZiByZW0ncy5cclxuLy8gQ2FsbCB3aXRoIDEsIDIsIDMgb3IgNCBwYXJhbWV0ZXJzLCAncHgnIGlzIG5vdCByZXF1aXJlZCBidXQgc3VwcG9ydGVkOlxyXG4vL1xyXG4vLyAgIHJlbS1jYWxjKDEwIDIwIDMwcHggNDApO1xyXG4vL1xyXG4vLyBTcGFjZSBkZWxpbWl0ZWQsIGlmIHlvdSB3YW50IHRvIGRlbGltaXQgdXNpbmcgY29tbWEncywgd3JhcCBpdCBpbiBhbm90aGVyIHBhaXIgb2YgYnJhY2tldHNcclxuLy9cclxuLy8gICByZW0tY2FsYygoMTAsIDIwLCAzMCwgNDBweCkpO1xyXG4vL1xyXG4vLyBPcHRpb25hbGx5IGNhbGwgd2l0aCBhIGRpZmZlcmVudCBiYXNlIChlZzogOHB4KSB0byBjYWxjdWxhdGUgcmVtLlxyXG4vL1xyXG4vLyAgIHJlbS1jYWxjKDE2cHggMzJweCA0OHB4LCA4cHgpO1xyXG4vL1xyXG4vLyBJZiB5b3UgcmVxdWlyZSB0byBjb21tYSBzZXBhcmF0ZSB5b3VyIGxpc3RcclxuLy9cclxuLy8gICByZW0tY2FsYygoMTZweCwgMzJweCwgNDgpLCA4cHgpO1xyXG5cclxuQGZ1bmN0aW9uIHJlbS1jYWxjKCR2YWx1ZXMsICRiYXNlLXZhbHVlOiAkcmVtLWJhc2UpIHtcclxuICAgICRtYXg6IGxlbmd0aCgkdmFsdWVzKTtcclxuXHJcbiAgICBAaWYgJG1heCA9PTEge1xyXG4gICAgICAgIEByZXR1cm4gY29udmVydC10by1yZW0obnRoKCR2YWx1ZXMsIDEpLCAkYmFzZS12YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgJHJlbVZhbHVlczogKFxyXG4gICAgKTtcclxuXHJcbkBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJG1heCB7XHJcbiAgICAkcmVtVmFsdWVzOiBhcHBlbmQoJHJlbVZhbHVlcywgY29udmVydC10by1yZW0obnRoKCR2YWx1ZXMsICRpKSwgJGJhc2UtdmFsdWUpKTtcclxufVxyXG5cclxuQHJldHVybiAkcmVtVmFsdWVzO1xyXG59XHJcblxyXG5AZnVuY3Rpb24gZW0tY2FsYygkdmFsdWVzLCAkYmFzZS12YWx1ZTogJHJlbS1iYXNlKSB7XHJcbiAgICAkcmVtVmFsdWVzOiByZW0tY2FsYygkdmFsdWVzLCAkYmFzZS12YWx1ZTogJHJlbS1iYXNlKTtcclxuXHJcbiAgICAkbWF4OiBsZW5ndGgoJHJlbVZhbHVlcyk7XHJcblxyXG4gICAgQGlmICRtYXggPT0xIHtcclxuICAgICAgICBAcmV0dXJuIHN0cmlwLXVuaXQobnRoKCRyZW1WYWx1ZXMsIDEpKSAqIDFlbTtcclxuICAgIH1cclxuXHJcbiAgICAkZW1WYWx1ZXM6IChcclxuICAgICk7XHJcblxyXG5AZm9yICRpIGZyb20gMSB0aHJvdWdoICRtYXgge1xyXG4gICAgJGVtVmFsdWVzOiBhcHBlbmQoJGVtVmFsdWVzLCBzdHJpcC11bml0KG50aCgkcmVtVmFsdWVzLCAkaSkpICogMWVtKTtcclxufVxyXG5cclxuQHJldHVybiAkZW1WYWx1ZXM7XHJcbn1cclxuXHJcbi8vLyBjb2xvcnMgYmxhY2sgJiB3aGl0ZVxyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5teS1jbGFzcyB7XHJcbi8vLyAgICAgYmFja2dyb3VuZDogYmxhY2soMC4xNSk7XHJcbi8vLyAgICAgY29sb3I6IHdoaXRlKDAuOSk7XHJcbi8vLyAgIH1cclxuQGZ1bmN0aW9uIGJsYWNrKCRvcGFjaXR5KSB7XHJcbiAgICBAcmV0dXJuIHJnYmEoYmxhY2ssICRvcGFjaXR5KTtcclxufVxyXG5cclxuQGZ1bmN0aW9uIHdoaXRlKCRvcGFjaXR5KSB7XHJcbiAgICBAcmV0dXJuIHJnYmEod2hpdGUsICRvcGFjaXR5KTtcclxufVxyXG5cclxuIiwiLy8gVHlwb2dyYXBoeVxyXG5cclxuQGluY2x1ZGUgdGl0bGUtc2l6ZSgn4omlJyk7XHJcblxyXG5oMSxcclxuLmgxLFxyXG5oMixcclxuLmgyLFxyXG5oMyxcclxuLmgzLFxyXG5oNCxcclxuLmg0LFxyXG5oNSxcclxuLmg1LFxyXG5oNixcclxuLmg2LFxyXG4uaCB7XHJcbiAgICBmb250LWZhbWlseTogJGhlYWRpbmdzLWZvbnQtZmFtaWx5O1xyXG4gICAgY29sb3I6ICRoZWFkaW5ncy1jb2xvcjtcclxuICAgIGZvbnQtd2VpZ2h0OiAkYmxhY2stZm9udDtcclxuICAgIG1hcmdpbjogMCAwIDEwcHg7XHJcbn1cclxuXHJcbmgxIHtcclxuICAgIG1hcmdpbjogMCAwIDEuMTVlbTtcclxuICAgIGZvbnQtd2VpZ2h0OiAkYmxhY2stZm9udDtcclxuICAgIGZvbnQtc2l6ZTogY2FsYygyNHB4ICsgKDQ4IC0gMjQpICogKCgxMDB2dyAtIDM2MHB4KSAvICgxMzAwIC0gMzYwKSkpO1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgIGxpbmUtaGVpZ2h0OiBjYWxjKDI5LzI0KTtcclxuICAgIFxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ+KJpXRhYmxldCcpIHtcclxuICAgICAgICBsaW5lLWhlaWdodDogMTtcclxuICAgICAgICBtYXJnaW46IDAgMCAwLjI1ZW07XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ+KJpXdpZGVzY3JlZW4nKSB7XHJcbiAgICAgICAgZm9udC1zaXplOiA0OHB4O1xyXG4gICAgfVxyXG59XHJcblxyXG5oMiB7XHJcbiAgICBtYXJnaW46IDAgMCAxLjFlbTtcclxuICAgIGZvbnQtd2VpZ2h0OiAkYmxhY2stZm9udDtcclxuICAgIGZvbnQtc2l6ZTogY2FsYygyNHB4ICsgKDMyIC0gMjQpICogKCgxMDB2dyAtIDM2MHB4KSAvICgxMzAwIC0gMzYwKSkpO1xyXG4gICAgbGluZS1oZWlnaHQ6IGNhbGMoMjkvMjQpO1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgIFxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ+KJpXRhYmxldCcpIHtcclxuICAgICAgICBtYXJnaW46IDAgMCAwLjllbTtcclxuICAgICAgICBsaW5lLWhlaWdodDogMTtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgn4omld2lkZXNjcmVlbicpIHtcclxuICAgICAgICBmb250LXNpemU6IDMycHg7XHJcbiAgICB9XHJcbn1cclxuXHJcbmgzIHtcclxuICAgIG1hcmdpbjogMCAwIDAuNWVtO1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgIGZvbnQtd2VpZ2h0OiAkYmxhY2stZm9udDtcclxuICAgIGZvbnQtc2l6ZTogY2FsYygyMHB4ICsgKDMwIC0gMjApICogKCgxMDB2dyAtIDM2MHB4KSAvICgxMzAwIC0gMzYwKSkpO1xyXG4gICAgbGluZS1oZWlnaHQ6IDE7XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ+KJpXdpZGVzY3JlZW4nKSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAzMHB4O1xyXG4gICAgfVxyXG59XHJcblxyXG5wIHtcclxuICAgIG1hcmdpbjogMCAwIDFlbTtcclxufVxyXG5cclxuYSB7XHJcbiAgICBjb2xvcjogJGJhc2UtbGluay1jb2xvcjtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogJHRleHQtZGVjb3JhdGlvbjtcclxuXHJcbiAgICAmOmhvdmVyLFxyXG4gICAgJjpmb2N1cyB7XHJcbiAgICAgICAgY29sb3I6ICRiYXNlLWxpbmstaG92ZXItY29sb3I7XHJcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiAkdGV4dC1kZWNvcmF0aW9uLWhvdmVyO1xyXG4gICAgfVxyXG59XHJcblxyXG5hW2hyZWYqPVwibWFpbHRvOlwiXSB7XHJcbiAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XHJcbn1cclxuXHJcbm1hcmsge1xyXG4gICAgYmFja2dyb3VuZDogbm9uZTtcclxuICAgIGNvbG9yOiAkeWVsbG93O1xyXG59IiwiLy8gZm9ybXNcclxuZm9ybSxcclxuZmllbGRzZXQge1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIGJvcmRlci1zdHlsZTogbm9uZTtcclxufVxyXG5cclxuaW5wdXRbdHlwZT0ndGV4dCddLFxyXG5pbnB1dFt0eXBlPSd0ZWwnXSxcclxuaW5wdXRbdHlwZT0nZW1haWwnXSxcclxuaW5wdXRbdHlwZT0nc2VhcmNoJ10sXHJcbmlucHV0W3R5cGU9J3Bhc3N3b3JkJ10sXHJcbmlucHV0W3R5cGU9J3VybCddLFxyXG4vLyBpbnB1dFt0eXBlPSdkYXRlJ10sXHJcbnRleHRhcmVhIHtcclxuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxuICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMDtcclxuICAgIHBhZGRpbmc6ICRpbnB1dC1wYWRkaW5nO1xyXG4gICAgZm9udC1zaXplOiAkaW5wdXQtZm9udC1zaXplO1xyXG4gICAgbGluZS1oZWlnaHQ6ICRpbnB1dC1saW5lLWhlaWdodDtcclxuICAgIGZvbnQtZmFtaWx5OiAkaW5wdXQtZm9udC1mYW1pbHk7XHJcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgYm9yZGVyOiAkaW5wdXQtYm9yZGVyO1xyXG4gICAgYm9yZGVyLXJhZGl1czogJGlucHV0LWJvcmRlci1yYWRpdXM7XHJcblxyXG4gICAgJjpub3QodGV4dGFyZWEpIHtcclxuICAgICAgICBoZWlnaHQ6ICRpbnB1dC1oZWlnaHQ7XHJcbiAgICB9XHJcblxyXG4gICAgJjpmb2N1cyB7XHJcbiAgICAgICAgb3V0bGluZTogbm9uZTtcclxuICAgICAgICBib3JkZXItY29sb3I6ICRpbnB1dC1mb2N1cy1ib3JkZXItY29sb3I7XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgcGxhY2Vob2xkZXIge1xyXG4gICAgICAgIGNvbG9yOiAkcGxhY2Vob2xkZXItY29sb3I7XHJcbiAgICB9XHJcbn1cclxuXHJcbmlucHV0W3R5cGU9J3NlYXJjaCddOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uIHtcclxuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxufVxyXG5cclxuLy8gaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XHJcbi8vICAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XHJcbi8vIH1cclxuXHJcbnRleHRhcmVhIHtcclxuICAgIHJlc2l6ZTogdmVydGljYWw7XHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xyXG4gICAgb3ZlcmZsb3c6IGF1dG87XHJcbn1cclxuXHJcbmJ1dHRvbixcclxuaW5wdXRbdHlwZT0nYnV0dG9uJ10sXHJcbmlucHV0W3R5cGU9J3Jlc2V0J10sXHJcbmlucHV0W3R5cGU9J2ZpbGUnXSxcclxuaW5wdXRbdHlwZT0nc3VibWl0J10ge1xyXG4gICAgQGluY2x1ZGUgYW5pbWF0ZShiYWNrZ3JvdW5kKTtcclxuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxuICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMDtcclxuICAgIGhlaWdodDogJHN1Ym1pdC1oZWlnaHQ7XHJcbiAgICBwYWRkaW5nOiAkc3VibWl0LXBhZGRpbmc7XHJcbiAgICBmb250LXNpemU6ICRzdWJtaXQtZm9udC1zaXplO1xyXG4gICAgbGluZS1oZWlnaHQ6ICRzdWJtaXQtbGluZS1oZWlnaHQ7XHJcbiAgICBjb2xvcjogJHN1Ym1pdC1jb2xvcjtcclxuICAgIGJhY2tncm91bmQ6ICRzdWJtaXQtYmFja2dyb3VuZDtcclxuXHJcbiAgICBib3JkZXI6IHtcclxuICAgICAgICB3aWR0aDogJHN1Ym1pdC1ib3JkZXItd2lkdGg7XHJcbiAgICAgICAgc3R5bGU6ICRzdWJtaXQtYm9yZGVyLXN0eWxlO1xyXG4gICAgICAgIGNvbG9yOiAkc3VibWl0LWJvcmRlci1jb2xvcjtcclxuICAgICAgICByYWRpdXM6ICRzdWJtaXQtcmFkaXVzO1xyXG4gICAgfVxyXG5cclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIHRyYW5zaXRpb246IGFsbCAkYW5pbWF0aW9uLXNwZWVkO1xyXG5cclxuICAgICY6aG92ZXIge1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICRzdWJtaXQtaG92ZXItYmFja2dyb3VuZDtcclxuICAgICAgICBjb2xvcjogJHN1Ym1pdC1ob3Zlci1jb2xvcjtcclxuICAgIH1cclxufSIsIm5vc2NyaXB0IHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICByaWdodDogMDtcclxuICAgIHRvcDogMDtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgIGNvbG9yOiAjMDAwO1xyXG4gICAgYmFja2dyb3VuZDogI2ZmOGY4ZjtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgcGFkZGluZzogNXB4IDA7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICB6LWluZGV4OiA5OTk5OTtcclxufVxyXG5cclxuLmFjY2Vzc2liaWxpdHkge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgbGVmdDogLTIwMHZ3O1xyXG4gICAgdG9wOiBhdXRvO1xyXG4gICAgd2lkdGg6IDFweDtcclxuICAgIGhlaWdodDogMXB4O1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuXHJcbiAgICAmOmZvY3VzIHtcclxuICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xyXG4gICAgICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgICAgIGhlaWdodDogYXV0bztcclxuICAgIH1cclxufVxyXG5cclxuLmhpZGRlbiB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBsZWZ0OiAtOTk5OXB4O1xyXG4gICAgdG9wOiBhdXRvO1xyXG4gICAgd2lkdGg6IDFweDtcclxuICAgIGhlaWdodDogMXB4O1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxufSIsIi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbi8vIFRoaXMgZmlsZSBjb250YWlucyBhbGwgc3R5bGVzIHJlbGF0ZWQgdG8gdGhlIGhlYWRlciBvZiB0aGUgc2l0ZVxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5baWQ9XCJoZWFkZXJcIl0ge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgcGFkZGluZzogMzlweCAwIDA7XHJcbiAgICB6LWluZGV4OiA5OTtcclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgn4omlcGhvbmUnKSB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDE1dnc7XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ+KJpWRlc2t0b3AnKSB7XHJcbiAgICAgICAgcGFkZGluZzogMTY4cHggMCAwO1xyXG4gICAgfVxyXG59XHJcblxyXG4ubG9nbyB7XHJcbiAgICB3aWR0aDogMjU2cHg7XHJcbiAgICBtaW4td2lkdGg6IDI1NnB4O1xyXG4gICAgbWFyZ2luOiAwIGF1dG8gMTBweDtcclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgn4omldGFibGV0Jykge1xyXG4gICAgICAgIG1hcmdpbjogMCAwIDEwcHg7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5idXR0b24td2F0Y2gtd3JhcCB7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ+KJpXRhYmxldCcpIHtcclxuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgfVxyXG5cclxuICAgIC5idG4td2F0Y2gge1xyXG4gICAgICAgIC5maXhlZC1idXR0b24gJiB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgICAgICAgICAgei1pbmRleDogOTk7XHJcbiAgICAgICAgICAgIGJvdHRvbTogNTBweDtcclxuICAgICAgICAgICAgcmlnaHQ6IDIwcHg7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDdweDtcclxuICAgICAgICAgICAgbWluLXdpZHRoOiAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnRleHQtYnV0dG9uIHtcclxuICAgICAgICAgICAgLmZpeGVkLWJ1dHRvbiAmIHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn0iLCIvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4vLyBUaGlzIGZpbGUgY29udGFpbnMgYWxsIHN0eWxlcyByZWxhdGVkIHRvIHRoZSBjb21tb24gbGF5b3V0IG9mIHRoZSBzaXRlXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbltpZD1cIndyYXBwZXJcIl0ge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYXNlLWJhY2tncm91bmQtY29sb3I7XHJcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDA7XHJcbiAgICBtaW4taGVpZ2h0OiAxMDB2aDtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDE1MHZ3IGF1dG87XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ+KJpXdpZGVzY3JlZW4nKSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBhdXRvIGF1dG87XHJcbiAgICB9XHJcbn1cclxuXHJcbm1haW4ge1xyXG4gICAgZmxleC1ncm93OiAxO1xyXG59XHJcblxyXG4uY29udGFpbmVyIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgbWF4LXdpZHRoOiAkbWF4LXdpZHRoLWNlbnRlci1jb250YWluZXI7XHJcbiAgICBwYWRkaW5nOiAkcGFkZGluZy1jb250YWluZXI7XHJcbiAgICBtYXJnaW46IDAgYXV0bztcclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgn4omlZGVza3RvcCcpIHtcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDUwcHg7XHJcbiAgICAgICAgcGFkZGluZy1yaWdodDogNTBweDtcclxuICAgIH1cclxufVxyXG5cclxuLmxpc3QtY3VzdG9tIHtcclxuICAgIG1hcmdpbjogMzVweCAwIDM1cHggMTdweDtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICBsaXN0LXN0eWxlOiBub25lO1xyXG4gICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcclxuICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ+KJpXRhYmxldCcpIHtcclxuICAgICAgICBtYXJnaW46IDEwcHggMCAzMHB4O1xyXG4gICAgICAgIHBhZGRpbmc6IDAgMCAwIDIwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ+KJpWRlc2t0b3AnKSB7XHJcbiAgICAgICAgcGFkZGluZzogMTVweCAwIDAgMzdweDtcclxuICAgIH1cclxuXHJcbiAgICA+bGkge1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAyN3B4O1xyXG4gICAgICAgIG1pbi1oZWlnaHQ6IDE5cHg7XHJcbiAgICAgICAgXHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJ+KJpXRhYmxldCcpIHtcclxuICAgICAgICAgICAgbWluLWhlaWdodDogMjVweDtcclxuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAzOXB4O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgK2xpIHtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogMTNweDtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCfiiaV0YWJsZXQnKSB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiA4cHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgIHRvcDogMDtcclxuICAgICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICAgICAgd2lkdGg6IDE5cHg7XHJcbiAgICAgICAgICAgIGhlaWdodDogMTlweDtcclxuICAgICAgICAgICAgY29udGVudDogdXJsKFwiLi4vaW1hZ2VzL2J1bGV0LnN2Z1wiKTtcclxuXHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCfiiaV0YWJsZXQnKSB7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMjVweDtcclxuICAgICAgICAgICAgICAgIGhlaWdodDogMjVweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufSIsIltpZD1cImZvb3RlclwiXSB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBjb2xvcjogJHB1cnBsZTtcclxuICAgIGZvbnQtc2l6ZTogMTJweDtcclxuICAgIGxpbmUtaGVpZ2h0OiAxNHB4O1xyXG4gICAgcGFkZGluZzogNjBweCAwIDJweDtcclxuICAgIGJhY2tncm91bmQ6dXJsKFwiLi4vaW1hZ2VzL2JnLWZvb3Rlci5wbmdcIikgbm8tcmVwZWF0LCAgJGdyYXktODAwO1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDEwMCU7XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ+KJpXRhYmxldCcpIHtcclxuICAgICAgICBwYWRkaW5nOiA4MHB4IDAgMzBweDtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgn4omlZGVza3RvcCcpIHtcclxuICAgICAgICBwYWRkaW5nOiAxMzBweCAwIDMwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ+KJpXdpZGVzY3JlZW4nKSB7XHJcbiAgICAgICAgcGFkZGluZzogMTU2cHggMCA5NHB4O1xyXG4gICAgfVxyXG5cclxuICAgIGEge1xyXG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xyXG4gICAgICAgIHRyYW5zaXRpb246IGNvbG9yICRhbmltYXRpb24tc3BlZWQ7XHJcblxyXG4gICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuY29udGFpbmVyIHtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgei1pbmRleDogMTtcclxuICAgIH1cclxufVxyXG5cclxuLmZvb3Rlci10ZXh0IHtcclxuICAgIG1heC13aWR0aDogNzEwcHg7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBtYXJnaW46IDAgYXV0byA2MXB4O1xyXG5cclxuICAgIEBpbmNsdWRlIG1lZGlhKCfiiaV0YWJsZXQnKSB7XHJcbiAgICAgICAgbWFyZ2luOiAwIGF1dG8gNDdweDtcclxuICAgIH1cclxuXHJcbiAgICBwIHtcclxuICAgICAgICBtYXJnaW46IDAgMCAxLjJlbTtcclxuICAgIH1cclxufVxyXG5cclxuLmZvb3Rlci1tZW51IHtcclxuICAgIG1hcmdpbjogMCAwIDMwcHg7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgbGlzdC1zdHlsZTogbm9uZTtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIGNvbG9yOiAkd2hpdGU7XHJcblxyXG4gICAgPmxpIHtcclxuICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcclxuICAgICAgICAgICAgbWFyZ2luOiAwIDVweDtcclxuICAgICAgICAgICAgY29sb3I6ICR5ZWxsb3c7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcclxuICAgICAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBhIHtcclxuICAgICAgICBjb2xvcjogJHllbGxvdztcclxuXHJcbiAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLmZvb3Rlci1saXN0IHtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICBsaXN0LXN0eWxlOiBub25lO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcclxuICAgIGZsZXgtd3JhcDogd3JhcDtcclxuXHJcbiAgICA+bGkge1xyXG4gICAgICAgIG1heC13aWR0aDogMjcwcHg7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgcGFkZGluZzogMCAxMHB4IDQ2cHg7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCfiiaV0YWJsZXQnKSB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMTBweCAyMHB4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLmZvb3Rlci1saXN0LWl0ZW0ge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgZm9udC13ZWlnaHQ6ICRub3JtYWw7XHJcbiAgICBmb250LXNpemU6IDExcHg7XHJcbiAgICBsaW5lLWhlaWdodDogMTNweDtcclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgn4omldGFibGV0Jykge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcclxuICAgICAgICBsaW5lLWhlaWdodDogMTVweDtcclxuICAgIH1cclxuXHJcbiAgICBoNSB7XHJcbiAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRub3JtYWw7XHJcbiAgICAgICAgZm9udC1zaXplOiAxMXB4O1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxM3B4O1xyXG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xyXG5cclxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgn4omldGFibGV0Jykge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxNXB4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmX19pY29uIHtcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xyXG4gICAgICAgICAgICB3aWR0aDogNjBweDtcclxuICAgICAgICAgICAgbWluLXdpZHRoOiA2MHB4O1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGltZyB7XHJcbiAgICAgICAgbWF4LXdpZHRoOiBub25lO1xyXG4gICAgICAgIGhlaWdodDogNjBweDtcclxuICAgIH1cclxuXHJcbiAgICBwIHtcclxuICAgICAgICBtYXJnaW46IDA7XHJcbiAgICB9XHJcbn0iLCIvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4vLyBUaGlzIGZpbGUgY29udGFpbnMgYWxsIHN0eWxlcyByZWxhdGVkIHRvIHRoZSBidXR0b24gY29tcG9uZW50LlxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4uYnRuLmJ0biB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBwYWRkaW5nOiAkYnRuLXBhZGRpbmc7XHJcbiAgICBmb250LXNpemU6ICRidG4tZm9udC1zaXplO1xyXG4gICAgZm9udC13ZWlnaHQ6ICRib2xkO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgbGluZS1oZWlnaHQ6ICRidG4tbGluZS1oZWlnaHQ7XHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xyXG4gICAgdHJhbnNpdGlvbjogYWxsICRhbmltYXRpb24tc3BlZWQ7XHJcbiAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG5cclxuICAgIGJvcmRlcjoge1xyXG4gICAgICAgIHN0eWxlOiBzb2xpZDtcclxuICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgd2lkdGg6ICRidG4tYm9yZGVyLXdpZHRoO1xyXG4gICAgICAgIHJhZGl1czogJGJ0bi1ib3JkZXItcmFkaXVzO1xyXG4gICAgfVxyXG5cclxuICAgICYtLWRlZmF1bHQge1xyXG4gICAgICAgIGNvbG9yOiAkYnRuLWNvbG9yLWRlZmF1bHQ7XHJcbiAgICAgICAgYmFja2dyb3VuZDogJGJ0bi1iYWNrZ3JvdW5kLWRlZmF1bHQ7XHJcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkYnRuLWJvcmRlci1jb2xvci1kZWZhdWx0O1xyXG4gICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDAgI2ZiMWYxZjtcclxuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgICAgICBsaW5lLWhlaWdodDogMThweDtcclxuICAgICAgICBmb250LXdlaWdodDogJG5vcm1hbDtcclxuICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggMCByZ2JhKCNmZGQ5MGEsIDAuMyk7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCfiiaV0YWJsZXQnKSB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICBjb2xvcjogJGJ0bi1ob3Zlci1jb2xvci1kZWZhdWx0O1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkYnRuLWhvdmVyLWJhY2tncm91bmQtZGVmYXVsdDtcclxuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkYnRuLWhvdmVyLWJvcmRlci1jb2xvci1kZWZhdWx0O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmljb24ge1xyXG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYtLWFycm93IHtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICByaWdodDogLTI2cHg7XHJcbiAgICAgICAgICAgIHRvcDogNTAlO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMXB4O1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDE2cHg7XHJcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9hcnJvdy1sZWZ0LnBuZycpIG5vLXJlcGVhdDtcclxuICAgICAgICAgICAgYW5pbWF0aW9uOiBzaGlmdCAxLjhzIGxpbmVhciBpbmZpbml0ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi0tcHJpbWFyeSB7XHJcbiAgICAgICAgY29sb3I6ICRidG4tY29sb3ItcHJpbWFyeTtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAkYnRuLWJhY2tncm91bmQtcHJpbWFyeTtcclxuICAgICAgICBib3JkZXI6IDA7XHJcblxyXG4gICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICBjb2xvcjogJGJ0bi1ob3Zlci1jb2xvci1wcmltYXJ5O1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkYnRuLWhvdmVyLWJhY2tncm91bmQtcHJpbWFyeTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi0tc2Vjb25kYXJ5IHtcclxuICAgICAgICBjb2xvcjogJGJ0bi1jb2xvci1zZWNvbmRhcnk7XHJcbiAgICAgICAgYmFja2dyb3VuZDogJGJ0bi1iYWNrZ3JvdW5kLXNlY29uZGFyeTtcclxuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgICAgICBsaW5lLWhlaWdodDogMThweDtcclxuICAgICAgICBmb250LXdlaWdodDogJG5vcm1hbDtcclxuICAgICAgICBib3JkZXI6IDA7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCfiiaV0YWJsZXQnKSB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICBjb2xvcjogJGJ0bi1ob3Zlci1jb2xvci1zZWNvbmRhcnk7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRidG4taG92ZXItYmFja2dyb3VuZC1zZWNvbmRhcnk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYtLXNtIHtcclxuICAgICAgICBwYWRkaW5nOiAkYnRuLXBhZGRpbmctc207XHJcbiAgICAgICAgZm9udC1zaXplOiAkYnRuLWZvbnQtc2l6ZS1zbTtcclxuICAgICAgICBsaW5lLWhlaWdodDogJGJ0bi1saW5lLWhlaWdodC1zbTtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiAkYnRuLWJvcmRlci1yYWRpdXMtc207XHJcbiAgICB9XHJcblxyXG4gICAgJi0tbGcge1xyXG4gICAgICAgIHBhZGRpbmc6ICRidG4tcGFkZGluZy1sZztcclxuICAgICAgICBmb250LXNpemU6IDE4cHg7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRidG4tbGluZS1oZWlnaHQtbGc7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJGJ0bi1ib3JkZXItcmFkaXVzLWxnO1xyXG4gICAgICAgIG1pbi13aWR0aDogMjU2cHg7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCfiiaVwaG9uZScpIHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAkYnRuLWZvbnQtc2l6ZS1sZztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmljb24tcGhvbmVfZmxpcF9pY29uIHtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgbWFyZ2luOiAwIDVweCAwIDA7XHJcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoLTEpO1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICB0b3A6IDFweDtcclxuICAgIH1cclxuXHJcbiAgICAuaWNvbi1iaXRjb2luLW1vbmV5LWNyeXB0b2N1cnJlbmN5LXN2Z3JlcG8tY29tIHtcclxuICAgICAgICBtYXJnaW46IDAgMCAwIDVweDtcclxuICAgICAgICBmb250LXNpemU6IDIycHg7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE3cHg7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIHRvcDogNXB4O1xyXG4gICAgfVxyXG59XHJcblxyXG4uYnRuLXByZW1pdW0ge1xyXG4gICAgbWluLXdpZHRoOiAyMDVweDtcclxuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICBib3JkZXItcmFkaXVzOiA5cHg7XHJcbiAgICBwYWRkaW5nOiAycHg7XHJcbiAgICBmb250LXdlaWdodDogJG5vcm1hbDtcclxuICAgIGNvbG9yOiAkeWVsbG93O1xyXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjYzM1YWY0IDAlLCAjZmNjNzBjIDI1JSwgI2MzNWFmNCA1MCUsICNmY2M3MGMgNzUlLCAjYzM1YWY0IDEwMCUpO1xyXG4gICAgYmFja2dyb3VuZC1zaXplOiA0MDAlIDQwMCU7XHJcbiAgICBhbmltYXRpb246IGdyYWRpZW50IDZzIGluZmluaXRlO1xyXG5cclxuICAgID5zcGFuIHtcclxuICAgICAgICBwYWRkaW5nOiAkYnRuLXBhZGRpbmc7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XHJcbiAgICAgICAgYmFja2dyb3VuZDogJHZpb2xldDtcclxuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgJGFuaW1hdGlvbi1zcGVlZDtcclxuICAgIH1cclxuXHJcbiAgICAuaWNvbiB7XHJcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgICAgICBtYXJnaW46IDAgOHB4IDAgMDtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICB3aWR0aDogMTZweDtcclxuXHJcbiAgICAgICAgc3ZnIHtcclxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICY6Zm9jdXMsXHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgICBjb2xvcjogJHllbGxvdztcclxuXHJcbiAgICAgICAgPnNwYW4ge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkdmlvbGV0LTE7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4uYnRuLXdhdGNoIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGdhcDogMTVweDtcclxuICAgIGJhY2tncm91bmQ6ICR2aW9sZXQtMjtcclxuICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICBwYWRkaW5nOiA3cHggMTNweDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDk5cHg7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkdmlvbGV0LTE7XHJcbiAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICBsaW5lLWhlaWdodDogMTtcclxuICAgIG1pbi13aWR0aDogMTc5cHg7XHJcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kICRhbmltYXRpb24tc3BlZWQ7XHJcblxyXG4gICAgLmljb24ge1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICB3aWR0aDogMzZweDtcclxuICAgICAgICBhbmltYXRpb246IHNoaWZ0IDJzIGluZmluaXRlO1xyXG4gICAgfVxyXG5cclxuICAgICY6aG92ZXIsXHJcbiAgICAmOmZvY3VzIHtcclxuICAgICAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICR2aW9sZXQ7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5idG4tZ3JvdXAge1xyXG4gICAgbWFyZ2luOiAwIC01cHggLTEwcHg7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC13cmFwOiB3cmFwO1xyXG5cclxuICAgIC5idG4ge1xyXG4gICAgICAgIG1hcmdpbjogMCA1cHggMTBweDtcclxuICAgIH1cclxufVxyXG5cclxuQGtleWZyYW1lcyBzaGlmdCB7XHJcbiAgICAwJSB7XHJcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xyXG4gICAgfVxyXG5cclxuICAgIDUwJSB7XHJcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjkpO1xyXG4gICAgfVxyXG5cclxuICAgIDEwMCUge1xyXG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcclxuICAgIH1cclxufVxyXG5cclxuQGtleWZyYW1lcyBncmFkaWVudCB7XHJcbiAgICAwJSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCUgNTAlO1xyXG4gICAgfVxyXG4gICAgNTAlIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIDUwJTtcclxuICAgIH1cclxuICAgIDEwMCUge1xyXG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAlIDUwJTtcclxuICAgIH1cclxufSIsIi50cmFpbGVyIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICBwYWRkaW5nLXRvcDogMzc1cHg7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogY2FsYyg2M3B4ICsgKDgwIC0gNjMpICogKCgxMDB2dyAtIDM2MHB4KSAvICgxMzAwIC0gMzYwKSkpO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG5cclxuICAgIEBpbmNsdWRlIG1lZGlhKCfiiaVwaG9uZScpIHtcclxuICAgICAgICBwYWRkaW5nLXRvcDogODB2dztcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgn4omldGFibGV0Jykge1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiA2MHZ3O1xyXG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ+KJpXdpZGVzY3JlZW4nKSB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDU3M3B4O1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA4MHB4O1xyXG4gICAgfVxyXG5cclxuICAgICZfX2ltYWdlIHtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgaW5zZXQ6IDA7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIFxyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCfiiaV0YWJsZXQnKSB7XHJcbiAgICAgICAgICAgIGluc2V0OiAwIC00MHZ3O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJ+KJpXdpZGVzY3JlZW4nKSB7XHJcbiAgICAgICAgICAgIGluc2V0OiAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaW1nIHtcclxuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG5cclxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJ+KJpXBob25lJykge1xyXG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgn4omldGFibGV0Jykge1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJl9fY29udGVudCB7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIHotaW5kZXg6IDE7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgXHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJ+KJpXRhYmxldCcpIHtcclxuICAgICAgICAgICAgbWF4LXdpZHRoOiA1NjBweDtcclxuICAgICAgICAgICAgd2lkdGg6IDUwJTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJl9fdGV4dCB7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMzdweDtcclxuICAgICAgICBcclxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgn4omldGFibGV0Jykge1xyXG4gICAgICAgICAgICB3aWR0aDogOTAlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufSIsIi51cGdyYWRlIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICBiYWNrZ3JvdW5kOiAkZ3JheS04MDA7XHJcbiAgICBwYWRkaW5nLXRvcDogODB2dztcclxuICAgIHBhZGRpbmctYm90dG9tOiA2MHB4O1xyXG5cclxuICAgIEBpbmNsdWRlIG1lZGlhKCfiiaV0YWJsZXQnKSB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDcwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ+KJpWRlc2t0b3AnKSB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDE4MnB4O1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAxODBweDtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgn4omld2lkZXNjcmVlbicpIHtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMjM1cHg7XHJcbiAgICB9XHJcblxyXG4gICAgJl9faW1hZ2Uge1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICBpbnNldDogMDtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgXHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJ+KJpXRhYmxldCcpIHtcclxuICAgICAgICAgICAgaW5zZXQ6IDAgLTI1dnc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgn4omld2lkZXNjcmVlbicpIHtcclxuICAgICAgICAgICAgaW5zZXQ6IDA7XHJcbiAgICAgICAgICAgIHRvcDogLTM2cHg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpbWcge1xyXG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICAgICAgICAgIG1heC13aWR0aDogbm9uZTtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcblxyXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgn4omlcGhvbmUnKSB7XHJcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCfiiaV0YWJsZXQnKSB7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmX19jb250ZW50IHtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgei1pbmRleDogMTtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgbWF4LXdpZHRoOiAzNzBweDtcclxuICAgICAgICBtYXJnaW46IDAgYXV0bztcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJ+KJpXRhYmxldCcpIHtcclxuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICAgICAgICBtYXgtd2lkdGg6IDM3JTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn0iLCIubW9kZWxzIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICBiYWNrZ3JvdW5kOiAkZ3JheS04MDA7XHJcbiAgICBwYWRkaW5nOiA2MHB4IDAgNjBweDtcclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgn4omldGFibGV0Jykge1xyXG4gICAgICAgIHBhZGRpbmc6IDYwcHggMCA4MHB4O1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIG1lZGlhKCfiiaVkZXNrdG9wJykge1xyXG4gICAgICAgIHBhZGRpbmc6IDEzOHB4IDAgMTA5cHg7XHJcbiAgICB9XHJcblxyXG4gICAgJl9faW1hZ2Uge1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICBpbnNldDogMDtcclxuICAgICAgICBcclxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgn4omldGFibGV0Jykge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XHJcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgICAgICBpbnNldDogMCAtMjV2dztcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJ+KJpWRlc2t0b3AnKSB7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCfiiaV3aWRlc2NyZWVuJykge1xyXG4gICAgICAgICAgICBpbnNldDogMDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGltZyB7XHJcbiAgICAgICAgICAgIGhlaWdodDogYXV0bztcclxuICAgICAgICAgICAgbWF4LXdpZHRoOiBub25lO1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuXHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCfiiaVwaG9uZScpIHtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJ+KJpXRhYmxldCcpIHtcclxuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgICAgICAgICAgICAgLy8gb2JqZWN0LWZpdDogY292ZXI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJl9fY29udGFpbmVyIHtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XHJcbiAgICAgICAgXHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJ+KJpXRhYmxldCcpIHtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgICAgICAgICAgbWF4LXdpZHRoOiA0OSU7XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICZfX2Zvb3RlciB7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgZ2FwOiAzNnB4O1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgICAgICBsaW5lLWhlaWdodDogY2FsYygxNyAvIDE0KTtcclxuICAgICAgICBtYXgtd2lkdGg6IDEwMTBweDtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCfiiaV0YWJsZXQnKSB7XHJcbiAgICAgICAgICAgIGdhcDogMzBweDtcclxuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogY2FsYygxOSAvIDE2KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHAge1xyXG4gICAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGgyIHtcclxuICAgICAgICBtYXJnaW46IDAgMCAyLjJlbTtcclxuICAgICAgICBmb250LXdlaWdodDogJGJsYWNrLWZvbnQ7XHJcbiAgICAgICAgZm9udC1zaXplOiBjYWxjKDI0cHggKyAoNDggLSAyNCkgKiAoKDEwMHZ3IC0gMzYwcHgpIC8gKDEzMDAgLSAzNjApKSk7XHJcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgICBsaW5lLWhlaWdodDogY2FsYygyOS8yNCk7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCfiiaV0YWJsZXQnKSB7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMCAwIDEuNWVtO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJ+KJpXdpZGVzY3JlZW4nKSB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogNDhweDtcclxuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5saXN0LW1vZGVscyB7XHJcbiAgICAgICAgbWF4LXdpZHRoOiA0NSU7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCfiiaV0YWJsZXQnKSB7XHJcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5saXN0LW1vZGVscyB7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgbGlzdC1zdHlsZTogbm9uZTtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICBmbGV4LXdyYXA6IHdyYXA7XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ+KJpWRlc2t0b3AnKSB7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0zNHB4O1xyXG4gICAgfVxyXG5cclxuICAgID4gbGkge1xyXG4gICAgICAgIHdpZHRoOiA1MCU7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4O1xyXG5cclxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgn4omldGFibGV0Jykge1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xyXG4gICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlIC8gMyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgn4omlZGVza3RvcCcpIHtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNjFweDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5tb2RlbCB7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG4gICAgJl9fbmFtZSB7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgbWFyZ2luOiAwIDAgMnB4O1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTBweDtcclxuICAgICAgICBsaW5lLWhlaWdodDogMTtcclxuICAgICAgICBjb2xvcjogJHdoaXRlO1xyXG5cclxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgn4omldGFibGV0Jykge1xyXG4gICAgICAgICAgICBtYXJnaW46IDAgMCAxMXB4O1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICZfX2F2YXRhciB7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XHJcbiAgICAgICAgd2lkdGg6IDYycHg7XHJcbiAgICAgICAgaGVpZ2h0OiA2MnB4O1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG5cclxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgn4omlcGhvbmUnKSB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDBweDtcclxuICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJ+KJpWRlc2t0b3AnKSB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMzBweDtcclxuICAgICAgICAgICAgaGVpZ2h0OiAxMzBweDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGltZyB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgbWF4LXdpZHRoOiBub25lO1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xyXG4gICAgICAgICAgICBvYmplY3QtcG9zaXRpb246IDUwJSA1MCU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59IiwiLnZpZGVvLXBsYXlpbmcge1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxufVxyXG5cclxuI3ZpZGVvIHtcclxuICAgIG1heC13aWR0aDogODB2dztcclxuICAgIG1heC1oZWlnaHQ6IDgwdmg7XHJcbiAgICBib3JkZXItcmFkaXVzOiA5cHg7XHJcbn1cclxuXHJcbi52aWRlby1mdWxsLXBhZ2Uge1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgcGFkZGluZzogMzBweDtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBpbnNldDogMDtcclxuICAgIHotaW5kZXg6IDk5OTk7XHJcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKCR2aW9sZXQsIDAuOTUpO1xyXG4gICAgdHJhbnNpdGlvbjogYWxsICRhbmltYXRpb24tc3BlZWQ7XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ+KJpXRhYmxldCcpIHtcclxuICAgICAgICBwYWRkaW5nOiA2MHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC52aWRlby1zdG9wICYsXHJcbiAgICAudmlkZW8tZW5kICYge1xyXG4gICAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xyXG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gICAgfVxyXG59XHJcblxyXG4udmlkZW8tYnV0dG9ucyB7XHJcbiAgICBwYWRkaW5nOiA1cHggMDtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGdhcDogMTBweDtcclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgn4omldGFibGV0Jykge1xyXG4gICAgICAgIHBhZGRpbmc6IDEwcHggMDtcclxuICAgIH1cclxufVxyXG5cclxuLmdldCxcclxuLnN0b3AtYnV0dG9uIHtcclxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gICAgY29sb3I6ICR3aGl0ZTtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICBib3JkZXI6IDA7XHJcbiAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICBsaW5lLWhlaWdodDogMS4yO1xyXG5cclxuICAgIEBpbmNsdWRlIG1lZGlhKCfiiaV0YWJsZXQnKSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgfVxyXG5cclxuICAgICY6aG92ZXIge1xyXG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gICAgfVxyXG59XHJcblxyXG4uZ2V0IHtcclxuICAgIGNvbG9yOiAkeWVsbG93O1xyXG5cclxuICAgICY6Zm9jdXMsXHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgICBjb2xvcjogJHllbGxvdztcclxuICAgIH1cclxufSJdfQ== */
