@charset "UTF-8";
/* _theme-init.scss */
/*------------------------------------*    #BOX-SIZING
\*------------------------------------*/
/**
 * Set the global `box-sizing` state to `border-box`.
 *
 * css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice
 * paulirish.com/2012/box-sizing-border-box-ftw
 */
html {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box; }

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

/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
/**
 * 1. Set default font family to sans-serif.
 * 2. Prevent iOS and IE text size adjust after device orientation change,
 *    without disabling user zoom.
 */
html {
  font-family: sans-serif;
  /* 1 */
  -ms-text-size-adjust: 100%;
  /* 2 */
  -webkit-text-size-adjust: 100%;
  /* 2 */ }

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

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

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

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

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

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

/**
 * Improve readability of focused elements when they are also in an
 * active/hover state.
 */
a:active,
a:hover {
  outline: 0; }

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

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

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

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

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

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

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

sup {
  top: -0.5em; }

sub {
  bottom: -0.25em; }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

td,
th {
  padding: 0; }

/* _theme-commons.scss */
/* objects//material-design-icons/_material-icons.scss */
/* objects/_box-shadows.scss */
/* _elements.scss */
html {
  font-size: 93.75%;
  color: black;
  overflow-y: scroll;
  min-height: 100%;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased; }
  @media (min-width: 38em) {
    html {
      font-size: 100%; } }

@media (min-width: 62em) {
  body {
    background-color: #f2f2f2; } }

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

h1,
h2,
h3,
h4,
h5,
h6,
p,
ul,
ol,
dl,
pre,
table,
fieldset,
form details,
blockquote,
object,
iframe,
pre,
address,
code,
dl,
dt,
dd,
embed,
audio,
video {
  font-size: 1em;
  line-height: 1.5625em;
  margin: 0 0 1em 0; }

strong, b {
  font-weight: 600; }

em {
  font-style: italic; }

a {
  color: #c2002f;
  transition: color 0.3s ease-out; }
  a:hover {
    text-decoration: none; }

@media (min-width: 56em) {
  p {
    font-size: 1.5em;
    margin-bottom: 1.5625em; } }

ul.bullets, ol.bullets {
  font-size: 1.125em; }
  ul.bullets li, ol.bullets li {
    margin-left: 3.05176em;
    color: #595959; }

/* Set consistent quote types. */
q {
  quotes: "\201C" "\201D" "\2018" "\2019"; }

h1, h2, h3, h4, h5, h6 {
  font-weight: 400;
  font-family: "Raleway", Arial, sans-serif; }
  h1 b, h1 strong, h2 b, h2 strong, h3 b, h3 strong, h4 b, h4 strong, h5 b, h5 strong, h6 b, h6 strong {
    font-weight: 400; }

h1 {
  text-transform: lowercase;
  font-size: 2.44141em;
  font-weight: 400;
  line-height: 1.25em;
  margin-top: 0.64em;
  margin-bottom: 0;
  padding-left: 0.64em;
  padding-right: 0.64em; }
  @media (min-width: 38em) {
    h1 {
      font-size: 3.8147em;
      font-weight: 300;
      line-height: 1em;
      padding-left: 0.8em;
      padding-right: 0.8em; } }
  @media (min-width: 62em) {
    h1 {
      background-color: #212121;
      font-weight: 400;
      color: white;
      margin-top: 0;
      padding-top: 1em;
      padding-bottom: 1em; } }

h2 {
  font-size: 1.95312em;
  margin-top: 0;
  padding-top: 0;
  line-height: 1em;
  font-weight: 300; }
  @media (min-width: 48em) {
    h2 {
      font-size: 3.05176em; } }
  h2 a {
    color: #212121; }

h3 {
  font-size: 1.95312em;
  color: #c2002f;
  margin-bottom: 0.64em;
  line-height: 1.25em;
  font-weight: 300; }
  @media (min-width: 38em) {
    h3 {
      font-size: 1.5625em; } }
  h3 a {
    color: #212121; }

h4 {
  font-size: 1em;
  margin-bottom: 0.64em;
  line-height: 1.25em;
  font-weight: 700; }
  @media (min-width: 38em) {
    h4 {
      font-size: 1.25em; } }

h5 {
  font-weight: 700;
  margin-bottom: 0; }

h6 {
  font-size: 0.8em;
  margin-bottom: 0;
  text-transform: uppercase;
  font-weight: 700; }

sup {
  vertical-align: super;
  font-size: smaller; }

sub {
  font-size: smaller;
  vertical-align: sub; }

blockquote {
  padding: 0 0.8em 0 1.25em; }
  blockquote p {
    font-size: 1.25em;
    line-height: 1.5625em; }
    @media (min-width: 38em) {
      blockquote p {
        line-height: 1.25em; } }
    blockquote p:last-child {
      margin-bottom: 0; }

label {
  margin-bottom: 0.64em;
  font-weight: 700; }

input,
textarea {
  margin: 0; }

textarea {
  vertical-align: top; }

table {
  width: 100%; }
  table p, table ul {
    margin: 0;
    padding: 0; }
  table tbody {
    border: none; }
  table th, table td {
    padding: 1.25em 0.512em;
    border: none;
    vertical-align: top;
    font-size: 0.8em; }
    @media (min-width: 48em) {
      table th, table td {
        font-size: 1em;
        line-height: 1.25em; } }
  table tr.odd {
    background-color: white; }
  table tr:nth-child(odd) {
    background-color: white; }
  table tr.even {
    background-color: #fafafa; }
  table tr:nth-child(even) {
    background-color: #fafafa; }
  table th,
  table thead th {
    background-color: white;
    border-bottom: 1px solid #f2f2f2; }
  table caption {
    caption-side: bottom; }

.context-manifesto ul {
  padding: 0; }

ul li, ol li {
  margin: 0 0 0.512em 0; }

.toolbar ul li.menu-item {
  margin-bottom: 0; }

ul {
  /*padding: 0;*/ }
  ul li {
    list-style: disc; }

ol {
  padding-left: 1.25em; }
  ol li {
    list-style: decimal; }

img {
  opacity: 1;
  transition: opacity 0.3s ease-out; }

a img {
  transform: rotate(0);
  -webkit-backface-visibility: hidden; }

a img:hover {
  opacity: .75; }

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

#block-de-theme-pagelink a:hover {
  color: #000 !important; }

/* _drupal.scss */
/* drupal/_forms.scss */
#block-webform-2 {
  margin-bottom: 20px; }

#block-webform-2 label {
  font-weight: normal; }

.form-actions input[type="submit"] {
  background-color: #C2002F;
  border: 0px;
  color: #ffffff;
  padding: 12px;
  margin-bottom: 12px; }

.webform-flex--container > .form-item > input, .webform-flex--container > .form-item > select {
  width: 100%;
  padding: 0.5em; }

/* drupal/_messages.scss */
div.messages {
  margin: 0;
  padding: 0;
  margin-bottom: 1em;
  padding: 0.64em 0.64em 0.64em 3.05176em;
  background-image: none;
  border: none;
  position: relative;
  line-height: 1.95312em;
  border-radius: 2px; }
  @media (min-width: 38em) {
    div.messages {
      font-size: 1em;
      line-height: 1.5625em; } }
  div.messages:before {
    font-size: 18px;
    position: absolute;
    left: 0.512em;
    top: 0.4096em; }

div.status {
  background-color: #DCEDC8;
  color: #33691E; }
  div.status::before {
    color: rgba(0, 0, 0, 0.54);
    font-family: 'Material Icons';
    font-weight: normal;
    font-style: normal;
    font-size: 24px;
    /* Preferred icon size */
    display: inline-block;
    width: 1em;
    height: 1em;
    line-height: 1;
    text-transform: none;
    letter-spacing: normal;
    word-wrap: normal;
    white-space: nowrap;
    direction: ltr;
    vertical-align: bottom;
    /* Support for all WebKit browsers. */
    -webkit-font-smoothing: antialiased;
    /* Support for Safari and Chrome. */
    text-rendering: optimizeLegibility;
    /* Support for Firefox. */
    -moz-osx-font-smoothing: grayscale;
    /* Support for IE. */
    font-feature-settings: 'liga';
    content: "check_circle";
    color: #33691E; }

div.warning {
  background-color: #FFF9C4;
  color: #827717; }
  div.warning::before {
    color: rgba(0, 0, 0, 0.54);
    font-family: 'Material Icons';
    font-weight: normal;
    font-style: normal;
    font-size: 24px;
    /* Preferred icon size */
    display: inline-block;
    width: 1em;
    height: 1em;
    line-height: 1;
    text-transform: none;
    letter-spacing: normal;
    word-wrap: normal;
    white-space: nowrap;
    direction: ltr;
    vertical-align: bottom;
    /* Support for all WebKit browsers. */
    -webkit-font-smoothing: antialiased;
    /* Support for Safari and Chrome. */
    text-rendering: optimizeLegibility;
    /* Support for Firefox. */
    -moz-osx-font-smoothing: grayscale;
    /* Support for IE. */
    font-feature-settings: 'liga';
    content: "warning";
    color: #827717; }

div.error {
  background-color: #FCE4EC;
  color: #B71C1C; }
  div.error::before {
    color: rgba(0, 0, 0, 0.54);
    font-family: 'Material Icons';
    font-weight: normal;
    font-style: normal;
    font-size: 24px;
    /* Preferred icon size */
    display: inline-block;
    width: 1em;
    height: 1em;
    line-height: 1;
    text-transform: none;
    letter-spacing: normal;
    word-wrap: normal;
    white-space: nowrap;
    direction: ltr;
    vertical-align: bottom;
    /* Support for all WebKit browsers. */
    -webkit-font-smoothing: antialiased;
    /* Support for Safari and Chrome. */
    text-rendering: optimizeLegibility;
    /* Support for Firefox. */
    -moz-osx-font-smoothing: grayscale;
    /* Support for IE. */
    font-feature-settings: 'liga';
    content: "error";
    color: #B71C1C; }

/* drupal/_system-theme.scss */
.item-list ul {
  margin: 0;
  padding: 0; }
  .item-list ul li {
    margin: 0;
    padding: 0;
    list-style-image: none;
    list-style-type: none;
    list-style: none;
    margin-left: 0; }

.links.inline {
  margin: 0;
  padding: 0;
  list-style-image: none;
  list-style-type: none;
  list-style: none;
  margin-left: 0; }

.form-item,
.form-actions {
  margin: 0; }

.form-item {
  margin-bottom: 1em; }

.form-item .description {
  font: inherit;
  font-size: 100%;
  vertical-align: baseline;
  margin-top: 0.4096em;
  font-size: 0.8em; }

.form-checkboxes .form-item,
.form-radios .form-item {
  margin-top: 0;
  margin-bottom: 0; }

.form-type-radio .description,
.form-type-checkbox .description {
  margin-left: 1.5625em; }

/* drupal/_tabs.scss */
ul.tabs {
  list-style-type: none;
  padding: 0;
  margin: 0;
  overflow: hidden;
  margin-bottom: 1.25em;
  margin-top: 1.25em;
  border-bottom: 5px solid black; }
  ul.tabs > li {
    display: block;
    float: left; }
    ul.tabs > li:last-child {
      margin-right: 0; }
  ul.tabs li {
    margin: 0;
    padding: 0; }
  ul.tabs a {
    background-color: gray;
    color: white;
    text-transform: uppercase;
    transition: background-color 0.3s ease-out;
    display: block;
    float: left;
    font-weight: 700;
    font-size: 0.8em;
    padding-top: 0.26214em;
    padding-left: 0.64em;
    padding-right: 0.64em;
    margin: 0;
    margin-right: 0.26214em;
    text-decoration: none; }
    ul.tabs a.active {
      background-color: black;
      color: white; }
    ul.tabs a:hover {
      background-color: #eee;
      color: black; }
    ul.tabs a:active {
      background-color: black;
      color: white; }
  ul.tabs li:last-child a {
    margin-right: 0; }

/* _layout.scss */
body.toolbar-tray-open.toolbar-vertical.toolbar-fixed {
  margin-left: 0; }

.layout-container {
  position: relative;
  background-color: white; }
  .layout-container:after {
    content: "";
    display: table;
    clear: both; }
  @media (min-width: 56em) {
    .layout-container {
      max-width: 992px;
      margin-left: 240px; } }
  @media (min-width: 74.25em) {
    .layout-container {
      margin-left: 20%; } }

.path-frontpage {
  background-color: black; }
  .path-frontpage .layout-container {
    margin-right: 0;
    max-width: none; }

.layoutSlide {
  position: absolute;
  left: 50%;
  top: 0;
  width: 100%; }
  @media (min-width: 56em) {
    .layoutSlide {
      position: initial; } }

/*  @main layout regions
========================================================================== */
/* layout/_header.scss */
/* @header section */
#header {
  background-color: #c2002f;
  -ms-overflow-style: none;
  -webkit-overflow-style: none;
  overflow-style: none;
  -moz-overflow-style: none; }
  @media (min-width: 56em) {
    #header {
      z-index: 5;
      position: fixed;
      left: 0;
      top: 0;
      bottom: 0;
      width: 240px;
      overflow: auto; } }
  @media (min-width: 74.25em) {
    #header {
      width: 20%; } }

::-webkit-scrollbar {
  display: none; }

.user-logged-in #header {
  padding-top: 40px; }

.user-logged-in.toolbar-tray-open #header {
  padding-top: 87px; }

@media (min-width: 38em) {
  #masthead .layout-container {
    padding: 0.8em 1em; } }

@media (min-width: 48em) {
  #masthead .layout-container {
    padding: 1.25em 1em; } }

@media (min-width: 38em) {
  #masthead .layout-container .region {
    display: inline-block;
    vertical-align: middle;
    margin-left: -4px; } }

#masthead .region--masthead-primary .region-inner {
  position: relative;
  padding-left: 1.25em;
  padding-right: 1.25em;
  padding-bottom: 0.8em;
  padding-top: 0.8em; }
  @media (min-width: 38em) and (max-width: 56em) {
    #masthead .region--masthead-primary .region-inner {
      padding-left: 1.95312em;
      padding-right: 1.95312em; } }

#masthead .region--masthead-secondary .region-inner {
  line-height: 0; }

@media (min-width: 38em) {
  #masthead .region--masthead-secondary {
    text-align: right;
    width: 76.59574%; } }

@media (min-width: 48em) {
  #masthead .region--masthead-secondary {
    width: 68.08511%; } }

@media (min-width: 56em) {
  #masthead .region--masthead-secondary {
    position: relative; } }

.region-navigation {
  padding-top: 0.8em;
  padding-bottom: 0.8em; }

/* layout/_content.scss */
/* @content section */
.context-connect .connect-details .location-details p {
  margin-top: 1em; }
  .context-connect .connect-details .location-details p:first-child {
    margin-top: 0; }

.section-content {
  margin: 0 0 0 0;
  position: relative;
  background-color: white;
  /*padding: ms() 0;*/ }
  .section-content:after {
    content: "";
    display: table;
    clear: both; }

#main {
  margin-bottom: 0;
  background-color: white; }

.path-frontpage .region {
  padding: 0 !important; }

.no-sidebars #main {
  border: 1px solid #f2f2f2; }

#sidebar-first {
  margin-bottom: 1em; }

@media (min-width: 56em) {
  .one-sidebar.sidebar-first #sidebar-first {
    width: 31.91489%;
    float: left;
    margin-right: -100%;
    margin-left: 0;
    clear: none; } }

@media (min-width: 56em) {
  .one-sidebar.sidebar-first #main {
    width: 65.95745%;
    float: right;
    margin-left: 0;
    margin-right: 0;
    clear: none; } }

@media (min-width: 56em) {
  .one-sidebar.sidebar-second #sidebar-second {
    width: 31.91489%;
    float: right;
    margin-left: 0;
    margin-right: 0;
    clear: none; } }

@media (min-width: 56em) {
  .one-sidebar.sidebar-second #main {
    width: 65.95745%;
    float: left;
    margin-right: -100%;
    margin-left: 0;
    clear: none; } }

@media (min-width: 56em) {
  .two-sidebars #sidebar-first {
    width: 31.91489%;
    float: left;
    margin-right: -100%;
    margin-left: 0;
    clear: none; } }

@media (min-width: 62em) {
  .two-sidebars #sidebar-first {
    width: 23.40426%;
    float: left;
    margin-right: -100%;
    margin-left: 0;
    clear: none; } }

@media (min-width: 56em) {
  .two-sidebars #main {
    width: 65.95745%;
    float: right;
    margin-left: 0;
    margin-right: 0;
    clear: none; } }

@media (min-width: 62em) {
  .two-sidebars #main {
    width: 48.93617%;
    float: left;
    margin-right: -100%;
    margin-left: 25.53191%;
    clear: none; } }

@media (min-width: 56em) {
  .two-sidebars #sidebar-second {
    clear: both; } }

@media (min-width: 62em) {
  .two-sidebars #sidebar-second {
    width: 23.40426%;
    float: right;
    margin-left: 0;
    margin-right: 0;
    clear: none; } }

/*  @region main prefix */
.region-main-prefix {
  padding: 0.4096em 0; }

/*  @region main suffix */
.region-main-suffix {
  margin-bottom: 1em; }

.path-frontpage .region--content {
  background: #000;
  color: #fff; }

.path-frontpage .node__submitted {
  display: none; }

.path-frontpage .youtube-container {
  margin: 0 !important;
  width: 100%;
  height: 100%;
  background: #000;
  position: relative;
  top: 0;
  left: 0;
  z-index: -1; }
  .path-frontpage .youtube-container iframe {
    display: none; }
    @media (min-width: 62em) {
      .path-frontpage .youtube-container iframe {
        display: block;
        height: 1281px;
        width: 2276px;
        position: absolute;
        top: 0;
        left: -156px;
        overflow: hidden; } }

.path-frontpage #homewrap {
  background: none;
  width: 80vw;
  height: 100vh;
  position: absolute;
  top: 0;
  left: 0;
  overflow: hidden; }

.visually-hidden.skip-link {
  color: #757575; }

/**
 * Hide visually and from screen readers, noscript for Google Tag.
 */
body noscript {
  color: #757575; }

/* layout/_footer.scss */
/* @footer section */
.layout {
  margin: 1rem; }
  .layout .layout__region {
    padding: 0 1rem; }
    .layout .layout__region .block-layout-builder {
      margin: 1rem 0; }
  .layout .block-inline-blockbutton {
    width: 100%;
    text-align: center; }
    .layout .block-inline-blockbutton a {
      background-color: #c2002f;
      color: white;
      padding: 0.8em 1.5625em;
      font-size: 1.25em;
      border: none;
      display: inline-block;
      text-transform: lowercase;
      text-align: center;
      position: relative;
      overflow: hidden;
      padding: 0.512em 1.25em;
      text-decoration: none;
      border-radius: 50px;
      transition: background-color .3s ease-out, border-color .3s ease-out;
      margin-right: 1em;
      -webkit-tap-highlight-color: transparent;
      outline: none; }

/* _objects.scss */
/* objects/_button.scss */
.btn, .path-islandora-blog .layout-container .view-content .views-row .node-readmore a, .path-islandora-blog .layout-container article.node--view-mode-full .views-row .node-readmore a, .node--type-article .layout-container .view-content .views-row .node-readmore a, .node--type-article .layout-container article.node--view-mode-full .views-row .node-readmore a {
  border: none;
  display: inline-block;
  text-transform: lowercase;
  text-align: center;
  position: relative;
  overflow: hidden;
  padding: 0.512em 1.25em;
  text-decoration: none;
  border-radius: 50px;
  transition: background-color .3s ease-out, border-color .3s ease-out;
  margin-right: 1em;
  -webkit-tap-highlight-color: transparent;
  outline: none; }
  @media (min-width: 38em) {
    .btn, .path-islandora-blog .layout-container .view-content .views-row .node-readmore a, .path-islandora-blog .layout-container article.node--view-mode-full .views-row .node-readmore a, .node--type-article .layout-container .view-content .views-row .node-readmore a, .node--type-article .layout-container article.node--view-mode-full .views-row .node-readmore a {
      padding: 0.8em 1.5625em;
      font-size: 1.25em; } }

.btn-primary, .path-islandora-blog .layout-container .view-content .views-row .node-readmore a, .path-islandora-blog .layout-container article.node--view-mode-full .views-row .node-readmore a, .node--type-article .layout-container .view-content .views-row .node-readmore a, .node--type-article .layout-container article.node--view-mode-full .views-row .node-readmore a {
  background-color: #c2002f;
  color: white; }
  .btn-primary:hover, .path-islandora-blog .layout-container .view-content .views-row .node-readmore a:hover, .path-islandora-blog .layout-container article.node--view-mode-full .views-row .node-readmore a:hover, .node--type-article .layout-container .view-content .views-row .node-readmore a:hover, .node--type-article .layout-container article.node--view-mode-full .views-row .node-readmore a:hover, .btn-primary:focus, .path-islandora-blog .layout-container .view-content .views-row .node-readmore a:focus, .path-islandora-blog .layout-container article.node--view-mode-full .views-row .node-readmore a:focus, .node--type-article .layout-container .view-content .views-row .node-readmore a:focus, .node--type-article .layout-container article.node--view-mode-full .views-row .node-readmore a:focus {
    background-color: #9b0026; }

.btn-secondary {
  border: 1px solid #212121; }
  .btn-secondary:hover, .btn-secondary:focus {
    background-color: #f2f2f2;
    border: 1px solid #f2f2f2; }

.btn-flat {
  position: relative;
  overflow: hidden;
  -webkit-tap-highlight-color: transparent;
  outline: none;
  transition: background-color 0.3s ease-out, color 0.3s ease-out;
  padding: 0.16777em 0.8em;
  border-radius: 3px;
  text-decoration: none;
  display: inline-block;
  text-transform: uppercase;
  margin-right: 0.8em;
  font-weight: 700;
  vertical-align: bottom;
  background-color: #f2f2f2; }
  @media (min-width: 38em) {
    .btn-flat {
      font-size: 0.8em; } }

/* objects/cards/_cards.scss */
/* objects/cards/_card.scss */
.card {
  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
  border-radius: 2px;
  margin-bottom: 2.44141em;
  line-height: 1.5625em; }
  @media (min-width: 56em) {
    .no-sidebars .card {
      margin-left: auto;
      margin-right: auto;
      max-width: 85%; } }
  @media (min-width: 62em) {
    .no-sidebars .card {
      max-width: 75%; } }
  @media (min-width: 74.25em) {
    .no-sidebars .card {
      max-width: 65%; } }
  .card:hover {
    transition: box-shadow .25s;
    box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); }

.card__inner {
  position: relative; }

.card__title {
  padding: 0.8em 1.5625em;
  padding-bottom: 0; }
  @media (min-width: 38em) {
    .card__title {
      padding: 0.8em 1.25em;
      padding-bottom: 0; } }

.card__title-text {
  margin-bottom: 0; }

.card__supporting-text {
  padding: 0.8em 1.5625em; }
  .card__supporting-text:after {
    content: "";
    display: table;
    clear: both; }
  @media (min-width: 38em) {
    .card__supporting-text {
      padding: 0.8em 1.25em; } }

@media (min-width: 29em) {
  .card__supporting-text-image {
    width: 37.03704%;
    margin-top: 0.4096em;
    margin-bottom: 0.32768em;
    float: left;
    margin-right: 1em; } }

.card__actions {
  padding: 0.64em; }

.card__button {
  position: relative;
  overflow: hidden;
  -webkit-tap-highlight-color: transparent;
  outline: none;
  transition: background-color 0.3s ease-out, color 0.3s ease-out;
  padding: 0.16777em 0.8em;
  border-radius: 3px;
  text-decoration: none;
  display: inline-block;
  text-transform: uppercase;
  margin-right: 0.8em;
  font-weight: 700;
  vertical-align: bottom; }
  @media (min-width: 38em) {
    .card__button {
      font-size: 0.8em; } }

/* objects/cards/_card__default.scss */
.card--default {
  background-color: white;
  color: #616161; }
  .card--default .card__supporting-text {
    border-bottom: 1px solid #f2f2f2; }
  .card--default .card__button {
    color: #D32F2F; }
    .card--default .card__button:hover, .card--default .card__button:focus {
      background-color: #f2f2f2;
      color: #212121; }

/* objects/cards/_card__highlight.scss */
.card--highlight {
  background-color: #D32F2F;
  color: white; }
  .card--highlight .card__supporting-text {
    border-bottom: 1px solid #B71C1C; }
  .card--highlight .card__button {
    color: white; }
    .card--highlight .card__button:hover, .card--highlight .card__button:focus {
      background-color: #B71C1C; }
  .card--highlight .material-icons {
    display: none; }

/* objects/cards/_card__media.scss */
.card--media {
  background-color: #0097A7;
  color: white; }
  .card--media .card__image {
    line-height: 0; }
    .card--media .card__image img {
      width: 100%; }
  .card--media .card__supporting-text {
    border-bottom: 1px solid #00838F; }
  .card--media .card__button {
    color: white; }
    .card--media .card__button:hover, .card--media .card__button:focus {
      background-color: #00838F; }
  .card--media .card__title {
    padding: 0;
    position: relative; }
  .card--media .card__title-text {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 0.64em 0.8em;
    background-color: rgba(0, 0, 0, 0.65); }

/* objects/_responsive-tables.scss */
.table-responsive {
  overflow-y: hidden;
  cursor: ew-resize; }

.table-controls {
  text-align: right;
  border-bottom: 1px solid #f2f2f2;
  padding-bottom: 0.26214em; }
  .table-controls .instruction {
    color: #757575;
    text-transform: uppercase;
    font-size: 0.8em;
    margin-right: 0.8em; }
  .table-controls .fa:before {
    color: #757575; }

/* objects/_media-embed.scss */
.media-embed {
  position: relative;
  padding-bottom: 56.25%;
  padding-top: 30px;
  height: 0;
  overflow: hidden; }

.media-embed iframe,
.media-embed object,
.media-embed embed {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%; }

.video-embed {
  border-bottom: 0.32768em solid #cccccc;
  padding-bottom: 2.44141em;
  margin-bottom: 3.05176em; }
  @media (min-width: 56em) {
    .video-embed {
      padding-left: 12%;
      padding-right: 12%; } }
  @media (min-width: 62em) {
    .video-embed {
      margin-top: 1.95312em; } }

.video-container object,
.video-container embed,
.video-container iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%; }

.video-container {
  position: relative;
  padding-bottom: 56.25%;
  /* 16:9 */
  padding-top: 25px;
  height: 0; }

/* objects/_fields.scss */
/* objects/_views-ui.scss */
/* objects/_list-displays.scss */
/* objects/_grid-displays.scss */
@media (min-width: 38em) {
  .grid-display .views-row {
    width: 48.93617%;
    clear: right;
    float: left;
    margin-left: 0;
    margin-right: 2.12766%; }
    .grid-display .views-row:nth-child(2n+2) {
      width: 48.93617%;
      clear: right;
      float: right;
      margin-right: 0; } }

@media (min-width: 62em) {
  .no-sidebars .grid-display .views-row,
  .grid-display .one-sidebar.sidebar-second .views-row {
    width: 31.91489%;
    clear: right;
    float: left;
    margin-left: 0;
    margin-right: 2.12766%; }
    .no-sidebars .grid-display .views-row:nth-child(2n+2),
    .grid-display .one-sidebar.sidebar-second .views-row:nth-child(2n+2) {
      width: 31.91489%;
      clear: right;
      float: left;
      margin-left: 0;
      margin-right: 2.12766%; }
    .no-sidebars .grid-display .views-row:nth-child(3n+3),
    .grid-display .one-sidebar.sidebar-second .views-row:nth-child(3n+3) {
      width: 31.91489%;
      clear: right;
      float: right;
      margin-right: 0; } }

/* objects/_content-styles.scss */
.headline-type {
  font-size: 1.5625em;
  line-height: 1.5625em; }
  @media (min-width: 38em) {
    .headline-type {
      font-size: 1.95312em; } }
  .headline-type b, .headline-type strong {
    font-weight: 600; }

.small-type {
  font-weight: 700;
  margin-bottom: 1.5625em;
  font-size: 0.8em; }

.highlight-type-centered {
  text-align: center;
  line-height: 1.25em;
  font-size: 1.95312em; }
  @media (min-width: 56em) {
    .highlight-type-centered {
      font-size: 2.44141em; } }

.highlight-type-red {
  color: #c2002f;
  font-weight: 300; }

.inline-image-left,
.inline-image-right,
.inline-image-center {
  width: 37.03704%;
  margin-top: 0.4096em;
  margin-bottom: 0.32768em; }

.inline-image-left {
  float: left;
  margin-right: 1em; }

.inline-image-right {
  float: right;
  margin-left: 1em; }

.inline-image-center {
  margin-left: auto;
  margin-right: auto;
  display: block;
  width: 100%; }

.highlight-box {
  margin-bottom: 1.25em;
  position: relative;
  padding: 0.64em;
  background-color: black;
  border-radius: 2px;
  color: white;
  font-weight: 600;
  line-height: 1.5625em;
  text-align: center; }
  @media (min-width: 56em) {
    .highlight-box {
      font-size: 1.5em; } }
  .highlight-box p:last-child, .highlight-box li:last-child {
    margin-bottom: 0; }

.definition {
  font-style: italic;
  text-align: center;
  font-weight: 300; }
  @media (min-width: 56em) {
    .definition {
      font-size: 1.5625em; } }

/* objects/_vendors.scss*/
.styleguide-header {
  clear: both;
  margin-top: 3.05176em;
  margin-bottom: 0.512em;
  font-size: 0.8em;
  text-transform: uppercase;
  color: #757575;
  border-bottom: 1px solid #f2f2f2; }
  .styleguide-header:nth-child(1) {
    margin-top: 0; }

.path-frontpage .page-title {
  font: 0/0 serif;
  text-shadow: none;
  color: transparent; }

/* _components.scss */
/* components/_blocks.scss file */
/* components/blocks/_block-beans.scss */
/* components/blocks/_block-default.scss */
#sidebar-second .block {
  margin-bottom: 1.5625em; }
  #sidebar-second .block:last-child {
    margin-bottom: 0; }

/* components/blocks/_block-faq.scss */
#block-faq {
  margin-top: 1.5625em;
  border-top: 0.32768em solid #cccccc;
  padding: 2.44141em 0; }

/* components/_brand.scss */
#block-sitebranding {
  display: block; }
  @media (min-width: 56em) {
    #block-sitebranding {
      text-align: center;
      margin-top: 1.95312em;
      margin-bottom: 4.76837em; } }
  @media (max-width: 56em) {
    #block-sitebranding a {
      text-align: center;
      display: block;
      max-width: 100px;
      margin: 0 auto; } }
  #block-sitebranding a:hover {
    opacity: .6; }
  #block-sitebranding img {
    width: 60px;
    max-width: 140px; }
    @media (min-width: 38em) {
      #block-sitebranding img {
        width: auto; } }

/* components/_search.scss */
/* components/search/_search-form.scss */
.search-form {
  margin-bottom: 1.25em;
  padding-bottom: 1.25em;
  border-bottom: 1px solid #f2f2f2; }

.search-form .form-wrapper label {
  font-size: 0.8em;
  text-transform: uppercase;
  margin-bottom: 0.4096em; }

.search-form .form-wrapper .form-item-keys {
  margin-top: 0;
  margin-bottom: 1em;
  display: block; }

.search-form .form-wrapper #edit-keys {
  appearance: none;
  border: none;
  border-radius: 0;
  width: 100%; }
  .search-form .form-wrapper #edit-keys:focus {
    outline: 0; }
  @media (min-width: 56em) {
    .search-form .form-wrapper #edit-keys {
      width: 50%; } }

.search-form .form-wrapper .form-submit {
  border: none;
  display: inline-block;
  text-transform: lowercase;
  text-align: center;
  position: relative;
  overflow: hidden;
  padding: 0.512em 1.25em;
  text-decoration: none;
  border-radius: 50px;
  transition: background-color .3s ease-out, border-color .3s ease-out;
  margin-right: 1em;
  -webkit-tap-highlight-color: transparent;
  outline: none;
  background-color: #c2002f;
  color: white; }
  @media (min-width: 38em) {
    .search-form .form-wrapper .form-submit {
      padding: 0.8em 1.5625em;
      font-size: 1.25em; } }
  .search-form .form-wrapper .form-submit:hover, .search-form .form-wrapper .form-submit:focus {
    background-color: #9b0026; }

/* components/search/_search-results.scss */
.spelling-suggestions {
  margin-bottom: 1.25em; }
  .spelling-suggestions dl, .spelling-suggestions dt, .spelling-suggestions dd {
    margin: 0; }

.search-results {
  margin: 0;
  padding: 0; }
  .search-results li {
    list-style-image: none;
    list-style-type: none;
    list-style: none;
    margin-left: 0; }
  .search-results .search-snippet-info {
    margin: 0;
    padding: 0; }
  .search-results .search-info {
    display: none; }
  .search-results .search-snippet {
    margin-bottom: 0; }
  .search-results .search-result {
    margin-bottom: 1.95312em;
    padding-bottom: 1.95312em;
    border-bottom: 1px solid #f2f2f2; }

/* components/search/_block-search.scss */
.block-search {
  display: inline-block;
  text-align: center; }
  @media (min-width: 38em) {
    .block-search {
      width: 48.93617%;
      clear: right;
      float: right;
      margin-right: 0;
      text-align: right; } }
  @media (min-width: 56em) {
    .block-search {
      width: 31.91489%;
      clear: right;
      float: right;
      margin-right: 0; } }
  .block-search h2 {
    font: 0/0 serif;
    text-shadow: none;
    color: transparent; }

/* components/_user.scss */
/* components/user/_user-login.scss */
.not-logged-in.page-user #user-login label {
  font-size: 0.8em;
  text-transform: uppercase;
  margin-bottom: 0.4096em; }

.not-logged-in.page-user #user-login .form-text {
  appearance: none;
  border: none;
  border-radius: 0;
  width: 100%;
  background: #f2f2f2;
  padding: 0.512em; }
  .not-logged-in.page-user #user-login .form-text:focus {
    outline: 0; }
  @media (min-width: 56em) {
    .not-logged-in.page-user #user-login .form-text {
      width: 50%; } }

.not-logged-in.page-user #user-login .form-submit {
  border: none;
  display: inline-block;
  text-transform: lowercase;
  text-align: center;
  position: relative;
  overflow: hidden;
  padding: 0.512em 1.25em;
  text-decoration: none;
  border-radius: 50px;
  transition: background-color .3s ease-out, border-color .3s ease-out;
  margin-right: 1em;
  -webkit-tap-highlight-color: transparent;
  outline: none;
  background-color: #c2002f;
  color: white; }
  @media (min-width: 38em) {
    .not-logged-in.page-user #user-login .form-submit {
      padding: 0.8em 1.5625em;
      font-size: 1.25em; } }
  .not-logged-in.page-user #user-login .form-submit:hover, .not-logged-in.page-user #user-login .form-submit:focus {
    background-color: #9b0026; }

/* components/_webform.scss */
.node-webform label {
  font-size: 0.8em;
  text-transform: uppercase;
  margin-bottom: 0.4096em; }

.node-webform .form-text,
.node-webform .form-textarea {
  appearance: none;
  border: none;
  border-radius: 0;
  width: 100%;
  width: 100%;
  background: #f2f2f2;
  padding: 0.512em; }
  .node-webform .form-text:focus,
  .node-webform .form-textarea:focus {
    outline: 0; }
  @media (min-width: 56em) {
    .node-webform .form-text,
    .node-webform .form-textarea {
      width: 50%; } }

.node-webform .form-select {
  appearance: none;
  border: none;
  border-radius: 0;
  width: 100%;
  width: 100%; }
  .node-webform .form-select:focus {
    outline: 0; }
  @media (min-width: 56em) {
    .node-webform .form-select {
      width: 50%; } }

.node-webform .button-primary {
  border: none;
  display: inline-block;
  text-transform: lowercase;
  text-align: center;
  position: relative;
  overflow: hidden;
  padding: 0.512em 1.25em;
  text-decoration: none;
  border-radius: 50px;
  transition: background-color .3s ease-out, border-color .3s ease-out;
  margin-right: 1em;
  -webkit-tap-highlight-color: transparent;
  outline: none;
  background-color: #c2002f;
  color: white; }
  @media (min-width: 38em) {
    .node-webform .button-primary {
      padding: 0.8em 1.5625em;
      font-size: 1.25em; } }
  .node-webform .button-primary:hover, .node-webform .button-primary:focus {
    background-color: #9b0026; }

/* sections.scss */
/* sections/_page.scss */
/* sections/page/_basic-page.scss */
@media (min-width: 62em) {
  .node--type-page .page-title {
    background-position: top left;
    background-repeat: no-repeat;
    background-size: 1125px 229px; } }

.node--type-page #main {
  background-color: white;
  padding: 0.8em 1.95312em 1.95312em 1.95312em; }
  @media (min-width: 38em) {
    .node--type-page #main {
      padding: 1.95312em 3.05176em; } }
  .node--type-page #main .connect-with-us-message {
    display: block;
    text-align: center;
    margin-bottom: 0; }
    .node--type-page #main .connect-with-us-message a {
      margin-top: 0.64em;
      margin-right: 0; }

.node--type-landing-page #main {
  padding: 0; }
  @media (min-width: 38em) {
    .node--type-landing-page #main {
      padding: 0.8em 1.25em; } }

.node--type-landing-page h1.page-title {
  background-size: 0; }
  @media (min-width: 62em) {
    .node--type-landing-page h1.page-title {
      background-size: cover; } }

.path-frontpage.node--type-page #main {
  background-color: black;
  padding: 0; }

/* sections/page/_manifesto-page.scss */
.context-manifesto .page-title,
.context-node-4 .page-title {
  text-align: center; }
  @media (min-width: 62em) {
    .context-manifesto .page-title,
    .context-node-4 .page-title {
      background-image: url(../../img/headers/header-manifesto.jpg);
      text-align: left !important; } }

.context-manifesto .echidna-essential,
.context-node-4 .echidna-essential {
  border-bottom: 0.32768em solid #cccccc;
  padding-bottom: 2.44141em;
  margin-bottom: 3.05176em; }
  .context-manifesto .echidna-essential:after,
  .context-node-4 .echidna-essential:after {
    content: "";
    display: table;
    clear: both; }
  .context-manifesto .echidna-essential .echidna-services li,
  .context-node-4 .echidna-essential .echidna-services li {
    list-style: none;
    text-align: center;
    color: #c2002f;
    font-weight: 400;
    margin-bottom: 1.25em; }
    @media (min-width: 29em) {
      .context-manifesto .echidna-essential .echidna-services li,
      .context-node-4 .echidna-essential .echidna-services li {
        font-weight: 300; } }
    @media (min-width: 29em) {
      .context-manifesto .echidna-essential .echidna-services li,
      .context-node-4 .echidna-essential .echidna-services li {
        width: 48.93617%;
        clear: right;
        float: left;
        margin-left: 0;
        margin-right: 2.12766%; } }
    @media (min-width: 48em) {
      .context-manifesto .echidna-essential .echidna-services li,
      .context-node-4 .echidna-essential .echidna-services li {
        width: 23.40426%;
        clear: right;
        float: left;
        margin-left: 0;
        margin-right: 2.12766%; } }
    @media (min-width: 29em) {
      .context-manifesto .echidna-essential .echidna-services li:nth-child(2n+2),
      .context-node-4 .echidna-essential .echidna-services li:nth-child(2n+2) {
        width: 48.93617%;
        clear: right;
        float: right;
        margin-right: 0; } }
    @media (min-width: 48em) {
      .context-manifesto .echidna-essential .echidna-services li:nth-child(2n+2),
      .context-node-4 .echidna-essential .echidna-services li:nth-child(2n+2) {
        width: 23.40426%;
        clear: right;
        float: left;
        margin-left: 0;
        margin-right: 2.12766%; } }
    @media (min-width: 48em) {
      .context-manifesto .echidna-essential .echidna-services li.last,
      .context-node-4 .echidna-essential .echidna-services li.last {
        width: 23.40426%;
        clear: right;
        float: right;
        margin-right: 0; } }
  .context-manifesto .echidna-essential .echidna-services .service-item,
  .context-node-4 .echidna-essential .echidna-services .service-item {
    display: block;
    margin-top: 0.8em;
    font-size: 1.25em;
    line-height: 1.25em; }
    @media (min-width: 62em) {
      .context-manifesto .echidna-essential .echidna-services .service-item,
      .context-node-4 .echidna-essential .echidna-services .service-item {
        margin-top: 1.25em;
        font-weight: 200;
        font-size: 1.5625em; } }
  .context-manifesto .echidna-essential .focus-speciality,
  .context-manifesto .echidna-essential .service-list-header,
  .context-node-4 .echidna-essential .focus-speciality,
  .context-node-4 .echidna-essential .service-list-header {
    text-align: center; }
    @media (min-width: 56em) {
      .context-manifesto .echidna-essential .focus-speciality,
      .context-manifesto .echidna-essential .service-list-header,
      .context-node-4 .echidna-essential .focus-speciality,
      .context-node-4 .echidna-essential .service-list-header {
        text-align: left; } }

.context-manifesto .echidna-services img, .context-manifesto .echidna-process img, .context-manifesto .echidna-customers img,
.context-node-4 .echidna-services img,
.context-node-4 .echidna-process img,
.context-node-4 .echidna-customers img {
  max-width: 150px;
  width: 100%;
  border: 5px solid #cccccc;
  border-radius: 50%;
  display: block;
  margin: 0 auto; }

.context-manifesto .echidna-services .success img, .context-manifesto .echidna-process .success img, .context-manifesto .echidna-customers .success img,
.context-node-4 .echidna-services .success img,
.context-node-4 .echidna-process .success img,
.context-node-4 .echidna-customers .success img {
  border: none; }

.context-manifesto .beliefs-section,
.context-node-4 .beliefs-section {
  border-bottom: 0.32768em solid #cccccc;
  padding-bottom: 2.44141em;
  margin-bottom: 3.05176em; }
  .context-manifesto .beliefs-section:after,
  .context-node-4 .beliefs-section:after {
    content: "";
    display: table;
    clear: both; }
  .context-manifesto .beliefs-section .echidna-beliefs li,
  .context-node-4 .beliefs-section .echidna-beliefs li {
    text-align: center;
    padding-top: 1.25em;
    list-style: none;
    margin-bottom: 1.25em; }
    .context-manifesto .beliefs-section .echidna-beliefs li:after,
    .context-node-4 .beliefs-section .echidna-beliefs li:after, .context-team ul.team-list:after,
    .context-node-5 ul.team-list:after, .context-connect .connect-details:after,
    .context-node-185 .connect-details:after, .block-views-blockcase-studies-block-1:after, .node--type-case-study .field--name-field-technical-features:after, .context-node-351 .node--type-one-page ul.icon-list:after,
    .context-new-product-page .node--type-one-page ul.icon-list:after {
      content: "";
      display: table;
      clear: both; }
    @media (min-width: 29em) {
      .context-manifesto .beliefs-section .echidna-beliefs li,
      .context-node-4 .beliefs-section .echidna-beliefs li {
        margin-bottom: 1.5625em;
        text-align: left; } }
  @media (min-width: 38em) {
    .context-manifesto .beliefs-section .echidna-beliefs li:nth-child(even) h3,
    .context-node-4 .beliefs-section .echidna-beliefs li:nth-child(even) h3 {
      text-align: right; } }
  .context-manifesto .beliefs-section .echidna-beliefs .last,
  .context-node-4 .beliefs-section .echidna-beliefs .last {
    margin-bottom: 0; }
  .context-manifesto .beliefs-section .echidna-beliefs p,
  .context-node-4 .beliefs-section .echidna-beliefs p {
    color: #595959; }
    @media (min-width: 56em) {
      .context-manifesto .beliefs-section .echidna-beliefs p,
      .context-node-4 .beliefs-section .echidna-beliefs p {
        font-size: 1.125em; } }
  @media (min-width: 38em) {
    .context-manifesto .beliefs-section .echidna-beliefs li:nth-child(even) p,
    .context-node-4 .beliefs-section .echidna-beliefs li:nth-child(even) p {
      text-align: right; } }
  @media (min-width: 29em) {
    .context-manifesto .beliefs-section .echidna-beliefs img,
    .context-node-4 .beliefs-section .echidna-beliefs img {
      float: left;
      margin-right: 0.8em;
      width: 37%;
      margin-top: -1.25em;
      width: auto;
      margin-right: 1.25em; } }
  @media (min-width: 29em) {
    .context-manifesto .beliefs-section .echidna-beliefs li:nth-child(even) img,
    .context-node-4 .beliefs-section .echidna-beliefs li:nth-child(even) img {
      float: right;
      margin-left: 1.25em;
      margin-right: 0; } }

.context-manifesto .process-section,
.context-node-4 .process-section {
  border-bottom: 0.32768em solid #cccccc;
  padding-bottom: 2.44141em;
  margin-bottom: 3.05176em; }
  .context-manifesto .process-section:after,
  .context-node-4 .process-section:after {
    content: "";
    display: table;
    clear: both; }
  .context-manifesto .process-section .echidna-process li,
  .context-node-4 .process-section .echidna-process li {
    list-style: none;
    color: #c2002f;
    margin-bottom: 1.25em; }
    @media (min-width: 38em) {
      .context-manifesto .process-section .echidna-process li,
      .context-node-4 .process-section .echidna-process li {
        text-align: center;
        width: 31.91489%;
        clear: right;
        float: left;
        margin-left: 0;
        margin-right: 2.12766%; } }
    .context-manifesto .process-section .echidna-process li.last,
    .context-node-4 .process-section .echidna-process li.last {
      margin-bottom: 0; }
      @media (min-width: 38em) {
        .context-manifesto .process-section .echidna-process li.last,
        .context-node-4 .process-section .echidna-process li.last {
          width: 31.91489%;
          clear: right;
          float: right;
          margin-right: 0; } }
  .context-manifesto .process-section .echidna-process img,
  .context-node-4 .process-section .echidna-process img {
    vertical-align: middle;
    width: 27%; }
    @media (min-width: 38em) {
      .context-manifesto .process-section .echidna-process img,
      .context-node-4 .process-section .echidna-process img {
        width: auto;
        vertical-align: baseline; } }
  .context-manifesto .process-section .echidna-process .process-label,
  .context-node-4 .process-section .echidna-process .process-label {
    vertical-align: middle;
    display: inline-block;
    text-align: center;
    color: #c2002f;
    margin-top: 0.8em;
    width: 100%;
    font-size: 1.25em;
    line-height: 1.25em; }
    @media (min-width: 38em) {
      .context-manifesto .process-section .echidna-process .process-label,
      .context-node-4 .process-section .echidna-process .process-label {
        vertical-align: baseline;
        margin-top: 0.8em; } }
    @media (min-width: 62em) {
      .context-manifesto .process-section .echidna-process .process-label,
      .context-node-4 .process-section .echidna-process .process-label {
        margin-top: 1.25em;
        font-weight: 300;
        font-size: 1.5625em; } }
    .context-manifesto .process-section .echidna-process .process-label span,
    .context-node-4 .process-section .echidna-process .process-label span {
      display: block;
      color: #595959;
      font-size: 0.8em; }
      .context-manifesto .process-section .echidna-process .process-label span br,
      .context-node-4 .process-section .echidna-process .process-label span br {
        display: none; }
        @media (min-width: 38em) {
          .context-manifesto .process-section .echidna-process .process-label span br,
          .context-node-4 .process-section .echidna-process .process-label span br {
            display: block; } }

.context-manifesto .customer-section,
.context-node-4 .customer-section {
  border-bottom: 0.32768em solid #cccccc;
  padding-bottom: 2.44141em;
  margin-bottom: 3.05176em; }
  .context-manifesto .customer-section:after,
  .context-node-4 .customer-section:after {
    content: "";
    display: table;
    clear: both; }
  .context-manifesto .customer-section .echidna-customers div,
  .context-node-4 .customer-section .echidna-customers div {
    text-align: center; }
    @media (min-width: 38em) {
      .context-manifesto .customer-section .echidna-customers div,
      .context-node-4 .customer-section .echidna-customers div {
        float: left; } }
    @media (min-width: 38em) {
      .context-manifesto .customer-section .echidna-customers div.desc,
      .context-node-4 .customer-section .echidna-customers div.desc {
        width: 18.75%; } }
    .context-manifesto .customer-section .echidna-customers div.symbol,
    .context-node-4 .customer-section .echidna-customers div.symbol {
      margin-top: 3.05176em;
      margin-bottom: 1.5625em; }
      @media (min-width: 38em) {
        .context-manifesto .customer-section .echidna-customers div.symbol,
        .context-node-4 .customer-section .echidna-customers div.symbol {
          width: 8.333333333%;
          margin-top: 1.5625em;
          margin-bottom: 0; } }
      .context-manifesto .customer-section .echidna-customers div.symbol img,
      .context-node-4 .customer-section .echidna-customers div.symbol img {
        border: none;
        border-radius: 0;
        max-width: 32px;
        max-width: 2em; }
        @media (min-width: 38em) {
          .context-manifesto .customer-section .echidna-customers div.symbol img,
          .context-node-4 .customer-section .echidna-customers div.symbol img {
            width: 50%;
            margin-top: 50%; } }
  .context-manifesto .customer-section .echidna-customers .experience-label,
  .context-node-4 .customer-section .echidna-customers .experience-label {
    display: block;
    margin-top: 0.8em;
    color: #c2002f;
    text-transform: lowercase;
    font-size: 1.25em;
    line-height: 1.25em; }
    @media (min-width: 38em) {
      .context-manifesto .customer-section .echidna-customers .experience-label,
      .context-node-4 .customer-section .echidna-customers .experience-label {
        vertical-align: baseline;
        margin-top: 0.8em; } }
    @media (min-width: 62em) {
      .context-manifesto .customer-section .echidna-customers .experience-label,
      .context-node-4 .customer-section .echidna-customers .experience-label {
        margin-top: 1.25em;
        font-weight: 300;
        font-size: 1.5625em; } }
    .context-manifesto .customer-section .echidna-customers .experience-label span,
    .context-node-4 .customer-section .echidna-customers .experience-label span {
      display: block;
      color: #595959;
      font-size: 0.8em; }
  .context-manifesto .customer-section .echidna-customers .success-icon,
  .context-node-4 .customer-section .echidna-customers .success-icon {
    font: 0/0 serif;
    text-shadow: none;
    color: transparent; }

.context-manifesto .core-values,
.context-node-4 .core-values {
  border-bottom: 0.32768em solid #cccccc;
  padding-bottom: 2.44141em;
  margin-bottom: 3.05176em; }

.context-manifesto .testimonials .clutch-widget[data-widget-type="3"] iframe,
.context-node-4 .testimonials .clutch-widget[data-widget-type="3"] iframe {
  max-width: 280px;
  margin: 0 auto;
  margin-bottom: 3em; }

.context-manifesto .testimonials .hidden-header,
.context-node-4 .testimonials .hidden-header {
  font: 0/0 serif;
  text-shadow: none;
  color: transparent; }

.context-manifesto .testimonials .testimonial-quotes,
.context-node-4 .testimonials .testimonial-quotes {
  margin-bottom: 1.95312em; }
  .context-manifesto .testimonials .testimonial-quotes .quote,
  .context-node-4 .testimonials .testimonial-quotes .quote {
    font: 0/0 serif;
    text-shadow: none;
    color: transparent; }
  .context-manifesto .testimonials .testimonial-quotes p,
  .context-node-4 .testimonials .testimonial-quotes p {
    margin-bottom: 0; }

/*Team Page*/
@media (min-width: 62em) {
  .context-team .page-title,
  .context-node-5 .page-title {
    background-image: url(../../img/headers/header-team.jpg); } }

.context-team ul.team-list,
.context-node-5 ul.team-list {
  margin-bottom: 0; }
  .context-team ul.team-list li,
  .context-node-5 ul.team-list li {
    list-style-image: none;
    list-style-type: none;
    list-style: none;
    margin-left: 0; }
  .context-team ul.team-list li,
  .context-node-5 ul.team-list li {
    margin-bottom: 3.125%;
    width: 31.25%;
    clear: right;
    float: left;
    margin-left: 0;
    margin-right: 3.125%; }
    .context-team ul.team-list li:nth-child(3n+3),
    .context-node-5 ul.team-list li:nth-child(3n+3) {
      width: 31.25%;
      clear: right;
      float: right;
      margin-right: 0; }
    @media (min-width: 38em) {
      .context-team ul.team-list li,
      .context-node-5 ul.team-list li {
        width: 18.51852%;
        clear: right;
        float: left;
        margin-left: 0;
        margin-right: 1.85185%;
        margin-bottom: 1.85185%; }
        .context-team ul.team-list li:nth-child(3n+3),
        .context-node-5 ul.team-list li:nth-child(3n+3) {
          width: 18.51852%;
          clear: right;
          float: left;
          margin-left: 0;
          margin-right: 1.85185%; }
        .context-team ul.team-list li:nth-child(5n+5),
        .context-node-5 ul.team-list li:nth-child(5n+5) {
          width: 18.51852%;
          clear: right;
          float: right;
          margin-right: 0; } }
  .context-team ul.team-list img,
  .context-node-5 ul.team-list img {
    float: left;
    width: 100%;
    -webkit-transform: translate3d(0, 0, 0); }
  .context-team ul.team-list span.team-member,
  .context-node-5 ul.team-list span.team-member {
    display: none; }

/* sections/page/_drupal-page.scss */
.context-drupal-8 .offers-sections,
.context-node-184 .offers-sections {
  border-top: 0.32768em solid #cccccc;
  border-bottom: 0.32768em solid #cccccc;
  padding: 2.44141em 0;
  margin: 3.05176em 0; }

@media (min-width: 62em) {
  .context-drupal-8 .page-title,
  .context-node-184 .page-title,
  .context-node-220 .page-title,
  .context-careers .page-title {
    background-image: url(../../img/headers/header-work.jpg); } }

/* sections/page/_connect-page.scss */
@media (min-width: 62em) {
  .context-connect .page-title,
  .context-node-185 .page-title {
    background-image: url(../../img/headers/header-work.jpg); } }

.context-connect .connect-details,
.context-node-185 .connect-details {
  position: relative;
  margin-bottom: 1.5625em; }
  .context-connect .connect-details p,
  .context-node-185 .connect-details p {
    font-size: 1em;
    margin: 0; }
  .context-connect .connect-details ul li,
  .context-node-185 .connect-details ul li {
    list-style-image: none;
    list-style-type: none;
    list-style: none;
    margin-left: 0; }
  .context-connect .connect-details h2,
  .context-node-185 .connect-details h2 {
    font-size: 1.5625em;
    font-weight: 600; }

.context-connect .contact-details,
.context-node-185 .contact-details {
  margin-bottom: 1.25em; }
  @media (min-width: 56em) {
    .context-connect .contact-details,
    .context-node-185 .contact-details {
      width: 48.93617%;
      clear: right;
      float: left;
      margin-left: 0;
      margin-right: 2.12766%; } }
  @media (min-width: 62em) {
    .context-connect .contact-details,
    .context-node-185 .contact-details {
      width: 31.91489%;
      clear: right;
      float: left;
      margin-left: 0;
      margin-right: 2.12766%; } }

.context-connect .location-details,
.context-node-185 .location-details {
  margin-bottom: 1.25em; }
  @media (min-width: 56em) {
    .context-connect .location-details,
    .context-node-185 .location-details {
      width: 48.93617%;
      clear: right;
      float: right;
      margin-right: 0;
      padding-top: 3.05176em; } }
  @media (min-width: 62em) {
    .context-connect .location-details,
    .context-node-185 .location-details {
      width: 31.91489%;
      clear: right;
      float: left;
      margin-left: 0;
      margin-right: 2.12766%; } }
  .context-connect .location-details p,
  .context-node-185 .location-details p {
    margin-top: 1em; }
    .context-connect .location-details p:first-child,
    .context-node-185 .location-details p:first-child {
      margin-top: 0; }

@media (min-width: 56em) {
  .context-connect .social-media,
  .context-node-185 .social-media {
    width: 100%;
    clear: right;
    float: right;
    margin-right: 0; } }

@media (min-width: 62em) {
  .context-connect .social-media,
  .context-node-185 .social-media {
    width: 31.91489%;
    clear: right;
    float: right;
    margin-right: 0; } }

.context-connect .social-media li,
.context-node-185 .social-media li {
  margin: 0;
  list-style: none; }

.context-connect .social-media a,
.context-node-185 .social-media a {
  font: 0/0 serif;
  text-shadow: none;
  color: transparent;
  display: block;
  float: left;
  width: 51px;
  height: 50px;
  margin-right: 2.12766%;
  background-size: cover;
  border-radius: 50%; }
  .context-connect .social-media a:hover,
  .context-node-185 .social-media a:hover {
    opacity: .6; }

.context-connect .social-media .facebook-button,
.context-node-185 .social-media .facebook-button {
  background-image: url("../../img/social/de-icons_facebook.png");
  background-position: center center;
  background-repeat: no-repeat; }

.context-connect .social-media .twitter-button,
.context-node-185 .social-media .twitter-button {
  background-image: url("../../img/social/de-icons_twitter.png");
  background-position: center center;
  background-repeat: no-repeat; }

.context-connect .social-media .linkedin-button,
.context-node-185 .social-media .linkedin-button {
  background-image: url("../../img/social/de-icons_linkedin.png");
  background-position: center center;
  background-repeat: no-repeat; }

.context-connect .map,
.context-node-185 .map {
  border-top: 0.32768em solid #cccccc;
  padding-top: 2.44141em; }
  .context-connect .map img,
  .context-node-185 .map img {
    width: 100%; }
    .context-connect .map img:hover,
    .context-node-185 .map img:hover {
      opacity: .6; }
  .context-connect .map p,
  .context-node-185 .map p {
    font-size: 1.25em; }

.path-frontpage article {
  padding: 0 1.5625em; }
  @media (min-width: 38em) {
    .path-frontpage article {
      padding: 0 3.8147em; } }

#smallscreen-message {
  text-align: center; }
  #smallscreen-message .message {
    padding-top: 0.8em;
    margin-bottom: 0.512em;
    color: white;
    text-transform: capitalize;
    font-size: 1.95312em;
    font-weight: 600; }
  @media (min-width: 62em) {
    #smallscreen-message {
      display: none; } }

#tubular-container {
  display: none !important; }
  @media (min-width: 62em) {
    #tubular-container {
      display: block !important; } }

* {
  box-sizing: border-box; }

.video-background {
  background: #000;
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: -99; }

.video-foreground,
.video-background iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none; }

#vidtop-content {
  top: 0;
  color: #fff; }

.vid-info {
  position: absolute;
  top: 0;
  right: 0;
  width: 33%;
  background: rgba(0, 0, 0, 0.3);
  color: #fff;
  padding: 1rem;
  font-family: Avenir, Helvetica, sans-serif; }

.vid-info h1 {
  font-size: 2rem;
  font-weight: 700;
  margin-top: 0;
  line-height: 1.2; }

.vid-info a {
  display: block;
  color: #fff;
  text-decoration: none;
  background: rgba(0, 0, 0, 0.5);
  transition: .6s background;
  border-bottom: none;
  margin: 1rem auto;
  text-align: center; }

@media (min-aspect-ratio: 16 / 9) {
  .video-foreground {
    height: 300%;
    top: -100%; } }

@media (max-aspect-ratio: 16 / 9) {
  .video-foreground {
    width: 300%;
    left: -100%; } }

@media all and (max-width: 600px) {
  .vid-info {
    width: 50%;
    padding: .5rem; }
  .vid-info h1 {
    margin-bottom: .2rem; } }

@media all and (max-width: 500px) {
  .vid-info .acronym {
    display: none; } }

/* sections/page/_wiphe-page.scss */
.offers-sections {
  border-top: 0.32768em solid #cccccc;
  border-bottom: 0.32768em solid #cccccc;
  padding: 2.44141em 0;
  margin: 3.05176em 0; }

/* sections/page/_career-page.scss */
.context-node-220 .postings,
.context-careers .postings {
  border-bottom: 0.32768em solid #cccccc;
  padding: 2.44141em 0;
  margin: 3.05176em 0; }

/* sections/_case-studies.scss */
.block-views-blockcase-studies-block-1 {
  background-color: white; }
  .block-views-blockcase-studies-block-1 ul {
    margin: 0;
    padding: 0; }
    .block-views-blockcase-studies-block-1 ul li {
      list-style-image: none;
      list-style-type: none;
      list-style: none;
      margin-left: 0; }
  .block-views-blockcase-studies-block-1 .views-row {
    background-color: #f2f2f2;
    padding: 0.64em;
    margin-bottom: 6.66667%; }
    @media (min-width: 29em) and (max-width: 62em) {
      .block-views-blockcase-studies-block-1 .views-row {
        margin-bottom: 2.12766%;
        width: 48.93617%;
        clear: right;
        float: left;
        margin-left: 0;
        margin-right: 2.12766%; }
        .block-views-blockcase-studies-block-1 .views-row:nth-child(2n+2) {
          width: 48.93617%;
          clear: right;
          float: right;
          margin-right: 0; } }
    @media (min-width: 62em) {
      .block-views-blockcase-studies-block-1 .views-row {
        margin-bottom: 2.12766%;
        width: 31.91489%;
        clear: right;
        float: left;
        margin-left: 0;
        margin-right: 2.12766%; }
        .block-views-blockcase-studies-block-1 .views-row:nth-child(3n+3) {
          width: 31.91489%;
          clear: right;
          float: right;
          margin-right: 0; } }
    .block-views-blockcase-studies-block-1 .views-row:hover {
      background-color: #c2002f; }
  .block-views-blockcase-studies-block-1 img {
    vertical-align: bottom;
    width: 100%; }
  .block-views-blockcase-studies-block-1 .views-field-title {
    font: 0/0 serif;
    text-shadow: none;
    color: transparent; }
  .block-views-blockcase-studies-block-1 select {
    background-color: white;
    border-radius: 4px;
    display: inline-block;
    font: inherit;
    line-height: 1.5em;
    padding: 0.5em 3.5em 0.5em 1em;
    margin: 0;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    -webkit-appearance: none;
    -moz-appearance: none;
    background-image: linear-gradient(45deg, transparent 50%, gray 50%), linear-gradient(135deg, gray 50%, transparent 50%), linear-gradient(to right, #ccc, #ccc);
    background-position: calc(100% - 20px) calc(1em + 2px), calc(100% - 15px) calc(1em + 2px), calc(100% - 2.5em) 0.5em;
    background-size: 5px 5px, 5px 5px, 1px 1.5em;
    background-repeat: no-repeat; }
  .block-views-blockcase-studies-block-1 .form--inline {
    margin-bottom: 1em; }
    .block-views-blockcase-studies-block-1 .form--inline label {
      margin-right: 0.5em; }
    .block-views-blockcase-studies-block-1 .form--inline .js-form-item {
      float: left; }
  .block-views-blockcase-studies-block-1 .form-actions {
    float: left;
    display: contents; }
    .block-views-blockcase-studies-block-1 .form-actions input {
      padding: 0.5em 1.25em; }

.block-views-blockrelated-case-studies-block-1 {
  padding: 3em 3em;
  clear: both; }
  .block-views-blockrelated-case-studies-block-1 ul {
    margin: 0;
    padding: 0; }
    .block-views-blockrelated-case-studies-block-1 ul li {
      list-style-image: none;
      list-style-type: none;
      list-style: none;
      margin-left: 0; }
  .block-views-blockrelated-case-studies-block-1 .views-row {
    background-color: #f2f2f2;
    padding: 0.64em;
    margin-bottom: 6.66667%; }
    @media (min-width: 29em) and (max-width: 62em) {
      .block-views-blockrelated-case-studies-block-1 .views-row {
        margin-bottom: 2.12766%;
        width: 48.93617%;
        clear: right;
        float: left;
        margin-left: 0;
        margin-right: 2.12766%; }
        .block-views-blockrelated-case-studies-block-1 .views-row:nth-child(2n+2) {
          width: 48.93617%;
          clear: right;
          float: right;
          margin-right: 0; } }
    @media (min-width: 62em) {
      .block-views-blockrelated-case-studies-block-1 .views-row {
        margin-bottom: 2.12766%;
        width: 31.91489%;
        clear: right;
        float: left;
        margin-left: 0;
        margin-right: 2.12766%; }
        .block-views-blockrelated-case-studies-block-1 .views-row:nth-child(3n+3) {
          width: 31.91489%;
          clear: right;
          float: right;
          margin-right: 0; } }
    .block-views-blockrelated-case-studies-block-1 .views-row:hover {
      background-color: #c2002f; }
  .block-views-blockrelated-case-studies-block-1 img {
    vertical-align: bottom;
    width: 100%; }
  .block-views-blockrelated-case-studies-block-1 .views-field-title {
    font: 0/0 serif;
    text-shadow: none;
    color: transparent; }

@media (min-width: 62em) {
  .node--type-case-study #page-title {
    background-image: url(../../img/headers/header-work.jpg); } }

.node--type-case-study .case-study-info {
  background-color: white;
  padding: 0.8em 1.95312em 1.95312em 1.95312em; }
  @media (min-width: 38em) {
    .node--type-case-study .case-study-info {
      padding: 1.95312em 3.05176em; } }

.node--type-case-study .field--name-body p {
  font-size: 1em; }

.node--type-case-study .truncator-link {
  color: #c2002f;
  font-weight: 600; }

@media (min-width: 62em) {
  .node--type-case-study .case-study-details {
    width: 57.44681%;
    clear: right;
    float: left;
    margin-left: 0;
    margin-right: 2.12766%; } }

.node--type-case-study .field--name-field-technical-features {
  border-color: #cccccc; }
  @media (max-width: 62em) {
    .node--type-case-study .field--name-field-technical-features {
      border-top: 1px solid #cccccc;
      border-bottom: 1px solid #cccccc;
      padding: 1.5625em 0;
      margin-bottom: 1.5625em; } }
  @media (min-width: 62em) {
    .node--type-case-study .field--name-field-technical-features {
      width: 31.91489%;
      clear: right;
      float: right;
      margin-right: 0;
      border-left: 1px solid #cccccc;
      padding-left: 1.5625em; } }
  .node--type-case-study .field--name-field-technical-features .field__item {
    line-height: 1.25em;
    margin-bottom: 0.8em; }
    @media (min-width: 38em) {
      .node--type-case-study .field--name-field-technical-features .field__item {
        font-size: 0.8em; } }
    .node--type-case-study .field--name-field-technical-features .field__item:last-child {
      margin-bottom: 0; }
  .node--type-case-study .field--name-field-technical-features .field__label {
    font-size: 1.25em;
    font-weight: 600;
    margin-bottom: 0.64em; }

.node--type-case-study .field--name-field-project-visual {
  margin-top: 1.5625em; }
  @media (min-width: 62em) {
    .node--type-case-study .field--name-field-project-visual {
      width: 100%;
      clear: right;
      float: right;
      margin-right: 0; } }
  .node--type-case-study .field--name-field-project-visual img {
    width: 100%; }

.node--type-case-study .field--name-field-website-url {
  margin-bottom: 1.5625em; }
  .node--type-case-study .field--name-field-website-url a {
    color: #c2002f; }

@media (min-width: 62em) {
  .context-work .page-title,
  .context-node-3 .page-title {
    background-image: url(../../img/headers/header-work.jpg); } }

/* sections/_landing-page.scss */
/*===============================================================================================
   LANDING PAGE STYLING
 ===============================================================================================*/
.node--type-one-page #header, .node--type-one-page .region--content-prefix, .node__submitted {
  display: none; }

.node--type-one-page .layout-container {
  width: 100%;
  margin: 0;
  max-width: 100%; }

.node--type-one-page .paragraph--type--column-1,
.node--type-one-page .paragraph--type--columns-2-3,
.node--type-one-page .paragraph--type--columns-2,
.node--type-one-page .paragraph--type--columns-3,
.node--type-one-page .paragraph--type--columns-5 {
  max-width: 960px;
  margin: 0 auto; }
  @media (min-width: 62em) {
    .node--type-one-page .paragraph--type--column-1,
    .node--type-one-page .paragraph--type--columns-2-3,
    .node--type-one-page .paragraph--type--columns-2,
    .node--type-one-page .paragraph--type--columns-3,
    .node--type-one-page .paragraph--type--columns-5 {
      margin-bottom: 1em !important; } }
  .node--type-one-page .paragraph--type--column-1 .field__item,
  .node--type-one-page .paragraph--type--columns-2-3 .field__item,
  .node--type-one-page .paragraph--type--columns-2 .field__item,
  .node--type-one-page .paragraph--type--columns-3 .field__item,
  .node--type-one-page .paragraph--type--columns-5 .field__item {
    margin: 0 auto; }

.node--type-one-page h2 {
  font-size: 2.3em; }

.field__item .paragraph {
  margin: 0 auto; }

.field--name-field-landing-body {
  margin-top: 94px;
  padding-top: 5.8em; }

.node--type-one-page {
  /*APPLY THE FOLLOWING STYLES TO ONLY THE ONE PAGE NODE TYPE*/ }
  .node--type-one-page p {
    font-size: 1em;
    margin: 0; }
  .node--type-one-page h2 {
    line-height: 1.3; }
  .node--type-one-page h4 {
    margin-bottom: 0; }
  .node--type-one-page .field--name-field-header,
  .node--type-one-page .field--name-field-landing-body,
  .node--type-one-page .field--name-field-footer {
    /*ONLY APPLY THE FOLLOWING STYLES IN THE ONE PAGE SECTIONS*/
    margin: 0; }
    .node--type-one-page .field--name-field-header .paragraph--type--column-1,
    .node--type-one-page .field--name-field-landing-body .paragraph--type--column-1,
    .node--type-one-page .field--name-field-footer .paragraph--type--column-1 {
      width: 90%;
      margin: 0 auto; }
    .node--type-one-page .field--name-field-header .paragraph--type--columns-2 .field--name-field-first-column, .node--type-one-page .field--name-field-header .paragraph--type--columns-2 .field--name-field-second-column,
    .node--type-one-page .field--name-field-landing-body .paragraph--type--columns-2 .field--name-field-first-column,
    .node--type-one-page .field--name-field-landing-body .paragraph--type--columns-2 .field--name-field-second-column,
    .node--type-one-page .field--name-field-footer .paragraph--type--columns-2 .field--name-field-first-column,
    .node--type-one-page .field--name-field-footer .paragraph--type--columns-2 .field--name-field-second-column {
      width: 100%;
      margin: 1.5em auto; }
      @media (min-width: 62em) {
        .node--type-one-page .field--name-field-header .paragraph--type--columns-2 .field--name-field-first-column, .node--type-one-page .field--name-field-header .paragraph--type--columns-2 .field--name-field-second-column,
        .node--type-one-page .field--name-field-landing-body .paragraph--type--columns-2 .field--name-field-first-column,
        .node--type-one-page .field--name-field-landing-body .paragraph--type--columns-2 .field--name-field-second-column,
        .node--type-one-page .field--name-field-footer .paragraph--type--columns-2 .field--name-field-first-column,
        .node--type-one-page .field--name-field-footer .paragraph--type--columns-2 .field--name-field-second-column {
          margin: 0 auto;
          width: 48%;
          display: inline-block; } }
    .node--type-one-page .field--name-field-header .paragraph--type--columns-2 .field--name-field-first-column,
    .node--type-one-page .field--name-field-landing-body .paragraph--type--columns-2 .field--name-field-first-column,
    .node--type-one-page .field--name-field-footer .paragraph--type--columns-2 .field--name-field-first-column {
      margin: 0; }
      @media (min-width: 62em) {
        .node--type-one-page .field--name-field-header .paragraph--type--columns-2 .field--name-field-first-column,
        .node--type-one-page .field--name-field-landing-body .paragraph--type--columns-2 .field--name-field-first-column,
        .node--type-one-page .field--name-field-footer .paragraph--type--columns-2 .field--name-field-first-column {
          margin-right: 2%; } }
    .node--type-one-page .field--name-field-header .paragraph--type--columns-2 .field__item,
    .node--type-one-page .field--name-field-landing-body .paragraph--type--columns-2 .field__item,
    .node--type-one-page .field--name-field-footer .paragraph--type--columns-2 .field__item {
      width: 100%; }
    .node--type-one-page .field--name-field-header .field--name-field-landing-body .field--name-field-first-column, .node--type-one-page .field--name-field-header .field--name-field-landing-body .field--name-field-second-column,
    .node--type-one-page .field--name-field-landing-body .field--name-field-landing-body .field--name-field-first-column,
    .node--type-one-page .field--name-field-landing-body .field--name-field-landing-body .field--name-field-second-column,
    .node--type-one-page .field--name-field-footer .field--name-field-landing-body .field--name-field-first-column,
    .node--type-one-page .field--name-field-footer .field--name-field-landing-body .field--name-field-second-column {
      margin: 0; }
    @media (min-width: 62em) {
      .node--type-one-page .field--name-field-header .field--name-field-landing-body .field--name-field-first-column,
      .node--type-one-page .field--name-field-landing-body .field--name-field-landing-body .field--name-field-first-column,
      .node--type-one-page .field--name-field-footer .field--name-field-landing-body .field--name-field-first-column {
        margin-right: 1%; } }
    @media (min-width: 62em) {
      .node--type-one-page .field--name-field-header .field--name-field-landing-body .field--name-field-second-column,
      .node--type-one-page .field--name-field-landing-body .field--name-field-landing-body .field--name-field-second-column,
      .node--type-one-page .field--name-field-footer .field--name-field-landing-body .field--name-field-second-column {
        margin-left: 1%; } }
    .node--type-one-page .field--name-field-header .paragraph--type--columns-2-3 .field--name-field-columns-2-2-3, .node--type-one-page .field--name-field-header .paragraph--type--columns-2-3 .field--name-field-columns-1-3,
    .node--type-one-page .field--name-field-landing-body .paragraph--type--columns-2-3 .field--name-field-columns-2-2-3,
    .node--type-one-page .field--name-field-landing-body .paragraph--type--columns-2-3 .field--name-field-columns-1-3,
    .node--type-one-page .field--name-field-footer .paragraph--type--columns-2-3 .field--name-field-columns-2-2-3,
    .node--type-one-page .field--name-field-footer .paragraph--type--columns-2-3 .field--name-field-columns-1-3 {
      display: inline-block; }
    .node--type-one-page .field--name-field-header .paragraph--type--columns-2-3 .field--name-field-columns-2-2-3,
    .node--type-one-page .field--name-field-landing-body .paragraph--type--columns-2-3 .field--name-field-columns-2-2-3,
    .node--type-one-page .field--name-field-footer .paragraph--type--columns-2-3 .field--name-field-columns-2-2-3 {
      width: 100%;
      vertical-align: top; }
      @media (min-width: 62em) {
        .node--type-one-page .field--name-field-header .paragraph--type--columns-2-3 .field--name-field-columns-2-2-3,
        .node--type-one-page .field--name-field-landing-body .paragraph--type--columns-2-3 .field--name-field-columns-2-2-3,
        .node--type-one-page .field--name-field-footer .paragraph--type--columns-2-3 .field--name-field-columns-2-2-3 {
          width: 64%;
          margin-right: 1%; } }
    .node--type-one-page .field--name-field-header .paragraph--type--columns-2-3 .field--name-field-columns-1-3,
    .node--type-one-page .field--name-field-landing-body .paragraph--type--columns-2-3 .field--name-field-columns-1-3,
    .node--type-one-page .field--name-field-footer .paragraph--type--columns-2-3 .field--name-field-columns-1-3 {
      width: 100%; }
      @media (min-width: 62em) {
        .node--type-one-page .field--name-field-header .paragraph--type--columns-2-3 .field--name-field-columns-1-3,
        .node--type-one-page .field--name-field-landing-body .paragraph--type--columns-2-3 .field--name-field-columns-1-3,
        .node--type-one-page .field--name-field-footer .paragraph--type--columns-2-3 .field--name-field-columns-1-3 {
          width: 32%;
          margin-left: 1%; } }
      .node--type-one-page .field--name-field-header .paragraph--type--columns-2-3 .field--name-field-columns-1-3 h2,
      .node--type-one-page .field--name-field-landing-body .paragraph--type--columns-2-3 .field--name-field-columns-1-3 h2,
      .node--type-one-page .field--name-field-footer .paragraph--type--columns-2-3 .field--name-field-columns-1-3 h2 {
        margin-bottom: 0; }
    .node--type-one-page .field--name-field-header .paragraph--type--columns-5,
    .node--type-one-page .field--name-field-landing-body .paragraph--type--columns-5,
    .node--type-one-page .field--name-field-footer .paragraph--type--columns-5 {
      width: 90%;
      margin: 0 auto; }
      .node--type-one-page .field--name-field-header .paragraph--type--columns-5 .field--name-field-column-1-5,
      .node--type-one-page .field--name-field-header .paragraph--type--columns-5 .field--name-field-columns-2-5,
      .node--type-one-page .field--name-field-header .paragraph--type--columns-5 .field--name-field-columns-3-5,
      .node--type-one-page .field--name-field-header .paragraph--type--columns-5 .field--name-field-columns-4-5,
      .node--type-one-page .field--name-field-header .paragraph--type--columns-5 .field--name-field-columns-5-5,
      .node--type-one-page .field--name-field-landing-body .paragraph--type--columns-5 .field--name-field-column-1-5,
      .node--type-one-page .field--name-field-landing-body .paragraph--type--columns-5 .field--name-field-columns-2-5,
      .node--type-one-page .field--name-field-landing-body .paragraph--type--columns-5 .field--name-field-columns-3-5,
      .node--type-one-page .field--name-field-landing-body .paragraph--type--columns-5 .field--name-field-columns-4-5,
      .node--type-one-page .field--name-field-landing-body .paragraph--type--columns-5 .field--name-field-columns-5-5,
      .node--type-one-page .field--name-field-footer .paragraph--type--columns-5 .field--name-field-column-1-5,
      .node--type-one-page .field--name-field-footer .paragraph--type--columns-5 .field--name-field-columns-2-5,
      .node--type-one-page .field--name-field-footer .paragraph--type--columns-5 .field--name-field-columns-3-5,
      .node--type-one-page .field--name-field-footer .paragraph--type--columns-5 .field--name-field-columns-4-5,
      .node--type-one-page .field--name-field-footer .paragraph--type--columns-5 .field--name-field-columns-5-5 {
        width: 100%;
        margin: 1.5em auto; }
        @media (min-width: 62em) {
          .node--type-one-page .field--name-field-header .paragraph--type--columns-5 .field--name-field-column-1-5,
          .node--type-one-page .field--name-field-header .paragraph--type--columns-5 .field--name-field-columns-2-5,
          .node--type-one-page .field--name-field-header .paragraph--type--columns-5 .field--name-field-columns-3-5,
          .node--type-one-page .field--name-field-header .paragraph--type--columns-5 .field--name-field-columns-4-5,
          .node--type-one-page .field--name-field-header .paragraph--type--columns-5 .field--name-field-columns-5-5,
          .node--type-one-page .field--name-field-landing-body .paragraph--type--columns-5 .field--name-field-column-1-5,
          .node--type-one-page .field--name-field-landing-body .paragraph--type--columns-5 .field--name-field-columns-2-5,
          .node--type-one-page .field--name-field-landing-body .paragraph--type--columns-5 .field--name-field-columns-3-5,
          .node--type-one-page .field--name-field-landing-body .paragraph--type--columns-5 .field--name-field-columns-4-5,
          .node--type-one-page .field--name-field-landing-body .paragraph--type--columns-5 .field--name-field-columns-5-5,
          .node--type-one-page .field--name-field-footer .paragraph--type--columns-5 .field--name-field-column-1-5,
          .node--type-one-page .field--name-field-footer .paragraph--type--columns-5 .field--name-field-columns-2-5,
          .node--type-one-page .field--name-field-footer .paragraph--type--columns-5 .field--name-field-columns-3-5,
          .node--type-one-page .field--name-field-footer .paragraph--type--columns-5 .field--name-field-columns-4-5,
          .node--type-one-page .field--name-field-footer .paragraph--type--columns-5 .field--name-field-columns-5-5 {
            margin: 0 auto;
            width: 18%;
            display: inline-block; } }
      @media (min-width: 62em) {
        .node--type-one-page .field--name-field-header .paragraph--type--columns-5 .field--name-field-column-1-5,
        .node--type-one-page .field--name-field-header .paragraph--type--columns-5 .field--name-field-columns-2-5,
        .node--type-one-page .field--name-field-header .paragraph--type--columns-5 .field--name-field-columns-3-5,
        .node--type-one-page .field--name-field-header .paragraph--type--columns-5 .field--name-field-columns-4-5,
        .node--type-one-page .field--name-field-landing-body .paragraph--type--columns-5 .field--name-field-column-1-5,
        .node--type-one-page .field--name-field-landing-body .paragraph--type--columns-5 .field--name-field-columns-2-5,
        .node--type-one-page .field--name-field-landing-body .paragraph--type--columns-5 .field--name-field-columns-3-5,
        .node--type-one-page .field--name-field-landing-body .paragraph--type--columns-5 .field--name-field-columns-4-5,
        .node--type-one-page .field--name-field-footer .paragraph--type--columns-5 .field--name-field-column-1-5,
        .node--type-one-page .field--name-field-footer .paragraph--type--columns-5 .field--name-field-columns-2-5,
        .node--type-one-page .field--name-field-footer .paragraph--type--columns-5 .field--name-field-columns-3-5,
        .node--type-one-page .field--name-field-footer .paragraph--type--columns-5 .field--name-field-columns-4-5 {
          margin: 0;
          margin-right: 2%; } }
  .node--type-one-page .field--name-field-landing-section .field__item .field--name-field-text,
  .node--type-one-page .paragraph.paragraph--type--landing-body-section {
    margin: 0;
    padding: 0;
    width: auto;
    max-width: 100%; }
  .node--type-one-page .field--name-field-header, .node--type-one-page .field--name-field-footer {
    background-color: #303030;
    color: #ffffff;
    padding: 1.5em 0; }
    .node--type-one-page .field--name-field-header .paragraph--type--columns-2, .node--type-one-page .field--name-field-footer .paragraph--type--columns-2 {
      padding: 0;
      margin: 0 auto !important; }
      .node--type-one-page .field--name-field-header .paragraph--type--columns-2 .field--name-field-second-column, .node--type-one-page .field--name-field-footer .paragraph--type--columns-2 .field--name-field-second-column {
        margin: 0; }
    .node--type-one-page .field--name-field-header .node--type-one-page .field--name-field-header .paragraph--type--columns-2 .field--name-field-first-column,
    .node--type-one-page .field--name-field-header .node--type-one-page .field--name-field-header .paragraph--type--columns-2 .field--name-field-second-column, .node--type-one-page .field--name-field-footer .node--type-one-page .field--name-field-header .paragraph--type--columns-2 .field--name-field-first-column,
    .node--type-one-page .field--name-field-footer .node--type-one-page .field--name-field-header .paragraph--type--columns-2 .field--name-field-second-column {
      margin: 0; }
    .node--type-one-page .field--name-field-header .field__item, .node--type-one-page .field--name-field-footer .field__item {
      width: 100%; }
    .node--type-one-page .field--name-field-header .paragraph--type--text img, .node--type-one-page .field--name-field-footer .paragraph--type--text img {
      max-width: 250px; }
  .node--type-one-page .field--name-field-header {
    position: fixed;
    width: 100%;
    z-index: 12; }
    .node--type-one-page .field--name-field-header .field.field--name-field-second-column {
      float: right; }
      .node--type-one-page .field--name-field-header .field.field--name-field-second-column h4 {
        text-align: right;
        margin-top: 8px;
        display: block;
        position: relative;
        font-weight: 600; }
  .node--type-one-page .field--name-field-footer {
    text-align: center; }
  .node--type-one-page .node--type-one-page .field--name-field-header .paragraph--type--columns-2 .field--name-field-second-column,
  .node--type-one-page .node--type-one-page .field--name-field-header .paragraph--type--columns-2 .field--name-field-first-column {
    display: inline-block !important; }
  .node--type-one-page .node--type-one-page .field--name-field-header .paragraph--type--columns-2 .field--name-field-first-column {
    width: 50px !important;
    height: 43px !important; }
    @media (min-width: 29em) {
      .node--type-one-page .node--type-one-page .field--name-field-header .paragraph--type--columns-2 .field--name-field-first-column {
        width: 48% !important;
        height: auto !important; } }
  .node--type-one-page .node--type-one-page .field--name-field-header .paragraph--type--columns-2 .field--name-field-second-column {
    width: calc(100% - 50px) !important; }
    @media (min-width: 29em) {
      .node--type-one-page .node--type-one-page .field--name-field-header .paragraph--type--columns-2 .field--name-field-second-column {
        width: 48% !important; } }
  .node--type-one-page .field--name-field-header .field--name-field-first-column a {
    width: 45px;
    overflow: hidden;
    display: inline-block; }
    @media (min-width: 29em) {
      .node--type-one-page .field--name-field-header .field--name-field-first-column a {
        width: auto;
        overflow: visible; } }
  .node--type-one-page .field--name-field-header .field--name-field-second-column h4 {
    font-size: 1.35em; }
  .node--type-one-page .paragraph--type--add-background, .node--type-one-page .paragraph--type--section-wrapper {
    padding: 3em 0 2em 0; }
  .node--type-one-page .field--name-field-pretty-paragraphs, .node--type-one-page .paragraph--type--columns-2, .node--type-one-page .paragraph--type--columns-5 {
    padding: 0;
    width: 90%;
    margin: 0 auto; }
  .node--type-one-page .paragraph--type--add-background * {
    color: #ffffff; }
  .node--type-one-page .paragraph--type--add-background .field--name-field-pretty-paragraphs h2 {
    margin-top: 0; }
  .node--type-one-page .webform-submission-conversion-form {
    max-width: 400px;
    margin: 1.5em auto 0 auto; }
    @media (min-width: 62em) {
      .node--type-one-page .webform-submission-conversion-form {
        margin: 1.5em 0 0 0; } }
  .node--type-one-page .webform-submission-conversion-form input, .node--type-one-page .webform-submission-conversion-form textarea {
    width: 100%;
    border: solid 1px #fff;
    padding: 0.5em;
    margin-top: 0.5em;
    color: #000000; }
  .node--type-one-page .webform-submission-conversion-form .webform-button--submit {
    border-radius: 40px;
    padding: 0.9em;
    border-color: #990025;
    background-color: #990025;
    color: #ffffff; }
    .node--type-one-page .webform-submission-conversion-form .webform-button--submit:hover {
      border-color: #ffffff; }
  .node--type-one-page .field--name-field-pretty-paragraphs .field--name-field-youtube .youtube-container {
    margin: 2em 0; }
    .node--type-one-page .field--name-field-pretty-paragraphs .field--name-field-youtube .youtube-container iframe {
      margin: 0 auto;
      display: block;
      width: 340px;
      height: 190px; }
      @media (min-width: 74.1875em) {
        .node--type-one-page .field--name-field-pretty-paragraphs .field--name-field-youtube .youtube-container iframe {
          margin: 0; } }
      @media (min-width: 74.1875em) {
        .node--type-one-page .field--name-field-pretty-paragraphs .field--name-field-youtube .youtube-container iframe {
          width: 530px;
          height: 300px; } }
      @media (min-width: 37.9375em) {
        .node--type-one-page .field--name-field-pretty-paragraphs .field--name-field-youtube .youtube-container iframe {
          width: 600px;
          height: 340px; } }
  .node--type-one-page .paragraph--type--feature-item {
    position: relative; }
    .node--type-one-page .paragraph--type--feature-item .field--name-field-icon {
      position: absolute;
      left: 0;
      max-width: 2em; }
      @media (min-width: 62em) {
        .node--type-one-page .paragraph--type--feature-item .field--name-field-icon {
          max-width: 4em; } }
      .node--type-one-page .paragraph--type--feature-item .field--name-field-icon img {
        width: 32px;
        height: 32px; }
        @media (min-width: 62em) {
          .node--type-one-page .paragraph--type--feature-item .field--name-field-icon img {
            width: 64px;
            height: 64px; } }
    .node--type-one-page .paragraph--type--feature-item .field--name-field-feature-title,
    .node--type-one-page .paragraph--type--feature-item .field--name-field-feature-description {
      margin-left: 48px !important;
      width: calc(100% - 48px) !important; }
      @media (min-width: 62em) {
        .node--type-one-page .paragraph--type--feature-item .field--name-field-feature-title,
        .node--type-one-page .paragraph--type--feature-item .field--name-field-feature-description {
          margin-left: 100px !important;
          width: calc(100% - 100px) !important; } }
  .node--type-one-page .field--name-field-landing-section .paragraph--type--columns-3 .field--name-field-column-1-3,
  .node--type-one-page .field--name-field-landing-section .paragraph--type--columns-3 .field--name-field-column-2-3,
  .node--type-one-page .field--name-field-landing-section .paragraph--type--columns-3 .field--name-field-column-3-3 {
    width: 100%;
    margin: 2.5em auto;
    vertical-align: top; }
    @media (min-width: 62em) {
      .node--type-one-page .field--name-field-landing-section .paragraph--type--columns-3 .field--name-field-column-1-3,
      .node--type-one-page .field--name-field-landing-section .paragraph--type--columns-3 .field--name-field-column-2-3,
      .node--type-one-page .field--name-field-landing-section .paragraph--type--columns-3 .field--name-field-column-3-3 {
        margin: 0 auto;
        width: 32%;
        display: inline-block; } }
    .node--type-one-page .field--name-field-landing-section .paragraph--type--columns-3 .field--name-field-column-1-3 .paragraph--type--testimonial .field--name-field-testimonial-quote,
    .node--type-one-page .field--name-field-landing-section .paragraph--type--columns-3 .field--name-field-column-2-3 .paragraph--type--testimonial .field--name-field-testimonial-quote,
    .node--type-one-page .field--name-field-landing-section .paragraph--type--columns-3 .field--name-field-column-3-3 .paragraph--type--testimonial .field--name-field-testimonial-quote {
      padding: 32px 32px 48px 32px;
      background-color: #990025; }
      @media (min-width: 62em) {
        .node--type-one-page .field--name-field-landing-section .paragraph--type--columns-3 .field--name-field-column-1-3 .paragraph--type--testimonial .field--name-field-testimonial-quote,
        .node--type-one-page .field--name-field-landing-section .paragraph--type--columns-3 .field--name-field-column-2-3 .paragraph--type--testimonial .field--name-field-testimonial-quote,
        .node--type-one-page .field--name-field-landing-section .paragraph--type--columns-3 .field--name-field-column-3-3 .paragraph--type--testimonial .field--name-field-testimonial-quote {
          min-height: 430px; } }
    .node--type-one-page .field--name-field-landing-section .paragraph--type--columns-3 .field--name-field-column-1-3 .paragraph--type--testimonial .field--name-field-testimonial-avatar,
    .node--type-one-page .field--name-field-landing-section .paragraph--type--columns-3 .field--name-field-column-2-3 .paragraph--type--testimonial .field--name-field-testimonial-avatar,
    .node--type-one-page .field--name-field-landing-section .paragraph--type--columns-3 .field--name-field-column-3-3 .paragraph--type--testimonial .field--name-field-testimonial-avatar {
      width: 64px;
      margin-top: -32px; }
      .node--type-one-page .field--name-field-landing-section .paragraph--type--columns-3 .field--name-field-column-1-3 .paragraph--type--testimonial .field--name-field-testimonial-avatar img,
      .node--type-one-page .field--name-field-landing-section .paragraph--type--columns-3 .field--name-field-column-2-3 .paragraph--type--testimonial .field--name-field-testimonial-avatar img,
      .node--type-one-page .field--name-field-landing-section .paragraph--type--columns-3 .field--name-field-column-3-3 .paragraph--type--testimonial .field--name-field-testimonial-avatar img {
        border-radius: 50%; }
    .node--type-one-page .field--name-field-landing-section .paragraph--type--columns-3 .field--name-field-column-1-3 .paragraph--type--testimonial .field--name-field-testimonial-name, .node--type-one-page .field--name-field-landing-section .paragraph--type--columns-3 .field--name-field-column-1-3 .paragraph--type--testimonial .field--name-field-testimonial-meta,
    .node--type-one-page .field--name-field-landing-section .paragraph--type--columns-3 .field--name-field-column-2-3 .paragraph--type--testimonial .field--name-field-testimonial-name,
    .node--type-one-page .field--name-field-landing-section .paragraph--type--columns-3 .field--name-field-column-2-3 .paragraph--type--testimonial .field--name-field-testimonial-meta,
    .node--type-one-page .field--name-field-landing-section .paragraph--type--columns-3 .field--name-field-column-3-3 .paragraph--type--testimonial .field--name-field-testimonial-name,
    .node--type-one-page .field--name-field-landing-section .paragraph--type--columns-3 .field--name-field-column-3-3 .paragraph--type--testimonial .field--name-field-testimonial-meta {
      text-align: center; }
    .node--type-one-page .field--name-field-landing-section .paragraph--type--columns-3 .field--name-field-column-1-3 .paragraph--type--testimonial .field--name-field-testimonial-meta,
    .node--type-one-page .field--name-field-landing-section .paragraph--type--columns-3 .field--name-field-column-2-3 .paragraph--type--testimonial .field--name-field-testimonial-meta,
    .node--type-one-page .field--name-field-landing-section .paragraph--type--columns-3 .field--name-field-column-3-3 .paragraph--type--testimonial .field--name-field-testimonial-meta {
      font-size: 0.8em;
      font-style: italic; }
  @media (min-width: 62em) {
    .node--type-one-page .field--name-field-landing-section .paragraph--type--columns-3 .field--name-field-column-1-3,
    .node--type-one-page .field--name-field-landing-section .paragraph--type--columns-3 .field--name-field-column-2-3 {
      margin-right: 1.5%; } }
  @media (min-width: 62em) {
    .node--type-one-page .paragraph--type--section-wrapper .paragraph--type--columns-3 {
      margin: 2em auto 3em !important; } }
  .node--type-one-page .paragraph--type--section-wrapper .paragraph--type--columns-3 .field--name-field-column-1-3,
  .node--type-one-page .paragraph--type--section-wrapper .paragraph--type--columns-3 .field--name-field-column-2-3,
  .node--type-one-page .paragraph--type--section-wrapper .paragraph--type--columns-3 .field--name-field-column-3-3 {
    position: relative;
    text-align: center;
    vertical-align: middle; }
    .node--type-one-page .paragraph--type--section-wrapper .paragraph--type--columns-3 .field--name-field-column-1-3 .paragraph--type--image,
    .node--type-one-page .paragraph--type--section-wrapper .paragraph--type--columns-3 .field--name-field-column-2-3 .paragraph--type--image,
    .node--type-one-page .paragraph--type--section-wrapper .paragraph--type--columns-3 .field--name-field-column-3-3 .paragraph--type--image {
      vertical-align: middle;
      display: inline-block; }
      .node--type-one-page .paragraph--type--section-wrapper .paragraph--type--columns-3 .field--name-field-column-1-3 .paragraph--type--image img,
      .node--type-one-page .paragraph--type--section-wrapper .paragraph--type--columns-3 .field--name-field-column-2-3 .paragraph--type--image img,
      .node--type-one-page .paragraph--type--section-wrapper .paragraph--type--columns-3 .field--name-field-column-3-3 .paragraph--type--image img {
        max-width: 200px;
        height: auto;
        width: 100%;
        margin: 0 auto;
        display: block; }
  .node--type-one-page .paragraph--type--cta {
    padding: 80px 0;
    text-align: center; }
    .node--type-one-page .paragraph--type--cta .field--name-field-cta-button {
      font-size: 1.5em; }
      .node--type-one-page .paragraph--type--cta .field--name-field-cta-button a {
        border-radius: 40px;
        padding: 0.8em 1.5625em;
        font-size: 1.25em;
        background-color: #c2002f;
        color: #ffffff;
        text-decoration: none;
        cursor: pointer;
        display: inline-block;
        margin: 0 auto; }
        .node--type-one-page .paragraph--type--cta .field--name-field-cta-button a:hover {
          background-color: #990025; }
  .node--type-one-page .field--name-field-video-title,
  .node--type-one-page .field--name-field-column-1-title,
  .node--type-one-page .field--name-field-col-2-title,
  .node--type-one-page .field--name-field-col-3-title,
  .node--type-one-page .field--name-field-col-5-title {
    text-align: center; }
    .node--type-one-page .field--name-field-video-title h2,
    .node--type-one-page .field--name-field-column-1-title h2,
    .node--type-one-page .field--name-field-col-2-title h2,
    .node--type-one-page .field--name-field-col-3-title h2,
    .node--type-one-page .field--name-field-col-5-title h2 {
      margin: 0 0 0.8em 0; }
  .node--type-one-page iframe {
    margin: 0 auto;
    display: block; }

body.path-webform {
  background: #c2002f; }
  body.path-webform #header {
    display: none !important; }
  body.path-webform #main {
    background-color: white;
    min-height: auto; }
  body.path-webform #block-de-theme-page-title h1 {
    display: none; }
  body.path-webform .webform-submission-conversion-form label {
    display: block;
    color: #212121; }
  body.path-webform .webform-submission-conversion-form label.required {
    color: #212121; }
    body.path-webform .webform-submission-conversion-form label.required:after {
      color: #c2002f; }
  body.path-webform .webform-submission-conversion-form input, body.path-webform .webform-submission-conversion-form textarea {
    padding: 0.5em;
    width: 100%;
    box-shadow: none;
    border: 1px solid #dedede; }
  body.path-webform .webform-submission-conversion-form input[type=submit] {
    border-radius: 40px;
    padding: 0.9em;
    background-color: #c2002f;
    color: #ffffff;
    max-width: 400px; }
    body.path-webform .webform-submission-conversion-form input[type=submit]:hover {
      background-color: #990025; }
  body.path-webform .layout-container {
    max-width: 400px;
    margin: 5em auto 0 auto !important;
    border-radius: 1em;
    width: 90%; }
    body.path-webform .layout-container .section-content {
      padding: 2em;
      border-radius: 1em; }
  body.path-webform .webform-confirmation h2, body.path-webform .webform-confirmation p {
    text-align: center; }
  body.path-webform .webform-confirmation a {
    display: none;
    text-align: center;
    text-decoration: none;
    background: #c2002f;
    max-width: 240px;
    margin: 0 auto;
    padding: 1em;
    border-radius: 2em;
    color: #ffffff;
    transition: .3s linear;
    -webkit-transition: .3s linear; }
    body.path-webform .webform-confirmation a:hover {
      background: #990025; }
  body.path-webform .webform-confirmation .webform-confirmation__message a {
    display: block;
    padding: 0.5em;
    margin: 1em auto 0 auto; }
  body.path-webform .webform-confirmation .webform-confirmation__message p:last-child {
    margin-bottom: 0; }
  body.path-webform .webform-confirmation .webform-confirmation__back {
    display: none; }

/*===============================================================================================
   ISLANDORA LANDING PAGE STYLING
 ===============================================================================================*/
@font-face {
  font-family: 'league_gothicregular';
  src: url("../../fonts/leaguegothic-regular-webfont.woff2") format("woff2"), url("../../fonts/leaguegothic-regular-webfont.woff") format("woff");
  font-weight: normal;
  font-style: normal; }

.node--type-one-page.context-islandora, .node--type-one-page.context-my-islandora, .node--type-one-page.context-myislandora,
.node--type-one-page.context-node-306 {
  /*===============================================================================================
   BANNER STYLING
 ===============================================================================================*/
  /*===============================================================================================
   MENU STYLING
 ===============================================================================================*/
  /*===============================================================================================
   SECTION STYLING
 ===============================================================================================*/ }
  .node--type-one-page.context-islandora .paragraph--type--banner-wrapper, .node--type-one-page.context-my-islandora .paragraph--type--banner-wrapper, .node--type-one-page.context-myislandora .paragraph--type--banner-wrapper,
  .node--type-one-page.context-node-306 .paragraph--type--banner-wrapper {
    background: #F1F2F1; }
    .node--type-one-page.context-islandora .paragraph--type--banner-wrapper .field--name-field-banner-content, .node--type-one-page.context-my-islandora .paragraph--type--banner-wrapper .field--name-field-banner-content, .node--type-one-page.context-myislandora .paragraph--type--banner-wrapper .field--name-field-banner-content,
    .node--type-one-page.context-node-306 .paragraph--type--banner-wrapper .field--name-field-banner-content {
      text-align: center;
      margin: 0 auto;
      padding-bottom: 1em; }
      @media (min-width: 62em) {
        .node--type-one-page.context-islandora .paragraph--type--banner-wrapper .field--name-field-banner-content, .node--type-one-page.context-my-islandora .paragraph--type--banner-wrapper .field--name-field-banner-content, .node--type-one-page.context-myislandora .paragraph--type--banner-wrapper .field--name-field-banner-content,
        .node--type-one-page.context-node-306 .paragraph--type--banner-wrapper .field--name-field-banner-content {
          padding: 0; } }
      .node--type-one-page.context-islandora .paragraph--type--banner-wrapper .field--name-field-banner-content img, .node--type-one-page.context-my-islandora .paragraph--type--banner-wrapper .field--name-field-banner-content img, .node--type-one-page.context-myislandora .paragraph--type--banner-wrapper .field--name-field-banner-content img,
      .node--type-one-page.context-node-306 .paragraph--type--banner-wrapper .field--name-field-banner-content img {
        max-width: 80px; }
    .node--type-one-page.context-islandora .paragraph--type--banner-wrapper .paragraph--type--columns-2, .node--type-one-page.context-my-islandora .paragraph--type--banner-wrapper .paragraph--type--columns-2, .node--type-one-page.context-myislandora .paragraph--type--banner-wrapper .paragraph--type--columns-2,
    .node--type-one-page.context-node-306 .paragraph--type--banner-wrapper .paragraph--type--columns-2 {
      padding: 4em 0; }
  .node--type-one-page.context-islandora .islandora-banner-menu, .node--type-one-page.context-my-islandora .islandora-banner-menu, .node--type-one-page.context-myislandora .islandora-banner-menu,
  .node--type-one-page.context-node-306 .islandora-banner-menu {
    border-top: 1px solid #cccccc;
    margin: 0 auto;
    background: #c2002f; }
    .node--type-one-page.context-islandora .islandora-banner-menu li, .node--type-one-page.context-my-islandora .islandora-banner-menu li, .node--type-one-page.context-myislandora .islandora-banner-menu li,
    .node--type-one-page.context-node-306 .islandora-banner-menu li {
      list-style: none;
      display: inline-block;
      margin: 0; }
      .node--type-one-page.context-islandora .islandora-banner-menu li a, .node--type-one-page.context-my-islandora .islandora-banner-menu li a, .node--type-one-page.context-myislandora .islandora-banner-menu li a,
      .node--type-one-page.context-node-306 .islandora-banner-menu li a {
        font-family: "league_gothicregular", serif;
        font-size: 1.5625em;
        text-transform: uppercase;
        text-decoration: none;
        color: #ffffff;
        background: #c2002f;
        padding: 1em;
        display: block;
        padding: 0.512em; }
        .node--type-one-page.context-islandora .islandora-banner-menu li a:hover, .node--type-one-page.context-my-islandora .islandora-banner-menu li a:hover, .node--type-one-page.context-myislandora .islandora-banner-menu li a:hover,
        .node--type-one-page.context-node-306 .islandora-banner-menu li a:hover {
          background: #303030; }
  .node--type-one-page.context-islandora .paragraph--type--add-background, .node--type-one-page.context-my-islandora .paragraph--type--add-background, .node--type-one-page.context-myislandora .paragraph--type--add-background,
  .node--type-one-page.context-node-306 .paragraph--type--add-background {
    padding: 0;
    min-height: 450px;
    position: relative;
    z-index: 10;
    background-position: left 35% !important;
    overflow: hidden;
    background-repeat: no-repeat; }
    @media (min-width: 0) and (max-width: 62em) {
      .node--type-one-page.context-islandora .paragraph--type--add-background, .node--type-one-page.context-my-islandora .paragraph--type--add-background, .node--type-one-page.context-myislandora .paragraph--type--add-background,
      .node--type-one-page.context-node-306 .paragraph--type--add-background {
        background-color: #c2002f;
        background-image: none !important; } }
    @media (min-width: 62em) {
      .node--type-one-page.context-islandora .paragraph--type--add-background, .node--type-one-page.context-my-islandora .paragraph--type--add-background, .node--type-one-page.context-myislandora .paragraph--type--add-background,
      .node--type-one-page.context-node-306 .paragraph--type--add-background {
        background-image: url("/themes/custom/de_theme/img/landing_page_files/desktop-bg.jpg");
        background-position: -772px 0 !important;
        background-size: 1540px !important; } }
    @media (min-width: 88em) {
      .node--type-one-page.context-islandora .paragraph--type--add-background, .node--type-one-page.context-my-islandora .paragraph--type--add-background, .node--type-one-page.context-myislandora .paragraph--type--add-background,
      .node--type-one-page.context-node-306 .paragraph--type--add-background {
        background-position: calc(50% - 800px) 0 !important; } }
    .node--type-one-page.context-islandora .paragraph--type--add-background .field--name-field-pretty-paragraphs, .node--type-one-page.context-my-islandora .paragraph--type--add-background .field--name-field-pretty-paragraphs, .node--type-one-page.context-myislandora .paragraph--type--add-background .field--name-field-pretty-paragraphs,
    .node--type-one-page.context-node-306 .paragraph--type--add-background .field--name-field-pretty-paragraphs {
      width: 100%; }
    .node--type-one-page.context-islandora .paragraph--type--add-background .paragraph--type--divider, .node--type-one-page.context-my-islandora .paragraph--type--add-background .paragraph--type--divider, .node--type-one-page.context-myislandora .paragraph--type--add-background .paragraph--type--divider,
    .node--type-one-page.context-node-306 .paragraph--type--add-background .paragraph--type--divider {
      background: #ffffff;
      margin: 0;
      height: 100%;
      width: 100%;
      position: absolute;
      right: 0;
      z-index: -1;
      top: 0;
      opacity: 0.6; }
      @media (min-width: 62em) {
        .node--type-one-page.context-islandora .paragraph--type--add-background .paragraph--type--divider, .node--type-one-page.context-my-islandora .paragraph--type--add-background .paragraph--type--divider, .node--type-one-page.context-myislandora .paragraph--type--add-background .paragraph--type--divider,
        .node--type-one-page.context-node-306 .paragraph--type--add-background .paragraph--type--divider {
          width: 50%;
          opacity: 1; } }
      @media (min-width: 62em) {
        .node--type-one-page.context-islandora .paragraph--type--add-background .paragraph--type--divider:before, .node--type-one-page.context-my-islandora .paragraph--type--add-background .paragraph--type--divider:before, .node--type-one-page.context-myislandora .paragraph--type--add-background .paragraph--type--divider:before,
        .node--type-one-page.context-node-306 .paragraph--type--add-background .paragraph--type--divider:before {
          background: inherit;
          bottom: 0;
          content: '';
          display: block;
          height: 673px;
          transform: rotate(20deg);
          width: 240px;
          left: -150px;
          top: 0;
          position: absolute;
          z-index: -1; } }
    .node--type-one-page.context-islandora .paragraph--type--add-background .paragraph--type--columns-2, .node--type-one-page.context-my-islandora .paragraph--type--add-background .paragraph--type--columns-2, .node--type-one-page.context-myislandora .paragraph--type--add-background .paragraph--type--columns-2,
    .node--type-one-page.context-node-306 .paragraph--type--add-background .paragraph--type--columns-2 {
      text-align: right; }
      .node--type-one-page.context-islandora .paragraph--type--add-background .paragraph--type--columns-2 .paragraph--type--text, .node--type-one-page.context-my-islandora .paragraph--type--add-background .paragraph--type--columns-2 .paragraph--type--text, .node--type-one-page.context-myislandora .paragraph--type--add-background .paragraph--type--columns-2 .paragraph--type--text,
      .node--type-one-page.context-node-306 .paragraph--type--add-background .paragraph--type--columns-2 .paragraph--type--text {
        margin: 3.8147em 0; }
      .node--type-one-page.context-islandora .paragraph--type--add-background .paragraph--type--columns-2 p, .node--type-one-page.context-my-islandora .paragraph--type--add-background .paragraph--type--columns-2 p, .node--type-one-page.context-myislandora .paragraph--type--add-background .paragraph--type--columns-2 p,
      .node--type-one-page.context-node-306 .paragraph--type--add-background .paragraph--type--columns-2 p {
        color: #000000; }
  .node--type-one-page.context-islandora .paragraph--type--text h2, .node--type-one-page.context-my-islandora .paragraph--type--text h2, .node--type-one-page.context-myislandora .paragraph--type--text h2,
  .node--type-one-page.context-node-306 .paragraph--type--text h2 {
    font-family: "league_gothicregular", serif;
    font-size: 3.05176em;
    text-transform: uppercase;
    margin: 0;
    line-height: 1; }
  .node--type-one-page.context-islandora .paragraph--type--text h4.divider-title, .node--type-one-page.context-my-islandora .paragraph--type--text h4.divider-title, .node--type-one-page.context-myislandora .paragraph--type--text h4.divider-title,
  .node--type-one-page.context-node-306 .paragraph--type--text h4.divider-title {
    width: 100%;
    text-align: left;
    border-bottom: 2px solid #000000;
    padding-bottom: 0.512em;
    text-transform: uppercase;
    font-weight: normal;
    font-size: 1.95312em;
    font-family: "league_gothicregular", serif; }
  .node--type-one-page.context-islandora .paragraph--type--text h2, .node--type-one-page.context-islandora .paragraph--type--text h4, .node--type-one-page.context-my-islandora .paragraph--type--text h2, .node--type-one-page.context-my-islandora .paragraph--type--text h4, .node--type-one-page.context-myislandora .paragraph--type--text h2, .node--type-one-page.context-myislandora .paragraph--type--text h4,
  .node--type-one-page.context-node-306 .paragraph--type--text h2,
  .node--type-one-page.context-node-306 .paragraph--type--text h4 {
    color: #303030; }
  .node--type-one-page.context-islandora .paragraph--type--text .sub-title, .node--type-one-page.context-my-islandora .paragraph--type--text .sub-title, .node--type-one-page.context-myislandora .paragraph--type--text .sub-title,
  .node--type-one-page.context-node-306 .paragraph--type--text .sub-title {
    font-size: 1.95312em;
    margin-bottom: 0.8em; }
  .node--type-one-page.context-islandora .paragraph--type--text .btn-primary, .node--type-one-page.context-islandora .paragraph--type--text .path-islandora-blog .layout-container .view-content .views-row .node-readmore a, .path-islandora-blog .layout-container .view-content .views-row .node-readmore .node--type-one-page.context-islandora .paragraph--type--text a, .node--type-one-page.context-islandora .paragraph--type--text .path-islandora-blog .layout-container article.node--view-mode-full .views-row .node-readmore a, .path-islandora-blog .layout-container article.node--view-mode-full .views-row .node-readmore .node--type-one-page.context-islandora .paragraph--type--text a, .node--type-one-page.context-islandora .paragraph--type--text .node--type-article .layout-container .view-content .views-row .node-readmore a, .node--type-article .layout-container .view-content .views-row .node-readmore .node--type-one-page.context-islandora .paragraph--type--text a, .node--type-one-page.context-islandora .paragraph--type--text .node--type-article .layout-container article.node--view-mode-full .views-row .node-readmore a, .node--type-article .layout-container article.node--view-mode-full .views-row .node-readmore .node--type-one-page.context-islandora .paragraph--type--text a, .node--type-one-page.context-my-islandora .paragraph--type--text .btn-primary, .node--type-one-page.context-my-islandora .paragraph--type--text .path-islandora-blog .layout-container .view-content .views-row .node-readmore a, .path-islandora-blog .layout-container .view-content .views-row .node-readmore .node--type-one-page.context-my-islandora .paragraph--type--text a, .node--type-one-page.context-my-islandora .paragraph--type--text .path-islandora-blog .layout-container article.node--view-mode-full .views-row .node-readmore a, .path-islandora-blog .layout-container article.node--view-mode-full .views-row .node-readmore .node--type-one-page.context-my-islandora .paragraph--type--text a, .node--type-one-page.context-my-islandora .paragraph--type--text .node--type-article .layout-container .view-content .views-row .node-readmore a, .node--type-article .layout-container .view-content .views-row .node-readmore .node--type-one-page.context-my-islandora .paragraph--type--text a, .node--type-one-page.context-my-islandora .paragraph--type--text .node--type-article .layout-container article.node--view-mode-full .views-row .node-readmore a, .node--type-article .layout-container article.node--view-mode-full .views-row .node-readmore .node--type-one-page.context-my-islandora .paragraph--type--text a, .node--type-one-page.context-myislandora .paragraph--type--text .btn-primary, .node--type-one-page.context-myislandora .paragraph--type--text .path-islandora-blog .layout-container .view-content .views-row .node-readmore a, .path-islandora-blog .layout-container .view-content .views-row .node-readmore .node--type-one-page.context-myislandora .paragraph--type--text a, .node--type-one-page.context-myislandora .paragraph--type--text .path-islandora-blog .layout-container article.node--view-mode-full .views-row .node-readmore a, .path-islandora-blog .layout-container article.node--view-mode-full .views-row .node-readmore .node--type-one-page.context-myislandora .paragraph--type--text a, .node--type-one-page.context-myislandora .paragraph--type--text .node--type-article .layout-container .view-content .views-row .node-readmore a, .node--type-article .layout-container .view-content .views-row .node-readmore .node--type-one-page.context-myislandora .paragraph--type--text a, .node--type-one-page.context-myislandora .paragraph--type--text .node--type-article .layout-container article.node--view-mode-full .views-row .node-readmore a, .node--type-article .layout-container article.node--view-mode-full .views-row .node-readmore .node--type-one-page.context-myislandora .paragraph--type--text a,
  .node--type-one-page.context-node-306 .paragraph--type--text .btn-primary,
  .node--type-one-page.context-node-306 .paragraph--type--text .path-islandora-blog .layout-container .view-content .views-row .node-readmore a, .path-islandora-blog .layout-container .view-content .views-row .node-readmore
  .node--type-one-page.context-node-306 .paragraph--type--text a,
  .node--type-one-page.context-node-306 .paragraph--type--text .path-islandora-blog .layout-container article.node--view-mode-full .views-row .node-readmore a, .path-islandora-blog .layout-container article.node--view-mode-full .views-row .node-readmore
  .node--type-one-page.context-node-306 .paragraph--type--text a,
  .node--type-one-page.context-node-306 .paragraph--type--text .node--type-article .layout-container .view-content .views-row .node-readmore a, .node--type-article .layout-container .view-content .views-row .node-readmore
  .node--type-one-page.context-node-306 .paragraph--type--text a,
  .node--type-one-page.context-node-306 .paragraph--type--text .node--type-article .layout-container article.node--view-mode-full .views-row .node-readmore a, .node--type-article .layout-container article.node--view-mode-full .views-row .node-readmore
  .node--type-one-page.context-node-306 .paragraph--type--text a {
    margin: 1.25em 0 0 0; }
  .node--type-one-page.context-islandora .paragraph--type--columns-3, .node--type-one-page.context-my-islandora .paragraph--type--columns-3, .node--type-one-page.context-myislandora .paragraph--type--columns-3,
  .node--type-one-page.context-node-306 .paragraph--type--columns-3 {
    width: 90%;
    margin: auto; }
    .node--type-one-page.context-islandora .paragraph--type--columns-3 .field--name-field-column-1-3,
    .node--type-one-page.context-islandora .paragraph--type--columns-3 .field--name-field-column-2-3,
    .node--type-one-page.context-islandora .paragraph--type--columns-3 .field--name-field-column-3-3, .node--type-one-page.context-my-islandora .paragraph--type--columns-3 .field--name-field-column-1-3,
    .node--type-one-page.context-my-islandora .paragraph--type--columns-3 .field--name-field-column-2-3,
    .node--type-one-page.context-my-islandora .paragraph--type--columns-3 .field--name-field-column-3-3, .node--type-one-page.context-myislandora .paragraph--type--columns-3 .field--name-field-column-1-3,
    .node--type-one-page.context-myislandora .paragraph--type--columns-3 .field--name-field-column-2-3,
    .node--type-one-page.context-myislandora .paragraph--type--columns-3 .field--name-field-column-3-3,
    .node--type-one-page.context-node-306 .paragraph--type--columns-3 .field--name-field-column-1-3,
    .node--type-one-page.context-node-306 .paragraph--type--columns-3 .field--name-field-column-2-3,
    .node--type-one-page.context-node-306 .paragraph--type--columns-3 .field--name-field-column-3-3 {
      vertical-align: top; }
      .node--type-one-page.context-islandora .paragraph--type--columns-3 .field--name-field-column-1-3 .sub-title,
      .node--type-one-page.context-islandora .paragraph--type--columns-3 .field--name-field-column-2-3 .sub-title,
      .node--type-one-page.context-islandora .paragraph--type--columns-3 .field--name-field-column-3-3 .sub-title, .node--type-one-page.context-my-islandora .paragraph--type--columns-3 .field--name-field-column-1-3 .sub-title,
      .node--type-one-page.context-my-islandora .paragraph--type--columns-3 .field--name-field-column-2-3 .sub-title,
      .node--type-one-page.context-my-islandora .paragraph--type--columns-3 .field--name-field-column-3-3 .sub-title, .node--type-one-page.context-myislandora .paragraph--type--columns-3 .field--name-field-column-1-3 .sub-title,
      .node--type-one-page.context-myislandora .paragraph--type--columns-3 .field--name-field-column-2-3 .sub-title,
      .node--type-one-page.context-myislandora .paragraph--type--columns-3 .field--name-field-column-3-3 .sub-title,
      .node--type-one-page.context-node-306 .paragraph--type--columns-3 .field--name-field-column-1-3 .sub-title,
      .node--type-one-page.context-node-306 .paragraph--type--columns-3 .field--name-field-column-2-3 .sub-title,
      .node--type-one-page.context-node-306 .paragraph--type--columns-3 .field--name-field-column-3-3 .sub-title {
        text-align: left; }
    .node--type-one-page.context-islandora .paragraph--type--columns-3 .paragraph--type--text p, .node--type-one-page.context-my-islandora .paragraph--type--columns-3 .paragraph--type--text p, .node--type-one-page.context-myislandora .paragraph--type--columns-3 .paragraph--type--text p,
    .node--type-one-page.context-node-306 .paragraph--type--columns-3 .paragraph--type--text p {
      text-align: left; }
  .node--type-one-page.context-islandora .paragraph--type--columns-2 .field--name-field-first-column, .node--type-one-page.context-my-islandora .paragraph--type--columns-2 .field--name-field-first-column, .node--type-one-page.context-myislandora .paragraph--type--columns-2 .field--name-field-first-column,
  .node--type-one-page.context-node-306 .paragraph--type--columns-2 .field--name-field-first-column {
    text-align: left;
    vertical-align: top; }
  .node--type-one-page.context-islandora .paragraph--type--columns-2 .field--name-field-second-column, .node--type-one-page.context-my-islandora .paragraph--type--columns-2 .field--name-field-second-column, .node--type-one-page.context-myislandora .paragraph--type--columns-2 .field--name-field-second-column,
  .node--type-one-page.context-node-306 .paragraph--type--columns-2 .field--name-field-second-column {
    text-align: left;
    vertical-align: top; }
    @media (min-width: 62em) {
      .node--type-one-page.context-islandora .paragraph--type--columns-2 .field--name-field-second-column, .node--type-one-page.context-my-islandora .paragraph--type--columns-2 .field--name-field-second-column, .node--type-one-page.context-myislandora .paragraph--type--columns-2 .field--name-field-second-column,
      .node--type-one-page.context-node-306 .paragraph--type--columns-2 .field--name-field-second-column {
        text-align: right; } }
  .node--type-one-page.context-islandora .youtube-container, .node--type-one-page.context-my-islandora .youtube-container, .node--type-one-page.context-myislandora .youtube-container,
  .node--type-one-page.context-node-306 .youtube-container {
    margin: 0 !important; }
  .node--type-one-page.context-islandora .paragraph--type--video, .node--type-one-page.context-my-islandora .paragraph--type--video, .node--type-one-page.context-myislandora .paragraph--type--video,
  .node--type-one-page.context-node-306 .paragraph--type--video {
    margin: 0 0 3.05176em 0; }
    @media (min-width: 48em) {
      .node--type-one-page.context-islandora .paragraph--type--video, .node--type-one-page.context-my-islandora .paragraph--type--video, .node--type-one-page.context-myislandora .paragraph--type--video,
      .node--type-one-page.context-node-306 .paragraph--type--video {
        margin: 0 !important; } }
  .node--type-one-page.context-islandora .paragraph--type--column-1, .node--type-one-page.context-my-islandora .paragraph--type--column-1, .node--type-one-page.context-myislandora .paragraph--type--column-1,
  .node--type-one-page.context-node-306 .paragraph--type--column-1 {
    text-align: center; }
  .node--type-one-page.context-islandora .paragraph--type--section-wrapper, .node--type-one-page.context-my-islandora .paragraph--type--section-wrapper, .node--type-one-page.context-myislandora .paragraph--type--section-wrapper,
  .node--type-one-page.context-node-306 .paragraph--type--section-wrapper {
    margin-top: 3.8147em;
    padding: 1em 0 0 0; }
    .node--type-one-page.context-islandora .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-first-column, .node--type-one-page.context-islandora .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-second-column, .node--type-one-page.context-islandora .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-first-column, .node--type-one-page.context-islandora .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-second-column, .node--type-one-page.context-my-islandora .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-first-column, .node--type-one-page.context-my-islandora .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-second-column, .node--type-one-page.context-my-islandora .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-first-column, .node--type-one-page.context-my-islandora .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-second-column, .node--type-one-page.context-myislandora .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-first-column, .node--type-one-page.context-myislandora .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-second-column, .node--type-one-page.context-myislandora .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-first-column, .node--type-one-page.context-myislandora .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-second-column,
    .node--type-one-page.context-node-306 .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-first-column,
    .node--type-one-page.context-node-306 .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-second-column,
    .node--type-one-page.context-node-306 .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-first-column,
    .node--type-one-page.context-node-306 .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-second-column {
      width: 100%; }
      @media (min-width: 48em) {
        .node--type-one-page.context-islandora .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-first-column, .node--type-one-page.context-islandora .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-second-column, .node--type-one-page.context-islandora .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-first-column, .node--type-one-page.context-islandora .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-second-column, .node--type-one-page.context-my-islandora .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-first-column, .node--type-one-page.context-my-islandora .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-second-column, .node--type-one-page.context-my-islandora .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-first-column, .node--type-one-page.context-my-islandora .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-second-column, .node--type-one-page.context-myislandora .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-first-column, .node--type-one-page.context-myislandora .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-second-column, .node--type-one-page.context-myislandora .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-first-column, .node--type-one-page.context-myislandora .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-second-column,
        .node--type-one-page.context-node-306 .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-first-column,
        .node--type-one-page.context-node-306 .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-second-column,
        .node--type-one-page.context-node-306 .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-first-column,
        .node--type-one-page.context-node-306 .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-second-column {
          width: 49.7%;
          display: inline-block;
          margin: 0; } }
      .node--type-one-page.context-islandora .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-first-column .field--name-field-image, .node--type-one-page.context-islandora .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-second-column .field--name-field-image, .node--type-one-page.context-islandora .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-first-column .field--name-field-image, .node--type-one-page.context-islandora .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-second-column .field--name-field-image, .node--type-one-page.context-my-islandora .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-first-column .field--name-field-image, .node--type-one-page.context-my-islandora .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-second-column .field--name-field-image, .node--type-one-page.context-my-islandora .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-first-column .field--name-field-image, .node--type-one-page.context-my-islandora .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-second-column .field--name-field-image, .node--type-one-page.context-myislandora .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-first-column .field--name-field-image, .node--type-one-page.context-myislandora .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-second-column .field--name-field-image, .node--type-one-page.context-myislandora .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-first-column .field--name-field-image, .node--type-one-page.context-myislandora .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-second-column .field--name-field-image,
      .node--type-one-page.context-node-306 .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-first-column .field--name-field-image,
      .node--type-one-page.context-node-306 .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-second-column .field--name-field-image,
      .node--type-one-page.context-node-306 .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-first-column .field--name-field-image,
      .node--type-one-page.context-node-306 .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-second-column .field--name-field-image {
        display: none; }
        @media (min-width: 48em) {
          .node--type-one-page.context-islandora .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-first-column .field--name-field-image, .node--type-one-page.context-islandora .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-second-column .field--name-field-image, .node--type-one-page.context-islandora .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-first-column .field--name-field-image, .node--type-one-page.context-islandora .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-second-column .field--name-field-image, .node--type-one-page.context-my-islandora .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-first-column .field--name-field-image, .node--type-one-page.context-my-islandora .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-second-column .field--name-field-image, .node--type-one-page.context-my-islandora .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-first-column .field--name-field-image, .node--type-one-page.context-my-islandora .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-second-column .field--name-field-image, .node--type-one-page.context-myislandora .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-first-column .field--name-field-image, .node--type-one-page.context-myislandora .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-second-column .field--name-field-image, .node--type-one-page.context-myislandora .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-first-column .field--name-field-image, .node--type-one-page.context-myislandora .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-second-column .field--name-field-image,
          .node--type-one-page.context-node-306 .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-first-column .field--name-field-image,
          .node--type-one-page.context-node-306 .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-second-column .field--name-field-image,
          .node--type-one-page.context-node-306 .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-first-column .field--name-field-image,
          .node--type-one-page.context-node-306 .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-second-column .field--name-field-image {
            display: block; } }
    @media (min-width: 48em) {
      .node--type-one-page.context-islandora .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-first-column, .node--type-one-page.context-islandora .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-first-column, .node--type-one-page.context-my-islandora .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-first-column, .node--type-one-page.context-my-islandora .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-first-column, .node--type-one-page.context-myislandora .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-first-column, .node--type-one-page.context-myislandora .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-first-column,
      .node--type-one-page.context-node-306 .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-first-column,
      .node--type-one-page.context-node-306 .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-first-column {
        padding-right: 1em; } }
    @media (min-width: 48em) {
      .node--type-one-page.context-islandora .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-second-column, .node--type-one-page.context-islandora .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-second-column, .node--type-one-page.context-my-islandora .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-second-column, .node--type-one-page.context-my-islandora .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-second-column, .node--type-one-page.context-myislandora .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-second-column, .node--type-one-page.context-myislandora .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-second-column,
      .node--type-one-page.context-node-306 .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-second-column,
      .node--type-one-page.context-node-306 .paragraph--type--section-wrapper .paragraph--type--columns-2 .field--name-field-second-column {
        padding-left: 1em; } }
  .node--type-one-page.context-islandora .field__item:nth-child(4) .paragraph--type--section-wrapper, .node--type-one-page.context-my-islandora .field__item:nth-child(4) .paragraph--type--section-wrapper, .node--type-one-page.context-myislandora .field__item:nth-child(4) .paragraph--type--section-wrapper,
  .node--type-one-page.context-node-306 .field__item:nth-child(4) .paragraph--type--section-wrapper {
    padding-top: 0; }
  .node--type-one-page.context-islandora .field__item:nth-child(5) .paragraph--type--section-wrapper, .node--type-one-page.context-my-islandora .field__item:nth-child(5) .paragraph--type--section-wrapper, .node--type-one-page.context-myislandora .field__item:nth-child(5) .paragraph--type--section-wrapper,
  .node--type-one-page.context-node-306 .field__item:nth-child(5) .paragraph--type--section-wrapper {
    margin-bottom: 5em; }
  .node--type-one-page.context-islandora .youtube-container, .node--type-one-page.context-my-islandora .youtube-container, .node--type-one-page.context-myislandora .youtube-container,
  .node--type-one-page.context-node-306 .youtube-container {
    position: relative;
    width: 100%;
    margin: 0 auto !important;
    max-width: 600px;
    padding-bottom: 56%; }
    .node--type-one-page.context-islandora .youtube-container iframe, .node--type-one-page.context-my-islandora .youtube-container iframe, .node--type-one-page.context-myislandora .youtube-container iframe,
    .node--type-one-page.context-node-306 .youtube-container iframe {
      margin: 0 auto;
      display: block;
      width: 100%;
      height: 100%;
      position: absolute;
      left: 0;
      top: 0; }
  .node--type-one-page.context-islandora .webform-submission-form, .node--type-one-page.context-my-islandora .webform-submission-form, .node--type-one-page.context-myislandora .webform-submission-form,
  .node--type-one-page.context-node-306 .webform-submission-form {
    max-width: 400px;
    margin: 0 auto;
    text-align: left; }
    @media (min-width: 62em) {
      .node--type-one-page.context-islandora .webform-submission-form, .node--type-one-page.context-my-islandora .webform-submission-form, .node--type-one-page.context-myislandora .webform-submission-form,
      .node--type-one-page.context-node-306 .webform-submission-form {
        margin-right: 0; } }
  .node--type-one-page.context-islandora .webform-submission-form input, .node--type-one-page.context-islandora .webform-submission-form textarea, .node--type-one-page.context-my-islandora .webform-submission-form input, .node--type-one-page.context-my-islandora .webform-submission-form textarea, .node--type-one-page.context-myislandora .webform-submission-form input, .node--type-one-page.context-myislandora .webform-submission-form textarea,
  .node--type-one-page.context-node-306 .webform-submission-form input,
  .node--type-one-page.context-node-306 .webform-submission-form textarea {
    width: 100%;
    border: solid 1px #fff;
    padding: 0.5em;
    margin-top: 0.5em;
    color: #000000; }
  .node--type-one-page.context-islandora .webform-submission-form label, .node--type-one-page.context-my-islandora .webform-submission-form label, .node--type-one-page.context-myislandora .webform-submission-form label,
  .node--type-one-page.context-node-306 .webform-submission-form label {
    color: #303030 !important; }
  .node--type-one-page.context-islandora .webform-submission-form .webform-button--submit, .node--type-one-page.context-my-islandora .webform-submission-form .webform-button--submit, .node--type-one-page.context-myislandora .webform-submission-form .webform-button--submit,
  .node--type-one-page.context-node-306 .webform-submission-form .webform-button--submit {
    border-radius: 40px;
    padding: 0.9em;
    border-color: #c2002f;
    background-color: #c2002f;
    color: #ffffff; }
    .node--type-one-page.context-islandora .webform-submission-form .webform-button--submit:hover, .node--type-one-page.context-my-islandora .webform-submission-form .webform-button--submit:hover, .node--type-one-page.context-myislandora .webform-submission-form .webform-button--submit:hover,
    .node--type-one-page.context-node-306 .webform-submission-form .webform-button--submit:hover {
      background: #990025;
      border-color: #990025; }
  .node--type-one-page.context-islandora .node--type-one-page .paragraph--type--column-1,
  .node--type-one-page.context-islandora .node--type-one-page .paragraph--type--columns-2-3,
  .node--type-one-page.context-islandora .node--type-one-page .paragraph--type--columns-2,
  .node--type-one-page.context-islandora .node--type-one-page .paragraph--type--columns-3,
  .node--type-one-page.context-islandora .node--type-one-page .paragraph--type--columns-5, .node--type-one-page.context-my-islandora .node--type-one-page .paragraph--type--column-1,
  .node--type-one-page.context-my-islandora .node--type-one-page .paragraph--type--columns-2-3,
  .node--type-one-page.context-my-islandora .node--type-one-page .paragraph--type--columns-2,
  .node--type-one-page.context-my-islandora .node--type-one-page .paragraph--type--columns-3,
  .node--type-one-page.context-my-islandora .node--type-one-page .paragraph--type--columns-5, .node--type-one-page.context-myislandora .node--type-one-page .paragraph--type--column-1,
  .node--type-one-page.context-myislandora .node--type-one-page .paragraph--type--columns-2-3,
  .node--type-one-page.context-myislandora .node--type-one-page .paragraph--type--columns-2,
  .node--type-one-page.context-myislandora .node--type-one-page .paragraph--type--columns-3,
  .node--type-one-page.context-myislandora .node--type-one-page .paragraph--type--columns-5,
  .node--type-one-page.context-node-306 .node--type-one-page .paragraph--type--column-1,
  .node--type-one-page.context-node-306 .node--type-one-page .paragraph--type--columns-2-3,
  .node--type-one-page.context-node-306 .node--type-one-page .paragraph--type--columns-2,
  .node--type-one-page.context-node-306 .node--type-one-page .paragraph--type--columns-3,
  .node--type-one-page.context-node-306 .node--type-one-page .paragraph--type--columns-5 {
    margin-bottom: 0 !important; }

.webform-submission-wiphe-form {
  max-width: 350px;
  margin: 0 auto;
  text-align: left;
  float: left; }
  @media (min-width: 56em) {
    .webform-submission-wiphe-form {
      margin-top: -250px; } }
  @media (min-width: 62em) {
    .webform-submission-wiphe-form {
      max-width: 400px;
      margin-right: 0; } }

.webform-submission-wiphe-form input, .webform-submission-wiphe-form textarea {
  width: 100%;
  border: solid 1px #000;
  padding: 0.5em;
  margin-top: 0.5em;
  color: #000000; }

.webform-submission-wiphe-form label {
  color: #303030 !important; }

.webform-submission-wiphe-form .webform-button--submit {
  border-radius: 40px;
  padding: 0.9em;
  border-color: #c2002f;
  background-color: #c2002f;
  color: #ffffff; }
  .webform-submission-wiphe-form .webform-button--submit:hover {
    background: #990025;
    border-color: #990025; }

ul.logo-list {
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  flex-wrap: wrap;
  -ms-flex-align: center;
  -webkit-align-items: center;
  -webkit-box-align: center;
  align-items: center;
  margin-left: -10px;
  margin-top: -10px; }
  ul.logo-list li {
    flex: 1 0 calc(33% - 10px);
    box-sizing: border-box;
    padding: 10px;
    margin-left: 10px;
    margin-top: 10px;
    list-style: none; }
    @media (min-width: 56em) {
      ul.logo-list li {
        flex: 1 0 calc(15% - 10px); } }
  ul.logo-list img {
    float: left;
    width: 100%;
    -webkit-transform: translate3d(0, 0, 0); }

@media (min-width: 56em) {
  .clutch-logo {
    float: right; } }

@media (min-width: 1268px) {
  .clutch-logo {
    margin-right: 150px; } }

@media (min-width: 56em) {
  .clutch-logo img {
    margin-top: 143px; } }

/*==============================================================================================
   ECHIDNET LANDING PAGE STYLING
 ===============================================================================================*/
.node--type-one-page.context-echidnet,
.node--type-one-page.context-node-346 {
  font-family: "Muli", Arial, sans-serif;
  /*===============================================================================================
   SECTION STYLING
 ===============================================================================================*/
  /*===============================================================================================
  SUBMISSION FORM
===============================================================================================*/ }
  .node--type-one-page.context-echidnet .field--name-field-header .field--name-field-first-column a,
  .node--type-one-page.context-node-346 .field--name-field-header .field--name-field-first-column a {
    width: 5em; }
  .node--type-one-page.context-echidnet .centre-text,
  .node--type-one-page.context-node-346 .centre-text {
    text-align: center; }
  .node--type-one-page.context-echidnet .red-title,
  .node--type-one-page.context-node-346 .red-title {
    color: #c2002f; }
  .node--type-one-page.context-echidnet h2, .node--type-one-page.context-echidnet h3, .node--type-one-page.context-echidnet h4,
  .node--type-one-page.context-node-346 h2,
  .node--type-one-page.context-node-346 h3,
  .node--type-one-page.context-node-346 h4 {
    font-weight: 900;
    font-family: "Muli", Arial, sans-serif !important; }
  .node--type-one-page.context-echidnet h2,
  .node--type-one-page.context-node-346 h2 {
    margin-bottom: 0;
    font-family: "Muli", Arial, sans-serif !important; }
    .node--type-one-page.context-echidnet h2 .centre-text,
    .node--type-one-page.context-node-346 h2 .centre-text {
      padding-top: 1em; }
  .node--type-one-page.context-echidnet h4.header,
  .node--type-one-page.context-node-346 h4.header {
    font-family: "Muli", Arial, sans-serif !important; }
  .node--type-one-page.context-echidnet h3,
  .node--type-one-page.context-node-346 h3 {
    margin-bottom: 0;
    font-size: 1.5em; }
    @media (min-width: 62em) {
      .node--type-one-page.context-echidnet h3,
      .node--type-one-page.context-node-346 h3 {
        font-size: 1.8em;
        max-width: 750px;
        margin: 0 auto; } }
  .node--type-one-page.context-echidnet h3.features,
  .node--type-one-page.context-node-346 h3.features {
    font-size: 1.9em;
    margin: 0; }
  .node--type-one-page.context-echidnet p,
  .node--type-one-page.context-node-346 p {
    line-height: 1.5em; }
  .node--type-one-page.context-echidnet p.centre-text,
  .node--type-one-page.context-node-346 p.centre-text {
    font-size: 1.125em;
    margin-top: 1em; }
  .node--type-one-page.context-echidnet .menu,
  .node--type-one-page.context-node-346 .menu {
    margin: 0 auto;
    max-width: 324px;
    padding-top: 2em;
    padding-bottom: 6em; }
    .node--type-one-page.context-echidnet .menu li,
    .node--type-one-page.context-node-346 .menu li {
      list-style-image: none;
      list-style-type: none;
      list-style: none;
      margin-left: 0; }
    @media (min-width: 62em) {
      .node--type-one-page.context-echidnet .menu,
      .node--type-one-page.context-node-346 .menu {
        float: right;
        text-align: right;
        width: 401px;
        max-width: 401px;
        padding: 0; } }
    .node--type-one-page.context-echidnet .menu li,
    .node--type-one-page.context-node-346 .menu li {
      float: left;
      margin-right: 5%;
      margin-bottom: 1em; }
      @media (min-width: 62em) {
        .node--type-one-page.context-echidnet .menu li,
        .node--type-one-page.context-node-346 .menu li {
          margin-right: 10%;
          margin-bottom: 3em; } }
      .node--type-one-page.context-echidnet .menu li:last-child,
      .node--type-one-page.context-node-346 .menu li:last-child {
        margin-right: 0; }
      .node--type-one-page.context-echidnet .menu li a,
      .node--type-one-page.context-node-346 .menu li a {
        text-decoration: none; }
        .node--type-one-page.context-echidnet .menu li a:hover,
        .node--type-one-page.context-node-346 .menu li a:hover {
          text-decoration: underline; }
  .node--type-one-page.context-echidnet .bullets,
  .node--type-one-page.context-node-346 .bullets {
    margin-top: 1em;
    font-size: 1em;
    line-height: 1.5em; }
    .node--type-one-page.context-echidnet .bullets li,
    .node--type-one-page.context-node-346 .bullets li {
      color: #000000; }
  .node--type-one-page.context-echidnet .bullets-two-col,
  .node--type-one-page.context-node-346 .bullets-two-col {
    margin-top: 1em;
    margin-left: 2em; }
    @media (min-width: 62em) {
      .node--type-one-page.context-echidnet .bullets-two-col,
      .node--type-one-page.context-node-346 .bullets-two-col {
        column-count: 2;
        -webkit-column-count: 2;
        -moz-column-count: 2; }
        .node--type-one-page.context-echidnet .bullets-two-col li,
        .node--type-one-page.context-node-346 .bullets-two-col li {
          list-style-position: inside;
          padding-left: 1.28571429em;
          text-indent: -1.28571429em; }
          .node--type-one-page.context-echidnet .bullets-two-col li p,
          .node--type-one-page.context-node-346 .bullets-two-col li p {
            display: inline; } }
    .node--type-one-page.context-echidnet .bullets-two-col .multi-level-list,
    .node--type-one-page.context-node-346 .bullets-two-col .multi-level-list {
      margin-left: 2em; }
  .node--type-one-page.context-echidnet .social-menu,
  .node--type-one-page.context-node-346 .social-menu {
    margin: 0 auto;
    margin-bottom: 0;
    max-width: 45px; }
    .node--type-one-page.context-echidnet .social-menu li,
    .node--type-one-page.context-node-346 .social-menu li {
      list-style-image: none;
      list-style-type: none;
      list-style: none;
      margin-left: 0; }
    @media (min-width: 62em) {
      .node--type-one-page.context-echidnet .social-menu,
      .node--type-one-page.context-node-346 .social-menu {
        max-width: 328px; } }
    .node--type-one-page.context-echidnet .social-menu li,
    .node--type-one-page.context-node-346 .social-menu li {
      margin-top: 2em;
      width: 45px;
      background: white;
      height: 45px;
      text-align: center;
      border-radius: 4px;
      float: left; }
      .node--type-one-page.context-echidnet .social-menu li:hover,
      .node--type-one-page.context-node-346 .social-menu li:hover {
        opacity: 0.5; }
      @media (min-width: 62em) {
        .node--type-one-page.context-echidnet .social-menu li,
        .node--type-one-page.context-node-346 .social-menu li {
          margin-right: 15%; }
          .node--type-one-page.context-echidnet .social-menu li:last-child,
          .node--type-one-page.context-node-346 .social-menu li:last-child {
            margin-right: 0; } }
      .node--type-one-page.context-echidnet .social-menu li a,
      .node--type-one-page.context-node-346 .social-menu li a {
        font-size: 1.5em;
        line-height: 45px;
        text-decoration: none;
        text-align: center;
        color: #c2002f; }
        .node--type-one-page.context-echidnet .social-menu li a .visuallyhidden,
        .node--type-one-page.context-node-346 .social-menu li a .visuallyhidden {
          clip: rect(0px 0px 0px 0px);
          height: 1px;
          position: absolute;
          width: 1px;
          border-width: 0px;
          border-style: initial;
          border-color: initial;
          border-image: initial;
          margin: -1px;
          overflow: hidden;
          padding: 0px; }
  .node--type-one-page.context-echidnet .logo-list,
  .node--type-one-page.context-node-346 .logo-list {
    margin: 0 2em; }
    @media (min-width: 62em) {
      .node--type-one-page.context-echidnet .logo-list,
      .node--type-one-page.context-node-346 .logo-list {
        width: 100%;
        margin: 0; } }
    .node--type-one-page.context-echidnet .logo-list .slick-prev, .node--type-one-page.context-echidnet .logo-list .slick-next,
    .node--type-one-page.context-node-346 .logo-list .slick-prev,
    .node--type-one-page.context-node-346 .logo-list .slick-next {
      background-color: white !important; }
    .node--type-one-page.context-echidnet .logo-list .slick-prev:before, .node--type-one-page.context-echidnet .logo-list .slick-next:before,
    .node--type-one-page.context-node-346 .logo-list .slick-prev:before,
    .node--type-one-page.context-node-346 .logo-list .slick-next:before {
      color: #c2002f !important;
      font-size: 25px !important; }
  .node--type-one-page.context-echidnet .field--name-field-footer p,
  .node--type-one-page.context-node-346 .field--name-field-footer p {
    font-weight: 900; }
  @media (min-width: 62em) {
    .node--type-one-page.context-echidnet .paragraph--type--add-background,
    .node--type-one-page.context-node-346 .paragraph--type--add-background {
      padding: 5em 0 5em 0; } }
  .node--type-one-page.context-echidnet .node--type-one-page .paragraph--type--column-1,
  .node--type-one-page.context-node-346 .node--type-one-page .paragraph--type--column-1 {
    margin-bottom: 0 !important; }
  .node--type-one-page.context-echidnet .field--name-field-landing-section > .field__item:nth-child(2),
  .node--type-one-page.context-node-346 .field--name-field-landing-section > .field__item:nth-child(2) {
    margin-top: 2em; }
    @media (min-width: 62em) {
      .node--type-one-page.context-echidnet .field--name-field-landing-section > .field__item:nth-child(2),
      .node--type-one-page.context-node-346 .field--name-field-landing-section > .field__item:nth-child(2) {
        margin-top: 6em; } }
    @media (min-width: 62em) {
      .node--type-one-page.context-echidnet .field--name-field-landing-section > .field__item:nth-child(2) .paragraph--type--columns-2 .field--name-field-first-column,
      .node--type-one-page.context-node-346 .field--name-field-landing-section > .field__item:nth-child(2) .paragraph--type--columns-2 .field--name-field-first-column {
        width: 57%;
        clear: both;
        margin-bottom: 6em; } }
    .node--type-one-page.context-echidnet .field--name-field-landing-section > .field__item:nth-child(2) .paragraph--type--columns-2 .field--name-field-second-column,
    .node--type-one-page.context-node-346 .field--name-field-landing-section > .field__item:nth-child(2) .paragraph--type--columns-2 .field--name-field-second-column {
      margin-bottom: 5em; }
      @media (min-width: 62em) {
        .node--type-one-page.context-echidnet .field--name-field-landing-section > .field__item:nth-child(2) .paragraph--type--columns-2 .field--name-field-second-column,
        .node--type-one-page.context-node-346 .field--name-field-landing-section > .field__item:nth-child(2) .paragraph--type--columns-2 .field--name-field-second-column {
          margin: 0;
          width: 40%;
          float: right; } }
  .node--type-one-page.context-echidnet .field--name-field-landing-section > .field__item:nth-child(5) .paragraph--type--section-wrapper,
  .node--type-one-page.context-node-346 .field--name-field-landing-section > .field__item:nth-child(5) .paragraph--type--section-wrapper {
    padding-bottom: 0; }
  .node--type-one-page.context-echidnet .field--name-field-landing-section > .field__item:nth-child(6),
  .node--type-one-page.context-node-346 .field--name-field-landing-section > .field__item:nth-child(6) {
    text-align: center;
    font-weight: bold; }
  .node--type-one-page.context-echidnet .field--type-webform,
  .node--type-one-page.context-node-346 .field--type-webform {
    background-color: #c2002f; }
  .node--type-one-page.context-echidnet .webform-submission-form,
  .node--type-one-page.context-node-346 .webform-submission-form {
    width: 90%;
    margin: auto;
    text-align: left;
    padding-top: 5em;
    padding-bottom: 8em; }
    @media (min-width: 62em) {
      .node--type-one-page.context-echidnet .webform-submission-form,
      .node--type-one-page.context-node-346 .webform-submission-form {
        max-width: 400px;
        margin: 0 auto; } }
    .node--type-one-page.context-echidnet .webform-submission-form h3, .node--type-one-page.context-echidnet .webform-submission-form strong,
    .node--type-one-page.context-node-346 .webform-submission-form h3,
    .node--type-one-page.context-node-346 .webform-submission-form strong {
      text-align: center;
      font-weight: 900;
      color: #ffffff; }
  .node--type-one-page.context-echidnet .webform-submission-form input, .node--type-one-page.context-echidnet .webform-submission-form textarea,
  .node--type-one-page.context-node-346 .webform-submission-form input,
  .node--type-one-page.context-node-346 .webform-submission-form textarea {
    width: 100%;
    border: solid 1px #fff;
    padding: 0.5em;
    margin-top: 0.5em;
    color: #000000; }
  .node--type-one-page.context-echidnet .webform-submission-form label,
  .node--type-one-page.context-node-346 .webform-submission-form label {
    color: #ffffff; }
  .node--type-one-page.context-echidnet .webform-submission-form .webform-button--submit,
  .node--type-one-page.context-node-346 .webform-submission-form .webform-button--submit {
    border-radius: 40px;
    padding: 0.9em;
    background: #990025;
    border-color: #990025;
    color: #ffffff; }
    .node--type-one-page.context-echidnet .webform-submission-form .webform-button--submit:hover,
    .node--type-one-page.context-node-346 .webform-submission-form .webform-button--submit:hover {
      background: #303030;
      border-color: #303030; }

/*===============================================================================================
   ECHIDNA NEW PRODUCT LANDING PAGE STYLING
 ===============================================================================================*/
.context-node-351 .node--type-one-page,
.context-new-product-page .node--type-one-page {
  font-family: "Muli", Arial, sans-serif;
  /*===============================================================================================
   SECTION STYLING
 ===============================================================================================*/
  /*List styles*/
  /*Typographic styles*/
  /*Layout styles*/
  /*Icon styles*/
  /*===============================================================================================
  SUBMISSION FORM
===============================================================================================*/ }
  .context-node-351 .node--type-one-page .field--name-field-header,
  .context-new-product-page .node--type-one-page .field--name-field-header {
    padding-top: 1em; }
    .context-node-351 .node--type-one-page .field--name-field-header .field--name-field-first-column a,
    .context-new-product-page .node--type-one-page .field--name-field-header .field--name-field-first-column a {
      width: 55px; }
    .context-node-351 .node--type-one-page .field--name-field-header .field.field--name-field-second-column h4,
    .context-new-product-page .node--type-one-page .field--name-field-header .field.field--name-field-second-column h4 {
      margin-top: 35px; }
  .context-node-351 .node--type-one-page ul.inset-bullets,
  .context-new-product-page .node--type-one-page ul.inset-bullets {
    margin-top: 1.5em; }
    .context-node-351 .node--type-one-page ul.inset-bullets li,
    .context-new-product-page .node--type-one-page ul.inset-bullets li {
      margin-left: 1.5em; }
  .context-node-351 .node--type-one-page .heading-space,
  .context-new-product-page .node--type-one-page .heading-space {
    margin-bottom: 1.5em;
    margin-top: 1em; }
    @media (min-width: 62em) {
      .context-node-351 .node--type-one-page .heading-space,
      .context-new-product-page .node--type-one-page .heading-space {
        margin-bottom: 0 !important; } }
  .context-node-351 .node--type-one-page .centre-text,
  .context-new-product-page .node--type-one-page .centre-text {
    text-align: center;
    font-family: "Muli", Arial, sans-serif; }
  .context-node-351 .node--type-one-page h2 strong,
  .context-new-product-page .node--type-one-page h2 strong {
    font-family: "Muli", Arial, sans-serif;
    font-weight: 900; }
  .context-node-351 .node--type-one-page p.info,
  .context-new-product-page .node--type-one-page p.info {
    max-width: 630px !important;
    margin: 0 auto;
    padding-bottom: 1em;
    font-size: 1.125em; }
  .context-node-351 .node--type-one-page p,
  .context-new-product-page .node--type-one-page p {
    font-size: 1em; }
    .context-node-351 .node--type-one-page p a,
    .context-new-product-page .node--type-one-page p a {
      text-decoration: none;
      font-weight: 900;
      margin-top: 1em; }
      .context-node-351 .node--type-one-page p a:hover,
      .context-new-product-page .node--type-one-page p a:hover {
        text-decoration: underline; }
  .context-node-351 .node--type-one-page .field--name-field-landing-section > .field__item:nth-child(1) .paragraph--type--add-background,
  .context-new-product-page .node--type-one-page .field--name-field-landing-section > .field__item:nth-child(1) .paragraph--type--add-background {
    padding: 7em 0 5em 0; }
  .context-node-351 .node--type-one-page .field--name-field-landing-section > .field__item:nth-child(1) .paragraph--type--cta,
  .context-new-product-page .node--type-one-page .field--name-field-landing-section > .field__item:nth-child(1) .paragraph--type--cta {
    padding-bottom: 0; }
    .context-node-351 .node--type-one-page .field--name-field-landing-section > .field__item:nth-child(1) .paragraph--type--cta .field--name-field-cta-button a,
    .context-new-product-page .node--type-one-page .field--name-field-landing-section > .field__item:nth-child(1) .paragraph--type--cta .field--name-field-cta-button a {
      transition: background-color 0.5s ease;
      margin: 0 auto;
      background: #212121; }
      .context-node-351 .node--type-one-page .field--name-field-landing-section > .field__item:nth-child(1) .paragraph--type--cta .field--name-field-cta-button a:hover,
      .context-new-product-page .node--type-one-page .field--name-field-landing-section > .field__item:nth-child(1) .paragraph--type--cta .field--name-field-cta-button a:hover {
        background: #f2f2f2;
        color: #c2002f; }
  .context-node-351 .node--type-one-page .paragraph--type--column-1,
  .context-new-product-page .node--type-one-page .paragraph--type--column-1 {
    margin-bottom: 0 !important; }
  .context-node-351 .node--type-one-page .paragraph--type--add-background,
  .context-new-product-page .node--type-one-page .paragraph--type--add-background {
    padding: 5em 0 2em 0; }
    @media (min-width: 62em) {
      .context-node-351 .node--type-one-page .paragraph--type--add-background,
      .context-new-product-page .node--type-one-page .paragraph--type--add-background {
        padding: 4em 0 3em 0; } }
  .context-node-351 .node--type-one-page .field--name-field-landing-section > .field__item:nth-child(3) .field--name-field-cta-button,
  .context-new-product-page .node--type-one-page .field--name-field-landing-section > .field__item:nth-child(3) .field--name-field-cta-button {
    max-width: 1430px;
    margin: 0 auto; }
    .context-node-351 .node--type-one-page .field--name-field-landing-section > .field__item:nth-child(3) .field--name-field-cta-button a,
    .context-new-product-page .node--type-one-page .field--name-field-landing-section > .field__item:nth-child(3) .field--name-field-cta-button a {
      transition: background-color 0.5s ease; }
  .context-node-351 .node--type-one-page .field--name-field-landing-section > .field__item:nth-child(3) .field--name-field-text,
  .context-new-product-page .node--type-one-page .field--name-field-landing-section > .field__item:nth-child(3) .field--name-field-text {
    margin-top: 2em; }
    @media (min-width: 62em) {
      .context-node-351 .node--type-one-page .field--name-field-landing-section > .field__item:nth-child(3) .field--name-field-text,
      .context-new-product-page .node--type-one-page .field--name-field-landing-section > .field__item:nth-child(3) .field--name-field-text {
        margin-top: 0; } }
  .context-node-351 .node--type-one-page .field--name-field-landing-section > .field__item:nth-child(5) .field--name-field-cta-button,
  .context-new-product-page .node--type-one-page .field--name-field-landing-section > .field__item:nth-child(5) .field--name-field-cta-button {
    max-width: 1430px;
    margin: 0 auto; }
  .context-node-351 .node--type-one-page .field--name-field-column-1-1 img.mobile:first-child,
  .context-new-product-page .node--type-one-page .field--name-field-column-1-1 img.mobile:first-child {
    margin-top: 5em; }
  @media (min-width: 62em) {
    .context-node-351 .node--type-one-page .field--name-field-column-1-1 img.mobile,
    .context-new-product-page .node--type-one-page .field--name-field-column-1-1 img.mobile {
      display: none; } }
  .context-node-351 .node--type-one-page .paragraph--type--section-wrapper,
  .context-new-product-page .node--type-one-page .paragraph--type--section-wrapper {
    padding: 0; }
    @media (min-width: 62em) {
      .context-node-351 .node--type-one-page .paragraph--type--section-wrapper,
      .context-new-product-page .node--type-one-page .paragraph--type--section-wrapper {
        width: 100%;
        overflow: hidden;
        position: relative;
        padding: 0; } }
    .context-node-351 .node--type-one-page .paragraph--type--section-wrapper p, .context-node-351 .node--type-one-page .paragraph--type--section-wrapper h3, .context-node-351 .node--type-one-page .paragraph--type--section-wrapper h4,
    .context-new-product-page .node--type-one-page .paragraph--type--section-wrapper p,
    .context-new-product-page .node--type-one-page .paragraph--type--section-wrapper h3,
    .context-new-product-page .node--type-one-page .paragraph--type--section-wrapper h4 {
      text-align: left;
      color: black !important;
      font-family: "Muli", Arial, sans-serif !important; }
    .context-node-351 .node--type-one-page .paragraph--type--section-wrapper h4,
    .context-new-product-page .node--type-one-page .paragraph--type--section-wrapper h4 {
      font-size: 1.25em; }
    @media (max-width: 991px) {
      .context-node-351 .node--type-one-page .paragraph--type--section-wrapper .field__item .paragraph--type--add-background,
      .context-new-product-page .node--type-one-page .paragraph--type--section-wrapper .field__item .paragraph--type--add-background {
        background-image: none !important;
        padding: 0; } }
    @media (min-width: 62em) {
      .context-node-351 .node--type-one-page .paragraph--type--section-wrapper .field__item .paragraph--type--add-background,
      .context-new-product-page .node--type-one-page .paragraph--type--section-wrapper .field__item .paragraph--type--add-background {
        background-image: initial;
        width: 100%;
        margin-left: 50%;
        height: 295px; } }
    @media (min-width: 74.25em) {
      .context-node-351 .node--type-one-page .paragraph--type--section-wrapper .field__item .paragraph--type--add-background,
      .context-new-product-page .node--type-one-page .paragraph--type--section-wrapper .field__item .paragraph--type--add-background {
        background-position: left top !important; } }
    .context-node-351 .node--type-one-page .paragraph--type--section-wrapper .field__item .paragraph--type--add-background .field--name-field-pretty-paragraphs,
    .context-new-product-page .node--type-one-page .paragraph--type--section-wrapper .field__item .paragraph--type--add-background .field--name-field-pretty-paragraphs {
      width: 100%; }
      @media (min-width: 62em) {
        .context-node-351 .node--type-one-page .paragraph--type--section-wrapper .field__item .paragraph--type--add-background .field--name-field-pretty-paragraphs,
        .context-new-product-page .node--type-one-page .paragraph--type--section-wrapper .field__item .paragraph--type--add-background .field--name-field-pretty-paragraphs {
          margin-left: -50%; } }
      .context-node-351 .node--type-one-page .paragraph--type--section-wrapper .field__item .paragraph--type--add-background .field--name-field-pretty-paragraphs .paragraph--type--columns-2,
      .context-new-product-page .node--type-one-page .paragraph--type--section-wrapper .field__item .paragraph--type--add-background .field--name-field-pretty-paragraphs .paragraph--type--columns-2 {
        padding: 0;
        width: 90%;
        margin: 0 auto; }
        @media (min-width: 62em) {
          .context-node-351 .node--type-one-page .paragraph--type--section-wrapper .field__item .paragraph--type--add-background .field--name-field-pretty-paragraphs .paragraph--type--columns-2,
          .context-new-product-page .node--type-one-page .paragraph--type--section-wrapper .field__item .paragraph--type--add-background .field--name-field-pretty-paragraphs .paragraph--type--columns-2 {
            width: 100%; } }
        @media (min-width: 75em) {
          .context-node-351 .node--type-one-page .paragraph--type--section-wrapper .field__item .paragraph--type--add-background .field--name-field-pretty-paragraphs .paragraph--type--columns-2,
          .context-new-product-page .node--type-one-page .paragraph--type--section-wrapper .field__item .paragraph--type--add-background .field--name-field-pretty-paragraphs .paragraph--type--columns-2 {
            max-width: 1122px; } }
        .context-node-351 .node--type-one-page .paragraph--type--section-wrapper .field__item .paragraph--type--add-background .field--name-field-pretty-paragraphs .paragraph--type--columns-2 .field--name-field-text h4,
        .context-new-product-page .node--type-one-page .paragraph--type--section-wrapper .field__item .paragraph--type--add-background .field--name-field-pretty-paragraphs .paragraph--type--columns-2 .field--name-field-text h4 {
          margin-bottom: 1em; }
        @media (min-width: 62em) {
          .context-node-351 .node--type-one-page .paragraph--type--section-wrapper .field__item .paragraph--type--add-background .field--name-field-pretty-paragraphs .paragraph--type--columns-2 .field--name-field-text p,
          .context-new-product-page .node--type-one-page .paragraph--type--section-wrapper .field__item .paragraph--type--add-background .field--name-field-pretty-paragraphs .paragraph--type--columns-2 .field--name-field-text p {
            font-size: 1em;
            margin-bottom: 0; }
          .context-node-351 .node--type-one-page .paragraph--type--section-wrapper .field__item .paragraph--type--add-background .field--name-field-pretty-paragraphs .paragraph--type--columns-2 .field--name-field-text h4,
          .context-new-product-page .node--type-one-page .paragraph--type--section-wrapper .field__item .paragraph--type--add-background .field--name-field-pretty-paragraphs .paragraph--type--columns-2 .field--name-field-text h4 {
            font-size: 1.25em; } }
        @media (min-width: 75em) {
          .context-node-351 .node--type-one-page .paragraph--type--section-wrapper .field__item .paragraph--type--add-background .field--name-field-pretty-paragraphs .paragraph--type--columns-2 .field--name-field-text,
          .context-new-product-page .node--type-one-page .paragraph--type--section-wrapper .field__item .paragraph--type--add-background .field--name-field-pretty-paragraphs .paragraph--type--columns-2 .field--name-field-text {
            margin-right: 5em; } }
        @media (min-width: 62em) {
          .context-node-351 .node--type-one-page .paragraph--type--section-wrapper .field__item .paragraph--type--add-background .field--name-field-pretty-paragraphs .paragraph--type--columns-2 .field--name-field-second-column,
          .context-node-351 .node--type-one-page .paragraph--type--section-wrapper .field__item .paragraph--type--add-background .field--name-field-pretty-paragraphs .paragraph--type--columns-2 .field--name-field-first-column,
          .context-new-product-page .node--type-one-page .paragraph--type--section-wrapper .field__item .paragraph--type--add-background .field--name-field-pretty-paragraphs .paragraph--type--columns-2 .field--name-field-second-column,
          .context-new-product-page .node--type-one-page .paragraph--type--section-wrapper .field__item .paragraph--type--add-background .field--name-field-pretty-paragraphs .paragraph--type--columns-2 .field--name-field-first-column {
            padding: 0em;
            margin-right: 0;
            width: 48%;
            display: inline-block; } }
  .context-node-351 .node--type-one-page .field--name-field-landing-section > .field__item:nth-child(5) .paragraph--type--section-wrapper .field--name-field-cta-button a,
  .context-new-product-page .node--type-one-page .field--name-field-landing-section > .field__item:nth-child(5) .paragraph--type--section-wrapper .field--name-field-cta-button a {
    transition: background-color 0.5s ease; }
    @media (min-width: 62em) {
      .context-node-351 .node--type-one-page .field--name-field-landing-section > .field__item:nth-child(5) .paragraph--type--section-wrapper .field--name-field-cta-button a,
      .context-new-product-page .node--type-one-page .field--name-field-landing-section > .field__item:nth-child(5) .paragraph--type--section-wrapper .field--name-field-cta-button a {
        margin-left: 50%; } }
  @media (max-width: 991px) {
    .context-node-351 .node--type-one-page .field--name-field-landing-section > .field__item:nth-child(5) .paragraph--type--section-wrapper .field--name-field-section-content > .field__item .paragraph--type--add-background,
    .context-new-product-page .node--type-one-page .field--name-field-landing-section > .field__item:nth-child(5) .paragraph--type--section-wrapper .field--name-field-section-content > .field__item .paragraph--type--add-background {
      background-image: none !important;
      padding: 0; } }
  @media (min-width: 62em) {
    .context-node-351 .node--type-one-page .field--name-field-landing-section > .field__item:nth-child(5) .paragraph--type--section-wrapper .field--name-field-section-content > .field__item .paragraph--type--add-background,
    .context-new-product-page .node--type-one-page .field--name-field-landing-section > .field__item:nth-child(5) .paragraph--type--section-wrapper .field--name-field-section-content > .field__item .paragraph--type--add-background {
      background-image: initial;
      width: 100%;
      margin-left: auto;
      margin-right: 50%;
      margin-left: -50%;
      color: #000000;
      height: 670px; } }
  @media only screen and (min-width: 1099px) {
    .context-node-351 .node--type-one-page .field--name-field-landing-section > .field__item:nth-child(5) .paragraph--type--section-wrapper .field--name-field-section-content > .field__item .paragraph--type--add-background,
    .context-new-product-page .node--type-one-page .field--name-field-landing-section > .field__item:nth-child(5) .paragraph--type--section-wrapper .field--name-field-section-content > .field__item .paragraph--type--add-background {
      height: 635px; } }
  @media (min-width: 62em) {
    .context-node-351 .node--type-one-page .field--name-field-landing-section > .field__item:nth-child(5) .paragraph--type--section-wrapper .field--name-field-section-content > .field__item .paragraph--type--add-background .field--name-field-pretty-paragraphs,
    .context-new-product-page .node--type-one-page .field--name-field-landing-section > .field__item:nth-child(5) .paragraph--type--section-wrapper .field--name-field-section-content > .field__item .paragraph--type--add-background .field--name-field-pretty-paragraphs {
      margin-right: -50%;
      margin-left: auto; } }
  @media (min-width: 62em) {
    .context-node-351 .node--type-one-page .field--name-field-landing-section > .field__item:nth-child(5) .paragraph--type--section-wrapper .field--name-field-section-content > .field__item .paragraph--type--add-background .field--name-field-pretty-paragraphs .paragraph--type--columns-2,
    .context-new-product-page .node--type-one-page .field--name-field-landing-section > .field__item:nth-child(5) .paragraph--type--section-wrapper .field--name-field-section-content > .field__item .paragraph--type--add-background .field--name-field-pretty-paragraphs .paragraph--type--columns-2 {
      max-width: 100%; } }
  @media (min-width: 74.25em) {
    .context-node-351 .node--type-one-page .field--name-field-landing-section > .field__item:nth-child(5) .paragraph--type--section-wrapper .field--name-field-section-content > .field__item .paragraph--type--add-background .field--name-field-pretty-paragraphs .paragraph--type--columns-2,
    .context-new-product-page .node--type-one-page .field--name-field-landing-section > .field__item:nth-child(5) .paragraph--type--section-wrapper .field--name-field-section-content > .field__item .paragraph--type--add-background .field--name-field-pretty-paragraphs .paragraph--type--columns-2 {
      max-width: 1560px; } }
  .context-node-351 .node--type-one-page .field--name-field-landing-section > .field__item:nth-child(5) .paragraph--type--section-wrapper .field--name-field-section-content > .field__item .paragraph--type--add-background .field--name-field-pretty-paragraphs .paragraph--type--columns-2 .field--name-field-text,
  .context-new-product-page .node--type-one-page .field--name-field-landing-section > .field__item:nth-child(5) .paragraph--type--section-wrapper .field--name-field-section-content > .field__item .paragraph--type--add-background .field--name-field-pretty-paragraphs .paragraph--type--columns-2 .field--name-field-text {
    color: #000000 !important;
    margin-top: 2em; }
    @media (min-width: 62em) {
      .context-node-351 .node--type-one-page .field--name-field-landing-section > .field__item:nth-child(5) .paragraph--type--section-wrapper .field--name-field-section-content > .field__item .paragraph--type--add-background .field--name-field-pretty-paragraphs .paragraph--type--columns-2 .field--name-field-text,
      .context-new-product-page .node--type-one-page .field--name-field-landing-section > .field__item:nth-child(5) .paragraph--type--section-wrapper .field--name-field-section-content > .field__item .paragraph--type--add-background .field--name-field-pretty-paragraphs .paragraph--type--columns-2 .field--name-field-text {
        margin-left: 3em;
        margin-top: 0;
        max-width: 480px; } }
    @media (min-width: 74.25em) {
      .context-node-351 .node--type-one-page .field--name-field-landing-section > .field__item:nth-child(5) .paragraph--type--section-wrapper .field--name-field-section-content > .field__item .paragraph--type--add-background .field--name-field-pretty-paragraphs .paragraph--type--columns-2 .field--name-field-text,
      .context-new-product-page .node--type-one-page .field--name-field-landing-section > .field__item:nth-child(5) .paragraph--type--section-wrapper .field--name-field-section-content > .field__item .paragraph--type--add-background .field--name-field-pretty-paragraphs .paragraph--type--columns-2 .field--name-field-text {
        margin-left: 5em; } }
    .context-node-351 .node--type-one-page .field--name-field-landing-section > .field__item:nth-child(5) .paragraph--type--section-wrapper .field--name-field-section-content > .field__item .paragraph--type--add-background .field--name-field-pretty-paragraphs .paragraph--type--columns-2 .field--name-field-text ul,
    .context-new-product-page .node--type-one-page .field--name-field-landing-section > .field__item:nth-child(5) .paragraph--type--section-wrapper .field--name-field-section-content > .field__item .paragraph--type--add-background .field--name-field-pretty-paragraphs .paragraph--type--columns-2 .field--name-field-text ul {
      margin-left: 2em;
      margin-bottom: 0; }
      .context-node-351 .node--type-one-page .field--name-field-landing-section > .field__item:nth-child(5) .paragraph--type--section-wrapper .field--name-field-section-content > .field__item .paragraph--type--add-background .field--name-field-pretty-paragraphs .paragraph--type--columns-2 .field--name-field-text ul li,
      .context-new-product-page .node--type-one-page .field--name-field-landing-section > .field__item:nth-child(5) .paragraph--type--section-wrapper .field--name-field-section-content > .field__item .paragraph--type--add-background .field--name-field-pretty-paragraphs .paragraph--type--columns-2 .field--name-field-text ul li {
        color: #000000; }
        .context-node-351 .node--type-one-page .field--name-field-landing-section > .field__item:nth-child(5) .paragraph--type--section-wrapper .field--name-field-section-content > .field__item .paragraph--type--add-background .field--name-field-pretty-paragraphs .paragraph--type--columns-2 .field--name-field-text ul li:last-child,
        .context-new-product-page .node--type-one-page .field--name-field-landing-section > .field__item:nth-child(5) .paragraph--type--section-wrapper .field--name-field-section-content > .field__item .paragraph--type--add-background .field--name-field-pretty-paragraphs .paragraph--type--columns-2 .field--name-field-text ul li:last-child {
          margin-bottom: 0; }
  .context-node-351 .node--type-one-page ul.icon-list,
  .context-new-product-page .node--type-one-page ul.icon-list {
    margin-bottom: 0;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;
    flex-wrap: wrap;
    -ms-flex-align: center;
    -webkit-align-items: center;
    -webkit-box-align: center;
    align-items: center;
    margin: 0 auto;
    max-width: 170px; }
    .context-node-351 .node--type-one-page ul.icon-list li,
    .context-new-product-page .node--type-one-page ul.icon-list li {
      list-style-image: none;
      list-style-type: none;
      list-style: none;
      margin-left: 0; }
    @media (min-width: 47.9375em) {
      .context-node-351 .node--type-one-page ul.icon-list,
      .context-new-product-page .node--type-one-page ul.icon-list {
        padding: 3em 0;
        max-width: 100%; } }
    @media (min-width: 62em) {
      .context-node-351 .node--type-one-page ul.icon-list,
      .context-new-product-page .node--type-one-page ul.icon-list {
        text-align: center;
        max-width: 830px; } }
    .context-node-351 .node--type-one-page ul.icon-list li,
    .context-new-product-page .node--type-one-page ul.icon-list li {
      margin-bottom: 3.125%;
      display: flex;
      flex-direction: column;
      align-items: center;
      flex: 1 0 calc(100% - 10px);
      box-sizing: border-box;
      padding: 0.9em;
      margin-top: 2em;
      text-align: center; }
      @media (min-width: 47.9375em) {
        .context-node-351 .node--type-one-page ul.icon-list li,
        .context-new-product-page .node--type-one-page ul.icon-list li {
          text-align: left;
          flex: 1 0 calc(15% - 10px); } }
    .context-node-351 .node--type-one-page ul.icon-list img,
    .context-new-product-page .node--type-one-page ul.icon-list img {
      height: 8em;
      max-width: 8em;
      -webkit-transform: translate3d(0, 0, 0);
      width: 100%;
      border: 5px solid #cccccc;
      border-radius: 50%;
      display: block;
      margin: 0 auto;
      padding: 1em; }
      @media (min-width: 47.9375em) {
        .context-node-351 .node--type-one-page ul.icon-list img,
        .context-new-product-page .node--type-one-page ul.icon-list img {
          float: left; } }
    .context-node-351 .node--type-one-page ul.icon-list span,
    .context-new-product-page .node--type-one-page ul.icon-list span {
      display: block;
      margin-top: 2em;
      font-weight: 700; }
  .context-node-351 .node--type-one-page .paragraph--type--cta,
  .context-new-product-page .node--type-one-page .paragraph--type--cta {
    padding: 20px 0; }
    .context-node-351 .node--type-one-page .paragraph--type--cta .field--name-field-cta-button,
    .context-new-product-page .node--type-one-page .paragraph--type--cta .field--name-field-cta-button {
      font-size: 1.25em; }
      .context-node-351 .node--type-one-page .paragraph--type--cta .field--name-field-cta-button a,
      .context-new-product-page .node--type-one-page .paragraph--type--cta .field--name-field-cta-button a {
        font-size: 1.25em;
        transition: background-color 0.5s ease; }
        @media (min-width: 62em) {
          .context-node-351 .node--type-one-page .paragraph--type--cta .field--name-field-cta-button a,
          .context-new-product-page .node--type-one-page .paragraph--type--cta .field--name-field-cta-button a {
            margin-left: -50%; } }
  .context-node-351 .node--type-one-page .field--type-webform,
  .context-new-product-page .node--type-one-page .field--type-webform {
    background-color: #c2002f; }
  .context-node-351 .node--type-one-page .webform-submission-form,
  .context-new-product-page .node--type-one-page .webform-submission-form {
    width: 90%;
    margin: auto;
    text-align: left;
    margin-top: 5em;
    padding-top: 5em;
    padding-bottom: 8em; }
    @media (min-width: 38em) {
      .context-node-351 .node--type-one-page .webform-submission-form,
      .context-new-product-page .node--type-one-page .webform-submission-form {
        max-width: 430px;
        margin: 0 auto; } }
    .context-node-351 .node--type-one-page .webform-submission-form h3, .context-node-351 .node--type-one-page .webform-submission-form strong,
    .context-new-product-page .node--type-one-page .webform-submission-form h3,
    .context-new-product-page .node--type-one-page .webform-submission-form strong {
      text-align: center;
      font-weight: 900;
      color: #ffffff; }
  .context-node-351 .node--type-one-page .webform-submission-form input, .context-node-351 .node--type-one-page .webform-submission-form textarea,
  .context-new-product-page .node--type-one-page .webform-submission-form input,
  .context-new-product-page .node--type-one-page .webform-submission-form textarea {
    width: 100%;
    border: solid 1px #fff;
    padding: 0.5em;
    margin-top: 0.5em;
    color: #000000; }
  .context-node-351 .node--type-one-page .webform-submission-form label,
  .context-new-product-page .node--type-one-page .webform-submission-form label {
    color: #ffffff; }
  .context-node-351 .node--type-one-page .webform-submission-form .webform-button--submit,
  .context-new-product-page .node--type-one-page .webform-submission-form .webform-button--submit {
    border-radius: 50px;
    padding: 0.9em;
    background: #990025;
    border-color: #990025;
    color: #ffffff;
    transition: all 0.5s ease; }
    .context-node-351 .node--type-one-page .webform-submission-form .webform-button--submit:hover,
    .context-new-product-page .node--type-one-page .webform-submission-form .webform-button--submit:hover {
      background: #303030;
      border-color: #303030; }

/* sections/_blog.scss */
/* sections/blog/_node-blog.scss */
.path-islandora-blog #header, .node--type-article #header {
  display: none; }

.path-islandora-blog .layout-container, .node--type-article .layout-container {
  margin-left: 0;
  width: 100%;
  max-width: 100%; }
  .path-islandora-blog .layout-container .region--content-prefix, .node--type-article .layout-container .region--content-prefix {
    background: #303030; }
    .path-islandora-blog .layout-container .region--content-prefix #block-de-theme-page-title, .node--type-article .layout-container .region--content-prefix #block-de-theme-page-title {
      max-width: 960px;
      width: 90%;
      margin: 0 auto;
      text-align: center; }
      .path-islandora-blog .layout-container .region--content-prefix #block-de-theme-page-title h1, .node--type-article .layout-container .region--content-prefix #block-de-theme-page-title h1 {
        background: none; }
  .path-islandora-blog .layout-container .view-content, .path-islandora-blog .layout-container article.node--view-mode-full, .node--type-article .layout-container .view-content, .node--type-article .layout-container article.node--view-mode-full {
    max-width: 960px;
    margin: 0 auto;
    padding: 5em 0; }
    .path-islandora-blog .layout-container .view-content .views-row, .path-islandora-blog .layout-container article.node--view-mode-full .views-row, .node--type-article .layout-container .view-content .views-row, .node--type-article .layout-container article.node--view-mode-full .views-row {
      padding: 4em 0;
      border-top: 1px solid #303030;
      position: relative; }
      .path-islandora-blog .layout-container .view-content .views-row:first-child, .path-islandora-blog .layout-container article.node--view-mode-full .views-row:first-child, .node--type-article .layout-container .view-content .views-row:first-child, .node--type-article .layout-container article.node--view-mode-full .views-row:first-child {
        border-top: none; }
      .path-islandora-blog .layout-container .view-content .views-row h2, .path-islandora-blog .layout-container article.node--view-mode-full .views-row h2, .node--type-article .layout-container .view-content .views-row h2, .node--type-article .layout-container article.node--view-mode-full .views-row h2 {
        font-family: "league_gothicregular", serif;
        font-weight: bold;
        text-transform: uppercase;
        margin-bottom: 0.5em; }
        .path-islandora-blog .layout-container .view-content .views-row h2 a, .path-islandora-blog .layout-container article.node--view-mode-full .views-row h2 a, .node--type-article .layout-container .view-content .views-row h2 a, .node--type-article .layout-container article.node--view-mode-full .views-row h2 a {
          text-decoration: none; }
      .path-islandora-blog .layout-container .view-content .views-row .node-readmore, .path-islandora-blog .layout-container article.node--view-mode-full .views-row .node-readmore, .node--type-article .layout-container .view-content .views-row .node-readmore, .node--type-article .layout-container article.node--view-mode-full .views-row .node-readmore {
        padding: 0; }
        .path-islandora-blog .layout-container .view-content .views-row .node-readmore a, .path-islandora-blog .layout-container article.node--view-mode-full .views-row .node-readmore a, .node--type-article .layout-container .view-content .views-row .node-readmore a, .node--type-article .layout-container article.node--view-mode-full .views-row .node-readmore a {
          position: absolute;
          bottom: 0;
          left: 0; }
      .path-islandora-blog .layout-container .view-content .views-row .node__content, .path-islandora-blog .layout-container article.node--view-mode-full .views-row .node__content, .node--type-article .layout-container .view-content .views-row .node__content, .node--type-article .layout-container article.node--view-mode-full .views-row .node__content {
        padding-bottom: 3em; }
  .path-islandora-blog .layout-container a.islandora-return, .node--type-article .layout-container a.islandora-return {
    width: 90%;
    max-width: 960px;
    margin: 0 auto;
    display: block;
    margin-bottom: 2em; }
    .path-islandora-blog .layout-container a.islandora-return:before, .node--type-article .layout-container a.islandora-return:before {
      font-family: 'FontAwesome';
      content: '\f053';
      margin-right: 5px;
      vertical-align: middle; }

/* sections/_drupal-training.scss */
@media (min-width: 62em) {
  .node--type-training-program .page-title {
    background-repeat: no-repeat;
    background-size: cover;
    background-blend-mode: overlay;
    background-color: rgba(0, 0, 0, 0.7); } }

@media (max-width: 991px) {
  .node--type-training-program .page-title {
    background-image: none !important; } }

.node--type-training-program #main {
  padding: 0.8em 1.95312em 1.95312em 1.95312em; }
  @media (min-width: 38em) {
    .node--type-training-program #main {
      padding: 1.95312em 3.05176em; } }

.node--type-training-program .field--name-field-length p {
  margin-bottom: 1em; }

.node--type-training-program .back {
  border-bottom: 0.32768em solid #cccccc;
  margin-bottom: 2.44141em;
  padding-bottom: 2.44141em;
  width: 100%; }

.node--type-training-program .field--name-field-price {
  margin-bottom: 1.5625em; }

.node--type-training-program p {
  margin-bottom: 0.4096em; }

.node--type-training-program h3 {
  margin-top: 1.25em; }

.node--type-training-program ul, .node--type-training-program ol {
  margin-bottom: 0; }

.node--type-webform #main {
  padding: 0.8em 1.95312em 1.95312em 1.95312em; }
  @media (min-width: 38em) {
    .node--type-webform #main {
      padding: 1.95312em 3.05176em; } }

.node--type-webform .item-list {
  display: -webkit-box; }
  .node--type-webform .item-list .drupal-training-row {
    background-color: #f2f2f2;
    padding: 0.8em;
    margin-bottom: 6.66667%;
    transition: 0.3s; }
    @media (min-width: 29em) and (max-width: 62em) {
      .node--type-webform .item-list .drupal-training-row {
        margin-bottom: 2.12766%; } }
    @media (min-width: 62em) {
      .node--type-webform .item-list .drupal-training-row {
        margin-bottom: 2.12766%;
        width: 48.93617%;
        clear: right;
        float: left;
        margin-left: 0;
        margin-right: 2.12766%; }
        .node--type-webform .item-list .drupal-training-row:nth-child(2n+2) {
          width: 48.93617%;
          clear: right;
          float: right;
          margin-right: 0; } }
    .node--type-webform .item-list .drupal-training-row:hover {
      cursor: pointer;
      background-color: #d9d9d9; }
  .node--type-webform .item-list ul {
    display: flex;
    flex-wrap: wrap; }
    @media (min-width: 29em) and (max-width: 62em) {
      .node--type-webform .item-list ul li {
        flex: 1 1 auto; } }
  .node--type-webform .item-list .views-field {
    margin: 0 10px; }
  .node--type-webform .item-list .views-field-field-title-background {
    margin: 0 0 0.8em 0; }
  .node--type-webform .item-list .views-field-title {
    font-size: 1.5em;
    color: #c2002f;
    margin-bottom: 0.25em; }
  .node--type-webform .item-list .views-field-field-byline h3 {
    font-size: 1.2em;
    color: black;
    margin-top: 5px;
    margin-bottom: 0; }
  .node--type-webform .item-list .views-field-view-node {
    display: none; }

@media (min-width: 62em) {
  .node--type-webform .page-title {
    background-image: url(/themes/custom/de_theme/img/drupal-training/drupaltrainingmain.png);
    background-repeat: no-repeat;
    background-size: cover;
    background-blend-mode: overlay;
    background-color: rgba(0, 0, 0, 0.7); } }

@media (min-width: 48em) {
  .node--type-webform form, .node--type-training-program form {
    display: flex; } }

.node--type-webform form label, .node--type-training-program form label {
  display: none; }

.node--type-webform form .js-form-item, .node--type-training-program form .js-form-item {
  width: 100%; }
  @media (min-width: 56em) {
    .node--type-webform form .js-form-item, .node--type-training-program form .js-form-item {
      width: 70%; } }
  @media (min-width: 62em) {
    .node--type-webform form .js-form-item, .node--type-training-program form .js-form-item {
      width: 48.93617%;
      clear: right;
      float: left;
      margin-left: 0;
      margin-right: 2.12766%; } }

.node--type-webform form .form-email, .node--type-training-program form .form-email {
  padding: 0.5em;
  width: 100%;
  border: 1px solid #cccccc; }
  @media (min-width: 38em) {
    .node--type-webform form .form-email, .node--type-training-program form .form-email {
      height: 56px; } }

@media (min-width: 48em) {
  .node--type-webform form .form-actions, .node--type-training-program form .form-actions {
    width: 25%;
    margin-left: 5%; }
    .node--type-webform form .form-actions .btn, .node--type-webform form .form-actions .path-islandora-blog .layout-container .view-content .views-row .node-readmore a, .path-islandora-blog .layout-container .view-content .views-row .node-readmore .node--type-webform form .form-actions a, .node--type-webform form .form-actions .path-islandora-blog .layout-container article.node--view-mode-full .views-row .node-readmore a, .path-islandora-blog .layout-container article.node--view-mode-full .views-row .node-readmore .node--type-webform form .form-actions a, .node--type-webform form .form-actions .node--type-article .layout-container .view-content .views-row .node-readmore a, .node--type-article .layout-container .view-content .views-row .node-readmore .node--type-webform form .form-actions a, .node--type-webform form .form-actions .node--type-article .layout-container article.node--view-mode-full .views-row .node-readmore a, .node--type-article .layout-container article.node--view-mode-full .views-row .node-readmore .node--type-webform form .form-actions a, .node--type-training-program form .form-actions .btn, .node--type-training-program form .form-actions .path-islandora-blog .layout-container .view-content .views-row .node-readmore a, .path-islandora-blog .layout-container .view-content .views-row .node-readmore .node--type-training-program form .form-actions a, .node--type-training-program form .form-actions .path-islandora-blog .layout-container article.node--view-mode-full .views-row .node-readmore a, .path-islandora-blog .layout-container article.node--view-mode-full .views-row .node-readmore .node--type-training-program form .form-actions a, .node--type-training-program form .form-actions .node--type-article .layout-container .view-content .views-row .node-readmore a, .node--type-article .layout-container .view-content .views-row .node-readmore .node--type-training-program form .form-actions a, .node--type-training-program form .form-actions .node--type-article .layout-container article.node--view-mode-full .views-row .node-readmore a, .node--type-article .layout-container article.node--view-mode-full .views-row .node-readmore .node--type-training-program form .form-actions a {
      float: right; } }

@media (min-width: 62em) {
  .node--type-webform form .form-actions, .node--type-training-program form .form-actions {
    margin-left: 0; }
    .node--type-webform form .form-actions .btn, .node--type-webform form .form-actions .path-islandora-blog .layout-container .view-content .views-row .node-readmore a, .path-islandora-blog .layout-container .view-content .views-row .node-readmore .node--type-webform form .form-actions a, .node--type-webform form .form-actions .path-islandora-blog .layout-container article.node--view-mode-full .views-row .node-readmore a, .path-islandora-blog .layout-container article.node--view-mode-full .views-row .node-readmore .node--type-webform form .form-actions a, .node--type-webform form .form-actions .node--type-article .layout-container .view-content .views-row .node-readmore a, .node--type-article .layout-container .view-content .views-row .node-readmore .node--type-webform form .form-actions a, .node--type-webform form .form-actions .node--type-article .layout-container article.node--view-mode-full .views-row .node-readmore a, .node--type-article .layout-container article.node--view-mode-full .views-row .node-readmore .node--type-webform form .form-actions a, .node--type-training-program form .form-actions .btn, .node--type-training-program form .form-actions .path-islandora-blog .layout-container .view-content .views-row .node-readmore a, .path-islandora-blog .layout-container .view-content .views-row .node-readmore .node--type-training-program form .form-actions a, .node--type-training-program form .form-actions .path-islandora-blog .layout-container article.node--view-mode-full .views-row .node-readmore a, .path-islandora-blog .layout-container article.node--view-mode-full .views-row .node-readmore .node--type-training-program form .form-actions a, .node--type-training-program form .form-actions .node--type-article .layout-container .view-content .views-row .node-readmore a, .node--type-article .layout-container .view-content .views-row .node-readmore .node--type-training-program form .form-actions a, .node--type-training-program form .form-actions .node--type-article .layout-container article.node--view-mode-full .views-row .node-readmore a, .node--type-article .layout-container article.node--view-mode-full .views-row .node-readmore .node--type-training-program form .form-actions a {
      float: none; } }

/* _navigation.scss */
.menu {
  margin: 0;
  padding: 0; }
  .menu li {
    list-style-image: none;
    list-style-type: none;
    list-style: none;
    margin-left: 0; }

/* navigation/_block-main-nav.scss */
.menu--main .menu {
  margin: 0;
  padding: 0;
  list-style-type: none;
  padding: 0;
  margin: 0;
  overflow: hidden;
  padding: 1.5625em;
  background-color: #7e001f; }
  .menu--main .menu:after {
    content: "";
    display: table;
    clear: both; }
  .menu--main .menu > li {
    display: block;
    float: left; }
    .menu--main .menu > li:last-child {
      margin-right: 0; }
  @media (min-width: 56em) {
    .menu--main .menu {
      background-color: #c2002f;
      padding: 0; } }

.menu--main .menu li {
  margin: 0;
  padding: 0;
  font: inherit;
  font-size: 100%;
  vertical-align: baseline; }

.menu--main .menu a {
  text-decoration: none;
  display: block; }

.menu--main .menu > li {
  display: block;
  width: 100%;
  margin-right: 0;
  margin-bottom: 0.64em; }
  @media (min-width: 56em) {
    .menu--main .menu > li {
      float: left;
      margin-bottom: 0.4096em;
      margin-right: 0; } }
  @media (min-width: 62em) {
    .menu--main .menu > li {
      margin-right: 1em; } }
  .menu--main .menu > li.last {
    margin-right: 0; }

.menu--main .menu li.first {
  margin-left: 0; }

.menu--main .menu li.last {
  margin-bottom: 0; }

.menu--main .menu a {
  font-size: 1.25em;
  color: white;
  text-align: center;
  padding: 0.512em 0.8em;
  transition: .3s linear;
  border-radius: 1.5625em; }
  @media (min-width: 38em) {
    .menu--main .menu a {
      padding: 0.8em; } }
  @media (min-width: 115em) {
    .menu--main .menu a {
      padding: 0.8em;
      font-size: 1.625em; } }
  .menu--main .menu a:hover {
    text-decoration: none;
    background: #a70028; }
    @media (min-width: 48em) {
      .menu--main .menu a:hover {
        background: #990025; } }
  .menu--main .menu a.is-active {
    text-decoration: none;
    background: #990025; }

.menu--main .menu .last {
  margin-right: 0; }

#contact-button,
#menu-trigger {
  position: absolute;
  top: 1.5625em;
  z-index: 1000;
  display: block;
  height: 51px;
  width: 51px;
  background: no-repeat center;
  background-size: cover;
  transition: opacity .3s ease-out;
  border-radius: 50%; }
  #contact-button:hover,
  #menu-trigger:hover {
    opacity: .6; }
  @media (min-width: 56em) {
    #contact-button,
    #menu-trigger {
      display: none;
      visibility: hidden; } }

.icon-btn {
  font: 0/0 serif;
  text-shadow: none;
  color: transparent; }

#contact-button {
  background-image: url("/themes/custom/de_theme/img/de-icons_contact.png");
  right: 3.8147em; }

#menu-trigger {
  background-image: url("/themes/custom/de_theme/img/de-icons_menu.png");
  left: 3.8147em;
  background-color: transparent;
  outline: none;
  cursor: pointer;
  border: 0;
  transition: transform 500ms ease; }
  #menu-trigger.active-trigger {
    opacity: .6;
    transform: rotate(90deg); }

/* navigation/_block-secondary-nav.scss */
.block-secondary-nav {
  display: inline-block; }
  .block-secondary-nav .menu {
    margin: 0;
    padding: 0;
    list-style-type: none;
    padding: 0;
    margin: 0;
    overflow: hidden; }
    .block-secondary-nav .menu:after {
      content: "";
      display: table;
      clear: both; }
    .block-secondary-nav .menu > li {
      display: block;
      float: left; }
      .block-secondary-nav .menu > li:last-child {
        margin-right: 0; }
  .block-secondary-nav .menu li {
    margin: 0;
    padding: 0;
    font: inherit;
    font-size: 100%;
    vertical-align: baseline; }
  .block-secondary-nav .menu a {
    margin-right: 1em;
    color: white; }
  .block-secondary-nav .menu .last a {
    margin-right: 0; }

/* navigation/_block-sub-nav.scss */
.block-sub-nav .menu li {
  margin: 0;
  padding: 0;
  font: inherit;
  font-size: 100%;
  vertical-align: baseline; }

.block-sub-nav .menu .expanded {
  margin-bottom: 0; }
  .block-sub-nav .menu .expanded .menu {
    padding: 0.64em; }
    .block-sub-nav .menu .expanded .menu li a {
      font-size: 0.8em;
      line-height: 1.5625em; }

.block-sub-nav .menu .last {
  margin-bottom: 0; }

/* navigation/_breadcrumb.scss */
.breadcrumb {
  margin: 0;
  padding: 0; }

/* navigation/_pager.scss */
.pager {
  margin: 0;
  padding: 0;
  margin-top: 1.25em; }
  .pager:after {
    content: "";
    display: table;
    clear: both; }
  .pager li {
    list-style-image: none;
    list-style-type: none;
    list-style: none;
    margin-left: 0; }
  .pager li {
    float: left;
    font: inherit;
    font-size: 100%;
    vertical-align: baseline; }
  .pager .pager-current {
    padding: 0.4096em 0.8em; }
  .pager .pager-ellipsis {
    margin-right: 1em; }
  .pager a {
    margin-right: 0.8em; }
  .pager .pager-next {
    clear: left; }
    @media (min-width: 29em) {
      .pager .pager-next {
        clear: none; } }
  .pager .pager-next, .pager .pager-last {
    margin-top: 0.8em; }
    @media (min-width: 29em) {
      .pager .pager-next, .pager .pager-last {
        margin-top: 0; } }

/* _revisions.scss */
/* _ie.scss */
/* _print.scss */
/* ==========================================================================
   Print styles.
   Inlined to avoid the additional HTTP request:
   http://www.phpied.com/delay-loading-your-print-css/
   ========================================================================== */
@media print {
  *,
  *:before,
  *:after {
    background: transparent !important;
    color: #000 !important;
    /* Black prints faster:
                                   http://www.sanbeiji.com/archives/953 */
    box-shadow: none !important;
    text-shadow: none !important;
    font-family: "Times"; }
  a,
  a:visited {
    text-decoration: underline; }
  /*
     * Don't show links that are fragment identifiers,
     * or use the `javascript:` pseudo protocol
     */
  a[href^="#"]:after,
  a[href^="javascript:"]:after {
    content: ""; }
  pre,
  blockquote {
    border: 1px solid #999;
    page-break-inside: avoid; }
  /*
     * Printing Tables:
     * http://css-discuss.incutio.com/wiki/Printing_Tables
     */
  thead {
    display: table-header-group; }
  tr,
  img {
    page-break-inside: avoid; }
  img {
    max-width: 100% !important; }
  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3; }
  h2,
  h3 {
    page-break-after: avoid; }
  html, body {
    font: inherit;
    font-size: 100%;
    vertical-align: baseline;
    font-family: Georgia, ‘Times New Roman’, serif;
    font-size: 12pt; }
  body {
    padding: 1em; }
  .container,
  .region,
  .block {
    margin: 0 !important;
    padding: 0 !important;
    display: block !important; }
  .container {
    max-width: none; }
  h1, h2, h3, h4, h5, h6 {
    font: inherit;
    font-size: 100%;
    vertical-align: baseline;
    margin: 0;
    padding: 0;
    text-indent: 0 !important;
    margin-bottom: 1em;
    margin-top: 1em; }
  ul li, ol li {
    list-style-type: decimal;
    display: block; }
  img,
  .fa,
  #footer,
  .block-main-nav {
    display: none !important; } }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVfdGhlbWUuY3NzIiwic291cmNlcyI6WyJkZV90aGVtZS5zY3NzIiwiX3RoZW1lLWluaXQuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvaW51aXQtYm94LXNpemluZy9fZ2VuZXJpYy5ib3gtc2l6aW5nLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2ludWl0LW5vcm1hbGl6ZS9fZ2VuZXJpYy5ub3JtYWxpemUuc2NzcyIsIl90aGVtZS1jb21tb25zLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL3Nhc3MtdG9vbGtpdC9zdHlsZXNoZWV0cy9fdG9vbGtpdC5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9zYXNzLXRvb2xraXQvc3R5bGVzaGVldHMvdG9vbGtpdC9fc2V0dGluZ3Muc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvc2Fzcy10b29sa2l0L3N0eWxlc2hlZXRzL3Rvb2xraXQvX3BsYWNlaG9sZGVycy5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9zYXNzLXRvb2xraXQvc3R5bGVzaGVldHMvdG9vbGtpdC9fY2xlYXJmaXguc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvc2Fzcy10b29sa2l0L3N0eWxlc2hlZXRzL3Rvb2xraXQvX2NvbG9ycy5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9zYXNzLXRvb2xraXQvc3R5bGVzaGVldHMvdG9vbGtpdC9fZm9udHMuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvc2Fzcy10b29sa2l0L3N0eWxlc2hlZXRzL3Rvb2xraXQvX2ludHJpbnNpYy1yYXRpby5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9zYXNzLXRvb2xraXQvc3R5bGVzaGVldHMvdG9vbGtpdC9fbmVzdGVkLWNvbnRleHQuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvc2Fzcy10b29sa2l0L3N0eWxlc2hlZXRzL3Rvb2xraXQvX3BhcmFsbGF4LnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL3Nhc3MtdG9vbGtpdC9zdHlsZXNoZWV0cy90b29sa2l0L19ydGwuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvc2Fzcy10b29sa2l0L3N0eWxlc2hlZXRzL3Rvb2xraXQvX3RhcmdldC5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9zYXNzLXRvb2xraXQvc3R5bGVzaGVldHMvdG9vbGtpdC9fdHJpYW5nbGUuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvc2Fzcy10b29sa2l0L3N0eWxlc2hlZXRzL3Rvb2xraXQvX2NlbnRlci5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9zYXNzLXRvb2xraXQvc3R5bGVzaGVldHMvdG9vbGtpdC9fdmlld3BvcnQuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvc2Fzcy10b29sa2l0L3N0eWxlc2hlZXRzL3Rvb2xraXQvX3VuZGVybGluZS5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9zYXNzLXRvb2xraXQvc3R5bGVzaGVldHMvdG9vbGtpdC9fYXJ0LnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9fYnJlYWtwb2ludC5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9fc2V0dGluZ3Muc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvX2NvbnRleHQuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvX2hlbHBlcnMuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvX3BhcnNlcnMuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvcGFyc2Vycy9fcXVlcnkuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvcGFyc2Vycy9fc2luZ2xlLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L3BhcnNlcnMvc2luZ2xlL19kZWZhdWx0LnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L3BhcnNlcnMvX2RvdWJsZS5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9wYXJzZXJzL2RvdWJsZS9fZGVmYXVsdC1wYWlyLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L3BhcnNlcnMvZG91YmxlL19kb3VibGUtc3RyaW5nLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L3BhcnNlcnMvZG91YmxlL19kZWZhdWx0LnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L3BhcnNlcnMvX3RyaXBsZS5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9wYXJzZXJzL3RyaXBsZS9fZGVmYXVsdC5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9wYXJzZXJzL19yZXNvbHV0aW9uLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L3BhcnNlcnMvcmVzb2x1dGlvbi9fcmVzb2x1dGlvbi5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9fbm8tcXVlcnkuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvX3Jlc3BvbmQtdG8uc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvX2xlZ2FjeS1zZXR0aW5ncy5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9zaW5ndWxhcml0eS9zdHlsZXNoZWV0cy9fc2luZ3VsYXJpdHlncy5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9zaW5ndWxhcml0eS9zdHlsZXNoZWV0cy9zaW5ndWxhcml0eWdzL19oZWxwZXJzLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL3Npbmd1bGFyaXR5L3N0eWxlc2hlZXRzL3Npbmd1bGFyaXR5Z3MvaGVscGVycy9fc2V0dGluZ3Muc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvc2luZ3VsYXJpdHkvc3R5bGVzaGVldHMvc2luZ3VsYXJpdHlncy9oZWxwZXJzL19maW5kLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL3Npbmd1bGFyaXR5L3N0eWxlc2hlZXRzL3Npbmd1bGFyaXR5Z3MvaGVscGVycy9fc2Fzcy1saXN0cy5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9zaW5ndWxhcml0eS9zdHlsZXNoZWV0cy9zaW5ndWxhcml0eWdzL2hlbHBlcnMvX2NvbHVtbnMuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvc2luZ3VsYXJpdHkvc3R5bGVzaGVldHMvc2luZ3VsYXJpdHlncy9oZWxwZXJzL19zcGFuLXNoYXJlZC5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9zaW5ndWxhcml0eS9zdHlsZXNoZWV0cy9zaW5ndWxhcml0eWdzL2hlbHBlcnMvX2RpcmVjdGlvbnMuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvc2luZ3VsYXJpdHkvc3R5bGVzaGVldHMvc2luZ3VsYXJpdHlncy9oZWxwZXJzL19zb3J0LnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL3Npbmd1bGFyaXR5L3N0eWxlc2hlZXRzL3Npbmd1bGFyaXR5Z3MvaGVscGVycy9fYmFja2dyb3VuZC1ncmlkLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL3Npbmd1bGFyaXR5L3N0eWxlc2hlZXRzL3Npbmd1bGFyaXR5Z3MvaGVscGVycy9fc3RyLXJlcGxhY2Uuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvc2luZ3VsYXJpdHkvc3R5bGVzaGVldHMvc2luZ3VsYXJpdHlncy9oZWxwZXJzL19sYXlvdXQuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvc2luZ3VsYXJpdHkvc3R5bGVzaGVldHMvc2luZ3VsYXJpdHlncy9fbGFuZ3VhZ2Uuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvc2luZ3VsYXJpdHkvc3R5bGVzaGVldHMvc2luZ3VsYXJpdHlncy9sYW5ndWFnZS9fcGFyc2UtbGlzdC5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9zaW5ndWxhcml0eS9zdHlsZXNoZWV0cy9zaW5ndWxhcml0eWdzL2xhbmd1YWdlL19wYXJzZS1hZGQuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvc2luZ3VsYXJpdHkvc3R5bGVzaGVldHMvc2luZ3VsYXJpdHlncy9sYW5ndWFnZS9fc3Bhbi5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9zaW5ndWxhcml0eS9zdHlsZXNoZWV0cy9zaW5ndWxhcml0eWdzL19tYXRoLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL3Npbmd1bGFyaXR5L3N0eWxlc2hlZXRzL3Npbmd1bGFyaXR5Z3MvbWF0aC9fY29sdW1ucy5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9zaW5ndWxhcml0eS9zdHlsZXNoZWV0cy9zaW5ndWxhcml0eWdzL21hdGgvX2d1dHRlcnMuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvc2luZ3VsYXJpdHkvc3R5bGVzaGVldHMvc2luZ3VsYXJpdHlncy9tYXRoL19jb250ZXh0LnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL3Npbmd1bGFyaXR5L3N0eWxlc2hlZXRzL3Npbmd1bGFyaXR5Z3MvbWF0aC9fZ3JpZC5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9zaW5ndWxhcml0eS9zdHlsZXNoZWV0cy9zaW5ndWxhcml0eWdzL19ncmlkcy5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9zaW5ndWxhcml0eS9zdHlsZXNoZWV0cy9zaW5ndWxhcml0eWdzL2dyaWRzL19hZGQuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvc2luZ3VsYXJpdHkvc3R5bGVzaGVldHMvc2luZ3VsYXJpdHlncy9ncmlkcy9fZmluZC5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9zaW5ndWxhcml0eS9zdHlsZXNoZWV0cy9zaW5ndWxhcml0eWdzL19ndXR0ZXJzLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL3Npbmd1bGFyaXR5L3N0eWxlc2hlZXRzL3Npbmd1bGFyaXR5Z3MvZ3V0dGVycy9fYWRkLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL3Npbmd1bGFyaXR5L3N0eWxlc2hlZXRzL3Npbmd1bGFyaXR5Z3MvZ3V0dGVycy9fZmluZC5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9zaW5ndWxhcml0eS9zdHlsZXNoZWV0cy9zaW5ndWxhcml0eWdzL19ndXR0ZXItc3R5bGVzLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL3Npbmd1bGFyaXR5L3N0eWxlc2hlZXRzL3Npbmd1bGFyaXR5Z3MvZ3V0dGVyLXN0eWxlcy9fYWRkLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL3Npbmd1bGFyaXR5L3N0eWxlc2hlZXRzL3Npbmd1bGFyaXR5Z3MvZ3V0dGVyLXN0eWxlcy9fZmluZC5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9zaW5ndWxhcml0eS9zdHlsZXNoZWV0cy9zaW5ndWxhcml0eWdzL2d1dHRlci1zdHlsZXMvX2hlbHBlcnMuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvc2luZ3VsYXJpdHkvc3R5bGVzaGVldHMvc2luZ3VsYXJpdHlncy9fYXBpLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL3Npbmd1bGFyaXR5L3N0eWxlc2hlZXRzL3Npbmd1bGFyaXR5Z3MvYXBpL19mbG9hdC5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9zaW5ndWxhcml0eS9zdHlsZXNoZWV0cy9zaW5ndWxhcml0eWdzL2FwaS9faXNvbGF0aW9uLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL3Npbmd1bGFyaXR5L3N0eWxlc2hlZXRzL3Npbmd1bGFyaXR5Z3MvYXBpL19jYWxjLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL21vZHVsYXItc2NhbGUvc3R5bGVzaGVldHMvX21vZHVsYXItc2NhbGUuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvbW9kdWxhci1zY2FsZS9zdHlsZXNoZWV0cy9tb2R1bGFyLXNjYWxlL19yYXRpb3Muc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvbW9kdWxhci1zY2FsZS9zdHlsZXNoZWV0cy9tb2R1bGFyLXNjYWxlL190ZXN0cy5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9tb2R1bGFyLXNjYWxlL3N0eWxlc2hlZXRzL21vZHVsYXItc2NhbGUvX3Bvdy5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9tb2R1bGFyLXNjYWxlL3N0eWxlc2hlZXRzL21vZHVsYXItc2NhbGUvX2NhbGMuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvbW9kdWxhci1zY2FsZS9zdHlsZXNoZWV0cy9tb2R1bGFyLXNjYWxlL19nZW5lcmF0ZS1saXN0LnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL21vZHVsYXItc2NhbGUvc3R5bGVzaGVldHMvbW9kdWxhci1zY2FsZS9fc29ydC1saXN0LnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL21vZHVsYXItc2NhbGUvc3R5bGVzaGVldHMvbW9kdWxhci1zY2FsZS9fcm91bmQtcHguc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvbW9kdWxhci1zY2FsZS9zdHlsZXNoZWV0cy9tb2R1bGFyLXNjYWxlL19mdW5jdGlvbi5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9tb2R1bGFyLXNjYWxlL3N0eWxlc2hlZXRzL21vZHVsYXItc2NhbGUvX2Z1bmN0aW9uLWxpc3Quc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvbW9kdWxhci1zY2FsZS9zdHlsZXNoZWV0cy9tb2R1bGFyLXNjYWxlL19yZXNwb25kLnNjc3MiLCJfc2V0dGluZ3MvX2luZGV4LnNjc3MiLCJfc2V0dGluZ3MvX2JyZWFrcG9pbnRzLnNjc3MiLCJfc2V0dGluZ3MvX2NvbG9ycy5zY3NzIiwiX3NldHRpbmdzL19ncmlkLnNjc3MiLCJfc2V0dGluZ3MvX21vZHVsYXItc2NhbGUuc2NzcyIsIl9zZXR0aW5ncy9fdHlwb2dyYXBoeS5zY3NzIiwiX21peGlucy9faW5kZXguc2NzcyIsIl9taXhpbnMvbGlicmFyeS90eXBvZ3JhcGh5L19pbmRleC5zY3NzIiwiX21peGlucy9saWJyYXJ5L3R5cG9ncmFwaHkvX2ZvbnQtc2l6ZS5zY3NzIiwiX21peGlucy9saWJyYXJ5L3R5cG9ncmFwaHkvX2xpbmUtaGVpZ2h0LnNjc3MiLCJfbWl4aW5zL2xpYnJhcnkvdHlwb2dyYXBoeS9fbm8tYnVsbGV0LnNjc3MiLCJfbWl4aW5zL2xpYnJhcnkvdHlwb2dyYXBoeS9fbm8tYnVsbGV0cy5zY3NzIiwiX21peGlucy9saWJyYXJ5L3R5cG9ncmFwaHkvX3ByZXR0eS1idWxsZXRzLnNjc3MiLCJfbWl4aW5zL2xpYnJhcnkvdHlwb2dyYXBoeS9fdGV4dC10cnVuY2F0ZS5zY3NzIiwiX21peGlucy9saWJyYXJ5L3R5cG9ncmFwaHkvX3Vuc3R5bGVkLWxpbmsuc2NzcyIsIl9taXhpbnMvbGlicmFyeS90eXBvZ3JhcGh5L3RleHQtcmVwbGFjZW1lbnQvX2luZGV4LnNjc3MiLCJfbWl4aW5zL2xpYnJhcnkvdHlwb2dyYXBoeS90ZXh0LXJlcGxhY2VtZW50L19yZXBsYWNlLXRleHQtd2l0aC1kaW1lbnNpb25zLnNjc3MiLCJfbWl4aW5zL2xpYnJhcnkvdHlwb2dyYXBoeS90ZXh0LXJlcGxhY2VtZW50L19yZXBsYWNlLXRleHQuc2NzcyIsIl9taXhpbnMvbGlicmFyeS90eXBvZ3JhcGh5L3RleHQtcmVwbGFjZW1lbnQvX3NxdWlzaC10ZXh0LnNjc3MiLCJfbWl4aW5zL2xpYnJhcnkvcmVzZXQtdXRpbGl0aWVzL19pbmRleC5zY3NzIiwiX21peGlucy9saWJyYXJ5L3Jlc2V0LXV0aWxpdGllcy9fcmVzZXQtYm94LW1vZGVsLnNjc3MiLCJfbWl4aW5zL2xpYnJhcnkvcmVzZXQtdXRpbGl0aWVzL19yZXNldC1jb2x1bW4uc2NzcyIsIl9taXhpbnMvbGlicmFyeS9yZXNldC11dGlsaXRpZXMvX3Jlc2V0LWZvbnQuc2NzcyIsIl9taXhpbnMvbGlicmFyeS9yZXNldC11dGlsaXRpZXMvX3Jlc2V0LWZvcm0tZmllbGQuc2NzcyIsIl9taXhpbnMvbGlicmFyeS9yZXNldC11dGlsaXRpZXMvX3Jlc2V0LWltYWdlLWhvdmVyLnNjc3MiLCJfbWl4aW5zL2xpYnJhcnkvcmVzZXQtdXRpbGl0aWVzL19yZXNldC1xdW90YXRpb24uc2NzcyIsIl9taXhpbnMvbGlicmFyeS9yZXNldC11dGlsaXRpZXMvX3Jlc2V0LXRhYmxlLWNlbGwuc2NzcyIsIl9taXhpbnMvbGlicmFyeS9yZXNldC11dGlsaXRpZXMvX3Jlc2V0LXRhcC5zY3NzIiwiX21peGlucy9saWJyYXJ5L3Jlc2V0LXV0aWxpdGllcy9fcmVzZXQuc2NzcyIsIl9taXhpbnMvbGlicmFyeS9yZXNldC11dGlsaXRpZXMvX3Jlc2V0LXVzZXItc2VsZWN0LnNjc3MiLCJfbWl4aW5zL2xpYnJhcnkvdmVuZG9ycy9faW5kZXguc2NzcyIsIl9taXhpbnMvbGlicmFyeS92ZW5kb3JzL21hdGVyaWFsLWRlc2lnbi1pY29ucy9fbWF0ZXJpYWwtaWNvbnMuc2NzcyIsIl9taXhpbnMvbGlicmFyeS9fYm94LXNoYWRvd3Muc2NzcyIsIl9taXhpbnMvbGlicmFyeS9fYnV0dG9ucy5zY3NzIiwiX21peGlucy9saWJyYXJ5L19jZW50ZXItYmxvY2suc2NzcyIsIl9taXhpbnMvbGlicmFyeS9fZGl2aWRlci1saW5lLnNjc3MiLCJfbWl4aW5zL2xpYnJhcnkvX2hlYWRsaW5lLXR5cGUuc2NzcyIsIl9taXhpbnMvbGlicmFyeS9faGlnaGxpZ2h0LWJveC5zY3NzIiwiX21peGlucy9saWJyYXJ5L19pbWFnZS0yeC5zY3NzIiwiX21peGlucy9saWJyYXJ5L19pbWFnZS1zdHlsZXMuc2NzcyIsIl9taXhpbnMvbGlicmFyeS9fbmF2aWdhdGlvbi1saXN0LnNjc3MiLCJfbWl4aW5zL2xpYnJhcnkvX25vLWRyYWctaW1hZ2Uuc2NzcyIsIl9taXhpbnMvbGlicmFyeS9fc3ZnLWJnLnNjc3MiLCJfZWxlbWVudHMuc2NzcyIsIl9kcnVwYWwuc2NzcyIsImRydXBhbC9fZm9ybXMuc2NzcyIsImRydXBhbC9fbWVzc2FnZXMuc2NzcyIsImRydXBhbC9fc3lzdGVtLXRoZW1lLnNjc3MiLCJkcnVwYWwvX3RhYnMuc2NzcyIsIl9sYXlvdXQuc2NzcyIsImxheW91dC9faGVhZGVyLnNjc3MiLCJsYXlvdXQvX2NvbnRlbnQuc2NzcyIsImxheW91dC9fZm9vdGVyLnNjc3MiLCJsYXlvdXQvX2xheW91dC1idWlsZGVyLnNjc3MiLCJfb2JqZWN0cy5zY3NzIiwib2JqZWN0cy9fYnV0dG9ucy5zY3NzIiwib2JqZWN0cy9fY2FyZHMuc2NzcyIsIm9iamVjdHMvY2FyZHMvX2NhcmQuc2NzcyIsIm9iamVjdHMvY2FyZHMvX2NhcmQtLWRlZmF1bHQuc2NzcyIsIm9iamVjdHMvY2FyZHMvX2NhcmQtLWhpZ2hsaWdodC5zY3NzIiwib2JqZWN0cy9jYXJkcy9fY2FyZC0tbWVkaWEuc2NzcyIsIm9iamVjdHMvX3Jlc3BvbnNpdmUtdGFibGVzLnNjc3MiLCJvYmplY3RzL19tZWRpYS1lbWJlZC5zY3NzIiwib2JqZWN0cy9fZmllbGRzLnNjc3MiLCJvYmplY3RzL192aWV3LWZpZWxkcy5zY3NzIiwib2JqZWN0cy9fbGlzdC1kaXNwbGF5cy5zY3NzIiwib2JqZWN0cy9fZ3JpZC1kaXNwbGF5cy5zY3NzIiwib2JqZWN0cy9fY29udGVudC1zdHlsZXMuc2NzcyIsIm9iamVjdHMvX3ZlbmRvcnMuc2NzcyIsIl9jb21wb25lbnRzLnNjc3MiLCJjb21wb25lbnRzL19ibG9ja3Muc2NzcyIsImNvbXBvbmVudHMvYmxvY2tzL19ibG9jay1iZWFucy5zY3NzIiwiY29tcG9uZW50cy9ibG9ja3MvX2Jsb2NrLWRlZmF1bHQuc2NzcyIsImNvbXBvbmVudHMvYmxvY2tzL19ibG9jay1mYXEuc2NzcyIsImNvbXBvbmVudHMvX2JyYW5kLnNjc3MiLCJjb21wb25lbnRzL19zZWFyY2guc2NzcyIsImNvbXBvbmVudHMvc2VhcmNoL19zZWFyY2gtZm9ybS5zY3NzIiwiY29tcG9uZW50cy9zZWFyY2gvX3NlYXJjaC1yZXN1bHRzLnNjc3MiLCJjb21wb25lbnRzL3NlYXJjaC9fYmxvY2stc2VhcmNoLnNjc3MiLCJjb21wb25lbnRzL191c2VyLnNjc3MiLCJjb21wb25lbnRzL3VzZXIvX3VzZXItbG9naW4uc2NzcyIsImNvbXBvbmVudHMvX3dlYmZvcm1zLnNjc3MiLCJfc2VjdGlvbnMuc2NzcyIsInNlY3Rpb25zL19wYWdlLnNjc3MiLCJzZWN0aW9ucy9wYWdlL19ub2RlLXBhZ2Uuc2NzcyIsInNlY3Rpb25zL3BhZ2UvX21hbmlmZXN0by1wYWdlLnNjc3MiLCJzZWN0aW9ucy9wYWdlL190ZWFtLXBhZ2Uuc2NzcyIsInNlY3Rpb25zL3BhZ2UvX2RydXBhbC1wYWdlLnNjc3MiLCJzZWN0aW9ucy9wYWdlL19jb25uZWN0LXBhZ2Uuc2NzcyIsInNlY3Rpb25zL3BhZ2UvX2hvbWUtcGFnZS5zY3NzIiwic2VjdGlvbnMvcGFnZS9fd2lwaGUtcGFnZS5zY3NzIiwic2VjdGlvbnMvcGFnZS9fY2FyZWVycy1wYWdlLnNjc3MiLCJzZWN0aW9ucy9fY2FzZS1zdHVkeS5zY3NzIiwic2VjdGlvbnMvY2FzZV9zdHVkaWVzL19ibG9jay12aWV3cy1ibG9ja2Nhc2Utc3R1ZGllcy1ibG9jay0xLnNjc3MiLCJzZWN0aW9ucy9jYXNlX3N0dWRpZXMvX2Jsb2NrLXZpZXdzLWJsb2NrcmVsYXRlZC1jYXNlLXN0dWRpZXMtYmxvY2stMS5zY3NzIiwic2VjdGlvbnMvY2FzZV9zdHVkaWVzL19ub2RlLS10eXBlLWNhc2Utc3R1ZHkuc2NzcyIsInNlY3Rpb25zL2Nhc2Vfc3R1ZGllcy9fY29udGV4dC13b3JrLnNjc3MiLCJzZWN0aW9ucy9fbGFuZGluZy1wYWdlLnNjc3MiLCJzZWN0aW9ucy9sYW5kaW5nX3BhZ2UvX25vZGUtLXR5cGUtbGFuZGluZy1wYWdlLnNjc3MiLCJzZWN0aW9ucy9sYW5kaW5nX3BhZ2UvX25vZGUtLXR5cGUtbGFuZGluZy1wYWdlLWlzbGFuZG9yYS5zY3NzIiwic2VjdGlvbnMvbGFuZGluZ19wYWdlL19ub2RlLS10eXBlLWxhbmRpbmctcGFnZS13aXBoZS5zY3NzIiwic2VjdGlvbnMvbGFuZGluZ19wYWdlL19ub2RlLS10eXBlLWxhbmRpbmctcGFnZS1lY2hpZG5ldC5zY3NzIiwic2VjdGlvbnMvbGFuZGluZ19wYWdlL19ub2RlLS10eXBlLWxhbmRpbmctcGFnZS1lY2hpZG5hLXByb2R1Y3Quc2NzcyIsInNlY3Rpb25zL19ibG9nLnNjc3MiLCJzZWN0aW9ucy9ibG9nL19ub2RlLWJsb2cuc2NzcyIsInNlY3Rpb25zL19kcnVwYWwtdHJhaW5pbmcuc2NzcyIsInNlY3Rpb25zL2RydXBhbF90cmFpbmluZy9fbm9kZS1kcnVwYWwtdHJhaW5pbmcuc2NzcyIsInNlY3Rpb25zL2RydXBhbF90cmFpbmluZy9fdmlldy1kcnVwYWwtdHJhaW5pbmcuc2NzcyIsInNlY3Rpb25zL2RydXBhbF90cmFpbmluZy9fd2ViZm9ybS1kcnVwYWwtdHJhaW5pbmcuc2NzcyIsIl9uYXZpZ2F0aW9uLnNjc3MiLCJuYXZpZ2F0aW9uL19ibG9jay1tYWluLW5hdi5zY3NzIiwibmF2aWdhdGlvbi9fYmxvY2stc2Vjb25kYXJ5LW5hdi5zY3NzIiwibmF2aWdhdGlvbi9fYmxvY2stc3ViLW5hdi5zY3NzIiwibmF2aWdhdGlvbi9fYnJlYWRjcnVtYi5zY3NzIiwibmF2aWdhdGlvbi9fcGFnZXIuc2NzcyIsIl9yZXZpc2lvbnMuc2NzcyIsIl9pZS5zY3NzIiwiX3ByaW50LnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gIEF1dGhvcjogRGlnaXRhbCBFY2hpZG5hXG4vLyAgV2lraTogaHR0cHM6Ly9iaXRidWNrZXQub3JnL2RpZ2l0YWxlY2hpZG5hL2RpZ2l0YWwtZWNoaWRuYS1kZWZhdWx0LXRoZW1lLXYyL3dpa2kvSG9tZVxuLy8gIFRyZWxsbyBib2FyZDogaHR0cHM6Ly90cmVsbG8uY29tL2IvNE0xOXNZWGQvZGlnaXRhbC1lY2hpZG5hLWRlZmF1bHQtdGhlbWVcbi8vICBTbGFjayBjaGFubmVsOiAjZWNoaWRuYS1kZWZhdWx0LXRoZW1lXG5cbi8vICBAUHJvamVjdCBTdHJ1Y3R1cmUgT3ZlcnZpZXdcbi8vICBJbXBvcnRzIGFyZSBzZXR1cCB0byBoZWxwIGNodW5rIGRpZmZlcmVudCB0eXBlcyBvZiBzdHlsZXNcbi8vICBmb3IgcHJvamVjdHMgYnV0IGFsc28gcmVzZW1ibGUgYSBzaW5nbGUgc3R5bGVzaGVldCBsYXllZFxuLy8gIG91dCB0byB0YWtlIGFkdmFudGFnZSBvZiBjYXNjYWRlLlxuXG4vLyBJZiBhIHNwZWNpZmljIGluc3RhbGwgd2lsbCBub3QgYmVcbi8vIHVzaW5nIGNlcnRhaW4gZnVuY3Rpb25sYWl0eSBvciBzdHlsZXNcbi8vIGVuc3VyZSB0aGF0IHRoZSBwYXJ0aWFscyBhcmUgY29tbWVudGVkXG4vLyBvdXQgYW5kIG5vdCBpbXBvcnRlZCBPUiBjb2RlIGlzIGNvbW1lbnRlZFxuLy8gb3V0IHdpdGhpbiBpbmRpdmlkdWFsIGZpbGVzLiBUaGlzIHRoZW1lXG4vLyBoYXMgYmVlbiBidWlsdCB3aXRoIHRoZSBpZGVhIGluIG1pbmQgdGhhdFxuLy8gaXRlbXMgY2FuIGJlIHJlbW92ZWQgb3IgYWRkZWQgZWZmaWNpZW50bHlcblxuLy8gQGRpZ2l0YWwgZWNoaWRuYSBkZWZhdWx0IGRydXBhbCB0aGVtZSBiYXNlXG4vLyBfdGhlbWUtaW5pdC5zY3NzIGNvbnRhaW5zIDNyZCBwYXJ0eSBpbXBvcnRzLCBjdXN0b20gbWl4aW5zIGFuZCBzZXR0aW5nc1xuQGltcG9ydCAndGhlbWUtaW5pdCc7XG5cbi8vIEBhdXRob3JzIGRvIG5vdCBlZGl0LiBkcnVwYWwgb3ZlcmlkZSBzdHlsZXMgb2YgZXhpc2l0aW5nIGNvbXBvbmVudHMuXG4vLyBfZHJ1cGFsLnNjc3MgY29udGFpbnMgZWNoaWRuYXMgZGVmYXVsdCBkcnVwYWwgc3R5bGUgb3ZlcnJpZGVzIGFuZCBiYXNlbGluZVxuLy8gc3R5bGVzIGZvciBkZWZhdWx0IENPUkUgZHJ1cGFsIGZ1bmN0aW9ubGFpdHkgZWcuIHdlYmZvcm0gb3ZlcnJpZGVzLCBiYXNpYyBzZWFyY2ggcmVzdWx0IHN0eWxlcy5cbkBpbXBvcnQgJ2RydXBhbCc7XG5cbi8vIEBhdXRob3JzIGRlc2lnbiBzdHJ1Y3R1cmUgc3R5bGVzXG4vLyBfbGF5b3V0LnNjc3MgY29udGFpbnMgdGhlIGRlc2lnbiBzdHJ1Y3R1cmUgc3R5bGVzLCBpbmNsdWRpbmcgcmVzcG9uc2l2ZVxuLy8gZGVzaWduIGltcGxlbWVudGF0aW9uXG5AaW1wb3J0ICdsYXlvdXQnO1xuXG4vLyBAYXV0aG9ycyBnZW5lcmljLCB1bmRlcmx5aW5nIGRlc2lnbiBwYXR0ZXJucyBmb3IgY29tcG9uZW50IHN0eWxpbmdcbi8vIF9vYmplY3RzLnNjc3MgY29udGFpbnMgZ2VuZXJpYywgdW5kZXJseWluZyBkZXNpZ24gcGF0dGVybnMgYW5kIHRoZWlyXG4vLyBleHRlbnNpb25zLiBlZy4gYmFzaWMgc3R5bGVzIGZvciBhbGwgc2lkZWJhciBibG9ja3MsIGdyaWQgb3IgbGlzdCBkaXNwbGF5c1xuLy8gb2YgY29udGVudCwgYnV0dG9ucyBvciByZXNwb25zaXZlIHRhYmxlcy4gbWF5IGFsc28gYnVpbGQgdXBvbiBzdHlsZXMgc2V0XG4vLyBpbiB0aGUgZHJ1cGFsIGRpcmVjdG9yeVxuQGltcG9ydCAnb2JqZWN0cyc7XG5cbi8vIEBhdXRob3JzIHNwZWNpZmljIGNvbXBvbmVudCBzdHlsaW5nXG4vLyBfY29tcG9uZW50cy5zY3NzIGNvbnRhaW5zIHN0eWxlcyBmb3IgY29tcG9uZW50cyBjb25zdHJ1Y3RlZCBmcm9tIG9iamVjdHNcbi8vIGFuZCB0aGVpciBleHRlbnNpb25zLCBvciBkZXRhaWxlZCBwYWdlIGRlc2lnbi4gZWcuIGEgc2lkZWJhciBjYWxsIHRvXG4vLyBhY3Rpb24gdGhhdCBpcyBzdHlsZWQgc3BlY2lmaWNhbGx5IGZvciBldmVudHNcbkBpbXBvcnQgJ2NvbXBvbmVudHMnO1xuXG4vLyBAYXV0aG9ycyBzcGVjaWZpYyBzZWN0aW9uIHN0eWxpbmdcbi8vIF9zZWN0aW9ucy5zY3NzIGNvbnRhaW5zIHN0eWxlcyBmb3IgbWFpbiBzZWN0aW9ucyBvZiBhIHNpdGUsIGVnLiB0aGUgbmV3cyBvclxuLy8gZXZlbnRzIHNlY3Rpb24uIGNhbiBjb250YWluIHNwZWNpZmljIGNvbXBvbmVudHMgdW5pcXVlIHRvIHRoYXQgc2VjdGlvblxuQGltcG9ydCAnc2VjdGlvbnMnO1xuXG4vLyBAYXV0aG9ycyBuYXZpZ2F0aW9uIHN5c3RlbSBzdHlsZXNcbi8vIF9uYXZpZ2F0aW9uLnNjc3MgY29udGFpbnMgc3R5bGVzIGZvciBhbGwgbmF2aWdhdGlvbiBzeXN0ZW1zLlxuLy8gZWcuIG1haW4gbmF2aWdhdGlvbiwgc3ViIG5hdmlnYXRpb24sIHBhZ2luYXRpb24sIGJyZWFkY3J1bWJzLCBmb290ZXIgc2l0ZW1hcCBtZW51c1xuQGltcG9ydCAnbmF2aWdhdGlvbic7XG5cbi8vIEBzdXBwb3J0aW5nIGRldmVsb3BlciByZXZpc2lvbnNcbi8vIF9yZXZpc2lvbnMuc2NzcyBjb250YWlucyBlbWVyZ2VuY3kgcmV2aXNpb25zIG9yIGZpeGVzIGZvciBhXG4vLyBzdXBwb3J0aW5nIGRldmVsb3BlciBpZiB0aGUgbWFpbiBkZXZlbG9wZXIgaXMgdW5hdmFpbGFibGVcbkBpbXBvcnQgJ3JldmlzaW9ucyc7XG5cbi8vIEBpbnRlcm5ldCBleHBsb3JlciBicm93c2VyIGZpeGVzIChjb250YWlucyBhbGwgYnJvd3NlciB2ZXJzaW9ucyBpblxuLy8gcGFydGlhbHMgbG9jYXRlZCBpbiB0aGUgc2Fzcy9pZSBkaXJlY3RvcnkpXG5AaW1wb3J0ICdpZSc7XG5cbi8vIEBwcmludCBzdHlsZXNcbkBpbXBvcnQgJ3ByaW50JztcblxuLy8gQGJhc2ljIGdyZXlzY2FsZSBkZXNpZ24gYW5kIGxheW91dCBmb3IgY29udGVudCBlbnRyeSBwdXJwb3Nlcy5cbi8vIGNvbW1lbnQgb3V0IGR1cmluZyB0aGVtZSBkZXZlbG9wbWVudFxuLy8gQGltcG9ydCAnd2lyZWZyYW1lJztcblxuLy8gICAgICAgICAgICAgICAgICAgICAgICAgLlxuLy8gICAgICAgICAgICAgICAgICAgIC5fYC1cXCApXFwsYC0uLS5cbi8vICAgICAgICAgICAgICAgICAgIFxcJ1xcYCBcXClcXCBcXClcXCBcXHwuKVxuLy8gICAgICAgICAgICAgICAgIFxcYCkgIHxcXCkgIClcXCAuKVxcIClcXHxcbi8vICAgICAgICAgICAgICAgICBcXCBcXClcXCB8KVxcICBgICAgXFwgLicpL3xcbi8vICAgICAgICAgICAgICAgIGBgLS5cXCBcXCAgICApXFwgYCAgLiAuLCAnKFxuLy8gICAgICAgICAgICAgICAgXFxcXCAtLiBgKVxcYGAtIC5fIC4pYCB8XFwoLF9cbi8vICAgICAgICAgICAgICAgIGBfXyAgJ1xcIGAtLSAgX1xcYC4gYCAgICAoL1xuLy8gICAgICAgICAgICAgICAgICBgXFwsXFwgICAgICAgLlxcXFwgICAgICAgIC9cbi8vICAgICAgICAgICAgICAgICAgICAnYCApICAoYC0uXFxcXCAgICAgICBgXG4vLyAgICAgICAgICAgICAgICAgICAgICAgL3x8XFwgICAgYC4gICogXyp8XG4vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGAtLiggYFxcXG4vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgLiBcXFxuLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgKGNcbi8vXG4iLCIvKiBfdGhlbWUtaW5pdC5zY3NzICovXG4vLyBfdGhlbWUtaW5pdC5zY3NzIGNvbnRhaW5zIDNyZCBwYXJ0eSBpbXBvcnRzLCBjdXN0b20gbWl4aW5zIGFuZCBzZXR0aW5nc1xuLy8gaW1wb3J0IHRoaXMgZmlsZSBpZiB5b3UgbmVlZCB0byBjcmVhdGUgYW5vdGhlciBzdGFuZGFsb25lIHN0eWxlc2hlZXQgZm9yXG4vLyBmb3IgdGhlIHRoZW1lIHNvIHlvdSBjYW4gdXRpbGl6ZSBhbGwgdG9vbHMgYW5kIHNldHRpbmdzXG5cbi8vIGltcG9ydCBvbmNlXG4gICAgLy8gYm94IHNpemluZ1xuICAgICAgICBAaW1wb3J0ICcuLi9ib3dlcl9jb21wb25lbnRzL2ludWl0LWJveC1zaXppbmcvZ2VuZXJpYy5ib3gtc2l6aW5nJztcbiAgICAvLyBub3JtYWxpemVcbiAgICAgICAgQGltcG9ydCAnLi4vYm93ZXJfY29tcG9uZW50cy9pbnVpdC1ub3JtYWxpemUvZ2VuZXJpYy5ub3JtYWxpemUnO1xuXG4vLyBpbXBvcnQgY29tbW9uc1xuICAgIEBpbXBvcnQgJ3RoZW1lLWNvbW1vbnMnO1xuXG4vLyBAYXV0aG9ycyB1bmNsYXNzZWQgZWxlbWVudCBzdHlsZXNcbiAgICAvLyBfZWxlbWVudHMuc2NzcyBjb250YWlucyBhdXRob3JzIHVuY2xhc3NlZCBIVE1MIGVsZW1lbnQgc3R5bGVzIHN1Y2ggYXMgaDEsIGgyLCB0YWJsZSwgZXRjXG4gICAgICBAaW1wb3J0ICdlbGVtZW50cyc7XG4iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNCT1gtU0laSU5HXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKipcbiAqIFNldCB0aGUgZ2xvYmFsIGBib3gtc2l6aW5nYCBzdGF0ZSB0byBgYm9yZGVyLWJveGAuXG4gKlxuICogY3NzLXRyaWNrcy5jb20vaW5oZXJpdGluZy1ib3gtc2l6aW5nLXByb2JhYmx5LXNsaWdodGx5LWJldHRlci1iZXN0LXByYWN0aWNlXG4gKiBwYXVsaXJpc2guY29tLzIwMTIvYm94LXNpemluZy1ib3JkZXItYm94LWZ0d1xuICovXG5odG1sIHtcbiAgICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuKiB7XG5cbiAgICAmLFxuICAgICY6YmVmb3JlLFxuICAgICY6YWZ0ZXIge1xuICAgICAgICAtd2Via2l0LWJveC1zaXppbmc6IGluaGVyaXQ7XG4gICAgICAgICAgIC1tb3otYm94LXNpemluZzogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICBib3gtc2l6aW5nOiBpbmhlcml0O1xuICAgICAgICB9XG5cbn1cblxuXG5cblxuXG4vLyBJZiB3ZSBoYXZlIGluY2x1ZGVkIHRoaXMgZmlsZSwgc2V0IGEgdmFyaWFibGUgdG8gdGVsbCB0aGUgcmVzdCBvZiB0aGVcbi8vIGZyYW1ld29yayB0aGF0IGdsb2JhbCBgYm94LXNpemluZzogYm9yZGVyLWJveGAgaGFzIGJlZW4gc2V0LlxuJGludWl0LWdsb2JhbC1ib3JkZXItYm94OiB0cnVlO1xuIiwiLyohIG5vcm1hbGl6ZS5jc3MgdjMuMC4zIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuXG4vKipcbiAqIDEuIFNldCBkZWZhdWx0IGZvbnQgZmFtaWx5IHRvIHNhbnMtc2VyaWYuXG4gKiAyLiBQcmV2ZW50IGlPUyBhbmQgSUUgdGV4dCBzaXplIGFkanVzdCBhZnRlciBkZXZpY2Ugb3JpZW50YXRpb24gY2hhbmdlLFxuICogICAgd2l0aG91dCBkaXNhYmxpbmcgdXNlciB6b29tLlxuICovXG5cbmh0bWwge1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjsgLyogMSAqL1xuICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgZGVmYXVsdCBtYXJnaW4uXG4gKi9cblxuYm9keSB7XG4gIG1hcmdpbjogMDtcbn1cblxuLyogSFRNTDUgZGlzcGxheSBkZWZpbml0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYW55IEhUTUw1IGVsZW1lbnQgaW4gSUUgOC85LlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBkZXRhaWxzYCBvciBgc3VtbWFyeWAgaW4gSUUgMTAvMTFcbiAqIGFuZCBGaXJlZm94LlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBtYWluYCBpbiBJRSAxMS5cbiAqL1xuXG5hcnRpY2xlLFxuYXNpZGUsXG5kZXRhaWxzLFxuZmlnY2FwdGlvbixcbmZpZ3VyZSxcbmZvb3RlcixcbmhlYWRlcixcbmhncm91cCxcbm1haW4sXG5tZW51LFxubmF2LFxuc2VjdGlvbixcbnN1bW1hcnkge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGBpbmxpbmUtYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgaW4gSUUgOC85LlxuICogMi4gTm9ybWFsaXplIHZlcnRpY2FsIGFsaWdubWVudCBvZiBgcHJvZ3Jlc3NgIGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICovXG5cbmF1ZGlvLFxuY2FudmFzLFxucHJvZ3Jlc3MsXG52aWRlbyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgLyogMSAqL1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBQcmV2ZW50IG1vZGVybiBicm93c2VycyBmcm9tIGRpc3BsYXlpbmcgYGF1ZGlvYCB3aXRob3V0IGNvbnRyb2xzLlxuICogUmVtb3ZlIGV4Y2VzcyBoZWlnaHQgaW4gaU9TIDUgZGV2aWNlcy5cbiAqL1xuXG5hdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICBkaXNwbGF5OiBub25lO1xuICBoZWlnaHQ6IDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBgW2hpZGRlbl1gIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLlxuICogSGlkZSB0aGUgYHRlbXBsYXRlYCBlbGVtZW50IGluIElFIDgvOS8xMC8xMSwgU2FmYXJpLCBhbmQgRmlyZWZveCA8IDIyLlxuICovXG5cbltoaWRkZW5dLFxudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiBMaW5rc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBjb2xvciBmcm9tIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAqL1xuXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi8qKlxuICogSW1wcm92ZSByZWFkYWJpbGl0eSBvZiBmb2N1c2VkIGVsZW1lbnRzIHdoZW4gdGhleSBhcmUgYWxzbyBpbiBhblxuICogYWN0aXZlL2hvdmVyIHN0YXRlLlxuICovXG5cbmE6YWN0aXZlLFxuYTpob3ZlciB7XG4gIG91dGxpbmU6IDA7XG59XG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAvMTEsIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQ7XG59XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsZSBzZXQgdG8gYGJvbGRlcmAgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gKi9cblxuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgdmFyaWFibGUgYGgxYCBmb250LXNpemUgYW5kIG1hcmdpbiB3aXRoaW4gYHNlY3Rpb25gIGFuZCBgYXJ0aWNsZWBcbiAqIGNvbnRleHRzIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkuXG4gKi9cblxubWFyayB7XG4gIGJhY2tncm91bmQ6ICNmZjA7XG4gIGNvbG9yOiAjMDAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGFuZCB2YXJpYWJsZSBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5cbi8qKlxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgYWZmZWN0aW5nIGBsaW5lLWhlaWdodGAgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtO1xufVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07XG59XG5cbi8qIEVtYmVkZGVkIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIGJvcmRlciB3aGVuIGluc2lkZSBgYWAgZWxlbWVudCBpbiBJRSA4LzkvMTAuXG4gKi9cblxuaW1nIHtcbiAgYm9yZGVyOiAwO1xufVxuXG4vKipcbiAqIENvcnJlY3Qgb3ZlcmZsb3cgbm90IGhpZGRlbiBpbiBJRSA5LzEwLzExLlxuICovXG5cbnN2Zzpub3QoOnJvb3QpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLyogR3JvdXBpbmcgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGRyZXNzIG1hcmdpbiBub3QgcHJlc2VudCBpbiBJRSA4LzkgYW5kIFNhZmFyaS5cbiAqL1xuXG5maWd1cmUge1xuICBtYXJnaW46IDFlbSA0MHB4O1xufVxuXG4vKipcbiAqIEFkZHJlc3MgZGlmZmVyZW5jZXMgYmV0d2VlbiBGaXJlZm94IGFuZCBvdGhlciBicm93c2Vycy5cbiAqL1xuXG5ociB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBoZWlnaHQ6IDA7XG59XG5cbi8qKlxuICogQ29udGFpbiBvdmVyZmxvdyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxucHJlIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qKlxuICogQWRkcmVzcyBvZGQgYGVtYC11bml0IGZvbnQgc2l6ZSByZW5kZXJpbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmNvZGUsXG5rYmQsXG5wcmUsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDFlbTtcbn1cblxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogS25vd24gbGltaXRhdGlvbjogYnkgZGVmYXVsdCwgQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWCBhbGxvdyB2ZXJ5IGxpbWl0ZWRcbiAqIHN0eWxpbmcgb2YgYHNlbGVjdGAsIHVubGVzcyBhIGBib3JkZXJgIHByb3BlcnR5IGlzIHNldC5cbiAqL1xuXG4vKipcbiAqIDEuIENvcnJlY3QgY29sb3Igbm90IGJlaW5nIGluaGVyaXRlZC5cbiAqICAgIEtub3duIGlzc3VlOiBhZmZlY3RzIGNvbG9yIG9mIGRpc2FibGVkIGVsZW1lbnRzLlxuICogMi4gQ29ycmVjdCBmb250IHByb3BlcnRpZXMgbm90IGJlaW5nIGluaGVyaXRlZC5cbiAqIDMuIEFkZHJlc3MgbWFyZ2lucyBzZXQgZGlmZmVyZW50bHkgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGNvbG9yOiBpbmhlcml0OyAvKiAxICovXG4gIGZvbnQ6IGluaGVyaXQ7IC8qIDIgKi9cbiAgbWFyZ2luOiAwOyAvKiAzICovXG59XG5cbi8qKlxuICogQWRkcmVzcyBgb3ZlcmZsb3dgIHNldCB0byBgaGlkZGVuYCBpbiBJRSA4LzkvMTAvMTEuXG4gKi9cblxuYnV0dG9uIHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi8qKlxuICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYHRleHQtdHJhbnNmb3JtYCBpbmhlcml0YW5jZSBmb3IgYGJ1dHRvbmAgYW5kIGBzZWxlY3RgLlxuICogQWxsIG90aGVyIGZvcm0gY29udHJvbCBlbGVtZW50cyBkbyBub3QgaW5oZXJpdCBgdGV4dC10cmFuc2Zvcm1gIHZhbHVlcy5cbiAqIENvcnJlY3QgYGJ1dHRvbmAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveCwgSUUgOC85LzEwLzExLCBhbmQgT3BlcmEuXG4gKiBDb3JyZWN0IGBzZWxlY3RgIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3guXG4gKi9cblxuYnV0dG9uLFxuc2VsZWN0IHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8qKlxuICogMS4gQXZvaWQgdGhlIFdlYktpdCBidWcgaW4gQW5kcm9pZCA0LjAuKiB3aGVyZSAoMikgZGVzdHJveXMgbmF0aXZlIGBhdWRpb2BcbiAqICAgIGFuZCBgdmlkZW9gIGNvbnRyb2xzLlxuICogMi4gQ29ycmVjdCBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIGBpbnB1dGAgdHlwZXMgaW4gaU9TLlxuICogMy4gSW1wcm92ZSB1c2FiaWxpdHkgYW5kIGNvbnNpc3RlbmN5IG9mIGN1cnNvciBzdHlsZSBiZXR3ZWVuIGltYWdlLXR5cGVcbiAqICAgIGBpbnB1dGAgYW5kIG90aGVycy5cbiAqL1xuXG5idXR0b24sXG5odG1sIGlucHV0W3R5cGU9XCJidXR0b25cIl0sIC8qIDEgKi9cbmlucHV0W3R5cGU9XCJyZXNldFwiXSxcbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMiAqL1xuICBjdXJzb3I6IHBvaW50ZXI7IC8qIDMgKi9cbn1cblxuLyoqXG4gKiBSZS1zZXQgZGVmYXVsdCBjdXJzb3IgZm9yIGRpc2FibGVkIGVsZW1lbnRzLlxuICovXG5cbmJ1dHRvbltkaXNhYmxlZF0sXG5odG1sIGlucHV0W2Rpc2FibGVkXSB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLyoqXG4gKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgYm9yZGVyIGluIEZpcmVmb3ggNCsuXG4gKi9cblxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBGaXJlZm94IDQrIHNldHRpbmcgYGxpbmUtaGVpZ2h0YCBvbiBgaW5wdXRgIHVzaW5nIGAhaW1wb3J0YW50YCBpblxuICogdGhlIFVBIHN0eWxlc2hlZXQuXG4gKi9cblxuaW5wdXQge1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xufVxuXG4vKipcbiAqIEl0J3MgcmVjb21tZW5kZWQgdGhhdCB5b3UgZG9uJ3QgYXR0ZW1wdCB0byBzdHlsZSB0aGVzZSBlbGVtZW50cy5cbiAqIEZpcmVmb3gncyBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0IHJlc3BlY3QgYm94LXNpemluZywgcGFkZGluZywgb3Igd2lkdGguXG4gKlxuICogMS4gQWRkcmVzcyBib3ggc2l6aW5nIHNldCB0byBgY29udGVudC1ib3hgIGluIElFIDgvOS8xMC5cbiAqIDIuIFJlbW92ZSBleGNlc3MgcGFkZGluZyBpbiBJRSA4LzkvMTAuXG4gKi9cblxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogRml4IHRoZSBjdXJzb3Igc3R5bGUgZm9yIENocm9tZSdzIGluY3JlbWVudC9kZWNyZW1lbnQgYnV0dG9ucy4gRm9yIGNlcnRhaW5cbiAqIGBmb250LXNpemVgIHZhbHVlcyBvZiB0aGUgYGlucHV0YCwgaXQgY2F1c2VzIHRoZSBjdXJzb3Igc3R5bGUgb2YgdGhlXG4gKiBkZWNyZW1lbnQgYnV0dG9uIHRvIGNoYW5nZSBmcm9tIGBkZWZhdWx0YCB0byBgdGV4dGAuXG4gKi9cblxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi8qKlxuICogMS4gQWRkcmVzcyBgYXBwZWFyYW5jZWAgc2V0IHRvIGBzZWFyY2hmaWVsZGAgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gKiAyLiBBZGRyZXNzIGBib3gtc2l6aW5nYCBzZXQgdG8gYGJvcmRlci1ib3hgIGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuICovXG5cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBzZWFyY2ggY2FuY2VsIGJ1dHRvbiBpbiBTYWZhcmkgYW5kIENocm9tZSBvbiBPUyBYLlxuICogU2FmYXJpIChidXQgbm90IENocm9tZSkgY2xpcHMgdGhlIGNhbmNlbCBidXR0b24gd2hlbiB0aGUgc2VhcmNoIGlucHV0IGhhc1xuICogcGFkZGluZyAoYW5kIGB0ZXh0ZmllbGRgIGFwcGVhcmFuY2UpLlxuICovXG5cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4vKipcbiAqIERlZmluZSBjb25zaXN0ZW50IGJvcmRlciwgbWFyZ2luLCBhbmQgcGFkZGluZy5cbiAqL1xuXG5maWVsZHNldCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gIG1hcmdpbjogMCAycHg7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjYyNWVtIDAuNzVlbTtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGBjb2xvcmAgbm90IGJlaW5nIGluaGVyaXRlZCBpbiBJRSA4LzkvMTAvMTEuXG4gKiAyLiBSZW1vdmUgcGFkZGluZyBzbyBwZW9wbGUgYXJlbid0IGNhdWdodCBvdXQgaWYgdGhleSB6ZXJvIG91dCBmaWVsZHNldHMuXG4gKi9cblxubGVnZW5kIHtcbiAgYm9yZGVyOiAwOyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgOC85LzEwLzExLlxuICovXG5cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qKlxuICogRG9uJ3QgaW5oZXJpdCB0aGUgYGZvbnQtd2VpZ2h0YCAoYXBwbGllZCBieSBhIHJ1bGUgYWJvdmUpLlxuICogTk9URTogdGhlIGRlZmF1bHQgY2Fubm90IHNhZmVseSBiZSBjaGFuZ2VkIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFguXG4gKi9cblxub3B0Z3JvdXAge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLyogVGFibGVzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSBtb3N0IHNwYWNpbmcgYmV0d2VlbiB0YWJsZSBjZWxscy5cbiAqL1xuXG50YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGJvcmRlci1zcGFjaW5nOiAwO1xufVxuXG50ZCxcbnRoIHtcbiAgcGFkZGluZzogMDtcbn1cbiIsIi8qIF90aGVtZS1jb21tb25zLnNjc3MgKi9cbi8vIGJvd2VyIGNvbXBvbmVudHNcbiAgQGltcG9ydCAnLi4vYm93ZXJfY29tcG9uZW50cy9zYXNzLXRvb2xraXQvc3R5bGVzaGVldHMvdG9vbGtpdCc7XG4gIEBpbXBvcnQgJy4uL2Jvd2VyX2NvbXBvbmVudHMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQnO1xuICBAaW1wb3J0ICcuLi9ib3dlcl9jb21wb25lbnRzL3Npbmd1bGFyaXR5L3N0eWxlc2hlZXRzL3Npbmd1bGFyaXR5Z3MnO1xuICBAaW1wb3J0ICcuLi9ib3dlcl9jb21wb25lbnRzL21vZHVsYXItc2NhbGUvc3R5bGVzaGVldHMvbW9kdWxhci1zY2FsZSc7XG5cbi8vIHNldHRpbmdzXG4gIEBpbXBvcnQgJ19zZXR0aW5ncy9pbmRleCc7XG5cbi8vIG1peGluc1xuICBAaW1wb3J0ICdfbWl4aW5zL2luZGV4JztcbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gVG9vbGtpdCBTZXR0aW5nc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AaW1wb3J0IFwidG9vbGtpdC9zZXR0aW5nc1wiO1xuQGltcG9ydCBcInRvb2xraXQvcGxhY2Vob2xkZXJzXCI7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSW1wb3J0c1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AaW1wb3J0IFwidG9vbGtpdC9jbGVhcmZpeFwiO1xuQGltcG9ydCBcInRvb2xraXQvY29sb3JzXCI7XG5AaW1wb3J0IFwidG9vbGtpdC9mb250c1wiO1xuQGltcG9ydCBcInRvb2xraXQvaW50cmluc2ljLXJhdGlvXCI7XG5AaW1wb3J0IFwidG9vbGtpdC9uZXN0ZWQtY29udGV4dFwiO1xuQGltcG9ydCBcInRvb2xraXQvcGFyYWxsYXhcIjtcbkBpbXBvcnQgXCJ0b29sa2l0L3J0bFwiO1xuQGltcG9ydCBcInRvb2xraXQvdGFyZ2V0XCI7XG5AaW1wb3J0IFwidG9vbGtpdC90cmlhbmdsZVwiO1xuQGltcG9ydCBcInRvb2xraXQvY2VudGVyXCI7XG5AaW1wb3J0IFwidG9vbGtpdC92aWV3cG9ydFwiO1xuQGltcG9ydCBcInRvb2xraXQvdW5kZXJsaW5lXCI7XG5AaW1wb3J0IFwidG9vbGtpdC9hcnRcIjsiLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFRvb2xraXQgU2V0dGluZ3Ncbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJFRvb2xraXQtU2V0dGluZ3M6IChcbiAgJ2NsZWFyZml4IGV4dGVuZCc6IGZhbHNlLFxuICAnY29sb3Igc3RhY2sgYW1vdW50cyc6IDI1JSA1MCUgNzUlIDg1JSA5MCUsXG4gICd0aW50IHNoYWRlIGFtb3VudHMnOiA3NSUgNTAlIDI1JSxcbiAgJ3RpbnQgY29sb3InOiAjZmZmLFxuICAnc2hhZGUgY29sb3InOiAjMDAwLFxuICAnY29sb3Igc2NhbGUgc3RlcHMnOiA2LFxuICAnbGlnYXR1cmUgZXh0ZW5kJzogZmFsc2UsXG4gICdmb250IGZhY2Ugd2VpZ2h0Jzogbm9ybWFsLFxuICAnZm9udCBmYWNlIHN0eWxlJzogbm9ybWFsLFxuICAnZm9udCBmYWNlIGlubGluZSB3b2ZmJzogZmFsc2UsXG4gICdpY29uIGZvbnQgZXh0ZW5kJzogZmFsc2UsXG4gICdpY29uIGZvbnQgc3BlYWsnOiBmYWxzZSxcbiAgJ2ZhZGUgaW4gZHVyYXRpb24nOiAxcyxcbiAgJ2ZhZGUgaW4gbG9hZGluZyBjbGFzcyc6ICcud2YtbG9hZGluZycsXG4gICdmYWRlIGluIGV4dGVuZCc6IGZhbHNlLFxuICAnaW50cmluc2ljIHJhdGlvJzogMTYvOSxcbiAgJ2ludHJpbnNpYyByYXRpbyB3aWR0aCc6IDEwMCUsXG4gICdpbnRyaW5zaWMgcmF0aW8gZWxlbWVudHMnOiAnPiAqJyxcbiAgJ2ludHJpbnNpYyByYXRpbyBwb3NpdGlvbic6IHRvcCxcbiAgJ2ludHJpbnNpYyByYXRpbyBleHRlbmQnOiBmYWxzZSxcbiAgJ25lc3RlZCBjb250ZXh0IGNvbnRleHRzJzogMTAwJSxcbiAgJ25lc3RlZCBjb250ZXh0IHBvc2l0aW9uJzogbGVmdCxcbiAgJ3RyaWFuZ2xlIGNvbG9yJzogIzAwMCxcbiAgJ3RyaWFuZ2xlIGhlaWdodCc6IDFlbSxcbiAgJ3RyaWFuZ2xlIHdpZHRoJzogMWVtLFxuICAndHJpYW5nbGUgYW5nbGUnOiAwLFxuICAncGFyYWxsYXggcGVyc3BlY3RpdmUnOiAxLFxuICAncGFyYWxsYXggZWxlbWVudCc6ICdib2R5JyxcbiAgJ3BhcmFsbGF4IGlvcyc6IHRydWUsXG4gICdwYXJhbGxheCBkaXN0YW5jZSc6IDAsXG4gICd2ZXJ0aWNhbCBtaWRwb2ludCc6IDUwJSxcbiAgJ3ZlcnRpY2FsIGV4dGVuZCc6IGZhbHNlLFxuICAnaG9yaXpvbnRhbCBtaWRwb2ludCc6IDAlLFxuICAnaG9yaXpvbnRhbCBmaXhlZCBtaWRwb2ludCc6IDUwJSxcbiAgJ2hvcml6b250YWwgZml4ZWQnOiBmYWxzZSxcbiAgJ2hvcml6b250YWwgZXh0ZW5kJzogZmFsc2UsXG4gICdhYnNvbHV0ZSBjZW50ZXIgdmVydGljYWwgbWlkcG9pbnQnOiA1MCUsXG4gICdhYnNvbHV0ZSBjZW50ZXIgaG9yaXpvbnRhbCBtaWRwb2ludCc6IDAlLFxuICAnYWJzb2x1dGUgY2VudGVyIGZpeGVkIGhvcml6b250YWwgbWlkcG9pbnQnOiA1MCUsXG4gICdhYnNvbHV0ZSBjZW50ZXIgZml4ZWQnOiBmYWxzZSxcbiAgJ2Fic29sdXRlIGNlbnRlciBleHRlbmQnOiBmYWxzZSxcbiAgJ3VuZGVybGluZSBiYWNrZ3JvdW5kJzogI2ZmZixcbiAgJ3VuZGVybGluZSBjb2xvcic6ICMwMGUsXG4gICd1bmRlcmxpbmUgY2xlYXIgZGVzY2VuZGVycyc6IHRydWUsXG4gICd1bmRlcmxpbmUgZGlzdGFuY2UnOiAxLFxuICAndW5kZXJsaW5lIHdpZHRoJzogMixcbiAgJ3VuZGVybGluZSBleHRlbmQnOiBmYWxzZSxcbiAgJ2FydCBwaXhlbCBzaXplJzogMXB4LFxuICAnYXJ0IGNvbG9yJzogYmxhY2ssXG4gICdhcnQgYm9yZGVyIHJhZGl1cyc6IDAlXG4pO1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIE5ldyBTZXR0aW5ncyBtb2R1bGVcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gR2xvYmFsXG4kR2xvYmFsU2V0dGluZ3M6ICRUb29sa2l0LVNldHRpbmdzICFkZWZhdWx0O1xuLy8gVXNlclxuJFVzZXJTZXR0aW5nczogKCkgIWRlZmF1bHQ7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gVXNlciBTZXR0aW5nIEV4aXN0c1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gdXNlci1zZXR0aW5nLWV4aXN0cygkc2V0dGluZykge1xuICBAaWYgbWFwLWhhcy1rZXkoJFVzZXJTZXR0aW5ncywgJHNldHRpbmcpIHtcbiAgICBAcmV0dXJuIHRydWU7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuQGZ1bmN0aW9uIHVzZXItc2V0dGluZy1leGlzdHMtbXVsdGlwbGUoJHNldHRpbmdzLi4uKSB7XG4gICRSZXR1cm46ICgpO1xuICBAZWFjaCAkc2V0dGluZyBpbiAkc2V0dGluZ3Mge1xuICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJHNldHRpbmc6IHVzZXItc2V0dGluZy1leGlzdHMoJHNldHRpbmcpKSk7XG4gIH1cbiAgQHJldHVybiAkUmV0dXJuO1xufVxuXG4vLyBUb29sa2l0IFZlcnNpb25cbkBmdW5jdGlvbiB0b29sa2l0LWhhcygkc2V0dGluZykge1xuICBAcmV0dXJuIHVzZXItc2V0dGluZy1leGlzdHMoJHNldHRpbmcpO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFNldHRpbmcgR2V0XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBzZXR0aW5nLWdldCgkc2V0dGluZykge1xuICBAaWYgdXNlci1zZXR0aW5nLWV4aXN0cygkc2V0dGluZykge1xuICAgIEByZXR1cm4gbWFwLWdldCgkVXNlclNldHRpbmdzLCAkc2V0dGluZyk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gbWFwLWdldCgkR2xvYmFsU2V0dGluZ3MsICRzZXR0aW5nKTtcbiAgfVxufVxuXG5AZnVuY3Rpb24gc2V0dGluZy1nZXQtbXVsdGlwbGUoJHNldHRpbmdzLi4uKSB7XG4gICR2YWx1ZXM6ICgpO1xuICBAZWFjaCAkc2V0dGluZyBpbiAkc2V0dGluZ3Mge1xuICAgICR2YWx1ZXM6IG1hcC1tZXJnZSgkdmFsdWVzLCAoJHNldHRpbmc6IHNldHRpbmctZ2V0KCRzZXR0aW5nKSkpO1xuICB9XG4gIEByZXR1cm4gJHZhbHVlcztcbn1cblxuLy8gVG9vbGtpdCBWZXJzaW9uXG5AZnVuY3Rpb24gdG9vbGtpdC1nZXQoJHNldHRpbmcpIHtcbiAgQHJldHVybiBzZXR0aW5nLWdldCgkc2V0dGluZyk7XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBTZXR0aW5ncyBTZXRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIHNldHRpbmctc2V0KCRzZXR0aW5nLCAkdmFsdWUpIHtcbiAgJFVzZXJTZXR0aW5nczogbWFwLW1lcmdlKCRVc2VyU2V0dGluZ3MsICgkc2V0dGluZzogJHZhbHVlKSkgIWdsb2JhbDtcbiAgQHJldHVybiB0cnVlO1xufVxuXG5AZnVuY3Rpb24gc2V0dGluZy1zZXQtbXVsdGlwbGUoJHNldHRpbmdzKSB7XG4gICRVc2VyU2V0dGluZ3M6IG1hcC1tZXJnZSgkVXNlclNldHRpbmdzLCAkc2V0dGluZ3MpICFnbG9iYWw7XG4gIEByZXR1cm4gdHJ1ZTtcbn1cblxuQG1peGluIHNldHRpbmctc2V0KCRzZXR0aW5nLCAkdmFsdWUpIHtcbiAgJHNldHRpbmctc2V0dGVyOiBzZXR0aW5nLXNldCgkc2V0dGluZywgJHZhbHVlKSAhZ2xvYmFsO1xufVxuXG5AbWl4aW4gc2V0dGluZy1jaGFuZ2UoJHNldHRpbmcsICR2YWx1ZSkge1xuICBAaW5jbHVkZSBzZXR0aW5nLXNldCgkc2V0dGluZywgJHZhbHVlKTtcbn1cblxuQG1peGluIHNldHRpbmctc2V0LW11bHRpcGxlKCRzZXR0aW5ncykge1xuICAkc2V0dGluZy1zZXR0ZXI6IHNldHRpbmctc2V0LW11bHRpcGxlKCRzZXR0aW5ncykgIWdsb2JhbDtcbn1cblxuQG1peGluIHNldHRpbmctY2hhbmdlLW11bHRpcGxlKCRzZXR0aW5ncykge1xuICBAaW5jbHVkZSBzZXR0aW5nLXNldC1tdWx0aXBsZSgkc2V0dGluZ3MpO1xufVxuXG4vLyBUb29sa2l0IFZlcnNpb25cbkBmdW5jdGlvbiB0b29sa2l0LXNldCgkc2V0dGluZywgJHZhbHVlKSB7XG4gIEByZXR1cm4gc2V0dGluZy1zZXQoJHNldHRpbmcsICR2YWx1ZSk7XG59XG5cbkBtaXhpbiB0b29sa2l0LWNoYW5nZSgkc2V0dGluZywgJHZhbHVlKSB7XG4gIEBpbmNsdWRlIHNldHRpbmctc2V0KCRzZXR0aW5nLCAkdmFsdWUpO1xufVxuXG5AbWl4aW4gdG9vbGtpdC1zZXQoJHNldHRpbmcsICR2YWx1ZSkge1xuICBAaW5jbHVkZSBzZXR0aW5nLXNldCgkc2V0dGluZywgJHZhbHVlKTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBSZW1vdmUgU2V0dGluZ1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gc2V0dGluZy1jbGVhcigkc2V0dGluZykge1xuICAkUmV0dXJuOiAoKTtcblxuICBAZWFjaCAkS2V5LCAkVmFsdWUgaW4gJFVzZXJTZXR0aW5ncyB7XG4gICAgJFJldHVybjogaWYoJHNldHRpbmcgPT0gJEtleSwgJFJldHVybiwgbWFwLW1lcmdlKCRSZXR1cm4sICgkS2V5OiAkVmFsdWUpKSk7XG4gIH1cblxuICAkVXNlclNldHRpbmdzOiAkUmV0dXJuICFnbG9iYWw7XG4gIEByZXR1cm4gdHJ1ZTtcbn1cblxuQGZ1bmN0aW9uIHNldHRpbmctY2xlYXItbXVsdGlwbGUoJHNldHRpbmdzLi4uKSB7XG4gIEBlYWNoICRzZXR0aW5nIGluICRzZXR0aW5ncyB7XG4gICAgJGNsZWFyLXRoZS1zZXR0aW5nczogc2V0dGluZy1jbGVhcigkc2V0dGluZyk7XG4gIH1cbiAgQHJldHVybiB0cnVlO1xufVxuXG5AZnVuY3Rpb24gc2V0dGluZy1yZXNldCgpIHtcbiAgJFVzZXJTZXR0aW5nczogKCkgIWdsb2JhbDtcbiAgQHJldHVybiB0cnVlO1xufVxuXG5AbWl4aW4gc2V0dGluZy1jbGVhcigkc2V0dGluZykge1xuICAkc2V0dGluZy1jbGVhcmVyOiBzZXR0aW5nLWNsZWFyKCRzZXR0aW5nKTtcbn1cblxuQG1peGluIHNldHRpbmctY2xlYXItbXVsdGlwbGUoJHNldHRpbmdzLi4uKSB7XG4gICRzZXR0aW5nLWNsZWFyZXI6IHNldHRpbmctY2xlYXItbXVsdGlwbGUoJHNldHRpbmdzKTtcbn1cblxuQG1peGluIHNldHRpbmctcmVzZXQoKSB7XG4gICRzZXR0aW5nLWNsZWFyZXI6IHNldHRpbmctcmVzZXQoKTtcbn1cblxuLy8gVG9vbGtpdCBWZXJzaW9uXG5AZnVuY3Rpb24gdG9vbGtpdC1yZXNldCgkc2V0dGluZykge1xuICBAcmV0dXJuIHNldHRpbmctY2xlYXIoJHNldHRpbmcpO1xufVxuXG5AbWl4aW4gdG9vbGtpdC1yZXNldCgkc2V0dGluZykge1xuICBAaW5jbHVkZSBzZXR0aW5nLWNsZWFyKCRzZXR0aW5nKTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBTZXR0aW5nIFBpY2tcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIHNldHRpbmctcGljaygkc2V0dGluZywgJGlucHV0KSB7XG4gIEByZXR1cm4gaWYoJGlucHV0ICE9IG51bGwsICRpbnB1dCwgc2V0dGluZy1nZXQoJHNldHRpbmcpKTtcbn1cblxuQGZ1bmN0aW9uIHNldHRpbmctcGljay1tdWx0aXBsZSgkc2V0dGluZ3MpIHtcbiAgJFJldHVybjogKCk7XG4gIEBlYWNoICRzZXR0aW5nLCAkaW5wdXQgaW4gJHNldHRpbmdzIHtcbiAgICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgKCRzZXR0aW5nOiBzZXR0aW5nLXBpY2soJGlucHV0LCAkc2V0dGluZykpKTtcbiAgfVxuXG4gIEByZXR1cm4gJFJldHVybjtcbn0iLCIkUHJpdmF0ZS1Ub29sa2l0LVBsYWNlaG9sZGVyczogKFxuKTtcblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBQbGFjZWhvbGRlciBHZXQvU2V0XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiB0b29sa2l0LXBsYWNlaG9sZGVyLXNldCgkaWQpIHtcbiAgJHVuaXF1ZS1pZDogdW5pcXVlLWlkKCk7XG4gICRQcml2YXRlLVRvb2xraXQtUGxhY2Vob2xkZXJzOiBtYXAtbWVyZ2UoJFByaXZhdGUtVG9vbGtpdC1QbGFjZWhvbGRlcnMsICgkaWQ6ICR1bmlxdWUtaWQpKSAhZ2xvYmFsO1xuICBAcmV0dXJuICR1bmlxdWUtaWQ7XG59XG5cbkBmdW5jdGlvbiB0b29sa2l0LXBsYWNlaG9sZGVyLWdldCgkaWQpIHtcbiAgQHJldHVybiBtYXAtZ2V0KCRQcml2YXRlLVRvb2xraXQtUGxhY2Vob2xkZXJzLCAkaWQpO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEdlbmVyYXRlIFBsYWNlaG9sZGVyIENsYXNzIGFuZCBFeHRlbmRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQG1peGluIGR5bmFtaWMtZXh0ZW5kKCRpZCkge1xuICAkcGxhY2Vob2xkZXItaWQ6IHRvb2xraXQtcGxhY2Vob2xkZXItZ2V0KCRpZCk7XG5cbiAgQGlmICRwbGFjZWhvbGRlci1pZCA9PSBudWxsIHtcbiAgICAkcGxhY2Vob2xkZXItaWQ6IHRvb2xraXQtcGxhY2Vob2xkZXItc2V0KCRpZCk7XG4gICAgQGF0LXJvb3QgJSN7JHBsYWNlaG9sZGVyLWlkfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbiAgQGV4dGVuZCAlI3skcGxhY2Vob2xkZXItaWR9O1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFN0YXRpYyBNaXhpbiBIZWxwZXJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQG1peGluIG1peGluLWRyeWVyKCRpZCwgJGV4dGVuZDogdHJ1ZSkge1xuICBAaWYgJGV4dGVuZCA9PSB0cnVlIHtcbiAgICBAaW5jbHVkZSBkeW5hbWljLWV4dGVuZCgkaWQpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gTW9kZXJuIENsZWFyZml4IE1peGluXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBtaXhpbiBjbGVhcmZpeCgkZXh0ZW5kOiBudWxsKSB7XG4gICRleHRlbmQ6IGlmKCRleHRlbmQgIT0gbnVsbCwgJGV4dGVuZCwgdG9vbGtpdC1nZXQoJ2NsZWFyZml4IGV4dGVuZCcpKTtcblxuICBAaWYgJGV4dGVuZCA9PSB0cnVlIHtcbiAgICBAaW5jbHVkZSBkeW5hbWljLWV4dGVuZCgnY2xlYXJmaXgnKSB7XG4gICAgICBAaW5jbHVkZSBjbGVhcmZpeChmYWxzZSk7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAmOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cbiAgfVxufSIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQ29tcGFzcyBFeHRlbnNpb24gSW1wb3J0c1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gVGludCBhbmQgU2hhZGVcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIHRpbnQoJGNvbG9yLCAkYW1vdW50KSB7XG4gIEByZXR1cm4gbWl4KHRvb2xraXQtZ2V0KCd0aW50IGNvbG9yJyksICRjb2xvciwgJGFtb3VudCk7XG59XG5cbkBmdW5jdGlvbiBzaGFkZSgkY29sb3IsICRhbW91bnQpIHtcbiAgQHJldHVybiBtaXgodG9vbGtpdC1nZXQoJ3NoYWRlIGNvbG9yJyksICRjb2xvciwgJGFtb3VudCk7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gTHVtYVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gbHVtYSgkY29sb3IpIHtcbiAgQHJldHVybiAocmVkKCRjb2xvcikgKiAuMjk5KSArIChncmVlbigkY29sb3IpICogLjU4NykgKyAoYmx1ZSgkY29sb3IpICogLjExNCk7XG59XG5cbkBmdW5jdGlvbiBsdW1hLWd0ZSgkY29sb3IxLCAkY29sb3IyKSB7XG4gIEBpZiBsdW1hKCRjb2xvcjEpID49IGx1bWEoJGNvbG9yMikge1xuICAgIEByZXR1cm4gdHJ1ZTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG5AZnVuY3Rpb24gbHVtYS1sdGUoJGNvbG9yMSwgJGNvbG9yMikge1xuICBAaWYgbHVtYSgkY29sb3IxKSA8PSBsdW1hKCRjb2xvcjIpIHtcbiAgICBAcmV0dXJuIHRydWU7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuQGZ1bmN0aW9uIGx1bWEtZGlmZigkY29sb3IxLCAkY29sb3IyKSB7XG4gIEByZXR1cm4gbHVtYSgkY29sb3IxKSAtIGx1bWEoJGNvbG9yMik7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQ29sb3IgU3RhY2tzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBjb2xvci1zdGFjaygkbWFpbiwgJHNlY29uZGFyeSwgJGFtb3VudHMuLi4pIHtcbiAgQGlmIGxlbmd0aCgkYW1vdW50cykgPT0gMCB7XG4gICAgJGFtb3VudHM6IHRvb2xraXQtZ2V0KCdjb2xvciBzdGFjayBhbW91bnRzJyk7XG4gIH1cbiAgQGVsc2UgaWYgbGVuZ3RoKCRhbW91bnRzKSA9PSAxIHtcbiAgICAkYW1vdW50czogbnRoKCRhbW91bnRzLCAxKTtcbiAgfVxuXG4gICRzdGFjazogJG1haW47XG5cbiAgQGVhY2ggJGFtb3VudCBpbiAkYW1vdW50cyB7XG4gICAgJHN0YWNrOiBqb2luKCRzdGFjaywgbWl4KCRzZWNvbmRhcnksIG50aCgkc3RhY2ssIDEpLCAkYW1vdW50KSk7XG4gIH1cblxuICBAcmV0dXJuICRzdGFjaztcbn1cblxuLy8gVGludCBTdGFja1xuQGZ1bmN0aW9uIHRpbnQtc3RhY2soJGNvbG9yLCAkYW1vdW50cy4uLikge1xuICBAaWYgbGVuZ3RoKCRhbW91bnRzKSA+IDAge1xuICAgIEByZXR1cm4gY29sb3Itc3RhY2soJGNvbG9yLCB0b29sa2l0LWdldCgndGludCBjb2xvcicpLCAkYW1vdW50cyk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gY29sb3Itc3RhY2soJGNvbG9yLCB0b29sa2l0LWdldCgndGludCBjb2xvcicpKTtcbiAgfVxufVxuXG4vLyBTaGFkZSBTdGFja1xuQGZ1bmN0aW9uIHNoYWRlLXN0YWNrKCRjb2xvciwgJGFtb3VudHMuLi4pIHtcbiAgQGlmIGxlbmd0aCgkYW1vdW50cykgPiAwIHtcbiAgICBAcmV0dXJuIGNvbG9yLXN0YWNrKCRjb2xvciwgdG9vbGtpdC1nZXQoJ3NoYWRlIGNvbG9yJyksICRhbW91bnRzKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBjb2xvci1zdGFjaygkY29sb3IsIHRvb2xraXQtZ2V0KCdzaGFkZSBjb2xvcicpKTtcbiAgfVxufVxuXG4vLyBUaW50L1NoYWRlIFN0YWNrXG5AZnVuY3Rpb24gdGludC1zaGFkZS1zdGFjaygkY29sb3IsICRhbW91bnRzLi4uKSB7XG4gICRjb2xvcnM6ICgpO1xuICBAaWYgbGVuZ3RoKCRhbW91bnRzKSA9PSAwIHtcbiAgICAkYW1vdW50czogdG9vbGtpdC1nZXQoJ3RpbnQgc2hhZGUgYW1vdW50cycpO1xuICB9XG4gICRsZW5ndGg6IGxlbmd0aCgkYW1vdW50cyk7XG5cbiAgLy8gU2hhZGVzXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgJGNvbG9yczogYXBwZW5kKCRjb2xvcnMsIHNoYWRlKCRjb2xvciwgbnRoKCRhbW91bnRzLCAkaSkpKTtcbiAgfVxuXG4gIC8vIEJhc2VcbiAgJGNvbG9yczogYXBwZW5kKCRjb2xvcnMsICRjb2xvcik7XG5cbiAgLy8gVGludHNcbiAgQGZvciAkaSBmcm9tIDAgdGhyb3VnaCAkbGVuZ3RoIC0gMSB7XG4gICAgJGNvbG9yczogYXBwZW5kKCRjb2xvcnMsIHRpbnQoJGNvbG9yLCBudGgoJGFtb3VudHMsICRsZW5ndGggLSAkaSkpKTtcbiAgfVxuXG4gIEByZXR1cm4gJGNvbG9ycztcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBDb2xvciBTY2FsZXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGNvbG9yLXNjYWxlKCRtYWluLCAkc2Vjb25kYXJ5LCAkc3RlcHM6IG51bGwpIHtcbiAgJHN0ZXBzOiBpZigkc3RlcHMgIT0gbnVsbCwgJHN0ZXBzLCB0b29sa2l0LWdldCgnY29sb3Igc2NhbGUgc3RlcHMnKSk7XG5cbiAgJGxpc3Q6ICRtYWluO1xuXG4gICRyZWQxOiByZWQoJG1haW4pO1xuICAkcmVkMjogcmVkKCRzZWNvbmRhcnkpO1xuICAkcmVkLWRpZmY6ICgoJHJlZDEgLSAkcmVkMikgLyAoKCRzdGVwcyAtIDEpKSk7XG5cbiAgJGh1ZTE6IGh1ZSgkbWFpbik7XG4gICRodWUyOiBodWUoJHNlY29uZGFyeSk7XG4gIEBpZiAoJGh1ZTIgKyAzNTkgLSAkaHVlMSkgPCBhYnMoJGh1ZTEgLSAkaHVlMikge1xuICAgICRodWUyOiAkaHVlMiArIDM1OTtcbiAgfVxuICAkaHVlLWRpZmY6ICgkaHVlMiAtICRodWUxKSAvICgkc3RlcHMgLSAxKTtcblxuICAkc2F0MTogc2F0dXJhdGlvbigkbWFpbik7XG4gICRzYXQyOiBzYXR1cmF0aW9uKCRzZWNvbmRhcnkpO1xuICAkc2F0LWRpZmY6IDA7XG4gIEBpZiAkc2F0MSA+ICRzYXQyIHtcbiAgICAkc2F0LWRpZmY6ICgkc2F0MiAtICRzYXQxKSAvICgkc3RlcHMgLSAxKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgJHNhdC1kaWZmOiAoJHNhdDEgLSAkc2F0MikgLyAoJHN0ZXBzIC0gMSk7XG4gIH1cblxuICAkbHRlMTogbGlnaHRuZXNzKCRtYWluKTtcbiAgJGx0ZTI6IGxpZ2h0bmVzcygkc2Vjb25kYXJ5KTtcbiAgJGx0ZS1kaWZmOiAwO1xuICBAaWYgJGx0ZTEgPiAkbHRlMiB7XG4gICAgJGx0ZS1kaWZmOiAoJGx0ZTIgLSAkbHRlMSkgLyAoJHN0ZXBzIC0gMSk7XG4gIH1cbiAgQGVsc2Uge1xuICAgICRsdGUtZGlmZjogKCRsdGUxIC0gJGx0ZTIpIC8gKCRzdGVwcyAtIDEpO1xuICB9XG5cbiAgJGFscDE6IGFscGhhKCRtYWluKTtcbiAgJGFscDI6IGFscGhhKCRzZWNvbmRhcnkpO1xuICAkYWxwLWRpZmY6IDA7XG4gIEBpZiAkYWxwMSA+ICRhbHAyIHtcbiAgICAkYWxwLWRpZmY6ICgkYWxwMiAtICRhbHAxKSAvICgkc3RlcHMgLSAxKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgJGFscC1kaWZmOiAoJGFscDEgLSAkYWxwMikgLyAoJHN0ZXBzIC0gMSk7XG4gIH1cblxuICAkaHVlLWhvbGQ6ICRodWUxO1xuICAkc2F0LWhvbGQ6ICRzYXQxO1xuICAkbHRlLWhvbGQ6ICRsdGUxO1xuICAkYWxwLWhvbGQ6ICRhbHAxO1xuICAkY29sb3ItaG9sZDogMDtcblxuICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRzdGVwcyB7XG4gICAgJGh1ZS1ob2xkOiAkaHVlLWhvbGQgKyAkaHVlLWRpZmY7XG4gICAgJHNhdC1ob2xkOiAkc2F0LWhvbGQgKyAkc2F0LWRpZmY7XG4gICAgJGx0ZS1ob2xkOiAkbHRlLWhvbGQgKyAkbHRlLWRpZmY7XG4gICAgJGFscC1ob2xkOiAkYWxwLWhvbGQgKyAkYWxwLWRpZmY7XG5cbiAgICAkY29sb3ItaG9sZDogaHNsYSgkaHVlLWhvbGQsICRzYXQtaG9sZCwgJGx0ZS1ob2xkLCAkYWxwLWhvbGQpO1xuICAgICRsaXN0OiBhcHBlbmQoJGxpc3QsICRjb2xvci1ob2xkKTtcbiAgfVxuXG4gIEByZXR1cm4gJGxpc3Q7XG59XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEVuYWJsZSBsaWdhdHVyZXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQG1peGluIGVuYWJsZS1saWdhdHVyZXMoJGV4dGVuZDogbnVsbCkge1xuICAkZXh0ZW5kOiBpZigkZXh0ZW5kICE9IG51bGwsICRleHRlbmQsIHRvb2xraXQtZ2V0KCdsaWdhdHVyZSBleHRlbmQnKSk7XG5cbiAgQGlmICRleHRlbmQge1xuICAgIEBpbmNsdWRlIGR5bmFtaWMtZXh0ZW5kKCdlbmFibGUgbGlnYXR1cmVzJykge1xuICAgICAgQGluY2x1ZGUgZW5hYmxlLWxpZ2F0dXJlcztcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIC13ZWJraXQtZm9udC1mZWF0dXJlLXNldHRpbmdzOlwibGlnYVwiLFwiZGxpZ1wiO1xuICAgIC1tb3otZm9udC1mZWF0dXJlLXNldHRpbmdzOlwibGlnYT0xLCBkbGlnPTFcIjtcbiAgICAtbW96LWZvbnQtZmVhdHVyZS1zZXR0aW5nczpcImxpZ2FcIixcImRsaWdcIjtcbiAgICAtbXMtZm9udC1mZWF0dXJlLXNldHRpbmdzOlwibGlnYVwiLFwiZGxpZ1wiO1xuICAgIC1vLWZvbnQtZmVhdHVyZS1zZXR0aW5nczpcImxpZ2FcIixcImRsaWdcIjtcbiAgICBmb250LWZlYXR1cmUtc2V0dGluZ3M6IFwibGlnYVwiLFwiZGxpZ1wiO1xuICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gRm9udCBGYWNlXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBtaXhpbiBmb250LWZhY2UoJG5hbWUsICRmaWxlcywgJHdlaWdodDogbnVsbCwgJHN0eWxlOiBudWxsLCAkaW5saW5lLXdvZmY6IG51bGwpIHtcbiAgJHdlaWdodDogaWYoJHdlaWdodCAhPSBudWxsLCAkd2VpZ2h0LCB0b29sa2l0LWdldCgnZm9udCBmYWNlIHdlaWdodCcpKTtcbiAgJHN0eWxlOiBpZigkc3R5bGUgIT0gbnVsbCwgJHN0eWxlLCB0b29sa2l0LWdldCgnZm9udCBmYWNlIHN0eWxlJykpO1xuICAkaW5saW5lLXdvZmY6IGlmKCRpbmxpbmUtd29mZiAhPSBudWxsLCAkaW5saW5lLXdvZmYsIHRvb2xraXQtZ2V0KCdmb250IGZhY2UgaW5saW5lIHdvZmYnKSk7XG5cbiAgJGZvbnQtc3RhY2s6ICgpO1xuICAkZm9udC1zcmM6ICcnO1xuICAkZW90OiBmYWxzZTtcbiAgJGZvbnQtZXh0ZW5zaW9uczogKCdlb3QnOiAnZW1iZWRkZWQtb3BlbnR5cGUnLCAnd29mZjInOiAnd29mZjInLCAnd29mZic6ICd3b2ZmJywgJ3R0Zic6ICd0cnVldHlwZScsICdzdmcnOiAnc3ZnJyk7XG5cbiAgQGVhY2ggJGV4dCwgJGZvcm1hdCBpbiAkZm9udC1leHRlbnNpb25zIHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJGZpbGVzLCAkZXh0KSB7XG4gICAgICBAaWYgZnVuY3Rpb24tZXhpc3RzKGlubGluZS1mb250LWZpbGVzKSBhbmQgJGlubGluZS13b2ZmID09IHRydWUgYW5kICgkZXh0ID09ICd3b2ZmJyBvciAkZXh0ID09ICd3b2ZmMicpIHtcbiAgICAgICAgJGZvbnQtc3JjOiBpbmxpbmUtZm9udC1maWxlcyhtYXAtZ2V0KCRmaWxlcywgJGV4dCkpO1xuICAgICAgfVxuICAgICAgQGVsc2UgaWYgZnVuY3Rpb24tZXhpc3RzKGZvbnQtdXJsKSB7XG4gICAgICAgICRmb250LXNyYzogZm9udC11cmwobWFwLWdldCgkZmlsZXMsICRleHQpKSBmb3JtYXQoJGZvcm1hdCk7XG4gICAgICAgIEBpZiAkZXh0ID09ICdlb3QnIHtcbiAgICAgICAgICAkZW90OiAkZm9udC1zcmM7XG4gICAgICAgICAgJGZvbnQtc3JjOiBmb250LXVybChtYXAtZ2V0KCRmaWxlcywgJGV4dCkgKyAnI2llZml4JykgZm9ybWF0KCRmb3JtYXQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICRmb250LXNyYzogdXJsKG1hcC1nZXQoJGZpbGVzLCAkZXh0KSkgZm9ybWF0KCRmb3JtYXQpO1xuICAgICAgICBAaWYgJGV4dCA9PSAnZW90JyB7XG4gICAgICAgICAgJGVvdDogJGZvbnQtc3JjO1xuICAgICAgICAgICRmb250LXNyYzogdXJsKG1hcC1nZXQoJGZpbGVzLCAkZXh0KSArICcjaWVmaXgnKSBmb3JtYXQoJGZvcm1hdCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICRmb250LXN0YWNrOiBhcHBlbmQoJGZvbnQtc3RhY2ssICRmb250LXNyYywgJ2NvbW1hJyk7XG4gICAgfVxuXG4gIH1cblxuICBAZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogJG5hbWU7XG4gICAgZm9udC13ZWlnaHQ6ICR3ZWlnaHQ7XG4gICAgZm9udC1zdHlsZTogJHN0eWxlO1xuICAgIEBpZiAkZW90IHtcbiAgICAgIHNyYzogJGVvdDtcbiAgICB9XG4gICAgQGlmIGxlbmd0aCgkZm9udC1zdGFjaykgPiAwIHtcbiAgICAgIHNyYzogJGZvbnQtc3RhY2s7XG4gICAgfVxuICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSWNvbiBGb250XG4vLyBGcm9tIGh0dHA6Ly9pY29tb29uLmlvXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBtaXhpbiBpY29uLWZvbnQoJGZvbnQtc3RhY2ssICRzcGVhazogbnVsbCwgJGV4dGVuZDogbnVsbCkge1xuICAkc3BlYWs6IGlmKCRzcGVhayAhPSBudWxsLCAkc3BlYWssIHRvb2xraXQtZ2V0KCdpY29uIGZvbnQgc3BlYWsnKSk7XG4gICRleHRlbmQ6IGlmKCRleHRlbmQgIT0gbnVsbCwgJGV4dGVuZCwgdG9vbGtpdC1nZXQoJ2ljb24gZm9udCBleHRlbmQnKSk7XG5cbiAgZm9udC1mYW1pbHk6ICRmb250LXN0YWNrO1xuICBAaWYgJHNwZWFrID09IGZhbHNlIHtcbiAgICBzcGVhazogbm9uZTtcbiAgfVxuICBAaW5jbHVkZSBpY29uLWZvbnQtLWNvcmUoJGV4dGVuZCk7XG59XG5cbkBtaXhpbiBpY29uLWZvbnQtLWNvcmUoJGV4dGVuZDogbnVsbCkge1xuICAkZXh0ZW5kOiBpZigkZXh0ZW5kICE9IG51bGwsICRleHRlbmQsIHRvb2xraXQtZ2V0KCdpY29uIGZvbnQgZXh0ZW5kJykpO1xuXG4gIEBpZiAkZXh0ZW5kICB7XG4gICAgQGluY2x1ZGUgZHluYW1pYy1leHRlbmQoJ2ljb24gZm9udCBjb3JlJykge1xuICAgICAgQGluY2x1ZGUgaWNvbi1mb250LS1jb3JlKGZhbHNlKTtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgQGluY2x1ZGUgZW5hYmxlLWxpZ2F0dXJlcygkZXh0ZW5kKTtcblxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBGb250IEZhZGUgSW5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQG1peGluIGNvbnRlbnQtZmFkZS1pbigkZHVyYXRpb246IG51bGwsICRsb2FkaW5nOiBudWxsLCAkZXh0ZW5kOiBudWxsKSB7XG4gICRkdXJhdGlvbjogaWYoJGR1cmF0aW9uICE9IG51bGwsICRkdXJhdGlvbiwgdG9vbGtpdC1nZXQoJ2ZhZGUgaW4gZHVyYXRpb24nKSk7XG4gICRsb2FkaW5nOiBpZigkbG9hZGluZyAhPSBudWxsLCAkbG9hZGluZywgdG9vbGtpdC1nZXQoJ2ZhZGUgaW4gbG9hZGluZyBjbGFzcycpKTtcbiAgJGV4dGVuZDogaWYoJGV4dGVuZCAhPSBudWxsLCAkZXh0ZW5kLCB0b29sa2l0LWdldCgnZmFkZSBpbiBleHRlbmQnKSk7XG5cbiAgQGlmICRleHRlbmQgPT0gdHJ1ZSBhbmQgJGR1cmF0aW9uID09IHRvb2xraXQtZ2V0KCdmYWRlIGluIGR1cmF0aW9uJykgYW5kICRsb2FkaW5nID09IHRvb2xraXQtZ2V0KCdmYWRlIGluIGxvYWRpbmcgY2xhc3MnKSB7XG4gICAgQGluY2x1ZGUgZHluYW1pYy1leHRlbmQoJ2NvbnRlbnQgZmFkZSBpbicpIHtcbiAgICAgIEBpbmNsdWRlIGNvbnRlbnQtZmFkZS1pbigkZXh0ZW5kOiBmYWxzZSk7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIEBpZiBub3QgbWl4aW4tZXhpc3RzKCdzaW5nbGUtdHJhbnNpdGlvbicpIHtcbiAgICAgIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAkZHVyYXRpb247XG4gICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5ICRkdXJhdGlvbjtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGluY2x1ZGUgc2luZ2xlLXRyYW5zaXRpb24ob3BhY2l0eSAkZHVyYXRpb24pO1xuICAgIH1cblxuICAgICN7JGxvYWRpbmd9ICYge1xuICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gRmx1aWQgRW1iZWRzIGFuZCB3aGF0ZXZlciBXSVRIIE5PIEpBVkFTQ0lQVCFcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQG1peGluIGludHJpbnNpYy1yYXRpby1wYXJlbnQoJGV4dGVuZDogbnVsbCkge1xuICAkZXh0ZW5kOiBpZigkZXh0ZW5kICE9IG51bGwsICRleHRlbmQsIHRvb2xraXQtZ2V0KCdpbnRyaW5zaWMgcmF0aW8gZXh0ZW5kJykpO1xuXG4gIEBpZiAkZXh0ZW5kIHtcbiAgICBAaW5jbHVkZSBkeW5hbWljLWV4dGVuZCgnaW50cmluc2ljIHJhdGlvIHBhcmVudCcpIHtcbiAgICAgIEBpbmNsdWRlIGludHJpbnNpYy1yYXRpby1wYXJlbnQoZmFsc2UpO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGhlaWdodDogMDtcbiAgfVxufVxuXG5AbWl4aW4gaW50cmluc2ljLXJhdGlvLWNoaWxkKCRleHRlbmQ6IG51bGwpIHtcbiAgJGV4dGVuZDogaWYoJGV4dGVuZCAhPSBudWxsLCAkZXh0ZW5kLCB0b29sa2l0LWdldCgnaW50cmluc2ljIHJhdGlvIGV4dGVuZCcpKTtcblxuICBAaWYgJGV4dGVuZCB7XG4gICAgQGluY2x1ZGUgZHluYW1pYy1leHRlbmQoJ2ludHJpbnNpYyByYXRpbyBjaGlsZCcpIHtcbiAgICAgIEBpbmNsdWRlIGludHJpbnNpYy1yYXRpby1jaGlsZChmYWxzZSk7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgLy8gTnVrZSB0aGUgZXh0ZXJuYWwgc3R5bGVzXG4gICAgaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7IC8vIE51a2UgdGhlIGV4dGVybmFsIHN0eWxlc1xuICAgIHRvcDogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgfVxufVxuXG5AbWl4aW4gaW50cmluc2ljLXJhdGlvLXJhdGlvKCRyYXRpbzogbnVsbCwgJHdpZHRoOiBudWxsLCAkcG9zaXRpb246IG51bGwpIHtcbiAgJHJhdGlvOiBpZigkcmF0aW8gIT0gbnVsbCwgJHJhdGlvLCB0b29sa2l0LWdldCgnaW50cmluc2ljIHJhdGlvJykpO1xuICAkd2lkdGg6IGlmKCR3aWR0aCAhPSBudWxsLCAkd2lkdGgsIHRvb2xraXQtZ2V0KCdpbnRyaW5zaWMgcmF0aW8gd2lkdGgnKSk7XG4gICRwb3NpdGlvbjogaWYoJHBvc2l0aW9uICE9IG51bGwsICRwb3NpdGlvbiwgdG9vbGtpdC1nZXQoJ2ludHJpbnNpYyByYXRpbyBwb3NpdGlvbicpKTtcblxuICBwYWRkaW5nLSN7JHBvc2l0aW9ufTogKDEgLyAkcmF0aW8pICogJHdpZHRoO1xuICB3aWR0aDogJHdpZHRoO1xufVxuXG5AbWl4aW4gaW50cmluc2ljLXJhdGlvKCRyYXRpbzogbnVsbCwgJHdpZHRoOiBudWxsLCAkZWxlbWVudHM6IG51bGwsICRwb3NpdGlvbjogbnVsbCwgJGV4dGVuZDogbnVsbCkge1xuICAkcmF0aW86IGlmKCRyYXRpbyAhPSBudWxsLCAkcmF0aW8sIHRvb2xraXQtZ2V0KCdpbnRyaW5zaWMgcmF0aW8nKSk7XG4gICR3aWR0aDogaWYoJHdpZHRoICE9IG51bGwsICR3aWR0aCwgdG9vbGtpdC1nZXQoJ2ludHJpbnNpYyByYXRpbyB3aWR0aCcpKTtcbiAgJGVsZW1lbnRzOiBpZigkZWxlbWVudHMgIT0gbnVsbCwgJGVsZW1lbnRzLCB0b29sa2l0LWdldCgnaW50cmluc2ljIHJhdGlvIGVsZW1lbnRzJykpO1xuICAkcG9zaXRpb246IGlmKCRwb3NpdGlvbiAhPSBudWxsLCAkcG9zaXRpb24sIHRvb2xraXQtZ2V0KCdpbnRyaW5zaWMgcmF0aW8gcG9zaXRpb24nKSk7XG4gICRleHRlbmQ6IGlmKCRleHRlbmQgIT0gbnVsbCwgJGV4dGVuZCwgdG9vbGtpdC1nZXQoJ2ludHJpbnNpYyByYXRpbyBleHRlbmQnKSk7XG5cbiAgQGluY2x1ZGUgaW50cmluc2ljLXJhdGlvLXBhcmVudCgkZXh0ZW5kKTtcblxuICBAaW5jbHVkZSBpbnRyaW5zaWMtcmF0aW8tcmF0aW8oJHJhdGlvLCAkd2lkdGgsICRwb3NpdGlvbik7XG5cbiAgQGVhY2ggJGVsZW1lbnQgaW4gJGVsZW1lbnRzIHtcbiAgICAjeyRlbGVtZW50fSB7XG5cdEBpbmNsdWRlIGludHJpbnNpYy1yYXRpby1jaGlsZCgkZXh0ZW5kKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGlyKCRyYXRpbzogbnVsbCwgJHdpZHRoOiBudWxsLCAkZWxlbWVudHM6IG51bGwsICRwb3NpdGlvbjogbnVsbCwgJGV4dGVuZDogbnVsbCkge1xuICBAaW5jbHVkZSBpbnRyaW5zaWMtcmF0aW8oJHJhdGlvLCAkd2lkdGgsICRlbGVtZW50cywgJGV4dGVuZCwgJHBvc2l0aW9uKTtcbn1cblxuQG1peGluIGlyLXJhdGlvKCRyYXRpbzogbnVsbCwgJHdpZHRoOiBudWxsLCAkcG9zaXRpb246IG51bGwpIHtcbiAgQGluY2x1ZGUgaW50cmluc2ljLXJhdGlvLXJhdGlvKCRyYXRpbywgJHdpZHRoLCAkcG9zaXRpb24pO1xufSIsIi8vIHNpbXBsZSBmdW5jdGlvbiB0byBmaW5kIHRoZSBjb250ZXh0IG9mIGEgbmVzdGVkIHBlcmNlbnRhZ2UuXG5AZnVuY3Rpb24gbmVzdGVkLWNvbnRleHQoJGNvbnRleHRzOiBudWxsKSB7XG4gICRjb250ZXh0czogaWYoJGNvbnRleHRzICE9IG51bGwsICRjb250ZXh0cywgdG9vbGtpdC1nZXQoJ25lc3RlZCBjb250ZXh0IGNvbnRleHRzJykpO1xuXG4gIC8vIEZpcnN0IGxldmVsIGRlZXAgaXMgYWx3YXlzIDEwMCVcbiAgJHBlcmNlbnRhZ2U6IDEwMCU7XG5cbiAgLy8gTG9vcCB0aHJvdWdoIGVhY2ggbGV2ZWxcbiAgQGVhY2ggJGNvbnRleHQgaW4gJGNvbnRleHRzIHtcbiAgICAvLyBJbnZlcnQgdGhlIHBlcmNlbnRhZ2UgdG8gZmluZCBjb250ZXh0XG4gICAgJHBlcmNlbnRhZ2U6IHBlcmNlbnRhZ2UoJHBlcmNlbnRhZ2UgLyAkY29udGV4dCk7XG4gIH1cbiAgLy8gUmV0dXJuIGZpbmFsIHBlcmNlbnRhZ2VcbiAgQHJldHVybiAkcGVyY2VudGFnZTtcbn1cblxuLy8gbWl4aW4gdG8gbWFrZSB0aGluZ3MgZWFzaWVyXG5AbWl4aW4gbmVzdGVkLWNvbnRleHQoJGNvbnRleHRzOiBudWxsLCAkcG9zaXRpb246IG51bGwpIHtcbiAgJGNvbnRleHRzOiBpZigkY29udGV4dHMgIT0gbnVsbCwgJGNvbnRleHRzLCB0b29sa2l0LWdldCgnbmVzdGVkIGNvbnRleHQgY29udGV4dHMnKSk7XG4gICRwb3NpdGlvbjogaWYoJHBvc2l0aW9uICE9IG51bGwsICRwb3NpdGlvbiwgdG9vbGtpdC1nZXQoJ25lc3RlZCBjb250ZXh0IHBvc2l0aW9uJykpO1xuXG4gIHdpZHRoOiBuZXN0ZWQtY29udGV4dCgkY29udGV4dHMpO1xuICBAaWYgJHBvc2l0aW9uID09IFwiY2VudGVyXCIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgbWFyZ2luLWxlZnQ6IG5lc3RlZC1jb250ZXh0KCRjb250ZXh0cykgKiAtLjU7XG4gIH1cbiAgQGlmICRwb3NpdGlvbiA9PSBcInJpZ2h0XCIge1xuICAgIG1hcmdpbi1sZWZ0OiBuZXN0ZWQtY29udGV4dCgkY29udGV4dHMpICogLTEgKyAxMDAlO1xuICB9XG59IiwiLy8gTWFnaWMgcGFyYWxsYXggbWl4aW5zXG5AbWl4aW4gcGFyYWxsYXgtaW5pdCgkcGVyc3BlY3RpdmU6IG51bGwsICRlbGVtZW50OiBudWxsLCAkcGFyYWxsYXgtaW9zOiBudWxsKSB7XG5cbiAgJHBlcnNwZWN0aXZlOiBpZigkcGVyc3BlY3RpdmUgIT0gbnVsbCwgJHBlcnNwZWN0aXZlLCB0b29sa2l0LWdldCgncGFyYWxsYXggcGVyc3BlY3RpdmUnKSk7XG4gICRlbGVtZW50OiBpZigkZWxlbWVudCAhPSBudWxsLCAkZWxlbWVudCwgdG9vbGtpdC1nZXQoJ3BhcmFsbGF4IGVsZW1lbnQnKSk7XG4gICRwYXJhbGxheC1pb3M6IGlmKCRwYXJhbGxheC1pb3MgIT0gbnVsbCwgJHBhcmFsbGF4LWlvcywgdG9vbGtpdC1nZXQoJ3BhcmFsbGF4IGlvcycpKTtcblxuICBAaWYgJGVsZW1lbnQgPT0gJ2JvZHknIHtcbiAgICBAYXQtcm9vdCB7XG4gICAgICBodG1sLCBib2R5IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgfVxuICAgICAgYm9keSB7XG4gICAgICAgIEBpbmNsdWRlIHBhcmFsbGF4LWluaXQtY29yZSgkcGVyc3BlY3RpdmUsICRwYXJhbGxheC1pb3MpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQGlmICRlbGVtZW50ID09IHRoaXMge1xuICAgICAgQGluY2x1ZGUgcGFyYWxsYXgtaW5pdC1jb3JlKCRwZXJzcGVjdGl2ZSwgJHBhcmFsbGF4LWlvcyk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBhdC1yb290ICN7JGVsZW1lbnR9IHtcbiAgICAgICAgQGluY2x1ZGUgcGFyYWxsYXgtaW5pdC1jb3JlKCRwZXJzcGVjdGl2ZSwgJHBhcmFsbGF4LWlvcyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBwYXJhbGxheC1pbml0LWNvcmUoJHBlcnNwZWN0aXZlOiBudWxsLCAkcGFyYWxsYXgtaW9zOiBudWxsKSB7XG4gICRwZXJzcGVjdGl2ZTogaWYoJHBlcnNwZWN0aXZlICE9IG51bGwsICRwZXJzcGVjdGl2ZSwgdG9vbGtpdC1nZXQoJ3BhcmFsbGF4IHBlcnNwZWN0aXZlJykpO1xuICAkcGFyYWxsYXgtaW9zOiBpZigkcGFyYWxsYXgtaW9zICE9IG51bGwsICRwYXJhbGxheC1pb3MsIHRvb2xraXQtZ2V0KCdwYXJhbGxheCBpb3MnKSk7XG5cbiAgb3ZlcmZsb3c6IGF1dG87XG4gIEBpZiBtaXhpbi1leGlzdHMocGVyc3BlY3RpdmUpIHtcbiAgICBAaW5jbHVkZSBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUgKiAxcHgpO1xuICB9XG4gIEBlbHNlIHtcbiAgICAtd2Via2l0LXBlcnNwZWN0aXZlOiAkcGVyc3BlY3RpdmUgKiAxcHg7XG4gICAgcGVyc3BlY3RpdmU6ICRwZXJzcGVjdGl2ZSAqIDFweDtcbiAgfVxuICAvLyBBbGxvd3MgZm9yIHNtb290aCBzY3JvbGxpbmcgYnV0IGRpc2FibGVzIHBhcmFsbGF4IGVmZmVjdHMuXG4gIEBpZiAkcGFyYWxsYXgtaW9zID09IGZhbHNlIHtcbiAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gIH1cbiAgLy8gTWFrZSBzdXJlIDNEIHBlcnNwZWN0aXZlIGlzIHByZXNlcnZlZFxuICAmLCAmICoge1xuICAgIEBpZiBtaXhpbi1leGlzdHModHJhbnNmb3JtLXN0eWxlKSB7XG4gICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0tc3R5bGUocHJlc2VydmUtM2QpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAtd2Via2l0LXRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7XG4gICAgICB0cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gcGFyYWxsYXgoJGRpc3RhbmNlOiBudWxsLCAkcGVyc3BlY3RpdmU6IG51bGwpIHtcblxuICAkZGlzdGFuY2U6IGlmKCRkaXN0YW5jZSAhPSBudWxsLCAkZGlzdGFuY2UsIHRvb2xraXQtZ2V0KCdwYXJhbGxheCBkaXN0YW5jZScpKTtcbiAgJHBlcnNwZWN0aXZlOiBpZigkcGVyc3BlY3RpdmUgIT0gbnVsbCwgJHBlcnNwZWN0aXZlLCB0b29sa2l0LWdldCgncGFyYWxsYXggcGVyc3BlY3RpdmUnKSk7XG5cbiAgJHRyYW5zZm9ybTogdHJhbnNsYXRlWigkZGlzdGFuY2UgKiAkcGVyc3BlY3RpdmUgKiAxcHgpIHNjYWxlKGFicygkZGlzdGFuY2UgLSAxKSk7XG5cbiAgQGlmIG1peGluLWV4aXN0cyh0cmFuc2Zvcm0pIHtcbiAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oJHRyYW5zZm9ybSk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiAkdHJhbnNmb3JtO1xuICAgIHRyYW5zZm9ybTogJHRyYW5zZm9ybTtcbiAgfVxuXG4gIHotaW5kZXg6ICRkaXN0YW5jZSAqIDEwMDtcbn1cbiIsIkBtaXhpbiBydGwoJHByb3BlcnR5LCAkdmFsdWUpIHtcbiAgJF9wcm9wZXJ0eTogJHByb3BlcnR5O1xuICAjeyRwcm9wZXJ0eX06ICR2YWx1ZTtcblxuICBAaWYgbGVuZ3RoKCR2YWx1ZSkgPT0gNCB7XG4gICAgW2Rpcj1cInJ0bFwiXSAmIHtcbiAgICAgICN7JHByb3BlcnR5fTogbnRoKCR2YWx1ZSwgMSkgbnRoKCR2YWx1ZSwgNCkgbnRoKCR2YWx1ZSwgMykgbnRoKCR2YWx1ZSwgMik7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAaWYgKHN0ci1pbmRleCgkcHJvcGVydHksICdsZWZ0JykpIHtcbiAgICAgICRwcm9wZXJ0eTogc3RyLXNsaWNlKCRwcm9wZXJ0eSwgMSwgc3RyLWluZGV4KCRwcm9wZXJ0eSwgJ2xlZnQnKSAtIDEpICsgJ3JpZ2h0JztcbiAgICB9XG4gICAgQGVsc2UgaWYgKHN0ci1pbmRleCgkcHJvcGVydHksICdyaWdodCcpKSB7XG4gICAgICAkcHJvcGVydHk6IHN0ci1zbGljZSgkcHJvcGVydHksIDEsIHN0ci1pbmRleCgkcHJvcGVydHksICdyaWdodCcpIC0gMSkgKyAnbGVmdCc7XG4gICAgfVxuXG4gICAgQGlmICRwcm9wZXJ0eSAhPSAkX3Byb3BlcnR5IHtcbiAgICAgIFtkaXI9XCJydGxcIl0gJiB7XG4gICAgICAgICN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIkBtaXhpbiB0YXJnZXQoJHRhcmdldCkge1xuICBAYXQtcm9vdCB7XG4gICAgLyohIEB7dGFyZ2V0OiAjeyR0YXJnZXR9fSAqL1xuICAgICYge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICAgIC8qISB7dGFyZ2V0OiAjeyR0YXJnZXR9fUAgKi9cbiAgfVxufSIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gRHJhdyB0cmlhbmdsZXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AbWl4aW4gdHJpYW5nbGUoJGNvbG9yOiBudWxsLCAkaGVpZ2h0OiBudWxsLCAkd2lkdGg6IG51bGwsICRhbmdsZTogbnVsbCkge1xuXG4gICRjb2xvcjogaWYoJGNvbG9yICE9IG51bGwsICRjb2xvciwgdG9vbGtpdC1nZXQoJ3RyaWFuZ2xlIGNvbG9yJykpO1xuICAkaGVpZ2h0OiBpZigkaGVpZ2h0ICE9IG51bGwsICRoZWlnaHQsIHRvb2xraXQtZ2V0KCd0cmlhbmdsZSBoZWlnaHQnKSk7XG4gICR3aWR0aDogaWYoJHdpZHRoICE9IG51bGwsICR3aWR0aCwgdG9vbGtpdC1nZXQoJ3RyaWFuZ2xlIHdpZHRoJykpO1xuICAkYW5nbGU6IGlmKCRhbmdsZSAhPSBudWxsLCAkYW5nbGUsIHRvb2xraXQtZ2V0KCd0cmlhbmdsZSBhbmdsZScpKTtcblxuICBAaWYgbnRoKCRhbmdsZSwgMSkgPT0gXCJ0b3BcIiBvciBudGgoJGFuZ2xlLCAxKSA9PSBcImJvdHRvbVwiIHtcbiAgICAkYW5nbGU6IFwiI3skYW5nbGV9XCI7XG4gIH1cblxuICBAaWYgJGFuZ2xlID09IFwidG9wXCIge1xuICAgICRhbmdsZTogMDtcbiAgfVxuICBAaWYgJGFuZ2xlID09IFwidG9wIHJpZ2h0XCIge1xuICAgICRhbmdsZTogNDUgKiA3O1xuICB9XG4gIEBpZiAkYW5nbGUgPT0gXCJyaWdodFwiIHtcbiAgICAkYW5nbGU6IDQ1ICogMjtcbiAgfVxuICBAaWYgJGFuZ2xlID09IFwiYm90dG9tIHJpZ2h0XCIge1xuICAgICRhbmdsZTogNDUgKiAxO1xuICB9XG4gIEBpZiAkYW5nbGUgPT0gXCJib3R0b21cIiB7XG4gICAgJGFuZ2xlOiA0NSAqIDQ7XG4gIH1cbiAgQGlmICRhbmdsZSA9PSBcImJvdHRvbSBsZWZ0XCIge1xuICAgICRhbmdsZTogNDUgKiAzO1xuICB9XG4gIEBpZiAkYW5nbGUgPT0gXCJsZWZ0XCIge1xuICAgICRhbmdsZTogNDUgKiA2O1xuICB9XG4gIEBpZiAkYW5nbGUgPT0gXCJ0b3AgbGVmdFwiIHtcbiAgICAkYW5nbGU6IDQ1ICogNTtcbiAgfVxuXG4gIEBpZiB1bml0KCRoZWlnaHQpID09IFwiXCIgb3IgdW5pdCgkaGVpZ2h0KSA9PSBcIiVcIiB7XG4gICAgQGRlYnVnIFwiaW4gdHJpYW5nbGUgI3skaGVpZ2h0fSBpcyBub3QgYSBjb21wYXRpYmxlIHVuaXQgZm9yIGhlaWdodC5cIlxuICB9XG5cbiAgQGlmIHVuaXQoJHdpZHRoKSA9PSBcIlwiIG9yIHVuaXQoJHdpZHRoKSA9PSBcIiVcIiB7XG4gICAgQGRlYnVnIFwiaW4gdHJpYW5nbGUgI3skd2lkdGh9IGlzIG5vdCBhIGNvbXBhdGlibGUgdW5pdCBmb3Igd2lkdGguXCJcbiAgfVxuXG4gIC8vIG9mZnNldCA0NWRlZyB0byBtYWtlIGVhY2ggc2lkZSBzdGFydCBhdCAwXG4gICRkZWc6ICRhbmdsZSArIDQ1O1xuICAvLyBpZiB1bml0cywgcmVtb3ZlIHVuaXRzXG4gIEBpZiB1bml0KCRkZWcpID09IGRlZyB7XG4gICAgJGRlZzogJGRlZyAvIDFkZWc7XG4gIH1cbiAgLy8gc2hpZnQgdG8gYmUgb24gYSBzY2FsZSBmcm9tIDAgdG8gOTAuXG4gIEB3aGlsZSAkZGVnID4gOTAge1xuICAgICRkZWc6ICRkZWcgLSA5MDtcbiAgfVxuICBAd2hpbGUgJGRlZyA8IDAge1xuICAgICRkZWc6ICRkZWcgKyA5MDtcbiAgfVxuICAvLyBHZXQgYSByYXRpbyBvZiA5MCB0byBtdWx0aXBseSBieS5cbiAgJGRlZzogJGRlZyAvIDkwO1xuXG4gIC8vIG1ha2Ugc3VyZSBtZXRyaWNzIGFyZSByZXNldFxuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyOiAwIHNvbGlkIHRyYW5zcGFyZW50O1xuXG4gIC8vIHJ1biB0aHJvdWdoIHNpZGVzXG4gIEBpZiAkYW5nbGUgPD0gNDUgb3IgJGFuZ2xlID4gMzE1IHtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLXdpZHRoOiAwICgkd2lkdGggKiBhYnMoJGRlZyAtIDEpKSAkaGVpZ2h0ICgkd2lkdGggKiAkZGVnKTtcbiAgfVxuICBAaWYgJGFuZ2xlID4gNDUgYW5kICRhbmdsZSA8PSAxMzUge1xuICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLXdpZHRoOiAoJGhlaWdodCAqICRkZWcpIDAgKCRoZWlnaHQgKiBhYnMoJGRlZyAtIDEpKSAkd2lkdGg7XG4gIH1cbiAgQGlmICRhbmdsZSA+IDEzNSBhbmQgJGFuZ2xlIDw9IDIyNSB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci13aWR0aDogJGhlaWdodCAoJHdpZHRoICogJGRlZykgMCAoJHdpZHRoICogYWJzKCRkZWcgLSAxKSk7XG4gIH1cbiAgQGlmICRhbmdsZSA+IDIyNSBhbmQgJGFuZ2xlIDw9IDMxNSB7XG4gICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLXdpZHRoOiAoJGhlaWdodCAqIGFicygkZGVnIC0gMSkpICR3aWR0aCAoJGhlaWdodCAqICRkZWcpIDA7XG4gIH1cbn0iLCIvLyBWZXJ0aWNhbGx5IGNlbnRlciBhbnl0aGluZywgbGl0ZXJhbGx5IGFueXRoaW5nLlxuLy8gaHR0cDovL3plcm9zaXh0aHJlZS5zZS92ZXJ0aWNhbC1hbGlnbi1hbnl0aGluZy13aXRoLWp1c3QtMy1saW5lcy1vZi1jc3MvXG5AbWl4aW4gdmVydGljYWwtY2VudGVyKCRtaWRwb2ludDogbnVsbCwgJGV4dGVuZDogbnVsbCkge1xuICAkbWlkcG9pbnQ6IGlmKCRtaWRwb2ludCAhPSBudWxsLCAkbWlkcG9pbnQsIHRvb2xraXQtZ2V0KCd2ZXJ0aWNhbCBtaWRwb2ludCcpKTtcbiAgJGV4dGVuZDogaWYoJGV4dGVuZCAhPSBudWxsLCAkZXh0ZW5kLCB0b29sa2l0LWdldCgndmVydGljYWwgZXh0ZW5kJykpO1xuXG4gIHRvcDogJG1pZHBvaW50O1xuICBAaW5jbHVkZSB2ZXJ0aWNhbC1jZW50ZXItY29yZSgkZXh0ZW5kKTtcbn1cblxuQG1peGluIHZlcnRpY2FsLWNlbnRlci1jb3JlKCRleHRlbmQ6IG51bGwpIHtcbiAgJGV4dGVuZDogaWYoJGV4dGVuZCAhPSBudWxsLCAkZXh0ZW5kLCB0b29sa2l0LWdldCgndmVydGljYWwgZXh0ZW5kJykpO1xuICBAaWYgJGV4dGVuZCB7XG4gICAgQGluY2x1ZGUgZHluYW1pYy1leHRlbmQoJ3ZlcnRpY2FsIGNlbnRlcicpIHtcbiAgICAgIEBpbmNsdWRlIHZlcnRpY2FsLWNlbnRlci1jb3JlKCRleHRlbmQ6IGZhbHNlKTtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBAaWYgbWl4aW4tZXhpc3RzKHRyYW5zZm9ybSkge1xuICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVkoLTUwJSkpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIH1cbiAgfVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEhvcml6b250YWwgQ2VudGVyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBtaXhpbiBob3Jpem9udGFsLWNlbnRlcigkbWlkcG9pbnQ6IG51bGwsICRmaXhlZDogbnVsbCwgJGV4dGVuZDogbnVsbCkge1xuICAkZml4ZWQ6IGlmKCRmaXhlZCAhPSBudWxsLCAkZml4ZWQsIHRvb2xraXQtZ2V0KCdob3Jpem9udGFsIGZpeGVkJykpO1xuICAkZXh0ZW5kOiBpZigkZXh0ZW5kICE9IG51bGwsICRleHRlbmQsIHRvb2xraXQtZ2V0KCdob3Jpem9udGFsIGV4dGVuZCcpKTtcblxuICBAaWYgJGZpeGVkIHtcbiAgICAkbWlkcG9pbnQ6IGlmKCRtaWRwb2ludCAhPSBudWxsLCAkbWlkcG9pbnQsIHRvb2xraXQtZ2V0KCdob3Jpem9udGFsIGZpeGVkIG1pZHBvaW50JykpO1xuICB9XG4gIEBlbHNlIHtcbiAgICAkbWlkcG9pbnQ6IGlmKCRtaWRwb2ludCAhPSBudWxsLCAkbWlkcG9pbnQsIHRvb2xraXQtZ2V0KCdob3Jpem9udGFsIG1pZHBvaW50JykpO1xuICB9XG5cbiAgQGlmICRtaWRwb2ludCAhPSAwJSB7XG4gICAgbGVmdDogJG1pZHBvaW50O1xuICB9XG5cbiAgQGluY2x1ZGUgaG9yaXpvbnRhbC1jZW50ZXItY29yZSgkZml4ZWQsICRleHRlbmQpO1xufVxuXG5AbWl4aW4gaG9yaXpvbnRhbC1jZW50ZXItY29yZSgkZml4ZWQ6IG51bGwsICRleHRlbmQ6IG51bGwpIHtcbiAgJGZpeGVkOiBpZigkZml4ZWQgIT0gbnVsbCwgJGZpeGVkLCB0b29sa2l0LWdldCgnaG9yaXpvbnRhbCBmaXhlZCcpKTtcbiAgJGV4dGVuZDogaWYoJGV4dGVuZCAhPSBudWxsLCAkZXh0ZW5kLCB0b29sa2l0LWdldCgnaG9yaXpvbnRhbCBleHRlbmQnKSk7XG5cbiAgQGlmICRleHRlbmQge1xuICAgIEBpZiAkZml4ZWQge1xuICAgICAgQGluY2x1ZGUgZHluYW1pYy1leHRlbmQoJ2hvcml6b250YWwgY2VudGVyIGZpeGVkJykge1xuICAgICAgICBAaW5jbHVkZSBob3Jpem9udGFsLWNlbnRlci1jb3JlKHRydWUsIGZhbHNlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGluY2x1ZGUgZHluYW1pYy1leHRlbmQoJ2hvcml6b250YWwgY2VudGVyJykge1xuICAgICAgICBAaW5jbHVkZSBob3Jpem9udGFsLWNlbnRlci1jb3JlKGZhbHNlLCBmYWxzZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAaWYgJGZpeGVkIHtcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgIEBpZiBtaXhpbi1leGlzdHModHJhbnNmb3JtKSB7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVYKC01MCUpKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICB9XG4gIH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBBYnNvbHV0ZSBDZW50ZXJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQG1peGluIGFic29sdXRlLWNlbnRlcigkdmVydGljYWw6IG51bGwsICRob3Jpem9udGFsOiBudWxsLCAkZml4ZWQ6IG51bGwsICRleHRlbmQ6IG51bGwpIHtcbiAgJHZlcnRpY2FsOiBpZigkdmVydGljYWwgIT0gbnVsbCwgJHZlcnRpY2FsLCB0b29sa2l0LWdldCgnYWJzb2x1dGUgY2VudGVyIHZlcnRpY2FsIG1pZHBvaW50JykpO1xuICAkZml4ZWQ6IGlmKCRmaXhlZCAhPSBudWxsLCAkZml4ZWQsIHRvb2xraXQtZ2V0KCdhYnNvbHV0ZSBjZW50ZXIgZml4ZWQnKSk7XG4gICRleHRlbmQ6IGlmKCRleHRlbmQgIT0gbnVsbCwgJGV4dGVuZCwgdG9vbGtpdC1nZXQoJ2Fic29sdXRlIGNlbnRlciBleHRlbmQnKSk7XG5cbiAgQGlmICRmaXhlZCB7XG4gICAgJGhvcml6b250YWw6IGlmKCRob3Jpem9udGFsICE9IG51bGwsICRob3Jpem9udGFsLCB0b29sa2l0LWdldCgnYWJzb2x1dGUgY2VudGVyIGZpeGVkIGhvcml6b250YWwgbWlkcG9pbnQnKSk7XG4gIH1cbiAgQGVsc2Uge1xuICAgICRob3Jpem9udGFsOiBpZigkaG9yaXpvbnRhbCAhPSBudWxsLCAkaG9yaXpvbnRhbCwgdG9vbGtpdC1nZXQoJ2Fic29sdXRlIGNlbnRlciBob3Jpem9udGFsIG1pZHBvaW50JykpO1xuICB9XG5cbiAgdG9wOiAkdmVydGljYWw7XG4gIEBpZiAkaG9yaXpvbnRhbCAhPSAwJSB7XG4gICAgbGVmdDogJGhvcml6b250YWw7XG4gIH1cblxuICBAaW5jbHVkZSBhYnNvbHV0ZS1jZW50ZXItY29yZSgkZml4ZWQsICRleHRlbmQpO1xufVxuXG5AbWl4aW4gYWJzb2x1dGUtY2VudGVyLWNvcmUoJGZpeGVkOiBudWxsLCAkZXh0ZW5kOiBudWxsKSB7XG4gICRmaXhlZDogaWYoJGZpeGVkICE9IG51bGwsICRmaXhlZCwgdG9vbGtpdC1nZXQoJ2Fic29sdXRlIGNlbnRlciBmaXhlZCcpKTtcbiAgJGV4dGVuZDogaWYoJGV4dGVuZCAhPSBudWxsLCAkZXh0ZW5kLCB0b29sa2l0LWdldCgnYWJzb2x1dGUgY2VudGVyIGV4dGVuZCcpKTtcblxuICBAaWYgJGV4dGVuZCB7XG4gICAgQGlmICRmaXhlZCB7XG4gICAgICBAaW5jbHVkZSBkeW5hbWljLWV4dGVuZCgnYWJzb2x1dGUgY2VudGVyIGZpeGVkJykge1xuICAgICAgICBAaW5jbHVkZSBhYnNvbHV0ZS1jZW50ZXItY29yZSh0cnVlLCBmYWxzZSk7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBpbmNsdWRlIGR5bmFtaWMtZXh0ZW5kKCdhYnNvbHV0ZSBjZW50ZXInKSB7XG4gICAgICAgIEBpbmNsdWRlIGFic29sdXRlLWNlbnRlci1jb3JlKGZhbHNlLCBmYWxzZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAaWYgJGZpeGVkIHtcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgIEBpZiBtaXhpbi1leGlzdHModHJhbnNmb3JtKSB7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVZKC01MCUpIHRyYW5zbGF0ZVgoLTUwJSkpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIEBpZiBtaXhpbi1leGlzdHModHJhbnNmb3JtKSB7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVZKC01MCUpKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgfVxuICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgfVxuICB9XG5cbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIENTUyBsZXZlbCA0IFZpZXdwb3J0XG4vLyBodHRwOi8vZGV2LnczLm9yZy9jc3N3Zy9jc3MtZGV2aWNlLWFkYXB0LyN0aGUtYXR2aWV3cG9ydC1ydWxlXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBtaXhpbiB2aWV3cG9ydCB7XG4gIEAtd2Via2l0LXZpZXdwb3J0IHtcbiAgICBAY29udGVudDtcbiAgfVxuICBALW1vei12aWV3cG9ydCB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbiAgQC1tcy12aWV3cG9ydCB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbiAgQHZpZXdwb3J0IHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuIiwiQG1peGluIHVuZGVybGluZSgkYmFja2dyb3VuZDogbnVsbCwgJGNvbG9yOiBudWxsLCAkY2xlYXItZGVzY2VuZGVyczogbnVsbCwgJGRpc3RhbmNlOiBudWxsLCAkd2lkdGg6IG51bGwsICRleHRlbmQ6IG51bGwpIHtcbiAgJGJhY2tncm91bmQ6IGlmKCRiYWNrZ3JvdW5kICE9IG51bGwsICRiYWNrZ3JvdW5kLCB0b29sa2l0LWdldCgndW5kZXJsaW5lIGJhY2tncm91bmQnKSk7XG4gICRjb2xvcjogaWYoJGNvbG9yICE9IG51bGwsICRjb2xvciwgdG9vbGtpdC1nZXQoJ3VuZGVybGluZSBjb2xvcicpKTtcbiAgJGNsZWFyLWRlc2NlbmRlcnM6IGlmKCRjbGVhci1kZXNjZW5kZXJzICE9IG51bGwsICRjbGVhci1kZXNjZW5kZXJzLCB0b29sa2l0LWdldCgndW5kZXJsaW5lIGNsZWFyIGRlc2NlbmRlcnMnKSk7XG4gICRkaXN0YW5jZTogaWYoJGRpc3RhbmNlICE9IG51bGwsICRkaXN0YW5jZSwgdG9vbGtpdC1nZXQoJ3VuZGVybGluZSBkaXN0YW5jZScpKTtcbiAgJHdpZHRoOiBpZigkd2lkdGggIT0gbnVsbCwgJHdpZHRoLCB0b29sa2l0LWdldCgndW5kZXJsaW5lIHdpZHRoJykpO1xuICAkZXh0ZW5kOiBpZigkZXh0ZW5kICE9IG51bGwsICRleHRlbmQsIHRvb2xraXQtZ2V0KCd1bmRlcmxpbmUgZXh0ZW5kJykpO1xuXG4gICRQWDogLjA2MjVlbTtcblxuICBAaW5jbHVkZSB1bmRlcmxpbmUtY29yZSgkZXh0ZW5kKTtcblxuICBAaWYgbWl4aW4tZXhpc3RzKGJhY2tncm91bmQtaW1hZ2UpIGFuZCBmdW5jdGlvbi1leGlzdHMobGluZWFyLWdyYWRpZW50KSB7XG4gICAgQGluY2x1ZGUgYmFja2dyb3VuZC1pbWFnZShcbiAgICAgIGxpbmVhci1ncmFkaWVudChib3R0b20sICRiYWNrZ3JvdW5kIDc1JSwgJGNvbG9yIDc1JSlcbiAgICApO1xuICB9XG4gIEBlbHNlIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gdG9wLCAkYmFja2dyb3VuZCA3NSUsICRjb2xvciA3NSUpO1xuICB9XG4gIGJhY2tncm91bmQtc2l6ZTogKDIgKiAkUFgpICgoMSArICR3aWR0aCkgKiAkUFgpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwICgoJHdpZHRoKSAqICRQWCkgKyAkZGlzdGFuY2U7XG5cbiAgQGlmICRjbGVhci1kZXNjZW5kZXJzIHtcbiAgICB0ZXh0LXNoYWRvdzogKDEgKiAkUFgpICgxICogJFBYKSAwICRiYWNrZ3JvdW5kLCAoLTEgKiAkUFgpIDAgMCAkYmFja2dyb3VuZDtcbiAgfVxufVxuXG5AbWl4aW4gdW5kZXJsaW5lLWNvcmUoJGV4dGVuZDogbnVsbCkge1xuICAkZXh0ZW5kOiBpZigkZXh0ZW5kICE9IG51bGwsICRleHRlbmQsIHRvb2xraXQtZ2V0KCd1bmRlcmxpbmUgZXh0ZW5kJykpO1xuXG4gIEBpZiAkZXh0ZW5kIHtcbiAgICBAaW5jbHVkZSBkeW5hbWljLWV4dGVuZCgndW5kZXJsaW5lJykge1xuICAgICAgQGluY2x1ZGUgdW5kZXJsaW5lLWNvcmUoZmFsc2UpO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbiAgfVxufSIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQVJUIVxuLy8gSW5zcGlyZWQgYnkgaHR0cDovL2VscnVtb3JkZWxhbHV6LmdpdGh1Yi5pby9QaXhlbGF0b3IvXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBtaXhpbiBhcnQoJGFydCwgJHB4LXNpemU6IG51bGwsICRjb2xvcjogbnVsbCwgJHJhZGl1czogbnVsbCkge1xuICAkcHgtc2l6ZTogaWYoJHB4LXNpemUgIT0gbnVsbCwgJHB4LXNpemUsIHRvb2xraXQtZ2V0KCdhcnQgcGl4ZWwgc2l6ZScpKTtcbiAgJGNvbG9yOiBpZigkY29sb3IgIT0gbnVsbCwgJGNvbG9yLCB0b29sa2l0LWdldCgnYXJ0IGNvbG9yJykpO1xuICAkcmFkaXVzOiBpZigkcmFkaXVzICE9IG51bGwsICRyYWRpdXMsIHRvb2xraXQtZ2V0KCdhcnQgYm9yZGVyIHJhZGl1cycpKTtcblxuICAkYnVpbGQ6ICgpO1xuICAkeTogJHB4LXNpemU7XG4gICR4OiAwO1xuXG4gIGhlaWdodDogJHB4LXNpemU7XG4gIHdpZHRoOiAkcHgtc2l6ZTtcbiAgYm9yZGVyLXJhZGl1czogJHJhZGl1cztcblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIHN0cl9sZW5ndGgoJGFydCkge1xuICAgICRjaGFyOiBzdHJfc2xpY2UoJGFydCwgJGksICRpKTtcbiAgICAkeDogJHggKyAkcHgtc2l6ZTtcblxuICAgIEBpZiAkY2hhciA9PSAnbicge1xuICAgICAgJHk6ICR5ICsgJHB4LXNpemU7XG4gICAgICAkeDogMDtcbiAgICB9XG4gICAgQGVsc2UgaWYgJGNoYXIgIT0gJyAnIHtcbiAgICAgICRib3JkZXI6ICR4ICR5IDAgJGNvbG9yO1xuICAgICAgJGJ1aWxkOiBhcHBlbmQoJGJ1aWxkLCAkYm9yZGVyLCBjb21tYSk7XG4gICAgfVxuICB9XG5cbiAgYm94LXNoYWRvdzogJGJ1aWxkO1xufSIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gRGVmYXVsdCBWYXJpYWJsZXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJEJyZWFrcG9pbnQtU2V0dGluZ3M6IChcbiAgJ2RlZmF1bHQgbWVkaWEnOiBhbGwsXG4gICdkZWZhdWx0IGZlYXR1cmUnOiBtaW4td2lkdGgsXG4gICdkZWZhdWx0IHBhaXInOiB3aWR0aCxcblxuICAnZm9yY2UgYWxsIG1lZGlhIHR5cGUnOiBmYWxzZSxcbiAgJ3RvIGVtcyc6IGZhbHNlLFxuICAndHJhbnNmb3JtIHJlc29sdXRpb25zJzogdHJ1ZSxcblxuICAnbm8gcXVlcmllcyc6IGZhbHNlLFxuICAnbm8gcXVlcnkgZmFsbGJhY2tzJzogZmFsc2UsXG5cbiAgJ2Jhc2UgZm9udCBzaXplJzogMTZweCxcblxuICAnbGVnYWN5IHN5bnRheCc6IGZhbHNlXG4pO1xuXG4kYnJlYWtwb2ludDogKCkgIWRlZmF1bHQ7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSW1wb3J0c1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AaW1wb3J0IFwiYnJlYWtwb2ludC9zZXR0aW5nc1wiO1xuQGltcG9ydCAnYnJlYWtwb2ludC9jb250ZXh0JztcbkBpbXBvcnQgJ2JyZWFrcG9pbnQvaGVscGVycyc7XG5AaW1wb3J0ICdicmVha3BvaW50L3BhcnNlcnMnO1xuQGltcG9ydCAnYnJlYWtwb2ludC9uby1xdWVyeSc7XG5cbkBpbXBvcnQgJ2JyZWFrcG9pbnQvcmVzcG9uZC10byc7XG5cbkBpbXBvcnQgXCJicmVha3BvaW50L2xlZ2FjeS1zZXR0aW5nc1wiO1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEJyZWFrcG9pbnQgTWl4aW5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AbWl4aW4gYnJlYWtwb2ludCgkcXVlcnksICRuby1xdWVyeTogZmFsc2UpIHtcbiAgQGluY2x1ZGUgbGVnYWN5LXNldHRpbmdzLXdhcm5pbmc7XG5cbiAgLy8gUmVzZXQgY29udGV4dHNcbiAgQGluY2x1ZGUgcHJpdmF0ZS1icmVha3BvaW50LXJlc2V0LWNvbnRleHRzKCk7XG5cbiAgJGJyZWFrcG9pbnQ6IGJyZWFrcG9pbnQoJHF1ZXJ5LCBmYWxzZSk7XG5cbiAgJHF1ZXJ5LXN0cmluZzogbWFwLWdldCgkYnJlYWtwb2ludCwgJ3F1ZXJ5Jyk7XG4gICRxdWVyeS1mYWxsYmFjazogbWFwLWdldCgkYnJlYWtwb2ludCwgJ2ZhbGxiYWNrJyk7XG5cbiAgJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcjogbWFwLWdldCgkYnJlYWtwb2ludCwgJ2NvbnRleHQgaG9sZGVyJykgIWdsb2JhbDtcbiAgJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudDogbWFwLWdldCgkYnJlYWtwb2ludCwgJ3F1ZXJ5IGNvdW50JykgIWdsb2JhbDtcblxuICAvLyBBbGxvdyBmb3IgYW4gYXMtbmVlZGVkIG92ZXJyaWRlIG9yIHVzYWdlIG9mIG5vIHF1ZXJ5IGZhbGxiYWNrLlxuICBAaWYgJG5vLXF1ZXJ5ICE9IGZhbHNlIHtcbiAgICAkcXVlcnktZmFsbGJhY2s6ICRuby1xdWVyeTtcbiAgfVxuXG4gIEBpZiAkcXVlcnktZmFsbGJhY2sgIT0gZmFsc2Uge1xuICAgICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KCduby1xdWVyeScsICRxdWVyeS1mYWxsYmFjayk7XG4gIH1cblxuICAvLyBQcmludCBPdXQgUXVlcnkgU3RyaW5nXG4gIEBpZiBub3QgYnJlYWtwb2ludC1nZXQoJ25vIHF1ZXJpZXMnKSB7XG4gICAgQG1lZGlhICN7JHF1ZXJ5LXN0cmluZ30ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG5cbiAgQGlmIGJyZWFrcG9pbnQtZ2V0KCdubyBxdWVyeSBmYWxsYmFja3MnKSAhPSBmYWxzZSBvciBicmVha3BvaW50LWdldCgnbm8gcXVlcmllcycpID09IHRydWUge1xuXG4gICAgJHR5cGU6IHR5cGUtb2YoYnJlYWtwb2ludC1nZXQoJ25vIHF1ZXJ5IGZhbGxiYWNrcycpKTtcbiAgICAkcHJpbnQ6IGZhbHNlO1xuXG4gICAgQGlmICgkdHlwZSA9PSAnYm9vbCcpIHtcbiAgICAgICRwcmludDogdHJ1ZTtcbiAgICB9XG4gICAgQGVsc2UgaWYgKCR0eXBlID09ICdzdHJpbmcnKSB7XG4gICAgICBAaWYgJHF1ZXJ5LWZhbGxiYWNrID09IGJyZWFrcG9pbnQtZ2V0KCdubyBxdWVyeSBmYWxsYmFja3MnKSB7XG4gICAgICAgICRwcmludDogdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2UgaWYgKCR0eXBlID09ICdsaXN0Jykge1xuICAgICAgQGVhY2ggJHdyYXBwZXIgaW4gYnJlYWtwb2ludC1nZXQoJ25vIHF1ZXJ5IGZhbGxiYWNrcycpIHtcbiAgICAgICAgQGlmICRxdWVyeS1mYWxsYmFjayA9PSAkd3JhcHBlciB7XG4gICAgICAgICAgJHByaW50OiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gV3JpdGUgRmFsbGJhY2tcbiAgICBAaWYgKCRxdWVyeS1mYWxsYmFjayAhPSBmYWxzZSkgYW5kICgkcHJpbnQgPT0gdHJ1ZSkge1xuICAgICAgJHR5cGUtZmFsbGJhY2s6IHR5cGUtb2YoJHF1ZXJ5LWZhbGxiYWNrKTtcblxuICAgICAgQGlmICgkdHlwZS1mYWxsYmFjayAhPSAnYm9vbCcpIHtcbiAgICAgICAgI3skcXVlcnktZmFsbGJhY2t9ICYge1xuICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIHByaXZhdGUtYnJlYWtwb2ludC1yZXNldC1jb250ZXh0cygpO1xufVxuXG5cbkBtaXhpbiBtcSgkcXVlcnksICRuby1xdWVyeTogZmFsc2UpIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkcXVlcnksICRuby1xdWVyeSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEhhcyBTZXR0aW5nXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBicmVha3BvaW50LWhhcygkc2V0dGluZykge1xuICBAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnQsICRzZXR0aW5nKSB7XG4gICAgQHJldHVybiB0cnVlO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gR2V0IFNldHRpbmdzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBicmVha3BvaW50LWdldCgkc2V0dGluZykge1xuICBAaWYgYnJlYWtwb2ludC1oYXMoJHNldHRpbmcpIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJGJyZWFrcG9pbnQsICRzZXR0aW5nKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRCcmVha3BvaW50LVNldHRpbmdzLCAkc2V0dGluZyk7XG4gIH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBTZXQgU2V0dGluZ3Ncbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtc2V0KCRzZXR0aW5nLCAkdmFsdWUpIHtcbiAgQGlmIChzdHItaW5kZXgoJHNldHRpbmcsICctJykgb3Igc3RyLWluZGV4KCRzZXR0aW5nLCAnXycpKSBhbmQgc3RyLWluZGV4KCRzZXR0aW5nLCAnICcpID09IG51bGwge1xuICAgIEB3YXJuIFwiV29yZHMgaW4gQnJlYWtwb2ludCBzZXR0aW5ncyBzaG91bGQgYmUgc2VwYXJhdGVkIGJ5IHNwYWNlcywgbm90IGRhc2hlcyBvciB1bmRlcnNjb3Jlcy4gUGxlYXNlIHJlcGxhY2UgZGFzaGVzIGFuZCB1bmRlcnNjb3JlcyBiZXR3ZWVuIHdvcmRzIHdpdGggc3BhY2VzLiBTZXR0aW5ncyB3aWxsIG5vdCB3b3JrIGFzIGV4cGVjdGVkIHVudGlsIGNoYW5nZWQuXCI7XG4gIH1cbiAgJGJyZWFrcG9pbnQ6IG1hcC1tZXJnZSgkYnJlYWtwb2ludCwgKCRzZXR0aW5nOiAkdmFsdWUpKSAhZ2xvYmFsO1xuICBAcmV0dXJuIHRydWU7XG59XG5cbkBtaXhpbiBicmVha3BvaW50LWNoYW5nZSgkc2V0dGluZywgJHZhbHVlKSB7XG4gICRicmVha3BvaW50LWNoYW5nZTogYnJlYWtwb2ludC1zZXQoJHNldHRpbmcsICR2YWx1ZSk7XG59XG5cbkBtaXhpbiBicmVha3BvaW50LXNldCgkc2V0dGluZywgJHZhbHVlKSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQtY2hhbmdlKCRzZXR0aW5nLCAkdmFsdWUpO1xufVxuXG5AbWl4aW4gYmtwdC1jaGFuZ2UoJHNldHRpbmcsICR2YWx1ZSkge1xuICBAaW5jbHVkZSBicmVha3BvaW50LWNoYW5nZSgkc2V0dGluZywgJHZhbHVlKTtcbn1cbkBtaXhpbiBia3B0LXNldCgkc2V0dGluZywgJHZhbHVlKSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQtY2hhbmdlKCRzZXR0aW5nLCAkdmFsdWUpO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFJlbW92ZSBTZXR0aW5nXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBicmVha3BvaW50LXJlc2V0KCRzZXR0aW5ncy4uLikge1xuICBAaWYgbGVuZ3RoKCRzZXR0aW5ncykgPT0gMSB7XG4gICAgJHNldHRpbmdzOiBudGgoJHNldHRpbmdzLCAxKTtcbiAgfVxuXG4gIEBlYWNoICRzZXR0aW5nIGluICRzZXR0aW5ncyB7XG4gICAgJGJyZWFrcG9pbnQ6IG1hcC1yZW1vdmUoJGJyZWFrcG9pbnQsICRzZXR0aW5nKSAhZ2xvYmFsO1xuICB9XG4gIEByZXR1cm4gdHJ1ZTtcbn1cblxuQG1peGluIGJyZWFrcG9pbnQtcmVzZXQoJHNldHRpbmdzLi4uKSB7XG4gICRicmVha3BvaW50LXJlc2V0OiBicmVha3BvaW50LXJlc2V0KCRzZXR0aW5ncyk7XG59XG5cbkBtaXhpbiBia3B0LXJlc2V0KCRzZXR0aW5ncy4uLikge1xuICAkYnJlYWtwb2ludC1yZXNldDogYnJlYWtwb2ludC1yZXNldCgkc2V0dGluZ3MpO1xufSIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUHJpdmF0ZSBCcmVha3BvaW50IFZhcmlhYmxlc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyOiAoKTtcbiRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQ6IDAgIWRlZmF1bHQ7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQnJlYWtwb2ludCBIYXMgQ29udGV4dFxuLy8gUmV0dXJucyB3aGV0aGVyIG9yIG5vdCB5b3UgYXJlIGluc2lkZSBhIEJyZWFrcG9pbnQgcXVlcnlcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtaGFzLWNvbnRleHQoKSB7XG4gIEBpZiBsZW5ndGgoJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudCkge1xuICAgIEByZXR1cm4gdHJ1ZTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEJyZWFrcG9pbnQgR2V0IENvbnRleHRcbi8vICRmZWF0dXJlOiBJbnB1dCBmZWF0dXJlIHRvIGdldCBpdCdzIGN1cnJlbnQgTVEgY29udGV4dC4gUmV0dXJucyBmYWxzZSBpZiBubyBjb250ZXh0XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBicmVha3BvaW50LWdldC1jb250ZXh0KCRmZWF0dXJlKSB7XG4gIEBpZiBtYXAtaGFzLWtleSgkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLCAkZmVhdHVyZSkge1xuICAgICRnZXQ6IG1hcC1nZXQoJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlciwgJGZlYXR1cmUpO1xuICAgIC8vIFNwZWNpYWwgaGFuZGxpbmcgb2Ygbm8tcXVlcnkgZnJvbSBnZXQgc2lkZSBzbyAvZmFsc2UvIHByZXBlbmRzIGFyZW4ndCByZXR1cm5lZFxuICAgIEBpZiAkZmVhdHVyZSA9PSAnbm8tcXVlcnknIHtcbiAgICAgIEBpZiB0eXBlLW9mKCRnZXQpID09ICdsaXN0JyBhbmQgbGVuZ3RoKCRnZXQpID4gMSBhbmQgbnRoKCRnZXQsIDEpID09IGZhbHNlIHtcbiAgICAgICAgJGdldDogbnRoKCRnZXQsIGxlbmd0aCgkZ2V0KSk7XG4gICAgICB9XG4gICAgfVxuICAgIEByZXR1cm4gJGdldDtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGlmIGJyZWFrcG9pbnQtaGFzLWNvbnRleHQoKSBhbmQgJGZlYXR1cmUgPT0gJ21lZGlhJyB7XG4gICAgICBAcmV0dXJuIGJyZWFrcG9pbnQtZ2V0KCdkZWZhdWx0IG1lZGlhJyk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUHJpdmF0ZSBmdW5jdGlvbiB0byBzZXQgY29udGV4dFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KCRmZWF0dXJlLCAkdmFsdWUpIHtcbiAgQGlmICR2YWx1ZSA9PSAnbW9ub2Nocm9tZScge1xuICAgICRmZWF0dXJlOiAnbW9ub2Nocm9tZSc7XG4gIH1cblxuICAkY3VycmVudDogbWFwLWdldCgkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLCAkZmVhdHVyZSk7XG4gIEBpZiAkY3VycmVudCBhbmQgbGVuZ3RoKCRjdXJyZW50KSA9PSAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50IHtcbiAgICBAd2FybiBcIllvdSBoYXZlIGFscmVhZHkgcXVlcmllZCBhZ2FpbnN0IGAjeyRmZWF0dXJlfWAuIFVuZXhwZWN0ZWQgdGhpbmdzIG1heSBoYXBwZW4gaWYgeW91IHF1ZXJ5IGFnYWluc3QgdGhlIHNhbWUgZmVhdHVyZSBtb3JlIHRoYW4gb25jZSBpbiB0aGUgc2FtZSBgYW5kYCBxdWVyeS4gQnJlYWtwb2ludCBpcyBvdmVyd3JpdGluZyB0aGUgY3VycmVudCBjb250ZXh0IHdpdGggYCN7JHZhbHVlfWBcIjtcbiAgfVxuXG4gIEBpZiBub3QgbWFwLWhhcy1rZXkoJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlciwgJGZlYXR1cmUpIHtcbiAgICAkdi1ob2xkZXI6ICgpO1xuICAgIEBmb3IgJGkgZnJvbSAxIHRvICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQge1xuICAgICAgQGlmICRmZWF0dXJlID09ICdtZWRpYScge1xuICAgICAgICAkdi1ob2xkZXI6IGFwcGVuZCgkdi1ob2xkZXIsIGJyZWFrcG9pbnQtZ2V0KCdkZWZhdWx0IG1lZGlhJykpO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkdi1ob2xkZXI6IGFwcGVuZCgkdi1ob2xkZXIsIGZhbHNlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgJHYtaG9sZGVyOiBhcHBlbmQoJHYtaG9sZGVyLCAkdmFsdWUpO1xuICAgICRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXI6IG1hcC1tZXJnZSgkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLCAoJGZlYXR1cmU6ICR2LWhvbGRlcikpICFnbG9iYWw7XG4gIH1cbiAgQGVsc2Uge1xuICAgICR2LWhvbGRlcjogbWFwLWdldCgkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLCAkZmVhdHVyZSk7XG4gICAgJGxlbmd0aDogbGVuZ3RoKCR2LWhvbGRlcik7XG4gICAgQGZvciAkaSBmcm9tICRsZW5ndGggdG8gJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudCAtIDEge1xuICAgICAgQGlmICRmZWF0dXJlID09ICdtZWRpYScge1xuICAgICAgICAkdi1ob2xkZXI6IGFwcGVuZCgkdi1ob2xkZXIsIGJyZWFrcG9pbnQtZ2V0KCdkZWZhdWx0IG1lZGlhJykpO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkdi1ob2xkZXI6IGFwcGVuZCgkdi1ob2xkZXIsIGZhbHNlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgJHYtaG9sZGVyOiBhcHBlbmQoJHYtaG9sZGVyLCAkdmFsdWUpO1xuICAgICRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXI6IG1hcC1tZXJnZSgkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLCAoJGZlYXR1cmU6ICR2LWhvbGRlcikpICFnbG9iYWw7XG4gIH1cblxuICBAcmV0dXJuIHRydWU7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUHJpdmF0ZSBmdW5jdGlvbiB0byByZXNldCBjb250ZXh0XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBtaXhpbiBwcml2YXRlLWJyZWFrcG9pbnQtcmVzZXQtY29udGV4dHMge1xuICAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyOiAoKSAhZ2xvYmFsO1xuICAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50OiAwICFnbG9iYWw7XG59IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBDb252ZXJ0cyB0aGUgaW5wdXQgdmFsdWUgdG8gQmFzZSBFTXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtdG8tYmFzZS1lbSgkdmFsdWUpIHtcbiAgJHZhbHVlLXVuaXQ6IHVuaXQoJHZhbHVlKTtcblxuICAvLyBXaWxsIGNvbnZlcnQgcmVsYXRpdmUgRU1zIGludG8gcm9vdCBFTXMuXG4gIEBpZiBicmVha3BvaW50LWdldCgnYmFzZSBmb250IHNpemUnKSBhbmQgdHlwZS1vZihicmVha3BvaW50LWdldCgnYmFzZSBmb250IHNpemUnKSkgPT0gJ251bWJlcicgYW5kICR2YWx1ZS11bml0ID09ICdlbScge1xuICAgICRiYXNlLXVuaXQ6IHVuaXQoYnJlYWtwb2ludC1nZXQoJ2Jhc2UgZm9udCBzaXplJykpO1xuXG4gICAgQGlmICRiYXNlLXVuaXQgPT0gJ3B4JyBvciAkYmFzZS11bml0ID09ICclJyBvciAkYmFzZS11bml0ID09ICdlbScgb3IgJGJhc2UtdW5pdCA9PSAncHQnIHtcbiAgICAgIEByZXR1cm4gYmFzZS1jb252ZXJzaW9uKCR2YWx1ZSkgLyBiYXNlLWNvbnZlcnNpb24oYnJlYWtwb2ludC1nZXQoJ2Jhc2UgZm9udCBzaXplJykpICogMWVtO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAd2FybiAnI3ticmVha3BvaW50LWdldChcXCdiYXNlIGZvbnQgc2l6ZVxcJyl9IGlzIG5vdCBzZXQgaW4gdmFsaWQgdW5pdHMgZm9yIGZvbnQgc2l6ZSEnO1xuICAgICAgQHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gYmFzZS1jb252ZXJzaW9uKCR2YWx1ZSk7XG4gIH1cbn1cblxuQGZ1bmN0aW9uIGJhc2UtY29udmVyc2lvbigkdmFsdWUpIHtcbiAgJHVuaXQ6IHVuaXQoJHZhbHVlKTtcblxuICBAaWYgJHVuaXQgPT0gJ3B4JyB7XG4gICAgQHJldHVybiAkdmFsdWUgLyAxNnB4ICogMWVtO1xuICB9XG4gIEBlbHNlIGlmICR1bml0ID09ICclJyB7XG4gICAgQHJldHVybiAkdmFsdWUgLyAxMDAlICogMWVtO1xuICB9XG4gIEBlbHNlIGlmICR1bml0ID09ICdlbScge1xuICAgIEByZXR1cm4gJHZhbHVlO1xuICB9XG4gIEBlbHNlIGlmICR1bml0ID09ICdwdCcge1xuICAgIEByZXR1cm4gJHZhbHVlIC8gMTJwdCAqIDFlbTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiAkdmFsdWU7XG4vLyAgICBAd2FybiAnRXZlcnl0aGluZyBpcyB0ZXJyaWJsZSEgV2hhdCBoYXZlIHlvdSBkb25lPyEnO1xuICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUmV0dXJucyB3aGV0aGVyIHRoZSBmZWF0dXJlIGNhbiBoYXZlIGEgbWluL21heCBwYWlyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRicmVha3BvaW50LW1pbi1tYXgtZmVhdHVyZXM6ICdjb2xvcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29sb3ItaW5kZXgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FzcGVjdC1yYXRpbycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGV2aWNlLWFzcGVjdC1yYXRpbycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGV2aWNlLWhlaWdodCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGV2aWNlLXdpZHRoJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdoZWlnaHQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21vbm9jaHJvbWUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Jlc29sdXRpb24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3dpZHRoJztcblxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWluLW1heCgkZmVhdHVyZSkge1xuICBAZWFjaCAkaXRlbSBpbiAkYnJlYWtwb2ludC1taW4tbWF4LWZlYXR1cmVzIHtcbiAgICBAaWYgJGZlYXR1cmUgPT0gJGl0ZW0ge1xuICAgICAgQHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuICBAcmV0dXJuIGZhbHNlO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFJldHVybnMgd2hldGhlciB0aGUgZmVhdHVyZSBjYW4gaGF2ZSBhIHN0cmluZyB2YWx1ZVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kYnJlYWtwb2ludC1zdHJpbmctZmVhdHVyZXM6ICAnb3JpZW50YXRpb24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NjYW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbG9yJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhc3BlY3QtcmF0aW8nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RldmljZS1hc3BlY3QtcmF0aW8nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BvaW50ZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2x1bWlub3NpdHknO1xuXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1zdHJpbmctdmFsdWUoJGZlYXR1cmUpIHtcbiAgQGVhY2ggJGl0ZW0gaW4gJGJyZWFrcG9pbnQtc3RyaW5nLWZlYXR1cmVzIHtcbiAgICBAaWYgYnJlYWtwb2ludC1taW4tbWF4KCRpdGVtKSB7XG4gICAgICBAaWYgJGZlYXR1cmUgPT0gJ21pbi0jeyRpdGVtfScgb3IgJGZlYXR1cmUgPT0gJ21heC0jeyRpdGVtfScge1xuICAgICAgICBAcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIGlmICRmZWF0dXJlID09ICRpdGVtIHtcbiAgICAgIEByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cbiAgQHJldHVybiBmYWxzZTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBSZXR1cm5zIHdoZXRoZXIgdGhlIGZlYXR1cmUgaXMgYSBtZWRpYSB0eXBlXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRicmVha3BvaW50LW1lZGlhLXR5cGVzOiAgJ2FsbCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdicmFpbGxlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VtYm9zc2VkJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hhbmRoZWxkJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ByaW50JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Byb2plY3Rpb24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAnc2NyZWVuJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NwZWVjaCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICd0dHknLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAndHYnO1xuXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1pcy1tZWRpYSgkZmVhdHVyZSkge1xuICBAZWFjaCAkbWVkaWEgaW4gJGJyZWFrcG9pbnQtbWVkaWEtdHlwZXMge1xuICAgIEBpZiAoJGZlYXR1cmUgPT0gJG1lZGlhKSBvciAoJGZlYXR1cmUgPT0gJ25vdCAjeyRtZWRpYX0nKSBvciAoJGZlYXR1cmUgPT0gJ29ubHkgI3skbWVkaWF9Jykge1xuICAgICAgQHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gZmFsc2U7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUmV0dXJucyB3aGV0aGVyIHRoZSBmZWF0dXJlIGNhbiBzdGFuZCBhbG9uZVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nLWZlYXR1cmVzOiAnY29sb3InLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbG9yLWluZGV4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdncmlkJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtb25vY2hyb21lJztcblxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZygkZmVhdHVyZSkge1xuICBAZWFjaCAkaXRlbSBpbiAkYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nLWZlYXR1cmVzIHtcbiAgICBAaWYgJGZlYXR1cmUgPT0gJGl0ZW0ge1xuICAgICAgQHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuICBAcmV0dXJuIGZhbHNlO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFJldHVybnMgd2hldGhlciB0aGUgZmVhdHVyZVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1pcy1yZXNvbHV0aW9uKCRmZWF0dXJlKSB7XG4gICRyZXNvbHV0aW9uczogJ2RldmljZS1waXhlbC1yYXRpbycsICdkcHInO1xuXG4gIEBpZiBicmVha3BvaW50LWdldCgndHJhbnNmb3JtIHJlc29sdXRpb25zJykge1xuICAgICRyZXNvbHV0aW9uczogYXBwZW5kKCRyZXNvbHV0aW9ucywgJ3Jlc29sdXRpb24nKTtcbiAgfVxuXG4gIEBlYWNoICRyZXNvIGluICRyZXNvbHV0aW9ucyB7XG4gICAgQGlmIGluZGV4KCRmZWF0dXJlLCAkcmVzbykgb3IgaW5kZXgoJGZlYXR1cmUsICdtaW4tI3skcmVzb30nKSBvciBpbmRleCgkZmVhdHVyZSwgJ21heC0jeyRyZXNvfScpIHtcbiAgICAgIEByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIGZhbHNlO1xufVxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBJbXBvcnQgUGFyc2VyIFBpZWNlc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AaW1wb3J0IFwicGFyc2Vycy9xdWVyeVwiO1xuQGltcG9ydCBcInBhcnNlcnMvc2luZ2xlXCI7XG5AaW1wb3J0IFwicGFyc2Vycy9kb3VibGVcIjtcbkBpbXBvcnQgXCJwYXJzZXJzL3RyaXBsZVwiO1xuQGltcG9ydCBcInBhcnNlcnMvcmVzb2x1dGlvblwiO1xuXG4kTWVtby1FeGlzdHM6IGZ1bmN0aW9uLWV4aXN0cyhtZW1vLWdldCkgYW5kIGZ1bmN0aW9uLWV4aXN0cyhtZW1vLXNldCk7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQnJlYWtwb2ludCBGdW5jdGlvblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gYnJlYWtwb2ludCgkcXVlcnksICRjb250ZXh0cy4uLikge1xuICAkcnVuOiB0cnVlO1xuICAkcmV0dXJuOiAoKTtcblxuICAvLyBHcmFiIHRoZSBNZW1vIE91dHB1dCBpZiBNZW1vaXphdGlvbiBjYW4gYmUgYSB0aGluZ1xuICBAaWYgJE1lbW8tRXhpc3RzIHtcbiAgICAkcmV0dXJuOiBtZW1vLWdldChicmVha3BvaW50LCBicmVha3BvaW50ICRxdWVyeSAkY29udGV4dHMpO1xuXG4gICAgQGlmICRyZXR1cm4gIT0gbnVsbCB7XG4gICAgICAkcnVuOiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBAaWYgbm90ICRNZW1vLUV4aXN0cyBvciAkcnVuIHtcbiAgICAvLyBJbnRlcm5hbCBWYXJpYWJsZXNcbiAgICAkcXVlcnktc3RyaW5nOiAnJztcbiAgICAkcXVlcnktZmFsbGJhY2s6IGZhbHNlO1xuICAgICRyZXR1cm46ICgpO1xuXG4gICAgLy8gUmVzZXJ2ZSBHbG9iYWwgUHJpdmF0ZSBCcmVha3BvaW50IENvbnRleHRcbiAgICAkaG9sZGVyLWNvbnRleHQ6ICRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXI7XG4gICAgJGhvbGRlci1xdWVyeS1jb3VudDogJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudDtcblxuICAgIC8vIFJlc2V0IEdsb2JhbCBQcml2YXRlIEJyZWFrcG9pbnQgQ29udGV4dFxuICAgICRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXI6ICgpICFnbG9iYWw7XG4gICAgJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudDogMCAhZ2xvYmFsO1xuXG5cbiAgICAvLyBUZXN0IHRvIHNlZSBpZiBpdCdzIGEgY29tbWEtc2VwYXJhdGVkIGxpc3RcbiAgICAkb3ItbGlzdDogaWYobGlzdC1zZXBhcmF0b3IoJHF1ZXJ5KSA9PSAnY29tbWEnLCB0cnVlLCBmYWxzZSk7XG5cblxuICAgIEBpZiAoJG9yLWxpc3QgPT0gZmFsc2UgYW5kIGJyZWFrcG9pbnQtZ2V0KCdsZWdhY3kgc3ludGF4JykgPT0gZmFsc2UpIHtcbiAgICAgICRxdWVyeS1zdHJpbmc6IGJyZWFrcG9pbnQtcGFyc2UoJHF1ZXJ5KTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJGxlbmd0aDogbGVuZ3RoKCRxdWVyeSk7XG5cbiAgICAgICRsYXN0OiBudGgoJHF1ZXJ5LCAkbGVuZ3RoKTtcbiAgICAgICRxdWVyeS1mYWxsYmFjazogYnJlYWtwb2ludC1uby1xdWVyeSgkbGFzdCk7XG5cbiAgICAgIEBpZiAoJHF1ZXJ5LWZhbGxiYWNrICE9IGZhbHNlKSB7XG4gICAgICAgICRsZW5ndGg6ICRsZW5ndGggLSAxO1xuICAgICAgfVxuXG4gICAgICBAaWYgKGJyZWFrcG9pbnQtZ2V0KCdsZWdhY3kgc3ludGF4JykgPT0gdHJ1ZSkge1xuICAgICAgICAkbXE6ICgpO1xuXG4gICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgJG1xOiBhcHBlbmQoJG1xLCBudGgoJHF1ZXJ5LCAkaSksIGNvbW1hKTtcbiAgICAgICAgfVxuXG4gICAgICAgICRxdWVyeS1zdHJpbmc6IGJyZWFrcG9pbnQtcGFyc2UoJG1xKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJHF1ZXJ5LXN0cmluZzogJyc7XG4gICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgJHF1ZXJ5LXN0cmluZzogJHF1ZXJ5LXN0cmluZyArIGlmKCRpID09IDEsICcnLCAnLCAnKSArIGJyZWFrcG9pbnQtcGFyc2UobnRoKCRxdWVyeSwgJGkpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICRyZXR1cm46ICgncXVlcnknOiAkcXVlcnktc3RyaW5nLFxuICAgICAgICAnZmFsbGJhY2snOiAkcXVlcnktZmFsbGJhY2ssXG4gICAgICAgICdjb250ZXh0IGhvbGRlcic6ICRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXIsXG4gICAgICAgICdxdWVyeSBjb3VudCc6ICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnRcbiAgICApO1xuICAgIEBpZiBsZW5ndGgoJGNvbnRleHRzKSA+IDAgYW5kIG50aCgkY29udGV4dHMsIDEpICE9IGZhbHNlIHtcbiAgICAgIEBpZiAkcXVlcnktZmFsbGJhY2sgIT0gZmFsc2Uge1xuICAgICAgICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dCgnbm8tcXVlcnknLCAkcXVlcnktZmFsbGJhY2spO1xuICAgICAgfVxuICAgICAgJGNvbnRleHQtbWFwOiAoKTtcbiAgICAgIEBlYWNoICRjb250ZXh0IGluICRjb250ZXh0cyB7XG4gICAgICAgICRjb250ZXh0LW1hcDogbWFwLW1lcmdlKCRjb250ZXh0LW1hcCwgKCRjb250ZXh0OiBicmVha3BvaW50LWdldC1jb250ZXh0KCRjb250ZXh0KSkpO1xuICAgICAgfVxuICAgICAgJHJldHVybjogbWFwLW1lcmdlKCRyZXR1cm4sIChjb250ZXh0OiAkY29udGV4dC1tYXApKTtcbiAgICB9XG5cbiAgICAvLyBSZXNldCBHbG9iYWwgUHJpdmF0ZSBCcmVha3BvaW50IENvbnRleHRcbiAgICAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyOiAoKSAhZ2xvYmFsO1xuICAgICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQ6IDAgIWdsb2JhbDtcblxuICAgIEBpZiAkTWVtby1FeGlzdHMge1xuICAgICAgJGhvbGRlcjogbWVtby1zZXQoYnJlYWtwb2ludCwgYnJlYWtwb2ludCAkcXVlcnkgJGNvbnRleHRzLCAkcmV0dXJuKTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRyZXR1cm47XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gR2VuZXJhbCBCcmVha3BvaW50IFBhcnNlclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1wYXJzZSgkcXVlcnkpIHtcbiAgLy8gSW5jcmVhc2UgbnVtYmVyIG9mICdhbmQnIHF1ZXJpZXNcbiAgJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudDogJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudCArIDEgIWdsb2JhbDtcblxuICAvLyBTZXQgdXAgTWVkaWEgVHlwZVxuICAkcXVlcnktcHJpbnQ6ICcnO1xuXG4gICRmb3JjZS1hbGw6ICgoYnJlYWtwb2ludC1nZXQoJ2ZvcmNlIGFsbCBtZWRpYSB0eXBlJykgPT0gdHJ1ZSkgYW5kIChicmVha3BvaW50LWdldCgnZGVmYXVsdCBtZWRpYScpID09ICdhbGwnKSk7XG4gICRlbXB0eS1tZWRpYTogdHJ1ZTtcbiAgQGlmICgkZm9yY2UtYWxsID09IHRydWUpIG9yIChicmVha3BvaW50LWdldCgnZGVmYXVsdCBtZWRpYScpICE9ICdhbGwnKSB7XG4gICAgLy8gRm9yY2UgdGhlIHByaW50IG9mIHRoZSBkZWZhdWx0IG1lZGlhIHR5cGUgaWYgKGZvcmNlIGFsbCBpcyB0cnVlIGFuZCBkZWZhdWx0IG1lZGlhIHR5cGUgaXMgYWxsKSBvciAoZGVmYXVsdCBtZWRpYSB0eXBlIGlzIG5vdCBhbGwpXG4gICAgJHF1ZXJ5LXByaW50OiBicmVha3BvaW50LWdldCgnZGVmYXVsdCBtZWRpYScpO1xuICAgICRlbXB0eS1tZWRpYTogZmFsc2U7XG4gIH1cblxuXG4gICRxdWVyeS1yZXNvbHV0aW9uOiBmYWxzZTtcblxuICAkcXVlcnktaG9sZGVyOiBicmVha3BvaW50LXBhcnNlLXF1ZXJ5KCRxdWVyeSk7XG5cblxuXG4gIC8vIExvb3Agb3ZlciBlYWNoIHBhcnNlZCBvdXQgcXVlcnkgYW5kIHdyaXRlIGl0IHRvICRxdWVyeS1wcmludFxuICAkZmlyc3Q6IHRydWU7XG5cbiAgQGVhY2ggJGZlYXR1cmUgaW4gJHF1ZXJ5LWhvbGRlciB7XG4gICAgJGxlbmd0aDogbGVuZ3RoKCRmZWF0dXJlKTtcblxuICAgIC8vIFBhcnNlIGEgc2luZ2xlIGZlYXR1cmVcbiAgICBAaWYgKCRsZW5ndGggPT0gMSkge1xuICAgICAgLy8gRmVhdHVyZSBpcyBjdXJyZW50bHkgYSBsaXN0LCBncmFiIHRoZSBhY3R1YWwgdmFsdWVcbiAgICAgICRmZWF0dXJlOiBudGgoJGZlYXR1cmUsIDEpO1xuXG4gICAgICAvLyBNZWRpYSBUeXBlIG11c3QgYnkgY29udmVudGlvbiBiZSB0aGUgZmlyc3QgaXRlbSwgc28gaXQncyBzYWZlIHRvIGZsYXQgb3ZlcnJpZGUgJHF1ZXJ5LXByaW50LCB3aGljaCByaWdodCBub3cgc2hvdWxkIG9ubHkgYmUgdGhlIGRlZmF1bHQgbWVkaWEgdHlwZVxuICAgICAgQGlmIChicmVha3BvaW50LWlzLW1lZGlhKCRmZWF0dXJlKSkge1xuICAgICAgICBAaWYgKCRmb3JjZS1hbGwgPT0gdHJ1ZSkgb3IgKCRmZWF0dXJlICE9ICdhbGwnKSB7XG4gICAgICAgICAgLy8gRm9yY2UgdGhlIHByaW50IG9mIHRoZSBkZWZhdWx0IG1lZGlhIHR5cGUgaWYgKGZvcmNlIGFsbCBpcyB0cnVlIGFuZCBkZWZhdWx0IG1lZGlhIHR5cGUgaXMgYWxsKSBvciAoZGVmYXVsdCBtZWRpYSB0eXBlIGlzIG5vdCBhbGwpXG4gICAgICAgICAgJHF1ZXJ5LXByaW50OiAkZmVhdHVyZTtcbiAgICAgICAgICAkZW1wdHktbWVkaWE6IGZhbHNlO1xuXG4gICAgICAgICAgLy8gU2V0IENvbnRleHRcbiAgICAgICAgICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dChtZWRpYSwgJHF1ZXJ5LXByaW50KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkcGFyc2VkOiBicmVha3BvaW50LXBhcnNlLXNpbmdsZSgkZmVhdHVyZSwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpO1xuICAgICAgICAkcXVlcnktcHJpbnQ6ICcjeyRxdWVyeS1wcmludH0gI3skcGFyc2VkfSc7XG4gICAgICAgICRmaXJzdDogZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIFBhcnNlIGEgZG91YmxlIGZlYXR1cmVcbiAgICBAZWxzZSBpZiAoJGxlbmd0aCA9PSAyKSB7XG4gICAgICBAaWYgKGJyZWFrcG9pbnQtaXMtcmVzb2x1dGlvbigkZmVhdHVyZSkgIT0gZmFsc2UpIHtcbiAgICAgICAgJHF1ZXJ5LXJlc29sdXRpb246ICRmZWF0dXJlO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkcGFyc2VkOiBudWxsO1xuICAgICAgICAvLyBJZiBpdCdzIGEgc3RyaW5nL251bWJlciBwYWlyLFxuICAgICAgICAvLyB3ZSBjaGVjayB0byBzZWUgaWYgb25lIGlzIGEgc2luZ2xlLXN0cmluZyB2YWx1ZSxcbiAgICAgICAgLy8gdGhlbiB3ZSBwYXJzZSBpdCBhcyBhIG5vcm1hbCBkb3VibGVcbiAgICAgICAgJGFscGhhOiBudGgoJGZlYXR1cmUsIDEpO1xuICAgICAgICAkYmV0YTogbnRoKCRmZWF0dXJlLCAyKTtcbiAgICAgICAgQGlmIGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZygkYWxwaGEpIG9yIGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZygkYmV0YSkge1xuICAgICAgICAgICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2Utc2luZ2xlKCRhbHBoYSwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpO1xuICAgICAgICAgICRxdWVyeS1wcmludDogJyN7JHF1ZXJ5LXByaW50fSAjeyRwYXJzZWR9JztcbiAgICAgICAgICAkZmlyc3Q6IGZhbHNlO1xuICAgICAgICAgICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2Utc2luZ2xlKCRiZXRhLCAkZW1wdHktbWVkaWEsICRmaXJzdCk7XG4gICAgICAgICAgJHF1ZXJ5LXByaW50OiAnI3skcXVlcnktcHJpbnR9ICN7JHBhcnNlZH0nO1xuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAkcGFyc2VkOiBicmVha3BvaW50LXBhcnNlLWRvdWJsZSgkZmVhdHVyZSwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpO1xuICAgICAgICAgICRxdWVyeS1wcmludDogJyN7JHF1ZXJ5LXByaW50fSAjeyRwYXJzZWR9JztcbiAgICAgICAgICAkZmlyc3Q6IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC8vIFBhcnNlIGEgdHJpcGxlIGZlYXR1cmVcbiAgICBAZWxzZSBpZiAoJGxlbmd0aCA9PSAzKSB7XG4gICAgICAkcGFyc2VkOiBicmVha3BvaW50LXBhcnNlLXRyaXBsZSgkZmVhdHVyZSwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpO1xuICAgICAgJHF1ZXJ5LXByaW50OiAnI3skcXVlcnktcHJpbnR9ICN7JHBhcnNlZH0nO1xuICAgICAgJGZpcnN0OiBmYWxzZTtcbiAgICB9XG5cbiAgfVxuXG4gIEBpZiAoJHF1ZXJ5LXJlc29sdXRpb24gIT0gZmFsc2UpIHtcbiAgICAkcXVlcnktcHJpbnQ6IGJyZWFrcG9pbnQtYnVpbGQtcmVzb2x1dGlvbigkcXVlcnktcHJpbnQsICRxdWVyeS1yZXNvbHV0aW9uLCAkZW1wdHktbWVkaWEsICRmaXJzdCk7XG4gIH1cblxuICAvLyBMb29wIHRocm91Z2ggZWFjaCBmZWF0dXJlIHRoYXQncyBiZWVuIGRldGVjdGVkIHNvIGZhciBhbmQgYXBwZW5kICdmYWxzZScgdG8gdGhlIHRoZSB2YWx1ZSBsaXN0IHRvIGluY3JlbWVudCB0aGVpciBjb3VudGVyc1xuICBAZWFjaCAkZiwgJHYgaW4gJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlciB7XG4gICAgJHYtaG9sZGVyOiAkdjtcbiAgICAkbGVuZ3RoOiBsZW5ndGgoJHYtaG9sZGVyKTtcbiAgICBAaWYgbGVuZ3RoKCR2LWhvbGRlcikgPCAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50IHtcbiAgICAgIEBmb3IgJGkgZnJvbSAkbGVuZ3RoIHRvICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQge1xuICAgICAgICBAaWYgJGYgPT0gJ21lZGlhJyB7XG4gICAgICAgICAgJHYtaG9sZGVyOiBhcHBlbmQoJHYtaG9sZGVyLCBicmVha3BvaW50LWdldCgnZGVmYXVsdCBtZWRpYScpKTtcbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgJHYtaG9sZGVyOiBhcHBlbmQoJHYtaG9sZGVyLCBmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcjogbWFwLW1lcmdlKCRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXIsICgkZjogJHYtaG9sZGVyKSkgIWdsb2JhbDtcbiAgfVxuXG4gIEByZXR1cm4gJHF1ZXJ5LXByaW50O1xufVxuIiwiQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2UtcXVlcnkoJHF1ZXJ5KSB7XG4gIC8vIFBhcnNlIGZlYXR1cmVzIG91dCBvZiBhbiBpbmRpdmlkdWFsIHF1ZXJ5XG4gICRmZWF0dXJlLWhvbGRlcjogKCk7XG4gICRxdWVyeS1ob2xkZXI6ICgpO1xuICAkbGVuZ3RoOiBsZW5ndGgoJHF1ZXJ5KTtcblxuICBAaWYgJGxlbmd0aCA9PSAyIHtcbiAgICAvLyBJZiB3ZSd2ZSBnb3QgYSBzdHJpbmcvbnVtYmVyLCBudW1iZXIvc3RyaW5nLCBjaGVjayB0byBzZWUgaWYgaXQncyBhIHZhbGlkIHN0cmluZy9udW1iZXIgcGFpciBvciB0d28gc2luZ2xlc1xuICAgIEBpZiAodHlwZS1vZihudGgoJHF1ZXJ5LCAxKSkgPT0gJ3N0cmluZycgYW5kIHR5cGUtb2YobnRoKCRxdWVyeSwgMikpID09ICdudW1iZXInKSBvciAodHlwZS1vZihudGgoJHF1ZXJ5LCAxKSkgPT0gJ251bWJlcicgYW5kIHR5cGUtb2YobnRoKCRxdWVyeSwgMikpID09ICdzdHJpbmcnKSB7XG5cbiAgICAgICRudW1iZXI6ICcnO1xuICAgICAgJHZhbHVlOiAnJztcblxuICAgICAgQGlmIHR5cGUtb2YobnRoKCRxdWVyeSwgMSkpID09ICdzdHJpbmcnIHtcbiAgICAgICAgJG51bWJlcjogbnRoKCRxdWVyeSwgMik7XG4gICAgICAgICR2YWx1ZTogbnRoKCRxdWVyeSwgMSk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICRudW1iZXI6IG50aCgkcXVlcnksIDEpO1xuICAgICAgICAkdmFsdWU6IG50aCgkcXVlcnksIDIpO1xuICAgICAgfVxuXG4gICAgICAvLyBJZiB0aGUgc3RyaW5nIHZhbHVlIGNhbiBiZSBhIHNpbmdsZSB2YWx1ZSwgY2hlY2sgdG8gc2VlIGlmIHRoZSBudW1iZXIgcGFzc2VkIGluIGlzIGEgdmFsaWQgaW5wdXQgZm9yIHNhaWQgc2luZ2xlIHZhbHVlLiBGb3J0dW5hdGVseSwgYWxsIGN1cnJlbnQgc2luZ2xlLXZhbHVlIG9wdGlvbnMgb25seSBhY2NlcHQgdW5pdGxlc3MgbnVtYmVycywgc28gdGhpcyBjaGVjayBpcyBlYXN5LlxuICAgICAgQGlmIGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZygkdmFsdWUpIHtcbiAgICAgICAgQGlmIHVuaXRsZXNzKCRudW1iZXIpIHtcbiAgICAgICAgICAkZmVhdHVyZS1ob2xkZXI6IGFwcGVuZCgkdmFsdWUsICRudW1iZXIsIHNwYWNlKTtcbiAgICAgICAgICAkcXVlcnktaG9sZGVyOiBhcHBlbmQoJHF1ZXJ5LWhvbGRlciwgJGZlYXR1cmUtaG9sZGVyLCBjb21tYSk7XG4gICAgICAgICAgQHJldHVybiAkcXVlcnktaG9sZGVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvLyBJZiB0aGUgc3RyaW5nIGlzIGEgbWVkaWEgdHlwZSwgc3BsaXQgdGhlIHF1ZXJ5XG4gICAgICBAaWYgYnJlYWtwb2ludC1pcy1tZWRpYSgkdmFsdWUpIHtcbiAgICAgICAgJHF1ZXJ5LWhvbGRlcjogYXBwZW5kKCRxdWVyeS1ob2xkZXIsIG50aCgkcXVlcnksIDEpKTtcbiAgICAgICAgJHF1ZXJ5LWhvbGRlcjogYXBwZW5kKCRxdWVyeS1ob2xkZXIsIG50aCgkcXVlcnksIDIpKTtcbiAgICAgICAgQHJldHVybiAkcXVlcnktaG9sZGVyO1xuICAgICAgfVxuICAgICAgLy8gSWYgaXQncyBub3QgYSBzaW5nbGUgZmVhdHVyZSwgd2UncmUganVzdCBnb2luZyB0byBhc3N1bWUgaXQncyBhIHByb3BlciBzdHJpbmcvdmFsdWUgcGFpciwgYW5kIHJvbGwgd2l0aCBpdC5cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJGZlYXR1cmUtaG9sZGVyOiBhcHBlbmQoJHZhbHVlLCAkbnVtYmVyLCBzcGFjZSk7XG4gICAgICAgICRxdWVyeS1ob2xkZXI6IGFwcGVuZCgkcXVlcnktaG9sZGVyLCAkZmVhdHVyZS1ob2xkZXIsIGNvbW1hKTtcbiAgICAgICAgQHJldHVybiAkcXVlcnktaG9sZGVyO1xuICAgICAgfVxuXG4gICAgfVxuICAgIC8vIElmIHRoZXkncmUgYm90aCBudW1iZXJzLCB3ZSBhc3N1bWUgaXQncyBhIGRvdWJsZSBhbmQgcm9sbCB3aXRoIHRoYXRcbiAgICBAZWxzZSBpZiAodHlwZS1vZihudGgoJHF1ZXJ5LCAxKSkgPT0gJ251bWJlcicgYW5kIHR5cGUtb2YobnRoKCRxdWVyeSwgMikpID09ICdudW1iZXInKSB7XG4gICAgICAkZmVhdHVyZS1ob2xkZXI6IGFwcGVuZChudGgoJHF1ZXJ5LCAxKSwgbnRoKCRxdWVyeSwgMiksIHNwYWNlKTtcbiAgICAgICRxdWVyeS1ob2xkZXI6IGFwcGVuZCgkcXVlcnktaG9sZGVyLCAkZmVhdHVyZS1ob2xkZXIsIGNvbW1hKTtcbiAgICAgIEByZXR1cm4gJHF1ZXJ5LWhvbGRlcjtcbiAgICB9XG4gICAgLy8gSWYgdGhleSdyZSBib3RoIHN0cmluZ3MgYW5kIG5laXRoZXIgYXJlIHNpbmdsZXMsIHdlIHJvbGwgd2l0aCB0aGF0LlxuICAgIEBlbHNlIGlmICh0eXBlLW9mKG50aCgkcXVlcnksIDEpKSA9PSAnc3RyaW5nJyBhbmQgdHlwZS1vZihudGgoJHF1ZXJ5LCAyKSkgPT0gJ3N0cmluZycpIHtcbiAgICAgIEBpZiBub3QgYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKG50aCgkcXVlcnksIDEpKSBhbmQgbm90IGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZyhudGgoJHF1ZXJ5LCAyKSkge1xuICAgICAgICAkZmVhdHVyZS1ob2xkZXI6IGFwcGVuZChudGgoJHF1ZXJ5LCAxKSwgbnRoKCRxdWVyeSwgMiksIHNwYWNlKTtcbiAgICAgICAgJHF1ZXJ5LWhvbGRlcjogYXBwZW5kKCRxdWVyeS1ob2xkZXIsICRmZWF0dXJlLWhvbGRlciwgY29tbWEpO1xuICAgICAgICBAcmV0dXJuICRxdWVyeS1ob2xkZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRsZW5ndGggPT0gMyB7XG4gICAgLy8gSWYgd2UndmUgZ290IHRocmVlIGl0ZW1zIGFuZCBub25lIGlzIGEgbGlzdCwgd2UgY2hlY2sgdG8gc2VlXG4gICAgQGlmIHR5cGUtb2YobnRoKCRxdWVyeSwgMSkpICE9ICdsaXN0JyBhbmQgdHlwZS1vZihudGgoJHF1ZXJ5LCAyKSkgIT0gJ2xpc3QnIGFuZCB0eXBlLW9mKG50aCgkcXVlcnksIDMpKSAhPSAnbGlzdCcge1xuICAgICAgLy8gSWYgbm9uZSBvZiB0aGUgaXRlbXMgYXJlIHNpbmdsZSBzdHJpbmcgdmFsdWVzIGFuZCBub25lIG9mIHRoZSB2YWx1ZXMgYXJlIG1lZGlhIHZhbHVlcywgd2UncmUgZ29vZC5cbiAgICAgIEBpZiAobm90IGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZyhudGgoJHF1ZXJ5LCAxKSkgYW5kIG5vdCBicmVha3BvaW50LXNpbmdsZS1zdHJpbmcobnRoKCRxdWVyeSwgMikpIGFuZCBub3QgYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKG50aCgkcXVlcnksIDMpKSkgYW5kICAoKG5vdCBicmVha3BvaW50LWlzLW1lZGlhKG50aCgkcXVlcnksIDEpKSBhbmQgbm90IGJyZWFrcG9pbnQtaXMtbWVkaWEobnRoKCRxdWVyeSwgMikpIGFuZCBub3QgYnJlYWtwb2ludC1pcy1tZWRpYShudGgoJHF1ZXJ5LCAzKSkpKSB7XG4gICAgICAgICRmZWF0dXJlLWhvbGRlcjogYXBwZW5kKG50aCgkcXVlcnksIDEpLCBudGgoJHF1ZXJ5LCAyKSwgc3BhY2UpO1xuICAgICAgICAkZmVhdHVyZS1ob2xkZXI6IGFwcGVuZCgkZmVhdHVyZS1ob2xkZXIsIG50aCgkcXVlcnksIDMpLCBzcGFjZSk7XG4gICAgICAgICRxdWVyeS1ob2xkZXI6IGFwcGVuZCgkcXVlcnktaG9sZGVyLCAkZmVhdHVyZS1ob2xkZXIsIGNvbW1hKTtcbiAgICAgICAgQHJldHVybiAkcXVlcnktaG9sZGVyO1xuICAgICAgfVxuICAgICAgLy8gbGV0J3MgY2hlY2sgdG8gc2VlIGlmIHRoZSBmaXJzdCBpdGVtIGlzIGEgbWVkaWEgdHlwZVxuICAgICAgQGVsc2UgaWYgYnJlYWtwb2ludC1pcy1tZWRpYShudGgoJHF1ZXJ5LCAxKSkge1xuICAgICAgICAkcXVlcnktaG9sZGVyOiBhcHBlbmQoJHF1ZXJ5LWhvbGRlciwgbnRoKCRxdWVyeSwgMSkpO1xuICAgICAgICAkZmVhdHVyZS1ob2xkZXI6IGFwcGVuZChudGgoJHF1ZXJ5LCAyKSwgbnRoKCRxdWVyeSwgMyksIHNwYWNlKTtcbiAgICAgICAgJHF1ZXJ5LWhvbGRlcjogYXBwZW5kKCRxdWVyeS1ob2xkZXIsICRmZWF0dXJlLWhvbGRlcik7XG4gICAgICAgIEByZXR1cm4gJHF1ZXJ5LWhvbGRlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBJZiBpdCdzIGEgc2luZ2xlIGl0ZW0sIG9yIGlmIGl0J3Mgbm90IGEgc3BlY2lhbCBjYXNlIGRvdWJsZSBvciB0cmlwbGUsIHdlIGNhbiBzaW1wbHkgcmV0dXJuIHRoZSBxdWVyeS5cbiAgQHJldHVybiAkcXVlcnk7XG59XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEltcG9ydCBQaWVjZXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCBcInNpbmdsZS9kZWZhdWx0XCI7XG5cbkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlLXNpbmdsZSgkZmVhdHVyZSwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpIHtcbiAgJHBhcnNlZDogJyc7XG4gICRsZWFkZXI6ICcnO1xuICAvLyBJZiB3ZSdyZSBmb3JjaW5nXG4gIEBpZiBub3QgKCRlbXB0eS1tZWRpYSkgb3Igbm90ICgkZmlyc3QpIHtcbiAgICAkbGVhZGVyOiAnYW5kICc7XG4gIH1cblxuICAvLyBJZiBpdCdzIGEgc2luZ2xlIGZlYXR1cmUgdGhhdCBjYW4gc3RhbmQgYWxvbmUsIHdlIGxldCBpdFxuICBAaWYgKGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZygkZmVhdHVyZSkpIHtcbiAgICAkcGFyc2VkOiAkZmVhdHVyZTtcbiAgICAvLyBTZXQgQ29udGV4dFxuICAgICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KCRmZWF0dXJlLCAkZmVhdHVyZSk7XG4gIH1cbiAgLy8gSWYgaXQncyBub3QgYSBzdGFuZCBhbG9uZSBmZWF0dXJlLCB3ZSBwYXNzIGl0IG9mZiB0byB0aGUgZGVmYXVsdCBoYW5kbGVyLlxuICBAZWxzZSB7XG4gICAgJHBhcnNlZDogYnJlYWtwb2ludC1wYXJzZS1kZWZhdWx0KCRmZWF0dXJlKTtcbiAgfVxuXG4gIEByZXR1cm4gJGxlYWRlciArICcoJyArICRwYXJzZWQgKyAnKSc7XG59XG4iLCJAZnVuY3Rpb24gYnJlYWtwb2ludC1wYXJzZS1kZWZhdWx0KCRmZWF0dXJlKSB7XG4gICRkZWZhdWx0OiBicmVha3BvaW50LWdldCgnZGVmYXVsdCBmZWF0dXJlJyk7XG5cbiAgLy8gU2V0IENvbnRleHRcbiAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQoJGRlZmF1bHQsICRmZWF0dXJlKTtcblxuICBAaWYgKGJyZWFrcG9pbnQtZ2V0KCd0byBlbXMnKSA9PSB0cnVlKSBhbmQgKHR5cGUtb2YoJGZlYXR1cmUpID09ICdudW1iZXInKSB7XG4gICAgQHJldHVybiAnI3skZGVmYXVsdH06ICN7YnJlYWtwb2ludC10by1iYXNlLWVtKCRmZWF0dXJlKX0nO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuICcjeyRkZWZhdWx0fTogI3skZmVhdHVyZX0nO1xuICB9XG59XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEltcG9ydCBQaWVjZXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCBcImRvdWJsZS9kZWZhdWx0LXBhaXJcIjtcbkBpbXBvcnQgXCJkb3VibGUvZG91YmxlLXN0cmluZ1wiO1xuQGltcG9ydCBcImRvdWJsZS9kZWZhdWx0XCI7XG5cbkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlLWRvdWJsZSgkZmVhdHVyZSwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpIHtcbiAgJHBhcnNlZDogJyc7XG4gICRsZWFkZXI6ICcnO1xuICAvLyBJZiB3ZSdyZSBmb3JjaW5nXG4gIEBpZiBub3QgKCRlbXB0eS1tZWRpYSkgb3Igbm90ICgkZmlyc3QpIHtcbiAgICAkbGVhZGVyOiAnYW5kICc7XG4gIH1cblxuICAkZmlyc3Q6IG50aCgkZmVhdHVyZSwgMSk7XG4gICRzZWNvbmQ6IG50aCgkZmVhdHVyZSwgMik7XG5cbiAgLy8gSWYgd2UndmUgZ290IHR3byBudW1iZXJzLCB3ZSBrbm93IHdlIG5lZWQgdG8gdXNlIHRoZSBkZWZhdWx0IHBhaXIgYmVjYXVzZSB0aGVyZSBhcmUgbm8gbWVkaWEgcXVlcmllcyB0aGF0IGhhcyBhIG1lZGlhIGZlYXR1cmUgdGhhdCBpcyBhIG51bWJlclxuICBAaWYgdHlwZS1vZigkZmlyc3QpID09ICdudW1iZXInIGFuZCB0eXBlLW9mKCRzZWNvbmQpID09ICdudW1iZXInIHtcbiAgICAkcGFyc2VkOiBicmVha3BvaW50LXBhcnNlLWRlZmF1bHQtcGFpcigkZmlyc3QsICRzZWNvbmQpO1xuICB9XG4gIC8vIElmIHRoZXkgYXJlIGJvdGggc3RyaW5ncywgd2Ugc2VuZCBpdCB0aHJvdWdoIHRoZSBzdHJpbmcgcGFyc2VyXG4gIEBlbHNlIGlmIHR5cGUtb2YoJGZpcnN0KSA9PSAnc3RyaW5nJyBhbmQgdHlwZS1vZigkc2Vjb25kKSA9PSAnc3RyaW5nJyB7XG4gICAgJHBhcnNlZDogYnJlYWtwb2ludC1wYXJzZS1kb3VibGUtc3RyaW5nKCRmaXJzdCwgJHNlY29uZCk7XG4gIH1cbiAgLy8gSWYgaXQncyBhIHN0cmluZy9udW1iZXIgcGFpciwgd2UgcGFyc2UgaXQgYXMgYSBub3JtYWwgZG91YmxlXG4gIEBlbHNlIHtcbiAgICAkcGFyc2VkOiBicmVha3BvaW50LXBhcnNlLWRvdWJsZS1kZWZhdWx0KCRmaXJzdCwgJHNlY29uZCk7XG4gIH1cblxuICBAcmV0dXJuICRsZWFkZXIgKyAkcGFyc2VkO1xufVxuIiwiQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2UtZGVmYXVsdC1wYWlyKCRmaXJzdCwgJHNlY29uZCkge1xuICAkZGVmYXVsdDogYnJlYWtwb2ludC1nZXQoJ2RlZmF1bHQgcGFpcicpO1xuICAkbWluOiAnJztcbiAgJG1heDogJyc7XG5cbiAgLy8gU29ydCBpbnRvIG1pbiBhbmQgbWF4XG4gICRtaW46IG1pbigkZmlyc3QsICRzZWNvbmQpO1xuICAkbWF4OiBtYXgoJGZpcnN0LCAkc2Vjb25kKTtcblxuICAvLyBTZXQgQ29udGV4dFxuICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dChtaW4tI3skZGVmYXVsdH0sICRtaW4pO1xuICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dChtYXgtI3skZGVmYXVsdH0sICRtYXgpO1xuXG4gIC8vIE1ha2UgdGhlbSBFTXMgaWYgbmVlZCBiZVxuICBAaWYgKGJyZWFrcG9pbnQtZ2V0KCd0byBlbXMnKSA9PSB0cnVlKSB7XG4gICAgJG1pbjogYnJlYWtwb2ludC10by1iYXNlLWVtKCRtaW4pO1xuICAgICRtYXg6IGJyZWFrcG9pbnQtdG8tYmFzZS1lbSgkbWF4KTtcbiAgfVxuXG4gIEByZXR1cm4gJyhtaW4tI3skZGVmYXVsdH06ICN7JG1pbn0pIGFuZCAobWF4LSN7JGRlZmF1bHR9OiAjeyRtYXh9KSc7XG59XG4iLCJAZnVuY3Rpb24gYnJlYWtwb2ludC1wYXJzZS1kb3VibGUtc3RyaW5nKCRmaXJzdCwgJHNlY29uZCkge1xuICAkZmVhdHVyZTogJyc7XG4gICR2YWx1ZTogJyc7XG5cbiAgLy8gVGVzdCB0byBzZWUgd2hpY2ggaXMgdGhlIGZlYXR1cmUgYW5kIHdoaWNoIGlzIHRoZSB2YWx1ZVxuICBAaWYgKGJyZWFrcG9pbnQtc3RyaW5nLXZhbHVlKCRmaXJzdCkgPT0gdHJ1ZSkge1xuICAgICRmZWF0dXJlOiAkZmlyc3Q7XG4gICAgJHZhbHVlOiAkc2Vjb25kO1xuICB9XG4gIEBlbHNlIHtcbiAgICAkZmVhdHVyZTogJHNlY29uZDtcbiAgICAkdmFsdWU6ICRmaXJzdDtcbiAgfVxuXG4gIC8vIFNldCBDb250ZXh0XG4gICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KCRmZWF0dXJlLCAkdmFsdWUpO1xuXG4gIEByZXR1cm4gJygjeyRmZWF0dXJlfTogI3skdmFsdWV9KSc7XG59XG4iLCJAZnVuY3Rpb24gYnJlYWtwb2ludC1wYXJzZS1kb3VibGUtZGVmYXVsdCgkZmlyc3QsICRzZWNvbmQpIHtcbiAgJGZlYXR1cmU6ICcnO1xuICAkdmFsdWU6ICcnO1xuXG4gIEBpZiB0eXBlLW9mKCRmaXJzdCkgPT0gJ3N0cmluZycge1xuICAgICRmZWF0dXJlOiAkZmlyc3Q7XG4gICAgJHZhbHVlOiAkc2Vjb25kO1xuICB9XG4gIEBlbHNlIHtcbiAgICAkZmVhdHVyZTogJHNlY29uZDtcbiAgICAkdmFsdWU6ICRmaXJzdDtcbiAgfVxuXG4gIC8vIFNldCBDb250ZXh0XG4gICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KCRmZWF0dXJlLCAkdmFsdWUpO1xuXG4gIEBpZiAoYnJlYWtwb2ludC1nZXQoJ3RvIGVtcycpID09IHRydWUpIHtcbiAgICAkdmFsdWU6IGJyZWFrcG9pbnQtdG8tYmFzZS1lbSgkdmFsdWUpO1xuICB9XG5cbiAgQHJldHVybiAnKCN7JGZlYXR1cmV9OiAjeyR2YWx1ZX0pJ1xufVxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBJbXBvcnQgUGllY2VzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBpbXBvcnQgXCJ0cmlwbGUvZGVmYXVsdFwiO1xuXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1wYXJzZS10cmlwbGUoJGZlYXR1cmUsICRlbXB0eS1tZWRpYSwgJGZpcnN0KSB7XG4gICRwYXJzZWQ6ICcnO1xuICAkbGVhZGVyOiAnJztcblxuICAvLyBJZiB3ZSdyZSBmb3JjaW5nXG4gIEBpZiBub3QgKCRlbXB0eS1tZWRpYSkgb3Igbm90ICgkZmlyc3QpIHtcbiAgICAkbGVhZGVyOiAnYW5kICc7XG4gIH1cblxuICAvLyBzZXBhcmF0ZSB0aGUgc3RyaW5nIGZlYXR1cmVzIGZyb20gdGhlIHZhbHVlIG51bWJlcnNcbiAgJHN0cmluZzogbnVsbDtcbiAgJG51bWJlcnM6IG51bGw7XG4gIEBlYWNoICR2YWwgaW4gJGZlYXR1cmUge1xuICAgIEBpZiB0eXBlLW9mKCR2YWwpID09IHN0cmluZyB7XG4gICAgICAkc3RyaW5nOiAkdmFsO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAaWYgdHlwZS1vZigkbnVtYmVycykgPT0gJ251bGwnIHtcbiAgICAgICAgJG51bWJlcnM6ICR2YWw7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICRudW1iZXJzOiBhcHBlbmQoJG51bWJlcnMsICR2YWwpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2UtdHJpcGxlLWRlZmF1bHQoJHN0cmluZywgbnRoKCRudW1iZXJzLCAxKSwgbnRoKCRudW1iZXJzLCAyKSk7XG5cbiAgQHJldHVybiAkbGVhZGVyICsgJHBhcnNlZDtcblxufVxuIiwiQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2UtdHJpcGxlLWRlZmF1bHQoJGZlYXR1cmUsICRmaXJzdCwgJHNlY29uZCkge1xuXG4gIC8vIFNvcnQgaW50byBtaW4gYW5kIG1heFxuICAkbWluOiBtaW4oJGZpcnN0LCAkc2Vjb25kKTtcbiAgJG1heDogbWF4KCRmaXJzdCwgJHNlY29uZCk7XG5cbiAgLy8gU2V0IENvbnRleHRcbiAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQobWluLSN7JGZlYXR1cmV9LCAkbWluKTtcbiAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQobWF4LSN7JGZlYXR1cmV9LCAkbWF4KTtcblxuICAvLyBNYWtlIHRoZW0gRU1zIGlmIG5lZWQgYmVcbiAgQGlmIChicmVha3BvaW50LWdldCgndG8gZW1zJykgPT0gdHJ1ZSkge1xuICAgICRtaW46IGJyZWFrcG9pbnQtdG8tYmFzZS1lbSgkbWluKTtcbiAgICAkbWF4OiBicmVha3BvaW50LXRvLWJhc2UtZW0oJG1heCk7XG4gIH1cblxuICBAcmV0dXJuICcobWluLSN7JGZlYXR1cmV9OiAjeyRtaW59KSBhbmQgKG1heC0jeyRmZWF0dXJlfTogI3skbWF4fSknO1xufVxuIiwiQGltcG9ydCBcInJlc29sdXRpb24vcmVzb2x1dGlvblwiO1xuXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1idWlsZC1yZXNvbHV0aW9uKCRxdWVyeS1wcmludCwgJHF1ZXJ5LXJlc29sdXRpb24sICRlbXB0eS1tZWRpYSwgJGZpcnN0KSB7XG4gICRsZWFkZXI6ICcnO1xuICAvLyBJZiB3ZSdyZSBmb3JjaW5nXG4gIEBpZiBub3QgKCRlbXB0eS1tZWRpYSkgb3Igbm90ICgkZmlyc3QpIHtcbiAgICAkbGVhZGVyOiAnYW5kICc7XG4gIH1cblxuICBAaWYgYnJlYWtwb2ludC1nZXQoJ3RyYW5zZm9ybSByZXNvbHV0aW9ucycpIGFuZCAkcXVlcnktcmVzb2x1dGlvbiB7XG4gICAgJHJlc29sdXRpb25zOiBicmVha3BvaW50LW1ha2UtcmVzb2x1dGlvbnMoJHF1ZXJ5LXJlc29sdXRpb24pO1xuICAgICRsZW5ndGg6IGxlbmd0aCgkcmVzb2x1dGlvbnMpO1xuICAgICRxdWVyeS1ob2xkZXI6ICcnO1xuXG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICRxdWVyeTogJyN7JHF1ZXJ5LXByaW50fSAjeyRsZWFkZXJ9I3tudGgoJHJlc29sdXRpb25zLCAkaSl9JztcbiAgICAgIEBpZiAkaSA9PSAxIHtcbiAgICAgICAgJHF1ZXJ5LWhvbGRlcjogJHF1ZXJ5O1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkcXVlcnktaG9sZGVyOiAnI3skcXVlcnktaG9sZGVyfSwgI3skcXVlcnl9JztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAcmV0dXJuICRxdWVyeS1ob2xkZXI7XG4gIH1cbiAgQGVsc2Uge1xuICAgIC8vIFJldHVybiB3aXRoIGF0dGFjaGVkIHJlc29sdXRpb25cbiAgICBAcmV0dXJuICRxdWVyeS1wcmludDtcbiAgfVxufVxuIiwiQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWFrZS1yZXNvbHV0aW9ucygkcmVzb2x1dGlvbikge1xuICAkbGVuZ3RoOiBsZW5ndGgoJHJlc29sdXRpb24pO1xuXG4gICRvdXRwdXQ6ICgpO1xuXG4gIEBpZiAkbGVuZ3RoID09IDIge1xuICAgICRmZWF0dXJlOiAnJztcbiAgICAkdmFsdWU6ICcnO1xuXG4gICAgLy8gRmluZCB3aGljaCBpcyBudW1iZXJcbiAgICBAaWYgdHlwZS1vZihudGgoJHJlc29sdXRpb24sIDEpKSA9PSAnbnVtYmVyJyB7XG4gICAgICAkdmFsdWU6IG50aCgkcmVzb2x1dGlvbiwgMSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICR2YWx1ZTogbnRoKCRyZXNvbHV0aW9uLCAyKTtcbiAgICB9XG5cbiAgICAvLyBEZXRlcm1pbmUgbWluL21heC9zdGFuZGFyZFxuICAgIEBpZiBpbmRleCgkcmVzb2x1dGlvbiwgJ21pbi1yZXNvbHV0aW9uJykge1xuICAgICAgJGZlYXR1cmU6ICdtaW4tJztcbiAgICB9XG4gICAgQGVsc2UgaWYgaW5kZXgoJHJlc29sdXRpb24sICdtYXgtcmVzb2x1dGlvbicpIHtcbiAgICAgICRmZWF0dXJlOiAnbWF4LSc7XG4gICAgfVxuXG4gICAgJHN0YW5kYXJkOiAnKCN7JGZlYXR1cmV9cmVzb2x1dGlvbjogI3skdmFsdWV9KSc7XG5cbiAgICAvLyBJZiB3ZSdyZSBub3QgZGVhbGluZyB3aXRoIGRwcHgsXG4gICAgQGlmIHVuaXQoJHZhbHVlKSAhPSAnZHBweCcge1xuICAgICAgJGJhc2U6IDk2ZHBpO1xuICAgICAgQGlmIHVuaXQoJHZhbHVlKSA9PSAnZHBjbScge1xuICAgICAgICAkYmFzZTogMjQzLjg0ZHBjbTtcbiAgICAgIH1cbiAgICAgIC8vIFdyaXRlIG91dCBmZWF0dXJlIHRlc3RzXG4gICAgICAkd2Via2l0OiAnJztcbiAgICAgICRtb3o6ICcnO1xuICAgICAgJHdlYmtpdDogJygtd2Via2l0LSN7JGZlYXR1cmV9ZGV2aWNlLXBpeGVsLXJhdGlvOiAjeyR2YWx1ZSAvICRiYXNlfSknO1xuICAgICAgJG1vejogJygjeyRmZWF0dXJlfS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAjeyR2YWx1ZSAvICRiYXNlfSknO1xuICAgICAgLy8gQXBwZW5kIHRvIG91dHB1dFxuICAgICAgJG91dHB1dDogYXBwZW5kKCRvdXRwdXQsICRzdGFuZGFyZCwgc3BhY2UpO1xuICAgICAgJG91dHB1dDogYXBwZW5kKCRvdXRwdXQsICR3ZWJraXQsIHNwYWNlKTtcbiAgICAgICRvdXRwdXQ6IGFwcGVuZCgkb3V0cHV0LCAkbW96LCBzcGFjZSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICR3ZWJraXQ6ICcnO1xuICAgICAgJG1vejogJyc7XG4gICAgICAkd2Via2l0OiAnKC13ZWJraXQtI3skZmVhdHVyZX1kZXZpY2UtcGl4ZWwtcmF0aW86ICN7JHZhbHVlIC8gMWRwcHh9KSc7XG4gICAgICAkbW96OiAnKCN7JGZlYXR1cmV9LW1vei1kZXZpY2UtcGl4ZWwtcmF0aW86ICN7JHZhbHVlIC8gMWRwcHh9KSc7XG4gICAgICAkZmFsbGJhY2s6ICcoI3skZmVhdHVyZX1yZXNvbHV0aW9uOiAjeyR2YWx1ZSAvIDFkcHB4ICogOTZkcGl9KSc7XG4gICAgICAvLyBBcHBlbmQgdG8gb3V0cHV0XG4gICAgICAkb3V0cHV0OiBhcHBlbmQoJG91dHB1dCwgJHN0YW5kYXJkLCBzcGFjZSk7XG4gICAgICAkb3V0cHV0OiBhcHBlbmQoJG91dHB1dCwgJHdlYmtpdCwgc3BhY2UpO1xuICAgICAgJG91dHB1dDogYXBwZW5kKCRvdXRwdXQsICRtb3osIHNwYWNlKTtcbiAgICAgICRvdXRwdXQ6IGFwcGVuZCgkb3V0cHV0LCAkZmFsbGJhY2ssIHNwYWNlKTtcbiAgICB9XG5cbiAgfVxuXG4gIEByZXR1cm4gJG91dHB1dDtcbn1cbiIsIkBmdW5jdGlvbiBicmVha3BvaW50LW5vLXF1ZXJ5KCRxdWVyeSkge1xuICBAaWYgdHlwZS1vZigkcXVlcnkpID09ICdsaXN0JyB7XG4gICAgJGtleXdvcmQ6IG50aCgkcXVlcnksIDEpO1xuXG4gICAgQGlmIHR5cGUtb2YoJGtleXdvcmQpID09ICdzdHJpbmcnIGFuZCAoJGtleXdvcmQgPT0gJ25vLXF1ZXJ5JyBvciAka2V5d29yZCA9PSAnbm8gcXVlcnknIG9yICRrZXl3b3JkID09ICdmYWxsYmFjaycpIHtcbiAgICAgIEByZXR1cm4gbnRoKCRxdWVyeSwgMik7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIGZhbHNlO1xuICB9XG59XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIERlZmF1bHQgdGhlIEJyZWFrcG9pbnRzIHZhcmlhYmxlXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRicmVha3BvaW50czogKCkgIWRlZmF1bHQ7XG4kQlJFQUtQT0lOVFM6ICgpICFkZWZhdWx0O1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFJlc3BvbmQtdG8gQVBJIE1peGluXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBtaXhpbiByZXNwb25kLXRvKCRjb250ZXh0LCAkbm8tcXVlcnk6IGZhbHNlKSB7XG4gIEBpZiBsZW5ndGgoJGJyZWFrcG9pbnRzKSA+IDAgYW5kIGxlbmd0aCgkQlJFQUtQT0lOVFMpID09IDAge1xuICAgIEB3YXJuIFwiSW4gb3JkZXIgdG8gYXZvaWQgdmFyaWFibGUgbmFtZXNwYWNlIGNvbGxpc2lvbnMsIHdlIGhhdmUgdXBkYXRlZCB0aGUgd2F5IHRvIGFkZCBicmVha3BvaW50cyBmb3IgcmVzcG9uZC10by4gUGxlYXNlIGNoYW5nZSBhbGwgaW5zdGFuY2VzIG9mIGAkYnJlYWtwb2ludHM6IGFkZC1icmVha3BvaW50KClgIHRvIGBAaW5jbHVkZSBhZGQtYnJlYWtwb2ludCgpYC4gVGhlIGBhZGQtYnJlYWtwb2ludCgpYCBmdW5jdGlvbiB3aWxsIGJlIGRlcHJlY2F0ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS5cIjtcbiAgICAkQlJFQUtQT0lOVFM6ICRicmVha3BvaW50cyAhZ2xvYmFsO1xuICAgICRicmVha3BvaW50czogKCkgIWdsb2JhbDtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRCUkVBS1BPSU5UUykgIT0gJ21hcCcge1xuICAgIC8vIEp1c3QgaW4gY2FzZSBzb21lb25lIHdyaXRlcyBnaWJiZXJpc2ggdG8gdGhlICRicmVha3BvaW50cyB2YXJpYWJsZS5cbiAgICBAd2FybiBcIllvdXIgYnJlYWtwb2ludHMgYXJlbid0IGEgbWFwISBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3NudWd1Zy9yZXNwb25kLXRvI2FwaSBpZiB5b3UnZCBsaWtlIGEgcmVtaW5kZXIgb24gaG93IHRvIHVzZSBSZXNwb25kLXRvXCI7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbiAgQGVsc2UgaWYgbWFwLWhhcy1rZXkoJEJSRUFLUE9JTlRTLCAkY29udGV4dCkge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWFwLWdldCgkQlJFQUtQT0lOVFMsICRjb250ZXh0KSwgJG5vLXF1ZXJ5KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgbm90IG1hcC1oYXMta2V5KCRCUkVBS1BPSU5UUywgJGNvbnRleHQpIHtcbiAgICBAd2FybiBcImAjeyRjb250ZXh0fWAgaXNuJ3QgYSBkZWZpbmVkIGJyZWFrcG9pbnQhIFBsZWFzZSBhZGQgaXQgdXNpbmcgYCRicmVha3BvaW50czogYWRkLWJyZWFrcG9pbnQoYCN7JGNvbnRleHR9YCwgJHZhbHVlKTtgXCI7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEB3YXJuIFwiWW91IGhhdmVuJ3QgY3JlYXRlZCBhbnkgYnJlYWtwb2ludHMgeWV0ISBNYWtlIHNvbWUgYWxyZWFkeSEgU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9zbnVndWcvcmVzcG9uZC10byNhcGkgaWYgeW91J2QgbGlrZSBhIHJlbWluZGVyIG9uIGhvdyB0byB1c2UgUmVzcG9uZC10b1wiO1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQWRkIEJyZWFrcG9pbnQgdG8gQnJlYWtwb2ludHNcbi8vIFRPRE86IFJlbW92ZSBmdW5jdGlvbiBpbiBuZXh0IHJlbGVhc2Vcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGFkZC1icmVha3BvaW50KCRuYW1lLCAkYmtwdCwgJG92ZXJ3cml0ZTogZmFsc2UpIHtcbiAgJG91dHB1dDogKCRuYW1lOiAkYmtwdCk7XG5cbiAgQGlmIGxlbmd0aCgkYnJlYWtwb2ludHMpID09IDAge1xuICAgIEByZXR1cm4gJG91dHB1dDtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJG5hbWUpIGFuZCAkb3ZlcndyaXRlICE9IHRydWUge1xuICAgICAgQHdhcm4gXCJZb3UgYWxyZWFkeSBoYXZlIGEgYnJlYWtwb2ludCBuYW1lZCBgI3skbmFtZX1gLCBwbGVhc2UgY2hvb3NlIGFub3RoZXIgYnJlYWtwb2ludCBuYW1lLCBvciBwYXNzIGluIGAkb3ZlcndyaXRlOiB0cnVlYCB0byBvdmVyd3JpdGUgdGhlIHByZXZpb3VzIGJyZWFrcG9pbnQuXCI7XG4gICAgICBAcmV0dXJuICRicmVha3BvaW50cztcbiAgICB9XG4gICAgQGVsc2UgaWYgbm90IG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJG5hbWUpIG9yICRvdmVyd3JpdGUgPT0gdHJ1ZSB7XG4gICAgICBAcmV0dXJuIG1hcC1tZXJnZSgkYnJlYWtwb2ludHMsICRvdXRwdXQpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gYWRkLWJyZWFrcG9pbnQoJG5hbWUsICRia3B0LCAkb3ZlcndyaXRlOiBmYWxzZSkge1xuICAkb3V0cHV0OiAoJG5hbWU6ICRia3B0KTtcblxuICBAaWYgbGVuZ3RoKCRCUkVBS1BPSU5UUykgPT0gMCB7XG4gICAgJEJSRUFLUE9JTlRTOiAkb3V0cHV0ICFnbG9iYWw7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkQlJFQUtQT0lOVFMsICRuYW1lKSBhbmQgJG92ZXJ3cml0ZSAhPSB0cnVlIHtcbiAgICAgIEB3YXJuIFwiWW91IGFscmVhZHkgaGF2ZSBhIGJyZWFrcG9pbnQgbmFtZWQgYCN7JG5hbWV9YCwgcGxlYXNlIGNob29zZSBhbm90aGVyIGJyZWFrcG9pbnQgbmFtZSwgb3IgcGFzcyBpbiBgJG92ZXJ3cml0ZTogdHJ1ZWAgdG8gb3ZlcndyaXRlIHRoZSBwcmV2aW91cyBicmVha3BvaW50LlwiO1xuICAgICAgJEJSRUFLUE9JTlRTOiAkQlJFQUtQT0lOVFMgIWdsb2JhbDtcbiAgICB9XG4gICAgQGVsc2UgaWYgbm90IG1hcC1oYXMta2V5KCRCUkVBS1BPSU5UUywgJG5hbWUpIG9yICRvdmVyd3JpdGUgPT0gdHJ1ZSB7XG4gICAgICAkQlJFQUtQT0lOVFM6IG1hcC1tZXJnZSgkQlJFQUtQT0lOVFMsICRvdXRwdXQpICFnbG9iYWw7XG4gICAgfVxuICB9XG59IiwiQG1peGluIGxlZ2FjeS1zZXR0aW5ncy13YXJuaW5nIHtcbiAgJGxlZ2FjeVZhcnM6IChcbiAgICAnZGVmYXVsdC1tZWRpYSc6ICdkZWZhdWx0IG1lZGlhJyxcbiAgICAnZGVmYXVsdC1mZWF0dXJlJzogJ2RlZmF1bHQgZmVhdHVyZScsXG4gICAgJ2ZvcmNlLW1lZGlhLWFsbCc6ICdmb3JjZSBhbGwgbWVkaWEgdHlwZScsXG4gICAgJ3RvLWVtcyc6ICd0byBlbXMnLFxuICAgICdyZXNvbHV0aW9ucyc6ICd0cmFuc2Zvcm0gcmVzb2x1dGlvbnMnLFxuICAgICduby1xdWVyaWVzJzogJ25vIHF1ZXJpZXMnLFxuICAgICduby1xdWVyeS1mYWxsYmFja3MnOiAnbm8gcXVlcnkgZmFsbGJhY2tzJyxcbiAgICAnYmFzZS1mb250LXNpemUnOiAnYmFzZSBmb250IHNpemUnLFxuICAgICdsZWdhY3ktc3ludGF4JzogJ2xlZ2FjeSBzeW50YXgnXG4gICk7XG5cbiAgQGVhY2ggJGxlZ2FjeSwgJG5ldyBpbiAkbGVnYWN5VmFycyB7XG4gICAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoJ2JyZWFrcG9pbnQtJyArICRsZWdhY3kpIHtcbiAgICAgIEB3YXJuIFwiSW4gb3JkZXIgdG8gYXZvaWQgdmFyaWFibGUgbmFtc3BhY2UgY29sbGlzaW9ucywgd2UgaGF2ZSB1cGRhdGVkIHRoZSB3YXkgdG8gY2hhbmdlIHNldHRpbmdzIGZvciBCcmVha3BvaW50LiBQbGVhc2UgY2hhbmdlIGFsbCBpbnN0YW5jZXMgb2YgYCRicmVha3BvaW50LSN7JGxlZ2FjeX06IHt7c2V0dGluZ319YCB0byBgQGluY2x1ZGUgYnJlYWtwb2ludC1zZXQoJyN7JG5ld30nLCB7e3NldHRpbmd9fSlgLiBWYXJpYWJsZSBzZXR0aW5ncywgYXMgd2VsbCBhcyB0aGlzIHdhcm5pbmcgd2lsbCBiZSBkZXByZWNhdGVkIGluIGEgZnV0dXJlIHJlbGVhc2UuXCJcbiAgICB9XG4gIH07XG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIC8vIEhhbmQgY29ycmVjdCBlYWNoIHNldHRpbmdcbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKCdicmVha3BvaW50LWRlZmF1bHQtbWVkaWEnKSBhbmQgJGJyZWFrcG9pbnQtZGVmYXVsdC1tZWRpYSAhPSBicmVha3BvaW50LWdldCgnZGVmYXVsdCBtZWRpYScpIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50LXNldCgnZGVmYXVsdCBtZWRpYScsICRicmVha3BvaW50LWRlZmF1bHQtbWVkaWEpO1xuICB9XG4gIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKCdicmVha3BvaW50LWRlZmF1bHQtZmVhdHVyZScpIGFuZCAkYnJlYWtwb2ludC1kZWZhdWx0LWZlYXR1cmUgIT0gYnJlYWtwb2ludC1nZXQoJ2RlZmF1bHQgZmVhdHVyZScpIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50LXNldCgnZGVmYXVsdCBmZWF0dXJlJywgJGJyZWFrcG9pbnQtZGVmYXVsdC1mZWF0dXJlKTtcbiAgfVxuICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygnYnJlYWtwb2ludC1mb3JjZS1tZWRpYS1hbGwnKSBhbmQgJGJyZWFrcG9pbnQtZm9yY2UtbWVkaWEtYWxsICE9IGJyZWFrcG9pbnQtZ2V0KCdmb3JjZSBhbGwgbWVkaWEgdHlwZScpIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50LXNldCgnZm9yY2UgYWxsIG1lZGlhIHR5cGUnLCAkYnJlYWtwb2ludC1mb3JjZS1tZWRpYS1hbGwpO1xuICB9XG4gIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKCdicmVha3BvaW50LXRvLWVtcycpIGFuZCAkYnJlYWtwb2ludC10by1lbXMgIT0gYnJlYWtwb2ludC1nZXQoJ3RvIGVtcycpIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50LXNldCgndG8gZW1zJywgJGJyZWFrcG9pbnQtdG8tZW1zKTtcbiAgfVxuICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygnYnJlYWtwb2ludC1yZXNvbHV0aW9ucycpIGFuZCAkYnJlYWtwb2ludC1yZXNvbHV0aW9ucyAhPSBicmVha3BvaW50LWdldCgndHJhbnNmb3JtIHJlc29sdXRpb25zJykge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQtc2V0KCd0cmFuc2Zvcm0gcmVzb2x1dGlvbnMnLCAkYnJlYWtwb2ludC1yZXNvbHV0aW9ucyk7XG4gIH1cbiAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoJ2JyZWFrcG9pbnQtbm8tcXVlcmllcycpIGFuZCAkYnJlYWtwb2ludC1uby1xdWVyaWVzICE9IGJyZWFrcG9pbnQtZ2V0KCdubyBxdWVyaWVzJykge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQtc2V0KCdubyBxdWVyaWVzJywgJGJyZWFrcG9pbnQtbm8tcXVlcmllcyk7XG4gIH1cbiAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoJ2JyZWFrcG9pbnQtbm8tcXVlcnktZmFsbGJhY2tzJykgYW5kICRicmVha3BvaW50LW5vLXF1ZXJ5LWZhbGxiYWNrcyAhPSBicmVha3BvaW50LWdldCgnbm8gcXVlcnkgZmFsbGJhY2tzJykge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQtc2V0KCdubyBxdWVyeSBmYWxsYmFja3MnLCAkYnJlYWtwb2ludC1uby1xdWVyeS1mYWxsYmFja3MpO1xuICB9XG4gIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKCdicmVha3BvaW50LWJhc2UtZm9udC1zaXplJykgYW5kICRicmVha3BvaW50LWJhc2UtZm9udC1zaXplICE9IGJyZWFrcG9pbnQtZ2V0KCdiYXNlIGZvbnQgc2l6ZScpIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50LXNldCgnYmFzZSBmb250IHNpemUnLCAkYnJlYWtwb2ludC1iYXNlLWZvbnQtc2l6ZSk7XG4gIH1cbiAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoJ2JyZWFrcG9pbnQtbGVnYWN5LXN5bnRheCcpIGFuZCAkYnJlYWtwb2ludC1sZWdhY3ktc3ludGF4ICE9IGJyZWFrcG9pbnQtZ2V0KCdsZWdhY3kgc3ludGF4Jykge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQtc2V0KCdsZWdhY3kgc3ludGF4JywgJGJyZWFrcG9pbnQtbGVnYWN5LXN5bnRheCk7XG4gIH1cbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIERlZmF1bHQgU2V0dGluZ3Ncbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJFNpbmd1bGFyaXR5LVNldHRpbmdzOiAoXG4gICdncmlkcyc6ICgtMXB4OiAxMiksXG4gICdndXR0ZXJzJzogKC0xcHg6IC4yNSksXG4gICdndXR0ZXIgc3R5bGVzJzogKC0xcHg6ICdvcHBvc2l0ZScpLFxuICAnb3V0cHV0JzogJ2lzb2xhdGlvbicsXG4gICdkaXJlY3Rpb24nOiAnbHRyJyxcbiAgJ21vYmlsZSBmaXJzdCc6IHRydWUsXG4gICdpbmNsdWRlIGJvcmRlciBib3gnOiBmYWxzZSxcbiAgJ2luY2x1ZGUgY2xlYXJmaXgnOiBmYWxzZSxcbiAgJ2JhY2tncm91bmQgZ3JpZCBjb2xvcic6IGNob2NvbGF0ZSxcbiAgJ2FzeW1tZXRyaWMgb3V0cHV0JzogJ2lzb2xhdGlvbicsXG4gICdjYWxjIGluY2x1ZGUgbWluLXdpZHRoJzogdHJ1ZSxcbiAgJ2RlYnVnJzogZmFsc2Vcbik7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gVXNlciBTZXR0aW5nc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kc2luZ3VsYXJpdHk6ICgpICFkZWZhdWx0O1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEltcG9ydCBHZW5lcmFsIEhlbHBlcnNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCBcInNpbmd1bGFyaXR5Z3MvaGVscGVyc1wiO1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEltcG9ydCBMYW5ndWFnZSBIZWxwZXJzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBpbXBvcnQgXCJzaW5ndWxhcml0eWdzL2xhbmd1YWdlXCI7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSW1wb3J0IE1hdGhcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCBcInNpbmd1bGFyaXR5Z3MvbWF0aFwiO1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEltcG9ydCBHcmlkIEhlbHBlcnNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCBcInNpbmd1bGFyaXR5Z3MvZ3JpZHNcIjtcblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBJbXBvcnQgR3V0dGVycyBIZWxwZXJzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBpbXBvcnQgXCJzaW5ndWxhcml0eWdzL2d1dHRlcnNcIjtcblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBJbXBvcnQgR3V0dGVyIFN0eWxlc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AaW1wb3J0IFwic2luZ3VsYXJpdHlncy9ndXR0ZXItc3R5bGVzXCI7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSW1wb3J0IEFQSXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCBcInNpbmd1bGFyaXR5Z3MvYXBpXCI7IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBTZXR0aW5nIEhlbHBlcnNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCBcImhlbHBlcnMvc2V0dGluZ3NcIjtcblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBDb2RlIEhlbHBlcnNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCBcImhlbHBlcnMvZmluZFwiO1xuQGltcG9ydCBcImhlbHBlcnMvc2Fzcy1saXN0c1wiO1xuQGltcG9ydCBcImhlbHBlcnMvY29sdW1uc1wiO1xuQGltcG9ydCBcImhlbHBlcnMvc3Bhbi1zaGFyZWRcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2RpcmVjdGlvbnNcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3NvcnRcIjtcblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBVSSBIZWxwZXJzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBpbXBvcnQgXCJoZWxwZXJzL2JhY2tncm91bmQtZ3JpZFwiO1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIExheW91dCBIZWxwZXJzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBpbXBvcnQgXCJoZWxwZXJzL2xheW91dFwiOyIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSGFzIFNldHRpbmdcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIHNncy1oYXMoJHNldHRpbmcpIHtcbiAgQGlmIG1hcC1oYXMta2V5KCRzaW5ndWxhcml0eSwgJHNldHRpbmcpIHtcbiAgICBAcmV0dXJuIHRydWU7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBHZXQgU2V0dGluZ3Ncbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIHNncy1nZXQoJHNldHRpbmcpIHtcbiAgQGlmIHNncy1oYXMoJHNldHRpbmcpIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJHNpbmd1bGFyaXR5LCAkc2V0dGluZyk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gbWFwLWdldCgkU2luZ3VsYXJpdHktU2V0dGluZ3MsICRzZXR0aW5nKTtcbiAgfVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFNldCBTZXR0aW5nc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gc2dzLXNldCgkc2V0dGluZywgJHZhbHVlKSB7XG4gIEBpZiAoc3RyLWluZGV4KCRzZXR0aW5nLCAnLScpIG9yIHN0ci1pbmRleCgkc2V0dGluZywgJ18nKSkgYW5kIHN0ci1pbmRleCgkc2V0dGluZywgJyAnKSA9PSBudWxsIHtcbiAgICBAd2FybiBcIldvcmRzIGluIFNpbmd1bGFyaXR5IHNldHRpbmdzIHNob3VsZCBiZSBzcGFjZXMsIG5vdCBkYXNoZXMgb3IgdW5kZXJzY29yZXMuIFBsZWFzZSByZXBsYWNlIGRhc2hlcyBhbmQgdW5kZXJzY29yZXMgYmV0d2VlbiB3b3JkcyB3aXRoIHNwYWNlcy4gU2V0dGluZ3Mgd2lsbCBub3Qgd29yayBhcyBleHBlY3RlZCB1bnRpbCBjaGFuZ2VkLlwiO1xuICB9XG4gICRzaW5ndWxhcml0eTogbWFwLW1lcmdlKCRzaW5ndWxhcml0eSwgKCRzZXR0aW5nOiAkdmFsdWUpKSAhZ2xvYmFsO1xuICBAcmV0dXJuIHRydWU7XG59XG5cbkBtaXhpbiBzZ3MtY2hhbmdlKCRzZXR0aW5nLCAkdmFsdWUpIHtcbiAgJHNncy1jaGFuZ2U6IHNncy1zZXQoJHNldHRpbmcsICR2YWx1ZSk7XG59XG5cbkBtaXhpbiBzZ3Mtc2V0KCRzZXR0aW5nLCAkdmFsdWUpIHtcbiAgQGluY2x1ZGUgc2dzLWNoYW5nZSgkc2V0dGluZywgJHZhbHVlKTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBSZW1vdmUgU2V0dGluZ1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gc2dzLXJlc2V0KCRzZXR0aW5ncy4uLikge1xuICBAaWYgbGVuZ3RoKCRzZXR0aW5ncykgPT0gMSB7XG4gICAgJHNldHRpbmdzOiBudGgoJHNldHRpbmdzLCAxKTtcbiAgfVxuXG4gIEBlYWNoICRzZXR0aW5nIGluICRzZXR0aW5ncyB7XG4gICAgJHNpbmd1bGFyaXR5OiBtYXAtcmVtb3ZlKCRzaW5ndWxhcml0eSwgJHNldHRpbmcpICFnbG9iYWw7XG4gIH1cbiAgQHJldHVybiB0cnVlO1xufVxuXG5AbWl4aW4gc2dzLXJlc2V0KCRzZXR0aW5ncy4uLikge1xuICAkc2dzLXJlc2V0OiBzZ3MtcmVzZXQoJHNldHRpbmdzKTtcbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEZpbmQgT2JqZWN0IEtleXNcbi8vXG4vLyBSZXR1cm5zXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBmaW5kLW9iamVjdC1rZXlzKCRoYXlzdGFjaykge1xuICAkS2V5czogbWFwLWtleXMoJGhheXN0YWNrKTtcbiAgJExpc3Q6ICgpO1xuICBAZWFjaCAkS2V5IGluICRLZXlzIHtcbiAgICBAaWYgJEtleSAhPSAtMXB4IHtcbiAgICAgIEBpZiB1bml0KCRLZXkpID09ICdlbScge1xuICAgICAgICAkS2V5OiAkS2V5IC8gMWVtICogMTZweDtcbiAgICAgIH1cbiAgICAgICRMaXN0OiBhcHBlbmQoJExpc3QsICRLZXkpO1xuICAgIH1cbiAgfVxuICBAcmV0dXJuIHF1aWNrc29ydCgkTGlzdCk7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gRmluZCBPYmplY3Rcbi8vXG4vLyBGaW5kcyByZWxldmFudCBvYmplY3Rcbi8vIE11c3QgYmUgdXNpbmcgQnJlYWtwb2ludCB0byB3b3JrIHByb3Blcmx5XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBmaW5kLW9iamVjdCgkaGF5c3RhY2ssICR1c2VyLW9iamVjdDogbnVsbCkge1xuICAvLyBJZiBhIHVzZXIgb2JqZWN0IGhhcyBiZWVuIHBhc3NlZCBpbiwgYnlwYXNzIHRoZSB3aG9sZSBmdW5jdGlvbiBhbmQganVzdCByZXR1cm4gdGhhdCBvYmplY3QuXG4gIEBpZiAkdXNlci1vYmplY3QgIT0gbnVsbCBhbmQgJHVzZXItb2JqZWN0ICE9IGZhbHNlIHtcbiAgICBAcmV0dXJuICR1c2VyLW9iamVjdDtcbiAgfVxuXG4gICRMZW5ndGg6IGxlbmd0aCgkaGF5c3RhY2spO1xuICAkTW9iaWxlLUZpcnN0OiBzZ3MtZ2V0KCdtb2JpbGUgZmlyc3QnKTtcblxuICAvLyBIYXlzdGFjayBtdXN0IGJlIG1hcFxuICBAaWYgdHlwZS1vZigkaGF5c3RhY2spICE9ICdtYXAnIHtcbiAgICBAd2FybiBcIkRFUFJFQ0FUSU9OOiBJbiBvcmRlciB0byByZW1vdmUgZ2xvYmFsIHZhcmlhYmxlIG5hbWluZyBjb25mbGljdHMsIFNpbmd1bGFyaXR5J3Mgc2V0dGluZ3MgaGF2ZSBiZWVuIG1vdmVkIGludG8gdGhlIHNpbmdsZSBgJHNpbmd1bGFyaXR5YCB2YXJpYWJsZS4gUGxlYXNlIHJlZmVyIHRvIG91ciBkb2N1bWVudGF0aW9uIChodHRwczovL2dpdGh1Yi5jb20vVGVhbS1TYXNzL1Npbmd1bGFyaXR5L3dpa2kpIG9uIGhvdyB0byB1cGRhdGUgeW91ciBzZXR0aW5ncy4gSW4gdGhlIG5leHQgdmVyc2lvbiBvZiBTaW5ndWxhcml0eSwgdGhpcyB3YXJuaW5nIHdpbGwgYmUgcmVtb3ZlZC4gI3tudGgoJGhheXN0YWNrLCAxKX0gaGFzIGJlZW4gcmV0dXJuZWQuXCI7XG4gICAgQHJldHVybiBudGgoJGhheXN0YWNrLCAxKTtcbiAgfVxuXG4gIC8vIEdyYWIgQnJlYWtwb2ludCBDb250ZXh0XG4gIEBpZiBub3QgZnVuY3Rpb24tZXhpc3RzKGJyZWFrcG9pbnQtZ2V0LWNvbnRleHQpIHtcbiAgICBAd2FybiBcIlJlc3BvbnNpdmUgY29udGV4dHMgcmVxdWlyZSBCcmVha3BvaW50IChodHRwczovL2dpdGh1Yi5jb20vVGVhbS1TYXNzL2JyZWFrcG9pbnQpLiBQbGVhc2UgZW5zdXJlIHRoYXQgQnJlYWtwb2ludCBpcyBpbXBvcnRlZCBhbmQgYXZhaWxhYmxlIGZvciBTaW5ndWxhcml0eSB0byB1c2UuIEZpcnN0IGl0ZW0gdXNlZC5cIjtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJGhheXN0YWNrLCAtMXB4KTtcbiAgfVxuICAvLyBHZXQgQnJlYWtwb2ludCBDb250ZXh0c1xuICAkUXVlcnktTWluOiBicmVha3BvaW50LWdldC1jb250ZXh0KCdtaW4td2lkdGgnKTtcbiAgJFF1ZXJ5LU1heDogYnJlYWtwb2ludC1nZXQtY29udGV4dCgnbWF4LXdpZHRoJyk7XG5cbiAgQGlmIGxlbmd0aCgkUXVlcnktTWluKSA9PSAxIHtcbiAgICAkUXVlcnktTWluOiBudGgoJFF1ZXJ5LU1pbiwgMSk7XG4gIH1cbiAgQGVsc2UgaWYgbGVuZ3RoKCRRdWVyeS1NaW4pID4gMSB7XG4gICAgQHdhcm4gXCJSZXNwb25zaXZlIGNvbnRleHRzIGFyZSBub3QgYXZhaWxhYmxlIGZvciBgb3JgIHF1ZXJpZXMgYXMgd2hpY2ggcXVlcnkgdG8gdXNlIGlzIGFtYmlndW91cy4gUGxlYXNlIG9ubHkgdXNlIHNpbmdsZSBjb250ZXh0IHF1ZXJpZXMuIERlZmF1bHQgY29udGV4dCBpcyB1c2VkLlwiO1xuICAgIEByZXR1cm4gbWFwLWdldCgkaGF5c3RhY2ssIC0xcHgpO1xuICB9XG5cblxuICBAaWYgJExlbmd0aCA+IDEge1xuICAgIEBpZiBsZW5ndGgoJFF1ZXJ5LU1heCkgPT0gMSB7XG4gICAgICAkUXVlcnktTWF4OiBudGgoJFF1ZXJ5LU1heCwgMSk7XG4gICAgfVxuICAgIEBlbHNlIGlmIGxlbmd0aCgkUXVlcnktTWF4KSA+IDEge1xuICAgICAgQHdhcm4gXCJSZXNwb25zaXZlIGNvbnRleHRzIGFyZSBub3QgYXZhaWxhYmxlIGZvciBgb3JgIHF1ZXJpZXMgYXMgd2hpY2ggcXVlcnkgdG8gdXNlIGlzIGFtYmlndW91cy4gUGxlYXNlIG9ubHkgdXNlIHNpbmdsZSBjb250ZXh0IHF1ZXJpZXMuIERlZmF1bHQgY29udGV4dCBpcyB1c2VkLlwiO1xuICAgICAgQHJldHVybiBtYXAtZ2V0KCRoYXlzdGFjaywgLTFweCk7XG4gICAgfVxuXG4gICAgLy8gSWYgdGhlcmUgaXMgbm8gbWluIG9yIG1heCBjb250ZXh0LCByZXR1cm4gZmlyc3QgaXRlbVxuICAgIEBpZiAkUXVlcnktTWluID09IGZhbHNlIGFuZCAkUXVlcnktTWF4ID09IGZhbHNlIHtcbiAgICAgICRSRVRVUk46IG1hcC1nZXQoJGhheXN0YWNrLCAtMXB4KTtcbiAgICAgIEByZXR1cm4gJFJFVFVSTjtcbiAgICB9XG5cbiAgICAvLyBDb252ZXJ0IHRvIFBYXG4gICAgQGlmICRRdWVyeS1NaW4gIT0gZmFsc2UgYW5kICB1bml0KCRRdWVyeS1NaW4pID09ICdlbScge1xuICAgICAgJFF1ZXJ5LU1pbjogJFF1ZXJ5LU1pbiAvIDFlbSAqIDE2cHg7XG4gICAgfVxuICAgIEBpZiAkUXVlcnktTWF4ICE9IGZhbHNlIGFuZCB1bml0KCRRdWVyeS1NYXgpID09ICdlbScge1xuICAgICAgJFF1ZXJ5LU1heDogJFF1ZXJ5LU1heCAvIDFlbSAqIDE2cHg7XG4gICAgfVxuXG4gICAgJEZpbmQtSGF5c3RhY2s6IGZpbmQtb2JqZWN0LWtleXMoJGhheXN0YWNrKTtcbiAgICAkUmV2ZXJzZS1IYXlzdGFjazogcmV2ZXJzZSgkRmluZC1IYXlzdGFjayk7XG5cbiAgICAkU21hbGxlc3Q6IG50aCgkRmluZC1IYXlzdGFjaywgMSk7XG4gICAgJExhcmdlc3Q6IG50aCgkUmV2ZXJzZS1IYXlzdGFjaywgMSk7XG4gICAgJENvbnRleHQ6ICRRdWVyeS1NaW47XG5cbiAgICBAaWYgbm90ICRNb2JpbGUtRmlyc3Qge1xuICAgICAgJENvbnRleHQ6ICRRdWVyeS1NYXg7XG4gICAgfVxuXG4gICAgLy8gTG9vcCBvdmVyIGVhY2ggaXRlbSBpbiBDb250ZXh0IHRvIGZpbmQgaWYgYW55IG9mIHRoZSBpdGVtcyBwYXNzLlxuICAgIEBlYWNoICRRdWVyeS1Db250ZXh0IGluICRDb250ZXh0IHtcbiAgICAgIEBpZiAkUXVlcnktQ29udGV4dCAhPSBmYWxzZSB7XG4gICAgICAgIC8vIElmIGl0J3Mgc21hbGxlc3QgdGhhbiB0aGUgc21hbGxlc3QgTVEsIHVzZSB0aGUgMXN0IGdyaWRcbiAgICAgICAgQGlmICRRdWVyeS1Db250ZXh0IDwgJFNtYWxsZXN0IHtcbiAgICAgICAgICAkUkVUVVJOOiBtYXAtZ2V0KCRoYXlzdGFjaywgLTFweCk7XG4gICAgICAgICAgQHJldHVybiAkUkVUVVJOO1xuICAgICAgICB9XG4gICAgICAgIC8vIElmIGl0J3MgbGFyZ2VyIHRoYW4gb3IgZXF1YWwgdG8gdGhlIGxhcmdlc3QgTVEsIHVzZSB0aGUgbGFzdCBncmlkXG4gICAgICAgIEBlbHNlIGlmICRRdWVyeS1Db250ZXh0ID49ICRMYXJnZXN0IHtcbiAgICAgICAgICAkUkVUVVJOOiBtYXAtZ2V0KCRoYXlzdGFjaywgJExhcmdlc3QpO1xuICAgICAgICAgIEByZXR1cm4gJFJFVFVSTjtcbiAgICAgICAgfVxuICAgICAgICAvLyBJZiBpdCdzIGluIGJldHdlZW4gdGhlIHNtYWxsZXN0IGFuZCBsYXJnZXN0LCBnbyBydW4gYSBjaGVjay5cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgIC8vIExvb3AgdGhyb3VnaCBlYWNoIE1RLlxuICAgICAgICAgIEBmb3IgJGogZnJvbSAxIHRocm91Z2ggbGVuZ3RoKCRSZXZlcnNlLUhheXN0YWNrKSB7XG4gICAgICAgICAgICAkUXVlcnk6IG50aCgkUmV2ZXJzZS1IYXlzdGFjaywgJGopO1xuXG4gICAgICAgICAgICAvLyBJZiB0aGUgTVEgaXMgZ3JlYXRoZXIgdGhhbiBvciBlcXVhbCB0byB0aGUgdGhlIE1RIGluIHF1ZXN0aW9uLCB1c2UgaXQhIChtb2JpbGUgZmlyc3QpXG4gICAgICAgICAgICBAaWYgKCRNb2JpbGUtRmlyc3QpIHtcbiAgICAgICAgICAgICAgQGlmICRRdWVyeS1Db250ZXh0ID49ICRRdWVyeSB7XG4gICAgICAgICAgICAgICAgJFJFVFVSTjogbWFwLWdldCgkaGF5c3RhY2ssIG50aCgkUmV2ZXJzZS1IYXlzdGFjaywgJGopKTtcbiAgICAgICAgICAgICAgICBAcmV0dXJuICRSRVRVUk47XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIElmIHRoZSBNUSBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gdGhlIHRoZSBNUSBpbiBxdWVzdGlvbiwgdXNlIGl0ISAobm90IG1vYmlsZSBmaXJzdClcbiAgICAgICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgICAgQGlmICRRdWVyeS1Db250ZXh0IDw9ICRRdWVyeSB7XG4gICAgICAgICAgICAgICAgJFJFVFVSTjogbWFwLWdldCgkaGF5c3RhY2ssIG50aCgkUmV2ZXJzZS1IYXlzdGFjaywgJGopKTtcbiAgICAgICAgICAgICAgICBAcmV0dXJuICRSRVRVUk47XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLy8gQWxsIGVsc2UgZmFpbHMsIHJldHVybiB0aGUgZmlyc3QgaXRlbVxuICBAZWxzZSB7XG4gICAgJFJFVFVSTjogbWFwLWdldCgkaGF5c3RhY2ssIC0xcHgpO1xuICAgIEByZXR1cm4gJFJFVFVSTjtcbiAgfVxufSIsIi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gU2FzcyBMaXN0IEhlbHBlcnNcbi8vXG4vLyAtIGxpc3Qtc3VtKClcbi8vIC0gcXVlcnktbGlzdCgpXG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gRnVuY3Rpb25zXG5cbi8vIFJldHVybiB0aGUgc3VtIG9mIGFsbCBpdGVtcyBpbiBhIGxpc3QuXG4vL1xuLy8gbGlzdC1zdW0oJGxpc3QpXG4vLyAtICRsaXN0ICA6IDxsaXN0PlxuQGZ1bmN0aW9uIGxpc3Qtc3VtKCRsaXN0KSB7XG4gICRzdW06IDA7XG4gIEBlYWNoICRpdGVtIGluICRsaXN0IHtcbiAgICAkc3VtOiAkc3VtICsgJGl0ZW07XG4gIH1cbiAgQHJldHVybiAkc3VtO1xufVxuXG4vLyBSZXR1cm4gbGlzdCBvZiBpbmRleCBsb2NhdGlvbnMgd2hlcmUgYSBxdWVyeSBhcHBlYXJzIGluIGEgbGlzdCxcbi8vIGluY2x1ZGluZyB1bml0IHF1ZXJpZXMuXG4vL1xuLy8gcXVlcnktbGlzdCgkbGlzdCwgJHF1ZXJ5IFssICRtb2RlXSlcbi8vIC0gJGxpc3QgICAgOiA8bGlzdD5cbi8vIC0gJHF1ZXJ5ICAgOiA8YW55dGhpbmc+XG4vLyAtICRtb2RlICAgIDogbm9uZSB8IHVuaXRcbi8vICAgICAgICAgICAgLSBcIm5vbmVcIiAoZGVmYXVsdCkgcnVucyBhIHN0YW5kYXJkIHF1ZXJ5LlxuLy8gICAgICAgICAgICAtIFwidW5pdFwiIGZpbmRzIGFsbCBpdGVtcyB3aXRoIHRoZSBzYW1lIHVuaXQuXG5AZnVuY3Rpb24gcXVlcnktbGlzdChcbiAgJGxpc3QsXG4gICRxdWVyeSxcbiAgJG1vZGU6IG5vbmVcbikge1xuICAkcmV0dXJuOiAoKTtcblxuICAvLyBsb29wIHRocm91Z2ggJGxpc3RcbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBsZW5ndGgoJGxpc3QpIHtcbiAgICBAaWYgJG1vZGUgPT0gdW5pdCB7XG4gICAgICAvLyBpZiB0aGUgbGlzdCBpdGVtIG1hdGNoZXMgdGhlIHF1ZXJ5LCB3cml0ZSB3aGVyZSBpdCBpcyB0byB0aGUgbGlzdC5cbiAgICAgIEBpZiB1bml0KG50aCgkbGlzdCwgJGkpKSA9PSAkcXVlcnkge1xuICAgICAgICAkcmV0dXJuOiBhcHBlbmQoJHJldHVybiwgJGkpO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAvLyBpZiB0aGUgbGlzdCBpdGVtIG1hdGNoZXMgdGhlIHF1ZXJ5LCB3cml0ZSB3aGVyZSBpdCBpcyB0byB0aGUgbGlzdC5cbiAgICAgIEBpZiBudGgobnRoKCRsaXN0LCAkaSksIDEpID09ICRxdWVyeSB7XG4gICAgICAgICRyZXR1cm46IGFwcGVuZCgkcmV0dXJuLCAkaSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gaWYgbm90aGluZyBtYXRjaGVzIHRoZW4gcmV0dXJuIGZhbHNlLlxuICBAaWYgJHJldHVybiA9PSAoKSB7XG4gICAgJHJldHVybjogZmFsc2U7XG4gIH1cblxuICAvLyByZXR1cm4gbGlzdC5cbiAgQHJldHVybiAkcmV0dXJuO1xufVxuXG4vLyBSZXZlcnNlcyBkaXJlY3Rpb24gb2YgYSBsaXN0XG5AZnVuY3Rpb24gcmV2ZXJzZSgkbGlzdCkge1xuICAkbGVuZ3RoOiBsZW5ndGgoJGxpc3QpO1xuICAkcmV0dXJuOiAoKTtcbiAgQGZvciAkaSBmcm9tIDAgdG8gJGxlbmd0aCB7XG4gICAgJHJldHVybjogYXBwZW5kKCRyZXR1cm4sIG50aCgkbGlzdCwgJGxlbmd0aCAtICRpKSk7XG4gIH1cbiAgQHJldHVybiAkcmV0dXJuO1xufSIsIkBmdW5jdGlvbiBlbmQtcm93KCRzcGFuLCAkbG9jYXRpb24sICRjb2x1bW5zKSB7XG4gIEBpZiAkbG9jYXRpb24gPT0gJ2xhc3QnIG9yICRsb2NhdGlvbiA9PSAnb21lZ2EnIHtcbiAgICBAcmV0dXJuIHRydWU7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpZiAkbG9jYXRpb24gKyAoJHNwYW4gLSAxKSA9PSBjb2x1bW4tY291bnQoJGNvbHVtbnMpIHtcbiAgICAgIEByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cbn1cblxuQGZ1bmN0aW9uIHN0YXJ0LXJvdygkbG9jYXRpb24pIHtcbiAgQGlmICRsb2NhdGlvbiA9PSAnZmlyc3QnIG9yICRsb2NhdGlvbiA9PSAnYWxwaGEnIHtcbiAgICBAcmV0dXJuIHRydWU7XG4gIH1cbiAgQGVsc2UgaWYgJGxvY2F0aW9uID09IDEge1xuICAgIEByZXR1cm4gdHJ1ZTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBmYWxzZTtcbiAgfVxufSIsIkBtaXhpbiBzcGFuLXNoYXJlZCB7XG4gICRpbmNsdWRlLWJvcmRlci1ib3g6IHNncy1nZXQoJ2luY2x1ZGUgYm9yZGVyIGJveCcpO1xuICAkaW5jbHVkZS1jbGVhcmZpeDogc2dzLWdldCgnaW5jbHVkZSBjbGVhcmZpeCcpO1xuXG4gIEBpZiAkaW5jbHVkZS1ib3JkZXItYm94IHtcbiAgICBAaWYgbWl4aW4tZXhpc3RzKGJveC1zaXppbmcpIHtcbiAgICAgIEBpbmNsdWRlIGJveC1zaXppbmcoYm9yZGVyLWJveCk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgfVxuICB9XG5cbiAgQGlmICRpbmNsdWRlLWNsZWFyZml4IHtcbiAgICBAaWYgbWl4aW4tZXhpc3RzKGNsZWFyZml4KSB7XG4gICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEZpbmQgT3Bwb3NpdGUgRGlyZWN0aW9uXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBvcHBvc2l0ZS1kaXJlY3Rpb24oJGRpcikge1xuICBAaWYgJGRpciA9PSAnbGVmdCcge1xuICAgIEByZXR1cm4gcmlnaHQ7XG4gIH1cbiAgQGVsc2UgaWYgICRkaXIgPT0gJ3JpZ2h0JyB7XG4gICAgQHJldHVybiBsZWZ0O1xuICB9XG4gIEBlbHNlIGlmICRkaXIgPT0gJ2x0cicge1xuICAgIEByZXR1cm4gcnRsO1xuICB9XG4gIEBlbHNlIGlmICRkaXIgPT0gJ3J0bCcge1xuICAgIEByZXR1cm4gbHRyO1xuICB9XG4gIEBlbHNlIGlmICRkaXIgPT0gJ3RvcCcge1xuICAgIEByZXR1cm4gYm90dG9tO1xuICB9XG4gIEBlbHNlIGlmICRkaXIgPT0gJ2JvdHRvbScge1xuICAgIEByZXR1cm4gdG9wO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAd2FybiBcIiN7JGRpcn0gaXMgbm90IGEgZGlyZWN0aW9uISBNYWtlIHN1cmUgeW91ciBkaXJlY3Rpb24gaXMgYWxsIGxvd2VyY2FzZSFcIjtcbiAgICBAcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gRmluZCBEaXJlY3Rpb24gTmFtZVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gbmFtZWQtZGlyZWN0aW9uKCRkaXIpIHtcbiAgQGlmICRkaXIgPT0gJ2x0cicge1xuICAgIEByZXR1cm4gbGVmdDtcbiAgfVxuICBAZWxzZSBpZiAkZGlyID09ICdydGwnIHtcbiAgICBAcmV0dXJuIHJpZ2h0O1xuICB9XG4gIEBlbHNlIHtcbiAgICBAd2FybiBcIiN7JGRpcn0gaXMgbm90IGEgdmFsaWQgSFRNTCBkaXJlY3Rpb24hIE1ha2Ugc3VyZSB5b3UgYXJlIHVzaW5nIGEgdmFsaWQgSFRNTCBkaXJlY3Rpb25cIjtcbiAgICBAcmV0dXJuIGZhbHNlO1xuICB9XG59IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBRdWlja3NvcnRcbi8vIGh0dHA6Ly9yb3NldHRhY29kZS5vcmcvd2lraS9Tb3J0aW5nX2FsZ29yaXRobXMvUXVpY2tzb3J0XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBxdWlja3NvcnQoJGxpc3QpIHtcblxuICAkUVMtTGVzczogKCk7XG4gICRRUy1FcXVhbDogKCk7XG4gICRRUy1MYXJnZTogKCk7XG5cbiAgJFFTLUxlbmd0aDogbGVuZ3RoKCRsaXN0KTtcblxuICAkUVMtU2VlZDogcm91bmQoJFFTLUxlbmd0aCAvIDIpO1xuXG4gIEBpZiAkUVMtTGVuZ3RoID4gMSB7XG4gICAgJFFTLVNlZWQ6IG50aCgkbGlzdCwgJFFTLVNlZWQpO1xuICAgIEBlYWNoICRJdGVtIGluICRsaXN0IHtcbiAgICAgIEBpZiAkSXRlbSA8ICRRUy1TZWVkIHtcbiAgICAgICAgJFFTLUxlc3M6IGFwcGVuZCgkUVMtTGVzcywgJEl0ZW0pO1xuICAgICAgfVxuICAgICAgQGVsc2UgaWYgJEl0ZW0gPT0gJFFTLVNlZWQge1xuICAgICAgICAkUVMtRXF1YWw6IGFwcGVuZCgkUVMtRXF1YWwsICRJdGVtKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJFFTLUxhcmdlOiBhcHBlbmQoJFFTLUxhcmdlLCAkSXRlbSk7XG4gICAgICB9XG4gICAgfVxuICAgICRRUy1MZXNzOiBxdWlja3NvcnQoJFFTLUxlc3MpO1xuICAgICRRUy1MYXJnZTogcXVpY2tzb3J0KCRRUy1MYXJnZSk7XG5cbiAgICAkUVMtUmV0dXJuOiBqb2luKCRRUy1MZXNzLCAkUVMtRXF1YWwpO1xuICAgICRRUy1SZXR1cm46IGpvaW4oJFFTLVJldHVybiwgJFFTLUxhcmdlKTtcblxuICAgIEByZXR1cm4gJFFTLVJldHVybjtcbiAgfVxuXG4gIEByZXR1cm4gJGxpc3Q7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gU29ydCBNYXAgZnVuY3Rpb25cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIHNvcnQtbWFwKCRtYXAsICRyZXZlcnNlOiBmYWxzZSkge1xuICAkU29ydC1NYXAtS2V5czogcXVpY2tzb3J0KG1hcC1rZXlzKCRtYXApKTtcbiAgJFNvcnQtTWFwLU1hcDogKCk7XG5cbiAgQGlmICRyZXZlcnNlIHtcbiAgICAkU29ydC1NYXAtS2V5czogcmV2ZXJzZSgkU29ydC1NYXAtS2V5cyk7XG4gIH1cblxuICBAZWFjaCAka2V5IGluICRTb3J0LU1hcC1LZXlzIHtcbiAgICAkU29ydC1NYXAtTWFwOiBtYXAtbWVyZ2UoJFNvcnQtTWFwLU1hcCwgKCRrZXk6IG1hcC1nZXQoJG1hcCwgJGtleSkpKTtcbiAgfVxuXG4gIEByZXR1cm4gJFNvcnQtTWFwLU1hcDtcbn0iLCIvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gR3JpZCBCYWNrZ3JvdW5kXG5cbkBpbXBvcnQgJ3N0ci1yZXBsYWNlJztcblxuQG1peGluIGJhY2tncm91bmQtZ3JpZChcbiAgJGNvbHVtbnM6IG51bGwsXG4gICRndXR0ZXI6IG51bGwsXG4gICRndXR0ZXItc3R5bGU6IG51bGwsXG4gICRjb2xvcjogbnVsbFxuKSB7XG5cbiAgJGNvbG9yOiBpZigkY29sb3IgIT0gbnVsbCwgJGNvbG9yLCBzZ3MtZ2V0KCdiYWNrZ3JvdW5kIGdyaWQgY29sb3InKSk7XG5cbiAgQGlmIHNncy1nZXQoJ2RlYnVnJykgIT0gZmFsc2Uge1xuICAgICRjb2x1bW5zOiBpZigkY29sdW1ucyAhPSBudWxsLCAkY29sdW1ucywgc2dzLWdldCgnZ3JpZHMnKSk7XG4gICAgJGd1dHRlcjogaWYoJGd1dHRlciAhPSBudWxsLCAkZ3V0dGVyLCBzZ3MtZ2V0KCdndXR0ZXJzJykpO1xuICAgICRndXR0ZXItc3R5bGU6IGlmKCRndXR0ZXItc3R5bGUgIT0gbnVsbCwgJGd1dHRlci1zdHlsZSwgc2dzLWdldCgnZ3V0dGVyIHN0eWxlcycpKTtcblxuICAgIEBpbmNsdWRlIGJhY2tncm91bmQtYnVpbGQoJGNvbHVtbnMsICRndXR0ZXIsICRndXR0ZXItc3R5bGUsICRjb2xvcilcbiAgfVxufVxuXG5AZnVuY3Rpb24gYmFja2dyb3VuZC1tYXAoJGNvbHVtbnMsICRndXR0ZXJzLCAkZ3V0dGVyLXN0eWxlcykge1xuICAkR3JpZHM6ICgpO1xuICAkR3V0dGVyczogKCk7XG4gICRTdHlsZXM6ICgpO1xuXG4gIEBpZiAkY29sdW1ucyBhbmQgdHlwZS1vZigkY29sdW1ucykgIT0gJ21hcCcge1xuICAgICRHcmlkczogKC0xcHg6ICRjb2x1bW5zKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgJEdyaWRzOiBzZ3MtZ2V0KCdncmlkcycpO1xuICB9XG5cbiAgQGlmICRndXR0ZXJzIGFuZCB0eXBlLW9mKCRndXR0ZXJzKSAhPSAnbWFwJyB7XG4gICAgJEd1dHRlcnM6ICgtMXB4OiAkZ3V0dGVycyk7XG4gIH1cbiAgQGVsc2Uge1xuICAgICRHdXR0ZXJzOiBzZ3MtZ2V0KCdndXR0ZXJzJyk7XG4gIH1cblxuICBAaWYgJGd1dHRlci1zdHlsZXMgYW5kIHR5cGUtb2YoJGd1dHRlci1zdHlsZXMpICE9ICdtYXAnIHtcbiAgICAkU3R5bGVzOiAoLTFweDogJGd1dHRlci1zdHlsZXMpO1xuICB9XG4gIEBlbHNlIHtcbiAgICAkU3R5bGVzOiBzZ3MtZ2V0KCdndXR0ZXIgc3R5bGVzJyk7XG4gIH1cblxuICAvLyBCdWlsZCAxc3QgRGVwdGggTWFwXG4gICRIb2xkZXI6ICgpO1xuXG4gIC8vIEdyaWRzXG4gIEBlYWNoICRrLCAkdiBpbiAkR3JpZHMge1xuICAgICRIb2xkZXI6IG1hcC1tZXJnZSgkSG9sZGVyLCAoJGs6ICgnZ3JpZCc6ICR2KSkpO1xuICB9XG4gIC8vIEd1dHRlcnNcbiAgQGVhY2ggJGssICR2IGluICRHdXR0ZXJzIHtcbiAgICAkR3JpZDogbWFwLWdldCgkSG9sZGVyLCAkayk7XG5cbiAgICAkTWFwOiAoJ2d1dHRlcic6ICR2KTtcbiAgICBAaWYgJEdyaWQgIT0gbnVsbCB7XG4gICAgICAkR3JpZDogbWFwLWdldCgkR3JpZCwgJ2dyaWQnKTtcbiAgICAgIEBpZiAkR3JpZCAhPSBudWxsIHtcbiAgICAgICAgJE1hcDogbWFwLW1lcmdlKCRNYXAsICgnZ3JpZCc6ICRHcmlkKSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJEhvbGRlcjogbWFwLW1lcmdlKCRIb2xkZXIsICgkazogJE1hcCkpO1xuICB9XG4gIC8vIFN0eWxlXG4gIEBlYWNoICRrLCAkdiBpbiAkU3R5bGVzIHtcbiAgICAkR3JpZDogbWFwLWdldCgkSG9sZGVyLCAkayk7XG4gICAgJEd1dHRlcjogbWFwLWdldCgkSG9sZGVyLCAkayk7XG5cbiAgICAkTWFwOiAoJ3N0eWxlJzogJHYpO1xuICAgIEBpZiAkR3JpZCAhPSBudWxsIHtcbiAgICAgICRHcmlkOiBtYXAtZ2V0KCRHcmlkLCAnZ3JpZCcpO1xuICAgICAgQGlmICRHcmlkICE9IG51bGwge1xuICAgICAgICAkTWFwOiBtYXAtbWVyZ2UoJE1hcCwgKCdncmlkJzogJEdyaWQpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGlmICRHdXR0ZXIgIT0gbnVsbCB7XG4gICAgICAkR3V0dGVyOiBtYXAtZ2V0KCRHdXR0ZXIsICdndXR0ZXInKTtcbiAgICAgIEBpZiAkR3V0dGVyICE9IG51bGwge1xuICAgICAgICAkTWFwOiBtYXAtbWVyZ2UoJE1hcCwgKCdndXR0ZXInOiAkR3V0dGVyKSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJEhvbGRlcjogbWFwLW1lcmdlKCRIb2xkZXIsICgkazogJE1hcCkpO1xuICB9XG5cbiAgJEhvbGRlcjogc29ydC1tYXAoJEhvbGRlcik7XG4gICRSZXR1cm46ICgpO1xuXG4gIC8vIEJ1aWxkIGZ1bGwgc3RhY2sgZm9yIGVhY2ggYnJlYWtwb2ludFxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIGxlbmd0aCgkSG9sZGVyKSB7XG4gICAgJEtleTogbnRoKG50aCgkSG9sZGVyLCAkaSksIDEpO1xuICAgICRWYWx1ZTogbnRoKG50aCgkSG9sZGVyLCAkaSksIDIpO1xuXG4gICAgJFByZXZpb3VzOiAoKTtcbiAgICBAaWYgJGkgPiAxIHtcbiAgICAgICRQcmV2aW91czogbnRoKG50aCgkUmV0dXJuLCAkaSAtIDEpLCAyKTtcbiAgICB9XG5cbiAgICBAaWYgbm90IG1hcC1oYXMta2V5KCRWYWx1ZSwgJ2dyaWQnKSB7XG4gICAgICAkU29ydC1HcmlkOiBtYXAtZ2V0KCRQcmV2aW91cywgJ2dyaWQnKTtcbiAgICAgICRWYWx1ZTogbWFwLW1lcmdlKCRWYWx1ZSwgKCdncmlkJzogJFNvcnQtR3JpZCkpO1xuICAgIH1cblxuICAgIEBpZiBub3QgbWFwLWhhcy1rZXkoJFZhbHVlLCAnZ3V0dGVyJykge1xuICAgICAgJFNvcnQtR3V0dGVyOiBtYXAtZ2V0KCRQcmV2aW91cywgJ2d1dHRlcicpO1xuICAgICAgJFZhbHVlOiBtYXAtbWVyZ2UoJFZhbHVlLCAoJ2d1dHRlcic6ICRTb3J0LUd1dHRlcikpO1xuICAgIH1cblxuICAgIEBpZiBub3QgbWFwLWhhcy1rZXkoJFZhbHVlLCAnc3R5bGUnKSB7XG4gICAgICAkU29ydC1TdHlsZTogbWFwLWdldCgkUHJldmlvdXMsICdzdHlsZScpO1xuICAgICAgJFZhbHVlOiBtYXAtbWVyZ2UoJFZhbHVlLCAoJ3N0eWxlJzogJFNvcnQtU3R5bGUpKTtcbiAgICB9XG5cbiAgICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgKCRLZXk6ICRWYWx1ZSkpO1xuICB9XG5cbiAgQHJldHVybiAkUmV0dXJuO1xufVxuXG5AbWl4aW4gYmFja2dyb3VuZC1idWlsZCgkY29sdW1ucywgJGd1dHRlcnMsICRndXR0ZXItc3R5bGVzLCAkY29sb3IpIHtcbiAgJEJhY2tncm91bmQtTWFwOiBiYWNrZ3JvdW5kLW1hcCgkY29sdW1ucywgJGd1dHRlcnMsICRndXR0ZXItc3R5bGVzKTtcbiAgJERpc3BsYXk6IHRydWU7XG5cbiAgJENvbHVtbi1Db2xvcjogJGNvbG9yO1xuICAkSW52ZXJzZS1Db2x1bW4tQ29sb3I6IG1peChibGFjaywgJGNvbG9yLCAxNSUpO1xuICAkR3V0dGVyLUNvbG9yOiBtaXgod2hpdGUsICRjb2xvciwgMjUlKTtcbiAgJERpcmVjdGlvbjogbmFtZWQtZGlyZWN0aW9uKHNncy1nZXQoJ2RpcmVjdGlvbicpKTtcblxuICBAZWFjaCAkYmtwdCwgJGRlZiBpbiAkQmFja2dyb3VuZC1NYXAge1xuICAgICRHcmlkOiBtYXAtZ2V0KCRkZWYsICdncmlkJyk7XG4gICAgJEd1dHRlcjogbWFwLWdldCgkZGVmLCAnZ3V0dGVyJyk7XG4gICAgJFN0eWxlOiBtYXAtZ2V0KCRkZWYsICdzdHlsZScpO1xuXG4gICAgJEdyaWQtQ291bnQ6IGNvbHVtbi1jb3VudCgkR3JpZCk7XG5cbiAgICAkU1ZHOiAnPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+JztcblxuICAgICRHdXR0ZXItV2lkdGg6IGd1dHRlci1zcGFuKCRHdXR0ZXIsICRHcmlkLCAkU3R5bGUpO1xuICAgIEBpZiB1bml0KCRHdXR0ZXItV2lkdGgpICE9ICclJyBhbmQgdW5pdCgkR3V0dGVyLVdpZHRoKSAhPSAnJyB7XG4gICAgICAkR3V0dGVyLVdpZHRoOiAwJTtcbiAgICB9XG5cbiAgICBAaWYgJFN0eWxlID09ICdmaXhlZCcge1xuICAgICAgJEd1dHRlci1XaWR0aDogMCU7XG4gICAgfVxuICAgICRDb3VudGVyLVdpZHRoOiAwJTtcbiAgICAkaG9sZGVyOiAoKTtcblxuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJEdyaWQtQ291bnQge1xuICAgICAgJEhvbGRlci1HcmFkaWVudDogKCk7XG4gICAgICAkTG9vcC1XaWR0aDogY29sdW1uLXNwYW4oMSwgJGksICRHcmlkLCAkR3V0dGVyLCAkU3R5bGUpO1xuXG4gICAgICBAaWYgaW5kZXgoJFN0eWxlLCAnc3BsaXQnKSBhbmQgJGkgPT0gMSB7XG4gICAgICAgICRTVkc6ICRTVkcgKyAnPHJlY3QgeD1cIiN7JENvdW50ZXItV2lkdGh9XCIgZmlsbD1cIiN7JEd1dHRlci1Db2xvcn1cIiB3aWR0aD1cIiN7JEd1dHRlci1XaWR0aCAvIDJ9XCIgaGVpZ2h0PVwiMTAwJVwiLz4nO1xuICAgICAgICAkQ291bnRlci1XaWR0aDogKCRHdXR0ZXItV2lkdGggLyAyKTtcbiAgICAgIH1cblxuICAgICAgJExvb3AtQ29sb3I6ICRDb2x1bW4tQ29sb3I7XG4gICAgICBAaWYgKGluZGV4KCRTdHlsZSwgJ2ZpeGVkJykgb3IgJEd1dHRlci1XaWR0aCA9PSAwJSkgYW5kICgkaSAlIDIgPT0gMCApIHtcbiAgICAgICAgJExvb3AtQ29sb3I6ICRJbnZlcnNlLUNvbHVtbi1Db2xvcjtcbiAgICAgIH1cblxuICAgICAgQGlmICRpICE9ICRHcmlkLUNvdW50IHtcbiAgICAgICAgQGlmIHVuaXQoJENvdW50ZXItV2lkdGgpID09IHVuaXQoJExvb3AtV2lkdGgpIHtcbiAgICAgICAgICAkU1ZHOiAkU1ZHICsgJzxyZWN0IHg9XCIjeyRDb3VudGVyLVdpZHRofVwiIGZpbGw9XCIjeyRMb29wLUNvbG9yfVwiIHdpZHRoPVwiI3skTG9vcC1XaWR0aH1cIiBoZWlnaHQ9XCIxMDAlXCIvPic7XG4gICAgICAgICAgJENvdW50ZXItV2lkdGg6ICRDb3VudGVyLVdpZHRoICsgJExvb3AtV2lkdGg7XG4gICAgICAgICAgJFNWRzogJFNWRyArICc8cmVjdCB4PVwiI3skQ291bnRlci1XaWR0aH1cIiBmaWxsPVwiI3skR3V0dGVyLUNvbG9yfVwiIHdpZHRoPVwiI3skR3V0dGVyLVdpZHRofVwiIGhlaWdodD1cIjEwMCVcIi8+JztcbiAgICAgICAgICAkQ291bnRlci1XaWR0aDogJENvdW50ZXItV2lkdGggKyAkR3V0dGVyLVdpZHRoO1xuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAkRGlzcGxheTogZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgfVxuICAgICAgQGVsc2UgaWYgJGkgPT0gMSB7XG4gICAgICAgIEBpZiB1bml0KCRDb3VudGVyLVdpZHRoKSA9PSB1bml0KCRMb29wLVdpZHRoKSB7XG4gICAgICAgICAgJFNWRzogJFNWRyArICc8cmVjdCB4PVwiI3skQ291bnRlci1XaWR0aH1cIiBmaWxsPVwiI3skTG9vcC1Db2xvcn1cIiB3aWR0aD1cIiN7JExvb3AtV2lkdGh9XCIgaGVpZ2h0PVwiMTAwJVwiLz4nO1xuICAgICAgICAgICRTVkc6ICRTVkcgKyAnPHJlY3QgeD1cIiN7JExvb3AtV2lkdGh9XCIgZmlsbD1cIiN7JEd1dHRlci1Db2xvcn1cIiB3aWR0aD1cIiN7JEd1dHRlci1XaWR0aH1cIiBoZWlnaHQ9XCIxMDAlXCIvPic7XG4gICAgICAgICAgJENvdW50ZXItV2lkdGg6ICRDb3VudGVyLVdpZHRoICsgJExvb3AtV2lkdGggKyAkR3V0dGVyLVdpZHRoO1xuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAkRGlzcGxheTogZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgfVxuICAgICAgQGVsc2UgaWYgJGkgPT0gJEdyaWQtQ291bnQgYW5kIGluZGV4KCRTdHlsZSwgJ3NwbGl0Jykge1xuICAgICAgICBAaWYgdW5pdCgkQ291bnRlci1XaWR0aCkgPT0gdW5pdCgkTG9vcC1XaWR0aCkge1xuICAgICAgICAgICRTVkc6ICRTVkcgKyAnPHJlY3QgeD1cIiN7JENvdW50ZXItV2lkdGh9XCIgZmlsbD1cIiN7JExvb3AtQ29sb3J9XCIgd2lkdGg9XCIjeyRMb29wLVdpZHRofVwiIGhlaWdodD1cIjEwMCVcIi8+JztcbiAgICAgICAgICAkQ291bnRlci1XaWR0aDogJENvdW50ZXItV2lkdGggKyAkTG9vcC1XaWR0aDtcbiAgICAgICAgICAkU1ZHOiAkU1ZHICsgJzxyZWN0IHg9XCIjeyRDb3VudGVyLVdpZHRofVwiIGZpbGw9XCIjeyRHdXR0ZXItQ29sb3J9XCIgd2lkdGg9XCIjeyRHdXR0ZXItV2lkdGggLyAyfVwiIGhlaWdodD1cIjEwMCVcIi8+JztcbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgJERpc3BsYXk6IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICRTVkc6ICRTVkcgKyAnPHJlY3QgeD1cIiN7JENvdW50ZXItV2lkdGh9XCIgZmlsbD1cIiN7JExvb3AtQ29sb3J9XCIgd2lkdGg9XCIjeyRMb29wLVdpZHRofVwiIGhlaWdodD1cIjEwMCVcIi8+JztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAkU1ZHOiAkU1ZHICsgJzwvc3ZnPic7XG4gICAgJFNWRzogdXJsLWVuY29kZSgkU1ZHKTtcblxuICAgIEBpZiAkRGlzcGxheSB7XG5cbiAgICAgIEBpZiAkYmtwdCAhPSAtMXB4IHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkYmtwdCkge1xuICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sLCcgKyAkU1ZHKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbCwnICsgJFNWRyk7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEB3YXJuICdDYW5ub3QgZ2VuZXJhdGUgYSBCYWNrZ3JvdW5kIEdyaWQgZm9yIGdyaWQgYCN7JEdyaWR9YCB3aXRoIGd1dHRlcnMgYCN7JEd1dHRlcn1gIGFuZCBndXR0ZXIgc3R5bGUgYCN7JFN0eWxlfWAnO1xuICAgIH1cbiAgfVxufSIsIi8vIEZyb20gaHR0cDovL3Nhc3NtZWlzdGVyLmNvbS9naXN0LzFiNGYyZGE1NTI3ODMwMDg4ZTRkXG5cbi8vLy9cbi8vIEkgaGF2ZSB3cml0dGVuIGEgbG90IG9mIGRpZmZlcmVudCBgc3RyLXJlcGxhY2VgIFNhc3MgZnVuY3Rpb25zIG92ZXJcbi8vIHRoZSBtb250aHMgeWV0IG5vbmUgb2YgbXkgdHJpZXMgd2VyZSBzdWNjZWVkaW5nIGluIG1ha2luZyB0aGUgbmV3IHN1YnN0cmluZ1xuLy8gYWJsZSB0byBjb250YWluIHRoZSBvbmUgdG8gcmVwbGFjZSAoZS5nLiBgc3RyLXJlcGxhY2UoJHN0ciwgJ2EnLCAnYWInKWApLlxuLy8gVGhhbmtzIHRvIFZhbMOpcmlhbiBHYWxsaWF0IChAdmFsZXJpYW5nYWxsaWF0KSwgSSBmaW5hbGx5IG1hbmFnZWQgdG8gYnVpbGRcbi8vIGEgYnVsbGV0cHJvb2YgYHN0ci1yZXBsYWNlYCBTYXNzIGZ1bmN0aW9uIHRoYXQgYWxsb3dzIG5ldyBzdHJpbmcgdG8gY29udGFpblxuLy8gdGhlIG9sZCBvbmUuXG4vLy8vXG5cbi8vLyBSZXBsYWNlIGAkc2VhcmNoYCB3aXRoIGAkcmVwbGFjZWAgaW4gYCRzdHJpbmdgXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzdHJpbmcgLSBJbml0aWFsIHN0cmluZ1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VhcmNoIC0gU3Vic3RyaW5nIHRvIHJlcGxhY2Vcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHJlcGxhY2UgKCcnKSAtIE5ldyB2YWx1ZVxuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBVcGRhdGVkIHN0cmluZ1xuQGZ1bmN0aW9uIHN0ci1yZXBsYWNlKCRzdHJpbmcsICRzZWFyY2gsICRyZXBsYWNlOiAnJykge1xuICAkaW5kZXg6IHN0ci1pbmRleCgkc3RyaW5nLCAkc2VhcmNoKTtcblxuICBAaWYgJGluZGV4IHtcbiAgICBAcmV0dXJuIHN0ci1zbGljZSgkc3RyaW5nLCAxLCAkaW5kZXggLSAxKSArICRyZXBsYWNlICsgc3RyLXJlcGxhY2Uoc3RyLXNsaWNlKCRzdHJpbmcsICRpbmRleCArIHN0ci1sZW5ndGgoJHNlYXJjaCkpLCAkc2VhcmNoLCAkcmVwbGFjZSk7XG4gIH1cblxuICBAcmV0dXJuICRzdHJpbmc7XG59XG5cbkBmdW5jdGlvbiB1cmwtZW5jb2RlKCRzdHJpbmcpIHtcbiAgJGVuY29kZU1hcDooJyUnOiclMjUnLFxuICAgICAgICAgICAgICAnICc6JyUyMCcsXG4gICAgICAgICAgICAgICchJzonJTIxJyxcbiAgICAgICAgICAgICAgJ1xcXCInOiclMjInLFxuICAgICAgICAgICAgICAnIyc6JyUyMycsXG4gICAgICAgICAgICAgICckJzonJTI0JyxcbiAgICAgICAgICAgICAgJyYnOiclMjYnLFxuICAgICAgICAgICAgICAnXFwnJzonJTI3JyxcbiAgICAgICAgICAgICAgJygnOiclMjgnLFxuICAgICAgICAgICAgICAnKSc6JyUyOScsXG4gICAgICAgICAgICAgICcqJzonJTJBJyxcbiAgICAgICAgICAgICAgJysnOiclMkInLFxuICAgICAgICAgICAgICAnLCc6JyUyQycsXG4gICAgICAgICAgICAgICctJzonJTJEJyxcbiAgICAgICAgICAgICAgJy4nOiclMkUnLFxuICAgICAgICAgICAgICAnLyc6JyUyRicsXG4gICAgICAgICAgICAgICc6JzonJTNBJyxcbiAgICAgICAgICAgICAgJzsnOiclM0InLFxuICAgICAgICAgICAgICAnPCc6JyUzQycsXG4gICAgICAgICAgICAgICc9JzonJTNEJyxcbiAgICAgICAgICAgICAgJz4nOiclM0UnLFxuICAgICAgICAgICAgICAnPyc6JyUzRicsXG4gICAgICAgICAgICAgICdAJzonJTQwJyxcbiAgICAgICAgICAgICAgJ1snOiclNUInLFxuICAgICAgICAgICAgICAnXFxcXCc6JyU1QycsXG4gICAgICAgICAgICAgICddJzonJTVEJyxcbiAgICAgICAgICAgICAgJ14nOiclNUUnLFxuICAgICAgICAgICAgICAnXyc6JyU1RicsXG4gICAgICAgICAgICAgICdgJzonJTYwJyxcbiAgICAgICAgICAgICAgJ3snOiclN0InLFxuICAgICAgICAgICAgICAnfCc6JyU3QycsXG4gICAgICAgICAgICAgICd9JzonJTdEJyxcbiAgICAgICAgICAgICAgJ34nOiclN0UnLFxuICAgICAgICAgICAgICAnwqInOiclQTInLFxuICAgICAgICAgICAgICAnwqMnOiclQTMnLFxuICAgICAgICAgICAgICAnwqUnOiclQTUnLFxuICAgICAgICAgICAgICAnwqcnOiclQTcnLFxuICAgICAgICAgICAgICAnwqsnOiclQUInLFxuICAgICAgICAgICAgICAnwqwnOiclQUMnLFxuICAgICAgICAgICAgICAnwq8nOiclQUQnLFxuICAgICAgICAgICAgICAnwronOiclQjAnLFxuICAgICAgICAgICAgICAnwrEnOiclQjEnLFxuICAgICAgICAgICAgICAnwqonOiclQjInLFxuICAgICAgICAgICAgICAnwrUnOiclQjUnLFxuICAgICAgICAgICAgICAnwrsnOiclQkInLFxuICAgICAgICAgICAgICAnwrwnOiclQkMnLFxuICAgICAgICAgICAgICAnwr0nOiclQkQnLFxuICAgICAgICAgICAgICAnwr8nOiclQkYnLFxuICAgICAgICAgICAgICAnw4AnOiclQzAnLFxuICAgICAgICAgICAgICAnw4EnOiclQzEnLFxuICAgICAgICAgICAgICAnw4InOiclQzInLFxuICAgICAgICAgICAgICAnw4MnOiclQzMnLFxuICAgICAgICAgICAgICAnw4QnOiclQzQnLFxuICAgICAgICAgICAgICAnw4UnOiclQzUnLFxuICAgICAgICAgICAgICAnw4YnOiclQzYnLFxuICAgICAgICAgICAgICAnw4cnOiclQzcnLFxuICAgICAgICAgICAgICAnw4gnOiclQzgnLFxuICAgICAgICAgICAgICAnw4knOiclQzknLFxuICAgICAgICAgICAgICAnw4onOiclQ0EnLFxuICAgICAgICAgICAgICAnw4snOiclQ0InLFxuICAgICAgICAgICAgICAnw4wnOiclQ0MnLFxuICAgICAgICAgICAgICAnw40nOiclQ0QnLFxuICAgICAgICAgICAgICAnw44nOiclQ0UnLFxuICAgICAgICAgICAgICAnw48nOiclQ0YnLFxuICAgICAgICAgICAgICAnw5AnOiclRDAnLFxuICAgICAgICAgICAgICAnw5EnOiclRDEnLFxuICAgICAgICAgICAgICAnw5InOiclRDInLFxuICAgICAgICAgICAgICAnw5MnOiclRDMnLFxuICAgICAgICAgICAgICAnw5QnOiclRDQnLFxuICAgICAgICAgICAgICAnw5UnOiclRDUnLFxuICAgICAgICAgICAgICAnw5YnOiclRDYnLFxuICAgICAgICAgICAgICAnw5gnOiclRDgnLFxuICAgICAgICAgICAgICAnw5knOiclRDknLFxuICAgICAgICAgICAgICAnw5onOiclREEnLFxuICAgICAgICAgICAgICAnw5snOiclREInLFxuICAgICAgICAgICAgICAnw5wnOiclREMnLFxuICAgICAgICAgICAgICAnw50nOiclREQnLFxuICAgICAgICAgICAgICAnw54nOiclREUnLFxuICAgICAgICAgICAgICAnw58nOiclREYnLFxuICAgICAgICAgICAgICAnw6AnOiclRTAnLFxuICAgICAgICAgICAgICAnw6EnOiclRTEnLFxuICAgICAgICAgICAgICAnw6InOiclRTInLFxuICAgICAgICAgICAgICAnw6MnOiclRTMnLFxuICAgICAgICAgICAgICAnw6QnOiclRTQnLFxuICAgICAgICAgICAgICAnw6UnOiclRTUnLFxuICAgICAgICAgICAgICAnw6YnOiclRTYnLFxuICAgICAgICAgICAgICAnw6cnOiclRTcnLFxuICAgICAgICAgICAgICAnw6gnOiclRTgnLFxuICAgICAgICAgICAgICAnw6knOiclRTknLFxuICAgICAgICAgICAgICAnw6onOiclRUEnLFxuICAgICAgICAgICAgICAnw6snOiclRUInLFxuICAgICAgICAgICAgICAnw6wnOiclRUMnLFxuICAgICAgICAgICAgICAnw60nOiclRUQnLFxuICAgICAgICAgICAgICAnw64nOiclRUUnLFxuICAgICAgICAgICAgICAnw68nOiclRUYnLFxuICAgICAgICAgICAgICAnw7AnOiclRjAnLFxuICAgICAgICAgICAgICAnw7EnOiclRjEnLFxuICAgICAgICAgICAgICAnw7InOiclRjInLFxuICAgICAgICAgICAgICAnw7MnOiclRjMnLFxuICAgICAgICAgICAgICAnw7QnOiclRjQnLFxuICAgICAgICAgICAgICAnw7UnOiclRjUnLFxuICAgICAgICAgICAgICAnw7YnOiclRjYnLFxuICAgICAgICAgICAgICAnw7cnOiclRjcnLFxuICAgICAgICAgICAgICAnw7gnOiclRjgnLFxuICAgICAgICAgICAgICAnw7knOiclRjknLFxuICAgICAgICAgICAgICAnw7onOiclRkEnLFxuICAgICAgICAgICAgICAnw7snOiclRkInLFxuICAgICAgICAgICAgICAnw7wnOiclRkMnLFxuICAgICAgICAgICAgICAnw70nOiclRkQnLFxuICAgICAgICAgICAgICAnw74nOiclRkUnLFxuICAgICAgICAgICAgICAnw78nOiclRkYnXG4gICk7XG5cbiAgQGVhY2ggJGNoYXIsICRjb2RlIGluICRlbmNvZGVNYXAgIHtcbiAgICAkc3RyaW5nOiBzdHItcmVwbGFjZSgkc3RyaW5nLCAkY2hhciwgJGNvZGUpO1xuICB9XG4gIEByZXR1cm4gJHN0cmluZztcbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdyYXBwZXIgbWl4aW4gZm9yIG92ZXJyaWRpbmcgdGhlIGdsb2JhbCBjb250ZXh0cyBhcyBhIGJsb2NrXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBtaXhpbiBsYXlvdXQoJGdyaWQ6IGZhbHNlLCAkZ3V0dGVyOiBmYWxzZSwgJG91dHB1dC1zdHlsZTogZmFsc2UsICRndXR0ZXItc3R5bGU6IGZhbHNlKSB7XG5cbiAgQGlmIHR5cGUtb2YoJGdyaWQpID09ICdtYXAnIHtcbiAgICAkbGF5b3V0OiAkZ3JpZDtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJGxheW91dCwgJ2dyaWQnKSB7XG4gICAgICAkZ3JpZDogbWFwLWdldCgkbGF5b3V0LCAnZ3JpZCcpO1xuICAgIH1cblxuICAgIEBpZiBtYXAtaGFzLWtleSgkbGF5b3V0LCAnZ3V0dGVyJykge1xuICAgICAgJGd1dHRlcjogbWFwLWdldCgkbGF5b3V0LCAnZ3V0dGVyJyk7XG4gICAgfVxuXG4gICAgQGlmIG1hcC1oYXMta2V5KCRsYXlvdXQsICdvdXRwdXQgc3R5bGUnKSB7XG4gICAgICAkb3V0cHV0LXN0eWxlOiBtYXAtZ2V0KCRsYXlvdXQsICdvdXRwdXQgc3R5bGUnKTtcbiAgICB9XG4gICAgQGlmIG1hcC1oYXMta2V5KCRsYXlvdXQsICdvdXRwdXQnKSB7XG4gICAgICAkb3V0cHV0LXN0eWxlOiBtYXAtZ2V0KCRsYXlvdXQsICdvdXRwdXQnKTtcbiAgICB9XG5cbiAgICBAaWYgbWFwLWhhcy1rZXkoJGxheW91dCwgJ2d1dHRlciBzdHlsZScpIHtcbiAgICAgICRndXR0ZXItc3R5bGU6IG1hcC1nZXQoJGxheW91dCwgJ2d1dHRlciBzdHlsZScpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFByaXZhdGUgaG9sZGVyIGZvciBjdXJyZW50IGdsb2JhbCBjb250ZXh0XG4gICRsYXlvdXQtcHJpdmF0ZS1ncmlkLWhvbGRlcjogc2dzLWdldCgnZ3JpZHMnKTtcbiAgJGxheW91dC1wcml2YXRlLWd1dHRlci1ob2xkZXI6IHNncy1nZXQoJ2d1dHRlcnMnKTtcbiAgJGxheW91dC1wcml2YXRlLW91dHB1dC1ob2xkZXI6IHNncy1nZXQoJ291dHB1dCcpO1xuICAkbGF5b3V0LXByaXZhdGUtZ3V0dGVyLXN0eWxlLWhvbGRlcjogc2dzLWdldCgnZ3V0dGVyIHN0eWxlcycpO1xuXG4gIC8vIE92ZXJpZGVzIGN1cnJlbnQgZ2xvYmFsIGNvbnRleHRzLCBidXQgb25seSBpZiBuZWVkZWRcbiAgQGlmICRncmlkICE9IGZhbHNlIHtcbiAgICBAaW5jbHVkZSBzZ3MtcmVzZXQoJ2dyaWRzJyk7XG4gICAgQGlmIHR5cGUtb2YoJGdyaWQpICE9ICdtYXAnIHtcbiAgICAgIEBpbmNsdWRlIHNncy1jaGFuZ2UoJ2dyaWRzJywgKC0xcHg6ICRncmlkKSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBpbmNsdWRlIHNncy1jaGFuZ2UoJ2dyaWRzJywgJGdyaWQpO1xuICAgIH1cbiAgfVxuICBAaWYgJGd1dHRlciAhPSBmYWxzZSB7XG4gICAgQGluY2x1ZGUgc2dzLXJlc2V0KCdndXR0ZXJzJyk7XG4gICAgQGlmIHR5cGUtb2YoJGd1dHRlcikgIT0gJ21hcCcge1xuICAgICAgQGluY2x1ZGUgc2dzLWNoYW5nZSgnZ3V0dGVycycsICgtMXB4OiAkZ3V0dGVyKSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBpbmNsdWRlIHNncy1jaGFuZ2UoJ2d1dHRlcnMnLCAkZ3V0dGVyKTtcbiAgICB9XG4gIH1cbiAgQGlmICRvdXRwdXQtc3R5bGUgIT0gZmFsc2Uge1xuICAgIEBpbmNsdWRlIHNncy1yZXNldCgnb3V0cHV0Jyk7XG4gICAgQGluY2x1ZGUgc2dzLWNoYW5nZSgnb3V0cHV0JywgJG91dHB1dC1zdHlsZSk7XG4gIH1cbiAgQGlmICRndXR0ZXItc3R5bGUgIT0gZmFsc2Uge1xuICAgIEBpbmNsdWRlIHNncy1yZXNldCgnZ3V0dGVyIHN0eWxlcycpO1xuICAgIEBpZiB0eXBlLW9mKCRndXR0ZXItc3R5bGUpICE9ICdtYXAnIHtcbiAgICAgIEBpbmNsdWRlIHNncy1jaGFuZ2UoJ2d1dHRlciBzdHlsZXMnLCAoLTFweDogJGd1dHRlci1zdHlsZSkpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAaW5jbHVkZSBzZ3MtY2hhbmdlKCdndXR0ZXIgc3R5bGVzJywgJGd1dHRlci1zdHlsZSk7XG4gICAgfVxuICB9XG5cbiAgLy8gQWxsIHRoZSB0aGluZ3MhXG4gIEBjb250ZW50O1xuXG4gIC8vIFJFc2V0IEFMTCB0aGUgc2V0dGluZ3NcbiAgQGluY2x1ZGUgc2dzLXJlc2V0KCdncmlkcycpO1xuICBAaW5jbHVkZSBzZ3MtcmVzZXQoJ2d1dHRlcnMnKTtcbiAgQGluY2x1ZGUgc2dzLXJlc2V0KCdvdXRwdXQnKTtcbiAgQGluY2x1ZGUgc2dzLXJlc2V0KCdndXR0ZXIgc3R5bGVzJyk7XG4gIC8vIFJlc2V0cyBnbG9iYWwgY29udGV4dHNcbiAgQGluY2x1ZGUgc2dzLWNoYW5nZSgnZ3JpZHMnLCAkbGF5b3V0LXByaXZhdGUtZ3JpZC1ob2xkZXIpO1xuICBAaW5jbHVkZSBzZ3MtY2hhbmdlKCdndXR0ZXJzJywgJGxheW91dC1wcml2YXRlLWd1dHRlci1ob2xkZXIpO1xuICBAaW5jbHVkZSBzZ3MtY2hhbmdlKCdvdXRwdXQnLCAkbGF5b3V0LXByaXZhdGUtb3V0cHV0LWhvbGRlcik7XG4gIEBpbmNsdWRlIHNncy1jaGFuZ2UoJ2d1dHRlciBzdHlsZXMnLCAkbGF5b3V0LXByaXZhdGUtZ3V0dGVyLXN0eWxlLWhvbGRlcik7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gTGF5b3V0IEF0XG4vLyBXcmFwcGVyIG1peGluIGZvciBhIGNvbWJpbmVkIEJyZWFrcG9pbnQvTGF5b3V0IGNhbGxcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQG1peGluIGxheW91dC1hdCgkbGF5b3V0LCAkYnJlYWtwb2ludCkge1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRicmVha3BvaW50KSB7XG4gICAgLy8gSWYgYSBzaW5nbGUgdmFsdWUgaXMgcGFzc2VkIGluLCBhc3N1bWUgaXQncyBhIGdyaWRcbiAgICBAaWYgdHlwZS1vZigkbGF5b3V0KSAhPSBtYXAge1xuICAgICAgQGluY2x1ZGUgbGF5b3V0KCRsYXlvdXQpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIElmIGl0IGlzIGEgbWFwLCB3ZSd2ZSBnb3Qga2V5L3ZhbHVlcyB0byB3b3JrIHdpdGhcbiAgICBAZWxzZSB7XG4gICAgICAkZ3JpZDogZmFsc2U7XG4gICAgICAkZ3V0dGVyOiBmYWxzZTtcbiAgICAgICRvdXRwdXQtc3R5bGU6IGZhbHNlO1xuICAgICAgJGd1dHRlci1zdHlsZTogZmFsc2U7XG5cbiAgICAgIEBpZiBtYXAtaGFzLWtleSgkbGF5b3V0LCAnZ3JpZCcpIHtcbiAgICAgICAgJGdyaWQ6IG1hcC1nZXQoJGxheW91dCwgJ2dyaWQnKTtcbiAgICAgIH1cblxuICAgICAgQGlmIG1hcC1oYXMta2V5KCRsYXlvdXQsICdndXR0ZXInKSB7XG4gICAgICAgICRndXR0ZXI6IG1hcC1nZXQoJGxheW91dCwgJ2d1dHRlcicpO1xuICAgICAgfVxuXG4gICAgICBAaWYgbWFwLWhhcy1rZXkoJGxheW91dCwgJ291dHB1dCBzdHlsZScpIHtcbiAgICAgICAgJG91dHB1dC1zdHlsZTogbWFwLWdldCgkbGF5b3V0LCAnb3V0cHV0IHN0eWxlJyk7XG4gICAgICB9XG4gICAgICBAaWYgbWFwLWhhcy1rZXkoJGxheW91dCwgJ291dHB1dCcpIHtcbiAgICAgICAgJG91dHB1dC1zdHlsZTogbWFwLWdldCgkbGF5b3V0LCAnb3V0cHV0Jyk7XG4gICAgICB9XG5cbiAgICAgIEBpZiBtYXAtaGFzLWtleSgkbGF5b3V0LCAnZ3V0dGVyIHN0eWxlJykge1xuICAgICAgICAkZ3V0dGVyLXN0eWxlOiBtYXAtZ2V0KCRsYXlvdXQsICdndXR0ZXIgc3R5bGUnKTtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgbGF5b3V0KCRncmlkLCAkZ3V0dGVyLCAkb3V0cHV0LXN0eWxlLCAkZ3V0dGVyLXN0eWxlKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIkBpbXBvcnQgXCJsYW5ndWFnZS9wYXJzZS1saXN0XCI7XG5AaW1wb3J0IFwibGFuZ3VhZ2UvcGFyc2UtYWRkXCI7XG5AaW1wb3J0IFwibGFuZ3VhZ2Uvc3BhblwiOyIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUGFyc2UgbmF0dXJhbCBsYW5ndWFnZSBzdHJpbmdcbi8vXG4vLyBSZXRyaWV2ZSB2YWx1ZXMgZnJvbSB0aGUgbmF0dXJhbCBsYW5ndWFnZSBzdHJpbmcuXG4vLyBwYXJzZS1zdHJpbmcoJHZhciwgJGxpc3QpXG4vLyAgJHZhciAgOiA8c3RyaW5nPlxuLy8gICAgICAgIC0gJ2F0Jy8nc3BhbicvJ29mJyBvciBhbnkgb3RoZXIga2V5d29yZHMuXG4vLyAgICAgICAgLSAnc3BhbicgcXVlcmllcyB0aGUgdW5wcmVmaXhlZCBzcGFuIGRlY2xhcmF0aW9uLlxuLy8gICAgICAgIC0gJ2F0JyBjYW4gYWxzbyBxdWVyeSBmaXJzdCwgbGFzdCwgYWxwaGEsIGFuZCBvbWVnYS5cbi8vICAgICAgICAtICdncmlkJyB3aWxsIHJldHVybiB0aGUgc2FtZSBhcyAnb2YnXG4vLyAgJGxpc3QgOiA8bGlzdD5cbi8vICAgICAgICAtIEEgbGlzdCBsaWtlIHRoaXM6IGxhc3QgMiBvZiAoMSAxIDIpIHB1c2ggMVxuLy9cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIHBhcnNlLXNwYW4tbGlzdCgkdmFyLCAkbGlzdCkge1xuXG4gICRmb3VuZDogZmFsc2U7XG5cbiAgJGdyaWQ6ICgpO1xuXG4gIC8vIExvb3AgdGhyb3VnaCBsaXN0LlxuICBAZWFjaCAkaXRlbSBpbiAkbGlzdCB7XG4gICAgLy8gaWYgJ3NwYW4nIC0gcmV0dXJuIHRoZSBmaXJzdCBudW1lcmljLlxuICAgIC8vIGlmIGtleXdvcmQgd2FzIGZvdW5kIC0gcmV0dXJuIHRoZSBmb2xsb3dpbmcgaXRlbS5cbiAgICBAaWYgKHR5cGUtb2YoJGl0ZW0pID09IG51bWJlciBhbmQgJHZhciA9PSBzcGFuIGFuZCAkZm91bmQgIT0gJ2dyaWQnKSBvciAkZm91bmQgPT0gdHJ1ZSB7XG5cbiAgICAgIC8vIEBpZiAkZm91bmQgPT0gdHJ1ZVxuICAgICAgQHJldHVybiAkaXRlbTtcbiAgICB9XG5cbiAgICAvLyBTcGVjaWFsIGhhbmRsaW5nIGZvciBHcmlkc1xuICAgIEBlbHNlIGlmICgkaXRlbSA9PSAkdmFyIG9yICRpdGVtID09ICdncmlkJyBvciAkaXRlbSA9PSAnb2YnKSBhbmQgKCR2YXIgPT0gJ29mJyBvciAkdmFyID09ICdncmlkJykge1xuICAgICAgJGZvdW5kOiAnZ3JpZCc7XG4gICAgfVxuXG4gICAgQGVsc2UgaWYgJGZvdW5kID09ICdncmlkJyB7XG4gICAgICBAaWYgdHlwZS1vZigkaXRlbSkgPT0gbnVtYmVyIHtcbiAgICAgICAgJGdyaWQ6IGFwcGVuZCgkZ3JpZCwgJGl0ZW0sICdzcGFjZScpO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBAcmV0dXJuICRncmlkO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEFueSBrZXl3b3JkIC0gcmV0dXJuIHRoZSBmb2xsb3dpbmcgdmFsdWUuXG4gICAgQGVsc2UgaWYgJGl0ZW0gPT0gJHZhciB7XG4gICAgICAkZm91bmQ6IHRydWU7XG4gICAgfVxuICB9XG5cbiAgLy8gV2Fzbid0IGZvdW5kLlxuICBAcmV0dXJuIGZhbHNlO1xufSIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUGFyc2UgYWRkIHN0cmluZ1xuLy9cbi8vIFJldHJpZXZlIGFkZCBhbmQgbWVkaWEgcXVlcnkgdmFsdWVzIGZyb20gYSBkZWZpbml0aW9uXG4vLyBwYXJzZS1hZGQoJGRlZmluaXRpb24pXG4vLyAgJGRlZmluaXRpb24gOiA8bGlzdD5cbi8vICAgICAgICAtIEEgbGlzdCBsaWtlOiAuMjUgYXQgMzAwcHhcbi8vXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBwYXJzZS1hZGQoJGRlZmluaXRpb24pIHtcbiAgJHBhcnNlLWZpbmQ6ICgpO1xuICAkcGFyc2UtbXE6IG51bGw7XG4gICRwYXJzZS1tcS1maW5kOiBmYWxzZTtcbiAgJE1vYmlsZS1GaXJzdDogc2dzLWdldCgnbW9iaWxlIGZpcnN0Jyk7XG5cbiAgQGVhY2ggJGl0ZW0gaW4gJGRlZmluaXRpb24ge1xuICAgIEBpZiAkaXRlbSAhPSAnYXQnIGFuZCAkcGFyc2UtbXEtZmluZCAhPSB0cnVlIHtcbiAgICAgICRwYXJzZS1maW5kOiBhcHBlbmQoJHBhcnNlLWZpbmQsICRpdGVtLCAnc3BhY2UnKTtcbiAgICB9XG4gICAgQGVsc2UgaWYgJGl0ZW0gPT0gJ2F0JyB7XG4gICAgICAkcGFyc2UtbXEtZmluZDogdHJ1ZTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJHBhcnNlLW1xOiAkaXRlbTtcbiAgICB9XG4gIH1cblxuICBAaWYgJHBhcnNlLW1xIHtcbiAgICBAaWYgbm90IGZ1bmN0aW9uLWV4aXN0cyhicmVha3BvaW50KSB7XG4gICAgICBAd2FybiBcIlJlc3BvbnNpdmUgY29udGV4dHMgcmVxdWlyZSBCcmVha3BvaW50IChodHRwczovL2dpdGh1Yi5jb20vVGVhbS1TYXNzL2JyZWFrcG9pbnQpLiBQbGVhc2UgZW5zdXJlIHRoYXQgQnJlYWtwb2ludCBpcyBpbXBvcnRlZCBhbmQgYXZhaWxhYmxlIGZvciBTaW5ndWxhcml0eSB0byB1c2UuIENvbnRleHQgc2V0IHRvIC0xcHguXCI7XG4gICAgICAkcGFyc2UtbXE6IC0xcHg7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICRicmVha3BvaW50LXBhcnNlOiBicmVha3BvaW50KCRwYXJzZS1tcSk7XG4gICAgICAkYnJlYWtwb2ludC1wYXJzZTogbWFwLWdldCgkYnJlYWtwb2ludC1wYXJzZSwgJ2NvbnRleHQgaG9sZGVyJyk7XG4gICAgICAkYnJlYWtwb2ludC1tcTogbnVsbDtcbiAgICAgIEBpZiAkTW9iaWxlLUZpcnN0IHtcbiAgICAgICAgJGJyZWFrcG9pbnQtbXE6IG1hcC1nZXQoJGJyZWFrcG9pbnQtcGFyc2UsICdtaW4td2lkdGgnKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJGJyZWFrcG9pbnQtbXE6IG1hcC1nZXQoJGJyZWFrcG9pbnQtcGFyc2UsICdtYXgtd2lkdGgnKTtcbiAgICAgIH1cblxuICAgICAgQGlmIGxlbmd0aCgkYnJlYWtwb2ludC1tcSkgPiAxIHtcbiAgICAgICAgQHdhcm4gXCJSZXNwb25zaXZlIGNvbnRleHRzIGFyZSBub3QgYXZhaWxhYmxlIGZvciBgb3JgIHF1ZXJpZXMgYXMgd2hpY2ggcXVlcnkgdG8gdXNlIGlzIGFtYmlndW91cy4gUGxlYXNlIG9ubHkgdXNlIHNpbmdsZSBjb250ZXh0IHF1ZXJpZXMuIENvbnRleHQgc2V0IHRvIC0xcHguXCI7XG4gICAgICAgICRwYXJzZS1tcTogLTFweDtcbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmIGxlbmd0aCgkYnJlYWtwb2ludC1tcSkgPCAxIHtcbiAgICAgICAgQHdhcm4gXCJObyBcIiArIGlmKCRNb2JpbGUtRmlyc3QsICdtaW4td2lkdGgnLCAnbWF4LXdpZHRoJykgKyAnIGNvbnRleHQgZm91bmQuIFBsZWFzZSB1c2UgYSBtZWRpYSBxdWVyeSB3aXRoIHRoZSBjb3JyZWN0IGNvbnRleHQuIENvbnRleHQgc2V0IHRvIC0xcHguJztcbiAgICAgICAgJHBhcnNlLW1xOiAtMXB4O1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkcGFyc2UtbXE6IG50aCgkYnJlYWtwb2ludC1tcSwgMSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGlmICRwYXJzZS1tcSBhbmQgdW5pdCgkcGFyc2UtbXEpID09ICdlbScge1xuICAgICRwYXJzZS1tcTogJHBhcnNlLW1xIC8gMWVtICogMTZweDtcbiAgfVxuXG4gIEByZXR1cm4gKCRwYXJzZS1maW5kICRwYXJzZS1tcSk7XG59XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFwiTmF0dXJhbCBMYW5ndWFnZVwiIFBhcnNpbmdcbi8vXG4vLyBLZXl3b3Jkczpcbi8vICBzcGFuOiAgICAgQ29sdW1uIFNwYW5cbi8vICBhdDogICAgICAgQ29sdW1uIExvY2F0aW9uXG4vLyAgb2Y6ICAgICAgIENvbnRleHRcbi8vICBndXR0ZXJzOiAgR3V0dGVyc1xuLy8gIG91dHB1dDogICBPdXRwdXRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQG1peGluIHNwYW4oJGlucHV0KSB7XG4gICRzcGFuOiAgICAgIG50aCgkaW5wdXQsIDEpO1xuXG4gICRsb2NhdGlvbjogIHBhcnNlLXNwYW4tbGlzdCgnYXQnLCAkaW5wdXQpO1xuICAkY29udGV4dDogICBwYXJzZS1zcGFuLWxpc3QoJ29mJywgJGlucHV0KTtcbiAgJGd1dHRlcjogICAgcGFyc2Utc3Bhbi1saXN0KCdndXR0ZXJzJywgJGlucHV0KTtcbiAgJG91dHB1dDogICAgcGFyc2Utc3Bhbi1saXN0KCdvdXRwdXQnLCAkaW5wdXQpO1xuXG4gIEBpbmNsdWRlIGdyaWQtc3Bhbigkc3BhbiwgJGxvY2F0aW9uLCAkY29udGV4dCwgJGd1dHRlciwgJG91dHB1dClcbn0iLCJAaW1wb3J0IFwibWF0aC9jb2x1bW5zXCI7XG5AaW1wb3J0IFwibWF0aC9ndXR0ZXJzXCI7XG5AaW1wb3J0IFwibWF0aC9jb250ZXh0XCI7XG5AaW1wb3J0IFwibWF0aC9ncmlkXCI7IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBGaW5kIHdpZHRoLCBpbiBwZXJjZW50YWdlcywgb2YgdGhlIGNvbHVtbiBzcGFuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBjb2x1bW4tc3Bhbigkc3BhbiwgJGxvY2F0aW9uLCAkZ3JpZDogbnVsbCwgJGd1dHRlcjogbnVsbCwgJGd1dHRlci1zdHlsZTogbnVsbCkge1xuICAvLyBGaW5kIHRoZSBncmlkIGFuZCBndXR0ZXJzXG4gICRncmlkOiBmaW5kLWdyaWQoJGdyaWQpO1xuICAkZ3V0dGVyOiBmaW5kLWd1dHRlcigkZ3V0dGVyKTtcbiAgJGd1dHRlci1zdHlsZTogZmluZC1ndXR0ZXItc3R5bGUoJGd1dHRlci1zdHlsZSk7XG5cbiAgQGlmIGZpeGVkLWd1dHRlcigkZ3JpZCwgJGd1dHRlciwgJGd1dHRlci1zdHlsZSkge1xuICAgICRndXR0ZXI6IDA7XG4gIH1cblxuICAvLyBAZGVidWcgJGdyaWQ7XG4gIC8vIEBkZWJ1ZyAkZ3V0dGVyO1xuXG4gIC8vIENvbWJpbmUgdGhlIGdyaWQgYW5kIGd1dHRlcnNcbiAgJGdyaWQtYW5kLWd1dHRlcnM6IGNvbHVtbi1zdW0oJGdyaWQsICRndXR0ZXIsICRndXR0ZXItc3R5bGUpO1xuXG4gIC8vIEBkZWJ1ZyAkZ3JpZC1hbmQtZ3V0dGVycztcblxuICAvLyBFcXVhbCB3aWR0aCBncmlkIGFyZSBlYXN5ISBEZWFsIHdpdGggdGhlbSFcbiAgQGlmIHR5cGUtb2YoJGdyaWQpID09ICdudW1iZXInIG9yIGxlbmd0aCgkZ3JpZCkgPT0gMSB7XG4gICAgJHNwYW4tYW5kLWd1dHRlcnM6ICRzcGFuICsgJGd1dHRlciAqICgkc3BhbiAtIDEpO1xuICAgIEByZXR1cm4gJHNwYW4tYW5kLWd1dHRlcnMgLyAkZ3JpZC1hbmQtZ3V0dGVycyAqIDEwMCU7XG4gIH1cbiAgLy8gQXN5bW1ldHJpYyBsaXN0cyBhcmUgaGFyZGVyLCBzbyB3ZSdyZSBnb2luZyB0byB0cmVhdCB0aGVtIGFzIHRoZWlyIG93biBncmlkXG4gIEBlbHNlIGlmIHR5cGUtb2YoJGdyaWQpID09ICdsaXN0JyBvciBsZW5ndGgoJGdyaWQpID4gMSB7XG4gICAgJHNwYW4tYW5kLWd1dHRlcnM6IDA7XG5cbiAgICBAaWYgJGxvY2F0aW9uID09IDEgYW5kICRzcGFuID49IDEge1xuICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkc3BhbiB7XG4gICAgICAgICRzcGFuLWFuZC1ndXR0ZXJzOiAkc3Bhbi1hbmQtZ3V0dGVycyArIG50aCgkZ3JpZCwgJGkpICsgJGd1dHRlcjtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJHRvdGFsOiAkbG9jYXRpb24gKyAkc3BhbiAtIDE7XG4gICAgICBAaWYgJHRvdGFsICE9IDAge1xuICAgICAgICBAZm9yICRpIGZyb20gJGxvY2F0aW9uIHRocm91Z2ggJHRvdGFsIHtcbiAgICAgICAgICAkc3Bhbi1hbmQtZ3V0dGVyczogJHNwYW4tYW5kLWd1dHRlcnMgKyBudGgoJGdyaWQsICRpKSArICRndXR0ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgJHNwYW4tYW5kLWd1dHRlcnM6ICRzcGFuLWFuZC1ndXR0ZXJzIC0gJGd1dHRlcjtcblxuICAgIEByZXR1cm4gJHNwYW4tYW5kLWd1dHRlcnMgLyAkZ3JpZC1hbmQtZ3V0dGVycyAqIDEwMCU7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEB3YXJuIFwiQ2FuJ3QgZmluZCBhIHdvcmtpbmcgc2V0IG9mIGdyaWQhIFRoYXQncyB0ZXJyaWJsZSFcIjtcbiAgICBAcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gRmluZCB0aGUgdG90YWwgc3VtIG9mIHRoZSBncmlkXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBjb2x1bW4tc3VtKCRncmlkLCAkZ3V0dGVyLCAkZ3V0dGVyLXN0eWxlKSB7XG4gICRzcGxpdDogaWYoaW5kZXgoJGd1dHRlci1zdHlsZSwgJ3NwbGl0JyksIHRydWUsIGZhbHNlKTtcblxuICBAaWYgdHlwZS1vZigkZ3JpZCkgPT0gJ251bWJlcicgb3IgbGVuZ3RoKCRncmlkKSA9PSAxIHtcbiAgICBAaWYgJHNwbGl0IHtcbiAgICAgIEByZXR1cm4gbnRoKCRncmlkLCAxKSArICgoY29sdW1uLWNvdW50KG50aCgkZ3JpZCwgMSkpKSAqIG50aCgkZ3V0dGVyLCAxKSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEByZXR1cm4gbnRoKCRncmlkLCAxKSArICgoY29sdW1uLWNvdW50KG50aCgkZ3JpZCwgMSkpIC0gMSkgKiBudGgoJGd1dHRlciwgMSkpO1xuICAgIH1cblxuICB9XG4gIEBlbHNlIGlmIHR5cGUtb2YoJGdyaWQpID09ICdsaXN0JyB7XG4gICAgJHN1bTogMDtcbiAgICBAZWFjaCAkY29sdW1uIGluICRncmlkIHtcbiAgICAgICRzdW06ICRzdW0gKyBudGgoJGNvbHVtbiwgMSk7XG4gICAgfVxuICAgIEBpZiAkc3BsaXQge1xuICAgICAgJHN1bTogJHN1bSArIChjb2x1bW4tY291bnQoJGdyaWQpKSAqIG50aCgkZ3V0dGVyLCAxKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJHN1bTogJHN1bSArIChjb2x1bW4tY291bnQoJGdyaWQpIC0gMSkgKiBudGgoJGd1dHRlciwgMSk7XG4gICAgfVxuICAgIEByZXR1cm4gJHN1bTtcbiAgfVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEZpbmQgdGhlIG51bWJlciBvZiBncmlkXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBjb2x1bW4tY291bnQoJGdyaWQpIHtcbiAgQGlmIHR5cGUtb2YoJGdyaWQpID09ICdudW1iZXInIHtcbiAgICBAcmV0dXJuICRncmlkO1xuICB9XG4gIEBpZiB0eXBlLW9mKCRncmlkKSA9PSAnbGlzdCcge1xuICAgIEBpZiBsZW5ndGgoJGdyaWQpID09IDEge1xuICAgICAgQHJldHVybiBudGgoJGdyaWQsIDEpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAcmV0dXJuIGxlbmd0aCgkZ3JpZCk7XG4gICAgfVxuICB9XG59IiwiQGZ1bmN0aW9uIGd1dHRlci1zcGFuKCRndXR0ZXI6IGZhbHNlLCAkZ3JpZDogZmFsc2UsICRndXR0ZXItc3R5bGU6IGZhbHNlKSB7XG5cbiAgLy8gRmluZCB0aGUgY29sdW1ucyBhbmQgZ3V0dGVyc1xuICAkZ3JpZDogZmluZC1ncmlkKCRncmlkKTtcbiAgJGd1dHRlcjogZmluZC1ndXR0ZXIoJGd1dHRlcik7XG4gICRndXR0ZXItc3R5bGU6IGZpbmQtZ3V0dGVyLXN0eWxlKCRndXR0ZXItc3R5bGUpO1xuXG4gIEBpZiBmaXhlZC1ndXR0ZXIoJGdyaWQsICRndXR0ZXIsICRndXR0ZXItc3R5bGUpIHtcbiAgICBAcmV0dXJuIG50aCgkZ3V0dGVyLCAxKTtcbiAgfVxuXG4gIC8vIENvbWJpbmUgdGhlIGNvbHVtbnMgYW5kIGd1dHRlcnNcbiAgJGdyaWQtYW5kLWd1dHRlcnM6IGNvbHVtbi1zdW0oJGdyaWQsICRndXR0ZXIsICRndXR0ZXItc3R5bGUpO1xuXG4gIEByZXR1cm4gKG50aCgkZ3V0dGVyLCAxKSAvICRncmlkLWFuZC1ndXR0ZXJzKSAqIDEwMCVcbn0iLCJAZnVuY3Rpb24gY29udGV4dCgkcHJpbWFyeSwgJHNlY29uZGFyeSkge1xuICBAcmV0dXJuICgkcHJpbWFyeSAvICRzZWNvbmRhcnkpICogMTAwJTtcbn0iLCJAZnVuY3Rpb24gZ3JpZC1zcGFuKCRzcGFuLCAkbG9jYXRpb24sICRncmlkOiBmYWxzZSwgJGd1dHRlcjogZmFsc2UsICRndXR0ZXItc3R5bGU6IGZhbHNlKSB7XG4gIEByZXR1cm4gY29sdW1uLXNwYW4oJHNwYW4sICRsb2NhdGlvbiwgJGdyaWQsICRndXR0ZXIsICRndXR0ZXItc3R5bGUpICsgZ3V0dGVyLXNwYW4oJGd1dHRlciwgJGdyaWQsICRndXR0ZXItc3R5bGUpO1xufSIsIkBpbXBvcnQgXCJncmlkcy9hZGRcIjtcbkBpbXBvcnQgXCJncmlkcy9maW5kXCI7IiwiLy8gQWNjZXB0cyBhIGdyaWQgZGVmaW5pdGlvbiBpbiB0aGUgaHVtYW4tcmVhZGFibGUgZm9ybWF0LiBDb252ZXJ0cyBpdCB0byB0aGUgaW50ZXJuYWwgZm9ybWF0LFxuLy8gYXBwZW5kcyBpdCB0byBhIGxpc3Qgb2YgZ3JpZHMgYW5kIHJldHVybnMgdGhlIHJlc3VsdGluZyBsaXN0LlxuLy9cbi8vIE5vdGUgdGhhdCB0aGlzIGZ1bmN0aW9uIG9ubHkgcmV0dXJucyBhIG5ldyBsaXN0LCBpdCBkb2VzIG5vdCBtb2RpZnkgdGhlIHNvdXJjZSBsaXN0LlxuLy9cbi8vIGFkZC1ncmlkKCRncmlkLWRlZmluaXRpb24sICRhcHBlbmQtdG8tbGlzdClcbi8vIC0gJGdyaWQtZGVmaW5pdGlvbiA6IDxkZWZpbml0aW9uPiAgU2VlIGRvY3VtZW50YXRpb24gZm9yIHN5bnRheDpcbi8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHR0cHM6Ly9naXRodWIuY29tL1RlYW0tU2Fzcy9TaW5ndWxhcml0eS93aWtpL0NyZWF0aW5nLUdyaWRzXG4vLyAtICRhcHBlbmQtdG8tbGlzdCAgOiBbbGlzdF0gICAgICAgIEEgbGlzdCB0byBhcHBlbmQgdG8uXG4vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlZmF1bHRzIHRvICRncmlkcyBpZiBub25lIGlzIHNwZWNpZmllZC5cbkBmdW5jdGlvbiBhZGQtZ3JpZCgkZ3JpZC1kZWZpbml0aW9uLCAkY3VzdG9tLW1hcDogZmFsc2UpIHtcbiAgJFBhcnNlZDogICAgICBwYXJzZS1hZGQoJGdyaWQtZGVmaW5pdGlvbik7IC8vIFBhcnNlcyBncmlkIGRlZmluaXRpb24gdG8gZ3JpZC9icmVha3BvaW50XG4gICRHcmlkOiAgICAgICAgbnRoKCRQYXJzZWQsIDEpOyAvLyBFLiBnLiBgKDxncmlkPilgLlxuICAkQnJlYWtwb2ludDogIG50aCgkUGFyc2VkLCAyKTsgLy8gRWl0aGVyIGAoPGJyZWFrcG9pbnQ+KWAgb3IgZmFsc2UuXG4gICRNb2JpbGUtRmlyc3Q6IHNncy1nZXQoJ21vYmlsZSBmaXJzdCcpO1xuICAkR3JpZC1NYXA6ICgpO1xuXG4gIC8vIERldGVybWluZSBpZiBhIGN1c3RvbSBtYXAgb3IgdGhlIGRlZmF1bHQgbWFwcyBzaG91bGQgYmUgdXNlZC5cbiAgQGlmICRjdXN0b20tbWFwIHtcbiAgICAkR3JpZC1NYXA6ICRjdXN0b20tbWFwO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAaWYgc2dzLWhhcygnZ3JpZHMnKSB7XG4gICAgICAkR3JpZC1NYXA6IHNncy1nZXQoJ2dyaWRzJyk7XG4gICAgfVxuICB9XG4gICRHcmlkLUtleS1MZW5ndGg6IGxlbmd0aChtYXAta2V5cygkR3JpZC1NYXApKTtcblxuICAvLyBDaGVjayB3aGV0aGVyIHRoZSBkZWZpbml0aW9uIHdpbGwgYmUgdGhlIGZpcnN0IG9uZSBpbiB0aGUgbGlzdFxuICAvLyBhbmQgd2hldGhlciBpdCBoYXMgbm8gYnJlYWtwb2ludCBzcGVjaWZpZWQuXG4gIEBpZiAkQnJlYWtwb2ludCA9PSBudWxsIHtcbiAgICAvLyBSZXR1cm5zIHRoZSBmaXJzdCBpdGVtIG9mIHRoZSBsaXN0LCBlLiBnLiBgKDxncmlkPilgXG4gICAgJEdyaWQtTWFwOiBtYXAtbWVyZ2UoJEdyaWQtTWFwLCAoLTFweDogJEdyaWQpKTtcbiAgfVxuICAvLyBJRiB0aGUgbGlzdCBpcyBpbml0aWF0ZWQgd2l0aCBhIGxpc3Qgb2YgZ3JpZCBjb2x1bW5zIG5lZWQgdG8gc3RhcnQgb2ZmXG4gIC8vIGEgY29tbWEgc2VwcmF0ZWQgbGlzdC5cbiAgQGVsc2Uge1xuICAgIEBpZiBub3QgKG1hcC1oYXMta2V5KCRHcmlkLU1hcCwgLTFweCkpIHtcbiAgICAgICRHcmlkLU1hcDogbWFwLW1lcmdlKCRHcmlkLU1hcCwgbWFwLWdldCgkU2luZ3VsYXJpdHktU2V0dGluZ3MsICdncmlkcycpKTtcbiAgICB9XG4gICAgJEdyaWQtTWFwOiBtYXAtbWVyZ2UoJEdyaWQtTWFwLCAoJEJyZWFrcG9pbnQ6ICRHcmlkKSk7XG4gIH1cblxuICAkR3JpZC1NYXA6IHNvcnQtbWFwKCRHcmlkLU1hcCwgbm90ICRNb2JpbGUtRmlyc3QpO1xuXG4gIEByZXR1cm4gJEdyaWQtTWFwO1xufVxuXG5cbkBtaXhpbiBhZGQtZ3JpZCgkZ3JpZC1kZWZpbml0aW9uKSB7XG4gICRBZGQtR3JpZDogYWRkLWdyaWQoJGdyaWQtZGVmaW5pdGlvbik7XG4gICRIT0xERVI6IHNncy1zZXQoJ2dyaWRzJywgJEFkZC1HcmlkKTtcbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEZpbmQgR3JpZFxuLy9cbi8vIEZpbmRzIHRoZSBncmlkIHRoYXQgeW91IGFyZSBvbi5cbi8vIEZyb20gU2luZ3VsYXJpdHlcbi8vIE11c3QgYmUgdXNpbmcgQnJlYWtwb2ludCB0byB3b3JrIHByb3Blcmx5XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBmaW5kLWdyaWQoJHVzZXItY29sdW1uczogbnVsbCkge1xuXG4gIC8vIFdlIHN1cHBseSBhIGRlZmF1bHQgaWYgdGhlIHVzZXIgaGFzbid0IHNldCBhbnkgZ3JpZHMgYW5kIGhhc24ndCBwYXNzZWQgaW4gYSBjdXN0b20gY29sdW1uIHNldFxuICAvLyBUaGUgZGVmYXVsdCBzdXBwbGllZCBpcyBiYXNlZCBvbiBvcmlnaW5hbCBTdXN5IG9wdGlvbnNcbiAgJEdyaWRzOiBzZ3MtZ2V0KCdncmlkcycpO1xuXG4gICRGb3VuZDogZmluZC1vYmplY3QoJEdyaWRzLCAkdXNlci1jb2x1bW5zKTtcblxuICBAaWYgbGVuZ3RoKCRGb3VuZCkgPT0gMSB7XG4gICAgJEZvdW5kOiBudGgoJEZvdW5kLCAxKTtcbiAgfVxuXG4gIEByZXR1cm4gJEZvdW5kO1xufSIsIkBpbXBvcnQgXCJndXR0ZXJzL2FkZFwiO1xuQGltcG9ydCBcImd1dHRlcnMvZmluZFwiOyIsIi8vIEFjY2VwdHMgYSBndXR0ZXIgZGVmaW5pdGlvbiBpbiB0aGUgaHVtYW4tcmVhZGFibGUgZm9ybWF0LiBDb252ZXJ0cyBpdCB0byB0aGUgaW50ZXJuYWwgZm9ybWF0LFxuLy8gYXBwZW5kcyBpdCB0byBhIGxpc3Qgb2YgZ3V0dGVyIGFuZCByZXR1cm5zIHRoZSByZXN1bHRpbmcgbGlzdC5cbi8vXG4vLyBOb3RlIHRoYXQgdGhpcyBmdW5jdGlvbiBvbmx5IHJldHVybnMgYSBuZXcgbGlzdCwgaXQgZG9lcyBub3QgbW9kaWZ5IHRoZSBzb3VyY2UgbGlzdC5cbi8vXG4vLyBhZGQtZ3V0dGVyKCRHdXR0ZXItZGVmaW5pdGlvbiwgJGFwcGVuZC10by1saXN0KVxuLy8gLSAkZ3V0dGVyLWRlZmluaXRpb24gOiA8ZGVmaW5pdGlvbj4gIFNlZSBkb2N1bWVudGF0aW9uIGZvciBzeW50YXg6XG4vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHR0cHM6Ly9naXRodWIuY29tL1RlYW0tU2Fzcy9TaW5ndWxhcml0eS93aWtpL0NyZWF0aW5nLUd1dHRlcnNcbi8vIC0gJGFwcGVuZC10by1saXN0ICAgIDogW2xpc3RdICAgICAgICBBIGxpc3QgdG8gYXBwZW5kIHRvLlxuLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlZmF1bHRzIHRvICRndXR0ZXJzIGlmIG5vbmUgaXMgc3BlY2lmaWVkLlxuQGZ1bmN0aW9uIGFkZC1ndXR0ZXIoJGd1dHRlci1kZWZpbml0aW9uLCAkY3VzdG9tLW1hcDogZmFsc2UpIHtcbiAgJFBhcnNlZDogICAgICBwYXJzZS1hZGQoJGd1dHRlci1kZWZpbml0aW9uKTsgLy8gUGFyc2VzIEd1dHRlciBkZWZpbml0aW9uIHRvIEd1dHRlci9icmVha3BvaW50XG4gICRHdXR0ZXI6ICAgICAgICBudGgoJFBhcnNlZCwgMSk7IC8vIEUuIGcuIGAoPEd1dHRlcj4pYC5cbiAgJEJyZWFrcG9pbnQ6ICBudGgoJFBhcnNlZCwgMik7IC8vIEVpdGhlciBgKDxicmVha3BvaW50PilgIG9yIGZhbHNlLlxuICAkTW9iaWxlLUZpcnN0OiBzZ3MtZ2V0KCdtb2JpbGUgZmlyc3QnKTtcbiAgJEd1dHRlci1NYXA6ICgpO1xuXG4gIC8vIERldGVybWluZSBpZiBhIGN1c3RvbSBtYXAgb3IgdGhlIGRlZmF1bHQgbWFwcyBzaG91bGQgYmUgdXNlZC5cbiAgQGlmICRjdXN0b20tbWFwIHtcbiAgICAkR3V0dGVyLU1hcDogJGN1c3RvbS1tYXA7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpZiBzZ3MtaGFzKCdndXR0ZXJzJykge1xuICAgICAgJEd1dHRlci1NYXA6IHNncy1nZXQoJ2d1dHRlcnMnKTtcbiAgICB9XG4gIH1cbiAgJEd1dHRlci1LZXktTGVuZ3RoOiBsZW5ndGgobWFwLWtleXMoJEd1dHRlci1NYXApKTtcblxuICAvLyBDaGVjayB3aGV0aGVyIHRoZSBkZWZpbml0aW9uIHdpbGwgYmUgdGhlIGZpcnN0IG9uZSBpbiB0aGUgbGlzdFxuICAvLyBhbmQgd2hldGhlciBpdCBoYXMgbm8gYnJlYWtwb2ludCBzcGVjaWZpZWQuXG4gIEBpZiAkQnJlYWtwb2ludCA9PSBudWxsIHtcbiAgICAvLyBSZXR1cm5zIHRoZSBmaXJzdCBpdGVtIG9mIHRoZSBsaXN0LCBlLiBnLiBgKDxHdXR0ZXI+KWBcbiAgICAkR3V0dGVyLU1hcDogbWFwLW1lcmdlKCRHdXR0ZXItTWFwLCAoLTFweDogJEd1dHRlcikpO1xuICB9XG4gIC8vIElGIHRoZSBsaXN0IGlzIGluaXRpYXRlZCB3aXRoIGEgbGlzdCBvZiBHdXR0ZXIgY29sdW1ucyBuZWVkIHRvIHN0YXJ0IG9mZlxuICAvLyBhIGNvbW1hIHNlcHJhdGVkIGxpc3QuXG4gIEBlbHNlIHtcbiAgICBAaWYgbm90IChtYXAtaGFzLWtleSgkR3V0dGVyLU1hcCwgLTFweCkpIHtcbiAgICAgICRHdXR0ZXItTWFwOiBtYXAtbWVyZ2UoJEd1dHRlci1NYXAsIG1hcC1nZXQoJFNpbmd1bGFyaXR5LVNldHRpbmdzLCAnZ3V0dGVycycpKTtcbiAgICB9XG4gICAgJEd1dHRlci1NYXA6IG1hcC1tZXJnZSgkR3V0dGVyLU1hcCwgKCRCcmVha3BvaW50OiAkR3V0dGVyKSk7XG4gIH1cblxuICAkR3V0dGVyLU1hcDogc29ydC1tYXAoJEd1dHRlci1NYXAsIG5vdCAkTW9iaWxlLUZpcnN0KTtcblxuICBAcmV0dXJuICRHdXR0ZXItTWFwO1xufVxuXG5AbWl4aW4gYWRkLWd1dHRlcigkZ3V0dGVyLWRlZmluaXRpb24pIHtcbiAgJEFkZC1HdXR0ZXI6IGFkZC1ndXR0ZXIoJGd1dHRlci1kZWZpbml0aW9uKTtcbiAgJEhPTERFUjogc2dzLXNldCgnZ3V0dGVycycsICRBZGQtR3V0dGVyKTtcbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEZpbmQgZ3V0dGVyXG4vL1xuLy8gRmluZHMgdGhlIGd1dHRlciB0aGF0IHlvdSBhcmUgb24uXG4vLyBGcm9tIFNpbmd1bGFyaXR5XG4vLyBNdXN0IGJlIHVzaW5nIEJyZWFrcG9pbnQgdG8gd29yayBwcm9wZXJseVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gZmluZC1ndXR0ZXIoJHVzZXItZ3V0dGVyczogbnVsbCkge1xuXG4gIC8vIFdlIHN1cHBseSBhIGRlZmF1bHQgaWYgdGhlIHVzZXIgaGFzbid0IHNldCBhbnkgZ3V0dGVycyBhbmQgaGFzbid0IHBhc3NlZCBpbiBhIGN1c3RvbSBjb2x1bW4gc2V0XG4gIC8vIFRoZSBkZWZhdWx0IHN1cHBsaWVkIGlzIGJhc2VkIG9uIG9yaWdpbmFsIFN1c3kgb3B0aW9uc1xuICAkR3V0dGVyczogc2dzLWdldCgnZ3V0dGVycycpO1xuXG4gICRGb3VuZDogZmluZC1vYmplY3QoJEd1dHRlcnMsICR1c2VyLWd1dHRlcnMpO1xuXG4gIEBpZiBsZW5ndGgoJEZvdW5kKSA9PSAxIHtcbiAgICAkRm91bmQ6IG50aCgkRm91bmQsIDEpO1xuICB9XG5cbiAgQHJldHVybiAkRm91bmQ7XG59IiwiQGltcG9ydCBcImd1dHRlci1zdHlsZXMvYWRkXCI7XG5AaW1wb3J0IFwiZ3V0dGVyLXN0eWxlcy9maW5kXCI7XG5AaW1wb3J0IFwiZ3V0dGVyLXN0eWxlcy9oZWxwZXJzXCI7IiwiLy8gQWNjZXB0cyBhIGd1dHRlci1zdHlsZSBzdHlsZSBkZWZpbml0aW9uIGluIHRoZSBodW1hbi1yZWFkYWJsZSBmb3JtYXQuIENvbnZlcnRzIGl0IHRvIHRoZSBpbnRlcm5hbCBmb3JtYXQsXG4vLyBhcHBlbmRzIGl0IHRvIGEgbGlzdCBvZiBndXR0ZXItc3R5bGUgc3R5bGVzIGFuZCByZXR1cm5zIHRoZSByZXN1bHRpbmcgbGlzdC5cbi8vXG4vLyBOb3RlIHRoYXQgdGhpcyBmdW5jdGlvbiBvbmx5IHJldHVybnMgYSBuZXcgbGlzdCwgaXQgZG9lcyBub3QgbW9kaWZ5IHRoZSBzb3VyY2UgbGlzdC5cbi8vXG4vLyBhZGQtZ3V0dGVyLXN0eWxlLXN0eWxlKCRndXR0ZXItc3R5bGUtc3R5bGUtZGVmaW5pdGlvbiwgJGFwcGVuZC10by1saXN0KVxuLy8gLSAkZ3V0dGVyLXN0eWxlLWRlZmluaXRpb24gOiA8ZGVmaW5pdGlvbj4gIFNlZSBkb2N1bWVudGF0aW9uIGZvciBzeW50YXg6XG4vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHR0cHM6Ly9naXRodWIuY29tL1RlYW0tU2Fzcy9TaW5ndWxhcml0eS93aWtpL0NyZWF0aW5nLUdyaWRzXG4vLyAtICRhcHBlbmQtdG8tbGlzdCAgICA6IFtsaXN0XSAgICAgICAgQSBsaXN0IHRvIGFwcGVuZCB0by5cbi8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWZhdWx0cyB0byAkZ3V0dGVyLXN0eWxlcyBpZiBub25lIGlzIHNwZWNpZmllZC5cbkBmdW5jdGlvbiBhZGQtZ3V0dGVyLXN0eWxlKCRndXR0ZXItc3R5bGUtZGVmaW5pdGlvbiwgJGN1c3RvbS1tYXA6IGZhbHNlKSB7XG4gICRQYXJzZWQ6ICAgICAgICBwYXJzZS1hZGQoJGd1dHRlci1zdHlsZS1kZWZpbml0aW9uKTsgLy8gUGFyc2VzIGd1dHRlci1zdHlsZSBkZWZpbml0aW9uIHRvIGd1dHRlci1zdHlsZS9icmVha3BvaW50XG4gICRHdXR0ZXItU3R5bGU6ICBudGgoJFBhcnNlZCwgMSk7IC8vIEUuIGcuIGAoPGd1dHRlci1zdHlsZT4pYC5cbiAgJEJyZWFrcG9pbnQ6ICAgIG50aCgkUGFyc2VkLCAyKTsgLy8gRWl0aGVyIGAoPGJyZWFrcG9pbnQ+KWAgb3IgZmFsc2UuXG4gICRNb2JpbGUtRmlyc3Q6ICBzZ3MtZ2V0KCdtb2JpbGUgZmlyc3QnKTtcbiAgJEd1dHRlci1TdHlsZS1NYXA6ICgpO1xuXG4gIC8vIERldGVybWluZSBpZiBhIGN1c3RvbSBtYXAgb3IgdGhlIGRlZmF1bHQgbWFwcyBzaG91bGQgYmUgdXNlZC5cbiAgQGlmICRjdXN0b20tbWFwIHtcbiAgICAkR3V0dGVyLVN0eWxlLU1hcDogJGN1c3RvbS1tYXA7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpZiBzZ3MtaGFzKCdndXR0ZXIgc3R5bGVzJykge1xuICAgICAgJEd1dHRlci1TdHlsZS1NYXA6IHNncy1nZXQoJ2d1dHRlciBzdHlsZXMnKTtcbiAgICB9XG4gIH1cbiAgJEd1dHRlci1TdHlsZS1LZXktTGVuZ3RoOiBsZW5ndGgobWFwLWtleXMoJEd1dHRlci1TdHlsZS1NYXApKTtcblxuICAvLyBDaGVjayB3aGV0aGVyIHRoZSBkZWZpbml0aW9uIHdpbGwgYmUgdGhlIGZpcnN0IG9uZSBpbiB0aGUgbGlzdFxuICAvLyBhbmQgd2hldGhlciBpdCBoYXMgbm8gYnJlYWtwb2ludCBzcGVjaWZpZWQuXG4gIEBpZiAkQnJlYWtwb2ludCA9PSBudWxsIHtcbiAgICAvLyBSZXR1cm5zIHRoZSBmaXJzdCBpdGVtIG9mIHRoZSBsaXN0LCBlLiBnLiBgKDxndXR0ZXItc3R5bGU+KWBcbiAgICAkR3V0dGVyLVN0eWxlLU1hcDogbWFwLW1lcmdlKCRHdXR0ZXItU3R5bGUtTWFwLCAoLTFweDogJEd1dHRlci1TdHlsZSkpO1xuICB9XG4gIC8vIElGIHRoZSBsaXN0IGlzIGluaXRpYXRlZCB3aXRoIGEgbGlzdCBvZiBndXR0ZXItc3R5bGUgY29sdW1ucyBuZWVkIHRvIHN0YXJ0IG9mZlxuICAvLyBhIGNvbW1hIHNlcHJhdGVkIGxpc3QuXG4gIEBlbHNlIHtcbiAgICBAaWYgbm90IChtYXAtaGFzLWtleSgkR3V0dGVyLVN0eWxlLU1hcCwgLTFweCkpIHtcbiAgICAgICRHdXR0ZXItU3R5bGUtTWFwOiBtYXAtbWVyZ2UoJEd1dHRlci1TdHlsZS1NYXAsIG1hcC1nZXQoJFNpbmd1bGFyaXR5LVNldHRpbmdzLCAnZ3V0dGVyIHN0eWxlcycpKTtcbiAgICB9XG4gICAgJEd1dHRlci1TdHlsZS1NYXA6IG1hcC1tZXJnZSgkR3V0dGVyLVN0eWxlLU1hcCwgKCRCcmVha3BvaW50OiAkR3V0dGVyLVN0eWxlKSk7XG4gIH1cblxuICAkR3V0dGVyLVN0eWxlLU1hcDogc29ydC1tYXAoJEd1dHRlci1TdHlsZS1NYXAsIG5vdCAkTW9iaWxlLUZpcnN0KTtcblxuICBAcmV0dXJuICRHdXR0ZXItU3R5bGUtTWFwO1xufVxuXG5AbWl4aW4gYWRkLWd1dHRlci1zdHlsZSgkZ3V0dGVyLXN0eWxlLWRlZmluaXRpb24pIHtcbiAgJEFkZC1ndXR0ZXItc3R5bGU6IGFkZC1ndXR0ZXItc3R5bGUoJGd1dHRlci1zdHlsZS1kZWZpbml0aW9uKTtcbiAgJEhPTERFUjogc2dzLXNldCgnZ3V0dGVyIHN0eWxlcycsICRBZGQtZ3V0dGVyLXN0eWxlKTtcbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEZpbmQgZ3V0dGVyIHN0eWxlXG4vL1xuLy8gRmluZHMgdGhlIGd1dHRlciBzdHlsZSB0aGF0IHlvdSBhcmUgd29ya2luZyB3aXRoLlxuLy8gRnJvbSBTaW5ndWxhcml0eVxuLy8gTXVzdCBiZSB1c2luZyBCcmVha3BvaW50IHRvIHdvcmsgcHJvcGVybHlcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGZpbmQtZ3V0dGVyLXN0eWxlKCR1c2VyLWd1dHRlci1zdHlsZXM6IG51bGwpIHtcblxuICAvLyBXZSBzdXBwbHkgYSBkZWZhdWx0IGlmIHRoZSB1c2VyIGhhc24ndCBzZXQgYW55IGd1dHRlcnMgYW5kIGhhc24ndCBwYXNzZWQgaW4gYSBjdXN0b20gY29sdW1uIHNldFxuICAvLyBUaGUgZGVmYXVsdCBzdXBwbGllZCBpcyBiYXNlZCBvbiBvcmlnaW5hbCBTdXN5IG9wdGlvbnNcbiAgJEd1dHRlcnMtU3R5bGVzOiBzZ3MtZ2V0KCdndXR0ZXIgc3R5bGVzJyk7XG5cbiAgJEZvdW5kOiBmaW5kLW9iamVjdCgkR3V0dGVycy1TdHlsZXMsICR1c2VyLWd1dHRlci1zdHlsZXMpO1xuXG4gIEBpZiBsZW5ndGgoJEZvdW5kKSA9PSAxIHtcbiAgICAkRm91bmQ6IG50aCgkRm91bmQsIDEpO1xuICB9XG5cbiAgQHJldHVybiAkRm91bmQ7XG59IiwiQGZ1bmN0aW9uIGZpeGVkLWd1dHRlcigkdXNlci1jb2x1bW5zLCAkdXNlci1ndXR0ZXIsICR1c2VyLWd1dHRlci1zdHlsZSkge1xuICBAaWYgaW5kZXgoJHVzZXItZ3V0dGVyLXN0eWxlLCAnZml4ZWQnKSB7XG4gICAgLy8gQGRlYnVnICdGaXhlZCBpbiBvdXRwdXQgc3R5bGUnO1xuICAgIEByZXR1cm4gdHJ1ZTtcbiAgfVxuICBAZWxzZSBpZiB0eXBlLW9mKCR1c2VyLWNvbHVtbnMpID09ICdudW1iZXInIGFuZCBub3QgdW5pdGxlc3MoJHVzZXItZ3V0dGVyKSB7XG4gICAgLy8gQGRlYnVnICdFcXVhbCBjb2x1bW5zIHdpdGggYSB1bml0IGJhc2VkIGd1dHRlcic7XG4gICAgQHJldHVybiB0cnVlO1xuICB9XG4gIEBlbHNlIGlmIHR5cGUtb2YoJHVzZXItY29sdW1ucykgPT0gJ2xpc3QnIHtcbiAgICBAaWYgdW5pdChudGgoJHVzZXItY29sdW1ucywgMSkpICE9IHVuaXQoJHVzZXItZ3V0dGVyKSB7XG4gICAgICAvLyBAZGVidWcgJ0NvbHVtbnMgYW5kIGd1dHRlcnMgYXJlIGRpZmZlcmVudCB1bml0cyc7XG4gICAgICBAcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgQHJldHVybiBmYWxzZTtcbn1cblxuQGZ1bmN0aW9uIGd1dHRlci1wcm9wZXJ0eSgkdXNlci1jb2x1bW5zLCAkdXNlci1ndXR0ZXIsICR1c2VyLWd1dHRlci1zdHlsZSkge1xuICBAaWYgZml4ZWQtZ3V0dGVyKCR1c2VyLWNvbHVtbnMsICR1c2VyLWd1dHRlciwgJHVzZXItZ3V0dGVyLXN0eWxlKSB7XG4gICAgQHJldHVybiAncGFkZGluZyc7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gJ21hcmdpbic7XG4gIH1cbn0iLCJAaW1wb3J0IFwiYXBpL2Zsb2F0XCI7XG5AaW1wb3J0IFwiYXBpL2lzb2xhdGlvblwiO1xuQGltcG9ydCBcImFwaS9jYWxjXCI7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gTWFzdGVyIEdyaWQgU3BhbiBtaXhpblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AbWl4aW4gZ3JpZC1zcGFuKCRzcGFuLCAkbG9jYXRpb246IDEsICRncmlkOiBudWxsLCAkZ3V0dGVyOiBudWxsLCAkb3V0cHV0LXN0eWxlOiBudWxsLCAkZ3V0dGVyLXN0eWxlOiBudWxsLCAkb3B0aW9uczogbnVsbCkge1xuXG4gIEBpZiAkb3V0cHV0LXN0eWxlID09IG51bGwge1xuICAgICRvdXRwdXQtc3R5bGU6IHNncy1nZXQoJ291dHB1dCcpO1xuICB9XG5cbiAgJEdyaWQ6IGZpbmQtZ3JpZCgkZ3JpZCk7XG4gICRHdXR0ZXI6IGZpbmQtZ3V0dGVyKCRndXR0ZXIpO1xuICAkU3R5bGU6IGZpbmQtZ3V0dGVyLXN0eWxlKCRndXR0ZXItc3R5bGUpO1xuXG4gICRTdGFydC1Sb3c6IHN0YXJ0LXJvdygkbG9jYXRpb24pO1xuICAkRW5kLVJvdzogZW5kLXJvdygkc3BhbiwgJGxvY2F0aW9uLCAkR3JpZCk7XG5cbiAgJEZpeGVkLUd1dHRlcjogZml4ZWQtZ3V0dGVyKCRHcmlkLCAkR3V0dGVyLCAkU3R5bGUpO1xuICAkU3BsaXQtR3V0dGVyOiBpbmRleCgkU3R5bGUsICdzcGxpdCcpO1xuICAkR3V0dGVyLVByb3BlcnR5OiBndXR0ZXItcHJvcGVydHkoJEdyaWQsICRHdXR0ZXIsICRTdHlsZSk7XG5cbiAgJERpcmVjdGlvbjogc2dzLWdldCgnZGlyZWN0aW9uJyk7XG4gICRGcm9tOiBpZigkb3B0aW9ucyBhbmQgdHlwZS1vZigkb3B0aW9ucykgPT0gJ21hcCcsIGlmKG1hcC1nZXQoJG9wdGlvbnMsICdmcm9tJyksIG1hcC1nZXQoJG9wdGlvbnMsICdmcm9tJyksICREaXJlY3Rpb24pLCAkRGlyZWN0aW9uKTtcbiAgJEZyb206IGlmKCRGcm9tID09ICdsdHInIG9yICRGcm9tID09ICdydGwnLCBuYW1lZC1kaXJlY3Rpb24oJEZyb20pLCAkRnJvbSk7XG5cbiAgJEhvbGRlcjogKCk7XG4gIEBlYWNoICRrLCAkdiBpbiAkb3B0aW9ucyB7XG4gICAgJEhvbGRlcjogaWYoJGsgPT0gJ2Zyb20nLCAkSG9sZGVyLCBtYXAtbWVyZ2UoJEhvbGRlciwgKCRrOiAkdikpKTtcbiAgfVxuICAkb3B0aW9uczogaWYobGVuZ3RoKCRIb2xkZXIpID4gMCwgJEhvbGRlciwgbnVsbCk7XG5cbiAgJFNwYW4tTWFwOiAoXG4gICAgJ3NwYW4nOiAkc3BhbixcbiAgICAnbG9jYXRpb24nOiAkbG9jYXRpb24sXG4gICAgJ2dyaWQnOiAkR3JpZCxcbiAgICAnZ3V0dGVyJzogJEd1dHRlcixcbiAgICAnc3R5bGUnOiAkU3R5bGUsXG4gICAgJ3N0YXJ0IHJvdyc6ICRTdGFydC1Sb3csXG4gICAgJ2VuZCByb3cnOiAkRW5kLVJvdyxcbiAgICAnZml4ZWQgZ3V0dGVyJzogJEZpeGVkLUd1dHRlcixcbiAgICAnc3BsaXQgZ3V0dGVyJzogJFNwbGl0LUd1dHRlcixcbiAgICAnZ3V0dGVyIHByb3BlcnR5JzogJEd1dHRlci1Qcm9wZXJ0eSxcbiAgICAnb3B0aW9ucyc6ICRvcHRpb25zXG4gICk7XG5cbiAgQGlmIHNncy1nZXQoJ2RlYnVnJykgIT0gZmFsc2Uge1xuICAgIC1zZ3Mtc3Bhbi1zZXR0aW5nczogaW5zcGVjdCgkU3Bhbi1NYXApO1xuICB9XG5cblxuICBAaWYgZnVuY3Rpb24tZXhpc3RzKCdvdXRwdXQtI3skb3V0cHV0LXN0eWxlfScpIHtcbiAgICAkTGVmdDogKCk7XG4gICAgJFJpZ2h0OiAoKTtcblxuICAgIEBpZiAkRGlyZWN0aW9uID09ICdib3RoJyBvciAkRnJvbSA9PSAnbGVmdCcgb3IgKCREaXJlY3Rpb24gPT0gJ3J0bCcgYW5kICRGcm9tID09ICdvcHBvc2l0ZScpIHtcbiAgICAgICRMZWZ0OiBjYWxsKCdvdXRwdXQtI3skb3V0cHV0LXN0eWxlfScsIG1hcC1tZXJnZSgkU3Bhbi1NYXAsICgnZGlyZWN0aW9uJzogbGVmdCkpKTtcbiAgICB9XG5cbiAgICBAaWYgJERpcmVjdGlvbiA9PSAnYm90aCcgb3IgJEZyb20gPT0gJ3JpZ2h0JyBvciAoJERpcmVjdGlvbiA9PSAnbHRyJyBhbmQgJEZyb20gPT0gJ29wcG9zaXRlJykge1xuICAgICAgJFJpZ2h0OiBjYWxsKCdvdXRwdXQtI3skb3V0cHV0LXN0eWxlfScsIG1hcC1tZXJnZSgkU3Bhbi1NYXAsICgnZGlyZWN0aW9uJzogcmlnaHQpKSk7XG4gICAgfVxuXG4gICAgJExlZnQtS2V5czogbWFwLWtleXMoJExlZnQpO1xuICAgICRSaWdodC1LZXlzOiBtYXAta2V5cygkUmlnaHQpO1xuICAgICRFeGNsdWRlOiAoKTtcblxuICAgIEBlYWNoICRrZXkgaW4gJExlZnQtS2V5cyB7XG4gICAgICBAaWYgaW5kZXgoJFJpZ2h0LUtleXMsICRrZXkpIHtcbiAgICAgICAgQGlmIG1hcC1nZXQoJFJpZ2h0LCAka2V5KSA9PSBtYXAtZ2V0KCRMZWZ0LCAka2V5KSB7XG4gICAgICAgICAgJEV4Y2x1ZGU6IGFwcGVuZCgkRXhjbHVkZSwgJGtleSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBbHdheXMgdHJ5IGFuZCBwcmludCB0aGUgTGVmdCB2YWx1ZVxuICAgIEBpbmNsdWRlIGdyaWQtc3Bhbi1idWlsZC1leGNsdWRlKCRMZWZ0LCAkRXhjbHVkZSwgZmFsc2UpO1xuXG4gICAgLy8gSWYgRGlyZWN0aW9uIGlzIEJvdGggb3IgUlRMLCBhZGQgdGhlIFJUTCBhdHRyaWJ1dGUgc2VsZWN0b3JcbiAgICBAaWYgJERpcmVjdGlvbiA9PSAnYm90aCcgb3IgJERpcmVjdGlvbiA9PSAncnRsJyB7XG4gICAgICBbZGlyPVwicnRsXCJdICYge1xuICAgICAgICBAaW5jbHVkZSBncmlkLXNwYW4tYnVpbGQtZXhjbHVkZSgkUmlnaHQsICRFeGNsdWRlLCB0cnVlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1zcGFuLWJ1aWxkLWV4Y2x1ZGUoJFJpZ2h0LCAkRXhjbHVkZSwgdHJ1ZSk7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAd2FybiBcIlRoZXJlIGRvZXNuJ3QgYXBwZWFyIHRvIGJlIGFuIG91dHB1dCBzdHlsZSBuYW1lZCBgI3skb3V0cHV0LXN0eWxlfWAuIFBsZWFzZSBlbnN1cmUgdGhhdCB0aGUgZnVuY3Rpb24gYG91dHB1dC0jeyRvdXRwdXQtc3R5bGV9YCBhbmQgdGhhdCB0aGUgb3V0cHV0IHN0eWxlIGAjeyRvdXRwdXQtc3R5bGV9YCBhcmUgYm90aCBhdmFpbGFibGUgYmVmb3JlIHRyeWluZyB0byB1c2UgdGhlbS5cIjtcbiAgfVxufVxuXG5AbWl4aW4gZ3JpZC1zcGFuLWJ1aWxkKCRwcm9wZXJ0eSwgJHZhbHVlKSB7XG4gIEBpZiB0eXBlLW9mKCR2YWx1ZSkgIT0gJ21hcCcge1xuICAgICN7JHByb3BlcnR5fTogJHZhbHVlO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAZWFjaCAkcHJlZml4LCAkdmFsIGluICR2YWx1ZSB7XG4gICAgICAjeyRwcm9wZXJ0eX06ICR2YWw7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBncmlkLXNwYW4tYnVpbGQtZXhjbHVkZSgkcHJvcGVydGllcywgJGRlbHRhLCAkZXhjbHVkZTogZmFsc2UpIHtcbiAgQGVhY2ggJHByb3BlcnR5LCAkdmFsdWUgaW4gJHByb3BlcnRpZXMge1xuICAgIEBpZiAkZXhjbHVkZSB7XG4gICAgICBAaWYgbm90IGluZGV4KCRkZWx0YSwgJHByb3BlcnR5KSB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtc3Bhbi1idWlsZCgkcHJvcGVydHksICR2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtc3Bhbi1idWlsZCgkcHJvcGVydHksICR2YWx1ZSk7XG4gICAgfVxuICB9XG59IiwiQGZ1bmN0aW9uIG91dHB1dC1mbG9hdCgkU3Bhbi1NYXApIHtcbiAgLy8gU2V0IHVwIExlZnQvUmlnaHQgbWFwc1xuICAkUmV0dXJuOiAoKTtcblxuICAkU3BhbjogbWFwLWdldCgkU3Bhbi1NYXAsICdzcGFuJyk7XG4gICRMb2NhdGlvbjogbWFwLWdldCgkU3Bhbi1NYXAsICdsb2NhdGlvbicpO1xuXG4gICRHcmlkOiBtYXAtZ2V0KCRTcGFuLU1hcCwgJ2dyaWQnKTtcbiAgJEd1dHRlcjogbWFwLWdldCgkU3Bhbi1NYXAsICdndXR0ZXInKTtcbiAgJFN0eWxlOiBtYXAtZ2V0KCRTcGFuLU1hcCwgJ3N0eWxlJyk7XG5cbiAgJFN0YXJ0LVJvdzogbWFwLWdldCgkU3Bhbi1NYXAsICdzdGFydCByb3cnKTtcbiAgJEVuZC1Sb3c6IG1hcC1nZXQoJFNwYW4tTWFwLCAnZW5kIHJvdycpO1xuXG4gICRGaXhlZC1HdXR0ZXI6IG1hcC1nZXQoJFNwYW4tTWFwLCAnZml4ZWQgZ3V0dGVyJyk7XG4gICRTcGxpdC1HdXR0ZXI6IG1hcC1nZXQoJFNwYW4tTWFwLCAnc3BsaXQgZ3V0dGVyJyk7XG4gICRHdXR0ZXItUHJvcGVydHk6IG1hcC1nZXQoJFNwYW4tTWFwLCAnZ3V0dGVyIHByb3BlcnR5Jyk7XG5cbiAgJERpcmVjdGlvbjogbWFwLWdldCgkU3Bhbi1NYXAsICdkaXJlY3Rpb24nKTtcbiAgJE9wdGlvbnM6IG1hcC1nZXQoJFNwYW4tTWFwLCAnb3B0aW9ucycpO1xuXG4gIEBpZiAkU3RhcnQtUm93IHtcbiAgICAkTG9jYXRpb246IDE7XG4gIH1cbiAgQGVsc2UgaWYgJEVuZC1Sb3cge1xuICAgICRMb2NhdGlvbjogY29sdW1uLWNvdW50KCRHcmlkKSAtICRTcGFuICsgMTtcbiAgfVxuXG4gICRXaWR0aDogY29sdW1uLXNwYW4oJFNwYW4sICRMb2NhdGlvbiwgJEdyaWQsICRHdXR0ZXIsICRTdHlsZSk7XG4gICRNYXJnaW4tU3BhbjogY29sdW1uLXNwYW4oKCRMb2NhdGlvbiAtIDEpLCAxLCAkR3JpZCwgJEd1dHRlciwgJFN0eWxlKTtcbiAgJEd1dHRlci1TcGFuOiBndXR0ZXItc3BhbigkR3V0dGVyLCAkR3JpZCk7XG5cbiAgLy8gQmFja3dhcmRzIENvbXBhdGliaWxpdHkgZm9yIE9wdGlvbnNcbiAgQGlmIHR5cGUtb2YoJE9wdGlvbnMpICE9ICdtYXAnIGFuZCAkT3B0aW9ucyAhPSBudWxsIHtcbiAgICAkT3B0aW9uczogKCdjbGVhcic6IHVucXVvdGUobnRoKCRPcHRpb25zLCAxKSkpO1xuICB9XG5cbiAgJERpcjogJERpcmVjdGlvbjtcbiAgJE9wcDogb3Bwb3NpdGUtZGlyZWN0aW9uKCREaXIpO1xuXG4gICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJ3dpZHRoJzogJFdpZHRoKSk7XG4gICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJ2NsZWFyJzogJE9wcCkpO1xuXG4gIEBpZiAoJEVuZC1Sb3cpIHtcbiAgICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgKCdmbG9hdCc6ICRPcHApKTtcblxuICAgIEBpZiAkU3BsaXQtR3V0dGVyIGFuZCBub3QgJEZpeGVkLUd1dHRlciB7XG4gICAgICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgKCcjeyRHdXR0ZXItUHJvcGVydHl9LSN7JERpcn0nOiAwKSk7XG4gICAgICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgKCcjeyRHdXR0ZXItUHJvcGVydHl9LSN7JE9wcH0nOiAkR3V0dGVyLVNwYW4gLyAyKSk7XG4gICAgfVxuICAgIEBlbHNlIGlmIG5vdCAkRml4ZWQtR3V0dGVyIHtcbiAgICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJyN7JEd1dHRlci1Qcm9wZXJ0eX0tI3skT3BwfSc6IDApKTtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJ2Zsb2F0JzogJERpcikpO1xuXG4gICAgQGlmICRTcGxpdC1HdXR0ZXIgYW5kIG5vdCAkRml4ZWQtR3V0dGVyIHtcbiAgICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJyN7JEd1dHRlci1Qcm9wZXJ0eX0tI3skRGlyfSc6ICRHdXR0ZXItU3BhbiAvIDIpKTtcbiAgICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJyN7JEd1dHRlci1Qcm9wZXJ0eX0tI3skT3BwfSc6ICRHdXR0ZXItU3BhbiAvIDIpKTtcbiAgICB9XG4gICAgQGVsc2UgaWYgbm90ICRGaXhlZC1HdXR0ZXIge1xuICAgICAgQGlmICRTdGFydC1Sb3cge1xuICAgICAgICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgKCcjeyRHdXR0ZXItUHJvcGVydHl9LSN7JERpcn0nOiAwKSk7XG4gICAgICB9XG4gICAgICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgKCcjeyRHdXR0ZXItUHJvcGVydHl9LSN7JE9wcH0nOiAkR3V0dGVyLVNwYW4pKTtcbiAgICB9XG4gIH1cbiAgLy8gSWYgb3B0aW9ucyBhcmUgc2V0LCB3ZSBtZXJnZSB0aGVtIGluIVxuICBAaWYgKCRPcHRpb25zKSB7XG4gICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICRPcHRpb25zKTtcbiAgfVxuXG4gIC8vIElmIENMZWFyIGlzbid0IGFscmVhZHkgYXZhaWxhYmxlLCBzZXQgaXQhXG4gIEBpZiBub3QgbWFwLWhhcy1rZXkoJFJldHVybiwgJ2NsZWFyJykge1xuICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJ2NsZWFyJzogbm9uZSkpO1xuICB9XG5cbiAgLy8gTGVmdCBGaXhlZCBHdXR0ZXJzXG4gIEBpZiAkRml4ZWQtR3V0dGVyIHtcbiAgICBAaWYgaW5kZXgoJFN0eWxlLCAnc3BsaXQnKSB7XG4gICAgICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgKCcjeyRHdXR0ZXItUHJvcGVydHl9LSN7JERpcn0nOiAkR3V0dGVyLVNwYW4gLyAyKSk7XG4gICAgICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgKCcjeyRHdXR0ZXItUHJvcGVydHl9LSN7JE9wcH0nOiAkR3V0dGVyLVNwYW4gLyAyKSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBpZiBub3QgJEVuZC1Sb3cge1xuICAgICAgICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgKCcjeyRHdXR0ZXItUHJvcGVydHl9LSN7JE9wcH0nOiAkR3V0dGVyLVNwYW4pKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICgnI3skR3V0dGVyLVByb3BlcnR5fS0jeyRPcHB9JzogMCkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJFJldHVybjtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBIYXBweSBTeW50YXggZm9yIEZsb2F0XG4vL1xuLy8gTWFrZXMgd29ya2luZyB3aXRoIEZsb2F0IGVhc2llciwgYXMgaXQgYWxsb3dzIHlvdSB0byB3YWxrIHRoZSBncmlkIGZvciBzeW1tZXRyaWMgZ3JpZHMgYW5kIGVhc3kgYXBwbHlpbmcgb2YgJ2xhc3QnIGFuZCAnZmlyc3QnLCBhcyB3ZWxsIGFzIGF1dG9tYXRpY2FsbHkgYnVpbGRpbmcgdGhlIHZlcmJvc2UgZ3JpZC1zcGFuIG1peGluIGNhbGxcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQG1peGluIGZsb2F0LXNwYW4oJFNwYW4sICRMb2NhdGlvbjogZmFsc2UsICRncmlkOiBmYWxzZSwgJGd1dHRlcjogZmFsc2UsICRndXR0ZXItc3R5bGU6IGZhbHNlLCAkZnJvbTogZmFsc2UpIHtcbiAgJGdyaWQ6IGZpbmQtZ3JpZCgkZ3JpZCk7XG4gICRndXR0ZXI6IGZpbmQtZ3V0dGVyKCRndXR0ZXIpO1xuICAkcm93OiBmYWxzZTtcblxuICAkT3B0aW9uczogaWYoJGZyb20sICgnZnJvbSc6ICRmcm9tKSwgbnVsbCk7XG5cbiAgLy8gV29ya2luZyBhcm91bmQgU0FTUyB0cmVhdGluZyBhIG51bWJlciBsaWtlIGEgbGlzdCB3aXRoIG9uZSBlbGVtZW50XG4gIEBpZiB0eXBlLW9mKCRncmlkKSA9PSAnbGlzdCcgYW5kIGxlbmd0aCgkZ3JpZCkgPT0gMSB7XG4gICAgJGdyaWQ6IG50aCgkZ3JpZCwgMSk7XG4gIH1cblxuICAvLyBXb3JraW5nIHdpdGggYSBzeW1tZXRyaWMgZ3JpZFxuICBAaWYgdHlwZS1vZigkZ3JpZCkgPT0gJ251bWJlcicge1xuICAgIC8vIFNwZWNpYWwgdHJlYXRtZW50IGZvciBub24tbnVtZXJpYyBsb2NhdGlvblxuICAgIEBpZiB0eXBlLW9mKCRMb2NhdGlvbikgIT0gJ251bWJlcicge1xuICAgICAgQGlmICRMb2NhdGlvbiA9PSAnbGFzdCcgb3IgJExvY2F0aW9uID09ICdvbWVnYScge1xuICAgICAgICAkTG9jYXRpb246ICRncmlkIC0gJFNwYW4gKyAxO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBAaWYgJExvY2F0aW9uID09ICdmaXJzdCcgb3IgJExvY2F0aW9uID09ICdhbHBoYScge1xuICAgICAgICAgICRyb3c6IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgJExvY2F0aW9uOiAxO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGdyaWQtc3BhbigkU3BhbiwgJExvY2F0aW9uLCAkZ3JpZCwgJGd1dHRlciwgJ2Zsb2F0JywgJGd1dHRlci1zdHlsZSwgJE9wdGlvbnMpO1xuXG4gICAgQGlmICRyb3cge1xuICAgICAgY2xlYXI6IGJvdGg7XG4gICAgfVxuICB9XG4gIC8vIFdvcmtpbmcgd2l0aCBhbiBhc3ltbWV0cmljIGdyaWQsIHNob3VsZCBoYXZlIGxvY2F0aW9uIHByb3ZpZGVkXG4gIEBlbHNlIGlmIHR5cGUtb2YoJGdyaWQpID09ICdsaXN0JyBhbmQgJExvY2F0aW9uICE9IGZhbHNlIHtcbiAgICBAaW5jbHVkZSBncmlkLXNwYW4oJFNwYW4sICRMb2NhdGlvbiwgJGdyaWQsICRndXR0ZXIsICdmbG9hdCcsICRndXR0ZXItc3R5bGUsICRPcHRpb25zKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHdhcm4gJ0FzeW1tZXRyaWMgR3JpZHMgbmVlZCBhIExvY2F0aW9uIHZhbHVlIGFzIHdlbGwgYXMgYSBzcGFuIHZhbHVlIGluIG9yZGVyIHRvIGtub3cgd2hlcmUgb24gdGhlIGdyaWQgeW91IGFyZSEgUGxlYXNlIGluY2x1ZGUgYSBsb2NhdGlvbiB2YWx1ZSEnO1xuICB9XG59XG4iLCJAZnVuY3Rpb24gb3V0cHV0LWlzb2xhdGlvbigkU3Bhbi1NYXApIHtcbiAgLy8gU2V0IHVwIExlZnQvUmlnaHQgbWFwc1xuICAkUmV0dXJuOiAoKTtcblxuICAkU3BhbjogbWFwLWdldCgkU3Bhbi1NYXAsICdzcGFuJyk7XG4gICRMb2NhdGlvbjogbWFwLWdldCgkU3Bhbi1NYXAsICdsb2NhdGlvbicpO1xuXG4gICRHcmlkOiBtYXAtZ2V0KCRTcGFuLU1hcCwgJ2dyaWQnKTtcbiAgJEd1dHRlcjogbWFwLWdldCgkU3Bhbi1NYXAsICdndXR0ZXInKTtcbiAgJFN0eWxlOiBtYXAtZ2V0KCRTcGFuLU1hcCwgJ3N0eWxlJyk7XG5cbiAgJFN0YXJ0LVJvdzogbWFwLWdldCgkU3Bhbi1NYXAsICdzdGFydCByb3cnKTtcbiAgJEVuZC1Sb3c6IG1hcC1nZXQoJFNwYW4tTWFwLCAnZW5kIHJvdycpO1xuXG4gICRGaXhlZC1HdXR0ZXI6IG1hcC1nZXQoJFNwYW4tTWFwLCAnZml4ZWQgZ3V0dGVyJyk7XG4gICRTcGxpdC1HdXR0ZXI6IG1hcC1nZXQoJFNwYW4tTWFwLCAnc3BsaXQgZ3V0dGVyJyk7XG4gICRHdXR0ZXItUHJvcGVydHk6IG1hcC1nZXQoJFNwYW4tTWFwLCAnZ3V0dGVyIHByb3BlcnR5Jyk7XG5cbiAgJERpcmVjdGlvbjogbWFwLWdldCgkU3Bhbi1NYXAsICdkaXJlY3Rpb24nKTtcbiAgJE9wdGlvbnM6IG1hcC1nZXQoJFNwYW4tTWFwLCAnb3B0aW9ucycpO1xuXG4gICRXaWR0aDogY29sdW1uLXNwYW4oJFNwYW4sICRMb2NhdGlvbiwgJEdyaWQsICRHdXR0ZXIsICRTdHlsZSk7XG4gICRNYXJnaW4tU3BhbjogY29sdW1uLXNwYW4oKCRMb2NhdGlvbiAtIDEpLCAxLCAkR3JpZCwgJEd1dHRlciwgJFN0eWxlKTtcbiAgJEd1dHRlci1TcGFuOiBndXR0ZXItc3BhbigkR3V0dGVyLCAkR3JpZCk7XG5cbiAgLy8gQmFja3dhcmRzIENvbXBhdGliaWxpdHkgZm9yIE9wdGlvbnNcbiAgQGlmIHR5cGUtb2YoJE9wdGlvbnMpICE9ICdtYXAnIGFuZCAkT3B0aW9ucyAhPSBudWxsIHtcbiAgICAkT3B0aW9uczogKCdjbGVhcic6IHVucXVvdGUobnRoKCRPcHRpb25zLCAxKSkpO1xuICB9XG5cbiAgJERpcjogJERpcmVjdGlvbjtcbiAgJE9wcDogb3Bwb3NpdGUtZGlyZWN0aW9uKCREaXIpO1xuXG4gICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJ3dpZHRoJzogJFdpZHRoKSk7XG5cbiAgQGlmICgkRW5kLVJvdykge1xuICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJ2Zsb2F0JzogJE9wcCkpO1xuICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJ21hcmdpbi0jeyREaXJ9JzogMCkpO1xuXG4gICAgQGlmICRTcGxpdC1HdXR0ZXIgYW5kIG5vdCAkRml4ZWQtR3V0dGVyIHtcbiAgICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJyN7JEd1dHRlci1Qcm9wZXJ0eX0tI3skT3BwfSc6ICRHdXR0ZXItU3BhbiAvIDIpKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICgnbWFyZ2luLSN7JE9wcH0nOiAwKSk7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgKCdmbG9hdCc6ICREaXIpKTtcbiAgICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgKCdtYXJnaW4tI3skT3BwfSc6IC0xMDAlKSk7XG5cbiAgICBAaWYgJFN0YXJ0LVJvdyB7XG4gICAgICBAaWYgJFNwbGl0LUd1dHRlciBhbmQgbm90ICRGaXhlZC1HdXR0ZXIge1xuICAgICAgICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgKCdtYXJnaW4tI3skRGlyfSc6ICRHdXR0ZXItU3BhbiAvIDIpKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmIG5vdCAkRml4ZWQtR3V0dGVyIHtcbiAgICAgICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICgnbWFyZ2luLSN7JERpcn0nOiAwKSk7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBpZiAkU3BsaXQtR3V0dGVyIGFuZCBub3QgJEZpeGVkLUd1dHRlciB7XG4gICAgICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJ21hcmdpbi0jeyREaXJ9JzogJE1hcmdpbi1TcGFuICsgJEd1dHRlci1TcGFuICsgJEd1dHRlci1TcGFuIC8gMikpO1xuICAgICAgfVxuICAgICAgQGVsc2UgaWYgbm90ICRGaXhlZC1HdXR0ZXIge1xuICAgICAgICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgKCdtYXJnaW4tI3skRGlyfSc6ICRNYXJnaW4tU3BhbiArICRHdXR0ZXItU3BhbikpO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgKCdtYXJnaW4tI3skRGlyfSc6ICRNYXJnaW4tU3BhbikpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAvLyBJZiBvcHRpb25zIGFyZSBzZXQsIHdlIG1lcmdlIHRoZW0gaW4hXG4gIEBpZiAoJE9wdGlvbnMpIHtcbiAgICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgJE9wdGlvbnMpO1xuICB9XG5cbiAgLy8gSWYgQ0xlYXIgaXNuJ3QgYWxyZWFkeSBhdmFpbGFibGUsIHNldCBpdCFcbiAgQGlmIG5vdCBtYXAtaGFzLWtleSgkUmV0dXJuLCAnY2xlYXInKSB7XG4gICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICgnY2xlYXInOiBub25lKSk7XG4gIH1cblxuICAvLyBMZWZ0IEZpeGVkIEd1dHRlcnNcbiAgQGlmICRGaXhlZC1HdXR0ZXIge1xuICAgIEBpZiBpbmRleCgkU3R5bGUsICdzcGxpdCcpIHtcbiAgICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJyN7JEd1dHRlci1Qcm9wZXJ0eX0tI3skRGlyfSc6ICRHdXR0ZXItU3BhbiAvIDIpKTtcbiAgICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJyN7JEd1dHRlci1Qcm9wZXJ0eX0tI3skT3BwfSc6ICRHdXR0ZXItU3BhbiAvIDIpKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGlmIG5vdCAkRW5kLVJvdyB7XG4gICAgICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJyN7JEd1dHRlci1Qcm9wZXJ0eX0tI3skT3BwfSc6ICRHdXR0ZXItU3BhbikpO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgKCcjeyRHdXR0ZXItUHJvcGVydHl9LSN7JE9wcH0nOiAwKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkUmV0dXJuO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEhhcHB5IFN5bnRheCBmb3IgSXNvbGF0aW9uXG4vL1xuLy8gTWFrZXMgd29ya2luZyB3aXRoIElzb2xhdGlvbiBlYXNpZXIsIGFzIGl0IG1vdmVzIENsZWFyIHRvIGEgMXN0IGNsYXNzIGNpdGl6ZW4gb2YgdGhlIG1peGluLCBhbmQgYXV0b21hdGljYWxseSBidWlsZHMgdGhlIHZlcmJvc2UgZ3JpZC1zcGFuIG1peGluIGNhbGxcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQG1peGluIGlzb2xhdGlvbi1zcGFuKCRTcGFuLCAkTG9jYXRpb24sICRjbGVhcjogZmFsc2UsICRncmlkOiBmYWxzZSwgJGd1dHRlcjogZmFsc2UsICRndXR0ZXItc3R5bGU6IGZhbHNlLCAkZnJvbTogZmFsc2UpIHtcbiAgJE9wdGlvbnM6ICgpO1xuICBAaWYgJGNsZWFyIHtcbiAgICAkT3B0aW9uczogbWFwLW1lcmdlKCRPcHRpb25zLCAoJ2NsZWFyJzogdW5xdW90ZSgkY2xlYXIpKSk7XG4gIH1cbiAgQGlmICRmcm9tIHtcbiAgICAkT3B0aW9uczogbWFwLW1lcmdlKCRPcHRpb25zLCAoJ2Zyb20nOiAkZnJvbSkpO1xuICB9XG5cbiAgJE9wdGlvbnM6IGlmKGxlbmd0aCgkT3B0aW9ucykgPiAwLCAkT3B0aW9ucywgbnVsbCk7XG4gIEBpbmNsdWRlIGdyaWQtc3BhbigkU3BhbiwgJExvY2F0aW9uLCAkZ3JpZCwgJGd1dHRlciwgJ2lzb2xhdGlvbicsICRndXR0ZXItc3R5bGUsICRPcHRpb25zKTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBIYXBweSBTeW50YXggb2YgQXN5bW1ldHJpYyBHcmlkc1xuLy9cbi8vIE1ha2VzIHdvcmtpbmcgd2l0aCBhc3ltbWV0cmljIGdyaWRzIGVhc2llciFcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQG1peGluIGFzeW1tZXRyaWMtc3BhbigkTG9jYXRpb24sICRTcGFuOiBmYWxzZSwgJGdyaWQ6IGZhbHNlLCAkZ3V0dGVyOiBmYWxzZSwgJGd1dHRlci1zdHlsZTogZmFsc2UsICRmcm9tOiBmYWxzZSwgJG91dHB1dC1zdHlsZTogZmFsc2UpIHtcblxuICAkU3BhbjogaWYoJFNwYW4gIT0gZmFsc2UsICRTcGFuLCAxKTtcbiAgJG91dHB1dC1zdHlsZTogaWYoJG91dHB1dC1zdHlsZSAhPSBmYWxzZSwgJG91dHB1dC1zdHlsZSwgc2dzLWdldCgnYXN5bW1ldHJpYyBvdXRwdXQnKSk7XG5cbiAgJE9wdGlvbnM6ICgpO1xuICBAaWYgJGZyb20ge1xuICAgICRPcHRpb25zOiBtYXAtbWVyZ2UoJE9wdGlvbnMsICgnZnJvbSc6ICRmcm9tKSk7XG4gIH1cbiAgJE9wdGlvbnM6IGlmKGxlbmd0aCgkT3B0aW9ucykgPiAwLCAkT3B0aW9ucywgbnVsbCk7XG5cbiAgQGluY2x1ZGUgZ3JpZC1zcGFuKCRTcGFuLCAkTG9jYXRpb24sICRncmlkLCAkZ3V0dGVyLCAkb3V0cHV0LXN0eWxlLCAkZ3V0dGVyLXN0eWxlLCAkT3B0aW9ucyk7XG59IiwiQGZ1bmN0aW9uIG91dHB1dC1jYWxjKCRTcGFuLU1hcCkge1xuICAvLyBTZXQgdXAgTGVmdC9SaWdodCBtYXBzXG4gICRSZXR1cm46ICgpO1xuXG4gICRTcGFuOiBtYXAtZ2V0KCRTcGFuLU1hcCwgJ3NwYW4nKTtcbiAgJExvY2F0aW9uOiBtYXAtZ2V0KCRTcGFuLU1hcCwgJ2xvY2F0aW9uJyk7XG5cbiAgJEdyaWQ6IG1hcC1nZXQoJFNwYW4tTWFwLCAnZ3JpZCcpO1xuICAkR3V0dGVyOiBtYXAtZ2V0KCRTcGFuLU1hcCwgJ2d1dHRlcicpO1xuICAkU3R5bGU6IG1hcC1nZXQoJFNwYW4tTWFwLCAnc3R5bGUnKTtcblxuICBAaWYgdW5pdGxlc3MoJEd1dHRlcikge1xuICAgICRFUlJPUi1NRVNTQUdFOiBcIkNhbGMgb3V0cHV0IHN0eWxlIHVzZXMgZml4ZWQgZ3V0dGVycyAoZ3V0dGVycyB3aXRoIHVuaXRzKS4gUGxlYXNlIGRlZmluZSBmaXhlZCBndXR0ZXJzIHRvIHVzZSBjYWxjXCI7XG4gICAgQGlmIGZlYXR1cmUtZXhpc3RzKGF0LWVycm9yKSB7XG4gICAgICBAZXJyb3IgJEVSUk9SLU1FU1NBR0U7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEB3YXJuICRFUlJPUi1NRVNTQUdFO1xuICAgIH1cbiAgICBAcmV0dXJuICRSZXR1cm47XG4gIH1cblxuICBAaWYgdHlwZS1vZigkR3JpZCkgPT0gJ251bWJlcicge1xuICAgICRFUlJPUi1NRVNTQUdFOiBcIkNhbGMgb3V0cHV0IHN0eWxlIGlzIGRlc2lnbmVkIHRvIGJlIHVzZWQgd2l0aCBhc3ltbWV0cmljIGdyaWRzLCBlc3BlY2lhbGx5IHdpdGggYSBtaXggb2YgZml4ZWQgYW5kIGZsdWlkIGNvbHVtbnMuIFBsZWFzZSBkZWZpbmUgYW4gYXN5bW1ldHJpYyBncmlkIG9yIHVzZSBhbm90aGVyIG91dHB1dCBzdHlsZS5cIjtcbiAgICBAaWYgZmVhdHVyZS1leGlzdHMoYXQtZXJyb3IpIHtcbiAgICAgIEBlcnJvciAkRVJST1ItTUVTU0FHRTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQHdhcm4gJEVSUk9SLU1FU1NBR0U7XG4gICAgfVxuICAgIEByZXR1cm4gJFJldHVybjtcbiAgfVxuXG4gICRTdGFydC1Sb3c6IG1hcC1nZXQoJFNwYW4tTWFwLCAnc3RhcnQgcm93Jyk7XG4gICRFbmQtUm93OiBtYXAtZ2V0KCRTcGFuLU1hcCwgJ2VuZCByb3cnKTtcblxuICAkU3BsaXQtR3V0dGVyOiBtYXAtZ2V0KCRTcGFuLU1hcCwgJ3NwbGl0IGd1dHRlcicpO1xuXG4gICREaXJlY3Rpb246IG1hcC1nZXQoJFNwYW4tTWFwLCAnZGlyZWN0aW9uJyk7XG4gICRPcHRpb25zOiBtYXAtZ2V0KCRTcGFuLU1hcCwgJ29wdGlvbnMnKTtcblxuICAkRGlyOiAkRGlyZWN0aW9uO1xuICAkT3BwOiBvcHBvc2l0ZS1kaXJlY3Rpb24oJERpcik7XG5cbiAgJFdpZHRoOiAnJztcbiAgJE1hcmdpbjogbnVsbDtcbiAgJE1pbi1XaWR0aDogJygnO1xuXG4gICRGaXhlZDogKCk7XG4gICRGbHVpZDogKCk7XG4gICRGaXhlZC1Ub3RhbHM6ICgncHgnOiAwLCAnZW0nOiAwLCAnJSc6IDApO1xuICAkR3V0dGVyLVRvdGFsczogaWYoc3RyLWluZGV4KCRTdHlsZSwgJ3NwbGl0JyksICRHdXR0ZXIgKiBsZW5ndGgoJEdyaWQpLCAkR3V0dGVyICogKGxlbmd0aCgkR3JpZCkgLSAxKSk7XG4gICRGbHVpZC1Ub3RhbHM6IDA7XG4gICRGbHVpZC1GaXhlZC1TdW06ICcnO1xuICAkU2luZ2xlLUZsdWlkOiAnJztcblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIGxlbmd0aCgkR3JpZCkge1xuICAgICRJdGVtOiBudGgoJEdyaWQsICRpKTtcbiAgICBAaWYgbm90IHVuaXRsZXNzKCRJdGVtKSB7XG4gICAgICAkRml4ZWQ6IG1hcC1tZXJnZSgkRml4ZWQsICgkaTogJEl0ZW0pKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJEZsdWlkOiBtYXAtbWVyZ2UoJEZsdWlkLCAoJGk6ICRJdGVtKSk7XG4gICAgfVxuICB9XG5cbiAgQGVhY2ggJGssICR2IGluICRGaXhlZCB7XG4gICAgJFVuaXQ6IHVuaXQoJHYpO1xuICAgICRSdW5uaW5nOiBtYXAtZ2V0KCRGaXhlZC1Ub3RhbHMsICRVbml0KSArICR2O1xuICAgICRGaXhlZC1Ub3RhbHM6IG1hcC1tZXJnZSgkRml4ZWQtVG90YWxzLCAoJFVuaXQ6ICRSdW5uaW5nKSk7XG4gIH1cblxuICBAZWFjaCAkaywgJHYgaW4gJEZsdWlkIHtcbiAgICAkRmx1aWQtVG90YWxzOiAkRmx1aWQtVG90YWxzICsgJHY7XG4gIH1cblxuICBAZWFjaCAkaywgJHYgaW4gJEZpeGVkLVRvdGFscyB7XG5cbiAgICBAaWYgJHYgIT0gMCB7XG4gICAgICAkRmx1aWQtRml4ZWQtU3VtOiAnI3skRmx1aWQtRml4ZWQtU3VtfSN7JHZ9ICsgJztcbiAgICB9XG4gIH1cblxuICAvLyBXaWR0aCBvZiBhIHNpbmdsZSBmbHVpZCBpdGVtLCBmb3IgY2FsYygpXG4gICRTaW5nbGUtRmx1aWQ6ICcoKDEwMCUgLSAoI3skRmx1aWQtRml4ZWQtU3VtfSN7JEd1dHRlci1Ub3RhbHN9KSkgLyAoI3skRmx1aWQtVG90YWxzfSkpJztcblxuICAvLyBNYXJnaW4gQ2FsY3VsYXRpb25cbiAgQGlmIG5vdCAkU3RhcnQtUm93IG9yIG5vdCAkRW5kLVJvdyB7XG4gICAgQGlmICRTcGxpdC1HdXR0ZXIge1xuICAgICAgJE1hcmdpbjogJyN7JEd1dHRlciAvIDJ9ICsgJztcbiAgICB9XG5cbiAgICBAZm9yICRpIGZyb20gMSB0byAkTG9jYXRpb24ge1xuICAgICAgQGlmIHVuaXRsZXNzKG50aCgkR3JpZCwgJGkpKSB7XG4gICAgICAgICRNYXJnaW46ICcjeyRNYXJnaW59KCN7JFNpbmdsZS1GbHVpZH0gKiAje250aCgkR3JpZCwgJGkpfSArICN7JEd1dHRlcn0pICsgJztcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJE1hcmdpbjogJyN7JE1hcmdpbn0oI3tudGgoJEdyaWQsICRpKX0gKyAjeyRHdXR0ZXJ9KSArICc7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBpZiAkTWFyZ2luICE9IG51bGwge1xuICAgICRNYXJnaW46IHN0ci1zbGljZSgkTWFyZ2luLCAwLCAtNCk7XG4gIH1cblxuXG4gIC8vIFdpZHRoIENhbGN1bGF0aW9uXG4gIEBpZiAkU3BhbiA9PSAxIHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJEZpeGVkLCAkTG9jYXRpb24pIHtcbiAgICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJ3dpZHRoJzogbWFwLWdldCgkRml4ZWQsICRMb2NhdGlvbikpKTtcbiAgICB9XG4gICAgQGVsc2UgaWYgbWFwLWhhcy1rZXkoJEZsdWlkLCAkTG9jYXRpb24pIHtcbiAgICAgICRNYXRoOiAnKCN7JFNpbmdsZS1GbHVpZH0pICogI3tudGgoJEdyaWQsICRMb2NhdGlvbil9JztcbiAgICAgICRTcGFuLU1hcDogKCd3aWR0aCc6ICgnd2Via2l0JzogLXdlYmtpdC1jYWxjKCN7dW5xdW90ZSgkTWF0aCl9KSwgJ3N0YW5kYXJkJzogY2FsYygje3VucXVvdGUoJE1hdGgpfSkpKTtcbiAgICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAkU3Bhbi1NYXApO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgJExvY2F0aW9uLUVuZDogJExvY2F0aW9uICsgKCRTcGFuIC0gMSk7XG4gICAgJEZpeGVkLUNvdW50ZXI6IDA7XG4gICAgQGZvciAkaSBmcm9tICRMb2NhdGlvbiB0aHJvdWdoICRMb2NhdGlvbi1FbmQge1xuICAgICAgQGlmIHVuaXRsZXNzKG50aCgkR3JpZCwgJGkpKSB7XG4gICAgICAgICRXaWR0aDogJyN7JFdpZHRofSgjeyRTaW5nbGUtRmx1aWR9ICogI3tudGgoJEdyaWQsICRpKX0nO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkRml4ZWQtQ291bnRlcjogJEZpeGVkLUNvdW50ZXIgKyAxO1xuICAgICAgICAkTWluLVdpZHRoOiAnI3skTWluLVdpZHRofSN7bnRoKCRHcmlkLCAkaSl9ICsgI3skR3V0dGVyfSArICc7XG4gICAgICAgICRXaWR0aDogJyN7JFdpZHRofSgje250aCgkR3JpZCwgJGkpfSc7XG4gICAgICB9XG5cblxuICAgICAgQGlmICRpICE9ICRMb2NhdGlvbi1FbmQge1xuICAgICAgICAkV2lkdGg6ICcjeyRXaWR0aH0gKyAjeyRHdXR0ZXJ9KSArICc7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICRNaW4tV2lkdGg6IHN0ci1zbGljZSgkTWluLVdpZHRoLCAwLCAtNCk7XG4gICAgICAgIEBpZiAkRml4ZWQtQ291bnRlciA9PSAxIHtcbiAgICAgICAgICAkTWluLVdpZHRoOiAnI3skTWluLVdpZHRofSAtICN7JEd1dHRlcn0nO1xuICAgICAgICB9XG4gICAgICAgICRNaW4tV2lkdGg6ICcjeyRNaW4tV2lkdGh9KSc7XG4gICAgICAgICRXaWR0aDogJyN7JFdpZHRofSknO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIE1pbiB3aWR0aCBoYW5kbGluZ1xuICAgIEBpZiAkTWluLVdpZHRoICE9ICcpJyB7XG4gICAgICAkTWluLU1hcDogKCdtaW4td2lkdGgnOiAoJ3dlYmtpdCcgOiAtd2Via2l0LWNhbGMoI3t1bnF1b3RlKCRNaW4tV2lkdGgpfSksICdzdGFuZGFyZCc6IGNhbGMoI3t1bnF1b3RlKCRNaW4tV2lkdGgpfSkgKSk7XG5cbiAgICAgIEBpZiBzZ3MtZ2V0KCdjYWxjIGluY2x1ZGUgbWluLXdpZHRoJykge1xuICAgICAgICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgJE1pbi1NYXApO1xuICAgICAgfVxuICAgIH1cblxuICAgICRTcGFuLU1hcDogKCd3aWR0aCc6ICgnd2Via2l0JzogLXdlYmtpdC1jYWxjKCN7dW5xdW90ZSgkV2lkdGgpfSksICdzdGFuZGFyZCc6IGNhbGMoI3t1bnF1b3RlKCRXaWR0aCl9KSApICk7XG4gICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICRTcGFuLU1hcCk7XG4gIH1cblxuICAvLyBCdWlsZCBtYXJnaW5zIGFuZCBGbG9hdHNcbiAgQGlmICgkRW5kLVJvdykge1xuICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJ2Zsb2F0JzogJE9wcCkpO1xuICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJ21hcmdpbi0jeyREaXJ9JzogMCkpO1xuXG4gICAgQGlmICRTcGxpdC1HdXR0ZXIge1xuICAgICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICgnbWFyZ2luLSN7JE9wcH0nOiAkR3V0dGVyIC8gMikpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgKCdtYXJnaW4tI3skT3BwfSc6IDApKTtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJ2Zsb2F0JzogJERpcikpO1xuICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJ21hcmdpbi0jeyRPcHB9JzogLTEwMCUpKTtcblxuICAgIEBpZiAkU3RhcnQtUm93IHtcbiAgICAgIEBpZiAkU3BsaXQtR3V0dGVyIHtcbiAgICAgICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICgnbWFyZ2luLSN7JERpcn0nOiAkR3V0dGVyIC8gMikpO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgKCdtYXJnaW4tI3skRGlyfSc6IDApKTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJE1hcmdpbi1NYXA6ICgnbWFyZ2luLSN7JERpcn0nOiAoJ3dlYmtpdCc6IC13ZWJraXQtY2FsYygje3VucXVvdGUoJE1hcmdpbil9KSwgJ3N0YW5kYXJkJzogY2FsYygje3VucXVvdGUoJE1hcmdpbil9KSkpO1xuICAgICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICRNYXJnaW4tTWFwKTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRSZXR1cm47XG59XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEhhcHB5IFN5bnRheCBmb3IgQ2FsY1xuLy9cbi8vIE1ha2VzIHdvcmtpbmcgd2l0aCBDYWxjIGVhc2llciwgYXMgaXQgbW92ZXMgQ2xlYXIgdG8gYSAxc3QgY2xhc3MgY2l0aXplbiBvZiB0aGUgbWl4aW4sIGFuZCBhdXRvbWF0aWNhbGx5IGJ1aWxkcyB0aGUgdmVyYm9zZSBncmlkLXNwYW4gbWl4aW4gY2FsbFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AbWl4aW4gY2FsYy1zcGFuKCRTcGFuLCAkTG9jYXRpb24sICRjbGVhcjogZmFsc2UsICRncmlkOiBmYWxzZSwgJGd1dHRlcjogZmFsc2UsICRndXR0ZXItc3R5bGU6IGZhbHNlLCAkZnJvbTogZmFsc2UpIHtcblxuICBAaWYgJGd1dHRlciAhPSBmYWxzZSBhbmQgdW5pdGxlc3MoJGd1dHRlcikge1xuICAgIEB3YXJuIFwiQ2FsYyBvdXRwdXQgc3R5bGUgdXNlcyBmaXhlZCBndXR0ZXJzIChndXR0ZXJzIHdpdGggdW5pdHMpLiBQbGVhc2UgZGVmaW5lIGZpeGVkIGd1dHRlcnMgdG8gdXNlIGNhbGNcIjtcbiAgfVxuXG4gIEBpZiAkZ3JpZCAhPSBmYWxzZSBhbmQgdHlwZS1vZigkZ3JpZCkgPT0gJ251bWJlcicge1xuICAgIEB3YXJuIFwiQ2FsYyBvdXRwdXQgc3R5bGUgaXMgZGVzaWduZWQgdG8gYmUgdXNlZCB3aXRoIGFzeW1tZXRyaWMgZ3JpZHMsIGVzcGVjaWFsbHkgd2l0aCBhIG1peCBvZiBmaXhlZCBhbmQgZmx1aWQgY29sdW1ucy4gUGxlYXNlIGRlZmluZSBhbiBhc3ltbWV0cmljIGdyaWQuXCI7XG4gIH1cblxuICAkT3B0aW9uczogKCk7XG4gIEBpZiAkY2xlYXIge1xuICAgICRPcHRpb25zOiBtYXAtbWVyZ2UoJE9wdGlvbnMsICgnY2xlYXInOiAkY2xlYXIpKTtcbiAgfVxuICBAaWYgJGZyb20ge1xuICAgICRPcHRpb25zOiBtYXAtbWVyZ2UoJE9wdGlvbnMsICgnZnJvbSc6ICRmcm9tKSk7XG4gIH1cblxuICAkT3B0aW9uczogaWYobGVuZ3RoKCRPcHRpb25zKSA+IDAsICRPcHRpb25zLCBudWxsKTtcbiAgQGluY2x1ZGUgZ3JpZC1zcGFuKCRTcGFuLCAkTG9jYXRpb24sICRncmlkLCAkZ3V0dGVyLCAnY2FsYycsICRndXR0ZXItc3R5bGUsICRPcHRpb25zKTtcbn1cbiIsIkBpbXBvcnQgXCJtb2R1bGFyLXNjYWxlL3JhdGlvc1wiO1xuXG4kbXMtYmFzZTogMWVtICFkZWZhdWx0O1xuJG1zLXJhdGlvOiAkZ29sZGVuICFkZWZhdWx0O1xuJG1zLXJhbmdlOiBudWxsICFkZWZhdWx0O1xuXG5AaW1wb3J0IFwibW9kdWxhci1zY2FsZS90ZXN0c1wiO1xuXG5AaW1wb3J0IFwibW9kdWxhci1zY2FsZS9wb3dcIjtcbkBpbXBvcnQgXCJtb2R1bGFyLXNjYWxlL2NhbGNcIjtcbkBpbXBvcnQgXCJtb2R1bGFyLXNjYWxlL2dlbmVyYXRlLWxpc3RcIjtcbkBpbXBvcnQgXCJtb2R1bGFyLXNjYWxlL3NvcnQtbGlzdFwiO1xuQGltcG9ydCBcIm1vZHVsYXItc2NhbGUvcm91bmQtcHhcIjtcbkBpbXBvcnQgXCJtb2R1bGFyLXNjYWxlL2Z1bmN0aW9uXCI7XG5AaW1wb3J0IFwibW9kdWxhci1zY2FsZS9mdW5jdGlvbi1saXN0XCI7XG5cbkBpbXBvcnQgXCJtb2R1bGFyLXNjYWxlL3Jlc3BvbmRcIjsiLCIvLyBHb2xkZW4gcmF0aW9cbiRwaGkgICAgICAgICAgICAgIDogMS42MTgwMzQgICAgICAgICAgO1xuJGdvbGRlbiAgICAgICAgICAgOiAkcGhpICAgICAgICAgICAgICA7XG5cbiRkb3VibGUtb2N0YXZlICAgIDogNCAgICAgICAgICAgICAgICAgO1xuJG1ham9yLXR3ZWxmdGggICAgOiAzICAgICAgICAgICAgICAgICA7XG4kbWFqb3ItZWxldmVudGggICA6IDIuNjY2NjY2NjY3ICAgICAgIDtcbiRtYWpvci10ZW50aCAgICAgIDogMi41ICAgICAgICAgICAgICAgO1xuJG9jdGF2ZSAgICAgICAgICAgOiAyICAgICAgICAgICAgICAgICA7XG4kbWFqb3Itc2V2ZW50aCAgICA6IDEuODc1ICAgICAgICAgICAgIDtcbiRtaW5vci1zZXZlbnRoICAgIDogMS43Nzc3Nzc3NzggICAgICAgO1xuJG1ham9yLXNpeHRoICAgICAgOiAxLjY2NjY2NjY2NyAgICAgICA7XG4kbWlub3Itc2l4dGggICAgICA6IDEuNiAgICAgICAgICAgICAgIDtcbiRmaWZ0aCAgICAgICAgICAgIDogMS41ICAgICAgICAgICAgICAgO1xuJGF1Z21lbnRlZC1mb3VydGggOiAxLjQxNDIxICAgICAgICAgICA7XG4kZm91cnRoICAgICAgICAgICA6IDEuMzMzMzMzMzMzICAgICAgIDtcbiRtYWpvci10aGlyZCAgICAgIDogMS4yNSAgICAgICAgICAgICAgO1xuJG1pbm9yLXRoaXJkICAgICAgOiAxLjIgICAgICAgICAgICAgICA7XG4kbWFqb3Itc2Vjb25kICAgICA6IDEuMTI1ICAgICAgICAgICAgIDtcbiRtaW5vci1zZWNvbmQgICAgIDogMS4wNjY2NjY2NjcgICAgICAgOyIsIi8vIEZlYXR1cmUgdGVzdGluZ1xuXG5cbi8vIFRlc3QgaWYgdGhlIHBvdygpIGZ1bmN0aW9uIGV4aXN0c1xuQGZ1bmN0aW9uIG1zLXBvdy1leGlzdHMoKSB7XG4gIEBpZiBwb3coNCwgMikgPT0gMTYge1xuICAgIEByZXR1cm4gdHJ1ZTtcbiAgfVxuICBAcmV0dXJuIGZhbHNlO1xufVxuXG4kTVMtcG93LWV4aXN0czogbXMtcG93LWV4aXN0cygpO1xuXG4vLyBUZXN0IGlmIE1TIHdhcyBpbnN0YWxsZWQgdmlhIHRoZSBnZW1cbkBmdW5jdGlvbiBtcy1nZW0tZXhpc3RzKCkge1xuICBAaWYgbXMtZ2VtLWluc3RhbGxlZCgpID09IHRydWUge1xuICAgIEByZXR1cm4gdHJ1ZTtcbiAgfVxuICBAcmV0dXJuIGZhbHNlO1xufVxuXG4kTVMtZ2VtLWV4aXN0czogbXMtZ2VtLWV4aXN0cygpOyIsIi8vIElmIGEgbmF0aXZlIGV4cG9uZW50IGZ1bmN0aW9uIGRvZXNudCBleGlzdFxuLy8gdGhpcyBvbmUgaXMgbmVlZGVkLlxuQGZ1bmN0aW9uIG1zLXBvdygkQmFzZSwgJEV4cG9uZW50KSB7XG5cbiAgLy8gRmluZCBhbmQgcmVtb3ZlIHVuaXQuXG4gIC8vIEF2b2lkcyBtZXNzeW5lc3Mgd2l0aCB1bml0IGNhbGN1bGF0aW9uc1xuICAkVW5pdDogJEJhc2UgKiAwICsgMTtcbiAgJEJhc2U6ICRCYXNlLyRVbml0O1xuXG4gIC8vIFRoaXMgZnVuY3Rpb24gZG9lc250IHN1cHBvcnQgbm9uLWludGVyZ2VyIGV4cG9uZW50cy5cbiAgLy8gV2FybiB0aGUgdXNlciBhYm91dCB3aHkgdGhpcyBpcyBicmVha2luZy5cblx0QGlmIHJvdW5kKCRFeHBvbmVudCkgIT0gJEV4cG9uZW50IHtcblx0XHRAd2FybiBcIlVuZm9ydHVuYXRlbHksIHlvdSBuZWVkIENvbXBhc3MgdG8gdXNlIG5vbi1pbnRlZ2VyIGV4cG9uZW50c1wiO1xuXHR9XG5cbiAgLy8gU2V0IHVwIHRoZSBsb29wLCBwcmltaW5nIHRoZSByZXR1cm4gd2l0aCB0aGUgYmFzZS5cblx0JFJldHVybjogJEJhc2U7XG5cbiAgLy8gSWYgdGhlIG51bWJlciBpcyBwb3NpdGl2ZSwgbXVsdGlwbHkgaXQuXG4gIEBpZiAkRXhwb25lbnQgPiAwIHtcbiAgICAvLyBCYXNpYyBmZWVkYmFjayBsb29wIGFzIGV4cG9uZW50c1xuICAgIC8vIGFyZSByZWN1cnNpdmxleSBtdWx0aXBsaWVkIG51bWJlcnMuXG4gICAgQGZvciAkaSBmcm9tIDEgdG8gJEV4cG9uZW50IHtcbiAgICAgICRSZXR1cm46ICRSZXR1cm4gKiAkQmFzZTtcbiAgICB9XG4gIH1cblxuICAvLyBJZiB0aGUgbnVtYmVyIGlzIDAgb3IgbmVnaXRpdmVcbiAgLy8gZGl2aWRlIGluc3RlYWQgb2YgbXVsdGlwbHkuXG4gIEBlbHNlIHtcbiAgICAvLyBMaWJzYXNzIGRvZXNudCBhbGxvdyBuZWdpdGl2ZSB2YWx1ZXMgaW4gbG9vcHNcbiAgICBAZm9yICRpIGZyb20gKC0xICsgMSkgdG8gKGFicygkRXhwb25lbnQpICsgMSkge1xuICAgICAgJFJldHVybjogJFJldHVybiAvICRCYXNlO1xuICAgIH1cbiAgfVxuXG4gIC8vIFJldHVybiBpcyBub3cgY29tcG91bmRlZCByZWR5IHRvIGJlIHJldHVybmVkLlxuICAvLyBBZGQgdGhlIHVuaXQgYmFjayBvbnRvIHRoZSBudW1iZXIuXG5cdEByZXR1cm4gJFJldHVybiAqICRVbml0O1xufSIsIkBmdW5jdGlvbiBtcy1jYWxjKCRWYWx1ZSwgJEJhc2U6ICRtcy1iYXNlLCAkUmF0aW86ICRtcy1yYXRpbykge1xuXG4gIC8vIElmIHBvdyBleGlzdHMgdXNlIGl0LlxuICAvLyBJdCBzdXBwb3J0cyBub24taW50ZXJnZXIgdmFsdWVzIVxuICBAaWYgJE1TLXBvdy1leGlzdHMge1xuXG4gICAgLy8gVGhlIGZvcm11bGEgZm9yIGZpZ3VyaW5nIG91dCBtb2R1bGFyIHNjYWxlcyBpczpcbiAgICAvLyAocl52KSpiXG4gICAgQHJldHVybiBwb3coJFJhdGlvLCAkVmFsdWUpICogJEJhc2U7XG4gIH1cblxuICAvLyBJZiBub3QsIHVzZSBtcy1wb3coKS5cbiAgLy8gTm90IGFzIGZhc3Qgb3IgY2FwYWJsZSBvZiBub24taW50ZWdlciBleHBvbmVudHMuXG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIG1zLXBvdygkUmF0aW8sICRWYWx1ZSkgKiAkQmFzZTtcbiAgfVxufSIsIkBmdW5jdGlvbiBtcy1yZXZlcnNlLWxpc3QoJGxpc3QpIHtcbiAgQGlmIGxlbmd0aCgkbGlzdCkgPiAxIHtcbiAgICBAaWYgbnRoKCRsaXN0LCAxKSA+IG50aCgkbGlzdCwgbGVuZ3RoKCRsaXN0KSkge1xuICAgICAgJE1TLXJldmVyc2VkLWxpc3Q6ICgpO1xuICAgICAgQGVhY2ggJFZhbHVlIGluICRsaXN0IHtcbiAgICAgICAgJE1TLXJldmVyc2VkLWxpc3Q6IGpvaW4oJFZhbHVlLCAkTVMtcmV2ZXJzZWQtbGlzdCk7XG4gICAgICB9XG4gICAgICBAcmV0dXJuICRNUy1yZXZlcnNlZC1saXN0O1xuICAgIH1cbiAgfVxuICBAcmV0dXJuICRsaXN0O1xufVxuXG5cbkBmdW5jdGlvbiBtcy1nZW5lcmF0ZS1saXN0KCRWYWx1ZTogMCwgJEJhc2VzOiAkbXMtYmFzZSwgJFJhdGlvczogJG1zLXJhdGlvKSB7XG5cbiAgLy8gQ3JlYXRlIGJsYW5rIGxpc3RzXG4gICRNUy1saXN0OiAoKTtcbiAgJE1TLWJhc2UtbGlzdDogKCk7XG5cbiAgLy8gTG9vcCB0aHJvdWdoIGVhY2ggcmF0aW8gQU5EIGVhY2ggYmFzZVxuICAvLyB0byBnZW5lcmF0ZSBhbGwgcG9zc2liaWxpdGllcy5cbiAgQGVhY2ggJFJhdGlvIGluICRSYXRpb3Mge1xuICAgIEBlYWNoICRCYXNlIGluICRCYXNlcyB7XG5cbiAgICAgIC8vIFNldCBiYXNlIHZhcmlhYmxlc1xuICAgICAgJE1TLWJhc2UtbGlzdDogKCk7XG4gICAgICAkQmFzZS1jb3VudGVyOiAwO1xuXG4gICAgICAvLyBTZWVkIGxpc3Qgd2l0aCBhbiBpbml0aWFsIHZhbHVlXG4gICAgICAkTVMtYmFzZS1saXN0OiAkQmFzZTtcblxuICAgICAgLy8gRmluZCB2YWx1ZXMgb24gYSBwb3NpdGl2ZSBzY2FsZVxuICAgICAgQGlmICRWYWx1ZSA+PSAwIHtcblxuICAgICAgICAvLyBGaW5kIGxvd2VyIHZhbHVlcyBvbiB0aGUgc2NhbGVcbiAgICAgICAgJEJhc2UtY291bnRlcjogLTE7XG4gICAgICAgIEB3aGlsZSBtcy1jYWxjKCRCYXNlLWNvdW50ZXIsICRCYXNlLCAkUmF0aW8pID49IG50aCgkQmFzZXMsIDEpIHtcbiAgICAgICAgICAkTVMtYmFzZS1saXN0OiBqb2luKCRNUy1iYXNlLWxpc3QsIG1zLWNhbGMoJEJhc2UtY291bnRlciwgJEJhc2UsICRSYXRpbykpO1xuICAgICAgICAgICRCYXNlLWNvdW50ZXI6ICRCYXNlLWNvdW50ZXIgLSAxO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRW5zdXJlIHRoZSBsaXN0IGlzIHNtYWxsZXN0IHRvIGxhcmdlc3RcbiAgICAgICAgJE1TLWJhc2UtbGlzdDogbXMtcmV2ZXJzZS1saXN0KCRNUy1iYXNlLWxpc3QpO1xuXG4gICAgICAgIC8vIEZpbmQgaGlnaGVyIHBvc3NpYmxlIHZhbHVlcyBvbiB0aGUgc2NhbGVcbiAgICAgICAgJEJhc2UtY291bnRlcjogMTtcbiAgICAgICAgQHdoaWxlIG1zLWNhbGMoJEJhc2UtY291bnRlciwgJEJhc2UsICRSYXRpbykgPD0gbXMtY2FsYygkVmFsdWUsIG50aCgkQmFzZXMsIDEpLCAkUmF0aW8pIHtcbiAgICAgICAgICAkTVMtYmFzZS1saXN0OiBqb2luKCRNUy1iYXNlLWxpc3QsIG1zLWNhbGMoJEJhc2UtY291bnRlciwgJEJhc2UsICRSYXRpbykpO1xuICAgICAgICAgICRCYXNlLWNvdW50ZXI6ICRCYXNlLWNvdW50ZXIgKyAxO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIEZpbmQgdmFsdWVzIG9uIGEgbmVnaXRpdmUgc2NhbGVcbiAgICAgIEBlbHNlIHtcblxuICAgICAgICAvLyBGaW5kIGxvd2VyIHZhbHVlcyBvbiB0aGUgc2NhbGVcbiAgICAgICAgJEJhc2UtY291bnRlcjogMTtcbiAgICAgICAgQHdoaWxlIG1zLWNhbGMoJEJhc2UtY291bnRlciwgJEJhc2UsICRSYXRpbykgPD0gbnRoKCRCYXNlcywgMSkge1xuICAgICAgICAgICRNUy1iYXNlLWxpc3Q6IGpvaW4oJE1TLWJhc2UtbGlzdCwgbXMtY2FsYygkQmFzZS1jb3VudGVyLCAkQmFzZSwgJFJhdGlvKSk7XG4gICAgICAgICAgJEJhc2UtY291bnRlcjogJEJhc2UtY291bnRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBFbnN1cmUgdGhlIGxpc3QgaXMgc21hbGxlc3QgdG8gbGFyZ2VzdFxuICAgICAgICAkTVMtYmFzZS1saXN0OiBtcy1yZXZlcnNlLWxpc3QoJE1TLWJhc2UtbGlzdCk7XG5cbiAgICAgICAgLy8gRmluZCBoaWdoZXIgcG9zc2libGUgdmFsdWVzIG9uIHRoZSBzY2FsZVxuICAgICAgICAkQmFzZS1jb3VudGVyOiAtMTtcbiAgICAgICAgQHdoaWxlIG1zLWNhbGMoJEJhc2UtY291bnRlciwgJEJhc2UsICRSYXRpbykgPj0gbXMtY2FsYygkVmFsdWUsIG50aCgkQmFzZXMsIDEpLCAkUmF0aW8pIHtcbiAgICAgICAgICAkTVMtY2FsYzogbXMtY2FsYygkQmFzZS1jb3VudGVyLCAkQmFzZSwgJFJhdGlvKTtcbiAgICAgICAgICAvLyBkZXRlY3QgaWYgdGhlIHZhbHVlIGV4Y2VkZXMgdGhlIG1haW4gYmFzZSB2YWx1ZVxuICAgICAgICAgIEBpZiAkTVMtY2FsYyA8IG50aCgkQmFzZXMsIDEpIHtcbiAgICAgICAgICAgICRNUy1iYXNlLWxpc3Q6IGpvaW4oJE1TLWJhc2UtbGlzdCwgJE1TLWNhbGMpO1xuICAgICAgICAgIH1cbiAgICAgICAgICAkQmFzZS1jb3VudGVyOiAkQmFzZS1jb3VudGVyIC0gMTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRyaW0gb3V0bGllciBiYXNlLlxuICAgICAgICBAaWYgbGVuZ3RoKCRCYXNlcykgPiAxIHtcbiAgICAgICAgICBAZm9yICRpIGZyb20gMiB0aHJvdWdoIGxlbmd0aCgkQmFzZXMpIHtcbiAgICAgICAgICAgIEBpZiBudGgoJE1TLWJhc2UtbGlzdCwgMSkgPiBudGgoJEJhc2VzLCAxKSB7XG4gICAgICAgICAgICAgICRNUy1uZXctbGlzdDogKCk7XG4gICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggbGVuZ3RoKCRNUy1iYXNlLWxpc3QpIHtcbiAgICAgICAgICAgICAgICAkTVMtbmV3LWxpc3Q6IGpvaW4oJE1TLW5ldy1saXN0LCBudGgoJE1TLWJhc2UtbGlzdCwgJGkpKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAkTVMtYmFzZS1saXN0OiAkTVMtbmV3LWxpc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIHJldmVyc2UgbGlzdCBpZiBpdHMgbGFyZ2VzdCB0byBzbWFsbGVzdFxuICAgICAgJE1TLWJhc2UtbGlzdDogbXMtcmV2ZXJzZS1saXN0KCRNUy1iYXNlLWxpc3QpO1xuXG4gICAgICAvLyBBZGQgbmV3IHBvc3NpYmlsaXRpZXMgdG8gdGhlIG1hc3RlciBsaXN0XG4gICAgICAkTVMtbGlzdDogYXBwZW5kKCRNUy1saXN0LCAkTVMtYmFzZS1saXN0LCBjb21tYSk7XG5cbiAgICB9XG4gIH1cblxuICAvLyBBZnRlciBhbGwgdGhlIHBvc3NpYmlsaXRpZXMgYXJlIGZvdW5kLCBvdXRwdXQgYSBtYXN0ZXIgbGlzdFxuICBAcmV0dXJuICRNUy1saXN0O1xufSIsIi8vIExpc3Qgc29ydGluZyB2aWEgYSBtb2RpZmllZCBtZXJnZS1zb3J0IGFsZ29yeXRobW5cbi8vIGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvTWVyZ2Vfc29ydFxuXG5AZnVuY3Rpb24gbXMtbWVyZ2UoJEEsICRCKSB7XG5cbiAgJFJldHVybjogKCk7XG5cbiAgLy8gU29tZSBlbXB0eSBsaXN0cyBnZXQgcGFzc2VkIHRocm91Z2hcbiAgLy8gc28ganVzdCBwYXNzIHRoZSBvdGhlciBsaXN0IHRocm9ndWhcbiAgQGlmIGxlbmd0aCgkQSkgPT0gMCB7XG4gICAgQHJldHVybiAkQjtcbiAgfVxuXG4gIC8vIElmIGxpc3RzIGZpdCBuZXh0IHRvIGVhY2ggb3RoZXIsIGp1c3QgbWVyZ2UgdGhlbVxuICAvLyBUaGlzIGhlbHBzIHBlcmZvcm1hbmNlIHNraXBwaW5nIHRoZSBuZWVkIHRvIGNoZWNrIGVhY2ggdmFsdWVcbiAgQGlmIG50aCgkQSwgbGVuZ3RoKCRBKSkgPCBudGgoJEIsIDEpIHtcbiAgICBAcmV0dXJuIGpvaW4oJEEsICRCKTtcbiAgfVxuICBAaWYgbnRoKCRCLCBsZW5ndGgoJEIpKSA8IG50aCgkQSwgMSkge1xuICAgIEByZXR1cm4gam9pbigkQiwgJEEpO1xuICB9XG5cbiAgLy8gQ291bnRlcnMgc3RhcnQgYXQgMVxuICAkQS1jb3VudGVyOiAxO1xuICAkQi1jb3VudGVyOiAxO1xuXG4gIC8vIFN0YXJ0IGxvb3BpbmcgdGhyb3VnaCBhbGwgbnVtYmVycyBpbiBhcnJheVxuICBAd2hpbGUgJEEtY291bnRlciA8PSBsZW5ndGgoJEEpIGFuZCAkQi1jb3VudGVyIDw9IGxlbmd0aCgkQikge1xuXG4gICAgLy8gQ2hlY2sgaWYgdGhlIEEgdmFsdWUgaXMgc21hbGxlclxuICAgIC8vIFVzZXMgb3IgZXF1YWwgdG8gYXZvaWQgZHVwbGljYXRlIG51bWJlcnNcbiAgICBAaWYgbnRoKCRBLCAkQS1jb3VudGVyKSA8PSBudGgoJEIsICRCLWNvdW50ZXIpIHtcbiAgICAgICRSZXR1cm46IGpvaW4oJFJldHVybiwgbnRoKCRBLCAkQS1jb3VudGVyKSk7XG4gICAgICAkQS1jb3VudGVyOiAkQS1jb3VudGVyICsgMTtcbiAgICB9XG5cbiAgICAvLyBDaGVjayBpZiB0aGUgQiB2YWx1ZSBpcyBzbWFsbGVyXG4gICAgQGVsc2VpZiBudGgoJEEsICRBLWNvdW50ZXIpID4gbnRoKCRCLCAkQi1jb3VudGVyKSB7XG4gICAgICAkUmV0dXJuOiBqb2luKCRSZXR1cm4sIG50aCgkQiwgJEItY291bnRlcikpO1xuICAgICAgJEItY291bnRlcjogJEItY291bnRlciArIDE7XG4gICAgfVxuICB9XG5cbiAgLy8gUnVuIHRocm91Z2ggcmVtYWluZGVyIHZhbHVlcyBpbiB0aGUgbGlzdFxuICBAd2hpbGUgJEEtY291bnRlciA8PSBsZW5ndGgoJEEpIHtcbiAgICAkQ3VycmVudDogbnRoKCRBLCAkQS1jb3VudGVyKTtcbiAgICBAaWYgJEN1cnJlbnQgIT0gbnRoKCRSZXR1cm4sIGxlbmd0aCgkUmV0dXJuKSkge1xuICAgICAgJFJldHVybjogam9pbigkUmV0dXJuLCAkQ3VycmVudCk7XG4gICAgfVxuICAgICRBLWNvdW50ZXI6ICRBLWNvdW50ZXIgKyAxO1xuICB9XG4gIEB3aGlsZSAkQi1jb3VudGVyIDw9IGxlbmd0aCgkQikge1xuICAgICRDdXJyZW50OiBudGgoJEIsICRCLWNvdW50ZXIpO1xuICAgIEBpZiAkQ3VycmVudCAhPSBudGgoJFJldHVybiwgbGVuZ3RoKCRSZXR1cm4pKSB7XG4gICAgICAkUmV0dXJuOiBqb2luKCRSZXR1cm4sICRDdXJyZW50KTtcbiAgICB9XG4gICAgJEItY291bnRlcjogJEItY291bnRlciArIDE7XG4gIH1cblxuICAvLyBEb25lISByZXR1cm4gaXMgbm93IHNvcnRlZCBhbmQgY29tcGxldGVcbiAgQHJldHVybiAkUmV0dXJuO1xufVxuXG5cblxuLy8gUHVsbCBpdCBhbGwgdG9nZXRoZXJcbkBmdW5jdGlvbiBtcy1zb3J0LWxpc3QoJExpc3RzKSB7XG5cbiAgJFJldHVybjogKCk7XG5cbiAgQGVhY2ggJExpc3QgaW4gJExpc3RzIHtcbiAgICBAaWYgJFJldHVybiA9PSAoKSB7XG4gICAgICAkUmV0dXJuOiAkTGlzdDtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJFJldHVybjogbXMtbWVyZ2UoJExpc3QsICRSZXR1cm4pO1xuICAgIH1cbiAgfVxuXG4gIC8vIGZpbmFsIGNsZWFudXAgb2YgcmVwZWF0ZWQgaXRlbXNcbiAgJExhc3Q6IG51bGw7XG4gICROZXctbGlzdDogKCk7XG4gIEBlYWNoICRJdGVtIGluICRSZXR1cm4ge1xuICAgIEBpZiAkSXRlbSAhPSAkTGFzdCB7XG4gICAgICAkTmV3LWxpc3Q6IGpvaW4oJE5ldy1saXN0LCAkSXRlbSk7XG4gICAgfVxuICAgICRMYXN0OiAkSXRlbTtcbiAgfVxuICAkUmV0dXJuOiAkTmV3LWxpc3Q7XG5cblxuICBAcmV0dXJuICRSZXR1cm47XG59IiwiQGZ1bmN0aW9uIG1zLXJvdW5kLXB4KCRSZXN1bHQpIHtcbiAgQGlmIHVuaXQoJFJlc3VsdCkgPT0gJ3B4JyB7XG4gICAgQHJldHVybiByb3VuZCgkUmVzdWx0KTtcbiAgfVxuICBAcmV0dXJuICRSZXN1bHQ7XG59IiwiLy8gVGhlIG1haW4gZnVuY3Rpb24gdGhhdCBicmluZ3MgaXQgYWxsIHRvZ2V0aGVyXG5AZnVuY3Rpb24gbXMoJFZhbHVlOiAwLCAkQmFzZXM6ICRtcy1iYXNlLCAkUmF0aW9zOiAkbXMtcmF0aW8pIHtcblxuICAvLyBJZiBubyBtdWx0aS1iYXNlIG9yIG11bHRpLXJhdGlvIHN0dWZmIGlzIGdvaW5nIG9uXG4gIC8vIHRoZW4ganVzdCByZXRybiB0aGUgYmFzaWMgY2FsY3VsYWl0b25cbiAgQGlmIGxlbmd0aCgkQmFzZXMpID09IDEgYW5kIGxlbmd0aCgkUmF0aW9zKSA9PSAxIHtcbiAgICBAcmV0dXJuIG1zLXJvdW5kLXB4KG1zLWNhbGMoJFZhbHVlLCAkQmFzZXMsICRSYXRpb3MpKTtcbiAgfVxuXG4gIC8vIERvIGNhbGN1bGF0aW9ucyBkaXJlY3RseSBpbiBSdWJ5IHdoZW4gYXZhbGlibGVcbiAgQGlmICRNUy1nZW0tZXhpc3RzIHtcblxuICAgIC8vIFJlbW92ZSB1bml0cyBmcm9tIGJhc2VzXG4gICAgJFVuaXQ6IG50aCgkQmFzZXMsIDEpICogMCArIDE7IC8vIEV4dHJhY3RzIHRoZSB1bml0IGZyb20gdGhlIGJhc2VcbiAgICAkVW5pdGxlc3MtQmFzZXM6ICgpO1xuICAgIEBlYWNoICRCYXNlIGluICRCYXNlcyB7XG4gICAgICAkQmFzZTogJEJhc2UvJFVuaXQ7XG4gICAgICAkVW5pdGxlc3MtQmFzZXM6IGpvaW4oJFVuaXRsZXNzLUJhc2VzLCAkQmFzZSk7XG4gICAgfVxuXG4gICAgLy8gQ2FsY3VsYXRlIG5hdGl2ZWx5IGluIFJ1YnlcbiAgICBAcmV0dXJuIG1zLXJvdW5kLXB4KG1zLWdlbS1mdW5jKCRWYWx1ZSwgJFVuaXRsZXNzLUJhc2VzLCAkUmF0aW9zKSAqICRVbml0KTtcbiAgfVxuXG4gIC8vIEdlbmVyYXRlIGEgbGlzdCBvZiBhbGwgcG9zc2libGUgdmFsdWVzXG4gICRSZXR1cm46IG1zLWdlbmVyYXRlLWxpc3QoJFZhbHVlLCAkQmFzZXMsICRSYXRpb3MpO1xuXG4gIC8vIFNvcnQgdGhlIGdlbmVyYXRlZCBsaXN0c1xuICAkUmV0dXJuOiBtcy1zb3J0LWxpc3QoJFJldHVybik7XG5cbiAgLy8gUmV2ZXJzZSBsaXN0IGlmIGl0cyBuZWdpdGl2ZS5cbiAgQGlmICRWYWx1ZSA8IDAge1xuICAgICRNUy1uZXctcmV0dXJuOiAoKTtcbiAgICBAZWFjaCAkaSBpbiAkUmV0dXJuIHtcbiAgICAgICRNUy1uZXctcmV0dXJuOiBqb2luKCRpLCAkTVMtbmV3LXJldHVybik7XG4gICAgfVxuICAgICRSZXR1cm46ICRNUy1uZXctcmV0dXJuO1xuICB9XG5cbiAgLy8gTm9ybWFsaXplIHZhbHVlIGZvciBjb3VudGluZyBmcm9tIDFcbiAgLy8gQmVjYXVzZSBDU1MgY291bnRzIHRoaW5ncyBmcm9tIDFcbiAgLy8gU28gU2FzcyBkb2VzIGFzIHdlbGxcbiAgLy8gU28gSSBnZXQgdG8gd3JpdGUgZnVuIHN0dWZmIGxpa2UgdGhpc1xuICAkVmFsdWU6IGFicygkVmFsdWUpICsgMTtcblxuICAvLyBGaW5kIHRoZSBjb3JyZWN0IHZhbHVlIGluIHRoZSBsaXN0XG4gICRSZXR1cm46IG50aCgkUmV0dXJuLCAkVmFsdWUpO1xuXG4gIEByZXR1cm4gbXMtcm91bmQtcHgoJFJldHVybik7XG59XG5cbi8vIFNhbWUgZnVuY3Rpb24sIGRpZmZlcmVudCBuYW1lLCBmb3IgZ29vZCBtZWFzdXJlLlxuQGZ1bmN0aW9uIG1vZHVsYXItc2NhbGUoJFZhbHVlOiAwLCAkQmFzZXM6ICRtcy1iYXNlLCAkUmF0aW9zOiAkbXMtcmF0aW8pIHtcbiAgQHJldHVybiBtcygkVmFsdWUsICRCYXNlcywgJFJhdGlvcyk7XG59IiwiLy8gT3V0cHV0cyBhIGxpc3Qgb2YgdmFsdWVzIGluc3RlYWQgb2YgYSBzaW5nbGUgdmFsdWVcbkBmdW5jdGlvbiBtcy1saXN0KCRTdGFydDogMCwgJEVuZDogMCwgJEJhc2VzOiAkbXMtYmFzZSwgJFJhdGlvczogJG1zLXJhdGlvKSB7XG5cbiAgLy8gU2VlZCByZXN1bHRzXG4gICRQb3NpdGl2ZS1yZXR1cm46ICgpO1xuICAkTmVnaXRpdmUtcmV0dXJuOiAoKTtcbiAgJFJldHVybjogKCk7XG5cbiAgQGlmICRFbmQgPj0gMCB7XG4gICAgLy8gR2VuZXJhdGUgYSBsaXN0IG9mIGFsbCBwb3NzaWJsZSB2YWx1ZXNcbiAgICAkUG9zaXRpdmUtcmV0dXJuOiBtcy1nZW5lcmF0ZS1saXN0KCRFbmQsICRCYXNlcywgJFJhdGlvcyk7XG5cbiAgICAvLyBTb3J0IHRoZSBnZW5lcmF0ZWQgbGlzdHNcbiAgICAkUG9zaXRpdmUtcmV0dXJuOiBtcy1zb3J0LWxpc3QoJFBvc2l0aXZlLXJldHVybik7XG5cbiAgICAvLyBUcmltIGxpc3RcbiAgICAkVHJpbS1saXN0OiAoKTtcbiAgICAvLyBJZiB0aGUgc3RhcnRpbmcgdmFsdWUgaXMgYSBwb3NpdGl2ZSBudW1iZXJcbiAgICAvLyB0cmltIHRoZSBwb3NpdGl2ZSByZXR1cm4gZnJvbSB0aGF0XG4gICAgQGlmICRTdGFydCA+PSAwIHtcbiAgICAgIEBmb3IgJGkgZnJvbSAoJFN0YXJ0ICsgMSkgdGhyb3VnaCAkRW5kICsgMSB7XG4gICAgICAgICRUcmltLWxpc3Q6IGpvaW4oJFRyaW0tbGlzdCwgbnRoKCRQb3NpdGl2ZS1yZXR1cm4sICRpKSk7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIElmIG5vdCwgdGhlbiBpbmNsdWRlIGV2ZXJ5dGhpbmcgdXAgdG8gdGhlIGVuZC5cbiAgICBAZWxzZSB7XG4gICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRFbmQgKyAxIHtcbiAgICAgICAgJFRyaW0tbGlzdDogam9pbigkVHJpbS1saXN0LCBudGgoJFBvc2l0aXZlLXJldHVybiwgJGkpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgJFBvc2l0aXZlLXJldHVybjogJFRyaW0tbGlzdDtcbiAgfVxuXG4gIC8vIEdlbmVyYXRlIGEgbmVnaXRpdmUgbGlzdFxuICBAaWYgJFN0YXJ0IDwgMCB7XG4gICAgLy8gR2VuZXJhdGUgYSBsaXN0IG9mIGFsbCBwb3NzaWJsZSB2YWx1ZXNcbiAgICAkTmVnaXRpdmUtcmV0dXJuOiBtcy1nZW5lcmF0ZS1saXN0KCRTdGFydCwgJEJhc2VzLCAkUmF0aW9zKTtcblxuICAgIC8vIFNvcnQgdGhlIGdlbmVyYXRlZCBsaXN0c1xuICAgICROZWdpdGl2ZS1yZXR1cm46IG1zLXNvcnQtbGlzdCgkTmVnaXRpdmUtcmV0dXJuKTtcblxuICAgIC8vIFJldmVyc2UgbmVnaXRpdmUgbGlzdCByZXN1bHRzLlxuICAgICRNUy1uZXctcmV0dXJuOiAoKTtcbiAgICBAZWFjaCAkaSBpbiAkTmVnaXRpdmUtcmV0dXJuIHtcbiAgICAgICRNUy1uZXctcmV0dXJuOiBqb2luKCRpLCAkTVMtbmV3LXJldHVybik7XG4gICAgfVxuICAgICROZWdpdGl2ZS1yZXR1cm46ICRNUy1uZXctcmV0dXJuO1xuXG4gICAgLy8gVHJpbSBsaXN0XG4gICAgJFRyaW0tbGlzdDogKCk7XG4gICAgQGlmICRFbmQgPCAwIHtcbiAgICAgIEBmb3IgJGkgZnJvbSBhYnMoJEVuZCkgdGhyb3VnaCAoYWJzKCRTdGFydCkgKyAyKSB7XG4gICAgICAgICRUcmltLWxpc3Q6IGpvaW4obnRoKCROZWdpdGl2ZS1yZXR1cm4sICRpKSwgJFRyaW0tbGlzdCk7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggKGFicygkU3RhcnQpICsgMSkge1xuICAgICAgICAkVHJpbS1saXN0OiBqb2luKG50aCgkTmVnaXRpdmUtcmV0dXJuLCAkaSksICRUcmltLWxpc3QpO1xuICAgICAgfVxuICAgIH1cbiAgICAkTmVnaXRpdmUtcmV0dXJuOiAkVHJpbS1saXN0O1xuICB9XG5cbiAgLy8gSm9pbiBib3RoIHBvc2l0aXZlIGFuZCBuZWdpdGl2ZSBwb3NzaWJpbGl0aWVzLlxuICAkUmV0dXJuOiBqb2luKCROZWdpdGl2ZS1yZXR1cm4sICRQb3NpdGl2ZS1yZXR1cm4pO1xuXG4gIEByZXR1cm4gJFJldHVybjtcbn1cbiIsIkBtaXhpbiBtcy1yZXNwb25kKCRwcm9wZXJ0eSwgJHZhbHVlLCAkcmFuZ2U6ICRtcy1yYW5nZSwgJGJhc2U6ICRtcy1iYXNlKSB7XG4gIEBpZiAkbXMtcmFuZ2UgPT0gbnVsbCB7XG4gICAgI3skcHJvcGVydHl9OiBtcygkdmFsdWUsJGJhc2UsJG1zLXJhdGlvKTtcbiAgfSBAZWxzZSB7XG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBsZW5ndGgoJHJhbmdlKSB7XG4gICAgICBAZGVidWcgbnRoKCRyYW5nZSwkaSk7XG4gICAgICBAaWYgJGkgPT0gMSB7XG4gICAgICAgICN7JHByb3BlcnR5fTogbXMoJHZhbHVlLCRiYXNlLG50aChudGgoJHJhbmdlLCRpKSwxKSk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IG50aChudGgoJHJhbmdlLCRpKSwyKSkge1xuICAgICAgICAgICN7JHByb3BlcnR5fTogbXMoJHZhbHVlLCRiYXNlLG50aChudGgoJHJhbmdlLCRpKSwxKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCJAaW1wb3J0ICdicmVha3BvaW50cyc7XG5AaW1wb3J0ICdjb2xvcnMnO1xuQGltcG9ydCAnZ3JpZCc7XG5AaW1wb3J0ICdtb2R1bGFyLXNjYWxlJztcbkBpbXBvcnQgJ3R5cG9ncmFwaHknO1xuIiwiLy8gQHJlc3BvbnNpdmUgYnJlYWtwb2ludHMgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4kc21hbGwtc2NyZWVuOiA0NjRweDsgLy8gMjllbVxuJHNtYWxsLXNjcmVlbi1tYXg6IDYwN3B4OyAgLy8gMzcuOTM3NWVtXG5cbiRuYXJyb3ctc2NyZWVuOiA2MDhweDsgLy8gMzhlbVxuJG5hcnJvdy1zY3JlZW4tbWF4OiA3NjdweDsgLy8gNDcuOTM3NWVtXG5cbiR3ZWlyZC1zY3JlZW46IDc2OHB4OyAvLyA0OGVtIHdoYXQgZWxzZSBJIGNhbGwgdGhpcz8hPyE/IVxuJHdlaXJkLXNjcmVlbi1tYXggOiA4OTVweDsgLy8gNTUuOTM3NWVtXG5cbiRtZWRpdW0tc2NyZWVuOiA4OTZweDsgLy8gNTZlbVxuJG1lZGl1bS1zY3JlZW4tbWF4OiA5OTFweDsgLy8gNjEuOTM3NWVtXG5cbiRzdGFuZGFyZC1zY3JlZW46IDk5MnB4OyAvLyA2MmVtIC0gOTkycHggPSAxMDI0IC0gKDE2cHgqMilcbiRzdGFuZGFyZC1zY3JlZW4tbWF4OiAxMTg3cHg7IC8vIDc0LjE4NzVlbVxuXG4kd2lkZS1zY3JlZW46IDExODhweDsgLy8gNzQuMjVlbSAtIDExODhweCA9IDEyMjBweCAtICgxNnB4KjIpXG4kd2lkZS1zY3JlZW4tbWF4OiAxNDA3cHg7IC8vIDg3LjkzNzVlbVxuXG4kc3VwZXItd2lkZS1zY3JlZW46IDE0MDhweDsgLy8gODhlbSAtIDE0MDhweCA9IDE0NDBweCAtICgxNnB4KjIpXG5cbiRtZW51LWxhcmdlLXNjcmVlbjogMTg0MHB4O1xuIiwiLy8gQGNvbG91ciBwYWxldHR0ZSAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gdXNpbmcgY29sb3IgbmFtZXMgYXMgdmFyaWFibGVzIGlzIGZpbmUuXG5cbi8vIHRoZW1lIGNvbG9yc1xuLy8gJHZhci1jb2xvcjogI2ZmZmZmZlxuXG4vLyBncmV5c1xuJGxpZ2h0LWdyZXk6ICNmMmYyZjI7IC8vY2hhbmdlZCBmcm9tIHRoZSBkZWZhdWx0IGxpZ2h0IGdyZXlcbiRuZXV0cmFsLWdyZXk6ICM3NTc1NzU7XG4kZGFyay1ncmV5OiAjMjEyMTIxO1xuXG4vL3JlZHNcbiRlY2hpZG5hLXJlZDogI2MyMDAyZjtcbiRkYXJrLXJlZDogIzdlMDAxZTtcblxuXG4vLyB1aSBjb2xvdXJzIGZvciBzaGFkb3dzLCBib3JkZXJzLCBldGMuIENhbiBiZSB1c2VkIG9uIHRoZWlyIG93biwgb3IgcGFydCBvZiBtaXhpbnMgb3IgcGxhY2Vob2xkZXJzXG4kdWktYm9yZGVycy1jb2xvcjogdGludChibGFjaywgODAlKTtcbiR1aS1ncmV5OiAkbmV1dHJhbC1ncmV5O1xuIiwiLy8gQGdyaWQgc2V0dGluZ3MgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBpbmNsdWRlIGFkZC1ncmlkKDEyKTtcbkBpbmNsdWRlIGFkZC1ndXR0ZXIoMS8zKTtcblxuQGluY2x1ZGUgYnJlYWtwb2ludC1zZXQoJ3RvIGVtcycsIHRydWUpO1xuIiwiLy8gQG1vZHVsYXIgc2NhbGUgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyBodHRwOi8vdGhlc2Fzc3dheS5jb20vcHJvamVjdHMvbW9kdWxhci1zY2FsZVxuLy8gaHR0cHM6Ly9naXRodWIuY29tL21vZHVsYXJzY2FsZS9tb2R1bGFyc2NhbGUtc2Fzc1xuLy8gaHR0cDovL3d3dy5tb2R1bGFyc2NhbGUuY29tL1xuXG4vLyAkbXMtYmFzZTogMWVtIDEuMjVlbTtcbi8vICRtcy1yYXRpbzogJGdvbGRlbjtcblxuJG1zLWJhc2U6IDFlbTtcbiRtcy1yYXRpbzogJG1ham9yLXRoaXJkO1xuXG4vLyAkbXMtcmFuZ2U6IDEgMjllbSwgMS42MTggNjJlbTtcblxuLy8gJG1zLWZsdWlkOiBmYWxzZTtcbi8vICRtcy1yYW5nZTpcbi8vICAgMS4yICRuYXJyb3ctc2NyZWVuLFxuLy8gICAxLjMgMzhlbSxcbi8vICAgMS40IDQ4ZW0sXG4vLyAgIDEuNSA1NmVtLFxuLy8gICAxLjYgNjJlbTtcblxuJGNsYXNzLXNsdWc6IG1zO1xuIiwiLy8gQHR5cGUgc2V0dGluZ3MgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyBtb2R1bGFyIHNjYWxlIHNldHRpbmdzIGFyZSBsb2NhdGVkIGluIHR5cG9ncmFwaHkvX21vZHVsYXItc2NhbGUuc2Nzc1xuXG4kdGhpbjogMTAwO1xuJGV4dHJhLWxpZ2h0OiAyMDA7XG4kbGlnaHQ6IDMwMDtcbiRub3JtYWw6IDQwMDtcbiRtZWRpdW06IDYwMDtcbiRib2xkOiA3MDA7XG4vLyAkdWx0cmEtYm9sZDogOTAwO1xuXG4kZm9udC1zZXQtMTogJ1JhbGV3YXknLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiRmb250LXNldC0yOiBcIlRyZWJ1Y2hldCBNU1wiLFwiVGltZXMgTmV3IFJvbWFuXCIsc2VyaWY7XG4kZm9udC1zZXQtNDogJ011bGknLCBBcmlhbCwgc2Fucy1zZXJpZjtcbi8vICRmb250LXNldC0zOiAnUmFsZXdheScsIEFyaWFsLCBzYW5zLXNlcmlmO1xuXG4kYnJvd3Nlci1kZWZhdWx0LWZvbnQtc2l6ZTogMTZweDtcbiRiYXNlLWZvbnQtc2l6ZTogMTZweDtcbiRiYXNlLWxpbmUtaGVpZ2h0OiAgMjUuODg4cHg7XG5cbi8vIGVhc2llciBmb250IHNpemUgdmFyaWFibGVzXG4keHNtYWxsICAgIDogbXMoLTIpO1xuJHNtYWxsICAgICA6IG1zKC0xKTtcbiRyZWd1bGFyICAgOiBtcygxKTtcbiRsYXJnZSAgICAgOiBtcygyKTtcbiR4bGFyZ2UgICAgOiBtcygzKTtcbiR4eGxhcmdlICAgOiBtcyg0KTtcbiR4eHhsYXJnZSAgOiBtcyg1KTtcbiRzdXBlcmxhcmdlOiBtcyg2KTtcbiIsIkBpbXBvcnQgJ2xpYnJhcnkvdHlwb2dyYXBoeS9pbmRleCc7XG5AaW1wb3J0ICdsaWJyYXJ5L3Jlc2V0LXV0aWxpdGllcy9pbmRleCc7XG5AaW1wb3J0ICdsaWJyYXJ5L3ZlbmRvcnMvaW5kZXgnO1xuXG4vLyBvcmdhbml6ZVxuXG5AaW1wb3J0ICdsaWJyYXJ5L2JveC1zaGFkb3dzJztcbkBpbXBvcnQgJ2xpYnJhcnkvYnV0dG9ucyc7XG5AaW1wb3J0ICdsaWJyYXJ5L2NlbnRlci1ibG9jayc7XG5AaW1wb3J0ICdsaWJyYXJ5L2RpdmlkZXItbGluZSc7XG5AaW1wb3J0ICdsaWJyYXJ5L2hlYWRsaW5lLXR5cGUnO1xuQGltcG9ydCAnbGlicmFyeS9oaWdobGlnaHQtYm94JztcbkBpbXBvcnQgJ2xpYnJhcnkvaW1hZ2UtMngnO1xuQGltcG9ydCAnbGlicmFyeS9pbWFnZS1zdHlsZXMnO1xuQGltcG9ydCAnbGlicmFyeS9uYXZpZ2F0aW9uLWxpc3QnO1xuQGltcG9ydCAnbGlicmFyeS9uby1kcmFnLWltYWdlJztcbkBpbXBvcnQgJ2xpYnJhcnkvc3ZnLWJnJztcbiIsIkBpbXBvcnQgJ2ZvbnQtc2l6ZSc7XG5AaW1wb3J0ICdsaW5lLWhlaWdodCc7XG5AaW1wb3J0ICduby1idWxsZXQnO1xuQGltcG9ydCAnbm8tYnVsbGV0cyc7XG5AaW1wb3J0ICdwcmV0dHktYnVsbGV0cyc7XG5AaW1wb3J0ICd0ZXh0LXRydW5jYXRlJztcbkBpbXBvcnQgJ3Vuc3R5bGVkLWxpbmsnO1xuQGltcG9ydCAndGV4dC1yZXBsYWNlbWVudC9pbmRleCc7XG4iLCIvLyBUaGlzIG1peGluIHNldHMgdGhlIGZvbnQgc2l6ZSBpbiByZW0ncyB3aXRoIGEgcHggZmFsbGJhY2suXG5cbi8vIFVzYWdlXG4vLyBib2R5IHtcbiAgLy8gQGluY2x1ZGUgZm9udC1zaXplKDE2KTtcbi8vIH1cblxuQG1peGluIGZvbnQtc2l6ZSgkc2l6ZVZhbHVlOiAxMiApe1xuICBmb250LXNpemU6ICRzaXplVmFsdWUgKyBweDsgLy9mYWxsYmFjayBmb3Igb2xkIGJyb3dzZXJzXG4gIGZvbnQtc2l6ZTogKDAuMTI1ICogJHNpemVWYWx1ZSkgKyByZW07XG59XG4iLCIvLyBUaGlzIG1peGluIHNldHMgdGhlIGxpbmUgaGVpZ2h0IGluIHJlbSdzIHdpdGggYSBweCBmYWxsYmFjay5cblxuLy8gVXNhZ2Vcbi8vIGJvZHkge1xuICAvLyBAaW5jbHVkZSBsaW5lLWhlaWdodCAoMTYpO1xuLy8gfVxuXG5AbWl4aW4gbGluZS1oZWlnaHQoJGhlaWdodFZhbHVlOiAxMiApe1xuICAgIGxpbmUtaGVpZ2h0OiAkaGVpZ2h0VmFsdWUgKyBweDsgLy9mYWxsYmFjayBmb3Igb2xkIGJyb3dzZXJzXG4gICAgbGluZS1oZWlnaHQ6ICgwLjEyNSAqICRoZWlnaHRWYWx1ZSkgKyByZW07XG59XG4iLCJAbWl4aW4gbm8tYnVsbGV0e1xuICBsaXN0LXN0eWxlLWltYWdlOiBub25lO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuIiwiQG1peGluIG5vLWJ1bGxldHMge1xuICBsaSB7XG4gICAgQGluY2x1ZGUgbm8tYnVsbGV0O1xuICB9XG59XG4iLCIvLyBodHRwOi8vY29tcGFzcy1zdHlsZS5vcmcvcmVmZXJlbmNlL2NvbXBhc3MvdHlwb2dyYXBoeS9saXN0cy9idWxsZXRzLyNtaXhpbi1wcmV0dHktYnVsbGV0c1xuXG5AbWl4aW4gcHJldHR5LWJ1bGxldHMoJGJ1bGxldC1pY29uLCAkd2lkdGg6IGltYWdlLXdpZHRoKCRidWxsZXQtaWNvbiksICRoZWlnaHQ6IGltYWdlLWhlaWdodCgkYnVsbGV0LWljb24pLCAkbGluZS1oZWlnaHQ6IDE4cHgsICRwYWRkaW5nOiAxNHB4KSB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBsaSB7XG4gICAgcGFkZGluZy1sZWZ0OiAkcGFkZGluZztcbiAgICBiYWNrZ3JvdW5kOiBpbWFnZS11cmwoJGJ1bGxldC1pY29uKSBuby1yZXBlYXQgKCRwYWRkaW5nIC0gJHdpZHRoKSAvIDIgKCRsaW5lLWhlaWdodCAtICRoZWlnaHQpIC8gMjtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIH1cbn1cbiIsIi8vIFJlcXVpcmVzIHRoZSBlbGVtZW50IHRvIGJlIGJsb2NrIG9yIGlubGluZS1ibG9jay5cbkBtaXhpbiB0ZXh0LXRydW5jYXRlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuIiwiQG1peGluIHVuc3R5bGVkLWxpbmsge1xuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICAvLyBjdXJzb3I6IGluaGVyaXQ7XG4gICY6YWN0aXZlLCAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICB9XG59XG4iLCJAaW1wb3J0ICdyZXBsYWNlLXRleHQtd2l0aC1kaW1lbnNpb25zJztcbkBpbXBvcnQgJ3JlcGxhY2UtdGV4dCc7XG5AaW1wb3J0ICdzcXVpc2gtdGV4dCc7XG4iLCIvLyBodHRwOi8vY29tcGFzcy1zdHlsZS5vcmcvcmVmZXJlbmNlL2NvbXBhc3MvdHlwb2dyYXBoeS90ZXh0L3JlcGxhY2VtZW50LyNtaXhpbi1yZXBsYWNlLXRleHQtd2l0aC1kaW1lbnNpb25zXG5cbkBtaXhpbiByZXBsYWNlLXRleHQtd2l0aC1kaW1lbnNpb25zKCRpbWcsICR4OiA1MCUsICR5OiA1MCUsICRpbmxpbmU6IGZhbHNlKSB7XG4gIEBpbmNsdWRlIHJlcGxhY2UtdGV4dChpZigkaW5saW5lLCBpbmxpbmUtaW1hZ2UoJGltZyksICRpbWcpLCAkeCwgJHkpO1xuICB3aWR0aDogaW1hZ2Utd2lkdGgoJGltZyk7XG4gIGhlaWdodDogaW1hZ2UtaGVpZ2h0KCRpbWcpO1xufVxuIiwiLy8gaHR0cDovL2NvbXBhc3Mtc3R5bGUub3JnL3JlZmVyZW5jZS9jb21wYXNzL3R5cG9ncmFwaHkvdGV4dC9yZXBsYWNlbWVudC8jbWl4aW4tcmVwbGFjZS10ZXh0XG5AbWl4aW4gcmVwbGFjZS10ZXh0KCRpbWcsICR4OiA1MCUsICR5OiA1MCUpIHtcbiAgLy8gQGluY2x1ZGUgaGlkZS10ZXh0O1xuICBiYWNrZ3JvdW5kOiB7XG4gICAgQGlmIGlzLXVybCgkaW1nKSB7XG4gICAgICBpbWFnZTogJGltZztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgaW1hZ2U6IGltYWdlLXVybCgkaW1nKTtcbiAgICB9XG4gICAgcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgcG9zaXRpb246ICR4ICR5O1xuICB9O1xufVxuIiwiLy8gaHR0cDovL2NvbXBhc3Mtc3R5bGUub3JnL3JlZmVyZW5jZS9jb21wYXNzL3R5cG9ncmFwaHkvdGV4dC9yZXBsYWNlbWVudC8jbWl4aW4tc3F1aXNoLXRleHRcblxuQG1peGluIHNxdWlzaC10ZXh0IHtcbiAgZm9udDogMC8wIHNlcmlmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xufVxuIiwiQGltcG9ydCAncmVzZXQtYm94LW1vZGVsJztcbkBpbXBvcnQgJ3Jlc2V0LWNvbHVtbic7XG5AaW1wb3J0ICdyZXNldC1mb250JztcbkBpbXBvcnQgJ3Jlc2V0LWZvcm0tZmllbGQnO1xuQGltcG9ydCAncmVzZXQtaW1hZ2UtaG92ZXInO1xuQGltcG9ydCAncmVzZXQtcXVvdGF0aW9uJztcbkBpbXBvcnQgJ3Jlc2V0LXRhYmxlLWNlbGwnO1xuQGltcG9ydCAncmVzZXQtdGFwJztcbkBpbXBvcnQgJ3Jlc2V0JztcbkBpbXBvcnQgJ3Jlc2V0LXVzZXItc2VsZWN0JztcbiIsIkBtaXhpbiByZXNldC1ib3gtbW9kZWwge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDtcbn1cbiIsIkBtaXhpbiByZXNldC1jb2x1bW57XG4gICAgd2lkdGg6ICBhdXRvO1xuICAgIGZsb2F0OiAgbm9uZTtcbiAgICBjbGVhcjogIG5vbmU7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAgMDtcbn1cbiIsIkBtaXhpbiByZXNldC1mb250IHtcbiAgZm9udDogaW5oZXJpdDtcbiAgZm9udC1zaXplOiAxMDAlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG4iLCIvLyByZW1vdmVzIHNoYWRvdyBhbmQgYm9yZGVyIHJhZGl1cyBvbiBmb3JtIGZpZWxkcyBvbiBpT1NcbkBtaXhpbiByZXNldC1mb3JtLWZpZWxke1xuICAvLyAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgd2lkdGg6IDEwMCU7XG4gICY6Zm9jdXN7XG4gICAgb3V0bGluZTogMDtcbiAgfVxufVxuIiwiLy8gdXNlIHRoaXMgbWl4aW4gaWYgeW91ciBpbWFnZSBsb29rcyBqYWdnZWQuIE9wYWNpdHkgcmVkdWN0aW9uIHN0aWxsIHdvcmtzXG5AbWl4aW4gcmVzZXQtaW1hZ2UtaG92ZXIge1xuICBpbWd7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgfVxuICBhIGltZ3tcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB9XG59XG4iLCJAbWl4aW4gcmVzZXQtcXVvdGF0aW9uIHtcbiAgcXVvdGVzOiBub25lO1xuICAmOmJlZm9yZSwgJjphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBjb250ZW50OiBub25lO1xuICB9XG59XG4iLCJAbWl4aW4gcmVzZXQtdGFibGUtY2VsbCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4iLCIvLyByZW1vdmVzIHRhcCBoaWdobGlnaHQgb24gdG91Y2hzY3JlZW5zXG5AbWl4aW4gcmVzZXQtdGFwKCRjb2xvcjogcmdiYSgwLDAsMCwwKSkge1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6ICRjb2xvcjtcbiAgb3V0bGluZTogbm9uZTtcbn1cbiIsIkBtaXhpbiByZXNldCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cbiIsIkBtaXhpbiByZXNldC11c2VyLXNlbGVjdHtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsgIC8qIENocm9tZSBhbGwgLyBTYWZhcmkgYWxsICovXG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7ICAgICAvKiBGaXJlZm94IGFsbCAqL1xuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7ICAgICAgLyogSUUgMTArICovXG4gIHVzZXItc2VsZWN0OiBub25lOyAgICAgICAgICAvKiBMaWtlbHkgZnV0dXJlICovXG59XG4iLCJAaW1wb3J0ICdtYXRlcmlhbC1kZXNpZ24taWNvbnMvbWF0ZXJpYWwtaWNvbnMnO1xuIiwiLyogb2JqZWN0cy8vbWF0ZXJpYWwtZGVzaWduLWljb25zL19tYXRlcmlhbC1pY29ucy5zY3NzICovXG4vLyBodHRwOi8vZ29vZ2xlLmdpdGh1Yi5pby9tYXRlcmlhbC1kZXNpZ24taWNvbnMvI3NpemluZ1xuLy8gaWYgeW91IG5lZWQgdG8gdXNlIGltYWdlcyBmb3IgYnJvd3NlciBjb21wYXRpYmlsaXR5LCB5b3UgY2FuIGZpbmRcbi8vIGluc3RydWN0aW9ucyBvbiBob3cgdG8gZG93bmxvYWQgdGhlbSBvbiBnaXRodWJcbi8vIGh0dHA6Ly9nb29nbGUuZ2l0aHViLmlvL21hdGVyaWFsLWRlc2lnbi1pY29ucy8jaWNvbi1pbWFnZXMtZm9yLXRoZS13ZWJcblxuLy8gUnVsZXMgZm9yIHNpemluZyB0aGUgaWNvbi5cbkBtaXhpbiBtZC0xOHtcbiAgZm9udC1zaXplOiAxOHB4O1xufVxuXG5AbWl4aW4gbWQtMjR7XG4gIGZvbnQtc2l6ZTogMjRweDtcbn1cblxuQG1peGluIG1kLTM2e1xuICBmb250LXNpemU6IDM2cHg7XG59XG5cbkBtaXhpbiBtZC00OHtcbiAgZm9udC1zaXplOiA0OHB4O1xufVxuXG4vLyBSdWxlcyBmb3IgdXNpbmcgaWNvbnMgYXMgYmxhY2sgb24gYSBsaWdodCBiYWNrZ3JvdW5kLlxuQG1peGluIG1kLWRhcmt7XG4gY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG5cbkBtaXhpbiBtZC1kYXJrLWluYWN0aXZle1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjI2KTtcbn1cblxuLy8gUnVsZXMgZm9yIHVzaW5nIGljb25zIGFzIHdoaXRlIG9uIGEgZGFyayBiYWNrZ3JvdW5kLlxuQG1peGluIG1kLWxpZ2h0e1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTtcbn1cblxuQG1peGluIG1kLWxpZ2h0LWluYWN0aXZle1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xufVxuXG5cbkBtaXhpbiBtYXRlcmlhbC1pY29uc3tcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG4gIGZvbnQtZmFtaWx5OiAnTWF0ZXJpYWwgSWNvbnMnO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtc2l6ZTogMjRweDsgIC8qIFByZWZlcnJlZCBpY29uIHNpemUgKi9cbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMWVtO1xuICBoZWlnaHQ6IDFlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICB3b3JkLXdyYXA6IG5vcm1hbDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgZGlyZWN0aW9uOiBsdHI7XG4gIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gIC8qIFN1cHBvcnQgZm9yIGFsbCBXZWJLaXQgYnJvd3NlcnMuICovXG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAvKiBTdXBwb3J0IGZvciBTYWZhcmkgYW5kIENocm9tZS4gKi9cbiAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcblxuICAvKiBTdXBwb3J0IGZvciBGaXJlZm94LiAqL1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuXG4gIC8qIFN1cHBvcnQgZm9yIElFLiAqL1xuICBmb250LWZlYXR1cmUtc2V0dGluZ3M6ICdsaWdhJztcbn1cbiIsIi8qIG9iamVjdHMvX2JveC1zaGFkb3dzLnNjc3MgKi9cblxuQG1peGluIHotZGVmYXVsdC1zaGFkb3cge1xuICBib3gtc2hhZG93OiAwIDJweCAycHggMCByZ2JhKDAsMCwwLC4xNCksMCAzcHggMXB4IC0ycHggcmdiYSgwLDAsMCwuMiksMCAxcHggNXB4IDAgcmdiYSgwLDAsMCwuMTIpO1xufVxuXG5AbWl4aW4gei1kZXB0aC0wIHtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gei1kZXB0aC0xe1xuICBib3gtc2hhZG93OiAwIDJweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTYpLCAwIDJweCAxMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuQG1peGluIHotZGVwdGgtMS1oYWxme1xuICBib3gtc2hhZG93OiAwIDVweCAxMXB4IDAgcmdiYSgwLCAwLCAwLCAwLjE4KSwgMCA0cHggMTVweCAwIHJnYmEoMCwgMCwgMCwgMC4xNSk7XG59XG5cbkBtaXhpbiB6LWRlcHRoLTJ7XG4gIGJveC1zaGFkb3c6IDAgOHB4IDE3cHggMCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgNnB4IDIwcHggMCByZ2JhKDAsIDAsIDAsIDAuMTkpO1xufVxuXG5AbWl4aW4gei1kZXB0aC0ze1xuICBib3gtc2hhZG93OiAwIDEycHggMTVweCAwIHJnYmEoMCwgMCwgMCwgMC4yNCksIDAgMTdweCA1MHB4IDAgcmdiYSgwLCAwLCAwLCAwLjE5KTtcbn1cblxuQG1peGluIHotZGVwdGgtNHtcbiAgYm94LXNoYWRvdzogMCAxNnB4IDI4cHggMCByZ2JhKDAsIDAsIDAsIDAuMjIpLCAwIDI1cHggNTVweCAwIHJnYmEoMCwgMCwgMCwgMC4yMSk7XG59XG5cbkBtaXhpbiB6LWRlcHRoLTV7XG4gIGJveC1zaGFkb3c6IDAgMjdweCAyNHB4IDAgcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDQwcHggNzdweCAwIHJnYmEoMCwgMCwgMCwgMC4yMik7XG59XG5cbkBtaXhpbiBzaGFkb3ctaG92ZXJhYmxle1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IC4yNXM7XG4gIGJveC1zaGFkb3c6IDAgOHB4IDE3cHggMCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgNnB4IDIwcHggMCByZ2JhKDAsIDAsIDAsIDAuMTkpO1xufVxuIiwiQG1peGluIGJ0bntcbiAgYm9yZGVyOiBub25lO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2U7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAvLyBmb250LXNpemU6IG1zKC0xKTtcbiAgLy8gZm9udC13ZWlnaHQ6ICRtZWRpdW07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IG1zKC0zKSBtcygxKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBib3JkZXItcmFkaXVzOiA1MHB4O1xuICAvLyBAaW5jbHVkZSBib3JkZXItcmFkaXVzKDUwcHgpO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIC4zcyBlYXNlLW91dCwgYm9yZGVyLWNvbG9yIC4zcyBlYXNlLW91dDtcbiAgbWFyZ2luLXJpZ2h0OiBtcygpO1xuICBAaW5jbHVkZSByZXNldC10YXA7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hcnJvdy1zY3JlZW4pIHtcbiAgICBwYWRkaW5nOiBtcygtMSkgbXMoMik7XG4gICAgZm9udC1zaXplOiBtcygxKTtcbiAgfVxufVxuXG4vLyAgYnV0dG9uIGVmZmVjdFxuLy8gQG1peGluIGJ0bi1lZmZlY3R7XG4vLyAgICYgPiAqIHtcbi8vICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4vLyAgIH1cblxuLy8gICAmOmJlZm9yZSB7XG4vLyAgICAgY29udGVudDogXCJcIjtcbi8vICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4vLyAgICAgdG9wOiA1MCU7XG4vLyAgICAgbGVmdDogNTAlO1xuLy8gICAgIGRpc3BsYXk6IGJsb2NrO1xuLy8gICAgIHdpZHRoOiAwO1xuLy8gICAgIHBhZGRpbmctdG9wOiAwO1xuLy8gICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMzYsIDI0MCwgMjQxLCAuMyk7XG4vLyAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4vLyAgIH1cblxuLy8gICAmOmFjdGl2ZTpiZWZvcmUge1xuLy8gICAgIHdpZHRoOiAxMjAlO1xuLy8gICAgIHBhZGRpbmctdG9wOiAxMjAlO1xuLy8gICAgIHRyYW5zaXRpb246IHdpZHRoIC4ycyBlYXNlLW91dCwgcGFkZGluZy10b3AgLjJzIGVhc2Utb3V0O1xuLy8gICB9XG4vLyB9XG5cblxuLy8gcHJpbWFyeSBidXR0b24gc3R5bGVzLCBlZy4gc3VibWl0IGJ1dHRvbnNcbkBtaXhpbiBidG4tcHJpbWFyeXtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGVjaGlkbmEtcmVkO1xuICBjb2xvcjogd2hpdGU7XG4gIC8vIEBpbmNsdWRlIGJ0bi1lZmZlY3Q7XG4gICY6aG92ZXIsJjpmb2N1c3tcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzaGFkZSgkZWNoaWRuYS1yZWQsIDIwJSk7XG4gICAgLy8gYm9yZGVyOiAxcHggc29saWQgJGxpZ2h0LWdyZXk7XG4gIH1cbn1cblxuXG4vLyBzZWNvbmRhcnkgYnV0dG9uIHN0eWxlcywgZWcuIGNhbmNlbCBvciBwcmV2aWV3IGJ1dHRvbnNcblxuQG1peGluIGJ0bi1zZWNvbmRhcnl7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRkYXJrLWdyZXk7XG4gIC8vIEBpbmNsdWRlIGJ0bi1lZmZlY3Q7XG4gICY6aG92ZXIsJjpmb2N1c3tcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHQtZ3JleTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkbGlnaHQtZ3JleTtcbiAgfVxufVxuXG5cbi8vIGEgZmxhdCBzaW1wbGUgYnV0dG9uIHN0eWxlIHdpdGggbm8gZGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yLlxuLy8gTk9UIGFuIGV4dGVuc2lvbiBvZiAuYnRuXG5AbWl4aW4gYnRuLWZsYXR7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgQGluY2x1ZGUgcmVzZXQtdGFwO1xuICAvLyBAaW5jbHVkZSBidG4tZWZmZWN0O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3MgZWFzZS1vdXQsIGNvbG9yIDAuM3MgZWFzZS1vdXQ7XG4gIHBhZGRpbmc6IG1zKC04KSBtcygtMSk7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIG1hcmdpbi1yaWdodDogbXMoLTEpO1xuICBmb250LXdlaWdodDogJGJvbGQ7XG4gIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hcnJvdy1zY3JlZW4pIHtcbiAgICBmb250LXNpemU6IG1zKC0xKTtcbiAgfVxufVxuIiwiLy8gcmVxdWlyZXMgd2lkdGggb3IgbWF4LXdpZHRoIHRvIGJlIHNldFxuQG1peGluIGNlbnRlci1ibG9jayB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuIiwiLy8gZGl2aWRlciBsaW5lXG5AbWl4aW4gZGl2aWRlci1saW5lKCRib3JkZXItd2lkdGg6IG1zKC01KSwgJGJvcmRlci1zdHlsZTogc29saWQsICRib3JkZXItY29sb3I6ICR1aS1ib3JkZXJzLWNvbG9yLCAkc3BhY2luZy10b3A6IG1zKDQpLCAkc3BhY2luZy1ib3R0b206IG1zKDUpKXtcbiAgYm9yZGVyLWJvdHRvbTogJGJvcmRlci13aWR0aCAkYm9yZGVyLXN0eWxlICRib3JkZXItY29sb3I7XG4gIHBhZGRpbmctYm90dG9tOiAkc3BhY2luZy10b3A7XG4gIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nLWJvdHRvbTtcbiAgLy8gJjpmaXJzdC1jaGlsZHtcbiAgLy8gICBwYWRkaW5nLXRvcDogMDtcbiAgLy8gfVxuICAvLyAmOmxhc3QtY2hpbGR7XG4gIC8vICAgcGFkZGluZy1ib3R0b206IDA7XG4gIC8vIH1cbn1cbiIsIkBtaXhpbiBoZWFkbGluZS10eXBle1xuICBmb250LXNpemU6IG1zKDIpO1xuICBsaW5lLWhlaWdodDogbXMoMik7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hcnJvdy1zY3JlZW4pIHtcbiAgICBmb250LXNpemU6IG1zKDMpO1xuICB9XG4gIGIsc3Ryb25ne1xuICAgIGZvbnQtd2VpZ2h0OiAkbWVkaXVtO1xuICB9XG59XG4iLCJAbWl4aW4gaGlnaGxpZ2h0LWJveHtcbiAgbWFyZ2luLWJvdHRvbTogbXMoMSk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogbXMoLTIpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBjb2xvcjogd2hpdGU7XG4gIGZvbnQtd2VpZ2h0OiAkbWVkaXVtO1xuICBsaW5lLWhlaWdodDogbXMoMik7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgLy8gQGluY2x1ZGUgei1kZWZhdWx0LXNoYWRvdztcbiAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICBmb250LXNpemU6IG1zKDEpICogMS4yO1xuICB9XG5cbiAgcCxsaXtcbiAgICY6bGFzdC1jaGlsZHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG59IiwiLy8gUmV0aW5hIGJhY2tncm91bmQgaW1hZ2VzXG4vLyBodHRwczovL3NpZ25hbHZub2lzZS5jb20vcG9zdHMvMzI3MS1lYXN5LXJldGluYS1yZWFkeS1pbWFnZXMtdXNpbmctc2Nzc1xuXG4vLyB1c2FnZSBleGFtcGxlXG4vLyBkaXYubG9nbyB7XG4gIC8vIGJhY2tncm91bmQ6IHVybChcImxvZ28ucG5nXCIpIG5vLXJlcGVhdDtcbiAgLy8gQGluY2x1ZGUgaW1hZ2UtMngoXCJsb2dvMngucG5nXCIsIDEwMHB4LCAyNXB4KTtcbi8vIH1cblxuXG5AbWl4aW4gaW1hZ2UtMngoJGltYWdlLCAkd2lkdGgsICRoZWlnaHQpIHtcbiAgQG1lZGlhIChtaW4tLW1vei1kZXZpY2UtcGl4ZWwtcmF0aW86IDEuMyksXG4gICAgICAgICAoLW8tbWluLWRldmljZS1waXhlbC1yYXRpbzogMi42LzIpLFxuICAgICAgICAgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMS4zKSxcbiAgICAgICAgIChtaW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjMpLFxuICAgICAgICAgKG1pbi1yZXNvbHV0aW9uOiAxLjNkcHB4KSB7XG4gICAgLyogb24gcmV0aW5hLCB1c2UgaW1hZ2UgdGhhdCdzIHNjYWxlZCBieSAyICovXG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCRpbWFnZSk7XG4gICAgYmFja2dyb3VuZC1zaXplOiAkd2lkdGggJGhlaWdodDtcbiAgfVxufVxuIiwiLy8gYmFzaWMgc3R5bGVzLCBwYWRkaW5nLiBkZXRlY3QgaWUgdmFyaWFibGUgYW5kIGRvIGZpeGVzIHBsdXMgYm9yZGVyXG5cbkBtaXhpbiBpbWFnZS1zdHlsZXtcbiAgd2lkdGg6ICAoMTAwJS8yLjcpO1xuICBtYXJnaW4tdG9wOiBtcygtNCk7XG4gIG1hcmdpbi1ib3R0b206IG1zKC01KTtcbn1cblxuQG1peGluIGltYWdlLXN0eWxlLWxlZnR7XG4gIGZsb2F0OiAgbGVmdDtcbiAgbWFyZ2luLXJpZ2h0OiBtcygpXG59XG5cbkBtaXhpbiBpbWFnZS1zdHlsZS1yaWdodHtcbiAgZmxvYXQ6ICByaWdodDtcbiAgbWFyZ2luLWxlZnQ6IG1zKClcbn1cblxuQG1peGluIGltYWdlLXN0eWxlLWNlbnRlcntcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xufVxuIiwiQG1peGluIG5hdmlnYXRpb24tbGlzdCB7XG4gICAgbGlzdC1zdHlsZS10eXBlOm5vbmU7XG4gICAgcGFkZGluZzowO1xuICAgIG1hcmdpbjowO1xuICAgIG92ZXJmbG93OmhpZGRlbjtcbiAgICA+IGxpe1xuICAgICAgICBkaXNwbGF5OmJsb2NrO1xuICAgICAgICBmbG9hdDpsZWZ0O1xuICAgICAgICAmOmxhc3QtY2hpbGR7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6MDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBtaXhpbiBuby1kcmFnLWltYWdlIHtcbiAgICB1c2VyLWRyYWc6IG5vbmU7XG4gICAgLy8gLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAvLyAtd2Via2l0LXVzZXItZHJhZzogbm9uZTtcbn1cbiIsIi8vICoqKioqKioqKioqKioqKioqKioqXG4vLyAgTUlYSU5TXG4vLyAqKioqKioqKioqKioqKioqKioqKlxuXG4vLyAqKioqKlxuLy8gIG5vLXN2Z1xuXG4vLyBtb2Rlcm5penIgYWRkcyAubm8tc3ZnIC0gdGhpcyB3aWxsIGJlIHRoZSBmYWxsYmFja1xuQG1peGluIG5vLXN2ZyB7XG4gICAgLm5vLXN2ZyAmIHsgQGNvbnRlbnQgfVxufVxuXG5cbkBtaXhpbiBzdmctYmcoJHdpZHRoLCAkaGVpZ2h0LCAkaW1hZ2UpIHtcblxuICAkcG5nOiAnI3skaW1hZ2V9LnBuZyc7XG4gICRzdmc6ICcjeyRpbWFnZX0uc3ZnJztcblxuICAvLyBjb250YWluZXIgc2l6ZVxuICB3aWR0aDogJHdpZHRoO1xuICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAvLyBvdXRwdXQgdGhlIHN2Z1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmUsIHVybCgkc3ZnKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblxuICAvLyBvdXRwdXQgdGhlIHBuZ1xuICBAaW5jbHVkZSBuby1zdmcgeyBiYWNrZ3JvdW5kLWltYWdlOiBpbWFnZS11cmwoJHBuZyk7fVxufVxuXG5cblxuXG5cbi8vICoqKioqKioqKioqKioqKioqKioqXG4vLyAgVVNBR0Vcbi8vICoqKioqKioqKioqKioqKioqKioqXG5cbi8vIC5sb2dvIHtcbi8vICAgICBAaW5jbHVkZSB0ZXh0LXJlcGxhY2UoMTAwcHgsIDEwMHB4LCAnL2ltZy9sb2dvJyk7XG4vLyB9XG4iLCIvKiBfZWxlbWVudHMuc2NzcyAqL1xuLy8gY29udGFpbnMgYXV0aG9ycyB1bmNsYXNzZWQgSFRNTCBlbGVtZW50IHN0eWxlcyBzdWNoIGFzIGgxLCBoMiwgdGFibGUsIGV0Y1xuXG5odG1se1xuICBmb250LXNpemU6IDkzLjc1JTtcbiAgLy8gZm9udC1zaXplOiA4Ny41JTtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFycm93LXNjcmVlbikge1xuICAgIGZvbnQtc2l6ZTogMTAwJTtcbiAgfVxuICBjb2xvcjogYmxhY2s7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDsgLy9pbnVpdCBjc3NcbiAgbWluLWhlaWdodDogMTAwJTsgLy9pbnVpdCBjc3NcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsgLy9pbnVpdCBjc3NcbiAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOyAvL2ludWl0IGNzc1xufVxuXG5ib2R5e1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRzdGFuZGFyZC1zY3JlZW4pIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGxpZ2h0LWdyZXk7XG4gIH1cbn1cblxuaHRtbCwgYnV0dG9uLCBpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYSB7XG4gIGZvbnQtZmFtaWx5OiAkZm9udC1zZXQtMTtcbn1cblxuaDEsXG5oMixcbmgzLFxuaDQsXG5oNSxcbmg2LFxucCxcbnVsLFxub2wsXG5kbCxcbnByZSxcbnRhYmxlLFxuZmllbGRzZXQsXG5mb3JtXG5kZXRhaWxzLFxuYmxvY2txdW90ZSxcbm9iamVjdCxcbmlmcmFtZSxcbnByZSxcbmFkZHJlc3MsXG5jb2RlLFxuZGwsXG5kdCxcbmRkLFxuZW1iZWQsXG5hdWRpbyxcbnZpZGVve1xuICBmb250LXNpemU6IG1zKCk7XG4gIGxpbmUtaGVpZ2h0OiBtcygyKTtcbiAgbWFyZ2luOiAwIDAgbXMoKSAwO1xufVxuXG5zdHJvbmcsYntcbiAgZm9udC13ZWlnaHQ6ICAkbWVkaXVtO1xufVxuXG5lbXtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG5he1xuICBjb2xvcjogJGVjaGlkbmEtcmVkO1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjNzIGVhc2Utb3V0O1xuICAmOmhvdmVye1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxufVxuXG5we1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgZm9udC1zaXplOiBtcygxKSAqIDEuMjtcbiAgICBtYXJnaW4tYm90dG9tOiBtcygyKTtcbiAgfVxufVxuXG51bC5idWxsZXRzLCBvbC5idWxsZXRze1xuICBmb250LXNpemU6IG1zKCkgKiAxLjEyNTtcbiAgbGl7XG4gICAgbWFyZ2luLWxlZnQ6IG1zKDUpO1xuICAgIGNvbG9yOiB0aW50KGJsYWNrLDM1JSk7XG4gIH1cbn1cblxuLyogU2V0IGNvbnNpc3RlbnQgcXVvdGUgdHlwZXMuICovXG5cbnEge1xuICBxdW90ZXM6IFwiXFwyMDFDXCIgXCJcXDIwMURcIiBcIlxcMjAxOFwiIFwiXFwyMDE5XCI7XG59XG5cbmgxLGgyLGgzLGg0LGg1LGg2e1xuICBmb250LXdlaWdodDogICRub3JtYWw7XG4gIGZvbnQtZmFtaWx5OiAgJGZvbnQtc2V0LTE7XG4gIGIsc3Ryb25ne1xuICAgIGZvbnQtd2VpZ2h0OiAkbm9ybWFsO1xuICB9XG59XG5cbmgxe1xuICB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlO1xuICBmb250LXNpemU6IG1zKDQpO1xuICBmb250LXdlaWdodDogICRub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiBtcygxKTtcbiAgbWFyZ2luLXRvcDogbXMoLTIpO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBwYWRkaW5nLWxlZnQ6IG1zKC0yKTtcbiAgcGFkZGluZy1yaWdodDogbXMoLTIpO1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRuYXJyb3ctc2NyZWVuKSB7XG4gICAgZm9udC1zaXplOiBtcyg2KTtcbiAgICBmb250LXdlaWdodDogICRsaWdodDtcbiAgICBsaW5lLWhlaWdodDogbXMoKTtcbiAgICBwYWRkaW5nLWxlZnQ6IG1zKC0xKTtcbiAgICBwYWRkaW5nLXJpZ2h0OiBtcygtMSk7XG4gIH1cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc3RhbmRhcmQtc2NyZWVuKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGRhcmstZ3JleTtcbiAgICBmb250LXdlaWdodDogICRub3JtYWw7XG4gICAgY29sb3I6ICB3aGl0ZTtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIHBhZGRpbmctdG9wOiBtcygpO1xuICAgIHBhZGRpbmctYm90dG9tOiBtcygpO1xuICB9XG59XG5cbmgye1xuICBmb250LXNpemU6IG1zKDMpO1xuICBtYXJnaW4tdG9wOiAwO1xuICBwYWRkaW5nLXRvcDogMDtcbiAgbGluZS1oZWlnaHQ6IG1zKCk7XG4gIGZvbnQtd2VpZ2h0OiAkbGlnaHQ7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHdlaXJkLXNjcmVlbikge1xuICAgIGZvbnQtc2l6ZTogbXMoNSk7XG4gIH1cbiAgYXtcbiAgICBjb2xvcjogJGRhcmstZ3JleTtcbiAgfVxufVxuXG5oM3tcbiAgZm9udC1zaXplOiBtcygzKTtcbiAgY29sb3I6ICRlY2hpZG5hLXJlZDtcbiAgbWFyZ2luLWJvdHRvbTogbXMoLTIpO1xuICBsaW5lLWhlaWdodDogbXMoMSk7XG4gIGZvbnQtd2VpZ2h0OiAkbGlnaHQ7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hcnJvdy1zY3JlZW4pIHtcbiAgICBmb250LXNpemU6IG1zKDIpO1xuICB9XG4gIGF7XG4gICAgY29sb3I6ICRkYXJrLWdyZXk7XG4gIH1cbn1cblxuaDR7XG4gIGZvbnQtc2l6ZTogbXMoKTtcbiAgbWFyZ2luLWJvdHRvbTogbXMoLTIpO1xuICBsaW5lLWhlaWdodDogbXMoMSk7XG4gIGZvbnQtd2VpZ2h0OiAkYm9sZDtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFycm93LXNjcmVlbikge1xuICAgIGZvbnQtc2l6ZTogbXMoMSk7XG4gIH1cbn1cblxuaDV7XG4gIGZvbnQtd2VpZ2h0OiAkYm9sZDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuaDZ7XG4gIGZvbnQtc2l6ZTogbXMoLTEpO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXdlaWdodDogJGJvbGQ7XG59XG5cbnN1cHtcbiAgdmVydGljYWwtYWxpZ246IHN1cGVyO1xuICBmb250LXNpemU6ICBzbWFsbGVyO1xufVxuXG5zdWJ7XG4gIGZvbnQtc2l6ZTogIHNtYWxsZXI7XG4gIHZlcnRpY2FsLWFsaWduOiBzdWI7XG59XG5cbmJsb2NrcXVvdGV7XG4gIHBhZGRpbmc6IDAgbXMoLTEpIDAgbXMoMSk7XG4gIHB7XG4gICAgZm9udC1zaXplOiBtcygxKTtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYXJyb3ctc2NyZWVuKSB7XG4gICAgICBsaW5lLWhlaWdodDogbXMoMSk7XG4gICAgfVxuICAgIGxpbmUtaGVpZ2h0OiBtcygyKTtcbiAgICAmOmxhc3QtY2hpbGR7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIGZpZ3VyZXtcbi8vICAgY2FwdGlvbntcblxuLy8gICB9XG4vLyB9XG5cbmxhYmVse1xuICBtYXJnaW4tYm90dG9tOiBtcygtMik7XG4gIGZvbnQtd2VpZ2h0OiAkYm9sZDtcbn1cblxuaW5wdXQsXG50ZXh0YXJlYXtcbiAgbWFyZ2luOiAwO1xuICAvLyB2ZXJ0aWNhbC1hbGlnbjpib3R0b207XG59XG5cbnRleHRhcmVhe1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuXG5cbnRhYmxle1xuICB3aWR0aDogIDEwMCU7XG4gIHAsdWx7XG4gICAgQGluY2x1ZGUgcmVzZXQ7XG4gIH1cbiAgdGJvZHl7XG4gICAgYm9yZGVyOiBub25lO1xuICB9XG5cbiAgdGgsdGR7XG4gICAgcGFkZGluZzogbXMoMSkgbXMoLTMpO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIGZvbnQtc2l6ZTogbXMoLTEpO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHdlaXJkLXNjcmVlbikgIHtcbiAgICAgIGZvbnQtc2l6ZTogbXMoKTtcbiAgICAgIGxpbmUtaGVpZ2h0OiBtcygxKTtcbiAgICB9XG4gIH1cblxuICAvLyB0cntcblxuICAvLyB9XG5cbiAgdHIub2Rke1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICB9XG5cblxuICB0cjpudGgtY2hpbGQob2RkKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIH1cblxuXG4gIHRyLmV2ZW57XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdGludCgkbGlnaHQtZ3JleSw2MCUpO1xuICB9XG5cbiAgdHI6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aW50KCRsaWdodC1ncmV5LDYwJSk7XG4gIH1cblxuICAvLyB0aHtcbiAgLy8gfVxuXG4gIHRoLFxuICB0aGVhZCB0aHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGxpZ2h0LWdyZXk7XG4gIH1cblxuICBjYXB0aW9ue1xuICAgIGNhcHRpb24tc2lkZTogYm90dG9tO1xuICB9XG59XG5cbi8vIGxpc3RzXG4uY29udGV4dC1tYW5pZmVzdG8gdWwge1xuICBwYWRkaW5nOiAwOyB9XG5cbnVsLG9se1xuICBsaXtcbiAgICBtYXJnaW46IDAgMCBtcygtMykgMDtcbiAgfVxufVxuXG4udG9vbGJhciB1bCBsaS5tZW51LWl0ZW0ge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG51bHtcbiAgLypwYWRkaW5nOiAwOyovXG4gIGxpe1xuICAgIGxpc3Qtc3R5bGU6IGRpc2M7XG4gIH1cbn1cblxub2x7XG4gIHBhZGRpbmctbGVmdDogbXMoMSk7XG4gIGxpe1xuICAgIGxpc3Qtc3R5bGU6IGRlY2ltYWw7XG4gIH1cbn1cblxuaW1ne1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZS1vdXQ7XG59XG5cbmEgaW1ne1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbmEgaW1nOmhvdmVye1xuICBvcGFjaXR5OiAuNzU7XG59XG5cbi8vIGZyb20ga2lja3N0YXJ0XG5pbWcsIHZpZGVvIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cblxuLy9jb25uZWN0IHBhZ2VcbiAjYmxvY2stZGUtdGhlbWUtcGFnZWxpbmsge1xuICAgIGE6aG92ZXIge1xuICAgICAgY29sb3I6ICMwMDAgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbiIsIi8qIF9kcnVwYWwuc2NzcyAqL1xuLy8gX2RydXBhbC5zY3NzIGNvbnRhaW5zIGVjaGlkbmFzIGRlZmF1bHQgZHJ1cGFsIHN0eWxlIG92ZXJyaWRlcyBhbmRcbi8vIGJhc2VsaW5lIHN0eWxlcyBmb3IgZGVmYXVsdCBDT1JFIGRydXBhbCBmdW5jdGlvbmxhaXR5IGVnLiB3ZWJmb3JtIG92ZXJyaWRlcyxcbi8vIGJhc2ljIHNlYXJjaCByZXN1bHQgc3R5bGVzLlxuLy9cbi8vXG4vLyBQcm9qZWN0IHNwZWNpZmljIHN0eWxlcyBzaG91bGQgYmUgY3JlYXRlZCBpbiBhIG5ldyBmaWxlIHdpdGggdGhlIHNhbWVcbi8vIGZpbGUgbmFtZSBpbiB0aGUgb2JqZWN0cyBmb2xkZXIgKGVnLiAvb2JqZWN0cy9fZm9ybXMuc2NzcykuXG4vL1xuLy8gSWYgeW91IGFyZSBvdmVycmlkaW5nIGEgY29udHJpYnV0ZWQgbW9kdWxlIHN0eWxlcywgcGxlYXNlIGNyZWF0ZSBhXG4vLyBjb21wb25lbnQgc2NzcyBwYXJ0aWFsIGFuZCBzdGFydCB3aXRoIHlvdXIgb3ZlcnJpZGVzL3N0eWxlcyAoZWcuIC9jb21wb25lbnRzL2ZsYWdzL19mbGFncy5zY3NzKVxuLy9cbi8vIFRoZSBTQVNTIHBhcnRpYWwgbmFtaW5nIGNvbnZlbnRpb24gc2hvdWxkIGJlIHRoZSBzYW1lIGFzIHRoZSBDU1Ncbi8vIHN0eWxlc2hlZXQgZmlsZW5hbWUgdXNlZCBieSBEcnVwYWwgaWYgcG9zc2libGVcbi8vIChlZy4gY29tbWVudHMuY3NzIC0+IF9jb21tZW50cy5zY3NzKVxuXG4vLyBAaW1wb3J0IFwiZHJ1cGFsL2NvbW1lbnRzXCI7XG4vLyBAaW1wb3J0IFwiZHJ1cGFsL2RhdGVcIjtcbi8vIEBpbXBvcnQgXCJkcnVwYWwvZmlsZVwiO1xuQGltcG9ydCBcImRydXBhbC9mb3Jtc1wiO1xuQGltcG9ydCBcImRydXBhbC9tZXNzYWdlc1wiO1xuLy8gQGltcG9ydCBcImRydXBhbC9zZWFyY2hcIjtcbkBpbXBvcnQgXCJkcnVwYWwvc3lzdGVtLXRoZW1lXCI7XG5AaW1wb3J0IFwiZHJ1cGFsL3RhYnNcIjtcbi8vIEBpbXBvcnQgXCJkcnVwYWwvdXNlclwiO1xuIiwiLyogZHJ1cGFsL19mb3Jtcy5zY3NzICovXG4vLyByZXNldCBzb21lIGRlZmF1bHQgZHJ1cGFsIHN0eWxpbmdcblxuLmZvcm0tcmVxdWlyZWQsXG4ubWFya2Vye1xuICAvL2NvbG9yOiAjQzIwMDJGO1xufVxuXG5cbiNibG9jay13ZWJmb3JtLTIge21hcmdpbi1ib3R0b206IDIwcHg7fVxuXG4jYmxvY2std2ViZm9ybS0yIGxhYmVsIHtmb250LXdlaWdodDogbm9ybWFsO31cbi5mb3JtLWFjdGlvbnMgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNDMjAwMkY7XG4gIGJvcmRlcjogMHB4O1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgcGFkZGluZzogMTJweDtcbiAgbWFyZ2luLWJvdHRvbTogMTJweDtcbn1cblxuLndlYmZvcm0tZmxleC0tY29udGFpbmVyID4gLmZvcm0taXRlbSA+IGlucHV0LCAud2ViZm9ybS1mbGV4LS1jb250YWluZXIgPiAuZm9ybS1pdGVtID4gc2VsZWN0IHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDAuNWVtO1xufSIsIi8qIGRydXBhbC9fbWVzc2FnZXMuc2NzcyAqL1xuLy8gcmVzZXQgc29tZSBkZWZhdWx0IGRydXBhbCBzdHlsaW5nXG5cbmRpdi5tZXNzYWdlc3tcbiAgQGluY2x1ZGUgcmVzZXQ7XG4gIG1hcmdpbi1ib3R0b206IG1zKCk7XG4gIHBhZGRpbmc6IG1zKC0yKSBtcygtMikgbXMoLTIpIG1zKDUpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGluZS1oZWlnaHQ6IG1zKDMpO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hcnJvdy1zY3JlZW4pIHtcbiAgICBmb250LXNpemU6IG1zKCk7XG4gICAgbGluZS1oZWlnaHQ6IG1zKDIpO1xuICB9XG5cbiAgJjpiZWZvcmV7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiBtcygtMyk7XG4gICAgdG9wOiBtcygtNCk7XG4gIH1cbn1cblxuZGl2LnN0YXR1c3tcbiAgYmFja2dyb3VuZC1jb2xvcjogI0RDRURDODtcbiAgY29sb3I6ICMzMzY5MUU7XG4gICY6OmJlZm9yZXtcbiAgICBAaW5jbHVkZSBtYXRlcmlhbC1pY29ucztcbiAgICBjb250ZW50OiBcImNoZWNrX2NpcmNsZVwiO1xuICAgIGNvbG9yOiAjMzM2OTFFO1xuICB9XG59XG5cbmRpdi53YXJuaW5ne1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGOUM0O1xuICBjb2xvcjogIzgyNzcxNztcbiAgJjo6YmVmb3Jle1xuICAgIEBpbmNsdWRlIG1hdGVyaWFsLWljb25zO1xuICAgIGNvbnRlbnQ6IFwid2FybmluZ1wiO1xuICAgIGNvbG9yOiAjODI3NzE3O1xuICB9XG59XG5cbmRpdi5lcnJvcntcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZDRTRFQztcbiAgY29sb3I6ICNCNzFDMUM7XG4gICY6OmJlZm9yZXtcbiAgICBAaW5jbHVkZSBtYXRlcmlhbC1pY29ucztcbiAgICBjb250ZW50OiBcImVycm9yXCI7XG4gICAgY29sb3I6ICNCNzFDMUM7XG4gIH1cbn1cbiIsIi8qIGRydXBhbC9fc3lzdGVtLXRoZW1lLnNjc3MgKi9cbi8vIHJlc2V0IHNvbWUgZGVmYXVsdCBkcnVwYWwgc3R5bGluZ1xuXG5cbi5pdGVtLWxpc3QgdWx7XG4gIEBpbmNsdWRlIHJlc2V0O1xuICBsaXtcbiAgICBAaW5jbHVkZSByZXNldDtcbiAgICBAaW5jbHVkZSBuby1idWxsZXQ7XG4gIH1cbn1cblxuLmxpbmtzLmlubGluZXtcbiAgQGluY2x1ZGUgcmVzZXQ7XG4gIEBpbmNsdWRlIG5vLWJ1bGxldDtcbn1cblxuLmZvcm0taXRlbSxcbi5mb3JtLWFjdGlvbnN7XG4gIG1hcmdpbjogMDtcbn1cblxuLmZvcm0taXRlbXtcbiAgbWFyZ2luLWJvdHRvbTogbXMoKTtcbn1cblxuLmZvcm0taXRlbSAuZGVzY3JpcHRpb24ge1xuICBAaW5jbHVkZSByZXNldC1mb250O1xuICBtYXJnaW4tdG9wOiBtcygtNCk7XG4gIGZvbnQtc2l6ZTogbXMoLTEpO1xufVxuXG4uZm9ybS1jaGVja2JveGVzIC5mb3JtLWl0ZW0sXG4uZm9ybS1yYWRpb3MgLmZvcm0taXRlbSB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5mb3JtLXR5cGUtcmFkaW8gLmRlc2NyaXB0aW9uLFxuLmZvcm0tdHlwZS1jaGVja2JveCAuZGVzY3JpcHRpb24ge1xuICBtYXJnaW4tbGVmdDogbXMoMik7XG59XG4iLCIvKiBkcnVwYWwvX3RhYnMuc2NzcyAqL1xuLy8gcmVzZXQgc29tZSBkZWZhdWx0IGRydXBhbCBzdHlsaW5nXG5cbnVsLnRhYnN7XG4gIEBpbmNsdWRlIG5hdmlnYXRpb24tbGlzdDtcbiAgbWFyZ2luLWJvdHRvbTogbXMoMSk7XG4gIG1hcmdpbi10b3A6IG1zKDEpO1xuICBib3JkZXItYm90dG9tOiA1cHggc29saWQgYmxhY2s7XG4gIGxpe1xuICAgIEBpbmNsdWRlIHJlc2V0O1xuICB9XG4gIGF7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogZ3JheTtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3MgZWFzZS1vdXQ7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgZm9udC13ZWlnaHQ6ICRib2xkO1xuICAgIGZvbnQtc2l6ZTogbXMoLTEpO1xuICAgIHBhZGRpbmctdG9wOiBtcygtNik7XG4gICAgcGFkZGluZy1sZWZ0OiBtcygtMik7XG4gICAgcGFkZGluZy1yaWdodDogbXMoLTIpO1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IG1zKC02KTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgJi5hY3RpdmV7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbiAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICB9XG4gICAgJjpob3ZlcntcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XG4gICAgICBjb2xvcjogYmxhY2s7XG4gICAgfVxuICAgICY6YWN0aXZle1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgfVxuICB9XG4gIGxpOmxhc3QtY2hpbGQgYXtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gIH1cbn1cbiIsIi8qIF9sYXlvdXQuc2NzcyAqL1xuLy8gY29udGFpbnMgdGhlIGRlc2lnbiBzdHJ1Y3R1cmUgc3R5bGVzLCBpbmNsdWRpbmdcbi8vIHJlc3BvbnNpdmUgZGVzaWduIGltcGxlbWVudGF0aW9uXG5cbmJvZHkudG9vbGJhci10cmF5LW9wZW4udG9vbGJhci12ZXJ0aWNhbC50b29sYmFyLWZpeGVke1xuICBtYXJnaW4tbGVmdDogMDtcbn1cblxuLmxheW91dC1jb250YWluZXJ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLy8gbWF4LXdpZHRoOiAgOTgwcHg7XG4gIC8vIC8qbWFyZ2luOiAgMCBhdXRvOyovXG4gIC8vIC8qcGFkZGluZzogIDAgbXMoMik7Ki9cbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgbWF4LXdpZHRoOiAgJHN0YW5kYXJkLXNjcmVlbjtcbiAgICBtYXJnaW4tbGVmdDogIDI0MHB4O1xuICB9XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHdpZGUtc2NyZWVuKSAge1xuICAgIG1hcmdpbi1sZWZ0OiAgMjAlO1xuICB9XG59XG5cbi5wYXRoLWZyb250cGFnZXtcbiAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG4gIC5sYXlvdXQtY29udGFpbmVye1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgLy8gYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG4gIH1cbn1cblxuLmxheW91dFNsaWRlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiA1MCU7XG4gIHRvcDogMDtcbiAgd2lkdGg6IDEwMCU7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWVkaXVtLXNjcmVlbikge1xuICAgIHBvc2l0aW9uOiBpbml0aWFsO1xuICB9XG59XG5cbi8qICBAbWFpbiBsYXlvdXQgcmVnaW9uc1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuQGltcG9ydCAnbGF5b3V0L2hlYWRlcic7XG5AaW1wb3J0ICdsYXlvdXQvY29udGVudCc7XG5AaW1wb3J0ICdsYXlvdXQvZm9vdGVyJztcbkBpbXBvcnQgJ2xheW91dC9sYXlvdXQtYnVpbGRlcic7XG4iLCIvKiBsYXlvdXQvX2hlYWRlci5zY3NzICovXG5cbi8qIEBoZWFkZXIgc2VjdGlvbiAqL1xuXG4vLyAjaGVhZGVye1xuXG4vLyB9XG4jaGVhZGVye1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZWNoaWRuYS1yZWQ7XG4gIC1tcy1vdmVyZmxvdy1zdHlsZTogbm9uZTtcbiAgLXdlYmtpdC1vdmVyZmxvdy1zdHlsZTogbm9uZTtcbiAgb3ZlcmZsb3ctc3R5bGU6IG5vbmU7XG4gIC1tb3otb3ZlcmZsb3ctc3R5bGU6IG5vbmU7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICB6LWluZGV4OiA1O1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogIDA7XG4gICAgYm90dG9tOiAwO1xuICAgIHdpZHRoOiAgMjQwcHg7XG4gICAgICBvdmVyZmxvdzogYXV0bztcbiAgfVxuICBAaW5jbHVkZSBicmVha3BvaW50KCR3aWRlLXNjcmVlbikge1xuICAgIHdpZHRoOiAgMjAlO1xuICB9XG59XG46Oi13ZWJraXQtc2Nyb2xsYmFye1xuICBkaXNwbGF5OiBub25lO1xufVxuLnVzZXItbG9nZ2VkLWluICNoZWFkZXJ7XG4gIHBhZGRpbmctdG9wOiA0MHB4O1xufVxuLnVzZXItbG9nZ2VkLWluLnRvb2xiYXItdHJheS1vcGVuICNoZWFkZXJ7XG4gIHBhZGRpbmctdG9wOiA4N3B4O1xufVxuLy8gLnNlY3Rpb24taGVhZGVye1xuLy8gICBAaW5jbHVkZSBicmVha3BvaW50KCRtZWRpdW0tc2NyZWVuKSB7XG4vLyAgICAgcG9zaXRpb246IGZpeGVkO1xuLy8gICAgIHRvcDogMDtcbi8vICAgICBsZWZ0OiAwO1xuLy8gICAgIHdpZHRoOiAyNDBweDtcbi8vICAgfVxuLy8gICBAaW5jbHVkZSBicmVha3BvaW50KCR3aWRlLXNjcmVlbikge1xuLy8gICAgIHdpZHRoOiAyMCU7XG4vLyAgIH1cbi8vIH1cblxuI21hc3RoZWFke1xuICAubGF5b3V0LWNvbnRhaW5lcntcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYXJyb3ctc2NyZWVuKSB7XG4gICAgICBwYWRkaW5nOiBtcygtMSkgbXMoKTtcbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkd2VpcmQtc2NyZWVuKSB7XG4gICAgICBwYWRkaW5nOiBtcygxKSBtcygpO1xuICAgIH1cbiAgICAucmVnaW9ue1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFycm93LXNjcmVlbikge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtNHB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5yZWdpb24tLW1hc3RoZWFkLXByaW1hcnl7XG4gICAgLy8gQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFycm93LXNjcmVlbikge1xuICAgIC8vICAgd2lkdGg6IDIzLjQwNDI2JTtcbiAgICAvLyB9XG4gICAgLy8gQGluY2x1ZGUgYnJlYWtwb2ludCgkd2VpcmQtc2NyZWVuKSB7XG4gICAgLy8gICB3aWR0aDogMzEuOTE0ODklO1xuICAgIC8vIH1cbiAgICAucmVnaW9uLWlubmVye1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgcGFkZGluZy1sZWZ0OiBtcygxKTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IG1zKDEpO1xuICAgICAgcGFkZGluZy1ib3R0b206IG1zKC0xKTtcbiAgICAgIHBhZGRpbmctdG9wOiBtcygtMSk7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYXJyb3ctc2NyZWVuICRtZWRpdW0tc2NyZWVuKSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogJHhsYXJnZTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogJHhsYXJnZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAucmVnaW9uLS1tYXN0aGVhZC1zZWNvbmRhcnl7XG4gICAgLnJlZ2lvbi1pbm5lcntcbiAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIH1cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYXJyb3ctc2NyZWVuKSB7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgd2lkdGg6IDc2LjU5NTc0JTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCR3ZWlyZC1zY3JlZW4pIHtcbiAgICAgIHdpZHRoOiA2OC4wODUxMSU7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWVkaXVtLXNjcmVlbikge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cbiAgfVxufVxuXG4ucmVnaW9uLW5hdmlnYXRpb257XG4gIHBhZGRpbmctdG9wOiBtcygtMSk7XG4gIHBhZGRpbmctYm90dG9tOiBtcygtMSk7XG59XG4iLCIvKiBsYXlvdXQvX2NvbnRlbnQuc2NzcyAqL1xuXG4gLyogQGNvbnRlbnQgc2VjdGlvbiAqL1xuXG4vLyAjY29udGVudHtcblxuLy8gfVxuXG4vLyAubm90LWZyb250IC5zZWN0aW9uLWNvbnRlbnQgLmNvbnRhaW5lcntcbi8vICAgcGFkZGluZy1ib3R0b206IG1zKDIpO1xuLy8gfVxuXG4vLyBDb25uZWN0IFBhZ2VcblxuLmNvbnRleHQtY29ubmVjdCAuY29ubmVjdC1kZXRhaWxzIC5sb2NhdGlvbi1kZXRhaWxzIHAge1xuICAgIG1hcmdpbi10b3A6IDFlbTtcbiAgICAmOmZpcnN0LWNoaWxke1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG4gIH1cblxuLnNlY3Rpb24tY29udGVudHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIG1hcmdpbjogMCAwIDAgMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgLypwYWRkaW5nOiBtcygpIDA7Ki9cbn1cblxuI21haW57XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuXG4ucGF0aC1mcm9udHBhZ2UgLnJlZ2lvbiB7XG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbn1cblxuLm5vLXNpZGViYXJzICNtYWlue1xuICBib3JkZXI6IDFweCBzb2xpZCAkbGlnaHQtZ3JleTtcbn1cblxuI3NpZGViYXItZmlyc3R7XG4gIG1hcmdpbi1ib3R0b206IG1zKCk7XG59XG5cblxuI3NpZGViYXItc2Vjb25ke1xuXG59XG5cbi8vIEBsYXlvdXQgd2l0aCBtYWluIGNvbHVtbiBhbmQgZmlyc3Qgc2lkZWJhclxuLm9uZS1zaWRlYmFyLnNpZGViYXItZmlyc3R7XG4gICNzaWRlYmFyLWZpcnN0e1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtc3Bhbig0KTtcbiAgICB9XG4gIH1cbiAgI21haW57XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWVkaXVtLXNjcmVlbikge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1zcGFuKDgsNSk7XG4gICAgfVxuICB9XG59XG5cblxuLy8gQGxheW91dCB3aXRoIG1haW4gY29sdW1uIGFuZCBzZWNvbmQgc2lkZWJhclxuXG4ub25lLXNpZGViYXIuc2lkZWJhci1zZWNvbmR7XG4gICNzaWRlYmFyLXNlY29uZHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgICBAaW5jbHVkZSBncmlkLXNwYW4oNCw5KTtcbiAgICB9XG4gIH1cblxuICAjbWFpbntcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgICBAaW5jbHVkZSBncmlkLXNwYW4oOCk7XG4gICAgfVxuICB9XG59XG5cblxuLy8gQGxheW91dCB3aXRoIG1haW4gY29sdW1uIGFuZCB0d28gc2lkZWJhcnNcblxuLnR3by1zaWRlYmFyc3tcblxuICAjc2lkZWJhci1maXJzdHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgICBAaW5jbHVkZSBncmlkLXNwYW4oNCk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc3RhbmRhcmQtc2NyZWVuKSB7XG4gICAgICBAaW5jbHVkZSBncmlkLXNwYW4oMyk7XG4gICAgfVxuICB9XG4gICNtYWlue1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtc3Bhbig4LDUpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHN0YW5kYXJkLXNjcmVlbikge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1zcGFuKDYsNCk7XG4gICAgfVxuICB9XG5cbiAgI3NpZGViYXItc2Vjb25ke1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzdGFuZGFyZC1zY3JlZW4pIHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtc3BhbigzLDEwKVxuICAgIH1cbiAgfVxufVxuXG5cblxuLyogIEByZWdpb24gbWFpbiBwcmVmaXggKi9cblxuLnJlZ2lvbi1tYWluLXByZWZpeHtcbiAgcGFkZGluZzogbXMoLTQpIDA7XG59XG5cbi8qICBAcmVnaW9uIG1haW4gc3VmZml4ICovXG5cbi5yZWdpb24tbWFpbi1zdWZmaXh7XG4gIG1hcmdpbi1ib3R0b206IG1zKCk7XG59XG5cblxuXG4vL0hvbWUgUGFnZVxuLnBhdGgtZnJvbnRwYWdlIHtcblxuICAucmVnaW9uLS1jb250ZW50IHtcbiAgICBiYWNrZ3JvdW5kOiAjMDAwO1xuICAgIGNvbG9yOiAjZmZmO1xuICB9XG5cbiAgLm5vZGVfX3N1Ym1pdHRlZCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC55b3V0dWJlLWNvbnRhaW5lciB7XG4gICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJhY2tncm91bmQ6ICMwMDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHotaW5kZXg6IC0xO1xuICAgIC8vb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgIGlmcmFtZSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50ICgkc3RhbmRhcmQtc2NyZWVuKSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEyODFweDtcbiAgICAgICAgd2lkdGg6IDIyNzZweDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IC0xNTZweDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAjaG9tZXdyYXAgeyAvL3N0b3BzIHlvdSBmcm9tIGJlaW5nIGFibGUgdG8gY2xpY2sgdGhlIHZpZGVvXG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICB3aWR0aDogODB2dzsgLy8xMDB2dyBjcmVhdGVzIHNpZGUgc2Nyb2xsaW5nIHNpbmNlIG1lbnUgaXMgMjAlIHdpZHRoXG4gICAgaGVpZ2h0OiAxMDB2aDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuXG4gIC8vIC5tYW5pZmVzdG8tdmlkZW8geyAvL21vYmlsZSB2aWRlb1xuICAvLyAgIHdpZHRoOiA4MHZ3O1xuICAvLyAgIGhlaWdodDogNTB2dztcbiAgLy8gICBtYXJnaW46IDAgYXV0bztcblxuICAvLyAgIGgyIHtcbiAgLy8gICAgIGNvbG9yOiAjZmZmO1xuICAvLyAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAvLyAgICAgZm9udC1zaXplOiBtcyg0KSAqIDAuOTtcbiAgLy8gICAgIHBhZGRpbmctdG9wOiBtcygwKTtcbiAgLy8gICAgIGZvbnQtd2VpZ2h0OiAkbWVkaXVtO1xuICAvLyAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgLy8gICB9XG5cbiAgLy8gICAueW91dHViZS1jb250YWluZXIge1xuICAvLyAgICAgei1pbmRleDogMTtcbiAgLy8gICAgIHdpZHRoOiA4MHZ3O1xuICAvLyAgICAgaGVpZ2h0OiA1MHZ3O1xuXG4gIC8vICAgICBpZnJhbWUge1xuICAvLyAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgLy8gICAgICAgbWFyZ2luOiAwIGF1dG87XG4gIC8vICAgICAgIHdpZHRoOiAxMDAlO1xuICAvLyAgICAgICBoZWlnaHQ6IDEwMCU7XG4gIC8vICAgICB9XG4gIC8vICAgfVxuXG4gIC8vICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWVkaXVtLXNjcmVlbikge1xuICAvLyAgICAgICB3aWR0aDogNjB2dztcbiAgLy8gICAgICAgaGVpZ2h0OiAzNXZ3O1xuICAvLyAgICAgICBtYXgtd2lkdGg6IDY2M3B4O1xuICAvLyAgICAgICBtYXgtaGVpZ2h0OiA0MDBweDtcblxuICAvLyAgICAgICBoMiB7XG4gIC8vICAgICAgICAgbWFyZ2luLWJvdHRvbTogbXMoLTMpO1xuICAvLyAgICAgICB9XG5cbiAgLy8gICAgICAgLnlvdXR1YmUtY29udGFpbmVyIHtcbiAgLy8gICAgICAgICBtYXgtd2lkdGg6IDY2M3B4O1xuICAvLyAgICAgICAgIG1heC1oZWlnaHQ6IDQ0MHB4O1xuICAvLyAgICAgICAgIHdpZHRoOiA2MHZ3O1xuICAvLyAgICAgICAgIGhlaWdodDogMzV2dztcbiAgLy8gICAgICAgfVxuICAvLyAgICAgfVxuXG4gIC8vICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc3RhbmRhcmQtc2NyZWVuKSB7XG4gIC8vICAgICB3aWR0aDogMDtcbiAgLy8gICAgIGhlaWdodDogMDtcblxuICAvLyAgICAgaDIsIC55b3V0dWJlLWNvbnRhaW5lciB7XG4gIC8vICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gIC8vICAgICB9XG4gIC8vICAgfVxuICAvLyB9XG59XG5cblxuLnZpc3VhbGx5LWhpZGRlbi5za2lwLWxpbmt7XG4gIGNvbG9yOiAjNzU3NTc1O1xufVxuXG4vKipcbiAqIEhpZGUgdmlzdWFsbHkgYW5kIGZyb20gc2NyZWVuIHJlYWRlcnMsIG5vc2NyaXB0IGZvciBHb29nbGUgVGFnLlxuICovXG5cbmJvZHkgbm9zY3JpcHQge1xuICBjb2xvcjogIzc1NzU3NTtcbn1cblxuLy9hbGwgcGFnZSB0aXRsZXNcbi8vICNibG9jay1kZS10aGVtZS1wYWdlLXRpdGxlIHtcbi8vICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc3RhbmRhcmQtc2NyZWVuKSB7XG4vLyAgICAgYmFja2dyb3VuZDogIzAwMDtcbi8vICAgfVxuXG4gIC8vIC5wYWdlLXRpdGxlIHtcbiAgLy8gICBiYWNrZ3JvdW5kLWNvbG9yOiBub25lO1xuICAvLyAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIC8vICAgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTtcbiAgLy8gICBwYWRkaW5nOiBtcygtMykgbXMoLTMpO1xuXG4gIC8vICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFycm93LXNjcmVlbikge1xuICAvLyAgICAgcGFkZGluZzogbXMoLTMpIG1zKC0xKTtcbiAgLy8gICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAvLyAgIH1cblxuICAvLyAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHN0YW5kYXJkLXNjcmVlbikge1xuICAvLyAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgLy8gICAgIHBhZGRpbmc6IG1zKDApIG1zKC0xKTtcbiAgLy8gICB9XG4gIC8vIH1cbi8vIH1cblxuXG5cbi8vIC8vTWFuaWZlc3RvIFBhZ2Vcbi8vIC5tYW5pZmVzdG8tcGFnZSB7XG5cbi8vICAgLnBhZ2UtdGl0bGUge1xuLy8gICAgIHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50O1xuXG4vLyAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzdGFuZGFyZC1zY3JlZW4pIHtcbi8vICAgICAgICAgYmFja2dyb3VuZDogdXJsKC9zaXRlcy9kZWZhdWx0L2ZpbGVzLzIwMTYtMDMvaGVhZGVyLW1hbmlmZXN0by5qcGcpIG5vLXJlcGVhdCB0b3AgbGVmdDtcbi8vICAgICAgICAgYmFja2dyb3VuZC1zaXplOiAxMTI1cHggMjI5cHg7XG4vLyAgICAgICAgIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDtcbi8vICAgICAgIH1cbi8vICAgICB9XG5cbi8vICAgICAubWFuaWZlc3RvLXZpZGVvIHtcbi8vICAgICAgIHdpZHRoOiA4MHZ3O1xuLy8gICAgICAgaGVpZ2h0OiA1MHZ3O1xuXG4vLyAgICAgICBtYXJnaW46IDAgYXV0bztcblxuLy8gICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFycm93LXNjcmVlbikge1xuLy8gICAgICAgICB3aWR0aDogMTAwJTtcbi8vICAgICAgICAgbWF4LXdpZHRoOiA2NjNweDtcbi8vICAgICAgICAgbWF4LWhlaWdodDogNDAwcHg7XG5cbi8vICAgICAgIH1cblxuLy8gICAgICAgaDIge1xuLy8gICAgICAgICBkaXNwbGF5OiBub25lO1xuLy8gICAgICAgfVxuXG4vLyAgICAgICBpZnJhbWUge1xuLy8gICAgICAgICBtYXJnaW46IDAgYXV0bztcbi8vICAgICAgICAgd2lkdGg6IDEwMCU7XG4vLyAgICAgICAgIGhlaWdodDogMTAwJTtcbi8vICAgICAgIH1cblxuLy8gICAgICAgLmZpZWxkLS1uYW1lLWZpZWxkLXlvdXR1YmUtbGluaywgLnlvdXR1YmUtY29udGFpbmVyIHtcbi8vICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuLy8gICAgICAgICBtYXJnaW46IDA7XG5cbi8vICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc3RhbmRhcmQtc2NyZWVuKSB7XG4vLyAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuLy8gICAgICAgICB9XG4vLyAgICAgICB9XG4vLyAgICAgfVxuXG4vLyAgICAgLy9QaGlsb3NvcGh5IG9mIEVzc2VudGlhbFxuXG4vLyAgICAgI2Jsb2NrLW1hbmlmZXN0b2Vzc2VudGlhbCB7XG4vLyAgICAgICBAZXh0ZW5kIC5lY2hpZG5hLXNlcnZpY2VzLXJvdy10b3A7XG5cbi8vICAgICAgIHAge1xuLy8gICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4vLyAgICAgICAgIGZvbnQtc2l6ZTogbXMoMSk7XG5cbi8vICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFycm93LXNjcmVlbikge1xuLy8gICAgICAgICAgIGZvbnQtc2l6ZTogbXMoKTtcbi8vICAgICAgICAgfVxuXG4vLyAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHdlaXJkLXNjcmVlbikge1xuLy8gICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4vLyAgICAgICAgIH1cblxuLy8gICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRtZWRpdW0tc2NyZWVuKSB7XG4vLyAgICAgICAgICAgZm9udC1zaXplOiBtcygxKSAqIDEuMjtcbi8vICAgICAgICAgICBsaW5lLWhlaWdodDogbXMoMik7XG4vLyAgICAgICAgIH1cblxuLy8gICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbi8vICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuLy8gICAgICAgICB9XG4vLyAgICAgICB9XG4vLyAgICAgfVxuXG4vLyAgICAgLmVzc2VudGlhbHMtcm93IC52aWV3cy1jb2wge1xuLy8gICAgICAgd2lkdGg6IDEwMCU7XG5cbi8vICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNtYWxsLXNjcmVlbikge1xuLy8gICAgICAgICB3aWR0aDogNTAlO1xuLy8gICAgICAgICBmbG9hdDogbGVmdDtcbi8vICAgICAgIH1cblxuLy8gICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkd2VpcmQtc2NyZWVuKSB7XG4vLyAgICAgICAgIHdpZHRoOiAyNSU7XG4vLyAgICAgICAgIHBhZGRpbmc6IDEuNSU7XG4vLyAgICAgICB9XG4vLyAgICAgfVxuXG4vLyAgICAgI2Jsb2NrLXZpZXdzLWJsb2NrLW1hbmlmZXN0by1iZWxpZXZlLWJsb2NrLTEge1xuLy8gICAgICAgaDIge1xuLy8gICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbi8vICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc21hbGwtc2NyZWVuKSB7XG4vLyAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbi8vICAgICAgICAgfVxuLy8gICAgICAgfVxuLy8gICAgIH1cblxuLy8gICAgIC8vV2hhdCBXZSBCZWxpZXZlIEluXG5cbi8vICAgICAuYmVsaWV2ZS1yb3cge1xuLy8gICAgICAgICBtYXJnaW4tYm90dG9tOiBtcyg0KTtcbi8vICAgICAgICAgbWFyZ2luLXRvcDogbXMoMik7XG5cbi8vICAgICAgICAgLnZpZXdzLWZpZWxkLWZpZWxkLWltYWdlIHtcbi8vICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuLy8gICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuLy8gICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuLy8gICAgICAgICB9XG5cbi8vICAgICAgICAgLnZpZXdzLWZpZWxkLXRpdGxlIHtcbi8vICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbi8vICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4vLyAgICAgICAgICAgZm9udC1zaXplOiBtcygzKTtcbi8vICAgICAgICAgICBjb2xvcjogJGVjaGlkbmEtcmVkO1xuLy8gICAgICAgICAgIG1hcmdpbjogMiU7XG4vLyAgICAgICAgICAgZm9udC13ZWlnaHQ6IDIwMDtcbi8vICAgICAgICAgfVxuXG4vLyAgICAgICAgIC52aWV3cy1maWVsZC1ib2R5IHAge1xuLy8gICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuLy8gICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbi8vICAgICAgICAgICBmb250LXNpemU6IG1zKDEpIC8gMS4xO1xuLy8gICAgICAgICAgIGxpbmUtaGVpZ2h0OiBtcygxKSAqIDEuMjtcbi8vICAgICAgICAgICBjb2xvcjogJGRhcmstZ3JleTtcbi8vICAgICAgICAgfVxuXG4vLyAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNtYWxsLXNjcmVlbikge1xuLy8gICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1zKDIpO1xuLy8gICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG5cbi8vICAgICAgICAgICAudmlld3MtZmllbGQtZmllbGQtaW1hZ2Uge1xuLy8gICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4vLyAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1zKDMpO1xuLy8gICAgICAgICAgIH1cblxuLy8gICAgICAgICAgIC52aWV3cy1maWVsZC10aXRsZSB7XG4vLyAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbi8vICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4vLyAgICAgICAgICAgICBtYXJnaW46MDtcbi8vICAgICAgICAgICAgIHBhZGRpbmctdG9wOiBtcygxKTtcbi8vICAgICAgICAgICAgIGZvbnQtc2l6ZTogbXMoMik7XG4vLyAgICAgICAgICAgfVxuXG4vLyAgICAgICAgICAgLnZpZXdzLWZpZWxkLWJvZHkgcCB7XG4vLyAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbi8vICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4vLyAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuLy8gICAgICAgICAgIH1cblxuLy8gICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbi8vICAgICAgICAgICAgIC52aWV3cy1maWVsZC1maWVsZC1pbWFnZSB7XG4vLyAgICAgICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuLy8gICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbi8vICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogbXMoMyk7XG4vLyAgICAgICAgICAgICB9XG4vLyAgICAgICAgICAgICAudmlld3MtZmllbGQtdGl0bGUge1xuLy8gICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuLy8gICAgICAgICAgICAgfVxuXG4vLyAgICAgICAgICAgICAudmlld3MtZmllbGQtYm9keSBwIHtcbi8vICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4vLyAgICAgICAgICAgICB9XG4vLyAgICAgICAgICAgfVxuLy8gICAgICAgICB9XG4vLyAgICAgICB9XG5cbi8vICAgICAgIC8vT3VyIFByb2Nlc3NcblxuLy8gICAgICAgICAjYmxvY2stbWFuaWZlc3RvcHJvY2Vzc3RleHQge1xuLy8gICAgICAgICAgIHAge1xuLy8gICAgICAgICAgICAgY29sb3I6ICRlY2hpZG5hLXJlZDtcbi8vICAgICAgICAgICAgIGZvbnQtc2l6ZTogbXMoMSk7XG5cbi8vICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1lZGl1bS1zY3JlZW4pIHtcbi8vICAgICAgICAgICAgICAgZm9udC1zaXplOiBtcygyKTtcbi8vICAgICAgICAgICAgIH1cbi8vICAgICAgICAgICB9XG4vLyAgICAgICAgIH1cblxuLy8gICAgICAgICAucHJvY2Vzcy1yb3cgLnZpZXdzLWNvbCB7XG4vLyAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4vLyAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbXMoMik7XG4vLyAgICAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcblxuLy8gICAgICAgICAgIC52aWV3cy1maWVsZC1maWVsZC1pbWFnZSB7XG4vLyAgICAgICAgICAgICB3aWR0aDogMjclO1xuLy8gICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4vLyAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDFlbTtcblxuLy8gICAgICAgICAgICAgLmZpZWxkLWNvbnRlbnQge1xuLy8gICAgICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuLy8gICAgICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbi8vICAgICAgICAgICAgIH1cbi8vICAgICAgICAgICB9XG5cbi8vICAgICAgICAgICAudmlld3MtZmllbGQtYm9keSBwIHtcbi8vICAgICAgICAgICAgIGNvbG9yOiAkZGFyay1ncmV5O1xuLy8gICAgICAgICAgICAgZm9udC1zaXplOiBtcygxKSAqIDAuODtcbi8vICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiBtcygxKSAqIDEuMTI7XG4vLyAgICAgICAgICAgfVxuXG4vLyAgICAgICAgICAgLnZpZXdzLWZpZWxkLXRpdGxlIHtcbi8vICAgICAgICAgICAgIGZvbnQtc2l6ZTogbXMoMSkgKiAwLjg7XG4vLyAgICAgICAgICAgICBsaW5lLWhlaWdodDogbXMoMSkgKiAxLjEyO1xuLy8gICAgICAgICAgICAgY29sb3I6ICRlY2hpZG5hLXJlZDtcbi8vICAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNWVtO1xuLy8gICAgICAgICAgIH1cblxuLy8gICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNtYWxsLXNjcmVlbikge1xuLy8gICAgICAgICAgICAgLnZpZXctZmllbGQtYm9keSBwIHtcbi8vICAgICAgICAgICAgICAgZm9udC1zaXplOiBtcygxKTtcbi8vICAgICAgICAgICAgIH1cblxuLy8gICAgICAgICAgICAgLnZpZXdzLWZpZWxkLXRpdGxlIHtcbi8vICAgICAgICAgICAgICAgZm9udC1zaXplOiBtcygxKTtcbi8vICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMmVtO1xuLy8gICAgICAgICAgICAgfVxuLy8gICAgICAgICAgIH1cblxuLy8gICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hcnJvdy1zY3JlZW4pIHtcbi8vICAgICAgICAgICAgIHdpZHRoOiAzMyU7XG4vLyAgICAgICAgICAgICBmbG9hdDogbGVmdDtcblxuLy8gICAgICAgICAgICAgLnZpZXdzLWZpZWxkLWZpZWxkLWltYWdlIHtcbi8vICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4vLyAgICAgICAgICAgICAgIHBhZGRpbmc6IDAuNWVtO1xuLy8gICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjZlbTtcbi8vICAgICAgICAgICAgIH1cblxuLy8gICAgICAgICAgICAgLnZpZXdzLWZpZWxkLXRpdGxlIHtcbi8vICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4vLyAgICAgICAgICAgICAgIC5maWVsZC1jb250ZW50IHtcbi8vICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogbXMoMSkgLyAxLjEzO1xuLy8gICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbXMoMSkgKiAxLjE7XG4vLyAgICAgICAgICAgICAgIH1cbi8vICAgICAgICAgICAgIH1cblxuLy8gICAgICAgICAgICAgLnZpZXdzLWZpZWxkLWJvZHkgcCB7XG4vLyAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbi8vICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IG1zKDEpICogMS4wNDtcbi8vICAgICAgICAgICAgICAgZm9udC1zaXplOiBtcygxKSAqIDEuMDQ7XG4vLyAgICAgICAgICAgICB9XG4vLyAgICAgICAgICAgfVxuLy8gICAgICAgICB9XG5cbi8vICAgICAgIC8vQ3VzdG9tZXIgRXhwZXJpZW5jZVxuXG4vLyAgICAgICAjYmxvY2stbWFuaWZlc3RvY3VzdG9tZXIge1xuLy8gICAgICAgICBwIHtcbi8vICAgICAgICAgICBmb250LXNpemU6IG1zKDEpICogMC44O1xuLy8gICAgICAgICAgIGxpbmUtaGVpZ2h0OiBtcygxKSAqIDEuMjtcblxuLy8gICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1lZGl1bS1zY3JlZW4pIHtcbi8vICAgICAgICAgICAgIGZvbnQtc2l6ZTogbXMoMik7XG4vLyAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtcygxKTtcbi8vICAgICAgICAgICB9XG4vLyAgICAgICAgIH1cbi8vICAgICAgIH1cblxuXG4vLyAgICAgICAuY3VzdG9tZXItcm93IHtcbi8vICAgICAgICAgLnZpZXdzLWNvbCB7XG4vLyAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4vLyAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4vLyAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbXMoNCk7XG5cbi8vICAgICAgICAgICAudmlld3MtZmllbGQtZmllbGQtaW1hZ2Uge1xuLy8gICAgICAgICAgICAgbWF4LXdpZHRoOiAxNTBweDtcbi8vICAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuLy8gICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbXMoMSk7XG4vLyAgICAgICAgICAgfVxuXG4vLyAgICAgICAgICAgLnZpZXdzLWZpZWxkLWJvZHkge1xuLy8gICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuLy8gICAgICAgICAgICAgLmZpZWxkLWNvbnRlbnQgcCwgLmZpZWxkLWNvbnRlbnQgaDMge1xuLy8gICAgICAgICAgICAgICBmb250LXNpemU6IG1zKDEpO1xuLy8gICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuLy8gICAgICAgICAgICAgfVxuXG4vLyAgICAgICAgICAgICAuZmllbGQtY29udGVudCBwIHtcbi8vICAgICAgICAgICAgICAgY29sb3I6ICRkYXJrLWdyZXk7XG4vLyAgICAgICAgICAgICB9XG5cbi8vICAgICAgICAgICAgIC5maWVsZC1jb250ZW50IGgzIHtcbi8vICAgICAgICAgICAgICAgY29sb3I6ICRlY2hpZG5hLXJlZDtcbi8vICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbi8vICAgICAgICAgICAgIH1cbi8vICAgICAgICAgICB9XG4vLyAgICAgICAgIH1cblxuLy8gICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7IC8vbWF0aCBzaWduc1xuLy8gICAgICAgICAgIC52aWV3cy1maWVsZC1maWVsZC1pbWFnZSB7XG4vLyAgICAgICAgICAgICBtYXgtd2lkdGg6IDQ0cHg7XG4vLyAgICAgICAgICAgfVxuLy8gICAgICAgICB9XG5cbi8vICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbi8vICAgICAgICAgICAudmlld3MtY29sIHtcbi8vICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbi8vICAgICAgICAgICAgIC52aWV3cy1maWVsZC1maWVsZC1pbWFnZSB7XG4vLyAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4vLyAgICAgICAgICAgICB9XG4vLyAgICAgICAgICAgfVxuLy8gICAgICAgICB9XG5cbi8vICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFycm93LXNjcmVlbikgeyAvL2luc2lkZSBjdXN0b21lci1yb3dcbi8vICAgICAgICAgICB3aWR0aDogMTguNjYlO1xuLy8gICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuXG4vLyAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuLy8gICAgICAgICAgICAgd2lkdGg6IDUuNDUlO1xuLy8gICAgICAgICAgICAgbWFyZ2luOiBtcyg0KSAwLjUlIDA7XG4vLyAgICAgICAgICAgICBwYWRkaW5nOiAxJTtcbi8vICAgICAgICAgICB9XG5cbi8vICAgICAgICAgICAudmlld3MtY29sIHtcbi8vICAgICAgICAgICAgIC52aWV3cy1maWVsZC1ib2R5IC5maWVsZC1jb250ZW50IHAge1xuLy8gICAgICAgICAgICAgICBmb250LXNpemU6IG1zKDEpICogMC44NTtcbi8vICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IG1zKDEpO1xuLy8gICAgICAgICAgICAgfVxuLy8gICAgICAgICAgIH1cbi8vICAgICAgICAgfVxuXG4vLyAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHdlaXJkLXNjcmVlbikge1xuLy8gICAgICAgICAgIC52aWV3cy1jb2wge1xuLy8gICAgICAgICAgICAgLnZpZXdzLWZpZWxkLWJvZHkgLmZpZWxkLWNvbnRlbnQgcCB7XG4vLyAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbXMoMSkgKiAxLjE7XG4vLyAgICAgICAgICAgICB9XG4vLyAgICAgICAgICAgfVxuLy8gICAgICAgICB9XG5cbi8vICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWVkaXVtLXNjcmVlbikge1xuLy8gICAgICAgICAgIC52aWV3cy1jb2wge1xuLy8gICAgICAgICAgICAgLnZpZXdzLWZpZWxkLWJvZHkgLmZpZWxkLWNvbnRlbnQgcCB7XG4vLyAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgbXMoMik7XG4vLyAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiBtcygyKTtcbi8vICAgICAgICAgICAgICAgZm9udC1zaXplOiBtcygxKSAqIDAuODtcbi8vICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4vLyAgICAgICAgICAgICAgICAgZm9udC1zaXplOiBtcygxKSoxLjI7XG4vLyAgICAgICAgICAgICAgIH1cbi8vICAgICAgICAgICAgIH1cbi8vICAgICAgICAgICB9XG4vLyAgICAgICAgIH1cblxuLy8gICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzdGFuZGFyZC1zY3JlZW4pIHtcbi8vICAgICAgICAgICAudmlld3MtY29sIHtcbi8vICAgICAgICAgICAgIC52aWV3cy1maWVsZC1ib2R5IC5maWVsZC1jb250ZW50IHAge1xuLy8gICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuLy8gICAgICAgICAgICAgICBsaW5lLWhlaWdodDogbXMoMik7XG4vLyAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbXMoMSk7XG4vLyAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkbGlnaHQ7XG4vLyAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuLy8gICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbXMoMik7XG4vLyAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRsaWdodDtcbi8vICAgICAgICAgICAgICAgfVxuLy8gICAgICAgICAgICAgfVxuLy8gICAgICAgICAgIH1cbi8vICAgICAgICAgfVxuLy8gICAgICAgfVxuXG4vLyAgICAgICAjYmxvY2stbWFuaWZlc3RvcXVvdGUge1xuLy8gICAgICAgICBtYXJnaW4tYm90dG9tOiBtcyg1KTtcbi8vICAgICAgIH1cblxuLy8gICAgICAgI2Jsb2NrLW1hbmlmZXN0b2xpbmsge1xuLy8gICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4vLyAgICAgICAgIG1hcmdpbi1ib3R0b206IG1zKDUpO1xuXG4vLyAgICAgICAgIGEge1xuLy8gICAgICAgICAgIGJhY2tncm91bmQ6ICRlY2hpZG5hLXJlZDtcbi8vICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbi8vICAgICAgICAgICB3aWR0aDogbXMoMTIpO1xuLy8gICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuLy8gICAgICAgICAgIHBhZGRpbmc6IG1zKC0xKTtcbi8vICAgICAgICAgICBjb2xvcjogI2ZmZjtcbi8vICAgICAgICAgICBmb250LXNpemU6IG1zKDEpO1xuLy8gICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbi8vICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4vLyAgICAgICAgICAgYm9yZGVyLXJhZGl1czogbXMoMyk7XG4vLyAgICAgICAgIH1cblxuLy8gICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRtZWRpdW0tc2NyZWVuKSB7XG4vLyAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcblxuLy8gICAgICAgICAgIGEge1xuLy8gICAgICAgICAgICAgZm9udC1zaXplOiBtcygzKTtcbi8vICAgICAgICAgICB9XG4vLyAgICAgICAgIH1cblxuLy8gICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRtZW51LWxhcmdlLXNjcmVlbikge1xuLy8gICAgICAgICAgIGEge1xuLy8gICAgICAgICAgICAgZm9udC1zaXplOiBtcyg0KTtcbi8vICAgICAgICAgICB9XG4vLyAgICAgICAgIH1cbi8vICAgICAgIH1cblxuLy8gfVxuXG5cblxuLy9Xb3JrIFBhZ2Vcbi8vIC53b3JrLXBhZ2Uge1xuXG4vLyAgIC5wYWdlLXRpdGxlIHtcbi8vICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzdGFuZGFyZC1zY3JlZW4pIHtcbi8vICAgICAgIGJhY2tncm91bmQ6IHVybCgvc2l0ZXMvZGVmYXVsdC9maWxlcy8yMDE2LTAzL2hlYWRlci13b3JrLmpwZykgbm8tcmVwZWF0IHRvcCBsZWZ0O1xuLy8gICAgICAgYmFja2dyb3VuZC1zaXplOiAxMTI1cHggMjI5cHg7XG4vLyAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBmaXhlZDtcbi8vICAgICB9XG4vLyAgIH1cblxuLy8gICAubGF5b3V0LWNvbnRlbnQge1xuLy8gICAgIGltZyB7XG4vLyAgICAgICBib3JkZXI6IG1zKC00KSBzb2xpZCAkbGlnaHQtZ3JleTtcblxuLy8gICAgICAgJjpob3ZlciB7XG4vLyAgICAgICAgIGJvcmRlcjogbXMoLTQpIHNvbGlkICRlY2hpZG5hLXJlZDtcbi8vICAgICAgICAgb3BhY2l0eTogMTtcbi8vICAgICAgIH1cbi8vICAgICB9XG5cbi8vICAgICAuZmllbGQtLXR5cGUtdGV4dC13aXRoLXN1bW1hcnkge1xuLy8gICAgICAgbWFyZ2luLWJvdHRvbTogbXMoMik7XG4vLyAgICAgICBmb250LXNpemU6IG1zKDIpO1xuLy8gICAgICAgbGV0dGVyLXNwYWNpbmc6IG1zKC0yMCk7XG5cbi8vICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHdlaXJkLXNjcmVlbikge1xuLy8gICAgICAgICBmb250LXNpemU6IG1zKDMpO1xuLy8gICAgICAgfVxuLy8gICAgIH1cblxuLy8gICAgIC53b3Jrcy1yb3cge1xuLy8gICAgICAgbWFyZ2luLWJvdHRvbTogNi42NiU7XG5cbi8vICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNtYWxsLXNjcmVlbikge1xuLy8gICAgICAgICB3aWR0aDogNDclO1xuLy8gICAgICAgICBtYXJnaW4tcmlnaHQ6IDIuNSU7XG4vLyAgICAgICAgIG1hcmdpbi1ib3R0b206IDIuNSU7XG4vLyAgICAgICAgIGZsb2F0OiBsZWZ0O1xuLy8gICAgICAgfVxuXG4vLyAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzdGFuZGFyZC1zY3JlZW4pIHtcbi8vICAgICAgICAgd2lkdGg6IDMxJTtcbi8vICAgICAgICAgbWFyZ2luOiAxJTtcblxuLy8gICAgICAgfVxuLy8gICAgIH1cbi8vICAgfVxuLy8gfVxuXG4vL1dvcmsgRGV0YWlscyBQYWdlXG4vLyAud29yay1kZXRhaWxzLXBhZ2Uge1xuXG4vLyAgICAgLy8gLnBhZ2UtdGl0bGUge1xuLy8gICAgIC8vICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc3RhbmRhcmQtc2NyZWVuKSB7XG4vLyAgICAgLy8gICAgIGJhY2tncm91bmQ6IHVybCgvc2l0ZXMvZGVmYXVsdC9maWxlcy8yMDE2LTAzL2hlYWRlci13b3JrLmpwZykgbm8tcmVwZWF0IHRvcCBsZWZ0O1xuLy8gICAgIC8vICAgICBiYWNrZ3JvdW5kLXNpemU6IDExMjVweCAyMjlweDtcbi8vICAgICAvLyAgIH1cbi8vICAgICAvLyB9XG5cbi8vICAgLmxheW91dC1jb250ZW50IHtcblxuLy8gICAgIC5jYXNlU3R1ZHlfX3N1bW1hcnl7XG5cbi8vICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzdGFuZGFyZC1zY3JlZW4pIHtcbi8vICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4vLyAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuLy8gICAgICAgICB3aWR0aDogNjclO1xuLy8gICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtcyg4KTtcbi8vICAgICAgIH1cbi8vICAgICB9XG5cblxuLy8gICAgIC5maWVsZC0tdHlwZS10ZXh0LXdpdGgtc3VtbWFyeSB7XG4vLyAgICAgICBmb250LXNpemU6IG1zKCk7XG4vLyAgICAgICBsZXR0ZXItc3BhY2luZzogbXMoLTIwKTtcblxuLy8gICAgICAgYSB7XG4vLyAgICAgICAgIGNvbG9yOiAkZWNoaWRuYS1yZWQ7XG4vLyAgICAgICAgIGZvbnQtd2VpZ2h0OiAkbWVkaXVtO1xuLy8gICAgICAgfVxuXG4vLyAgICAgICBwOmxhc3QtY2hpbGQge1xuLy8gICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuLy8gICAgICAgfVxuLy8gICAgIH1cblxuLy8gICAgIC5maWVsZC0tdHlwZS10ZXh0LWxvbmcge1xuLy8gICAgICAgYm9yZGVyLWJvdHRvbTogbXMoLTkpIHNvbGlkICRsaWdodC1ncmV5O1xuLy8gICAgICAgYm9yZGVyLXRvcDogbXMoLTkpIHNvbGlkICRsaWdodC1ncmV5O1xuLy8gICAgICAgcGFkZGluZy1ib3R0b206IG1zKDIpO1xuLy8gICAgICAgcGFkZGluZy10b3A6IG1zKDIpO1xuLy8gICAgICAgbWFyZ2luLWJvdHRvbTogbXMoMyk7XG4vLyAgICAgICBtYXJnaW4tdG9wOiBtcygzKTtcblxuLy8gICAgICAgaDIge1xuLy8gICAgICAgICBmb250LXdlaWdodDogNjAwO1xuLy8gICAgICAgICBmb250LXNpemU6IG1zKDEpO1xuLy8gICAgICAgfVxuLy8gICAgICAgdWwge1xuLy8gICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4vLyAgICAgICAgIGxpIHtcbi8vICAgICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuXG4vLyAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWVkaXVtLXNjcmVlbikge1xuLy8gICAgICAgICAgICAgZm9udC1zaXplOiBtcygtMSk7XG4vLyAgICAgICAgICAgICBsaW5lLWhlaWdodDogbXMoMSkgKiAxLjM7XG4vLyAgICAgICAgICAgfVxuLy8gICAgICAgICB9XG4vLyAgICAgICB9XG4vLyAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzdGFuZGFyZC1zY3JlZW4pIHtcbi8vICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuLy8gICAgICAgICBkaXNwbGF5OiBibG9jaztcbi8vICAgICAgICAgd2lkdGg6IDMzJTtcbi8vICAgICAgICAgbGluZS1oZWlnaHQ6IG1zKDEpICogMC42O1xuLy8gICAgICAgICBmb250LXNpemU6IG1zKDEpICogMC44O1xuLy8gICAgICAgICBwYWRkaW5nOiAwO1xuLy8gICAgICAgICBwYWRkaW5nLWxlZnQ6IG1zKDEpO1xuLy8gICAgICAgICBtYXJnaW46IDA7XG4vLyAgICAgICAgIGJvcmRlcjogMDtcbi8vICAgICAgICAgYm9yZGVyLWxlZnQ6IG1zKC05KSBzb2xpZCAkbGlnaHQtZ3JleTtcbi8vICAgICAgIH1cbi8vICAgICB9XG5cbi8vICAgICAuZmllbGQtLW5hbWUtZmllbGQtd2Vic2l0ZWxpbmsge1xuLy8gICAgICAgbWFyZ2luLXRvcDogbXMoMSk7XG5cbi8vICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHN0YW5kYXJkLXNjcmVlbikge1xuLy8gICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuLy8gICAgICAgICBjbGVhcjogYm90aDtcbi8vICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4vLyAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuLy8gICAgICAgICBwYWRkaW5nLWJvdHRvbTogbXMoMik7XG4vLyAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4vLyAgICAgICAgIHdpZHRoOiA3MCU7XG4vLyAgICAgICB9XG5cbi8vICAgICAgIGEge1xuLy8gICAgICAgICBjb2xvcjogJGVjaGlkbmEtcmVkO1xuLy8gICAgICAgICBmb250LXNpemU6IG1zKDEpO1xuXG4vLyAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hcnJvdy1zY3JlZW4pIHtcbi8vICAgICAgICAgICBmb250LXNpemU6IG1zKDEpICogMC44O1xuLy8gICAgICAgICB9XG4vLyAgICAgICB9XG4vLyAgICAgfVxuXG5cbi8vICAgICAuZmllbGQtLW5hbWUtZmllbGQtYmlnaW1hZ2Uge1xuXG4vLyAgICAgICBpbWcge1xuLy8gICAgICAgICBwYWRkaW5nLXRvcDogbXMoMyk7XG4vLyAgICAgICAgIG1hcmdpbi1ib3R0b206IG1zKDEpO1xuXG4vLyAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHN0YW5kYXJkLXNjcmVlbikge1xuLy8gICAgICAgICAgIGJvcmRlcjogMDtcbi8vICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuLy8gICAgICAgICAgIHBhZGRpbmctdG9wOiBtcyg1KTtcbi8vICAgICAgICAgfVxuLy8gICAgICAgfVxuLy8gICAgIH1cblxuLy8gICAgIC5maWVsZC0tbmFtZS1maWVsZC1kZXNje1xuLy8gICAgICAgZGlzcGxheTogbm9uZTtcbi8vICAgICB9XG4vLyAgIH1cbi8vIH1cblxuXG5cbi8vVGVhbSBQYWdlXG4vLyAudGVhbS1wYWdlIHtcblxuLy8gICAucGFnZS10aXRsZSB7XG4vLyAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBub25lO1xuXG4vLyAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc3RhbmRhcmQtc2NyZWVuKSB7XG4vLyAgICAgICBiYWNrZ3JvdW5kOiB1cmwoL3NpdGVzL2RlZmF1bHQvZmlsZXMvMjAxNi0wMy9oZWFkZXItdGVhbS5qcGcpIG5vLXJlcGVhdCB0b3AgbGVmdDtcbi8vICAgICAgIGJhY2tncm91bmQtc2l6ZTogMTEyNXB4IDIyOXB4O1xuLy8gICAgIH1cbi8vICAgfVxuXG4vLyAgIC5sYXlvdXQtY29udGVudCB7XG5cbi8vICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzdGFuZGFyZC1zY3JlZW4pIHtcbi8vICAgICAgIC52aWV3cy1jb2w6bnRoLWNoaWxkKDNuKzEpIHtcbi8vICAgICAgICAgcGFkZGluZzogMCBtcygtNCkgbXMoMikgMDtcbi8vICAgICAgIH1cblxuLy8gICAgICAgLnZpZXdzLWNvbDpudGgtY2hpbGQoM24rMikge1xuLy8gICAgICAgICBwYWRkaW5nOiAwIG1zKC02KSBtcygyKSBtcygtNik7XG4vLyAgICAgICB9XG5cbi8vICAgICAgIC52aWV3cy1jb2w6bnRoLWNoaWxkKDNuKzMpIHtcbi8vICAgICAgICAgcGFkZGluZzogMCBtcygtNikgbXMoMikgbXMoLTYpO1xuLy8gICAgICAgfVxuXG4vLyAgICAgICAudmlld3MtY29sOm50aC1jaGlsZCgzbis0KSB7XG4vLyAgICAgICAgIHBhZGRpbmc6IDAgbXMoLTYpIG1zKDIpIG1zKC02KTtcbi8vICAgICAgIH1cblxuLy8gICAgICAgLnZpZXdzLWNvbDpudGgtY2hpbGQoM24rNSkge1xuLy8gICAgICAgICBwYWRkaW5nOiAwIDAgbXMoMikgbXMoLTQpO1xuLy8gICAgICAgfVxuLy8gICAgIH1cblxuLy8gICAgIC5maWVsZC0tdHlwZS10ZXh0LXdpdGgtc3VtbWFyeSB7XG4vLyAgICAgICBtYXJnaW4tYm90dG9tOiBtcygyKTtcbi8vICAgICAgIGZvbnQtc2l6ZTogbXMoMik7XG4vLyAgICAgICBsZXR0ZXItc3BhY2luZzogbXMoLTIwKTtcblxuLy8gICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkd2VpcmQtc2NyZWVuKSB7XG4vLyAgICAgICAgIGZvbnQtc2l6ZTogbXMoMyk7XG4vLyAgICAgICB9XG4vLyAgICAgfVxuXG4vLyAgICAgLnRlYW0tcm93IHtcbi8vICAgICAgIHdpZHRoOiAzMSU7XG4vLyAgICAgICBtYXJnaW46IDElO1xuLy8gICAgICAgZmxvYXQ6IGxlZnQ7XG5cbi8vICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hcnJvdy1zY3JlZW4pIHtcbi8vICAgICAgICAgd2lkdGg6IDE4JTtcbi8vICAgICAgICAgbWF4LXdpZHRoOiAxNTBweDtcbi8vICAgICAgICAgbWFyZ2luOiAxJTtcbi8vICAgICAgIH1cbi8vICAgICB9XG5cbi8vICAgfVxuLy8gfVxuXG5cbi8vRHJ1cGFsIDggUGFnZVxuLy8gIC5kcnVwYWwtcGFnZSB7XG5cbi8vICAgLnBhZ2UtdGl0bGUge1xuLy8gICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHN0YW5kYXJkLXNjcmVlbikge1xuLy8gICAgICAgYmFja2dyb3VuZDogdXJsKC9zaXRlcy9kZWZhdWx0L2ZpbGVzLzIwMTYtMDMvaGVhZGVyLXdvcmsuanBnKSBuby1yZXBlYXQgdG9wIGxlZnQ7XG4vLyAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDExMjVweCAyMjlweDtcbi8vICAgICB9XG4vLyAgIH1cblxuLy8gICAubGF5b3V0LWNvbnRlbnQge1xuXG4vLyAgICAgLmZpZWxkLS10eXBlLWxpbmsge1xuLy8gICAgICAgYSB7XG4vLyAgICAgICAgIGJhY2tncm91bmQ6ICRlY2hpZG5hLXJlZDtcbi8vICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4vLyAgICAgICAgIHdpZHRoOiBtcygxMSk7XG4vLyAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuLy8gICAgICAgICBwYWRkaW5nOiBtcygtMSk7XG4vLyAgICAgICAgIGNvbG9yOiAjZmZmO1xuLy8gICAgICAgICBmb250LXNpemU6IG1zKDEpO1xuLy8gICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4vLyAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbi8vICAgICAgICAgYm9yZGVyLXJhZGl1czogbXMoMyk7XG4vLyAgICAgICB9XG5cbi8vICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1lZGl1bS1zY3JlZW4pIHtcbi8vICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4vLyAgICAgICAgICAgYSB7XG4vLyAgICAgICAgICAgICBmb250LXNpemU6IG1zKDMpO1xuLy8gICAgICAgICAgIH1cbi8vICAgICAgICAgfVxuXG4vLyAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1lbnUtbGFyZ2Utc2NyZWVuKSB7XG4vLyAgICAgICAgICAgYSB7XG4vLyAgICAgICAgICAgICBmb250LXNpemU6IG1zKDQpO1xuLy8gICAgICAgICAgIH1cbi8vICAgICAgICAgfVxuLy8gICAgIH1cblxuLy8gICAgIGgyIHtcbi8vICAgICAgIGZvbnQtc2l6ZTogbXMoMSkgKiAwLjk7XG4vLyAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4vLyAgICAgICBtYXJnaW4tYm90dG9tOiBtcygtNyk7XG4vLyAgICAgICBmb250LXdlaWdodDogJGxpZ2h0O1xuLy8gICAgICAgcGFkZGluZzogMCBtcyg2KTtcbi8vICAgICAgIGxpbmUtaGVpZ2h0OiBtcygxKTtcblxuLy8gICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWVkaXVtLXNjcmVlbikge1xuLy8gICAgICAgICBmb250LXNpemU6IG1zKDEpICogMS4xO1xuLy8gICAgICAgICBwYWRkaW5nOiAwIG1zKDQpO1xuLy8gICAgICAgfVxuLy8gICAgIH1cblxuLy8gICAgIHAge1xuLy8gICAgICAgZm9udC1zaXplOiBtcygtMSk7XG4vLyAgICAgICBsaW5lLWhlaWdodDogbXMoMSk7XG5cbi8vICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1lZGl1bS1zY3JlZW4pIHtcbi8vICAgICAgICAgZm9udC1zaXplOiBtcygpO1xuLy8gICAgICAgICBsaW5lLWhlaWdodDogbXMoMSkgKiAxLjE7XG4vLyAgICAgICB9XG4vLyAgICAgfVxuXG4vLyAgICAgI2Jsb2NrLWRydXBhbDhjb250ZW50MiB7XG5cbi8vICAgICAgIGJvcmRlci10b3A6IG1zKC00KSBzb2xpZCAkbGlnaHQtZ3JleTtcbi8vICAgICAgIGJvcmRlci1ib3R0b206IG1zKC00KSBzb2xpZCAkbGlnaHQtZ3JleTtcbi8vICAgICAgIG1hcmdpbi1ib3R0b206IG1zKDQpO1xuLy8gICAgICAgcGFkZGluZy10b3A6IG1zKDQpO1xuXG4vLyAgICAgICBoNCB7XG4vLyAgICAgICAgIGZvbnQtc2l6ZTogbXMoLTEpO1xuLy8gICAgICAgICBtYXJnaW4tYm90dG9tOiBtcygxKTtcbi8vICAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcblxuLy8gICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbi8vICAgICAgICAgICBjb2xvcjogJGVjaGlkbmEtcmVkO1xuLy8gICAgICAgICB9XG5cbi8vICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWVkaXVtLXNjcmVlbikge1xuLy8gICAgICAgICAgIGZvbnQtc2l6ZTogbXMoMCk7XG4vLyAgICAgICAgIH1cbi8vICAgICAgIH1cblxuLy8gICAgICAgdWwge1xuLy8gICAgICAgICBmb250LXNpemU6IG1zKC0yKTtcbi8vICAgICAgICAgbGluZS1oZWlnaHQ6IG1zKDEpO1xuLy8gICAgICAgICBtYXJnaW4tbGVmdDogbXMoNClcbi8vICAgICAgIH1cbi8vICAgICB9XG5cbi8vICAgICAuZmllbGQtLXR5cGUtdGV4dC13aXRoLXN1bW1hcnkge1xuLy8gICAgICAgbWFyZ2luLWJvdHRvbTogbXMoMik7XG4vLyAgICAgICBmb250LXNpemU6IG1zKDIpO1xuLy8gICAgICAgbGV0dGVyLXNwYWNpbmc6IG1zKC0yMCk7XG4vLyAgICAgfVxuLy8gICB9XG4vLyB9XG5cblxuLy9Db25uZWN0IFBhZ2Vcbi8vIC5jb25uZWN0LXBhZ2Uge1xuLy8gICAucGFnZS10aXRsZSB7XG4vLyAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc3RhbmRhcmQtc2NyZWVuKSB7XG4vLyAgICAgICBiYWNrZ3JvdW5kOiB1cmwoL3NpdGVzL2RlZmF1bHQvZmlsZXMvMjAxNi0wMy9oZWFkZXItY29ubmVjdC5qcGcpIG5vLXJlcGVhdCB0b3AgbGVmdDtcbi8vICAgICAgIGJhY2tncm91bmQtc2l6ZTogMTEyNXB4IDIyOXB4O1xuLy8gICAgIH1cbi8vICAgfVxuXG4vLyAgICNibG9jay1kZS10aGVtZS1jb250ZW50IHtcbi8vICAgICAuY29udGFjdC1pbmZvLCAuYWRkcmVzcy1pbmZvLCAge1xuLy8gICAgICAgd2lkdGg6IDEwMCU7XG4vLyAgICAgICBmbG9hdDogbGVmdDtcbi8vICAgICB9XG5cbi8vICAgICAuY29udGFjdC1pbmZvIHtcbi8vICAgICAgIGgyIHtcbi8vICAgICAgICAgZm9udC1zaXplOiBtcygxKTtcbi8vICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbi8vICAgICAgICAgbWFyZ2luLWJvdHRvbTogbXMoMSk7XG4vLyAgICAgICB9XG5cbi8vICAgICAgIHVsIHtcbi8vICAgICAgICAgcGFkZGluZzogMDtcblxuLy8gICAgICAgICBsaSB7XG4vLyAgICAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbi8vICAgICAgICAgICBsaW5lLWhlaWdodDogbXMoMCk7XG5cbi8vICAgICAgICAgICBhIHtcbi8vICAgICAgICAgICAgIGNvbG9yOiAkZWNoaWRuYS1yZWQ7XG4vLyAgICAgICAgICAgfVxuLy8gICAgICAgICB9XG4vLyAgICAgICB9XG4vLyAgICAgfVxuXG4vLyAgICAgLmFkZHJlc3MtaW5mbyB7XG4vLyAgICAgICBwYWRkaW5nLXRvcDogbXMoNCk7XG4vLyAgICAgfVxuXG4vLyAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWVkaXVtLXNjcmVlbikge1xuLy8gICAgICAgLmNvbnRhY3QtaW5mbywgLmFkZHJlc3MtaW5mbyB7XG4vLyAgICAgICAgIHdpZHRoOiA1MCU7XG4vLyAgICAgICB9XG4vLyAgICAgfVxuXG4vLyAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc3RhbmRhcmQtc2NyZWVuKSB7XG4vLyAgICAgICB3aWR0aDogNjYlO1xuLy8gICAgICAgZmxvYXQ6IGxlZnQ7XG5cbi8vICAgICAgIC5jb250YWN0LWluZm8sIC5hZGRyZXNzLWluZm8sICB7XG4vLyAgICAgICAgIHdpZHRoOiA1MCU7XG4vLyAgICAgICB9XG4vLyAgICAgfVxuLy8gICB9XG5cbi8vICAgI2Jsb2NrLXZpZXdzLWJsb2NrLXNvY2lhbC1tZWRpYS1pY29ucy1ibG9jay0xIHtcbi8vICAgICBoMiB7XG4vLyAgICAgICBmb250LXNpemU6IG1zKDEpO1xuLy8gICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbi8vICAgICAgIG1hcmdpbi1ib3R0b206IG1zKDEpO1xuLy8gICAgIH1cblxuLy8gICAgIC52aWV3LXNvY2lhbC1tZWRpYS1pY29ucyB7XG5cbi8vICAgICAgIC52aWV3cy1jb2wge1xuLy8gICAgICAgICBtYXJnaW4tcmlnaHQ6IG1zKC0zKTtcbi8vICAgICAgIH1cblxuLy8gICAgICAgYSB7XG4vLyAgICAgICAgIG9wYWNpdHk6IDA7XG4vLyAgICAgICAgIGNvbG9yOiAjZmZmO1xuLy8gICAgICAgICBwYWRkaW5nLWJvdHRvbTogMzFweDtcbi8vICAgICAgICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuLy8gICAgICAgfVxuXG4vLyAgICAgICAuY29sLTEgLnZpZXdzLWZpZWxkLWZpZWxkLXNtLWxpbmsge1xuLy8gICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoL3NpdGVzL2RlZmF1bHQvZmlsZXMvMjAxNi0wMy9kZS1pY29uc190d2l0dGVyLnBuZykgbm8tcmVwZWF0O1xuLy8gICAgICAgICBoZWlnaHQ6IDUwcHg7XG4vLyAgICAgICAgIHdpZHRoOiA1MXB4O1xuLy8gICAgICAgfVxuXG4vLyAgICAgICAuY29sLTIgLnZpZXdzLWZpZWxkLWZpZWxkLXNtLWxpbmsge1xuLy8gICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoL3NpdGVzL2RlZmF1bHQvZmlsZXMvMjAxNi0wMy9kZS1pY29uc19mYWNlYm9vay5wbmcpIG5vLXJlcGVhdDtcbi8vICAgICAgICAgaGVpZ2h0OiA1MHB4O1xuLy8gICAgICAgICB3aWR0aDogNTFweDtcbi8vICAgICAgIH1cblxuLy8gICAgICAgLmNvbC0zIC52aWV3cy1maWVsZC1maWVsZC1zbS1saW5rIHtcbi8vICAgICAgICAgYmFja2dyb3VuZDogdXJsKC9zaXRlcy9kZWZhdWx0L2ZpbGVzLzIwMTYtMDMvZGUtaWNvbnNfbGlua2VkaW4ucG5nKSBuby1yZXBlYXQ7XG4vLyAgICAgICAgIGhlaWdodDogNTBweDtcbi8vICAgICAgICAgd2lkdGg6IDUxcHg7XG4vLyAgICAgICB9XG4vLyAgICAgfVxuXG4vLyAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc3RhbmRhcmQtc2NyZWVuKSB7XG4vLyAgICAgICB3aWR0aDogMzMlO1xuLy8gICAgICAgZmxvYXQ6IGxlZnQ7XG4vLyAgICAgfVxuLy8gICB9XG5cbi8vICAgI2Jsb2NrLWNvbnRhY3RtYXAsICNibG9jay1kZS10aGVtZS1wYWdlbGluayB7XG4vLyAgICAgd2lkdGg6IDEwMCU7XG4vLyAgICAgZmxvYXQ6IGxlZnQ7XG4vLyAgIH1cblxuLy8gICAjYmxvY2stY29udGFjdG1hcCB7XG4vLyAgICAgcGFkZGluZy10b3A6IG1zKDIpO1xuLy8gICAgIG1hcmdpbi10b3A6IG1zKDIpO1xuLy8gICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjMDAwO1xuLy8gICB9XG5cbi8vICAgI2Jsb2NrLWRlLXRoZW1lLXBhZ2VsaW5rIHtcbi8vICAgICBhIHtcbi8vICAgICAgICAgY29sb3I6ICRlY2hpZG5hLXJlZDtcbi8vICAgICAgICAgbWFyZ2luLXRvcDogbXMoMik7XG4vLyAgICAgICAgIHRyYW5zaXRpb246IG5vbmU7XG4vLyAgICAgICAvL2hvdmVyIHN0YXRlIHVuZGVyIF9lbGVtZW50cy5zY3NzXG5cbi8vICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHN0YW5kYXJkLXNjcmVlbikge1xuLy8gICAgICAgICBmb250LXNpemU6IG1zKDIpO1xuLy8gICAgICAgfVxuLy8gICAgIH1cbi8vICAgfVxuLy8gfVxuIiwiLyogbGF5b3V0L19mb290ZXIuc2NzcyAqL1xuXG4vKiBAZm9vdGVyIHNlY3Rpb24gKi9cblxuLy8gI2Zvb3RlcntcblxuLy8gfVxuXG4ucmVnaW9uLWZvb3RlcntcblxufVxuIiwiLmxheW91dCB7XG4gIG1hcmdpbjogMXJlbTtcbiAgLmxheW91dF9fcmVnaW9uIHtcbiAgICBwYWRkaW5nOiAwIDFyZW07XG4gICAgLmJsb2NrLWxheW91dC1idWlsZGVyIHtcbiAgICAgIG1hcmdpbjogMXJlbSAwO1xuICAgIH1cbiAgfVxuICAuYmxvY2staW5saW5lLWJsb2NrYnV0dG9uIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzIwMDJmO1xuICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgcGFkZGluZzogMC44ZW0gMS41NjI1ZW07XG4gICAgICBmb250LXNpemU6IDEuMjVlbTtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2U7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgcGFkZGluZzogMC41MTJlbSAxLjI1ZW07XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MHB4O1xuICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuM3MgZWFzZS1vdXQsIGJvcmRlci1jb2xvciAuM3MgZWFzZS1vdXQ7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDFlbTtcbiAgICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cbiAgfVxufVxuIiwiLyogX29iamVjdHMuc2NzcyAqL1xuLy8gY29udGFpbnMgZ2VuZXJpYywgdW5kZXJseWluZyBkZXNpZ24gcGF0dGVybnMgYW5kIHRoZWlyIGV4dGVuc2lvbnMuXG4vLyBlZy4gYmFzaWMgc3R5bGVzIGZvciBhbGwgc2lkZWJhciBibG9ja3Mgb3IgbGlzdCBkaXNwbGF5cyBvZiBjb250ZW50XG5cbkBpbXBvcnQgJ29iamVjdHMvYnV0dG9ucyc7XG5AaW1wb3J0ICdvYmplY3RzL2NhcmRzJztcbkBpbXBvcnQgJ29iamVjdHMvcmVzcG9uc2l2ZS10YWJsZXMnO1xuQGltcG9ydCAnb2JqZWN0cy9tZWRpYS1lbWJlZCc7XG5AaW1wb3J0ICdvYmplY3RzL2ZpZWxkcyc7XG5AaW1wb3J0ICdvYmplY3RzL3ZpZXctZmllbGRzJztcbkBpbXBvcnQgJ29iamVjdHMvbGlzdC1kaXNwbGF5cyc7XG5AaW1wb3J0ICdvYmplY3RzL2dyaWQtZGlzcGxheXMnO1xuQGltcG9ydCAnb2JqZWN0cy9jb250ZW50LXN0eWxlcyc7XG5AaW1wb3J0ICdvYmplY3RzL3ZlbmRvcnMnO1xuXG4uc3R5bGVndWlkZS1oZWFkZXJ7XG4gIGNsZWFyOiBib3RoO1xuICBtYXJnaW4tdG9wOiBtcyg1KTtcbiAgbWFyZ2luLWJvdHRvbTogbXMoLTMpO1xuICBmb250LXNpemU6IG1zKC0xKTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6ICRuZXV0cmFsLWdyZXk7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkbGlnaHQtZ3JleTtcbiAgJjpudGgtY2hpbGQoMSl7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxufVxuXG4ucGF0aC1mcm9udHBhZ2UgLnBhZ2UtdGl0bGV7XG4gIEBpbmNsdWRlIHNxdWlzaC10ZXh0O1xuICAvLyBjb2xvcjogd2hpdGU7XG59XG4iLCIvKiBvYmplY3RzL19idXR0b24uc2NzcyAqL1xuXG4vLyBnbG9iYWwgYnV0dG9uIHN0eWxlc1xuXG4uYnRue1xuICBAaW5jbHVkZSBidG47XG59XG5cbi8vIC5idG4tZWZmZWN0e1xuLy8gICBAaW5jbHVkZSBidG4tZWZmZWN0O1xuLy8gfVxuXG4uYnRuLXByaW1hcnl7XG4gIEBpbmNsdWRlIGJ0bi1wcmltYXJ5O1xufVxuXG4uYnRuLXNlY29uZGFyeXtcbiAgQGluY2x1ZGUgYnRuLXNlY29uZGFyeTtcbn1cblxuLmJ0bi1mbGF0e1xuICBAaW5jbHVkZSBidG4tZmxhdDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGxpZ2h0LWdyZXk7XG59XG4iLCIvKiBvYmplY3RzL2NhcmRzL19jYXJkcy5zY3NzICovXG5AaW1wb3J0IFwiY2FyZHMvY2FyZFwiO1xuQGltcG9ydCBcImNhcmRzL2NhcmQtLWRlZmF1bHRcIjtcbkBpbXBvcnQgXCJjYXJkcy9jYXJkLS1oaWdobGlnaHRcIjtcbkBpbXBvcnQgXCJjYXJkcy9jYXJkLS1tZWRpYVwiO1xuIiwiLyogb2JqZWN0cy9jYXJkcy9fY2FyZC5zY3NzICovXG5cbi8vIHNldHRpbmdzXG4vLyAkY2FyZF9fYWNjZW50LWNvbG9yOiA7XG4vLyAkY2FyZF9fYmctY29sb3I6IDtcbi8vICRjYXJkX19saW5rLWNvbG9yOiA7XG5cbi8vIGNhcmQgc3R5bGVzXG4uY2FyZHtcbiAgQGluY2x1ZGUgei1kZWZhdWx0LXNoYWRvdztcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBtYXJnaW4tYm90dG9tOiBtcyg0KTtcbiAgbGluZS1oZWlnaHQ6IG1zKDIpO1xuICAubm8tc2lkZWJhcnMgJiB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWVkaXVtLXNjcmVlbikge1xuICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICBtYXgtd2lkdGg6IDg1JTtcbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc3RhbmRhcmQtc2NyZWVuKSB7XG4gICAgICBtYXgtd2lkdGg6IDc1JTtcbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkd2lkZS1zY3JlZW4pIHtcbiAgICAgIG1heC13aWR0aDogNjUlO1xuICAgIH1cbiAgfVxuICAmOmhvdmVye1xuICAgIEBpbmNsdWRlIHNoYWRvdy1ob3ZlcmFibGU7XG4gIH1cbn1cblxuLmNhcmRfX2lubmVye1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5jYXJkX190aXRsZXtcbiAgcGFkZGluZzogbXMoLTEpIG1zKDIpO1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFycm93LXNjcmVlbikge1xuICAgIHBhZGRpbmc6IG1zKC0xKSBtcygxKTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgfVxufVxuXG4gIC5jYXJkX190aXRsZS10ZXh0e1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuLmNhcmRfX3N1cHBvcnRpbmctdGV4dHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIHBhZGRpbmc6IG1zKC0xKSBtcygyKTtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFycm93LXNjcmVlbikge1xuICAgIHBhZGRpbmc6IG1zKC0xKSBtcygxKTtcbiAgfVxufVxuXG4uY2FyZF9fc3VwcG9ydGluZy10ZXh0LWltYWdle1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRzbWFsbC1zY3JlZW4pIHtcbiAgICBAaW5jbHVkZSBpbWFnZS1zdHlsZTtcbiAgICBAaW5jbHVkZSBpbWFnZS1zdHlsZS1sZWZ0O1xuICB9XG59XG5cbi5jYXJkX19hY3Rpb25ze1xuICBwYWRkaW5nOiBtcygtMik7XG59XG5cbi5jYXJkX19idXR0b257XG4gIEBpbmNsdWRlIGJ0bi1mbGF0O1xufVxuIiwiLyogb2JqZWN0cy9jYXJkcy9fY2FyZF9fZGVmYXVsdC5zY3NzICovXG5cbi8vIHNldHRpbmdzXG4vLyAkY2FyZF9fYWNjZW50LWNvbG9yOiA7XG4vLyAkY2FyZF9fYmctY29sb3I6IDtcbi8vICRjYXJkX19saW5rLWNvbG9yOiA7XG5cbi5jYXJkLS1kZWZhdWx0e1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgY29sb3I6IHNoYWRlKCRsaWdodC1ncmV5LDYwJSk7XG4gIC5jYXJkX19zdXBwb3J0aW5nLXRleHR7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRsaWdodC1ncmV5O1xuICB9XG4gIC5jYXJkX19idXR0b257XG4gICAgY29sb3I6ICNEMzJGMkY7XG4gICAgJjpob3ZlciwmOmZvY3Vze1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGxpZ2h0LWdyZXk7XG4gICAgICBjb2xvcjogJGRhcmstZ3JleTtcbiAgICB9XG4gIH1cbn1cbiIsIi8qIG9iamVjdHMvY2FyZHMvX2NhcmRfX2hpZ2hsaWdodC5zY3NzICovXG5cbi5jYXJkLS1oaWdobGlnaHR7XG4gIGJhY2tncm91bmQtY29sb3I6ICNEMzJGMkY7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgLmNhcmRfX3N1cHBvcnRpbmctdGV4dHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0I3MUMxQztcbiAgfVxuICAuY2FyZF9fYnV0dG9ue1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAmOmhvdmVyLCY6Zm9jdXN7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjQjcxQzFDO1xuICAgIH1cbiAgfVxuXG4gIC8vIG1heSBuZWVkIHRvIGRvIGljb25zIGZvciBkaWZmZXJlbnQgY2FyZCBmb3JtYXRzXG4gIC5tYXRlcmlhbC1pY29uc3tcbmRpc3BsYXk6IG5vbmU7XG4gICAgLy8gcG9zaXRpb246IGFic29sdXRlO1xuICAgIC8vIHJpZ2h0OiBtcygtNCk7XG4gICAgLy8gdG9wOiBtcygtMik7XG4gICAgLy8gY29sb3I6IHdoaXRlO1xuICAgIC8vIEBpbmNsdWRlIG1kLTE4O1xuICB9XG59XG4iLCIvKiBvYmplY3RzL2NhcmRzL19jYXJkX19tZWRpYS5zY3NzICovXG5cbi5jYXJkLS1tZWRpYXtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwOTdBNztcbiAgY29sb3I6IHdoaXRlO1xuICAuY2FyZF9faW1hZ2V7XG4gICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgaW1ne1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG4gIC5jYXJkX19zdXBwb3J0aW5nLXRleHR7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMwMDgzOEY7XG4gIH1cbiAgLmNhcmRfX2J1dHRvbntcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgJjpob3ZlciwmOmZvY3Vze1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwODM4RjtcbiAgICB9XG4gIH1cblxuICAuY2FyZF9fdGl0bGV7XG4gICAgcGFkZGluZzogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cbiAgLmNhcmRfX3RpdGxlLXRleHR7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHBhZGRpbmc6IG1zKC0yKSBtcygtMSk7XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNjUpO1xuICB9XG59XG4iLCIvKiBvYmplY3RzL19yZXNwb25zaXZlLXRhYmxlcy5zY3NzICovXG5cbi8vIFJlc3BvbnNpdmUgdGFibGVzIC0gYWRkZWQgdmlhIGphdmFzY3JpcHQgdG8gdGFibGVzIGluIHRoZSBib2R5IGZpZWxkXG4udGFibGUtcmVzcG9uc2l2ZXtcbiAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICBjdXJzb3I6IGV3LXJlc2l6ZTtcbn1cblxuLnRhYmxlLWNvbnRyb2xze1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRsaWdodC1ncmV5O1xuICBwYWRkaW5nLWJvdHRvbTogbXMoLTYpO1xuICAuaW5zdHJ1Y3Rpb257XG4gICAgY29sb3I6ICRuZXV0cmFsLWdyZXk7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXNpemU6IG1zKC0xKTtcbiAgICBtYXJnaW4tcmlnaHQ6IG1zKC0xKTtcbiAgfVxuICAuZmE6YmVmb3Jle1xuICAgIGNvbG9yOiAkbmV1dHJhbC1ncmV5O1xuICB9XG59XG4iLCIvKiBvYmplY3RzL19tZWRpYS1lbWJlZC5zY3NzICovXG5cbi8vIHJlc3BvbnNpdmUgbWVkaWFcbi5tZWRpYS1lbWJlZHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLWJvdHRvbTogNTYuMjUlO1xuICBwYWRkaW5nLXRvcDogMzBweDtcbiAgaGVpZ2h0OiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ubWVkaWEtZW1iZWQgaWZyYW1lLFxuLm1lZGlhLWVtYmVkIG9iamVjdCxcbi5tZWRpYS1lbWJlZCBlbWJlZCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4udmlkZW8tZW1iZWR7XG4gIEBpbmNsdWRlIGRpdmlkZXItbGluZTtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWVkaXVtLXNjcmVlbikge1xuICAgIHBhZGRpbmctbGVmdDogMTIlO1xuICAgIHBhZGRpbmctcmlnaHQ6ICAxMiU7XG4gIH1cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc3RhbmRhcmQtc2NyZWVuKSB7XG4gICAgbWFyZ2luLXRvcDogJHhsYXJnZTtcbiAgfVxufVxuXG4udmlkZW8tY29udGFpbmVyIG9iamVjdCxcbi52aWRlby1jb250YWluZXIgZW1iZWQsXG4udmlkZW8tY29udGFpbmVyIGlmcmFtZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4udmlkZW8tY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLWJvdHRvbTogNTYuMjUlOyAvKiAxNjo5ICovXG4gIHBhZGRpbmctdG9wOiAyNXB4O1xuICBoZWlnaHQ6IDA7XG59XG4iLCIvKiBvYmplY3RzL19maWVsZHMuc2NzcyAqL1xuXG4vLyBub2RlIGZpZWxkc1xuXG4vLyAuZmllbGQtbGFiZWx7XG4vLyB9XG5cbi8vIC5maWVsZC1uYW1lLWZpZWxkLWltYWdle1xuLy8gfVxuIiwiLyogb2JqZWN0cy9fdmlld3MtdWkuc2NzcyAqL1xuXG4vLyB2aWV3IGZpZWxkcyBhbmQgdWlcblxuLy8gLnZpZXdzLWZpZWxkLXRpdGxle1xuLy8gfVxuXG4vLyAudmlld3MtZmllbGQtZmllbGQtaW1hZ2V7XG4vLyB9XG5cbi8vIC52aWV3cy1maWVsZC1ib2R5e1xuLy8gfVxuIiwiLyogb2JqZWN0cy9fbGlzdC1kaXNwbGF5cy5zY3NzICovXG5cbi8vIGxpc3QgZGlzcGxheSB3aXRoIG9yIHdpdGhvdXQgaW1hZ2VzXG5cbiVsaXN0LWRpc3BsYXl7XG4gIGxpLFxuICAudmlld3Mtcm93e1xuICAgIEBpbmNsdWRlIGRpdmlkZXItbGluZTtcbiAgfVxuICAvLyBnZW5lcmF0ZXMgbGlzdC1kaXNwbGF5LS1pbWFnZXNcbiAgLy8gJi0taW1hZ2Vze1xuICAgIC8vIC5maWVsZC1uYW1lLWZpZWxkLWltYWdle1xuICAgIC8vICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFycm93LXNjcmVlbikge1xuICAgIC8vICAgICBAaW5jbHVkZSBmbG9hdC1zcGFuKDQsICRndXR0ZXI6IDEpO1xuICAgIC8vICAgfVxuICAgIC8vICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc3RhbmRhcmQtc2NyZWVuKSB7XG4gICAgLy8gICAgIEBpbmNsdWRlIGZsb2F0LXNwYW4oNSwgJGd1dHRlcjogMSk7XG4gICAgLy8gICB9XG4gICAgLy8gICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIC8vIH1cblxuICAgIC8vIC52aWV3cy1maWVsZC10aXRsZSxcbiAgICAvLyAudmlld3MtZmllbGQtYm9keSxcbiAgICAvLyAudmlld3MtZmllbGQtZmllbGQtZGF0ZSxcbiAgICAvLyAudmlld3MtZmllbGQtZmllbGQtcG9zdGVkLWRhdGUsXG4gICAgLy8gLnZpZXdzLWZpZWxkLXZpZXctbm9kZXtcbiAgICAvLyAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hcnJvdy1zY3JlZW4pIHtcbiAgICAvLyAgICAgQGluY2x1ZGUgZmxvYXQtc3Bhbig4LCdsYXN0JywgJGd1dHRlcjogMSk7XG4gICAgLy8gICB9XG4gICAgLy8gICBAaW5jbHVkZSBicmVha3BvaW50KCRzdGFuZGFyZC1zY3JlZW4pIHtcbiAgICAvLyAgICAgQGluY2x1ZGUgZmxvYXQtc3Bhbig3LCdsYXN0JywgJGd1dHRlcjogMSk7XG4gICAgLy8gICB9XG4gICAgLy8gfVxuXG4gICAgLy8gLnZpZXdzLWZpZWxkLWJvZHkgcDpsYXN0LWNoaWxke1xuICAgIC8vICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAvLyB9XG4gIC8vIH1cbn1cbiIsIi8qIG9iamVjdHMvX2dyaWQtZGlzcGxheXMuc2NzcyAqL1xuXG4vLyBncmlkIGRpc3BsYXkgd2l0aCBvciB3aXRob3V0IGltYWdlcy4geW91IGNhbiB0d2VhayB0aGVzZSwgYnV0IGlmIHlvdVxuLy8gYXJlIGRvaW5nIGhlYXZ5IHN0eWxpbmcsIGl0J3Mgc3VnZ2VzdGVkIHlvdSBlbmhhbmNlIHRoZXNlIGluIGEgc2VwYXJhdGUgcGFydGlhbFxuLy8gcmVtZW1iZXIgdG8gdXNlIG1hdGNoSGVpZ2h0IG9uIHRoZSAudmlld3Mtcm93IGVsZW1lbnRzIGluIGpzL3NjcmlwdC5qc1xuXG4uZ3JpZC1kaXNwbGF5e1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRuYXJyb3ctc2NyZWVuKSB7XG4gICAgLnZpZXdzLXJvd3tcbiAgICAgIEBpbmNsdWRlIGZsb2F0LXNwYW4oNik7XG4gICAgICAmOm50aC1jaGlsZCgybisyKXtcbiAgICAgICAgQGluY2x1ZGUgZmxvYXQtc3Bhbig2LCdsYXN0Jyk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC8vIG5vIHNpZGViYXJzIEFORCBvbmUgc2Vjb25kIHNpZGViYXIgKG1heSBuZWVkIHRvIHNlcGFyYXRlKVxuICAubm8tc2lkZWJhcnMgJixcbiAgLm9uZS1zaWRlYmFyLnNpZGViYXItc2Vjb25ke1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHN0YW5kYXJkLXNjcmVlbikge1xuICAgICAgLnZpZXdzLXJvd3tcbiAgICAgICAgQGluY2x1ZGUgZmxvYXQtc3Bhbig0KTtcbiAgICAgICAgJjpudGgtY2hpbGQoMm4rMil7XG4gICAgICAgICAgQGluY2x1ZGUgZmxvYXQtc3Bhbig0KTtcbiAgICAgICAgfVxuICAgICAgICAmOm50aC1jaGlsZCgzbiszKSB7XG4gICAgICAgICAgQGluY2x1ZGUgZmxvYXQtc3Bhbig0LCdsYXN0Jyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBvbmUgc2Vjb25kIHNpZGViYXIuXG4gIC8vIC5vbmUtc2lkZWJhci5zaWRlYmFyLXNlY29uZCAme1xuXG4gIC8vIH1cblxuICAvLyB0d28gc2lkZWJhcnNcbiAgLy8gLnR3by1zaWRlYmFycyAme1xuXG4gIC8vIH1cblxuICAvLyBnZW5lcmF0ZXMgLmdyaWQtZGlzcGxheS0taW1hZ2Vze30uXG4gIC8vIEFkZCBncmlkLWRpc3BsYXkgYW5kIGdyaWQtZGlzcGFseS0taW1hZ2VzIHRvIHlvdXIgdmlld1xuICAvLyAmLS1pbWFnZXN7XG5cbiAgLy8gfVxufVxuIiwiLyogb2JqZWN0cy9fY29udGVudC1zdHlsZXMuc2NzcyAqL1xuLy8gY29udGFpbnMgc3R5bGVzIGZvciB0aGUgZWRpdG9yIGV4cGVyaWVuY2UuIGVnLiBmbG9hdCBpbWFnZXMgbGVmdCBvciByaWdodCxcbi8vIGhlYWRsaW5lIGFuZCBoaWdobGlnaHQgdHlwb2dyYXBoeS5cbi8vIHRoaXMgZmlsZSBnZXRzIGltcG9ydGVkIGJ5IHd5c2l3eWcvd3lzaXd5Zy1lZGl0b3Iuc2Nzcy5cblxuLmhlYWRsaW5lLXR5cGV7XG4gIEBpbmNsdWRlIGhlYWRsaW5lLXR5cGU7XG59XG5cbi5zbWFsbC10eXBle1xuICBmb250LXdlaWdodDogJGJvbGQ7XG4gIG1hcmdpbi1ib3R0b206IG1zKDIpO1xuICBmb250LXNpemU6IG1zKC0xKTtcbn1cblxuLmhpZ2hsaWdodC10eXBle1xuICAvLyBmb250LXdlaWdodDogJGJvbGQ7XG59XG5cbi5oaWdobGlnaHQtdHlwZS1jZW50ZXJlZHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBsaW5lLWhlaWdodDogbXMoMSk7XG4gIGZvbnQtc2l6ZTogbXMoMyk7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICBmb250LXNpemU6IG1zKDQpO1xuICB9XG59XG5cbi5oaWdobGlnaHQtdHlwZS1yZWR7XG4gIGNvbG9yOiAgJGVjaGlkbmEtcmVkO1xuICBmb250LXdlaWdodDogICRsaWdodDtcbn1cblxuLmlubGluZS1pbWFnZS1sZWZ0LFxuLmlubGluZS1pbWFnZS1yaWdodCxcbi5pbmxpbmUtaW1hZ2UtY2VudGVye1xuICBAaW5jbHVkZSBpbWFnZS1zdHlsZTtcbn1cblxuLmlubGluZS1pbWFnZS1sZWZ0e1xuICBAaW5jbHVkZSBpbWFnZS1zdHlsZS1sZWZ0O1xufVxuXG4uaW5saW5lLWltYWdlLXJpZ2h0e1xuICBAaW5jbHVkZSBpbWFnZS1zdHlsZS1yaWdodDtcbn1cblxuLmlubGluZS1pbWFnZS1jZW50ZXJ7XG4gIEBpbmNsdWRlIGltYWdlLXN0eWxlLWNlbnRlcjtcbn1cblxuLmhpZ2hsaWdodC1ib3h7XG4gIEBpbmNsdWRlIGhpZ2hsaWdodC1ib3g7XG59XG5cblxuLy8gYWRkaXRpb25hbFxuLy8gZG91YmxlIHNsYXNoIGlzIHN0eWxpbmcgdGhhdCBpc24ndCBvbiB0aGUgb3JpZ2luYWwgZWNoaWRuYSBzaXRlXG5cbi5kZWZpbml0aW9uIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtd2VpZ2h0OiAkbGlnaHQ7XG4gIC8vIGZvbnQtc2l6ZTogMTAwJTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgZm9udC1zaXplOiBtcygyKTtcbiAgfVxufVxuIiwiLyogb2JqZWN0cy9fdmVuZG9ycy5zY3NzKi9cbi8vIGVjaGlkbmEgb3ZlcnJpZGVzIGZvciB2ZW5kb3IgbGlicmFyaWVzIChlZy4gc2xpY2ssIHRhYmxlc2F3KVxuLy8gZm9sbG93IGRpcmVjdG9yeSBleGFtcGxlcyBhcyBiZWxvd1xuLy8gdXNlIHNhbWUgZmlsZSBuYW1lIGZvciBwYXJ0aWFscyBhcyBleGlzaXRpbmcgdmVuZG9yIHN0eWxlc2hlZXQgZmlsZSBuYW1lXG5cbi8vIEBpbXBvcnQgJ3ZlbmRvcnMvZHJvcGtpY2svZHJvcGtpY2snO1xuLy8gQGltcG9ydCAndmVuZG9ycy9zbGljay5qcy9zbGljay10aGVtZSc7XG4vLyBAaW1wb3J0ICd2ZW5kb3JzL21hdGVyaWFsLWRlc2lnbi1pY29ucy9tYXRlcmlhbC1pY29ucyc7XG4iLCIvKiBfY29tcG9uZW50cy5zY3NzICovXG4vLyBAaW1wb3J0cyBhbGwgU0FTUyBwYXJ0aWFscyBmcm9tIHRoZSAvY29tcG9uZW50cyBmb2xkZXIuXG4vLyBjb250YWlucyBzdHlsZXMgZm9yIGNvbXBvbmVudHMgY29uc3RydWN0ZWQgZnJvbSBvYmplY3RzIGFuZFxuLy8gdGhlaXIgZXh0ZW5zaW9ucywgb3IgZGV0YWlsZWQgcGFnZSBkZXNpZ24uIGVnLiBhIHNpZGViYXIgY2FsbFxuLy8gdG8gYWN0aW9uIHRoYXQgaXMgc3R5bGVkIHNwZWNpZmljYWxseSBmb3IgZXZlbnRzXG5cbi8vIEFkZCBvciByZW1vdmUgcGFydGlhbHMgYXMgbmVjZXNzYXNhcnkuIElmIGEgcGFydGljdWxhciBzZXR1cCBpcyB1c2luZ1xuLy8gdGhlIGNvbXBvbmVudHMvZm9ydW1zLCByZW1vdmUgY29tbWVudCBAaW1wb3J0IGNvbXBvbmVudHMvZm9ydW1zXG4vLyBmcm9tIHRoaXMgZmlsZVxuXG4vLyBJZiBhZGRpbmcgbmV3IGZ1bmN0aW9ubGFpdHkgdGhhdCBpcyBzcGVjaWZpYyB0byB0aGUgcHJvamVjdCwgY3JlYXRlIGEgbmV3XG4vLyBTQVNTIHBhcnRpYWwgd2l0aCB0aGUgYXBwcm9wcmlhdGUgbmFtZSBhbmQgc2F2ZSBpdCBpbiB0aGUgL2NvbXBvbmVudHMgZm9sZGVyXG5cbkBpbXBvcnQgJ2NvbXBvbmVudHMvYmxvY2tzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnJhbmQnO1xuLy8gQGltcG9ydCAnY29tcG9uZW50cy9jb21tZW50cyc7XG4vLyBAaW1wb3J0ICdjb21wb25lbnRzL2ZvcnVtcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3NlYXJjaCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3VzZXInO1xuQGltcG9ydCAnY29tcG9uZW50cy93ZWJmb3Jtcyc7XG4iLCIvKiBjb21wb25lbnRzL19ibG9ja3Muc2NzcyBmaWxlICovXG4vLyBtaXNjZWxsYW5lb3VzIGJsb2NrcyB0aGF0IGFyZSBub3QgdGllZCB0byBhIHBhcnRpY3VsYXIgcGFnZSBvciBzZWN0aW9uXG5cbkBpbXBvcnQgJ2NvbXBvbmVudHMvYmxvY2tzL2Jsb2NrLWJlYW5zJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYmxvY2tzL2Jsb2NrLWRlZmF1bHQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9ibG9ja3MvYmxvY2stZmFxJztcbiIsIi8qIGNvbXBvbmVudHMvYmxvY2tzL19ibG9jay1iZWFucy5zY3NzICovXG4iLCIvKiBjb21wb25lbnRzL2Jsb2Nrcy9fYmxvY2stZGVmYXVsdC5zY3NzICovXG4vLyBkZWZhdWx0IHN0eWxlcyBmb3Igc2Vjb25kYXJ5IHNpZGViYXIgYmxvY2tzLCBlZyBncm91cHMgb2YgYmxvY2tzIHdpdGhcbi8vIHNpbWlsYXIgYm94IHN0eWxlcywgaGVhZGluZyBzdHlsZXNcblxuI3NpZGViYXItc2Vjb25kIC5ibG9ja3tcbiAgbWFyZ2luLWJvdHRvbTogbXMoMik7XG4gICY6bGFzdC1jaGlsZHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG4iLCIvKiBjb21wb25lbnRzL2Jsb2Nrcy9fYmxvY2stZmFxLnNjc3MgKi9cbiNibG9jay1mYXEge1xuICAgIG1hcmdpbi10b3A6IG1zKDIpO1xuICAgIGJvcmRlci10b3A6IG1zKC01KSBzb2xpZCAkdWktYm9yZGVycy1jb2xvcjtcbiAgICBwYWRkaW5nOiBtcyg0KSAwO1xufSIsIi8qIGNvbXBvbmVudHMvX2JyYW5kLnNjc3MgKi9cblxuLy8gYnJhbmRcbiNibG9jay1zaXRlYnJhbmRpbmd7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi10b3A6IG1zKDMpO1xuICAgIG1hcmdpbi1ib3R0b206IG1zKDcpO1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc3RhbmRhcmQtc2NyZWVuKSB7XG4gICAgLy8gQGluY2x1ZGUgbGVhZGVyKDEuMjUpO1xuICB9XG5cbiAgYXtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1heC13aWR0aCAkbWVkaXVtLXNjcmVlbikge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBtYXgtd2lkdGg6IDEwMHB4O1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgfVxuXG4gICAgLy8gQGluY2x1ZGUgdHJhbnNpdGlvbihvcGFjaXR5IC41cyBsaW5lYXIpO1xuICB9XG5cbiAgYTpob3ZlcntcbiAgICBvcGFjaXR5OiAuNjtcbiAgfVxuXG4gIGltZ3tcbiAgICB3aWR0aDogIDYwcHg7XG4gICAgbWF4LXdpZHRoOiAxNDBweDtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYXJyb3ctc2NyZWVuKSB7XG4gICAgICB3aWR0aDogIGF1dG87XG4gICAgfVxuICB9XG59XG4iLCIvKiBjb21wb25lbnRzL19zZWFyY2guc2NzcyAqL1xuXG5AaW1wb3J0ICdjb21wb25lbnRzL3NlYXJjaC9zZWFyY2gtZm9ybSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3NlYXJjaC9zZWFyY2gtcmVzdWx0cyc7XG4vLyBAaW1wb3J0ICdjb21wb25lbnRzL3NlYXJjaC9zb2xyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc2VhcmNoL2Jsb2NrLXNlYXJjaCc7XG4iLCIvKiBjb21wb25lbnRzL3NlYXJjaC9fc2VhcmNoLWZvcm0uc2NzcyAqL1xuXG4uc2VhcmNoLWZvcm17XG4gIG1hcmdpbi1ib3R0b206IG1zKDEpO1xuICBwYWRkaW5nLWJvdHRvbTogbXMoMSk7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkbGlnaHQtZ3JleTtcbn1cblxuLnNlYXJjaC1mb3JtIC5mb3JtLXdyYXBwZXJ7XG5cbiAgbGFiZWx7XG4gICAgZm9udC1zaXplOiBtcygtMSk7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBtYXJnaW4tYm90dG9tOiBtcygtNCk7XG4gIH1cblxuICAuZm9ybS1pdGVtLWtleXN7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiBtcygpO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgI2VkaXQta2V5c3tcbiAgICBAaW5jbHVkZSByZXNldC1mb3JtLWZpZWxkO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICAgIHdpZHRoOiA1MCU7XG4gICAgfVxuICB9XG5cbiAgLmZvcm0tc3VibWl0e1xuICAgIEBpbmNsdWRlIGJ0bjtcbiAgICBAaW5jbHVkZSBidG4tcHJpbWFyeTtcbiAgfVxufVxuIiwiLyogY29tcG9uZW50cy9zZWFyY2gvX3NlYXJjaC1yZXN1bHRzLnNjc3MgKi9cblxuLnNwZWxsaW5nLXN1Z2dlc3Rpb25ze1xuICBtYXJnaW4tYm90dG9tOiBtcygxKTtcbiAgZGwsZHQsZGR7XG4gICAgbWFyZ2luOiAwO1xuICB9XG59XG5cbi5zZWFyY2gtcmVzdWx0c3tcbiAgQGluY2x1ZGUgcmVzZXQ7XG4gIEBpbmNsdWRlIG5vLWJ1bGxldHM7XG5cbiAgLnRpdGxle1xuXG4gIH1cbiAgLnNlYXJjaC1zbmlwcGV0LWluZm97XG4gICAgQGluY2x1ZGUgcmVzZXQ7XG4gIH1cblxuICAvLyAuc2VhcmNoLXNuaXBwZXQsXG4gIC8vIC5zZWFyY2gtaW5mb3tcblxuICAvLyB9XG5cbiAgLnNlYXJjaC1pbmZve1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAuc2VhcmNoLXNuaXBwZXR7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuXG4gIC5zZWFyY2gtcmVzdWx0e1xuICAgIG1hcmdpbi1ib3R0b206IG1zKDMpO1xuICAgIHBhZGRpbmctYm90dG9tOiBtcygzKTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGxpZ2h0LWdyZXk7XG4gIH1cbn1cbiIsIi8qIGNvbXBvbmVudHMvc2VhcmNoL19ibG9jay1zZWFyY2guc2NzcyAqL1xuXG4uYmxvY2stc2VhcmNoe1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFycm93LXNjcmVlbikge1xuICAgIEBpbmNsdWRlIGZsb2F0LXNwYW4oNiwnbGFzdCcpO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWVkaXVtLXNjcmVlbikge1xuICAgIEBpbmNsdWRlIGZsb2F0LXNwYW4oNCwnbGFzdCcpO1xuICB9XG5cbiAgaDJ7XG4gICAgQGluY2x1ZGUgc3F1aXNoLXRleHQ7XG4gIH1cblxuICAvLyAuZm9ybS1zdWJtaXR7XG5cbiAgLy8gfVxuXG4gIC8vIC5mb3JtLXNlYXJjaHtcblxuICAvLyB9XG59XG4iLCIvKiBjb21wb25lbnRzL191c2VyLnNjc3MgKi9cblxuQGltcG9ydCAnY29tcG9uZW50cy91c2VyL3VzZXItbG9naW4nO1xuLy8gQGltcG9ydCAnY29tcG9uZW50cy91c2VyL3VzZXItcHJvZmlsZSc7XG4iLCIvKiBjb21wb25lbnRzL3VzZXIvX3VzZXItbG9naW4uc2NzcyAqL1xuXG4vLyAubm90LWxvZ2dlZC1pbi5wYWdlLXVzZXItbG9naW57XG4ubm90LWxvZ2dlZC1pbi5wYWdlLXVzZXJ7XG4gICN1c2VyLWxvZ2lue1xuICAgIGxhYmVse1xuICAgICAgZm9udC1zaXplOiBtcygtMSk7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgbWFyZ2luLWJvdHRvbTogbXMoLTQpO1xuICAgIH1cblxuICAgIC5mb3JtLXRleHR7XG4gICAgICBAaW5jbHVkZSByZXNldC1mb3JtLWZpZWxkO1xuICAgICAgYmFja2dyb3VuZDogJGxpZ2h0LWdyZXk7XG4gICAgICBwYWRkaW5nOiAgbXMoLTMpO1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWVkaXVtLXNjcmVlbikge1xuICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgfVxuICAgICAgLy8gJjpmb2N1c3tcblxuICAgICAgLy8gfVxuICAgIH1cblxuICAgIC5mb3JtLXN1Ym1pdHtcbiAgICAgIEBpbmNsdWRlIGJ0bjtcbiAgICAgIEBpbmNsdWRlIGJ0bi1wcmltYXJ5O1xuICAgIH1cbiAgfVxufVxuIiwiLyogY29tcG9uZW50cy9fd2ViZm9ybS5zY3NzICovXG5cbi5ub2RlLXdlYmZvcm17XG4gIGxhYmVse1xuICAgIGZvbnQtc2l6ZTogbXMoLTEpO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbWFyZ2luLWJvdHRvbTogbXMoLTQpO1xuICB9XG4gIC5mb3JtLXRleHQsXG4gIC5mb3JtLXRleHRhcmVhe1xuICAgIEBpbmNsdWRlIHJlc2V0LWZvcm0tZmllbGQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWVkaXVtLXNjcmVlbikge1xuICAgICAgd2lkdGg6IDUwJTtcbiAgICB9XG4gICAgYmFja2dyb3VuZDogJGxpZ2h0LWdyZXk7XG4gICAgcGFkZGluZzogIG1zKC0zKTtcbiAgfVxuXG4gIC5mb3JtLXNlbGVjdHtcbiAgICBAaW5jbHVkZSByZXNldC1mb3JtLWZpZWxkO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICAgIHdpZHRoOiA1MCU7XG4gICAgfVxuICB9XG5cbiAgLmJ1dHRvbi1wcmltYXJ5e1xuICAgIEBpbmNsdWRlIGJ0bjtcbiAgICBAaW5jbHVkZSBidG4tcHJpbWFyeTtcbiAgfVxufVxuIiwiLyogc2VjdGlvbnMuc2NzcyAqL1xuLy8gQGltcG9ydHMgYWxsIFNBU1MgcGFydGlhbHMgZnJvbSB0aGUgL3NlY3Rpb25zIGZvbGRlci5cbi8vIGNvbnRhaW5zIHN0eWxlcyBmb3IgbWFpbiBzZWN0aW9ucyBvZiBhIHNpdGUsIGVnLiB0aGUgbmV3cyBvclxuLy8gZXZlbnRzIHNlY3Rpb24uIGNhbiBjb250YWluIHNwZWNpZmljIGNvbXBvbmVudHMgdW5pcXVlIHRvIHRoYXQgc2VjdGlvblxuXG4vLyBJZiBhZGRpbmcgbmV3IGZ1bmN0aW9ubGFpdHkgdGhhdCBpcyBzcGVjaWZpYyB0byB0aGUgcHJvamVjdCwgY3JlYXRlIGEgbmV3XG4vLyBTQVNTIHBhcnRpYWwgd2l0aCB0aGUgYXBwcm9wcmlhdGUgbmFtZSBhbmQgc2F2ZSBpdCBpbiB0aGUgL3NlY3Rpb25zIGZvbGRlci5cbi8vIGVnLiBzZWN0aW9ucy9tZW1iZXJzXG5cbi8vIEBpbXBvcnQgJ3NlY3Rpb25zL2Jsb2cnO1xuLy8gQGltcG9ydCAnc2VjdGlvbnMvZXZlbnRzJztcbi8vIEBpbXBvcnQgJ3NlY3Rpb25zL25ld3MnO1xuQGltcG9ydCAnc2VjdGlvbnMvcGFnZSc7XG5AaW1wb3J0ICdzZWN0aW9ucy9jYXNlLXN0dWR5JztcbkBpbXBvcnQgJ3NlY3Rpb25zL2xhbmRpbmctcGFnZSc7XG5AaW1wb3J0ICdzZWN0aW9ucy9ibG9nJztcbkBpbXBvcnQgJ3NlY3Rpb25zL2RydXBhbC10cmFpbmluZyc7XG4iLCIvKiBzZWN0aW9ucy9fcGFnZS5zY3NzICovXG4vLyBhbnl0aGluZyBiYXNpYyBwYWdlIHJlbGF0ZWQgdGhhdCBkb2Ugbm90IGxpdmUgaW4gYSBzZWN0aW9uIHNob3VsZCBnbyBoZXJlXG5cbkBpbXBvcnQgJ3NlY3Rpb25zL3BhZ2Uvbm9kZS1wYWdlJztcbkBpbXBvcnQgJ3NlY3Rpb25zL3BhZ2UvbWFuaWZlc3RvLXBhZ2UnO1xuQGltcG9ydCAnc2VjdGlvbnMvcGFnZS90ZWFtLXBhZ2UnO1xuQGltcG9ydCAnc2VjdGlvbnMvcGFnZS9kcnVwYWwtcGFnZSc7XG5AaW1wb3J0ICdzZWN0aW9ucy9wYWdlL2Nvbm5lY3QtcGFnZSc7XG5AaW1wb3J0ICdzZWN0aW9ucy9wYWdlL2hvbWUtcGFnZSc7XG5AaW1wb3J0ICdzZWN0aW9ucy9wYWdlL3dpcGhlLXBhZ2UnO1xuQGltcG9ydCAnc2VjdGlvbnMvcGFnZS9jYXJlZXJzLXBhZ2UnOyIsIi8qIHNlY3Rpb25zL3BhZ2UvX2Jhc2ljLXBhZ2Uuc2NzcyAqL1xuLy8gY29udGFpbnMgbm9kZSBzcGVjaWZpYyBzdHlsZXMgdG8gYmFzaWMgcGFnZVxuXG4vLyAubm9kZS10eXBlLXBhZ2V7XG5cbi8vIH1cbi5ub2RlLS10eXBlLXBhZ2V7XG4gIC5wYWdlLXRpdGxlIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzdGFuZGFyZC1zY3JlZW4pIHtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IHRvcCBsZWZ0O1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogMTEyNXB4IDIyOXB4O1xuICAgIH1cbiAgfVxufVxuXG4ubm9kZS0tdHlwZS1wYWdlICNtYWluIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIHBhZGRpbmc6IG1zKC0xKSBtcygzKSBtcygzKSBtcygzKTtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFycm93LXNjcmVlbikge1xuICAgIHBhZGRpbmc6IG1zKDMpIG1zKDUpO1xuICB9XG5cbiAgLmNvbm5lY3Qtd2l0aC11cy1tZXNzYWdle1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIGF7XG4gICAgICBtYXJnaW4tdG9wOiBtcygtMik7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgfVxuICB9XG59XG5cbi8vKysrKysgUGFkZGluZyBmb3IgbGF5b3V0IGJ1aWxkZXIgcGFnZXNcbi5ub2RlLS10eXBlLWxhbmRpbmctcGFnZSAjbWFpbiB7XG4gIHBhZGRpbmc6IDA7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hcnJvdy1zY3JlZW4pIHtcbiAgICBwYWRkaW5nOiBtcygtMSkgbXMoMSk7XG4gIH1cbn1cblxuLm5vZGUtLXR5cGUtbGFuZGluZy1wYWdlIHtcbiAgLy8rKysrKyBNYWtlcyB0aGUgaW1hZ2UgZGlzYXBwZWFyIG9uIG1vYmlsZSBmb3IgTGF5b3V0IFBhZ2VzXG4gIGgxLnBhZ2UtdGl0bGUge1xuICAgIGJhY2tncm91bmQtc2l6ZTogMDtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzdGFuZGFyZC1zY3JlZW4pIHtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgfVxuICB9XG59XG5cblxuLnBhdGgtZnJvbnRwYWdlLm5vZGUtLXR5cGUtcGFnZSAjbWFpbntcbiAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG4gIHBhZGRpbmc6IDA7XG59XG5cblxuLy8gLmZyb250IC5vdXRlci13cmFwcGVye1xuLy8gICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbi8vIH1cbiIsIi8qIHNlY3Rpb25zL3BhZ2UvX21hbmlmZXN0by1wYWdlLnNjc3MgKi9cbi8vIGNvbnRhaW5zIG5vZGUgc3BlY2lmaWMgc3R5bGVzIHRvIG1hbmlmZXN0byBwYWdlXG5cbi8vIC5ub2RlLS10eXBlLXBhZ2V7XG4gIC5jb250ZXh0LW1hbmlmZXN0byxcbiAgLmNvbnRleHQtbm9kZS00e1xuICAgIC5wYWdlLXRpdGxlIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHN0YW5kYXJkLXNjcmVlbikge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoL3NpdGVzL2RlZmF1bHQvZmlsZXMvMjAxNi0wMy9oZWFkZXItbWFuaWZlc3RvLmpwZyk7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICB9XG5cbiAgLmVjaGlkbmEtZXNzZW50aWFse1xuICAgIEBpbmNsdWRlIGRpdmlkZXItbGluZTtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICAuZWNoaWRuYS1zZXJ2aWNlc3tcbiAgICAgIGxpe1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGNvbG9yOiAgJGVjaGlkbmEtcmVkO1xuICAgICAgICBmb250LXdlaWdodDogICRub3JtYWw7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1zKDEpO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNtYWxsLXNjcmVlbikgIHtcbiAgICAgICAgICBmb250LXdlaWdodDogICRsaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNtYWxsLXNjcmVlbikgIHtcbiAgICAgICAgICBAaW5jbHVkZSBmbG9hdC1zcGFuKDYsMSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCR3ZWlyZC1zY3JlZW4pICB7XG4gICAgICAgICAgQGluY2x1ZGUgZmxvYXQtc3BhbigzLDEpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpudGgtY2hpbGQoMm4rMikge1xuICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNtYWxsLXNjcmVlbikgIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZsb2F0LXNwYW4oNiwnbGFzdCcpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCR3ZWlyZC1zY3JlZW4pICB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmbG9hdC1zcGFuKDMsMSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5sYXN0e1xuICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHdlaXJkLXNjcmVlbikgIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZsb2F0LXNwYW4oMywnbGFzdCcpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuc2VydmljZS1pdGVte1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLXRvcDogJHNtYWxsO1xuICAgICAgICBmb250LXNpemU6IG1zKDEpO1xuICAgICAgICBsaW5lLWhlaWdodDogbXMoMSk7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHN0YW5kYXJkLXNjcmVlbikge1xuICAgICAgICAgIG1hcmdpbi10b3A6ICRyZWd1bGFyO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiAgJGV4dHJhLWxpZ2h0O1xuICAgICAgICAgIGZvbnQtc2l6ZTogbXMoMik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAuZm9jdXMtc3BlY2lhbGl0eSxcbiAgICAuc2VydmljZS1saXN0LWhlYWRlcntcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuLmVjaGlkbmEtc2VydmljZXMsIC5lY2hpZG5hLXByb2Nlc3MsIC5lY2hpZG5hLWN1c3RvbWVyc3tcbiAgaW1nIHtcbiAgICBtYXgtd2lkdGg6IDE1MHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlcjogNXB4IHNvbGlkICNjY2NjY2M7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICB9XG4gIC5zdWNjZXNze1xuICAgIGltZ3tcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICB9XG59XG59XG5cbiAgLmJlbGllZnMtc2VjdGlvbntcbiAgICBAaW5jbHVkZSBkaXZpZGVyLWxpbmU7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgLmVjaGlkbmEtYmVsaWVmc3tcbiAgICAgIGxpe1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmctdG9wOiAkcmVndWxhcjtcbiAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXgodHJ1ZSk7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRyZWd1bGFyO1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzbWFsbC1zY3JlZW4pICB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogJGxhcmdlO1xuICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgbGk6bnRoLWNoaWxkKGV2ZW4pIGgze1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYXJyb3ctc2NyZWVuKSB7XG4gICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmxhc3R7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICB9XG5cbiAgICAgIHB7XG4gICAgICAgIGNvbG9yOiB0aW50KGJsYWNrLDM1JSk7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICAgICAgICBmb250LXNpemU6IG1zKCkgKiAxLjEyNTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBsaTpudGgtY2hpbGQoZXZlbikgcHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFycm93LXNjcmVlbikge1xuICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGltZ3tcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc21hbGwtc2NyZWVuKSB7XG4gICAgICAgICAgZmxvYXQ6ICBsZWZ0O1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogJHNtYWxsO1xuICAgICAgICAgIHdpZHRoOiAgMzclO1xuICAgICAgICAgIG1hcmdpbi10b3A6IC0gbXMoMSk7XG4gICAgICAgICAgd2lkdGg6ICBhdXRvO1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogbXMoMSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGxpOm50aC1jaGlsZChldmVuKSBpbWcge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzbWFsbC1zY3JlZW4pICB7XG4gICAgICAgICAgZmxvYXQ6ICByaWdodDtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogIG1zKDEpO1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5wcm9jZXNzLXNlY3Rpb257XG4gICAgQGluY2x1ZGUgZGl2aWRlci1saW5lO1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgIC8vIC5zZWN0aW9uLWhlYWRlciwuc2VjdGlvbi1zdWItaGVhZGVye1xuICAgIC8vIC8vIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAvLyAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hcnJvdy1zY3JlZW4pIHtcbiAgICAvLyAgIC8vIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgLy8gICB9XG4gICAgLy8gfVxuICAgIC5lY2hpZG5hLXByb2Nlc3N7XG4gICAgICBsaXtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgY29sb3I6ICAkZWNoaWRuYS1yZWQ7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1zKDEpO1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYXJyb3ctc2NyZWVuKSB7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgIEBpbmNsdWRlIGZsb2F0LXNwYW4oNCwxKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYubGFzdHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hcnJvdy1zY3JlZW4pIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZsb2F0LXNwYW4oNCwnbGFzdCcpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpbWd7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHdpZHRoOiAyNyU7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hcnJvdy1zY3JlZW4pIHtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLnByb2Nlc3MtbGFiZWx7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjb2xvcjogICRlY2hpZG5hLXJlZDtcbiAgICAgICAgbWFyZ2luLXRvcDogJHNtYWxsO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgZm9udC1zaXplOiBtcygxKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IG1zKDEpO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hcnJvdy1zY3JlZW4pIHtcbiAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gICAgICAgICAgbWFyZ2luLXRvcDogbXMoLTEpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc3RhbmRhcmQtc2NyZWVuKSB7XG4gICAgICAgICAgbWFyZ2luLXRvcDogbXMoMSk7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6ICAkbGlnaHQ7XG4gICAgICAgICAgZm9udC1zaXplOiBtcygyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHNwYW57XG4gICAgICAgICAgLy8gQGV4dGVuZCAlbGFiZWwtZGV0YWlsO1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIGNvbG9yOiB0aW50KGJsYWNrLCAzNSUpO1xuICAgICAgICAgIGZvbnQtc2l6ZTogbXMoLTEpO1xuICAgICAgICAgIGJye1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hcnJvdy1zY3JlZW4pIHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5jdXN0b21lci1zZWN0aW9ue1xuICAgIEBpbmNsdWRlIGRpdmlkZXItbGluZTtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICAuZWNoaWRuYS1jdXN0b21lcnN7XG4gICAgICBkaXZ7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFycm93LXNjcmVlbikge1xuICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICB9XG4gICAgICAgICYuZGVzY3tcbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYXJyb3ctc2NyZWVuKSB7XG4gICAgICAgICAgICB3aWR0aDogMTguNzUlO1xuICAgICAgICAgIC8vIH1cbiAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vICYudGFsZW50e1xuXG4gICAgICAgICAgLy8gfVxuXG4gICAgICAgICAgLy8gJi5lbXBhdGh5e1xuXG4gICAgICAgICAgLy8gfVxuXG4gICAgICAgICAgLy8gJi5leHBlcmllbmNle1xuXG4gICAgICAgICAgLy8gfVxuXG4gICAgICAgICYuc3ltYm9se1xuICAgICAgICAgIG1hcmdpbi10b3A6IG1zKDUpO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1zKDIpO1xuICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hcnJvdy1zY3JlZW4pIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjMzMzMzMzMzMyU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiBtcygyKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgfVxuICAgICAgICAgIGltZ3tcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDMycHg7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAyZW07XG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYXJyb3ctc2NyZWVuKSB7XG4gICAgICAgICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgICAgICAgIG1hcmdpbi10b3A6IDUwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyAmLmFkZGl0aW9ue1xuXG4gICAgICAgICAgLy8gfVxuXG4gICAgICAgICAgLy8gJi5tdWx0aXBseXtcblxuICAgICAgICAgIC8vIH1cblxuICAgICAgICAgIC8vICYuZXF1YWx7XG5cbiAgICAgICAgICAvLyB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmV4cGVyaWVuY2UtbGFiZWx7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tdG9wOiAkc21hbGw7XG4gICAgICAgIGNvbG9yOiAgJGVjaGlkbmEtcmVkO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlO1xuICAgICAgICBmb250LXNpemU6IG1zKDEpO1xuICAgICAgICBsaW5lLWhlaWdodDogbXMoMSk7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFycm93LXNjcmVlbikge1xuICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAkc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzdGFuZGFyZC1zY3JlZW4pIHtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAkcmVndWxhcjtcbiAgICAgICAgICBmb250LXdlaWdodDogICRsaWdodDtcbiAgICAgICAgICBmb250LXNpemU6IG1zKDIpO1xuICAgICAgICB9XG5cbiAgICAgICAgc3BhbntcbiAgICAgICAgICAvLyBAZXh0ZW5kICVsYWJlbC1kZXRhaWw7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgY29sb3I6IHRpbnQoYmxhY2ssIDM1JSk7XG4gICAgICAgICAgZm9udC1zaXplOiBtcygtMSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLnN1Y2Nlc3MtaWNvbntcbiAgICAgICAgQGluY2x1ZGUgc3F1aXNoLXRleHQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmNvcmUtdmFsdWVzIHtcbiAgICBAaW5jbHVkZSBkaXZpZGVyLWxpbmU7XG4gIH1cblxuICAudGVzdGltb25pYWxze1xuXG4gICAgLmNsdXRjaC13aWRnZXRbZGF0YS13aWRnZXQtdHlwZT1cIjNcIl0ge1xuICAgICAgaWZyYW1lIHtcbiAgICAgICAgbWF4LXdpZHRoOiAyODBweDtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDNlbTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuaGlkZGVuLWhlYWRlcntcbiAgICAgIEBpbmNsdWRlIHNxdWlzaC10ZXh0O1xuICAgIH1cbiAgICAudGVzdGltb25pYWwtcXVvdGVze1xuICAgICAgbWFyZ2luLWJvdHRvbTogbXMoMyk7XG4gICAgICAucXVvdGV7XG4gICAgICAgIEBpbmNsdWRlIHNxdWlzaC10ZXh0O1xuICAgICAgfVxuICAgICAgcHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAgIC8vIC5tYW5pZmVzdG8tdmlkZW8ge1xuICAgIC8vICAgd2lkdGg6IDgwdnc7XG4gICAgLy8gICBoZWlnaHQ6IDUwdnc7XG4gICAgLy8gICBtYXJnaW46IDAgYXV0bztcblxuICAgIC8vICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFycm93LXNjcmVlbikge1xuICAgIC8vICAgICB3aWR0aDogMTAwJTtcbiAgICAvLyAgICAgbWF4LXdpZHRoOiA2NjNweDtcbiAgICAvLyAgICAgbWF4LWhlaWdodDogNDAwcHg7XG5cbiAgICAvLyAgIH1cblxuICAgIC8vICAgaDIge1xuICAgIC8vICAgICBkaXNwbGF5OiBub25lO1xuICAgIC8vICAgfVxuXG4gICAgLy8gICBpZnJhbWUge1xuICAgIC8vICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAvLyAgICAgd2lkdGg6IDEwMCU7XG4gICAgLy8gICAgIGhlaWdodDogMTAwJTtcbiAgICAvLyAgIH1cblxuICAgIC8vICAgLmZpZWxkLS1uYW1lLWZpZWxkLXlvdXR1YmUtbGluaywgLnlvdXR1YmUtY29udGFpbmVyIHtcbiAgICAvLyAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIC8vICAgICBtYXJnaW46IDA7XG5cbiAgICAvLyAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc3RhbmRhcmQtc2NyZWVuKSB7XG4gICAgLy8gICAgICAgbWFyZ2luOiBhdXRvO1xuICAgIC8vICAgICB9XG4gICAgLy8gICB9XG4gICAgLy8gfVxufVxuXG4iLCIvLyAudGVhbS1wYWdlIHtcbi8qVGVhbSBQYWdlKi9cbi5jb250ZXh0LXRlYW0sXG4uY29udGV4dC1ub2RlLTUge1xuICAucGFnZS10aXRsZSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc3RhbmRhcmQtc2NyZWVuKSB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoL3NpdGVzL2RlZmF1bHQvZmlsZXMvMjAxNi0wMy9oZWFkZXItdGVhbS5qcGcpO1xuICAgIH1cbiAgfVxuXG4gIHVsLnRlYW0tbGlzdHtcbiAgICBAaW5jbHVkZSBuby1idWxsZXRzO1xuICAgIEBpbmNsdWRlIGNsZWFyZml4KHRydWUpO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgbGl7XG4gICAgICBtYXJnaW4tYm90dG9tOiAzLjEyNSU7XG4gICAgICBAaW5jbHVkZSBmbG9hdC1zcGFuKDEsICRncmlkOiAzLCAkZ3V0dGVyOiAuMSk7XG4gICAgICAmOm50aC1jaGlsZCgzbiszKXtcbiAgICAgICAgQGluY2x1ZGUgZmxvYXQtc3BhbigxLCAnbGFzdCcsICRncmlkOiAzLCAkZ3V0dGVyOiAuMSk7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hcnJvdy1zY3JlZW4pIHtcbiAgICAgICAgQGluY2x1ZGUgZmxvYXQtc3BhbigxLCAkZ3JpZDogNSwgJGd1dHRlcjogLjEpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjg1MTg1JTtcbiAgICAgICAgJjpudGgtY2hpbGQoM24rMyl7XG4gICAgICAgICAgQGluY2x1ZGUgZmxvYXQtc3BhbigxLCAkZ3JpZDogNSwgJGd1dHRlcjogLjEpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpudGgtY2hpbGQoNW4rNSl7XG4gICAgICAgICAgQGluY2x1ZGUgZmxvYXQtc3BhbigxLCAnbGFzdCcsICRncmlkOiA1LCAkZ3V0dGVyOiAuMSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgaW1ne1xuICAgICAgZmxvYXQ6ICBsZWZ0O1xuICAgICAgd2lkdGg6ICAxMDAlO1xuICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsMCwwKTtcbiAgICB9XG4gICAgc3Bhbi50ZWFtLW1lbWJlcntcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8qIHNlY3Rpb25zL3BhZ2UvX2RydXBhbC1wYWdlLnNjc3MgKi9cbi8vIGNvbnRhaW5zIG5vZGUgc3BlY2lmaWMgc3R5bGVzIHRvIGRydXBhbCA4IHBhZ2Vcbi5jb250ZXh0LWRydXBhbC04LFxuLmNvbnRleHQtbm9kZS0xODQge1xuICAub2ZmZXJzLXNlY3Rpb25ze1xuICAgIGJvcmRlci10b3A6IG1zKC01KSBzb2xpZCAkdWktYm9yZGVycy1jb2xvcjtcbiAgICBib3JkZXItYm90dG9tOiBtcygtNSkgc29saWQgJHVpLWJvcmRlcnMtY29sb3I7XG4gICAgcGFkZGluZzogbXMoNCkgMDtcbiAgICBtYXJnaW46IG1zKDUpIDA7XG4gIH1cbn1cblxuLmNvbnRleHQtZHJ1cGFsLTgsXG4uY29udGV4dC1ub2RlLTE4NCxcbi5jb250ZXh0LW5vZGUtMjIwLFxuLmNvbnRleHQtY2FyZWVyc1xuIHtcbiAgLnBhZ2UtdGl0bGUge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHN0YW5kYXJkLXNjcmVlbikge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC9zaXRlcy9kZWZhdWx0L2ZpbGVzLzIwMTYtMDMvaGVhZGVyLXdvcmsuanBnKTtcbiAgICB9XG4gIH1cbn0iLCIvKiBzZWN0aW9ucy9wYWdlL19jb25uZWN0LXBhZ2Uuc2NzcyAqL1xuLy8gY29udGFpbnMgbm9kZSBzcGVjaWZpYyBzdHlsZXMgdG8gY29ubmVjdCBwYWdlXG4uY29udGV4dC1jb25uZWN0LFxuLmNvbnRleHQtbm9kZS0xODUge1xuICAucGFnZS10aXRsZSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc3RhbmRhcmQtc2NyZWVuKSB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoL3NpdGVzL2RlZmF1bHQvZmlsZXMvMjAxNi0wMy9oZWFkZXItd29yay5qcGcpO1xuICAgIH1cbiAgfVxuXG4gIC5jb25uZWN0LWRldGFpbHN7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIEBpbmNsdWRlIGNsZWFyZml4KHRydWUpO1xuICAgIG1hcmdpbi1ib3R0b206IG1zKDIpO1xuICAgIHB7XG4gICAgICBmb250LXNpemU6IG1zKCk7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuICAgIHVse1xuICAgICAgQGluY2x1ZGUgbm8tYnVsbGV0cztcbiAgICB9XG4gICAgaDJ7XG4gICAgICBmb250LXNpemU6IG1zKDIpO1xuICAgICAgZm9udC13ZWlnaHQ6ICAkbWVkaXVtO1xuICAgIH1cbiAgfVxuXG4gIC5jb250YWN0LWRldGFpbHN7XG4gICAgbWFyZ2luLWJvdHRvbTogbXMoMSk7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWVkaXVtLXNjcmVlbikge1xuICAgICAgQGluY2x1ZGUgZmxvYXQtc3Bhbig2LDEpO1xuICAgIH1cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzdGFuZGFyZC1zY3JlZW4pIHtcbiAgICAgIEBpbmNsdWRlIGZsb2F0LXNwYW4oNCwxKTtcbiAgICB9XG4gIH1cblxuICAubG9jYXRpb24tZGV0YWlsc3tcbiAgICBtYXJnaW4tYm90dG9tOiBtcygxKTtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgICBAaW5jbHVkZSBmbG9hdC1zcGFuKDYsJ2xhc3QnKTtcbiAgICAgIHBhZGRpbmctdG9wOiBtcyg1KTtcbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc3RhbmRhcmQtc2NyZWVuKSB7XG4gICAgICBAaW5jbHVkZSBmbG9hdC1zcGFuKDQsMSk7XG4gICAgfVxuICAgIHB7XG4gICAgICBtYXJnaW4tdG9wOiAxZW07XG4gICAgICAmOmZpcnN0LWNoaWxke1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5zb2NpYWwtbWVkaWF7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWVkaXVtLXNjcmVlbikge1xuICAgICAgQGluY2x1ZGUgZmxvYXQtc3BhbigxMiwxKTtcbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc3RhbmRhcmQtc2NyZWVuKSB7XG4gICAgICBAaW5jbHVkZSBmbG9hdC1zcGFuKDQsJ2xhc3QnKTtcbiAgICB9XG4gICAgbGl7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgLy8gQGluY2x1ZGUgc3F1aXNoLXRleHQ7XG4gICAgfVxuICAgIGF7XG4gICAgICBAaW5jbHVkZSBzcXVpc2gtdGV4dDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZmxvYXQ6ICBsZWZ0O1xuICAgICAgd2lkdGg6IDUxcHg7XG4gICAgICBoZWlnaHQ6IDUwcHg7XG4gICAgICBtYXJnaW4tcmlnaHQ6IGd1dHRlci1zcGFuKCk7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgJjpob3ZlcntcbiAgICAgICAgb3BhY2l0eTogLjY7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmZhY2Vib29rLWJ1dHRvbntcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vLi4vaW1nL3NvY2lhbC9kZS1pY29uc19mYWNlYm9vay5wbmcnKTtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIH1cblxuICAgIC50d2l0dGVyLWJ1dHRvbntcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vLi4vaW1nL3NvY2lhbC9kZS1pY29uc190d2l0dGVyLnBuZycpO1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgfVxuXG4gICAgLmxpbmtlZGluLWJ1dHRvbntcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vLi4vaW1nL3NvY2lhbC9kZS1pY29uc19saW5rZWRpbi5wbmcnKTtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIH1cbiAgfVxuXG4gIC5tYXB7XG4gICAgLy8gZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGJvcmRlci10b3A6IG1zKC01KSBzb2xpZCAkdWktYm9yZGVycy1jb2xvcjtcbiAgICBwYWRkaW5nLXRvcDogbXMoNCk7XG4gICAgLy8gbWFyZ2luLXRvcDogbXMoNSk7XG4gICAgaW1ne1xuICAgICAgd2lkdGg6ICAxMDAlO1xuICAgICAgJjpob3ZlcntcbiAgICAgICAgb3BhY2l0eTogLjY7XG4gICAgICB9XG4gICAgfVxuICAgIHB7XG4gICAgICBmb250LXNpemU6IG1zKDEpO1xuICAgIH1cbiAgfVxufVxuIiwiLnBhdGgtZnJvbnRwYWdlIGFydGljbGV7XG4gIHBhZGRpbmc6IDAgbXMoMik7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hcnJvdy1zY3JlZW4pIHtcbiAgICBwYWRkaW5nOiAwIG1zKDYpO1xuICB9XG59XG5cbiNzbWFsbHNjcmVlbi1tZXNzYWdle1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIC5tZXNzYWdle1xuICAgIHBhZGRpbmctdG9wOiBtcygtMSk7XG4gICAgbWFyZ2luLWJvdHRvbTogbXMoLTMpO1xuICAgIGNvbG9yOiAgd2hpdGU7XG4gICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG4gICAgZm9udC1zaXplOiBtcygzKTtcbiAgICBmb250LXdlaWdodDogJG1lZGl1bTtcbiAgfVxuICBAaW5jbHVkZSBicmVha3BvaW50KCRzdGFuZGFyZC1zY3JlZW4pIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbiN0dWJ1bGFyLWNvbnRhaW5lcntcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRzdGFuZGFyZC1zY3JlZW4pIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG59XG5cbiogeyBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG4udmlkZW8tYmFja2dyb3VuZCB7XG4gIGJhY2tncm91bmQ6ICMwMDA7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAtOTk7XG59XG5cbi52aWRlby1mb3JlZ3JvdW5kLFxuLnZpZGVvLWJhY2tncm91bmQgaWZyYW1lIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4jdmlkdG9wLWNvbnRlbnQge1xuICB0b3A6IDA7XG4gIGNvbG9yOiAjZmZmO1xufVxuXG4udmlkLWluZm8ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIHdpZHRoOiAzMyU7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4zKTtcbiAgY29sb3I6ICNmZmY7XG4gIHBhZGRpbmc6IDFyZW07XG4gIGZvbnQtZmFtaWx5OiBBdmVuaXIsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbn1cblxuLnZpZC1pbmZvIGgxIHtcbiAgZm9udC1zaXplOiAycmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICBtYXJnaW4tdG9wOiAwO1xuICBsaW5lLWhlaWdodDogMS4yO1xufVxuXG4udmlkLWluZm8gYSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gIHRyYW5zaXRpb246IC42cyBiYWNrZ3JvdW5kO1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICBtYXJnaW46IDFyZW0gYXV0bztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG5AbWVkaWEgKG1pbi1hc3BlY3QtcmF0aW86IDE2LzkpIHtcbiAgLnZpZGVvLWZvcmVncm91bmQge1xuICAgIGhlaWdodDogMzAwJTtcbiAgICB0b3A6IC0xMDAlO1xuICB9XG59XG5cbkBtZWRpYSAobWF4LWFzcGVjdC1yYXRpbzogMTYvOSkge1xuICAudmlkZW8tZm9yZWdyb3VuZCB7XG4gICAgd2lkdGg6IDMwMCU7XG4gICAgbGVmdDogLTEwMCU7XG4gIH1cbn1cblxuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgLnZpZC1pbmZvIHtcbiAgICB3aWR0aDogNTAlO1xuICAgIHBhZGRpbmc6IC41cmVtO1xuICB9XG4gIC52aWQtaW5mbyBoMSB7XG4gICAgbWFyZ2luLWJvdHRvbTogLjJyZW07XG4gIH1cbn1cblxuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogNTAwcHgpIHtcbiAgLnZpZC1pbmZvIC5hY3JvbnltIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59IiwiLyogc2VjdGlvbnMvcGFnZS9fd2lwaGUtcGFnZS5zY3NzICovXG4vLyBjb250YWlucyBub2RlIHNwZWNpZmljIHN0eWxlcyB0byB3aXBoZSBwYWdlXG5cbiAgLm9mZmVycy1zZWN0aW9uc3tcbiAgICBib3JkZXItdG9wOiBtcygtNSkgc29saWQgJHVpLWJvcmRlcnMtY29sb3I7XG4gICAgYm9yZGVyLWJvdHRvbTogbXMoLTUpIHNvbGlkICR1aS1ib3JkZXJzLWNvbG9yO1xuICAgIHBhZGRpbmc6IG1zKDQpIDA7XG4gICAgbWFyZ2luOiBtcyg1KSAwO1xuICB9XG5cbiIsIi8qIHNlY3Rpb25zL3BhZ2UvX2NhcmVlci1wYWdlLnNjc3MgKi9cbi8vIGNvbnRhaW5zIG5vZGUgc3BlY2lmaWMgc3R5bGVzIHRvIGNhcmVlciBwYWdlXG4uY29udGV4dC1ub2RlLTIyMCxcbi5jb250ZXh0LWNhcmVlcnN7XG5cdC5wb3N0aW5nc3tcblx0ICAgIC8vIGJvcmRlci10b3A6IG1zKC01KSBzb2xpZCAkdWktYm9yZGVycy1jb2xvcjtcblx0ICAgIGJvcmRlci1ib3R0b206IG1zKC01KSBzb2xpZCAkdWktYm9yZGVycy1jb2xvcjtcblx0ICAgIHBhZGRpbmc6IG1zKDQpIDA7XG5cdCAgICBtYXJnaW46IG1zKDUpIDA7XG4gIFx0fVxufVxuIiwiLyogc2VjdGlvbnMvX2Nhc2Utc3R1ZGllcy5zY3NzICovXG4vLyBhbnl0aGluZyBiYXNpYyBwYWdlIHJlbGF0ZWQgdGhhdCBkb2Ugbm90IGxpdmUgaW4gYSBzZWN0aW9uIHNob3VsZCBnbyBoZXJlXG5cbkBpbXBvcnQgJ3NlY3Rpb25zL2Nhc2Vfc3R1ZGllcy9ibG9jay12aWV3cy1ibG9ja2Nhc2Utc3R1ZGllcy1ibG9jay0xJztcbkBpbXBvcnQgJ3NlY3Rpb25zL2Nhc2Vfc3R1ZGllcy9ibG9jay12aWV3cy1ibG9ja3JlbGF0ZWQtY2FzZS1zdHVkaWVzLWJsb2NrLTEnO1xuQGltcG9ydCAnc2VjdGlvbnMvY2FzZV9zdHVkaWVzL25vZGUtLXR5cGUtY2FzZS1zdHVkeSc7XG5AaW1wb3J0ICdzZWN0aW9ucy9jYXNlX3N0dWRpZXMvY29udGV4dC13b3JrJztcbiIsIi8vIHNlY3Rpb25zL2Nhc2Utc3R1ZGllcy9fYmxvY2stdmlld3MtYmxvY2tjYXNlLXN0dWRpZXMtYmxvY2stMS5zY3NzXG5cbi5ibG9jay12aWV3cy1ibG9ja2Nhc2Utc3R1ZGllcy1ibG9jay0xe1xuICBAaW5jbHVkZSBjbGVhcmZpeCh0cnVlKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIC8vIHBhZGRpbmc6ICAkc21hbGwgJHJlZ3VsYXIgJHNtYWxsICRyZWd1bGFyO1xuICAvLyBAaW5jbHVkZSBicmVha3BvaW50KCRuYXJyb3ctc2NyZWVuKSB7XG4gIC8vICAgcGFkZGluZy10b3A6ICRyZWd1bGFyO1xuICAvLyAgIHBhZGRpbmctbGVmdDogJHhsYXJnZTtcbiAgLy8gICBwYWRkaW5nLXJpZ2h0OiAkeGxhcmdlO1xuICAvLyB9XG5cbiAgdWx7XG4gICAgQGluY2x1ZGUgbm8tYnVsbGV0cztcbiAgICBAaW5jbHVkZSByZXNldDtcbiAgfVxuXG4gIC52aWV3cy1yb3d7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogc2hhZGUod2hpdGUsNSUpO1xuICAgIHBhZGRpbmc6IG1zKC0yKTtcbiAgICBtYXJnaW4tYm90dG9tOiBndXR0ZXItc3BhbigzKTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNtYWxsLXNjcmVlbiAkc3RhbmRhcmQtc2NyZWVuKSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiBndXR0ZXItc3BhbigpO1xuICAgICAgQGluY2x1ZGUgZmxvYXQtc3Bhbig2LDEpO1xuICAgICAgJjpudGgtY2hpbGQoMm4rMil7XG4gICAgICAgIEBpbmNsdWRlIGZsb2F0LXNwYW4oNiwnbGFzdCcpO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHN0YW5kYXJkLXNjcmVlbikge1xuICAgICAgbWFyZ2luLWJvdHRvbTogZ3V0dGVyLXNwYW4oKTtcbiAgICAgIEBpbmNsdWRlIGZsb2F0LXNwYW4oNCwxKTtcbiAgICAgICY6bnRoLWNoaWxkKDNuKzMpe1xuICAgICAgICBAaW5jbHVkZSBmbG9hdC1zcGFuKDQsJ2xhc3QnKTtcbiAgICAgIH1cbiAgICB9XG4gICAgJjpob3ZlcntcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRlY2hpZG5hLXJlZDtcbiAgICB9XG4gIH1cblxuICBpbWd7XG4gICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgICB3aWR0aDogIDEwMCU7XG4gIH1cbiAgLnZpZXdzLWZpZWxkLXRpdGxle1xuICAgIEBpbmNsdWRlIHNxdWlzaC10ZXh0O1xuICB9XG5cbiAgLy8gU3R5bGluZyBmb3IgdGhlIGZpbHRlciBzZWN0aW9uXG4gIHNlbGVjdCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250OiBpbmhlcml0O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjVlbTtcbiAgICBwYWRkaW5nOiAwLjVlbSAzLjVlbSAwLjVlbSAxZW07XG4gICAgbWFyZ2luOiAwOyAgICAgIFxuICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuXG4gICAgYmFja2dyb3VuZC1pbWFnZTpcbiAgICAgIGxpbmVhci1ncmFkaWVudCg0NWRlZywgdHJhbnNwYXJlbnQgNTAlLCBncmF5IDUwJSksXG4gICAgICBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCBncmF5IDUwJSwgdHJhbnNwYXJlbnQgNTAlKSxcbiAgICAgIGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgI2NjYywgI2NjYyk7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjpcbiAgICAgIGNhbGMoMTAwJSAtIDIwcHgpIGNhbGMoMWVtICsgMnB4KSxcbiAgICAgIGNhbGMoMTAwJSAtIDE1cHgpIGNhbGMoMWVtICsgMnB4KSxcbiAgICAgIGNhbGMoMTAwJSAtIDIuNWVtKSAwLjVlbTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6XG4gICAgICA1cHggNXB4LFxuICAgICAgNXB4IDVweCxcbiAgICAgIDFweCAxLjVlbTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICB9XG5cbiAgLmZvcm0tLWlubGluZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMWVtO1xuXG4gICAgbGFiZWwge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVlbTtcbiAgICB9XG5cbiAgICAuanMtZm9ybS1pdGVtIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cbiAgfVxuXG4gIC5mb3JtLWFjdGlvbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuXG4gICAgaW5wdXQge1xuICAgICAgcGFkZGluZzogMC41ZW0gMS4yNWVtO1xuICAgIH1cbiAgfVxufVxuIiwiLmJsb2NrLXZpZXdzLWJsb2NrcmVsYXRlZC1jYXNlLXN0dWRpZXMtYmxvY2stMSB7XG4gIHBhZGRpbmc6IDNlbSAzZW07XG4gIGNsZWFyOiBib3RoO1xuXG4gIHVsIHtcbiAgICBAaW5jbHVkZSBuby1idWxsZXRzO1xuICAgIEBpbmNsdWRlIHJlc2V0O1xuICB9XG5cbiAgLnZpZXdzLXJvd3tcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzaGFkZSh3aGl0ZSw1JSk7XG4gICAgcGFkZGluZzogbXMoLTIpO1xuICAgIG1hcmdpbi1ib3R0b206IGd1dHRlci1zcGFuKDMpO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc21hbGwtc2NyZWVuICRzdGFuZGFyZC1zY3JlZW4pIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IGd1dHRlci1zcGFuKCk7XG4gICAgICBAaW5jbHVkZSBmbG9hdC1zcGFuKDYsMSk7XG4gICAgICAmOm50aC1jaGlsZCgybisyKXtcbiAgICAgICAgQGluY2x1ZGUgZmxvYXQtc3Bhbig2LCdsYXN0Jyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc3RhbmRhcmQtc2NyZWVuKSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiBndXR0ZXItc3BhbigpO1xuICAgICAgQGluY2x1ZGUgZmxvYXQtc3Bhbig0LDEpO1xuICAgICAgJjpudGgtY2hpbGQoM24rMyl7XG4gICAgICAgIEBpbmNsdWRlIGZsb2F0LXNwYW4oNCwnbGFzdCcpO1xuICAgICAgfVxuICAgIH1cbiAgICAmOmhvdmVye1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGVjaGlkbmEtcmVkO1xuICAgIH1cbiAgfVxuXG4gIGltZ3tcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICAgIHdpZHRoOiAgMTAwJTtcbiAgfVxuICAudmlld3MtZmllbGQtdGl0bGV7XG4gICAgQGluY2x1ZGUgc3F1aXNoLXRleHQ7XG4gIH1cbn1cbiIsIi5ub2RlLS10eXBlLWNhc2Utc3R1ZHl7XG4gICNwYWdlLXRpdGxlIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzdGFuZGFyZC1zY3JlZW4pIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgvc2l0ZXMvZGVmYXVsdC9maWxlcy8yMDE2LTAzL2hlYWRlci13b3JrLmpwZyk7XG4gICAgfVxuICB9XG5cbiAgLmNhc2Utc3R1ZHktaW5mb3tcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICBwYWRkaW5nOiBtcygtMSkgbXMoMykgbXMoMykgbXMoMyk7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFycm93LXNjcmVlbikge1xuICAgICAgcGFkZGluZzogbXMoMykgbXMoNSk7XG4gICAgfVxuICB9XG5cbiAgLmZpZWxkLS1uYW1lLWJvZHl7XG4gICAgcHtcbiAgICAgIGZvbnQtc2l6ZTogbXMoKTtcbiAgICB9XG4gIH1cblxuICAudHJ1bmNhdG9yLWxpbmt7XG4gICAgY29sb3I6ICRlY2hpZG5hLXJlZDtcbiAgICBmb250LXdlaWdodDogJG1lZGl1bTtcbiAgfVxuXG4gIC5jYXNlLXN0dWR5LWRldGFpbHN7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc3RhbmRhcmQtc2NyZWVuKSB7XG4gICAgICBAaW5jbHVkZSBmbG9hdC1zcGFuKDcsMSk7XG4gICAgfVxuICB9XG5cbiAgLmZpZWxkLS1uYW1lLWZpZWxkLXRlY2huaWNhbC1mZWF0dXJlc3tcbiAgICBib3JkZXItY29sb3I6IHRpbnQoYmxhY2ssODAlKTtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeCh0cnVlKTtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1heC13aWR0aCAkc3RhbmRhcmQtc2NyZWVuKSB7XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHVpLWJvcmRlcnMtY29sb3I7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHVpLWJvcmRlcnMtY29sb3I7XG4gICAgICBwYWRkaW5nOiBtcygyKSAwO1xuICAgICAgbWFyZ2luLWJvdHRvbTogbXMoMik7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc3RhbmRhcmQtc2NyZWVuKSB7XG4gICAgICBAaW5jbHVkZSBmbG9hdC1zcGFuKDQsJ2xhc3QnKTtcbiAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJHVpLWJvcmRlcnMtY29sb3I7XG4gICAgICBwYWRkaW5nLWxlZnQ6IG1zKDIpO1xuICAgIH1cblxuICAgIC5maWVsZF9faXRlbXtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hcnJvdy1zY3JlZW4pIHtcbiAgICAgICAgZm9udC1zaXplOiBtcygtMSk7XG4gICAgICB9XG4gICAgICBsaW5lLWhlaWdodDogbXMoMSk7XG4gICAgICBtYXJnaW4tYm90dG9tOiBtcygtMSk7XG4gICAgICAmOmxhc3QtY2hpbGR7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5maWVsZF9fbGFiZWx7XG4gICAgICBmb250LXNpemU6IG1zKDEpO1xuICAgICAgZm9udC13ZWlnaHQ6ICAkbWVkaXVtO1xuICAgICAgbWFyZ2luLWJvdHRvbTogbXMoLTIpO1xuICAgIH1cbiAgfVxuXG4gIC5maWVsZC0tbmFtZS1maWVsZC1wcm9qZWN0LXZpc3VhbHtcbiAgICBtYXJnaW4tdG9wOiBtcygyKTtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzdGFuZGFyZC1zY3JlZW4pIHtcbiAgICAgIEBpbmNsdWRlIGZsb2F0LXNwYW4oMTIsMSk7XG4gICAgfVxuXG4gICAgaW1ne1xuICAgICAgd2lkdGg6ICAxMDAlO1xuICAgIH1cbiAgfVxuXG4gIC5maWVsZC0tbmFtZS1maWVsZC13ZWJzaXRlLXVybCB7XG4gICAgbWFyZ2luLWJvdHRvbTogbXMoMik7XG4gICAgYXtcbiAgICAgIGNvbG9yOiAkZWNoaWRuYS1yZWQ7XG4gICAgfVxuICB9XG59XG4iLCIuY29udGV4dC13b3JrLFxuLmNvbnRleHQtbm9kZS0ze1xuICAucGFnZS10aXRsZSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc3RhbmRhcmQtc2NyZWVuKSB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoL3NpdGVzL2RlZmF1bHQvZmlsZXMvMjAxNi0wMy9oZWFkZXItd29yay5qcGcpO1xuICAgIH1cbiAgfVxufVxuIiwiLyogc2VjdGlvbnMvX2xhbmRpbmctcGFnZS5zY3NzICovXG4vLyBhbnl0aGluZyBiYXNpYyBwYWdlIHJlbGF0ZWQgdGhhdCBkb2VzIG5vdCBsaXZlIGluIGEgc2VjdGlvbiBzaG91bGQgZ28gaGVyZVxuXG5AaW1wb3J0ICdzZWN0aW9ucy9sYW5kaW5nX3BhZ2UvX25vZGUtLXR5cGUtbGFuZGluZy1wYWdlJztcbkBpbXBvcnQgJ3NlY3Rpb25zL2xhbmRpbmdfcGFnZS9fbm9kZS0tdHlwZS1sYW5kaW5nLXBhZ2UtaXNsYW5kb3JhJztcbkBpbXBvcnQgJ3NlY3Rpb25zL2xhbmRpbmdfcGFnZS9fbm9kZS0tdHlwZS1sYW5kaW5nLXBhZ2Utd2lwaGUnO1xuQGltcG9ydCAnc2VjdGlvbnMvbGFuZGluZ19wYWdlL19ub2RlLS10eXBlLWxhbmRpbmctcGFnZS1lY2hpZG5ldCc7XG5AaW1wb3J0ICdzZWN0aW9ucy9sYW5kaW5nX3BhZ2UvX25vZGUtLXR5cGUtbGFuZGluZy1wYWdlLWVjaGlkbmEtcHJvZHVjdCc7IiwiLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgTEFORElORyBQQUdFIFNUWUxJTkdcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG5cbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBHRU5FUkFMIFNUWUxFU1xuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLm5vZGUtLXR5cGUtb25lLXBhZ2UgI2hlYWRlciwgLm5vZGUtLXR5cGUtb25lLXBhZ2UgLnJlZ2lvbi0tY29udGVudC1wcmVmaXgsIC5ub2RlX19zdWJtaXR0ZWR7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5ub2RlLS10eXBlLW9uZS1wYWdlIC5sYXlvdXQtY29udGFpbmVye1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAwO1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG4ubm9kZS0tdHlwZS1vbmUtcGFnZSB7XG4gICAgLnBhcmFncmFwaC0tdHlwZS0tY29sdW1uLTEsXG4gICAgLnBhcmFncmFwaC0tdHlwZS0tY29sdW1ucy0yLTMsXG4gICAgLnBhcmFncmFwaC0tdHlwZS0tY29sdW1ucy0yLFxuICAgIC5wYXJhZ3JhcGgtLXR5cGUtLWNvbHVtbnMtMyxcbiAgICAucGFyYWdyYXBoLS10eXBlLS1jb2x1bW5zLTV7XG4gICAgICBtYXgtd2lkdGg6IDk2MHB4O1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzdGFuZGFyZC1zY3JlZW4pIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMWVtICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgICAuZmllbGRfX2l0ZW17XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIH1cbiAgfVxufVxuLm5vZGUtLXR5cGUtb25lLXBhZ2V7XG4gIGgye1xuICAgIGZvbnQtc2l6ZTogMi4zZW07XG4gIH1cbn1cblxuIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAvLyAgR1JJRCBTVFlMSU5HXG4gLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAuZmllbGRfX2l0ZW0gLnBhcmFncmFwaHtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgfVxuICAuZmllbGQtLW5hbWUtZmllbGQtbGFuZGluZy1ib2R5e1xuICAgIG1hcmdpbi10b3A6IDk0cHg7XG4gICAgcGFkZGluZy10b3A6IDUuOGVtO1xuICB9XG5cbiAgLm5vZGUtLXR5cGUtb25lLXBhZ2UgeyAvKkFQUExZIFRIRSBGT0xMT1dJTkcgU1RZTEVTIFRPIE9OTFkgVEhFIE9ORSBQQUdFIE5PREUgVFlQRSovXG4gICAgcCB7XG4gICAgICBmb250LXNpemU6IDFlbTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9XG4gICAgaDJ7XG4gICAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgIH1cbiAgICBoNHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICAgIC5maWVsZC0tbmFtZS1maWVsZC1oZWFkZXIsXG4gICAgLmZpZWxkLS1uYW1lLWZpZWxkLWxhbmRpbmctYm9keSxcbiAgICAuZmllbGQtLW5hbWUtZmllbGQtZm9vdGVyIHsgLypPTkxZIEFQUExZIFRIRSBGT0xMT1dJTkcgU1RZTEVTIElOIFRIRSBPTkUgUEFHRSBTRUNUSU9OUyovXG4gICAgICBtYXJnaW46IDA7XG5cbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIE9ORSBDT0xVTU5cbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICAucGFyYWdyYXBoLS10eXBlLS1jb2x1bW4tMXtcbiAgICB3aWR0aDogOTAlO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICB9XG5cbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBUV08gQ09MVU1OXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC5wYXJhZ3JhcGgtLXR5cGUtLWNvbHVtbnMtMntcbiAgICAuZmllbGQtLW5hbWUtZmllbGQtZmlyc3QtY29sdW1uLCAuZmllbGQtLW5hbWUtZmllbGQtc2Vjb25kLWNvbHVtbiB7XG4gICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgbWFyZ2luOiAxLjVlbSBhdXRvO1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc3RhbmRhcmQtc2NyZWVuKSB7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICB3aWR0aDogNDglO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgICAuZmllbGQtLW5hbWUtZmllbGQtZmlyc3QtY29sdW1ue1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc3RhbmRhcmQtc2NyZWVuKSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMiU7XG4gICAgICB9XG4gICAgfVxuICAgIC5maWVsZF9faXRlbXtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxuXG4gIC5maWVsZC0tbmFtZS1maWVsZC1sYW5kaW5nLWJvZHl7XG4gICAgLmZpZWxkLS1uYW1lLWZpZWxkLWZpcnN0LWNvbHVtbiwgLmZpZWxkLS1uYW1lLWZpZWxkLXNlY29uZC1jb2x1bW57XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG4gICAgLmZpZWxkLS1uYW1lLWZpZWxkLWZpcnN0LWNvbHVtbntcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHN0YW5kYXJkLXNjcmVlbikge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxJTtcbiAgICB9XG4gICAgfVxuICAgIC5maWVsZC0tbmFtZS1maWVsZC1zZWNvbmQtY29sdW1ue1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc3RhbmRhcmQtc2NyZWVuKSB7XG4gICAgICBtYXJnaW4tbGVmdDogMSU7XG4gICAgfVxuICAgIH1cbiAgfVxuXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgMjozIENPTFVNTlxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAucGFyYWdyYXBoLS10eXBlLS1jb2x1bW5zLTItM3tcbiAgICAuZmllbGQtLW5hbWUtZmllbGQtY29sdW1ucy0yLTItMywgLmZpZWxkLS1uYW1lLWZpZWxkLWNvbHVtbnMtMS0zIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG4gICAgLmZpZWxkLS1uYW1lLWZpZWxkLWNvbHVtbnMtMi0yLTN7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHN0YW5kYXJkLXNjcmVlbikge1xuICAgICAgICAgICAgICB3aWR0aDogNjQlO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxJTtcbiAgICAgIH1cbiAgICB9XG4gICAgLmZpZWxkLS1uYW1lLWZpZWxkLWNvbHVtbnMtMS0ze1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzdGFuZGFyZC1zY3JlZW4pIHtcbiAgICAgICAgICAgICAgd2lkdGg6IDMyJTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxJTtcbiAgICAgIH1cbiAgICAgIGgye1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgRklWRSBDT0xVTU5cbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLnBhcmFncmFwaC0tdHlwZS0tY29sdW1ucy01e1xuICAgIHdpZHRoOiA5MCU7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgLmZpZWxkLS1uYW1lLWZpZWxkLWNvbHVtbi0xLTUsXG4gICAgLmZpZWxkLS1uYW1lLWZpZWxkLWNvbHVtbnMtMi01LFxuICAgIC5maWVsZC0tbmFtZS1maWVsZC1jb2x1bW5zLTMtNSxcbiAgICAuZmllbGQtLW5hbWUtZmllbGQtY29sdW1ucy00LTUsXG4gICAgLmZpZWxkLS1uYW1lLWZpZWxkLWNvbHVtbnMtNS01e1xuICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgbWFyZ2luOiAxLjVlbSBhdXRvO1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc3RhbmRhcmQtc2NyZWVuKSB7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICB3aWR0aDogMTglO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgICAuZmllbGQtLW5hbWUtZmllbGQtY29sdW1uLTEtNSxcbiAgICAuZmllbGQtLW5hbWUtZmllbGQtY29sdW1ucy0yLTUsXG4gICAgLmZpZWxkLS1uYW1lLWZpZWxkLWNvbHVtbnMtMy01LFxuICAgIC5maWVsZC0tbmFtZS1maWVsZC1jb2x1bW5zLTQtNXtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHN0YW5kYXJkLXNjcmVlbikge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMiU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBSRVNFVFNcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLmZpZWxkLS1uYW1lLWZpZWxkLWxhbmRpbmctc2VjdGlvbiAuZmllbGRfX2l0ZW0gLmZpZWxkLS1uYW1lLWZpZWxkLXRleHQsXG4gIC5wYXJhZ3JhcGgucGFyYWdyYXBoLS10eXBlLS1sYW5kaW5nLWJvZHktc2VjdGlvbntcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cblxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gIEhFQURFUiAmIEZPT1RFUlxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAuZmllbGQtLW5hbWUtZmllbGQtaGVhZGVyLCAuZmllbGQtLW5hbWUtZmllbGQtZm9vdGVye1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMzMDMwMzA7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgcGFkZGluZzogMS41ZW0gMDtcbiAgICAucGFyYWdyYXBoLS10eXBlLS1jb2x1bW5zLTJ7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgbWFyZ2luOiAwIGF1dG8gIWltcG9ydGFudDtcbiAgICAgIC5maWVsZC0tbmFtZS1maWVsZC1zZWNvbmQtY29sdW1ue1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9XG4gICAgfVxuICAgIC5ub2RlLS10eXBlLW9uZS1wYWdlIC5maWVsZC0tbmFtZS1maWVsZC1oZWFkZXIgLnBhcmFncmFwaC0tdHlwZS0tY29sdW1ucy0yIC5maWVsZC0tbmFtZS1maWVsZC1maXJzdC1jb2x1bW4sXG4gICAgLm5vZGUtLXR5cGUtb25lLXBhZ2UgLmZpZWxkLS1uYW1lLWZpZWxkLWhlYWRlciAucGFyYWdyYXBoLS10eXBlLS1jb2x1bW5zLTIgLmZpZWxkLS1uYW1lLWZpZWxkLXNlY29uZC1jb2x1bW57XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuICAgIC5maWVsZF9faXRlbXtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgICAucGFyYWdyYXBoLS10eXBlLS10ZXh0e1xuICAgICAgaW1ne1xuICAgICAgICBtYXgtd2lkdGg6IDI1MHB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAgLmZpZWxkLS1uYW1lLWZpZWxkLWhlYWRlcntcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgei1pbmRleDogMTI7XG4gICAgLmZpZWxkLmZpZWxkLS1uYW1lLWZpZWxkLXNlY29uZC1jb2x1bW57XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgaDR7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLmZpZWxkLS1uYW1lLWZpZWxkLWZvb3RlcntcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICAubm9kZS0tdHlwZS1vbmUtcGFnZSAuZmllbGQtLW5hbWUtZmllbGQtaGVhZGVyIC5wYXJhZ3JhcGgtLXR5cGUtLWNvbHVtbnMtMiAuZmllbGQtLW5hbWUtZmllbGQtc2Vjb25kLWNvbHVtbixcbiAgLm5vZGUtLXR5cGUtb25lLXBhZ2UgLmZpZWxkLS1uYW1lLWZpZWxkLWhlYWRlciAucGFyYWdyYXBoLS10eXBlLS1jb2x1bW5zLTIgLmZpZWxkLS1uYW1lLWZpZWxkLWZpcnN0LWNvbHVtbntcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbiAgICAubm9kZS0tdHlwZS1vbmUtcGFnZSAuZmllbGQtLW5hbWUtZmllbGQtaGVhZGVyIC5wYXJhZ3JhcGgtLXR5cGUtLWNvbHVtbnMtMiAuZmllbGQtLW5hbWUtZmllbGQtZmlyc3QtY29sdW1ue1xuICAgICAgd2lkdGg6IDUwcHggIWltcG9ydGFudDtcbiAgICAgIGhlaWdodDogNDNweCAhaW1wb3J0YW50O1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc21hbGwtc2NyZWVuKSB7XG4gICAgICB3aWR0aDogNDglICFpbXBvcnRhbnQ7XG4gICAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICB9XG4gICAgfVxuICAubm9kZS0tdHlwZS1vbmUtcGFnZSAuZmllbGQtLW5hbWUtZmllbGQtaGVhZGVyIC5wYXJhZ3JhcGgtLXR5cGUtLWNvbHVtbnMtMiAuZmllbGQtLW5hbWUtZmllbGQtc2Vjb25kLWNvbHVtbntcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gNTBweCkgIWltcG9ydGFudDtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzbWFsbC1zY3JlZW4pIHtcbiAgICAgIHdpZHRoOiA0OCUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbiAgLmZpZWxkLS1uYW1lLWZpZWxkLWhlYWRlcnsgXG4gICAgLmZpZWxkLS1uYW1lLWZpZWxkLWZpcnN0LWNvbHVtbiBhe1xuICAgIHdpZHRoOiA0NXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNtYWxsLXNjcmVlbikge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIH1cbiAgfVxuICAgIC5maWVsZC0tbmFtZS1maWVsZC1zZWNvbmQtY29sdW1uIGg0e1xuICAgICAgZm9udC1zaXplOiAxLjM1ZW07XG4gICAgfVxufVxuXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgQkFDS0dST1VORCBXUkFQUEVSXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC5wYXJhZ3JhcGgtLXR5cGUtLWFkZC1iYWNrZ3JvdW5kLCAucGFyYWdyYXBoLS10eXBlLS1zZWN0aW9uLXdyYXBwZXJ7XG4gICAgcGFkZGluZzogM2VtIDAgMmVtIDA7XG4gIH1cbiAgLmZpZWxkLS1uYW1lLWZpZWxkLXByZXR0eS1wYXJhZ3JhcGhzLCAucGFyYWdyYXBoLS10eXBlLS1jb2x1bW5zLTIsIC5wYXJhZ3JhcGgtLXR5cGUtLWNvbHVtbnMtNXtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHdpZHRoOiA5MCU7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gIH1cbiAgLnBhcmFncmFwaC0tdHlwZS0tYWRkLWJhY2tncm91bmR7XG4gICAgKntcbiAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIH1cbiAgICAuZmllbGQtLW5hbWUtZmllbGQtcHJldHR5LXBhcmFncmFwaHN7XG4gICAgICBoMntcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gIFNVQk1JU1NJT04gRk9STVxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAud2ViZm9ybS1zdWJtaXNzaW9uLWNvbnZlcnNpb24tZm9ybXtcbiAgICBtYXgtd2lkdGg6IDQwMHB4O1xuICAgIG1hcmdpbjogMS41ZW0gYXV0byAwIGF1dG87XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc3RhbmRhcmQtc2NyZWVuKSB7XG4gICAgICAgIG1hcmdpbjogMS41ZW0gMCAwIDA7XG4gICAgICB9XG4gICAgfVxuICAgIC53ZWJmb3JtLXN1Ym1pc3Npb24tY29udmVyc2lvbi1mb3Jte1xuICAgICBpbnB1dCwgdGV4dGFyZWEge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYm9yZGVyOiBzb2xpZCAxcHggI2ZmZjtcbiAgICAgICAgcGFkZGluZzogMC41ZW07XG4gICAgICAgIG1hcmdpbi10b3A6IDAuNWVtO1xuICAgICAgICBjb2xvcjogIzAwMDAwMDtcbiAgICAgIH1cbiAgICAgIC53ZWJmb3JtLWJ1dHRvbi0tc3VibWl0e1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0MHB4O1xuICAgICAgICBwYWRkaW5nOiAwLjllbTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjOTkwMDI1O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTkwMDI1O1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgJjpob3ZlcntcbiAgICAgICAgICBib3JkZXItY29sb3I6ICNmZmZmZmY7XG4gICAgICAgIH1cbiAgICAgIH1cbn1cbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBWSURFT1xuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLmZpZWxkLS1uYW1lLWZpZWxkLXByZXR0eS1wYXJhZ3JhcGhze1xuICAuZmllbGQtLW5hbWUtZmllbGQteW91dHViZXtcbiAgICAueW91dHViZS1jb250YWluZXJ7XG4gICAgICBtYXJnaW46IDJlbSAwO1xuXG4gICAgICBpZnJhbWV7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICBkaXNwbGF5OiBibG9jazsgICAgICAgIFxuICAgICAgICB3aWR0aDogMzQwcHg7XG4gICAgICAgICAgIGhlaWdodDogMTkwcHg7IFxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzdGFuZGFyZC1zY3JlZW4tbWF4KSB7XG4gICAgICAgICAgIG1hcmdpbjogMDsgXG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc3RhbmRhcmQtc2NyZWVuLW1heCkge1xuICAgICAgICAgIFxuICAgICAgICAgIHdpZHRoOiA1MzBweDtcbiAgICAgICAgICAgaGVpZ2h0OiAzMDBweDtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzbWFsbC1zY3JlZW4tbWF4KSB7XG4gICAgICAgICAgd2lkdGg6IDYwMHB4O1xuICAgICAgICBoZWlnaHQ6IDM0MHB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBGRUFUVVJFIElURU1cbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLnBhcmFncmFwaC0tdHlwZS0tZmVhdHVyZS1pdGVte1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAuZmllbGQtLW5hbWUtZmllbGQtaWNvbntcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBtYXgtd2lkdGg6IDJlbTtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHN0YW5kYXJkLXNjcmVlbikge1xuICAgICAgICBtYXgtd2lkdGg6IDRlbTtcbiAgICAgIH1cbiAgICAgIGltZ3tcbiAgICAgICAgd2lkdGg6IDMycHg7XG4gICAgICAgIGhlaWdodDogMzJweDtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc3RhbmRhcmQtc2NyZWVuKSB7XG4gICAgICAgICAgd2lkdGg6IDY0cHg7XG4gICAgICAgICAgaGVpZ2h0OiA2NHB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC5maWVsZC0tbmFtZS1maWVsZC1mZWF0dXJlLXRpdGxlLFxuICAgIC5maWVsZC0tbmFtZS1maWVsZC1mZWF0dXJlLWRlc2NyaXB0aW9ue1xuICAgICAgIG1hcmdpbi1sZWZ0OiA0OHB4ICFpbXBvcnRhbnQ7XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gNDhweCkgIWltcG9ydGFudDtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHN0YW5kYXJkLXNjcmVlbikge1xuICAgICAgICBtYXJnaW4tbGVmdDogMTAwcHggIWltcG9ydGFudDtcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDEwMHB4KSAhaW1wb3J0YW50O1xuICAgIH1cbiAgICB9XG4gIH1cblxuXG5cbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBURVNUSU1PTklBTFNcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICAuZmllbGQtLW5hbWUtZmllbGQtbGFuZGluZy1zZWN0aW9ue1xuICAgIC5wYXJhZ3JhcGgtLXR5cGUtLWNvbHVtbnMtMyAuZmllbGQtLW5hbWUtZmllbGQtY29sdW1uLTEtMyxcbiAgICAucGFyYWdyYXBoLS10eXBlLS1jb2x1bW5zLTMgLmZpZWxkLS1uYW1lLWZpZWxkLWNvbHVtbi0yLTMsXG4gICAgLnBhcmFncmFwaC0tdHlwZS0tY29sdW1ucy0zIC5maWVsZC0tbmFtZS1maWVsZC1jb2x1bW4tMy0ze1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXJnaW46IDIuNWVtIGF1dG87XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc3RhbmRhcmQtc2NyZWVuKSB7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICB3aWR0aDogMzIlO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgfVxuICAgIC5wYXJhZ3JhcGgtLXR5cGUtLXRlc3RpbW9uaWFsIHtcbiAgICAgIC5maWVsZC0tbmFtZS1maWVsZC10ZXN0aW1vbmlhbC1xdW90ZXtcbiAgICAgICAgcGFkZGluZzogMzJweCAzMnB4IDQ4cHggMzJweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzk5MDAyNTtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc3RhbmRhcmQtc2NyZWVuKSB7XG4gICAgICAgICAgbWluLWhlaWdodDogNDMwcHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5maWVsZC0tbmFtZS1maWVsZC10ZXN0aW1vbmlhbC1hdmF0YXJ7XG4gICAgICAgIHdpZHRoOiA2NHB4O1xuICAgICAgICBtYXJnaW4tdG9wOiAtMzJweDtcbiAgICAgICAgaW1ne1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLmZpZWxkLS1uYW1lLWZpZWxkLXRlc3RpbW9uaWFsLW5hbWUsIC5maWVsZC0tbmFtZS1maWVsZC10ZXN0aW1vbmlhbC1tZXRhe1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICAgICAgLmZpZWxkLS1uYW1lLWZpZWxkLXRlc3RpbW9uaWFsLW1ldGF7XG4gICAgICAgICAgZm9udC1zaXplOiAwLjhlbTtcbiAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIH1cbiAgICAucGFyYWdyYXBoLS10eXBlLS1jb2x1bW5zLTMgLmZpZWxkLS1uYW1lLWZpZWxkLWNvbHVtbi0xLTMsXG4gICAgLnBhcmFncmFwaC0tdHlwZS0tY29sdW1ucy0zIC5maWVsZC0tbmFtZS1maWVsZC1jb2x1bW4tMi0ze1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc3RhbmRhcmQtc2NyZWVuKSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMS41JTtcbiAgICAgIH1cbiAgICB9XG4gICAgfVxuXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgQ0xJRU5UIExJU1Rcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLnBhcmFncmFwaC0tdHlwZS0tc2VjdGlvbi13cmFwcGVye1xuICAucGFyYWdyYXBoLS10eXBlLS1jb2x1bW5zLTN7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc3RhbmRhcmQtc2NyZWVuKSB7XG4gICAgICAgIG1hcmdpbjogMmVtIGF1dG8gM2VtICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgLmZpZWxkLS1uYW1lLWZpZWxkLWNvbHVtbi0xLTMsXG4gICAgLmZpZWxkLS1uYW1lLWZpZWxkLWNvbHVtbi0yLTMsXG4gICAgLmZpZWxkLS1uYW1lLWZpZWxkLWNvbHVtbi0zLTN7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgLnBhcmFncmFwaC0tdHlwZS0taW1hZ2V7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBDVEFcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLnBhcmFncmFwaC0tdHlwZS0tY3Rhe1xuICAgIHBhZGRpbmc6IDgwcHggMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgLmZpZWxkLS1uYW1lLWZpZWxkLWN0YS1idXR0b257XG4gICAgICBmb250LXNpemU6IDEuNWVtO1xuICAgICBhe1xuICAgICAgIGJvcmRlci1yYWRpdXM6IDQwcHg7XG4gICAgICAgcGFkZGluZzogMC44ZW0gMS41NjI1ZW07XG4gICAgICAgZm9udC1zaXplOiAxLjI1ZW07XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzIwMDJmO1xuICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICY6aG92ZXJ7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM5OTAwMjU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gIEdFTkVSQUxcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLmZpZWxkLS1uYW1lLWZpZWxkLXZpZGVvLXRpdGxlLFxuICAuZmllbGQtLW5hbWUtZmllbGQtY29sdW1uLTEtdGl0bGUsXG4gIC5maWVsZC0tbmFtZS1maWVsZC1jb2wtMi10aXRsZSxcbiAgLmZpZWxkLS1uYW1lLWZpZWxkLWNvbC0zLXRpdGxlLFxuICAuZmllbGQtLW5hbWUtZmllbGQtY29sLTUtdGl0bGV7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGgye1xuICAgICAgbWFyZ2luOiAwIDAgMC44ZW0gMDtcbiAgICB9XG4gIH1cblxuICBpZnJhbWUge1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5cblxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gIFdFQkZPUk0gQ09ORklSTUFUSU9OXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmJvZHkucGF0aC13ZWJmb3JteyBcbiAgICAgIGJhY2tncm91bmQ6ICNjMjAwMmY7XG4gICNoZWFkZXJ7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gICNtYWlue1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgbWluLWhlaWdodDogYXV0bztcbn1cbiNibG9jay1kZS10aGVtZS1wYWdlLXRpdGxlIGgxIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuICAud2ViZm9ybS1zdWJtaXNzaW9uLWNvbnZlcnNpb24tZm9ybXtcbiAgbGFiZWwge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBjb2xvcjogIzIxMjEyMTtcbiAgICB9XG4gICAgbGFiZWwucmVxdWlyZWQge1xuICAgICAgY29sb3I6ICMyMTIxMjE7XG4gICAgICAmOmFmdGVye1xuICAgICAgICBjb2xvcjogI2MyMDAyZjtcbiAgICAgIH1cbiAgICB9XG4gIGlucHV0LCB0ZXh0YXJlYSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNWVtO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2RlZGVkZTtcbiAgfVxuICBpbnB1dFt0eXBlPXN1Ym1pdF17XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDQwcHg7XG4gICAgcGFkZGluZzogMC45ZW07XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2MyMDAyZjtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICBtYXgtd2lkdGg6IDQwMHB4O1xuICAgICY6aG92ZXJ7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTkwMDI1O1xuICAgIH1cbiAgfVxuICB9XG4gIC5sYXlvdXQtY29udGFpbmVyIHtcbiAgICAgICAgbWF4LXdpZHRoOiA0MDBweDtcbiAgICBtYXJnaW46IDVlbSBhdXRvIDAgYXV0byAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDFlbTtcbiAgICB3aWR0aDogOTAlO1xuICAgIC5zZWN0aW9uLWNvbnRlbnR7XG4gICAgICAgIHBhZGRpbmc6IDJlbTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMWVtO1xuICB9XG4gIH1cbiAgLndlYmZvcm0tY29uZmlybWF0aW9ueyBcbiAgICBoMiwgcHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbiAgYSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAvLyBkaXNwbGF5OiBibG9jaztcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYmFja2dyb3VuZDogI2MyMDAyZjtcbiAgICBtYXgtd2lkdGg6IDI0MHB4O1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIHBhZGRpbmc6IDFlbTtcbiAgICBib3JkZXItcmFkaXVzOiAyZW07XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgdHJhbnNpdGlvbjogLjNzIGxpbmVhcjtcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IC4zcyBsaW5lYXI7XG4gICAgJjpob3ZlcntcbiAgICAgIGJhY2tncm91bmQ6ICM5OTAwMjU7XG4gICAgfVxuICB9XG4gIC53ZWJmb3JtLWNvbmZpcm1hdGlvbl9fbWVzc2FnZXsgXG4gICAgYXtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAwLjVlbTtcbiAgICBtYXJnaW46IDFlbSBhdXRvIDAgYXV0bztcbiAgfVxuICBwOmxhc3QtY2hpbGR7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuLndlYmZvcm0tY29uZmlybWF0aW9uX19iYWNre1xuICBkaXNwbGF5OiBub25lO1xufVxufSBcbiAgXG59XG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuIiwiLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgSVNMQU5ET1JBIExBTkRJTkcgUEFHRSBTVFlMSU5HXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6ICdsZWFndWVfZ290aGljcmVndWxhcic7XG4gICAgc3JjOiB1cmwoJy4uLy4uL2ZvbnRzL2xlYWd1ZWdvdGhpYy1yZWd1bGFyLXdlYmZvbnQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksXG4gICAgICAgICB1cmwoJy4uLy4uL2ZvbnRzL2xlYWd1ZWdvdGhpYy1yZWd1bGFyLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuJGZvbnQtc2V0LTM6ICdsZWFndWVfZ290aGljcmVndWxhcicsIHNlcmlmO1xuXG4ubm9kZS0tdHlwZS1vbmUtcGFnZS5jb250ZXh0LWlzbGFuZG9yYSwgLm5vZGUtLXR5cGUtb25lLXBhZ2UuY29udGV4dC1teS1pc2xhbmRvcmEsIC5ub2RlLS10eXBlLW9uZS1wYWdlLmNvbnRleHQtbXlpc2xhbmRvcmEsXG4ubm9kZS0tdHlwZS1vbmUtcGFnZS5jb250ZXh0LW5vZGUtMzA2IHtcblxuLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQkFOTkVSIFNUWUxJTkdcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG4gXHQucGFyYWdyYXBoLS10eXBlLS1iYW5uZXItd3JhcHBlcntcbiBcdFx0YmFja2dyb3VuZDogI0YxRjJGMTtcbiBcdFx0LmZpZWxkLS1uYW1lLWZpZWxkLWJhbm5lci1jb250ZW50e1xuIFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcbiAgXHRcdG1hcmdpbjogMCBhdXRvO1xuICBcdFx0cGFkZGluZy1ib3R0b206IG1zKCk7XG5cdCAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzdGFuZGFyZC1zY3JlZW4pIHtcblx0XHRcdFx0cGFkZGluZzogMDtcblx0XHRcdH1cbiAgICAgIFx0XHRpbWd7XG4gICAgICBcdFx0XHRtYXgtd2lkdGg6IDgwcHg7XG4gICAgICBcdFx0fVxuIFx0XHR9XG4gXHRcdC5wYXJhZ3JhcGgtLXR5cGUtLWNvbHVtbnMtMntcbiBcdFx0XHRwYWRkaW5nOiA0ZW0gMDtcbiBcdFx0fVxuXHR9XG5cbi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIE1FTlUgU1RZTElOR1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cblx0LmlzbGFuZG9yYS1iYW5uZXItbWVudXtcblx0XHQgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2NjY2M7XG5cdFx0ICAgIG1hcmdpbjogMCBhdXRvO1xuXHRcdCAgICBiYWNrZ3JvdW5kOiAjYzIwMDJmO1xuXHRcdGxpe1xuXHRcdFx0bGlzdC1zdHlsZTogbm9uZTtcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdG1hcmdpbjogMDtcblx0XHRcdGF7XG5cdFx0XHRcdGZvbnQtZmFtaWx5OiAkZm9udC1zZXQtMztcblx0XHRcdFx0Zm9udC1zaXplOiBtcygyKTtcblx0XHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdFx0XHRjb2xvcjogI2ZmZmZmZjtcblx0XHRcdFx0YmFja2dyb3VuZDogI2MyMDAyZjtcblx0XHRcdFx0cGFkZGluZzogbXMoMCk7XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuICAgIFx0XHRcdHBhZGRpbmc6IG1zKC0zKTtcblx0XHRcdFx0Jjpob3Zlcntcblx0XHRcdFx0XHRiYWNrZ3JvdW5kOiAjMzAzMDMwO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG4vKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBTRUNUSU9OIFNUWUxJTkdcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG5cdC5wYXJhZ3JhcGgtLXR5cGUtLWFkZC1iYWNrZ3JvdW5ke1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0bWluLWhlaWdodDogNDUwcHg7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdHotaW5kZXg6IDEwO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IGxlZnQgMzUlICFpbXBvcnRhbnQ7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoMCAkc3RhbmRhcmQtc2NyZWVuKSB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkZWNoaWRuYS1yZWQ7XG5cdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiBub25lICFpbXBvcnRhbnQ7XG5cdFx0fVxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoJHN0YW5kYXJkLXNjcmVlbikge1xuXHRcdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiL3RoZW1lcy9jdXN0b20vZGVfdGhlbWUvaW1nL2xhbmRpbmdfcGFnZV9maWxlcy9kZXNrdG9wLWJnLmpwZ1wiKTtcblx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246IC03NzJweCAwICFpbXBvcnRhbnQ7XG5cdFx0XHRiYWNrZ3JvdW5kLXNpemU6IDE1NDBweCAhaW1wb3J0YW50O1xuXHRcdH1cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KCRzdXBlci13aWRlLXNjcmVlbikge1xuXHRcdFx0ICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoNTAlIC0gODAwcHgpIDAgIWltcG9ydGFudDtcdFx0ICAgIFxuXHRcdH1cblx0XHQuZmllbGQtLW5hbWUtZmllbGQtcHJldHR5LXBhcmFncmFwaHN7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHR9XG5cdFx0LnBhcmFncmFwaC0tdHlwZS0tZGl2aWRlcntcblx0XHRcdGJhY2tncm91bmQ6ICNmZmZmZmY7XG5cdFx0XHRtYXJnaW46IDA7XG5cdFx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHJpZ2h0OiAwO1xuXHRcdFx0ei1pbmRleDogLTE7XG5cdFx0XHR0b3A6IDA7XG5cdFx0XHRvcGFjaXR5OiAwLjY7XG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KCRzdGFuZGFyZC1zY3JlZW4pIHtcblx0XHRcdFx0d2lkdGg6IDUwJTtcblx0XHRcdFx0b3BhY2l0eTogMTtcblx0XHRcdH1cblx0XHRcdCY6YmVmb3Jle1xuXHRcdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KCRzdGFuZGFyZC1zY3JlZW4pIHtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kOiBpbmhlcml0O1xuXHRcdFx0XHQgICAgYm90dG9tOiAwO1xuXHRcdFx0XHQgICAgY29udGVudDogJyc7XG5cdFx0XHRcdCAgICBkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0ICAgIGhlaWdodDogNjczcHg7XG5cdFx0XHRcdCAgICB0cmFuc2Zvcm06IHJvdGF0ZSgyMGRlZyk7XG5cdFx0XHRcdCAgICB3aWR0aDogMjQwcHg7XG5cdFx0XHRcdCAgICBsZWZ0OiAtMTUwcHg7XG5cdFx0XHRcdCAgICB0b3A6IDA7XG5cdFx0XHRcdCAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdCAgICB6LWluZGV4OiAtMTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHQucGFyYWdyYXBoLS10eXBlLS1jb2x1bW5zLTJ7XG5cdFx0XHR0ZXh0LWFsaWduOiByaWdodDtcblx0XHRcdC5wYXJhZ3JhcGgtLXR5cGUtLXRleHR7XG5cdFx0XHRcdG1hcmdpbjogbXMoNikgMDtcblx0XHRcdH1cblx0XHRcdHAge1xuXHRcdFx0XHRjb2xvcjogIzAwMDAwMDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQucGFyYWdyYXBoLS10eXBlLS10ZXh0e1xuXHRcdFx0aDJ7XG5cdFx0XHRmb250LWZhbWlseTogJGZvbnQtc2V0LTM7XG5cdFx0XHRmb250LXNpemU6IG1zKDUpO1xuXHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRcdG1hcmdpbjogMDtcblx0XHRcdGxpbmUtaGVpZ2h0OiAxO1xuXHRcdH1cblx0XHRoNC5kaXZpZGVyLXRpdGxle1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRcdFx0Ym9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICMwMDAwMDA7XG5cdFx0XHRwYWRkaW5nLWJvdHRvbTogbXMoLTMpO1xuXHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRcdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cdFx0XHRmb250LXNpemU6IG1zKDMpO1xuXHRcdFx0Zm9udC1mYW1pbHk6ICRmb250LXNldC0zO1xuXHRcdH1cblx0XHRoMiwgaDR7XG5cdFx0XHRjb2xvcjogIzMwMzAzMDtcblx0XHR9XG5cdFx0LnN1Yi10aXRsZXtcblx0XHRcdGZvbnQtc2l6ZTogbXMoMyk7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiBtcygtMSk7XG5cdFx0fVxuXHRcdC5idG4tcHJpbWFyeXtcblx0XHRcdG1hcmdpbjogbXMoMSkgMCAwIDA7XG5cdFx0fVxuXHR9XG5cblx0LnBhcmFncmFwaC0tdHlwZS0tY29sdW1ucy0ze1xuXHRcdHdpZHRoOiA5MCU7XG5cdFx0bWFyZ2luOiBhdXRvO1xuXHRcdC5maWVsZC0tbmFtZS1maWVsZC1jb2x1bW4tMS0zLFxuXHRcdC5maWVsZC0tbmFtZS1maWVsZC1jb2x1bW4tMi0zLFxuXHRcdC5maWVsZC0tbmFtZS1maWVsZC1jb2x1bW4tMy0ze1xuXHRcdFx0dmVydGljYWwtYWxpZ246IHRvcDtcblx0XHRcdC5zdWItdGl0bGV7XG5cdFx0XHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdC5wYXJhZ3JhcGgtLXR5cGUtLXRleHR7XG5cdFx0XHRwe1xuXHRcdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHQucGFyYWdyYXBoLS10eXBlLS1jb2x1bW5zLTJ7XG5cdFx0LmZpZWxkLS1uYW1lLWZpZWxkLWZpcnN0LWNvbHVtbntcblx0XHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuXHRcdH1cblx0XHQuZmllbGQtLW5hbWUtZmllbGQtc2Vjb25kLWNvbHVtbntcblx0XHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkc3RhbmRhcmQtc2NyZWVuKSB7XG5cdFx0XHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHQueW91dHViZS1jb250YWluZXJ7XG5cdFx0bWFyZ2luOiAwICFpbXBvcnRhbnQ7XG5cdH1cblx0LnBhcmFncmFwaC0tdHlwZS0tdmlkZW97XG5cdFx0XHRcdG1hcmdpbjogMCAwIG1zKDUpIDA7XG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkd2VpcmQtc2NyZWVuKSB7XG5cdFx0bWFyZ2luOiAwICFpbXBvcnRhbnQ7XG5cdH1cblx0fVxuXHQucGFyYWdyYXBoLS10eXBlLS1jb2x1bW4tMXtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdH1cblx0LnBhcmFncmFwaC0tdHlwZS0tc2VjdGlvbi13cmFwcGVye1xuXHRcdG1hcmdpbi10b3A6IG1zKDYpO1xuXHRcdHBhZGRpbmc6IDFlbSAwIDAgMDtcblx0XHQucGFyYWdyYXBoLS10eXBlLS1jb2x1bW5zLTIsIC5wYXJhZ3JhcGgtLXR5cGUtLWNvbHVtbnMtMntcblx0XHRcdC5maWVsZC0tbmFtZS1maWVsZC1maXJzdC1jb2x1bW4sIC5maWVsZC0tbmFtZS1maWVsZC1zZWNvbmQtY29sdW1ue1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkd2VpcmQtc2NyZWVuKSB7XG5cdFx0XHRcdFx0d2lkdGg6IDQ5LjclO1xuXHRcdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdFx0XHRtYXJnaW46IDA7XG5cdFx0XHRcdH1cblx0XHRcdFx0LmZpZWxkLS1uYW1lLWZpZWxkLWltYWdle1xuXHRcdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkd2VpcmQtc2NyZWVuKSB7XG5cdFx0XHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdC5maWVsZC0tbmFtZS1maWVsZC1maXJzdC1jb2x1bW57XG5cdFx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoJHdlaXJkLXNjcmVlbikge1xuXHRcdFx0XHRcdHBhZGRpbmctcmlnaHQ6IDFlbTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0LmZpZWxkLS1uYW1lLWZpZWxkLXNlY29uZC1jb2x1bW57XG5cdFx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoJHdlaXJkLXNjcmVlbikge1xuXHRcdFx0XHRcdHBhZGRpbmctbGVmdDogMWVtO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdC5maWVsZF9faXRlbTpudGgtY2hpbGQoNCkgLnBhcmFncmFwaC0tdHlwZS0tc2VjdGlvbi13cmFwcGVye1xuXHRcdHBhZGRpbmctdG9wOiAwO1xuXHR9XG5cdC5maWVsZF9faXRlbTpudGgtY2hpbGQoNSkgLnBhcmFncmFwaC0tdHlwZS0tc2VjdGlvbi13cmFwcGVye1xuXHRcdG1hcmdpbi1ib3R0b206IDVlbTtcblx0fVxuXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgVklERU8gQ09OVEFJTkVSXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4ueW91dHViZS1jb250YWluZXJ7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDAgYXV0byAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogNjAwcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDU2JTtcbiAgICBpZnJhbWV7XG4gICAgXHRtYXJnaW46IDAgYXV0bztcblx0ICAgIGRpc3BsYXk6IGJsb2NrO1xuXHQgICAgd2lkdGg6IDEwMCU7XG5cdCAgICBoZWlnaHQ6IDEwMCU7XG5cdCAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cdCAgICBsZWZ0OiAwO1xuXHQgICAgdG9wOiAwO1xuICAgIH1cbn1cbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBTVUJNSVNTSU9OIEZPUk1cbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLndlYmZvcm0tc3VibWlzc2lvbi1mb3Jte1xuICAgIG1heC13aWR0aDogNDAwcHg7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcblx0ICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHN0YW5kYXJkLXNjcmVlbikge1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiAwO1xuXHRcdH1cbiAgICB9XG4gICAgLndlYmZvcm0tc3VibWlzc2lvbi1mb3Jte1xuICAgICBpbnB1dCwgdGV4dGFyZWEge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYm9yZGVyOiBzb2xpZCAxcHggI2ZmZjtcbiAgICAgICAgcGFkZGluZzogMC41ZW07XG4gICAgICAgIG1hcmdpbi10b3A6IDAuNWVtO1xuICAgICAgICBjb2xvcjogIzAwMDAwMDtcbiAgICAgIH1cbiAgICAgIGxhYmVse1xuICAgICAgXHRjb2xvcjogIzMwMzAzMCAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgICAgLndlYmZvcm0tYnV0dG9uLS1zdWJtaXR7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDQwcHg7XG4gICAgICAgIHBhZGRpbmc6IDAuOWVtO1xuICAgICAgICBib3JkZXItY29sb3I6ICNjMjAwMmY7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjMjAwMmY7XG4gICAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgICAmOmhvdmVye1xuICAgICAgICAgIGJhY2tncm91bmQ6ICM5OTAwMjU7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiAjOTkwMDI1O1xuICAgICAgICB9XG4gICAgICB9XG5cdH1cblxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gIENvbHVtbiBNYXJnaW4gT3ZlcnJpZGVcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXHQubm9kZS0tdHlwZS1vbmUtcGFnZSAucGFyYWdyYXBoLS10eXBlLS1jb2x1bW4tMSwgXG5cdC5ub2RlLS10eXBlLW9uZS1wYWdlIC5wYXJhZ3JhcGgtLXR5cGUtLWNvbHVtbnMtMi0zLCBcblx0Lm5vZGUtLXR5cGUtb25lLXBhZ2UgLnBhcmFncmFwaC0tdHlwZS0tY29sdW1ucy0yLCBcblx0Lm5vZGUtLXR5cGUtb25lLXBhZ2UgLnBhcmFncmFwaC0tdHlwZS0tY29sdW1ucy0zLCBcblx0Lm5vZGUtLXR5cGUtb25lLXBhZ2UgLnBhcmFncmFwaC0tdHlwZS0tY29sdW1ucy01e1xuXHRcdG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcblx0fVxufSIsIlxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gIFNVQk1JU1NJT04gRk9STVxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAud2ViZm9ybS1zdWJtaXNzaW9uLXdpcGhlLWZvcm17XG4gICAgbWF4LXdpZHRoOiAzNTBweDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1lZGl1bS1zY3JlZW4pe1xuICAgICAgbWFyZ2luLXRvcDogLTI1MHB4O1xuICAgIH1cblx0ICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHN0YW5kYXJkLXNjcmVlbikge1xuICAgICAgbWF4LXdpZHRoOiA0MDBweDtcblx0XHRcdG1hcmdpbi1yaWdodDogMDtcblx0XHR9XG4gICAgfVxuICAgIC53ZWJmb3JtLXN1Ym1pc3Npb24td2lwaGUtZm9ybXtcbiAgICAgaW5wdXQsIHRleHRhcmVhIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJvcmRlcjogc29saWQgMXB4ICMwMDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNWVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAwLjVlbTtcbiAgICAgICAgY29sb3I6ICMwMDAwMDA7XG4gICAgICB9XG4gICAgICBsYWJlbHtcbiAgICAgIFx0Y29sb3I6ICMzMDMwMzAgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICAgIC53ZWJmb3JtLWJ1dHRvbi0tc3VibWl0e1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0MHB4O1xuICAgICAgICBwYWRkaW5nOiAwLjllbTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjYzIwMDJmO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzIwMDJmO1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgJjpob3ZlcntcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAjOTkwMDI1O1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogIzk5MDAyNTtcbiAgICAgICAgfVxuICAgICAgfVxuXHR9XG5cbiAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gIExPR09TIFxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIHVsLmxvZ28tbGlzdHtcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcbiAgICAtd2Via2l0LWFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIG1hcmdpbi1sZWZ0OiAtMTBweDtcbiAgICBtYXJnaW4tdG9wOiAtMTBweDtcbiAgICBsaXtcbiAgICBmbGV4OiAxIDAgY2FsYygzMyUgLSAxMHB4KTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWVkaXVtLXNjcmVlbil7XG4gICAgICAgICBmbGV4OiAxIDAgY2FsYygxNSUgLSAxMHB4KTtcbiAgICAgIH1cbiAgICB9XG4gICAgaW1ne1xuICAgICAgZmxvYXQ6ICBsZWZ0O1xuICAgICAgd2lkdGg6ICAxMDAlO1xuICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsMCwwKTtcbiAgICB9XG4gIH1cblxuICAuY2x1dGNoLWxvZ297XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWVkaXVtLXNjcmVlbil7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAxMjY4cHgpIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMTUwcHhcbiAgICB9XG4gICAgICBpbWd7XG4gICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWVkaXVtLXNjcmVlbil7XG4gICAgICAgIG1hcmdpbi10b3A6IDE0M3B4O1xuICAgICAgfVxuICAgIH1cbn1cblxuIiwiLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBFQ0hJRE5FVCBMQU5ESU5HIFBBR0UgU1RZTElOR1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cblxuLm5vZGUtLXR5cGUtb25lLXBhZ2UuY29udGV4dC1lY2hpZG5ldCxcbi5ub2RlLS10eXBlLW9uZS1wYWdlLmNvbnRleHQtbm9kZS0zNDYge1xuXHRmb250LWZhbWlseTogJGZvbnQtc2V0LTQ7XG5cblxuLmZpZWxkLS1uYW1lLWZpZWxkLWhlYWRlciAuZmllbGQtLW5hbWUtZmllbGQtZmlyc3QtY29sdW1uIGEge1xuXHR3aWR0aDogNWVtO1xufVxuLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgU0VDVElPTiBTVFlMSU5HXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuLmNlbnRyZS10ZXh0IHtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ucmVkLXRpdGxlIHtcblx0Y29sb3I6ICRlY2hpZG5hLXJlZDtcbn1cblxuaDIsIGgzLCBoNCB7XG5cdGZvbnQtd2VpZ2h0OiA5MDA7XG5cdGZvbnQtZmFtaWx5OiAkZm9udC1zZXQtNCAhaW1wb3J0YW50O1xufVxuXG5oMiB7XG5cdG1hcmdpbi1ib3R0b206IDA7XG5cdGZvbnQtZmFtaWx5OiAkZm9udC1zZXQtNCAhaW1wb3J0YW50O1xuXHQuY2VudHJlLXRleHR7XG5cdFx0cGFkZGluZy10b3A6IDFlbTtcblx0fVxufVxuaDQuaGVhZGVyIHtcbmZvbnQtZmFtaWx5OiAkZm9udC1zZXQtNCAhaW1wb3J0YW50O1xuXG59XG5oMyB7XG5cdG1hcmdpbi1ib3R0b206IDA7XG5cdGZvbnQtc2l6ZTogMS41ZW07XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoJHN0YW5kYXJkLXNjcmVlbikge1xuXHRcdGZvbnQtc2l6ZTogMS44ZW07XG5cdFx0bWF4LXdpZHRoOiA3NTBweDtcblx0XHRtYXJnaW46IDAgYXV0bztcblx0fVxufVxuaDMuZmVhdHVyZXN7XG4gIGZvbnQtc2l6ZTogMS45ZW07XG4gIG1hcmdpbjogMDtcbn1cblxucHtcblx0bGluZS1oZWlnaHQ6IDEuNWVtO1xufVxuXG5wLmNlbnRyZS10ZXh0e1xuXHRmb250LXNpemU6IDEuMTI1ZW07XG5cdG1hcmdpbi10b3A6IDFlbTtcbn1cblxuLm1lbnUge1xuXHRAaW5jbHVkZSBuby1idWxsZXRzO1xuXHQgIG1hcmdpbjogMCBhdXRvO1xuICAgIFx0bWF4LXdpZHRoOiAzMjRweDtcbiAgICBcdHBhZGRpbmctdG9wOiAyZW07XG4gICAgXHRwYWRkaW5nLWJvdHRvbTogNmVtO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc3RhbmRhcmQtc2NyZWVuKSB7XG4gICAgXHRmbG9hdDogcmlnaHQ7XG4gICAgXHR0ZXh0LWFsaWduOiByaWdodDtcbiAgICBcdHdpZHRoOiA0MDFweDtcbiAgICBcdG1heC13aWR0aDogNDAxcHg7XG4gICAgXHRwYWRkaW5nOiAwO1xuICAgIH1cblxuXHRsaSB7XG5cdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0bWFyZ2luLXJpZ2h0OiA1JTtcbiAgICBcdG1hcmdpbi1ib3R0b206IDFlbTtcblx0XHRAaW5jbHVkZSBicmVha3BvaW50KCRzdGFuZGFyZC1zY3JlZW4pIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMCU7XG4gICAgXHRcdG1hcmdpbi1ib3R0b206IDNlbTtcbiAgICBcdH1cblxuXHRcdCY6bGFzdC1jaGlsZCB7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDA7XG5cdFx0fVxuXHRcdGEge1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXHRcdFx0fVxuXG5cdFx0fVxuXHR9XG59XG5cbi5idWxsZXRzIHtcblx0bWFyZ2luLXRvcDogMWVtO1xuXHRmb250LXNpemU6IDFlbTtcblx0bGluZS1oZWlnaHQ6IDEuNWVtO1xuXHRsaSB7XG5cdFx0Y29sb3I6ICMwMDAwMDA7XG5cdH1cbn1cbi5idWxsZXRzLXR3by1jb2wge1xuICBtYXJnaW4tdG9wOiAxZW07XG4gIG1hcmdpbi1sZWZ0OiAyZW07XG5AaW5jbHVkZSBicmVha3BvaW50KCRzdGFuZGFyZC1zY3JlZW4pIHtcblx0ICBjb2x1bW4tY291bnQ6IDI7XG5cdCAgLXdlYmtpdC1jb2x1bW4tY291bnQ6IDI7XG5cdCAgLW1vei1jb2x1bW4tY291bnQ6IDI7XG5cdCAgXHRsaSB7XG5cdCAgXHRsaXN0LXN0eWxlLXBvc2l0aW9uOiBpbnNpZGU7XG5cdCAgXHRwYWRkaW5nLWxlZnQ6IDEuMjg1NzE0MjllbTtcbiAgICBcdHRleHQtaW5kZW50OiAtMS4yODU3MTQyOWVtO1xuXHQgIFx0XHRwIHtcblx0ICBcdFx0XHRkaXNwbGF5OiBpbmxpbmU7XG5cdCAgXHRcdH1cblx0ICBcdH1cblx0ICBcdFxuXHR9XG5cdC5tdWx0aS1sZXZlbC1saXN0e1xuXHQgIFx0bWFyZ2luLWxlZnQ6IDJlbTtcblx0fVxufVxuXG5cbi5zb2NpYWwtbWVudSB7XG5cdEBpbmNsdWRlIG5vLWJ1bGxldHM7XG5cdG1hcmdpbjogMCBhdXRvO1xuXHRtYXJnaW4tYm90dG9tOiAwO1xuXHRtYXgtd2lkdGg6IDQ1cHg7XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoJHN0YW5kYXJkLXNjcmVlbikge1xuXHRcdG1heC13aWR0aDogMzI4cHg7XG5cdH1cblxuXHRsaSB7XG5cdFx0bWFyZ2luLXRvcDogMmVtO1xuXHRcdHdpZHRoOiA0NXB4O1xuICAgIFx0YmFja2dyb3VuZDogd2hpdGU7XG4gICAgXHRoZWlnaHQ6IDQ1cHg7XG4gICAgXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgXHRib3JkZXItcmFkaXVzOiA0cHg7XG5cdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0XHQmOmhvdmVyIHtcblx0XHRcdCAgIG9wYWNpdHk6IDAuNTtcblx0XHRcdH1cblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoJHN0YW5kYXJkLXNjcmVlbikge1xuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6IDE1JTtcblx0XHRcdFx0JjpsYXN0LWNoaWxke1xuXHRcdFx0XHRcdG1hcmdpbi1yaWdodDogMDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdGEge1xuXHRcdFx0Zm9udC1zaXplOiAxLjVlbTtcblx0XHQgICAgbGluZS1oZWlnaHQ6IDQ1cHg7XG5cdFx0ICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0XHQgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdCAgICBjb2xvcjogJGVjaGlkbmEtcmVkO1xuXG5cdFx0ICAgIC52aXN1YWxseWhpZGRlbiB7XG5cdFx0ICAgIFx0Y2xpcDogcmVjdCgwcHggMHB4IDBweCAwcHgpO1xuXHRcdFx0ICAgIGhlaWdodDogMXB4O1xuXHRcdFx0ICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdCAgICB3aWR0aDogMXB4O1xuXHRcdFx0ICAgIGJvcmRlci13aWR0aDogMHB4O1xuXHRcdFx0ICAgIGJvcmRlci1zdHlsZTogaW5pdGlhbDtcblx0XHRcdCAgICBib3JkZXItY29sb3I6IGluaXRpYWw7XG5cdFx0XHQgICAgYm9yZGVyLWltYWdlOiBpbml0aWFsO1xuXHRcdFx0ICAgIG1hcmdpbjogLTFweDtcblx0XHRcdCAgICBvdmVyZmxvdzogaGlkZGVuO1xuXHRcdFx0ICAgIHBhZGRpbmc6IDBweDtcblx0XHQgICAgfVxuXHRcdH1cblx0fVxufVxuLmxvZ28tbGlzdHtcbiAgbWFyZ2luOiAwIDJlbTtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc3RhbmRhcmQtc2NyZWVuKSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luOiAwO1xuICB9XG4gIC5zbGljay1zbGlkZXJ7XG5cbiAgfVxuICAuc2xpY2stcHJldiwgLnNsaWNrLW5leHR7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbiAgfVxuICAuc2xpY2stcHJldjpiZWZvcmUsIC5zbGljay1uZXh0OmJlZm9yZXtcbiAgY29sb3I6ICRlY2hpZG5hLXJlZCAhaW1wb3J0YW50O1xuICAgICAgZm9udC1zaXplOiAyNXB4ICFpbXBvcnRhbnQ7XG59XG59XG5cblxuLmZpZWxkLS1uYW1lLWZpZWxkLWZvb3RlciB7XG5cdHB7XG5cdFx0Zm9udC13ZWlnaHQ6IDkwMDtcblx0fVxufVxuXG4ucGFyYWdyYXBoLS10eXBlLS1hZGQtYmFja2dyb3VuZHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCAoJHN0YW5kYXJkLXNjcmVlbikge1xuICAgIHBhZGRpbmc6IDVlbSAwIDVlbSAwO1xuICB9XG59XG5cbi5ub2RlLS10eXBlLW9uZS1wYWdlIC5wYXJhZ3JhcGgtLXR5cGUtLWNvbHVtbi0xe1xuICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG59XG5cblxuLmZpZWxkLS1uYW1lLWZpZWxkLWxhbmRpbmctc2VjdGlvbiB7XG4gICAgJiA+IC5maWVsZF9faXRlbTpudGgtY2hpbGQoMil7XG5tYXJnaW4tdG9wOiAyZW07XG5AaW5jbHVkZSBicmVha3BvaW50ICgkc3RhbmRhcmQtc2NyZWVuKXtcblx0bWFyZ2luLXRvcDogNmVtO1xufVxuXG5cdFx0LnBhcmFncmFwaC0tdHlwZS0tY29sdW1ucy0ye1xuXHRcdFx0LmZpZWxkLS1uYW1lLWZpZWxkLWZpcnN0LWNvbHVtbntcblx0XHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCAoJHN0YW5kYXJkLXNjcmVlbil7XG5cdFx0XHRcdHdpZHRoOiA1NyU7XG5cdFx0XHRcdGNsZWFyOiBib3RoO1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiA2ZW07XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdC5maWVsZC0tbmFtZS1maWVsZC1zZWNvbmQtY29sdW1ue1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiA1ZW07XG5cdFx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQgKCRzdGFuZGFyZC1zY3JlZW4pe1xuXHRcdFx0XHRtYXJnaW46MDtcblx0XHRcdFx0d2lkdGg6IDQwJTtcblx0XHRcdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHR9IFxuICAgIH1cblx0XG59XG5cbi5maWVsZC0tbmFtZS1maWVsZC1sYW5kaW5nLXNlY3Rpb24ge1xuICAgICYgPiAuZmllbGRfX2l0ZW06bnRoLWNoaWxkKDUpe1xuICAgIFx0LnBhcmFncmFwaC0tdHlwZS0tc2VjdGlvbi13cmFwcGVye1xuICAgIFx0XHRwYWRkaW5nLWJvdHRvbTogMDtcbiAgICBcdH1cbiAgICB9XG59XG5cbi5maWVsZC0tbmFtZS1maWVsZC1sYW5kaW5nLXNlY3Rpb24ge1xuICAgICYgPiAuZmllbGRfX2l0ZW06bnRoLWNoaWxkKDYpe1xuICAgIFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgXHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIH1cbn1cbi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgU1VCTUlTU0lPTiBGT1JNXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG5cbi5maWVsZC0tdHlwZS13ZWJmb3JtIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRlY2hpZG5hLXJlZDtcbn1cbiAgLndlYmZvcm0tc3VibWlzc2lvbi1mb3Jte1xuICBcdHdpZHRoOiA5MCU7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgcGFkZGluZy10b3A6IDVlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogOGVtO1xuIFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkc3RhbmRhcmQtc2NyZWVuKXtcbiAgICBcdG1heC13aWR0aDogNDAwcHg7XG4gICAgXHRtYXJnaW46IDAgYXV0bztcblx0fVxuICAgIGgzLCBzdHJvbmd7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBmb250LXdlaWdodDogOTAwO1xuICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgfVxufVxuICAgIC53ZWJmb3JtLXN1Ym1pc3Npb24tZm9ybXtcbiAgICAgaW5wdXQsIHRleHRhcmVhIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJvcmRlcjogc29saWQgMXB4ICNmZmY7XG4gICAgICAgIHBhZGRpbmc6IDAuNWVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAwLjVlbTtcbiAgICAgICAgY29sb3I6ICMwMDAwMDA7XG4gICAgICB9XG4gICAgICBsYWJlbHtcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICB9XG4gICAgICAud2ViZm9ybS1idXR0b24tLXN1Ym1pdHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNDBweDtcbiAgICAgICAgcGFkZGluZzogMC45ZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICM5OTAwMjU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogIzk5MDAyNTtcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICAgICY6aG92ZXJ7XG4gICAgICAgIGJhY2tncm91bmQ6ICMzMDMwMzA7XG4gICAgICAgIGJvcmRlci1jb2xvcjogIzMwMzAzMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxufSIsIi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEVDSElETkEgTkVXIFBST0RVQ1QgTEFORElORyBQQUdFIFNUWUxJTkdcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG4uY29udGV4dC1ub2RlLTM1MSAubm9kZS0tdHlwZS1vbmUtcGFnZSxcbi5jb250ZXh0LW5ldy1wcm9kdWN0LXBhZ2UgLm5vZGUtLXR5cGUtb25lLXBhZ2V7XG4gIGZvbnQtZmFtaWx5OiAkZm9udC1zZXQtNDtcbi5maWVsZC0tbmFtZS1maWVsZC1oZWFkZXIge1xuICAgIHBhZGRpbmctdG9wOiAxZW07XG4gIC5maWVsZC0tbmFtZS1maWVsZC1maXJzdC1jb2x1bW4gYXtcbiAgICB3aWR0aDogNTVweDsgXG4gIH1cbiAgLmZpZWxkLmZpZWxkLS1uYW1lLWZpZWxkLXNlY29uZC1jb2x1bW4gaDR7XG4gICAgIG1hcmdpbi10b3A6IDM1cHg7XG4gIH1cbiAgXG59XG5cbi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFNFQ1RJT04gU1RZTElOR1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cbi8qTGlzdCBzdHlsZXMqL1xudWwuaW5zZXQtYnVsbGV0cyB7XG4gIG1hcmdpbi10b3A6IDEuNWVtO1xuICAgIGxpIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxLjVlbTtcbiAgICB9XG59XG5cbi8qVHlwb2dyYXBoaWMgc3R5bGVzKi9cbi5oZWFkaW5nLXNwYWNle1xuICBtYXJnaW4tYm90dG9tOiAxLjVlbTtcbiAgbWFyZ2luLXRvcDogMWVtO1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRzdGFuZGFyZC1zY3JlZW4pe1xuICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgfVxufVxuXG4uY2VudHJlLXRleHQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtZmFtaWx5OiAkZm9udC1zZXQtNDtcbn1cblxuaDIge1xuICBzdHJvbmcge1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1zZXQtNDtcbiAgICBmb250LXdlaWdodDogOTAwO1xuICB9XG59XG5cbnAuaW5mbyB7XG4gIG1heC13aWR0aDogNjMwcHggIWltcG9ydGFudDtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHBhZGRpbmctYm90dG9tOiAxZW07XG4gIGZvbnQtc2l6ZTogMS4xMjVlbTtcbn1cblxucCB7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBhIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICBtYXJnaW4tdG9wOiAxZW07XG4gICAgJjpob3ZlcntcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cbiAgfVxufVxuXG4vL0NUQSB0b3AgYmFubmVyXG4uZmllbGQtLW5hbWUtZmllbGQtbGFuZGluZy1zZWN0aW9uIHtcbiAgJiA+IC5maWVsZF9faXRlbTpudGgtY2hpbGQoMSkge1xuICAgIC5wYXJhZ3JhcGgtLXR5cGUtLWFkZC1iYWNrZ3JvdW5ke1xuICAgICAgcGFkZGluZzogN2VtIDAgNWVtIDA7XG4gICAgfVxuICAgIC5wYXJhZ3JhcGgtLXR5cGUtLWN0YXtcbiAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgIC5maWVsZC0tbmFtZS1maWVsZC1jdGEtYnV0dG9ue1xuICAgICAgICBhe1xuICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cyBlYXNlO1xuICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICAgIGJhY2tncm91bmQ6ICRkYXJrLWdyZXk7XG4gICAgICAgICAgJjpob3ZlcntcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRsaWdodC1ncmV5O1xuICAgICAgICAgICAgY29sb3I6ICRlY2hpZG5hLXJlZDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0gXG59IFxuLypMYXlvdXQgc3R5bGVzKi9cbi5wYXJhZ3JhcGgtLXR5cGUtLWNvbHVtbi0xe1xuICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5wYXJhZ3JhcGgtLXR5cGUtLWFkZC1iYWNrZ3JvdW5ke1xuICBwYWRkaW5nOiA1ZW0gMCAyZW0gMDtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCAoJHN0YW5kYXJkLXNjcmVlbil7XG4gICBwYWRkaW5nOiA0ZW0gMCAzZW0gMDtcbiAgfVxufVxuXG4vL0FkanVzdCBCYWNrZ3JvdW5kIGltYWdlcyBiZXNpZGUgY29udGVudFxuXG4uZmllbGQtLW5hbWUtZmllbGQtbGFuZGluZy1zZWN0aW9uIHtcbiAgICAmID4gLmZpZWxkX19pdGVtOm50aC1jaGlsZCgzKSB7XG4gICAgICAuZmllbGQtLW5hbWUtZmllbGQtY3RhLWJ1dHRvbntcbiAgICAgIG1heC13aWR0aDogMTQzMHB4O1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIGF7XG4gICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzIGVhc2U7XG4gICAgICAgIH1cbiAgICAgIH0gIFxuICAgIC5maWVsZC0tbmFtZS1maWVsZC10ZXh0e1xuICAgICAgbWFyZ2luLXRvcDogMmVtO1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCAoJHN0YW5kYXJkLXNjcmVlbil7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5maWVsZC0tbmFtZS1maWVsZC1sYW5kaW5nLXNlY3Rpb24ge1xuICAgICYgPiAuZmllbGRfX2l0ZW06bnRoLWNoaWxkKDUpIHtcbiAgICAgIC5maWVsZC0tbmFtZS1maWVsZC1jdGEtYnV0dG9ue1xuICAgICAgbWF4LXdpZHRoOiAxNDMwcHg7XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIH0gXG5cbiAgfVxufVxuXG4vL01PQklMRSBTRUNUSU9OIElNQUdFU1xuLmZpZWxkLS1uYW1lLWZpZWxkLWNvbHVtbi0xLTEgaW1nLm1vYmlsZXtcbiAgJjpmaXJzdC1jaGlsZHtcbiAgICBtYXJnaW4tdG9wOiA1ZW07XG4gIH1cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCAoJHN0YW5kYXJkLXNjcmVlbikge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbi8vQWRqdXN0IEJhY2tncm91bmQgaW1hZ2VzIGJlc2lkZSBjb250ZW50XG5cbiAucGFyYWdyYXBoLS10eXBlLS1zZWN0aW9uLXdyYXBwZXIge1xuICBwYWRkaW5nOiAwO1xuICBAaW5jbHVkZSBicmVha3BvaW50ICgkc3RhbmRhcmQtc2NyZWVuKSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuICAgICAgcCwgaDMsIGg0e1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRmb250LXNldC00ICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgICBoNHtcbiAgICAgICAgZm9udC1zaXplOiAxLjI1ZW07XG4gICAgICB9XG4gICAgLmZpZWxkX19pdGVtIHtcbiAgICAgIC5wYXJhZ3JhcGgtLXR5cGUtLWFkZC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogOTkxcHgpe1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50ICgkc3RhbmRhcmQtc2NyZWVuKXtcbiAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGluaXRpYWw7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDI5NXB4O1xuICAgICAgICAgIH1cbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50ICgkd2lkZS1zY3JlZW4pe1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdCB0b3AgIWltcG9ydGFudDtcbiAgICAgICAgICAgfVxuICAgICAgICAuZmllbGQtLW5hbWUtZmllbGQtcHJldHR5LXBhcmFncmFwaHMge1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQgKCRzdGFuZGFyZC1zY3JlZW4pe1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtNTAlO1xuICAgICAgICB9XG4gICAgICAgICAgLnBhcmFncmFwaC0tdHlwZS0tY29sdW1ucy0yIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICAgIHdpZHRoOiA5MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQgKCRzdGFuZGFyZC1zY3JlZW4pe1xuICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogNzVlbSl7XG4gICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTEyMnB4O1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgXG4gICAgICAgICAgIC5maWVsZC0tbmFtZS1maWVsZC10ZXh0e1xuICAgICAgICAgICAgIGg0e1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1zKCk7XG4gICAgICAgICAgICAgfVxuICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQgKCRzdGFuZGFyZC1zY3JlZW4pe1xuICAgICAgICAgICAgICAgICBwIHtcbiAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICBoNHtcbiAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4yNWVtO1xuICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDc1ZW0pe1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDVlbTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgfVxuICAgICAgICAgICAgLmZpZWxkLS1uYW1lLWZpZWxkLXNlY29uZC1jb2x1bW4sXG4gICAgICAgICAgICAuZmllbGQtLW5hbWUtZmllbGQtZmlyc3QtY29sdW1uIHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCAoJHN0YW5kYXJkLXNjcmVlbil7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMGVtO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgICAgICB3aWR0aDogNDglO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4vL3NlY29uZCBpbWFnZVxuICAuZmllbGQtLW5hbWUtZmllbGQtbGFuZGluZy1zZWN0aW9uIHtcbiAgICAmID4gLmZpZWxkX19pdGVtOm50aC1jaGlsZCg1KSB7XG5cbiAgICAgIC5wYXJhZ3JhcGgtLXR5cGUtLXNlY3Rpb24td3JhcHBlciB7XG4gICAgICAgIC5maWVsZC0tbmFtZS1maWVsZC1jdGEtYnV0dG9uIGF7XG4gICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzIGVhc2U7XG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc3RhbmRhcmQtc2NyZWVuKXtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAuZmllbGQtLW5hbWUtZmllbGQtc2VjdGlvbi1jb250ZW50ID4gLmZpZWxkX19pdGVtIHtcbiAgICAgICAgICAucGFyYWdyYXBoLS10eXBlLS1hZGQtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogOTkxcHgpe1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50ICgkc3RhbmRhcmQtc2NyZWVuKXtcbiAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGluaXRpYWw7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA1MCU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLTUwJTtcbiAgICAgICAgICAgIGNvbG9yOiAjMDAwMDAwO1xuICAgICAgICAgICAgaGVpZ2h0OiA2NzBweDsgXG4gICAgICAgICAgfVxuICAgICAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDk5cHgpe1xuICAgICAgICAgICAgICBoZWlnaHQ6IDYzNXB4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLmZpZWxkLS1uYW1lLWZpZWxkLXByZXR0eS1wYXJhZ3JhcGhzIHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCAoJHN0YW5kYXJkLXNjcmVlbil7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIC5wYXJhZ3JhcGgtLXR5cGUtLWNvbHVtbnMtMiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCAoJHN0YW5kYXJkLXNjcmVlbil7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCAoJHdpZGUtc2NyZWVuKXtcbiAgICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDE1NjBweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLmZpZWxkLS1uYW1lLWZpZWxkLXRleHR7XG4gICAgICAgICAgICAgICAgICBjb2xvcjogIzAwMDAwMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMmVtO1xuICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCAoJHN0YW5kYXJkLXNjcmVlbil7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAzZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7ICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDQ4MHB4O1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCAoJHdpZGUtc2NyZWVuKXtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDVlbTtcbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgIHVse1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgICAgICBsaXtcbiAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogIzAwMDAwMDtcbiAgICAgICAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGR7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC8qSWNvbiBzdHlsZXMqL1xuICB1bC5pY29uLWxpc3R7XG4gICAgQGluY2x1ZGUgbm8tYnVsbGV0cztcbiAgICBAaW5jbHVkZSBjbGVhcmZpeCh0cnVlKTtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xuICAgIC13ZWJraXQtYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgbWF4LXdpZHRoOiAxNzBweDtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYXJyb3ctc2NyZWVuLW1heCl7XG4gICAgICBwYWRkaW5nOiAzZW0gMDtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc3RhbmRhcmQtc2NyZWVuKXtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIG1heC13aWR0aDogODMwcHg7XG4gICAgICAvL3BhZGRpbmc6IDNlbSAwO1xuICAgIH1cblxuICAgIGxpe1xuICAgIG1hcmdpbi1ib3R0b206IDMuMTI1JTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4OiAxIDAgY2FsYygxMDAlIC0gMTBweCk7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBwYWRkaW5nOiAwLjllbTtcbiAgICBtYXJnaW4tdG9wOiAyZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFycm93LXNjcmVlbi1tYXgpe1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgZmxleDogMSAwIGNhbGMoMTUlIC0gMTBweCk7XG4gICAgICB9XG4gICAgfVxuICAgIGltZyB7XG4gICAgICBoZWlnaHQ6ICA4ZW07XG4gICAgICBtYXgtd2lkdGg6IDhlbTtcbiAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLDAsMCk7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGJvcmRlcjogNXB4IHNvbGlkICNjY2NjY2M7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgcGFkZGluZzogMWVtO1xuICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hcnJvdy1zY3JlZW4tbWF4KXtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7ICBcbiAgICAgIH1cbiAgICB9XG4gICAgc3BhbntcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgbWFyZ2luLXRvcDogMmVtO1xuICAgICAgZm9udC13ZWlnaHQ6ICRib2xkO1xuICAgIH1cbiAgfVxuXG4vL0NUQSBidXR0b25zXG4ucGFyYWdyYXBoLS10eXBlLS1jdGF7XG4gIHBhZGRpbmc6IDIwcHggMDtcblxuICAuZmllbGQtLW5hbWUtZmllbGQtY3RhLWJ1dHRvbntcbiAgICBmb250LXNpemU6IDEuMjVlbTtcbiAgICBhe1xuICAgICAgZm9udC1zaXplOiAxLjI1ZW07XG4gICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMgZWFzZTtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHN0YW5kYXJkLXNjcmVlbil7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtNTAlO1xuICAgICAgfVxuICAgIH1cbiAgfSBcbn0gXG4vKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIFNVQk1JU1NJT04gRk9STVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuLmZpZWxkLS10eXBlLXdlYmZvcm0ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGVjaGlkbmEtcmVkO1xufVxuICAud2ViZm9ybS1zdWJtaXNzaW9uLWZvcm17XG4gICAgd2lkdGg6IDkwJTtcbiAgICBtYXJnaW46IGF1dG87XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBtYXJnaW4tdG9wOiA1ZW07XG4gICAgcGFkZGluZy10b3A6IDVlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogOGVtO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hcnJvdy1zY3JlZW4pe1xuICAgICAgbWF4LXdpZHRoOiA0MzBweDtcbiAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIH1cbiAgICBoMywgc3Ryb25ne1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIH1cbiAgICB9XG4gICAgLndlYmZvcm0tc3VibWlzc2lvbi1mb3Jte1xuICAgICBpbnB1dCwgdGV4dGFyZWEge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYm9yZGVyOiBzb2xpZCAxcHggI2ZmZjtcbiAgICAgICAgcGFkZGluZzogMC41ZW07XG4gICAgICAgIG1hcmdpbi10b3A6IDAuNWVtO1xuICAgICAgICBjb2xvcjogIzAwMDAwMDtcbiAgICAgIH1cbiAgICAgIGxhYmVse1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgIH1cbiAgICAgIC53ZWJmb3JtLWJ1dHRvbi0tc3VibWl0e1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MHB4O1xuICAgICAgICBwYWRkaW5nOiAwLjllbTtcbiAgICAgICAgYmFja2dyb3VuZDogIzk5MDAyNTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjOTkwMDI1O1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuNXMgZWFzZTsgXG4gICAgICAgICY6aG92ZXJ7XG4gICAgICAgIGJhY2tncm91bmQ6ICMzMDMwMzA7XG4gICAgICAgIGJvcmRlci1jb2xvcjogIzMwMzAzMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxufSIsIi8qIHNlY3Rpb25zL19ibG9nLnNjc3MgKi9cbi8vIGFueXRoaW5nIGJsb2cgcmVsYXRlZCBzaG91bGQgYmUgaW1wb3J0ZWQgaGVyZSwgZnJvbSB0aGUgbGFuZGluZyBwYWdlLFxuLy8gcmVjZW50IGJsb2cgZW50cmllcyBvbiB0aGUgaG9tZSBwYWdlXG5cbkBpbXBvcnQgJ3NlY3Rpb25zL2Jsb2cvbm9kZS1ibG9nJztcbiIsIi8qIHNlY3Rpb25zL2Jsb2cvX25vZGUtYmxvZy5zY3NzICovXG4vLyBjb250YWlucyBub2RlIHNwZWNpZmljIHN0eWxlcyB0byBibG9nXG5cbi5wYXRoLWlzbGFuZG9yYS1ibG9nLCAubm9kZS0tdHlwZS1hcnRpY2xle1xuXHQjaGVhZGVye1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cblx0LmxheW91dC1jb250YWluZXJ7XG5cdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0bWF4LXdpZHRoOiAxMDAlO1xuXHRcdC5yZWdpb24tLWNvbnRlbnQtcHJlZml4e1xuXHRcdFx0YmFja2dyb3VuZDogIzMwMzAzMDtcblx0XHRcdCNibG9jay1kZS10aGVtZS1wYWdlLXRpdGxle1xuXHRcdFx0XHRtYXgtd2lkdGg6IDk2MHB4O1xuXHRcdFx0XHR3aWR0aDogOTAlO1xuXHRcdFx0XHRtYXJnaW46IDAgYXV0bztcblx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0XHRoMXtcblx0XHRcdFx0YmFja2dyb3VuZDogbm9uZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHQudmlldy1jb250ZW50LCBhcnRpY2xlLm5vZGUtLXZpZXctbW9kZS1mdWxsIHtcblx0XHQgICAgbWF4LXdpZHRoOiA5NjBweDtcblx0XHQgICAgbWFyZ2luOiAwIGF1dG87XG5cdFx0ICAgIHBhZGRpbmc6IDVlbSAwO1xuXHRcdCAgICAudmlld3Mtcm93IHtcblx0XHRcdCAgICBwYWRkaW5nOiA0ZW0gMDtcblx0XHRcdCAgICBib3JkZXItdG9wOiAxcHggc29saWQgIzMwMzAzMDtcblx0XHRcdCAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHQgICAgJjpmaXJzdC1jaGlsZHtcblx0XHRcdCAgICBcdGJvcmRlci10b3A6IG5vbmU7XG5cdFx0XHQgICAgfVxuXHRcdFx0ICAgIGgye1xuXHRcdFx0ICAgIFx0Zm9udC1mYW1pbHk6ICRmb250LXNldC0zO1xuXHRcdFx0ICAgIFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0XHQgICAgXHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdFx0ICAgIFx0bWFyZ2luLWJvdHRvbTogMC41ZW07XG5cdFx0XHQgICAgXHRhe1xuXHRcdFx0ICAgIFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0XHQgICAgXHR9XG5cdFx0XHQgICAgfVxuXHRcdFx0ICAgIC5ub2RlLXJlYWRtb3Jle1xuXHRcdFx0ICAgIFx0cGFkZGluZzogMDtcblx0XHRcdFx0ICAgIGF7XG5cdFx0XHRcdCAgICBcdEBleHRlbmQgLmJ0bjtcblx0XHRcdFx0ICAgIFx0QGV4dGVuZCAuYnRuLXByaW1hcnk7XG5cdFx0XHRcdCAgICBcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0ICAgIFx0Ym90dG9tOiAwO1xuXHRcdFx0XHQgICAgXHRsZWZ0OiAwO1xuXHRcdFx0XHQgICAgfVxuXHRcdFx0XHR9XG5cdFx0XHRcdC5ub2RlX19jb250ZW50e1xuXHRcdFx0XHRcdHBhZGRpbmctYm90dG9tOiAzZW07XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0YS5pc2xhbmRvcmEtcmV0dXJuIHtcblx0XHQgICAgd2lkdGg6IDkwJTtcblx0XHQgICAgbWF4LXdpZHRoOiA5NjBweDtcblx0XHQgICAgbWFyZ2luOiAwIGF1dG87XG5cdFx0ICAgIGRpc3BsYXk6IGJsb2NrO1xuXHRcdCAgICBtYXJnaW4tYm90dG9tOiAyZW07XG5cdFx0ICAgICY6YmVmb3Jle1xuXHRcdCAgICBcdGZvbnQtZmFtaWx5OiAnRm9udEF3ZXNvbWUnO1xuXHRcdCAgICBcdGNvbnRlbnQ6ICdcXGYwNTMnO1xuXHRcdCAgICBcdG1hcmdpbi1yaWdodDogNXB4O1xuXHRcdCAgICBcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cblx0XHQgICAgfVxuXHRcdH1cblx0fVxufVxuXG4ubm9kZS1ibG9ne1xuXG59XG4iLCIvKiBzZWN0aW9ucy9fZHJ1cGFsLXRyYWluaW5nLnNjc3MgKi9cblxuQGltcG9ydCAnc2VjdGlvbnMvZHJ1cGFsX3RyYWluaW5nL25vZGUtZHJ1cGFsLXRyYWluaW5nJztcbkBpbXBvcnQgJ3NlY3Rpb25zL2RydXBhbF90cmFpbmluZy92aWV3LWRydXBhbC10cmFpbmluZyc7XG5AaW1wb3J0ICdzZWN0aW9ucy9kcnVwYWxfdHJhaW5pbmcvd2ViZm9ybS1kcnVwYWwtdHJhaW5pbmcnOyIsIi5ub2RlLS10eXBlLXRyYWluaW5nLXByb2dyYW0ge1xuXHQucGFnZS10aXRsZSB7XG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkc3RhbmRhcmQtc2NyZWVuKSB7XG5cdFx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRcdFx0YmFja2dyb3VuZC1zaXplOiBjb3Zlcjtcblx0XHRcdGJhY2tncm91bmQtYmxlbmQtbW9kZTogb3ZlcmxheTtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC43KTtcblx0XHR9XG5cdFx0QG1lZGlhIChtYXgtd2lkdGg6ICRtZWRpdW0tc2NyZWVuLW1heCkge1xuXHRcdFx0YmFja2dyb3VuZC1pbWFnZTogbm9uZSAhaW1wb3J0YW50O1xuXHRcdH1cblx0fVxuXG5cdCNtYWluIHtcblx0XHRwYWRkaW5nOiBtcygtMSkgbXMoMykgbXMoMykgbXMoMyk7XG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkbmFycm93LXNjcmVlbikge1xuXHRcdFx0cGFkZGluZzogbXMoMykgbXMoNSk7XG5cdFx0fVxuXHR9XG5cblx0LmZpZWxkLS1uYW1lLWZpZWxkLWxlbmd0aCB7XG5cdFx0cCB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiBtcygpO1xuXHRcdH1cblx0fVxuXG5cdC5iYWNrIHtcblx0XHRib3JkZXItYm90dG9tOiBtcygtNSkgc29saWQgJHVpLWJvcmRlcnMtY29sb3I7XG5cdFx0bWFyZ2luLWJvdHRvbTogbXMoNCk7XG5cdFx0cGFkZGluZy1ib3R0b206IG1zKDQpO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG5cblx0LmZpZWxkLS1uYW1lLWZpZWxkLXByaWNlIHtcblx0XHRtYXJnaW4tYm90dG9tOiBtcygyKTtcblx0fVxuXG5cdHAge1xuXHRcdG1hcmdpbi1ib3R0b206IG1zKC00KTtcblx0fVxuXG5cdGgzIHtcblx0XHRtYXJnaW4tdG9wOiBtcygxKTtcblx0fVxuXG5cdHVsLCBvbCB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0fVxufSIsIi5ub2RlLS10eXBlLXdlYmZvcm0ge1xuXHQjbWFpbiB7XG5cdFx0cGFkZGluZzogbXMoLTEpIG1zKDMpIG1zKDMpIG1zKDMpO1xuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hcnJvdy1zY3JlZW4pIHtcblx0XHRcdHBhZGRpbmc6IG1zKDMpIG1zKDUpO1xuXHRcdH1cblx0fVxuXG5cdC5pdGVtLWxpc3Qge1xuXHRcdGRpc3BsYXk6IC13ZWJraXQtYm94O1xuXG5cdFx0LmRydXBhbC10cmFpbmluZy1yb3cge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogc2hhZGUod2hpdGUsNSUpO1xuXHRcdFx0cGFkZGluZzogbXMoLTEpO1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogZ3V0dGVyLXNwYW4oMyk7XG5cdFx0XHR0cmFuc2l0aW9uOiAwLjNzO1xuXG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KCRzbWFsbC1zY3JlZW4gJHN0YW5kYXJkLXNjcmVlbikge1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiBndXR0ZXItc3BhbigpO1xuXHRcdFx0fVxuXG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KCRzdGFuZGFyZC1zY3JlZW4pIHtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogZ3V0dGVyLXNwYW4oKTtcblx0XHRcdFx0QGluY2x1ZGUgZmxvYXQtc3Bhbig2LDEpO1xuXHRcdFx0XHQmOm50aC1jaGlsZCgybisyKXtcblx0XHRcdFx0XHRAaW5jbHVkZSBmbG9hdC1zcGFuKDYsJ2xhc3QnKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBzaGFkZSh3aGl0ZSwxNSUpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHVsIHtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRmbGV4LXdyYXA6IHdyYXA7XG5cblx0XHRcdGxpIHtcblx0XHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkc21hbGwtc2NyZWVuICRzdGFuZGFyZC1zY3JlZW4pIHtcblx0XHRcdFx0XHRmbGV4OiAxIDEgYXV0bztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC52aWV3cy1maWVsZCB7XG5cdFx0XHRtYXJnaW46IDAgMTBweDtcblx0XHR9XG5cblx0XHQudmlld3MtZmllbGQtZmllbGQtdGl0bGUtYmFja2dyb3VuZCB7XG5cdFx0XHRtYXJnaW46IDAgMCBtcygtMSkgMDtcblx0XHR9XG5cblx0XHQudmlld3MtZmllbGQtdGl0bGUge1xuXHRcdFx0Zm9udC1zaXplOiAxLjVlbTtcblx0XHRcdGNvbG9yOiAkZWNoaWRuYS1yZWQ7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAwLjI1ZW07XG5cdFx0fVxuXHRcblx0XHQudmlld3MtZmllbGQtZmllbGQtYnlsaW5lIGgzIHtcblx0XHRcdGZvbnQtc2l6ZTogMS4yZW07XG5cdFx0XHRjb2xvcjogYmxhY2s7XG5cdFx0XHRtYXJnaW4tdG9wOiA1cHg7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdH1cblx0XG5cdFx0LnZpZXdzLWZpZWxkLXZpZXctbm9kZSB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblx0fVxufSIsIi5ub2RlLS10eXBlLXdlYmZvcm0ge1xuICAucGFnZS10aXRsZSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc3RhbmRhcmQtc2NyZWVuKSB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoL3RoZW1lcy9jdXN0b20vZGVfdGhlbWUvaW1nL2RydXBhbC10cmFpbmluZy9kcnVwYWx0cmFpbmluZ21haW4ucG5nKTtcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgYmFja2dyb3VuZC1ibGVuZC1tb2RlOiBvdmVybGF5O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjcpO1xuICAgIH1cbiAgfVxufVxuXG4vLyBEcnVwYWwgdHJhaW5pbmcgZm9ybSBzdHlsaW5nXG4ubm9kZS0tdHlwZS13ZWJmb3JtLCAubm9kZS0tdHlwZS10cmFpbmluZy1wcm9ncmFtIHtcbiAgZm9ybSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkd2VpcmQtc2NyZWVuKSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cblxuICAgIGxhYmVsIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLmpzLWZvcm0taXRlbSB7XG4gICAgICB3aWR0aDogMTAwJTsgXG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICAgICAgd2lkdGg6IDcwJTtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc3RhbmRhcmQtc2NyZWVuKSB7XG4gICAgICAgIEBpbmNsdWRlIGZsb2F0LXNwYW4oNiwxKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuZm9ybS1lbWFpbCB7XG4gICAgICBwYWRkaW5nOiAwLjVlbTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgJHVpLWJvcmRlcnMtY29sb3I7XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hcnJvdy1zY3JlZW4pIHtcbiAgICAgICAgaGVpZ2h0OiA1NnB4O1xuICAgICAgfVxuICAgIH1cblxuICAgIC5mb3JtLWFjdGlvbnMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkd2VpcmQtc2NyZWVuKSB7XG4gICAgICAgIHdpZHRoOiAyNSU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA1JTtcblxuICAgICAgICAuYnRuIHtcbiAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc3RhbmRhcmQtc2NyZWVuKSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuXG4gICAgICAgIC5idG4ge1xuICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwiLyogX25hdmlnYXRpb24uc2NzcyAqL1xuLy8gY29udGFpbnMgc3R5bGVzIGZvciBhbGwgbmF2aWdhdGlvbiBzeXN0ZW1zLlxuLy8gZWcuIG1haW4gbmF2aWdhdGlvbiwgc3ViIG5hdmlnYXRpb24sIHBhZ2luYXRpb24sIGJyZWFkY3J1bWJzLFxuLy8gZm9vdGVyIHNpdGVtYXAgbWVudXNcblxuLm1lbnV7XG4gIEBpbmNsdWRlIHJlc2V0O1xuICBAaW5jbHVkZSBuby1idWxsZXRzO1xufVxuXG5AaW1wb3J0ICduYXZpZ2F0aW9uL2Jsb2NrLW1haW4tbmF2JztcbkBpbXBvcnQgJ25hdmlnYXRpb24vYmxvY2stc2Vjb25kYXJ5LW5hdic7XG5AaW1wb3J0ICduYXZpZ2F0aW9uL2Jsb2NrLXN1Yi1uYXYnO1xuQGltcG9ydCAnbmF2aWdhdGlvbi9icmVhZGNydW1iJztcbkBpbXBvcnQgJ25hdmlnYXRpb24vcGFnZXInO1xuIiwiLyogbmF2aWdhdGlvbi9fYmxvY2stbWFpbi1uYXYuc2NzcyAqL1xuLm1lbnUtLW1haW57XG4gIC8vIGdlbmVyYWwgbWVudSBzdHlsZXMgYW5kIHJlc2V0c1xuXG4gIC5tZW51e1xuICAgIEBpbmNsdWRlIHJlc2V0O1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgIEBpbmNsdWRlIG5hdmlnYXRpb24tbGlzdDtcbiAgICBwYWRkaW5nOiBtcygyKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzaGFkZSgkZWNoaWRuYS1yZWQsMzUlKTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRlY2hpZG5hLXJlZDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuICB9XG5cbiAgLm1lbnUgbGl7XG4gICAgQGluY2x1ZGUgcmVzZXQ7XG4gICAgQGluY2x1ZGUgcmVzZXQtZm9udDtcbiAgfVxuXG4gIC5tZW51IGF7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgLy8gTUFJTiBMRVZFTCBCVVRUT05TXG5cbiAgLm1lbnUgPiBsaXtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogbXMoLTIpO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgbWFyZ2luLWJvdHRvbTogbXMoLTQpO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIH1cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzdGFuZGFyZC1zY3JlZW4pIHtcbiAgICAgIG1hcmdpbi1yaWdodDogbXMoKTtcbiAgICB9XG4gICAgJi5sYXN0e1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIH1cbiAgfVxuXG4gIC5tZW51IGxpLmZpcnN0e1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG5cbiAgLm1lbnUgbGkubGFzdHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgLm1lbnUgYXtcbiAgICBmb250LXNpemU6IG1zKDEpO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcGFkZGluZzogbXMoLTMpIG1zKC0xKTtcbiAgICB0cmFuc2l0aW9uOiAuM3MgbGluZWFyO1xuICAgIGJvcmRlci1yYWRpdXM6IG1zKDIpO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hcnJvdy1zY3JlZW4pIHtcbiAgICAgIHBhZGRpbmc6IG1zKC0xKTtcbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWVudS1sYXJnZS1zY3JlZW4pIHtcbiAgICAgIHBhZGRpbmc6IG1zKC0xKTtcbiAgICAgIGZvbnQtc2l6ZTogbXMoMikgKiAxLjA0O1xuICAgIH1cbiAgICAmOmhvdmVye1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYmFja2dyb3VuZDogbGlnaHRlbigkZGFyay1yZWQsIDglKTtcblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkd2VpcmQtc2NyZWVuKSB7XG4gICAgICAgIGJhY2tncm91bmQ6IGRhcmtlbigkZWNoaWRuYS1yZWQsIDglKTtcbiAgICAgIH1cbiAgICB9XG4gICAgJi5pcy1hY3RpdmUge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYmFja2dyb3VuZDogZGFya2VuKCRlY2hpZG5hLXJlZCwgOCUpO1xuICAgIH1cbiAgfVxuXG4gIC5tZW51IC5sYXN0e1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgfVxufVxuXG4vL1RyYWlsaW5nIEFjdGl2ZSBMaW5rIGZvciB3b3JrIGRldGFpbHMvY2FzZS1zdHVkeSBwYWdlc1xuLy8gLndvcmstZGV0YWlscy1wYWdlIHtcbi8vICAgLm1lbnUtLW1haW57XG4vLyAgICAgLm1lbnUgYVtkYXRhLWRydXBhbC1saW5rLXN5c3RlbS1wYXRoPVwibm9kZS8zXCJdIHtcbi8vICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuLy8gICAgICAgICBiYWNrZ3JvdW5kOiBkYXJrZW4oJGVjaGlkbmEtcmVkLCA4JSk7XG4vLyAgICAgfVxuLy8gICB9XG4vLyB9XG5cbiNjb250YWN0LWJ1dHRvbixcbiNtZW51LXRyaWdnZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogbXMoMik7XG4gIHotaW5kZXg6IDEwMDA7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDUxcHg7XG4gIHdpZHRoOiA1MXB4O1xuICBiYWNrZ3JvdW5kOiBuby1yZXBlYXQgY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4zcyBlYXNlLW91dDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAmOmhvdmVye1xuICAgIG9wYWNpdHk6IC42O1xuICB9XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxufVxuXG4uaWNvbi1idG57XG4gIEBpbmNsdWRlIHNxdWlzaC10ZXh0O1xufVxuXG4jY29udGFjdC1idXR0b257XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnL3RoZW1lcy9jdXN0b20vZGVfdGhlbWUvaW1nL2RlLWljb25zX2NvbnRhY3QucG5nJyk7XG4gIHJpZ2h0OiBtcyg2KTtcbn1cblxuI21lbnUtdHJpZ2dlcntcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcvdGhlbWVzL2N1c3RvbS9kZV90aGVtZS9pbWcvZGUtaWNvbnNfbWVudS5wbmcnKTtcbiAgbGVmdDogbXMoNik7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBvdXRsaW5lOiAgbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXI6IDA7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSA1MDBtcyBlYXNlO1xuICAmLmFjdGl2ZS10cmlnZ2Vye1xuICAgIG9wYWNpdHk6ICAuNjtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gIH1cbn1cbiIsIi8qIG5hdmlnYXRpb24vX2Jsb2NrLXNlY29uZGFyeS1uYXYuc2NzcyAqL1xuLmJsb2NrLXNlY29uZGFyeS1uYXZ7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgLm1lbnV7XG4gICAgQGluY2x1ZGUgcmVzZXQ7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgQGluY2x1ZGUgbmF2aWdhdGlvbi1saXN0O1xuICB9XG5cbiAgLm1lbnUgbGl7XG4gICAgQGluY2x1ZGUgcmVzZXQ7XG4gICAgQGluY2x1ZGUgcmVzZXQtZm9udDtcbiAgfVxuXG4gIC5tZW51IGF7XG4gICAgbWFyZ2luLXJpZ2h0OiBtcygpO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgfVxuXG4gIC5tZW51IC5sYXN0IGF7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICB9XG59XG4iLCIvKiBuYXZpZ2F0aW9uL19ibG9jay1zdWItbmF2LnNjc3MgKi9cbi5ibG9jay1zdWItbmF2e1xuICAubWVudSBsaXtcbiAgICBAaW5jbHVkZSByZXNldDtcbiAgICBAaW5jbHVkZSByZXNldC1mb250O1xuICB9XG4gIC5tZW51IC5leHBhbmRlZHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIC5tZW51IHtcbiAgICAgIHBhZGRpbmc6IG1zKC0yKTtcbiAgICAgIGxpe1xuICAgICAgICBhe1xuICAgICAgICAgIGZvbnQtc2l6ZTogbXMoLTEpO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiBtcygyKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICAubWVudSAubGFzdHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG4iLCIvKiBuYXZpZ2F0aW9uL19icmVhZGNydW1iLnNjc3MgKi9cblxuLmJyZWFkY3J1bWJ7XG4gIEBpbmNsdWRlIHJlc2V0O1xuICAvLyBhe1xuICAvLyB9XG59XG4iLCIvKiBuYXZpZ2F0aW9uL19wYWdlci5zY3NzICovXG5cbi5wYWdlcntcbiAgQGluY2x1ZGUgcmVzZXQ7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBtYXJnaW4tdG9wOiBtcygxKTtcbiAgQGluY2x1ZGUgbm8tYnVsbGV0cztcbiAgbGl7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgQGluY2x1ZGUgcmVzZXQtZm9udDtcbiAgfVxuXG4gIC5wYWdlci1jdXJyZW50e1xuICAgIHBhZGRpbmc6IG1zKC00KSBtcygtMSk7XG4gIH1cblxuICAucGFnZXItZWxsaXBzaXN7XG4gICAgbWFyZ2luLXJpZ2h0OiBtcygpO1xuICB9XG5cbiAgYXtcbiAgICBtYXJnaW4tcmlnaHQ6IG1zKC0xKTtcbiAgfVxuXG4gIC5wYWdlci1uZXh0e1xuICAgIGNsZWFyOiBsZWZ0O1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNtYWxsLXNjcmVlbikge1xuICAgICAgY2xlYXI6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLnBhZ2VyLW5leHQsLnBhZ2VyLWxhc3R7XG4gICAgbWFyZ2luLXRvcDogbXMoLTEpO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNtYWxsLXNjcmVlbikge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi8qIF9yZXZpc2lvbnMuc2NzcyAqL1xuLy8gX3JldmlzaW9ucy5zY3NzIGNvbnRhaW5zIGVtZXJnZW5jeSByZXZpc2lvbnMgb3IgZml4ZXMgZm9yIGEgc3VwcG9ydGluZ1xuLy8gZGV2ZWxvcGVyIGlmIHRoZSBtYWluIGRldmVsb3BlciBpcyB1bmF2YWlsYWJsZVxuIiwiLyogX2llLnNjc3MgKi9cbi8vIE1pbmltdW0gc3VwcG9ydGVkIEludGVybmV0IEV4cGxvcmVyIHZlcnNpb25cbi8vIGh0dHA6Ly95b3Vyc2l0ZS5jYS9hZG1pbi9hcHBlYXJhbmNlL3NldHRpbmdzL2RlX3RoZW1lXG5cbi8vIFRoZSBtaW5pbXVtIHZlcnNpb24gbnVtYmVyIG9mIEludGVybmV0IEV4cGxvcmVyIHRoYXQgeW91IGFjdGl2ZWx5IHN1cHBvcnQuXG4vLyBUaGlzIHdpbGwgb25seSBjaGFuZ2UgdGhlIGllIGNsYXNzIGFkZGVkIHRvIHRoZSBib2R5LiBZb3UgY2FuIHRoZW5cbi8vIGNyZWF0ZSBhIHNlcGFyYXRlIFNBU1MgcGFydGlhbCBhbmQgaW1wb3J0IGl0IHdpdGhpbiB0aGlzIGZpbGUuIFNlZVxuLy8gaWUvX2llOS5zY3NzIGFzIGFuIGV4YW1wbGVcbi8vIChjdXJyZW50bHkgc2V0IHRvIEludGVybmV0IEV4cGxvcmVyIDkpXG5cbi8vIElmIHlvdSBNVVNUIGhhdmUgc3R5bGVzaGVldHMgZm9yIHNwZWNpZmljIGJyb3dzZXIgdmVyc2lvbnMsIGNyZWF0ZSBhblxuLy8gYXBwcm9wcmlhdGUgSUUgY29uZGl0aW9uYWwgY29tbWVudCBpbiBodG1sLnRwbC5waHAgYW5kIGEgbmV3IGZpbGUuXG4vLyBlZy4gaWU4LnNjc3MuIEJlZ2luIHRoZSBkb2N1bWVudCB3aXRoIEBpbXBvcnQgJ3RoZW1lLWNvbW1vbnMnIGFuZCB0aGVuXG4vLyAuaWU4e30uIFRhbGsgdG8gTWlrZSBQYWNlIHdpdGggYW55IHF1ZXN0aW9ucy5cblxuLy8gQGltcG9ydCBcImllL2llOVwiO1xuIiwiLyogX3ByaW50LnNjc3MgKi9cbi8vIGNvbnRhaW5zIGRlZmF1bHQgYm9pbGVycGxhdGUgcHJpbnQgcmVzZXRzLCBlY2hpZG5hIGRlZmF1bHQgdGhlbWUgc3BlY2lmaWNcbi8vIHJlc2V0cywgYW5kIHByb2plY3QgdGhlbWUgc3BlY2lmaWMgcmVzdHMuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBQcmludCBzdHlsZXMuXG4gICBJbmxpbmVkIHRvIGF2b2lkIHRoZSBhZGRpdGlvbmFsIEhUVFAgcmVxdWVzdDpcbiAgIGh0dHA6Ly93d3cucGhwaWVkLmNvbS9kZWxheS1sb2FkaW5nLXlvdXItcHJpbnQtY3NzL1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLy8gZGVmYXVsdFxuXG5AbWVkaWEgcHJpbnQge1xuICAgICosXG4gICAgKjpiZWZvcmUsXG4gICAgKjphZnRlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7IC8qIEJsYWNrIHByaW50cyBmYXN0ZXI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0dHA6Ly93d3cuc2FuYmVpamkuY29tL2FyY2hpdmVzLzk1MyAqL1xuICAgICAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIHRleHQtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBcIlRpbWVzXCJcbiAgICB9XG5cbiAgICBhLFxuICAgIGE6dmlzaXRlZCB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cblxuICAgIC8vIGFbaHJlZl06YWZ0ZXIge1xuICAgICAgICAvLyBjb250ZW50OiBcIiAoXCIgYXR0cihocmVmKSBcIilcIjtcbiAgICAvLyB9XG5cbiAgICAvLyBhYmJyW3RpdGxlXTphZnRlciB7XG4gICAgICAgIC8vIGNvbnRlbnQ6IFwiIChcIiBhdHRyKHRpdGxlKSBcIilcIjtcbiAgICAvLyB9XG5cbiAgICAvKlxuICAgICAqIERvbid0IHNob3cgbGlua3MgdGhhdCBhcmUgZnJhZ21lbnQgaWRlbnRpZmllcnMsXG4gICAgICogb3IgdXNlIHRoZSBgamF2YXNjcmlwdDpgIHBzZXVkbyBwcm90b2NvbFxuICAgICAqL1xuXG4gICAgYVtocmVmXj1cIiNcIl06YWZ0ZXIsXG4gICAgYVtocmVmXj1cImphdmFzY3JpcHQ6XCJdOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICB9XG5cbiAgICBwcmUsXG4gICAgYmxvY2txdW90ZSB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM5OTk7XG4gICAgICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgICB9XG5cbiAgICAvKlxuICAgICAqIFByaW50aW5nIFRhYmxlczpcbiAgICAgKiBodHRwOi8vY3NzLWRpc2N1c3MuaW5jdXRpby5jb20vd2lraS9QcmludGluZ19UYWJsZXNcbiAgICAgKi9cblxuICAgIHRoZWFkIHtcbiAgICAgICAgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwO1xuICAgIH1cblxuICAgIHRyLFxuICAgIGltZyB7XG4gICAgICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBwLFxuICAgIGgyLFxuICAgIGgzIHtcbiAgICAgICAgb3JwaGFuczogMztcbiAgICAgICAgd2lkb3dzOiAzO1xuICAgIH1cblxuICAgIGgyLFxuICAgIGgzIHtcbiAgICAgICAgcGFnZS1icmVhay1hZnRlcjogYXZvaWQ7XG4gICAgfVxuXG4gICAgLy8gdGhlbWUgZGVmYXVsdCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgICBodG1sLGJvZHl7XG4gICAgICAgIEBpbmNsdWRlIHJlc2V0LWZvbnQ7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBHZW9yZ2lhLCDigJhUaW1lcyBOZXcgUm9tYW7igJksIHNlcmlmO1xuICAgICAgICBmb250LXNpemU6IDEycHQ7XG4gICAgfVxuXG4gICAgYm9keXtcbiAgICAgICAgcGFkZGluZzogMWVtO1xuICAgIH1cblxuICAgIC5jb250YWluZXIsXG4gICAgLnJlZ2lvbixcbiAgICAuYmxvY2t7XG4gICAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIGRpc3BsYXk6ICBibG9jayAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5jb250YWluZXJ7XG4gICAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICB9XG5cbiAgICBoMSxoMixoMyxoNCxoNSxoNntcbiAgICAgICAgQGluY2x1ZGUgcmVzZXQtZm9udDtcbiAgICAgICAgQGluY2x1ZGUgcmVzZXQ7XG4gICAgICAgIHRleHQtaW5kZW50OiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1zKCk7XG4gICAgICAgIG1hcmdpbi10b3A6IG1zKCk7XG4gICAgfVxuXG4gICAgdWwsb2x7XG4gICAgICBsaXtcbiAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBkZWNpbWFsO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpbWcsXG4gICAgLmZhLFxuICAgICNmb290ZXIsXG4gICAgLmJsb2NrLW1haW4tbmF2XG4gICAge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG5cbiAgICAvLyB0aGVtZSBzcGVjaWZpYyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxufVxuIl0sIm1hcHBpbmdzIjoiO0FDQUEsc0JBQXNCO0FDQXRCO3dDQUV3QztBQUV4Qzs7Ozs7R0FLRztBQUNILEFBQUEsSUFBSSxDQUFDO0VBQ0Qsa0JBQWtCLEVBQUUsVUFBVztFQUM1QixlQUFlLEVBQUUsVUFBVztFQUN2QixVQUFVLEVBQUUsVUFBVyxHQUNsQzs7QUFFRCxBQUFBLENBQUMsRUFBRCxBQUFBLENBQUMsQUFHSSxPQUFPLEVBSFosQUFBQSxDQUFDLEFBSUksTUFBTSxDQUFDO0VBQ0osa0JBQWtCLEVBQUUsT0FBUTtFQUN6QixlQUFlLEVBQUUsT0FBUTtFQUNwQixVQUFVLEVBQUUsT0FBUSxHQUMzQjs7QUN4QlQsNEVBQTRFO0FB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 */
