@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 */
.btn-cta {
  color: #292B2D;
  border: 1px solid #66b83d;
  padding: 1.25em 1.95312em;
  text-align: center;
  width: 100%; }
  @media (min-width: 38em) {
    .btn-cta {
      font-size: 1em; } }
  .btn-cta:hover, .btn-cta.active {
    background-color: #66b83d;
    border: 1px solid #66b83d;
    color: #292B2D; }

figure {
  margin: 0;
  line-height: 0; }
  figure img {
    line-height: 0;
    width: 100%; }

figure.inline-image-center {
  width: 37.03704%;
  margin-top: 0.4096em;
  margin-bottom: 0.32768em; }
  figure.inline-image-center img {
    margin-left: auto;
    margin-right: auto;
    display: block;
    width: 100%; }

figure.inline-image-left {
  margin-left: 0; }

figure.inline-image-right {
  margin-right: 0; }

figcaption {
  border: 1px solid #CED3D6;
  padding: 0.8em 1em;
  line-height: 1.25em; }

/* _elements.scss */
html {
  font-size: 87.5%;
  color: #292B2D;
  overflow-y: scroll;
  min-height: 100%;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased; }
  @media (min-width: 38em) {
    html {
      font-size: 100%; } }

html, button, input, select, textarea {
  font-family: "Roboto", Helvetica, 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: 700; }

em {
  font-style: italic; }

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

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

h1, h2, h3, h4, h5, h6 {
  font-weight: 400; }
  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 {
  font-weight: 700;
  font-size: 1.5625em;
  margin-bottom: 0.32768em;
  line-height: 1.25em; }
  @media (min-width: 38em) {
    h1 {
      font-size: 2.44141em; } }
  h1 a {
    color: black; }
  .field-name-name-field h1 {
    margin-bottom: 1em; }

h2 {
  font-weight: 700;
  color: #00693c;
  font-size: 1.25em;
  margin-bottom: 0.512em;
  line-height: 1.25em; }
  @media (min-width: 38em) {
    h2 {
      font-size: 1.5625em; } }
  h2 a {
    text-decoration: none; }
    h2 a:hover {
      color: #292B2D; }

h3 {
  font-size: 1.25em;
  margin-bottom: 0.64em;
  line-height: 1.25em;
  font-weight: 700; }

h4 {
  margin-bottom: 0.512em;
  line-height: 1.25em;
  font-weight: 300; }

h5 {
  font-weight: 700;
  line-height: 1.25em;
  color: #00693c;
  text-transform: uppercase;
  letter-spacing: 0.16777em; }

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: 1em 0.8em 1em 1.25em;
  border-top: 8px solid #66b83d;
  border-bottom: 3px solid #66b83d;
  margin-left: 1.5625em;
  margin-right: 1.5625em; }
  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%;
  border: 1px solid #CED3D6; }
  table p {
    margin: 0;
    padding: 0; }
  table ul {
    margin-top: 0.512em;
    margin-bottom: 0; }
    table ul li:last-child {
      margin-bottom: 0; }
  table tbody {
    border: none; }
  table th, table td {
    padding: 0.8em 0.8em;
    vertical-align: top;
    font-size: 0.8em; }
    @media (min-width: 48em) {
      table th, table td {
        font-size: 1em;
        line-height: 1.25em; } }
  table th {
    border: 1px solid #00693c; }
  table td {
    border: 1px solid #CED3D6; }
  table tr.odd {
    background-color: white; }
  table tr:nth-child(odd) {
    background-color: white; }
  table th {
    color: white; }
  table th,
  table thead th {
    background-color: #00693c; }
  table caption {
    caption-side: bottom; }

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

ul {
  padding-left: 1.95312em; }
  ul li {
    list-style: disc; }
    @media (min-width: 38em) {
      ul li {
        line-height: 1.25em; } }

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; }

/* _drupal.scss */
/* drupal/_forms.scss */
.form-required,
.marker {
  color: red; }

/* 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 */
.layout-container, .block-views-events-block-5 .section-title, .block-views-events-block-1 h1, .block-views-news-block-1 h1 {
  position: relative;
  max-width: 1188px;
  margin: 0 auto;
  padding: 0 1.5625em; }
  .layout-container:after, .block-views-events-block-5 .section-title:after, .block-views-events-block-1 h1:after, .block-views-news-block-1 h1:after {
    content: "";
    display: table;
    clear: both; }
  @media (min-width: 38em) and (max-width: 55.9375em) {
    .layout-container, .block-views-events-block-5 .section-title, .block-views-events-block-1 h1, .block-views-news-block-1 h1 {
      padding: 0 6.38298%; } }
  @media (min-width: 56em) {
    .layout-container, .block-views-events-block-5 .section-title, .block-views-events-block-1 h1, .block-views-news-block-1 h1 {
      padding: 0 0.8em; } }

/*  @main layout regions
========================================================================== */
/* layout/_header.scss */
/* @header section */
#masthead {
  background-color: #00693c;
  padding: 1.95312em 0; }
  @media (min-width: 38em) {
    #masthead .layout-container .region, #masthead .block-views-events-block-5 .section-title .region, .block-views-events-block-5 #masthead .section-title .region, #masthead .block-views-events-block-1 h1 .region, .block-views-events-block-1 #masthead h1 .region, #masthead .block-views-news-block-1 h1 .region, .block-views-news-block-1 #masthead h1 .region {
      display: inline-block;
      vertical-align: middle;
      margin-left: -4px; } }
  @media (min-width: 38em) {
    #masthead .region-masthead-primary {
      width: 40.42553%;
      margin-right: 2.12766%; } }
  @media (min-width: 38em) {
    #masthead .region-masthead-primary .region-inner {
      padding-top: 0;
      padding-bottom: 0; } }
  #masthead .region-masthead-secondary .region-inner {
    line-height: 0; }
  @media (min-width: 38em) {
    #masthead .region-masthead-secondary {
      width: 57.44681%; } }
  @media (min-width: 56em) {
    #masthead .region-masthead-secondary {
      position: relative; } }

.region-navigation {
  padding: 0.8em 0;
  margin-bottom: 1em;
  border-bottom: 4px solid #CED3D6; }
  .front .region-navigation {
    border-bottom: none;
    margin-bottom: 0; }

/* layout/_content.scss */
/* @content section */
.section-content {
  margin: 0 0 1.5625em 0; }
  .section-content:after {
    content: "";
    display: table;
    clear: both; }
  .front .section-content {
    padding-top: 0; }

#main {
  margin-bottom: 1em; }
  .front #main {
    margin-top: 1.5625em;
    margin-bottom: 0; }

.front .region-content {
  display: none; }

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

#sidebar-second {
  margin-bottom: 1.95312em; }

#events {
  overflow: hidden; }

@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 featured news */
.not-front .region-featured-content {
  margin-bottom: 1.95312em; }

.region-cta-primary {
  margin-bottom: 1.5625em; }

/* @region events */
.region-events-primary,
.region-events-secondary {
  padding: 1.95312em 1.95312em;
  background-color: #ebedef; }
  @media (min-width: 48em) {
    .region-events-primary,
    .region-events-secondary {
      padding: 3.8147em 3.05176em 3.05176em 3.05176em; } }

.region-events-primary {
  background-color: #00693c; }
  @media (min-width: 48em) {
    .region-events-primary {
      width: 48.93617%;
      clear: right;
      float: left;
      margin-left: 0;
      margin-right: 2.12766%; } }

@media (min-width: 48em) {
  .region-events-secondary {
    width: 48.93617%;
    clear: right;
    float: right;
    margin-right: 0; } }

/* @region featured news */
.region-featured-news {
  background-color: #ebedef; }

.region-news {
  padding: 1.25em 0; }

/*  @region CTA */
.region-cta {
  background-color: #00693c;
  padding: 1.5625em 0;
  text-align: center; }
  @media (min-width: 38em) {
    .region-cta {
      padding: 1.95312em 0; } }

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

/*  @region main suffix */
/* layout/_footer.scss */
/* @footer section */
#footer {
  margin-top: 3.8147em; }

.region-social-media {
  padding: 1em;
  background-color: #ebedef;
  padding: 1.95312em 0; }
  @media (min-width: 38em) {
    .region-social-media {
      padding: 3.8147em 0; } }

.region-footer {
  border-top: 5px solid #66b83d;
  background-color: #00351e;
  padding: 1.95312em 0; }
  @media (min-width: 38em) {
    .region-footer {
      padding: 3.8147em 0; } }
  .region-footer a {
    color: white;
    text-transform: uppercase;
    text-decoration: none;
    font-size: 0.8em;
    margin-right: 0; }
    .region-footer a:hover {
      text-decoration: underline; }

.region-footer-secondary {
  padding-top: 1em; }

/* _objects.scss */
/* objects/_button.scss */
.btn, .view-events-page .view-filters .ui-tabs-nav li a, .view-events-page .view-filters .bef-checkboxes .form-type-bef-checkbox, .no-js .view-events-page #event-tabs ul li a {
  border: none;
  display: inline-block;
  text-transform: uppercase;
  position: relative;
  font-size: 0.8em;
  font-weight: 700;
  overflow: hidden;
  padding: 0.64em 1.5625em;
  text-decoration: none;
  border-radius: 3px;
  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, .view-events-page .view-filters .ui-tabs-nav li a, .view-events-page .view-filters .bef-checkboxes .form-type-bef-checkbox, .no-js .view-events-page #event-tabs ul li a {
      border-radius: 5px;
      padding: 0.8em 1.5625em; } }

.btn-primary {
  background-color: #66b83d;
  color: #292B2D;
  text-align: center; }
  .btn-primary:hover, .btn-primary:focus {
    color: white;
    background-color: #00693c; }

.btn-secondary, .no-js .view-events-page #event-tabs ul li a {
  border: 1px solid #00693c;
  color: #292B2D;
  text-align: center; }
  .btn-secondary:hover, .no-js .view-events-page #event-tabs ul li a:hover, .btn-secondary:focus, .no-js .view-events-page #event-tabs ul li a:focus {
    background-color: #66b83d;
    border: 1px solid #66b83d; }

.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: #CED3D6; }
  @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__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: #525456; }
  .card--default .card__supporting-text {
    border-bottom: 1px solid #CED3D6; }
  .card--default .card__button {
    color: #D32F2F; }
    .card--default .card__button:hover, .card--default .card__button:focus {
      background-color: #CED3D6;
      color: #292B2D; }

.de_bits_accordion {
  float: left;
  display: block;
  width: 100%; }

.card--accordion {
  box-shadow: none; }
  .card--accordion:after {
    content: "";
    display: table;
    clear: both; }
  .card--accordion .card__actions {
    padding: 0;
    border-bottom: solid 2px #CED3D6; }
    .card--accordion .card__actions button {
      margin: 0;
      padding: 0;
      text-align: left;
      border: none;
      background-color: transparent;
      display: block;
      width: 100%;
      color: #292B2D;
      font-size: 1rem;
      font-weight: 700;
      padding: 0.512em 0;
      font-weight: medium; }
      .card--accordion .card__actions button:focus {
        outline: none; }
    .card--accordion .card__actions span.material-icons {
      float: left;
      margin-right: 0.8em;
      color: #66b83d;
      font-weight: 700;
      font-size: 1.25em;
      border: 3px solid #66b83d;
      border-radius: 50%; }
      .card--accordion .card__actions span.material-icons:after {
        content: 'expand_more'; }
    .card--accordion .card__actions .card__toggle.card__toggle--active span.material-icons:after {
      content: 'expand_less'; }
  .card--accordion .card__inner {
    display: none;
    border-bottom: solid 1px #CED3D6; }
    .card--accordion .card__inner:last-of-type {
      border-bottom: none;
      border-top: solid 1px #CED3D6; }
  .card--accordion.card--default .card__supporting-text {
    border-bottom: none;
    padding: 0.8em; }

/* _objects.scss/ wysiwyg_layouts/ _wysiwyg-layouts.scss */
/* _wysiwyg-layouts.scss/_layout--two-col.scss */
.layout--two-col .layout__column-container {
  overflow: hidden;
  margin-bottom: 1em; }
  .layout--two-col .layout__column-container .layout__column {
    width: 48.93617%;
    clear: right;
    float: left;
    margin-left: 0;
    margin-right: 2.12766%; }
    .layout--two-col .layout__column-container .layout__column:last-child {
      width: 48.93617%;
      clear: right;
      float: right;
      margin-right: 0; }

/* _wysiwyg-layouts.scss/_layout--three-col.scss */
.layout--three-col .layout__column-container {
  overflow: hidden;
  margin-bottom: 1em; }
  .layout--three-col .layout__column-container .layout__column {
    width: 31.91489%;
    clear: right;
    float: left;
    margin-left: 0;
    margin-right: 2.12766%; }
    .layout--three-col .layout__column-container .layout__column:last-child {
      width: 31.91489%;
      clear: right;
      float: right;
      margin-right: 0; }

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

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

/* objects/_media-embed.scss */
.media_embed,
.embedded-video {
  position: relative;
  padding-bottom: 56.25%;
  padding-top: 30px;
  height: 0;
  overflow: hidden;
  margin-bottom: 1em; }

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

/* objects/_fields.scss */
.field {
  margin-bottom: 1em; }

.field-label {
  text-transform: uppercase;
  font-size: 0.8em;
  font-weight: 700; }

.field-name-field-header-image img {
  width: 100%; }

.field-name-field-photo-gallery,
.field-name-field-file-attachments,
.field-name-field-file {
  overflow: hidden; }
  .field-name-field-photo-gallery .field-label,
  .field-name-field-file-attachments .field-label,
  .field-name-field-file .field-label {
    background-color: #66b83d;
    display: block;
    line-height: 0.64em;
    font-size: 1em;
    font-weight: 700;
    margin-bottom: 1em; }
    .field-name-field-photo-gallery .field-label span,
    .field-name-field-file-attachments .field-label span,
    .field-name-field-file .field-label span {
      background-color: #ebedef;
      padding-right: 0.512em;
      margin-right: -4px; }
      .field-name-field-photo-gallery .field-label span.word1,
      .field-name-field-file-attachments .field-label span.word1,
      .field-name-field-file .field-label span.word1 {
        padding-left: 0.512em;
        margin-left: 0.8em; }

.field-name-field-file-attachments .field-label,
.field-name-field-file .field-label {
  background-color: #00693c; }

.field-name-field-images {
  overflow: hidden; }
  .field-name-field-images .field-item {
    width: 23.40426%;
    clear: right;
    float: left;
    margin-left: 0;
    margin-right: 2.12766%;
    display: inline-block;
    margin-top: 0.8em; }
    .field-name-field-images .field-item:nth-child(4n+4) {
      width: 23.40426%;
      clear: right;
      float: right;
      margin-right: 0; }

.list-display--images .field-name-field-images .field-item {
  width: 100%;
  margin-top: 0; }

.field-name-field-address .street-block,
.field-name-field-address .locality-block,
.field-name-field-address .country {
  font-weight: 300; }

/* objects/_views-ui.scss */
/* objects/_list-displays.scss */
.list-display .views-row {
  border-bottom: 3px solid #CED3D6;
  padding-top: 1.95312em;
  padding-bottom: 1.95312em;
  padding-top: 0;
  position: relative;
  overflow: hidden;
  padding-bottom: 1.25em;
  margin-bottom: 1.25em; }
  @media (min-width: 38em) {
    .list-display .views-row {
      padding-bottom: 1.25em;
      margin-bottom: 1.25em; } }
  .list-display .views-row:last-child {
    border-bottom: 0;
    margin-bottom: 0; }
  .list-display .views-row h2 a {
    text-decoration: none;
    color: #00693c; }
    .list-display .views-row h2 a:hover {
      color: #292B2D; }
  .list-display .views-row .field-name-field-address,
  .list-display .views-row .field-name-field-location {
    margin-bottom: 0;
    line-height: 1.25em;
    font-weight: 300; }
    @media (min-width: 29em) {
      .list-display .views-row .field-name-field-address,
      .list-display .views-row .field-name-field-location {
        font-size: 1.25em; } }
    .list-display .views-row .field-name-field-address a,
    .list-display .views-row .field-name-field-location a {
      text-decoration: none; }
      .list-display .views-row .field-name-field-address a:hover,
      .list-display .views-row .field-name-field-location a:hover {
        color: #005438; }
  .list-display .views-row .field-name-field-date {
    font-weight: 400; }
  .list-display .views-row .field-name-body {
    font-weight: 300; }

.list-display--images .field-name-field-image,
.list-display--images .field-name-field-override-image,
.list-display--images .field-name-field-images {
  width: 200px;
  margin-right: auto;
  margin-left: auto;
  margin-bottom: 1em; }
  @media (min-width: 29em) {
    .list-display--images .field-name-field-image,
    .list-display--images .field-name-field-override-image,
    .list-display--images .field-name-field-images {
      float: left;
      padding: 0;
      margin-bottom: 0;
      border-bottom: none; } }
  .list-display--images .field-name-field-image .image-field-caption,
  .list-display--images .field-name-field-override-image .image-field-caption,
  .list-display--images .field-name-field-images .image-field-caption {
    display: none; }

.list-display--images .views-field-title {
  border-top: 1px solid #CED3D6;
  padding-top: 1em; }
  @media (min-width: 29em) {
    .list-display--images .views-field-title {
      border-top: none;
      padding-top: 0; } }

@media (min-width: 29em) {
  .list-display--images .field-name-field-address,
  .list-display--images .views-field-title,
  .list-display--images .field-name-field-date,
  .list-display--images .views-field-field-date-1,
  .list-display--images .field-name-field-event-date,
  .list-display--images .views-field-created,
  .list-display--images .field-name-body,
  .list-display--images .views-field-view-node,
  .list-display--images .field-name-field-promo-message {
    padding-left: 200px;
    margin-left: 1em; } }

@media (min-width: 29em) {
  .list-display--images .field-name-field-address,
  .list-display--images .field-name-field-location {
    padding-left: 200px;
    margin-left: 0.8em; } }

.list-display--videos {
  margin-top: 1em; }
  .list-display--videos .field-name-field-lecture-video {
    margin-right: auto;
    margin-left: auto;
    margin-bottom: 1em; }
    @media (min-width: 29em) {
      .list-display--videos .field-name-field-lecture-video {
        width: 48.93617%;
        float: left;
        padding: 0;
        margin-bottom: 0;
        border-bottom: none; } }
  @media (min-width: 29em) {
    .list-display--videos .views-field-title,
    .list-display--videos .field-name-field-speaker {
      padding-left: 48.93617%;
      margin-left: 1em; } }

.list-display .view-footer {
  margin-top: 0.8em; }
  .list-display .view-footer .more-link {
    background-color: #f0f2f3;
    padding: 0.512em 1em; }

/* 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.25em;
  font-weight: 300;
  color: #00693c; }
  @media (min-width: 38em) {
    .headline-type {
      font-size: 1.5625em;
      line-height: 1.25em; } }
  .headline-type b, .headline-type strong {
    font-weight: 400; }

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

.highlight-type {
  font-weight: 700;
  color: #005438; }

.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: 1em;
  background-color: #f7fbf5;
  border-radius: 1px;
  border: 2px solid #85c664;
  line-height: 1.5625em;
  font-weight: 700; }
  @media (min-width: 38em) {
    .highlight-box {
      padding: 1.25em 1.95312em; } }
  .highlight-box p:last-child, .highlight-box li:last-child {
    margin-bottom: 0; }

.content-box {
  margin-bottom: 1.25em;
  position: relative;
  padding: 1.25em 1.5625em;
  background-color: #ebedef;
  line-height: 1.5625em;
  font-weight: 700; }
  .content-box p:last-child, .content-box li:last-child {
    margin-bottom: 0; }

.image-caption .inline-image-left {
  width: 37.03704%;
  margin-top: 0.4096em;
  margin-bottom: 0.32768em;
  float: left;
  margin-right: 1em;
  border: 1px solid red; }

.image-caption .inline-image-right {
  width: 37.03704%;
  margin-top: 0.4096em;
  margin-bottom: 0.32768em;
  float: right;
  margin-left: 1em;
  border: 1px solid red; }

/* objects/_vendors.scss*/
/* vendors/dropkick/_dropkick.scss */
.dk-select {
  width: 100%; }

.dk-selected {
  border: none;
  border-bottom: 1px solid #CED3D6;
  background-color: transparent;
  border-radius: 0;
  padding-left: 0; }

.dk-select-options {
  margin: 0;
  padding: 0;
  max-height: 14.55192em; }
  .dk-select-options li {
    list-style-image: none;
    list-style-type: none;
    list-style: none;
    margin-left: 0; }

.dk-selected:before {
  border-top-color: #797E80; }

.dk-selected:after {
  border-left: none; }

.dk-select-open-up .dk-selected:before, .dk-select-open-down .dk-selected:before {
  border-bottom-color: #797E80; }

.dk-select-open-up .dk-select-options, .dk-select-open-down .dk-select-options, .dk-select-multi:focus .dk-select-options {
  border: none;
  border-radius: 0;
  box-shadow: 0 12px 15px 0 rgba(0, 0, 0, 0.24), 0 17px 50px 0 rgba(0, 0, 0, 0.19); }

.dk-selected:hover,
.dk-selected:focus {
  border-color: #797E80; }

.dk-selected:hover:before, .dk-selected:focus:before {
  border-top-color: #797E80; }

.dk-select-options .dk-option {
  margin: 0;
  padding: 0;
  font-size: 0.8em;
  padding: 0.512em 0.8em;
  transition: background-color 0.3s ease-out; }

.dk-select-options .dk-option-selected {
  background-color: #797E80;
  color: white; }

.dk-select-options .dk-option-highlight {
  background-color: #797E80; }

.dk-select-options .dk-option-selected.dk-option-highlight {
  background-color: #292B2D; }

/* vendors/de_menu_dropdown/_de_menu_dropdown.scss */
.de-dropdown.modal li span.touch-button:nth-child(even) {
  display: none !important; }

#block-menu-block-1 .menu {
  text-align: center; }

.de-dropdown {
  overflow: hidden;
  position: relative;
  text-align: center; }

#block-menu-block-1 .menu ul {
  text-align: left !important;
  overflow: hidden;
  position: absolute;
  display: none;
  z-index: 999;
  width: 200px;
  top: 120%; }
  @media (min-width: 38em) {
    #block-menu-block-1 .menu ul {
      width: 250px;
      top: 100%; } }
  #block-menu-block-1 .menu ul li {
    position: relative; }

.de-dropdown ul ul {
  left: 200px; }
  @media (min-width: 48em) {
    .de-dropdown ul ul {
      left: 250px;
      top: 0; } }

.de-dropdown li.last ul {
  right: 0; }

.de-dropdown li:nth-child(4n+3) ul {
  right: 0; }
  @media (min-width: 38em) {
    .de-dropdown li:nth-child(4n+3) ul {
      left: 0; } }

.touch-button {
  cursor: pointer; }
  .touch-button:hover {
    cursor: pointer; }

/* objects/_boxes.scss */
.boxes, .region-sidebar-second .block, .region-social-media .block {
  background-color: #ebedef;
  padding: 1.5625em;
  margin-bottom: 1.25em; }
  .boxes h2, .region-sidebar-second .block h2, .region-social-media .block h2 {
    background-color: #00693c;
    font-size: 1em;
    color: #292B2D;
    text-transform: uppercase;
    line-height: 0.64em;
    margin-bottom: 1.5625em; }
    .boxes h2 span, .region-sidebar-second .block h2 span, .region-social-media .block h2 span {
      background-color: #ebedef;
      padding-right: 0.512em;
      margin-right: -4px; }
      .boxes h2 span.word1, .region-sidebar-second .block h2 span.word1, .region-social-media .block h2 span.word1 {
        padding-left: 0.512em;
        margin-left: 0.8em; }
  .boxes .content h2, .region-sidebar-second .block .content h2, .region-social-media .block .content h2 {
    background-color: transparent;
    text-transform: none;
    margin-bottom: 1em; }
    @media (min-width: 38em) {
      .boxes .content h2, .region-sidebar-second .block .content h2, .region-social-media .block .content h2 {
        font-size: 1.25em; } }
    .boxes .content h2 span, .region-sidebar-second .block .content h2 span, .region-social-media .block .content h2 span {
      padding: 0;
      margin: 0; }

/* objects/_de-gallery.scss */
#colorbox #cboxLoadedContent {
  margin-bottom: 75px; }

.block-fieldblock-node-basic-page-default-field-photo-gallery,
.block-fieldblock-node-events-default-field-photo-gallery,
.block-fieldblock-node-news-default-field-photo-gallery,
.field-name-field-photo-gallery {
  overflow: hidden;
  background-color: #ebedef;
  padding: 1.5625em;
  margin-bottom: 1em; }
  .block-fieldblock-node-basic-page-default-field-photo-gallery h2,
  .block-fieldblock-node-events-default-field-photo-gallery h2,
  .block-fieldblock-node-news-default-field-photo-gallery h2,
  .field-name-field-photo-gallery h2 {
    background-color: #66b83d !important; }
  .block-fieldblock-node-basic-page-default-field-photo-gallery .de-gallery ul,
  .block-fieldblock-node-events-default-field-photo-gallery .de-gallery ul,
  .block-fieldblock-node-news-default-field-photo-gallery .de-gallery ul,
  .field-name-field-photo-gallery .de-gallery ul {
    padding: 0;
    margin-bottom: 0; }
    .block-fieldblock-node-basic-page-default-field-photo-gallery .de-gallery ul li,
    .block-fieldblock-node-events-default-field-photo-gallery .de-gallery ul li,
    .block-fieldblock-node-news-default-field-photo-gallery .de-gallery ul li,
    .field-name-field-photo-gallery .de-gallery ul li {
      display: inline-block;
      margin-bottom: 0; }
      @media (min-width: 29em) {
        .block-fieldblock-node-basic-page-default-field-photo-gallery .de-gallery ul li,
        .block-fieldblock-node-events-default-field-photo-gallery .de-gallery ul li,
        .block-fieldblock-node-news-default-field-photo-gallery .de-gallery ul li,
        .field-name-field-photo-gallery .de-gallery ul li {
          width: 18.29787%;
          clear: right;
          float: left;
          margin-left: 0;
          margin-right: 2.12766%;
          margin-top: 1em; } }
      .block-fieldblock-node-basic-page-default-field-photo-gallery .de-gallery ul li:nth-child(5n+5),
      .block-fieldblock-node-events-default-field-photo-gallery .de-gallery ul li:nth-child(5n+5),
      .block-fieldblock-node-news-default-field-photo-gallery .de-gallery ul li:nth-child(5n+5),
      .field-name-field-photo-gallery .de-gallery ul li:nth-child(5n+5) {
        width: 18.29787%;
        clear: right;
        float: right;
        margin-right: 0; }
      .block-fieldblock-node-basic-page-default-field-photo-gallery .de-gallery ul li img,
      .block-fieldblock-node-events-default-field-photo-gallery .de-gallery ul li img,
      .block-fieldblock-node-news-default-field-photo-gallery .de-gallery ul li img,
      .field-name-field-photo-gallery .de-gallery ul li img {
        width: 100%;
        margin: 0; }
  .block-fieldblock-node-basic-page-default-field-photo-gallery .de-gallery .flexslider,
  .block-fieldblock-node-events-default-field-photo-gallery .de-gallery .flexslider,
  .block-fieldblock-node-news-default-field-photo-gallery .de-gallery .flexslider,
  .field-name-field-photo-gallery .de-gallery .flexslider {
    margin-bottom: 0;
    margin-top: 1.25em; }
    .block-fieldblock-node-basic-page-default-field-photo-gallery .de-gallery .flexslider .flex-direction-nav,
    .block-fieldblock-node-events-default-field-photo-gallery .de-gallery .flexslider .flex-direction-nav,
    .block-fieldblock-node-news-default-field-photo-gallery .de-gallery .flexslider .flex-direction-nav,
    .field-name-field-photo-gallery .de-gallery .flexslider .flex-direction-nav {
      display: none; }
  .block-fieldblock-node-basic-page-default-field-photo-gallery .field-items,
  .block-fieldblock-node-events-default-field-photo-gallery .field-items,
  .block-fieldblock-node-news-default-field-photo-gallery .field-items,
  .field-name-field-photo-gallery .field-items {
    margin: 1.5625em 0; }
    .block-fieldblock-node-basic-page-default-field-photo-gallery .field-items .field-item,
    .block-fieldblock-node-events-default-field-photo-gallery .field-items .field-item,
    .block-fieldblock-node-news-default-field-photo-gallery .field-items .field-item,
    .field-name-field-photo-gallery .field-items .field-item {
      width: 23.40426%;
      clear: right;
      float: left;
      margin-left: 0;
      margin-right: 2.12766%;
      margin-bottom: 0; }
      .block-fieldblock-node-basic-page-default-field-photo-gallery .field-items .field-item:nth-child(4n+4),
      .block-fieldblock-node-events-default-field-photo-gallery .field-items .field-item:nth-child(4n+4),
      .block-fieldblock-node-news-default-field-photo-gallery .field-items .field-item:nth-child(4n+4),
      .field-name-field-photo-gallery .field-items .field-item:nth-child(4n+4) {
        width: 23.40426%;
        clear: right;
        float: right;
        margin-right: 0; }

/* objects/_file-attachments.scss */
.field-name-field-file-attachments,
.field-name-field-file {
  background-color: #ebedef;
  padding: 1.5625em 1.5625em 1em 1.5625em;
  margin: 1.5625em 0; }
  .field-name-field-file-attachments .field,
  .field-name-field-file .field {
    margin-bottom: 0; }
  .field-name-field-file-attachments .field-items .field-item,
  .field-name-field-file .field-items .field-item {
    border-bottom: 3px solid #CED3D6; }
    .field-name-field-file-attachments .field-items .field-item:last-child,
    .field-name-field-file .field-items .field-item:last-child {
      border-bottom: none;
      padding-bottom: 0; }
    .field-name-field-file-attachments .field-items .field-item .field-type-text .field-items .field-item,
    .field-name-field-file .field-items .field-item .field-type-text .field-items .field-item {
      margin: 0.26214em 0;
      border-bottom: none;
      font-size: 1.25em;
      font-weight: 700; }
    .field-name-field-file-attachments .field-items .field-item .field-item,
    .field-name-field-file .field-items .field-item .field-item {
      border-bottom: 3px solid #CED3D6; }
    .field-name-field-file-attachments .field-items .field-item:last-child,
    .field-name-field-file .field-items .field-item:last-child {
      border-bottom: none; }
    .field-name-field-file-attachments .field-items .field-item .file img,
    .field-name-field-file .field-items .field-item .file img {
      display: none; }
    .field-name-field-file-attachments .field-items .field-item a,
    .field-name-field-file .field-items .field-item a {
      text-decoration: none;
      color: #00693c;
      display: block;
      padding: 0.4096em 0.512em;
      line-height: 1.5;
      transition: background-color .3s ease-out; }
      .field-name-field-file-attachments .field-items .field-item a::before,
      .field-name-field-file .field-items .field-item a::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';
        line-height: 1.15;
        content: "attachment";
        color: #00693c;
        margin-right: 0.26214em; }
      .field-name-field-file-attachments .field-items .field-item a:hover,
      .field-name-field-file .field-items .field-item a:hover {
        background-color: #dde0e2; }

.related-content, .block-views-events-block-4, .block-views-news-block-2 {
  border-top: 5px solid #CED3D6;
  padding-top: 1.5625em; }
  .related-content ul .slick-list, .block-views-events-block-4 ul .slick-list, .block-views-news-block-2 ul .slick-list {
    margin: 0 3.05176em; }
    @media (min-width: 38em) {
      .related-content ul .slick-list, .block-views-events-block-4 ul .slick-list, .block-views-news-block-2 ul .slick-list {
        margin: 0 1.95312em; } }
  .related-content ul .slick-arrow, .block-views-events-block-4 ul .slick-arrow, .block-views-news-block-2 ul .slick-arrow {
    font: 0/0 serif;
    text-shadow: none;
    color: transparent;
    background-color: transparent;
    position: absolute;
    top: 50%;
    margin-top: -24px;
    border-radius: 50%;
    line-height: 24px;
    padding: 0;
    outline: none;
    border: 3px solid #909496;
    transition: border 0.3s ease-out, color 0.3s ease-out; }
    .related-content ul .slick-arrow:hover, .block-views-events-block-4 ul .slick-arrow:hover, .block-views-news-block-2 ul .slick-arrow:hover {
      border: 3px solid #CED3D6; }
      .related-content ul .slick-arrow:hover:before, .block-views-events-block-4 ul .slick-arrow:hover:before, .block-views-news-block-2 ul .slick-arrow:hover:before {
        color: #CED3D6; }
    .related-content ul .slick-arrow:before, .block-views-events-block-4 ul .slick-arrow:before, .block-views-news-block-2 ul .slick-arrow: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';
      color: #797E80; }
  .related-content ul .slick-prev, .block-views-events-block-4 ul .slick-prev, .block-views-news-block-2 ul .slick-prev {
    left: 0; }
    .related-content ul .slick-prev:before, .block-views-events-block-4 ul .slick-prev:before, .block-views-news-block-2 ul .slick-prev:before {
      content: 'keyboard_arrow_left'; }
  .related-content ul .slick-next, .block-views-events-block-4 ul .slick-next, .block-views-news-block-2 ul .slick-next {
    right: 0; }
    .related-content ul .slick-next:before, .block-views-events-block-4 ul .slick-next:before, .block-views-news-block-2 ul .slick-next:before {
      content: 'keyboard_arrow_right'; }
  .related-content ul .views-row, .block-views-events-block-4 ul .views-row, .block-views-news-block-2 ul .views-row {
    display: inline-block;
    background-color: #ebedef;
    padding: 1.25em;
    margin-bottom: 1em; }
    @media (min-width: 38em) {
      .related-content ul .views-row, .block-views-events-block-4 ul .views-row, .block-views-news-block-2 ul .views-row {
        margin: 0 0.8em;
        margin-bottom: 0;
        padding: 1.5625em; } }
    .related-content ul .views-row a, .block-views-events-block-4 ul .views-row a, .block-views-news-block-2 ul .views-row a {
      color: #292B2D; }
      .related-content ul .views-row a:hover, .block-views-events-block-4 ul .views-row a:hover, .block-views-news-block-2 ul .views-row a:hover {
        color: #797E80;
        text-decoration: none; }
  .related-content ul .views-row-even .headings, .block-views-events-block-4 ul .views-row-even .headings, .block-views-news-block-2 ul .views-row-even .headings, .related-content ul .views-row-even .block-fieldblock-node-basic-page-default-field-photo-gallery h2, .block-fieldblock-node-basic-page-default-field-photo-gallery .related-content ul .views-row-even h2, .block-views-events-block-4 ul .views-row-even .block-fieldblock-node-basic-page-default-field-photo-gallery h2, .block-fieldblock-node-basic-page-default-field-photo-gallery .block-views-events-block-4 ul .views-row-even h2, .block-views-news-block-2 ul .views-row-even .block-fieldblock-node-basic-page-default-field-photo-gallery h2, .block-fieldblock-node-basic-page-default-field-photo-gallery .block-views-news-block-2 ul .views-row-even h2, .related-content ul .views-row-even
  .block-fieldblock-node-events-default-field-photo-gallery h2,
  .block-fieldblock-node-events-default-field-photo-gallery .related-content ul .views-row-even h2, .block-views-events-block-4 ul .views-row-even
  .block-fieldblock-node-events-default-field-photo-gallery h2,
  .block-fieldblock-node-events-default-field-photo-gallery .block-views-events-block-4 ul .views-row-even h2, .block-views-news-block-2 ul .views-row-even
  .block-fieldblock-node-events-default-field-photo-gallery h2,
  .block-fieldblock-node-events-default-field-photo-gallery .block-views-news-block-2 ul .views-row-even h2, .related-content ul .views-row-even
  .block-fieldblock-node-news-default-field-photo-gallery h2,
  .block-fieldblock-node-news-default-field-photo-gallery .related-content ul .views-row-even h2, .block-views-events-block-4 ul .views-row-even
  .block-fieldblock-node-news-default-field-photo-gallery h2,
  .block-fieldblock-node-news-default-field-photo-gallery .block-views-events-block-4 ul .views-row-even h2, .block-views-news-block-2 ul .views-row-even
  .block-fieldblock-node-news-default-field-photo-gallery h2,
  .block-fieldblock-node-news-default-field-photo-gallery .block-views-news-block-2 ul .views-row-even h2, .related-content ul .views-row-even
  .field-name-field-photo-gallery h2,
  .field-name-field-photo-gallery .related-content ul .views-row-even h2, .block-views-events-block-4 ul .views-row-even
  .field-name-field-photo-gallery h2,
  .field-name-field-photo-gallery .block-views-events-block-4 ul .views-row-even h2, .block-views-news-block-2 ul .views-row-even
  .field-name-field-photo-gallery h2,
  .field-name-field-photo-gallery .block-views-news-block-2 ul .views-row-even h2, .related-content ul .views-row-even .region-events-primary .block h2, .region-events-primary .block .related-content ul .views-row-even h2, .block-views-events-block-4 ul .views-row-even .region-events-primary .block h2, .region-events-primary .block .block-views-events-block-4 ul .views-row-even h2, .block-views-news-block-2 ul .views-row-even .region-events-primary .block h2, .region-events-primary .block .block-views-news-block-2 ul .views-row-even h2, .related-content ul .views-row-even
  .region-events-secondary .block h2,
  .region-events-secondary .block .related-content ul .views-row-even h2, .block-views-events-block-4 ul .views-row-even
  .region-events-secondary .block h2,
  .region-events-secondary .block .block-views-events-block-4 ul .views-row-even h2, .block-views-news-block-2 ul .views-row-even
  .region-events-secondary .block h2,
  .region-events-secondary .block .block-views-news-block-2 ul .views-row-even h2, .related-content ul .views-row-even .block-views-events-block-8 h2, .block-views-events-block-8 .related-content ul .views-row-even h2, .block-views-events-block-4 ul .views-row-even .block-views-events-block-8 h2, .block-views-events-block-8 .block-views-events-block-4 ul .views-row-even h2, .block-views-news-block-2 ul .views-row-even .block-views-events-block-8 h2, .block-views-events-block-8 .block-views-news-block-2 ul .views-row-even h2, .related-content ul .views-row-even .block-views-events-block-6 h2, .block-views-events-block-6 .related-content ul .views-row-even h2, .block-views-events-block-4 ul .views-row-even .block-views-events-block-6 h2, .block-views-events-block-6 .block-views-events-block-4 ul .views-row-even h2, .block-views-news-block-2 ul .views-row-even .block-views-events-block-6 h2, .block-views-events-block-6 .block-views-news-block-2 ul .views-row-even h2, .related-content ul .views-row-even .block-views-news-block-6 h2, .block-views-news-block-6 .related-content ul .views-row-even h2, .block-views-events-block-4 ul .views-row-even .block-views-news-block-6 h2, .block-views-news-block-6 .block-views-events-block-4 ul .views-row-even h2, .block-views-news-block-2 ul .views-row-even .block-views-news-block-6 h2, .block-views-news-block-6 .block-views-news-block-2 ul .views-row-even h2, .related-content ul .views-row-even
  .block-views-news-block-8 h2,
  .block-views-news-block-8 .related-content ul .views-row-even h2, .block-views-events-block-4 ul .views-row-even
  .block-views-news-block-8 h2,
  .block-views-news-block-8 .block-views-events-block-4 ul .views-row-even h2, .block-views-news-block-2 ul .views-row-even
  .block-views-news-block-8 h2,
  .block-views-news-block-8 .block-views-news-block-2 ul .views-row-even h2, .related-content ul .views-row-even .block-meeting-minutes h2, .block-meeting-minutes .related-content ul .views-row-even h2, .block-views-events-block-4 ul .views-row-even .block-meeting-minutes h2, .block-meeting-minutes .block-views-events-block-4 ul .views-row-even h2, .block-views-news-block-2 ul .views-row-even .block-meeting-minutes h2, .block-meeting-minutes .block-views-news-block-2 ul .views-row-even h2, .related-content ul .views-row-even .block-views-lifelong-learning-block-5 h2, .block-views-lifelong-learning-block-5 .related-content ul .views-row-even h2, .block-views-events-block-4 ul .views-row-even .block-views-lifelong-learning-block-5 h2, .block-views-lifelong-learning-block-5 .block-views-events-block-4 ul .views-row-even h2, .block-views-news-block-2 ul .views-row-even .block-views-lifelong-learning-block-5 h2, .block-views-lifelong-learning-block-5 .block-views-news-block-2 ul .views-row-even h2, .related-content ul .views-row-even .node-type-travel-data .field-name-field-event-price .field-label, .node-type-travel-data .field-name-field-event-price .related-content ul .views-row-even .field-label, .block-views-events-block-4 ul .views-row-even .node-type-travel-data .field-name-field-event-price .field-label, .node-type-travel-data .field-name-field-event-price .block-views-events-block-4 ul .views-row-even .field-label, .block-views-news-block-2 ul .views-row-even .node-type-travel-data .field-name-field-event-price .field-label, .node-type-travel-data .field-name-field-event-price .block-views-news-block-2 ul .views-row-even .field-label, .related-content ul .views-row-even .node-type-travel-data .field-name-field-event-itinerary .field-label, .node-type-travel-data .field-name-field-event-itinerary .related-content ul .views-row-even .field-label, .block-views-events-block-4 ul .views-row-even .node-type-travel-data .field-name-field-event-itinerary .field-label, .node-type-travel-data .field-name-field-event-itinerary .block-views-events-block-4 ul .views-row-even .field-label, .block-views-news-block-2 ul .views-row-even .node-type-travel-data .field-name-field-event-itinerary .field-label, .node-type-travel-data .field-name-field-event-itinerary .block-views-news-block-2 ul .views-row-even .field-label, .related-content ul .views-row-even .node-type-travel-data .group-faculty-info h2, .node-type-travel-data .group-faculty-info .related-content ul .views-row-even h2, .block-views-events-block-4 ul .views-row-even .node-type-travel-data .group-faculty-info h2, .node-type-travel-data .group-faculty-info .block-views-events-block-4 ul .views-row-even h2, .block-views-news-block-2 ul .views-row-even .node-type-travel-data .group-faculty-info h2, .node-type-travel-data .group-faculty-info .block-views-news-block-2 ul .views-row-even h2 {
    background-color: #66b83d; }

.ajax-progress.ajax-progress-throbber {
  display: none; }

.front .tabs {
  display: none; }

.styleguide-header {
  clear: both;
  margin-top: 3.05176em;
  margin-bottom: 0.512em;
  font-size: 0.8em;
  text-transform: uppercase;
  color: #797E80;
  border-bottom: 1px solid #CED3D6; }
  .styleguide-header:nth-child(1) {
    margin-top: 0; }

.more-link {
  clear: both; }
  .more-link a {
    text-decoration: none;
    color: #00693c; }
    .more-link a::after {
      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';
      font-size: 18px;
      content: "arrow_forward";
      color: #00693c;
      padding-left: 0.26214em; }
    .more-link a:hover {
      text-decoration: underline; }

.headings, .block-fieldblock-node-basic-page-default-field-photo-gallery h2,
.block-fieldblock-node-events-default-field-photo-gallery h2,
.block-fieldblock-node-news-default-field-photo-gallery h2,
.field-name-field-photo-gallery h2, .region-events-primary .block h2,
.region-events-secondary .block h2, .block-views-events-block-8 h2, .block-views-events-block-6 h2, .block-views-news-block-6 h2,
.block-views-news-block-8 h2, .block-meeting-minutes h2, .block-views-lifelong-learning-block-5 h2, .node-type-travel-data .field-name-field-event-price .field-label, .node-type-travel-data .field-name-field-event-itinerary .field-label, .node-type-travel-data .group-faculty-info h2 {
  background-color: #00693c;
  font-size: 1em;
  font-weight: 700;
  color: #292B2D;
  text-transform: uppercase;
  line-height: 0.64em; }
  .headings span, .block-fieldblock-node-basic-page-default-field-photo-gallery h2 span,
  .block-fieldblock-node-events-default-field-photo-gallery h2 span,
  .block-fieldblock-node-news-default-field-photo-gallery h2 span,
  .field-name-field-photo-gallery h2 span, .region-events-primary .block h2 span,
  .region-events-secondary .block h2 span, .block-views-events-block-8 h2 span, .block-views-events-block-6 h2 span, .block-views-news-block-6 h2 span,
  .block-views-news-block-8 h2 span, .block-meeting-minutes h2 span, .block-views-lifelong-learning-block-5 h2 span, .node-type-travel-data .field-name-field-event-price .field-label span, .node-type-travel-data .field-name-field-event-itinerary .field-label span, .node-type-travel-data .group-faculty-info h2 span {
    background-color: #ebedef;
    padding-right: 0.512em;
    margin-right: -4px; }
    .headings span.word1, .block-fieldblock-node-basic-page-default-field-photo-gallery h2 span.word1,
    .block-fieldblock-node-events-default-field-photo-gallery h2 span.word1,
    .block-fieldblock-node-news-default-field-photo-gallery h2 span.word1,
    .field-name-field-photo-gallery h2 span.word1, .region-events-primary .block h2 span.word1,
    .region-events-secondary .block h2 span.word1, .block-views-events-block-8 h2 span.word1, .block-views-events-block-6 h2 span.word1, .block-views-news-block-6 h2 span.word1,
    .block-views-news-block-8 h2 span.word1, .block-meeting-minutes h2 span.word1, .block-views-lifelong-learning-block-5 h2 span.word1, .node-type-travel-data .field-name-field-event-price .field-label span.word1, .node-type-travel-data .field-name-field-event-itinerary .field-label span.word1, .node-type-travel-data .group-faculty-info h2 span.word1 {
      padding-left: 0.512em;
      margin-left: 0.8em; }

/* _components.scss */
/* components/_blocks.scss file */
.block-views-events-block-5 {
  overflow: hidden; }
  .block-views-events-block-5 .section-title {
    padding: 0 1em;
    margin-bottom: 0.4096em;
    font-size: 1.5625em;
    font-weight: 700; }
    @media (min-width: 38em) {
      .block-views-events-block-5 .section-title {
        font-size: 2.44141em; } }
    @media (min-width: 48em) {
      .block-views-events-block-5 .section-title {
        padding: 0 1.25em; } }
    @media (min-width: 56em) {
      .block-views-events-block-5 .section-title {
        padding: 0 0.32768em; } }
  .block-views-events-block-5 .arrow-left {
    position: absolute;
    bottom: 0;
    right: 46%;
    width: 0;
    height: 0;
    border-right: 15px solid transparent;
    border-left: 15px solid transparent;
    border-bottom: 15px solid #ebedef; }
    @media (min-width: 48em) {
      .block-views-events-block-5 .arrow-left {
        right: 0;
        top: 45%;
        border-top: 15px solid transparent;
        border-bottom: 15px solid transparent;
        border-right: 15px solid #ebedef; } }

.block-block-61 .section-title {
  font-weight: 700;
  font-size: 1.5625em; }
  @media (min-width: 38em) {
    .block-block-61 .section-title {
      font-size: 2.44141em; } }

/* components/blocks/_block-beans.scss */
.bean-cta {
  margin-bottom: 1em;
  background-color: #ebedef; }
  @media (min-width: 48em) {
    .bean-cta {
      margin-bottom: 0; } }
  .bean-cta h2 {
    color: #292B2D; }
  .bean-cta .field-name-field-image {
    margin-bottom: 0; }
  .bean-cta .field-name-field-body {
    margin-bottom: 0;
    padding: 1.5625em 1.5625em 1em 1.5625em; }
    .bean-cta .field-name-field-body p {
      font-weight: 300; }
    .bean-cta .field-name-field-body ul {
      margin-bottom: 0;
      padding-left: 1.25em;
      font-weight: 300; }
  .bean-cta .field-name-field-call-to-action {
    margin-bottom: 0;
    padding: 0 1.5625em 1.5625em 1.5625em; }
    .bean-cta .field-name-field-call-to-action a {
      border: none;
      display: inline-block;
      text-transform: uppercase;
      position: relative;
      font-size: 0.8em;
      font-weight: 700;
      overflow: hidden;
      padding: 0.64em 1.5625em;
      text-decoration: none;
      border-radius: 3px;
      transition: background-color .3s ease-out, border-color .3s ease-out;
      margin-right: 1em;
      -webkit-tap-highlight-color: transparent;
      outline: none;
      border: 1px solid #00693c;
      color: #292B2D;
      text-align: center;
      margin-right: 0 !important;
      width: 100%;
      text-align: center;
      border: 1px solid #66b83d; }
      @media (min-width: 38em) {
        .bean-cta .field-name-field-call-to-action a {
          border-radius: 5px;
          padding: 0.8em 1.5625em; } }
      .bean-cta .field-name-field-call-to-action a:hover, .bean-cta .field-name-field-call-to-action a:focus {
        background-color: #66b83d;
        border: 1px solid #66b83d; }
  .bean-cta img {
    border-bottom: 5px solid #66b83d;
    width: 100%; }

.region-sidebar-second .block-bean-sidebar-block h2 {
  background-color: #66b83d; }

.region-sidebar-second .block-bean-sidebar-block .field-name-field-call-to-action {
  margin-bottom: 0; }
  .region-sidebar-second .block-bean-sidebar-block .field-name-field-call-to-action a {
    border: none;
    display: inline-block;
    text-transform: uppercase;
    position: relative;
    font-size: 0.8em;
    font-weight: 700;
    overflow: hidden;
    padding: 0.64em 1.5625em;
    text-decoration: none;
    border-radius: 3px;
    transition: background-color .3s ease-out, border-color .3s ease-out;
    margin-right: 1em;
    -webkit-tap-highlight-color: transparent;
    outline: none;
    border: 1px solid #00693c;
    color: #292B2D;
    text-align: center; }
    @media (min-width: 38em) {
      .region-sidebar-second .block-bean-sidebar-block .field-name-field-call-to-action a {
        border-radius: 5px;
        padding: 0.8em 1.5625em; } }
    .region-sidebar-second .block-bean-sidebar-block .field-name-field-call-to-action a:hover, .region-sidebar-second .block-bean-sidebar-block .field-name-field-call-to-action a:focus {
      background-color: #66b83d;
      border: 1px solid #66b83d; }
    @media (min-width: 56em) {
      .region-sidebar-second .block-bean-sidebar-block .field-name-field-call-to-action a {
        width: 100%;
        text-align: center; } }

/* components/blocks/_block-default.scss */
.region-sidebar-second .block {
  margin-bottom: 1.5625em; }
  .region-sidebar-second .block:last-child {
    margin-bottom: 0; }
  .region-sidebar-second .block h2 {
    font-size: 1em; }
    @media (min-width: 56em) {
      .region-sidebar-second .block h2 {
        font-size: 0.8em; } }
    @media (min-width: 62em) {
      .region-sidebar-second .block h2 {
        font-size: 1em; } }
  .region-sidebar-second .block ul {
    padding: 0;
    margin: 0; }
    .region-sidebar-second .block ul li {
      list-style: none;
      font-weight: 400; }
      .region-sidebar-second .block ul li.last {
        border-bottom: none;
        margin-bottom: 0;
        padding-bottom: 0; }
      .region-sidebar-second .block ul li a {
        text-decoration: none;
        color: #00693c; }
        .region-sidebar-second .block ul li a:hover {
          text-decoration: underline; }

.region-footer .block {
  width: 31.91489%;
  clear: right;
  float: left;
  margin-left: 0;
  margin-right: 2.12766%;
  margin-bottom: 1.25em; }
  @media (min-width: 48em) {
    .region-footer .block {
      width: 14.89362%;
      clear: right;
      float: left;
      margin-left: 0;
      margin-right: 2.12766%;
      margin-bottom: 0; } }

.region-events-primary .block h2,
.region-events-secondary .block h2 {
  margin-bottom: 1.5625em; }

.region-social-media .block {
  padding: 0; }
  .region-social-media .block h2 {
    margin-bottom: 0; }

@media (min-width: 38em) {
  .front .region-main-suffix .block {
    width: 48.93617%;
    clear: right;
    float: left;
    margin-left: 0;
    margin-right: 2.12766%;
    margin-bottom: 1em; }
    .front .region-main-suffix .block:nth-child(3n+2) {
      width: 48.93617%;
      clear: right;
      float: right;
      margin-right: 0; } }

@media (min-width: 56em) {
  .front .region-main-suffix .block {
    width: 31.91489%;
    clear: right;
    float: left;
    margin-left: 0;
    margin-right: 2.12766%;
    margin-bottom: 0; }
    .front .region-main-suffix .block:nth-child(3n+2) {
      width: 31.91489%;
      clear: right;
      float: left;
      margin-left: 0;
      margin-right: 2.12766%; } }

@media (min-width: 38em) {
  .front .region-main-suffix .block:last-child {
    width: 100%; } }

@media (min-width: 56em) {
  .front .region-main-suffix .block:last-child {
    width: 31.91489%;
    clear: right;
    float: right;
    margin-right: 0; } }

.region-sidebar-second .block-aggregator-category-1 .content ul li {
  border-bottom: 2px solid #CED3D6;
  margin-bottom: 0;
  padding-bottom: 0; }
  .region-sidebar-second .block-aggregator-category-1 .content ul li:last-child {
    border-bottom: 0; }
  .region-sidebar-second .block-aggregator-category-1 .content ul li a {
    padding: 0.64em;
    display: block;
    transition: background-color 0.3s ease-out;
    color: #292B2D; }
    .region-sidebar-second .block-aggregator-category-1 .content ul li a:hover {
      text-decoration: none;
      background-color: #dde0e2; }

.region-sidebar-second .block-aggregator-category-1 .more-link {
  border-top: 2px solid #66b83d;
  padding-top: 1em; }

.aggregator .feed-item {
  border-bottom: 3px solid #CED3D6;
  padding-top: 1.95312em;
  padding-bottom: 1.95312em; }
  .aggregator .feed-item:nth-child(20) {
    border-bottom: none;
    margin-bottom: 0; }
  .aggregator .feed-item .feed-item-date {
    display: block; }
    .aggregator .feed-item .feed-item-date::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';
      font-size: 18px;
      content: 'access_time';
      margin-right: 0.16777em;
      color: #ccb799; }
      @media (min-width: 38em) {
        .aggregator .feed-item .feed-item-date::before {
          font-size: 24px; } }
  .aggregator .feed-item .feed-item-body {
    margin: 1em 0;
    font-weight: 300; }

.block-views-homepage-banner-block {
  position: relative;
  margin-bottom: 1.25em; }
  @media (min-width: 62em) {
    .block-views-homepage-banner-block .homepage-banner {
      min-height: 350px; } }
  .block-views-homepage-banner-block .homepage-banner__image {
    line-height: 0; }
    .block-views-homepage-banner-block .homepage-banner__image img {
      width: 100%; }
  .block-views-homepage-banner-block .homepage-banner__caption {
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translate(-50%);
    width: 100%;
    padding: 1.25em;
    margin-bottom: 0;
    background-color: rgba(0, 51, 30, 0.8); }
    @media (min-width: 38em) {
      .block-views-homepage-banner-block .homepage-banner__caption {
        padding: 1.5625em; } }
    .block-views-homepage-banner-block .homepage-banner__caption .caption__text {
      font-size: 1.25em;
      font-weight: 700;
      color: white;
      margin: 0;
      line-height: 1.25em; }
      @media (min-width: 38em) {
        .block-views-homepage-banner-block .homepage-banner__caption .caption__text {
          text-align: center; } }
      @media (min-width: 56em) {
        .block-views-homepage-banner-block .homepage-banner__caption .caption__text {
          font-size: 1.5625em; } }

@media (min-width: 48em) {
  .region-events-secondary .block-views-events-block-2 {
    max-width: 496px; } }

.region-events-secondary .block-views-events-block-2 .views-row {
  border-bottom: 3px solid #b9bec1;
  padding-bottom: 1em;
  margin-bottom: 1em; }
  .region-events-secondary .block-views-events-block-2 .views-row.views-row-last {
    border-bottom: none; }
  .region-events-secondary .block-views-events-block-2 .views-row h3 {
    font-size: 1.25em; }
    .region-events-secondary .block-views-events-block-2 .views-row h3 a {
      color: #292B2D;
      text-decoration: none; }
      .region-events-secondary .block-views-events-block-2 .views-row h3 a:hover {
        text-decoration: underline; }

.region-events-secondary .block-views-events-block-2 .field-name-field-date {
  margin-bottom: 0; }
  .region-events-secondary .block-views-events-block-2 .field-name-field-date .field-item: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: 'event';
    color: black;
    margin-right: 0.26214em; }
  .region-events-secondary .block-views-events-block-2 .field-name-field-date .date-display-range {
    display: inline-block; }

.region-events-secondary .block-views-events-block-2 .field-name-body {
  margin-bottom: 1em; }

.region-events-secondary .block-views-events-block-2 .more-link {
  border: none;
  display: inline-block;
  text-transform: uppercase;
  position: relative;
  font-size: 0.8em;
  font-weight: 700;
  overflow: hidden;
  padding: 0.64em 1.5625em;
  text-decoration: none;
  border-radius: 3px;
  transition: background-color .3s ease-out, border-color .3s ease-out;
  margin-right: 1em;
  -webkit-tap-highlight-color: transparent;
  outline: none;
  border: 1px solid #00693c; }
  @media (min-width: 38em) {
    .region-events-secondary .block-views-events-block-2 .more-link {
      border-radius: 5px;
      padding: 0.8em 1.5625em; } }
  .region-events-secondary .block-views-events-block-2 .more-link:hover {
    background-color: #66b83d;
    border: 1px solid #66b83d; }
  .region-events-secondary .block-views-events-block-2 .more-link a {
    color: #292B2D; }
    .region-events-secondary .block-views-events-block-2 .more-link a:hover {
      text-decoration: none; }
    .region-events-secondary .block-views-events-block-2 .more-link a:after {
      display: none; }

.region-events-primary .block-views-events-block-3 {
  color: white; }
  @media (min-width: 48em) {
    .region-events-primary .block-views-events-block-3 {
      float: right;
      width: 100%;
      max-width: 496px; } }
  .region-events-primary .block-views-events-block-3 h2 {
    background-color: #66b83d; }
    .region-events-primary .block-views-events-block-3 h2 span {
      background-color: #00693c;
      color: white; }
  .region-events-primary .block-views-events-block-3 .views-field-title h3 {
    color: white;
    background-color: transparent;
    font-size: 1.25em;
    line-height: 1.25em;
    text-transform: none;
    margin-bottom: 0.512em; }
    @media (min-width: 38em) {
      .region-events-primary .block-views-events-block-3 .views-field-title h3 {
        font-size: 1.5625em; } }
    .region-events-primary .block-views-events-block-3 .views-field-title h3 span {
      background-color: transparent;
      padding: 0;
      margin: 0; }
  .region-events-primary .block-views-events-block-3 a {
    color: white;
    font-weight: 700;
    text-decoration: none; }
    .region-events-primary .block-views-events-block-3 a:hover {
      text-decoration: underline; }
  .region-events-primary .block-views-events-block-3 .field-name-field-date .field-item: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: 'event';
    color: white;
    margin-right: 0.26214em; }
  .region-events-primary .block-views-events-block-3 .field-name-field-date .date-display-range {
    display: inline-block; }

@media (min-width: 48em) {
  .region-events-secondary .block-additional-events {
    float: left;
    width: 100%;
    max-width: 496px; } }

.region-events-secondary .block-additional-events .views-field-title h2 {
  background-color: transparent;
  font-size: 1em;
  line-height: 1.25em;
  text-transform: none;
  margin-bottom: 0.512em; }
  @media (min-width: 38em) {
    .region-events-secondary .block-additional-events .views-field-title h2 {
      font-size: 1.25em; } }
  .region-events-secondary .block-additional-events .views-field-title h2 span {
    background-color: transparent;
    padding: 0;
    margin: 0; }

.region-events-secondary .block-additional-events .views-field-date p::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';
  font-size: 24px;
  content: "events";
  color: #292B2D; }

.block-career-network-cta {
  margin-bottom: 0;
  padding-bottom: 0; }

.block-directory-cta {
  margin-bottom: 1.25em;
  padding-bottom: 1.25em;
  border-bottom: 5px solid #CED3D6; }

@media (min-width: 38em) {
  .block-directory-cta,
  .block-career-network-cta {
    width: 48.93617%;
    clear: right;
    float: left;
    margin-left: 0;
    margin-right: 2.12766%;
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: none; } }

.block-directory-cta .description,
.block-career-network-cta .description {
  font-weight: 300; }
  @media (min-width: 56em) {
    .block-directory-cta .description,
    .block-career-network-cta .description {
      margin-bottom: 0;
      width: 48.93617%;
      clear: right;
      float: left;
      margin-left: 0;
      margin-right: 2.12766%; } }

.block-directory-cta .cta-link,
.block-career-network-cta .cta-link {
  margin-bottom: 0;
  margin-top: 1em; }
  @media (min-width: 56em) {
    .block-directory-cta .cta-link,
    .block-career-network-cta .cta-link {
      width: 48.93617%;
      clear: right;
      float: right;
      margin-right: 0; } }
  .block-directory-cta .cta-link a,
  .block-career-network-cta .cta-link a {
    border: none;
    display: inline-block;
    text-transform: uppercase;
    position: relative;
    font-size: 0.8em;
    font-weight: 700;
    overflow: hidden;
    padding: 0.64em 1.5625em;
    text-decoration: none;
    border-radius: 3px;
    transition: background-color .3s ease-out, border-color .3s ease-out;
    margin-right: 1em;
    -webkit-tap-highlight-color: transparent;
    outline: none;
    background-color: #66b83d;
    color: #292B2D;
    text-align: center;
    margin-right: 0;
    padding-top: 0.512em;
    padding-bottom: 0.512em; }
    @media (min-width: 38em) {
      .block-directory-cta .cta-link a,
      .block-career-network-cta .cta-link a {
        border-radius: 5px;
        padding: 0.8em 1.5625em; } }
    .block-directory-cta .cta-link a:hover, .block-directory-cta .cta-link a:focus,
    .block-career-network-cta .cta-link a:hover,
    .block-career-network-cta .cta-link a:focus {
      color: white;
      background-color: #00693c; }
    @media (min-width: 56em) {
      .block-directory-cta .cta-link a,
      .block-career-network-cta .cta-link a {
        display: block;
        padding-top: 0.8em;
        padding-bottom: 0.8em;
        text-align: center; } }
    .block-directory-cta .cta-link a:hover span, .block-directory-cta .cta-link a:focus span,
    .block-career-network-cta .cta-link a:hover span,
    .block-career-network-cta .cta-link a:focus span {
      background-position: left bottom; }
  .block-directory-cta .cta-link span,
  .block-career-network-cta .cta-link span {
    display: inline-block;
    vertical-align: middle; }
  .block-directory-cta .cta-link .icon,
  .block-career-network-cta .cta-link .icon {
    font: 0/0 serif;
    text-shadow: none;
    color: transparent;
    background-image: url("../../img/directory-icon.png");
    background-repeat: no-repeat;
    background-position: left top;
    background-size: 22px;
    width: 28px;
    height: 22px; }
    @media (min-width: 38em) {
      .block-directory-cta .cta-link .icon,
      .block-career-network-cta .cta-link .icon {
        background-size: 28px;
        width: 34px;
        height: 28px; } }

.block-career-network-cta {
  border-bottom: none; }
  @media (min-width: 38em) {
    .block-career-network-cta {
      width: 48.93617%;
      clear: right;
      float: right;
      margin-right: 0; } }
  .block-career-network-cta .cta-link span {
    display: inline-block;
    vertical-align: middle; }
  .block-career-network-cta .cta-link .icon {
    background-image: url("../../img/network-icon.png"); }

@media (min-width: 38em) {
  .block-class-cta {
    display: inline-block;
    vertical-align: middle;
    padding-right: 1em; } }

.block-class-cta h3 {
  color: white;
  margin-bottom: 0.512em; }

.block-jump-menu {
  padding: 0 3.8147em; }
  @media (min-width: 38em) {
    .block-jump-menu {
      padding: 0;
      width: 31.91489%;
      display: inline-block;
      vertical-align: middle; } }
  @media (min-width: 56em) {
    .block-jump-menu {
      width: 23.40426%; } }
  .block-jump-menu .dk-select .dk-selected {
    display: inline-block;
    border-radius: 5px;
    background-color: white;
    padding: 0.512em 0.8em;
    border: none;
    outline: none;
    text-align: left; }
    .block-jump-menu .dk-select .dk-selected:before {
      border-top-color: white;
      margin: 0 1.25em;
      text-align: center;
      z-index: 2; }
    .block-jump-menu .dk-select .dk-selected:after {
      margin: 0;
      background-color: #66b83d;
      z-index: 1;
      width: 50px;
      border-top-right-radius: 5px;
      border-bottom-right-radius: 5px; }
  .block-jump-menu .dk-selected:hover:before, .block-jump-menu .dk-selected:focus:before {
    border-top-color: white;
    border-bottom-color: white; }
  .block-jump-menu .dk-selected:hover:after, .block-jump-menu .dk-selected:focus:after {
    border-left-color: white; }
  .block-jump-menu .dk-select-open-down .dk-select-options {
    border: none;
    padding: 0;
    border-radius: 0;
    text-align: left;
    top: 1.25em; }
  .block-jump-menu .dk-select-open-down .dk-selected:before {
    border-bottom-color: white; }
  .block-jump-menu .dk-select-open-up .dk-selected:before {
    border-bottom-color: white; }
  .block-jump-menu .dk-select-options .dk-option {
    padding: 0.512em 0.8em;
    font-size: 1em; }
  .block-jump-menu .dk-select-options .dk-option-highlight {
    background-color: #66b83d;
    color: #292B2D; }
  .block-jump-menu .dk-select-options .dk-option-selected {
    background-color: #66b83d;
    padding: 0.512em 0.8em;
    color: #292B2D; }
  .block-jump-menu .element-invisible {
    color: white; }

.region-featured-news .block-featured-news .views-field-image {
  position: relative;
  line-height: 0; }
  @media (min-width: 48em) {
    .region-featured-news .block-featured-news .views-field-image {
      width: 65.83333%;
      clear: right;
      float: left;
      margin-left: 0;
      margin-right: 0%; } }
  .region-featured-news .block-featured-news .views-field-image img {
    width: 100%; }

.region-featured-news .block-featured-news .content {
  padding: 1.95312em 3.5em;
  margin-bottom: 1.25em; }
  @media (min-width: 48em) {
    .region-featured-news .block-featured-news .content {
      width: 31.91489%;
      clear: right;
      float: right;
      margin-right: 0;
      padding: 1.95312em 0;
      margin-bottom: 0; } }
  @media (min-width: 48em) {
    .region-featured-news .block-featured-news .content .news-content {
      float: left;
      width: 100%;
      max-width: 330px;
      padding-right: 1.25em; } }

.region-featured-news .block-featured-news .views-field-title h2 {
  background-color: transparent;
  font-size: 1.25em;
  line-height: 1.25em;
  text-transform: none;
  margin-bottom: 0.512em; }
  @media (min-width: 38em) {
    .region-featured-news .block-featured-news .views-field-title h2 {
      font-size: 1.5625em; } }
  .region-featured-news .block-featured-news .views-field-title h2 span {
    background-color: transparent;
    padding: 0;
    margin: 0; }

@media (min-width: 38em) {
  .region-news .block-news:last-child {
    width: 31.91489%;
    clear: right;
    float: right;
    margin-right: 0; } }

.region-news .block-news:nth-child(3n+2) h2 {
  background-color: #66b83d; }

.region-news .block-news .views-field-title h2 {
  background-color: transparent;
  font-size: 1em;
  line-height: 1.25em;
  text-transform: none;
  margin-bottom: 0.512em; }
  @media (min-width: 38em) {
    .region-news .block-news .views-field-title h2 {
      font-size: 1.25em; } }
  .region-news .block-news .views-field-title h2 span {
    background-color: transparent;
    padding: 0;
    margin: 0; }

.region-social-media .block-socialize {
  border-bottom: 3px solid #66b83d;
  margin: 0 3.8147em; }
  .region-social-media .block-socialize h2 {
    background-color: #66b83d; }
  .region-social-media .block-socialize .content {
    padding: 1.5625em 0 0.64em 0; }
    @media (min-width: 38em) {
      .region-social-media .block-socialize .content {
        padding: 1.5625em 1.95312em; } }
    .region-social-media .block-socialize .content h2 {
      background-color: transparent;
      text-align: center;
      margin-bottom: 1em;
      font-size: 1.25em;
      text-transform: uppercase; }
      @media (min-width: 38em) {
        .region-social-media .block-socialize .content h2 {
          width: 40%;
          display: inline-block;
          vertical-align: middle;
          font-size: 1.5625em;
          line-height: 1em;
          text-align: left;
          margin-bottom: 0; } }
      @media (min-width: 48em) {
        .region-social-media .block-socialize .content h2 {
          font-size: 1.95312em; } }
      .region-social-media .block-socialize .content h2 span {
        background-color: transparent;
        margin: 0;
        padding: 0; }
        @media (min-width: 38em) {
          .region-social-media .block-socialize .content h2 span {
            display: block; } }
  .region-social-media .block-socialize .social-icons {
    display: block;
    margin: 0; }
    @media (min-width: 38em) {
      .region-social-media .block-socialize .social-icons {
        display: inline-block;
        vertical-align: middle;
        width: 58%;
        padding-left: 1em; } }
    .region-social-media .block-socialize .social-icons ul {
      padding: 0;
      margin: 0;
      display: block;
      text-align: center; }
      @media (min-width: 38em) {
        .region-social-media .block-socialize .social-icons ul {
          display: flex;
          flex-flow: row wrap;
          text-align: left; } }
      .region-social-media .block-socialize .social-icons ul li {
        display: inline-block;
        padding: 0; }
        @media (min-width: 38em) {
          .region-social-media .block-socialize .social-icons ul li {
            padding: 0 0.26214em;
            text-align: right;
            flex: 0 1 16.666666667%;
            min-width: 60px; } }
        @media (min-width: 62em) {
          .region-social-media .block-socialize .social-icons ul li {
            padding: 0; } }
        .region-social-media .block-socialize .social-icons ul li:last-child {
          margin-right: 0; }
        .region-social-media .block-socialize .social-icons ul li img {
          width: 80%; }
          @media (min-width: 38em) {
            .region-social-media .block-socialize .social-icons ul li img {
              width: auto; } }

.region-footer .block-social-links {
  width: 31.91489%;
  clear: right;
  float: right;
  margin-right: 0; }
  @media (min-width: 48em) {
    .region-footer .block-social-links {
      width: 14.89362%;
      clear: right;
      float: left;
      margin-left: 0;
      margin-right: 2.12766%; } }

.region-footer .block-footer-ctas {
  width: 48.93617%;
  clear: right;
  float: left;
  margin-left: 0;
  margin-right: 2.12766%;
  padding-right: 1.25em; }
  @media (min-width: 38em) {
    .region-footer .block-footer-ctas {
      padding-right: 3.05176em; } }
  @media (min-width: 48em) {
    .region-footer .block-footer-ctas {
      width: 23.40426%;
      clear: right;
      float: left;
      margin-left: 0;
      margin-right: 2.12766%;
      padding-right: 0.8em; } }
  @media (min-width: 56em) {
    .region-footer .block-footer-ctas {
      padding-right: 3.05176em; } }

.block-footer-ctas .cta {
  border: none;
  display: inline-block;
  text-transform: uppercase;
  position: relative;
  font-size: 0.8em;
  font-weight: 700;
  overflow: hidden;
  padding: 0.64em 1.5625em;
  text-decoration: none;
  border-radius: 3px;
  transition: background-color .3s ease-out, border-color .3s ease-out;
  margin-right: 1em;
  -webkit-tap-highlight-color: transparent;
  outline: none;
  border: 1px solid #00693c;
  color: #292B2D;
  text-align: center;
  margin-right: 0 !important;
  color: white;
  display: block;
  border: 1px solid white;
  text-align: center; }
  @media (min-width: 38em) {
    .block-footer-ctas .cta {
      border-radius: 5px;
      padding: 0.8em 1.5625em; } }
  .block-footer-ctas .cta:hover, .block-footer-ctas .cta:focus {
    background-color: #66b83d;
    border: 1px solid #66b83d; }
  @media (min-width: 48em) {
    .block-footer-ctas .cta {
      padding: 0.8em 0.512em; } }
  .block-footer-ctas .cta:hover, .block-footer-ctas .cta:focus {
    color: #292B2D;
    text-decoration: none;
    border: 1px solid #66b83d; }

.block-info-links {
  padding-bottom: 0.26214em; }
  .block-info-links ul {
    text-transform: uppercase;
    text-align: center;
    padding: 0; }
    .block-info-links ul:last-child {
      margin-bottom: 0; }
    .block-info-links ul li {
      display: block;
      font-size: 0.8em;
      padding: 0.512em 0.8em;
      margin-bottom: 0;
      font-weight: bold;
      line-height: 1.25em; }
      @media (min-width: 38em) {
        .block-info-links ul li {
          font-size: 0.64em;
          display: inline-block;
          padding: 0 0.8em;
          border-right: 1px solid #797E80;
          border-bottom: none; } }
      .block-info-links ul li:last-child {
        border: none; }
      .block-info-links ul li a {
        color: #696b6c;
        text-decoration: none; }
        .block-info-links ul li a:hover {
          color: #00693c; }
  .block-info-links.college a {
    color: #005438; }

.region-footer .block-alumni-links {
  width: 48.93617%;
  clear: right;
  float: right;
  margin-right: 0;
  border-left: 1px solid #00693c;
  padding-left: 1.5625em; }
  @media (min-width: 38em) {
    .region-footer .block-alumni-links {
      padding-left: 3.05176em; } }
  @media (min-width: 48em) {
    .region-footer .block-alumni-links {
      width: 23.40426%;
      clear: right;
      float: right;
      margin-right: 0;
      padding-left: 1.5625em; } }
  @media (min-width: 56em) {
    .region-footer .block-alumni-links {
      padding-left: 3.8147em; } }

.region-footer .block-footer-logo {
  display: block;
  width: 100%;
  margin-bottom: 1.25em; }

#sidebar-second .block-sub-nav {
  background-color: #00693c;
  padding: 0; }
  #sidebar-second .block-sub-nav .menu li {
    border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0; }
    #sidebar-second .block-sub-nav .menu li.last a {
      border-bottom: none; }
    #sidebar-second .block-sub-nav .menu li a {
      color: white;
      border-bottom: 2px solid #004c32;
      display: block;
      font-weight: 400;
      text-decoration: none;
      padding: 0.64em 1em;
      transition: background-color 0.3s ease-out; }
      #sidebar-second .block-sub-nav .menu li a:hover {
        background-color: #005438; }
      #sidebar-second .block-sub-nav .menu li a.active {
        background-color: #005438; }
        #sidebar-second .block-sub-nav .menu li a.active:hover {
          background-color: #004c32;
          color: white; }

.block-block-66 .section-title {
  font-weight: 700;
  font-size: 1.5625em;
  margin-bottom: 0.32768em;
  line-height: 1.25em; }
  @media (min-width: 38em) {
    .block-block-66 .section-title {
      font-size: 2.44141em; } }

.view-program .col1 {
  position: relative; }
  .view-program .col1 .field-name-field-image {
    margin-bottom: 0;
    line-height: 0; }
    .view-program .col1 .field-name-field-image img {
      width: 100%; }
  .view-program .col1 .views-field-nothing {
    position: absolute;
    bottom: 0;
    right: 46%; }
    @media (min-width: 38em) {
      .view-program .col1 .views-field-nothing {
        right: 49%; } }
    .view-program .col1 .views-field-nothing .arrow {
      width: 0;
      height: 0;
      border-right: 15px solid transparent;
      border-left: 15px solid transparent;
      border-bottom: 15px solid #ebedef; }

.view-program .col2 {
  display: block;
  background-color: #ebedef;
  padding: 1.25em 1.5625em;
  margin-bottom: 1.95312em; }
  .view-program .col2 h1 {
    font-size: 1.25em;
    color: #292B2D;
    margin-bottom: 0.512em; }
    @media (min-width: 38em) {
      .view-program .col2 h1 {
        font-size: 1.5625em; } }
  .view-program .col2 .field-name-field-date {
    font-size: 1.25em;
    font-weight: 300;
    line-height: 1.25em; }
  .view-program .col2 .field-name-field-program-location {
    font-weight: 300;
    line-height: 1.25em;
    margin-bottom: 1em;
    padding-bottom: 1em;
    border-bottom: 2px solid #CED3D6; }
  .view-program .col2 .field-name-field-program-taxonomy {
    font-weight: 300;
    margin-bottom: 0; }
    .view-program .col2 .field-name-field-program-taxonomy .field-item {
      display: inline-block;
      padding-right: 0.512em; }

.block-fieldblock-node-basic-page-default-field-header-image .field-name-field-header-image {
  color: transparent;
  position: relative;
  line-height: 0;
  background-repeat: no-repeat;
  margin-bottom: 0;
  background-position: top center;
  height: 200px;
  background-size: cover; }
  @media (min-width: 38em) {
    .block-fieldblock-node-basic-page-default-field-header-image .field-name-field-header-image {
      height: 300px; } }
  @media (min-width: 48em) {
    .block-fieldblock-node-basic-page-default-field-header-image .field-name-field-header-image {
      height: 0;
      padding-bottom: 25%;
      width: 66.66667%;
      clear: right;
      float: left;
      margin-left: 0;
      margin-right: 0%; } }
  .block-fieldblock-node-basic-page-default-field-header-image .field-name-field-header-image.full-width {
    width: auto;
    float: none;
    clear: none;
    margin-right: 0;
    margin-left: 0; }
    .block-fieldblock-node-basic-page-default-field-header-image .field-name-field-header-image.full-width .arrow-left {
      display: none; }
  .block-fieldblock-node-basic-page-default-field-header-image .field-name-field-header-image .arrow-left {
    position: absolute;
    bottom: 0;
    right: 46%;
    width: 0;
    height: 0;
    border-right: 15px solid transparent;
    border-left: 15px solid transparent;
    border-bottom: 15px solid #ebedef; }
    @media (min-width: 48em) {
      .block-fieldblock-node-basic-page-default-field-header-image .field-name-field-header-image .arrow-left {
        right: 0;
        top: 45%;
        border-top: 15px solid transparent;
        border-bottom: 15px solid transparent;
        border-right: 15px solid #ebedef; } }

.block-fieldblock-node-basic-page-default-field-header-cta {
  display: block;
  background-color: #ebedef;
  padding: 1.5625em 6.38298%; }
  @media (min-width: 48em) {
    .block-fieldblock-node-basic-page-default-field-header-cta {
      width: 33.33333%;
      clear: right;
      float: right;
      margin-right: 0;
      padding: 1.25em 1.25em; } }
  @media (min-width: 56em) {
    .block-fieldblock-node-basic-page-default-field-header-cta {
      padding: 1.5625em 1.5625em; } }
  @media (min-width: 62em) {
    .block-fieldblock-node-basic-page-default-field-header-cta {
      padding: 1.95312em 3.5em; } }
  .block-fieldblock-node-basic-page-default-field-header-cta .field-name-field-header-cta {
    margin-bottom: 0; }
    @media (min-width: 48em) {
      .block-fieldblock-node-basic-page-default-field-header-cta .field-name-field-header-cta {
        float: left;
        width: 100%;
        max-width: 300px; } }
    .block-fieldblock-node-basic-page-default-field-header-cta .field-name-field-header-cta .field-name-field-title {
      font-size: 1.25em;
      font-weight: 700;
      margin-bottom: 0.64em; }
      @media (min-width: 38em) {
        .block-fieldblock-node-basic-page-default-field-header-cta .field-name-field-header-cta .field-name-field-title {
          font-size: 1.5625em; } }
      @media (min-width: 74.25em) {
        .block-fieldblock-node-basic-page-default-field-header-cta .field-name-field-header-cta .field-name-field-title {
          font-size: 1.95312em; } }
    .block-fieldblock-node-basic-page-default-field-header-cta .field-name-field-header-cta .field-name-field-header-image-caption {
      font-weight: 300;
      line-height: 1.5625em;
      margin-bottom: 0; }
      @media (min-width: 74.25em) {
        .block-fieldblock-node-basic-page-default-field-header-cta .field-name-field-header-cta .field-name-field-header-image-caption {
          font-size: 1.25em; } }
    .block-fieldblock-node-basic-page-default-field-header-cta .field-name-field-header-cta .field-name-field-call-to-action {
      margin-top: 1em;
      margin-bottom: 0; }
      .block-fieldblock-node-basic-page-default-field-header-cta .field-name-field-header-cta .field-name-field-call-to-action a {
        border: none;
        display: inline-block;
        text-transform: uppercase;
        position: relative;
        font-size: 0.8em;
        font-weight: 700;
        overflow: hidden;
        padding: 0.64em 1.5625em;
        text-decoration: none;
        border-radius: 3px;
        transition: background-color .3s ease-out, border-color .3s ease-out;
        margin-right: 1em;
        -webkit-tap-highlight-color: transparent;
        outline: none;
        border: 1px solid #00693c;
        color: #292B2D;
        text-decoration: none; }
        @media (min-width: 38em) {
          .block-fieldblock-node-basic-page-default-field-header-cta .field-name-field-header-cta .field-name-field-call-to-action a {
            border-radius: 5px;
            padding: 0.8em 1.5625em; } }
        .block-fieldblock-node-basic-page-default-field-header-cta .field-name-field-header-cta .field-name-field-call-to-action a:hover {
          background-color: #66b83d;
          border: 1px solid #66b83d;
          text-decoration: none; }
        .block-fieldblock-node-basic-page-default-field-header-cta .field-name-field-header-cta .field-name-field-call-to-action a:after {
          display: none; }

.block-bean-alumni-travel-header-0 .field-name-field-header-image {
  color: transparent;
  position: relative;
  line-height: 0;
  background-repeat: no-repeat;
  margin-bottom: 0;
  background-position: top center;
  height: 200px;
  background-size: cover; }
  @media (min-width: 38em) {
    .block-bean-alumni-travel-header-0 .field-name-field-header-image {
      height: 300px; } }
  @media (min-width: 48em) {
    .block-bean-alumni-travel-header-0 .field-name-field-header-image {
      height: 0;
      padding-bottom: 25%;
      width: 66.66667%;
      clear: right;
      float: left;
      margin-left: 0;
      margin-right: 0%; } }
  .block-bean-alumni-travel-header-0 .field-name-field-header-image .arrow-left {
    position: absolute;
    bottom: 0;
    right: 46%;
    width: 0;
    height: 0;
    border-right: 15px solid transparent;
    border-left: 15px solid transparent;
    border-bottom: 15px solid #ebedef; }
    @media (min-width: 48em) {
      .block-bean-alumni-travel-header-0 .field-name-field-header-image .arrow-left {
        right: 0;
        top: 45%;
        border-top: 15px solid transparent;
        border-bottom: 15px solid transparent;
        border-right: 15px solid #ebedef; } }

.block-bean-alumni-travel-header-0 .group-wrapper {
  display: block;
  background-color: #ebedef;
  padding: 1.5625em 6.38298%; }
  @media (min-width: 48em) {
    .block-bean-alumni-travel-header-0 .group-wrapper {
      width: 33.33333%;
      clear: right;
      float: right;
      margin-right: 0;
      padding: 1.25em 1.25em; } }
  @media (min-width: 56em) {
    .block-bean-alumni-travel-header-0 .group-wrapper {
      padding: 1.5625em 1.5625em; } }
  @media (min-width: 62em) {
    .block-bean-alumni-travel-header-0 .group-wrapper {
      padding: 1.95312em 3.5em; } }
  .block-bean-alumni-travel-header-0 .group-wrapper .group-info {
    margin-bottom: 0; }
    @media (min-width: 48em) {
      .block-bean-alumni-travel-header-0 .group-wrapper .group-info {
        float: left;
        width: 100%;
        max-width: 300px; } }
    .block-bean-alumni-travel-header-0 .group-wrapper .group-info .field-name-title-field h2 {
      font-size: 1.25em;
      font-weight: 700;
      margin-bottom: 0.64em;
      color: #292B2D; }
      @media (min-width: 38em) {
        .block-bean-alumni-travel-header-0 .group-wrapper .group-info .field-name-title-field h2 {
          font-size: 1.5625em; } }
      @media (min-width: 74.25em) {
        .block-bean-alumni-travel-header-0 .group-wrapper .group-info .field-name-title-field h2 {
          font-size: 1.95312em; } }
    .block-bean-alumni-travel-header-0 .group-wrapper .group-info .field-name-field-body {
      font-weight: 300;
      line-height: 1.5625em;
      margin-bottom: 0; }
      @media (min-width: 74.25em) {
        .block-bean-alumni-travel-header-0 .group-wrapper .group-info .field-name-field-body {
          font-size: 1.25em; } }
    .block-bean-alumni-travel-header-0 .group-wrapper .group-info .field-name-field-call-to-action {
      margin-top: 1em;
      margin-bottom: 0; }
      .block-bean-alumni-travel-header-0 .group-wrapper .group-info .field-name-field-call-to-action a {
        border: none;
        display: inline-block;
        text-transform: uppercase;
        position: relative;
        font-size: 0.8em;
        font-weight: 700;
        overflow: hidden;
        padding: 0.64em 1.5625em;
        text-decoration: none;
        border-radius: 3px;
        transition: background-color .3s ease-out, border-color .3s ease-out;
        margin-right: 1em;
        -webkit-tap-highlight-color: transparent;
        outline: none;
        border: 1px solid #00693c;
        color: #292B2D;
        text-decoration: none; }
        @media (min-width: 38em) {
          .block-bean-alumni-travel-header-0 .group-wrapper .group-info .field-name-field-call-to-action a {
            border-radius: 5px;
            padding: 0.8em 1.5625em; } }
        .block-bean-alumni-travel-header-0 .group-wrapper .group-info .field-name-field-call-to-action a:hover {
          background-color: #66b83d;
          border: 1px solid #66b83d;
          text-decoration: none; }
        .block-bean-alumni-travel-header-0 .group-wrapper .group-info .field-name-field-call-to-action a:after {
          display: none; }

.block-bean-create-event-block .field-name-field-body {
  padding: 0; }
  .block-bean-create-event-block .field-name-field-body h2 {
    line-height: normal; }

.submit-event-button {
  border: none;
  display: inline-block;
  text-transform: uppercase;
  position: relative;
  font-size: 0.8em;
  font-weight: 700;
  overflow: hidden;
  padding: 0.64em 1.5625em;
  text-decoration: none;
  border-radius: 3px;
  transition: background-color .3s ease-out, border-color .3s ease-out;
  margin-right: 1em;
  -webkit-tap-highlight-color: transparent;
  outline: none;
  border: 1px solid #00693c;
  color: #292B2D;
  text-decoration: none; }
  @media (min-width: 38em) {
    .submit-event-button {
      border-radius: 5px;
      padding: 0.8em 1.5625em; } }
  .submit-event-button:hover {
    background-color: #66b83d;
    border: 1px solid #66b83d;
    text-decoration: none; }
  .submit-event-button:after {
    display: none; }

/* components/_brand.scss */
#logo {
  display: block;
  margin: 0 auto 1em auto;
  width: 57.44681%;
  vertical-align: middle; }
  @media (min-width: 38em) {
    #logo {
      display: inline-block;
      width: auto;
      margin-bottom: 0; } }
  #logo a {
    text-align: center;
    display: block;
    line-height: 0; }
    @media (min-width: 56em) {
      #logo a {
        text-align: left; } }

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

.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%;
  border: 1px solid #CED3D6;
  margin-top: 0.512em;
  padding: 0.26214em; }
  .search-form .form-wrapper #edit-keys:focus {
    outline: 0; }

.search-form .form-wrapper .form-submit,
.search-form .form-wrapper .form-item__search-button {
  border: none;
  display: inline-block;
  text-transform: uppercase;
  position: relative;
  font-size: 0.8em;
  font-weight: 700;
  overflow: hidden;
  padding: 0.64em 1.5625em;
  text-decoration: none;
  border-radius: 3px;
  transition: background-color .3s ease-out, border-color .3s ease-out;
  margin-right: 1em;
  -webkit-tap-highlight-color: transparent;
  outline: none;
  background-color: #66b83d;
  color: #292B2D;
  text-align: center; }
  @media (min-width: 38em) {
    .search-form .form-wrapper .form-submit,
    .search-form .form-wrapper .form-item__search-button {
      border-radius: 5px;
      padding: 0.8em 1.5625em; } }
  .search-form .form-wrapper .form-submit:hover, .search-form .form-wrapper .form-submit:focus,
  .search-form .form-wrapper .form-item__search-button:hover,
  .search-form .form-wrapper .form-item__search-button:focus {
    color: white;
    background-color: #00693c; }
  .search-form .form-wrapper .form-submit .material-icons,
  .search-form .form-wrapper .form-submit .button-label,
  .search-form .form-wrapper .form-item__search-button .material-icons,
  .search-form .form-wrapper .form-item__search-button .button-label {
    display: inline-block;
    vertical-align: middle; }

/* 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 #CED3D6; }
    .search-results .search-result:last-child {
      border-bottom: 0;
      padding-bottom: 0; }

/* components/search/_block-search.scss */
.block-search-form {
  position: relative; }
  @media (min-width: 38em) {
    .block-search-form {
      width: 82.97872%;
      float: right; } }
  @media (min-width: 56em) {
    .block-search-form {
      width: 65.95745%; } }
  .block-search-form .button-label {
    font: 0/0 serif;
    text-shadow: none;
    color: transparent; }
  .block-search-form h2.element-invisible {
    color: white; }
  .block-search-form button {
    border: none;
    outline: none;
    position: absolute;
    top: 0;
    right: 0;
    display: block;
    border-top-right-radius: 5px;
    border-bottom-right-radius: 5px;
    background-color: #66b83d;
    height: 48px; }
    .block-search-form button .material-icons {
      font-weight: 700;
      color: #292B2D;
      padding: 0 0.512em; }
  .block-search-form .form-item {
    display: block;
    width: 100%;
    background-color: white;
    border-radius: 5px;
    margin-bottom: 0; }
  .block-search-form .form-search {
    background-color: transparent;
    border: none;
    display: block;
    outline: none;
    height: 48px;
    width: 65%;
    padding: 0 1.95312em 0 1em; }

/* 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: #CED3D6;
  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: uppercase;
  position: relative;
  font-size: 0.8em;
  font-weight: 700;
  overflow: hidden;
  padding: 0.64em 1.5625em;
  text-decoration: none;
  border-radius: 3px;
  transition: background-color .3s ease-out, border-color .3s ease-out;
  margin-right: 1em;
  -webkit-tap-highlight-color: transparent;
  outline: none;
  background-color: #66b83d;
  color: #292B2D;
  text-align: center; }
  @media (min-width: 38em) {
    .not-logged-in.page-user #user-login .form-submit {
      border-radius: 5px;
      padding: 0.8em 1.5625em; } }
  .not-logged-in.page-user #user-login .form-submit:hover, .not-logged-in.page-user #user-login .form-submit:focus {
    color: white;
    background-color: #00693c; }

/* components/_webform.scss */
.node-webform label {
  font-size: 0.8em;
  text-transform: uppercase;
  margin-bottom: 0.64em; }
  .node-webform label.option {
    text-transform: none;
    font-size: 1em;
    line-height: 1.95312em;
    margin-bottom: 0;
    display: inline-block;
    vertical-align: middle; }

.node-webform .form-text,
.node-webform .form-textarea {
  appearance: none;
  border: none;
  border-radius: 0;
  width: 100%;
  width: 100%;
  resize: none;
  background-color: #f5f6f7;
  padding: 0.512em; }
  .node-webform .form-text:focus,
  .node-webform .form-textarea:focus {
    outline: 0; }

.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 .form-checkbox {
  display: inline-block;
  vertical-align: middle;
  margin-right: 0.512em; }

.node-webform .description {
  margin-bottom: 0.8em; }

.node-webform .button-primary {
  border: none;
  display: inline-block;
  text-transform: uppercase;
  position: relative;
  font-size: 0.8em;
  font-weight: 700;
  overflow: hidden;
  padding: 0.64em 1.5625em;
  text-decoration: none;
  border-radius: 3px;
  transition: background-color .3s ease-out, border-color .3s ease-out;
  margin-right: 1em;
  -webkit-tap-highlight-color: transparent;
  outline: none;
  background-color: #66b83d;
  color: #292B2D;
  text-align: center; }
  @media (min-width: 38em) {
    .node-webform .button-primary {
      border-radius: 5px;
      padding: 0.8em 1.5625em; } }
  .node-webform .button-primary:hover, .node-webform .button-primary:focus {
    color: white;
    background-color: #00693c; }

/* sections.scss */
/* sections/_events.scss */
/* sections/events/_node-events.scss */
.node-type-events .field-name-field-date {
  margin-bottom: 0;
  font-weight: 300; }
  @media (min-width: 38em) {
    .node-type-events .field-name-field-date {
      font-size: 1.25em; } }

.node-type-events .field-name-field-location {
  margin-bottom: 0;
  font-weight: 300; }

.node-type-events .field-name-field-event-categories,
.node-type-events .field-name-field-affiliated-groups,
.node-type-events .field-name-field-regional-clubs {
  font-weight: 300; }
  .node-type-events .field-name-field-event-categories .field-item,
  .node-type-events .field-name-field-affiliated-groups .field-item,
  .node-type-events .field-name-field-regional-clubs .field-item {
    display: inline-block;
    padding-right: 0.512em;
    margin-top: 0.26214em; }

.node-type-events .field-name-field-rsvp,
.node-type-events .field-name-field-attendee-list {
  display: inline-block; }
  .node-type-events .field-name-field-rsvp a,
  .node-type-events .field-name-field-attendee-list a {
    border: none;
    display: inline-block;
    text-transform: uppercase;
    position: relative;
    font-size: 0.8em;
    font-weight: 700;
    overflow: hidden;
    padding: 0.64em 1.5625em;
    text-decoration: none;
    border-radius: 3px;
    transition: background-color .3s ease-out, border-color .3s ease-out;
    margin-right: 1em;
    -webkit-tap-highlight-color: transparent;
    outline: none;
    background-color: #66b83d;
    color: #292B2D;
    text-align: center; }
    @media (min-width: 38em) {
      .node-type-events .field-name-field-rsvp a,
      .node-type-events .field-name-field-attendee-list a {
        border-radius: 5px;
        padding: 0.8em 1.5625em; } }
    .node-type-events .field-name-field-rsvp a:hover, .node-type-events .field-name-field-rsvp a:focus,
    .node-type-events .field-name-field-attendee-list a:hover,
    .node-type-events .field-name-field-attendee-list a:focus {
      color: white;
      background-color: #00693c; }

.view-events-page.list-display .field-name-field-image {
  z-index: 1; }

.view-events-page.list-display .event-date-container {
  position: relative;
  width: 200px;
  margin: 0 auto; }
  @media (min-width: 29em) {
    .view-events-page.list-display .event-date-container {
      width: auto;
      margin: 0; } }

.view-events-page.list-display .field-type-datetime {
  position: absolute;
  top: 0;
  left: 0;
  background-color: #00693c;
  text-align: center;
  padding: 0.8em 1.25em;
  z-index: 2;
  margin: 0;
  color: white;
  pointer-events: none; }
  .view-events-page.list-display .field-type-datetime .date-display-single__month {
    color: white;
    font-size: 1em;
    font-weight: 400;
    text-transform: uppercase;
    line-height: 1em;
    margin-bottom: 0; }
  .view-events-page.list-display .field-type-datetime .date-display-single__day {
    color: white;
    font-size: 1.95312em;
    font-weight: 700;
    margin-bottom: 0;
    line-height: 1em; }

.view-events-page.list-display .field-name-field-address,
.view-events-page.list-display .field-name-field-location,
.view-events-page.list-display .views-field-field-date-1 {
  margin-bottom: 0.512em; }

.view-events.view-display-id-page_1 .date-display-range {
  display: inline; }

.view-events-page .view-filters {
  margin-bottom: 1.25em; }
  .view-events-page .view-filters .views-exposed-widgets {
    margin-bottom: 0; }
  .view-events-page .view-filters #event-tabs {
    border: none;
    border-bottom: 3px solid #ebedef;
    border-radius: 0;
    padding: 0; }
  .view-events-page .view-filters .ui-tabs-nav {
    padding: 0;
    background-color: transparent;
    border: none; }
    .view-events-page .view-filters .ui-tabs-nav li {
      display: inline-block;
      margin-bottom: 0.512em;
      line-height: 0;
      background-color: transparent;
      color: #00693c;
      border: 1px solid #CED3D6;
      border-radius: 3px; }
      @media (min-width: 48em) {
        .view-events-page .view-filters .ui-tabs-nav li {
          margin-bottom: 0;
          border-bottom: none;
          border-bottom-right-radius: 0;
          border-bottom-left-radius: 0; } }
      .view-events-page .view-filters .ui-tabs-nav li.ui-tabs-active {
        border: 1px solid #ebedef;
        border-bottom: none;
        background-color: #66b83d; }
        @media (min-width: 48em) {
          .view-events-page .view-filters .ui-tabs-nav li.ui-tabs-active {
            background-color: #ebedef;
            color: #292B2D; } }
        .view-events-page .view-filters .ui-tabs-nav li.ui-tabs-active a {
          color: #292B2D; }
      .view-events-page .view-filters .ui-tabs-nav li a {
        padding: 1.5625em 1.95312em;
        margin-right: 0.26214em;
        color: #00693c; }
        .view-events-page .view-filters .ui-tabs-nav li a:hover {
          color: #292B2D; }
  .view-events-page .view-filters .ui-tabs-panel {
    background-color: #ebedef;
    border-radius: 0;
    padding: 1em; }
  .view-events-page .view-filters .bef-checkboxes .form-type-bef-checkbox {
    display: inline-block;
    margin: 0 0.26214em 0.26214em 0;
    padding: 0.512em 0.8em;
    color: #00693c;
    border: 1px solid #CED3D6;
    background-color: white; }
    .view-events-page .view-filters .bef-checkboxes .form-type-bef-checkbox label {
      line-height: 1.5625em;
      padding-left: 0.26214em;
      text-transform: none; }
  .view-events-page .view-filters .description {
    display: none; }
  .view-events-page .view-filters .views-exposed-form__form-actions {
    overflow: hidden;
    border-bottom: 1px solid #CED3D6;
    margin-top: 1em;
    padding-bottom: 1em; }
    .view-events-page .view-filters .views-exposed-form__form-actions .views-submit-button {
      padding: 0; }
      .view-events-page .view-filters .views-exposed-form__form-actions .views-submit-button .form-submit {
        margin: 0;
        border: none;
        display: inline-block;
        text-transform: uppercase;
        position: relative;
        font-size: 0.8em;
        font-weight: 700;
        overflow: hidden;
        padding: 0.64em 1.5625em;
        text-decoration: none;
        border-radius: 3px;
        transition: background-color .3s ease-out, border-color .3s ease-out;
        margin-right: 1em;
        -webkit-tap-highlight-color: transparent;
        outline: none;
        background-color: #66b83d;
        color: #292B2D;
        text-align: center;
        padding: 0.64em 1.25em !important;
        border: 1px solid #66b83d; }
        @media (min-width: 38em) {
          .view-events-page .view-filters .views-exposed-form__form-actions .views-submit-button .form-submit {
            border-radius: 5px;
            padding: 0.8em 1.5625em; } }
        .view-events-page .view-filters .views-exposed-form__form-actions .views-submit-button .form-submit:hover, .view-events-page .view-filters .views-exposed-form__form-actions .views-submit-button .form-submit:focus {
          color: white;
          background-color: #00693c; }
        .view-events-page .view-filters .views-exposed-form__form-actions .views-submit-button .form-submit:hover {
          border-color: #00693c; }
    .view-events-page .view-filters .views-exposed-form__form-actions .views-reset-button {
      padding: 0; }
      .view-events-page .view-filters .views-exposed-form__form-actions .views-reset-button .form-submit {
        margin: 0;
        border: none;
        display: inline-block;
        text-transform: uppercase;
        position: relative;
        font-size: 0.8em;
        font-weight: 700;
        overflow: hidden;
        padding: 0.64em 1.5625em;
        text-decoration: none;
        border-radius: 3px;
        transition: background-color .3s ease-out, border-color .3s ease-out;
        margin-right: 1em;
        -webkit-tap-highlight-color: transparent;
        outline: none;
        border: 1px solid #00693c;
        color: #292B2D;
        text-align: center;
        padding: 0.64em 1.25em !important;
        background-color: transparent; }
        @media (min-width: 38em) {
          .view-events-page .view-filters .views-exposed-form__form-actions .views-reset-button .form-submit {
            border-radius: 5px;
            padding: 0.8em 1.5625em; } }
        .view-events-page .view-filters .views-exposed-form__form-actions .views-reset-button .form-submit:hover, .view-events-page .view-filters .views-exposed-form__form-actions .views-reset-button .form-submit:focus {
          background-color: #66b83d;
          border: 1px solid #66b83d; }

.no-js .view-events-page .view-filters {
  border-bottom: 3px solid #CED3D6; }

.no-js .view-events-page #event-tabs {
  border-bottom: 0; }
  .no-js .view-events-page #event-tabs ul {
    margin: 0;
    padding: 0; }
    .no-js .view-events-page #event-tabs ul li {
      display: inline-block; }
      .no-js .view-events-page #event-tabs ul li a {
        margin-right: 0.26214em;
        border: 1px solid #CED3D6; }
  .no-js .view-events-page #event-tabs .tabs-group {
    background-color: #ebedef;
    border-radius: 5px;
    padding: 1em;
    margin-bottom: 1em; }

.no-js .view-events-page .inactive .views-exposed-form__form-actions {
  display: block;
  background-color: transparent;
  padding-left: 0; }

.block-views-events-block .field {
  border-bottom: 2px solid #CED3D6;
  padding-bottom: 0.8em;
  margin-bottom: 0.8em; }
  .block-views-events-block .field:last-child {
    border-bottom: none;
    padding-bottom: 0;
    margin-bottom: 0; }

.block-views-events-block .field-name-field-contact-name {
  font-size: 1.25em;
  font-weight: 300; }

.block-views-events-block .field-name-field-contact-phone {
  font-weight: 300; }

.block-views-events-block .field-name-field-contact-email {
  word-wrap: break-word; }

.block-views-events-block-1 h1 {
  margin: 0 auto 0.512em auto; }

@media (min-width: 48em) {
  .block-views-events-block-1 .col1 {
    width: 33.33333%;
    clear: right;
    float: left;
    margin-left: 0;
    margin-right: 0%; } }

.block-views-events-block-1 .col1 .header-image {
  color: transparent;
  position: relative;
  background-position: center center;
  background-repeat: no-repeat;
  margin-bottom: 0;
  height: 200px;
  background-size: cover; }
  @media (min-width: 48em) {
    .block-views-events-block-1 .col1 .header-image {
      height: auto; } }

.block-views-events-block-1 .col1 .arrow-left {
  position: absolute;
  bottom: 0;
  right: 46%;
  width: 0;
  height: 0;
  border-right: 15px solid transparent;
  border-left: 15px solid transparent;
  border-bottom: 15px solid #ebedef; }
  @media (min-width: 48em) {
    .block-views-events-block-1 .col1 .arrow-left {
      right: 0;
      top: 45%;
      border-top: 15px solid transparent;
      border-bottom: 15px solid transparent;
      border-right: 15px solid #ebedef; } }

.block-views-events-block-1 .col2 {
  display: block;
  background-color: #ebedef;
  padding: 1.5625em 6.38298% 0 6.38298%; }
  @media (min-width: 48em) {
    .block-views-events-block-1 .col2 {
      width: 33.33333%;
      clear: right;
      float: left;
      margin-left: 0;
      margin-right: 0%;
      padding: 1.5625em 1.5625em;
      border-right: 3px solid #CED3D6; } }
  @media (min-width: 56em) {
    .block-views-events-block-1 .col2 {
      min-height: 300px;
      padding: 1.95312em 3.5em; } }

.block-views-events-block-1 .col3 {
  display: block;
  background-color: #ebedef;
  padding: 1.5625em 6.38298%; }
  @media (min-width: 48em) {
    .block-views-events-block-1 .col3 {
      width: 33.33333%;
      clear: right;
      float: right;
      margin-right: 0;
      padding: 1.5625em 1.5625em; } }
  @media (min-width: 56em) {
    .block-views-events-block-1 .col3 {
      height: 300px;
      padding: 1.95312em 3.5em; } }

.block-views-events-block-1 h2 a {
  color: #292B2D; }
  .block-views-events-block-1 h2 a:hover {
    color: #797E80;
    text-decoration: none; }

.block-views-events-block-1 .field-name-body {
  font-weight: 300;
  line-height: 1.5625em;
  margin-bottom: 0; }

.block-views-events-block-1 .date-display-single {
  font-size: 1.25em;
  font-weight: 300; }
  .block-views-events-block-1 .date-display-single .date-display-range {
    color: #292B2D;
    margin-top: 0.512em; }

.block-views-events-block-1 .field-name-field-address,
.block-views-events-block-1 .field-name-field-location {
  font-weight: 300;
  line-height: 1.25em;
  margin-bottom: 1em;
  padding-bottom: 1em;
  border-bottom: 2px solid #CED3D6; }
  .block-views-events-block-1 .field-name-field-address p,
  .block-views-events-block-1 .field-name-field-location p {
    margin-bottom: 0; }

.block-views-events-block-1 .textformatter-list {
  font-weight: 300;
  margin-bottom: 1em; }

.block-views-events-block-1 .views-field-view-node a {
  border: none;
  display: inline-block;
  text-transform: uppercase;
  position: relative;
  font-size: 0.8em;
  font-weight: 700;
  overflow: hidden;
  padding: 0.64em 1.5625em;
  text-decoration: none;
  border-radius: 3px;
  transition: background-color .3s ease-out, border-color .3s ease-out;
  margin-right: 1em;
  -webkit-tap-highlight-color: transparent;
  outline: none;
  border: 1px solid #00693c;
  color: #292B2D;
  text-decoration: none; }
  @media (min-width: 38em) {
    .block-views-events-block-1 .views-field-view-node a {
      border-radius: 5px;
      padding: 0.8em 1.5625em; } }
  .block-views-events-block-1 .views-field-view-node a:hover {
    background-color: #66b83d;
    border: 1px solid #66b83d;
    text-decoration: none; }
  .block-views-events-block-1 .views-field-view-node a:after {
    display: none; }

.block-views-events-block-5 .event-header__image .header-image {
  color: transparent;
  position: relative;
  line-height: 0;
  background-position: center center;
  background-repeat: no-repeat;
  margin-bottom: 0;
  height: 200px;
  background-size: cover; }
  @media (min-width: 48em) {
    .block-views-events-block-5 .event-header__image .header-image {
      width: 50%;
      clear: right;
      float: left;
      margin-left: 0;
      margin-right: 0%;
      height: auto; } }

.block-views-events-block-5 .event-header__image .views-field-field-image img {
  max-height: 400px; }
  @media (min-width: 56em) {
    .block-views-events-block-5 .event-header__image .views-field-field-image img {
      float: left;
      max-width: 50%;
      overflow: hidden; } }

.block-views-events-block-5 .event-header__info {
  display: block;
  background-color: #ebedef;
  padding: 1.5625em 6.38298%;
  margin-bottom: 1.95312em; }
  @media (min-width: 48em) {
    .block-views-events-block-5 .event-header__info {
      width: 50%;
      clear: right;
      float: right;
      margin-right: 0;
      padding: 1.95312em 3.5em; } }
  @media (min-width: 56em) {
    .block-views-events-block-5 .event-header__info {
      min-height: 300px; } }
  .block-views-events-block-5 .event-header__info h1 {
    font-size: 1.25em;
    color: #292B2D; }
    @media (min-width: 38em) {
      .block-views-events-block-5 .event-header__info h1 {
        font-size: 1.5625em; } }
  .block-views-events-block-5 .event-header__info .field-name-field-date {
    margin-bottom: 1em; }
    .block-views-events-block-5 .event-header__info .field-name-field-date .date-display-range {
      margin-top: 0.512em;
      color: #292B2D; }
  .block-views-events-block-5 .event-header__info .field-name-field-address,
  .block-views-events-block-5 .event-header__info .field-name-field-location {
    font-weight: 300;
    line-height: 1.25em;
    margin-bottom: 1em;
    padding-bottom: 1em;
    border-bottom: 2px solid #CED3D6; }
    .block-views-events-block-5 .event-header__info .field-name-field-address p,
    .block-views-events-block-5 .event-header__info .field-name-field-location p {
      margin-bottom: 0; }

.block-views-events-block-4 ul .field-name-field-date {
  color: #292B2D;
  font-size: 1em;
  font-weight: 400;
  margin-bottom: 1em; }
  .block-views-events-block-4 ul .field-name-field-date .date-display-single {
    display: inline-block;
    vertical-align: middle; }
  .block-views-events-block-4 ul .field-name-field-date .date-display-range {
    display: inline-block; }

.block-views-events-block-4 ul .field-name-body {
  font-weight: 300;
  word-break: break-word; }

.block-views-events-block-8 {
  margin-top: 1.95312em; }
  .block-views-events-block-8 h2 {
    background-color: #66b83d;
    margin-bottom: 1.5625em; }
    .block-views-events-block-8 h2 span {
      background-color: white; }
  .block-views-events-block-8 h3 a {
    text-decoration: none; }
    @media (min-width: 38em) {
      .block-views-events-block-8 h3 a {
        font-size: 1.25em; } }
    .block-views-events-block-8 h3 a:hover {
      color: #005438; }

.block-views-events-block-6 {
  margin-top: 1.95312em; }
  .block-views-events-block-6 h2 {
    background-color: #66b83d;
    margin-bottom: 1.5625em; }
    .block-views-events-block-6 h2 span {
      background-color: white; }
  .block-views-events-block-6 h3 a {
    text-decoration: none; }
    @media (min-width: 38em) {
      .block-views-events-block-6 h3 a {
        font-size: 1.25em; } }
    .block-views-events-block-6 h3 a:hover {
      color: #005438; }

.region-sidebar-second .block-de-events-events-mini-calendar {
  padding: 0.8em 1em;
  margin-bottom: 1.5625em; }
  .region-sidebar-second .block-de-events-events-mini-calendar .clndr-controls .month {
    display: inline-block;
    vertical-align: middle;
    color: #00693c;
    font-size: 1.25em;
    width: 50%;
    padding: 0 0.8em;
    text-align: center;
    transition: color 0.3s ease-out;
    cursor: pointer; }
    .region-sidebar-second .block-de-events-events-mini-calendar .clndr-controls .month:hover {
      color: #797E80; }
    @media (min-width: 56em) {
      .region-sidebar-second .block-de-events-events-mini-calendar .clndr-controls .month {
        font-size: 1em; } }
    @media (min-width: 62em) {
      .region-sidebar-second .block-de-events-events-mini-calendar .clndr-controls .month {
        font-size: 1.25em; } }
  .region-sidebar-second .block-de-events-events-mini-calendar .clndr-controls .clndr-control-button {
    width: 25%;
    display: inline-block;
    vertical-align: middle;
    padding-left: 1.95312em; }
    .region-sidebar-second .block-de-events-events-mini-calendar .clndr-controls .clndr-control-button.rightalign {
      padding-left: 0;
      padding-right: 1.95312em; }
    .region-sidebar-second .block-de-events-events-mini-calendar .clndr-controls .clndr-control-button .clndr-previous-button,
    .region-sidebar-second .block-de-events-events-mini-calendar .clndr-controls .clndr-control-button .clndr-next-button {
      font: 0/0 serif;
      text-shadow: none;
      color: transparent;
      border: 3px solid #66b83d;
      border-radius: 50%;
      transition: border-color 0.3s ease-out;
      cursor: pointer; }
      .region-sidebar-second .block-de-events-events-mini-calendar .clndr-controls .clndr-control-button .clndr-previous-button:hover,
      .region-sidebar-second .block-de-events-events-mini-calendar .clndr-controls .clndr-control-button .clndr-next-button:hover {
        border-color: #797E80; }
        .region-sidebar-second .block-de-events-events-mini-calendar .clndr-controls .clndr-control-button .clndr-previous-button:hover:before,
        .region-sidebar-second .block-de-events-events-mini-calendar .clndr-controls .clndr-control-button .clndr-next-button:hover:before {
          color: #797E80; }
      .region-sidebar-second .block-de-events-events-mini-calendar .clndr-controls .clndr-control-button .clndr-previous-button:before,
      .region-sidebar-second .block-de-events-events-mini-calendar .clndr-controls .clndr-control-button .clndr-next-button: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';
        color: #66b83d; }
    .region-sidebar-second .block-de-events-events-mini-calendar .clndr-controls .clndr-control-button .clndr-next-button {
      float: right; }
      .region-sidebar-second .block-de-events-events-mini-calendar .clndr-controls .clndr-control-button .clndr-next-button:before {
        font-weight: 700;
        content: 'keyboard_arrow_right'; }
    .region-sidebar-second .block-de-events-events-mini-calendar .clndr-controls .clndr-control-button .clndr-previous-button {
      float: left; }
      .region-sidebar-second .block-de-events-events-mini-calendar .clndr-controls .clndr-control-button .clndr-previous-button:before {
        font-weight: 700;
        content: 'keyboard_arrow_left'; }
  .region-sidebar-second .block-de-events-events-mini-calendar table {
    margin-bottom: 0;
    border: none; }
    .region-sidebar-second .block-de-events-events-mini-calendar table .header-days {
      border-bottom: 2px solid #66b83d; }
    .region-sidebar-second .block-de-events-events-mini-calendar table tr:nth-child(odd),
    .region-sidebar-second .block-de-events-events-mini-calendar table tr:nth-child(even) {
      background-color: #ebedef; }
    .region-sidebar-second .block-de-events-events-mini-calendar table td {
      width: 14.285714286%;
      padding: 0.8em 0.4096em 0.8em 0;
      border: none;
      text-align: center;
      font-size: 1em; }
      .region-sidebar-second .block-de-events-events-mini-calendar table td:nth-child(7n+7) {
        padding-right: 0; }
      @media (min-width: 74.25em) {
        .region-sidebar-second .block-de-events-events-mini-calendar table td {
          padding: 0.8em 0.512em; } }
      .region-sidebar-second .block-de-events-events-mini-calendar table td.event {
        color: #00693c;
        font-weight: 700;
        cursor: pointer; }
        .region-sidebar-second .block-de-events-events-mini-calendar table td.event:hover {
          color: #005438;
          text-decoration: underline; }

/* sections/_news.scss */
.block-views-feature-block {
  overflow: hidden;
  position: relative; }
  .block-views-feature-block .col1 .header-image {
    color: transparent;
    position: relative;
    background-position: center;
    background-repeat: no-repeat;
    margin-bottom: 0;
    height: 200px;
    background-size: cover; }
    @media (min-width: 38em) {
      .block-views-feature-block .col1 .header-image {
        width: 56.59574%;
        clear: right;
        float: left;
        margin-left: 0;
        margin-right: 2.12766%; } }
    @media (min-width: 48em) {
      .block-views-feature-block .col1 .header-image {
        width: 65.10638%;
        clear: right;
        float: left;
        margin-left: 0;
        margin-right: 2.12766%; } }
    @media (min-width: 48em) {
      .block-views-feature-block .col1 .header-image {
        height: auto; } }
  .block-views-feature-block .col1 .arrow-left {
    position: absolute;
    bottom: 0;
    right: 46%;
    width: 0;
    height: 0;
    border-right: 15px solid transparent;
    border-left: 15px solid transparent;
    border-bottom: 15px solid #ebedef; }
    @media (min-width: 38em) {
      .block-views-feature-block .col1 .arrow-left {
        right: 0;
        top: 45%;
        border-top: 15px solid transparent;
        border-bottom: 15px solid transparent;
        border-right: 15px solid #ebedef; } }
  .block-views-feature-block .col2 {
    padding: 1.95312em 3.5em; }
    @media (min-width: 38em) {
      .block-views-feature-block .col2 {
        width: 40.42553%;
        clear: right;
        float: right;
        margin-right: 0;
        padding: 1.95312em 0;
        margin-bottom: 0; } }
    @media (min-width: 48em) {
      .block-views-feature-block .col2 {
        width: 31.91489%;
        clear: right;
        float: right;
        margin-right: 0;
        min-height: 300px; } }
    @media (min-width: 38em) {
      .block-views-feature-block .col2 .news-content {
        float: left;
        width: 100%;
        max-width: 430px;
        padding-right: 1.25em; } }
    @media (min-width: 48em) {
      .block-views-feature-block .col2 .news-content {
        float: left;
        width: 100%;
        max-width: 330px;
        padding-right: 1.25em; } }
    .block-views-feature-block .col2 .news-content h2 {
      color: #292B2D;
      margin-bottom: 1.25em; }
    .block-views-feature-block .col2 .news-content .headings, .block-views-feature-block .col2 .news-content .block-fieldblock-node-basic-page-default-field-photo-gallery h2, .block-fieldblock-node-basic-page-default-field-photo-gallery .block-views-feature-block .col2 .news-content h2, .block-views-feature-block .col2 .news-content
    .block-fieldblock-node-events-default-field-photo-gallery h2,
    .block-fieldblock-node-events-default-field-photo-gallery .block-views-feature-block .col2 .news-content h2, .block-views-feature-block .col2 .news-content
    .block-fieldblock-node-news-default-field-photo-gallery h2,
    .block-fieldblock-node-news-default-field-photo-gallery .block-views-feature-block .col2 .news-content h2, .block-views-feature-block .col2 .news-content
    .field-name-field-photo-gallery h2,
    .field-name-field-photo-gallery .block-views-feature-block .col2 .news-content h2, .block-views-feature-block .col2 .news-content .region-events-primary .block h2, .region-events-primary .block .block-views-feature-block .col2 .news-content h2, .block-views-feature-block .col2 .news-content
    .region-events-secondary .block h2,
    .region-events-secondary .block .block-views-feature-block .col2 .news-content h2, .block-views-feature-block .col2 .news-content .block-views-events-block-8 h2, .block-views-events-block-8 .block-views-feature-block .col2 .news-content h2, .block-views-feature-block .col2 .news-content .block-views-events-block-6 h2, .block-views-events-block-6 .block-views-feature-block .col2 .news-content h2, .block-views-feature-block .col2 .news-content .block-views-news-block-6 h2, .block-views-news-block-6 .block-views-feature-block .col2 .news-content h2, .block-views-feature-block .col2 .news-content
    .block-views-news-block-8 h2,
    .block-views-news-block-8 .block-views-feature-block .col2 .news-content h2, .block-views-feature-block .col2 .news-content .block-meeting-minutes h2, .block-meeting-minutes .block-views-feature-block .col2 .news-content h2, .block-views-feature-block .col2 .news-content .block-views-lifelong-learning-block-5 h2, .block-views-lifelong-learning-block-5 .block-views-feature-block .col2 .news-content h2, .block-views-feature-block .col2 .news-content .node-type-travel-data .field-name-field-event-price .field-label, .node-type-travel-data .field-name-field-event-price .block-views-feature-block .col2 .news-content .field-label, .block-views-feature-block .col2 .news-content .node-type-travel-data .field-name-field-event-itinerary .field-label, .node-type-travel-data .field-name-field-event-itinerary .block-views-feature-block .col2 .news-content .field-label, .block-views-feature-block .col2 .news-content .node-type-travel-data .group-faculty-info h2, .node-type-travel-data .group-faculty-info .block-views-feature-block .col2 .news-content h2 {
      background-color: #00693c; }
      .block-views-feature-block .col2 .news-content .headings .field-name-field-feature-type, .block-views-feature-block .col2 .news-content .block-fieldblock-node-basic-page-default-field-photo-gallery h2 .field-name-field-feature-type, .block-fieldblock-node-basic-page-default-field-photo-gallery .block-views-feature-block .col2 .news-content h2 .field-name-field-feature-type, .block-views-feature-block .col2 .news-content
      .block-fieldblock-node-events-default-field-photo-gallery h2 .field-name-field-feature-type,
      .block-fieldblock-node-events-default-field-photo-gallery .block-views-feature-block .col2 .news-content h2 .field-name-field-feature-type, .block-views-feature-block .col2 .news-content
      .block-fieldblock-node-news-default-field-photo-gallery h2 .field-name-field-feature-type,
      .block-fieldblock-node-news-default-field-photo-gallery .block-views-feature-block .col2 .news-content h2 .field-name-field-feature-type, .block-views-feature-block .col2 .news-content
      .field-name-field-photo-gallery h2 .field-name-field-feature-type,
      .field-name-field-photo-gallery .block-views-feature-block .col2 .news-content h2 .field-name-field-feature-type, .block-views-feature-block .col2 .news-content .region-events-primary .block h2 .field-name-field-feature-type, .region-events-primary .block .block-views-feature-block .col2 .news-content h2 .field-name-field-feature-type, .block-views-feature-block .col2 .news-content
      .region-events-secondary .block h2 .field-name-field-feature-type,
      .region-events-secondary .block .block-views-feature-block .col2 .news-content h2 .field-name-field-feature-type, .block-views-feature-block .col2 .news-content .block-views-events-block-8 h2 .field-name-field-feature-type, .block-views-events-block-8 .block-views-feature-block .col2 .news-content h2 .field-name-field-feature-type, .block-views-feature-block .col2 .news-content .block-views-events-block-6 h2 .field-name-field-feature-type, .block-views-events-block-6 .block-views-feature-block .col2 .news-content h2 .field-name-field-feature-type, .block-views-feature-block .col2 .news-content .block-views-news-block-6 h2 .field-name-field-feature-type, .block-views-news-block-6 .block-views-feature-block .col2 .news-content h2 .field-name-field-feature-type, .block-views-feature-block .col2 .news-content
      .block-views-news-block-8 h2 .field-name-field-feature-type,
      .block-views-news-block-8 .block-views-feature-block .col2 .news-content h2 .field-name-field-feature-type, .block-views-feature-block .col2 .news-content .block-meeting-minutes h2 .field-name-field-feature-type, .block-meeting-minutes .block-views-feature-block .col2 .news-content h2 .field-name-field-feature-type, .block-views-feature-block .col2 .news-content .block-views-lifelong-learning-block-5 h2 .field-name-field-feature-type, .block-views-lifelong-learning-block-5 .block-views-feature-block .col2 .news-content h2 .field-name-field-feature-type, .block-views-feature-block .col2 .news-content .node-type-travel-data .field-name-field-event-price .field-label .field-name-field-feature-type, .node-type-travel-data .field-name-field-event-price .block-views-feature-block .col2 .news-content .field-label .field-name-field-feature-type, .block-views-feature-block .col2 .news-content .node-type-travel-data .field-name-field-event-itinerary .field-label .field-name-field-feature-type, .node-type-travel-data .field-name-field-event-itinerary .block-views-feature-block .col2 .news-content .field-label .field-name-field-feature-type, .block-views-feature-block .col2 .news-content .node-type-travel-data .group-faculty-info h2 .field-name-field-feature-type, .node-type-travel-data .group-faculty-info .block-views-feature-block .col2 .news-content h2 .field-name-field-feature-type {
        background-color: #CED3D6; }
    .block-views-feature-block .col2 .news-content .learn-more a {
      border: none;
      display: inline-block;
      text-transform: uppercase;
      position: relative;
      font-size: 0.8em;
      font-weight: 700;
      overflow: hidden;
      padding: 0.64em 1.5625em;
      text-decoration: none;
      border-radius: 3px;
      transition: background-color .3s ease-out, border-color .3s ease-out;
      margin-right: 1em;
      -webkit-tap-highlight-color: transparent;
      outline: none;
      border: 1px solid #00693c;
      color: #292B2D;
      text-align: center;
      width: 100%;
      text-align: center; }
      @media (min-width: 38em) {
        .block-views-feature-block .col2 .news-content .learn-more a {
          border-radius: 5px;
          padding: 0.8em 1.5625em; } }
      .block-views-feature-block .col2 .news-content .learn-more a:hover, .block-views-feature-block .col2 .news-content .learn-more a:focus {
        background-color: #66b83d;
        border: 1px solid #66b83d; }

.block-views-news-block-4 .views-row {
  background-color: #ebedef;
  padding: 1.5625em;
  margin-bottom: 1.25em; }
  @media (min-width: 38em) {
    .block-views-news-block-4 .views-row {
      width: 48.93617%;
      clear: right;
      float: left;
      margin-left: 0;
      margin-right: 2.12766%; } }
  @media (min-width: 56em) {
    .block-views-news-block-4 .views-row {
      width: 31.91489%;
      clear: right;
      float: left;
      margin-left: 0;
      margin-right: 2.12766%; } }
  @media (min-width: 38em) {
    .block-views-news-block-4 .views-row:nth-child(3n+2) {
      width: 48.93617%;
      clear: right;
      float: right;
      margin-right: 0; } }
  @media (min-width: 56em) {
    .block-views-news-block-4 .views-row:nth-child(3n+2) {
      width: 31.91489%;
      clear: right;
      float: left;
      margin-left: 0;
      margin-right: 2.12766%; } }
  .block-views-news-block-4 .views-row:nth-child(3n+2) .headings, .block-views-news-block-4 .views-row:nth-child(3n+2) .block-fieldblock-node-basic-page-default-field-photo-gallery h2, .block-fieldblock-node-basic-page-default-field-photo-gallery .block-views-news-block-4 .views-row:nth-child(3n+2) h2, .block-views-news-block-4 .views-row:nth-child(3n+2)
  .block-fieldblock-node-events-default-field-photo-gallery h2,
  .block-fieldblock-node-events-default-field-photo-gallery .block-views-news-block-4 .views-row:nth-child(3n+2) h2, .block-views-news-block-4 .views-row:nth-child(3n+2)
  .block-fieldblock-node-news-default-field-photo-gallery h2,
  .block-fieldblock-node-news-default-field-photo-gallery .block-views-news-block-4 .views-row:nth-child(3n+2) h2, .block-views-news-block-4 .views-row:nth-child(3n+2)
  .field-name-field-photo-gallery h2,
  .field-name-field-photo-gallery .block-views-news-block-4 .views-row:nth-child(3n+2) h2, .block-views-news-block-4 .views-row:nth-child(3n+2) .region-events-primary .block h2, .region-events-primary .block .block-views-news-block-4 .views-row:nth-child(3n+2) h2, .block-views-news-block-4 .views-row:nth-child(3n+2)
  .region-events-secondary .block h2,
  .region-events-secondary .block .block-views-news-block-4 .views-row:nth-child(3n+2) h2, .block-views-news-block-4 .views-row:nth-child(3n+2) .block-views-events-block-8 h2, .block-views-events-block-8 .block-views-news-block-4 .views-row:nth-child(3n+2) h2, .block-views-news-block-4 .views-row:nth-child(3n+2) .block-views-events-block-6 h2, .block-views-events-block-6 .block-views-news-block-4 .views-row:nth-child(3n+2) h2, .block-views-news-block-4 .views-row:nth-child(3n+2) .block-views-news-block-6 h2, .block-views-news-block-6 .block-views-news-block-4 .views-row:nth-child(3n+2) h2, .block-views-news-block-4 .views-row:nth-child(3n+2)
  .block-views-news-block-8 h2,
  .block-views-news-block-8 .block-views-news-block-4 .views-row:nth-child(3n+2) h2, .block-views-news-block-4 .views-row:nth-child(3n+2) .block-meeting-minutes h2, .block-meeting-minutes .block-views-news-block-4 .views-row:nth-child(3n+2) h2, .block-views-news-block-4 .views-row:nth-child(3n+2) .block-views-lifelong-learning-block-5 h2, .block-views-lifelong-learning-block-5 .block-views-news-block-4 .views-row:nth-child(3n+2) h2, .block-views-news-block-4 .views-row:nth-child(3n+2) .node-type-travel-data .field-name-field-event-price .field-label, .node-type-travel-data .field-name-field-event-price .block-views-news-block-4 .views-row:nth-child(3n+2) .field-label, .block-views-news-block-4 .views-row:nth-child(3n+2) .node-type-travel-data .field-name-field-event-itinerary .field-label, .node-type-travel-data .field-name-field-event-itinerary .block-views-news-block-4 .views-row:nth-child(3n+2) .field-label, .block-views-news-block-4 .views-row:nth-child(3n+2) .node-type-travel-data .group-faculty-info h2, .node-type-travel-data .group-faculty-info .block-views-news-block-4 .views-row:nth-child(3n+2) h2 {
    background-color: #66b83d; }
  .block-views-news-block-4 .views-row.views-row-last {
    width: 100%; }
    @media (min-width: 56em) {
      .block-views-news-block-4 .views-row.views-row-last {
        width: 31.91489%;
        clear: right;
        float: right;
        margin-right: 0; } }
  .block-views-news-block-4 .views-row .views-field-nothing-1 {
    margin-bottom: 1.95312em; }
  .block-views-news-block-4 .views-row h2 {
    color: #292B2D; }
  .block-views-news-block-4 .views-row .views-field-view-node a {
    border: none;
    display: inline-block;
    text-transform: uppercase;
    position: relative;
    font-size: 0.8em;
    font-weight: 700;
    overflow: hidden;
    padding: 0.64em 1.5625em;
    text-decoration: none;
    border-radius: 3px;
    transition: background-color .3s ease-out, border-color .3s ease-out;
    margin-right: 1em;
    -webkit-tap-highlight-color: transparent;
    outline: none;
    border: 1px solid #00693c;
    color: #292B2D;
    text-align: center;
    width: 100%;
    text-align: center; }
    @media (min-width: 38em) {
      .block-views-news-block-4 .views-row .views-field-view-node a {
        border-radius: 5px;
        padding: 0.8em 1.5625em; } }
    .block-views-news-block-4 .views-row .views-field-view-node a:hover, .block-views-news-block-4 .views-row .views-field-view-node a:focus {
      background-color: #66b83d;
      border: 1px solid #66b83d; }

.block-views-news-block-4 .more-link {
  border-top: 3px solid #CED3D6;
  padding-top: 0.8em; }

/* sections/news/_node-news.scss */
.view-news.list-display .views-field-created {
  margin-bottom: 1em; }

.block-views-news-block-6,
.block-views-news-block-8 {
  margin-top: 1.95312em;
  margin-bottom: 1em; }
  .block-views-news-block-6 h2,
  .block-views-news-block-8 h2 {
    background-color: #66b83d;
    margin-bottom: 1.5625em; }
    .block-views-news-block-6 h2 span,
    .block-views-news-block-8 h2 span {
      background-color: white; }
  .block-views-news-block-6 h3 a,
  .block-views-news-block-8 h3 a {
    text-decoration: none; }
    @media (min-width: 38em) {
      .block-views-news-block-6 h3 a,
      .block-views-news-block-8 h3 a {
        font-size: 1.25em; } }
    .block-views-news-block-6 h3 a:hover,
    .block-views-news-block-8 h3 a:hover {
      color: #292B2D; }
  .block-views-news-block-6 .more-link,
  .block-views-news-block-8 .more-link {
    border-top: 2px solid #66b83d;
    padding-top: 1em; }

.block-views-news-block-1 h1 {
  margin: 0 auto 0.512em auto; }

@media (min-width: 48em) {
  .block-views-news-block-1 .col1 {
    width: 33.33333%;
    clear: right;
    float: left;
    margin-left: 0;
    margin-right: 0%; } }

.block-views-news-block-1 .col1 .header-image {
  color: transparent;
  position: relative;
  line-height: 0;
  background-position: center center;
  background-repeat: no-repeat;
  margin-bottom: 0;
  height: 200px;
  background-size: cover; }
  @media (min-width: 48em) {
    .block-views-news-block-1 .col1 .header-image {
      height: auto; } }

.block-views-news-block-1 .col1 .arrow-left {
  position: absolute;
  bottom: 0;
  right: 46%;
  width: 0;
  height: 0;
  border-right: 15px solid transparent;
  border-left: 15px solid transparent;
  border-bottom: 15px solid #ebedef; }
  @media (min-width: 48em) {
    .block-views-news-block-1 .col1 .arrow-left {
      right: 0;
      top: 45%;
      border-top: 15px solid transparent;
      border-bottom: 15px solid transparent;
      border-right: 15px solid #ebedef; } }

.block-views-news-block-1 .col2 {
  display: block;
  background-color: #ebedef;
  padding: 1.5625em 6.38298% 0 6.38298%; }
  @media (min-width: 48em) {
    .block-views-news-block-1 .col2 {
      width: 33.33333%;
      clear: right;
      float: left;
      margin-left: 0;
      margin-right: 0%;
      border-right: 3px solid #CED3D6;
      padding: 1.5625em 1.5625em; } }
  @media (min-width: 56em) {
    .block-views-news-block-1 .col2 {
      min-height: 300px;
      padding: 1.95312em 3.5em; } }

.block-views-news-block-1 .col3 {
  display: block;
  background-color: #ebedef;
  padding: 1.5625em 6.38298%; }
  @media (min-width: 48em) {
    .block-views-news-block-1 .col3 {
      width: 33.33333%;
      clear: right;
      float: right;
      margin-right: 0;
      padding: 1.5625em 1.5625em; } }
  @media (min-width: 56em) {
    .block-views-news-block-1 .col3 {
      height: 300px;
      padding: 1.95312em 3.5em; } }

.block-views-news-block-1 h2 a {
  color: #292B2D; }
  .block-views-news-block-1 h2 a:hover {
    color: #797E80;
    text-decoration: none; }

.block-views-news-block-1 .field-name-body {
  font-weight: 300;
  line-height: 1.5625em;
  margin-bottom: 0; }

.block-views-news-block-1 .views-field-created {
  font-size: 1.25em;
  font-weight: 300;
  line-height: 1.25em;
  margin-bottom: 1em; }

.block-views-news-block-1 .field-name-field-news-type {
  font-weight: 300; }
  .block-views-news-block-1 .field-name-field-news-type .field-item {
    display: inline-block;
    padding-right: 0.512em;
    margin-top: 0.26214em; }

.view-display-id-block_5 .col1 {
  position: relative;
  margin-bottom: 0;
  line-height: 0; }
  .view-display-id-block_5 .col1 img {
    width: 100%; }
  .view-display-id-block_5 .col1 .image-field-caption {
    border: none;
    margin: 0;
    position: absolute;
    bottom: 0;
    color: white;
    background-color: rgba(0, 51, 30, 0.7);
    width: 100%;
    padding: 1em 1.25em 1.25em 1.25em; }
    .view-display-id-block_5 .col1 .image-field-caption a {
      color: white; }
  .view-display-id-block_5 .col1 .views-field-nothing {
    position: absolute;
    bottom: -1px;
    right: 46%; }
    @media (min-width: 38em) {
      .view-display-id-block_5 .col1 .views-field-nothing {
        right: 49%; } }
    .view-display-id-block_5 .col1 .views-field-nothing .arrow {
      width: 0;
      height: 0;
      border-right: 15px solid transparent;
      border-left: 15px solid transparent;
      border-bottom: 15px solid #ebedef; }

.view-display-id-block_5 .col2 {
  display: block;
  background-color: #ebedef;
  padding: 1.25em 1.5625em;
  margin-bottom: 1.95312em; }
  .view-display-id-block_5 .col2 h1 {
    font-size: 1.25em;
    color: #292B2D;
    margin-bottom: 0.512em; }
    @media (min-width: 38em) {
      .view-display-id-block_5 .col2 h1 {
        font-size: 1.5625em; } }
  .view-display-id-block_5 .col2 .views-field-created {
    font-size: 1.25em;
    font-weight: 300;
    line-height: 1.25em;
    margin-bottom: 0.512em; }
  .view-display-id-block_5 .col2 .field-name-field-news-type {
    font-weight: 300;
    margin-bottom: 0; }
    .view-display-id-block_5 .col2 .field-name-field-news-type .field-item {
      display: inline-block;
      padding-right: 0.512em; }

/* sections/_page.scss */
/* sections/page/_basic-page.scss */
.page-node-906 .card-row.card-two-col:after {
  content: "";
  display: table;
  clear: both; }

.page-node-906 .card-row.card-two-col .card {
  margin-bottom: 1.25em; }
  @media (min-width: 48em) {
    .page-node-906 .card-row.card-two-col .card {
      width: 48.93617%;
      clear: right;
      float: left;
      margin-left: 0;
      margin-right: 2.12766%; } }
  @media (min-width: 48em) {
    .page-node-906 .card-row.card-two-col .card:nth-child(2n+2) {
      width: 48.93617%;
      clear: right;
      float: right;
      margin-right: 0; } }

@media (min-width: 38em) {
  .page-node-1023 .card .card__image {
    width: 31.91489%;
    clear: right;
    float: left;
    margin-left: 0;
    margin-right: 2.12766%; } }

@media (min-width: 38em) {
  .page-node-1023 .card .card__description {
    width: 65.95745%;
    clear: right;
    float: right;
    margin-right: 0; } }

/* sections/page/_node-alumni-council.css */
.page-node-412 .president-cta {
  margin: 0 3.8147em 1em 3.8147em;
  padding-top: 0.512em; }
  @media (min-width: 29em) {
    .page-node-412 .president-cta {
      width: 40.42553%;
      clear: right;
      float: left;
      margin-left: 0;
      margin-right: 2.12766%; } }
  .page-node-412 .president-cta .card__supporting-text {
    padding: 0.8em 1.25em; }
    @media (min-width: 29em) {
      .page-node-412 .president-cta .card__supporting-text {
        padding: 0.512em 0.8em; } }
    @media (min-width: 56em) {
      .page-node-412 .president-cta .card__supporting-text {
        padding: 0.8em 1.25em; } }
  .page-node-412 .president-cta .card__image {
    line-height: 0;
    margin-bottom: 0.512em; }
    .page-node-412 .president-cta .card__image img {
      float: none;
      width: 100%;
      margin: 0;
      padding: 0; }
  .page-node-412 .president-cta h2 {
    margin-top: 0;
    margin-bottom: 0; }
  .page-node-412 .president-cta ul {
    margin: 0;
    padding: 0; }
    .page-node-412 .president-cta ul li {
      list-style-image: none;
      list-style-type: none;
      list-style: none;
      margin-left: 0; }

/* page-node-450 */
.page-node-450 .card {
  box-shadow: none; }
  .page-node-450 .card .card__image {
    width: 40.42553%;
    clear: right;
    float: right;
    margin-right: 0; }
  .page-node-450 .card .card__description {
    width: 57.44681%;
    clear: right;
    float: left;
    margin-left: 0;
    margin-right: 2.12766%; }
  .page-node-450 .card .card__text {
    clear: both; }

.page-node-450 .card--default .card__supporting-text {
  border: 1px solid #CED3D6; }

.block-views-alumni-relations-office-block .item-list {
  margin-top: 1em;
  overflow: hidden; }

.block-views-alumni-relations-office-block h3 {
  clear: both;
  color: #00693c;
  font-size: 1.25em; }
  @media (min-width: 38em) {
    .block-views-alumni-relations-office-block h3 {
      font-size: 1.5625em; } }

.block-views-alumni-relations-office-block .views-row {
  overflow: hidden;
  border: 1px solid #CED3D6;
  padding: 1em;
  margin-bottom: 1em; }
  .block-views-alumni-relations-office-block .views-row .field:last-child {
    margin-bottom: 0; }
  .block-views-alumni-relations-office-block .views-row .views-field-title {
    line-height: 1.95312em; }
  .block-views-alumni-relations-office-block .views-row .field-name-field-email-address {
    word-wrap: break-word; }

@media (min-width: 38em) {
  .block-views-alumni-relations-office-block .views-row-odd {
    width: 48.93617%;
    clear: right;
    float: left;
    margin-left: 0;
    margin-right: 2.12766%; } }

@media (min-width: 38em) {
  .block-views-alumni-relations-office-block .views-row-even {
    width: 48.93617%;
    clear: right;
    float: right;
    margin-right: 0; } }

.page-node-407 .years {
  margin-bottom: 1.25em; }

.page-node-407 .group-year {
  overflow: hidden;
  display: block; }

.page-node-407 .btn-year {
  width: 18.29787%;
  clear: right;
  float: left;
  margin-left: 0;
  margin-right: 2.12766%;
  display: inline-block;
  margin-bottom: 0.8em;
  font-family: Arial, Helvetica, sans-serif; }
  .page-node-407 .btn-year:nth-child(5n+5) {
    width: 18.29787%;
    clear: right;
    float: right;
    margin-right: 0; }
  .page-node-407 .btn-year a,
  .page-node-407 .btn-year span {
    border: none;
    display: inline-block;
    text-transform: uppercase;
    position: relative;
    font-size: 0.8em;
    font-weight: 700;
    overflow: hidden;
    padding: 0.64em 1.5625em;
    text-decoration: none;
    border-radius: 3px;
    transition: background-color .3s ease-out, border-color .3s ease-out;
    margin-right: 1em;
    -webkit-tap-highlight-color: transparent;
    outline: none;
    border-radius: 2px !important;
    background-color: #fafbfb;
    border: 1px solid #CED3D6;
    font-size: 1.25em;
    font-weight: 300;
    text-decoration: none;
    text-align: center;
    width: 100%;
    padding: 0.512em 0; }
    @media (min-width: 38em) {
      .page-node-407 .btn-year a,
      .page-node-407 .btn-year span {
        border-radius: 5px;
        padding: 0.8em 1.5625em; } }
  .page-node-407 .btn-year a:hover {
    background-color: #00693c;
    color: white; }

/* sections/page/_node-reunion.scss */
.node-reunion .horizontal-tabs {
  border: none; }

.node-reunion ul.horizontal-tabs-list {
  background-color: transparent;
  margin-bottom: 3.05176em;
  border: none; }
  .node-reunion ul.horizontal-tabs-list li {
    background: transparent;
    border: none;
    display: inline-block;
    padding: 0;
    margin-right: 0.8em; }
    .node-reunion ul.horizontal-tabs-list li.first a::before {
      content: 'event_note'; }
    .node-reunion ul.horizontal-tabs-list li.last {
      margin-right: 0; }
      .node-reunion ul.horizontal-tabs-list li.last a::before {
        content: 'event'; }
    .node-reunion ul.horizontal-tabs-list li:hover {
      background-color: transparent; }
    .node-reunion ul.horizontal-tabs-list li a {
      border: none;
      display: inline-block;
      text-transform: uppercase;
      position: relative;
      font-size: 0.8em;
      font-weight: 700;
      overflow: hidden;
      padding: 0.64em 1.5625em;
      text-decoration: none;
      border-radius: 3px;
      transition: background-color .3s ease-out, border-color .3s ease-out;
      margin-right: 1em;
      -webkit-tap-highlight-color: transparent;
      outline: none;
      background-color: #CED3D6;
      color: #292B2D; }
      @media (min-width: 38em) {
        .node-reunion ul.horizontal-tabs-list li a {
          border-radius: 5px;
          padding: 0.8em 1.5625em; } }
      .node-reunion ul.horizontal-tabs-list li a::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';
        font-size: 18px;
        color: #292B2D;
        margin-right: 0.26214em;
        transition: color 0.3s ease-out; }
      .node-reunion ul.horizontal-tabs-list li a:hover {
        background-color: #00693c;
        color: white; }
        .node-reunion ul.horizontal-tabs-list li a:hover::before {
          color: white; }
    .node-reunion ul.horizontal-tabs-list li.selected {
      background-color: transparent; }
      .node-reunion ul.horizontal-tabs-list li.selected strong {
        color: white; }
      .node-reunion ul.horizontal-tabs-list li.selected a {
        border: none;
        display: inline-block;
        text-transform: uppercase;
        position: relative;
        font-size: 0.8em;
        font-weight: 700;
        overflow: hidden;
        padding: 0.64em 1.5625em;
        text-decoration: none;
        border-radius: 3px;
        transition: background-color .3s ease-out, border-color .3s ease-out;
        margin-right: 1em;
        -webkit-tap-highlight-color: transparent;
        outline: none;
        background-color: #00693c; }
        @media (min-width: 38em) {
          .node-reunion ul.horizontal-tabs-list li.selected a {
            border-radius: 5px;
            padding: 0.8em 1.5625em; } }
        .node-reunion ul.horizontal-tabs-list li.selected a::before {
          color: white; }

.node-reunion h1 {
  margin-bottom: 1em; }

.node-reunion .group-title-links {
  margin-top: 0.8em; }
  @media (min-width: 48em) {
    .node-reunion .group-title-links {
      width: 36.17021%;
      clear: right;
      float: right;
      margin-right: 0; } }
  @media (min-width: 62em) {
    .node-reunion .group-title-links {
      width: 23.40426%;
      clear: right;
      float: right;
      margin-right: 0; } }
  .node-reunion .group-title-links .field-type-link-field {
    margin-bottom: 0.512em; }
    @media (min-width: 29em) {
      .node-reunion .group-title-links .field-type-link-field {
        display: inline-block;
        margin-right: 1%;
        width: 48.93617%; } }
    @media (min-width: 48em) {
      .node-reunion .group-title-links .field-type-link-field {
        display: block;
        width: 100%; } }
    .node-reunion .group-title-links .field-type-link-field a {
      border: none;
      display: inline-block;
      text-transform: uppercase;
      position: relative;
      font-size: 0.8em;
      font-weight: 700;
      overflow: hidden;
      padding: 0.64em 1.5625em;
      text-decoration: none;
      border-radius: 3px;
      transition: background-color .3s ease-out, border-color .3s ease-out;
      margin-right: 1em;
      -webkit-tap-highlight-color: transparent;
      outline: none;
      background-color: #66b83d;
      color: #292B2D;
      text-align: center;
      font-size: 1em;
      width: 100%; }
      @media (min-width: 38em) {
        .node-reunion .group-title-links .field-type-link-field a {
          border-radius: 5px;
          padding: 0.8em 1.5625em; } }
      .node-reunion .group-title-links .field-type-link-field a:hover, .node-reunion .group-title-links .field-type-link-field a:focus {
        color: white;
        background-color: #00693c; }
    .node-reunion .group-title-links .field-type-link-field.field-name-field-see-who-s-going {
      margin-right: 0; }
  .node-reunion .group-title-links .field-name-field-image {
    margin: 1.95312em auto 0 auto;
    padding: 0 3.8147em; }
    @media (min-width: 38em) {
      .node-reunion .group-title-links .field-name-field-image {
        padding: 0 5.96046em; } }
    @media (min-width: 48em) {
      .node-reunion .group-title-links .field-name-field-image {
        padding: 0; } }
    .node-reunion .group-title-links .field-name-field-image img {
      width: 100%; }

.node-reunion .horizontal-tabs-pane {
  padding: 0 !important; }
  @media (min-width: 48em) {
    .node-reunion .horizontal-tabs-pane {
      width: 61.70213%;
      clear: right;
      float: left;
      margin-left: 0;
      margin-right: 2.12766%; } }
  @media (min-width: 62em) {
    .node-reunion .horizontal-tabs-pane {
      width: 74.46809%;
      clear: right;
      float: left;
      margin-left: 0;
      margin-right: 2.12766%; } }
  .node-reunion .horizontal-tabs-pane .field-name-title-field,
  .node-reunion .horizontal-tabs-pane .fieldset-description {
    margin-bottom: 1em; }

.node-reunion ul.quicktabs-tabs {
  margin: 0;
  padding: 0;
  overflow: hidden; }
  .node-reunion ul.quicktabs-tabs li {
    margin: 0 2.12766% 0 0;
    padding: 0;
    display: inline-block;
    width: 48%; }
    @media (min-width: 29em) {
      .node-reunion ul.quicktabs-tabs li {
        width: auto;
        margin-right: 0; } }
    .node-reunion ul.quicktabs-tabs li:nth-child(2n+2) {
      margin-right: 0; }
    .node-reunion ul.quicktabs-tabs li a {
      border: none;
      display: inline-block;
      text-transform: uppercase;
      position: relative;
      font-size: 0.8em;
      font-weight: 700;
      overflow: hidden;
      padding: 0.64em 1.5625em;
      text-decoration: none;
      border-radius: 3px;
      transition: background-color .3s ease-out, border-color .3s ease-out;
      margin-right: 1em;
      -webkit-tap-highlight-color: transparent;
      outline: none;
      margin: 0 0.512em 0.512em 0;
      text-align: center;
      background-color: #ebedef;
      color: #292B2D;
      width: 100%; }
      @media (min-width: 38em) {
        .node-reunion ul.quicktabs-tabs li a {
          border-radius: 5px;
          padding: 0.8em 1.5625em; } }
      @media (min-width: 29em) {
        .node-reunion ul.quicktabs-tabs li a {
          width: auto; } }
      .node-reunion ul.quicktabs-tabs li a:hover {
        background-color: #00693c;
        color: white; }
    .node-reunion ul.quicktabs-tabs li.active a {
      background-color: #00693c;
      color: white; }
    .node-reunion ul.quicktabs-tabs li.last a {
      margin-right: 0; }

.node-reunion .quicktabs_main {
  background-color: #f5f6f7;
  padding: 1.95312em;
  border-top: 5px solid #00693c; }
  .node-reunion .quicktabs_main .quicktabs-tabpage .quicktabs-views-group {
    margin-bottom: 1em;
    overflow: hidden; }
    .node-reunion .quicktabs_main .quicktabs-tabpage .quicktabs-views-group .views-field-field-date-1 {
      display: inline-block;
      padding: 0.26214em 1em;
      margin-bottom: 1em;
      background-color: #00693c;
      color: white;
      font-size: 0.8em;
      font-weight: 700; }
      .node-reunion .quicktabs_main .quicktabs-tabpage .quicktabs-views-group .views-field-field-date-1 .date-display-range: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';
        font-size: 18px;
        content: 'access_time';
        color: white;
        vertical-align: middle;
        line-height: 0.8em;
        margin-right: 0.26214em; }
    .node-reunion .quicktabs_main .quicktabs-tabpage .quicktabs-views-group h2 {
      font-size: 1.25em;
      margin-bottom: 0.26214em; }
    .node-reunion .quicktabs_main .quicktabs-tabpage .quicktabs-views-group .field-name-field-location {
      font-weight: 700; }
    .node-reunion .quicktabs_main .quicktabs-tabpage .quicktabs-views-group:last-child {
      margin-bottom: 0; }

.node-reunion .field-name-field-event-schedule-pdf {
  float: right; }
  .node-reunion .field-name-field-event-schedule-pdf .file-icon,
  .node-reunion .field-name-field-event-schedule-pdf .file-size {
    display: none; }
  .node-reunion .field-name-field-event-schedule-pdf a {
    border: none;
    display: inline-block;
    text-transform: uppercase;
    position: relative;
    font-size: 0.8em;
    font-weight: 700;
    overflow: hidden;
    padding: 0.64em 1.5625em;
    text-decoration: none;
    border-radius: 3px;
    transition: background-color .3s ease-out, border-color .3s ease-out;
    margin-right: 1em;
    -webkit-tap-highlight-color: transparent;
    outline: none;
    background-color: #66b83d;
    color: #292B2D;
    text-align: center;
    margin-right: 0;
    text-decoration: none;
    color: #292B2D; }
    @media (min-width: 38em) {
      .node-reunion .field-name-field-event-schedule-pdf a {
        border-radius: 5px;
        padding: 0.8em 1.5625em; } }
    .node-reunion .field-name-field-event-schedule-pdf a:hover, .node-reunion .field-name-field-event-schedule-pdf a:focus {
      color: white;
      background-color: #00693c; }
    .node-reunion .field-name-field-event-schedule-pdf a::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: 'picture_as_pdf';
      margin-right: 0.26214em;
      color: #292B2D; }
    .node-reunion .field-name-field-event-schedule-pdf a:hover::before {
      color: white; }

.page-taxonomy-term .taxonomy-term-description {
  margin-bottom: 3.05176em; }

.page-taxonomy-term article {
  border-bottom: 3px solid #CED3D6;
  padding-top: 1.95312em;
  padding-bottom: 1.95312em;
  padding-top: 0;
  position: relative;
  overflow: hidden;
  padding-bottom: 1.25em;
  margin-bottom: 1.25em; }
  @media (min-width: 38em) {
    .page-taxonomy-term article {
      padding-bottom: 1.25em;
      margin-bottom: 1.25em; } }
  .page-taxonomy-term article h2 a {
    text-decoration: none;
    color: #00693c; }
    .page-taxonomy-term article h2 a:hover {
      color: #292B2D; }

.page-taxonomy-term .block-system-main > .content > article:last-of-type {
  border-bottom: none;
  margin-bottom: 0; }

/* sections/_council_members.scss */
/* sections/council_members/_view-council-members.scss */
.views-widget .description {
  display: none; }

.view-council-member .view-filters {
  background-color: #ebedef;
  padding: 1em 1.5625em;
  margin: 2.44141em 0 1.5625em 0; }

.view-council-member .view-content {
  overflow: hidden; }

.view-council-member .views-exposed-form .views-exposed-widget {
  float: none;
  display: inline-block;
  vertical-align: middle;
  width: 47.93617%;
  margin-right: 2%;
  margin-bottom: 1em;
  padding: 0; }
  @media (min-width: 48em) {
    .view-council-member .views-exposed-form .views-exposed-widget {
      width: 25.53191%;
      margin-right: 2%;
      margin-bottom: 0; } }
  .view-council-member .views-exposed-form .views-exposed-widget:nth-child(2n+2) {
    margin-right: 0; }
    @media (min-width: 48em) {
      .view-council-member .views-exposed-form .views-exposed-widget:nth-child(2n+2) {
        margin-right: 2%; } }
  .view-council-member .views-exposed-form .views-exposed-widget .form-type-textfield input {
    width: 100%;
    outline: none;
    border-radius: 5px;
    padding: 0.26214em 0.512em;
    border: 1px solid #CED3D6; }

.view-council-member .views-exposed-form .views-widget-filter-combine {
  margin-bottom: 0;
  width: 74.46809%; }
  @media (min-width: 38em) {
    .view-council-member .views-exposed-form .views-widget-filter-combine {
      width: 80.85106%; } }
  @media (min-width: 48em) {
    .view-council-member .views-exposed-form .views-widget-filter-combine {
      width: 25.53191%;
      margin-right: 2%; } }

.view-council-member .views-exposed-form .views-submit-button {
  width: auto;
  margin: 0;
  display: inline-block;
  vertical-align: bottom; }
  @media (min-width: 48em) {
    .view-council-member .views-exposed-form .views-submit-button {
      float: right;
      margin-top: 1.5625em;
      margin-right: 0 !important; } }
  .view-council-member .views-exposed-form .views-submit-button .form-submit {
    border: none;
    display: inline-block;
    text-transform: uppercase;
    position: relative;
    font-size: 0.8em;
    font-weight: 700;
    overflow: hidden;
    padding: 0.64em 1.5625em;
    text-decoration: none;
    border-radius: 3px;
    transition: background-color .3s ease-out, border-color .3s ease-out;
    margin-right: 1em;
    -webkit-tap-highlight-color: transparent;
    outline: none;
    background-color: #66b83d;
    color: #292B2D;
    text-align: center;
    margin: 0; }
    @media (min-width: 38em) {
      .view-council-member .views-exposed-form .views-submit-button .form-submit {
        border-radius: 5px;
        padding: 0.8em 1.5625em; } }
    .view-council-member .views-exposed-form .views-submit-button .form-submit:hover, .view-council-member .views-exposed-form .views-submit-button .form-submit:focus {
      color: white;
      background-color: #00693c; }

.view-council-member ul .views-row {
  background-color: #f5f6f7;
  padding: 1.25em;
  margin-bottom: 1em;
  overflow: hidden; }
  @media (min-width: 48em) {
    .view-council-member ul .views-row {
      width: 48.93617%;
      clear: right;
      float: left;
      margin-left: 0;
      margin-right: 2.12766%; } }
  @media (min-width: 56em) {
    .view-council-member ul .views-row {
      width: 100%;
      clear: right;
      float: right;
      margin-right: 0; } }
  @media (min-width: 62em) {
    .view-council-member ul .views-row {
      width: 48.93617%;
      clear: right;
      float: left;
      margin-left: 0;
      margin-right: 2.12766%; } }
  @media (min-width: 48em) {
    .view-council-member ul .views-row:nth-child(2n+2) {
      width: 48.93617%;
      clear: right;
      float: right;
      margin-right: 0; } }
  @media (min-width: 56em) {
    .view-council-member ul .views-row:nth-child(2n+2) {
      width: 100%;
      clear: right;
      float: right;
      margin-right: 0; } }
  @media (min-width: 62em) {
    .view-council-member ul .views-row:nth-child(2n+2) {
      width: 48.93617%;
      clear: right;
      float: right;
      margin-right: 0; } }
  .view-council-member ul .views-row .field:last-child {
    margin-bottom: 0; }
  .view-council-member ul .views-row .field-name-field-image {
    width: 31.91489%;
    float: left;
    margin-right: 1.5625em;
    margin-bottom: 0; }
    @media (min-width: 38em) {
      .view-council-member ul .views-row .field-name-field-image {
        width: 23.40426%; } }
    .view-council-member ul .views-row .field-name-field-image img {
      width: 100%; }
  .view-council-member ul .views-row .views-field-title,
  .view-council-member ul .views-row .field-name-field-roles,
  .view-council-member ul .views-row .field-name-field-member-year,
  .view-council-member ul .views-row .field-name-field-committee-chair,
  .view-council-member ul .views-row .field-name-field-representing-group,
  .view-council-member ul .views-row .field-name-field-leadership {
    padding-left: 31.91489%;
    margin-left: 1.5625em; }
    @media (min-width: 38em) {
      .view-council-member ul .views-row .views-field-title,
      .view-council-member ul .views-row .field-name-field-roles,
      .view-council-member ul .views-row .field-name-field-member-year,
      .view-council-member ul .views-row .field-name-field-committee-chair,
      .view-council-member ul .views-row .field-name-field-representing-group,
      .view-council-member ul .views-row .field-name-field-leadership {
        padding-left: 23.40426%; } }
  .view-council-member ul .views-row .entity-field-collection-item {
    overflow: hidden; }
  .view-council-member ul .views-row h2 {
    margin-bottom: 0.512em; }
    @media (min-width: 38em) {
      .view-council-member ul .views-row h2 {
        font-size: 1.25em; } }
  .view-council-member ul .views-row .field-name-field-roles p {
    border-top: 2px solid #CED3D6;
    padding-top: 0.512em;
    margin-bottom: 0.512em; }
  .view-council-member ul .views-row .field-name-field-leadership {
    margin-bottom: 0.4096em; }
    .view-council-member ul .views-row .field-name-field-leadership .field-item {
      font-size: 1.25em;
      font-weight: 300; }
    .view-council-member ul .views-row .field-name-field-leadership a {
      text-decoration: none; }
  .view-council-member ul .views-row .field-name-field-member-year {
    font-family: Arial, Helvetica, sans-serif; }

.region-sidebar-second .block-council-members h2 {
  background-color: #66b83d; }

.region-sidebar-second .block-council-members ul .views-row {
  border-bottom: 2px solid #CED3D6;
  padding-bottom: 0.512em;
  margin-bottom: 0.512em; }
  .region-sidebar-second .block-council-members ul .views-row:last-child {
    border-bottom: none;
    padding-bottom: 0;
    margin-bottom: 0; }
  .region-sidebar-second .block-council-members ul .views-row a {
    color: #00693c; }
    .region-sidebar-second .block-council-members ul .views-row a:hover {
      color: #797E80;
      text-decoration: none; }

.node-council-member .field {
  margin-bottom: 1.95312em; }
  @media (min-width: 29em) {
    .node-council-member .field {
      margin-left: 11rem; } }
  .node-council-member .field:nth-child(2) {
    border-top: 1px solid #CED3D6;
    padding-top: 1em; }
    @media (min-width: 29em) {
      .node-council-member .field:nth-child(2) {
        border-top: none;
        padding-top: 0; } }

.node-council-member .field-name-field-image {
  width: 10rem;
  margin: 0 auto 1em auto; }
  @media (min-width: 29em) {
    .node-council-member .field-name-field-image {
      margin: 0;
      position: absolute; } }
  .node-council-member .field-name-field-image img {
    width: 100%; }

.node-council-member .field-name-field-leadership {
  font-size: 1.5625em;
  color: #00693c;
  font-weight: 700;
  margin-bottom: 0.8em; }

.node-council-member .field-name-field-additional-representative- {
  border-bottom: 2px solid #CED3D6;
  margin-bottom: 1em;
  padding-bottom: 1em; }

.node-council-member .field-name-field-member-year {
  margin-bottom: 1em; }
  .node-council-member .field-name-field-member-year .field-item {
    font-size: 1.25em;
    font-weight: 300; }

.node-council-member .field-name-field-representing-group,
.node-council-member .field-name-field-roles {
  background-color: #ebedef;
  padding: 1em; }
  .node-council-member .field-name-field-representing-group .field-label,
  .node-council-member .field-name-field-roles .field-label {
    margin-bottom: 1em; }

.node-council-member .field-name-field-roles {
  padding-bottom: 0.64em; }
  .node-council-member .field-name-field-roles p {
    margin-bottom: 0.512em; }

.node-council-member .field-name-field-email-address {
  border-top: 2px solid #CED3D6;
  padding-top: 0.8em; }
  .node-council-member .field-name-field-email-address a {
    text-decoration: none;
    word-wrap: break-word; }
    .node-council-member .field-name-field-email-address a: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: 'email';
      color: #00693c;
      margin-right: 0.26214em;
      vertical-align: middle; }
    .node-council-member .field-name-field-email-address a:hover {
      text-decoration: underline; }

/* sections/council_members/_view-council-members-in-committee.scss */
.block-system .view-council-member-in-committee {
  margin-bottom: 1.95312em; }
  .block-system .view-council-member-in-committee .view-header h2 {
    margin-bottom: 1.5625em;
    background-color: #66b83d; }
    .block-system .view-council-member-in-committee .view-header h2 span {
      background-color: white; }
  .block-system .view-council-member-in-committee .view-content {
    overflow: hidden; }
  .block-system .view-council-member-in-committee .views-row {
    background-color: #f5f6f7;
    padding: 1.25em;
    margin-bottom: 1em;
    overflow: hidden; }
    @media (min-width: 48em) {
      .block-system .view-council-member-in-committee .views-row {
        width: 48.93617%;
        clear: right;
        float: left;
        margin-left: 0;
        margin-right: 2.12766%; } }
    @media (min-width: 56em) {
      .block-system .view-council-member-in-committee .views-row {
        width: 100%;
        clear: right;
        float: right;
        margin-right: 0; } }
    @media (min-width: 62em) {
      .block-system .view-council-member-in-committee .views-row {
        width: 48.93617%;
        clear: right;
        float: left;
        margin-left: 0;
        margin-right: 2.12766%; } }
    @media (min-width: 48em) {
      .block-system .view-council-member-in-committee .views-row:nth-child(2n+2) {
        width: 48.93617%;
        clear: right;
        float: right;
        margin-right: 0; } }
    @media (min-width: 56em) {
      .block-system .view-council-member-in-committee .views-row:nth-child(2n+2) {
        width: 100%;
        clear: right;
        float: right;
        margin-right: 0; } }
    @media (min-width: 62em) {
      .block-system .view-council-member-in-committee .views-row:nth-child(2n+2) {
        width: 48.93617%;
        clear: right;
        float: right;
        margin-right: 0; } }
    .block-system .view-council-member-in-committee .views-row .field:last-child {
      margin-bottom: 0; }
    .block-system .view-council-member-in-committee .views-row .field-name-field-image {
      width: 31.91489%;
      float: left;
      margin-right: 1.5625em;
      margin-bottom: 0; }
      @media (min-width: 38em) {
        .block-system .view-council-member-in-committee .views-row .field-name-field-image {
          width: 23.40426%; } }
      .block-system .view-council-member-in-committee .views-row .field-name-field-image img {
        width: 100%; }
    .block-system .view-council-member-in-committee .views-row .views-field-title,
    .block-system .view-council-member-in-committee .views-row .field-name-field-roles,
    .block-system .view-council-member-in-committee .views-row .field-name-field-member-year,
    .block-system .view-council-member-in-committee .views-row .field-name-field-committee-chair,
    .block-system .view-council-member-in-committee .views-row .field-name-field-representing-group,
    .block-system .view-council-member-in-committee .views-row .field-name-field-leadership {
      padding-left: 31.91489%;
      margin-left: 1.5625em; }
      @media (min-width: 38em) {
        .block-system .view-council-member-in-committee .views-row .views-field-title,
        .block-system .view-council-member-in-committee .views-row .field-name-field-roles,
        .block-system .view-council-member-in-committee .views-row .field-name-field-member-year,
        .block-system .view-council-member-in-committee .views-row .field-name-field-committee-chair,
        .block-system .view-council-member-in-committee .views-row .field-name-field-representing-group,
        .block-system .view-council-member-in-committee .views-row .field-name-field-leadership {
          padding-left: 23.40426%; } }
    .block-system .view-council-member-in-committee .views-row .entity-field-collection-item {
      overflow: hidden; }
    .block-system .view-council-member-in-committee .views-row h2 {
      margin-bottom: 0.512em; }
      @media (min-width: 38em) {
        .block-system .view-council-member-in-committee .views-row h2 {
          font-size: 1.25em; } }
    .block-system .view-council-member-in-committee .views-row .field-name-field-roles p {
      border-top: 2px solid #CED3D6;
      padding-top: 0.512em;
      margin-bottom: 0.512em; }
    .block-system .view-council-member-in-committee .views-row .field-name-field-leadership {
      margin-bottom: 0.4096em; }
      .block-system .view-council-member-in-committee .views-row .field-name-field-leadership .field-item {
        font-size: 1.25em;
        font-weight: 300; }
      .block-system .view-council-member-in-committee .views-row .field-name-field-leadership a {
        text-decoration: none; }
    .block-system .view-council-member-in-committee .views-row .field-name-field-member-year {
      font-family: Arial, Helvetica, sans-serif; }

/* sections/_meeting_minutes.scss */
/* sections/meeting_minutes/_view-meeting-minutes.scss */
.view-meeting-minutes h1 {
  margin-bottom: 1em; }

.view-meeting-minutes h2 {
  margin-bottom: 0;
  font-size: 1.25em; }

/* sections/meeting_minutes/_block-meeting-minutes.scss */
.block-meeting-minutes h2 {
  background-color: #66b83d;
  margin-bottom: 1.5625em; }
  .block-meeting-minutes h2 span {
    background-color: white; }

.block-meeting-minutes h3 {
  margin-bottom: 0; }
  @media (min-width: 38em) {
    .block-meeting-minutes h3 {
      font-size: 1.5625em; } }
  .block-meeting-minutes h3 a {
    text-decoration: none; }
    .block-meeting-minutes h3 a:hover {
      color: #292B2D; }

.block-meeting-minutes .more-link {
  border-top: 2px solid #66b83d;
  padding-top: 1em;
  margin-top: 1em; }

.node-meeting-minutes .group-meeting-details {
  background-color: #ebedef;
  padding: 1.25em 1.5625em;
  margin-bottom: 1em; }
  .node-meeting-minutes .group-meeting-details .field:last-child {
    margin-bottom: 0; }

.node-meeting-minutes .field-name-field-meeting-date {
  font-size: 1.25em;
  font-weight: 300; }

/* sections/_lifelong_learning.scss */
.view-lifelong-learning.view-display-id-block,
.view-lifelong-learning.view-display-id-block_1,
.view-lifelong-learning.view-display-id-block_4 {
  margin-top: 2.44141em; }
  .view-lifelong-learning.view-display-id-block .views-row .field-name-field-image,
  .view-lifelong-learning.view-display-id-block_1 .views-row .field-name-field-image,
  .view-lifelong-learning.view-display-id-block_4 .views-row .field-name-field-image {
    padding: 0 1em; }
    @media (min-width: 29em) {
      .view-lifelong-learning.view-display-id-block .views-row .field-name-field-image,
      .view-lifelong-learning.view-display-id-block_1 .views-row .field-name-field-image,
      .view-lifelong-learning.view-display-id-block_4 .views-row .field-name-field-image {
        width: 23.40426%;
        padding: 0; } }
  .view-lifelong-learning.view-display-id-block .views-row .views-field-title,
  .view-lifelong-learning.view-display-id-block .views-row .field-name-field-speaker,
  .view-lifelong-learning.view-display-id-block .views-row .field-name-field-lifelong-learning-topic,
  .view-lifelong-learning.view-display-id-block_1 .views-row .views-field-title,
  .view-lifelong-learning.view-display-id-block_1 .views-row .field-name-field-speaker,
  .view-lifelong-learning.view-display-id-block_1 .views-row .field-name-field-lifelong-learning-topic,
  .view-lifelong-learning.view-display-id-block_4 .views-row .views-field-title,
  .view-lifelong-learning.view-display-id-block_4 .views-row .field-name-field-speaker,
  .view-lifelong-learning.view-display-id-block_4 .views-row .field-name-field-lifelong-learning-topic {
    padding-left: 0; }
    @media (min-width: 29em) {
      .view-lifelong-learning.view-display-id-block .views-row .views-field-title,
      .view-lifelong-learning.view-display-id-block .views-row .field-name-field-speaker,
      .view-lifelong-learning.view-display-id-block .views-row .field-name-field-lifelong-learning-topic,
      .view-lifelong-learning.view-display-id-block_1 .views-row .views-field-title,
      .view-lifelong-learning.view-display-id-block_1 .views-row .field-name-field-speaker,
      .view-lifelong-learning.view-display-id-block_1 .views-row .field-name-field-lifelong-learning-topic,
      .view-lifelong-learning.view-display-id-block_4 .views-row .views-field-title,
      .view-lifelong-learning.view-display-id-block_4 .views-row .field-name-field-speaker,
      .view-lifelong-learning.view-display-id-block_4 .views-row .field-name-field-lifelong-learning-topic {
        margin-left: 28%; } }
  .view-lifelong-learning.view-display-id-block .views-row .field-name-field-speaker,
  .view-lifelong-learning.view-display-id-block_1 .views-row .field-name-field-speaker,
  .view-lifelong-learning.view-display-id-block_4 .views-row .field-name-field-speaker {
    font-size: 1.25em;
    font-weight: 300;
    line-height: 1.25em; }
  .view-lifelong-learning.view-display-id-block .views-row .field-name-field-lifelong-learning-topic,
  .view-lifelong-learning.view-display-id-block_1 .views-row .field-name-field-lifelong-learning-topic,
  .view-lifelong-learning.view-display-id-block_4 .views-row .field-name-field-lifelong-learning-topic {
    margin-bottom: 0; }
  .view-lifelong-learning.view-display-id-block .view-filters,
  .view-lifelong-learning.view-display-id-block_1 .view-filters,
  .view-lifelong-learning.view-display-id-block_4 .view-filters {
    background-color: #ebedef;
    padding: 1em 1.5625em;
    margin: 1.5625em 0; }
    .view-lifelong-learning.view-display-id-block .view-filters .views-exposed-form label,
    .view-lifelong-learning.view-display-id-block_1 .view-filters .views-exposed-form label,
    .view-lifelong-learning.view-display-id-block_4 .view-filters .views-exposed-form label {
      text-transform: uppercase; }
    .view-lifelong-learning.view-display-id-block .view-filters .views-exposed-form .views-widget-filter-field_genre_tid,
    .view-lifelong-learning.view-display-id-block_1 .view-filters .views-exposed-form .views-widget-filter-field_genre_tid,
    .view-lifelong-learning.view-display-id-block_4 .view-filters .views-exposed-form .views-widget-filter-field_genre_tid {
      width: 100%;
      padding-top: 0;
      padding-right: 0;
      margin-bottom: 1em; }
      @media (min-width: 38em) {
        .view-lifelong-learning.view-display-id-block .view-filters .views-exposed-form .views-widget-filter-field_genre_tid,
        .view-lifelong-learning.view-display-id-block_1 .view-filters .views-exposed-form .views-widget-filter-field_genre_tid,
        .view-lifelong-learning.view-display-id-block_4 .view-filters .views-exposed-form .views-widget-filter-field_genre_tid {
          width: 42.12766%;
          display: inline-block;
          vertical-align: bottom;
          margin-bottom: 0;
          margin-right: 0;
          padding-right: 2.12766%; } }
    .view-lifelong-learning.view-display-id-block .view-filters .views-exposed-form .views-widget-filter-field_speaker_value,
    .view-lifelong-learning.view-display-id-block_1 .view-filters .views-exposed-form .views-widget-filter-field_speaker_value,
    .view-lifelong-learning.view-display-id-block_4 .view-filters .views-exposed-form .views-widget-filter-field_speaker_value {
      width: 100%;
      padding-top: 0;
      padding-right: 0; }
      @media (min-width: 38em) {
        .view-lifelong-learning.view-display-id-block .view-filters .views-exposed-form .views-widget-filter-field_speaker_value,
        .view-lifelong-learning.view-display-id-block_1 .view-filters .views-exposed-form .views-widget-filter-field_speaker_value,
        .view-lifelong-learning.view-display-id-block_4 .view-filters .views-exposed-form .views-widget-filter-field_speaker_value {
          width: 40.42553%;
          padding-right: 2.12766%;
          display: inline-block;
          vertical-align: bottom; } }
      .view-lifelong-learning.view-display-id-block .view-filters .views-exposed-form .views-widget-filter-field_speaker_value .form-text,
      .view-lifelong-learning.view-display-id-block_1 .view-filters .views-exposed-form .views-widget-filter-field_speaker_value .form-text,
      .view-lifelong-learning.view-display-id-block_4 .view-filters .views-exposed-form .views-widget-filter-field_speaker_value .form-text {
        width: 100%;
        outline: none; }
    .view-lifelong-learning.view-display-id-block .view-filters .views-exposed-form .views-submit-button,
    .view-lifelong-learning.view-display-id-block_1 .view-filters .views-exposed-form .views-submit-button,
    .view-lifelong-learning.view-display-id-block_4 .view-filters .views-exposed-form .views-submit-button {
      padding: 0; }
      @media (min-width: 38em) {
        .view-lifelong-learning.view-display-id-block .view-filters .views-exposed-form .views-submit-button,
        .view-lifelong-learning.view-display-id-block_1 .view-filters .views-exposed-form .views-submit-button,
        .view-lifelong-learning.view-display-id-block_4 .view-filters .views-exposed-form .views-submit-button {
          float: right; } }
      .view-lifelong-learning.view-display-id-block .view-filters .views-exposed-form .views-submit-button .form-submit,
      .view-lifelong-learning.view-display-id-block_1 .view-filters .views-exposed-form .views-submit-button .form-submit,
      .view-lifelong-learning.view-display-id-block_4 .view-filters .views-exposed-form .views-submit-button .form-submit {
        border: none;
        display: inline-block;
        text-transform: uppercase;
        position: relative;
        font-size: 0.8em;
        font-weight: 700;
        overflow: hidden;
        padding: 0.64em 1.5625em;
        text-decoration: none;
        border-radius: 3px;
        transition: background-color .3s ease-out, border-color .3s ease-out;
        margin-right: 1em;
        -webkit-tap-highlight-color: transparent;
        outline: none;
        background-color: #66b83d;
        color: #292B2D;
        text-align: center;
        margin-right: 0; }
        @media (min-width: 38em) {
          .view-lifelong-learning.view-display-id-block .view-filters .views-exposed-form .views-submit-button .form-submit,
          .view-lifelong-learning.view-display-id-block_1 .view-filters .views-exposed-form .views-submit-button .form-submit,
          .view-lifelong-learning.view-display-id-block_4 .view-filters .views-exposed-form .views-submit-button .form-submit {
            border-radius: 5px;
            padding: 0.8em 1.5625em; } }
        .view-lifelong-learning.view-display-id-block .view-filters .views-exposed-form .views-submit-button .form-submit:hover, .view-lifelong-learning.view-display-id-block .view-filters .views-exposed-form .views-submit-button .form-submit:focus,
        .view-lifelong-learning.view-display-id-block_1 .view-filters .views-exposed-form .views-submit-button .form-submit:hover,
        .view-lifelong-learning.view-display-id-block_1 .view-filters .views-exposed-form .views-submit-button .form-submit:focus,
        .view-lifelong-learning.view-display-id-block_4 .view-filters .views-exposed-form .views-submit-button .form-submit:hover,
        .view-lifelong-learning.view-display-id-block_4 .view-filters .views-exposed-form .views-submit-button .form-submit:focus {
          color: white;
          background-color: #00693c; }

.view-lifelong-learning.view-display-id-block_3 .field-name-field-speaker {
  font-size: 1.25em;
  font-weight: 300;
  line-height: 1.25em;
  margin-bottom: 0; }

.region-sidebar-second .block-lifelong-learning h2 {
  background-color: #66b83d; }

.region-sidebar-second .block-lifelong-learning ul .views-row {
  border-bottom: 2px solid #CED3D6; }
  .region-sidebar-second .block-lifelong-learning ul .views-row:last-child {
    border-bottom: none;
    padding-bottom: 0;
    margin-bottom: 0; }
  .region-sidebar-second .block-lifelong-learning ul .views-row a {
    display: block;
    color: #00693c;
    padding: 0.512em; }
    .region-sidebar-second .block-lifelong-learning ul .views-row a:hover {
      color: #797E80;
      text-decoration: none; }
    .region-sidebar-second .block-lifelong-learning ul .views-row a.active {
      background-color: #dde0e2;
      color: #292B2D; }

.region-main-suffix .block-views-lifelong-learning-block-2 {
  border-top: 5px solid #CED3D6;
  padding-top: 1.5625em;
  overflow: hidden; }
  .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row {
    background-color: #ebedef;
    padding: 1.25em;
    margin-bottom: 1em; }
    @media (min-width: 48em) {
      .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row {
        width: 31.91489%;
        clear: right;
        float: left;
        margin-left: 0;
        margin-right: 2.12766%;
        margin-bottom: 0;
        padding: 1.5625em; } }
    @media (min-width: 48em) {
      .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row:last-child {
        width: 31.91489%;
        clear: right;
        float: right;
        margin-right: 0; } }
    .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row .headings span, .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row .block-fieldblock-node-basic-page-default-field-photo-gallery h2 span, .block-fieldblock-node-basic-page-default-field-photo-gallery .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row h2 span, .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row
    .block-fieldblock-node-events-default-field-photo-gallery h2 span,
    .block-fieldblock-node-events-default-field-photo-gallery .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row h2 span, .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row
    .block-fieldblock-node-news-default-field-photo-gallery h2 span,
    .block-fieldblock-node-news-default-field-photo-gallery .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row h2 span, .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row
    .field-name-field-photo-gallery h2 span,
    .field-name-field-photo-gallery .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row h2 span, .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row .region-events-primary .block h2 span, .region-events-primary .block .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row h2 span, .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row
    .region-events-secondary .block h2 span,
    .region-events-secondary .block .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row h2 span, .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row .block-views-events-block-8 h2 span, .block-views-events-block-8 .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row h2 span, .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row .block-views-events-block-6 h2 span, .block-views-events-block-6 .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row h2 span, .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row .block-views-news-block-6 h2 span, .block-views-news-block-6 .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row h2 span, .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row
    .block-views-news-block-8 h2 span,
    .block-views-news-block-8 .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row h2 span, .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row .block-meeting-minutes h2 span, .block-meeting-minutes .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row h2 span, .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row .block-views-lifelong-learning-block-5 h2 span, .block-views-lifelong-learning-block-5 .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row h2 span, .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row .node-type-travel-data .field-name-field-event-price .field-label span, .node-type-travel-data .field-name-field-event-price .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row .field-label span, .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row .node-type-travel-data .field-name-field-event-itinerary .field-label span, .node-type-travel-data .field-name-field-event-itinerary .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row .field-label span, .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row .node-type-travel-data .group-faculty-info h2 span, .node-type-travel-data .group-faculty-info .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row h2 span {
      padding: 0 0.64em;
      margin-right: -4px;
      margin-left: 0.8em; }
    .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row a {
      color: #292B2D; }
      .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row a:hover {
        color: #797E80;
        text-decoration: none; }
    .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row .views-field-title {
      margin-left: 0; }
    .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row .field-name-field-speaker {
      padding: 0;
      margin-bottom: 0;
      background-color: transparent;
      margin-left: 0;
      font-size: 1em; }
  .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row-even .headings, .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row-even .block-fieldblock-node-basic-page-default-field-photo-gallery h2, .block-fieldblock-node-basic-page-default-field-photo-gallery .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row-even h2, .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row-even
  .block-fieldblock-node-events-default-field-photo-gallery h2,
  .block-fieldblock-node-events-default-field-photo-gallery .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row-even h2, .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row-even
  .block-fieldblock-node-news-default-field-photo-gallery h2,
  .block-fieldblock-node-news-default-field-photo-gallery .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row-even h2, .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row-even
  .field-name-field-photo-gallery h2,
  .field-name-field-photo-gallery .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row-even h2, .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row-even .region-events-primary .block h2, .region-events-primary .block .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row-even h2, .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row-even
  .region-events-secondary .block h2,
  .region-events-secondary .block .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row-even h2, .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row-even .block-views-events-block-8 h2, .block-views-events-block-8 .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row-even h2, .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row-even .block-views-events-block-6 h2, .block-views-events-block-6 .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row-even h2, .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row-even .block-views-news-block-6 h2, .block-views-news-block-6 .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row-even h2, .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row-even
  .block-views-news-block-8 h2,
  .block-views-news-block-8 .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row-even h2, .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row-even .block-meeting-minutes h2, .block-meeting-minutes .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row-even h2, .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row-even .block-views-lifelong-learning-block-5 h2, .block-views-lifelong-learning-block-5 .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row-even h2, .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row-even .node-type-travel-data .field-name-field-event-price .field-label, .node-type-travel-data .field-name-field-event-price .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row-even .field-label, .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row-even .node-type-travel-data .field-name-field-event-itinerary .field-label, .node-type-travel-data .field-name-field-event-itinerary .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row-even .field-label, .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row-even .node-type-travel-data .group-faculty-info h2, .node-type-travel-data .group-faculty-info .region-main-suffix .block-views-lifelong-learning-block-2 ul .views-row-even h2 {
    background-color: #66b83d; }

.block-views-lifelong-learning-block-5 h2 {
  background-color: #66b83d;
  margin-bottom: 1.25em; }
  .block-views-lifelong-learning-block-5 h2 span {
    background-color: white; }

@media (min-width: 38em) {
  .block-views-lifelong-learning-block-5 h3 {
    font-size: 1.5625em; } }

.block-views-lifelong-learning-block-5 h3 a {
  text-decoration: none; }
  .block-views-lifelong-learning-block-5 h3 a:hover {
    color: #292B2D; }

.block-views-lifelong-learning-block-5 .field:last-child {
  margin-bottom: 0; }

.block-views-lifelong-learning-block-5 .more-link {
  border-top: 2px solid #66b83d;
  padding-top: 1em; }

.node-type-lifelong-learning .speaker-info {
  border-bottom: 3px solid #CED3D6;
  margin-bottom: 1.25em; }

.node-type-lifelong-learning .field-name-field-image {
  padding: 0 1em;
  width: 200px;
  margin: 0 auto 1em auto; }
  @media (min-width: 29em) {
    .node-type-lifelong-learning .field-name-field-image {
      width: 23.40426%;
      padding: 0;
      display: inline-block;
      margin-right: 2.12766%;
      vertical-align: top; } }

.node-type-lifelong-learning .speaker-content {
  border-top: 1px solid #CED3D6;
  padding-top: 1em; }
  @media (min-width: 29em) {
    .node-type-lifelong-learning .speaker-content {
      border-top: none;
      padding-top: 0;
      border-bottom: none;
      display: inline-block;
      width: 72%; } }

.node-type-lifelong-learning .field-name-field-speaker {
  padding-bottom: 0;
  font-size: 1.25em;
  font-weight: 300; }
  .node-type-lifelong-learning .field-name-field-speaker a {
    text-decoration: none; }
    .node-type-lifelong-learning .field-name-field-speaker a:hover {
      color: #005438; }

.node-type-lifelong-learning .field-name-field-lifelong-learning-topic {
  margin-bottom: 1em; }

.node-type-lifelong-learning .field-name-field-description {
  padding-bottom: 0; }

.node-type-lifelong-learning .field-name-field-lecture-video {
  clear: both;
  margin-top: 1.5625em;
  padding: 1.5625em;
  background-color: #ebedef; }

/* sections/_hill_winds-society.scss */
.view-hill-winds-society-members .view-filters {
  background-color: #ebedef;
  padding: 1em 1.5625em;
  margin: 1.5625em 0; }
  .view-hill-winds-society-members .view-filters .views-exposed-form .views-widget-filter-field_graduating_year_value {
    width: 74.46809%;
    display: inline-block;
    padding-top: 0; }
    @media (min-width: 38em) {
      .view-hill-winds-society-members .view-filters .views-exposed-form .views-widget-filter-field_graduating_year_value {
        width: 82.97872%; } }
    .view-hill-winds-society-members .view-filters .views-exposed-form .views-widget-filter-field_graduating_year_value label {
      text-transform: uppercase; }
    .view-hill-winds-society-members .view-filters .views-exposed-form .views-widget-filter-field_graduating_year_value .form-type-date-select {
      width: 100%; }
      .view-hill-winds-society-members .view-filters .views-exposed-form .views-widget-filter-field_graduating_year_value .form-type-date-select .date-padding {
        width: 100%; }
      .view-hill-winds-society-members .view-filters .views-exposed-form .views-widget-filter-field_graduating_year_value .form-type-date-select .form-type-select {
        width: 100%; }
  .view-hill-winds-society-members .view-filters .views-exposed-form .views-submit-button {
    padding: 0;
    float: right; }
    .view-hill-winds-society-members .view-filters .views-exposed-form .views-submit-button .form-submit {
      border: none;
      display: inline-block;
      text-transform: uppercase;
      position: relative;
      font-size: 0.8em;
      font-weight: 700;
      overflow: hidden;
      padding: 0.64em 1.5625em;
      text-decoration: none;
      border-radius: 3px;
      transition: background-color .3s ease-out, border-color .3s ease-out;
      margin-right: 1em;
      -webkit-tap-highlight-color: transparent;
      outline: none;
      background-color: #66b83d;
      color: #292B2D;
      text-align: center;
      margin-right: 0; }
      @media (min-width: 38em) {
        .view-hill-winds-society-members .view-filters .views-exposed-form .views-submit-button .form-submit {
          border-radius: 5px;
          padding: 0.8em 1.5625em; } }
      .view-hill-winds-society-members .view-filters .views-exposed-form .views-submit-button .form-submit:hover, .view-hill-winds-society-members .view-filters .views-exposed-form .views-submit-button .form-submit:focus {
        color: white;
        background-color: #00693c; }

.view-hill-winds-society-members .view-content .views-row {
  background-color: #f5f6f7;
  padding: 1.25em;
  margin-bottom: 1.25em;
  overflow: hidden; }
  .view-hill-winds-society-members .view-content .views-row .field-name-field-image {
    width: 31.91489%;
    float: left;
    margin-bottom: 0;
    margin-right: 1.5625em; }
    @media (min-width: 38em) {
      .view-hill-winds-society-members .view-content .views-row .field-name-field-image {
        width: 23.40426%; } }
    .view-hill-winds-society-members .view-content .views-row .field-name-field-image img {
      width: 100%; }
  .view-hill-winds-society-members .view-content .views-row .views-field-title,
  .view-hill-winds-society-members .view-content .views-row .field-name-field-major,
  .view-hill-winds-society-members .view-content .views-row .field-name-field-dartmouth-activities {
    padding-left: 31.91489%;
    margin-left: 1.5625em; }
    @media (min-width: 38em) {
      .view-hill-winds-society-members .view-content .views-row .views-field-title,
      .view-hill-winds-society-members .view-content .views-row .field-name-field-major,
      .view-hill-winds-society-members .view-content .views-row .field-name-field-dartmouth-activities {
        padding-left: 23.40426%; } }
  .view-hill-winds-society-members .view-content .views-row .views-field-location {
    padding-left: 31.91489%;
    font-size: 1em;
    font-weight: 300;
    margin-bottom: 1em;
    margin-left: 1.25em; }
    @media (min-width: 38em) {
      .view-hill-winds-society-members .view-content .views-row .views-field-location {
        font-size: 1.25em;
        padding-left: 23.40426%; } }
  .view-hill-winds-society-members .view-content .views-row .field-name-field-major {
    margin-bottom: 0.8em; }
    .view-hill-winds-society-members .view-content .views-row .field-name-field-major .field-items {
      border-bottom: 1px solid #CED3D6;
      padding-bottom: 0.8em; }

.node-hill-winds-society-member .field-name-field-image {
  margin-left: 0 !important;
  padding-right: 1em;
  width: 31.91489%;
  clear: right;
  float: left;
  margin-left: 0;
  margin-right: 2.12766%; }
  @media (min-width: 38em) {
    .node-hill-winds-society-member .field-name-field-image {
      width: 23.40426%;
      clear: right;
      float: left;
      margin-left: 0;
      margin-right: 2.12766%; } }
  .node-hill-winds-society-member .field-name-field-image img {
    width: 100%; }

.node-hill-winds-society-member .field {
  margin-left: 34.04255%; }
  @media (min-width: 38em) {
    .node-hill-winds-society-member .field {
      margin-left: 25.53192%; } }

.node-hill-winds-society-member .field-name-field-graduating-year {
  margin-bottom: 0.26214em; }
  .node-hill-winds-society-member .field-name-field-graduating-year .field-item {
    font-size: 1.25em;
    font-weight: 300; }

.node-hill-winds-society-member .field-name-field-city {
  display: inline-block;
  margin-right: 0.26214em;
  margin-left: 0; }

.node-hill-winds-society-member .field-name-field-state,
.node-hill-winds-society-member .field-name-field-country {
  display: inline-block;
  margin-left: 0;
  margin-right: 0.26214em; }

.node-hill-winds-society-member .field-name-field-dartmouth-activities,
.node-hill-winds-society-member .field-name-field-major {
  background-color: #f5f6f7;
  padding: 1em; }
  .node-hill-winds-society-member .field-name-field-dartmouth-activities .field-label,
  .node-hill-winds-society-member .field-name-field-major .field-label {
    margin-bottom: 1em; }

/* sections/_travel.scss */
/* section/travel/_view-travel-list.scss */
.view-travel-list .view-filters {
  background-color: #ebedef;
  padding: 1em 1.5625em;
  margin: 2.44141em 0 1.5625em 0; }

.view-travel-list .views-exposed-form .views-exposed-widget {
  float: none;
  display: inline-block;
  vertical-align: middle;
  width: 47.93617%;
  margin-right: 2%;
  margin-bottom: 1em;
  padding: 0; }
  @media (min-width: 48em) {
    .view-travel-list .views-exposed-form .views-exposed-widget {
      width: 25%;
      margin-bottom: 0; } }
  .view-travel-list .views-exposed-form .views-exposed-widget:nth-child(2n+2) {
    margin-right: 0; }
    @media (min-width: 48em) {
      .view-travel-list .views-exposed-form .views-exposed-widget:nth-child(2n+2) {
        margin-right: 2%; } }
  .view-travel-list .views-exposed-form .views-exposed-widget.views-widget-filter-field_type_of_activity_tid {
    margin-bottom: 0; }

.view-travel-list .views-exposed-form .views-submit-button {
  width: auto;
  margin: 0;
  display: inline-block;
  vertical-align: bottom; }
  @media (min-width: 48em) {
    .view-travel-list .views-exposed-form .views-submit-button {
      float: right;
      margin-top: 1.5625em;
      margin-right: 0 !important; } }
  .view-travel-list .views-exposed-form .views-submit-button .form-submit {
    border: none;
    display: inline-block;
    text-transform: uppercase;
    position: relative;
    font-size: 0.8em;
    font-weight: 700;
    overflow: hidden;
    padding: 0.64em 1.5625em;
    text-decoration: none;
    border-radius: 3px;
    transition: background-color .3s ease-out, border-color .3s ease-out;
    margin-right: 1em;
    -webkit-tap-highlight-color: transparent;
    outline: none;
    background-color: #66b83d;
    color: #292B2D;
    text-align: center;
    margin: 0; }
    @media (min-width: 38em) {
      .view-travel-list .views-exposed-form .views-submit-button .form-submit {
        border-radius: 5px;
        padding: 0.8em 1.5625em; } }
    .view-travel-list .views-exposed-form .views-submit-button .form-submit:hover, .view-travel-list .views-exposed-form .views-submit-button .form-submit:focus {
      color: white;
      background-color: #00693c; }

/* section/travel/_node-type-travel-data.scss */
.node-type-travel-data .field-label {
  margin-bottom: 0.512em; }

.node-type-travel-data .field {
  margin-bottom: 1.95312em; }

.node-type-travel-data .field-name-field-promo-message {
  margin-bottom: 1.25em;
  position: relative;
  padding: 1em;
  background-color: #f7fbf5;
  border-radius: 1px;
  border: 2px solid #85c664;
  line-height: 1.5625em;
  font-weight: 700;
  padding: 1.25em !important;
  margin-bottom: 1.95312em; }
  @media (min-width: 38em) {
    .node-type-travel-data .field-name-field-promo-message {
      padding: 1.25em 1.95312em; } }
  .node-type-travel-data .field-name-field-promo-message p:last-child, .node-type-travel-data .field-name-field-promo-message li:last-child {
    margin-bottom: 0; }

.node-type-travel-data .field-name-body {
  overflow: hidden;
  border-bottom: 1px solid #CED3D6;
  padding-bottom: 1em; }

.node-type-travel-data .field-name-field-event-price {
  background-color: #ebedef;
  padding: 1.5625em; }
  .node-type-travel-data .field-name-field-event-price .field-label {
    margin-bottom: 1.25em; }
  .node-type-travel-data .field-name-field-event-price p:last-child {
    margin-bottom: 0; }

.node-type-travel-data .field-name-field-event-itinerary {
  border-bottom: 3px solid #CED3D6;
  padding-bottom: 1.95312em; }
  .node-type-travel-data .field-name-field-event-itinerary .field-label {
    margin-bottom: 1.25em;
    background-color: #66b83d; }
    .node-type-travel-data .field-name-field-event-itinerary .field-label span {
      background-color: white; }
  .node-type-travel-data .field-name-field-event-itinerary p:last-child {
    margin-bottom: 0; }

.node-type-travel-data .group-enrollment {
  border-bottom: 1px solid #CED3D6;
  padding-bottom: 1.95312em;
  margin-bottom: 1.95312em;
  overflow: hidden; }
  .node-type-travel-data .group-enrollment .field {
    margin-bottom: 0;
    width: 48.93617%;
    clear: right;
    float: left;
    margin-left: 0;
    margin-right: 2.12766%; }
    .node-type-travel-data .group-enrollment .field:last-child {
      width: 48.93617%;
      clear: right;
      float: right;
      margin-right: 0;
      float: left; }

.node-type-travel-data .group-atmosphere {
  border-bottom: 1px solid #CED3D6;
  padding-bottom: 1.95312em;
  margin-bottom: 1.95312em;
  overflow: hidden; }
  .node-type-travel-data .group-atmosphere .field {
    margin-bottom: 0;
    width: 31.91489%;
    clear: right;
    float: left;
    margin-left: 0;
    margin-right: 2.12766%; }
    .node-type-travel-data .group-atmosphere .field:last-child {
      width: 31.91489%;
      clear: right;
      float: right;
      margin-right: 0;
      float: left; }

.node-type-travel-data .field-name-field-type-of-activity .field-item {
  display: inline-block;
  margin-right: 0.26214em; }

.node-type-travel-data .field-name-field-activity-level {
  border-bottom: 1px solid #CED3D6;
  padding-bottom: 1.95312em; }
  .node-type-travel-data .field-name-field-activity-level p {
    margin-bottom: 0; }

.node-type-travel-data .group-faculty-info {
  padding-bottom: 1.95312em;
  margin-bottom: 1.95312em;
  border-bottom: 3px solid #CED3D6; }
  .node-type-travel-data .group-faculty-info h2 {
    background-color: #66b83d;
    margin-bottom: 1.25em; }
    .node-type-travel-data .group-faculty-info h2 span {
      background-color: white;
      margin-left: 0.8em;
      padding-left: 0.512em; }
  .node-type-travel-data .group-faculty-info .field:last-child {
    border-bottom: none;
    padding-bottom: 0;
    margin-bottom: 0; }
  .node-type-travel-data .group-faculty-info .field-name-field-faculty-image {
    margin: 0 auto 1em auto;
    width: 200px; }
    @media (min-width: 29em) {
      .node-type-travel-data .group-faculty-info .field-name-field-faculty-image {
        width: 23.40426%;
        margin-right: 2.12766%;
        float: left;
        margin-bottom: 0; } }
  .node-type-travel-data .group-faculty-info .field-name-field-faculty-name {
    font-size: 1.25em;
    font-weight: 700;
    border-top: 1px solid #CED3D6;
    padding-top: 1em;
    margin-bottom: 1em;
    line-height: 1em; }
    @media (min-width: 29em) {
      .node-type-travel-data .group-faculty-info .field-name-field-faculty-name {
        border-top: none;
        padding-top: 0; } }
  .node-type-travel-data .group-faculty-info .field-name-field-faculty-bio,
  .node-type-travel-data .group-faculty-info .field-name-field-faculty-lectures,
  .node-type-travel-data .group-faculty-info .field-name-field-faculty-readings {
    line-height: 1.5625em;
    border-bottom: 1px solid #CED3D6;
    padding-bottom: 1em;
    margin-bottom: 1em; }

.node-type-travel-data .field-name-field-shared-program,
.node-type-travel-data .field-name-field-operator-name {
  border-bottom: 1px solid #CED3D6;
  padding-bottom: 1.95312em; }

.block-views-travel-list-block-1 .header-image {
  color: transparent;
  position: relative;
  line-height: 0;
  background-repeat: no-repeat;
  margin-bottom: 0;
  background-position: top center;
  height: 200px;
  background-size: cover; }
  @media (min-width: 38em) {
    .block-views-travel-list-block-1 .header-image {
      height: 300px; } }
  @media (min-width: 48em) {
    .block-views-travel-list-block-1 .header-image {
      height: 0;
      padding-bottom: 25%;
      width: 66.66667%;
      clear: right;
      float: left;
      margin-left: 0;
      margin-right: 0%; } }
  .block-views-travel-list-block-1 .header-image .arrow-left {
    position: absolute;
    bottom: 0;
    right: 46%;
    width: 0;
    height: 0;
    border-right: 15px solid transparent;
    border-left: 15px solid transparent;
    border-bottom: 15px solid #ebedef; }
    @media (min-width: 48em) {
      .block-views-travel-list-block-1 .header-image .arrow-left {
        right: 0;
        top: 45%;
        border-top: 15px solid transparent;
        border-bottom: 15px solid transparent;
        border-right: 15px solid #ebedef; } }

.block-views-travel-list-block-1 .info {
  display: block;
  background-color: #ebedef;
  padding: 1.5625em 6.38298%; }
  @media (min-width: 48em) {
    .block-views-travel-list-block-1 .info {
      width: 33.33333%;
      clear: right;
      float: right;
      margin-right: 0;
      padding: 1.25em 1.25em; } }
  @media (min-width: 56em) {
    .block-views-travel-list-block-1 .info {
      padding: 1.5625em 1.5625em; } }
  @media (min-width: 62em) {
    .block-views-travel-list-block-1 .info {
      padding: 1.95312em 3.5em; } }
  .block-views-travel-list-block-1 .info h1 {
    font-size: 1.5625em; }
  .block-views-travel-list-block-1 .info .field-name-title-field {
    margin-bottom: 0.8em; }
  .block-views-travel-list-block-1 .info .field-name-field-event-date {
    font-size: 1.25em;
    font-weight: 300;
    line-height: 1.25em; }
    .block-views-travel-list-block-1 .info .field-name-field-event-date .date-display-start {
      display: block; }
  .block-views-travel-list-block-1 .info .btn, .block-views-travel-list-block-1 .info .view-events-page .view-filters .ui-tabs-nav li a, .view-events-page .view-filters .ui-tabs-nav li .block-views-travel-list-block-1 .info a, .block-views-travel-list-block-1 .info .view-events-page .view-filters .bef-checkboxes .form-type-bef-checkbox, .view-events-page .view-filters .bef-checkboxes .block-views-travel-list-block-1 .info .form-type-bef-checkbox, .block-views-travel-list-block-1 .info .no-js .view-events-page #event-tabs ul li a, .no-js .view-events-page #event-tabs ul li .block-views-travel-list-block-1 .info a {
    display: inline-block;
    margin-bottom: 1em; }
    @media (min-width: 48em) {
      .block-views-travel-list-block-1 .info .btn, .block-views-travel-list-block-1 .info .view-events-page .view-filters .ui-tabs-nav li a, .view-events-page .view-filters .ui-tabs-nav li .block-views-travel-list-block-1 .info a, .block-views-travel-list-block-1 .info .view-events-page .view-filters .bef-checkboxes .form-type-bef-checkbox, .view-events-page .view-filters .bef-checkboxes .block-views-travel-list-block-1 .info .form-type-bef-checkbox, .block-views-travel-list-block-1 .info .no-js .view-events-page #event-tabs ul li a, .no-js .view-events-page #event-tabs ul li .block-views-travel-list-block-1 .info a {
        padding: 0.8em 1em; } }
    .block-views-travel-list-block-1 .info .btn:before, .block-views-travel-list-block-1 .info .view-events-page .view-filters .ui-tabs-nav li a:before, .view-events-page .view-filters .ui-tabs-nav li .block-views-travel-list-block-1 .info a:before, .block-views-travel-list-block-1 .info .view-events-page .view-filters .bef-checkboxes .form-type-bef-checkbox:before, .view-events-page .view-filters .bef-checkboxes .block-views-travel-list-block-1 .info .form-type-bef-checkbox:before, .block-views-travel-list-block-1 .info .no-js .view-events-page #event-tabs ul li a:before, .no-js .view-events-page #event-tabs ul li .block-views-travel-list-block-1 .info a: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: 'event_note';
      color: #292B2D;
      margin-right: 0.16777em; }
    .block-views-travel-list-block-1 .info .btn:last-child, .block-views-travel-list-block-1 .info .view-events-page .view-filters .ui-tabs-nav li a:last-child, .view-events-page .view-filters .ui-tabs-nav li .block-views-travel-list-block-1 .info a:last-child, .block-views-travel-list-block-1 .info .view-events-page .view-filters .bef-checkboxes .form-type-bef-checkbox:last-child, .view-events-page .view-filters .bef-checkboxes .block-views-travel-list-block-1 .info .form-type-bef-checkbox:last-child, .block-views-travel-list-block-1 .info .no-js .view-events-page #event-tabs ul li a:last-child, .no-js .view-events-page #event-tabs ul li .block-views-travel-list-block-1 .info a:last-child {
      margin-right: 0; }
      .block-views-travel-list-block-1 .info .btn:last-child:before, .block-views-travel-list-block-1 .info .view-events-page .view-filters .ui-tabs-nav li a:last-child:before, .view-events-page .view-filters .ui-tabs-nav li .block-views-travel-list-block-1 .info a:last-child:before, .block-views-travel-list-block-1 .info .view-events-page .view-filters .bef-checkboxes .form-type-bef-checkbox:last-child:before, .view-events-page .view-filters .bef-checkboxes .block-views-travel-list-block-1 .info .form-type-bef-checkbox:last-child:before, .block-views-travel-list-block-1 .info .no-js .view-events-page #event-tabs ul li a:last-child:before, .no-js .view-events-page #event-tabs ul li .block-views-travel-list-block-1 .info a:last-child:before {
        content: 'info'; }
    .block-views-travel-list-block-1 .info .btn:hover:before, .block-views-travel-list-block-1 .info .view-events-page .view-filters .ui-tabs-nav li a:hover:before, .view-events-page .view-filters .ui-tabs-nav li .block-views-travel-list-block-1 .info a:hover:before, .block-views-travel-list-block-1 .info .view-events-page .view-filters .bef-checkboxes .form-type-bef-checkbox:hover:before, .view-events-page .view-filters .bef-checkboxes .block-views-travel-list-block-1 .info .form-type-bef-checkbox:hover:before, .block-views-travel-list-block-1 .info .no-js .view-events-page #event-tabs ul li a:hover:before, .no-js .view-events-page #event-tabs ul li .block-views-travel-list-block-1 .info a:hover:before {
      color: white; }

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

.block-menu-block-1 .menu {
  margin: 0;
  padding: 0; }
  .block-menu-block-1 .menu:after {
    content: "";
    display: table;
    clear: both; }

.block-menu-block-1 .menu li {
  margin: 0;
  padding: 0;
  font: inherit;
  font-size: 100%;
  vertical-align: baseline;
  position: relative;
  vertical-align: top; }

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

.block-menu-block-1 .touch-button {
  display: block; }
  @media (min-width: 38em) {
    .block-menu-block-1 .touch-button {
      display: none; } }

.block-menu-block-1 .menu .material-icons {
  vertical-align: middle;
  color: #00693c; }

.block-menu-block-1 .menu .level-1 {
  display: inline-block;
  border-radius: 5px;
  transition: background-color .3s ease-out;
  margin: 0 1em; }
  @media (min-width: 29em) {
    .block-menu-block-1 .menu .level-1 {
      margin: 0 1.95312em; } }
  @media (min-width: 38em) {
    .block-menu-block-1 .menu .level-1 {
      margin: 0 3.05176em 0 0; } }
  @media (min-width: 48em) {
    .block-menu-block-1 .menu .level-1 {
      margin: 0 5.96046em 0 0; } }
  .block-menu-block-1 .menu .level-1.first {
    margin-left: 0; }
  .block-menu-block-1 .menu .level-1.last {
    margin-right: 0; }
  @media (min-width: 38em) {
    .block-menu-block-1 .menu .level-1.expanded.active-trail {
      background-color: #66b83d; } }
  .block-menu-block-1 .menu .level-1.expanded.active-trail a {
    color: #292B2D; }
  .block-menu-block-1 .menu .level-1 a {
    text-transform: uppercase;
    font-size: 0.8em;
    color: #00693c;
    display: block; }
    @media (min-width: 38em) {
      .block-menu-block-1 .menu .level-1 a {
        padding: 0.512em 1em; } }
    @media (min-width: 38em) {
      .block-menu-block-1 .menu .level-1 a {
        font-size: 1em; } }
  .block-menu-block-1 .menu .level-1.active-trail .material-icons {
    color: #292B2D; }
  .block-menu-block-1 .menu .level-1.active-trail .menu .level-2 a:hover, .block-menu-block-1 .menu .level-1.active-trail .menu .level-2 a.active {
    color: white; }
  @media (min-width: 38em) {
    .block-menu-block-1 .menu .level-1:hover {
      background-color: #66b83d;
      border-bottom-right-radius: 0px;
      border-bottom-left-radius: 0px; } }
  .block-menu-block-1 .menu .level-1:hover a {
    color: #292B2D; }
  .block-menu-block-1 .menu .level-1:hover .material-icons {
    color: #292B2D; }

.block-menu-block-1 .de-dropdown .expanded .menu {
  box-shadow: 0 1px 5px rgba(0, 0, 0, 0.5); }

.block-menu-block-1 .menu .level-2 {
  position: relative;
  background-color: #fafbfb;
  border-radius: 0;
  border-bottom: 2px solid #d8dcde;
  padding: 0;
  display: block;
  transition: background-color .3s ease-out, border-color .3s ease-out; }
  .block-menu-block-1 .menu .level-2.last {
    border-bottom: none; }
    .block-menu-block-1 .menu .level-2.last:hover, .block-menu-block-1 .menu .level-2.last.active-trail {
      border-bottom: none; }
  .block-menu-block-1 .menu .level-2:hover, .block-menu-block-1 .menu .level-2.active-trail {
    background-color: #00693c;
    border-bottom: 2px solid #1a7850; }
    .block-menu-block-1 .menu .level-2:hover a, .block-menu-block-1 .menu .level-2.active-trail a {
      color: white !important; }
  .block-menu-block-1 .menu .level-2 a {
    display: block;
    text-transform: none;
    padding: 0.4096em 1.25em;
    color: #292B2D; }

/* navigation/_block-secondary-nav.scss */
.block-menu-block-3 .menu {
  margin: 0;
  padding: 0;
  list-style-type: none;
  padding: 0;
  margin: 0;
  overflow: hidden;
  float: right; }
  .block-menu-block-3 .menu:after {
    content: "";
    display: table;
    clear: both; }
  .block-menu-block-3 .menu > li {
    display: block;
    float: left; }
    .block-menu-block-3 .menu > li:last-child {
      margin-right: 0; }

.block-menu-block-3 .menu li {
  margin: 0;
  padding: 0;
  font: inherit;
  font-size: 100%;
  vertical-align: baseline;
  display: inline-block;
  margin-bottom: 0;
  padding: 0.512em 0; }

.block-menu-block-3 .menu a {
  display: block;
  color: #005438;
  font-size: 0.8em;
  text-decoration: none;
  text-transform: uppercase;
  padding: 0 0.4096em; }
  @media (min-width: 38em) {
    .block-menu-block-3 .menu a {
      padding: 0 0.512em; } }
  .block-menu-block-3 .menu a:hover, .block-menu-block-3 .menu a.active {
    text-decoration: underline;
    color: #00693c; }

.block-menu-block-3 .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/_block-sub-nav.scss */
.region-sidebar-second .block-menu-block {
  background-color: transparent;
  border: 1px solid #CED3D6;
  background-color: #ebedef;
  padding: 0; }
  .region-sidebar-second .block-menu-block h2 {
    margin: 1.25em 1.25em 1em 1.25em; }
  .region-sidebar-second .block-menu-block .menu li {
    border-bottom: 1px solid #CED3D6;
    margin: 0;
    padding-bottom: 0; }
    .region-sidebar-second .block-menu-block .menu li a {
      color: #005438;
      text-transform: uppercase;
      font-size: 0.8em;
      font-weight: 700;
      display: block;
      padding: 0.8em 1.5625em;
      background-color: #ebedef;
      transition: background-color .3s ease-out; }
      .region-sidebar-second .block-menu-block .menu li a:hover {
        color: white;
        text-decoration: none;
        background-color: #00693c; }
      .region-sidebar-second .block-menu-block .menu li a.active, .region-sidebar-second .block-menu-block .menu li a.active-trail {
        color: white;
        background-color: #00693c; }
    .region-sidebar-second .block-menu-block .menu li .menu li {
      border-bottom: 1px solid #66b83d; }
      .region-sidebar-second .block-menu-block .menu li .menu li:last-child {
        border-bottom: 0; }
      .region-sidebar-second .block-menu-block .menu li .menu li a {
        color: #292B2D;
        background-color: white; }
        .region-sidebar-second .block-menu-block .menu li .menu li a:hover {
          background-color: #66b83d; }
        .region-sidebar-second .block-menu-block .menu li .menu li a.active, .region-sidebar-second .block-menu-block .menu li .menu li a.active-trail {
          background-color: #66b83d; }
          .region-sidebar-second .block-menu-block .menu li .menu li a.active:hover, .region-sidebar-second .block-menu-block .menu li .menu li a.active-trail:hover {
            background-color: #579c34; }
    .region-sidebar-second .block-menu-block .menu li .menu .menu li {
      border-bottom: none; }
      .region-sidebar-second .block-menu-block .menu li .menu .menu li a {
        color: #00693c;
        padding-left: 1.25em;
        background-color: #ebedef;
        font-weight: 400; }
        .region-sidebar-second .block-menu-block .menu li .menu .menu li a:hover {
          text-decoration: underline; }
        .region-sidebar-second .block-menu-block .menu li .menu .menu li a.active {
          text-decoration: underline; }
          .region-sidebar-second .block-menu-block .menu li .menu .menu li a.active:hover {
            background-color: transparent; }

/* navigation/_breadcrumb.scss */
.breadcrumb {
  margin: 0;
  padding: 0;
  border-bottom: 1px solid #CED3D6;
  padding: 0.512em 0;
  margin-bottom: 1em; }
  .breadcrumb a {
    color: #292B2D;
    text-decoration: none;
    text-transform: uppercase;
    font-size: 0.8em;
    font-weight: 700;
    padding: 0 0.512em; }
    .breadcrumb a:first-child {
      padding-left: 0; }
      .breadcrumb a:first-child::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';
        font-size: 18px;
        content: "home";
        margin-right: 0.10737em;
        color: #292B2D; }
    .breadcrumb a:last-child {
      border: 0;
      padding-right: 0; }
    .breadcrumb a:hover {
      text-decoration: underline; }

/* navigation/_pager.scss */
.pager {
  margin: 0;
  padding: 0;
  padding-top: 1em;
  border-top: 3px solid #66b83d;
  text-align: center; }
  .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 {
    font: inherit;
    font-size: 100%;
    vertical-align: baseline;
    display: inline-block;
    vertical-align: middle;
    margin-bottom: 0; }
  .pager .pager-current {
    padding: 0.16777em 0.64em;
    background-color: #00693c;
    color: white;
    font-weight: 700; }
  .pager .pager-ellipsis {
    margin-right: 1em; }
  .pager a {
    display: block;
    padding: 0.16777em 0.64em;
    color: #292B2D;
    font-weight: 700;
    text-decoration: none;
    background-color: #66b83d;
    transition: background-color 0.3s ease-out; }
    .pager a:hover {
      color: white;
      background-color: #00693c; }
  .pager .pager-next,
  .pager .pager-previous {
    font: 0/0 serif;
    text-shadow: none;
    color: transparent; }
    .pager .pager-next a,
    .pager .pager-previous a {
      background-color: transparent;
      border-radius: 50%;
      border: 3px solid #797E80;
      transition: border-color 0.3s ease-out, color 0.3s ease-out; }
      .pager .pager-next a:hover,
      .pager .pager-previous a:hover {
        border: 3px solid #CED3D6; }
        .pager .pager-next a:hover::before,
        .pager .pager-previous a:hover::before {
          color: #CED3D6; }
  .pager .pager-previous a::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: "keyboard_arrow_left";
    font-weight: 700; }
  .pager .pager-next {
    clear: left; }
    @media (min-width: 29em) {
      .pager .pager-next {
        clear: none; } }
    .pager .pager-next a::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: "keyboard_arrow_right";
      font-weight: 700; }
  .pager .pager-first, .pager .pager-last {
    display: none; }

/* _revisions.scss */
/* _ie.scss */
/* ie/_ie10.scss */
.lt-ie10 .block-views-homepage-banner-block .homepage-banner__caption {
  left: 0; }

.lt-ie10 .block-search-form button .material-icons {
  background-image: url("../../img/icons/ic_search_black_24dp_1x.png");
  background-repeat: no-repeat;
  background-position: center;
  width: 40px; }

.lt-ie10 .block-views-events-block-2 .field-name-field-date .field-item:before {
  background-image: url("../../img/icons/ic_event_black_24dp_1x.png");
  background-repeat: no-repeat; }

.lt-ie10 .block-views-events-block-3 .field-name-field-date .field-item:before {
  background-image: url("../../img/icons/ic_event_white_24dp_1x.png");
  background-repeat: no-repeat; }

.lt-ie10 .block-de-events-events-mini-calendar .clndr-previous-button:before,
.lt-ie10 .pager .pager-previous a::before,
.lt-ie10 .related-content ul .slick-prev:before,
.lt-ie10 .block-views-events-block-4 ul .slick-prev:before,
.lt-ie10 .block-views-news-block-2 ul .slick-prev:before,
.lt-ie10 .block-views-events-block-4 ul .slick-prev:before,
.lt-ie10 .block-views-news-block-2 ul .slick-prev:before {
  background-image: url("../../img/icons/ic_keyboard_arrow_left_black_24dp_1x.png");
  background-repeat: no-repeat; }

.lt-ie10 .block-de-events-events-mini-calendar .clndr-next-button:before,
.lt-ie10 .pager .pager-next a::before,
.lt-ie10 .related-content ul .slick-next:before,
.lt-ie10 .block-views-events-block-4 ul .slick-next:before,
.lt-ie10 .block-views-news-block-2 ul .slick-next:before,
.lt-ie10 .block-views-events-block-4 ul .slick-next:before,
.lt-ie10 .block-views-news-block-2 ul .slick-next:before {
  background-image: url("../../img/icons/ic_keyboard_arrow_right_black_24dp_1x.png");
  background-repeat: no-repeat; }

.lt-ie10 .breadcrumb a:hover {
  text-decoration: none;
  color: #00693c; }

.lt-ie10 .breadcrumb a:first-child::before {
  background-image: url("../../img/icons/ic_home_black_18dp_1x.png");
  background-repeat: no-repeat; }

.lt-ie10 .more-link a:hover {
  text-decoration: none;
  color: black; }

.lt-ie10 .more-link a::after {
  background-image: url("../../img/icons/ic_arrow_forward_black_18dp_1x.png");
  background-repeat: no-repeat; }

.lt-ie10 .node-type-travel-data .field-name-field-event-date .field-item:before {
  background-image: url("../../img/icons/ic_event_black_24dp_1x.png");
  background-repeat: no-repeat; }

.lt-ie10 .node-council-member .field-name-field-email-address .field-item:before {
  background-image: url("../../img/icons/ic_email_black_24dp_1x.png");
  background-repeat: no-repeat; }

/* _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;
    margin-left: 0; }
  /*
     * 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; }
  .layout-container, .block-views-events-block-5 .section-title, .block-views-events-block-1 h1, .block-views-news-block-1 h1 {
    padding: 0; }
  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; }
  img,
  .fa,
  #footer,
  .region-footer-secondary,
  .block-main-nav {
    display: none !important; }
  h1 {
    font-size: 20px !important; }
  h2 {
    font-size: 18px !important;
    font-weight: 400 !important; }
  h3 {
    font-size: inherit !important; }
  h2 span.word1,
  p span.word1 {
    margin: 0 !important;
    padding: 0 !important; }
  .highlight-box {
    border-color: #ccc !important; }
  #header,
  .region-cta {
    display: none !important; }
  .block-views-homepage-banner-block .homepage-banner {
    min-height: 100px !important; }
  #main {
    width: 100% !important; }
  #events,
  #news {
    max-width: 1188px;
    margin: 0 auto !important; }
  #events .region-events-primary,
  #events .region-events-secondary {
    width: 100%;
    height: auto !important; }
  .region-events-primary .block-views-events-block-3 {
    max-width: 100%; }
  .not-front .region-featured-content {
    max-width: 1188px;
    margin: 0 auto !important; }
  .region-sidebar-second {
    display: none !important; }
  .field {
    font-size: inherit !important; }
  .block-fieldblock-node-basic-page-default-field-photo-gallery,
  .block-fieldblock-node-news-default-field-photo-gallery,
  .field-name-field-photo-gallery {
    display: none !important; }
  .field-name-field-lecture-video {
    display: none; }
  .view-filters {
    padding: 0 !important; }
    .view-filters .ui-tabs-panel {
      padding-left: 0 !important;
      padding-right: 0 !important; }
    .view-filters .views-exposed-form__form-actions {
      display: none; }
  .views-row {
    padding-left: 0 !important;
    padding-right: 0 !important;
    border-bottom: 1px solid #999 !important;
    width: 100% !important; }
    .views-row:last-child {
      border-bottom: none !important;
      margin-bottom: 0 !important; }
  .pager {
    border-top: 2px solid #999; }
  .col1,
  .event-header__image,
  .block-fieldblock-node-basic-page-default-field-header-image,
  .field-name-field-header-image {
    display: none !important; }
  .col2,
  .col3,
  .event-header__info,
  .block-fieldblock-node-basic-page-default-field-header-cta,
  .group-wrapper {
    width: 100% !important;
    padding: 1em 0 !important;
    min-height: auto !important;
    height: auto !important;
    border: none !important; }
  .block-views-feature-block .col2,
  .block-directory-cta .description,
  .block-career-network-cta .description {
    width: 100%;
    min-height: auto; }
  .block-views-news-block-4 .views-row,
  .bean-cta .field-name-field-body,
  .bean-cta .field-name-field-call-to-action {
    padding: 0;
    padding: 0; }
  .learn-more a,
  .more-link,
  .cta-link,
  .views-field-view-node a,
  .field-name-field-call-to-action a {
    display: none !important; }
  .view-events-page.list-display .field-type-datetime {
    position: relative;
    padding: 0;
    text-align: left; }
  .views-field-title,
  .field-name-field-date,
  .views-field-field-date-1,
  .views-field-created,
  .field-name-body,
  .views-field-view-node,
  .field-name-field-speaker,
  .field-name-field-location,
  .field-name-field-roles {
    margin-left: 0 !important;
    padding-left: 0 !important; }
  .block-system .view-council-member-in-committee .views-row {
    width: 100% !important;
    height: auto !important;
    padding-top: 0;
    border-bottom: 2px solid #CED3D6 !important; }
  .block-system .view-council-member-in-committee .views-row .field-name-field-roles p {
    border-top: 1px solid #CED3D6; }
  .block-views-news-block-4 .views-row .views-field-nothing-1 {
    margin-bottom: 0; } }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVfdGhlbWUuY3NzIiwic291cmNlcyI6WyJkZV90aGVtZS5zY3NzIiwiX3RoZW1lLWluaXQuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvaW51aXQtYm94LXNpemluZy9fZ2VuZXJpYy5ib3gtc2l6aW5nLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2ludWl0LW5vcm1hbGl6ZS9fZ2VuZXJpYy5ub3JtYWxpemUuc2NzcyIsIl90aGVtZS1jb21tb25zLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL3Nhc3MtdG9vbGtpdC9zdHlsZXNoZWV0cy9fdG9vbGtpdC5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9zYXNzLXRvb2xraXQvc3R5bGVzaGVldHMvdG9vbGtpdC9fc2V0dGluZ3Muc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvc2Fzcy10b29sa2l0L3N0eWxlc2hlZXRzL3Rvb2xraXQvX3BsYWNlaG9sZGVycy5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9zYXNzLXRvb2xraXQvc3R5bGVzaGVldHMvdG9vbGtpdC9fY2xlYXJmaXguc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvc2Fzcy10b29sa2l0L3N0eWxlc2hlZXRzL3Rvb2xraXQvX2NvbG9ycy5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9zYXNzLXRvb2xraXQvc3R5bGVzaGVldHMvdG9vbGtpdC9fZm9udHMuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvc2Fzcy10b29sa2l0L3N0eWxlc2hlZXRzL3Rvb2xraXQvX2ludHJpbnNpYy1yYXRpby5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9zYXNzLXRvb2xraXQvc3R5bGVzaGVldHMvdG9vbGtpdC9fbmVzdGVkLWNvbnRleHQuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvc2Fzcy10b29sa2l0L3N0eWxlc2hlZXRzL3Rvb2xraXQvX3BhcmFsbGF4LnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL3Nhc3MtdG9vbGtpdC9zdHlsZXNoZWV0cy90b29sa2l0L19ydGwuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvc2Fzcy10b29sa2l0L3N0eWxlc2hlZXRzL3Rvb2xraXQvX3RhcmdldC5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9zYXNzLXRvb2xraXQvc3R5bGVzaGVldHMvdG9vbGtpdC9fdHJpYW5nbGUuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvc2Fzcy10b29sa2l0L3N0eWxlc2hlZXRzL3Rvb2xraXQvX2NlbnRlci5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9zYXNzLXRvb2xraXQvc3R5bGVzaGVldHMvdG9vbGtpdC9fdmlld3BvcnQuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvc2Fzcy10b29sa2l0L3N0eWxlc2hlZXRzL3Rvb2xraXQvX3VuZGVybGluZS5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9zYXNzLXRvb2xraXQvc3R5bGVzaGVldHMvdG9vbGtpdC9fYXJ0LnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9fYnJlYWtwb2ludC5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9fc2V0dGluZ3Muc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvX2NvbnRleHQuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvX2hlbHBlcnMuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvX3BhcnNlcnMuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvcGFyc2Vycy9fcXVlcnkuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvcGFyc2Vycy9fc2luZ2xlLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L3BhcnNlcnMvc2luZ2xlL19kZWZhdWx0LnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L3BhcnNlcnMvX2RvdWJsZS5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9wYXJzZXJzL2RvdWJsZS9fZGVmYXVsdC1wYWlyLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L3BhcnNlcnMvZG91YmxlL19kb3VibGUtc3RyaW5nLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L3BhcnNlcnMvZG91YmxlL19kZWZhdWx0LnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L3BhcnNlcnMvX3RyaXBsZS5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9wYXJzZXJzL3RyaXBsZS9fZGVmYXVsdC5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9wYXJzZXJzL19yZXNvbHV0aW9uLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L3BhcnNlcnMvcmVzb2x1dGlvbi9fcmVzb2x1dGlvbi5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9fbm8tcXVlcnkuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvX3Jlc3BvbmQtdG8uc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvX2xlZ2FjeS1zZXR0aW5ncy5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9zaW5ndWxhcml0eS9zdHlsZXNoZWV0cy9fc2luZ3VsYXJpdHlncy5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9zaW5ndWxhcml0eS9zdHlsZXNoZWV0cy9zaW5ndWxhcml0eWdzL19oZWxwZXJzLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL3Npbmd1bGFyaXR5L3N0eWxlc2hlZXRzL3Npbmd1bGFyaXR5Z3MvaGVscGVycy9fc2V0dGluZ3Muc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvc2luZ3VsYXJpdHkvc3R5bGVzaGVldHMvc2luZ3VsYXJpdHlncy9oZWxwZXJzL19maW5kLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL3Npbmd1bGFyaXR5L3N0eWxlc2hlZXRzL3Npbmd1bGFyaXR5Z3MvaGVscGVycy9fc2Fzcy1saXN0cy5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9zaW5ndWxhcml0eS9zdHlsZXNoZWV0cy9zaW5ndWxhcml0eWdzL2hlbHBlcnMvX2NvbHVtbnMuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvc2luZ3VsYXJpdHkvc3R5bGVzaGVldHMvc2luZ3VsYXJpdHlncy9oZWxwZXJzL19zcGFuLXNoYXJlZC5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9zaW5ndWxhcml0eS9zdHlsZXNoZWV0cy9zaW5ndWxhcml0eWdzL2hlbHBlcnMvX2RpcmVjdGlvbnMuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvc2luZ3VsYXJpdHkvc3R5bGVzaGVldHMvc2luZ3VsYXJpdHlncy9oZWxwZXJzL19zb3J0LnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL3Npbmd1bGFyaXR5L3N0eWxlc2hlZXRzL3Npbmd1bGFyaXR5Z3MvaGVscGVycy9fYmFja2dyb3VuZC1ncmlkLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL3Npbmd1bGFyaXR5L3N0eWxlc2hlZXRzL3Npbmd1bGFyaXR5Z3MvaGVscGVycy9fc3RyLXJlcGxhY2Uuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvc2luZ3VsYXJpdHkvc3R5bGVzaGVldHMvc2luZ3VsYXJpdHlncy9oZWxwZXJzL19sYXlvdXQuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvc2luZ3VsYXJpdHkvc3R5bGVzaGVldHMvc2luZ3VsYXJpdHlncy9fbGFuZ3VhZ2Uuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvc2luZ3VsYXJpdHkvc3R5bGVzaGVldHMvc2luZ3VsYXJpdHlncy9sYW5ndWFnZS9fcGFyc2UtbGlzdC5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9zaW5ndWxhcml0eS9zdHlsZXNoZWV0cy9zaW5ndWxhcml0eWdzL2xhbmd1YWdlL19wYXJzZS1hZGQuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvc2luZ3VsYXJpdHkvc3R5bGVzaGVldHMvc2luZ3VsYXJpdHlncy9sYW5ndWFnZS9fc3Bhbi5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9zaW5ndWxhcml0eS9zdHlsZXNoZWV0cy9zaW5ndWxhcml0eWdzL19tYXRoLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL3Npbmd1bGFyaXR5L3N0eWxlc2hlZXRzL3Npbmd1bGFyaXR5Z3MvbWF0aC9fY29sdW1ucy5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9zaW5ndWxhcml0eS9zdHlsZXNoZWV0cy9zaW5ndWxhcml0eWdzL21hdGgvX2d1dHRlcnMuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvc2luZ3VsYXJpdHkvc3R5bGVzaGVldHMvc2luZ3VsYXJpdHlncy9tYXRoL19jb250ZXh0LnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL3Npbmd1bGFyaXR5L3N0eWxlc2hlZXRzL3Npbmd1bGFyaXR5Z3MvbWF0aC9fZ3JpZC5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9zaW5ndWxhcml0eS9zdHlsZXNoZWV0cy9zaW5ndWxhcml0eWdzL19ncmlkcy5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9zaW5ndWxhcml0eS9zdHlsZXNoZWV0cy9zaW5ndWxhcml0eWdzL2dyaWRzL19hZGQuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvc2luZ3VsYXJpdHkvc3R5bGVzaGVldHMvc2luZ3VsYXJpdHlncy9ncmlkcy9fZmluZC5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9zaW5ndWxhcml0eS9zdHlsZXNoZWV0cy9zaW5ndWxhcml0eWdzL19ndXR0ZXJzLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL3Npbmd1bGFyaXR5L3N0eWxlc2hlZXRzL3Npbmd1bGFyaXR5Z3MvZ3V0dGVycy9fYWRkLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL3Npbmd1bGFyaXR5L3N0eWxlc2hlZXRzL3Npbmd1bGFyaXR5Z3MvZ3V0dGVycy9fZmluZC5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9zaW5ndWxhcml0eS9zdHlsZXNoZWV0cy9zaW5ndWxhcml0eWdzL19ndXR0ZXItc3R5bGVzLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL3Npbmd1bGFyaXR5L3N0eWxlc2hlZXRzL3Npbmd1bGFyaXR5Z3MvZ3V0dGVyLXN0eWxlcy9fYWRkLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL3Npbmd1bGFyaXR5L3N0eWxlc2hlZXRzL3Npbmd1bGFyaXR5Z3MvZ3V0dGVyLXN0eWxlcy9fZmluZC5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9zaW5ndWxhcml0eS9zdHlsZXNoZWV0cy9zaW5ndWxhcml0eWdzL2d1dHRlci1zdHlsZXMvX2hlbHBlcnMuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvc2luZ3VsYXJpdHkvc3R5bGVzaGVldHMvc2luZ3VsYXJpdHlncy9fYXBpLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL3Npbmd1bGFyaXR5L3N0eWxlc2hlZXRzL3Npbmd1bGFyaXR5Z3MvYXBpL19mbG9hdC5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9zaW5ndWxhcml0eS9zdHlsZXNoZWV0cy9zaW5ndWxhcml0eWdzL2FwaS9faXNvbGF0aW9uLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL3Npbmd1bGFyaXR5L3N0eWxlc2hlZXRzL3Npbmd1bGFyaXR5Z3MvYXBpL19jYWxjLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL21vZHVsYXItc2NhbGUvc3R5bGVzaGVldHMvX21vZHVsYXItc2NhbGUuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvbW9kdWxhci1zY2FsZS9zdHlsZXNoZWV0cy9tb2R1bGFyLXNjYWxlL19yYXRpb3Muc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvbW9kdWxhci1zY2FsZS9zdHlsZXNoZWV0cy9tb2R1bGFyLXNjYWxlL190ZXN0cy5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9tb2R1bGFyLXNjYWxlL3N0eWxlc2hlZXRzL21vZHVsYXItc2NhbGUvX3Bvdy5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9tb2R1bGFyLXNjYWxlL3N0eWxlc2hlZXRzL21vZHVsYXItc2NhbGUvX2NhbGMuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvbW9kdWxhci1zY2FsZS9zdHlsZXNoZWV0cy9tb2R1bGFyLXNjYWxlL19nZW5lcmF0ZS1saXN0LnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL21vZHVsYXItc2NhbGUvc3R5bGVzaGVldHMvbW9kdWxhci1zY2FsZS9fc29ydC1saXN0LnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL21vZHVsYXItc2NhbGUvc3R5bGVzaGVldHMvbW9kdWxhci1zY2FsZS9fcm91bmQtcHguc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvbW9kdWxhci1zY2FsZS9zdHlsZXNoZWV0cy9tb2R1bGFyLXNjYWxlL19mdW5jdGlvbi5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9tb2R1bGFyLXNjYWxlL3N0eWxlc2hlZXRzL21vZHVsYXItc2NhbGUvX2Z1bmN0aW9uLWxpc3Quc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvbW9kdWxhci1zY2FsZS9zdHlsZXNoZWV0cy9tb2R1bGFyLXNjYWxlL19yZXNwb25kLnNjc3MiLCJfc2V0dGluZ3MvX2luZGV4LnNjc3MiLCJfc2V0dGluZ3MvX2JyZWFrcG9pbnRzLnNjc3MiLCJfc2V0dGluZ3MvX2NvbG9ycy5zY3NzIiwiX3NldHRpbmdzL19ncmlkLnNjc3MiLCJfc2V0dGluZ3MvX21vZHVsYXItc2NhbGUuc2NzcyIsIl9zZXR0aW5ncy9fdHlwb2dyYXBoeS5zY3NzIiwiX21peGlucy9faW5kZXguc2NzcyIsIl9taXhpbnMvbGlicmFyeS90eXBvZ3JhcGh5L19pbmRleC5zY3NzIiwiX21peGlucy9saWJyYXJ5L3R5cG9ncmFwaHkvX2ZvbnQtc2l6ZS5zY3NzIiwiX21peGlucy9saWJyYXJ5L3R5cG9ncmFwaHkvX2xpbmUtaGVpZ2h0LnNjc3MiLCJfbWl4aW5zL2xpYnJhcnkvdHlwb2dyYXBoeS9fbm8tYnVsbGV0LnNjc3MiLCJfbWl4aW5zL2xpYnJhcnkvdHlwb2dyYXBoeS9fbm8tYnVsbGV0cy5zY3NzIiwiX21peGlucy9saWJyYXJ5L3R5cG9ncmFwaHkvX3ByZXR0eS1idWxsZXRzLnNjc3MiLCJfbWl4aW5zL2xpYnJhcnkvdHlwb2dyYXBoeS9fdGV4dC10cnVuY2F0ZS5zY3NzIiwiX21peGlucy9saWJyYXJ5L3R5cG9ncmFwaHkvX3Vuc3R5bGVkLWxpbmsuc2NzcyIsIl9taXhpbnMvbGlicmFyeS90eXBvZ3JhcGh5L3RleHQtcmVwbGFjZW1lbnQvX2luZGV4LnNjc3MiLCJfbWl4aW5zL2xpYnJhcnkvdHlwb2dyYXBoeS90ZXh0LXJlcGxhY2VtZW50L19yZXBsYWNlLXRleHQtd2l0aC1kaW1lbnNpb25zLnNjc3MiLCJfbWl4aW5zL2xpYnJhcnkvdHlwb2dyYXBoeS90ZXh0LXJlcGxhY2VtZW50L19yZXBsYWNlLXRleHQuc2NzcyIsIl9taXhpbnMvbGlicmFyeS90eXBvZ3JhcGh5L3RleHQtcmVwbGFjZW1lbnQvX3NxdWlzaC10ZXh0LnNjc3MiLCJfbWl4aW5zL2xpYnJhcnkvcmVzZXQtdXRpbGl0aWVzL19pbmRleC5zY3NzIiwiX21peGlucy9saWJyYXJ5L3Jlc2V0LXV0aWxpdGllcy9fcmVzZXQtYm94LW1vZGVsLnNjc3MiLCJfbWl4aW5zL2xpYnJhcnkvcmVzZXQtdXRpbGl0aWVzL19yZXNldC1jb2x1bW4uc2NzcyIsIl9taXhpbnMvbGlicmFyeS9yZXNldC11dGlsaXRpZXMvX3Jlc2V0LWZvbnQuc2NzcyIsIl9taXhpbnMvbGlicmFyeS9yZXNldC11dGlsaXRpZXMvX3Jlc2V0LWZvcm0tZmllbGQuc2NzcyIsIl9taXhpbnMvbGlicmFyeS9yZXNldC11dGlsaXRpZXMvX3Jlc2V0LWltYWdlLWhvdmVyLnNjc3MiLCJfbWl4aW5zL2xpYnJhcnkvcmVzZXQtdXRpbGl0aWVzL19yZXNldC1xdW90YXRpb24uc2NzcyIsIl9taXhpbnMvbGlicmFyeS9yZXNldC11dGlsaXRpZXMvX3Jlc2V0LXRhYmxlLWNlbGwuc2NzcyIsIl9taXhpbnMvbGlicmFyeS9yZXNldC11dGlsaXRpZXMvX3Jlc2V0LXRhcC5zY3NzIiwiX21peGlucy9saWJyYXJ5L3Jlc2V0LXV0aWxpdGllcy9fcmVzZXQuc2NzcyIsIl9taXhpbnMvbGlicmFyeS9yZXNldC11dGlsaXRpZXMvX3Jlc2V0LXVzZXItc2VsZWN0LnNjc3MiLCJfbWl4aW5zL2xpYnJhcnkvdmVuZG9ycy9faW5kZXguc2NzcyIsIl9taXhpbnMvbGlicmFyeS92ZW5kb3JzL21hdGVyaWFsLWRlc2lnbi1pY29ucy9fbWF0ZXJpYWwtaWNvbnMuc2NzcyIsIl9taXhpbnMvbGlicmFyeS9fYm94LXNoYWRvd3Muc2NzcyIsIl9taXhpbnMvbGlicmFyeS9fYnV0dG9ucy5zY3NzIiwiX21peGlucy9saWJyYXJ5L19jZW50ZXItYmxvY2suc2NzcyIsIl9taXhpbnMvbGlicmFyeS9fZGl2aWRlci1saW5lLnNjc3MiLCJfbWl4aW5zL2xpYnJhcnkvX2hlYWRsaW5lLXR5cGUuc2NzcyIsIl9taXhpbnMvbGlicmFyeS9faGlnaGxpZ2h0LWJveC5zY3NzIiwiX21peGlucy9saWJyYXJ5L19jb250ZW50LWJveC5zY3NzIiwiX21peGlucy9saWJyYXJ5L19pbWFnZS0yeC5zY3NzIiwiX21peGlucy9saWJyYXJ5L19pbWFnZS1zdHlsZXMuc2NzcyIsIl9taXhpbnMvbGlicmFyeS9fbmF2aWdhdGlvbi1saXN0LnNjc3MiLCJfbWl4aW5zL2xpYnJhcnkvX25vLWRyYWctaW1hZ2Uuc2NzcyIsIl9taXhpbnMvbGlicmFyeS9fc3ZnLWJnLnNjc3MiLCJfZWxlbWVudHMuc2NzcyIsIl9kcnVwYWwuc2NzcyIsImRydXBhbC9fZm9ybXMuc2NzcyIsImRydXBhbC9fbWVzc2FnZXMuc2NzcyIsImRydXBhbC9fc3lzdGVtLXRoZW1lLnNjc3MiLCJkcnVwYWwvX3RhYnMuc2NzcyIsIl9sYXlvdXQuc2NzcyIsImxheW91dC9faGVhZGVyLnNjc3MiLCJsYXlvdXQvX2NvbnRlbnQuc2NzcyIsImxheW91dC9fZm9vdGVyLnNjc3MiLCJfb2JqZWN0cy5zY3NzIiwib2JqZWN0cy9fYnV0dG9ucy5zY3NzIiwib2JqZWN0cy9fY2FyZHMuc2NzcyIsIm9iamVjdHMvY2FyZHMvX2NhcmQuc2NzcyIsIm9iamVjdHMvY2FyZHMvX2NhcmQtLWRlZmF1bHQuc2NzcyIsIm9iamVjdHMvY2FyZHMvX2NhcmQtLWFjY29yZGlvbi5zY3NzIiwib2JqZWN0cy9fd3lzaXd5Zy1sYXlvdXRzLnNjc3MiLCJvYmplY3RzL3d5c2l3eWdfbGF5b3V0cy9fbGF5b3V0LS10d28tY29sLnNjc3MiLCJvYmplY3RzL3d5c2l3eWdfbGF5b3V0cy9fbGF5b3V0LS10aHJlZS1jb2wuc2NzcyIsIm9iamVjdHMvX3Jlc3BvbnNpdmUtdGFibGVzLnNjc3MiLCJvYmplY3RzL19tZWRpYS1lbWJlZC5zY3NzIiwib2JqZWN0cy9fZmllbGRzLnNjc3MiLCJvYmplY3RzL192aWV3LWZpZWxkcy5zY3NzIiwib2JqZWN0cy9fbGlzdC1kaXNwbGF5cy5zY3NzIiwib2JqZWN0cy9fZ3JpZC1kaXNwbGF5cy5zY3NzIiwib2JqZWN0cy9fY29udGVudC1zdHlsZXMuc2NzcyIsIm9iamVjdHMvX3ZlbmRvcnMuc2NzcyIsIm9iamVjdHMvdmVuZG9ycy9kcm9wa2ljay9fZHJvcGtpY2suc2NzcyIsIm9iamVjdHMvdmVuZG9ycy9kZV9tZW51X2Ryb3Bkb3duL19kZV9tZW51X2Ryb3Bkb3duLnNjc3MiLCJvYmplY3RzL19ib3hlcy5zY3NzIiwib2JqZWN0cy9fZGUtZ2FsbGVyeS5zY3NzIiwib2JqZWN0cy9fZmlsZS1hdHRhY2htZW50cy5zY3NzIiwib2JqZWN0cy9fcmVsYXRlZC1jb250ZW50LnNjc3MiLCJfY29tcG9uZW50cy5zY3NzIiwiY29tcG9uZW50cy9fYmxvY2tzLnNjc3MiLCJjb21wb25lbnRzL2Jsb2Nrcy9fYmxvY2stYmVhbnMuc2NzcyIsImNvbXBvbmVudHMvYmxvY2tzL19ibG9jay1kZWZhdWx0LnNjc3MiLCJjb21wb25lbnRzL2Jsb2Nrcy9fYmxvY2stYWdncmVnYXRvci1jYXRlZ29yeS0xLnNjc3MiLCJjb21wb25lbnRzL2Jsb2Nrcy9fYmxvY2stdmlld3MtaG9tZXBhZ2UtYmFubmVyLWJsb2NrLnNjc3MiLCJjb21wb25lbnRzL2Jsb2Nrcy9fYmxvY2stdmlld3MtZXZlbnRzLWJsb2NrLTIuc2NzcyIsImNvbXBvbmVudHMvYmxvY2tzL19ibG9jay12aWV3cy1ldmVudHMtYmxvY2stMy5zY3NzIiwiY29tcG9uZW50cy9ibG9ja3MvX2Jsb2NrLWFkZGl0aW9uYWwtZXZlbnRzLnNjc3MiLCJjb21wb25lbnRzL2Jsb2Nrcy9fYmxvY2stY29sbGVnZS1jdGEuc2NzcyIsImNvbXBvbmVudHMvYmxvY2tzL19ibG9jay1jbGFzcy1jdGEuc2NzcyIsImNvbXBvbmVudHMvYmxvY2tzL19ibG9jay1mZWF0dXJlZC1uZXdzLnNjc3MiLCJjb21wb25lbnRzL2Jsb2Nrcy9fYmxvY2stbmV3cy5zY3NzIiwiY29tcG9uZW50cy9ibG9ja3MvX2Jsb2NrLXNvY2lhbGl6ZS5zY3NzIiwiY29tcG9uZW50cy9ibG9ja3MvX2Jsb2NrLXNvY2lhbC1saW5rcy5zY3NzIiwiY29tcG9uZW50cy9ibG9ja3MvX2Jsb2NrLWZvb3Rlci1jdGFzLnNjc3MiLCJjb21wb25lbnRzL2Jsb2Nrcy9fYmxvY2staW5mby1saW5rcy5zY3NzIiwiY29tcG9uZW50cy9ibG9ja3MvX2Jsb2NrLWFsdW1uaS1saW5rcy5zY3NzIiwiY29tcG9uZW50cy9ibG9ja3MvX2Jsb2NrLWZvb3Rlci1sb2dvLnNjc3MiLCJjb21wb25lbnRzL2Jsb2Nrcy9fYmxvY2stc3ViLW5hdi5zY3NzIiwiY29tcG9uZW50cy9ibG9ja3MvX2Jsb2NrLXZpZXctcHJvZ3JhbS5zY3NzIiwiY29tcG9uZW50cy9ibG9ja3MvX2Jsb2NrLWJhc2ljLXBhZ2UtaGVhZGVyLWltYWdlLnNjc3MiLCJjb21wb25lbnRzL2Jsb2Nrcy9fYmxvY2stYmVhbi1hbHVtbmktdHJhdmVsLWhlYWRlci5zY3NzIiwiY29tcG9uZW50cy9ibG9ja3MvX2Jsb2NrLWV2ZW50LWxpbmsuc2NzcyIsImNvbXBvbmVudHMvX2JyYW5kLnNjc3MiLCJjb21wb25lbnRzL19zZWFyY2guc2NzcyIsImNvbXBvbmVudHMvc2VhcmNoL19zZWFyY2gtZm9ybS5zY3NzIiwiY29tcG9uZW50cy9zZWFyY2gvX3NlYXJjaC1yZXN1bHRzLnNjc3MiLCJjb21wb25lbnRzL3NlYXJjaC9fYmxvY2stc2VhcmNoLnNjc3MiLCJjb21wb25lbnRzL191c2VyLnNjc3MiLCJjb21wb25lbnRzL3VzZXIvX3VzZXItbG9naW4uc2NzcyIsImNvbXBvbmVudHMvX3dlYmZvcm1zLnNjc3MiLCJfc2VjdGlvbnMuc2NzcyIsInNlY3Rpb25zL19ldmVudHMuc2NzcyIsInNlY3Rpb25zL2V2ZW50cy9fbm9kZS1ldmVudHMuc2NzcyIsInNlY3Rpb25zL2V2ZW50cy9fdmlldy1ldmVudHMuc2NzcyIsInNlY3Rpb25zL2V2ZW50cy9fdmlldy1ldmVudC1maWx0ZXJzLnNjc3MiLCJzZWN0aW9ucy9ldmVudHMvX2Jsb2NrLXZpZXdzLWV2ZW50cy1ibG9jay5zY3NzIiwic2VjdGlvbnMvZXZlbnRzL19ibG9jay1mZWF0dXJlZC1ldmVudC1oZWFkZXIuc2NzcyIsInNlY3Rpb25zL2V2ZW50cy9fYmxvY2stbm9kZS1ldmVudC1oZWFkZXIuc2NzcyIsInNlY3Rpb25zL2V2ZW50cy9fYmxvY2stcmVsYXRlZC1ldmVudHMuc2NzcyIsInNlY3Rpb25zL2V2ZW50cy9fYmxvY2stZG9sLWV2ZW50cy5zY3NzIiwic2VjdGlvbnMvZXZlbnRzL19ibG9jay1ob21lY29taW5nLWV2ZW50cy5zY3NzIiwic2VjdGlvbnMvZXZlbnRzL19ibG9jay1kZS1ldmVudHMtZXZlbnRzLW1pbmktY2FsZW5kYXIuc2NzcyIsInNlY3Rpb25zL19uZXdzLnNjc3MiLCJzZWN0aW9ucy9uZXdzL19ibG9jay12aWV3cy1mZWF0dXJlLWJsb2NrLnNjc3MiLCJzZWN0aW9ucy9uZXdzL19ibG9jay1ob21lcGFnZS1uZXdzLnNjc3MiLCJzZWN0aW9ucy9uZXdzL19ub2RlLW5ld3Muc2NzcyIsInNlY3Rpb25zL25ld3MvX3ZpZXctbmV3cy5zY3NzIiwic2VjdGlvbnMvbmV3cy9fYmxvY2stbGF0ZXN0LW5ld3MtYmxvY2tzLnNjc3MiLCJzZWN0aW9ucy9uZXdzL19ibG9jay1yZWxhdGVkLW5ld3Muc2NzcyIsInNlY3Rpb25zL25ld3MvX2Jsb2NrLWZlYXR1cmVkLW5ld3MtaGVhZGVyLnNjc3MiLCJzZWN0aW9ucy9uZXdzL19ibG9jay1ub2RlLW5ld3MtaGVhZGVyLnNjc3MiLCJzZWN0aW9ucy9fcGFnZS5zY3NzIiwic2VjdGlvbnMvcGFnZS9fbm9kZS1wYWdlLnNjc3MiLCJzZWN0aW9ucy9wYWdlL19ub2RlLWFsdW1uaS1jb3VuY2lsLnNjc3MiLCJzZWN0aW9ucy9wYWdlL19ub2RlLWNvbnRhY3QtdXMuc2NzcyIsInNlY3Rpb25zL3BhZ2UvX2ZpbmQteW91ci1jbGFzcy5zY3NzIiwic2VjdGlvbnMvcGFnZS9fbm9kZS1yZXVuaW9uLnNjc3MiLCJzZWN0aW9ucy9wYWdlL19wYWdlLXRheG9ub215LXRlcm0uc2NzcyIsInNlY3Rpb25zL19jb3VuY2lsX21lbWJlcnMuc2NzcyIsInNlY3Rpb25zL2NvdW5jaWxfbWVtYmVycy9fdmlldy1jb3VuY2lsLW1lbWJlci5zY3NzIiwic2VjdGlvbnMvY291bmNpbF9tZW1iZXJzL19ibG9jay1jb3VuY2lsLW1lbWJlcnMuc2NzcyIsInNlY3Rpb25zL2NvdW5jaWxfbWVtYmVycy9fbm9kZS1jb3VuY2lsLW1lbWJlci5zY3NzIiwic2VjdGlvbnMvY291bmNpbF9tZW1iZXJzL192aWV3LWNvdW5jaWwtbWVtYmVyLWluLWNvbW1pdHRlZS5zY3NzIiwic2VjdGlvbnMvX21lZXRpbmdfbWludXRlcy5zY3NzIiwic2VjdGlvbnMvbWVldGluZ19taW51dGVzL192aWV3LW1lZXRpbmctbWludXRlcy5zY3NzIiwic2VjdGlvbnMvbWVldGluZ19taW51dGVzL19ibG9jay1tZWV0aW5nLW1pbnV0ZXMuc2NzcyIsInNlY3Rpb25zL21lZXRpbmdfbWludXRlcy9fbm9kZS1tZWV0aW5nLW1pbnV0ZXMuc2NzcyIsInNlY3Rpb25zL19saWZlbG9uZ19sZWFybmluZy5zY3NzIiwic2VjdGlvbnMvbGlmZWxvbmdfbGVhcm5pbmcvX3ZpZXctbGlmZWxvbmctbGVhcm5pbmcuc2NzcyIsInNlY3Rpb25zL2xpZmVsb25nX2xlYXJuaW5nL192aWV3LWxpZmVsb25nLWxlYXJuaW5nLXRlZC10YWxrcy5zY3NzIiwic2VjdGlvbnMvbGlmZWxvbmdfbGVhcm5pbmcvX2Jsb2NrLWxpZmVsb25nLWxlYXJuaW5nLnNjc3MiLCJzZWN0aW9ucy9saWZlbG9uZ19sZWFybmluZy9fYmxvY2stdmlld3MtbGlmZWxvbmctbGVhcm5pbmctcmVsYXRlZC5zY3NzIiwic2VjdGlvbnMvbGlmZWxvbmdfbGVhcm5pbmcvX2Jsb2NrLXZpZXdzLWxpZmVsb25nLWxlYXJuaW5nLWNhcmVlci13ZWJpbmFycy5zY3NzIiwic2VjdGlvbnMvbGlmZWxvbmdfbGVhcm5pbmcvX25vZGUtdHlwZS1saWZlbG9uZy1sZWFybmluZy5zY3NzIiwic2VjdGlvbnMvX2hpbGxfd2luZHNfc29jaWV0eS5zY3NzIiwic2VjdGlvbnMvaGlsbF93aW5kc19zb2NpZXR5L192aWV3LWhpbGwtd2luZHMtc29jaWV0eS1tZW1iZXJzLnNjc3MiLCJzZWN0aW9ucy9oaWxsX3dpbmRzX3NvY2lldHkvX25vZGUtaGlsbC13aW5kcy1zb2NpZXR5LW1lbWJlci5zY3NzIiwic2VjdGlvbnMvX3RyYXZlbC5zY3NzIiwic2VjdGlvbnMvdHJhdmVsL192aWV3LXRyYXZlbC1saXN0LnNjc3MiLCJzZWN0aW9ucy90cmF2ZWwvX25vZGUtdHlwZS10cmF2ZWwtZGF0YS5zY3NzIiwic2VjdGlvbnMvdHJhdmVsL19ibG9jay12aWV3cy10cmF2ZWwtbGlzdC1ibG9jay0xLnNjc3MiLCJfbmF2aWdhdGlvbi5zY3NzIiwibmF2aWdhdGlvbi9fYmxvY2stbWFpbi1uYXYuc2NzcyIsIm5hdmlnYXRpb24vX2Jsb2NrLXNlY29uZGFyeS1uYXYuc2NzcyIsIm5hdmlnYXRpb24vX2Jsb2NrLXN1Yi1uYXYuc2NzcyIsIm5hdmlnYXRpb24vX2Jsb2NrLW1lbnUtYmxvY2stMi5zY3NzIiwibmF2aWdhdGlvbi9fYnJlYWRjcnVtYi5zY3NzIiwibmF2aWdhdGlvbi9fcGFnZXIuc2NzcyIsIl9yZXZpc2lvbnMuc2NzcyIsIl9pZS5zY3NzIiwiaWUvX2llMTAuc2NzcyIsIl9wcmludC5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vICBBdXRob3I6IERpZ2l0YWwgRWNoaWRuYVxuLy8gIFdpa2k6IGh0dHBzOi8vYml0YnVja2V0Lm9yZy9kaWdpdGFsZWNoaWRuYS9kaWdpdGFsLWVjaGlkbmEtZGVmYXVsdC10aGVtZS12Mi93aWtpL0hvbWVcbi8vICBUcmVsbG8gYm9hcmQ6IGh0dHBzOi8vdHJlbGxvLmNvbS9iLzRNMTlzWVhkL2RpZ2l0YWwtZWNoaWRuYS1kZWZhdWx0LXRoZW1lXG4vLyAgU2xhY2sgY2hhbm5lbDogI2VjaGlkbmEtZGVmYXVsdC10aGVtZVxuXG4vLyAgQFByb2plY3QgU3RydWN0dXJlIE92ZXJ2aWV3XG4vLyAgSW1wb3J0cyBhcmUgc2V0dXAgdG8gaGVscCBjaHVuayBkaWZmZXJlbnQgdHlwZXMgb2Ygc3R5bGVzXG4vLyAgZm9yIHByb2plY3RzIGJ1dCBhbHNvIHJlc2VtYmxlIGEgc2luZ2xlIHN0eWxlc2hlZXQgbGF5ZWRcbi8vICBvdXQgdG8gdGFrZSBhZHZhbnRhZ2Ugb2YgY2FzY2FkZS5cblxuLy8gSWYgYSBzcGVjaWZpYyBpbnN0YWxsIHdpbGwgbm90IGJlXG4vLyB1c2luZyBjZXJ0YWluIGZ1bmN0aW9ubGFpdHkgb3Igc3R5bGVzXG4vLyBlbnN1cmUgdGhhdCB0aGUgcGFydGlhbHMgYXJlIGNvbW1lbnRlZFxuLy8gb3V0IGFuZCBub3QgaW1wb3J0ZWQgT1IgY29kZSBpcyBjb21tZW50ZWRcbi8vIG91dCB3aXRoaW4gaW5kaXZpZHVhbCBmaWxlcy4gVGhpcyB0aGVtZVxuLy8gaGFzIGJlZW4gYnVpbHQgd2l0aCB0aGUgaWRlYSBpbiBtaW5kIHRoYXRcbi8vIGl0ZW1zIGNhbiBiZSByZW1vdmVkIG9yIGFkZGVkIGVmZmljaWVudGx5XG5cbi8vIEBkaWdpdGFsIGVjaGlkbmEgZGVmYXVsdCBkcnVwYWwgdGhlbWUgYmFzZVxuLy8gX3RoZW1lLWluaXQuc2NzcyBjb250YWlucyAzcmQgcGFydHkgaW1wb3J0cywgY3VzdG9tIG1peGlucyBhbmQgc2V0dGluZ3NcbkBpbXBvcnQgJ3RoZW1lLWluaXQnO1xuXG4vLyBAYXV0aG9ycyBkbyBub3QgZWRpdC4gZHJ1cGFsIG92ZXJpZGUgc3R5bGVzIG9mIGV4aXNpdGluZyBjb21wb25lbnRzLlxuLy8gX2RydXBhbC5zY3NzIGNvbnRhaW5zIGVjaGlkbmFzIGRlZmF1bHQgZHJ1cGFsIHN0eWxlIG92ZXJyaWRlcyBhbmQgYmFzZWxpbmVcbi8vIHN0eWxlcyBmb3IgZGVmYXVsdCBDT1JFIGRydXBhbCBmdW5jdGlvbmxhaXR5IGVnLiB3ZWJmb3JtIG92ZXJyaWRlcywgYmFzaWMgc2VhcmNoIHJlc3VsdCBzdHlsZXMuXG5AaW1wb3J0ICdkcnVwYWwnO1xuXG4vLyBAYXV0aG9ycyBkZXNpZ24gc3RydWN0dXJlIHN0eWxlc1xuLy8gX2xheW91dC5zY3NzIGNvbnRhaW5zIHRoZSBkZXNpZ24gc3RydWN0dXJlIHN0eWxlcywgaW5jbHVkaW5nIHJlc3BvbnNpdmVcbi8vIGRlc2lnbiBpbXBsZW1lbnRhdGlvblxuQGltcG9ydCAnbGF5b3V0JztcblxuLy8gQGF1dGhvcnMgZ2VuZXJpYywgdW5kZXJseWluZyBkZXNpZ24gcGF0dGVybnMgZm9yIGNvbXBvbmVudCBzdHlsaW5nXG4vLyBfb2JqZWN0cy5zY3NzIGNvbnRhaW5zIGdlbmVyaWMsIHVuZGVybHlpbmcgZGVzaWduIHBhdHRlcm5zIGFuZCB0aGVpclxuLy8gZXh0ZW5zaW9ucy4gZWcuIGJhc2ljIHN0eWxlcyBmb3IgYWxsIHNpZGViYXIgYmxvY2tzLCBncmlkIG9yIGxpc3QgZGlzcGxheXNcbi8vIG9mIGNvbnRlbnQsIGJ1dHRvbnMgb3IgcmVzcG9uc2l2ZSB0YWJsZXMuIG1heSBhbHNvIGJ1aWxkIHVwb24gc3R5bGVzIHNldFxuLy8gaW4gdGhlIGRydXBhbCBkaXJlY3RvcnlcbkBpbXBvcnQgJ29iamVjdHMnO1xuXG4vLyBAYXV0aG9ycyBzcGVjaWZpYyBjb21wb25lbnQgc3R5bGluZ1xuLy8gX2NvbXBvbmVudHMuc2NzcyBjb250YWlucyBzdHlsZXMgZm9yIGNvbXBvbmVudHMgY29uc3RydWN0ZWQgZnJvbSBvYmplY3RzXG4vLyBhbmQgdGhlaXIgZXh0ZW5zaW9ucywgb3IgZGV0YWlsZWQgcGFnZSBkZXNpZ24uIGVnLiBhIHNpZGViYXIgY2FsbCB0b1xuLy8gYWN0aW9uIHRoYXQgaXMgc3R5bGVkIHNwZWNpZmljYWxseSBmb3IgZXZlbnRzXG5AaW1wb3J0ICdjb21wb25lbnRzJztcblxuLy8gQGF1dGhvcnMgc3BlY2lmaWMgc2VjdGlvbiBzdHlsaW5nXG4vLyBfc2VjdGlvbnMuc2NzcyBjb250YWlucyBzdHlsZXMgZm9yIG1haW4gc2VjdGlvbnMgb2YgYSBzaXRlLCBlZy4gdGhlIG5ld3Mgb3Jcbi8vIGV2ZW50cyBzZWN0aW9uLiBjYW4gY29udGFpbiBzcGVjaWZpYyBjb21wb25lbnRzIHVuaXF1ZSB0byB0aGF0IHNlY3Rpb25cbkBpbXBvcnQgJ3NlY3Rpb25zJztcblxuLy8gQGF1dGhvcnMgbmF2aWdhdGlvbiBzeXN0ZW0gc3R5bGVzXG4vLyBfbmF2aWdhdGlvbi5zY3NzIGNvbnRhaW5zIHN0eWxlcyBmb3IgYWxsIG5hdmlnYXRpb24gc3lzdGVtcy5cbi8vIGVnLiBtYWluIG5hdmlnYXRpb24sIHN1YiBuYXZpZ2F0aW9uLCBwYWdpbmF0aW9uLCBicmVhZGNydW1icywgZm9vdGVyIHNpdGVtYXAgbWVudXNcbkBpbXBvcnQgJ25hdmlnYXRpb24nO1xuXG4vLyBAc3VwcG9ydGluZyBkZXZlbG9wZXIgcmV2aXNpb25zXG4vLyBfcmV2aXNpb25zLnNjc3MgY29udGFpbnMgZW1lcmdlbmN5IHJldmlzaW9ucyBvciBmaXhlcyBmb3IgYVxuLy8gc3VwcG9ydGluZyBkZXZlbG9wZXIgaWYgdGhlIG1haW4gZGV2ZWxvcGVyIGlzIHVuYXZhaWxhYmxlXG5AaW1wb3J0ICdyZXZpc2lvbnMnO1xuXG4vLyBAaW50ZXJuZXQgZXhwbG9yZXIgYnJvd3NlciBmaXhlcyAoY29udGFpbnMgYWxsIGJyb3dzZXIgdmVyc2lvbnMgaW5cbi8vIHBhcnRpYWxzIGxvY2F0ZWQgaW4gdGhlIHNhc3MvaWUgZGlyZWN0b3J5KVxuQGltcG9ydCAnaWUnO1xuXG4vLyBAcHJpbnQgc3R5bGVzXG5AaW1wb3J0ICdwcmludCc7XG5cbi8vIEBiYXNpYyBncmV5c2NhbGUgZGVzaWduIGFuZCBsYXlvdXQgZm9yIGNvbnRlbnQgZW50cnkgcHVycG9zZXMuXG4vLyBjb21tZW50IG91dCBkdXJpbmcgdGhlbWUgZGV2ZWxvcG1lbnRcbi8vIEBpbXBvcnQgJ3dpcmVmcmFtZSc7XG5cbi8vICAgICAgICAgICAgICAgICAgICAgICAgIC5cbi8vICAgICAgICAgICAgICAgICAgICAuX2AtXFwgKVxcLGAtLi0uXG4vLyAgICAgICAgICAgICAgICAgICBcXCdcXGAgXFwpXFwgXFwpXFwgXFx8Lilcbi8vICAgICAgICAgICAgICAgICBcXGApICB8XFwpICApXFwgLilcXCApXFx8XG4vLyAgICAgICAgICAgICAgICAgXFwgXFwpXFwgfClcXCAgYCAgIFxcIC4nKS98XG4vLyAgICAgICAgICAgICAgICBgYC0uXFwgXFwgICAgKVxcIGAgIC4gLiwgJyhcbi8vICAgICAgICAgICAgICAgIFxcXFwgLS4gYClcXGBgLSAuXyAuKWAgfFxcKCxfXG4vLyAgICAgICAgICAgICAgICBgX18gICdcXCBgLS0gIF9cXGAuIGAgICAgKC9cbi8vICAgICAgICAgICAgICAgICAgYFxcLFxcICAgICAgIC5cXFxcICAgICAgICAvXG4vLyAgICAgICAgICAgICAgICAgICAgJ2AgKSAgKGAtLlxcXFwgICAgICAgYFxuLy8gICAgICAgICAgICAgICAgICAgICAgIC98fFxcICAgIGAuICAqIF8qfFxuLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgLS4oIGBcXFxuLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYC4gXFxcbi8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYChjXG4vL1xuIiwiLyogX3RoZW1lLWluaXQuc2NzcyAqL1xuLy8gX3RoZW1lLWluaXQuc2NzcyBjb250YWlucyAzcmQgcGFydHkgaW1wb3J0cywgY3VzdG9tIG1peGlucyBhbmQgc2V0dGluZ3Ncbi8vIGltcG9ydCB0aGlzIGZpbGUgaWYgeW91IG5lZWQgdG8gY3JlYXRlIGFub3RoZXIgc3RhbmRhbG9uZSBzdHlsZXNoZWV0IGZvclxuLy8gZm9yIHRoZSB0aGVtZSBzbyB5b3UgY2FuIHV0aWxpemUgYWxsIHRvb2xzIGFuZCBzZXR0aW5nc1xuXG4vLyBpbXBvcnQgb25jZVxuICAgIC8vIGJveCBzaXppbmdcbiAgICAgICAgQGltcG9ydCAnLi4vYm93ZXJfY29tcG9uZW50cy9pbnVpdC1ib3gtc2l6aW5nL2dlbmVyaWMuYm94LXNpemluZyc7XG4gICAgLy8gbm9ybWFsaXplXG4gICAgICAgIEBpbXBvcnQgJy4uL2Jvd2VyX2NvbXBvbmVudHMvaW51aXQtbm9ybWFsaXplL2dlbmVyaWMubm9ybWFsaXplJztcblxuLy8gaW1wb3J0IGNvbW1vbnNcbiAgICBAaW1wb3J0ICd0aGVtZS1jb21tb25zJztcblxuLy8gQGF1dGhvcnMgdW5jbGFzc2VkIGVsZW1lbnQgc3R5bGVzXG4gICAgLy8gX2VsZW1lbnRzLnNjc3MgY29udGFpbnMgYXV0aG9ycyB1bmNsYXNzZWQgSFRNTCBlbGVtZW50IHN0eWxlcyBzdWNoIGFzIGgxLCBoMiwgdGFibGUsIGV0Y1xuICAgICAgQGltcG9ydCAnZWxlbWVudHMnO1xuIiwiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjQk9YLVNJWklOR1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyoqXG4gKiBTZXQgdGhlIGdsb2JhbCBgYm94LXNpemluZ2Agc3RhdGUgdG8gYGJvcmRlci1ib3hgLlxuICpcbiAqIGNzcy10cmlja3MuY29tL2luaGVyaXRpbmctYm94LXNpemluZy1wcm9iYWJseS1zbGlnaHRseS1iZXR0ZXItYmVzdC1wcmFjdGljZVxuICogcGF1bGlyaXNoLmNvbS8yMDEyL2JveC1zaXppbmctYm9yZGVyLWJveC1mdHdcbiAqL1xuaHRtbCB7XG4gICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbioge1xuXG4gICAgJixcbiAgICAmOmJlZm9yZSxcbiAgICAmOmFmdGVyIHtcbiAgICAgICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBpbmhlcml0O1xuICAgICAgICAgICAtbW96LWJveC1zaXppbmc6IGluaGVyaXQ7XG4gICAgICAgICAgICAgICAgYm94LXNpemluZzogaW5oZXJpdDtcbiAgICAgICAgfVxuXG59XG5cblxuXG5cblxuLy8gSWYgd2UgaGF2ZSBpbmNsdWRlZCB0aGlzIGZpbGUsIHNldCBhIHZhcmlhYmxlIHRvIHRlbGwgdGhlIHJlc3Qgb2YgdGhlXG4vLyBmcmFtZXdvcmsgdGhhdCBnbG9iYWwgYGJveC1zaXppbmc6IGJvcmRlci1ib3hgIGhhcyBiZWVuIHNldC5cbiRpbnVpdC1nbG9iYWwtYm9yZGVyLWJveDogdHJ1ZTtcbiIsIi8qISBub3JtYWxpemUuY3NzIHYzLjAuMyB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cblxuLyoqXG4gKiAxLiBTZXQgZGVmYXVsdCBmb250IGZhbWlseSB0byBzYW5zLXNlcmlmLlxuICogMi4gUHJldmVudCBpT1MgYW5kIElFIHRleHQgc2l6ZSBhZGp1c3QgYWZ0ZXIgZGV2aWNlIG9yaWVudGF0aW9uIGNoYW5nZSxcbiAqICAgIHdpdGhvdXQgZGlzYWJsaW5nIHVzZXIgem9vbS5cbiAqL1xuXG5odG1sIHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7IC8qIDEgKi9cbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIGRlZmF1bHQgbWFyZ2luLlxuICovXG5cbmJvZHkge1xuICBtYXJnaW46IDA7XG59XG5cbi8qIEhUTUw1IGRpc3BsYXkgZGVmaW5pdGlvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGFueSBIVE1MNSBlbGVtZW50IGluIElFIDgvOS5cbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgZGV0YWlsc2Agb3IgYHN1bW1hcnlgIGluIElFIDEwLzExXG4gKiBhbmQgRmlyZWZveC5cbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgbWFpbmAgaW4gSUUgMTEuXG4gKi9cblxuYXJ0aWNsZSxcbmFzaWRlLFxuZGV0YWlscyxcbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5mb290ZXIsXG5oZWFkZXIsXG5oZ3JvdXAsXG5tYWluLFxubWVudSxcbm5hdixcbnNlY3Rpb24sXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCBgaW5saW5lLWJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGluIElFIDgvOS5cbiAqIDIuIE5vcm1hbGl6ZSB2ZXJ0aWNhbCBhbGlnbm1lbnQgb2YgYHByb2dyZXNzYCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAqL1xuXG5hdWRpbyxcbmNhbnZhcyxcbnByb2dyZXNzLFxudmlkZW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IC8qIDEgKi9cbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyAvKiAyICovXG59XG5cbi8qKlxuICogUHJldmVudCBtb2Rlcm4gYnJvd3NlcnMgZnJvbSBkaXNwbGF5aW5nIGBhdWRpb2Agd2l0aG91dCBjb250cm9scy5cbiAqIFJlbW92ZSBleGNlc3MgaGVpZ2h0IGluIGlPUyA1IGRldmljZXMuXG4gKi9cblxuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgYFtoaWRkZW5dYCBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC5cbiAqIEhpZGUgdGhlIGB0ZW1wbGF0ZWAgZWxlbWVudCBpbiBJRSA4LzkvMTAvMTEsIFNhZmFyaSwgYW5kIEZpcmVmb3ggPCAyMi5cbiAqL1xuXG5baGlkZGVuXSxcbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogTGlua3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgY29sb3IgZnJvbSBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gKi9cblxuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4vKipcbiAqIEltcHJvdmUgcmVhZGFiaWxpdHkgb2YgZm9jdXNlZCBlbGVtZW50cyB3aGVuIHRoZXkgYXJlIGFsc28gaW4gYW5cbiAqIGFjdGl2ZS9ob3ZlciBzdGF0ZS5cbiAqL1xuXG5hOmFjdGl2ZSxcbmE6aG92ZXIge1xuICBvdXRsaW5lOiAwO1xufVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLzExLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cblxuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGUgc2V0IHRvIGBib2xkZXJgIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuICovXG5cbmRmbiB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHZhcmlhYmxlIGBoMWAgZm9udC1zaXplIGFuZCBtYXJnaW4gd2l0aGluIGBzZWN0aW9uYCBhbmQgYGFydGljbGVgXG4gKiBjb250ZXh0cyBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cblxuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LlxuICovXG5cbm1hcmsge1xuICBiYWNrZ3JvdW5kOiAjZmYwO1xuICBjb2xvcjogIzAwMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGluY29uc2lzdGVudCBhbmQgdmFyaWFibGUgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xufVxuXG4vKipcbiAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGFmZmVjdGluZyBgbGluZS1oZWlnaHRgIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG4vKiBFbWJlZGRlZCBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSBib3JkZXIgd2hlbiBpbnNpZGUgYGFgIGVsZW1lbnQgaW4gSUUgOC85LzEwLlxuICovXG5cbmltZyB7XG4gIGJvcmRlcjogMDtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IG92ZXJmbG93IG5vdCBoaWRkZW4gaW4gSUUgOS8xMC8xMS5cbiAqL1xuXG5zdmc6bm90KDpyb290KSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkcmVzcyBtYXJnaW4gbm90IHByZXNlbnQgaW4gSUUgOC85IGFuZCBTYWZhcmkuXG4gKi9cblxuZmlndXJlIHtcbiAgbWFyZ2luOiAxZW0gNDBweDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGRpZmZlcmVuY2VzIGJldHdlZW4gRmlyZWZveCBhbmQgb3RoZXIgYnJvd3NlcnMuXG4gKi9cblxuaHIge1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgaGVpZ2h0OiAwO1xufVxuXG4vKipcbiAqIENvbnRhaW4gb3ZlcmZsb3cgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnByZSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgb2RkIGBlbWAtdW5pdCBmb250IHNpemUgcmVuZGVyaW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5jb2RlLFxua2JkLFxucHJlLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgZm9udC1zaXplOiAxZW07XG59XG5cbi8qIEZvcm1zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEtub3duIGxpbWl0YXRpb246IGJ5IGRlZmF1bHQsIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFggYWxsb3cgdmVyeSBsaW1pdGVkXG4gKiBzdHlsaW5nIG9mIGBzZWxlY3RgLCB1bmxlc3MgYSBgYm9yZGVyYCBwcm9wZXJ0eSBpcyBzZXQuXG4gKi9cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGNvbG9yIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4gKiAgICBLbm93biBpc3N1ZTogYWZmZWN0cyBjb2xvciBvZiBkaXNhYmxlZCBlbGVtZW50cy5cbiAqIDIuIENvcnJlY3QgZm9udCBwcm9wZXJ0aWVzIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4gKiAzLiBBZGRyZXNzIG1hcmdpbnMgc2V0IGRpZmZlcmVudGx5IGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBjb2xvcjogaW5oZXJpdDsgLyogMSAqL1xuICBmb250OiBpbmhlcml0OyAvKiAyICovXG4gIG1hcmdpbjogMDsgLyogMyAqL1xufVxuXG4vKipcbiAqIEFkZHJlc3MgYG92ZXJmbG93YCBzZXQgdG8gYGhpZGRlbmAgaW4gSUUgOC85LzEwLzExLlxuICovXG5cbmJ1dHRvbiB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGB0ZXh0LXRyYW5zZm9ybWAgaW5oZXJpdGFuY2UgZm9yIGBidXR0b25gIGFuZCBgc2VsZWN0YC5cbiAqIEFsbCBvdGhlciBmb3JtIGNvbnRyb2wgZWxlbWVudHMgZG8gbm90IGluaGVyaXQgYHRleHQtdHJhbnNmb3JtYCB2YWx1ZXMuXG4gKiBDb3JyZWN0IGBidXR0b25gIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3gsIElFIDgvOS8xMC8xMSwgYW5kIE9wZXJhLlxuICogQ29ycmVjdCBgc2VsZWN0YCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LlxuICovXG5cbmJ1dHRvbixcbnNlbGVjdCB7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vKipcbiAqIDEuIEF2b2lkIHRoZSBXZWJLaXQgYnVnIGluIEFuZHJvaWQgNC4wLiogd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gXG4gKiAgICBhbmQgYHZpZGVvYCBjb250cm9scy5cbiAqIDIuIENvcnJlY3QgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSBgaW5wdXRgIHR5cGVzIGluIGlPUy5cbiAqIDMuIEltcHJvdmUgdXNhYmlsaXR5IGFuZCBjb25zaXN0ZW5jeSBvZiBjdXJzb3Igc3R5bGUgYmV0d2VlbiBpbWFnZS10eXBlXG4gKiAgICBgaW5wdXRgIGFuZCBvdGhlcnMuXG4gKi9cblxuYnV0dG9uLFxuaHRtbCBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLCAvKiAxICovXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0sXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDIgKi9cbiAgY3Vyc29yOiBwb2ludGVyOyAvKiAzICovXG59XG5cbi8qKlxuICogUmUtc2V0IGRlZmF1bHQgY3Vyc29yIGZvciBkaXNhYmxlZCBlbGVtZW50cy5cbiAqL1xuXG5idXR0b25bZGlzYWJsZWRdLFxuaHRtbCBpbnB1dFtkaXNhYmxlZF0ge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi8qKlxuICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIGJvcmRlciBpbiBGaXJlZm94IDQrLlxuICovXG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbmlucHV0OjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgRmlyZWZveCA0KyBzZXR0aW5nIGBsaW5lLWhlaWdodGAgb24gYGlucHV0YCB1c2luZyBgIWltcG9ydGFudGAgaW5cbiAqIHRoZSBVQSBzdHlsZXNoZWV0LlxuICovXG5cbmlucHV0IHtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cblxuLyoqXG4gKiBJdCdzIHJlY29tbWVuZGVkIHRoYXQgeW91IGRvbid0IGF0dGVtcHQgdG8gc3R5bGUgdGhlc2UgZWxlbWVudHMuXG4gKiBGaXJlZm94J3MgaW1wbGVtZW50YXRpb24gZG9lc24ndCByZXNwZWN0IGJveC1zaXppbmcsIHBhZGRpbmcsIG9yIHdpZHRoLlxuICpcbiAqIDEuIEFkZHJlc3MgYm94IHNpemluZyBzZXQgdG8gYGNvbnRlbnQtYm94YCBpbiBJRSA4LzkvMTAuXG4gKiAyLiBSZW1vdmUgZXhjZXNzIHBhZGRpbmcgaW4gSUUgOC85LzEwLlxuICovXG5cbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbmlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIEZpeCB0aGUgY3Vyc29yIHN0eWxlIGZvciBDaHJvbWUncyBpbmNyZW1lbnQvZGVjcmVtZW50IGJ1dHRvbnMuIEZvciBjZXJ0YWluXG4gKiBgZm9udC1zaXplYCB2YWx1ZXMgb2YgdGhlIGBpbnB1dGAsIGl0IGNhdXNlcyB0aGUgY3Vyc29yIHN0eWxlIG9mIHRoZVxuICogZGVjcmVtZW50IGJ1dHRvbiB0byBjaGFuZ2UgZnJvbSBgZGVmYXVsdGAgdG8gYHRleHRgLlxuICovXG5cbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIEFkZHJlc3MgYGFwcGVhcmFuY2VgIHNldCB0byBgc2VhcmNoZmllbGRgIGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuICogMi4gQWRkcmVzcyBgYm94LXNpemluZ2Agc2V0IHRvIGBib3JkZXItYm94YCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAqL1xuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8qIDEgKi9cbiAgYm94LXNpemluZzogY29udGVudC1ib3g7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgc2VhcmNoIGNhbmNlbCBidXR0b24gaW4gU2FmYXJpIGFuZCBDaHJvbWUgb24gT1MgWC5cbiAqIFNhZmFyaSAoYnV0IG5vdCBDaHJvbWUpIGNsaXBzIHRoZSBjYW5jZWwgYnV0dG9uIHdoZW4gdGhlIHNlYXJjaCBpbnB1dCBoYXNcbiAqIHBhZGRpbmcgKGFuZCBgdGV4dGZpZWxkYCBhcHBlYXJhbmNlKS5cbiAqL1xuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLyoqXG4gKiBEZWZpbmUgY29uc2lzdGVudCBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcuXG4gKi9cblxuZmllbGRzZXQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICBtYXJnaW46IDAgMnB4O1xuICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCBgY29sb3JgIG5vdCBiZWluZyBpbmhlcml0ZWQgaW4gSUUgOC85LzEwLzExLlxuICogMi4gUmVtb3ZlIHBhZGRpbmcgc28gcGVvcGxlIGFyZW4ndCBjYXVnaHQgb3V0IGlmIHRoZXkgemVybyBvdXQgZmllbGRzZXRzLlxuICovXG5cbmxlZ2VuZCB7XG4gIGJvcmRlcjogMDsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDgvOS8xMC8xMS5cbiAqL1xuXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiAqIERvbid0IGluaGVyaXQgdGhlIGBmb250LXdlaWdodGAgKGFwcGxpZWQgYnkgYSBydWxlIGFib3ZlKS5cbiAqIE5PVEU6IHRoZSBkZWZhdWx0IGNhbm5vdCBzYWZlbHkgYmUgY2hhbmdlZCBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYLlxuICovXG5cbm9wdGdyb3VwIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8qIFRhYmxlc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgbW9zdCBzcGFjaW5nIGJldHdlZW4gdGFibGUgY2VsbHMuXG4gKi9cblxudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDtcbn1cblxudGQsXG50aCB7XG4gIHBhZGRpbmc6IDA7XG59XG4iLCIvKiBfdGhlbWUtY29tbW9ucy5zY3NzICovXG4vLyBib3dlciBjb21wb25lbnRzXG4gIEBpbXBvcnQgJy4uL2Jvd2VyX2NvbXBvbmVudHMvc2Fzcy10b29sa2l0L3N0eWxlc2hlZXRzL3Rvb2xraXQnO1xuICBAaW1wb3J0ICcuLi9ib3dlcl9jb21wb25lbnRzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50JztcbiAgQGltcG9ydCAnLi4vYm93ZXJfY29tcG9uZW50cy9zaW5ndWxhcml0eS9zdHlsZXNoZWV0cy9zaW5ndWxhcml0eWdzJztcbiAgQGltcG9ydCAnLi4vYm93ZXJfY29tcG9uZW50cy9tb2R1bGFyLXNjYWxlL3N0eWxlc2hlZXRzL21vZHVsYXItc2NhbGUnO1xuXG4vLyBzZXR0aW5nc1xuICBAaW1wb3J0ICdfc2V0dGluZ3MvaW5kZXgnO1xuXG4vLyBtaXhpbnNcbiAgQGltcG9ydCAnX21peGlucy9pbmRleCc7XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFRvb2xraXQgU2V0dGluZ3Ncbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCBcInRvb2xraXQvc2V0dGluZ3NcIjtcbkBpbXBvcnQgXCJ0b29sa2l0L3BsYWNlaG9sZGVyc1wiO1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEltcG9ydHNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCBcInRvb2xraXQvY2xlYXJmaXhcIjtcbkBpbXBvcnQgXCJ0b29sa2l0L2NvbG9yc1wiO1xuQGltcG9ydCBcInRvb2xraXQvZm9udHNcIjtcbkBpbXBvcnQgXCJ0b29sa2l0L2ludHJpbnNpYy1yYXRpb1wiO1xuQGltcG9ydCBcInRvb2xraXQvbmVzdGVkLWNvbnRleHRcIjtcbkBpbXBvcnQgXCJ0b29sa2l0L3BhcmFsbGF4XCI7XG5AaW1wb3J0IFwidG9vbGtpdC9ydGxcIjtcbkBpbXBvcnQgXCJ0b29sa2l0L3RhcmdldFwiO1xuQGltcG9ydCBcInRvb2xraXQvdHJpYW5nbGVcIjtcbkBpbXBvcnQgXCJ0b29sa2l0L2NlbnRlclwiO1xuQGltcG9ydCBcInRvb2xraXQvdmlld3BvcnRcIjtcbkBpbXBvcnQgXCJ0b29sa2l0L3VuZGVybGluZVwiO1xuQGltcG9ydCBcInRvb2xraXQvYXJ0XCI7IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBUb29sa2l0IFNldHRpbmdzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRUb29sa2l0LVNldHRpbmdzOiAoXG4gICdjbGVhcmZpeCBleHRlbmQnOiBmYWxzZSxcbiAgJ2NvbG9yIHN0YWNrIGFtb3VudHMnOiAyNSUgNTAlIDc1JSA4NSUgOTAlLFxuICAndGludCBzaGFkZSBhbW91bnRzJzogNzUlIDUwJSAyNSUsXG4gICd0aW50IGNvbG9yJzogI2ZmZixcbiAgJ3NoYWRlIGNvbG9yJzogIzAwMCxcbiAgJ2NvbG9yIHNjYWxlIHN0ZXBzJzogNixcbiAgJ2xpZ2F0dXJlIGV4dGVuZCc6IGZhbHNlLFxuICAnZm9udCBmYWNlIHdlaWdodCc6IG5vcm1hbCxcbiAgJ2ZvbnQgZmFjZSBzdHlsZSc6IG5vcm1hbCxcbiAgJ2ZvbnQgZmFjZSBpbmxpbmUgd29mZic6IGZhbHNlLFxuICAnaWNvbiBmb250IGV4dGVuZCc6IGZhbHNlLFxuICAnaWNvbiBmb250IHNwZWFrJzogZmFsc2UsXG4gICdmYWRlIGluIGR1cmF0aW9uJzogMXMsXG4gICdmYWRlIGluIGxvYWRpbmcgY2xhc3MnOiAnLndmLWxvYWRpbmcnLFxuICAnZmFkZSBpbiBleHRlbmQnOiBmYWxzZSxcbiAgJ2ludHJpbnNpYyByYXRpbyc6IDE2LzksXG4gICdpbnRyaW5zaWMgcmF0aW8gd2lkdGgnOiAxMDAlLFxuICAnaW50cmluc2ljIHJhdGlvIGVsZW1lbnRzJzogJz4gKicsXG4gICdpbnRyaW5zaWMgcmF0aW8gcG9zaXRpb24nOiB0b3AsXG4gICdpbnRyaW5zaWMgcmF0aW8gZXh0ZW5kJzogZmFsc2UsXG4gICduZXN0ZWQgY29udGV4dCBjb250ZXh0cyc6IDEwMCUsXG4gICduZXN0ZWQgY29udGV4dCBwb3NpdGlvbic6IGxlZnQsXG4gICd0cmlhbmdsZSBjb2xvcic6ICMwMDAsXG4gICd0cmlhbmdsZSBoZWlnaHQnOiAxZW0sXG4gICd0cmlhbmdsZSB3aWR0aCc6IDFlbSxcbiAgJ3RyaWFuZ2xlIGFuZ2xlJzogMCxcbiAgJ3BhcmFsbGF4IHBlcnNwZWN0aXZlJzogMSxcbiAgJ3BhcmFsbGF4IGVsZW1lbnQnOiAnYm9keScsXG4gICdwYXJhbGxheCBpb3MnOiB0cnVlLFxuICAncGFyYWxsYXggZGlzdGFuY2UnOiAwLFxuICAndmVydGljYWwgbWlkcG9pbnQnOiA1MCUsXG4gICd2ZXJ0aWNhbCBleHRlbmQnOiBmYWxzZSxcbiAgJ2hvcml6b250YWwgbWlkcG9pbnQnOiAwJSxcbiAgJ2hvcml6b250YWwgZml4ZWQgbWlkcG9pbnQnOiA1MCUsXG4gICdob3Jpem9udGFsIGZpeGVkJzogZmFsc2UsXG4gICdob3Jpem9udGFsIGV4dGVuZCc6IGZhbHNlLFxuICAnYWJzb2x1dGUgY2VudGVyIHZlcnRpY2FsIG1pZHBvaW50JzogNTAlLFxuICAnYWJzb2x1dGUgY2VudGVyIGhvcml6b250YWwgbWlkcG9pbnQnOiAwJSxcbiAgJ2Fic29sdXRlIGNlbnRlciBmaXhlZCBob3Jpem9udGFsIG1pZHBvaW50JzogNTAlLFxuICAnYWJzb2x1dGUgY2VudGVyIGZpeGVkJzogZmFsc2UsXG4gICdhYnNvbHV0ZSBjZW50ZXIgZXh0ZW5kJzogZmFsc2UsXG4gICd1bmRlcmxpbmUgYmFja2dyb3VuZCc6ICNmZmYsXG4gICd1bmRlcmxpbmUgY29sb3InOiAjMDBlLFxuICAndW5kZXJsaW5lIGNsZWFyIGRlc2NlbmRlcnMnOiB0cnVlLFxuICAndW5kZXJsaW5lIGRpc3RhbmNlJzogMSxcbiAgJ3VuZGVybGluZSB3aWR0aCc6IDIsXG4gICd1bmRlcmxpbmUgZXh0ZW5kJzogZmFsc2UsXG4gICdhcnQgcGl4ZWwgc2l6ZSc6IDFweCxcbiAgJ2FydCBjb2xvcic6IGJsYWNrLFxuICAnYXJ0IGJvcmRlciByYWRpdXMnOiAwJVxuKTtcblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBOZXcgU2V0dGluZ3MgbW9kdWxlXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEdsb2JhbFxuJEdsb2JhbFNldHRpbmdzOiAkVG9vbGtpdC1TZXR0aW5ncyAhZGVmYXVsdDtcbi8vIFVzZXJcbiRVc2VyU2V0dGluZ3M6ICgpICFkZWZhdWx0O1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFVzZXIgU2V0dGluZyBFeGlzdHNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIHVzZXItc2V0dGluZy1leGlzdHMoJHNldHRpbmcpIHtcbiAgQGlmIG1hcC1oYXMta2V5KCRVc2VyU2V0dGluZ3MsICRzZXR0aW5nKSB7XG4gICAgQHJldHVybiB0cnVlO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbkBmdW5jdGlvbiB1c2VyLXNldHRpbmctZXhpc3RzLW11bHRpcGxlKCRzZXR0aW5ncy4uLikge1xuICAkUmV0dXJuOiAoKTtcbiAgQGVhY2ggJHNldHRpbmcgaW4gJHNldHRpbmdzIHtcbiAgICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgKCRzZXR0aW5nOiB1c2VyLXNldHRpbmctZXhpc3RzKCRzZXR0aW5nKSkpO1xuICB9XG4gIEByZXR1cm4gJFJldHVybjtcbn1cblxuLy8gVG9vbGtpdCBWZXJzaW9uXG5AZnVuY3Rpb24gdG9vbGtpdC1oYXMoJHNldHRpbmcpIHtcbiAgQHJldHVybiB1c2VyLXNldHRpbmctZXhpc3RzKCRzZXR0aW5nKTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBTZXR0aW5nIEdldFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gc2V0dGluZy1nZXQoJHNldHRpbmcpIHtcbiAgQGlmIHVzZXItc2V0dGluZy1leGlzdHMoJHNldHRpbmcpIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJFVzZXJTZXR0aW5ncywgJHNldHRpbmcpO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJEdsb2JhbFNldHRpbmdzLCAkc2V0dGluZyk7XG4gIH1cbn1cblxuQGZ1bmN0aW9uIHNldHRpbmctZ2V0LW11bHRpcGxlKCRzZXR0aW5ncy4uLikge1xuICAkdmFsdWVzOiAoKTtcbiAgQGVhY2ggJHNldHRpbmcgaW4gJHNldHRpbmdzIHtcbiAgICAkdmFsdWVzOiBtYXAtbWVyZ2UoJHZhbHVlcywgKCRzZXR0aW5nOiBzZXR0aW5nLWdldCgkc2V0dGluZykpKTtcbiAgfVxuICBAcmV0dXJuICR2YWx1ZXM7XG59XG5cbi8vIFRvb2xraXQgVmVyc2lvblxuQGZ1bmN0aW9uIHRvb2xraXQtZ2V0KCRzZXR0aW5nKSB7XG4gIEByZXR1cm4gc2V0dGluZy1nZXQoJHNldHRpbmcpO1xufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gU2V0dGluZ3MgU2V0XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBzZXR0aW5nLXNldCgkc2V0dGluZywgJHZhbHVlKSB7XG4gICRVc2VyU2V0dGluZ3M6IG1hcC1tZXJnZSgkVXNlclNldHRpbmdzLCAoJHNldHRpbmc6ICR2YWx1ZSkpICFnbG9iYWw7XG4gIEByZXR1cm4gdHJ1ZTtcbn1cblxuQGZ1bmN0aW9uIHNldHRpbmctc2V0LW11bHRpcGxlKCRzZXR0aW5ncykge1xuICAkVXNlclNldHRpbmdzOiBtYXAtbWVyZ2UoJFVzZXJTZXR0aW5ncywgJHNldHRpbmdzKSAhZ2xvYmFsO1xuICBAcmV0dXJuIHRydWU7XG59XG5cbkBtaXhpbiBzZXR0aW5nLXNldCgkc2V0dGluZywgJHZhbHVlKSB7XG4gICRzZXR0aW5nLXNldHRlcjogc2V0dGluZy1zZXQoJHNldHRpbmcsICR2YWx1ZSkgIWdsb2JhbDtcbn1cblxuQG1peGluIHNldHRpbmctY2hhbmdlKCRzZXR0aW5nLCAkdmFsdWUpIHtcbiAgQGluY2x1ZGUgc2V0dGluZy1zZXQoJHNldHRpbmcsICR2YWx1ZSk7XG59XG5cbkBtaXhpbiBzZXR0aW5nLXNldC1tdWx0aXBsZSgkc2V0dGluZ3MpIHtcbiAgJHNldHRpbmctc2V0dGVyOiBzZXR0aW5nLXNldC1tdWx0aXBsZSgkc2V0dGluZ3MpICFnbG9iYWw7XG59XG5cbkBtaXhpbiBzZXR0aW5nLWNoYW5nZS1tdWx0aXBsZSgkc2V0dGluZ3MpIHtcbiAgQGluY2x1ZGUgc2V0dGluZy1zZXQtbXVsdGlwbGUoJHNldHRpbmdzKTtcbn1cblxuLy8gVG9vbGtpdCBWZXJzaW9uXG5AZnVuY3Rpb24gdG9vbGtpdC1zZXQoJHNldHRpbmcsICR2YWx1ZSkge1xuICBAcmV0dXJuIHNldHRpbmctc2V0KCRzZXR0aW5nLCAkdmFsdWUpO1xufVxuXG5AbWl4aW4gdG9vbGtpdC1jaGFuZ2UoJHNldHRpbmcsICR2YWx1ZSkge1xuICBAaW5jbHVkZSBzZXR0aW5nLXNldCgkc2V0dGluZywgJHZhbHVlKTtcbn1cblxuQG1peGluIHRvb2xraXQtc2V0KCRzZXR0aW5nLCAkdmFsdWUpIHtcbiAgQGluY2x1ZGUgc2V0dGluZy1zZXQoJHNldHRpbmcsICR2YWx1ZSk7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUmVtb3ZlIFNldHRpbmdcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIHNldHRpbmctY2xlYXIoJHNldHRpbmcpIHtcbiAgJFJldHVybjogKCk7XG5cbiAgQGVhY2ggJEtleSwgJFZhbHVlIGluICRVc2VyU2V0dGluZ3Mge1xuICAgICRSZXR1cm46IGlmKCRzZXR0aW5nID09ICRLZXksICRSZXR1cm4sIG1hcC1tZXJnZSgkUmV0dXJuLCAoJEtleTogJFZhbHVlKSkpO1xuICB9XG5cbiAgJFVzZXJTZXR0aW5nczogJFJldHVybiAhZ2xvYmFsO1xuICBAcmV0dXJuIHRydWU7XG59XG5cbkBmdW5jdGlvbiBzZXR0aW5nLWNsZWFyLW11bHRpcGxlKCRzZXR0aW5ncy4uLikge1xuICBAZWFjaCAkc2V0dGluZyBpbiAkc2V0dGluZ3Mge1xuICAgICRjbGVhci10aGUtc2V0dGluZ3M6IHNldHRpbmctY2xlYXIoJHNldHRpbmcpO1xuICB9XG4gIEByZXR1cm4gdHJ1ZTtcbn1cblxuQGZ1bmN0aW9uIHNldHRpbmctcmVzZXQoKSB7XG4gICRVc2VyU2V0dGluZ3M6ICgpICFnbG9iYWw7XG4gIEByZXR1cm4gdHJ1ZTtcbn1cblxuQG1peGluIHNldHRpbmctY2xlYXIoJHNldHRpbmcpIHtcbiAgJHNldHRpbmctY2xlYXJlcjogc2V0dGluZy1jbGVhcigkc2V0dGluZyk7XG59XG5cbkBtaXhpbiBzZXR0aW5nLWNsZWFyLW11bHRpcGxlKCRzZXR0aW5ncy4uLikge1xuICAkc2V0dGluZy1jbGVhcmVyOiBzZXR0aW5nLWNsZWFyLW11bHRpcGxlKCRzZXR0aW5ncyk7XG59XG5cbkBtaXhpbiBzZXR0aW5nLXJlc2V0KCkge1xuICAkc2V0dGluZy1jbGVhcmVyOiBzZXR0aW5nLXJlc2V0KCk7XG59XG5cbi8vIFRvb2xraXQgVmVyc2lvblxuQGZ1bmN0aW9uIHRvb2xraXQtcmVzZXQoJHNldHRpbmcpIHtcbiAgQHJldHVybiBzZXR0aW5nLWNsZWFyKCRzZXR0aW5nKTtcbn1cblxuQG1peGluIHRvb2xraXQtcmVzZXQoJHNldHRpbmcpIHtcbiAgQGluY2x1ZGUgc2V0dGluZy1jbGVhcigkc2V0dGluZyk7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gU2V0dGluZyBQaWNrXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBzZXR0aW5nLXBpY2soJHNldHRpbmcsICRpbnB1dCkge1xuICBAcmV0dXJuIGlmKCRpbnB1dCAhPSBudWxsLCAkaW5wdXQsIHNldHRpbmctZ2V0KCRzZXR0aW5nKSk7XG59XG5cbkBmdW5jdGlvbiBzZXR0aW5nLXBpY2stbXVsdGlwbGUoJHNldHRpbmdzKSB7XG4gICRSZXR1cm46ICgpO1xuICBAZWFjaCAkc2V0dGluZywgJGlucHV0IGluICRzZXR0aW5ncyB7XG4gICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICgkc2V0dGluZzogc2V0dGluZy1waWNrKCRpbnB1dCwgJHNldHRpbmcpKSk7XG4gIH1cblxuICBAcmV0dXJuICRSZXR1cm47XG59IiwiJFByaXZhdGUtVG9vbGtpdC1QbGFjZWhvbGRlcnM6IChcbik7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUGxhY2Vob2xkZXIgR2V0L1NldFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gdG9vbGtpdC1wbGFjZWhvbGRlci1zZXQoJGlkKSB7XG4gICR1bmlxdWUtaWQ6IHVuaXF1ZS1pZCgpO1xuICAkUHJpdmF0ZS1Ub29sa2l0LVBsYWNlaG9sZGVyczogbWFwLW1lcmdlKCRQcml2YXRlLVRvb2xraXQtUGxhY2Vob2xkZXJzLCAoJGlkOiAkdW5pcXVlLWlkKSkgIWdsb2JhbDtcbiAgQHJldHVybiAkdW5pcXVlLWlkO1xufVxuXG5AZnVuY3Rpb24gdG9vbGtpdC1wbGFjZWhvbGRlci1nZXQoJGlkKSB7XG4gIEByZXR1cm4gbWFwLWdldCgkUHJpdmF0ZS1Ub29sa2l0LVBsYWNlaG9sZGVycywgJGlkKTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBHZW5lcmF0ZSBQbGFjZWhvbGRlciBDbGFzcyBhbmQgRXh0ZW5kXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBtaXhpbiBkeW5hbWljLWV4dGVuZCgkaWQpIHtcbiAgJHBsYWNlaG9sZGVyLWlkOiB0b29sa2l0LXBsYWNlaG9sZGVyLWdldCgkaWQpO1xuXG4gIEBpZiAkcGxhY2Vob2xkZXItaWQgPT0gbnVsbCB7XG4gICAgJHBsYWNlaG9sZGVyLWlkOiB0b29sa2l0LXBsYWNlaG9sZGVyLXNldCgkaWQpO1xuICAgIEBhdC1yb290ICUjeyRwbGFjZWhvbGRlci1pZH0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG4gIEBleHRlbmQgJSN7JHBsYWNlaG9sZGVyLWlkfTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBTdGF0aWMgTWl4aW4gSGVscGVyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBtaXhpbiBtaXhpbi1kcnllcigkaWQsICRleHRlbmQ6IHRydWUpIHtcbiAgQGlmICRleHRlbmQgPT0gdHJ1ZSB7XG4gICAgQGluY2x1ZGUgZHluYW1pYy1leHRlbmQoJGlkKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG59XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIE1vZGVybiBDbGVhcmZpeCBNaXhpblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AbWl4aW4gY2xlYXJmaXgoJGV4dGVuZDogbnVsbCkge1xuICAkZXh0ZW5kOiBpZigkZXh0ZW5kICE9IG51bGwsICRleHRlbmQsIHRvb2xraXQtZ2V0KCdjbGVhcmZpeCBleHRlbmQnKSk7XG5cbiAgQGlmICRleHRlbmQgPT0gdHJ1ZSB7XG4gICAgQGluY2x1ZGUgZHluYW1pYy1leHRlbmQoJ2NsZWFyZml4Jykge1xuICAgICAgQGluY2x1ZGUgY2xlYXJmaXgoZmFsc2UpO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgJjphZnRlciB7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICBjbGVhcjogYm90aDtcbiAgICB9XG4gIH1cbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIENvbXBhc3MgRXh0ZW5zaW9uIEltcG9ydHNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFRpbnQgYW5kIFNoYWRlXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiB0aW50KCRjb2xvciwgJGFtb3VudCkge1xuICBAcmV0dXJuIG1peCh0b29sa2l0LWdldCgndGludCBjb2xvcicpLCAkY29sb3IsICRhbW91bnQpO1xufVxuXG5AZnVuY3Rpb24gc2hhZGUoJGNvbG9yLCAkYW1vdW50KSB7XG4gIEByZXR1cm4gbWl4KHRvb2xraXQtZ2V0KCdzaGFkZSBjb2xvcicpLCAkY29sb3IsICRhbW91bnQpO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEx1bWFcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGx1bWEoJGNvbG9yKSB7XG4gIEByZXR1cm4gKHJlZCgkY29sb3IpICogLjI5OSkgKyAoZ3JlZW4oJGNvbG9yKSAqIC41ODcpICsgKGJsdWUoJGNvbG9yKSAqIC4xMTQpO1xufVxuXG5AZnVuY3Rpb24gbHVtYS1ndGUoJGNvbG9yMSwgJGNvbG9yMikge1xuICBAaWYgbHVtYSgkY29sb3IxKSA+PSBsdW1hKCRjb2xvcjIpIHtcbiAgICBAcmV0dXJuIHRydWU7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuQGZ1bmN0aW9uIGx1bWEtbHRlKCRjb2xvcjEsICRjb2xvcjIpIHtcbiAgQGlmIGx1bWEoJGNvbG9yMSkgPD0gbHVtYSgkY29sb3IyKSB7XG4gICAgQHJldHVybiB0cnVlO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbkBmdW5jdGlvbiBsdW1hLWRpZmYoJGNvbG9yMSwgJGNvbG9yMikge1xuICBAcmV0dXJuIGx1bWEoJGNvbG9yMSkgLSBsdW1hKCRjb2xvcjIpO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIENvbG9yIFN0YWNrc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gY29sb3Itc3RhY2soJG1haW4sICRzZWNvbmRhcnksICRhbW91bnRzLi4uKSB7XG4gIEBpZiBsZW5ndGgoJGFtb3VudHMpID09IDAge1xuICAgICRhbW91bnRzOiB0b29sa2l0LWdldCgnY29sb3Igc3RhY2sgYW1vdW50cycpO1xuICB9XG4gIEBlbHNlIGlmIGxlbmd0aCgkYW1vdW50cykgPT0gMSB7XG4gICAgJGFtb3VudHM6IG50aCgkYW1vdW50cywgMSk7XG4gIH1cblxuICAkc3RhY2s6ICRtYWluO1xuXG4gIEBlYWNoICRhbW91bnQgaW4gJGFtb3VudHMge1xuICAgICRzdGFjazogam9pbigkc3RhY2ssIG1peCgkc2Vjb25kYXJ5LCBudGgoJHN0YWNrLCAxKSwgJGFtb3VudCkpO1xuICB9XG5cbiAgQHJldHVybiAkc3RhY2s7XG59XG5cbi8vIFRpbnQgU3RhY2tcbkBmdW5jdGlvbiB0aW50LXN0YWNrKCRjb2xvciwgJGFtb3VudHMuLi4pIHtcbiAgQGlmIGxlbmd0aCgkYW1vdW50cykgPiAwIHtcbiAgICBAcmV0dXJuIGNvbG9yLXN0YWNrKCRjb2xvciwgdG9vbGtpdC1nZXQoJ3RpbnQgY29sb3InKSwgJGFtb3VudHMpO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIGNvbG9yLXN0YWNrKCRjb2xvciwgdG9vbGtpdC1nZXQoJ3RpbnQgY29sb3InKSk7XG4gIH1cbn1cblxuLy8gU2hhZGUgU3RhY2tcbkBmdW5jdGlvbiBzaGFkZS1zdGFjaygkY29sb3IsICRhbW91bnRzLi4uKSB7XG4gIEBpZiBsZW5ndGgoJGFtb3VudHMpID4gMCB7XG4gICAgQHJldHVybiBjb2xvci1zdGFjaygkY29sb3IsIHRvb2xraXQtZ2V0KCdzaGFkZSBjb2xvcicpLCAkYW1vdW50cyk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gY29sb3Itc3RhY2soJGNvbG9yLCB0b29sa2l0LWdldCgnc2hhZGUgY29sb3InKSk7XG4gIH1cbn1cblxuLy8gVGludC9TaGFkZSBTdGFja1xuQGZ1bmN0aW9uIHRpbnQtc2hhZGUtc3RhY2soJGNvbG9yLCAkYW1vdW50cy4uLikge1xuICAkY29sb3JzOiAoKTtcbiAgQGlmIGxlbmd0aCgkYW1vdW50cykgPT0gMCB7XG4gICAgJGFtb3VudHM6IHRvb2xraXQtZ2V0KCd0aW50IHNoYWRlIGFtb3VudHMnKTtcbiAgfVxuICAkbGVuZ3RoOiBsZW5ndGgoJGFtb3VudHMpO1xuXG4gIC8vIFNoYWRlc1xuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICRjb2xvcnM6IGFwcGVuZCgkY29sb3JzLCBzaGFkZSgkY29sb3IsIG50aCgkYW1vdW50cywgJGkpKSk7XG4gIH1cblxuICAvLyBCYXNlXG4gICRjb2xvcnM6IGFwcGVuZCgkY29sb3JzLCAkY29sb3IpO1xuXG4gIC8vIFRpbnRzXG4gIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggJGxlbmd0aCAtIDEge1xuICAgICRjb2xvcnM6IGFwcGVuZCgkY29sb3JzLCB0aW50KCRjb2xvciwgbnRoKCRhbW91bnRzLCAkbGVuZ3RoIC0gJGkpKSk7XG4gIH1cblxuICBAcmV0dXJuICRjb2xvcnM7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQ29sb3IgU2NhbGVzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBjb2xvci1zY2FsZSgkbWFpbiwgJHNlY29uZGFyeSwgJHN0ZXBzOiBudWxsKSB7XG4gICRzdGVwczogaWYoJHN0ZXBzICE9IG51bGwsICRzdGVwcywgdG9vbGtpdC1nZXQoJ2NvbG9yIHNjYWxlIHN0ZXBzJykpO1xuXG4gICRsaXN0OiAkbWFpbjtcblxuICAkcmVkMTogcmVkKCRtYWluKTtcbiAgJHJlZDI6IHJlZCgkc2Vjb25kYXJ5KTtcbiAgJHJlZC1kaWZmOiAoKCRyZWQxIC0gJHJlZDIpIC8gKCgkc3RlcHMgLSAxKSkpO1xuXG4gICRodWUxOiBodWUoJG1haW4pO1xuICAkaHVlMjogaHVlKCRzZWNvbmRhcnkpO1xuICBAaWYgKCRodWUyICsgMzU5IC0gJGh1ZTEpIDwgYWJzKCRodWUxIC0gJGh1ZTIpIHtcbiAgICAkaHVlMjogJGh1ZTIgKyAzNTk7XG4gIH1cbiAgJGh1ZS1kaWZmOiAoJGh1ZTIgLSAkaHVlMSkgLyAoJHN0ZXBzIC0gMSk7XG5cbiAgJHNhdDE6IHNhdHVyYXRpb24oJG1haW4pO1xuICAkc2F0Mjogc2F0dXJhdGlvbigkc2Vjb25kYXJ5KTtcbiAgJHNhdC1kaWZmOiAwO1xuICBAaWYgJHNhdDEgPiAkc2F0MiB7XG4gICAgJHNhdC1kaWZmOiAoJHNhdDIgLSAkc2F0MSkgLyAoJHN0ZXBzIC0gMSk7XG4gIH1cbiAgQGVsc2Uge1xuICAgICRzYXQtZGlmZjogKCRzYXQxIC0gJHNhdDIpIC8gKCRzdGVwcyAtIDEpO1xuICB9XG5cbiAgJGx0ZTE6IGxpZ2h0bmVzcygkbWFpbik7XG4gICRsdGUyOiBsaWdodG5lc3MoJHNlY29uZGFyeSk7XG4gICRsdGUtZGlmZjogMDtcbiAgQGlmICRsdGUxID4gJGx0ZTIge1xuICAgICRsdGUtZGlmZjogKCRsdGUyIC0gJGx0ZTEpIC8gKCRzdGVwcyAtIDEpO1xuICB9XG4gIEBlbHNlIHtcbiAgICAkbHRlLWRpZmY6ICgkbHRlMSAtICRsdGUyKSAvICgkc3RlcHMgLSAxKTtcbiAgfVxuXG4gICRhbHAxOiBhbHBoYSgkbWFpbik7XG4gICRhbHAyOiBhbHBoYSgkc2Vjb25kYXJ5KTtcbiAgJGFscC1kaWZmOiAwO1xuICBAaWYgJGFscDEgPiAkYWxwMiB7XG4gICAgJGFscC1kaWZmOiAoJGFscDIgLSAkYWxwMSkgLyAoJHN0ZXBzIC0gMSk7XG4gIH1cbiAgQGVsc2Uge1xuICAgICRhbHAtZGlmZjogKCRhbHAxIC0gJGFscDIpIC8gKCRzdGVwcyAtIDEpO1xuICB9XG5cbiAgJGh1ZS1ob2xkOiAkaHVlMTtcbiAgJHNhdC1ob2xkOiAkc2F0MTtcbiAgJGx0ZS1ob2xkOiAkbHRlMTtcbiAgJGFscC1ob2xkOiAkYWxwMTtcbiAgJGNvbG9yLWhvbGQ6IDA7XG5cbiAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkc3RlcHMge1xuICAgICRodWUtaG9sZDogJGh1ZS1ob2xkICsgJGh1ZS1kaWZmO1xuICAgICRzYXQtaG9sZDogJHNhdC1ob2xkICsgJHNhdC1kaWZmO1xuICAgICRsdGUtaG9sZDogJGx0ZS1ob2xkICsgJGx0ZS1kaWZmO1xuICAgICRhbHAtaG9sZDogJGFscC1ob2xkICsgJGFscC1kaWZmO1xuXG4gICAgJGNvbG9yLWhvbGQ6IGhzbGEoJGh1ZS1ob2xkLCAkc2F0LWhvbGQsICRsdGUtaG9sZCwgJGFscC1ob2xkKTtcbiAgICAkbGlzdDogYXBwZW5kKCRsaXN0LCAkY29sb3ItaG9sZCk7XG4gIH1cblxuICBAcmV0dXJuICRsaXN0O1xufVxuXG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEVuYWJsZSBsaWdhdHVyZXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQG1peGluIGVuYWJsZS1saWdhdHVyZXMoJGV4dGVuZDogbnVsbCkge1xuICAkZXh0ZW5kOiBpZigkZXh0ZW5kICE9IG51bGwsICRleHRlbmQsIHRvb2xraXQtZ2V0KCdsaWdhdHVyZSBleHRlbmQnKSk7XG5cbiAgQGlmICRleHRlbmQge1xuICAgIEBpbmNsdWRlIGR5bmFtaWMtZXh0ZW5kKCdlbmFibGUgbGlnYXR1cmVzJykge1xuICAgICAgQGluY2x1ZGUgZW5hYmxlLWxpZ2F0dXJlcztcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIC13ZWJraXQtZm9udC1mZWF0dXJlLXNldHRpbmdzOlwibGlnYVwiLFwiZGxpZ1wiO1xuICAgIC1tb3otZm9udC1mZWF0dXJlLXNldHRpbmdzOlwibGlnYT0xLCBkbGlnPTFcIjtcbiAgICAtbW96LWZvbnQtZmVhdHVyZS1zZXR0aW5nczpcImxpZ2FcIixcImRsaWdcIjtcbiAgICAtbXMtZm9udC1mZWF0dXJlLXNldHRpbmdzOlwibGlnYVwiLFwiZGxpZ1wiO1xuICAgIC1vLWZvbnQtZmVhdHVyZS1zZXR0aW5nczpcImxpZ2FcIixcImRsaWdcIjtcbiAgICBmb250LWZlYXR1cmUtc2V0dGluZ3M6IFwibGlnYVwiLFwiZGxpZ1wiO1xuICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gRm9udCBGYWNlXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBtaXhpbiBmb250LWZhY2UoJG5hbWUsICRmaWxlcywgJHdlaWdodDogbnVsbCwgJHN0eWxlOiBudWxsLCAkaW5saW5lLXdvZmY6IG51bGwpIHtcbiAgJHdlaWdodDogaWYoJHdlaWdodCAhPSBudWxsLCAkd2VpZ2h0LCB0b29sa2l0LWdldCgnZm9udCBmYWNlIHdlaWdodCcpKTtcbiAgJHN0eWxlOiBpZigkc3R5bGUgIT0gbnVsbCwgJHN0eWxlLCB0b29sa2l0LWdldCgnZm9udCBmYWNlIHN0eWxlJykpO1xuICAkaW5saW5lLXdvZmY6IGlmKCRpbmxpbmUtd29mZiAhPSBudWxsLCAkaW5saW5lLXdvZmYsIHRvb2xraXQtZ2V0KCdmb250IGZhY2UgaW5saW5lIHdvZmYnKSk7XG5cbiAgJGZvbnQtc3RhY2s6ICgpO1xuICAkZm9udC1zcmM6ICcnO1xuICAkZW90OiBmYWxzZTtcbiAgJGZvbnQtZXh0ZW5zaW9uczogKCdlb3QnOiAnZW1iZWRkZWQtb3BlbnR5cGUnLCAnd29mZjInOiAnd29mZjInLCAnd29mZic6ICd3b2ZmJywgJ3R0Zic6ICd0cnVldHlwZScsICdzdmcnOiAnc3ZnJyk7XG5cbiAgQGVhY2ggJGV4dCwgJGZvcm1hdCBpbiAkZm9udC1leHRlbnNpb25zIHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJGZpbGVzLCAkZXh0KSB7XG4gICAgICBAaWYgZnVuY3Rpb24tZXhpc3RzKGlubGluZS1mb250LWZpbGVzKSBhbmQgJGlubGluZS13b2ZmID09IHRydWUgYW5kICgkZXh0ID09ICd3b2ZmJyBvciAkZXh0ID09ICd3b2ZmMicpIHtcbiAgICAgICAgJGZvbnQtc3JjOiBpbmxpbmUtZm9udC1maWxlcyhtYXAtZ2V0KCRmaWxlcywgJGV4dCkpO1xuICAgICAgfVxuICAgICAgQGVsc2UgaWYgZnVuY3Rpb24tZXhpc3RzKGZvbnQtdXJsKSB7XG4gICAgICAgICRmb250LXNyYzogZm9udC11cmwobWFwLWdldCgkZmlsZXMsICRleHQpKSBmb3JtYXQoJGZvcm1hdCk7XG4gICAgICAgIEBpZiAkZXh0ID09ICdlb3QnIHtcbiAgICAgICAgICAkZW90OiAkZm9udC1zcmM7XG4gICAgICAgICAgJGZvbnQtc3JjOiBmb250LXVybChtYXAtZ2V0KCRmaWxlcywgJGV4dCkgKyAnI2llZml4JykgZm9ybWF0KCRmb3JtYXQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICRmb250LXNyYzogdXJsKG1hcC1nZXQoJGZpbGVzLCAkZXh0KSkgZm9ybWF0KCRmb3JtYXQpO1xuICAgICAgICBAaWYgJGV4dCA9PSAnZW90JyB7XG4gICAgICAgICAgJGVvdDogJGZvbnQtc3JjO1xuICAgICAgICAgICRmb250LXNyYzogdXJsKG1hcC1nZXQoJGZpbGVzLCAkZXh0KSArICcjaWVmaXgnKSBmb3JtYXQoJGZvcm1hdCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICRmb250LXN0YWNrOiBhcHBlbmQoJGZvbnQtc3RhY2ssICRmb250LXNyYywgJ2NvbW1hJyk7XG4gICAgfVxuXG4gIH1cblxuICBAZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogJG5hbWU7XG4gICAgZm9udC13ZWlnaHQ6ICR3ZWlnaHQ7XG4gICAgZm9udC1zdHlsZTogJHN0eWxlO1xuICAgIEBpZiAkZW90IHtcbiAgICAgIHNyYzogJGVvdDtcbiAgICB9XG4gICAgQGlmIGxlbmd0aCgkZm9udC1zdGFjaykgPiAwIHtcbiAgICAgIHNyYzogJGZvbnQtc3RhY2s7XG4gICAgfVxuICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSWNvbiBGb250XG4vLyBGcm9tIGh0dHA6Ly9pY29tb29uLmlvXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBtaXhpbiBpY29uLWZvbnQoJGZvbnQtc3RhY2ssICRzcGVhazogbnVsbCwgJGV4dGVuZDogbnVsbCkge1xuICAkc3BlYWs6IGlmKCRzcGVhayAhPSBudWxsLCAkc3BlYWssIHRvb2xraXQtZ2V0KCdpY29uIGZvbnQgc3BlYWsnKSk7XG4gICRleHRlbmQ6IGlmKCRleHRlbmQgIT0gbnVsbCwgJGV4dGVuZCwgdG9vbGtpdC1nZXQoJ2ljb24gZm9udCBleHRlbmQnKSk7XG5cbiAgZm9udC1mYW1pbHk6ICRmb250LXN0YWNrO1xuICBAaWYgJHNwZWFrID09IGZhbHNlIHtcbiAgICBzcGVhazogbm9uZTtcbiAgfVxuICBAaW5jbHVkZSBpY29uLWZvbnQtLWNvcmUoJGV4dGVuZCk7XG59XG5cbkBtaXhpbiBpY29uLWZvbnQtLWNvcmUoJGV4dGVuZDogbnVsbCkge1xuICAkZXh0ZW5kOiBpZigkZXh0ZW5kICE9IG51bGwsICRleHRlbmQsIHRvb2xraXQtZ2V0KCdpY29uIGZvbnQgZXh0ZW5kJykpO1xuXG4gIEBpZiAkZXh0ZW5kICB7XG4gICAgQGluY2x1ZGUgZHluYW1pYy1leHRlbmQoJ2ljb24gZm9udCBjb3JlJykge1xuICAgICAgQGluY2x1ZGUgaWNvbi1mb250LS1jb3JlKGZhbHNlKTtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgQGluY2x1ZGUgZW5hYmxlLWxpZ2F0dXJlcygkZXh0ZW5kKTtcblxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBGb250IEZhZGUgSW5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQG1peGluIGNvbnRlbnQtZmFkZS1pbigkZHVyYXRpb246IG51bGwsICRsb2FkaW5nOiBudWxsLCAkZXh0ZW5kOiBudWxsKSB7XG4gICRkdXJhdGlvbjogaWYoJGR1cmF0aW9uICE9IG51bGwsICRkdXJhdGlvbiwgdG9vbGtpdC1nZXQoJ2ZhZGUgaW4gZHVyYXRpb24nKSk7XG4gICRsb2FkaW5nOiBpZigkbG9hZGluZyAhPSBudWxsLCAkbG9hZGluZywgdG9vbGtpdC1nZXQoJ2ZhZGUgaW4gbG9hZGluZyBjbGFzcycpKTtcbiAgJGV4dGVuZDogaWYoJGV4dGVuZCAhPSBudWxsLCAkZXh0ZW5kLCB0b29sa2l0LWdldCgnZmFkZSBpbiBleHRlbmQnKSk7XG5cbiAgQGlmICRleHRlbmQgPT0gdHJ1ZSBhbmQgJGR1cmF0aW9uID09IHRvb2xraXQtZ2V0KCdmYWRlIGluIGR1cmF0aW9uJykgYW5kICRsb2FkaW5nID09IHRvb2xraXQtZ2V0KCdmYWRlIGluIGxvYWRpbmcgY2xhc3MnKSB7XG4gICAgQGluY2x1ZGUgZHluYW1pYy1leHRlbmQoJ2NvbnRlbnQgZmFkZSBpbicpIHtcbiAgICAgIEBpbmNsdWRlIGNvbnRlbnQtZmFkZS1pbigkZXh0ZW5kOiBmYWxzZSk7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIEBpZiBub3QgbWl4aW4tZXhpc3RzKCdzaW5nbGUtdHJhbnNpdGlvbicpIHtcbiAgICAgIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAkZHVyYXRpb247XG4gICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5ICRkdXJhdGlvbjtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGluY2x1ZGUgc2luZ2xlLXRyYW5zaXRpb24ob3BhY2l0eSAkZHVyYXRpb24pO1xuICAgIH1cblxuICAgICN7JGxvYWRpbmd9ICYge1xuICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gRmx1aWQgRW1iZWRzIGFuZCB3aGF0ZXZlciBXSVRIIE5PIEpBVkFTQ0lQVCFcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQG1peGluIGludHJpbnNpYy1yYXRpby1wYXJlbnQoJGV4dGVuZDogbnVsbCkge1xuICAkZXh0ZW5kOiBpZigkZXh0ZW5kICE9IG51bGwsICRleHRlbmQsIHRvb2xraXQtZ2V0KCdpbnRyaW5zaWMgcmF0aW8gZXh0ZW5kJykpO1xuXG4gIEBpZiAkZXh0ZW5kIHtcbiAgICBAaW5jbHVkZSBkeW5hbWljLWV4dGVuZCgnaW50cmluc2ljIHJhdGlvIHBhcmVudCcpIHtcbiAgICAgIEBpbmNsdWRlIGludHJpbnNpYy1yYXRpby1wYXJlbnQoZmFsc2UpO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGhlaWdodDogMDtcbiAgfVxufVxuXG5AbWl4aW4gaW50cmluc2ljLXJhdGlvLWNoaWxkKCRleHRlbmQ6IG51bGwpIHtcbiAgJGV4dGVuZDogaWYoJGV4dGVuZCAhPSBudWxsLCAkZXh0ZW5kLCB0b29sa2l0LWdldCgnaW50cmluc2ljIHJhdGlvIGV4dGVuZCcpKTtcblxuICBAaWYgJGV4dGVuZCB7XG4gICAgQGluY2x1ZGUgZHluYW1pYy1leHRlbmQoJ2ludHJpbnNpYyByYXRpbyBjaGlsZCcpIHtcbiAgICAgIEBpbmNsdWRlIGludHJpbnNpYy1yYXRpby1jaGlsZChmYWxzZSk7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgLy8gTnVrZSB0aGUgZXh0ZXJuYWwgc3R5bGVzXG4gICAgaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7IC8vIE51a2UgdGhlIGV4dGVybmFsIHN0eWxlc1xuICAgIHRvcDogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgfVxufVxuXG5AbWl4aW4gaW50cmluc2ljLXJhdGlvLXJhdGlvKCRyYXRpbzogbnVsbCwgJHdpZHRoOiBudWxsLCAkcG9zaXRpb246IG51bGwpIHtcbiAgJHJhdGlvOiBpZigkcmF0aW8gIT0gbnVsbCwgJHJhdGlvLCB0b29sa2l0LWdldCgnaW50cmluc2ljIHJhdGlvJykpO1xuICAkd2lkdGg6IGlmKCR3aWR0aCAhPSBudWxsLCAkd2lkdGgsIHRvb2xraXQtZ2V0KCdpbnRyaW5zaWMgcmF0aW8gd2lkdGgnKSk7XG4gICRwb3NpdGlvbjogaWYoJHBvc2l0aW9uICE9IG51bGwsICRwb3NpdGlvbiwgdG9vbGtpdC1nZXQoJ2ludHJpbnNpYyByYXRpbyBwb3NpdGlvbicpKTtcblxuICBwYWRkaW5nLSN7JHBvc2l0aW9ufTogKDEgLyAkcmF0aW8pICogJHdpZHRoO1xuICB3aWR0aDogJHdpZHRoO1xufVxuXG5AbWl4aW4gaW50cmluc2ljLXJhdGlvKCRyYXRpbzogbnVsbCwgJHdpZHRoOiBudWxsLCAkZWxlbWVudHM6IG51bGwsICRwb3NpdGlvbjogbnVsbCwgJGV4dGVuZDogbnVsbCkge1xuICAkcmF0aW86IGlmKCRyYXRpbyAhPSBudWxsLCAkcmF0aW8sIHRvb2xraXQtZ2V0KCdpbnRyaW5zaWMgcmF0aW8nKSk7XG4gICR3aWR0aDogaWYoJHdpZHRoICE9IG51bGwsICR3aWR0aCwgdG9vbGtpdC1nZXQoJ2ludHJpbnNpYyByYXRpbyB3aWR0aCcpKTtcbiAgJGVsZW1lbnRzOiBpZigkZWxlbWVudHMgIT0gbnVsbCwgJGVsZW1lbnRzLCB0b29sa2l0LWdldCgnaW50cmluc2ljIHJhdGlvIGVsZW1lbnRzJykpO1xuICAkcG9zaXRpb246IGlmKCRwb3NpdGlvbiAhPSBudWxsLCAkcG9zaXRpb24sIHRvb2xraXQtZ2V0KCdpbnRyaW5zaWMgcmF0aW8gcG9zaXRpb24nKSk7XG4gICRleHRlbmQ6IGlmKCRleHRlbmQgIT0gbnVsbCwgJGV4dGVuZCwgdG9vbGtpdC1nZXQoJ2ludHJpbnNpYyByYXRpbyBleHRlbmQnKSk7XG5cbiAgQGluY2x1ZGUgaW50cmluc2ljLXJhdGlvLXBhcmVudCgkZXh0ZW5kKTtcblxuICBAaW5jbHVkZSBpbnRyaW5zaWMtcmF0aW8tcmF0aW8oJHJhdGlvLCAkd2lkdGgsICRwb3NpdGlvbik7XG5cbiAgQGVhY2ggJGVsZW1lbnQgaW4gJGVsZW1lbnRzIHtcbiAgICAjeyRlbGVtZW50fSB7XG4gICAgXHRAaW5jbHVkZSBpbnRyaW5zaWMtcmF0aW8tY2hpbGQoJGV4dGVuZCk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBpcigkcmF0aW86IG51bGwsICR3aWR0aDogbnVsbCwgJGVsZW1lbnRzOiBudWxsLCAkcG9zaXRpb246IG51bGwsICRleHRlbmQ6IG51bGwpIHtcbiAgQGluY2x1ZGUgaW50cmluc2ljLXJhdGlvKCRyYXRpbywgJHdpZHRoLCAkZWxlbWVudHMsICRleHRlbmQsICRwb3NpdGlvbik7XG59XG5cbkBtaXhpbiBpci1yYXRpbygkcmF0aW86IG51bGwsICR3aWR0aDogbnVsbCwgJHBvc2l0aW9uOiBudWxsKSB7XG4gIEBpbmNsdWRlIGludHJpbnNpYy1yYXRpby1yYXRpbygkcmF0aW8sICR3aWR0aCwgJHBvc2l0aW9uKTtcbn0iLCIvLyBzaW1wbGUgZnVuY3Rpb24gdG8gZmluZCB0aGUgY29udGV4dCBvZiBhIG5lc3RlZCBwZXJjZW50YWdlLlxuQGZ1bmN0aW9uIG5lc3RlZC1jb250ZXh0KCRjb250ZXh0czogbnVsbCkge1xuICAkY29udGV4dHM6IGlmKCRjb250ZXh0cyAhPSBudWxsLCAkY29udGV4dHMsIHRvb2xraXQtZ2V0KCduZXN0ZWQgY29udGV4dCBjb250ZXh0cycpKTtcblxuICAvLyBGaXJzdCBsZXZlbCBkZWVwIGlzIGFsd2F5cyAxMDAlXG4gICRwZXJjZW50YWdlOiAxMDAlO1xuXG4gIC8vIExvb3AgdGhyb3VnaCBlYWNoIGxldmVsXG4gIEBlYWNoICRjb250ZXh0IGluICRjb250ZXh0cyB7XG4gICAgLy8gSW52ZXJ0IHRoZSBwZXJjZW50YWdlIHRvIGZpbmQgY29udGV4dFxuICAgICRwZXJjZW50YWdlOiBwZXJjZW50YWdlKCRwZXJjZW50YWdlIC8gJGNvbnRleHQpO1xuICB9XG4gIC8vIFJldHVybiBmaW5hbCBwZXJjZW50YWdlXG4gIEByZXR1cm4gJHBlcmNlbnRhZ2U7XG59XG5cbi8vIG1peGluIHRvIG1ha2UgdGhpbmdzIGVhc2llclxuQG1peGluIG5lc3RlZC1jb250ZXh0KCRjb250ZXh0czogbnVsbCwgJHBvc2l0aW9uOiBudWxsKSB7XG4gICRjb250ZXh0czogaWYoJGNvbnRleHRzICE9IG51bGwsICRjb250ZXh0cywgdG9vbGtpdC1nZXQoJ25lc3RlZCBjb250ZXh0IGNvbnRleHRzJykpO1xuICAkcG9zaXRpb246IGlmKCRwb3NpdGlvbiAhPSBudWxsLCAkcG9zaXRpb24sIHRvb2xraXQtZ2V0KCduZXN0ZWQgY29udGV4dCBwb3NpdGlvbicpKTtcblxuICB3aWR0aDogbmVzdGVkLWNvbnRleHQoJGNvbnRleHRzKTtcbiAgQGlmICRwb3NpdGlvbiA9PSBcImNlbnRlclwiIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogNTAlO1xuICAgIG1hcmdpbi1sZWZ0OiBuZXN0ZWQtY29udGV4dCgkY29udGV4dHMpICogLS41O1xuICB9XG4gIEBpZiAkcG9zaXRpb24gPT0gXCJyaWdodFwiIHtcbiAgICBtYXJnaW4tbGVmdDogbmVzdGVkLWNvbnRleHQoJGNvbnRleHRzKSAqIC0xICsgMTAwJTtcbiAgfVxufSIsIi8vIE1hZ2ljIHBhcmFsbGF4IG1peGluc1xuQG1peGluIHBhcmFsbGF4LWluaXQoJHBlcnNwZWN0aXZlOiBudWxsLCAkZWxlbWVudDogbnVsbCwgJHBhcmFsbGF4LWlvczogbnVsbCkge1xuXG4gICRwZXJzcGVjdGl2ZTogaWYoJHBlcnNwZWN0aXZlICE9IG51bGwsICRwZXJzcGVjdGl2ZSwgdG9vbGtpdC1nZXQoJ3BhcmFsbGF4IHBlcnNwZWN0aXZlJykpO1xuICAkZWxlbWVudDogaWYoJGVsZW1lbnQgIT0gbnVsbCwgJGVsZW1lbnQsIHRvb2xraXQtZ2V0KCdwYXJhbGxheCBlbGVtZW50JykpO1xuICAkcGFyYWxsYXgtaW9zOiBpZigkcGFyYWxsYXgtaW9zICE9IG51bGwsICRwYXJhbGxheC1pb3MsIHRvb2xraXQtZ2V0KCdwYXJhbGxheCBpb3MnKSk7XG5cbiAgQGlmICRlbGVtZW50ID09ICdib2R5JyB7XG4gICAgQGF0LXJvb3Qge1xuICAgICAgaHRtbCwgYm9keSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIH1cbiAgICAgIGJvZHkge1xuICAgICAgICBAaW5jbHVkZSBwYXJhbGxheC1pbml0LWNvcmUoJHBlcnNwZWN0aXZlLCAkcGFyYWxsYXgtaW9zKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpZiAkZWxlbWVudCA9PSB0aGlzIHtcbiAgICAgIEBpbmNsdWRlIHBhcmFsbGF4LWluaXQtY29yZSgkcGVyc3BlY3RpdmUsICRwYXJhbGxheC1pb3MpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAYXQtcm9vdCAjeyRlbGVtZW50fSB7XG4gICAgICAgIEBpbmNsdWRlIHBhcmFsbGF4LWluaXQtY29yZSgkcGVyc3BlY3RpdmUsICRwYXJhbGxheC1pb3MpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gcGFyYWxsYXgtaW5pdC1jb3JlKCRwZXJzcGVjdGl2ZTogbnVsbCwgJHBhcmFsbGF4LWlvczogbnVsbCkge1xuICAkcGVyc3BlY3RpdmU6IGlmKCRwZXJzcGVjdGl2ZSAhPSBudWxsLCAkcGVyc3BlY3RpdmUsIHRvb2xraXQtZ2V0KCdwYXJhbGxheCBwZXJzcGVjdGl2ZScpKTtcbiAgJHBhcmFsbGF4LWlvczogaWYoJHBhcmFsbGF4LWlvcyAhPSBudWxsLCAkcGFyYWxsYXgtaW9zLCB0b29sa2l0LWdldCgncGFyYWxsYXggaW9zJykpO1xuXG4gIG92ZXJmbG93OiBhdXRvO1xuICBAaWYgbWl4aW4tZXhpc3RzKHBlcnNwZWN0aXZlKSB7XG4gICAgQGluY2x1ZGUgcGVyc3BlY3RpdmUoJHBlcnNwZWN0aXZlICogMXB4KTtcbiAgfVxuICBAZWxzZSB7XG4gICAgLXdlYmtpdC1wZXJzcGVjdGl2ZTogJHBlcnNwZWN0aXZlICogMXB4O1xuICAgIHBlcnNwZWN0aXZlOiAkcGVyc3BlY3RpdmUgKiAxcHg7XG4gIH1cbiAgLy8gQWxsb3dzIGZvciBzbW9vdGggc2Nyb2xsaW5nIGJ1dCBkaXNhYmxlcyBwYXJhbGxheCBlZmZlY3RzLlxuICBAaWYgJHBhcmFsbGF4LWlvcyA9PSBmYWxzZSB7XG4gICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICB9XG4gIC8vIE1ha2Ugc3VyZSAzRCBwZXJzcGVjdGl2ZSBpcyBwcmVzZXJ2ZWRcbiAgJiwgJiAqIHtcbiAgICBAaWYgbWl4aW4tZXhpc3RzKHRyYW5zZm9ybS1zdHlsZSkge1xuICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtLXN0eWxlKHByZXNlcnZlLTNkKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgLXdlYmtpdC10cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkO1xuICAgICAgdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHBhcmFsbGF4KCRkaXN0YW5jZTogbnVsbCwgJHBlcnNwZWN0aXZlOiBudWxsKSB7XG5cbiAgJGRpc3RhbmNlOiBpZigkZGlzdGFuY2UgIT0gbnVsbCwgJGRpc3RhbmNlLCB0b29sa2l0LWdldCgncGFyYWxsYXggZGlzdGFuY2UnKSk7XG4gICRwZXJzcGVjdGl2ZTogaWYoJHBlcnNwZWN0aXZlICE9IG51bGwsICRwZXJzcGVjdGl2ZSwgdG9vbGtpdC1nZXQoJ3BhcmFsbGF4IHBlcnNwZWN0aXZlJykpO1xuXG4gICR0cmFuc2Zvcm06IHRyYW5zbGF0ZVooJGRpc3RhbmNlICogJHBlcnNwZWN0aXZlICogMXB4KSBzY2FsZShhYnMoJGRpc3RhbmNlIC0gMSkpO1xuXG4gIEBpZiBtaXhpbi1leGlzdHModHJhbnNmb3JtKSB7XG4gICAgQGluY2x1ZGUgdHJhbnNmb3JtKCR0cmFuc2Zvcm0pO1xuICB9XG4gIEBlbHNlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogJHRyYW5zZm9ybTtcbiAgICB0cmFuc2Zvcm06ICR0cmFuc2Zvcm07XG4gIH1cblxuICB6LWluZGV4OiAkZGlzdGFuY2UgKiAxMDA7XG59XG4iLCJAbWl4aW4gcnRsKCRwcm9wZXJ0eSwgJHZhbHVlKSB7XG4gICRfcHJvcGVydHk6ICRwcm9wZXJ0eTtcbiAgI3skcHJvcGVydHl9OiAkdmFsdWU7XG5cbiAgQGlmIGxlbmd0aCgkdmFsdWUpID09IDQge1xuICAgIFtkaXI9XCJydGxcIl0gJiB7XG4gICAgICAjeyRwcm9wZXJ0eX06IG50aCgkdmFsdWUsIDEpIG50aCgkdmFsdWUsIDQpIG50aCgkdmFsdWUsIDMpIG50aCgkdmFsdWUsIDIpO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQGlmIChzdHItaW5kZXgoJHByb3BlcnR5LCAnbGVmdCcpKSB7XG4gICAgICAkcHJvcGVydHk6IHN0ci1zbGljZSgkcHJvcGVydHksIDEsIHN0ci1pbmRleCgkcHJvcGVydHksICdsZWZ0JykgLSAxKSArICdyaWdodCc7XG4gICAgfVxuICAgIEBlbHNlIGlmIChzdHItaW5kZXgoJHByb3BlcnR5LCAncmlnaHQnKSkge1xuICAgICAgJHByb3BlcnR5OiBzdHItc2xpY2UoJHByb3BlcnR5LCAxLCBzdHItaW5kZXgoJHByb3BlcnR5LCAncmlnaHQnKSAtIDEpICsgJ2xlZnQnO1xuICAgIH1cblxuICAgIEBpZiAkcHJvcGVydHkgIT0gJF9wcm9wZXJ0eSB7XG4gICAgICBbZGlyPVwicnRsXCJdICYge1xuICAgICAgICAjeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCJAbWl4aW4gdGFyZ2V0KCR0YXJnZXQpIHtcbiAgQGF0LXJvb3Qge1xuICAgIC8qISBAe3RhcmdldDogI3skdGFyZ2V0fX0gKi9cbiAgICAmIHtcbiAgICAgIEBjb250ZW50OyAgXG4gICAgfVxuICAgIC8qISB7dGFyZ2V0OiAjeyR0YXJnZXR9fUAgKi8gIFxuICB9XG59IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBEcmF3IHRyaWFuZ2xlc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkBtaXhpbiB0cmlhbmdsZSgkY29sb3I6IG51bGwsICRoZWlnaHQ6IG51bGwsICR3aWR0aDogbnVsbCwgJGFuZ2xlOiBudWxsKSB7XG5cbiAgJGNvbG9yOiBpZigkY29sb3IgIT0gbnVsbCwgJGNvbG9yLCB0b29sa2l0LWdldCgndHJpYW5nbGUgY29sb3InKSk7XG4gICRoZWlnaHQ6IGlmKCRoZWlnaHQgIT0gbnVsbCwgJGhlaWdodCwgdG9vbGtpdC1nZXQoJ3RyaWFuZ2xlIGhlaWdodCcpKTtcbiAgJHdpZHRoOiBpZigkd2lkdGggIT0gbnVsbCwgJHdpZHRoLCB0b29sa2l0LWdldCgndHJpYW5nbGUgd2lkdGgnKSk7XG4gICRhbmdsZTogaWYoJGFuZ2xlICE9IG51bGwsICRhbmdsZSwgdG9vbGtpdC1nZXQoJ3RyaWFuZ2xlIGFuZ2xlJykpO1xuXG4gIEBpZiBudGgoJGFuZ2xlLCAxKSA9PSBcInRvcFwiIG9yIG50aCgkYW5nbGUsIDEpID09IFwiYm90dG9tXCIge1xuICAgICRhbmdsZTogXCIjeyRhbmdsZX1cIjtcbiAgfVxuXG4gIEBpZiAkYW5nbGUgPT0gXCJ0b3BcIiB7XG4gICAgJGFuZ2xlOiAwO1xuICB9XG4gIEBpZiAkYW5nbGUgPT0gXCJ0b3AgcmlnaHRcIiB7XG4gICAgJGFuZ2xlOiA0NSAqIDc7XG4gIH1cbiAgQGlmICRhbmdsZSA9PSBcInJpZ2h0XCIge1xuICAgICRhbmdsZTogNDUgKiAyO1xuICB9XG4gIEBpZiAkYW5nbGUgPT0gXCJib3R0b20gcmlnaHRcIiB7XG4gICAgJGFuZ2xlOiA0NSAqIDE7XG4gIH1cbiAgQGlmICRhbmdsZSA9PSBcImJvdHRvbVwiIHtcbiAgICAkYW5nbGU6IDQ1ICogNDtcbiAgfVxuICBAaWYgJGFuZ2xlID09IFwiYm90dG9tIGxlZnRcIiB7XG4gICAgJGFuZ2xlOiA0NSAqIDM7XG4gIH1cbiAgQGlmICRhbmdsZSA9PSBcImxlZnRcIiB7XG4gICAgJGFuZ2xlOiA0NSAqIDY7XG4gIH1cbiAgQGlmICRhbmdsZSA9PSBcInRvcCBsZWZ0XCIge1xuICAgICRhbmdsZTogNDUgKiA1O1xuICB9XG5cbiAgQGlmIHVuaXQoJGhlaWdodCkgPT0gXCJcIiBvciB1bml0KCRoZWlnaHQpID09IFwiJVwiIHtcbiAgICBAZGVidWcgXCJpbiB0cmlhbmdsZSAjeyRoZWlnaHR9IGlzIG5vdCBhIGNvbXBhdGlibGUgdW5pdCBmb3IgaGVpZ2h0LlwiXG4gIH1cblxuICBAaWYgdW5pdCgkd2lkdGgpID09IFwiXCIgb3IgdW5pdCgkd2lkdGgpID09IFwiJVwiIHtcbiAgICBAZGVidWcgXCJpbiB0cmlhbmdsZSAjeyR3aWR0aH0gaXMgbm90IGEgY29tcGF0aWJsZSB1bml0IGZvciB3aWR0aC5cIlxuICB9XG5cbiAgLy8gb2Zmc2V0IDQ1ZGVnIHRvIG1ha2UgZWFjaCBzaWRlIHN0YXJ0IGF0IDBcbiAgJGRlZzogJGFuZ2xlICsgNDU7XG4gIC8vIGlmIHVuaXRzLCByZW1vdmUgdW5pdHNcbiAgQGlmIHVuaXQoJGRlZykgPT0gZGVnIHtcbiAgICAkZGVnOiAkZGVnIC8gMWRlZztcbiAgfVxuICAvLyBzaGlmdCB0byBiZSBvbiBhIHNjYWxlIGZyb20gMCB0byA5MC5cbiAgQHdoaWxlICRkZWcgPiA5MCB7XG4gICAgJGRlZzogJGRlZyAtIDkwO1xuICB9XG4gIEB3aGlsZSAkZGVnIDwgMCB7XG4gICAgJGRlZzogJGRlZyArIDkwO1xuICB9XG4gIC8vIEdldCBhIHJhdGlvIG9mIDkwIHRvIG11bHRpcGx5IGJ5LlxuICAkZGVnOiAkZGVnIC8gOTA7XG5cbiAgLy8gbWFrZSBzdXJlIG1ldHJpY3MgYXJlIHJlc2V0XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXI6IDAgc29saWQgdHJhbnNwYXJlbnQ7XG5cbiAgLy8gcnVuIHRocm91Z2ggc2lkZXNcbiAgQGlmICRhbmdsZSA8PSA0NSBvciAkYW5nbGUgPiAzMTUge1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItd2lkdGg6IDAgKCR3aWR0aCAqIGFicygkZGVnIC0gMSkpICRoZWlnaHQgKCR3aWR0aCAqICRkZWcpO1xuICB9XG4gIEBpZiAkYW5nbGUgPiA0NSBhbmQgJGFuZ2xlIDw9IDEzNSB7XG4gICAgYm9yZGVyLWxlZnQtY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItd2lkdGg6ICgkaGVpZ2h0ICogJGRlZykgMCAoJGhlaWdodCAqIGFicygkZGVnIC0gMSkpICR3aWR0aDtcbiAgfVxuICBAaWYgJGFuZ2xlID4gMTM1IGFuZCAkYW5nbGUgPD0gMjI1IHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLXdpZHRoOiAkaGVpZ2h0ICgkd2lkdGggKiAkZGVnKSAwICgkd2lkdGggKiBhYnMoJGRlZyAtIDEpKTtcbiAgfVxuICBAaWYgJGFuZ2xlID4gMjI1IGFuZCAkYW5nbGUgPD0gMzE1IHtcbiAgICBib3JkZXItcmlnaHQtY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItd2lkdGg6ICgkaGVpZ2h0ICogYWJzKCRkZWcgLSAxKSkgJHdpZHRoICgkaGVpZ2h0ICogJGRlZykgMDtcbiAgfVxufSIsIi8vIFZlcnRpY2FsbHkgY2VudGVyIGFueXRoaW5nLCBsaXRlcmFsbHkgYW55dGhpbmcuXG4vLyBodHRwOi8vemVyb3NpeHRocmVlLnNlL3ZlcnRpY2FsLWFsaWduLWFueXRoaW5nLXdpdGgtanVzdC0zLWxpbmVzLW9mLWNzcy9cbkBtaXhpbiB2ZXJ0aWNhbC1jZW50ZXIoJG1pZHBvaW50OiBudWxsLCAkZXh0ZW5kOiBudWxsKSB7XG4gICRtaWRwb2ludDogaWYoJG1pZHBvaW50ICE9IG51bGwsICRtaWRwb2ludCwgdG9vbGtpdC1nZXQoJ3ZlcnRpY2FsIG1pZHBvaW50JykpO1xuICAkZXh0ZW5kOiBpZigkZXh0ZW5kICE9IG51bGwsICRleHRlbmQsIHRvb2xraXQtZ2V0KCd2ZXJ0aWNhbCBleHRlbmQnKSk7XG5cbiAgdG9wOiAkbWlkcG9pbnQ7XG4gIEBpbmNsdWRlIHZlcnRpY2FsLWNlbnRlci1jb3JlKCRleHRlbmQpO1xufVxuXG5AbWl4aW4gdmVydGljYWwtY2VudGVyLWNvcmUoJGV4dGVuZDogbnVsbCkge1xuICAkZXh0ZW5kOiBpZigkZXh0ZW5kICE9IG51bGwsICRleHRlbmQsIHRvb2xraXQtZ2V0KCd2ZXJ0aWNhbCBleHRlbmQnKSk7XG4gIEBpZiAkZXh0ZW5kIHtcbiAgICBAaW5jbHVkZSBkeW5hbWljLWV4dGVuZCgndmVydGljYWwgY2VudGVyJykge1xuICAgICAgQGluY2x1ZGUgdmVydGljYWwtY2VudGVyLWNvcmUoJGV4dGVuZDogZmFsc2UpO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIEBpZiBtaXhpbi1leGlzdHModHJhbnNmb3JtKSB7XG4gICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWSgtNTAlKSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgfVxuICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSG9yaXpvbnRhbCBDZW50ZXJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQG1peGluIGhvcml6b250YWwtY2VudGVyKCRtaWRwb2ludDogbnVsbCwgJGZpeGVkOiBudWxsLCAkZXh0ZW5kOiBudWxsKSB7XG4gICRmaXhlZDogaWYoJGZpeGVkICE9IG51bGwsICRmaXhlZCwgdG9vbGtpdC1nZXQoJ2hvcml6b250YWwgZml4ZWQnKSk7XG4gICRleHRlbmQ6IGlmKCRleHRlbmQgIT0gbnVsbCwgJGV4dGVuZCwgdG9vbGtpdC1nZXQoJ2hvcml6b250YWwgZXh0ZW5kJykpO1xuXG4gIEBpZiAkZml4ZWQge1xuICAgICRtaWRwb2ludDogaWYoJG1pZHBvaW50ICE9IG51bGwsICRtaWRwb2ludCwgdG9vbGtpdC1nZXQoJ2hvcml6b250YWwgZml4ZWQgbWlkcG9pbnQnKSk7XG4gIH1cbiAgQGVsc2Uge1xuICAgICRtaWRwb2ludDogaWYoJG1pZHBvaW50ICE9IG51bGwsICRtaWRwb2ludCwgdG9vbGtpdC1nZXQoJ2hvcml6b250YWwgbWlkcG9pbnQnKSk7XG4gIH1cblxuICBAaWYgJG1pZHBvaW50ICE9IDAlIHtcbiAgICBsZWZ0OiAkbWlkcG9pbnQ7XG4gIH1cblxuICBAaW5jbHVkZSBob3Jpem9udGFsLWNlbnRlci1jb3JlKCRmaXhlZCwgJGV4dGVuZCk7XG59XG5cbkBtaXhpbiBob3Jpem9udGFsLWNlbnRlci1jb3JlKCRmaXhlZDogbnVsbCwgJGV4dGVuZDogbnVsbCkge1xuICAkZml4ZWQ6IGlmKCRmaXhlZCAhPSBudWxsLCAkZml4ZWQsIHRvb2xraXQtZ2V0KCdob3Jpem9udGFsIGZpeGVkJykpO1xuICAkZXh0ZW5kOiBpZigkZXh0ZW5kICE9IG51bGwsICRleHRlbmQsIHRvb2xraXQtZ2V0KCdob3Jpem9udGFsIGV4dGVuZCcpKTtcblxuICBAaWYgJGV4dGVuZCB7XG4gICAgQGlmICRmaXhlZCB7XG4gICAgICBAaW5jbHVkZSBkeW5hbWljLWV4dGVuZCgnaG9yaXpvbnRhbCBjZW50ZXIgZml4ZWQnKSB7XG4gICAgICAgIEBpbmNsdWRlIGhvcml6b250YWwtY2VudGVyLWNvcmUodHJ1ZSwgZmFsc2UpO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAaW5jbHVkZSBkeW5hbWljLWV4dGVuZCgnaG9yaXpvbnRhbCBjZW50ZXInKSB7XG4gICAgICAgIEBpbmNsdWRlIGhvcml6b250YWwtY2VudGVyLWNvcmUoZmFsc2UsIGZhbHNlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpZiAkZml4ZWQge1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgQGlmIG1peGluLWV4aXN0cyh0cmFuc2Zvcm0pIHtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVgoLTUwJSkpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIH1cbiAgfVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEFic29sdXRlIENlbnRlclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AbWl4aW4gYWJzb2x1dGUtY2VudGVyKCR2ZXJ0aWNhbDogbnVsbCwgJGhvcml6b250YWw6IG51bGwsICRmaXhlZDogbnVsbCwgJGV4dGVuZDogbnVsbCkge1xuICAkdmVydGljYWw6IGlmKCR2ZXJ0aWNhbCAhPSBudWxsLCAkdmVydGljYWwsIHRvb2xraXQtZ2V0KCdhYnNvbHV0ZSBjZW50ZXIgdmVydGljYWwgbWlkcG9pbnQnKSk7XG4gICRmaXhlZDogaWYoJGZpeGVkICE9IG51bGwsICRmaXhlZCwgdG9vbGtpdC1nZXQoJ2Fic29sdXRlIGNlbnRlciBmaXhlZCcpKTtcbiAgJGV4dGVuZDogaWYoJGV4dGVuZCAhPSBudWxsLCAkZXh0ZW5kLCB0b29sa2l0LWdldCgnYWJzb2x1dGUgY2VudGVyIGV4dGVuZCcpKTtcblxuICBAaWYgJGZpeGVkIHtcbiAgICAkaG9yaXpvbnRhbDogaWYoJGhvcml6b250YWwgIT0gbnVsbCwgJGhvcml6b250YWwsIHRvb2xraXQtZ2V0KCdhYnNvbHV0ZSBjZW50ZXIgZml4ZWQgaG9yaXpvbnRhbCBtaWRwb2ludCcpKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgJGhvcml6b250YWw6IGlmKCRob3Jpem9udGFsICE9IG51bGwsICRob3Jpem9udGFsLCB0b29sa2l0LWdldCgnYWJzb2x1dGUgY2VudGVyIGhvcml6b250YWwgbWlkcG9pbnQnKSk7XG4gIH1cblxuICB0b3A6ICR2ZXJ0aWNhbDtcbiAgQGlmICRob3Jpem9udGFsICE9IDAlIHtcbiAgICBsZWZ0OiAkaG9yaXpvbnRhbDtcbiAgfVxuXG4gIEBpbmNsdWRlIGFic29sdXRlLWNlbnRlci1jb3JlKCRmaXhlZCwgJGV4dGVuZCk7XG59XG5cbkBtaXhpbiBhYnNvbHV0ZS1jZW50ZXItY29yZSgkZml4ZWQ6IG51bGwsICRleHRlbmQ6IG51bGwpIHtcbiAgJGZpeGVkOiBpZigkZml4ZWQgIT0gbnVsbCwgJGZpeGVkLCB0b29sa2l0LWdldCgnYWJzb2x1dGUgY2VudGVyIGZpeGVkJykpO1xuICAkZXh0ZW5kOiBpZigkZXh0ZW5kICE9IG51bGwsICRleHRlbmQsIHRvb2xraXQtZ2V0KCdhYnNvbHV0ZSBjZW50ZXIgZXh0ZW5kJykpO1xuXG4gIEBpZiAkZXh0ZW5kIHtcbiAgICBAaWYgJGZpeGVkIHtcbiAgICAgIEBpbmNsdWRlIGR5bmFtaWMtZXh0ZW5kKCdhYnNvbHV0ZSBjZW50ZXIgZml4ZWQnKSB7XG4gICAgICAgIEBpbmNsdWRlIGFic29sdXRlLWNlbnRlci1jb3JlKHRydWUsIGZhbHNlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGluY2x1ZGUgZHluYW1pYy1leHRlbmQoJ2Fic29sdXRlIGNlbnRlcicpIHtcbiAgICAgICAgQGluY2x1ZGUgYWJzb2x1dGUtY2VudGVyLWNvcmUoZmFsc2UsIGZhbHNlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpZiAkZml4ZWQge1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgQGlmIG1peGluLWV4aXN0cyh0cmFuc2Zvcm0pIHtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVkoLTUwJSkgdHJhbnNsYXRlWCgtNTAlKSk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSB0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgQGlmIG1peGluLWV4aXN0cyh0cmFuc2Zvcm0pIHtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVkoLTUwJSkpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICB9XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICB9XG4gIH1cblxufSIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQ1NTIGxldmVsIDQgVmlld3BvcnRcbi8vIGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2Nzcy1kZXZpY2UtYWRhcHQvI3RoZS1hdHZpZXdwb3J0LXJ1bGVcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQG1peGluIHZpZXdwb3J0IHtcbiAgQC13ZWJraXQtdmlld3BvcnQge1xuICAgIEBjb250ZW50O1xuICB9XG4gIEAtbW96LXZpZXdwb3J0IHtcbiAgICBAY29udGVudDtcbiAgfVxuICBALW1zLXZpZXdwb3J0IHtcbiAgICBAY29udGVudDtcbiAgfVxuICBAdmlld3BvcnQge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbiIsIkBtaXhpbiB1bmRlcmxpbmUoJGJhY2tncm91bmQ6IG51bGwsICRjb2xvcjogbnVsbCwgJGNsZWFyLWRlc2NlbmRlcnM6IG51bGwsICRkaXN0YW5jZTogbnVsbCwgJHdpZHRoOiBudWxsLCAkZXh0ZW5kOiBudWxsKSB7XG4gICRiYWNrZ3JvdW5kOiBpZigkYmFja2dyb3VuZCAhPSBudWxsLCAkYmFja2dyb3VuZCwgdG9vbGtpdC1nZXQoJ3VuZGVybGluZSBiYWNrZ3JvdW5kJykpO1xuICAkY29sb3I6IGlmKCRjb2xvciAhPSBudWxsLCAkY29sb3IsIHRvb2xraXQtZ2V0KCd1bmRlcmxpbmUgY29sb3InKSk7XG4gICRjbGVhci1kZXNjZW5kZXJzOiBpZigkY2xlYXItZGVzY2VuZGVycyAhPSBudWxsLCAkY2xlYXItZGVzY2VuZGVycywgdG9vbGtpdC1nZXQoJ3VuZGVybGluZSBjbGVhciBkZXNjZW5kZXJzJykpO1xuICAkZGlzdGFuY2U6IGlmKCRkaXN0YW5jZSAhPSBudWxsLCAkZGlzdGFuY2UsIHRvb2xraXQtZ2V0KCd1bmRlcmxpbmUgZGlzdGFuY2UnKSk7XG4gICR3aWR0aDogaWYoJHdpZHRoICE9IG51bGwsICR3aWR0aCwgdG9vbGtpdC1nZXQoJ3VuZGVybGluZSB3aWR0aCcpKTtcbiAgJGV4dGVuZDogaWYoJGV4dGVuZCAhPSBudWxsLCAkZXh0ZW5kLCB0b29sa2l0LWdldCgndW5kZXJsaW5lIGV4dGVuZCcpKTtcblxuICAkUFg6IC4wNjI1ZW07XG5cbiAgQGluY2x1ZGUgdW5kZXJsaW5lLWNvcmUoJGV4dGVuZCk7XG5cbiAgQGlmIG1peGluLWV4aXN0cyhiYWNrZ3JvdW5kLWltYWdlKSBhbmQgZnVuY3Rpb24tZXhpc3RzKGxpbmVhci1ncmFkaWVudCkge1xuICAgIEBpbmNsdWRlIGJhY2tncm91bmQtaW1hZ2UoXG4gICAgICBsaW5lYXItZ3JhZGllbnQoYm90dG9tLCAkYmFja2dyb3VuZCA3NSUsICRjb2xvciA3NSUpXG4gICAgKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHRvcCwgJGJhY2tncm91bmQgNzUlLCAkY29sb3IgNzUlKTtcbiAgfVxuICBiYWNrZ3JvdW5kLXNpemU6ICgyICogJFBYKSAoKDEgKyAkd2lkdGgpICogJFBYKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAoKCR3aWR0aCkgKiAkUFgpICsgJGRpc3RhbmNlO1xuXG4gIEBpZiAkY2xlYXItZGVzY2VuZGVycyB7XG4gICAgdGV4dC1zaGFkb3c6ICgxICogJFBYKSAoMSAqICRQWCkgMCAkYmFja2dyb3VuZCwgKC0xICogJFBYKSAwIDAgJGJhY2tncm91bmQ7XG4gIH1cbn1cblxuQG1peGluIHVuZGVybGluZS1jb3JlKCRleHRlbmQ6IG51bGwpIHtcbiAgJGV4dGVuZDogaWYoJGV4dGVuZCAhPSBudWxsLCAkZXh0ZW5kLCB0b29sa2l0LWdldCgndW5kZXJsaW5lIGV4dGVuZCcpKTtcblxuICBAaWYgJGV4dGVuZCB7XG4gICAgQGluY2x1ZGUgZHluYW1pYy1leHRlbmQoJ3VuZGVybGluZScpIHtcbiAgICAgIEBpbmNsdWRlIHVuZGVybGluZS1jb3JlKGZhbHNlKTtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG4gIH1cbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEFSVCFcbi8vIEluc3BpcmVkIGJ5IGh0dHA6Ly9lbHJ1bW9yZGVsYWx1ei5naXRodWIuaW8vUGl4ZWxhdG9yL1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AbWl4aW4gYXJ0KCRhcnQsICRweC1zaXplOiBudWxsLCAkY29sb3I6IG51bGwsICRyYWRpdXM6IG51bGwpIHtcbiAgJHB4LXNpemU6IGlmKCRweC1zaXplICE9IG51bGwsICRweC1zaXplLCB0b29sa2l0LWdldCgnYXJ0IHBpeGVsIHNpemUnKSk7XG4gICRjb2xvcjogaWYoJGNvbG9yICE9IG51bGwsICRjb2xvciwgdG9vbGtpdC1nZXQoJ2FydCBjb2xvcicpKTtcbiAgJHJhZGl1czogaWYoJHJhZGl1cyAhPSBudWxsLCAkcmFkaXVzLCB0b29sa2l0LWdldCgnYXJ0IGJvcmRlciByYWRpdXMnKSk7XG5cbiAgJGJ1aWxkOiAoKTtcbiAgJHk6ICRweC1zaXplO1xuICAkeDogMDtcblxuICBoZWlnaHQ6ICRweC1zaXplO1xuICB3aWR0aDogJHB4LXNpemU7XG4gIGJvcmRlci1yYWRpdXM6ICRyYWRpdXM7XG5cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBzdHJfbGVuZ3RoKCRhcnQpIHtcbiAgICAkY2hhcjogc3RyX3NsaWNlKCRhcnQsICRpLCAkaSk7XG4gICAgJHg6ICR4ICsgJHB4LXNpemU7XG5cbiAgICBAaWYgJGNoYXIgPT0gJ24nIHtcbiAgICAgICR5OiAkeSArICRweC1zaXplO1xuICAgICAgJHg6IDA7XG4gICAgfVxuICAgIEBlbHNlIGlmICRjaGFyICE9ICcgJyB7XG4gICAgICAkYm9yZGVyOiAkeCAkeSAwICRjb2xvcjtcbiAgICAgICRidWlsZDogYXBwZW5kKCRidWlsZCwgJGJvcmRlciwgY29tbWEpO1xuICAgIH1cbiAgfVxuXG4gIGJveC1zaGFkb3c6ICRidWlsZDtcbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIERlZmF1bHQgVmFyaWFibGVzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRCcmVha3BvaW50LVNldHRpbmdzOiAoXG4gICdkZWZhdWx0IG1lZGlhJzogYWxsLFxuICAnZGVmYXVsdCBmZWF0dXJlJzogbWluLXdpZHRoLFxuICAnZGVmYXVsdCBwYWlyJzogd2lkdGgsXG5cbiAgJ2ZvcmNlIGFsbCBtZWRpYSB0eXBlJzogZmFsc2UsXG4gICd0byBlbXMnOiBmYWxzZSxcbiAgJ3RyYW5zZm9ybSByZXNvbHV0aW9ucyc6IHRydWUsXG5cbiAgJ25vIHF1ZXJpZXMnOiBmYWxzZSxcbiAgJ25vIHF1ZXJ5IGZhbGxiYWNrcyc6IGZhbHNlLFxuXG4gICdiYXNlIGZvbnQgc2l6ZSc6IDE2cHgsXG5cbiAgJ2xlZ2FjeSBzeW50YXgnOiBmYWxzZVxuKTtcblxuJGJyZWFrcG9pbnQ6ICgpICFkZWZhdWx0O1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEltcG9ydHNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCBcImJyZWFrcG9pbnQvc2V0dGluZ3NcIjtcbkBpbXBvcnQgJ2JyZWFrcG9pbnQvY29udGV4dCc7XG5AaW1wb3J0ICdicmVha3BvaW50L2hlbHBlcnMnO1xuQGltcG9ydCAnYnJlYWtwb2ludC9wYXJzZXJzJztcbkBpbXBvcnQgJ2JyZWFrcG9pbnQvbm8tcXVlcnknO1xuXG5AaW1wb3J0ICdicmVha3BvaW50L3Jlc3BvbmQtdG8nO1xuXG5AaW1wb3J0IFwiYnJlYWtwb2ludC9sZWdhY3ktc2V0dGluZ3NcIjtcblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBCcmVha3BvaW50IE1peGluXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQG1peGluIGJyZWFrcG9pbnQoJHF1ZXJ5LCAkbm8tcXVlcnk6IGZhbHNlKSB7XG4gIEBpbmNsdWRlIGxlZ2FjeS1zZXR0aW5ncy13YXJuaW5nO1xuXG4gIC8vIFJlc2V0IGNvbnRleHRzXG4gIEBpbmNsdWRlIHByaXZhdGUtYnJlYWtwb2ludC1yZXNldC1jb250ZXh0cygpO1xuXG4gICRicmVha3BvaW50OiBicmVha3BvaW50KCRxdWVyeSwgZmFsc2UpO1xuXG4gICRxdWVyeS1zdHJpbmc6IG1hcC1nZXQoJGJyZWFrcG9pbnQsICdxdWVyeScpO1xuICAkcXVlcnktZmFsbGJhY2s6IG1hcC1nZXQoJGJyZWFrcG9pbnQsICdmYWxsYmFjaycpO1xuXG4gICRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXI6IG1hcC1nZXQoJGJyZWFrcG9pbnQsICdjb250ZXh0IGhvbGRlcicpICFnbG9iYWw7XG4gICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQ6IG1hcC1nZXQoJGJyZWFrcG9pbnQsICdxdWVyeSBjb3VudCcpICFnbG9iYWw7XG5cbiAgLy8gQWxsb3cgZm9yIGFuIGFzLW5lZWRlZCBvdmVycmlkZSBvciB1c2FnZSBvZiBubyBxdWVyeSBmYWxsYmFjay5cbiAgQGlmICRuby1xdWVyeSAhPSBmYWxzZSB7XG4gICAgJHF1ZXJ5LWZhbGxiYWNrOiAkbm8tcXVlcnk7XG4gIH1cblxuICBAaWYgJHF1ZXJ5LWZhbGxiYWNrICE9IGZhbHNlIHtcbiAgICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dCgnbm8tcXVlcnknLCAkcXVlcnktZmFsbGJhY2spO1xuICB9XG5cbiAgLy8gUHJpbnQgT3V0IFF1ZXJ5IFN0cmluZ1xuICBAaWYgbm90IGJyZWFrcG9pbnQtZ2V0KCdubyBxdWVyaWVzJykge1xuICAgIEBtZWRpYSAjeyRxdWVyeS1zdHJpbmd9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuXG4gIEBpZiBicmVha3BvaW50LWdldCgnbm8gcXVlcnkgZmFsbGJhY2tzJykgIT0gZmFsc2Ugb3IgYnJlYWtwb2ludC1nZXQoJ25vIHF1ZXJpZXMnKSA9PSB0cnVlIHtcblxuICAgICR0eXBlOiB0eXBlLW9mKGJyZWFrcG9pbnQtZ2V0KCdubyBxdWVyeSBmYWxsYmFja3MnKSk7XG4gICAgJHByaW50OiBmYWxzZTtcblxuICAgIEBpZiAoJHR5cGUgPT0gJ2Jvb2wnKSB7XG4gICAgICAkcHJpbnQ6IHRydWU7XG4gICAgfVxuICAgIEBlbHNlIGlmICgkdHlwZSA9PSAnc3RyaW5nJykge1xuICAgICAgQGlmICRxdWVyeS1mYWxsYmFjayA9PSBicmVha3BvaW50LWdldCgnbm8gcXVlcnkgZmFsbGJhY2tzJykge1xuICAgICAgICAkcHJpbnQ6IHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIGlmICgkdHlwZSA9PSAnbGlzdCcpIHtcbiAgICAgIEBlYWNoICR3cmFwcGVyIGluIGJyZWFrcG9pbnQtZ2V0KCdubyBxdWVyeSBmYWxsYmFja3MnKSB7XG4gICAgICAgIEBpZiAkcXVlcnktZmFsbGJhY2sgPT0gJHdyYXBwZXIge1xuICAgICAgICAgICRwcmludDogdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFdyaXRlIEZhbGxiYWNrXG4gICAgQGlmICgkcXVlcnktZmFsbGJhY2sgIT0gZmFsc2UpIGFuZCAoJHByaW50ID09IHRydWUpIHtcbiAgICAgICR0eXBlLWZhbGxiYWNrOiB0eXBlLW9mKCRxdWVyeS1mYWxsYmFjayk7XG5cbiAgICAgIEBpZiAoJHR5cGUtZmFsbGJhY2sgIT0gJ2Jvb2wnKSB7XG4gICAgICAgICN7JHF1ZXJ5LWZhbGxiYWNrfSAmIHtcbiAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBwcml2YXRlLWJyZWFrcG9pbnQtcmVzZXQtY29udGV4dHMoKTtcbn1cblxuXG5AbWl4aW4gbXEoJHF1ZXJ5LCAkbm8tcXVlcnk6IGZhbHNlKSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHF1ZXJ5LCAkbm8tcXVlcnkpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBIYXMgU2V0dGluZ1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1oYXMoJHNldHRpbmcpIHtcbiAgQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50LCAkc2V0dGluZykge1xuICAgIEByZXR1cm4gdHJ1ZTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEdldCBTZXR0aW5nc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1nZXQoJHNldHRpbmcpIHtcbiAgQGlmIGJyZWFrcG9pbnQtaGFzKCRzZXR0aW5nKSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRicmVha3BvaW50LCAkc2V0dGluZyk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gbWFwLWdldCgkQnJlYWtwb2ludC1TZXR0aW5ncywgJHNldHRpbmcpO1xuICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gU2V0IFNldHRpbmdzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBicmVha3BvaW50LXNldCgkc2V0dGluZywgJHZhbHVlKSB7XG4gIEBpZiAoc3RyLWluZGV4KCRzZXR0aW5nLCAnLScpIG9yIHN0ci1pbmRleCgkc2V0dGluZywgJ18nKSkgYW5kIHN0ci1pbmRleCgkc2V0dGluZywgJyAnKSA9PSBudWxsIHtcbiAgICBAd2FybiBcIldvcmRzIGluIEJyZWFrcG9pbnQgc2V0dGluZ3Mgc2hvdWxkIGJlIHNlcGFyYXRlZCBieSBzcGFjZXMsIG5vdCBkYXNoZXMgb3IgdW5kZXJzY29yZXMuIFBsZWFzZSByZXBsYWNlIGRhc2hlcyBhbmQgdW5kZXJzY29yZXMgYmV0d2VlbiB3b3JkcyB3aXRoIHNwYWNlcy4gU2V0dGluZ3Mgd2lsbCBub3Qgd29yayBhcyBleHBlY3RlZCB1bnRpbCBjaGFuZ2VkLlwiO1xuICB9XG4gICRicmVha3BvaW50OiBtYXAtbWVyZ2UoJGJyZWFrcG9pbnQsICgkc2V0dGluZzogJHZhbHVlKSkgIWdsb2JhbDtcbiAgQHJldHVybiB0cnVlO1xufVxuXG5AbWl4aW4gYnJlYWtwb2ludC1jaGFuZ2UoJHNldHRpbmcsICR2YWx1ZSkge1xuICAkYnJlYWtwb2ludC1jaGFuZ2U6IGJyZWFrcG9pbnQtc2V0KCRzZXR0aW5nLCAkdmFsdWUpO1xufVxuXG5AbWl4aW4gYnJlYWtwb2ludC1zZXQoJHNldHRpbmcsICR2YWx1ZSkge1xuICBAaW5jbHVkZSBicmVha3BvaW50LWNoYW5nZSgkc2V0dGluZywgJHZhbHVlKTtcbn1cblxuQG1peGluIGJrcHQtY2hhbmdlKCRzZXR0aW5nLCAkdmFsdWUpIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludC1jaGFuZ2UoJHNldHRpbmcsICR2YWx1ZSk7XG59XG5AbWl4aW4gYmtwdC1zZXQoJHNldHRpbmcsICR2YWx1ZSkge1xuICBAaW5jbHVkZSBicmVha3BvaW50LWNoYW5nZSgkc2V0dGluZywgJHZhbHVlKTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBSZW1vdmUgU2V0dGluZ1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1yZXNldCgkc2V0dGluZ3MuLi4pIHtcbiAgQGlmIGxlbmd0aCgkc2V0dGluZ3MpID09IDEge1xuICAgICRzZXR0aW5nczogbnRoKCRzZXR0aW5ncywgMSk7XG4gIH1cblxuICBAZWFjaCAkc2V0dGluZyBpbiAkc2V0dGluZ3Mge1xuICAgICRicmVha3BvaW50OiBtYXAtcmVtb3ZlKCRicmVha3BvaW50LCAkc2V0dGluZykgIWdsb2JhbDtcbiAgfVxuICBAcmV0dXJuIHRydWU7XG59XG5cbkBtaXhpbiBicmVha3BvaW50LXJlc2V0KCRzZXR0aW5ncy4uLikge1xuICAkYnJlYWtwb2ludC1yZXNldDogYnJlYWtwb2ludC1yZXNldCgkc2V0dGluZ3MpO1xufVxuXG5AbWl4aW4gYmtwdC1yZXNldCgkc2V0dGluZ3MuLi4pIHtcbiAgJGJyZWFrcG9pbnQtcmVzZXQ6IGJyZWFrcG9pbnQtcmVzZXQoJHNldHRpbmdzKTtcbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFByaXZhdGUgQnJlYWtwb2ludCBWYXJpYWJsZXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcjogKCk7XG4kcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50OiAwICFkZWZhdWx0O1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEJyZWFrcG9pbnQgSGFzIENvbnRleHRcbi8vIFJldHVybnMgd2hldGhlciBvciBub3QgeW91IGFyZSBpbnNpZGUgYSBCcmVha3BvaW50IHF1ZXJ5XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBicmVha3BvaW50LWhhcy1jb250ZXh0KCkge1xuICBAaWYgbGVuZ3RoKCRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQpIHtcbiAgICBAcmV0dXJuIHRydWU7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBCcmVha3BvaW50IEdldCBDb250ZXh0XG4vLyAkZmVhdHVyZTogSW5wdXQgZmVhdHVyZSB0byBnZXQgaXQncyBjdXJyZW50IE1RIGNvbnRleHQuIFJldHVybnMgZmFsc2UgaWYgbm8gY29udGV4dFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1nZXQtY29udGV4dCgkZmVhdHVyZSkge1xuICBAaWYgbWFwLWhhcy1rZXkoJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlciwgJGZlYXR1cmUpIHtcbiAgICAkZ2V0OiBtYXAtZ2V0KCRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXIsICRmZWF0dXJlKTtcbiAgICAvLyBTcGVjaWFsIGhhbmRsaW5nIG9mIG5vLXF1ZXJ5IGZyb20gZ2V0IHNpZGUgc28gL2ZhbHNlLyBwcmVwZW5kcyBhcmVuJ3QgcmV0dXJuZWRcbiAgICBAaWYgJGZlYXR1cmUgPT0gJ25vLXF1ZXJ5JyB7XG4gICAgICBAaWYgdHlwZS1vZigkZ2V0KSA9PSAnbGlzdCcgYW5kIGxlbmd0aCgkZ2V0KSA+IDEgYW5kIG50aCgkZ2V0LCAxKSA9PSBmYWxzZSB7XG4gICAgICAgICRnZXQ6IG50aCgkZ2V0LCBsZW5ndGgoJGdldCkpO1xuICAgICAgfVxuICAgIH1cbiAgICBAcmV0dXJuICRnZXQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpZiBicmVha3BvaW50LWhhcy1jb250ZXh0KCkgYW5kICRmZWF0dXJlID09ICdtZWRpYScge1xuICAgICAgQHJldHVybiBicmVha3BvaW50LWdldCgnZGVmYXVsdCBtZWRpYScpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFByaXZhdGUgZnVuY3Rpb24gdG8gc2V0IGNvbnRleHRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dCgkZmVhdHVyZSwgJHZhbHVlKSB7XG4gIEBpZiAkdmFsdWUgPT0gJ21vbm9jaHJvbWUnIHtcbiAgICAkZmVhdHVyZTogJ21vbm9jaHJvbWUnO1xuICB9XG5cbiAgJGN1cnJlbnQ6IG1hcC1nZXQoJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlciwgJGZlYXR1cmUpO1xuICBAaWYgJGN1cnJlbnQgYW5kIGxlbmd0aCgkY3VycmVudCkgPT0gJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudCB7XG4gICAgQHdhcm4gXCJZb3UgaGF2ZSBhbHJlYWR5IHF1ZXJpZWQgYWdhaW5zdCBgI3skZmVhdHVyZX1gLiBVbmV4cGVjdGVkIHRoaW5ncyBtYXkgaGFwcGVuIGlmIHlvdSBxdWVyeSBhZ2FpbnN0IHRoZSBzYW1lIGZlYXR1cmUgbW9yZSB0aGFuIG9uY2UgaW4gdGhlIHNhbWUgYGFuZGAgcXVlcnkuIEJyZWFrcG9pbnQgaXMgb3ZlcndyaXRpbmcgdGhlIGN1cnJlbnQgY29udGV4dCB3aXRoIGAjeyR2YWx1ZX1gXCI7XG4gIH1cblxuICBAaWYgbm90IG1hcC1oYXMta2V5KCRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXIsICRmZWF0dXJlKSB7XG4gICAgJHYtaG9sZGVyOiAoKTtcbiAgICBAZm9yICRpIGZyb20gMSB0byAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50IHtcbiAgICAgIEBpZiAkZmVhdHVyZSA9PSAnbWVkaWEnIHtcbiAgICAgICAgJHYtaG9sZGVyOiBhcHBlbmQoJHYtaG9sZGVyLCBicmVha3BvaW50LWdldCgnZGVmYXVsdCBtZWRpYScpKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJHYtaG9sZGVyOiBhcHBlbmQoJHYtaG9sZGVyLCBmYWxzZSk7XG4gICAgICB9XG4gICAgfVxuICAgICR2LWhvbGRlcjogYXBwZW5kKCR2LWhvbGRlciwgJHZhbHVlKTtcbiAgICAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyOiBtYXAtbWVyZ2UoJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlciwgKCRmZWF0dXJlOiAkdi1ob2xkZXIpKSAhZ2xvYmFsO1xuICB9XG4gIEBlbHNlIHtcbiAgICAkdi1ob2xkZXI6IG1hcC1nZXQoJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlciwgJGZlYXR1cmUpO1xuICAgICRsZW5ndGg6IGxlbmd0aCgkdi1ob2xkZXIpO1xuICAgIEBmb3IgJGkgZnJvbSAkbGVuZ3RoIHRvICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQgLSAxIHtcbiAgICAgIEBpZiAkZmVhdHVyZSA9PSAnbWVkaWEnIHtcbiAgICAgICAgJHYtaG9sZGVyOiBhcHBlbmQoJHYtaG9sZGVyLCBicmVha3BvaW50LWdldCgnZGVmYXVsdCBtZWRpYScpKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJHYtaG9sZGVyOiBhcHBlbmQoJHYtaG9sZGVyLCBmYWxzZSk7XG4gICAgICB9XG4gICAgfVxuICAgICR2LWhvbGRlcjogYXBwZW5kKCR2LWhvbGRlciwgJHZhbHVlKTtcbiAgICAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyOiBtYXAtbWVyZ2UoJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlciwgKCRmZWF0dXJlOiAkdi1ob2xkZXIpKSAhZ2xvYmFsO1xuICB9XG5cbiAgQHJldHVybiB0cnVlO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFByaXZhdGUgZnVuY3Rpb24gdG8gcmVzZXQgY29udGV4dFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AbWl4aW4gcHJpdmF0ZS1icmVha3BvaW50LXJlc2V0LWNvbnRleHRzIHtcbiAgJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcjogKCkgIWdsb2JhbDtcbiAgJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudDogMCAhZ2xvYmFsO1xufSIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQ29udmVydHMgdGhlIGlucHV0IHZhbHVlIHRvIEJhc2UgRU1zXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBicmVha3BvaW50LXRvLWJhc2UtZW0oJHZhbHVlKSB7XG4gICR2YWx1ZS11bml0OiB1bml0KCR2YWx1ZSk7XG5cbiAgLy8gV2lsbCBjb252ZXJ0IHJlbGF0aXZlIEVNcyBpbnRvIHJvb3QgRU1zLlxuICBAaWYgYnJlYWtwb2ludC1nZXQoJ2Jhc2UgZm9udCBzaXplJykgYW5kIHR5cGUtb2YoYnJlYWtwb2ludC1nZXQoJ2Jhc2UgZm9udCBzaXplJykpID09ICdudW1iZXInIGFuZCAkdmFsdWUtdW5pdCA9PSAnZW0nIHtcbiAgICAkYmFzZS11bml0OiB1bml0KGJyZWFrcG9pbnQtZ2V0KCdiYXNlIGZvbnQgc2l6ZScpKTtcblxuICAgIEBpZiAkYmFzZS11bml0ID09ICdweCcgb3IgJGJhc2UtdW5pdCA9PSAnJScgb3IgJGJhc2UtdW5pdCA9PSAnZW0nIG9yICRiYXNlLXVuaXQgPT0gJ3B0JyB7XG4gICAgICBAcmV0dXJuIGJhc2UtY29udmVyc2lvbigkdmFsdWUpIC8gYmFzZS1jb252ZXJzaW9uKGJyZWFrcG9pbnQtZ2V0KCdiYXNlIGZvbnQgc2l6ZScpKSAqIDFlbTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQHdhcm4gJyN7YnJlYWtwb2ludC1nZXQoXFwnYmFzZSBmb250IHNpemVcXCcpfSBpcyBub3Qgc2V0IGluIHZhbGlkIHVuaXRzIGZvciBmb250IHNpemUhJztcbiAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIGJhc2UtY29udmVyc2lvbigkdmFsdWUpO1xuICB9XG59XG5cbkBmdW5jdGlvbiBiYXNlLWNvbnZlcnNpb24oJHZhbHVlKSB7XG4gICR1bml0OiB1bml0KCR2YWx1ZSk7XG5cbiAgQGlmICR1bml0ID09ICdweCcge1xuICAgIEByZXR1cm4gJHZhbHVlIC8gMTZweCAqIDFlbTtcbiAgfVxuICBAZWxzZSBpZiAkdW5pdCA9PSAnJScge1xuICAgIEByZXR1cm4gJHZhbHVlIC8gMTAwJSAqIDFlbTtcbiAgfVxuICBAZWxzZSBpZiAkdW5pdCA9PSAnZW0nIHtcbiAgICBAcmV0dXJuICR2YWx1ZTtcbiAgfVxuICBAZWxzZSBpZiAkdW5pdCA9PSAncHQnIHtcbiAgICBAcmV0dXJuICR2YWx1ZSAvIDEycHQgKiAxZW07XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gJHZhbHVlO1xuLy8gICAgQHdhcm4gJ0V2ZXJ5dGhpbmcgaXMgdGVycmlibGUhIFdoYXQgaGF2ZSB5b3UgZG9uZT8hJztcbiAgfVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFJldHVybnMgd2hldGhlciB0aGUgZmVhdHVyZSBjYW4gaGF2ZSBhIG1pbi9tYXggcGFpclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kYnJlYWtwb2ludC1taW4tbWF4LWZlYXR1cmVzOiAnY29sb3InLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbG9yLWluZGV4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhc3BlY3QtcmF0aW8nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RldmljZS1hc3BlY3QtcmF0aW8nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RldmljZS1oZWlnaHQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RldmljZS13aWR0aCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaGVpZ2h0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtb25vY2hyb21lJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyZXNvbHV0aW9uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd3aWR0aCc7XG5cbkBmdW5jdGlvbiBicmVha3BvaW50LW1pbi1tYXgoJGZlYXR1cmUpIHtcbiAgQGVhY2ggJGl0ZW0gaW4gJGJyZWFrcG9pbnQtbWluLW1heC1mZWF0dXJlcyB7XG4gICAgQGlmICRmZWF0dXJlID09ICRpdGVtIHtcbiAgICAgIEByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cbiAgQHJldHVybiBmYWxzZTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBSZXR1cm5zIHdoZXRoZXIgdGhlIGZlYXR1cmUgY2FuIGhhdmUgYSBzdHJpbmcgdmFsdWVcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJGJyZWFrcG9pbnQtc3RyaW5nLWZlYXR1cmVzOiAgJ29yaWVudGF0aW9uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzY2FuJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb2xvcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYXNwZWN0LXJhdGlvJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZXZpY2UtYXNwZWN0LXJhdGlvJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwb2ludGVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdsdW1pbm9zaXR5JztcblxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtc3RyaW5nLXZhbHVlKCRmZWF0dXJlKSB7XG4gIEBlYWNoICRpdGVtIGluICRicmVha3BvaW50LXN0cmluZy1mZWF0dXJlcyB7XG4gICAgQGlmIGJyZWFrcG9pbnQtbWluLW1heCgkaXRlbSkge1xuICAgICAgQGlmICRmZWF0dXJlID09ICdtaW4tI3skaXRlbX0nIG9yICRmZWF0dXJlID09ICdtYXgtI3skaXRlbX0nIHtcbiAgICAgICAgQHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSBpZiAkZmVhdHVyZSA9PSAkaXRlbSB7XG4gICAgICBAcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG4gIEByZXR1cm4gZmFsc2U7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUmV0dXJucyB3aGV0aGVyIHRoZSBmZWF0dXJlIGlzIGEgbWVkaWEgdHlwZVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kYnJlYWtwb2ludC1tZWRpYS10eXBlczogICdhbGwnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAnYnJhaWxsZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdlbWJvc3NlZCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdoYW5kaGVsZCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdwcmludCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdwcm9qZWN0aW9uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NjcmVlbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdzcGVlY2gnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAndHR5JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3R2JztcblxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtaXMtbWVkaWEoJGZlYXR1cmUpIHtcbiAgQGVhY2ggJG1lZGlhIGluICRicmVha3BvaW50LW1lZGlhLXR5cGVzIHtcbiAgICBAaWYgKCRmZWF0dXJlID09ICRtZWRpYSkgb3IgKCRmZWF0dXJlID09ICdub3QgI3skbWVkaWF9Jykgb3IgKCRmZWF0dXJlID09ICdvbmx5ICN7JG1lZGlhfScpIHtcbiAgICAgIEByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIGZhbHNlO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFJldHVybnMgd2hldGhlciB0aGUgZmVhdHVyZSBjYW4gc3RhbmQgYWxvbmVcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZy1mZWF0dXJlczogJ2NvbG9yJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb2xvci1pbmRleCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZ3JpZCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbW9ub2Nocm9tZSc7XG5cbkBmdW5jdGlvbiBicmVha3BvaW50LXNpbmdsZS1zdHJpbmcoJGZlYXR1cmUpIHtcbiAgQGVhY2ggJGl0ZW0gaW4gJGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZy1mZWF0dXJlcyB7XG4gICAgQGlmICRmZWF0dXJlID09ICRpdGVtIHtcbiAgICAgIEByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cbiAgQHJldHVybiBmYWxzZTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBSZXR1cm5zIHdoZXRoZXIgdGhlIGZlYXR1cmVcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtaXMtcmVzb2x1dGlvbigkZmVhdHVyZSkge1xuICAkcmVzb2x1dGlvbnM6ICdkZXZpY2UtcGl4ZWwtcmF0aW8nLCAnZHByJztcblxuICBAaWYgYnJlYWtwb2ludC1nZXQoJ3RyYW5zZm9ybSByZXNvbHV0aW9ucycpIHtcbiAgICAkcmVzb2x1dGlvbnM6IGFwcGVuZCgkcmVzb2x1dGlvbnMsICdyZXNvbHV0aW9uJyk7XG4gIH1cblxuICBAZWFjaCAkcmVzbyBpbiAkcmVzb2x1dGlvbnMge1xuICAgIEBpZiBpbmRleCgkZmVhdHVyZSwgJHJlc28pIG9yIGluZGV4KCRmZWF0dXJlLCAnbWluLSN7JHJlc299Jykgb3IgaW5kZXgoJGZlYXR1cmUsICdtYXgtI3skcmVzb30nKSB7XG4gICAgICBAcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiBmYWxzZTtcbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSW1wb3J0IFBhcnNlciBQaWVjZXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCBcInBhcnNlcnMvcXVlcnlcIjtcbkBpbXBvcnQgXCJwYXJzZXJzL3NpbmdsZVwiO1xuQGltcG9ydCBcInBhcnNlcnMvZG91YmxlXCI7XG5AaW1wb3J0IFwicGFyc2Vycy90cmlwbGVcIjtcbkBpbXBvcnQgXCJwYXJzZXJzL3Jlc29sdXRpb25cIjtcblxuJE1lbW8tRXhpc3RzOiBmdW5jdGlvbi1leGlzdHMobWVtby1nZXQpIGFuZCBmdW5jdGlvbi1leGlzdHMobWVtby1zZXQpO1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEJyZWFrcG9pbnQgRnVuY3Rpb25cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGJyZWFrcG9pbnQoJHF1ZXJ5LCAkY29udGV4dHMuLi4pIHtcbiAgJHJ1bjogdHJ1ZTtcbiAgJHJldHVybjogKCk7XG5cbiAgLy8gR3JhYiB0aGUgTWVtbyBPdXRwdXQgaWYgTWVtb2l6YXRpb24gY2FuIGJlIGEgdGhpbmdcbiAgQGlmICRNZW1vLUV4aXN0cyB7XG4gICAgJHJldHVybjogbWVtby1nZXQoYnJlYWtwb2ludCwgYnJlYWtwb2ludCAkcXVlcnkgJGNvbnRleHRzKTtcblxuICAgIEBpZiAkcmV0dXJuICE9IG51bGwge1xuICAgICAgJHJ1bjogZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgQGlmIG5vdCAkTWVtby1FeGlzdHMgb3IgJHJ1biB7XG4gICAgLy8gSW50ZXJuYWwgVmFyaWFibGVzXG4gICAgJHF1ZXJ5LXN0cmluZzogJyc7XG4gICAgJHF1ZXJ5LWZhbGxiYWNrOiBmYWxzZTtcbiAgICAkcmV0dXJuOiAoKTtcblxuICAgIC8vIFJlc2VydmUgR2xvYmFsIFByaXZhdGUgQnJlYWtwb2ludCBDb250ZXh0XG4gICAgJGhvbGRlci1jb250ZXh0OiAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyO1xuICAgICRob2xkZXItcXVlcnktY291bnQ6ICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQ7XG5cbiAgICAvLyBSZXNldCBHbG9iYWwgUHJpdmF0ZSBCcmVha3BvaW50IENvbnRleHRcbiAgICAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyOiAoKSAhZ2xvYmFsO1xuICAgICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQ6IDAgIWdsb2JhbDtcblxuXG4gICAgLy8gVGVzdCB0byBzZWUgaWYgaXQncyBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0XG4gICAgJG9yLWxpc3Q6IGlmKGxpc3Qtc2VwYXJhdG9yKCRxdWVyeSkgPT0gJ2NvbW1hJywgdHJ1ZSwgZmFsc2UpO1xuXG5cbiAgICBAaWYgKCRvci1saXN0ID09IGZhbHNlIGFuZCBicmVha3BvaW50LWdldCgnbGVnYWN5IHN5bnRheCcpID09IGZhbHNlKSB7XG4gICAgICAkcXVlcnktc3RyaW5nOiBicmVha3BvaW50LXBhcnNlKCRxdWVyeSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICRsZW5ndGg6IGxlbmd0aCgkcXVlcnkpO1xuXG4gICAgICAkbGFzdDogbnRoKCRxdWVyeSwgJGxlbmd0aCk7XG4gICAgICAkcXVlcnktZmFsbGJhY2s6IGJyZWFrcG9pbnQtbm8tcXVlcnkoJGxhc3QpO1xuXG4gICAgICBAaWYgKCRxdWVyeS1mYWxsYmFjayAhPSBmYWxzZSkge1xuICAgICAgICAkbGVuZ3RoOiAkbGVuZ3RoIC0gMTtcbiAgICAgIH1cblxuICAgICAgQGlmIChicmVha3BvaW50LWdldCgnbGVnYWN5IHN5bnRheCcpID09IHRydWUpIHtcbiAgICAgICAgJG1xOiAoKTtcblxuICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICRtcTogYXBwZW5kKCRtcSwgbnRoKCRxdWVyeSwgJGkpLCBjb21tYSk7XG4gICAgICAgIH1cblxuICAgICAgICAkcXVlcnktc3RyaW5nOiBicmVha3BvaW50LXBhcnNlKCRtcSk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICRxdWVyeS1zdHJpbmc6ICcnO1xuICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICRxdWVyeS1zdHJpbmc6ICRxdWVyeS1zdHJpbmcgKyBpZigkaSA9PSAxLCAnJywgJywgJykgKyBicmVha3BvaW50LXBhcnNlKG50aCgkcXVlcnksICRpKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAkcmV0dXJuOiAoJ3F1ZXJ5JzogJHF1ZXJ5LXN0cmluZyxcbiAgICAgICAgJ2ZhbGxiYWNrJzogJHF1ZXJ5LWZhbGxiYWNrLFxuICAgICAgICAnY29udGV4dCBob2xkZXInOiAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLFxuICAgICAgICAncXVlcnkgY291bnQnOiAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50XG4gICAgKTtcbiAgICBAaWYgbGVuZ3RoKCRjb250ZXh0cykgPiAwIGFuZCBudGgoJGNvbnRleHRzLCAxKSAhPSBmYWxzZSB7XG4gICAgICBAaWYgJHF1ZXJ5LWZhbGxiYWNrICE9IGZhbHNlIHtcbiAgICAgICAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQoJ25vLXF1ZXJ5JywgJHF1ZXJ5LWZhbGxiYWNrKTtcbiAgICAgIH1cbiAgICAgICRjb250ZXh0LW1hcDogKCk7XG4gICAgICBAZWFjaCAkY29udGV4dCBpbiAkY29udGV4dHMge1xuICAgICAgICAkY29udGV4dC1tYXA6IG1hcC1tZXJnZSgkY29udGV4dC1tYXAsICgkY29udGV4dDogYnJlYWtwb2ludC1nZXQtY29udGV4dCgkY29udGV4dCkpKTtcbiAgICAgIH1cbiAgICAgICRyZXR1cm46IG1hcC1tZXJnZSgkcmV0dXJuLCAoY29udGV4dDogJGNvbnRleHQtbWFwKSk7XG4gICAgfVxuXG4gICAgLy8gUmVzZXQgR2xvYmFsIFByaXZhdGUgQnJlYWtwb2ludCBDb250ZXh0XG4gICAgJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcjogKCkgIWdsb2JhbDtcbiAgICAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50OiAwICFnbG9iYWw7XG5cbiAgICBAaWYgJE1lbW8tRXhpc3RzIHtcbiAgICAgICRob2xkZXI6IG1lbW8tc2V0KGJyZWFrcG9pbnQsIGJyZWFrcG9pbnQgJHF1ZXJ5ICRjb250ZXh0cywgJHJldHVybik7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkcmV0dXJuO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEdlbmVyYWwgQnJlYWtwb2ludCBQYXJzZXJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2UoJHF1ZXJ5KSB7XG4gIC8vIEluY3JlYXNlIG51bWJlciBvZiAnYW5kJyBxdWVyaWVzXG4gICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQ6ICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQgKyAxICFnbG9iYWw7XG5cbiAgLy8gU2V0IHVwIE1lZGlhIFR5cGVcbiAgJHF1ZXJ5LXByaW50OiAnJztcblxuICAkZm9yY2UtYWxsOiAoKGJyZWFrcG9pbnQtZ2V0KCdmb3JjZSBhbGwgbWVkaWEgdHlwZScpID09IHRydWUpIGFuZCAoYnJlYWtwb2ludC1nZXQoJ2RlZmF1bHQgbWVkaWEnKSA9PSAnYWxsJykpO1xuICAkZW1wdHktbWVkaWE6IHRydWU7XG4gIEBpZiAoJGZvcmNlLWFsbCA9PSB0cnVlKSBvciAoYnJlYWtwb2ludC1nZXQoJ2RlZmF1bHQgbWVkaWEnKSAhPSAnYWxsJykge1xuICAgIC8vIEZvcmNlIHRoZSBwcmludCBvZiB0aGUgZGVmYXVsdCBtZWRpYSB0eXBlIGlmIChmb3JjZSBhbGwgaXMgdHJ1ZSBhbmQgZGVmYXVsdCBtZWRpYSB0eXBlIGlzIGFsbCkgb3IgKGRlZmF1bHQgbWVkaWEgdHlwZSBpcyBub3QgYWxsKVxuICAgICRxdWVyeS1wcmludDogYnJlYWtwb2ludC1nZXQoJ2RlZmF1bHQgbWVkaWEnKTtcbiAgICAkZW1wdHktbWVkaWE6IGZhbHNlO1xuICB9XG5cblxuICAkcXVlcnktcmVzb2x1dGlvbjogZmFsc2U7XG5cbiAgJHF1ZXJ5LWhvbGRlcjogYnJlYWtwb2ludC1wYXJzZS1xdWVyeSgkcXVlcnkpO1xuXG5cblxuICAvLyBMb29wIG92ZXIgZWFjaCBwYXJzZWQgb3V0IHF1ZXJ5IGFuZCB3cml0ZSBpdCB0byAkcXVlcnktcHJpbnRcbiAgJGZpcnN0OiB0cnVlO1xuXG4gIEBlYWNoICRmZWF0dXJlIGluICRxdWVyeS1ob2xkZXIge1xuICAgICRsZW5ndGg6IGxlbmd0aCgkZmVhdHVyZSk7XG5cbiAgICAvLyBQYXJzZSBhIHNpbmdsZSBmZWF0dXJlXG4gICAgQGlmICgkbGVuZ3RoID09IDEpIHtcbiAgICAgIC8vIEZlYXR1cmUgaXMgY3VycmVudGx5IGEgbGlzdCwgZ3JhYiB0aGUgYWN0dWFsIHZhbHVlXG4gICAgICAkZmVhdHVyZTogbnRoKCRmZWF0dXJlLCAxKTtcblxuICAgICAgLy8gTWVkaWEgVHlwZSBtdXN0IGJ5IGNvbnZlbnRpb24gYmUgdGhlIGZpcnN0IGl0ZW0sIHNvIGl0J3Mgc2FmZSB0byBmbGF0IG92ZXJyaWRlICRxdWVyeS1wcmludCwgd2hpY2ggcmlnaHQgbm93IHNob3VsZCBvbmx5IGJlIHRoZSBkZWZhdWx0IG1lZGlhIHR5cGVcbiAgICAgIEBpZiAoYnJlYWtwb2ludC1pcy1tZWRpYSgkZmVhdHVyZSkpIHtcbiAgICAgICAgQGlmICgkZm9yY2UtYWxsID09IHRydWUpIG9yICgkZmVhdHVyZSAhPSAnYWxsJykge1xuICAgICAgICAgIC8vIEZvcmNlIHRoZSBwcmludCBvZiB0aGUgZGVmYXVsdCBtZWRpYSB0eXBlIGlmIChmb3JjZSBhbGwgaXMgdHJ1ZSBhbmQgZGVmYXVsdCBtZWRpYSB0eXBlIGlzIGFsbCkgb3IgKGRlZmF1bHQgbWVkaWEgdHlwZSBpcyBub3QgYWxsKVxuICAgICAgICAgICRxdWVyeS1wcmludDogJGZlYXR1cmU7XG4gICAgICAgICAgJGVtcHR5LW1lZGlhOiBmYWxzZTtcblxuICAgICAgICAgIC8vIFNldCBDb250ZXh0XG4gICAgICAgICAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQobWVkaWEsICRxdWVyeS1wcmludCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJHBhcnNlZDogYnJlYWtwb2ludC1wYXJzZS1zaW5nbGUoJGZlYXR1cmUsICRlbXB0eS1tZWRpYSwgJGZpcnN0KTtcbiAgICAgICAgJHF1ZXJ5LXByaW50OiAnI3skcXVlcnktcHJpbnR9ICN7JHBhcnNlZH0nO1xuICAgICAgICAkZmlyc3Q6IGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgICAvLyBQYXJzZSBhIGRvdWJsZSBmZWF0dXJlXG4gICAgQGVsc2UgaWYgKCRsZW5ndGggPT0gMikge1xuICAgICAgQGlmIChicmVha3BvaW50LWlzLXJlc29sdXRpb24oJGZlYXR1cmUpICE9IGZhbHNlKSB7XG4gICAgICAgICRxdWVyeS1yZXNvbHV0aW9uOiAkZmVhdHVyZTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJHBhcnNlZDogbnVsbDtcbiAgICAgICAgLy8gSWYgaXQncyBhIHN0cmluZy9udW1iZXIgcGFpcixcbiAgICAgICAgLy8gd2UgY2hlY2sgdG8gc2VlIGlmIG9uZSBpcyBhIHNpbmdsZS1zdHJpbmcgdmFsdWUsXG4gICAgICAgIC8vIHRoZW4gd2UgcGFyc2UgaXQgYXMgYSBub3JtYWwgZG91YmxlXG4gICAgICAgICRhbHBoYTogbnRoKCRmZWF0dXJlLCAxKTtcbiAgICAgICAgJGJldGE6IG50aCgkZmVhdHVyZSwgMik7XG4gICAgICAgIEBpZiBicmVha3BvaW50LXNpbmdsZS1zdHJpbmcoJGFscGhhKSBvciBicmVha3BvaW50LXNpbmdsZS1zdHJpbmcoJGJldGEpIHtcbiAgICAgICAgICAkcGFyc2VkOiBicmVha3BvaW50LXBhcnNlLXNpbmdsZSgkYWxwaGEsICRlbXB0eS1tZWRpYSwgJGZpcnN0KTtcbiAgICAgICAgICAkcXVlcnktcHJpbnQ6ICcjeyRxdWVyeS1wcmludH0gI3skcGFyc2VkfSc7XG4gICAgICAgICAgJGZpcnN0OiBmYWxzZTtcbiAgICAgICAgICAkcGFyc2VkOiBicmVha3BvaW50LXBhcnNlLXNpbmdsZSgkYmV0YSwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpO1xuICAgICAgICAgICRxdWVyeS1wcmludDogJyN7JHF1ZXJ5LXByaW50fSAjeyRwYXJzZWR9JztcbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgJHBhcnNlZDogYnJlYWtwb2ludC1wYXJzZS1kb3VibGUoJGZlYXR1cmUsICRlbXB0eS1tZWRpYSwgJGZpcnN0KTtcbiAgICAgICAgICAkcXVlcnktcHJpbnQ6ICcjeyRxdWVyeS1wcmludH0gI3skcGFyc2VkfSc7XG4gICAgICAgICAgJGZpcnN0OiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAvLyBQYXJzZSBhIHRyaXBsZSBmZWF0dXJlXG4gICAgQGVsc2UgaWYgKCRsZW5ndGggPT0gMykge1xuICAgICAgJHBhcnNlZDogYnJlYWtwb2ludC1wYXJzZS10cmlwbGUoJGZlYXR1cmUsICRlbXB0eS1tZWRpYSwgJGZpcnN0KTtcbiAgICAgICRxdWVyeS1wcmludDogJyN7JHF1ZXJ5LXByaW50fSAjeyRwYXJzZWR9JztcbiAgICAgICRmaXJzdDogZmFsc2U7XG4gICAgfVxuXG4gIH1cblxuICBAaWYgKCRxdWVyeS1yZXNvbHV0aW9uICE9IGZhbHNlKSB7XG4gICAgJHF1ZXJ5LXByaW50OiBicmVha3BvaW50LWJ1aWxkLXJlc29sdXRpb24oJHF1ZXJ5LXByaW50LCAkcXVlcnktcmVzb2x1dGlvbiwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpO1xuICB9XG5cbiAgLy8gTG9vcCB0aHJvdWdoIGVhY2ggZmVhdHVyZSB0aGF0J3MgYmVlbiBkZXRlY3RlZCBzbyBmYXIgYW5kIGFwcGVuZCAnZmFsc2UnIHRvIHRoZSB0aGUgdmFsdWUgbGlzdCB0byBpbmNyZW1lbnQgdGhlaXIgY291bnRlcnNcbiAgQGVhY2ggJGYsICR2IGluICRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXIge1xuICAgICR2LWhvbGRlcjogJHY7XG4gICAgJGxlbmd0aDogbGVuZ3RoKCR2LWhvbGRlcik7XG4gICAgQGlmIGxlbmd0aCgkdi1ob2xkZXIpIDwgJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudCB7XG4gICAgICBAZm9yICRpIGZyb20gJGxlbmd0aCB0byAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50IHtcbiAgICAgICAgQGlmICRmID09ICdtZWRpYScge1xuICAgICAgICAgICR2LWhvbGRlcjogYXBwZW5kKCR2LWhvbGRlciwgYnJlYWtwb2ludC1nZXQoJ2RlZmF1bHQgbWVkaWEnKSk7XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICR2LWhvbGRlcjogYXBwZW5kKCR2LWhvbGRlciwgZmFsc2UpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgICRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXI6IG1hcC1tZXJnZSgkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLCAoJGY6ICR2LWhvbGRlcikpICFnbG9iYWw7XG4gIH1cblxuICBAcmV0dXJuICRxdWVyeS1wcmludDtcbn1cbiIsIkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlLXF1ZXJ5KCRxdWVyeSkge1xuICAvLyBQYXJzZSBmZWF0dXJlcyBvdXQgb2YgYW4gaW5kaXZpZHVhbCBxdWVyeVxuICAkZmVhdHVyZS1ob2xkZXI6ICgpO1xuICAkcXVlcnktaG9sZGVyOiAoKTtcbiAgJGxlbmd0aDogbGVuZ3RoKCRxdWVyeSk7XG5cbiAgQGlmICRsZW5ndGggPT0gMiB7XG4gICAgLy8gSWYgd2UndmUgZ290IGEgc3RyaW5nL251bWJlciwgbnVtYmVyL3N0cmluZywgY2hlY2sgdG8gc2VlIGlmIGl0J3MgYSB2YWxpZCBzdHJpbmcvbnVtYmVyIHBhaXIgb3IgdHdvIHNpbmdsZXNcbiAgICBAaWYgKHR5cGUtb2YobnRoKCRxdWVyeSwgMSkpID09ICdzdHJpbmcnIGFuZCB0eXBlLW9mKG50aCgkcXVlcnksIDIpKSA9PSAnbnVtYmVyJykgb3IgKHR5cGUtb2YobnRoKCRxdWVyeSwgMSkpID09ICdudW1iZXInIGFuZCB0eXBlLW9mKG50aCgkcXVlcnksIDIpKSA9PSAnc3RyaW5nJykge1xuXG4gICAgICAkbnVtYmVyOiAnJztcbiAgICAgICR2YWx1ZTogJyc7XG5cbiAgICAgIEBpZiB0eXBlLW9mKG50aCgkcXVlcnksIDEpKSA9PSAnc3RyaW5nJyB7XG4gICAgICAgICRudW1iZXI6IG50aCgkcXVlcnksIDIpO1xuICAgICAgICAkdmFsdWU6IG50aCgkcXVlcnksIDEpO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkbnVtYmVyOiBudGgoJHF1ZXJ5LCAxKTtcbiAgICAgICAgJHZhbHVlOiBudGgoJHF1ZXJ5LCAyKTtcbiAgICAgIH1cblxuICAgICAgLy8gSWYgdGhlIHN0cmluZyB2YWx1ZSBjYW4gYmUgYSBzaW5nbGUgdmFsdWUsIGNoZWNrIHRvIHNlZSBpZiB0aGUgbnVtYmVyIHBhc3NlZCBpbiBpcyBhIHZhbGlkIGlucHV0IGZvciBzYWlkIHNpbmdsZSB2YWx1ZS4gRm9ydHVuYXRlbHksIGFsbCBjdXJyZW50IHNpbmdsZS12YWx1ZSBvcHRpb25zIG9ubHkgYWNjZXB0IHVuaXRsZXNzIG51bWJlcnMsIHNvIHRoaXMgY2hlY2sgaXMgZWFzeS5cbiAgICAgIEBpZiBicmVha3BvaW50LXNpbmdsZS1zdHJpbmcoJHZhbHVlKSB7XG4gICAgICAgIEBpZiB1bml0bGVzcygkbnVtYmVyKSB7XG4gICAgICAgICAgJGZlYXR1cmUtaG9sZGVyOiBhcHBlbmQoJHZhbHVlLCAkbnVtYmVyLCBzcGFjZSk7XG4gICAgICAgICAgJHF1ZXJ5LWhvbGRlcjogYXBwZW5kKCRxdWVyeS1ob2xkZXIsICRmZWF0dXJlLWhvbGRlciwgY29tbWEpO1xuICAgICAgICAgIEByZXR1cm4gJHF1ZXJ5LWhvbGRlcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLy8gSWYgdGhlIHN0cmluZyBpcyBhIG1lZGlhIHR5cGUsIHNwbGl0IHRoZSBxdWVyeVxuICAgICAgQGlmIGJyZWFrcG9pbnQtaXMtbWVkaWEoJHZhbHVlKSB7XG4gICAgICAgICRxdWVyeS1ob2xkZXI6IGFwcGVuZCgkcXVlcnktaG9sZGVyLCBudGgoJHF1ZXJ5LCAxKSk7XG4gICAgICAgICRxdWVyeS1ob2xkZXI6IGFwcGVuZCgkcXVlcnktaG9sZGVyLCBudGgoJHF1ZXJ5LCAyKSk7XG4gICAgICAgIEByZXR1cm4gJHF1ZXJ5LWhvbGRlcjtcbiAgICAgIH1cbiAgICAgIC8vIElmIGl0J3Mgbm90IGEgc2luZ2xlIGZlYXR1cmUsIHdlJ3JlIGp1c3QgZ29pbmcgdG8gYXNzdW1lIGl0J3MgYSBwcm9wZXIgc3RyaW5nL3ZhbHVlIHBhaXIsIGFuZCByb2xsIHdpdGggaXQuXG4gICAgICBAZWxzZSB7XG4gICAgICAgICRmZWF0dXJlLWhvbGRlcjogYXBwZW5kKCR2YWx1ZSwgJG51bWJlciwgc3BhY2UpO1xuICAgICAgICAkcXVlcnktaG9sZGVyOiBhcHBlbmQoJHF1ZXJ5LWhvbGRlciwgJGZlYXR1cmUtaG9sZGVyLCBjb21tYSk7XG4gICAgICAgIEByZXR1cm4gJHF1ZXJ5LWhvbGRlcjtcbiAgICAgIH1cblxuICAgIH1cbiAgICAvLyBJZiB0aGV5J3JlIGJvdGggbnVtYmVycywgd2UgYXNzdW1lIGl0J3MgYSBkb3VibGUgYW5kIHJvbGwgd2l0aCB0aGF0XG4gICAgQGVsc2UgaWYgKHR5cGUtb2YobnRoKCRxdWVyeSwgMSkpID09ICdudW1iZXInIGFuZCB0eXBlLW9mKG50aCgkcXVlcnksIDIpKSA9PSAnbnVtYmVyJykge1xuICAgICAgJGZlYXR1cmUtaG9sZGVyOiBhcHBlbmQobnRoKCRxdWVyeSwgMSksIG50aCgkcXVlcnksIDIpLCBzcGFjZSk7XG4gICAgICAkcXVlcnktaG9sZGVyOiBhcHBlbmQoJHF1ZXJ5LWhvbGRlciwgJGZlYXR1cmUtaG9sZGVyLCBjb21tYSk7XG4gICAgICBAcmV0dXJuICRxdWVyeS1ob2xkZXI7XG4gICAgfVxuICAgIC8vIElmIHRoZXkncmUgYm90aCBzdHJpbmdzIGFuZCBuZWl0aGVyIGFyZSBzaW5nbGVzLCB3ZSByb2xsIHdpdGggdGhhdC5cbiAgICBAZWxzZSBpZiAodHlwZS1vZihudGgoJHF1ZXJ5LCAxKSkgPT0gJ3N0cmluZycgYW5kIHR5cGUtb2YobnRoKCRxdWVyeSwgMikpID09ICdzdHJpbmcnKSB7XG4gICAgICBAaWYgbm90IGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZyhudGgoJHF1ZXJ5LCAxKSkgYW5kIG5vdCBicmVha3BvaW50LXNpbmdsZS1zdHJpbmcobnRoKCRxdWVyeSwgMikpIHtcbiAgICAgICAgJGZlYXR1cmUtaG9sZGVyOiBhcHBlbmQobnRoKCRxdWVyeSwgMSksIG50aCgkcXVlcnksIDIpLCBzcGFjZSk7XG4gICAgICAgICRxdWVyeS1ob2xkZXI6IGFwcGVuZCgkcXVlcnktaG9sZGVyLCAkZmVhdHVyZS1ob2xkZXIsIGNvbW1hKTtcbiAgICAgICAgQHJldHVybiAkcXVlcnktaG9sZGVyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkbGVuZ3RoID09IDMge1xuICAgIC8vIElmIHdlJ3ZlIGdvdCB0aHJlZSBpdGVtcyBhbmQgbm9uZSBpcyBhIGxpc3QsIHdlIGNoZWNrIHRvIHNlZVxuICAgIEBpZiB0eXBlLW9mKG50aCgkcXVlcnksIDEpKSAhPSAnbGlzdCcgYW5kIHR5cGUtb2YobnRoKCRxdWVyeSwgMikpICE9ICdsaXN0JyBhbmQgdHlwZS1vZihudGgoJHF1ZXJ5LCAzKSkgIT0gJ2xpc3QnIHtcbiAgICAgIC8vIElmIG5vbmUgb2YgdGhlIGl0ZW1zIGFyZSBzaW5nbGUgc3RyaW5nIHZhbHVlcyBhbmQgbm9uZSBvZiB0aGUgdmFsdWVzIGFyZSBtZWRpYSB2YWx1ZXMsIHdlJ3JlIGdvb2QuXG4gICAgICBAaWYgKG5vdCBicmVha3BvaW50LXNpbmdsZS1zdHJpbmcobnRoKCRxdWVyeSwgMSkpIGFuZCBub3QgYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKG50aCgkcXVlcnksIDIpKSBhbmQgbm90IGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZyhudGgoJHF1ZXJ5LCAzKSkpIGFuZCAgKChub3QgYnJlYWtwb2ludC1pcy1tZWRpYShudGgoJHF1ZXJ5LCAxKSkgYW5kIG5vdCBicmVha3BvaW50LWlzLW1lZGlhKG50aCgkcXVlcnksIDIpKSBhbmQgbm90IGJyZWFrcG9pbnQtaXMtbWVkaWEobnRoKCRxdWVyeSwgMykpKSkge1xuICAgICAgICAkZmVhdHVyZS1ob2xkZXI6IGFwcGVuZChudGgoJHF1ZXJ5LCAxKSwgbnRoKCRxdWVyeSwgMiksIHNwYWNlKTtcbiAgICAgICAgJGZlYXR1cmUtaG9sZGVyOiBhcHBlbmQoJGZlYXR1cmUtaG9sZGVyLCBudGgoJHF1ZXJ5LCAzKSwgc3BhY2UpO1xuICAgICAgICAkcXVlcnktaG9sZGVyOiBhcHBlbmQoJHF1ZXJ5LWhvbGRlciwgJGZlYXR1cmUtaG9sZGVyLCBjb21tYSk7XG4gICAgICAgIEByZXR1cm4gJHF1ZXJ5LWhvbGRlcjtcbiAgICAgIH1cbiAgICAgIC8vIGxldCdzIGNoZWNrIHRvIHNlZSBpZiB0aGUgZmlyc3QgaXRlbSBpcyBhIG1lZGlhIHR5cGVcbiAgICAgIEBlbHNlIGlmIGJyZWFrcG9pbnQtaXMtbWVkaWEobnRoKCRxdWVyeSwgMSkpIHtcbiAgICAgICAgJHF1ZXJ5LWhvbGRlcjogYXBwZW5kKCRxdWVyeS1ob2xkZXIsIG50aCgkcXVlcnksIDEpKTtcbiAgICAgICAgJGZlYXR1cmUtaG9sZGVyOiBhcHBlbmQobnRoKCRxdWVyeSwgMiksIG50aCgkcXVlcnksIDMpLCBzcGFjZSk7XG4gICAgICAgICRxdWVyeS1ob2xkZXI6IGFwcGVuZCgkcXVlcnktaG9sZGVyLCAkZmVhdHVyZS1ob2xkZXIpO1xuICAgICAgICBAcmV0dXJuICRxdWVyeS1ob2xkZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gSWYgaXQncyBhIHNpbmdsZSBpdGVtLCBvciBpZiBpdCdzIG5vdCBhIHNwZWNpYWwgY2FzZSBkb3VibGUgb3IgdHJpcGxlLCB3ZSBjYW4gc2ltcGx5IHJldHVybiB0aGUgcXVlcnkuXG4gIEByZXR1cm4gJHF1ZXJ5O1xufVxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBJbXBvcnQgUGllY2VzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBpbXBvcnQgXCJzaW5nbGUvZGVmYXVsdFwiO1xuXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1wYXJzZS1zaW5nbGUoJGZlYXR1cmUsICRlbXB0eS1tZWRpYSwgJGZpcnN0KSB7XG4gICRwYXJzZWQ6ICcnO1xuICAkbGVhZGVyOiAnJztcbiAgLy8gSWYgd2UncmUgZm9yY2luZ1xuICBAaWYgbm90ICgkZW1wdHktbWVkaWEpIG9yIG5vdCAoJGZpcnN0KSB7XG4gICAgJGxlYWRlcjogJ2FuZCAnO1xuICB9XG5cbiAgLy8gSWYgaXQncyBhIHNpbmdsZSBmZWF0dXJlIHRoYXQgY2FuIHN0YW5kIGFsb25lLCB3ZSBsZXQgaXRcbiAgQGlmIChicmVha3BvaW50LXNpbmdsZS1zdHJpbmcoJGZlYXR1cmUpKSB7XG4gICAgJHBhcnNlZDogJGZlYXR1cmU7XG4gICAgLy8gU2V0IENvbnRleHRcbiAgICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dCgkZmVhdHVyZSwgJGZlYXR1cmUpO1xuICB9XG4gIC8vIElmIGl0J3Mgbm90IGEgc3RhbmQgYWxvbmUgZmVhdHVyZSwgd2UgcGFzcyBpdCBvZmYgdG8gdGhlIGRlZmF1bHQgaGFuZGxlci5cbiAgQGVsc2Uge1xuICAgICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2UtZGVmYXVsdCgkZmVhdHVyZSk7XG4gIH1cblxuICBAcmV0dXJuICRsZWFkZXIgKyAnKCcgKyAkcGFyc2VkICsgJyknO1xufVxuIiwiQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2UtZGVmYXVsdCgkZmVhdHVyZSkge1xuICAkZGVmYXVsdDogYnJlYWtwb2ludC1nZXQoJ2RlZmF1bHQgZmVhdHVyZScpO1xuXG4gIC8vIFNldCBDb250ZXh0XG4gICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KCRkZWZhdWx0LCAkZmVhdHVyZSk7XG5cbiAgQGlmIChicmVha3BvaW50LWdldCgndG8gZW1zJykgPT0gdHJ1ZSkgYW5kICh0eXBlLW9mKCRmZWF0dXJlKSA9PSAnbnVtYmVyJykge1xuICAgIEByZXR1cm4gJyN7JGRlZmF1bHR9OiAje2JyZWFrcG9pbnQtdG8tYmFzZS1lbSgkZmVhdHVyZSl9JztcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiAnI3skZGVmYXVsdH06ICN7JGZlYXR1cmV9JztcbiAgfVxufVxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBJbXBvcnQgUGllY2VzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBpbXBvcnQgXCJkb3VibGUvZGVmYXVsdC1wYWlyXCI7XG5AaW1wb3J0IFwiZG91YmxlL2RvdWJsZS1zdHJpbmdcIjtcbkBpbXBvcnQgXCJkb3VibGUvZGVmYXVsdFwiO1xuXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1wYXJzZS1kb3VibGUoJGZlYXR1cmUsICRlbXB0eS1tZWRpYSwgJGZpcnN0KSB7XG4gICRwYXJzZWQ6ICcnO1xuICAkbGVhZGVyOiAnJztcbiAgLy8gSWYgd2UncmUgZm9yY2luZ1xuICBAaWYgbm90ICgkZW1wdHktbWVkaWEpIG9yIG5vdCAoJGZpcnN0KSB7XG4gICAgJGxlYWRlcjogJ2FuZCAnO1xuICB9XG5cbiAgJGZpcnN0OiBudGgoJGZlYXR1cmUsIDEpO1xuICAkc2Vjb25kOiBudGgoJGZlYXR1cmUsIDIpO1xuXG4gIC8vIElmIHdlJ3ZlIGdvdCB0d28gbnVtYmVycywgd2Uga25vdyB3ZSBuZWVkIHRvIHVzZSB0aGUgZGVmYXVsdCBwYWlyIGJlY2F1c2UgdGhlcmUgYXJlIG5vIG1lZGlhIHF1ZXJpZXMgdGhhdCBoYXMgYSBtZWRpYSBmZWF0dXJlIHRoYXQgaXMgYSBudW1iZXJcbiAgQGlmIHR5cGUtb2YoJGZpcnN0KSA9PSAnbnVtYmVyJyBhbmQgdHlwZS1vZigkc2Vjb25kKSA9PSAnbnVtYmVyJyB7XG4gICAgJHBhcnNlZDogYnJlYWtwb2ludC1wYXJzZS1kZWZhdWx0LXBhaXIoJGZpcnN0LCAkc2Vjb25kKTtcbiAgfVxuICAvLyBJZiB0aGV5IGFyZSBib3RoIHN0cmluZ3MsIHdlIHNlbmQgaXQgdGhyb3VnaCB0aGUgc3RyaW5nIHBhcnNlclxuICBAZWxzZSBpZiB0eXBlLW9mKCRmaXJzdCkgPT0gJ3N0cmluZycgYW5kIHR5cGUtb2YoJHNlY29uZCkgPT0gJ3N0cmluZycge1xuICAgICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2UtZG91YmxlLXN0cmluZygkZmlyc3QsICRzZWNvbmQpO1xuICB9XG4gIC8vIElmIGl0J3MgYSBzdHJpbmcvbnVtYmVyIHBhaXIsIHdlIHBhcnNlIGl0IGFzIGEgbm9ybWFsIGRvdWJsZVxuICBAZWxzZSB7XG4gICAgJHBhcnNlZDogYnJlYWtwb2ludC1wYXJzZS1kb3VibGUtZGVmYXVsdCgkZmlyc3QsICRzZWNvbmQpO1xuICB9XG5cbiAgQHJldHVybiAkbGVhZGVyICsgJHBhcnNlZDtcbn1cbiIsIkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlLWRlZmF1bHQtcGFpcigkZmlyc3QsICRzZWNvbmQpIHtcbiAgJGRlZmF1bHQ6IGJyZWFrcG9pbnQtZ2V0KCdkZWZhdWx0IHBhaXInKTtcbiAgJG1pbjogJyc7XG4gICRtYXg6ICcnO1xuXG4gIC8vIFNvcnQgaW50byBtaW4gYW5kIG1heFxuICAkbWluOiBtaW4oJGZpcnN0LCAkc2Vjb25kKTtcbiAgJG1heDogbWF4KCRmaXJzdCwgJHNlY29uZCk7XG5cbiAgLy8gU2V0IENvbnRleHRcbiAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQobWluLSN7JGRlZmF1bHR9LCAkbWluKTtcbiAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQobWF4LSN7JGRlZmF1bHR9LCAkbWF4KTtcblxuICAvLyBNYWtlIHRoZW0gRU1zIGlmIG5lZWQgYmVcbiAgQGlmIChicmVha3BvaW50LWdldCgndG8gZW1zJykgPT0gdHJ1ZSkge1xuICAgICRtaW46IGJyZWFrcG9pbnQtdG8tYmFzZS1lbSgkbWluKTtcbiAgICAkbWF4OiBicmVha3BvaW50LXRvLWJhc2UtZW0oJG1heCk7XG4gIH1cblxuICBAcmV0dXJuICcobWluLSN7JGRlZmF1bHR9OiAjeyRtaW59KSBhbmQgKG1heC0jeyRkZWZhdWx0fTogI3skbWF4fSknO1xufVxuIiwiQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2UtZG91YmxlLXN0cmluZygkZmlyc3QsICRzZWNvbmQpIHtcbiAgJGZlYXR1cmU6ICcnO1xuICAkdmFsdWU6ICcnO1xuXG4gIC8vIFRlc3QgdG8gc2VlIHdoaWNoIGlzIHRoZSBmZWF0dXJlIGFuZCB3aGljaCBpcyB0aGUgdmFsdWVcbiAgQGlmIChicmVha3BvaW50LXN0cmluZy12YWx1ZSgkZmlyc3QpID09IHRydWUpIHtcbiAgICAkZmVhdHVyZTogJGZpcnN0O1xuICAgICR2YWx1ZTogJHNlY29uZDtcbiAgfVxuICBAZWxzZSB7XG4gICAgJGZlYXR1cmU6ICRzZWNvbmQ7XG4gICAgJHZhbHVlOiAkZmlyc3Q7XG4gIH1cblxuICAvLyBTZXQgQ29udGV4dFxuICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dCgkZmVhdHVyZSwgJHZhbHVlKTtcblxuICBAcmV0dXJuICcoI3skZmVhdHVyZX06ICN7JHZhbHVlfSknO1xufVxuIiwiQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2UtZG91YmxlLWRlZmF1bHQoJGZpcnN0LCAkc2Vjb25kKSB7XG4gICRmZWF0dXJlOiAnJztcbiAgJHZhbHVlOiAnJztcblxuICBAaWYgdHlwZS1vZigkZmlyc3QpID09ICdzdHJpbmcnIHtcbiAgICAkZmVhdHVyZTogJGZpcnN0O1xuICAgICR2YWx1ZTogJHNlY29uZDtcbiAgfVxuICBAZWxzZSB7XG4gICAgJGZlYXR1cmU6ICRzZWNvbmQ7XG4gICAgJHZhbHVlOiAkZmlyc3Q7XG4gIH1cblxuICAvLyBTZXQgQ29udGV4dFxuICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dCgkZmVhdHVyZSwgJHZhbHVlKTtcblxuICBAaWYgKGJyZWFrcG9pbnQtZ2V0KCd0byBlbXMnKSA9PSB0cnVlKSB7XG4gICAgJHZhbHVlOiBicmVha3BvaW50LXRvLWJhc2UtZW0oJHZhbHVlKTtcbiAgfVxuXG4gIEByZXR1cm4gJygjeyRmZWF0dXJlfTogI3skdmFsdWV9KSdcbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSW1wb3J0IFBpZWNlc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AaW1wb3J0IFwidHJpcGxlL2RlZmF1bHRcIjtcblxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2UtdHJpcGxlKCRmZWF0dXJlLCAkZW1wdHktbWVkaWEsICRmaXJzdCkge1xuICAkcGFyc2VkOiAnJztcbiAgJGxlYWRlcjogJyc7XG5cbiAgLy8gSWYgd2UncmUgZm9yY2luZ1xuICBAaWYgbm90ICgkZW1wdHktbWVkaWEpIG9yIG5vdCAoJGZpcnN0KSB7XG4gICAgJGxlYWRlcjogJ2FuZCAnO1xuICB9XG5cbiAgLy8gc2VwYXJhdGUgdGhlIHN0cmluZyBmZWF0dXJlcyBmcm9tIHRoZSB2YWx1ZSBudW1iZXJzXG4gICRzdHJpbmc6IG51bGw7XG4gICRudW1iZXJzOiBudWxsO1xuICBAZWFjaCAkdmFsIGluICRmZWF0dXJlIHtcbiAgICBAaWYgdHlwZS1vZigkdmFsKSA9PSBzdHJpbmcge1xuICAgICAgJHN0cmluZzogJHZhbDtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGlmIHR5cGUtb2YoJG51bWJlcnMpID09ICdudWxsJyB7XG4gICAgICAgICRudW1iZXJzOiAkdmFsO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkbnVtYmVyczogYXBwZW5kKCRudW1iZXJzLCAkdmFsKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAkcGFyc2VkOiBicmVha3BvaW50LXBhcnNlLXRyaXBsZS1kZWZhdWx0KCRzdHJpbmcsIG50aCgkbnVtYmVycywgMSksIG50aCgkbnVtYmVycywgMikpO1xuXG4gIEByZXR1cm4gJGxlYWRlciArICRwYXJzZWQ7XG5cbn1cbiIsIkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlLXRyaXBsZS1kZWZhdWx0KCRmZWF0dXJlLCAkZmlyc3QsICRzZWNvbmQpIHtcblxuICAvLyBTb3J0IGludG8gbWluIGFuZCBtYXhcbiAgJG1pbjogbWluKCRmaXJzdCwgJHNlY29uZCk7XG4gICRtYXg6IG1heCgkZmlyc3QsICRzZWNvbmQpO1xuXG4gIC8vIFNldCBDb250ZXh0XG4gICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KG1pbi0jeyRmZWF0dXJlfSwgJG1pbik7XG4gICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KG1heC0jeyRmZWF0dXJlfSwgJG1heCk7XG5cbiAgLy8gTWFrZSB0aGVtIEVNcyBpZiBuZWVkIGJlXG4gIEBpZiAoYnJlYWtwb2ludC1nZXQoJ3RvIGVtcycpID09IHRydWUpIHtcbiAgICAkbWluOiBicmVha3BvaW50LXRvLWJhc2UtZW0oJG1pbik7XG4gICAgJG1heDogYnJlYWtwb2ludC10by1iYXNlLWVtKCRtYXgpO1xuICB9XG5cbiAgQHJldHVybiAnKG1pbi0jeyRmZWF0dXJlfTogI3skbWlufSkgYW5kIChtYXgtI3skZmVhdHVyZX06ICN7JG1heH0pJztcbn1cbiIsIkBpbXBvcnQgXCJyZXNvbHV0aW9uL3Jlc29sdXRpb25cIjtcblxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtYnVpbGQtcmVzb2x1dGlvbigkcXVlcnktcHJpbnQsICRxdWVyeS1yZXNvbHV0aW9uLCAkZW1wdHktbWVkaWEsICRmaXJzdCkge1xuICAkbGVhZGVyOiAnJztcbiAgLy8gSWYgd2UncmUgZm9yY2luZ1xuICBAaWYgbm90ICgkZW1wdHktbWVkaWEpIG9yIG5vdCAoJGZpcnN0KSB7XG4gICAgJGxlYWRlcjogJ2FuZCAnO1xuICB9XG5cbiAgQGlmIGJyZWFrcG9pbnQtZ2V0KCd0cmFuc2Zvcm0gcmVzb2x1dGlvbnMnKSBhbmQgJHF1ZXJ5LXJlc29sdXRpb24ge1xuICAgICRyZXNvbHV0aW9uczogYnJlYWtwb2ludC1tYWtlLXJlc29sdXRpb25zKCRxdWVyeS1yZXNvbHV0aW9uKTtcbiAgICAkbGVuZ3RoOiBsZW5ndGgoJHJlc29sdXRpb25zKTtcbiAgICAkcXVlcnktaG9sZGVyOiAnJztcblxuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAkcXVlcnk6ICcjeyRxdWVyeS1wcmludH0gI3skbGVhZGVyfSN7bnRoKCRyZXNvbHV0aW9ucywgJGkpfSc7XG4gICAgICBAaWYgJGkgPT0gMSB7XG4gICAgICAgICRxdWVyeS1ob2xkZXI6ICRxdWVyeTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJHF1ZXJ5LWhvbGRlcjogJyN7JHF1ZXJ5LWhvbGRlcn0sICN7JHF1ZXJ5fSc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQHJldHVybiAkcXVlcnktaG9sZGVyO1xuICB9XG4gIEBlbHNlIHtcbiAgICAvLyBSZXR1cm4gd2l0aCBhdHRhY2hlZCByZXNvbHV0aW9uXG4gICAgQHJldHVybiAkcXVlcnktcHJpbnQ7XG4gIH1cbn1cbiIsIkBmdW5jdGlvbiBicmVha3BvaW50LW1ha2UtcmVzb2x1dGlvbnMoJHJlc29sdXRpb24pIHtcbiAgJGxlbmd0aDogbGVuZ3RoKCRyZXNvbHV0aW9uKTtcblxuICAkb3V0cHV0OiAoKTtcblxuICBAaWYgJGxlbmd0aCA9PSAyIHtcbiAgICAkZmVhdHVyZTogJyc7XG4gICAgJHZhbHVlOiAnJztcblxuICAgIC8vIEZpbmQgd2hpY2ggaXMgbnVtYmVyXG4gICAgQGlmIHR5cGUtb2YobnRoKCRyZXNvbHV0aW9uLCAxKSkgPT0gJ251bWJlcicge1xuICAgICAgJHZhbHVlOiBudGgoJHJlc29sdXRpb24sIDEpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkdmFsdWU6IG50aCgkcmVzb2x1dGlvbiwgMik7XG4gICAgfVxuXG4gICAgLy8gRGV0ZXJtaW5lIG1pbi9tYXgvc3RhbmRhcmRcbiAgICBAaWYgaW5kZXgoJHJlc29sdXRpb24sICdtaW4tcmVzb2x1dGlvbicpIHtcbiAgICAgICRmZWF0dXJlOiAnbWluLSc7XG4gICAgfVxuICAgIEBlbHNlIGlmIGluZGV4KCRyZXNvbHV0aW9uLCAnbWF4LXJlc29sdXRpb24nKSB7XG4gICAgICAkZmVhdHVyZTogJ21heC0nO1xuICAgIH1cblxuICAgICRzdGFuZGFyZDogJygjeyRmZWF0dXJlfXJlc29sdXRpb246ICN7JHZhbHVlfSknO1xuXG4gICAgLy8gSWYgd2UncmUgbm90IGRlYWxpbmcgd2l0aCBkcHB4LFxuICAgIEBpZiB1bml0KCR2YWx1ZSkgIT0gJ2RwcHgnIHtcbiAgICAgICRiYXNlOiA5NmRwaTtcbiAgICAgIEBpZiB1bml0KCR2YWx1ZSkgPT0gJ2RwY20nIHtcbiAgICAgICAgJGJhc2U6IDI0My44NGRwY207XG4gICAgICB9XG4gICAgICAvLyBXcml0ZSBvdXQgZmVhdHVyZSB0ZXN0c1xuICAgICAgJHdlYmtpdDogJyc7XG4gICAgICAkbW96OiAnJztcbiAgICAgICR3ZWJraXQ6ICcoLXdlYmtpdC0jeyRmZWF0dXJlfWRldmljZS1waXhlbC1yYXRpbzogI3skdmFsdWUgLyAkYmFzZX0pJztcbiAgICAgICRtb3o6ICcoI3skZmVhdHVyZX0tbW96LWRldmljZS1waXhlbC1yYXRpbzogI3skdmFsdWUgLyAkYmFzZX0pJztcbiAgICAgIC8vIEFwcGVuZCB0byBvdXRwdXRcbiAgICAgICRvdXRwdXQ6IGFwcGVuZCgkb3V0cHV0LCAkc3RhbmRhcmQsIHNwYWNlKTtcbiAgICAgICRvdXRwdXQ6IGFwcGVuZCgkb3V0cHV0LCAkd2Via2l0LCBzcGFjZSk7XG4gICAgICAkb3V0cHV0OiBhcHBlbmQoJG91dHB1dCwgJG1veiwgc3BhY2UpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkd2Via2l0OiAnJztcbiAgICAgICRtb3o6ICcnO1xuICAgICAgJHdlYmtpdDogJygtd2Via2l0LSN7JGZlYXR1cmV9ZGV2aWNlLXBpeGVsLXJhdGlvOiAjeyR2YWx1ZSAvIDFkcHB4fSknO1xuICAgICAgJG1vejogJygjeyRmZWF0dXJlfS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAjeyR2YWx1ZSAvIDFkcHB4fSknO1xuICAgICAgJGZhbGxiYWNrOiAnKCN7JGZlYXR1cmV9cmVzb2x1dGlvbjogI3skdmFsdWUgLyAxZHBweCAqIDk2ZHBpfSknO1xuICAgICAgLy8gQXBwZW5kIHRvIG91dHB1dFxuICAgICAgJG91dHB1dDogYXBwZW5kKCRvdXRwdXQsICRzdGFuZGFyZCwgc3BhY2UpO1xuICAgICAgJG91dHB1dDogYXBwZW5kKCRvdXRwdXQsICR3ZWJraXQsIHNwYWNlKTtcbiAgICAgICRvdXRwdXQ6IGFwcGVuZCgkb3V0cHV0LCAkbW96LCBzcGFjZSk7XG4gICAgICAkb3V0cHV0OiBhcHBlbmQoJG91dHB1dCwgJGZhbGxiYWNrLCBzcGFjZSk7XG4gICAgfVxuXG4gIH1cblxuICBAcmV0dXJuICRvdXRwdXQ7XG59XG4iLCJAZnVuY3Rpb24gYnJlYWtwb2ludC1uby1xdWVyeSgkcXVlcnkpIHtcbiAgQGlmIHR5cGUtb2YoJHF1ZXJ5KSA9PSAnbGlzdCcge1xuICAgICRrZXl3b3JkOiBudGgoJHF1ZXJ5LCAxKTtcblxuICAgIEBpZiB0eXBlLW9mKCRrZXl3b3JkKSA9PSAnc3RyaW5nJyBhbmQgKCRrZXl3b3JkID09ICduby1xdWVyeScgb3IgJGtleXdvcmQgPT0gJ25vIHF1ZXJ5JyBvciAka2V5d29yZCA9PSAnZmFsbGJhY2snKSB7XG4gICAgICBAcmV0dXJuIG50aCgkcXVlcnksIDIpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBmYWxzZTtcbiAgfVxufVxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBEZWZhdWx0IHRoZSBCcmVha3BvaW50cyB2YXJpYWJsZVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kYnJlYWtwb2ludHM6ICgpICFkZWZhdWx0O1xuJEJSRUFLUE9JTlRTOiAoKSAhZGVmYXVsdDtcblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBSZXNwb25kLXRvIEFQSSBNaXhpblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AbWl4aW4gcmVzcG9uZC10bygkY29udGV4dCwgJG5vLXF1ZXJ5OiBmYWxzZSkge1xuICBAaWYgbGVuZ3RoKCRicmVha3BvaW50cykgPiAwIGFuZCBsZW5ndGgoJEJSRUFLUE9JTlRTKSA9PSAwIHtcbiAgICBAd2FybiBcIkluIG9yZGVyIHRvIGF2b2lkIHZhcmlhYmxlIG5hbWVzcGFjZSBjb2xsaXNpb25zLCB3ZSBoYXZlIHVwZGF0ZWQgdGhlIHdheSB0byBhZGQgYnJlYWtwb2ludHMgZm9yIHJlc3BvbmQtdG8uIFBsZWFzZSBjaGFuZ2UgYWxsIGluc3RhbmNlcyBvZiBgJGJyZWFrcG9pbnRzOiBhZGQtYnJlYWtwb2ludCgpYCB0byBgQGluY2x1ZGUgYWRkLWJyZWFrcG9pbnQoKWAuIFRoZSBgYWRkLWJyZWFrcG9pbnQoKWAgZnVuY3Rpb24gd2lsbCBiZSBkZXByZWNhdGVkIGluIGEgZnV0dXJlIHJlbGVhc2UuXCI7XG4gICAgJEJSRUFLUE9JTlRTOiAkYnJlYWtwb2ludHMgIWdsb2JhbDtcbiAgICAkYnJlYWtwb2ludHM6ICgpICFnbG9iYWw7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkQlJFQUtQT0lOVFMpICE9ICdtYXAnIHtcbiAgICAvLyBKdXN0IGluIGNhc2Ugc29tZW9uZSB3cml0ZXMgZ2liYmVyaXNoIHRvIHRoZSAkYnJlYWtwb2ludHMgdmFyaWFibGUuXG4gICAgQHdhcm4gXCJZb3VyIGJyZWFrcG9pbnRzIGFyZW4ndCBhIG1hcCEgU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9zbnVndWcvcmVzcG9uZC10byNhcGkgaWYgeW91J2QgbGlrZSBhIHJlbWluZGVyIG9uIGhvdyB0byB1c2UgUmVzcG9uZC10b1wiO1xuICAgIEBjb250ZW50O1xuICB9XG4gIEBlbHNlIGlmIG1hcC1oYXMta2V5KCRCUkVBS1BPSU5UUywgJGNvbnRleHQpIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1hcC1nZXQoJEJSRUFLUE9JTlRTLCAkY29udGV4dCksICRuby1xdWVyeSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmIG5vdCBtYXAtaGFzLWtleSgkQlJFQUtQT0lOVFMsICRjb250ZXh0KSB7XG4gICAgQHdhcm4gXCJgI3skY29udGV4dH1gIGlzbid0IGEgZGVmaW5lZCBicmVha3BvaW50ISBQbGVhc2UgYWRkIGl0IHVzaW5nIGAkYnJlYWtwb2ludHM6IGFkZC1icmVha3BvaW50KGAjeyRjb250ZXh0fWAsICR2YWx1ZSk7YFwiO1xuICAgIEBjb250ZW50O1xuICB9XG4gIEBlbHNlIHtcbiAgICBAd2FybiBcIllvdSBoYXZlbid0IGNyZWF0ZWQgYW55IGJyZWFrcG9pbnRzIHlldCEgTWFrZSBzb21lIGFscmVhZHkhIFNlZSBodHRwczovL2dpdGh1Yi5jb20vc251Z3VnL3Jlc3BvbmQtdG8jYXBpIGlmIHlvdSdkIGxpa2UgYSByZW1pbmRlciBvbiBob3cgdG8gdXNlIFJlc3BvbmQtdG9cIjtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEFkZCBCcmVha3BvaW50IHRvIEJyZWFrcG9pbnRzXG4vLyBUT0RPOiBSZW1vdmUgZnVuY3Rpb24gaW4gbmV4dCByZWxlYXNlXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBhZGQtYnJlYWtwb2ludCgkbmFtZSwgJGJrcHQsICRvdmVyd3JpdGU6IGZhbHNlKSB7XG4gICRvdXRwdXQ6ICgkbmFtZTogJGJrcHQpO1xuXG4gIEBpZiBsZW5ndGgoJGJyZWFrcG9pbnRzKSA9PSAwIHtcbiAgICBAcmV0dXJuICRvdXRwdXQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICRuYW1lKSBhbmQgJG92ZXJ3cml0ZSAhPSB0cnVlIHtcbiAgICAgIEB3YXJuIFwiWW91IGFscmVhZHkgaGF2ZSBhIGJyZWFrcG9pbnQgbmFtZWQgYCN7JG5hbWV9YCwgcGxlYXNlIGNob29zZSBhbm90aGVyIGJyZWFrcG9pbnQgbmFtZSwgb3IgcGFzcyBpbiBgJG92ZXJ3cml0ZTogdHJ1ZWAgdG8gb3ZlcndyaXRlIHRoZSBwcmV2aW91cyBicmVha3BvaW50LlwiO1xuICAgICAgQHJldHVybiAkYnJlYWtwb2ludHM7XG4gICAgfVxuICAgIEBlbHNlIGlmIG5vdCBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICRuYW1lKSBvciAkb3ZlcndyaXRlID09IHRydWUge1xuICAgICAgQHJldHVybiBtYXAtbWVyZ2UoJGJyZWFrcG9pbnRzLCAkb3V0cHV0KTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGFkZC1icmVha3BvaW50KCRuYW1lLCAkYmtwdCwgJG92ZXJ3cml0ZTogZmFsc2UpIHtcbiAgJG91dHB1dDogKCRuYW1lOiAkYmtwdCk7XG5cbiAgQGlmIGxlbmd0aCgkQlJFQUtQT0lOVFMpID09IDAge1xuICAgICRCUkVBS1BPSU5UUzogJG91dHB1dCAhZ2xvYmFsO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJEJSRUFLUE9JTlRTLCAkbmFtZSkgYW5kICRvdmVyd3JpdGUgIT0gdHJ1ZSB7XG4gICAgICBAd2FybiBcIllvdSBhbHJlYWR5IGhhdmUgYSBicmVha3BvaW50IG5hbWVkIGAjeyRuYW1lfWAsIHBsZWFzZSBjaG9vc2UgYW5vdGhlciBicmVha3BvaW50IG5hbWUsIG9yIHBhc3MgaW4gYCRvdmVyd3JpdGU6IHRydWVgIHRvIG92ZXJ3cml0ZSB0aGUgcHJldmlvdXMgYnJlYWtwb2ludC5cIjtcbiAgICAgICRCUkVBS1BPSU5UUzogJEJSRUFLUE9JTlRTICFnbG9iYWw7XG4gICAgfVxuICAgIEBlbHNlIGlmIG5vdCBtYXAtaGFzLWtleSgkQlJFQUtQT0lOVFMsICRuYW1lKSBvciAkb3ZlcndyaXRlID09IHRydWUge1xuICAgICAgJEJSRUFLUE9JTlRTOiBtYXAtbWVyZ2UoJEJSRUFLUE9JTlRTLCAkb3V0cHV0KSAhZ2xvYmFsO1xuICAgIH1cbiAgfVxufSIsIkBtaXhpbiBsZWdhY3ktc2V0dGluZ3Mtd2FybmluZyB7XG4gICRsZWdhY3lWYXJzOiAoXG4gICAgJ2RlZmF1bHQtbWVkaWEnOiAnZGVmYXVsdCBtZWRpYScsXG4gICAgJ2RlZmF1bHQtZmVhdHVyZSc6ICdkZWZhdWx0IGZlYXR1cmUnLFxuICAgICdmb3JjZS1tZWRpYS1hbGwnOiAnZm9yY2UgYWxsIG1lZGlhIHR5cGUnLFxuICAgICd0by1lbXMnOiAndG8gZW1zJyxcbiAgICAncmVzb2x1dGlvbnMnOiAndHJhbnNmb3JtIHJlc29sdXRpb25zJyxcbiAgICAnbm8tcXVlcmllcyc6ICdubyBxdWVyaWVzJyxcbiAgICAnbm8tcXVlcnktZmFsbGJhY2tzJzogJ25vIHF1ZXJ5IGZhbGxiYWNrcycsXG4gICAgJ2Jhc2UtZm9udC1zaXplJzogJ2Jhc2UgZm9udCBzaXplJyxcbiAgICAnbGVnYWN5LXN5bnRheCc6ICdsZWdhY3kgc3ludGF4J1xuICApO1xuXG4gIEBlYWNoICRsZWdhY3ksICRuZXcgaW4gJGxlZ2FjeVZhcnMge1xuICAgIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKCdicmVha3BvaW50LScgKyAkbGVnYWN5KSB7XG4gICAgICBAd2FybiBcIkluIG9yZGVyIHRvIGF2b2lkIHZhcmlhYmxlIG5hbXNwYWNlIGNvbGxpc2lvbnMsIHdlIGhhdmUgdXBkYXRlZCB0aGUgd2F5IHRvIGNoYW5nZSBzZXR0aW5ncyBmb3IgQnJlYWtwb2ludC4gUGxlYXNlIGNoYW5nZSBhbGwgaW5zdGFuY2VzIG9mIGAkYnJlYWtwb2ludC0jeyRsZWdhY3l9OiB7e3NldHRpbmd9fWAgdG8gYEBpbmNsdWRlIGJyZWFrcG9pbnQtc2V0KCcjeyRuZXd9Jywge3tzZXR0aW5nfX0pYC4gVmFyaWFibGUgc2V0dGluZ3MsIGFzIHdlbGwgYXMgdGhpcyB3YXJuaW5nIHdpbGwgYmUgZGVwcmVjYXRlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLlwiXG4gICAgfVxuICB9O1xuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAvLyBIYW5kIGNvcnJlY3QgZWFjaCBzZXR0aW5nXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygnYnJlYWtwb2ludC1kZWZhdWx0LW1lZGlhJykgYW5kICRicmVha3BvaW50LWRlZmF1bHQtbWVkaWEgIT0gYnJlYWtwb2ludC1nZXQoJ2RlZmF1bHQgbWVkaWEnKSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludC1zZXQoJ2RlZmF1bHQgbWVkaWEnLCAkYnJlYWtwb2ludC1kZWZhdWx0LW1lZGlhKTtcbiAgfVxuICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygnYnJlYWtwb2ludC1kZWZhdWx0LWZlYXR1cmUnKSBhbmQgJGJyZWFrcG9pbnQtZGVmYXVsdC1mZWF0dXJlICE9IGJyZWFrcG9pbnQtZ2V0KCdkZWZhdWx0IGZlYXR1cmUnKSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludC1zZXQoJ2RlZmF1bHQgZmVhdHVyZScsICRicmVha3BvaW50LWRlZmF1bHQtZmVhdHVyZSk7XG4gIH1cbiAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoJ2JyZWFrcG9pbnQtZm9yY2UtbWVkaWEtYWxsJykgYW5kICRicmVha3BvaW50LWZvcmNlLW1lZGlhLWFsbCAhPSBicmVha3BvaW50LWdldCgnZm9yY2UgYWxsIG1lZGlhIHR5cGUnKSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludC1zZXQoJ2ZvcmNlIGFsbCBtZWRpYSB0eXBlJywgJGJyZWFrcG9pbnQtZm9yY2UtbWVkaWEtYWxsKTtcbiAgfVxuICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygnYnJlYWtwb2ludC10by1lbXMnKSBhbmQgJGJyZWFrcG9pbnQtdG8tZW1zICE9IGJyZWFrcG9pbnQtZ2V0KCd0byBlbXMnKSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludC1zZXQoJ3RvIGVtcycsICRicmVha3BvaW50LXRvLWVtcyk7XG4gIH1cbiAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoJ2JyZWFrcG9pbnQtcmVzb2x1dGlvbnMnKSBhbmQgJGJyZWFrcG9pbnQtcmVzb2x1dGlvbnMgIT0gYnJlYWtwb2ludC1nZXQoJ3RyYW5zZm9ybSByZXNvbHV0aW9ucycpIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50LXNldCgndHJhbnNmb3JtIHJlc29sdXRpb25zJywgJGJyZWFrcG9pbnQtcmVzb2x1dGlvbnMpO1xuICB9XG4gIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKCdicmVha3BvaW50LW5vLXF1ZXJpZXMnKSBhbmQgJGJyZWFrcG9pbnQtbm8tcXVlcmllcyAhPSBicmVha3BvaW50LWdldCgnbm8gcXVlcmllcycpIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50LXNldCgnbm8gcXVlcmllcycsICRicmVha3BvaW50LW5vLXF1ZXJpZXMpO1xuICB9XG4gIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKCdicmVha3BvaW50LW5vLXF1ZXJ5LWZhbGxiYWNrcycpIGFuZCAkYnJlYWtwb2ludC1uby1xdWVyeS1mYWxsYmFja3MgIT0gYnJlYWtwb2ludC1nZXQoJ25vIHF1ZXJ5IGZhbGxiYWNrcycpIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50LXNldCgnbm8gcXVlcnkgZmFsbGJhY2tzJywgJGJyZWFrcG9pbnQtbm8tcXVlcnktZmFsbGJhY2tzKTtcbiAgfVxuICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygnYnJlYWtwb2ludC1iYXNlLWZvbnQtc2l6ZScpIGFuZCAkYnJlYWtwb2ludC1iYXNlLWZvbnQtc2l6ZSAhPSBicmVha3BvaW50LWdldCgnYmFzZSBmb250IHNpemUnKSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludC1zZXQoJ2Jhc2UgZm9udCBzaXplJywgJGJyZWFrcG9pbnQtYmFzZS1mb250LXNpemUpO1xuICB9XG4gIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKCdicmVha3BvaW50LWxlZ2FjeS1zeW50YXgnKSBhbmQgJGJyZWFrcG9pbnQtbGVnYWN5LXN5bnRheCAhPSBicmVha3BvaW50LWdldCgnbGVnYWN5IHN5bnRheCcpIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50LXNldCgnbGVnYWN5IHN5bnRheCcsICRicmVha3BvaW50LWxlZ2FjeS1zeW50YXgpO1xuICB9XG59IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBEZWZhdWx0IFNldHRpbmdzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRTaW5ndWxhcml0eS1TZXR0aW5nczogKFxuICAnZ3JpZHMnOiAoLTFweDogMTIpLFxuICAnZ3V0dGVycyc6ICgtMXB4OiAuMjUpLFxuICAnZ3V0dGVyIHN0eWxlcyc6ICgtMXB4OiAnb3Bwb3NpdGUnKSxcbiAgJ291dHB1dCc6ICdpc29sYXRpb24nLFxuICAnZGlyZWN0aW9uJzogJ2x0cicsXG4gICdtb2JpbGUgZmlyc3QnOiB0cnVlLFxuICAnaW5jbHVkZSBib3JkZXIgYm94JzogZmFsc2UsXG4gICdpbmNsdWRlIGNsZWFyZml4JzogZmFsc2UsXG4gICdiYWNrZ3JvdW5kIGdyaWQgY29sb3InOiBjaG9jb2xhdGUsXG4gICdhc3ltbWV0cmljIG91dHB1dCc6ICdpc29sYXRpb24nLFxuICAnY2FsYyBpbmNsdWRlIG1pbi13aWR0aCc6IHRydWUsXG4gICdkZWJ1Zyc6IGZhbHNlXG4pO1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFVzZXIgU2V0dGluZ3Ncbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJHNpbmd1bGFyaXR5OiAoKSAhZGVmYXVsdDtcblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBJbXBvcnQgR2VuZXJhbCBIZWxwZXJzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBpbXBvcnQgXCJzaW5ndWxhcml0eWdzL2hlbHBlcnNcIjtcblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBJbXBvcnQgTGFuZ3VhZ2UgSGVscGVyc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AaW1wb3J0IFwic2luZ3VsYXJpdHlncy9sYW5ndWFnZVwiO1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEltcG9ydCBNYXRoXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBpbXBvcnQgXCJzaW5ndWxhcml0eWdzL21hdGhcIjtcblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBJbXBvcnQgR3JpZCBIZWxwZXJzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBpbXBvcnQgXCJzaW5ndWxhcml0eWdzL2dyaWRzXCI7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSW1wb3J0IEd1dHRlcnMgSGVscGVyc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AaW1wb3J0IFwic2luZ3VsYXJpdHlncy9ndXR0ZXJzXCI7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSW1wb3J0IEd1dHRlciBTdHlsZXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCBcInNpbmd1bGFyaXR5Z3MvZ3V0dGVyLXN0eWxlc1wiO1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEltcG9ydCBBUElzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBpbXBvcnQgXCJzaW5ndWxhcml0eWdzL2FwaVwiOyIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gU2V0dGluZyBIZWxwZXJzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBpbXBvcnQgXCJoZWxwZXJzL3NldHRpbmdzXCI7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQ29kZSBIZWxwZXJzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBpbXBvcnQgXCJoZWxwZXJzL2ZpbmRcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3Nhc3MtbGlzdHNcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2NvbHVtbnNcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3NwYW4tc2hhcmVkXCI7XG5AaW1wb3J0IFwiaGVscGVycy9kaXJlY3Rpb25zXCI7XG5AaW1wb3J0IFwiaGVscGVycy9zb3J0XCI7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gVUkgSGVscGVyc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AaW1wb3J0IFwiaGVscGVycy9iYWNrZ3JvdW5kLWdyaWRcIjtcblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBMYXlvdXQgSGVscGVyc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AaW1wb3J0IFwiaGVscGVycy9sYXlvdXRcIjsiLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEhhcyBTZXR0aW5nXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBzZ3MtaGFzKCRzZXR0aW5nKSB7XG4gIEBpZiBtYXAtaGFzLWtleSgkc2luZ3VsYXJpdHksICRzZXR0aW5nKSB7XG4gICAgQHJldHVybiB0cnVlO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gR2V0IFNldHRpbmdzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBzZ3MtZ2V0KCRzZXR0aW5nKSB7XG4gIEBpZiBzZ3MtaGFzKCRzZXR0aW5nKSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRzaW5ndWxhcml0eSwgJHNldHRpbmcpO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJFNpbmd1bGFyaXR5LVNldHRpbmdzLCAkc2V0dGluZyk7XG4gIH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBTZXQgU2V0dGluZ3Ncbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIHNncy1zZXQoJHNldHRpbmcsICR2YWx1ZSkge1xuICBAaWYgKHN0ci1pbmRleCgkc2V0dGluZywgJy0nKSBvciBzdHItaW5kZXgoJHNldHRpbmcsICdfJykpIGFuZCBzdHItaW5kZXgoJHNldHRpbmcsICcgJykgPT0gbnVsbCB7XG4gICAgQHdhcm4gXCJXb3JkcyBpbiBTaW5ndWxhcml0eSBzZXR0aW5ncyBzaG91bGQgYmUgc3BhY2VzLCBub3QgZGFzaGVzIG9yIHVuZGVyc2NvcmVzLiBQbGVhc2UgcmVwbGFjZSBkYXNoZXMgYW5kIHVuZGVyc2NvcmVzIGJldHdlZW4gd29yZHMgd2l0aCBzcGFjZXMuIFNldHRpbmdzIHdpbGwgbm90IHdvcmsgYXMgZXhwZWN0ZWQgdW50aWwgY2hhbmdlZC5cIjtcbiAgfVxuICAkc2luZ3VsYXJpdHk6IG1hcC1tZXJnZSgkc2luZ3VsYXJpdHksICgkc2V0dGluZzogJHZhbHVlKSkgIWdsb2JhbDtcbiAgQHJldHVybiB0cnVlO1xufVxuXG5AbWl4aW4gc2dzLWNoYW5nZSgkc2V0dGluZywgJHZhbHVlKSB7XG4gICRzZ3MtY2hhbmdlOiBzZ3Mtc2V0KCRzZXR0aW5nLCAkdmFsdWUpO1xufVxuXG5AbWl4aW4gc2dzLXNldCgkc2V0dGluZywgJHZhbHVlKSB7XG4gIEBpbmNsdWRlIHNncy1jaGFuZ2UoJHNldHRpbmcsICR2YWx1ZSk7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUmVtb3ZlIFNldHRpbmdcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIHNncy1yZXNldCgkc2V0dGluZ3MuLi4pIHtcbiAgQGlmIGxlbmd0aCgkc2V0dGluZ3MpID09IDEge1xuICAgICRzZXR0aW5nczogbnRoKCRzZXR0aW5ncywgMSk7XG4gIH1cblxuICBAZWFjaCAkc2V0dGluZyBpbiAkc2V0dGluZ3Mge1xuICAgICRzaW5ndWxhcml0eTogbWFwLXJlbW92ZSgkc2luZ3VsYXJpdHksICRzZXR0aW5nKSAhZ2xvYmFsO1xuICB9XG4gIEByZXR1cm4gdHJ1ZTtcbn1cblxuQG1peGluIHNncy1yZXNldCgkc2V0dGluZ3MuLi4pIHtcbiAgJHNncy1yZXNldDogc2dzLXJlc2V0KCRzZXR0aW5ncyk7XG59IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBGaW5kIE9iamVjdCBLZXlzXG4vL1xuLy8gUmV0dXJuc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gZmluZC1vYmplY3Qta2V5cygkaGF5c3RhY2spIHtcbiAgJEtleXM6IG1hcC1rZXlzKCRoYXlzdGFjayk7XG4gICRMaXN0OiAoKTtcbiAgQGVhY2ggJEtleSBpbiAkS2V5cyB7XG4gICAgQGlmICRLZXkgIT0gLTFweCB7XG4gICAgICBAaWYgdW5pdCgkS2V5KSA9PSAnZW0nIHtcbiAgICAgICAgJEtleTogJEtleSAvIDFlbSAqIDE2cHg7XG4gICAgICB9XG4gICAgICAkTGlzdDogYXBwZW5kKCRMaXN0LCAkS2V5KTtcbiAgICB9XG4gIH1cbiAgQHJldHVybiBxdWlja3NvcnQoJExpc3QpO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEZpbmQgT2JqZWN0XG4vL1xuLy8gRmluZHMgcmVsZXZhbnQgb2JqZWN0XG4vLyBNdXN0IGJlIHVzaW5nIEJyZWFrcG9pbnQgdG8gd29yayBwcm9wZXJseVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gZmluZC1vYmplY3QoJGhheXN0YWNrLCAkdXNlci1vYmplY3Q6IG51bGwpIHtcbiAgLy8gSWYgYSB1c2VyIG9iamVjdCBoYXMgYmVlbiBwYXNzZWQgaW4sIGJ5cGFzcyB0aGUgd2hvbGUgZnVuY3Rpb24gYW5kIGp1c3QgcmV0dXJuIHRoYXQgb2JqZWN0LlxuICBAaWYgJHVzZXItb2JqZWN0ICE9IG51bGwgYW5kICR1c2VyLW9iamVjdCAhPSBmYWxzZSB7XG4gICAgQHJldHVybiAkdXNlci1vYmplY3Q7XG4gIH1cblxuICAkTGVuZ3RoOiBsZW5ndGgoJGhheXN0YWNrKTtcbiAgJE1vYmlsZS1GaXJzdDogc2dzLWdldCgnbW9iaWxlIGZpcnN0Jyk7XG5cbiAgLy8gSGF5c3RhY2sgbXVzdCBiZSBtYXBcbiAgQGlmIHR5cGUtb2YoJGhheXN0YWNrKSAhPSAnbWFwJyB7XG4gICAgQHdhcm4gXCJERVBSRUNBVElPTjogSW4gb3JkZXIgdG8gcmVtb3ZlIGdsb2JhbCB2YXJpYWJsZSBuYW1pbmcgY29uZmxpY3RzLCBTaW5ndWxhcml0eSdzIHNldHRpbmdzIGhhdmUgYmVlbiBtb3ZlZCBpbnRvIHRoZSBzaW5nbGUgYCRzaW5ndWxhcml0eWAgdmFyaWFibGUuIFBsZWFzZSByZWZlciB0byBvdXIgZG9jdW1lbnRhdGlvbiAoaHR0cHM6Ly9naXRodWIuY29tL1RlYW0tU2Fzcy9TaW5ndWxhcml0eS93aWtpKSBvbiBob3cgdG8gdXBkYXRlIHlvdXIgc2V0dGluZ3MuIEluIHRoZSBuZXh0IHZlcnNpb24gb2YgU2luZ3VsYXJpdHksIHRoaXMgd2FybmluZyB3aWxsIGJlIHJlbW92ZWQuICN7bnRoKCRoYXlzdGFjaywgMSl9IGhhcyBiZWVuIHJldHVybmVkLlwiO1xuICAgIEByZXR1cm4gbnRoKCRoYXlzdGFjaywgMSk7XG4gIH1cblxuICAvLyBHcmFiIEJyZWFrcG9pbnQgQ29udGV4dFxuICBAaWYgbm90IGZ1bmN0aW9uLWV4aXN0cyhicmVha3BvaW50LWdldC1jb250ZXh0KSB7XG4gICAgQHdhcm4gXCJSZXNwb25zaXZlIGNvbnRleHRzIHJlcXVpcmUgQnJlYWtwb2ludCAoaHR0cHM6Ly9naXRodWIuY29tL1RlYW0tU2Fzcy9icmVha3BvaW50KS4gUGxlYXNlIGVuc3VyZSB0aGF0IEJyZWFrcG9pbnQgaXMgaW1wb3J0ZWQgYW5kIGF2YWlsYWJsZSBmb3IgU2luZ3VsYXJpdHkgdG8gdXNlLiBGaXJzdCBpdGVtIHVzZWQuXCI7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRoYXlzdGFjaywgLTFweCk7XG4gIH1cbiAgLy8gR2V0IEJyZWFrcG9pbnQgQ29udGV4dHNcbiAgJFF1ZXJ5LU1pbjogYnJlYWtwb2ludC1nZXQtY29udGV4dCgnbWluLXdpZHRoJyk7XG4gICRRdWVyeS1NYXg6IGJyZWFrcG9pbnQtZ2V0LWNvbnRleHQoJ21heC13aWR0aCcpO1xuXG4gIEBpZiBsZW5ndGgoJFF1ZXJ5LU1pbikgPT0gMSB7XG4gICAgJFF1ZXJ5LU1pbjogbnRoKCRRdWVyeS1NaW4sIDEpO1xuICB9XG4gIEBlbHNlIGlmIGxlbmd0aCgkUXVlcnktTWluKSA+IDEge1xuICAgIEB3YXJuIFwiUmVzcG9uc2l2ZSBjb250ZXh0cyBhcmUgbm90IGF2YWlsYWJsZSBmb3IgYG9yYCBxdWVyaWVzIGFzIHdoaWNoIHF1ZXJ5IHRvIHVzZSBpcyBhbWJpZ3VvdXMuIFBsZWFzZSBvbmx5IHVzZSBzaW5nbGUgY29udGV4dCBxdWVyaWVzLiBEZWZhdWx0IGNvbnRleHQgaXMgdXNlZC5cIjtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJGhheXN0YWNrLCAtMXB4KTtcbiAgfVxuXG5cbiAgQGlmICRMZW5ndGggPiAxIHtcbiAgICBAaWYgbGVuZ3RoKCRRdWVyeS1NYXgpID09IDEge1xuICAgICAgJFF1ZXJ5LU1heDogbnRoKCRRdWVyeS1NYXgsIDEpO1xuICAgIH1cbiAgICBAZWxzZSBpZiBsZW5ndGgoJFF1ZXJ5LU1heCkgPiAxIHtcbiAgICAgIEB3YXJuIFwiUmVzcG9uc2l2ZSBjb250ZXh0cyBhcmUgbm90IGF2YWlsYWJsZSBmb3IgYG9yYCBxdWVyaWVzIGFzIHdoaWNoIHF1ZXJ5IHRvIHVzZSBpcyBhbWJpZ3VvdXMuIFBsZWFzZSBvbmx5IHVzZSBzaW5nbGUgY29udGV4dCBxdWVyaWVzLiBEZWZhdWx0IGNvbnRleHQgaXMgdXNlZC5cIjtcbiAgICAgIEByZXR1cm4gbWFwLWdldCgkaGF5c3RhY2ssIC0xcHgpO1xuICAgIH1cblxuICAgIC8vIElmIHRoZXJlIGlzIG5vIG1pbiBvciBtYXggY29udGV4dCwgcmV0dXJuIGZpcnN0IGl0ZW1cbiAgICBAaWYgJFF1ZXJ5LU1pbiA9PSBmYWxzZSBhbmQgJFF1ZXJ5LU1heCA9PSBmYWxzZSB7XG4gICAgICAkUkVUVVJOOiBtYXAtZ2V0KCRoYXlzdGFjaywgLTFweCk7XG4gICAgICBAcmV0dXJuICRSRVRVUk47XG4gICAgfVxuXG4gICAgLy8gQ29udmVydCB0byBQWFxuICAgIEBpZiAkUXVlcnktTWluICE9IGZhbHNlIGFuZCAgdW5pdCgkUXVlcnktTWluKSA9PSAnZW0nIHtcbiAgICAgICRRdWVyeS1NaW46ICRRdWVyeS1NaW4gLyAxZW0gKiAxNnB4O1xuICAgIH1cbiAgICBAaWYgJFF1ZXJ5LU1heCAhPSBmYWxzZSBhbmQgdW5pdCgkUXVlcnktTWF4KSA9PSAnZW0nIHtcbiAgICAgICRRdWVyeS1NYXg6ICRRdWVyeS1NYXggLyAxZW0gKiAxNnB4O1xuICAgIH1cblxuICAgICRGaW5kLUhheXN0YWNrOiBmaW5kLW9iamVjdC1rZXlzKCRoYXlzdGFjayk7XG4gICAgJFJldmVyc2UtSGF5c3RhY2s6IHJldmVyc2UoJEZpbmQtSGF5c3RhY2spO1xuXG4gICAgJFNtYWxsZXN0OiBudGgoJEZpbmQtSGF5c3RhY2ssIDEpO1xuICAgICRMYXJnZXN0OiBudGgoJFJldmVyc2UtSGF5c3RhY2ssIDEpO1xuICAgICRDb250ZXh0OiAkUXVlcnktTWluO1xuXG4gICAgQGlmIG5vdCAkTW9iaWxlLUZpcnN0IHtcbiAgICAgICRDb250ZXh0OiAkUXVlcnktTWF4O1xuICAgIH1cblxuICAgIC8vIExvb3Agb3ZlciBlYWNoIGl0ZW0gaW4gQ29udGV4dCB0byBmaW5kIGlmIGFueSBvZiB0aGUgaXRlbXMgcGFzcy5cbiAgICBAZWFjaCAkUXVlcnktQ29udGV4dCBpbiAkQ29udGV4dCB7XG4gICAgICBAaWYgJFF1ZXJ5LUNvbnRleHQgIT0gZmFsc2Uge1xuICAgICAgICAvLyBJZiBpdCdzIHNtYWxsZXN0IHRoYW4gdGhlIHNtYWxsZXN0IE1RLCB1c2UgdGhlIDFzdCBncmlkXG4gICAgICAgIEBpZiAkUXVlcnktQ29udGV4dCA8ICRTbWFsbGVzdCB7XG4gICAgICAgICAgJFJFVFVSTjogbWFwLWdldCgkaGF5c3RhY2ssIC0xcHgpO1xuICAgICAgICAgIEByZXR1cm4gJFJFVFVSTjtcbiAgICAgICAgfVxuICAgICAgICAvLyBJZiBpdCdzIGxhcmdlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSBsYXJnZXN0IE1RLCB1c2UgdGhlIGxhc3QgZ3JpZFxuICAgICAgICBAZWxzZSBpZiAkUXVlcnktQ29udGV4dCA+PSAkTGFyZ2VzdCB7XG4gICAgICAgICAgJFJFVFVSTjogbWFwLWdldCgkaGF5c3RhY2ssICRMYXJnZXN0KTtcbiAgICAgICAgICBAcmV0dXJuICRSRVRVUk47XG4gICAgICAgIH1cbiAgICAgICAgLy8gSWYgaXQncyBpbiBiZXR3ZWVuIHRoZSBzbWFsbGVzdCBhbmQgbGFyZ2VzdCwgZ28gcnVuIGEgY2hlY2suXG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAvLyBMb29wIHRocm91Z2ggZWFjaCBNUS5cbiAgICAgICAgICBAZm9yICRqIGZyb20gMSB0aHJvdWdoIGxlbmd0aCgkUmV2ZXJzZS1IYXlzdGFjaykge1xuICAgICAgICAgICAgJFF1ZXJ5OiBudGgoJFJldmVyc2UtSGF5c3RhY2ssICRqKTtcblxuICAgICAgICAgICAgLy8gSWYgdGhlIE1RIGlzIGdyZWF0aGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhlIHRoZSBNUSBpbiBxdWVzdGlvbiwgdXNlIGl0ISAobW9iaWxlIGZpcnN0KVxuICAgICAgICAgICAgQGlmICgkTW9iaWxlLUZpcnN0KSB7XG4gICAgICAgICAgICAgIEBpZiAkUXVlcnktQ29udGV4dCA+PSAkUXVlcnkge1xuICAgICAgICAgICAgICAgICRSRVRVUk46IG1hcC1nZXQoJGhheXN0YWNrLCBudGgoJFJldmVyc2UtSGF5c3RhY2ssICRqKSk7XG4gICAgICAgICAgICAgICAgQHJldHVybiAkUkVUVVJOO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBJZiB0aGUgTVEgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoZSB0aGUgTVEgaW4gcXVlc3Rpb24sIHVzZSBpdCEgKG5vdCBtb2JpbGUgZmlyc3QpXG4gICAgICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICAgIEBpZiAkUXVlcnktQ29udGV4dCA8PSAkUXVlcnkge1xuICAgICAgICAgICAgICAgICRSRVRVUk46IG1hcC1nZXQoJGhheXN0YWNrLCBudGgoJFJldmVyc2UtSGF5c3RhY2ssICRqKSk7XG4gICAgICAgICAgICAgICAgQHJldHVybiAkUkVUVVJOO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC8vIEFsbCBlbHNlIGZhaWxzLCByZXR1cm4gdGhlIGZpcnN0IGl0ZW1cbiAgQGVsc2Uge1xuICAgICRSRVRVUk46IG1hcC1nZXQoJGhheXN0YWNrLCAtMXB4KTtcbiAgICBAcmV0dXJuICRSRVRVUk47XG4gIH1cbn0iLCIvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFNhc3MgTGlzdCBIZWxwZXJzXG4vL1xuLy8gLSBsaXN0LXN1bSgpXG4vLyAtIHF1ZXJ5LWxpc3QoKVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEZ1bmN0aW9uc1xuXG4vLyBSZXR1cm4gdGhlIHN1bSBvZiBhbGwgaXRlbXMgaW4gYSBsaXN0LlxuLy9cbi8vIGxpc3Qtc3VtKCRsaXN0KVxuLy8gLSAkbGlzdCAgOiA8bGlzdD5cbkBmdW5jdGlvbiBsaXN0LXN1bSgkbGlzdCkge1xuICAkc3VtOiAwO1xuICBAZWFjaCAkaXRlbSBpbiAkbGlzdCB7XG4gICAgJHN1bTogJHN1bSArICRpdGVtO1xuICB9XG4gIEByZXR1cm4gJHN1bTtcbn1cblxuLy8gUmV0dXJuIGxpc3Qgb2YgaW5kZXggbG9jYXRpb25zIHdoZXJlIGEgcXVlcnkgYXBwZWFycyBpbiBhIGxpc3QsXG4vLyBpbmNsdWRpbmcgdW5pdCBxdWVyaWVzLlxuLy9cbi8vIHF1ZXJ5LWxpc3QoJGxpc3QsICRxdWVyeSBbLCAkbW9kZV0pXG4vLyAtICRsaXN0ICAgIDogPGxpc3Q+XG4vLyAtICRxdWVyeSAgIDogPGFueXRoaW5nPlxuLy8gLSAkbW9kZSAgICA6IG5vbmUgfCB1bml0XG4vLyAgICAgICAgICAgIC0gXCJub25lXCIgKGRlZmF1bHQpIHJ1bnMgYSBzdGFuZGFyZCBxdWVyeS5cbi8vICAgICAgICAgICAgLSBcInVuaXRcIiBmaW5kcyBhbGwgaXRlbXMgd2l0aCB0aGUgc2FtZSB1bml0LlxuQGZ1bmN0aW9uIHF1ZXJ5LWxpc3QoXG4gICRsaXN0LFxuICAkcXVlcnksXG4gICRtb2RlOiBub25lXG4pIHtcbiAgJHJldHVybjogKCk7XG5cbiAgLy8gbG9vcCB0aHJvdWdoICRsaXN0XG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggbGVuZ3RoKCRsaXN0KSB7XG4gICAgQGlmICRtb2RlID09IHVuaXQge1xuICAgICAgLy8gaWYgdGhlIGxpc3QgaXRlbSBtYXRjaGVzIHRoZSBxdWVyeSwgd3JpdGUgd2hlcmUgaXQgaXMgdG8gdGhlIGxpc3QuXG4gICAgICBAaWYgdW5pdChudGgoJGxpc3QsICRpKSkgPT0gJHF1ZXJ5IHtcbiAgICAgICAgJHJldHVybjogYXBwZW5kKCRyZXR1cm4sICRpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgLy8gaWYgdGhlIGxpc3QgaXRlbSBtYXRjaGVzIHRoZSBxdWVyeSwgd3JpdGUgd2hlcmUgaXQgaXMgdG8gdGhlIGxpc3QuXG4gICAgICBAaWYgbnRoKG50aCgkbGlzdCwgJGkpLCAxKSA9PSAkcXVlcnkge1xuICAgICAgICAkcmV0dXJuOiBhcHBlbmQoJHJldHVybiwgJGkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIGlmIG5vdGhpbmcgbWF0Y2hlcyB0aGVuIHJldHVybiBmYWxzZS5cbiAgQGlmICRyZXR1cm4gPT0gKCkge1xuICAgICRyZXR1cm46IGZhbHNlO1xuICB9XG5cbiAgLy8gcmV0dXJuIGxpc3QuXG4gIEByZXR1cm4gJHJldHVybjtcbn1cblxuLy8gUmV2ZXJzZXMgZGlyZWN0aW9uIG9mIGEgbGlzdFxuQGZ1bmN0aW9uIHJldmVyc2UoJGxpc3QpIHtcbiAgJGxlbmd0aDogbGVuZ3RoKCRsaXN0KTtcbiAgJHJldHVybjogKCk7XG4gIEBmb3IgJGkgZnJvbSAwIHRvICRsZW5ndGgge1xuICAgICRyZXR1cm46IGFwcGVuZCgkcmV0dXJuLCBudGgoJGxpc3QsICRsZW5ndGggLSAkaSkpO1xuICB9XG4gIEByZXR1cm4gJHJldHVybjtcbn0iLCJAZnVuY3Rpb24gZW5kLXJvdygkc3BhbiwgJGxvY2F0aW9uLCAkY29sdW1ucykge1xuICBAaWYgJGxvY2F0aW9uID09ICdsYXN0JyBvciAkbG9jYXRpb24gPT0gJ29tZWdhJyB7XG4gICAgQHJldHVybiB0cnVlO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAaWYgJGxvY2F0aW9uICsgKCRzcGFuIC0gMSkgPT0gY29sdW1uLWNvdW50KCRjb2x1bW5zKSB7XG4gICAgICBAcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG59XG5cbkBmdW5jdGlvbiBzdGFydC1yb3coJGxvY2F0aW9uKSB7XG4gIEBpZiAkbG9jYXRpb24gPT0gJ2ZpcnN0JyBvciAkbG9jYXRpb24gPT0gJ2FscGhhJyB7XG4gICAgQHJldHVybiB0cnVlO1xuICB9XG4gIEBlbHNlIGlmICRsb2NhdGlvbiA9PSAxIHtcbiAgICBAcmV0dXJuIHRydWU7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cbn0iLCJAbWl4aW4gc3Bhbi1zaGFyZWQge1xuICAkaW5jbHVkZS1ib3JkZXItYm94OiBzZ3MtZ2V0KCdpbmNsdWRlIGJvcmRlciBib3gnKTtcbiAgJGluY2x1ZGUtY2xlYXJmaXg6IHNncy1nZXQoJ2luY2x1ZGUgY2xlYXJmaXgnKTtcblxuICBAaWYgJGluY2x1ZGUtYm9yZGVyLWJveCB7XG4gICAgQGlmIG1peGluLWV4aXN0cyhib3gtc2l6aW5nKSB7XG4gICAgICBAaW5jbHVkZSBib3gtc2l6aW5nKGJvcmRlci1ib3gpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkaW5jbHVkZS1jbGVhcmZpeCB7XG4gICAgQGlmIG1peGluLWV4aXN0cyhjbGVhcmZpeCkge1xuICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBGaW5kIE9wcG9zaXRlIERpcmVjdGlvblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gb3Bwb3NpdGUtZGlyZWN0aW9uKCRkaXIpIHtcbiAgQGlmICRkaXIgPT0gJ2xlZnQnIHtcbiAgICBAcmV0dXJuIHJpZ2h0O1xuICB9XG4gIEBlbHNlIGlmICAkZGlyID09ICdyaWdodCcge1xuICAgIEByZXR1cm4gbGVmdDtcbiAgfVxuICBAZWxzZSBpZiAkZGlyID09ICdsdHInIHtcbiAgICBAcmV0dXJuIHJ0bDtcbiAgfVxuICBAZWxzZSBpZiAkZGlyID09ICdydGwnIHtcbiAgICBAcmV0dXJuIGx0cjtcbiAgfVxuICBAZWxzZSBpZiAkZGlyID09ICd0b3AnIHtcbiAgICBAcmV0dXJuIGJvdHRvbTtcbiAgfVxuICBAZWxzZSBpZiAkZGlyID09ICdib3R0b20nIHtcbiAgICBAcmV0dXJuIHRvcDtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHdhcm4gXCIjeyRkaXJ9IGlzIG5vdCBhIGRpcmVjdGlvbiEgTWFrZSBzdXJlIHlvdXIgZGlyZWN0aW9uIGlzIGFsbCBsb3dlcmNhc2UhXCI7XG4gICAgQHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEZpbmQgRGlyZWN0aW9uIE5hbWVcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIG5hbWVkLWRpcmVjdGlvbigkZGlyKSB7XG4gIEBpZiAkZGlyID09ICdsdHInIHtcbiAgICBAcmV0dXJuIGxlZnQ7XG4gIH1cbiAgQGVsc2UgaWYgJGRpciA9PSAncnRsJyB7XG4gICAgQHJldHVybiByaWdodDtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHdhcm4gXCIjeyRkaXJ9IGlzIG5vdCBhIHZhbGlkIEhUTUwgZGlyZWN0aW9uISBNYWtlIHN1cmUgeW91IGFyZSB1c2luZyBhIHZhbGlkIEhUTUwgZGlyZWN0aW9uXCI7XG4gICAgQHJldHVybiBmYWxzZTtcbiAgfVxufSIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUXVpY2tzb3J0XG4vLyBodHRwOi8vcm9zZXR0YWNvZGUub3JnL3dpa2kvU29ydGluZ19hbGdvcml0aG1zL1F1aWNrc29ydFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gcXVpY2tzb3J0KCRsaXN0KSB7XG5cbiAgJFFTLUxlc3M6ICgpO1xuICAkUVMtRXF1YWw6ICgpO1xuICAkUVMtTGFyZ2U6ICgpO1xuXG4gICRRUy1MZW5ndGg6IGxlbmd0aCgkbGlzdCk7XG5cbiAgJFFTLVNlZWQ6IHJvdW5kKCRRUy1MZW5ndGggLyAyKTtcblxuICBAaWYgJFFTLUxlbmd0aCA+IDEge1xuICAgICRRUy1TZWVkOiBudGgoJGxpc3QsICRRUy1TZWVkKTtcbiAgICBAZWFjaCAkSXRlbSBpbiAkbGlzdCB7XG4gICAgICBAaWYgJEl0ZW0gPCAkUVMtU2VlZCB7XG4gICAgICAgICRRUy1MZXNzOiBhcHBlbmQoJFFTLUxlc3MsICRJdGVtKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRJdGVtID09ICRRUy1TZWVkIHtcbiAgICAgICAgJFFTLUVxdWFsOiBhcHBlbmQoJFFTLUVxdWFsLCAkSXRlbSk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICRRUy1MYXJnZTogYXBwZW5kKCRRUy1MYXJnZSwgJEl0ZW0pO1xuICAgICAgfVxuICAgIH1cbiAgICAkUVMtTGVzczogcXVpY2tzb3J0KCRRUy1MZXNzKTtcbiAgICAkUVMtTGFyZ2U6IHF1aWNrc29ydCgkUVMtTGFyZ2UpO1xuXG4gICAgJFFTLVJldHVybjogam9pbigkUVMtTGVzcywgJFFTLUVxdWFsKTtcbiAgICAkUVMtUmV0dXJuOiBqb2luKCRRUy1SZXR1cm4sICRRUy1MYXJnZSk7XG5cbiAgICBAcmV0dXJuICRRUy1SZXR1cm47XG4gIH1cblxuICBAcmV0dXJuICRsaXN0O1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFNvcnQgTWFwIGZ1bmN0aW9uXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBzb3J0LW1hcCgkbWFwLCAkcmV2ZXJzZTogZmFsc2UpIHtcbiAgJFNvcnQtTWFwLUtleXM6IHF1aWNrc29ydChtYXAta2V5cygkbWFwKSk7XG4gICRTb3J0LU1hcC1NYXA6ICgpO1xuXG4gIEBpZiAkcmV2ZXJzZSB7XG4gICAgJFNvcnQtTWFwLUtleXM6IHJldmVyc2UoJFNvcnQtTWFwLUtleXMpO1xuICB9XG5cbiAgQGVhY2ggJGtleSBpbiAkU29ydC1NYXAtS2V5cyB7XG4gICAgJFNvcnQtTWFwLU1hcDogbWFwLW1lcmdlKCRTb3J0LU1hcC1NYXAsICgka2V5OiBtYXAtZ2V0KCRtYXAsICRrZXkpKSk7XG4gIH1cblxuICBAcmV0dXJuICRTb3J0LU1hcC1NYXA7XG59IiwiLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEdyaWQgQmFja2dyb3VuZFxuXG5AaW1wb3J0ICdzdHItcmVwbGFjZSc7XG5cbkBtaXhpbiBiYWNrZ3JvdW5kLWdyaWQoXG4gICRjb2x1bW5zOiBudWxsLFxuICAkZ3V0dGVyOiBudWxsLFxuICAkZ3V0dGVyLXN0eWxlOiBudWxsLFxuICAkY29sb3I6IG51bGxcbikge1xuXG4gICRjb2xvcjogaWYoJGNvbG9yICE9IG51bGwsICRjb2xvciwgc2dzLWdldCgnYmFja2dyb3VuZCBncmlkIGNvbG9yJykpO1xuXG4gIEBpZiBzZ3MtZ2V0KCdkZWJ1ZycpICE9IGZhbHNlIHtcbiAgICAkY29sdW1uczogaWYoJGNvbHVtbnMgIT0gbnVsbCwgJGNvbHVtbnMsIHNncy1nZXQoJ2dyaWRzJykpO1xuICAgICRndXR0ZXI6IGlmKCRndXR0ZXIgIT0gbnVsbCwgJGd1dHRlciwgc2dzLWdldCgnZ3V0dGVycycpKTtcbiAgICAkZ3V0dGVyLXN0eWxlOiBpZigkZ3V0dGVyLXN0eWxlICE9IG51bGwsICRndXR0ZXItc3R5bGUsIHNncy1nZXQoJ2d1dHRlciBzdHlsZXMnKSk7XG5cbiAgICBAaW5jbHVkZSBiYWNrZ3JvdW5kLWJ1aWxkKCRjb2x1bW5zLCAkZ3V0dGVyLCAkZ3V0dGVyLXN0eWxlLCAkY29sb3IpXG4gIH1cbn1cblxuQGZ1bmN0aW9uIGJhY2tncm91bmQtbWFwKCRjb2x1bW5zLCAkZ3V0dGVycywgJGd1dHRlci1zdHlsZXMpIHtcbiAgJEdyaWRzOiAoKTtcbiAgJEd1dHRlcnM6ICgpO1xuICAkU3R5bGVzOiAoKTtcblxuICBAaWYgJGNvbHVtbnMgYW5kIHR5cGUtb2YoJGNvbHVtbnMpICE9ICdtYXAnIHtcbiAgICAkR3JpZHM6ICgtMXB4OiAkY29sdW1ucyk7XG4gIH1cbiAgQGVsc2Uge1xuICAgICRHcmlkczogc2dzLWdldCgnZ3JpZHMnKTtcbiAgfVxuXG4gIEBpZiAkZ3V0dGVycyBhbmQgdHlwZS1vZigkZ3V0dGVycykgIT0gJ21hcCcge1xuICAgICRHdXR0ZXJzOiAoLTFweDogJGd1dHRlcnMpO1xuICB9XG4gIEBlbHNlIHtcbiAgICAkR3V0dGVyczogc2dzLWdldCgnZ3V0dGVycycpO1xuICB9XG5cbiAgQGlmICRndXR0ZXItc3R5bGVzIGFuZCB0eXBlLW9mKCRndXR0ZXItc3R5bGVzKSAhPSAnbWFwJyB7XG4gICAgJFN0eWxlczogKC0xcHg6ICRndXR0ZXItc3R5bGVzKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgJFN0eWxlczogc2dzLWdldCgnZ3V0dGVyIHN0eWxlcycpO1xuICB9XG5cbiAgLy8gQnVpbGQgMXN0IERlcHRoIE1hcFxuICAkSG9sZGVyOiAoKTtcblxuICAvLyBHcmlkc1xuICBAZWFjaCAkaywgJHYgaW4gJEdyaWRzIHtcbiAgICAkSG9sZGVyOiBtYXAtbWVyZ2UoJEhvbGRlciwgKCRrOiAoJ2dyaWQnOiAkdikpKTtcbiAgfVxuICAvLyBHdXR0ZXJzXG4gIEBlYWNoICRrLCAkdiBpbiAkR3V0dGVycyB7XG4gICAgJEdyaWQ6IG1hcC1nZXQoJEhvbGRlciwgJGspO1xuXG4gICAgJE1hcDogKCdndXR0ZXInOiAkdik7XG4gICAgQGlmICRHcmlkICE9IG51bGwge1xuICAgICAgJEdyaWQ6IG1hcC1nZXQoJEdyaWQsICdncmlkJyk7XG4gICAgICBAaWYgJEdyaWQgIT0gbnVsbCB7XG4gICAgICAgICRNYXA6IG1hcC1tZXJnZSgkTWFwLCAoJ2dyaWQnOiAkR3JpZCkpO1xuICAgICAgfVxuICAgIH1cblxuICAgICRIb2xkZXI6IG1hcC1tZXJnZSgkSG9sZGVyLCAoJGs6ICRNYXApKTtcbiAgfVxuICAvLyBTdHlsZVxuICBAZWFjaCAkaywgJHYgaW4gJFN0eWxlcyB7XG4gICAgJEdyaWQ6IG1hcC1nZXQoJEhvbGRlciwgJGspO1xuICAgICRHdXR0ZXI6IG1hcC1nZXQoJEhvbGRlciwgJGspO1xuXG4gICAgJE1hcDogKCdzdHlsZSc6ICR2KTtcbiAgICBAaWYgJEdyaWQgIT0gbnVsbCB7XG4gICAgICAkR3JpZDogbWFwLWdldCgkR3JpZCwgJ2dyaWQnKTtcbiAgICAgIEBpZiAkR3JpZCAhPSBudWxsIHtcbiAgICAgICAgJE1hcDogbWFwLW1lcmdlKCRNYXAsICgnZ3JpZCc6ICRHcmlkKSk7XG4gICAgICB9XG4gICAgfVxuICAgIEBpZiAkR3V0dGVyICE9IG51bGwge1xuICAgICAgJEd1dHRlcjogbWFwLWdldCgkR3V0dGVyLCAnZ3V0dGVyJyk7XG4gICAgICBAaWYgJEd1dHRlciAhPSBudWxsIHtcbiAgICAgICAgJE1hcDogbWFwLW1lcmdlKCRNYXAsICgnZ3V0dGVyJzogJEd1dHRlcikpO1xuICAgICAgfVxuICAgIH1cblxuICAgICRIb2xkZXI6IG1hcC1tZXJnZSgkSG9sZGVyLCAoJGs6ICRNYXApKTtcbiAgfVxuXG4gICRIb2xkZXI6IHNvcnQtbWFwKCRIb2xkZXIpO1xuICAkUmV0dXJuOiAoKTtcblxuICAvLyBCdWlsZCBmdWxsIHN0YWNrIGZvciBlYWNoIGJyZWFrcG9pbnRcbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBsZW5ndGgoJEhvbGRlcikge1xuICAgICRLZXk6IG50aChudGgoJEhvbGRlciwgJGkpLCAxKTtcbiAgICAkVmFsdWU6IG50aChudGgoJEhvbGRlciwgJGkpLCAyKTtcblxuICAgICRQcmV2aW91czogKCk7XG4gICAgQGlmICRpID4gMSB7XG4gICAgICAkUHJldmlvdXM6IG50aChudGgoJFJldHVybiwgJGkgLSAxKSwgMik7XG4gICAgfVxuXG4gICAgQGlmIG5vdCBtYXAtaGFzLWtleSgkVmFsdWUsICdncmlkJykge1xuICAgICAgJFNvcnQtR3JpZDogbWFwLWdldCgkUHJldmlvdXMsICdncmlkJyk7XG4gICAgICAkVmFsdWU6IG1hcC1tZXJnZSgkVmFsdWUsICgnZ3JpZCc6ICRTb3J0LUdyaWQpKTtcbiAgICB9XG5cbiAgICBAaWYgbm90IG1hcC1oYXMta2V5KCRWYWx1ZSwgJ2d1dHRlcicpIHtcbiAgICAgICRTb3J0LUd1dHRlcjogbWFwLWdldCgkUHJldmlvdXMsICdndXR0ZXInKTtcbiAgICAgICRWYWx1ZTogbWFwLW1lcmdlKCRWYWx1ZSwgKCdndXR0ZXInOiAkU29ydC1HdXR0ZXIpKTtcbiAgICB9XG5cbiAgICBAaWYgbm90IG1hcC1oYXMta2V5KCRWYWx1ZSwgJ3N0eWxlJykge1xuICAgICAgJFNvcnQtU3R5bGU6IG1hcC1nZXQoJFByZXZpb3VzLCAnc3R5bGUnKTtcbiAgICAgICRWYWx1ZTogbWFwLW1lcmdlKCRWYWx1ZSwgKCdzdHlsZSc6ICRTb3J0LVN0eWxlKSk7XG4gICAgfVxuXG4gICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICgkS2V5OiAkVmFsdWUpKTtcbiAgfVxuXG4gIEByZXR1cm4gJFJldHVybjtcbn1cblxuQG1peGluIGJhY2tncm91bmQtYnVpbGQoJGNvbHVtbnMsICRndXR0ZXJzLCAkZ3V0dGVyLXN0eWxlcywgJGNvbG9yKSB7XG4gICRCYWNrZ3JvdW5kLU1hcDogYmFja2dyb3VuZC1tYXAoJGNvbHVtbnMsICRndXR0ZXJzLCAkZ3V0dGVyLXN0eWxlcyk7XG4gICREaXNwbGF5OiB0cnVlO1xuXG4gICRDb2x1bW4tQ29sb3I6ICRjb2xvcjtcbiAgJEludmVyc2UtQ29sdW1uLUNvbG9yOiBtaXgoYmxhY2ssICRjb2xvciwgMTUlKTtcbiAgJEd1dHRlci1Db2xvcjogbWl4KHdoaXRlLCAkY29sb3IsIDI1JSk7XG4gICREaXJlY3Rpb246IG5hbWVkLWRpcmVjdGlvbihzZ3MtZ2V0KCdkaXJlY3Rpb24nKSk7XG5cbiAgQGVhY2ggJGJrcHQsICRkZWYgaW4gJEJhY2tncm91bmQtTWFwIHtcbiAgICAkR3JpZDogbWFwLWdldCgkZGVmLCAnZ3JpZCcpO1xuICAgICRHdXR0ZXI6IG1hcC1nZXQoJGRlZiwgJ2d1dHRlcicpO1xuICAgICRTdHlsZTogbWFwLWdldCgkZGVmLCAnc3R5bGUnKTtcblxuICAgICRHcmlkLUNvdW50OiBjb2x1bW4tY291bnQoJEdyaWQpO1xuXG4gICAgJFNWRzogJzxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPic7XG5cbiAgICAkR3V0dGVyLVdpZHRoOiBndXR0ZXItc3BhbigkR3V0dGVyLCAkR3JpZCwgJFN0eWxlKTtcbiAgICBAaWYgdW5pdCgkR3V0dGVyLVdpZHRoKSAhPSAnJScgYW5kIHVuaXQoJEd1dHRlci1XaWR0aCkgIT0gJycge1xuICAgICAgJEd1dHRlci1XaWR0aDogMCU7XG4gICAgfVxuXG4gICAgQGlmICRTdHlsZSA9PSAnZml4ZWQnIHtcbiAgICAgICRHdXR0ZXItV2lkdGg6IDAlO1xuICAgIH1cbiAgICAkQ291bnRlci1XaWR0aDogMCU7XG4gICAgJGhvbGRlcjogKCk7XG5cbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRHcmlkLUNvdW50IHtcbiAgICAgICRIb2xkZXItR3JhZGllbnQ6ICgpO1xuICAgICAgJExvb3AtV2lkdGg6IGNvbHVtbi1zcGFuKDEsICRpLCAkR3JpZCwgJEd1dHRlciwgJFN0eWxlKTtcblxuICAgICAgQGlmIGluZGV4KCRTdHlsZSwgJ3NwbGl0JykgYW5kICRpID09IDEge1xuICAgICAgICAkU1ZHOiAkU1ZHICsgJzxyZWN0IHg9XCIjeyRDb3VudGVyLVdpZHRofVwiIGZpbGw9XCIjeyRHdXR0ZXItQ29sb3J9XCIgd2lkdGg9XCIjeyRHdXR0ZXItV2lkdGggLyAyfVwiIGhlaWdodD1cIjEwMCVcIi8+JztcbiAgICAgICAgJENvdW50ZXItV2lkdGg6ICgkR3V0dGVyLVdpZHRoIC8gMik7XG4gICAgICB9XG5cbiAgICAgICRMb29wLUNvbG9yOiAkQ29sdW1uLUNvbG9yO1xuICAgICAgQGlmIChpbmRleCgkU3R5bGUsICdmaXhlZCcpIG9yICRHdXR0ZXItV2lkdGggPT0gMCUpIGFuZCAoJGkgJSAyID09IDAgKSB7XG4gICAgICAgICRMb29wLUNvbG9yOiAkSW52ZXJzZS1Db2x1bW4tQ29sb3I7XG4gICAgICB9XG5cbiAgICAgIEBpZiAkaSAhPSAkR3JpZC1Db3VudCB7XG4gICAgICAgIEBpZiB1bml0KCRDb3VudGVyLVdpZHRoKSA9PSB1bml0KCRMb29wLVdpZHRoKSB7XG4gICAgICAgICAgJFNWRzogJFNWRyArICc8cmVjdCB4PVwiI3skQ291bnRlci1XaWR0aH1cIiBmaWxsPVwiI3skTG9vcC1Db2xvcn1cIiB3aWR0aD1cIiN7JExvb3AtV2lkdGh9XCIgaGVpZ2h0PVwiMTAwJVwiLz4nO1xuICAgICAgICAgICRDb3VudGVyLVdpZHRoOiAkQ291bnRlci1XaWR0aCArICRMb29wLVdpZHRoO1xuICAgICAgICAgICRTVkc6ICRTVkcgKyAnPHJlY3QgeD1cIiN7JENvdW50ZXItV2lkdGh9XCIgZmlsbD1cIiN7JEd1dHRlci1Db2xvcn1cIiB3aWR0aD1cIiN7JEd1dHRlci1XaWR0aH1cIiBoZWlnaHQ9XCIxMDAlXCIvPic7XG4gICAgICAgICAgJENvdW50ZXItV2lkdGg6ICRDb3VudGVyLVdpZHRoICsgJEd1dHRlci1XaWR0aDtcbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgJERpc3BsYXk6IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRpID09IDEge1xuICAgICAgICBAaWYgdW5pdCgkQ291bnRlci1XaWR0aCkgPT0gdW5pdCgkTG9vcC1XaWR0aCkge1xuICAgICAgICAgICRTVkc6ICRTVkcgKyAnPHJlY3QgeD1cIiN7JENvdW50ZXItV2lkdGh9XCIgZmlsbD1cIiN7JExvb3AtQ29sb3J9XCIgd2lkdGg9XCIjeyRMb29wLVdpZHRofVwiIGhlaWdodD1cIjEwMCVcIi8+JztcbiAgICAgICAgICAkU1ZHOiAkU1ZHICsgJzxyZWN0IHg9XCIjeyRMb29wLVdpZHRofVwiIGZpbGw9XCIjeyRHdXR0ZXItQ29sb3J9XCIgd2lkdGg9XCIjeyRHdXR0ZXItV2lkdGh9XCIgaGVpZ2h0PVwiMTAwJVwiLz4nO1xuICAgICAgICAgICRDb3VudGVyLVdpZHRoOiAkQ291bnRlci1XaWR0aCArICRMb29wLVdpZHRoICsgJEd1dHRlci1XaWR0aDtcbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgJERpc3BsYXk6IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRpID09ICRHcmlkLUNvdW50IGFuZCBpbmRleCgkU3R5bGUsICdzcGxpdCcpIHtcbiAgICAgICAgQGlmIHVuaXQoJENvdW50ZXItV2lkdGgpID09IHVuaXQoJExvb3AtV2lkdGgpIHtcbiAgICAgICAgICAkU1ZHOiAkU1ZHICsgJzxyZWN0IHg9XCIjeyRDb3VudGVyLVdpZHRofVwiIGZpbGw9XCIjeyRMb29wLUNvbG9yfVwiIHdpZHRoPVwiI3skTG9vcC1XaWR0aH1cIiBoZWlnaHQ9XCIxMDAlXCIvPic7XG4gICAgICAgICAgJENvdW50ZXItV2lkdGg6ICRDb3VudGVyLVdpZHRoICsgJExvb3AtV2lkdGg7XG4gICAgICAgICAgJFNWRzogJFNWRyArICc8cmVjdCB4PVwiI3skQ291bnRlci1XaWR0aH1cIiBmaWxsPVwiI3skR3V0dGVyLUNvbG9yfVwiIHdpZHRoPVwiI3skR3V0dGVyLVdpZHRoIC8gMn1cIiBoZWlnaHQ9XCIxMDAlXCIvPic7XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICREaXNwbGF5OiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkU1ZHOiAkU1ZHICsgJzxyZWN0IHg9XCIjeyRDb3VudGVyLVdpZHRofVwiIGZpbGw9XCIjeyRMb29wLUNvbG9yfVwiIHdpZHRoPVwiI3skTG9vcC1XaWR0aH1cIiBoZWlnaHQ9XCIxMDAlXCIvPic7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJFNWRzogJFNWRyArICc8L3N2Zz4nO1xuICAgICRTVkc6IHVybC1lbmNvZGUoJFNWRyk7XG5cbiAgICBAaWYgJERpc3BsYXkge1xuXG4gICAgICBAaWYgJGJrcHQgIT0gLTFweCB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJrcHQpIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbCwnICsgJFNWRyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdlL3N2Zyt4bWwsJyArICRTVkcpO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAd2FybiAnQ2Fubm90IGdlbmVyYXRlIGEgQmFja2dyb3VuZCBHcmlkIGZvciBncmlkIGAjeyRHcmlkfWAgd2l0aCBndXR0ZXJzIGAjeyRHdXR0ZXJ9YCBhbmQgZ3V0dGVyIHN0eWxlIGAjeyRTdHlsZX1gJztcbiAgICB9XG4gIH1cbn0iLCIvLyBGcm9tIGh0dHA6Ly9zYXNzbWVpc3Rlci5jb20vZ2lzdC8xYjRmMmRhNTUyNzgzMDA4OGU0ZFxuXG4vLy8vXG4vLyBJIGhhdmUgd3JpdHRlbiBhIGxvdCBvZiBkaWZmZXJlbnQgYHN0ci1yZXBsYWNlYCBTYXNzIGZ1bmN0aW9ucyBvdmVyXG4vLyB0aGUgbW9udGhzIHlldCBub25lIG9mIG15IHRyaWVzIHdlcmUgc3VjY2VlZGluZyBpbiBtYWtpbmcgdGhlIG5ldyBzdWJzdHJpbmdcbi8vIGFibGUgdG8gY29udGFpbiB0aGUgb25lIHRvIHJlcGxhY2UgKGUuZy4gYHN0ci1yZXBsYWNlKCRzdHIsICdhJywgJ2FiJylgKS5cbi8vIFRoYW5rcyB0byBWYWzDqXJpYW4gR2FsbGlhdCAoQHZhbGVyaWFuZ2FsbGlhdCksIEkgZmluYWxseSBtYW5hZ2VkIHRvIGJ1aWxkXG4vLyBhIGJ1bGxldHByb29mIGBzdHItcmVwbGFjZWAgU2FzcyBmdW5jdGlvbiB0aGF0IGFsbG93cyBuZXcgc3RyaW5nIHRvIGNvbnRhaW5cbi8vIHRoZSBvbGQgb25lLlxuLy8vL1xuXG4vLy8gUmVwbGFjZSBgJHNlYXJjaGAgd2l0aCBgJHJlcGxhY2VgIGluIGAkc3RyaW5nYFxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc3RyaW5nIC0gSW5pdGlhbCBzdHJpbmdcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlYXJjaCAtIFN1YnN0cmluZyB0byByZXBsYWNlXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRyZXBsYWNlICgnJykgLSBOZXcgdmFsdWVcbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gVXBkYXRlZCBzdHJpbmdcbkBmdW5jdGlvbiBzdHItcmVwbGFjZSgkc3RyaW5nLCAkc2VhcmNoLCAkcmVwbGFjZTogJycpIHtcbiAgJGluZGV4OiBzdHItaW5kZXgoJHN0cmluZywgJHNlYXJjaCk7XG5cbiAgQGlmICRpbmRleCB7XG4gICAgQHJldHVybiBzdHItc2xpY2UoJHN0cmluZywgMSwgJGluZGV4IC0gMSkgKyAkcmVwbGFjZSArIHN0ci1yZXBsYWNlKHN0ci1zbGljZSgkc3RyaW5nLCAkaW5kZXggKyBzdHItbGVuZ3RoKCRzZWFyY2gpKSwgJHNlYXJjaCwgJHJlcGxhY2UpO1xuICB9XG5cbiAgQHJldHVybiAkc3RyaW5nO1xufVxuXG5AZnVuY3Rpb24gdXJsLWVuY29kZSgkc3RyaW5nKSB7XG4gICRlbmNvZGVNYXA6KCclJzonJTI1JyxcbiAgICAgICAgICAgICAgJyAnOiclMjAnLFxuICAgICAgICAgICAgICAnISc6JyUyMScsXG4gICAgICAgICAgICAgICdcXFwiJzonJTIyJyxcbiAgICAgICAgICAgICAgJyMnOiclMjMnLFxuICAgICAgICAgICAgICAnJCc6JyUyNCcsXG4gICAgICAgICAgICAgICcmJzonJTI2JyxcbiAgICAgICAgICAgICAgJ1xcJyc6JyUyNycsXG4gICAgICAgICAgICAgICcoJzonJTI4JyxcbiAgICAgICAgICAgICAgJyknOiclMjknLFxuICAgICAgICAgICAgICAnKic6JyUyQScsXG4gICAgICAgICAgICAgICcrJzonJTJCJyxcbiAgICAgICAgICAgICAgJywnOiclMkMnLFxuICAgICAgICAgICAgICAnLSc6JyUyRCcsXG4gICAgICAgICAgICAgICcuJzonJTJFJyxcbiAgICAgICAgICAgICAgJy8nOiclMkYnLFxuICAgICAgICAgICAgICAnOic6JyUzQScsXG4gICAgICAgICAgICAgICc7JzonJTNCJyxcbiAgICAgICAgICAgICAgJzwnOiclM0MnLFxuICAgICAgICAgICAgICAnPSc6JyUzRCcsXG4gICAgICAgICAgICAgICc+JzonJTNFJyxcbiAgICAgICAgICAgICAgJz8nOiclM0YnLFxuICAgICAgICAgICAgICAnQCc6JyU0MCcsXG4gICAgICAgICAgICAgICdbJzonJTVCJyxcbiAgICAgICAgICAgICAgJ1xcXFwnOiclNUMnLFxuICAgICAgICAgICAgICAnXSc6JyU1RCcsXG4gICAgICAgICAgICAgICdeJzonJTVFJyxcbiAgICAgICAgICAgICAgJ18nOiclNUYnLFxuICAgICAgICAgICAgICAnYCc6JyU2MCcsXG4gICAgICAgICAgICAgICd7JzonJTdCJyxcbiAgICAgICAgICAgICAgJ3wnOiclN0MnLFxuICAgICAgICAgICAgICAnfSc6JyU3RCcsXG4gICAgICAgICAgICAgICd+JzonJTdFJyxcbiAgICAgICAgICAgICAgJ8KiJzonJUEyJyxcbiAgICAgICAgICAgICAgJ8KjJzonJUEzJyxcbiAgICAgICAgICAgICAgJ8KlJzonJUE1JyxcbiAgICAgICAgICAgICAgJ8KnJzonJUE3JyxcbiAgICAgICAgICAgICAgJ8KrJzonJUFCJyxcbiAgICAgICAgICAgICAgJ8KsJzonJUFDJyxcbiAgICAgICAgICAgICAgJ8KvJzonJUFEJyxcbiAgICAgICAgICAgICAgJ8K6JzonJUIwJyxcbiAgICAgICAgICAgICAgJ8KxJzonJUIxJyxcbiAgICAgICAgICAgICAgJ8KqJzonJUIyJyxcbiAgICAgICAgICAgICAgJ8K1JzonJUI1JyxcbiAgICAgICAgICAgICAgJ8K7JzonJUJCJyxcbiAgICAgICAgICAgICAgJ8K8JzonJUJDJyxcbiAgICAgICAgICAgICAgJ8K9JzonJUJEJyxcbiAgICAgICAgICAgICAgJ8K/JzonJUJGJyxcbiAgICAgICAgICAgICAgJ8OAJzonJUMwJyxcbiAgICAgICAgICAgICAgJ8OBJzonJUMxJyxcbiAgICAgICAgICAgICAgJ8OCJzonJUMyJyxcbiAgICAgICAgICAgICAgJ8ODJzonJUMzJyxcbiAgICAgICAgICAgICAgJ8OEJzonJUM0JyxcbiAgICAgICAgICAgICAgJ8OFJzonJUM1JyxcbiAgICAgICAgICAgICAgJ8OGJzonJUM2JyxcbiAgICAgICAgICAgICAgJ8OHJzonJUM3JyxcbiAgICAgICAgICAgICAgJ8OIJzonJUM4JyxcbiAgICAgICAgICAgICAgJ8OJJzonJUM5JyxcbiAgICAgICAgICAgICAgJ8OKJzonJUNBJyxcbiAgICAgICAgICAgICAgJ8OLJzonJUNCJyxcbiAgICAgICAgICAgICAgJ8OMJzonJUNDJyxcbiAgICAgICAgICAgICAgJ8ONJzonJUNEJyxcbiAgICAgICAgICAgICAgJ8OOJzonJUNFJyxcbiAgICAgICAgICAgICAgJ8OPJzonJUNGJyxcbiAgICAgICAgICAgICAgJ8OQJzonJUQwJyxcbiAgICAgICAgICAgICAgJ8ORJzonJUQxJyxcbiAgICAgICAgICAgICAgJ8OSJzonJUQyJyxcbiAgICAgICAgICAgICAgJ8OTJzonJUQzJyxcbiAgICAgICAgICAgICAgJ8OUJzonJUQ0JyxcbiAgICAgICAgICAgICAgJ8OVJzonJUQ1JyxcbiAgICAgICAgICAgICAgJ8OWJzonJUQ2JyxcbiAgICAgICAgICAgICAgJ8OYJzonJUQ4JyxcbiAgICAgICAgICAgICAgJ8OZJzonJUQ5JyxcbiAgICAgICAgICAgICAgJ8OaJzonJURBJyxcbiAgICAgICAgICAgICAgJ8ObJzonJURCJyxcbiAgICAgICAgICAgICAgJ8OcJzonJURDJyxcbiAgICAgICAgICAgICAgJ8OdJzonJUREJyxcbiAgICAgICAgICAgICAgJ8OeJzonJURFJyxcbiAgICAgICAgICAgICAgJ8OfJzonJURGJyxcbiAgICAgICAgICAgICAgJ8OgJzonJUUwJyxcbiAgICAgICAgICAgICAgJ8OhJzonJUUxJyxcbiAgICAgICAgICAgICAgJ8OiJzonJUUyJyxcbiAgICAgICAgICAgICAgJ8OjJzonJUUzJyxcbiAgICAgICAgICAgICAgJ8OkJzonJUU0JyxcbiAgICAgICAgICAgICAgJ8OlJzonJUU1JyxcbiAgICAgICAgICAgICAgJ8OmJzonJUU2JyxcbiAgICAgICAgICAgICAgJ8OnJzonJUU3JyxcbiAgICAgICAgICAgICAgJ8OoJzonJUU4JyxcbiAgICAgICAgICAgICAgJ8OpJzonJUU5JyxcbiAgICAgICAgICAgICAgJ8OqJzonJUVBJyxcbiAgICAgICAgICAgICAgJ8OrJzonJUVCJyxcbiAgICAgICAgICAgICAgJ8OsJzonJUVDJyxcbiAgICAgICAgICAgICAgJ8OtJzonJUVEJyxcbiAgICAgICAgICAgICAgJ8OuJzonJUVFJyxcbiAgICAgICAgICAgICAgJ8OvJzonJUVGJyxcbiAgICAgICAgICAgICAgJ8OwJzonJUYwJyxcbiAgICAgICAgICAgICAgJ8OxJzonJUYxJyxcbiAgICAgICAgICAgICAgJ8OyJzonJUYyJyxcbiAgICAgICAgICAgICAgJ8OzJzonJUYzJyxcbiAgICAgICAgICAgICAgJ8O0JzonJUY0JyxcbiAgICAgICAgICAgICAgJ8O1JzonJUY1JyxcbiAgICAgICAgICAgICAgJ8O2JzonJUY2JyxcbiAgICAgICAgICAgICAgJ8O3JzonJUY3JyxcbiAgICAgICAgICAgICAgJ8O4JzonJUY4JyxcbiAgICAgICAgICAgICAgJ8O5JzonJUY5JyxcbiAgICAgICAgICAgICAgJ8O6JzonJUZBJyxcbiAgICAgICAgICAgICAgJ8O7JzonJUZCJyxcbiAgICAgICAgICAgICAgJ8O8JzonJUZDJyxcbiAgICAgICAgICAgICAgJ8O9JzonJUZEJyxcbiAgICAgICAgICAgICAgJ8O+JzonJUZFJyxcbiAgICAgICAgICAgICAgJ8O/JzonJUZGJ1xuICApO1xuXG4gIEBlYWNoICRjaGFyLCAkY29kZSBpbiAkZW5jb2RlTWFwICB7XG4gICAgJHN0cmluZzogc3RyLXJlcGxhY2UoJHN0cmluZywgJGNoYXIsICRjb2RlKTtcbiAgfVxuICBAcmV0dXJuICRzdHJpbmc7XG59IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXcmFwcGVyIG1peGluIGZvciBvdmVycmlkaW5nIHRoZSBnbG9iYWwgY29udGV4dHMgYXMgYSBibG9ja1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AbWl4aW4gbGF5b3V0KCRncmlkOiBmYWxzZSwgJGd1dHRlcjogZmFsc2UsICRvdXRwdXQtc3R5bGU6IGZhbHNlLCAkZ3V0dGVyLXN0eWxlOiBmYWxzZSkge1xuXG4gIEBpZiB0eXBlLW9mKCRncmlkKSA9PSAnbWFwJyB7XG4gICAgJGxheW91dDogJGdyaWQ7XG4gICAgQGlmIG1hcC1oYXMta2V5KCRsYXlvdXQsICdncmlkJykge1xuICAgICAgJGdyaWQ6IG1hcC1nZXQoJGxheW91dCwgJ2dyaWQnKTtcbiAgICB9XG5cbiAgICBAaWYgbWFwLWhhcy1rZXkoJGxheW91dCwgJ2d1dHRlcicpIHtcbiAgICAgICRndXR0ZXI6IG1hcC1nZXQoJGxheW91dCwgJ2d1dHRlcicpO1xuICAgIH1cblxuICAgIEBpZiBtYXAtaGFzLWtleSgkbGF5b3V0LCAnb3V0cHV0IHN0eWxlJykge1xuICAgICAgJG91dHB1dC1zdHlsZTogbWFwLWdldCgkbGF5b3V0LCAnb3V0cHV0IHN0eWxlJyk7XG4gICAgfVxuICAgIEBpZiBtYXAtaGFzLWtleSgkbGF5b3V0LCAnb3V0cHV0Jykge1xuICAgICAgJG91dHB1dC1zdHlsZTogbWFwLWdldCgkbGF5b3V0LCAnb3V0cHV0Jyk7XG4gICAgfVxuXG4gICAgQGlmIG1hcC1oYXMta2V5KCRsYXlvdXQsICdndXR0ZXIgc3R5bGUnKSB7XG4gICAgICAkZ3V0dGVyLXN0eWxlOiBtYXAtZ2V0KCRsYXlvdXQsICdndXR0ZXIgc3R5bGUnKTtcbiAgICB9XG4gIH1cblxuICAvLyBQcml2YXRlIGhvbGRlciBmb3IgY3VycmVudCBnbG9iYWwgY29udGV4dFxuICAkbGF5b3V0LXByaXZhdGUtZ3JpZC1ob2xkZXI6IHNncy1nZXQoJ2dyaWRzJyk7XG4gICRsYXlvdXQtcHJpdmF0ZS1ndXR0ZXItaG9sZGVyOiBzZ3MtZ2V0KCdndXR0ZXJzJyk7XG4gICRsYXlvdXQtcHJpdmF0ZS1vdXRwdXQtaG9sZGVyOiBzZ3MtZ2V0KCdvdXRwdXQnKTtcbiAgJGxheW91dC1wcml2YXRlLWd1dHRlci1zdHlsZS1ob2xkZXI6IHNncy1nZXQoJ2d1dHRlciBzdHlsZXMnKTtcblxuICAvLyBPdmVyaWRlcyBjdXJyZW50IGdsb2JhbCBjb250ZXh0cywgYnV0IG9ubHkgaWYgbmVlZGVkXG4gIEBpZiAkZ3JpZCAhPSBmYWxzZSB7XG4gICAgQGluY2x1ZGUgc2dzLXJlc2V0KCdncmlkcycpO1xuICAgIEBpZiB0eXBlLW9mKCRncmlkKSAhPSAnbWFwJyB7XG4gICAgICBAaW5jbHVkZSBzZ3MtY2hhbmdlKCdncmlkcycsICgtMXB4OiAkZ3JpZCkpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAaW5jbHVkZSBzZ3MtY2hhbmdlKCdncmlkcycsICRncmlkKTtcbiAgICB9XG4gIH1cbiAgQGlmICRndXR0ZXIgIT0gZmFsc2Uge1xuICAgIEBpbmNsdWRlIHNncy1yZXNldCgnZ3V0dGVycycpO1xuICAgIEBpZiB0eXBlLW9mKCRndXR0ZXIpICE9ICdtYXAnIHtcbiAgICAgIEBpbmNsdWRlIHNncy1jaGFuZ2UoJ2d1dHRlcnMnLCAoLTFweDogJGd1dHRlcikpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAaW5jbHVkZSBzZ3MtY2hhbmdlKCdndXR0ZXJzJywgJGd1dHRlcik7XG4gICAgfVxuICB9XG4gIEBpZiAkb3V0cHV0LXN0eWxlICE9IGZhbHNlIHtcbiAgICBAaW5jbHVkZSBzZ3MtcmVzZXQoJ291dHB1dCcpO1xuICAgIEBpbmNsdWRlIHNncy1jaGFuZ2UoJ291dHB1dCcsICRvdXRwdXQtc3R5bGUpO1xuICB9XG4gIEBpZiAkZ3V0dGVyLXN0eWxlICE9IGZhbHNlIHtcbiAgICBAaW5jbHVkZSBzZ3MtcmVzZXQoJ2d1dHRlciBzdHlsZXMnKTtcbiAgICBAaWYgdHlwZS1vZigkZ3V0dGVyLXN0eWxlKSAhPSAnbWFwJyB7XG4gICAgICBAaW5jbHVkZSBzZ3MtY2hhbmdlKCdndXR0ZXIgc3R5bGVzJywgKC0xcHg6ICRndXR0ZXItc3R5bGUpKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGluY2x1ZGUgc2dzLWNoYW5nZSgnZ3V0dGVyIHN0eWxlcycsICRndXR0ZXItc3R5bGUpO1xuICAgIH1cbiAgfVxuXG4gIC8vIEFsbCB0aGUgdGhpbmdzIVxuICBAY29udGVudDtcblxuICAvLyBSRXNldCBBTEwgdGhlIHNldHRpbmdzXG4gIEBpbmNsdWRlIHNncy1yZXNldCgnZ3JpZHMnKTtcbiAgQGluY2x1ZGUgc2dzLXJlc2V0KCdndXR0ZXJzJyk7XG4gIEBpbmNsdWRlIHNncy1yZXNldCgnb3V0cHV0Jyk7XG4gIEBpbmNsdWRlIHNncy1yZXNldCgnZ3V0dGVyIHN0eWxlcycpO1xuICAvLyBSZXNldHMgZ2xvYmFsIGNvbnRleHRzXG4gIEBpbmNsdWRlIHNncy1jaGFuZ2UoJ2dyaWRzJywgJGxheW91dC1wcml2YXRlLWdyaWQtaG9sZGVyKTtcbiAgQGluY2x1ZGUgc2dzLWNoYW5nZSgnZ3V0dGVycycsICRsYXlvdXQtcHJpdmF0ZS1ndXR0ZXItaG9sZGVyKTtcbiAgQGluY2x1ZGUgc2dzLWNoYW5nZSgnb3V0cHV0JywgJGxheW91dC1wcml2YXRlLW91dHB1dC1ob2xkZXIpO1xuICBAaW5jbHVkZSBzZ3MtY2hhbmdlKCdndXR0ZXIgc3R5bGVzJywgJGxheW91dC1wcml2YXRlLWd1dHRlci1zdHlsZS1ob2xkZXIpO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIExheW91dCBBdFxuLy8gV3JhcHBlciBtaXhpbiBmb3IgYSBjb21iaW5lZCBCcmVha3BvaW50L0xheW91dCBjYWxsXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBtaXhpbiBsYXlvdXQtYXQoJGxheW91dCwgJGJyZWFrcG9pbnQpIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkYnJlYWtwb2ludCkge1xuICAgIC8vIElmIGEgc2luZ2xlIHZhbHVlIGlzIHBhc3NlZCBpbiwgYXNzdW1lIGl0J3MgYSBncmlkXG4gICAgQGlmIHR5cGUtb2YoJGxheW91dCkgIT0gbWFwIHtcbiAgICAgIEBpbmNsdWRlIGxheW91dCgkbGF5b3V0KSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgICAvLyBJZiBpdCBpcyBhIG1hcCwgd2UndmUgZ290IGtleS92YWx1ZXMgdG8gd29yayB3aXRoXG4gICAgQGVsc2Uge1xuICAgICAgJGdyaWQ6IGZhbHNlO1xuICAgICAgJGd1dHRlcjogZmFsc2U7XG4gICAgICAkb3V0cHV0LXN0eWxlOiBmYWxzZTtcbiAgICAgICRndXR0ZXItc3R5bGU6IGZhbHNlO1xuXG4gICAgICBAaWYgbWFwLWhhcy1rZXkoJGxheW91dCwgJ2dyaWQnKSB7XG4gICAgICAgICRncmlkOiBtYXAtZ2V0KCRsYXlvdXQsICdncmlkJyk7XG4gICAgICB9XG5cbiAgICAgIEBpZiBtYXAtaGFzLWtleSgkbGF5b3V0LCAnZ3V0dGVyJykge1xuICAgICAgICAkZ3V0dGVyOiBtYXAtZ2V0KCRsYXlvdXQsICdndXR0ZXInKTtcbiAgICAgIH1cblxuICAgICAgQGlmIG1hcC1oYXMta2V5KCRsYXlvdXQsICdvdXRwdXQgc3R5bGUnKSB7XG4gICAgICAgICRvdXRwdXQtc3R5bGU6IG1hcC1nZXQoJGxheW91dCwgJ291dHB1dCBzdHlsZScpO1xuICAgICAgfVxuICAgICAgQGlmIG1hcC1oYXMta2V5KCRsYXlvdXQsICdvdXRwdXQnKSB7XG4gICAgICAgICRvdXRwdXQtc3R5bGU6IG1hcC1nZXQoJGxheW91dCwgJ291dHB1dCcpO1xuICAgICAgfVxuXG4gICAgICBAaWYgbWFwLWhhcy1rZXkoJGxheW91dCwgJ2d1dHRlciBzdHlsZScpIHtcbiAgICAgICAgJGd1dHRlci1zdHlsZTogbWFwLWdldCgkbGF5b3V0LCAnZ3V0dGVyIHN0eWxlJyk7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIGxheW91dCgkZ3JpZCwgJGd1dHRlciwgJG91dHB1dC1zdHlsZSwgJGd1dHRlci1zdHlsZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCJAaW1wb3J0IFwibGFuZ3VhZ2UvcGFyc2UtbGlzdFwiO1xuQGltcG9ydCBcImxhbmd1YWdlL3BhcnNlLWFkZFwiO1xuQGltcG9ydCBcImxhbmd1YWdlL3NwYW5cIjsiLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFBhcnNlIG5hdHVyYWwgbGFuZ3VhZ2Ugc3RyaW5nXG4vL1xuLy8gUmV0cmlldmUgdmFsdWVzIGZyb20gdGhlIG5hdHVyYWwgbGFuZ3VhZ2Ugc3RyaW5nLlxuLy8gcGFyc2Utc3RyaW5nKCR2YXIsICRsaXN0KVxuLy8gICR2YXIgIDogPHN0cmluZz5cbi8vICAgICAgICAtICdhdCcvJ3NwYW4nLydvZicgb3IgYW55IG90aGVyIGtleXdvcmRzLlxuLy8gICAgICAgIC0gJ3NwYW4nIHF1ZXJpZXMgdGhlIHVucHJlZml4ZWQgc3BhbiBkZWNsYXJhdGlvbi5cbi8vICAgICAgICAtICdhdCcgY2FuIGFsc28gcXVlcnkgZmlyc3QsIGxhc3QsIGFscGhhLCBhbmQgb21lZ2EuXG4vLyAgICAgICAgLSAnZ3JpZCcgd2lsbCByZXR1cm4gdGhlIHNhbWUgYXMgJ29mJ1xuLy8gICRsaXN0IDogPGxpc3Q+XG4vLyAgICAgICAgLSBBIGxpc3QgbGlrZSB0aGlzOiBsYXN0IDIgb2YgKDEgMSAyKSBwdXNoIDFcbi8vXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBwYXJzZS1zcGFuLWxpc3QoJHZhciwgJGxpc3QpIHtcblxuICAkZm91bmQ6IGZhbHNlO1xuXG4gICRncmlkOiAoKTtcblxuICAvLyBMb29wIHRocm91Z2ggbGlzdC5cbiAgQGVhY2ggJGl0ZW0gaW4gJGxpc3Qge1xuICAgIC8vIGlmICdzcGFuJyAtIHJldHVybiB0aGUgZmlyc3QgbnVtZXJpYy5cbiAgICAvLyBpZiBrZXl3b3JkIHdhcyBmb3VuZCAtIHJldHVybiB0aGUgZm9sbG93aW5nIGl0ZW0uXG4gICAgQGlmICh0eXBlLW9mKCRpdGVtKSA9PSBudW1iZXIgYW5kICR2YXIgPT0gc3BhbiBhbmQgJGZvdW5kICE9ICdncmlkJykgb3IgJGZvdW5kID09IHRydWUge1xuXG4gICAgICAvLyBAaWYgJGZvdW5kID09IHRydWVcbiAgICAgIEByZXR1cm4gJGl0ZW07XG4gICAgfVxuXG4gICAgLy8gU3BlY2lhbCBoYW5kbGluZyBmb3IgR3JpZHNcbiAgICBAZWxzZSBpZiAoJGl0ZW0gPT0gJHZhciBvciAkaXRlbSA9PSAnZ3JpZCcgb3IgJGl0ZW0gPT0gJ29mJykgYW5kICgkdmFyID09ICdvZicgb3IgJHZhciA9PSAnZ3JpZCcpIHtcbiAgICAgICRmb3VuZDogJ2dyaWQnO1xuICAgIH1cblxuICAgIEBlbHNlIGlmICRmb3VuZCA9PSAnZ3JpZCcge1xuICAgICAgQGlmIHR5cGUtb2YoJGl0ZW0pID09IG51bWJlciB7XG4gICAgICAgICRncmlkOiBhcHBlbmQoJGdyaWQsICRpdGVtLCAnc3BhY2UnKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgQHJldHVybiAkZ3JpZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBbnkga2V5d29yZCAtIHJldHVybiB0aGUgZm9sbG93aW5nIHZhbHVlLlxuICAgIEBlbHNlIGlmICRpdGVtID09ICR2YXIge1xuICAgICAgJGZvdW5kOiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIC8vIFdhc24ndCBmb3VuZC5cbiAgQHJldHVybiBmYWxzZTtcbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFBhcnNlIGFkZCBzdHJpbmdcbi8vXG4vLyBSZXRyaWV2ZSBhZGQgYW5kIG1lZGlhIHF1ZXJ5IHZhbHVlcyBmcm9tIGEgZGVmaW5pdGlvblxuLy8gcGFyc2UtYWRkKCRkZWZpbml0aW9uKVxuLy8gICRkZWZpbml0aW9uIDogPGxpc3Q+XG4vLyAgICAgICAgLSBBIGxpc3QgbGlrZTogLjI1IGF0IDMwMHB4XG4vL1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gcGFyc2UtYWRkKCRkZWZpbml0aW9uKSB7XG4gICRwYXJzZS1maW5kOiAoKTtcbiAgJHBhcnNlLW1xOiBudWxsO1xuICAkcGFyc2UtbXEtZmluZDogZmFsc2U7XG4gICRNb2JpbGUtRmlyc3Q6IHNncy1nZXQoJ21vYmlsZSBmaXJzdCcpO1xuXG4gIEBlYWNoICRpdGVtIGluICRkZWZpbml0aW9uIHtcbiAgICBAaWYgJGl0ZW0gIT0gJ2F0JyBhbmQgJHBhcnNlLW1xLWZpbmQgIT0gdHJ1ZSB7XG4gICAgICAkcGFyc2UtZmluZDogYXBwZW5kKCRwYXJzZS1maW5kLCAkaXRlbSwgJ3NwYWNlJyk7XG4gICAgfVxuICAgIEBlbHNlIGlmICRpdGVtID09ICdhdCcge1xuICAgICAgJHBhcnNlLW1xLWZpbmQ6IHRydWU7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICRwYXJzZS1tcTogJGl0ZW07XG4gICAgfVxuICB9XG5cbiAgQGlmICRwYXJzZS1tcSB7XG4gICAgQGlmIG5vdCBmdW5jdGlvbi1leGlzdHMoYnJlYWtwb2ludCkge1xuICAgICAgQHdhcm4gXCJSZXNwb25zaXZlIGNvbnRleHRzIHJlcXVpcmUgQnJlYWtwb2ludCAoaHR0cHM6Ly9naXRodWIuY29tL1RlYW0tU2Fzcy9icmVha3BvaW50KS4gUGxlYXNlIGVuc3VyZSB0aGF0IEJyZWFrcG9pbnQgaXMgaW1wb3J0ZWQgYW5kIGF2YWlsYWJsZSBmb3IgU2luZ3VsYXJpdHkgdG8gdXNlLiBDb250ZXh0IHNldCB0byAtMXB4LlwiO1xuICAgICAgJHBhcnNlLW1xOiAtMXB4O1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkYnJlYWtwb2ludC1wYXJzZTogYnJlYWtwb2ludCgkcGFyc2UtbXEpO1xuICAgICAgJGJyZWFrcG9pbnQtcGFyc2U6IG1hcC1nZXQoJGJyZWFrcG9pbnQtcGFyc2UsICdjb250ZXh0IGhvbGRlcicpO1xuICAgICAgJGJyZWFrcG9pbnQtbXE6IG51bGw7XG4gICAgICBAaWYgJE1vYmlsZS1GaXJzdCB7XG4gICAgICAgICRicmVha3BvaW50LW1xOiBtYXAtZ2V0KCRicmVha3BvaW50LXBhcnNlLCAnbWluLXdpZHRoJyk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICRicmVha3BvaW50LW1xOiBtYXAtZ2V0KCRicmVha3BvaW50LXBhcnNlLCAnbWF4LXdpZHRoJyk7XG4gICAgICB9XG5cbiAgICAgIEBpZiBsZW5ndGgoJGJyZWFrcG9pbnQtbXEpID4gMSB7XG4gICAgICAgIEB3YXJuIFwiUmVzcG9uc2l2ZSBjb250ZXh0cyBhcmUgbm90IGF2YWlsYWJsZSBmb3IgYG9yYCBxdWVyaWVzIGFzIHdoaWNoIHF1ZXJ5IHRvIHVzZSBpcyBhbWJpZ3VvdXMuIFBsZWFzZSBvbmx5IHVzZSBzaW5nbGUgY29udGV4dCBxdWVyaWVzLiBDb250ZXh0IHNldCB0byAtMXB4LlwiO1xuICAgICAgICAkcGFyc2UtbXE6IC0xcHg7XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiBsZW5ndGgoJGJyZWFrcG9pbnQtbXEpIDwgMSB7XG4gICAgICAgIEB3YXJuIFwiTm8gXCIgKyBpZigkTW9iaWxlLUZpcnN0LCAnbWluLXdpZHRoJywgJ21heC13aWR0aCcpICsgJyBjb250ZXh0IGZvdW5kLiBQbGVhc2UgdXNlIGEgbWVkaWEgcXVlcnkgd2l0aCB0aGUgY29ycmVjdCBjb250ZXh0LiBDb250ZXh0IHNldCB0byAtMXB4Lic7XG4gICAgICAgICRwYXJzZS1tcTogLTFweDtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJHBhcnNlLW1xOiBudGgoJGJyZWFrcG9pbnQtbXEsIDEpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpZiAkcGFyc2UtbXEgYW5kIHVuaXQoJHBhcnNlLW1xKSA9PSAnZW0nIHtcbiAgICAkcGFyc2UtbXE6ICRwYXJzZS1tcSAvIDFlbSAqIDE2cHg7XG4gIH1cblxuICBAcmV0dXJuICgkcGFyc2UtZmluZCAkcGFyc2UtbXEpO1xufVxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBcIk5hdHVyYWwgTGFuZ3VhZ2VcIiBQYXJzaW5nXG4vL1xuLy8gS2V5d29yZHM6XG4vLyAgc3BhbjogICAgIENvbHVtbiBTcGFuXG4vLyAgYXQ6ICAgICAgIENvbHVtbiBMb2NhdGlvblxuLy8gIG9mOiAgICAgICBDb250ZXh0XG4vLyAgZ3V0dGVyczogIEd1dHRlcnNcbi8vICBvdXRwdXQ6ICAgT3V0cHV0XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBtaXhpbiBzcGFuKCRpbnB1dCkge1xuICAkc3BhbjogICAgICBudGgoJGlucHV0LCAxKTtcblxuICAkbG9jYXRpb246ICBwYXJzZS1zcGFuLWxpc3QoJ2F0JywgJGlucHV0KTtcbiAgJGNvbnRleHQ6ICAgcGFyc2Utc3Bhbi1saXN0KCdvZicsICRpbnB1dCk7XG4gICRndXR0ZXI6ICAgIHBhcnNlLXNwYW4tbGlzdCgnZ3V0dGVycycsICRpbnB1dCk7XG4gICRvdXRwdXQ6ICAgIHBhcnNlLXNwYW4tbGlzdCgnb3V0cHV0JywgJGlucHV0KTtcblxuICBAaW5jbHVkZSBncmlkLXNwYW4oJHNwYW4sICRsb2NhdGlvbiwgJGNvbnRleHQsICRndXR0ZXIsICRvdXRwdXQpXG59IiwiQGltcG9ydCBcIm1hdGgvY29sdW1uc1wiO1xuQGltcG9ydCBcIm1hdGgvZ3V0dGVyc1wiO1xuQGltcG9ydCBcIm1hdGgvY29udGV4dFwiO1xuQGltcG9ydCBcIm1hdGgvZ3JpZFwiOyIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gRmluZCB3aWR0aCwgaW4gcGVyY2VudGFnZXMsIG9mIHRoZSBjb2x1bW4gc3BhblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gY29sdW1uLXNwYW4oJHNwYW4sICRsb2NhdGlvbiwgJGdyaWQ6IG51bGwsICRndXR0ZXI6IG51bGwsICRndXR0ZXItc3R5bGU6IG51bGwpIHtcbiAgLy8gRmluZCB0aGUgZ3JpZCBhbmQgZ3V0dGVyc1xuICAkZ3JpZDogZmluZC1ncmlkKCRncmlkKTtcbiAgJGd1dHRlcjogZmluZC1ndXR0ZXIoJGd1dHRlcik7XG4gICRndXR0ZXItc3R5bGU6IGZpbmQtZ3V0dGVyLXN0eWxlKCRndXR0ZXItc3R5bGUpO1xuXG4gIEBpZiBmaXhlZC1ndXR0ZXIoJGdyaWQsICRndXR0ZXIsICRndXR0ZXItc3R5bGUpIHtcbiAgICAkZ3V0dGVyOiAwO1xuICB9XG5cbiAgLy8gQGRlYnVnICRncmlkO1xuICAvLyBAZGVidWcgJGd1dHRlcjtcblxuICAvLyBDb21iaW5lIHRoZSBncmlkIGFuZCBndXR0ZXJzXG4gICRncmlkLWFuZC1ndXR0ZXJzOiBjb2x1bW4tc3VtKCRncmlkLCAkZ3V0dGVyLCAkZ3V0dGVyLXN0eWxlKTtcblxuICAvLyBAZGVidWcgJGdyaWQtYW5kLWd1dHRlcnM7XG5cbiAgLy8gRXF1YWwgd2lkdGggZ3JpZCBhcmUgZWFzeSEgRGVhbCB3aXRoIHRoZW0hXG4gIEBpZiB0eXBlLW9mKCRncmlkKSA9PSAnbnVtYmVyJyBvciBsZW5ndGgoJGdyaWQpID09IDEge1xuICAgICRzcGFuLWFuZC1ndXR0ZXJzOiAkc3BhbiArICRndXR0ZXIgKiAoJHNwYW4gLSAxKTtcbiAgICBAcmV0dXJuICRzcGFuLWFuZC1ndXR0ZXJzIC8gJGdyaWQtYW5kLWd1dHRlcnMgKiAxMDAlO1xuICB9XG4gIC8vIEFzeW1tZXRyaWMgbGlzdHMgYXJlIGhhcmRlciwgc28gd2UncmUgZ29pbmcgdG8gdHJlYXQgdGhlbSBhcyB0aGVpciBvd24gZ3JpZFxuICBAZWxzZSBpZiB0eXBlLW9mKCRncmlkKSA9PSAnbGlzdCcgb3IgbGVuZ3RoKCRncmlkKSA+IDEge1xuICAgICRzcGFuLWFuZC1ndXR0ZXJzOiAwO1xuXG4gICAgQGlmICRsb2NhdGlvbiA9PSAxIGFuZCAkc3BhbiA+PSAxIHtcbiAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJHNwYW4ge1xuICAgICAgICAkc3Bhbi1hbmQtZ3V0dGVyczogJHNwYW4tYW5kLWd1dHRlcnMgKyBudGgoJGdyaWQsICRpKSArICRndXR0ZXI7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICR0b3RhbDogJGxvY2F0aW9uICsgJHNwYW4gLSAxO1xuICAgICAgQGlmICR0b3RhbCAhPSAwIHtcbiAgICAgICAgQGZvciAkaSBmcm9tICRsb2NhdGlvbiB0aHJvdWdoICR0b3RhbCB7XG4gICAgICAgICAgJHNwYW4tYW5kLWd1dHRlcnM6ICRzcGFuLWFuZC1ndXR0ZXJzICsgbnRoKCRncmlkLCAkaSkgKyAkZ3V0dGVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgICRzcGFuLWFuZC1ndXR0ZXJzOiAkc3Bhbi1hbmQtZ3V0dGVycyAtICRndXR0ZXI7XG5cbiAgICBAcmV0dXJuICRzcGFuLWFuZC1ndXR0ZXJzIC8gJGdyaWQtYW5kLWd1dHRlcnMgKiAxMDAlO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAd2FybiBcIkNhbid0IGZpbmQgYSB3b3JraW5nIHNldCBvZiBncmlkISBUaGF0J3MgdGVycmlibGUhXCI7XG4gICAgQHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEZpbmQgdGhlIHRvdGFsIHN1bSBvZiB0aGUgZ3JpZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gY29sdW1uLXN1bSgkZ3JpZCwgJGd1dHRlciwgJGd1dHRlci1zdHlsZSkge1xuICAkc3BsaXQ6IGlmKGluZGV4KCRndXR0ZXItc3R5bGUsICdzcGxpdCcpLCB0cnVlLCBmYWxzZSk7XG5cbiAgQGlmIHR5cGUtb2YoJGdyaWQpID09ICdudW1iZXInIG9yIGxlbmd0aCgkZ3JpZCkgPT0gMSB7XG4gICAgQGlmICRzcGxpdCB7XG4gICAgICBAcmV0dXJuIG50aCgkZ3JpZCwgMSkgKyAoKGNvbHVtbi1jb3VudChudGgoJGdyaWQsIDEpKSkgKiBudGgoJGd1dHRlciwgMSkpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAcmV0dXJuIG50aCgkZ3JpZCwgMSkgKyAoKGNvbHVtbi1jb3VudChudGgoJGdyaWQsIDEpKSAtIDEpICogbnRoKCRndXR0ZXIsIDEpKTtcbiAgICB9XG5cbiAgfVxuICBAZWxzZSBpZiB0eXBlLW9mKCRncmlkKSA9PSAnbGlzdCcge1xuICAgICRzdW06IDA7XG4gICAgQGVhY2ggJGNvbHVtbiBpbiAkZ3JpZCB7XG4gICAgICAkc3VtOiAkc3VtICsgbnRoKCRjb2x1bW4sIDEpO1xuICAgIH1cbiAgICBAaWYgJHNwbGl0IHtcbiAgICAgICRzdW06ICRzdW0gKyAoY29sdW1uLWNvdW50KCRncmlkKSkgKiBudGgoJGd1dHRlciwgMSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICRzdW06ICRzdW0gKyAoY29sdW1uLWNvdW50KCRncmlkKSAtIDEpICogbnRoKCRndXR0ZXIsIDEpO1xuICAgIH1cbiAgICBAcmV0dXJuICRzdW07XG4gIH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBGaW5kIHRoZSBudW1iZXIgb2YgZ3JpZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gY29sdW1uLWNvdW50KCRncmlkKSB7XG4gIEBpZiB0eXBlLW9mKCRncmlkKSA9PSAnbnVtYmVyJyB7XG4gICAgQHJldHVybiAkZ3JpZDtcbiAgfVxuICBAaWYgdHlwZS1vZigkZ3JpZCkgPT0gJ2xpc3QnIHtcbiAgICBAaWYgbGVuZ3RoKCRncmlkKSA9PSAxIHtcbiAgICAgIEByZXR1cm4gbnRoKCRncmlkLCAxKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQHJldHVybiBsZW5ndGgoJGdyaWQpO1xuICAgIH1cbiAgfVxufSIsIkBmdW5jdGlvbiBndXR0ZXItc3BhbigkZ3V0dGVyOiBmYWxzZSwgJGdyaWQ6IGZhbHNlLCAkZ3V0dGVyLXN0eWxlOiBmYWxzZSkge1xuXG4gIC8vIEZpbmQgdGhlIGNvbHVtbnMgYW5kIGd1dHRlcnNcbiAgJGdyaWQ6IGZpbmQtZ3JpZCgkZ3JpZCk7XG4gICRndXR0ZXI6IGZpbmQtZ3V0dGVyKCRndXR0ZXIpO1xuICAkZ3V0dGVyLXN0eWxlOiBmaW5kLWd1dHRlci1zdHlsZSgkZ3V0dGVyLXN0eWxlKTtcblxuICBAaWYgZml4ZWQtZ3V0dGVyKCRncmlkLCAkZ3V0dGVyLCAkZ3V0dGVyLXN0eWxlKSB7XG4gICAgQHJldHVybiBudGgoJGd1dHRlciwgMSk7XG4gIH1cblxuICAvLyBDb21iaW5lIHRoZSBjb2x1bW5zIGFuZCBndXR0ZXJzXG4gICRncmlkLWFuZC1ndXR0ZXJzOiBjb2x1bW4tc3VtKCRncmlkLCAkZ3V0dGVyLCAkZ3V0dGVyLXN0eWxlKTtcblxuICBAcmV0dXJuIChudGgoJGd1dHRlciwgMSkgLyAkZ3JpZC1hbmQtZ3V0dGVycykgKiAxMDAlXG59IiwiQGZ1bmN0aW9uIGNvbnRleHQoJHByaW1hcnksICRzZWNvbmRhcnkpIHtcbiAgQHJldHVybiAoJHByaW1hcnkgLyAkc2Vjb25kYXJ5KSAqIDEwMCU7XG59IiwiQGZ1bmN0aW9uIGdyaWQtc3Bhbigkc3BhbiwgJGxvY2F0aW9uLCAkZ3JpZDogZmFsc2UsICRndXR0ZXI6IGZhbHNlLCAkZ3V0dGVyLXN0eWxlOiBmYWxzZSkge1xuICBAcmV0dXJuIGNvbHVtbi1zcGFuKCRzcGFuLCAkbG9jYXRpb24sICRncmlkLCAkZ3V0dGVyLCAkZ3V0dGVyLXN0eWxlKSArIGd1dHRlci1zcGFuKCRndXR0ZXIsICRncmlkLCAkZ3V0dGVyLXN0eWxlKTtcbn0iLCJAaW1wb3J0IFwiZ3JpZHMvYWRkXCI7XG5AaW1wb3J0IFwiZ3JpZHMvZmluZFwiOyIsIi8vIEFjY2VwdHMgYSBncmlkIGRlZmluaXRpb24gaW4gdGhlIGh1bWFuLXJlYWRhYmxlIGZvcm1hdC4gQ29udmVydHMgaXQgdG8gdGhlIGludGVybmFsIGZvcm1hdCxcbi8vIGFwcGVuZHMgaXQgdG8gYSBsaXN0IG9mIGdyaWRzIGFuZCByZXR1cm5zIHRoZSByZXN1bHRpbmcgbGlzdC5cbi8vXG4vLyBOb3RlIHRoYXQgdGhpcyBmdW5jdGlvbiBvbmx5IHJldHVybnMgYSBuZXcgbGlzdCwgaXQgZG9lcyBub3QgbW9kaWZ5IHRoZSBzb3VyY2UgbGlzdC5cbi8vXG4vLyBhZGQtZ3JpZCgkZ3JpZC1kZWZpbml0aW9uLCAkYXBwZW5kLXRvLWxpc3QpXG4vLyAtICRncmlkLWRlZmluaXRpb24gOiA8ZGVmaW5pdGlvbj4gIFNlZSBkb2N1bWVudGF0aW9uIGZvciBzeW50YXg6XG4vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9UZWFtLVNhc3MvU2luZ3VsYXJpdHkvd2lraS9DcmVhdGluZy1Hcmlkc1xuLy8gLSAkYXBwZW5kLXRvLWxpc3QgIDogW2xpc3RdICAgICAgICBBIGxpc3QgdG8gYXBwZW5kIHRvLlxuLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWZhdWx0cyB0byAkZ3JpZHMgaWYgbm9uZSBpcyBzcGVjaWZpZWQuXG5AZnVuY3Rpb24gYWRkLWdyaWQoJGdyaWQtZGVmaW5pdGlvbiwgJGN1c3RvbS1tYXA6IGZhbHNlKSB7XG4gICRQYXJzZWQ6ICAgICAgcGFyc2UtYWRkKCRncmlkLWRlZmluaXRpb24pOyAvLyBQYXJzZXMgZ3JpZCBkZWZpbml0aW9uIHRvIGdyaWQvYnJlYWtwb2ludFxuICAkR3JpZDogICAgICAgIG50aCgkUGFyc2VkLCAxKTsgLy8gRS4gZy4gYCg8Z3JpZD4pYC5cbiAgJEJyZWFrcG9pbnQ6ICBudGgoJFBhcnNlZCwgMik7IC8vIEVpdGhlciBgKDxicmVha3BvaW50PilgIG9yIGZhbHNlLlxuICAkTW9iaWxlLUZpcnN0OiBzZ3MtZ2V0KCdtb2JpbGUgZmlyc3QnKTtcbiAgJEdyaWQtTWFwOiAoKTtcblxuICAvLyBEZXRlcm1pbmUgaWYgYSBjdXN0b20gbWFwIG9yIHRoZSBkZWZhdWx0IG1hcHMgc2hvdWxkIGJlIHVzZWQuXG4gIEBpZiAkY3VzdG9tLW1hcCB7XG4gICAgJEdyaWQtTWFwOiAkY3VzdG9tLW1hcDtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGlmIHNncy1oYXMoJ2dyaWRzJykge1xuICAgICAgJEdyaWQtTWFwOiBzZ3MtZ2V0KCdncmlkcycpO1xuICAgIH1cbiAgfVxuICAkR3JpZC1LZXktTGVuZ3RoOiBsZW5ndGgobWFwLWtleXMoJEdyaWQtTWFwKSk7XG5cbiAgLy8gQ2hlY2sgd2hldGhlciB0aGUgZGVmaW5pdGlvbiB3aWxsIGJlIHRoZSBmaXJzdCBvbmUgaW4gdGhlIGxpc3RcbiAgLy8gYW5kIHdoZXRoZXIgaXQgaGFzIG5vIGJyZWFrcG9pbnQgc3BlY2lmaWVkLlxuICBAaWYgJEJyZWFrcG9pbnQgPT0gbnVsbCB7XG4gICAgLy8gUmV0dXJucyB0aGUgZmlyc3QgaXRlbSBvZiB0aGUgbGlzdCwgZS4gZy4gYCg8Z3JpZD4pYFxuICAgICRHcmlkLU1hcDogbWFwLW1lcmdlKCRHcmlkLU1hcCwgKC0xcHg6ICRHcmlkKSk7XG4gIH1cbiAgLy8gSUYgdGhlIGxpc3QgaXMgaW5pdGlhdGVkIHdpdGggYSBsaXN0IG9mIGdyaWQgY29sdW1ucyBuZWVkIHRvIHN0YXJ0IG9mZlxuICAvLyBhIGNvbW1hIHNlcHJhdGVkIGxpc3QuXG4gIEBlbHNlIHtcbiAgICBAaWYgbm90IChtYXAtaGFzLWtleSgkR3JpZC1NYXAsIC0xcHgpKSB7XG4gICAgICAkR3JpZC1NYXA6IG1hcC1tZXJnZSgkR3JpZC1NYXAsIG1hcC1nZXQoJFNpbmd1bGFyaXR5LVNldHRpbmdzLCAnZ3JpZHMnKSk7XG4gICAgfVxuICAgICRHcmlkLU1hcDogbWFwLW1lcmdlKCRHcmlkLU1hcCwgKCRCcmVha3BvaW50OiAkR3JpZCkpO1xuICB9XG5cbiAgJEdyaWQtTWFwOiBzb3J0LW1hcCgkR3JpZC1NYXAsIG5vdCAkTW9iaWxlLUZpcnN0KTtcblxuICBAcmV0dXJuICRHcmlkLU1hcDtcbn1cblxuXG5AbWl4aW4gYWRkLWdyaWQoJGdyaWQtZGVmaW5pdGlvbikge1xuICAkQWRkLUdyaWQ6IGFkZC1ncmlkKCRncmlkLWRlZmluaXRpb24pO1xuICAkSE9MREVSOiBzZ3Mtc2V0KCdncmlkcycsICRBZGQtR3JpZCk7XG59IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBGaW5kIEdyaWRcbi8vXG4vLyBGaW5kcyB0aGUgZ3JpZCB0aGF0IHlvdSBhcmUgb24uXG4vLyBGcm9tIFNpbmd1bGFyaXR5XG4vLyBNdXN0IGJlIHVzaW5nIEJyZWFrcG9pbnQgdG8gd29yayBwcm9wZXJseVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gZmluZC1ncmlkKCR1c2VyLWNvbHVtbnM6IG51bGwpIHtcblxuICAvLyBXZSBzdXBwbHkgYSBkZWZhdWx0IGlmIHRoZSB1c2VyIGhhc24ndCBzZXQgYW55IGdyaWRzIGFuZCBoYXNuJ3QgcGFzc2VkIGluIGEgY3VzdG9tIGNvbHVtbiBzZXRcbiAgLy8gVGhlIGRlZmF1bHQgc3VwcGxpZWQgaXMgYmFzZWQgb24gb3JpZ2luYWwgU3VzeSBvcHRpb25zXG4gICRHcmlkczogc2dzLWdldCgnZ3JpZHMnKTtcblxuICAkRm91bmQ6IGZpbmQtb2JqZWN0KCRHcmlkcywgJHVzZXItY29sdW1ucyk7XG5cbiAgQGlmIGxlbmd0aCgkRm91bmQpID09IDEge1xuICAgICRGb3VuZDogbnRoKCRGb3VuZCwgMSk7XG4gIH1cblxuICBAcmV0dXJuICRGb3VuZDtcbn0iLCJAaW1wb3J0IFwiZ3V0dGVycy9hZGRcIjtcbkBpbXBvcnQgXCJndXR0ZXJzL2ZpbmRcIjsiLCIvLyBBY2NlcHRzIGEgZ3V0dGVyIGRlZmluaXRpb24gaW4gdGhlIGh1bWFuLXJlYWRhYmxlIGZvcm1hdC4gQ29udmVydHMgaXQgdG8gdGhlIGludGVybmFsIGZvcm1hdCxcbi8vIGFwcGVuZHMgaXQgdG8gYSBsaXN0IG9mIGd1dHRlciBhbmQgcmV0dXJucyB0aGUgcmVzdWx0aW5nIGxpc3QuXG4vL1xuLy8gTm90ZSB0aGF0IHRoaXMgZnVuY3Rpb24gb25seSByZXR1cm5zIGEgbmV3IGxpc3QsIGl0IGRvZXMgbm90IG1vZGlmeSB0aGUgc291cmNlIGxpc3QuXG4vL1xuLy8gYWRkLWd1dHRlcigkR3V0dGVyLWRlZmluaXRpb24sICRhcHBlbmQtdG8tbGlzdClcbi8vIC0gJGd1dHRlci1kZWZpbml0aW9uIDogPGRlZmluaXRpb24+ICBTZWUgZG9jdW1lbnRhdGlvbiBmb3Igc3ludGF4OlxuLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9UZWFtLVNhc3MvU2luZ3VsYXJpdHkvd2lraS9DcmVhdGluZy1HdXR0ZXJzXG4vLyAtICRhcHBlbmQtdG8tbGlzdCAgICA6IFtsaXN0XSAgICAgICAgQSBsaXN0IHRvIGFwcGVuZCB0by5cbi8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWZhdWx0cyB0byAkZ3V0dGVycyBpZiBub25lIGlzIHNwZWNpZmllZC5cbkBmdW5jdGlvbiBhZGQtZ3V0dGVyKCRndXR0ZXItZGVmaW5pdGlvbiwgJGN1c3RvbS1tYXA6IGZhbHNlKSB7XG4gICRQYXJzZWQ6ICAgICAgcGFyc2UtYWRkKCRndXR0ZXItZGVmaW5pdGlvbik7IC8vIFBhcnNlcyBHdXR0ZXIgZGVmaW5pdGlvbiB0byBHdXR0ZXIvYnJlYWtwb2ludFxuICAkR3V0dGVyOiAgICAgICAgbnRoKCRQYXJzZWQsIDEpOyAvLyBFLiBnLiBgKDxHdXR0ZXI+KWAuXG4gICRCcmVha3BvaW50OiAgbnRoKCRQYXJzZWQsIDIpOyAvLyBFaXRoZXIgYCg8YnJlYWtwb2ludD4pYCBvciBmYWxzZS5cbiAgJE1vYmlsZS1GaXJzdDogc2dzLWdldCgnbW9iaWxlIGZpcnN0Jyk7XG4gICRHdXR0ZXItTWFwOiAoKTtcblxuICAvLyBEZXRlcm1pbmUgaWYgYSBjdXN0b20gbWFwIG9yIHRoZSBkZWZhdWx0IG1hcHMgc2hvdWxkIGJlIHVzZWQuXG4gIEBpZiAkY3VzdG9tLW1hcCB7XG4gICAgJEd1dHRlci1NYXA6ICRjdXN0b20tbWFwO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAaWYgc2dzLWhhcygnZ3V0dGVycycpIHtcbiAgICAgICRHdXR0ZXItTWFwOiBzZ3MtZ2V0KCdndXR0ZXJzJyk7XG4gICAgfVxuICB9XG4gICRHdXR0ZXItS2V5LUxlbmd0aDogbGVuZ3RoKG1hcC1rZXlzKCRHdXR0ZXItTWFwKSk7XG5cbiAgLy8gQ2hlY2sgd2hldGhlciB0aGUgZGVmaW5pdGlvbiB3aWxsIGJlIHRoZSBmaXJzdCBvbmUgaW4gdGhlIGxpc3RcbiAgLy8gYW5kIHdoZXRoZXIgaXQgaGFzIG5vIGJyZWFrcG9pbnQgc3BlY2lmaWVkLlxuICBAaWYgJEJyZWFrcG9pbnQgPT0gbnVsbCB7XG4gICAgLy8gUmV0dXJucyB0aGUgZmlyc3QgaXRlbSBvZiB0aGUgbGlzdCwgZS4gZy4gYCg8R3V0dGVyPilgXG4gICAgJEd1dHRlci1NYXA6IG1hcC1tZXJnZSgkR3V0dGVyLU1hcCwgKC0xcHg6ICRHdXR0ZXIpKTtcbiAgfVxuICAvLyBJRiB0aGUgbGlzdCBpcyBpbml0aWF0ZWQgd2l0aCBhIGxpc3Qgb2YgR3V0dGVyIGNvbHVtbnMgbmVlZCB0byBzdGFydCBvZmZcbiAgLy8gYSBjb21tYSBzZXByYXRlZCBsaXN0LlxuICBAZWxzZSB7XG4gICAgQGlmIG5vdCAobWFwLWhhcy1rZXkoJEd1dHRlci1NYXAsIC0xcHgpKSB7XG4gICAgICAkR3V0dGVyLU1hcDogbWFwLW1lcmdlKCRHdXR0ZXItTWFwLCBtYXAtZ2V0KCRTaW5ndWxhcml0eS1TZXR0aW5ncywgJ2d1dHRlcnMnKSk7XG4gICAgfVxuICAgICRHdXR0ZXItTWFwOiBtYXAtbWVyZ2UoJEd1dHRlci1NYXAsICgkQnJlYWtwb2ludDogJEd1dHRlcikpO1xuICB9XG5cbiAgJEd1dHRlci1NYXA6IHNvcnQtbWFwKCRHdXR0ZXItTWFwLCBub3QgJE1vYmlsZS1GaXJzdCk7XG5cbiAgQHJldHVybiAkR3V0dGVyLU1hcDtcbn1cblxuQG1peGluIGFkZC1ndXR0ZXIoJGd1dHRlci1kZWZpbml0aW9uKSB7XG4gICRBZGQtR3V0dGVyOiBhZGQtZ3V0dGVyKCRndXR0ZXItZGVmaW5pdGlvbik7XG4gICRIT0xERVI6IHNncy1zZXQoJ2d1dHRlcnMnLCAkQWRkLUd1dHRlcik7XG59IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBGaW5kIGd1dHRlclxuLy9cbi8vIEZpbmRzIHRoZSBndXR0ZXIgdGhhdCB5b3UgYXJlIG9uLlxuLy8gRnJvbSBTaW5ndWxhcml0eVxuLy8gTXVzdCBiZSB1c2luZyBCcmVha3BvaW50IHRvIHdvcmsgcHJvcGVybHlcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGZpbmQtZ3V0dGVyKCR1c2VyLWd1dHRlcnM6IG51bGwpIHtcblxuICAvLyBXZSBzdXBwbHkgYSBkZWZhdWx0IGlmIHRoZSB1c2VyIGhhc24ndCBzZXQgYW55IGd1dHRlcnMgYW5kIGhhc24ndCBwYXNzZWQgaW4gYSBjdXN0b20gY29sdW1uIHNldFxuICAvLyBUaGUgZGVmYXVsdCBzdXBwbGllZCBpcyBiYXNlZCBvbiBvcmlnaW5hbCBTdXN5IG9wdGlvbnNcbiAgJEd1dHRlcnM6IHNncy1nZXQoJ2d1dHRlcnMnKTtcblxuICAkRm91bmQ6IGZpbmQtb2JqZWN0KCRHdXR0ZXJzLCAkdXNlci1ndXR0ZXJzKTtcblxuICBAaWYgbGVuZ3RoKCRGb3VuZCkgPT0gMSB7XG4gICAgJEZvdW5kOiBudGgoJEZvdW5kLCAxKTtcbiAgfVxuXG4gIEByZXR1cm4gJEZvdW5kO1xufSIsIkBpbXBvcnQgXCJndXR0ZXItc3R5bGVzL2FkZFwiO1xuQGltcG9ydCBcImd1dHRlci1zdHlsZXMvZmluZFwiO1xuQGltcG9ydCBcImd1dHRlci1zdHlsZXMvaGVscGVyc1wiOyIsIi8vIEFjY2VwdHMgYSBndXR0ZXItc3R5bGUgc3R5bGUgZGVmaW5pdGlvbiBpbiB0aGUgaHVtYW4tcmVhZGFibGUgZm9ybWF0LiBDb252ZXJ0cyBpdCB0byB0aGUgaW50ZXJuYWwgZm9ybWF0LFxuLy8gYXBwZW5kcyBpdCB0byBhIGxpc3Qgb2YgZ3V0dGVyLXN0eWxlIHN0eWxlcyBhbmQgcmV0dXJucyB0aGUgcmVzdWx0aW5nIGxpc3QuXG4vL1xuLy8gTm90ZSB0aGF0IHRoaXMgZnVuY3Rpb24gb25seSByZXR1cm5zIGEgbmV3IGxpc3QsIGl0IGRvZXMgbm90IG1vZGlmeSB0aGUgc291cmNlIGxpc3QuXG4vL1xuLy8gYWRkLWd1dHRlci1zdHlsZS1zdHlsZSgkZ3V0dGVyLXN0eWxlLXN0eWxlLWRlZmluaXRpb24sICRhcHBlbmQtdG8tbGlzdClcbi8vIC0gJGd1dHRlci1zdHlsZS1kZWZpbml0aW9uIDogPGRlZmluaXRpb24+ICBTZWUgZG9jdW1lbnRhdGlvbiBmb3Igc3ludGF4OlxuLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9UZWFtLVNhc3MvU2luZ3VsYXJpdHkvd2lraS9DcmVhdGluZy1Hcmlkc1xuLy8gLSAkYXBwZW5kLXRvLWxpc3QgICAgOiBbbGlzdF0gICAgICAgIEEgbGlzdCB0byBhcHBlbmQgdG8uXG4vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVmYXVsdHMgdG8gJGd1dHRlci1zdHlsZXMgaWYgbm9uZSBpcyBzcGVjaWZpZWQuXG5AZnVuY3Rpb24gYWRkLWd1dHRlci1zdHlsZSgkZ3V0dGVyLXN0eWxlLWRlZmluaXRpb24sICRjdXN0b20tbWFwOiBmYWxzZSkge1xuICAkUGFyc2VkOiAgICAgICAgcGFyc2UtYWRkKCRndXR0ZXItc3R5bGUtZGVmaW5pdGlvbik7IC8vIFBhcnNlcyBndXR0ZXItc3R5bGUgZGVmaW5pdGlvbiB0byBndXR0ZXItc3R5bGUvYnJlYWtwb2ludFxuICAkR3V0dGVyLVN0eWxlOiAgbnRoKCRQYXJzZWQsIDEpOyAvLyBFLiBnLiBgKDxndXR0ZXItc3R5bGU+KWAuXG4gICRCcmVha3BvaW50OiAgICBudGgoJFBhcnNlZCwgMik7IC8vIEVpdGhlciBgKDxicmVha3BvaW50PilgIG9yIGZhbHNlLlxuICAkTW9iaWxlLUZpcnN0OiAgc2dzLWdldCgnbW9iaWxlIGZpcnN0Jyk7XG4gICRHdXR0ZXItU3R5bGUtTWFwOiAoKTtcblxuICAvLyBEZXRlcm1pbmUgaWYgYSBjdXN0b20gbWFwIG9yIHRoZSBkZWZhdWx0IG1hcHMgc2hvdWxkIGJlIHVzZWQuXG4gIEBpZiAkY3VzdG9tLW1hcCB7XG4gICAgJEd1dHRlci1TdHlsZS1NYXA6ICRjdXN0b20tbWFwO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAaWYgc2dzLWhhcygnZ3V0dGVyIHN0eWxlcycpIHtcbiAgICAgICRHdXR0ZXItU3R5bGUtTWFwOiBzZ3MtZ2V0KCdndXR0ZXIgc3R5bGVzJyk7XG4gICAgfVxuICB9XG4gICRHdXR0ZXItU3R5bGUtS2V5LUxlbmd0aDogbGVuZ3RoKG1hcC1rZXlzKCRHdXR0ZXItU3R5bGUtTWFwKSk7XG5cbiAgLy8gQ2hlY2sgd2hldGhlciB0aGUgZGVmaW5pdGlvbiB3aWxsIGJlIHRoZSBmaXJzdCBvbmUgaW4gdGhlIGxpc3RcbiAgLy8gYW5kIHdoZXRoZXIgaXQgaGFzIG5vIGJyZWFrcG9pbnQgc3BlY2lmaWVkLlxuICBAaWYgJEJyZWFrcG9pbnQgPT0gbnVsbCB7XG4gICAgLy8gUmV0dXJucyB0aGUgZmlyc3QgaXRlbSBvZiB0aGUgbGlzdCwgZS4gZy4gYCg8Z3V0dGVyLXN0eWxlPilgXG4gICAgJEd1dHRlci1TdHlsZS1NYXA6IG1hcC1tZXJnZSgkR3V0dGVyLVN0eWxlLU1hcCwgKC0xcHg6ICRHdXR0ZXItU3R5bGUpKTtcbiAgfVxuICAvLyBJRiB0aGUgbGlzdCBpcyBpbml0aWF0ZWQgd2l0aCBhIGxpc3Qgb2YgZ3V0dGVyLXN0eWxlIGNvbHVtbnMgbmVlZCB0byBzdGFydCBvZmZcbiAgLy8gYSBjb21tYSBzZXByYXRlZCBsaXN0LlxuICBAZWxzZSB7XG4gICAgQGlmIG5vdCAobWFwLWhhcy1rZXkoJEd1dHRlci1TdHlsZS1NYXAsIC0xcHgpKSB7XG4gICAgICAkR3V0dGVyLVN0eWxlLU1hcDogbWFwLW1lcmdlKCRHdXR0ZXItU3R5bGUtTWFwLCBtYXAtZ2V0KCRTaW5ndWxhcml0eS1TZXR0aW5ncywgJ2d1dHRlciBzdHlsZXMnKSk7XG4gICAgfVxuICAgICRHdXR0ZXItU3R5bGUtTWFwOiBtYXAtbWVyZ2UoJEd1dHRlci1TdHlsZS1NYXAsICgkQnJlYWtwb2ludDogJEd1dHRlci1TdHlsZSkpO1xuICB9XG5cbiAgJEd1dHRlci1TdHlsZS1NYXA6IHNvcnQtbWFwKCRHdXR0ZXItU3R5bGUtTWFwLCBub3QgJE1vYmlsZS1GaXJzdCk7XG5cbiAgQHJldHVybiAkR3V0dGVyLVN0eWxlLU1hcDtcbn1cblxuQG1peGluIGFkZC1ndXR0ZXItc3R5bGUoJGd1dHRlci1zdHlsZS1kZWZpbml0aW9uKSB7XG4gICRBZGQtZ3V0dGVyLXN0eWxlOiBhZGQtZ3V0dGVyLXN0eWxlKCRndXR0ZXItc3R5bGUtZGVmaW5pdGlvbik7XG4gICRIT0xERVI6IHNncy1zZXQoJ2d1dHRlciBzdHlsZXMnLCAkQWRkLWd1dHRlci1zdHlsZSk7XG59IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBGaW5kIGd1dHRlciBzdHlsZVxuLy9cbi8vIEZpbmRzIHRoZSBndXR0ZXIgc3R5bGUgdGhhdCB5b3UgYXJlIHdvcmtpbmcgd2l0aC5cbi8vIEZyb20gU2luZ3VsYXJpdHlcbi8vIE11c3QgYmUgdXNpbmcgQnJlYWtwb2ludCB0byB3b3JrIHByb3Blcmx5XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBmaW5kLWd1dHRlci1zdHlsZSgkdXNlci1ndXR0ZXItc3R5bGVzOiBudWxsKSB7XG5cbiAgLy8gV2Ugc3VwcGx5IGEgZGVmYXVsdCBpZiB0aGUgdXNlciBoYXNuJ3Qgc2V0IGFueSBndXR0ZXJzIGFuZCBoYXNuJ3QgcGFzc2VkIGluIGEgY3VzdG9tIGNvbHVtbiBzZXRcbiAgLy8gVGhlIGRlZmF1bHQgc3VwcGxpZWQgaXMgYmFzZWQgb24gb3JpZ2luYWwgU3VzeSBvcHRpb25zXG4gICRHdXR0ZXJzLVN0eWxlczogc2dzLWdldCgnZ3V0dGVyIHN0eWxlcycpO1xuXG4gICRGb3VuZDogZmluZC1vYmplY3QoJEd1dHRlcnMtU3R5bGVzLCAkdXNlci1ndXR0ZXItc3R5bGVzKTtcblxuICBAaWYgbGVuZ3RoKCRGb3VuZCkgPT0gMSB7XG4gICAgJEZvdW5kOiBudGgoJEZvdW5kLCAxKTtcbiAgfVxuXG4gIEByZXR1cm4gJEZvdW5kO1xufSIsIkBmdW5jdGlvbiBmaXhlZC1ndXR0ZXIoJHVzZXItY29sdW1ucywgJHVzZXItZ3V0dGVyLCAkdXNlci1ndXR0ZXItc3R5bGUpIHtcbiAgQGlmIGluZGV4KCR1c2VyLWd1dHRlci1zdHlsZSwgJ2ZpeGVkJykge1xuICAgIC8vIEBkZWJ1ZyAnRml4ZWQgaW4gb3V0cHV0IHN0eWxlJztcbiAgICBAcmV0dXJuIHRydWU7XG4gIH1cbiAgQGVsc2UgaWYgdHlwZS1vZigkdXNlci1jb2x1bW5zKSA9PSAnbnVtYmVyJyBhbmQgbm90IHVuaXRsZXNzKCR1c2VyLWd1dHRlcikge1xuICAgIC8vIEBkZWJ1ZyAnRXF1YWwgY29sdW1ucyB3aXRoIGEgdW5pdCBiYXNlZCBndXR0ZXInO1xuICAgIEByZXR1cm4gdHJ1ZTtcbiAgfVxuICBAZWxzZSBpZiB0eXBlLW9mKCR1c2VyLWNvbHVtbnMpID09ICdsaXN0JyB7XG4gICAgQGlmIHVuaXQobnRoKCR1c2VyLWNvbHVtbnMsIDEpKSAhPSB1bml0KCR1c2VyLWd1dHRlcikge1xuICAgICAgLy8gQGRlYnVnICdDb2x1bW5zIGFuZCBndXR0ZXJzIGFyZSBkaWZmZXJlbnQgdW5pdHMnO1xuICAgICAgQHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIEByZXR1cm4gZmFsc2U7XG59XG5cbkBmdW5jdGlvbiBndXR0ZXItcHJvcGVydHkoJHVzZXItY29sdW1ucywgJHVzZXItZ3V0dGVyLCAkdXNlci1ndXR0ZXItc3R5bGUpIHtcbiAgQGlmIGZpeGVkLWd1dHRlcigkdXNlci1jb2x1bW5zLCAkdXNlci1ndXR0ZXIsICR1c2VyLWd1dHRlci1zdHlsZSkge1xuICAgIEByZXR1cm4gJ3BhZGRpbmcnO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuICdtYXJnaW4nO1xuICB9XG59IiwiQGltcG9ydCBcImFwaS9mbG9hdFwiO1xuQGltcG9ydCBcImFwaS9pc29sYXRpb25cIjtcbkBpbXBvcnQgXCJhcGkvY2FsY1wiO1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIE1hc3RlciBHcmlkIFNwYW4gbWl4aW5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQG1peGluIGdyaWQtc3Bhbigkc3BhbiwgJGxvY2F0aW9uOiAxLCAkZ3JpZDogbnVsbCwgJGd1dHRlcjogbnVsbCwgJG91dHB1dC1zdHlsZTogbnVsbCwgJGd1dHRlci1zdHlsZTogbnVsbCwgJG9wdGlvbnM6IG51bGwpIHtcblxuICBAaWYgJG91dHB1dC1zdHlsZSA9PSBudWxsIHtcbiAgICAkb3V0cHV0LXN0eWxlOiBzZ3MtZ2V0KCdvdXRwdXQnKTtcbiAgfVxuXG4gICRHcmlkOiBmaW5kLWdyaWQoJGdyaWQpO1xuICAkR3V0dGVyOiBmaW5kLWd1dHRlcigkZ3V0dGVyKTtcbiAgJFN0eWxlOiBmaW5kLWd1dHRlci1zdHlsZSgkZ3V0dGVyLXN0eWxlKTtcblxuICAkU3RhcnQtUm93OiBzdGFydC1yb3coJGxvY2F0aW9uKTtcbiAgJEVuZC1Sb3c6IGVuZC1yb3coJHNwYW4sICRsb2NhdGlvbiwgJEdyaWQpO1xuXG4gICRGaXhlZC1HdXR0ZXI6IGZpeGVkLWd1dHRlcigkR3JpZCwgJEd1dHRlciwgJFN0eWxlKTtcbiAgJFNwbGl0LUd1dHRlcjogaW5kZXgoJFN0eWxlLCAnc3BsaXQnKTtcbiAgJEd1dHRlci1Qcm9wZXJ0eTogZ3V0dGVyLXByb3BlcnR5KCRHcmlkLCAkR3V0dGVyLCAkU3R5bGUpO1xuXG4gICREaXJlY3Rpb246IHNncy1nZXQoJ2RpcmVjdGlvbicpO1xuICAkRnJvbTogaWYoJG9wdGlvbnMgYW5kIHR5cGUtb2YoJG9wdGlvbnMpID09ICdtYXAnLCBpZihtYXAtZ2V0KCRvcHRpb25zLCAnZnJvbScpLCBtYXAtZ2V0KCRvcHRpb25zLCAnZnJvbScpLCAkRGlyZWN0aW9uKSwgJERpcmVjdGlvbik7XG4gICRGcm9tOiBpZigkRnJvbSA9PSAnbHRyJyBvciAkRnJvbSA9PSAncnRsJywgbmFtZWQtZGlyZWN0aW9uKCRGcm9tKSwgJEZyb20pO1xuXG4gICRIb2xkZXI6ICgpO1xuICBAZWFjaCAkaywgJHYgaW4gJG9wdGlvbnMge1xuICAgICRIb2xkZXI6IGlmKCRrID09ICdmcm9tJywgJEhvbGRlciwgbWFwLW1lcmdlKCRIb2xkZXIsICgkazogJHYpKSk7XG4gIH1cbiAgJG9wdGlvbnM6IGlmKGxlbmd0aCgkSG9sZGVyKSA+IDAsICRIb2xkZXIsIG51bGwpO1xuXG4gICRTcGFuLU1hcDogKFxuICAgICdzcGFuJzogJHNwYW4sXG4gICAgJ2xvY2F0aW9uJzogJGxvY2F0aW9uLFxuICAgICdncmlkJzogJEdyaWQsXG4gICAgJ2d1dHRlcic6ICRHdXR0ZXIsXG4gICAgJ3N0eWxlJzogJFN0eWxlLFxuICAgICdzdGFydCByb3cnOiAkU3RhcnQtUm93LFxuICAgICdlbmQgcm93JzogJEVuZC1Sb3csXG4gICAgJ2ZpeGVkIGd1dHRlcic6ICRGaXhlZC1HdXR0ZXIsXG4gICAgJ3NwbGl0IGd1dHRlcic6ICRTcGxpdC1HdXR0ZXIsXG4gICAgJ2d1dHRlciBwcm9wZXJ0eSc6ICRHdXR0ZXItUHJvcGVydHksXG4gICAgJ29wdGlvbnMnOiAkb3B0aW9uc1xuICApO1xuXG4gIEBpZiBzZ3MtZ2V0KCdkZWJ1ZycpICE9IGZhbHNlIHtcbiAgICAtc2dzLXNwYW4tc2V0dGluZ3M6IGluc3BlY3QoJFNwYW4tTWFwKTtcbiAgfVxuXG5cbiAgQGlmIGZ1bmN0aW9uLWV4aXN0cygnb3V0cHV0LSN7JG91dHB1dC1zdHlsZX0nKSB7XG4gICAgJExlZnQ6ICgpO1xuICAgICRSaWdodDogKCk7XG5cbiAgICBAaWYgJERpcmVjdGlvbiA9PSAnYm90aCcgb3IgJEZyb20gPT0gJ2xlZnQnIG9yICgkRGlyZWN0aW9uID09ICdydGwnIGFuZCAkRnJvbSA9PSAnb3Bwb3NpdGUnKSB7XG4gICAgICAkTGVmdDogY2FsbCgnb3V0cHV0LSN7JG91dHB1dC1zdHlsZX0nLCBtYXAtbWVyZ2UoJFNwYW4tTWFwLCAoJ2RpcmVjdGlvbic6IGxlZnQpKSk7XG4gICAgfVxuXG4gICAgQGlmICREaXJlY3Rpb24gPT0gJ2JvdGgnIG9yICRGcm9tID09ICdyaWdodCcgb3IgKCREaXJlY3Rpb24gPT0gJ2x0cicgYW5kICRGcm9tID09ICdvcHBvc2l0ZScpIHtcbiAgICAgICRSaWdodDogY2FsbCgnb3V0cHV0LSN7JG91dHB1dC1zdHlsZX0nLCBtYXAtbWVyZ2UoJFNwYW4tTWFwLCAoJ2RpcmVjdGlvbic6IHJpZ2h0KSkpO1xuICAgIH1cblxuICAgICRMZWZ0LUtleXM6IG1hcC1rZXlzKCRMZWZ0KTtcbiAgICAkUmlnaHQtS2V5czogbWFwLWtleXMoJFJpZ2h0KTtcbiAgICAkRXhjbHVkZTogKCk7XG5cbiAgICBAZWFjaCAka2V5IGluICRMZWZ0LUtleXMge1xuICAgICAgQGlmIGluZGV4KCRSaWdodC1LZXlzLCAka2V5KSB7XG4gICAgICAgIEBpZiBtYXAtZ2V0KCRSaWdodCwgJGtleSkgPT0gbWFwLWdldCgkTGVmdCwgJGtleSkge1xuICAgICAgICAgICRFeGNsdWRlOiBhcHBlbmQoJEV4Y2x1ZGUsICRrZXkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQWx3YXlzIHRyeSBhbmQgcHJpbnQgdGhlIExlZnQgdmFsdWVcbiAgICBAaW5jbHVkZSBncmlkLXNwYW4tYnVpbGQtZXhjbHVkZSgkTGVmdCwgJEV4Y2x1ZGUsIGZhbHNlKTtcblxuICAgIC8vIElmIERpcmVjdGlvbiBpcyBCb3RoIG9yIFJUTCwgYWRkIHRoZSBSVEwgYXR0cmlidXRlIHNlbGVjdG9yXG4gICAgQGlmICREaXJlY3Rpb24gPT0gJ2JvdGgnIG9yICREaXJlY3Rpb24gPT0gJ3J0bCcge1xuICAgICAgW2Rpcj1cInJ0bFwiXSAmIHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1zcGFuLWJ1aWxkLWV4Y2x1ZGUoJFJpZ2h0LCAkRXhjbHVkZSwgdHJ1ZSk7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtc3Bhbi1idWlsZC1leGNsdWRlKCRSaWdodCwgJEV4Y2x1ZGUsIHRydWUpO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQHdhcm4gXCJUaGVyZSBkb2Vzbid0IGFwcGVhciB0byBiZSBhbiBvdXRwdXQgc3R5bGUgbmFtZWQgYCN7JG91dHB1dC1zdHlsZX1gLiBQbGVhc2UgZW5zdXJlIHRoYXQgdGhlIGZ1bmN0aW9uIGBvdXRwdXQtI3skb3V0cHV0LXN0eWxlfWAgYW5kIHRoYXQgdGhlIG91dHB1dCBzdHlsZSBgI3skb3V0cHV0LXN0eWxlfWAgYXJlIGJvdGggYXZhaWxhYmxlIGJlZm9yZSB0cnlpbmcgdG8gdXNlIHRoZW0uXCI7XG4gIH1cbn1cblxuQG1peGluIGdyaWQtc3Bhbi1idWlsZCgkcHJvcGVydHksICR2YWx1ZSkge1xuICBAaWYgdHlwZS1vZigkdmFsdWUpICE9ICdtYXAnIHtcbiAgICAjeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGVhY2ggJHByZWZpeCwgJHZhbCBpbiAkdmFsdWUge1xuICAgICAgI3skcHJvcGVydHl9OiAkdmFsO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZ3JpZC1zcGFuLWJ1aWxkLWV4Y2x1ZGUoJHByb3BlcnRpZXMsICRkZWx0YSwgJGV4Y2x1ZGU6IGZhbHNlKSB7XG4gIEBlYWNoICRwcm9wZXJ0eSwgJHZhbHVlIGluICRwcm9wZXJ0aWVzIHtcbiAgICBAaWYgJGV4Y2x1ZGUge1xuICAgICAgQGlmIG5vdCBpbmRleCgkZGVsdGEsICRwcm9wZXJ0eSkge1xuICAgICAgICBAaW5jbHVkZSBncmlkLXNwYW4tYnVpbGQoJHByb3BlcnR5LCAkdmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAaW5jbHVkZSBncmlkLXNwYW4tYnVpbGQoJHByb3BlcnR5LCAkdmFsdWUpO1xuICAgIH1cbiAgfVxufSIsIkBmdW5jdGlvbiBvdXRwdXQtZmxvYXQoJFNwYW4tTWFwKSB7XG4gIC8vIFNldCB1cCBMZWZ0L1JpZ2h0IG1hcHNcbiAgJFJldHVybjogKCk7XG5cbiAgJFNwYW46IG1hcC1nZXQoJFNwYW4tTWFwLCAnc3BhbicpO1xuICAkTG9jYXRpb246IG1hcC1nZXQoJFNwYW4tTWFwLCAnbG9jYXRpb24nKTtcblxuICAkR3JpZDogbWFwLWdldCgkU3Bhbi1NYXAsICdncmlkJyk7XG4gICRHdXR0ZXI6IG1hcC1nZXQoJFNwYW4tTWFwLCAnZ3V0dGVyJyk7XG4gICRTdHlsZTogbWFwLWdldCgkU3Bhbi1NYXAsICdzdHlsZScpO1xuXG4gICRTdGFydC1Sb3c6IG1hcC1nZXQoJFNwYW4tTWFwLCAnc3RhcnQgcm93Jyk7XG4gICRFbmQtUm93OiBtYXAtZ2V0KCRTcGFuLU1hcCwgJ2VuZCByb3cnKTtcblxuICAkRml4ZWQtR3V0dGVyOiBtYXAtZ2V0KCRTcGFuLU1hcCwgJ2ZpeGVkIGd1dHRlcicpO1xuICAkU3BsaXQtR3V0dGVyOiBtYXAtZ2V0KCRTcGFuLU1hcCwgJ3NwbGl0IGd1dHRlcicpO1xuICAkR3V0dGVyLVByb3BlcnR5OiBtYXAtZ2V0KCRTcGFuLU1hcCwgJ2d1dHRlciBwcm9wZXJ0eScpO1xuXG4gICREaXJlY3Rpb246IG1hcC1nZXQoJFNwYW4tTWFwLCAnZGlyZWN0aW9uJyk7XG4gICRPcHRpb25zOiBtYXAtZ2V0KCRTcGFuLU1hcCwgJ29wdGlvbnMnKTtcblxuICBAaWYgJFN0YXJ0LVJvdyB7XG4gICAgJExvY2F0aW9uOiAxO1xuICB9XG4gIEBlbHNlIGlmICRFbmQtUm93IHtcbiAgICAkTG9jYXRpb246IGNvbHVtbi1jb3VudCgkR3JpZCkgLSAkU3BhbiArIDE7XG4gIH1cblxuICAkV2lkdGg6IGNvbHVtbi1zcGFuKCRTcGFuLCAkTG9jYXRpb24sICRHcmlkLCAkR3V0dGVyLCAkU3R5bGUpO1xuICAkTWFyZ2luLVNwYW46IGNvbHVtbi1zcGFuKCgkTG9jYXRpb24gLSAxKSwgMSwgJEdyaWQsICRHdXR0ZXIsICRTdHlsZSk7XG4gICRHdXR0ZXItU3BhbjogZ3V0dGVyLXNwYW4oJEd1dHRlciwgJEdyaWQpO1xuXG4gIC8vIEJhY2t3YXJkcyBDb21wYXRpYmlsaXR5IGZvciBPcHRpb25zXG4gIEBpZiB0eXBlLW9mKCRPcHRpb25zKSAhPSAnbWFwJyBhbmQgJE9wdGlvbnMgIT0gbnVsbCB7XG4gICAgJE9wdGlvbnM6ICgnY2xlYXInOiB1bnF1b3RlKG50aCgkT3B0aW9ucywgMSkpKTtcbiAgfVxuXG4gICREaXI6ICREaXJlY3Rpb247XG4gICRPcHA6IG9wcG9zaXRlLWRpcmVjdGlvbigkRGlyKTtcblxuICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgKCd3aWR0aCc6ICRXaWR0aCkpO1xuICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgKCdjbGVhcic6ICRPcHApKTtcblxuICBAaWYgKCRFbmQtUm93KSB7XG4gICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICgnZmxvYXQnOiAkT3BwKSk7XG5cbiAgICBAaWYgJFNwbGl0LUd1dHRlciBhbmQgbm90ICRGaXhlZC1HdXR0ZXIge1xuICAgICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICgnI3skR3V0dGVyLVByb3BlcnR5fS0jeyREaXJ9JzogMCkpO1xuICAgICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICgnI3skR3V0dGVyLVByb3BlcnR5fS0jeyRPcHB9JzogJEd1dHRlci1TcGFuIC8gMikpO1xuICAgIH1cbiAgICBAZWxzZSBpZiBub3QgJEZpeGVkLUd1dHRlciB7XG4gICAgICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgKCcjeyRHdXR0ZXItUHJvcGVydHl9LSN7JE9wcH0nOiAwKSk7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgKCdmbG9hdCc6ICREaXIpKTtcblxuICAgIEBpZiAkU3BsaXQtR3V0dGVyIGFuZCBub3QgJEZpeGVkLUd1dHRlciB7XG4gICAgICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgKCcjeyRHdXR0ZXItUHJvcGVydHl9LSN7JERpcn0nOiAkR3V0dGVyLVNwYW4gLyAyKSk7XG4gICAgICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgKCcjeyRHdXR0ZXItUHJvcGVydHl9LSN7JE9wcH0nOiAkR3V0dGVyLVNwYW4gLyAyKSk7XG4gICAgfVxuICAgIEBlbHNlIGlmIG5vdCAkRml4ZWQtR3V0dGVyIHtcbiAgICAgIEBpZiAkU3RhcnQtUm93IHtcbiAgICAgICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICgnI3skR3V0dGVyLVByb3BlcnR5fS0jeyREaXJ9JzogMCkpO1xuICAgICAgfVxuICAgICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICgnI3skR3V0dGVyLVByb3BlcnR5fS0jeyRPcHB9JzogJEd1dHRlci1TcGFuKSk7XG4gICAgfVxuICB9XG4gIC8vIElmIG9wdGlvbnMgYXJlIHNldCwgd2UgbWVyZ2UgdGhlbSBpbiFcbiAgQGlmICgkT3B0aW9ucykge1xuICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAkT3B0aW9ucyk7XG4gIH1cblxuICAvLyBJZiBDTGVhciBpc24ndCBhbHJlYWR5IGF2YWlsYWJsZSwgc2V0IGl0IVxuICBAaWYgbm90IG1hcC1oYXMta2V5KCRSZXR1cm4sICdjbGVhcicpIHtcbiAgICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgKCdjbGVhcic6IG5vbmUpKTtcbiAgfVxuXG4gIC8vIExlZnQgRml4ZWQgR3V0dGVyc1xuICBAaWYgJEZpeGVkLUd1dHRlciB7XG4gICAgQGlmIGluZGV4KCRTdHlsZSwgJ3NwbGl0Jykge1xuICAgICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICgnI3skR3V0dGVyLVByb3BlcnR5fS0jeyREaXJ9JzogJEd1dHRlci1TcGFuIC8gMikpO1xuICAgICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICgnI3skR3V0dGVyLVByb3BlcnR5fS0jeyRPcHB9JzogJEd1dHRlci1TcGFuIC8gMikpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAaWYgbm90ICRFbmQtUm93IHtcbiAgICAgICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICgnI3skR3V0dGVyLVByb3BlcnR5fS0jeyRPcHB9JzogJEd1dHRlci1TcGFuKSk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJyN7JEd1dHRlci1Qcm9wZXJ0eX0tI3skT3BwfSc6IDApKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRSZXR1cm47XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSGFwcHkgU3ludGF4IGZvciBGbG9hdFxuLy9cbi8vIE1ha2VzIHdvcmtpbmcgd2l0aCBGbG9hdCBlYXNpZXIsIGFzIGl0IGFsbG93cyB5b3UgdG8gd2FsayB0aGUgZ3JpZCBmb3Igc3ltbWV0cmljIGdyaWRzIGFuZCBlYXN5IGFwcGx5aW5nIG9mICdsYXN0JyBhbmQgJ2ZpcnN0JywgYXMgd2VsbCBhcyBhdXRvbWF0aWNhbGx5IGJ1aWxkaW5nIHRoZSB2ZXJib3NlIGdyaWQtc3BhbiBtaXhpbiBjYWxsXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBtaXhpbiBmbG9hdC1zcGFuKCRTcGFuLCAkTG9jYXRpb246IGZhbHNlLCAkZ3JpZDogZmFsc2UsICRndXR0ZXI6IGZhbHNlLCAkZ3V0dGVyLXN0eWxlOiBmYWxzZSwgJGZyb206IGZhbHNlKSB7XG4gICRncmlkOiBmaW5kLWdyaWQoJGdyaWQpO1xuICAkZ3V0dGVyOiBmaW5kLWd1dHRlcigkZ3V0dGVyKTtcbiAgJHJvdzogZmFsc2U7XG5cbiAgJE9wdGlvbnM6IGlmKCRmcm9tLCAoJ2Zyb20nOiAkZnJvbSksIG51bGwpO1xuXG4gIC8vIFdvcmtpbmcgYXJvdW5kIFNBU1MgdHJlYXRpbmcgYSBudW1iZXIgbGlrZSBhIGxpc3Qgd2l0aCBvbmUgZWxlbWVudFxuICBAaWYgdHlwZS1vZigkZ3JpZCkgPT0gJ2xpc3QnIGFuZCBsZW5ndGgoJGdyaWQpID09IDEge1xuICAgICRncmlkOiBudGgoJGdyaWQsIDEpO1xuICB9XG5cbiAgLy8gV29ya2luZyB3aXRoIGEgc3ltbWV0cmljIGdyaWRcbiAgQGlmIHR5cGUtb2YoJGdyaWQpID09ICdudW1iZXInIHtcbiAgICAvLyBTcGVjaWFsIHRyZWF0bWVudCBmb3Igbm9uLW51bWVyaWMgbG9jYXRpb25cbiAgICBAaWYgdHlwZS1vZigkTG9jYXRpb24pICE9ICdudW1iZXInIHtcbiAgICAgIEBpZiAkTG9jYXRpb24gPT0gJ2xhc3QnIG9yICRMb2NhdGlvbiA9PSAnb21lZ2EnIHtcbiAgICAgICAgJExvY2F0aW9uOiAkZ3JpZCAtICRTcGFuICsgMTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgQGlmICRMb2NhdGlvbiA9PSAnZmlyc3QnIG9yICRMb2NhdGlvbiA9PSAnYWxwaGEnIHtcbiAgICAgICAgICAkcm93OiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgICRMb2NhdGlvbjogMTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBncmlkLXNwYW4oJFNwYW4sICRMb2NhdGlvbiwgJGdyaWQsICRndXR0ZXIsICdmbG9hdCcsICRndXR0ZXItc3R5bGUsICRPcHRpb25zKTtcblxuICAgIEBpZiAkcm93IHtcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cbiAgfVxuICAvLyBXb3JraW5nIHdpdGggYW4gYXN5bW1ldHJpYyBncmlkLCBzaG91bGQgaGF2ZSBsb2NhdGlvbiBwcm92aWRlZFxuICBAZWxzZSBpZiB0eXBlLW9mKCRncmlkKSA9PSAnbGlzdCcgYW5kICRMb2NhdGlvbiAhPSBmYWxzZSB7XG4gICAgQGluY2x1ZGUgZ3JpZC1zcGFuKCRTcGFuLCAkTG9jYXRpb24sICRncmlkLCAkZ3V0dGVyLCAnZmxvYXQnLCAkZ3V0dGVyLXN0eWxlLCAkT3B0aW9ucyk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEB3YXJuICdBc3ltbWV0cmljIEdyaWRzIG5lZWQgYSBMb2NhdGlvbiB2YWx1ZSBhcyB3ZWxsIGFzIGEgc3BhbiB2YWx1ZSBpbiBvcmRlciB0byBrbm93IHdoZXJlIG9uIHRoZSBncmlkIHlvdSBhcmUhIFBsZWFzZSBpbmNsdWRlIGEgbG9jYXRpb24gdmFsdWUhJztcbiAgfVxufVxuIiwiQGZ1bmN0aW9uIG91dHB1dC1pc29sYXRpb24oJFNwYW4tTWFwKSB7XG4gIC8vIFNldCB1cCBMZWZ0L1JpZ2h0IG1hcHNcbiAgJFJldHVybjogKCk7XG5cbiAgJFNwYW46IG1hcC1nZXQoJFNwYW4tTWFwLCAnc3BhbicpO1xuICAkTG9jYXRpb246IG1hcC1nZXQoJFNwYW4tTWFwLCAnbG9jYXRpb24nKTtcblxuICAkR3JpZDogbWFwLWdldCgkU3Bhbi1NYXAsICdncmlkJyk7XG4gICRHdXR0ZXI6IG1hcC1nZXQoJFNwYW4tTWFwLCAnZ3V0dGVyJyk7XG4gICRTdHlsZTogbWFwLWdldCgkU3Bhbi1NYXAsICdzdHlsZScpO1xuXG4gICRTdGFydC1Sb3c6IG1hcC1nZXQoJFNwYW4tTWFwLCAnc3RhcnQgcm93Jyk7XG4gICRFbmQtUm93OiBtYXAtZ2V0KCRTcGFuLU1hcCwgJ2VuZCByb3cnKTtcblxuICAkRml4ZWQtR3V0dGVyOiBtYXAtZ2V0KCRTcGFuLU1hcCwgJ2ZpeGVkIGd1dHRlcicpO1xuICAkU3BsaXQtR3V0dGVyOiBtYXAtZ2V0KCRTcGFuLU1hcCwgJ3NwbGl0IGd1dHRlcicpO1xuICAkR3V0dGVyLVByb3BlcnR5OiBtYXAtZ2V0KCRTcGFuLU1hcCwgJ2d1dHRlciBwcm9wZXJ0eScpO1xuXG4gICREaXJlY3Rpb246IG1hcC1nZXQoJFNwYW4tTWFwLCAnZGlyZWN0aW9uJyk7XG4gICRPcHRpb25zOiBtYXAtZ2V0KCRTcGFuLU1hcCwgJ29wdGlvbnMnKTtcblxuICAkV2lkdGg6IGNvbHVtbi1zcGFuKCRTcGFuLCAkTG9jYXRpb24sICRHcmlkLCAkR3V0dGVyLCAkU3R5bGUpO1xuICAkTWFyZ2luLVNwYW46IGNvbHVtbi1zcGFuKCgkTG9jYXRpb24gLSAxKSwgMSwgJEdyaWQsICRHdXR0ZXIsICRTdHlsZSk7XG4gICRHdXR0ZXItU3BhbjogZ3V0dGVyLXNwYW4oJEd1dHRlciwgJEdyaWQpO1xuXG4gIC8vIEJhY2t3YXJkcyBDb21wYXRpYmlsaXR5IGZvciBPcHRpb25zXG4gIEBpZiB0eXBlLW9mKCRPcHRpb25zKSAhPSAnbWFwJyBhbmQgJE9wdGlvbnMgIT0gbnVsbCB7XG4gICAgJE9wdGlvbnM6ICgnY2xlYXInOiB1bnF1b3RlKG50aCgkT3B0aW9ucywgMSkpKTtcbiAgfVxuXG4gICREaXI6ICREaXJlY3Rpb247XG4gICRPcHA6IG9wcG9zaXRlLWRpcmVjdGlvbigkRGlyKTtcblxuICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgKCd3aWR0aCc6ICRXaWR0aCkpO1xuXG4gIEBpZiAoJEVuZC1Sb3cpIHtcbiAgICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgKCdmbG9hdCc6ICRPcHApKTtcbiAgICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgKCdtYXJnaW4tI3skRGlyfSc6IDApKTtcblxuICAgIEBpZiAkU3BsaXQtR3V0dGVyIGFuZCBub3QgJEZpeGVkLUd1dHRlciB7XG4gICAgICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgKCcjeyRHdXR0ZXItUHJvcGVydHl9LSN7JE9wcH0nOiAkR3V0dGVyLVNwYW4gLyAyKSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJ21hcmdpbi0jeyRPcHB9JzogMCkpO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICgnZmxvYXQnOiAkRGlyKSk7XG4gICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICgnbWFyZ2luLSN7JE9wcH0nOiAtMTAwJSkpO1xuXG4gICAgQGlmICRTdGFydC1Sb3cge1xuICAgICAgQGlmICRTcGxpdC1HdXR0ZXIgYW5kIG5vdCAkRml4ZWQtR3V0dGVyIHtcbiAgICAgICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICgnbWFyZ2luLSN7JERpcn0nOiAkR3V0dGVyLVNwYW4gLyAyKSk7XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiBub3QgJEZpeGVkLUd1dHRlciB7XG4gICAgICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJ21hcmdpbi0jeyREaXJ9JzogMCkpO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAaWYgJFNwbGl0LUd1dHRlciBhbmQgbm90ICRGaXhlZC1HdXR0ZXIge1xuICAgICAgICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgKCdtYXJnaW4tI3skRGlyfSc6ICRNYXJnaW4tU3BhbiArICRHdXR0ZXItU3BhbiArICRHdXR0ZXItU3BhbiAvIDIpKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmIG5vdCAkRml4ZWQtR3V0dGVyIHtcbiAgICAgICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICgnbWFyZ2luLSN7JERpcn0nOiAkTWFyZ2luLVNwYW4gKyAkR3V0dGVyLVNwYW4pKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICgnbWFyZ2luLSN7JERpcn0nOiAkTWFyZ2luLVNwYW4pKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLy8gSWYgb3B0aW9ucyBhcmUgc2V0LCB3ZSBtZXJnZSB0aGVtIGluIVxuICBAaWYgKCRPcHRpb25zKSB7XG4gICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICRPcHRpb25zKTtcbiAgfVxuXG4gIC8vIElmIENMZWFyIGlzbid0IGFscmVhZHkgYXZhaWxhYmxlLCBzZXQgaXQhXG4gIEBpZiBub3QgbWFwLWhhcy1rZXkoJFJldHVybiwgJ2NsZWFyJykge1xuICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJ2NsZWFyJzogbm9uZSkpO1xuICB9XG5cbiAgLy8gTGVmdCBGaXhlZCBHdXR0ZXJzXG4gIEBpZiAkRml4ZWQtR3V0dGVyIHtcbiAgICBAaWYgaW5kZXgoJFN0eWxlLCAnc3BsaXQnKSB7XG4gICAgICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgKCcjeyRHdXR0ZXItUHJvcGVydHl9LSN7JERpcn0nOiAkR3V0dGVyLVNwYW4gLyAyKSk7XG4gICAgICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgKCcjeyRHdXR0ZXItUHJvcGVydHl9LSN7JE9wcH0nOiAkR3V0dGVyLVNwYW4gLyAyKSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBpZiBub3QgJEVuZC1Sb3cge1xuICAgICAgICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgKCcjeyRHdXR0ZXItUHJvcGVydHl9LSN7JE9wcH0nOiAkR3V0dGVyLVNwYW4pKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICgnI3skR3V0dGVyLVByb3BlcnR5fS0jeyRPcHB9JzogMCkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJFJldHVybjtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBIYXBweSBTeW50YXggZm9yIElzb2xhdGlvblxuLy9cbi8vIE1ha2VzIHdvcmtpbmcgd2l0aCBJc29sYXRpb24gZWFzaWVyLCBhcyBpdCBtb3ZlcyBDbGVhciB0byBhIDFzdCBjbGFzcyBjaXRpemVuIG9mIHRoZSBtaXhpbiwgYW5kIGF1dG9tYXRpY2FsbHkgYnVpbGRzIHRoZSB2ZXJib3NlIGdyaWQtc3BhbiBtaXhpbiBjYWxsXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBtaXhpbiBpc29sYXRpb24tc3BhbigkU3BhbiwgJExvY2F0aW9uLCAkY2xlYXI6IGZhbHNlLCAkZ3JpZDogZmFsc2UsICRndXR0ZXI6IGZhbHNlLCAkZ3V0dGVyLXN0eWxlOiBmYWxzZSwgJGZyb206IGZhbHNlKSB7XG4gICRPcHRpb25zOiAoKTtcbiAgQGlmICRjbGVhciB7XG4gICAgJE9wdGlvbnM6IG1hcC1tZXJnZSgkT3B0aW9ucywgKCdjbGVhcic6IHVucXVvdGUoJGNsZWFyKSkpO1xuICB9XG4gIEBpZiAkZnJvbSB7XG4gICAgJE9wdGlvbnM6IG1hcC1tZXJnZSgkT3B0aW9ucywgKCdmcm9tJzogJGZyb20pKTtcbiAgfVxuXG4gICRPcHRpb25zOiBpZihsZW5ndGgoJE9wdGlvbnMpID4gMCwgJE9wdGlvbnMsIG51bGwpO1xuICBAaW5jbHVkZSBncmlkLXNwYW4oJFNwYW4sICRMb2NhdGlvbiwgJGdyaWQsICRndXR0ZXIsICdpc29sYXRpb24nLCAkZ3V0dGVyLXN0eWxlLCAkT3B0aW9ucyk7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSGFwcHkgU3ludGF4IG9mIEFzeW1tZXRyaWMgR3JpZHNcbi8vXG4vLyBNYWtlcyB3b3JraW5nIHdpdGggYXN5bW1ldHJpYyBncmlkcyBlYXNpZXIhXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBtaXhpbiBhc3ltbWV0cmljLXNwYW4oJExvY2F0aW9uLCAkU3BhbjogZmFsc2UsICRncmlkOiBmYWxzZSwgJGd1dHRlcjogZmFsc2UsICRndXR0ZXItc3R5bGU6IGZhbHNlLCAkZnJvbTogZmFsc2UsICRvdXRwdXQtc3R5bGU6IGZhbHNlKSB7XG5cbiAgJFNwYW46IGlmKCRTcGFuICE9IGZhbHNlLCAkU3BhbiwgMSk7XG4gICRvdXRwdXQtc3R5bGU6IGlmKCRvdXRwdXQtc3R5bGUgIT0gZmFsc2UsICRvdXRwdXQtc3R5bGUsIHNncy1nZXQoJ2FzeW1tZXRyaWMgb3V0cHV0JykpO1xuXG4gICRPcHRpb25zOiAoKTtcbiAgQGlmICRmcm9tIHtcbiAgICAkT3B0aW9uczogbWFwLW1lcmdlKCRPcHRpb25zLCAoJ2Zyb20nOiAkZnJvbSkpO1xuICB9XG4gICRPcHRpb25zOiBpZihsZW5ndGgoJE9wdGlvbnMpID4gMCwgJE9wdGlvbnMsIG51bGwpO1xuXG4gIEBpbmNsdWRlIGdyaWQtc3BhbigkU3BhbiwgJExvY2F0aW9uLCAkZ3JpZCwgJGd1dHRlciwgJG91dHB1dC1zdHlsZSwgJGd1dHRlci1zdHlsZSwgJE9wdGlvbnMpO1xufSIsIkBmdW5jdGlvbiBvdXRwdXQtY2FsYygkU3Bhbi1NYXApIHtcbiAgLy8gU2V0IHVwIExlZnQvUmlnaHQgbWFwc1xuICAkUmV0dXJuOiAoKTtcblxuICAkU3BhbjogbWFwLWdldCgkU3Bhbi1NYXAsICdzcGFuJyk7XG4gICRMb2NhdGlvbjogbWFwLWdldCgkU3Bhbi1NYXAsICdsb2NhdGlvbicpO1xuXG4gICRHcmlkOiBtYXAtZ2V0KCRTcGFuLU1hcCwgJ2dyaWQnKTtcbiAgJEd1dHRlcjogbWFwLWdldCgkU3Bhbi1NYXAsICdndXR0ZXInKTtcbiAgJFN0eWxlOiBtYXAtZ2V0KCRTcGFuLU1hcCwgJ3N0eWxlJyk7XG5cbiAgQGlmIHVuaXRsZXNzKCRHdXR0ZXIpIHtcbiAgICAkRVJST1ItTUVTU0FHRTogXCJDYWxjIG91dHB1dCBzdHlsZSB1c2VzIGZpeGVkIGd1dHRlcnMgKGd1dHRlcnMgd2l0aCB1bml0cykuIFBsZWFzZSBkZWZpbmUgZml4ZWQgZ3V0dGVycyB0byB1c2UgY2FsY1wiO1xuICAgIEBpZiBmZWF0dXJlLWV4aXN0cyhhdC1lcnJvcikge1xuICAgICAgQGVycm9yICRFUlJPUi1NRVNTQUdFO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAd2FybiAkRVJST1ItTUVTU0FHRTtcbiAgICB9XG4gICAgQHJldHVybiAkUmV0dXJuO1xuICB9XG5cbiAgQGlmIHR5cGUtb2YoJEdyaWQpID09ICdudW1iZXInIHtcbiAgICAkRVJST1ItTUVTU0FHRTogXCJDYWxjIG91dHB1dCBzdHlsZSBpcyBkZXNpZ25lZCB0byBiZSB1c2VkIHdpdGggYXN5bW1ldHJpYyBncmlkcywgZXNwZWNpYWxseSB3aXRoIGEgbWl4IG9mIGZpeGVkIGFuZCBmbHVpZCBjb2x1bW5zLiBQbGVhc2UgZGVmaW5lIGFuIGFzeW1tZXRyaWMgZ3JpZCBvciB1c2UgYW5vdGhlciBvdXRwdXQgc3R5bGUuXCI7XG4gICAgQGlmIGZlYXR1cmUtZXhpc3RzKGF0LWVycm9yKSB7XG4gICAgICBAZXJyb3IgJEVSUk9SLU1FU1NBR0U7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEB3YXJuICRFUlJPUi1NRVNTQUdFO1xuICAgIH1cbiAgICBAcmV0dXJuICRSZXR1cm47XG4gIH1cblxuICAkU3RhcnQtUm93OiBtYXAtZ2V0KCRTcGFuLU1hcCwgJ3N0YXJ0IHJvdycpO1xuICAkRW5kLVJvdzogbWFwLWdldCgkU3Bhbi1NYXAsICdlbmQgcm93Jyk7XG5cbiAgJFNwbGl0LUd1dHRlcjogbWFwLWdldCgkU3Bhbi1NYXAsICdzcGxpdCBndXR0ZXInKTtcblxuICAkRGlyZWN0aW9uOiBtYXAtZ2V0KCRTcGFuLU1hcCwgJ2RpcmVjdGlvbicpO1xuICAkT3B0aW9uczogbWFwLWdldCgkU3Bhbi1NYXAsICdvcHRpb25zJyk7XG5cbiAgJERpcjogJERpcmVjdGlvbjtcbiAgJE9wcDogb3Bwb3NpdGUtZGlyZWN0aW9uKCREaXIpO1xuXG4gICRXaWR0aDogJyc7XG4gICRNYXJnaW46IG51bGw7XG4gICRNaW4tV2lkdGg6ICcoJztcblxuICAkRml4ZWQ6ICgpO1xuICAkRmx1aWQ6ICgpO1xuICAkRml4ZWQtVG90YWxzOiAoJ3B4JzogMCwgJ2VtJzogMCwgJyUnOiAwKTtcbiAgJEd1dHRlci1Ub3RhbHM6IGlmKHN0ci1pbmRleCgkU3R5bGUsICdzcGxpdCcpLCAkR3V0dGVyICogbGVuZ3RoKCRHcmlkKSwgJEd1dHRlciAqIChsZW5ndGgoJEdyaWQpIC0gMSkpO1xuICAkRmx1aWQtVG90YWxzOiAwO1xuICAkRmx1aWQtRml4ZWQtU3VtOiAnJztcbiAgJFNpbmdsZS1GbHVpZDogJyc7XG5cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBsZW5ndGgoJEdyaWQpIHtcbiAgICAkSXRlbTogbnRoKCRHcmlkLCAkaSk7XG4gICAgQGlmIG5vdCB1bml0bGVzcygkSXRlbSkge1xuICAgICAgJEZpeGVkOiBtYXAtbWVyZ2UoJEZpeGVkLCAoJGk6ICRJdGVtKSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICRGbHVpZDogbWFwLW1lcmdlKCRGbHVpZCwgKCRpOiAkSXRlbSkpO1xuICAgIH1cbiAgfVxuXG4gIEBlYWNoICRrLCAkdiBpbiAkRml4ZWQge1xuICAgICRVbml0OiB1bml0KCR2KTtcbiAgICAkUnVubmluZzogbWFwLWdldCgkRml4ZWQtVG90YWxzLCAkVW5pdCkgKyAkdjtcbiAgICAkRml4ZWQtVG90YWxzOiBtYXAtbWVyZ2UoJEZpeGVkLVRvdGFscywgKCRVbml0OiAkUnVubmluZykpO1xuICB9XG5cbiAgQGVhY2ggJGssICR2IGluICRGbHVpZCB7XG4gICAgJEZsdWlkLVRvdGFsczogJEZsdWlkLVRvdGFscyArICR2O1xuICB9XG5cbiAgQGVhY2ggJGssICR2IGluICRGaXhlZC1Ub3RhbHMge1xuXG4gICAgQGlmICR2ICE9IDAge1xuICAgICAgJEZsdWlkLUZpeGVkLVN1bTogJyN7JEZsdWlkLUZpeGVkLVN1bX0jeyR2fSArICc7XG4gICAgfVxuICB9XG5cbiAgLy8gV2lkdGggb2YgYSBzaW5nbGUgZmx1aWQgaXRlbSwgZm9yIGNhbGMoKVxuICAkU2luZ2xlLUZsdWlkOiAnKCgxMDAlIC0gKCN7JEZsdWlkLUZpeGVkLVN1bX0jeyRHdXR0ZXItVG90YWxzfSkpIC8gKCN7JEZsdWlkLVRvdGFsc30pKSc7XG5cbiAgLy8gTWFyZ2luIENhbGN1bGF0aW9uXG4gIEBpZiBub3QgJFN0YXJ0LVJvdyBvciBub3QgJEVuZC1Sb3cge1xuICAgIEBpZiAkU3BsaXQtR3V0dGVyIHtcbiAgICAgICRNYXJnaW46ICcjeyRHdXR0ZXIgLyAyfSArICc7XG4gICAgfVxuXG4gICAgQGZvciAkaSBmcm9tIDEgdG8gJExvY2F0aW9uIHtcbiAgICAgIEBpZiB1bml0bGVzcyhudGgoJEdyaWQsICRpKSkge1xuICAgICAgICAkTWFyZ2luOiAnI3skTWFyZ2lufSgjeyRTaW5nbGUtRmx1aWR9ICogI3tudGgoJEdyaWQsICRpKX0gKyAjeyRHdXR0ZXJ9KSArICc7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICRNYXJnaW46ICcjeyRNYXJnaW59KCN7bnRoKCRHcmlkLCAkaSl9ICsgI3skR3V0dGVyfSkgKyAnO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAaWYgJE1hcmdpbiAhPSBudWxsIHtcbiAgICAkTWFyZ2luOiBzdHItc2xpY2UoJE1hcmdpbiwgMCwgLTQpO1xuICB9XG5cblxuICAvLyBXaWR0aCBDYWxjdWxhdGlvblxuICBAaWYgJFNwYW4gPT0gMSB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCRGaXhlZCwgJExvY2F0aW9uKSB7XG4gICAgICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgKCd3aWR0aCc6IG1hcC1nZXQoJEZpeGVkLCAkTG9jYXRpb24pKSk7XG4gICAgfVxuICAgIEBlbHNlIGlmIG1hcC1oYXMta2V5KCRGbHVpZCwgJExvY2F0aW9uKSB7XG4gICAgICAkTWF0aDogJygjeyRTaW5nbGUtRmx1aWR9KSAqICN7bnRoKCRHcmlkLCAkTG9jYXRpb24pfSc7XG4gICAgICAkU3Bhbi1NYXA6ICgnd2lkdGgnOiAoJ3dlYmtpdCc6IC13ZWJraXQtY2FsYygje3VucXVvdGUoJE1hdGgpfSksICdzdGFuZGFyZCc6IGNhbGMoI3t1bnF1b3RlKCRNYXRoKX0pKSk7XG4gICAgICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgJFNwYW4tTWFwKTtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgICRMb2NhdGlvbi1FbmQ6ICRMb2NhdGlvbiArICgkU3BhbiAtIDEpO1xuICAgICRGaXhlZC1Db3VudGVyOiAwO1xuICAgIEBmb3IgJGkgZnJvbSAkTG9jYXRpb24gdGhyb3VnaCAkTG9jYXRpb24tRW5kIHtcbiAgICAgIEBpZiB1bml0bGVzcyhudGgoJEdyaWQsICRpKSkge1xuICAgICAgICAkV2lkdGg6ICcjeyRXaWR0aH0oI3skU2luZ2xlLUZsdWlkfSAqICN7bnRoKCRHcmlkLCAkaSl9JztcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJEZpeGVkLUNvdW50ZXI6ICRGaXhlZC1Db3VudGVyICsgMTtcbiAgICAgICAgJE1pbi1XaWR0aDogJyN7JE1pbi1XaWR0aH0je250aCgkR3JpZCwgJGkpfSArICN7JEd1dHRlcn0gKyAnO1xuICAgICAgICAkV2lkdGg6ICcjeyRXaWR0aH0oI3tudGgoJEdyaWQsICRpKX0nO1xuICAgICAgfVxuXG5cbiAgICAgIEBpZiAkaSAhPSAkTG9jYXRpb24tRW5kIHtcbiAgICAgICAgJFdpZHRoOiAnI3skV2lkdGh9ICsgI3skR3V0dGVyfSkgKyAnO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkTWluLVdpZHRoOiBzdHItc2xpY2UoJE1pbi1XaWR0aCwgMCwgLTQpO1xuICAgICAgICBAaWYgJEZpeGVkLUNvdW50ZXIgPT0gMSB7XG4gICAgICAgICAgJE1pbi1XaWR0aDogJyN7JE1pbi1XaWR0aH0gLSAjeyRHdXR0ZXJ9JztcbiAgICAgICAgfVxuICAgICAgICAkTWluLVdpZHRoOiAnI3skTWluLVdpZHRofSknO1xuICAgICAgICAkV2lkdGg6ICcjeyRXaWR0aH0pJztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBNaW4gd2lkdGggaGFuZGxpbmdcbiAgICBAaWYgJE1pbi1XaWR0aCAhPSAnKScge1xuICAgICAgJE1pbi1NYXA6ICgnbWluLXdpZHRoJzogKCd3ZWJraXQnIDogLXdlYmtpdC1jYWxjKCN7dW5xdW90ZSgkTWluLVdpZHRoKX0pLCAnc3RhbmRhcmQnOiBjYWxjKCN7dW5xdW90ZSgkTWluLVdpZHRoKX0pICkpO1xuXG4gICAgICBAaWYgc2dzLWdldCgnY2FsYyBpbmNsdWRlIG1pbi13aWR0aCcpIHtcbiAgICAgICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICRNaW4tTWFwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAkU3Bhbi1NYXA6ICgnd2lkdGgnOiAoJ3dlYmtpdCc6IC13ZWJraXQtY2FsYygje3VucXVvdGUoJFdpZHRoKX0pLCAnc3RhbmRhcmQnOiBjYWxjKCN7dW5xdW90ZSgkV2lkdGgpfSkgKSApO1xuICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAkU3Bhbi1NYXApO1xuICB9XG5cbiAgLy8gQnVpbGQgbWFyZ2lucyBhbmQgRmxvYXRzXG4gIEBpZiAoJEVuZC1Sb3cpIHtcbiAgICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgKCdmbG9hdCc6ICRPcHApKTtcbiAgICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgKCdtYXJnaW4tI3skRGlyfSc6IDApKTtcblxuICAgIEBpZiAkU3BsaXQtR3V0dGVyIHtcbiAgICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJ21hcmdpbi0jeyRPcHB9JzogJEd1dHRlciAvIDIpKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICgnbWFyZ2luLSN7JE9wcH0nOiAwKSk7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgKCdmbG9hdCc6ICREaXIpKTtcbiAgICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgKCdtYXJnaW4tI3skT3BwfSc6IC0xMDAlKSk7XG5cbiAgICBAaWYgJFN0YXJ0LVJvdyB7XG4gICAgICBAaWYgJFNwbGl0LUd1dHRlciB7XG4gICAgICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJ21hcmdpbi0jeyREaXJ9JzogJEd1dHRlciAvIDIpKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICgnbWFyZ2luLSN7JERpcn0nOiAwKSk7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICRNYXJnaW4tTWFwOiAoJ21hcmdpbi0jeyREaXJ9JzogKCd3ZWJraXQnOiAtd2Via2l0LWNhbGMoI3t1bnF1b3RlKCRNYXJnaW4pfSksICdzdGFuZGFyZCc6IGNhbGMoI3t1bnF1b3RlKCRNYXJnaW4pfSkpKTtcbiAgICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAkTWFyZ2luLU1hcCk7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkUmV0dXJuO1xufVxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBIYXBweSBTeW50YXggZm9yIENhbGNcbi8vXG4vLyBNYWtlcyB3b3JraW5nIHdpdGggQ2FsYyBlYXNpZXIsIGFzIGl0IG1vdmVzIENsZWFyIHRvIGEgMXN0IGNsYXNzIGNpdGl6ZW4gb2YgdGhlIG1peGluLCBhbmQgYXV0b21hdGljYWxseSBidWlsZHMgdGhlIHZlcmJvc2UgZ3JpZC1zcGFuIG1peGluIGNhbGxcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQG1peGluIGNhbGMtc3BhbigkU3BhbiwgJExvY2F0aW9uLCAkY2xlYXI6IGZhbHNlLCAkZ3JpZDogZmFsc2UsICRndXR0ZXI6IGZhbHNlLCAkZ3V0dGVyLXN0eWxlOiBmYWxzZSwgJGZyb206IGZhbHNlKSB7XG5cbiAgQGlmICRndXR0ZXIgIT0gZmFsc2UgYW5kIHVuaXRsZXNzKCRndXR0ZXIpIHtcbiAgICBAd2FybiBcIkNhbGMgb3V0cHV0IHN0eWxlIHVzZXMgZml4ZWQgZ3V0dGVycyAoZ3V0dGVycyB3aXRoIHVuaXRzKS4gUGxlYXNlIGRlZmluZSBmaXhlZCBndXR0ZXJzIHRvIHVzZSBjYWxjXCI7XG4gIH1cblxuICBAaWYgJGdyaWQgIT0gZmFsc2UgYW5kIHR5cGUtb2YoJGdyaWQpID09ICdudW1iZXInIHtcbiAgICBAd2FybiBcIkNhbGMgb3V0cHV0IHN0eWxlIGlzIGRlc2lnbmVkIHRvIGJlIHVzZWQgd2l0aCBhc3ltbWV0cmljIGdyaWRzLCBlc3BlY2lhbGx5IHdpdGggYSBtaXggb2YgZml4ZWQgYW5kIGZsdWlkIGNvbHVtbnMuIFBsZWFzZSBkZWZpbmUgYW4gYXN5bW1ldHJpYyBncmlkLlwiO1xuICB9XG5cbiAgJE9wdGlvbnM6ICgpO1xuICBAaWYgJGNsZWFyIHtcbiAgICAkT3B0aW9uczogbWFwLW1lcmdlKCRPcHRpb25zLCAoJ2NsZWFyJzogJGNsZWFyKSk7XG4gIH1cbiAgQGlmICRmcm9tIHtcbiAgICAkT3B0aW9uczogbWFwLW1lcmdlKCRPcHRpb25zLCAoJ2Zyb20nOiAkZnJvbSkpO1xuICB9XG5cbiAgJE9wdGlvbnM6IGlmKGxlbmd0aCgkT3B0aW9ucykgPiAwLCAkT3B0aW9ucywgbnVsbCk7XG4gIEBpbmNsdWRlIGdyaWQtc3BhbigkU3BhbiwgJExvY2F0aW9uLCAkZ3JpZCwgJGd1dHRlciwgJ2NhbGMnLCAkZ3V0dGVyLXN0eWxlLCAkT3B0aW9ucyk7XG59XG4iLCJAaW1wb3J0IFwibW9kdWxhci1zY2FsZS9yYXRpb3NcIjtcblxuJG1zLWJhc2U6IDFlbSAhZGVmYXVsdDtcbiRtcy1yYXRpbzogJGdvbGRlbiAhZGVmYXVsdDtcbiRtcy1yYW5nZTogbnVsbCAhZGVmYXVsdDtcblxuQGltcG9ydCBcIm1vZHVsYXItc2NhbGUvdGVzdHNcIjtcblxuQGltcG9ydCBcIm1vZHVsYXItc2NhbGUvcG93XCI7XG5AaW1wb3J0IFwibW9kdWxhci1zY2FsZS9jYWxjXCI7XG5AaW1wb3J0IFwibW9kdWxhci1zY2FsZS9nZW5lcmF0ZS1saXN0XCI7XG5AaW1wb3J0IFwibW9kdWxhci1zY2FsZS9zb3J0LWxpc3RcIjtcbkBpbXBvcnQgXCJtb2R1bGFyLXNjYWxlL3JvdW5kLXB4XCI7XG5AaW1wb3J0IFwibW9kdWxhci1zY2FsZS9mdW5jdGlvblwiO1xuQGltcG9ydCBcIm1vZHVsYXItc2NhbGUvZnVuY3Rpb24tbGlzdFwiO1xuXG5AaW1wb3J0IFwibW9kdWxhci1zY2FsZS9yZXNwb25kXCI7IiwiLy8gR29sZGVuIHJhdGlvXG4kcGhpICAgICAgICAgICAgICA6IDEuNjE4MDM0ICAgICAgICAgIDtcbiRnb2xkZW4gICAgICAgICAgIDogJHBoaSAgICAgICAgICAgICAgO1xuXG4kZG91YmxlLW9jdGF2ZSAgICA6IDQgICAgICAgICAgICAgICAgIDtcbiRtYWpvci10d2VsZnRoICAgIDogMyAgICAgICAgICAgICAgICAgO1xuJG1ham9yLWVsZXZlbnRoICAgOiAyLjY2NjY2NjY2NyAgICAgICA7XG4kbWFqb3ItdGVudGggICAgICA6IDIuNSAgICAgICAgICAgICAgIDtcbiRvY3RhdmUgICAgICAgICAgIDogMiAgICAgICAgICAgICAgICAgO1xuJG1ham9yLXNldmVudGggICAgOiAxLjg3NSAgICAgICAgICAgICA7XG4kbWlub3Itc2V2ZW50aCAgICA6IDEuNzc3Nzc3Nzc4ICAgICAgIDtcbiRtYWpvci1zaXh0aCAgICAgIDogMS42NjY2NjY2NjcgICAgICAgO1xuJG1pbm9yLXNpeHRoICAgICAgOiAxLjYgICAgICAgICAgICAgICA7XG4kZmlmdGggICAgICAgICAgICA6IDEuNSAgICAgICAgICAgICAgIDtcbiRhdWdtZW50ZWQtZm91cnRoIDogMS40MTQyMSAgICAgICAgICAgO1xuJGZvdXJ0aCAgICAgICAgICAgOiAxLjMzMzMzMzMzMyAgICAgICA7XG4kbWFqb3ItdGhpcmQgICAgICA6IDEuMjUgICAgICAgICAgICAgIDtcbiRtaW5vci10aGlyZCAgICAgIDogMS4yICAgICAgICAgICAgICAgO1xuJG1ham9yLXNlY29uZCAgICAgOiAxLjEyNSAgICAgICAgICAgICA7XG4kbWlub3Itc2Vjb25kICAgICA6IDEuMDY2NjY2NjY3ICAgICAgIDsiLCIvLyBGZWF0dXJlIHRlc3RpbmdcblxuXG4vLyBUZXN0IGlmIHRoZSBwb3coKSBmdW5jdGlvbiBleGlzdHNcbkBmdW5jdGlvbiBtcy1wb3ctZXhpc3RzKCkge1xuICBAaWYgcG93KDQsIDIpID09IDE2IHtcbiAgICBAcmV0dXJuIHRydWU7XG4gIH1cbiAgQHJldHVybiBmYWxzZTtcbn1cblxuJE1TLXBvdy1leGlzdHM6IG1zLXBvdy1leGlzdHMoKTtcblxuLy8gVGVzdCBpZiBNUyB3YXMgaW5zdGFsbGVkIHZpYSB0aGUgZ2VtXG5AZnVuY3Rpb24gbXMtZ2VtLWV4aXN0cygpIHtcbiAgQGlmIG1zLWdlbS1pbnN0YWxsZWQoKSA9PSB0cnVlIHtcbiAgICBAcmV0dXJuIHRydWU7XG4gIH1cbiAgQHJldHVybiBmYWxzZTtcbn1cblxuJE1TLWdlbS1leGlzdHM6IG1zLWdlbS1leGlzdHMoKTsiLCIvLyBJZiBhIG5hdGl2ZSBleHBvbmVudCBmdW5jdGlvbiBkb2VzbnQgZXhpc3Rcbi8vIHRoaXMgb25lIGlzIG5lZWRlZC5cbkBmdW5jdGlvbiBtcy1wb3coJEJhc2UsICRFeHBvbmVudCkge1xuXG4gIC8vIEZpbmQgYW5kIHJlbW92ZSB1bml0LlxuICAvLyBBdm9pZHMgbWVzc3luZXNzIHdpdGggdW5pdCBjYWxjdWxhdGlvbnNcbiAgJFVuaXQ6ICRCYXNlICogMCArIDE7XG4gICRCYXNlOiAkQmFzZS8kVW5pdDtcblxuICAvLyBUaGlzIGZ1bmN0aW9uIGRvZXNudCBzdXBwb3J0IG5vbi1pbnRlcmdlciBleHBvbmVudHMuXG4gIC8vIFdhcm4gdGhlIHVzZXIgYWJvdXQgd2h5IHRoaXMgaXMgYnJlYWtpbmcuXG5cdEBpZiByb3VuZCgkRXhwb25lbnQpICE9ICRFeHBvbmVudCB7XG5cdFx0QHdhcm4gXCJVbmZvcnR1bmF0ZWx5LCB5b3UgbmVlZCBDb21wYXNzIHRvIHVzZSBub24taW50ZWdlciBleHBvbmVudHNcIjtcblx0fVxuXG4gIC8vIFNldCB1cCB0aGUgbG9vcCwgcHJpbWluZyB0aGUgcmV0dXJuIHdpdGggdGhlIGJhc2UuXG5cdCRSZXR1cm46ICRCYXNlO1xuXG4gIC8vIElmIHRoZSBudW1iZXIgaXMgcG9zaXRpdmUsIG11bHRpcGx5IGl0LlxuICBAaWYgJEV4cG9uZW50ID4gMCB7XG4gICAgLy8gQmFzaWMgZmVlZGJhY2sgbG9vcCBhcyBleHBvbmVudHNcbiAgICAvLyBhcmUgcmVjdXJzaXZsZXkgbXVsdGlwbGllZCBudW1iZXJzLlxuICAgIEBmb3IgJGkgZnJvbSAxIHRvICRFeHBvbmVudCB7XG4gICAgICAkUmV0dXJuOiAkUmV0dXJuICogJEJhc2U7XG4gICAgfVxuICB9XG5cbiAgLy8gSWYgdGhlIG51bWJlciBpcyAwIG9yIG5lZ2l0aXZlXG4gIC8vIGRpdmlkZSBpbnN0ZWFkIG9mIG11bHRpcGx5LlxuICBAZWxzZSB7XG4gICAgLy8gTGlic2FzcyBkb2VzbnQgYWxsb3cgbmVnaXRpdmUgdmFsdWVzIGluIGxvb3BzXG4gICAgQGZvciAkaSBmcm9tICgtMSArIDEpIHRvIChhYnMoJEV4cG9uZW50KSArIDEpIHtcbiAgICAgICRSZXR1cm46ICRSZXR1cm4gLyAkQmFzZTtcbiAgICB9XG4gIH1cblxuICAvLyBSZXR1cm4gaXMgbm93IGNvbXBvdW5kZWQgcmVkeSB0byBiZSByZXR1cm5lZC5cbiAgLy8gQWRkIHRoZSB1bml0IGJhY2sgb250byB0aGUgbnVtYmVyLlxuXHRAcmV0dXJuICRSZXR1cm4gKiAkVW5pdDtcbn0iLCJAZnVuY3Rpb24gbXMtY2FsYygkVmFsdWUsICRCYXNlOiAkbXMtYmFzZSwgJFJhdGlvOiAkbXMtcmF0aW8pIHtcbiAgXG4gIC8vIElmIHBvdyBleGlzdHMgdXNlIGl0LlxuICAvLyBJdCBzdXBwb3J0cyBub24taW50ZXJnZXIgdmFsdWVzIVxuICBAaWYgJE1TLXBvdy1leGlzdHMge1xuXG4gICAgLy8gVGhlIGZvcm11bGEgZm9yIGZpZ3VyaW5nIG91dCBtb2R1bGFyIHNjYWxlcyBpczpcbiAgICAvLyAocl52KSpiXG4gICAgQHJldHVybiBwb3coJFJhdGlvLCAkVmFsdWUpICogJEJhc2U7XG4gIH1cblxuICAvLyBJZiBub3QsIHVzZSBtcy1wb3coKS5cbiAgLy8gTm90IGFzIGZhc3Qgb3IgY2FwYWJsZSBvZiBub24taW50ZWdlciBleHBvbmVudHMuXG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIG1zLXBvdygkUmF0aW8sICRWYWx1ZSkgKiAkQmFzZTtcbiAgfVxufSIsIkBmdW5jdGlvbiBtcy1yZXZlcnNlLWxpc3QoJGxpc3QpIHtcbiAgQGlmIGxlbmd0aCgkbGlzdCkgPiAxIHtcbiAgICBAaWYgbnRoKCRsaXN0LCAxKSA+IG50aCgkbGlzdCwgbGVuZ3RoKCRsaXN0KSkge1xuICAgICAgJE1TLXJldmVyc2VkLWxpc3Q6ICgpO1xuICAgICAgQGVhY2ggJFZhbHVlIGluICRsaXN0IHtcbiAgICAgICAgJE1TLXJldmVyc2VkLWxpc3Q6IGpvaW4oJFZhbHVlLCAkTVMtcmV2ZXJzZWQtbGlzdCk7XG4gICAgICB9XG4gICAgICBAcmV0dXJuICRNUy1yZXZlcnNlZC1saXN0O1xuICAgIH1cbiAgfVxuICBAcmV0dXJuICRsaXN0O1xufVxuXG5cbkBmdW5jdGlvbiBtcy1nZW5lcmF0ZS1saXN0KCRWYWx1ZTogMCwgJEJhc2VzOiAkbXMtYmFzZSwgJFJhdGlvczogJG1zLXJhdGlvKSB7XG5cbiAgLy8gQ3JlYXRlIGJsYW5rIGxpc3RzXG4gICRNUy1saXN0OiAoKTtcbiAgJE1TLWJhc2UtbGlzdDogKCk7XG5cbiAgLy8gTG9vcCB0aHJvdWdoIGVhY2ggcmF0aW8gQU5EIGVhY2ggYmFzZVxuICAvLyB0byBnZW5lcmF0ZSBhbGwgcG9zc2liaWxpdGllcy5cbiAgQGVhY2ggJFJhdGlvIGluICRSYXRpb3Mge1xuICAgIEBlYWNoICRCYXNlIGluICRCYXNlcyB7XG4gICAgICBcbiAgICAgIC8vIFNldCBiYXNlIHZhcmlhYmxlc1xuICAgICAgJE1TLWJhc2UtbGlzdDogKCk7XG4gICAgICAkQmFzZS1jb3VudGVyOiAwO1xuICAgICAgXG4gICAgICAvLyBTZWVkIGxpc3Qgd2l0aCBhbiBpbml0aWFsIHZhbHVlXG4gICAgICAkTVMtYmFzZS1saXN0OiAkQmFzZTtcbiAgICAgIFxuICAgICAgLy8gRmluZCB2YWx1ZXMgb24gYSBwb3NpdGl2ZSBzY2FsZVxuICAgICAgQGlmICRWYWx1ZSA+PSAwIHtcbiAgICAgICAgXG4gICAgICAgIC8vIEZpbmQgbG93ZXIgdmFsdWVzIG9uIHRoZSBzY2FsZVxuICAgICAgICAkQmFzZS1jb3VudGVyOiAtMTtcbiAgICAgICAgQHdoaWxlIG1zLWNhbGMoJEJhc2UtY291bnRlciwgJEJhc2UsICRSYXRpbykgPj0gbnRoKCRCYXNlcywgMSkge1xuICAgICAgICAgICRNUy1iYXNlLWxpc3Q6IGpvaW4oJE1TLWJhc2UtbGlzdCwgbXMtY2FsYygkQmFzZS1jb3VudGVyLCAkQmFzZSwgJFJhdGlvKSk7XG4gICAgICAgICAgJEJhc2UtY291bnRlcjogJEJhc2UtY291bnRlciAtIDE7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC8vIEVuc3VyZSB0aGUgbGlzdCBpcyBzbWFsbGVzdCB0byBsYXJnZXN0XG4gICAgICAgICRNUy1iYXNlLWxpc3Q6IG1zLXJldmVyc2UtbGlzdCgkTVMtYmFzZS1saXN0KTtcblxuICAgICAgICAvLyBGaW5kIGhpZ2hlciBwb3NzaWJsZSB2YWx1ZXMgb24gdGhlIHNjYWxlXG4gICAgICAgICRCYXNlLWNvdW50ZXI6IDE7XG4gICAgICAgIEB3aGlsZSBtcy1jYWxjKCRCYXNlLWNvdW50ZXIsICRCYXNlLCAkUmF0aW8pIDw9IG1zLWNhbGMoJFZhbHVlLCBudGgoJEJhc2VzLCAxKSwgJFJhdGlvKSB7XG4gICAgICAgICAgJE1TLWJhc2UtbGlzdDogam9pbigkTVMtYmFzZS1saXN0LCBtcy1jYWxjKCRCYXNlLWNvdW50ZXIsICRCYXNlLCAkUmF0aW8pKTtcbiAgICAgICAgICAkQmFzZS1jb3VudGVyOiAkQmFzZS1jb3VudGVyICsgMTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBGaW5kIHZhbHVlcyBvbiBhIG5lZ2l0aXZlIHNjYWxlXG4gICAgICBAZWxzZSB7XG4gICAgICAgIFxuICAgICAgICAvLyBGaW5kIGxvd2VyIHZhbHVlcyBvbiB0aGUgc2NhbGVcbiAgICAgICAgJEJhc2UtY291bnRlcjogMTtcbiAgICAgICAgQHdoaWxlIG1zLWNhbGMoJEJhc2UtY291bnRlciwgJEJhc2UsICRSYXRpbykgPD0gbnRoKCRCYXNlcywgMSkge1xuICAgICAgICAgICRNUy1iYXNlLWxpc3Q6IGpvaW4oJE1TLWJhc2UtbGlzdCwgbXMtY2FsYygkQmFzZS1jb3VudGVyLCAkQmFzZSwgJFJhdGlvKSk7XG4gICAgICAgICAgJEJhc2UtY291bnRlcjogJEJhc2UtY291bnRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBFbnN1cmUgdGhlIGxpc3QgaXMgc21hbGxlc3QgdG8gbGFyZ2VzdFxuICAgICAgICAkTVMtYmFzZS1saXN0OiBtcy1yZXZlcnNlLWxpc3QoJE1TLWJhc2UtbGlzdCk7XG5cbiAgICAgICAgLy8gRmluZCBoaWdoZXIgcG9zc2libGUgdmFsdWVzIG9uIHRoZSBzY2FsZVxuICAgICAgICAkQmFzZS1jb3VudGVyOiAtMTtcbiAgICAgICAgQHdoaWxlIG1zLWNhbGMoJEJhc2UtY291bnRlciwgJEJhc2UsICRSYXRpbykgPj0gbXMtY2FsYygkVmFsdWUsIG50aCgkQmFzZXMsIDEpLCAkUmF0aW8pIHtcbiAgICAgICAgICAkTVMtY2FsYzogbXMtY2FsYygkQmFzZS1jb3VudGVyLCAkQmFzZSwgJFJhdGlvKTtcbiAgICAgICAgICAvLyBkZXRlY3QgaWYgdGhlIHZhbHVlIGV4Y2VkZXMgdGhlIG1haW4gYmFzZSB2YWx1ZVxuICAgICAgICAgIEBpZiAkTVMtY2FsYyA8IG50aCgkQmFzZXMsIDEpIHtcbiAgICAgICAgICAgICRNUy1iYXNlLWxpc3Q6IGpvaW4oJE1TLWJhc2UtbGlzdCwgJE1TLWNhbGMpO1xuICAgICAgICAgIH1cbiAgICAgICAgICAkQmFzZS1jb3VudGVyOiAkQmFzZS1jb3VudGVyIC0gMTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLy8gVHJpbSBvdXRsaWVyIGJhc2UuXG4gICAgICAgIEBpZiBsZW5ndGgoJEJhc2VzKSA+IDEge1xuICAgICAgICAgIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggbGVuZ3RoKCRCYXNlcykge1xuICAgICAgICAgICAgQGlmIG50aCgkTVMtYmFzZS1saXN0LCAxKSA+IG50aCgkQmFzZXMsIDEpIHtcbiAgICAgICAgICAgICAgJE1TLW5ldy1saXN0OiAoKTtcbiAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCBsZW5ndGgoJE1TLWJhc2UtbGlzdCkge1xuICAgICAgICAgICAgICAgICRNUy1uZXctbGlzdDogam9pbigkTVMtbmV3LWxpc3QsIG50aCgkTVMtYmFzZS1saXN0LCAkaSkpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICRNUy1iYXNlLWxpc3Q6ICRNUy1uZXctbGlzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIFxuICAgICAgLy8gcmV2ZXJzZSBsaXN0IGlmIGl0cyBsYXJnZXN0IHRvIHNtYWxsZXN0XG4gICAgICAkTVMtYmFzZS1saXN0OiBtcy1yZXZlcnNlLWxpc3QoJE1TLWJhc2UtbGlzdCk7XG5cbiAgICAgIC8vIEFkZCBuZXcgcG9zc2liaWxpdGllcyB0byB0aGUgbWFzdGVyIGxpc3RcbiAgICAgICRNUy1saXN0OiBhcHBlbmQoJE1TLWxpc3QsICRNUy1iYXNlLWxpc3QsIGNvbW1hKTtcblxuICAgIH1cbiAgfVxuICBcbiAgLy8gQWZ0ZXIgYWxsIHRoZSBwb3NzaWJpbGl0aWVzIGFyZSBmb3VuZCwgb3V0cHV0IGEgbWFzdGVyIGxpc3RcbiAgQHJldHVybiAkTVMtbGlzdDtcbn0iLCIvLyBMaXN0IHNvcnRpbmcgdmlhIGEgbW9kaWZpZWQgbWVyZ2Utc29ydCBhbGdvcnl0aG1uXG4vLyBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL01lcmdlX3NvcnRcblxuQGZ1bmN0aW9uIG1zLW1lcmdlKCRBLCAkQikge1xuICBcbiAgJFJldHVybjogKCk7XG4gIFxuICAvLyBTb21lIGVtcHR5IGxpc3RzIGdldCBwYXNzZWQgdGhyb3VnaFxuICAvLyBzbyBqdXN0IHBhc3MgdGhlIG90aGVyIGxpc3QgdGhyb2d1aFxuICBAaWYgbGVuZ3RoKCRBKSA9PSAwIHtcbiAgICBAcmV0dXJuICRCO1xuICB9XG5cbiAgLy8gSWYgbGlzdHMgZml0IG5leHQgdG8gZWFjaCBvdGhlciwganVzdCBtZXJnZSB0aGVtXG4gIC8vIFRoaXMgaGVscHMgcGVyZm9ybWFuY2Ugc2tpcHBpbmcgdGhlIG5lZWQgdG8gY2hlY2sgZWFjaCB2YWx1ZVxuICBAaWYgbnRoKCRBLCBsZW5ndGgoJEEpKSA8IG50aCgkQiwgMSkge1xuICAgIEByZXR1cm4gam9pbigkQSwgJEIpO1xuICB9XG4gIEBpZiBudGgoJEIsIGxlbmd0aCgkQikpIDwgbnRoKCRBLCAxKSB7XG4gICAgQHJldHVybiBqb2luKCRCLCAkQSk7XG4gIH1cbiAgXG4gIC8vIENvdW50ZXJzIHN0YXJ0IGF0IDFcbiAgJEEtY291bnRlcjogMTtcbiAgJEItY291bnRlcjogMTtcbiAgXG4gIC8vIFN0YXJ0IGxvb3BpbmcgdGhyb3VnaCBhbGwgbnVtYmVycyBpbiBhcnJheVxuICBAd2hpbGUgJEEtY291bnRlciA8PSBsZW5ndGgoJEEpIGFuZCAkQi1jb3VudGVyIDw9IGxlbmd0aCgkQikge1xuICAgIFxuICAgIC8vIENoZWNrIGlmIHRoZSBBIHZhbHVlIGlzIHNtYWxsZXJcbiAgICAvLyBVc2VzIG9yIGVxdWFsIHRvIGF2b2lkIGR1cGxpY2F0ZSBudW1iZXJzXG4gICAgQGlmIG50aCgkQSwgJEEtY291bnRlcikgPD0gbnRoKCRCLCAkQi1jb3VudGVyKSB7XG4gICAgICAkUmV0dXJuOiBqb2luKCRSZXR1cm4sIG50aCgkQSwgJEEtY291bnRlcikpO1xuICAgICAgJEEtY291bnRlcjogJEEtY291bnRlciArIDE7XG4gICAgfVxuICAgIFxuICAgIC8vIENoZWNrIGlmIHRoZSBCIHZhbHVlIGlzIHNtYWxsZXJcbiAgICBAZWxzZWlmIG50aCgkQSwgJEEtY291bnRlcikgPiBudGgoJEIsICRCLWNvdW50ZXIpIHtcbiAgICAgICRSZXR1cm46IGpvaW4oJFJldHVybiwgbnRoKCRCLCAkQi1jb3VudGVyKSk7XG4gICAgICAkQi1jb3VudGVyOiAkQi1jb3VudGVyICsgMTtcbiAgICB9XG4gIH1cbiAgXG4gIC8vIFJ1biB0aHJvdWdoIHJlbWFpbmRlciB2YWx1ZXMgaW4gdGhlIGxpc3RcbiAgQHdoaWxlICRBLWNvdW50ZXIgPD0gbGVuZ3RoKCRBKSB7XG4gICAgJEN1cnJlbnQ6IG50aCgkQSwgJEEtY291bnRlcik7XG4gICAgQGlmICRDdXJyZW50ICE9IG50aCgkUmV0dXJuLCBsZW5ndGgoJFJldHVybikpIHtcbiAgICAgICRSZXR1cm46IGpvaW4oJFJldHVybiwgJEN1cnJlbnQpO1xuICAgIH1cbiAgICAkQS1jb3VudGVyOiAkQS1jb3VudGVyICsgMTtcbiAgfVxuICBAd2hpbGUgJEItY291bnRlciA8PSBsZW5ndGgoJEIpIHtcbiAgICAkQ3VycmVudDogbnRoKCRCLCAkQi1jb3VudGVyKTtcbiAgICBAaWYgJEN1cnJlbnQgIT0gbnRoKCRSZXR1cm4sIGxlbmd0aCgkUmV0dXJuKSkge1xuICAgICAgJFJldHVybjogam9pbigkUmV0dXJuLCAkQ3VycmVudCk7XG4gICAgfVxuICAgICRCLWNvdW50ZXI6ICRCLWNvdW50ZXIgKyAxO1xuICB9XG4gIFxuICAvLyBEb25lISByZXR1cm4gaXMgbm93IHNvcnRlZCBhbmQgY29tcGxldGVcbiAgQHJldHVybiAkUmV0dXJuO1xufVxuXG5cblxuLy8gUHVsbCBpdCBhbGwgdG9nZXRoZXJcbkBmdW5jdGlvbiBtcy1zb3J0LWxpc3QoJExpc3RzKSB7XG4gIFxuICAkUmV0dXJuOiAoKTtcblxuICBAZWFjaCAkTGlzdCBpbiAkTGlzdHMge1xuICAgIEBpZiAkUmV0dXJuID09ICgpIHtcbiAgICAgICRSZXR1cm46ICRMaXN0O1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkUmV0dXJuOiBtcy1tZXJnZSgkTGlzdCwgJFJldHVybik7XG4gICAgfVxuICB9XG5cbiAgLy8gZmluYWwgY2xlYW51cCBvZiByZXBlYXRlZCBpdGVtc1xuICAkTGFzdDogbnVsbDtcbiAgJE5ldy1saXN0OiAoKTtcbiAgQGVhY2ggJEl0ZW0gaW4gJFJldHVybiB7XG4gICAgQGlmICRJdGVtICE9ICRMYXN0IHtcbiAgICAgICROZXctbGlzdDogam9pbigkTmV3LWxpc3QsICRJdGVtKTtcbiAgICB9XG4gICAgJExhc3Q6ICRJdGVtO1xuICB9XG4gICRSZXR1cm46ICROZXctbGlzdDtcblxuXG4gIEByZXR1cm4gJFJldHVybjtcbn0iLCJAZnVuY3Rpb24gbXMtcm91bmQtcHgoJFJlc3VsdCkge1xuICBAaWYgdW5pdCgkUmVzdWx0KSA9PSAncHgnIHtcbiAgICBAcmV0dXJuIHJvdW5kKCRSZXN1bHQpO1xuICB9XG4gIEByZXR1cm4gJFJlc3VsdDtcbn0iLCIvLyBUaGUgbWFpbiBmdW5jdGlvbiB0aGF0IGJyaW5ncyBpdCBhbGwgdG9nZXRoZXJcbkBmdW5jdGlvbiBtcygkVmFsdWU6IDAsICRCYXNlczogJG1zLWJhc2UsICRSYXRpb3M6ICRtcy1yYXRpbykge1xuXG4gIC8vIElmIG5vIG11bHRpLWJhc2Ugb3IgbXVsdGktcmF0aW8gc3R1ZmYgaXMgZ29pbmcgb25cbiAgLy8gdGhlbiBqdXN0IHJldHJuIHRoZSBiYXNpYyBjYWxjdWxhaXRvblxuICBAaWYgbGVuZ3RoKCRCYXNlcykgPT0gMSBhbmQgbGVuZ3RoKCRSYXRpb3MpID09IDEge1xuICAgIEByZXR1cm4gbXMtcm91bmQtcHgobXMtY2FsYygkVmFsdWUsICRCYXNlcywgJFJhdGlvcykpO1xuICB9XG5cbiAgLy8gRG8gY2FsY3VsYXRpb25zIGRpcmVjdGx5IGluIFJ1Ynkgd2hlbiBhdmFsaWJsZVxuICBAaWYgJE1TLWdlbS1leGlzdHMge1xuXG4gICAgLy8gUmVtb3ZlIHVuaXRzIGZyb20gYmFzZXNcbiAgICAkVW5pdDogbnRoKCRCYXNlcywgMSkgKiAwICsgMTsgLy8gRXh0cmFjdHMgdGhlIHVuaXQgZnJvbSB0aGUgYmFzZVxuICAgICRVbml0bGVzcy1CYXNlczogKCk7XG4gICAgQGVhY2ggJEJhc2UgaW4gJEJhc2VzIHtcbiAgICAgICRCYXNlOiAkQmFzZS8kVW5pdDtcbiAgICAgICRVbml0bGVzcy1CYXNlczogam9pbigkVW5pdGxlc3MtQmFzZXMsICRCYXNlKTtcbiAgICB9XG5cbiAgICAvLyBDYWxjdWxhdGUgbmF0aXZlbHkgaW4gUnVieVxuICAgIEByZXR1cm4gbXMtcm91bmQtcHgobXMtZ2VtLWZ1bmMoJFZhbHVlLCAkVW5pdGxlc3MtQmFzZXMsICRSYXRpb3MpICogJFVuaXQpO1xuICB9XG5cbiAgLy8gR2VuZXJhdGUgYSBsaXN0IG9mIGFsbCBwb3NzaWJsZSB2YWx1ZXNcbiAgJFJldHVybjogbXMtZ2VuZXJhdGUtbGlzdCgkVmFsdWUsICRCYXNlcywgJFJhdGlvcyk7XG5cbiAgLy8gU29ydCB0aGUgZ2VuZXJhdGVkIGxpc3RzXG4gICRSZXR1cm46IG1zLXNvcnQtbGlzdCgkUmV0dXJuKTtcblxuICAvLyBSZXZlcnNlIGxpc3QgaWYgaXRzIG5lZ2l0aXZlLlxuICBAaWYgJFZhbHVlIDwgMCB7XG4gICAgJE1TLW5ldy1yZXR1cm46ICgpO1xuICAgIEBlYWNoICRpIGluICRSZXR1cm4ge1xuICAgICAgJE1TLW5ldy1yZXR1cm46IGpvaW4oJGksICRNUy1uZXctcmV0dXJuKTtcbiAgICB9XG4gICAgJFJldHVybjogJE1TLW5ldy1yZXR1cm47XG4gIH1cblxuICAvLyBOb3JtYWxpemUgdmFsdWUgZm9yIGNvdW50aW5nIGZyb20gMVxuICAvLyBCZWNhdXNlIENTUyBjb3VudHMgdGhpbmdzIGZyb20gMVxuICAvLyBTbyBTYXNzIGRvZXMgYXMgd2VsbFxuICAvLyBTbyBJIGdldCB0byB3cml0ZSBmdW4gc3R1ZmYgbGlrZSB0aGlzXG4gICRWYWx1ZTogYWJzKCRWYWx1ZSkgKyAxO1xuXG4gIC8vIEZpbmQgdGhlIGNvcnJlY3QgdmFsdWUgaW4gdGhlIGxpc3RcbiAgJFJldHVybjogbnRoKCRSZXR1cm4sICRWYWx1ZSk7XG5cbiAgQHJldHVybiBtcy1yb3VuZC1weCgkUmV0dXJuKTtcbn1cblxuLy8gU2FtZSBmdW5jdGlvbiwgZGlmZmVyZW50IG5hbWUsIGZvciBnb29kIG1lYXN1cmUuXG5AZnVuY3Rpb24gbW9kdWxhci1zY2FsZSgkVmFsdWU6IDAsICRCYXNlczogJG1zLWJhc2UsICRSYXRpb3M6ICRtcy1yYXRpbykge1xuICBAcmV0dXJuIG1zKCRWYWx1ZSwgJEJhc2VzLCAkUmF0aW9zKTtcbn0iLCIvLyBPdXRwdXRzIGEgbGlzdCBvZiB2YWx1ZXMgaW5zdGVhZCBvZiBhIHNpbmdsZSB2YWx1ZVxuQGZ1bmN0aW9uIG1zLWxpc3QoJFN0YXJ0OiAwLCAkRW5kOiAwLCAkQmFzZXM6ICRtcy1iYXNlLCAkUmF0aW9zOiAkbXMtcmF0aW8pIHtcbiAgXG4gIC8vIFNlZWQgcmVzdWx0c1xuICAkUG9zaXRpdmUtcmV0dXJuOiAoKTtcbiAgJE5lZ2l0aXZlLXJldHVybjogKCk7XG4gICRSZXR1cm46ICgpO1xuXG4gIEBpZiAkRW5kID49IDAge1xuICAgIC8vIEdlbmVyYXRlIGEgbGlzdCBvZiBhbGwgcG9zc2libGUgdmFsdWVzXG4gICAgJFBvc2l0aXZlLXJldHVybjogbXMtZ2VuZXJhdGUtbGlzdCgkRW5kLCAkQmFzZXMsICRSYXRpb3MpO1xuICAgIFxuICAgIC8vIFNvcnQgdGhlIGdlbmVyYXRlZCBsaXN0c1xuICAgICRQb3NpdGl2ZS1yZXR1cm46IG1zLXNvcnQtbGlzdCgkUG9zaXRpdmUtcmV0dXJuKTtcblxuICAgIC8vIFRyaW0gbGlzdFxuICAgICRUcmltLWxpc3Q6ICgpO1xuICAgIC8vIElmIHRoZSBzdGFydGluZyB2YWx1ZSBpcyBhIHBvc2l0aXZlIG51bWJlclxuICAgIC8vIHRyaW0gdGhlIHBvc2l0aXZlIHJldHVybiBmcm9tIHRoYXRcbiAgICBAaWYgJFN0YXJ0ID49IDAge1xuICAgICAgQGZvciAkaSBmcm9tICgkU3RhcnQgKyAxKSB0aHJvdWdoICRFbmQgKyAxIHtcbiAgICAgICAgJFRyaW0tbGlzdDogam9pbigkVHJpbS1saXN0LCBudGgoJFBvc2l0aXZlLXJldHVybiwgJGkpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gSWYgbm90LCB0aGVuIGluY2x1ZGUgZXZlcnl0aGluZyB1cCB0byB0aGUgZW5kLlxuICAgIEBlbHNlIHtcbiAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJEVuZCArIDEge1xuICAgICAgICAkVHJpbS1saXN0OiBqb2luKCRUcmltLWxpc3QsIG50aCgkUG9zaXRpdmUtcmV0dXJuLCAkaSkpO1xuICAgICAgfVxuICAgIH1cbiAgICAkUG9zaXRpdmUtcmV0dXJuOiAkVHJpbS1saXN0O1xuICB9XG4gIFxuICAvLyBHZW5lcmF0ZSBhIG5lZ2l0aXZlIGxpc3RcbiAgQGlmICRTdGFydCA8IDAge1xuICAgIC8vIEdlbmVyYXRlIGEgbGlzdCBvZiBhbGwgcG9zc2libGUgdmFsdWVzXG4gICAgJE5lZ2l0aXZlLXJldHVybjogbXMtZ2VuZXJhdGUtbGlzdCgkU3RhcnQsICRCYXNlcywgJFJhdGlvcyk7XG4gICAgXG4gICAgLy8gU29ydCB0aGUgZ2VuZXJhdGVkIGxpc3RzXG4gICAgJE5lZ2l0aXZlLXJldHVybjogbXMtc29ydC1saXN0KCROZWdpdGl2ZS1yZXR1cm4pO1xuICAgIFxuICAgIC8vIFJldmVyc2UgbmVnaXRpdmUgbGlzdCByZXN1bHRzLlxuICAgICRNUy1uZXctcmV0dXJuOiAoKTtcbiAgICBAZWFjaCAkaSBpbiAkTmVnaXRpdmUtcmV0dXJuIHtcbiAgICAgICRNUy1uZXctcmV0dXJuOiBqb2luKCRpLCAkTVMtbmV3LXJldHVybik7XG4gICAgfVxuICAgICROZWdpdGl2ZS1yZXR1cm46ICRNUy1uZXctcmV0dXJuO1xuXG4gICAgLy8gVHJpbSBsaXN0XG4gICAgJFRyaW0tbGlzdDogKCk7XG4gICAgQGlmICRFbmQgPCAwIHtcbiAgICAgIEBmb3IgJGkgZnJvbSBhYnMoJEVuZCkgdGhyb3VnaCAoYWJzKCRTdGFydCkgKyAyKSB7XG4gICAgICAgICRUcmltLWxpc3Q6IGpvaW4obnRoKCROZWdpdGl2ZS1yZXR1cm4sICRpKSwgJFRyaW0tbGlzdCk7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggKGFicygkU3RhcnQpICsgMSkge1xuICAgICAgICAkVHJpbS1saXN0OiBqb2luKG50aCgkTmVnaXRpdmUtcmV0dXJuLCAkaSksICRUcmltLWxpc3QpO1xuICAgICAgfVxuICAgIH1cbiAgICAkTmVnaXRpdmUtcmV0dXJuOiAkVHJpbS1saXN0O1xuICB9XG4gIFxuICAvLyBKb2luIGJvdGggcG9zaXRpdmUgYW5kIG5lZ2l0aXZlIHBvc3NpYmlsaXRpZXMuXG4gICRSZXR1cm46IGpvaW4oJE5lZ2l0aXZlLXJldHVybiwgJFBvc2l0aXZlLXJldHVybik7XG5cbiAgQHJldHVybiAkUmV0dXJuO1xufVxuIiwiQG1peGluIG1zLXJlc3BvbmQoJHByb3BlcnR5LCAkdmFsdWUsICRyYW5nZTogJG1zLXJhbmdlLCAkYmFzZTogJG1zLWJhc2UpIHtcbiAgQGlmICRtcy1yYW5nZSA9PSBudWxsIHtcbiAgICAjeyRwcm9wZXJ0eX06IG1zKCR2YWx1ZSwkYmFzZSwkbXMtcmF0aW8pO1xuICB9IEBlbHNlIHtcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIGxlbmd0aCgkcmFuZ2UpIHtcbiAgICAgIEBkZWJ1ZyBudGgoJHJhbmdlLCRpKTtcbiAgICAgIEBpZiAkaSA9PSAxIHtcbiAgICAgICAgI3skcHJvcGVydHl9OiBtcygkdmFsdWUsJGJhc2UsbnRoKG50aCgkcmFuZ2UsJGkpLDEpKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogbnRoKG50aCgkcmFuZ2UsJGkpLDIpKSB7XG4gICAgICAgICAgI3skcHJvcGVydHl9OiBtcygkdmFsdWUsJGJhc2UsbnRoKG50aCgkcmFuZ2UsJGkpLDEpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIkBpbXBvcnQgJ2JyZWFrcG9pbnRzJztcbkBpbXBvcnQgJ2NvbG9ycyc7XG5AaW1wb3J0ICdncmlkJztcbkBpbXBvcnQgJ21vZHVsYXItc2NhbGUnO1xuQGltcG9ydCAndHlwb2dyYXBoeSc7XG4iLCIvLyBAcmVzcG9uc2l2ZSBicmVha3BvaW50cyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiRzbWFsbC1zY3JlZW46IDQ2NHB4OyAvLyAyOWVtXG4kc21hbGwtc2NyZWVuLW1heDogNjA3cHg7ICAvLyAzNy45Mzc1ZW1cblxuJG5hcnJvdy1zY3JlZW46IDYwOHB4OyAvLyAzOGVtXG4kbmFycm93LXNjcmVlbi1tYXg6IDc2N3B4OyAvLyA0Ny45Mzc1ZW1cblxuJHdlaXJkLXNjcmVlbjogNzY4cHg7IC8vIDQ4ZW0gd2hhdCBlbHNlIEkgY2FsbCB0aGlzPyE/IT8hXG4kd2VpcmQtc2NyZWVuLW1heCA6IDg5NXB4OyAvLyA1NS45Mzc1ZW1cblxuJG1lZGl1bS1zY3JlZW46IDg5NnB4OyAvLyA1NmVtXG4kbWVkaXVtLXNjcmVlbi1tYXg6IDk5MXB4OyAvLyA2MS45Mzc1ZW1cblxuJHN0YW5kYXJkLXNjcmVlbjogOTkycHg7IC8vIDYyZW0gLSA5OTJweCA9IDEwMjQgLSAoMTZweCoyKVxuJHN0YW5kYXJkLXNjcmVlbi1tYXg6IDExODdweDsgLy8gNzQuMTg3NWVtXG5cbiR3aWRlLXNjcmVlbjogMTE4OHB4OyAvLyA3NC4yNWVtIC0gMTE4OHB4ID0gMTIyMHB4IC0gKDE2cHgqMilcbiR3aWRlLXNjcmVlbi1tYXg6IDE0MDdweDsgLy8gODcuOTM3NWVtXG5cbiRzdXBlci13aWRlLXNjcmVlbjogMTQwOHB4OyAvLyA4OGVtIC0gMTQwOHB4ID0gMTQ0MHB4IC0gKDE2cHgqMilcbiIsIi8vIEBjb2xvdXIgcGFsZXR0dGUgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIHVzaW5nIGNvbG9yIG5hbWVzIGFzIHZhcmlhYmxlcyBpcyBmaW5lLlxuXG4vLyB0aGVtZSBjb2xvcnNcbi8vICR2YXItY29sb3I6ICNmZmZmZmZcbiRmb3Jlc3QtZ3JlZW46ICMwMDU0Mzg7XG4kZGFydG1vdXRoLWdyZWVuOiAjMDA2OTNjO1xuJGVtZXJhbGQtZ3JlZW46ICM2NmI4M2Q7XG4kY3JlYW06ICNmN2VmZGY7XG4kYmVpZ2U6ICNjY2I3OTk7XG5cbi8vIGdyZXlzXG4kbGlnaHQtZ3JleTogI0NFRDNENjtcbiRuZXV0cmFsLWdyZXk6ICM3OTdFODA7XG4vLyAkZGFyay1ncmV5OiAjMjEyMTIxO1xuJGRhcmstZ3JleTogIzI5MkIyRDtcblxuLy8gdWkgY29sb3VycyBmb3Igc2hhZG93cywgYm9yZGVycywgZXRjLiBDYW4gYmUgdXNlZCBvbiB0aGVpciBvd24sIG9yIHBhcnQgb2YgbWl4aW5zIG9yIHBsYWNlaG9sZGVyc1xuJHVpLWJvcmRlcnMtY29sb3I6ICRsaWdodC1ncmV5O1xuJHVpLWdyZXk6ICRuZXV0cmFsLWdyZXk7XG4iLCIvLyBAZ3JpZCBzZXR0aW5ncyAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGluY2x1ZGUgYWRkLWdyaWQoMTIpO1xuQGluY2x1ZGUgYWRkLWd1dHRlcigxLzMpO1xuXG5AaW5jbHVkZSBicmVha3BvaW50LXNldCgndG8gZW1zJywgdHJ1ZSk7XG4iLCIvLyBAbW9kdWxhciBzY2FsZSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIGh0dHA6Ly90aGVzYXNzd2F5LmNvbS9wcm9qZWN0cy9tb2R1bGFyLXNjYWxlXG4vLyBodHRwczovL2dpdGh1Yi5jb20vbW9kdWxhcnNjYWxlL21vZHVsYXJzY2FsZS1zYXNzXG4vLyBodHRwOi8vd3d3Lm1vZHVsYXJzY2FsZS5jb20vXG5cbi8vICRtcy1iYXNlOiAxZW0gMS4yNWVtO1xuLy8gJG1zLXJhdGlvOiAkZ29sZGVuO1xuXG4kbXMtYmFzZTogMWVtO1xuJG1zLXJhdGlvOiAkbWFqb3ItdGhpcmQ7XG5cbi8vICRtcy1yYW5nZTogMSAyOWVtLCAxLjYxOCA2MmVtO1xuXG4vLyAkbXMtZmx1aWQ6IGZhbHNlO1xuLy8gJG1zLXJhbmdlOlxuLy8gICAxLjIgJG5hcnJvdy1zY3JlZW4sXG4vLyAgIDEuMyAzOGVtLFxuLy8gICAxLjQgNDhlbSxcbi8vICAgMS41IDU2ZW0sXG4vLyAgIDEuNiA2MmVtO1xuXG4kY2xhc3Mtc2x1ZzogbXM7XG4iLCIvLyBAdHlwZSBzZXR0aW5ncyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIG1vZHVsYXIgc2NhbGUgc2V0dGluZ3MgYXJlIGxvY2F0ZWQgaW4gdHlwb2dyYXBoeS9fbW9kdWxhci1zY2FsZS5zY3NzXG5cbiR0aGluOiAxMDA7XG4kbGlnaHQ6IDMwMDtcbiRub3JtYWw6IDQwMDtcbi8vICRtZWRpdW06IDUwMDtcbiRib2xkOiA3MDA7XG4vLyAkdWx0cmEtYm9sZDogOTAwO1xuXG4kZm9udC1zZXQtMTogJ1JvYm90bycsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiRmb250LXNldC0yOiBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuJGZvbnQtc2V0LTM6IFwiVGltZXMgTmV3IFJvbWFuXCIsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiIsIkBpbXBvcnQgJ2xpYnJhcnkvdHlwb2dyYXBoeS9pbmRleCc7XG5AaW1wb3J0ICdsaWJyYXJ5L3Jlc2V0LXV0aWxpdGllcy9pbmRleCc7XG5AaW1wb3J0ICdsaWJyYXJ5L3ZlbmRvcnMvaW5kZXgnO1xuXG4vLyBvcmdhbml6ZVxuXG5AaW1wb3J0ICdsaWJyYXJ5L2JveC1zaGFkb3dzJztcbkBpbXBvcnQgJ2xpYnJhcnkvYnV0dG9ucyc7XG5AaW1wb3J0ICdsaWJyYXJ5L2NlbnRlci1ibG9jayc7XG5AaW1wb3J0ICdsaWJyYXJ5L2RpdmlkZXItbGluZSc7XG5AaW1wb3J0ICdsaWJyYXJ5L2hlYWRsaW5lLXR5cGUnO1xuQGltcG9ydCAnbGlicmFyeS9oaWdobGlnaHQtYm94JztcbkBpbXBvcnQgJ2xpYnJhcnkvY29udGVudC1ib3gnO1xuQGltcG9ydCAnbGlicmFyeS9pbWFnZS0yeCc7XG5AaW1wb3J0ICdsaWJyYXJ5L2ltYWdlLXN0eWxlcyc7XG5AaW1wb3J0ICdsaWJyYXJ5L25hdmlnYXRpb24tbGlzdCc7XG5AaW1wb3J0ICdsaWJyYXJ5L25vLWRyYWctaW1hZ2UnO1xuQGltcG9ydCAnbGlicmFyeS9zdmctYmcnO1xuIiwiQGltcG9ydCAnZm9udC1zaXplJztcbkBpbXBvcnQgJ2xpbmUtaGVpZ2h0JztcbkBpbXBvcnQgJ25vLWJ1bGxldCc7XG5AaW1wb3J0ICduby1idWxsZXRzJztcbkBpbXBvcnQgJ3ByZXR0eS1idWxsZXRzJztcbkBpbXBvcnQgJ3RleHQtdHJ1bmNhdGUnO1xuQGltcG9ydCAndW5zdHlsZWQtbGluayc7XG5AaW1wb3J0ICd0ZXh0LXJlcGxhY2VtZW50L2luZGV4JztcbiIsIi8vIFRoaXMgbWl4aW4gc2V0cyB0aGUgZm9udCBzaXplIGluIHJlbSdzIHdpdGggYSBweCBmYWxsYmFjay5cblxuLy8gVXNhZ2Vcbi8vIGJvZHkge1xuICAvLyBAaW5jbHVkZSBmb250LXNpemUoMTYpO1xuLy8gfVxuXG5AbWl4aW4gZm9udC1zaXplKCRzaXplVmFsdWU6IDEyICl7XG4gIGZvbnQtc2l6ZTogJHNpemVWYWx1ZSArIHB4OyAvL2ZhbGxiYWNrIGZvciBvbGQgYnJvd3NlcnNcbiAgZm9udC1zaXplOiAoMC4xMjUgKiAkc2l6ZVZhbHVlKSArIHJlbTtcbn1cbiIsIi8vIFRoaXMgbWl4aW4gc2V0cyB0aGUgbGluZSBoZWlnaHQgaW4gcmVtJ3Mgd2l0aCBhIHB4IGZhbGxiYWNrLlxuXG4vLyBVc2FnZVxuLy8gYm9keSB7XG4gIC8vIEBpbmNsdWRlIGxpbmUtaGVpZ2h0ICgxNik7XG4vLyB9XG5cbkBtaXhpbiBsaW5lLWhlaWdodCgkaGVpZ2h0VmFsdWU6IDEyICl7XG4gICAgbGluZS1oZWlnaHQ6ICRoZWlnaHRWYWx1ZSArIHB4OyAvL2ZhbGxiYWNrIGZvciBvbGQgYnJvd3NlcnNcbiAgICBsaW5lLWhlaWdodDogKDAuMTI1ICogJGhlaWdodFZhbHVlKSArIHJlbTtcbn1cbiIsIkBtaXhpbiBuby1idWxsZXR7XG4gIGxpc3Qtc3R5bGUtaW1hZ2U6IG5vbmU7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG4iLCJAbWl4aW4gbm8tYnVsbGV0cyB7XG4gIGxpIHtcbiAgICBAaW5jbHVkZSBuby1idWxsZXQ7XG4gIH1cbn1cbiIsIi8vIGh0dHA6Ly9jb21wYXNzLXN0eWxlLm9yZy9yZWZlcmVuY2UvY29tcGFzcy90eXBvZ3JhcGh5L2xpc3RzL2J1bGxldHMvI21peGluLXByZXR0eS1idWxsZXRzXG5cbkBtaXhpbiBwcmV0dHktYnVsbGV0cygkYnVsbGV0LWljb24sICR3aWR0aDogaW1hZ2Utd2lkdGgoJGJ1bGxldC1pY29uKSwgJGhlaWdodDogaW1hZ2UtaGVpZ2h0KCRidWxsZXQtaWNvbiksICRsaW5lLWhlaWdodDogMThweCwgJHBhZGRpbmc6IDE0cHgpIHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIGxpIHtcbiAgICBwYWRkaW5nLWxlZnQ6ICRwYWRkaW5nO1xuICAgIGJhY2tncm91bmQ6IGltYWdlLXVybCgkYnVsbGV0LWljb24pIG5vLXJlcGVhdCAoJHBhZGRpbmcgLSAkd2lkdGgpIC8gMiAoJGxpbmUtaGVpZ2h0IC0gJGhlaWdodCkgLyAyO1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgfVxufVxuIiwiLy8gUmVxdWlyZXMgdGhlIGVsZW1lbnQgdG8gYmUgYmxvY2sgb3IgaW5saW5lLWJsb2NrLlxuQG1peGluIHRleHQtdHJ1bmNhdGUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG4iLCJAbWl4aW4gdW5zdHlsZWQtbGluayB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gIC8vIGN1cnNvcjogaW5oZXJpdDtcbiAgJjphY3RpdmUsICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gIH1cbn1cbiIsIkBpbXBvcnQgJ3JlcGxhY2UtdGV4dC13aXRoLWRpbWVuc2lvbnMnO1xuQGltcG9ydCAncmVwbGFjZS10ZXh0JztcbkBpbXBvcnQgJ3NxdWlzaC10ZXh0JztcbiIsIi8vIGh0dHA6Ly9jb21wYXNzLXN0eWxlLm9yZy9yZWZlcmVuY2UvY29tcGFzcy90eXBvZ3JhcGh5L3RleHQvcmVwbGFjZW1lbnQvI21peGluLXJlcGxhY2UtdGV4dC13aXRoLWRpbWVuc2lvbnNcblxuQG1peGluIHJlcGxhY2UtdGV4dC13aXRoLWRpbWVuc2lvbnMoJGltZywgJHg6IDUwJSwgJHk6IDUwJSwgJGlubGluZTogZmFsc2UpIHtcbiAgQGluY2x1ZGUgcmVwbGFjZS10ZXh0KGlmKCRpbmxpbmUsIGlubGluZS1pbWFnZSgkaW1nKSwgJGltZyksICR4LCAkeSk7XG4gIHdpZHRoOiBpbWFnZS13aWR0aCgkaW1nKTtcbiAgaGVpZ2h0OiBpbWFnZS1oZWlnaHQoJGltZyk7XG59XG4iLCIvLyBodHRwOi8vY29tcGFzcy1zdHlsZS5vcmcvcmVmZXJlbmNlL2NvbXBhc3MvdHlwb2dyYXBoeS90ZXh0L3JlcGxhY2VtZW50LyNtaXhpbi1yZXBsYWNlLXRleHRcbkBtaXhpbiByZXBsYWNlLXRleHQoJGltZywgJHg6IDUwJSwgJHk6IDUwJSkge1xuICBAaW5jbHVkZSBoaWRlLXRleHQ7XG4gIGJhY2tncm91bmQ6IHtcbiAgICBAaWYgaXMtdXJsKCRpbWcpIHtcbiAgICAgIGltYWdlOiAkaW1nO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBpbWFnZTogaW1hZ2UtdXJsKCRpbWcpO1xuICAgIH1cbiAgICByZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBwb3NpdGlvbjogJHggJHk7XG4gIH07XG59XG4iLCIvLyBodHRwOi8vY29tcGFzcy1zdHlsZS5vcmcvcmVmZXJlbmNlL2NvbXBhc3MvdHlwb2dyYXBoeS90ZXh0L3JlcGxhY2VtZW50LyNtaXhpbi1zcXVpc2gtdGV4dFxuXG5AbWl4aW4gc3F1aXNoLXRleHQge1xuICBmb250OiAwLzAgc2VyaWY7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4iLCJAaW1wb3J0ICdyZXNldC1ib3gtbW9kZWwnO1xuQGltcG9ydCAncmVzZXQtY29sdW1uJztcbkBpbXBvcnQgJ3Jlc2V0LWZvbnQnO1xuQGltcG9ydCAncmVzZXQtZm9ybS1maWVsZCc7XG5AaW1wb3J0ICdyZXNldC1pbWFnZS1ob3Zlcic7XG5AaW1wb3J0ICdyZXNldC1xdW90YXRpb24nO1xuQGltcG9ydCAncmVzZXQtdGFibGUtY2VsbCc7XG5AaW1wb3J0ICdyZXNldC10YXAnO1xuQGltcG9ydCAncmVzZXQnO1xuQGltcG9ydCAncmVzZXQtdXNlci1zZWxlY3QnO1xuIiwiQG1peGluIHJlc2V0LWJveC1tb2RlbCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwO1xufVxuIiwiQG1peGluIHJlc2V0LWNvbHVtbntcbiAgICB3aWR0aDogIGF1dG87XG4gICAgZmxvYXQ6ICBub25lO1xuICAgIGNsZWFyOiAgbm9uZTtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6ICAwO1xufVxuIiwiQG1peGluIHJlc2V0LWZvbnQge1xuICBmb250OiBpbmhlcml0O1xuICBmb250LXNpemU6IDEwMCU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cbiIsIi8vIHJlbW92ZXMgc2hhZG93IGFuZCBib3JkZXIgcmFkaXVzIG9uIGZvcm0gZmllbGRzIG9uIGlPU1xuQG1peGluIHJlc2V0LWZvcm0tZmllbGR7XG4gIC8vIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgJjpmb2N1c3tcbiAgICBvdXRsaW5lOiAwO1xuICB9XG59XG4iLCIvLyB1c2UgdGhpcyBtaXhpbiBpZiB5b3VyIGltYWdlIGxvb2tzIGphZ2dlZC4gT3BhY2l0eSByZWR1Y3Rpb24gc3RpbGwgd29ya3NcbkBtaXhpbiByZXNldC1pbWFnZS1ob3ZlciB7XG4gIGltZ3tcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICB9XG4gIGEgaW1ne1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IHZpc2libGU7XG4gIH1cbn1cbiIsIkBtaXhpbiByZXNldC1xdW90YXRpb24ge1xuICBxdW90ZXM6IG5vbmU7XG4gICY6YmVmb3JlLCAmOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGNvbnRlbnQ6IG5vbmU7XG4gIH1cbn1cbiIsIkBtaXhpbiByZXNldC10YWJsZS1jZWxsIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbiIsIi8vIHJlbW92ZXMgdGFwIGhpZ2hsaWdodCBvbiB0b3VjaHNjcmVlbnNcbkBtaXhpbiByZXNldC10YXAoJGNvbG9yOiByZ2JhKDAsMCwwLDApKSB7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogJGNvbG9yO1xuICBvdXRsaW5lOiBub25lO1xufVxuIiwiQG1peGluIHJlc2V0IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuIiwiQG1peGluIHJlc2V0LXVzZXItc2VsZWN0e1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOyAgLyogQ2hyb21lIGFsbCAvIFNhZmFyaSBhbGwgKi9cbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTsgICAgIC8qIEZpcmVmb3ggYWxsICovXG4gIC1tcy11c2VyLXNlbGVjdDogbm9uZTsgICAgICAvKiBJRSAxMCsgKi9cbiAgdXNlci1zZWxlY3Q6IG5vbmU7ICAgICAgICAgIC8qIExpa2VseSBmdXR1cmUgKi9cbn1cbiIsIkBpbXBvcnQgJ21hdGVyaWFsLWRlc2lnbi1pY29ucy9tYXRlcmlhbC1pY29ucyc7XG4iLCIvKiBvYmplY3RzLy9tYXRlcmlhbC1kZXNpZ24taWNvbnMvX21hdGVyaWFsLWljb25zLnNjc3MgKi9cbi8vIGh0dHA6Ly9nb29nbGUuZ2l0aHViLmlvL21hdGVyaWFsLWRlc2lnbi1pY29ucy8jc2l6aW5nXG4vLyBpZiB5b3UgbmVlZCB0byB1c2UgaW1hZ2VzIGZvciBicm93c2VyIGNvbXBhdGliaWxpdHksIHlvdSBjYW4gZmluZFxuLy8gaW5zdHJ1Y3Rpb25zIG9uIGhvdyB0byBkb3dubG9hZCB0aGVtIG9uIGdpdGh1YlxuLy8gaHR0cDovL2dvb2dsZS5naXRodWIuaW8vbWF0ZXJpYWwtZGVzaWduLWljb25zLyNpY29uLWltYWdlcy1mb3ItdGhlLXdlYlxuXG4vLyBSdWxlcyBmb3Igc2l6aW5nIHRoZSBpY29uLlxuQG1peGluIG1kLTE4e1xuICBmb250LXNpemU6IDE4cHg7XG59XG5cbkBtaXhpbiBtZC0yNHtcbiAgZm9udC1zaXplOiAyNHB4O1xufVxuXG5AbWl4aW4gbWQtMzZ7XG4gIGZvbnQtc2l6ZTogMzZweDtcbn1cblxuQG1peGluIG1kLTQ4e1xuICBmb250LXNpemU6IDQ4cHg7XG59XG5cbi8vIFJ1bGVzIGZvciB1c2luZyBpY29ucyBhcyBibGFjayBvbiBhIGxpZ2h0IGJhY2tncm91bmQuXG5AbWl4aW4gbWQtZGFya3tcbiBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cblxuQG1peGluIG1kLWRhcmstaW5hY3RpdmV7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjYpO1xufVxuXG4vLyBSdWxlcyBmb3IgdXNpbmcgaWNvbnMgYXMgd2hpdGUgb24gYSBkYXJrIGJhY2tncm91bmQuXG5AbWl4aW4gbWQtbGlnaHR7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDEpO1xufVxuXG5AbWl4aW4gbWQtbGlnaHQtaW5hY3RpdmV7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG59XG5cblxuQG1peGluIG1hdGVyaWFsLWljb25ze1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbiAgZm9udC1mYW1pbHk6ICdNYXRlcmlhbCBJY29ucyc7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1zaXplOiAyNHB4OyAgLyogUHJlZmVycmVkIGljb24gc2l6ZSAqL1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAxZW07XG4gIGhlaWdodDogMWVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gIHdvcmQtd3JhcDogbm9ybWFsO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBkaXJlY3Rpb246IGx0cjtcbiAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgLyogU3VwcG9ydCBmb3IgYWxsIFdlYktpdCBicm93c2Vycy4gKi9cbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC8qIFN1cHBvcnQgZm9yIFNhZmFyaSBhbmQgQ2hyb21lLiAqL1xuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xuXG4gIC8qIFN1cHBvcnQgZm9yIEZpcmVmb3guICovXG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG5cbiAgLyogU3VwcG9ydCBmb3IgSUUuICovXG4gIGZvbnQtZmVhdHVyZS1zZXR0aW5nczogJ2xpZ2EnO1xufVxuIiwiLyogb2JqZWN0cy9fYm94LXNoYWRvd3Muc2NzcyAqL1xuXG5AbWl4aW4gei1kZWZhdWx0LXNoYWRvdyB7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDJweCAwIHJnYmEoMCwwLDAsLjE0KSwwIDNweCAxcHggLTJweCByZ2JhKDAsMCwwLC4yKSwwIDFweCA1cHggMCByZ2JhKDAsMCwwLC4xMik7XG59XG5cbkBtaXhpbiB6LWRlcHRoLTAge1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiB6LWRlcHRoLTF7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xNiksIDAgMnB4IDEwcHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG5AbWl4aW4gei1kZXB0aC0xLWhhbGZ7XG4gIGJveC1zaGFkb3c6IDAgNXB4IDExcHggMCByZ2JhKDAsIDAsIDAsIDAuMTgpLCAwIDRweCAxNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjE1KTtcbn1cblxuQG1peGluIHotZGVwdGgtMntcbiAgYm94LXNoYWRvdzogMCA4cHggMTdweCAwIHJnYmEoMCwgMCwgMCwgMC4yKSwgMCA2cHggMjBweCAwIHJnYmEoMCwgMCwgMCwgMC4xOSk7XG59XG5cbkBtaXhpbiB6LWRlcHRoLTN7XG4gIGJveC1zaGFkb3c6IDAgMTJweCAxNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjI0KSwgMCAxN3B4IDUwcHggMCByZ2JhKDAsIDAsIDAsIDAuMTkpO1xufVxuXG5AbWl4aW4gei1kZXB0aC00e1xuICBib3gtc2hhZG93OiAwIDE2cHggMjhweCAwIHJnYmEoMCwgMCwgMCwgMC4yMiksIDAgMjVweCA1NXB4IDAgcmdiYSgwLCAwLCAwLCAwLjIxKTtcbn1cblxuQG1peGluIHotZGVwdGgtNXtcbiAgYm94LXNoYWRvdzogMCAyN3B4IDI0cHggMCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgNDBweCA3N3B4IDAgcmdiYSgwLCAwLCAwLCAwLjIyKTtcbn1cblxuQG1peGluIHNoYWRvdy1ob3ZlcmFibGV7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgLjI1cztcbiAgYm94LXNoYWRvdzogMCA4cHggMTdweCAwIHJnYmEoMCwgMCwgMCwgMC4yKSwgMCA2cHggMjBweCAwIHJnYmEoMCwgMCwgMCwgMC4xOSk7XG59XG4iLCJAbWl4aW4gYnRue1xuICBib3JkZXI6IG5vbmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmb250LXNpemU6IG1zKC0xKTtcbiAgZm9udC13ZWlnaHQ6ICRib2xkO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiBtcygtMikgbXMoMik7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIC4zcyBlYXNlLW91dCwgYm9yZGVyLWNvbG9yIC4zcyBlYXNlLW91dDtcbiAgbWFyZ2luLXJpZ2h0OiBtcygpO1xuICBAaW5jbHVkZSByZXNldC10YXA7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hcnJvdy1zY3JlZW4pIHtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgcGFkZGluZzogbXMoLTEpIG1zKDIpO1xuICB9XG59XG5cblxuLy8gIGJ1dHRvbiBlZmZlY3Rcbi8vIEBtaXhpbiBidG4tZWZmZWN0e1xuLy8gICAmID4gKiB7XG4vLyAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuLy8gICB9XG5cbi8vICAgJjpiZWZvcmUge1xuLy8gICAgIGNvbnRlbnQ6IFwiXCI7XG4vLyAgICAgcG9zaXRpb246IGFic29sdXRlO1xuLy8gICAgIHRvcDogNTAlO1xuLy8gICAgIGxlZnQ6IDUwJTtcbi8vICAgICBkaXNwbGF5OiBibG9jaztcbi8vICAgICB3aWR0aDogMDtcbi8vICAgICBwYWRkaW5nLXRvcDogMDtcbi8vICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuLy8gICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjM2LCAyNDAsIDI0MSwgLjMpO1xuLy8gICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuLy8gICB9XG5cbi8vICAgJjphY3RpdmU6YmVmb3JlIHtcbi8vICAgICB3aWR0aDogMTIwJTtcbi8vICAgICBwYWRkaW5nLXRvcDogMTIwJTtcbi8vICAgICB0cmFuc2l0aW9uOiB3aWR0aCAuMnMgZWFzZS1vdXQsIHBhZGRpbmctdG9wIC4ycyBlYXNlLW91dDtcbi8vICAgfVxuLy8gfVxuXG5cbi8vIHByaW1hcnkgYnV0dG9uIHN0eWxlcywgZWcuIHN1Ym1pdCBidXR0b25zXG5AbWl4aW4gYnRuLXByaW1hcnl7XG4gIGJhY2tncm91bmQtY29sb3I6ICRlbWVyYWxkLWdyZWVuO1xuICBjb2xvcjogJGRhcmstZ3JleTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAvLyBAZXh0ZW5kIC5idG4tZWZmZWN0O1xuICAvLyBAaW5jbHVkZSBidG4tZWZmZWN0O1xuICAmOmhvdmVyLCY6Zm9jdXN7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRkYXJ0bW91dGgtZ3JlZW47XG4gIH1cbn1cblxuXG4vLyBzZWNvbmRhcnkgYnV0dG9uIHN0eWxlcywgZWcuIGNhbmNlbCBvciBwcmV2aWV3IGJ1dHRvbnNcblxuQG1peGluIGJ0bi1zZWNvbmRhcnl7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRkYXJ0bW91dGgtZ3JlZW47XG4gIGNvbG9yOiAkZGFyay1ncmV5O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIC8vIEBpbmNsdWRlIGJ0bi1lZmZlY3Q7XG4gICY6aG92ZXIsJjpmb2N1c3tcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZW1lcmFsZC1ncmVlbjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkZW1lcmFsZC1ncmVlbjtcbiAgfVxufVxuXG5cbi8vIGEgZmxhdCBzaW1wbGUgYnV0dG9uIHN0eWxlIHdpdGggbm8gZGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yLlxuLy8gTk9UIGFuIGV4dGVuc2lvbiBvZiAuYnRuXG5AbWl4aW4gYnRuLWZsYXR7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgQGluY2x1ZGUgcmVzZXQtdGFwO1xuICAvLyBAaW5jbHVkZSBidG4tZWZmZWN0O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3MgZWFzZS1vdXQsIGNvbG9yIDAuM3MgZWFzZS1vdXQ7XG4gIHBhZGRpbmc6IG1zKC04KSBtcygtMSk7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIG1hcmdpbi1yaWdodDogbXMoLTEpO1xuICBmb250LXdlaWdodDogJGJvbGQ7XG4gIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hcnJvdy1zY3JlZW4pIHtcbiAgICBmb250LXNpemU6IG1zKC0xKTtcbiAgfVxufVxuXG4vLyAuYnRuLWZpbHRlcntcbi8vICAgQGV4dGVuZCAuYnRuLWVmZmVjdDtcbi8vICAgY29sb3I6ICRkYXJ0bW91dGgtZ3JlZW47XG4vLyAgIGJvcmRlcjogMXB4IHNvbGlkIHNoYWRlKCRsaWdodC1ncmV5LCA1JSk7XG4vLyAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuXG4vLyAgICY6aG92ZXIsXG4vLyAgICYuYWN0aXZle1xuLy8gICAgIGJhY2tncm91bmQtY29sb3I6IHNoYWRlKCRsaWdodC1ncmV5LDMwJSk7XG4vLyAgICAgY29sb3I6ICRkYXJrLWdyZXk7XG4vLyAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFycm93LXNjcmVlbikge1xuLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICRlbWVyYWxkLWdyZWVuO1xuLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICRlbWVyYWxkLWdyZWVuO1xuLy8gICAgIH1cbi8vICAgfVxuLy8gfVxuXG4uYnRuLWN0YXtcbiAgLy8gQGV4dGVuZCAuYnRuLWVmZmVjdDtcbiAgY29sb3I6ICRkYXJrLWdyZXk7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRlbWVyYWxkLWdyZWVuO1xuICBwYWRkaW5nOiBtcygxKSBtcygzKTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aWR0aDogMTAwJTtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFycm93LXNjcmVlbikge1xuICAgIGZvbnQtc2l6ZTogbXMoKTtcbiAgfVxuICAmOmhvdmVyLFxuICAmLmFjdGl2ZXtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZW1lcmFsZC1ncmVlbjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkZW1lcmFsZC1ncmVlbjtcbiAgICBjb2xvcjogJGRhcmstZ3JleTtcbiAgfVxufVxuIiwiLy8gcmVxdWlyZXMgd2lkdGggb3IgbWF4LXdpZHRoIHRvIGJlIHNldFxuQG1peGluIGNlbnRlci1ibG9jayB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuIiwiLy8gZGl2aWRlciBsaW5lXG5AbWl4aW4gZGl2aWRlci1saW5lKCRib3JkZXItd2lkdGg6IDNweCwgJGJvcmRlci1zdHlsZTogc29saWQsICRib3JkZXItY29sb3I6ICR1aS1ib3JkZXJzLWNvbG9yLCAkc3BhY2luZy10b3A6IG1zKDMpLCAkc3BhY2luZy1ib3R0b206IG1zKDMpKXtcbiAgYm9yZGVyLWJvdHRvbTogJGJvcmRlci13aWR0aCAkYm9yZGVyLXN0eWxlICRib3JkZXItY29sb3I7XG4gIHBhZGRpbmctdG9wOiAkc3BhY2luZy10b3A7XG4gIHBhZGRpbmctYm90dG9tOiAkc3BhY2luZy1ib3R0b207XG4gIC8vICY6Zmlyc3QtY2hpbGR7XG4gIC8vICAgcGFkZGluZy10b3A6IDA7XG4gIC8vIH1cbiAgLy8gJjpsYXN0LWNoaWxke1xuICAvLyAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAvLyB9XG59XG4iLCJAbWl4aW4gaGVhZGxpbmUtdHlwZXtcbiAgZm9udC1zaXplOiBtcygxKTtcbiAgLy8gbGluZS1oZWlnaHQ6IG1zKDEpO1xuICBmb250LXdlaWdodDogJGxpZ2h0O1xuICBjb2xvcjogJGRhcnRtb3V0aC1ncmVlbjtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFycm93LXNjcmVlbikge1xuICAgIGZvbnQtc2l6ZTogbXMoMik7XG4gICAgbGluZS1oZWlnaHQ6IG1zKDEpO1xuICB9XG4gIGIsc3Ryb25ne1xuICAgIGZvbnQtd2VpZ2h0OiAkbm9ybWFsO1xuICB9XG59XG4iLCJAbWl4aW4gaGlnaGxpZ2h0LWJveHtcbiAgbWFyZ2luLWJvdHRvbTogbXMoMSk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogbXMoKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdGludCgkZW1lcmFsZC1ncmVlbiwgOTUlKTtcbiAgYm9yZGVyLXJhZGl1czogMXB4O1xuICBib3JkZXI6IDJweCBzb2xpZCB0aW50KCRlbWVyYWxkLWdyZWVuLCAyMCUpO1xuICBsaW5lLWhlaWdodDogbXMoMik7XG4gIGZvbnQtd2VpZ2h0OiAkYm9sZDtcbiAgLy8gY29sb3I6IHNoYWRlKCRuZXV0cmFsLWdyZXksNDUlKTtcbiAgLy8gQGluY2x1ZGUgei1kZWZhdWx0LXNoYWRvdztcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFycm93LXNjcmVlbikge1xuICAgIHBhZGRpbmc6IG1zKDEpIG1zKDMpO1xuICB9XG4gIHAsbGl7XG4gICAmOmxhc3QtY2hpbGR7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxufVxuIiwiQG1peGluIGNvbnRlbnQtYm94e1xuICBtYXJnaW4tYm90dG9tOiBtcygxKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiBtcygxKSBtcygyKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdGludCgkbGlnaHQtZ3JleSwgNjAlKTtcbiAgLy8gYm9yZGVyLXJhZGl1czogMXB4O1xuICBsaW5lLWhlaWdodDogbXMoMik7XG4gIGZvbnQtd2VpZ2h0OiAkYm9sZDtcbiAgLy8gZGlzcGxheTogYmxvY2s7XG4gIC8vIG1hcmdpbi1ib3R0b206IG1zKDMpO1xuICAvLyBAaW5jbHVkZSBicmVha3BvaW50KCRuYXJyb3ctc2NyZWVuKSB7XG4gICAgLy8gcGFkZGluZzogbXMoMSkgbXMoMyk7XG4gIC8vIH1cbiAgcCxsaXtcbiAgICY6bGFzdC1jaGlsZHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG59XG4iLCIvLyBSZXRpbmEgYmFja2dyb3VuZCBpbWFnZXNcbi8vIGh0dHBzOi8vc2lnbmFsdm5vaXNlLmNvbS9wb3N0cy8zMjcxLWVhc3ktcmV0aW5hLXJlYWR5LWltYWdlcy11c2luZy1zY3NzXG5cbi8vIHVzYWdlIGV4YW1wbGVcbi8vIGRpdi5sb2dvIHtcbiAgLy8gYmFja2dyb3VuZDogdXJsKFwibG9nby5wbmdcIikgbm8tcmVwZWF0O1xuICAvLyBAaW5jbHVkZSBpbWFnZS0yeChcImxvZ28yeC5wbmdcIiwgMTAwcHgsIDI1cHgpO1xuLy8gfVxuXG5cbkBtaXhpbiBpbWFnZS0yeCgkaW1hZ2UsICR3aWR0aCwgJGhlaWdodCkge1xuICBAbWVkaWEgKG1pbi0tbW96LWRldmljZS1waXhlbC1yYXRpbzogMS4zKSxcbiAgICAgICAgICgtby1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyLjYvMiksXG4gICAgICAgICAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjMpLFxuICAgICAgICAgKG1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDEuMyksXG4gICAgICAgICAobWluLXJlc29sdXRpb246IDEuM2RwcHgpIHtcbiAgICAvKiBvbiByZXRpbmEsIHVzZSBpbWFnZSB0aGF0J3Mgc2NhbGVkIGJ5IDIgKi9cbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJGltYWdlKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6ICR3aWR0aCAkaGVpZ2h0O1xuICB9XG59XG4iLCIvLyBiYXNpYyBzdHlsZXMsIHBhZGRpbmcuIGRldGVjdCBpZSB2YXJpYWJsZSBhbmQgZG8gZml4ZXMgcGx1cyBib3JkZXJcblxuQG1peGluIGltYWdlLXN0eWxle1xuICB3aWR0aDogICgxMDAlLzIuNyk7XG4gIG1hcmdpbi10b3A6IG1zKC00KTtcbiAgbWFyZ2luLWJvdHRvbTogbXMoLTUpO1xufVxuXG5AbWl4aW4gaW1hZ2Utc3R5bGUtbGVmdHtcbiAgZmxvYXQ6ICBsZWZ0O1xuICBtYXJnaW4tcmlnaHQ6IG1zKClcbn1cblxuQG1peGluIGltYWdlLXN0eWxlLXJpZ2h0e1xuICBmbG9hdDogIHJpZ2h0O1xuICBtYXJnaW4tbGVmdDogbXMoKVxufVxuXG5AbWl4aW4gaW1hZ2Utc3R5bGUtY2VudGVye1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG59XG5cbmZpZ3VyZXtcbiAgbWFyZ2luOiAwO1xuICBsaW5lLWhlaWdodDogMDtcbiAgaW1ne1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5cbmZpZ3VyZS5pbmxpbmUtaW1hZ2UtY2VudGVye1xuICBAaW5jbHVkZSBpbWFnZS1zdHlsZTtcbiAgaW1ne1xuICAgIEBpbmNsdWRlIGltYWdlLXN0eWxlLWNlbnRlcjtcbiAgfVxufVxuXG5maWd1cmUuaW5saW5lLWltYWdlLWxlZnR7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuXG5maWd1cmUuaW5saW5lLWltYWdlLXJpZ2h0e1xuICBtYXJnaW4tcmlnaHQ6IDA7XG59XG5cbmZpZ2NhcHRpb257XG4gIGJvcmRlcjogMXB4IHNvbGlkICRsaWdodC1ncmV5O1xuICBwYWRkaW5nOiBtcygtMSkgbXMoKTtcbiAgbGluZS1oZWlnaHQ6IG1zKDEpO1xufSIsIkBtaXhpbiBuYXZpZ2F0aW9uLWxpc3Qge1xuICAgIGxpc3Qtc3R5bGUtdHlwZTpub25lO1xuICAgIHBhZGRpbmc6MDtcbiAgICBtYXJnaW46MDtcbiAgICBvdmVyZmxvdzpoaWRkZW47XG4gICAgPiBsaXtcbiAgICAgICAgZGlzcGxheTpibG9jaztcbiAgICAgICAgZmxvYXQ6bGVmdDtcbiAgICAgICAgJjpsYXN0LWNoaWxke1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OjA7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAbWl4aW4gbm8tZHJhZy1pbWFnZSB7XG4gICAgdXNlci1kcmFnOiBub25lO1xuICAgIC8vIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLy8gLXdlYmtpdC11c2VyLWRyYWc6IG5vbmU7XG59XG4iLCIvLyAqKioqKioqKioqKioqKioqKioqKlxuLy8gIE1JWElOU1xuLy8gKioqKioqKioqKioqKioqKioqKipcblxuLy8gKioqKipcbi8vICBuby1zdmdcblxuLy8gbW9kZXJuaXpyIGFkZHMgLm5vLXN2ZyAtIHRoaXMgd2lsbCBiZSB0aGUgZmFsbGJhY2tcbkBtaXhpbiBuby1zdmcge1xuICAgIC5uby1zdmcgJiB7IEBjb250ZW50IH1cbn1cblxuXG5AbWl4aW4gc3ZnLWJnKCR3aWR0aCwgJGhlaWdodCwgJGltYWdlKSB7XG5cbiAgJHBuZzogJyN7JGltYWdlfS5wbmcnO1xuICAkc3ZnOiAnI3skaW1hZ2V9LnN2Zyc7XG5cbiAgLy8gY29udGFpbmVyIHNpemVcbiAgd2lkdGg6ICR3aWR0aDtcbiAgaGVpZ2h0OiAkaGVpZ2h0O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgLy8gb3V0cHV0IHRoZSBzdmdcbiAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lLCB1cmwoJHN2Zyk7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cbiAgLy8gb3V0cHV0IHRoZSBwbmdcbiAgQGluY2x1ZGUgbm8tc3ZnIHsgYmFja2dyb3VuZC1pbWFnZTogaW1hZ2UtdXJsKCRwbmcpO31cbn1cblxuXG5cblxuXG4vLyAqKioqKioqKioqKioqKioqKioqKlxuLy8gIFVTQUdFXG4vLyAqKioqKioqKioqKioqKioqKioqKlxuXG4vLyAubG9nbyB7XG4vLyAgICAgQGluY2x1ZGUgdGV4dC1yZXBsYWNlKDEwMHB4LCAxMDBweCwgJy9pbWcvbG9nbycpO1xuLy8gfVxuIiwiLyogX2VsZW1lbnRzLnNjc3MgKi9cbi8vIGNvbnRhaW5zIGF1dGhvcnMgdW5jbGFzc2VkIEhUTUwgZWxlbWVudCBzdHlsZXMgc3VjaCBhcyBoMSwgaDIsIHRhYmxlLCBldGNcblxuaHRtbHtcbiAgLy8gZm9udC1zaXplOiA5My43NSU7XG4gIGZvbnQtc2l6ZTogODcuNSU7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hcnJvdy1zY3JlZW4pIHtcbiAgICBmb250LXNpemU6IDEwMCU7XG4gIH1cbiAgY29sb3I6ICRkYXJrLWdyZXk7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDsgLy9pbnVpdCBjc3NcbiAgbWluLWhlaWdodDogMTAwJTsgLy9pbnVpdCBjc3NcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsgLy9pbnVpdCBjc3NcbiAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOyAvL2ludWl0IGNzc1xufVxuXG5ib2R5e1xuXG59XG5cbmh0bWwsIGJ1dHRvbiwgaW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEge1xuICBmb250LWZhbWlseTogJGZvbnQtc2V0LTE7XG59XG5cbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNixcbnAsXG51bCxcbm9sLFxuZGwsXG5wcmUsXG50YWJsZSxcbmZpZWxkc2V0LFxuZm9ybVxuZGV0YWlscyxcbmJsb2NrcXVvdGUsXG5vYmplY3QsXG5pZnJhbWUsXG5wcmUsXG5hZGRyZXNzLFxuY29kZSxcbmRsLFxuZHQsXG5kZCxcbmVtYmVkLFxuYXVkaW8sXG52aWRlb3tcbiAgZm9udC1zaXplOiBtcygpO1xuICAvLyBmb250LXdlaWdodDogJGxpZ2h0O1xuICBsaW5lLWhlaWdodDogbXMoMik7XG4gIG1hcmdpbjogMCAwIG1zKCkgMDtcbn1cblxuc3Ryb25nLGJ7XG4gIGZvbnQtd2VpZ2h0OiAgJGJvbGQ7XG59XG5cbmVte1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbmF7XG4gIGNvbG9yOiAkZGFydG1vdXRoLWdyZWVuO1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjNzIGVhc2Utb3V0O1xuICAvLyB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICAmOmhvdmVye1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxufVxuXG4vKiBTZXQgY29uc2lzdGVudCBxdW90ZSB0eXBlcy4gKi9cblxucSB7XG4gIHF1b3RlczogXCJcXDIwMUNcIiBcIlxcMjAxRFwiIFwiXFwyMDE4XCIgXCJcXDIwMTlcIjtcbn1cblxuaDEsaDIsaDMsaDQsaDUsaDZ7XG4gIGZvbnQtd2VpZ2h0OiAgJG5vcm1hbDtcbiAgYixzdHJvbmd7XG4gICAgZm9udC13ZWlnaHQ6ICRub3JtYWw7XG4gIH1cbn1cblxuaDF7XG4gIGZvbnQtd2VpZ2h0OiAkYm9sZDtcbiAgZm9udC1zaXplOiBtcygyKTtcbiAgbWFyZ2luLWJvdHRvbTogbXMoLTUpO1xuICBsaW5lLWhlaWdodDogbXMoMSk7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hcnJvdy1zY3JlZW4pIHtcbiAgICBmb250LXNpemU6IG1zKDQpO1xuICB9XG4gIGF7XG4gICAgY29sb3I6IGJsYWNrO1xuICB9XG4gIC5maWVsZC1uYW1lLW5hbWUtZmllbGQgJntcbiAgICBtYXJnaW4tYm90dG9tOiBtcygpO1xuICB9XG59XG5cbmgye1xuICBmb250LXdlaWdodDogJGJvbGQ7XG4gIGNvbG9yOiAkZGFydG1vdXRoLWdyZWVuO1xuICBmb250LXNpemU6IG1zKDEpO1xuICBtYXJnaW4tYm90dG9tOiBtcygtMyk7XG4gIGxpbmUtaGVpZ2h0OiBtcygxKTtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFycm93LXNjcmVlbikge1xuICAgIGZvbnQtc2l6ZTogbXMoMik7XG4gIH1cbiAgYXtcbiAgICAvLyBjb2xvcjogJGRhcmstZ3JleTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgJjpob3ZlcntcbiAgICAgIGNvbG9yOiAkZGFyay1ncmV5O1xuICAgIH1cbiAgfVxufVxuXG5oM3tcbiAgZm9udC1zaXplOiBtcygxKTtcbiAgbWFyZ2luLWJvdHRvbTogbXMoLTIpO1xuICBsaW5lLWhlaWdodDogbXMoMSk7XG4gIGZvbnQtd2VpZ2h0OiAkYm9sZDtcbiAgLy8gQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFycm93LXNjcmVlbikge1xuICAgIC8vIGZvbnQtc2l6ZTogbXMoMik7XG4gIC8vIH1cbiAgYXtcbiAgICAvLyBjb2xvcjogJGRhcmstZ3JleTtcbiAgfVxufVxuXG5oNHtcbiAgbWFyZ2luLWJvdHRvbTogbXMoLTMpO1xuICAvLyBAaW5jbHVkZSBicmVha3BvaW50KCRuYXJyb3ctc2NyZWVuKSB7XG4gIC8vICAgZm9udC1zaXplOiBtcygxKTtcbiAgLy8gfVxuICBsaW5lLWhlaWdodDogbXMoMSk7XG4gIGZvbnQtd2VpZ2h0OiAkbGlnaHQ7XG4gIC8vIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbmg1e1xuICBmb250LXdlaWdodDogJGJvbGQ7XG4gIC8vIG1hcmdpbi1ib3R0b206IDA7XG4gIGxpbmUtaGVpZ2h0OiBtcygxKTtcbiAgY29sb3I6ICRkYXJ0bW91dGgtZ3JlZW47XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiBtcygtOCk7XG59XG5cbmg2e1xuICBmb250LXNpemU6IG1zKC0xKTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC13ZWlnaHQ6ICRib2xkO1xufVxuXG5zdXB7XG4gIHZlcnRpY2FsLWFsaWduOiBzdXBlcjtcbiAgZm9udC1zaXplOiAgc21hbGxlcjtcbn1cblxuc3Vie1xuICBmb250LXNpemU6ICBzbWFsbGVyO1xuICB2ZXJ0aWNhbC1hbGlnbjogc3ViO1xufVxuXG5ibG9ja3F1b3Rle1xuICBwYWRkaW5nOiBtcygpIG1zKC0xKSBtcygpIG1zKDEpO1xuICBib3JkZXItdG9wOiA4cHggc29saWQgJGVtZXJhbGQtZ3JlZW47XG4gIGJvcmRlci1ib3R0b206IDNweCBzb2xpZCAkZW1lcmFsZC1ncmVlbjtcbiAgbWFyZ2luLWxlZnQ6IG1zKDIpO1xuICBtYXJnaW4tcmlnaHQ6IG1zKDIpO1xuICBwe1xuICAgIC8vIGZvbnQtc2l6ZTogbXMoMSk7XG4gICAgLy8gQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFycm93LXNjcmVlbikge1xuICAgICAgLy8gbGluZS1oZWlnaHQ6IG1zKDEpO1xuICAgIC8vIH1cbiAgICAvLyBsaW5lLWhlaWdodDogbXMoMik7XG4gICAgJjpsYXN0LWNoaWxke1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLyBmaWd1cmV7XG4vLyAgIGNhcHRpb257XG5cbi8vICAgfVxuLy8gfVxuXG5sYWJlbHtcbiAgbWFyZ2luLWJvdHRvbTogbXMoLTIpO1xuICBmb250LXdlaWdodDogJGJvbGQ7XG59XG5cbmlucHV0LFxudGV4dGFyZWF7XG4gIG1hcmdpbjogMDtcbiAgLy8gdmVydGljYWwtYWxpZ246Ym90dG9tO1xufVxuXG50ZXh0YXJlYXtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cblxuXG50YWJsZXtcbiAgd2lkdGg6ICAxMDAlO1xuICBib3JkZXI6IDFweCBzb2xpZCAkbGlnaHQtZ3JleTtcbiAgcHtcbiAgICBAaW5jbHVkZSByZXNldDtcbiAgfVxuICB1bHtcbiAgICBtYXJnaW4tdG9wOiBtcygtMyk7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBsaXtcbiAgICAgICY6bGFzdC1jaGlsZHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgdGJvZHl7XG4gICAgYm9yZGVyOiBub25lO1xuICB9XG5cbiAgdGgsdGR7XG4gICAgcGFkZGluZzogbXMoLTEpIG1zKC0xKTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIGZvbnQtc2l6ZTogbXMoLTEpO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHdlaXJkLXNjcmVlbikgIHtcbiAgICAgIGZvbnQtc2l6ZTogbXMoKTtcbiAgICAgIGxpbmUtaGVpZ2h0OiBtcygxKTtcbiAgICB9XG4gIH1cblxuICB0aHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkZGFydG1vdXRoLWdyZWVuO1xuICB9XG5cbiAgdGR7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGxpZ2h0LWdyZXk7XG4gIH1cblxuICB0ci5vZGR7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIH1cblxuXG4gIHRyOm50aC1jaGlsZChvZGQpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgfVxuXG5cbiAgdHIuZXZlbntcbiAgICAvLyBiYWNrZ3JvdW5kLWNvbG9yOiB0aW50KCRsaWdodC1ncmV5LDYwJSk7XG4gIH1cblxuICB0cjpudGgtY2hpbGQoZXZlbikge1xuICAgIC8vIGJhY2tncm91bmQtY29sb3I6IHRpbnQoJGxpZ2h0LWdyZXksNjAlKTtcbiAgfVxuXG4gIHRoe1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgfVxuXG4gIHRoLFxuICB0aGVhZCB0aHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFydG1vdXRoLWdyZWVuO1xuICAgIC8vIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkbGlnaHQtZ3JleTtcbiAgfVxuXG4gIGNhcHRpb257XG4gICAgY2FwdGlvbi1zaWRlOiBib3R0b207XG4gIH1cbn1cblxuLy8gbGlzdHNcblxudWwsb2x7XG4gIGxpe1xuICAgIG1hcmdpbjogMCAwIG1zKC0zKSAwO1xuICB9XG59XG5cbnVse1xuICBwYWRkaW5nLWxlZnQ6IG1zKDMpO1xuICBsaXtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYXJyb3ctc2NyZWVuKSB7XG4gICAgICBsaW5lLWhlaWdodDogbXMoMSk7XG4gICAgfVxuICAgIGxpc3Qtc3R5bGU6IGRpc2M7XG4gIH1cbn1cblxub2x7XG4gIHBhZGRpbmctbGVmdDogbXMoMSk7XG4gIGxpe1xuICAgIGxpc3Qtc3R5bGU6IGRlY2ltYWw7XG4gIH1cbn1cblxuaW1ne1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZS1vdXQ7XG59XG5cbmEgaW1ne1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbmEgaW1nOmhvdmVye1xuICBvcGFjaXR5OiAuNzU7XG59XG5cbi8vIGZyb20ga2lja3N0YXJ0XG5pbWcsIHZpZGVvIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG59XG4iLCIvKiBfZHJ1cGFsLnNjc3MgKi9cbi8vIF9kcnVwYWwuc2NzcyBjb250YWlucyBlY2hpZG5hcyBkZWZhdWx0IGRydXBhbCBzdHlsZSBvdmVycmlkZXMgYW5kXG4vLyBiYXNlbGluZSBzdHlsZXMgZm9yIGRlZmF1bHQgQ09SRSBkcnVwYWwgZnVuY3Rpb25sYWl0eSBlZy4gd2ViZm9ybSBvdmVycmlkZXMsXG4vLyBiYXNpYyBzZWFyY2ggcmVzdWx0IHN0eWxlcy5cbi8vXG4vL1xuLy8gUHJvamVjdCBzcGVjaWZpYyBzdHlsZXMgc2hvdWxkIGJlIGNyZWF0ZWQgaW4gYSBuZXcgZmlsZSB3aXRoIHRoZSBzYW1lXG4vLyBmaWxlIG5hbWUgaW4gdGhlIG9iamVjdHMgZm9sZGVyIChlZy4gL29iamVjdHMvX2Zvcm1zLnNjc3MpLlxuLy9cbi8vIElmIHlvdSBhcmUgb3ZlcnJpZGluZyBhIGNvbnRyaWJ1dGVkIG1vZHVsZSBzdHlsZXMsIHBsZWFzZSBjcmVhdGUgYVxuLy8gY29tcG9uZW50IHNjc3MgcGFydGlhbCBhbmQgc3RhcnQgd2l0aCB5b3VyIG92ZXJyaWRlcy9zdHlsZXMgKGVnLiAvY29tcG9uZW50cy9mbGFncy9fZmxhZ3Muc2Nzcylcbi8vXG4vLyBUaGUgU0FTUyBwYXJ0aWFsIG5hbWluZyBjb252ZW50aW9uIHNob3VsZCBiZSB0aGUgc2FtZSBhcyB0aGUgQ1NTXG4vLyBzdHlsZXNoZWV0IGZpbGVuYW1lIHVzZWQgYnkgRHJ1cGFsIGlmIHBvc3NpYmxlXG4vLyAoZWcuIGNvbW1lbnRzLmNzcyAtPiBfY29tbWVudHMuc2NzcylcblxuLy8gQGltcG9ydCBcImRydXBhbC9jb21tZW50c1wiO1xuLy8gQGltcG9ydCBcImRydXBhbC9kYXRlXCI7XG4vLyBAaW1wb3J0IFwiZHJ1cGFsL2ZpbGVcIjtcbkBpbXBvcnQgXCJkcnVwYWwvZm9ybXNcIjtcbkBpbXBvcnQgXCJkcnVwYWwvbWVzc2FnZXNcIjtcbi8vIEBpbXBvcnQgXCJkcnVwYWwvc2VhcmNoXCI7XG5AaW1wb3J0IFwiZHJ1cGFsL3N5c3RlbS10aGVtZVwiO1xuQGltcG9ydCBcImRydXBhbC90YWJzXCI7XG4vLyBAaW1wb3J0IFwiZHJ1cGFsL3VzZXJcIjtcbiIsIi8qIGRydXBhbC9fZm9ybXMuc2NzcyAqL1xuLy8gcmVzZXQgc29tZSBkZWZhdWx0IGRydXBhbCBzdHlsaW5nXG5cbi5mb3JtLXJlcXVpcmVkLFxuLm1hcmtlcntcbiAgY29sb3I6IHJlZDtcbn1cbiIsIi8qIGRydXBhbC9fbWVzc2FnZXMuc2NzcyAqL1xuLy8gcmVzZXQgc29tZSBkZWZhdWx0IGRydXBhbCBzdHlsaW5nXG5cbmRpdi5tZXNzYWdlc3tcbiAgQGluY2x1ZGUgcmVzZXQ7XG4gIG1hcmdpbi1ib3R0b206IG1zKCk7XG4gIHBhZGRpbmc6IG1zKC0yKSBtcygtMikgbXMoLTIpIG1zKDUpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGluZS1oZWlnaHQ6IG1zKDMpO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hcnJvdy1zY3JlZW4pIHtcbiAgICBmb250LXNpemU6IG1zKCk7XG4gICAgbGluZS1oZWlnaHQ6IG1zKDIpO1xuICB9XG5cbiAgJjpiZWZvcmV7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiBtcygtMyk7XG4gICAgdG9wOiBtcygtNCk7XG4gIH1cbn1cblxuZGl2LnN0YXR1c3tcbiAgYmFja2dyb3VuZC1jb2xvcjogI0RDRURDODtcbiAgY29sb3I6ICMzMzY5MUU7XG4gICY6OmJlZm9yZXtcbiAgICBAaW5jbHVkZSBtYXRlcmlhbC1pY29ucztcbiAgICBjb250ZW50OiBcImNoZWNrX2NpcmNsZVwiO1xuICAgIGNvbG9yOiAjMzM2OTFFO1xuICB9XG59XG5cbmRpdi53YXJuaW5ne1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGOUM0O1xuICBjb2xvcjogIzgyNzcxNztcbiAgJjo6YmVmb3Jle1xuICAgIEBpbmNsdWRlIG1hdGVyaWFsLWljb25zO1xuICAgIGNvbnRlbnQ6IFwid2FybmluZ1wiO1xuICAgIGNvbG9yOiAjODI3NzE3O1xuICB9XG59XG5cbmRpdi5lcnJvcntcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZDRTRFQztcbiAgY29sb3I6ICNCNzFDMUM7XG4gICY6OmJlZm9yZXtcbiAgICBAaW5jbHVkZSBtYXRlcmlhbC1pY29ucztcbiAgICBjb250ZW50OiBcImVycm9yXCI7XG4gICAgY29sb3I6ICNCNzFDMUM7XG4gIH1cbn1cblxuXG4iLCIvKiBkcnVwYWwvX3N5c3RlbS10aGVtZS5zY3NzICovXG4vLyByZXNldCBzb21lIGRlZmF1bHQgZHJ1cGFsIHN0eWxpbmdcblxuXG4uaXRlbS1saXN0IHVse1xuICBAaW5jbHVkZSByZXNldDtcbiAgbGl7XG4gICAgQGluY2x1ZGUgcmVzZXQ7XG4gICAgQGluY2x1ZGUgbm8tYnVsbGV0O1xuICB9XG59XG5cbi5saW5rcy5pbmxpbmV7XG4gIEBpbmNsdWRlIHJlc2V0O1xuICBAaW5jbHVkZSBuby1idWxsZXQ7XG59XG5cbi5mb3JtLWl0ZW0sXG4uZm9ybS1hY3Rpb25ze1xuICBtYXJnaW46IDA7XG59XG5cbi5mb3JtLWl0ZW17XG4gIG1hcmdpbi1ib3R0b206IG1zKCk7XG59XG5cbi5mb3JtLWl0ZW0gLmRlc2NyaXB0aW9uIHtcbiAgQGluY2x1ZGUgcmVzZXQtZm9udDtcbiAgbWFyZ2luLXRvcDogbXMoLTQpO1xuICBmb250LXNpemU6IG1zKC0xKTtcbn1cblxuLmZvcm0tY2hlY2tib3hlcyAuZm9ybS1pdGVtLFxuLmZvcm0tcmFkaW9zIC5mb3JtLWl0ZW0ge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4uZm9ybS10eXBlLXJhZGlvIC5kZXNjcmlwdGlvbixcbi5mb3JtLXR5cGUtY2hlY2tib3ggLmRlc2NyaXB0aW9uIHtcbiAgbWFyZ2luLWxlZnQ6IG1zKDIpO1xufVxuIiwiLyogZHJ1cGFsL190YWJzLnNjc3MgKi9cbi8vIHJlc2V0IHNvbWUgZGVmYXVsdCBkcnVwYWwgc3R5bGluZ1xuXG51bC50YWJze1xuICBAaW5jbHVkZSBuYXZpZ2F0aW9uLWxpc3Q7XG4gIG1hcmdpbi1ib3R0b206IG1zKDEpO1xuICBtYXJnaW4tdG9wOiBtcygxKTtcbiAgYm9yZGVyLWJvdHRvbTogNXB4IHNvbGlkIGJsYWNrO1xuICBsaXtcbiAgICBAaW5jbHVkZSByZXNldDtcbiAgfVxuICBhe1xuICAgIGJhY2tncm91bmQtY29sb3I6IGdyYXk7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjNzIGVhc2Utb3V0O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGZvbnQtd2VpZ2h0OiAkYm9sZDtcbiAgICBmb250LXNpemU6IG1zKC0xKTtcbiAgICBwYWRkaW5nLXRvcDogbXMoLTYpO1xuICAgIHBhZGRpbmctbGVmdDogbXMoLTIpO1xuICAgIHBhZGRpbmctcmlnaHQ6IG1zKC0yKTtcbiAgICBtYXJnaW46IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiBtcygtNik7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICYuYWN0aXZle1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgfVxuICAgICY6aG92ZXJ7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xuICAgICAgY29sb3I6IGJsYWNrO1xuICAgIH1cbiAgICAmOmFjdGl2ZXtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xuICAgICAgY29sb3I6IHdoaXRlO1xuICAgIH1cbiAgfVxuICBsaTpsYXN0LWNoaWxkIGF7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICB9XG59XG4iLCIvKiBfbGF5b3V0LnNjc3MgKi9cbi8vIGNvbnRhaW5zIHRoZSBkZXNpZ24gc3RydWN0dXJlIHN0eWxlcywgaW5jbHVkaW5nXG4vLyByZXNwb25zaXZlIGRlc2lnbiBpbXBsZW1lbnRhdGlvblxuXG4ubGF5b3V0LWNvbnRhaW5lcntcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXgtd2lkdGg6ICAkd2lkZS1zY3JlZW47XG4gIG1hcmdpbjogIDAgYXV0bztcbiAgcGFkZGluZzogIDAgbXMoMik7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRuYXJyb3ctc2NyZWVuICR3ZWlyZC1zY3JlZW4tbWF4KSB7XG4gICAgcGFkZGluZzogMCA2LjM4Mjk4JTtcbiAgfVxuICBAaW5jbHVkZSBicmVha3BvaW50KCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgcGFkZGluZzogIDAgbXMoLTEpO1xuICB9XG59XG5cbi8qICBAbWFpbiBsYXlvdXQgcmVnaW9uc1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuQGltcG9ydCAnbGF5b3V0L2hlYWRlcic7XG5AaW1wb3J0ICdsYXlvdXQvY29udGVudCc7XG5AaW1wb3J0ICdsYXlvdXQvZm9vdGVyJztcbiIsIi8qIGxheW91dC9faGVhZGVyLnNjc3MgKi9cblxuLyogQGhlYWRlciBzZWN0aW9uICovXG5cbi8vICNoZWFkZXJ7XG5cbi8vIH1cblxuXG4jbWFzdGhlYWR7XG4gIGJhY2tncm91bmQtY29sb3I6ICRkYXJ0bW91dGgtZ3JlZW47XG4gIHBhZGRpbmc6IG1zKDMpIDA7XG4gIC5sYXlvdXQtY29udGFpbmVye1xuICAgIC5yZWdpb257XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYXJyb3ctc2NyZWVuKSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC00cHg7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnJlZ2lvbi1tYXN0aGVhZC1wcmltYXJ5e1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hcnJvdy1zY3JlZW4pIHtcbiAgICAgIHdpZHRoOiA0MC40MjU1MyU7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDIuMTI3NjYlO1xuICAgIH1cblxuICAgIC5yZWdpb24taW5uZXJ7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYXJyb3ctc2NyZWVuKSB7XG4gICAgICAgIHBhZGRpbmctdG9wOjA7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5yZWdpb24tbWFzdGhlYWQtc2Vjb25kYXJ5e1xuICAgIC5yZWdpb24taW5uZXJ7XG4gICAgICBsaW5lLWhlaWdodDogMDtcbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFycm93LXNjcmVlbikge1xuICAgICAgd2lkdGg6IDU3LjQ0NjgxJTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuICB9XG59XG5cbi5yZWdpb24tbmF2aWdhdGlvbntcbiAgcGFkZGluZzogbXMoLTEpIDA7XG4gIG1hcmdpbi1ib3R0b206IG1zKCk7XG4gIGJvcmRlci1ib3R0b206IDRweCBzb2xpZCAkbGlnaHQtZ3JleTtcbiAgLmZyb250ICZ7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbiIsIi8qIGxheW91dC9fY29udGVudC5zY3NzICovXG5cbiAvKiBAY29udGVudCBzZWN0aW9uICovXG5cbi8vICNjb250ZW50e1xuXG4vLyB9XG5cbi5zZWN0aW9uLWNvbnRlbnR7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBtYXJnaW46IDAgMCBtcygyKSAwO1xuICAvLyBwYWRkaW5nOiBtcygpIDA7XG4gIC5mcm9udCAme1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICB9XG59XG5cbiNtYWlue1xuICBtYXJnaW4tYm90dG9tOiBtcygpO1xuICAuZnJvbnQgJntcbiAgICBtYXJnaW4tdG9wOiBtcygyKTtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi5yZWdpb24tY29udGVudHtcbiAgLmZyb250ICZ7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4jc2lkZWJhci1maXJzdHtcbiAgbWFyZ2luLWJvdHRvbTogbXMoKTtcbn1cblxuXG4jc2lkZWJhci1zZWNvbmR7XG4gIG1hcmdpbi1ib3R0b206IG1zKDMpO1xufVxuXG4jZXZlbnRze1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vLyBAbGF5b3V0IHdpdGggbWFpbiBjb2x1bW4gYW5kIGZpcnN0IHNpZGViYXJcbi5vbmUtc2lkZWJhci5zaWRlYmFyLWZpcnN0e1xuICAjc2lkZWJhci1maXJzdHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgICBAaW5jbHVkZSBncmlkLXNwYW4oNCk7XG4gICAgfVxuICB9XG4gICNtYWlue1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtc3Bhbig4LDUpO1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIEBsYXlvdXQgd2l0aCBtYWluIGNvbHVtbiBhbmQgc2Vjb25kIHNpZGViYXJcblxuLm9uZS1zaWRlYmFyLnNpZGViYXItc2Vjb25ke1xuICAjc2lkZWJhci1zZWNvbmR7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWVkaXVtLXNjcmVlbikge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1zcGFuKDQsOSk7XG4gICAgfVxuICB9XG5cbiAgI21haW57XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWVkaXVtLXNjcmVlbikge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1zcGFuKDgpO1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIEBsYXlvdXQgd2l0aCBtYWluIGNvbHVtbiBhbmQgdHdvIHNpZGViYXJzXG5cbi50d28tc2lkZWJhcnN7XG5cbiAgI3NpZGViYXItZmlyc3R7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWVkaXVtLXNjcmVlbikge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1zcGFuKDQpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHN0YW5kYXJkLXNjcmVlbikge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1zcGFuKDMpO1xuICAgIH1cbiAgfVxuICAjbWFpbntcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgICBAaW5jbHVkZSBncmlkLXNwYW4oOCw1KTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzdGFuZGFyZC1zY3JlZW4pIHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtc3Bhbig2LDQpO1xuICAgIH1cbiAgfVxuXG4gICNzaWRlYmFyLXNlY29uZHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgICBjbGVhcjogYm90aDtcbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc3RhbmRhcmQtc2NyZWVuKSB7XG4gICAgICBAaW5jbHVkZSBncmlkLXNwYW4oMywxMClcbiAgICB9XG4gIH1cbn1cblxuLyogQHJlZ2lvbiBmZWF0dXJlZCBuZXdzICovXG5cblxuLnJlZ2lvbi1mZWF0dXJlZC1jb250ZW50e1xuICAvLyBtYXJnaW4tYm90dG9tOiAwO1xuICAubm90LWZyb250ICYge1xuICAgIC8vIGJhY2tncm91bmQtY29sb3I6IHRpbnQoJGxpZ2h0LWdyZXksIDYwJSk7XG4gICAgbWFyZ2luLWJvdHRvbTogbXMoMyk7XG4gIH1cbn1cblxuLnJlZ2lvbi1jdGEtcHJpbWFyeXtcbiAgbWFyZ2luLWJvdHRvbTogbXMoMik7XG59XG5cblxuLyogQHJlZ2lvbiBldmVudHMgKi9cblxuLnJlZ2lvbi1ldmVudHMtcHJpbWFyeSxcbi5yZWdpb24tZXZlbnRzLXNlY29uZGFyeXtcbiAgcGFkZGluZzogbXMoMykgbXMoMyk7XG4gIGJhY2tncm91bmQtY29sb3I6IHRpbnQoJGxpZ2h0LWdyZXksIDYwJSk7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHdlaXJkLXNjcmVlbikge1xuICAgIHBhZGRpbmc6IG1zKDYpIG1zKDUpIG1zKDUpIG1zKDUpO1xuICB9XG59XG5cbi5yZWdpb24tZXZlbnRzLXByaW1hcnl7XG4gIGJhY2tncm91bmQtY29sb3I6ICRkYXJ0bW91dGgtZ3JlZW47XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHdlaXJkLXNjcmVlbikge1xuICAgIEBpbmNsdWRlIGZsb2F0LXNwYW4oNik7XG4gICAgLy8gcGFkZGluZzogbXMoNikgbXMoNSkgbXMoNSkgMDtcbiAgfVxufVxuXG4ucmVnaW9uLWV2ZW50cy1zZWNvbmRhcnl7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHdlaXJkLXNjcmVlbikge1xuICAgIEBpbmNsdWRlIGZsb2F0LXNwYW4oNixsYXN0KTtcbiAgICAvLyBwYWRkaW5nOiBtcyg2KSAwIG1zKDUpIG1zKDUpO1xuICB9XG59XG5cbi8qIEByZWdpb24gZmVhdHVyZWQgbmV3cyAqL1xuXG4ucmVnaW9uLWZlYXR1cmVkLW5ld3N7XG4gIGJhY2tncm91bmQtY29sb3I6IHRpbnQoJGxpZ2h0LWdyZXksIDYwJSk7XG59XG5cbi5yZWdpb24tbmV3c3tcbiAgcGFkZGluZzogIG1zKDEpIDA7XG59XG5cbi8qICBAcmVnaW9uIENUQSAqL1xuXG4ucmVnaW9uLWN0YXtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGRhcnRtb3V0aC1ncmVlbjtcbiAgcGFkZGluZzogIG1zKDIpIDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFycm93LXNjcmVlbikge1xuICAgIHBhZGRpbmc6ICBtcygzKSAwO1xuICB9XG59XG5cbi8qICBAcmVnaW9uIG1haW4gcHJlZml4ICovXG5cbi5yZWdpb24tbWFpbi1wcmVmaXh7XG4gIHBhZGRpbmc6IG1zKC00KSAwO1xufVxuXG4vKiAgQHJlZ2lvbiBtYWluIHN1ZmZpeCAqL1xuXG4ucmVnaW9uLW1haW4tc3VmZml4e1xuICAvLyBwYWRkaW5nOiBtcygpO1xufVxuIiwiLyogbGF5b3V0L19mb290ZXIuc2NzcyAqL1xuXG4vKiBAZm9vdGVyIHNlY3Rpb24gKi9cblxuI2Zvb3RlcntcbiAgbWFyZ2luLXRvcDogbXMoNik7XG59XG5cbi5yZWdpb24tc29jaWFsLW1lZGlhe1xuICBwYWRkaW5nOiBtcygpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0aW50KCRsaWdodC1ncmV5LCA2MCUpO1xuICBwYWRkaW5nOiBtcygzKSAwO1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRuYXJyb3ctc2NyZWVuKSB7XG4gICAgcGFkZGluZzogbXMoNikgMDtcbiAgfVxufVxuXG4ucmVnaW9uLWZvb3RlcntcbiAgYm9yZGVyLXRvcDogNXB4IHNvbGlkICRlbWVyYWxkLWdyZWVuO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBzaGFkZSgkZGFydG1vdXRoLWdyZWVuLCA1MCUpO1xuICBwYWRkaW5nOiBtcygzKSAwO1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRuYXJyb3ctc2NyZWVuKSB7XG4gICAgcGFkZGluZzogbXMoNikgMDtcbiAgfVxuICBhe1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBmb250LXNpemU6IG1zKC0xKTtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgJjpob3ZlcntcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cbiAgfVxufVxuXG4ucmVnaW9uLWZvb3Rlci1zZWNvbmRhcnl7XG4gIHBhZGRpbmctdG9wOiBtcygpO1xufVxuXG4iLCIvKiBfb2JqZWN0cy5zY3NzICovXG4vLyBjb250YWlucyBnZW5lcmljLCB1bmRlcmx5aW5nIGRlc2lnbiBwYXR0ZXJucyBhbmQgdGhlaXIgZXh0ZW5zaW9ucy5cbi8vIGVnLiBiYXNpYyBzdHlsZXMgZm9yIGFsbCBzaWRlYmFyIGJsb2NrcyBvciBsaXN0IGRpc3BsYXlzIG9mIGNvbnRlbnRcblxuQGltcG9ydCAnb2JqZWN0cy9idXR0b25zJztcbkBpbXBvcnQgJ29iamVjdHMvY2FyZHMnO1xuQGltcG9ydCAnb2JqZWN0cy93eXNpd3lnLWxheW91dHMnO1xuQGltcG9ydCAnb2JqZWN0cy9yZXNwb25zaXZlLXRhYmxlcyc7XG5AaW1wb3J0ICdvYmplY3RzL21lZGlhLWVtYmVkJztcbkBpbXBvcnQgJ29iamVjdHMvZmllbGRzJztcbkBpbXBvcnQgJ29iamVjdHMvdmlldy1maWVsZHMnO1xuQGltcG9ydCAnb2JqZWN0cy9saXN0LWRpc3BsYXlzJztcbkBpbXBvcnQgJ29iamVjdHMvZ3JpZC1kaXNwbGF5cyc7XG5AaW1wb3J0ICdvYmplY3RzL2NvbnRlbnQtc3R5bGVzJztcbkBpbXBvcnQgJ29iamVjdHMvdmVuZG9ycyc7XG5AaW1wb3J0ICdvYmplY3RzL2JveGVzJztcbkBpbXBvcnQgJ29iamVjdHMvZGUtZ2FsbGVyeSc7XG5AaW1wb3J0ICdvYmplY3RzL2ZpbGUtYXR0YWNobWVudHMnO1xuQGltcG9ydCAnb2JqZWN0cy9yZWxhdGVkLWNvbnRlbnQnO1xuXG4uYWpheC1wcm9ncmVzcy5hamF4LXByb2dyZXNzLXRocm9iYmVye1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uZnJvbnQgLnRhYnN7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5zdHlsZWd1aWRlLWhlYWRlcntcbiAgY2xlYXI6IGJvdGg7XG4gIG1hcmdpbi10b3A6IG1zKDUpO1xuICBtYXJnaW4tYm90dG9tOiBtcygtMyk7XG4gIGZvbnQtc2l6ZTogbXMoLTEpO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogJG5ldXRyYWwtZ3JleTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRsaWdodC1ncmV5O1xuICAmOm50aC1jaGlsZCgxKXtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG59XG5cbi5tb3JlLWxpbmt7XG4gIGNsZWFyOiBib3RoO1xuICBhe1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjb2xvcjogJGRhcnRtb3V0aC1ncmVlbjtcbiAgICAmOjphZnRlcntcbiAgICAgIEBpbmNsdWRlIG1hdGVyaWFsLWljb25zO1xuICAgICAgQGluY2x1ZGUgbWQtMTg7XG4gICAgICBjb250ZW50OiBcImFycm93X2ZvcndhcmRcIjtcbiAgICAgIGNvbG9yOiAkZGFydG1vdXRoLWdyZWVuO1xuICAgICAgcGFkZGluZy1sZWZ0OiBtcygtNik7XG4gICAgfVxuICAgICY6aG92ZXJ7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB9XG4gIH1cbn1cblxuLmhlYWRpbmdze1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFydG1vdXRoLWdyZWVuO1xuICBmb250LXNpemU6IG1zKCk7XG4gIGZvbnQtd2VpZ2h0OiAkYm9sZDtcbiAgY29sb3I6ICRkYXJrLWdyZXk7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxpbmUtaGVpZ2h0OiBtcygtMik7XG4gIC8vIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHdlaXJkLXNjcmVlbikge1xuICAvLyAgIGZvbnQtc2l6ZTogbXMoLTEpO1xuICAvLyB9XG4gIC8vIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1lZGl1bS1zY3JlZW4pIHtcbiAgLy8gICBmb250LXNpemU6IG1zKCk7XG4gIC8vIH1cbiAgc3BhbntcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aW50KCRsaWdodC1ncmV5LCA2MCUpO1xuICAgIHBhZGRpbmctcmlnaHQ6IG1zKC0zKTtcbiAgICBtYXJnaW4tcmlnaHQ6IC00cHg7XG4gICAgJi53b3JkMXtcbiAgICAgIHBhZGRpbmctbGVmdDogbXMoLTMpO1xuICAgICAgbWFyZ2luLWxlZnQ6IG1zKC0xKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8qIG9iamVjdHMvX2J1dHRvbi5zY3NzICovXG5cbi8vIGdsb2JhbCBidXR0b24gc3R5bGVzXG5cbi5idG57XG4gIEBpbmNsdWRlIGJ0bjtcbn1cblxuLy8gLmJ0bi1lZmZlY3R7XG4gIC8vIEBpbmNsdWRlIGJ0bi1lZmZlY3Q7XG4vLyB9XG5cbi5idG4tcHJpbWFyeXtcbiAgQGluY2x1ZGUgYnRuLXByaW1hcnk7XG59XG5cbi5idG4tc2Vjb25kYXJ5e1xuICBAaW5jbHVkZSBidG4tc2Vjb25kYXJ5O1xufVxuXG4uYnRuLWZsYXR7XG4gIEBpbmNsdWRlIGJ0bi1mbGF0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHQtZ3JleTtcbn1cblxuJWlubGluZS1idG57XG5cbn1cbiIsIi8qIG9iamVjdHMvY2FyZHMvX2NhcmRzLnNjc3MgKi9cbkBpbXBvcnQgXCJjYXJkcy9jYXJkXCI7XG5AaW1wb3J0IFwiY2FyZHMvY2FyZC0tZGVmYXVsdFwiO1xuQGltcG9ydCBcImNhcmRzL2NhcmQtLWFjY29yZGlvblwiO1xuLy8gQGltcG9ydCBcImNhcmRzL2NhcmQtLW1lZGlhXCI7XG4iLCIvKiBvYmplY3RzL2NhcmRzL19jYXJkLnNjc3MgKi9cblxuLy8gc2V0dGluZ3Ncbi8vICRjYXJkX19hY2NlbnQtY29sb3I6IDtcbi8vICRjYXJkX19iZy1jb2xvcjogO1xuLy8gJGNhcmRfX2xpbmstY29sb3I6IDtcblxuLy8gY2FyZCBzdHlsZXNcbi5jYXJke1xuICBAaW5jbHVkZSB6LWRlZmF1bHQtc2hhZG93O1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIG1hcmdpbi1ib3R0b206IG1zKDQpO1xuICBsaW5lLWhlaWdodDogbXMoMik7XG4gIC5uby1zaWRlYmFycyAmIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgIG1heC13aWR0aDogODUlO1xuICAgIH1cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzdGFuZGFyZC1zY3JlZW4pIHtcbiAgICAgIG1heC13aWR0aDogNzUlO1xuICAgIH1cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCR3aWRlLXNjcmVlbikge1xuICAgICAgbWF4LXdpZHRoOiA2NSU7XG4gICAgfVxuICB9XG4gICY6aG92ZXJ7XG4gICAgLy8gQGluY2x1ZGUgc2hhZG93LWhvdmVyYWJsZTtcbiAgfVxufVxuXG4uY2FyZF9faW5uZXJ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmNhcmRfX3RpdGxle1xuICBwYWRkaW5nOiBtcygtMSkgbXMoMik7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRuYXJyb3ctc2NyZWVuKSB7XG4gICAgcGFkZGluZzogbXMoLTEpIG1zKDEpO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICB9XG59XG5cbiAgLmNhcmRfX3RpdGxlLXRleHR7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuXG4uY2FyZF9fc3VwcG9ydGluZy10ZXh0e1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgcGFkZGluZzogbXMoLTEpIG1zKDIpO1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRuYXJyb3ctc2NyZWVuKSB7XG4gICAgcGFkZGluZzogbXMoLTEpIG1zKDEpO1xuICB9XG59XG5cbi5jYXJkX19zdXBwb3J0aW5nLXRleHQtaW1hZ2V7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNtYWxsLXNjcmVlbikge1xuICAgIEBpbmNsdWRlIGltYWdlLXN0eWxlO1xuICAgIEBpbmNsdWRlIGltYWdlLXN0eWxlLWxlZnQ7XG4gIH1cbn1cblxuLmNhcmRfX2FjdGlvbnN7XG4gIHBhZGRpbmc6IG1zKC0yKTtcbn1cblxuLmNhcmRfX2J1dHRvbntcbiAgQGluY2x1ZGUgYnRuLWZsYXQ7XG59XG4iLCIvKiBvYmplY3RzL2NhcmRzL19jYXJkX19kZWZhdWx0LnNjc3MgKi9cblxuLy8gc2V0dGluZ3Ncbi8vICRjYXJkX19hY2NlbnQtY29sb3I6IDtcbi8vICRjYXJkX19iZy1jb2xvcjogO1xuLy8gJGNhcmRfX2xpbmstY29sb3I6IDtcblxuLmNhcmQtLWRlZmF1bHR7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBjb2xvcjogc2hhZGUoJGxpZ2h0LWdyZXksNjAlKTtcbiAgLmNhcmRfX3N1cHBvcnRpbmctdGV4dHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGxpZ2h0LWdyZXk7XG4gIH1cbiAgLmNhcmRfX2J1dHRvbntcbiAgICBjb2xvcjogI0QzMkYyRjtcbiAgICAmOmhvdmVyLCY6Zm9jdXN7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHQtZ3JleTtcbiAgICAgIGNvbG9yOiAkZGFyay1ncmV5O1xuICAgIH1cbiAgfVxufSIsIi5kZV9iaXRzX2FjY29yZGlvbiB7XG4gIGZsb2F0OiBsZWZ0O1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5jYXJkLS1hY2NvcmRpb24ge1xuICAvLyBib3JkZXI6IDFweCBzb2xpZCAkdWktYm9yZGVycy1jb2xvcjtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgQGluY2x1ZGUgY2xlYXJmaXgoKTtcblxuICAuY2FyZF9fYWN0aW9uc3tcbiAgICAvLyBwYWRkaW5nOiBtcygtMik7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXItYm90dG9tOiBzb2xpZCAycHggJHVpLWJvcmRlcnMtY29sb3I7XG4gICAgLy8gYmFja2dyb3VuZC1jb2xvcjogdGludCgkbGlnaHQtZ3JleSwgODAlKTtcblxuICAgIC8vICY6bnRoLWxhc3Qtb2YtdHlwZSgyKSB7XG4gICAgICAvLyBib3JkZXItYm90dG9tOiBub25lO1xuICAgIC8vIH1cblxuICAgIGJ1dHRvbiB7XG4gICAgICBAaW5jbHVkZSByZXNldDtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBjb2xvcjogJGRhcmstZ3JleTtcbiAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkYm9sZDtcbiAgICAgIHBhZGRpbmc6IG1zKC0zKSAwO1xuICAgICAgZm9udC13ZWlnaHQ6IG1lZGl1bTtcbiAgICAgIC8vICY6aG92ZXJ7XG4gICAgICAvLyAgIGNvbG9yOiAkZGFydG1vdXRoLWdyZWVuO1xuICAgICAgLy8gfVxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgc3Bhbi5tYXRlcmlhbC1pY29ucyB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIG1hcmdpbi1yaWdodDogbXMoLTEpO1xuICAgICAgLy8gYmFja2dyb3VuZC1jb2xvcjogJGRhcnRtb3V0aC1ncmVlbjtcbiAgICAgIGNvbG9yOiAkZW1lcmFsZC1ncmVlbjtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkYm9sZDtcbiAgICAgIGZvbnQtc2l6ZTogbXMoMSk7XG4gICAgICBib3JkZXI6IDNweCBzb2xpZCAkZW1lcmFsZC1ncmVlbjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnZXhwYW5kX21vcmUnO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5jYXJkX190b2dnbGUuY2FyZF9fdG9nZ2xlLS1hY3RpdmUge1xuICAgICAgLy8gY29sb3I6ICRkYXJ0bW91dGgtZ3JlZW47XG4gICAgICBzcGFuLm1hdGVyaWFsLWljb25zOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJ2V4cGFuZF9sZXNzJztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuY2FyZF9faW5uZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4ICR1aS1ib3JkZXJzLWNvbG9yO1xuXG4gICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgIGJvcmRlci10b3A6IHNvbGlkIDFweCAkdWktYm9yZGVycy1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAmLmNhcmQtLWRlZmF1bHQgLmNhcmRfX3N1cHBvcnRpbmctdGV4dCB7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICBwYWRkaW5nOiBtcygtMSk7XG4gIH1cbn1cbiIsIi8qIF9vYmplY3RzLnNjc3MvIHd5c2l3eWdfbGF5b3V0cy8gX3d5c2l3eWctbGF5b3V0cy5zY3NzICovXG4vLyBjb250YWlucyBnZW5lcmljLCB1bmRlcmx5aW5nIGRlc2lnbiBwYXR0ZXJucyBhbmQgdGhlaXIgZXh0ZW5zaW9ucy5cbi8vIGVnLiBiYXNpYyBzdHlsZXMgZm9yIGFsbCBzaWRlYmFyIGJsb2NrcyBvciBsaXN0IGRpc3BsYXlzIG9mIGNvbnRlbnRcblxuQGltcG9ydCAnb2JqZWN0cy93eXNpd3lnX2xheW91dHMvbGF5b3V0LS10d28tY29sJztcbkBpbXBvcnQgJ29iamVjdHMvd3lzaXd5Z19sYXlvdXRzL2xheW91dC0tdGhyZWUtY29sJzsiLCIvKiBfd3lzaXd5Zy1sYXlvdXRzLnNjc3MvX2xheW91dC0tdHdvLWNvbC5zY3NzICovXG5cbi5sYXlvdXQtLXR3by1jb2x7XG4gIC5sYXlvdXRfX2NvbHVtbi1jb250YWluZXJ7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBtYXJnaW4tYm90dG9tOiBtcygpO1xuICAgIC5sYXlvdXRfX2NvbHVtbntcbiAgICAgIEBpbmNsdWRlIGZsb2F0LXNwYW4oNik7XG5cbiAgICAgICY6bGFzdC1jaGlsZHtcbiAgICAgICAgQGluY2x1ZGUgZmxvYXQtc3Bhbig2LCBsYXN0KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCIvKiBfd3lzaXd5Zy1sYXlvdXRzLnNjc3MvX2xheW91dC0tdGhyZWUtY29sLnNjc3MgKi9cblxuLmxheW91dC0tdGhyZWUtY29se1xuICAubGF5b3V0X19jb2x1bW4tY29udGFpbmVye1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgbWFyZ2luLWJvdHRvbTogbXMoKTtcbiAgICAubGF5b3V0X19jb2x1bW57XG4gICAgICBAaW5jbHVkZSBmbG9hdC1zcGFuKDQpO1xuXG4gICAgICAmOmxhc3QtY2hpbGR7XG4gICAgICAgIEBpbmNsdWRlIGZsb2F0LXNwYW4oNCwgbGFzdCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwiLyogb2JqZWN0cy9fcmVzcG9uc2l2ZS10YWJsZXMuc2NzcyAqL1xuXG4vLyBSZXNwb25zaXZlIHRhYmxlcyAtIGFkZGVkIHZpYSBqYXZhc2NyaXB0IHRvIHRhYmxlcyBpbiB0aGUgYm9keSBmaWVsZFxuLnRhYmxlLXJlc3BvbnNpdmV7XG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgY3Vyc29yOiBldy1yZXNpemU7XG59XG5cbi50YWJsZS1jb250cm9sc3tcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkbGlnaHQtZ3JleTtcbiAgcGFkZGluZy1ib3R0b206IG1zKC02KTtcbiAgLmluc3RydWN0aW9ue1xuICAgIGNvbG9yOiAkbmV1dHJhbC1ncmV5O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC1zaXplOiBtcygtMSk7XG4gICAgbWFyZ2luLXJpZ2h0OiBtcygtMSk7XG4gIH1cbiAgLmZhOmJlZm9yZXtcbiAgICBjb2xvcjogJG5ldXRyYWwtZ3JleTtcbiAgfVxufVxuIiwiLyogb2JqZWN0cy9fbWVkaWEtZW1iZWQuc2NzcyAqL1xuXG4vLyByZXNwb25zaXZlIG1lZGlhXG4ubWVkaWFfZW1iZWQsXG4uZW1iZWRkZWQtdmlkZW97XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy1ib3R0b206IDU2LjI1JTtcbiAgcGFkZGluZy10b3A6IDMwcHg7XG4gIGhlaWdodDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbWFyZ2luLWJvdHRvbTogbXMoKTtcbn1cblxuLm1lZGlhX2VtYmVkIGlmcmFtZSxcbi5tZWRpYV9lbWJlZCBvYmplY3QsXG4ubWVkaWFfZW1iZWQgZW1iZWQsXG4uZW1iZWRkZWQtdmlkZW8gaWZyYW1le1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cbiIsIi8qIG9iamVjdHMvX2ZpZWxkcy5zY3NzICovXG5cbi8vIG5vZGUgZmllbGRzXG5cbi5maWVsZHtcbiAgbWFyZ2luLWJvdHRvbTogbXMoKTtcbn1cblxuLmZpZWxkLWxhYmVse1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXNpemU6IG1zKC0xKTtcbiAgZm9udC13ZWlnaHQ6ICRib2xkO1xufVxuXG4uZmllbGQtbmFtZS1maWVsZC1oZWFkZXItaW1hZ2V7XG4gIGltZ3tcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuXG4uZmllbGQtbmFtZS1maWVsZC1waG90by1nYWxsZXJ5LFxuLmZpZWxkLW5hbWUtZmllbGQtZmlsZS1hdHRhY2htZW50cyxcbi5maWVsZC1uYW1lLWZpZWxkLWZpbGV7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIC5maWVsZC1sYWJlbHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZW1lcmFsZC1ncmVlbjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBsaW5lLWhlaWdodDogbXMoLTIpO1xuICAgIC8vIHBhZGRpbmctbGVmdDogbXMoLTEpO1xuICAgIGZvbnQtc2l6ZTogbXMoKTtcbiAgICBmb250LXdlaWdodDogJGJvbGQ7XG4gICAgbWFyZ2luLWJvdHRvbTogbXMoKTtcbiAgICBzcGFue1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRpbnQoJGxpZ2h0LWdyZXksIDYwJSk7XG4gICAgcGFkZGluZy1yaWdodDogbXMoLTMpO1xuICAgIG1hcmdpbi1yaWdodDogLTRweDtcbiAgICAgICYud29yZDF7XG4gICAgICAgIHBhZGRpbmctbGVmdDogbXMoLTMpO1xuICAgICAgICBtYXJnaW4tbGVmdDogbXMoLTEpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uZmllbGQtbmFtZS1maWVsZC1maWxlLWF0dGFjaG1lbnRzLFxuLmZpZWxkLW5hbWUtZmllbGQtZmlsZXtcbiAgLmZpZWxkLWxhYmVse1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRkYXJ0bW91dGgtZ3JlZW47XG4gIH1cbn1cblxuLmZpZWxkLW5hbWUtZmllbGQtaW1hZ2Vze1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAuZmllbGQtaXRlbXtcbiAgICBAaW5jbHVkZSBmbG9hdC1zcGFuKDMpO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tdG9wOiBtcygtMSk7XG4gICAgJjpudGgtY2hpbGQoNG4rNCl7XG4gICAgICBAaW5jbHVkZSBmbG9hdC1zcGFuKDMsbGFzdCk7XG4gICAgfVxuICB9XG59XG5cbi5saXN0LWRpc3BsYXktLWltYWdlcyAuZmllbGQtbmFtZS1maWVsZC1pbWFnZXMgLmZpZWxkLWl0ZW17XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tdG9wOiAwO1xufVxuXG4uZmllbGQtbmFtZS1maWVsZC1hZGRyZXNzIHtcbiAgLnN0cmVldC1ibG9jayxcbiAgLmxvY2FsaXR5LWJsb2NrLFxuICAuY291bnRyeSB7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgfVxufVxuXG4iLCIvKiBvYmplY3RzL192aWV3cy11aS5zY3NzICovXG5cbi8vIHZpZXcgZmllbGRzIGFuZCB1aVxuXG4vLyAudmlld3MtZmllbGQtdGl0bGV7XG4vLyB9XG5cbi8vIC52aWV3cy1maWVsZC1maWVsZC1pbWFnZXtcbi8vIH1cblxuLy8gLnZpZXdzLWZpZWxkLWJvZHl7XG4vLyB9XG4iLCIvKiBvYmplY3RzL19saXN0LWRpc3BsYXlzLnNjc3MgKi9cblxuLy8gbGlzdCBkaXNwbGF5IHdpdGggb3Igd2l0aG91dCBpbWFnZXNcblxuLmxpc3QtZGlzcGxheXtcbiAgLy8gbGksXG4gIC52aWV3cy1yb3d7XG4gICAgQGluY2x1ZGUgZGl2aWRlci1saW5lO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmctYm90dG9tOiBtcygxKTtcbiAgICBtYXJnaW4tYm90dG9tOiBtcygxKTtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYXJyb3ctc2NyZWVuKSB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogbXMoMSk7XG4gICAgICBtYXJnaW4tYm90dG9tOiBtcygxKTtcbiAgICB9XG5cbiAgICAmOmxhc3QtY2hpbGR7XG4gICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gICAgaDJ7XG4gICAgICBhe1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGNvbG9yOiAkZGFydG1vdXRoLWdyZWVuO1xuICAgICAgICAmOmhvdmVye1xuICAgICAgICAgIGNvbG9yOiAkZGFyay1ncmV5O1xuICAgICAgICAgIC8vIGNvbG9yOiB0aW50KCRkYXJ0bW91dGgtZ3JlZW4sIDIwJSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgLmZpZWxkLW5hbWUtZmllbGQtYWRkcmVzcyxcbiAgICAuZmllbGQtbmFtZS1maWVsZC1sb2NhdGlvbntcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICBsaW5lLWhlaWdodDogbXMoMSk7XG4gICAgICBmb250LXdlaWdodDogJGxpZ2h0O1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc21hbGwtc2NyZWVuKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogbXMoMSk7XG4gICAgICB9XG4gICAgICBhe1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICY6aG92ZXJ7XG4gICAgICAgICAgY29sb3I6ICRmb3Jlc3QtZ3JlZW47XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAuZmllbGQtbmFtZS1maWVsZC1kYXRle1xuICAgICAgZm9udC13ZWlnaHQ6ICRub3JtYWw7XG4gICAgfVxuXG4gICAgLmZpZWxkLW5hbWUtYm9keXtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkbGlnaHQ7XG4gICAgfVxuXG4gICAgLy8gLmRhdGUtaWNvbntcbiAgICAvLyAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAvLyAgIHRvcDogMDtcbiAgICAvLyAgIGxlZnQ6IDA7XG4gICAgLy8gICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFydG1vdXRoLWdyZWVuO1xuICAgIC8vICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIC8vICAgcGFkZGluZzogbXMoLTEpIG1zKDEpO1xuICAgIC8vICAgLm1vbnRoe1xuICAgIC8vICAgICBjb2xvcjogd2hpdGU7XG4gICAgLy8gICAgIGZvbnQtc2l6ZTogbXMoKTtcbiAgICAvLyAgICAgZm9udC13ZWlnaHQ6ICRub3JtYWw7XG4gICAgLy8gICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgLy8gICAgIGxpbmUtaGVpZ2h0OiBtcygpO1xuICAgIC8vICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIC8vICAgfVxuICAgIC8vICAgLmRheXtcbiAgICAvLyAgICAgY29sb3I6IHdoaXRlO1xuICAgIC8vICAgICBmb250LXNpemU6IG1zKDMpO1xuICAgIC8vICAgICBmb250LXdlaWdodDogJGJvbGQ7XG4gICAgLy8gICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgLy8gICAgIGxpbmUtaGVpZ2h0OiBtcygpO1xuICAgIC8vICAgfVxuICAgIC8vIH1cbiAgfVxuICAvLyBnZW5lcmF0ZXMgbGlzdC1kaXNwbGF5LS1pbWFnZXNcbiAgJi0taW1hZ2Vze1xuICAgIC8vIG1hcmdpbi1ib3R0b206IG1zKCk7XG4gICAgLmZpZWxkLW5hbWUtZmllbGQtaW1hZ2UsXG4gICAgLmZpZWxkLW5hbWUtZmllbGQtb3ZlcnJpZGUtaW1hZ2UsXG4gICAgLmZpZWxkLW5hbWUtZmllbGQtaW1hZ2Vze1xuICAgICAgd2lkdGg6IDIwMHB4O1xuICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICBtYXJnaW4tYm90dG9tOiBtcygpO1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc21hbGwtc2NyZWVuKSB7XG4gICAgICAgIC8vIHdpZHRoOiAzNy4wMzcwNCU7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgfVxuICAgICAgLmltYWdlLWZpZWxkLWNhcHRpb257XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICAgIC52aWV3cy1maWVsZC10aXRsZXtcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkbGlnaHQtZ3JleTtcbiAgICAgIHBhZGRpbmctdG9wOiBtcygpO1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc21hbGwtc2NyZWVuKSB7XG4gICAgICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgfVxuICAgIH1cbiAgICAuZmllbGQtbmFtZS1maWVsZC1hZGRyZXNzLFxuICAgIC52aWV3cy1maWVsZC10aXRsZSxcbiAgICAuZmllbGQtbmFtZS1maWVsZC1kYXRlLFxuICAgIC52aWV3cy1maWVsZC1maWVsZC1kYXRlLTEsXG4gICAgLmZpZWxkLW5hbWUtZmllbGQtZXZlbnQtZGF0ZSxcbiAgICAudmlld3MtZmllbGQtY3JlYXRlZCxcbiAgICAuZmllbGQtbmFtZS1ib2R5LFxuICAgIC52aWV3cy1maWVsZC12aWV3LW5vZGUsXG4gICAgLmZpZWxkLW5hbWUtZmllbGQtcHJvbW8tbWVzc2FnZXtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNtYWxsLXNjcmVlbikge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDIwMHB4O1xuICAgICAgICBtYXJnaW4tbGVmdDogbXMoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgLmZpZWxkLW5hbWUtZmllbGQtYWRkcmVzcyxcbiAgICAuZmllbGQtbmFtZS1maWVsZC1sb2NhdGlvbntcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNtYWxsLXNjcmVlbikge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDIwMHB4O1xuICAgICAgICBtYXJnaW4tbGVmdDogbXMoLTEpO1xuICAgICAgfVxuICAgIH1cbiAgICAvLyAudmlld3MtZmllbGQtdGl0bGUsXG4gICAgLy8gLnZpZXdzLWZpZWxkLWJvZHksXG4gICAgLy8gLnZpZXdzLWZpZWxkLWZpZWxkLWRhdGUsXG4gICAgLy8gLnZpZXdzLWZpZWxkLWZpZWxkLXBvc3RlZC1kYXRlLFxuICAgIC8vIC52aWV3cy1maWVsZC12aWV3LW5vZGV7XG4gICAgLy8gICBAaW5jbHVkZSBicmVha3BvaW50KCRuYXJyb3ctc2NyZWVuKSB7XG4gICAgLy8gICAgIEBpbmNsdWRlIGZsb2F0LXNwYW4oOCwnbGFzdCcsICRndXR0ZXI6IDEpO1xuICAgIC8vICAgfVxuICAgIC8vICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc3RhbmRhcmQtc2NyZWVuKSB7XG4gICAgLy8gICAgIEBpbmNsdWRlIGZsb2F0LXNwYW4oNywnbGFzdCcsICRndXR0ZXI6IDEpO1xuICAgIC8vICAgfVxuICAgIC8vIH1cblxuICAgIC8vIC52aWV3cy1maWVsZC1ib2R5IHA6bGFzdC1jaGlsZHtcbiAgICAvLyAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgLy8gfVxuICB9XG4gICYtLXZpZGVvc3tcbiAgICBtYXJnaW4tdG9wOiBtcygpO1xuICAgIC5maWVsZC1uYW1lLWZpZWxkLWxlY3R1cmUtdmlkZW97XG4gICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgIG1hcmdpbi1ib3R0b206IG1zKCk7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzbWFsbC1zY3JlZW4pIHtcbiAgICAgICAgLy8gd2lkdGg6IDM3LjAzNzA0JTtcbiAgICAgICAgd2lkdGg6NDguOTM2MTclO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAudmlld3MtZmllbGQtdGl0bGUsXG4gICAgLmZpZWxkLW5hbWUtZmllbGQtc3BlYWtlcntcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNtYWxsLXNjcmVlbikge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDQ4LjkzNjE3JTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IG1zKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnZpZXctZm9vdGVye1xuICAgIG1hcmdpbi10b3A6IG1zKC0xKTtcbiAgICAubW9yZS1saW5re1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGludCgkbGlnaHQtZ3JleSwgNzApO1xuICAgICAgcGFkZGluZzogbXMoLTMpIG1zKCk7XG4gICAgfVxuICB9XG59XG4iLCIvKiBvYmplY3RzL19ncmlkLWRpc3BsYXlzLnNjc3MgKi9cblxuLy8gZ3JpZCBkaXNwbGF5IHdpdGggb3Igd2l0aG91dCBpbWFnZXMuIHlvdSBjYW4gdHdlYWsgdGhlc2UsIGJ1dCBpZiB5b3Vcbi8vIGFyZSBkb2luZyBoZWF2eSBzdHlsaW5nLCBpdCdzIHN1Z2dlc3RlZCB5b3UgZW5oYW5jZSB0aGVzZSBpbiBhIHNlcGFyYXRlIHBhcnRpYWxcbi8vIHJlbWVtYmVyIHRvIHVzZSBtYXRjaEhlaWdodCBvbiB0aGUgLnZpZXdzLXJvdyBlbGVtZW50cyBpbiBqcy9zY3JpcHQuanNcblxuLmdyaWQtZGlzcGxheXtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFycm93LXNjcmVlbikge1xuICAgIC52aWV3cy1yb3d7XG4gICAgICBAaW5jbHVkZSBmbG9hdC1zcGFuKDYpO1xuICAgICAgJjpudGgtY2hpbGQoMm4rMil7XG4gICAgICAgIEBpbmNsdWRlIGZsb2F0LXNwYW4oNiwnbGFzdCcpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAvLyBubyBzaWRlYmFycyBBTkQgb25lIHNlY29uZCBzaWRlYmFyIChtYXkgbmVlZCB0byBzZXBhcmF0ZSlcbiAgLm5vLXNpZGViYXJzICYsXG4gIC5vbmUtc2lkZWJhci5zaWRlYmFyLXNlY29uZHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzdGFuZGFyZC1zY3JlZW4pIHtcbiAgICAgIC52aWV3cy1yb3d7XG4gICAgICAgIEBpbmNsdWRlIGZsb2F0LXNwYW4oNCk7XG4gICAgICAgICY6bnRoLWNoaWxkKDJuKzIpe1xuICAgICAgICAgIEBpbmNsdWRlIGZsb2F0LXNwYW4oNCk7XG4gICAgICAgIH1cbiAgICAgICAgJjpudGgtY2hpbGQoM24rMykge1xuICAgICAgICAgIEBpbmNsdWRlIGZsb2F0LXNwYW4oNCwnbGFzdCcpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gb25lIHNlY29uZCBzaWRlYmFyLlxuICAvLyAub25lLXNpZGViYXIuc2lkZWJhci1zZWNvbmQgJntcblxuICAvLyB9XG5cbiAgLy8gdHdvIHNpZGViYXJzXG4gIC8vIC50d28tc2lkZWJhcnMgJntcblxuICAvLyB9XG5cbiAgLy8gZ2VuZXJhdGVzIC5ncmlkLWRpc3BsYXktLWltYWdlc3t9LlxuICAvLyBBZGQgZ3JpZC1kaXNwbGF5IGFuZCBncmlkLWRpc3BhbHktLWltYWdlcyB0byB5b3VyIHZpZXdcbiAgLy8gJi0taW1hZ2Vze1xuXG4gIC8vIH1cbn1cbiIsIi8qIG9iamVjdHMvX2NvbnRlbnQtc3R5bGVzLnNjc3MgKi9cbi8vIGNvbnRhaW5zIHN0eWxlcyBmb3IgdGhlIGVkaXRvciBleHBlcmllbmNlLiBlZy4gZmxvYXQgaW1hZ2VzIGxlZnQgb3IgcmlnaHQsXG4vLyBoZWFkbGluZSBhbmQgaGlnaGxpZ2h0IHR5cG9ncmFwaHkuXG4vLyB0aGlzIGZpbGUgZ2V0cyBpbXBvcnRlZCBieSB3eXNpd3lnL3d5c2l3eWctZWRpdG9yLnNjc3MuXG5cbi5oZWFkbGluZS10eXBle1xuICBAaW5jbHVkZSBoZWFkbGluZS10eXBlO1xufVxuXG4uc21hbGwtdHlwZXtcbiAgZm9udC13ZWlnaHQ6ICRib2xkO1xuICBtYXJnaW4tYm90dG9tOiBtcygyKTtcbiAgZm9udC1zaXplOiBtcygtMSk7XG59XG5cbi5oaWdobGlnaHQtdHlwZXtcbiAgZm9udC13ZWlnaHQ6ICAkYm9sZDtcbiAgY29sb3I6ICRmb3Jlc3QtZ3JlZW47XG59XG5cbi5pbmxpbmUtaW1hZ2UtbGVmdCxcbi5pbmxpbmUtaW1hZ2UtcmlnaHQsXG4uaW5saW5lLWltYWdlLWNlbnRlcntcbiAgQGluY2x1ZGUgaW1hZ2Utc3R5bGU7XG59XG5cbi5pbmxpbmUtaW1hZ2UtbGVmdHtcbiAgQGluY2x1ZGUgaW1hZ2Utc3R5bGUtbGVmdDtcbn1cblxuLmlubGluZS1pbWFnZS1yaWdodHtcbiAgQGluY2x1ZGUgaW1hZ2Utc3R5bGUtcmlnaHQ7XG59XG5cbi5pbmxpbmUtaW1hZ2UtY2VudGVye1xuICBAaW5jbHVkZSBpbWFnZS1zdHlsZS1jZW50ZXI7XG59XG5cbi5oaWdobGlnaHQtYm94e1xuICBAaW5jbHVkZSBoaWdobGlnaHQtYm94O1xufVxuXG4uY29udGVudC1ib3h7XG4gIEBpbmNsdWRlIGNvbnRlbnQtYm94O1xufVxuXG4uaW5saW5lLWJ0bntcblxufVxuXG4uaW1hZ2UtY2FwdGlvbiAuaW5saW5lLWltYWdlLWxlZnR7XG4gIEBpbmNsdWRlIGltYWdlLXN0eWxlO1xuICBAaW5jbHVkZSBpbWFnZS1zdHlsZS1sZWZ0O1xuICBib3JkZXI6IDFweCBzb2xpZCByZWQ7XG59XG5cbi5pbWFnZS1jYXB0aW9uIC5pbmxpbmUtaW1hZ2UtcmlnaHR7XG4gIEBpbmNsdWRlIGltYWdlLXN0eWxlO1xuICBAaW5jbHVkZSBpbWFnZS1zdHlsZS1yaWdodDtcbiAgYm9yZGVyOiAxcHggc29saWQgcmVkO1xufSIsIi8qIG9iamVjdHMvX3ZlbmRvcnMuc2NzcyovXG4vLyBlY2hpZG5hIG92ZXJyaWRlcyBmb3IgdmVuZG9yIGxpYnJhcmllcyAoZWcuIHNsaWNrLCB0YWJsZXNhdylcbi8vIGZvbGxvdyBkaXJlY3RvcnkgZXhhbXBsZXMgYXMgYmVsb3dcbi8vIHVzZSBzYW1lIGZpbGUgbmFtZSBmb3IgcGFydGlhbHMgYXMgZXhpc2l0aW5nIHZlbmRvciBzdHlsZXNoZWV0IGZpbGUgbmFtZVxuXG5AaW1wb3J0ICd2ZW5kb3JzL2Ryb3BraWNrL2Ryb3BraWNrJztcbkBpbXBvcnQgJ3ZlbmRvcnMvZGVfbWVudV9kcm9wZG93bi9kZV9tZW51X2Ryb3Bkb3duJztcbi8vIEBpbXBvcnQgJ3ZlbmRvcnMvc2xpY2suanMvc2xpY2stdGhlbWUnO1xuLy8gQGltcG9ydCAndmVuZG9ycy9tYXRlcmlhbC1kZXNpZ24taWNvbnMvbWF0ZXJpYWwtaWNvbnMnO1xuXG5cblxuIiwiLyogdmVuZG9ycy9kcm9wa2ljay9fZHJvcGtpY2suc2NzcyAqL1xuLy8gZWNoaWRuYSBvdmVycmlkZXMgZm9yIGRyb3BraWNrLiBAaW1wb3J0IHdoZXJlIG5lY2Vzc3NhcnlcblxuLy8gJWRyb3BraWNrLWN1c3RvbXtcblxuICAvLyAuY29udGFpbmVyLWlubGluZSBkaXZ7XG4gICAgLy8gZGlzcGxheTogYmxvY2s7XG4gICAgLy8gYm9yZGVyOiAxcHggc29saWQgcmVkO1xuICAvLyB9XG5cbiAgLmRrLXNlbGVjdHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4vLyAgIC5kay1zZWxlY3RlZDpiZWZvcmUsIC5kay1zZWxlY3RlZDphZnRlcntcbi8vICAgICByaWdodDogIG1zKC0yKTtcbi8vICAgfVxuXG5cbiAgLmRrLXNlbGVjdGVke1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGxpZ2h0LWdyZXk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgLy8gZm9udC1zaXplOiBtcygxKTtcbiAgICAvLyBwYWRkaW5nLWJvdHRvbTogbXMoLTYpO1xuICAgIC8vIHBhZGRpbmctbGVmdDogMDtcbiAgICAvLyAmOmZvY3Vze1xuICAgICAgLy8gY29sb3I6ICRkYXJ0bW91dGgtZ3JlZW47XG4gICAgLy8gfVxuICB9XG5cbiAgLmRrLXNlbGVjdC1vcHRpb25ze1xuICAgIEBpbmNsdWRlIHJlc2V0O1xuICAgIEBpbmNsdWRlIG5vLWJ1bGxldHM7XG4gICAgbWF4LWhlaWdodDogbXMoMTIpO1xuICB9XG5cbiAgLmRrLXNlbGVjdGVkOmJlZm9yZSB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogJG5ldXRyYWwtZ3JleTtcbiAgfVxuXG4gIC5kay1zZWxlY3RlZDphZnRlciB7XG4gICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIH1cblxuICAvLyAuZGstc2VsZWN0LW9wZW4tdXAgLmRrLXNlbGVjdGVkIHtcbiAgLy8gICBib3JkZXItY29sb3I6IGdyZWVuO1xuICAvLyB9XG5cbiAgLy8gLmRrLXNlbGVjdC1vcGVuLWRvd24gLmRrLXNlbGVjdGVkIHtcbiAgLy8gICBib3JkZXItY29sb3I6IG9yYW5nZTtcbiAgLy8gfVxuXG4gIC5kay1zZWxlY3Qtb3Blbi11cCAuZGstc2VsZWN0ZWQ6YmVmb3JlLCAuZGstc2VsZWN0LW9wZW4tZG93biAuZGstc2VsZWN0ZWQ6YmVmb3JlIHtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkbmV1dHJhbC1ncmV5O1xuICB9XG5cbi8vIC5kay1zZWxlY3Qtb3Blbi11cCAuZGstc2VsZWN0ZWQ6YWZ0ZXIsIC5kay1zZWxlY3Qtb3Blbi1kb3duIC5kay1zZWxlY3RlZDphZnRlciB7XG4vLyAgIGJvcmRlci1sZWZ0LWNvbG9yOiAkbGlnaHQtZ3JleTtcbi8vIH1cblxuICAuZGstc2VsZWN0LW9wZW4tdXAgLmRrLXNlbGVjdC1vcHRpb25zLCAuZGstc2VsZWN0LW9wZW4tZG93biAuZGstc2VsZWN0LW9wdGlvbnMsIC5kay1zZWxlY3QtbXVsdGk6Zm9jdXMgLmRrLXNlbGVjdC1vcHRpb25zIHtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogIDA7XG4gICAgQGluY2x1ZGUgei1kZXB0aC0zO1xuICB9XG5cbiAgLmRrLXNlbGVjdGVkOmhvdmVyLFxuICAgLmRrLXNlbGVjdGVkOmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6ICRuZXV0cmFsLWdyZXk7XG4gIH1cblxuICAuZGstc2VsZWN0ZWQ6aG92ZXI6YmVmb3JlLCAuZGstc2VsZWN0ZWQ6Zm9jdXM6YmVmb3JlIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAkbmV1dHJhbC1ncmV5O1xuICB9XG5cbiAgLy8gLmRrLXNlbGVjdGVkOmhvdmVyOmFmdGVyLCAuZGstc2VsZWN0ZWQ6Zm9jdXM6YWZ0ZXIge1xuICAgICAgLy8gYm9yZGVyLWxlZnQtY29sb3I6ICRsaWdodC1icm93bjtcbiAgLy8gfVxuXG4gIC5kay1zZWxlY3Qtb3B0aW9ucyAuZGstb3B0aW9uIHtcbiAgICBAaW5jbHVkZSByZXNldDtcbiAgICBmb250LXNpemU6IG1zKC0xKTtcbiAgICBwYWRkaW5nOiBtcygtMykgbXMoLTEpO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zcyBlYXNlLW91dDtcbi8vICAgICBAaW5jbHVkZSBhZGp1c3QtZm9udC1zaXplLXRvKG1zKC0wLjI1KSk7XG4vLyAgICAgY29sb3I6ICB3aGl0ZTtcbi8vICAgICBwYWRkaW5nOiBtcygtMykgbXMoLjUpO1xuLy8gICAgIGZvbnQtd2VpZ2h0OiAkYm9sZDtcbi8vICAgICBib3JkZXItYm90dG9tOiAgMXB4IHNvbGlkIHRpbnQoJGRhcnRtb3V0aC1ncmVlbiwyNSUpO1xuICB9XG5cbiAgLmRrLXNlbGVjdC1vcHRpb25zIC5kay1vcHRpb24tc2VsZWN0ZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRuZXV0cmFsLWdyZXk7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIC8vIHBhZGRpbmctdG9wOiBtcygtNik7XG4gICAgLy8gcGFkZGluZy1ib3R0b206IG1zKC02KTtcbiAgfVxuXG4gIC5kay1zZWxlY3Qtb3B0aW9ucyAuZGstb3B0aW9uLWhpZ2hsaWdodCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG5ldXRyYWwtZ3JleTtcbiAgICAvLyBjb2xvcjogJGRhcnRtb3V0aC1ncmVlbjtcbiAgfVxuXG4gIC5kay1zZWxlY3Qtb3B0aW9ucyAuZGstb3B0aW9uLXNlbGVjdGVkLmRrLW9wdGlvbi1oaWdobGlnaHR7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGRhcmstZ3JleTtcbiAgICAvLyBjb2xvcjogJGxpZ2h0LWdyZXk7XG4gIH1cbi8vIH1cbiIsIi8qIHZlbmRvcnMvZGVfbWVudV9kcm9wZG93bi9fZGVfbWVudV9kcm9wZG93bi5zY3NzICovXG4vLyBzZXQgbmV3IHN0eWxlcyBmb3IgZWNoaWRuYSBkcm9wZG93biBtZW51XG4uZGUtZHJvcGRvd24ubW9kYWwgbGkgc3Bhbi50b3VjaC1idXR0b246bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbiNibG9jay1tZW51LWJsb2NrLTEgLm1lbnUge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5kZS1kcm9wZG93biB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4jYmxvY2stbWVudS1ibG9jay0xIC5tZW51IHVsIHtcbiAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHotaW5kZXg6IDk5OTtcbiAgd2lkdGg6IDIwMHB4O1xuICB0b3A6IDEyMCU7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hcnJvdy1zY3JlZW4pIHtcbiAgICB3aWR0aDogMjUwcHg7XG4gICAgdG9wOiAxMDAlO1xuICB9XG4gIGxpe1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxufVxuXG4uZGUtZHJvcGRvd24gdWwgdWwge1xuICBsZWZ0OiAyMDBweDtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkd2VpcmQtc2NyZWVuKSB7XG4gICAgbGVmdDogMjUwcHg7XG4gICAgdG9wOiAwO1xuICB9XG59XG5cblxuLmRlLWRyb3Bkb3duIGxpLmxhc3QgdWwge1xuICByaWdodDogMDtcbn1cblxuLmRlLWRyb3Bkb3duIGxpOm50aC1jaGlsZCg0biszKSB1bHtcbiAgcmlnaHQ6IDA7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hcnJvdy1zY3JlZW4pIHtcbiAgICBsZWZ0OiAwO1xuICB9XG59XG5cbi50b3VjaC1idXR0b257XG4gIC8vIGRpc3BsYXk6IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgJjpob3ZlcntcbiAgICAvLyBAaW5jbHVkZSBicmVha3BvaW50KCR3ZWlyZC1zY3JlZW4pIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAvLyB9XG4gIH1cbn1cbiIsIi8qIG9iamVjdHMvX2JveGVzLnNjc3MgKi9cblxuLmJveGVze1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0aW50KCRsaWdodC1ncmV5LCA2MCUpO1xuICBwYWRkaW5nOiBtcygyKTtcbiAgbWFyZ2luLWJvdHRvbTogbXMoMSk7XG4gIGgye1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRkYXJ0bW91dGgtZ3JlZW47XG4gICAgZm9udC1zaXplOiBtcygpO1xuICAgIGNvbG9yOiAkZGFyay1ncmV5O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbGluZS1oZWlnaHQ6IG1zKC0yKTtcbiAgICBtYXJnaW4tYm90dG9tOiBtcygyKTtcbiAgICBzcGFue1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGludCgkbGlnaHQtZ3JleSwgNjAlKTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IG1zKC0zKTtcbiAgICAgIG1hcmdpbi1yaWdodDogLTRweDtcbiAgICAgICYud29yZDF7XG4gICAgICAgIHBhZGRpbmctbGVmdDogbXMoLTMpO1xuICAgICAgICBtYXJnaW4tbGVmdDogbXMoLTEpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAuY29udGVudHtcbiAgICBoMntcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICBtYXJnaW4tYm90dG9tOiBtcygpO1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFycm93LXNjcmVlbikge1xuICAgICAgICBmb250LXNpemU6IG1zKDEpO1xuICAgICAgfVxuICAgICAgc3BhbntcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIi8qIG9iamVjdHMvX2RlLWdhbGxlcnkuc2NzcyAqL1xuXG4jY29sb3Jib3gge1xuICAjY2JveExvYWRlZENvbnRlbnQge1xuICAgIG1hcmdpbi1ib3R0b206IDc1cHg7XG4gIH1cbn1cblxuLy8gLmRlLWdhbGxlcnktd3JhcHBlcixcbi5ibG9jay1maWVsZGJsb2NrLW5vZGUtYmFzaWMtcGFnZS1kZWZhdWx0LWZpZWxkLXBob3RvLWdhbGxlcnksXG4uYmxvY2stZmllbGRibG9jay1ub2RlLWV2ZW50cy1kZWZhdWx0LWZpZWxkLXBob3RvLWdhbGxlcnksXG4uYmxvY2stZmllbGRibG9jay1ub2RlLW5ld3MtZGVmYXVsdC1maWVsZC1waG90by1nYWxsZXJ5LFxuLmZpZWxkLW5hbWUtZmllbGQtcGhvdG8tZ2FsbGVyeSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQtY29sb3I6IHRpbnQoJGxpZ2h0LWdyZXksIDYwJSk7XG4gIHBhZGRpbmc6IG1zKDIpO1xuICBtYXJnaW4tYm90dG9tOiBtcygpO1xuICBoMiB7XG4gICAgQGV4dGVuZCAuaGVhZGluZ3M7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGVtZXJhbGQtZ3JlZW4gIWltcG9ydGFudDtcbiAgfVxuICAuZGUtZ2FsbGVyeSB7XG4gICAgdWwge1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICBsaSB7XG5cbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzbWFsbC1zY3JlZW4pIHtcbiAgICAgICAgICBAaW5jbHVkZSBmbG9hdC1zcGFuKDIuNCk7XG4gICAgICAgICAgbWFyZ2luLXRvcDogbXMoKTtcbiAgICAgICAgfVxuICAgICAgICAmOm50aC1jaGlsZCg1bis1KSB7XG4gICAgICAgICAgQGluY2x1ZGUgZmxvYXQtc3BhbigyLjQsIGxhc3QpO1xuICAgICAgICB9XG4gICAgICAgIGltZyB7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC5mbGV4c2xpZGVyIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICBtYXJnaW4tdG9wOiBtcygxKTtcbiAgICAgIC5mbGV4LWRpcmVjdGlvbi1uYXYge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAuZmllbGQtaXRlbXMge1xuICAgIG1hcmdpbjogbXMoMikgMDtcbiAgICAuZmllbGQtaXRlbSB7XG4gICAgICBAaW5jbHVkZSBmbG9hdC1zcGFuKDMpO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICY6bnRoLWNoaWxkKDRuKzQpIHtcbiAgICAgICAgQGluY2x1ZGUgZmxvYXQtc3BhbigzLCBsYXN0KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8qIG9iamVjdHMvX2ZpbGUtYXR0YWNobWVudHMuc2NzcyAqL1xuXG4uZmllbGQtbmFtZS1maWVsZC1maWxlLWF0dGFjaG1lbnRzLFxuLmZpZWxkLW5hbWUtZmllbGQtZmlsZXtcbiAgYmFja2dyb3VuZC1jb2xvcjogdGludCgkbGlnaHQtZ3JleSw2MCUpO1xuICBwYWRkaW5nOiBtcygyKSBtcygyKSBtcygpIG1zKDIpO1xuICBtYXJnaW46IG1zKDIpIDA7XG4gIC5maWVsZHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG4gIC5maWVsZC1pdGVtc3tcbiAgICAuZmllbGQtaXRlbXtcbiAgICAgIGJvcmRlci1ib3R0b206IDNweCBzb2xpZCAkbGlnaHQtZ3JleTtcbiAgICAgICY6bGFzdC1jaGlsZHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICB9XG4gICAgICAuZmllbGQtdHlwZS10ZXh0e1xuICAgICAgICAuZmllbGQtaXRlbXN7XG4gICAgICAgICAgLmZpZWxkLWl0ZW17XG4gICAgICAgICAgICBtYXJnaW46IG1zKC02KSAwO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbXMoMSk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogJGJvbGQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICAuZmllbGQtaXRlbXtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogM3B4IHNvbGlkICRsaWdodC1ncmV5O1xuICAgICAgfVxuXG4gICAgICAmOmxhc3QtY2hpbGR7XG4gICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICB9XG4gICAgICAuZmlsZXtcbiAgICAgICAgaW1ne1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGF7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgY29sb3I6ICRkYXJ0bW91dGgtZ3JlZW47XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBtcygtNCkgbXMoLTMpO1xuICAgICAgICBsaW5lLWhlaWdodDogMS41O1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIC4zcyBlYXNlLW91dDtcbiAgICAgICAgJjo6YmVmb3Jle1xuICAgICAgICAgIEBpbmNsdWRlIG1hdGVyaWFsLWljb25zO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICAgICAgICAgIGNvbnRlbnQ6XCJhdHRhY2htZW50XCI7XG4gICAgICAgICAgY29sb3I6ICRkYXJ0bW91dGgtZ3JlZW47XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtcygtNik7XG5cbiAgICAgICAgfVxuICAgICAgICAmOmhvdmVye1xuICAgICAgICAgIC8vIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRpbnQoJGxpZ2h0LWdyZXksMzAlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIi8vc2VjdGlvbnMvb2JqZWN0cy9yZWxhdGVkLWNvbnRlbnQuc2Nzc1xuLy9TbGlkZXIgY29udGVudCBkaXNwbGF5ZWQgb24gRXZlbnRzIGFuZCBOZXdzIG5vZGVzLlxuXG4ucmVsYXRlZC1jb250ZW50e1xuICBib3JkZXItdG9wOiA1cHggc29saWQgJGxpZ2h0LWdyZXk7XG4gIHBhZGRpbmctdG9wOiBtcygyKTtcbiAgdWx7XG4gICAgLnNsaWNrLWxpc3Qge1xuICAgICAgbWFyZ2luOiAwIG1zKDUpO1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFycm93LXNjcmVlbikge1xuICAgICAgICBtYXJnaW46IDAgbXMoMyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnNsaWNrLWFycm93e1xuICAgICAgQGluY2x1ZGUgc3F1aXNoLXRleHQ7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgbWFyZ2luLXRvcDogLTI0cHg7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICBsaW5lLWhlaWdodDogMjRweDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgYm9yZGVyOiAzcHggc29saWQgc2hhZGUoJGxpZ2h0LWdyZXksIDMwJSk7XG4gICAgICB0cmFuc2l0aW9uOiBib3JkZXIgMC4zcyBlYXNlLW91dCwgY29sb3IgMC4zcyBlYXNlLW91dDtcbiAgICAgICY6aG92ZXJ7XG4gICAgICAgIGJvcmRlcjogM3B4IHNvbGlkICRsaWdodC1ncmV5O1xuICAgICAgICAmOmJlZm9yZXtcbiAgICAgICAgICBjb2xvcjogJGxpZ2h0LWdyZXk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICY6YmVmb3Jle1xuICAgICAgICBAaW5jbHVkZSBtYXRlcmlhbC1pY29ucztcbiAgICAgICAgY29sb3I6ICRuZXV0cmFsLWdyZXk7XG4gICAgICB9XG4gICAgfVxuICAgIC5zbGljay1wcmV2IHtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICAmOmJlZm9yZXtcbiAgICAgICAgY29udGVudDona2V5Ym9hcmRfYXJyb3dfbGVmdCc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnNsaWNrLW5leHQge1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICAmOmJlZm9yZXtcbiAgICAgICAgY29udGVudDona2V5Ym9hcmRfYXJyb3dfcmlnaHQnO1xuICAgICAgfVxuICAgIH1cblxuICAgIC52aWV3cy1yb3cge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGludCgkbGlnaHQtZ3JleSwgNjAlKTtcbiAgICAgIHBhZGRpbmc6IG1zKDEpO1xuICAgICAgbWFyZ2luLWJvdHRvbTogbXMoKTtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hcnJvdy1zY3JlZW4pIHtcbiAgICAgICAgbWFyZ2luOiAwIG1zKC0xKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgcGFkZGluZzogbXMoMik7XG4gICAgICB9XG5cbiAgICAgIGF7XG4gICAgICAgIGNvbG9yOiAkZGFyay1ncmV5O1xuICAgICAgICAmOmhvdmVye1xuICAgICAgICAgIGNvbG9yOiAkbmV1dHJhbC1ncmV5O1xuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC52aWV3cy1yb3ctZXZlbntcbiAgICAgIC5oZWFkaW5nc3tcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGVtZXJhbGQtZ3JlZW47XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwiLyogX2NvbXBvbmVudHMuc2NzcyAqL1xuLy8gQGltcG9ydHMgYWxsIFNBU1MgcGFydGlhbHMgZnJvbSB0aGUgL2NvbXBvbmVudHMgZm9sZGVyLlxuLy8gY29udGFpbnMgc3R5bGVzIGZvciBjb21wb25lbnRzIGNvbnN0cnVjdGVkIGZyb20gb2JqZWN0cyBhbmRcbi8vIHRoZWlyIGV4dGVuc2lvbnMsIG9yIGRldGFpbGVkIHBhZ2UgZGVzaWduLiBlZy4gYSBzaWRlYmFyIGNhbGxcbi8vIHRvIGFjdGlvbiB0aGF0IGlzIHN0eWxlZCBzcGVjaWZpY2FsbHkgZm9yIGV2ZW50c1xuXG4vLyBBZGQgb3IgcmVtb3ZlIHBhcnRpYWxzIGFzIG5lY2Vzc2FzYXJ5LiBJZiBhIHBhcnRpY3VsYXIgc2V0dXAgaXMgdXNpbmdcbi8vIHRoZSBjb21wb25lbnRzL2ZvcnVtcywgcmVtb3ZlIGNvbW1lbnQgQGltcG9ydCBjb21wb25lbnRzL2ZvcnVtc1xuLy8gZnJvbSB0aGlzIGZpbGVcblxuLy8gSWYgYWRkaW5nIG5ldyBmdW5jdGlvbmxhaXR5IHRoYXQgaXMgc3BlY2lmaWMgdG8gdGhlIHByb2plY3QsIGNyZWF0ZSBhIG5ld1xuLy8gU0FTUyBwYXJ0aWFsIHdpdGggdGhlIGFwcHJvcHJpYXRlIG5hbWUgYW5kIHNhdmUgaXQgaW4gdGhlIC9jb21wb25lbnRzIGZvbGRlclxuXG5AaW1wb3J0ICdjb21wb25lbnRzL2Jsb2Nrcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2JyYW5kJztcbi8vIEBpbXBvcnQgJ2NvbXBvbmVudHMvY29tbWVudHMnO1xuLy8gQGltcG9ydCAnY29tcG9uZW50cy9mb3J1bXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9zZWFyY2gnO1xuQGltcG9ydCAnY29tcG9uZW50cy91c2VyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvd2ViZm9ybXMnO1xuXG4iLCIvKiBjb21wb25lbnRzL19ibG9ja3Muc2NzcyBmaWxlICovXG4vLyBtaXNjZWxsYW5lb3VzIGJsb2NrcyB0aGF0IGFyZSBub3QgdGllZCB0byBhIHBhcnRpY3VsYXIgcGFnZSBvciBzZWN0aW9uXG5cbi8vIGdlbmVyYWwgc3R5bGVzIChqdXN0IHRvIGNsZWFuIHRoaW5ncyB1cCBhIGJpdClcblxuLmJsb2NrLXZpZXdzLWV2ZW50cy1ibG9jay01e1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAuc2VjdGlvbi10aXRsZXtcbiAgICBAZXh0ZW5kIC5sYXlvdXQtY29udGFpbmVyO1xuICAgIHBhZGRpbmc6IDAgbXMoKTtcbiAgICBtYXJnaW4tYm90dG9tOiBtcygtNCk7XG4gICAgZm9udC1zaXplOiBtcygyKTtcbiAgICBmb250LXdlaWdodDogJGJvbGQ7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFycm93LXNjcmVlbikge1xuICAgICAgZm9udC1zaXplOiBtcyg0KTtcbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkd2VpcmQtc2NyZWVuKSB7XG4gICAgICBwYWRkaW5nOiAwIG1zKDEpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICAgIHBhZGRpbmc6IDAgbXMoLTUpO1xuICAgIH1cbiAgfVxuICAuYXJyb3ctbGVmdHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAwO1xuICAgIHJpZ2h0OiA0NiU7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlci1yaWdodDogMTVweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItbGVmdDogMTVweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItYm90dG9tOiAxNXB4IHNvbGlkIHRpbnQoJGxpZ2h0LWdyZXksIDYwJSk7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCR3ZWlyZC1zY3JlZW4pIHtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgdG9wOiA0NSU7XG4gICAgICBib3JkZXItdG9wOiAxNXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLWJvdHRvbTogMTVweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci1yaWdodDogMTVweCBzb2xpZCB0aW50KCRsaWdodC1ncmV5LCA2MCUpO1xuICAgIH1cbiAgfVxufVxuXG4uYmxvY2stYmxvY2stNjF7XG4gIC5zZWN0aW9uLXRpdGxle1xuICAgIGZvbnQtd2VpZ2h0OiAkYm9sZDtcbiAgICBmb250LXNpemU6IG1zKDIpO1xuICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYXJyb3ctc2NyZWVuKSB7XG4gICAgICBmb250LXNpemU6IG1zKDQpO1xuICAgIH1cbiAgfVxufVxuXG5AaW1wb3J0ICdjb21wb25lbnRzL2Jsb2Nrcy9ibG9jay1iZWFucyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Jsb2Nrcy9ibG9jay1kZWZhdWx0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYmxvY2tzL2Jsb2NrLWFnZ3JlZ2F0b3ItY2F0ZWdvcnktMSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Jsb2Nrcy9ibG9jay12aWV3cy1ob21lcGFnZS1iYW5uZXItYmxvY2snO1xuQGltcG9ydCAnY29tcG9uZW50cy9ibG9ja3MvYmxvY2stdmlld3MtZXZlbnRzLWJsb2NrLTInO1xuQGltcG9ydCAnY29tcG9uZW50cy9ibG9ja3MvYmxvY2stdmlld3MtZXZlbnRzLWJsb2NrLTMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9ibG9ja3MvYmxvY2stYWRkaXRpb25hbC1ldmVudHMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9ibG9ja3MvYmxvY2stY29sbGVnZS1jdGEnO1xuQGltcG9ydCAnY29tcG9uZW50cy9ibG9ja3MvYmxvY2stY2xhc3MtY3RhJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYmxvY2tzL2Jsb2NrLWZlYXR1cmVkLW5ld3MnO1xuQGltcG9ydCAnY29tcG9uZW50cy9ibG9ja3MvYmxvY2stbmV3cyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Jsb2Nrcy9ibG9jay1zb2NpYWxpemUnO1xuQGltcG9ydCAnY29tcG9uZW50cy9ibG9ja3MvYmxvY2stc29jaWFsLWxpbmtzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYmxvY2tzL2Jsb2NrLWZvb3Rlci1jdGFzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYmxvY2tzL2Jsb2NrLWluZm8tbGlua3MnO1xuQGltcG9ydCAnY29tcG9uZW50cy9ibG9ja3MvYmxvY2stYWx1bW5pLWxpbmtzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYmxvY2tzL2Jsb2NrLWZvb3Rlci1sb2dvJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYmxvY2tzL2Jsb2NrLXN1Yi1uYXYnO1xuQGltcG9ydCAnY29tcG9uZW50cy9ibG9ja3MvYmxvY2stdmlldy1wcm9ncmFtJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYmxvY2tzL2Jsb2NrLWJhc2ljLXBhZ2UtaGVhZGVyLWltYWdlJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYmxvY2tzL2Jsb2NrLWJlYW4tYWx1bW5pLXRyYXZlbC1oZWFkZXInO1xuQGltcG9ydCAnY29tcG9uZW50cy9ibG9ja3MvYmxvY2stZXZlbnQtbGluayc7XG4iLCIvKiBjb21wb25lbnRzL2Jsb2Nrcy9fYmxvY2stYmVhbnMuc2NzcyAqL1xuXG4vLyAuYmVhbi1ibG9ja3tcblxuLy8gfVxuXG4uYmVhbi1jdGF7XG4gIG1hcmdpbi1ib3R0b206IG1zKCk7XG4gIGJhY2tncm91bmQtY29sb3I6IHRpbnQoJGxpZ2h0LWdyZXksIDYwJSk7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHdlaXJkLXNjcmVlbikge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbiAgaDJ7XG4gICAgY29sb3I6ICRkYXJrLWdyZXk7XG4gIH1cbiAgLmZpZWxkLW5hbWUtZmllbGQtaW1hZ2V7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuICAuZmllbGQtbmFtZS1maWVsZC1ib2R5e1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgcGFkZGluZzogbXMoMikgbXMoMikgbXMoKSBtcygyKTtcbiAgICBwe1xuICAgICAgZm9udC13ZWlnaHQ6ICRsaWdodDtcbiAgICB9XG4gICAgdWx7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgcGFkZGluZy1sZWZ0OiBtcygxKTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkbGlnaHQ7XG4gICAgfVxuICB9XG5cbiAgLmZpZWxkLW5hbWUtZmllbGQtY2FsbC10by1hY3Rpb257XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBwYWRkaW5nOiAwIG1zKDIpIG1zKDIpIG1zKDIpO1xuICAgIGF7XG4gICAgICBAaW5jbHVkZSBidG47XG4gICAgICBAaW5jbHVkZSBidG4tc2Vjb25kYXJ5O1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRlbWVyYWxkLWdyZWVuO1xuICAgIH1cbiAgfVxuXG4gIGltZ3tcbiAgICBib3JkZXItYm90dG9tOiA1cHggc29saWQgJGVtZXJhbGQtZ3JlZW47XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cblxuLnJlZ2lvbi1zaWRlYmFyLXNlY29uZCAuYmxvY2stYmVhbi1zaWRlYmFyLWJsb2Nre1xuICBoMntcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZW1lcmFsZC1ncmVlbjtcbiAgfVxuICAuZmllbGQtbmFtZS1maWVsZC1jYWxsLXRvLWFjdGlvbntcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIGF7XG4gICAgICBAaW5jbHVkZSBidG47XG4gICAgICBAaW5jbHVkZSBidG4tc2Vjb25kYXJ5O1xuICAgICAgLy8gbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIC8vIGJvcmRlcjogMXB4IHNvbGlkICRlbWVyYWxkLWdyZWVuO1xuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIi8qIGNvbXBvbmVudHMvYmxvY2tzL19ibG9jay1kZWZhdWx0LnNjc3MgKi9cbi8vIGRlZmF1bHQgc3R5bGVzIGZvciBzZWNvbmRhcnkgc2lkZWJhciBibG9ja3MsIGVnIGdyb3VwcyBvZiBibG9ja3Mgd2l0aFxuLy8gc2ltaWxhciBib3ggc3R5bGVzLCBoZWFkaW5nIHN0eWxlc1xuXG4ucmVnaW9uLXNpZGViYXItc2Vjb25kIC5ibG9ja3tcbiAgQGV4dGVuZCAuYm94ZXM7XG4gIG1hcmdpbi1ib3R0b206IG1zKDIpO1xuICAmOmxhc3QtY2hpbGR7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuICBoMntcbiAgICBmb250LXNpemU6IG1zKCk7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWVkaXVtLXNjcmVlbikge1xuICAgICAgZm9udC1zaXplOiBtcygtMSk7XG4gICAgfVxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHN0YW5kYXJkLXNjcmVlbikge1xuICAgICAgZm9udC1zaXplOiBtcygpO1xuICAgIH1cbiAgfVxuXG4gIHVse1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIGxpe1xuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkbm9ybWFsO1xuICAgICAgJi5sYXN0e1xuICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgIH1cbiAgICAgIGF7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgY29sb3I6ICRkYXJ0bW91dGgtZ3JlZW47XG4gICAgICAgICY6aG92ZXJ7XG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLnJlZ2lvbi1mb290ZXIgLmJsb2Nre1xuICBAaW5jbHVkZSBmbG9hdC1zcGFuKDQpO1xuICBtYXJnaW4tYm90dG9tOiBtcygxKTtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkd2VpcmQtc2NyZWVuKSB7XG4gICAgQGluY2x1ZGUgZmxvYXQtc3BhbigyKTtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi5yZWdpb24tZXZlbnRzLXByaW1hcnkgLmJsb2NrLFxuLnJlZ2lvbi1ldmVudHMtc2Vjb25kYXJ5IC5ibG9ja3tcbiAgaDJ7XG4gICAgQGV4dGVuZCAuaGVhZGluZ3M7XG4gICAgbWFyZ2luLWJvdHRvbTogbXMoMik7XG4gIH1cbn1cblxuLnJlZ2lvbi1zb2NpYWwtbWVkaWEgLmJsb2Nre1xuICAgQGV4dGVuZCAuYm94ZXM7XG4gICBwYWRkaW5nOiAwO1xuICBoMntcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi5mcm9udCAucmVnaW9uLW1haW4tc3VmZml4IC5ibG9ja3tcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFycm93LXNjcmVlbikge1xuICAgIEBpbmNsdWRlIGZsb2F0LXNwYW4oNik7XG4gICAgbWFyZ2luLWJvdHRvbTogbXMoKTtcbiAgICAmOm50aC1jaGlsZCgzbisyKXtcbiAgICAgIEBpbmNsdWRlIGZsb2F0LXNwYW4oNixsYXN0KTtcbiAgICB9XG4gIH1cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWVkaXVtLXNjcmVlbikge1xuICAgIEBpbmNsdWRlIGZsb2F0LXNwYW4oNCk7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAmOm50aC1jaGlsZCgzbisyKXtcbiAgICAgIEBpbmNsdWRlIGZsb2F0LXNwYW4oNCk7XG4gICAgfVxuICB9XG4gICY6bGFzdC1jaGlsZHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYXJyb3ctc2NyZWVuKSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgICBAaW5jbHVkZSBmbG9hdC1zcGFuKDQsbGFzdCk7XG4gICAgfVxuICB9XG59XG4iLCIvL2NvbXBvbmVudHMvYmxvY2tzL19ibG9jay1hZ2dyZWdhdG9yLWNhdGVnb3J5LTEuc2Nzc1xuXG4ucmVnaW9uLXNpZGViYXItc2Vjb25kIC5ibG9jay1hZ2dyZWdhdG9yLWNhdGVnb3J5LTF7XG4gIC5jb250ZW50e1xuICAgIHVse1xuICAgICAgbGl7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkbGlnaHQtZ3JleTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICY6bGFzdC1jaGlsZHtcbiAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgICAgIGF7XG4gICAgICAgICAgcGFkZGluZzogbXMoLTIpO1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zcyBlYXNlLW91dDtcbiAgICAgICAgICBjb2xvcjogJGRhcmstZ3JleTtcbiAgICAgICAgICAvLyBmb250LXdlaWdodDogJGJvbGQ7XG4gICAgICAgICAgJjpob3ZlcntcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRpbnQoJGxpZ2h0LWdyZXksMzAlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLm1vcmUtbGlua3tcbiAgICAvLyBib3JkZXItdG9wOiAycHggc29saWQgc2hhZGUoJGxpZ2h0LWdyZXksIDIwJSk7XG4gICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICRlbWVyYWxkLWdyZWVuO1xuICAgIHBhZGRpbmctdG9wOiBtcygpO1xuICB9XG59XG5cbi5hZ2dyZWdhdG9ye1xuICAuZmVlZC1pdGVte1xuICAgIEBpbmNsdWRlIGRpdmlkZXItbGluZTtcbiAgICAmOm50aC1jaGlsZCgyMCl7XG4gICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gICAgLy8gLmZlZWQtaXRlbS1tZXRhe1xuICAgIC8vICAgYXtcbiAgICAvLyAgICAgJjo6YmVmb3Jle1xuICAgIC8vICAgICAgIEBpbmNsdWRlIG1hdGVyaWFsLWljb25zO1xuICAgIC8vICAgICAgIGNvbnRlbnQ6J3Jzc19mZWVkJztcbiAgICAvLyAgICAgfVxuICAgIC8vICAgfVxuICAgIC8vIH1cbiAgICAuZmVlZC1pdGVtLWRhdGV7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICY6OmJlZm9yZXtcbiAgICAgICAgQGluY2x1ZGUgbWF0ZXJpYWwtaWNvbnM7XG4gICAgICAgIEBpbmNsdWRlIG1kLTE4O1xuICAgICAgICBjb250ZW50OidhY2Nlc3NfdGltZSc7XG4gICAgICAgIG1hcmdpbi1yaWdodDogbXMoLTgpO1xuICAgICAgICBjb2xvcjogJGJlaWdlO1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYXJyb3ctc2NyZWVuKSB7XG4gICAgICAgICAgQGluY2x1ZGUgbWQtMjQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAuZmVlZC1pdGVtLWJvZHl7XG4gICAgICBtYXJnaW46IG1zKCkgMDtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkbGlnaHQ7XG4gICAgfVxuICB9XG59IiwiLmJsb2NrLXZpZXdzLWhvbWVwYWdlLWJhbm5lci1ibG9ja3tcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tYm90dG9tOiBtcygxKTtcbiAgLmhvbWVwYWdlLWJhbm5lcntcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzdGFuZGFyZC1zY3JlZW4pIHtcbiAgICAgIG1pbi1oZWlnaHQ6IDM1MHB4O1xuICAgIH1cbiAgfVxuICAuaG9tZXBhZ2UtYmFubmVyX19pbWFnZXtcbiAgICBsaW5lLWhlaWdodDogMDtcbiAgICBpbWd7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cblxuICAuaG9tZXBhZ2UtYmFubmVyX19jYXB0aW9ue1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IG1zKDEpO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCA1MSwgMzAsIDAuOCk7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFycm93LXNjcmVlbikge1xuICAgICAgcGFkZGluZzogbXMoMik7XG4gICAgfVxuICAgIC5jYXB0aW9uX190ZXh0e1xuICAgICAgZm9udC1zaXplOiBtcygxKTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkYm9sZDtcbiAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIGxpbmUtaGVpZ2h0OiBtcygxKTtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hcnJvdy1zY3JlZW4pIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWVkaXVtLXNjcmVlbikge1xuICAgICAgICBmb250LXNpemU6IG1zKDIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy9jb21wb25lbnRzL2Jsb2Nrcy9fYmxvY2stdmlld3MtZXZlbnRzLWJsb2NrLTIuc2Nzc1xuXG4ucmVnaW9uLWV2ZW50cy1zZWNvbmRhcnkgLmJsb2NrLXZpZXdzLWV2ZW50cy1ibG9jay0ye1xuICBAaW5jbHVkZSBicmVha3BvaW50KCR3ZWlyZC1zY3JlZW4pIHtcbiAgICBtYXgtd2lkdGg6IDQ5NnB4O1xuICB9XG4gIC52aWV3cy1yb3d7XG4gICAgYm9yZGVyLWJvdHRvbTogM3B4IHNvbGlkIHNoYWRlKCRsaWdodC1ncmV5LDEwJSk7XG4gICAgcGFkZGluZy1ib3R0b206IG1zKCk7XG4gICAgbWFyZ2luLWJvdHRvbTogbXMoKTtcbiAgICAmLnZpZXdzLXJvdy1sYXN0e1xuICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgIC8vIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICAgIGgze1xuICAgICAgZm9udC1zaXplOiBtcygxKTtcbiAgICAgIGF7XG4gICAgICAgIGNvbG9yOiAkZGFyay1ncmV5O1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICY6aG92ZXJ7XG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLmZpZWxkLW5hbWUtZmllbGQtZGF0ZXtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIC8vIGZvbnQtd2VpZ2h0OiAkYm9sZDtcbiAgICAuZmllbGQtaXRlbXtcbiAgICAgICY6YmVmb3Jle1xuICAgICAgICBAaW5jbHVkZSBtYXRlcmlhbC1pY29ucztcbiAgICAgICAgY29udGVudDonZXZlbnQnO1xuICAgICAgICBjb2xvcjogYmxhY2s7XG4gICAgICAgIG1hcmdpbi1yaWdodDogbXMoLTYpO1xuICAgICAgfVxuICAgIH1cbiAgICAuZGF0ZS1kaXNwbGF5LXJhbmdle1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cbiAgfVxuXG4gIC5maWVsZC1uYW1lLWJvZHl7XG4gICAgbWFyZ2luLWJvdHRvbTogbXMoKTtcbiAgfVxuXG4gIC5tb3JlLWxpbmt7XG4gICAgQGluY2x1ZGUgYnRuO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRkYXJ0bW91dGgtZ3JlZW47XG4gICAgJjpob3ZlcntcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRlbWVyYWxkLWdyZWVuO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgJGVtZXJhbGQtZ3JlZW47XG4gICAgfVxuICAgIGF7XG4gICAgICBjb2xvcjogJGRhcmstZ3JleTtcbiAgICAgICY6aG92ZXJ7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIH1cbiAgICAgICY6YWZ0ZXJ7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvL2NvbXBvbmVudHMvYmxvY2tzL19ibG9jay1hbHVtbmktZXZlbnRzLnNjc3NcblxuLnJlZ2lvbi1ldmVudHMtcHJpbWFyeSAuYmxvY2stdmlld3MtZXZlbnRzLWJsb2NrLTN7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkd2VpcmQtc2NyZWVuKSB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogNDk2cHg7XG4gIH1cblxuICBoMntcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZW1lcmFsZC1ncmVlbjtcbiAgICBzcGFue1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRhcnRtb3V0aC1ncmVlbjtcbiAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICB9XG4gIH1cblxuICAudmlld3MtZmllbGQtdGl0bGV7XG4gICAgaDN7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGZvbnQtc2l6ZTogbXMoMSk7XG4gICAgICBsaW5lLWhlaWdodDogbXMoMSk7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgIG1hcmdpbi1ib3R0b206IG1zKC0zKTtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hcnJvdy1zY3JlZW4pIHtcbiAgICAgICAgZm9udC1zaXplOiBtcygyKTtcbiAgICAgIH1cbiAgICAgIHNwYW57XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgYXtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgZm9udC13ZWlnaHQ6ICRib2xkO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAmOmhvdmVye1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgfVxuICB9XG5cbiAgLmZpZWxkLW5hbWUtZmllbGQtZGF0ZXtcbiAgICAvLyBmb250LXdlaWdodDogJGJvbGQ7XG4gICAgLmZpZWxkLWl0ZW17XG4gICAgICAmOmJlZm9yZXtcbiAgICAgICAgQGluY2x1ZGUgbWF0ZXJpYWwtaWNvbnM7XG4gICAgICAgIGNvbnRlbnQ6J2V2ZW50JztcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IG1zKC02KTtcbiAgICAgIH1cbiAgICB9XG4gICAgLmRhdGUtZGlzcGxheS1yYW5nZXtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG4gIH1cbn0iLCIvL2NvbXBvbmVudHMvYmxvY2tzL19ibG9jay1hbHVtbmktZXZlbnRzLnNjc3NcblxuLnJlZ2lvbi1ldmVudHMtc2Vjb25kYXJ5IC5ibG9jay1hZGRpdGlvbmFsLWV2ZW50c3tcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkd2VpcmQtc2NyZWVuKSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiA0OTZweDtcbiAgfVxuICAudmlld3MtZmllbGQtdGl0bGV7XG4gICAgaDJ7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGZvbnQtc2l6ZTogbXMoKTtcbiAgICAgIGxpbmUtaGVpZ2h0OiBtcygxKTtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgbWFyZ2luLWJvdHRvbTogbXMoLTMpO1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFycm93LXNjcmVlbikge1xuICAgICAgICBmb250LXNpemU6IG1zKDEpO1xuICAgICAgfVxuICAgICAgc3BhbntcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLnZpZXdzLWZpZWxkLWRhdGV7XG4gICAgcHtcbiAgICAgICY6OmJlZm9yZXtcbiAgICAgICAgLy8gdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgLy8gZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBAaW5jbHVkZSBtYXRlcmlhbC1pY29ucztcbiAgICAgICAgQGluY2x1ZGUgbWQtMjQ7XG4gICAgICAgIGNvbnRlbnQ6IFwiZXZlbnRzXCI7XG4gICAgICAgIGNvbG9yOiAkZGFyay1ncmV5O1xuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIi8vIGNvbXBvbmVudHMvYmxvY2tzL19ibG9jay1jb2xsZWdlLWN0YS5zY3NzXG4vLyBIb21lIHBhZ2UgRGFydGhtb3V0aCBEaXJlY3RvcnkgYW5kIENhcmVlciBOZXR3b3JrIENUQXNcbi5ibG9jay1jYXJlZXItbmV0d29yay1jdGF7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uYmxvY2stZGlyZWN0b3J5LWN0YXtcbiAgbWFyZ2luLWJvdHRvbTogbXMoMSk7XG4gIHBhZGRpbmctYm90dG9tOiBtcygxKTtcbiAgYm9yZGVyLWJvdHRvbTogNXB4IHNvbGlkICRsaWdodC1ncmV5O1xufVxuXG4uYmxvY2stZGlyZWN0b3J5LWN0YSxcbi5ibG9jay1jYXJlZXItbmV0d29yay1jdGF7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hcnJvdy1zY3JlZW4pIHtcbiAgICBAaW5jbHVkZSBmbG9hdC1zcGFuKDYpO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgfVxuXG4gIC5kZXNjcmlwdGlvbntcbiAgICBmb250LXdlaWdodDogJGxpZ2h0O1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICBAaW5jbHVkZSBmbG9hdC1zcGFuKDYpO1xuICAgIH1cbiAgfVxuICAuY3RhLWxpbmt7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBtYXJnaW4tdG9wOiBtcygpO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICAgIEBpbmNsdWRlIGZsb2F0LXNwYW4oNiwgbGFzdCk7XG4gICAgfVxuXG4gICAgYXtcbiAgICAgIEBpbmNsdWRlIGJ0bjtcbiAgICAgIEBpbmNsdWRlIGJ0bi1wcmltYXJ5O1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgcGFkZGluZy10b3A6IG1zKC0zKTtcbiAgICAgIHBhZGRpbmctYm90dG9tOiBtcygtMyk7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwYWRkaW5nLXRvcDogbXMoLTEpO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbXMoLTEpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB9XG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1c3tcbiAgICAgICAgc3BhbntcbiAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0IGJvdHRvbTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHNwYW57XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cbiAgICAuaWNvbntcbiAgICAgIEBpbmNsdWRlIHNxdWlzaC10ZXh0O1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi8uLi9pbWcvZGlyZWN0b3J5LWljb24ucG5nJyk7XG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdCB0b3A7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IDIycHg7XG4gICAgICB3aWR0aDogMjhweDtcbiAgICAgIGhlaWdodDogMjJweDtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hcnJvdy1zY3JlZW4pIHtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiAyOHB4O1xuICAgICAgICB3aWR0aDogMzRweDtcbiAgICAgICAgaGVpZ2h0OiAyOHB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uYmxvY2stY2FyZWVyLW5ldHdvcmstY3Rhe1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRuYXJyb3ctc2NyZWVuKSB7XG4gICAgQGluY2x1ZGUgZmxvYXQtc3Bhbig2LGxhc3QpO1xuICB9XG4gIC5jdGEtbGlua3tcbiAgICBzcGFue1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG4gICAgLmljb257XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uLy4uL2ltZy9uZXR3b3JrLWljb24ucG5nJyk7XG4gICAgfVxuICB9XG59IiwiLy9jb21wb25lbnRzL2Jsb2Nrcy9fYmxvY2stY2xhc3MtY3RhLnNjc3MgSG9tZSBwYWdlIC0gQ2xhc3MsIENsdWIgb3IgR3JvdXAgQ1RBXG5cbi5ibG9jay1jbGFzcy1jdGF7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hcnJvdy1zY3JlZW4pIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBwYWRkaW5nLXJpZ2h0OiBtcygpO1xuICB9XG5cbiAgaDN7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIG1hcmdpbi1ib3R0b206IG1zKC0zKTtcbiAgfVxufVxuXG4uYmxvY2stanVtcC1tZW51e1xuICBwYWRkaW5nOiAwIG1zKDYpO1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRuYXJyb3ctc2NyZWVuKSB7XG4gICAgcGFkZGluZzogMDtcbiAgICB3aWR0aDogMzEuOTE0ODklO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICB3aWR0aDogMjMuNDA0MjYlO1xuICB9XG5cbiAgLmRrLXNlbGVjdHtcbiAgICAuZGstc2VsZWN0ZWR7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgIHBhZGRpbmc6IG1zKC0zKSBtcygtMSk7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgLy8gZm9udC1zaXplOiBtcygpO1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgJjpiZWZvcmV7XG4gICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogd2hpdGU7XG4gICAgICAgICAgbWFyZ2luOiAwIG1zKDEpO1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICAgIC8vIGJvcmRlci13aWR0aDogbXMoLTYpO1xuICAgICAgICB9XG4gICAgICAgICY6YWZ0ZXJ7XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRlbWVyYWxkLWdyZWVuO1xuICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgICAgd2lkdGg6IDUwcHg7XG4gICAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDVweDtcbiAgICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNXB4O1xuICAgICAgICB9XG4gICAgICB9XG4gIH1cblxuICAuZGstc2VsZWN0ZWQ6aG92ZXI6YmVmb3JlLCAuZGstc2VsZWN0ZWQ6Zm9jdXM6YmVmb3JlIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiB3aGl0ZTtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiB3aGl0ZTtcbiAgfVxuICAuZGstc2VsZWN0ZWQ6aG92ZXI6YWZ0ZXIsIC5kay1zZWxlY3RlZDpmb2N1czphZnRlciB7XG4gICAgYm9yZGVyLWxlZnQtY29sb3I6IHdoaXRlO1xuICB9XG5cbiAgLmRrLXNlbGVjdC1vcGVuLWRvd257XG4gICAgLmRrLXNlbGVjdC1vcHRpb25ze1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgdG9wOiBtcygxKTtcbiAgICB9XG4gICAgLmRrLXNlbGVjdGVke1xuICAgICAgJjpiZWZvcmV7XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHdoaXRlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5kay1zZWxlY3Qtb3Blbi11cHtcbiAgICAuZGstc2VsZWN0ZWR7XG4gICAgICAmOmJlZm9yZXtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogd2hpdGU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmRrLXNlbGVjdC1vcHRpb25ze1xuICAgIC5kay1vcHRpb257XG4gICAgICBwYWRkaW5nOiBtcygtMykgbXMoLTEpO1xuICAgICAgZm9udC1zaXplOiBtcygpO1xuICAgIH1cblxuICAgIC5kay1vcHRpb24taGlnaGxpZ2h0e1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGVtZXJhbGQtZ3JlZW47XG4gICAgICBjb2xvcjogJGRhcmstZ3JleTtcbiAgICB9XG5cbiAgICAuZGstb3B0aW9uLXNlbGVjdGVke1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGVtZXJhbGQtZ3JlZW47XG4gICAgICBwYWRkaW5nOiBtcygtMykgbXMoLTEpO1xuICAgICAgY29sb3I6ICRkYXJrLWdyZXk7XG4gICAgfVxuICAgICAgLy8gLmRrLW9wdGlvbi1zZWxlY3RlZC5kay1vcHRpb24taGlnaGxpZ2h0e1xuICAgICAgICAvLyBiYWNrZ3JvdW5kLWNvbG9yOiBzaGFkZSgkZW1lcmFsZC1ncmVlbiwgMTAlKTtcbiAgICAgICAgLy8gYmFja2dyb3VuZC1jb2xvcjogJGRhcnRtb3V0aC1ncmVlbjtcbiAgICAgICAgLy8gY29sb3I6IHdoaXRlO1xuICAgICAgLy8gfVxuICB9XG5cbiAgLmVsZW1lbnQtaW52aXNpYmxle1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgfVxufVxuIiwiLy9jb21wb25lbnRzL2Jsb2Nrcy9fYmxvY2stZmVhdHVyZWQtbmV3cy5zY3NzXG5cbi5yZWdpb24tZmVhdHVyZWQtbmV3cyAuYmxvY2stZmVhdHVyZWQtbmV3c3tcbiAgLy8gaDJ7XG4gIC8vICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFycm93LXNjcmVlbikge1xuICAvLyAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAvLyAgICAgd2lkdGg6IDEwMCU7XG4gIC8vICAgICBtYXgtd2lkdGg6IDMzMHB4O1xuICAvLyAgICAgcGFkZGluZy1yaWdodDogbXMoMSk7XG4gIC8vICAgfVxuICAvLyB9XG4gIC52aWV3cy1maWVsZC1pbWFnZXtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgLy8gaGVpZ2h0OiAyMDBweDtcbiAgICAvLyBsaW5lLWhlaWdodDogMDtcbiAgICAvLyBiYWNrZ3JvdW5kLWltYWdlOnVybChcIi4uLy4uL2ltZy9oYXBweS1kdWRlLmpwZ1wiKTtcbiAgICAvLyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIC8vIGJhY2tncm91bmQtcG9zaXRpb246IHRvcCByaWdodDtcbiAgICAvLyBiYWNrZ3JvdW5kLXNpemU6IDEyMCU7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCR3ZWlyZC1zY3JlZW4pIHtcbiAgICAgIC8vIEBpbmNsdWRlIGZsb2F0LXNwYW4oNy45MCk7XG4gICAgICBAaW5jbHVkZSBmbG9hdC1zcGFuKDcuOTAsICRndXR0ZXI6MCk7XG4gICAgICAvLyBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIH1cblxuICAgIGltZ3tcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC8vIC5hcnJvdy1sZWZ0e1xuICAgIC8vICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIC8vICAgYm90dG9tOiAwO1xuICAgIC8vICAgcmlnaHQ6IDQ2JTtcbiAgICAvLyAgIHdpZHRoOiAwO1xuICAgIC8vICAgaGVpZ2h0OiAwO1xuICAgIC8vICAgYm9yZGVyLXJpZ2h0OiAxNXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIC8vICAgYm9yZGVyLWxlZnQ6IDE1cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgLy8gICBib3JkZXItYm90dG9tOiAxNXB4IHNvbGlkICRsaWdodC1ncmV5O1xuXG4gICAgLy8gICBAaW5jbHVkZSBicmVha3BvaW50KCRuYXJyb3ctc2NyZWVuKSB7XG4gICAgLy8gICAgIHJpZ2h0OiAwO1xuICAgIC8vICAgICB0b3A6IDQ1JTtcbiAgICAvLyAgICAgYm9yZGVyLXRvcDogMTVweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAvLyAgICAgYm9yZGVyLWJvdHRvbTogMTVweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAvLyAgICAgYm9yZGVyLXJpZ2h0OiAxNXB4IHNvbGlkICRsaWdodC1ncmV5O1xuICAgIC8vICAgfVxuICAgIC8vIH1cbiAgfVxuXG4gIC5jb250ZW50e1xuICAgIHBhZGRpbmc6IG1zKDMpIDMuNWVtO1xuICAgIG1hcmdpbi1ib3R0b206IG1zKDEpO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHdlaXJkLXNjcmVlbikge1xuICAgICAgQGluY2x1ZGUgZmxvYXQtc3Bhbig0LGxhc3QpO1xuICAgICAgcGFkZGluZzogbXMoMykgMDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgLm5ld3MtY29udGVudHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHdlaXJkLXNjcmVlbikge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMzMwcHg7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IG1zKDEpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC52aWV3cy1maWVsZC10aXRsZXtcbiAgICBoMntcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgZm9udC1zaXplOiBtcygxKTtcbiAgICAgIGxpbmUtaGVpZ2h0OiBtcygxKTtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgbWFyZ2luLWJvdHRvbTogbXMoLTMpO1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFycm93LXNjcmVlbikge1xuICAgICAgICBmb250LXNpemU6IG1zKDIpO1xuICAgICAgfVxuICAgICAgc3BhbntcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCIvL2NvbXBvbmVudHMvYmxvY2tzL19ibG9jay1uZXdzLnNjc3MgdGhyZWUgbmV3cyBsaXN0aW5ncyBvbiBob21lIHBhZ2VcblxuLnJlZ2lvbi1uZXdzIC5ibG9jay1uZXdze1xuICAmOmxhc3QtY2hpbGQge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hcnJvdy1zY3JlZW4pIHtcbiAgICAgIEBpbmNsdWRlIGZsb2F0LXNwYW4oNCxsYXN0KTtcbiAgICB9XG4gIH1cblxuICAmOm50aC1jaGlsZCgzbisyKSB7XG4gICAgaDJ7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZW1lcmFsZC1ncmVlbjtcbiAgICB9XG4gIH1cblxuICAudmlld3MtZmllbGQtdGl0bGV7XG4gICAgaDJ7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGZvbnQtc2l6ZTogbXMoKTtcbiAgICAgIGxpbmUtaGVpZ2h0OiBtcygxKTtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgbWFyZ2luLWJvdHRvbTogbXMoLTMpO1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFycm93LXNjcmVlbikge1xuICAgICAgICBmb250LXNpemU6IG1zKDEpO1xuICAgICAgfVxuICAgICAgc3BhbntcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCIvL2NvbXBvbmVudHMvYmxvY2tzL19ibG9jay1zb2NpYWxpemUuc2Nzc1xuXG4ucmVnaW9uLXNvY2lhbC1tZWRpYSAuYmxvY2stc29jaWFsaXple1xuICBib3JkZXItYm90dG9tOiAzcHggc29saWQgJGVtZXJhbGQtZ3JlZW47XG4gIG1hcmdpbjogMCBtcyg2KTtcblxuICBoMntcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZW1lcmFsZC1ncmVlbjtcbiAgfVxuICAuY29udGVudHtcbiAgICBwYWRkaW5nOiBtcygyKSAwIG1zKC0yKSAwO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hcnJvdy1zY3JlZW4pIHtcbiAgICAgIHBhZGRpbmc6IG1zKDIpIG1zKDMpO1xuICAgIH1cblxuICAgIGgye1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBtYXJnaW4tYm90dG9tOiBtcygpO1xuICAgICAgZm9udC1zaXplOiBtcygxKTtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYXJyb3ctc2NyZWVuKSB7XG4gICAgICAgIHdpZHRoOiA0MCU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgZm9udC1zaXplOiBtcygyKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IG1zKCk7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICB9XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCR3ZWlyZC1zY3JlZW4pIHtcbiAgICAgICAgZm9udC1zaXplOiBtcygzKTtcbiAgICAgIH1cbiAgICAgIHNwYW57XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hcnJvdy1zY3JlZW4pIHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5zb2NpYWwtaWNvbnN7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAwO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hcnJvdy1zY3JlZW4pIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICB3aWR0aDogNTglO1xuICAgICAgcGFkZGluZy1sZWZ0OiBtcygpO1xuICAgIH1cbiAgICB1bHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hcnJvdy1zY3JlZW4pIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIH1cbiAgICAgIGxpe1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hcnJvdy1zY3JlZW4pIHtcbiAgICAgICAgICBwYWRkaW5nOiAwIG1zKC02KTtcbiAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICBmbGV4OiAwIDEgMTYuNjY2NjY2NjY3JTtcbiAgICAgICAgICBtaW4td2lkdGg6IDYwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzdGFuZGFyZC1zY3JlZW4pIHtcbiAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpsYXN0LWNoaWxke1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGltZ3tcbiAgICAgICAgICB3aWR0aDogODAlO1xuICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hcnJvdy1zY3JlZW4pIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy9jb21wb25lbnRzL2Jsb2Nrcy9ibG9jay1zb2NpYWwtbGlua3Muc2Nzc1xuXG4ucmVnaW9uLWZvb3RlciAuYmxvY2stc29jaWFsLWxpbmtze1xuICBAaW5jbHVkZSBmbG9hdC1zcGFuKDQsbGFzdCk7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkd2VpcmQtc2NyZWVuKSB7XG4gICAgICBAaW5jbHVkZSBmbG9hdC1zcGFuKDIpO1xuICB9XG59IiwiLy9jb21wb25lbnRzL2Jsb2Nrcy9fYmxvY2stZm9vdGVyLWN0YXMuc2Nzc1xuXG4ucmVnaW9uLWZvb3RlciAuYmxvY2stZm9vdGVyLWN0YXN7XG4gIEBpbmNsdWRlIGZsb2F0LXNwYW4oNik7XG4gIHBhZGRpbmctcmlnaHQ6IG1zKDEpO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hcnJvdy1zY3JlZW4pIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiBtcyg1KTtcbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHdlaXJkLXNjcmVlbikge1xuICBAaW5jbHVkZSBmbG9hdC1zcGFuKDMpO1xuICAgIHBhZGRpbmctcmlnaHQ6IG1zKC0xKTtcbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiBtcyg1KTtcbiAgfVxufVxuXG4uYmxvY2stZm9vdGVyLWN0YXN7XG4gIC5jdGF7XG4gICAgQGluY2x1ZGUgYnRuO1xuICAgIEBpbmNsdWRlIGJ0bi1zZWNvbmRhcnk7XG4gICAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHdoaXRlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCR3ZWlyZC1zY3JlZW4pIHtcbiAgICAgIHBhZGRpbmc6IG1zKC0xKSBtcygtMyk7XG4gICAgfVxuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3Vze1xuICAgICAgY29sb3I6ICRkYXJrLWdyZXk7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkZW1lcmFsZC1ncmVlbjtcbiAgICB9XG4gIH1cbn0iLCIvL2NvbXBvbmVudHMvYmxvY2tzL19ibG9jay1pbmZvLWxpbmtzLnNjc3NcblxuLmJsb2NrLWluZm8tbGlua3N7XG4gIHBhZGRpbmctYm90dG9tOiBtcygtNik7XG4gIHVse1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgJjpsYXN0LWNoaWxke1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICBsaXtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZm9udC1zaXplOiBtcygtMSk7XG4gICAgICBwYWRkaW5nOiBtcygtMykgbXMoLTEpO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgbGluZS1oZWlnaHQ6IG1zKDEpO1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFycm93LXNjcmVlbikge1xuICAgICAgICBmb250LXNpemU6IG1zKC0yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwIG1zKC0xKTtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJG5ldXRyYWwtZ3JleTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgIH1cbiAgICAgICY6bGFzdC1jaGlsZHtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgfVxuICAgICAgYXtcbiAgICAgIGNvbG9yOiB0aW50KCRkYXJrLWdyZXksIDMwJSk7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICY6aG92ZXJ7XG4gICAgICAgICAgY29sb3I6ICRkYXJ0bW91dGgtZ3JlZW47XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgJi5jb2xsZWdle1xuICAgIGF7XG4gICAgICBjb2xvcjogJGZvcmVzdC1ncmVlbjtcbiAgICB9XG4gIH1cbn0iLCIvL2NvbXBvbmVudHMvYmxvY2tzL19ibG9jay1hbHVtbmktbGlua3Muc2Nzc1xuXG4ucmVnaW9uLWZvb3RlciAuYmxvY2stYWx1bW5pLWxpbmtze1xuICBAaW5jbHVkZSBmbG9hdC1zcGFuKDYsbGFzdCk7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJGRhcnRtb3V0aC1ncmVlbjtcbiAgcGFkZGluZy1sZWZ0OiBtcygyKTtcbiAgLy8gbWFyZ2luLWxlZnQ6IG1zKDIpO1xuXG4gICBAaW5jbHVkZSBicmVha3BvaW50KCRuYXJyb3ctc2NyZWVuKSB7XG4gICAgcGFkZGluZy1sZWZ0OiBtcyg1KTtcbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHdlaXJkLXNjcmVlbikge1xuICAgIEBpbmNsdWRlIGZsb2F0LXNwYW4oMyxsYXN0KTtcbiAgICBwYWRkaW5nLWxlZnQ6IG1zKDIpO1xuICB9XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICBwYWRkaW5nLWxlZnQ6IG1zKDYpO1xuICB9XG59IiwiLy9jb21wb25lbnRzL2Jsb2Nrcy9fYmxvY2stZm9vdGVyLWxvZ28uc2NzcyBMb2dvIGluIEZvb3RlclxuXG4ucmVnaW9uLWZvb3RlciAuYmxvY2stZm9vdGVyLWxvZ297XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogbXMoMSk7XG59IiwiLy9jb21wb25lbnRzL2Jsb2Nrcy9ibG9jay1zdWItbmF2LnNjc3NcblxuI3NpZGViYXItc2Vjb25kIC5ibG9jay1zdWItbmF2e1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFydG1vdXRoLWdyZWVuO1xuICBwYWRkaW5nOiAwO1xuICAubWVudXtcbiAgICBsaXtcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgcGFkZGluZy1ib3R0b206IDA7XG5cbiAgICAgICYubGFzdHtcbiAgICAgICAgYXtcbiAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBhe1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCBzaGFkZSgkZm9yZXN0LWdyZWVuLCAxMCUpO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRub3JtYWw7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgcGFkZGluZzogbXMoLTIpIG1zKCk7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zcyBlYXNlLW91dDtcblxuICAgICAgICAmOmhvdmVye1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRmb3Jlc3QtZ3JlZW47XG4gICAgICAgIH1cbiAgICAgICAgJi5hY3RpdmV7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGZvcmVzdC1ncmVlbjtcbiAgICAgICAgICAmOmhvdmVye1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogc2hhZGUoJGZvcmVzdC1ncmVlbiwgMTAlKTtcbiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCIuYmxvY2stYmxvY2stNjZ7XG4gIC5zZWN0aW9uLXRpdGxle1xuICAgIGZvbnQtd2VpZ2h0OiAkYm9sZDtcbiAgICBmb250LXNpemU6IG1zKDIpO1xuICAgIG1hcmdpbi1ib3R0b206IG1zKC01KTtcbiAgICBsaW5lLWhlaWdodDogbXMoMSk7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFycm93LXNjcmVlbikge1xuICAgICAgZm9udC1zaXplOiBtcyg0KTtcbiAgICB9XG4gIH1cbn1cbi52aWV3LXByb2dyYW17XG4gIC5jb2wxe1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAuZmllbGQtbmFtZS1maWVsZC1pbWFnZXtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgIGltZ3tcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG4gICAgfVxuICAgIC52aWV3cy1maWVsZC1ub3RoaW5ne1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgcmlnaHQ6IDQ2JTtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hcnJvdy1zY3JlZW4pIHtcbiAgICAgICAgcmlnaHQ6IDQ5JTtcbiAgICAgIH1cbiAgICAgIC5hcnJvd3tcbiAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxNXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItbGVmdDogMTVweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMTVweCBzb2xpZCB0aW50KCRsaWdodC1ncmV5LCA2MCUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5jb2wye1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRpbnQoJGxpZ2h0LWdyZXksIDYwJSk7XG4gICAgcGFkZGluZzogbXMoMSkgbXMoMik7XG4gICAgbWFyZ2luLWJvdHRvbTogbXMoMyk7XG4gICAgaDF7XG4gICAgICBmb250LXNpemU6IG1zKDEpO1xuICAgICAgY29sb3I6ICRkYXJrLWdyZXk7XG4gICAgICBtYXJnaW4tYm90dG9tOiBtcygtMyk7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYXJyb3ctc2NyZWVuKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogbXMoMik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmZpZWxkLW5hbWUtZmllbGQtZGF0ZXtcbiAgICAgIGZvbnQtc2l6ZTogbXMoMSk7XG4gICAgICBmb250LXdlaWdodDogJGxpZ2h0O1xuICAgICAgbGluZS1oZWlnaHQ6IG1zKDEpO1xuICAgIH1cblxuICAgIC5maWVsZC1uYW1lLWZpZWxkLXByb2dyYW0tbG9jYXRpb257XG4gICAgICBmb250LXdlaWdodDogJGxpZ2h0O1xuICAgICAgbGluZS1oZWlnaHQ6IG1zKDEpO1xuICAgICAgbWFyZ2luLWJvdHRvbTogbXMoKTtcbiAgICAgIHBhZGRpbmctYm90dG9tOiBtcygpO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICRsaWdodC1ncmV5O1xuICAgIH1cblxuICAgIC5maWVsZC1uYW1lLWZpZWxkLXByb2dyYW0tdGF4b25vbXl7XG4gICAgICBmb250LXdlaWdodDogJGxpZ2h0O1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIC5maWVsZC1pdGVte1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IG1zKC0zKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCIuYmxvY2stZmllbGRibG9jay1ub2RlLWJhc2ljLXBhZ2UtZGVmYXVsdC1maWVsZC1oZWFkZXItaW1hZ2V7XG4gIC5maWVsZC1uYW1lLWZpZWxkLWhlYWRlci1pbWFnZXtcbiAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgY2VudGVyO1xuICAgIGhlaWdodDogMjAwcHg7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYXJyb3ctc2NyZWVuKSB7XG4gICAgICBoZWlnaHQ6IDMwMHB4O1xuICAgIH1cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCR3ZWlyZC1zY3JlZW4pIHtcbiAgICAgIGhlaWdodDogMDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAyNSU7XG4gICAgICBAaW5jbHVkZSBmbG9hdC1zcGFuKDgsICRndXR0ZXI6MCk7XG4gICAgfVxuXG4gICAgJi5mdWxsLXdpZHRoe1xuICAgICAgQGluY2x1ZGUgcmVzZXQtY29sdW1uO1xuICAgICAgLmFycm93LWxlZnR7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmFycm93LWxlZnR7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IDA7XG4gICAgICByaWdodDogNDYlO1xuICAgICAgd2lkdGg6IDA7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgICBib3JkZXItcmlnaHQ6IDE1cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItbGVmdDogMTVweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci1ib3R0b206IDE1cHggc29saWQgdGludCgkbGlnaHQtZ3JleSwgNjAlKTtcblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkd2VpcmQtc2NyZWVuKSB7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB0b3A6IDQ1JTtcbiAgICAgICAgYm9yZGVyLXRvcDogMTVweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMTVweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxNXB4IHNvbGlkIHRpbnQoJGxpZ2h0LWdyZXksIDYwJSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5ibG9jay1maWVsZGJsb2NrLW5vZGUtYmFzaWMtcGFnZS1kZWZhdWx0LWZpZWxkLWhlYWRlci1jdGF7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0aW50KCRsaWdodC1ncmV5LCA2MCUpO1xuICBwYWRkaW5nOiBtcygyKSA2LjM4Mjk4JTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KCR3ZWlyZC1zY3JlZW4pIHtcbiAgICBAaW5jbHVkZSBmbG9hdC1zcGFuKDQsbGFzdCwgJGd1dHRlcjowKTtcbiAgICBwYWRkaW5nOiBtcygxKSBtcygxKTtcbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICBwYWRkaW5nOiBtcygyKSBtcygyKTtcbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHN0YW5kYXJkLXNjcmVlbikge1xuICAgIHBhZGRpbmc6IG1zKDMpIDMuNWVtO1xuICB9XG5cbiAgLmZpZWxkLW5hbWUtZmllbGQtaGVhZGVyLWN0YXtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHdlaXJkLXNjcmVlbikge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1heC13aWR0aDogMzAwcHg7XG4gICAgfVxuXG4gICAgLmZpZWxkLW5hbWUtZmllbGQtdGl0bGV7XG4gICAgICBmb250LXNpemU6IG1zKDEpO1xuICAgICAgZm9udC13ZWlnaHQ6ICRib2xkO1xuICAgICAgbWFyZ2luLWJvdHRvbTogbXMoLTIpO1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFycm93LXNjcmVlbikge1xuICAgICAgICBmb250LXNpemU6IG1zKDIpO1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkd2lkZS1zY3JlZW4pIHtcbiAgICAgICAgZm9udC1zaXplOiBtcygzKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuZmllbGQtbmFtZS1maWVsZC1oZWFkZXItaW1hZ2UtY2FwdGlvbntcbiAgICAgIGZvbnQtd2VpZ2h0OiAkbGlnaHQ7XG4gICAgICBsaW5lLWhlaWdodDogbXMoMik7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkd2lkZS1zY3JlZW4pIHtcbiAgICAgICAgZm9udC1zaXplOiBtcygxKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuZmllbGQtbmFtZS1maWVsZC1jYWxsLXRvLWFjdGlvbntcbiAgICAgIG1hcmdpbi10b3A6IG1zKCk7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgYXtcbiAgICAgICAgQGluY2x1ZGUgYnRuO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkZGFydG1vdXRoLWdyZWVuO1xuICAgICAgICBjb2xvcjogJGRhcmstZ3JleTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAmOmhvdmVye1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRlbWVyYWxkLWdyZWVuO1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRlbWVyYWxkLWdyZWVuO1xuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuICAgICAgICAmOmFmdGVye1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi5ibG9jay1iZWFuLWFsdW1uaS10cmF2ZWwtaGVhZGVyLTB7XG4gIC5maWVsZC1uYW1lLWZpZWxkLWhlYWRlci1pbWFnZXtcbiAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgY2VudGVyO1xuICAgIGhlaWdodDogMjAwcHg7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYXJyb3ctc2NyZWVuKSB7XG4gICAgICBoZWlnaHQ6IDMwMHB4O1xuICAgIH1cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCR3ZWlyZC1zY3JlZW4pIHtcbiAgICAgIGhlaWdodDogMDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAyNSU7XG4gICAgICBAaW5jbHVkZSBmbG9hdC1zcGFuKDgsICRndXR0ZXI6MCk7XG4gICAgfVxuXG4gICAgLy8gJi5mdWxsLXdpZHRoe1xuICAgIC8vICAgQGluY2x1ZGUgcmVzZXQtY29sdW1uO1xuICAgIC8vICAgLmFycm93LWxlZnR7XG4gICAgLy8gICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgLy8gICB9XG4gICAgLy8gfVxuXG4gICAgLmFycm93LWxlZnR7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IDA7XG4gICAgICByaWdodDogNDYlO1xuICAgICAgd2lkdGg6IDA7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgICBib3JkZXItcmlnaHQ6IDE1cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItbGVmdDogMTVweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci1ib3R0b206IDE1cHggc29saWQgdGludCgkbGlnaHQtZ3JleSwgNjAlKTtcblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkd2VpcmQtc2NyZWVuKSB7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB0b3A6IDQ1JTtcbiAgICAgICAgYm9yZGVyLXRvcDogMTVweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMTVweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxNXB4IHNvbGlkIHRpbnQoJGxpZ2h0LWdyZXksIDYwJSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmdyb3VwLXdyYXBwZXJ7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdGludCgkbGlnaHQtZ3JleSwgNjAlKTtcbiAgICBwYWRkaW5nOiBtcygyKSA2LjM4Mjk4JTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHdlaXJkLXNjcmVlbikge1xuICAgICAgQGluY2x1ZGUgZmxvYXQtc3Bhbig0LGxhc3QsICRndXR0ZXI6MCk7XG4gICAgICBwYWRkaW5nOiBtcygxKSBtcygxKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgICBwYWRkaW5nOiBtcygyKSBtcygyKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzdGFuZGFyZC1zY3JlZW4pIHtcbiAgICAgIHBhZGRpbmc6IG1zKDMpIDMuNWVtO1xuICAgIH1cbiAgICAgIC5ncm91cC1pbmZve1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHdlaXJkLXNjcmVlbikge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMzAwcHg7XG4gICAgICB9XG5cbiAgICAgIC5maWVsZC1uYW1lLXRpdGxlLWZpZWxkIGgye1xuICAgICAgICBmb250LXNpemU6IG1zKDEpO1xuICAgICAgICBmb250LXdlaWdodDogJGJvbGQ7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1zKC0yKTtcbiAgICAgICAgY29sb3I6ICRkYXJrLWdyZXk7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hcnJvdy1zY3JlZW4pIHtcbiAgICAgICAgICBmb250LXNpemU6IG1zKDIpO1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHdpZGUtc2NyZWVuKSB7XG4gICAgICAgICAgZm9udC1zaXplOiBtcygzKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuZmllbGQtbmFtZS1maWVsZC1ib2R5e1xuICAgICAgICBmb250LXdlaWdodDogJGxpZ2h0O1xuICAgICAgICBsaW5lLWhlaWdodDogbXMoMik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHdpZGUtc2NyZWVuKSB7XG4gICAgICAgICAgZm9udC1zaXplOiBtcygxKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuZmllbGQtbmFtZS1maWVsZC1jYWxsLXRvLWFjdGlvbntcbiAgICAgICAgbWFyZ2luLXRvcDogbXMoKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgYXtcbiAgICAgICAgICBAaW5jbHVkZSBidG47XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGRhcnRtb3V0aC1ncmVlbjtcbiAgICAgICAgICBjb2xvcjogJGRhcmstZ3JleTtcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgJjpob3ZlcntcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRlbWVyYWxkLWdyZWVuO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGVtZXJhbGQtZ3JlZW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgfVxuICAgICAgICAgICY6YWZ0ZXJ7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLmJsb2NrLWJlYW4tY3JlYXRlLWV2ZW50LWJsb2NrIHtcbiAgLmZpZWxkLW5hbWUtZmllbGQtYm9keSB7XG4gICAgcGFkZGluZzogMDtcbiAgICBoMiB7XG4gICAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICAgIH1cbiAgfVxufVxuXG4uc3VibWl0LWV2ZW50LWJ1dHRvbiB7XG4gIEBpbmNsdWRlIGJ0bjtcbiAgYm9yZGVyOiAxcHggc29saWQgJGRhcnRtb3V0aC1ncmVlbjtcbiAgY29sb3I6ICRkYXJrLWdyZXk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgJjpob3ZlcntcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZW1lcmFsZC1ncmVlbjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkZW1lcmFsZC1ncmVlbjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cbiAgJjphZnRlcntcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4iLCIvKiBjb21wb25lbnRzL19icmFuZC5zY3NzICovXG5cbi8vIGJyYW5kXG4jbG9nb3tcbiAgZGlzcGxheTogYmxvY2s7XG4gIC8vIG1hcmdpbi1ib3R0b206IG1zKCk7XG4gIG1hcmdpbjogMCBhdXRvIG1zKCkgYXV0bztcbiAgLy8gd2lkdGg6IDYwJTtcbiAgd2lkdGg6IDU3LjQ0NjgxJTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFycm93LXNjcmVlbikge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG4gIGF7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgfVxuICB9XG59XG4iLCIvKiBjb21wb25lbnRzL19zZWFyY2guc2NzcyAqL1xuXG5AaW1wb3J0ICdjb21wb25lbnRzL3NlYXJjaC9zZWFyY2gtZm9ybSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3NlYXJjaC9zZWFyY2gtcmVzdWx0cyc7XG4vLyBAaW1wb3J0ICdjb21wb25lbnRzL3NlYXJjaC9zb2xyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc2VhcmNoL2Jsb2NrLXNlYXJjaCc7XG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuIiwiLyogY29tcG9uZW50cy9zZWFyY2gvX3NlYXJjaC1mb3JtLnNjc3MgKi9cblxuLnNlYXJjaC1mb3Jte1xuICBtYXJnaW4tYm90dG9tOiBtcygxKTtcbiAgcGFkZGluZy1ib3R0b206IG1zKDEpO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGxpZ2h0LWdyZXk7XG59XG5cbi5zZWFyY2gtZm9ybSAuZm9ybS13cmFwcGVye1xuXG4gIGxhYmVse1xuICAgIGZvbnQtc2l6ZTogbXMoLTEpO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbWFyZ2luLWJvdHRvbTogbXMoLTQpO1xuICB9XG5cbiAgLmZvcm0taXRlbS1rZXlze1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogbXMoKTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gICNlZGl0LWtleXN7XG4gICAgQGluY2x1ZGUgcmVzZXQtZm9ybS1maWVsZDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkbGlnaHQtZ3JleTtcbiAgICBtYXJnaW4tdG9wOiBtcygtMyk7XG4gICAgcGFkZGluZzogbXMoLTYpO1xuICAgIC8vIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICAvLyAgIHdpZHRoOiA1MCU7XG4gICAgLy8gfVxuICB9XG5cbiAgLmZvcm0tc3VibWl0LFxuICAuZm9ybS1pdGVtX19zZWFyY2gtYnV0dG9ue1xuICAgIEBpbmNsdWRlIGJ0bjtcbiAgICBAaW5jbHVkZSBidG4tcHJpbWFyeTtcbiAgICAubWF0ZXJpYWwtaWNvbnMsXG4gICAgLmJ1dHRvbi1sYWJlbHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuICB9XG59XG4iLCIvKiBjb21wb25lbnRzL3NlYXJjaC9fc2VhcmNoLXJlc3VsdHMuc2NzcyAqL1xuXG4uc3BlbGxpbmctc3VnZ2VzdGlvbnN7XG4gIG1hcmdpbi1ib3R0b206IG1zKDEpO1xuICBkbCxkdCxkZHtcbiAgICBtYXJnaW46IDA7XG4gIH1cbn1cblxuLnNlYXJjaC1yZXN1bHRze1xuICBAaW5jbHVkZSByZXNldDtcbiAgQGluY2x1ZGUgbm8tYnVsbGV0cztcblxuICAudGl0bGV7XG5cbiAgfVxuICAuc2VhcmNoLXNuaXBwZXQtaW5mb3tcbiAgICBAaW5jbHVkZSByZXNldDtcbiAgfVxuXG4gIC8vIC5zZWFyY2gtc25pcHBldCxcbiAgLy8gLnNlYXJjaC1pbmZve1xuXG4gIC8vIH1cblxuICAuc2VhcmNoLWluZm97XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC5zZWFyY2gtc25pcHBldHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgLnNlYXJjaC1yZXN1bHR7XG4gICAgbWFyZ2luLWJvdHRvbTogbXMoMyk7XG4gICAgcGFkZGluZy1ib3R0b206IG1zKDMpO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkbGlnaHQtZ3JleTtcbiAgICAmOmxhc3QtY2hpbGR7XG4gICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgfVxuICB9XG59XG4iLCIvKiBjb21wb25lbnRzL3NlYXJjaC9fYmxvY2stc2VhcmNoLnNjc3MgKi9cblxuLy8gLmJsb2NrLXNlYXJjaCxcbi5ibG9jay1zZWFyY2gtZm9ybXtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRuYXJyb3ctc2NyZWVuKSB7XG4gICAgd2lkdGg6IDgyLjk3ODcyJTtcbiAgICBmbG9hdDogcmlnaHQ7XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgIHdpZHRoOiA2NS45NTc0NSU7XG4gIH1cblxuICAuYnV0dG9uLWxhYmVse1xuICAgIEBpbmNsdWRlIHNxdWlzaC10ZXh0O1xuICB9XG5cbiAgaDIuZWxlbWVudC1pbnZpc2libGV7XG4gICAgY29sb3I6IHdoaXRlO1xuICB9XG5cbiAgYnV0dG9ue1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDVweDtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNXB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRlbWVyYWxkLWdyZWVuO1xuICAgIGhlaWdodDogNDhweDtcbiAgICAubWF0ZXJpYWwtaWNvbnN7XG4gICAgICAvLyBjb2xvcjogd2hpdGU7XG4gICAgICBmb250LXdlaWdodDogJGJvbGQ7XG4gICAgICBjb2xvcjokZGFyay1ncmV5O1xuICAgICAgcGFkZGluZzogMCBtcygtMyk7XG4gICAgfVxuICB9XG5cbiAgLmZvcm0taXRlbXtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuICAuZm9ybS1zZWFyY2h7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgaGVpZ2h0OiA0OHB4O1xuICAgIHdpZHRoOiA2NSU7XG4gICAgcGFkZGluZzogMCBtcygzKSAwIG1zKCk7XG4gIH1cbn0iLCIvKiBjb21wb25lbnRzL191c2VyLnNjc3MgKi9cblxuQGltcG9ydCAnY29tcG9uZW50cy91c2VyL3VzZXItbG9naW4nO1xuLy8gQGltcG9ydCAnY29tcG9uZW50cy91c2VyL3VzZXItcHJvZmlsZSc7XG4iLCIvKiBjb21wb25lbnRzL3VzZXIvX3VzZXItbG9naW4uc2NzcyAqL1xuXG4vLyAubm90LWxvZ2dlZC1pbi5wYWdlLXVzZXItbG9naW57XG4ubm90LWxvZ2dlZC1pbi5wYWdlLXVzZXJ7XG4gICN1c2VyLWxvZ2lue1xuICAgIGxhYmVse1xuICAgICAgZm9udC1zaXplOiBtcygtMSk7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgbWFyZ2luLWJvdHRvbTogbXMoLTQpO1xuICAgIH1cblxuICAgIC5mb3JtLXRleHR7XG4gICAgICBAaW5jbHVkZSByZXNldC1mb3JtLWZpZWxkO1xuICAgICAgYmFja2dyb3VuZDogJGxpZ2h0LWdyZXk7XG4gICAgICBwYWRkaW5nOiAgbXMoLTMpO1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWVkaXVtLXNjcmVlbikge1xuICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgfVxuICAgICAgLy8gJjpmb2N1c3tcblxuICAgICAgLy8gfVxuICAgIH1cblxuICAgIC5mb3JtLXN1Ym1pdHtcbiAgICAgIEBpbmNsdWRlIGJ0bjtcbiAgICAgIEBpbmNsdWRlIGJ0bi1wcmltYXJ5O1xuICAgIH1cbiAgfVxufVxuIiwiLyogY29tcG9uZW50cy9fd2ViZm9ybS5zY3NzICovXG5cbi5ub2RlLXdlYmZvcm17XG4gIGxhYmVse1xuICAgIGZvbnQtc2l6ZTogbXMoLTEpO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbWFyZ2luLWJvdHRvbTogbXMoLTIpO1xuICAgICYub3B0aW9ue1xuICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICBmb250LXNpemU6IG1zKCk7XG4gICAgICBsaW5lLWhlaWdodDogbXMoMyk7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG4gIH1cbiAgLmZvcm0tdGV4dCxcbiAgLmZvcm0tdGV4dGFyZWF7XG4gICAgQGluY2x1ZGUgcmVzZXQtZm9ybS1maWVsZDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICByZXNpemU6IG5vbmU7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWVkaXVtLXNjcmVlbikge1xuICAgICAgLy8gd2lkdGg6IDUwJTtcbiAgICB9XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdGludCgkbGlnaHQtZ3JleSwgODAlKTtcbiAgICBwYWRkaW5nOiAgbXMoLTMpO1xuICB9XG5cbiAgLmZvcm0tc2VsZWN0e1xuICAgIEBpbmNsdWRlIHJlc2V0LWZvcm0tZmllbGQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWVkaXVtLXNjcmVlbikge1xuICAgICAgd2lkdGg6IDUwJTtcbiAgICB9XG4gIH1cblxuICAuZm9ybS1jaGVja2JveHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBtYXJnaW4tcmlnaHQ6IG1zKC0zKTtcbiAgfVxuXG4gIC5kZXNjcmlwdGlvbntcbiAgICBtYXJnaW4tYm90dG9tOiBtcygtMSk7XG4gIH1cblxuICAuYnV0dG9uLXByaW1hcnl7XG4gICAgQGluY2x1ZGUgYnRuO1xuICAgIEBpbmNsdWRlIGJ0bi1wcmltYXJ5O1xuICB9XG59XG4iLCIvKiBzZWN0aW9ucy5zY3NzICovXG4vLyBAaW1wb3J0cyBhbGwgU0FTUyBwYXJ0aWFscyBmcm9tIHRoZSAvc2VjdGlvbnMgZm9sZGVyLlxuLy8gY29udGFpbnMgc3R5bGVzIGZvciBtYWluIHNlY3Rpb25zIG9mIGEgc2l0ZSwgZWcuIHRoZSBuZXdzIG9yXG4vLyBldmVudHMgc2VjdGlvbi4gY2FuIGNvbnRhaW4gc3BlY2lmaWMgY29tcG9uZW50cyB1bmlxdWUgdG8gdGhhdCBzZWN0aW9uXG5cbi8vIElmIGFkZGluZyBuZXcgZnVuY3Rpb25sYWl0eSB0aGF0IGlzIHNwZWNpZmljIHRvIHRoZSBwcm9qZWN0LCBjcmVhdGUgYSBuZXdcbi8vIFNBU1MgcGFydGlhbCB3aXRoIHRoZSBhcHByb3ByaWF0ZSBuYW1lIGFuZCBzYXZlIGl0IGluIHRoZSAvc2VjdGlvbnMgZm9sZGVyLlxuLy8gZWcuIHNlY3Rpb25zL21lbWJlcnNcblxuLy8gQGltcG9ydCAnc2VjdGlvbnMvYmxvZyc7XG5AaW1wb3J0ICdzZWN0aW9ucy9ldmVudHMnO1xuQGltcG9ydCAnc2VjdGlvbnMvbmV3cyc7XG5AaW1wb3J0ICdzZWN0aW9ucy9wYWdlJztcbkBpbXBvcnQgJ3NlY3Rpb25zL2NvdW5jaWxfbWVtYmVycyc7XG5AaW1wb3J0ICdzZWN0aW9ucy9tZWV0aW5nX21pbnV0ZXMnO1xuQGltcG9ydCAnc2VjdGlvbnMvbGlmZWxvbmdfbGVhcm5pbmcnO1xuQGltcG9ydCAnc2VjdGlvbnMvaGlsbF93aW5kc19zb2NpZXR5JztcbkBpbXBvcnQgJ3NlY3Rpb25zL3RyYXZlbCc7XG5cbiIsIi8qIHNlY3Rpb25zL19ldmVudHMuc2NzcyAqL1xuLy8gYWxsIGV2ZW50IHJlbGF0ZWQgaXRlbXMgbGlrZSBjYWxlbmRhcnMsIHJlY2VudCBldmVudHMsIGV2ZW50IG5vZGVzXG5cbkBpbXBvcnQgJ3NlY3Rpb25zL2V2ZW50cy9ub2RlLWV2ZW50cyc7XG5AaW1wb3J0ICdzZWN0aW9ucy9ldmVudHMvdmlldy1ldmVudHMnO1xuQGltcG9ydCAnc2VjdGlvbnMvZXZlbnRzL3ZpZXctZXZlbnQtZmlsdGVycyc7XG5AaW1wb3J0ICdzZWN0aW9ucy9ldmVudHMvYmxvY2stdmlld3MtZXZlbnRzLWJsb2NrJztcbkBpbXBvcnQgJ3NlY3Rpb25zL2V2ZW50cy9ibG9jay1mZWF0dXJlZC1ldmVudC1oZWFkZXInO1xuQGltcG9ydCAnc2VjdGlvbnMvZXZlbnRzL2Jsb2NrLW5vZGUtZXZlbnQtaGVhZGVyJztcbkBpbXBvcnQgJ3NlY3Rpb25zL2V2ZW50cy9ibG9jay1yZWxhdGVkLWV2ZW50cyc7XG5AaW1wb3J0ICdzZWN0aW9ucy9ldmVudHMvYmxvY2stZG9sLWV2ZW50cyc7XG5AaW1wb3J0ICdzZWN0aW9ucy9ldmVudHMvYmxvY2staG9tZWNvbWluZy1ldmVudHMnO1xuQGltcG9ydCAnc2VjdGlvbnMvZXZlbnRzL2Jsb2NrLWRlLWV2ZW50cy1ldmVudHMtbWluaS1jYWxlbmRhcic7XG4iLCIvKiBzZWN0aW9ucy9ldmVudHMvX25vZGUtZXZlbnRzLnNjc3MgKi9cbi8vIGNvbnRhaW5zIG5vZGUgc3BlY2lmaWMgc3R5bGVzIHRvIG5ld3NcblxuLm5vZGUtdHlwZS1ldmVudHN7XG5cbiAgLmZpZWxkLW5hbWUtZmllbGQtZGF0ZXtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIGZvbnQtd2VpZ2h0OiAkbGlnaHQ7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFycm93LXNjcmVlbikge1xuICAgICAgZm9udC1zaXplOiBtcygxKTtcbiAgICB9XG4gIH1cblxuICAuZmllbGQtbmFtZS1maWVsZC1sb2NhdGlvbntcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIGZvbnQtd2VpZ2h0OiAkbGlnaHQ7XG4gICAgLy8gQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFycm93LXNjcmVlbikge1xuICAgICAgLy8gZm9udC1zaXplOiBtcygxKTtcbiAgICAvLyB9XG4gIH1cblxuICAvLyAuZmllbGQtbmFtZS1maWVsZC1kYXRle1xuICAgIC8vIGNvbG9yOiAkZGFydG1vdXRoLWdyZWVuO1xuICAvLyB9XG5cbiAgLmZpZWxkLW5hbWUtZmllbGQtZXZlbnQtY2F0ZWdvcmllcyxcbiAgLmZpZWxkLW5hbWUtZmllbGQtYWZmaWxpYXRlZC1ncm91cHMsXG4gIC5maWVsZC1uYW1lLWZpZWxkLXJlZ2lvbmFsLWNsdWJze1xuICAgIGZvbnQtd2VpZ2h0OiAkbGlnaHQ7XG4gICAgLy8gbWFyZ2luLWJvdHRvbTogbXMoKTtcbiAgICAuZmllbGQtaXRlbXtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHBhZGRpbmctcmlnaHQ6IG1zKC0zKTtcbiAgICAgIG1hcmdpbi10b3A6IG1zKC02KTtcbiAgICB9XG4gIH1cbiAgLmZpZWxkLW5hbWUtZmllbGQtcnN2cCxcbiAgLmZpZWxkLW5hbWUtZmllbGQtYXR0ZW5kZWUtbGlzdHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgYXtcbiAgICAgIEBpbmNsdWRlIGJ0bjtcbiAgICAgIEBpbmNsdWRlIGJ0bi1wcmltYXJ5O1xuICAgIH1cbiAgfVxufVxuXG4vLyAubm9kZS1ldmVudHN7XG4gIC8vIC5maWVsZC1uYW1lLWZpZWxkLWltYWdle1xuICAvLyAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHdlaXJkLXNjcmVlbikge1xuICAvLyAgICAgQGluY2x1ZGUgZmxvYXQtc3Bhbig2LCAkZ3V0dGVyOjApO1xuICAvLyAgIH1cbiAgLy8gfVxuLy8gfVxuIiwiLy9zZWN0aW9ucy9ldmVudHMvX3ZpZXctZXZlbnRzLnNjc3Ncbi52aWV3LWV2ZW50cy1wYWdle1xuICAmLmxpc3QtZGlzcGxheXtcbiAgICAuZmllbGQtbmFtZS1maWVsZC1pbWFnZXtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgfVxuICAgIC5ldmVudC1kYXRlLWNvbnRhaW5lcntcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHdpZHRoOiAyMDBweDtcbiAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc21hbGwtc2NyZWVuKSB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmZpZWxkLXR5cGUtZGF0ZXRpbWV7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFydG1vdXRoLWdyZWVuO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1zKC0xKSBtcygxKTtcbiAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAvLyBAaW5jbHVkZSBicmVha3BvaW50KCRzbWFsbC1zY3JlZW4pIHtcbiAgICAgICAgLy8gICBsZWZ0OiAwO1xuICAgICAgICAvLyB9XG4gICAgICAgIC5kYXRlLWRpc3BsYXktc2luZ2xlX19tb250aHtcbiAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgICAgZm9udC1zaXplOiBtcygpO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkbm9ybWFsO1xuICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IG1zKCk7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgICAuZGF0ZS1kaXNwbGF5LXNpbmdsZV9fZGF5e1xuICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICBmb250LXNpemU6IG1zKDMpO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkYm9sZDtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiBtcygpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5maWVsZC1uYW1lLWZpZWxkLWFkZHJlc3MsXG4gICAgLmZpZWxkLW5hbWUtZmllbGQtbG9jYXRpb24sXG4gICAgLnZpZXdzLWZpZWxkLWZpZWxkLWRhdGUtMXtcbiAgICAgIG1hcmdpbi1ib3R0b206IG1zKC0zKTtcbiAgICB9XG4gIH1cbn1cblxuLnZpZXctZXZlbnRzLnZpZXctZGlzcGxheS1pZC1wYWdlXzEge1xuICAuZGF0ZS1kaXNwbGF5LXJhbmdlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gIH1cbn1cbiIsIi8vc2VjdGlvbnMvZXZlbnRzL192aWV3LWV2ZW50cy5zY3NzXG4udmlldy1ldmVudHMtcGFnZXtcbiAgLnZpZXctZmlsdGVyc3tcbiAgICBtYXJnaW4tYm90dG9tOiBtcygxKTtcbiAgICAudmlld3MtZXhwb3NlZC13aWRnZXRze1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAjZXZlbnQtdGFic3tcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGJvcmRlci1ib3R0b206IDNweCBzb2xpZCB0aW50KCRsaWdodC1ncmV5LCA2MCUpO1xuICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuICAgIC51aS10YWJzLW5hdntcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlcjogbm9uZTtcblxuICAgICAgbGl7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbXMoLTMpO1xuICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkZGFydG1vdXRoLWdyZWVuO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkbGlnaHQtZ3JleTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCR3ZWlyZC1zY3JlZW4pIHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbiAgICAgICAgfVxuICAgICAgICAmLnVpLXRhYnMtYWN0aXZle1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRpbnQoJGxpZ2h0LWdyZXksIDYwJSk7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZW1lcmFsZC1ncmVlbjtcbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCR3ZWlyZC1zY3JlZW4pIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRpbnQoJGxpZ2h0LWdyZXksIDYwJSk7XG4gICAgICAgICAgICBjb2xvcjogJGRhcmstZ3JleTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYXtcbiAgICAgICAgICAgIGNvbG9yOiAkZGFyay1ncmV5O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGF7XG4gICAgICAgICAgQGV4dGVuZCAuYnRuO1xuICAgICAgICAgIHBhZGRpbmc6IG1zKDIpIG1zKDMpO1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogbXMoLTYpO1xuICAgICAgICAgIGNvbG9yOiAkZGFydG1vdXRoLWdyZWVuO1xuICAgICAgICAgICY6aG92ZXJ7XG4gICAgICAgICAgICBjb2xvcjogJGRhcmstZ3JleTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAudWktdGFicy1wYW5lbHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRpbnQoJGxpZ2h0LWdyZXksIDYwJSk7XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgcGFkZGluZzogbXMoKTtcbiAgICB9XG5cbiAgICAuYmVmLWNoZWNrYm94ZXN7XG4gICAgICAuZm9ybS10eXBlLWJlZi1jaGVja2JveHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW46IDAgbXMoLTYpIG1zKC02KSAwO1xuICAgICAgICBwYWRkaW5nOiBtcygtMykgbXMoLTEpO1xuICAgICAgICBAZXh0ZW5kIC5idG47XG4gICAgICAgIGNvbG9yOiAkZGFydG1vdXRoLWdyZWVuO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkbGlnaHQtZ3JleTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICAgIGxhYmVse1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiBtcygyKTtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1zKC02KTtcbiAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5kZXNjcmlwdGlvbntcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLnZpZXdzLWV4cG9zZWQtZm9ybV9fZm9ybS1hY3Rpb25ze1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkbGlnaHQtZ3JleTtcbiAgICAgIG1hcmdpbi10b3A6IG1zKCk7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogbXMoKTtcbiAgICAgIC52aWV3cy1zdWJtaXQtYnV0dG9ue1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAuZm9ybS1zdWJtaXR7XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgIEBpbmNsdWRlIGJ0bjtcbiAgICAgICAgICBAaW5jbHVkZSBidG4tcHJpbWFyeTtcbiAgICAgICAgICBwYWRkaW5nOiBtcygtMikgbXMoMSkgIWltcG9ydGFudDtcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkZW1lcmFsZC1ncmVlbjtcbiAgICAgICAgICAmOmhvdmVye1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkZGFydG1vdXRoLWdyZWVuO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAudmlld3MtcmVzZXQtYnV0dG9ue1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAuZm9ybS1zdWJtaXR7XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgIEBpbmNsdWRlIGJ0bjtcbiAgICAgICAgICBAaW5jbHVkZSBidG4tc2Vjb25kYXJ5O1xuICAgICAgICAgIHBhZGRpbmc6IG1zKC0yKSBtcygxKSAhaW1wb3J0YW50O1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5uby1qcyAudmlldy1ldmVudHMtcGFnZXtcbiAgLnZpZXctZmlsdGVyc3tcbiAgICBib3JkZXItYm90dG9tOiAzcHggc29saWQgJGxpZ2h0LWdyZXk7XG4gIH1cbiAgI2V2ZW50LXRhYnN7XG4gICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICB1bHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBsaXtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBhe1xuICAgICAgICAgIEBleHRlbmQgLmJ0bjtcbiAgICAgICAgICBAZXh0ZW5kIC5idG4tc2Vjb25kYXJ5O1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogbXMoLTYpO1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRsaWdodC1ncmV5O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC50YWJzLWdyb3Vwe1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGludCgkbGlnaHQtZ3JleSwgNjAlKTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICAgIHBhZGRpbmc6IG1zKCk7XG4gICAgICBtYXJnaW4tYm90dG9tOiBtcygpO1xuICAgIH1cbiAgfVxuICAuaW5hY3RpdmUgLnZpZXdzLWV4cG9zZWQtZm9ybV9fZm9ybS1hY3Rpb25ze1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgfVxufVxuIiwiLy9zZWN0aW9ucy9ldmVudHMvX2Jsb2NrLXZpZXdzLWV2ZW50cy1ibG9jay5zY3NzXG5cbi5ibG9jay12aWV3cy1ldmVudHMtYmxvY2t7XG4gIC5maWVsZHtcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgJGxpZ2h0LWdyZXk7XG4gICAgcGFkZGluZy1ib3R0b206IG1zKC0xKTtcbiAgICBtYXJnaW4tYm90dG9tOiBtcygtMSk7XG4gICAgJjpsYXN0LWNoaWxke1xuICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cbiAgLmZpZWxkLW5hbWUtZmllbGQtY29udGFjdC1uYW1le1xuICAgIGZvbnQtc2l6ZTogbXMoMSk7XG4gICAgZm9udC13ZWlnaHQ6ICRsaWdodDtcbiAgfVxuICAuZmllbGQtbmFtZS1maWVsZC1jb250YWN0LXBob25le1xuICAgIGZvbnQtd2VpZ2h0OiAkbGlnaHQ7XG4gIH1cblxuICAuZmllbGQtbmFtZS1maWVsZC1jb250YWN0LWVtYWlse1xuICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgfVxufSIsIi8vc2VjdGlvbnMvZXZlbnRzL19ibG9jay1mZWF0dXJlZC1ldmVudC1oZWFkZXIuc2Nzc1xuLmJsb2NrLXZpZXdzLWV2ZW50cy1ibG9jay0xe1xuICBoMXtcbiAgICBAZXh0ZW5kIC5sYXlvdXQtY29udGFpbmVyO1xuICAgIG1hcmdpbjowIGF1dG8gbXMoLTMpIGF1dG87XG4gIH1cbiAgLmNvbDF7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkd2VpcmQtc2NyZWVuKSB7XG4gICAgICBAaW5jbHVkZSBmbG9hdC1zcGFuKDQsICRndXR0ZXI6MCk7XG4gICAgfVxuICAgIC5oZWFkZXItaW1hZ2V7XG4gICAgICAvLyBAaW5jbHVkZSBzcXVpc2gtdGV4dDtcbiAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIC8vIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgaGVpZ2h0OiAyMDBweDtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCR3ZWlyZC1zY3JlZW4pIHtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5hcnJvdy1sZWZ0e1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgcmlnaHQ6IDQ2JTtcbiAgICAgIHdpZHRoOiAwO1xuICAgICAgaGVpZ2h0OiAwO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAxNXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLWxlZnQ6IDE1cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItYm90dG9tOiAxNXB4IHNvbGlkIHRpbnQoJGxpZ2h0LWdyZXksIDYwJSk7XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHdlaXJkLXNjcmVlbikge1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgdG9wOiA0NSU7XG4gICAgICAgIGJvcmRlci10b3A6IDE1cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDE1cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci1yaWdodDogMTVweCBzb2xpZCB0aW50KCRsaWdodC1ncmV5LCA2MCUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5jb2wye1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRpbnQoJGxpZ2h0LWdyZXksIDYwJSk7XG4gICAgcGFkZGluZzogbXMoMikgNi4zODI5OCUgMCA2LjM4Mjk4JTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHdlaXJkLXNjcmVlbikge1xuICAgICAgQGluY2x1ZGUgZmxvYXQtc3Bhbig0LCAkZ3V0dGVyOjApO1xuICAgICAgcGFkZGluZzogbXMoMikgbXMoMik7XG4gICAgICBib3JkZXItcmlnaHQ6IDNweCBzb2xpZCAkbGlnaHQtZ3JleTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgICBtaW4taGVpZ2h0OiAzMDBweDtcbiAgICAgIHBhZGRpbmc6IG1zKDMpIDMuNWVtO1xuICAgIH1cbiAgfVxuXG4gIC5jb2wze1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRpbnQoJGxpZ2h0LWdyZXksIDYwJSk7XG4gICAgcGFkZGluZzogbXMoMikgNi4zODI5OCU7XG4gICAgLy8gbWFyZ2luLWJvdHRvbTogbXMoMyk7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkd2VpcmQtc2NyZWVuKSB7XG4gICAgICBAaW5jbHVkZSBmbG9hdC1zcGFuKDQsbGFzdCwgJGd1dHRlcjowKTtcbiAgICAgIHBhZGRpbmc6IG1zKDIpIG1zKDIpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICAgIGhlaWdodDogMzAwcHg7XG4gICAgICBwYWRkaW5nOiBtcygzKSAzLjVlbTtcbiAgICB9XG4gIH1cblxuICBoMntcbiAgICBhe1xuICAgICAgY29sb3I6ICRkYXJrLWdyZXk7XG4gICAgICAmOmhvdmVye1xuICAgICAgICBjb2xvcjogJG5ldXRyYWwtZ3JleTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5maWVsZC1uYW1lLWJvZHl7XG4gICAgZm9udC13ZWlnaHQ6ICRsaWdodDtcbiAgICBsaW5lLWhlaWdodDogbXMoMik7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuICAuZGF0ZS1kaXNwbGF5LXNpbmdsZXtcbiAgICAvLyBjb2xvcjogJGRhcnRtb3V0aC1ncmVlbjtcbiAgICBmb250LXNpemU6IG1zKDEpO1xuICAgIGZvbnQtd2VpZ2h0OiAkbGlnaHQ7XG4gICAgLmRhdGUtZGlzcGxheS1yYW5nZXtcbiAgICAgIGNvbG9yOiAkZGFyay1ncmV5O1xuICAgICAgbWFyZ2luLXRvcDogbXMoLTMpO1xuICAgIH1cbiAgfVxuXG4gIC5maWVsZC1uYW1lLWZpZWxkLWFkZHJlc3MsXG4gIC5maWVsZC1uYW1lLWZpZWxkLWxvY2F0aW9ue1xuICAgIC8vIGZvbnQtc2l6ZTogbXMoMSk7XG4gICAgZm9udC13ZWlnaHQ6ICRsaWdodDtcbiAgICBsaW5lLWhlaWdodDogbXMoMSk7XG4gICAgbWFyZ2luLWJvdHRvbTogbXMoKTtcbiAgICBwYWRkaW5nLWJvdHRvbTogbXMoKTtcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgJGxpZ2h0LWdyZXk7XG4gICAgcHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG4gIC50ZXh0Zm9ybWF0dGVyLWxpc3R7XG4gICAgZm9udC13ZWlnaHQ6ICRsaWdodDtcbiAgICBtYXJnaW4tYm90dG9tOiBtcygpO1xuICB9XG5cbiAgLnZpZXdzLWZpZWxkLXZpZXctbm9kZXtcbiAgICBhe1xuICAgICAgQGluY2x1ZGUgYnRuO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgJGRhcnRtb3V0aC1ncmVlbjtcbiAgICAgIGNvbG9yOiAkZGFyay1ncmV5O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgJjpob3ZlcntcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGVtZXJhbGQtZ3JlZW47XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRlbWVyYWxkLWdyZWVuO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICB9XG4gICAgICAmOmFmdGVye1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLmJsb2NrLXZpZXdzLWV2ZW50cy1ibG9jay01e1xuICAuZXZlbnQtaGVhZGVyX19pbWFnZXtcbiAgICAuaGVhZGVyLWltYWdle1xuICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICBoZWlnaHQ6IDIwMHB4O1xuICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHdlaXJkLXNjcmVlbikge1xuICAgICAgICBAaW5jbHVkZSBmbG9hdC1zcGFuKDYsICRndXR0ZXI6MCk7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIH1cbiAgICB9XG4gICAgLnZpZXdzLWZpZWxkLWZpZWxkLWltYWdlIHtcbiAgICAgIGltZyB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDQwMHB4O1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgbWF4LXdpZHRoOiA1MCU7XG4gICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsgICAgXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLmV2ZW50LWhlYWRlcl9faW5mb3tcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aW50KCRsaWdodC1ncmV5LCA2MCUpO1xuICAgIHBhZGRpbmc6IG1zKDIpIDYuMzgyOTglO1xuICAgIG1hcmdpbi1ib3R0b206IG1zKDMpO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkd2VpcmQtc2NyZWVuKSB7XG4gICAgICBAaW5jbHVkZSBmbG9hdC1zcGFuKDYsbGFzdCwgJGd1dHRlcjowKTtcbiAgICAgIHBhZGRpbmc6IG1zKDMpIDMuNWVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICAgIG1pbi1oZWlnaHQ6IDMwMHB4O1xuICAgIH1cblxuICAgIGgxe1xuICAgICAgZm9udC1zaXplOiBtcygxKTtcbiAgICAgIGNvbG9yOiAkZGFyay1ncmV5O1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFycm93LXNjcmVlbikge1xuICAgICAgICBmb250LXNpemU6IG1zKDIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5maWVsZC1uYW1lLWZpZWxkLWRhdGUge1xuICAgICAgbWFyZ2luLWJvdHRvbTogbXMoKTtcblxuICAgICAgLmRhdGUtZGlzcGxheS1yYW5nZXtcbiAgICAgICAgbWFyZ2luLXRvcDogbXMoLTMpO1xuICAgICAgICAvL2ZvbnQtc2l6ZTogbXMoLTEpO1xuICAgICAgICAvL2ZvbnQtd2VpZ2h0OiAkbm9ybWFsO1xuICAgICAgICBjb2xvcjogJGRhcmstZ3JleTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuZmllbGQtbmFtZS1maWVsZC1hZGRyZXNzLFxuICAgIC5maWVsZC1uYW1lLWZpZWxkLWxvY2F0aW9ue1xuICAgICAgZm9udC13ZWlnaHQ6ICRsaWdodDtcbiAgICAgIGxpbmUtaGVpZ2h0OiBtcygxKTtcbiAgICAgIG1hcmdpbi1ib3R0b206IG1zKCk7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogbXMoKTtcbiAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkbGlnaHQtZ3JleTtcbiAgICAgIHB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvL3NlY3Rpb25zL2V2ZW50cy9fYmxvY2stcmVsYXRlZC1ldmVudHMuc2Nzc1xuXG4uYmxvY2stdmlld3MtZXZlbnRzLWJsb2NrLTR7XG4gIEBleHRlbmQgLnJlbGF0ZWQtY29udGVudDtcbiAgdWx7XG4gICAgLmZpZWxkLW5hbWUtZmllbGQtZGF0ZXtcbiAgICAgIGNvbG9yOiAkZGFyay1ncmV5O1xuICAgICAgZm9udC1zaXplOiBtcygpO1xuICAgICAgZm9udC13ZWlnaHQ6ICRub3JtYWw7XG4gICAgICBtYXJnaW4tYm90dG9tOiBtcygpO1xuXG4gICAgICAuZGF0ZS1kaXNwbGF5LXNpbmdsZXtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgfVxuICAgICAgLmRhdGUtZGlzcGxheS1yYW5nZXtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5maWVsZC1uYW1lLWJvZHl7XG4gICAgICBmb250LXdlaWdodDogJGxpZ2h0O1xuICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgICB9XG4gIH1cbn0iLCIuYmxvY2stdmlld3MtZXZlbnRzLWJsb2NrLTh7XG4gIG1hcmdpbi10b3A6IG1zKDMpO1xuICBoMntcbiAgICBAZXh0ZW5kIC5oZWFkaW5ncztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZW1lcmFsZC1ncmVlbjtcbiAgICBtYXJnaW4tYm90dG9tOiBtcygyKTtcbiAgICBzcGFue1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgfVxuICB9XG4gIGgze1xuICAgIGF7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYXJyb3ctc2NyZWVuKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogbXMoMSk7XG4gICAgICB9XG4gICAgICAmOmhvdmVye1xuICAgICAgICBjb2xvcjogJGZvcmVzdC1ncmVlbjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCIuYmxvY2stdmlld3MtZXZlbnRzLWJsb2NrLTZ7XG4gIG1hcmdpbi10b3A6IG1zKDMpO1xuICBoMntcbiAgICBAZXh0ZW5kIC5oZWFkaW5ncztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZW1lcmFsZC1ncmVlbjtcbiAgICBtYXJnaW4tYm90dG9tOiBtcygyKTtcbiAgICBzcGFue1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgfVxuICB9XG4gIGgze1xuICAgIGF7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYXJyb3ctc2NyZWVuKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogbXMoMSk7XG4gICAgICB9XG4gICAgICAmOmhvdmVye1xuICAgICAgICBjb2xvcjogJGZvcmVzdC1ncmVlbjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCIvL3NlY3Rpb25zL2V2ZW50cy9fYmxvY2stZGUtZXZlbnRzLWV2ZW50cy1taW5pLWNhbGVuZGFyLnNjc3Ncbi5yZWdpb24tc2lkZWJhci1zZWNvbmQgLmJsb2NrLWRlLWV2ZW50cy1ldmVudHMtbWluaS1jYWxlbmRhcntcbiAgcGFkZGluZzogbXMoLTEpIG1zKCk7XG4gIG1hcmdpbi1ib3R0b206IG1zKDIpO1xuXG4gIC5jbG5kci1jb250cm9sc3tcbiAgICAubW9udGh7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgY29sb3I6ICRkYXJ0bW91dGgtZ3JlZW47XG4gICAgICBmb250LXNpemU6IG1zKDEpO1xuICAgICAgd2lkdGg6IDUwJTtcbiAgICAgIHBhZGRpbmc6IDAgbXMoLTEpO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4zcyBlYXNlLW91dDtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICY6aG92ZXJ7XG4gICAgICAgIGNvbG9yOiAkbmV1dHJhbC1ncmV5O1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWVkaXVtLXNjcmVlbikge1xuICAgICAgICBmb250LXNpemU6IG1zKCk7XG4gICAgICB9XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzdGFuZGFyZC1zY3JlZW4pIHtcbiAgICAgICAgZm9udC1zaXplOiBtcygxKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuY2xuZHItY29udHJvbC1idXR0b257XG4gICAgICB3aWR0aDogMjUlO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIHBhZGRpbmctbGVmdDogbXMoMyk7XG4gICAgICAmLnJpZ2h0YWxpZ257XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogbXMoMyk7XG4gICAgICB9XG5cbiAgICAgIC5jbG5kci1wcmV2aW91cy1idXR0b24sXG4gICAgICAuY2xuZHItbmV4dC1idXR0b257XG4gICAgICAgIEBpbmNsdWRlIHNxdWlzaC10ZXh0O1xuICAgICAgICBib3JkZXI6IDNweCBzb2xpZCAkZW1lcmFsZC1ncmVlbjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4zcyBlYXNlLW91dDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAmOmhvdmVye1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogJG5ldXRyYWwtZ3JleTtcbiAgICAgICAgICAmOmJlZm9yZXtcbiAgICAgICAgICAgIGNvbG9yOiAkbmV1dHJhbC1ncmV5O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmOmJlZm9yZXtcbiAgICAgICAgICBAaW5jbHVkZSBtYXRlcmlhbC1pY29ucztcbiAgICAgICAgICBjb2xvcjogJGVtZXJhbGQtZ3JlZW47XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5jbG5kci1uZXh0LWJ1dHRvbntcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAmOmJlZm9yZXtcbiAgICAgICAgICBmb250LXdlaWdodDogJGJvbGQ7XG4gICAgICAgICAgY29udGVudDona2V5Ym9hcmRfYXJyb3dfcmlnaHQnO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5jbG5kci1wcmV2aW91cy1idXR0b257XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAmOmJlZm9yZXtcbiAgICAgICAgICBmb250LXdlaWdodDogJGJvbGQ7XG4gICAgICAgICAgY29udGVudDona2V5Ym9hcmRfYXJyb3dfbGVmdCc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB0YWJsZXtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICAuaGVhZGVyLWRheXN7XG4gICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgJGVtZXJhbGQtZ3JlZW47XG4gICAgfVxuXG4gICAgdHI6bnRoLWNoaWxkKG9kZCksXG4gICAgdHI6bnRoLWNoaWxkKGV2ZW4pe1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGludCgkbGlnaHQtZ3JleSwgNjAlKTtcbiAgICB9XG5cbiAgICB0ZHtcbiAgICAgIHdpZHRoOiAxNC4yODU3MTQyODYlO1xuICAgICAgcGFkZGluZzogbXMoLTEpIG1zKC00KSBtcygtMSkgMDtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGZvbnQtc2l6ZTogbXMoKTtcbiAgICAgICY6bnRoLWNoaWxkKDduKzcpe1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkd2lkZS1zY3JlZW4pIHtcbiAgICAgICAgcGFkZGluZzogbXMoLTEpIG1zKC0zKTtcbiAgICAgIH1cblxuICAgICAgJi5ldmVudHtcbiAgICAgICAgY29sb3I6ICRkYXJ0bW91dGgtZ3JlZW47XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkYm9sZDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAmOmhvdmVye1xuICAgICAgICAgIGNvbG9yOiAkZm9yZXN0LWdyZWVuO1xuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwiLyogc2VjdGlvbnMvX25ld3Muc2NzcyAqL1xuLy8gYW55dGhpbmcgbmV3cyBvciBhcnRpY2xlIHJlbGF0ZWQgc2hvdWxkIGJlIGltcG9ydGVkIGhlcmUsIGZyb20gdGhlIGxhbmRpbmcgcGFnZSxcbi8vIHJlY2VudCBuZXdzIGVudHJpZXMgb24gdGhlIGhvbWUgcGFnZVxuXG5AaW1wb3J0ICdzZWN0aW9ucy9uZXdzL2Jsb2NrLXZpZXdzLWZlYXR1cmUtYmxvY2snO1xuQGltcG9ydCAnc2VjdGlvbnMvbmV3cy9ibG9jay1ob21lcGFnZS1uZXdzJztcbkBpbXBvcnQgJ3NlY3Rpb25zL25ld3Mvbm9kZS1uZXdzJztcbkBpbXBvcnQgJ3NlY3Rpb25zL25ld3Mvdmlldy1uZXdzJztcbkBpbXBvcnQgJ3NlY3Rpb25zL25ld3MvYmxvY2stbGF0ZXN0LW5ld3MtYmxvY2tzJztcbkBpbXBvcnQgJ3NlY3Rpb25zL25ld3MvYmxvY2stcmVsYXRlZC1uZXdzJztcbkBpbXBvcnQgJ3NlY3Rpb25zL25ld3MvYmxvY2stZmVhdHVyZWQtbmV3cy1oZWFkZXInO1xuQGltcG9ydCAnc2VjdGlvbnMvbmV3cy9ibG9jay1ub2RlLW5ld3MtaGVhZGVyJztcbiIsIi8vc2VjdGlvbi9uZXdzL2Jsb2NrLXZpZXdzLWZlYXR1cmUtYmxvY2suc2Nzc1xuXG4uYmxvY2stdmlld3MtZmVhdHVyZS1ibG9ja3tcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIC5jb2wxe1xuICAgICAgLmhlYWRlci1pbWFnZXtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFycm93LXNjcmVlbikge1xuICAgICAgICBAaW5jbHVkZSBmbG9hdC1zcGFuKDYuOTApO1xuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCR3ZWlyZC1zY3JlZW4pIHtcbiAgICAgICAgQGluY2x1ZGUgZmxvYXQtc3Bhbig3LjkwKTtcbiAgICAgIH1cbiAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIC8vIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIGhlaWdodDogMjAwcHg7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHdlaXJkLXNjcmVlbikge1xuICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuYXJyb3ctbGVmdHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiA0NiU7XG4gICAgICAgIHdpZHRoOiAwO1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIGJvcmRlci1yaWdodDogMTVweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDE1cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDE1cHggc29saWQgdGludCgkbGlnaHQtZ3JleSwgNjAlKTtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYXJyb3ctc2NyZWVuKSB7XG4gICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgdG9wOiA0NSU7XG4gICAgICAgICAgYm9yZGVyLXRvcDogMTVweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICBib3JkZXItYm90dG9tOiAxNXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgIGJvcmRlci1yaWdodDogMTVweCBzb2xpZCB0aW50KCRsaWdodC1ncmV5LCA2MCUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmNvbDJ7XG4gICAgICBwYWRkaW5nOiBtcygzKSAzLjVlbTtcbiAgICAgIC8vIG1hcmdpbi1ib3R0b206IG1zKDEpO1xuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYXJyb3ctc2NyZWVuKSB7XG4gICAgICAgIEBpbmNsdWRlIGZsb2F0LXNwYW4oNSxsYXN0KTtcbiAgICAgICAgcGFkZGluZzogbXMoMykgMDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgLy8gbWluLWhlaWdodDogMzAwcHg7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHdlaXJkLXNjcmVlbikge1xuICAgICAgICBAaW5jbHVkZSBmbG9hdC1zcGFuKDQsbGFzdCk7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDMwMHB4O1xuICAgICAgICAvLyBwYWRkaW5nOiBtcygzKSAwO1xuICAgICAgICAvLyBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgfVxuXG4gICAgICAubmV3cy1jb250ZW50e1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYXJyb3ctc2NyZWVuKSB7XG4gICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgbWF4LXdpZHRoOiA0MzBweDtcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtcygxKTtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCR3ZWlyZC1zY3JlZW4pIHtcbiAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBtYXgtd2lkdGg6IDMzMHB4O1xuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1zKDEpO1xuICAgICAgICB9XG5cbiAgICAgICAgaDJ7XG4gICAgICAgICAgY29sb3I6ICRkYXJrLWdyZXk7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogbXMoMSk7XG4gICAgICAgIH1cblxuICAgICAgICAuaGVhZGluZ3N7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRhcnRtb3V0aC1ncmVlbjtcbiAgICAgICAgICAuZmllbGQtbmFtZS1maWVsZC1mZWF0dXJlLXR5cGV7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHQtZ3JleTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubGVhcm4tbW9yZXtcbiAgICAgICAgICBhe1xuICAgICAgICAgICAgQGluY2x1ZGUgYnRuO1xuICAgICAgICAgICAgQGluY2x1ZGUgYnRuLXNlY29uZGFyeTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbn0iLCIvL3NlY3Rpb24vbmV3cy9ibG9jay1ob21lcGFnZS1uZXdzLnNjc3NcblxuLmJsb2NrLXZpZXdzLW5ld3MtYmxvY2stNHtcbiAgLnZpZXdzLXJvd3tcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aW50KCRsaWdodC1ncmV5LCA2MCUpO1xuICAgIHBhZGRpbmc6IG1zKDIpO1xuICAgIG1hcmdpbi1ib3R0b206IG1zKDEpO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hcnJvdy1zY3JlZW4pIHtcbiAgICAgIEBpbmNsdWRlIGZsb2F0LXNwYW4oNik7XG4gICAgfVxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICAgIEBpbmNsdWRlIGZsb2F0LXNwYW4oNCk7XG4gICAgfVxuICAgICAgJjpudGgtY2hpbGQoM24rMil7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hcnJvdy1zY3JlZW4pIHtcbiAgICAgICAgICBAaW5jbHVkZSBmbG9hdC1zcGFuKDYsIGxhc3QpO1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICAgICAgICBAaW5jbHVkZSBmbG9hdC1zcGFuKDQpO1xuICAgICAgICB9XG4gICAgICAgIC5oZWFkaW5nc3tcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZW1lcmFsZC1ncmVlbjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi52aWV3cy1yb3ctbGFzdHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICAgICAgICBAaW5jbHVkZSBmbG9hdC1zcGFuKDQsIGxhc3QpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC52aWV3cy1maWVsZC1ub3RoaW5nLTF7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1zKDMpXG4gICAgICB9XG5cbiAgICAgIGgye1xuICAgICAgICAvLyBhe1xuICAgICAgICAgIGNvbG9yOiAkZGFyay1ncmV5O1xuICAgICAgICAgIC8vICY6aG92ZXJ7XG4gICAgICAgICAgICAvLyBjb2xvcjogJG5ldXRyYWwtZ3JleTtcbiAgICAgICAgICAvLyB9XG4gICAgICAgIC8vIH1cbiAgICAgIH1cblxuICAgICAgLnZpZXdzLWZpZWxkLXZpZXctbm9kZXtcbiAgICAgICAgYXtcbiAgICAgICAgICBAaW5jbHVkZSBidG47XG4gICAgICAgICAgQGluY2x1ZGUgYnRuLXNlY29uZGFyeTtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgfVxuICAubW9yZS1saW5re1xuICAgIGJvcmRlci10b3A6IDNweCBzb2xpZCAkbGlnaHQtZ3JleTtcbiAgICBwYWRkaW5nLXRvcDogbXMoLTEpO1xuICB9XG59IiwiLyogc2VjdGlvbnMvbmV3cy9fbm9kZS1uZXdzLnNjc3MgKi9cbi8vIGNvbnRhaW5zIG5vZGUgc3BlY2lmaWMgc3R5bGVzIHRvIG5ld3NcblxuLm5vZGUtdHlwZS1uZXdze1xuXG59XG5cbi5ub2RlLW5ld3N7XG5cbn1cbiIsIi8vc2VjdGlvbnMvZXZlbnRzL192aWV3LWV2ZW50cy5zY3NzXG4udmlldy1uZXdze1xuICAmLmxpc3QtZGlzcGxheXtcbiAgICAudmlld3MtZmllbGQtY3JlYXRlZHtcbiAgICAgIG1hcmdpbi1ib3R0b206IG1zKCk7XG4gICAgfVxuICB9XG59IiwiLy9zZWN0aW9ucy9ldmVudHMvX2Jsb2NrLWxhdGVzdC1uZXdzLWJsb2Nrcy5zY3NzXG4uYmxvY2stdmlld3MtbmV3cy1ibG9jay02LFxuLmJsb2NrLXZpZXdzLW5ld3MtYmxvY2stOHtcbiAgbWFyZ2luLXRvcDogbXMoMyk7XG4gIGgye1xuICAgIEBleHRlbmQgLmhlYWRpbmdzO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRlbWVyYWxkLWdyZWVuO1xuICAgIG1hcmdpbi1ib3R0b206IG1zKDIpO1xuICAgIHNwYW57XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICB9XG4gIH1cbiAgaDN7XG4gICAgYXtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hcnJvdy1zY3JlZW4pIHtcbiAgICAgICAgZm9udC1zaXplOiBtcygxKTtcbiAgICAgIH1cbiAgICAgICY6aG92ZXJ7XG4gICAgICAgIGNvbG9yOiAkZGFyay1ncmV5O1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBtYXJnaW4tYm90dG9tOiBtcygpO1xuICAubW9yZS1saW5re1xuICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCAkZW1lcmFsZC1ncmVlbjtcbiAgICBwYWRkaW5nLXRvcDogbXMoKTtcbiAgfVxufVxuIiwiLy9zZWN0aW9ucy9ldmVudHMvX2Jsb2NrLXJlbGF0ZWQtbmV3cy5zY3NzXG5cbi5ibG9jay12aWV3cy1uZXdzLWJsb2NrLTJ7XG4gIEBleHRlbmQgLnJlbGF0ZWQtY29udGVudDtcbn0iLCIvL3NlY3Rpb25zL2V2ZW50cy9fYmxvY2stZmVhdHVyZWQtbmV3cy1oZWFkZXIuc2Nzc1xuLmJsb2NrLXZpZXdzLW5ld3MtYmxvY2stMXtcbiAgaDF7XG4gICAgQGV4dGVuZCAubGF5b3V0LWNvbnRhaW5lcjtcbiAgICBtYXJnaW46MCBhdXRvIG1zKC0zKSBhdXRvO1xuICB9XG5cbiAgLmNvbDF7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkd2VpcmQtc2NyZWVuKSB7XG4gICAgICBAaW5jbHVkZSBmbG9hdC1zcGFuKDQsICRndXR0ZXI6MCk7XG4gICAgfVxuXG4gICAgLmhlYWRlci1pbWFnZXtcbiAgICAgIC8vIEBpbmNsdWRlIHNxdWlzaC10ZXh0O1xuICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICBoZWlnaHQ6IDIwMHB4O1xuICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHdlaXJkLXNjcmVlbikge1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmFycm93LWxlZnR7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IDA7XG4gICAgICByaWdodDogNDYlO1xuICAgICAgd2lkdGg6IDA7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgICBib3JkZXItcmlnaHQ6IDE1cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItbGVmdDogMTVweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci1ib3R0b206IDE1cHggc29saWQgdGludCgkbGlnaHQtZ3JleSwgNjAlKTtcblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkd2VpcmQtc2NyZWVuKSB7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB0b3A6IDQ1JTtcbiAgICAgICAgYm9yZGVyLXRvcDogMTVweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMTVweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxNXB4IHNvbGlkIHRpbnQoJGxpZ2h0LWdyZXksIDYwJSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmNvbDJ7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdGludCgkbGlnaHQtZ3JleSwgNjAlKTtcbiAgICBwYWRkaW5nOiBtcygyKSA2LjM4Mjk4JSAwIDYuMzgyOTglO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkd2VpcmQtc2NyZWVuKSB7XG4gICAgICBAaW5jbHVkZSBmbG9hdC1zcGFuKDQsICRndXR0ZXI6MCk7XG4gICAgICBib3JkZXItcmlnaHQ6IDNweCBzb2xpZCAkbGlnaHQtZ3JleTtcbiAgICAgIHBhZGRpbmc6IG1zKDIpIG1zKDIpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICAgIG1pbi1oZWlnaHQ6IDMwMHB4O1xuICAgICAgcGFkZGluZzogbXMoMykgMy41ZW07XG4gICAgfVxuICB9XG5cbiAgLmNvbDN7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdGludCgkbGlnaHQtZ3JleSwgNjAlKTtcbiAgICBwYWRkaW5nOiBtcygyKSA2LjM4Mjk4JTtcbiAgICAvLyBtYXJnaW4tYm90dG9tOiBtcygzKTtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCR3ZWlyZC1zY3JlZW4pIHtcbiAgICAgIEBpbmNsdWRlIGZsb2F0LXNwYW4oNCxsYXN0LCAkZ3V0dGVyOjApO1xuICAgICAgcGFkZGluZzogbXMoMikgbXMoMik7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWVkaXVtLXNjcmVlbikge1xuICAgICAgaGVpZ2h0OiAzMDBweDtcbiAgICAgIHBhZGRpbmc6IG1zKDMpIDMuNWVtO1xuICAgIH1cbiAgfVxuXG4gIGgye1xuICAgIGF7XG4gICAgICBjb2xvcjogJGRhcmstZ3JleTtcbiAgICAgICY6aG92ZXJ7XG4gICAgICAgIGNvbG9yOiAkbmV1dHJhbC1ncmV5O1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmZpZWxkLW5hbWUtYm9keXtcbiAgICBmb250LXdlaWdodDogJGxpZ2h0O1xuICAgIGxpbmUtaGVpZ2h0OiBtcygyKTtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgLy8gc3BhbntcbiAgLy8gICBmb250LXNpemU6IG1zKC0xKTtcbiAgLy8gICBmb250LXdlaWdodDogJGJvbGQ7XG4gIC8vICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgLy8gfVxuXG4gIC52aWV3cy1maWVsZC1jcmVhdGVke1xuICAgIGZvbnQtc2l6ZTogbXMoMSk7XG4gICAgZm9udC13ZWlnaHQ6ICRsaWdodDtcbiAgICBsaW5lLWhlaWdodDogbXMoMSk7XG4gICAgLy8gY29sb3I6ICRkYXJ0bW91dGgtZ3JlZW47XG4gICAgbWFyZ2luLWJvdHRvbTogbXMoKTtcbiAgfVxuXG4gIC5maWVsZC1uYW1lLWZpZWxkLW5ld3MtdHlwZXtcbiAgICBmb250LXdlaWdodDogJGxpZ2h0O1xuICAgIC5maWVsZC1pdGVte1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgcGFkZGluZy1yaWdodDogbXMoLTMpO1xuICAgICAgbWFyZ2luLXRvcDogbXMoLTYpO1xuICAgIH1cbiAgfVxufVxuIiwiLy9zZWN0aW9ucy9uZXdzL19ibG9jay1ub2RlLW5ld3MtaGVhZGVyLnNjc3Ncbi52aWV3LWRpc3BsYXktaWQtYmxvY2tfNXtcbiAgLmNvbDF7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgaW1ne1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICAgIC5pbWFnZS1maWVsZC1jYXB0aW9ue1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCA1MSwgMzAsIDAuNyk7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHBhZGRpbmc6IG1zKCkgbXMoMSkgbXMoMSkgbXMoMSk7XG4gICAgICBhe1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICB9XG4gICAgfVxuICAgIC52aWV3cy1maWVsZC1ub3RoaW5ne1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgcmlnaHQ6IDQ2JTtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hcnJvdy1zY3JlZW4pIHtcbiAgICAgICAgcmlnaHQ6IDQ5JTtcbiAgICAgIH1cbiAgICAgIC5hcnJvd3tcbiAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxNXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItbGVmdDogMTVweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMTVweCBzb2xpZCB0aW50KCRsaWdodC1ncmV5LCA2MCUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5jb2wye1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRpbnQoJGxpZ2h0LWdyZXksIDYwJSk7XG4gICAgcGFkZGluZzogbXMoMSkgbXMoMik7XG4gICAgbWFyZ2luLWJvdHRvbTogbXMoMyk7XG4gICAgaDF7XG4gICAgICBmb250LXNpemU6IG1zKDEpO1xuICAgICAgY29sb3I6ICRkYXJrLWdyZXk7XG4gICAgICBtYXJnaW4tYm90dG9tOiBtcygtMyk7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYXJyb3ctc2NyZWVuKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogbXMoMik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnZpZXdzLWZpZWxkLWNyZWF0ZWR7XG4gICAgICBmb250LXNpemU6IG1zKDEpO1xuICAgICAgZm9udC13ZWlnaHQ6ICRsaWdodDtcbiAgICAgIGxpbmUtaGVpZ2h0OiBtcygxKTtcbiAgICAgIG1hcmdpbi1ib3R0b206IG1zKC0zKTtcbiAgICB9XG5cbiAgICAuZmllbGQtbmFtZS1maWVsZC1uZXdzLXR5cGV7XG4gICAgICBmb250LXdlaWdodDogJGxpZ2h0O1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIC5maWVsZC1pdGVte1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IG1zKC0zKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8qIHNlY3Rpb25zL19wYWdlLnNjc3MgKi9cbi8vIGFueXRoaW5nIGJhc2ljIHBhZ2UgcmVsYXRlZCB0aGF0IGRvZSBub3QgbGl2ZSBpbiBhIHNlY3Rpb24gc2hvdWxkIGdvIGhlcmVcblxuQGltcG9ydCAnc2VjdGlvbnMvcGFnZS9ub2RlLXBhZ2UnO1xuQGltcG9ydCAnc2VjdGlvbnMvcGFnZS9ub2RlLWFsdW1uaS1jb3VuY2lsJztcbkBpbXBvcnQgJ3NlY3Rpb25zL3BhZ2Uvbm9kZS1jb250YWN0LXVzJztcbkBpbXBvcnQgJ3NlY3Rpb25zL3BhZ2UvZmluZC15b3VyLWNsYXNzJztcbkBpbXBvcnQgJ3NlY3Rpb25zL3BhZ2Uvbm9kZS1yZXVuaW9uJztcbkBpbXBvcnQgJ3NlY3Rpb25zL3BhZ2UvcGFnZS10YXhvbm9teS10ZXJtJztcblxuIiwiLyogc2VjdGlvbnMvcGFnZS9fYmFzaWMtcGFnZS5zY3NzICovXG4vLyBjb250YWlucyBub2RlIHNwZWNpZmljIHN0eWxlcyB0byBiYXNpYyBwYWdlXG5cbi8vIC5ub2RlLXR5cGUtcGFnZXtcblxuLy8gfVxuXG4vLyAubm9kZS1wYWdle1xuXG4vLyB9XG5cblxuLnBhZ2Utbm9kZS05MDZ7XG4gIC5jYXJkLXJvdy5jYXJkLXR3by1jb2x7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgLmNhcmR7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCR3ZWlyZC1zY3JlZW4pIHtcbiAgICAgICAgQGluY2x1ZGUgZmxvYXQtc3Bhbig2KTtcbiAgICAgIH1cbiAgICAgIG1hcmdpbi1ib3R0b206IG1zKDEpO1xuICAgICAgJjpudGgtY2hpbGQoMm4rMikge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkd2VpcmQtc2NyZWVuKSB7XG4gICAgICAgICAgQGluY2x1ZGUgZmxvYXQtc3Bhbig2LCdsYXN0Jyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLnBhZ2Utbm9kZS0xMDIze1xuICAuY2FyZHtcbiAgICAuY2FyZF9faW1hZ2V7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYXJyb3ctc2NyZWVuKSB7XG4gICAgICAgIEBpbmNsdWRlIGZsb2F0LXNwYW4oNCk7XG4gICAgICB9XG4gICAgfVxuICAgIC5jYXJkX19kZXNjcmlwdGlvbntcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hcnJvdy1zY3JlZW4pIHtcbiAgICAgICAgQGluY2x1ZGUgZmxvYXQtc3Bhbig4LGxhc3QpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLyogc2VjdGlvbnMvcGFnZS9fbm9kZS1hbHVtbmktY291bmNpbC5jc3MgKi9cblxuLnBhZ2Utbm9kZS00MTJ7XG4gIC5wcmVzaWRlbnQtY3Rhe1xuICAgIG1hcmdpbjogMCBtcyg2KSBtcygpIG1zKDYpO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNtYWxsLXNjcmVlbikge1xuICAgICAgQGluY2x1ZGUgZmxvYXQtc3Bhbig1KTtcbiAgICB9XG4gICAgcGFkZGluZy10b3A6IG1zKC0zKTtcbiAgICAuY2FyZF9fc3VwcG9ydGluZy10ZXh0e1xuICAgICAgcGFkZGluZzogbXMoLTEpIG1zKDEpO1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc21hbGwtc2NyZWVuKSB7XG4gICAgICAgIHBhZGRpbmc6IG1zKC0zKSBtcygtMSk7XG4gICAgICB9XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgICAgIHBhZGRpbmc6IG1zKC0xKSBtcygxKTtcbiAgICAgIH1cbiAgICB9XG4gICAgLmNhcmRfX2ltYWdle1xuICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICBtYXJnaW4tYm90dG9tOiBtcygtMyk7XG4gICAgICBpbWd7XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgQGluY2x1ZGUgcmVzZXQ7XG4gICAgICB9XG4gICAgfVxuICAgIGgye1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICAgIHVse1xuICAgICAgQGluY2x1ZGUgcmVzZXQ7XG4gICAgICBAaW5jbHVkZSBuby1idWxsZXRzO1xuICAgIH1cbiAgfVxufVxuIiwiLyogcGFnZS1ub2RlLTQ1MCAqL1xuXG4ucGFnZS1ub2RlLTQ1MHtcbiAgLmNhcmR7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAuY2FyZF9faW1hZ2V7XG4gICAgICBAaW5jbHVkZSBmbG9hdC1zcGFuKDUsbGFzdCk7XG4gICAgfVxuICAgIC5jYXJkX19kZXNjcmlwdGlvbntcbiAgICAgIEBpbmNsdWRlIGZsb2F0LXNwYW4oNyk7XG4gICAgfVxuICAgIC5jYXJkX190ZXh0e1xuICAgICAgY2xlYXI6Ym90aDtcbiAgICB9XG4gIH1cbiAgLmNhcmQtLWRlZmF1bHR7XG4gICAgLmNhcmRfX3N1cHBvcnRpbmctdGV4dHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRsaWdodC1ncmV5O1xuICAgIH1cbiAgfVxufVxuXG4uYmxvY2stdmlld3MtYWx1bW5pLXJlbGF0aW9ucy1vZmZpY2UtYmxvY2t7XG4gIC5pdGVtLWxpc3R7XG4gICAgbWFyZ2luLXRvcDogbXMoKTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG5cbiAgaDN7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgY29sb3I6ICRkYXJ0bW91dGgtZ3JlZW47XG4gICAgZm9udC1zaXplOiBtcygxKTtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYXJyb3ctc2NyZWVuKSB7XG4gICAgICBmb250LXNpemU6IG1zKDIpO1xuICAgIH1cbiAgfVxuICAudmlld3Mtcm93e1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGxpZ2h0LWdyZXk7XG4gICAgcGFkZGluZzogbXMoKTtcbiAgICBtYXJnaW4tYm90dG9tOiBtcygpO1xuICAgIC5maWVsZHtcbiAgICAgICY6bGFzdC1jaGlsZHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIH1cbiAgICB9XG4gICAgLnZpZXdzLWZpZWxkLXRpdGxlIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiBtcygzKTtcbiAgICB9XG4gICAgLmZpZWxkLW5hbWUtZmllbGQtZW1haWwtYWRkcmVzc3tcbiAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgICB9XG4gIH1cbiAgLnZpZXdzLXJvdy1vZGR7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFycm93LXNjcmVlbikge1xuICAgICAgQGluY2x1ZGUgZmxvYXQtc3Bhbig2KTtcbiAgICB9XG4gIH1cbiAgLnZpZXdzLXJvdy1ldmVue1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hcnJvdy1zY3JlZW4pIHtcbiAgICAgIEBpbmNsdWRlIGZsb2F0LXNwYW4oNixsYXN0KTtcbiAgICB9XG4gIH1cbn0iLCIucGFnZS1ub2RlLTQwN3tcbiAgLnllYXJze1xuICAgIG1hcmdpbi1ib3R0b206IG1zKDEpO1xuICB9XG4gIC5ncm91cC15ZWFye1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbiAgLmJ0bi15ZWFye1xuICAgIEBpbmNsdWRlIGZsb2F0LXNwYW4oMi40KTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogbXMoLTEpO1xuICAgIC8vIG1hcmdpbi1yaWdodDogbXMoLTMpO1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1zZXQtMjtcblxuICAgICY6bnRoLWNoaWxkKDVuKzUpe1xuICAgICAgQGluY2x1ZGUgZmxvYXQtc3BhbigyLjQsIGxhc3QpO1xuICAgIH1cblxuICAgIGEsXG4gICAgc3BhbntcbiAgICAgIEBpbmNsdWRlIGJ0bjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDJweCAhaW1wb3J0YW50O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGludCgkbGlnaHQtZ3JleSwgOTAlKTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRsaWdodC1ncmV5O1xuICAgICAgZm9udC1zaXplOiBtcygxKTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkbGlnaHQ7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHBhZGRpbmc6IG1zKC0zKSAwO1xuICAgIH1cblxuICAgIGF7XG4gICAgICAmOmhvdmVye1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFydG1vdXRoLWdyZWVuO1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvKiBzZWN0aW9ucy9wYWdlL19ub2RlLXJldW5pb24uc2NzcyAqL1xuXG4ubm9kZS1yZXVuaW9ue1xuICAuaG9yaXpvbnRhbC10YWJze1xuICAgIGJvcmRlcjogbm9uZTtcbiAgfVxuICB1bC5ob3Jpem9udGFsLXRhYnMtbGlzdHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBtYXJnaW4tYm90dG9tOiBtcyg1KTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgLy8gYm9yZGVyLWJvdHRvbTogNXB4IHNvbGlkICRkYXJ0bW91dGgtZ3JlZW47XG5cbiAgICBsaXtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG1hcmdpbi1yaWdodDogbXMoLTEpO1xuICAgICAgJi5maXJzdHtcbiAgICAgICAgYXtcbiAgICAgICAgICAmOjpiZWZvcmV7XG4gICAgICAgICAgICBjb250ZW50OiAnZXZlbnRfbm90ZSc7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmLmxhc3R7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgYXtcbiAgICAgICAgICAmOjpiZWZvcmV7XG4gICAgICAgICAgICBjb250ZW50OiAnZXZlbnQnO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmOmhvdmVye1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIH1cblxuICAgICAgYXtcbiAgICAgICAgQGluY2x1ZGUgYnRuO1xuICAgICAgICAvLyBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNXB4O1xuICAgICAgICAvLyBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA1cHg7XG4gICAgICAgIC8vIHBhZGRpbmc6IG1zKC0xKSBtcygxKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGxpZ2h0LWdyZXk7XG4gICAgICAgIGNvbG9yOiAkZGFyay1ncmV5O1xuICAgICAgICAvLyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAvLyB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIC8vIGZvbnQtd2VpZ2h0OiAkYm9sZDtcbiAgICAgICAgLy8gZm9udC1zaXplOiBtcygpO1xuICAgICAgICAmOjpiZWZvcmV7XG4gICAgICAgICAgQGluY2x1ZGUgbWF0ZXJpYWwtaWNvbnM7XG4gICAgICAgICAgQGluY2x1ZGUgbWQtMTg7XG4gICAgICAgICAgY29sb3I6ICRkYXJrLWdyZXk7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtcygtNik7XG4gICAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4zcyBlYXNlLW91dDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXJ7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRhcnRtb3V0aC1ncmVlbjtcbiAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgICAgJjo6YmVmb3Jle1xuICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLnNlbGVjdGVke1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgLy8gcGFkZGluZzogMDtcblxuICAgICAgICBzdHJvbmd7XG4gICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgYXtcbiAgICAgICAgICBAaW5jbHVkZSBidG47XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRhcnRtb3V0aC1ncmVlbjtcbiAgICAgICAgICAvLyBwYWRkaW5nOiBtcygtMSkgbXMoMSk7XG4gICAgICAgICAgJjo6YmVmb3Jle1xuICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGgxe1xuICAgIG1hcmdpbi1ib3R0b206IG1zKCk7XG4gIH1cblxuICAuZ3JvdXAtdGl0bGUtbGlua3N7XG4gICAgbWFyZ2luLXRvcDogbXMoLTEpO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHdlaXJkLXNjcmVlbikge1xuICAgICAgQGluY2x1ZGUgZmxvYXQtc3Bhbig0LjUsIGxhc3QpO1xuICAgIH1cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzdGFuZGFyZC1zY3JlZW4pIHtcbiAgICAgIEBpbmNsdWRlIGZsb2F0LXNwYW4oMywgbGFzdCk7XG4gICAgfVxuXG4gICAgLmZpZWxkLXR5cGUtbGluay1maWVsZHtcbiAgICAgIG1hcmdpbi1ib3R0b206IG1zKC0zKTtcblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc21hbGwtc2NyZWVuKSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxJTtcbiAgICAgICAgd2lkdGg6IDQ4LjkzNjE3JTtcbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHdlaXJkLXNjcmVlbikge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG4gICAgICBhe1xuICAgICAgICBAaW5jbHVkZSBidG47XG4gICAgICAgIEBpbmNsdWRlIGJ0bi1wcmltYXJ5O1xuICAgICAgICBmb250LXNpemU6IG1zKCk7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuXG4gICAgICAmLmZpZWxkLW5hbWUtZmllbGQtc2VlLXdoby1zLWdvaW5ne1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG5cblxuICAgIC5maWVsZC1uYW1lLWZpZWxkLWltYWdle1xuICAgICAgbWFyZ2luOiBtcygzKSBhdXRvIDAgYXV0bztcbiAgICAgIHBhZGRpbmc6IDAgbXMoNik7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYXJyb3ctc2NyZWVuKSB7XG4gICAgICAgIHBhZGRpbmc6IDAgbXMoOCk7XG4gICAgICB9XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCR3ZWlyZC1zY3JlZW4pIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgIH1cbiAgICAgIGltZ3tcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmhvcml6b250YWwtdGFicy1wYW5le1xuICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCR3ZWlyZC1zY3JlZW4pIHtcbiAgICAgIEBpbmNsdWRlIGZsb2F0LXNwYW4oNy41KTtcbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc3RhbmRhcmQtc2NyZWVuKSB7XG4gICAgICBAaW5jbHVkZSBmbG9hdC1zcGFuKDkpO1xuICAgIH1cblxuICAgIC5maWVsZC1uYW1lLXRpdGxlLWZpZWxkLFxuICAgIC5maWVsZHNldC1kZXNjcmlwdGlvbiB7XG4gICAgICBtYXJnaW4tYm90dG9tOiBtcygpO1xuICAgIH1cbiAgfVxuXG4gIHVsLnF1aWNrdGFicy10YWJze1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgbGl7XG4gICAgICBtYXJnaW46IDAgMi4xMjc2NiUgMCAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHdpZHRoOiA0OCU7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzbWFsbC1zY3JlZW4pIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIH1cblxuICAgICAgJjpudGgtY2hpbGQoMm4rMil7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIH1cblxuICAgICAgYXtcbiAgICAgICAgQGluY2x1ZGUgYnRuO1xuICAgICAgICBtYXJnaW46IDAgbXMoLTMpIG1zKC0zKSAwO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRpbnQoJGxpZ2h0LWdyZXksIDYwJSk7XG4gICAgICAgIGNvbG9yOiAkZGFyay1ncmV5O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc21hbGwtc2NyZWVuKSB7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cbiAgICAgICAgJjpob3ZlcntcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFydG1vdXRoLWdyZWVuO1xuICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLmFjdGl2ZXtcbiAgICAgICAgYXtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFydG1vdXRoLWdyZWVuO1xuICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi5sYXN0e1xuICAgICAgICBhe1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5xdWlja3RhYnNfbWFpbntcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aW50KCRsaWdodC1ncmV5LCA4MCUpO1xuICAgIHBhZGRpbmc6IG1zKDMpO1xuICAgIGJvcmRlci10b3A6IDVweCBzb2xpZCAkZGFydG1vdXRoLWdyZWVuO1xuICAgIC5xdWlja3RhYnMtdGFicGFnZXtcbiAgICAgIC5xdWlja3RhYnMtdmlld3MtZ3JvdXB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1zKCk7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIC52aWV3cy1maWVsZC1maWVsZC1kYXRlLTF7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgIHBhZGRpbmc6IG1zKC02KSBtcygpO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1zKCk7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRhcnRtb3V0aC1ncmVlbjtcbiAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgICAgZm9udC1zaXplOiBtcygtMSk7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6ICRib2xkO1xuICAgICAgICAgIC5kYXRlLWRpc3BsYXktcmFuZ2V7XG4gICAgICAgICAgICAmOmJlZm9yZXtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgbWF0ZXJpYWwtaWNvbnM7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIG1kLTE4O1xuICAgICAgICAgICAgICBjb250ZW50OidhY2Nlc3NfdGltZSc7XG4gICAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IG1zKC0xKTtcbiAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtcygtNik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGgye1xuICAgICAgICAgIGZvbnQtc2l6ZTogbXMoMSk7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogbXMoLTYpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmZpZWxkLW5hbWUtZmllbGQtbG9jYXRpb257XG4gICAgICAgICAgZm9udC13ZWlnaHQ6ICRib2xkO1xuICAgICAgICB9XG4gICAgICAgICY6bGFzdC1jaGlsZHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmZpZWxkLW5hbWUtZmllbGQtZXZlbnQtc2NoZWR1bGUtcGRme1xuICAgIGZsb2F0OiByaWdodDtcbiAgICAuZmlsZS1pY29uLFxuICAgIC5maWxlLXNpemV7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgICBhe1xuICAgICAgQGluY2x1ZGUgYnRuO1xuICAgICAgQGluY2x1ZGUgYnRuLXByaW1hcnk7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBjb2xvcjogJGRhcmstZ3JleTtcbiAgICAgICY6OmJlZm9yZXtcbiAgICAgICAgQGluY2x1ZGUgbWF0ZXJpYWwtaWNvbnM7XG4gICAgICAgIGNvbnRlbnQ6J3BpY3R1cmVfYXNfcGRmJztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBtcygtNik7XG4gICAgICAgIGNvbG9yOiAkZGFyay1ncmV5O1xuICAgICAgfVxuICAgICAgJjpob3ZlcntcbiAgICAgICAgJjo6YmVmb3Jle1xuICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICB9XG59XG4iLCIucGFnZS10YXhvbm9teS10ZXJte1xuICAudGF4b25vbXktdGVybS1kZXNjcmlwdGlvbntcbiAgICBtYXJnaW4tYm90dG9tOiBtcyg1KTtcbiAgfVxuXG4gIGFydGljbGV7XG4gICAgQGluY2x1ZGUgZGl2aWRlci1saW5lO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmctYm90dG9tOiBtcygxKTtcbiAgICBtYXJnaW4tYm90dG9tOiBtcygxKTtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYXJyb3ctc2NyZWVuKSB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogbXMoMSk7XG4gICAgICBtYXJnaW4tYm90dG9tOiBtcygxKTtcbiAgICB9XG5cbiAgICBoMntcbiAgICAgIGF7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgY29sb3I6ICRkYXJ0bW91dGgtZ3JlZW47XG4gICAgICAgICY6aG92ZXJ7XG4gICAgICAgICAgY29sb3I6ICRkYXJrLWdyZXk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLmJsb2NrLXN5c3RlbS1tYWluID4gLmNvbnRlbnQgPiBhcnRpY2xlOmxhc3Qtb2YtdHlwZXtcbiAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cbiIsIi8qIHNlY3Rpb25zL19jb3VuY2lsX21lbWJlcnMuc2NzcyAqL1xuLy8gYWxsIGV2ZW50IHJlbGF0ZWQgaXRlbXMgbGlrZSBjYWxlbmRhcnMsIHJlY2VudCBldmVudHMsIGV2ZW50IG5vZGVzXG5cbkBpbXBvcnQgJ3NlY3Rpb25zL2NvdW5jaWxfbWVtYmVycy92aWV3LWNvdW5jaWwtbWVtYmVyJztcbkBpbXBvcnQgJ3NlY3Rpb25zL2NvdW5jaWxfbWVtYmVycy9ibG9jay1jb3VuY2lsLW1lbWJlcnMnO1xuQGltcG9ydCAnc2VjdGlvbnMvY291bmNpbF9tZW1iZXJzL25vZGUtY291bmNpbC1tZW1iZXInO1xuQGltcG9ydCAnc2VjdGlvbnMvY291bmNpbF9tZW1iZXJzL3ZpZXctY291bmNpbC1tZW1iZXItaW4tY29tbWl0dGVlJzsiLCIvKiBzZWN0aW9ucy9jb3VuY2lsX21lbWJlcnMvX3ZpZXctY291bmNpbC1tZW1iZXJzLnNjc3MgKi9cbi52aWV3cy13aWRnZXQgLmRlc2NyaXB0aW9uIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLnZpZXctY291bmNpbC1tZW1iZXJ7XG4gIC52aWV3LWZpbHRlcnN7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdGludCgkbGlnaHQtZ3JleSwgNjAlKTtcbiAgICBwYWRkaW5nOiBtcygpIG1zKDIpO1xuICAgIG1hcmdpbjogbXMoNCkgMCBtcygyKSAwO1xuICB9XG4gIC52aWV3LWNvbnRlbnR7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuXG4gIC52aWV3cy1leHBvc2VkLWZvcm17XG4gICAgLnZpZXdzLWV4cG9zZWQtd2lkZ2V0e1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgd2lkdGg6IDQ3LjkzNjE3JTtcbiAgICAgIG1hcmdpbi1yaWdodDogMiU7XG4gICAgICAvLyBAaW5jbHVkZSBmbG9hdC1zcGFuKDYpO1xuICAgICAgbWFyZ2luLWJvdHRvbTogbXMoKTtcbiAgICAgIHBhZGRpbmc6IDA7XG5cblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkd2VpcmQtc2NyZWVuKSB7XG4gICAgICAgIHdpZHRoOiAyNS41MzE5MSU7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMiU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICB9XG5cbiAgICAgIC8vIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICAgIC8vICAgd2lkdGg6IDI3LjY1OTU3JTtcbiAgICAgIC8vIH1cblxuICAgICAgJjpudGgtY2hpbGQoMm4rMil7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkd2VpcmQtc2NyZWVuKSB7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAyJTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuZm9ybS10eXBlLXRleHRmaWVsZHtcbiAgICAgICAgaW5wdXR7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICAgICAgcGFkZGluZzogbXMoLTYpIG1zKC0zKTtcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkbGlnaHQtZ3JleTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC52aWV3cy13aWRnZXQtZmlsdGVyLWNvbWJpbmV7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgd2lkdGg6IDc0LjQ2ODA5JTtcbiAgICAgIC8vIEBpbmNsdWRlIGZsb2F0LXNwYW4oOS43NSk7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYXJyb3ctc2NyZWVuKSB7XG4gICAgICAgIHdpZHRoOiA4MC44NTEwNiU7XG4gICAgICB9XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCR3ZWlyZC1zY3JlZW4pIHtcbiAgICAgICAgd2lkdGg6IDI1LjUzMTkxJTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAyJTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAudmlld3Mtc3VibWl0LWJ1dHRvbntcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHdlaXJkLXNjcmVlbikge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIG1hcmdpbi10b3A6IG1zKDIpO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgICAgIH1cblxuICAgICAgLmZvcm0tc3VibWl0e1xuICAgICAgICBAaW5jbHVkZSBidG47XG4gICAgICAgIEBpbmNsdWRlIGJ0bi1wcmltYXJ5O1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdWx7XG4gICAgLnZpZXdzLXJvd3tcbiAgICAgIC8vIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkbGlnaHQtZ3JleTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRpbnQoJGxpZ2h0LWdyZXksIDgwJSk7XG4gICAgICBwYWRkaW5nOiBtcygxKTtcbiAgICAgIG1hcmdpbi1ib3R0b206IG1zKCk7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkd2VpcmQtc2NyZWVuKSB7XG4gICAgICAgIEBpbmNsdWRlIGZsb2F0LXNwYW4oNik7XG4gICAgICB9XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgICAgIEBpbmNsdWRlIGZsb2F0LXNwYW4oMTIpO1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc3RhbmRhcmQtc2NyZWVuKSB7XG4gICAgICAgIEBpbmNsdWRlIGZsb2F0LXNwYW4oNik7XG4gICAgICB9XG4gICAgICAmOm50aC1jaGlsZCgybisyKXtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkd2VpcmQtc2NyZWVuKSB7XG4gICAgICAgICAgQGluY2x1ZGUgZmxvYXQtc3Bhbig2LGxhc3QpO1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICAgICAgICBAaW5jbHVkZSBmbG9hdC1zcGFuKDEyLGxhc3QpO1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHN0YW5kYXJkLXNjcmVlbikge1xuICAgICAgICAgIEBpbmNsdWRlIGZsb2F0LXNwYW4oNixsYXN0KTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuZmllbGR7XG4gICAgICAgICY6bGFzdC1jaGlsZHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5maWVsZC1uYW1lLWZpZWxkLWltYWdle1xuICAgICAgICB3aWR0aDogMzEuOTE0ODklO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBtcygyKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFycm93LXNjcmVlbikge1xuICAgICAgICAgIHdpZHRoOiAyMy40MDQyNiU7XG4gICAgICAgIH1cbiAgICAgICAgaW1ne1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAudmlld3MtZmllbGQtdGl0bGUsXG4gICAgICAuZmllbGQtbmFtZS1maWVsZC1yb2xlcyxcbiAgICAgIC5maWVsZC1uYW1lLWZpZWxkLW1lbWJlci15ZWFyLFxuICAgICAgLmZpZWxkLW5hbWUtZmllbGQtY29tbWl0dGVlLWNoYWlyLFxuICAgICAgLmZpZWxkLW5hbWUtZmllbGQtcmVwcmVzZW50aW5nLWdyb3VwLFxuICAgICAgLmZpZWxkLW5hbWUtZmllbGQtbGVhZGVyc2hpcHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAzMS45MTQ4OSU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBtcygyKTtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFycm93LXNjcmVlbikge1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogMjMuNDA0MjYlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5lbnRpdHktZmllbGQtY29sbGVjdGlvbi1pdGVte1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgfVxuXG4gICAgICBoMntcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbXMoLTMpO1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYXJyb3ctc2NyZWVuKSB7XG4gICAgICAgICAgZm9udC1zaXplOiBtcygxKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBAaW5jbHVkZSBicmVha3BvaW50KCRzdGFuZGFyZC1zY3JlZW4pIHtcbiAgICAgICAgLy8gICBmb250LXNpemU6IG1zKDIpO1xuICAgICAgICAvLyB9XG4gICAgICB9XG5cbiAgICAgIC5maWVsZC1uYW1lLWZpZWxkLXJvbGVze1xuICAgICAgICBwe1xuICAgICAgICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCAkbGlnaHQtZ3JleTtcbiAgICAgICAgICBwYWRkaW5nLXRvcDogbXMoLTMpO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1zKC0zKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuZmllbGQtbmFtZS1maWVsZC1sZWFkZXJzaGlwe1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtcygtNCk7XG4gICAgICAgIC5maWVsZC1pdGVte1xuICAgICAgICAgIGZvbnQtc2l6ZTogbXMoMSk7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6ICRsaWdodDtcbiAgICAgICAgfVxuICAgICAgICBhe1xuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuZmllbGQtbmFtZS1maWVsZC1tZW1iZXIteWVhcntcbiAgICAgICAgZm9udC1mYW1pbHk6ICRmb250LXNldC0yO1xuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIi5yZWdpb24tc2lkZWJhci1zZWNvbmQgLmJsb2NrLWNvdW5jaWwtbWVtYmVyc3tcbiAgaDJ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGVtZXJhbGQtZ3JlZW47XG4gIH1cbiAgdWx7XG4gICAgLnZpZXdzLXJvdyB7XG4gICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgJGxpZ2h0LWdyZXk7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogbXMoLTMpO1xuICAgICAgbWFyZ2luLWJvdHRvbTogbXMoLTMpO1xuICAgICAgJjpsYXN0LWNoaWxke1xuICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIH1cbiAgICAgIGF7XG4gICAgICAgIC8vIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgY29sb3I6ICRkYXJ0bW91dGgtZ3JlZW47XG4gICAgICAgICY6aG92ZXJ7XG4gICAgICAgICAgY29sb3I6ICRuZXV0cmFsLWdyZXk7XG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwiLy9zZWN0aW9ucy9jb3VuY2lsX21lbWJlci9fbm9kZS10eXBlLWNvdW5jaWwtbWVtYmVyLnNjc3Ncbi5ub2RlLWNvdW5jaWwtbWVtYmVye1xuICAuZmllbGR7XG4gICAgbWFyZ2luLWJvdHRvbTogbXMoMyk7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc21hbGwtc2NyZWVuKSB7XG4gICAgICBtYXJnaW4tbGVmdDogMTFyZW07XG4gICAgfVxuICAgICY6bnRoLWNoaWxkKDIpIHtcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkbGlnaHQtZ3JleTtcbiAgICAgIHBhZGRpbmctdG9wOiBtcygpO1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc21hbGwtc2NyZWVuKSB7XG4gICAgICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5maWVsZC1uYW1lLWZpZWxkLWltYWdle1xuICAgIHdpZHRoOiAxMHJlbTtcbiAgICBtYXJnaW46IDAgYXV0byBtcygpIGF1dG87XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc21hbGwtc2NyZWVuKSB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgfVxuICAgIGltZ3tcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxuXG4gIC5maWVsZC1uYW1lLWZpZWxkLWxlYWRlcnNoaXB7XG4gICAgZm9udC1zaXplOiBtcygyKTtcbiAgICBjb2xvcjogJGRhcnRtb3V0aC1ncmVlbjtcbiAgICBmb250LXdlaWdodDogJGJvbGQ7XG4gICAgbWFyZ2luLWJvdHRvbTogbXMoLTEpO1xuICB9XG5cbiAgLmZpZWxkLW5hbWUtZmllbGQtYWRkaXRpb25hbC1yZXByZXNlbnRhdGl2ZS0ge1xuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkbGlnaHQtZ3JleTtcbiAgICBtYXJnaW4tYm90dG9tOiBtcygpO1xuICAgIHBhZGRpbmctYm90dG9tOiBtcygpO1xuXG4gIH1cblxuICAuZmllbGQtbmFtZS1maWVsZC1tZW1iZXIteWVhcntcbiAgICBtYXJnaW4tYm90dG9tOiBtcygpO1xuICAgIC5maWVsZC1pdGVte1xuICAgICAgZm9udC1zaXplOiBtcygxKTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkbGlnaHQ7XG4gICAgfVxuICB9XG5cbiAgLmZpZWxkLW5hbWUtZmllbGQtcmVwcmVzZW50aW5nLWdyb3VwLFxuICAuZmllbGQtbmFtZS1maWVsZC1yb2xlcyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdGludCgkbGlnaHQtZ3JleSwgNjAlKTtcbiAgICBwYWRkaW5nOiBtcygpO1xuICAgIC5maWVsZC1sYWJlbHtcbiAgICAgIG1hcmdpbi1ib3R0b206IG1zKCk7XG4gICAgfVxuICB9XG5cbiAgLmZpZWxkLW5hbWUtZmllbGQtcm9sZXN7XG4gICAgcGFkZGluZy1ib3R0b206IG1zKC0yKTtcbiAgICBwe1xuICAgICAgbWFyZ2luLWJvdHRvbTogbXMoLTMpO1xuICAgIH1cbiAgfVxuXG4gIC5maWVsZC1uYW1lLWZpZWxkLWVtYWlsLWFkZHJlc3N7XG4gICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICRsaWdodC1ncmV5O1xuICAgIHBhZGRpbmctdG9wOiBtcygtMSk7XG5cbiAgICBhe1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAgICAgJjpiZWZvcmV7XG4gICAgICAgIEBpbmNsdWRlIG1hdGVyaWFsLWljb25zO1xuICAgICAgICBjb250ZW50OidlbWFpbCc7XG4gICAgICAgIGNvbG9yOiAkZGFydG1vdXRoLWdyZWVuO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IG1zKC02KTtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIH1cblxuICAgICAgJjpob3ZlcntcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbn1cbiIsIi8qIHNlY3Rpb25zL2NvdW5jaWxfbWVtYmVycy9fdmlldy1jb3VuY2lsLW1lbWJlcnMtaW4tY29tbWl0dGVlLnNjc3MgKi9cbi5ibG9jay1zeXN0ZW0gLnZpZXctY291bmNpbC1tZW1iZXItaW4tY29tbWl0dGVle1xuICBtYXJnaW4tYm90dG9tOiBtcygzKTtcbiAgLnZpZXctaGVhZGVye1xuICAgIGgye1xuICAgICAgbWFyZ2luLWJvdHRvbTogbXMoMik7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZW1lcmFsZC1ncmVlbjtcbiAgICAgIHNwYW4ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLnZpZXctY29udGVudHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG4gIC52aWV3cy1yb3d7XG4gICAgLy8gYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICRsaWdodC1ncmV5O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRpbnQoJGxpZ2h0LWdyZXksIDgwJSk7XG4gICAgcGFkZGluZzogbXMoMSk7XG4gICAgbWFyZ2luLWJvdHRvbTogbXMoKTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHdlaXJkLXNjcmVlbikge1xuICAgICAgQGluY2x1ZGUgZmxvYXQtc3Bhbig2KTtcbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWVkaXVtLXNjcmVlbikge1xuICAgICAgQGluY2x1ZGUgZmxvYXQtc3BhbigxMik7XG4gICAgfVxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHN0YW5kYXJkLXNjcmVlbikge1xuICAgICAgQGluY2x1ZGUgZmxvYXQtc3Bhbig2KTtcbiAgICB9XG4gICAgJjpudGgtY2hpbGQoMm4rMil7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCR3ZWlyZC1zY3JlZW4pIHtcbiAgICAgICAgQGluY2x1ZGUgZmxvYXQtc3Bhbig2LGxhc3QpO1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWVkaXVtLXNjcmVlbikge1xuICAgICAgICBAaW5jbHVkZSBmbG9hdC1zcGFuKDEyLGxhc3QpO1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc3RhbmRhcmQtc2NyZWVuKSB7XG4gICAgICAgIEBpbmNsdWRlIGZsb2F0LXNwYW4oNixsYXN0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAgIC5maWVsZHtcbiAgICAgICAgJjpsYXN0LWNoaWxke1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmZpZWxkLW5hbWUtZmllbGQtaW1hZ2V7XG4gICAgICAgIHdpZHRoOiAzMS45MTQ4OSU7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IG1zKDIpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYXJyb3ctc2NyZWVuKSB7XG4gICAgICAgICAgd2lkdGg6IDIzLjQwNDI2JTtcbiAgICAgICAgfVxuICAgICAgICBpbWd7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC52aWV3cy1maWVsZC10aXRsZSxcbiAgICAgIC5maWVsZC1uYW1lLWZpZWxkLXJvbGVzLFxuICAgICAgLmZpZWxkLW5hbWUtZmllbGQtbWVtYmVyLXllYXIsXG4gICAgICAuZmllbGQtbmFtZS1maWVsZC1jb21taXR0ZWUtY2hhaXIsXG4gICAgICAuZmllbGQtbmFtZS1maWVsZC1yZXByZXNlbnRpbmctZ3JvdXAsXG4gICAgICAuZmllbGQtbmFtZS1maWVsZC1sZWFkZXJzaGlwe1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDMxLjkxNDg5JTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IG1zKDIpO1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYXJyb3ctc2NyZWVuKSB7XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAyMy40MDQyNiU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmVudGl0eS1maWVsZC1jb2xsZWN0aW9uLWl0ZW17XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB9XG5cbiAgICAgIGgye1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtcygtMyk7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hcnJvdy1zY3JlZW4pIHtcbiAgICAgICAgICBmb250LXNpemU6IG1zKDEpO1xuICAgICAgICB9XG4gICAgICAgIC8vIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHN0YW5kYXJkLXNjcmVlbikge1xuICAgICAgICAvLyAgIGZvbnQtc2l6ZTogbXMoMik7XG4gICAgICAgIC8vIH1cbiAgICAgIH1cblxuICAgICAgLmZpZWxkLW5hbWUtZmllbGQtcm9sZXN7XG4gICAgICAgIHB7XG4gICAgICAgICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICRsaWdodC1ncmV5O1xuICAgICAgICAgIHBhZGRpbmctdG9wOiBtcygtMyk7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogbXMoLTMpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5maWVsZC1uYW1lLWZpZWxkLWxlYWRlcnNoaXB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1zKC00KTtcbiAgICAgICAgLmZpZWxkLWl0ZW17XG4gICAgICAgICAgZm9udC1zaXplOiBtcygxKTtcbiAgICAgICAgICBmb250LXdlaWdodDogJGxpZ2h0O1xuICAgICAgICB9XG4gICAgICAgIGF7XG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5maWVsZC1uYW1lLWZpZWxkLW1lbWJlci15ZWFye1xuICAgICAgICBmb250LWZhbWlseTogJGZvbnQtc2V0LTI7XG4gICAgICB9XG4gICAgfVxufVxuIiwiLyogc2VjdGlvbnMvX21lZXRpbmdfbWludXRlcy5zY3NzICovXG4vLyBhbGwgZXZlbnQgcmVsYXRlZCBpdGVtcyBsaWtlIGNhbGVuZGFycywgcmVjZW50IGV2ZW50cywgZXZlbnQgbm9kZXNcblxuQGltcG9ydCAnc2VjdGlvbnMvbWVldGluZ19taW51dGVzL3ZpZXctbWVldGluZy1taW51dGVzJztcbkBpbXBvcnQgJ3NlY3Rpb25zL21lZXRpbmdfbWludXRlcy9ibG9jay1tZWV0aW5nLW1pbnV0ZXMnO1xuQGltcG9ydCAnc2VjdGlvbnMvbWVldGluZ19taW51dGVzL25vZGUtbWVldGluZy1taW51dGVzJzsiLCIvKiBzZWN0aW9ucy9tZWV0aW5nX21pbnV0ZXMvX3ZpZXctbWVldGluZy1taW51dGVzLnNjc3MgKi9cbi52aWV3LW1lZXRpbmctbWludXRlc3tcbiAgaDF7XG4gICAgbWFyZ2luLWJvdHRvbTogbXMoKTtcbiAgfVxuICBoMntcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIGZvbnQtc2l6ZTogbXMoMSk7XG4gIH1cbn0iLCIvKiBzZWN0aW9ucy9tZWV0aW5nX21pbnV0ZXMvX2Jsb2NrLW1lZXRpbmctbWludXRlcy5zY3NzICovXG4uYmxvY2stbWVldGluZy1taW51dGVze1xuICBoMntcbiAgICBAZXh0ZW5kIC5oZWFkaW5ncztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZW1lcmFsZC1ncmVlbjtcbiAgICBtYXJnaW4tYm90dG9tOiBtcygyKTtcbiAgICBzcGFue1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgfVxuICB9XG4gIGgze1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFycm93LXNjcmVlbikge1xuICAgICAgZm9udC1zaXplOiBtcygyKTtcbiAgICB9XG4gICAgYXtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICY6aG92ZXJ7XG4gICAgICAgIGNvbG9yOiAkZGFyay1ncmV5O1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAubW9yZS1saW5re1xuICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCAkZW1lcmFsZC1ncmVlbjtcbiAgICBwYWRkaW5nLXRvcDogbXMoKTtcbiAgICBtYXJnaW4tdG9wOiBtcygpO1xuICB9XG59XG4iLCIubm9kZS1tZWV0aW5nLW1pbnV0ZXN7XG4gIC5ncm91cC1tZWV0aW5nLWRldGFpbHN7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdGludCgkbGlnaHQtZ3JleSwgNjAlKTtcbiAgICBwYWRkaW5nOiBtcygxKSBtcygyKTtcbiAgICBtYXJnaW4tYm90dG9tOiBtcygpO1xuICAgIC5maWVsZHtcbiAgICAgICY6bGFzdC1jaGlsZHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuZmllbGQtbmFtZS1maWVsZC1tZWV0aW5nLWRhdGV7XG4gICAgZm9udC1zaXplOiBtcygxKTtcbiAgICBmb250LXdlaWdodDogJGxpZ2h0O1xuICB9XG59IiwiLyogc2VjdGlvbnMvX2xpZmVsb25nX2xlYXJuaW5nLnNjc3MgKi9cbi8vIGFsbCBldmVudCByZWxhdGVkIGl0ZW1zIGxpa2UgY2FsZW5kYXJzLCByZWNlbnQgZXZlbnRzLCBldmVudCBub2Rlc1xuXG5AaW1wb3J0ICdzZWN0aW9ucy9saWZlbG9uZ19sZWFybmluZy92aWV3LWxpZmVsb25nLWxlYXJuaW5nJztcbkBpbXBvcnQgJ3NlY3Rpb25zL2xpZmVsb25nX2xlYXJuaW5nL3ZpZXctbGlmZWxvbmctbGVhcm5pbmctdGVkLXRhbGtzJztcbkBpbXBvcnQgJ3NlY3Rpb25zL2xpZmVsb25nX2xlYXJuaW5nL2Jsb2NrLWxpZmVsb25nLWxlYXJuaW5nJztcbkBpbXBvcnQgJ3NlY3Rpb25zL2xpZmVsb25nX2xlYXJuaW5nL2Jsb2NrLXZpZXdzLWxpZmVsb25nLWxlYXJuaW5nLXJlbGF0ZWQnO1xuQGltcG9ydCAnc2VjdGlvbnMvbGlmZWxvbmdfbGVhcm5pbmcvYmxvY2stdmlld3MtbGlmZWxvbmctbGVhcm5pbmctY2FyZWVyLXdlYmluYXJzJztcbkBpbXBvcnQgJ3NlY3Rpb25zL2xpZmVsb25nX2xlYXJuaW5nL25vZGUtdHlwZS1saWZlbG9uZy1sZWFybmluZyc7XG4iLCIudmlldy1saWZlbG9uZy1sZWFybmluZy52aWV3LWRpc3BsYXktaWQtYmxvY2ssXG4udmlldy1saWZlbG9uZy1sZWFybmluZy52aWV3LWRpc3BsYXktaWQtYmxvY2tfMSxcbi52aWV3LWxpZmVsb25nLWxlYXJuaW5nLnZpZXctZGlzcGxheS1pZC1ibG9ja180e1xuICBtYXJnaW4tdG9wOiBtcyg0KTtcbiAgLnZpZXdzLXJvd3tcbiAgICAuZmllbGQtbmFtZS1maWVsZC1pbWFnZXtcbiAgICAgIHBhZGRpbmc6IDAgbXMoKTtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNtYWxsLXNjcmVlbikge1xuICAgICAgICB3aWR0aDogMjMuNDA0MjYlO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIC52aWV3cy1maWVsZC10aXRsZSxcbiAgICAuZmllbGQtbmFtZS1maWVsZC1zcGVha2VyLFxuICAgIC5maWVsZC1uYW1lLWZpZWxkLWxpZmVsb25nLWxlYXJuaW5nLXRvcGlje1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc21hbGwtc2NyZWVuKSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAyOCU7XG4gICAgICAgIC8vIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5maWVsZC1uYW1lLWZpZWxkLXNwZWFrZXJ7XG4gICAgICBmb250LXNpemU6IG1zKDEpO1xuICAgICAgZm9udC13ZWlnaHQ6ICRsaWdodDtcbiAgICAgIGxpbmUtaGVpZ2h0OiBtcygxKTtcbiAgICB9XG5cbiAgICAuZmllbGQtbmFtZS1maWVsZC1saWZlbG9uZy1sZWFybmluZy10b3BpY3tcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG4gIC52aWV3LWZpbHRlcnN7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdGludCgkbGlnaHQtZ3JleSwgNjAlKTtcbiAgICBwYWRkaW5nOiBtcygpIG1zKDIpO1xuICAgIG1hcmdpbjogbXMoMikgMDtcbiAgICAudmlld3MtZXhwb3NlZC1mb3Jte1xuICAgICAgbGFiZWx7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICB9XG5cbiAgICAgIC52aWV3cy13aWRnZXQtZmlsdGVyLWZpZWxkX2dlbnJlX3RpZHtcbiAgICAgICAgLy8gQGluY2x1ZGUgZmxvYXQtc3Bhbig1LjIpO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1zKCk7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hcnJvdy1zY3JlZW4pIHtcbiAgICAgICAgICB3aWR0aDogNDIuMTI3NjYlO1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDIuMTI3NjYlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC52aWV3cy13aWRnZXQtZmlsdGVyLWZpZWxkX3NwZWFrZXJfdmFsdWV7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFycm93LXNjcmVlbikge1xuICAgICAgICAgIHdpZHRoOiA0MC40MjU1MyU7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogMi4xMjc2NiU7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gICAgICAgIH1cbiAgICAgICAgLmZvcm0tdGV4dHtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC52aWV3cy1zdWJtaXQtYnV0dG9ue1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYXJyb3ctc2NyZWVuKSB7XG4gICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgLmZvcm0tc3VibWl0e1xuICAgICAgICAgIEBpbmNsdWRlIGJ0bjtcbiAgICAgICAgICBAaW5jbHVkZSBidG4tcHJpbWFyeTtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCIudmlldy1saWZlbG9uZy1sZWFybmluZy52aWV3LWRpc3BsYXktaWQtYmxvY2tfM3tcbiAgLmZpZWxkLW5hbWUtZmllbGQtc3BlYWtlcntcbiAgICBmb250LXNpemU6IG1zKDEpO1xuICAgIGZvbnQtd2VpZ2h0OiAkbGlnaHQ7XG4gICAgbGluZS1oZWlnaHQ6IG1zKDEpO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn0iLCIucmVnaW9uLXNpZGViYXItc2Vjb25kIC5ibG9jay1saWZlbG9uZy1sZWFybmluZ3tcbiAgaDJ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGVtZXJhbGQtZ3JlZW47XG4gIH1cbiAgdWx7XG4gICAgLnZpZXdzLXJvdyB7XG4gICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgJGxpZ2h0LWdyZXk7XG4gICAgICAvLyBwYWRkaW5nLWJvdHRvbTogbXMoLTMpO1xuICAgICAgLy8gbWFyZ2luLWJvdHRvbTogbXMoLTMpO1xuICAgICAgJjpsYXN0LWNoaWxke1xuICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIH1cbiAgICAgIGF7XG4gICAgICAgIC8vIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGNvbG9yOiAkZGFydG1vdXRoLWdyZWVuO1xuICAgICAgICBwYWRkaW5nOiBtcygtMyk7XG4gICAgICAgICY6aG92ZXJ7XG4gICAgICAgICAgY29sb3I6ICRuZXV0cmFsLWdyZXk7XG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG4gICAgICAgICYuYWN0aXZle1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRpbnQoJGxpZ2h0LWdyZXksMzAlKTtcbiAgICAgICAgICBjb2xvcjogJGRhcmstZ3JleTtcbiAgICAgICAgICAvLyBwYWRkaW5nOiBtcygtMyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCIucmVnaW9uLW1haW4tc3VmZml4IC5ibG9jay12aWV3cy1saWZlbG9uZy1sZWFybmluZy1ibG9jay0ye1xuICBib3JkZXItdG9wOiA1cHggc29saWQgJGxpZ2h0LWdyZXk7XG4gIHBhZGRpbmctdG9wOiBtcygyKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdWx7XG4gICAgLnZpZXdzLXJvdyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aW50KCRsaWdodC1ncmV5LCA2MCUpO1xuICAgICAgcGFkZGluZzogbXMoMSk7XG4gICAgICBtYXJnaW4tYm90dG9tOiBtcygpO1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkd2VpcmQtc2NyZWVuKSB7XG4gICAgICAgIEBpbmNsdWRlIGZsb2F0LXNwYW4oNCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIHBhZGRpbmc6IG1zKDIpO1xuICAgICAgICAvLyBwYWRkaW5nOiBtcygtMSk7XG4gICAgICB9XG4gICAgICAmOmxhc3QtY2hpbGR7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHdlaXJkLXNjcmVlbikge1xuICAgICAgICAgIEBpbmNsdWRlIGZsb2F0LXNwYW4oNCxsYXN0KTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuaGVhZGluZ3N7XG4gICAgICAgIHNwYW57XG4gICAgICAgICAgcGFkZGluZzogMCBtcygtMik7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtNHB4O1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtcygtMSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgYXtcbiAgICAgICAgY29sb3I6ICRkYXJrLWdyZXk7XG4gICAgICAgICY6aG92ZXJ7XG4gICAgICAgICAgY29sb3I6ICRuZXV0cmFsLWdyZXk7XG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAudmlld3MtZmllbGQtdGl0bGV7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgfVxuXG4gICAgICAuZmllbGQtbmFtZS1maWVsZC1zcGVha2Vye1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogbXMoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgLnZpZXdzLXJvdy1ldmVue1xuICAgICAgLmhlYWRpbmdze1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZW1lcmFsZC1ncmVlbjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi5ibG9jay12aWV3cy1saWZlbG9uZy1sZWFybmluZy1ibG9jay01e1xuICBoMntcbiAgICBAZXh0ZW5kIC5oZWFkaW5ncztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZW1lcmFsZC1ncmVlbjtcbiAgICBtYXJnaW4tYm90dG9tOiBtcygxKTtcbiAgICBzcGFue1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgfVxuICB9XG5cbiAgaDN7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFycm93LXNjcmVlbikge1xuICAgICAgZm9udC1zaXplOiBtcygyKTtcbiAgICB9XG4gICAgYXtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogJGRhcmstZ3JleTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLmZpZWxke1xuICAgICY6bGFzdC1jaGlsZHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG5cbiAgLm1vcmUtbGlua3tcbiAgICBib3JkZXItdG9wOiAycHggc29saWQgJGVtZXJhbGQtZ3JlZW47XG4gICAgcGFkZGluZy10b3A6IG1zKCk7XG4gIH1cbn1cbiIsIi5ub2RlLXR5cGUtbGlmZWxvbmctbGVhcm5pbmd7XG4gIC5zcGVha2VyLWluZm97XG4gICAgYm9yZGVyLWJvdHRvbTogM3B4IHNvbGlkICRsaWdodC1ncmV5O1xuICAgIG1hcmdpbi1ib3R0b206IG1zKDEpO1xuICB9XG4gIC5maWVsZC1uYW1lLWZpZWxkLWltYWdle1xuICAgICAgcGFkZGluZzogMCBtcygpO1xuICAgICAgd2lkdGg6IDIwMHB4O1xuICAgICAgbWFyZ2luOiAwIGF1dG8gbXMoKSBhdXRvO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNtYWxsLXNjcmVlbikge1xuICAgICAgd2lkdGg6IDIzLjQwNDI2JTtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDIuMTI3NjYlO1xuICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICB9XG4gIH1cblxuICAuc3BlYWtlci1jb250ZW50e1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkbGlnaHQtZ3JleTtcbiAgICBwYWRkaW5nLXRvcDogbXMoKTtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzbWFsbC1zY3JlZW4pIHtcbiAgICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB3aWR0aDogNzIlO1xuICAgIH1cbiAgfVxuXG4gIC5maWVsZC1uYW1lLWZpZWxkLXNwZWFrZXJ7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgZm9udC1zaXplOiBtcygxKTtcbiAgICBmb250LXdlaWdodDogJGxpZ2h0O1xuICAgIGF7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAmOmhvdmVye1xuICAgICAgICBjb2xvcjogJGZvcmVzdC1ncmVlbjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuZmllbGQtbmFtZS1maWVsZC1saWZlbG9uZy1sZWFybmluZy10b3BpY3tcbiAgICBtYXJnaW4tYm90dG9tOiBtcygpO1xuICB9XG5cbiAgLmZpZWxkLW5hbWUtZmllbGQtZGVzY3JpcHRpb257XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gIH1cblxuICAuZmllbGQtbmFtZS1maWVsZC1sZWN0dXJlLXZpZGVve1xuICAgIGNsZWFyOiBib3RoO1xuICAgIG1hcmdpbi10b3A6IG1zKDIpO1xuICAgIHBhZGRpbmc6IG1zKDIpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRpbnQoJGxpZ2h0LWdyZXksIDYwJSk7XG4gIH1cbn0iLCIvKiBzZWN0aW9ucy9faGlsbF93aW5kcy1zb2NpZXR5LnNjc3MgKi9cbi8vIGFsbCBldmVudCByZWxhdGVkIGl0ZW1zIGxpa2UgY2FsZW5kYXJzLCByZWNlbnQgZXZlbnRzLCBldmVudCBub2Rlc1xuXG5AaW1wb3J0ICdzZWN0aW9ucy9oaWxsX3dpbmRzX3NvY2lldHkvdmlldy1oaWxsLXdpbmRzLXNvY2lldHktbWVtYmVycyc7XG5AaW1wb3J0ICdzZWN0aW9ucy9oaWxsX3dpbmRzX3NvY2lldHkvbm9kZS1oaWxsLXdpbmRzLXNvY2lldHktbWVtYmVyJzsiLCIudmlldy1oaWxsLXdpbmRzLXNvY2lldHktbWVtYmVyc3tcbiAgLnZpZXctZmlsdGVyc3tcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aW50KCRsaWdodC1ncmV5LCA2MCUpO1xuICAgIHBhZGRpbmc6IG1zKCkgbXMoMik7XG4gICAgbWFyZ2luOiBtcygyKSAwO1xuICAgIC52aWV3cy1leHBvc2VkLWZvcm17XG4gICAgICAudmlld3Mtd2lkZ2V0LWZpbHRlci1maWVsZF9ncmFkdWF0aW5nX3llYXJfdmFsdWV7XG4gICAgICAgIHdpZHRoOiA3NC40NjgwOSU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hcnJvdy1zY3JlZW4pIHtcbiAgICAgICAgICB3aWR0aDogODIuOTc4NzIlO1xuICAgICAgICB9XG4gICAgICAgIGxhYmVse1xuICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cbiAgICAgICAgLmZvcm0tdHlwZS1kYXRlLXNlbGVjdHtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAuZGF0ZS1wYWRkaW5ne1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgfVxuICAgICAgICAgIC5mb3JtLXR5cGUtc2VsZWN0e1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC52aWV3cy1zdWJtaXQtYnV0dG9ue1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG5cbiAgICAgICAgLmZvcm0tc3VibWl0e1xuICAgICAgICAgIEBpbmNsdWRlIGJ0bjtcbiAgICAgICAgICBAaW5jbHVkZSBidG4tcHJpbWFyeTtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAudmlldy1jb250ZW50e1xuICAgIC52aWV3cy1yb3d7XG4gICAgICAvLyBib3JkZXItYm90dG9tOiAycHggc29saWQgJGxpZ2h0LWdyZXk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aW50KCRsaWdodC1ncmV5LCA4MCUpO1xuICAgICAgcGFkZGluZzogbXMoMSk7XG4gICAgICBtYXJnaW4tYm90dG9tOiBtcygxKTtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgIC5maWVsZC1uYW1lLWZpZWxkLWltYWdle1xuICAgICAgICB3aWR0aDogMzEuOTE0ODklO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBtcygyKTtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFycm93LXNjcmVlbikge1xuICAgICAgICAgIHdpZHRoOiAyMy40MDQyNiU7XG4gICAgICAgIH1cbiAgICAgICAgaW1ne1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAudmlld3MtZmllbGQtdGl0bGUsXG4gICAgICAuZmllbGQtbmFtZS1maWVsZC1tYWpvcixcbiAgICAgIC5maWVsZC1uYW1lLWZpZWxkLWRhcnRtb3V0aC1hY3Rpdml0aWVze1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDMxLjkxNDg5JTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IG1zKDIpO1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYXJyb3ctc2NyZWVuKSB7XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAyMy40MDQyNiU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLnZpZXdzLWZpZWxkLWxvY2F0aW9ue1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDMxLjkxNDg5JTtcbiAgICAgICAgZm9udC1zaXplOiBtcygpO1xuICAgICAgICBmb250LXdlaWdodDogJGxpZ2h0O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtcygpO1xuICAgICAgICBtYXJnaW4tbGVmdDogbXMoMSk7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hcnJvdy1zY3JlZW4pIHtcbiAgICAgICAgICBmb250LXNpemU6IG1zKDEpO1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogMjMuNDA0MjYlO1xuICAgICAgICB9XG4gICAgICAgIC8vIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHN0YW5kYXJkLXNjcmVlbikge1xuICAgICAgICAvLyAgIGZvbnQtc2l6ZTogbXMoKTtcbiAgICAgICAgLy8gICBwYWRkaW5nLWxlZnQ6IDMxLjkxNDg5JTtcbiAgICAgICAgLy8gfVxuICAgICAgfVxuXG4gICAgICAuZmllbGQtbmFtZS1maWVsZC1tYWpvcntcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbXMoLTEpO1xuICAgICAgICAuZmllbGQtaXRlbXN7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRsaWdodC1ncmV5O1xuICAgICAgICAgIHBhZGRpbmctYm90dG9tOiBtcygtMSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCIvLyAubm9kZS1oaWxsLXdpbmRzLXNvY2lldHktbWVtYmVye1xuXG4vLyB9XG5cbi8vc2VjdGlvbnMvY291bmNpbF9tZW1iZXIvX25vZGUtdHlwZS1jb3VuY2lsLW1lbWJlci5zY3NzXG4ubm9kZS1oaWxsLXdpbmRzLXNvY2lldHktbWVtYmVye1xuICAuZmllbGQtbmFtZS1maWVsZC1pbWFnZXtcbiAgICBtYXJnaW4tbGVmdDogMCFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1yaWdodDogbXMoKTtcbiAgICBAaW5jbHVkZSBmbG9hdC1zcGFuKDQpO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hcnJvdy1zY3JlZW4pIHtcbiAgICAgIEBpbmNsdWRlIGZsb2F0LXNwYW4oMyk7XG4gICAgfVxuICAgIGltZ3tcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxuXG4gIC5maWVsZHtcbiAgICBtYXJnaW4tbGVmdDogMzQuMDQyNTUlO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hcnJvdy1zY3JlZW4pIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyNS41MzE5MiU7XG4gICAgfVxuICB9XG5cbiAgLmZpZWxkLW5hbWUtZmllbGQtZ3JhZHVhdGluZy15ZWFye1xuICAgIG1hcmdpbi1ib3R0b206IG1zKC02KTtcbiAgICAuZmllbGQtaXRlbXtcbiAgICAgIC8vIGZvbnQtZmFtaWx5OiAkZm9udC1zZXQtMjtcbiAgICAgIGZvbnQtc2l6ZTogbXMoMSk7XG4gICAgICBmb250LXdlaWdodDogJGxpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIC5maWVsZC1uYW1lLWZpZWxkLWNpdHl7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi1yaWdodDogbXMoLTYpO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG5cbiAgLmZpZWxkLW5hbWUtZmllbGQtc3RhdGUsXG4gIC5maWVsZC1uYW1lLWZpZWxkLWNvdW50cnl7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG1hcmdpbi1yaWdodDogbXMoLTYpO1xuICAgIC8vIGZvbnQtc2l6ZTogbXMoMSk7XG4gICAgLy8gZm9udC13ZWlnaHQ6ICRsaWdodDtcbiAgfVxuXG4gIC8vIC5maWVsZC1uYW1lLWZpZWxkLWNpdHksXG4gIC8vIC5maWVsZC1uYW1lLWZpZWxkLXN0YXRle1xuICAvLyAgIC5maWVsZC1pdGVte1xuICAvLyAgICAgJjo6YWZ0ZXJ7XG4gIC8vICAgICAgIGNvbnRlbnQ6JywnO1xuICAvLyAgICAgfVxuICAvLyAgIH1cbiAgLy8gfVxuXG4gIC5maWVsZC1uYW1lLWZpZWxkLWRhcnRtb3V0aC1hY3Rpdml0aWVzLFxuICAuZmllbGQtbmFtZS1maWVsZC1tYWpvcntcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aW50KCRsaWdodC1ncmV5LCA4MCUpO1xuICAgIHBhZGRpbmc6IG1zKCk7XG4gICAgLmZpZWxkLWxhYmVse1xuICAgICAgbWFyZ2luLWJvdHRvbTogbXMoKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8qIHNlY3Rpb25zL190cmF2ZWwuc2NzcyAqL1xuLy8gYWxsIGV2ZW50IHJlbGF0ZWQgaXRlbXMgbGlrZSBjYWxlbmRhcnMsIHJlY2VudCBldmVudHMsIGV2ZW50IG5vZGVzXG5cbkBpbXBvcnQgJ3NlY3Rpb25zL3RyYXZlbC9fdmlldy10cmF2ZWwtbGlzdC5zY3NzJztcbkBpbXBvcnQgJ3NlY3Rpb25zL3RyYXZlbC9ub2RlLXR5cGUtdHJhdmVsLWRhdGEnO1xuQGltcG9ydCAnc2VjdGlvbnMvdHJhdmVsL2Jsb2NrLXZpZXdzLXRyYXZlbC1saXN0LWJsb2NrLTEnO1xuIiwiLyogc2VjdGlvbi90cmF2ZWwvX3ZpZXctdHJhdmVsLWxpc3Quc2NzcyAqL1xuLnZpZXctdHJhdmVsLWxpc3R7XG4gIC52aWV3LWZpbHRlcnN7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdGludCgkbGlnaHQtZ3JleSwgNjAlKTtcbiAgICBwYWRkaW5nOiBtcygpIG1zKDIpO1xuICAgIG1hcmdpbjogbXMoNCkgMCBtcygyKSAwO1xuICB9XG5cbiAgLnZpZXdzLWV4cG9zZWQtZm9ybXtcbiAgICAudmlld3MtZXhwb3NlZC13aWRnZXR7XG4gICAgICBmbG9hdDogbm9uZTtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICB3aWR0aDogNDcuOTM2MTclO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAyJTtcbiAgICAgIG1hcmdpbi1ib3R0b206IG1zKCk7XG4gICAgICBwYWRkaW5nOiAwO1xuXG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHdlaXJkLXNjcmVlbikge1xuICAgICAgICB3aWR0aDogMjUlO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgfVxuXG4gICAgICAmOm50aC1jaGlsZCgybisyKXtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCR3ZWlyZC1zY3JlZW4pIHtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDIlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYudmlld3Mtd2lkZ2V0LWZpbHRlci1maWVsZF90eXBlX29mX2FjdGl2aXR5X3RpZHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAudmlld3Mtc3VibWl0LWJ1dHRvbntcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHdlaXJkLXNjcmVlbikge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIG1hcmdpbi10b3A6IG1zKDIpO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgICAgIH1cblxuICAgICAgLmZvcm0tc3VibWl0e1xuICAgICAgICBAaW5jbHVkZSBidG47XG4gICAgICAgIEBpbmNsdWRlIGJ0bi1wcmltYXJ5O1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwiLyogc2VjdGlvbi90cmF2ZWwvX25vZGUtdHlwZS10cmF2ZWwtZGF0YS5zY3NzICovXG5cbi5ub2RlLXR5cGUtdHJhdmVsLWRhdGF7XG4gIC5maWVsZC1sYWJlbHtcbiAgICAvLyBmb250LXNpemU6IG1zKCk7XG4gICAgbWFyZ2luLWJvdHRvbTogbXMoLTMpO1xuICB9XG5cbiAgLmZpZWxke1xuICAgIG1hcmdpbi1ib3R0b206IG1zKDMpO1xuICB9XG5cbiAgLy8gLmZpZWxkLW5hbWUtZmllbGQtZXZlbnQtZGF0ZXtcbiAgLy8gICBAaW5jbHVkZSBjb250ZW50LWJveDtcbiAgLy8gICBmb250LXNpemU6IG1zKDEpO1xuICAvLyAgIGZvbnQtd2VpZ2h0OiAkbGlnaHQ7XG4gIC8vICAgcGFkZGluZzogbXMoLTEpIG1zKDEpO1xuICAvLyAgIC5maWVsZC1pdGVte1xuICAvLyAgICAgJjo6YmVmb3Jle1xuICAvLyAgICAgICBAaW5jbHVkZSBtYXRlcmlhbC1pY29ucztcbiAgLy8gICAgICAgY29udGVudDonZXZlbnRzJztcbiAgLy8gICAgICAgY29sb3I6ICRkYXJ0bW91dGgtZ3JlZW47XG4gIC8vICAgICAgIG1hcmdpbjogbXMoLTEwKSBtcygtNikgMCAwO1xuICAvLyAgICAgICBmbG9hdDogbGVmdDtcblxuICAvLyAgICAgfVxuICAvLyAgIH1cbiAgLy8gICAuZGF0ZS1kaXNwbGF5LXJhbmdle1xuICAvLyAgICAgcGFkZGluZy1sZWZ0OiBtcygzKTtcbiAgLy8gICAgIHNwYW57XG4gIC8vICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgLy8gICAgIH1cbiAgLy8gICB9XG4gIC8vIH1cblxuICAuZmllbGQtbmFtZS1maWVsZC1wcm9tby1tZXNzYWdle1xuICAgIEBpbmNsdWRlIGhpZ2hsaWdodC1ib3g7XG4gICAgcGFkZGluZzogbXMoMSkhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1ib3R0b206IG1zKDMpO1xuICB9XG5cbiAgLmZpZWxkLW5hbWUtYm9keXtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkbGlnaHQtZ3JleTtcbiAgICBwYWRkaW5nLWJvdHRvbTogbXMoKTtcbiAgfVxuXG4gIC5maWVsZC1uYW1lLWZpZWxkLWV2ZW50LXByaWNle1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRpbnQoJGxpZ2h0LWdyZXksIDYwJSk7XG4gICAgcGFkZGluZzogbXMoMik7XG4gICAgLmZpZWxkLWxhYmVse1xuICAgICAgQGV4dGVuZCAuaGVhZGluZ3M7XG4gICAgICBtYXJnaW4tYm90dG9tOiBtcygxKTtcbiAgICB9XG4gICAgcHtcbiAgICAgICY6bGFzdC1jaGlsZHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuZmllbGQtbmFtZS1maWVsZC1ldmVudC1pdGluZXJhcnl7XG4gICAgYm9yZGVyLWJvdHRvbTogM3B4IHNvbGlkICRsaWdodC1ncmV5O1xuICAgIHBhZGRpbmctYm90dG9tOiBtcygzKTtcbiAgICAuZmllbGQtbGFiZWx7XG4gICAgICBAZXh0ZW5kIC5oZWFkaW5ncztcbiAgICAgIG1hcmdpbi1ib3R0b206IG1zKDEpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGVtZXJhbGQtZ3JlZW47XG4gICAgICBzcGFue1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcHtcbiAgICAgICY6bGFzdC1jaGlsZHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuZ3JvdXAtZW5yb2xsbWVudHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGxpZ2h0LWdyZXk7XG4gICAgcGFkZGluZy1ib3R0b206IG1zKDMpO1xuICAgIG1hcmdpbi1ib3R0b206IG1zKDMpO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgLmZpZWxke1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIEBpbmNsdWRlIGZsb2F0LXNwYW4oNik7XG4gICAgICAmOmxhc3QtY2hpbGR7XG4gICAgICAgIEBpbmNsdWRlIGZsb2F0LXNwYW4oNiwgbGFzdCk7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5ncm91cC1hdG1vc3BoZXJle1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkbGlnaHQtZ3JleTtcbiAgICBwYWRkaW5nLWJvdHRvbTogbXMoMyk7XG4gICAgbWFyZ2luLWJvdHRvbTogbXMoMyk7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAuZmllbGR7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgQGluY2x1ZGUgZmxvYXQtc3Bhbig0KTtcbiAgICAgICY6bGFzdC1jaGlsZHtcbiAgICAgICAgQGluY2x1ZGUgZmxvYXQtc3Bhbig0LCBsYXN0KTtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmZpZWxkLW5hbWUtZmllbGQtdHlwZS1vZi1hY3Rpdml0eXtcbiAgICAuZmllbGQtaXRlbXtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbi1yaWdodDogbXMoLTYpO1xuICAgIH1cbiAgfVxuXG4gIC5maWVsZC1uYW1lLWZpZWxkLWFjdGl2aXR5LWxldmVse1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkbGlnaHQtZ3JleTtcbiAgICBwYWRkaW5nLWJvdHRvbTogbXMoMyk7XG4gICAgcHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG5cbiAgLmdyb3VwLWZhY3VsdHktaW5mb3tcbiAgICBwYWRkaW5nLWJvdHRvbTogbXMoMyk7XG4gICAgbWFyZ2luLWJvdHRvbTogbXMoMyk7XG4gICAgYm9yZGVyLWJvdHRvbTogM3B4IHNvbGlkICRsaWdodC1ncmV5O1xuICAgIGgye1xuICAgICAgQGV4dGVuZCAuaGVhZGluZ3M7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZW1lcmFsZC1ncmVlbjtcbiAgICAgIG1hcmdpbi1ib3R0b206IG1zKDEpO1xuICAgICAgc3BhbntcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBtcygtMSk7XG4gICAgICAgIHBhZGRpbmctbGVmdDogbXMoLTMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5maWVsZHtcbiAgICAgICY6bGFzdC1jaGlsZHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmZpZWxkLW5hbWUtZmllbGQtZmFjdWx0eS1pbWFnZXtcbiAgICAgIG1hcmdpbjogMCBhdXRvIG1zKCkgYXV0bztcbiAgICAgIHdpZHRoOiAyMDBweDtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNtYWxsLXNjcmVlbikge1xuICAgICAgICB3aWR0aDogMjMuNDA0MjYlO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDIuMTI3NjYlO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuZmllbGQtbmFtZS1maWVsZC1mYWN1bHR5LW5hbWV7XG4gICAgICBmb250LXNpemU6IG1zKDEpO1xuICAgICAgZm9udC13ZWlnaHQ6ICRib2xkO1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRsaWdodC1ncmV5O1xuICAgICAgcGFkZGluZy10b3A6IG1zKCk7XG4gICAgICBtYXJnaW4tYm90dG9tOiBtcygpO1xuICAgICAgbGluZS1oZWlnaHQ6IG1zKCk7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzbWFsbC1zY3JlZW4pIHtcbiAgICAgICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmZpZWxkLW5hbWUtZmllbGQtZmFjdWx0eS1iaW8sXG4gICAgLmZpZWxkLW5hbWUtZmllbGQtZmFjdWx0eS1sZWN0dXJlcyxcbiAgICAuZmllbGQtbmFtZS1maWVsZC1mYWN1bHR5LXJlYWRpbmdze1xuICAgICAgbGluZS1oZWlnaHQ6IG1zKDIpO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRsaWdodC1ncmV5O1xuICAgICAgcGFkZGluZy1ib3R0b206IG1zKCk7XG4gICAgICBtYXJnaW4tYm90dG9tOiBtcygpO1xuICAgIH1cbiAgfVxuXG4gIC5maWVsZC1uYW1lLWZpZWxkLXNoYXJlZC1wcm9ncmFtLFxuICAuZmllbGQtbmFtZS1maWVsZC1vcGVyYXRvci1uYW1le1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkbGlnaHQtZ3JleTtcbiAgICBwYWRkaW5nLWJvdHRvbTogbXMoMyk7XG4gIH1cblxuICAvLyAuZmllbGQtbmFtZS1maWVsZC1yZXNlcnZlLWJ1dHRvbixcbiAgLy8gLmZpZWxkLW5hbWUtZmllbGQtZ2V0LW1vcmUtaW5mb3JtYXRpb257XG4gIC8vICAgYXtcbiAgLy8gICAgIHBhZGRpbmc6IG1zKDEpIG1zKDMpO1xuICAvLyAgICAgd2lkdGg6IDEwMCU7XG4gIC8vICAgICAmOmJlZm9yZXtcbiAgLy8gICAgICAgQGluY2x1ZGUgbWF0ZXJpYWwtaWNvbnM7XG4gIC8vICAgICAgIGNvbG9yOiAkZGFyay1ncmV5O1xuICAvLyAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIC8vICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIC8vICAgICAgIG1hcmdpbi1yaWdodDogbXMoLTYpO1xuICAvLyAgICAgICBsaW5lLWhlaWdodDogbXMoLTEpO1xuICAvLyAgICAgfVxuICAvLyAgICAgJjpob3ZlcntcbiAgLy8gICAgICAgJjpiZWZvcmV7XG4gIC8vICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAvLyAgICAgICB9XG4gIC8vICAgICB9XG4gIC8vICAgfVxuICAvLyB9XG5cbiAgLy8gLmZpZWxkLW5hbWUtZmllbGQtcmVzZXJ2ZS1idXR0b257XG4gIC8vICAgbWFyZ2luLWJvdHRvbTogbXMoKTtcbiAgLy8gICBAaW5jbHVkZSBicmVha3BvaW50KCRzbWFsbC1zY3JlZW4pIHtcbiAgLy8gICAgIEBpbmNsdWRlIGZsb2F0LXNwYW4oNik7XG4gIC8vICAgfVxuICAvLyAgIGF7XG4gIC8vICAgICAmOmJlZm9yZXtcbiAgLy8gICAgICAgY29udGVudDogJ2V2ZW50X25vdGUnO1xuICAvLyAgICAgfVxuICAvLyAgIH1cbiAgLy8gfVxuXG4gIC8vIC5maWVsZC1uYW1lLWZpZWxkLWdldC1tb3JlLWluZm9ybWF0aW9ue1xuICAvLyAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNtYWxsLXNjcmVlbikge1xuICAvLyAgICAgQGluY2x1ZGUgZmxvYXQtc3Bhbig2LCBsYXN0KTtcbiAgLy8gICB9XG4gIC8vICAgYXtcbiAgLy8gICAgICY6YmVmb3Jle1xuICAvLyAgICAgICBjb250ZW50OiAnaW5mbyc7XG4gIC8vICAgICB9XG4gIC8vICAgfVxuICAvLyB9XG59XG4iLCIuYmxvY2stdmlld3MtdHJhdmVsLWxpc3QtYmxvY2stMXtcbiAgLmhlYWRlci1pbWFnZXtcbiAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgY2VudGVyO1xuICAgIGhlaWdodDogMjAwcHg7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYXJyb3ctc2NyZWVuKSB7XG4gICAgICBoZWlnaHQ6IDMwMHB4O1xuICAgIH1cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCR3ZWlyZC1zY3JlZW4pIHtcbiAgICAgIGhlaWdodDogMDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAyNSU7XG4gICAgICBAaW5jbHVkZSBmbG9hdC1zcGFuKDgsICRndXR0ZXI6MCk7XG4gICAgfVxuICAgIC5hcnJvdy1sZWZ0e1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgcmlnaHQ6IDQ2JTtcbiAgICAgIHdpZHRoOiAwO1xuICAgICAgaGVpZ2h0OiAwO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAxNXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLWxlZnQ6IDE1cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItYm90dG9tOiAxNXB4IHNvbGlkIHRpbnQoJGxpZ2h0LWdyZXksIDYwJSk7XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHdlaXJkLXNjcmVlbikge1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgdG9wOiA0NSU7XG4gICAgICAgIGJvcmRlci10b3A6IDE1cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDE1cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci1yaWdodDogMTVweCBzb2xpZCB0aW50KCRsaWdodC1ncmV5LCA2MCUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5pbmZve1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRpbnQoJGxpZ2h0LWdyZXksIDYwJSk7XG4gICAgcGFkZGluZzogbXMoMikgNi4zODI5OCU7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCR3ZWlyZC1zY3JlZW4pIHtcbiAgICAgIEBpbmNsdWRlIGZsb2F0LXNwYW4oNCxsYXN0LCAkZ3V0dGVyOjApO1xuICAgICAgcGFkZGluZzogbXMoMSkgbXMoMSk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWVkaXVtLXNjcmVlbikge1xuICAgICAgcGFkZGluZzogbXMoMikgbXMoMik7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc3RhbmRhcmQtc2NyZWVuKSB7XG4gICAgICBwYWRkaW5nOiBtcygzKSAzLjVlbTtcbiAgICB9XG5cbiAgICBoMXtcbiAgICAgIGZvbnQtc2l6ZTogbXMoMik7XG4gICAgfVxuICAgIC5maWVsZC1uYW1lLXRpdGxlLWZpZWxke1xuICAgICAgbWFyZ2luLWJvdHRvbTogbXMoLTEpO1xuICAgIH1cblxuICAgIC5maWVsZC1uYW1lLWZpZWxkLWV2ZW50LWRhdGV7XG4gICAgICBmb250LXNpemU6IG1zKDEpO1xuICAgICAgZm9udC13ZWlnaHQ6ICRsaWdodDtcbiAgICAgIGxpbmUtaGVpZ2h0OiBtcygxKTtcbiAgICAgIC5kYXRlLWRpc3BsYXktc3RhcnR7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5idG57XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW4tYm90dG9tOiBtcygpO1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkd2VpcmQtc2NyZWVuKSB7XG4gICAgICAgIHBhZGRpbmc6IG1zKC0xKSBtcygpO1xuICAgICAgfVxuICAgICAgJjpiZWZvcmV7XG4gICAgICAgIEBpbmNsdWRlIG1hdGVyaWFsLWljb25zO1xuICAgICAgICBjb250ZW50OiAnZXZlbnRfbm90ZSc7XG4gICAgICAgIGNvbG9yOiAkZGFyay1ncmV5O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IG1zKC04KTtcbiAgICAgIH1cbiAgICAgICY6bGFzdC1jaGlsZHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAmOmJlZm9yZXtcbiAgICAgICAgICBjb250ZW50OiAnaW5mbyc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICY6aG92ZXJ7XG4gICAgICAgICY6YmVmb3Jle1xuICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLyogX25hdmlnYXRpb24uc2NzcyAqL1xuLy8gY29udGFpbnMgc3R5bGVzIGZvciBhbGwgbmF2aWdhdGlvbiBzeXN0ZW1zLlxuLy8gZWcuIG1haW4gbmF2aWdhdGlvbiwgc3ViIG5hdmlnYXRpb24sIHBhZ2luYXRpb24sIGJyZWFkY3J1bWJzLFxuLy8gZm9vdGVyIHNpdGVtYXAgbWVudXNcblxuLm1lbnV7XG4gIEBpbmNsdWRlIHJlc2V0O1xuICBAaW5jbHVkZSBuby1idWxsZXRzO1xufVxuXG5AaW1wb3J0ICduYXZpZ2F0aW9uL2Jsb2NrLW1haW4tbmF2JztcbkBpbXBvcnQgJ25hdmlnYXRpb24vYmxvY2stc2Vjb25kYXJ5LW5hdic7XG5AaW1wb3J0ICduYXZpZ2F0aW9uL2Jsb2NrLXN1Yi1uYXYnO1xuQGltcG9ydCAnbmF2aWdhdGlvbi9ibG9jay1tZW51LWJsb2NrLTInO1xuQGltcG9ydCAnbmF2aWdhdGlvbi9icmVhZGNydW1iJztcbkBpbXBvcnQgJ25hdmlnYXRpb24vcGFnZXInO1xuIiwiLy8gLyogbmF2aWdhdGlvbi9fYmxvY2stbWFpbi1uYXYuc2NzcyAqL1xuXG4vLyAuYmxvY2stbWFpbi1uYXYsXG4uYmxvY2stbWVudS1ibG9jay0xe1xuICAvLyBnZW5lcmFsIG1lbnUgc3R5bGVzIGFuZCByZXNldHNcbiAgLm1lbnV7XG4gICAgQGluY2x1ZGUgcmVzZXQ7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIH1cblxuICAubWVudSBsaXtcbiAgICBAaW5jbHVkZSByZXNldDtcbiAgICBAaW5jbHVkZSByZXNldC1mb250O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICB9XG5cbiAgLm1lbnUgYXtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cblxuICAudG91Y2gtYnV0dG9ue1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hcnJvdy1zY3JlZW4pIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLm1lbnUgLm1hdGVyaWFsLWljb25ze1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgY29sb3I6ICRkYXJ0bW91dGgtZ3JlZW47XG4gIH1cblxuICAubWVudSAubGV2ZWwtMXtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgLy8gb3V0bGluZTogMXB4IHNvbGlkIHJlZDtcbiAgICAvLyBAaW5jbHVkZSBicmVha3BvaW50KCRuYXJyb3ctc2NyZWVuKSB7XG4gICAgLy8gICBwYWRkaW5nOiBtcygtMykgbXMoKTtcbiAgICAvLyB9XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgLjNzIGVhc2Utb3V0O1xuICAgIG1hcmdpbjogMCBtcygpO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNtYWxsLXNjcmVlbikge1xuICAgICAgbWFyZ2luOiAwIG1zKDMpO1xuICAgIH1cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYXJyb3ctc2NyZWVuKSB7XG4gICAgICBtYXJnaW46IDAgbXMoNSkgMCAwO1xuICAgIH1cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCR3ZWlyZC1zY3JlZW4pIHtcbiAgICAgIG1hcmdpbjogMCBtcyg4KSAwIDA7XG4gICAgfVxuICAgICYuZmlyc3R7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG4gICAgJi5sYXN0e1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIH1cbiAgICAmLmV4cGFuZGVkLmFjdGl2ZS10cmFpbHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hcnJvdy1zY3JlZW4pIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGVtZXJhbGQtZ3JlZW47XG4gICAgICB9XG4gICAgICBhe1xuICAgICAgICBjb2xvcjogJGRhcmstZ3JleTtcbiAgICAgICAgLy8gQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFycm93LXNjcmVlbikge1xuICAgICAgICAgIC8vIHBhZGRpbmctYm90dG9tOiBtcygtMyk7XG4gICAgICAgIC8vIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBhe1xuICAgICAgLy8gYm9yZGVyOiAxcHggc29saWQgZ3JlZW47XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgZm9udC1zaXplOiBtcygtMSk7XG4gICAgICBjb2xvcjogJGRhcnRtb3V0aC1ncmVlbjtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFycm93LXNjcmVlbikge1xuICAgICAgICBwYWRkaW5nOiBtcygtMykgbXMoKTtcbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hcnJvdy1zY3JlZW4pIHtcbiAgICAgICAgZm9udC1zaXplOiBtcygpO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuYWN0aXZlLXRyYWlse1xuICAgICAgLm1hdGVyaWFsLWljb25ze1xuICAgICAgICBjb2xvcjogJGRhcmstZ3JleTtcbiAgICAgIH1cbiAgICAgIC5tZW51IC5sZXZlbC0ye1xuICAgICAgICBhe1xuICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgJi5hY3RpdmV7XG4gICAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpob3ZlcntcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hcnJvdy1zY3JlZW4pIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGVtZXJhbGQtZ3JlZW47XG4gICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwcHg7XG4gICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDBweDtcbiAgICAgIH1cbiAgICAgIGF7XG4gICAgICAgIGNvbG9yOiAkZGFyay1ncmV5O1xuICAgICAgfVxuICAgICAgLm1hdGVyaWFsLWljb25ze1xuICAgICAgICBjb2xvcjogJGRhcmstZ3JleTtcbiAgICAgIH1cbiAgICB9XG4gICAgJi5leHBhbmRlZCA+IGF7XG4gICAgICAvLyBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cbiAgLmRlLWRyb3Bkb3due1xuICAgIC5leHBhbmRlZHtcbiAgICAgIC5tZW51e1xuICAgICAgICBib3gtc2hhZG93OiAwIDFweCA1cHggcmdiYSgwLDAsMCwwLjUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tZW51IC5sZXZlbC0ye1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aW50KCRsaWdodC1ncmV5LCA5MCUpO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHRpbnQoJGxpZ2h0LWdyZXksIDIwJSk7XG4gICAgcGFkZGluZzogMDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIC4zcyBlYXNlLW91dCwgYm9yZGVyLWNvbG9yIC4zcyBlYXNlLW91dDtcbiAgICAmLmxhc3R7XG4gICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgJjpob3ZlcixcbiAgICAgICYuYWN0aXZlLXRyYWlse1xuICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6aG92ZXIsXG4gICAgJi5hY3RpdmUtdHJhaWx7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFydG1vdXRoLWdyZWVuO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHRpbnQoJGRhcnRtb3V0aC1ncmVlbiwgMTAlKTtcbiAgICAgIGF7XG4gICAgICAgIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cblxuICAgIGF7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgcGFkZGluZzogbXMoLTQpIG1zKDEpO1xuICAgICAgY29sb3I6ICRkYXJrLWdyZXk7XG4gICAgfVxuICB9XG59XG4iLCIvKiBuYXZpZ2F0aW9uL19ibG9jay1zZWNvbmRhcnktbmF2LnNjc3MgKi9cblxuLmJsb2NrLW1lbnUtYmxvY2stM3tcbiAgLm1lbnV7XG4gICAgQGluY2x1ZGUgcmVzZXQ7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgQGluY2x1ZGUgbmF2aWdhdGlvbi1saXN0O1xuICAgIGZsb2F0OiByaWdodDtcbiAgfVxuXG4gIC5tZW51IGxpe1xuICAgIEBpbmNsdWRlIHJlc2V0O1xuICAgIEBpbmNsdWRlIHJlc2V0LWZvbnQ7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgcGFkZGluZzogbXMoLTMpIDA7XG4gIH1cblxuICAubWVudSBhe1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNvbG9yOiAkZm9yZXN0LWdyZWVuO1xuICAgIGZvbnQtc2l6ZTogbXMoLTEpO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIHBhZGRpbmc6IDAgbXMoLTQpO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hcnJvdy1zY3JlZW4pIHtcbiAgICAgIHBhZGRpbmc6IDAgbXMoLTMpO1xuICAgIH1cbiAgICAmOmhvdmVyLFxuICAgICYuYWN0aXZle1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICBjb2xvcjogJGRhcnRtb3V0aC1ncmVlbjtcbiAgICB9XG4gIH1cblxuICAubWVudSAubGFzdCBhe1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgfVxufVxuIiwiLyogbmF2aWdhdGlvbi9fYmxvY2stc3ViLW5hdi5zY3NzICovXG4uYmxvY2stc3ViLW5hdntcbiAgLm1lbnUgbGl7XG4gICAgQGluY2x1ZGUgcmVzZXQ7XG4gICAgQGluY2x1ZGUgcmVzZXQtZm9udDtcbiAgfVxuICAubWVudSAuZXhwYW5kZWR7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAubWVudSB7XG4gICAgICBwYWRkaW5nOiBtcygtMik7XG4gICAgICBsaXtcbiAgICAgICAgYXtcbiAgICAgICAgICBmb250LXNpemU6IG1zKC0xKTtcbiAgICAgICAgICBsaW5lLWhlaWdodDogbXMoMik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLm1lbnUgLmxhc3R7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufSIsIi8qIG5hdmlnYXRpb24vX2Jsb2NrLXN1Yi1uYXYuc2NzcyAqL1xuLnJlZ2lvbi1zaWRlYmFyLXNlY29uZCAuYmxvY2stbWVudS1ibG9jayB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDFweCBzb2xpZCAkbGlnaHQtZ3JleTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdGludCgkbGlnaHQtZ3JleSwgNjAlKTtcbiAgcGFkZGluZzogMDtcblxuICBoMntcbiAgICBtYXJnaW46IG1zKDEpIG1zKDEpIG1zKCkgbXMoMSk7XG4gICAgLy8gc3BhbntcbiAgICAvLyAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIC8vIH1cbiAgfVxuICAubWVudXtcbiAgICBsaXtcbiAgICAgIC8vIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkZm9yZXN0LWdyZWVuO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRsaWdodC1ncmV5O1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICBhe1xuICAgICAgICAvLyBjb2xvcjogd2hpdGU7XG4gICAgICAgIGNvbG9yOiAkZm9yZXN0LWdyZWVuO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBmb250LXNpemU6IG1zKC0xKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRib2xkO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcGFkZGluZzogbXMoLTEpIG1zKDIpO1xuICAgICAgICAvLyBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFydG1vdXRoLWdyZWVuO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aW50KCRsaWdodC1ncmV5LCA2MCUpO1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIC4zcyBlYXNlLW91dDtcbiAgICAgICAgJjpob3ZlcntcbiAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgIC8vIGJhY2tncm91bmQtY29sb3I6ICRmb3Jlc3QtZ3JlZW47XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRhcnRtb3V0aC1ncmVlbjtcbiAgICAgICAgfVxuICAgICAgICAmLmFjdGl2ZSxcbiAgICAgICAgJi5hY3RpdmUtdHJhaWx7XG4gICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgIC8vIGJhY2tncm91bmQtY29sb3I6ICRmb3Jlc3QtZ3JlZW47XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRhcnRtb3V0aC1ncmVlbjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvL1NlY29uZCBMZXZlbCBNZW51XG4gICAgICAubWVudXtcbiAgICAgICAgbGl7XG4gICAgICAgICAgLy8gYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRsaWdodC1ncmV5O1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkZW1lcmFsZC1ncmVlbjtcbiAgICAgICAgICAmOmxhc3QtY2hpbGR7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgICBhe1xuICAgICAgICAgICAgY29sb3I6ICRkYXJrLWdyZXk7XG4gICAgICAgICAgICAvLyBwYWRkaW5nLWxlZnQ6IG1zKDQpO1xuICAgICAgICAgICAgLy8gYmFja2dyb3VuZC1jb2xvcjogJGxpZ2h0LWdyZXk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgICY6aG92ZXJ7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRlbWVyYWxkLWdyZWVuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi5hY3RpdmUsXG4gICAgICAgICAgICAmLmFjdGl2ZS10cmFpbHtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGVtZXJhbGQtZ3JlZW47XG4gICAgICAgICAgICAgICY6aG92ZXJ7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogc2hhZGUoJGVtZXJhbGQtZ3JlZW4sIDE1JSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvL1RoaXJkIExldmVsIE1lbnVcbiAgICAgICAgLm1lbnV7XG4gICAgICAgICAgbGl7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICAgICAgYXtcbiAgICAgICAgICAgICAgY29sb3I6ICRkYXJ0bW91dGgtZ3JlZW47XG4gICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbXMoMSk7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRpbnQoJGxpZ2h0LWdyZXksIDYwJSk7XG4gICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkbm9ybWFsO1xuICAgICAgICAgICAgICAmOmhvdmVye1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICYuYWN0aXZle1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgICAgICY6aG92ZXJ7XG4gICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLy8gLm1lbnUgLmxhc3R7XG4gICAgLy8gbWFyZ2luLWJvdHRvbTogMDtcbiAgLy8gfVxufSIsIi8qIG5hdmlnYXRpb24vX2JyZWFkY3J1bWIuc2NzcyAqL1xuXG4uYnJlYWRjcnVtYntcbiAgQGluY2x1ZGUgcmVzZXQ7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkbGlnaHQtZ3JleTtcbiAgcGFkZGluZzogbXMoLTMpIDA7XG4gIG1hcmdpbi1ib3R0b206IG1zKCk7XG4gIGF7XG4gICAgY29sb3I6ICRkYXJrLWdyZXk7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC1zaXplOiBtcygtMSk7XG4gICAgZm9udC13ZWlnaHQ6ICRib2xkO1xuICAgIC8vIGJvcmRlci1yaWdodDogMnB4IHNvbGlkICRsaWdodC1ncmV5O1xuICAgIHBhZGRpbmc6IDAgbXMoLTMpO1xuICAgICY6Zmlyc3QtY2hpbGR7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAmOjpiZWZvcmV7XG4gICAgICAgIEBpbmNsdWRlIG1hdGVyaWFsLWljb25zO1xuICAgICAgICBAaW5jbHVkZSBtZC0xODtcbiAgICAgICAgY29udGVudDpcImhvbWVcIjtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBtcygtMTApO1xuICAgICAgICBjb2xvcjogJGRhcmstZ3JleTtcbiAgICAgIH1cbiAgICB9XG4gICAgJjpsYXN0LWNoaWxke1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICB9XG4gICAgJjpob3ZlcntcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cbiAgfVxufVxuIiwiLyogbmF2aWdhdGlvbi9fcGFnZXIuc2NzcyAqL1xuXG4ucGFnZXJ7XG4gIEBpbmNsdWRlIHJlc2V0O1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgQGluY2x1ZGUgbm8tYnVsbGV0cztcbiAgcGFkZGluZy10b3A6IG1zKCk7XG4gIGJvcmRlci10b3A6IDNweCBzb2xpZCAkZW1lcmFsZC1ncmVlbjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBsaXtcbiAgICBAaW5jbHVkZSByZXNldC1mb250O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICAucGFnZXItY3VycmVudHtcbiAgICBwYWRkaW5nOiBtcygtOCkgbXMoLTIpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRkYXJ0bW91dGgtZ3JlZW47XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIGZvbnQtd2VpZ2h0OiAkYm9sZDtcbiAgfVxuXG4gIC5wYWdlci1lbGxpcHNpc3tcbiAgICBtYXJnaW4tcmlnaHQ6IG1zKCk7XG4gIH1cblxuICBhe1xuICAgIC8vIG1hcmdpbi1yaWdodDogbXMoLTEpO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IG1zKC04KSBtcygtMik7XG4gICAgY29sb3I6ICRkYXJrLWdyZXk7XG4gICAgZm9udC13ZWlnaHQ6ICRib2xkO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZW1lcmFsZC1ncmVlbjtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3MgZWFzZS1vdXQ7XG4gICAgJjpob3ZlcntcbiAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRkYXJ0bW91dGgtZ3JlZW47XG4gICAgfVxuICB9XG5cbiAgLnBhZ2VyLW5leHQsXG4gIC5wYWdlci1wcmV2aW91c3tcbiAgICBAaW5jbHVkZSBzcXVpc2gtdGV4dDtcbiAgICBhe1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICBib3JkZXI6IDNweCBzb2xpZCAkbmV1dHJhbC1ncmV5O1xuICAgICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuM3MgZWFzZS1vdXQsIGNvbG9yIDAuM3MgZWFzZS1vdXQ7XG4gICAgICAmOmhvdmVye1xuICAgICAgICBib3JkZXI6IDNweCBzb2xpZCAkbGlnaHQtZ3JleTtcbiAgICAgICAgJjo6YmVmb3Jle1xuICAgICAgICAgIGNvbG9yOiAkbGlnaHQtZ3JleTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5wYWdlci1wcmV2aW91c3tcbiAgICBhe1xuICAgICAgJjo6YmVmb3Jle1xuICAgICAgICBAaW5jbHVkZSBtYXRlcmlhbC1pY29ucztcbiAgICAgICAgY29udGVudDpcImtleWJvYXJkX2Fycm93X2xlZnRcIjtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRib2xkO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5wYWdlci1uZXh0e1xuICAgIGNsZWFyOiBsZWZ0O1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNtYWxsLXNjcmVlbikge1xuICAgICAgY2xlYXI6IG5vbmU7XG4gICAgfVxuICAgIGF7XG4gICAgICAmOjpiZWZvcmV7XG4gICAgICAgIEBpbmNsdWRlIG1hdGVyaWFsLWljb25zO1xuICAgICAgICBjb250ZW50Olwia2V5Ym9hcmRfYXJyb3dfcmlnaHRcIjtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRib2xkO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5wYWdlci1maXJzdCwucGFnZXItbGFzdHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4iLCIvKiBfcmV2aXNpb25zLnNjc3MgKi9cbi8vIF9yZXZpc2lvbnMuc2NzcyBjb250YWlucyBlbWVyZ2VuY3kgcmV2aXNpb25zIG9yIGZpeGVzIGZvciBhIHN1cHBvcnRpbmdcbi8vIGRldmVsb3BlciBpZiB0aGUgbWFpbiBkZXZlbG9wZXIgaXMgdW5hdmFpbGFibGVcblxuXG4iLCIvKiBfaWUuc2NzcyAqL1xuLy8gTWluaW11bSBzdXBwb3J0ZWQgSW50ZXJuZXQgRXhwbG9yZXIgdmVyc2lvblxuLy8gaHR0cDovL3lvdXJzaXRlLmNhL2FkbWluL2FwcGVhcmFuY2Uvc2V0dGluZ3MvZGVfdGhlbWVcblxuLy8gVGhlIG1pbmltdW0gdmVyc2lvbiBudW1iZXIgb2YgSW50ZXJuZXQgRXhwbG9yZXIgdGhhdCB5b3UgYWN0aXZlbHkgc3VwcG9ydC5cbi8vIFRoaXMgd2lsbCBvbmx5IGNoYW5nZSB0aGUgaWUgY2xhc3MgYWRkZWQgdG8gdGhlIGJvZHkuIFlvdSBjYW4gdGhlblxuLy8gY3JlYXRlIGEgc2VwYXJhdGUgU0FTUyBwYXJ0aWFsIGFuZCBpbXBvcnQgaXQgd2l0aGluIHRoaXMgZmlsZS4gU2VlXG4vLyBpZS9faWU5LnNjc3MgYXMgYW4gZXhhbXBsZVxuLy8gKGN1cnJlbnRseSBzZXQgdG8gSW50ZXJuZXQgRXhwbG9yZXIgOSlcblxuLy8gSWYgeW91IE1VU1QgaGF2ZSBzdHlsZXNoZWV0cyBmb3Igc3BlY2lmaWMgYnJvd3NlciB2ZXJzaW9ucywgY3JlYXRlIGFuXG4vLyBhcHByb3ByaWF0ZSBJRSBjb25kaXRpb25hbCBjb21tZW50IGluIGh0bWwudHBsLnBocCBhbmQgYSBuZXcgZmlsZS5cbi8vIGVnLiBpZTguc2Nzcy4gQmVnaW4gdGhlIGRvY3VtZW50IHdpdGggQGltcG9ydCAndGhlbWUtY29tbW9ucycgYW5kIHRoZW5cbi8vIC5pZTh7fS4gVGFsayB0byBNaWtlIFBhY2Ugd2l0aCBhbnkgcXVlc3Rpb25zLlxuXG4vLyBAaW1wb3J0IFwiaWUvaWU5XCI7XG5AaW1wb3J0IFwiaWUvaWUxMFwiO1xuIiwiLyogaWUvX2llMTAuc2NzcyAqL1xuLy8gSW50ZXJuZXQgRXhwbG9yZXIgOSBhbmQgYmVsb3cgc3VwcG9ydFxuXG4ubHQtaWUxMHtcblxuICAuYmxvY2stdmlld3MtaG9tZXBhZ2UtYmFubmVyLWJsb2NrIC5ob21lcGFnZS1iYW5uZXJfX2NhcHRpb257XG4gICAgbGVmdDogMDtcbiAgfVxuXG4gIC5ibG9jay1zZWFyY2gtZm9ybXtcbiAgICBidXR0b24gLm1hdGVyaWFsLWljb25ze1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vLi4vaW1nL2ljb25zL2ljX3NlYXJjaF9ibGFja18yNGRwXzF4LnBuZ1wiKTtcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICB3aWR0aDogNDBweDtcbiAgICB9XG4gIH1cblxuICAuYmxvY2stdmlld3MtZXZlbnRzLWJsb2NrLTJ7XG4gICAgLmZpZWxkLW5hbWUtZmllbGQtZGF0ZSAuZmllbGQtaXRlbTpiZWZvcmV7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi8uLi9pbWcvaWNvbnMvaWNfZXZlbnRfYmxhY2tfMjRkcF8xeC5wbmdcIik7XG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIH1cbiAgfVxuXG4gIC5ibG9jay12aWV3cy1ldmVudHMtYmxvY2stM3tcbiAgICAuZmllbGQtbmFtZS1maWVsZC1kYXRlIC5maWVsZC1pdGVtOmJlZm9yZXtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uLy4uL2ltZy9pY29ucy9pY19ldmVudF93aGl0ZV8yNGRwXzF4LnBuZ1wiKTtcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgfVxuICB9XG5cbiAgLmJsb2NrLWRlLWV2ZW50cy1ldmVudHMtbWluaS1jYWxlbmRhciAuY2xuZHItcHJldmlvdXMtYnV0dG9uOmJlZm9yZSxcbiAgLnBhZ2VyIC5wYWdlci1wcmV2aW91cyBhOjpiZWZvcmUsXG4gIC5yZWxhdGVkLWNvbnRlbnQgdWwgLnNsaWNrLXByZXY6YmVmb3JlLFxuICAuYmxvY2stdmlld3MtZXZlbnRzLWJsb2NrLTQgdWwgLnNsaWNrLXByZXY6YmVmb3JlLFxuICAuYmxvY2stdmlld3MtbmV3cy1ibG9jay0yIHVsIC5zbGljay1wcmV2OmJlZm9yZXtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi8uLi9pbWcvaWNvbnMvaWNfa2V5Ym9hcmRfYXJyb3dfbGVmdF9ibGFja18yNGRwXzF4LnBuZ1wiKTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICB9XG5cbiAgLmJsb2NrLWRlLWV2ZW50cy1ldmVudHMtbWluaS1jYWxlbmRhciAuY2xuZHItbmV4dC1idXR0b246YmVmb3JlLFxuICAucGFnZXIgLnBhZ2VyLW5leHQgYTo6YmVmb3JlLFxuICAucmVsYXRlZC1jb250ZW50IHVsIC5zbGljay1uZXh0OmJlZm9yZSxcbiAgLmJsb2NrLXZpZXdzLWV2ZW50cy1ibG9jay00IHVsIC5zbGljay1uZXh0OmJlZm9yZSxcbiAgLmJsb2NrLXZpZXdzLW5ld3MtYmxvY2stMiB1bCAuc2xpY2stbmV4dDpiZWZvcmV7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vLi4vaW1nL2ljb25zL2ljX2tleWJvYXJkX2Fycm93X3JpZ2h0X2JsYWNrXzI0ZHBfMXgucG5nXCIpO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIH1cblxuICAuYnJlYWRjcnVtYiBhe1xuICAgICY6aG92ZXJ7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBjb2xvcjogJGRhcnRtb3V0aC1ncmVlbjtcbiAgICB9XG5cbiAgICAmOmZpcnN0LWNoaWxkOjpiZWZvcmV7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi8uLi9pbWcvaWNvbnMvaWNfaG9tZV9ibGFja18xOGRwXzF4LnBuZ1wiKTtcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgfVxuICB9XG5cbiAgLm1vcmUtbGluayBhe1xuICAgICY6aG92ZXJ7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBjb2xvcjogYmxhY2s7XG4gICAgfVxuICAgICY6OmFmdGVye1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vLi4vaW1nL2ljb25zL2ljX2Fycm93X2ZvcndhcmRfYmxhY2tfMThkcF8xeC5wbmdcIik7XG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIH1cbiAgfVxuXG4gIC5ub2RlLXR5cGUtdHJhdmVsLWRhdGEgLmZpZWxkLW5hbWUtZmllbGQtZXZlbnQtZGF0ZSAuZmllbGQtaXRlbTpiZWZvcmV7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vLi4vaW1nL2ljb25zL2ljX2V2ZW50X2JsYWNrXzI0ZHBfMXgucG5nXCIpO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIH1cblxuICAubm9kZS1jb3VuY2lsLW1lbWJlciAuZmllbGQtbmFtZS1maWVsZC1lbWFpbC1hZGRyZXNzIC5maWVsZC1pdGVtOmJlZm9yZXtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi8uLi9pbWcvaWNvbnMvaWNfZW1haWxfYmxhY2tfMjRkcF8xeC5wbmdcIik7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgfVxufVxuIiwiLyogX3ByaW50LnNjc3MgKi9cbi8vIGNvbnRhaW5zIGRlZmF1bHQgYm9pbGVycGxhdGUgcHJpbnQgcmVzZXRzLCBlY2hpZG5hIGRlZmF1bHQgdGhlbWUgc3BlY2lmaWNcbi8vIHJlc2V0cywgYW5kIHByb2plY3QgdGhlbWUgc3BlY2lmaWMgcmVzdHMuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBQcmludCBzdHlsZXMuXG4gICBJbmxpbmVkIHRvIGF2b2lkIHRoZSBhZGRpdGlvbmFsIEhUVFAgcmVxdWVzdDpcbiAgIGh0dHA6Ly93d3cucGhwaWVkLmNvbS9kZWxheS1sb2FkaW5nLXlvdXItcHJpbnQtY3NzL1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLy8gZGVmYXVsdFxuXG5AbWVkaWEgcHJpbnQge1xuICAgICosXG4gICAgKjpiZWZvcmUsXG4gICAgKjphZnRlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7IC8qIEJsYWNrIHByaW50cyBmYXN0ZXI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0dHA6Ly93d3cuc2FuYmVpamkuY29tL2FyY2hpdmVzLzk1MyAqL1xuICAgICAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIHRleHQtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBcIlRpbWVzXCJcbiAgICB9XG5cbiAgICBhLFxuICAgIGE6dmlzaXRlZCB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cblxuICAgIC8vIGFbaHJlZl06YWZ0ZXIge1xuICAgICAgICAvLyBjb250ZW50OiBcIiAoXCIgYXR0cihocmVmKSBcIilcIjtcbiAgICAvLyB9XG5cbiAgICAvLyBhYmJyW3RpdGxlXTphZnRlciB7XG4gICAgICAgIC8vIGNvbnRlbnQ6IFwiIChcIiBhdHRyKHRpdGxlKSBcIilcIjtcbiAgICAvLyB9XG5cbiAgICAvKlxuICAgICAqIERvbid0IHNob3cgbGlua3MgdGhhdCBhcmUgZnJhZ21lbnQgaWRlbnRpZmllcnMsXG4gICAgICogb3IgdXNlIHRoZSBgamF2YXNjcmlwdDpgIHBzZXVkbyBwcm90b2NvbFxuICAgICAqL1xuXG4gICAgYVtocmVmXj1cIiNcIl06YWZ0ZXIsXG4gICAgYVtocmVmXj1cImphdmFzY3JpcHQ6XCJdOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICB9XG5cbiAgICBwcmUsXG4gICAgYmxvY2txdW90ZSB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM5OTk7XG4gICAgICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgfVxuXG4gICAgLypcbiAgICAgKiBQcmludGluZyBUYWJsZXM6XG4gICAgICogaHR0cDovL2Nzcy1kaXNjdXNzLmluY3V0aW8uY29tL3dpa2kvUHJpbnRpbmdfVGFibGVzXG4gICAgICovXG5cbiAgICB0aGVhZCB7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cDtcbiAgICB9XG5cbiAgICB0cixcbiAgICBpbWcge1xuICAgICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgfVxuXG4gICAgaW1nIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgcCxcbiAgICBoMixcbiAgICBoMyB7XG4gICAgICAgIG9ycGhhbnM6IDM7XG4gICAgICAgIHdpZG93czogMztcbiAgICB9XG5cbiAgICBoMixcbiAgICBoMyB7XG4gICAgICAgIHBhZ2UtYnJlYWstYWZ0ZXI6IGF2b2lkO1xuICAgIH1cblxuICAgIC8vIHRoZW1lIGRlZmF1bHQgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gICAgaHRtbCxib2R5e1xuICAgICAgICBAaW5jbHVkZSByZXNldC1mb250O1xuICAgICAgICBmb250LWZhbWlseTogR2VvcmdpYSwg4oCYVGltZXMgTmV3IFJvbWFu4oCZLCBzZXJpZjtcbiAgICAgICAgZm9udC1zaXplOiAxMnB0O1xuICAgIH1cblxuICAgIGJvZHl7XG4gICAgICAgIHBhZGRpbmc6IDFlbTtcbiAgICB9XG5cbiAgICAuY29udGFpbmVyLFxuICAgIC5yZWdpb24sXG4gICAgLmJsb2Nre1xuICAgICAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgICAgICBkaXNwbGF5OiAgYmxvY2sgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuY29udGFpbmVye1xuICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgfVxuXG4gICAgLmxheW91dC1jb250YWluZXJ7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgaDEsaDIsaDMsaDQsaDUsaDZ7XG4gICAgICAgIEBpbmNsdWRlIHJlc2V0LWZvbnQ7XG4gICAgICAgIEBpbmNsdWRlIHJlc2V0O1xuICAgICAgICB0ZXh0LWluZGVudDogMCAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtcygpO1xuICAgICAgICBtYXJnaW4tdG9wOiBtcygpO1xuXG4gICAgfVxuXG4gICAgdWwsb2x7XG4gICAgICBsaXtcbiAgICAgICAgLy8gbGlzdC1zdHlsZS10eXBlOiBkZWNpbWFsO1xuICAgICAgICAvLyBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpbWcsXG4gICAgLmZhLFxuICAgICNmb290ZXIsXG4gICAgLnJlZ2lvbi1mb290ZXItc2Vjb25kYXJ5LFxuICAgIC5ibG9jay1tYWluLW5hdntcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuXG4gICAgLy8gdGhlbWUgc3BlY2lmaWMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgICBoMXtcbiAgICAgICAgZm9udC1zaXplOiAyMHB4IWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBoMntcbiAgICAgICAgZm9udC1zaXplOiAxOHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkbm9ybWFsICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgaDN7XG4gICAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIGgyIHNwYW4ud29yZDEsXG4gICAgcCBzcGFuLndvcmQxe1xuICAgICAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5oaWdobGlnaHQtYm94e1xuICAgICAgICBib3JkZXItY29sb3I6ICNjY2MgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAjaGVhZGVyLFxuICAgIC5yZWdpb24tY3Rhe1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmJsb2NrLXZpZXdzLWhvbWVwYWdlLWJhbm5lci1ibG9jayAuaG9tZXBhZ2UtYmFubmVye1xuICAgICAgICBtaW4taGVpZ2h0OiAxMDBweCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICNtYWlue1xuICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICNldmVudHMsXG4gICAgI25ld3N7XG4gICAgICAgIG1heC13aWR0aDogMTE4OHB4O1xuICAgICAgICBtYXJnaW46IDAgYXV0byAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICNldmVudHMgLnJlZ2lvbi1ldmVudHMtcHJpbWFyeSxcbiAgICAjZXZlbnRzIC5yZWdpb24tZXZlbnRzLXNlY29uZGFyeXtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAucmVnaW9uLWV2ZW50cy1wcmltYXJ5IC5ibG9jay12aWV3cy1ldmVudHMtYmxvY2stM3tcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC5ub3QtZnJvbnQgLnJlZ2lvbi1mZWF0dXJlZC1jb250ZW50e1xuICAgICAgICBtYXgtd2lkdGg6IDExODhweDtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG8gIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAucmVnaW9uLXNpZGViYXItc2Vjb25ke1xuICAgICAgICBkaXNwbGF5OiAgbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC8vIGZpZWxkc1xuICAgIC5maWVsZHtcbiAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5ibG9jay1maWVsZGJsb2NrLW5vZGUtYmFzaWMtcGFnZS1kZWZhdWx0LWZpZWxkLXBob3RvLWdhbGxlcnksXG4gICAgLmJsb2NrLWZpZWxkYmxvY2stbm9kZS1uZXdzLWRlZmF1bHQtZmllbGQtcGhvdG8tZ2FsbGVyeSxcbiAgICAuZmllbGQtbmFtZS1maWVsZC1waG90by1nYWxsZXJ5e1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmZpZWxkLW5hbWUtZmllbGQtbGVjdHVyZS12aWRlb3tcbiAgICAgICAgZGlzcGxheTogbm9uZSA7XG4gICAgfVxuXG4gICAgLy8gdmlld3NcbiAgICAudmlldy1maWx0ZXJze1xuICAgICAgICBwYWRkaW5nIDowICFpbXBvcnRhbnQ7XG4gICAgICAgIC51aS10YWJzLXBhbmVse1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgICAgLnZpZXdzLWV4cG9zZWQtZm9ybV9fZm9ybS1hY3Rpb25ze1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC52aWV3cy1yb3d7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjOTk5ICFpbXBvcnRhbnQ7XG4gICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICY6bGFzdC1jaGlsZHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wYWdlcntcbiAgICAgICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICM5OTk7XG4gICAgfVxuXG4gICAgLy8gaW1hZ2UgaGVhZGVyc1xuICAgIC5jb2wxLFxuICAgIC5ldmVudC1oZWFkZXJfX2ltYWdlLFxuICAgIC5ibG9jay1maWVsZGJsb2NrLW5vZGUtYmFzaWMtcGFnZS1kZWZhdWx0LWZpZWxkLWhlYWRlci1pbWFnZSxcbiAgICAuZmllbGQtbmFtZS1maWVsZC1oZWFkZXItaW1hZ2V7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gICAgLmNvbDIsXG4gICAgLmNvbDMsXG4gICAgLmV2ZW50LWhlYWRlcl9faW5mbyxcbiAgICAuYmxvY2stZmllbGRibG9jay1ub2RlLWJhc2ljLXBhZ2UtZGVmYXVsdC1maWVsZC1oZWFkZXItY3RhLFxuICAgIC5ncm91cC13cmFwcGVye1xuICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nOiBtcygpIDAhaW1wb3J0YW50O1xuICAgICAgICBtaW4taGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuYmxvY2stdmlld3MtZmVhdHVyZS1ibG9jayAuY29sMixcbiAgICAuYmxvY2stZGlyZWN0b3J5LWN0YSAuZGVzY3JpcHRpb24sXG4gICAgLmJsb2NrLWNhcmVlci1uZXR3b3JrLWN0YSAuZGVzY3JpcHRpb257XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtaW4taGVpZ2h0OiBhdXRvO1xuICAgIH1cblxuICAgIC8vIGJsb2Nrc1xuICAgIC5ibG9jay12aWV3cy1uZXdzLWJsb2NrLTQgLnZpZXdzLXJvdyxcbiAgICAuYmVhbi1jdGEgLmZpZWxkLW5hbWUtZmllbGQtYm9keSxcbiAgICAuYmVhbi1jdGEgLmZpZWxkLW5hbWUtZmllbGQtY2FsbC10by1hY3Rpb257XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG5cbiAgICAvLyBsaW5rc1xuICAgIC5sZWFybi1tb3JlIGEsXG4gICAgLm1vcmUtbGluayxcbiAgICAuY3RhLWxpbmssXG4gICAgLnZpZXdzLWZpZWxkLXZpZXctbm9kZSBhLFxuICAgIC5maWVsZC1uYW1lLWZpZWxkLWNhbGwtdG8tYWN0aW9uIGF7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAvLyBsaXN0IGRpc3BsYXlzXG4gICAgLnZpZXctZXZlbnRzLXBhZ2UubGlzdC1kaXNwbGF5IC5maWVsZC10eXBlLWRhdGV0aW1le1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgfVxuXG4gICAgLnZpZXdzLWZpZWxkLXRpdGxlLFxuICAgIC5maWVsZC1uYW1lLWZpZWxkLWRhdGUsXG4gICAgLnZpZXdzLWZpZWxkLWZpZWxkLWRhdGUtMSxcbiAgICAudmlld3MtZmllbGQtY3JlYXRlZCxcbiAgICAuZmllbGQtbmFtZS1ib2R5LFxuICAgIC52aWV3cy1maWVsZC12aWV3LW5vZGUsXG4gICAgLmZpZWxkLW5hbWUtZmllbGQtc3BlYWtlcixcbiAgICAuZmllbGQtbmFtZS1maWVsZC1sb2NhdGlvbixcbiAgICAuZmllbGQtbmFtZS1maWVsZC1yb2xlc3tcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmJsb2NrLXN5c3RlbSAudmlldy1jb3VuY2lsLW1lbWJlci1pbi1jb21taXR0ZWUgLnZpZXdzLXJvd3tcbiAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgJGxpZ2h0LWdyZXkgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuYmxvY2stc3lzdGVtIC52aWV3LWNvdW5jaWwtbWVtYmVyLWluLWNvbW1pdHRlZSAudmlld3Mtcm93IC5maWVsZC1uYW1lLWZpZWxkLXJvbGVzIHB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkbGlnaHQtZ3JleTtcbiAgICB9XG5cbiAgICAuYmxvY2stdmlld3MtbmV3cy1ibG9jay00IC52aWV3cy1yb3cgLnZpZXdzLWZpZWxkLW5vdGhpbmctMXtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiI7QUNBQSxzQkFBc0I7QUNBdEI7d0NBRXdDO0FBRXhDOzs7OztHQUtHO0FBQ0gsQUFBQSxJQUFJLENBQUM7RUFDRCxrQkFBa0IsRUFBRSxVQUFXO0VBQzVCLGVBQWUsRUFBRSxVQUFXO0VBQ3ZCLFVBQVUsRUFBRSxVQUFXLEdBQ2xDOztBQUVELEFBQUEsQ0FBQyxFQUFELEFBQUEsQ0FBQyxBQUdJLE9BQU8sRUFIWixBQUFBLENBQUMsQUFJSSxNQUFNLENBQUM7RUFDSixrQkFBa0IsRUFBRSxPQUFRO0VBQ3pCLGVBQWUsRUFBRSxPQUFRO0VBQ3BCLFVBQVUsRUFBRSxPQUFRLEdBQzNCOztBQ3hCVCw0RUFBNEU7QUFFNUU7Ozs7R0FJRztBQUVILEFBQUEsSUFBSSxDQUFDO0VBQ0gsV0FBVyxFQUFF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 */
