@charset "UTF-8";

/*
----------------------------------------------------
Epitaph Records
----------------------------------------------------
*/

/*! Flickity v1.2.1
http://flickity.metafizzy.co
---------------------------------------------- */

.flickity-enabled {
  position: relative;
}

.flickity-enabled:focus {
  outline: none;
}

.flickity-viewport {
  overflow: hidden;
  position: relative;
  height: 100%;
}

.flickity-slider {
  position: absolute;
  width: 100%;
  height: 100%;
}

/* draggable */

.flickity-enabled.is-draggable {
  -webkit-tap-highlight-color: transparent;
  tap-highlight-color: transparent;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

.flickity-enabled.is-draggable .flickity-viewport {
  cursor: move;
  cursor: -webkit-grab;
  cursor: grab;
}

.flickity-enabled.is-draggable .flickity-viewport.is-pointer-down {
  cursor: -webkit-grabbing;
  cursor: grabbing;
}

/* ---- previous/next buttons ---- */

.flickity-prev-next-button {
  position: absolute;
  top: 50%;
  width: 44px;
  height: 44px;
  border: none;
  border-radius: 50%;
  background: white;
  background: rgba(255, 255, 255, 0.75);
  cursor: pointer;
  /* vertically center */
  transform: translateY(-50%);
}

.flickity-prev-next-button:hover {
  background: white;
}

.flickity-prev-next-button:focus {
  outline: none;
  box-shadow: 0 0 0 5px #09F;
}

.flickity-prev-next-button:active {
  filter: alpha(opacity=60);
  /* IE8 */
  opacity: 0.6;
}

.flickity-prev-next-button.previous {
  left: 10px;
}

.flickity-prev-next-button.next {
  right: 10px;
}

/* right to left */

.flickity-rtl .flickity-prev-next-button.previous {
  left: auto;
  right: 10px;
}

.flickity-rtl .flickity-prev-next-button.next {
  right: auto;
  left: 10px;
}

.flickity-prev-next-button:disabled {
  filter: alpha(opacity=30);
  /* IE8 */
  opacity: 0.3;
  cursor: auto;
}

.flickity-prev-next-button svg {
  position: absolute;
  left: 20%;
  top: 20%;
  width: 60%;
  height: 60%;
}

.flickity-prev-next-button .arrow {
  fill: #333;
}

/* color & size if no SVG - IE8 and Android 2.3 */

.flickity-prev-next-button.no-svg {
  color: #333;
  font-size: 26px;
}

/* ---- page dots ---- */

.flickity-page-dots {
  position: absolute;
  width: 100%;
  bottom: -25px;
  padding: 0;
  margin: 0;
  list-style: none;
  text-align: center;
  line-height: 1;
}

.flickity-rtl .flickity-page-dots {
  direction: rtl;
}

.flickity-page-dots .dot {
  display: inline-block;
  width: 10px;
  height: 10px;
  margin: 0 8px;
  background: #333;
  border-radius: 50%;
  filter: alpha(opacity=25);
  /* IE8 */
  opacity: 0.25;
  cursor: pointer;
}

.flickity-page-dots .dot.is-selected {
  filter: alpha(opacity=100);
  /* IE8 */
  opacity: 1;
}

/* http://meyerweb.com/eric/tools/css/reset/ 
   v2.0 | 20110126
   License: none (public domain)
*/

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

/* HTML5 display-role reset for older browsers */

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

body {
  line-height: 1;
}

ol,
ul {
  list-style: none;
}

blockquote,
q {
  quotes: none;
}

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

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

/*
----------------------------------------------------
Breakpoints
----------------------------------------------------
*/

/*
----------------------------------------------------
Layout
----------------------------------------------------
*/

/*
----------------------------------------------------
Transition
----------------------------------------------------
*/

/*
----------------------------------------------------
Colors
----------------------------------------------------
*/

.nav.-desktop,
.banner.-center ._head,
.box ._details ._subhead,
.box.-release-list ._details ._info ._artist-name,
.box.-shows ._artist,
.layout-album-detail ._artist-name,
.layout-track-detail ._track-header ._artist-and-album-name,
.tours-map-overlay ._shows ._show-date,
.tours-list ._tour-date-head,
.box.-artists-filter ._details,
.banner ._head,
.box ._details ._head,
.box.-release-list ._details ._info ._release-title,
.layout-album-detail ._release-title,
.layout-track-detail ._track-header ._track-title,
.box ._flag {
  font-family: "Tungsten A", "Tungsten B", Helvetica, sans-serif;
}

.nav.-desktop,
.banner.-center ._head,
.box ._details ._subhead,
.box.-release-list ._details ._info ._artist-name,
.box.-shows ._artist,
.layout-album-detail ._artist-name,
.layout-track-detail ._track-header ._artist-and-album-name,
.tours-map-overlay ._shows ._show-date,
.tours-list ._tour-date-head,
.box.-artists-filter ._details {
  font-weight: 500;
}

.banner ._head,
.box ._details ._head,
.box.-release-list ._details ._info ._release-title,
.layout-album-detail ._release-title,
.layout-track-detail ._track-header ._track-title {
  font-weight: 600;
}

.box ._flag {
  font-weight: 700;
}

.releases-list ._release-date,
.tours-map-overlay ._shows ._show-venue,
.tours-list ._show-city,
.tours-list ._show-venue,
.tours-list ._show-time,
.standard-form input[type="submit"],
.box.-release-list ._details ._info ._release-date,
.artists-list,
.standard-text em,
.standard-text i,
.footer ._copyright p,
body,
input,
textarea,
.standard-form input,
.standard-form textarea,
.standard-form select,
.search ._input,
.footer ._mailing-list input,
.box ._details ._empty ._head,
.box.-solid ._details ._head,
.box.-featured-news ._details ._head,
.box.-all-releases ._details ._head,
.box.-shows ._links,
.box.-contact-info ._details ._subhead,
.box.-faq-links ._details ._subhead,
.tours-location-filter ._input,
.box ._details ._readmore,
.box ._content ._readmore,
.content-box ._header,
.releases-list ol ._header,
.mailing-list-form ._header,
.content-box ._subheader,
.releases-list ol ._subheader,
.mailing-list-form ._subheader,
.layout-subpage ._subpage-actions-menu ._button,
.standard-text strong,
.standard-text b,
.showing-head strong,
.empty-head strong,
.messages,
.standard-form label,
.box.-shows ._date,
.box.-shows ._location,
.box.-news ._details ._head,
.news-article ._title,
.other-releases ._head,
.other-releases ._title,
.layout-track-detail ._track-header ._back-to-album,
.layout-track-detail ._track-header ._next-track,
.releases-list ._title,
.releases-list ._artist,
.releases-list ._purchase-button,
.tours-list ._artist-name,
.tours-location-filter ._head,
.mailing-list-form ._form-submit input {
  font-family: "futura-pt", Helvetica, sans-serif;
}

.releases-list ._release-date,
.tours-map-overlay ._shows ._show-venue,
.tours-list ._show-city,
.tours-list ._show-venue,
.tours-list ._show-time,
.standard-form input[type="submit"],
.box.-release-list ._details ._info ._release-date,
.artists-list {
  font-weight: 300;
}

.releases-list ._release-date,
.tours-map-overlay ._shows ._show-venue,
.tours-list ._show-city,
.tours-list ._show-venue,
.tours-list ._show-time {
  font-style: italic;
}

.standard-text em,
.standard-text i,
.footer ._copyright p,
body,
input,
textarea,
.standard-form input,
.standard-form textarea,
.standard-form select,
.search ._input,
.footer ._mailing-list input,
.box ._details ._empty ._head,
.box.-solid ._details ._head,
.box.-featured-news ._details ._head,
.box.-all-releases ._details ._head,
.box.-shows ._links,
.box.-contact-info ._details ._subhead,
.box.-faq-links ._details ._subhead,
.tours-location-filter ._input {
  font-weight: 400;
}

.standard-text em,
.standard-text i,
.footer ._copyright p {
  font-style: italic;
}

.box ._details ._readmore,
.box ._content ._readmore,
.content-box ._header,
.releases-list ol ._header,
.mailing-list-form ._header,
.content-box ._subheader,
.releases-list ol ._subheader,
.mailing-list-form ._subheader,
.layout-subpage ._subpage-actions-menu ._button,
.standard-text strong,
.standard-text b,
.showing-head strong,
.empty-head strong,
.messages,
.standard-form label,
.box.-shows ._date,
.box.-shows ._location,
.box.-news ._details ._head,
.news-article ._title,
.other-releases ._head,
.other-releases ._title,
.layout-track-detail ._track-header ._back-to-album,
.layout-track-detail ._track-header ._next-track,
.releases-list ._title,
.releases-list ._artist,
.releases-list ._purchase-button,
.tours-list ._artist-name,
.tours-location-filter ._head,
.mailing-list-form ._form-submit input {
  font-weight: 500;
}

.box ._details ._readmore,
.box ._content ._readmore {
  font-style: italic;
}

/*
%font-futura-heavy {
  @extend %font-futura;
  font-weight: 700;
}
*/

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

html {
  font-size: 14px;
}

body,
input,
textarea {
  color: #231f20;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body {
  background: #e1e1e1;
}

a {
  color: #231f20;
}

.-mobile-only,
.box.-social.-mobile-only {
  display: block;
}

@media (min-width: 560px) {
  .-mobile-only,
  .box.-social.-mobile-only {
    display: none;
  }
}

.-tablet-only {
  display: none;
}

@media (min-width: 560px) and (max-width: 993px) {
  .-tablet-only {
    display: block;
  }
}

.js-lazy-load {
  opacity: 0;
  transition: opacity 300ms cubic-bezier(0.645, 0.045, 0.355, 1);
}

.js-lazy-load.loaded {
  opacity: 1;
}

.js-header-banner-image {
  opacity: 0;
  transition: opacity 300ms cubic-bezier(0.645, 0.045, 0.355, 1);
}

.js-header-banner-image.loaded {
  opacity: 1;
}

.all {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 14px;
  text-decoration: underline;
  font-style: italic;
  font-size: 0.85rem;
}

/**
 * Standard, white, padded, content-holding box used in a few different places
 */

.content-box,
.releases-list ol,
.mailing-list-form {
  background-color: #fff;
  margin-bottom: 24px;
  padding: 12px;
}

.content-box ._header,
.releases-list ol ._header,
.mailing-list-form ._header,
.content-box ._subheader,
.releases-list ol ._subheader,
.mailing-list-form ._subheader {
  font-size: 1.5rem;
  margin-bottom: 15px;
  letter-spacing: 1px;
  text-transform: uppercase;
}

.content-box ._subheader,
.releases-list ol ._subheader,
.mailing-list-form ._subheader {
  font-size: 1.3rem;
  color: #ff6648;
}

.content-box ._callout,
.releases-list ol ._callout,
.mailing-list-form ._callout {
  font-size: 1.25rem;
  color: #666;
}

.content-box a,
.releases-list ol a,
.mailing-list-form a {
  text-decoration: none;
  color: #666;
}

/*
----------------------------------------------------
COLUMNS
----------------------------------------------------
*/

.single-column {
  clear: both;
  width: 100%;
  float: left;
  padding-left: 1.71569%;
  padding-right: 1.71569%;
}

/*
----------------------------------------------------
LAYOUTS
----------------------------------------------------
*/

/**
 * Base container, uses 'static' sizing and snaps to 'large'
 * and 'medium' breakpoint sizes
 */

.container,
.layout-standard,
.layout-artists,
.layout-contact,
.layout-faq,
.layout-boxes,
.layout-box-grid,
.messages,
.header ._header-content,
.footer ._footer-content,
.subnav ._subnav-content,
.banner ._banner-content,
.layout-releases-list,
.layout-news,
.layout-search {
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
  min-width: 320px;
}

.container:after,
.layout-standard:after,
.layout-artists:after,
.layout-contact:after,
.layout-faq:after,
.layout-boxes:after,
.layout-box-grid:after,
.messages:after,
.header ._header-content:after,
.footer ._footer-content:after,
.subnav ._subnav-content:after,
.banner ._banner-content:after,
.layout-releases-list:after,
.layout-news:after,
.layout-search:after {
  content: " ";
  display: block;
  clear: both;
}

@media (min-width: 560px) {
  .container,
  .layout-standard,
  .layout-artists,
  .layout-contact,
  .layout-faq,
  .layout-boxes,
  .layout-box-grid,
  .messages,
  .header ._header-content,
  .footer ._footer-content,
  .subnav ._subnav-content,
  .banner ._banner-content,
  .layout-releases-list,
  .layout-news,
  .layout-search {
    max-width: 994px;
    margin-left: auto;
    margin-right: auto;
  }

  .container:after,
  .layout-standard:after,
  .layout-artists:after,
  .layout-contact:after,
  .layout-faq:after,
  .layout-boxes:after,
  .layout-box-grid:after,
  .messages:after,
  .header ._header-content:after,
  .footer ._footer-content:after,
  .subnav ._subnav-content:after,
  .banner ._banner-content:after,
  .layout-releases-list:after,
  .layout-news:after,
  .layout-search:after {
    content: " ";
    display: block;
    clear: both;
  }
}

@media (min-width: 994px) {
  .container,
  .layout-standard,
  .layout-artists,
  .layout-contact,
  .layout-faq,
  .layout-boxes,
  .layout-box-grid,
  .messages,
  .header ._header-content,
  .footer ._footer-content,
  .subnav ._subnav-content,
  .banner ._banner-content,
  .layout-releases-list,
  .layout-news,
  .layout-search {
    width: 994px;
    margin-left: auto;
    margin-right: auto;
  }

  .container:after,
  .layout-standard:after,
  .layout-artists:after,
  .layout-contact:after,
  .layout-faq:after,
  .layout-boxes:after,
  .layout-box-grid:after,
  .messages:after,
  .header ._header-content:after,
  .footer ._footer-content:after,
  .subnav ._subnav-content:after,
  .banner ._banner-content:after,
  .layout-releases-list:after,
  .layout-news:after,
  .layout-search:after {
    content: " ";
    display: block;
    clear: both;
  }
}

/**
 * Larger column on the left, smaller column on the right
 *
 * Used on:
 *     - Artists
 *     - Contact
 *     - Tours
 */

.layout-standard .column-1,
.layout-artists .column-1,
.layout-contact .column-1,
.layout-faq .column-1,
.layout-standard .column-2,
.layout-artists .column-2,
.layout-contact .column-2,
.layout-faq .column-2 {
  clear: both;
  width: 100%;
  float: left;
  padding-left: 1.71569%;
  padding-right: 1.71569%;
}

.layout-standard .column-2,
.layout-artists .column-2,
.layout-contact .column-2,
.layout-faq .column-2 {
  display: none;
}

@media (min-width: 994px) {
  .layout-standard .column-1,
  .layout-artists .column-1,
  .layout-contact .column-1,
  .layout-faq .column-1 {
    width: 66.66667%;
    float: left;
    padding-left: 1.71569%;
    padding-right: 1.71569%;
  }

  .layout-standard .column-2,
  .layout-artists .column-2,
  .layout-contact .column-2,
  .layout-faq .column-2 {
    width: 33.33333%;
    float: left;
    padding-left: 1.71569%;
    padding-right: 1.71569%;
    clear: none;
    display: block;
  }
}

/**
 * Box-stacking layout that's 3 columns for desktop, 2 columns for tablet, 
 * and 1 for mobile size
 *
 * Used on:
 *     - Homepage
 *     - Artist detail page (bottom)
 *     - Album detail page (bottom)
 */

.layout-boxes {
  margin-bottom: 24px;
  margin-top: 24px;
  padding-left: 18px;
  padding-right: 18px;
}

.layout-boxes .column-1,
.layout-boxes .column-2,
.layout-boxes .column-3 {
  clear: both;
  width: 100%;
  float: left;
  padding-left: 1.71569%;
  padding-right: 1.71569%;
  float: none;
  margin: 1.71569% 0;
}

@media (min-width: 560px) {
  .layout-boxes {
    padding-left: 0;
    padding-right: 0;
  }

  .layout-boxes .column-1,
  .layout-boxes .column-2,
  .layout-boxes .column-3 {
    clear: none;
    margin: 0;
  }
}

@media (min-width: 560px) and (max-width: 993px) {
  .layout-boxes .column-1,
  .layout-boxes .column-2 {
    width: 50%;
    float: left;
    padding-left: 1.71569%;
    padding-right: 1.71569%;
  }

  .layout-boxes .column-3 {
    display: none;
  }
}

@media (min-width: 994px) {
  .layout-boxes .column-1,
  .layout-boxes .column-2,
  .layout-boxes .column-3 {
    width: 33.33333%;
    float: left;
    padding-left: 1.71569%;
    padding-right: 1.71569%;
  }
}

/**
 * Symmetrical grid, should contain a series of boxes all sized the same and 
 * adjust them according to screensize. No columns, just boxes.
 *
 * Used on:
 *     - Releases (grid view)
 *     - Search results
 *
 * HTML:
 *
 * 
 */

.layout-box-grid .box {
  width: 100%;
  float: left;
  padding-left: 1.71569%;
  padding-right: 1.71569%;
  clear: none;
  padding-bottom: 1.71569%;
  padding-top: 1.71569%;
}

@media (min-width: 560px) {
  .layout-box-grid .box {
    width: 50%;
    float: left;
    padding-left: 1.71569%;
    padding-right: 1.71569%;
  }

  .layout-box-grid .box:nth-child(2n+1) {
    clear: left;
  }

  .layout-box-grid .box:nth-child(3n+1) {
    clear: none;
  }
}

@media (min-width: 994px) {
  .layout-box-grid .box {
    width: 33.33333%;
    float: left;
    padding-left: 1.71569%;
    padding-right: 1.71569%;
  }

  .layout-box-grid .box:nth-child(2n+1) {
    clear: none;
  }

  .layout-box-grid .box:nth-child(3n+1) {
    clear: left;
  }
}

/**
 * Subpage layout for artist detail sub-content.
 */

.layout-subpage {
  margin: 24px 0 0;
  padding: 0 18px;
  position: relative;
}

.layout-subpage::after {
  clear: both;
  content: "";
  display: table;
}

.layout-subpage.-visible {
  display: block;
}

.layout-subpage ._subpage-column {
  clear: both;
  width: 100%;
  float: left;
  padding-left: 1.71569%;
  padding-right: 1.71569%;
  float: none;
}

.layout-subpage ._subpage-column::after {
  clear: both;
  content: "";
  display: table;
}

.layout-subpage ._subpage-content-wrapper {
  background-color: #fff;
  position: relative;
}

.layout-subpage ._subpage-content-wrapper::after {
  clear: both;
  content: "";
  display: table;
}

.layout-subpage ._page-head,
.layout-subpage ._subpage-content {
  padding: 12px;
}

.layout-subpage ._subpage-content {
  padding-top: 0;
}

.layout-subpage ._subpage-actions-menu {
  z-index: 25;
  display: block;
}

.layout-subpage ._subpage-actions-menu::after {
  clear: both;
  content: "";
  display: table;
}

.layout-subpage ._subpage-actions-menu ._button {
  transition: background-color 150ms cubic-bezier(0.645, 0.045, 0.355, 1);
  display: block;
  background-color: #bcbec0;
  color: #fff;
  font-size: 1.15rem;
  position: relative;
  text-align: center;
  text-transform: uppercase;
  text-decoration: none;
  padding: 12px 18px;
  float: right;
  width: 100%;
}

.layout-subpage ._subpage-actions-menu ._button::after {
  clear: both;
  content: "";
  display: table;
}

.layout-subpage ._subpage-actions-menu ._button .icon,
.layout-subpage ._subpage-actions-menu ._button .mobile-top-ui .hamburger,
.mobile-top-ui .layout-subpage ._subpage-actions-menu ._button .hamburger {
  background-size: 10px;
}

.layout-subpage ._subpage-actions-menu ._button .icon.-download,
.layout-subpage ._subpage-actions-menu ._button .mobile-top-ui .-download.hamburger,
.mobile-top-ui .layout-subpage ._subpage-actions-menu ._button .-download.hamburger {
  background-size: 12px;
}

.layout-subpage ._subpage-actions-menu ._button.-close {
  background-color: #666;
}

.layout-subpage ._subpage-actions-menu ._button span {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 10px;
}

.layout-subpage ._subpage-actions-menu ._button:hover {
  background-color: #e2231a;
}

.layout-subpage ._subpage-actions-menu.-double ._button {
  width: 50%;
}

@media (min-width: 560px) {
  .layout-subpage {
    padding: 0;
  }

  .layout-subpage ._subpage-actions-menu {
    position: absolute;
    top: 0.75em;
    right: 1.71569%;
  }

  .layout-subpage ._subpage-actions-menu ._button,
  .layout-subpage ._subpage-actions-menu.-double ._button {
    float: right;
    width: auto;
    padding: 6px 36px;
    margin-left: 1px;
  }
}

@media (min-width: 994px) {
  .layout-subpage ._subpage-actions-menu {
    right: 0;
  }
}

/**
 * Layout for subpage content, usually a photo and listy bits in the left column
 * with longer content in the right. Should nest withing .layout-subpage
 * 
 * Used on:
 *     - Album detail
 *     - Album track listing
 */

.layout-standard-subpage {
  background-color: #fff;
  padding-bottom: 1.71569%;
  padding-top: 1.71569%;
}

.layout-standard-subpage::after {
  clear: both;
  content: "";
  display: table;
}

.layout-standard-subpage .column-1,
.layout-standard-subpage .column-2 {
  clear: both;
  width: 100%;
  float: left;
  padding-left: 1.71569%;
  padding-right: 1.71569%;
}

.layout-standard-subpage ._image img {
  display: block;
  width: 100%;
}

@media (min-width: 994px) {
  .layout-standard-subpage .column-1,
  .layout-standard-subpage .column-2 {
    clear: none;
  }

  .layout-standard-subpage .column-1 {
    width: 33.33333%;
    float: left;
    padding-left: 1.71569%;
    padding-right: 1.71569%;
  }

  .layout-standard-subpage .column-2 {
    width: 66.66667%;
    float: left;
    padding-left: 1.71569%;
    padding-right: 1.71569%;
  }

  .layout-standard-subpage ._image {
    margin-left: -5.66667%;
  }
}

/**
 * Borrowed from Foundation
 */

.page-headline {
  clear: both;
  width: 100%;
  float: left;
  padding-left: 1.71569%;
  padding-right: 1.71569%;
  float: none;
  margin: 24px 0;
}

.page-headline ._page-headline-inner {
  background-color: #fff;
}

.page-headline ._page-headline-inner::after {
  clear: both;
  content: "";
  display: table;
}

.layout-box-grid .page-headline {
  margin-bottom: 7px;
}

.page-headline ._page-head {
  float: left;
}

.page-headline.-subhead {
  padding-left: 0;
  padding-right: 0;
}

._page-head,
._page-subhead {
  margin: 0;
  padding: 12px;
  color: #e2231a;
  text-transform: uppercase;
}

._page-head {
  font-size: 1.75rem;
  color: #e2231a;
}

._page-subhead {
  font-size: 1.5rem;
  color: #231f20;
}

.page-subheadline {
  clear: both;
  width: 100%;
  float: left;
  padding-left: 1.71569%;
  padding-right: 1.71569%;
  float: none;
  margin: 24px 0;
}

.page-subheadline ._page-subheadline-inner {
  background-color: #bcbec0;
}

.page-subheadline ._page-subheadline-inner ._count {
  color: #e2231a;
}

.page-subheadline ._page-subheadline-inner ._search-all {
  font-size: 0.85rem;
  font-style: italic;
  text-transform: none;
  margin-left: 10px;
}

.layout-box-grid .page-subheadline {
  margin-bottom: 7px;
}

.standard-text {
  font-size: 1.3em;
  line-height: 1.7em;
}

.standard-text ._page-head {
  padding-left: 0;
}

.standard-text p {
  margin: 1rem 0;
}

.no-touchevents .standard-text a:hover {
  color: #e2231a;
}

.standard-text iframe {
  width: 100% !important;
}

.standard-text .shortcode-youtube,
.standard-text .shortcode-vimeo {
  position: relative;
  padding-top: 0;
  padding-bottom: 56.25%;
  height: 0;
  margin-bottom: 1rem;
  overflow: hidden;
}

.standard-text .shortcode-youtube.widescreen,
.standard-text .shortcode-vimeo.widescreen {
  padding-bottom: 56.34%;
}

.standard-text .shortcode-youtube.vimeo,
.standard-text .shortcode-vimeo.vimeo {
  padding-top: 0;
}

.standard-text .shortcode-youtube iframe,
.standard-text .shortcode-youtube object,
.standard-text .shortcode-youtube embed,
.standard-text .shortcode-youtube video,
.standard-text .shortcode-vimeo iframe,
.standard-text .shortcode-vimeo object,
.standard-text .shortcode-vimeo embed,
.standard-text .shortcode-vimeo video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

@media (min-width: 994px) {
  .standard-text {
    font-size: 1.15em;
  }
}

.showing-head,
.empty-head {
  clear: both;
  width: 100%;
  float: left;
  padding-left: 1.71569%;
  padding-right: 1.71569%;
  float: none;
  font-size: 1.5rem;
  margin: 0 0 24px;
}

.page-headline + .showing-head,
.page-headline +
  .empty-head {
  margin-top: 24px;
}

.empty-head,
.empty-head a {
  color: #e2231a;
}

.messages ul {
  clear: both;
  width: 100%;
  float: left;
  padding-left: 1.71569%;
  padding-right: 1.71569%;
  float: none;
}

.messages li {
  background-color: #e2231a;
  color: #fff;
  font-size: 1.5rem;
  margin: 24px auto;
  padding: 12px;
}

.icon,
.mobile-top-ui .hamburger {
  display: inline-block;
  overflow: hidden;
  background-position: 50% 50%;
  background-repeat: no-repeat;
  overflow: hidden;
  text-indent: 101%;
  white-space: nowrap;
}

.icon.-loading,
.mobile-top-ui .-loading.hamburger {
  background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMiAzMiIgd2lkdGg9IjMyIiBoZWlnaHQ9IjMyIj48cGF0aCBvcGFjaXR5PSIuMjUiIGQ9Ik0xNiAwYTE2IDE2IDAgMCAwIDAgMzIgMTYgMTYgMCAwIDAgMC0zMm0wIDRhMTIgMTIgMCAwIDEgMCAyNCAxMiAxMiAwIDAgMSAwLTI0Ii8+PHBhdGggZD0iTTE2IDBhMTYgMTYgMCAwIDEgMTYgMTZoLTRBMTIgMTIgMCAwIDAgMTYgNHoiPjxhbmltYXRlVHJhbnNmb3JtIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0icm90YXRlIiBmcm9tPSIwIDE2IDE2IiB0bz0iMzYwIDE2IDE2IiBkdXI9IjAuOHMiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIi8+PC9wYXRoPjwvc3ZnPg==) no-repeat;
  background-size: 18px 18px;
  height: 18px;
  width: 18px;
}

.icon.-info,
.mobile-top-ui .-info.hamburger {
  background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ijk4MC43NSAxNjg1LjQxNSAxNDQuMjg0IDE0My4xOTkiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgOTgwLjc1IDE2ODUuNDE1IDE0NC4yODQgMTQzLjE5OSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTExMjUuMDM0IDE4MjguNjE0aC0xNDMuMnYtMTQzLjJoMTQzLjJ2MTQzLjJ6bS0xMzQuNjkyLTguNTA3aDEyNi4xODV2LTEyNi4xODVIOTkwLjM0MnYxMjYuMTg1ek0xMDQzLjU1NSAxNzIyLjkxOGMwLTUuNjMgNC41MjYtOS44MjUgMTAuMTU0LTkuODI1IDUuNDA1IDAgOS42MDMgNC43NDggOS42MDMgMTAuMDQ3cy00LjUyNiA5LjgyNS05Ljk0IDkuODI1Yy01LjQwNSAwLTkuODE4LTQuNTI3LTkuODE4LTEwLjA0N3ptMTcuNjYzIDIyLjI3djU1Ljc1aC0xNS41Njd2LTU1Ljc1aDE1LjU2OHoiLz48L3N2Zz4=) no-repeat;
  background-size: 36px 36px;
  height: 36px;
  width: 36px;
}

.icon.-zoom,
.mobile-top-ui .-zoom.hamburger {
  background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNTIuNiAxNTIuOCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMTUyLjYgMTUyLjgiPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik01NC44IDEwOS42Yy0xNC42IDAtMjguNC01LjctMzguOC0xNi4xLTIxLjMtMjEuMy0yMS4zLTU2LjEgMC03Ny40QzI2LjQgNS43IDQwLjEgMCA1NC44IDBzMjguNCA1LjcgMzguOCAxNi4xYzEwLjQgMTAuNCAxNi4xIDI0LjEgMTYuMSAzOC44UzEwNCA4My4zIDkzLjYgOTMuN2MtMTAuNCAxMC4yLTI0LjIgMTUuOS0zOC44IDE1Ljl6bTAtMTAxLjFjLTEyLjQgMC0yNCA0LjgtMzIuNyAxMy42QzQgNDAuMSA0IDY5LjUgMjIgODcuNmM4LjcgOC44IDIwLjQgMTMuNiAzMi43IDEzLjZzMjQtNC44IDMyLjctMTMuNmM4LjctOC43IDEzLjYtMjAuNCAxMy42LTMyLjdzLTQuOC0yNC0xMy42LTMyLjdDNzguOCAxMy4zIDY3LjIgOC41IDU0LjggOC41ek0xNTAuNCAxMzUuNWMyLjkgMi45IDIuOSA3LjYgMCAxMC42bC00LjYgNC42Yy0yLjkgMi45LTcuNiAyLjktMTAuNiAwbC00OC41LTQ4LjVjLTIuOS0yLjktMi45LTcuNiAwLTEwLjZsNC42LTQuNmMyLjktMi45IDcuNi0yLjkgMTAuNiAwbDQ4LjUgNDguNXpNNTAuNSAzMS40SDU5djQ2LjloLTguNXpNMzEuMyA1MC42aDQ2Ljl2OC41SDMxLjN6Ii8+PC9zdmc+) no-repeat;
  background-size: 36px 36px;
  height: 36px;
  width: 36px;
}

.icon.-grid,
.mobile-top-ui .-grid.hamburger,
.icon.-list,
.mobile-top-ui .-list.hamburger {
  height: 13px;
  width: 13px;
}

.icon.-grid,
.mobile-top-ui .-grid.hamburger {
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjIyMTkgMTcxOCA3OSA3OSIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAyMjE5IDE3MTggNzkgNzkiPjxnIGZpbGw9IiM2RDZFNzEiPjxwYXRoIGQ9Ik0yMjE5IDE3MThoMzZ2MzZoLTM2ek0yMjE5IDE3NjFoMzZ2MzZoLTM2ek0yMjYxIDE3NjFoMzd2MzZoLTM3ek0yMjYxIDE3MThoMzd2MzZoLTM3eiIvPjwvZz48L3N2Zz4=);
}

a:hover .icon.-grid,
a:hover .mobile-top-ui .-grid.hamburger,
.mobile-top-ui a:hover .-grid.hamburger,
.on .icon.-grid,
.on .mobile-top-ui .-grid.hamburger,
.mobile-top-ui .on .-grid.hamburger {
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjIyMTkgMTgzMi42OTEgNzkgNzkiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMjIxOSAxODMyLjY5MSA3OSA3OSI+PGcgZmlsbD0iI0ZGNjY0OCI+PHBhdGggZD0iTTIyMTkgMTgzMi42OWgzNnYzNmgtMzZ6TTIyMTkgMTg3NS42OWgzNnYzNmgtMzZ6TTIyNjEgMTg3NS42OWgzN3YzNmgtMzd6TTIyNjEgMTgzMi42OWgzN3YzNmgtMzd6Ii8+PC9nPjwvc3ZnPg==);
}

.icon.-list,
.mobile-top-ui .-list.hamburger {
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjIzMjIgMTcxOCA3OSA3OSIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAyMzIyIDE3MTggNzkgNzkiPjxwYXRoIGZpbGw9IiM2RDZFNzEiIGQ9Ik0yMzIyIDE3MThoNzl2NmgtNzl6TTIzMjIgMTczNmg3OXY2aC03OXpNMjMyMiAxNzczaDc5djZoLTc5ek0yMzIyIDE3NTRoNzl2N2gtNzl6TTIzMjIgMTc5MWg3OXY2aC03OXoiLz48L3N2Zz4=);
}

a:hover .icon.-list,
a:hover .mobile-top-ui .-list.hamburger,
.mobile-top-ui a:hover .-list.hamburger,
.on .icon.-list,
.on .mobile-top-ui .-list.hamburger,
.mobile-top-ui .on .-list.hamburger {
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjIzMjIgMTgzMi42OTEgNzkgNzkiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMjMyMiAxODMyLjY5MSA3OSA3OSI+PHBhdGggZmlsbD0iI0ZGNjY0OCIgZD0iTTIzMjIgMTgzM2g3OXY2aC03OXpNMjMyMiAxODUxaDc5djZoLTc5ek0yMzIyIDE4ODhoNzl2NmgtNzl6TTIzMjIgMTg2OWg3OXY3aC03OXpNMjMyMiAxOTA2aDc5djZoLTc5eiIvPjwvc3ZnPg==);
}

.icon.-pull-down,
.mobile-top-ui .-pull-down.hamburger,
.icon.-pull-up,
.mobile-top-ui .-pull-up.hamburger {
  height: 9px;
  width: 9px;
}

.icon.-pull-down,
.mobile-top-ui .-pull-down.hamburger,
a:hover .icon.-pull-down.-light,
a:hover .mobile-top-ui .-pull-down.-light.hamburger,
.mobile-top-ui a:hover .-pull-down.-light.hamburger {
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjIwNjkuMTIxIDE3MjkuMzA5IDk4LjMwNiA1NS40NzEiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMjA2OS4xMjEgMTcyOS4zMDkgOTguMzA2IDU1LjQ3MSI+PHBhdGggZD0iTTIxMTguMzIgMTc4NC43OGMtMS41MzcgMC0zLjA3NC0uNTgtNC4yNi0xLjc2NWwtNDQuOTQtNDQuOTQgOC43NjctOC43NjcgNDAuMzkgNDAuMzkgNDAuMzgyLTQwLjM5IDguNzY2IDguNzY3LTQzLjkzIDQzLjkxOGMtLjIzNi4zNS0uNTA0LjY5LS44MjQgMS0xLjIyNiAxLjE4OC0yLjc5NCAxLjc4Ni00LjM1MiAxLjc4NnoiLz48L3N2Zz4=);
}

.icon.-pull-down.-light,
.mobile-top-ui .-pull-down.-light.hamburger,
a:hover .icon.-pull-down,
a:hover .mobile-top-ui .-pull-down.hamburger,
.mobile-top-ui a:hover .-pull-down.hamburger {
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA5OSA1NiIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgOTkgNTYiPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik00OS41IDU1LjhjLTEuNSAwLTMuMS0uNi00LjMtMS44TDAgOC44IDguOCAwbDQwLjcgNDAuN0w5MC4yIDAgOTkgOC44IDU0LjggNTNjLS4yLjQtLjUuNy0uOCAxLTEuMyAxLjItMi45IDEuOC00LjUgMS44eiIvPjwvc3ZnPg==);
}

.icon.-pull-up,
.mobile-top-ui .-pull-up.hamburger,
a:hover .icon.-pull-up.-light,
a:hover .mobile-top-ui .-pull-up.-light.hamburger,
.mobile-top-ui a:hover .-pull-up.-light.hamburger {
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzNiAyMCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMzYgMjAiPjxwYXRoIGQ9Ik0xOS42LjZjLjEuMS4yLjIuMy40bDE1LjggMTUuOC0zLjEgMy4yTDE4IDUuNCAzLjQgMjAgLjIgMTYuOCAxNi41LjZjLjQtLjQgMS0uNiAxLjUtLjYuNiAwIDEuMS4yIDEuNi42eiIvPjwvc3ZnPg==);
}

.icon.-pull-up.-light,
.mobile-top-ui .-pull-up.-light.hamburger,
a:hover .icon.-pull-up,
a:hover .mobile-top-ui .-pull-up.hamburger,
.mobile-top-ui a:hover .-pull-up.hamburger {
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzNiAyMCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMzYgMjAiPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik0xOS42LjZjLjEuMS4yLjIuMy40bDE1LjggMTUuOC0zLjEgMy4yTDE4IDUuNCAzLjQgMjAgLjIgMTYuOCAxNi41LjZjLjQtLjQgMS0uNiAxLjUtLjYuNiAwIDEuMS4yIDEuNi42eiIvPjwvc3ZnPg==);
}

.icon.-arrow-left,
.mobile-top-ui .-arrow-left.hamburger {
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2IDEwIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA2IDEwIj48cGF0aCBmaWxsPSIjNkQ2RTcxIiBkPSJNNC44IDkuNmwuOC0uOEwxLjggNWwzLjgtMy44LS44LS45TC43IDQuNGwtLjEuMWMtLjIuMi0uMi42IDAgLjhsNC4yIDQuM3oiLz48L3N2Zz4=);
  height: 10px;
  width: 6px;
}

a:hover .icon.-arrow-left,
a:hover .mobile-top-ui .-arrow-left.hamburger,
.mobile-top-ui a:hover .-arrow-left.hamburger {
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2IDEwIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA2IDEwIj48cGF0aCBmaWxsPSIjRTIyMzFBIiBkPSJNNC44IDkuNmwuOC0uOEwxLjggNWwzLjgtMy44LS44LS45TC43IDQuNGwtLjEuMWMtLjIuMi0uMi42IDAgLjhsNC4yIDQuM3oiLz48L3N2Zz4=);
}

.icon.-arrow-left.-white,
.mobile-top-ui .-arrow-left.-white.hamburger,
a:hover .icon.-arrow-left.-white,
a:hover .mobile-top-ui .-arrow-left.-white.hamburger,
.mobile-top-ui a:hover .-arrow-left.-white.hamburger {
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2IDEwIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA2IDEwIj48cGF0aCBmaWxsPSIjZmZmIiBkPSJNNC44IDkuNmwuOC0uOEwxLjggNWwzLjgtMy44LS44LS45TC43IDQuNGwtLjEuMWMtLjIuMi0uMi42IDAgLjhsNC4yIDQuM3oiLz48L3N2Zz4=);
}

.icon.-arrow-right,
.mobile-top-ui .-arrow-right.hamburger {
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2IDEwIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA2IDEwIj48cGF0aCBmaWxsPSIjNkQ2RTcxIiBkPSJNMS4yIDkuNmwtLjgtLjhMNC4yIDUgLjQgMS4xbC44LS44IDQuMSA0LjEuMS4xYy4yLjIuMi42IDAgLjhMMS4yIDkuNnoiLz48L3N2Zz4=);
  height: 10px;
  width: 6px;
}

a:hover .icon.-arrow-right,
a:hover .mobile-top-ui .-arrow-right.hamburger,
.mobile-top-ui a:hover .-arrow-right.hamburger {
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2IDEwIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA2IDEwIj48cGF0aCBmaWxsPSIjRTIyMzFBIiBkPSJNMS4yIDkuNmwtLjgtLjhMNC4yIDUgLjQgMS4xbC44LS44IDQuMSA0LjEuMS4xYy4yLjIuMi42IDAgLjhMMS4yIDkuNnoiLz48L3N2Zz4=);
}

.icon.-arrow-right.-white,
.mobile-top-ui .-arrow-right.-white.hamburger,
a:hover .icon.-arrow-right.-white,
a:hover .mobile-top-ui .-arrow-right.-white.hamburger,
.mobile-top-ui a:hover .-arrow-right.-white.hamburger {
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2IDEwIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA2IDEwIj48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMS4yIDkuNmwtLjgtLjhMNC4yIDUgLjQgMS4xbC44LS44IDQuMSA0LjEuMS4xYy4yLjIuMi42IDAgLjhMMS4yIDkuNnoiLz48L3N2Zz4=);
}

.icon.-delete,
.mobile-top-ui .-delete.hamburger {
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MCA2MCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgNjAgNjAiPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik0zNC4zIDMwLjFsLS4xLS4xTDYwIDQuMiA1NS44IDAgMzAgMjUuOCA0LjIgMCAwIDQuMiAyNS44IDMwbC0uMS4xLjEuMUwwIDU1LjggNC4yIDYwIDMwIDM0LjQgNTUuOCA2MGw0LjItNC4yLTI1LjgtMjUuNnoiLz48L3N2Zz4=);
  background-size: 16px 16px;
  height: 16px;
  width: 16px;
}

.icon.-delete.-red,
.mobile-top-ui .-delete.-red.hamburger {
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MCA2MCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgNjAgNjAiPjxwYXRoIGZpbGw9IiNFMjIzMUEiIGQ9Ik0zNC4zIDMwLjFsLS4xLS4xTDYwIDQuMiA1NS44IDAgMzAgMjUuOCA0LjIgMCAwIDQuMiAyNS44IDMwbC0uMS4xLjEuMUwwIDU1LjggNC4yIDYwIDMwIDM0LjQgNTUuOCA2MGw0LjItNC4yLTI1LjgtMjUuNnoiLz48L3N2Zz4=);
}

.icon.-delete.-grey,
.mobile-top-ui .-delete.-grey.hamburger {
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MCA2MCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgNjAgNjAiPjxwYXRoIGZpbGw9IiMyMzFGMjAiIGQ9Ik0zNC4zIDMwLjFsLS4xLS4xTDYwIDQuMiA1NS44IDAgMzAgMjUuOCA0LjIgMCAwIDQuMiAyNS44IDMwbC0uMS4xLjEuMUwwIDU1LjggNC4yIDYwIDMwIDM0LjQgNTUuOCA2MGw0LjItNC4yLTI1LjgtMjUuNnoiLz48L3N2Zz4=);
}

.icon.-download,
.mobile-top-ui .-download.hamburger {
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MCA2MCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgNjAgNjAiPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik01NCAyOC4xTDMyLjggNDkuM1YwaC01LjZ2NDkuNEw2IDI4LjEgMi4xIDMybDI3LjggMjggMjgtMjh6Ii8+PC9zdmc+);
  background-size: 16px 16px;
  height: 16px;
  width: 16px;
}

.icon.-facebook.-dark,
.mobile-top-ui .-facebook.-dark.hamburger,
.icon.-twitter.-dark,
.mobile-top-ui .-twitter.-dark.hamburger,
.icon.-instagram.-dark,
.mobile-top-ui .-instagram.-dark.hamburger,
.icon.-tumblr.-dark,
.mobile-top-ui .-tumblr.-dark.hamburger {
  background-size: 18px 18px;
  height: 18px;
  width: 18px;
}

.icon.-facebook,
.mobile-top-ui .-facebook.hamburger {
  background-size: 16px 16px;
}

.icon.-facebook.-dark,
.mobile-top-ui .-facebook.-dark.hamburger {
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMTggMTgiPjxwYXRoIGZpbGw9IiMyMzFGMjAiIGQ9Ik02LjkgNi4yVjQuNUM2LjkgMiA4LjggMCAxMS4xIDBoMi44djMuNGgtMi44Yy0uMyAwLS43LjUtLjcgMS4xdjEuOGgzLjR2My40aC0zLjRWMThINi45VjkuNkg0LjJWNi4yaDIuN3oiLz48L3N2Zz4=);
}

.icon.-twitter.-dark,
.mobile-top-ui .-twitter.-dark.hamburger {
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMTggMTgiPjxwYXRoIGZpbGw9IiMyMzFGMjAiIGQ9Ik0xOCAzLjRjLS43LjMtMS40LjUtMi4xLjYuOC0uNSAxLjMtMS4yIDEuNi0yLS43LjQtMS41LjctMi4zLjktLjctLjctMS42LTEuMi0yLjctMS4yLTIgMC0zLjcgMS43LTMuNyAzLjcgMCAuMyAwIC42LjEuOC0zLjEtLjEtNS44LTEuNi03LjYtMy44LS40LjUtLjUgMS4xLS41IDEuOCAwIDEuMy43IDIuNCAxLjYgMy4xLS42IDAtMS4yLS4yLTEuNy0uNSAwIDEuOCAxLjMgMy4zIDMgMy42LS4zLjEtLjYuMS0xIC4xLS4yIDAtLjUgMC0uNy0uMS41IDEuNSAxLjggMi41IDMuNSAyLjYtMS4zIDEtMi45IDEuNi00LjYgMS42LS4zIDAtLjYgMC0uOS0uMSAxLjYgMSAzLjYgMS43IDUuNyAxLjcgNi44IDAgMTAuNS01LjYgMTAuNS0xMC41di0uNWMuNy0uNCAxLjMtMSAxLjgtMS44Ii8+PC9zdmc+);
}

.icon.-instagram.-dark,
.mobile-top-ui .-instagram.-dark.hamburger {
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ijg3NC40OTEgMTIyMi40ODcgMjAwIDIwMCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyA4NzQuNDkxIDEyMjIuNDg3IDIwMCAyMDAiPjxwYXRoIGZpbGw9IiMyMzFGMjAiIGQ9Ik0xMDUxLjQyMyAxMzA3LjA5MmgtMTcuNDA0YzEuMjc0IDQuOTI0IDIuMDE1IDEwLjA2NyAyLjAxNSAxNS4zODggMCAzMy45OTgtMjcuNTQgNjEuNTM3LTYxLjUzNyA2MS41MzctMzMuOTcgMC02MS41MzctMjcuNTQtNjEuNTM3LTYxLjUzNyAwLTUuMzIuNzQyLTEwLjQ2NCAyLjAzLTE1LjM4OGgtMTcuNDE3djg0LjYyYzAgNC4yMzcgMy40MyA3LjY4IDcuNzA4IDcuNjhoMTM4LjQ2NGM0LjIzOCAwIDcuNjgtMy40NDMgNy42OC03LjY4di04NC42MnptMC01My44NDNjMC00LjI0LTMuNDQyLTcuNjgtNy42OC03LjY4aC0yMy4wODJjLTQuMjUgMC03LjY5MyAzLjQ0LTcuNjkzIDcuNjh2MjMuMDk0YzAgNC4yMzggMy40NDIgNy42OCA3LjY5NCA3LjY4aDIzLjA4M2M0LjIzOCAwIDcuNjgtMy40NDIgNy42OC03LjY4di0yMy4wOTV6bS03Ni45MjUgMzAuNzc0Yy0yMS4yNDQgMC0zOC40NyAxNy4yMTItMzguNDcgMzguNDcgMCAyMS4yMyAxNy4yMTMgMzguNDY4IDM4LjQ3IDM4LjQ2OCAyMS4yNTggMCAzOC40Ny0xNy4yMjYgMzguNDctMzguNDctLjAxNC0yMS4yNTYtMTcuMjI2LTM4LjQ2OC0zOC40Ny0zOC40NjhtNzYuOTI1IDEzOC40NjNIODk3LjU2Yy0xMi43MjggMC0yMy4wNy0xMC4zNC0yMy4wNy0yMy4wODJWMTI0NS41N2MwLTEyLjc0MiAxMC4zNDItMjMuMDgzIDIzLjA3LTIzLjA4M2gxNTMuODVjMTIuNzU0IDAgMjMuMDggMTAuMzQgMjMuMDggMjMuMDgydjE1My44MzZjLjAxNSAxMi43NC0xMC4zMTIgMjMuMDgtMjMuMDY3IDIzLjA4Ii8+PC9zdmc+);
}

.icon.-tumblr.-dark,
.mobile-top-ui .-tumblr.-dark.hamburger {
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjEzOTguNTExIDEyMjIuNDk1IDEzOCAxOTkuOTgzIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDEzOTguNTExIDEyMjIuNDk1IDEzOCAxOTkuOTgzIj48cGF0aCBmaWxsPSIjMjMxRjIwIiBkPSJNMTQzMi4xNCAxMjY1LjA0YzUuNTc2LTQuMzcgOS45NS0xMC4zMzUgMTMuNTItMTcuNDg4IDMuNTgyLTYuMzY1IDUuNTc0LTE0LjcyIDcuMTY2LTI1LjA1N2gyNy44Mzh2NDYuMTNoNDYuNTN2MzUuNzkyaC00Ni41NDN2NTEuMjljMCAxMS41MjYgMCAxNy44OSAxLjU5MiAyMS40NzMgMS4xOSAyLjc4IDQuMzcyIDYuMzY0IDcuOTU2IDguNzQ1IDMuOTcgMi43OCA5LjE0NiAzLjU3IDE0LjcwOCAzLjU3IDEwLjMzNiAwIDIwLjI4My0yLjc4IDMwLjIxOC05LjU0N3YzMS44MWMtOC43NDUgMy41ODItMTYuMyA2LjM2My0yMy4wNjQgOC4zNDMtNy4xNTQgMS41OTItMTQuNzA4IDIuMzgtMjIuNjYzIDIuMzgtOS41NDcgMC0xNC4zMi0xLjU5LTIxLjQ3My0zLjU3LTcuMTU0LTIuMzgtMTMuMTE3LTUuOTYyLTE3Ljg5LTEwLjMzNS01LjE3NC0zLjk3LTguNzQ1LTguMzQ0LTkuOTQ4LTEzLjUxOC0yLjM4LTQuMzcyLTMuMTgyLTExLjUyNi0zLjE4Mi0yMC42N3YtNjkuOTg0aC0yNy4wMjN2LTI4LjIyNmM3Ljk1NC0yLjc4IDE2LjI5OC02LjM2MyAyMi4yNi0xMS4xMzZ6Ii8+PC9zdmc+);
}

.standard-form {
  border-top: 1px solid #e2e2e2;
  padding-top: 1rem;
  width: 100%;
}

.standard-form::after {
  clear: both;
  content: "";
  display: table;
}

.standard-form input,
.standard-form textarea,
.standard-form label {
  display: block;
  font-size: 1.15rem;
}

.standard-form input,
.standard-form textarea {
  border-radius: 0;
  padding: 0.5rem 0.75rem;
  -webkit-appearance: none;
}

.standard-form input[type="text"],
.standard-form input[type="email"],
.standard-form input[type="url"],
.standard-form textarea {
  box-sizing: border-box;
  background-color: #e2e2e2;
  border: 2px solid #e2e2e2;
  line-height: 1.5em;
  width: 100%;
}

.standard-form select {
  background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxOC4xLjEsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCA3MCA3MCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgNzAgNzAiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHBhdGggZmlsbD0iIzZENkU3MSIgZD0iTTY3LjYsMjIuNkw2MiwxN0wzNS4zLDQzLjZMOC43LDE3bC02LjMsNS42bDI4LjcsMjguN2wwLjcsMC43YzEuNCwxLjQsNC4yLDEuNCw1LjYsMA0KCUMzNy41LDUyLDY3LjYsMjIuNiw2Ny42LDIyLjZ6Ii8+DQo8L3N2Zz4NCg==) 98% 50% no-repeat;
  background-size: 12px;
  font-size: 1.15rem;
  margin-top: -1px;
  padding: 0.75rem;
  width: 100%;
  -webkit-appearance: none;
}

.standard-form .-error input[type="text"],
.standard-form .-error input[type="email"],
.standard-form .-error input[type="url"],
.standard-form .-error textarea {
  border-color: #e2231a;
}

.standard-form label {
  text-transform: uppercase;
  margin-bottom: 5px;
}

.standard-form ._form-input + ._form-input {
  margin-top: 20px;
}

.standard-form textarea {
  min-height: 200px;
  max-width: 100%;
}

.standard-form input[type="submit"] {
  cursor: pointer;
  text-transform: uppercase;
  color: #fff;
  background-color: #ff6648;
  float: right;
  border: 0;
}

.standard-form ._form-message {
  color: #e2231a;
  font-size: 1.5rem;
  margin-bottom: 1.5rem;
  text-transform: uppercase;
}

.top-fixed {
  padding-top: 56px;
}

@media (min-width: 994px) {
  .top-fixed {
    padding-top: 64px;
  }
}

.header ._header-wrapper {
  background: #fff;
  border-bottom: 4px solid #e2231a;
  height: 56px;
  position: relative;
  z-index: 100;
}

@media (min-width: 994px) {
  .header ._header-wrapper {
    height: 64px;
  }
}

.top-fixed .header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 10000;
}

.header ._logo {
  width: 25%;
  float: left;
  padding-left: 1.71569%;
  padding-right: 1.71569%;
  margin: 0;
  margin-top: 12.92px;
}

@media (min-width: 994px) {
  .header ._logo {
    margin-top: 14.6px;
  }
}

.header ._logo span {
  overflow: hidden;
  text-indent: 101%;
  white-space: nowrap;
  display: block;
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxODUuNjg1IiBoZWlnaHQ9IjUzLjE0NSIgdmlld0JveD0iMCAwIDE4NS42ODUgNTMuMTQ1Ij48cGF0aCBmaWxsPSIjRTEyODI2IiBkPSJNMzcuNjI4IDQ0Ljc2NUwxOS44MzMgMzcuMzdsNC43Mi00LjYxM3YtOS40MDVsNS42NTYuMDIyLTIuMTYgOS4zMDRzLTEuMTc4IDUuNjkzIDIuNzEgNS43MTVjMy45MTYgMCAyLjU0My01LjczMyAyLjU0My01LjczM2wtMi40NDgtOS4yODVoNS44ODZsMS4xMSA5LjE5MiAxLjc0OC0xLjc5VjE0Ljg5M2gtMy44OGwuMjA1IDEuNzNoLTQuMjdMNDQuNjkzIDMuMjZsLTEuNjEtMS45MDMtMy42ODYgMy42ODgtNy4zODYtNC4wMDgtNy40MzIgNS41ODJMMjkuMTkzIDkuOGw1LjQ4My4wMDgtMTAuMTI0IDEwLjE4LjAyNi0xMy4zN0wxNS4wMjggMCAxLjIzNSA1LjAzN2wuMzM1LjgwNiAxNC4xNjcuMDF2NC44NDJMMCAyMy4xbC4zNTQuNzUgOC42OC4wMS0uMDA2IDcuNTMtNS42OTcgNy44NzYgMzMuMDIgMTMuODggNy40NjMtMTAuNzcyLTIuODA2LTEuODQtMy4zOCA0LjIzek0xNC4wODggMjAuMDJINy42NzVsOC4wNi02LjQyNS0uMDMyIDIyLjA2Mi0zLjQzMi0xLjQzIDEuODE1LTIuNzA0VjIwLjAyek01My4yMjIgMTcuNDQ4VjE1LjAxaC04LjIwN2wtNC4wOSAyLjY1OCAxLjcwNyAyLjQ5MiAzLjA1Ny0xLjk0My0uMDA3IDMxLjE0NSA3LjUxNCAzLjY2NC4wMTYtMTQuODE3IDYuMjMgMy4yMjggNy41MjUuMDAzLjAyNS0yNi40MmgtNy40OGwtNi4yOSAyLjQyOHptMCAxNC42ODhWMjAuNjE4bDYuMjQzLTIuMjItLjAxMyAxNy4xNS02LjIzLTMuNDEyek0xNzcuODM1IDM3LjQ3NmwuMDIzLTIyLjM3aC03LjUzOGwtNi4yNDIgMy4yMDYuMDItMTEuNDkzLTcuNTItNC43NDYtLjA0MyAzMy44MzQtNC45NTQtMy4xNS4wNC0xNy42N2gtNy40OThsLTYuMjgzIDIuNDM4VjE1LjA5aC04LjI0bC00LjA2NCAyLjY2IDEuNzIyIDIuNDc0IDMuMDUtMS45MzMtLjAwOCAxNC4wMjYtNi4wMzMgMy4yODcuMDE1LTIwLjUzLTcuNTM0LS4wMDZ2Mi40M2wtNi4yOTUtMi40My03LjQ3My0uMDA2LS4wMDQgMTYuMDItOC4yNDcgNC41LjAxOC0xOS4yNzYgNC43NjIuMDEyIDIuMTY2LTMuNDYzaC02LjkyOHYtNi41Nkw4Mi40NSAxNS4zOTJsMS43MDcgMi40ODggMy4wNjQtMS45Ni0uMDE4IDE1LjQ5LTcuNjE4IDQuMTYuMDIzLTIwLjUyNy04LjI0LS4wMTYtNC4wNSAyLjY2NUw2OSAyMC4xNzZsMy4wNi0xLjk0LS4wMjIgMjMuMjE3aDcuNTQ1TDg3LjIgMzcuNTN2My45MjdoNy41MjhsOC4yNC00LjI5OHY0LjMxbDcuNTI3LjAwOCA2LjI0LTMuMjIyLS4wMiAzLjIyMmg3LjU1bDYuMDE2LTMuMDg2LS4wMSAxMS4wMyA3LjUzMiAzLjY1Ni4wMTctMTQuOCA2LjIyNyAzLjIxNyA3LjUzMy4wMDV2LTIuNzI4bDQuMjQ3IDIuNzRoOC4yMjZsLjAyNC0xNy4xMiA2LjI0Mi0zLjQyLjAyMyAyMC41NDggNy40OS4wMSA3Ljg1LTQuMDM2LTcuODQ4LS4wMTh6bS02Ny4zNC0xLjg3NmwuMDA4LTE3LjE0OCA2LjIzMiAyLjIydjExLjUyMmwtNi4yNCAzLjQwNnptMjcuMzMyLTMuMzk0bC4wMTItMTEuNTEgNi4yMjgtMi4yMDgtLjAwNiAxNy4xNDYtNi4yMzUtMy40Mjh6TTc1LjQ4NCAxMi4xMDhjMi44NjggMCA1LjE5Ny0yLjMyNCA1LjE3Mi01LjE3OC4wMjUtMi44Ni0yLjMtNS4xNy01LjE0OC01LjE3LTIuODQyLS4wMS01LjE3NyAyLjMxLTUuMTc3IDUuMTU2IDAgMi44NSAyLjMxMiA1LjE3NSA1LjE1NCA1LjE5MiIvPjwvc3ZnPg==);
  background-repeat: no-repeat;
  background-size: 105.56px 30.16px;
  background-position: 50% 50%;
  height: 30.16px;
  text-decoration: none;
  text-indent: 200%;
  width: 105.56px;
}

@media (min-width: 994px) {
  .header ._logo span {
    width: 121.8px;
    height: 34.8px;
    background-size: 121.8px 34.8px;
  }
}

.nav.-mobile {
  background-color: rgba(35, 31, 32, 0.95);
  display: none;
  position: fixed;
  top: 56px;
  width: 100%;
  z-index: 99;
}

.nav-open .nav.-mobile {
  display: block;
}

.nav.-mobile a {
  display: block;
  text-transform: uppercase;
  color: #fff;
  border-bottom: 1px solid #e2e2e2;
  padding: 8px 0;
  text-decoration: none;
  text-align: center;
  font-size: 1.15rem;
  line-height: 2.2rem;
}

.nav.-mobile a:last-child {
  border-bottom: 0;
}

@media (min-width: 994px) {
  .nav.-mobile {
    display: none;
  }
}

.nav.-desktop {
  width: 50%;
  float: left;
  display: none;
  font-size: 1.5rem;
  letter-spacing: 1px;
  text-align: center;
  white-space: nowrap;
}

@media (min-width: 994px) {
  .nav.-desktop {
    display: block;
  }
}

.nav.-desktop a {
  transition: color 150ms cubic-bezier(0.645, 0.045, 0.355, 1);
  color: #231f20;
  display: inline-block;
  height: 60px;
  line-height: 50px;
  padding-top: 10px;
  text-decoration: none;
  text-transform: uppercase;
}

.nav.-desktop a:hover {
  color: #e2231a;
}

.page-artists .nav.-desktop a.-artists,
.page-releases .nav.-desktop a.-releases,
.page-tours .nav.-desktop a.-tours,
.page-news .nav.-desktop a.-news {
  color: #e2231a;
  text-decoration: line-through;
}

.mobile-top-ui {
  width: 75%;
  float: left;
  padding-left: 1.71569%;
  padding-right: 1.71569%;
  height: 56px;
  padding-right: 0;
}

.mobile-top-ui::after {
  clear: both;
  content: "";
  display: table;
}

@media (min-width: 994px) {
  .mobile-top-ui {
    display: none;
  }
}

.mobile-top-ui .hamburger {
  background-size: 16px 16px;
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjIwOTEuMDYyIDE5OTMuOCAxMjIuMjE4IDEwNi40ODgiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMjA5MS4wNjIgMTk5My44IDEyMi4yMTggMTA2LjQ4OCI+PHBhdGggZmlsbD0iI0ExQTFBMSIgZD0iTTIwOTEuMDYyIDE5OTMuOGgxMjIuMjE4djE5LjI5OGgtMTIyLjIxOHpNMjA5MS4wNjIgMjAzNy4zOTVoMTIyLjIxOHYxOS4yOThoLTEyMi4yMTh6TTIwOTEuMDYyIDIwODAuOTloMTIyLjIxOHYxOS4yOThoLTEyMi4yMTh6Ii8+PC9zdmc+);
  box-sizing: content-box;
  display: block;
  float: right;
  height: 16px;
  padding: 18px;
  width: 16px;
}

.nav-open .mobile-top-ui .hamburger {
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjE0MC45MTMgMCA5MTMuOTUxIDgwMCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAxNDAuOTEzIDAgOTEzLjk1MSA4MDAiPjxwYXRoIGZpbGw9IiNFMjIzMUEiIGQ9Ik0xNDAuOTEzIDBoOTE4LjE3M3YxNDQuOTc4SDE0MC45MTN6TTE0MC45MTMgMzI3LjUxaDkxOC4xNzN2MTQ0Ljk4SDE0MC45MTN6TTE0MC45MTMgNjU1LjAyMmg5MTguMTczdjE0NC45OEgxNDAuOTEzeiIvPjwvc3ZnPg==);
}

.drawer {
  transform: translateY(0);
  display: none;
  position: fixed;
  top: 64px;
  width: 100%;
  z-index: 60;
}

@media (min-width: 994px) {
  .drawer.-animate {
    display: block;
  }
}

.drawer.-animate {
  transition: transform 300ms cubic-bezier(0.645, 0.045, 0.355, 1);
}

._drawer-content {
  background: #333;
  letter-spacing: 0.15em;
  line-height: 1.5em;
  text-transform: uppercase;
  width: 100%;
  z-index: 75;
}

._drawer-content .container,
._drawer-content .layout-standard,
._drawer-content .layout-artists,
._drawer-content .layout-contact,
._drawer-content .layout-faq,
._drawer-content .layout-boxes,
._drawer-content .layout-box-grid,
._drawer-content .messages,
._drawer-content .header ._header-content,
.header ._drawer-content ._header-content,
._drawer-content .footer ._footer-content,
.footer ._drawer-content ._footer-content,
._drawer-content .subnav ._subnav-content,
.subnav ._drawer-content ._subnav-content,
._drawer-content .banner ._banner-content,
.banner ._drawer-content ._banner-content,
._drawer-content .layout-releases-list,
._drawer-content .layout-news,
._drawer-content .layout-search {
  position: relative;
  padding: 10px 0;
}

._drawer-content ._item {
  box-sizing: border-box;
  margin: 1.71569% 0;
  padding: 0 1.71569% 0 0;
}

._drawer-content a {
  transition: color 150ms cubic-bezier(0.645, 0.045, 0.355, 1);
  color: #bcbec0;
  display: block;
  text-decoration: none;
}

._drawer-content a.all-button {
  border-top: 1px solid #bcbec0;
  margin-top: 1.71569%;
  padding-top: 1.71569%;
}

._drawer-content a:hover {
  color: #fff;
}

._drawer-content .empty-head {
  color: #fff;
  font-size: 1.3rem;
  margin-top: 24px;
  text-align: center;
}

.-artist-submenu ._drawer-content ._col {
  width: 25%;
  float: left;
  padding-left: 1.71569%;
  padding-right: 1.71569%;
}

.drawer.-search ._drawer-content ._col {
  width: 20%;
  float: left;
  padding-left: 1.71569%;
  padding-right: 1.71569%;
  float: right;
}

.drawer.-search ._drawer-content ._col ._header {
  font-size: 1.4rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
  text-transform: uppercase;
  padding-bottom: 3px;
  color: #bcbec0;
}

.drawer.-search ._drawer-content ._item {
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
  padding-top: 3px;
  padding-bottom: 3px;
}

.drawer.-search .see-all {
  background-color: #e2231a;
  color: #fff;
  display: block;
  float: right;
  font-style: italic;
  margin-right: 1.71569%;
  padding: 8px 50px;
  text-align: center;
  text-decoration: underline;
}

.search {
  width: 25%;
  float: right;
  padding-left: 1.71569%;
  padding-right: 1.71569%;
  display: none;
  height: 20px;
  margin-top: 25px;
}

.search::after {
  clear: both;
  content: "";
  display: table;
}

@media (min-width: 994px) {
  .search {
    display: block;
  }
}

.search ._input,
.search input[type="submit"] {
  float: right;
}

.search ._input {
  transition: opacity 150ms cubic-bezier(0.645, 0.045, 0.355, 1);
  border: none;
  border-bottom: 1px solid #e2231a;
  color: #e2231a;
  font-size: 1rem;
  margin-right: 10px;
  width: 125px;
  opacity: 0;
  outline: none;
  text-transform: uppercase;
}

.search ._input.loading {
  background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMiAzMiIgd2lkdGg9IjMyIiBoZWlnaHQ9IjMyIj48cGF0aCBvcGFjaXR5PSIuMjUiIGQ9Ik0xNiAwYTE2IDE2IDAgMCAwIDAgMzIgMTYgMTYgMCAwIDAgMC0zMm0wIDRhMTIgMTIgMCAwIDEgMCAyNCAxMiAxMiAwIDAgMSAwLTI0Ii8+PHBhdGggZD0iTTE2IDBhMTYgMTYgMCAwIDEgMTYgMTZoLTRBMTIgMTIgMCAwIDAgMTYgNHoiPjxhbmltYXRlVHJhbnNmb3JtIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0icm90YXRlIiBmcm9tPSIwIDE2IDE2IiB0bz0iMzYwIDE2IDE2IiBkdXI9IjAuOHMiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIi8+PC9wYXRoPjwvc3ZnPg==) no-repeat;
  background-size: 12px 12px;
  background-position: 100% 50%;
}

.search input[type="submit"] {
  transition: transform 150ms cubic-bezier(0.645, 0.045, 0.355, 1);
  background: none;
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1OCA1OCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgNTggNTgiPjxwYXRoIGQ9Ik01MC41IDcuNEM0Ni40IDMuMyA0MC45IDEgMzUuMSAxUzIzLjggMy4zIDE5LjcgNy40Yy03LjYgNy42LTguNCAxOS40LTIuNSAyNy45TDEuOSA1MC42Yy0xLjEgMS4xLTEuMSAyLjggMCAzLjlsMS43IDEuN2MxLjEgMS4xIDIuOCAxLjEgMy45IDBsMTUuNC0xNS4zYzMuNiAyLjUgNy45IDMuOCAxMi4zIDMuOCA1LjggMCAxMS4zLTIuMyAxNS40LTYuNCA4LjQtOC42IDguNC0yMi40LS4xLTMwLjl6TTM1LjEgMzguM2MtNS41IDAtMTAuMy0yLjktMTMuMS03LjItLjEtLjItLjItLjQtLjQtLjZsLS4zLS42Yy0uOS0xLjgtMS41LTMuOC0xLjYtNS45VjIxLjhjMC0uNi4xLTEuMi4yLTEuN3YtLjJjMC0uMS4xLS4zLjEtLjRzMC0uMi4xLS4zYzAtLjEuMS0uMi4xLS4zIDAtLjEuMS0uMy4xLS40cy4xLS4yLjEtLjNjLjEtLjIuMS0uMy4yLS41IDAtLjEgMC0uMS4xLS4yLjEtLjIuMS0uNC4yLS42di0uMWMuOC0xLjggMS44LTMuNCAzLjMtNC45LjktLjkgMS44LTEuNiAyLjktMi4zaC4xYy4yLS4xLjMtLjIuNS0uMy4xIDAgLjEtLjEuMi0uMS4xLS4xLjMtLjEuNC0uMi4xIDAgLjItLjEuMy0uMS4xIDAgLjItLjEuMy0uMS4yLS4xLjMtLjEuNS0uMmguMWMxLjgtLjcgMy44LTEuMiA1LjktMS4yIDguNSAwIDE1LjUgNi45IDE1LjUgMTUuNS0uNCA4LjQtNy4zIDE1LjQtMTUuOCAxNS40eiIvPjwvc3ZnPg==);
  background-repeat: no-repeat;
  border: none;
  height: 16px;
  margin-top: 2px;
  width: 16px;
}

.search.has-content ._input,
.search.focused ._input,
.search:hover ._input {
  opacity: 1;
}

.search.has-content input[type="submit"],
.search.focused input[type="submit"],
.search:hover input[type="submit"] {
  transform: translateX(-160px);
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1OCA1OCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgNTggNTgiPjxwYXRoIGZpbGw9IiNFMjIzMUEiIGQ9Ik01MC41IDcuNEM0Ni40IDMuMyA0MC45IDEgMzUuMSAxUzIzLjggMy4zIDE5LjcgNy40Yy03LjYgNy42LTguNCAxOS40LTIuNSAyNy45TDEuOSA1MC42Yy0xLjEgMS4xLTEuMSAyLjggMCAzLjlsMS43IDEuN2MxLjEgMS4xIDIuOCAxLjEgMy45IDBsMTUuNC0xNS4zYzMuNiAyLjUgNy45IDMuOCAxMi4zIDMuOCA1LjggMCAxMS4zLTIuMyAxNS40LTYuNCA4LjQtOC42IDguNC0yMi40LS4xLTMwLjl6TTM1LjEgMzguM2MtNS41IDAtMTAuMy0yLjktMTMuMS03LjItLjEtLjItLjItLjQtLjQtLjZsLS4zLS42Yy0uOS0xLjgtMS41LTMuOC0xLjYtNS45VjIxLjhjMC0uNi4xLTEuMi4yLTEuN3YtLjJjMC0uMS4xLS4zLjEtLjRzMC0uMi4xLS4zYzAtLjEuMS0uMi4xLS4zIDAtLjEuMS0uMy4xLS40cy4xLS4yLjEtLjNjLjEtLjIuMS0uMy4yLS41IDAtLjEgMC0uMS4xLS4yLjEtLjIuMS0uNC4yLS42di0uMWMuOC0xLjggMS44LTMuNCAzLjMtNC45LjktLjkgMS44LTEuNiAyLjktMi4zaC4xYy4yLS4xLjMtLjIuNS0uMy4xIDAgLjEtLjEuMi0uMS4xLS4xLjMtLjEuNC0uMi4xIDAgLjItLjEuMy0uMS4xIDAgLjItLjEuMy0uMS4yLS4xLjMtLjEuNS0uMmguMWMxLjgtLjcgMy44LTEuMiA1LjktMS4yIDguNSAwIDE1LjUgNi45IDE1LjUgMTUuNS0uNCA4LjQtNy4zIDE1LjQtMTUuOCAxNS40eiIvPjwvc3ZnPg==);
}

.footer {
  background: #fff;
  margin-top: 64px;
}

.footer .icon,
.footer .mobile-top-ui .hamburger,
.mobile-top-ui .footer .hamburger {
  width: 24px;
  height: 24px;
  background-size: 24px 24px;
}

.footer .icon.-tumblr,
.footer .mobile-top-ui .-tumblr.hamburger,
.mobile-top-ui .footer .-tumblr.hamburger {
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjE0MDkuODc5IDk1NyAxMjYuNjMyIDE5OS45ODMiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMTQwOS44NzkgOTU3IDEyNi42MzIgMTk5Ljk4MyI+PHBhdGggZmlsbD0iI0E3QTlBQyIgZD0iTTE0MzIuMTQgOTk5LjU0NmM1LjU3Ni00LjM3MiA5Ljk1LTEwLjMzNiAxMy41Mi0xNy40OSAzLjU4Mi02LjM2MyA1LjU3NC0xNC43MiA3LjE2NS0yNS4wNTZoMjcuODM4djQ2LjEzaDQ2LjUzdjM1Ljc5MmgtNDYuNTQzdjUxLjI5YzAgMTEuNTI2IDAgMTcuODkgMS41OSAyMS40NzMgMS4xOSAyLjc4IDQuMzczIDYuMzY0IDcuOTU2IDguNzQ1IDMuOTcgMi43OCA5LjE0NiAzLjU3IDE0LjcwOCAzLjU3IDEwLjMzNiAwIDIwLjI4My0yLjc4IDMwLjIxOC05LjU0N3YzMS44MWMtOC43NDUgMy41ODItMTYuMyA2LjM2My0yMy4wNjQgOC4zNDMtNy4xNTMgMS41OS0xNC43MDggMi4zOC0yMi42NjMgMi4zOC05LjU0NyAwLTE0LjMyLTEuNTktMjEuNDczLTMuNTctNy4xNTMtMi4zOC0xMy4xMTctNS45NjMtMTcuODktMTAuMzM2LTUuMTc0LTMuOTctOC43NDUtOC4zNDQtOS45NDgtMTMuNTE4LTIuMzgtNC4zNzItMy4xODItMTEuNTI2LTMuMTgyLTIwLjY3di02OS45ODRoLTI3LjAyM3YtMjguMjI2YzcuOTU0LTIuNzggMTYuMjk4LTYuMzYzIDIyLjI2LTExLjEzNnoiLz48L3N2Zz4=);
}

.footer .icon.-facebook,
.footer .mobile-top-ui .-facebook.hamburger,
.mobile-top-ui .footer .-facebook.hamburger {
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjcyNS40MDIgOTU3IDEwNy4xOTggMjAwIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDcyNS40MDIgOTU3IDEwNy4xOTggMjAwIj48cGF0aCBmaWxsPSIjQTdBOUFDIiBkPSJNNzU2LjEyMyAxMDI1Ljk1M1YxMDA3YzAtMjcuNzggMjAuNTgtNTAgNDUuNzU2LTUwaDMwLjcydjM3LjU4aC0zMC43MmMtMy41OTQgMC03LjUxMiA1LjIzNC03LjUxMiAxMS43N3YxOS42MDNIODMyLjZ2MzguMjMyaC0zOC4yNDVWMTE1N2gtMzguMjMydi05Mi44MTRoLTMwLjcydi0zOC4yMzJoMzAuNzJ6Ii8+PC9zdmc+);
}

.footer .icon.-twitter,
.footer .mobile-top-ui .-twitter.hamburger,
.mobile-top-ui .footer .-twitter.hamburger {
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjExMTMuODI4IDk1NyAyNDYuMTAzIDE5OS45ODMiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMTExMy44MjggOTU3IDI0Ni4xMDMgMTk5Ljk4MyI+PHBhdGggZmlsbD0iI0E3QTlBQyIgZD0iTTEzNTkuOTMgOTgwLjY5NmMtOS4wMzcgNC4wMTctMTguNzggNi43My0yOS4wMTYgNy45NiAxMC40MTctNi4yNjYgMTguNDM1LTE2LjE0MyAyMi4yMTItMjcuOTU0LTkuNzU3IDUuNzg1LTIwLjU2MyA5Ljk5Ny0zMi4wNiAxMi4yNzUtOS4yMDItOS44MzItMjIuMzMtMTUuOTc3LTM2Ljg1NC0xNS45NzctMjcuODc4IDAtNTAuNDggMjIuNjE3LTUwLjQ4IDUwLjQ5NSAwIDMuOTU3LjQzNSA3LjgxIDEuMzA0IDExLjUyNi00MS45NjYtMi4xMjctNzkuMTY3LTIyLjE5Ni0xMDQuMDYyLTUyLjc1Ny00LjM0NyA3LjQ2NC02Ljg1IDE2LjExMi02Ljg1IDI1LjM3NSAwIDE3LjUwNiA4LjkxOCAzMi45NzQgMjIuNDY3IDQyLjAxLTguMjg3LS4yNTQtMTYuMDUtMi41MzItMjIuODctNi4yOTR2LjYzYzAgMjQuNDYgMTcuNCA0NC44NzQgNDAuNDk3IDQ5LjUwNS00LjIyNyAxLjE1My04LjcwOCAxLjc2OC0xMy4zMSAxLjc2OC0zLjIzNiAwLTYuNDE0LS4zMTUtOS41LS45MTQgNi40MyAyMC4wNyAyNS4wOSAzNC42NjcgNDcuMTggMzUuMDU3LTE3LjI4IDEzLjUzNS0zOS4wNDMgMjEuNi02Mi43MSAyMS42LTQuMDkgMC04LjA5My0uMjI2LTEyLjA1LS42OSAyMi4zNDggMTQuMyA0OC44OTIgMjIuNjc3IDc3LjQgMjIuNjc3IDkyLjg2NSAwIDE0My42Ni03Ni45MzMgMTQzLjY2LTE0My42NDUgMC0yLjE4OC0uMDQ2LTQuMzYyLS4xNS02LjU1IDkuODYyLTcuMDkgMTguNDItMTUuOTggMjUuMTk0LTI2LjA5NiIvPjwvc3ZnPg==);
}

.footer .icon.-youtube,
.footer .mobile-top-ui .-youtube.hamburger,
.mobile-top-ui .footer .-youtube.hamburger {
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjQwNC4wMDQgOTU3IDI4MC42MzggMjAwIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDQwNC4wMDQgOTU3IDI4MC42MzggMjAwIj48cGF0aCBmaWxsPSIjQTdBOUFDIiBkPSJNNjQwLjY0MyA5NTdoLTE5Mi42NGMtMjQuMzEzIDAtNDQgMTkuMzQ2LTQ0IDQ1LjQwNnYxMDcuMzkyYzAgMjYuMDYgMTkuNjg3IDQ3LjE4NSA0NCA0Ny4xODVoMTkyLjY0YzI0LjI5NiAwIDQ0LTIxLjEyNiA0NC00Ny4xODV2LTEwNy4wMzZjLS4wMTctMjYuMDYtMTkuNzItNDUuNzYyLTQ0LTQ1Ljc2MnptLTE0MS45NzcgMTYyLjE5N1Y5OTYuMDY1bDExMi4yNDUgNjAuOTItMTEyLjI0NCA2Mi4yMTJ6Ii8+PC9zdmc+);
}

.footer .icon.-instagram,
.footer .mobile-top-ui .-instagram.hamburger,
.mobile-top-ui .footer .-instagram.hamburger {
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ijg3NC40OTEgOTU3IDIwMCAyMDAiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgODc0LjQ5MSA5NTcgMjAwIDIwMCI+PHBhdGggZmlsbD0iI0E3QTlBQyIgZD0iTTEwNTEuNDIzIDEwNDEuNjA1aC0xNy40MDRjMS4yNzQgNC45MjQgMi4wMTUgMTAuMDY3IDIuMDE1IDE1LjM4OCAwIDMzLjk5OC0yNy41NCA2MS41MzctNjEuNTM3IDYxLjUzNy0zMy45NyAwLTYxLjUzNy0yNy41NC02MS41MzctNjEuNTM3IDAtNS4zMi43NDItMTAuNDY0IDIuMDMtMTUuMzg4aC0xNy40MTd2ODQuNjJjMCA0LjIzNyAzLjQzIDcuNjggNy43MDggNy42OGgxMzguNDY0YzQuMjM4IDAgNy42OC0zLjQ0MyA3LjY4LTcuNjh2LTg0LjYyem0wLTUzLjg0M2MwLTQuMjM4LTMuNDQyLTcuNjgtNy42OC03LjY4aC0yMy4wODJjLTQuMjUgMC03LjY5MyAzLjQ0Mi03LjY5MyA3LjY4djIzLjA5NWMwIDQuMjM4IDMuNDQyIDcuNjggNy42OTQgNy42OGgyMy4wODNjNC4yMzggMCA3LjY4LTMuNDQyIDcuNjgtNy42OHYtMjMuMDk1em0tNzYuOTI1IDMwLjc3NWMtMjEuMjQ0IDAtMzguNDcgMTcuMjEyLTM4LjQ3IDM4LjQ3IDAgMjEuMjMgMTcuMjEzIDM4LjQ2OCAzOC40NyAzOC40NjggMjEuMjU4IDAgMzguNDctMTcuMjI2IDM4LjQ3LTM4LjQ3LS4wMTQtMjEuMjU2LTE3LjIyNi0zOC40NjgtMzguNDctMzguNDY4TTEwNTEuNDIzIDExNTdIODk3LjU2Yy0xMi43MjggMC0yMy4wNy0xMC4zNC0yMy4wNy0yMy4wODJWOTgwLjA4MmMwLTEyLjc0IDEwLjM0Mi0yMy4wODIgMjMuMDctMjMuMDgyaDE1My44NWMxMi43NTQgMCAyMy4wOCAxMC4zNCAyMy4wOCAyMy4wODJ2MTUzLjgzN2MuMDE1IDEyLjc0LTEwLjMxMiAyMy4wOC0yMy4wNjcgMjMuMDgiLz48L3N2Zz4=);
}

.footer .icon.-spotify,
.footer .mobile-top-ui .-spotify.hamburger,
.mobile-top-ui .footer .-spotify.hamburger {
  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MUIxRjI2RUZDMEREMTFFNUI5QjNFQTg5MDMwQUM1QzYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MUIxRjI2RjBDMEREMTFFNUI5QjNFQTg5MDMwQUM1QzYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoxQjFGMjZFREMwREQxMUU1QjlCM0VBODkwMzBBQzVDNiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoxQjFGMjZFRUMwREQxMUU1QjlCM0VBODkwMzBBQzVDNiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pul1oHsAABgHSURBVHja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);
}

@media (min-width: 994px) {
  .footer .icon,
  .footer .mobile-top-ui .hamburger,
  .mobile-top-ui .footer .hamburger {
    width: 16px;
    height: 16px;
    background-size: 16px 16px;
  }
}

.footer ._footer-content {
  padding-bottom: 70px;
  padding-top: 20px;
  position: relative;
}

.footer ._back-to-top {
  position: absolute;
  top: -32px;
  right: 1.71569%;
  width: 32px;
  height: 32px;
  background-size: 32px 32px;
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjE4MTYgMTY2NiAxODAgMTgwIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDE4MTYgMTY2NiAxODAgMTgwIj48cGF0aCBmaWxsPSIjRTAyNzI2IiBkPSJNMTgxNiAxNjY2aDE4MHYxODBoLTE4MHoiLz48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMTk0MC42MzMgMTc0Ny4wNjdsLTM2Ljg5Mi0zNy4xMDYtMzcuMDk3IDM3LjEgNS4xODggNS4xODggMjguMDItMjguMDE3djg0LjEyNGg3LjMzNXYtODQuNTJsMjguMjQ0IDI4LjQwN3oiLz48L3N2Zz4=);
}

.footer ._links {
  clear: both;
  width: 100%;
  float: left;
  padding-left: 1.71569%;
  padding-right: 1.71569%;
  font-size: 1.15rem;
  line-height: 2em;
  padding-bottom: 0.5em;
  padding-top: 0.5em;
  text-align: center;
}

.footer ._links::after {
  clear: both;
  content: "";
  display: table;
}

.footer ._links li {
  display: inline-block;
}

.footer ._links a {
  padding: 0.15em 0.75em;
  text-transform: uppercase;
  text-decoration: none;
}

.footer ._links a:hover {
  color: #e2231a;
}

@media (min-width: 560px) {
  .footer ._links {
    font-size: 1rem;
    line-height: 1.5em;
  }

  .footer ._links li + li {
    border-left: 1px solid #231f20;
  }
}

@media (min-width: 994px) {
  .footer ._links {
    clear: none;
    display: block;
    text-align: center;
  }
}

.footer ._social {
  clear: both;
  width: 100%;
  float: left;
  padding-left: 1.71569%;
  padding-right: 1.71569%;
  padding-bottom: 1.5em;
  padding-top: 1.5em;
  text-align: center;
}

.footer ._social::after {
  clear: both;
  content: "";
  display: table;
}

.footer ._social a {
  display: inline-block;
  padding: 0 3px;
}

@media (min-width: 994px) {
  .footer ._social {
    padding-bottom: 0;
    padding-top: 0.75em;
    position: absolute;
    right: 0;
    text-align: right;
    top: 20px;
    width: auto;
  }

  .footer ._social a {
    display: inline-block;
    margin-left: 6px;
  }
}

.footer ._mailing-list {
  clear: both;
  width: 100%;
  float: left;
  padding-left: 1.71569%;
  padding-right: 1.71569%;
  padding-top: 0.5rem;
  text-align: center;
}

@media (min-width: 994px) {
  .footer ._mailing-list {
    display: block;
    left: 0;
    padding-top: 0;
    position: absolute;
    text-align: left;
    top: 20px;
    width: auto;
  }
}

.footer ._mailing-list ._message,
.footer ._mailing-list input {
  padding: 0.5em 0;
}

.footer ._mailing-list ._message {
  transition: opacity 150ms cubic-bezier(0.645, 0.045, 0.355, 1);
  opacity: 0;
}

.footer ._mailing-list input {
  border: 0;
  border-bottom: 1px solid #231f20;
  font-size: 1rem;
  width: 240px;
}

.footer ._mailing-list input:focus {
  outline: 0;
}

.footer ._mailing-list input::-webkit-input-placeholder {
  color: #231f20;
}

.footer ._mailing-list input:-moz-placeholder {
  color: #231f20;
}

.footer ._mailing-list input::-moz-placeholder {
  color: #231f20;
}

.footer ._mailing-list input:-ms-input-placeholder {
  color: #231f20;
}

.footer ._mailing-list.-error ._message {
  color: #e2231a;
}

.footer ._mailing-list-button {
  transition: background-color 150ms cubic-bezier(0.645, 0.045, 0.355, 1);
  background-color: #bcbec0;
  color: #fff;
  display: inline-block;
  padding: 0.65rem;
  text-decoration: none;
  text-transform: uppercase;
}

.footer ._mailing-list-button:hover {
  background-color: #e2231a;
}

.footer ._copyright {
  background: #939598;
  padding: 15px;
}

.footer ._copyright p {
  text-align: center;
  color: #fff;
  font-size: 0.85rem;
  margin: 0;
}

/*
----------------------------------------------------
Artist page subnav
----------------------------------------------------
*/

.subnav {
  background: #ff6648;
}

.subnav ._links ul::after,
.subnav ._social ul::after {
  clear: both;
  content: "";
  display: table;
}

.subnav ._links ul li,
.subnav ._social ul li {
  float: left;
}

.subnav ._links {
  clear: both;
  width: 100%;
  float: left;
  padding-left: 1.71569%;
  padding-right: 1.71569%;
  line-height: 36px;
}

.subnav ._links::after {
  clear: both;
  content: "";
  display: table;
}

.subnav ._links ul {
  margin-left: -10px;
}

.subnav ._links a {
  color: #fff;
  display: block;
  padding: 0 10px;
  text-decoration: none;
  text-transform: uppercase;
}

.subnav ._links a:hover,
.subnav ._links a.-active {
  text-decoration: line-through;
  color: #fff;
}

.subnav ._social {
  display: none;
}

.subnav ._social ul {
  float: right;
  margin-right: -6px;
}

.subnav ._social a,
.subnav ._social a span {
  display: block;
}

.subnav .icon,
.subnav .mobile-top-ui .hamburger,
.mobile-top-ui .subnav .hamburger {
  width: 36px;
  height: 36px;
  background-size: 24px 24px;
}

.subnav .icon.-tumblr,
.subnav .mobile-top-ui .-tumblr.hamburger,
.mobile-top-ui .subnav .-tumblr.hamburger {
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ijg0My45OSAwIDE5OS45OTMgMTk5Ljk5MyIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyA4NDMuOTkgMCAxOTkuOTkzIDE5OS45OTMiPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik05NDMuOTg2LjI2NWMtNTUuMjI4IDAtOTkuOTk3IDQ0Ljc2OC05OS45OTcgOTkuOTk3czQ0Ljc2NyA5OS45OTcgOTkuOTk2IDk5Ljk5NyA5OS45OTYtNDQuNzcgOTkuOTk2LTk5Ljk5OFM5OTkuMjE1LjI2NSA5NDMuOTg2LjI2NXptMzEuNTY4IDE0Ny42NDVjLTQuNzE0IDEuOTMyLTguNzg2IDMuNDMtMTIuNDMzIDQuNDk4LTMuODU1Ljg1OC03LjkyOCAxLjI5LTEyLjIxNiAxLjI5LTUuMTQ2IDAtNy43Mi0uODU4LTExLjU3Ni0xLjkyNS0zLjg1Ni0xLjI4My03LjA3LTMuMjE1LTkuNjQ0LTUuNTcyLTIuNzktMi4xNC00LjcxNC00LjQ5Ny01LjM1NS03LjI4Ni0xLjI4NC0yLjM1Ny0xLjcxNi02LjIxMy0xLjcxNi0xMS4xNDNWOTAuMDQ3SDkwOC4wNFY3NC44MjNjNC4yOS0xLjUgOC43ODYtMy40MyAxMi01Ljk5NyAzLjAwNi0yLjM1NyA1LjM1Ni01LjU3MiA3LjI4OC05LjQzNSAxLjkzMi0zLjQzIDIuOTk4LTcuOTI4IDMuODU2LTEzLjUwNmgxNS4wMDZWNzAuNzVoMjUuMDc2djE5LjI5Nkg5NDYuMTl2MjcuNjVjMCA2LjIxMiAwIDkuNjQzLjg1OCAxMS41NzUuNjQyIDEuNSAyLjM1NyAzLjQzMiA0LjI5IDQuNzE1IDIuMTQgMS41IDQuOTMgMS45MjUgNy45MjggMS45MjUgNS41NzIgMCAxMC45MzQtMS41IDE2LjI5LTUuMTQ2djE3LjE0NnoiLz48L3N2Zz4=);
}

.subnav .icon.-facebook,
.subnav .mobile-top-ui .-facebook.hamburger,
.mobile-top-ui .subnav .-facebook.hamburger {
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjQwNC4wMDQgMCAxOTkuOTkzIDE5OS45OTMiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgNDA0LjAwNCAwIDE5OS45OTMgMTk5Ljk5MyI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTUwNCAwYy01NS4yMjggMC05OS45OTcgNDQuNzY4LTk5Ljk5NyA5OS45OTdTNDQ4Ljc3IDE5OS45OTQgNTA0IDE5OS45OTRzOTkuOTk2LTQ0Ljc2OCA5OS45OTYtOTkuOTk3UzU1OS4yMyAwIDUwNCAwem0yOS4zMSA2NC43NTRoLTE3LjEwNmMtMiAwLTQuMTg0IDIuOTE1LTQuMTg0IDYuNTU1djEwLjkyaDIxLjI5NnYyMS4yOTVINTEyLjAydjUxLjdoLTIxLjI5NnYtNTEuN2gtMTcuMTJWODIuMjNoMTcuMTEzVjcxLjY3YzAtMTUuNDczIDExLjQ3LTI3Ljg1IDI1LjQ4Ny0yNy44NWgxNy4xMTJ2MjAuOTM0aC0uMDA3eiIvPjwvc3ZnPg==);
}

.subnav .icon.-twitter,
.subnav .mobile-top-ui .-twitter.hamburger,
.mobile-top-ui .subnav .-twitter.hamburger {
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjEwNjIuOTk3IDAgMTk5Ljk5MyAxOTkuOTkzIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDEwNjIuOTk3IDAgMTk5Ljk5MyAxOTkuOTkzIj48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMTE2Mi45OTMgMGMtNTUuMjI4IDAtOTkuOTk2IDQ0Ljc2OC05OS45OTYgOTkuOTk3czQ0Ljc2OCA5OS45OTcgOTkuOTk2IDk5Ljk5N2M1NS4yMjggMCA5OS45OTctNDQuNzY4IDk5Ljk5Ny05OS45OTdTMTIxOC4yMjIgMCAxMTYyLjk5MyAwem01NC4wMzYgODMuODRjLjA0OCAxLjAxNy4wNyAyLjAyOC4wNyAzLjA0NiAwIDMxLjAzLTIzLjYzMyA2Ni44MzItNjYuODQgNjYuODMyLTEzLjI2MyAwLTI1LjYxMy0zLjg5LTM2LjAxLTEwLjU1IDEuODQuMjE1IDMuNzAzLjMyIDUuNjA3LjMyIDExLjAwNCAwIDIxLjEzNi0zLjc1MiAyOS4xNzYtMTAuMDQ4LTEwLjI4LS4xOC0xOC45Ni02Ljk4LTIxLjk1Mi0xNi4zMSAxLjQzLjI4IDIuOTEuNDI1IDQuNDIyLjQyNSAyLjE0IDAgNC4yMjYtLjI4NiA2LjE5Mi0uODIzLTEwLjc0Ni0yLjE2Mi0xOC44NDItMTEuNjUyLTE4Ljg0Mi0yMy4wMzN2LS4yOTRjMy4xNzMgMS43NTcgNi43OTIgMi44MTcgMTAuNjQgMi45MzYtNi4zMDMtNC4yMDUtMTAuNDUyLTExLjQtMTAuNDUyLTE5LjU0NiAwLTQuMzEgMS4xNjUtOC4zMzMgMy4xODctMTEuODA2IDExLjU4MyAxNC4yMTggMjguODkgMjMuNTU2IDQ4LjQxNSAyNC41NDYtLjM5OC0xLjczLS42MDctMy41Mi0uNjA3LTUuMzYyIDAtMTIuOTcgMTAuNTE2LTIzLjQ5MyAyMy40ODYtMjMuNDkzIDYuNzUgMCAxMi44NiAyLjg2IDE3LjE0IDcuNDI4IDUuMzU2LTEuMDYgMTAuMzc3LTMuMDEyIDE0LjkxNy01LjcxLTEuNzU3IDUuNDk0LTUuNDggMTAuMDktMTAuMzM0IDEzLjAwNCA0Ljc1Ni0uNTY1IDkuMjk1LTEuODM0IDEzLjUtMy43MDMtMy4xMzcgNC43LTcuMTE4IDguODM0LTExLjcxNCAxMi4xNHoiLz48L3N2Zz4=);
}

.subnav .icon.-youtube,
.subnav .mobile-top-ui .-youtube.hamburger,
.mobile-top-ui .subnav .-youtube.hamburger {
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjEyODIuOTkgMCAxOTkuOTkzIDE5OS45OTMiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMTI4Mi45OSAwIDE5OS45OTMgMTk5Ljk5MyI+PGcgZmlsbD0iI2ZmZiI+PHBhdGggZD0iTTEzNjMuMjk3IDEzMC41NWw0Ny41ODQtMjYuMzg0LTQ3LjU4My0yNS44MjV6TTEzODIuNjUuMDgzYy01NC45OTQgMC05OS41NzcgNDQuNTgzLTk5LjU3NyA5OS41NzdzNDQuNTgzIDk5LjU4NCA5OS41NzcgOTkuNTg0IDk5LjU4NC00NC41ODMgOTkuNTg0LTk5LjU4NFMxNDM3LjY1LjA4MyAxMzgyLjY1LjA4M3ptNTkuNDg1IDEyNi40OGMwIDExLjA0Ny04LjM1NCAyMC4wMDItMTguNjUzIDIwLjAwMmgtODEuNjY1Yy0xMC4zIDAtMTguNjUzLTguOTU2LTE4LjY1My0yMC4wMDNWODEuMDM1YzAtMTEuMDQ4IDguMzQ3LTE5LjI0OCAxOC42NTMtMTkuMjQ4aDgxLjY2NWMxMC4zIDAgMTguNjUzIDguMzU0IDE4LjY1MyAxOS40MDJ2NDUuMzcyeiIvPjwvZz48L3N2Zz4=);
}

.subnav .icon.-instagram,
.subnav .mobile-top-ui .-instagram.hamburger,
.mobile-top-ui .subnav .-instagram.hamburger {
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjYyMy45OTcgMCAxOTkuOTkzIDE5OS45OTMiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgNjIzLjk5NyAwIDE5OS45OTMgMTk5Ljk5MyI+PGcgZmlsbD0iI2ZmZiI+PHBhdGggZD0iTTc1Ni40NDcgMTAwLjI2YzAgMTcuMjg4LTE0LjAwMiAzMS4yOS0zMS4yOSAzMS4yOS0xNy4yNzIgMC0zMS4yODgtMTQuMDAyLTMxLjI4OC0zMS4yOSAwLTIuNzA1LjM3Ni01LjMyIDEuMDMtNy44MjNoLTguODU1djQzLjAyNWMwIDIuMTU1IDEuNzQzIDMuOTA1IDMuOTIgMy45MDVoNzAuNGMyLjE1NiAwIDMuOTA2LTEuNzUgMy45MDYtMy45MDVWOTIuNDM4aC04Ljg0OGMuNjQgMi41MDMgMS4wMjUgNS4xMTggMS4wMjUgNy44MjN6TTc2MC4zNjYgNjEuMTU1SDc0OC42M2MtMi4xNjIgMC0zLjkxMiAxLjc1LTMuOTEyIDMuOTA1djExLjc0M2MwIDIuMTU1IDEuNzUgMy45MDUgMy45MTIgMy45MDVoMTEuNzM2YzIuMTU1IDAgMy45MDUtMS43NSAzLjkwNS0zLjkwNXYtMTEuNzVjMC0yLjE1NC0xLjc1Ni0zLjg5OC0zLjkwNC0zLjg5OHpNNzIzLjk5MyAwYy01NS4yMjggMC05OS45OTcgNDQuNzY4LTk5Ljk5NyA5OS45OTdzNDQuNzY4IDk5Ljk5NyA5OS45OTcgOTkuOTk3IDk5Ljk5Ny00NC43NjggOTkuOTk3LTk5Ljk5N1M3NzkuMjIyIDAgNzIzLjk5MyAwem01Mi4wMTQgMTM5LjM2OGMwIDYuNDg1LTUuMjUgMTEuNzM2LTExLjczNiAxMS43MzZINjg2LjA0Yy02LjQ3OCAwLTExLjczLTUuMjU4LTExLjczLTExLjczNlY2MS4xNTVjMC02LjQ3OCA1LjI2LTExLjczNiAxMS43My0xMS43MzZoNzguMjI2YzYuNDg1IDAgMTEuNzM2IDUuMjU3IDExLjczNiAxMS43MzV2NzguMjEyaC4wMDd6Ii8+PGNpcmNsZSBjeD0iNzI1LjE1OCIgY3k9IjEwMC4yNjEiIHI9IjE5LjU2Ii8+PC9nPjwvc3ZnPg==);
}

.subnav .icon.-spotify,
.subnav .mobile-top-ui .-spotify.hamburger,
.mobile-top-ui .subnav .-spotify.hamburger {
  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMDE0IDc5LjE1Njc5NywgMjAxNC8wOC8yMC0wOTo1MzowMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QUUzMjE4MDM2OEM2MTFFNUFFMDdFOENBOEI1QTJENEIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QUUzMjE4MDQ2OEM2MTFFNUFFMDdFOENBOEI1QTJENEIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpBRTMyMTgwMTY4QzYxMUU1QUUwN0U4Q0E4QjVBMkQ0QiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpBRTMyMTgwMjY4QzYxMUU1QUUwN0U4Q0E4QjVBMkQ0QiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Po105lgAAASXSURBVHjazJpbbBRlFMe324q9AJa0ttxqKDVINd6wBZFLiBiJjWJiFEkqsS9NjDZNaaUmmjQhwAuEN9EHXngigQAhkGgUDWKkrQU0io202kJJta2FXuiFtmkz/k/zn2TYzDfzzc7sdv7JL9nMzLd7znc753yzKYZhRAJQPlgH1oNV4DGQBxaAFDAK/gO3wV/gZ9Lt94dTfDiwELwDdoKNIN1j+xnwEzgBToH+uKwQBzySA/aBfiM4jYDDYLlXe7wa/wEYMBKn+6A+EQ4sA98ayVMTWB2UA6+CYSP5mgY73OyLuiwRWaDfcMEmW6lc4B/Fu4h3GuFRlcpO1Ta6GVyKhEtvg9M6cSAb9IKHI+FTIbhlvWC3Bs6H1HjR17EXYh2oYFQNq1aDT1VTKAMMeEwJhtjmHhgHE7IvMP+RUczkDibTMidAR/KZW0XSLBc/cTG+FbSAP8Df5DYTNTdJ5yzlHF7JhO9pUAoWxeHAAVBpHQHprbsgy+bhw+AYDQ9aMjrPg01gOx3SVc7s6HM/LVfsv2fiSPb8UAz2g06N2FBnTSW+VzxUmWQHTFL42+0ODrSagWw+hmJYsaVetRlWKVSeAEWggMVLPouXDC5ggwvaLGS6SRe4Cdo9TJXPwH7FveVp3DZVOVEJ+JEFh8y5l3kt3efc7+KG0Awugl9dFqxsAB/a3NsW4Zyba10De8AKxZTarmh3NMrpEIQmwRinzaTHtmvAQdABjoLimPtVinZFsgaa8OFFD0b+Dq6A68xL+hjQxPgpzn8ziD3C9VHAjirh/p+r8Vtf8gCgDLyieOaGONDJAOOkf0Et+IEG+5E49hx4DbzOz/GqVxzo487iJOm5awnKb+Qophy8D+Z7bDuk68AiTpNYyda5mDuUfJ5nmWojzJP6mCu56VHO9d38Lm0HdKbQd+wh0VZuvc8wO8x2aTvMvKmVcUW25d9cErUvwFu6U6iZp2o6B1FGTAIYrzpYd0h8uax4po1Jn5Paoh6O91IDMj7CKF7Dkzlx4D2bZ0Y0vqcnjVuVH40ykx1lTWDQ2SyunTymFyq9RKpBA7dnma4v6IxkGntBV9e5G/1JxztYEwwpnp/HRS5T4SkGrC3Mn2JVypJxhh2go2YJ0ws0w311QJlmFGwBn4NBnylIgVnQXGTPOJ5kOxQWOYy6GVwnZloxwCA4rWibzcqqliPlRTILnjR7ZZeGt6dAKXgTHATnQBsYd2n3D7jANttAps2oZIEjHnu/3nqwJenxYABpso7kPcBZlqmNMfcaGZl1lDf7XZZeODAHabSM4nqLDe2a7Y7ZHS1mcRQemoPznq/A4xqBy9Qyrq0HKrExh7w70SrzYPxe03jV2ai8fFsb0pO5TkZxx8PdXGaQ0RA6sCo2c7Az8s5ssRw+ldulPVGH9LkiRMZ/DI7b3nEJ+xUhOLGo8/uS7w2+/pwL7QrqNWshuJREw38BzybiRXcNGE2g4TOgIZFv6oUl4BC4F6DhU0zmirza4+fPHhIv3iUb4owbEjRPkrj+ueLHAasKWBauY7BZynIynXXEBKu2Hp5QtLAW7vT7w/8LMADx0Klw4R/mTwAAAABJRU5ErkJggg==);
}

@media (min-width: 994px) {
  .subnav {
    font-size: 1.15rem;
  }

  .subnav ._links,
  .subnav ._social {
    clear: none;
  }

  .subnav ._links {
    width: 66.66667%;
    float: left;
    padding-left: 1.71569%;
    padding-right: 1.71569%;
  }

  .subnav ._social {
    width: 33.33333%;
    float: left;
    padding-left: 1.71569%;
    padding-right: 1.71569%;
    display: block;
  }
}

.page-headline ._menus,
.page-headline ._pagination-menu,
.page-subheadline ._menus,
.page-subheadline ._pagination-menu {
  display: none;
}

@media (min-width: 560px) {
  .page-headline ._menus,
  .page-headline ._pagination-menu,
  .page-subheadline ._menus,
  .page-subheadline ._pagination-menu {
    display: block;
  }
}

.page-headline ._menus,
.page-subheadline ._menus {
  float: right;
}

.page-headline ._pagination-menu,
.page-subheadline ._pagination-menu {
  clear: left;
  padding-top: 0;
}

@media (min-width: 994px) {
  .page-headline ._pagination-menu,
  .page-subheadline ._pagination-menu {
    clear: none;
    float: right;
    padding-top: 11px;
  }
}

._menu {
  float: left;
  font-size: 1.15rem;
  margin: 0;
  padding: 0;
  text-transform: uppercase;
}

._menu ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

._menu ._menu-header {
  text-decoration: none;
}

._menu.-view,
._menu.-drop ._menu-header {
  padding: 1.2rem 1rem;
}

.page-subheadline ._menu.-view,
.page-subheadline
    ._menu.-drop ._menu-header {
  padding: 1.1rem 1rem;
}

._menu ._clear-button {
  color: #e2231a;
  display: block;
  font-size: 1rem;
  padding: 6px;
  text-align: right;
}

._menu ._clear-button .icon-delete {
  background-size: 10px;
  height: 10px;
  width: 10px;
}

._menu ._clear-button {
  transition: opacity 150ms cubic-bezier(0.645, 0.045, 0.355, 1);
  opacity: 0.75;
}

._menu ._clear-button:hover {
  color: #e2231a;
  opacity: 1;
}

._menu.-drop {
  position: relative;
}

._menu.-drop ._menu-header {
  display: block;
}

._menu.-drop ._menu-header .icon.-pull-down,
._menu.-drop ._menu-header .mobile-top-ui .-pull-down.hamburger,
.mobile-top-ui ._menu.-drop ._menu-header .-pull-down.hamburger {
  margin-left: 2px;
}

._menu.-drop ._menu-options {
  background-color: #333;
  display: none;
  position: absolute;
  right: 0;
  width: 270px;
  z-index: 50;
}

._menu.-drop ._menu-options a {
  text-decoration: none;
}

._menu.-drop ._menu-options ._search {
  margin: 14px 14px 0;
}

._menu.-drop ._menu-options ._search input {
  background-color: #333;
  border: 1px solid #e2e2e2;
  box-sizing: border-box;
  color: #e2e2e2;
  display: block;
  padding: 6px;
  text-align: center;
  text-transform: uppercase;
  width: 100%;
}

._menu.-drop ._menu-options ul {
  transition: transform 300ms cubic-bezier(0.645, 0.045, 0.355, 1);
}

._menu.-drop ._menu-options ._page-up-button,
._menu.-drop ._menu-options ._page-down-button {
  transition: opacity 150ms cubic-bezier(0.645, 0.045, 0.355, 1);
  cursor: default;
  display: block;
  opacity: 0.1;
  padding: 8px 0;
  pointer-events: none;
}

._menu.-drop ._menu-options ._page-up-button.-enabled,
._menu.-drop ._menu-options ._page-down-button.-enabled {
  cursor: pointer;
  opacity: 1;
  pointer-events: auto;
}

._menu.-drop ._menu-options ._page-up-button.-enabled,
._menu.-drop ._menu-options ._page-down-button.-enabled {
  transition-property: background-color, opacity;
}

._menu.-drop ._menu-options ._page-up-button.-enabled:hover,
._menu.-drop ._menu-options ._page-down-button.-enabled:hover {
  background-color: #e2231a;
}

._menu.-drop ._filter-list {
  font-size: 1.15rem;
  max-height: 350px;
  overflow-y: scroll;
}

._menu.-drop ._filter-list > li + li {
  border-top: 1px solid #bcbec0;
}

._menu.-drop ._filter-list a {
  color: #bcbec0;
  display: block;
  padding: 1.1rem;
}

._menu.-drop ._filter-list a {
  transition: color 150ms cubic-bezier(0.645, 0.045, 0.355, 1);
}

._menu.-drop ._filter-list a:hover,
._menu.-drop ._filter-list a.-selected {
  color: #fff;
}

._menu.-drop ._filter-list ._count {
  float: right;
}

._menu.-drop.-searchable ._clear-button {
  background-color: #e2231a;
  color: #fff;
  margin: 14px;
  text-align: center;
}

._menu.-drop.-searchable ._clear-button .icon.-delete,
._menu.-drop.-searchable ._clear-button .mobile-top-ui .-delete.hamburger,
.mobile-top-ui ._menu.-drop.-searchable ._clear-button .-delete.hamburger {
  background-size: 10px;
  height: 10px;
  width: 10px;
}

._menu.-drop.-searchable ._filter-list {
  min-height: 14px;
}

._menu.-drop:hover ._menu-header {
  background-color: #333;
  color: #fff;
}

._menu.-drop:hover ._menu-header .icon.-pull-down,
._menu.-drop:hover ._menu-header .mobile-top-ui .-pull-down.hamburger,
.mobile-top-ui ._menu.-drop:hover ._menu-header .-pull-down.hamburger {
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA5OSA1NiIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgOTkgNTYiPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik00OS41IDU1LjhjLTEuNSAwLTMuMS0uNi00LjMtMS44TDAgOC44IDguOCAwbDQwLjcgNDAuN0w5MC4yIDAgOTkgOC44IDU0LjggNTNjLS4yLjQtLjUuNy0uOCAxLTEuMyAxLjItMi45IDEuOC00LjUgMS44eiIvPjwvc3ZnPg==);
}

._menu.-drop:hover ._menu-options {
  display: block;
}

._menu.-drop.-date-filter ._clear-button {
  padding: 0 20px 15px;
}

._menu.-drop.-date-filter ._menu-options {
  text-align: center;
  width: 310px;
}

._menu.-drop.-date-filter ._year {
  padding: 20px;
}

._menu.-drop.-date-filter ._year + ._year {
  border-top: 1px solid #e2e2e2;
}

._menu.-drop.-date-filter ._year ._head {
  color: #fff;
  display: block;
  font-size: 1.3rem;
  margin-bottom: 0.5em;
}

._menu.-drop.-date-filter ._month-list {
  text-transform: uppercase;
}

._menu.-drop.-date-filter ._month-list::after {
  clear: both;
  content: "";
  display: table;
}

._menu.-drop.-date-filter ._month-list ._month {
  width: 16.66667%;
  float: left;
  padding-left: 1.71569%;
  padding-right: 1.71569%;
  background-color: #999;
  border: 1px solid #333;
  color: #333;
  display: block;
  padding-bottom: 6px;
  padding-top: 6px;
  transition-property: color, background-color;
  transition-duration: 150ms;
  transition-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1);
}

._menu.-drop.-date-filter ._month-list ._month.-disabled {
  background-color: #555;
}

._menu.-drop.-date-filter ._month-list ._month:hover:not(.-disabled),
._menu.-drop.-date-filter ._month-list ._month.-selected {
  background-color: #fff;
  color: #e2231a;
}

._menu.-view ._menu-header,
._menu.-view ul {
  float: left;
}

._menu.-view ._menu-header {
  margin: 0 0.25rem 0 0;
}

._menu.-view li {
  float: left;
}

._menu.-view a {
  padding: 4px 2px;
}

._pagination-menu {
  color: #bcbec0;
  font-size: 1.15rem;
  padding: 11px;
  position: relative;
}

._pagination-menu::after {
  clear: both;
  content: "";
  display: table;
}

._pagination-menu li {
  display: block;
  float: left;
}

._pagination-menu li:first-child span,
._pagination-menu li:first-child a {
  padding-left: 0;
}

._pagination-menu span,
._pagination-menu a {
  display: block;
  padding: 7px;
}

._pagination-menu a {
  text-decoration: none;
  color: #666;
}

._pagination-menu a:hover {
  color: #e2231a;
}

@media (min-width: 994px) {
  ._pagination-menu span,
  ._pagination-menu a {
    padding: 5px;
  }
}

._menus.-contact {
  clear: left;
  float: none;
}

._menus.-contact ._menu {
  display: block;
  padding-right: 10px;
  line-height: 14px;
  font-size: 1.15rem;
  text-align: center;
}

._menus.-contact ._menu ul {
  display: inline-block;
  padding: 10px 6px;
}

._menus.-contact ._menu li {
  float: left;
}

._menus.-contact ._menu li + li {
  border-left: 1px solid #231f20;
}

._menus.-contact ._menu a {
  text-transform: uppercase;
  display: inline-block;
  text-decoration: none;
  color: #231f20;
  padding: 0px 5px;
}

._menus.-contact ._menu a:hover,
._menus.-contact ._menu a.-selected {
  color: #e2231a;
  text-decoration: line-through;
}

@media (min-width: 994px) {
  ._menus.-contact {
    clear: none;
    float: right;
  }

  ._menus.-contact ._menu ul {
    display: inline-block;
    padding: 18px 0 0;
  }
}

.banner {
  background-color: #ff6648;
  position: relative;
  /* cell inherit height from gallery */
  /**
   * Can be a <div> or <a>
   */
}

.banner.-with-carousel {
  padding-bottom: 56.25%;
}

.banner .flickity-viewport {
  position: absolute;
  width: 100%;
}

.banner .flickity-prev-next-button {
  width: 48px;
  height: 48px;
  background-size: 48px 48px;
  opacity: 1;
  transition: opacity 450ms ease;
}

.banner .flickity-prev-next-button svg {
  display: none;
}

.banner .flickity-prev-next-button:disabled {
  opacity: 0;
}

.banner .flickity-prev-next-button.previous {
  left: 40px;
  background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxOC4xLjEsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCA2MCA2MCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgNjAgNjAiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPGc+DQoJPHBhdGggZmlsbD0iI0ZGNjY0OCIgZD0iTTMwLDBDMTMuNiwwLDAsMTMuNiwwLDMwczEzLjYsMzAsMzAsMzBzMzAtMTMuNiwzMC0zMFM0Ni40LDAsMzAsMHogTTMwLDU3LjhDMTQuNyw1Ny44LDIuMiw0NS4zLDIuMiwzMA0KCQlTMTQuNywyLjIsMzAsMi4yUzU3LjgsMTQuNyw1Ny44LDMwUzQ1LjMsNTcuOCwzMCw1Ny44eiIvPg0KCTxwYXRoIGZpbGw9IiNGRjY2NDgiIGQ9Ik0zNi43LDE2Yy0wLjQtMC40LTEuMS0wLjctMS42LTAuMkwxOC40LDI5LjFDMTguMiwyOS4zLDE4LDI5LjYsMTgsMzBzMC4yLDAuNywwLjQsMC45bDE2LjcsMTMuMw0KCQljMC4yLDAuMiwwLjQsMC4yLDAuNywwLjJzMC43LTAuMiwwLjktMC40YzAuNC0wLjQsMC4yLTEuMS0wLjItMS42TDIwLjksMzBsMTUuNi0xMi40QzM2LjksMTcuMSwzNy4xLDE2LjQsMzYuNywxNnoiLz4NCjwvZz4NCjwvc3ZnPg0K);
}

.banner .flickity-prev-next-button.next {
  right: 40px;
  background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxOC4xLjEsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCA2MCA2MCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgNjAgNjAiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPGc+DQoJPGc+DQoJCTxwYXRoIGZpbGw9IiNGRjY2NDgiIGQ9Ik0zMCw2MEMxMy42LDYwLDAsNDYuNCwwLDMwUzEzLjYsMCwzMCwwczMwLDEzLjYsMzAsMzBTNDYuNCw2MCwzMCw2MHogTTMwLDIuMkMxNC43LDIuMiwyLjIsMTQuNywyLjIsMzANCgkJCVMxNC43LDU3LjgsMzAsNTcuOFM1Ny44LDQ1LjMsNTcuOCwzMFM0NS4zLDIuMiwzMCwyLjJ6Ii8+DQoJPC9nPg0KCTxwYXRoIGZpbGw9IiNGRjY2NDgiIGQ9Ik0yNC4yLDQ0LjRjLTAuMiwwLTAuNy0wLjItMC45LTAuNGMtMC40LTAuNC0wLjItMS4xLDAuMi0xLjZMMzkuMSwzMEwyMy42LDE3LjZjLTAuNC0wLjQtMC43LTEuMS0wLjItMS42DQoJCWMwLjQtMC40LDEuMS0wLjcsMS42LTAuMmwxNi43LDEzLjNjMC4yLDAuMiwwLjQsMC40LDAuNCwwLjljMCwwLjQtMC4yLDAuNy0wLjQsMC45TDI0LjksNDQuMkMyNC43LDQ0LjQsMjQuNCw0NC40LDI0LjIsNDQuNHoiLz4NCjwvZz4NCjwvc3ZnPg0K);
}

.banner .flickity-page-dots {
  bottom: -28px;
}

.banner .flickity-page-dots .dot {
  opacity: 1;
  margin: 0 4px;
  width: 16px;
  height: 16px;
  background-color: #e1e1e1;
  border: 2px solid #808285;
  transition: background-color 0.1s ease-in-out, border-color 0.1s ease-in-out;
}

.banner .flickity-page-dots .dot:hover {
  background-color: #808285;
  border-color: #808285;
}

.banner .flickity-page-dots .dot.is-selected {
  border-color: #F0664B;
  background-color: #e1e1e1;
}

.banner .flickity-page-dots .dot.is-selected:hover {
  background-color: #F0664B;
  border-color: #F0664B;
}

.banner.-hide-carousel-nav .flickity-prev-next-button,
.banner.-hide-carousel-nav .flickity-page-dots {
  display: none;
}

.banner ._slide {
  width: 100%;
  height: 100%;
}

.banner.-secondary {
  visibility: hidden;
  pointer-events: none;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: 100px;
  z-index: 20000;
}

.subnav-fixed .banner.-secondary {
  visibility: visible;
  pointer-events: auto;
}

.banner ._image,
.banner ._video {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
}

.page-artist-detail .banner ._image,
.page-artist-detail-subpage .banner ._image,
.page-release-detail .banner ._image,
.page-track-detail .banner ._image,
.page-artist-detail
    .banner ._video,
.page-artist-detail-subpage
    .banner ._video,
.page-release-detail
    .banner ._video,
.page-track-detail
    .banner ._video {
  bottom: 36px;
}

.banner ._image {
  background-repeat: no-repeat;
  background-position: 50% 50%;
  background-size: cover;
}

.banner ._video {
  top: 0;
}

.banner ._banner-content {
  position: relative;
  padding-bottom: 56.25%;
  display: block;
  text-decoration: none;
}

.banner .-video ._banner-content ._head {
  transition: transform 150ms ease;
}

.banner.-offset {
  height: 110px;
  padding-bottom: 0;
  overflow: hidden;
}

.banner.-offset ._banner-content {
  height: 110px;
  padding-bottom: 0;
}

.banner.-offset ._slide {
  display: none;
}

.banner.-offset ._slide:nth-child(1) {
  display: block;
}

.banner ._headline {
  clear: both;
  width: 100%;
  float: left;
  padding-left: 1.71569%;
  padding-right: 1.71569%;
  position: absolute;
  bottom: 0;
  left: 0;
}

.banner ._head {
  margin: 0;
  line-height: 64px;
  color: #fff;
  font-size: 4rem;
  text-transform: uppercase;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.banner ._head a {
  color: #fff;
  text-decoration: none;
}

@media (min-width: 560px) {
  .banner ._head {
    font-size: 5rem;
  }
}

.banner.-center ._banner-content {
  max-width: 100%;
  width: 100%;
}

.banner.-center ._headline {
  height: 110px;
}

.banner.-center ._head {
  bottom: 0;
  font-size: 1.75rem;
  left: 0;
  line-height: 1em;
  padding: 0.4em 18px;
  position: absolute;
  right: 0;
  text-align: center;
  white-space: normal;
}

@media (min-width: 560px) {
  .banner.-center ._head {
    font-size: 2.5rem;
  }
}

.banner.-artist ._headline {
  height: 64px;
}

.banner.-artist.-offset {
  height: 100px;
}

.banner.-artist.-offset ._banner-content {
  height: 64px;
}

.layout-standard .box,
.layout-artists .box,
.layout-contact .box,
.layout-faq .box,
.layout-boxes .box {
  margin: 14px 0;
}

@media (min-width: 994px) {
  .layout-standard .column-1 .box:first-child,
  .layout-artists .column-1 .box:first-child,
  .layout-contact .column-1 .box:first-child,
  .layout-faq .column-1 .box:first-child,
  .layout-standard .column-2 .box:first-child,
  .layout-artists .column-2 .box:first-child,
  .layout-contact .column-2 .box:first-child,
  .layout-faq .column-2 .box:first-child {
    margin-top: 0;
  }
}

.boxes::after {
  clear: both;
  content: "";
  display: table;
}

.box {
  /*
  ----------------------------------------------------
  Box Variants
  ----------------------------------------------------
  */
}

.box ._headline {
  background: #666;
  color: #fff;
  line-height: 1.25em;
  padding: 10px;
  position: relative;
  text-align: center;
}

.box ._headline ._head {
  font-size: 1.15rem;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.box ._headline ._icon-toggle {
  display: block;
  float: right;
  margin-top: 5px;
  cursor: pointer;
}

.box ._headline .all {
  color: #fff;
}

.box ._headline ._button {
  float: right;
  text-decoration: none;
}

.box ._image {
  position: relative;
}

.box ._image a,
.box ._image img {
  display: block;
}

.box ._image img {
  width: 100%;
}

.box ._flag {
  transform: translate(-10px, 10px);
  position: absolute;
  top: 0;
  left: 0;
  display: inline-block;
  background: #af998b;
  color: #fff;
  padding: 6px;
  font-size: 1.3rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  z-index: 10;
}

.box ._flag:after {
  content: ' ';
  position: absolute;
  left: 0;
  top: 100%;
  width: 0px;
  height: 0px;
  border-style: solid;
  border-width: 0 10px 10px 0;
  border-color: transparent #221f1f transparent transparent;
}

.box ._video,
.box ._playlist {
  position: relative;
  padding-top: 0;
  padding-bottom: 56.25%;
  height: 0;
  margin-bottom: 1rem;
  overflow: hidden;
  margin-bottom: 0;
}

.box ._video.widescreen,
.box ._playlist.widescreen {
  padding-bottom: 56.34%;
}

.box ._video.vimeo,
.box ._playlist.vimeo {
  padding-top: 0;
}

.box ._video iframe,
.box ._video object,
.box ._video embed,
.box ._video video,
.box ._playlist iframe,
.box ._playlist object,
.box ._playlist embed,
.box ._playlist video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.box ._details {
  background: #fff;
  padding: 14px;
  border-bottom: 4px solid #d1d3d3;
  position: relative;
  display: block;
  text-decoration: none;
}

.box ._details,
.box ._details ._head,
.box ._details ._subhead {
  color: #231f20;
}

.box ._details ._head,
.box ._details ._subhead {
  line-height: 1.1em;
  margin: 0;
  text-transform: uppercase;
}

.box ._details ._head a,
.box ._details ._subhead a {
  text-decoration: none;
  color: #231f20;
}

.box ._details ._head {
  font-size: 2.15rem;
}

.box ._details ._subhead {
  font-size: 1.6rem;
}

.box ._details p {
  margin: 0.25em 0 0 0;
  line-height: 1.4;
}

.box ._details p a {
  color: rgba(102, 102, 102, 0.75);
  text-decoration: none;
}

.box ._details p a:hover {
  color: #e2231a;
}

.box ._details ._empty {
  padding: 3.43137%;
  text-align: center;
}

.box ._details ._empty ._head {
  font-size: 1.5rem;
  margin: 0.5em 0 1em;
}

.box ._details ._readmore,
.box ._content ._readmore {
  font-size: 1.1rem;
  text-align: center;
  color: #231f20;
}

.box ._details ._readmore,
.box ._details ._readmore a,
.box ._content ._readmore,
.box ._content ._readmore a {
  color: #231f20;
}

.box ._details ._readmore a,
.box ._content ._readmore a {
  text-decoration: none;
  display: block;
}

.box ._details ._readmore a:before,
.box ._content ._readmore a:before {
  content: "\2014";
}

.box ._details ._readmore a:after,
.box ._content ._readmore a:after {
  content: "\2014";
}

.box ._details ._readmore a:hover,
.box ._content ._readmore a:hover {
  color: #e2231a;
}

.box.-centered ._details,
.box.-video ._details,
.box.-follow ._details,
.box.-featured-news ._details,
.box.-all-releases ._details,
.box.-release ._details,
.box.-merch ._details {
  text-align: center;
}

.box.-solid ._headline,
.box.-featured-news ._headline,
.box.-all-releases ._headline,
.box.-solid ._details,
.box.-featured-news ._details,
.box.-all-releases ._details {
  background: transparent;
}

.box.-solid ._headline,
.box.-featured-news ._headline,
.box.-all-releases ._headline {
  border-bottom: 1px solid #fff;
}

.box.-solid ._details,
.box.-featured-news ._details,
.box.-all-releases ._details {
  border-bottom: none;
  color: #fff;
}

.box.-solid ._details ._head,
.box.-featured-news ._details ._head,
.box.-all-releases ._details ._head {
  font-size: 1.3rem;
  line-height: 30px;
  color: #fff;
}

.box.-solid ._readmore,
.box.-featured-news ._readmore,
.box.-all-releases ._readmore {
  color: #fff;
}

.box.-solid ._readmore a,
.box.-featured-news ._readmore a,
.box.-all-releases ._readmore a,
.box.-solid ._readmore a:hover,
.box.-featured-news ._readmore a:hover,
.box.-all-releases ._readmore a:hover {
  color: #fff;
}

.box.-solid.-salmon,
.box.-salmon.-featured-news,
.box.-all-releases {
  background-color: #ff6648;
}

.box.-solid.-salmon:hover ._headline,
.box.-salmon.-featured-news:hover ._headline,
.box.-featured-news.-all-releases:hover ._headline,
.box.-all-releases:hover ._headline {
  background: #ff6648;
}

.box.-solid.-salmon:hover ._details,
.box.-salmon.-featured-news:hover ._details,
.box.-featured-news.-all-releases:hover ._details,
.box.-all-releases:hover ._details {
  border-bottom-color: #d1d3d3;
}

.box.-no-overflow ._head,
.box.-no-overflow ._subhead {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.box.-hovery ._headline,
.box.-release ._headline,
.box.-merch ._headline,
.box.-video ._headline,
.box.-video-playlist ._headline,
.box.-artist-bio ._headline,
.box.-collapsible ._headline,
.box.-release-list ._headline,
.box.-featured-artist ._headline,
.box.-artist-search-result ._headline,
.box.-shows ._headline {
  transition: background-color 150ms cubic-bezier(0.645, 0.045, 0.355, 1);
}

.box.-hovery ._details,
.box.-release ._details,
.box.-merch ._details,
.box.-video ._details,
.box.-video-playlist ._details,
.box.-artist-bio ._details,
.box.-collapsible ._details,
.box.-release-list ._details,
.box.-featured-artist ._details,
.box.-artist-search-result ._details,
.box.-shows ._details {
  transition: border-color 150ms cubic-bezier(0.645, 0.045, 0.355, 1);
}

.box.-hovery ._details a,
.box.-release ._details a,
.box.-merch ._details a,
.box.-video ._details a,
.box.-video-playlist ._details a,
.box.-artist-bio ._details a,
.box.-collapsible ._details a,
.box.-release-list ._details a,
.box.-featured-artist ._details a,
.box.-artist-search-result ._details a,
.box.-shows ._details a {
  transition: color 150ms cubic-bezier(0.645, 0.045, 0.355, 1);
}

.box.-hovery ._details a:hover,
.box.-release ._details a:hover,
.box.-merch ._details a:hover,
.box.-video ._details a:hover,
.box.-video-playlist ._details a:hover,
.box.-artist-bio ._details a:hover,
.box.-collapsible ._details a:hover,
.box.-release-list ._details a:hover,
.box.-featured-artist ._details a:hover,
.box.-artist-search-result ._details a:hover,
.box.-shows ._details a:hover {
  color: #e2231a;
}

.box.-hovery:hover ._headline,
.box.-release:hover ._headline,
.box.-merch:hover ._headline,
.box.-video:hover ._headline,
.box.-video-playlist:hover ._headline,
.box.-artist-bio:hover ._headline,
.box.-collapsible:hover ._headline,
.box.-release-list:hover ._headline,
.box.-featured-artist:hover ._headline,
.box.-artist-search-result:hover ._headline,
.box.-shows:hover ._headline {
  background-color: #e2231a;
}

.box.-hovery:hover ._details,
.box.-release:hover ._details,
.box.-merch:hover ._details,
.box.-video:hover ._details,
.box.-video-playlist:hover ._details,
.box.-artist-bio:hover ._details,
.box.-collapsible:hover ._details,
.box.-release-list:hover ._details,
.box.-featured-artist:hover ._details,
.box.-artist-search-result:hover ._details,
.box.-shows:hover ._details {
  border-bottom-color: #e2231a;
}

.box.-release ._image {
  background-color: #fff;
  height: 0;
  padding-bottom: 100%;
  position: relative;
}

.box.-release ._image ._links {
  transition: transform 150ms cubic-bezier(0.645, 0.045, 0.355, 1);
  transform: translateX(-50%) translateY(-50%) scale(0.9);
  position: absolute;
  top: 46%;
  left: 50%;
  pointer-events: none;
  text-align: center;
  width: 100%;
}

.box.-release ._image ._links a {
  display: inline-block;
  padding: 8px 16px;
}

.box.-release ._image ._links a + a {
  border-left: 1px solid #fff;
}

.box.-release ._image ._overlay {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: rgba(0, 0, 0, 0.5);
  opacity: 0;
  transition: opacity 300ms cubic-bezier(0.645, 0.045, 0.355, 1);
}

.box.-release ._image ._overlay.hovering {
  opacity: 1;
}

.box.-release ._image ._overlay.hovering ._links {
  pointer-events: auto;
  transform: translateX(-50%) translateY(-50%) scale(1);
}

.box.-release-list ._details {
  padding: 0;
}

.box.-release-list ._details li {
  padding: 5.14706% 3.43137%;
  position: relative;
}

.box.-release-list ._details li::after {
  clear: both;
  content: "";
  display: table;
}

.box.-release-list ._details li > a {
  display: block;
}

.box.-release-list ._details li + li {
  border-top: 1px solid #d1d3d4;
}

.box.-release-list ._details ._cover {
  width: 50%;
  float: left;
  padding-left: 1.71569%;
  padding-right: 1.71569%;
}

.box.-release-list ._details ._info {
  width: 50%;
  float: left;
  padding-left: 1.71569%;
  padding-right: 1.71569%;
  line-height: 1.75em;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
}

.box.-release-list ._details ._info ._center {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}

.box.-release-list ._details ._info ._release-title,
.box.-release-list ._details ._info ._artist-name {
  text-transform: uppercase;
}

.box.-release-list ._details ._info ._release-title {
  font-size: 1.65rem;
}

.box.-release-list ._details ._info ._artist-name {
  font-size: 1.125rem;
}

.box.-release-list ._details ._info ._release-date {
  color: #939598;
  font-size: 0.85rem;
}

.box.-social {
  display: none;
}

.box.-social ._details {
  border-bottom: 0;
  padding: 0;
}

.box.-social ._details::after {
  clear: both;
  content: "";
  display: table;
}

.box.-social ._details p {
  margin-top: 0;
}

.box.-social ._details p a {
  font-style: italic;
}

.box.-social ._details ._readmore {
  margin-top: 0.5em;
}

.box.-social ._source {
  width: 16.66667%;
  float: left;
  padding-left: 1.71569%;
  padding-right: 1.71569%;
  transition: background-color 150ms cubic-bezier(0.645, 0.045, 0.355, 1);
  position: absolute;
  top: 0;
  bottom: 0;
  background: #a7a9ac;
}

.box.-social ._source a {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.box.-social.-facebook:hover ._source {
  background-color: #4c66a4;
}

.box.-social.-instagram:hover ._source {
  background-color: #306088;
}

.box.-social.-tumblr:hover ._source {
  background-color: #35465c;
}

.box.-social.-twitter:hover ._source {
  background-color: #55acee;
}

.box.-social ._content {
  width: 83.33333%;
  float: left;
  padding-left: 1.71569%;
  padding-right: 1.71569%;
  margin-left: 16.66667%;
  background: #fff;
  overflow: hidden;
  padding: 14px;
}

.box.-social .icon,
.box.-social .mobile-top-ui .hamburger,
.mobile-top-ui .box.-social .hamburger {
  width: 24px;
  height: 24px;
  background-size: 24px 24px;
}

.box.-social .icon.-tumblr,
.box.-social .mobile-top-ui .-tumblr.hamburger,
.mobile-top-ui .box.-social .-tumblr.hamburger {
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjEzOTguNTExIDEyMjIuNDk1IDEzOCAxOTkuOTgzIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDEzOTguNTExIDEyMjIuNDk1IDEzOCAxOTkuOTgzIj48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMTQzMi4xNCAxMjY1LjA0YzUuNTc2LTQuMzcgOS45NS0xMC4zMzUgMTMuNTItMTcuNDg4IDMuNTgyLTYuMzY1IDUuNTc0LTE0LjcyIDcuMTY2LTI1LjA1N2gyNy44Mzh2NDYuMTNoNDYuNTN2MzUuNzkyaC00Ni41NDN2NTEuMjljMCAxMS41MjYgMCAxNy44OSAxLjU5MiAyMS40NzMgMS4xOSAyLjc4IDQuMzcyIDYuMzY0IDcuOTU2IDguNzQ1IDMuOTcgMi43OCA5LjE0NiAzLjU3IDE0LjcwOCAzLjU3IDEwLjMzNiAwIDIwLjI4My0yLjc4IDMwLjIxOC05LjU0N3YzMS44MWMtOC43NDUgMy41ODItMTYuMyA2LjM2My0yMy4wNjQgOC4zNDMtNy4xNTQgMS41OTItMTQuNzA4IDIuMzgtMjIuNjYzIDIuMzgtOS41NDcgMC0xNC4zMi0xLjU5LTIxLjQ3My0zLjU3LTcuMTU0LTIuMzgtMTMuMTE3LTUuOTYyLTE3Ljg5LTEwLjMzNS01LjE3NC0zLjk3LTguNzQ1LTguMzQ0LTkuOTQ4LTEzLjUxOC0yLjM4LTQuMzcyLTMuMTgyLTExLjUyNi0zLjE4Mi0yMC42N3YtNjkuOTg0aC0yNy4wMjN2LTI4LjIyNmM3Ljk1NC0yLjc4IDE2LjI5OC02LjM2MyAyMi4yNi0xMS4xMzZ6Ii8+PC9zdmc+);
}

.box.-social .icon.-facebook,
.box.-social .mobile-top-ui .-facebook.hamburger,
.mobile-top-ui .box.-social .-facebook.hamburger {
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjcyNS40MDIgMTIyMi40ODcgMTA3LjE5OCAyMDAiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgNzI1LjQwMiAxMjIyLjQ4NyAxMDcuMTk4IDIwMCI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTc1Ni4xMjMgMTI5MS40NHYtMTguOTUzYzAtMjcuNzggMjAuNTgtNTAgNDUuNzU2LTUwaDMwLjcydjM3LjU4aC0zMC43MmMtMy41OTQgMC03LjUxMiA1LjIzNC03LjUxMiAxMS43N3YxOS42MDNIODMyLjZ2MzguMjMyaC0zOC4yNDV2OTIuODE0aC0zOC4yMzJ2LTkyLjgxNGgtMzAuNzJ2LTM4LjIzMmgzMC43MnoiLz48L3N2Zz4=);
}

.box.-social .icon.-twitter,
.box.-social .mobile-top-ui .-twitter.hamburger,
.mobile-top-ui .box.-social .-twitter.hamburger {
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjExMTMuODI4IDEyMjIuNDk1IDI0Ni4xMDMgMTk5Ljk4MyIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAxMTEzLjgyOCAxMjIyLjQ5NSAyNDYuMTAzIDE5OS45ODMiPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik0xMzU5LjkzIDEyNDYuMTljLTkuMDM3IDQuMDE4LTE4Ljc4IDYuNzMtMjkuMDE2IDcuOTYgMTAuNDE3LTYuMjY1IDE4LjQzNS0xNi4xNDIgMjIuMjEyLTI3Ljk1My05Ljc1NyA1Ljc4NS0yMC41NjMgOS45OTctMzIuMDYgMTIuMjc1LTkuMjAyLTkuODMyLTIyLjMzLTE1Ljk3Ny0zNi44NTQtMTUuOTc3LTI3Ljg3OCAwLTUwLjQ4IDIyLjYxNy01MC40OCA1MC40OTUgMCAzLjk1Ny40MzUgNy44MSAxLjMwNCAxMS41MjYtNDEuOTY2LTIuMTI4LTc5LjE2Ny0yMi4xOTctMTA0LjA2Mi01Mi43NTgtNC4zNDcgNy40NjQtNi44NSAxNi4xMTItNi44NSAyNS4zNzUgMCAxNy41MDYgOC45MTggMzIuOTc0IDIyLjQ2NyA0Mi4wMS04LjI4Ny0uMjU0LTE2LjA1LTIuNTMyLTIyLjg3LTYuMjk0di42MjhjMCAyNC40NiAxNy40IDQ0Ljg3NCA0MC40OTcgNDkuNTA1LTQuMjI3IDEuMTU0LTguNzA4IDEuNzctMTMuMzEgMS43Ny0zLjIzNiAwLTYuNDE0LS4zMTYtOS41LS45MTUgNi40MyAyMC4wNyAyNS4wOSAzNC42NjcgNDcuMTggMzUuMDU3LTE3LjI4IDEzLjUzNC0zOS4wNDMgMjEuNTk4LTYyLjcxIDIxLjU5OC00LjA5IDAtOC4wOTMtLjIyNS0xMi4wNS0uNjkgMjIuMzQ4IDE0LjMgNDguODkyIDIyLjY3OCA3Ny40IDIyLjY3OCA5Mi44NjUgMCAxNDMuNjYtNzYuOTMyIDE0My42Ni0xNDMuNjQ0IDAtMi4xODgtLjA0Ni00LjM2Mi0uMTUtNi41NSA5Ljg2Mi03LjA5IDE4LjQyLTE1Ljk3OCAyNS4xOTQtMjYuMDk1Ii8+PC9zdmc+);
}

.box.-social .icon.-youtube,
.box.-social .mobile-top-ui .-youtube.hamburger,
.mobile-top-ui .box.-social .-youtube.hamburger {
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjQwNC4wMDQgMTIyMi40ODcgMjgwLjYzOCAyMDAiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgNDA0LjAwNCAxMjIyLjQ4NyAyODAuNjM4IDIwMCI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTY0MC42NDMgMTIyMi40ODdoLTE5Mi42NGMtMjQuMzEzIDAtNDQgMTkuMzQ2LTQ0IDQ1LjQwNnYxMDcuMzkyYzAgMjYuMDYgMTkuNjg3IDQ3LjE4NSA0NCA0Ny4xODVoMTkyLjY0YzI0LjI5NiAwIDQ0LTIxLjEyNiA0NC00Ny4xODVWMTI2OC4yNWMtLjAxNy0yNi4wNi0xOS43Mi00NS43NjMtNDQtNDUuNzYzem0tMTQxLjk3NyAxNjIuMTk3di0xMjMuMTMybDExMi4yNDUgNjAuOTItMTEyLjI0NCA2Mi4yMTJ6Ii8+PC9zdmc+);
}

.box.-social .icon.-instagram,
.box.-social .mobile-top-ui .-instagram.hamburger,
.mobile-top-ui .box.-social .-instagram.hamburger {
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ijg3NC40OTEgMTIyMi40ODcgMjAwIDIwMCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyA4NzQuNDkxIDEyMjIuNDg3IDIwMCAyMDAiPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik0xMDUxLjQyMyAxMzA3LjA5MmgtMTcuNDA0YzEuMjc0IDQuOTI0IDIuMDE1IDEwLjA2NyAyLjAxNSAxNS4zODggMCAzMy45OTgtMjcuNTQgNjEuNTM3LTYxLjUzNyA2MS41MzctMzMuOTcgMC02MS41MzctMjcuNTQtNjEuNTM3LTYxLjUzNyAwLTUuMzIuNzQyLTEwLjQ2NCAyLjAzLTE1LjM4OGgtMTcuNDE3djg0LjYyYzAgNC4yMzcgMy40MyA3LjY4IDcuNzA4IDcuNjhoMTM4LjQ2NGM0LjIzOCAwIDcuNjgtMy40NDMgNy42OC03LjY4di04NC42MnptMC01My44NDNjMC00LjI0LTMuNDQyLTcuNjgtNy42OC03LjY4aC0yMy4wODJjLTQuMjUgMC03LjY5MyAzLjQ0LTcuNjkzIDcuNjh2MjMuMDk0YzAgNC4yMzggMy40NDIgNy42OCA3LjY5NCA3LjY4aDIzLjA4M2M0LjIzOCAwIDcuNjgtMy40NDIgNy42OC03LjY4di0yMy4wOTV6bS03Ni45MjUgMzAuNzc0Yy0yMS4yNDQgMC0zOC40NyAxNy4yMTItMzguNDcgMzguNDcgMCAyMS4yMyAxNy4yMTMgMzguNDY4IDM4LjQ3IDM4LjQ2OCAyMS4yNTggMCAzOC40Ny0xNy4yMjYgMzguNDctMzguNDctLjAxNC0yMS4yNTYtMTcuMjI2LTM4LjQ2OC0zOC40Ny0zOC40NjhtNzYuOTI1IDEzOC40NjNIODk3LjU2Yy0xMi43MjggMC0yMy4wNy0xMC4zNC0yMy4wNy0yMy4wODJWMTI0NS41N2MwLTEyLjc0MiAxMC4zNDItMjMuMDgzIDIzLjA3LTIzLjA4M2gxNTMuODVjMTIuNzU0IDAgMjMuMDggMTAuMzQgMjMuMDggMjMuMDgydjE1My44MzZjLjAxNSAxMi43NC0xMC4zMTIgMjMuMDgtMjMuMDY3IDIzLjA4Ii8+PC9zdmc+);
}

.box.-social.-photo ._content {
  padding: 0;
}

.box.-social.-photo ._content img {
  display: block;
}

.box.-social.-tumblr ._content {
  padding: 0;
}

.box.-social.-tumblr ._text {
  padding: 14px;
}

@media (min-width: 560px) {
  .box.-social {
    display: block;
  }
}

.box.-follow {
  margin-top: 36px;
}

.box.-follow ._headline,
.box.-follow ._details {
  background: #ff6648;
}

.box.-follow ._headline {
  padding-top: 14px;
}

.box.-follow ._details {
  display: -ms-flexbox;
  display: flex;
  border-bottom: 0;
  padding-top: 0;
}

.box.-follow ._details a {
  -ms-flex: 1;
      flex: 1;
}

.box.-follow .icon,
.box.-follow .mobile-top-ui .hamburger,
.mobile-top-ui .box.-follow .hamburger {
  width: 32px;
  height: 32px;
  background-size: 32px 32px;
}

.box.-follow .icon.-tumblr,
.box.-follow .mobile-top-ui .-tumblr.hamburger,
.mobile-top-ui .box.-follow .-tumblr.hamburger {
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ijg0My45OSAwIDE5OS45OTMgMTk5Ljk5MyIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyA4NDMuOTkgMCAxOTkuOTkzIDE5OS45OTMiPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik05NDMuOTg2LjI2NWMtNTUuMjI4IDAtOTkuOTk3IDQ0Ljc2OC05OS45OTcgOTkuOTk3czQ0Ljc2NyA5OS45OTcgOTkuOTk2IDk5Ljk5NyA5OS45OTYtNDQuNzcgOTkuOTk2LTk5Ljk5OFM5OTkuMjE1LjI2NSA5NDMuOTg2LjI2NXptMzEuNTY4IDE0Ny42NDVjLTQuNzE0IDEuOTMyLTguNzg2IDMuNDMtMTIuNDMzIDQuNDk4LTMuODU1Ljg1OC03LjkyOCAxLjI5LTEyLjIxNiAxLjI5LTUuMTQ2IDAtNy43Mi0uODU4LTExLjU3Ni0xLjkyNS0zLjg1Ni0xLjI4My03LjA3LTMuMjE1LTkuNjQ0LTUuNTcyLTIuNzktMi4xNC00LjcxNC00LjQ5Ny01LjM1NS03LjI4Ni0xLjI4NC0yLjM1Ny0xLjcxNi02LjIxMy0xLjcxNi0xMS4xNDNWOTAuMDQ3SDkwOC4wNFY3NC44MjNjNC4yOS0xLjUgOC43ODYtMy40MyAxMi01Ljk5NyAzLjAwNi0yLjM1NyA1LjM1Ni01LjU3MiA3LjI4OC05LjQzNSAxLjkzMi0zLjQzIDIuOTk4LTcuOTI4IDMuODU2LTEzLjUwNmgxNS4wMDZWNzAuNzVoMjUuMDc2djE5LjI5Nkg5NDYuMTl2MjcuNjVjMCA2LjIxMiAwIDkuNjQzLjg1OCAxMS41NzUuNjQyIDEuNSAyLjM1NyAzLjQzMiA0LjI5IDQuNzE1IDIuMTQgMS41IDQuOTMgMS45MjUgNy45MjggMS45MjUgNS41NzIgMCAxMC45MzQtMS41IDE2LjI5LTUuMTQ2djE3LjE0NnoiLz48L3N2Zz4=);
}

.box.-follow .icon.-facebook,
.box.-follow .mobile-top-ui .-facebook.hamburger,
.mobile-top-ui .box.-follow .-facebook.hamburger {
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjQwNC4wMDQgMCAxOTkuOTkzIDE5OS45OTMiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgNDA0LjAwNCAwIDE5OS45OTMgMTk5Ljk5MyI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTUwNCAwYy01NS4yMjggMC05OS45OTcgNDQuNzY4LTk5Ljk5NyA5OS45OTdTNDQ4Ljc3IDE5OS45OTQgNTA0IDE5OS45OTRzOTkuOTk2LTQ0Ljc2OCA5OS45OTYtOTkuOTk3UzU1OS4yMyAwIDUwNCAwem0yOS4zMSA2NC43NTRoLTE3LjEwNmMtMiAwLTQuMTg0IDIuOTE1LTQuMTg0IDYuNTU1djEwLjkyaDIxLjI5NnYyMS4yOTVINTEyLjAydjUxLjdoLTIxLjI5NnYtNTEuN2gtMTcuMTJWODIuMjNoMTcuMTEzVjcxLjY3YzAtMTUuNDczIDExLjQ3LTI3Ljg1IDI1LjQ4Ny0yNy44NWgxNy4xMTJ2MjAuOTM0aC0uMDA3eiIvPjwvc3ZnPg==);
}

.box.-follow .icon.-twitter,
.box.-follow .mobile-top-ui .-twitter.hamburger,
.mobile-top-ui .box.-follow .-twitter.hamburger {
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjEwNjIuOTk3IDAgMTk5Ljk5MyAxOTkuOTkzIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDEwNjIuOTk3IDAgMTk5Ljk5MyAxOTkuOTkzIj48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMTE2Mi45OTMgMGMtNTUuMjI4IDAtOTkuOTk2IDQ0Ljc2OC05OS45OTYgOTkuOTk3czQ0Ljc2OCA5OS45OTcgOTkuOTk2IDk5Ljk5N2M1NS4yMjggMCA5OS45OTctNDQuNzY4IDk5Ljk5Ny05OS45OTdTMTIxOC4yMjIgMCAxMTYyLjk5MyAwem01NC4wMzYgODMuODRjLjA0OCAxLjAxNy4wNyAyLjAyOC4wNyAzLjA0NiAwIDMxLjAzLTIzLjYzMyA2Ni44MzItNjYuODQgNjYuODMyLTEzLjI2MyAwLTI1LjYxMy0zLjg5LTM2LjAxLTEwLjU1IDEuODQuMjE1IDMuNzAzLjMyIDUuNjA3LjMyIDExLjAwNCAwIDIxLjEzNi0zLjc1MiAyOS4xNzYtMTAuMDQ4LTEwLjI4LS4xOC0xOC45Ni02Ljk4LTIxLjk1Mi0xNi4zMSAxLjQzLjI4IDIuOTEuNDI1IDQuNDIyLjQyNSAyLjE0IDAgNC4yMjYtLjI4NiA2LjE5Mi0uODIzLTEwLjc0Ni0yLjE2Mi0xOC44NDItMTEuNjUyLTE4Ljg0Mi0yMy4wMzN2LS4yOTRjMy4xNzMgMS43NTcgNi43OTIgMi44MTcgMTAuNjQgMi45MzYtNi4zMDMtNC4yMDUtMTAuNDUyLTExLjQtMTAuNDUyLTE5LjU0NiAwLTQuMzEgMS4xNjUtOC4zMzMgMy4xODctMTEuODA2IDExLjU4MyAxNC4yMTggMjguODkgMjMuNTU2IDQ4LjQxNSAyNC41NDYtLjM5OC0xLjczLS42MDctMy41Mi0uNjA3LTUuMzYyIDAtMTIuOTcgMTAuNTE2LTIzLjQ5MyAyMy40ODYtMjMuNDkzIDYuNzUgMCAxMi44NiAyLjg2IDE3LjE0IDcuNDI4IDUuMzU2LTEuMDYgMTAuMzc3LTMuMDEyIDE0LjkxNy01LjcxLTEuNzU3IDUuNDk0LTUuNDggMTAuMDktMTAuMzM0IDEzLjAwNCA0Ljc1Ni0uNTY1IDkuMjk1LTEuODM0IDEzLjUtMy43MDMtMy4xMzcgNC43LTcuMTE4IDguODM0LTExLjcxNCAxMi4xNHoiLz48L3N2Zz4=);
}

.box.-follow .icon.-youtube,
.box.-follow .mobile-top-ui .-youtube.hamburger,
.mobile-top-ui .box.-follow .-youtube.hamburger {
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjEyODIuOTkgMCAxOTkuOTkzIDE5OS45OTMiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMTI4Mi45OSAwIDE5OS45OTMgMTk5Ljk5MyI+PGcgZmlsbD0iI2ZmZiI+PHBhdGggZD0iTTEzNjMuMjk3IDEzMC41NWw0Ny41ODQtMjYuMzg0LTQ3LjU4My0yNS44MjV6TTEzODIuNjUuMDgzYy01NC45OTQgMC05OS41NzcgNDQuNTgzLTk5LjU3NyA5OS41NzdzNDQuNTgzIDk5LjU4NCA5OS41NzcgOTkuNTg0IDk5LjU4NC00NC41ODMgOTkuNTg0LTk5LjU4NFMxNDM3LjY1LjA4MyAxMzgyLjY1LjA4M3ptNTkuNDg1IDEyNi40OGMwIDExLjA0Ny04LjM1NCAyMC4wMDItMTguNjUzIDIwLjAwMmgtODEuNjY1Yy0xMC4zIDAtMTguNjUzLTguOTU2LTE4LjY1My0yMC4wMDNWODEuMDM1YzAtMTEuMDQ4IDguMzQ3LTE5LjI0OCAxOC42NTMtMTkuMjQ4aDgxLjY2NWMxMC4zIDAgMTguNjUzIDguMzU0IDE4LjY1MyAxOS40MDJ2NDUuMzcyeiIvPjwvZz48L3N2Zz4=);
}

.box.-follow .icon.-instagram,
.box.-follow .mobile-top-ui .-instagram.hamburger,
.mobile-top-ui .box.-follow .-instagram.hamburger {
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjYyMy45OTcgMCAxOTkuOTkzIDE5OS45OTMiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgNjIzLjk5NyAwIDE5OS45OTMgMTk5Ljk5MyI+PGcgZmlsbD0iI2ZmZiI+PHBhdGggZD0iTTc1Ni40NDcgMTAwLjI2YzAgMTcuMjg4LTE0LjAwMiAzMS4yOS0zMS4yOSAzMS4yOS0xNy4yNzIgMC0zMS4yODgtMTQuMDAyLTMxLjI4OC0zMS4yOSAwLTIuNzA1LjM3Ni01LjMyIDEuMDMtNy44MjNoLTguODU1djQzLjAyNWMwIDIuMTU1IDEuNzQzIDMuOTA1IDMuOTIgMy45MDVoNzAuNGMyLjE1NiAwIDMuOTA2LTEuNzUgMy45MDYtMy45MDVWOTIuNDM4aC04Ljg0OGMuNjQgMi41MDMgMS4wMjUgNS4xMTggMS4wMjUgNy44MjN6TTc2MC4zNjYgNjEuMTU1SDc0OC42M2MtMi4xNjIgMC0zLjkxMiAxLjc1LTMuOTEyIDMuOTA1djExLjc0M2MwIDIuMTU1IDEuNzUgMy45MDUgMy45MTIgMy45MDVoMTEuNzM2YzIuMTU1IDAgMy45MDUtMS43NSAzLjkwNS0zLjkwNXYtMTEuNzVjMC0yLjE1NC0xLjc1Ni0zLjg5OC0zLjkwNC0zLjg5OHpNNzIzLjk5MyAwYy01NS4yMjggMC05OS45OTcgNDQuNzY4LTk5Ljk5NyA5OS45OTdzNDQuNzY4IDk5Ljk5NyA5OS45OTcgOTkuOTk3IDk5Ljk5Ny00NC43NjggOTkuOTk3LTk5Ljk5N1M3NzkuMjIyIDAgNzIzLjk5MyAwem01Mi4wMTQgMTM5LjM2OGMwIDYuNDg1LTUuMjUgMTEuNzM2LTExLjczNiAxMS43MzZINjg2LjA0Yy02LjQ3OCAwLTExLjczLTUuMjU4LTExLjczLTExLjczNlY2MS4xNTVjMC02LjQ3OCA1LjI2LTExLjczNiAxMS43My0xMS43MzZoNzguMjI2YzYuNDg1IDAgMTEuNzM2IDUuMjU3IDExLjczNiAxMS43MzV2NzguMjEyaC4wMDd6Ii8+PGNpcmNsZSBjeD0iNzI1LjE1OCIgY3k9IjEwMC4yNjEiIHI9IjE5LjU2Ii8+PC9nPjwvc3ZnPg==);
}

.box.-follow .icon.-spotify,
.box.-follow .mobile-top-ui .-spotify.hamburger,
.mobile-top-ui .box.-follow .-spotify.hamburger {
  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMDE0IDc5LjE1Njc5NywgMjAxNC8wOC8yMC0wOTo1MzowMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QUUzMjE4MDM2OEM2MTFFNUFFMDdFOENBOEI1QTJENEIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QUUzMjE4MDQ2OEM2MTFFNUFFMDdFOENBOEI1QTJENEIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpBRTMyMTgwMTY4QzYxMUU1QUUwN0U4Q0E4QjVBMkQ0QiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpBRTMyMTgwMjY4QzYxMUU1QUUwN0U4Q0E4QjVBMkQ0QiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Po105lgAAASXSURBVHjazJpbbBRlFMe324q9AJa0ttxqKDVINd6wBZFLiBiJjWJiFEkqsS9NjDZNaaUmmjQhwAuEN9EHXngigQAhkGgUDWKkrQU0io202kJJta2FXuiFtmkz/k/zn2TYzDfzzc7sdv7JL9nMzLd7znc753yzKYZhRAJQPlgH1oNV4DGQBxaAFDAK/gO3wV/gZ9Lt94dTfDiwELwDdoKNIN1j+xnwEzgBToH+uKwQBzySA/aBfiM4jYDDYLlXe7wa/wEYMBKn+6A+EQ4sA98ayVMTWB2UA6+CYSP5mgY73OyLuiwRWaDfcMEmW6lc4B/Fu4h3GuFRlcpO1Ta6GVyKhEtvg9M6cSAb9IKHI+FTIbhlvWC3Bs6H1HjR17EXYh2oYFQNq1aDT1VTKAMMeEwJhtjmHhgHE7IvMP+RUczkDibTMidAR/KZW0XSLBc/cTG+FbSAP8Df5DYTNTdJ5yzlHF7JhO9pUAoWxeHAAVBpHQHprbsgy+bhw+AYDQ9aMjrPg01gOx3SVc7s6HM/LVfsv2fiSPb8UAz2g06N2FBnTSW+VzxUmWQHTFL42+0ODrSagWw+hmJYsaVetRlWKVSeAEWggMVLPouXDC5ggwvaLGS6SRe4Cdo9TJXPwH7FveVp3DZVOVEJ+JEFh8y5l3kt3efc7+KG0Awugl9dFqxsAB/a3NsW4Zyba10De8AKxZTarmh3NMrpEIQmwRinzaTHtmvAQdABjoLimPtVinZFsgaa8OFFD0b+Dq6A68xL+hjQxPgpzn8ziD3C9VHAjirh/p+r8Vtf8gCgDLyieOaGONDJAOOkf0Et+IEG+5E49hx4DbzOz/GqVxzo487iJOm5awnKb+Qophy8D+Z7bDuk68AiTpNYyda5mDuUfJ5nmWojzJP6mCu56VHO9d38Lm0HdKbQd+wh0VZuvc8wO8x2aTvMvKmVcUW25d9cErUvwFu6U6iZp2o6B1FGTAIYrzpYd0h8uax4po1Jn5Paoh6O91IDMj7CKF7Dkzlx4D2bZ0Y0vqcnjVuVH40ykx1lTWDQ2SyunTymFyq9RKpBA7dnma4v6IxkGntBV9e5G/1JxztYEwwpnp/HRS5T4SkGrC3Mn2JVypJxhh2go2YJ0ws0w311QJlmFGwBn4NBnylIgVnQXGTPOJ5kOxQWOYy6GVwnZloxwCA4rWibzcqqliPlRTILnjR7ZZeGt6dAKXgTHATnQBsYd2n3D7jANttAps2oZIEjHnu/3nqwJenxYABpso7kPcBZlqmNMfcaGZl1lDf7XZZeODAHabSM4nqLDe2a7Y7ZHS1mcRQemoPznq/A4xqBy9Qyrq0HKrExh7w70SrzYPxe03jV2ai8fFsb0pO5TkZxx8PdXGaQ0RA6sCo2c7Az8s5ssRw+ldulPVGH9LkiRMZ/DI7b3nEJ+xUhOLGo8/uS7w2+/pwL7QrqNWshuJREw38BzybiRXcNGE2g4TOgIZFv6oUl4BC4F6DhU0zmirza4+fPHhIv3iUb4owbEjRPkrj+ueLHAasKWBauY7BZynIynXXEBKu2Hp5QtLAW7vT7w/8LMADx0Klw4R/mTwAAAABJRU5ErkJggg==);
}

@media (min-width: 560px) {
  .box.-follow {
    margin-top: 14px;
  }
}

.box.-featured-news {
  background-color: #af998b;
}

.box.-featured-news ._details ._head {
  text-transform: none;
}

.box.-featured-news {
  transition: background-color 150ms cubic-bezier(0.645, 0.045, 0.355, 1);
}

.box.-featured-news:hover {
  background-color: #e2231a;
}

.box.-featured-artist ._image,
.box.-artist-search-result ._image {
  height: 0;
  overflow: hidden;
  padding-bottom: 62%;
}

.box.-artist-search-result {
  text-align: center;
}

.box.-artist-search-result ._image {
  background-color: #fff;
}

.box.-all-releases ._details ._head {
  font-size: 1.75rem;
  margin: 0.75em;
  text-transform: none;
}

.box.-shows ._details {
  padding: 0;
}

.box.-shows ._details ._readmore a {
  padding: 10px 0;
}

.box.-shows li {
  clear: both;
  background-color: #fff;
  border-bottom: 1px solid #e2e2e2;
  padding: 10px;
}

.box.-shows li::after {
  clear: both;
  content: "";
  display: table;
}

.box.-shows li {
  transition: background-color 150ms cubic-bezier(0.645, 0.045, 0.355, 1);
}

.box.-shows li:hover {
  background-color: #f2f2f2;
}

.box.-shows ._date {
  width: 50%;
  float: left;
  padding-left: 1.71569%;
  padding-right: 1.71569%;
  line-height: 1.2em;
}

.box.-shows ._location {
  width: 50%;
  float: left;
  padding-left: 1.71569%;
  padding-right: 1.71569%;
  text-align: right;
  text-transform: uppercase;
  line-height: 1.2em;
}

.box.-shows ._artist {
  clear: both;
  width: 100%;
  float: left;
  padding-left: 1.71569%;
  padding-right: 1.71569%;
  text-transform: uppercase;
  font-size: 2.5rem;
  line-height: 1.2em;
}

.box.-shows ._artist a {
  color: #af998b;
  text-decoration: none;
}

.box.-shows ._venue {
  clear: both;
  width: 100%;
  float: left;
  padding-left: 1.71569%;
  padding-right: 1.71569%;
  font-size: 1.5rem;
  margin-bottom: 5px;
  line-height: 1.2em;
}

.box.-shows ._links {
  clear: both;
  width: 100%;
  float: left;
  padding-left: 1.71569%;
  padding-right: 1.71569%;
  color: rgba(102, 102, 102, 0.75);
  font-size: 0.85rem;
  line-height: 1.2em;
  text-transform: uppercase;
}

.box.-shows ._links a {
  color: rgba(102, 102, 102, 0.75);
  text-decoration: none;
}

@media (min-width: 560px) {
  .box.-shows ._artist {
    font-size: 1.85rem;
  }

  .box.-shows ._venue {
    font-size: 1rem;
  }
}

.box.-news ._details {
  padding: 20px;
}

.box.-news ._details ._date {
  color: #666;
  display: block;
  font-size: 0.9rem;
  margin-bottom: 0.25em;
  text-transform: uppercase;
}

.box.-news ._details ._head {
  font-size: 1.35rem;
  text-transform: uppercase;
}

.box.-news ._details ._head a:hover {
  color: #e2231a;
}

.box.-news ._details p {
  margin: 0.5em 0;
}

.box.-contact-info ._details,
.box.-faq-links ._details {
  border-bottom: none;
}

.box.-contact-info ._details ._subhead,
.box.-faq-links ._details ._subhead {
  font-size: 1.3rem;
  letter-spacing: 0.5px;
}

.box.-contact-info ._details p,
.box.-faq-links ._details p {
  margin: 1em 0;
}

.box.-contact-info .contact-address-list li + li,
.box.-contact-info .faq-links-list li + li,
.box.-faq-links .contact-address-list li + li,
.box.-faq-links .faq-links-list li + li {
  border-top: 2px solid #e2e2e2;
  margin-top: 24px;
  padding-top: 24px;
}

.box.-faq-links ._subhead {
  display: block;
  text-decoration: none;
  text-transform: none;
  padding: 16px;
}

.box.-faq-links ._subhead:hover {
  color: #e2231a;
}

.box.-faq-links ._details {
  padding: 0;
}

.box.-faq-links .faq-links-list li + li {
  margin-top: 0;
  padding-top: 0;
}

.box.-collapsible ._headline {
  cursor: pointer;
}

.box.-collapsible ._details {
  border-bottom: none;
  display: none;
}

.box.-collapsible.-open ._details {
  display: block;
}

.box.-social-counts {
  -ms-flex-align: center;
      align-items: center;
  background-color: #d1d3d4;
  display: -ms-flexbox;
  display: flex;
}

.box.-social-counts ._button {
  -ms-flex: 1;
      flex: 1;
  padding-bottom: 18px;
  padding-top: 18px;
  text-align: center;
}

.box.-side-note ._details {
  border-bottom: none;
}

.pagination {
  font-size: 1.25rem;
  margin: 0 10px 3rem 10px;
  text-transform: uppercase;
}

.pagination::after {
  clear: both;
  content: "";
  display: table;
}

.pagination,
.pagination a {
  color: #666;
}

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

.pagination a:hover {
  color: #e2231a;
}

.pagination ._prev-button,
.pagination ._next-button {
  width: 50%;
  float: left;
  padding-left: 1.71569%;
  padding-right: 1.71569%;
}

.pagination ._pages {
  display: none;
  text-align: center;
}

.pagination ._pages li {
  display: inline-block;
}

.pagination ._pages .-arrow-left,
.pagination ._pages .-arrow-right {
  display: none;
}

.pagination ._prev-button a,
.pagination ._next-button a,
.pagination ._number-button,
.pagination ._prev-button-icon,
.pagination ._next-button-icon {
  padding: 0.9rem;
}

.pagination .-arrow-left,
.pagination .-arrow-right {
  display: block;
  margin-top: 3px;
}

.pagination ._prev-button {
  text-align: left;
}

.pagination ._prev-button a {
  padding-left: 0;
}

.pagination ._prev-button .-arrow-left {
  display: inline-block;
  margin-right: 6px;
}

.pagination ._next-button {
  float: right;
  text-align: right;
}

.pagination ._next-button a {
  padding-right: 0;
}

.pagination ._next-button .-arrow-right {
  display: inline-block;
  margin-left: 6px;
}

.pagination .-selected {
  color: #e2231a;
}

@media (min-width: 560px) {
  .pagination {
    margin-top: 1rem;
  }

  .pagination ._prev-button,
  .pagination ._next-button {
    width: 16.66667%;
    float: left;
    padding-left: 1.71569%;
    padding-right: 1.71569%;
    margin-bottom: 0;
  }

  .pagination ._prev-button {
    padding-left: 0;
  }

  .pagination ._next-button {
    float: right;
    padding-right: 0;
  }

  .pagination ._pages {
    width: 66.66667%;
    float: left;
    padding-left: 1.71569%;
    padding-right: 1.71569%;
    display: block;
  }
}

@media (min-width: 994px) {
  .pagination {
    font-size: 1rem;
  }

  .pagination ._prev-button a,
  .pagination ._next-button a,
  .pagination ._number-button,
  .pagination ._prev-button-icon,
  .pagination ._next-button-icon {
    padding: 0.35rem;
  }

  .pagination ._pages .-arrow-left,
  .pagination ._pages .-arrow-right {
    display: block;
    margin-top: 3px;
  }
}

.modal-blanket {
  transition: opacity 300ms cubic-bezier(0.645, 0.045, 0.355, 1);
  background-color: rgba(0, 0, 0, 0.75);
  display: none;
  height: 100%;
  left: 0;
  opacity: 0;
  overflow: auto;
  overflow-y: scroll;
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 2040;
}

.-modal-is-open .modal-blanket {
  display: block;
  opacity: 1;
}

.-modal-is-open {
  overflow: hidden;
}

._modal {
  width: 83.33333%;
  float: left;
  padding-left: 1.71569%;
  padding-right: 1.71569%;
  float: none;
  margin: 25% auto;
}

@media (min-width: 560px) {
  ._modal {
    margin-bottom: 16.66667%;
    margin-top: 16.66667%;
  }
}

@media (min-width: 994px) {
  ._modal {
    margin-bottom: 8.33333%;
    margin-top: 8.33333%;
  }
}

.modal-blanket.modal-takeover {
  z-index: 11000;
}

.modal-blanket.modal-takeover ._modal {
  box-sizing: border-box;
  height: 100%;
  margin: 0 auto;
  max-width: 1034px;
  padding: 20px;
  position: relative;
  width: 100%;
}

.modal-blanket.modal-takeover ._modal ._button {
  position: absolute;
  right: 32px;
  top: 34px;
}

.modal-blanket.modal-takeover iframe {
  height: 100%;
  width: 100%;
}

@media (min-width: 560px) {
  .modal-blanket.modal-takeover ._modal {
    max-height: 960px;
  }
}

@media (min-width: 994px) {
  .modal-blanket.modal-takeover ._modal {
    max-height: 950px;
    padding-top: 40px;
  }

  .modal-blanket.modal-takeover ._modal ._button {
    top: 54px;
  }
}

.news-list {
  clear: both;
  width: 100%;
  float: left;
  padding-left: 1.71569%;
  padding-right: 1.71569%;
  float: none;
  position: relative;
}

.news-list::after {
  clear: both;
  content: "";
  display: table;
}

.news-list .box.-news {
  margin-bottom: 1.71569%;
}

@media (min-width: 560px) {
  .news-list .box.-news {
    margin-bottom: 48px;
  }
}

.news-article {
  background-color: #fff;
}

.news-article ._image {
  display: block;
  width: 100%;
}

.news-article ._content {
  padding: 24px;
}

.news-article ._date,
.news-article ._title {
  text-transform: uppercase;
}

.news-article ._date {
  display: block;
  font-size: 0.9rem;
  margin-bottom: 1em;
}

.news-article ._title {
  font-size: 2rem;
}

/*
Track Listing

Used on album detail page
*/

.track-listing {
  font-size: 1.15rem;
  line-height: 1.2em;
  margin-bottom: 20px;
}

.track-listing td {
  border-bottom: 1px solid #e2e2e2;
  padding: 1em 0;
}

.track-listing ._track-number {
  color: #939598;
  display: block;
  height: 18px;
  margin-left: -4px;
  padding-left: 18px;
  padding-right: 10px;
  text-decoration: none;
  width: 36px;
}

.track-listing ._track-title {
  width: 100%;
}

.track-listing ._track-title a {
  text-decoration: none;
}

.track-listing ._track-title a:hover {
  color: #e2231a;
}

.track-listing ._track-links {
  font-size: 0.85em;
  padding-left: 10px;
}

.track-listing ._track-links a {
  color: #666;
  font-style: italic;
  text-decoration: underline;
}

.track-listing ._track-links a:hover {
  color: #e2231a;
}

.track-listing ._track-time {
  padding-left: 20px;
  padding-right: 15px;
  color: #939598;
}

.track-listing ._track:hover,
.track-listing ._track:hover ._track-title a,
.track-listing ._track:hover ._track-links a,
.track-listing ._track:hover ._track-time,
.track-listing ._track.-is-playing,
.track-listing ._track.-is-playing ._track-title a,
.track-listing ._track.-is-playing ._track-links a,
.track-listing ._track.-is-playing ._track-time,
.track-listing ._track.-is-active,
.track-listing ._track.-is-active ._track-title a,
.track-listing ._track.-is-active ._track-links a,
.track-listing ._track.-is-active ._track-time {
  color: #e2231a;
}

.track-listing ._track.-has-track:hover ._track-number,
.track-listing ._track.-is-loading ._track-number,
.track-listing ._track.-is-playing ._track-number {
  overflow: hidden;
  text-indent: 101%;
  white-space: nowrap;
  background-position: 50% 50%;
  background-repeat: no-repeat;
  background-size: 18px 18px;
}

.track-listing ._track.-has-track:hover ._track-number {
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjE1NjUuNTQzIDE2NjYuMTA5IDE4MS4zMDEgMTgxLjI5NyIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAxNTY1LjU0MyAxNjY2LjEwOSAxODEuMzAxIDE4MS4yOTciPjxnPjxwYXRoIGZpbGw9IiMyMzFGMjAiIGQ9Ik0xNjU2LjE5NCAxODQ3LjQwNWMtNDkuOTg2IDAtOTAuNjUtNDAuNjY1LTkwLjY1LTkwLjY0NiAwLTQ5Ljk4NyA0MC42NjUtOTAuNjUgOTAuNjUtOTAuNjUgNDkuOTg2IDAgOTAuNjUgNDAuNjY0IDkwLjY1IDkwLjY1IDAgNDkuOTgtNDAuNjY1IDkwLjY0NS05MC42NSA5MC42NDV6bTAtMTcyLjc5Yy00NS4yOTYgMC04Mi4xNDQgMzYuODQ3LTgyLjE0NCA4Mi4xNDQgMCA0NS4yOSAzNi44NDcgODIuMTQgODIuMTQ0IDgyLjE0czgyLjE0NC0zNi44NSA4Mi4xNDQtODIuMTRjMC00NS4yOTctMzYuODQ4LTgyLjE0NS04Mi4xNDQtODIuMTQ1ek0xNjk0LjE5OCAxNzUzLjAwNmMzLjA3IDIuMDYzIDMuMDcgNS40NCAwIDcuNTAybC01My42NyAzNi4wN2MtMy4wNyAyLjA2Mi01LjU4Mi43MjQtNS41ODItMi45NzV2LTczLjY5NmMwLTMuNyAyLjUxMi01LjAzNyA1LjU4LTIuOTc0bDUzLjY3MiAzNi4wNzN6Ii8+PC9nPjwvc3ZnPg==);
}

.track-listing ._track.-is-loading ._track-number,
.track-listing ._track.-is-loading:hover ._track-number {
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMiAzMiIgd2lkdGg9IjMyIiBoZWlnaHQ9IjMyIj48cGF0aCBvcGFjaXR5PSIuMjUiIGQ9Ik0xNiAwYTE2IDE2IDAgMCAwIDAgMzIgMTYgMTYgMCAwIDAgMC0zMm0wIDRhMTIgMTIgMCAwIDEgMCAyNCAxMiAxMiAwIDAgMSAwLTI0Ii8+PHBhdGggZD0iTTE2IDBhMTYgMTYgMCAwIDEgMTYgMTZoLTRBMTIgMTIgMCAwIDAgMTYgNHoiPjxhbmltYXRlVHJhbnNmb3JtIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0icm90YXRlIiBmcm9tPSIwIDE2IDE2IiB0bz0iMzYwIDE2IDE2IiBkdXI9IjAuOHMiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIi8+PC9wYXRoPjwvc3ZnPg==);
}

.track-listing ._track.-is-playing ._track-number,
.track-listing ._track.-is-playing:hover ._track-number {
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMTggMTgiPjxwYXRoIGZpbGw9IiMyMzFGMjAiIGQ9Ik01LjggNWgydjhoLTJ6TTEwLjIgNWgydjhoLTJ6TTkgMThjLTUgMC05LTQtOS05czQtOSA5LTkgOSA0IDkgOS00IDktOSA5ek05IC45QzQuNS45LjkgNC41LjkgOXMzLjcgOC4xIDguMSA4LjFjNC41IDAgOC4xLTMuNyA4LjEtOC4xUzEzLjUuOSA5IC45eiIvPjwvc3ZnPg==);
}

.track-listing ._track.-disabled,
.track-listing ._track.-disabled ._track-number,
.track-listing ._track.-disabled,
.track-listing ._track.-disabled ._track-number {
  pointer-events: none;
}

@media (min-width: 994px) {
  .track-listing {
    font-size: 1rem;
  }

  .track-listing td {
    padding: 0.75em 0;
  }

  .track-listing ._track-number {
    margin-left: -18px;
    padding-left: 18px;
  }
}

/**
 * A list used for contacts or band members where there's a title (e.g. "Lead Guitar") 
 * and a value (e.g. "Brett Gurewitz")
 */

.titled-list {
  font-size: 1.15rem;
}

.titled-list li {
  line-height: 1.2rem;
}

.titled-list li + li {
  margin-top: 1.5rem;
}

.titled-list ._title,
.titled-list ._value {
  line-height: 1.2em;
}

.titled-list ._title {
  color: #af998b;
  font-size: 1.3rem;
  text-transform: uppercase;
}

.titled-list ._value a {
  text-decoration: none;
}

.titled-list ._value a:hover {
  color: #e2231a;
}

@media (min-width: 560px) {
  .titled-list {
    font-size: 1rem;
  }

  .titled-list ._title {
    font-size: 1.1rem;
  }

  .titled-list li + li {
    margin-top: 0.75rem;
  }
}

.subpage-loader {
  position: relative;
}

.subpage-loader.-is-loading .subpage {
  opacity: 0.5;
}

.subpage-loader .icon.-loading,
.subpage-loader .mobile-top-ui .-loading.hamburger,
.mobile-top-ui .subpage-loader .-loading.hamburger {
  left: 25px;
  position: absolute;
  top: 10px;
}

.artists-list {
  background-color: #fff;
  font-size: 1.5rem;
  padding: 0 20px;
  text-transform: uppercase;
}

.artists-list ._artist-section {
  padding: 10px 0;
}

.artists-list ._artist-section + ._artist-section {
  border-top: 1px solid #d1d3d4;
}

.artists-list ol {
  list-style-type: none;
  margin: 0;
  padding: 0;
}

.artists-list a {
  display: block;
  padding: 10px 0;
  text-decoration: none;
}

.artists-list a {
  transition: color 150ms cubic-bezier(0.645, 0.045, 0.355, 1);
}

.artists-list a:hover {
  color: #e2231a;
}

.artists-list.-alumni a {
  color: #939598;
}

@media (min-width: 994px) {
  .artists-list {
    font-size: 1.15rem;
  }

  .artists-list a {
    padding: 5px 0;
  }
}

.layout-subpage.-photo ._subpage-content img,
.layout-subpage.-logo ._subpage-content img {
  display: block;
  margin: 0 auto;
  width: 100%;
}

@media (min-width: 994px) {
  .layout-subpage.-photo ._subpage-content img,
  .layout-subpage.-logo ._subpage-content img {
    width: auto;
  }
}

.layout-subpage.-contact .titled-list {
  padding-bottom: 1.71569%;
}

.layout-subpage.-contact .titled-list::after {
  clear: both;
  content: "";
  display: table;
}

@media (min-width: 560px) {
  .layout-subpage.-contact .titled-list {
    margin-left: -1.71569%;
    margin-right: -1.71569%;
  }

  .layout-subpage.-contact .titled-list li {
    width: 50%;
    float: left;
    padding-left: 1.71569%;
    padding-right: 1.71569%;
  }

  .layout-subpage.-contact .titled-list li:nth-child(2n+1) {
    clear: left;
  }

  .layout-subpage.-contact .titled-list li:nth-child(3n+1) {
    clear: none;
  }
}

@media (min-width: 994px) {
  .layout-subpage.-contact .titled-list li {
    width: 33.33333%;
    float: left;
    padding-left: 1.71569%;
    padding-right: 1.71569%;
  }

  .layout-subpage.-contact .titled-list li:nth-child(2n+1) {
    clear: none;
  }

  .layout-subpage.-contact .titled-list li:nth-child(3n+1) {
    clear: left;
  }
}

.layout-album-detail ._headline {
  font-size: 1.5rem;
  line-height: 1.3em;
  margin: 0 0 0.15em 0;
  text-transform: uppercase;
}

.layout-album-detail .column-2 {
  padding-left: 0;
  padding-right: 0;
}

.layout-album-detail ._release-header,
.layout-album-detail ._release-description {
  padding-left: 1.71569%;
  padding-right: 1.71569%;
}

.layout-album-detail ._meta {
  line-height: 1.75em;
  padding: 1.71569% 0;
}

.layout-album-detail ._copyright {
  border-top: 1px solid #D1D3D4;
  margin-top: 16px;
  padding-top: 8px;
}

.layout-album-detail ._copyright p {
  margin: 1em 0;
}

.layout-album-detail ._release-header {
  border-bottom: 1px solid #D1D3D4;
  padding-bottom: 10px;
  margin-bottom: 20px;
}

.layout-album-detail ._release-title,
.layout-album-detail ._artist-name {
  color: #231f20;
  text-transform: uppercase;
}

.layout-album-detail ._release-title {
  font-size: 2.85rem;
}

.layout-album-detail ._artist-name {
  font-size: 2.3rem;
}

.layout-album-detail ._release-description {
  padding-right: 1.71569%;
}

.layout-album-detail ._release-description::after {
  clear: both;
  content: "";
  display: table;
}

.layout-album-detail ._share-links {
  float: right;
  margin-right: -4px;
}

.layout-album-detail ._share-links li {
  float: left;
}

.layout-album-detail ._share-links a {
  opacity: 0.35;
  padding: 8px;
}

.layout-album-detail ._share-links a {
  transition: opacity 150ms cubic-bezier(0.645, 0.045, 0.355, 1);
}

.layout-album-detail ._share-links a:hover {
  opacity: 1;
}

@media (min-width: 994px) {
  .layout-album-detail .column-2 {
    padding-left: 1.71569%;
  }

  .layout-album-detail ._release-header,
  .layout-album-detail ._release-description {
    padding-left: 0;
    padding-right: 24px;
  }

  .layout-album-detail ._meta {
    padding: 16px 8px;
  }
}

.other-releases {
  background-color: #fff;
}

.other-releases::after {
  clear: both;
  content: "";
  display: table;
}

.other-releases ._head {
  border-bottom: 1px solid #D1D3D4;
  padding: 8px 1.71569%;
  text-transform: uppercase;
}

.other-releases ._release {
  width: 50%;
  float: left;
  padding-left: 1.71569%;
  padding-right: 1.71569%;
  line-height: 1.3em;
  padding-bottom: 14px;
  text-decoration: none;
}

.other-releases ._release:nth-child(2n+1) {
  clear: left;
}

@media (min-width: 560px) {
  .other-releases ._release {
    width: 25%;
    float: left;
    padding-left: 1.71569%;
    padding-right: 1.71569%;
  }

  .other-releases ._release:nth-child(2n+1) {
    clear: none;
  }

  .other-releases ._release:nth-child(4n+1) {
    clear: left;
  }
}

@media (min-width: 994px) {
  .other-releases ._release {
    width: 16.66667%;
    float: left;
    padding-left: 1.71569%;
    padding-right: 1.71569%;
  }

  .other-releases ._release:nth-child(4n+1) {
    clear: none;
  }

  .other-releases ._release:nth-child(6n+1) {
    clear: left;
  }
}

.other-releases ._release:hover ._title {
  color: #e2231a;
}

.other-releases ._list {
  padding: 1.71569% 0 0;
}

.other-releases ._list::after {
  clear: both;
  content: "";
  display: table;
}

.other-releases ._cover {
  margin-bottom: 6px;
}

.other-releases ._cover img {
  display: block;
  width: 100%;
}

.other-releases ._title {
  color: #231f20;
  text-decoration: none;
}

.other-releases ._title {
  transition: color 150ms cubic-bezier(0.645, 0.045, 0.355, 1);
}

.other-releases ._release-date {
  text-decoration: none;
  color: #939598;
}

.layout-track-detail ._headline {
  font-size: 1.5rem;
  line-height: 1.3em;
  margin: 0.75em 0;
  text-transform: uppercase;
}

.layout-track-detail .column-2 {
  padding-left: 0;
}

.layout-track-detail ._track-header,
.layout-track-detail ._contributors,
.layout-track-detail ._lyrics {
  margin-left: 1.71569%;
}

.layout-track-detail ._meta {
  line-height: 1.75em;
  padding: 1.71569% 0;
}

.layout-track-detail .track-listing {
  border-top: 1px solid #D1D3D4;
  margin-top: 16px;
  padding-top: 16px;
}

.layout-track-detail .track-listing ._headline {
  margin-bottom: 12px;
}

.layout-track-detail ._track-header {
  border-bottom: 1px solid #D1D3D4;
}

.layout-track-detail ._track-header ._track-title,
.layout-track-detail ._track-header ._artist-and-album-name {
  color: #231f20;
  text-transform: uppercase;
}

.layout-track-detail ._track-header ._track-title {
  font-size: 2.85rem;
}

.layout-track-detail ._track-header ._artist-and-album-name {
  font-size: 2.3rem;
}

.layout-track-detail ._track-header ._nav {
  border-top: 1px solid #D1D3D4;
  padding: 20px 0;
  margin-top: 10px;
}

.layout-track-detail ._track-header ._nav::after {
  clear: both;
  content: "";
  display: table;
}

.layout-track-detail ._track-header ._back-to-album,
.layout-track-detail ._track-header ._next-track {
  color: #666;
  display: inline-block;
  text-transform: uppercase;
  text-decoration: none;
}

.layout-track-detail ._track-header ._back-to-album:hover,
.layout-track-detail ._track-header ._next-track:hover {
  color: #e2231a;
}

.layout-track-detail ._track-header ._back-to-album {
  float: left;
}

.layout-track-detail ._track-header ._next-track {
  float: right;
}

.layout-track-detail ._contributors {
  border-bottom: 1px solid #e2e2e2;
  padding-bottom: 15px;
}

.layout-track-detail ._contributors table {
  line-height: 1.2em;
  width: 100%;
}

.layout-track-detail ._contributors td {
  padding: 5px 0;
  vertical-align: top;
}

.layout-track-detail ._contributors ._contributions {
  color: #939598;
  padding-right: 10px;
  width: 25%;
}

.layout-track-detail ._contributors ._contributor-name {
  width: 75%;
}

.layout-track-detail ._lyrics {
  padding-right: 1.71569%;
  padding-top: 25px;
}

.layout-track-detail ._lyrics::after {
  clear: both;
  content: "";
  display: table;
}

@media (min-width: 994px) {
  .layout-track-detail .column-2 {
    padding-left: 1.71569%;
  }

  .layout-track-detail ._track-header,
  .layout-track-detail ._contributors,
  .layout-track-detail ._lyrics {
    padding-left: 0;
  }

  .layout-track-detail ._meta {
    padding: 16px 8px;
  }
}

.releases-list {
  clear: both;
  width: 100%;
  float: left;
  padding-left: 1.71569%;
  padding-right: 1.71569%;
}

.releases-list ol ._release:first-child {
  padding-top: 0;
}

.releases-list ol ._release:last-child {
  padding-bottom: 0;
}

.releases-list ._release {
  padding: 12px 0;
}

.releases-list ._release::after {
  clear: both;
  content: "";
  display: table;
}

.releases-list ._release + ._release {
  border-top: 1px solid #e2e2e2;
}

.releases-list ._title {
  font-size: 2rem;
  margin-bottom: 5px;
  margin-top: 5px;
}

.releases-list ._title,
.releases-list ._artist {
  text-transform: uppercase;
}

.releases-list ._title,
.releases-list ._title a,
.releases-list ._artist,
.releases-list ._artist a {
  color: #231f20;
  text-decoration: none;
}

.releases-list ._title a:hover,
.releases-list ._artist a:hover {
  color: #e2231a;
}

.releases-list ._artist,
.releases-list ._release-date {
  margin-bottom: 7px;
  margin-top: 7px;
}

.releases-list ._release-date {
  display: block;
}

.releases-list ._purchase {
  margin-top: 12px;
}

.releases-list ._purchase-button {
  background-color: #e2e2e2;
  color: #666;
  display: block;
  font-size: 1.15rem;
  padding: 8px;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
  transition-property: color, background-color;
  transition-duration: 150ms;
  transition-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1);
}

.releases-list ._purchase-button:hover {
  background-color: #231f20;
  color: #fff;
}

.releases-list ._purchase-button.-preorder {
  background-color: #af998b;
  color: #fff;
}

.releases-list ._purchase-button.-preorder:hover {
  background-color: #8d7261;
  color: #fff;
}

@media (min-width: 560px) {
  .releases-list ._title {
    width: 41.66667%;
    float: left;
    padding-left: 1.71569%;
    padding-right: 1.71569%;
    font-size: 1.3rem;
    padding-left: 0;
  }

  .releases-list ._artist {
    width: 25%;
    float: left;
    padding-left: 1.71569%;
    padding-right: 1.71569%;
  }

  .releases-list ._release-date {
    width: 16.66667%;
    float: left;
    padding-left: 1.71569%;
    padding-right: 1.71569%;
  }

  .releases-list ._purchase {
    width: 16.66667%;
    float: left;
    padding-left: 1.71569%;
    padding-right: 1.71569%;
    margin-top: 0;
    padding-right: 0;
  }
}

.layout-tours .empty-head {
  padding-left: 0;
}

.tours-map {
  background-color: #ff6648;
  margin-bottom: 24px;
  text-transform: uppercase;
}

.tours-map,
.tours-map a {
  color: #fff;
}

.tours-map ._map-wrapper {
  padding: 5px;
}

.tours-map ._map {
  background-color: #fff;
  height: 320px;
  width: 100%;
}

.tours-map ._nav-wrapper {
  padding-bottom: 5px;
}

.tours-map ._nav-wrapper::after {
  clear: both;
  content: "";
  display: table;
}

.tours-map ._date-nav,
.tours-map ._view-nav {
  clear: both;
  width: 100%;
  float: left;
  padding-left: 1.71569%;
  padding-right: 1.71569%;
  font-size: 1.3rem;
  text-align: center;
}

.tours-map ._date-nav ._date-range,
.tours-map ._date-nav a,
.tours-map ._view-nav ._head,
.tours-map ._view-nav a {
  padding: 10px;
}

.tours-map ._date-nav {
  padding-left: 4px;
}

.tours-map ._date-nav ._prev-button,
.tours-map ._date-nav ._date-range,
.tours-map ._date-nav ._next-button {
  display: inline-block;
}

.tours-map ._view-nav ._head,
.tours-map ._view-nav ._view-options,
.tours-map ._view-nav li {
  display: inline-block;
}

.tours-map ._view-nav ._view-options li {
  border-left: 1px solid #fff;
}

.tours-map ._view-nav ._view-options li:first-child {
  border-left: none;
}

.tours-map ._view-nav ._head {
  padding-right: 0;
}

.tours-map ._view-nav a {
  text-decoration: none;
}

.tours-map ._view-nav .-selected a,
.tours-map ._view-nav a:hover {
  text-decoration: line-through;
}

@media (min-width: 560px) {
  .tours-map ._date-nav,
  .tours-map ._view-nav {
    width: 50%;
    float: left;
    padding-left: 1.71569%;
    padding-right: 1.71569%;
    clear: none;
    font-size: 1.15rem;
  }

  .tours-map ._date-nav ._date-range,
  .tours-map ._date-nav a,
  .tours-map ._view-nav ._head,
  .tours-map ._view-nav a {
    padding: 7px;
  }

  .tours-map ._date-nav {
    text-align: left;
  }

  .tours-map ._view-nav {
    text-align: right;
  }
}

@media (min-width: 994px) {
  .tours-map ._date-nav,
  .tours-map ._view-nav {
    font-size: 1rem;
  }
}

.tours-map-overlay {
  transition: opacity 300ms cubic-bezier(0.645, 0.045, 0.355, 1);
  margin-left: -61.5px;
  margin-top: 20px;
  opacity: 0;
  position: absolute;
  z-index: 500;
}

.tours-map-overlay.-showing {
  opacity: 1;
}

.tours-map-overlay ._overlay-inner {
  background-color: rgba(35, 31, 32, 0.95);
  color: #fff;
  line-height: 1.25em;
  padding: 12px;
  position: relative;
  width: 320px;
}

.tours-map-overlay ._overlay-inner:after {
  bottom: 100%;
  left: 45px;
  border: solid transparent;
  content: " ";
  height: 0;
  width: 0;
  position: absolute;
  pointer-events: none;
  border-color: transparent;
  border-bottom-color: rgba(35, 31, 32, 0.95);
  border-width: 15px;
}

.tours-map-overlay ._show-location {
  font-size: 1.3rem;
  margin-bottom: 1em;
  text-transform: uppercase;
}

.tours-map-overlay ._shows li {
  padding: 3px 0;
}

.tours-map-overlay ._shows li::after {
  clear: both;
  content: "";
  display: table;
}

.tours-map-overlay ._shows ._show-date {
  width: 16.66667%;
  float: left;
  padding-left: 1.71569%;
  padding-right: 1.71569%;
  padding-left: 0;
  text-transform: uppercase;
}

.tours-map-overlay ._shows ._artist-name {
  width: 41.66667%;
  float: left;
  padding-left: 1.71569%;
  padding-right: 1.71569%;
  text-transform: uppercase;
}

.tours-map-overlay ._shows ._show-venue {
  width: 41.66667%;
  float: left;
  padding-left: 1.71569%;
  padding-right: 1.71569%;
  padding-right: 0;
}

.tours-month-head {
  color: #bcbec0;
  font-size: 1.5rem;
  margin: 3.43137% 0;
  text-transform: uppercase;
}

.tours-list ._tour-day::after,
.tours-list ._shows-list::after,
.tours-list ._show::after {
  clear: both;
  content: "";
  display: table;
}

.tours-list ._tour-day {
  background-color: #fff;
  margin-bottom: 8px;
}

.tours-list ._tour-date-head {
  clear: both;
  width: 100%;
  float: left;
  padding-left: 1.71569%;
  padding-right: 1.71569%;
  border-bottom: 1px solid #e2e2e2;
  color: #af998b;
  font-size: 2.3rem;
  line-height: 0.9em;
  padding: 12px;
  text-transform: uppercase;
}

.tours-list ._tour-date-head sup {
  font-size: 0.6em;
}

.tours-list ._tour-day-shows {
  clear: left;
}

.tours-list ._show {
  line-height: 1.25em;
  padding: 3.43137% 12px;
}

.tours-list ._show:nth-child(even) {
  background-color: #f2f2f2;
}

.tours-list ._artist-name,
.tours-list ._show-city,
.tours-list ._show-venue,
.tours-list ._show-time,
.tours-list ._show-links a {
  padding-bottom: 1.71569%;
  padding-top: 1.71569%;
}

.tours-list ._artist-name {
  clear: both;
  width: 100%;
  float: left;
  padding-left: 1.71569%;
  padding-right: 1.71569%;
  float: none;
  font-size: 1.5rem;
  text-transform: uppercase;
}

.tours-list ._show-city,
.tours-list ._show-venue,
.tours-list ._show-time {
  width: 33.33333%;
  float: left;
  padding-left: 1.71569%;
  padding-right: 1.71569%;
}

.tours-list ._show-time {
  text-transform: uppercase;
}

.tours-list ._show-links {
  clear: both;
  font-size: 1.15em;
  display: block;
  padding: 1em 1.71569% 0;
  text-transform: uppercase;
}

.tours-list ._show-links li {
  display: inline;
}

.tours-list ._show-links li:first-child {
  margin-left: -10px;
}

.tours-list ._show-links li + li {
  border-left: 1px solid #e2e2e2;
}

.tours-list ._show-links a {
  line-height: 1em;
  padding-left: 10px;
  padding-right: 10px;
  text-decoration: none;
}

.tours-list ._show-links a:hover {
  color: #e2231a;
}

@media (min-width: 560px) {
  .tours-list ._tour-date-head {
    font-size: 1.85rem;
  }

  .tours-list ._tour-day-shows {
    clear: none;
  }

  .tours-list ._show {
    padding: 0;
  }

  .tours-list ._artist-name {
    width: 25%;
    float: left;
    padding-left: 1.71569%;
    padding-right: 1.71569%;
    font-size: 1.15rem;
  }

  .tours-list ._show-city,
  .tours-list ._show-venue {
    width: 16.66667%;
    float: left;
    padding-left: 1.71569%;
    padding-right: 1.71569%;
  }

  .tours-list ._show-time {
    width: 16.66667%;
    float: left;
    padding-left: 1.71569%;
    padding-right: 1.71569%;
  }

  .tours-list ._show-links {
    clear: none;
    padding: 0;
    text-align: right;
  }

  .tours-list ._show-rsvp {
    width: 8.33333%;
    float: left;
    padding-left: 1.71569%;
    padding-right: 1.71569%;
    text-align: center;
  }

  .tours-list ._show-tickets {
    width: 16.66667%;
    float: left;
    padding-left: 1.71569%;
    padding-right: 1.71569%;
    text-align: right;
  }
}

.tours-location-filter {
  background-color: #fff;
  margin-bottom: 24px;
  padding: 3.43137%;
  text-align: center;
}

.tours-location-filter ._head {
  font-size: 1.3rem;
  margin-bottom: 0.6em;
  text-transform: uppercase;
}

.tours-location-filter ._input {
  border: 1px solid #e2e2e2;
  border-radius: 0;
  color: #666;
  font-size: 1rem;
  line-height: 1em;
  padding: 0.75em;
  text-align: center;
  text-transform: uppercase;
  width: 100%;
  -webkit-appearance: none;
}

.tours-location-filter .-error {
  color: #e2231a;
  padding-top: 12px;
}

@media (min-width: 994px) {
  .tours-location-filter {
    padding: 6.86275%;
  }

  .column-1 .tours-location-filter {
    display: none;
  }
}

.box.-artists-filter ._details {
  font-size: 1.85rem;
  padding: 0;
  text-align: center;
  text-transform: uppercase;
}

.box.-artists-filter ._details li {
  border-top: 1px solid #e2e2e2;
}

.box.-artists-filter ._details li:first-child {
  border-top: none;
}

.box.-artists-filter ._details a {
  display: block;
  padding: 0.7em;
  text-decoration: none;
}

.box.-artists-filter ._details .-selected a,
.box.-artists-filter ._details a:hover {
  color: #e2231a;
}

.box.-artists-filter .-close .icon,
.box.-artists-filter .-close .mobile-top-ui .hamburger,
.mobile-top-ui .box.-artists-filter .-close .hamburger {
  background-size: 12px;
}

.tours-artists-filter {
  background-color: #666;
  color: #fff;
  display: block;
  font-size: 1.3rem;
  margin-bottom: 24px;
  padding: 12px;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
}

@media (min-width: 994px) {
  .tours-artists-filter {
    display: none;
  }
}

.js .layout-news .box.-news {
  transition: opacity 300ms cubic-bezier(0.645, 0.045, 0.355, 1);
  opacity: 0;
}

.js .layout-news .box.-news.-showing {
  opacity: 1;
}

@media (min-width: 560px) {
  .layout-news .box.-news {
    width: 50%;
    float: left;
    padding-left: 1.71569%;
    padding-right: 1.71569%;
    margin-bottom: 24px;
  }
}

@media (min-width: 994px) {
  .layout-news .box.-news {
    width: 33.33333%;
    float: left;
    padding-left: 1.71569%;
    padding-right: 1.71569%;
  }
}

.js .layout-news.-search .box.-news {
  opacity: 1;
}

.layout-news-article {
  margin-top: 24px;
}

.layout-contact .column-2,
.layout-faq .column-2 {
  clear: left;
  display: block;
}

@media (min-width: 994px) {
  .layout-contact .column-2,
  .layout-faq .column-2 {
    clear: none;
  }
}

.layout-faq .column-2 {
  display: none;
}

@media (min-width: 994px) {
  .layout-faq .column-2 {
    display: block;
  }
}

.layout-faq .content-box ._callout,
.layout-faq .releases-list ol ._callout,
.releases-list .layout-faq ol ._callout,
.layout-faq .mailing-list-form ._callout {
  border-bottom: 1px solid #e2e2e2;
  margin: 0 0 20px;
}

.faq-list ._subheader {
  margin-bottom: 0.5rem;
}

.faq-list p {
  margin: 0.5rem 0;
}

.faq-list > li {
  padding: 16px 0;
}

.faq-list > li:first-child {
  padding-top: 0;
}

.faq-list > li:last-child {
  padding-bottom: 0;
}

.faq-list > li + li {
  border-top: 1px solid #e2e2e2;
}

._about-image {
  display: block;
  width: 100%;
}

.page-search .box.-artist-search-result ._head a,
.page-search .box.-artist-search-result ._subhead a,
.page-search .box.-release ._head a,
.page-search .box.-release ._subhead a,
.page-search .box.-video ._head a,
.page-search .box.-video ._subhead a {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.mailing-list-wrapper {
  transition: height 300ms cubic-bezier(0.645, 0.045, 0.355, 1);
  clear: both;
  height: 0;
  overflow: hidden;
}

.mailing-list-wrapper.-open {
  height: auto;
}

.mailing-list-form {
  border: none;
  clear: both;
  padding: 2.5rem 0 0;
}

.mailing-list-form ._header {
  margin: 0;
  padding: 0 1.71569%;
}

.mailing-list-form ._header h3 {
  border-bottom: 1px solid #e2e2e2;
  padding-bottom: 15px;
}

.mailing-list-form ._header ._button {
  float: right;
  margin-top: 2px;
  opacity: 0.5;
}

.mailing-list-form ._header ._button .icon,
.mailing-list-form ._header ._button .mobile-top-ui .hamburger,
.mobile-top-ui .mailing-list-form ._header ._button .hamburger {
  background-size: 12px;
  height: 12px;
  width: 12px;
}

.mailing-list-form ._message {
  font-size: 1.5rem;
  margin: 1.5rem 1.71569%;
  text-transform: uppercase;
}

.-error .mailing-list-form ._message {
  color: #e2231a;
}

.mailing-list-form .standard-form {
  border: none;
  padding: 24px 1.71569%;
}

.mailing-list-form ._form-input {
  margin: 0 0 20px 0;
}

.mailing-list-form ._form-submit input {
  background-color: #ff6648;
  display: block;
  float: none;
  height: 42px;
  padding-left: 20px;
  padding-right: 20px;
  width: 100%;
}

.mailing-list-form ._form-submit ._help {
  display: block;
  margin: 1em 0;
  text-align: center;
}

.mailing-list-form .-sending {
  opacity: 0.3;
}

.mailing-list-form ._postal-code-input {
  transition: opacity 150ms cubic-bezier(0.645, 0.045, 0.355, 1);
  opacity: 1;
}

.mailing-list-form ._postal-code-input.-hide {
  opacity: 0;
}

@media (min-width: 560px) {
  .mailing-list-form .standard-form {
    padding: 24px 0;
  }

  .mailing-list-form ._field-group {
    width: 50%;
    float: left;
    padding-left: 1.71569%;
    padding-right: 1.71569%;
  }

  .mailing-list-form ._form-submit {
    padding-top: 21px;
  }

  .mailing-list-form ._form-submit::after {
    clear: both;
    content: "";
    display: table;
  }

  .mailing-list-form ._form-submit input {
    float: left;
    width: auto;
  }

  .mailing-list-form ._form-submit ._help {
    float: right;
    line-height: 42px;
    margin: 0;
    text-align: right;
  }
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL2NpcmNsZWNpL2FwcC9lcGl0YXBoL3N0YXRpYy9zY3NzL2VwaXRhcGguc2NzcyIsIi9ob21lL2NpcmNsZWNpL2FwcC9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL19ib3VyYm9uLnNjc3MiLCIvaG9tZS9jaXJjbGVjaS9hcHAvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9zZXR0aW5ncy9fZGVwcmVjYXRpb24td2FybmluZ3Muc2NzcyIsIi9ob21lL2NpcmNsZWNpL2FwcC9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL3NldHRpbmdzL19wcmVmaXhlci5zY3NzIiwiL2hvbWUvY2lyY2xlY2kvYXBwL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvc2V0dGluZ3MvX3B4LXRvLWVtLnNjc3MiLCIvaG9tZS9jaXJjbGVjaS9hcHAvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9zZXR0aW5ncy9fYXNzZXQtcGlwZWxpbmUuc2NzcyIsIi9ob21lL2NpcmNsZWNpL2FwcC9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL19ib3VyYm9uLWRlcHJlY2F0ZS5zY3NzIiwiL2hvbWUvY2lyY2xlY2kvYXBwL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19hc3NpZ24taW5wdXRzLnNjc3MiLCIvaG9tZS9jaXJjbGVjaS9hcHAvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX2NvbnRhaW5zLnNjc3MiLCIvaG9tZS9jaXJjbGVjaS9hcHAvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX2NvbnRhaW5zLWZhbHN5LnNjc3MiLCIvaG9tZS9jaXJjbGVjaS9hcHAvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX2lzLWxlbmd0aC5zY3NzIiwiL2hvbWUvY2lyY2xlY2kvYXBwL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19pcy1saWdodC5zY3NzIiwiL2hvbWUvY2lyY2xlY2kvYXBwL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19pcy1udW1iZXIuc2NzcyIsIi9ob21lL2NpcmNsZWNpL2FwcC9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9faXMtc2l6ZS5zY3NzIiwiL2hvbWUvY2lyY2xlY2kvYXBwL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19weC10by1lbS5zY3NzIiwiL2hvbWUvY2lyY2xlY2kvYXBwL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19weC10by1yZW0uc2NzcyIsIi9ob21lL2NpcmNsZWNpL2FwcC9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fc2hhZGUuc2NzcyIsIi9ob21lL2NpcmNsZWNpL2FwcC9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fc3RyaXAtdW5pdHMuc2NzcyIsIi9ob21lL2NpcmNsZWNpL2FwcC9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fdGludC5zY3NzIiwiL2hvbWUvY2lyY2xlY2kvYXBwL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL190cmFuc2l0aW9uLXByb3BlcnR5LW5hbWUuc2NzcyIsIi9ob21lL2NpcmNsZWNpL2FwcC9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fdW5wYWNrLnNjc3MiLCIvaG9tZS9jaXJjbGVjaS9hcHAvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX21vZHVsYXItc2NhbGUuc2NzcyIsIi9ob21lL2NpcmNsZWNpL2FwcC9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX2NvbnZlcnQtdW5pdHMuc2NzcyIsIi9ob21lL2NpcmNsZWNpL2FwcC9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX2RpcmVjdGlvbmFsLXZhbHVlcy5zY3NzIiwiL2hvbWUvY2lyY2xlY2kvYXBwL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fZm9udC1zb3VyY2UtZGVjbGFyYXRpb24uc2NzcyIsIi9ob21lL2NpcmNsZWNpL2FwcC9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX2dyYWRpZW50LXBvc2l0aW9ucy1wYXJzZXIuc2NzcyIsIi9ob21lL2NpcmNsZWNpL2FwcC9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX2xpbmVhci1hbmdsZS1wYXJzZXIuc2NzcyIsIi9ob21lL2NpcmNsZWNpL2FwcC9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX2xpbmVhci1ncmFkaWVudC1wYXJzZXIuc2NzcyIsIi9ob21lL2NpcmNsZWNpL2FwcC9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyLnNjc3MiLCIvaG9tZS9jaXJjbGVjaS9hcHAvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19saW5lYXItc2lkZS1jb3JuZXItcGFyc2VyLnNjc3MiLCIvaG9tZS9jaXJjbGVjaS9hcHAvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19yYWRpYWwtYXJnLXBhcnNlci5zY3NzIiwiL2hvbWUvY2lyY2xlY2kvYXBwL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fcmFkaWFsLXBvc2l0aW9ucy1wYXJzZXIuc2NzcyIsIi9ob21lL2NpcmNsZWNpL2FwcC9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIuc2NzcyIsIi9ob21lL2NpcmNsZWNpL2FwcC9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX3JlbmRlci1ncmFkaWVudHMuc2NzcyIsIi9ob21lL2NpcmNsZWNpL2FwcC9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX3NoYXBlLXNpemUtc3RyaXBwZXIuc2NzcyIsIi9ob21lL2NpcmNsZWNpL2FwcC9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX3N0ci10by1udW0uc2NzcyIsIi9ob21lL2NpcmNsZWNpL2FwcC9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2FuaW1hdGlvbi5zY3NzIiwiL2hvbWUvY2lyY2xlY2kvYXBwL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fYXBwZWFyYW5jZS5zY3NzIiwiL2hvbWUvY2lyY2xlY2kvYXBwL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fYmFja2ZhY2UtdmlzaWJpbGl0eS5zY3NzIiwiL2hvbWUvY2lyY2xlY2kvYXBwL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fYmFja2dyb3VuZC5zY3NzIiwiL2hvbWUvY2lyY2xlY2kvYXBwL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fYmFja2dyb3VuZC1pbWFnZS5zY3NzIiwiL2hvbWUvY2lyY2xlY2kvYXBwL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fYm9yZGVyLWltYWdlLnNjc3MiLCIvaG9tZS9jaXJjbGVjaS9hcHAvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19jYWxjLnNjc3MiLCIvaG9tZS9jaXJjbGVjaS9hcHAvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19jb2x1bW5zLnNjc3MiLCIvaG9tZS9jaXJjbGVjaS9hcHAvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19maWx0ZXIuc2NzcyIsIi9ob21lL2NpcmNsZWNpL2FwcC9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2ZsZXgtYm94LnNjc3MiLCIvaG9tZS9jaXJjbGVjaS9hcHAvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19mb250LWZhY2Uuc2NzcyIsIi9ob21lL2NpcmNsZWNpL2FwcC9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2ZvbnQtZmVhdHVyZS1zZXR0aW5ncy5zY3NzIiwiL2hvbWUvY2lyY2xlY2kvYXBwL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9faGlkcGktbWVkaWEtcXVlcnkuc2NzcyIsIi9ob21lL2NpcmNsZWNpL2FwcC9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2h5cGhlbnMuc2NzcyIsIi9ob21lL2NpcmNsZWNpL2FwcC9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2ltYWdlLXJlbmRlcmluZy5zY3NzIiwiL2hvbWUvY2lyY2xlY2kvYXBwL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fa2V5ZnJhbWVzLnNjc3MiLCIvaG9tZS9jaXJjbGVjaS9hcHAvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19saW5lYXItZ3JhZGllbnQuc2NzcyIsIi9ob21lL2NpcmNsZWNpL2FwcC9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX3BlcnNwZWN0aXZlLnNjc3MiLCIvaG9tZS9jaXJjbGVjaS9hcHAvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19wbGFjZWhvbGRlci5zY3NzIiwiL2hvbWUvY2lyY2xlY2kvYXBwL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fcmFkaWFsLWdyYWRpZW50LnNjc3MiLCIvaG9tZS9jaXJjbGVjaS9hcHAvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19zZWxlY3Rpb24uc2NzcyIsIi9ob21lL2NpcmNsZWNpL2FwcC9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX3RleHQtZGVjb3JhdGlvbi5zY3NzIiwiL2hvbWUvY2lyY2xlY2kvYXBwL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fdHJhbnNmb3JtLnNjc3MiLCIvaG9tZS9jaXJjbGVjaS9hcHAvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL190cmFuc2l0aW9uLnNjc3MiLCIvaG9tZS9jaXJjbGVjaS9hcHAvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL191c2VyLXNlbGVjdC5zY3NzIiwiL2hvbWUvY2lyY2xlY2kvYXBwL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19ib3JkZXItY29sb3Iuc2NzcyIsIi9ob21lL2NpcmNsZWNpL2FwcC9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fYm9yZGVyLXJhZGl1cy5zY3NzIiwiL2hvbWUvY2lyY2xlY2kvYXBwL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19ib3JkZXItc3R5bGUuc2NzcyIsIi9ob21lL2NpcmNsZWNpL2FwcC9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fYm9yZGVyLXdpZHRoLnNjc3MiLCIvaG9tZS9jaXJjbGVjaS9hcHAvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2J1dHRvbnMuc2NzcyIsIi9ob21lL2NpcmNsZWNpL2FwcC9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fY2xlYXJmaXguc2NzcyIsIi9ob21lL2NpcmNsZWNpL2FwcC9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fZWxsaXBzaXMuc2NzcyIsIi9ob21lL2NpcmNsZWNpL2FwcC9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fZm9udC1zdGFja3Muc2NzcyIsIi9ob21lL2NpcmNsZWNpL2FwcC9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9faGlkZS10ZXh0LnNjc3MiLCIvaG9tZS9jaXJjbGVjaS9hcHAvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX21hcmdpbi5zY3NzIiwiL2hvbWUvY2lyY2xlY2kvYXBwL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19wYWRkaW5nLnNjc3MiLCIvaG9tZS9jaXJjbGVjaS9hcHAvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3Bvc2l0aW9uLnNjc3MiLCIvaG9tZS9jaXJjbGVjaS9hcHAvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3ByZWZpeGVyLnNjc3MiLCIvaG9tZS9jaXJjbGVjaS9hcHAvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3JldGluYS1pbWFnZS5zY3NzIiwiL2hvbWUvY2lyY2xlY2kvYXBwL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19zaXplLnNjc3MiLCIvaG9tZS9jaXJjbGVjaS9hcHAvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3RleHQtaW5wdXRzLnNjc3MiLCIvaG9tZS9jaXJjbGVjaS9hcHAvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3RpbWluZy1mdW5jdGlvbnMuc2NzcyIsIi9ob21lL2NpcmNsZWNpL2FwcC9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fdHJpYW5nbGUuc2NzcyIsIi9ob21lL2NpcmNsZWNpL2FwcC9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fd29yZC13cmFwLnNjc3MiLCIvaG9tZS9jaXJjbGVjaS9hcHAvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9fYm91cmJvbi1kZXByZWNhdGVkLXVwY29taW5nLnNjc3MiLCIvaG9tZS9jaXJjbGVjaS9hcHAvbm9kZV9tb2R1bGVzL3N1c3kvc2Fzcy9fc3VzeS5zY3NzIiwiL2hvbWUvY2lyY2xlY2kvYXBwL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9sYW5ndWFnZS9fc3VzeS5zY3NzIiwiL2hvbWUvY2lyY2xlY2kvYXBwL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9fc3Uuc2NzcyIsIi9ob21lL2NpcmNsZWNpL2FwcC9ub2RlX21vZHVsZXMvc3VzeS9zYXNzL3N1c3kvc3UvX3V0aWxpdGllcy5zY3NzIiwiL2hvbWUvY2lyY2xlY2kvYXBwL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9zdS9fc2V0dGluZ3Muc2NzcyIsIi9ob21lL2NpcmNsZWNpL2FwcC9ub2RlX21vZHVsZXMvc3VzeS9zYXNzL3N1c3kvc3UvX3ZhbGlkYXRpb24uc2NzcyIsIi9ob21lL2NpcmNsZWNpL2FwcC9ub2RlX21vZHVsZXMvc3VzeS9zYXNzL3N1c3kvc3UvX2dyaWQuc2NzcyIsIi9ob21lL2NpcmNsZWNpL2FwcC9ub2RlX21vZHVsZXMvc3VzeS9zYXNzL3N1c3kvb3V0cHV0L19mbG9hdC5zY3NzIiwiL2hvbWUvY2lyY2xlY2kvYXBwL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9vdXRwdXQvX3NoYXJlZC5zY3NzIiwiL2hvbWUvY2lyY2xlY2kvYXBwL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9vdXRwdXQvX3N1cHBvcnQuc2NzcyIsIi9ob21lL2NpcmNsZWNpL2FwcC9ub2RlX21vZHVsZXMvc3VzeS9zYXNzL3N1c3kvb3V0cHV0L3N1cHBvcnQvX3N1cHBvcnQuc2NzcyIsIi9ob21lL2NpcmNsZWNpL2FwcC9ub2RlX21vZHVsZXMvc3VzeS9zYXNzL3N1c3kvb3V0cHV0L3N1cHBvcnQvX3ByZWZpeC5zY3NzIiwiL2hvbWUvY2lyY2xlY2kvYXBwL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9vdXRwdXQvc3VwcG9ydC9fYmFja2dyb3VuZC5zY3NzIiwiL2hvbWUvY2lyY2xlY2kvYXBwL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9vdXRwdXQvc3VwcG9ydC9fYm94LXNpemluZy5zY3NzIiwiL2hvbWUvY2lyY2xlY2kvYXBwL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9vdXRwdXQvc3VwcG9ydC9fcmVtLnNjc3MiLCIvaG9tZS9jaXJjbGVjaS9hcHAvbm9kZV9tb2R1bGVzL3N1c3kvc2Fzcy9zdXN5L291dHB1dC9zdXBwb3J0L19jbGVhcmZpeC5zY3NzIiwiL2hvbWUvY2lyY2xlY2kvYXBwL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9vdXRwdXQvc2hhcmVkL19pbnNwZWN0LnNjc3MiLCIvaG9tZS9jaXJjbGVjaS9hcHAvbm9kZV9tb2R1bGVzL3N1c3kvc2Fzcy9zdXN5L291dHB1dC9zaGFyZWQvX291dHB1dC5zY3NzIiwiL2hvbWUvY2lyY2xlY2kvYXBwL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9vdXRwdXQvc2hhcmVkL19kaXJlY3Rpb24uc2NzcyIsIi9ob21lL2NpcmNsZWNpL2FwcC9ub2RlX21vZHVsZXMvc3VzeS9zYXNzL3N1c3kvb3V0cHV0L3NoYXJlZC9fYmFja2dyb3VuZC5zY3NzIiwiL2hvbWUvY2lyY2xlY2kvYXBwL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9vdXRwdXQvc2hhcmVkL19jb250YWluZXIuc2NzcyIsIi9ob21lL2NpcmNsZWNpL2FwcC9ub2RlX21vZHVsZXMvc3VzeS9zYXNzL3N1c3kvb3V0cHV0L3NoYXJlZC9fbWFyZ2lucy5zY3NzIiwiL2hvbWUvY2lyY2xlY2kvYXBwL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9vdXRwdXQvc2hhcmVkL19wYWRkaW5nLnNjc3MiLCIvaG9tZS9jaXJjbGVjaS9hcHAvbm9kZV9tb2R1bGVzL3N1c3kvc2Fzcy9zdXN5L291dHB1dC9mbG9hdC9fY29udGFpbmVyLnNjc3MiLCIvaG9tZS9jaXJjbGVjaS9hcHAvbm9kZV9tb2R1bGVzL3N1c3kvc2Fzcy9zdXN5L291dHB1dC9mbG9hdC9fc3Bhbi5zY3NzIiwiL2hvbWUvY2lyY2xlY2kvYXBwL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9vdXRwdXQvZmxvYXQvX2VuZC5zY3NzIiwiL2hvbWUvY2lyY2xlY2kvYXBwL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9vdXRwdXQvZmxvYXQvX2lzb2xhdGUuc2NzcyIsIi9ob21lL2NpcmNsZWNpL2FwcC9ub2RlX21vZHVsZXMvc3VzeS9zYXNzL3N1c3kvbGFuZ3VhZ2Uvc3VzeS9fc2V0dGluZ3Muc2NzcyIsIi9ob21lL2NpcmNsZWNpL2FwcC9ub2RlX21vZHVsZXMvc3VzeS9zYXNzL3N1c3kvbGFuZ3VhZ2Uvc3VzeS9fdmFsaWRhdGlvbi5zY3NzIiwiL2hvbWUvY2lyY2xlY2kvYXBwL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9sYW5ndWFnZS9zdXN5L19ncmlkcy5zY3NzIiwiL2hvbWUvY2lyY2xlY2kvYXBwL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9sYW5ndWFnZS9zdXN5L19ib3gtc2l6aW5nLnNjc3MiLCIvaG9tZS9jaXJjbGVjaS9hcHAvbm9kZV9tb2R1bGVzL3N1c3kvc2Fzcy9zdXN5L2xhbmd1YWdlL3N1c3kvX2NvbnRleHQuc2NzcyIsIi9ob21lL2NpcmNsZWNpL2FwcC9ub2RlX21vZHVsZXMvc3VzeS9zYXNzL3N1c3kvbGFuZ3VhZ2Uvc3VzeS9fYmFja2dyb3VuZC5zY3NzIiwiL2hvbWUvY2lyY2xlY2kvYXBwL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9sYW5ndWFnZS9zdXN5L19jb250YWluZXIuc2NzcyIsIi9ob21lL2NpcmNsZWNpL2FwcC9ub2RlX21vZHVsZXMvc3VzeS9zYXNzL3N1c3kvbGFuZ3VhZ2Uvc3VzeS9fc3Bhbi5zY3NzIiwiL2hvbWUvY2lyY2xlY2kvYXBwL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9sYW5ndWFnZS9zdXN5L19ndXR0ZXJzLnNjc3MiLCIvaG9tZS9jaXJjbGVjaS9hcHAvbm9kZV9tb2R1bGVzL3N1c3kvc2Fzcy9zdXN5L2xhbmd1YWdlL3N1c3kvX2lzb2xhdGUuc2NzcyIsIi9ob21lL2NpcmNsZWNpL2FwcC9ub2RlX21vZHVsZXMvc3VzeS9zYXNzL3N1c3kvbGFuZ3VhZ2Uvc3VzeS9fZ2FsbGVyeS5zY3NzIiwiL2hvbWUvY2lyY2xlY2kvYXBwL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9sYW5ndWFnZS9zdXN5L19yb3dzLnNjc3MiLCIvaG9tZS9jaXJjbGVjaS9hcHAvbm9kZV9tb2R1bGVzL3N1c3kvc2Fzcy9zdXN5L2xhbmd1YWdlL3N1c3kvX21hcmdpbnMuc2NzcyIsIi9ob21lL2NpcmNsZWNpL2FwcC9ub2RlX21vZHVsZXMvc3VzeS9zYXNzL3N1c3kvbGFuZ3VhZ2Uvc3VzeS9fcGFkZGluZy5zY3NzIiwiL2hvbWUvY2lyY2xlY2kvYXBwL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9sYW5ndWFnZS9zdXN5L19ibGVlZC5zY3NzIiwiL2hvbWUvY2lyY2xlY2kvYXBwL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9sYW5ndWFnZS9zdXN5L19icmVha3BvaW50LXBsdWdpbi5zY3NzIiwiL2hvbWUvY2lyY2xlY2kvYXBwL25vZGVfbW9kdWxlcy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvX2JyZWFrcG9pbnQuc2NzcyIsIi9ob21lL2NpcmNsZWNpL2FwcC9ub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvX3NldHRpbmdzLnNjc3MiLCIvaG9tZS9jaXJjbGVjaS9hcHAvbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L19jb250ZXh0LnNjc3MiLCIvaG9tZS9jaXJjbGVjaS9hcHAvbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L19oZWxwZXJzLnNjc3MiLCIvaG9tZS9jaXJjbGVjaS9hcHAvbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L19wYXJzZXJzLnNjc3MiLCIvaG9tZS9jaXJjbGVjaS9hcHAvbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L3BhcnNlcnMvX3F1ZXJ5LnNjc3MiLCIvaG9tZS9jaXJjbGVjaS9hcHAvbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L3BhcnNlcnMvX3NpbmdsZS5zY3NzIiwiL2hvbWUvY2lyY2xlY2kvYXBwL25vZGVfbW9kdWxlcy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9wYXJzZXJzL3NpbmdsZS9fZGVmYXVsdC5zY3NzIiwiL2hvbWUvY2lyY2xlY2kvYXBwL25vZGVfbW9kdWxlcy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9wYXJzZXJzL19kb3VibGUuc2NzcyIsIi9ob21lL2NpcmNsZWNpL2FwcC9ub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvcGFyc2Vycy9kb3VibGUvX2RlZmF1bHQtcGFpci5zY3NzIiwiL2hvbWUvY2lyY2xlY2kvYXBwL25vZGVfbW9kdWxlcy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9wYXJzZXJzL2RvdWJsZS9fZG91YmxlLXN0cmluZy5zY3NzIiwiL2hvbWUvY2lyY2xlY2kvYXBwL25vZGVfbW9kdWxlcy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9wYXJzZXJzL2RvdWJsZS9fZGVmYXVsdC5zY3NzIiwiL2hvbWUvY2lyY2xlY2kvYXBwL25vZGVfbW9kdWxlcy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9wYXJzZXJzL190cmlwbGUuc2NzcyIsIi9ob21lL2NpcmNsZWNpL2FwcC9ub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvcGFyc2Vycy90cmlwbGUvX2RlZmF1bHQuc2NzcyIsIi9ob21lL2NpcmNsZWNpL2FwcC9ub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvcGFyc2Vycy9fcmVzb2x1dGlvbi5zY3NzIiwiL2hvbWUvY2lyY2xlY2kvYXBwL25vZGVfbW9kdWxlcy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9wYXJzZXJzL3Jlc29sdXRpb24vX3Jlc29sdXRpb24uc2NzcyIsIi9ob21lL2NpcmNsZWNpL2FwcC9ub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvX25vLXF1ZXJ5LnNjc3MiLCIvaG9tZS9jaXJjbGVjaS9hcHAvbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L19yZXNwb25kLXRvLnNjc3MiLCIvaG9tZS9jaXJjbGVjaS9hcHAvbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L19sZWdhY3ktc2V0dGluZ3Muc2NzcyIsIi9ob21lL2NpcmNsZWNpL2FwcC9ub2RlX21vZHVsZXMvZmxpY2tpdHkvY3NzL2ZsaWNraXR5LmNzcyIsIi9ob21lL2NpcmNsZWNpL2FwcC9lcGl0YXBoL3N0YXRpYy9zY3NzL2Jhc2UvX3Jlc2V0LnNjc3MiLCIvaG9tZS9jaXJjbGVjaS9hcHAvZXBpdGFwaC9zdGF0aWMvc2Nzcy9iYXNlL19jb25maWcuc2NzcyIsIi9ob21lL2NpcmNsZWNpL2FwcC9lcGl0YXBoL3N0YXRpYy9zY3NzL2Jhc2UvX3R5cG9ncmFwaHkuc2NzcyIsIi9ob21lL2NpcmNsZWNpL2FwcC9lcGl0YXBoL3N0YXRpYy9zY3NzL2Jhc2UvX3NoYXJlZC5zY3NzIiwiL2hvbWUvY2lyY2xlY2kvYXBwL2VwaXRhcGgvc3RhdGljL3Njc3MvYmFzZS9fbGF5b3V0LnNjc3MiLCIvaG9tZS9jaXJjbGVjaS9hcHAvZXBpdGFwaC9zdGF0aWMvc2Nzcy9tb2R1bGVzL19mbGV4LXZpZGVvLnNjc3MiLCIvaG9tZS9jaXJjbGVjaS9hcHAvZXBpdGFwaC9zdGF0aWMvc2Nzcy9tb2R1bGVzL190eXBlLnNjc3MiLCIvaG9tZS9jaXJjbGVjaS9hcHAvZXBpdGFwaC9zdGF0aWMvc2Nzcy9tb2R1bGVzL19pY29ucy5zY3NzIiwiL2hvbWUvY2lyY2xlY2kvYXBwL2VwaXRhcGgvc3RhdGljL3Njc3MvbW9kdWxlcy9fZm9ybXMuc2NzcyIsIi9ob21lL2NpcmNsZWNpL2FwcC9lcGl0YXBoL3N0YXRpYy9zY3NzL21vZHVsZXMvX2hlYWRlci5zY3NzIiwiL2hvbWUvY2lyY2xlY2kvYXBwL2VwaXRhcGgvc3RhdGljL3Njc3MvbW9kdWxlcy9fZm9vdGVyLnNjc3MiLCIvaG9tZS9jaXJjbGVjaS9hcHAvZXBpdGFwaC9zdGF0aWMvc2Nzcy9tb2R1bGVzL19zdWJuYXYuc2NzcyIsIi9ob21lL2NpcmNsZWNpL2FwcC9lcGl0YXBoL3N0YXRpYy9zY3NzL21vZHVsZXMvX21lbnUuc2NzcyIsIi9ob21lL2NpcmNsZWNpL2FwcC9lcGl0YXBoL3N0YXRpYy9zY3NzL21vZHVsZXMvX2Jhbm5lci5zY3NzIiwiL2hvbWUvY2lyY2xlY2kvYXBwL2VwaXRhcGgvc3RhdGljL3Njc3MvbW9kdWxlcy9fYm94ZXMuc2NzcyIsIi9ob21lL2NpcmNsZWNpL2FwcC9lcGl0YXBoL3N0YXRpYy9zY3NzL21vZHVsZXMvX3BhZ2luYXRpb24uc2NzcyIsIi9ob21lL2NpcmNsZWNpL2FwcC9lcGl0YXBoL3N0YXRpYy9zY3NzL21vZHVsZXMvX21vZGFsLnNjc3MiLCIvaG9tZS9jaXJjbGVjaS9hcHAvZXBpdGFwaC9zdGF0aWMvc2Nzcy9tb2R1bGVzL19tb2RhbF90YWtlb3Zlci5zY3NzIiwiL2hvbWUvY2lyY2xlY2kvYXBwL2VwaXRhcGgvc3RhdGljL3Njc3MvbW9kdWxlcy9fbmV3cy5zY3NzIiwiL2hvbWUvY2lyY2xlY2kvYXBwL2VwaXRhcGgvc3RhdGljL3Njc3MvbW9kdWxlcy9fdHJhY2tfbGlzdGluZy5zY3NzIiwiL2hvbWUvY2lyY2xlY2kvYXBwL2VwaXRhcGgvc3RhdGljL3Njc3MvbW9kdWxlcy9fdGl0bGVkX2xpc3Quc2NzcyIsIi9ob21lL2NpcmNsZWNpL2FwcC9lcGl0YXBoL3N0YXRpYy9zY3NzL3BhZ2VzL19zdWJwYWdlLnNjc3MiLCIvaG9tZS9jaXJjbGVjaS9hcHAvZXBpdGFwaC9zdGF0aWMvc2Nzcy9wYWdlcy9hcnRpc3QvX2luZGV4LnNjc3MiLCIvaG9tZS9jaXJjbGVjaS9hcHAvZXBpdGFwaC9zdGF0aWMvc2Nzcy9wYWdlcy9hcnRpc3QvX2RldGFpbC5zY3NzIiwiL2hvbWUvY2lyY2xlY2kvYXBwL2VwaXRhcGgvc3RhdGljL3Njc3MvcGFnZXMvYXJ0aXN0L19hbGJ1bV9kZXRhaWwuc2NzcyIsIi9ob21lL2NpcmNsZWNpL2FwcC9lcGl0YXBoL3N0YXRpYy9zY3NzL3BhZ2VzL2FydGlzdC9fdHJhY2tfZGV0YWlsLnNjc3MiLCIvaG9tZS9jaXJjbGVjaS9hcHAvZXBpdGFwaC9zdGF0aWMvc2Nzcy9wYWdlcy9yZWxlYXNlL19pbmRleC5zY3NzIiwiL2hvbWUvY2lyY2xlY2kvYXBwL2VwaXRhcGgvc3RhdGljL3Njc3MvcGFnZXMvX3RvdXJzLnNjc3MiLCIvaG9tZS9jaXJjbGVjaS9hcHAvZXBpdGFwaC9zdGF0aWMvc2Nzcy9wYWdlcy9fbmV3cy5zY3NzIiwiL2hvbWUvY2lyY2xlY2kvYXBwL2VwaXRhcGgvc3RhdGljL3Njc3MvcGFnZXMvY29udGFjdC9faW5kZXguc2NzcyIsIi9ob21lL2NpcmNsZWNpL2FwcC9lcGl0YXBoL3N0YXRpYy9zY3NzL3BhZ2VzL19zZWFyY2guc2NzcyIsIi9ob21lL2NpcmNsZWNpL2FwcC9lcGl0YXBoL3N0YXRpYy9zY3NzL21vZHVsZXMvX21haWxpbmdfbGlzdF9mb3JtLnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiQGNoYXJzZXQgJ1VURi04JztcblxuLypcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkVwaXRhcGggUmVjb3Jkc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKi9cblxuLy8gVGhpcmQgcGFydHlcblxuQGltcG9ydCAnYm91cmJvbic7XG5AaW1wb3J0ICd+c3VzeS9zYXNzL3N1c3knO1xuQGltcG9ydCAnYnJlYWtwb2ludCc7XG5AaW1wb3J0ICd+ZmxpY2tpdHkvY3NzL2ZsaWNraXR5JztcblxuLy8gQmFzZVxuXG5AaW1wb3J0ICdiYXNlL3Jlc2V0JztcbkBpbXBvcnQgJ2Jhc2UvY29uZmlnJztcbkBpbXBvcnQgJ2Jhc2UvdHlwb2dyYXBoeSc7XG5AaW1wb3J0ICdiYXNlL3NoYXJlZCc7XG5AaW1wb3J0ICdiYXNlL2xheW91dCc7XG5cbi8vIE1vZHVsZXNcblxuQGltcG9ydCAnbW9kdWxlcy9mbGV4LXZpZGVvJztcbkBpbXBvcnQgJ21vZHVsZXMvdHlwZSc7XG5AaW1wb3J0ICdtb2R1bGVzL2ljb25zJztcbkBpbXBvcnQgJ21vZHVsZXMvZm9ybXMnO1xuXG5AaW1wb3J0ICdtb2R1bGVzL2hlYWRlcic7XG5AaW1wb3J0ICdtb2R1bGVzL2Zvb3Rlcic7XG5AaW1wb3J0ICdtb2R1bGVzL3N1Ym5hdic7XG5AaW1wb3J0ICdtb2R1bGVzL21lbnUnO1xuQGltcG9ydCAnbW9kdWxlcy9iYW5uZXInO1xuQGltcG9ydCAnbW9kdWxlcy9ib3hlcyc7XG5AaW1wb3J0ICdtb2R1bGVzL3BhZ2luYXRpb24nO1xuQGltcG9ydCAnbW9kdWxlcy9tb2RhbCc7XG5AaW1wb3J0ICdtb2R1bGVzL21vZGFsX3Rha2VvdmVyJztcbkBpbXBvcnQgJ21vZHVsZXMvbmV3cyc7XG5AaW1wb3J0ICdtb2R1bGVzL3RyYWNrX2xpc3RpbmcnO1xuQGltcG9ydCAnbW9kdWxlcy90aXRsZWRfbGlzdCc7XG5cbi8vIFBhZ2VzXG5cbkBpbXBvcnQgJ3BhZ2VzL3N1YnBhZ2UnO1xuXG5AaW1wb3J0ICdwYWdlcy9hcnRpc3QvaW5kZXgnO1xuQGltcG9ydCAncGFnZXMvYXJ0aXN0L2RldGFpbCc7XG5AaW1wb3J0ICdwYWdlcy9hcnRpc3QvYWxidW1fZGV0YWlsJztcbkBpbXBvcnQgJ3BhZ2VzL2FydGlzdC90cmFja19kZXRhaWwnO1xuQGltcG9ydCAncGFnZXMvcmVsZWFzZS9pbmRleCc7XG5AaW1wb3J0ICdwYWdlcy90b3Vycyc7XG5AaW1wb3J0ICdwYWdlcy9uZXdzJztcbkBpbXBvcnQgJ3BhZ2VzL2NvbnRhY3QvaW5kZXgnO1xuQGltcG9ydCAncGFnZXMvc2VhcmNoJztcblxuQGltcG9ydCAnbW9kdWxlcy9tYWlsaW5nX2xpc3RfZm9ybSc7IiwiLy8gQm91cmJvbiA0LjMuNFxuLy8gaHR0cDovL2JvdXJib24uaW9cbi8vIENvcHlyaWdodCAyMDExLTIwMTcgdGhvdWdodGJvdCwgaW5jLlxuLy8gTUlUIExpY2Vuc2VcblxuQGltcG9ydCBcInNldHRpbmdzL2RlcHJlY2F0aW9uLXdhcm5pbmdzXCI7XG5AaW1wb3J0IFwic2V0dGluZ3MvcHJlZml4ZXJcIjtcbkBpbXBvcnQgXCJzZXR0aW5ncy9weC10by1lbVwiO1xuQGltcG9ydCBcInNldHRpbmdzL2Fzc2V0LXBpcGVsaW5lXCI7XG5cbkBpbXBvcnQgXCJib3VyYm9uLWRlcHJlY2F0ZVwiO1xuXG5AaW1wb3J0IFwiZnVuY3Rpb25zL2Fzc2lnbi1pbnB1dHNcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvY29udGFpbnNcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvY29udGFpbnMtZmFsc3lcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvaXMtbGVuZ3RoXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2lzLWxpZ2h0XCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2lzLW51bWJlclwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9pcy1zaXplXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3B4LXRvLWVtXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3B4LXRvLXJlbVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9zaGFkZVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9zdHJpcC11bml0c1wiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy90aW50XCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3RyYW5zaXRpb24tcHJvcGVydHktbmFtZVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy91bnBhY2tcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvbW9kdWxhci1zY2FsZVwiO1xuXG5AaW1wb3J0IFwiaGVscGVycy9jb252ZXJ0LXVuaXRzXCI7XG5AaW1wb3J0IFwiaGVscGVycy9kaXJlY3Rpb25hbC12YWx1ZXNcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2ZvbnQtc291cmNlLWRlY2xhcmF0aW9uXCI7XG5AaW1wb3J0IFwiaGVscGVycy9ncmFkaWVudC1wb3NpdGlvbnMtcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9saW5lYXItYW5nbGUtcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9saW5lYXItZ3JhZGllbnQtcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9saW5lYXItcG9zaXRpb25zLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLXNpZGUtY29ybmVyLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvcmFkaWFsLWFyZy1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3JhZGlhbC1wb3NpdGlvbnMtcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9yZW5kZXItZ3JhZGllbnRzXCI7XG5AaW1wb3J0IFwiaGVscGVycy9zaGFwZS1zaXplLXN0cmlwcGVyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9zdHItdG8tbnVtXCI7XG5cbkBpbXBvcnQgXCJjc3MzL2FuaW1hdGlvblwiO1xuQGltcG9ydCBcImNzczMvYXBwZWFyYW5jZVwiO1xuQGltcG9ydCBcImNzczMvYmFja2ZhY2UtdmlzaWJpbGl0eVwiO1xuQGltcG9ydCBcImNzczMvYmFja2dyb3VuZFwiO1xuQGltcG9ydCBcImNzczMvYmFja2dyb3VuZC1pbWFnZVwiO1xuQGltcG9ydCBcImNzczMvYm9yZGVyLWltYWdlXCI7XG5AaW1wb3J0IFwiY3NzMy9jYWxjXCI7XG5AaW1wb3J0IFwiY3NzMy9jb2x1bW5zXCI7XG5AaW1wb3J0IFwiY3NzMy9maWx0ZXJcIjtcbkBpbXBvcnQgXCJjc3MzL2ZsZXgtYm94XCI7XG5AaW1wb3J0IFwiY3NzMy9mb250LWZhY2VcIjtcbkBpbXBvcnQgXCJjc3MzL2ZvbnQtZmVhdHVyZS1zZXR0aW5nc1wiO1xuQGltcG9ydCBcImNzczMvaGlkcGktbWVkaWEtcXVlcnlcIjtcbkBpbXBvcnQgXCJjc3MzL2h5cGhlbnNcIjtcbkBpbXBvcnQgXCJjc3MzL2ltYWdlLXJlbmRlcmluZ1wiO1xuQGltcG9ydCBcImNzczMva2V5ZnJhbWVzXCI7XG5AaW1wb3J0IFwiY3NzMy9saW5lYXItZ3JhZGllbnRcIjtcbkBpbXBvcnQgXCJjc3MzL3BlcnNwZWN0aXZlXCI7XG5AaW1wb3J0IFwiY3NzMy9wbGFjZWhvbGRlclwiO1xuQGltcG9ydCBcImNzczMvcmFkaWFsLWdyYWRpZW50XCI7XG5AaW1wb3J0IFwiY3NzMy9zZWxlY3Rpb25cIjtcbkBpbXBvcnQgXCJjc3MzL3RleHQtZGVjb3JhdGlvblwiO1xuQGltcG9ydCBcImNzczMvdHJhbnNmb3JtXCI7XG5AaW1wb3J0IFwiY3NzMy90cmFuc2l0aW9uXCI7XG5AaW1wb3J0IFwiY3NzMy91c2VyLXNlbGVjdFwiO1xuXG5AaW1wb3J0IFwiYWRkb25zL2JvcmRlci1jb2xvclwiO1xuQGltcG9ydCBcImFkZG9ucy9ib3JkZXItcmFkaXVzXCI7XG5AaW1wb3J0IFwiYWRkb25zL2JvcmRlci1zdHlsZVwiO1xuQGltcG9ydCBcImFkZG9ucy9ib3JkZXItd2lkdGhcIjtcbkBpbXBvcnQgXCJhZGRvbnMvYnV0dG9uc1wiO1xuQGltcG9ydCBcImFkZG9ucy9jbGVhcmZpeFwiO1xuQGltcG9ydCBcImFkZG9ucy9lbGxpcHNpc1wiO1xuQGltcG9ydCBcImFkZG9ucy9mb250LXN0YWNrc1wiO1xuQGltcG9ydCBcImFkZG9ucy9oaWRlLXRleHRcIjtcbkBpbXBvcnQgXCJhZGRvbnMvbWFyZ2luXCI7XG5AaW1wb3J0IFwiYWRkb25zL3BhZGRpbmdcIjtcbkBpbXBvcnQgXCJhZGRvbnMvcG9zaXRpb25cIjtcbkBpbXBvcnQgXCJhZGRvbnMvcHJlZml4ZXJcIjtcbkBpbXBvcnQgXCJhZGRvbnMvcmV0aW5hLWltYWdlXCI7XG5AaW1wb3J0IFwiYWRkb25zL3NpemVcIjtcbkBpbXBvcnQgXCJhZGRvbnMvdGV4dC1pbnB1dHNcIjtcbkBpbXBvcnQgXCJhZGRvbnMvdGltaW5nLWZ1bmN0aW9uc1wiO1xuQGltcG9ydCBcImFkZG9ucy90cmlhbmdsZVwiO1xuQGltcG9ydCBcImFkZG9ucy93b3JkLXdyYXBcIjtcblxuQGltcG9ydCBcImJvdXJib24tZGVwcmVjYXRlZC11cGNvbWluZ1wiO1xuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gRW5hYmxlIG9yIGRpc2FibGUgb3V0cHV0IG9mIEJvdXJib27igJlzIGRlcHJlY2F0aW9uLXJlbGF0ZWQgU2FzcyB3YXJuaW5ncy5cbi8vLyBUaGlzIHZhcmlhYmxlIG11c3QgYmUgZGVjbGFyZWQgX2JlZm9yZV8gaW1wb3J0aW5nIEJvdXJib24uXG4vLy9cbi8vLyBAdHlwZSBCb29sXG5cbiRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogdHJ1ZSAhZGVmYXVsdDtcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEdsb2JhbCB2YXJpYWJsZXMgdG8gZW5hYmxlIG9yIGRpc2FibGUgdmVuZG9yIHByZWZpeGVzXG5cbiRwcmVmaXgtZm9yLXdlYmtpdDogICAgdHJ1ZSAhZGVmYXVsdDtcbiRwcmVmaXgtZm9yLW1vemlsbGE6ICAgdHJ1ZSAhZGVmYXVsdDtcbiRwcmVmaXgtZm9yLW1pY3Jvc29mdDogdHJ1ZSAhZGVmYXVsdDtcbiRwcmVmaXgtZm9yLW9wZXJhOiAgICAgdHJ1ZSAhZGVmYXVsdDtcbiRwcmVmaXgtZm9yLXNwZWM6ICAgICAgdHJ1ZSAhZGVmYXVsdDtcbiIsIiRlbS1iYXNlOiAxNnB4ICFkZWZhdWx0O1xuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQSBnbG9iYWwgc2V0dGluZyB0byBlbmFibGUgb3IgZGlzYWJsZSB0aGUgYCRhc3NldC1waXBlbGluZWAgdmFyaWFibGUgZm9yIGFsbCBmdW5jdGlvbnMgdGhhdCBhY2NlcHQgaXQuXG4vLy9cbi8vLyBAdHlwZSBCb29sXG5cbiRhc3NldC1waXBlbGluZTogZmFsc2UgIWRlZmF1bHQ7XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBUaHJvd3MgU2FzcyB3YXJuaW5ncyB0byBhbm5vdW5jZSBsaWJyYXJ5IGRlcHJlY2F0aW9ucy4gWW91IGNhbiBkaXNhYmxlIHRoZW1cbi8vLyBieSBzZXR0aW5nIHRoZSBgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzYCB2YXJpYWJsZSB0byBgZmFsc2VgLlxuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5cbkBtaXhpbiBfYm91cmJvbi1kZXByZWNhdGUoJGZlYXR1cmUsICRtZXNzYWdlOiBudWxsKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgI3skZmVhdHVyZX1gIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgXCIgK1xuICAgICAgXCJyZW1vdmVkIGluIDUuMC4wLiAjeyRtZXNzYWdlfVwiO1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZygkZmVhdHVyZSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUoJGZlYXR1cmUsIFwiV2Ugc3VnZ2VzdCB1c2luZyBhbiBhdXRvbWF0ZWQgXCIgK1xuICAgIFwicHJlZml4aW5nIHRvb2wsIGxpa2UgQXV0b3ByZWZpeGVyLlwiKTtcbn1cbiIsIkBmdW5jdGlvbiBhc3NpZ24taW5wdXRzKCRpbnB1dHMsICRwc2V1ZG86IG51bGwpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBhc3NpZ24taW5wdXRzYCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIFwiICtcbiAgICBcInJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICAkbGlzdDogKCk7XG5cbiAgQGVhY2ggJGlucHV0IGluICRpbnB1dHMge1xuICAgICRpbnB1dDogdW5xdW90ZSgkaW5wdXQpO1xuICAgICRpbnB1dDogaWYoJHBzZXVkbywgJGlucHV0ICsgXCI6XCIgKyAkcHNldWRvLCAkaW5wdXQpO1xuICAgICRsaXN0OiBhcHBlbmQoJGxpc3QsICRpbnB1dCwgY29tbWEpO1xuICB9XG5cbiAgQHJldHVybiAkbGlzdDtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENoZWNrcyBpZiBhIGxpc3QgY29udGFpbnMgYSB2YWx1ZShzKS5cbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkbGlzdFxuLy8vICAgVGhlIGxpc3QgdG8gY2hlY2sgYWdhaW5zdC5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHZhbHVlc1xuLy8vICAgQSBzaW5nbGUgdmFsdWUgb3IgbGlzdCBvZiB2YWx1ZXMgdG8gY2hlY2sgZm9yLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICBjb250YWlucygkbGlzdCwgJHZhbHVlKVxuLy8vXG4vLy8gQHJldHVybiB7Qm9vbH1cblxuQGZ1bmN0aW9uIGNvbnRhaW5zKCRsaXN0LCAkdmFsdWVzLi4uKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgY29udGFpbnNgIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgXCIgK1xuICAgIFwicmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gIEBlYWNoICR2YWx1ZSBpbiAkdmFsdWVzIHtcbiAgICBAaWYgdHlwZS1vZihpbmRleCgkbGlzdCwgJHZhbHVlKSkgIT0gXCJudW1iZXJcIiB7XG4gICAgICBAcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gdHJ1ZTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENoZWNrcyBpZiBhIGxpc3QgZG9lcyBub3QgY29udGFpbnMgYSB2YWx1ZS5cbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkbGlzdFxuLy8vICAgVGhlIGxpc3QgdG8gY2hlY2sgYWdhaW5zdC5cbi8vL1xuLy8vIEByZXR1cm4ge0Jvb2x9XG5cbkBmdW5jdGlvbiBjb250YWlucy1mYWxzeSgkbGlzdCkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYGNvbnRhaW5zLWZhbHN5YCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIFwiICtcbiAgICBcInJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICBAZWFjaCAkaXRlbSBpbiAkbGlzdCB7XG4gICAgQGlmIG5vdCAkaXRlbSB7XG4gICAgICBAcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiBmYWxzZTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENoZWNrcyBmb3IgYSB2YWxpZCBDU1MgbGVuZ3RoLlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR2YWx1ZVxuXG5AZnVuY3Rpb24gaXMtbGVuZ3RoKCR2YWx1ZSkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYGlzLWxlbmd0aGAgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSBcIiArXG4gICAgXCJyZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgQHJldHVybiB0eXBlLW9mKCR2YWx1ZSkgIT0gXCJudWxsXCIgYW5kIChzdHItc2xpY2UoJHZhbHVlICsgXCJcIiwgMSwgNCkgPT0gXCJjYWxjXCJcbiAgICAgICBvciBpbmRleChhdXRvIGluaGVyaXQgaW5pdGlhbCAwLCAkdmFsdWUpXG4gICAgICAgb3IgKHR5cGUtb2YoJHZhbHVlKSA9PSBcIm51bWJlclwiIGFuZCBub3QodW5pdGxlc3MoJHZhbHVlKSkpKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb2dyYW1hdGljYWxseSBkZXRlcm1pbmVzIHdoZXRoZXIgYSBjb2xvciBpcyBsaWdodCBvciBkYXJrLlxuLy8vXG4vLy8gQGxpbmsgaHR0cDovL3JvYm90cy50aG91Z2h0Ym90LmNvbS9jbG9zZXItbG9vay1jb2xvci1saWdodG5lc3Ncbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3IgKEhleCl9ICRjb2xvclxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICBpcy1saWdodCgkY29sb3IpXG4vLy9cbi8vLyBAcmV0dXJuIHtCb29sfVxuXG5AZnVuY3Rpb24gaXMtbGlnaHQoJGhleC1jb2xvcikge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYGlzLWxpZ2h0YCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIFwiICtcbiAgICBcInJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICAkLWxvY2FsLXJlZDogcmVkKHJnYmEoJGhleC1jb2xvciwgMSkpO1xuICAkLWxvY2FsLWdyZWVuOiBncmVlbihyZ2JhKCRoZXgtY29sb3IsIDEpKTtcbiAgJC1sb2NhbC1ibHVlOiBibHVlKHJnYmEoJGhleC1jb2xvciwgMSkpO1xuICAkLWxvY2FsLWxpZ2h0bmVzczogKCQtbG9jYWwtcmVkICogMC4yMTI2ICsgJC1sb2NhbC1ncmVlbiAqIDAuNzE1MiArICQtbG9jYWwtYmx1ZSAqIDAuMDcyMikgLyAyNTU7XG5cbiAgQHJldHVybiAkLWxvY2FsLWxpZ2h0bmVzcyA+IDAuNjtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENoZWNrcyBmb3IgYSB2YWxpZCBudW1iZXIuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlXG4vLy9cbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbnRhaW5zXG5cbkBmdW5jdGlvbiBpcy1udW1iZXIoJHZhbHVlKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgaXMtbnVtYmVyYCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIFwiICtcbiAgICBcInJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICBAcmV0dXJuIGNvbnRhaW5zKFwiMFwiIFwiMVwiIFwiMlwiIFwiM1wiIFwiNFwiIFwiNVwiIFwiNlwiIFwiN1wiIFwiOFwiIFwiOVwiIDAgMSAyIDMgNCA1IDYgNyA4IDksICR2YWx1ZSk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDaGVja3MgZm9yIGEgdmFsaWQgQ1NTIHNpemUuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHZhbHVlXG4vLy9cbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbnRhaW5zXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBpcy1sZW5ndGhcblxuQGZ1bmN0aW9uIGlzLXNpemUoJHZhbHVlKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgaXMtc2l6ZWAgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSBcIiArXG4gICAgXCJyZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZzogJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzO1xuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6IGZhbHNlICFnbG9iYWw7XG5cbiAgQHJldHVybiBpcy1sZW5ndGgoJHZhbHVlKVxuICAgICAgICAgIG9yIGNvbnRhaW5zKFwiZmlsbFwiIFwiZml0LWNvbnRlbnRcIiBcIm1pbi1jb250ZW50XCIgXCJtYXgtY29udGVudFwiLCAkdmFsdWUpO1xuXG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZyAhZ2xvYmFsO1xufVxuIiwiLy8gQ29udmVydCBwaXhlbHMgdG8gZW1zXG4vLyBlZy4gZm9yIGEgcmVsYXRpb25hbCB2YWx1ZSBvZiAxMnB4IHdyaXRlIGVtKDEyKSB3aGVuIHRoZSBwYXJlbnQgaXMgMTZweFxuLy8gaWYgdGhlIHBhcmVudCBpcyBhbm90aGVyIHZhbHVlIHNheSAyNHB4IHdyaXRlIGVtKDEyLCAyNClcblxuQGZ1bmN0aW9uIGVtKCRweHZhbCwgJGJhc2U6ICRlbS1iYXNlKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgZW1gIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgXCIgK1xuICAgIFwicmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZSAhZ2xvYmFsO1xuXG4gIEBpZiBub3QgdW5pdGxlc3MoJHB4dmFsKSB7XG4gICAgJHB4dmFsOiBzdHJpcC11bml0cygkcHh2YWwpO1xuICB9XG4gIEBpZiBub3QgdW5pdGxlc3MoJGJhc2UpIHtcbiAgICAkYmFzZTogc3RyaXAtdW5pdHMoJGJhc2UpO1xuICB9XG5cbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nICFnbG9iYWw7XG5cbiAgQHJldHVybiAoJHB4dmFsIC8gJGJhc2UpICogMWVtO1xufVxuIiwiLy8gQ29udmVydCBwaXhlbHMgdG8gcmVtc1xuLy8gZWcuIGZvciBhIHJlbGF0aW9uYWwgdmFsdWUgb2YgMTJweCB3cml0ZSByZW0oMTIpXG4vLyBBc3N1bWVzICRlbS1iYXNlIGlzIHRoZSBmb250LXNpemUgb2YgPGh0bWw+XG5cbkBmdW5jdGlvbiByZW0oJHB4dmFsKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgcmVtYCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIFwiICtcbiAgICBcInJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nOiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2UgIWdsb2JhbDtcblxuICBAaWYgbm90IHVuaXRsZXNzKCRweHZhbCkge1xuICAgICRweHZhbDogc3RyaXAtdW5pdHMoJHB4dmFsKTtcbiAgfVxuXG4gICRiYXNlOiAkZW0tYmFzZTtcbiAgQGlmIG5vdCB1bml0bGVzcygkYmFzZSkge1xuICAgICRiYXNlOiBzdHJpcC11bml0cygkYmFzZSk7XG4gIH1cblxuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6ICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmcgIWdsb2JhbDtcblxuICBAcmV0dXJuICgkcHh2YWwgLyAkYmFzZSkgKiAxcmVtO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gTWl4ZXMgYSBjb2xvciB3aXRoIGJsYWNrLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlciAoUGVyY2VudGFnZSl9ICRwZXJjZW50XG4vLy8gICBUaGUgYW1vdW50IG9mIGJsYWNrIHRvIGJlIG1peGVkIGluLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6IHNoYWRlKCNmZmJiNTIsIDYwJSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICM2NjRhMjA7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmV0dXJuIHtDb2xvcn1cblxuQGZ1bmN0aW9uIHNoYWRlKCRjb2xvciwgJHBlcmNlbnQpIHtcbiAgQHJldHVybiBtaXgoIzAwMCwgJGNvbG9yLCAkcGVyY2VudCk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBTdHJpcHMgdGhlIHVuaXQgZnJvbSBhIG51bWJlci5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyIChXaXRoIFVuaXQpfSAkdmFsdWVcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgJGRpbWVuc2lvbjogc3RyaXAtdW5pdHMoMTBlbSk7XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAkZGltZW5zaW9uOiAxMDtcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlciAoVW5pdGxlc3MpfVxuXG5AZnVuY3Rpb24gc3RyaXAtdW5pdHMoJHZhbHVlKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgc3RyaXAtdW5pdHNgIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgXCIgK1xuICAgIFwicmVtb3ZlZCBpbiA1LjAuMCBhbmQgcmVwbGFjZWQgYnkgdGhlIGBzdHJpcC11bml0YCBmdW5jdGlvbi5cIjtcbiAgfVxuXG4gIEByZXR1cm4gKCR2YWx1ZSAvICgkdmFsdWUgKiAwICsgMSkpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gTWl4ZXMgYSBjb2xvciB3aXRoIHdoaXRlLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlciAoUGVyY2VudGFnZSl9ICRwZXJjZW50XG4vLy8gICBUaGUgYW1vdW50IG9mIHdoaXRlIHRvIGJlIG1peGVkIGluLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6IHRpbnQoIzZlY2FhNiwgNDAlKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2E4ZGZjOTtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXR1cm4ge0NvbG9yfVxuXG5AZnVuY3Rpb24gdGludCgkY29sb3IsICRwZXJjZW50KSB7XG4gIEByZXR1cm4gbWl4KCNmZmYsICRjb2xvciwgJHBlcmNlbnQpO1xufVxuIiwiLy8gUmV0dXJuIHZlbmRvci1wcmVmaXhlZCBwcm9wZXJ0eSBuYW1lcyBpZiBhcHByb3ByaWF0ZVxuLy8gRXhhbXBsZTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygodHJhbnNmb3JtLCBjb2xvciwgYmFja2dyb3VuZCksIG1veikgLT4gLW1vei10cmFuc2Zvcm0sIGNvbG9yLCBiYWNrZ3JvdW5kXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5AZnVuY3Rpb24gdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcHMsICR2ZW5kb3I6IGZhbHNlKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lc2AgaXMgZGVwcmVjYXRlZCBcIiArXG4gICAgXCJhbmQgd2lsbCBiZSByZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZzogJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzO1xuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6IGZhbHNlICFnbG9iYWw7XG5cbiAgJG5ldy1wcm9wczogKCk7XG5cbiAgQGVhY2ggJHByb3AgaW4gJHByb3BzIHtcbiAgICAkbmV3LXByb3BzOiBhcHBlbmQoJG5ldy1wcm9wcywgdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lKCRwcm9wLCAkdmVuZG9yKSwgY29tbWEpO1xuICB9XG5cbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nICFnbG9iYWw7XG5cbiAgQHJldHVybiAkbmV3LXByb3BzO1xufVxuXG5AZnVuY3Rpb24gdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lKCRwcm9wLCAkdmVuZG9yOiBmYWxzZSkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYHRyYW5zaXRpb24tcHJvcGVydHktbmFtZWAgaXMgZGVwcmVjYXRlZCBcIiArXG4gICAgXCJhbmQgd2lsbCBiZSByZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgLy8gcHV0IG90aGVyIHByb3BlcnRpZXMgdGhhdCBuZWVkIHRvIGJlIHByZWZpeGVkIGhlcmUgYXN3ZWxsXG4gIEBpZiAkdmVuZG9yIGFuZCAkcHJvcCA9PSB0cmFuc2Zvcm0ge1xuICAgIEByZXR1cm4gdW5xdW90ZSgnLScrJHZlbmRvcisnLScrJHByb3ApO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuICRwcm9wO1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDb252ZXJ0cyBzaG9ydGhhbmQgdG8gdGhlIDQtdmFsdWUgc3ludGF4LlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkc2hvcnRoYW5kXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgbWFyZ2luOiB1bnBhY2soMWVtIDJlbSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIG1hcmdpbjogMWVtIDJlbSAxZW0gMmVtO1xuLy8vICAgfVxuXG5AZnVuY3Rpb24gdW5wYWNrKCRzaG9ydGhhbmQpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGB1bnBhY2tgIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgXCIgK1xuICAgIFwicmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gIEBpZiBsZW5ndGgoJHNob3J0aGFuZCkgPT0gMSB7XG4gICAgQHJldHVybiBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMSk7XG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRzaG9ydGhhbmQpID09IDIge1xuICAgIEByZXR1cm4gbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAyKSBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDIpO1xuICB9IEBlbHNlIGlmIGxlbmd0aCgkc2hvcnRoYW5kKSA9PSAzIHtcbiAgICBAcmV0dXJuIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMikgbnRoKCRzaG9ydGhhbmQsIDMpIG50aCgkc2hvcnRoYW5kLCAyKTtcbiAgfSBAZWxzZSB7XG4gICAgQHJldHVybiAkc2hvcnRoYW5kO1xuICB9XG59XG4iLCIvLyBTY2FsaW5nIFZhcmlhYmxlc1xuJGdvbGRlbjogICAgICAgICAgIDEuNjE4O1xuJG1pbm9yLXNlY29uZDogICAgIDEuMDY3O1xuJG1ham9yLXNlY29uZDogICAgIDEuMTI1O1xuJG1pbm9yLXRoaXJkOiAgICAgIDEuMjtcbiRtYWpvci10aGlyZDogICAgICAxLjI1O1xuJHBlcmZlY3QtZm91cnRoOiAgIDEuMzMzO1xuJGF1Z21lbnRlZC1mb3VydGg6IDEuNDE0O1xuJHBlcmZlY3QtZmlmdGg6ICAgIDEuNTtcbiRtaW5vci1zaXh0aDogICAgICAxLjY7XG4kbWFqb3Itc2l4dGg6ICAgICAgMS42Njc7XG4kbWlub3Itc2V2ZW50aDogICAgMS43Nzg7XG4kbWFqb3Itc2V2ZW50aDogICAgMS44NzU7XG4kb2N0YXZlOiAgICAgICAgICAgMjtcbiRtYWpvci10ZW50aDogICAgICAyLjU7XG4kbWFqb3ItZWxldmVudGg6ICAgMi42Njc7XG4kbWFqb3ItdHdlbGZ0aDogICAgMztcbiRkb3VibGUtb2N0YXZlOiAgICA0O1xuXG4kdXNlci1vdXRwdXQtZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZzogJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzO1xuJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZTtcblxuJG1vZHVsYXItc2NhbGUtcmF0aW86ICRwZXJmZWN0LWZvdXJ0aCAhZGVmYXVsdDtcbiRtb2R1bGFyLXNjYWxlLWJhc2U6IGVtKCRlbS1iYXNlKSAhZGVmYXVsdDtcblxuJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiAkdXNlci1vdXRwdXQtZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZztcblxuQGZ1bmN0aW9uIG1vZHVsYXItc2NhbGUoJGluY3JlbWVudCwgJHZhbHVlOiAkbW9kdWxhci1zY2FsZS1iYXNlLCAkcmF0aW86ICRtb2R1bGFyLXNjYWxlLXJhdGlvKSB7XG4gICR2MTogbnRoKCR2YWx1ZSwgMSk7XG4gICR2MjogbnRoKCR2YWx1ZSwgbGVuZ3RoKCR2YWx1ZSkpO1xuICAkdmFsdWU6ICR2MTtcblxuICAvLyBzY2FsZSAkdjIgdG8ganVzdCBhYm92ZSAkdjFcbiAgQHdoaWxlICR2MiA+ICR2MSB7XG4gICAgJHYyOiAoJHYyIC8gJHJhdGlvKTsgLy8gd2lsbCBiZSBvZmYtYnktMVxuICB9XG4gIEB3aGlsZSAkdjIgPCAkdjEge1xuICAgICR2MjogKCR2MiAqICRyYXRpbyk7IC8vIHdpbGwgZml4IG9mZi1ieS0xXG4gIH1cblxuICAvLyBjaGVjayBBRlRFUiBzY2FsaW5nICR2MiB0byBwcmV2ZW50IGRvdWJsZS1jb3VudGluZyBjb3JuZXItY2FzZVxuICAkZG91YmxlLXN0cmFuZGVkOiAkdjIgPiAkdjE7XG5cbiAgQGlmICRpbmNyZW1lbnQgPiAwIHtcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRpbmNyZW1lbnQge1xuICAgICAgQGlmICRkb3VibGUtc3RyYW5kZWQgYW5kICgkdjEgKiAkcmF0aW8pID4gJHYyIHtcbiAgICAgICAgJHZhbHVlOiAkdjI7XG4gICAgICAgICR2MjogKCR2MiAqICRyYXRpbyk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJHYxOiAoJHYxICogJHJhdGlvKTtcbiAgICAgICAgJHZhbHVlOiAkdjE7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGlmICRpbmNyZW1lbnQgPCAwIHtcbiAgICAvLyBhZGp1c3QgJHYyIHRvIGp1c3QgYmVsb3cgJHYxXG4gICAgQGlmICRkb3VibGUtc3RyYW5kZWQge1xuICAgICAgJHYyOiAoJHYyIC8gJHJhdGlvKTtcbiAgICB9XG5cbiAgICBAZm9yICRpIGZyb20gJGluY3JlbWVudCB0aHJvdWdoIC0xIHtcbiAgICAgIEBpZiAkZG91YmxlLXN0cmFuZGVkIGFuZCAoJHYxIC8gJHJhdGlvKSA8ICR2MiB7XG4gICAgICAgICR2YWx1ZTogJHYyO1xuICAgICAgICAkdjI6ICgkdjIgLyAkcmF0aW8pO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICR2MTogKCR2MSAvICRyYXRpbyk7XG4gICAgICAgICR2YWx1ZTogJHYxO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gSGVscGVyIGZ1bmN0aW9uIGZvciBzdHItdG8tbnVtIGZuLlxuLy8gU291cmNlOiBodHRwOi8vc2Fzc21laXN0ZXIuY29tL2dpc3QvOTY0NzQwOFxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuQGZ1bmN0aW9uIF9jb252ZXJ0LXVuaXRzKCRudW1iZXIsICR1bml0KSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgX2NvbnZlcnQtdW5pdHNgIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgXCIgK1xuICAgIFwiYmUgcmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gICRzdHJpbmdzOiBcInB4XCIsIFwiY21cIiwgXCJtbVwiLCBcIiVcIiwgXCJjaFwiLCBcInBpY2FcIiwgXCJpblwiLCBcImVtXCIsIFwicmVtXCIsIFwicHRcIiwgXCJwY1wiLCBcImV4XCIsIFwidndcIiwgXCJ2aFwiLCBcInZtaW5cIiwgXCJ2bWF4XCIsIFwiZGVnXCIsIFwicmFkXCIsIFwiZ3JhZFwiLCBcInR1cm5cIjtcbiAgJHVuaXRzOiAgIDFweCwgMWNtLCAxbW0sIDElLCAxY2gsIDFwaWNhLCAxaW4sIDFlbSwgMXJlbSwgMXB0LCAxcGMsIDFleCwgMXZ3LCAxdmgsIDF2bWluLCAxdm1heCwgMWRlZywgMXJhZCwgMWdyYWQsIDF0dXJuO1xuICAkaW5kZXg6IGluZGV4KCRzdHJpbmdzLCAkdW5pdCk7XG5cbiAgQGlmIG5vdCAkaW5kZXgge1xuICAgIEB3YXJuIFwiVW5rbm93biB1bml0IGAjeyR1bml0fWAuXCI7XG4gICAgQHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRudW1iZXIpICE9IFwibnVtYmVyXCIge1xuICAgIEB3YXJuIFwiYCN7JG51bWJlcn0gaXMgbm90IGEgbnVtYmVyYFwiO1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBAcmV0dXJuICRudW1iZXIgKiBudGgoJHVuaXRzLCAkaW5kZXgpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gRGlyZWN0aW9uYWwtcHJvcGVydHkgbWl4aW5zIGFyZSBzaG9ydGhhbmRzIGZvciB3cml0aW5nIHByb3BlcnRpZXMgbGlrZSB0aGUgZm9sbG93aW5nXG4vLy9cbi8vLyBAaWdub3JlIFlvdSBjYW4gYWxzbyB1c2UgYGZhbHNlYCBpbnN0ZWFkIG9mIGBudWxsYC5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgZGlyZWN0aW9uYWwgdmFsdWVzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLXN0eWxlKGRvdHRlZCBudWxsKTtcbi8vLyAgICAgQGluY2x1ZGUgbWFyZ2luKG51bGwgMCAxMHB4KTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogZG90dGVkO1xuLy8vICAgICBib3JkZXItdG9wLXN0eWxlOiBkb3R0ZWQ7XG4vLy8gICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4vLy8gICAgIG1hcmdpbi1sZWZ0OiAwO1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbnRhaW5zLWZhbHN5XG4vLy9cbi8vLyBAcmV0dXJuIHtMaXN0fVxuXG5AZnVuY3Rpb24gY29sbGFwc2UtZGlyZWN0aW9uYWxzKCR2YWxzKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgY29sbGFwc2UtZGlyZWN0aW9uYWxzYCBpcyBkZXByZWNhdGVkIGFuZCBcIiArXG4gICAgXCJ3aWxsIGJlIHJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICAkb3V0cHV0OiBudWxsO1xuXG4gICRhOiBudGgoJHZhbHMsIDEpO1xuICAkYjogaWYobGVuZ3RoKCR2YWxzKSA8IDIsICRhLCBudGgoJHZhbHMsIDIpKTtcbiAgJGM6IGlmKGxlbmd0aCgkdmFscykgPCAzLCAkYSwgbnRoKCR2YWxzLCAzKSk7XG4gICRkOiBpZihsZW5ndGgoJHZhbHMpIDwgMiwgJGEsIG50aCgkdmFscywgaWYobGVuZ3RoKCR2YWxzKSA8IDQsIDIsIDQpKSk7XG5cbiAgQGlmICRhID09IDAgeyAkYTogMDsgfVxuICBAaWYgJGIgPT0gMCB7ICRiOiAwOyB9XG4gIEBpZiAkYyA9PSAwIHsgJGM6IDA7IH1cbiAgQGlmICRkID09IDAgeyAkZDogMDsgfVxuXG4gIEBpZiAkYSA9PSAkYiBhbmQgJGEgPT0gJGMgYW5kICRhID09ICRkIHsgJG91dHB1dDogJGE7ICAgICAgICAgIH1cbiAgQGVsc2UgaWYgJGEgPT0gJGMgYW5kICRiID09ICRkICAgICAgICAgeyAkb3V0cHV0OiAkYSAkYjsgICAgICAgfVxuICBAZWxzZSBpZiAkYiA9PSAkZCAgICAgICAgICAgICAgICAgICAgICB7ICRvdXRwdXQ6ICRhICRiICRjOyAgICB9XG4gIEBlbHNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJG91dHB1dDogJGEgJGIgJGMgJGQ7IH1cblxuICBAcmV0dXJuICRvdXRwdXQ7XG59XG5cbi8vLyBPdXRwdXQgZGlyZWN0aW9uYWwgcHJvcGVydGllcywgZm9yIGluc3RhbmNlIGBtYXJnaW5gLlxuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHByZVxuLy8vICAgUHJlZml4IHRvIHVzZVxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc3VmXG4vLy8gICBTdWZmaXggdG8gdXNlXG4vLy8gQHBhcmFtIHtMaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiB2YWx1ZXNcbi8vL1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gY29sbGFwc2UtZGlyZWN0aW9uYWxzXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb250YWlucy1mYWxzeVxuXG5AbWl4aW4gZGlyZWN0aW9uYWwtcHJvcGVydHkoJHByZSwgJHN1ZiwgJHZhbHMpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlKFwiZGlyZWN0aW9uYWwtcHJvcGVydHlcIik7XG5cbiAgJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZzogJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzO1xuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6IGZhbHNlICFnbG9iYWw7XG5cbiAgLy8gUHJvcGVydHkgTmFtZXNcbiAgJHRvcDogICAgJHByZSArIFwiLXRvcFwiICAgICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcbiAgJGJvdHRvbTogJHByZSArIFwiLWJvdHRvbVwiICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcbiAgJGxlZnQ6ICAgJHByZSArIFwiLWxlZnRcIiAgICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcbiAgJHJpZ2h0OiAgJHByZSArIFwiLXJpZ2h0XCIgICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcbiAgJGFsbDogICAgJHByZSArICAgICAgICAgICAgIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XG5cbiAgJHZhbHM6IGNvbGxhcHNlLWRpcmVjdGlvbmFscygkdmFscyk7XG5cbiAgQGlmIGNvbnRhaW5zLWZhbHN5KCR2YWxzKSB7XG4gICAgQGlmIG50aCgkdmFscywgMSkgeyAjeyR0b3B9OiBudGgoJHZhbHMsIDEpOyB9XG5cbiAgICBAaWYgbGVuZ3RoKCR2YWxzKSA9PSAxIHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDEpIHsgI3skcmlnaHR9OiBudGgoJHZhbHMsIDEpOyB9XG4gICAgfSBAZWxzZSB7XG4gICAgICBAaWYgbnRoKCR2YWxzLCAyKSB7ICN7JHJpZ2h0fTogbnRoKCR2YWxzLCAyKTsgfVxuICAgIH1cblxuICAgIEBpZiBsZW5ndGgoJHZhbHMpID09IDIge1xuICAgICAgQGlmIG50aCgkdmFscywgMSkgeyAjeyRib3R0b219OiBudGgoJHZhbHMsIDEpOyB9XG4gICAgICBAaWYgbnRoKCR2YWxzLCAyKSB7ICN7JGxlZnR9OiAgIG50aCgkdmFscywgMik7IH1cbiAgICB9IEBlbHNlIGlmIGxlbmd0aCgkdmFscykgPT0gMyB7XG4gICAgICBAaWYgbnRoKCR2YWxzLCAzKSB7ICN7JGJvdHRvbX06IG50aCgkdmFscywgMyk7IH1cbiAgICAgIEBpZiBudGgoJHZhbHMsIDIpIHsgI3skbGVmdH06ICAgbnRoKCR2YWxzLCAyKTsgfVxuICAgIH0gQGVsc2UgaWYgbGVuZ3RoKCR2YWxzKSA9PSA0IHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDMpIHsgI3skYm90dG9tfTogbnRoKCR2YWxzLCAzKTsgfVxuICAgICAgQGlmIG50aCgkdmFscywgNCkgeyAjeyRsZWZ0fTogICBudGgoJHZhbHMsIDQpOyB9XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICAjeyRhbGx9OiAkdmFscztcbiAgfVxuXG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZyAhZ2xvYmFsO1xufVxuIiwiLy8gVXNlZCBmb3IgY3JlYXRpbmcgdGhlIHNvdXJjZSBzdHJpbmcgZm9yIGZvbnRzIHVzaW5nIEBmb250LWZhY2Vcbi8vIFJlZmVyZW5jZTogaHR0cDovL2dvby5nbC9SdTFiS1BcblxuQGZ1bmN0aW9uIGZvbnQtdXJsLXByZWZpeGVyKCRhc3NldC1waXBlbGluZSkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYGZvbnQtdXJsLXByZWZpeGVyYCBpcyBkZXByZWNhdGVkIGFuZCBcIiArXG4gICAgXCJ3aWxsIGJlIHJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICBAaWYgJGFzc2V0LXBpcGVsaW5lID09IHRydWUge1xuICAgIEByZXR1cm4gZm9udC11cmw7XG4gIH0gQGVsc2Uge1xuICAgIEByZXR1cm4gdXJsO1xuICB9XG59XG5cbkBmdW5jdGlvbiBmb250LXNvdXJjZS1kZWNsYXJhdGlvbihcbiAgJGZvbnQtZmFtaWx5LFxuICAkZmlsZS1wYXRoLFxuICAkYXNzZXQtcGlwZWxpbmUsXG4gICRmaWxlLWZvcm1hdHMsXG4gICRmb250LXVybCkge1xuXG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgZm9udC1zb3VyY2UtZGVjbGFyYXRpb25gIGlzIGRlcHJlY2F0ZWQgXCIgK1xuICAgIFwiYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gICRzcmM6ICgpO1xuXG4gICRmb3JtYXRzLW1hcDogKFxuICAgIGVvdDogICBcIiN7JGZpbGUtcGF0aH0uZW90PyNpZWZpeFwiIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLFxuICAgIHdvZmYyOiBcIiN7JGZpbGUtcGF0aH0ud29mZjJcIiBmb3JtYXQoXCJ3b2ZmMlwiKSxcbiAgICB3b2ZmOiAgXCIjeyRmaWxlLXBhdGh9LndvZmZcIiBmb3JtYXQoXCJ3b2ZmXCIpLFxuICAgIHR0ZjogICBcIiN7JGZpbGUtcGF0aH0udHRmXCIgZm9ybWF0KFwidHJ1ZXR5cGVcIiksXG4gICAgc3ZnOiAgIFwiI3skZmlsZS1wYXRofS5zdmcjI3skZm9udC1mYW1pbHl9XCIgZm9ybWF0KFwic3ZnXCIpXG4gICk7XG5cbiAgQGVhY2ggJGtleSwgJHZhbHVlcyBpbiAkZm9ybWF0cy1tYXAge1xuICAgIEBpZiBjb250YWlucygkZmlsZS1mb3JtYXRzLCAka2V5KSB7XG4gICAgICAkZmlsZS1wYXRoOiBudGgoJHZhbHVlcywgMSk7XG4gICAgICAkZm9udC1mb3JtYXQ6IG50aCgkdmFsdWVzLCAyKTtcblxuICAgICAgQGlmICRhc3NldC1waXBlbGluZSA9PSB0cnVlIHtcbiAgICAgICAgJHNyYzogYXBwZW5kKCRzcmMsIGZvbnQtdXJsKCRmaWxlLXBhdGgpICRmb250LWZvcm1hdCwgY29tbWEpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICRzcmM6IGFwcGVuZCgkc3JjLCB1cmwoJGZpbGUtcGF0aCkgJGZvbnQtZm9ybWF0LCBjb21tYSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkc3JjO1xufVxuIiwiQGZ1bmN0aW9uIF9ncmFkaWVudC1wb3NpdGlvbnMtcGFyc2VyKCRncmFkaWVudC10eXBlLCAkZ3JhZGllbnQtcG9zaXRpb25zKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgX2dyYWRpZW50LXBvc2l0aW9ucy1wYXJzZXJgIGlzIFwiICtcbiAgICBcImRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZSAhZ2xvYmFsO1xuXG4gIEBpZiAkZ3JhZGllbnQtcG9zaXRpb25zXG4gIGFuZCAoJGdyYWRpZW50LXR5cGUgPT0gbGluZWFyKVxuICBhbmQgKHR5cGUtb2YoJGdyYWRpZW50LXBvc2l0aW9ucykgIT0gY29sb3IpIHtcbiAgICAkZ3JhZGllbnQtcG9zaXRpb25zOiBfbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIoJGdyYWRpZW50LXBvc2l0aW9ucyk7XG4gIH1cbiAgQGVsc2UgaWYgJGdyYWRpZW50LXBvc2l0aW9uc1xuICBhbmQgKCRncmFkaWVudC10eXBlID09IHJhZGlhbClcbiAgYW5kICh0eXBlLW9mKCRncmFkaWVudC1wb3NpdGlvbnMpICE9IGNvbG9yKSB7XG4gICAgJGdyYWRpZW50LXBvc2l0aW9uczogX3JhZGlhbC1wb3NpdGlvbnMtcGFyc2VyKCRncmFkaWVudC1wb3NpdGlvbnMpO1xuICB9XG5cbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nICFnbG9iYWw7XG5cbiAgQHJldHVybiAkZ3JhZGllbnQtcG9zaXRpb25zO1xufVxuIiwiLy8gUHJpdmF0ZSBmdW5jdGlvbiBmb3IgbGluZWFyLWdyYWRpZW50LXBhcnNlclxuQGZ1bmN0aW9uIF9saW5lYXItYW5nbGUtcGFyc2VyKCRpbWFnZSwgJGZpcnN0LXZhbCwgJHByZWZpeCwgJHN1ZmZpeCkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYF9saW5lYXItYW5nbGUtcGFyc2VyYCBpcyBcIiArXG4gICAgXCJkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICAkb2Zmc2V0OiBudWxsO1xuICAkdW5pdC1zaG9ydDogIHN0ci1zbGljZSgkZmlyc3QtdmFsLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpIC0gMiwgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XG4gICR1bml0LWxvbmc6ICAgc3RyLXNsaWNlKCRmaXJzdC12YWwsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkgLSAzLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcblxuICBAaWYgKCR1bml0LWxvbmcgPT0gXCJncmFkXCIpIG9yXG4gICAgICAoJHVuaXQtbG9uZyA9PSBcInR1cm5cIikge1xuICAgICRvZmZzZXQ6IGlmKCR1bml0LWxvbmcgPT0gXCJncmFkXCIsIC0xMDBncmFkICogMywgLTAuNzV0dXJuKTtcbiAgfVxuXG4gIEBlbHNlIGlmICgkdW5pdC1zaG9ydCA9PSBcImRlZ1wiKSBvclxuICAgICAgICAgICAoJHVuaXQtc2hvcnQgPT0gXCJyYWRcIikge1xuICAgICRvZmZzZXQ6IGlmKCR1bml0LXNob3J0ID09IFwiZGVnXCIsIC05MCAqIDMsIDEuNnJhZCk7XG4gIH1cblxuICBAaWYgJG9mZnNldCB7XG4gICAgJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZzogJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzO1xuICAgICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2UgIWdsb2JhbDtcblxuICAgICRudW06IF9zdHItdG8tbnVtKCRmaXJzdC12YWwpO1xuXG4gICAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nICFnbG9iYWw7XG5cbiAgICBAcmV0dXJuIChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkcHJlZml4ICsgKCRvZmZzZXQgLSAkbnVtKSArICRzdWZmaXgsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG59XG4iLCJAZnVuY3Rpb24gX2xpbmVhci1ncmFkaWVudC1wYXJzZXIoJGltYWdlKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgX2xpbmVhci1ncmFkaWVudC1wYXJzZXJgIGlzIFwiICtcbiAgICBcImRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZSAhZ2xvYmFsO1xuXG4gICRpbWFnZTogdW5xdW90ZSgkaW1hZ2UpO1xuICAkZ3JhZGllbnRzOiAoKTtcbiAgJHN0YXJ0OiBzdHItaW5kZXgoJGltYWdlLCBcIihcIik7XG4gICRlbmQ6IHN0ci1pbmRleCgkaW1hZ2UsIFwiLFwiKTtcbiAgJGZpcnN0LXZhbDogc3RyLXNsaWNlKCRpbWFnZSwgJHN0YXJ0ICsgMSwgJGVuZCAtIDEpO1xuXG4gICRwcmVmaXg6IHN0ci1zbGljZSgkaW1hZ2UsIDEsICRzdGFydCk7XG4gICRzdWZmaXg6IHN0ci1zbGljZSgkaW1hZ2UsICRlbmQsIHN0ci1sZW5ndGgoJGltYWdlKSk7XG5cbiAgJGhhcy1tdWx0aXBsZS12YWxzOiBzdHItaW5kZXgoJGZpcnN0LXZhbCwgXCIgXCIpO1xuICAkaGFzLXNpbmdsZS1wb3NpdGlvbjogdW5xdW90ZShfcG9zaXRpb24tZmxpcHBlcigkZmlyc3QtdmFsKSArIFwiXCIpO1xuICAkaGFzLWFuZ2xlOiBpcy1udW1iZXIoc3RyLXNsaWNlKCRmaXJzdC12YWwsIDEsIDEpKTtcblxuICBAaWYgJGhhcy1tdWx0aXBsZS12YWxzIHtcbiAgICAkZ3JhZGllbnRzOiBfbGluZWFyLXNpZGUtY29ybmVyLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgsICRoYXMtbXVsdGlwbGUtdmFscyk7XG4gIH1cblxuICBAZWxzZSBpZiAkaGFzLXNpbmdsZS1wb3NpdGlvbiAhPSBcIlwiIHtcbiAgICAkcG9zOiB1bnF1b3RlKCRoYXMtc2luZ2xlLXBvc2l0aW9uICsgXCJcIik7XG5cbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxuICAgICAgc3BlYy1pbWFnZTogJHByZWZpeCArIFwidG8gXCIgKyAkcG9zICsgJHN1ZmZpeFxuICAgICk7XG4gIH1cblxuICBAZWxzZSBpZiAkaGFzLWFuZ2xlIHtcbiAgICAvLyBSb3RhdGUgZGVncmVlIGZvciB3ZWJraXRcbiAgICAkZ3JhZGllbnRzOiBfbGluZWFyLWFuZ2xlLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgpO1xuICB9XG5cbiAgQGVsc2Uge1xuICAgICRncmFkaWVudHM6IChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkaW1hZ2UsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG5cbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nICFnbG9iYWw7XG5cbiAgQHJldHVybiAkZ3JhZGllbnRzO1xufVxuIiwiQGZ1bmN0aW9uIF9saW5lYXItcG9zaXRpb25zLXBhcnNlcigkcG9zKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgX2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyYCBpcyBcIiArXG4gICAgXCJkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nOiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2UgIWdsb2JhbDtcblxuICAkdHlwZTogdHlwZS1vZihudGgoJHBvcywgMSkpO1xuICAkc3BlYzogbnVsbDtcbiAgJGRlZ3JlZTogbnVsbDtcbiAgJHNpZGU6IG51bGw7XG4gICRjb3JuZXI6IG51bGw7XG4gICRsZW5ndGg6IGxlbmd0aCgkcG9zKTtcbiAgLy8gUGFyc2UgU2lkZSBhbmQgY29ybmVyIHBvc2l0aW9uc1xuICBAaWYgKCRsZW5ndGggPiAxKSB7XG4gICAgQGlmIG50aCgkcG9zLCAxKSA9PSBcInRvXCIgeyAvLyBOZXdlciBzeW50YXhcbiAgICAgICRzaWRlOiBudGgoJHBvcywgMik7XG5cbiAgICAgIEBpZiAkbGVuZ3RoID09IDIgeyAvLyBlZy4gdG8gdG9wXG4gICAgICAgIC8vIFN3YXAgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5XG4gICAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKG50aCgkcG9zLCAyKSk7XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiAkbGVuZ3RoID09IDMgeyAvLyBlZy4gdG8gdG9wIGxlZnRcbiAgICAgICAgJGNvcm5lcjogbnRoKCRwb3MsIDMpO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSBpZiAkbGVuZ3RoID09IDIgeyAvLyBPbGRlciBzeW50YXggKFwidG9wIGxlZnRcIilcbiAgICAgICRzaWRlOiBfcG9zaXRpb24tZmxpcHBlcihudGgoJHBvcywgMSkpO1xuICAgICAgJGNvcm5lcjogX3Bvc2l0aW9uLWZsaXBwZXIobnRoKCRwb3MsIDIpKTtcbiAgICB9XG5cbiAgICBAaWYgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwibGVmdCB0b3BcIikgb3IgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwidG9wIGxlZnRcIikge1xuICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIoI3skc2lkZX0pIF9wb3NpdGlvbi1mbGlwcGVyKCN7JGNvcm5lcn0pO1xuICAgIH1cbiAgICBAZWxzZSBpZiAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJyaWdodCB0b3BcIikgb3IgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwidG9wIHJpZ2h0XCIpIHtcbiAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKCN7JHNpZGV9KSBfcG9zaXRpb24tZmxpcHBlcigjeyRjb3JuZXJ9KTtcbiAgICB9XG4gICAgQGVsc2UgaWYgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwicmlnaHQgYm90dG9tXCIpIG9yIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcImJvdHRvbSByaWdodFwiKSB7XG4gICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcigjeyRzaWRlfSkgX3Bvc2l0aW9uLWZsaXBwZXIoI3skY29ybmVyfSk7XG4gICAgfVxuICAgIEBlbHNlIGlmIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcImxlZnQgYm90dG9tXCIpIG9yIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcImJvdHRvbSBsZWZ0XCIpIHtcbiAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKCN7JHNpZGV9KSBfcG9zaXRpb24tZmxpcHBlcigjeyRjb3JuZXJ9KTtcbiAgICB9XG4gICAgJHNwZWM6IHRvICRzaWRlICRjb3JuZXI7XG4gIH1cbiAgQGVsc2UgaWYgJGxlbmd0aCA9PSAxIHtcbiAgICAvLyBTd2FwIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eVxuICAgIEBpZiAkdHlwZSA9PSBzdHJpbmcge1xuICAgICAgJGRlZ3JlZTogJHBvcztcbiAgICAgICRzcGVjOiB0byBfcG9zaXRpb24tZmxpcHBlcigkcG9zKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJGRlZ3JlZTogLTI3MCAtICRwb3M7IC8vcm90YXRlIHRoZSBncmFkaWVudCBvcHBvc2l0ZSBmcm9tIHNwZWNcbiAgICAgICRzcGVjOiAkcG9zO1xuICAgIH1cbiAgfVxuICAkZGVncmVlOiB1bnF1b3RlKCRkZWdyZWUgKyBcIixcIik7XG4gICRzcGVjOiAgIHVucXVvdGUoJHNwZWMgKyBcIixcIik7XG5cbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nICFnbG9iYWw7XG5cbiAgQHJldHVybiAkZGVncmVlICRzcGVjO1xufVxuXG5AZnVuY3Rpb24gX3Bvc2l0aW9uLWZsaXBwZXIoJHBvcykge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYF9wb3NpdGlvbi1mbGlwcGVyYCBpcyBcIiArXG4gICAgXCJkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICBAcmV0dXJuIGlmKCRwb3MgPT0gbGVmdCwgcmlnaHQsIG51bGwpXG4gICAgICAgICBpZigkcG9zID09IHJpZ2h0LCBsZWZ0LCBudWxsKVxuICAgICAgICAgaWYoJHBvcyA9PSB0b3AsIGJvdHRvbSwgbnVsbClcbiAgICAgICAgIGlmKCRwb3MgPT0gYm90dG9tLCB0b3AsIG51bGwpO1xufVxuIiwiLy8gUHJpdmF0ZSBmdW5jdGlvbiBmb3IgbGluZWFyLWdyYWRpZW50LXBhcnNlclxuQGZ1bmN0aW9uIF9saW5lYXItc2lkZS1jb3JuZXItcGFyc2VyKCRpbWFnZSwgJGZpcnN0LXZhbCwgJHByZWZpeCwgJHN1ZmZpeCwgJGhhcy1tdWx0aXBsZS12YWxzKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgX2xpbmVhci1zaWRlLWNvcm5lci1wYXJzZXJgIGlzIFwiICtcbiAgICBcImRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZSAhZ2xvYmFsO1xuXG4gICR2YWwtMTogc3RyLXNsaWNlKCRmaXJzdC12YWwsIDEsICRoYXMtbXVsdGlwbGUtdmFscyAtIDEpO1xuICAkdmFsLTI6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAkaGFzLW11bHRpcGxlLXZhbHMgKyAxLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcbiAgJHZhbC0zOiBudWxsO1xuICAkaGFzLXZhbC0zOiBzdHItaW5kZXgoJHZhbC0yLCBcIiBcIik7XG5cbiAgQGlmICRoYXMtdmFsLTMge1xuICAgICR2YWwtMzogc3RyLXNsaWNlKCR2YWwtMiwgJGhhcy12YWwtMyArIDEsIHN0ci1sZW5ndGgoJHZhbC0yKSk7XG4gICAgJHZhbC0yOiBzdHItc2xpY2UoJHZhbC0yLCAxLCAkaGFzLXZhbC0zIC0gMSk7XG4gIH1cblxuICAkcG9zOiBfcG9zaXRpb24tZmxpcHBlcigkdmFsLTEpIF9wb3NpdGlvbi1mbGlwcGVyKCR2YWwtMikgX3Bvc2l0aW9uLWZsaXBwZXIoJHZhbC0zKTtcbiAgJHBvczogdW5xdW90ZSgkcG9zICsgXCJcIik7XG5cbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nICFnbG9iYWw7XG5cbiAgLy8gVXNlIG9sZCBzcGVjIGZvciB3ZWJraXRcbiAgQGlmICR2YWwtMSA9PSBcInRvXCIge1xuICAgIEByZXR1cm4gKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRwcmVmaXggKyAkcG9zICsgJHN1ZmZpeCxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cblxuICAvLyBCcmluZyB0aGUgY29kZSB1cCB0byBzcGVjXG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkaW1hZ2UsXG4gICAgICBzcGVjLWltYWdlOiAkcHJlZml4ICsgXCJ0byBcIiArICRwb3MgKyAkc3VmZml4XG4gICAgKTtcbiAgfVxufVxuIiwiQGZ1bmN0aW9uIF9yYWRpYWwtYXJnLXBhcnNlcigkZzEsICRnMiwgJHBvcywgJHNoYXBlLXNpemUpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBfcmFkaWFsLWFyZy1wYXJzZXJgIGlzIFwiICtcbiAgICBcImRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gIEBlYWNoICR2YWx1ZSBpbiAkZzEsICRnMiB7XG4gICAgJGZpcnN0LXZhbDogbnRoKCR2YWx1ZSwgMSk7XG4gICAgJHBvcy10eXBlOiAgdHlwZS1vZigkZmlyc3QtdmFsKTtcbiAgICAkc3BlYy1hdC1pbmRleDogbnVsbDtcblxuICAgIC8vIERldGVybWluZSBpZiBzcGVjIHdhcyBwYXNzZWQgdG8gbWl4aW5cbiAgICBAaWYgdHlwZS1vZigkdmFsdWUpID09IGxpc3Qge1xuICAgICAgJHNwZWMtYXQtaW5kZXg6IGlmKGluZGV4KCR2YWx1ZSwgYXQpLCBpbmRleCgkdmFsdWUsIGF0KSwgZmFsc2UpO1xuICAgIH1cbiAgICBAaWYgJHNwZWMtYXQtaW5kZXgge1xuICAgICAgQGlmICRzcGVjLWF0LWluZGV4ID4gMSB7XG4gICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggKCRzcGVjLWF0LWluZGV4IC0gMSkge1xuICAgICAgICAgICRzaGFwZS1zaXplOiAkc2hhcGUtc2l6ZSBudGgoJHZhbHVlLCAkaSk7XG4gICAgICAgIH1cbiAgICAgICAgQGZvciAkaSBmcm9tICgkc3BlYy1hdC1pbmRleCArIDEpIHRocm91Z2ggbGVuZ3RoKCR2YWx1ZSkge1xuICAgICAgICAgICRwb3M6ICRwb3MgbnRoKCR2YWx1ZSwgJGkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiAkc3BlYy1hdC1pbmRleCA9PSAxIHtcbiAgICAgICAgQGZvciAkaSBmcm9tICgkc3BlYy1hdC1pbmRleCArIDEpIHRocm91Z2ggbGVuZ3RoKCR2YWx1ZSkge1xuICAgICAgICAgICRwb3M6ICRwb3MgbnRoKCR2YWx1ZSwgJGkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAkZzE6IG51bGw7XG4gICAgfVxuXG4gICAgLy8gSWYgbm90IHNwZWMgY2FsY3VsYXRlIGNvcnJlY3QgdmFsdWVzXG4gICAgQGVsc2Uge1xuICAgICAgQGlmICgkcG9zLXR5cGUgIT0gY29sb3IpIG9yICgkZmlyc3QtdmFsICE9IFwidHJhbnNwYXJlbnRcIikge1xuICAgICAgICBAaWYgKCRwb3MtdHlwZSA9PSBudW1iZXIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY2VudGVyXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwidG9wXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwicmlnaHRcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJib3R0b21cIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJsZWZ0XCIpIHtcblxuICAgICAgICAgICRwb3M6ICR2YWx1ZTtcblxuICAgICAgICAgIEBpZiAkcG9zID09ICRnMSB7XG4gICAgICAgICAgICAkZzE6IG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVsc2UgaWZcbiAgICAgICAgICAgKCRmaXJzdC12YWwgPT0gXCJlbGxpcHNlXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY2lyY2xlXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY2xvc2VzdC1zaWRlXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY2xvc2VzdC1jb3JuZXJcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJmYXJ0aGVzdC1zaWRlXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiZmFydGhlc3QtY29ybmVyXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY29udGFpblwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNvdmVyXCIpIHtcblxuICAgICAgICAgICRzaGFwZS1zaXplOiAkdmFsdWU7XG5cbiAgICAgICAgICBAaWYgJHZhbHVlID09ICRnMSB7XG4gICAgICAgICAgICAkZzE6IG51bGw7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGVsc2UgaWYgJHZhbHVlID09ICRnMiB7XG4gICAgICAgICAgICAkZzI6IG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEByZXR1cm4gJGcxLCAkZzIsICRwb3MsICRzaGFwZS1zaXplO1xufVxuIiwiQGZ1bmN0aW9uIF9yYWRpYWwtcG9zaXRpb25zLXBhcnNlcigkZ3JhZGllbnQtcG9zKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgX3JhZGlhbC1wb3NpdGlvbnMtcGFyc2VyYCBpcyBcIiArXG4gICAgXCJkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nOiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2UgIWdsb2JhbDtcblxuICAkc2hhcGUtc2l6ZTogbnRoKCRncmFkaWVudC1wb3MsIDEpO1xuICAkcG9zOiAgICAgICAgbnRoKCRncmFkaWVudC1wb3MsIDIpO1xuICAkc2hhcGUtc2l6ZS1zcGVjOiBfc2hhcGUtc2l6ZS1zdHJpcHBlcigkc2hhcGUtc2l6ZSk7XG5cbiAgJHByZS1zcGVjOiB1bnF1b3RlKGlmKCRwb3MsIFwiI3skcG9zfSwgXCIsIG51bGwpKVxuICAgICAgICAgICAgIHVucXVvdGUoaWYoJHNoYXBlLXNpemUsIFwiI3skc2hhcGUtc2l6ZX0sXCIsIG51bGwpKTtcbiAgJHBvcy1zcGVjOiBpZigkcG9zLCBcImF0ICN7JHBvc31cIiwgbnVsbCk7XG5cbiAgJHNwZWM6IFwiI3skc2hhcGUtc2l6ZS1zcGVjfSAjeyRwb3Mtc3BlY31cIjtcblxuICAvLyBBZGQgY29tbWFcbiAgQGlmICgkc3BlYyAhPSBcIiAgXCIpIHtcbiAgICAkc3BlYzogXCIjeyRzcGVjfSxcIjtcbiAgfVxuXG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZyAhZ2xvYmFsO1xuXG4gIEByZXR1cm4gJHByZS1zcGVjICRzcGVjO1xufVxuIiwiQGZ1bmN0aW9uIF9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyKCRpbWFnZSkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYF9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyYCBpcyBcIiArXG4gICAgXCJkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICAkaW1hZ2U6IHVucXVvdGUoJGltYWdlKTtcbiAgJGdyYWRpZW50czogKCk7XG4gICRzdGFydDogc3RyLWluZGV4KCRpbWFnZSwgXCIoXCIpO1xuICAkZW5kOiBzdHItaW5kZXgoJGltYWdlLCBcIixcIik7XG4gICRmaXJzdC12YWw6IHN0ci1zbGljZSgkaW1hZ2UsICRzdGFydCArIDEsICRlbmQgLSAxKTtcblxuICAkcHJlZml4OiBzdHItc2xpY2UoJGltYWdlLCAxLCAkc3RhcnQpO1xuICAkc3VmZml4OiBzdHItc2xpY2UoJGltYWdlLCAkZW5kLCBzdHItbGVuZ3RoKCRpbWFnZSkpO1xuXG4gICRpcy1zcGVjLXN5bnRheDogc3RyLWluZGV4KCRmaXJzdC12YWwsIFwiYXRcIik7XG5cbiAgQGlmICRpcy1zcGVjLXN5bnRheCBhbmQgJGlzLXNwZWMtc3ludGF4ID4gMSB7XG4gICAgJGtleXdvcmQ6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAxLCAkaXMtc3BlYy1zeW50YXggLSAyKTtcbiAgICAkcG9zOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgJGlzLXNwZWMtc3ludGF4ICsgMywgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XG4gICAgJHBvczogYXBwZW5kKCRwb3MsICRrZXl3b3JkLCBjb21tYSk7XG5cbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJHByZWZpeCArICRwb3MgKyAkc3VmZml4LFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxuXG4gIEBlbHNlIGlmICRpcy1zcGVjLXN5bnRheCA9PSAxIHtcbiAgICAkcG9zOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgJGlzLXNwZWMtc3ludGF4ICsgMywgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XG5cbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJHByZWZpeCArICRwb3MgKyAkc3VmZml4LFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxuXG4gIEBlbHNlIGlmIHN0ci1pbmRleCgkaW1hZ2UsIFwiY292ZXJcIikgb3Igc3RyLWluZGV4KCRpbWFnZSwgXCJjb250YWluXCIpIHtcbiAgICBAd2FybiBcIlJhZGlhbC1ncmFkaWVudCBuZWVkcyB0byBiZSB1cGRhdGVkIHRvIGNvbmZvcm0gdG8gbGF0ZXN0IHNwZWMuXCI7XG5cbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IG51bGwsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG5cbiAgQGVsc2Uge1xuICAgICRncmFkaWVudHM6IChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkaW1hZ2UsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG5cbiAgQHJldHVybiAkZ3JhZGllbnRzO1xufVxuIiwiLy8gVXNlciBmb3IgbGluZWFyIGFuZCByYWRpYWwgZ3JhZGllbnRzIHdpdGhpbiBiYWNrZ3JvdW5kLWltYWdlIG9yIGJvcmRlci1pbWFnZSBwcm9wZXJ0aWVzXG5cbkBmdW5jdGlvbiBfcmVuZGVyLWdyYWRpZW50cygkZ3JhZGllbnQtcG9zaXRpb25zLCAkZ3JhZGllbnRzLCAkZ3JhZGllbnQtdHlwZSwgJHZlbmRvcjogZmFsc2UpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBfcmVuZGVyLWdyYWRpZW50c2AgaXMgXCIgK1xuICAgIFwiZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgJHByZS1zcGVjOiBudWxsO1xuICAkc3BlYzogbnVsbDtcbiAgJHZlbmRvci1ncmFkaWVudHM6IG51bGw7XG4gIEBpZiAkZ3JhZGllbnQtdHlwZSA9PSBsaW5lYXIge1xuICAgIEBpZiAkZ3JhZGllbnQtcG9zaXRpb25zIHtcbiAgICAgICRwcmUtc3BlYzogbnRoKCRncmFkaWVudC1wb3NpdGlvbnMsIDEpO1xuICAgICAgJHNwZWM6ICAgICBudGgoJGdyYWRpZW50LXBvc2l0aW9ucywgMik7XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IHJhZGlhbCB7XG4gICAgJHByZS1zcGVjOiBudGgoJGdyYWRpZW50LXBvc2l0aW9ucywgMSk7XG4gICAgJHNwZWM6ICAgICBudGgoJGdyYWRpZW50LXBvc2l0aW9ucywgMik7XG4gIH1cblxuICBAaWYgJHZlbmRvciB7XG4gICAgJHZlbmRvci1ncmFkaWVudHM6IC0jeyR2ZW5kb3J9LSN7JGdyYWRpZW50LXR5cGV9LWdyYWRpZW50KCN7JHByZS1zcGVjfSAkZ3JhZGllbnRzKTtcbiAgfVxuICBAZWxzZSBpZiAkdmVuZG9yID09IGZhbHNlIHtcbiAgICAkdmVuZG9yLWdyYWRpZW50czogXCIjeyRncmFkaWVudC10eXBlfS1ncmFkaWVudCgjeyRzcGVjfSAjeyRncmFkaWVudHN9KVwiO1xuICAgICR2ZW5kb3ItZ3JhZGllbnRzOiB1bnF1b3RlKCR2ZW5kb3ItZ3JhZGllbnRzKTtcbiAgfVxuICBAcmV0dXJuICR2ZW5kb3ItZ3JhZGllbnRzO1xufVxuIiwiQGZ1bmN0aW9uIF9zaGFwZS1zaXplLXN0cmlwcGVyKCRzaGFwZS1zaXplKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgX3NoYXBlLXNpemUtc3RyaXBwZXJgIGlzIFwiICtcbiAgICBcImRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gICRzaGFwZS1zaXplLXNwZWM6IG51bGw7XG4gIEBlYWNoICR2YWx1ZSBpbiAkc2hhcGUtc2l6ZSB7XG4gICAgQGlmICgkdmFsdWUgPT0gXCJjb3ZlclwiKSBvciAoJHZhbHVlID09IFwiY29udGFpblwiKSB7XG4gICAgICAkdmFsdWU6IG51bGw7XG4gICAgfVxuICAgICRzaGFwZS1zaXplLXNwZWM6IFwiI3skc2hhcGUtc2l6ZS1zcGVjfSAjeyR2YWx1ZX1cIjtcbiAgfVxuICBAcmV0dXJuICRzaGFwZS1zaXplLXNwZWM7XG59XG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyBIZWxwZXIgZnVuY3Rpb24gZm9yIGxpbmVhci9yYWRpYWwtZ3JhZGllbnQtcGFyc2Vycy5cbi8vIFNvdXJjZTogaHR0cDovL3Nhc3NtZWlzdGVyLmNvbS9naXN0Lzk2NDc0MDhcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbkBmdW5jdGlvbiBfc3RyLXRvLW51bSgkc3RyaW5nKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgX3N0ci10by1udW1gIGlzIFwiICtcbiAgICBcImRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gIC8vIE1hdHJpY2VzXG4gICRzdHJpbmdzOiBcIjBcIiBcIjFcIiBcIjJcIiBcIjNcIiBcIjRcIiBcIjVcIiBcIjZcIiBcIjdcIiBcIjhcIiBcIjlcIjtcbiAgJG51bWJlcnM6ICAwICAgMSAgIDIgICAzICAgNCAgIDUgICA2ICAgNyAgIDggICA5O1xuXG4gIC8vIFJlc3VsdFxuICAkcmVzdWx0OiAwO1xuICAkZGl2aWRlcjogMDtcbiAgJG1pbnVzOiBmYWxzZTtcblxuICAvLyBMb29waW5nIHRocm91Z2ggYWxsIGNoYXJhY3RlcnNcbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBzdHItbGVuZ3RoKCRzdHJpbmcpIHtcbiAgICAkY2hhcmFjdGVyOiBzdHItc2xpY2UoJHN0cmluZywgJGksICRpKTtcbiAgICAkaW5kZXg6IGluZGV4KCRzdHJpbmdzLCAkY2hhcmFjdGVyKTtcblxuICAgIEBpZiAkY2hhcmFjdGVyID09IFwiLVwiIHtcbiAgICAgICRtaW51czogdHJ1ZTtcbiAgICB9XG5cbiAgICBAZWxzZSBpZiAkY2hhcmFjdGVyID09IFwiLlwiIHtcbiAgICAgICRkaXZpZGVyOiAxO1xuICAgIH1cblxuICAgIEBlbHNlIHtcbiAgICAgIEBpZiBub3QgJGluZGV4IHtcbiAgICAgICAgJHJlc3VsdDogaWYoJG1pbnVzLCAkcmVzdWx0ICogLTEsICRyZXN1bHQpO1xuICAgICAgICBAcmV0dXJuIF9jb252ZXJ0LXVuaXRzKCRyZXN1bHQsIHN0ci1zbGljZSgkc3RyaW5nLCAkaSkpO1xuICAgICAgfVxuXG4gICAgICAkbnVtYmVyOiBudGgoJG51bWJlcnMsICRpbmRleCk7XG5cbiAgICAgIEBpZiAkZGl2aWRlciA9PSAwIHtcbiAgICAgICAgJHJlc3VsdDogJHJlc3VsdCAqIDEwO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSB7XG4gICAgICAgIC8vIE1vdmUgdGhlIGRlY2ltYWwgZG90IHRvIHRoZSBsZWZ0XG4gICAgICAgICRkaXZpZGVyOiAkZGl2aWRlciAqIDEwO1xuICAgICAgICAkbnVtYmVyOiAkbnVtYmVyIC8gJGRpdmlkZXI7XG4gICAgICB9XG5cbiAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKyAkbnVtYmVyO1xuICAgIH1cbiAgfVxuICBAcmV0dXJuIGlmKCRtaW51cywgJHJlc3VsdCAqIC0xLCAkcmVzdWx0KTtcbn1cbiIsIi8vIGh0dHA6Ly93d3cudzMub3JnL1RSL2NzczMtYW5pbWF0aW9ucy8jdGhlLWFuaW1hdGlvbi1uYW1lLXByb3BlcnR5LVxuLy8gRWFjaCBvZiB0aGVzZSBtaXhpbnMgc3VwcG9ydCBjb21tYSBzZXBhcmF0ZWQgbGlzdHMgb2YgdmFsdWVzLCB3aGljaCBhbGxvd3MgZGlmZmVyZW50IHRyYW5zaXRpb25zIGZvciBpbmRpdmlkdWFsIHByb3BlcnRpZXMgdG8gYmUgZGVzY3JpYmVkIGluIGEgc2luZ2xlIHN0eWxlIHJ1bGUuIEVhY2ggdmFsdWUgaW4gdGhlIGxpc3QgY29ycmVzcG9uZHMgdG8gdGhlIHZhbHVlIGF0IHRoYXQgc2FtZSBwb3NpdGlvbiBpbiB0aGUgb3RoZXIgcHJvcGVydGllcy5cblxuQG1peGluIGFuaW1hdGlvbigkYW5pbWF0aW9ucy4uLikge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImFuaW1hdGlvblwiKTtcblxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24sICRhbmltYXRpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLW5hbWUoJG5hbWVzLi4uKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYW5pbWF0aW9uLW5hbWVcIik7XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLW5hbWUsICRuYW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1kdXJhdGlvbigkdGltZXMuLi4pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJhbmltYXRpb24tZHVyYXRpb25cIik7XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWR1cmF0aW9uLCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uKCRtb3Rpb25zLi4uKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvblwiKTtcblxuICAvLyBlYXNlIHwgbGluZWFyIHwgZWFzZS1pbiB8IGVhc2Utb3V0IHwgZWFzZS1pbi1vdXRcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbiwgJG1vdGlvbnMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50KCR2YWx1ZXMuLi4pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJhbmltYXRpb24taXRlcmF0aW9uLWNvdW50XCIpO1xuXG4gIC8vIGluZmluaXRlIHwgPG51bWJlcj5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgJHZhbHVlcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1kaXJlY3Rpb24oJGRpcmVjdGlvbnMuLi4pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJhbmltYXRpb24tZGlyZWN0aW9uXCIpO1xuXG4gIC8vIG5vcm1hbCB8IGFsdGVybmF0ZVxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZGlyZWN0aW9uLCAkZGlyZWN0aW9ucywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1wbGF5LXN0YXRlKCRzdGF0ZXMuLi4pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJhbmltYXRpb24tcGxheS1zdGF0ZVwiKTtcblxuICAvLyBydW5uaW5nIHwgcGF1c2VkXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1wbGF5LXN0YXRlLCAkc3RhdGVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLWRlbGF5KCR0aW1lcy4uLikge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImFuaW1hdGlvbi1kZWxheVwiKTtcblxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZGVsYXksICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1maWxsLW1vZGUoJG1vZGVzLi4uKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYW5pbWF0aW9uLWZpbGwtbW9kZVwiKTtcblxuICAvLyBub25lIHwgZm9yd2FyZHMgfCBiYWNrd2FyZHMgfCBib3RoXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1maWxsLW1vZGUsICRtb2Rlcywgd2Via2l0IG1veiBzcGVjKTtcbn1cbiIsIkBtaXhpbiBhcHBlYXJhbmNlKCR2YWx1ZSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImFwcGVhcmFuY2VcIik7XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoYXBwZWFyYW5jZSwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG59XG4iLCJAbWl4aW4gYmFja2ZhY2UtdmlzaWJpbGl0eSgkdmlzaWJpbGl0eSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImJhY2tmYWNlLXZpc2liaWxpdHlcIik7XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoYmFja2ZhY2UtdmlzaWJpbGl0eSwgJHZpc2liaWxpdHksIHdlYmtpdCBzcGVjKTtcbn1cbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIEJhY2tncm91bmQgcHJvcGVydHkgZm9yIGFkZGluZyBtdWx0aXBsZSBiYWNrZ3JvdW5kcyB1c2luZyBzaG9ydGhhbmRcbi8vIG5vdGF0aW9uLlxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuXG5AbWl4aW4gYmFja2dyb3VuZCgkYmFja2dyb3VuZHMuLi4pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJiYWNrZ3JvdW5kXCIpO1xuXG4gICR3ZWJraXQtYmFja2dyb3VuZHM6ICgpO1xuICAkc3BlYy1iYWNrZ3JvdW5kczogKCk7XG5cbiAgQGVhY2ggJGJhY2tncm91bmQgaW4gJGJhY2tncm91bmRzIHtcbiAgICAkd2Via2l0LWJhY2tncm91bmQ6ICgpO1xuICAgICRzcGVjLWJhY2tncm91bmQ6ICgpO1xuICAgICRiYWNrZ3JvdW5kLXR5cGU6IHR5cGUtb2YoJGJhY2tncm91bmQpO1xuXG4gICAgQGlmICRiYWNrZ3JvdW5kLXR5cGUgPT0gc3RyaW5nIG9yICRiYWNrZ3JvdW5kLXR5cGUgPT0gbGlzdCB7XG4gICAgICAkYmFja2dyb3VuZC1zdHI6IGlmKCRiYWNrZ3JvdW5kLXR5cGUgPT0gbGlzdCwgbnRoKCRiYWNrZ3JvdW5kLCAxKSwgJGJhY2tncm91bmQpO1xuXG4gICAgICAkdXJsLXN0cjogICAgICAgc3RyLXNsaWNlKCRiYWNrZ3JvdW5kLXN0ciwgMSwgMyk7XG4gICAgICAkZ3JhZGllbnQtdHlwZTogc3RyLXNsaWNlKCRiYWNrZ3JvdW5kLXN0ciwgMSwgNik7XG5cbiAgICAgIEBpZiAkdXJsLXN0ciA9PSBcInVybFwiIHtcbiAgICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICAgICAgJHNwZWMtYmFja2dyb3VuZDogICAkYmFja2dyb3VuZDtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJsaW5lYXJcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9saW5lYXItZ3JhZGllbnQtcGFyc2VyKFwiI3skYmFja2dyb3VuZH1cIik7XG4gICAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xuICAgICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwicmFkaWFsXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcihcIiN7JGJhY2tncm91bmR9XCIpO1xuICAgICAgICAkd2Via2l0LWJhY2tncm91bmQ6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtYmFja2dyb3VuZDogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSB7XG4gICAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgJGJhY2tncm91bmQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGVsc2Uge1xuICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgJGJhY2tncm91bmQ7XG4gICAgfVxuXG4gICAgJHdlYmtpdC1iYWNrZ3JvdW5kczogYXBwZW5kKCR3ZWJraXQtYmFja2dyb3VuZHMsICR3ZWJraXQtYmFja2dyb3VuZCwgY29tbWEpO1xuICAgICRzcGVjLWJhY2tncm91bmRzOiAgIGFwcGVuZCgkc3BlYy1iYWNrZ3JvdW5kcywgICAkc3BlYy1iYWNrZ3JvdW5kLCAgIGNvbW1hKTtcbiAgfVxuXG4gIGJhY2tncm91bmQ6ICR3ZWJraXQtYmFja2dyb3VuZHM7XG4gIGJhY2tncm91bmQ6ICRzcGVjLWJhY2tncm91bmRzO1xufVxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gQmFja2dyb3VuZC1pbWFnZSBwcm9wZXJ0eSBmb3IgYWRkaW5nIG11bHRpcGxlIGJhY2tncm91bmQgaW1hZ2VzIHdpdGhcbi8vIGdyYWRpZW50cywgb3IgZm9yIHN0cmluZ2luZyBtdWx0aXBsZSBncmFkaWVudHMgdG9nZXRoZXIuXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5cbkBtaXhpbiBiYWNrZ3JvdW5kLWltYWdlKCRpbWFnZXMuLi4pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJiYWNrZ3JvdW5kLWltYWdlXCIpO1xuXG4gICR3ZWJraXQtaW1hZ2VzOiAoKTtcbiAgJHNwZWMtaW1hZ2VzOiAoKTtcblxuICBAZWFjaCAkaW1hZ2UgaW4gJGltYWdlcyB7XG4gICAgJHdlYmtpdC1pbWFnZTogKCk7XG4gICAgJHNwZWMtaW1hZ2U6ICgpO1xuXG4gICAgQGlmICh0eXBlLW9mKCRpbWFnZSkgPT0gc3RyaW5nKSB7XG4gICAgICAkdXJsLXN0cjogICAgICAgc3RyLXNsaWNlKCRpbWFnZSwgMSwgMyk7XG4gICAgICAkZ3JhZGllbnQtdHlwZTogc3RyLXNsaWNlKCRpbWFnZSwgMSwgNik7XG5cbiAgICAgIEBpZiAkdXJsLXN0ciA9PSBcInVybFwiIHtcbiAgICAgICAgJHdlYmtpdC1pbWFnZTogJGltYWdlO1xuICAgICAgICAkc3BlYy1pbWFnZTogICAkaW1hZ2U7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwibGluZWFyXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfbGluZWFyLWdyYWRpZW50LXBhcnNlcigkaW1hZ2UpO1xuICAgICAgICAkd2Via2l0LWltYWdlOiAgbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xuICAgICAgICAkc3BlYy1pbWFnZTogICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJyYWRpYWxcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyKCRpbWFnZSk7XG4gICAgICAgICR3ZWJraXQtaW1hZ2U6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtaW1hZ2U6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAkd2Via2l0LWltYWdlczogYXBwZW5kKCR3ZWJraXQtaW1hZ2VzLCAkd2Via2l0LWltYWdlLCBjb21tYSk7XG4gICAgJHNwZWMtaW1hZ2VzOiAgIGFwcGVuZCgkc3BlYy1pbWFnZXMsICAgJHNwZWMtaW1hZ2UsICAgY29tbWEpO1xuICB9XG5cbiAgYmFja2dyb3VuZC1pbWFnZTogJHdlYmtpdC1pbWFnZXM7XG4gIGJhY2tncm91bmQtaW1hZ2U6ICRzcGVjLWltYWdlcztcbn1cbiIsIkBtaXhpbiBib3JkZXItaW1hZ2UoJGJvcmRlcnMuLi4pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJib3JkZXItaW1hZ2VcIik7XG5cbiAgJHdlYmtpdC1ib3JkZXJzOiAoKTtcbiAgJHNwZWMtYm9yZGVyczogKCk7XG5cbiAgQGVhY2ggJGJvcmRlciBpbiAkYm9yZGVycyB7XG4gICAgJHdlYmtpdC1ib3JkZXI6ICgpO1xuICAgICRzcGVjLWJvcmRlcjogKCk7XG4gICAgJGJvcmRlci10eXBlOiB0eXBlLW9mKCRib3JkZXIpO1xuXG4gICAgQGlmICRib3JkZXItdHlwZSA9PSBzdHJpbmcgb3IgbGlzdCB7XG4gICAgICAkYm9yZGVyLXN0cjogaWYoJGJvcmRlci10eXBlID09IGxpc3QsIG50aCgkYm9yZGVyLCAxKSwgJGJvcmRlcik7XG5cbiAgICAgICR1cmwtc3RyOiAgICAgICBzdHItc2xpY2UoJGJvcmRlci1zdHIsIDEsIDMpO1xuICAgICAgJGdyYWRpZW50LXR5cGU6IHN0ci1zbGljZSgkYm9yZGVyLXN0ciwgMSwgNik7XG5cbiAgICAgIEBpZiAkdXJsLXN0ciA9PSBcInVybFwiIHtcbiAgICAgICAgJHdlYmtpdC1ib3JkZXI6ICRib3JkZXI7XG4gICAgICAgICRzcGVjLWJvcmRlcjogICAkYm9yZGVyO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcImxpbmVhclwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX2xpbmVhci1ncmFkaWVudC1wYXJzZXIoXCIjeyRib3JkZXJ9XCIpO1xuICAgICAgICAkd2Via2l0LWJvcmRlcjogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xuICAgICAgICAkc3BlYy1ib3JkZXI6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJyYWRpYWxcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyKFwiI3skYm9yZGVyfVwiKTtcbiAgICAgICAgJHdlYmtpdC1ib3JkZXI6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtYm9yZGVyOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJHdlYmtpdC1ib3JkZXI6ICRib3JkZXI7XG4gICAgICAgICRzcGVjLWJvcmRlcjogICAkYm9yZGVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBlbHNlIHtcbiAgICAgICR3ZWJraXQtYm9yZGVyOiAkYm9yZGVyO1xuICAgICAgJHNwZWMtYm9yZGVyOiAgICRib3JkZXI7XG4gICAgfVxuXG4gICAgJHdlYmtpdC1ib3JkZXJzOiBhcHBlbmQoJHdlYmtpdC1ib3JkZXJzLCAkd2Via2l0LWJvcmRlciwgY29tbWEpO1xuICAgICRzcGVjLWJvcmRlcnM6ICAgYXBwZW5kKCRzcGVjLWJvcmRlcnMsICAgJHNwZWMtYm9yZGVyLCAgIGNvbW1hKTtcbiAgfVxuXG4gIC13ZWJraXQtYm9yZGVyLWltYWdlOiAkd2Via2l0LWJvcmRlcnM7XG4gICAgICAgICAgYm9yZGVyLWltYWdlOiAkc3BlYy1ib3JkZXJzO1xuICAgICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG59XG5cbi8vRXhhbXBsZXM6XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UodXJsKFwiaW1hZ2UucG5nXCIpKTtcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZSh1cmwoXCJpbWFnZS5wbmdcIikgMjAgc3RyZXRjaCk7XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UobGluZWFyLWdyYWRpZW50KDQ1ZGVnLCBvcmFuZ2UsIHllbGxvdykpO1xuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKGxpbmVhci1ncmFkaWVudCg0NWRlZywgb3JhbmdlLCB5ZWxsb3cpIHN0cmV0Y2gpO1xuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKGxpbmVhci1ncmFkaWVudCg0NWRlZywgb3JhbmdlLCB5ZWxsb3cpIDIwIDMwIDQwIDUwIHN0cmV0Y2ggcm91bmQpO1xuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKHJhZGlhbC1ncmFkaWVudCh0b3AsIGNvdmVyLCBvcmFuZ2UsIHllbGxvdywgb3JhbmdlKSk7XG4iLCJAbWl4aW4gY2FsYygkcHJvcGVydHksICR2YWx1ZSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImNhbGNcIik7XG5cbiAgI3skcHJvcGVydHl9OiAtd2Via2l0LWNhbGMoI3skdmFsdWV9KTtcbiAgI3skcHJvcGVydHl9OiBjYWxjKCN7JHZhbHVlfSk7XG59XG4iLCJAbWl4aW4gY29sdW1ucygkYXJnOiBhdXRvKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiY29sdW1uc1wiKTtcblxuICAvLyA8Y29sdW1uLWNvdW50PiB8fCA8Y29sdW1uLXdpZHRoPlxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW5zLCAkYXJnLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLWNvdW50KCRpbnQ6IGF1dG8pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJjb2x1bW4tY291bnRcIik7XG5cbiAgLy8gYXV0byB8fCBpbnRlZ2VyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1jb3VudCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1nYXAoJGxlbmd0aDogbm9ybWFsKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiY29sdW1uLWdhcFwiKTtcblxuICAvLyBub3JtYWwgfHwgbGVuZ3RoXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1nYXAsICRsZW5ndGgsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tZmlsbCgkYXJnOiBhdXRvKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiY29sdW1uLWZpbGxcIik7XG5cbiAgLy8gYXV0byB8fCBsZW5ndGhcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLWZpbGwsICRhcmcsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tcnVsZSgkYXJnKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiY29sdW1uLXJ1bGVcIik7XG5cbiAgLy8gPGJvcmRlci13aWR0aD4gfHwgPGJvcmRlci1zdHlsZT4gfHwgPGNvbG9yPlxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZSwgJGFyZywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1ydWxlLWNvbG9yKCRjb2xvcikge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImNvbHVtbi1ydWxlLWNvbG9yXCIpO1xuXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1ydWxlLWNvbG9yLCAkY29sb3IsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tcnVsZS1zdHlsZSgkc3R5bGU6IG5vbmUpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJjb2x1bW4tcnVsZS1zdHlsZVwiKTtcblxuICAvLyBub25lIHwgaGlkZGVuIHwgZGFzaGVkIHwgZG90dGVkIHwgZG91YmxlIHwgZ3Jvb3ZlIHwgaW5zZXQgfCBpbnNldCB8IG91dHNldCB8IHJpZGdlIHwgc29saWRcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXJ1bGUtc3R5bGUsICRzdHlsZSwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1ydWxlLXdpZHRoKCR3aWR0aDogbm9uZSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImNvbHVtbi1ydWxlLXdpZHRoXCIpO1xuXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1ydWxlLXdpZHRoLCAkd2lkdGgsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tc3BhbigkYXJnOiBub25lKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiY29sdW1uLXNwYW5cIik7XG5cbiAgLy8gbm9uZSB8fCBhbGxcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXNwYW4sICRhcmcsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4td2lkdGgoJGxlbmd0aDogYXV0bykge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImNvbHVtbi13aWR0aFwiKTtcblxuICAvLyBhdXRvIHx8IGxlbmd0aFxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4td2lkdGgsICRsZW5ndGgsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG4iLCJAbWl4aW4gZmlsdGVyKCRmdW5jdGlvbjogbm9uZSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImZpbHRlclwiKTtcblxuICAvLyA8ZmlsdGVyLWZ1bmN0aW9uPiBbPGZpbHRlci1mdW5jdGlvbl0qIHwgbm9uZVxuICBAaW5jbHVkZSBwcmVmaXhlcihmaWx0ZXIsICRmdW5jdGlvbiwgd2Via2l0IHNwZWMpO1xufVxuIiwiLy8gQ1NTMyBGbGV4aWJsZSBCb3ggTW9kZWwgYW5kIHByb3BlcnR5IGRlZmF1bHRzXG5cbi8vIEN1c3RvbSBzaG9ydGhhbmQgbm90YXRpb24gZm9yIGZsZXhib3hcbkBtaXhpbiBib3goJG9yaWVudDogaW5saW5lLWF4aXMsICRwYWNrOiBzdGFydCwgJGFsaWduOiBzdHJldGNoKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYm94XCIpO1xuXG4gIEBpbmNsdWRlIGRpc3BsYXktYm94O1xuICBAaW5jbHVkZSBib3gtb3JpZW50KCRvcmllbnQpO1xuICBAaW5jbHVkZSBib3gtcGFjaygkcGFjayk7XG4gIEBpbmNsdWRlIGJveC1hbGlnbigkYWxpZ24pO1xufVxuXG5AbWl4aW4gZGlzcGxheS1ib3gge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImRpc3BsYXktYm94XCIpO1xuXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICBkaXNwbGF5OiAtbW96LWJveDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7IC8vIElFIDEwXG4gIGRpc3BsYXk6IGJveDtcbn1cblxuQG1peGluIGJveC1vcmllbnQoJG9yaWVudDogaW5saW5lLWF4aXMpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJib3gtb3JpZW50XCIpO1xuXG4vLyBob3Jpem9udGFsfHZlcnRpY2FsfGlubGluZS1heGlzfGJsb2NrLWF4aXN8aW5oZXJpdFxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JpZW50LCAkb3JpZW50LCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYm94LXBhY2soJHBhY2s6IHN0YXJ0KSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYm94LXBhY2tcIik7XG5cbi8vIHN0YXJ0fGVuZHxjZW50ZXJ8anVzdGlmeVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtcGFjaywgJHBhY2ssIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LXBhY2s6ICRwYWNrOyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWFsaWduKCRhbGlnbjogc3RyZXRjaCkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImJveC1hbGlnblwiKTtcblxuLy8gc3RhcnR8ZW5kfGNlbnRlcnxiYXNlbGluZXxzdHJldGNoXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1hbGlnbiwgJGFsaWduLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1hbGlnbjogJGFsaWduOyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWRpcmVjdGlvbigkZGlyZWN0aW9uOiBub3JtYWwpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJib3gtZGlyZWN0aW9uXCIpO1xuXG4vLyBub3JtYWx8cmV2ZXJzZXxpbmhlcml0XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1kaXJlY3Rpb24sICRkaXJlY3Rpb24sIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LWRpcmVjdGlvbjogJGRpcmVjdGlvbjsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1saW5lcygkbGluZXM6IHNpbmdsZSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImJveC1saW5lc1wiKTtcblxuLy8gc2luZ2xlfG11bHRpcGxlXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1saW5lcywgJGxpbmVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYm94LW9yZGluYWwtZ3JvdXAoJGludDogMSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImJveC1vcmRpbmFsLWdyb3VwXCIpO1xuXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmRpbmFsLWdyb3VwLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1vcmRlcjogJGludDsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1mbGV4KCR2YWx1ZTogMCkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImJveC1mbGV4XCIpO1xuXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1mbGV4LCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4OiAkdmFsdWU7IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtZmxleC1ncm91cCgkaW50OiAxKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYm94LWZsZXgtZ3JvdXBcIik7XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWZsZXgtZ3JvdXAsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbi8vIENTUzMgRmxleGlibGUgQm94IE1vZGVsIGFuZCBwcm9wZXJ0eSBkZWZhdWx0c1xuLy8gVW5pZmllZCBhdHRyaWJ1dGVzIGZvciAyMDA5LCAyMDExLCBhbmQgMjAxMiBmbGF2b3Vycy5cblxuLy8gMjAwOSAtIGRpc3BsYXkgKGJveCB8IGlubGluZS1ib3gpXG4vLyAyMDExIC0gZGlzcGxheSAoZmxleGJveCB8IGlubGluZS1mbGV4Ym94KVxuLy8gMjAxMiAtIGRpc3BsYXkgKGZsZXggfCBpbmxpbmUtZmxleClcbkBtaXhpbiBkaXNwbGF5KCR2YWx1ZSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImRpc3BsYXlcIik7XG5cbi8vIGZsZXggfCBpbmxpbmUtZmxleFxuICBAaWYgJHZhbHVlID09IFwiZmxleFwiIHtcbiAgICAvLyAyMDA5XG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgZGlzcGxheTogLW1vei1ib3g7XG4gICAgZGlzcGxheTogYm94O1xuXG4gICAgLy8gMjAxMlxuICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgICBkaXNwbGF5OiAtbW96LWZsZXg7XG4gICAgZGlzcGxheTogLW1zLWZsZXhib3g7IC8vIDIwMTEgKElFIDEwKVxuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiaW5saW5lLWZsZXhcIiB7XG4gICAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtYm94O1xuICAgIGRpc3BsYXk6IC1tb3otaW5saW5lLWJveDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYm94O1xuXG4gICAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtZmxleDtcbiAgICBkaXNwbGF5OiAtbW96LWlubGluZS1mbGV4O1xuICAgIGRpc3BsYXk6IC1tcy1pbmxpbmUtZmxleGJveDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgfSBAZWxzZSB7XG4gICAgZGlzcGxheTogJHZhbHVlO1xuICB9XG59XG5cbi8vIDIwMDkgLSBib3gtZmxleCAoaW50ZWdlcilcbi8vIDIwMTEgLSBmbGV4IChkZWNpbWFsIHwgd2lkdGggZGVjaW1hbClcbi8vIDIwMTIgLSBmbGV4IChpbnRlZ2VyIGludGVnZXIgd2lkdGgpXG5AbWl4aW4gZmxleCgkdmFsdWUpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJmbGV4XCIpO1xuXG4gIC8vIEdyYWIgZmxleC1ncm93IGZvciBvbGRlciBicm93c2Vycy5cbiAgJGZsZXgtZ3JvdzogbnRoKCR2YWx1ZSwgMSk7XG5cbiAgLy8gMjAwOVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZmxleCwgJGZsZXgtZ3Jvdywgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMCksIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleCwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufVxuXG4vLyAyMDA5IC0gYm94LW9yaWVudCAoIGhvcml6b250YWwgfCB2ZXJ0aWNhbCB8IGlubGluZS1heGlzIHwgYmxvY2stYXhpcylcbi8vICAgICAgLSBib3gtZGlyZWN0aW9uIChub3JtYWwgfCByZXZlcnNlKVxuLy8gMjAxMSAtIGZsZXgtZGlyZWN0aW9uIChyb3cgfCByb3ctcmV2ZXJzZSB8IGNvbHVtbiB8IGNvbHVtbi1yZXZlcnNlKVxuLy8gMjAxMiAtIGZsZXgtZGlyZWN0aW9uIChyb3cgfCByb3ctcmV2ZXJzZSB8IGNvbHVtbiB8IGNvbHVtbi1yZXZlcnNlKVxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCR2YWx1ZTogcm93KSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiZmxleC1kaXJlY3Rpb25cIik7XG5cbiAgLy8gQWx0IHZhbHVlcy5cbiAgJHZhbHVlLTIwMDk6ICR2YWx1ZTtcbiAgJHZhbHVlLTIwMTE6ICR2YWx1ZTtcbiAgJGRpcmVjdGlvbjogbm9ybWFsO1xuXG4gIEBpZiAkdmFsdWUgPT0gcm93IHtcbiAgICAkdmFsdWUtMjAwOTogaG9yaXpvbnRhbDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJyb3ctcmV2ZXJzZVwiIHtcbiAgICAkdmFsdWUtMjAwOTogaG9yaXpvbnRhbDtcbiAgICAkZGlyZWN0aW9uOiByZXZlcnNlO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBjb2x1bW4ge1xuICAgICR2YWx1ZS0yMDA5OiB2ZXJ0aWNhbDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJjb2x1bW4tcmV2ZXJzZVwiIHtcbiAgICAkdmFsdWUtMjAwOTogdmVydGljYWw7XG4gICAgJGRpcmVjdGlvbjogcmV2ZXJzZTtcbiAgfVxuXG4gIC8vIDIwMDlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yaWVudCwgJHZhbHVlLTIwMDksIHdlYmtpdCBtb3ogc3BlYyk7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1kaXJlY3Rpb24sICRkaXJlY3Rpb24sIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWRpcmVjdGlvbiwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbn1cblxuLy8gMjAwOSAtIGJveC1saW5lcyAoc2luZ2xlIHwgbXVsdGlwbGUpXG4vLyAyMDExIC0gZmxleC13cmFwIChub3dyYXAgfCB3cmFwIHwgd3JhcC1yZXZlcnNlKVxuLy8gMjAxMiAtIGZsZXgtd3JhcCAobm93cmFwIHwgd3JhcCB8IHdyYXAtcmV2ZXJzZSlcbkBtaXhpbiBmbGV4LXdyYXAoJHZhbHVlOiBub3dyYXApIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJmbGV4LXdyYXBcIik7XG5cbiAgLy8gQWx0IHZhbHVlc1xuICAkYWx0LXZhbHVlOiAkdmFsdWU7XG4gIEBpZiAkdmFsdWUgPT0gbm93cmFwIHtcbiAgICAkYWx0LXZhbHVlOiBzaW5nbGU7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IHdyYXAge1xuICAgICRhbHQtdmFsdWU6IG11bHRpcGxlO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcIndyYXAtcmV2ZXJzZVwiIHtcbiAgICAkYWx0LXZhbHVlOiBtdWx0aXBsZTtcbiAgfVxuXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1saW5lcywgJGFsdC12YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC13cmFwLCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XG59XG5cbi8vIDIwMDkgLSBUT0RPOiBwYXJzZSB2YWx1ZXMgaW50byBmbGV4LWRpcmVjdGlvbi9mbGV4LXdyYXBcbi8vIDIwMTEgLSBUT0RPOiBwYXJzZSB2YWx1ZXMgaW50byBmbGV4LWRpcmVjdGlvbi9mbGV4LXdyYXBcbi8vIDIwMTIgLSBmbGV4LWZsb3cgKGZsZXgtZGlyZWN0aW9uIHx8IGZsZXgtd3JhcClcbkBtaXhpbiBmbGV4LWZsb3coJHZhbHVlKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiZmxleC1mbG93XCIpO1xuXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtZmxvdywgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG4vLyAyMDA5IC0gYm94LW9yZGluYWwtZ3JvdXAgKGludGVnZXIpXG4vLyAyMDExIC0gZmxleC1vcmRlciAoaW50ZWdlcilcbi8vIDIwMTIgLSBvcmRlciAoaW50ZWdlcilcbkBtaXhpbiBvcmRlcigkaW50OiAwKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwib3JkZXJcIik7XG5cbiAgLy8gMjAwOVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JkaW5hbC1ncm91cCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKG9yZGVyLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1vcmRlcjogJGludDtcbn1cblxuLy8gMjAxMiAtIGZsZXgtZ3JvdyAobnVtYmVyKVxuQG1peGluIGZsZXgtZ3JvdygkbnVtYmVyOiAwKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiZmxleC1ncm93XCIpO1xuXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtZ3JvdywgJG51bWJlciwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtcG9zaXRpdmU6ICRudW1iZXI7XG59XG5cbi8vIDIwMTIgLSBmbGV4LXNocmluayAobnVtYmVyKVxuQG1peGluIGZsZXgtc2hyaW5rKCRudW1iZXI6IDEpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJmbGV4LXNocmlua1wiKTtcblxuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LXNocmluaywgJG51bWJlciwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtbmVnYXRpdmU6ICRudW1iZXI7XG59XG5cbi8vIDIwMTIgLSBmbGV4LWJhc2lzIChudW1iZXIpXG5AbWl4aW4gZmxleC1iYXNpcygkd2lkdGg6IGF1dG8pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJmbGV4LWJhc2lzXCIpO1xuXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtYmFzaXMsICR3aWR0aCwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6ICR3aWR0aDtcbn1cblxuLy8gMjAwOSAtIGJveC1wYWNrIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGp1c3RpZnkpXG4vLyAyMDExIC0gZmxleC1wYWNrIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGp1c3RpZnkpXG4vLyAyMDEyIC0ganVzdGlmeS1jb250ZW50IChmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBzcGFjZS1iZXR3ZWVuIHwgc3BhY2UtYXJvdW5kKVxuQG1peGluIGp1c3RpZnktY29udGVudCgkdmFsdWU6IGZsZXgtc3RhcnQpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJqdXN0aWZ5LWNvbnRlbnRcIik7XG5cbiAgLy8gQWx0IHZhbHVlcy5cbiAgJGFsdC12YWx1ZTogJHZhbHVlO1xuICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcbiAgICAkYWx0LXZhbHVlOiBzdGFydDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAkYWx0LXZhbHVlOiBlbmQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwic3BhY2UtYmV0d2VlblwiIHtcbiAgICAkYWx0LXZhbHVlOiBqdXN0aWZ5O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInNwYWNlLWFyb3VuZFwiIHtcbiAgICAkYWx0LXZhbHVlOiBkaXN0cmlidXRlO1xuICB9XG5cbiAgLy8gMjAwOVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtcGFjaywgJGFsdC12YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGp1c3RpZnktY29udGVudCwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LXBhY2s6ICRhbHQtdmFsdWU7XG59XG5cbi8vIDIwMDkgLSBib3gtYWxpZ24gKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuLy8gMjAxMSAtIGZsZXgtYWxpZ24gKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuLy8gMjAxMiAtIGFsaWduLWl0ZW1zIChmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG5AbWl4aW4gYWxpZ24taXRlbXMoJHZhbHVlOiBzdHJldGNoKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYWxpZ24taXRlbXNcIik7XG5cbiAgJGFsdC12YWx1ZTogJHZhbHVlO1xuXG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xuICAgICRhbHQtdmFsdWU6IHN0YXJ0O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xuICAgICRhbHQtdmFsdWU6IGVuZDtcbiAgfVxuXG4gIC8vIDIwMDlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWFsaWduLCAkYWx0LXZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYWxpZ24taXRlbXMsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1hbGlnbjogJGFsdC12YWx1ZTtcbn1cblxuLy8gMjAxMSAtIGZsZXgtaXRlbS1hbGlnbiAoYXV0byB8IHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuLy8gMjAxMiAtIGFsaWduLXNlbGYgKGF1dG8gfCBmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG5AbWl4aW4gYWxpZ24tc2VsZigkdmFsdWU6IGF1dG8pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJhbGlnbi1zZWxmXCIpO1xuXG4gICR2YWx1ZS0yMDExOiAkdmFsdWU7XG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xuICAgICR2YWx1ZS0yMDExOiBzdGFydDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAkdmFsdWUtMjAxMTogZW5kO1xuICB9XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihhbGlnbi1zZWxmLCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LWl0ZW0tYWxpZ246ICR2YWx1ZS0yMDExO1xufVxuXG4vLyAyMDExIC0gZmxleC1saW5lLXBhY2sgKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwganVzdGlmeSB8IGRpc3RyaWJ1dGUgfCBzdHJldGNoKVxuLy8gMjAxMiAtIGFsaWduLWNvbnRlbnQgKGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IHNwYWNlLWJldHdlZW4gfCBzcGFjZS1hcm91bmQgfCBzdHJldGNoKVxuQG1peGluIGFsaWduLWNvbnRlbnQoJHZhbHVlOiBzdHJldGNoKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYWxpZ24tY29udGVudFwiKTtcblxuICAkdmFsdWUtMjAxMTogJHZhbHVlO1xuICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcbiAgICAkdmFsdWUtMjAxMTogc3RhcnQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XG4gICAgJHZhbHVlLTIwMTE6IGVuZDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJzcGFjZS1iZXR3ZWVuXCIge1xuICAgICR2YWx1ZS0yMDExOiBqdXN0aWZ5O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInNwYWNlLWFyb3VuZFwiIHtcbiAgICAkdmFsdWUtMjAxMTogZGlzdHJpYnV0ZTtcbiAgfVxuXG4gIC8vIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYWxpZ24tY29udGVudCwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1saW5lLXBhY2s6ICR2YWx1ZS0yMDExO1xufVxuIiwiQG1peGluIGZvbnQtZmFjZShcbiAgJGZvbnQtZmFtaWx5LFxuICAkZmlsZS1wYXRoLFxuICAkd2VpZ2h0OiBub3JtYWwsXG4gICRzdHlsZTogbm9ybWFsLFxuICAkYXNzZXQtcGlwZWxpbmU6ICRhc3NldC1waXBlbGluZSxcbiAgJGZpbGUtZm9ybWF0czogZW90IHdvZmYyIHdvZmYgdHRmIHN2Zykge1xuXG4gICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZSAhZ2xvYmFsO1xuXG4gICRmb250LXVybC1wcmVmaXg6IGZvbnQtdXJsLXByZWZpeGVyKCRhc3NldC1waXBlbGluZSk7XG5cbiAgQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseTtcbiAgICBmb250LXN0eWxlOiAkc3R5bGU7XG4gICAgZm9udC13ZWlnaHQ6ICR3ZWlnaHQ7XG5cbiAgICBzcmM6IGZvbnQtc291cmNlLWRlY2xhcmF0aW9uKFxuICAgICAgJGZvbnQtZmFtaWx5LFxuICAgICAgJGZpbGUtcGF0aCxcbiAgICAgICRhc3NldC1waXBlbGluZSxcbiAgICAgICRmaWxlLWZvcm1hdHMsXG4gICAgICAkZm9udC11cmwtcHJlZml4XG4gICAgKTtcbiAgfVxuXG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZyAhZ2xvYmFsO1xufVxuIiwiQG1peGluIGZvbnQtZmVhdHVyZS1zZXR0aW5ncygkc2V0dGluZ3MuLi4pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJmb250LWZlYXR1cmUtc2V0dGluZ3NcIik7XG5cbiAgQGlmIGxlbmd0aCgkc2V0dGluZ3MpID09IDAgeyAkc2V0dGluZ3M6IG5vbmU7IH1cbiAgQGluY2x1ZGUgcHJlZml4ZXIoZm9udC1mZWF0dXJlLXNldHRpbmdzLCAkc2V0dGluZ3MsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XG59XG4iLCIvLyBIaURQSSBtaXhpbi4gRGVmYXVsdCB2YWx1ZSBzZXQgdG8gMS4zIHRvIHRhcmdldCBHb29nbGUgTmV4dXMgNyAoaHR0cDovL2JqYW5nby5jb20vYXJ0aWNsZXMvbWluLWRldmljZS1waXhlbC1yYXRpby8pXG5AbWl4aW4gaGlkcGkoJHJhdGlvOiAxLjMpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJoaWRwaVwiKTtcblxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86ICRyYXRpbyksXG4gIG9ubHkgc2NyZWVuIGFuZCAobWluLS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAkcmF0aW8pLFxuICBvbmx5IHNjcmVlbiBhbmQgKC1vLW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86ICN7JHJhdGlvfS8xKSxcbiAgb25seSBzY3JlZW4gYW5kIChtaW4tcmVzb2x1dGlvbjogcm91bmQoJHJhdGlvICogOTZkcGkpKSxcbiAgb25seSBzY3JlZW4gYW5kIChtaW4tcmVzb2x1dGlvbjogJHJhdGlvICogMWRwcHgpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuIiwiQG1peGluIGh5cGhlbnMoJGh5cGhlbmF0aW9uOiBub25lKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiaHlwaGVuc1wiKTtcblxuICAvLyBub25lIHwgbWFudWFsIHwgYXV0b1xuICBAaW5jbHVkZSBwcmVmaXhlcihoeXBoZW5zLCAkaHlwaGVuYXRpb24sIHdlYmtpdCBtb3ogbXMgc3BlYyk7XG59XG4iLCJAbWl4aW4gaW1hZ2UtcmVuZGVyaW5nICgkbW9kZTphdXRvKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiaW1hZ2UtcmVuZGVyaW5nXCIpO1xuXG4gIEBpZiAoJG1vZGUgPT0gY3Jpc3AtZWRnZXMpIHtcbiAgICAtbXMtaW50ZXJwb2xhdGlvbi1tb2RlOiBuZWFyZXN0LW5laWdoYm9yOyAvLyBJRTgrXG4gICAgaW1hZ2UtcmVuZGVyaW5nOiAtbW96LWNyaXNwLWVkZ2VzO1xuICAgIGltYWdlLXJlbmRlcmluZzogLW8tY3Jpc3AtZWRnZXM7XG4gICAgaW1hZ2UtcmVuZGVyaW5nOiAtd2Via2l0LW9wdGltaXplLWNvbnRyYXN0O1xuICAgIGltYWdlLXJlbmRlcmluZzogY3Jpc3AtZWRnZXM7XG4gIH1cblxuICBAZWxzZSB7XG4gICAgaW1hZ2UtcmVuZGVyaW5nOiAkbW9kZTtcbiAgfVxufVxuIiwiLy8gQWRkcyBrZXlmcmFtZXMgYmxvY2tzIGZvciBzdXBwb3J0ZWQgcHJlZml4ZXMsIHJlbW92aW5nIHJlZHVuZGFudCBwcmVmaXhlcyBpbiB0aGUgYmxvY2sncyBjb250ZW50XG5AbWl4aW4ga2V5ZnJhbWVzKCRuYW1lKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwia2V5ZnJhbWVzXCIpO1xuXG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLXdlYmtpdDogICAgJHByZWZpeC1mb3Itd2Via2l0O1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci1tb3ppbGxhOiAgICRwcmVmaXgtZm9yLW1vemlsbGE7XG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1pY3Jvc29mdDogJHByZWZpeC1mb3ItbWljcm9zb2Z0O1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci1vcGVyYTogICAgICRwcmVmaXgtZm9yLW9wZXJhO1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci1zcGVjOiAgICAgICRwcmVmaXgtZm9yLXNwZWM7XG5cbiAgQGlmICRvcmlnaW5hbC1wcmVmaXgtZm9yLXdlYmtpdCB7XG4gICAgQGluY2x1ZGUgZGlzYWJsZS1wcmVmaXgtZm9yLWFsbCgpO1xuICAgICRwcmVmaXgtZm9yLXdlYmtpdDogdHJ1ZSAhZ2xvYmFsO1xuICAgIEAtd2Via2l0LWtleWZyYW1lcyAjeyRuYW1lfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cblxuICBAaWYgJG9yaWdpbmFsLXByZWZpeC1mb3ItbW96aWxsYSB7XG4gICAgQGluY2x1ZGUgZGlzYWJsZS1wcmVmaXgtZm9yLWFsbCgpO1xuICAgICRwcmVmaXgtZm9yLW1vemlsbGE6IHRydWUgIWdsb2JhbDtcbiAgICBALW1vei1rZXlmcmFtZXMgI3skbmFtZX0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG5cbiAgJHByZWZpeC1mb3Itd2Via2l0OiAgICAkb3JpZ2luYWwtcHJlZml4LWZvci13ZWJraXQgICAgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3ItbW96aWxsYTogICAkb3JpZ2luYWwtcHJlZml4LWZvci1tb3ppbGxhICAgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3ItbWljcm9zb2Z0OiAkb3JpZ2luYWwtcHJlZml4LWZvci1taWNyb3NvZnQgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3Itb3BlcmE6ICAgICAkb3JpZ2luYWwtcHJlZml4LWZvci1vcGVyYSAgICAgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3Itc3BlYzogICAgICAkb3JpZ2luYWwtcHJlZml4LWZvci1zcGVjICAgICAgIWdsb2JhbDtcblxuICBAaWYgJG9yaWdpbmFsLXByZWZpeC1mb3Itc3BlYyB7XG4gICAgQGtleWZyYW1lcyAjeyRuYW1lfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cbiIsIkBtaXhpbiBsaW5lYXItZ3JhZGllbnQoJHBvcywgJGcxLCAkZzI6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnMzogbnVsbCwgJGc0OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzU6IG51bGwsICRnNjogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGc3OiBudWxsLCAkZzg6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnOTogbnVsbCwgJGcxMDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGZhbGxiYWNrOiBudWxsKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwibGluZWFyLWdyYWRpZW50XCIpO1xuXG4gIC8vIERldGVjdCB3aGF0IHR5cGUgb2YgdmFsdWUgZXhpc3RzIGluICRwb3NcbiAgJHBvcy10eXBlOiB0eXBlLW9mKG50aCgkcG9zLCAxKSk7XG4gICRwb3Mtc3BlYzogbnVsbDtcbiAgJHBvcy1kZWdyZWU6IG51bGw7XG5cbiAgLy8gSWYgJHBvcyBpcyBtaXNzaW5nIGZyb20gbWl4aW4sIHJlYXNzaWduIHZhcnMgYW5kIGFkZCBkZWZhdWx0IHBvc2l0aW9uXG4gIEBpZiAoJHBvcy10eXBlID09IGNvbG9yKSBvciAobnRoKCRwb3MsIDEpID09IFwidHJhbnNwYXJlbnRcIikgIHtcbiAgICAkZzEwOiAkZzk7ICRnOTogJGc4OyAkZzg6ICRnNzsgJGc3OiAkZzY7ICRnNjogJGc1O1xuICAgICRnNTogJGc0OyAkZzQ6ICRnMzsgJGczOiAkZzI7ICRnMjogJGcxOyAkZzE6ICRwb3M7XG4gICAgJHBvczogbnVsbDtcbiAgfVxuXG4gIEBpZiAkcG9zIHtcbiAgICAkcG9zaXRpb25zOiBfbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIoJHBvcyk7XG4gICAgJHBvcy1kZWdyZWU6IG50aCgkcG9zaXRpb25zLCAxKTtcbiAgICAkcG9zLXNwZWM6ICAgbnRoKCRwb3NpdGlvbnMsIDIpO1xuICB9XG5cbiAgJGZ1bGw6ICRnMSwgJGcyLCAkZzMsICRnNCwgJGc1LCAkZzYsICRnNywgJGc4LCAkZzksICRnMTA7XG5cbiAgLy8gU2V0ICRnMSBhcyB0aGUgZGVmYXVsdCBmYWxsYmFjayBjb2xvclxuICAkZmFsbGJhY2stY29sb3I6IG50aCgkZzEsIDEpO1xuXG4gIC8vIElmICRmYWxsYmFjayBpcyBhIGNvbG9yIHVzZSB0aGF0IGNvbG9yIGFzIHRoZSBmYWxsYmFjayBjb2xvclxuICBAaWYgKHR5cGUtb2YoJGZhbGxiYWNrKSA9PSBjb2xvcikgb3IgKCRmYWxsYmFjayA9PSBcInRyYW5zcGFyZW50XCIpIHtcbiAgICAkZmFsbGJhY2stY29sb3I6ICRmYWxsYmFjaztcbiAgfVxuXG4gIGJhY2tncm91bmQtY29sb3I6ICRmYWxsYmFjay1jb2xvcjtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoJHBvcy1kZWdyZWUgJGZ1bGwpOyAvLyBTYWZhcmkgNS4xKywgQ2hyb21lXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVucXVvdGUoXCJsaW5lYXItZ3JhZGllbnQoI3skcG9zLXNwZWN9I3skZnVsbH0pXCIpO1xufVxuIiwiQG1peGluIHBlcnNwZWN0aXZlKCRkZXB0aDogbm9uZSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcInBlcnNwZWN0aXZlXCIpO1xuXG4gIC8vIG5vbmUgfCA8bGVuZ3RoPlxuICBAaW5jbHVkZSBwcmVmaXhlcihwZXJzcGVjdGl2ZSwgJGRlcHRoLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gcGVyc3BlY3RpdmUtb3JpZ2luKCR2YWx1ZTogNTAlIDUwJSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcInBlcnNwZWN0aXZlLW9yaWdpblwiKTtcblxuICBAaW5jbHVkZSBwcmVmaXhlcihwZXJzcGVjdGl2ZS1vcmlnaW4sICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcbn1cbiIsIkBtaXhpbiBwbGFjZWhvbGRlciB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwicGxhY2Vob2xkZXJcIik7XG5cbiAgJHBsYWNlaG9sZGVyczogXCI6LXdlYmtpdC1pbnB1dFwiIFwiOi1tb3pcIiBcIi1tb3pcIiBcIi1tcy1pbnB1dFwiO1xuICBAZWFjaCAkcGxhY2Vob2xkZXIgaW4gJHBsYWNlaG9sZGVycyB7XG4gICAgJjojeyRwbGFjZWhvbGRlcn0tcGxhY2Vob2xkZXIge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG4iLCIvLyBSZXF1aXJlcyBTYXNzIDMuMStcbkBtaXhpbiByYWRpYWwtZ3JhZGllbnQoJGcxLCAkZzIsXG4gICAgICAgICAgICAgICAgICAgICAgICRnMzogbnVsbCwgJGc0OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzU6IG51bGwsICRnNjogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGc3OiBudWxsLCAkZzg6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnOTogbnVsbCwgJGcxMDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJHBvczogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJHNoYXBlLXNpemU6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRmYWxsYmFjazogbnVsbCkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcInJhZGlhbC1ncmFkaWVudFwiKTtcblxuICAkZGF0YTogX3JhZGlhbC1hcmctcGFyc2VyKCRnMSwgJGcyLCAkcG9zLCAkc2hhcGUtc2l6ZSk7XG4gICRnMTogIG50aCgkZGF0YSwgMSk7XG4gICRnMjogIG50aCgkZGF0YSwgMik7XG4gICRwb3M6IG50aCgkZGF0YSwgMyk7XG4gICRzaGFwZS1zaXplOiBudGgoJGRhdGEsIDQpO1xuXG4gICRmdWxsOiAkZzEsICRnMiwgJGczLCAkZzQsICRnNSwgJGc2LCAkZzcsICRnOCwgJGc5LCAkZzEwO1xuXG4gIC8vIFN0cmlwIGRlcHJlY2F0ZWQgY292ZXIvY29udGFpbiBmb3Igc3BlY1xuICAkc2hhcGUtc2l6ZS1zcGVjOiBfc2hhcGUtc2l6ZS1zdHJpcHBlcigkc2hhcGUtc2l6ZSk7XG5cbiAgLy8gU2V0ICRnMSBhcyB0aGUgZGVmYXVsdCBmYWxsYmFjayBjb2xvclxuICAkZmlyc3QtY29sb3I6IG50aCgkZnVsbCwgMSk7XG4gICRmYWxsYmFjay1jb2xvcjogbnRoKCRmaXJzdC1jb2xvciwgMSk7XG5cbiAgQGlmICh0eXBlLW9mKCRmYWxsYmFjaykgPT0gY29sb3IpIG9yICgkZmFsbGJhY2sgPT0gXCJ0cmFuc3BhcmVudFwiKSB7XG4gICAgJGZhbGxiYWNrLWNvbG9yOiAkZmFsbGJhY2s7XG4gIH1cblxuICAvLyBBZGQgQ29tbWFzIGFuZCBzcGFjZXNcbiAgJHNoYXBlLXNpemU6IGlmKCRzaGFwZS1zaXplLCBcIiN7JHNoYXBlLXNpemV9LCBcIiwgbnVsbCk7XG4gICRwb3M6ICAgICAgICBpZigkcG9zLCBcIiN7JHBvc30sIFwiLCBudWxsKTtcbiAgJHBvcy1zcGVjOiAgIGlmKCRwb3MsIFwiYXQgI3skcG9zfVwiLCBudWxsKTtcbiAgJHNoYXBlLXNpemUtc3BlYzogaWYoKCRzaGFwZS1zaXplLXNwZWMgIT0gXCIgXCIpIGFuZCAoJHBvcyA9PSBudWxsKSwgXCIjeyRzaGFwZS1zaXplLXNwZWN9LCBcIiwgXCIjeyRzaGFwZS1zaXplLXNwZWN9IFwiKTtcblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAgJGZhbGxiYWNrLWNvbG9yO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LXJhZGlhbC1ncmFkaWVudCgjeyRwb3N9I3skc2hhcGUtc2l6ZX0jeyRmdWxsfSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudCgjeyRzaGFwZS1zaXplLXNwZWN9I3skcG9zLXNwZWN9I3skZnVsbH0pO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIE91dHB1dHMgdGhlIHNwZWMgYW5kIHByZWZpeGVkIHZlcnNpb25zIG9mIHRoZSBgOjpzZWxlY3Rpb25gIHBzZXVkby1lbGVtZW50LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7Qm9vbH0gJGN1cnJlbnQtc2VsZWN0b3IgW2ZhbHNlXVxyXG4vLy8gICBJZiBzZXQgdG8gYHRydWVgLCBpdCB0YWtlcyB0aGUgY3VycmVudCBlbGVtZW50IGludG8gY29uc2lkZXJhdGlvbi5cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIEBpbmNsdWRlIHNlbGVjdGlvbih0cnVlKSB7XHJcbi8vLyAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZiYjUyO1xyXG4vLy8gICAgIH1cclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmVsZW1lbnQ6Oi1tb3otc2VsZWN0aW9uIHtcclxuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZiYjUyO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gICAuZWxlbWVudDo6c2VsZWN0aW9uIHtcclxuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZiYjUyO1xyXG4vLy8gICB9XHJcblxyXG5AbWl4aW4gc2VsZWN0aW9uKCRjdXJyZW50LXNlbGVjdG9yOiBmYWxzZSkge1xyXG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwic2VsZWN0aW9uXCIpO1xyXG5cclxuICBAaWYgJGN1cnJlbnQtc2VsZWN0b3Ige1xyXG4gICAgJjo6LW1vei1zZWxlY3Rpb24ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuXHJcbiAgICAmOjpzZWxlY3Rpb24ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9IEBlbHNlIHtcclxuICAgIDo6LW1vei1zZWxlY3Rpb24ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuXHJcbiAgICA6OnNlbGVjdGlvbiB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCJAbWl4aW4gdGV4dC1kZWNvcmF0aW9uKCR2YWx1ZSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcInRleHQtZGVjb3JhdGlvblwiKTtcblxuLy8gPHRleHQtZGVjb3JhdGlvbi1saW5lPiB8fCA8dGV4dC1kZWNvcmF0aW9uLXN0eWxlPiB8fCA8dGV4dC1kZWNvcmF0aW9uLWNvbG9yPlxuICBAaW5jbHVkZSBwcmVmaXhlcih0ZXh0LWRlY29yYXRpb24sICR2YWx1ZSwgbW96KTtcbn1cblxuQG1peGluIHRleHQtZGVjb3JhdGlvbi1saW5lKCRsaW5lOiBub25lKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwidGV4dC1kZWNvcmF0aW9uLWxpbmVcIik7XG5cbi8vIG5vbmUgfHwgdW5kZXJsaW5lIHx8IG92ZXJsaW5lIHx8IGxpbmUtdGhyb3VnaFxuICBAaW5jbHVkZSBwcmVmaXhlcih0ZXh0LWRlY29yYXRpb24tbGluZSwgJGxpbmUsIG1veik7XG59XG5cbkBtaXhpbiB0ZXh0LWRlY29yYXRpb24tc3R5bGUoJHN0eWxlOiBzb2xpZCkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcInRleHQtZGVjb3JhdGlvbi1zdHlsZVwiKTtcblxuLy8gc29saWQgfHwgZG91YmxlIHx8IGRvdHRlZCB8fCBkYXNoZWQgfHwgd2F2eVxuICBAaW5jbHVkZSBwcmVmaXhlcih0ZXh0LWRlY29yYXRpb24tc3R5bGUsICRzdHlsZSwgbW96IHdlYmtpdCk7XG59XG5cbkBtaXhpbiB0ZXh0LWRlY29yYXRpb24tY29sb3IoJGNvbG9yOiBjdXJyZW50Q29sb3IpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJ0ZXh0LWRlY29yYXRpb24tY29sb3JcIik7XG5cbi8vIGN1cnJlbnRDb2xvciB8fCA8Y29sb3I+XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRleHQtZGVjb3JhdGlvbi1jb2xvciwgJGNvbG9yLCBtb3opO1xufVxuIiwiQG1peGluIHRyYW5zZm9ybSgkcHJvcGVydHk6IG5vbmUpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJ0cmFuc2Zvcm1cIik7XG5cbiAgLy8gbm9uZSB8IDx0cmFuc2Zvcm0tZnVuY3Rpb24+XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zZm9ybSwgJHByb3BlcnR5LCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG59XG5cbkBtaXhpbiB0cmFuc2Zvcm0tb3JpZ2luKCRheGVzOiA1MCUpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJ0cmFuc2Zvcm0tb3JpZ2luXCIpO1xuXG4gIC8vIHgtYXhpcyAtIGxlZnQgfCBjZW50ZXIgfCByaWdodCAgfCBsZW5ndGggfCAlXG4gIC8vIHktYXhpcyAtIHRvcCAgfCBjZW50ZXIgfCBib3R0b20gfCBsZW5ndGggfCAlXG4gIC8vIHotYXhpcyAtICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGhcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNmb3JtLW9yaWdpbiwgJGF4ZXMsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcbn1cblxuQG1peGluIHRyYW5zZm9ybS1zdHlsZSgkc3R5bGU6IGZsYXQpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJ0cmFuc2Zvcm0tc3R5bGVcIik7XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNmb3JtLXN0eWxlLCAkc3R5bGUsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcbn1cbiIsIi8vIFNob3J0aGFuZCBtaXhpbi4gU3VwcG9ydHMgbXVsdGlwbGUgcGFyZW50aGVzZXMtZGVsaW1pbmF0ZWQgdmFsdWVzIGZvciBlYWNoIHZhcmlhYmxlLlxuLy8gRXhhbXBsZTogQGluY2x1ZGUgdHJhbnNpdGlvbiAoYWxsIDJzIGVhc2UtaW4tb3V0KTtcbi8vICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24gKG9wYWNpdHkgMXMgZWFzZS1pbiAycywgd2lkdGggMnMgZWFzZS1vdXQpO1xuLy8gICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1wcm9wZXJ0eSAodHJhbnNmb3JtLCBvcGFjaXR5KTtcblxuQG1peGluIHRyYW5zaXRpb24oJHByb3BlcnRpZXMuLi4pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJ0cmFuc2l0aW9uXCIpO1xuXG4gIC8vIEZpeCBmb3IgdmVuZG9yLXByZWZpeCB0cmFuc2Zvcm0gcHJvcGVydHlcbiAgJG5lZWRzLXByZWZpeGVzOiBmYWxzZTtcbiAgJHdlYmtpdDogKCk7XG4gICRtb3o6ICgpO1xuICAkc3BlYzogKCk7XG5cbiAgLy8gQ3JlYXRlIGxpc3RzIGZvciB2ZW5kb3ItcHJlZml4ZWQgdHJhbnNmb3JtXG4gIEBlYWNoICRsaXN0IGluICRwcm9wZXJ0aWVzIHtcbiAgICBAaWYgbnRoKCRsaXN0LCAxKSA9PSBcInRyYW5zZm9ybVwiIHtcbiAgICAgICRuZWVkcy1wcmVmaXhlczogdHJ1ZTtcbiAgICAgICRsaXN0MTogLXdlYmtpdC10cmFuc2Zvcm07XG4gICAgICAkbGlzdDI6IC1tb3otdHJhbnNmb3JtO1xuICAgICAgJGxpc3QzOiAoKTtcblxuICAgICAgQGVhY2ggJHZhciBpbiAkbGlzdCB7XG4gICAgICAgICRsaXN0Mzogam9pbigkbGlzdDMsICR2YXIpO1xuXG4gICAgICAgIEBpZiAkdmFyICE9IFwidHJhbnNmb3JtXCIge1xuICAgICAgICAgICRsaXN0MTogam9pbigkbGlzdDEsICR2YXIpO1xuICAgICAgICAgICRsaXN0Mjogam9pbigkbGlzdDIsICR2YXIpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICR3ZWJraXQ6IGFwcGVuZCgkd2Via2l0LCAkbGlzdDEpO1xuICAgICAgJG1vejogICAgYXBwZW5kKCRtb3osICAgICRsaXN0Mik7XG4gICAgICAkc3BlYzogICBhcHBlbmQoJHNwZWMsICAgJGxpc3QzKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICR3ZWJraXQ6IGFwcGVuZCgkd2Via2l0LCAkbGlzdCwgY29tbWEpO1xuICAgICAgJG1vejogICAgYXBwZW5kKCRtb3osICAgICRsaXN0LCBjb21tYSk7XG4gICAgICAkc3BlYzogICBhcHBlbmQoJHNwZWMsICAgJGxpc3QsIGNvbW1hKTtcbiAgICB9XG4gIH1cblxuICBAaWYgJG5lZWRzLXByZWZpeGVzIHtcbiAgICAtd2Via2l0LXRyYW5zaXRpb246ICR3ZWJraXQ7XG4gICAgICAgLW1vei10cmFuc2l0aW9uOiAkbW96O1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogJHNwZWM7XG4gIH0gQGVsc2Uge1xuICAgIEBpZiBsZW5ndGgoJHByb3BlcnRpZXMpID49IDEge1xuICAgICAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbiwgJHByb3BlcnRpZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkcHJvcGVydGllczogYWxsIDAuMTVzIGVhc2Utb3V0IDBzO1xuICAgICAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbiwgJHByb3BlcnRpZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiB0cmFuc2l0aW9uLXByb3BlcnR5KCRwcm9wZXJ0aWVzLi4uKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwidHJhbnNpdGlvbi1wcm9wZXJ0eVwiKTtcblxuICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoJHByb3BlcnRpZXMsIFwid2Via2l0XCIpO1xuICAgICAtbW96LXRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoJHByb3BlcnRpZXMsIFwibW96XCIpO1xuICAgICAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoJHByb3BlcnRpZXMsIGZhbHNlKTtcbn1cblxuQG1peGluIHRyYW5zaXRpb24tZHVyYXRpb24oJHRpbWVzLi4uKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwidHJhbnNpdGlvbi1kdXJhdGlvblwiKTtcblxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLWR1cmF0aW9uLCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbigkbW90aW9ucy4uLikge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcInRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uXCIpO1xuXG4gIC8vIGVhc2UgfCBsaW5lYXIgfCBlYXNlLWluIHwgZWFzZS1vdXQgfCBlYXNlLWluLW91dCB8IGN1YmljLWJlemllcigpXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uLCAkbW90aW9ucywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIHRyYW5zaXRpb24tZGVsYXkoJHRpbWVzLi4uKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwidHJhbnNpdGlvbi1kZWxheVwiKTtcblxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLWRlbGF5LCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG4iLCJAbWl4aW4gdXNlci1zZWxlY3QoJHZhbHVlOiBub25lKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwidXNlci1zZWxlY3RcIik7XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIodXNlci1zZWxlY3QsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBzcGVjKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYGJvcmRlci1jb2xvcmAgb24gc3BlY2lmaWMgc2lkZXMgb2YgYSBib3guIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLWNvbG9yKCNhNjBiNTUgIzc2Y2Q5YyBudWxsICNlOGFlMWEpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBib3JkZXItbGVmdC1jb2xvcjogI2U4YWUxYTtcbi8vLyAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAjNzZjZDljO1xuLy8vICAgICBib3JkZXItdG9wLWNvbG9yOiAjYTYwYjU1O1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxuLy8vXG4vLy8gQG91dHB1dCBgYm9yZGVyLWNvbG9yYFxuXG5AbWl4aW4gYm9yZGVyLWNvbG9yKCR2YWxzLi4uKSB7XG4gICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZSAhZ2xvYmFsO1xuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShib3JkZXIsIGNvbG9yLCAkdmFscy4uLik7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZyAhZ2xvYmFsO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgYm9yZGVyLXJhZGl1c2Agb24gYm90aCBjb3JuZXJzIG9uIHRoZSBzaWRlIG9mIGEgYm94LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRyYWRpaVxuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQtb25lIHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLXRvcC1yYWRpdXMoNXB4KTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLmVsZW1lbnQtdHdvIHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLWxlZnQtcmFkaXVzKDNweCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudC1vbmUge1xuLy8vICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA1cHg7XG4vLy8gICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA1cHg7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5lbGVtZW50LXR3byB7XG4vLy8gICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDNweDtcbi8vLyAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogM3B4O1xuLy8vICAgfVxuLy8vXG4vLy8gQG91dHB1dCBgYm9yZGVyLXJhZGl1c2BcblxuQG1peGluIGJvcmRlci10b3AtcmFkaXVzKCRyYWRpaSkge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkcmFkaWk7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkcmFkaWk7XG59XG5cbkBtaXhpbiBib3JkZXItcmlnaHQtcmFkaXVzKCRyYWRpaSkge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJHJhZGlpO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJHJhZGlpO1xufVxuXG5AbWl4aW4gYm9yZGVyLWJvdHRvbS1yYWRpdXMoJHJhZGlpKSB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRyYWRpaTtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRyYWRpaTtcbn1cblxuQG1peGluIGJvcmRlci1sZWZ0LXJhZGl1cygkcmFkaWkpIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJHJhZGlpO1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkcmFkaWk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBib3JkZXItc3R5bGVgIG9uIHNwZWNpZmljIHNpZGVzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci1zdHlsZShkYXNoZWQgbnVsbCBzb2xpZCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xuLy8vICAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7bWl4aW59IGRpcmVjdGlvbmFsLXByb3BlcnR5XG4vLy9cbi8vLyBAb3V0cHV0IGBib3JkZXItc3R5bGVgXG5cbkBtaXhpbiBib3JkZXItc3R5bGUoJHZhbHMuLi4pIHtcbiAgJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZzogJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzO1xuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6IGZhbHNlICFnbG9iYWw7XG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KGJvcmRlciwgc3R5bGUsICR2YWxzLi4uKTtcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nICFnbG9iYWw7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBib3JkZXItd2lkdGhgIG9uIHNwZWNpZmljIHNpZGVzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci13aWR0aCgxZW0gbnVsbCAyMHB4KTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMjBweDtcbi8vLyAgICAgYm9yZGVyLXRvcC13aWR0aDogMWVtO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxuLy8vXG4vLy8gQG91dHB1dCBgYm9yZGVyLXdpZHRoYFxuXG5AbWl4aW4gYm9yZGVyLXdpZHRoKCR2YWxzLi4uKSB7XG4gICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZSAhZ2xvYmFsO1xuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShib3JkZXIsIHdpZHRoLCAkdmFscy4uLik7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZyAhZ2xvYmFsO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gR2VuZXJhdGVzIHZhcmlhYmxlcyBmb3IgYWxsIGJ1dHRvbnMuIFBsZWFzZSBub3RlIHRoYXQgeW91IG11c3QgdXNlIGludGVycG9sYXRpb24gb24gdGhlIHZhcmlhYmxlOiBgI3skYWxsLWJ1dHRvbnN9YC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgI3skYWxsLWJ1dHRvbnN9IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YwMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgI3skYWxsLWJ1dHRvbnMtZm9jdXN9LFxuLy8vICAgI3skYWxsLWJ1dHRvbnMtaG92ZXJ9IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzBmMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgI3skYWxsLWJ1dHRvbnMtYWN0aXZlfSB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMwMGY7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICBidXR0b24sXG4vLy8gICBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNmMDA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIGJ1dHRvbjpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJidXR0b25cIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwicmVzZXRcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwic3VibWl0XCJdOmZvY3VzLFxuLy8vICAgYnV0dG9uOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cImJ1dHRvblwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJyZXNldFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl06aG92ZXIge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGYwO1xuLy8vICAgfVxuLy8vXG4vLy8gICBidXR0b246YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cImJ1dHRvblwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwicmVzZXRcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXTphY3RpdmUge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBmO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUgYXNzaWduLWlucHV0c1xuLy8vXG4vLy8gQHR5cGUgTGlzdFxuLy8vXG4vLy8gQHRvZG8gUmVtb3ZlIGRvdWJsZSBhc3NpZ25lZCB2YXJpYWJsZXMgKExpbmVzIDU54oCTNjIpIGluIHY1LjAuMFxuXG4kYnV0dG9ucy1saXN0OiAnYnV0dG9uJyxcbiAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiYnV0dG9uXCJdJyxcbiAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwicmVzZXRcIl0nLFxuICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJzdWJtaXRcIl0nO1xuXG4kdXNlci1vdXRwdXQtZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZzogJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzO1xuJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZTtcblxuJGFsbC1idXR0b25zOiAgICAgICAgYXNzaWduLWlucHV0cygkYnV0dG9ucy1saXN0KTtcbiRhbGwtYnV0dG9ucy1hY3RpdmU6IGFzc2lnbi1pbnB1dHMoJGJ1dHRvbnMtbGlzdCwgYWN0aXZlKTtcbiRhbGwtYnV0dG9ucy1mb2N1czogIGFzc2lnbi1pbnB1dHMoJGJ1dHRvbnMtbGlzdCwgZm9jdXMpO1xuJGFsbC1idXR0b25zLWhvdmVyOiAgYXNzaWduLWlucHV0cygkYnV0dG9ucy1saXN0LCBob3Zlcik7XG5cbiRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItb3V0cHV0LWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc7XG5cbiRhbGwtYnV0dG9uLWlucHV0czogICAgICAgICRhbGwtYnV0dG9ucztcbiRhbGwtYnV0dG9uLWlucHV0cy1hY3RpdmU6ICRhbGwtYnV0dG9ucy1hY3RpdmU7XG4kYWxsLWJ1dHRvbi1pbnB1dHMtZm9jdXM6ICAkYWxsLWJ1dHRvbnMtZm9jdXM7XG4kYWxsLWJ1dHRvbi1pbnB1dHMtaG92ZXI6ICAkYWxsLWJ1dHRvbnMtaG92ZXI7XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhbiBlYXN5IHdheSB0byBpbmNsdWRlIGEgY2xlYXJmaXggZm9yIGNvbnRhaW5pbmcgZmxvYXRzLlxuLy8vXG4vLy8gQGxpbmsgaHR0cDovL2Nzc21vam8uY29tL2xhdGVzdF9uZXdfY2xlYXJmaXhfc29fZmFyL1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQ6OmFmdGVyIHtcbi8vLyAgICAgY2xlYXI6IGJvdGg7XG4vLy8gICAgIGNvbnRlbnQ6IFwiXCI7XG4vLy8gICAgIGRpc3BsYXk6IHRhYmxlO1xuLy8vICAgfVxuXG5AbWl4aW4gY2xlYXJmaXgge1xuICAmOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gVHJ1bmNhdGVzIHRleHQgYW5kIGFkZHMgYW4gZWxsaXBzaXMgdG8gcmVwcmVzZW50IG92ZXJmbG93LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCBbMTAwJV1cbi8vLyAgIE1heC13aWR0aCBmb3IgdGhlIHN0cmluZyB0byByZXNwZWN0IGJlZm9yZSBiZWluZyB0cnVuY2F0ZWRcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBlbGxpcHNpcztcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuLy8vICAgICBtYXgtd2lkdGg6IDEwMCU7XG4vLy8gICAgIG92ZXJmbG93OiBoaWRkZW47XG4vLy8gICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuLy8vICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuLy8vICAgICB3b3JkLXdyYXA6IG5vcm1hbDtcbi8vLyAgIH1cblxuQG1peGluIGVsbGlwc2lzKCR3aWR0aDogMTAwJSkge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1heC13aWR0aDogJHdpZHRoO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgd29yZC13cmFwOiBub3JtYWw7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBHZW9yZ2lhIGZvbnQgc3RhY2suXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG5cbiRnZW9yZ2lhOiBcIkdlb3JnaWFcIiwgXCJDYW1icmlhXCIsIFwiVGltZXMgTmV3IFJvbWFuXCIsIFwiVGltZXNcIiwgc2VyaWY7XG5cbi8vLyBIZWx2ZXRpY2EgZm9udCBzdGFjay5cbi8vL1xuLy8vIEB0eXBlIExpc3RcblxuJGhlbHZldGljYTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBcIkhlbHZldGljYVwiLCBcIlJvYm90b1wiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG5cbi8vLyBMdWNpZGEgR3JhbmRlIGZvbnQgc3RhY2suXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG5cbiRsdWNpZGEtZ3JhbmRlOiBcIkx1Y2lkYSBHcmFuZGVcIiwgXCJUYWhvbWFcIiwgXCJWZXJkYW5hXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcblxuLy8vIE1vbm9zcGFjZSBmb250IHN0YWNrLlxuLy8vXG4vLy8gQHR5cGUgTGlzdFxuXG4kbW9ub3NwYWNlOiBcIkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ub1wiLCBcIkNvbnNvbGFzXCIsIFwiQ291cmllclwiLCBtb25vc3BhY2U7XG5cbi8vLyBWZXJkYW5hIGZvbnQgc3RhY2suXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG5cbiR2ZXJkYW5hOiBcIlZlcmRhbmFcIiwgXCJHZW5ldmFcIiwgc2Fucy1zZXJpZjtcbiIsIi8vLyBIaWRlcyB0aGUgdGV4dCBpbiBhbiBlbGVtZW50LCBjb21tb25seSB1c2VkIHRvIHNob3cgYW4gaW1hZ2UuIFNvbWUgZWxlbWVudHMgd2lsbCBuZWVkIGJsb2NrLWxldmVsIHN0eWxlcyBhcHBsaWVkLlxuLy8vXG4vLy8gQGxpbmsgaHR0cDovL3plbGRtYW4uY29tLzIwMTIvMDMvMDEvcmVwbGFjaW5nLXRoZS05OTk5cHgtaGFjay1uZXctaW1hZ2UtcmVwbGFjZW1lbnRcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBoaWRlLXRleHQ7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIG92ZXJmbG93OiBoaWRkZW47XG4vLy8gICAgIHRleHQtaW5kZW50OiAxMDElO1xuLy8vICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuLy8vICAgfVxuLy8vXG4vLy8gQHRvZG8gUmVtb3ZlIGhlaWdodCBhcmd1bWVudCBpbiB2NS4wLjBcblxuQG1peGluIGhpZGUtdGV4dCgkaGVpZ2h0OiBudWxsKSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtaW5kZW50OiAxMDElO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gIEBpZiAkaGVpZ2h0IHtcbiAgICBAd2FybiBcIlRoZSBgaGlkZS10ZXh0YCBtaXhpbiBoYXMgY2hhbmdlZCBhbmQgbm8gbG9uZ2VyIHJlcXVpcmVzIGEgaGVpZ2h0LiBUaGUgaGVpZ2h0IGFyZ3VtZW50IHdpbGwgbm8gbG9uZ2VyIGJlIGFjY2VwdGVkIGluIHY1LjAuMFwiO1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBtYXJnaW5gIG9uIHNwZWNpZmljIHNpZGVzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIG1hcmdpbihudWxsIDEwcHggM2VtIDIwdmgpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBtYXJnaW4tYm90dG9tOiAzZW07XG4vLy8gICAgIG1hcmdpbi1sZWZ0OiAyMHZoO1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7bWl4aW59IGRpcmVjdGlvbmFsLXByb3BlcnR5XG4vLy9cbi8vLyBAb3V0cHV0IGBtYXJnaW5gXG5cbkBtaXhpbiBtYXJnaW4oJHZhbHMuLi4pIHtcbiAgJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZzogJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzO1xuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6IGZhbHNlICFnbG9iYWw7XG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KG1hcmdpbiwgZmFsc2UsICR2YWxzLi4uKTtcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nICFnbG9iYWw7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBwYWRkaW5nYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBwYWRkaW5nKDEydmggbnVsbCAxMHB4IDUlKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4vLy8gICAgIHBhZGRpbmctbGVmdDogNSU7XG4vLy8gICAgIHBhZGRpbmctdG9wOiAxMnZoO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxuLy8vXG4vLy8gQG91dHB1dCBgcGFkZGluZ2BcblxuQG1peGluIHBhZGRpbmcoJHZhbHMuLi4pIHtcbiAgJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZzogJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzO1xuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6IGZhbHNlICFnbG9iYWw7XG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KHBhZGRpbmcsIGZhbHNlLCAkdmFscy4uLik7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZyAhZ2xvYmFsO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHNldHRpbmcgYW4gZWxlbWVudOKAmXMgcG9zaXRpb24uIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cbi8vL1xuLy8vIEBwYXJhbSB7UG9zaXRpb259ICRwb3NpdGlvbiBbcmVsYXRpdmVdXG4vLy8gICBBIENTUyBwb3NpdGlvbiB2YWx1ZVxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkY29vcmRpbmF0ZXMgW251bGwgbnVsbCBudWxsIG51bGxdXG4vLy8gICBMaXN0IG9mIHZhbHVlcyB0aGF0IGNvcnJlc3BvbmQgdG8gdGhlIDQtdmFsdWUgc3ludGF4IGZvciB0aGUgZWRnZXMgb2YgYSBib3hcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMCBudWxsIG51bGwgMTBlbSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGxlZnQ6IDEwZW07XG4vLy8gICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbi8vLyAgICAgdG9wOiAwO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBpcy1sZW5ndGhcbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IHVucGFja1xuXG5AbWl4aW4gcG9zaXRpb24oJHBvc2l0aW9uOiByZWxhdGl2ZSwgJGNvb3JkaW5hdGVzOiBudWxsIG51bGwgbnVsbCBudWxsKSB7XG4gIEBpZiB0eXBlLW9mKCRwb3NpdGlvbikgPT0gbGlzdCB7XG4gICAgJGNvb3JkaW5hdGVzOiAkcG9zaXRpb247XG4gICAgJHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuXG4gICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZSAhZ2xvYmFsO1xuICAkY29vcmRpbmF0ZXM6IHVucGFjaygkY29vcmRpbmF0ZXMpO1xuXG4gICRvZmZzZXRzOiAoXG4gICAgdG9wOiAgICBudGgoJGNvb3JkaW5hdGVzLCAxKSxcbiAgICByaWdodDogIG50aCgkY29vcmRpbmF0ZXMsIDIpLFxuICAgIGJvdHRvbTogbnRoKCRjb29yZGluYXRlcywgMyksXG4gICAgbGVmdDogICBudGgoJGNvb3JkaW5hdGVzLCA0KVxuICApO1xuXG4gIHBvc2l0aW9uOiAkcG9zaXRpb247XG5cbiAgQGVhY2ggJG9mZnNldCwgJHZhbHVlIGluICRvZmZzZXRzIHtcbiAgICBAaWYgaXMtbGVuZ3RoKCR2YWx1ZSkge1xuICAgICAgI3skb2Zmc2V0fTogJHZhbHVlO1xuICAgIH1cbiAgfVxuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6ICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmcgIWdsb2JhbDtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEEgbWl4aW4gZm9yIGdlbmVyYXRpbmcgdmVuZG9yIHByZWZpeGVzIG9uIG5vbi1zdGFuZGFyZGl6ZWQgcHJvcGVydGllcy5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkcHJvcGVydHlcbi8vLyAgIFByb3BlcnR5IHRvIHByZWZpeFxuLy8vXG4vLy8gQHBhcmFtIHsqfSAkdmFsdWVcbi8vLyAgIFZhbHVlIHRvIHVzZVxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkcHJlZml4ZXNcbi8vLyAgIFByZWZpeGVzIHRvIGRlZmluZVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHByZWZpeGVyKGJvcmRlci1yYWRpdXMsIDEwcHgsIHdlYmtpdCBtcyBzcGVjKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAxMHB4O1xuLy8vICAgICAtbW96LWJvcmRlci1yYWRpdXM6IDEwcHg7XG4vLy8gICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLXdlYmtpdFxuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3ItbW96aWxsYVxuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3ItbWljcm9zb2Z0XG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci1vcGVyYVxuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3Itc3BlY1xuXG5AbWl4aW4gcHJlZml4ZXIoJHByb3BlcnR5LCAkdmFsdWUsICRwcmVmaXhlcykge1xuICBAZWFjaCAkcHJlZml4IGluICRwcmVmaXhlcyB7XG4gICAgQGlmICRwcmVmaXggPT0gd2Via2l0IHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci13ZWJraXQge1xuICAgICAgICAtd2Via2l0LSN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgJHByZWZpeCA9PSBtb3oge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLW1vemlsbGEge1xuICAgICAgICAtbW96LSN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgJHByZWZpeCA9PSBtcyB7XG4gICAgICBAaWYgJHByZWZpeC1mb3ItbWljcm9zb2Z0IHtcbiAgICAgICAgLW1zLSN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgJHByZWZpeCA9PSBvIHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci1vcGVyYSB7XG4gICAgICAgIC1vLSN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgJHByZWZpeCA9PSBzcGVjIHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci1zcGVjIHtcbiAgICAgICAgI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfSBAZWxzZSAge1xuICAgICAgQHdhcm4gXCJVbnJlY29nbml6ZWQgcHJlZml4OiAjeyRwcmVmaXh9XCI7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBkaXNhYmxlLXByZWZpeC1mb3ItYWxsKCkge1xuICAkcHJlZml4LWZvci13ZWJraXQ6ICAgIGZhbHNlICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW1vemlsbGE6ICAgZmFsc2UgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3ItbWljcm9zb2Z0OiBmYWxzZSAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1vcGVyYTogICAgIGZhbHNlICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLXNwZWM6ICAgICAgZmFsc2UgIWdsb2JhbDtcbn1cbiIsIkBtaXhpbiByZXRpbmEtaW1hZ2UoJGZpbGVuYW1lLCAkYmFja2dyb3VuZC1zaXplLCAkZXh0ZW5zaW9uOiBwbmcsICRyZXRpbmEtZmlsZW5hbWU6IG51bGwsICRyZXRpbmEtc3VmZml4OiBfMngsICRhc3NldC1waXBlbGluZTogJGFzc2V0LXBpcGVsaW5lKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZShcInJldGluYS1pbWFnZVwiKTtcblxuICBAaWYgJGFzc2V0LXBpcGVsaW5lIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBpbWFnZS11cmwoXCIjeyRmaWxlbmFtZX0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgfSBAZWxzZSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogICAgICAgdXJsKFwiI3skZmlsZW5hbWV9LiN7JGV4dGVuc2lvbn1cIik7XG4gIH1cblxuICBAaW5jbHVkZSBoaWRwaSB7XG4gICAgQGlmICRhc3NldC1waXBlbGluZSB7XG4gICAgICBAaWYgJHJldGluYS1maWxlbmFtZSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGltYWdlLXVybChcIiN7JHJldGluYS1maWxlbmFtZX0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBpbWFnZS11cmwoXCIjeyRmaWxlbmFtZX0jeyRyZXRpbmEtc3VmZml4fS4jeyRleHRlbnNpb259XCIpO1xuICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgQGlmICRyZXRpbmEtZmlsZW5hbWUge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIjeyRyZXRpbmEtZmlsZW5hbWV9LiN7JGV4dGVuc2lvbn1cIik7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiI3skZmlsZW5hbWV9I3skcmV0aW5hLXN1ZmZpeH0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBiYWNrZ3JvdW5kLXNpemU6ICRiYWNrZ3JvdW5kLXNpemU7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFNldHMgdGhlIGB3aWR0aGAgYW5kIGBoZWlnaHRgIG9mIHRoZSBlbGVtZW50LlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkc2l6ZVxuLy8vICAgQSBsaXN0IG9mIGF0IG1vc3QgMiBzaXplIHZhbHVlcy5cbi8vL1xuLy8vICAgSWYgdGhlcmUgaXMgb25seSBhIHNpbmdsZSB2YWx1ZSBpbiBgJHNpemVgIGl0IGlzIHVzZWQgZm9yIGJvdGggd2lkdGggYW5kIGhlaWdodC4gQWxsIHVuaXRzIGFyZSBzdXBwb3J0ZWQuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5maXJzdC1lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgc2l6ZSgyZW0pO1xuLy8vICAgfVxuLy8vXG4vLy8gICAuc2Vjb25kLWVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBzaXplKGF1dG8gMTBlbSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZmlyc3QtZWxlbWVudCB7XG4vLy8gICAgIHdpZHRoOiAyZW07XG4vLy8gICAgIGhlaWdodDogMmVtO1xuLy8vICAgfVxuLy8vXG4vLy8gICAuc2Vjb25kLWVsZW1lbnQge1xuLy8vICAgICB3aWR0aDogYXV0bztcbi8vLyAgICAgaGVpZ2h0OiAxMGVtO1xuLy8vICAgfVxuLy8vXG4vLy8gQHRvZG8gUmVmYWN0b3IgaW4gNS4wLjAgdG8gdXNlIGEgY29tbWEtc2VwYXJhdGVkIGFyZ3VtZW50XG5cbkBtaXhpbiBzaXplKCR2YWx1ZSkge1xuICAkd2lkdGg6IG50aCgkdmFsdWUsIDEpO1xuICAkaGVpZ2h0OiAkd2lkdGg7XG5cbiAgQGlmIGxlbmd0aCgkdmFsdWUpID4gMSB7XG4gICAgJGhlaWdodDogbnRoKCR2YWx1ZSwgMik7XG4gIH1cblxuICAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nOiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2UgIWdsb2JhbDtcblxuICBAaWYgaXMtc2l6ZSgkaGVpZ2h0KSB7XG4gICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICB9IEBlbHNlIHtcbiAgICBAd2FybiBcImAjeyRoZWlnaHR9YCBpcyBub3QgYSB2YWxpZCBsZW5ndGggZm9yIHRoZSBgJGhlaWdodGAgcGFyYW1ldGVyIGluIHRoZSBgc2l6ZWAgbWl4aW4uXCI7XG4gIH1cblxuICBAaWYgaXMtc2l6ZSgkd2lkdGgpIHtcbiAgICB3aWR0aDogJHdpZHRoO1xuICB9IEBlbHNlIHtcbiAgICBAd2FybiBcImAjeyR3aWR0aH1gIGlzIG5vdCBhIHZhbGlkIGxlbmd0aCBmb3IgdGhlIGAkd2lkdGhgIHBhcmFtZXRlciBpbiB0aGUgYHNpemVgIG1peGluLlwiO1xuICB9XG5cbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nICFnbG9iYWw7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBHZW5lcmF0ZXMgdmFyaWFibGVzIGZvciBhbGwgdGV4dC1iYXNlZCBpbnB1dHMuIFBsZWFzZSBub3RlIHRoYXQgeW91IG11c3QgdXNlIGludGVycG9sYXRpb24gb24gdGhlIHZhcmlhYmxlOiBgI3skYWxsLXRleHQtaW5wdXRzfWAuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgICN7JGFsbC10ZXh0LWlucHV0c30ge1xuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjZjAwO1xuLy8vICAgfVxuLy8vXG4vLy8gICAjeyRhbGwtdGV4dC1pbnB1dHMtZm9jdXN9LFxuLy8vICAgI3skYWxsLXRleHQtaW5wdXRzLWhvdmVyfSB7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICMwZjA7XG4vLy8gICB9XG4vLy9cbi8vLyAgICN7JGFsbC10ZXh0LWlucHV0cy1hY3RpdmV9IHtcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgIzAwZjtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIGlucHV0W3R5cGU9XCJjb2xvclwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRlXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwidGVsXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInRleHRcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwidGltZVwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ1cmxcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwid2Vla1wiXSxcbi8vLyAgIHRleHRhcmVhIHtcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgI2YwMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgaW5wdXRbdHlwZT1cImNvbG9yXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGVcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwiZW1haWxcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwibW9udGhcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZWxcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwidGV4dFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0aW1lXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInVybFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJ3ZWVrXCJdOmZvY3VzLFxuLy8vICAgdGV4dGFyZWE6Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwiY29sb3JcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZVwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJtb250aFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInRlbFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInRpbWVcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwidXJsXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cIndlZWtcIl06aG92ZXIsXG4vLy8gICB0ZXh0YXJlYTpob3ZlciB7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICMwZjA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIGlucHV0W3R5cGU9XCJjb2xvclwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZVwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwibW9udGhcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwidGVsXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0aW1lXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ1cmxcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cIndlZWtcIl06YWN0aXZlLFxuLy8vICAgdGV4dGFyZWE6YWN0aXZlIHtcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgIzAwZjtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIGFzc2lnbi1pbnB1dHNcbi8vL1xuLy8vIEB0eXBlIExpc3RcblxuJHRleHQtaW5wdXRzLWxpc3Q6ICdpbnB1dFt0eXBlPVwiY29sb3JcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiZGF0ZVwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJkYXRldGltZVwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJlbWFpbFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJtb250aFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJudW1iZXJcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwic2VhcmNoXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInRlbFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ0ZXh0XCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInRpbWVcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwidXJsXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cIndlZWtcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dDpub3QoW3R5cGVdKScsXG4gICAgICAgICAgICAgICAgICAgJ3RleHRhcmVhJztcblxuJHVzZXItb3V0cHV0LWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2U7XG5cbiRhbGwtdGV4dC1pbnB1dHM6ICAgICAgICBhc3NpZ24taW5wdXRzKCR0ZXh0LWlucHV0cy1saXN0KTtcbiRhbGwtdGV4dC1pbnB1dHMtYWN0aXZlOiBhc3NpZ24taW5wdXRzKCR0ZXh0LWlucHV0cy1saXN0LCBhY3RpdmUpO1xuJGFsbC10ZXh0LWlucHV0cy1mb2N1czogIGFzc2lnbi1pbnB1dHMoJHRleHQtaW5wdXRzLWxpc3QsIGZvY3VzKTtcbiRhbGwtdGV4dC1pbnB1dHMtaG92ZXI6ICBhc3NpZ24taW5wdXRzKCR0ZXh0LWlucHV0cy1saXN0LCBob3Zlcik7XG5cbiRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItb3V0cHV0LWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc7XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDU1MgY3ViaWMtYmV6aWVyIHRpbWluZyBmdW5jdGlvbnMuIFRpbWluZyBmdW5jdGlvbnMgY291cnRlc3kgb2YganF1ZXJ5LmVhc2llIChnaXRodWIuY29tL2phdWtpYS9lYXNpZSlcbi8vL1xuLy8vIFRpbWluZyBmdW5jdGlvbnMgYXJlIHRoZSBzYW1lIGFzIGRlbW9lZCBoZXJlOiBodHRwOi8vanF1ZXJ5dWkuY29tL3Jlc291cmNlcy9kZW1vcy9lZmZlY3QvZWFzaW5nLmh0bWxcbi8vL1xuLy8vIEB0eXBlIGN1YmljLWJlemllclxuXG4kZWFzZS1pbi1xdWFkOiAgICAgIGN1YmljLWJlemllcigwLjU1MCwgIDAuMDg1LCAwLjY4MCwgMC41MzApO1xuJGVhc2UtaW4tY3ViaWM6ICAgICBjdWJpYy1iZXppZXIoMC41NTAsICAwLjA1NSwgMC42NzUsIDAuMTkwKTtcbiRlYXNlLWluLXF1YXJ0OiAgICAgY3ViaWMtYmV6aWVyKDAuODk1LCAgMC4wMzAsIDAuNjg1LCAwLjIyMCk7XG4kZWFzZS1pbi1xdWludDogICAgIGN1YmljLWJlemllcigwLjc1NSwgIDAuMDUwLCAwLjg1NSwgMC4wNjApO1xuJGVhc2UtaW4tc2luZTogICAgICBjdWJpYy1iZXppZXIoMC40NzAsICAwLjAwMCwgMC43NDUsIDAuNzE1KTtcbiRlYXNlLWluLWV4cG86ICAgICAgY3ViaWMtYmV6aWVyKDAuOTUwLCAgMC4wNTAsIDAuNzk1LCAwLjAzNSk7XG4kZWFzZS1pbi1jaXJjOiAgICAgIGN1YmljLWJlemllcigwLjYwMCwgIDAuMDQwLCAwLjk4MCwgMC4zMzUpO1xuJGVhc2UtaW4tYmFjazogICAgICBjdWJpYy1iZXppZXIoMC42MDAsIC0wLjI4MCwgMC43MzUsIDAuMDQ1KTtcblxuJGVhc2Utb3V0LXF1YWQ6ICAgICBjdWJpYy1iZXppZXIoMC4yNTAsICAwLjQ2MCwgMC40NTAsIDAuOTQwKTtcbiRlYXNlLW91dC1jdWJpYzogICAgY3ViaWMtYmV6aWVyKDAuMjE1LCAgMC42MTAsIDAuMzU1LCAxLjAwMCk7XG4kZWFzZS1vdXQtcXVhcnQ6ICAgIGN1YmljLWJlemllcigwLjE2NSwgIDAuODQwLCAwLjQ0MCwgMS4wMDApO1xuJGVhc2Utb3V0LXF1aW50OiAgICBjdWJpYy1iZXppZXIoMC4yMzAsICAxLjAwMCwgMC4zMjAsIDEuMDAwKTtcbiRlYXNlLW91dC1zaW5lOiAgICAgY3ViaWMtYmV6aWVyKDAuMzkwLCAgMC41NzUsIDAuNTY1LCAxLjAwMCk7XG4kZWFzZS1vdXQtZXhwbzogICAgIGN1YmljLWJlemllcigwLjE5MCwgIDEuMDAwLCAwLjIyMCwgMS4wMDApO1xuJGVhc2Utb3V0LWNpcmM6ICAgICBjdWJpYy1iZXppZXIoMC4wNzUsICAwLjgyMCwgMC4xNjUsIDEuMDAwKTtcbiRlYXNlLW91dC1iYWNrOiAgICAgY3ViaWMtYmV6aWVyKDAuMTc1LCAgMC44ODUsIDAuMzIwLCAxLjI3NSk7XG5cbiRlYXNlLWluLW91dC1xdWFkOiAgY3ViaWMtYmV6aWVyKDAuNDU1LCAgMC4wMzAsIDAuNTE1LCAwLjk1NSk7XG4kZWFzZS1pbi1vdXQtY3ViaWM6IGN1YmljLWJlemllcigwLjY0NSwgIDAuMDQ1LCAwLjM1NSwgMS4wMDApO1xuJGVhc2UtaW4tb3V0LXF1YXJ0OiBjdWJpYy1iZXppZXIoMC43NzAsICAwLjAwMCwgMC4xNzUsIDEuMDAwKTtcbiRlYXNlLWluLW91dC1xdWludDogY3ViaWMtYmV6aWVyKDAuODYwLCAgMC4wMDAsIDAuMDcwLCAxLjAwMCk7XG4kZWFzZS1pbi1vdXQtc2luZTogIGN1YmljLWJlemllcigwLjQ0NSwgIDAuMDUwLCAwLjU1MCwgMC45NTApO1xuJGVhc2UtaW4tb3V0LWV4cG86ICBjdWJpYy1iZXppZXIoMS4wMDAsICAwLjAwMCwgMC4wMDAsIDEuMDAwKTtcbiRlYXNlLWluLW91dC1jaXJjOiAgY3ViaWMtYmV6aWVyKDAuNzg1LCAgMC4xMzUsIDAuMTUwLCAwLjg2MCk7XG4kZWFzZS1pbi1vdXQtYmFjazogIGN1YmljLWJlemllcigwLjY4MCwgLTAuNTUwLCAwLjI2NSwgMS41NTApO1xuIiwiQG1peGluIHRyaWFuZ2xlKCRzaXplLCAkY29sb3IsICRkaXJlY3Rpb24pIHtcbiAgJHdpZHRoOiBudGgoJHNpemUsIDEpO1xuICAkaGVpZ2h0OiBudGgoJHNpemUsIGxlbmd0aCgkc2l6ZSkpO1xuICAkZm9yZWdyb3VuZC1jb2xvcjogbnRoKCRjb2xvciwgMSk7XG4gICRiYWNrZ3JvdW5kLWNvbG9yOiBpZihsZW5ndGgoJGNvbG9yKSA9PSAyLCBudGgoJGNvbG9yLCAyKSwgdHJhbnNwYXJlbnQpO1xuICBoZWlnaHQ6IDA7XG4gIHdpZHRoOiAwO1xuXG4gIEBpZiAoJGRpcmVjdGlvbiA9PSB1cCkgb3IgKCRkaXJlY3Rpb24gPT0gZG93bikgb3IgKCRkaXJlY3Rpb24gPT0gcmlnaHQpIG9yICgkZGlyZWN0aW9uID09IGxlZnQpIHtcbiAgICAkd2lkdGg6ICR3aWR0aCAvIDI7XG4gICAgJGhlaWdodDogaWYobGVuZ3RoKCRzaXplKSA+IDEsICRoZWlnaHQsICRoZWlnaHQvMik7XG5cbiAgICBAaWYgJGRpcmVjdGlvbiA9PSB1cCB7XG4gICAgICBib3JkZXItYm90dG9tOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLWxlZnQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSByaWdodCB7XG4gICAgICBib3JkZXItYm90dG9tOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItbGVmdDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci10b3A6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gZG93biB7XG4gICAgICBib3JkZXItbGVmdDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItdG9wOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBsZWZ0IHtcbiAgICAgIGJvcmRlci1ib3R0b206ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1yaWdodDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci10b3A6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gdXAtcmlnaHQpIG9yICgkZGlyZWN0aW9uID09IHVwLWxlZnQpIHtcbiAgICBib3JkZXItdG9wOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gdXAtcmlnaHQge1xuICAgICAgYm9yZGVyLWxlZnQ6ICAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IHVwLWxlZnQge1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfVxuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGRvd24tcmlnaHQpIG9yICgkZGlyZWN0aW9uID09IGRvd24tbGVmdCkge1xuICAgIGJvcmRlci1ib3R0b206ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG5cbiAgICBAaWYgJGRpcmVjdGlvbiA9PSBkb3duLXJpZ2h0IHtcbiAgICAgIGJvcmRlci1sZWZ0OiAgJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBkb3duLWxlZnQge1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfVxuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LXVwKSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogJGhlaWdodCAkd2lkdGg7XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtZG93bikge1xuICAgIGJvcmRlci1jb2xvcjogJGZvcmVncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6ICRoZWlnaHQgJHdpZHRoO1xuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LXJpZ2h0KSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogJHdpZHRoICRoZWlnaHQ7XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtbGVmdCkge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6ICR3aWR0aCAkaGVpZ2h0O1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhbiBlYXN5IHdheSB0byBjaGFuZ2UgdGhlIGB3b3JkLXdyYXBgIHByb3BlcnR5LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR3cmFwIFticmVhay13b3JkXVxuLy8vICAgVmFsdWUgZm9yIHRoZSBgd29yZC1icmVha2AgcHJvcGVydHkuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC53cmFwcGVyIHtcbi8vLyAgICAgQGluY2x1ZGUgd29yZC13cmFwKGJyZWFrLXdvcmQpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLndyYXBwZXIge1xuLy8vICAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuLy8vICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4vLy8gICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbi8vLyAgIH1cblxuQG1peGluIHdvcmQtd3JhcCgkd3JhcDogYnJlYWstd29yZCkge1xuICBvdmVyZmxvdy13cmFwOiAkd3JhcDtcbiAgd29yZC13cmFwOiAkd3JhcDtcblxuICBAaWYgJHdyYXAgPT0gYnJlYWstd29yZCB7XG4gICAgd29yZC1icmVhazogYnJlYWstYWxsO1xuICB9IEBlbHNlIHtcbiAgICB3b3JkLWJyZWFrOiAkd3JhcDtcbiAgfVxufVxuIiwiLy8gVGhlIGZvbGxvd2luZyBmZWF0dXJlcyBoYXZlIGJlZW4gZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IE1BSk9SIHZlcnNpb24gcmVsZWFzZVxuXG5AbWl4aW4gaW5saW5lLWJsb2NrIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlKFwiaW5saW5lLWJsb2NrXCIpO1xuXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuQG1peGluIGJ1dHRvbiAoJHN0eWxlOiBzaW1wbGUsICRiYXNlLWNvbG9yOiAjNDI5NGYwLCAkdGV4dC1zaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlKFwiYnV0dG9uXCIpO1xuXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gc3RyaW5nIGFuZCB0eXBlLW9mKCRiYXNlLWNvbG9yKSA9PSBjb2xvciB7XG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xuICB9XG5cbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBzdHJpbmcgYW5kIHR5cGUtb2YoJGJhc2UtY29sb3IpID09IG51bWJlciB7XG4gICAgJHBhZGRpbmc6ICR0ZXh0LXNpemU7XG4gICAgJHRleHQtc2l6ZTogJGJhc2UtY29sb3I7XG4gICAgJGJhc2UtY29sb3I6ICM0Mjk0ZjA7XG5cbiAgICBAaWYgJHBhZGRpbmcgPT0gaW5oZXJpdCB7XG4gICAgICAkcGFkZGluZzogN3B4IDE4cHg7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xuICB9XG5cbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBjb2xvciBhbmQgdHlwZS1vZigkYmFzZS1jb2xvcikgPT0gY29sb3Ige1xuICAgICRiYXNlLWNvbG9yOiAkc3R5bGU7XG4gICAgJHN0eWxlOiBzaW1wbGU7XG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xuICB9XG5cbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBjb2xvciBhbmQgdHlwZS1vZigkYmFzZS1jb2xvcikgPT0gbnVtYmVyIHtcbiAgICAkcGFkZGluZzogJHRleHQtc2l6ZTtcbiAgICAkdGV4dC1zaXplOiAkYmFzZS1jb2xvcjtcbiAgICAkYmFzZS1jb2xvcjogJHN0eWxlO1xuICAgICRzdHlsZTogc2ltcGxlO1xuXG4gICAgQGlmICRwYWRkaW5nID09IGluaGVyaXQge1xuICAgICAgJHBhZGRpbmc6IDdweCAxOHB4O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gbnVtYmVyIHtcbiAgICAkcGFkZGluZzogJGJhc2UtY29sb3I7XG4gICAgJHRleHQtc2l6ZTogJHN0eWxlO1xuICAgICRiYXNlLWNvbG9yOiAjNDI5NGYwO1xuICAgICRzdHlsZTogc2ltcGxlO1xuXG4gICAgQGlmICRwYWRkaW5nID09ICM0Mjk0ZjAge1xuICAgICAgJHBhZGRpbmc6IDdweCAxOHB4O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcbiAgfVxuXG4gICY6ZGlzYWJsZWQge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgb3BhY2l0eTogMC41O1xuICB9XG59XG5cbi8vIFNlbGVjdG9yIFN0eWxlIEJ1dHRvblxuQG1peGluIGJ1dHRvbnN0eWxlKCR0eXBlLCAkYi1jb2xvciwgJHQtc2l6ZSwgJHBhZCkge1xuICAvLyBHcmF5c2NhbGUgYnV0dG9uXG4gIEBpZiAkdHlwZSA9PSBzaW1wbGUgYW5kICRiLWNvbG9yID09IGdyYXlzY2FsZSgkYi1jb2xvcikge1xuICAgIEBpbmNsdWRlIHNpbXBsZSgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAaWYgJHR5cGUgPT0gc2hpbnkgYW5kICRiLWNvbG9yID09IGdyYXlzY2FsZSgkYi1jb2xvcikge1xuICAgIEBpbmNsdWRlIHNoaW55KCRiLWNvbG9yLCB0cnVlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIEBpZiAkdHlwZSA9PSBwaWxsIGFuZCAkYi1jb2xvciA9PSBncmF5c2NhbGUoJGItY29sb3IpIHtcbiAgICBAaW5jbHVkZSBwaWxsKCRiLWNvbG9yLCB0cnVlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIEBpZiAkdHlwZSA9PSBmbGF0IGFuZCAkYi1jb2xvciA9PSBncmF5c2NhbGUoJGItY29sb3IpIHtcbiAgICBAaW5jbHVkZSBmbGF0KCRiLWNvbG9yLCB0cnVlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIC8vIENvbG9yZWQgYnV0dG9uXG4gIEBpZiAkdHlwZSA9PSBzaW1wbGUge1xuICAgIEBpbmNsdWRlIHNpbXBsZSgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGVsc2UgaWYgJHR5cGUgPT0gc2hpbnkge1xuICAgIEBpbmNsdWRlIHNoaW55KCRiLWNvbG9yLCBmYWxzZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAZWxzZSBpZiAkdHlwZSA9PSBwaWxsIHtcbiAgICBAaW5jbHVkZSBwaWxsKCRiLWNvbG9yLCBmYWxzZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAZWxzZSBpZiAkdHlwZSA9PSBmbGF0IHtcbiAgICBAaW5jbHVkZSBmbGF0KCRiLWNvbG9yLCBmYWxzZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cbn1cblxuLy8gU2ltcGxlIEJ1dHRvblxuQG1peGluIHNpbXBsZSgkYmFzZS1jb2xvciwgJGdyYXlzY2FsZTogZmFsc2UsICR0ZXh0c2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XG4gICRib3JkZXI6ICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAgOSUsICAkbGlnaHRuZXNzOiAtMTQlKTtcbiAgJGluc2V0LXNoYWRvdzogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IC04JSwgICRsaWdodG5lc3M6ICAxNSUpO1xuICAkc3RvcC1ncmFkaWVudDogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogIDklLCAgJGxpZ2h0bmVzczogLTExJSk7XG4gICR0ZXh0LXNoYWRvdzogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAgMTUlLCAkbGlnaHRuZXNzOiAtMTglKTtcblxuICBAaWYgaXMtbGlnaHQoJGJhc2UtY29sb3IpIHtcbiAgICAkY29sb3I6ICAgICAgIGhzbCgwLCAwLCAyMCUpO1xuICAgICR0ZXh0LXNoYWRvdzogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogMTAlLCAkbGlnaHRuZXNzOiA0JSk7XG4gIH1cblxuICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAkYm9yZGVyOiAgICAgICAgZ3JheXNjYWxlKCRib3JkZXIpO1xuICAgICRpbnNldC1zaGFkb3c6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdyk7XG4gICAgJHN0b3AtZ3JhZGllbnQ6IGdyYXlzY2FsZSgkc3RvcC1ncmFkaWVudCk7XG4gICAgJHRleHQtc2hhZG93OiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3cpO1xuICB9XG5cbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdztcbiAgY29sb3I6ICRjb2xvcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6ICR0ZXh0c2l6ZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCAoJGJhc2UtY29sb3IsICRzdG9wLWdyYWRpZW50KTtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IDAgMXB4IDAgJHRleHQtc2hhZG93O1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAtNCUsICRsaWdodG5lc3M6IC01JSk7XG4gICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IC03JSwgJGxpZ2h0bmVzczogIDUlKTtcbiAgICAkc3RvcC1ncmFkaWVudC1ob3ZlcjogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogIDglLCAkbGlnaHRuZXNzOiAtMTQlKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGdyYXlzY2FsZSgkYmFzZS1jb2xvci1ob3Zlcik7XG4gICAgICAkaW5zZXQtc2hhZG93LWhvdmVyOiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctaG92ZXIpO1xuICAgICAgJHN0b3AtZ3JhZGllbnQtaG92ZXI6IGdyYXlzY2FsZSgkc3RvcC1ncmFkaWVudC1ob3Zlcik7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50ICgkYmFzZS1jb2xvci1ob3ZlciwgJHN0b3AtZ3JhZGllbnQtaG92ZXIpO1xuXG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3ctaG92ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXG4gICY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xuICAgICRib3JkZXItYWN0aXZlOiAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiA5JSwgJGxpZ2h0bmVzczogLTE0JSk7XG4gICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDclLCAkbGlnaHRuZXNzOiAtMTclKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGJvcmRlci1hY3RpdmU6ICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLWFjdGl2ZSk7XG4gICAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctYWN0aXZlKTtcbiAgICB9XG5cbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWFjdGl2ZTtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgOHB4IDRweCAkaW5zZXQtc2hhZG93LWFjdGl2ZSwgaW5zZXQgMCAwIDhweCA0cHggJGluc2V0LXNoYWRvdy1hY3RpdmU7XG4gIH1cbn1cblxuLy8gU2hpbnkgQnV0dG9uXG5AbWl4aW4gc2hpbnkoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xuICAkY29sb3I6ICAgICAgICAgaHNsKDAsIDAsIDEwMCUpO1xuICAkYm9yZGVyOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTE3LCAkZ3JlZW46IC0xMTEsICRibHVlOiAtODEpO1xuICAkYm9yZGVyLWJvdHRvbTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTI2LCAkZ3JlZW46IC0xMjcsICRibHVlOiAtMTIyKTtcbiAgJGZvdXJ0aC1zdG9wOiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTc5LCAgJGdyZWVuOiAtNzAsICAkYmx1ZTogLTQ2KTtcbiAgJGluc2V0LXNoYWRvdzogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogIDM3LCAgJGdyZWVuOiAgMjksICAkYmx1ZTogIDEyKTtcbiAgJHNlY29uZC1zdG9wOiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTU2LCAgJGdyZWVuOiAtNTAsICAkYmx1ZTogLTMzKTtcbiAgJHRleHQtc2hhZG93OiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTE0MCwgJGdyZWVuOiAtMTQxLCAkYmx1ZTogLTExNCk7XG4gICR0aGlyZC1zdG9wOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC04NiwgICRncmVlbjogLTc1LCAgJGJsdWU6IC00OCk7XG5cbiAgQGlmIGlzLWxpZ2h0KCRiYXNlLWNvbG9yKSB7XG4gICAgJGNvbG9yOiAgICAgICBoc2woMCwgMCwgMjAlKTtcbiAgICAkdGV4dC1zaGFkb3c6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDEwJSwgJGxpZ2h0bmVzczogNCUpO1xuICB9XG5cbiAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgJGJvcmRlcjogICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyKTtcbiAgICAkYm9yZGVyLWJvdHRvbTogZ3JheXNjYWxlKCRib3JkZXItYm90dG9tKTtcbiAgICAkZm91cnRoLXN0b3A6ICAgZ3JheXNjYWxlKCRmb3VydGgtc3RvcCk7XG4gICAgJGluc2V0LXNoYWRvdzogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93KTtcbiAgICAkc2Vjb25kLXN0b3A6ICAgZ3JheXNjYWxlKCRzZWNvbmQtc3RvcCk7XG4gICAgJHRleHQtc2hhZG93OiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3cpO1xuICAgICR0aGlyZC1zdG9wOiAgICBncmF5c2NhbGUoJHRoaXJkLXN0b3ApO1xuICB9XG5cbiAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50KHRvcCwgJGJhc2UtY29sb3IgMCUsICRzZWNvbmQtc3RvcCA1MCUsICR0aGlyZC1zdG9wIDUwJSwgJGZvdXJ0aC1zdG9wIDEwMCUpO1xuXG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXI7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYm9yZGVyLWJvdHRvbTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdztcbiAgY29sb3I6ICRjb2xvcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6ICR0ZXh0c2l6ZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93O1xuXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgICRmaXJzdC1zdG9wLWhvdmVyOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTMsICRncmVlbjogLTE1LCAkYmx1ZTogLTE4KTtcbiAgICAkc2Vjb25kLXN0b3AtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTY2LCAkZ3JlZW46IC02MiwgJGJsdWU6IC01MSk7XG4gICAgJHRoaXJkLXN0b3AtaG92ZXI6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC05MywgJGdyZWVuOiAtODUsICRibHVlOiAtNjYpO1xuICAgICRmb3VydGgtc3RvcC1ob3ZlcjogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtODYsICRncmVlbjogLTgwLCAkYmx1ZTogLTYzKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGZpcnN0LXN0b3AtaG92ZXI6ICBncmF5c2NhbGUoJGZpcnN0LXN0b3AtaG92ZXIpO1xuICAgICAgJHNlY29uZC1zdG9wLWhvdmVyOiBncmF5c2NhbGUoJHNlY29uZC1zdG9wLWhvdmVyKTtcbiAgICAgICR0aGlyZC1zdG9wLWhvdmVyOiAgZ3JheXNjYWxlKCR0aGlyZC1zdG9wLWhvdmVyKTtcbiAgICAgICRmb3VydGgtc3RvcC1ob3ZlcjogZ3JheXNjYWxlKCRmb3VydGgtc3RvcC1ob3Zlcik7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50KHRvcCwgJGZpcnN0LXN0b3AtaG92ZXIgIDAlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzZWNvbmQtc3RvcC1ob3ZlciA1MCUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXJkLXN0b3AtaG92ZXIgIDUwJSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZm91cnRoLXN0b3AtaG92ZXIgMTAwJSk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXG4gICY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xuICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xMTEsICRncmVlbjogLTExNiwgJGJsdWU6IC0xMjIpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctYWN0aXZlKTtcbiAgICB9XG5cbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMjBweCAwICRpbnNldC1zaGFkb3ctYWN0aXZlO1xuICB9XG59XG5cbi8vIFBpbGwgQnV0dG9uXG5AbWl4aW4gcGlsbCgkYmFzZS1jb2xvciwgJGdyYXlzY2FsZTogZmFsc2UsICR0ZXh0c2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XG4gICRib3JkZXItYm90dG9tOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogLTExJSwgJGxpZ2h0bmVzczogLTI2JSk7XG4gICRib3JkZXItc2lkZXM6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA0LCAkc2F0dXJhdGlvbjogLTIxJSwgJGxpZ2h0bmVzczogLTIxJSk7XG4gICRib3JkZXItdG9wOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IC0xLCAkc2F0dXJhdGlvbjogLTMwJSwgJGxpZ2h0bmVzczogLTE1JSk7XG4gICRpbnNldC1zaGFkb3c6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IC0xLCAkc2F0dXJhdGlvbjogLTElLCAgJGxpZ2h0bmVzczogIDclKTtcbiAgJHN0b3AtZ3JhZGllbnQ6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDgsICRzYXR1cmF0aW9uOiAgMTQlLCAkbGlnaHRuZXNzOiAtMTAlKTtcbiAgJHRleHQtc2hhZG93OiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDUsICRzYXR1cmF0aW9uOiAtMTklLCAkbGlnaHRuZXNzOiAtMTUlKTtcblxuICBAaWYgaXMtbGlnaHQoJGJhc2UtY29sb3IpIHtcbiAgICAkY29sb3I6ICAgICAgIGhzbCgwLCAwLCAyMCUpO1xuICAgICR0ZXh0LXNoYWRvdzogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogMTAlLCAkbGlnaHRuZXNzOiA0JSk7XG4gIH1cblxuICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAkYm9yZGVyLWJvdHRvbTogZ3JheXNjYWxlKCRib3JkZXItYm90dG9tKTtcbiAgICAkYm9yZGVyLXNpZGVzOiAgZ3JheXNjYWxlKCRib3JkZXItc2lkZXMpO1xuICAgICRib3JkZXItdG9wOiAgICBncmF5c2NhbGUoJGJvcmRlci10b3ApO1xuICAgICRpbnNldC1zaGFkb3c6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdyk7XG4gICAgJHN0b3AtZ3JhZGllbnQ6IGdyYXlzY2FsZSgkc3RvcC1ncmFkaWVudCk7XG4gICAgJHRleHQtc2hhZG93OiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3cpO1xuICB9XG5cbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci10b3A7XG4gIGJvcmRlci1jb2xvcjogJGJvcmRlci10b3AgJGJvcmRlci1zaWRlcyAkYm9yZGVyLWJvdHRvbTtcbiAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3c7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQgKCRiYXNlLWNvbG9yLCAkc3RvcC1ncmFkaWVudCk7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93O1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGlnaHRuZXNzOiAtNC41JSk7XG4gICAgJGJvcmRlci1ib3R0b206ICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDgsICRzYXR1cmF0aW9uOiAgMTMuNSUsICRsaWdodG5lc3M6IC0zMiUpO1xuICAgICRib3JkZXItc2lkZXM6ICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA0LCAkc2F0dXJhdGlvbjogLTIlLCAgICAkbGlnaHRuZXNzOiAtMjclKTtcbiAgICAkYm9yZGVyLXRvcDogICAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAtMSwgJHNhdHVyYXRpb246IC0xNyUsICAgJGxpZ2h0bmVzczogLTIxJSk7XG4gICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgICAgICAgICAgICRzYXR1cmF0aW9uOiAtMSUsICAgICRsaWdodG5lc3M6ICAzJSk7XG4gICAgJHN0b3AtZ3JhZGllbnQtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDgsICRzYXR1cmF0aW9uOiAtNCUsICAgICRsaWdodG5lc3M6IC0xNS41JSk7XG4gICAgJHRleHQtc2hhZG93LWhvdmVyOiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDUsICRzYXR1cmF0aW9uOiAtNSUsICAgICRsaWdodG5lc3M6IC0yMiUpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgZ3JheXNjYWxlKCRiYXNlLWNvbG9yLWhvdmVyKTtcbiAgICAgICRib3JkZXItYm90dG9tOiAgICAgICBncmF5c2NhbGUoJGJvcmRlci1ib3R0b20pO1xuICAgICAgJGJvcmRlci1zaWRlczogICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLXNpZGVzKTtcbiAgICAgICRib3JkZXItdG9wOiAgICAgICAgICBncmF5c2NhbGUoJGJvcmRlci10b3ApO1xuICAgICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWhvdmVyKTtcbiAgICAgICRzdG9wLWdyYWRpZW50LWhvdmVyOiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQtaG92ZXIpO1xuICAgICAgJHRleHQtc2hhZG93LWhvdmVyOiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3ctaG92ZXIpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCAoJGJhc2UtY29sb3ItaG92ZXIsICRzdG9wLWdyYWRpZW50LWhvdmVyKTtcblxuICAgIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci10b3A7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLXRvcCAkYm9yZGVyLXNpZGVzICRib3JkZXItYm90dG9tO1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93LWhvdmVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0ZXh0LXNoYWRvdzogMCAtMXB4IDFweCAkdGV4dC1zaGFkb3ctaG92ZXI7XG4gIH1cblxuICAmOmFjdGl2ZTpub3QoOmRpc2FibGVkKSxcbiAgJjpmb2N1czpub3QoOmRpc2FibGVkKSB7XG4gICAgJGFjdGl2ZS1jb2xvcjogICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDQsICAkc2F0dXJhdGlvbjogLTEyJSwgICRsaWdodG5lc3M6IC0xMCUpO1xuICAgICRib3JkZXItYWN0aXZlOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA2LCAgJHNhdHVyYXRpb246IC0yLjUlLCAkbGlnaHRuZXNzOiAtMzAlKTtcbiAgICAkYm9yZGVyLWJvdHRvbS1hY3RpdmU6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogMTEsICRzYXR1cmF0aW9uOiAgNiUsICAgJGxpZ2h0bmVzczogLTMxJSk7XG4gICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDksICAkc2F0dXJhdGlvbjogIDIlLCAgICRsaWdodG5lc3M6IC0yMS41JSk7XG4gICAgJHRleHQtc2hhZG93LWFjdGl2ZTogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDUsICAkc2F0dXJhdGlvbjogLTEyJSwgICRsaWdodG5lc3M6IC0yMS41JSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRhY3RpdmUtY29sb3I6ICAgICAgICAgZ3JheXNjYWxlKCRhY3RpdmUtY29sb3IpO1xuICAgICAgJGJvcmRlci1hY3RpdmU6ICAgICAgICBncmF5c2NhbGUoJGJvcmRlci1hY3RpdmUpO1xuICAgICAgJGJvcmRlci1ib3R0b20tYWN0aXZlOiBncmF5c2NhbGUoJGJvcmRlci1ib3R0b20tYWN0aXZlKTtcbiAgICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctYWN0aXZlKTtcbiAgICAgICR0ZXh0LXNoYWRvdy1hY3RpdmU6ICAgZ3JheXNjYWxlKCR0ZXh0LXNoYWRvdy1hY3RpdmUpO1xuICAgIH1cblxuICAgIGJhY2tncm91bmQ6ICRhY3RpdmUtY29sb3I7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1hY3RpdmU7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRib3JkZXItYm90dG9tLWFjdGl2ZTtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IDNweCAkaW5zZXQtc2hhZG93LWFjdGl2ZTtcbiAgICB0ZXh0LXNoYWRvdzogMCAtMXB4IDFweCAkdGV4dC1zaGFkb3ctYWN0aXZlO1xuICB9XG59XG5cbi8vIEZsYXQgQnV0dG9uXG5AbWl4aW4gZmxhdCgkYmFzZS1jb2xvciwgJGdyYXlzY2FsZTogZmFsc2UsICR0ZXh0c2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XG5cbiAgQGlmIGlzLWxpZ2h0KCRiYXNlLWNvbG9yKSB7XG4gICAgJGNvbG9yOiAgICAgICBoc2woMCwgMCwgMjAlKTtcbiAgfVxuXG4gIGJhY2tncm91bmQtY29sb3I6ICRiYXNlLWNvbG9yO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJvcmRlcjogMDtcbiAgY29sb3I6ICRjb2xvcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6ICR0ZXh0c2l6ZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG5cbiAgJjpob3Zlcjpub3QoOmRpc2FibGVkKXtcbiAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogNCUsICRsaWdodG5lc3M6IDUlKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGJhc2UtY29sb3ItaG92ZXI6IGdyYXlzY2FsZSgkYmFzZS1jb2xvci1ob3Zlcik7XG4gICAgfVxuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhc2UtY29sb3ItaG92ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXG4gICY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xuICAgICRiYXNlLWNvbG9yLWFjdGl2ZTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogLTQlLCAkbGlnaHRuZXNzOiAtNSUpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkYmFzZS1jb2xvci1hY3RpdmU6IGdyYXlzY2FsZSgkYmFzZS1jb2xvci1hY3RpdmUpO1xuICAgIH1cblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYXNlLWNvbG9yLWFjdGl2ZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbn1cblxuLy8gRmxleGlibGUgZ3JpZFxuQGZ1bmN0aW9uIGZsZXgtZ3JpZCgkY29sdW1ucywgJGNvbnRhaW5lci1jb2x1bW5zOiAkZmctbWF4LWNvbHVtbnMpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBmbGV4LWdyaWRgIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgXCIgK1xuICAgIFwicmVtb3ZlZCBpbiA1LjAuMC4gRm9yIGdyaWQgZnVuY3Rpb25zLCBjaGVjayBvdXQgQm91cmJvbidzIHNpc3RlciBsaWJyYXJ5XCIgK1xuICAgIFwiTmVhdC5cIjtcbiAgfVxuXG4gICR3aWR0aDogJGNvbHVtbnMgKiAkZmctY29sdW1uICsgKCRjb2x1bW5zIC0gMSkgKiAkZmctZ3V0dGVyO1xuICAkY29udGFpbmVyLXdpZHRoOiAkY29udGFpbmVyLWNvbHVtbnMgKiAkZmctY29sdW1uICsgKCRjb250YWluZXItY29sdW1ucyAtIDEpICogJGZnLWd1dHRlcjtcbiAgQHJldHVybiBwZXJjZW50YWdlKCR3aWR0aCAvICRjb250YWluZXItd2lkdGgpO1xufVxuXG4vLyBGbGV4aWJsZSBndXR0ZXJcbkBmdW5jdGlvbiBmbGV4LWd1dHRlcigkY29udGFpbmVyLWNvbHVtbnM6ICRmZy1tYXgtY29sdW1ucywgJGd1dHRlcjogJGZnLWd1dHRlcikge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYGZsZXgtZ3V0dGVyYCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIFwiICtcbiAgICBcInJlbW92ZWQgaW4gNS4wLjAuIEZvciBncmlkIGZ1bmN0aW9ucywgY2hlY2sgb3V0IEJvdXJib24ncyBzaXN0ZXIgbGlicmFyeVwiICtcbiAgICBcIk5lYXQuXCI7XG4gIH1cblxuICAkY29udGFpbmVyLXdpZHRoOiAkY29udGFpbmVyLWNvbHVtbnMgKiAkZmctY29sdW1uICsgKCRjb250YWluZXItY29sdW1ucyAtIDEpICogJGZnLWd1dHRlcjtcbiAgQHJldHVybiBwZXJjZW50YWdlKCRndXR0ZXIgLyAkY29udGFpbmVyLXdpZHRoKTtcbn1cblxuQGZ1bmN0aW9uIGdyaWQtd2lkdGgoJG4pIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBncmlkLXdpZHRoYCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIFwiICtcbiAgICBcInJlbW92ZWQgaW4gNS4wLjAuIEZvciBncmlkIGZ1bmN0aW9ucywgY2hlY2sgb3V0IEJvdXJib24ncyBzaXN0ZXIgbGlicmFyeVwiICtcbiAgICBcIk5lYXQuXCI7XG4gIH1cblxuICBAcmV0dXJuICRuICogJGd3LWNvbHVtbiArICgkbiAtIDEpICogJGd3LWd1dHRlcjtcbn1cblxuQGZ1bmN0aW9uIGdvbGRlbi1yYXRpbygkdmFsdWUsICRpbmNyZW1lbnQpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBnb2xkZW4tcmF0aW9gIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgXCIgK1xuICAgIFwicmVtb3ZlZCBpbiA1LjAuMC4gWW91IGNhbiB1c2UgdGhlIGBtb2R1bGFyLXNjYWxlYCBmdW5jdGlvbiBpbnN0ZWFkLlwiO1xuICB9XG5cbiAgQHJldHVybiBtb2R1bGFyLXNjYWxlKCRpbmNyZW1lbnQsICR2YWx1ZSwgJHJhdGlvOiAkZ29sZGVuKTtcbn1cblxuQG1peGluIGJveC1zaXppbmcoJGJveCkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImJveC1zaXppbmdcIik7XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LXNpemluZywgJGJveCwgd2Via2l0IG1veiBzcGVjKTtcbn1cbiIsIi8vIFN1c3lcbi8vID09PT1cblxuQGltcG9ydCAnc3VzeS9sYW5ndWFnZS9zdXN5JztcbiIsIi8vIFN1c3kgTmV4dCBTeW50YXhcbi8vID09PT09PT09PT09PT09PT1cblxuJHN1c3ktdmVyc2lvbjogMi4xO1xuXG5AaW1wb3J0IFwiLi4vc3VcIjtcbkBpbXBvcnQgXCIuLi9vdXRwdXQvZmxvYXRcIjtcblxuQGltcG9ydCBcInN1c3kvc2V0dGluZ3NcIjtcbkBpbXBvcnQgXCJzdXN5L3ZhbGlkYXRpb25cIjtcbkBpbXBvcnQgXCJzdXN5L2dyaWRzXCI7XG5AaW1wb3J0IFwic3VzeS9ib3gtc2l6aW5nXCI7XG5AaW1wb3J0IFwic3VzeS9jb250ZXh0XCI7XG5AaW1wb3J0IFwic3VzeS9iYWNrZ3JvdW5kXCI7XG5AaW1wb3J0IFwic3VzeS9jb250YWluZXJcIjtcbkBpbXBvcnQgXCJzdXN5L3NwYW5cIjtcbkBpbXBvcnQgXCJzdXN5L2d1dHRlcnNcIjtcbkBpbXBvcnQgXCJzdXN5L2lzb2xhdGVcIjtcbkBpbXBvcnQgXCJzdXN5L2dhbGxlcnlcIjtcbkBpbXBvcnQgXCJzdXN5L3Jvd3NcIjtcbkBpbXBvcnQgXCJzdXN5L21hcmdpbnNcIjtcbkBpbXBvcnQgXCJzdXN5L3BhZGRpbmdcIjtcbkBpbXBvcnQgXCJzdXN5L2JsZWVkXCI7XG5AaW1wb3J0IFwic3VzeS9icmVha3BvaW50LXBsdWdpblwiO1xuIiwiLy8gU3Vcbi8vID09XG5cbkBpbXBvcnQgXCJzdS91dGlsaXRpZXNcIjtcbkBpbXBvcnQgXCJzdS9zZXR0aW5nc1wiO1xuQGltcG9ydCBcInN1L3ZhbGlkYXRpb25cIjtcbkBpbXBvcnQgXCJzdS9ncmlkXCI7XG4iLCIvLyBNYXAgRnVuY3Rpb25zXG4vLyA9PT09PT09PT09PT09XG5cblxuLy8gVHJ1bmNhdGUgTGlzdFxuLy8gLS0tLS0tLS0tLS0tLVxuLy8gLSBSZXR1cm4gYSBsaXN0LCB0cnVuY2F0ZWQgdG8gYSBnaXZlbiBsZW5ndGhcbkBmdW5jdGlvbiBfc3VzeS10cnVuY2F0ZS1saXN0KFxuICAkbGlzdCxcbiAgJGxlbmd0aFxuKSB7XG4gICRfcmV0dXJuOiAoKTtcblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIGxlbmd0aCgkbGlzdCkge1xuICAgICRfcmV0dXJuOiBpZigkaSA8PSAkbGVuZ3RoLCBhcHBlbmQoJF9yZXR1cm4sIG50aCgkbGlzdCwgJGkpKSwgJF9yZXR1cm4pO1xuICB9XG5cbiAgQHJldHVybiAkX3JldHVybjtcbn1cblxuXG4vLyBEZWVwIEdldFxuLy8gLS0tLS0tLS1cbi8vIC0gUmV0dXJuIGEgdmFsdWUgZGVlcCBpbiBuZXN0ZWQgbWFwc1xuQGZ1bmN0aW9uIF9zdXN5LWRlZXAtZ2V0KFxuICAkbWFwLFxuICAka2V5cy4uLlxuKSB7XG4gICRfcmV0dXJuOiAkbWFwO1xuXG4gIEBlYWNoICRrZXkgaW4gJGtleXMge1xuICAgIEBpZiB0eXBlLW9mKCRfcmV0dXJuKSA9PSBtYXAge1xuICAgICAgJF9yZXR1cm46IG1hcC1nZXQoJF9yZXR1cm4sICRrZXkpO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJF9yZXR1cm47XG59XG5cblxuLy8gRGVlcCBTZXRcbi8vIC0tLS0tLS0tXG4vLyAtIFNldCBhIHZhbHVlIGRlZXAgaW4gbmVzdGVkIG1hcHNcbkBmdW5jdGlvbiBfc3VzeS1kZWVwLXNldChcbiAgJG1hcCxcbiAgJGtleXMtdmFsdWUuLi5cbikge1xuICAkX3ZhbHVlOiBudGgoJGtleXMtdmFsdWUsIC0xKTtcbiAgJF9rZXlzOiBfc3VzeS10cnVuY2F0ZS1saXN0KCRrZXlzLXZhbHVlLCBsZW5ndGgoJGtleXMtdmFsdWUpIC0gMSk7XG4gICRfbGVuZ3RoOiBsZW5ndGgoJF9rZXlzKTtcbiAgJF9yZXR1cm46ICgpO1xuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJF9sZW5ndGgge1xuICAgICRfbjogMCAtICRpO1xuICAgICRfbGV2ZWw6IF9zdXN5LXRydW5jYXRlLWxpc3QoJF9rZXlzLCAkX2xlbmd0aCArICRfbik7XG4gICAgJF9sZXZlbDogX3N1c3ktZGVlcC1nZXQoJG1hcCwgJF9sZXZlbC4uLik7XG4gICAgJF9tZXJnZTogbnRoKCRfa2V5cywgJF9uKTtcbiAgICAkX21lcmdlOiAoJF9tZXJnZTogJF92YWx1ZSk7XG4gICAgJF9yZXR1cm46IGlmKCRfbGV2ZWwsIG1hcC1tZXJnZSgkX2xldmVsLCAkX21lcmdlKSwgJF9tZXJnZSk7XG4gICAgJF92YWx1ZTogJF9yZXR1cm47XG4gIH1cblxuICBAcmV0dXJuICRfcmV0dXJuO1xufVxuXG5cbi8vIERlZXAgTWVyZ2Vcbi8vIC0tLS0tLS0tLS1cbi8vIFJldHVybiAyIG9iamVjdHMgb2YgYW55IGRlcHRoLCBtZXJnZWRcbkBmdW5jdGlvbiBfc3VzeS1kZWVwLW1lcmdlKFxuICAkbWFwMSxcbiAgJG1hcDJcbikge1xuXG4gIEBpZiB0eXBlLW9mKCRtYXAxKSAhPSBtYXAgb3IgdHlwZS1vZigkbWFwMikgIT0gbWFwIHtcbiAgICAkbWFwMTogJG1hcDI7XG4gIH0gQGVsc2Uge1xuICAgIEBlYWNoICRrZXksICR2YWx1ZSBpbiAkbWFwMiB7XG4gICAgICAkX25ldzogKCRrZXk6IF9zdXN5X2RlZXAtbWVyZ2UobWFwLWdldCgkbWFwMSwgJGtleSksICR2YWx1ZSkpO1xuICAgICAgJG1hcDE6IG1hcC1tZXJnZSgkbWFwMSwgJF9uZXcpO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJG1hcDE7XG59XG5cblxuLy8gRGVlcCBIYXMtS2V5XG4vLyAtLS0tLS0tLS0tLS1cbi8vIC0gUmV0dXJuIHRydWUgaWYgYSBkZWVwIGtleSBleGlzdHNcbkBmdW5jdGlvbiBfc3VzeS1kZWVwLWhhcy1rZXkoXG4gICRtYXAsXG4gICRrZXlzLi4uXG4pIHtcbiAgJF9yZXR1cm46IG51bGw7XG4gICRfc3RvcDogZmFsc2U7XG5cbiAgQGVhY2ggJGtleSBpbiAka2V5cyB7XG4gICAgQGlmIG5vdCgkX3N0b3ApIHtcbiAgICAgICRfcmV0dXJuOiBtYXAtaGFzLWtleSgkbWFwLCAka2V5KTtcbiAgICB9XG5cbiAgICBAaWYgJF9yZXR1cm4ge1xuICAgICAgJG1hcDogbWFwLWdldCgkbWFwLCAka2V5KTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRfc3RvcDogdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRfcmV0dXJuO1xufVxuIiwiLy8gU2V0dGluZ3Ncbi8vID09PT09PT09XG5cbi8vIFZlcnNpb25cbi8vIC0tLS0tLS1cbiRzdS12ZXJzaW9uOiAxLjE7XG5cblxuLy8gRGVmYXVsdCBTZXR0aW5nc1xuLy8gLS0tLS0tLS0tLS0tLS0tLVxuLy8gUFJJVkFURTogVGhlIGJhc2ljIHNldHRpbmdzXG4kc3VzeS1kZWZhdWx0czogKFxuICBjb2x1bW5zOiA0LFxuICBndXR0ZXJzOiAuMjUsXG4pO1xuXG5cbi8vIFVzZXIgU2V0dGluZ3Ncbi8vIC0tLS0tLS0tLS0tLS1cbi8vIC0gRGVmaW5lIHRoZSAkc3VzeSB2YXJpYWJsZSB3aXRoIGEgbWFwIG9mIHlvdXIgb3duIHNldHRpbmdzLlxuLy8gLSBTZXQgRUlUSEVSICRjb2x1bW4td2lkdGggT1IgJGNvbnRhaW5lclxuLy8gLSBVc2UgJGNvbHVtbi13aWR0aCBmb3Igc3RhdGljIGxheW91dHNcbiRzdXN5OiAoKSAhZGVmYXVsdDtcblxuXG4vLyBTdXN5IERlZmF1bHRzXG4vLyAtLS0tLS0tLS0tLS0tXG4vLyBQUklWQVRFOiBBZGQgZGVmYXVsdHMgdG8gU3VzeVxuQG1peGluIHN1c3ktZGVmYXVsdHMoXG4gICRkZWZhdWx0c1xuKSB7XG4gICRzdXN5LWRlZmF1bHRzOiBtYXAtbWVyZ2UoJHN1c3ktZGVmYXVsdHMsICRkZWZhdWx0cykgIWdsb2JhbDtcbn1cblxuXG4vLyBTdXN5IFNldFxuLy8gLS0tLS0tLS1cbi8vIENoYW5nZSBvbmUgc2V0dGluZ1xuLy8gLSAka2V5ICAgOiBzZXR0aW5nIG5hbWVcbi8vIC0gJHZhbHVlIDogc2V0dGluZyB2YWx1ZVxuQG1peGluIHN1c3ktc2V0KFxuICAka2V5LXZhbHVlLi4uXG4pIHtcbiAgJHN1c3k6IF9zdXN5LWRlZXAtc2V0KCRzdXN5LCAka2V5LXZhbHVlLi4uKSAhZ2xvYmFsO1xufVxuXG5cbi8vIFN1c3kgR2V0XG4vLyAtLS0tLS0tLVxuLy8gUmV0dXJuIG9uZSBzZXR0aW5nIGZyb20gYSBncmlkXG4vLyAtICRrZXkgICAgIDogPGtleXdvcmQ+XG4vLyAtICRsYXlvdXQgIDogPHNldHRpbmdzPlxuQGZ1bmN0aW9uIHN1c3ktZ2V0KFxuICAka2V5LFxuICAkbGF5b3V0OiBtYXAtbWVyZ2UoJHN1c3ktZGVmYXVsdHMsICRzdXN5KVxuKSB7XG4gICRsYXlvdXQ6IHBhcnNlLWdyaWQoJGxheW91dCk7XG4gICRfb3B0aW9uczogJGxheW91dCAkc3VzeSAkc3VzeS1kZWZhdWx0cztcbiAgJF9icmVhazogZmFsc2U7XG4gICRfcmV0dXJuOiBudWxsO1xuXG4gIEBlYWNoICRvcHQgaW4gJF9vcHRpb25zIHtcbiAgICBAaWYgdHlwZS1vZigkb3B0KSA9PSBtYXAgYW5kIG5vdCgkX2JyZWFrKSB7XG4gICAgICAkX2tleXNldDogX3N1c3ktZGVlcC1oYXMta2V5KCRvcHQsICRrZXkuLi4pO1xuICAgICAgQGlmICRfa2V5c2V0IHtcbiAgICAgICAgJF9yZXR1cm46IF9zdXN5LWRlZXAtZ2V0KCRvcHQsICRrZXkuLi4pO1xuICAgICAgICAkX2JyZWFrOiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJF9yZXR1cm47XG59XG4iLCIvLyBNYXRoIFZhbGlkYXRpb25cbi8vID09PT09PT09PT09PT09PVxuXG5cbi8vIFZhbGlkIENvbHVtbnNcbi8vIC0tLS0tLS0tLS0tLS1cbi8vIENoZWNrIHRoYXQgYSBjb2x1bW4gc2V0dGluZyBpcyB2YWxpZC5cbkBmdW5jdGlvbiB2YWxpZC1jb2x1bW5zKFxuICAkY29sdW1ucyxcbiAgJHNpbGVudDogZmFsc2Vcbikge1xuICAkdHlwZTogdHlwZS1vZigkY29sdW1ucyk7XG4gICRyZXR1cm46IG51bGw7XG5cbiAgQGlmICR0eXBlID09IG51bWJlciBhbmQgdW5pdGxlc3MoJGNvbHVtbnMpIHtcbiAgICAkcmV0dXJuOiAkY29sdW1ucztcbiAgfSBAZWxzZSBpZiAkdHlwZSA9PSBsaXN0IHtcbiAgICAkZmFpbDogbnVsbDtcbiAgICBAZWFjaCAkY29sIGluICRjb2x1bW5zIHtcbiAgICAgIEBpZiB0eXBlLW9mKCRjb2wpID09IG51bWJlciB7XG4gICAgICAgICRmYWlsOiAkZmFpbCBvciBpZih1bml0bGVzcygkY29sKSwgbnVsbCwgdHJ1ZSk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJGZhaWw6IHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgICRyZXR1cm46IGlmKCRmYWlsLCAkcmV0dXJuLCAkY29sdW1ucyk7XG4gIH1cblxuICBAaWYgJHJldHVybiAhPSAkY29sdW1ucyBhbmQgbm90KCRzaWxlbnQpIHtcbiAgICAkcmV0dXJuOiBudWxsO1xuICAgICR3YXJuOiAnJGNvbHVtbnMgbXVzdCBiZSBhIHVuaXRsZXNzIG51bWJlciBvciBsaXN0IG9mIHVuaXRsZXNzIG51bWJlcnMuJztcbiAgICBAd2FybiAkd2FybiArICcgQ3VycmVudCB2YWx1ZSBbI3skdHlwZX1dOiAjeyRjb2x1bW5zfSc7XG4gIH1cblxuICBAcmV0dXJuICRyZXR1cm47XG59XG5cblxuLy8gVmFsaWQgR3V0dGVyc1xuLy8gLS0tLS0tLS0tLS0tLVxuLy8gQ2hlY2sgdGhhdCBhIGd1dHRlciBzZXR0aW5nIGlzIHZhbGlkLlxuQGZ1bmN0aW9uIHZhbGlkLWd1dHRlcnMoXG4gICRndXR0ZXJzLFxuICAkc2lsZW50OiBmYWxzZVxuKSB7XG4gICR0eXBlOiB0eXBlLW9mKCRndXR0ZXJzKTtcbiAgJHJldHVybjogbnVsbDtcblxuICBAaWYgJHR5cGUgPT0gbnVtYmVyIGFuZCB1bml0bGVzcygkZ3V0dGVycykge1xuICAgICRyZXR1cm46ICRndXR0ZXJzO1xuICB9IEBlbHNlIGlmIG5vdCgkc2lsZW50KSB7XG4gICAgJHdhcm46ICckZ3V0dGVycyBtdXN0IGJlIGEgdW5pdGxlc3MgbnVtYmVyLic7XG4gICAgQHdhcm4gJHdhcm4gKyAnIEN1cnJlbnQgdmFsdWUgWyN7JHR5cGV9XTogI3skZ3V0dGVyc30nO1xuICB9XG5cbiAgQHJldHVybiAkcmV0dXJuO1xufVxuIiwiLy8gQ29sdW1uIG1hdGhcbi8vID09PT09PT09PT09XG5cblxuLy8gSXMgU3ltbWV0cmljYWxcbi8vIC0tLS0tLS0tLS0tLS0tXG4vLyBSZXR1cm5zIHRydWUgaWYgYSBncmlkIGlzIHN5bW1ldHJpY2FsLlxuLy8gLSBbJGNvbHVtbnNdICAgOiA8bnVtYmVyPiB8IDxsaXN0PlxuQGZ1bmN0aW9uIGlzLXN5bW1ldHJpY2FsKFxuICAkY29sdW1uczogc3VzeS1nZXQoY29sdW1ucylcbikge1xuICAkY29sdW1uczogdmFsaWQtY29sdW1ucygkY29sdW1ucyk7XG4gIEByZXR1cm4gaWYodHlwZS1vZigkY29sdW1ucykgPT0gbnVtYmVyLCAkY29sdW1ucywgbnVsbCk7XG59XG5cblxuLy8gU3VzeSBDb3VudFxuLy8gLS0tLS0tLS0tLVxuLy8gRmluZCB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgaW4gYSBnaXZlbiBsYXlvdXRcbi8vIC0gWyRjb2x1bW5zXSAgIDogPG51bWJlcj4gfCA8bGlzdD5cbkBmdW5jdGlvbiBzdXN5LWNvdW50KFxuICAkY29sdW1uczogc3VzeS1nZXQoY29sdW1ucylcbikge1xuICAkY29sdW1uczogdmFsaWQtY29sdW1ucygkY29sdW1ucyk7XG4gIEByZXR1cm4gaXMtc3ltbWV0cmljYWwoJGNvbHVtbnMpIG9yIGxlbmd0aCgkY29sdW1ucyk7XG59XG5cblxuLy8gU3VzeSBTdW1cbi8vIC0tLS0tLS0tXG4vLyBGaW5kIHRoZSB0b3RhbCBzdW0gb2YgY29sdW1uLXVuaXRzIGluIGEgbGF5b3V0XG4vLyAtIFskY29sdW1uc10gICA6IDxudW1iZXI+IHwgPGxpc3Q+XG4vLyAtIFskZ3V0dGVyc10gICA6IDxyYXRpbz5cbi8vIC0gWyRzcHJlYWRdICAgIDogZmFsc2UvbmFycm93IHwgd2lkZSB8IHdpZGVyXG5AZnVuY3Rpb24gc3VzeS1zdW0oXG4gICRjb2x1bW5zICA6IHN1c3ktZ2V0KGNvbHVtbnMpLFxuICAkZ3V0dGVycyAgOiBzdXN5LWdldChndXR0ZXJzKSxcbiAgJHNwcmVhZCAgIDogZmFsc2Vcbikge1xuICAkY29sdW1uczogdmFsaWQtY29sdW1ucygkY29sdW1ucyk7XG4gICRndXR0ZXJzOiB2YWxpZC1ndXR0ZXJzKCRndXR0ZXJzKTtcblxuICAkc3ByZWFkOiBpZigkc3ByZWFkID09IHdpZGUsIDAsIGlmKCRzcHJlYWQgPT0gd2lkZXIsIDEsIC0xKSk7XG4gICRndXR0ZXItc3VtOiAoc3VzeS1jb3VudCgkY29sdW1ucykgKyAkc3ByZWFkKSAqICRndXR0ZXJzO1xuICAkY29sdW1uLXN1bTogaXMtc3ltbWV0cmljYWwoJGNvbHVtbnMpO1xuXG4gIEBpZiBub3QoJGNvbHVtbi1zdW0pIHtcbiAgICBAZWFjaCAkY29sdW1uIGluICRjb2x1bW5zIHtcbiAgICAgICRjb2x1bW4tc3VtOiAoJGNvbHVtbi1zdW0gb3IgMCkgKyAkY29sdW1uO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJGNvbHVtbi1zdW0gKyAkZ3V0dGVyLXN1bTtcbn1cblxuXG4vLyBTdXN5IFNsaWNlXG4vLyAtLS0tLS0tLS0tXG4vLyBSZXR1cm4gYSBzdWJzZXQgb2YgY29sdW1ucyBhdCBhIGdpdmVuIGxvY2F0aW9uLlxuLy8gLSAkc3BhbiAgICAgICAgOiA8bnVtYmVyPlxuLy8gLSAkbG9jYXRpb24gICAgOiA8bnVtYmVyPlxuLy8gLSBbJGNvbHVtbnNdICAgOiA8bnVtYmVyPiB8IDxsaXN0PlxuQGZ1bmN0aW9uIHN1c3ktc2xpY2UoXG4gICRzcGFuLFxuICAkbG9jYXRpb24sXG4gICRjb2x1bW5zOiBzdXN5LWdldChjb2x1bW5zKVxuKSB7XG4gICRjb2x1bW5zOiB2YWxpZC1jb2x1bW5zKCRjb2x1bW5zKTtcbiAgJHN1Yi1jb2x1bW5zOiAkc3BhbjtcblxuICBAaWYgbm90KGlzLXN5bW1ldHJpY2FsKCRjb2x1bW5zKSkge1xuICAgICRsb2NhdGlvbjogJGxvY2F0aW9uIG9yIDE7XG4gICAgJHN1Yi1jb2x1bW5zOiAoKTtcbiAgICBAZm9yICRpIGZyb20gJGxvY2F0aW9uIHRvICgkbG9jYXRpb24gKyAkc3Bhbikge1xuICAgICAgJHN1Yi1jb2x1bW5zOiBhcHBlbmQoJHN1Yi1jb2x1bW5zLCBudGgoJGNvbHVtbnMsICRpKSk7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkc3ViLWNvbHVtbnM7XG59XG5cblxuLy8gU3VzeVxuLy8gLS0tLVxuLy8gRmluZCB0aGUgc3VtIG9mIGEgY29sdW1uLXNwYW4uXG4vLyAtICRzcGFuICAgICAgICA6IDxudW1iZXI+XG4vLyAtICRsb2NhdGlvbiAgICA6IDxudW1iZXI+XG4vLyAtIFskY29sdW1uc10gICA6IDxudW1iZXI+IHwgPGxpc3Q+XG4vLyAtIFskZ3V0dGVyc10gICA6IDxyYXRpbz5cbi8vIC0gWyRzcHJlYWRdICAgIDogZmFsc2UvbmFycm93IHwgd2lkZSB8IHdpZGVyXG5AZnVuY3Rpb24gc3VzeShcbiAgJHNwYW4sXG4gICRsb2NhdGlvbiAgICAgOiBmYWxzZSxcbiAgJGNvbHVtbnMgICAgICA6IHN1c3ktZ2V0KGNvbHVtbnMpLFxuICAkZ3V0dGVycyAgICAgIDogc3VzeS1nZXQoZ3V0dGVycyksXG4gICRzcHJlYWQgICAgICAgOiBmYWxzZVxuKSB7XG4gICRjb2x1bW5zOiB2YWxpZC1jb2x1bW5zKCRjb2x1bW5zKTtcbiAgJGd1dHRlcnM6IHZhbGlkLWd1dHRlcnMoJGd1dHRlcnMpO1xuICAkc3Bhbjogc3VzeS1zbGljZSgkc3BhbiwgJGxvY2F0aW9uLCAkY29sdW1ucyk7XG5cbiAgQHJldHVybiBzdXN5LXN1bSgkc3BhbiwgJGd1dHRlcnMsICRzcHJlYWQpO1xufVxuIiwiLy8gRmxvYXQgQVBJXG4vLyA9PT09PT09PT1cblxuQGltcG9ydCBcInNoYXJlZFwiO1xuXG5AaW1wb3J0IFwiZmxvYXQvY29udGFpbmVyXCI7XG5AaW1wb3J0IFwiZmxvYXQvc3BhblwiO1xuQGltcG9ydCBcImZsb2F0L2VuZFwiO1xuQGltcG9ydCBcImZsb2F0L2lzb2xhdGVcIjtcbiIsIi8vIFNoYXJlZCBBUElcbi8vID09PT09PT09PT1cblxuQGltcG9ydCBcInN1cHBvcnRcIjtcblxuQGltcG9ydCBcInNoYXJlZC9pbnNwZWN0XCI7XG5AaW1wb3J0IFwic2hhcmVkL291dHB1dFwiO1xuQGltcG9ydCBcInNoYXJlZC9kaXJlY3Rpb25cIjtcbkBpbXBvcnQgXCJzaGFyZWQvYmFja2dyb3VuZFwiO1xuQGltcG9ydCBcInNoYXJlZC9jb250YWluZXJcIjtcbkBpbXBvcnQgXCJzaGFyZWQvbWFyZ2luc1wiO1xuQGltcG9ydCBcInNoYXJlZC9wYWRkaW5nXCI7XG5cblxuXG4iLCIvLyBTdXN5IEJyb3dzZXIgU3VwcG9ydFxuLy8gPT09PT09PT09PT09PT09PT09PT1cblxuQGltcG9ydCBcInN1cHBvcnQvc3VwcG9ydFwiO1xuQGltcG9ydCBcInN1cHBvcnQvcHJlZml4XCI7XG5AaW1wb3J0IFwic3VwcG9ydC9iYWNrZ3JvdW5kXCI7XG5AaW1wb3J0IFwic3VwcG9ydC9ib3gtc2l6aW5nXCI7XG5AaW1wb3J0IFwic3VwcG9ydC9yZW1cIjtcbkBpbXBvcnQgXCJzdXBwb3J0L2NsZWFyZml4XCI7XG4iLCIvLyBCcm93c2VyIFN1cHBvcnRcbi8vID09PT09PT09PT09PT09PVxuXG4vLyBTdXN5IFN1cHBvcnQgRGVmYXVsdHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQGluY2x1ZGUgc3VzeS1kZWZhdWx0cygoXG4gIHVzZS1jdXN0b206IChcbiAgICBjbGVhcmZpeDogZmFsc2UsXG4gICAgYmFja2dyb3VuZC1pbWFnZTogdHJ1ZSxcbiAgICBiYWNrZ3JvdW5kLW9wdGlvbnM6IGZhbHNlLFxuICAgIGJyZWFrcG9pbnQ6IHRydWUsXG4gICAgYm94LXNpemluZzogdHJ1ZSxcbiAgICByZW06IHRydWUsXG4gICksXG4pKTtcblxuXG4vLyBTdXN5IFN1cHBvcnQgW21peGluXVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFNlbmQgcHJvcGVydHktdmFsdWUgcGFpcnMgdG8gdGhlIHByb3BlciBzdXBwb3J0IG1vZHVsZXMuXG4vLyAtICRwcm9wICA6IDxjc3MgcHJvcGVydHk+XG4vLyAtICR2YWwgICA6IDxjc3MgdmFsdWU+XG5AbWl4aW4gc3VzeS1zdXBwb3J0KFxuICAkcHJvcCxcbiAgJHZhbFxuKSB7XG4gIC8vIEJhY2tncm91bmQgU3VwcG9ydFxuICBAaWYgJHByb3AgPT0gYmFja2dyb3VuZC1pbWFnZSB7XG4gICAgQGluY2x1ZGUgc3VzeS1iYWNrZ3JvdW5kLWltYWdlKCR2YWwpO1xuICB9IEBlbHNlIGlmICRwcm9wID09IGJhY2tncm91bmQtc2l6ZSB7XG4gICAgQGluY2x1ZGUgc3VzeS1iYWNrZ3JvdW5kLXNpemUoJHZhbCk7XG4gIH0gQGVsc2UgaWYgJHByb3AgPT0gYmFja2dyb3VuZC1vcmlnaW4ge1xuICAgIEBpbmNsdWRlIHN1c3ktYmFja2dyb3VuZC1vcmlnaW4oJHZhbCk7XG4gIH0gQGVsc2UgaWYgJHByb3AgPT0gYmFja2dyb3VuZC1jbGlwIHtcbiAgICBAaW5jbHVkZSBzdXN5LWJhY2tncm91bmQtY2xpcCgkdmFsKTtcbiAgfVxuXG4gIC8vIEJveC1TaXppbmcgU3VwcG9ydFxuICBAZWxzZSBpZiAkcHJvcCA9PSBib3gtc2l6aW5nIHtcbiAgICBAaW5jbHVkZSBzdXN5LWJveC1zaXppbmcoJHZhbCk7XG4gIH1cblxuICAvLyBSZW0gU3VwcG9ydFxuICBAZWxzZSB7XG4gICAgQGluY2x1ZGUgc3VzeS1yZW0oJHByb3AsICR2YWwpO1xuICB9XG59XG5cblxuLy8gU3VzeSBTdXBwb3J0IFtmdW5jdGlvbl1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBDaGVjayBmb3Igc3VwcG9ydCBvZiBhIGZlYXR1cmUuXG4vLyAtICRmZWF0dXJlICAgICAgIDogPHN0cmluZz5cbi8vICAgICAgICAgICAgICAgICAgICAtIGUuZyBcInJlbVwiIG9yIFwiYm94LXNpemluZ1wiXG4vLyAtICRyZXF1aXJlbWVudHMgIDogPG1hcD5cbi8vICAgICAgICAgICAgICAgICAgICAtIGUuZyAodmFyaWFibGU6IHJlbS13aXRoLXB4LWZhbGxiYWNrLCBtaXhpbjogcmVtKVxuLy8gLSAkd2FybiAgICAgICAgICA6IDxib29sPlxuQGZ1bmN0aW9uIHN1c3ktc3VwcG9ydChcbiAgJGZlYXR1cmUsXG4gICRyZXF1aXJlbWVudHM6ICgpLFxuICAkd2FybjogdHJ1ZVxuKSB7XG4gICRfc3VwcG9ydDogc3VzeS1nZXQodXNlLWN1c3RvbSAkZmVhdHVyZSk7XG5cbiAgQGlmICRfc3VwcG9ydCB7XG4gICAgJF9mYWlsOiBmYWxzZTtcblxuICAgIEBlYWNoICRfdHlwZSwgJF9yZXEgaW4gJHJlcXVpcmVtZW50cyB7XG4gICAgICBAZWFjaCAkX2kgaW4gJF9yZXEge1xuXG4gICAgICAgICRfcGFzcyA6IG51bGw7XG5cbiAgICAgICAgLy8gc2FzcyAzLjUgb3IgZ3JlYXRlclxuICAgICAgICBAaWYgZnVuY3Rpb24tZXhpc3RzKCdnZXQtZnVuY3Rpb24nKSB7XG4gICAgICAgICAgJF9wYXNzOiBjYWxsKGdldC1mdW5jdGlvbih1bnF1b3RlKFwiI3skX3R5cGV9LWV4aXN0c1wiKSksICRfaSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gc2FzcyAzLjQgb3IgbGVzc1xuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgJF9wYXNzOiBjYWxsKHVucXVvdGUoXCIjeyRfdHlwZX0tZXhpc3RzXCIpLCAkX2kpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmIG5vdCgkX3Bhc3MpIHtcbiAgICAgICAgICAkX2ZhaWw6IHRydWU7XG4gICAgICAgICAgQGlmICR3YXJuIHtcbiAgICAgICAgICAgIEB3YXJuIFwiWW91IHJlcXVlc3RlZCBjdXN0b20gc3VwcG9ydCBvZiAjeyRmZWF0dXJlfSwgYnV0IHRoZSAjeyRfaX0gI3skX3R5cGV9IGlzIG5vdCBhdmFpbGFibGUuXCI7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJF9zdXBwb3J0OiBpZigkX2ZhaWwsIGZhbHNlLCAkX3N1cHBvcnQpO1xuICB9XG5cbiAgQHJldHVybiAkX3N1cHBvcnQ7XG59XG4iLCIvLyBTdXN5IFByZWZpeFxuLy8gPT09PT09PT09PT1cblxuLy8gUHJlZml4XG4vLyAtLS0tLS1cbi8vIE91dHB1dCBzaW1wbGUgcHJlZml4ZWQgcHJvcGVydGllcy5cbi8vIC0gJHByb3AgICAgICA6IDxjc3MgcHJvcGVydHk+XG4vLyAtICR2YWwgICAgICAgOiA8Y3NzIHZhbHVlPlxuLy8gLSBbJHByZWZpeF0gIDogPGJyb3dzZXIgcHJlZml4IGxpc3Q+XG5AbWl4aW4gc3VzeS1wcmVmaXgoXG4gICRwcm9wLFxuICAkdmFsLFxuICAkcHJlZml4OiBvZmZpY2lhbFxuKSB7XG4gIEBlYWNoICRmaXggaW4gJHByZWZpeCB7XG4gICAgJGZpeDogaWYoJGZpeCA9PSBvZmZpY2lhbCBvciBub3QoJGZpeCksICRwcm9wLCAnLSN7JGZpeH0tI3skcHJvcH0nKTtcbiAgICBAaW5jbHVkZSBzdXN5LXJlbSgkZml4LCAkdmFsKTtcbiAgfVxufVxuIiwiLy8gQmFja2dyb3VuZCBQcm9wZXJ0aWVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT1cblxuLy8gU3VzeSBCYWNrZ3JvdW5kIEltYWdlXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIENoZWNrIGZvciBhbiBleGlzdGluZyBzdXBwb3J0IG1peGluLCBvciBwcm92aWRlIGEgc2ltcGxlIGZhbGxiYWNrLlxuLy8gLSAkaW1hZ2U6IDxiYWNrZ3JvdW5kLWltYWdlPlxuQG1peGluIHN1c3ktYmFja2dyb3VuZC1pbWFnZShcbiAgJGltYWdlXG4pIHtcbiAgQGlmIHN1c3ktc3VwcG9ydChiYWNrZ3JvdW5kLWltYWdlLCAobWl4aW46IGJhY2tncm91bmQtaW1hZ2UpLCAkd2FybjogZmFsc2UpIHtcbiAgICBAaW5jbHVkZSBiYWNrZ3JvdW5kLWltYWdlKCRpbWFnZS4uLik7XG4gIH0gQGVsc2Uge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6ICRpbWFnZTtcbiAgfVxufVxuXG4vLyBTdXN5IEJhY2tncm91bmQgU2l6ZVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBDaGVjayBmb3IgYW4gZXhpc3Rpbmcgc3VwcG9ydCBtaXhpbiwgb3IgcHJvdmlkZSBhIHNpbXBsZSBmYWxsYmFjay5cbi8vIC0gJGltYWdlOiA8YmFja2dyb3VuZC1zaXplPlxuQG1peGluIHN1c3ktYmFja2dyb3VuZC1zaXplKFxuICAkc2l6ZVxuKSB7XG4gIEBpZiBzdXN5LXN1cHBvcnQoYmFja2dyb3VuZC1vcHRpb25zLCAobWl4aW46IGJhY2tncm91bmQtc2l6ZSkpIHtcbiAgICBAaW5jbHVkZSBiYWNrZ3JvdW5kLXNpemUoJHNpemUpO1xuICB9IEBlbHNlIHtcbiAgICBiYWNrZ3JvdW5kLXNpemU6ICRzaXplO1xuICB9XG59XG5cbi8vIFN1c3kgQmFja2dyb3VuZCBPcmlnaW5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIENoZWNrIGZvciBhbiBleGlzdGluZyBzdXBwb3J0IG1peGluLCBvciBwcm92aWRlIGEgc2ltcGxlIGZhbGxiYWNrLlxuLy8gLSAkaW1hZ2U6IDxiYWNrZ3JvdW5kLW9yaWdpbj5cbkBtaXhpbiBzdXN5LWJhY2tncm91bmQtb3JpZ2luKFxuICAkb3JpZ2luXG4pIHtcbiAgQGlmIHN1c3ktc3VwcG9ydChiYWNrZ3JvdW5kLW9wdGlvbnMsIChtaXhpbjogYmFja2dyb3VuZC1vcmlnaW4pKSB7XG4gICAgQGluY2x1ZGUgYmFja2dyb3VuZC1vcmlnaW4oJG9yaWdpbik7XG4gIH0gQGVsc2Uge1xuICAgIGJhY2tncm91bmQtb3JpZ2luOiAkb3JpZ2luO1xuICB9XG59XG5cbi8vIFN1c3kgQmFja2dyb3VuZCBDbGlwXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQ2hlY2sgZm9yIGFuIGV4aXN0aW5nIHN1cHBvcnQgbWl4aW4sIG9yIHByb3ZpZGUgYSBzaW1wbGUgZmFsbGJhY2suXG4vLyAtICRpbWFnZTogPGJhY2tncm91bmQtY2xpcD5cbkBtaXhpbiBzdXN5LWJhY2tncm91bmQtY2xpcChcbiAgJGNsaXBcbikge1xuICBAaWYgc3VzeS1zdXBwb3J0KGJhY2tncm91bmQtb3B0aW9ucywgKG1peGluOiBiYWNrZ3JvdW5kLWNsaXApKSB7XG4gICAgQGluY2x1ZGUgYmFja2dyb3VuZC1jbGlwKCRjbGlwKTtcbiAgfSBAZWxzZSB7XG4gICAgYmFja2dyb3VuZC1jbGlwOiAkY2xpcDtcbiAgfVxufVxuIiwiLy8gQm94IFNpemluZ1xuLy8gPT09PT09PT09PVxuXG4vLyBCb3ggU2l6aW5nXG4vLyAtLS0tLS0tLS0tXG4vLyBDaGVjayBmb3IgYW4gZXhpc3Rpbmcgc3VwcG9ydCBtaXhpbiwgb3IgcHJvdmlkZSBhIHNpbXBsZSBmYWxsYmFjay5cbi8vIC0gJG1vZGVsOiA8Ym94LXNpemluZz5cbkBtaXhpbiBzdXN5LWJveC1zaXppbmcoXG4gICRtb2RlbDogY29udGVudC1ib3hcbikge1xuICBAaWYgJG1vZGVsIHtcbiAgICBAaWYgc3VzeS1zdXBwb3J0KGJveC1zaXppbmcsIChtaXhpbjogYm94LXNpemluZyksICR3YXJuOiBmYWxzZSkge1xuICAgICAgQGluY2x1ZGUgYm94LXNpemluZygkbW9kZWwpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJHByZWZpeDogKG1veiwgd2Via2l0LCBvZmZpY2lhbCk7XG4gICAgICBAaW5jbHVkZSBzdXN5LXByZWZpeChib3gtc2l6aW5nLCAkbW9kZWwsICRwcmVmaXgpO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gcmVtIFN1cHBvcnRcbi8vID09PT09PT09PT09XG5cbi8vIHJlbVxuLy8gLS0tXG4vLyBDaGVjayBmb3IgYW4gZXhpc3Rpbmcgc3VwcG9ydCBtaXhpbiwgb3Igb3V0cHV0IGRpcmVjdGx5LlxuLy8gLSAkcHJvcCAgOiA8Y3NzIHByb3BlcnR5PlxuLy8gLSAkdmFsICAgOiA8Y3NzIHZhbHVlPlxuQG1peGluIHN1c3ktcmVtKFxuICAkcHJvcCxcbiAgJHZhbFxuKSB7XG4gICRfcmVxczogKFxuICAgIHZhcmlhYmxlOiByaHl0aG0tdW5pdCByZW0td2l0aC1weC1mYWxsYmFjayxcbiAgICBtaXhpbjogcmVtLFxuICApO1xuICBAaWYgc3VzeS1zdXBwb3J0KHJlbSwgJF9yZXFzLCAkd2FybjogZmFsc2UpIGFuZCAkcmh5dGhtLXVuaXQgPT0gcmVtIHtcbiAgICBAaW5jbHVkZSByZW0oJHByb3AsICR2YWwpO1xuICB9IEBlbHNlIHtcbiAgICAjeyRwcm9wfTogJHZhbDtcbiAgfVxufVxuIiwiLy8gU3VzeSBGYWxsYmFjayBDbGVhcmZpeFxuLy8gPT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIENsZWFyZml4XG4vLyAtLS0tLS0tLVxuLy8gQ2hlY2sgZm9yIGFuIGV4aXN0aW5nIHN1cHBvcnQgbWl4aW4sIG9yIHByb3ZpZGUgYSBzaW1wbGUgZmFsbGJhY2suXG5AbWl4aW4gc3VzeS1jbGVhcmZpeCB7XG4gIEBpZiBzdXN5LXN1cHBvcnQoY2xlYXJmaXgsIChtaXhpbjogY2xlYXJmaXgpKSB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIH0gQGVsc2Uge1xuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCIgXCI7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRGVidWdnaW5nXG4vLyA9PT09PT09PT1cblxuLy8gU3VzeSBJbnNwZWN0XG4vLyAtLS0tLS0tLS0tLS1cbi8vIE91dHB1dCBhcmd1bWVudHMgcGFzc2VkIHRvIGEgaW5zcGVjdC5cbi8vIC0gJG1peGluICA6IDxzdXN5IG1peGluPlxuLy8gLSAkaW5zcGVjICAgOiA8bWl4aW4gYXJndW1lbnRzPlxuXG5AbWl4aW4gc3VzeS1pbnNwZWN0KFxuICAkbWl4aW4sXG4gICRpbnNwZWN0XG4pIHtcbiAgJHNob3c6IGZhbHNlO1xuXG4gIEBlYWNoICRpdGVtIGluICRpbnNwZWN0IHtcbiAgICBAaWYgaW5kZXgoJGl0ZW0sIGluc3BlY3QpIHtcbiAgICAgICRzaG93OiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkc2hvdyBvciBzdXN5LWdldChkZWJ1ZyBpbnNwZWN0KSB7XG4gICAgLXN1c3ktI3skbWl4aW59OiBpbnNwZWN0KCRpbnNwZWN0KTtcbiAgfVxufVxuIiwiLy8gT3V0cHV0XG4vLyA9PT09PT1cblxuLy8gT3V0cHV0XG4vLyAtLS0tLS1cbi8vIE91dHB1dCBDU1Mgd2l0aCBwcm9wZXIgYnJvd3NlciBzdXBwb3J0LlxuLy8gLSAkc3R5bGVzICA6IDxtYXAgb2YgY3NzIHByb3BlcnR5LXZhbHVlIHBhaXJzPlxuQG1peGluIG91dHB1dChcbiAgJHN0eWxlc1xuKSB7XG4gIEBlYWNoICRwcm9wLCAkdmFsIGluICRzdHlsZXMge1xuICAgIEBpbmNsdWRlIHN1c3ktc3VwcG9ydCgkcHJvcCwgJHZhbCk7XG4gIH1cbn1cbiIsIi8vIERpcmVjdGlvbiBIZWxwZXJzXG4vLyA9PT09PT09PT09PT09PT09PVxuXG4vLyBTdXN5IEZsb3cgRGVmYXVsdHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gLSBQUklWQVRFXG5AaW5jbHVkZSBzdXN5LWRlZmF1bHRzKChcbiAgZmxvdzogbHRyLFxuKSk7XG5cbi8vIEdldCBEaXJlY3Rpb25cbi8vIC0tLS0tLS0tLS0tLS1cbi8vIFJldHVybiB0aGUgJ2Zyb20nIG9yICd0bycgZGlyZWN0aW9uIG9mIGEgbHRyIG9yIHJ0bCBmbG93LlxuLy8gLSBbJGZsb3ddICA6IGx0ciB8IHJ0bFxuLy8gLSBbJGtleV0gICA6IGZyb20gfCB0b1xuQGZ1bmN0aW9uIGdldC1kaXJlY3Rpb24oXG4gICRmbG93OiBtYXAtZ2V0KCRzdXN5LWRlZmF1bHRzLCBmbG93KSxcbiAgJGtleTogZnJvbVxuKSB7XG4gICRyZXR1cm46IGlmKCRmbG93ID09IHJ0bCwgKGZyb206IHJpZ2h0LCB0bzogbGVmdCksIChmcm9tOiBsZWZ0LCB0bzogcmlnaHQpKTtcbiAgQHJldHVybiBtYXAtZ2V0KCRyZXR1cm4sICRrZXkpO1xufVxuXG4vLyBUb1xuLy8gLS1cbi8vIFJldHVybiB0aGUgJ3RvJyBkaXJlY3Rpb24gb2YgYSBmbG93XG4vLyAtIFskZmxvd10gIDogbHRyIHwgcnRsXG5AZnVuY3Rpb24gdG8oXG4gICRmbG93OiBtYXAtZ2V0KCRzdXN5LWRlZmF1bHRzLCBmbG93KVxuKSB7XG4gIEByZXR1cm4gZ2V0LWRpcmVjdGlvbigkZmxvdywgdG8pO1xufVxuXG4vLyBGcm9tXG4vLyAtLS0tXG4vLyBSZXR1cm4gdGhlICdmcm9tJyBkaXJlY3Rpb24gb2YgYSBmbG93XG4vLyAtIFskZmxvd10gIDogbHRyIHwgcnRsXG5AZnVuY3Rpb24gZnJvbShcbiAgJGZsb3c6IG1hcC1nZXQoJHN1c3ktZGVmYXVsdHMsIGZsb3cpXG4pIHtcbiAgQHJldHVybiBnZXQtZGlyZWN0aW9uKCRmbG93LCBmcm9tKTtcbn1cbiIsIi8vIEdyaWQgQmFja2dyb3VuZCBBUElcbi8vID09PT09PT09PT09PT09PT09PT1cbi8vIC0gU3ViLXBpeGVsIHJvdW5kaW5nIGNhbiBsZWFkIHRvIHNldmVyYWwgcGl4ZWxzIHZhcmlhdGlvbiBiZXR3ZWVuIGJyb3dzZXJzLlxuXG4vLyBHcmlkIEJhY2tncm91bmQgT3V0cHV0XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAtICRpbWFnZTogYmFja2dyb3VuZC1pbWFnZVxuLy8gLSAkc2l6ZTogYmFja2dyb3VuZC1zaXplXG4vLyAtICRjbGlwOiBiYWNrZ3JvdW5kLWNsaXBcbi8vIC0gWyRmbG93XTogbHRyIHwgcnRsXG5AbWl4aW4gYmFja2dyb3VuZC1ncmlkLW91dHB1dCAoXG4gICRpbWFnZSxcbiAgJHNpemU6IG51bGwsXG4gICRjbGlwOiBudWxsLFxuICAkZmxvdzogbWFwLWdldCgkc3VzeS1kZWZhdWx0cywgZmxvdylcbikge1xuICAkb3V0cHV0OiAoXG4gICAgYmFja2dyb3VuZC1pbWFnZTogJGltYWdlLFxuICAgIGJhY2tncm91bmQtc2l6ZTogJHNpemUsXG4gICAgYmFja2dyb3VuZC1vcmlnaW46ICRjbGlwLFxuICAgIGJhY2tncm91bmQtY2xpcDogJGNsaXAsXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogZnJvbSgkZmxvdykgdG9wLFxuICApO1xuXG4gIEBpbmNsdWRlIG91dHB1dCgkb3V0cHV0KTtcbn1cbiIsIi8vIFNoYXJlZCBDb250YWluZXIgQVBJXG4vLyA9PT09PT09PT09PT09PT09PT09PVxuXG4vLyBDb250YWluZXIgT3V0cHV0XG4vLyAtLS0tLS0tLS0tLS0tLS0tXG4vLyAtIFskd2lkdGhdICAgICAgICAgOiA8bGVuZ3RoPlxuLy8gLSBbJGp1c3RpZnldICAgICAgIDogbGVmdCB8IGNlbnRlciB8IHJpZ2h0XG4vLyAtIFskbWF0aF0gICAgICAgICAgOiBmbHVpZCB8IHN0YXRpY1xuQG1peGluIGNvbnRhaW5lci1vdXRwdXQoXG4gICR3aWR0aCxcbiAgJGp1c3RpZnk6IGF1dG8gYXV0byxcbiAgJHByb3BlcnR5OiBtYXgtd2lkdGhcbikge1xuICAkb3V0cHV0OiAoXG4gICAgI3skcHJvcGVydHl9OiAkd2lkdGggb3IgMTAwJSxcbiAgICBtYXJnaW4tbGVmdDogbnRoKCRqdXN0aWZ5LCAxKSxcbiAgICBtYXJnaW4tcmlnaHQ6IG50aCgkanVzdGlmeSwgMiksXG4gICk7XG5cbiAgQGluY2x1ZGUgb3V0cHV0KCRvdXRwdXQpO1xufVxuIiwiLy8gTWFyZ2lucyBBUElcbi8vID09PT09PT09PT09XG5cbi8vIE1hcmdpbiBPdXRwdXRcbi8vIC0tLS0tLS0tLS0tLS1cbi8vIC0gJGJlZm9yZSAgOiA8bGVuZ3RoPlxuLy8gLSAkYWZ0ZXIgICA6IDxsZW5ndGg+XG4vLyAtIFskZmxvd10gIDogbHRyIHwgcnRsXG5AbWl4aW4gbWFyZ2luLW91dHB1dChcbiAgJGJlZm9yZSxcbiAgJGFmdGVyLFxuICAkZmxvdzogbWFwLWdldCgkc3VzeS1kZWZhdWx0cywgZmxvdylcbikge1xuICAkdG86IHRvKCRmbG93KTtcbiAgJGZyb206IGZyb20oJGZsb3cpO1xuXG4gICRvdXRwdXQ6IChcbiAgICBtYXJnaW4tI3skZnJvbX06ICRiZWZvcmUsXG4gICAgbWFyZ2luLSN7JHRvfTogJGFmdGVyLFxuICApO1xuXG4gIEBpbmNsdWRlIG91dHB1dCgkb3V0cHV0KTtcbn1cbiIsIi8vIFBhZGRpbmcgQVBJXG4vLyA9PT09PT09PT09PVxuXG4vLyBQYWRkaW5nIE91dHB1dFxuLy8gLS0tLS0tLS0tLS0tLS1cbi8vIC0gJGJlZm9yZSAgOiA8bGVuZ3RoPlxuLy8gLSAkYWZ0ZXIgICA6IDxsZW5ndGg+XG4vLyAtIFskZmxvd10gIDogbHRyIHwgcnRsXG5AbWl4aW4gcGFkZGluZy1vdXRwdXQoXG4gICRiZWZvcmUsXG4gICRhZnRlcixcbiAgJGZsb3c6IG1hcC1nZXQoJHN1c3ktZGVmYXVsdHMsIGZsb3cpXG4pIHtcbiAgJHRvOiB0bygkZmxvdyk7XG4gICRmcm9tOiBmcm9tKCRmbG93KTtcblxuICAkb3V0cHV0OiAoXG4gICAgcGFkZGluZy0jeyRmcm9tfTogJGJlZm9yZSxcbiAgICBwYWRkaW5nLSN7JHRvfTogJGFmdGVyLFxuICApO1xuXG4gIEBpbmNsdWRlIG91dHB1dCgkb3V0cHV0KTtcbn1cbiIsIi8vIEZsb2F0IENvbnRhaW5lciBBUElcbi8vID09PT09PT09PT09PT09PT09PT1cblxuLy8gRmxvYXQgQ29udGFpbmVyXG4vLyAtLS0tLS0tLS0tLS0tLS1cbi8vIC0gWyR3aWR0aF0gICAgICAgICA6IDxsZW5ndGg+XG4vLyAtIFskanVzdGlmeV0gICAgICAgOiBsZWZ0IHwgY2VudGVyIHwgcmlnaHRcbi8vIC0gWyRtYXRoXSAgIDogZmx1aWQgfCBzdGF0aWNcbkBtaXhpbiBmbG9hdC1jb250YWluZXIoXG4gICR3aWR0aCxcbiAgJGp1c3RpZnk6IGF1dG8gYXV0byxcbiAgJHByb3BlcnR5OiBtYXgtd2lkdGhcbikge1xuICBAaW5jbHVkZSBzdXN5LWNsZWFyZml4O1xuICBAaW5jbHVkZSBjb250YWluZXItb3V0cHV0KCR3aWR0aCwgJGp1c3RpZnksICRwcm9wZXJ0eSk7XG59XG4iLCIvLyBGbG9hdCBTcGFuIEFQSVxuLy8gPT09PT09PT09PT09PT1cblxuLy8gRmxvYXQgU3BhbiBPdXRwdXRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tXG4vLyAtICR3aWR0aCAgICAgICAgICAgICA6IDxsZW5ndGg+XG4vLyAtIFskZmxvYXRdICAgICAgICAgICA6IGZyb20gfCB0b1xuLy8gLSBbJG1hcmdpbi1iZWZvcmVdICAgOiA8bGVuZ3RoPlxuLy8gLSBbJG1hcmdpbi1hZnRlcl0gICAgOiA8bGVuZ3RoPlxuLy8gLSBbJHBhZGRpbmctYmVmb3JlXSAgOiA8bGVuZ3RoPlxuLy8gLSBbJHBhZGRpbmctYWZ0ZXJdICAgOiA8bGVuZ3RoPlxuLy8gLSBbJGZsb3ddICAgICAgICAgICAgOiBsdHIgfCBydGxcbkBtaXhpbiBmbG9hdC1zcGFuLW91dHB1dChcbiAgJHdpZHRoLFxuICAkZmxvYXQgICAgICAgICAgICA6IGZyb20sXG4gICRtYXJnaW4tYmVmb3JlICAgIDogbnVsbCxcbiAgJG1hcmdpbi1hZnRlciAgICAgOiBudWxsLFxuICAkcGFkZGluZy1iZWZvcmUgICA6IG51bGwsXG4gICRwYWRkaW5nLWFmdGVyICAgIDogbnVsbCxcbiAgJGZsb3cgICAgICAgICAgICAgOiBtYXAtZ2V0KCRzdXN5LWRlZmF1bHRzLCBmbG93KVxuKSB7XG4gICR0byAgICAgOiB0bygkZmxvdyk7XG4gICRmcm9tICAgOiBmcm9tKCRmbG93KTtcblxuICAkb3V0cHV0OiAoXG4gICAgd2lkdGg6ICR3aWR0aCxcbiAgICBmbG9hdDogaWYoJGZsb2F0ID09IHRvLCAkdG8sIG51bGwpIG9yIGlmKCRmbG9hdCA9PSBmcm9tLCAkZnJvbSwgbnVsbCksXG4gICAgbWFyZ2luLSN7JGZyb219OiAkbWFyZ2luLWJlZm9yZSxcbiAgICBtYXJnaW4tI3skdG99OiAkbWFyZ2luLWFmdGVyLFxuICAgIHBhZGRpbmctI3skZnJvbX06ICRwYWRkaW5nLWJlZm9yZSxcbiAgICBwYWRkaW5nLSN7JHRvfTogJHBhZGRpbmctYWZ0ZXIsXG4gICk7XG5cbiAgQGluY2x1ZGUgb3V0cHV0KCRvdXRwdXQpO1xufVxuIiwiLy8gRmxvYXQgRW5kcyBBUElcbi8vID09PT09PT09PT09PT09XG5cbi8vIFN1c3kgRW5kIERlZmF1bHRzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLVxuLy8gLSBQUklWQVRFXG5AaW5jbHVkZSBzdXN5LWRlZmF1bHRzKChcbiAgbGFzdC1mbG93OiB0byxcbikpO1xuXG4vLyBGbG9hdCBMYXN0XG4vLyAtLS0tLS0tLS0tXG4vLyAtIFskZmxvd10gIDogbHRyIHwgcnRsXG5AbWl4aW4gZmxvYXQtbGFzdChcbiAgJGZsb3c6IG1hcC1nZXQoJHN1c3ktZGVmYXVsdHMsIGZsb3cpLFxuICAkbGFzdC1mbG93OiBtYXAtZ2V0KCRzdXN5LWRlZmF1bHRzLCBsYXN0LWZsb3cpLFxuICAkbWFyZ2luOiAwXG4pIHtcbiAgJHRvOiB0bygkZmxvdyk7XG5cbiAgJG91dHB1dDogKFxuICAgIGZsb2F0OiBpZigkbGFzdC1mbG93ID09IHRvLCAkdG8sIG51bGwpLFxuICAgIG1hcmdpbi0jeyR0b306ICRtYXJnaW4sXG4gICk7XG5cbiAgQGluY2x1ZGUgb3V0cHV0KCRvdXRwdXQpO1xufVxuXG4vLyBGbG9hdCBGaXJzdFxuLy8gLS0tLS0tLS0tLS1cbi8vIC0gWyRmbG93XSAgOiBsdHIgfCBydGxcbkBtaXhpbiBmbG9hdC1maXJzdChcbiAgJGZsb3c6IG1hcC1nZXQoJHN1c3ktZGVmYXVsdHMsIGZsb3cpXG4pIHtcbiAgJG91dHB1dDogKFxuICAgIG1hcmdpbi0je2Zyb20oJGZsb3cpfTogMCxcbiAgKTtcblxuICBAaW5jbHVkZSBvdXRwdXQoJG91dHB1dCk7XG59XG4iLCIvLyBGbG9hdCBJc29sYXRpb24gQVBJXG4vLyA9PT09PT09PT09PT09PT09PT09XG5cbi8vIElzb2xhdGUgT3V0cHV0XG4vLyAtLS0tLS0tLS0tLS0tLVxuLy8gLSAkcHVzaCAgICA6IDxsZW5ndGg+XG4vLyAtIFskZmxvd10gIDogbHRyIHwgcnRsXG5AbWl4aW4gaXNvbGF0ZS1vdXRwdXQoXG4gICRwdXNoLFxuICAkZmxvdzogbWFwLWdldCgkc3VzeS1kZWZhdWx0cywgZmxvdylcbikge1xuICAkdG86IHRvKCRmbG93KTtcbiAgJGZyb206IGZyb20oJGZsb3cpO1xuXG4gICRvdXRwdXQ6IChcbiAgICBmbG9hdDogJGZyb20sXG4gICAgbWFyZ2luLSN7JGZyb219OiAkcHVzaCxcbiAgICBtYXJnaW4tI3skdG99OiAtMTAwJSxcbiAgKTtcblxuICBAaW5jbHVkZSBvdXRwdXQoJG91dHB1dCk7XG59XG4iLCIvLyBTdXN5IFNldHRpbmdzXG4vLyA9PT09PT09PT09PT09XG5cbi8vIFN1c3kgTGFuZ3VhZ2UgRGVmYXVsdHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIC0gUFJJVkFURVxuQGluY2x1ZGUgc3VzeS1kZWZhdWx0cygoXG4gIGNvbnRhaW5lcjogYXV0byxcbiAgbWF0aDogZmx1aWQsXG4gIG91dHB1dDogZmxvYXQsXG4gIGNvbnRhaW5lci1wb3NpdGlvbjogY2VudGVyLFxuICBndXR0ZXItcG9zaXRpb246IGFmdGVyLFxuICBnbG9iYWwtYm94LXNpemluZzogY29udGVudC1ib3gsXG4gIGRlYnVnOiAoXG4gICAgaW1hZ2U6IGhpZGUsXG4gICAgY29sb3I6IHJnYmEoIzY2ZiwgLjI1KSxcbiAgICBvdXRwdXQ6IGJhY2tncm91bmQsXG4gICAgdG9nZ2xlOiB0b3AgcmlnaHQsXG4gICksXG4pKTtcblxuXG4vLyBWYWxpZCBLZXl3b3JkIFZhbHVlc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIC0gUFJJVkFURTogRE9OVCdUIFRPVUNIXG4kc3VzeS1rZXl3b3JkczogKFxuICBjb250YWluZXI6IGF1dG8sXG4gIG1hdGg6IHN0YXRpYyBmbHVpZCxcbiAgb3V0cHV0OiBpc29sYXRlIGZsb2F0LFxuICBjb250YWluZXItcG9zaXRpb246IGxlZnQgY2VudGVyIHJpZ2h0LFxuICBmbG93OiBsdHIgcnRsLFxuICBndXR0ZXItcG9zaXRpb246IGJlZm9yZSBhZnRlciBzcGxpdCBpbnNpZGUgaW5zaWRlLXN0YXRpYyxcbiAgYm94LXNpemluZzogYm9yZGVyLWJveCBjb250ZW50LWJveCxcbiAgc3BhbjogZnVsbCxcbiAgZWRnZTogZmlyc3QgYWxwaGEgbGFzdCBvbWVnYSBmdWxsLFxuICBzcHJlYWQ6IG5hcnJvdyB3aWRlIHdpZGVyLFxuICBndXR0ZXItb3ZlcnJpZGU6IG5vLWd1dHRlcnMgbm8tZ3V0dGVyLFxuICByb2xlOiBuZXN0LFxuICBjbGVhcjogYnJlYWsgbm9icmVhayxcbiAgZGVidWcgaW1hZ2U6IHNob3cgaGlkZSBzaG93LWNvbHVtbnMgc2hvdy1iYXNlbGluZSxcbiAgZGVidWcgb3V0cHV0OiBiYWNrZ3JvdW5kIG92ZXJsYXksXG4pO1xuXG5cbi8vIFBhcnNlIFN1c3kgS2V5d29yZHMgYW5kIE1hcHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBmdW5jdGlvbiBwYXJzZS1zZXR0aW5ncyhcbiAgJHNob3J0OiAkc3VzeVxuKSB7XG4gICRfcmV0dXJuOiAoKTtcblxuICBAaWYgdHlwZS1vZigkc2hvcnQpID09IG1hcCB7XG4gICAgJF9yZXR1cm46ICRzaG9ydDtcbiAgfSBAZWxzZSB7XG4gICAgQGVhY2ggJGl0ZW0gaW4gJHNob3J0IHtcbiAgICAgIC8vIHN0cmluZ3NcbiAgICAgIEBpZiB0eXBlLW9mKCRpdGVtKSA9PSBzdHJpbmcge1xuICAgICAgICBAZWFjaCAka2V5LCAkdmFsdWUgaW4gJHN1c3kta2V5d29yZHMge1xuICAgICAgICAgIEBpZiBpbmRleCgkdmFsdWUsICRpdGVtKSB7XG4gICAgICAgICAgICAkX2tleS12YWx1ZTogYXBwZW5kKCRrZXksICRpdGVtKTtcbiAgICAgICAgICAgICRfcmV0dXJuOiBfc3VzeS1kZWVwLXNldCgkX3JldHVybiwgJF9rZXktdmFsdWUuLi4pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgLy8gbWFwc1xuICAgICAgfSBAZWxzZSBpZiB0eXBlLW9mKCRpdGVtKSA9PSBtYXAge1xuICAgICAgICAkX3JldHVybjogbWFwLW1lcmdlKCRfcmV0dXJuLCAkaXRlbSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkX3JldHVybjtcbn1cblxuXG4vLyBQYXJzZSBDb2x1bW5zICYgR3V0dGVyc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBmdW5jdGlvbiBwYXJzZS1sYXlvdXQoXG4gICRzaG9ydFxuKSB7XG4gICRfcmV0dXJuOiAoKTtcbiAgJF9jb2x1bW5zOiAoKTtcbiAgJF9ndXR0ZXJzOiBudWxsO1xuXG4gIEBpZiBub3QodW5pdGxlc3MobnRoKG50aCgkc2hvcnQsIDEpLCAxKSkpIHtcbiAgICAkX2d1dHRlcnM6IG50aCgkc2hvcnQsIDEpO1xuICB9IEBlbHNlIHtcbiAgICAkX2NvbHVtbnM6IChjb2x1bW5zOiBudGgoJHNob3J0LCAxKSk7XG4gICAgJF9ndXR0ZXJzOiBpZihsZW5ndGgoJHNob3J0KSA+IDEsIG50aCgkc2hvcnQsIDIpLCAkX2d1dHRlcnMpO1xuICB9XG5cbiAgQGlmIHR5cGUtb2YoJF9ndXR0ZXJzKSA9PSBsaXN0IGFuZCBsZW5ndGgoJF9ndXR0ZXJzKSA+IDAge1xuICAgICRfZ3V0dGVyczogKFxuICAgICAgZ3V0dGVyczogbnRoKCRfZ3V0dGVycywgMikgLyBudGgoJF9ndXR0ZXJzLCAxKSxcbiAgICAgIGNvbHVtbi13aWR0aDogbnRoKCRfZ3V0dGVycywgMSksXG4gICAgKTtcbiAgfSBAZWxzZSB7XG4gICAgJF9ndXR0ZXJzOiBpZigkX2d1dHRlcnMsIChndXR0ZXJzOiAkX2d1dHRlcnMpLCAoKSk7XG4gIH1cblxuICAkX3JldHVybjogbWFwLW1lcmdlKCRfcmV0dXJuLCAkX2NvbHVtbnMpO1xuICAkX3JldHVybjogbWFwLW1lcmdlKCRfcmV0dXJuLCAkX2d1dHRlcnMpO1xuXG4gIEByZXR1cm4gJF9yZXR1cm47XG59XG5cblxuLy8gUGFyc2UgR3JpZC9Db250ZXh0XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS1cbkBmdW5jdGlvbiBwYXJzZS1ncmlkKFxuICAkc2hvcnQ6ICRzdXN5XG4pIHtcbiAgJF9yZXR1cm46IHBhcnNlLXNldHRpbmdzKCRzaG9ydCk7XG4gICRfbGF5b3V0OiAoKTtcblxuICBAaWYgdHlwZS1vZigkc2hvcnQpID09IG1hcCB7XG4gICAgJF9yZXR1cm46ICRzaG9ydDtcbiAgfSBAZWxzZSB7XG4gICAgQGVhY2ggJGl0ZW0gaW4gJHNob3J0IHtcbiAgICAgIC8vIG51bWJlciBvciBsaXN0XG4gICAgICBAaWYgdHlwZS1vZigkaXRlbSkgPT0gbnVtYmVyIG9yIHR5cGUtb2YoJGl0ZW0pID09IGxpc3Qge1xuICAgICAgICBAaWYgdHlwZS1vZigkaXRlbSkgPT0gbGlzdCBvciB1bml0bGVzcygkaXRlbSkge1xuICAgICAgICAgICRfbGF5b3V0OiBhcHBlbmQoJF9sYXlvdXQsICRpdGVtKTtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgJF9yZXR1cm46IG1hcC1tZXJnZSgkX3JldHVybiwgKGNvbnRhaW5lcjogJGl0ZW0pKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICRfbGF5b3V0OiBpZihsZW5ndGgoJF9sYXlvdXQpID4gMCwgcGFyc2UtbGF5b3V0KCRfbGF5b3V0KSwgJF9sYXlvdXQpO1xuICB9XG5cbiAgQHJldHVybiBtYXAtbWVyZ2UoJF9yZXR1cm4sICRfbGF5b3V0KTtcbn1cblxuXG4vLyBQYXJzZSBTcGFuXG4vLyAtLS0tLS0tLS0tXG5AZnVuY3Rpb24gcGFyc2Utc3BhbihcbiAgJHNob3J0LFxuICAka2V5OiBzcGFuXG4pIHtcbiAgJF9yZXR1cm46ICgpO1xuXG4gIEBpZiB0eXBlLW9mKCRzaG9ydCkgPT0gbWFwIHtcbiAgICAkX3JldHVybjogJHNob3J0O1xuICB9IEBlbHNlIHtcbiAgICAkX2F0OiBpbmRleCgkc2hvcnQsIGF0KTtcblxuICAgIEBpZiAkX2F0IHtcbiAgICAgICRfbG9jaTogJF9hdCArIDE7XG4gICAgICAkX2xvY2F0aW9uOiBudGgoJHNob3J0LCAkX2xvY2kpO1xuICAgICAgJF9yZXR1cm46IG1hcC1tZXJnZSgkX3JldHVybiwgKGxvY2F0aW9uOiAkX2xvY2F0aW9uKSk7XG4gICAgICAkc2hvcnQ6IHNldC1udGgoJHNob3J0LCAkX2F0LCBudWxsKTtcbiAgICAgICRzaG9ydDogc2V0LW50aCgkc2hvcnQsICRfbG9jaSwgbnVsbCk7XG4gICAgfVxuXG4gICAgJF9pOiAxO1xuICAgICRfc3BhbjogKCk7XG5cbiAgICBAd2hpbGUgJF9pIDw9IGxlbmd0aCgkc2hvcnQpIHtcbiAgICAgICRfdGhpczogbnRoKCRzaG9ydCwgJF9pKTtcblxuICAgICAgQGlmIHR5cGUtb2YoJF90aGlzKSA9PSBudW1iZXIge1xuICAgICAgICAkX3NwYW46IGFwcGVuZCgkX3NwYW4sICRfdGhpcyk7XG4gICAgICAgICRzaG9ydDogc2V0LW50aCgkc2hvcnQsICRfaSwgbnVsbCk7XG4gICAgICB9IEBlbHNlIGlmICRfdGhpcyA9PSBvZiB7XG4gICAgICAgICRzaG9ydDogc2V0LW50aCgkc2hvcnQsICRfaSwgbnVsbCk7XG4gICAgICAgICRfaTogbGVuZ3RoKCRzaG9ydCkgKyAxO1xuICAgICAgfVxuXG4gICAgICAkX2k6ICRfaSArIDE7XG4gICAgfVxuXG4gICAgQGlmIGxlbmd0aCgkX3NwYW4pID4gMCB7XG4gICAgICAkX3NwYW46IGlmKGxlbmd0aCgkX3NwYW4pID09IDEsIG50aCgkX3NwYW4sIDEpLCAkX3NwYW4pO1xuICAgICAgJF9yZXR1cm46IG1hcC1tZXJnZSgkX3JldHVybiwgKCRrZXk6ICRfc3BhbikpO1xuICAgIH1cblxuICAgICRfcmV0dXJuOiBtYXAtbWVyZ2UoJF9yZXR1cm4sIHBhcnNlLWdyaWQoJHNob3J0KSk7XG4gIH1cblxuICBAcmV0dXJuICRfcmV0dXJuO1xufVxuXG5cbi8vIFBhcnNlIEd1dHRlcnNcbi8vIC0tLS0tLS0tLS0tLS1cbkBmdW5jdGlvbiBwYXJzZS1ndXR0ZXJzKFxuICAkc2hvcnQ6ICRzdXN5XG4pIHtcbiAgJF9ndXR0ZXJzOiBwYXJzZS1zcGFuKCRzaG9ydCwgZ3V0dGVyLW92ZXJyaWRlKTtcbiAgJF9zcGFuOiBzdXN5LWdldChndXR0ZXItb3ZlcnJpZGUsICRfZ3V0dGVycyk7XG5cbiAgQGlmICRfc3BhbiBhbmQgbm90KG1hcC1nZXQoJF9ndXR0ZXJzLCBjb2x1bW5zKSkge1xuICAgICRfY29udGV4dDogKCk7XG4gICAgJF9uZXc6ICgpO1xuXG4gICAgQGVhY2ggJGl0ZW0gaW4gJF9zcGFuIHtcbiAgICAgIEBpZiB0eXBlLW9mKCRpdGVtKSA9PSBudW1iZXIgYW5kIHVuaXRsZXNzKCRpdGVtKSB7XG4gICAgICAgICRfY29udGV4dDogYXBwZW5kKCRfY29udGV4dCwgJGl0ZW0pO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICRfbmV3OiBhcHBlbmQoJF9uZXcsICRpdGVtKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAkX2NvbnRleHQ6IHBhcnNlLWdyaWQoJF9jb250ZXh0KTtcbiAgICAkX25ldzogaWYobGVuZ3RoKCRfbmV3KSA9PSAwLCBudWxsLCAkX25ldyk7XG4gICAgJF9uZXc6IGlmKGxlbmd0aCgkX25ldykgPT0gMSwgbnRoKCRfbmV3LCAxKSwgJF9uZXcpO1xuICAgICRfbmV3OiAoZ3V0dGVyLW92ZXJyaWRlOiBpZigkX25ldyAhPSAkX3NwYW4sICRfbmV3LCAkX3NwYW4pKTtcblxuICAgICRfZ3V0dGVyczogbWFwLW1lcmdlKCRfZ3V0dGVycywgJF9uZXcpO1xuICAgICRfZ3V0dGVyczogbWFwLW1lcmdlKCRfZ3V0dGVycywgJF9jb250ZXh0KTtcbiAgfVxuXG4gIEByZXR1cm4gJF9ndXR0ZXJzO1xufVxuIiwiLy8gVmFsaWRhdGlvblxuLy8gPT09PT09PT09PVxuXG5cbi8vIFZhbGlkYXRlIENvbHVtbiBNYXRoXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuQGZ1bmN0aW9uIHZhbGlkLWNvbHVtbi1tYXRoKFxuICAkbWF0aCxcbiAgJGNvbHVtbi13aWR0aFxuKSB7XG4gIEBpZiAkbWF0aCA9PSBzdGF0aWMgYW5kIG5vdCgkY29sdW1uLXdpZHRoKSB7XG4gICAgQGVycm9yICdTdGF0aWMgbWF0aCByZXF1aXJlcyBhIHZhbGlkIGNvbHVtbi13aWR0aCBzZXR0aW5nLic7XG4gIH1cblxuICBAcmV0dXJuICRjb2x1bW4td2lkdGg7XG59XG4iLCIvLyBHcmlkIFN5bnRheFxuLy8gPT09PT09PT09PT1cblxuXG4vLyBMYXlvdXRcbi8vIC0tLS0tLVxuLy8gU2V0IGEgbmV3IGxheW91dCB1c2luZyBhIHNob3J0aGFuZFxuLy8gLSAkbGF5b3V0OiA8c2V0dGluZ3M+XG4vLyAtICRjbGVhbjogYm9vbGVhblxuQG1peGluIGxheW91dChcbiAgJGxheW91dCxcbiAgJGNsZWFuOiBmYWxzZVxuKSB7XG4gICRpbnNwZWN0ICA6ICRsYXlvdXQ7XG4gICRzdXN5ICAgICA6IF9nZXQtbGF5b3V0KCRsYXlvdXQsICRjbGVhbikgIWdsb2JhbDtcblxuICBAaW5jbHVkZSBzdXN5LWluc3BlY3QobGF5b3V0LCAkaW5zcGVjdCk7XG59XG5cblxuLy8gVXNlIEdyaWRcbi8vIC0tLS0tLS0tXG4vLyBVc2UgYW4gYXJiaXRyYXJ5IGxheW91dCBmb3IgYSBzZWN0aW9uIG9mIGNvZGVcbi8vIC0gJGxheW91dDogPHNldHRpbmdzPlxuLy8gLSAkY2xlYW46IGJvb2xlYW5cbkBtaXhpbiB3aXRoLWxheW91dChcbiAgJGxheW91dCxcbiAgJGNsZWFuOiBmYWxzZVxuKSB7XG4gICRpbnNwZWN0ICA6ICRsYXlvdXQ7XG4gICRvbGQgICAgICA6ICRzdXN5O1xuICAkc3VzeSAgICAgOiBfZ2V0LWxheW91dCgkbGF5b3V0LCAkY2xlYW4pICFnbG9iYWw7XG5cbiAgQGluY2x1ZGUgc3VzeS1pbnNwZWN0KHdpdGgtbGF5b3V0LCAkaW5zcGVjdCk7XG5cbiAgQGNvbnRlbnQ7XG5cbiAgJHN1c3k6ICRvbGQgIWdsb2JhbDtcbn1cblxuXG4vLyBMYXlvdXRcbi8vIC0tLS0tLVxuLy8gUmV0dXJuIGEgcGFyc2VkIGxheW91dCBtYXAgYmFzZWQgb24gc2hvcnRoYW5kIHN5bnRheFxuLy8gLSAkbGF5b3V0OiA8c2V0dGluZ3M+XG5AZnVuY3Rpb24gbGF5b3V0KFxuICAkbGF5b3V0OiAkc3VzeVxuKSB7XG4gIEByZXR1cm4gcGFyc2UtZ3JpZCgkbGF5b3V0KTtcbn1cblxuXG4vLyBHZXQgTGF5b3V0XG4vLyAtLS0tLS0tLS0tXG4vLyBSZXR1cm4gYSBuZXcgbGF5b3V0IGJhc2VkIG9uIGN1cnJlbnQgYW5kIGdpdmVuIHNldHRpbmdzXG4vLyAtICRsYXlvdXQ6IDxzZXR0aW5ncz5cbi8vIC0gJGNsZWFuOiBib29sZWFuXG5AZnVuY3Rpb24gX2dldC1sYXlvdXQoXG4gICRsYXlvdXQsXG4gICRjbGVhbjogZmFsc2Vcbikge1xuICAkbGF5b3V0OiBsYXlvdXQoJGxheW91dCk7XG4gIEByZXR1cm4gaWYoJGNsZWFuLCAkbGF5b3V0LCBfc3VzeS1kZWVwLW1lcmdlKCRzdXN5LCAkbGF5b3V0KSk7XG59XG4iLCIvLyBTdXN5IEJveCBTaXppbmdcbi8vID09PT09PT09PT09PT09PT09XG5cbi8vIEdsb2JhbCBCb3ggU2l6aW5nXG4vLyAtLS0tLS0tLS0tLS0tLS0tLVxuLy8gU2V0IGEgYm94IG1vZGVsIGdsb2JhbGx5IG9uIGFsbCBlbGVtZW50cy5cbi8vIC0gWyRib3hdOiBib3JkZXItYm94IHwgY29udGVudC1ib3hcbi8vIC0gWyRpbmhlcml0XTogdHJ1ZSB8IGZhbHNlXG5AbWl4aW4gZ2xvYmFsLWJveC1zaXppbmcoXG4gICRib3g6IHN1c3ktZ2V0KGdsb2JhbC1ib3gtc2l6aW5nKSxcbiAgJGluaGVyaXQ6IGZhbHNlXG4pIHtcbiAgJGluc3BlY3Q6ICRib3g7XG5cbiAgQGlmICRpbmhlcml0IHtcbiAgICBAYXQtcm9vdCB7XG4gICAgICAgaHRtbCB7IEBpbmNsdWRlIG91dHB1dCgoYm94LXNpemluZzogJGJveCkpOyB9XG4gICAgICAgKiwgKjpiZWZvcmUsICo6YWZ0ZXIgeyBib3gtc2l6aW5nOiBpbmhlcml0OyB9XG4gICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgKiwgKjpiZWZvcmUsICo6YWZ0ZXIgeyBAaW5jbHVkZSBvdXRwdXQoKGJveC1zaXppbmc6ICRib3gpKTsgfVxuICB9XG5cbiAgQGluY2x1ZGUgc3VzeS1pbnNwZWN0KGdsb2JhbC1ib3gtc2l6aW5nLCAkaW5zcGVjdCk7XG4gIEBpbmNsdWRlIHVwZGF0ZS1ib3gtbW9kZWwoJGJveCk7XG59XG5cbi8vIEJvcmRlciBCb3ggU2l6aW5nXG4vLyAtLS0tLS0tLS0tLS0tLS0tLVxuLy8gQSBsZWdhY3kgc2hvcnRjdXQuLi5cbi8vIC0gWyRpbmhlcml0XTogdHJ1ZSB8IGZhbHNlXG5AbWl4aW4gYm9yZGVyLWJveC1zaXppbmcoXG4gICRpbmhlcml0OiBmYWxzZVxuKSB7XG4gIEBpbmNsdWRlIGdsb2JhbC1ib3gtc2l6aW5nKGJvcmRlci1ib3gsICRpbmhlcml0KTtcbn1cblxuLy8gVXBkYXRlIEJveCBNb2RlbFxuLy8gLS0tLS0tLS0tLS0tLS0tLVxuLy8gUFJJVkFURTogVXBkYXRlcyBnbG9iYWwgYm94IG1vZGVsIHNldHRpbmdcbkBtaXhpbiB1cGRhdGUtYm94LW1vZGVsKFxuICAkYm94XG4pIHtcbiAgQGlmICRib3ggIT0gc3VzeS1nZXQoZ2xvYmFsLWJveC1zaXppbmcpIHtcbiAgQGluY2x1ZGUgc3VzeS1zZXQoZ2xvYmFsLWJveC1zaXppbmcsICRib3gpO1xuICB9XG59XG4iLCIvLyBDb250ZXh0IFN5bnRheFxuLy8gPT09PT09PT09PT09PT1cblxuLy8gTmVzdGVkIFtmdW5jdGlvbl1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tXG4vLyBSZXR1cm4gYSBzdWJzZXQgZ3JpZCBmb3IgbmVzdGVkIGNvbnRleHQuXG4vLyAtICRjb250ZXh0ICAgOiA8c3Bhbj5cbkBmdW5jdGlvbiBuZXN0ZWQoXG4gICRjb250ZXh0XG4pIHtcbiAgJGNvbnRleHQgICAgOiBwYXJzZS1zcGFuKCRjb250ZXh0KTtcbiAgJHNwYW4gICAgICAgOiBzdXN5LWdldChzcGFuLCAkY29udGV4dCk7XG4gICRsb2NhdGlvbiAgIDogZ2V0LWxvY2F0aW9uKCRjb250ZXh0KTtcbiAgJGNvbHVtbnMgICAgOiBzdXN5LWdldChjb2x1bW5zLCAkY29udGV4dCk7XG5cbiAgQHJldHVybiBzdXN5LXNsaWNlKCRzcGFuLCAkbG9jYXRpb24sICRjb2x1bW5zKTtcbn1cblxuLy8gTmVzdGVkIFttaXhpbl1cbi8vIC0tLS0tLS0tLS0tLS0tXG4vLyBVc2UgYSBzdWJzZXQgZ3JpZCBmb3IgYSBuZXN0ZWQgY29udGV4dFxuLy8gLSAkY29udGV4dCAgIDogPHNwYW4+XG4vLyAtIEBjb250ZW50ICAgOiA8Y29udGVudD5cbkBtaXhpbiBuZXN0ZWQoXG4gICRjb250ZXh0XG4pIHtcbiAgJGluc3BlY3QgIDogJGNvbnRleHQ7XG4gICRjb250ZXh0ICA6IHBhcnNlLXNwYW4oJGNvbnRleHQpO1xuICAkb2xkICAgICAgOiBzdXN5LWdldChjb2x1bW5zKTtcbiAgJHN1c3kgICAgIDogbWFwLW1lcmdlKCRzdXN5LCAoY29sdW1uczogbmVzdGVkKCRjb250ZXh0KSkpICFnbG9iYWw7XG5cbiAgQGluY2x1ZGUgc3VzeS1pbnNwZWN0KG5lc3RlZCwgJGluc3BlY3QpO1xuICBAY29udGVudDtcblxuICAkc3VzeSAgICAgOiBtYXAtbWVyZ2UoJHN1c3ksIChjb2x1bW5zOiAkb2xkKSkgIWdsb2JhbDtcbn1cbiIsIi8vIEJhY2tncm91bmQgR3JpZCBTeW50YXhcbi8vID09PT09PT09PT09PT09PT09PT09PT1cblxuJHN1c3ktb3ZlcmxheS1ncmlkLWhlYWQtZXhpc3RzOiBmYWxzZTtcblxuXG4vLyBTaG93IEdyaWQvc1xuLy8gLS0tLS0tLS0tLS1cbi8vIFNob3cgZ3JpZCBvbiBhbnkgZWxlbWVudCB1c2luZyBlaXRoZXIgYmFja2dyb3VuZCBvciBvdmVybGF5LlxuLy8gLSBbJGdyaWRdICA6IDxzZXR0aW5ncz5cbkBtaXhpbiBzaG93LWdyaWQoXG4gICRncmlkOiAkc3VzeVxuKSB7XG4gICRpbnNwZWN0OiAkZ3JpZDtcbiAgJF9vdXRwdXQ6IGRlYnVnLWdldChvdXRwdXQsICRncmlkKTtcblxuICBAaW5jbHVkZSBzdXN5LWluc3BlY3Qoc2hvdy1ncmlkLCAkaW5zcGVjdCk7XG4gIEBpZiAkX291dHB1dCA9PSBvdmVybGF5IGFuZCBzdXN5LWdldChkZWJ1ZyBpbWFnZSwgJGdyaWQpICE9IGhpZGUge1xuICAgIEBpbmNsdWRlIG92ZXJsYXktZ3JpZCgkZ3JpZCk7XG4gIH0gQGVsc2Uge1xuICAgIEBpbmNsdWRlIGJhY2tncm91bmQtZ3JpZCgkZ3JpZCk7XG4gIH1cbn1cblxuQG1peGluIHNob3ctZ3JpZHMoXG4gICRncmlkOiAkc3VzeVxuKSB7XG4gIEBpbmNsdWRlIHNob3ctZ3JpZCgkZ3JpZCk7XG59XG5cbi8vIEJhY2tncm91bmQgR3JpZFxuLy8gLS0tLS0tLS0tLS0tLS0tXG4vLyBTaG93IGEgZ3JpZCBiYWNrZ3JvdW5kIG9uIGFueSBlbGVtZW50LlxuLy8gLSBbJGdyaWRdICA6IDxzZXR0aW5ncz5cbkBtaXhpbiBiYWNrZ3JvdW5kLWdyaWQoXG4gICRncmlkOiAkc3VzeVxuKSB7XG4gICRpbnNwZWN0ICA6ICRncmlkO1xuICAkX291dHB1dCAgOiBnZXQtYmFja2dyb3VuZCgkZ3JpZCk7XG5cbiAgQGlmIGxlbmd0aCgkX291dHB1dCkgPiAwIHtcbiAgICAkX2Zsb3c6IHN1c3ktZ2V0KGZsb3csICRncmlkKTtcblxuICAgICRfaW1hZ2U6ICgpO1xuICAgIEBlYWNoICRuYW1lLCAkbGF5ZXIgaW4gbWFwLWdldCgkX291dHB1dCwgaW1hZ2UpIHtcbiAgICAgICRfZGlyZWN0aW9uOiBpZigkbmFtZSA9PSBiYXNlbGluZSwgdG8gYm90dG9tLCB0byB0bygkX2Zsb3cpKTtcbiAgICAgICRfaW1hZ2U6IGFwcGVuZCgkX2ltYWdlLCBsaW5lYXItZ3JhZGllbnQoJF9kaXJlY3Rpb24sICRsYXllciksIGNvbW1hKTtcbiAgICB9XG4gICAgJF9vdXRwdXQ6IG1hcC1tZXJnZSgkX291dHB1dCwgKGltYWdlOiAkX2ltYWdlKSk7XG5cbiAgICBAaW5jbHVkZSBiYWNrZ3JvdW5kLWdyaWQtb3V0cHV0KCRfb3V0cHV0Li4uKTtcbiAgICBAaW5jbHVkZSBzdXN5LWluc3BlY3QoYmFja2dyb3VuZC1ncmlkLCAkaW5zcGVjdCk7XG4gIH1cbn1cblxuXG4vLyBPdmVybGF5IEdyaWRcbi8vIC0tLS0tLS0tLS0tLVxuLy8gR2VuZXJhdGUgYW4gaWNvbiB0byB0cmlnZ2VyIGdyaWQtb3ZlcmxheXMgb24gYW55IGdpdmVuIGVsZW1lbnRzLlxuLy8gJGdyaWRzLi4uICA6IDxzZWxlY3Rvcj4gWzxzZXR0aW5ncz5dIFssIDxzZWxlY3Rvcj5dKlxuQG1peGluIG92ZXJsYXktZ3JpZCAoXG4gICRncmlkOiAkc3VzeVxuKSB7XG4gIEBpZiBub3QoJHN1c3ktb3ZlcmxheS1ncmlkLWhlYWQtZXhpc3RzKSB7XG4gICAgQGF0LXJvb3QgaGVhZCB7IEBpbmNsdWRlIG92ZXJsYXktaGVhZCgkZ3JpZCk7IH1cbiAgICBAYXQtcm9vdCBoZWFkOmJlZm9yZSB7IEBpbmNsdWRlIG92ZXJsYXktdHJpZ2dlcjsgfVxuICAgIEBhdC1yb290IGhlYWQ6aG92ZXIgeyBAaW5jbHVkZSBvdmVybGF5LXRyaWdnZXItaG92ZXI7IH1cbiAgICAkc3VzeS1vdmVybGF5LWdyaWQtaGVhZC1leGlzdHM6IHRydWUgIWdsb2JhbDtcbiAgfVxuXG4gIGhlYWQ6aG92ZXIgfiAmLFxuICBoZWFkOmhvdmVyIH4gYm9keSAmIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgJjpiZWZvcmUge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1vdmVybGF5LWJhc2U7XG4gICAgICBAaW5jbHVkZSBiYWNrZ3JvdW5kLWdyaWQoJGdyaWQpO1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIFtQcml2YXRlXSBPdmVybGF5IFRyaWdnZXJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBtaXhpbiBvdmVybGF5LXRyaWdnZXIge1xuICBjb250ZW50OiBcInx8fFwiO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogNXB4IDEwcHg7XG4gIGZvbnQ6IHtcbiAgICBmYW1pbHk6IHNhbnMtc2VyaWY7XG4gICAgc2l6ZTogMTZweDtcbiAgICB3ZWlnaHQ6IGJvbGQ7XG4gIH1cbn1cblxuXG4vLyBbUHJpdmF0ZV0gT3ZlcmxheSBUcmlnZ2VyIEhvdmVyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AbWl4aW4gb3ZlcmxheS10cmlnZ2VyLWhvdmVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSh3aGl0ZSwgLjUpO1xuICBjb2xvcjogcmVkO1xufVxuXG5cbi8vIFtQcml2YXRlXSBPdmVybGF5IEhlYWRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIDxoZWFkPiBzdHlsZXMgdG8gY3JlYXRlIGdyaWQgb3ZlcmxheSB0b2dnbGVcbkBtaXhpbiBvdmVybGF5LWhlYWQgKFxuICAkZ3JpZDogJHN1c3lcbikge1xuICAkX3RvZ2dsZTogZGVidWctZ2V0KHRvZ2dsZSwgJGdyaWQpO1xuICAkX2hvcno6IG51bGw7XG4gICRfdmVydDogbnVsbDtcblxuICBAZWFjaCAkc2lkZSBpbiAkX3RvZ2dsZSB7XG4gICAgJF9ob3J6OiBpZigkc2lkZSA9PSBsZWZ0IG9yICRzaWRlID09IHJpZ2h0LCAkc2lkZSwgJF9ob3J6KTtcbiAgICAkX3ZlcnQ6IGlmKCRzaWRlID09IHRvcCBvciAkc2lkZSA9PSBib3R0b20sICRzaWRlLCAkX3ZlcnQpO1xuICB9XG5cbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgI3skX2hvcnp9OiAxMHB4O1xuICAjeyRfdmVydH06IDEwcHg7XG4gIHotaW5kZXg6IDk5OTtcbiAgY29sb3I6ICMzMzM7XG4gIGJhY2tncm91bmQ6IHJnYmEod2hpdGUsIC4yNSk7XG59XG5cblxuLy8gW1ByaXZhdGVdIEdyaWQgT3ZlcmxheSBCYXNlXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEJhc2Ugc3R5bGVzIGZvciBnZW5lcmF0aW5nIGEgZ3JpZCBvdmVybGF5XG5AbWl4aW4gZ3JpZC1vdmVybGF5LWJhc2UoKSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBib3R0b206IDA7XG4gIHJpZ2h0OiAwO1xuICBjb250ZW50OiBcIiBcIjtcbiAgei1pbmRleDogOTk4O1xufVxuXG5cbi8vIEdldCBTeW1tZXRyaWNhbCBCYWNrZ3JvdW5kXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gLSAkZ3JpZDogPG1hcD5cbkBmdW5jdGlvbiBnZXQtYmFja2dyb3VuZC1zeW0oXG4gICRncmlkXG4pIHtcbiAgJGdyaWQgICAgICAgICAgIDogcGFyc2UtZ3JpZCgkZ3JpZCk7XG4gICRfZ3V0dGVycyAgICAgICA6IHN1c3ktZ2V0KGd1dHRlcnMsICRncmlkKTtcbiAgJF9jb2x1bW4td2lkdGggIDogc3VzeS1nZXQoY29sdW1uLXdpZHRoLCAkZ3JpZCk7XG4gICRfbWF0aCAgICAgICAgICA6IHN1c3ktZ2V0KG1hdGgsICRncmlkKTtcblxuICAkX2NvbG9yICAgICAgICAgOiBkZWJ1Zy1nZXQoY29sb3IpO1xuICAkX3RyYW5zICAgICAgICAgOiB0cmFuc3BhcmVudDtcbiAgJF9saWdodCAgICAgICAgIDogbGlnaHRlbigkX2NvbG9yLCAxNSUpO1xuXG4gICRfZW5kICAgICAgICAgICA6IDEgKyAkX2d1dHRlcnM7XG4gICRfYWZ0ZXIgICAgICAgICA6IHBlcmNlbnRhZ2UoMS8kX2VuZCk7XG4gICRfc3RvcHMgICAgICAgICA6ICgpO1xuICAkX3NpemUgICAgICAgICAgOiBzcGFuKDEgJGdyaWQgd2lkZSk7XG5cbiAgQGlmIGlzLWluc2lkZSgkZ3JpZCkge1xuICAgICRfc3RvcHM6ICRfY29sb3IsICRfbGlnaHQ7XG4gIH0gQGVsc2UgaWYgaXMtc3BsaXQoJGdyaWQpIHtcbiAgICAkX3NwbGl0OiAkX2d1dHRlcnMvMjtcbiAgICAkX2JlZm9yZTogcGVyY2VudGFnZSgkX3NwbGl0LyRfZW5kKTtcbiAgICAkX2FmdGVyOiBwZXJjZW50YWdlKCgxICsgJF9zcGxpdCkvJF9lbmQpO1xuICAgICRfc3RvcHM6ICRfdHJhbnMgJF9iZWZvcmUsICRfY29sb3IgJF9iZWZvcmUsICRfbGlnaHQgJF9hZnRlciwgJF90cmFucyAkX2FmdGVyO1xuICB9IEBlbHNlIHtcbiAgICAkX3N0b3BzOiAkX2NvbG9yLCAkX2xpZ2h0ICRfYWZ0ZXIsICRfdHJhbnMgJF9hZnRlcjtcbiAgfVxuXG4gIEBpZiAkX21hdGggPT0gc3RhdGljIHtcbiAgICAkX3NpemU6IHZhbGlkLWNvbHVtbi1tYXRoKCRfbWF0aCwgJF9jb2x1bW4td2lkdGgpICogJF9lbmQ7XG4gIH1cblxuICAkX291dHB1dDogKFxuICAgIGltYWdlOiAoY29sdW1uczogJF9zdG9wcyksXG4gICAgc2l6ZTogJF9zaXplLFxuICApO1xuXG4gIEByZXR1cm4gJF9vdXRwdXQ7XG59XG5cblxuLy8gR2V0IEFzeW1tZXRyaWNhbCBJbnNpZGVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAtICRncmlkOiA8c2V0dGluZ3M+XG5AZnVuY3Rpb24gZ2V0LWFzeW0taW5zaWRlKFxuICAkZ3JpZFxuKSB7XG4gICRncmlkICAgICA6IHBhcnNlLWdyaWQoJGdyaWQpO1xuICAkX2NvbHVtbnMgOiBzdXN5LWdldChjb2x1bW5zLCAkZ3JpZCk7XG5cbiAgJF9jb2xvciAgIDogZGVidWctZ2V0KGNvbG9yKTtcbiAgJF9saWdodCAgIDogbGlnaHRlbigkX2NvbG9yLCAxNSUpO1xuICAkX3N0b3BzICAgOiAoKTtcblxuICBAZm9yICRsb2NhdGlvbiBmcm9tIDEgdGhyb3VnaCBzdXN5LWNvdW50KCRfY29sdW1ucykge1xuICAgICR0aGlzLXN0b3A6ICgpO1xuXG4gICAgQGlmICRsb2NhdGlvbiA9PSAxIHtcbiAgICAgICR0aGlzLXN0b3A6IGFwcGVuZCgkdGhpcy1zdG9wLCAkX2NvbG9yLCBjb21tYSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkc3RhcnQ6IHBhcnNlLXNwYW4oMSBhdCAkbG9jYXRpb24gJGdyaWQpO1xuICAgICAgJHN0YXJ0OiBnZXQtaXNvbGF0aW9uKCRzdGFydCk7XG4gICAgICAkdGhpcy1zdG9wOiBhcHBlbmQoJHRoaXMtc3RvcCwgJF9jb2xvciAkc3RhcnQsIGNvbW1hKTtcbiAgICB9XG5cbiAgICBAaWYgJGxvY2F0aW9uID09IHN1c3ktY291bnQoJF9jb2x1bW5zKSB7XG4gICAgICAkdGhpcy1zdG9wOiBhcHBlbmQoJHRoaXMtc3RvcCwgJF9saWdodCwgY29tbWEpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJF9lbmQ6IHBhcnNlLXNwYW4oMSBhdCAoJGxvY2F0aW9uICsgMSkgJGdyaWQpO1xuICAgICAgJF9lbmQ6IGdldC1pc29sYXRpb24oJF9lbmQpO1xuICAgICAgJHRoaXMtc3RvcDogYXBwZW5kKCR0aGlzLXN0b3AsICRfbGlnaHQgJF9lbmQsIGNvbW1hKTtcbiAgICB9XG5cbiAgICAkX3N0b3BzOiBqb2luKCRfc3RvcHMsICR0aGlzLXN0b3AsIGNvbW1hKTtcbiAgfVxuXG4gIEByZXR1cm4gJF9zdG9wcztcbn1cblxuXG4vLyBHZXQgQXN5bW1ldHJpY2FsIFNwbGl0XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAtICRncmlkOiA8c2V0dGluZ3M+XG5AZnVuY3Rpb24gZ2V0LWFzeW0tc3BsaXQoXG4gICRncmlkXG4pIHtcbiAgJGdyaWQgICAgIDogcGFyc2UtZ3JpZCgkZ3JpZCk7XG4gICRfY29sdW1ucyA6IHN1c3ktZ2V0KGNvbHVtbnMsICRncmlkKTtcblxuICAkX2NvbG9yICAgOiBkZWJ1Zy1nZXQoY29sb3IpO1xuICAkX2xpZ2h0ICAgOiBsaWdodGVuKCRfY29sb3IsIDE1JSk7XG4gICRfc3RvcHMgICA6ICgpO1xuXG4gIEBmb3IgJGxvY2F0aW9uIGZyb20gMSB0aHJvdWdoIHN1c3ktY291bnQoJF9jb2x1bW5zKSB7XG4gICAgJHRoaXMtc3RvcDogKCk7XG5cbiAgICAkc3RhcnQ6IHBhcnNlLXNwYW4oMSBhdCAkbG9jYXRpb24gJGdyaWQpO1xuICAgICRzdGFydDogZ2V0LWlzb2xhdGlvbigkc3RhcnQpO1xuICAgICR0aGlzLXN0b3A6IGFwcGVuZCgkdGhpcy1zdG9wLCB0cmFuc3BhcmVudCAkc3RhcnQsIGNvbW1hKTtcbiAgICAkdGhpcy1zdG9wOiBhcHBlbmQoJHRoaXMtc3RvcCwgJF9jb2xvciAkc3RhcnQsIGNvbW1hKTtcblxuICAgICRfZW5kOiAkc3RhcnQgKyBzcGFuKDEgYXQgJGxvY2F0aW9uICRncmlkKTtcbiAgICAkdGhpcy1zdG9wOiBhcHBlbmQoJHRoaXMtc3RvcCwgJF9saWdodCAkX2VuZCwgY29tbWEpO1xuICAgICR0aGlzLXN0b3A6IGFwcGVuZCgkdGhpcy1zdG9wLCB0cmFuc3BhcmVudCAkX2VuZCwgY29tbWEpO1xuXG4gICAgJF9zdG9wczogam9pbigkX3N0b3BzLCAkdGhpcy1zdG9wLCBjb21tYSk7XG4gIH1cblxuICBAcmV0dXJuICRfc3RvcHM7XG59XG5cblxuLy8gR2V0IEFzeW1tZXRyaWNhbCBPdXRzaWRlXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIC0gJGdyaWQ6IDxzZXR0aW5ncz5cbkBmdW5jdGlvbiBnZXQtYXN5bS1vdXRzaWRlKFxuICAkZ3JpZFxuKSB7XG4gICRncmlkICAgICA6IHBhcnNlLWdyaWQoJGdyaWQpO1xuICAkX2NvbHVtbnMgOiBzdXN5LWdldChjb2x1bW5zLCAkZ3JpZCk7XG5cbiAgJF9jb2xvciAgIDogZGVidWctZ2V0KGNvbG9yKTtcbiAgJF9saWdodCAgIDogbGlnaHRlbigkX2NvbG9yLCAxNSUpO1xuICAkX3RyYW5zICAgOiB0cmFuc3BhcmVudDtcbiAgJF9zdG9wcyAgIDogKCk7XG5cbiAgQGZvciAkbG9jYXRpb24gZnJvbSAxIHRocm91Z2ggc3VzeS1jb3VudCgkX2NvbHVtbnMpIHtcbiAgICAkdGhpcy1zdG9wOiAoKTtcblxuICAgIEBpZiAkbG9jYXRpb24gPT0gMSB7XG4gICAgICAkdGhpcy1zdG9wOiBhcHBlbmQoJHRoaXMtc3RvcCwgJF9jb2xvciwgY29tbWEpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJHN0YXJ0OiBwYXJzZS1zcGFuKDEgYXQgJGxvY2F0aW9uICRncmlkKTtcbiAgICAgICRzdGFydDogZ2V0LWlzb2xhdGlvbigkc3RhcnQpO1xuICAgICAgJHRoaXMtc3RvcDogYXBwZW5kKCR0aGlzLXN0b3AsICRfY29sb3IgJHN0YXJ0LCBjb21tYSk7XG4gICAgfVxuXG4gICAgQGlmICRsb2NhdGlvbiA9PSBzdXN5LWNvdW50KCRfY29sdW1ucykge1xuICAgICAgJHRoaXMtc3RvcDogYXBwZW5kKCR0aGlzLXN0b3AsICRfbGlnaHQsIGNvbW1hKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRndXR0ZXI6IGdldC1zcGFuLXdpZHRoKGZpcnN0ICRsb2NhdGlvbiAkZ3JpZCk7XG5cbiAgICAgICRfZW5kOiBwYXJzZS1zcGFuKDEgYXQgKCRsb2NhdGlvbiArIDEpICRncmlkKTtcbiAgICAgICRfZW5kOiBnZXQtaXNvbGF0aW9uKCRfZW5kKTtcblxuICAgICAgJGd1dHRlcjogJF9saWdodCAkZ3V0dGVyLCAkX3RyYW5zICRndXR0ZXIsICRfdHJhbnMgJF9lbmQ7XG4gICAgICAkdGhpcy1zdG9wOiBqb2luKCR0aGlzLXN0b3AsICRndXR0ZXIsIGNvbW1hKTtcbiAgICB9XG5cbiAgICAkX3N0b3BzOiBqb2luKCRfc3RvcHMsICR0aGlzLXN0b3AsIGNvbW1hKTtcbiAgfVxuXG4gIEByZXR1cm4gJF9zdG9wcztcbn1cblxuXG4vLyBHZXQgQXN5bW1ldHJpY2FsIEJhY2tncm91bmRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gLSAkZ3JpZDogPHNldHRpbmdzPlxuQGZ1bmN0aW9uIGdldC1iYWNrZ3JvdW5kLWFzeW0oXG4gICRncmlkXG4pIHtcbiAgJF9zdG9wczogKCk7XG5cbiAgQGlmIGlzLWluc2lkZSgkZ3JpZCkge1xuICAgICRfc3RvcHM6IGdldC1hc3ltLWluc2lkZSgkZ3JpZCk7XG4gIH0gQGVsc2UgaWYgaXMtc3BsaXQoJGdyaWQpIHtcbiAgICAkX3N0b3BzOiBnZXQtYXN5bS1zcGxpdCgkZ3JpZCk7XG4gIH0gQGVsc2Uge1xuICAgICRfc3RvcHM6IGdldC1hc3ltLW91dHNpZGUoJGdyaWQpO1xuICB9XG5cbiAgQHJldHVybiAoaW1hZ2U6IChjb2x1bW5zOiAkX3N0b3BzKSk7XG59XG5cblxuLy8gR2V0IEJhY2tncm91bmRcbi8vIC0tLS0tLS0tLS0tLS0tXG4vLyAtICRncmlkOiA8c2V0dGluZ3M+XG5AZnVuY3Rpb24gZ2V0LWJhY2tncm91bmQoXG4gICRncmlkXG4pIHtcbiAgJGdyaWQgICAgIDogcGFyc2UtZ3JpZCgkZ3JpZCk7XG4gICRfc2hvdyAgICA6IHN1c3ktZ2V0KGRlYnVnIGltYWdlLCAkZ3JpZCk7XG4gICRfcmV0dXJuICA6ICgpO1xuXG4gIEBpZiAkX3Nob3cgYW5kICRfc2hvdyAhPSAnaGlkZScge1xuICAgICRfY29sdW1uczogc3VzeS1nZXQoY29sdW1ucywgJGdyaWQpO1xuXG4gICAgQGlmICRfc2hvdyAhPSAnc2hvdy1iYXNlbGluZScge1xuICAgICAgJF9zeW06IGlzLXN5bW1ldHJpY2FsKCRfY29sdW1ucyk7XG4gICAgICAkX3JldHVybjogaWYoJF9zeW0sIGdldC1iYWNrZ3JvdW5kLXN5bSgkZ3JpZCksIGdldC1iYWNrZ3JvdW5kLWFzeW0oJGdyaWQpKTtcbiAgICAgICRfcmV0dXJuOiBtYXAtbWVyZ2UoJF9yZXR1cm4sIChjbGlwOiBjb250ZW50LWJveCkpO1xuICAgIH1cblxuICAgIEBpZiAkX3Nob3cgIT0gJ3Nob3ctY29sdW1ucydcbiAgICAgIGFuZCBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKGJhc2UtbGluZS1oZWlnaHQpXG4gICAgICBhbmQgdHlwZS1vZigkYmFzZS1saW5lLWhlaWdodCkgPT0gJ251bWJlcidcbiAgICAgIGFuZCBub3QgdW5pdGxlc3MoJGJhc2UtbGluZS1oZWlnaHQpIHtcbiAgICAgICRfY29sb3I6IHZhcmlhYmxlLWV4aXN0cygnZ3JpZC1iYWNrZ3JvdW5kLWJhc2VsaW5lLWNvbG9yJyk7XG4gICAgICAkX2NvbG9yOiBpZigkX2NvbG9yLCAkZ3JpZC1iYWNrZ3JvdW5kLWJhc2VsaW5lLWNvbG9yLCAjMDAwKTtcblxuICAgICAgJF9pbWFnZTogbWFwLWdldCgkX3JldHVybiwgaW1hZ2UpO1xuICAgICAgJF9zaXplOiBtYXAtZ2V0KCRfcmV0dXJuLCBzaXplKTtcbiAgICAgICRfYmFzZWxpbmU6IChiYXNlbGluZTogKCRfY29sb3IgMXB4LCB0cmFuc3BhcmVudCAxcHgpKTtcbiAgICAgICRfYmFzZWxpbmUtc2l6ZTogMTAwJSAkYmFzZS1saW5lLWhlaWdodDtcblxuICAgICAgJF9yZXR1cm46IG1hcC1tZXJnZSgkX3JldHVybiwgKFxuICAgICAgICBpbWFnZTogaWYoJF9pbWFnZSwgbWFwLW1lcmdlKCRfaW1hZ2UsICRfYmFzZWxpbmUpLCAkX2Jhc2VsaW5lKSxcbiAgICAgICAgc2l6ZTogaWYoJF9zaXplLCAoJF9zaXplLCAkX2Jhc2VsaW5lLXNpemUpLCAkX2Jhc2VsaW5lLXNpemUpLFxuICAgICAgKSk7XG5cbiAgICAgIEBpZiAkX3Nob3cgPT0gJ3Nob3cnIHtcbiAgICAgICAgJF9jbGlwOiBtYXAtZ2V0KCRfcmV0dXJuLCBjbGlwKTtcbiAgICAgICAgJF9yZXR1cm46IG1hcC1tZXJnZSgkX3JldHVybiwgKGNsaXA6IGpvaW4oJF9jbGlwLCBib3JkZXItYm94LCBjb21tYSkpKTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRfc2hvdyA9PSAnc2hvdy1iYXNlbGluZScge1xuICAgICAgQHdhcm4gJ1BsZWFzZSBwcm92aWRlIGEgJGJhc2UtbGluZS1oZWlnaHQgd2l0aCB0aGUgZGVzaXJlZCBoZWlnaHQgYW5kIHVuaXRzJztcbiAgICB9XG4gIH1cblxuICBAaWYgbWFwLWdldCgkX3JldHVybiwgaW1hZ2UpIHtcbiAgICAkX3JldHVybjogbWFwLW1lcmdlKCRfcmV0dXJuLCAoZmxvdzogc3VzeS1nZXQoZmxvdywgJGdyaWQpKSk7XG4gIH1cblxuICBAcmV0dXJuICRfcmV0dXJuO1xufVxuXG5cbi8vIEdldCBEZWJ1Z1xuLy8gLS0tLS0tLS0tXG4vLyBSZXR1cm4gdGhlIHZhbHVlIG9mIGEgZGVidWcgc2V0dGluZ1xuLy8gLSAka2V5OiA8c2V0dGluZz5cbkBmdW5jdGlvbiBkZWJ1Zy1nZXQoXG4gICRrZXksXG4gICRncmlkOiAkc3VzeVxuKSB7XG4gICRrZXk6IGpvaW4oZGVidWcsICRrZXksIHNwYWNlKTtcbiAgQHJldHVybiBzdXN5LWdldCgka2V5LCAkZ3JpZCk7XG59XG4iLCIvLyBDb250YWluZXIgU3ludGF4XG4vLyA9PT09PT09PT09PT09PT09XG5cbi8vIENvbnRhaW5lciBbbWl4aW5dXG4vLyAtLS0tLS0tLS0tLS0tLS0tLVxuLy8gU2V0IGEgY29udGFpbmVyIGVsZW1lbnRcbi8vIC0gWyRsYXlvdXRdICA6IDxzZXR0aW5ncz5cbkBtaXhpbiBjb250YWluZXIoXG4gICRsYXlvdXQ6ICRzdXN5XG4pIHtcbiAgJGluc3BlY3QgICAgOiAkbGF5b3V0O1xuICAkbGF5b3V0ICAgICA6IHBhcnNlLWdyaWQoJGxheW91dCk7XG5cbiAgJF93aWR0aCAgICAgOiBnZXQtY29udGFpbmVyLXdpZHRoKCRsYXlvdXQpO1xuICAkX2p1c3RpZnkgICA6IHBhcnNlLWNvbnRhaW5lci1wb3NpdGlvbihzdXN5LWdldChjb250YWluZXItcG9zaXRpb24sICRsYXlvdXQpKTtcbiAgJF9wcm9wZXJ0eSAgOiBpZihzdXN5LWdldChtYXRoLCAkbGF5b3V0KSA9PSBzdGF0aWMsIHdpZHRoLCBtYXgtd2lkdGgpO1xuXG4gICRfYm94ICAgICAgIDogc3VzeS1nZXQoYm94LXNpemluZywgJGxheW91dCk7XG5cbiAgQGlmICRfYm94IHtcbiAgICBAaW5jbHVkZSBvdXRwdXQoKGJveC1zaXppbmc6ICRfYm94KSk7XG4gIH1cblxuICBAaW5jbHVkZSBzdXN5LWluc3BlY3QoY29udGFpbmVyLCAkaW5zcGVjdCk7XG4gIEBpbmNsdWRlIGZsb2F0LWNvbnRhaW5lcigkX3dpZHRoLCAkX2p1c3RpZnksICRfcHJvcGVydHkpO1xuICBAaW5jbHVkZSBzaG93LWdyaWQoJGxheW91dCk7XG59XG5cbi8vIENvbnRhaW5lciBbZnVuY3Rpb25dXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUmV0dXJuIGNvbnRhaW5lciB3aWR0aFxuLy8gLSBbJGxheW91dF0gIDogPHNldHRpbmdzPlxuQGZ1bmN0aW9uIGNvbnRhaW5lcihcbiAgJGxheW91dDogJHN1c3lcbikge1xuICAkbGF5b3V0OiBwYXJzZS1ncmlkKCRsYXlvdXQpO1xuICBAcmV0dXJuIGdldC1jb250YWluZXItd2lkdGgoJGxheW91dCk7XG59XG5cbi8vIEdldCBDb250YWluZXIgV2lkdGhcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIENhbGN1bGF0ZSB0aGUgY29udGFpbmVyIHdpZHRoXG4vLyAtIFskbGF5b3V0XTogPHNldHRpbmdzPlxuQGZ1bmN0aW9uIGdldC1jb250YWluZXItd2lkdGgoXG4gICRsYXlvdXQ6ICRzdXN5XG4pIHtcbiAgJGxheW91dCAgICAgICAgIDogcGFyc2UtZ3JpZCgkbGF5b3V0KTtcbiAgJF93aWR0aCAgICAgICAgIDogc3VzeS1nZXQoY29udGFpbmVyLCAkbGF5b3V0KTtcbiAgJF9jb2x1bW4td2lkdGggIDogc3VzeS1nZXQoY29sdW1uLXdpZHRoLCAkbGF5b3V0KTtcbiAgJF9tYXRoICAgICAgICAgIDogc3VzeS1nZXQobWF0aCwgJGxheW91dCk7XG5cbiAgQGlmIG5vdCgkX3dpZHRoKSBvciAkX3dpZHRoID09IGF1dG8ge1xuICAgIEBpZiB2YWxpZC1jb2x1bW4tbWF0aCgkX21hdGgsICRfY29sdW1uLXdpZHRoKSB7XG4gICAgICAkX2NvbHVtbnMgICA6IHN1c3ktZ2V0KGNvbHVtbnMsICRsYXlvdXQpO1xuICAgICAgJF9ndXR0ZXJzICAgOiBzdXN5LWdldChndXR0ZXJzLCAkbGF5b3V0KTtcbiAgICAgICRfc3ByZWFkICAgIDogaWYoaXMtc3BsaXQoJGxheW91dCksIHdpZGUsIG5hcnJvdyk7XG4gICAgICAkX3dpZHRoICAgICA6IHN1c3ktc3VtKCRfY29sdW1ucywgJF9ndXR0ZXJzLCAkX3NwcmVhZCkgKiAkX2NvbHVtbi13aWR0aDtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRfd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkX3dpZHRoO1xufVxuXG4vLyBQYXJzZSBDb250YWluZXIgUG9zaXRpb25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUGFyc2UgdGhlICRjb250YWluZXItcG9zaXRpb24gaW50byBtYXJnaW4gdmFsdWVzLlxuLy8gLSBbJGp1c3RpZnldICAgOiBsZWZ0IHwgY2VudGVyIHwgcmlnaHQgfCA8bGVuZ3RoPiBbPGxlbmd0aD5dXG5AZnVuY3Rpb24gcGFyc2UtY29udGFpbmVyLXBvc2l0aW9uKFxuICAkanVzdGlmeTogbWFwLWdldCgkc3VzeS1kZWZhdWx0cywgY29udGFpbmVyLXBvc2l0aW9uKVxuKSB7XG4gICRfcmV0dXJuOiBpZigkanVzdGlmeSA9PSBsZWZ0LCAwLCBhdXRvKSBpZigkanVzdGlmeSA9PSByaWdodCwgMCwgYXV0byk7XG5cbiAgQGlmIG5vdChpbmRleChsZWZ0IHJpZ2h0IGNlbnRlciwgJGp1c3RpZnkpKSB7XG4gICAgJF9yZXR1cm46IG50aCgkanVzdGlmeSwgMSk7XG4gICAgJF9yZXR1cm46ICRfcmV0dXJuIGlmKGxlbmd0aCgkanVzdGlmeSkgPiAxLCBudGgoJGp1c3RpZnksIDIpLCAkX3JldHVybik7XG4gIH1cblxuICBAcmV0dXJuICRfcmV0dXJuO1xufVxuIiwiLy8gU3BhbiBTeW50YXhcbi8vID09PT09PT09PT09XG5cbi8vIFNwYW4gW21peGluXVxuLy8gLS0tLS0tLS0tLS0tXG4vLyBTZXQgYSBzcGFubmluZyBlbGVtZW50IHVzaW5nIHNob3J0aGFuZCBzeW50YXguXG4vLyAtICRzcGFuICA6IDxzcGFuPlxuQG1peGluIHNwYW4oXG4gICRzcGFuXG4pIHtcbiAgJGluc3BlY3Q6ICRzcGFuO1xuICAkc3BhbjogcGFyc2Utc3Bhbigkc3Bhbik7XG4gICRvdXRwdXQ6IHNwYW4tbWF0aCgkc3Bhbik7XG4gICRuZXN0aW5nOiBzdXN5LWdldChzcGFuLCAkc3Bhbik7XG4gICRjbGVhcjogc3VzeS1nZXQoY2xlYXIsICRzcGFuKTtcblxuICAkYm94OiBzdXN5LWdldChib3gtc2l6aW5nLCAkc3Bhbik7XG4gICRjb250ZW50LWJveDogaWYoc3VzeS1nZXQoZ2xvYmFsLWJveC1zaXppbmcpICE9ICdib3JkZXItYm94JywgdHJ1ZSwgZmFsc2UpO1xuICAkYm94OiAkYm94IG9yIGlmKGlzLWluc2lkZSgkc3BhbikgYW5kICRjb250ZW50LWJveCwgYm9yZGVyLWJveCwgbnVsbCk7XG5cbiAgQGlmICRjbGVhciA9PSBicmVhayB7XG4gICAgQGluY2x1ZGUgYnJlYWs7XG4gIH0gQGVsc2UgaWYgJGNsZWFyID09IG5vYnJlYWsge1xuICAgIEBpbmNsdWRlIG5vYnJlYWs7XG4gIH1cblxuICBAaW5jbHVkZSBzdXN5LWluc3BlY3Qoc3BhbiwgJGluc3BlY3QpO1xuICBAaW5jbHVkZSBvdXRwdXQoKGJveC1zaXppbmc6ICRib3gpKTtcbiAgQGluY2x1ZGUgZmxvYXQtc3Bhbi1vdXRwdXQoJG91dHB1dC4uLik7XG5cbiAgQGlmIHZhbGlkLWNvbHVtbnMoJG5lc3RpbmcsIHNpbGVudCkge1xuICAgIEBpbmNsdWRlIG5lc3RlZCgkc3BhbikgeyBAY29udGVudDsgfVxuICB9IEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBTcGFuIFtmdW5jdGlvbl1cbi8vIC0tLS0tLS0tLS0tLS0tLVxuLy8gUmV0dXJuIHRoZSB3aWR0aCBvZiBhIHNwYW4uXG4vLyAtICRzcGFuICA6IDxzcGFuPlxuQGZ1bmN0aW9uIHNwYW4oXG4gICRzcGFuXG4pIHtcbiAgQHJldHVybiBnZXQtc3Bhbi13aWR0aCgkc3Bhbik7XG59XG5cbi8vIFNwYW4gTWF0aFxuLy8gLS0tLS0tLS0tXG4vLyBHZXQgYWxsIHRoZSBzcGFuIHJlc3VsdHMuXG4vLyAtICRzcGFuOiA8bWFwPlxuQGZ1bmN0aW9uIHNwYW4tbWF0aChcbiAgJHNwYW5cbikge1xuICAkbmVzdCAgICAgICAgICAgICA6IGlmKHN1c3ktZ2V0KHJvbGUsICRzcGFuKSA9PSBuZXN0LCB0cnVlLCBmYWxzZSk7XG4gICRzcGxpdC1uZXN0ICAgICAgIDogaWYoaXMtc3BsaXQoJHNwYW4pIGFuZCAkbmVzdCwgdHJ1ZSwgZmFsc2UpO1xuICAkZWRnZSAgICAgICAgICAgICA6IGdldC1lZGdlKCRzcGFuKTtcbiAgJGxvY2F0aW9uICAgICAgICAgOiBnZXQtbG9jYXRpb24oJHNwYW4pO1xuXG4gICRmbG9hdCAgICAgICAgICAgIDogZnJvbTtcbiAgJHBhZGRpbmctYmVmb3JlICAgOiBudWxsO1xuICAkcGFkZGluZy1hZnRlciAgICA6IG51bGw7XG4gICRtYXJnaW4tYmVmb3JlICAgIDogbnVsbDtcbiAgJG1hcmdpbi1hZnRlciAgICAgOiBudWxsO1xuXG4gIC8vIGNhbGN1bGF0ZSB3aWR0aHNcbiAgJHNwcmVhZDogaW5kZXgobWFwLXZhbHVlcygkc3BhbiksIHNwcmVhZCk7XG4gICRzcGFuOiBpZigkc3BsaXQtbmVzdCBhbmQgbm90KCRzcHJlYWQpLCBtYXAtbWVyZ2UoJHNwYW4sIChzcHJlYWQ6IHdpZGUpKSwgJHNwYW4pO1xuICAkd2lkdGg6IGdldC1zcGFuLXdpZHRoKCRzcGFuKTtcbiAgJGd1dHRlcnM6IGdldC1ndXR0ZXJzKCRzcGFuKTtcblxuICAvLyBhcHBseSBndXR0ZXJzXG4gIEBpZiBpcy1pbnNpZGUoJHNwYW4pIHtcbiAgICBAaWYgbm90KHN1c3ktZ2V0KHJvbGUsICRzcGFuKSkge1xuICAgICAgJHBhZGRpbmctYmVmb3JlOiBtYXAtZ2V0KCRndXR0ZXJzLCBiZWZvcmUpO1xuICAgICAgJHBhZGRpbmctYWZ0ZXI6IG1hcC1nZXQoJGd1dHRlcnMsIGFmdGVyKTtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBpZiBub3QoJHNwbGl0LW5lc3QpIHtcbiAgICAgICRtYXJnaW4tYmVmb3JlOiBtYXAtZ2V0KCRndXR0ZXJzLCBiZWZvcmUpO1xuICAgICAgJG1hcmdpbi1hZnRlcjogbWFwLWdldCgkZ3V0dGVycywgYWZ0ZXIpO1xuICAgIH1cbiAgfVxuXG4gIC8vIHNwZWNpYWwgbWFyZ2luIGhhbmRsaW5nXG4gIEBpZiBzdXN5LWdldChvdXRwdXQsICRzcGFuKSA9PSBpc29sYXRlIGFuZCAkbG9jYXRpb24ge1xuICAgICRtYXJnaW4tYmVmb3JlOiBnZXQtaXNvbGF0aW9uKCRzcGFuKTtcbiAgICAkbWFyZ2luLWFmdGVyOiAtMTAwJTtcbiAgfSBAZWxzZSBpZiAkZWRnZSB7XG4gICAgJGlzLXNwbGl0OiBpcy1zcGxpdCgkc3Bhbik7XG4gICAgJHBvczogc3VzeS1nZXQoZ3V0dGVyLXBvc2l0aW9uLCAkc3Bhbik7XG5cbiAgICBAaWYgJGVkZ2UgPT0gbGFzdCB7XG4gICAgICAkZmxvYXQ6IHN1c3ktZ2V0KGxhc3QtZmxvdywgJHNwYW4pO1xuICAgIH1cblxuICAgIEBpZiBub3QoJGlzLXNwbGl0KSB7XG4gICAgICBAaWYgJGVkZ2UgPT0gZnVsbCBvciAoJGVkZ2UgPT0gZmlyc3QgYW5kICRwb3MgPT0gYmVmb3JlKSB7XG4gICAgICAgICRtYXJnaW4tYmVmb3JlOiAwO1xuICAgICAgfVxuICAgICAgQGlmICRlZGdlID09IGZ1bGwgb3IgKCRlZGdlID09IGxhc3QgYW5kICRwb3MgPT0gYWZ0ZXIpIHtcbiAgICAgICAgJG1hcmdpbi1hZnRlcjogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxuXG4gIEByZXR1cm4gKFxuICAgIHdpZHRoICAgICAgICAgICA6ICR3aWR0aCxcbiAgICBmbG9hdCAgICAgICAgICAgOiAkZmxvYXQsXG4gICAgbWFyZ2luLWJlZm9yZSAgIDogJG1hcmdpbi1iZWZvcmUsXG4gICAgbWFyZ2luLWFmdGVyICAgIDogJG1hcmdpbi1hZnRlcixcbiAgICBwYWRkaW5nLWJlZm9yZSAgOiAkcGFkZGluZy1iZWZvcmUsXG4gICAgcGFkZGluZy1hZnRlciAgIDogJHBhZGRpbmctYWZ0ZXIsXG4gICAgZmxvdyAgICAgICAgICAgIDogc3VzeS1nZXQoZmxvdywgJHNwYW4pLFxuICApO1xufVxuXG4vLyBHZXQgU3BhbiBXaWR0aFxuLy8gLS0tLS0tLS0tLS0tLS1cbi8vIFJldHVybiBzcGFuIHdpZHRoLlxuLy8gLSAkc3BhbjogPG1hcD5cbkBmdW5jdGlvbiBnZXQtc3Bhbi13aWR0aChcbiAgJHNwYW5cbikge1xuICAkc3BhbiAgICAgOiBwYXJzZS1zcGFuKCRzcGFuKTtcblxuICAkbiAgICAgICAgOiBzdXN5LWdldChzcGFuLCAkc3Bhbik7XG4gICRsb2NhdGlvbiA6IGdldC1sb2NhdGlvbigkc3Bhbik7XG4gICRjb2x1bW5zICA6IHN1c3ktZ2V0KGNvbHVtbnMsICRzcGFuKTtcbiAgJGd1dHRlcnMgIDogc3VzeS1nZXQoZ3V0dGVycywgJHNwYW4pO1xuICAkc3ByZWFkICAgOiBzdXN5LWdldChzcHJlYWQsICRzcGFuKTtcblxuICAkY29udGV4dCAgOiBudWxsO1xuICAkc3Bhbi1zdW0gOiBudWxsO1xuICAkd2lkdGggICAgOiBudWxsO1xuXG4gIEBpZiAkbiA9PSAnZnVsbCcge1xuICAgICRwb3M6IHN1c3ktZ2V0KGd1dHRlci1wb3NpdGlvbiwgJHNwYW4pO1xuICAgICRyb2xlOiBzdXN5LWdldChyb2xlLCAkc3Bhbik7XG4gICAgJG46IGlmKCRwb3MgPT0gc3BsaXQgYW5kICRyb2xlICE9IG5lc3QsIHN1c3ktY291bnQoJGNvbHVtbnMpLCAxMDAlKTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRuKSAhPSBudW1iZXIge1xuICAgIEB3YXJuIFwiKCN7dHlwZS1vZigkbil9KSAjeyRufSBpcyBub3QgYSB2YWxpZCBzcGFuLlwiO1xuICB9IEBlbHNlIGlmIHVuaXRsZXNzKCRuKSB7XG4gICAgJGNvbnRleHQ6IHN1c3ktc3VtKCRjb2x1bW5zLCAkZ3V0dGVycywgaWYoaXMtc3BsaXQoJHNwYW4pLCB3aWRlLCBuYXJyb3cpKTtcbiAgICAkc3ByZWFkOiBpZihpcy1pbnNpZGUoJHNwYW4pLCAkc3ByZWFkIG9yIHdpZGUsICRzcHJlYWQpO1xuICAgICRzcGFuLXN1bTogc3VzeSgkbiwgJGxvY2F0aW9uLCAkY29sdW1ucywgJGd1dHRlcnMsICRzcHJlYWQpO1xuXG4gICAgJF9tYXRoOiBzdXN5LWdldChtYXRoLCAkc3Bhbik7XG4gICAgJF9jb2x1bW4td2lkdGg6IHN1c3ktZ2V0KGNvbHVtbi13aWR0aCwgJHNwYW4pO1xuICAgIEBpZiAkX21hdGggPT0gc3RhdGljIHtcbiAgICAgICR3aWR0aDogJHNwYW4tc3VtICogdmFsaWQtY29sdW1uLW1hdGgoJF9tYXRoLCAkX2NvbHVtbi13aWR0aCk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkd2lkdGg6IHBlcmNlbnRhZ2UoJHNwYW4tc3VtIC8gJGNvbnRleHQpO1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgJHdpZHRoOiAkbjtcbiAgfVxuXG4gIEByZXR1cm4gJHdpZHRoO1xufVxuIiwiLy8gR3V0dGVyIFN5bnRheFxuLy8gPT09PT09PT09PT09PVxuXG5cbi8vIEd1dHRlcnNcbi8vIC0tLS0tLS1cbi8vIFNldCBndXR0ZXJzIG9uIGFuIGVsZW1lbnQuXG4vLyAtIFskc3Bhbl0gICA6IDxzZXR0aW5ncz5cbkBtaXhpbiBndXR0ZXJzKFxuICAkc3BhbjogJHN1c3lcbikge1xuICAkaW5zcGVjdCAgOiAkc3BhbjtcbiAgJHNwYW4gICAgIDogcGFyc2UtZ3V0dGVycygkc3Bhbik7XG4gICRfZ3V0dGVycyA6IGdldC1ndXR0ZXJzKCRzcGFuKTtcblxuICAkX291dHB1dDogKFxuICAgIGJlZm9yZTogbWFwLWdldCgkX2d1dHRlcnMsIGJlZm9yZSksXG4gICAgYWZ0ZXI6IG1hcC1nZXQoJF9ndXR0ZXJzLCBhZnRlciksXG4gICAgZmxvdzogc3VzeS1nZXQoZmxvdywgJHNwYW4pLFxuICApO1xuXG4gIEBpbmNsdWRlIHN1c3ktaW5zcGVjdChndXR0ZXJzLCAkaW5zcGVjdCk7XG5cbiAgQGlmIGlzLWluc2lkZSgkc3Bhbikge1xuICAgIEBpbmNsdWRlIHBhZGRpbmctb3V0cHV0KCRfb3V0cHV0Li4uKTtcbiAgfSBAZWxzZSB7XG4gICAgQGluY2x1ZGUgbWFyZ2luLW91dHB1dCgkX291dHB1dC4uLik7XG4gIH1cbn1cblxuQG1peGluIGd1dHRlcihcbiAgJHNwYW46ICRzdXN5XG4pIHtcbiAgQGluY2x1ZGUgZ3V0dGVycygkc3Bhbik7XG59XG5cblxuLy8gR3V0dGVyXG4vLyAtLS0tLS1cbi8vIFJldHVybiB0aGUgd2lkdGggb2YgYSBndXR0ZXIuXG4vLyAtIFskc3Bhbl0gICA6IDxzZXR0aW5ncz5cbkBmdW5jdGlvbiBndXR0ZXIoXG4gICRzcGFuOiAkc3VzeVxuKSB7XG4gICRzcGFuOiBwYXJzZS1ndXR0ZXJzKCRzcGFuKTtcblxuICAkX2d1dHRlcnM6IGdldC1ndXR0ZXJzKCRzcGFuKTtcbiAgJF9ndXR0ZXJzOiBtYXAtZ2V0KCRfZ3V0dGVycywgYmVmb3JlKSBvciBtYXAtZ2V0KCRfZ3V0dGVycywgYWZ0ZXIpO1xuXG4gIEByZXR1cm4gJF9ndXR0ZXJzO1xufVxuXG5AZnVuY3Rpb24gZ3V0dGVycyhcbiAgJHNwYW46ICRzdXN5XG4pIHtcbiAgQHJldHVybiBndXR0ZXIoJHNwYW4pO1xufVxuXG5cbi8vIEdldCBHdXR0ZXIgV2lkdGhcbi8vIC0tLS0tLS0tLS0tLS0tLS1cbi8vIFJldHVybiBndXR0ZXIgd2lkdGguXG4vLyAtIFskY29udGV4dF06IDxjb250ZXh0PlxuQGZ1bmN0aW9uIGdldC1ndXR0ZXItd2lkdGgoXG4gICRjb250ZXh0OiAkc3VzeVxuKSB7XG4gICRjb250ZXh0ICA6IHBhcnNlLWd1dHRlcnMoJGNvbnRleHQpO1xuXG4gICRfZ3V0dGVycyA6IHN1c3ktZ2V0KGd1dHRlcnMsICRjb250ZXh0KTtcbiAgJF9ndXR0ZXIgIDogc3VzeS1nZXQoZ3V0dGVyLW92ZXJyaWRlLCAkY29udGV4dCk7XG5cbiAgQGlmICRfZ3V0dGVycyBhbmQgKCRfZ3V0dGVycyA+IDApIGFuZCBub3QoJF9ndXR0ZXIpIHtcbiAgICAkX2NvbHVtbi13aWR0aDogc3VzeS1nZXQoY29sdW1uLXdpZHRoLCAkY29udGV4dCk7XG4gICAgJF9tYXRoOiBndXR0ZXItbWF0aCgkY29udGV4dCk7XG4gICAgQGlmICRfbWF0aCA9PSBzdGF0aWMge1xuICAgICAgJF9ndXR0ZXI6ICRfZ3V0dGVycyAqIHZhbGlkLWNvbHVtbi1tYXRoKCRfbWF0aCwgJF9jb2x1bW4td2lkdGgpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJF9jb2x1bW5zIDogc3VzeS1nZXQoY29sdW1ucywgJGNvbnRleHQpO1xuICAgICAgJF9zcHJlYWQgIDogaWYoaXMtc3BsaXQoJGNvbnRleHQpLCB3aWRlLCBzdXN5LWdldChzcHJlYWQsICRjb250ZXh0KSk7XG4gICAgICAkX2d1dHRlciAgOiBwZXJjZW50YWdlKCRfZ3V0dGVycyAvIHN1c3ktc3VtKCRfY29sdW1ucywgJF9ndXR0ZXJzLCAkX3NwcmVhZCkpO1xuICAgIH1cbiAgfVxuXG4gICRfZ3V0dGVyOiBpZigkX2d1dHRlciA9PSAnbm8tZ3V0dGVycycgb3IgJF9ndXR0ZXIgPT0gJ25vLWd1dHRlcicsIG51bGwsICRfZ3V0dGVyKTtcblxuICBAcmV0dXJuICRfZ3V0dGVyO1xufVxuXG5cbi8vIEdldCBHdXR0ZXJzXG4vLyAtLS0tLS0tLS0tLVxuLy8gUmV0dXJuIGJlZm9yZSBhbmQgYWZ0ZXIgZ3V0dGVyIHZhbHVlcy5cbi8vIC0gWyRjb250ZXh0XTogPGNvbnRleHQ+XG5AZnVuY3Rpb24gZ2V0LWd1dHRlcnMoXG4gICRjb250ZXh0OiAkc3VzeVxuKSB7XG4gICRjb250ZXh0ICAgICAgICAgICAgOiBwYXJzZS1ndXR0ZXJzKCRjb250ZXh0KTtcblxuICAkX2d1dHRlci1wb3NpdGlvbiAgIDogc3VzeS1nZXQoZ3V0dGVyLXBvc2l0aW9uLCAkY29udGV4dCk7XG4gICRfZ3V0dGVyICAgICAgICAgICAgOiBnZXQtZ3V0dGVyLXdpZHRoKCRjb250ZXh0KTtcblxuICAkX3JldHVybiAgICAgICAgICAgIDogKGJlZm9yZTogbnVsbCwgYWZ0ZXI6IG51bGwpO1xuXG4gIEBpZiBpcy1zcGxpdCgkY29udGV4dCkgYW5kICRfZ3V0dGVyIHtcbiAgICAkX2d1dHRlcjogJF9ndXR0ZXIgLyAyO1xuICAgICRfcmV0dXJuOiBtYXAtbWVyZ2UoJF9yZXR1cm4sIChiZWZvcmU6ICRfZ3V0dGVyLCBhZnRlcjogJF9ndXR0ZXIpKTtcbiAgfSBAZWxzZSB7XG4gICAgJF9yZXR1cm46IG1hcC1tZXJnZSgkX3JldHVybiwgKCRfZ3V0dGVyLXBvc2l0aW9uOiAkX2d1dHRlcikpO1xuICB9XG5cbiAgQHJldHVybiAkX3JldHVybjtcbn1cblxuXG4vLyBJcyBJbnNpZGVcbi8vIC0tLS0tLS0tLVxuLy8gUmV0dXJucyB0cnVlIGlmIGd1dHRlcnMgYXJlIGluc2lkZS5cbi8vICRjb250ZXh0OiA8Y29udGV4dD5cbkBmdW5jdGlvbiBpcy1pbnNpZGUoXG4gICRjb250ZXh0XG4pIHtcbiAgJF9pbnNpZGU6IGluc2lkZSBpbnNpZGUtc3RhdGljO1xuICAkX2d1dHRlci1wb3NpdGlvbjogc3VzeS1nZXQoZ3V0dGVyLXBvc2l0aW9uLCAkY29udGV4dCk7XG5cbiAgQHJldHVybiBpZihpbmRleCgkX2luc2lkZSwgJF9ndXR0ZXItcG9zaXRpb24pLCB0cnVlLCBmYWxzZSk7XG59XG5cblxuLy8gSXMgU3BsaXRcbi8vIC0tLS0tLS0tXG4vLyBSZXR1cm5zIHRydWUgaWYgZ3V0dGVycyBhcmUgc3BsaXQuXG4vLyAkY29udGV4dDogPGNvbnRleHQ+XG5AZnVuY3Rpb24gaXMtc3BsaXQoXG4gICRjb250ZXh0XG4pIHtcbiAgJF9zcGxpdDogc3BsaXQgaW5zaWRlIGluc2lkZS1zdGF0aWM7XG4gICRfZ3V0dGVyLXBvc2l0aW9uOiBzdXN5LWdldChndXR0ZXItcG9zaXRpb24sICRjb250ZXh0KTtcblxuICBAcmV0dXJuIGlmKGluZGV4KCRfc3BsaXQsICRfZ3V0dGVyLXBvc2l0aW9uKSwgdHJ1ZSwgZmFsc2UpO1xufVxuXG5cbi8vIEd1dHRlciBNYXRoXG4vLyAtLS0tLS0tLS0tLVxuLy8gUmV0dXJuIHRoZSBtYXRoIHRvIHVzZSBmb3IgZ3V0dGVyIGNhbGN1bGF0aW9uc1xuLy8gJGNvbnRleHQ6IDxjb250ZXh0PlxuQGZ1bmN0aW9uIGd1dHRlci1tYXRoKFxuICAkY29udGV4dDogJHN1c3lcbikge1xuICAkX3JldHVybiAgOiBzdXN5LWdldChtYXRoLCAkY29udGV4dCk7XG4gICRfcmV0dXJuICA6IGlmKHN1c3ktZ2V0KGd1dHRlci1wb3NpdGlvbiwgJGNvbnRleHQpID09IGluc2lkZS1zdGF0aWMsIHN0YXRpYywgJF9yZXR1cm4pO1xuXG4gIEByZXR1cm4gJF9yZXR1cm47XG59XG4iLCIvLyBJc29sYXRpb24gU3ludGF4XG4vLyA9PT09PT09PT09PT09PT09XG5cblxuLy8gSXNvbGF0ZSBbTWl4aW5dXG4vLyAtLS0tLS0tLS0tLS0tLS1cbi8vIFNldCBpc29sYXRpb24gYXMgYW4gb3ZlcnJpZGUuXG4vLyAtICRsb2NhdGlvbjogPHNwYW4+XG5AbWl4aW4gaXNvbGF0ZShcbiAgJGlzb2xhdGU6IDFcbikge1xuICAkaW5zcGVjdDogJGlzb2xhdGU7XG5cbiAgJG91dHB1dDogKFxuICAgIHB1c2g6IGlzb2xhdGUoJGlzb2xhdGUpLFxuICAgIGZsb3c6IHN1c3ktZ2V0KGZsb3csICRpc29sYXRlKSxcbiAgKTtcblxuICBAaW5jbHVkZSBzdXN5LWluc3BlY3QoaXNvbGF0ZSwgJGluc3BlY3QpO1xuICBAaW5jbHVkZSBpc29sYXRlLW91dHB1dCgkb3V0cHV0Li4uKTtcbn1cblxuXG4vLyBJc29sYXRlIFtmdW5jdGlvbl1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUmV0dXJuIGFuIGlzb2xhdGlvbiBvZmZzZXQgd2lkdGguXG4vLyAtICRsb2NhdGlvbjogPHNwYW4+XG5AZnVuY3Rpb24gaXNvbGF0ZShcbiAgJGlzb2xhdGU6IDFcbikge1xuICAkaXNvbGF0ZTogcGFyc2Utc3BhbigkaXNvbGF0ZSk7XG4gICRpc29sYXRpb246IHN1c3ktZ2V0KHNwYW4sICRpc29sYXRlKTtcblxuICBAaWYgJGlzb2xhdGlvbiBhbmQgbm90KGdldC1sb2NhdGlvbigkaXNvbGF0ZSkpIHtcbiAgICAkbmV3OiAoXG4gICAgICBzcGFuOiBudWxsLFxuICAgICAgbG9jYXRpb246ICRpc29sYXRpb24sXG4gICAgKTtcbiAgICAkaXNvbGF0ZTogbWFwLW1lcmdlKCRpc29sYXRlLCAkbmV3KTtcbiAgfVxuXG4gIEByZXR1cm4gZ2V0LWlzb2xhdGlvbigkaXNvbGF0ZSk7XG59XG5cblxuLy8gR2V0IElzb2xhdGlvblxuLy8gLS0tLS0tLS0tLS0tLVxuLy8gUmV0dXJuIHRoZSBpc29sYXRpb24gb2Zmc2V0IHdpZHRoXG4vLyAtICRpbnB1dDogPG1hcD5cbkBmdW5jdGlvbiBnZXQtaXNvbGF0aW9uKFxuICAkaW5wdXRcbikge1xuICAkbG9jYXRpb24gICA6IGdldC1sb2NhdGlvbigkaW5wdXQpO1xuICAkY29sdW1ucyAgICA6IHN1c3ktZ2V0KGNvbHVtbnMsICRpbnB1dCk7XG4gICR3aWR0aCAgICAgIDogbnVsbDtcblxuICBAaWYgdHlwZS1vZigkbG9jYXRpb24pID09IG51bWJlciBhbmQgbm90KHVuaXRsZXNzKCRsb2NhdGlvbikpIHtcbiAgICAkd2lkdGg6ICRsb2NhdGlvbjtcbiAgfSBAZWxzZSBpZiAkbG9jYXRpb24ge1xuICAgICRwdXNoOiAkbG9jYXRpb24gLSAxO1xuICAgIEBpZiAkcHVzaCA+IDAge1xuICAgICAgJHB1c2g6IG1hcC1tZXJnZSgkaW5wdXQsIChcbiAgICAgICAgc3BhbjogJHB1c2gsXG4gICAgICAgIGxvY2F0aW9uOiAxLFxuICAgICAgICBzcHJlYWQ6IHdpZGUsXG4gICAgICApKTtcbiAgICAgICR3aWR0aDogZ2V0LXNwYW4td2lkdGgoJHB1c2gpO1xuICAgIH1cbiAgfVxuXG4gIEBpZiBzdXN5LWdldChndXR0ZXItcG9zaXRpb24sICRpbnB1dCkgPT0gc3BsaXRcbiAgICAgIGFuZCBzdXN5LWdldChndXR0ZXJzLCAkaW5wdXQpID4gMCB7XG4gICAgJHdpZHRoOiBpZigkd2lkdGggPT0gbnVsbCwgZ3V0dGVycygkaW5wdXQpLCAkd2lkdGggKyBndXR0ZXJzKCRpbnB1dCkpO1xuICB9XG5cbiAgQHJldHVybiAkd2lkdGggb3IgMDtcbn1cbiIsIi8vIEdhbGxlcnkgU3ludGF4XG4vLyA9PT09PT09PT09PT09PVxuXG4vLyBHYWxsZXJ5XG4vLyAtLS0tLS0tXG4vLyBDcmVhdGUgYW4gaXNvbGF0ZWQgZ2FsbGVyeVxuLy8gLSAkc3BhbiAgICAgICAgOiA8c3Bhbj5cbi8vIC0gWyRzZWxlY3Rvcl0gIDogY2hpbGQgfCBvZi10eXBlXG5AbWl4aW4gZ2FsbGVyeShcbiAgJHNwYW4sXG4gICRzZWxlY3RvcjogY2hpbGRcbikge1xuICAkaW5zcGVjdCAgICA6ICRzcGFuO1xuICAkc3BhbiAgICAgICA6IHBhcnNlLXNwYW4oJHNwYW4pO1xuICAkc3BhbiAgICAgICA6IG1hcC1tZXJnZSgkc3BhbiwgKGxvY2F0aW9uOiAxKSk7XG5cbiAgJG4gICAgICAgICAgICA6IHN1c3ktZ2V0KHNwYW4sICRzcGFuKTtcbiAgJGNvbHVtbnMgICAgICA6IHN1c3ktZ2V0KGNvbHVtbnMsICRzcGFuKTtcbiAgJGNvbnRleHQgICAgICA6IHN1c3ktY291bnQoJGNvbHVtbnMpO1xuICAkZmxvdyAgICAgICAgIDogc3VzeS1nZXQoZmxvdywgJHNwYW4pO1xuXG4gICRpbnNpZGUgICAgICAgOiBpcy1pbnNpZGUoJHNwYW4pO1xuICAkZnJvbSAgICAgICAgIDogZnJvbSgkZmxvdyk7XG4gICRsaW5lICAgICAgICAgOiBmbG9vcigkY29udGV4dCAvICRuKTtcbiAgJHN5bW1ldHJpY2FsICA6IGlzLXN5bW1ldHJpY2FsKCRjb2x1bW5zKTtcblxuICAkb3V0cHV0OiAoXG4gICAgd2lkdGggICAgICAgICAgICAgOiBudWxsLFxuICAgIGZsb2F0ICAgICAgICAgICAgIDogZnJvbSxcbiAgICBtYXJnaW4tYmVmb3JlICAgICA6IG51bGwsXG4gICAgbWFyZ2luLWFmdGVyICAgICAgOiBudWxsLFxuICAgIHBhZGRpbmctYmVmb3JlICAgIDogbnVsbCxcbiAgICBwYWRkaW5nLWFmdGVyICAgICA6IG51bGwsXG4gICAgZmxvdyAgICAgICAgICAgICAgOiAkZmxvdyxcbiAgKTtcblxuICBAaWYgJGluc2lkZSB7XG4gICAgJGd1dHRlcnM6IGdldC1ndXR0ZXJzKCRzcGFuKTtcbiAgICAkb3V0cHV0OiBtYXAtbWVyZ2UoJG91dHB1dCwgKFxuICAgICAgcGFkZGluZy1iZWZvcmU6IG1hcC1nZXQoJGd1dHRlcnMsIGJlZm9yZSksXG4gICAgICBwYWRkaW5nLWFmdGVyOiBtYXAtZ2V0KCRndXR0ZXJzLCBhZnRlciksXG4gICAgKSk7XG4gIH1cblxuICBAaWYgJHN5bW1ldHJpY2FsIHtcbiAgICAkb3V0cHV0OiBtYXAtbWVyZ2UoJG91dHB1dCwgKHdpZHRoOiBnZXQtc3Bhbi13aWR0aCgkc3BhbikpKTtcbiAgfVxuXG4gICRib3ggICAgICAgICAgOiBzdXN5LWdldChib3gtc2l6aW5nLCAkc3Bhbik7XG4gICRnbG9iYWwtYm94ICAgOiBpZihzdXN5LWdldChnbG9iYWwtYm94LXNpemluZykgPT0gJ2JvcmRlci1ib3gnLCB0cnVlLCBmYWxzZSk7XG5cbiAgQGluY2x1ZGUgc3VzeS1pbnNwZWN0KGdhbGxlcnksICRpbnNwZWN0KTtcblxuICAvLyBDb2xsZWN0aXZlIE91dHB1dFxuICBAaWYgJGJveCA9PSBib3JkZXItYm94IG9yICgkaW5zaWRlIGFuZCBub3QoJGJveCkgYW5kIG5vdCgkZ2xvYmFsLWJveCkpIHtcbiAgICBAaW5jbHVkZSBvdXRwdXQoKGJveC1zaXppbmc6IGJvcmRlci1ib3gpKTtcbiAgfSBAZWxzZSBpZiAkYm94ID09IGNvbnRlbnQtYm94IHtcbiAgICBAaW5jbHVkZSBvdXRwdXQoKGJveC1zaXppbmc6IGNvbnRlbnQtYm94KSk7XG4gIH1cblxuICBAaW5jbHVkZSBmbG9hdC1zcGFuLW91dHB1dCgkb3V0cHV0Li4uKTtcblxuICAvLyBJbmRpdmlkdWFsIExvb3BcbiAgQGZvciAkaXRlbSBmcm9tIDEgdGhyb3VnaCAkbGluZSB7XG4gICAgJG50aDogJyN7JGxpbmV9biArICN7JGl0ZW19JztcbiAgICAmOm50aC0jeyRzZWxlY3Rvcn0oI3skbnRofSkge1xuICAgICAgLy8gSW5kaXZpZHVhbCBQcmVwXG4gICAgICAkb3V0cHV0OiAoXG4gICAgICAgIHdpZHRoICAgICAgICAgICAgIDogaWYoJHN5bW1ldHJpY2FsLCBudWxsLCBnZXQtc3Bhbi13aWR0aCgkc3BhbikpLFxuICAgICAgICBmbG9hdCAgICAgICAgICAgICA6IG51bGwsXG4gICAgICAgIG1hcmdpbi1iZWZvcmUgICAgIDogZ2V0LWlzb2xhdGlvbigkc3BhbiksXG4gICAgICAgIG1hcmdpbi1hZnRlciAgICAgIDogLTEwMCUsXG4gICAgICAgIHBhZGRpbmctYmVmb3JlICAgIDogbnVsbCxcbiAgICAgICAgcGFkZGluZy1hZnRlciAgICAgOiBudWxsLFxuICAgICAgICBmbG93ICAgICAgICAgICAgICA6ICRmbG93LFxuICAgICAgKTtcblxuICAgICAgLy8gSW5kaXZpZHVhbCBPdXRwdXRcbiAgICAgIEBpbmNsdWRlIGZsb2F0LXNwYW4tb3V0cHV0KCRvdXRwdXQuLi4pO1xuXG4gICAgICBAaWYgZ2V0LWVkZ2UoJHNwYW4pID09IGZpcnN0IHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWs7XG4gICAgICAgIEBpbmNsdWRlIGZpcnN0KCRzcGFuKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICBAaW5jbHVkZSBub2JyZWFrO1xuICAgICAgfVxuXG4gICAgICAvLyBJbmRpdmlkdWFsIExvY2F0aW9uIEluY3JlbWVudFxuICAgICAgJGxvY2F0aW9uOiBnZXQtbG9jYXRpb24oJHNwYW4pICsgJG47XG4gICAgICAkbG9jYXRpb246IGlmKCRsb2NhdGlvbiA+ICRjb250ZXh0LCAxLCAkbG9jYXRpb24pO1xuICAgICAgJHNwYW46IG1hcC1tZXJnZSgkc3BhbiwgKGxvY2F0aW9uOiAkbG9jYXRpb24pKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIFJvdyBTdGFydCAmIEVuZFxuLy8gPT09PT09PT09PT09PT09XG5cbi8vIEJyZWFrXG4vLyAtLS0tLVxuLy8gQXBwbHkgdG8gYW55IGVsZW1lbnQgdGhhdCBzaG91bGQgZm9yY2UgYSBsaW5lIGJyZWFrLlxuQG1peGluIGJyZWFrIHtcbiAgQGluY2x1ZGUgb3V0cHV0KChjbGVhcjogYm90aCkpO1xufVxuXG5cbi8vIE5vQnJlYWtcbi8vIC0tLS0tLS1cbi8vIENhbmNlbCB0aGUgYnJlYWsoKSBlZmZlY3QsIGUuZy4gd2hlbiB1c2luZyBtZWRpYSBxdWVyaWVzLlxuQG1peGluIG5vYnJlYWsge1xuICBAaW5jbHVkZSBvdXRwdXQoKGNsZWFyOiBub25lKSk7XG59XG5cblxuLy8gRnVsbFxuLy8gLS0tLVxuLy8gLSBbJGNvbnRleHRdOiA8bGF5b3V0IHNob3J0aGFuZD5cbkBtaXhpbiBmdWxsKFxuICAkY29udGV4dDogJHN1c3lcbikge1xuICAkaW5zcGVjdCA6ICRjb250ZXh0O1xuICBAaW5jbHVkZSBzdXN5LWluc3BlY3QoZnVsbCwgJGluc3BlY3QpO1xuICBAaW5jbHVkZSBzcGFuKGZ1bGwgb2YgcGFyc2UtZ3JpZCgkY29udGV4dCkgYnJlYWspO1xufVxuXG5cbi8vIEZpcnN0XG4vLyAtLS0tLVxuLy8gLSBbJGNvbnRleHRdOiA8c2V0dGluZ3M+XG5AbWl4aW4gZmlyc3QoXG4gICRjb250ZXh0OiAkc3VzeVxuKSB7XG4gICRpbnNwZWN0ICA6ICRjb250ZXh0O1xuICAkY29udGV4dCAgOiBwYXJzZS1ncmlkKCRjb250ZXh0KTtcbiAgJGZsb3cgICAgIDogc3VzeS1nZXQoZmxvdywgJGNvbnRleHQpO1xuXG4gIEBpbmNsdWRlIHN1c3ktaW5zcGVjdChmaXJzdCwgJGluc3BlY3QpO1xuICBAaWYgbm90KGlzLXNwbGl0KCRjb250ZXh0KSkge1xuICAgIEBpbmNsdWRlIGZsb2F0LWZpcnN0KCRmbG93KTtcbiAgfVxufVxuXG5AbWl4aW4gYWxwaGEoXG4gICRjb250ZXh0OiAkc3VzeVxuKSB7XG4gIEBpbmNsdWRlIGZpcnN0KCRjb250ZXh0KTtcbn1cblxuXG4vLyBMYXN0XG4vLyAtLS0tXG4vLyAtIFskY29udGV4dF06IDxzZXR0aW5ncz5cbkBtaXhpbiBsYXN0KFxuICAkY29udGV4dDogJHN1c3lcbikge1xuICAkaW5zcGVjdCAgOiAkY29udGV4dDtcbiAgJGNvbnRleHQgIDogcGFyc2UtZ3JpZCgkY29udGV4dCk7XG5cbiAgQGluY2x1ZGUgc3VzeS1pbnNwZWN0KGxhc3QsICRpbnNwZWN0KTtcblxuICAkb3V0cHV0OiAoXG4gICAgZmxvdzogc3VzeS1nZXQoZmxvdywgJGNvbnRleHQpLFxuICAgIGxhc3QtZmxvdzogc3VzeS1nZXQobGFzdC1mbG93LCAkY29udGV4dCksXG4gICAgbWFyZ2luOiBpZihpcy1zcGxpdCgkY29udGV4dCksIG51bGwsIDApLFxuICApO1xuXG4gIEBpbmNsdWRlIGZsb2F0LWxhc3QoJG91dHB1dC4uLik7XG59XG5cbkBtaXhpbiBvbWVnYShcbiAgJGNvbnRleHQ6ICRzdXN5XG4pIHtcbiAgQGluY2x1ZGUgbGFzdCgkY29udGV4dCk7XG59XG5cblxuLy8gR2V0IEVkZ2Vcbi8vIC0tLS0tLS0tXG4vLyBDYWxjdWxhdGUgZWRnZSB2YWx1ZSBiYXNlZCBvbiBsb2NhdGlvbiwgaWYgcG9zc2libGVcbkBmdW5jdGlvbiBnZXQtZWRnZShcbiAgJHNwYW5cbikge1xuICAkc3BhbiAgICAgICA6IHBhcnNlLXNwYW4oJHNwYW4pO1xuICAkZWRnZSAgICAgICA6IHN1c3ktZ2V0KGVkZ2UsICRzcGFuKTtcblxuICBAaWYgbm90KCRlZGdlKSB7XG4gICAgJGNvdW50OiBzdXN5LWNvdW50KHN1c3ktZ2V0KGNvbHVtbnMsICRzcGFuKSk7XG4gICAgJGxvY2F0aW9uOiBzdXN5LWdldChsb2NhdGlvbiwgJHNwYW4pO1xuICAgICRuOiBzdXN5LWdldChzcGFuLCAkc3Bhbik7XG5cbiAgICAkbnVtYmVyOiBpZih0eXBlLW9mKCRsb2NhdGlvbikgPT0gbnVtYmVyLCB0cnVlLCBmYWxzZSk7XG4gICAgJGluZGV4OiBpZigkbnVtYmVyIGFuZCB1bml0bGVzcygkbG9jYXRpb24pLCB0cnVlLCBmYWxzZSk7XG5cbiAgICBAaWYgJG4gPT0gJGNvdW50IHtcbiAgICAgICRlZGdlOiBmdWxsO1xuICAgIH0gQGVsc2UgaWYgJGxvY2F0aW9uIGFuZCAkbiBhbmQgJGluZGV4IHtcbiAgICAgIEBpZiAkbG9jYXRpb24gPT0gMSB7XG4gICAgICAgICRlZGdlOiBpZigkbiA9PSAkY291bnQsIGZ1bGwsIGZpcnN0KTtcbiAgICAgIH0gQGVsc2UgaWYgJGxvY2F0aW9uICsgJG4gLSAxID09ICRjb3VudCB7XG4gICAgICAgICRlZGdlOiBsYXN0O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpZiAkZWRnZSA9PSBhbHBoYSBvciAkZWRnZSA9PSBvbWVnYSB7XG4gICAgJGVkZ2U6IGlmKCRlZGdlID09IGFscGhhLCBmaXJzdCwgbGFzdCk7XG4gIH1cblxuICBAcmV0dXJuICRlZGdlO1xufVxuXG5cbi8vIEdldCBMb2NhdGlvblxuLy8gLS0tLS0tLS0tLS0tXG4vLyBDYWxjdWxhdGUgbG9jYXRpb24gdmFsdWUgYmFzZWQgb24gZWRnZSwgaWYgcG9zc2libGVcbkBmdW5jdGlvbiBnZXQtbG9jYXRpb24oXG4gICRzcGFuXG4pIHtcbiAgJHNwYW4gICAgICAgOiBwYXJzZS1zcGFuKCRzcGFuKTtcbiAgJGxvY2F0aW9uICAgOiBzdXN5LWdldChsb2NhdGlvbiwgJHNwYW4pO1xuICAkZWRnZSAgICAgICA6IGdldC1lZGdlKCRzcGFuKTtcbiAgJG4gICAgICAgICAgOiBzdXN5LWdldChzcGFuLCAkc3Bhbik7XG5cbiAgQGlmICRlZGdlIGFuZCBub3QoJGxvY2F0aW9uKSBhbmQgdHlwZS1vZigkbikgPT0gbnVtYmVyIGFuZCB1bml0bGVzcygkbikge1xuICAgIEBpZiAkZWRnZSA9PSBmaXJzdCB7XG4gICAgICAkbG9jYXRpb246IDE7XG4gICAgfSBAZWxzZSBpZiAkZWRnZSA9PSBsYXN0IHtcbiAgICAgICRsb2NhdGlvbjogc3VzeS1jb3VudChzdXN5LWdldChjb2x1bW5zLCAkc3BhbikpIC0gJG4gKyAxO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJGxvY2F0aW9uXG59XG4iLCIvLyBNYXJnaW4gU3ludGF4XG4vLyA9PT09PT09PT09PT09XG5cbi8vIFByZVxuLy8gLS0tXG4vLyBBZGQgc3Bhbm5pbmctbWFyZ2lucyBiZWZvcmUgYW4gZWxlbWVudC5cbi8vIC0gJHNwYW4gIDogPHNwYW4+XG5AbWl4aW4gcHJlKFxuICAkc3BhblxuKSB7XG4gICRpbnNwZWN0OiAkc3BhbjtcbiAgJHNwYW4gICA6IG1hcC1tZXJnZSgoc3ByZWFkOiB3aWRlKSwgcGFyc2Utc3Bhbigkc3BhbikpO1xuICAkZmxvdyAgIDogc3VzeS1nZXQoZmxvdywgJHNwYW4pO1xuICAkc3BsaXQgIDogaWYoc3VzeS1nZXQoZ3V0dGVyLXBvc2l0aW9uLCAkc3BhbikgPT0gc3BsaXQsIHRydWUsIGZhbHNlKTtcbiAgJGd1dHRlciA6IGd1dHRlcigkc3Bhbik7XG4gICRzcGFuICAgOiBzcGFuKCRzcGFuKTtcbiAgJHdpZHRoICA6IGlmKCRzcGxpdCBhbmQgJGd1dHRlciwgJHNwYW4gKyAkZ3V0dGVyLCAkc3Bhbik7XG5cbiAgQGluY2x1ZGUgc3VzeS1pbnNwZWN0KHByZSwgJGluc3BlY3QpO1xuICBAaW5jbHVkZSBtYXJnaW4tb3V0cHV0KCR3aWR0aCwgbnVsbCwgJGZsb3cpO1xufVxuXG4vLyBQb3N0XG4vLyAtLS0tXG4vLyBBZGQgc3Bhbm5pbmctbWFyZ2lucyBhZnRlciBhbiBlbGVtZW50LlxuLy8gLSAkc3BhbiAgOiA8c3Bhbj5cbkBtaXhpbiBwb3N0KFxuICAkc3BhblxuKSB7XG4gICRpbnNwZWN0ICA6ICRzcGFuO1xuICAkc3BhbiAgICAgOiBtYXAtbWVyZ2UoKHNwcmVhZDogd2lkZSksIHBhcnNlLXNwYW4oJHNwYW4pKTtcbiAgJGZsb3cgICAgIDogc3VzeS1nZXQoZmxvdywgJHNwYW4pO1xuICAkc3BsaXQgICAgOiBpZihzdXN5LWdldChndXR0ZXItcG9zaXRpb24sICRzcGFuKSA9PSBzcGxpdCwgdHJ1ZSwgZmFsc2UpO1xuICAkd2lkdGggICAgOiBpZigkc3BsaXQsIHNwYW4oJHNwYW4pICsgZ3V0dGVyKCRzcGFuKSwgc3Bhbigkc3BhbikpO1xuXG4gIEBpbmNsdWRlIHN1c3ktaW5zcGVjdChwb3N0LCAkaW5zcGVjdCk7XG4gIEBpbmNsdWRlIG1hcmdpbi1vdXRwdXQobnVsbCwgJHdpZHRoLCAkZmxvdyk7XG59XG5cbi8vIFB1c2hcbi8vIC0tLS1cbi8vIFNpbXBsZSBzeW5vbnltbiBmb3IgcHJlLlxuLy8gLSAkc3BhbiAgOiA8c3Bhbj5cbkBtaXhpbiBwdXNoKFxuICAkc3BhblxuKSB7XG4gIEBpbmNsdWRlIHByZSgkc3Bhbik7XG59XG5cbi8vIFB1bGxcbi8vIC0tLS1cbi8vIEFkZCBuZWdhdGl2ZSBzcGFubmluZy1tYXJnaW5zIGJlZm9yZSBhbiBlbGVtZW50LlxuLy8gLSAkc3BhbiAgOiA8c3Bhbj5cbkBtaXhpbiBwdWxsKFxuICAkc3BhblxuKSB7XG4gICRpbnNwZWN0ICA6ICRzcGFuO1xuICAkc3BhbiAgICAgOiBtYXAtbWVyZ2UoKHNwcmVhZDogd2lkZSksIHBhcnNlLXNwYW4oJHNwYW4pKTtcbiAgJGZsb3cgICAgIDogc3VzeS1nZXQoZmxvdywgJHNwYW4pO1xuICAkc3BsaXQgICAgOiBpZihzdXN5LWdldChndXR0ZXItcG9zaXRpb24sICRzcGFuKSA9PSBzcGxpdCwgdHJ1ZSwgZmFsc2UpO1xuICAkd2lkdGggICAgOiBpZigkc3BsaXQsIDAgLSBzcGFuKCRzcGFuKSArIGd1dHRlcigkc3BhbiksIDAgLSBzcGFuKCRzcGFuKSk7XG5cbiAgQGluY2x1ZGUgc3VzeS1pbnNwZWN0KHB1bGwsICRpbnNwZWN0KTtcbiAgQGluY2x1ZGUgbWFyZ2luLW91dHB1dCgkd2lkdGgsIG51bGwsICRmbG93KTtcbn1cblxuLy8gU3F1aXNoXG4vLyAtLS0tLS1cbi8vIEFkZCBzcGFubmluZy1tYXJnaW5zIGJlZm9yZSBhbmQgYWZ0ZXIgYW4gZWxlbWVudC5cbi8vIC0gJHByZSAgICAgOiA8c3Bhbj5cbi8vIC0gWyRwb3N0XSAgOiA8c3Bhbj5cbkBtaXhpbiBzcXVpc2goXG4gICRwcmUsXG4gICRwb3N0OiBmYWxzZVxuKSB7XG4gICRpbnNwZWN0ICAgICAgOiAoJHByZSwgJHBvc3QpO1xuICAkcHJlICAgICAgICAgIDogbWFwLW1lcmdlKChzcHJlYWQ6IHdpZGUpLCBwYXJzZS1zcGFuKCRwcmUpKTtcblxuICBAaWYgJHBvc3Qge1xuICAgICRwb3N0OiBtYXAtbWVyZ2UoKHNwcmVhZDogd2lkZSksIHBhcnNlLXNwYW4oJHBvc3QpKTtcbiAgfSBAZWxzZSB7XG4gICAgJHNwYW46IHN1c3ktZ2V0KHNwYW4sICRwcmUpO1xuICAgIEBpZiBsZW5ndGgoJHNwYW4pID4gMSB7XG4gICAgICAkcHJlOiBtYXAtbWVyZ2UoJHByZSwgKHNwYW46IG50aCgkc3BhbiwgMSkpKTtcbiAgICAgICRwb3N0OiBtYXAtbWVyZ2UoJHByZSwgKHNwYW46IG50aCgkc3BhbiwgMikpKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRwb3N0OiAkcHJlO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIHN1c3ktaW5zcGVjdChzcXVpc2gsICRpbnNwZWN0KTtcbiAgQGluY2x1ZGUgcHJlKCRwcmUpO1xuICBAaW5jbHVkZSBwb3N0KCRwb3N0KTtcbn1cbiIsIi8vIFBhZGRpbmcgU3ludGF4XG4vLyA9PT09PT09PT09PT09PVxuXG4vLyBQcmVmaXhcbi8vIC0tLS0tLVxuLy8gQWRkIHNwYW5uaW5nLXBhZGRpbmcgYmVmb3JlIGFuIGVsZW1lbnQuXG4vLyAtICRzcGFuICA6IDxzcGFuPlxuQG1peGluIHByZWZpeChcbiAgJHNwYW5cbikge1xuICAkaW5zcGVjdCAgOiAkc3BhbjtcbiAgJHNwYW4gICAgIDogbWFwLW1lcmdlKChzcHJlYWQ6IHdpZGUpLCBwYXJzZS1zcGFuKCRzcGFuKSk7XG4gICRmbG93ICAgICA6IHN1c3ktZ2V0KGZsb3csICRzcGFuKTtcbiAgJHdpZHRoICAgIDogc3Bhbigkc3Bhbik7XG5cbiAgQGlmIGlzLWluc2lkZSgkc3Bhbikge1xuICAgICRndXR0ZXI6IGd1dHRlcigkc3Bhbik7XG4gICAgJHdpZHRoOiBpZigkZ3V0dGVyIGFuZCBjb21wYXJhYmxlKCR3aWR0aCwgJGd1dHRlciksICR3aWR0aCArICRndXR0ZXIsICR3aWR0aCk7XG4gIH1cblxuICBAaW5jbHVkZSBzdXN5LWluc3BlY3QocHJlZml4LCAkaW5zcGVjdCk7XG4gIEBpbmNsdWRlIHBhZGRpbmctb3V0cHV0KCR3aWR0aCwgbnVsbCwgJGZsb3cpO1xufVxuXG4vLyBTdWZmaXhcbi8vIC0tLS0tLVxuLy8gQWRkIHNwYW5uaW5nLXBhZGRpbmcgYWZ0ZXIgYW4gZWxlbWVudC5cbi8vIC0gJHNwYW4gIDogPHNwYW4+XG5AbWl4aW4gc3VmZml4KFxuICAkc3BhblxuKSB7XG4gICRpbnNwZWN0ICA6ICRzcGFuO1xuICAkc3BhbiAgICAgOiBtYXAtbWVyZ2UoKHNwcmVhZDogd2lkZSksIHBhcnNlLXNwYW4oJHNwYW4pKTtcbiAgJGZsb3cgICAgIDogc3VzeS1nZXQoZmxvdywgJHNwYW4pO1xuICAkd2lkdGggICAgOiBzcGFuKCRzcGFuKTtcblxuICBAaWYgaXMtaW5zaWRlKCRzcGFuKSB7XG4gICAgJGd1dHRlcjogZ3V0dGVyKCRzcGFuKTtcbiAgICAkd2lkdGg6IGlmKCRndXR0ZXIgYW5kIGNvbXBhcmFibGUoJHdpZHRoLCAkZ3V0dGVyKSwgJHdpZHRoICsgJGd1dHRlciwgJHdpZHRoKTtcbiAgfVxuXG4gIEBpbmNsdWRlIHN1c3ktaW5zcGVjdChzdWZmaXgsICRpbnNwZWN0KTtcbiAgQGluY2x1ZGUgcGFkZGluZy1vdXRwdXQobnVsbCwgJHdpZHRoLCAkZmxvdyk7XG59XG5cbi8vIFBhZFxuLy8gLS0tXG4vLyBBZGQgc3Bhbm5pbmctcGFkZGluZyBiZWZvcmUgYW5kIGFmdGVyIGFuIGVsZW1lbnQuXG4vLyAtICRwcmUgICAgIDogPHNwYW4+XG4vLyAtIFskcG9zdF0gIDogPHNwYW4+XG5AbWl4aW4gcGFkKFxuICAkcHJlLFxuICAkcG9zdDogZmFsc2Vcbikge1xuICAkaW5zcGVjdCAgOiAoJHByZSwgJHBvc3QpO1xuICAkcHJlICAgICAgOiBtYXAtbWVyZ2UoKHNwcmVhZDogd2lkZSksIHBhcnNlLXNwYW4oJHByZSkpO1xuXG4gIEBpZiAkcG9zdCB7XG4gICAgJHBvc3Q6IG1hcC1tZXJnZSgoc3ByZWFkOiB3aWRlKSwgcGFyc2Utc3BhbigkcG9zdCkpO1xuICB9IEBlbHNlIHtcbiAgICAkc3Bhbjogc3VzeS1nZXQoc3BhbiwgJHByZSk7XG4gICAgQGlmIGxlbmd0aCgkc3BhbikgPiAxIHtcbiAgICAgICRwcmU6IG1hcC1tZXJnZSgkcHJlLCAoc3BhbjogbnRoKCRzcGFuLCAxKSkpO1xuICAgICAgJHBvc3Q6IG1hcC1tZXJnZSgkcHJlLCAoc3BhbjogbnRoKCRzcGFuLCAyKSkpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJHBvc3Q6ICRwcmU7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgc3VzeS1pbnNwZWN0KHBhZCwgJGluc3BlY3QpO1xuICBAaW5jbHVkZSBwcmVmaXgoJHByZSk7XG4gIEBpbmNsdWRlIHN1ZmZpeCgkcG9zdCk7XG5cbn1cbiIsIi8vIEJsZWVkIFN5bnRheFxuLy8gPT09PT09PT09PT09XG5cbi8vIEJsZWVkXG4vLyAtLS0tLVxuLy8gQWRkIG5lZ2F0aXZlIG1hcmdpbnMsIGFuZCBlcXVhbCBwb3NpdGl2ZSBwYWRkaW5nIHRvIGNyZWF0ZSBibGVlZC5cbi8vIC0gJGJsZWVkICA6IDxzcGFuPlxuQG1peGluIGJsZWVkKFxuICAkYmxlZWQ6IDAgZ3V0dGVyKClcbikge1xuICAkaW5zcGVjdCAgOiAkYmxlZWQ7XG4gICRvdXRwdXQgICA6IGdldC1ibGVlZCgkYmxlZWQpO1xuXG4gIEBpZiBzdXN5LWdldChnbG9iYWwtYm94LXNpemluZykgIT0gY29udGVudC1ib3gge1xuICAgICRvdXRwdXQ6IG1hcC1tZXJnZSgoYm94LXNpemluZzogY29udGVudC1ib3gpLCAkb3V0cHV0KTtcbiAgfVxuXG4gIEBpbmNsdWRlIHN1c3ktaW5zcGVjdChibGVlZCwgJGluc3BlY3QpO1xuICBAaW5jbHVkZSBvdXRwdXQoJG91dHB1dCk7XG59XG5cblxuLy8gQmxlZWQteFxuLy8gLS0tLS0tLVxuLy8gU2hvcnRjdXQgZm9yIGhvcml6b250YWwgYmxlZWQuXG4vLyAtICRibGVlZCAgOiA8c3Bhbj5cbkBtaXhpbiBibGVlZC14KFxuICAkYmxlZWQ6IGd1dHRlcigpXG4pIHtcbiAgJGJsZWVkICA6IHBhcnNlLXNwYW4oJGJsZWVkKTtcbiAgJHRyYmwgICA6IHN1c3ktZ2V0KHNwYW4sICRibGVlZCk7XG5cbiAgQGlmIGxlbmd0aCgkdHJibCkgPT0gMSB7XG4gICAgJGJsZWVkOiBtYXAtbWVyZ2UoJGJsZWVkLCAoc3BhbjogMCBudGgoJHRyYmwsIDEpKSk7XG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCR0cmJsKSA9PSAyIHtcbiAgICAkYmxlZWQ6IG1hcC1tZXJnZSgkYmxlZWQsIChzcGFuOiAwIG50aCgkdHJibCwgMikgMCBudGgoJHRyYmwsIDEpKSk7XG4gIH0gQGVsc2Uge1xuICAgIEB3YXJuICdibGVlZC14IG9ubHkgdGFrZXMgMiBsZW5ndGhzLCBidXQgI3tsZW5ndGgoJHRyYmwpfSB3ZXJlIHBhc3NlZC4nO1xuICB9XG5cbiAgQGluY2x1ZGUgYmxlZWQoJGJsZWVkKTtcbn1cblxuXG4vLyBCbGVlZC15XG4vLyAtLS0tLS0tXG4vLyBTaG9ydGN1dCBmb3IgdmVydGljYWwgYmxlZWQuXG4vLyAtICRibGVlZCAgOiA8c3Bhbj5cbkBtaXhpbiBibGVlZC15KFxuICAkYmxlZWQ6IGlmKGZ1bmN0aW9uLWV4aXN0cyhyaHl0aG0pLCByaHl0aG0oMSksIDFlbSlcbikge1xuICAkYmxlZWQgIDogcGFyc2Utc3BhbigkYmxlZWQpO1xuICAkdHJibCAgIDogc3VzeS1nZXQoc3BhbiwgJGJsZWVkKTtcblxuICBAaWYgbGVuZ3RoKCR0cmJsKSA9PSAxIHtcbiAgICAkYmxlZWQ6IG1hcC1tZXJnZSgkYmxlZWQsIChzcGFuOiBudGgoJHRyYmwsIDEpIDApKTtcbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHRyYmwpID09IDIge1xuICAgICRibGVlZDogbWFwLW1lcmdlKCRibGVlZCwgKHNwYW46IG50aCgkdHJibCwgMSkgMCBudGgoJHRyYmwsIDIpIDApKTtcbiAgfSBAZWxzZSB7XG4gICAgQHdhcm4gJ2JsZWVkLXkgb25seSB0YWtlcyAyIGxlbmd0aHMsIGJ1dCAje2xlbmd0aCgkdHJibCl9IHdlcmUgcGFzc2VkLic7XG4gIH1cblxuICBAaW5jbHVkZSBibGVlZCgkYmxlZWQpO1xufVxuXG5cbi8vIEdldCBCbGVlZFxuLy8gLS0tLS0tLS0tXG4vLyBSZXR1cm4gYmxlZWQgb3V0cHV0IHZhbHVlc1xuLy8gLSAkYmxlZWQ6IDxzcGFuPlxuQGZ1bmN0aW9uIGdldC1ibGVlZChcbiAgJGJsZWVkXG4pIHtcbiAgJGJsZWVkICAgIDogbWFwLW1lcmdlKChzcHJlYWQ6IHdpZGUpLCBwYXJzZS1zcGFuKCRibGVlZCkpO1xuICAkdHJibCAgICAgOiBzdXN5LWdldChzcGFuLCAkYmxlZWQpO1xuICAkc2hvcnQgICAgOiBudWxsO1xuICAkb3V0cHV0ICAgOiAoKTtcblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIGxlbmd0aCgkdHJibCkge1xuICAgICR0aGlzOiBudGgoJHRyYmwsICRpKTtcbiAgICAkbmV3OiAoKTtcbiAgICAkbWFyZ2luOiBudWxsO1xuICAgICRwYWRkaW5nOiBudWxsO1xuICAgICRwYWRkaW5nLXg6IG51bGw7XG5cbiAgICBAaWYgJHRoaXMgPiAwIHtcbiAgICAgICR0aGlzOiBtYXAtbWVyZ2UoJGJsZWVkLCAoc3BhbjogJHRoaXMpKTtcbiAgICAgICRtYXJnaW46IHNwYW4oJHRoaXMpO1xuICAgICAgJHBhZGRpbmc6ICRtYXJnaW47XG4gICAgICAkcGFkZGluZy14OiAkcGFkZGluZztcbiAgICB9XG5cbiAgICBAaWYgJG1hcmdpbiBhbmQgJG1hcmdpbiA+IDAge1xuICAgICAgJG1hcmdpbjogLSAkbWFyZ2luO1xuXG4gICAgICBAaWYgaXMtaW5zaWRlKCR0aGlzKSB7XG4gICAgICAgICRndXR0ZXI6IGd1dHRlcigkdGhpcyk7XG4gICAgICAgICRqb2luOiBpZigkZ3V0dGVyIGFuZCBjb21wYXJhYmxlKCRwYWRkaW5nLCAkZ3V0dGVyKSwgdHJ1ZSwgZmFsc2UpO1xuICAgICAgICAkcGFkZGluZy14OiBpZigkam9pbiBhbmQgJHBhZGRpbmcgPiAwLCAkcGFkZGluZyArICRndXR0ZXIsICRwYWRkaW5nKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJGkgPT0gMSB7XG4gICAgICAkbmV3OiAoXG4gICAgICAgIG1hcmdpbi10b3A6ICRtYXJnaW4sXG4gICAgICAgIHBhZGRpbmctdG9wOiAkcGFkZGluZyxcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkbWFyZ2luLFxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkcGFkZGluZy14LFxuICAgICAgICBtYXJnaW4tYm90dG9tOiAkbWFyZ2luLFxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogJHBhZGRpbmcsXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAkbWFyZ2luLFxuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRwYWRkaW5nLXgsXG4gICAgICApO1xuICAgIH0gQGVsc2UgaWYgJGkgPT0gMiB7XG4gICAgICAkbmV3OiAoXG4gICAgICAgIG1hcmdpbi1yaWdodDogJG1hcmdpbixcbiAgICAgICAgcGFkZGluZy1yaWdodDogJHBhZGRpbmcteCxcbiAgICAgICAgbWFyZ2luLWxlZnQ6ICRtYXJnaW4sXG4gICAgICAgIHBhZGRpbmctbGVmdDogJHBhZGRpbmcteCxcbiAgICAgICk7XG4gICAgfSBAZWxzZSBpZiAkaSA9PSAzIHtcbiAgICAgICRuZXc6IChcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJG1hcmdpbixcbiAgICAgICAgcGFkZGluZy1ib3R0b206ICRwYWRkaW5nLFxuICAgICAgKTtcbiAgICB9IEBlbHNlIGlmICRpID09IDQge1xuICAgICAgJG5ldzogKFxuICAgICAgICBtYXJnaW4tbGVmdDogJG1hcmdpbixcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkcGFkZGluZy14LFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAkb3V0cHV0OiBtYXAtbWVyZ2UoJG91dHB1dCwgJG5ldyk7XG4gIH1cblxuICBAZWFjaCAkcHJvcCwgJHZhbHVlIGluICRvdXRwdXQge1xuICAgICRvdXRwdXQ6IGlmKCR2YWx1ZSA9PSAwLCBtYXAtbWVyZ2UoJG91dHB1dCwgKCRwcm9wOiBudWxsKSksICRvdXRwdXQpO1xuICB9XG5cbiAgQHJldHVybiBibGVlZC1zaG9ydGhhbmQoJG91dHB1dCk7XG59XG5cbi8vIEJsZWVkIFNob3J0aGFuZFxuLy8gLS0tLS0tLS0tLS0tLS0tXG4vLyBDb252ZXJ0IGJsZWVkIG91dHB1dCBpbnRvIHNob3J0aGFuZCB3aGVuIHBvc3NpYmxlLlxuLy8gLSAkYmxlZWQ6IDxvdXRwdXQgbWFwPlxuQGZ1bmN0aW9uIGJsZWVkLXNob3J0aGFuZChcbiAgJGJsZWVkXG4pIHtcbiAgJG1hcmdpbjogKCk7XG4gICRwYWRkaW5nOiAoKTtcbiAgJHJldHVybjogKCk7XG5cbiAgQGVhY2ggJGtleSwgJHZhbHVlIGluICRibGVlZCB7XG4gICAgQGlmIHN0ci1pbmRleCgka2V5LCBtYXJnaW4pIHtcbiAgICAgICRtYXJnaW46IG1hcC1tZXJnZSgkbWFyZ2luLCAoJGtleTogJHZhbHVlKSk7XG4gICAgfSBAZWxzZSBpZiBzdHItaW5kZXgoJGtleSwgcGFkZGluZykgPiAwIHtcbiAgICAgICRwYWRkaW5nOiBtYXAtbWVyZ2UoJHBhZGRpbmcsICgka2V5OiAkdmFsdWUpKTtcbiAgICB9XG4gIH1cblxuICAkcHJvcHM6IChcbiAgICBtYXJnaW46ICRtYXJnaW4sXG4gICAgcGFkZGluZzogJHBhZGRpbmcsXG4gICk7XG5cbiAgQGVhY2ggJG5hbWUsICRtYXAgaW4gJHByb3BzIHtcbiAgICAkZm91cjogaWYobGVuZ3RoKG1hcC1rZXlzKCRtYXApKSA9PSA0LCB0cnVlLCBmYWxzZSk7XG4gICAgJG51bGw6IGlmKGluZGV4KG1hcC12YWx1ZXMoJG1hcCksIG51bGwpLCB0cnVlLCBmYWxzZSk7XG5cbiAgICBAaWYgJGZvdXIgYW5kIG5vdCgkbnVsbCkge1xuICAgICAgJHRvcDogbWFwLWdldCgkbWFwLCAnI3skbmFtZX0tdG9wJyk7XG4gICAgICAkcmlnaHQ6IG1hcC1nZXQoJG1hcCwgJyN7JG5hbWV9LXJpZ2h0Jyk7XG4gICAgICAkYm90dG9tOiBtYXAtZ2V0KCRtYXAsICcjeyRuYW1lfS1ib3R0b20nKTtcbiAgICAgICRsZWZ0OiBtYXAtZ2V0KCRtYXAsICcjeyRuYW1lfS1sZWZ0Jyk7XG5cbiAgICAgICR0YjogaWYoJHRvcCA9PSAkYm90dG9tLCAkdG9wLCBudWxsKTtcbiAgICAgICRybDogaWYoJHJpZ2h0ID09ICRsZWZ0LCAkcmlnaHQsIG51bGwpO1xuICAgICAgJGFsbDogaWYoJHRiID09ICRybCwgJHRiLCBudWxsKTtcblxuICAgICAgJG5ldzogaWYoJGFsbCwgJGFsbCwgbnVsbCk7XG5cbiAgICAgIEBpZiBub3QoJG5ldykge1xuICAgICAgICBAaWYgJHRiIGFuZCAkcmwge1xuICAgICAgICAgICRuZXc6ICR0YiAkcmw7XG4gICAgICAgIH0gQGVsc2UgaWYgJHJsIHtcbiAgICAgICAgICAkbmV3OiAkdG9wICRybCAkYm90dG9tO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAkbmV3OiAkdG9wICRyaWdodCAkYm90dG9tICRsZWZ0O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICRyZXR1cm46IG1hcC1tZXJnZSgkcmV0dXJuLCAoJG5hbWU6ICRuZXcpKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRyZXR1cm46IG1hcC1tZXJnZSgkcmV0dXJuLCAkbWFwKTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRyZXR1cm47XG59XG4iLCIvLyBCcmVha3BvaW50IEludGVncmF0aW9uXG4vLyA9PT09PT09PT09PT09PT09PT09PT09XG5cbiRzdXN5LW1lZGlhOiAoKSAhZGVmYXVsdDtcbiRzdXN5LW1lZGlhLWZhbGxiYWNrOiBmYWxzZSAhZGVmYXVsdDtcblxuJF9zdXN5LW1lZGlhLWNvbnRleHQ6ICgpO1xuXG5cbi8vIFN1c3kgQnJlYWtwb2ludFxuLy8gLS0tLS0tLS0tLS0tLS0tXG4vLyBDaGFuZ2UgZ3JpZHMgYXQgZGlmZmVyZW50IG1lZGlhIHF1ZXJ5IGJyZWFrcG9pbnRzLlxuLy8gLSAkcXVlcnkgICAgIDogPG1pbi13aWR0aD4gWzxtYXgtd2lkdGg+XSB8IDxwcm9wZXJ0eT4gPHZhbHVlPiB8IDxtYXA+XG4vLyAtICRsYXlvdXQgICAgOiA8c2V0dGluZ3M+XG4vLyAtICRuby1xdWVyeSAgOiA8Ym9vbGVhbj4gfCA8c2VsZWN0b3I+XG5AbWl4aW4gc3VzeS1icmVha3BvaW50KFxuICAkcXVlcnksXG4gICRsYXlvdXQ6IGZhbHNlLFxuICAkbm8tcXVlcnk6ICRzdXN5LW1lZGlhLWZhbGxiYWNrXG4pIHtcbiAgQGluY2x1ZGUgc3VzeS1tZWRpYS1yb3V0ZXIoJHF1ZXJ5LCAkbm8tcXVlcnkpIHtcbiAgICBAaWYgJGxheW91dCB7XG4gICAgICBAaW5jbHVkZSB3aXRoLWxheW91dCgkbGF5b3V0KSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8gU3VzeSBNZWRpYVxuLy8gLS0tLS0tLS0tLVxuLy8gLSAkcXVlcnk6IDxtaW4td2lkdGg+IFs8bWF4LXdpZHRoPl0gfCA8cHJvcGVydHk+IDx2YWx1ZT5cbi8vIC0gJG5vLXF1ZXJ5OiA8Ym9vbGVhbj4gfCA8c2VsZWN0b3I+XG5AbWl4aW4gc3VzeS1tZWRpYShcbiAgJHF1ZXJ5LFxuICAkbm8tcXVlcnk6ICRzdXN5LW1lZGlhLWZhbGxiYWNrXG4pIHtcbiAgJG9sZC1jb250ZXh0OiAkX3N1c3ktbWVkaWEtY29udGV4dDtcbiAgJG5hbWU6IGlmKG1hcC1oYXMta2V5KCRzdXN5LW1lZGlhLCAkcXVlcnkpLCAkcXVlcnksIG51bGwpO1xuICAkcXVlcnk6IHN1c3ktZ2V0LW1lZGlhKCRxdWVyeSk7XG4gICRxdWVyeTogc3VzeS1wYXJzZS1tZWRpYSgkcXVlcnkpO1xuXG4gIEBpbmNsdWRlIHN1c3ktbWVkaWEtY29udGV4dCgkcXVlcnksICRuYW1lKTtcblxuICBAaWYgJG5vLXF1ZXJ5IGFuZCB0eXBlLW9mKCRuby1xdWVyeSkgIT0gc3RyaW5nIHtcbiAgICBAY29udGVudDtcbiAgfSBAZWxzZSB7XG4gICAgQG1lZGlhICN7c3VzeS1yZW5kZXItbWVkaWEoJHF1ZXJ5KX0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuXG4gICAgQGlmIHR5cGUtb2YoJG5vLXF1ZXJ5KSA9PSBzdHJpbmcge1xuICAgICAgI3skbm8tcXVlcnl9ICYge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBzdXN5LW1lZGlhLWNvbnRleHQoJG9sZC1jb250ZXh0LCAkY2xlYW46IHRydWUpO1xufVxuXG5cbi8vIE1lZGlhIFJvdXRlclxuLy8gLS0tLS0tLS0tLS0tXG4vLyBSb3V0IG1lZGlhIGFyZ3VtZW50cyB0byB0aGUgY29ycmVjdCBtaXhpbi5cbkBtaXhpbiBzdXN5LW1lZGlhLXJvdXRlcihcbiAgJHF1ZXJ5LFxuICAkbm8tcXVlcnk6ICRzdXN5LW1lZGlhLWZhbGxiYWNrXG4pIHtcbiAgQGlmIHN1c3ktc3VwcG9ydChicmVha3BvaW50LCAobWl4aW46IGJyZWFrcG9pbnQpLCAkd2FybjogZmFsc2UpIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRxdWVyeSwgJG5vLXF1ZXJ5KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBpbmNsdWRlIHN1c3ktbWVkaWEoJHF1ZXJ5LCAkbm8tcXVlcnkpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIFVwZGF0ZSBDb250ZXh0XG4vLyAtLS0tLS0tLS0tLS0tXG4vLyBTZXQgdGhlIG5ldyBtZWRpYSBjb250ZXh0XG5AbWl4aW4gc3VzeS1tZWRpYS1jb250ZXh0KFxuICAkcXVlcnksXG4gICRuYW1lOiBudWxsLFxuICAkY2xlYW46IGZhbHNlXG4pIHtcbiAgJHF1ZXJ5OiBtYXAtbWVyZ2UoKG5hbWU6ICRuYW1lKSwgJHF1ZXJ5KTtcblxuICBAaWYgJGNsZWFuIHtcbiAgICAkX3N1c3ktbWVkaWEtY29udGV4dDogJHF1ZXJ5ICFnbG9iYWw7XG4gIH0gQGVsc2Uge1xuICAgICRfc3VzeS1tZWRpYS1jb250ZXh0OiBtYXAtbWVyZ2UoJF9zdXN5LW1lZGlhLWNvbnRleHQsICRxdWVyeSkgIWdsb2JhbDtcbiAgfVxufVxuXG5cbi8vIE1lZGlhIENvbnRleHRcbi8vIC0tLS0tLS0tLS0tLS1cbi8vIFJldHVybiB0aGUgZnVsbCBtZWRpYSBjb250ZXh0LCBvciBhIHNpbmdsZSBtZWRpYSBwcm9wZXJ0eSAoZS5nLiBtaW4td2lkdGgpXG5AZnVuY3Rpb24gc3VzeS1tZWRpYS1jb250ZXh0KFxuICAkcHJvcGVydHk6IGZhbHNlXG4pIHtcbiAgQGlmICRwcm9wZXJ0eSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRfc3VzeS1tZWRpYS1jb250ZXh0LCAkcHJvcGVydHkpO1xuICB9IEBlbHNlIHtcbiAgICBAcmV0dXJuICRfc3VzeS1tZWRpYS1jb250ZXh0O1xuICB9XG59XG5cblxuLy8gR2V0IE1lZGlhXG4vLyAtLS0tLS0tLS1cbi8vIFJldHVybiBhIG5hbWVkIG1lZGlhLXF1ZXJ5IGZyb20gJHN1c3ktbWVkaWEuXG4vLyAtICRuYW1lOiA8a2V5PlxuQGZ1bmN0aW9uIHN1c3ktZ2V0LW1lZGlhKFxuICAkbmFtZVxuKSB7XG4gIEBpZiBtYXAtaGFzLWtleSgkc3VzeS1tZWRpYSwgJG5hbWUpIHtcbiAgICAkbWFwLXZhbHVlOiBtYXAtZ2V0KCRzdXN5LW1lZGlhLCAkbmFtZSk7XG4gICAgQGlmICgkbmFtZSA9PSAkbWFwLXZhbHVlKSB7XG4gICAgICAkbmFtZTogJG1hcC12YWx1ZTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRuYW1lOiBzdXN5LWdldC1tZWRpYSgkbWFwLXZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRuYW1lO1xufVxuXG5cbi8vIFJlbmRlciBNZWRpYVxuLy8gLS0tLS0tLS0tLS0tXG4vLyBCdWlsZCBhIG1lZGlhLXF1ZXJ5IHN0cmluZyBmcm9tIHZhcmlvdXMgbWVkaWEgc2V0dGluZ3NcbkBmdW5jdGlvbiBzdXN5LXJlbmRlci1tZWRpYShcbiAgJHF1ZXJ5XG4pIHtcbiAgJG91dHB1dDogbnVsbDtcbiAgQGVhY2ggJHByb3BlcnR5LCAkdmFsdWUgaW4gJHF1ZXJ5IHtcbiAgICAkc3RyaW5nOiBudWxsO1xuXG4gICAgQGlmICRwcm9wZXJ0eSA9PSBtZWRpYSB7XG4gICAgICAkc3RyaW5nOiAkdmFsdWU7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkc3RyaW5nOiAnKCN7JHByb3BlcnR5fTogI3skdmFsdWV9KSc7XG4gICAgfVxuXG4gICAgJG91dHB1dDogaWYoJG91dHB1dCwgJyN7JG91dHB1dH0gYW5kICN7JHN0cmluZ30nLCAkc3RyaW5nKTtcbiAgfVxuXG4gIEByZXR1cm4gJG91dHB1dDtcbn1cblxuXG4vLyBQYXJzZSBNZWRpYVxuLy8gLS0tLS0tLS0tLS1cbi8vIFJldHVybiBwYXJzZWQgbWVkaWEtcXVlcnkgc2V0dGluZ3MgYmFzZWQgb24gc2hvcnRoYW5kXG5AZnVuY3Rpb24gc3VzeS1wYXJzZS1tZWRpYShcbiAgJHF1ZXJ5XG4pIHtcbiAgJG1xOiBudWxsO1xuICBAaWYgdHlwZS1vZigkcXVlcnkpID09IG1hcCB7XG4gICAgJG1xOiAkcXVlcnk7XG4gIH0gQGVsc2UgaWYgdHlwZS1vZigkcXVlcnkpID09IG51bWJlciB7XG4gICAgJG1xOiAobWluLXdpZHRoOiAkcXVlcnkpO1xuICB9IEBlbHNlIGlmIHR5cGUtb2YoJHF1ZXJ5KSA9PSBsaXN0IGFuZCBsZW5ndGgoJHF1ZXJ5KSA9PSAyIHtcbiAgICBAaWYgdHlwZS1vZihudGgoJHF1ZXJ5LCAxKSkgPT0gbnVtYmVyIHtcbiAgICAgICRtcTogKFxuICAgICAgICBtaW4td2lkdGg6IG1pbigkcXVlcnkuLi4pLFxuICAgICAgICBtYXgtd2lkdGg6IG1heCgkcXVlcnkuLi4pLFxuICAgICAgKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRtcTogKG50aCgkcXVlcnksIDEpOiBudGgoJHF1ZXJ5LCAyKSk7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICAkbXE6IChtZWRpYTogJyN7JHF1ZXJ5fScpO1xuICB9XG5cbiAgQHJldHVybiAkbXE7XG59XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIERlZmF1bHQgVmFyaWFibGVzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRCcmVha3BvaW50LVNldHRpbmdzOiAoXG4gICdkZWZhdWx0IG1lZGlhJzogYWxsLFxuICAnZGVmYXVsdCBmZWF0dXJlJzogbWluLXdpZHRoLFxuICAnZGVmYXVsdCBwYWlyJzogd2lkdGgsXG5cbiAgJ2ZvcmNlIGFsbCBtZWRpYSB0eXBlJzogZmFsc2UsXG4gICd0byBlbXMnOiBmYWxzZSxcbiAgJ3RyYW5zZm9ybSByZXNvbHV0aW9ucyc6IHRydWUsXG5cbiAgJ25vIHF1ZXJpZXMnOiBmYWxzZSxcbiAgJ25vIHF1ZXJ5IGZhbGxiYWNrcyc6IGZhbHNlLFxuXG4gICdiYXNlIGZvbnQgc2l6ZSc6IDE2cHgsXG5cbiAgJ2xlZ2FjeSBzeW50YXgnOiBmYWxzZVxuKTtcblxuJGJyZWFrcG9pbnQ6ICgpICFkZWZhdWx0O1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEltcG9ydHNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCBcImJyZWFrcG9pbnQvc2V0dGluZ3NcIjtcbkBpbXBvcnQgJ2JyZWFrcG9pbnQvY29udGV4dCc7XG5AaW1wb3J0ICdicmVha3BvaW50L2hlbHBlcnMnO1xuQGltcG9ydCAnYnJlYWtwb2ludC9wYXJzZXJzJztcbkBpbXBvcnQgJ2JyZWFrcG9pbnQvbm8tcXVlcnknO1xuXG5AaW1wb3J0ICdicmVha3BvaW50L3Jlc3BvbmQtdG8nO1xuXG5AaW1wb3J0IFwiYnJlYWtwb2ludC9sZWdhY3ktc2V0dGluZ3NcIjtcblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBCcmVha3BvaW50IE1peGluXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQG1peGluIGJyZWFrcG9pbnQoJHF1ZXJ5LCAkbm8tcXVlcnk6IGZhbHNlKSB7XG4gIEBpbmNsdWRlIGxlZ2FjeS1zZXR0aW5ncy13YXJuaW5nO1xuXG4gIC8vIFJlc2V0IGNvbnRleHRzXG4gIEBpbmNsdWRlIHByaXZhdGUtYnJlYWtwb2ludC1yZXNldC1jb250ZXh0cygpO1xuXG4gICRicmVha3BvaW50OiBicmVha3BvaW50KCRxdWVyeSwgZmFsc2UpO1xuXG4gICRxdWVyeS1zdHJpbmc6IG1hcC1nZXQoJGJyZWFrcG9pbnQsICdxdWVyeScpO1xuICAkcXVlcnktZmFsbGJhY2s6IG1hcC1nZXQoJGJyZWFrcG9pbnQsICdmYWxsYmFjaycpO1xuXG4gICRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXI6IG1hcC1nZXQoJGJyZWFrcG9pbnQsICdjb250ZXh0IGhvbGRlcicpICFnbG9iYWw7XG4gICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQ6IG1hcC1nZXQoJGJyZWFrcG9pbnQsICdxdWVyeSBjb3VudCcpICFnbG9iYWw7XG5cbiAgLy8gQWxsb3cgZm9yIGFuIGFzLW5lZWRlZCBvdmVycmlkZSBvciB1c2FnZSBvZiBubyBxdWVyeSBmYWxsYmFjay5cbiAgQGlmICRuby1xdWVyeSAhPSBmYWxzZSB7XG4gICAgJHF1ZXJ5LWZhbGxiYWNrOiAkbm8tcXVlcnk7XG4gIH1cblxuICBAaWYgJHF1ZXJ5LWZhbGxiYWNrICE9IGZhbHNlIHtcbiAgICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dCgnbm8tcXVlcnknLCAkcXVlcnktZmFsbGJhY2spO1xuICB9XG5cbiAgLy8gUHJpbnQgT3V0IFF1ZXJ5IFN0cmluZ1xuICBAaWYgbm90IGJyZWFrcG9pbnQtZ2V0KCdubyBxdWVyaWVzJykge1xuICAgIEBtZWRpYSAjeyRxdWVyeS1zdHJpbmd9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuXG4gIEBpZiBicmVha3BvaW50LWdldCgnbm8gcXVlcnkgZmFsbGJhY2tzJykgIT0gZmFsc2Ugb3IgYnJlYWtwb2ludC1nZXQoJ25vIHF1ZXJpZXMnKSA9PSB0cnVlIHtcblxuICAgICR0eXBlOiB0eXBlLW9mKGJyZWFrcG9pbnQtZ2V0KCdubyBxdWVyeSBmYWxsYmFja3MnKSk7XG4gICAgJHByaW50OiBmYWxzZTtcblxuICAgIEBpZiAoJHR5cGUgPT0gJ2Jvb2wnKSB7XG4gICAgICAkcHJpbnQ6IHRydWU7XG4gICAgfVxuICAgIEBlbHNlIGlmICgkdHlwZSA9PSAnc3RyaW5nJykge1xuICAgICAgQGlmICRxdWVyeS1mYWxsYmFjayA9PSBicmVha3BvaW50LWdldCgnbm8gcXVlcnkgZmFsbGJhY2tzJykge1xuICAgICAgICAkcHJpbnQ6IHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIGlmICgkdHlwZSA9PSAnbGlzdCcpIHtcbiAgICAgIEBlYWNoICR3cmFwcGVyIGluIGJyZWFrcG9pbnQtZ2V0KCdubyBxdWVyeSBmYWxsYmFja3MnKSB7XG4gICAgICAgIEBpZiAkcXVlcnktZmFsbGJhY2sgPT0gJHdyYXBwZXIge1xuICAgICAgICAgICRwcmludDogdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFdyaXRlIEZhbGxiYWNrXG4gICAgQGlmICgkcXVlcnktZmFsbGJhY2sgIT0gZmFsc2UpIGFuZCAoJHByaW50ID09IHRydWUpIHtcbiAgICAgICR0eXBlLWZhbGxiYWNrOiB0eXBlLW9mKCRxdWVyeS1mYWxsYmFjayk7XG5cbiAgICAgIEBpZiAoJHR5cGUtZmFsbGJhY2sgIT0gJ2Jvb2wnKSB7XG4gICAgICAgICN7JHF1ZXJ5LWZhbGxiYWNrfSAmIHtcbiAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBwcml2YXRlLWJyZWFrcG9pbnQtcmVzZXQtY29udGV4dHMoKTtcbn1cblxuXG5AbWl4aW4gbXEoJHF1ZXJ5LCAkbm8tcXVlcnk6IGZhbHNlKSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHF1ZXJ5LCAkbm8tcXVlcnkpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBIYXMgU2V0dGluZ1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1oYXMoJHNldHRpbmcpIHtcbiAgQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50LCAkc2V0dGluZykge1xuICAgIEByZXR1cm4gdHJ1ZTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEdldCBTZXR0aW5nc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1nZXQoJHNldHRpbmcpIHtcbiAgQGlmIGJyZWFrcG9pbnQtaGFzKCRzZXR0aW5nKSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRicmVha3BvaW50LCAkc2V0dGluZyk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gbWFwLWdldCgkQnJlYWtwb2ludC1TZXR0aW5ncywgJHNldHRpbmcpO1xuICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gU2V0IFNldHRpbmdzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBicmVha3BvaW50LXNldCgkc2V0dGluZywgJHZhbHVlKSB7XG4gIEBpZiAoc3RyLWluZGV4KCRzZXR0aW5nLCAnLScpIG9yIHN0ci1pbmRleCgkc2V0dGluZywgJ18nKSkgYW5kIHN0ci1pbmRleCgkc2V0dGluZywgJyAnKSA9PSBudWxsIHtcbiAgICBAd2FybiBcIldvcmRzIGluIEJyZWFrcG9pbnQgc2V0dGluZ3Mgc2hvdWxkIGJlIHNlcGFyYXRlZCBieSBzcGFjZXMsIG5vdCBkYXNoZXMgb3IgdW5kZXJzY29yZXMuIFBsZWFzZSByZXBsYWNlIGRhc2hlcyBhbmQgdW5kZXJzY29yZXMgYmV0d2VlbiB3b3JkcyB3aXRoIHNwYWNlcy4gU2V0dGluZ3Mgd2lsbCBub3Qgd29yayBhcyBleHBlY3RlZCB1bnRpbCBjaGFuZ2VkLlwiO1xuICB9XG4gICRicmVha3BvaW50OiBtYXAtbWVyZ2UoJGJyZWFrcG9pbnQsICgkc2V0dGluZzogJHZhbHVlKSkgIWdsb2JhbDtcbiAgQHJldHVybiB0cnVlO1xufVxuXG5AbWl4aW4gYnJlYWtwb2ludC1jaGFuZ2UoJHNldHRpbmcsICR2YWx1ZSkge1xuICAkYnJlYWtwb2ludC1jaGFuZ2U6IGJyZWFrcG9pbnQtc2V0KCRzZXR0aW5nLCAkdmFsdWUpO1xufVxuXG5AbWl4aW4gYnJlYWtwb2ludC1zZXQoJHNldHRpbmcsICR2YWx1ZSkge1xuICBAaW5jbHVkZSBicmVha3BvaW50LWNoYW5nZSgkc2V0dGluZywgJHZhbHVlKTtcbn1cblxuQG1peGluIGJrcHQtY2hhbmdlKCRzZXR0aW5nLCAkdmFsdWUpIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludC1jaGFuZ2UoJHNldHRpbmcsICR2YWx1ZSk7XG59XG5AbWl4aW4gYmtwdC1zZXQoJHNldHRpbmcsICR2YWx1ZSkge1xuICBAaW5jbHVkZSBicmVha3BvaW50LWNoYW5nZSgkc2V0dGluZywgJHZhbHVlKTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBSZW1vdmUgU2V0dGluZ1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1yZXNldCgkc2V0dGluZ3MuLi4pIHtcbiAgQGlmIGxlbmd0aCgkc2V0dGluZ3MpID09IDEge1xuICAgICRzZXR0aW5nczogbnRoKCRzZXR0aW5ncywgMSk7XG4gIH1cblxuICBAZWFjaCAkc2V0dGluZyBpbiAkc2V0dGluZ3Mge1xuICAgICRicmVha3BvaW50OiBtYXAtcmVtb3ZlKCRicmVha3BvaW50LCAkc2V0dGluZykgIWdsb2JhbDtcbiAgfVxuICBAcmV0dXJuIHRydWU7XG59XG5cbkBtaXhpbiBicmVha3BvaW50LXJlc2V0KCRzZXR0aW5ncy4uLikge1xuICAkYnJlYWtwb2ludC1yZXNldDogYnJlYWtwb2ludC1yZXNldCgkc2V0dGluZ3MpO1xufVxuXG5AbWl4aW4gYmtwdC1yZXNldCgkc2V0dGluZ3MuLi4pIHtcbiAgJGJyZWFrcG9pbnQtcmVzZXQ6IGJyZWFrcG9pbnQtcmVzZXQoJHNldHRpbmdzKTtcbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFByaXZhdGUgQnJlYWtwb2ludCBWYXJpYWJsZXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcjogKCk7XG4kcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50OiAwICFkZWZhdWx0O1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEJyZWFrcG9pbnQgSGFzIENvbnRleHRcbi8vIFJldHVybnMgd2hldGhlciBvciBub3QgeW91IGFyZSBpbnNpZGUgYSBCcmVha3BvaW50IHF1ZXJ5XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBicmVha3BvaW50LWhhcy1jb250ZXh0KCkge1xuICBAaWYgbGVuZ3RoKCRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQpIHtcbiAgICBAcmV0dXJuIHRydWU7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBCcmVha3BvaW50IEdldCBDb250ZXh0XG4vLyAkZmVhdHVyZTogSW5wdXQgZmVhdHVyZSB0byBnZXQgaXQncyBjdXJyZW50IE1RIGNvbnRleHQuIFJldHVybnMgZmFsc2UgaWYgbm8gY29udGV4dFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1nZXQtY29udGV4dCgkZmVhdHVyZSkge1xuICBAaWYgbWFwLWhhcy1rZXkoJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlciwgJGZlYXR1cmUpIHtcbiAgICAkZ2V0OiBtYXAtZ2V0KCRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXIsICRmZWF0dXJlKTtcbiAgICAvLyBTcGVjaWFsIGhhbmRsaW5nIG9mIG5vLXF1ZXJ5IGZyb20gZ2V0IHNpZGUgc28gL2ZhbHNlLyBwcmVwZW5kcyBhcmVuJ3QgcmV0dXJuZWRcbiAgICBAaWYgJGZlYXR1cmUgPT0gJ25vLXF1ZXJ5JyB7XG4gICAgICBAaWYgdHlwZS1vZigkZ2V0KSA9PSAnbGlzdCcgYW5kIGxlbmd0aCgkZ2V0KSA+IDEgYW5kIG50aCgkZ2V0LCAxKSA9PSBmYWxzZSB7XG4gICAgICAgICRnZXQ6IG50aCgkZ2V0LCBsZW5ndGgoJGdldCkpO1xuICAgICAgfVxuICAgIH1cbiAgICBAcmV0dXJuICRnZXQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpZiBicmVha3BvaW50LWhhcy1jb250ZXh0KCkgYW5kICRmZWF0dXJlID09ICdtZWRpYScge1xuICAgICAgQHJldHVybiBicmVha3BvaW50LWdldCgnZGVmYXVsdCBtZWRpYScpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFByaXZhdGUgZnVuY3Rpb24gdG8gc2V0IGNvbnRleHRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dCgkZmVhdHVyZSwgJHZhbHVlKSB7XG4gIEBpZiAkdmFsdWUgPT0gJ21vbm9jaHJvbWUnIHtcbiAgICAkZmVhdHVyZTogJ21vbm9jaHJvbWUnO1xuICB9XG5cbiAgJGN1cnJlbnQ6IG1hcC1nZXQoJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlciwgJGZlYXR1cmUpO1xuICBAaWYgJGN1cnJlbnQgYW5kIGxlbmd0aCgkY3VycmVudCkgPT0gJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudCB7XG4gICAgQHdhcm4gXCJZb3UgaGF2ZSBhbHJlYWR5IHF1ZXJpZWQgYWdhaW5zdCBgI3skZmVhdHVyZX1gLiBVbmV4cGVjdGVkIHRoaW5ncyBtYXkgaGFwcGVuIGlmIHlvdSBxdWVyeSBhZ2FpbnN0IHRoZSBzYW1lIGZlYXR1cmUgbW9yZSB0aGFuIG9uY2UgaW4gdGhlIHNhbWUgYGFuZGAgcXVlcnkuIEJyZWFrcG9pbnQgaXMgb3ZlcndyaXRpbmcgdGhlIGN1cnJlbnQgY29udGV4dCB3aXRoIGAjeyR2YWx1ZX1gXCI7XG4gIH1cblxuICBAaWYgbm90IG1hcC1oYXMta2V5KCRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXIsICRmZWF0dXJlKSB7XG4gICAgJHYtaG9sZGVyOiAoKTtcbiAgICBAZm9yICRpIGZyb20gMSB0byAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50IHtcbiAgICAgIEBpZiAkZmVhdHVyZSA9PSAnbWVkaWEnIHtcbiAgICAgICAgJHYtaG9sZGVyOiBhcHBlbmQoJHYtaG9sZGVyLCBicmVha3BvaW50LWdldCgnZGVmYXVsdCBtZWRpYScpKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJHYtaG9sZGVyOiBhcHBlbmQoJHYtaG9sZGVyLCBmYWxzZSk7XG4gICAgICB9XG4gICAgfVxuICAgICR2LWhvbGRlcjogYXBwZW5kKCR2LWhvbGRlciwgJHZhbHVlKTtcbiAgICAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyOiBtYXAtbWVyZ2UoJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlciwgKCRmZWF0dXJlOiAkdi1ob2xkZXIpKSAhZ2xvYmFsO1xuICB9XG4gIEBlbHNlIHtcbiAgICAkdi1ob2xkZXI6IG1hcC1nZXQoJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlciwgJGZlYXR1cmUpO1xuICAgICRsZW5ndGg6IGxlbmd0aCgkdi1ob2xkZXIpO1xuICAgIEBmb3IgJGkgZnJvbSAkbGVuZ3RoIHRvICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQgLSAxIHtcbiAgICAgIEBpZiAkZmVhdHVyZSA9PSAnbWVkaWEnIHtcbiAgICAgICAgJHYtaG9sZGVyOiBhcHBlbmQoJHYtaG9sZGVyLCBicmVha3BvaW50LWdldCgnZGVmYXVsdCBtZWRpYScpKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJHYtaG9sZGVyOiBhcHBlbmQoJHYtaG9sZGVyLCBmYWxzZSk7XG4gICAgICB9XG4gICAgfVxuICAgICR2LWhvbGRlcjogYXBwZW5kKCR2LWhvbGRlciwgJHZhbHVlKTtcbiAgICAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyOiBtYXAtbWVyZ2UoJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlciwgKCRmZWF0dXJlOiAkdi1ob2xkZXIpKSAhZ2xvYmFsO1xuICB9XG5cbiAgQHJldHVybiB0cnVlO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFByaXZhdGUgZnVuY3Rpb24gdG8gcmVzZXQgY29udGV4dFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AbWl4aW4gcHJpdmF0ZS1icmVha3BvaW50LXJlc2V0LWNvbnRleHRzIHtcbiAgJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcjogKCkgIWdsb2JhbDtcbiAgJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudDogMCAhZ2xvYmFsO1xufSIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQ29udmVydHMgdGhlIGlucHV0IHZhbHVlIHRvIEJhc2UgRU1zXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBicmVha3BvaW50LXRvLWJhc2UtZW0oJHZhbHVlKSB7XG4gICR2YWx1ZS11bml0OiB1bml0KCR2YWx1ZSk7XG5cbiAgLy8gV2lsbCBjb252ZXJ0IHJlbGF0aXZlIEVNcyBpbnRvIHJvb3QgRU1zLlxuICBAaWYgYnJlYWtwb2ludC1nZXQoJ2Jhc2UgZm9udCBzaXplJykgYW5kIHR5cGUtb2YoYnJlYWtwb2ludC1nZXQoJ2Jhc2UgZm9udCBzaXplJykpID09ICdudW1iZXInIGFuZCAkdmFsdWUtdW5pdCA9PSAnZW0nIHtcbiAgICAkYmFzZS11bml0OiB1bml0KGJyZWFrcG9pbnQtZ2V0KCdiYXNlIGZvbnQgc2l6ZScpKTtcblxuICAgIEBpZiAkYmFzZS11bml0ID09ICdweCcgb3IgJGJhc2UtdW5pdCA9PSAnJScgb3IgJGJhc2UtdW5pdCA9PSAnZW0nIG9yICRiYXNlLXVuaXQgPT0gJ3B0JyB7XG4gICAgICBAcmV0dXJuIGJhc2UtY29udmVyc2lvbigkdmFsdWUpIC8gYmFzZS1jb252ZXJzaW9uKGJyZWFrcG9pbnQtZ2V0KCdiYXNlIGZvbnQgc2l6ZScpKSAqIDFlbTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQHdhcm4gJyN7YnJlYWtwb2ludC1nZXQoXFwnYmFzZSBmb250IHNpemVcXCcpfSBpcyBub3Qgc2V0IGluIHZhbGlkIHVuaXRzIGZvciBmb250IHNpemUhJztcbiAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIGJhc2UtY29udmVyc2lvbigkdmFsdWUpO1xuICB9XG59XG5cbkBmdW5jdGlvbiBiYXNlLWNvbnZlcnNpb24oJHZhbHVlKSB7XG4gICR1bml0OiB1bml0KCR2YWx1ZSk7XG5cbiAgQGlmICR1bml0ID09ICdweCcge1xuICAgIEByZXR1cm4gJHZhbHVlIC8gMTZweCAqIDFlbTtcbiAgfVxuICBAZWxzZSBpZiAkdW5pdCA9PSAnJScge1xuICAgIEByZXR1cm4gJHZhbHVlIC8gMTAwJSAqIDFlbTtcbiAgfVxuICBAZWxzZSBpZiAkdW5pdCA9PSAnZW0nIHtcbiAgICBAcmV0dXJuICR2YWx1ZTtcbiAgfVxuICBAZWxzZSBpZiAkdW5pdCA9PSAncHQnIHtcbiAgICBAcmV0dXJuICR2YWx1ZSAvIDEycHQgKiAxZW07XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gJHZhbHVlO1xuLy8gICAgQHdhcm4gJ0V2ZXJ5dGhpbmcgaXMgdGVycmlibGUhIFdoYXQgaGF2ZSB5b3UgZG9uZT8hJztcbiAgfVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFJldHVybnMgd2hldGhlciB0aGUgZmVhdHVyZSBjYW4gaGF2ZSBhIG1pbi9tYXggcGFpclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kYnJlYWtwb2ludC1taW4tbWF4LWZlYXR1cmVzOiAnY29sb3InLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbG9yLWluZGV4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhc3BlY3QtcmF0aW8nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RldmljZS1hc3BlY3QtcmF0aW8nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RldmljZS1oZWlnaHQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RldmljZS13aWR0aCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaGVpZ2h0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtb25vY2hyb21lJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyZXNvbHV0aW9uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd3aWR0aCc7XG5cbkBmdW5jdGlvbiBicmVha3BvaW50LW1pbi1tYXgoJGZlYXR1cmUpIHtcbiAgQGVhY2ggJGl0ZW0gaW4gJGJyZWFrcG9pbnQtbWluLW1heC1mZWF0dXJlcyB7XG4gICAgQGlmICRmZWF0dXJlID09ICRpdGVtIHtcbiAgICAgIEByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cbiAgQHJldHVybiBmYWxzZTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBSZXR1cm5zIHdoZXRoZXIgdGhlIGZlYXR1cmUgY2FuIGhhdmUgYSBzdHJpbmcgdmFsdWVcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJGJyZWFrcG9pbnQtc3RyaW5nLWZlYXR1cmVzOiAgJ29yaWVudGF0aW9uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzY2FuJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb2xvcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYXNwZWN0LXJhdGlvJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZXZpY2UtYXNwZWN0LXJhdGlvJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwb2ludGVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdsdW1pbm9zaXR5JztcblxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtc3RyaW5nLXZhbHVlKCRmZWF0dXJlKSB7XG4gIEBlYWNoICRpdGVtIGluICRicmVha3BvaW50LXN0cmluZy1mZWF0dXJlcyB7XG4gICAgQGlmIGJyZWFrcG9pbnQtbWluLW1heCgkaXRlbSkge1xuICAgICAgQGlmICRmZWF0dXJlID09ICdtaW4tI3skaXRlbX0nIG9yICRmZWF0dXJlID09ICdtYXgtI3skaXRlbX0nIHtcbiAgICAgICAgQHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSBpZiAkZmVhdHVyZSA9PSAkaXRlbSB7XG4gICAgICBAcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG4gIEByZXR1cm4gZmFsc2U7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUmV0dXJucyB3aGV0aGVyIHRoZSBmZWF0dXJlIGlzIGEgbWVkaWEgdHlwZVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kYnJlYWtwb2ludC1tZWRpYS10eXBlczogICdhbGwnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAnYnJhaWxsZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdlbWJvc3NlZCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdoYW5kaGVsZCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdwcmludCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdwcm9qZWN0aW9uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NjcmVlbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdzcGVlY2gnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAndHR5JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3R2JztcblxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtaXMtbWVkaWEoJGZlYXR1cmUpIHtcbiAgQGVhY2ggJG1lZGlhIGluICRicmVha3BvaW50LW1lZGlhLXR5cGVzIHtcbiAgICBAaWYgKCRmZWF0dXJlID09ICRtZWRpYSkgb3IgKCRmZWF0dXJlID09ICdub3QgI3skbWVkaWF9Jykgb3IgKCRmZWF0dXJlID09ICdvbmx5ICN7JG1lZGlhfScpIHtcbiAgICAgIEByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIGZhbHNlO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFJldHVybnMgd2hldGhlciB0aGUgZmVhdHVyZSBjYW4gc3RhbmQgYWxvbmVcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZy1mZWF0dXJlczogJ2NvbG9yJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb2xvci1pbmRleCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZ3JpZCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbW9ub2Nocm9tZSc7XG5cbkBmdW5jdGlvbiBicmVha3BvaW50LXNpbmdsZS1zdHJpbmcoJGZlYXR1cmUpIHtcbiAgQGVhY2ggJGl0ZW0gaW4gJGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZy1mZWF0dXJlcyB7XG4gICAgQGlmICRmZWF0dXJlID09ICRpdGVtIHtcbiAgICAgIEByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cbiAgQHJldHVybiBmYWxzZTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBSZXR1cm5zIHdoZXRoZXIgdGhlIGZlYXR1cmVcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtaXMtcmVzb2x1dGlvbigkZmVhdHVyZSkge1xuICAkcmVzb2x1dGlvbnM6ICdkZXZpY2UtcGl4ZWwtcmF0aW8nLCAnZHByJztcblxuICBAaWYgYnJlYWtwb2ludC1nZXQoJ3RyYW5zZm9ybSByZXNvbHV0aW9ucycpIHtcbiAgICAkcmVzb2x1dGlvbnM6IGFwcGVuZCgkcmVzb2x1dGlvbnMsICdyZXNvbHV0aW9uJyk7XG4gIH1cblxuICBAZWFjaCAkcmVzbyBpbiAkcmVzb2x1dGlvbnMge1xuICAgIEBpZiBpbmRleCgkZmVhdHVyZSwgJHJlc28pIG9yIGluZGV4KCRmZWF0dXJlLCAnbWluLSN7JHJlc299Jykgb3IgaW5kZXgoJGZlYXR1cmUsICdtYXgtI3skcmVzb30nKSB7XG4gICAgICBAcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiBmYWxzZTtcbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSW1wb3J0IFBhcnNlciBQaWVjZXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCBcInBhcnNlcnMvcXVlcnlcIjtcbkBpbXBvcnQgXCJwYXJzZXJzL3NpbmdsZVwiO1xuQGltcG9ydCBcInBhcnNlcnMvZG91YmxlXCI7XG5AaW1wb3J0IFwicGFyc2Vycy90cmlwbGVcIjtcbkBpbXBvcnQgXCJwYXJzZXJzL3Jlc29sdXRpb25cIjtcblxuJE1lbW8tRXhpc3RzOiBmdW5jdGlvbi1leGlzdHMobWVtby1nZXQpIGFuZCBmdW5jdGlvbi1leGlzdHMobWVtby1zZXQpO1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEJyZWFrcG9pbnQgRnVuY3Rpb25cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGJyZWFrcG9pbnQoJHF1ZXJ5LCAkY29udGV4dHMuLi4pIHtcbiAgJHJ1bjogdHJ1ZTtcbiAgJHJldHVybjogKCk7XG5cbiAgLy8gR3JhYiB0aGUgTWVtbyBPdXRwdXQgaWYgTWVtb2l6YXRpb24gY2FuIGJlIGEgdGhpbmdcbiAgQGlmICRNZW1vLUV4aXN0cyB7XG4gICAgJHJldHVybjogbWVtby1nZXQoYnJlYWtwb2ludCwgYnJlYWtwb2ludCAkcXVlcnkgJGNvbnRleHRzKTtcblxuICAgIEBpZiAkcmV0dXJuICE9IG51bGwge1xuICAgICAgJHJ1bjogZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgQGlmIG5vdCAkTWVtby1FeGlzdHMgb3IgJHJ1biB7XG4gICAgLy8gSW50ZXJuYWwgVmFyaWFibGVzXG4gICAgJHF1ZXJ5LXN0cmluZzogJyc7XG4gICAgJHF1ZXJ5LWZhbGxiYWNrOiBmYWxzZTtcbiAgICAkcmV0dXJuOiAoKTtcblxuICAgIC8vIFJlc2VydmUgR2xvYmFsIFByaXZhdGUgQnJlYWtwb2ludCBDb250ZXh0XG4gICAgJGhvbGRlci1jb250ZXh0OiAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyO1xuICAgICRob2xkZXItcXVlcnktY291bnQ6ICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQ7XG5cbiAgICAvLyBSZXNldCBHbG9iYWwgUHJpdmF0ZSBCcmVha3BvaW50IENvbnRleHRcbiAgICAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyOiAoKSAhZ2xvYmFsO1xuICAgICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQ6IDAgIWdsb2JhbDtcblxuXG4gICAgLy8gVGVzdCB0byBzZWUgaWYgaXQncyBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0XG4gICAgJG9yLWxpc3Q6IGlmKGxpc3Qtc2VwYXJhdG9yKCRxdWVyeSkgPT0gJ2NvbW1hJywgdHJ1ZSwgZmFsc2UpO1xuXG5cbiAgICBAaWYgKCRvci1saXN0ID09IGZhbHNlIGFuZCBicmVha3BvaW50LWdldCgnbGVnYWN5IHN5bnRheCcpID09IGZhbHNlKSB7XG4gICAgICAkcXVlcnktc3RyaW5nOiBicmVha3BvaW50LXBhcnNlKCRxdWVyeSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICRsZW5ndGg6IGxlbmd0aCgkcXVlcnkpO1xuXG4gICAgICAkbGFzdDogbnRoKCRxdWVyeSwgJGxlbmd0aCk7XG4gICAgICAkcXVlcnktZmFsbGJhY2s6IGJyZWFrcG9pbnQtbm8tcXVlcnkoJGxhc3QpO1xuXG4gICAgICBAaWYgKCRxdWVyeS1mYWxsYmFjayAhPSBmYWxzZSkge1xuICAgICAgICAkbGVuZ3RoOiAkbGVuZ3RoIC0gMTtcbiAgICAgIH1cblxuICAgICAgQGlmIChicmVha3BvaW50LWdldCgnbGVnYWN5IHN5bnRheCcpID09IHRydWUpIHtcbiAgICAgICAgJG1xOiAoKTtcblxuICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICRtcTogYXBwZW5kKCRtcSwgbnRoKCRxdWVyeSwgJGkpLCBjb21tYSk7XG4gICAgICAgIH1cblxuICAgICAgICAkcXVlcnktc3RyaW5nOiBicmVha3BvaW50LXBhcnNlKCRtcSk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICRxdWVyeS1zdHJpbmc6ICcnO1xuICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICRxdWVyeS1zdHJpbmc6ICRxdWVyeS1zdHJpbmcgKyBpZigkaSA9PSAxLCAnJywgJywgJykgKyBicmVha3BvaW50LXBhcnNlKG50aCgkcXVlcnksICRpKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAkcmV0dXJuOiAoJ3F1ZXJ5JzogJHF1ZXJ5LXN0cmluZyxcbiAgICAgICAgJ2ZhbGxiYWNrJzogJHF1ZXJ5LWZhbGxiYWNrLFxuICAgICAgICAnY29udGV4dCBob2xkZXInOiAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLFxuICAgICAgICAncXVlcnkgY291bnQnOiAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50XG4gICAgKTtcbiAgICBAaWYgbGVuZ3RoKCRjb250ZXh0cykgPiAwIGFuZCBudGgoJGNvbnRleHRzLCAxKSAhPSBmYWxzZSB7XG4gICAgICBAaWYgJHF1ZXJ5LWZhbGxiYWNrICE9IGZhbHNlIHtcbiAgICAgICAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQoJ25vLXF1ZXJ5JywgJHF1ZXJ5LWZhbGxiYWNrKTtcbiAgICAgIH1cbiAgICAgICRjb250ZXh0LW1hcDogKCk7XG4gICAgICBAZWFjaCAkY29udGV4dCBpbiAkY29udGV4dHMge1xuICAgICAgICAkY29udGV4dC1tYXA6IG1hcC1tZXJnZSgkY29udGV4dC1tYXAsICgkY29udGV4dDogYnJlYWtwb2ludC1nZXQtY29udGV4dCgkY29udGV4dCkpKTtcbiAgICAgIH1cbiAgICAgICRyZXR1cm46IG1hcC1tZXJnZSgkcmV0dXJuLCAoY29udGV4dDogJGNvbnRleHQtbWFwKSk7XG4gICAgfVxuXG4gICAgLy8gUmVzZXQgR2xvYmFsIFByaXZhdGUgQnJlYWtwb2ludCBDb250ZXh0XG4gICAgJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcjogKCkgIWdsb2JhbDtcbiAgICAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50OiAwICFnbG9iYWw7XG5cbiAgICBAaWYgJE1lbW8tRXhpc3RzIHtcbiAgICAgICRob2xkZXI6IG1lbW8tc2V0KGJyZWFrcG9pbnQsIGJyZWFrcG9pbnQgJHF1ZXJ5ICRjb250ZXh0cywgJHJldHVybik7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkcmV0dXJuO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEdlbmVyYWwgQnJlYWtwb2ludCBQYXJzZXJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2UoJHF1ZXJ5KSB7XG4gIC8vIEluY3JlYXNlIG51bWJlciBvZiAnYW5kJyBxdWVyaWVzXG4gICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQ6ICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQgKyAxICFnbG9iYWw7XG5cbiAgLy8gU2V0IHVwIE1lZGlhIFR5cGVcbiAgJHF1ZXJ5LXByaW50OiAnJztcblxuICAkZm9yY2UtYWxsOiAoKGJyZWFrcG9pbnQtZ2V0KCdmb3JjZSBhbGwgbWVkaWEgdHlwZScpID09IHRydWUpIGFuZCAoYnJlYWtwb2ludC1nZXQoJ2RlZmF1bHQgbWVkaWEnKSA9PSAnYWxsJykpO1xuICAkZW1wdHktbWVkaWE6IHRydWU7XG4gIEBpZiAoJGZvcmNlLWFsbCA9PSB0cnVlKSBvciAoYnJlYWtwb2ludC1nZXQoJ2RlZmF1bHQgbWVkaWEnKSAhPSAnYWxsJykge1xuICAgIC8vIEZvcmNlIHRoZSBwcmludCBvZiB0aGUgZGVmYXVsdCBtZWRpYSB0eXBlIGlmIChmb3JjZSBhbGwgaXMgdHJ1ZSBhbmQgZGVmYXVsdCBtZWRpYSB0eXBlIGlzIGFsbCkgb3IgKGRlZmF1bHQgbWVkaWEgdHlwZSBpcyBub3QgYWxsKVxuICAgICRxdWVyeS1wcmludDogYnJlYWtwb2ludC1nZXQoJ2RlZmF1bHQgbWVkaWEnKTtcbiAgICAkZW1wdHktbWVkaWE6IGZhbHNlO1xuICB9XG5cblxuICAkcXVlcnktcmVzb2x1dGlvbjogZmFsc2U7XG5cbiAgJHF1ZXJ5LWhvbGRlcjogYnJlYWtwb2ludC1wYXJzZS1xdWVyeSgkcXVlcnkpO1xuXG5cblxuICAvLyBMb29wIG92ZXIgZWFjaCBwYXJzZWQgb3V0IHF1ZXJ5IGFuZCB3cml0ZSBpdCB0byAkcXVlcnktcHJpbnRcbiAgJGZpcnN0OiB0cnVlO1xuXG4gIEBlYWNoICRmZWF0dXJlIGluICRxdWVyeS1ob2xkZXIge1xuICAgICRsZW5ndGg6IGxlbmd0aCgkZmVhdHVyZSk7XG5cbiAgICAvLyBQYXJzZSBhIHNpbmdsZSBmZWF0dXJlXG4gICAgQGlmICgkbGVuZ3RoID09IDEpIHtcbiAgICAgIC8vIEZlYXR1cmUgaXMgY3VycmVudGx5IGEgbGlzdCwgZ3JhYiB0aGUgYWN0dWFsIHZhbHVlXG4gICAgICAkZmVhdHVyZTogbnRoKCRmZWF0dXJlLCAxKTtcblxuICAgICAgLy8gTWVkaWEgVHlwZSBtdXN0IGJ5IGNvbnZlbnRpb24gYmUgdGhlIGZpcnN0IGl0ZW0sIHNvIGl0J3Mgc2FmZSB0byBmbGF0IG92ZXJyaWRlICRxdWVyeS1wcmludCwgd2hpY2ggcmlnaHQgbm93IHNob3VsZCBvbmx5IGJlIHRoZSBkZWZhdWx0IG1lZGlhIHR5cGVcbiAgICAgIEBpZiAoYnJlYWtwb2ludC1pcy1tZWRpYSgkZmVhdHVyZSkpIHtcbiAgICAgICAgQGlmICgkZm9yY2UtYWxsID09IHRydWUpIG9yICgkZmVhdHVyZSAhPSAnYWxsJykge1xuICAgICAgICAgIC8vIEZvcmNlIHRoZSBwcmludCBvZiB0aGUgZGVmYXVsdCBtZWRpYSB0eXBlIGlmIChmb3JjZSBhbGwgaXMgdHJ1ZSBhbmQgZGVmYXVsdCBtZWRpYSB0eXBlIGlzIGFsbCkgb3IgKGRlZmF1bHQgbWVkaWEgdHlwZSBpcyBub3QgYWxsKVxuICAgICAgICAgICRxdWVyeS1wcmludDogJGZlYXR1cmU7XG4gICAgICAgICAgJGVtcHR5LW1lZGlhOiBmYWxzZTtcblxuICAgICAgICAgIC8vIFNldCBDb250ZXh0XG4gICAgICAgICAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQobWVkaWEsICRxdWVyeS1wcmludCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJHBhcnNlZDogYnJlYWtwb2ludC1wYXJzZS1zaW5nbGUoJGZlYXR1cmUsICRlbXB0eS1tZWRpYSwgJGZpcnN0KTtcbiAgICAgICAgJHF1ZXJ5LXByaW50OiAnI3skcXVlcnktcHJpbnR9ICN7JHBhcnNlZH0nO1xuICAgICAgICAkZmlyc3Q6IGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgICAvLyBQYXJzZSBhIGRvdWJsZSBmZWF0dXJlXG4gICAgQGVsc2UgaWYgKCRsZW5ndGggPT0gMikge1xuICAgICAgQGlmIChicmVha3BvaW50LWlzLXJlc29sdXRpb24oJGZlYXR1cmUpICE9IGZhbHNlKSB7XG4gICAgICAgICRxdWVyeS1yZXNvbHV0aW9uOiAkZmVhdHVyZTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJHBhcnNlZDogbnVsbDtcbiAgICAgICAgLy8gSWYgaXQncyBhIHN0cmluZy9udW1iZXIgcGFpcixcbiAgICAgICAgLy8gd2UgY2hlY2sgdG8gc2VlIGlmIG9uZSBpcyBhIHNpbmdsZS1zdHJpbmcgdmFsdWUsXG4gICAgICAgIC8vIHRoZW4gd2UgcGFyc2UgaXQgYXMgYSBub3JtYWwgZG91YmxlXG4gICAgICAgICRhbHBoYTogbnRoKCRmZWF0dXJlLCAxKTtcbiAgICAgICAgJGJldGE6IG50aCgkZmVhdHVyZSwgMik7XG4gICAgICAgIEBpZiBicmVha3BvaW50LXNpbmdsZS1zdHJpbmcoJGFscGhhKSBvciBicmVha3BvaW50LXNpbmdsZS1zdHJpbmcoJGJldGEpIHtcbiAgICAgICAgICAkcGFyc2VkOiBicmVha3BvaW50LXBhcnNlLXNpbmdsZSgkYWxwaGEsICRlbXB0eS1tZWRpYSwgJGZpcnN0KTtcbiAgICAgICAgICAkcXVlcnktcHJpbnQ6ICcjeyRxdWVyeS1wcmludH0gI3skcGFyc2VkfSc7XG4gICAgICAgICAgJGZpcnN0OiBmYWxzZTtcbiAgICAgICAgICAkcGFyc2VkOiBicmVha3BvaW50LXBhcnNlLXNpbmdsZSgkYmV0YSwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpO1xuICAgICAgICAgICRxdWVyeS1wcmludDogJyN7JHF1ZXJ5LXByaW50fSAjeyRwYXJzZWR9JztcbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgJHBhcnNlZDogYnJlYWtwb2ludC1wYXJzZS1kb3VibGUoJGZlYXR1cmUsICRlbXB0eS1tZWRpYSwgJGZpcnN0KTtcbiAgICAgICAgICAkcXVlcnktcHJpbnQ6ICcjeyRxdWVyeS1wcmludH0gI3skcGFyc2VkfSc7XG4gICAgICAgICAgJGZpcnN0OiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAvLyBQYXJzZSBhIHRyaXBsZSBmZWF0dXJlXG4gICAgQGVsc2UgaWYgKCRsZW5ndGggPT0gMykge1xuICAgICAgJHBhcnNlZDogYnJlYWtwb2ludC1wYXJzZS10cmlwbGUoJGZlYXR1cmUsICRlbXB0eS1tZWRpYSwgJGZpcnN0KTtcbiAgICAgICRxdWVyeS1wcmludDogJyN7JHF1ZXJ5LXByaW50fSAjeyRwYXJzZWR9JztcbiAgICAgICRmaXJzdDogZmFsc2U7XG4gICAgfVxuXG4gIH1cblxuICBAaWYgKCRxdWVyeS1yZXNvbHV0aW9uICE9IGZhbHNlKSB7XG4gICAgJHF1ZXJ5LXByaW50OiBicmVha3BvaW50LWJ1aWxkLXJlc29sdXRpb24oJHF1ZXJ5LXByaW50LCAkcXVlcnktcmVzb2x1dGlvbiwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpO1xuICB9XG5cbiAgLy8gTG9vcCB0aHJvdWdoIGVhY2ggZmVhdHVyZSB0aGF0J3MgYmVlbiBkZXRlY3RlZCBzbyBmYXIgYW5kIGFwcGVuZCAnZmFsc2UnIHRvIHRoZSB0aGUgdmFsdWUgbGlzdCB0byBpbmNyZW1lbnQgdGhlaXIgY291bnRlcnNcbiAgQGVhY2ggJGYsICR2IGluICRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXIge1xuICAgICR2LWhvbGRlcjogJHY7XG4gICAgJGxlbmd0aDogbGVuZ3RoKCR2LWhvbGRlcik7XG4gICAgQGlmIGxlbmd0aCgkdi1ob2xkZXIpIDwgJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudCB7XG4gICAgICBAZm9yICRpIGZyb20gJGxlbmd0aCB0byAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50IHtcbiAgICAgICAgQGlmICRmID09ICdtZWRpYScge1xuICAgICAgICAgICR2LWhvbGRlcjogYXBwZW5kKCR2LWhvbGRlciwgYnJlYWtwb2ludC1nZXQoJ2RlZmF1bHQgbWVkaWEnKSk7XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICR2LWhvbGRlcjogYXBwZW5kKCR2LWhvbGRlciwgZmFsc2UpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgICRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXI6IG1hcC1tZXJnZSgkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLCAoJGY6ICR2LWhvbGRlcikpICFnbG9iYWw7XG4gIH1cblxuICBAcmV0dXJuICRxdWVyeS1wcmludDtcbn1cbiIsIkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlLXF1ZXJ5KCRxdWVyeSkge1xuICAvLyBQYXJzZSBmZWF0dXJlcyBvdXQgb2YgYW4gaW5kaXZpZHVhbCBxdWVyeVxuICAkZmVhdHVyZS1ob2xkZXI6ICgpO1xuICAkcXVlcnktaG9sZGVyOiAoKTtcbiAgJGxlbmd0aDogbGVuZ3RoKCRxdWVyeSk7XG5cbiAgQGlmICRsZW5ndGggPT0gMiB7XG4gICAgLy8gSWYgd2UndmUgZ290IGEgc3RyaW5nL251bWJlciwgbnVtYmVyL3N0cmluZywgY2hlY2sgdG8gc2VlIGlmIGl0J3MgYSB2YWxpZCBzdHJpbmcvbnVtYmVyIHBhaXIgb3IgdHdvIHNpbmdsZXNcbiAgICBAaWYgKHR5cGUtb2YobnRoKCRxdWVyeSwgMSkpID09ICdzdHJpbmcnIGFuZCB0eXBlLW9mKG50aCgkcXVlcnksIDIpKSA9PSAnbnVtYmVyJykgb3IgKHR5cGUtb2YobnRoKCRxdWVyeSwgMSkpID09ICdudW1iZXInIGFuZCB0eXBlLW9mKG50aCgkcXVlcnksIDIpKSA9PSAnc3RyaW5nJykge1xuXG4gICAgICAkbnVtYmVyOiAnJztcbiAgICAgICR2YWx1ZTogJyc7XG5cbiAgICAgIEBpZiB0eXBlLW9mKG50aCgkcXVlcnksIDEpKSA9PSAnc3RyaW5nJyB7XG4gICAgICAgICRudW1iZXI6IG50aCgkcXVlcnksIDIpO1xuICAgICAgICAkdmFsdWU6IG50aCgkcXVlcnksIDEpO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkbnVtYmVyOiBudGgoJHF1ZXJ5LCAxKTtcbiAgICAgICAgJHZhbHVlOiBudGgoJHF1ZXJ5LCAyKTtcbiAgICAgIH1cblxuICAgICAgLy8gSWYgdGhlIHN0cmluZyB2YWx1ZSBjYW4gYmUgYSBzaW5nbGUgdmFsdWUsIGNoZWNrIHRvIHNlZSBpZiB0aGUgbnVtYmVyIHBhc3NlZCBpbiBpcyBhIHZhbGlkIGlucHV0IGZvciBzYWlkIHNpbmdsZSB2YWx1ZS4gRm9ydHVuYXRlbHksIGFsbCBjdXJyZW50IHNpbmdsZS12YWx1ZSBvcHRpb25zIG9ubHkgYWNjZXB0IHVuaXRsZXNzIG51bWJlcnMsIHNvIHRoaXMgY2hlY2sgaXMgZWFzeS5cbiAgICAgIEBpZiBicmVha3BvaW50LXNpbmdsZS1zdHJpbmcoJHZhbHVlKSB7XG4gICAgICAgIEBpZiB1bml0bGVzcygkbnVtYmVyKSB7XG4gICAgICAgICAgJGZlYXR1cmUtaG9sZGVyOiBhcHBlbmQoJHZhbHVlLCAkbnVtYmVyLCBzcGFjZSk7XG4gICAgICAgICAgJHF1ZXJ5LWhvbGRlcjogYXBwZW5kKCRxdWVyeS1ob2xkZXIsICRmZWF0dXJlLWhvbGRlciwgY29tbWEpO1xuICAgICAgICAgIEByZXR1cm4gJHF1ZXJ5LWhvbGRlcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLy8gSWYgdGhlIHN0cmluZyBpcyBhIG1lZGlhIHR5cGUsIHNwbGl0IHRoZSBxdWVyeVxuICAgICAgQGlmIGJyZWFrcG9pbnQtaXMtbWVkaWEoJHZhbHVlKSB7XG4gICAgICAgICRxdWVyeS1ob2xkZXI6IGFwcGVuZCgkcXVlcnktaG9sZGVyLCBudGgoJHF1ZXJ5LCAxKSk7XG4gICAgICAgICRxdWVyeS1ob2xkZXI6IGFwcGVuZCgkcXVlcnktaG9sZGVyLCBudGgoJHF1ZXJ5LCAyKSk7XG4gICAgICAgIEByZXR1cm4gJHF1ZXJ5LWhvbGRlcjtcbiAgICAgIH1cbiAgICAgIC8vIElmIGl0J3Mgbm90IGEgc2luZ2xlIGZlYXR1cmUsIHdlJ3JlIGp1c3QgZ29pbmcgdG8gYXNzdW1lIGl0J3MgYSBwcm9wZXIgc3RyaW5nL3ZhbHVlIHBhaXIsIGFuZCByb2xsIHdpdGggaXQuXG4gICAgICBAZWxzZSB7XG4gICAgICAgICRmZWF0dXJlLWhvbGRlcjogYXBwZW5kKCR2YWx1ZSwgJG51bWJlciwgc3BhY2UpO1xuICAgICAgICAkcXVlcnktaG9sZGVyOiBhcHBlbmQoJHF1ZXJ5LWhvbGRlciwgJGZlYXR1cmUtaG9sZGVyLCBjb21tYSk7XG4gICAgICAgIEByZXR1cm4gJHF1ZXJ5LWhvbGRlcjtcbiAgICAgIH1cblxuICAgIH1cbiAgICAvLyBJZiB0aGV5J3JlIGJvdGggbnVtYmVycywgd2UgYXNzdW1lIGl0J3MgYSBkb3VibGUgYW5kIHJvbGwgd2l0aCB0aGF0XG4gICAgQGVsc2UgaWYgKHR5cGUtb2YobnRoKCRxdWVyeSwgMSkpID09ICdudW1iZXInIGFuZCB0eXBlLW9mKG50aCgkcXVlcnksIDIpKSA9PSAnbnVtYmVyJykge1xuICAgICAgJGZlYXR1cmUtaG9sZGVyOiBhcHBlbmQobnRoKCRxdWVyeSwgMSksIG50aCgkcXVlcnksIDIpLCBzcGFjZSk7XG4gICAgICAkcXVlcnktaG9sZGVyOiBhcHBlbmQoJHF1ZXJ5LWhvbGRlciwgJGZlYXR1cmUtaG9sZGVyLCBjb21tYSk7XG4gICAgICBAcmV0dXJuICRxdWVyeS1ob2xkZXI7XG4gICAgfVxuICAgIC8vIElmIHRoZXkncmUgYm90aCBzdHJpbmdzIGFuZCBuZWl0aGVyIGFyZSBzaW5nbGVzLCB3ZSByb2xsIHdpdGggdGhhdC5cbiAgICBAZWxzZSBpZiAodHlwZS1vZihudGgoJHF1ZXJ5LCAxKSkgPT0gJ3N0cmluZycgYW5kIHR5cGUtb2YobnRoKCRxdWVyeSwgMikpID09ICdzdHJpbmcnKSB7XG4gICAgICBAaWYgbm90IGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZyhudGgoJHF1ZXJ5LCAxKSkgYW5kIG5vdCBicmVha3BvaW50LXNpbmdsZS1zdHJpbmcobnRoKCRxdWVyeSwgMikpIHtcbiAgICAgICAgJGZlYXR1cmUtaG9sZGVyOiBhcHBlbmQobnRoKCRxdWVyeSwgMSksIG50aCgkcXVlcnksIDIpLCBzcGFjZSk7XG4gICAgICAgICRxdWVyeS1ob2xkZXI6IGFwcGVuZCgkcXVlcnktaG9sZGVyLCAkZmVhdHVyZS1ob2xkZXIsIGNvbW1hKTtcbiAgICAgICAgQHJldHVybiAkcXVlcnktaG9sZGVyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkbGVuZ3RoID09IDMge1xuICAgIC8vIElmIHdlJ3ZlIGdvdCB0aHJlZSBpdGVtcyBhbmQgbm9uZSBpcyBhIGxpc3QsIHdlIGNoZWNrIHRvIHNlZVxuICAgIEBpZiB0eXBlLW9mKG50aCgkcXVlcnksIDEpKSAhPSAnbGlzdCcgYW5kIHR5cGUtb2YobnRoKCRxdWVyeSwgMikpICE9ICdsaXN0JyBhbmQgdHlwZS1vZihudGgoJHF1ZXJ5LCAzKSkgIT0gJ2xpc3QnIHtcbiAgICAgIC8vIElmIG5vbmUgb2YgdGhlIGl0ZW1zIGFyZSBzaW5nbGUgc3RyaW5nIHZhbHVlcyBhbmQgbm9uZSBvZiB0aGUgdmFsdWVzIGFyZSBtZWRpYSB2YWx1ZXMsIHdlJ3JlIGdvb2QuXG4gICAgICBAaWYgKG5vdCBicmVha3BvaW50LXNpbmdsZS1zdHJpbmcobnRoKCRxdWVyeSwgMSkpIGFuZCBub3QgYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKG50aCgkcXVlcnksIDIpKSBhbmQgbm90IGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZyhudGgoJHF1ZXJ5LCAzKSkpIGFuZCAgKChub3QgYnJlYWtwb2ludC1pcy1tZWRpYShudGgoJHF1ZXJ5LCAxKSkgYW5kIG5vdCBicmVha3BvaW50LWlzLW1lZGlhKG50aCgkcXVlcnksIDIpKSBhbmQgbm90IGJyZWFrcG9pbnQtaXMtbWVkaWEobnRoKCRxdWVyeSwgMykpKSkge1xuICAgICAgICAkZmVhdHVyZS1ob2xkZXI6IGFwcGVuZChudGgoJHF1ZXJ5LCAxKSwgbnRoKCRxdWVyeSwgMiksIHNwYWNlKTtcbiAgICAgICAgJGZlYXR1cmUtaG9sZGVyOiBhcHBlbmQoJGZlYXR1cmUtaG9sZGVyLCBudGgoJHF1ZXJ5LCAzKSwgc3BhY2UpO1xuICAgICAgICAkcXVlcnktaG9sZGVyOiBhcHBlbmQoJHF1ZXJ5LWhvbGRlciwgJGZlYXR1cmUtaG9sZGVyLCBjb21tYSk7XG4gICAgICAgIEByZXR1cm4gJHF1ZXJ5LWhvbGRlcjtcbiAgICAgIH1cbiAgICAgIC8vIGxldCdzIGNoZWNrIHRvIHNlZSBpZiB0aGUgZmlyc3QgaXRlbSBpcyBhIG1lZGlhIHR5cGVcbiAgICAgIEBlbHNlIGlmIGJyZWFrcG9pbnQtaXMtbWVkaWEobnRoKCRxdWVyeSwgMSkpIHtcbiAgICAgICAgJHF1ZXJ5LWhvbGRlcjogYXBwZW5kKCRxdWVyeS1ob2xkZXIsIG50aCgkcXVlcnksIDEpKTtcbiAgICAgICAgJGZlYXR1cmUtaG9sZGVyOiBhcHBlbmQobnRoKCRxdWVyeSwgMiksIG50aCgkcXVlcnksIDMpLCBzcGFjZSk7XG4gICAgICAgICRxdWVyeS1ob2xkZXI6IGFwcGVuZCgkcXVlcnktaG9sZGVyLCAkZmVhdHVyZS1ob2xkZXIpO1xuICAgICAgICBAcmV0dXJuICRxdWVyeS1ob2xkZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gSWYgaXQncyBhIHNpbmdsZSBpdGVtLCBvciBpZiBpdCdzIG5vdCBhIHNwZWNpYWwgY2FzZSBkb3VibGUgb3IgdHJpcGxlLCB3ZSBjYW4gc2ltcGx5IHJldHVybiB0aGUgcXVlcnkuXG4gIEByZXR1cm4gJHF1ZXJ5O1xufVxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBJbXBvcnQgUGllY2VzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBpbXBvcnQgXCJzaW5nbGUvZGVmYXVsdFwiO1xuXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1wYXJzZS1zaW5nbGUoJGZlYXR1cmUsICRlbXB0eS1tZWRpYSwgJGZpcnN0KSB7XG4gICRwYXJzZWQ6ICcnO1xuICAkbGVhZGVyOiAnJztcbiAgLy8gSWYgd2UncmUgZm9yY2luZ1xuICBAaWYgbm90ICgkZW1wdHktbWVkaWEpIG9yIG5vdCAoJGZpcnN0KSB7XG4gICAgJGxlYWRlcjogJ2FuZCAnO1xuICB9XG5cbiAgLy8gSWYgaXQncyBhIHNpbmdsZSBmZWF0dXJlIHRoYXQgY2FuIHN0YW5kIGFsb25lLCB3ZSBsZXQgaXRcbiAgQGlmIChicmVha3BvaW50LXNpbmdsZS1zdHJpbmcoJGZlYXR1cmUpKSB7XG4gICAgJHBhcnNlZDogJGZlYXR1cmU7XG4gICAgLy8gU2V0IENvbnRleHRcbiAgICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dCgkZmVhdHVyZSwgJGZlYXR1cmUpO1xuICB9XG4gIC8vIElmIGl0J3Mgbm90IGEgc3RhbmQgYWxvbmUgZmVhdHVyZSwgd2UgcGFzcyBpdCBvZmYgdG8gdGhlIGRlZmF1bHQgaGFuZGxlci5cbiAgQGVsc2Uge1xuICAgICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2UtZGVmYXVsdCgkZmVhdHVyZSk7XG4gIH1cblxuICBAcmV0dXJuICRsZWFkZXIgKyAnKCcgKyAkcGFyc2VkICsgJyknO1xufVxuIiwiQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2UtZGVmYXVsdCgkZmVhdHVyZSkge1xuICAkZGVmYXVsdDogYnJlYWtwb2ludC1nZXQoJ2RlZmF1bHQgZmVhdHVyZScpO1xuXG4gIC8vIFNldCBDb250ZXh0XG4gICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KCRkZWZhdWx0LCAkZmVhdHVyZSk7XG5cbiAgQGlmIChicmVha3BvaW50LWdldCgndG8gZW1zJykgPT0gdHJ1ZSkgYW5kICh0eXBlLW9mKCRmZWF0dXJlKSA9PSAnbnVtYmVyJykge1xuICAgIEByZXR1cm4gJyN7JGRlZmF1bHR9OiAje2JyZWFrcG9pbnQtdG8tYmFzZS1lbSgkZmVhdHVyZSl9JztcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiAnI3skZGVmYXVsdH06ICN7JGZlYXR1cmV9JztcbiAgfVxufVxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBJbXBvcnQgUGllY2VzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBpbXBvcnQgXCJkb3VibGUvZGVmYXVsdC1wYWlyXCI7XG5AaW1wb3J0IFwiZG91YmxlL2RvdWJsZS1zdHJpbmdcIjtcbkBpbXBvcnQgXCJkb3VibGUvZGVmYXVsdFwiO1xuXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1wYXJzZS1kb3VibGUoJGZlYXR1cmUsICRlbXB0eS1tZWRpYSwgJGZpcnN0KSB7XG4gICRwYXJzZWQ6ICcnO1xuICAkbGVhZGVyOiAnJztcbiAgLy8gSWYgd2UncmUgZm9yY2luZ1xuICBAaWYgbm90ICgkZW1wdHktbWVkaWEpIG9yIG5vdCAoJGZpcnN0KSB7XG4gICAgJGxlYWRlcjogJ2FuZCAnO1xuICB9XG5cbiAgJGZpcnN0OiBudGgoJGZlYXR1cmUsIDEpO1xuICAkc2Vjb25kOiBudGgoJGZlYXR1cmUsIDIpO1xuXG4gIC8vIElmIHdlJ3ZlIGdvdCB0d28gbnVtYmVycywgd2Uga25vdyB3ZSBuZWVkIHRvIHVzZSB0aGUgZGVmYXVsdCBwYWlyIGJlY2F1c2UgdGhlcmUgYXJlIG5vIG1lZGlhIHF1ZXJpZXMgdGhhdCBoYXMgYSBtZWRpYSBmZWF0dXJlIHRoYXQgaXMgYSBudW1iZXJcbiAgQGlmIHR5cGUtb2YoJGZpcnN0KSA9PSAnbnVtYmVyJyBhbmQgdHlwZS1vZigkc2Vjb25kKSA9PSAnbnVtYmVyJyB7XG4gICAgJHBhcnNlZDogYnJlYWtwb2ludC1wYXJzZS1kZWZhdWx0LXBhaXIoJGZpcnN0LCAkc2Vjb25kKTtcbiAgfVxuICAvLyBJZiB0aGV5IGFyZSBib3RoIHN0cmluZ3MsIHdlIHNlbmQgaXQgdGhyb3VnaCB0aGUgc3RyaW5nIHBhcnNlclxuICBAZWxzZSBpZiB0eXBlLW9mKCRmaXJzdCkgPT0gJ3N0cmluZycgYW5kIHR5cGUtb2YoJHNlY29uZCkgPT0gJ3N0cmluZycge1xuICAgICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2UtZG91YmxlLXN0cmluZygkZmlyc3QsICRzZWNvbmQpO1xuICB9XG4gIC8vIElmIGl0J3MgYSBzdHJpbmcvbnVtYmVyIHBhaXIsIHdlIHBhcnNlIGl0IGFzIGEgbm9ybWFsIGRvdWJsZVxuICBAZWxzZSB7XG4gICAgJHBhcnNlZDogYnJlYWtwb2ludC1wYXJzZS1kb3VibGUtZGVmYXVsdCgkZmlyc3QsICRzZWNvbmQpO1xuICB9XG5cbiAgQHJldHVybiAkbGVhZGVyICsgJHBhcnNlZDtcbn1cbiIsIkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlLWRlZmF1bHQtcGFpcigkZmlyc3QsICRzZWNvbmQpIHtcbiAgJGRlZmF1bHQ6IGJyZWFrcG9pbnQtZ2V0KCdkZWZhdWx0IHBhaXInKTtcbiAgJG1pbjogJyc7XG4gICRtYXg6ICcnO1xuXG4gIC8vIFNvcnQgaW50byBtaW4gYW5kIG1heFxuICAkbWluOiBtaW4oJGZpcnN0LCAkc2Vjb25kKTtcbiAgJG1heDogbWF4KCRmaXJzdCwgJHNlY29uZCk7XG5cbiAgLy8gU2V0IENvbnRleHRcbiAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQobWluLSN7JGRlZmF1bHR9LCAkbWluKTtcbiAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQobWF4LSN7JGRlZmF1bHR9LCAkbWF4KTtcblxuICAvLyBNYWtlIHRoZW0gRU1zIGlmIG5lZWQgYmVcbiAgQGlmIChicmVha3BvaW50LWdldCgndG8gZW1zJykgPT0gdHJ1ZSkge1xuICAgICRtaW46IGJyZWFrcG9pbnQtdG8tYmFzZS1lbSgkbWluKTtcbiAgICAkbWF4OiBicmVha3BvaW50LXRvLWJhc2UtZW0oJG1heCk7XG4gIH1cblxuICBAcmV0dXJuICcobWluLSN7JGRlZmF1bHR9OiAjeyRtaW59KSBhbmQgKG1heC0jeyRkZWZhdWx0fTogI3skbWF4fSknO1xufVxuIiwiQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2UtZG91YmxlLXN0cmluZygkZmlyc3QsICRzZWNvbmQpIHtcbiAgJGZlYXR1cmU6ICcnO1xuICAkdmFsdWU6ICcnO1xuXG4gIC8vIFRlc3QgdG8gc2VlIHdoaWNoIGlzIHRoZSBmZWF0dXJlIGFuZCB3aGljaCBpcyB0aGUgdmFsdWVcbiAgQGlmIChicmVha3BvaW50LXN0cmluZy12YWx1ZSgkZmlyc3QpID09IHRydWUpIHtcbiAgICAkZmVhdHVyZTogJGZpcnN0O1xuICAgICR2YWx1ZTogJHNlY29uZDtcbiAgfVxuICBAZWxzZSBpZiAoYnJlYWtwb2ludC1zdHJpbmctdmFsdWUoJHNlY29uZCkgPT0gdHJ1ZSkge1xuICAgICRmZWF0dXJlOiAkc2Vjb25kO1xuICAgICR2YWx1ZTogJGZpcnN0O1xuICB9XG4gIEBlbHNlIHtcbiAgICBAd2FybiBcIk5laXRoZXIgI3skZmlyc3R9IG5vciAjeyRzZWNvbmR9IGlzIGEgdmFsaWQgbWVkaWEgcXVlcnkgbmFtZS5cIjtcbiAgfVxuXG4gIC8vIFNldCBDb250ZXh0XG4gICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KCRmZWF0dXJlLCAkdmFsdWUpO1xuXG4gIEByZXR1cm4gJygjeyRmZWF0dXJlfTogI3skdmFsdWV9KSc7XG59IiwiQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2UtZG91YmxlLWRlZmF1bHQoJGZpcnN0LCAkc2Vjb25kKSB7XG4gICRmZWF0dXJlOiAnJztcbiAgJHZhbHVlOiAnJztcblxuICBAaWYgdHlwZS1vZigkZmlyc3QpID09ICdzdHJpbmcnIHtcbiAgICAkZmVhdHVyZTogJGZpcnN0O1xuICAgICR2YWx1ZTogJHNlY29uZDtcbiAgfVxuICBAZWxzZSB7XG4gICAgJGZlYXR1cmU6ICRzZWNvbmQ7XG4gICAgJHZhbHVlOiAkZmlyc3Q7XG4gIH1cblxuICAvLyBTZXQgQ29udGV4dFxuICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dCgkZmVhdHVyZSwgJHZhbHVlKTtcblxuICBAaWYgKGJyZWFrcG9pbnQtZ2V0KCd0byBlbXMnKSA9PSB0cnVlKSB7XG4gICAgJHZhbHVlOiBicmVha3BvaW50LXRvLWJhc2UtZW0oJHZhbHVlKTtcbiAgfVxuXG4gIEByZXR1cm4gJygjeyRmZWF0dXJlfTogI3skdmFsdWV9KSdcbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSW1wb3J0IFBpZWNlc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AaW1wb3J0IFwidHJpcGxlL2RlZmF1bHRcIjtcblxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2UtdHJpcGxlKCRmZWF0dXJlLCAkZW1wdHktbWVkaWEsICRmaXJzdCkge1xuICAkcGFyc2VkOiAnJztcbiAgJGxlYWRlcjogJyc7XG5cbiAgLy8gSWYgd2UncmUgZm9yY2luZ1xuICBAaWYgbm90ICgkZW1wdHktbWVkaWEpIG9yIG5vdCAoJGZpcnN0KSB7XG4gICAgJGxlYWRlcjogJ2FuZCAnO1xuICB9XG5cbiAgLy8gc2VwYXJhdGUgdGhlIHN0cmluZyBmZWF0dXJlcyBmcm9tIHRoZSB2YWx1ZSBudW1iZXJzXG4gICRzdHJpbmc6IG51bGw7XG4gICRudW1iZXJzOiBudWxsO1xuICBAZWFjaCAkdmFsIGluICRmZWF0dXJlIHtcbiAgICBAaWYgdHlwZS1vZigkdmFsKSA9PSBzdHJpbmcge1xuICAgICAgJHN0cmluZzogJHZhbDtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGlmIHR5cGUtb2YoJG51bWJlcnMpID09ICdudWxsJyB7XG4gICAgICAgICRudW1iZXJzOiAkdmFsO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkbnVtYmVyczogYXBwZW5kKCRudW1iZXJzLCAkdmFsKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAkcGFyc2VkOiBicmVha3BvaW50LXBhcnNlLXRyaXBsZS1kZWZhdWx0KCRzdHJpbmcsIG50aCgkbnVtYmVycywgMSksIG50aCgkbnVtYmVycywgMikpO1xuXG4gIEByZXR1cm4gJGxlYWRlciArICRwYXJzZWQ7XG5cbn1cbiIsIkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlLXRyaXBsZS1kZWZhdWx0KCRmZWF0dXJlLCAkZmlyc3QsICRzZWNvbmQpIHtcblxuICAvLyBTb3J0IGludG8gbWluIGFuZCBtYXhcbiAgJG1pbjogbWluKCRmaXJzdCwgJHNlY29uZCk7XG4gICRtYXg6IG1heCgkZmlyc3QsICRzZWNvbmQpO1xuXG4gIC8vIFNldCBDb250ZXh0XG4gICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KG1pbi0jeyRmZWF0dXJlfSwgJG1pbik7XG4gICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KG1heC0jeyRmZWF0dXJlfSwgJG1heCk7XG5cbiAgLy8gTWFrZSB0aGVtIEVNcyBpZiBuZWVkIGJlXG4gIEBpZiAoYnJlYWtwb2ludC1nZXQoJ3RvIGVtcycpID09IHRydWUpIHtcbiAgICAkbWluOiBicmVha3BvaW50LXRvLWJhc2UtZW0oJG1pbik7XG4gICAgJG1heDogYnJlYWtwb2ludC10by1iYXNlLWVtKCRtYXgpO1xuICB9XG5cbiAgQHJldHVybiAnKG1pbi0jeyRmZWF0dXJlfTogI3skbWlufSkgYW5kIChtYXgtI3skZmVhdHVyZX06ICN7JG1heH0pJztcbn1cbiIsIkBpbXBvcnQgXCJyZXNvbHV0aW9uL3Jlc29sdXRpb25cIjtcblxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtYnVpbGQtcmVzb2x1dGlvbigkcXVlcnktcHJpbnQsICRxdWVyeS1yZXNvbHV0aW9uLCAkZW1wdHktbWVkaWEsICRmaXJzdCkge1xuICAkbGVhZGVyOiAnJztcbiAgLy8gSWYgd2UncmUgZm9yY2luZ1xuICBAaWYgbm90ICgkZW1wdHktbWVkaWEpIG9yIG5vdCAoJGZpcnN0KSB7XG4gICAgJGxlYWRlcjogJ2FuZCAnO1xuICB9XG5cbiAgQGlmIGJyZWFrcG9pbnQtZ2V0KCd0cmFuc2Zvcm0gcmVzb2x1dGlvbnMnKSBhbmQgJHF1ZXJ5LXJlc29sdXRpb24ge1xuICAgICRyZXNvbHV0aW9uczogYnJlYWtwb2ludC1tYWtlLXJlc29sdXRpb25zKCRxdWVyeS1yZXNvbHV0aW9uKTtcbiAgICAkbGVuZ3RoOiBsZW5ndGgoJHJlc29sdXRpb25zKTtcbiAgICAkcXVlcnktaG9sZGVyOiAnJztcblxuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAkcXVlcnk6ICcjeyRxdWVyeS1wcmludH0gI3skbGVhZGVyfSN7bnRoKCRyZXNvbHV0aW9ucywgJGkpfSc7XG4gICAgICBAaWYgJGkgPT0gMSB7XG4gICAgICAgICRxdWVyeS1ob2xkZXI6ICRxdWVyeTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJHF1ZXJ5LWhvbGRlcjogJyN7JHF1ZXJ5LWhvbGRlcn0sICN7JHF1ZXJ5fSc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQHJldHVybiAkcXVlcnktaG9sZGVyO1xuICB9XG4gIEBlbHNlIHtcbiAgICAvLyBSZXR1cm4gd2l0aCBhdHRhY2hlZCByZXNvbHV0aW9uXG4gICAgQHJldHVybiAkcXVlcnktcHJpbnQ7XG4gIH1cbn1cbiIsIkBmdW5jdGlvbiBicmVha3BvaW50LW1ha2UtcmVzb2x1dGlvbnMoJHJlc29sdXRpb24pIHtcbiAgJGxlbmd0aDogbGVuZ3RoKCRyZXNvbHV0aW9uKTtcblxuICAkb3V0cHV0OiAoKTtcblxuICBAaWYgJGxlbmd0aCA9PSAyIHtcbiAgICAkZmVhdHVyZTogJyc7XG4gICAgJHZhbHVlOiAnJztcblxuICAgIC8vIEZpbmQgd2hpY2ggaXMgbnVtYmVyXG4gICAgQGlmIHR5cGUtb2YobnRoKCRyZXNvbHV0aW9uLCAxKSkgPT0gJ251bWJlcicge1xuICAgICAgJHZhbHVlOiBudGgoJHJlc29sdXRpb24sIDEpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkdmFsdWU6IG50aCgkcmVzb2x1dGlvbiwgMik7XG4gICAgfVxuXG4gICAgLy8gRGV0ZXJtaW5lIG1pbi9tYXgvc3RhbmRhcmRcbiAgICBAaWYgaW5kZXgoJHJlc29sdXRpb24sICdtaW4tcmVzb2x1dGlvbicpIHtcbiAgICAgICRmZWF0dXJlOiAnbWluLSc7XG4gICAgfVxuICAgIEBlbHNlIGlmIGluZGV4KCRyZXNvbHV0aW9uLCAnbWF4LXJlc29sdXRpb24nKSB7XG4gICAgICAkZmVhdHVyZTogJ21heC0nO1xuICAgIH1cblxuICAgICRzdGFuZGFyZDogJygjeyRmZWF0dXJlfXJlc29sdXRpb246ICN7JHZhbHVlfSknO1xuXG4gICAgLy8gSWYgd2UncmUgbm90IGRlYWxpbmcgd2l0aCBkcHB4LFxuICAgIEBpZiB1bml0KCR2YWx1ZSkgIT0gJ2RwcHgnIHtcbiAgICAgICRiYXNlOiA5NmRwaTtcbiAgICAgIEBpZiB1bml0KCR2YWx1ZSkgPT0gJ2RwY20nIHtcbiAgICAgICAgJGJhc2U6IDI0My44NGRwY207XG4gICAgICB9XG4gICAgICAvLyBXcml0ZSBvdXQgZmVhdHVyZSB0ZXN0c1xuICAgICAgJHdlYmtpdDogJyc7XG4gICAgICAkbW96OiAnJztcbiAgICAgICR3ZWJraXQ6ICcoLXdlYmtpdC0jeyRmZWF0dXJlfWRldmljZS1waXhlbC1yYXRpbzogI3skdmFsdWUgLyAkYmFzZX0pJztcbiAgICAgICRtb3o6ICcoI3skZmVhdHVyZX0tbW96LWRldmljZS1waXhlbC1yYXRpbzogI3skdmFsdWUgLyAkYmFzZX0pJztcbiAgICAgIC8vIEFwcGVuZCB0byBvdXRwdXRcbiAgICAgICRvdXRwdXQ6IGFwcGVuZCgkb3V0cHV0LCAkc3RhbmRhcmQsIHNwYWNlKTtcbiAgICAgICRvdXRwdXQ6IGFwcGVuZCgkb3V0cHV0LCAkd2Via2l0LCBzcGFjZSk7XG4gICAgICAkb3V0cHV0OiBhcHBlbmQoJG91dHB1dCwgJG1veiwgc3BhY2UpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkd2Via2l0OiAnJztcbiAgICAgICRtb3o6ICcnO1xuICAgICAgJHdlYmtpdDogJygtd2Via2l0LSN7JGZlYXR1cmV9ZGV2aWNlLXBpeGVsLXJhdGlvOiAjeyR2YWx1ZSAvIDFkcHB4fSknO1xuICAgICAgJG1vejogJygjeyRmZWF0dXJlfS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAjeyR2YWx1ZSAvIDFkcHB4fSknO1xuICAgICAgJGZhbGxiYWNrOiAnKCN7JGZlYXR1cmV9cmVzb2x1dGlvbjogI3skdmFsdWUgLyAxZHBweCAqIDk2ZHBpfSknO1xuICAgICAgLy8gQXBwZW5kIHRvIG91dHB1dFxuICAgICAgJG91dHB1dDogYXBwZW5kKCRvdXRwdXQsICRzdGFuZGFyZCwgc3BhY2UpO1xuICAgICAgJG91dHB1dDogYXBwZW5kKCRvdXRwdXQsICR3ZWJraXQsIHNwYWNlKTtcbiAgICAgICRvdXRwdXQ6IGFwcGVuZCgkb3V0cHV0LCAkbW96LCBzcGFjZSk7XG4gICAgICAkb3V0cHV0OiBhcHBlbmQoJG91dHB1dCwgJGZhbGxiYWNrLCBzcGFjZSk7XG4gICAgfVxuXG4gIH1cblxuICBAcmV0dXJuICRvdXRwdXQ7XG59XG4iLCJAZnVuY3Rpb24gYnJlYWtwb2ludC1uby1xdWVyeSgkcXVlcnkpIHtcbiAgQGlmIHR5cGUtb2YoJHF1ZXJ5KSA9PSAnbGlzdCcge1xuICAgICRrZXl3b3JkOiBudGgoJHF1ZXJ5LCAxKTtcblxuICAgIEBpZiB0eXBlLW9mKCRrZXl3b3JkKSA9PSAnc3RyaW5nJyBhbmQgKCRrZXl3b3JkID09ICduby1xdWVyeScgb3IgJGtleXdvcmQgPT0gJ25vIHF1ZXJ5JyBvciAka2V5d29yZCA9PSAnZmFsbGJhY2snKSB7XG4gICAgICBAcmV0dXJuIG50aCgkcXVlcnksIDIpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBmYWxzZTtcbiAgfVxufVxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBEZWZhdWx0IHRoZSBCcmVha3BvaW50cyB2YXJpYWJsZVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kYnJlYWtwb2ludHM6ICgpICFkZWZhdWx0O1xuJEJSRUFLUE9JTlRTOiAoKSAhZGVmYXVsdDtcblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBSZXNwb25kLXRvIEFQSSBNaXhpblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AbWl4aW4gcmVzcG9uZC10bygkY29udGV4dCwgJG5vLXF1ZXJ5OiBmYWxzZSkge1xuICBAaWYgbGVuZ3RoKCRicmVha3BvaW50cykgPiAwIGFuZCBsZW5ndGgoJEJSRUFLUE9JTlRTKSA9PSAwIHtcbiAgICBAd2FybiBcIkluIG9yZGVyIHRvIGF2b2lkIHZhcmlhYmxlIG5hbWVzcGFjZSBjb2xsaXNpb25zLCB3ZSBoYXZlIHVwZGF0ZWQgdGhlIHdheSB0byBhZGQgYnJlYWtwb2ludHMgZm9yIHJlc3BvbmQtdG8uIFBsZWFzZSBjaGFuZ2UgYWxsIGluc3RhbmNlcyBvZiBgJGJyZWFrcG9pbnRzOiBhZGQtYnJlYWtwb2ludCgpYCB0byBgQGluY2x1ZGUgYWRkLWJyZWFrcG9pbnQoKWAuIFRoZSBgYWRkLWJyZWFrcG9pbnQoKWAgZnVuY3Rpb24gd2lsbCBiZSBkZXByZWNhdGVkIGluIGEgZnV0dXJlIHJlbGVhc2UuXCI7XG4gICAgJEJSRUFLUE9JTlRTOiAkYnJlYWtwb2ludHMgIWdsb2JhbDtcbiAgICAkYnJlYWtwb2ludHM6ICgpICFnbG9iYWw7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkQlJFQUtQT0lOVFMpICE9ICdtYXAnIHtcbiAgICAvLyBKdXN0IGluIGNhc2Ugc29tZW9uZSB3cml0ZXMgZ2liYmVyaXNoIHRvIHRoZSAkYnJlYWtwb2ludHMgdmFyaWFibGUuXG4gICAgQHdhcm4gXCJZb3VyIGJyZWFrcG9pbnRzIGFyZW4ndCBhIG1hcCEgYHJlc3BvbmQtdG9gIGV4cGVjdHMgYSBtYXAuIFBsZWFzZSBjaGVjayB0aGUgdmFsdWUgb2YgJEJSRUFLUE9JTlRTIHZhcmlhYmxlLlwiO1xuICAgIEBjb250ZW50O1xuICB9XG4gIEBlbHNlIGlmIG1hcC1oYXMta2V5KCRCUkVBS1BPSU5UUywgJGNvbnRleHQpIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1hcC1nZXQoJEJSRUFLUE9JTlRTLCAkY29udGV4dCksICRuby1xdWVyeSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmIG5vdCBtYXAtaGFzLWtleSgkQlJFQUtQT0lOVFMsICRjb250ZXh0KSB7XG4gICAgQHdhcm4gXCJgI3skY29udGV4dH1gIGlzbid0IGEgZGVmaW5lZCBicmVha3BvaW50ISBQbGVhc2UgYWRkIGl0IHVzaW5nIGAkYnJlYWtwb2ludHM6IGFkZC1icmVha3BvaW50KGAjeyRjb250ZXh0fWAsICR2YWx1ZSk7YFwiO1xuICAgIEBjb250ZW50O1xuICB9XG4gIEBlbHNlIHtcbiAgICBAd2FybiBcIllvdSBoYXZlbid0IGNyZWF0ZWQgYW55IGJyZWFrcG9pbnRzIHlldCEgTWFrZSBzb21lIGFscmVhZHkhIGBAaW5jbHVkZSBhZGQtYnJlYWtwb2ludCgkbmFtZSwgJGJrcHQpYFwiO1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQWRkIEJyZWFrcG9pbnQgdG8gQnJlYWtwb2ludHNcbi8vIFRPRE86IFJlbW92ZSBmdW5jdGlvbiBpbiBuZXh0IHJlbGVhc2Vcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGFkZC1icmVha3BvaW50KCRuYW1lLCAkYmtwdCwgJG92ZXJ3cml0ZTogZmFsc2UpIHtcbiAgJG91dHB1dDogKCRuYW1lOiAkYmtwdCk7XG5cbiAgQGlmIGxlbmd0aCgkYnJlYWtwb2ludHMpID09IDAge1xuICAgIEByZXR1cm4gJG91dHB1dDtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJG5hbWUpIGFuZCAkb3ZlcndyaXRlICE9IHRydWUge1xuICAgICAgQHdhcm4gXCJZb3UgYWxyZWFkeSBoYXZlIGEgYnJlYWtwb2ludCBuYW1lZCBgI3skbmFtZX1gLCBwbGVhc2UgY2hvb3NlIGFub3RoZXIgYnJlYWtwb2ludCBuYW1lLCBvciBwYXNzIGluIGAkb3ZlcndyaXRlOiB0cnVlYCB0byBvdmVyd3JpdGUgdGhlIHByZXZpb3VzIGJyZWFrcG9pbnQuXCI7XG4gICAgICBAcmV0dXJuICRicmVha3BvaW50cztcbiAgICB9XG4gICAgQGVsc2UgaWYgbm90IG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJG5hbWUpIG9yICRvdmVyd3JpdGUgPT0gdHJ1ZSB7XG4gICAgICBAcmV0dXJuIG1hcC1tZXJnZSgkYnJlYWtwb2ludHMsICRvdXRwdXQpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gYWRkLWJyZWFrcG9pbnQoJG5hbWUsICRia3B0LCAkb3ZlcndyaXRlOiBmYWxzZSkge1xuICAkb3V0cHV0OiAoJG5hbWU6ICRia3B0KTtcblxuICBAaWYgbGVuZ3RoKCRCUkVBS1BPSU5UUykgPT0gMCB7XG4gICAgJEJSRUFLUE9JTlRTOiAkb3V0cHV0ICFnbG9iYWw7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkQlJFQUtQT0lOVFMsICRuYW1lKSBhbmQgJG92ZXJ3cml0ZSAhPSB0cnVlIHtcbiAgICAgIEB3YXJuIFwiWW91IGFscmVhZHkgaGF2ZSBhIGJyZWFrcG9pbnQgbmFtZWQgYCN7JG5hbWV9YCwgcGxlYXNlIGNob29zZSBhbm90aGVyIGJyZWFrcG9pbnQgbmFtZSwgb3IgcGFzcyBpbiBgJG92ZXJ3cml0ZTogdHJ1ZWAgdG8gb3ZlcndyaXRlIHRoZSBwcmV2aW91cyBicmVha3BvaW50LlwiO1xuICAgICAgJEJSRUFLUE9JTlRTOiAkQlJFQUtQT0lOVFMgIWdsb2JhbDtcbiAgICB9XG4gICAgQGVsc2UgaWYgbm90IG1hcC1oYXMta2V5KCRCUkVBS1BPSU5UUywgJG5hbWUpIG9yICRvdmVyd3JpdGUgPT0gdHJ1ZSB7XG4gICAgICAkQlJFQUtQT0lOVFM6IG1hcC1tZXJnZSgkQlJFQUtQT0lOVFMsICRvdXRwdXQpICFnbG9iYWw7XG4gICAgfVxuICB9XG59XG5cbkBmdW5jdGlvbiBnZXQtYnJlYWtwb2ludCgkbmFtZTogZmFsc2UpIHtcbiAgQGlmICRuYW1lID09IGZhbHNlIHtcbiAgICBAcmV0dXJuICRCUkVBS1BPSU5UUztcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRCUkVBS1BPSU5UUywgJG5hbWUpO1xuICB9XG59XG4iLCJAbWl4aW4gbGVnYWN5LXNldHRpbmdzLXdhcm5pbmcge1xuICAkbGVnYWN5VmFyczogKFxuICAgICdkZWZhdWx0LW1lZGlhJzogJ2RlZmF1bHQgbWVkaWEnLFxuICAgICdkZWZhdWx0LWZlYXR1cmUnOiAnZGVmYXVsdCBmZWF0dXJlJyxcbiAgICAnZm9yY2UtbWVkaWEtYWxsJzogJ2ZvcmNlIGFsbCBtZWRpYSB0eXBlJyxcbiAgICAndG8tZW1zJzogJ3RvIGVtcycsXG4gICAgJ3Jlc29sdXRpb25zJzogJ3RyYW5zZm9ybSByZXNvbHV0aW9ucycsXG4gICAgJ25vLXF1ZXJpZXMnOiAnbm8gcXVlcmllcycsXG4gICAgJ25vLXF1ZXJ5LWZhbGxiYWNrcyc6ICdubyBxdWVyeSBmYWxsYmFja3MnLFxuICAgICdiYXNlLWZvbnQtc2l6ZSc6ICdiYXNlIGZvbnQgc2l6ZScsXG4gICAgJ2xlZ2FjeS1zeW50YXgnOiAnbGVnYWN5IHN5bnRheCdcbiAgKTtcblxuICBAZWFjaCAkbGVnYWN5LCAkbmV3IGluICRsZWdhY3lWYXJzIHtcbiAgICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygnYnJlYWtwb2ludC0nICsgJGxlZ2FjeSkge1xuICAgICAgQHdhcm4gXCJJbiBvcmRlciB0byBhdm9pZCB2YXJpYWJsZSBuYW1zcGFjZSBjb2xsaXNpb25zLCB3ZSBoYXZlIHVwZGF0ZWQgdGhlIHdheSB0byBjaGFuZ2Ugc2V0dGluZ3MgZm9yIEJyZWFrcG9pbnQuIFBsZWFzZSBjaGFuZ2UgYWxsIGluc3RhbmNlcyBvZiBgJGJyZWFrcG9pbnQtI3skbGVnYWN5fToge3tzZXR0aW5nfX1gIHRvIGBAaW5jbHVkZSBicmVha3BvaW50LXNldCgnI3skbmV3fScsIHt7c2V0dGluZ319KWAuIFZhcmlhYmxlIHNldHRpbmdzLCBhcyB3ZWxsIGFzIHRoaXMgd2FybmluZyB3aWxsIGJlIGRlcHJlY2F0ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS5cIlxuICAgIH1cbiAgfTtcblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgLy8gSGFuZCBjb3JyZWN0IGVhY2ggc2V0dGluZ1xuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoJ2JyZWFrcG9pbnQtZGVmYXVsdC1tZWRpYScpIGFuZCAkYnJlYWtwb2ludC1kZWZhdWx0LW1lZGlhICE9IGJyZWFrcG9pbnQtZ2V0KCdkZWZhdWx0IG1lZGlhJykge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQtc2V0KCdkZWZhdWx0IG1lZGlhJywgJGJyZWFrcG9pbnQtZGVmYXVsdC1tZWRpYSk7XG4gIH1cbiAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoJ2JyZWFrcG9pbnQtZGVmYXVsdC1mZWF0dXJlJykgYW5kICRicmVha3BvaW50LWRlZmF1bHQtZmVhdHVyZSAhPSBicmVha3BvaW50LWdldCgnZGVmYXVsdCBmZWF0dXJlJykge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQtc2V0KCdkZWZhdWx0IGZlYXR1cmUnLCAkYnJlYWtwb2ludC1kZWZhdWx0LWZlYXR1cmUpO1xuICB9XG4gIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKCdicmVha3BvaW50LWZvcmNlLW1lZGlhLWFsbCcpIGFuZCAkYnJlYWtwb2ludC1mb3JjZS1tZWRpYS1hbGwgIT0gYnJlYWtwb2ludC1nZXQoJ2ZvcmNlIGFsbCBtZWRpYSB0eXBlJykge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQtc2V0KCdmb3JjZSBhbGwgbWVkaWEgdHlwZScsICRicmVha3BvaW50LWZvcmNlLW1lZGlhLWFsbCk7XG4gIH1cbiAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoJ2JyZWFrcG9pbnQtdG8tZW1zJykgYW5kICRicmVha3BvaW50LXRvLWVtcyAhPSBicmVha3BvaW50LWdldCgndG8gZW1zJykge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQtc2V0KCd0byBlbXMnLCAkYnJlYWtwb2ludC10by1lbXMpO1xuICB9XG4gIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKCdicmVha3BvaW50LXJlc29sdXRpb25zJykgYW5kICRicmVha3BvaW50LXJlc29sdXRpb25zICE9IGJyZWFrcG9pbnQtZ2V0KCd0cmFuc2Zvcm0gcmVzb2x1dGlvbnMnKSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludC1zZXQoJ3RyYW5zZm9ybSByZXNvbHV0aW9ucycsICRicmVha3BvaW50LXJlc29sdXRpb25zKTtcbiAgfVxuICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygnYnJlYWtwb2ludC1uby1xdWVyaWVzJykgYW5kICRicmVha3BvaW50LW5vLXF1ZXJpZXMgIT0gYnJlYWtwb2ludC1nZXQoJ25vIHF1ZXJpZXMnKSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludC1zZXQoJ25vIHF1ZXJpZXMnLCAkYnJlYWtwb2ludC1uby1xdWVyaWVzKTtcbiAgfVxuICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygnYnJlYWtwb2ludC1uby1xdWVyeS1mYWxsYmFja3MnKSBhbmQgJGJyZWFrcG9pbnQtbm8tcXVlcnktZmFsbGJhY2tzICE9IGJyZWFrcG9pbnQtZ2V0KCdubyBxdWVyeSBmYWxsYmFja3MnKSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludC1zZXQoJ25vIHF1ZXJ5IGZhbGxiYWNrcycsICRicmVha3BvaW50LW5vLXF1ZXJ5LWZhbGxiYWNrcyk7XG4gIH1cbiAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoJ2JyZWFrcG9pbnQtYmFzZS1mb250LXNpemUnKSBhbmQgJGJyZWFrcG9pbnQtYmFzZS1mb250LXNpemUgIT0gYnJlYWtwb2ludC1nZXQoJ2Jhc2UgZm9udCBzaXplJykge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQtc2V0KCdiYXNlIGZvbnQgc2l6ZScsICRicmVha3BvaW50LWJhc2UtZm9udC1zaXplKTtcbiAgfVxuICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygnYnJlYWtwb2ludC1sZWdhY3ktc3ludGF4JykgYW5kICRicmVha3BvaW50LWxlZ2FjeS1zeW50YXggIT0gYnJlYWtwb2ludC1nZXQoJ2xlZ2FjeSBzeW50YXgnKSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludC1zZXQoJ2xlZ2FjeSBzeW50YXgnLCAkYnJlYWtwb2ludC1sZWdhY3ktc3ludGF4KTtcbiAgfVxufSIsIi8qISBGbGlja2l0eSB2MS4yLjFcbmh0dHA6Ly9mbGlja2l0eS5tZXRhZml6enkuY29cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLmZsaWNraXR5LWVuYWJsZWQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5mbGlja2l0eS1lbmFibGVkOmZvY3VzIHsgb3V0bGluZTogbm9uZTsgfVxuXG4uZmxpY2tpdHktdmlld3BvcnQge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLmZsaWNraXR5LXNsaWRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLyogZHJhZ2dhYmxlICovXG5cbi5mbGlja2l0eS1lbmFibGVkLmlzLWRyYWdnYWJsZSB7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbi5mbGlja2l0eS1lbmFibGVkLmlzLWRyYWdnYWJsZSAuZmxpY2tpdHktdmlld3BvcnQge1xuICBjdXJzb3I6IG1vdmU7XG4gIGN1cnNvcjogLXdlYmtpdC1ncmFiO1xuICBjdXJzb3I6IGdyYWI7XG59XG5cbi5mbGlja2l0eS1lbmFibGVkLmlzLWRyYWdnYWJsZSAuZmxpY2tpdHktdmlld3BvcnQuaXMtcG9pbnRlci1kb3duIHtcbiAgY3Vyc29yOiAtd2Via2l0LWdyYWJiaW5nO1xuICBjdXJzb3I6IGdyYWJiaW5nO1xufVxuXG4vKiAtLS0tIHByZXZpb3VzL25leHQgYnV0dG9ucyAtLS0tICovXG5cbi5mbGlja2l0eS1wcmV2LW5leHQtYnV0dG9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgd2lkdGg6IDQ0cHg7XG4gIGhlaWdodDogNDRweDtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBiYWNrZ3JvdW5kOiBoc2xhKDAsIDAlLCAxMDAlLCAwLjc1KTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICAvKiB2ZXJ0aWNhbGx5IGNlbnRlciAqL1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xufVxuXG4uZmxpY2tpdHktcHJldi1uZXh0LWJ1dHRvbjpob3ZlciB7IGJhY2tncm91bmQ6IHdoaXRlOyB9XG5cbi5mbGlja2l0eS1wcmV2LW5leHQtYnV0dG9uOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbiAgYm94LXNoYWRvdzogMCAwIDAgNXB4ICMwOUY7XG59XG5cbi5mbGlja2l0eS1wcmV2LW5leHQtYnV0dG9uOmFjdGl2ZSB7XG4gIGZpbHRlcjogYWxwaGEob3BhY2l0eT02MCk7IC8qIElFOCAqL1xuICBvcGFjaXR5OiAwLjY7XG59XG5cbi5mbGlja2l0eS1wcmV2LW5leHQtYnV0dG9uLnByZXZpb3VzIHsgbGVmdDogMTBweDsgfVxuLmZsaWNraXR5LXByZXYtbmV4dC1idXR0b24ubmV4dCB7IHJpZ2h0OiAxMHB4OyB9XG4vKiByaWdodCB0byBsZWZ0ICovXG4uZmxpY2tpdHktcnRsIC5mbGlja2l0eS1wcmV2LW5leHQtYnV0dG9uLnByZXZpb3VzIHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDEwcHg7XG59XG4uZmxpY2tpdHktcnRsIC5mbGlja2l0eS1wcmV2LW5leHQtYnV0dG9uLm5leHQge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogMTBweDtcbn1cblxuLmZsaWNraXR5LXByZXYtbmV4dC1idXR0b246ZGlzYWJsZWQge1xuICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9MzApOyAvKiBJRTggKi9cbiAgb3BhY2l0eTogMC4zO1xuICBjdXJzb3I6IGF1dG87XG59XG5cbi5mbGlja2l0eS1wcmV2LW5leHQtYnV0dG9uIHN2ZyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMjAlO1xuICB0b3A6IDIwJTtcbiAgd2lkdGg6IDYwJTtcbiAgaGVpZ2h0OiA2MCU7XG59XG5cbi5mbGlja2l0eS1wcmV2LW5leHQtYnV0dG9uIC5hcnJvdyB7XG4gIGZpbGw6ICMzMzM7XG59XG5cbi8qIGNvbG9yICYgc2l6ZSBpZiBubyBTVkcgLSBJRTggYW5kIEFuZHJvaWQgMi4zICovXG4uZmxpY2tpdHktcHJldi1uZXh0LWJ1dHRvbi5uby1zdmcge1xuICBjb2xvcjogIzMzMztcbiAgZm9udC1zaXplOiAyNnB4O1xufVxuXG4vKiAtLS0tIHBhZ2UgZG90cyAtLS0tICovXG5cbi5mbGlja2l0eS1wYWdlLWRvdHMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICBib3R0b206IC0yNXB4O1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG5cbi5mbGlja2l0eS1ydGwgLmZsaWNraXR5LXBhZ2UtZG90cyB7IGRpcmVjdGlvbjogcnRsOyB9XG5cbi5mbGlja2l0eS1wYWdlLWRvdHMgLmRvdCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDEwcHg7XG4gIGhlaWdodDogMTBweDtcbiAgbWFyZ2luOiAwIDhweDtcbiAgYmFja2dyb3VuZDogIzMzMztcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9MjUpOyAvKiBJRTggKi9cbiAgb3BhY2l0eTogMC4yNTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uZmxpY2tpdHktcGFnZS1kb3RzIC5kb3QuaXMtc2VsZWN0ZWQge1xuICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9MTAwKTsgLyogSUU4ICovXG4gIG9wYWNpdHk6IDE7XG59XG4iLCIvKiBodHRwOi8vbWV5ZXJ3ZWIuY29tL2VyaWMvdG9vbHMvY3NzL3Jlc2V0LyBcbiAgIHYyLjAgfCAyMDExMDEyNlxuICAgTGljZW5zZTogbm9uZSAocHVibGljIGRvbWFpbilcbiovXG5cbmh0bWwsIGJvZHksIGRpdiwgc3BhbiwgYXBwbGV0LCBvYmplY3QsIGlmcmFtZSxcbmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsIHAsIGJsb2NrcXVvdGUsIHByZSxcbmEsIGFiYnIsIGFjcm9ueW0sIGFkZHJlc3MsIGJpZywgY2l0ZSwgY29kZSxcbmRlbCwgZGZuLCBlbSwgaW1nLCBpbnMsIGtiZCwgcSwgcywgc2FtcCxcbnNtYWxsLCBzdHJpa2UsIHN0cm9uZywgc3ViLCBzdXAsIHR0LCB2YXIsXG5iLCB1LCBpLCBjZW50ZXIsXG5kbCwgZHQsIGRkLCBvbCwgdWwsIGxpLFxuZmllbGRzZXQsIGZvcm0sIGxhYmVsLCBsZWdlbmQsXG50YWJsZSwgY2FwdGlvbiwgdGJvZHksIHRmb290LCB0aGVhZCwgdHIsIHRoLCB0ZCxcbmFydGljbGUsIGFzaWRlLCBjYW52YXMsIGRldGFpbHMsIGVtYmVkLCBcbmZpZ3VyZSwgZmlnY2FwdGlvbiwgZm9vdGVyLCBoZWFkZXIsIGhncm91cCwgXG5tZW51LCBuYXYsIG91dHB1dCwgcnVieSwgc2VjdGlvbiwgc3VtbWFyeSxcbnRpbWUsIG1hcmssIGF1ZGlvLCB2aWRlbyB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwO1xuICBmb250LXNpemU6IDEwMCU7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cbi8qIEhUTUw1IGRpc3BsYXktcm9sZSByZXNldCBmb3Igb2xkZXIgYnJvd3NlcnMgKi9cbmFydGljbGUsIGFzaWRlLCBkZXRhaWxzLCBmaWdjYXB0aW9uLCBmaWd1cmUsIFxuZm9vdGVyLCBoZWFkZXIsIGhncm91cCwgbWVudSwgbmF2LCBzZWN0aW9uIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5ib2R5IHtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG5vbCwgdWwge1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuYmxvY2txdW90ZSwgcSB7XG4gIHF1b3Rlczogbm9uZTtcbn1cbmJsb2NrcXVvdGU6YmVmb3JlLCBibG9ja3F1b3RlOmFmdGVyLFxucTpiZWZvcmUsIHE6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgY29udGVudDogbm9uZTtcbn1cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7XG59IiwiLypcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qL1xuXG4kc21hbGw6IDMyMHB4O1xuJG1lZGl1bTogNTYwcHg7XG4kbGFyZ2U6IDk5NHB4OyAvLyBUaGlzIHNpemUsIHdpdGggZ3V0dGVyIHBhZGRpbmcgb24gYm90aCBzaWRlcywgbWFrZXMgY29udGVudCA5NjBweCB3aWRlXG5cbiRzbWFsbC1vbmx5OiAkc21hbGwgJG1lZGl1bSAtIDE7XG4kbWVkaXVtLW9ubHk6ICRtZWRpdW0gJGxhcmdlIC0gMTtcbiRsYXJnZS1vbmx5OiAkbGFyZ2U7XG5cbi8qXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5MYXlvdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cbiRzdGFuZGFyZC1zcGFjZTogMjRweDtcblxuLypcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblRyYW5zaXRpb25cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cbi8vIGh0dHA6Ly9tYXR0aGV3bGVpbi5jb20vY2Vhc2VyL1xuXG4kZWFzZS1pbi1vdXQtY3ViaWM6IGN1YmljLWJlemllcigwLjY0NSwgMC4wNDUsIDAuMzU1LCAxLjAwMCk7XG5cbiRkZWZhdWx0LXRyYW5zaXRpb24tZHVyYXRpb246IDE1MG1zO1xuJGRlZmF1bHQtdHJhbnNpdGlvbi1mdW5jdGlvbjogJGVhc2UtaW4tb3V0LWN1YmljO1xuXG4kdHJhbnMtZHVyYXRpb246ICRkZWZhdWx0LXRyYW5zaXRpb24tZHVyYXRpb247XG4kdHJhbnMtZnVuY3Rpb246ICRkZWZhdWx0LXRyYW5zaXRpb24tZnVuY3Rpb247XG5cbi8qXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5Db2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cbiRicm9uemU6ICNhZjk5OGI7XG4kcmVkOiAjZTIyMzFhO1xuJHNhbG1vbjogI2ZmNjY0ODtcblxuJGdyZXktd2hpdGU6ICNmMmYyZjI7XG4kbGlnaHQtbGlnaHQtZ3JleTogI2UyZTJlMjtcbiRsaWdodC1ncmV5OiAjYmNiZWMwO1xuJG1lZGl1bS1saWdodC1ncmV5OiAjOTM5NTk4O1xuJG1lZGl1bS1ncmV5OiAjNjY2O1xuJGRhcmstZ3JleTogIzMzMztcbiRkYXJrLWRhcmstZ3JleTogIzIzMWYyMDtcblxuLy8gQ29udGV4dHVhbGl6ZWQgY29sb3JzXG5cbiRmYWNlYm9vay1ibHVlOiAjNGM2NmE0O1xuJGluc3RhZ3JhbS1ibHVlOiAjMzA2MDg4O1xuJHR1bWJsci1ibHVlOiAjMzU0NjVjO1xuJHR3aXR0ZXItYmx1ZTogIzU1YWNlZTtcbiIsIi8vIFR1bmdzdGVuXG5cbiVmb250LXR1bmdzdGVuIHtcbiAgZm9udC1mYW1pbHk6IFwiVHVuZ3N0ZW4gQVwiLCBcIlR1bmdzdGVuIEJcIiwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xufVxuXG4lZm9udC10dW5nc3Rlbi1tZWRpdW0ge1xuICBAZXh0ZW5kICVmb250LXR1bmdzdGVuO1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG4lZm9udC10dW5nc3Rlbi1zZW1pYm9sZCB7XG4gIEBleHRlbmQgJWZvbnQtdHVuZ3N0ZW47XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbiVmb250LXR1bmdzdGVuLWJvbGQge1xuICBAZXh0ZW5kICVmb250LXR1bmdzdGVuO1xuICBmb250LXdlaWdodDogNzAwO1xufVxuXG4vLyBGdXR1cmFcblxuJWZvbnQtZnV0dXJhIHtcbiAgZm9udC1mYW1pbHk6IFwiZnV0dXJhLXB0XCIsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbn1cblxuJWZvbnQtZnV0dXJhLWxpZ2h0IHtcbiAgQGV4dGVuZCAlZm9udC1mdXR1cmE7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG59XG5cbiVmb250LWZ1dHVyYS1saWdodC1pdGFsaWMge1xuICBAZXh0ZW5kICVmb250LWZ1dHVyYS1saWdodDtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4lZm9udC1mdXR1cmEtYm9vayB7XG4gIEBleHRlbmQgJWZvbnQtZnV0dXJhO1xuICBmb250LXdlaWdodDogNDAwO1xufVxuXG4lZm9udC1mdXR1cmEtYm9vay1pdGFsaWMge1xuICBAZXh0ZW5kICVmb250LWZ1dHVyYS1ib29rO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbiVmb250LWZ1dHVyYS1tZWRpdW0ge1xuICBAZXh0ZW5kICVmb250LWZ1dHVyYTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuJWZvbnQtZnV0dXJhLW1lZGl1bS1pdGFsaWMge1xuICBAZXh0ZW5kICVmb250LWZ1dHVyYS1tZWRpdW07XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLypcbiVmb250LWZ1dHVyYS1oZWF2eSB7XG4gIEBleHRlbmQgJWZvbnQtZnV0dXJhO1xuICBmb250LXdlaWdodDogNzAwO1xufVxuKi9cbiIsIiosXG4qOmJlZm9yZSxcbio6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG5odG1sIHtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuXG5ib2R5LFxuaW5wdXQsXG50ZXh0YXJlYSB7XG4gIEBleHRlbmQgJWZvbnQtZnV0dXJhLWJvb2s7XG4gIGNvbG9yOiAkZGFyay1kYXJrLWdyZXk7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufVxuXG5ib2R5IHtcbiAgYmFja2dyb3VuZDogI2UxZTFlMTtcbn1cblxuYSB7XG4gIGNvbG9yOiAkZGFyay1kYXJrLWdyZXk7XG59XG5cbi8vIFJlc3BvbnNpdmUgc2hvdy9oaWRlIGhlbHBlciBjbGFzc2VzXG5cbi4tbW9iaWxlLW9ubHkge1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRtZWRpdW0pIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi4tdGFibGV0LW9ubHkge1xuICBkaXNwbGF5OiBub25lO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1lZGl1bS1vbmx5KSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuLmpzLWxhenktbG9hZCB7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgJHRyYW5zLWR1cmF0aW9uKjIgJHRyYW5zLWZ1bmN0aW9uO1xuXG4gICYubG9hZGVkIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbi5qcy1oZWFkZXItYmFubmVyLWltYWdlIHtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAkdHJhbnMtZHVyYXRpb24qMiAkdHJhbnMtZnVuY3Rpb247XG5cbiAgJi5sb2FkZWQge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuLmFsbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgcmlnaHQ6IDE0cHg7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtc2l6ZTogMC44NXJlbTtcbn1cblxuLyoqXG4gKiBTdGFuZGFyZCwgd2hpdGUsIHBhZGRlZCwgY29udGVudC1ob2xkaW5nIGJveCB1c2VkIGluIGEgZmV3IGRpZmZlcmVudCBwbGFjZXNcbiAqL1xuLmNvbnRlbnQtYm94IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgbWFyZ2luLWJvdHRvbTogJHN0YW5kYXJkLXNwYWNlO1xuICBwYWRkaW5nOiAkc3RhbmRhcmQtc3BhY2UvMjtcblxuICAuX2hlYWRlcixcbiAgLl9zdWJoZWFkZXIge1xuICAgIEBleHRlbmQgJWZvbnQtZnV0dXJhLW1lZGl1bTtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgfVxuXG4gIC5fc3ViaGVhZGVyIHtcbiAgICBmb250LXNpemU6IDEuM3JlbTtcbiAgICBjb2xvcjogJHNhbG1vbjtcbiAgfVxuXG4gIC5fY2FsbG91dCB7XG4gICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgIGNvbG9yOiAkbWVkaXVtLWdyZXk7XG4gIH1cblxuICBhIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY29sb3I6ICRtZWRpdW0tZ3JleTtcbiAgfVxufVxuIiwiJHN1c3k6IChcbiAgY29sdW1uczogMTIsXG4gIGd1dHRlcnM6IDcvMTAsXG4gIGd1dHRlci1wb3NpdGlvbjogaW5zaWRlLFxuICBnbG9iYWwtYm94LXNpemluZzogYm9yZGVyLWJveFxuKTtcblxuQGluY2x1ZGUgbGF5b3V0KCRzdXN5KTtcblxuJGd1dHRlcnM6IGd1dHRlcnMoKTtcblxuLypcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkNPTFVNTlNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cbi5zaW5nbGUtY29sdW1uIHtcbiAgQGluY2x1ZGUgZnVsbDtcbn1cblxuLypcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkxBWU9VVFNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cbi8qKlxuICogQmFzZSBjb250YWluZXIsIHVzZXMgJ3N0YXRpYycgc2l6aW5nIGFuZCBzbmFwcyB0byAnbGFyZ2UnXG4gKiBhbmQgJ21lZGl1bScgYnJlYWtwb2ludCBzaXplc1xuICovXG4uY29udGFpbmVyIHtcbiAgQGluY2x1ZGUgY29udGFpbmVyO1xuICBtaW4td2lkdGg6ICRzbWFsbDtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRtZWRpdW0pIHtcbiAgICBAaW5jbHVkZSBjb250YWluZXIoJGxhcmdlKTtcbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGxhcmdlKSB7XG4gICAgQGluY2x1ZGUgY29udGFpbmVyKCRsYXJnZSBzdGF0aWMpO1xuICB9XG59XG5cbi8qKlxuICogTGFyZ2VyIGNvbHVtbiBvbiB0aGUgbGVmdCwgc21hbGxlciBjb2x1bW4gb24gdGhlIHJpZ2h0XG4gKlxuICogVXNlZCBvbjpcbiAqICAgICAtIEFydGlzdHNcbiAqICAgICAtIENvbnRhY3RcbiAqICAgICAtIFRvdXJzXG4gKi9cbi5sYXlvdXQtc3RhbmRhcmQge1xuICBAZXh0ZW5kIC5jb250YWluZXI7XG5cbiAgLmNvbHVtbi0xLFxuICAuY29sdW1uLTIge1xuICAgIEBpbmNsdWRlIGZ1bGw7XG4gIH1cblxuICAuY29sdW1uLTIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRsYXJnZSkge1xuICAgIC5jb2x1bW4tMSB7XG4gICAgICBAaW5jbHVkZSBzcGFuKDgpO1xuICAgIH1cblxuICAgIC5jb2x1bW4tMiB7XG4gICAgICBAaW5jbHVkZSBzcGFuKDQpO1xuICAgICAgY2xlYXI6IG5vbmU7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBCb3gtc3RhY2tpbmcgbGF5b3V0IHRoYXQncyAzIGNvbHVtbnMgZm9yIGRlc2t0b3AsIDIgY29sdW1ucyBmb3IgdGFibGV0LCBcbiAqIGFuZCAxIGZvciBtb2JpbGUgc2l6ZVxuICpcbiAqIFVzZWQgb246XG4gKiAgICAgLSBIb21lcGFnZVxuICogICAgIC0gQXJ0aXN0IGRldGFpbCBwYWdlIChib3R0b20pXG4gKiAgICAgLSBBbGJ1bSBkZXRhaWwgcGFnZSAoYm90dG9tKVxuICovXG4ubGF5b3V0LWJveGVzIHtcbiAgQGV4dGVuZCAuY29udGFpbmVyO1xuICBtYXJnaW4tYm90dG9tOiAkc3RhbmRhcmQtc3BhY2U7XG4gIG1hcmdpbi10b3A6ICRzdGFuZGFyZC1zcGFjZTtcbiAgcGFkZGluZy1sZWZ0OiAxOHB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxOHB4O1xuXG4gIC5jb2x1bW4tMSxcbiAgLmNvbHVtbi0yLFxuICAuY29sdW1uLTMge1xuICAgIEBpbmNsdWRlIGZ1bGw7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgbWFyZ2luOiAkZ3V0dGVycyAwO1xuICB9XG5cbiAgLy8gVGFibGV0XG4gIFxuICBAaW5jbHVkZSBicmVha3BvaW50KCRtZWRpdW0pIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDtcblxuICAgIC5jb2x1bW4tMSxcbiAgICAuY29sdW1uLTIsXG4gICAgLmNvbHVtbi0zIHtcbiAgICAgIGNsZWFyOiBub25lO1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1lZGl1bS1vbmx5KSB7XG4gICAgLmNvbHVtbi0xLFxuICAgIC5jb2x1bW4tMiB7XG4gICAgICBAaW5jbHVkZSBzcGFuKDYpO1xuICAgIH1cblxuICAgIC5jb2x1bW4tMyB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC8vIERlc2t0b3BcbiAgXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGxhcmdlKSB7XG4gICAgLmNvbHVtbi0xLFxuICAgIC5jb2x1bW4tMixcbiAgICAuY29sdW1uLTMge1xuICAgICAgQGluY2x1ZGUgc3Bhbig0KTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBTeW1tZXRyaWNhbCBncmlkLCBzaG91bGQgY29udGFpbiBhIHNlcmllcyBvZiBib3hlcyBhbGwgc2l6ZWQgdGhlIHNhbWUgYW5kIFxuICogYWRqdXN0IHRoZW0gYWNjb3JkaW5nIHRvIHNjcmVlbnNpemUuIE5vIGNvbHVtbnMsIGp1c3QgYm94ZXMuXG4gKlxuICogVXNlZCBvbjpcbiAqICAgICAtIFJlbGVhc2VzIChncmlkIHZpZXcpXG4gKiAgICAgLSBTZWFyY2ggcmVzdWx0c1xuICpcbiAqIEhUTUw6XG4gKlxuICogXG4gKi9cbi5sYXlvdXQtYm94LWdyaWQge1xuICAvLyBAdG9kbyBUZXh0IHRydW5jYXRpb24gdG8gYXZvaWQgYm94ZXMgb3ZlcmZsb3dpbmc/XG4gIEBleHRlbmQgLmNvbnRhaW5lcjtcblxuICAuYm94IHtcbiAgICBAaW5jbHVkZSBzcGFuKGZ1bGwpO1xuICAgIGNsZWFyOiBub25lO1xuICAgIHBhZGRpbmctYm90dG9tOiAkZ3V0dGVycztcbiAgICBwYWRkaW5nLXRvcDogJGd1dHRlcnM7XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRtZWRpdW0pIHtcbiAgICAuYm94IHtcbiAgICAgIEBpbmNsdWRlIHNwYW4oNik7XG5cbiAgICAgICY6bnRoLWNoaWxkKDJuKzEpIHtcbiAgICAgICAgY2xlYXI6IGxlZnQ7XG4gICAgICB9XG5cbiAgICAgICY6bnRoLWNoaWxkKDNuKzEpIHtcbiAgICAgICAgY2xlYXI6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbGFyZ2UpIHtcbiAgICAuYm94IHtcbiAgICAgIEBpbmNsdWRlIHNwYW4oNCk7XG5cbiAgICAgICY6bnRoLWNoaWxkKDJuKzEpIHtcbiAgICAgICAgY2xlYXI6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgICY6bnRoLWNoaWxkKDNuKzEpIHtcbiAgICAgICAgY2xlYXI6IGxlZnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogU3VicGFnZSBsYXlvdXQgZm9yIGFydGlzdCBkZXRhaWwgc3ViLWNvbnRlbnQuXG4gKi9cbi5sYXlvdXQtc3VicGFnZSB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBtYXJnaW46ICRzdGFuZGFyZC1zcGFjZSAwIDA7XG4gIHBhZGRpbmc6IDAgMThweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICYuLXZpc2libGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgLl9zdWJwYWdlLWNvbHVtbiB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgQGluY2x1ZGUgZnVsbDtcbiAgICBmbG9hdDogbm9uZTtcbiAgfVxuXG4gIC5fc3VicGFnZS1jb250ZW50LXdyYXBwZXIge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgLy8gU3RhbmRhcmQgaGVhZC9jb250ZW50IHN0eWxpbmdcblxuICAuX3BhZ2UtaGVhZCxcbiAgLl9zdWJwYWdlLWNvbnRlbnQge1xuICAgIHBhZGRpbmc6ICRzdGFuZGFyZC1zcGFjZSAvIDI7XG4gIH1cblxuICAuX3N1YnBhZ2UtY29udGVudCB7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gIH1cblxuICAvLyBGbG9hdHkgYWN0aW9uIGJ1dHRvbnNcblxuICAuX3N1YnBhZ2UtYWN0aW9ucy1tZW51IHtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICB6LWluZGV4OiAyNTtcbiAgICBkaXNwbGF5OiBibG9jaztcblxuICAgIC5fYnV0dG9uIHtcbiAgICAgIEBleHRlbmQgJWZvbnQtZnV0dXJhLW1lZGl1bTtcbiAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAkdHJhbnMtZHVyYXRpb24gJHRyYW5zLWZ1bmN0aW9uO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHQtZ3JleTtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgZm9udC1zaXplOiAxLjE1cmVtO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIHBhZGRpbmc6IDEycHggMThweDtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAuaWNvbiB7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogMTBweDtcblxuICAgICAgICAmLi1kb3dubG9hZCB7XG4gICAgICAgICAgYmFja2dyb3VuZC1zaXplOiAxMnB4OyAgICAgICAgICBcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLi1jbG9zZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtZWRpdW0tZ3JleTtcbiAgICAgIH1cblxuICAgICAgc3BhbiB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgcmlnaHQ6IDEwcHg7XG4gICAgICB9XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmVkO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuLWRvdWJsZSB7XG4gICAgICAuX2J1dHRvbiB7XG4gICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWVkaXVtKSB7XG4gICAgcGFkZGluZzogMDtcblxuICAgIC5fc3VicGFnZS1hY3Rpb25zLW1lbnUge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwLjc1ZW07XG4gICAgICByaWdodDogJGd1dHRlcnM7XG4gICAgICBcbiAgICAgIC5fYnV0dG9uLFxuICAgICAgJi4tZG91YmxlIC5fYnV0dG9uIHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgcGFkZGluZzogNnB4IDM2cHg7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxcHg7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbGFyZ2UpIHtcbiAgICAuX3N1YnBhZ2UtYWN0aW9ucy1tZW51IHtcbiAgICAgIHJpZ2h0OiAwO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIExheW91dCBmb3Igc3VicGFnZSBjb250ZW50LCB1c3VhbGx5IGEgcGhvdG8gYW5kIGxpc3R5IGJpdHMgaW4gdGhlIGxlZnQgY29sdW1uXG4gKiB3aXRoIGxvbmdlciBjb250ZW50IGluIHRoZSByaWdodC4gU2hvdWxkIG5lc3Qgd2l0aGluZyAubGF5b3V0LXN1YnBhZ2VcbiAqIFxuICogVXNlZCBvbjpcbiAqICAgICAtIEFsYnVtIGRldGFpbFxuICogICAgIC0gQWxidW0gdHJhY2sgbGlzdGluZ1xuICovXG4ubGF5b3V0LXN0YW5kYXJkLXN1YnBhZ2Uge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgcGFkZGluZy1ib3R0b206ICRndXR0ZXJzO1xuICBwYWRkaW5nLXRvcDogJGd1dHRlcnM7XG5cbiAgLmNvbHVtbi0xLFxuICAuY29sdW1uLTIge1xuICAgIEBpbmNsdWRlIGZ1bGw7XG4gIH1cblxuICAuX2ltYWdlIHtcbiAgICBpbWcge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRsYXJnZSkge1xuICAgIC5jb2x1bW4tMSxcbiAgICAuY29sdW1uLTIge1xuICAgICAgQGluY2x1ZGUgbm9icmVhaztcbiAgICB9XG5cbiAgICAuY29sdW1uLTEge1xuICAgICAgQGluY2x1ZGUgc3Bhbig0KTtcbiAgICB9XG5cbiAgICAuY29sdW1uLTIge1xuICAgICAgQGluY2x1ZGUgc3Bhbig4KTtcbiAgICB9XG5cbiAgICAuX2ltYWdlIHtcbiAgICAgIEBpbmNsdWRlIHB1bGwoMC42OCk7XG4gICAgfVxuICB9XG59IiwiLyoqXG4gKiBCb3Jyb3dlZCBmcm9tIEZvdW5kYXRpb25cbiAqL1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCB2aWRlbyBjb250YWluZXIgcGFkZGluZyBhbmQgbWFyZ2luc1xuJGZsZXgtdmlkZW8tcGFkZGluZy10b3A6IDAgIWRlZmF1bHQ7XG4kZmxleC12aWRlby1wYWRkaW5nLWJvdHRvbTogNTYuMjUlICFkZWZhdWx0O1xuJGZsZXgtdmlkZW8tbWFyZ2luLWJvdHRvbTogMXJlbSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCB3aWRlc2NyZWVuIGJvdHRvbSBwYWRkaW5nXG4kZmxleC12aWRlby13aWRlc2NyZWVuLXBhZGRpbmctYm90dG9tOiA1Ni4zNCUgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmbGV4LXZpZGVvLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy10b3A6ICRmbGV4LXZpZGVvLXBhZGRpbmctdG9wO1xuICBwYWRkaW5nLWJvdHRvbTogJGZsZXgtdmlkZW8tcGFkZGluZy1ib3R0b207XG4gIGhlaWdodDogMDtcbiAgbWFyZ2luLWJvdHRvbTogJGZsZXgtdmlkZW8tbWFyZ2luLWJvdHRvbTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAmLndpZGVzY3JlZW4geyBwYWRkaW5nLWJvdHRvbTogJGZsZXgtdmlkZW8td2lkZXNjcmVlbi1wYWRkaW5nLWJvdHRvbTsgfVxuICAmLnZpbWVvIHsgcGFkZGluZy10b3A6IDA7IH1cblxuICBpZnJhbWUsXG4gIG9iamVjdCxcbiAgZW1iZWQsXG4gIHZpZGVvIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG59IiwiLy8gUGFnZSBoZWFkbGluZSBiYXJcblxuLnBhZ2UtaGVhZGxpbmUge1xuICBAaW5jbHVkZSBmdWxsO1xuICBmbG9hdDogbm9uZTtcbiAgbWFyZ2luOiAkc3RhbmRhcmQtc3BhY2UgMDtcblxuICAuX3BhZ2UtaGVhZGxpbmUtaW5uZXIge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIH1cblxuICAubGF5b3V0LWJveC1ncmlkICYge1xuICAgIG1hcmdpbi1ib3R0b206ICRzdGFuZGFyZC1zcGFjZSAtIDE3cHg7IC8vIFN1YnRyYWN0IHRoZSBhcHByb3hpbWF0ZSAuYm94IHRvcCBwYWRkaW5nXG4gIH1cblxuICAuX3BhZ2UtaGVhZCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gIH1cblxuICAmLi1zdWJoZWFkIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgfVxufVxuXG4uX3BhZ2UtaGVhZCxcbi5fcGFnZS1zdWJoZWFkIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAxMnB4O1xuICBjb2xvcjogJHJlZDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLl9wYWdlLWhlYWQge1xuICBmb250LXNpemU6IDEuNzVyZW07XG4gIGNvbG9yOiAkcmVkO1xufVxuXG4vLyBQYWdlIChzZWFyY2gpIHN1Yi1oZWFkbGluZVxuXG4uX3BhZ2Utc3ViaGVhZCB7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBjb2xvcjogJGRhcmstZGFyay1ncmV5O1xufVxuXG4ucGFnZS1zdWJoZWFkbGluZSB7XG4gIEBpbmNsdWRlIGZ1bGw7XG4gIGZsb2F0OiBub25lO1xuICBtYXJnaW46ICRzdGFuZGFyZC1zcGFjZSAwO1xuXG4gIC5fcGFnZS1zdWJoZWFkbGluZS1pbm5lciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGxpZ2h0LWdyZXk7XG5cbiAgICAuX2NvdW50IHtcbiAgICAgIGNvbG9yOiAkcmVkO1xuICAgIH1cblxuICAgIC5fc2VhcmNoLWFsbCB7XG4gICAgICBmb250LXNpemU6IDAuODVyZW07XG4gICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgIH1cbiAgfVxuXG4gIC5sYXlvdXQtYm94LWdyaWQgJiB7XG4gICAgbWFyZ2luLWJvdHRvbTogJHN0YW5kYXJkLXNwYWNlIC0gMTdweDsgLy8gU3VidHJhY3QgdGhlIGFwcHJveGltYXRlIC5ib3ggdG9wIHBhZGRpbmdcbiAgfVxufVxuXG4vLyBTdGFuZGFyZCBib2R5IHRleHRcblxuLnN0YW5kYXJkLXRleHQge1xuICBmb250LXNpemU6IDEuM2VtO1xuICBsaW5lLWhlaWdodDogMS43ZW07XG5cbiAgLl9wYWdlLWhlYWQge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgfVxuXG4gIHAge1xuICAgIG1hcmdpbjogMXJlbSAwO1xuICB9XG5cbiAgc3Ryb25nLFxuICBiIHtcbiAgICBAZXh0ZW5kICVmb250LWZ1dHVyYS1tZWRpdW07XG4gIH1cblxuICBlbSxcbiAgaSB7XG4gICAgQGV4dGVuZCAlZm9udC1mdXR1cmEtYm9vay1pdGFsaWM7XG4gIH1cblxuICAubm8tdG91Y2hldmVudHMgJiBhOmhvdmVyIHtcbiAgICBjb2xvcjogJHJlZDtcbiAgfVxuXG4gIGlmcmFtZSB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5zaG9ydGNvZGUteW91dHViZSxcbiAgLnNob3J0Y29kZS12aW1lbyB7XG4gICAgQGluY2x1ZGUgZmxleC12aWRlby1jb250YWluZXI7XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRsYXJnZSkge1xuICAgIGZvbnQtc2l6ZTogMS4xNWVtO1xuICB9XG59XG5cbi8vIEhlYWRlcnMgZm9yIG1lc3NhZ2VzIGFuZCBjb250ZW50IGxpc3RpbmdzIHRoYXQgY2FuIGJlIGZpbHRlcmVkLCBvciBwb3NzaWJseSBlbXB0eVxuXG4uc2hvd2luZy1oZWFkLFxuLmVtcHR5LWhlYWQge1xuICBAaW5jbHVkZSBmdWxsO1xuICBmbG9hdDogbm9uZTtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIG1hcmdpbjogMCAwICRzdGFuZGFyZC1zcGFjZTtcblxuICBzdHJvbmcge1xuICAgIEBleHRlbmQgJWZvbnQtZnV0dXJhLW1lZGl1bTtcbiAgfVxuXG4gIC5wYWdlLWhlYWRsaW5lICsgJiB7XG4gICAgbWFyZ2luLXRvcDogJHN0YW5kYXJkLXNwYWNlO1xuICB9XG59XG5cbi5lbXB0eS1oZWFkIHtcbiAgJixcbiAgYSB7XG4gICAgY29sb3I6ICRyZWQ7XG4gIH1cbn1cblxuLy8gTWVzc2FnZXNcblxuLm1lc3NhZ2VzIHtcbiAgQGV4dGVuZCAuY29udGFpbmVyO1xuICBAZXh0ZW5kICVmb250LWZ1dHVyYS1tZWRpdW07XG5cbiAgdWwge1xuICAgIEBpbmNsdWRlIGZ1bGw7XG4gICAgZmxvYXQ6IG5vbmU7XG4gIH1cblxuICBsaSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHJlZDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICBtYXJnaW46ICRzdGFuZGFyZC1zcGFjZSBhdXRvO1xuICAgIHBhZGRpbmc6ICRzdGFuZGFyZC1zcGFjZSAvIDI7XG4gIH1cbn1cbiIsIi8vIEljb25zXG5cbi5pY29uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgNTAlO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBAaW5jbHVkZSBoaWRlLXRleHQ7XG5cbiAgLy8gTG9hZGluZ1xuXG4gICYuLWxvYWRpbmcge1xuICAgIGJhY2tncm91bmQ6IHVybCgnLi4vLi4vaW1hZ2VzL2xvYWRpbmctc3Bpbi5zdmcnKSBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiAxOHB4IDE4cHg7XG4gICAgaGVpZ2h0OiAxOHB4O1xuICAgIHdpZHRoOiAxOHB4O1xuICB9XG5cbiAgLy8gQWxidW0gaG92ZXIvaW5mb1xuICAmLi1pbmZvIHtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoJy4uLy4uL2ltYWdlcy9pY29ucy9zaGFyZWQvaWNvbi1pbmZvLnN2ZycpIG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDM2cHggMzZweDtcbiAgICBoZWlnaHQ6IDM2cHg7XG4gICAgd2lkdGg6IDM2cHg7XG4gIH1cblxuICAmLi16b29tIHtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoJy4uLy4uL2ltYWdlcy9pY29ucy9zaGFyZWQvaWNvbi16b29tLnN2ZycpIG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDM2cHggMzZweDtcbiAgICBoZWlnaHQ6IDM2cHg7XG4gICAgd2lkdGg6IDM2cHg7XG4gIH1cblxuICAvLyBMaXN0L2dyaWQgaWNvbnNcblxuICAmLi1ncmlkLFxuICAmLi1saXN0IHtcbiAgICBoZWlnaHQ6IDEzcHg7XG4gICAgd2lkdGg6IDEzcHg7XG4gIH1cblxuICAmLi1ncmlkIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uLy4uL2ltYWdlcy9pY29ucy9zaGFyZWQvaWNvbi10aWxlLWdyYXkuc3ZnJyk7XG5cbiAgICBhOmhvdmVyICYsXG4gICAgLm9uICYge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi8uLi9pbWFnZXMvaWNvbnMvc2hhcmVkL2ljb24tdGlsZS1zYWxtb24uc3ZnJyk7XG4gICAgfVxuICB9XG5cbiAgJi4tbGlzdCB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi8uLi9pbWFnZXMvaWNvbnMvc2hhcmVkL2ljb24tbGluZS1ncmF5LnN2ZycpO1xuXG4gICAgYTpob3ZlciAmLFxuICAgIC5vbiAmIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vLi4vaW1hZ2VzL2ljb25zL3NoYXJlZC9pY29uLWxpbmUtc2FsbW9uLnN2ZycpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFB1bGwgZG93bi91cCBhcnJvd3NcbiAgXG4gICYuLXB1bGwtZG93bixcbiAgJi4tcHVsbC11cCB7XG4gICAgaGVpZ2h0OiA5cHg7XG4gICAgd2lkdGg6IDlweDtcbiAgfVxuXG4gICYuLXB1bGwtZG93biB7XG4gICAgJixcbiAgICBhOmhvdmVyICYuLWxpZ2h0IHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vLi4vaW1hZ2VzL2ljb25zL3NoYXJlZC9pY29uLXB1bGwtZG93bi1ibGFjay5zdmcnKTtcbiAgICB9XG5cbiAgICAmLi1saWdodCxcbiAgICBhOmhvdmVyICYge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi8uLi9pbWFnZXMvaWNvbnMvc2hhcmVkL2ljb24tcHVsbC1kb3duLXdoaXRlLnN2ZycpO1xuICAgIH1cbiAgfVxuXG4gICYuLXB1bGwtdXAge1xuICAgICYsXG4gICAgYTpob3ZlciAmLi1saWdodCB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uLy4uL2ltYWdlcy9pY29ucy9zaGFyZWQvaWNvbi1wdWxsLXVwLWJsYWNrLnN2ZycpO1xuICAgIH1cblxuICAgICYuLWxpZ2h0LFxuICAgIGE6aG92ZXIgJiB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uLy4uL2ltYWdlcy9pY29ucy9zaGFyZWQvaWNvbi1wdWxsLXVwLXdoaXRlLnN2ZycpO1xuICAgIH1cbiAgfVxuXG4gIC8vIExlZnQgYXJyb3dcbiAgXG4gICYuLWFycm93LWxlZnQge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vLi4vaW1hZ2VzL2ljb25zL3NoYXJlZC9pY29uLWFycm93LWxlZnQuc3ZnJyk7XG4gICAgaGVpZ2h0OiAxMHB4O1xuICAgIHdpZHRoOiA2cHg7XG5cbiAgICBhOmhvdmVyICYge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi8uLi9pbWFnZXMvaWNvbnMvc2hhcmVkL2ljb24tYXJyb3ctbGVmdC1yZWQuc3ZnJyk7XG4gICAgfVxuXG4gICAgJi4td2hpdGUsXG4gICAgYTpob3ZlciAmLi13aGl0ZSB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uLy4uL2ltYWdlcy9pY29ucy9zaGFyZWQvaWNvbi1hcnJvdy1sZWZ0LXdoaXRlLnN2ZycpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFJpZ2h0IGFycm93XG4gIFxuICAmLi1hcnJvdy1yaWdodCB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi8uLi9pbWFnZXMvaWNvbnMvc2hhcmVkL2ljb24tYXJyb3ctcmlnaHQuc3ZnJyk7XG4gICAgaGVpZ2h0OiAxMHB4O1xuICAgIHdpZHRoOiA2cHg7XG5cbiAgICBhOmhvdmVyICYge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi8uLi9pbWFnZXMvaWNvbnMvc2hhcmVkL2ljb24tYXJyb3ctcmlnaHQtcmVkLnN2ZycpO1xuICAgIH1cblxuICAgICYuLXdoaXRlLFxuICAgIGE6aG92ZXIgJi4td2hpdGUge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi8uLi9pbWFnZXMvaWNvbnMvc2hhcmVkL2ljb24tYXJyb3ctcmlnaHQtd2hpdGUuc3ZnJyk7XG4gICAgfVxuICB9XG5cbiAgLy8gRGVsZXRlXG5cbiAgJi4tZGVsZXRlIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uLy4uL2ltYWdlcy9pY29ucy9zaGFyZWQvaWNvbi14LXdoaXRlLnN2ZycpO1xuICAgIGJhY2tncm91bmQtc2l6ZTogMTZweCAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICB3aWR0aDogMTZweDtcblxuICAgICYuLXJlZCB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uLy4uL2ltYWdlcy9pY29ucy9zaGFyZWQvaWNvbi14LXJlZC5zdmcnKTtcbiAgICB9XG5cbiAgICAmLi1ncmV5IHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vLi4vaW1hZ2VzL2ljb25zL3NoYXJlZC9pY29uLXgtZ3JleS5zdmcnKTtcbiAgICB9XG4gIH1cblxuICAvLyBEb3dubG9hZFxuXG4gICYuLWRvd25sb2FkIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uLy4uL2ltYWdlcy9pY29ucy9zaGFyZWQvaWNvbi1hcnJvdy1zdGVtLWRvd24td2hpdGUuc3ZnJyk7XG4gICAgYmFja2dyb3VuZC1zaXplOiAxNnB4IDE2cHg7XG4gICAgaGVpZ2h0OiAxNnB4O1xuICAgIHdpZHRoOiAxNnB4O1xuICB9XG5cbiAgLy8gU29jaWFsXG4gIFxuICAmLi1mYWNlYm9vay4tZGFyayxcbiAgJi4tdHdpdHRlci4tZGFyayxcbiAgJi4taW5zdGFncmFtLi1kYXJrLFxuICAmLi10dW1ibHIuLWRhcmsge1xuICAgIGJhY2tncm91bmQtc2l6ZTogMThweCAxOHB4O1xuICAgIGhlaWdodDogMThweDtcbiAgICB3aWR0aDogMThweDtcbiAgfVxuXG4gICYuLWZhY2Vib29rIHtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDE2cHggMTZweDtcbiAgICAmLi1kYXJrIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vLi4vaW1hZ2VzL2ljb25zL3NvY2lhbC9mYWNlYm9vay1kYXJrLWdyZXkuc3ZnJyk7XG4gICAgfVxuICB9XG5cbiAgJi4tdHdpdHRlciB7XG4gICAgJi4tZGFyayB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uLy4uL2ltYWdlcy9pY29ucy9zb2NpYWwvdHdpdHRlci1kYXJrLWdyZXkuc3ZnJyk7XG4gICAgfVxuICB9XG5cbiAgJi4taW5zdGFncmFtIHtcbiAgICAmLi1kYXJrIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vLi4vaW1hZ2VzL2ljb25zL3NvY2lhbC9pbnN0YWdyYW0tZGFyay1ncmV5LnN2ZycpO1xuICAgIH1cbiAgfVxuXG4gICYuLXR1bWJsciB7XG4gICAgJi4tZGFyayB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uLy4uL2ltYWdlcy9pY29ucy9zb2NpYWwvdHVtYmxyLWRhcmstZ3JleS5zdmcnKTtcbiAgICB9XG4gIH1cbn0iLCIuc3RhbmRhcmQtZm9ybSB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgJGxpZ2h0LWxpZ2h0LWdyZXk7XG4gIHBhZGRpbmctdG9wOiAxcmVtO1xuICB3aWR0aDogMTAwJTtcblxuICBpbnB1dCxcbiAgdGV4dGFyZWEsXG4gIGxhYmVsIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IDEuMTVyZW07XG4gIH1cblxuICBpbnB1dCxcbiAgdGV4dGFyZWEge1xuICAgIEBleHRlbmQgJWZvbnQtZnV0dXJhLWJvb2s7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIH1cblxuICBpbnB1dFt0eXBlPVwidGV4dFwiXSxcbiAgaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxuICBpbnB1dFt0eXBlPVwidXJsXCJdLFxuICB0ZXh0YXJlYSB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHQtbGlnaHQtZ3JleTtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAkbGlnaHQtbGlnaHQtZ3JleTtcbiAgICBsaW5lLWhlaWdodDogMS41ZW07XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICBzZWxlY3Qge1xuICAgIEBleHRlbmQgJWZvbnQtZnV0dXJhLWJvb2s7XG4gICAgYmFja2dyb3VuZDogdXJsKCcuLi8uLi9pbWFnZXMvaWNvbnMvc2hhcmVkL2ljb24tYXJyb3ctZG93bi1ncmV5LnN2ZycpIDk4JSA1MCUgbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogMTJweDtcbiAgICBmb250LXNpemU6IDEuMTVyZW07XG4gICAgbWFyZ2luLXRvcDogLTFweDtcbiAgICBwYWRkaW5nOiAwLjc1cmVtO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgfVxuXG4gIC4tZXJyb3Ige1xuICAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuICAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXSxcbiAgICBpbnB1dFt0eXBlPVwidXJsXCJdLFxuICAgIHRleHRhcmVhIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJHJlZDtcbiAgICB9XG4gIH1cblxuICBsYWJlbCB7XG4gICAgQGV4dGVuZCAlZm9udC1mdXR1cmEtbWVkaXVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICB9XG5cbiAgLl9mb3JtLWlucHV0ICsgLl9mb3JtLWlucHV0IHtcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICB9XG5cbiAgdGV4dGFyZWEge1xuICAgIG1pbi1oZWlnaHQ6IDIwMHB4O1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxuXG4gIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICAgIEBleHRlbmQgJWZvbnQtZnV0dXJhLWxpZ2h0O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRzYWxtb247XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIGJvcmRlcjogMDtcbiAgfVxuXG4gIC5fZm9ybS1tZXNzYWdlIHtcbiAgICBjb2xvcjogJHJlZDtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgfVxufSIsIiRuYXYtYm9yZGVyLXNpemU6IDRweDtcbiRkZXNrdG9wLWhlYWRlci13aGl0ZS1hcmVhOiA2MHB4O1xuJG1vYmlsZS1oZWFkZXItd2hpdGUtYXJlYTogNTJweDtcbiRsb2dvLWFzcGVjdC1yYXRpbzogMy41IC8gMTtcblxuJGRlc2t0b3AtaGVhZGVyLWhlaWdodDogJGRlc2t0b3AtaGVhZGVyLXdoaXRlLWFyZWEgKyAkbmF2LWJvcmRlci1zaXplO1xuJGxvZ28taGVpZ2h0OiAkZGVza3RvcC1oZWFkZXItd2hpdGUtYXJlYSAqIDAuNTg7XG4kbG9nby13aWR0aDogJGxvZ28taGVpZ2h0ICogJGxvZ28tYXNwZWN0LXJhdGlvO1xuXG4kbW9iaWxlLWhlYWRlci1oZWlnaHQ6ICRtb2JpbGUtaGVhZGVyLXdoaXRlLWFyZWEgKyAkbmF2LWJvcmRlci1zaXplO1xuJGxvZ28taGVpZ2h0LXNtYWxsOiAkbW9iaWxlLWhlYWRlci13aGl0ZS1hcmVhICogMC41ODtcbiRsb2dvLXdpZHRoLXNtYWxsOiAkbG9nby1oZWlnaHQtc21hbGwgKiAkbG9nby1hc3BlY3QtcmF0aW87XG5cbi50b3AtZml4ZWQge1xuICBwYWRkaW5nLXRvcDogJG1vYmlsZS1oZWFkZXItaGVpZ2h0O1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRsYXJnZSkge1xuICAgIHBhZGRpbmctdG9wOiAkZGVza3RvcC1oZWFkZXItaGVpZ2h0O1xuICB9XG59XG5cbi5oZWFkZXIge1xuICAuX2hlYWRlci13cmFwcGVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlci1ib3R0b206ICRuYXYtYm9yZGVyLXNpemUgc29saWQgJHJlZDtcbiAgICBoZWlnaHQ6ICRtb2JpbGUtaGVhZGVyLWhlaWdodDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMTAwO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbGFyZ2UpIHtcbiAgICAgIGhlaWdodDogJGRlc2t0b3AtaGVhZGVyLWhlaWdodDtcbiAgICB9XG4gIH1cblxuICAudG9wLWZpeGVkICYge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICB6LWluZGV4OiAxMDAwMDtcbiAgfVxuXG4gIC5faGVhZGVyLWNvbnRlbnQge1xuICAgIEBleHRlbmQgLmNvbnRhaW5lcjtcbiAgfVxuXG4gIC5fbG9nbyB7XG4gICAgQGluY2x1ZGUgc3BhbigzKTtcbiAgICBtYXJnaW46IDA7XG5cbiAgICBtYXJnaW4tdG9wOiAoJG1vYmlsZS1oZWFkZXItaGVpZ2h0IC8gMikgLSAoJGxvZ28taGVpZ2h0LXNtYWxsIC8gMik7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRsYXJnZSkge1xuICAgICAgbWFyZ2luLXRvcDogKCRkZXNrdG9wLWhlYWRlci1oZWlnaHQgLyAyKSAtICgkbG9nby1oZWlnaHQgLyAyKTtcbiAgICB9XG5cbiAgICBzcGFuIHtcbiAgICAgIEBpbmNsdWRlIGhpZGUtdGV4dDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi8uLi9pbWFnZXMvbG9nby5zdmcnKTtcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6ICRsb2dvLXdpZHRoLXNtYWxsICRsb2dvLWhlaWdodC1zbWFsbDtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XG4gICAgICBoZWlnaHQ6ICRsb2dvLWhlaWdodC1zbWFsbDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIHRleHQtaW5kZW50OiAyMDAlOyAvLyBoaWRlLXRleHQgZG9lc24ndCBzZWVtIHRvIHNldCB0aGlzIHNpZ25pZmljYW50bHkgZW5vdWdoIGZvciBtb2JpbGVcbiAgICAgIHdpZHRoOiAkbG9nby13aWR0aC1zbWFsbDtcblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbGFyZ2UpIHtcbiAgICAgICAgd2lkdGg6ICRsb2dvLXdpZHRoO1xuICAgICAgICBoZWlnaHQ6ICRsb2dvLWhlaWdodDtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiAkbG9nby13aWR0aCAkbG9nby1oZWlnaHQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIE1haW4gbmF2aWdhdGlvblxuXG4ubmF2IHtcbiAgJi4tbW9iaWxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRkYXJrLWRhcmstZ3JleSwgMC45NSk7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAkbW9iaWxlLWhlYWRlci1oZWlnaHQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgei1pbmRleDogOTk7XG5cbiAgICAubmF2LW9wZW4gJiB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRsaWdodC1saWdodC1ncmV5O1xuICAgICAgcGFkZGluZzogOHB4IDA7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBmb250LXNpemU6IDEuMTVyZW07XG4gICAgICBsaW5lLWhlaWdodDogMi4ycmVtO1xuICAgICAgXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGxhcmdlKSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gICYuLWRlc2t0b3Age1xuICAgIEBleHRlbmQgJWZvbnQtdHVuZ3N0ZW4tbWVkaXVtO1xuICAgIEBpbmNsdWRlIHNwYW4oNiBuby1ndXR0ZXJzKTtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRsYXJnZSkge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICB0cmFuc2l0aW9uOiBjb2xvciAkdHJhbnMtZHVyYXRpb24gJHRyYW5zLWZ1bmN0aW9uO1xuICAgICAgY29sb3I6ICRkYXJrLWRhcmstZ3JleTtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGhlaWdodDogJGRlc2t0b3AtaGVhZGVyLXdoaXRlLWFyZWE7XG4gICAgICBsaW5lLWhlaWdodDogJGRlc2t0b3AtaGVhZGVyLXdoaXRlLWFyZWEgLSAxMHB4O1xuICAgICAgcGFkZGluZy10b3A6IDEwcHg7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gICAgICAvLyBIb3ZlciBzdGF0ZSBmb3IgbWFpbiBuYXYgYnV0dG9uc1xuICAgICAgICBcbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogJHJlZDtcbiAgICAgIH1cblxuICAgICAgLy8gU2hvdyBzdHJpa2UtdGhyb3VnaCBvbmx5IGZvciBvbiBzdGF0ZVxuICAgIFxuICAgICAgLnBhZ2UtYXJ0aXN0cyAmLi1hcnRpc3RzLFxuICAgICAgLnBhZ2UtcmVsZWFzZXMgJi4tcmVsZWFzZXMsXG4gICAgICAucGFnZS10b3VycyAmLi10b3VycyxcbiAgICAgIC5wYWdlLW5ld3MgJi4tbmV3cyB7XG4gICAgICAgIGNvbG9yOiAkcmVkO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gSGFtYnVyZ2VyIG1lbnUgY29sdW1uIHRoYXQgZGlzcGxheXMgb24gc21hbGwgYW5kIG1lZGl1bSBzaXplXG5cbi5tb2JpbGUtdG9wLXVpIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIEBpbmNsdWRlIHNwYW4oOSk7XG4gIGhlaWdodDogJG1vYmlsZS1oZWFkZXItaGVpZ2h0O1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGxhcmdlKSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC5oYW1idXJnZXIge1xuICAgIEBleHRlbmQgLmljb247XG4gICAgYmFja2dyb3VuZC1zaXplOiAxNnB4IDE2cHg7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi8uLi9pbWFnZXMvaWNvbnMvbW9iaWxlL21vYmlsZS1tZW51LnN2ZycpO1xuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgcGFkZGluZzogZmxvb3IoKCRtb2JpbGUtaGVhZGVyLWhlaWdodCAtICRuYXYtYm9yZGVyLXNpemUgLSAxNnB4KSAvIDIpO1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIFxuXG4gICAgLm5hdi1vcGVuICYge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi8uLi9pbWFnZXMvaWNvbnMvbW9iaWxlL21vYmlsZS1tZW51LWhpZ2hsaWdodGVkLnN2ZycpO1xuICAgIH1cbiAgfVxufVxuXG4vLyBEcmF3ZXJcblxuLmRyYXdlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6ICRkZXNrdG9wLWhlYWRlci1oZWlnaHQ7XG4gIHdpZHRoOiAxMDAlO1xuICB6LWluZGV4OiA2MDtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRsYXJnZSkge1xuICAgICYuLWFuaW1hdGUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG5cbiAgLy8gU2luY2UgdGhlIGRyYXdlciBpcyB2YXJpYWJsZSBoZWlnaHQsIHNldCB0aGUgaGlkZSB0cmFuc2xhdGVZIG9uIGxvYWQsIHRoZW4gYWRkIHRoaXMgY2xhc3NcblxuICAmLi1hbmltYXRlIHtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gJHRyYW5zLWR1cmF0aW9uKjIgJHRyYW5zLWZ1bmN0aW9uO1xuICB9XG59XG5cbi5fZHJhd2VyLWNvbnRlbnQge1xuICBiYWNrZ3JvdW5kOiAkZGFyay1ncmV5O1xuICBsZXR0ZXItc3BhY2luZzogMC4xNWVtO1xuICBsaW5lLWhlaWdodDogMS41ZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHdpZHRoOiAxMDAlO1xuICB6LWluZGV4OiA3NTtcblxuICAuY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogMTBweCAwO1xuICB9XG5cbiAgLl9pdGVtIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG1hcmdpbjogJGd1dHRlcnMgMDtcbiAgICBwYWRkaW5nOiAwICRndXR0ZXJzIDAgMDtcbiAgfVxuXG4gIGEge1xuICAgIHRyYW5zaXRpb246IGNvbG9yICR0cmFucy1kdXJhdGlvbiAkdHJhbnMtZnVuY3Rpb247XG4gICAgY29sb3I6ICRsaWdodC1ncmV5O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICYuYWxsLWJ1dHRvbiB7XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGxpZ2h0LWdyZXk7XG4gICAgICBtYXJnaW4tdG9wOiAkZ3V0dGVycztcbiAgICAgIHBhZGRpbmctdG9wOiAkZ3V0dGVycztcbiAgICB9IFxuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICB9XG4gIH1cblxuICAvLyBcIkVtcHR5XCIgaW5kaWNhdG9yIG1lc3NhZ2VcblxuICAuZW1wdHktaGVhZCB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC1zaXplOiAxLjNyZW07XG4gICAgbWFyZ2luLXRvcDogJHN0YW5kYXJkLXNwYWNlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gIC8vIEFydGlzdCBzdWJtZW51XG5cbiAgLi1hcnRpc3Qtc3VibWVudSAmIHtcbiAgICAuX2NvbCB7XG4gICAgICBAaW5jbHVkZSBzcGFuKDMpO1xuICAgIH1cbiAgfVxufVxuXG4vLyBTZWFyY2ggcmVzdWx0cyBkcmF3ZXJcblxuLy8gU2VhcmNoIGZvcm1cbiAgXG4uZHJhd2VyLi1zZWFyY2gge1xuICAuX2RyYXdlci1jb250ZW50IHtcbiAgICAuX2NvbCB7XG4gICAgICBAaW5jbHVkZSBzcGFuKDIuNCk7XG4gICAgICBmbG9hdDogcmlnaHQ7XG5cbiAgICAgIC5faGVhZGVyIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKCNmZmYsIDAuMik7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAzcHg7XG4gICAgICAgIGNvbG9yOiAkbGlnaHQtZ3JleTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuX2l0ZW0ge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoI2ZmZiwgMC4yKTtcbiAgICAgIHBhZGRpbmctdG9wOiAzcHg7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogM3B4O1xuICAgIH1cbiAgfVxuXG4gIC5zZWUtYWxsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmVkO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgbWFyZ2luLXJpZ2h0OiAkZ3V0dGVycztcbiAgICBwYWRkaW5nOiA4cHggNTBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIH1cbn1cblxuLy8gU2VhcmNoXG5cbi5zZWFyY2gge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgQGluY2x1ZGUgc3BhbihsYXN0IDMpO1xuICBkaXNwbGF5OiBub25lO1xuICBoZWlnaHQ6IDIwcHg7XG4gIG1hcmdpbi10b3A6ICgkZGVza3RvcC1oZWFkZXItd2hpdGUtYXJlYSAvIDIpIC0gKDEwcHggLyAyKTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRsYXJnZSkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgLl9pbnB1dCxcbiAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICB9XG5cbiAgLl9pbnB1dCB7XG4gICAgQGV4dGVuZCAlZm9udC1mdXR1cmEtYm9vaztcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5ICR0cmFucy1kdXJhdGlvbiAkdHJhbnMtZnVuY3Rpb247XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkcmVkO1xuICAgIGNvbG9yOiAkcmVkO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgd2lkdGg6IDEyNXB4O1xuICAgIG9wYWNpdHk6IDA7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIFxuICAgICYubG9hZGluZyB7XG4gICAgICBiYWNrZ3JvdW5kOiB1cmwoJy4uLy4uL2ltYWdlcy9sb2FkaW5nLXNwaW4uc3ZnJykgbm8tcmVwZWF0O1xuICAgICAgYmFja2dyb3VuZC1zaXplOiAxMnB4IDEycHg7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIDUwJTtcbiAgICB9XG4gIH1cblxuICBpbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gJHRyYW5zLWR1cmF0aW9uICR0cmFucy1mdW5jdGlvbjtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vLi4vaW1hZ2VzL2ljb25zL3NoYXJlZC9pY29uLXNlYXJjaC5zdmcnKTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgbWFyZ2luLXRvcDogMnB4O1xuICAgIHdpZHRoOiAxNnB4O1xuICB9XG5cbiAgJi5oYXMtY29udGVudCxcbiAgJi5mb2N1c2VkLFxuICAmOmhvdmVyIHtcbiAgICAuX2lucHV0IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTE2MHB4KTtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vLi4vaW1hZ2VzL2ljb25zL3NoYXJlZC9pY29uLXNlYXJjaC1yZWQuc3ZnJyk7XG4gICAgfVxuICB9XG59XG4iLCIkYmFjay10by10b3AtYnV0dG9uLXNpemU6IDMycHg7XG5cbi5mb290ZXIge1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBtYXJnaW4tdG9wOiAkYmFjay10by10b3AtYnV0dG9uLXNpemUqMjtcblxuICAuaWNvbiB7XG4gICAgd2lkdGg6IDI0cHg7XG4gICAgaGVpZ2h0OiAyNHB4O1xuICAgIGJhY2tncm91bmQtc2l6ZTogMjRweCAyNHB4O1xuXG4gICAgJi4tdHVtYmxyIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vLi4vaW1hZ2VzL2ljb25zL2Zvb3Rlci90dW1ibHIuc3ZnJyk7IH1cbiAgICAmLi1mYWNlYm9vayB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uLy4uL2ltYWdlcy9pY29ucy9mb290ZXIvZmFjZWJvb2suc3ZnJyk7IH1cbiAgICAmLi10d2l0dGVyIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vLi4vaW1hZ2VzL2ljb25zL2Zvb3Rlci90d2l0dGVyLnN2ZycpOyB9XG4gICAgJi4teW91dHViZSB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uLy4uL2ltYWdlcy9pY29ucy9mb290ZXIveW91dHViZS5zdmcnKTsgfVxuICAgICYuLWluc3RhZ3JhbSB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uLy4uL2ltYWdlcy9pY29ucy9mb290ZXIvaW5zdGFncmFtLnN2ZycpOyB9XG4gICAgJi4tc3BvdGlmeSB7IGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vLi4vaW1hZ2VzL2ljb25zL2Zvb3Rlci9zcG90aWZ5LnBuZycpOyB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRsYXJnZSkge1xuICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IDE2cHggMTZweDtcbiAgICB9XG4gIH1cbiAgXG4gIC5fZm9vdGVyLWNvbnRlbnQge1xuICAgIEBleHRlbmQgLmNvbnRhaW5lcjtcbiAgICBwYWRkaW5nLWJvdHRvbTogNzBweDtcbiAgICBwYWRkaW5nLXRvcDogMjBweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cblxuICAuX2JhY2stdG8tdG9wIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAtMSAqICRiYWNrLXRvLXRvcC1idXR0b24tc2l6ZTtcbiAgICByaWdodDogJGd1dHRlcnM7XG5cbiAgICB3aWR0aDogJGJhY2stdG8tdG9wLWJ1dHRvbi1zaXplO1xuICAgIGhlaWdodDogJGJhY2stdG8tdG9wLWJ1dHRvbi1zaXplO1xuICAgIGJhY2tncm91bmQtc2l6ZTogJGJhY2stdG8tdG9wLWJ1dHRvbi1zaXplICRiYWNrLXRvLXRvcC1idXR0b24tc2l6ZTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uLy4uL2ltYWdlcy9pY29ucy9zaGFyZWQvaWNvbi1iYWNrLXRvLXRvcC5zdmcnKTsgXG4gIH1cblxuICAuX2xpbmtzIHtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICBAaW5jbHVkZSBmdWxsO1xuICAgIGZvbnQtc2l6ZTogMS4xNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMmVtO1xuICAgIHBhZGRpbmctYm90dG9tOiAwLjVlbTtcbiAgICBwYWRkaW5nLXRvcDogMC41ZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgbGkge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cblxuICAgIGEge1xuICAgICAgcGFkZGluZzogMC4xNWVtIDAuNzVlbTtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogJHJlZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRtZWRpdW0pIHtcbiAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjVlbTtcblxuICAgICAgbGkgKyBsaSB7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJGRhcmstZGFyay1ncmV5O1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGxhcmdlKSB7XG4gICAgICBjbGVhcjogbm9uZTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbiAgfVxuXG4gIC5fc29jaWFsIHtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICBAaW5jbHVkZSBmdWxsO1xuICAgIHBhZGRpbmctYm90dG9tOiAxLjVlbTtcbiAgICBwYWRkaW5nLXRvcDogMS41ZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIFxuICAgIGEge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgcGFkZGluZzogMCAzcHg7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbGFyZ2UpIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgcGFkZGluZy10b3A6IDAuNzVlbTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICB0b3A6IDIwcHg7XG4gICAgICB3aWR0aDogYXV0bztcblxuICAgICAgYSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDZweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuX21haWxpbmctbGlzdCB7XG4gICAgQGluY2x1ZGUgZnVsbDtcbiAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGxhcmdlKSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICB0b3A6IDIwcHg7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICB9XG5cbiAgICAuX21lc3NhZ2UsXG4gICAgaW5wdXQge1xuICAgICAgcGFkZGluZzogMC41ZW0gMDtcbiAgICB9XG5cbiAgICAuX21lc3NhZ2Uge1xuICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAkdHJhbnMtZHVyYXRpb24gJHRyYW5zLWZ1bmN0aW9uO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG5cbiAgICBpbnB1dCB7XG4gICAgICBAZXh0ZW5kICVmb250LWZ1dHVyYS1ib29rO1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRkYXJrLWRhcmstZ3JleTtcbiAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgIHdpZHRoOiAyNDBweDtcblxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IDA7XG4gICAgICB9XG4gICAgICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHsgY29sb3I6ICRkYXJrLWRhcmstZ3JleTsgfVxuICAgICAgJjotbW96LXBsYWNlaG9sZGVyIHsgY29sb3I6ICRkYXJrLWRhcmstZ3JleTsgfVxuICAgICAgJjo6LW1vei1wbGFjZWhvbGRlciB7IGNvbG9yOiAkZGFyay1kYXJrLWdyZXk7IH1cbiAgICAgICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHsgY29sb3I6ICRkYXJrLWRhcmstZ3JleTsgfVxuICAgIH1cblxuICAgICYuLWVycm9yIHtcbiAgICAgIC5fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiAkcmVkO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5fbWFpbGluZy1saXN0LWJ1dHRvbiB7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAkdHJhbnMtZHVyYXRpb24gJHRyYW5zLWZ1bmN0aW9uO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRsaWdodC1ncmV5O1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwYWRkaW5nOiAwLjY1cmVtO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmVkO1xuICAgIH1cbiAgfVxuXG4gIC5fY29weXJpZ2h0IHtcbiAgICBiYWNrZ3JvdW5kOiAkbWVkaXVtLWxpZ2h0LWdyZXk7XG4gICAgcGFkZGluZzogMTVweDtcblxuICAgIHAge1xuICAgICAgQGV4dGVuZCAlZm9udC1mdXR1cmEtYm9vay1pdGFsaWM7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGZvbnQtc2l6ZTogMC44NXJlbTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi8qXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5BcnRpc3QgcGFnZSBzdWJuYXZcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cbiRzdWJuYXYtaGVpZ2h0OiAzNnB4O1xuXG4uc3VibmF2IHtcbiAgYmFja2dyb3VuZDogJHNhbG1vbjtcblxuICAuX3N1Ym5hdi1jb250ZW50IHtcbiAgICBAZXh0ZW5kIC5jb250YWluZXI7XG4gIH1cblxuICAuX2xpbmtzLFxuICAuX3NvY2lhbCB7XG4gICAgdWwge1xuICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG5cbiAgICAgIGxpIHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLl9saW5rcyB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgQGluY2x1ZGUgZnVsbDtcbiAgICBsaW5lLWhlaWdodDogJHN1Ym5hdi1oZWlnaHQ7XG5cbiAgICB1bCB7XG4gICAgICBtYXJnaW4tbGVmdDogLTEwcHg7IC8vIE9mZnNldCA8YT4gcGFkZGluZyBzbyB0aGUgbmF2IGl0ZW1zIGxpbmUgdXAgd2l0aCB0aGUgcmVzdCBvZiB0aGUgcGFnZVxuICAgIH1cblxuICAgIGEge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cbiAgICAgICY6aG92ZXIsXG4gICAgICAmLi1hY3RpdmUge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLl9zb2NpYWwge1xuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICB1bCB7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICBtYXJnaW4tcmlnaHQ6IC02cHg7IC8vIE9mZnNldCBmb3IgPGE+IHNpemUgdmVyc3VzIGFjdHVhbCBpY29uIHNpemUgc28gaXQgbGluZXMgdXAgd2l0aCB0aGUgcmVzdCBvZiB0aGUgcGFnZVxuICAgIH1cblxuICAgIGEsXG4gICAgYSBzcGFuIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxuXG4gIC5pY29uIHtcbiAgICB3aWR0aDogJHN1Ym5hdi1oZWlnaHQ7XG4gICAgaGVpZ2h0OiAkc3VibmF2LWhlaWdodDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDI0cHggMjRweDtcblxuICAgICYuLXR1bWJsciB7IGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vLi4vaW1hZ2VzL2ljb25zL3NvY2lhbC1jdGEvdHVtYmxyLnN2ZycpOyB9XG4gICAgJi4tZmFjZWJvb2sgeyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uLy4uL2ltYWdlcy9pY29ucy9zb2NpYWwtY3RhL2ZhY2Vib29rLnN2ZycpO31cbiAgICAmLi10d2l0dGVyIHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi8uLi9pbWFnZXMvaWNvbnMvc29jaWFsLWN0YS90d2l0dGVyLnN2ZycpOyB9XG4gICAgJi4teW91dHViZSB7IGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vLi4vaW1hZ2VzL2ljb25zL3NvY2lhbC1jdGEveW91dHViZS5zdmcnKTsgfVxuICAgICYuLWluc3RhZ3JhbSB7IGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vLi4vaW1hZ2VzL2ljb25zL3NvY2lhbC1jdGEvaW5zdGFncmFtLnN2ZycpOyB9XG4gICAgJi4tc3BvdGlmeSB7IGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vLi4vaW1hZ2VzL2ljb25zL3NvY2lhbC1jdGEvc3BvdGlmeS5wbmcnKTsgfVxuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbGFyZ2UpIHtcbiAgICBmb250LXNpemU6IDEuMTVyZW07XG5cbiAgICAuX2xpbmtzLFxuICAgIC5fc29jaWFsIHtcbiAgICAgIEBpbmNsdWRlIG5vYnJlYWs7XG4gICAgfVxuXG4gICAgLl9saW5rcyB7XG4gICAgICBAaW5jbHVkZSBzcGFuKDgpO1xuICAgIH1cblxuICAgIC5fc29jaWFsIHtcbiAgICAgIEBpbmNsdWRlIHNwYW4oNCk7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cbn0iLCIvLyBQYWdlIGhlYWRlciBtZW51XG5cbiRtZW51LXBhZGRpbmc6IDEuMnJlbTtcblxuLy8gSGVhZGVyIG1lbnVzXG5cbi5wYWdlLWhlYWRsaW5lLFxuLnBhZ2Utc3ViaGVhZGxpbmUge1xuICAuX21lbnVzLFxuICAuX3BhZ2luYXRpb24tbWVudSB7XG4gICAgZGlzcGxheTogbm9uZTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1lZGl1bSkge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG5cbiAgLl9tZW51cyB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICB9XG5cbiAgLl9wYWdpbmF0aW9uLW1lbnUge1xuICAgIGNsZWFyOiBsZWZ0O1xuICAgIHBhZGRpbmctdG9wOiAwO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbGFyZ2UpIHtcbiAgICAgIGNsZWFyOiBub25lO1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgcGFkZGluZy10b3A6IDExcHg7XG4gICAgfVxuICB9XG59XG5cbi5fbWVudSB7XG4gIGZsb2F0OiBsZWZ0O1xuICBmb250LXNpemU6IDEuMTVyZW07XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuICB1bCB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIC5fbWVudS1oZWFkZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxuXG4gIC8vIFBvc2l0aW9uaW5nXG5cbiAgJi4tdmlldyxcbiAgJi4tZHJvcCAuX21lbnUtaGVhZGVyIHtcbiAgICBwYWRkaW5nOiAxLjJyZW0gMXJlbTtcblxuICAgIC5wYWdlLXN1YmhlYWRsaW5lICYge1xuICAgICAgcGFkZGluZzogMS4xcmVtIDFyZW07ICAgICAgXG4gICAgfVxuICB9XG5cbiAgLl9jbGVhci1idXR0b24ge1xuICAgIGNvbG9yOiAkcmVkO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBwYWRkaW5nOiA2cHg7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG5cbiAgICAuaWNvbi1kZWxldGUge1xuICAgICAgYmFja2dyb3VuZC1zaXplOiAxMHB4O1xuICAgICAgaGVpZ2h0OiAxMHB4O1xuICAgICAgd2lkdGg6IDEwcHg7XG4gICAgfVxuXG4gICAgJiB7XG4gICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5ICR0cmFucy1kdXJhdGlvbiAkdHJhbnMtZnVuY3Rpb247XG4gICAgICBvcGFjaXR5OiAwLjc1O1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6ICRyZWQ7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gRHJvcCBtZW51XG5cbiAgJi4tZHJvcCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgLl9tZW51LWhlYWRlciB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgLmljb24uLXB1bGwtZG93biB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAycHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLl9tZW51LW9wdGlvbnMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRhcmstZ3JleTtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICByaWdodDogMDtcbiAgICAgIHdpZHRoOiAyNzBweDtcbiAgICAgIHotaW5kZXg6IDUwO1xuXG4gICAgICBhIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgfVxuXG4gICAgICAuX3NlYXJjaCB7XG4gICAgICAgIG1hcmdpbjogMTRweCAxNHB4IDA7XG5cbiAgICAgICAgaW5wdXQge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRkYXJrLWdyZXk7XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGxpZ2h0LWxpZ2h0LWdyZXk7XG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICBjb2xvcjogJGxpZ2h0LWxpZ2h0LWdyZXk7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgcGFkZGluZzogNnB4O1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIFBhZ2luYXRpb25cbiAgICAgIFxuICAgICAgdWwge1xuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gJHRyYW5zLWR1cmF0aW9uKjIgJHRyYW5zLWZ1bmN0aW9uO1xuICAgICAgfVxuXG4gICAgICAuX3BhZ2UtdXAtYnV0dG9uLFxuICAgICAgLl9wYWdlLWRvd24tYnV0dG9uIHtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAkdHJhbnMtZHVyYXRpb24gJHRyYW5zLWZ1bmN0aW9uO1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBvcGFjaXR5OiAwLjE7XG4gICAgICAgIHBhZGRpbmc6IDhweCAwO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAmLi1lbmFibGVkIHtcbiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcblxuICAgICAgICAgICYge1xuICAgICAgICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogYmFja2dyb3VuZC1jb2xvciwgb3BhY2l0eTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRyZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLl9maWx0ZXItbGlzdCB7XG4gICAgICBmb250LXNpemU6IDEuMTVyZW07XG4gICAgICBtYXgtaGVpZ2h0OiAzNTBweDtcbiAgICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgICAgIFxuICAgICAgPiBsaSArIGxpIHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRsaWdodC1ncmV5O1xuICAgICAgfVxuXG4gICAgICBhIHtcbiAgICAgICAgY29sb3I6ICRsaWdodC1ncmV5O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcGFkZGluZzogMS4xcmVtO1xuXG4gICAgICAgICYge1xuICAgICAgICAgIHRyYW5zaXRpb246IGNvbG9yICR0cmFucy1kdXJhdGlvbiAkdHJhbnMtZnVuY3Rpb247XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmLi1zZWxlY3RlZCB7XG4gICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5fY291bnQge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2VhcmNoYWJsZSBkcm9wIG1lbnVcblxuICAgICYuLXNlYXJjaGFibGUge1xuICAgICAgLl9jbGVhci1idXR0b24ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmVkO1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgbWFyZ2luOiAxNHB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgLmljb24uLWRlbGV0ZSB7XG4gICAgICAgICAgYmFja2dyb3VuZC1zaXplOiAxMHB4O1xuICAgICAgICAgIGhlaWdodDogMTBweDtcbiAgICAgICAgICB3aWR0aDogMTBweDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuX2ZpbHRlci1saXN0ICB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDE0cHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gSG92ZXIgc3RhdGVcblxuICAgICY6aG92ZXIge1xuICAgICAgLl9tZW51LWhlYWRlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRkYXJrLWdyZXk7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuXG4gICAgICAgIC5pY29uLi1wdWxsLWRvd24ge1xuICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vLi4vaW1hZ2VzL2ljb25zL3NoYXJlZC9pY29uLXB1bGwtZG93bi13aGl0ZS5zdmcnKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuX21lbnUtb3B0aW9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIERhdGUgZmlsdGVyIGxpc3RcbiAgICAgXG4gICAgJi4tZGF0ZS1maWx0ZXIge1xuICAgICAgLl9jbGVhci1idXR0b24ge1xuICAgICAgICBwYWRkaW5nOiAwIDIwcHggMTVweDtcbiAgICAgIH1cblxuICAgICAgLl9tZW51LW9wdGlvbnMge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAzMTBweDtcbiAgICAgIH1cblxuICAgICAgLl95ZWFyIHtcbiAgICAgICAgcGFkZGluZzogMjBweDtcblxuICAgICAgICAmICsgLl95ZWFyIHtcbiAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGxpZ2h0LWxpZ2h0LWdyZXk7XG4gICAgICAgIH1cblxuICAgICAgICAuX2hlYWQge1xuICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuNWVtO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5fbW9udGgtbGlzdCB7XG4gICAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gICAgICAgIC5fbW9udGgge1xuICAgICAgICAgIEBpbmNsdWRlIHNwYW4oMik7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzk5OTtcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkZGFyay1ncmV5O1xuICAgICAgICAgIGNvbG9yOiAkZGFyay1ncmV5O1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIHBhZGRpbmctYm90dG9tOiA2cHg7XG4gICAgICAgICAgcGFkZGluZy10b3A6IDZweDtcbiAgICAgICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBjb2xvciwgYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAkdHJhbnMtZHVyYXRpb247XG4gICAgICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246ICR0cmFucy1mdW5jdGlvbjtcblxuICAgICAgICAgICYuLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM1NTU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJjpob3Zlcjpub3QoLi1kaXNhYmxlZCksXG4gICAgICAgICAgJi4tc2VsZWN0ZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgICAgICAgIGNvbG9yOiAkcmVkO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vICdWaWV3IEJ5JyBtZW51XG5cbiAgJi4tdmlldyB7XG4gICAgLl9tZW51LWhlYWRlcixcbiAgICB1bCB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG5cbiAgICAuX21lbnUtaGVhZGVyIHtcbiAgICAgIG1hcmdpbjogMCAwLjI1cmVtIDAgMDtcbiAgICB9XG5cbiAgICBsaSB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgIHBhZGRpbmc6IDRweCAycHg7XG4gICAgfVxuICB9XG59XG5cbi8vIFBhZ2luYXRpb24gbWVudVxuXG4uX3BhZ2luYXRpb24tbWVudSB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBjb2xvcjogJGxpZ2h0LWdyZXk7XG4gIGZvbnQtc2l6ZTogMS4xNXJlbTtcbiAgcGFkZGluZzogMTFweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIGxpIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbG9hdDogbGVmdDtcblxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgc3BhbixcbiAgICAgIGEge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgc3BhbixcbiAgYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogN3B4O1xuICB9XG5cbiAgYSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGNvbG9yOiAkbWVkaXVtLWdyZXk7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAkcmVkO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGxhcmdlKSB7XG4gICAgc3BhbixcbiAgICBhIHtcbiAgICAgIHBhZGRpbmc6IDVweDtcbiAgICB9XG4gIH1cbn1cblxuLy8gQ29udGFjdCBzdWItbWVudVxuXG4uX21lbnVzLi1jb250YWN0IHtcbiAgY2xlYXI6IGxlZnQ7XG4gIGZsb2F0OiBub25lO1xuXG4gIC5fbWVudSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgICBsaW5lLWhlaWdodDogMTRweDtcbiAgICBmb250LXNpemU6IDEuMTVyZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgdWwge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgcGFkZGluZzogMTBweCA2cHg7XG4gICAgfVxuXG4gICAgbGkge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgfVxuXG4gICAgbGkgKyBsaSB7XG4gICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICRkYXJrLWRhcmstZ3JleTtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBjb2xvcjogJGRhcmstZGFyay1ncmV5O1xuICAgICAgcGFkZGluZzogMHB4IDVweDtcbiAgICB9XG5cbiAgICAmIGE6aG92ZXIsXG4gICAgYS4tc2VsZWN0ZWQge1xuICAgICAgY29sb3I6ICRyZWQ7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRsYXJnZSkge1xuICAgIGNsZWFyOiBub25lO1xuICAgIGZsb2F0OiByaWdodDtcblxuICAgIC5fbWVudSB1bCB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBwYWRkaW5nOiAxOHB4IDAgMDtcbiAgICB9XG4gIH1cbn1cbiIsIiRiYW5uZXItb2Zmc2V0OiA0NTBweDsgLy8gVGhlIHNjcm9sbCBvZmZzZXQgZm9yIGJhbm5lcnNcbiRiYW5uZXItdmlzaWJsZS1wb3J0aW9uOiAxMTBweDtcbiRiYW5uZXItcmF0aW8td2lkdGg6IDE3O1xuJGJhbm5lci1yYXRpby1oZWlnaHQ6IDk7XG4kYmFubmVyLWhlaWdodC1wZXJjZW50OiA1Ni4yNSU7XG5cbiRhcnRpc3Qtc3VibmF2LWhlaWdodDogMzZweDtcbiRiYW5uZXItdmlzaWJsZS1wb3J0aW9uLWFydGlzdDogNjRweDtcblxuLmJhbm5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRzYWxtb247XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAmLi13aXRoLWNhcm91c2VsIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogJGJhbm5lci1oZWlnaHQtcGVyY2VudDtcbiAgfVxuXG4gIC5mbGlja2l0eS12aWV3cG9ydCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLmZsaWNraXR5LXByZXYtbmV4dC1idXR0b24ge1xuICAgIHdpZHRoOiA0OHB4O1xuICAgIGhlaWdodDogNDhweDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDQ4cHggNDhweDtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgJGRlZmF1bHQtdHJhbnNpdGlvbi1kdXJhdGlvbiozIGVhc2U7XG5cbiAgICBzdmcge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAmOmRpc2FibGVkIHtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuXG4gICAgJi5wcmV2aW91cyB7XG4gICAgICBsZWZ0OiA0MHB4O1xuICAgICAgYmFja2dyb3VuZDogdXJsKCcuLi8uLi9pbWFnZXMvY2Fyb3VzZWwtbGVmdC5zdmcnKTtcbiAgICB9XG5cbiAgICAmLm5leHQge1xuICAgICAgcmlnaHQ6IDQwcHg7XG4gICAgICBiYWNrZ3JvdW5kOiB1cmwoJy4uLy4uL2ltYWdlcy9jYXJvdXNlbC1yaWdodC5zdmcnKTtcbiAgICB9XG4gIH1cblxuICAuZmxpY2tpdHktcGFnZS1kb3RzIHtcbiAgICBib3R0b206IC0yOHB4O1xuXG4gICAgLmRvdCB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgbWFyZ2luOiAwIDRweDtcbiAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2UxZTFlMTtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkICM4MDgyODU7XG4gICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMXMgZWFzZS1pbi1vdXQsIGJvcmRlci1jb2xvciAwLjFzIGVhc2UtaW4tb3V0O1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzgwODI4NTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjODA4Mjg1O1xuICAgICAgfVxuXG4gICAgICAmLmlzLXNlbGVjdGVkIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjRjA2NjRCO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTFlMWUxO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNGMDY2NEI7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiAjRjA2NjRCO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJi4taGlkZS1jYXJvdXNlbC1uYXYge1xuICAgIC5mbGlja2l0eS1wcmV2LW5leHQtYnV0dG9uLFxuICAgIC5mbGlja2l0eS1wYWdlLWRvdHMge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuXG4gIC8qIGNlbGwgaW5oZXJpdCBoZWlnaHQgZnJvbSBnYWxsZXJ5ICovXG4gIC5fc2xpZGUge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxuXG4gICYuLXNlY29uZGFyeSB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBoZWlnaHQ6ICRhcnRpc3Qtc3VibmF2LWhlaWdodCArICRiYW5uZXItdmlzaWJsZS1wb3J0aW9uLWFydGlzdDtcbiAgICB6LWluZGV4OiAyMDAwMDtcbiAgICAuc3VibmF2LWZpeGVkICYge1xuICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgIH1cbiAgfVxuXG4gIC5faW1hZ2UsXG4gIC5fdmlkZW8ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcblxuICAgIC5wYWdlLWFydGlzdC1kZXRhaWwgJixcbiAgICAucGFnZS1hcnRpc3QtZGV0YWlsLXN1YnBhZ2UgJixcbiAgICAucGFnZS1yZWxlYXNlLWRldGFpbCAmLFxuICAgIC5wYWdlLXRyYWNrLWRldGFpbCAmIHtcbiAgICAgIGJvdHRvbTogJHN1Ym5hdi1oZWlnaHQ7XG4gICAgfVxuICB9XG5cbiAgLl9pbWFnZSB7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgNTAlO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIH1cblxuICAuX3ZpZGVvIHtcbiAgICB0b3A6IDA7XG4gIH1cblxuICAvKipcbiAgICogQ2FuIGJlIGEgPGRpdj4gb3IgPGE+XG4gICAqL1xuICAuX2Jhbm5lci1jb250ZW50IHtcbiAgICBAZXh0ZW5kIC5jb250YWluZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmctYm90dG9tOiAkYmFubmVyLWhlaWdodC1wZXJjZW50O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxuXG4gIC4tdmlkZW8ge1xuICAgIC5fYmFubmVyLWNvbnRlbnQge1xuICAgICAgLl9oZWFkIHtcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtICRkZWZhdWx0LXRyYW5zaXRpb24tZHVyYXRpb24gZWFzZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLi1vZmZzZXQge1xuICAgIGhlaWdodDogJGJhbm5lci12aXNpYmxlLXBvcnRpb247XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgIC5fYmFubmVyLWNvbnRlbnQge1xuICAgICAgaGVpZ2h0OiAkYmFubmVyLXZpc2libGUtcG9ydGlvbjtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIH1cblxuICAgIC5fc2xpZGUge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAuX3NsaWRlOm50aC1jaGlsZCgxKSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cblxuICAuX2hlYWRsaW5lIHtcbiAgICBAaW5jbHVkZSBmdWxsO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgfVxuXG4gIC5faGVhZCB7XG4gICAgQGV4dGVuZCAlZm9udC10dW5nc3Rlbi1zZW1pYm9sZDtcbiAgICBtYXJnaW46IDA7XG4gICAgbGluZS1oZWlnaHQ6ICRiYW5uZXItdmlzaWJsZS1wb3J0aW9uLWFydGlzdDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LXNpemU6IDRyZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cbiAgICBhIHtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1lZGl1bSkge1xuICAgICAgZm9udC1zaXplOiA1cmVtO1xuICAgIH1cbiAgfVxuXG4gICYuLWNlbnRlciB7XG4gICAgLl9iYW5uZXItY29udGVudCB7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAuX2hlYWRsaW5lIHtcbiAgICAgIGhlaWdodDogJGJhbm5lci12aXNpYmxlLXBvcnRpb247XG4gICAgfVxuXG4gICAgLl9oZWFkIHtcbiAgICAgIEBleHRlbmQgJWZvbnQtdHVuZ3N0ZW4tbWVkaXVtO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgZm9udC1zaXplOiAxLjc1cmVtO1xuICAgICAgbGVmdDogMDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxZW07XG4gICAgICBwYWRkaW5nOiAwLjRlbSAxOHB4O1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1lZGl1bSkge1xuICAgICAgLl9oZWFkIHtcbiAgICAgICAgZm9udC1zaXplOiAyLjVyZW07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gQXJ0aXN0IHBhZ2UgYmFubmVyXG5cbiAgJi4tYXJ0aXN0IHtcbiAgICAuX2hlYWRsaW5lIHtcbiAgICAgIGhlaWdodDogJGJhbm5lci12aXNpYmxlLXBvcnRpb24tYXJ0aXN0O1xuICAgIH1cblxuICAgICYuLW9mZnNldCB7XG4gICAgICBoZWlnaHQ6ICRiYW5uZXItdmlzaWJsZS1wb3J0aW9uLWFydGlzdCArICRhcnRpc3Qtc3VibmF2LWhlaWdodDtcblxuICAgICAgLl9iYW5uZXItY29udGVudCB7XG4gICAgICAgIGhlaWdodDogJGJhbm5lci12aXNpYmxlLXBvcnRpb24tYXJ0aXN0O1xuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIi8vIEJveGVzIHRoYXQgYXJlIHVzZWQgdGhyb3VnaG91dCB0aGUgc2l0ZVxuXG4kYm94LXBhZGRpbmc6IDE0cHg7XG5cbiRib3gtZ3JleTogJG1lZGl1bS1ncmV5O1xuJGJveC1yZWQ6ICRyZWQ7XG4kYm94LXNhbG1vbjogJHNhbG1vbjtcblxuJGJveC1saW5rLWNvbG9yOiByZ2JhKCRtZWRpdW0tZ3JleSwgMC43NSk7XG5cbi8vIExheW91dCB2YXJpYXRpb25zXG5cbi5sYXlvdXQtc3RhbmRhcmQsXG4ubGF5b3V0LWJveGVzIHtcbiAgLmJveCB7XG4gICAgbWFyZ2luOiAkYm94LXBhZGRpbmcgMDtcbiAgfVxufVxuXG4ubGF5b3V0LXN0YW5kYXJkIHtcbiAgLmNvbHVtbi0xLFxuICAuY29sdW1uLTIge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGxhcmdlKSB7XG4gICAgICAuYm94OmZpcnN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLmJveGVzIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG59XG5cbi5ib3gge1xuICAvLyBIZWFkbGluZVxuICBcbiAgLl9oZWFkbGluZSB7XG4gICAgYmFja2dyb3VuZDogJGJveC1ncmV5O1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI1ZW07XG4gICAgcGFkZGluZzogMTBweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgLl9oZWFkIHtcbiAgICAgIGZvbnQtc2l6ZTogMS4xNXJlbTtcbiAgICAgIGxldHRlci1zcGFjaW5nOiAwLjAzZW07XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIH1cblxuICAgICAgLl9pY29uLXRvZ2dsZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIG1hcmdpbi10b3A6IDVweDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgfVxuXG4gICAgLmFsbCB7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICB9XG5cbiAgICAuX2J1dHRvbiB7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLy8gSW1hZ2VcblxuICAuX2ltYWdlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBhLFxuICAgIGltZyB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG5cbiAgLy8gRmxhZyBvdmVybGF5XG5cbiAgLl9mbGFnIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTBweCwgMTBweCk7XG4gICAgQGV4dGVuZCAlZm9udC10dW5nc3Rlbi1ib2xkO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgYmFja2dyb3VuZDogJGJyb256ZTtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBwYWRkaW5nOiA2cHg7XG4gICAgZm9udC1zaXplOiAxLjNyZW07XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIHotaW5kZXg6IDEwO1xuXG4gICAgJjphZnRlciB7XG4gICAgICBjb250ZW50OiAnICc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgdG9wOiAxMDAlO1xuICAgICAgd2lkdGg6IDBweDtcbiAgICAgIGhlaWdodDogMHB4O1xuICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgIGJvcmRlci13aWR0aDogMCAxMHB4IDEwcHggMDtcbiAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIzIyMWYxZiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICB9XG4gIH1cblxuICAvLyBWaWRlby1pc2ggYm94ZXNcblxuICAuX3ZpZGVvLFxuICAuX3BsYXlsaXN0IHtcbiAgICBAaW5jbHVkZSBmbGV4LXZpZGVvLWNvbnRhaW5lcjtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgLy8gVGV4dCBjb250ZW50XG5cbiAgLl9kZXRhaWxzIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIHBhZGRpbmc6ICRib3gtcGFkZGluZztcbiAgICBib3JkZXItYm90dG9tOiA0cHggc29saWQgI2QxZDNkMztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgJixcbiAgICAuX2hlYWQsXG4gICAgLl9zdWJoZWFkIHtcbiAgICAgIGNvbG9yOiAkZGFyay1kYXJrLWdyZXk7XG4gICAgfVxuXG4gICAgLl9oZWFkLFxuICAgIC5fc3ViaGVhZCB7XG4gICAgICBsaW5lLWhlaWdodDogMS4xZW07XG4gICAgICBtYXJnaW46IDA7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gICAgICBhIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBjb2xvcjogJGRhcmstZGFyay1ncmV5O1xuICAgICAgfVxuICAgIH1cblxuICAgIC5faGVhZCB7XG4gICAgICBmb250LXNpemU6IDIuMTVyZW07XG4gICAgICBAZXh0ZW5kICVmb250LXR1bmdzdGVuLXNlbWlib2xkO1xuICAgIH1cblxuICAgIC5fc3ViaGVhZCB7XG4gICAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICAgIEBleHRlbmQgJWZvbnQtdHVuZ3N0ZW4tbWVkaXVtO1xuICAgIH1cblxuICAgIHAge1xuICAgICAgbWFyZ2luOiAwLjI1ZW0gMCAwIDA7XG4gICAgICBsaW5lLWhlaWdodDogMS40O1xuXG4gICAgICBhIHtcbiAgICAgICAgY29sb3I6ICRib3gtbGluay1jb2xvcjtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIGNvbG9yOiAkcmVkO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLl9lbXB0eSB7XG4gICAgICBwYWRkaW5nOiAkZ3V0dGVycyAqIDI7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgIC5faGVhZCB7XG4gICAgICAgIEBleHRlbmQgJWZvbnQtZnV0dXJhLWJvb2s7XG4gICAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgICAgICBtYXJnaW46IDAuNWVtIDAgMWVtO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vICdSZWFkJyB0ZXh0IGJ1dHRvbiBzdHlsZVxuXG4gIC5fZGV0YWlscyxcbiAgLl9jb250ZW50IHtcbiAgICAuX3JlYWRtb3JlIHtcbiAgICAgIEBleHRlbmQgJWZvbnQtZnV0dXJhLW1lZGl1bS1pdGFsaWMgO1xuICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBjb2xvcjogJGRhcmstZGFyay1ncmV5O1xuXG4gICAgICAmLFxuICAgICAgYSB7XG4gICAgICAgIGNvbG9yOiAkZGFyay1kYXJrLWdyZXk7XG4gICAgICB9XG5cbiAgICAgIGEge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICBjb250ZW50OiBcIuKAlFwiO1xuICAgICAgICB9XG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgIGNvbnRlbnQ6IFwi4oCUXCI7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBjb2xvcjogJHJlZDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qXG4gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgQm94IFZhcmlhbnRzXG4gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgKi9cbiBcbiAgJi4tY2VudGVyZWQsXG4gICYuLXJlbGVhc2UsXG4gICYuLW1lcmNoIHtcbiAgICAuX2RldGFpbHMge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNvbGlkIGJhY2tncm91bmQgZmlsbCBib3hcblxuICAmLi1zb2xpZCB7XG4gICAgLl9oZWFkbGluZSxcbiAgICAuX2RldGFpbHMge1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgfVxuXG4gICAgLl9oZWFkbGluZSB7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2ZmZjtcbiAgICB9XG5cbiAgICAuX2RldGFpbHMge1xuICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgXG4gICAgICAuX2hlYWQge1xuICAgICAgICBAZXh0ZW5kICVmb250LWZ1dHVyYS1ib29rO1xuICAgICAgICBmb250LXNpemU6IDEuM3JlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5fcmVhZG1vcmUge1xuICAgICAgY29sb3I6ICNmZmY7XG5cbiAgICAgIGEsXG4gICAgICAmIGE6aG92ZXIge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLi1zYWxtb24ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJveC1zYWxtb247XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICAuX2hlYWRsaW5lIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAkYm94LXNhbG1vbjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5fZGV0YWlscyB7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogI2QxZDNkMztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIE5vIHRleHQgb3ZlcmZsb3dcblxuICAmLi1uby1vdmVyZmxvdyB7XG4gICAgLl9oZWFkLFxuICAgIC5fc3ViaGVhZCB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgfVxuICB9XG5cbiAgLy8gSG92ZXJ5IC0gbWFrZSB0aGUgaGVhZGxpbmUgYW5kIGJvdHRvbSBib3JkZXIgdHVybiByZWQgb24gaG92ZXJcbiAgXG4gICYuLWhvdmVyeSB7XG4gICAgLl9oZWFkbGluZSB7XG4gICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yICR0cmFucy1kdXJhdGlvbiAkdHJhbnMtZnVuY3Rpb247XG4gICAgfVxuXG4gICAgLl9kZXRhaWxzIHtcbiAgICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAkdHJhbnMtZHVyYXRpb24gJHRyYW5zLWZ1bmN0aW9uO1xuXG4gICAgICBhIHtcbiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgJHRyYW5zLWR1cmF0aW9uICR0cmFucy1mdW5jdGlvbjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBjb2xvcjogJHJlZDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgLl9oZWFkbGluZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRyZWQ7XG4gICAgICB9XG5cbiAgICAgIC5fZGV0YWlscyB7XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRyZWQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUmVsZWFzZSBhbmQgbWVyY2ggYm94XG5cbiAgJi4tcmVsZWFzZSxcbiAgJi4tbWVyY2gsXG4gICYuLXZpZGVvLFxuICAmLi12aWRlby1wbGF5bGlzdCxcbiAgJi4tYXJ0aXN0LWJpbyxcbiAgJi4tY29sbGFwc2libGUge1xuICAgIEBleHRlbmQgLi1ob3Zlcnk7XG4gIH1cblxuICAvLyBSZWxlYXNlIGJveFxuXG4gICYuLXJlbGVhc2Uge1xuICAgIC5faW1hZ2Uge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgIGhlaWdodDogMDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxMDAlO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAuX2xpbmtzIHtcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtICR0cmFucy1kdXJhdGlvbiAkdHJhbnMtZnVuY3Rpb247XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpIHNjYWxlKDAuOSk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA0NiU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgIHBhZGRpbmc6IDhweCAxNnB4O1xuXG4gICAgICAgICAgJiArIGEge1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZmZmO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuX292ZXJsYXkge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYShibGFjaywgMC41KTtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAkdHJhbnMtZHVyYXRpb24qMiAkdHJhbnMtZnVuY3Rpb247XG5cbiAgICAgICAgJi5ob3ZlcmluZyB7XG4gICAgICAgICAgb3BhY2l0eTogMTtcblxuICAgICAgICAgIC5fbGlua3Mge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKSBzY2FsZSgxKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBWaWRlbyBib3hcblxuICAmLi12aWRlbyB7XG4gICAgQGV4dGVuZCAuLWNlbnRlcmVkO1xuICB9XG5cbiAgLy8gQm94IHdpdGggbXVsdGlwbGUgcmVsZWFzZXMgbGlzdGVkIGluIGl0XG5cbiAgJi4tcmVsZWFzZS1saXN0IHtcbiAgICBAZXh0ZW5kIC4taG92ZXJ5O1xuXG4gICAgLl9kZXRhaWxzIHtcbiAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgIGxpIHtcbiAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgICAgIFxuICAgICAgICBwYWRkaW5nOiAoJGd1dHRlcnMgKiAzKSAoJGd1dHRlcnMgKiAyKTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgID4gYSB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgbGkgKyBsaSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZDFkM2Q0O1xuICAgICAgfVxuXG4gICAgICAuX2NvdmVyIHtcbiAgICAgICAgQGluY2x1ZGUgc3Bhbig2KTtcbiAgICAgIH1cblxuICAgICAgLl9pbmZvIHtcbiAgICAgICAgQGluY2x1ZGUgc3Bhbig2KTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNzVlbTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBib3R0b206IDA7XG5cbiAgICAgICAgLl9jZW50ZXIge1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICAuX3JlbGVhc2UtdGl0bGUsXG4gICAgICAgIC5fYXJ0aXN0LW5hbWUge1xuICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAuX3JlbGVhc2UtdGl0bGUge1xuICAgICAgICAgIEBleHRlbmQgJWZvbnQtdHVuZ3N0ZW4tc2VtaWJvbGQ7XG4gICAgICAgICAgZm9udC1zaXplOiAxLjY1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLl9hcnRpc3QtbmFtZSB7XG4gICAgICAgICAgQGV4dGVuZCAlZm9udC10dW5nc3Rlbi1tZWRpdW07XG4gICAgICAgICAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5fcmVsZWFzZS1kYXRlIHtcbiAgICAgICAgICBAZXh0ZW5kICVmb250LWZ1dHVyYS1saWdodDtcbiAgICAgICAgICBjb2xvcjogJG1lZGl1bS1saWdodC1ncmV5O1xuICAgICAgICAgIGZvbnQtc2l6ZTogMC44NXJlbTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFNvY2lhbCBib3hcblxuICAmLi1zb2NpYWwge1xuICAgIGRpc3BsYXk6IG5vbmU7IC8vIEhpZGUgc29jaWFsIGJ5IGRlZmF1bHRcblxuICAgICYuLW1vYmlsZS1vbmx5IHtcbiAgICAgIEBleHRlbmQgLi1tb2JpbGUtb25seTtcbiAgICB9XG5cbiAgICAuX2RldGFpbHMge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcblxuICAgICAgcCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIGEge1xuICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuX3JlYWRtb3JlIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMC41ZW07XG4gICAgICB9XG4gICAgfVxuXG4gICAgLl9zb3VyY2Uge1xuICAgICAgQGluY2x1ZGUgc3BhbigyKTtcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgJHRyYW5zLWR1cmF0aW9uICR0cmFucy1mdW5jdGlvbjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGJhY2tncm91bmQ6ICNhN2E5YWM7XG5cbiAgICAgIGEge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuLWZhY2Vib29rOmhvdmVyIC5fc291cmNlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRmYWNlYm9vay1ibHVlO1xuICAgIH1cblxuICAgICYuLWluc3RhZ3JhbTpob3ZlciAuX3NvdXJjZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5zdGFncmFtLWJsdWU7XG4gICAgfVxuXG4gICAgJi4tdHVtYmxyOmhvdmVyIC5fc291cmNlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0dW1ibHItYmx1ZTtcbiAgICB9XG5cbiAgICAmLi10d2l0dGVyOmhvdmVyIC5fc291cmNlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0d2l0dGVyLWJsdWU7XG4gICAgfVxuXG4gICAgLl9jb250ZW50IHtcbiAgICAgIEBpbmNsdWRlIHNwYW4oMTApO1xuICAgICAgQGluY2x1ZGUgcHJlKDIpO1xuICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICBwYWRkaW5nOiAkYm94LXBhZGRpbmc7XG4gICAgfVxuXG4gICAgLmljb24ge1xuICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IDI0cHggMjRweDtcblxuICAgICAgJi4tdHVtYmxyIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi8uLi9pbWFnZXMvaWNvbnMvc29jaWFsL3R1bWJsci5zdmcnKTsgfVxuICAgICAgJi4tZmFjZWJvb2sge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uLy4uL2ltYWdlcy9pY29ucy9zb2NpYWwvZmFjZWJvb2suc3ZnJyk7IH1cbiAgICAgICYuLXR3aXR0ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uLy4uL2ltYWdlcy9pY29ucy9zb2NpYWwvdHdpdHRlci5zdmcnKTsgfVxuICAgICAgJi4teW91dHViZSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vLi4vaW1hZ2VzL2ljb25zL3NvY2lhbC95b3V0dWJlLnN2ZycpOyB9XG4gICAgICAmLi1pbnN0YWdyYW0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uLy4uL2ltYWdlcy9pY29ucy9zb2NpYWwvaW5zdGFncmFtLnN2ZycpOyB9XG4gICAgfVxuXG4gICAgJi4tcGhvdG8ge1xuICAgICAgLl9jb250ZW50IHtcbiAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICBpbWcge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gVHVtYmxyXG5cbiAgICAmLi10dW1ibHIge1xuICAgICAgLl9jb250ZW50IHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLl90ZXh0IHtcbiAgICAgICAgcGFkZGluZzogJGJveC1wYWRkaW5nO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNob3cgc29jaWFsIGJveGVzIGZvciB0YWJsZXQgYW5kIHVwXG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRtZWRpdW0pIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxuXG4gIC8vIEZvbGxvdyBib3hcblxuICAmLi1mb2xsb3cge1xuICAgIEBleHRlbmQgLi1jZW50ZXJlZDtcbiAgICBtYXJnaW4tdG9wOiAzNnB4O1xuXG4gICAgLl9oZWFkbGluZSxcbiAgICAuX2RldGFpbHMge1xuICAgICAgYmFja2dyb3VuZDogJGJveC1zYWxtb247XG4gICAgfVxuXG4gICAgLl9oZWFkbGluZSB7XG4gICAgICBwYWRkaW5nLXRvcDogJGJveC1wYWRkaW5nO1xuICAgIH1cblxuICAgIC5fZGV0YWlscyB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgIHBhZGRpbmctdG9wOiAwO1xuXG4gICAgICBhIHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgLmljb24ge1xuICAgICAgd2lkdGg6IDMycHg7XG4gICAgICBoZWlnaHQ6IDMycHg7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IDMycHggMzJweDtcblxuICAgICAgJi4tdHVtYmxyIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi8uLi9pbWFnZXMvaWNvbnMvc29jaWFsLWN0YS90dW1ibHIuc3ZnJyk7IH1cbiAgICAgICYuLWZhY2Vib29rIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi8uLi9pbWFnZXMvaWNvbnMvc29jaWFsLWN0YS9mYWNlYm9vay5zdmcnKTsgfVxuICAgICAgJi4tdHdpdHRlciB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vLi4vaW1hZ2VzL2ljb25zL3NvY2lhbC1jdGEvdHdpdHRlci5zdmcnKTsgfVxuICAgICAgJi4teW91dHViZSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vLi4vaW1hZ2VzL2ljb25zL3NvY2lhbC1jdGEveW91dHViZS5zdmcnKTsgfVxuICAgICAgJi4taW5zdGFncmFtIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi8uLi9pbWFnZXMvaWNvbnMvc29jaWFsLWN0YS9pbnN0YWdyYW0uc3ZnJyk7IH1cbiAgICAgICYuLXNwb3RpZnkgeyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uLy4uL2ltYWdlcy9pY29ucy9zb2NpYWwtY3RhL3Nwb3RpZnkucG5nJyk7IH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRtZWRpdW0pIHtcbiAgICAgIG1hcmdpbi10b3A6IDE0cHg7XG4gICAgfVxuICB9XG5cbiAgLy8gRmVhdHVyZWQgbmV3cyBib3hcblxuICAmLi1mZWF0dXJlZC1uZXdzIHtcbiAgICBAZXh0ZW5kIC4tY2VudGVyZWQ7XG4gICAgQGV4dGVuZCAuLXNvbGlkO1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJyb256ZTtcbiAgICAgIFxuICAgIC5fZGV0YWlscyB7XG4gICAgICAuX2hlYWQge1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmIHtcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgJHRyYW5zLWR1cmF0aW9uICR0cmFucy1mdW5jdGlvbjtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRyZWQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gRmVhdHVyZWQgYXJ0aXN0IGJveCBhbmQgYXJ0aXN0IHNlYXJjaCBib3hcbiAgXG4gICYuLWZlYXR1cmVkLWFydGlzdCxcbiAgJi4tYXJ0aXN0LXNlYXJjaC1yZXN1bHQge1xuICAgIEBleHRlbmQgLi1ob3Zlcnk7XG5cbiAgICAuX2ltYWdlIHtcbiAgICAgIGhlaWdodDogMDtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICBwYWRkaW5nLWJvdHRvbTogNjIlO1xuICAgIH1cbiAgfVxuXG4gIC8vIEFydGlzdCBzZWFyY2ggcGFnZSBib3hcblxuICAmLi1hcnRpc3Qtc2VhcmNoLXJlc3VsdCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgLl9pbWFnZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIH1cbiAgfVxuXG4gIC8vIFRoZSAnc2VlIGFsbCByZWxlYXNlcycgYm94IG9uIGhvbWVwYWdlXG5cbiAgJi4tYWxsLXJlbGVhc2VzIHtcbiAgICBAZXh0ZW5kIC4tY2VudGVyZWQ7XG4gICAgQGV4dGVuZCAuLXNhbG1vbjtcbiAgICBAZXh0ZW5kIC4tc29saWQ7XG5cbiAgICAuX2RldGFpbHMgLl9oZWFkIHtcbiAgICAgIGZvbnQtc2l6ZTogMS43NXJlbTtcbiAgICAgIG1hcmdpbjogMC43NWVtO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLy8gU2hvd3MgYm94XG5cbiAgJi4tc2hvd3Mge1xuICAgIEBleHRlbmQgLi1ob3Zlcnk7XG5cbiAgICAuX2RldGFpbHMge1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIC5fcmVhZG1vcmUgYSB7XG4gICAgICAgIHBhZGRpbmc6IDEwcHggMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBsaSB7XG4gICAgICBAaW5jbHVkZSBicmVhaztcbiAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkbGlnaHQtbGlnaHQtZ3JleTtcbiAgICAgIHBhZGRpbmc6IDEwcHg7XG5cbiAgICAgICYge1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yICR0cmFucy1kdXJhdGlvbiAkdHJhbnMtZnVuY3Rpb247XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGdyZXktd2hpdGU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAuX2RhdGUsXG4gICAgLl9sb2NhdGlvbiB7XG4gICAgICBAZXh0ZW5kICVmb250LWZ1dHVyYS1tZWRpdW07XG4gICAgfVxuXG4gICAgLl9kYXRlIHtcbiAgICAgIEBpbmNsdWRlIHNwYW4oNik7XG4gICAgICBsaW5lLWhlaWdodDogMS4yZW07XG4gICAgfVxuXG4gICAgLl9sb2NhdGlvbiB7XG4gICAgICBAaW5jbHVkZSBzcGFuKDYpO1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMmVtO1xuICAgIH1cblxuICAgIC5fYXJ0aXN0IHtcbiAgICAgIEBleHRlbmQgJWZvbnQtdHVuZ3N0ZW4tbWVkaXVtO1xuICAgICAgQGluY2x1ZGUgZnVsbDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICBmb250LXNpemU6IDIuNXJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjJlbTtcbiAgICAgIFxuICAgICAgYSB7XG4gICAgICAgIGNvbG9yOiAkYnJvbnplO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLl92ZW51ZSB7XG4gICAgICBAaW5jbHVkZSBmdWxsO1xuICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgICBsaW5lLWhlaWdodDogMS4yZW07XG4gICAgfVxuXG4gICAgLl9saW5rcyB7XG4gICAgICBAZXh0ZW5kICVmb250LWZ1dHVyYS1ib29rO1xuICAgICAgQGluY2x1ZGUgZnVsbDtcbiAgICAgIGNvbG9yOiAkYm94LWxpbmstY29sb3I7XG4gICAgICBmb250LXNpemU6IDAuODVyZW07XG4gICAgICBsaW5lLWhlaWdodDogMS4yZW07XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gICAgICBhIHtcbiAgICAgICAgY29sb3I6ICRib3gtbGluay1jb2xvcjtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1lZGl1bSkge1xuICAgICAgLl9hcnRpc3Qge1xuICAgICAgICBmb250LXNpemU6IDEuODVyZW07XG4gICAgICB9XG5cbiAgICAgIC5fdmVudWUge1xuICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gTmV3cyBib3ggKG5ld3MgZGV0YWlsKVxuICBcbiAgJi4tbmV3cyB7XG4gICAgLl9kZXRhaWxzIHtcbiAgICAgIHBhZGRpbmc6IDIwcHg7XG5cbiAgICAgIC5fZGF0ZSB7XG4gICAgICAgIGNvbG9yOiAkbWVkaXVtLWdyZXk7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LXNpemU6IDAuOXJlbTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNWVtO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgfVxuXG4gICAgICAuX2hlYWQge1xuICAgICAgICBAZXh0ZW5kICVmb250LWZ1dHVyYS1tZWRpdW07XG4gICAgICAgIGZvbnQtc2l6ZTogMS4zNXJlbTtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuICAgICAgICAmIGE6aG92ZXIge1xuICAgICAgICAgIGNvbG9yOiAkcmVkO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHAge1xuICAgICAgICBtYXJnaW46IDAuNWVtIDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gQ29udGFjdCBpbmZvIC8gRkFRIGxpbmtzIGJveCAoY29udGFjdCBwYWdlcylcbiAgXG4gICYuLWNvbnRhY3QtaW5mbyxcbiAgJi4tZmFxLWxpbmtzIHtcbiAgICAuX2RldGFpbHMge1xuICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcblxuICAgICAgLl9zdWJoZWFkIHtcbiAgICAgICAgQGV4dGVuZCAlZm9udC1mdXR1cmEtYm9vaztcbiAgICAgICAgZm9udC1zaXplOiAxLjNyZW07XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjVweDtcbiAgICAgIH1cblxuICAgICAgcCB7XG4gICAgICAgIG1hcmdpbjogMWVtIDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmNvbnRhY3QtYWRkcmVzcy1saXN0LFxuICAgIC5mYXEtbGlua3MtbGlzdCB7XG4gICAgICBsaSArIGxpIHtcbiAgICAgICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICRsaWdodC1saWdodC1ncmV5O1xuICAgICAgICBtYXJnaW4tdG9wOiAkc3RhbmRhcmQtc3BhY2U7XG4gICAgICAgIHBhZGRpbmctdG9wOiAkc3RhbmRhcmQtc3BhY2U7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gRkFRIGFuY2hvciBsaW5rIGxpc3RcblxuICAmLi1mYXEtbGlua3Mge1xuICAgIC5fc3ViaGVhZCB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgcGFkZGluZzogMTZweDtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAkcmVkO1xuICAgICAgfVxuICAgIH1cbiAgICAuX2RldGFpbHMge1xuICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAuZmFxLWxpbmtzLWxpc3Qge1xuICAgICAgbGkgKyBsaSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIENvbGxwYXNlIGFuZCBleHBhbmRhYmxlIGJveCAoY29udGFjdCBwYWdlcylcblxuICAmLi1jb2xsYXBzaWJsZSB7XG4gICAgLl9oZWFkbGluZSB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgLl9kZXRhaWxzIHtcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgICYuLW9wZW4ge1xuICAgICAgLl9kZXRhaWxzIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gU29jaWFsIGNvdW50cywgZm9yIGxpa2VzLCB0d2VldHMsIGV0Yy4gY291bnRzXG4gIFxuICAmLi1zb2NpYWwtY291bnRzIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNkMWQzZDQ7XG4gICAgZGlzcGxheTogZmxleDtcblxuICAgIC5fYnV0dG9uIHtcbiAgICAgIGZsZXg6IDE7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMThweDtcbiAgICAgIHBhZGRpbmctdG9wOiAxOHB4O1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNpZGUgbm90ZVxuICBcbiAgJi4tc2lkZS1ub3RlIHtcbiAgICAuX2RldGFpbHMge1xuICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICB9XG4gIH1cbn0iLCIvLyBQYWdpbmF0aW9uXG5cbi5wYWdpbmF0aW9uIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgbWFyZ2luOiAwIDEwcHggM3JlbSAxMHB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gICYsXG4gIGEge1xuICAgIGNvbG9yOiAkbWVkaXVtLWdyZXk7XG4gIH1cblxuICBhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cblxuICAmIGE6aG92ZXIge1xuICAgIGNvbG9yOiAkcmVkO1xuICB9XG5cbiAgLl9wcmV2LWJ1dHRvbixcbiAgLl9uZXh0LWJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgc3Bhbig2KTtcbiAgfVxuXG4gIC5fcGFnZXMge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgbGkge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cblxuICAgIC4tYXJyb3ctbGVmdCxcbiAgICAuLWFycm93LXJpZ2h0IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLl9wcmV2LWJ1dHRvbiBhLFxuICAuX25leHQtYnV0dG9uIGEsXG4gIC5fbnVtYmVyLWJ1dHRvbixcbiAgLl9wcmV2LWJ1dHRvbi1pY29uLFxuICAuX25leHQtYnV0dG9uLWljb24ge1xuICAgIHBhZGRpbmc6IDAuOXJlbTtcbiAgfVxuXG4gIC4tYXJyb3ctbGVmdCxcbiAgLi1hcnJvdy1yaWdodCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXRvcDogM3B4O1xuICB9XG5cbiAgLl9wcmV2LWJ1dHRvbiB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcblxuICAgIGEge1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIH1cblxuICAgIC4tYXJyb3ctbGVmdCB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgICB9XG4gIH1cblxuICAuX25leHQtYnV0dG9uIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG5cbiAgICBhIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgfVxuXG4gICAgLi1hcnJvdy1yaWdodCB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW4tbGVmdDogNnB4O1xuICAgIH1cbiAgfVxuXG4gIC4tc2VsZWN0ZWQge1xuICAgIGNvbG9yOiAkcmVkO1xuICB9XG5cbiAgLy8gVGFibGV0XG4gIFxuICBAaW5jbHVkZSBicmVha3BvaW50KCRtZWRpdW0pIHtcbiAgICBtYXJnaW4tdG9wOiAxcmVtO1xuXG4gICAgLl9wcmV2LWJ1dHRvbixcbiAgICAuX25leHQtYnV0dG9uIHtcbiAgICAgIEBpbmNsdWRlIHNwYW4oMik7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgIC5fcHJldi1idXR0b24ge1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIH1cblxuICAgIC5fbmV4dC1idXR0b24ge1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICB9XG5cbiAgICAuX3BhZ2VzIHtcbiAgICAgIEBpbmNsdWRlIHNwYW4oOCk7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRsYXJnZSkge1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcblxuICAgIC5fcHJldi1idXR0b24gYSxcbiAgICAuX25leHQtYnV0dG9uIGEsXG4gICAgLl9udW1iZXItYnV0dG9uLFxuICAgIC5fcHJldi1idXR0b24taWNvbixcbiAgICAuX25leHQtYnV0dG9uLWljb24ge1xuICAgICAgcGFkZGluZzogMC4zNXJlbTtcbiAgICB9XG5cbiAgICAuX3BhZ2VzIHtcbiAgICAgIC4tYXJyb3ctbGVmdCxcbiAgICAgIC4tYXJyb3ctcmlnaHQge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLXRvcDogM3B4O1xuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIi5tb2RhbC1ibGFua2V0IHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5ICR0cmFucy1kdXJhdGlvbioyICR0cmFucy1mdW5jdGlvbjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNzUpO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGxlZnQ6IDA7XG4gICAgb3BhY2l0eTogMDtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB6LWluZGV4OiAyMDQwO1xuXG4gICAgLi1tb2RhbC1pcy1vcGVuICYge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG59XG5cbi8vIEF0dGFjaCB0aGlzIHRvIDxib2R5PiB0byBraWxsIGJvZHkgc2Nyb2xsaW5nIHdoZW4gYSBtb2RhbCBpcyBvcGVuXG5cbi4tbW9kYWwtaXMtb3BlbiB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLl9tb2RhbCB7XG4gICAgQGluY2x1ZGUgc3BhbigxMCk7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgbWFyZ2luOiBzcGFuKDMpIGF1dG87XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRtZWRpdW0pIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogc3BhbigyKTtcbiAgICAgICAgbWFyZ2luLXRvcDogc3BhbigyKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRsYXJnZSkge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBzcGFuKDEpO1xuICAgICAgICBtYXJnaW4tdG9wOiBzcGFuKDEpO1xuICAgIH1cbn0iLCIvLyBNb2RhbCBtb2RpZmllciBmb3IgYSBob21lcGFnZSB0YWtlb3ZlclxuXG4ubW9kYWwtYmxhbmtldC5tb2RhbC10YWtlb3ZlciB7XG4gIHotaW5kZXg6IDExMDAwO1xuXG4gIC5fbW9kYWwge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIG1heC13aWR0aDogJGxhcmdlICsgNDBweDtcbiAgICBwYWRkaW5nOiAyMHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIC5fYnV0dG9uIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHJpZ2h0OiAzMnB4O1xuICAgICAgdG9wOiAzNHB4O1xuICAgIH1cbiAgfVxuXG4gIGlmcmFtZSB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWVkaXVtKSB7XG4gICAgLl9tb2RhbCB7XG4gICAgICBtYXgtaGVpZ2h0OiA5NjBweDtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRsYXJnZSkge1xuICAgIC5fbW9kYWwge1xuICAgICAgbWF4LWhlaWdodDogOTUwcHg7XG4gICAgICBwYWRkaW5nLXRvcDogNDBweDtcblxuICAgICAgLl9idXR0b24ge1xuICAgICAgICB0b3A6IDU0cHg7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIubmV3cy1saXN0IHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIEBpbmNsdWRlIGZ1bGw7XG4gIGZsb2F0OiBub25lO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgLmJveC4tbmV3cyB7XG4gICAgbWFyZ2luLWJvdHRvbTogZ3V0dGVycygpO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWVkaXVtKSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAkc3RhbmRhcmQtc3BhY2UgKiAyO1xuICAgIH1cbiAgfVxufVxuXG4ubmV3cy1hcnRpY2xlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblxuICAuX2ltYWdlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIC5fY29udGVudCB7XG4gICAgcGFkZGluZzogJHN0YW5kYXJkLXNwYWNlO1xuICB9XG5cbiAgLl9kYXRlLFxuICAuX3RpdGxlIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB9XG5cbiAgLl9kYXRlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IDAuOXJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAxZW07XG4gIH1cblxuICAuX3RpdGxlIHtcbiAgICBAZXh0ZW5kICVmb250LWZ1dHVyYS1tZWRpdW07XG4gICAgZm9udC1zaXplOiAycmVtO1xuICB9XG59XG4iLCIvKlxuVHJhY2sgTGlzdGluZ1xuXG5Vc2VkIG9uIGFsYnVtIGRldGFpbCBwYWdlXG4qL1xuXG4udHJhY2stbGlzdGluZyB7XG4gIGZvbnQtc2l6ZTogMS4xNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMmVtO1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuXG4gIHRkIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGxpZ2h0LWxpZ2h0LWdyZXk7XG4gICAgcGFkZGluZzogMWVtIDA7XG4gIH1cblxuICAuX3RyYWNrLW51bWJlciB7XG4gICAgY29sb3I6ICRtZWRpdW0tbGlnaHQtZ3JleTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDE4cHg7IC8vIEZpbGwgb3V0IGZvciB0aGUgcGxheSBpY29uXG4gICAgbWFyZ2luLWxlZnQ6IC00cHg7IC8vIE9mZnNldCBhIGJpdCBzbyB0aGF0IHRoZSBpY29uIGxpbmVzIHVwIHdpdGggdHJhY2sgbnVtYmVyXG4gICAgcGFkZGluZy1sZWZ0OiAxOHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHdpZHRoOiAzNnB4OyAvLyBGaXggd2VpcmQgYnVnIHdpdGggcGxheSBpY29uIGdldHRpbmcgcmFuZG9tbHkgd2lkZXIgYW5kIHdpZGVyXG4gIH1cblxuICAuX3RyYWNrLXRpdGxlIHtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIGEge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6ICRyZWQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLl90cmFjay1saW5rcyB7XG4gICAgZm9udC1zaXplOiAwLjg1ZW07XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuXG4gICAgYSB7XG4gICAgICBjb2xvcjogJG1lZGl1bS1ncmV5O1xuICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogJHJlZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuX3RyYWNrLXRpbWUge1xuICAgIHBhZGRpbmctbGVmdDogMjBweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xuICAgIGNvbG9yOiAkbWVkaXVtLWxpZ2h0LWdyZXk7XG4gIH1cblxuICAvLyBTdGF0ZXNcblxuICAmIC5fdHJhY2s6aG92ZXIsXG4gIC5fdHJhY2suLWlzLXBsYXlpbmcsXG4gIC5fdHJhY2suLWlzLWFjdGl2ZSB7XG4gICAgJixcbiAgICAuX3RyYWNrLXRpdGxlIGEsXG4gICAgLl90cmFjay1saW5rcyBhLFxuICAgIC5fdHJhY2stdGltZSB7XG4gICAgICBjb2xvcjogJHJlZDtcbiAgICB9XG4gIH1cblxuICAmIC5fdHJhY2suLWhhcy10cmFjazpob3ZlcixcbiAgLl90cmFjay4taXMtbG9hZGluZyxcbiAgLl90cmFjay4taXMtcGxheWluZyB7XG4gICAgLl90cmFjay1udW1iZXIge1xuICAgICAgQGluY2x1ZGUgaGlkZS10ZXh0O1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDUwJTtcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IDE4cHggMThweDtcbiAgICB9XG4gIH1cblxuICAvLyBIb3ZlciBzdGF0ZVxuXG4gICYgLl90cmFjay4taGFzLXRyYWNrOmhvdmVyIHtcbiAgICAuX3RyYWNrLW51bWJlciB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uLy4uL2ltYWdlcy9pY29ucy9zaGFyZWQvaWNvbi1wbGF5LWJsYWNrLnN2ZycpO1xuICAgIH1cbiAgfVxuXG4gIC8vIExvYWRpbmcgc3RhdGVcblxuICAuX3RyYWNrLi1pcy1sb2FkaW5nLFxuICAmIC5fdHJhY2suLWlzLWxvYWRpbmc6aG92ZXIge1xuICAgIC5fdHJhY2stbnVtYmVyIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vLi4vaW1hZ2VzL2xvYWRpbmctc3Bpbi5zdmcnKTtcbiAgICB9XG4gIH1cblxuICAvLyBQbGF5aW5nIHN0YXRlXG4gIFxuICAuX3RyYWNrLi1pcy1wbGF5aW5nLFxuICAmIC5fdHJhY2suLWlzLXBsYXlpbmc6aG92ZXIge1xuICAgIC5fdHJhY2stbnVtYmVyIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vLi4vaW1hZ2VzL2ljb25zL3NoYXJlZC9pY29uLXBhdXNlLnN2ZycpO1xuICAgIH1cbiAgfVxuXG4gIC8vIERpc2FibGVkIHN0YXRlXG4gIFxuICAuX3RyYWNrLi1kaXNhYmxlZCxcbiAgJiAuX3RyYWNrLi1kaXNhYmxlZCB7XG4gICAgJixcbiAgICAuX3RyYWNrLW51bWJlciB7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRsYXJnZSkge1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcblxuICAgIHRkIHtcbiAgICAgIHBhZGRpbmc6IDAuNzVlbSAwO1xuICAgIH1cblxuICAgIC5fdHJhY2stbnVtYmVyIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMThweDtcbiAgICAgIHBhZGRpbmctbGVmdDogMThweDtcbiAgICB9XG4gIH1cbn0iLCIvKipcbiAqIEEgbGlzdCB1c2VkIGZvciBjb250YWN0cyBvciBiYW5kIG1lbWJlcnMgd2hlcmUgdGhlcmUncyBhIHRpdGxlIChlLmcuIFwiTGVhZCBHdWl0YXJcIikgXG4gKiBhbmQgYSB2YWx1ZSAoZS5nLiBcIkJyZXR0IEd1cmV3aXR6XCIpXG4gKi9cblxuLnRpdGxlZC1saXN0IHtcbiAgZm9udC1zaXplOiAxLjE1cmVtO1xuXG4gIGxpIHtcbiAgICBsaW5lLWhlaWdodDogMS4ycmVtO1xuXG4gICAgJiArIGxpIHtcbiAgICAgIG1hcmdpbi10b3A6IDEuNXJlbTtcbiAgICB9XG4gIH1cblxuICAuX3RpdGxlLFxuICAuX3ZhbHVlIHtcbiAgICBsaW5lLWhlaWdodDogMS4yZW07XG4gIH1cblxuICAuX3RpdGxlIHtcbiAgICBjb2xvcjogJGJyb256ZTtcbiAgICBmb250LXNpemU6IDEuM3JlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB9XG5cbiAgLl92YWx1ZSB7XG4gICAgYSB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogJHJlZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRtZWRpdW0pIHtcbiAgICBmb250LXNpemU6IDFyZW07XG5cbiAgICAuX3RpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgIH1cblxuICAgIGxpICsgbGkge1xuICAgICAgbWFyZ2luLXRvcDogMC43NXJlbTtcbiAgICB9XG4gIH1cbn0iLCIvLyBFbGVtZW50IHRvIEFKQVgtbG9hZCBzdWJwYWdlcyBpbnRvXG5cbi5zdWJwYWdlLWxvYWRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAmLi1pcy1sb2FkaW5nIHtcbiAgICAuc3VicGFnZSB7XG4gICAgICBvcGFjaXR5OiAwLjU7XG4gICAgfVxuICB9XG5cbiAgLmljb24uLWxvYWRpbmcge1xuICAgIGxlZnQ6IDI1cHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTBweDtcbiAgfVxufVxuIiwiLmxheW91dC1hcnRpc3RzIHtcbiAgQGV4dGVuZCAubGF5b3V0LXN0YW5kYXJkO1xufVxuXG4uYXJ0aXN0cy1saXN0IHtcbiAgQGV4dGVuZCAlZm9udC1mdXR1cmEtbGlnaHQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBwYWRkaW5nOiAwIDIwcHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cbiAgLl9hcnRpc3Qtc2VjdGlvbiB7XG4gICAgcGFkZGluZzogMTBweCAwO1xuICB9XG5cbiAgLl9hcnRpc3Qtc2VjdGlvbiArIC5fYXJ0aXN0LXNlY3Rpb24ge1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZDFkM2Q0O1xuICB9XG5cbiAgb2wge1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIGEge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDEwcHggMDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAmIHtcbiAgICAgIHRyYW5zaXRpb246IGNvbG9yICR0cmFucy1kdXJhdGlvbiAkdHJhbnMtZnVuY3Rpb247XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogJHJlZDtcbiAgICAgIH1cbiAgICB9IFxuICB9XG5cbiAgJi4tYWx1bW5pIHtcbiAgICBhIHtcbiAgICAgIGNvbG9yOiAkbWVkaXVtLWxpZ2h0LWdyZXk7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbGFyZ2UpIHtcbiAgICBmb250LXNpemU6IDEuMTVyZW07XG5cbiAgICBhIHtcbiAgICAgIHBhZGRpbmc6IDVweCAwO1xuICAgIH1cbiAgfVxufVxuIiwiLmxheW91dC1zdWJwYWdlLi1waG90byxcbi5sYXlvdXQtc3VicGFnZS4tbG9nbyB7XG4gIC5fc3VicGFnZS1jb250ZW50IHtcbiAgICBpbWcge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRsYXJnZSkge1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gQ29udGFjdCBwYWdlXG5cbi5sYXlvdXQtc3VicGFnZS4tY29udGFjdCB7XG5cbiAgLy8gTWFrZSB0aGUgdGl0bGVkIGxpc3QsIGNvbHVtbnkgYW5kIHJlc3BvbnNpdnlcblxuICAudGl0bGVkLWxpc3Qge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgIHBhZGRpbmctYm90dG9tOiAkZ3V0dGVycztcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1lZGl1bSkge1xuICAgICAgbWFyZ2luLWxlZnQ6IC0xICogJGd1dHRlcnM7XG4gICAgICBtYXJnaW4tcmlnaHQ6IC0xICogJGd1dHRlcnM7XG5cbiAgICAgIGxpIHtcbiAgICAgICAgQGluY2x1ZGUgc3Bhbig2KTtcblxuICAgICAgICAvLyBDbGVhciBmbG9hdHMgZm9yIGVhY2ggcm93XG5cbiAgICAgICAgJjpudGgtY2hpbGQoMm4rMSkge1xuICAgICAgICAgIGNsZWFyOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJjpudGgtY2hpbGQoM24rMSkge1xuICAgICAgICAgIGNsZWFyOiBub25lO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGxhcmdlKSB7XG4gICAgICBsaSB7XG4gICAgICAgIEBpbmNsdWRlIHNwYW4oNCk7XG5cbiAgICAgICAgLy8gQ2xlYXIgZmxvYXRzIGZvciBlYWNoIHJvd1xuXG4gICAgICAgICY6bnRoLWNoaWxkKDJuKzEpIHtcbiAgICAgICAgICBjbGVhcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bnRoLWNoaWxkKDNuKzEpIHtcbiAgICAgICAgICBjbGVhcjogbGVmdDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gICAgXG4gIH1cbn1cbiIsIi5sYXlvdXQtYWxidW0tZGV0YWlsIHtcbiAgLl9oZWFkbGluZSB7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuM2VtO1xuICAgIG1hcmdpbjogMCAwIDAuMTVlbSAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIH1cblxuICAuY29sdW1uLTIge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICB9XG5cbiAgLy8gQWxidW0gZGV0YWlscyAobGVmdCBjb2x1bW4pXG4gIFxuICAuX3JlbGVhc2UtaGVhZGVyLFxuICAuX3JlbGVhc2UtZGVzY3JpcHRpb24ge1xuICAgIHBhZGRpbmctbGVmdDogJGd1dHRlcnM7XG4gICAgcGFkZGluZy1yaWdodDogJGd1dHRlcnM7XG4gIH1cblxuICAuX21ldGEge1xuICAgIGxpbmUtaGVpZ2h0OiAxLjc1ZW07XG4gICAgcGFkZGluZzogJGd1dHRlcnMgMDtcbiAgfVxuXG4gIC5fY29weXJpZ2h0IHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI0QxRDNENDtcbiAgICBtYXJnaW4tdG9wOiAxNnB4O1xuICAgIHBhZGRpbmctdG9wOiA4cHg7XG5cbiAgICBwIHtcbiAgICAgIG1hcmdpbjogMWVtIDA7XG4gICAgfVxuICB9XG5cbiAgLy8gQWxidW0gdGl0bGVcblxuICAuX3JlbGVhc2UtaGVhZGVyIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0QxRDNENDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICB9XG5cbiAgLl9yZWxlYXNlLXRpdGxlLFxuICAuX2FydGlzdC1uYW1lIHtcbiAgICBjb2xvcjogJGRhcmstZGFyay1ncmV5O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIH1cblxuICAuX3JlbGVhc2UtdGl0bGUge1xuICAgIEBleHRlbmQgJWZvbnQtdHVuZ3N0ZW4tc2VtaWJvbGQ7XG4gICAgZm9udC1zaXplOiAyLjg1cmVtO1xuICB9XG5cbiAgLl9hcnRpc3QtbmFtZSB7XG4gICAgQGV4dGVuZCAlZm9udC10dW5nc3Rlbi1tZWRpdW07XG4gICAgZm9udC1zaXplOiAyLjNyZW07XG4gIH1cblxuICAvLyBBbGJ1bSBkZXNjcmlwdGlvblxuXG4gIC5fcmVsZWFzZS1kZXNjcmlwdGlvbiB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgcGFkZGluZy1yaWdodDogJGd1dHRlcnM7XG4gIH1cblxuICAuX3NoYXJlLWxpbmtzIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAtNHB4O1xuXG4gICAgbGkge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICBvcGFjaXR5OiAwLjM1O1xuICAgICAgcGFkZGluZzogOHB4O1xuXG4gICAgICAmIHtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAkdHJhbnMtZHVyYXRpb24gJHRyYW5zLWZ1bmN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRsYXJnZSkge1xuICAgIC5jb2x1bW4tMiB7XG4gICAgICBwYWRkaW5nLWxlZnQ6ICRndXR0ZXJzO1xuICAgIH1cblxuICAgIC5fcmVsZWFzZS1oZWFkZXIsXG4gICAgLl9yZWxlYXNlLWRlc2NyaXB0aW9uIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6ICRzdGFuZGFyZC1zcGFjZTtcbiAgICB9XG5cbiAgICAuX21ldGEge1xuICAgICAgcGFkZGluZzogMTZweCA4cHg7XG4gICAgfVxuICB9XG59XG5cbi8vIE90aGVyIHJlbGVhc2VzIGxpc3RpbmdcblxuLm90aGVyLXJlbGVhc2VzIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG5cbiAgLl9oZWFkIHtcbiAgICBAZXh0ZW5kICVmb250LWZ1dHVyYS1tZWRpdW07XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNEMUQzRDQ7XG4gICAgcGFkZGluZzogOHB4ICRndXR0ZXJzO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIH1cblxuICAuX3JlbGVhc2Uge1xuICAgIEBpbmNsdWRlIHNwYW4oNik7XG4gICAgbGluZS1oZWlnaHQ6IDEuM2VtO1xuICAgIHBhZGRpbmctYm90dG9tOiAxNHB4O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICY6bnRoLWNoaWxkKDJuKzEpIHtcbiAgICAgIGNsZWFyOiBsZWZ0O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1lZGl1bSkge1xuICAgICAgQGluY2x1ZGUgc3BhbigzKTtcblxuICAgICAgJjpudGgtY2hpbGQoMm4rMSkge1xuICAgICAgICBjbGVhcjogbm9uZTtcbiAgICAgIH1cblxuICAgICAgJjpudGgtY2hpbGQoNG4rMSkge1xuICAgICAgICBjbGVhcjogbGVmdDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRsYXJnZSkge1xuICAgICAgQGluY2x1ZGUgc3BhbigyKTtcblxuICAgICAgJjpudGgtY2hpbGQoNG4rMSkge1xuICAgICAgICBjbGVhcjogbm9uZTtcbiAgICAgIH1cblxuICAgICAgJjpudGgtY2hpbGQoNm4rMSkge1xuICAgICAgICBjbGVhcjogbGVmdDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOmhvdmVyIC5fdGl0bGUge1xuICAgICAgY29sb3I6ICRyZWQ7XG4gICAgfVxuICB9XG5cbiAgLl9saXN0IHtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICBwYWRkaW5nOiAkZ3V0dGVycyAwIDA7XG4gIH1cblxuICAuX2NvdmVyIHtcbiAgICBtYXJnaW4tYm90dG9tOiA2cHg7XG5cbiAgICBpbWcge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cblxuICAuX3RpdGxlIHtcbiAgICBAZXh0ZW5kICVmb250LWZ1dHVyYS1tZWRpdW07XG4gICAgY29sb3I6ICRkYXJrLWRhcmstZ3JleTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAmIHtcbiAgICAgIHRyYW5zaXRpb246IGNvbG9yICR0cmFucy1kdXJhdGlvbiAkdHJhbnMtZnVuY3Rpb247XG4gICAgfVxuICB9XG5cbiAgLl9yZWxlYXNlLWRhdGUge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjb2xvcjogJG1lZGl1bS1saWdodC1ncmV5O1xuICB9XG59IiwiLmxheW91dC10cmFjay1kZXRhaWwge1xuICAuX2hlYWRsaW5lIHtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4zZW07XG4gICAgbWFyZ2luOiAwLjc1ZW0gMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB9XG5cbiAgLmNvbHVtbi0yIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gIH1cblxuICAvLyBBbGJ1bSBkZXRhaWxzIChsZWZ0IGNvbHVtbilcbiAgXG4gIC5fdHJhY2staGVhZGVyLFxuICAuX2NvbnRyaWJ1dG9ycyxcbiAgLl9seXJpY3Mge1xuICAgIG1hcmdpbi1sZWZ0OiAkZ3V0dGVycztcbiAgfVxuXG4gIC5fbWV0YSB7XG4gICAgbGluZS1oZWlnaHQ6IDEuNzVlbTtcbiAgICBwYWRkaW5nOiAkZ3V0dGVycyAwO1xuICB9XG5cbiAgLnRyYWNrLWxpc3Rpbmcge1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjRDFEM0Q0O1xuICAgIG1hcmdpbi10b3A6IDE2cHg7XG4gICAgcGFkZGluZy10b3A6IDE2cHg7XG4gICAgLl9oZWFkbGluZSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAgIH1cbiAgfVxuXG4gIC8vIEFsYnVtIHRpdGxlXG5cbiAgLl90cmFjay1oZWFkZXIge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRDFEM0Q0O1xuXG4gICAgLl90cmFjay10aXRsZSxcbiAgICAuX2FydGlzdC1hbmQtYWxidW0tbmFtZSB7XG4gICAgICBjb2xvcjogJGRhcmstZGFyay1ncmV5O1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICB9XG5cbiAgICAuX3RyYWNrLXRpdGxlIHtcbiAgICAgIEBleHRlbmQgJWZvbnQtdHVuZ3N0ZW4tc2VtaWJvbGQ7XG4gICAgICBmb250LXNpemU6IDIuODVyZW07XG4gICAgfVxuXG4gICAgLl9hcnRpc3QtYW5kLWFsYnVtLW5hbWUge1xuICAgICAgQGV4dGVuZCAlZm9udC10dW5nc3Rlbi1tZWRpdW07XG4gICAgICBmb250LXNpemU6IDIuM3JlbTtcbiAgICB9XG5cbiAgICAuX25hdiB7XG4gICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjRDFEM0Q0O1xuICAgICAgcGFkZGluZzogMjBweCAwO1xuICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICB9XG5cbiAgICAuX2JhY2stdG8tYWxidW0sXG4gICAgLl9uZXh0LXRyYWNrIHtcbiAgICAgIEBleHRlbmQgJWZvbnQtZnV0dXJhLW1lZGl1bTtcbiAgICAgIGNvbG9yOiAkbWVkaXVtLWdyZXk7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6ICRyZWQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLl9iYWNrLXRvLWFsYnVtIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cblxuICAgIC5fbmV4dC10cmFjayB7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxuICB9XG5cbiAgLy8gQ29udHJpYnV0b3JzXG4gIFxuICAuX2NvbnRyaWJ1dG9ycyB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRsaWdodC1saWdodC1ncmV5O1xuICAgIHBhZGRpbmctYm90dG9tOiAxNXB4O1xuXG4gICAgdGFibGUge1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMmVtO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgdGQge1xuICAgICAgcGFkZGluZzogNXB4IDA7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIH1cblxuICAgIC5fY29udHJpYnV0aW9ucyB7XG4gICAgICBjb2xvcjogJG1lZGl1bS1saWdodC1ncmV5O1xuICAgICAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgICAgIHdpZHRoOiAyNSU7XG4gICAgfVxuXG4gICAgLl9jb250cmlidXRvci1uYW1lIHtcbiAgICAgIHdpZHRoOiA3NSU7XG4gICAgfVxuICB9XG5cbiAgLy8gVHJhY2sgbHlyaWNzXG5cbiAgLl9seXJpY3Mge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgIHBhZGRpbmctcmlnaHQ6ICRndXR0ZXJzO1xuICAgIHBhZGRpbmctdG9wOiAyNXB4O1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbGFyZ2UpIHtcbiAgICAuY29sdW1uLTIge1xuICAgICAgcGFkZGluZy1sZWZ0OiAkZ3V0dGVycztcbiAgICB9XG5cbiAgICAuX3RyYWNrLWhlYWRlcixcbiAgICAuX2NvbnRyaWJ1dG9ycyxcbiAgICAuX2x5cmljcyB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgfVxuXG4gICAgLl9tZXRhIHtcbiAgICAgIHBhZGRpbmc6IDE2cHggOHB4O1xuICAgIH1cbiAgfVxufVxuIiwiLmxheW91dC1yZWxlYXNlcy1saXN0IHtcbiAgQGV4dGVuZCAuY29udGFpbmVyO1xufVxuXG4ucmVsZWFzZXMtbGlzdCB7XG4gIEBpbmNsdWRlIGZ1bGw7XG5cbiAgb2wge1xuICAgIEBleHRlbmQgLmNvbnRlbnQtYm94O1xuXG4gICAgLl9yZWxlYXNlOmZpcnN0LWNoaWxkIHtcbiAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIH1cblxuICAgIC5fcmVsZWFzZTpsYXN0LWNoaWxkIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuXG4gIC5fcmVsZWFzZSB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgcGFkZGluZzogMTJweCAwO1xuICB9XG5cbiAgLl9yZWxlYXNlICsgLl9yZWxlYXNlIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGxpZ2h0LWxpZ2h0LWdyZXk7XG4gIH1cblxuICAuX3RpdGxlIHtcbiAgICBmb250LXNpemU6IDJyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgIG1hcmdpbi10b3A6IDVweDtcbiAgfVxuXG4gIC5fdGl0bGUsXG4gIC5fYXJ0aXN0IHtcbiAgICBAZXh0ZW5kICVmb250LWZ1dHVyYS1tZWRpdW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuICAgICYsXG4gICAgYSB7XG4gICAgICBjb2xvcjogJGRhcmstZGFyay1ncmV5O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cblxuICAgIGE6aG92ZXIge1xuICAgICAgY29sb3I6ICRyZWQ7XG4gICAgfVxuICB9XG5cbiAgLl9hcnRpc3QsXG4gIC5fcmVsZWFzZS1kYXRlIHtcbiAgICBtYXJnaW4tYm90dG9tOiA3cHg7XG4gICAgbWFyZ2luLXRvcDogN3B4O1xuICB9XG5cbiAgLl9yZWxlYXNlLWRhdGUge1xuICAgIEBleHRlbmQgJWZvbnQtZnV0dXJhLWxpZ2h0LWl0YWxpYztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIC5fcHVyY2hhc2Uge1xuICAgIG1hcmdpbi10b3A6IDEycHg7XG4gIH1cblxuICAuX3B1cmNoYXNlLWJ1dHRvbiB7XG4gICAgQGV4dGVuZCAlZm9udC1mdXR1cmEtbWVkaXVtO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRsaWdodC1saWdodC1ncmV5O1xuICAgIGNvbG9yOiAkbWVkaXVtLWdyZXk7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAxLjE1cmVtO1xuICAgIHBhZGRpbmc6IDhweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogY29sb3IsIGJhY2tncm91bmQtY29sb3I7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogJHRyYW5zLWR1cmF0aW9uO1xuICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkdHJhbnMtZnVuY3Rpb247XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRkYXJrLWRhcmstZ3JleTtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgIH1cblxuICAgIC8vIFByZW9yZGVyIHZhcmlhdGlvblxuXG4gICAgJi4tcHJlb3JkZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJyb256ZTtcbiAgICAgIGNvbG9yOiAjZmZmO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRicm9uemUsIDE1JSk7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1lZGl1bSkge1xuICAgIC5fdGl0bGUge1xuICAgICAgQGluY2x1ZGUgc3Bhbig1KTtcbiAgICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIH1cblxuICAgIC5fYXJ0aXN0IHtcbiAgICAgIEBpbmNsdWRlIHNwYW4oMyk7XG4gICAgfVxuXG4gICAgLl9yZWxlYXNlLWRhdGUge1xuICAgICAgQGluY2x1ZGUgc3BhbigyKTtcbiAgICB9XG5cbiAgICAuX3B1cmNoYXNlIHtcbiAgICAgIEBpbmNsdWRlIHNwYW4oMik7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICB9XG4gIH1cbn0iLCIvLyBNYXBcblxuJHRvdXJzLW1hcC1wYWQ6IDVweDtcblxuLmxheW91dC10b3VycyAuZW1wdHktaGVhZCB7XG4gIHBhZGRpbmctbGVmdDogMDtcbn1cblxuLnRvdXJzLW1hcCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRzYWxtb247XG4gIG1hcmdpbi1ib3R0b206ICRzdGFuZGFyZC1zcGFjZTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuICAmLFxuICBhIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgfVxuXG4gIC5fbWFwLXdyYXBwZXIge1xuICAgIHBhZGRpbmc6ICR0b3Vycy1tYXAtcGFkO1xuICB9XG5cbiAgLl9tYXAge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgaGVpZ2h0OiAzMjBweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIC5fbmF2LXdyYXBwZXIge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgIHBhZGRpbmctYm90dG9tOiAkdG91cnMtbWFwLXBhZDtcbiAgfVxuXG4gIC8vIERhdGUvdGltZWZyYW1lIG5hdlxuXG4gIC5fZGF0ZS1uYXYsXG4gIC5fdmlldy1uYXYge1xuICAgIEBpbmNsdWRlIGZ1bGw7XG4gICAgZm9udC1zaXplOiAxLjNyZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG5cbiAgLy8gU2hhcmVkIGJ1dHRvbiBzaXppbmdcblxuICAuX2RhdGUtbmF2IC5fZGF0ZS1yYW5nZSxcbiAgLl9kYXRlLW5hdiBhLFxuICAuX3ZpZXctbmF2IC5faGVhZCxcbiAgLl92aWV3LW5hdiBhIHtcbiAgICBwYWRkaW5nOiAxMHB4O1xuICB9XG5cbiAgLl9kYXRlLW5hdiB7XG4gICAgcGFkZGluZy1sZWZ0OiA0cHg7XG5cbiAgICAuX3ByZXYtYnV0dG9uLFxuICAgIC5fZGF0ZS1yYW5nZSxcbiAgICAuX25leHQtYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG4gIH1cblxuICAuX3ZpZXctbmF2IHtcbiAgICAuX2hlYWQsXG4gICAgLl92aWV3LW9wdGlvbnMsXG4gICAgbGkge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cblxuICAgIC5fdmlldy1vcHRpb25zIHtcbiAgICAgIGxpIHtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZmZmO1xuXG4gICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLl9oZWFkIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuXG4gICAgLi1zZWxlY3RlZCBhLFxuICAgICYgYTpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICB9XG4gIH1cblxuICAvLyBUYWJsZXQgdmFyaWF0aW9uc1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1lZGl1bSkge1xuICAgIC5fZGF0ZS1uYXYsXG4gICAgLl92aWV3LW5hdiB7XG4gICAgICBAaW5jbHVkZSBzcGFuKDYpO1xuICAgICAgY2xlYXI6IG5vbmU7XG4gICAgICBmb250LXNpemU6IDEuMTVyZW07XG4gICAgfVxuXG4gICAgLl9kYXRlLW5hdiAuX2RhdGUtcmFuZ2UsXG4gICAgLl9kYXRlLW5hdiBhLFxuICAgIC5fdmlldy1uYXYgLl9oZWFkLFxuICAgIC5fdmlldy1uYXYgYSB7XG4gICAgICBwYWRkaW5nOiA3cHg7XG4gICAgfVxuXG4gICAgLl9kYXRlLW5hdiB7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIH1cblxuICAgIC5fdmlldy1uYXYge1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxuICB9XG5cbiAgLy8gRGVza3RvcCB2YXJpYXRpb25zXG4gIFxuICBAaW5jbHVkZSBicmVha3BvaW50KCRsYXJnZSkge1xuICAgIC5fZGF0ZS1uYXYsXG4gICAgLl92aWV3LW5hdiB7XG4gICAgICBmb250LXNpemU6IDFyZW07XG4gICAgfVxuICB9XG59XG5cbi8vIE1hcCBvdmVybGF5c1xuXG4kdG91cnMtb3ZlcmxheS13aWR0aDogMzIwcHg7XG4kdG91cnMtb3ZlcmxheS1iZy1jb2xvcjogdHJhbnNwYXJlbnRpemUoJGRhcmstZGFyay1ncmV5LCAwLjA1KTtcbiR0b3Vycy1vdmVybGF5LXBvaW50LXNpemU6IDE4cHg7XG4kdG91cnMtb3ZlcmxheS1hcnJvdy1zaXplOiAxNXB4O1xuXG4udG91cnMtbWFwLW92ZXJsYXkge1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5ICR0cmFucy1kdXJhdGlvbioyICR0cmFucy1mdW5jdGlvbjtcbiAgbWFyZ2luLWxlZnQ6IC0xICogKCgkdG91cnMtb3ZlcmxheS1hcnJvdy1zaXplICogMykgKyAoJHRvdXJzLW92ZXJsYXktYXJyb3ctc2l6ZSAvIDIpICsgKCR0b3Vycy1vdmVybGF5LXBvaW50LXNpemUgLyAyKSk7XG4gIG1hcmdpbi10b3A6ICR0b3Vycy1vdmVybGF5LWFycm93LXNpemUgKyA1cHg7XG4gIG9wYWNpdHk6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogNTAwO1xuXG4gICYuLXNob3dpbmcge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAuX292ZXJsYXktaW5uZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR0b3Vycy1vdmVybGF5LWJnLWNvbG9yO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI1ZW07XG4gICAgcGFkZGluZzogJHN0YW5kYXJkLXNwYWNlIC8gMjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6ICR0b3Vycy1vdmVybGF5LXdpZHRoO1xuXG4gICAgLy8gQXJyb3dcbiAgICBcbiAgICAmOmFmdGVyIHtcbiAgICAgIGJvdHRvbTogMTAwJTtcbiAgICAgIGxlZnQ6ICgkdG91cnMtb3ZlcmxheS1hcnJvdy1zaXplICogMyk7XG4gICAgICBib3JkZXI6IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgY29udGVudDogXCIgXCI7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgICB3aWR0aDogMDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICR0b3Vycy1vdmVybGF5LWJnLWNvbG9yO1xuICAgICAgYm9yZGVyLXdpZHRoOiAkdG91cnMtb3ZlcmxheS1hcnJvdy1zaXplO1xuICAgIH1cbiAgfVxuXG4gIC5fc2hvdy1sb2NhdGlvbiB7XG4gICAgZm9udC1zaXplOiAxLjNyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMWVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIH1cblxuICAuX3Nob3dzIHtcbiAgICBsaSB7XG4gICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICAgIHBhZGRpbmc6IDNweCAwO1xuICAgIH1cblxuICAgIC5fc2hvdy1kYXRlIHtcbiAgICAgIEBleHRlbmQgJWZvbnQtdHVuZ3N0ZW4tbWVkaXVtO1xuICAgICAgQGluY2x1ZGUgc3BhbigyKTtcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfVxuXG4gICAgLl9hcnRpc3QtbmFtZSB7XG4gICAgICBAaW5jbHVkZSBzcGFuKDUpO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICB9XG5cbiAgICAuX3Nob3ctdmVudWUge1xuICAgICAgQGluY2x1ZGUgc3Bhbig1KTtcbiAgICAgIEBleHRlbmQgJWZvbnQtZnV0dXJhLWxpZ2h0LWl0YWxpYztcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgfVxuICB9XG59XG5cbi8vIFRvdXIgZGF0ZXMgbGlzdFxuXG4udG91cnMtbW9udGgtaGVhZCB7XG4gIGNvbG9yOiAkbGlnaHQtZ3JleTtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIG1hcmdpbjogKCRndXR0ZXJzICogMikgMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLnRvdXJzLWxpc3Qge1xuICAuX3RvdXItZGF5LFxuICAuX3Nob3dzLWxpc3QsXG4gIC5fc2hvdyB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIH1cblxuICAuX3RvdXItZGF5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgfVxuXG4gIC5fdG91ci1kYXRlLWhlYWQge1xuICAgIEBleHRlbmQgJWZvbnQtdHVuZ3N0ZW4tbWVkaXVtO1xuICAgIEBpbmNsdWRlIGZ1bGw7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRsaWdodC1saWdodC1ncmV5O1xuICAgIGNvbG9yOiAkYnJvbnplO1xuICAgIGZvbnQtc2l6ZTogMi4zcmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAwLjllbTtcbiAgICBwYWRkaW5nOiAxMnB4O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cbiAgICBzdXAge1xuICAgICAgZm9udC1zaXplOiAwLjZlbTtcbiAgICB9XG4gIH1cblxuICAuX3RvdXItZGF5LXNob3dzIHtcbiAgICBjbGVhcjogbGVmdDtcbiAgfVxuXG4gIC5fc2hvdyB7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjVlbTtcbiAgICBwYWRkaW5nOiAkZ3V0dGVycyogMiAxMnB4O1xuXG4gICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGdyZXktd2hpdGU7XG4gICAgfVxuICB9XG5cbiAgLl9hcnRpc3QtbmFtZSxcbiAgLl9zaG93LWNpdHksXG4gIC5fc2hvdy12ZW51ZSxcbiAgLl9zaG93LXRpbWUsXG4gIC5fc2hvdy1saW5rcyBhIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogJGd1dHRlcnM7XG4gICAgcGFkZGluZy10b3A6ICRndXR0ZXJzO1xuICB9XG5cbiAgLl9hcnRpc3QtbmFtZSB7XG4gICAgQGV4dGVuZCAlZm9udC1mdXR1cmEtbWVkaXVtO1xuICAgIEBpbmNsdWRlIGZ1bGw7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgfVxuXG4gIC5fc2hvdy1jaXR5LFxuICAuX3Nob3ctdmVudWUsXG4gIC5fc2hvdy10aW1lIHtcbiAgICBAZXh0ZW5kICVmb250LWZ1dHVyYS1saWdodC1pdGFsaWM7XG4gIH1cblxuICAuX3Nob3ctY2l0eSxcbiAgLl9zaG93LXZlbnVlLFxuICAuX3Nob3ctdGltZSB7XG4gICAgQGluY2x1ZGUgc3Bhbig0KTtcbiAgfVxuXG4gIC5fc2hvdy10aW1lIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB9XG5cbiAgLl9zaG93LWxpbmtzIHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBmb250LXNpemU6IDEuMTVlbTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAxZW0gZ3V0dGVycygpIDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuICAgIGxpIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICB9XG5cbiAgICBsaTpmaXJzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tbGVmdDogLTEwcHg7XG4gICAgfVxuXG4gICAgbGkgKyBsaSB7XG4gICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICRsaWdodC1saWdodC1ncmV5O1xuICAgIH1cblxuICAgIGEge1xuICAgICAgbGluZS1oZWlnaHQ6IDFlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuXG4gICAgYTpob3ZlciB7XG4gICAgICBjb2xvcjogJHJlZDtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRtZWRpdW0pIHtcbiAgICAuX3RvdXItZGF0ZS1oZWFkIHtcbiAgICAgIGZvbnQtc2l6ZTogMS44NXJlbTtcbiAgICB9XG5cbiAgICAuX3RvdXItZGF5LXNob3dzIHtcbiAgICAgIGNsZWFyOiBub25lO1xuICAgIH1cblxuICAgIC5fc2hvdyB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgIC8vIFNob3cgZ3JpZFxuICAgIFxuICAgIC5fYXJ0aXN0LW5hbWUge1xuICAgICAgQGluY2x1ZGUgc3BhbigzKTtcbiAgICAgIGZvbnQtc2l6ZTogMS4xNXJlbTtcbiAgICB9XG5cbiAgICAuX3Nob3ctY2l0eSxcbiAgICAuX3Nob3ctdmVudWUge1xuICAgICAgQGluY2x1ZGUgc3BhbigyKTtcbiAgICB9XG5cbiAgICAuX3Nob3ctdGltZSB7XG4gICAgICBAaW5jbHVkZSBzcGFuKDIpO1xuICAgIH1cblxuICAgIC5fc2hvdy1saW5rcyB7XG4gICAgICBjbGVhcjogbm9uZTtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB9XG5cbiAgICAuX3Nob3ctcnN2cCB7XG4gICAgICBAaW5jbHVkZSBzcGFuKDEpO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgIC5fc2hvdy10aWNrZXRzIHtcbiAgICAgIEBpbmNsdWRlIHNwYW4oMik7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB9XG4gIH1cbn1cblxuLy8gTG9jYXRpb24gZmlsdGVyXG5cbi50b3Vycy1sb2NhdGlvbi1maWx0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBtYXJnaW4tYm90dG9tOiAkc3RhbmRhcmQtc3BhY2U7XG4gIHBhZGRpbmc6ICRndXR0ZXJzICogMjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gIC5faGVhZCB7XG4gICAgQGV4dGVuZCAlZm9udC1mdXR1cmEtbWVkaXVtO1xuICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDAuNmVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIH1cblxuICAuX2lucHV0IHtcbiAgICBAZXh0ZW5kICVmb250LWZ1dHVyYS1ib29rO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRsaWdodC1saWdodC1ncmV5O1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgY29sb3I6ICRtZWRpdW0tZ3JleTtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgbGluZS1oZWlnaHQ6IDFlbTtcbiAgICBwYWRkaW5nOiAwLjc1ZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICB9XG5cbiAgLi1lcnJvciB7XG4gICAgY29sb3I6ICRyZWQ7XG4gICAgcGFkZGluZy10b3A6ICRzdGFuZGFyZC1zcGFjZS8yO1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbGFyZ2UpIHtcbiAgICBwYWRkaW5nOiAkZ3V0dGVycyAqIDQ7XG5cbiAgICAuY29sdW1uLTEgJiB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxufVxuXG4vLyBBcnRpc3RzIGZpbHRlclxuXG4uYm94Li1hcnRpc3RzLWZpbHRlciB7XG4gIC5fZGV0YWlscyB7XG4gICAgQGV4dGVuZCAlZm9udC10dW5nc3Rlbi1tZWRpdW07XG4gICAgZm9udC1zaXplOiAxLjg1cmVtO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cbiAgICBsaSB7XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGxpZ2h0LWxpZ2h0LWdyZXk7XG5cbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItdG9wOiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgIGEge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwYWRkaW5nOiAwLjdlbTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG5cbiAgICAuLXNlbGVjdGVkIGEsXG4gICAgJiBhOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAkcmVkO1xuICAgIH1cbiAgfVxuXG4gIC8vIEJyaW5nIHRoZSBjbG9zZS9kZWxldGUgaWNvbiBkb3duIGluIHNpemUgYSBiaXRcblxuICAuLWNsb3NlIHtcbiAgICAuaWNvbiB7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IDEycHg7XG4gICAgfVxuICB9XG59XG5cbi8vIEZpbHRlciBidXR0b24gZm9yIG1vYmlsZVxuXG4udG91cnMtYXJ0aXN0cy1maWx0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWVkaXVtLWdyZXk7XG4gIGNvbG9yOiAjZmZmO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAxLjNyZW07XG4gIG1hcmdpbi1ib3R0b206ICRzdGFuZGFyZC1zcGFjZTtcbiAgcGFkZGluZzogJHN0YW5kYXJkLXNwYWNlLzI7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGxhcmdlKSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuIiwiLmxheW91dC1uZXdzIHtcbiAgQGV4dGVuZCAuY29udGFpbmVyO1xuXG4gIC5qcyAmIC5ib3guLW5ld3Mge1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgJHRyYW5zLWR1cmF0aW9uKjIgJHRyYW5zLWZ1bmN0aW9uO1xuICAgIG9wYWNpdHk6IDA7XG5cbiAgICAmLi1zaG93aW5nIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWVkaXVtKSB7XG4gICAgLmJveC4tbmV3cyB7XG4gICAgICBAaW5jbHVkZSBzcGFuKDYpO1xuICAgICAgLy8gVG9uZSBkb3duIHRoZSB0b3AvYm90dG9tIG1hcmdpbnMgc2luY2UgTWFzb25yeSBhYnNvbHV0ZWx5IHBvc2l0aW9uc1xuICAgICAgLy8gdGhlIGJveGVzIGFuZCBtYWtlcyB0aGVtIGRvdWJsZSB1cFxuICAgICAgbWFyZ2luLWJvdHRvbTogJHN0YW5kYXJkLXNwYWNlO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGxhcmdlKSB7XG4gICAgLmJveC4tbmV3cyB7XG4gICAgICBAaW5jbHVkZSBzcGFuKDQpO1xuICAgIH1cbiAgfVxufVxuXG4ubGF5b3V0LW5ld3MuLXNlYXJjaCB7XG4gIC5qcyAmIC5ib3guLW5ld3Mge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuLmxheW91dC1uZXdzLWFydGljbGUge1xuICBtYXJnaW4tdG9wOiAkc3RhbmRhcmQtc3BhY2U7XG59IiwiLmxheW91dC1jb250YWN0IHtcbiAgQGV4dGVuZCAubGF5b3V0LXN0YW5kYXJkO1xuXG4gIC5jb2x1bW4tMiB7XG4gICAgY2xlYXI6IGxlZnQ7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRsYXJnZSkge1xuICAgIC5jb2x1bW4tMiB7XG4gICAgICBjbGVhcjogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuLy8gRkFRc1xuXG4ubGF5b3V0LWZhcSB7XG4gIEBleHRlbmQgLmxheW91dC1jb250YWN0O1xuXG4gIC5jb2x1bW4tMiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGxhcmdlKSB7XG4gICAgLmNvbHVtbi0yIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxuXG4gIC5jb250ZW50LWJveCAuX2NhbGxvdXQge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkbGlnaHQtbGlnaHQtZ3JleTtcbiAgICBtYXJnaW46IDAgMCAyMHB4O1xuICB9XG59XG5cbi5mYXEtbGlzdCB7XG4gIC5fc3ViaGVhZGVyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gIH1cblxuICBwIHtcbiAgICBtYXJnaW46IDAuNXJlbSAwO1xuICB9XG5cbiAgPiBsaSB7XG4gICAgcGFkZGluZzogMTZweCAwO1xuXG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICB9XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgJiArIGxpIHtcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkbGlnaHQtbGlnaHQtZ3JleTtcbiAgICB9XG4gIH1cbn1cblxuLy8gQWJvdXRcblxuLl9hYm91dC1pbWFnZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbn0iLCIubGF5b3V0LXNlYXJjaCB7XG4gIEBleHRlbmQgLmNvbnRhaW5lcjtcbn1cblxuLy8gU2VhcmNoIHJlc3VsdCBib3hlcyAtIHByZXZlbnQgdGV4dCB3cmFwXG5cbi5wYWdlLXNlYXJjaCB7XG4gIC5ib3gge1xuICAgICYuLWFydGlzdC1zZWFyY2gtcmVzdWx0LFxuICAgICYuLXJlbGVhc2UsXG4gICAgJi4tdmlkZW8ge1xuICAgICAgLl9oZWFkLFxuICAgICAgLl9zdWJoZWFkIHtcbiAgICAgICAgYSB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIubWFpbGluZy1saXN0LXdyYXBwZXIge1xuICB0cmFuc2l0aW9uOiBoZWlnaHQgJHRyYW5zLWR1cmF0aW9uKjIgJHRyYW5zLWZ1bmN0aW9uO1xuICBjbGVhcjogYm90aDtcbiAgaGVpZ2h0OiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICYuLW9wZW4ge1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxufVxuXG4ubWFpbGluZy1saXN0LWZvcm0ge1xuICBAZXh0ZW5kIC5jb250ZW50LWJveDtcbiAgYm9yZGVyOiBub25lO1xuICBjbGVhcjogYm90aDtcbiAgcGFkZGluZzogMi41cmVtIDAgMDtcblxuICAuX2hlYWRlciB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDAgZ3V0dGVycygpO1xuXG4gICAgaDMge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRsaWdodC1saWdodC1ncmV5O1xuICAgICAgcGFkZGluZy1ib3R0b206IDE1cHg7XG4gICAgfVxuXG4gICAgLl9idXR0b24ge1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgbWFyZ2luLXRvcDogMnB4O1xuICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAuaWNvbiB7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogMTJweDtcbiAgICAgICAgaGVpZ2h0OiAxMnB4O1xuICAgICAgICB3aWR0aDogMTJweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuX21lc3NhZ2Uge1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgIG1hcmdpbjogMS41cmVtIGd1dHRlcnMoKTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gICAgLi1lcnJvciAmIHtcbiAgICAgIGNvbG9yOiAkcmVkO1xuICAgIH1cbiAgfVxuXG4gIC5zdGFuZGFyZC1mb3JtIHtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgcGFkZGluZzogJHN0YW5kYXJkLXNwYWNlIGd1dHRlcnMoKTtcbiAgfVxuXG4gIC5fZm9ybS1pbnB1dCB7XG4gICAgbWFyZ2luOiAwIDAgMjBweCAwO1xuICB9XG5cbiAgLl9mb3JtLXN1Ym1pdCB7XG4gICAgaW5wdXQge1xuICAgICAgQGV4dGVuZCAlZm9udC1mdXR1cmEtbWVkaXVtO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNhbG1vbjtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICBoZWlnaHQ6IDQycHg7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLl9oZWxwIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgbWFyZ2luOiAxZW0gMDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG4gIH1cblxuICAuLXNlbmRpbmcge1xuICAgIG9wYWNpdHk6IDAuMztcbiAgfVxuXG4gIC5fcG9zdGFsLWNvZGUtaW5wdXQge1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgJHRyYW5zLWR1cmF0aW9uICR0cmFucy1mdW5jdGlvbjtcbiAgICBvcGFjaXR5OiAxO1xuXG4gICAgJi4taGlkZSB7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1lZGl1bSkge1xuICAgIC5zdGFuZGFyZC1mb3JtIHtcbiAgICAgIHBhZGRpbmc6ICRzdGFuZGFyZC1zcGFjZSAwO1xuICAgIH1cblxuICAgIC5fZmllbGQtZ3JvdXAge1xuICAgICAgQGluY2x1ZGUgc3Bhbig2KTtcbiAgICB9XG5cbiAgICAuX2Zvcm0tc3VibWl0IHtcbiAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgICAgcGFkZGluZy10b3A6IDIxcHg7XG5cbiAgICAgIGlucHV0IHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgfVxuXG4gICAgICAuX2hlbHAge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiA0MnB4O1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFFQTs7OztFQUlFO0ErSU5GOztpREFFaUQ7QUFFakQsQUFBQSxpQkFBaUIsQ0FBQztFQUNoQixRQUFRLEVBQUUsUUFBUSxHQUNuQjs7QUFFRCxBQUFBLGlCQUFpQixBQUFBLE1BQU0sQ0FBQztFQUFFLE9BQU8sRUFBRSxJQUFJLEdBQUk7O0FBRTNDLEFBQUEsa0JBQWtCLENBQUM7RUFDakIsUUFBUSxFQUFFLE1BQU07RUFDaEIsUUFBUSxFQUFFLFFBQVE7RUFDbEIsTUFBTSxFQUFFLElBQUksR0FDYjs7QUFFRCxBQUFBLGdCQUFnQixDQUFDO0VBQ2YsUUFBUSxFQUFFLFFBQVE7RUFDbEIsS0FBSyxFQUFFLElBQUk7RUFDWCxNQUFNLEVBQUUsSUFBSSxHQUNiOztBQUVELGVBQWU7QUFFZixBQUFBLGlCQUFpQixBQUFBLGFBQWEsQ0FBQztFQUM3QiwyQkFBMkIsRUFBRSxXQUFXO0VBQ2hDLG1CQUFtQixFQUFFLFdBQVc7RUFDeEMsbUJBQW1CLEVBQUUsSUFBSTtFQUN0QixnQkFBZ0IsRUFBRSxJQUFJO0VBQ3JCLGVBQWUsRUFBRSxJQUFJO0VBQ2pCLFdBQVcsRUFBRSxJQUFJLEdBQzFCOztBQUVELEFBQUEsaUJBQWlCLEFBQUEsYUFBYSxDQUFDLGtCQUFrQixDQUFDO0VBQ2hELE1BQU0sRUFBRSxJQUFJO0VBQ1osTUFBTSxFQUFFLFlBQVk7RUFDcEIsTUFBTSxFQUFFLElBQUksR0FDYjs7QUFFRCxBQUFBLGlCQUFpQixBQUFBLGFBQWEsQ0FBQyxrQkFBa0IsQUFBQSxnQkFBZ0IsQ0FBQztFQUNoRSxNQUFNLEVBQUUsZ0JBQWdCO0VBQ3hCLE1BQU0sRUFBRSxRQUFRLEdBQ2pCOztBQUVELHFDQUFxQztBQUVyQyxBQUFBLDBCQUEwQixDQUFDO0VBQ3pCLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLEdBQUcsRUFBRSxHQUFHO0VBQ1IsS0FBSyxFQUFFLElBQUk7RUFDWCxNQUFNLEVBQUUsSUFBSTtFQUNaLE1BQU0sRUFBRSxJQUFJO0VBQ1osYUFBYSxFQUFFLEdBQUc7RUFDbEIsVUFBVSxFQUFFLEtBQUs7RUFDakIsVUFBVSxFQUFFLHlCQUF1QjtFQUNuQyxNQUFNLEVBQUUsT0FBTztFQUNmLHVCQUF1QjtFQUN2QixpQkFBaUIsRUFBRSxnQkFBZ0I7RUFDL0IsYUFBYSxFQUFFLGdCQUFnQjtFQUMzQixTQUFTLEVBQUUsZ0JBQWdCLEdBQ3BDOztBQUVELEFBQUEsMEJBQTBCLEFBQUEsTUFBTSxDQUFDO0VBQUUsVUFBVSxFQUFFLEtBQUssR0FBSTs7QUFFeEQsQUFBQSwwQkFBMEIsQUFBQSxNQUFNLENBQUM7RUFDL0IsT0FBTyxFQUFFLElBQUk7RUFDYixVQUFVLEVBQUUsY0FBYyxHQUMzQjs7QUFFRCxBQUFBLDBCQUEwQixBQUFBLE9BQU8sQ0FBQztFQUNoQyxNQUFNLEVBQUUsaUJBQWlCO0VBQUUsU0FBUztFQUNwQyxPQUFPLEVBQUUsR0FBRyxHQUNiOztBQUVELEFBQUEsMEJBQTBCLEFBQUEsU0FBUyxDQUFDO0VBQUUsSUFBSSxFQUFFLElBQUksR0FBSTs7QUFDcEQsQUFBQSwwQkFBMEIsQUFBQSxLQUFLLENBQUM7RUFBRSxLQUFLLEVBQUUsSUFBSSxHQUFJOztBQUNqRCxtQkFBbUI7QUFDbkIsQUFBQSxhQUFhLENBQUMsMEJBQTBCLEFBQUEsU0FBUyxDQUFDO0VBQ2hELElBQUksRUFBRSxJQUFJO0VBQ1YsS0FBSyxFQUFFLElBQUksR0FDWjs7QUFDRCxBQUFBLGFBQWEsQ0FBQywwQkFBMEIsQUFBQSxLQUFLLENBQUM7RUFDNUMsS0FBSyxFQUFFLElBQUk7RUFDWCxJQUFJLEVBQUUsSUFBSSxHQUNYOztBQUVELEFBQUEsMEJBQTBCLEFBQUEsU0FBUyxDQUFDO0VBQ2xDLE1BQU0sRUFBRSxpQkFBaUI7RUFBRSxTQUFTO0VBQ3BDLE9BQU8sRUFBRSxHQUFHO0VBQ1osTUFBTSxFQUFFLElBQUksR0FDYjs7QUFFRCxBQUFBLDBCQUEwQixDQUFDLEdBQUcsQ0FBQztFQUM3QixRQUFRLEVBQUUsUUFBUTtFQUNsQixJQUFJLEVBQUUsR0FBRztFQUNULEdBQUcsRUFBRSxHQUFHO0VBQ1IsS0FBSyxFQUFFLEdBQUc7RUFDVixNQUFNLEVBQUUsR0FBRyxHQUNaOztBQUVELEFBQUEsMEJBQTBCLENBQUMsTUFBTSxDQUFDO0VBQ2hDLElBQUksRUFBRSxJQUFJLEdBQ1g7O0FBRUQsa0RBQWtEO0FBQ2xELEFBQUEsMEJBQTBCLEFBQUEsT0FBTyxDQUFDO0VBQ2hDLEtBQUssRUFBRSxJQUFJO0VBQ1gsU0FBUyxFQUFFLElBQUksR0FDaEI7O0FBRUQseUJBQXlCO0FBRXpCLEFBQUEsbUJBQW1CLENBQUM7RUFDbEIsUUFBUSxFQUFFLFFBQVE7RUFDbEIsS0FBSyxFQUFFLElBQUk7RUFDWCxNQUFNLEVBQUUsS0FBSztFQUNiLE9BQU8sRUFBRSxDQUFDO0VBQ1YsTUFBTSxFQUFFLENBQUM7RUFDVCxVQUFVLEVBQUUsSUFBSTtFQUNoQixVQUFVLEVBQUUsTUFBTTtFQUNsQixXQUFXLEVBQUUsQ0FBQyxHQUNmOztBQUVELEFBQUEsYUFBYSxDQUFDLG1CQUFtQixDQUFDO0VBQUUsU0FBUyxFQUFFLEdBQUcsR0FBSTs7QUFFdEQsQUFBQSxtQkFBbUIsQ0FBQyxJQUFJLENBQUM7RUFDdkIsT0FBTyxFQUFFLFlBQVk7RUFDckIsS0FBSyxFQUFFLElBQUk7RUFDWCxNQUFNLEVBQUUsSUFBSTtFQUNaLE1BQU0sRUFBRSxLQUFLO0VBQ2IsVUFBVSxFQUFFLElBQUk7RUFDaEIsYUFBYSxFQUFFLEdBQUc7RUFDbEIsTUFBTSxFQUFFLGlCQUFpQjtFQUFFLFNBQVM7RUFDcEMsT0FBTyxFQUFFLElBQUk7RUFDYixNQUFNLEVBQUUsT0FBTyxHQUNoQjs7QUFFRCxBQUFBLG1CQUFtQixDQUFDLElBQUksQUFBQSxZQUFZLENBQUM7RUFDbkMsTUFBTSxFQUFFLGtCQUFrQjtFQUFFLFNBQVM7RUFDckMsT0FBTyxFQUFFLENBQUMsR0FDWDs7QUM1SUQ7OztFQUdFO0FBRUYsQUFBQSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNO0FBQzdDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxVQUFVLEVBQUUsR0FBRztBQUMxQyxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJO0FBQzFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSTtBQUN2QyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHO0FBQ3hDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU07QUFDZixFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUU7QUFDdEIsUUFBUSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTTtBQUM3QixLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRTtBQUMvQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSztBQUN0QyxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTTtBQUMxQyxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU87QUFDekMsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDO0VBQ3ZCLE1BQU0sRUFBRSxDQUFDO0VBQ1QsT0FBTyxFQUFFLENBQUM7RUFDVixNQUFNLEVBQUUsQ0FBQztFQUNULFNBQVMsRUFBRSxJQUFJO0VBQ2YsSUFBSSxFQUFFLE9BQU87RUFDYixjQUFjLEVBQUUsUUFBUSxHQUN6Qjs7QUFDRCxpREFBaUQ7QUFDakQsQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTTtBQUMzQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE9BQU8sQ0FBQztFQUN6QyxPQUFPLEVBQUUsS0FBSyxHQUNmOztBQUNELEFBQUEsSUFBSSxDQUFDO0VBQ0gsV0FBVyxFQUFFLENBQUMsR0FDZjs7QUFDRCxBQUFBLEVBQUUsRUFBRSxFQUFFLENBQUM7RUFDTCxVQUFVLEVBQUUsSUFBSSxHQUNqQjs7QUFDRCxBQUFBLFVBQVUsRUFBRSxDQUFDLENBQUM7RUFDWixNQUFNLEVBQUUsSUFBSSxHQUNiOztBQUNELEFBQUEsVUFBVSxBQUFBLE9BQU8sRUFBRSxVQUFVLEFBQUEsTUFBTTtBQUNuQyxDQUFDLEFBQUEsT0FBTyxFQUFFLENBQUMsQUFBQSxNQUFNLENBQUM7RUFDaEIsT0FBTyxFQUFFLEVBQUU7RUFDWCxPQUFPLEVBQUUsSUFBSSxHQUNkOztBQUNELEFBQUEsS0FBSyxDQUFDO0VBQ0osZUFBZSxFQUFFLFFBQVE7RUFDekIsY0FBYyxFQUFFLENBQUMsR0FDbEI7O0FDL0NEOzs7O0VBSUU7QUFVRjs7OztFQUlFO0FBSUY7Ozs7RUFJRTtBQVlGOzs7O0VBSUU7QVFvQ0YsQVA1RUEsSU80RUksQUFrQ0QsU0FBUyxFSXZHWixPQUFPLEFBNExKLFFBQVEsQ0FVUCxNQUFNLEVDN0tWLElBQUksQ0F5RkYsU0FBUyxDQStCUCxTQUFTLEVBeEhiLElBQUksQUFzV0QsY0FBYyxDQUdiLFNBQVMsQ0FzQlAsTUFBTSxDQXdCSixhQUFhLEVBdlpyQixJQUFJLEFBbW9CRCxPQUFPLENBMkNOLFFBQVEsRVVodEJaLG9CQUFvQixDQXVEbEIsYUFBYSxFQ3ZEZixvQkFBb0IsQ0FvQ2xCLGNBQWMsQ0FjWix1QkFBdUIsRUVxRjNCLGtCQUFrQixDQTJDaEIsT0FBTyxDQU1MLFdBQVcsRUE2QmYsV0FBVyxDQVlULGdCQUFnQixFQXdMbEIsSUFBSSxBQUFBLGdCQUFnQixDQUNsQixTQUFTLEVkalpYLE9BQU8sQ0F1S0wsTUFBTSxFQzlJUixJQUFJLENBeUZGLFNBQVMsQ0EwQlAsTUFBTSxFQW5IVixJQUFJLEFBc1dELGNBQWMsQ0FHYixTQUFTLENBc0JQLE1BQU0sQ0FtQkosZUFBZSxFVXBidkIsb0JBQW9CLENBa0RsQixlQUFlLEVDbERqQixvQkFBb0IsQ0FvQ2xCLGNBQWMsQ0FTWixhQUFhLEVYWGpCLElBQUksQ0FtREYsTUFBTSxDWm5GTztFQUNiLFdBQVcsRUFBRSxpREFBaUQsR0FDL0Q7O0FPMEVELEFQeEVBLElPd0VJLEFBa0NELFNBQVMsRUl2R1osT0FBTyxBQTRMSixRQUFRLENBVVAsTUFBTSxFQzdLVixJQUFJLENBeUZGLFNBQVMsQ0ErQlAsU0FBUyxFQXhIYixJQUFJLEFBc1dELGNBQWMsQ0FHYixTQUFTLENBc0JQLE1BQU0sQ0F3QkosYUFBYSxFQXZackIsSUFBSSxBQW1vQkQsT0FBTyxDQTJDTixRQUFRLEVVaHRCWixvQkFBb0IsQ0F1RGxCLGFBQWEsRUN2RGYsb0JBQW9CLENBb0NsQixjQUFjLENBY1osdUJBQXVCLEVFcUYzQixrQkFBa0IsQ0EyQ2hCLE9BQU8sQ0FNTCxXQUFXLEVBNkJmLFdBQVcsQ0FZVCxnQkFBZ0IsRUF3TGxCLElBQUksQUFBQSxnQkFBZ0IsQ0FDbEIsU0FBUyxDekJwWlc7RUFFcEIsV0FBVyxFQUFFLEdBQUcsR0FDakI7O0FXQUQsQVhFQSxPV0ZPLENBdUtMLE1BQU0sRUM5SVIsSUFBSSxDQXlGRixTQUFTLENBMEJQLE1BQU0sRUFuSFYsSUFBSSxBQXNXRCxjQUFjLENBR2IsU0FBUyxDQXNCUCxNQUFNLENBbUJKLGVBQWUsRVVwYnZCLG9CQUFvQixDQWtEbEIsZUFBZSxFQ2xEakIsb0JBQW9CLENBb0NsQixjQUFjLENBU1osYUFBYSxDdkJsQ087RUFFdEIsV0FBVyxFQUFFLEdBQUcsR0FDakI7O0FZb0JELEFabEJBLElZa0JJLENBbURGLE1BQU0sQ1pyRVk7RUFFbEIsV0FBVyxFQUFFLEdBQUcsR0FDakI7O0F3QmZELEF4Qm1CQSxjd0JuQmMsQ0FvRFosY0FBYyxFQytFaEIsa0JBQWtCLENBMkNoQixPQUFPLENBa0JMLFlBQVksRUFpQmhCLFdBQVcsQ0F5RFQsV0FBVztBQXpEYixXQUFXLENBMERULFlBQVk7QUExRGQsV0FBVyxDQTJEVCxXQUFXLEVuQmhSYixjQUFjLENBbUVaLEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBSyxRQUFRLEFBQWIsR01qQ1IsSUFBSSxBQXNXRCxjQUFjLENBR2IsU0FBUyxDQXNCUCxNQUFNLENBNkJKLGNBQWMsRVExYnRCLGFBQWEsRWhCcUViLGNBQWMsQ0FpQlosRUFBRTtBQWpCSixjQUFjLENBa0JaLENBQUMsRUl6RkgsT0FBTyxDQStLTCxXQUFXLENBSVQsQ0FBQyxFUDNLTCxJQUFJO0FBQ0osS0FBSztBQUNMLFFBQVEsRUtaUixjQUFjLENBYVosS0FBSztBQWJQLGNBQWMsQ0FjWixRQUFRLEVBZFYsY0FBYyxDQWdDWixNQUFNLEVDOFFSLE9BQU8sQ0FnQkwsT0FBTyxFQzVUVCxPQUFPLENBaUhMLGNBQWMsQ0F5QlosS0FBSyxFSTFHVCxJQUFJLENBeUZGLFNBQVMsQ0FrRFAsT0FBTyxDQUlMLE1BQU0sRUEvSVosSUFBSSxBQXdNRCxPQUFPLENBVU4sU0FBUyxDQUlQLE1BQU0sRUF0TlosSUFBSSxBQXVrQkQsZUFBZSxDQXJYZCxTQUFTLENBSVAsTUFBTSxFQXROWixJQUFJLEFBcW5CRCxjQUFjLENBbmFiLFNBQVMsQ0FJUCxNQUFNLEVBdE5aLElBQUksQUFtb0JELE9BQU8sQ0ErRE4sT0FBTyxFQWxzQlgsSUFBSSxBQTJ2QkQsY0FBYyxDQUViLFNBQVMsQ0FHUCxTQUFTLEVBaHdCZixJQUFJLEFBNHZCRCxXQUFXLENBQ1YsU0FBUyxDQUdQLFNBQVMsRWFwYmYsc0JBQXNCLENBYXBCLE9BQU8sRWJ6VlQsSUFBSSxDQXlKRixTQUFTLENBRVAsVUFBVTtBQTNKZCxJQUFJLENBMEpGLFNBQVMsQ0FDUCxVQUFVLEVYakhkLFlBQVksQ0FLVixRQUFRLEV1QjdFVixjQUFjLENBR1osRUFBRSxDdkIwRUYsUUFBUSxFNEJ0RVYsa0JBQWtCLEM1QnNFaEIsUUFBUTtBQUxWLFlBQVksQ0FNVixXQUFXO0F1QjlFYixjQUFjLENBR1osRUFBRSxDdkIyRUYsV0FBVztBNEJ2RWIsa0JBQWtCLEM1QnVFaEIsV0FBVyxFQzhHYixlQUFlLENBbUNiLHNCQUFzQixDQUtwQixRQUFRLEVFL0paLGNBQWMsQ0FZWixNQUFNO0FBWlIsY0FBYyxDQWFaLENBQUMsRUE2QkgsYUFBYSxDQU9YLE1BQU07QUFOUixXQUFXLENBTVQsTUFBTSxFQWtCUixTQUFTLEVFNUlULGNBQWMsQ0FvRFosS0FBSyxFTWxCUCxJQUFJLEFBbW9CRCxPQUFPLENBMEJOLE1BQU07QUE3cEJWLElBQUksQUFtb0JELE9BQU8sQ0EyQk4sVUFBVSxFQTlwQmQsSUFBSSxBQTZ0QkQsTUFBTSxDQUNMLFNBQVMsQ0FXUCxNQUFNLEVJNXZCWixhQUFhLENBdUJYLE9BQU8sRU1zRVQsZUFBZSxDQUliLE1BQU0sRUFKUixlQUFlLENBZ0ViLE9BQU8sRUM1S1Qsb0JBQW9CLENBb0NsQixjQUFjLENBMEJaLGVBQWU7QUE5RG5CLG9CQUFvQixDQW9DbEIsY0FBYyxDQTJCWixZQUFZLEVDM0RoQixjQUFjLENBOEJaLE9BQU87QUE5QlQsY0FBYyxDQStCWixRQUFRLEVBL0JWLGNBQWMsQ0E2RFosaUJBQWlCLEVDb0puQixXQUFXLENBaURULGFBQWEsRUF3R2Ysc0JBQXNCLENBTXBCLE1BQU0sRUl6V1Isa0JBQWtCLENBK0NoQixhQUFhLENBQ1gsS0FBSyxDN0JwQ0k7RUFDWCxXQUFXLEVBQUUsa0NBQWtDLEdBQ2hEOztBd0JyQkQsQXhCdUJBLGN3QnZCYyxDQW9EWixjQUFjLEVDK0VoQixrQkFBa0IsQ0EyQ2hCLE9BQU8sQ0FrQkwsWUFBWSxFQWlCaEIsV0FBVyxDQXlEVCxXQUFXO0FBekRiLFdBQVcsQ0EwRFQsWUFBWTtBQTFEZCxXQUFXLENBMkRULFdBQVcsRW5CaFJiLGNBQWMsQ0FtRVosS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFLLFFBQVEsQUFBYixHTWpDUixJQUFJLEFBc1dELGNBQWMsQ0FHYixTQUFTLENBc0JQLE1BQU0sQ0E2QkosY0FBYyxFUTFidEIsYUFBYSxDcEJ1Qk07RUFFakIsV0FBVyxFQUFFLEdBQUcsR0FDakI7O0F3QjFCRCxBeEI0QkEsY3dCNUJjLENBb0RaLGNBQWMsRUMrRWhCLGtCQUFrQixDQTJDaEIsT0FBTyxDQWtCTCxZQUFZLEVBaUJoQixXQUFXLENBeURULFdBQVc7QUF6RGIsV0FBVyxDQTBEVCxZQUFZO0FBMURkLFdBQVcsQ0EyRFQsV0FBVyxDekJoUGE7RUFFeEIsVUFBVSxFQUFFLE1BQU0sR0FDbkI7O0FJc0NELEFKcENBLGNJb0NjLENBaUJaLEVBQUU7QUFqQkosY0FBYyxDQWtCWixDQUFDLEVJekZILE9BQU8sQ0ErS0wsV0FBVyxDQUlULENBQUMsRVAzS0wsSUFBSTtBQUNKLEtBQUs7QUFDTCxRQUFRLEVLWlIsY0FBYyxDQWFaLEtBQUs7QUFiUCxjQUFjLENBY1osUUFBUSxFQWRWLGNBQWMsQ0FnQ1osTUFBTSxFQzhRUixPQUFPLENBZ0JMLE9BQU8sRUM1VFQsT0FBTyxDQWlITCxjQUFjLENBeUJaLEtBQUssRUkxR1QsSUFBSSxDQXlGRixTQUFTLENBa0RQLE9BQU8sQ0FJTCxNQUFNLEVBL0laLElBQUksQUF3TUQsT0FBTyxDQVVOLFNBQVMsQ0FJUCxNQUFNLEVBdE5aLElBQUksQUF1a0JELGVBQWUsQ0FyWGQsU0FBUyxDQUlQLE1BQU0sRUF0TlosSUFBSSxBQXFuQkQsY0FBYyxDQW5hYixTQUFTLENBSVAsTUFBTSxFQXROWixJQUFJLEFBbW9CRCxPQUFPLENBK0ROLE9BQU8sRUFsc0JYLElBQUksQUEydkJELGNBQWMsQ0FFYixTQUFTLENBR1AsU0FBUyxFQWh3QmYsSUFBSSxBQTR2QkQsV0FBVyxDQUNWLFNBQVMsQ0FHUCxTQUFTLEVhcGJmLHNCQUFzQixDQWFwQixPQUFPLEN6QnRWUztFQUVoQixXQUFXLEVBQUUsR0FBRyxHQUNqQjs7QUlpQ0QsQUovQkEsY0krQmMsQ0FpQlosRUFBRTtBQWpCSixjQUFjLENBa0JaLENBQUMsRUl6RkgsT0FBTyxDQStLTCxXQUFXLENBSVQsQ0FBQyxDUjNJb0I7RUFFdkIsVUFBVSxFQUFFLE1BQU0sR0FDbkI7O0FZWEQsQVphQSxJWWJJLENBeUpGLFNBQVMsQ0FFUCxVQUFVO0FBM0pkLElBQUksQ0EwSkYsU0FBUyxDQUNQLFVBQVUsRVhqSGQsWUFBWSxDQUtWLFFBQVEsRXVCN0VWLGNBQWMsQ0FHWixFQUFFLEN2QjBFRixRQUFRLEU0QnRFVixrQkFBa0IsQzVCc0VoQixRQUFRO0FBTFYsWUFBWSxDQU1WLFdBQVc7QXVCOUViLGNBQWMsQ0FHWixFQUFFLEN2QjJFRixXQUFXO0E0QnZFYixrQkFBa0IsQzVCdUVoQixXQUFXLEVDOEdiLGVBQWUsQ0FtQ2Isc0JBQXNCLENBS3BCLFFBQVEsRUUvSlosY0FBYyxDQVlaLE1BQU07QUFaUixjQUFjLENBYVosQ0FBQyxFQTZCSCxhQUFhLENBT1gsTUFBTTtBQU5SLFdBQVcsQ0FNVCxNQUFNLEVBa0JSLFNBQVMsRUU1SVQsY0FBYyxDQW9EWixLQUFLLEVNbEJQLElBQUksQUFtb0JELE9BQU8sQ0EwQk4sTUFBTTtBQTdwQlYsSUFBSSxBQW1vQkQsT0FBTyxDQTJCTixVQUFVLEVBOXBCZCxJQUFJLEFBNnRCRCxNQUFNLENBQ0wsU0FBUyxDQVdQLE1BQU0sRUk1dkJaLGFBQWEsQ0F1QlgsT0FBTyxFTXNFVCxlQUFlLENBSWIsTUFBTSxFQUpSLGVBQWUsQ0FnRWIsT0FBTyxFQzVLVCxvQkFBb0IsQ0FvQ2xCLGNBQWMsQ0EwQlosZUFBZTtBQTlEbkIsb0JBQW9CLENBb0NsQixjQUFjLENBMkJaLFlBQVksRUMzRGhCLGNBQWMsQ0E4QlosT0FBTztBQTlCVCxjQUFjLENBK0JaLFFBQVEsRUEvQlYsY0FBYyxDQTZEWixpQkFBaUIsRUNvSm5CLFdBQVcsQ0FpRFQsYUFBYSxFQXdHZixzQkFBc0IsQ0FNcEIsTUFBTSxFSXpXUixrQkFBa0IsQ0ErQ2hCLGFBQWEsQ0FDWCxLQUFLLEM3QlpXO0VBRWxCLFdBQVcsRUFBRSxHQUFHLEdBQ2pCOztBWWhCRCxBWmtCQSxJWWxCSSxDQXlKRixTQUFTLENBRVAsVUFBVTtBQTNKZCxJQUFJLENBMEpGLFNBQVMsQ0FDUCxVQUFVLENaeklhO0VBRXpCLFVBQVUsRUFBRSxNQUFNLEdBQ25COztBQUVEOzs7OztFQUtFO0FDOURGLEFBQUEsQ0FBQztBQUNELENBQUMsQUFBQSxPQUFPO0FBQ1IsQ0FBQyxBQUFBLE1BQU0sQ0FBQztFQUNOLFVBQVUsRUFBRSxVQUFVLEdBQ3ZCOztBQUVELEFBQUEsSUFBSSxDQUFDO0VBQ0gsU0FBUyxFQUFFLElBQUksR0FDaEI7O0FBRUQsQUFBQSxJQUFJO0FBQ0osS0FBSztBQUNMLFFBQVEsQ0FBQztFQUVQLEtBQUssRUZ3Q1UsT0FBTztFRXZDdEIsc0JBQXNCLEVBQUUsV0FBVztFQUNuQyx1QkFBdUIsRUFBRSxTQUFTLEdBQ25DOztBSGFELEFBQUEsSUFBSSxDR1hDO0VBQ0gsVUFBVSxFQUFFLE9BQU8sR0FDcEI7O0FBRUQsQUFBQSxDQUFDLENBQUM7RUFDQSxLQUFLLEVGOEJVLE9BQU8sR0U3QnZCOztBQUlELEFBQUEsYUFBYSxFV0tiLElBQUksQUF1YUQsUUFBUSxBQUdOLGFBQWEsQ1gvYUo7RUFDWixPQUFPLEVBQUUsS0FBSyxHQUtmO0V2QjZCRyxNQUFNLEVBQUcsU0FBUyxFQUFFLEtBQUs7SXVCbkM3QixBQUFBLGFBQWEsRVdLYixJQUFJLEFBdWFELFFBQVEsQUFHTixhQUFhLENYL2FKO01BSVYsT0FBTyxFQUFFLElBQUksR0FFaEI7O0FBRUQsQUFBQSxhQUFhLENBQUM7RUFDWixPQUFPLEVBQUUsSUFBSSxHQUtkO0V2QnFCRyxNQUFNLEVBQUcsU0FBUyxFQUFFLEtBQUssT0FBTyxTQUFTLEVBQUUsS0FBSztJdUIzQnBELEFBQUEsYUFBYSxDQUFDO01BSVYsT0FBTyxFQUFFLEtBQUssR0FFakI7O0FBRUQsQUFBQSxhQUFhLENBQUM7RUFDWixPQUFPLEVBQUUsQ0FBQztFQUNWLFVBQVUsRUFBRSxPQUFPLENBQUMsS0FBaUIsQ0ZqQm5CLG9DQUF3QyxHRXNCM0Q7RUFQRCxBQUlFLGFBSlcsQUFJVixPQUFPLENBQUM7SUFDUCxPQUFPLEVBQUUsQ0FBQyxHQUNYOztBQUdILEFBQUEsdUJBQXVCLENBQUM7RUFDdEIsT0FBTyxFQUFFLENBQUM7RUFDVixVQUFVLEVBQUUsT0FBTyxDQUFDLEtBQWlCLENGMUJuQixvQ0FBd0MsR0UrQjNEO0VBUEQsQUFJRSx1QkFKcUIsQUFJcEIsT0FBTyxDQUFDO0lBQ1AsT0FBTyxFQUFFLENBQUMsR0FDWDs7QUFHSCxBQUFBLElBQUksQ0FBQztFQUNILFFBQVEsRUFBRSxRQUFRO0VBQ2xCLEdBQUcsRUFBRSxHQUFHO0VBQ1IsU0FBUyxFQUFFLGdCQUFnQjtFQUMzQixLQUFLLEVBQUUsSUFBSTtFQUNYLGVBQWUsRUFBRSxTQUFTO0VBQzFCLFVBQVUsRUFBRSxNQUFNO0VBQ2xCLFNBQVMsRUFBRSxPQUFPLEdBQ25COztBQUVEOztHQUVHO0FBQ0gsQUFBQSxZQUFZLEV1QnhFWixjQUFjLENBR1osRUFBRSxFS0lKLGtCQUFrQixDNUJpRUw7RUFDWCxnQkFBZ0IsRUFBRSxJQUFJO0VBQ3RCLGFBQWEsRUYxREUsSUFBSTtFRTJEbkIsT0FBTyxFQUFFLElBQWlCLEdBeUIzQjtFQTVCRCxBQUtFLFlBTFUsQ0FLVixRQUFRLEV1QjdFVixjQUFjLENBR1osRUFBRSxDdkIwRUYsUUFBUSxFNEJ0RVYsa0JBQWtCLEM1QnNFaEIsUUFBUTtFQUxWLFlBQVksQ0FNVixXQUFXO0V1QjlFYixjQUFjLENBR1osRUFBRSxDdkIyRUYsV0FBVztFNEJ2RWIsa0JBQWtCLEM1QnVFaEIsV0FBVyxDQUFDO0lBRVYsU0FBUyxFQUFFLE1BQU07SUFDakIsYUFBYSxFQUFFLElBQUk7SUFDbkIsY0FBYyxFQUFFLEdBQUc7SUFDbkIsY0FBYyxFQUFFLFNBQVMsR0FDMUI7O0VBWkgsQUFjRSxZQWRVLENBTVYsV0FBVztFdUI5RWIsY0FBYyxDQUdaLEVBQUUsQ3ZCMkVGLFdBQVc7RTRCdkViLGtCQUFrQixDNUJ1RWhCLFdBQVcsQ0FRQztJQUNWLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLEtBQUssRUY5Q0EsT0FBTyxHRStDYjtFQWpCSCxBQW1CRSxZQW5CVSxDQW1CVixTQUFTLEV1QjNGWCxjQUFjLENBR1osRUFBRSxDdkJ3RkYsU0FBUyxFNEJwRlgsa0JBQWtCLEM1Qm9GaEIsU0FBUyxDQUFDO0lBQ1IsU0FBUyxFQUFFLE9BQU87SUFDbEIsS0FBSyxFRjdDSyxJQUFJLEdFOENmO0VBdEJILEFBd0JFLFlBeEJVLENBd0JWLENBQUMsRXVCaEdILGNBQWMsQ0FHWixFQUFFLEN2QjZGRixDQUFDLEU0QnpGSCxrQkFBa0IsQzVCeUZoQixDQUFDLENBQUM7SUFDQSxlQUFlLEVBQUUsSUFBSTtJQUNyQixLQUFLLEVGbERLLElBQUksR0VtRGY7O0FDNUZIOzs7O0VBSUU7QUFFRixBQUFBLGNBQWMsQ0FBQztFckRFWCxLQUFRLEV3QlpjLElBQUk7RXhCWTFCLEtBQVEsRW9CeUhzRCxJQUFJO0VwQnpIbEUsS0FBUSxFSUFnRCxJQUFJO0VKQTVELFlBQVEsRXFCcUZFLFFBQVk7RXJCckZ0QixhQUFRLEVxQnFGRSxRQUFZLEdnQ3JGekI7O0FBRUQ7Ozs7RUFJRTtBQUVGOzs7R0FHRztBQUNILEFBQUEsVUFBVSxFQXFCVixnQkFBZ0IsRWtCcERoQixlQUFlLEVPQWYsZUFBZSxFQWlCZixXQUFXLEV6QnFFWCxhQUFhLEVBK0RiLGdCQUFnQixFRVRoQixTQUFTLEVHeEhULE9BQU8sQ0FxQkwsZ0JBQWdCLEVDdkNsQixPQUFPLENBNEJMLGdCQUFnQixFQ3RCbEIsT0FBTyxDQUdMLGdCQUFnQixFRUZsQixPQUFPLENBNkhMLGdCQUFnQixFYXRJbEIscUJBQXFCLEVFQXJCLFlBQVksRUVBWixjQUFjLEMxQitCSDtFckRaUCxTQUFRLEVtQnVDRyxJQUFJO0VuQnZDZixXQUFRLEVtQnFEd0IsSUFBSTtFbkJyRHBDLFlBQVEsRW1CcUR1RCxJQUFJO0VrQ3ZDckUsU0FBUyxFSDNCSCxLQUFLLEdHb0NaO0VBWEQsQXBEcEJJLFVvRG9CTSxBcERwQkwsTUFBTSxFb0R5Q1gsZ0JBQWdCLEFwRHpDWCxNQUFNLEVzRVhYLGVBQWUsQXRFV1YsTUFBTSxFNkVYWCxlQUFlLEE3RVdWLE1BQU0sRTZFTVgsV0FBVyxBN0VOTixNQUFNLEVvRDJFWCxhQUFhLEFwRDNFUixNQUFNLEVvRDBJWCxnQkFBZ0IsQXBEMUlYLE1BQU0sRXNEaUlYLFNBQVMsQXREaklKLE1BQU0sRXlEU1gsT0FBTyxDQXFCTCxnQkFBZ0IsQXpEOUJiLE1BQU0sRTBEVFgsT0FBTyxDQTRCTCxnQkFBZ0IsQTFEbkJiLE1BQU0sRTJESFgsT0FBTyxDQUdMLGdCQUFnQixBM0RBYixNQUFNLEU2REZYLE9BQU8sQ0E2SEwsZ0JBQWdCLEE3RDNIYixNQUFNLEUwRVhYLHFCQUFxQixBMUVXaEIsTUFBTSxFNEVYWCxZQUFZLEE1RVdQLE1BQU0sRThFWFgsY0FBYyxBOUVXVCxNQUFNLENBQUM7SUFDTixPQUFPLEVBQUUsR0FBRztJQUNaLE9BQU8sRUFBRSxLQUFLO0lBQ2QsS0FBSyxFQUFFLElBQUksR0FDWjtFNEJpREQsTUFBTSxFQUFHLFNBQVMsRUFBRSxLQUFLO0l3QmpDN0IsQUFBQSxVQUFVLEVBcUJWLGdCQUFnQixFa0JwRGhCLGVBQWUsRU9BZixlQUFlLEVBaUJmLFdBQVcsRXpCcUVYLGFBQWEsRUErRGIsZ0JBQWdCLEVFVGhCLFNBQVMsRUd4SFQsT0FBTyxDQXFCTCxnQkFBZ0IsRUN2Q2xCLE9BQU8sQ0E0QkwsZ0JBQWdCLEVDdEJsQixPQUFPLENBR0wsZ0JBQWdCLEVFRmxCLE9BQU8sQ0E2SEwsZ0JBQWdCLEVhdElsQixxQkFBcUIsRUVBckIsWUFBWSxFRUFaLGNBQWMsQzFCK0JIO01yRFpQLFNBQVEsRWtEWEosS0FBSztNbERXVCxXQUFRLEVtQnFEd0IsSUFBSTtNbkJyRHBDLFlBQVEsRW1CcUR1RCxJQUFJLEdrQzlCdEU7TUFYRCxBcERwQkksVW9Eb0JNLEFwRHBCTCxNQUFNLEVvRHlDWCxnQkFBZ0IsQXBEekNYLE1BQU0sRXNFWFgsZUFBZSxBdEVXVixNQUFNLEU2RVhYLGVBQWUsQTdFV1YsTUFBTSxFNkVNWCxXQUFXLEE3RU5OLE1BQU0sRW9EMkVYLGFBQWEsQXBEM0VSLE1BQU0sRW9EMElYLGdCQUFnQixBcEQxSVgsTUFBTSxFc0RpSVgsU0FBUyxBdERqSUosTUFBTSxFeURTWCxPQUFPLENBcUJMLGdCQUFnQixBekQ5QmIsTUFBTSxFMERUWCxPQUFPLENBNEJMLGdCQUFnQixBMURuQmIsTUFBTSxFMkRIWCxPQUFPLENBR0wsZ0JBQWdCLEEzREFiLE1BQU0sRTZERlgsT0FBTyxDQTZITCxnQkFBZ0IsQTdEM0hiLE1BQU0sRTBFWFgscUJBQXFCLEExRVdoQixNQUFNLEU0RVhYLFlBQVksQTVFV1AsTUFBTSxFOEVYWCxjQUFjLEE5RVdULE1BQU0sQ0FBQztRQUNOLE9BQU8sRUFBRSxHQUFHO1FBQ1osT0FBTyxFQUFFLEtBQUs7UUFDZCxLQUFLLEVBQUUsSUFBSSxHQUNaO0U0QmlERCxNQUFNLEVBQUcsU0FBUyxFQUFFLEtBQUs7SXdCakM3QixBQUFBLFVBQVUsRUFxQlYsZ0JBQWdCLEVrQnBEaEIsZUFBZSxFT0FmLGVBQWUsRUFpQmYsV0FBVyxFekJxRVgsYUFBYSxFQStEYixnQkFBZ0IsRUVUaEIsU0FBUyxFR3hIVCxPQUFPLENBcUJMLGdCQUFnQixFQ3ZDbEIsT0FBTyxDQTRCTCxnQkFBZ0IsRUN0QmxCLE9BQU8sQ0FHTCxnQkFBZ0IsRUVGbEIsT0FBTyxDQTZITCxnQkFBZ0IsRWF0SWxCLHFCQUFxQixFRUFyQixZQUFZLEVFQVosY0FBYyxDMUIrQkg7TXJEWlAsS0FBUSxFa0RYSixLQUFLO01sRFdULFdBQVEsRW1CcUR3QixJQUFJO01uQnJEcEMsWUFBUSxFbUJxRHVELElBQUksR2tDOUJ0RTtNQVhELEFwRHBCSSxVb0RvQk0sQXBEcEJMLE1BQU0sRW9EeUNYLGdCQUFnQixBcER6Q1gsTUFBTSxFc0VYWCxlQUFlLEF0RVdWLE1BQU0sRTZFWFgsZUFBZSxBN0VXVixNQUFNLEU2RU1YLFdBQVcsQTdFTk4sTUFBTSxFb0QyRVgsYUFBYSxBcEQzRVIsTUFBTSxFb0QwSVgsZ0JBQWdCLEFwRDFJWCxNQUFNLEVzRGlJWCxTQUFTLEF0RGpJSixNQUFNLEV5RFNYLE9BQU8sQ0FxQkwsZ0JBQWdCLEF6RDlCYixNQUFNLEUwRFRYLE9BQU8sQ0E0QkwsZ0JBQWdCLEExRG5CYixNQUFNLEUyREhYLE9BQU8sQ0FHTCxnQkFBZ0IsQTNEQWIsTUFBTSxFNkRGWCxPQUFPLENBNkhMLGdCQUFnQixBN0QzSGIsTUFBTSxFMEVYWCxxQkFBcUIsQTFFV2hCLE1BQU0sRTRFWFgsWUFBWSxBNUVXUCxNQUFNLEU4RVhYLGNBQWMsQTlFV1QsTUFBTSxDQUFDO1FBQ04sT0FBTyxFQUFFLEdBQUc7UUFDWixPQUFPLEVBQUUsS0FBSztRQUNkLEtBQUssRUFBRSxJQUFJLEdBQ1o7O0FvRDZCTDs7Ozs7OztHQU9HO0FBQ0gsQUFHRSxnQkFIYyxDQUdkLFNBQVMsRWtCdkRYLGVBQWUsQ2xCdURiLFNBQVMsRXlCdkRYLGVBQWUsQ3pCdURiLFNBQVMsRXlCdENYLFdBQVcsQ3pCc0NULFNBQVM7QUFIWCxnQkFBZ0IsQ0FJZCxTQUFTO0FrQnhEWCxlQUFlLENsQndEYixTQUFTO0F5QnhEWCxlQUFlLEN6QndEYixTQUFTO0F5QnZDWCxXQUFXLEN6QnVDVCxTQUFTLENBQUM7RXJEckNSLEtBQVEsRXdCWmMsSUFBSTtFeEJZMUIsS0FBUSxFb0J5SHNELElBQUk7RXBCekhsRSxLQUFRLEVJQWdELElBQUk7RUpBNUQsWUFBUSxFcUJxRkUsUUFBWTtFckJyRnRCLGFBQVEsRXFCcUZFLFFBQVksR2dDOUN2Qjs7O0FBTkgsQUFRRSxnQkFSYyxDQUlkLFNBQVM7QWtCeERYLGVBQWUsQ2xCd0RiLFNBQVM7QXlCeERYLGVBQWUsQ3pCd0RiLFNBQVM7QXlCdkNYLFdBQVcsQ3pCdUNULFNBQVMsQ0FJQztFQUNSLE9BQU8sRUFBRSxJQUFJLEdBQ2Q7O0F4QkVDLE1BQU0sRUFBRyxTQUFTLEVBQUUsS0FBSztFd0JaN0IsQUFhSSxnQkFiWSxDQUdkLFNBQVMsRWtCdkRYLGVBQWUsQ2xCdURiLFNBQVMsRXlCdkRYLGVBQWUsQ3pCdURiLFNBQVMsRXlCdENYLFdBQVcsQ3pCc0NULFNBQVMsQ0FVRztJckQ5Q1YsS0FBUSxFb0J3SUUsU0FBZ0M7SXBCeEkxQyxLQUFRLEVJQWdELElBQUk7SUpBNUQsWUFBUSxFcUJxRkUsUUFBWTtJckJyRnRCLGFBQVEsRXFCcUZFLFFBQVksR2dDckNyQjs7RUFmTCxBQVFFLGdCQVJjLENBSWQsU0FBUztFa0J4RFgsZUFBZSxDbEJ3RGIsU0FBUztFeUJ4RFgsZUFBZSxDekJ3RGIsU0FBUztFeUJ2Q1gsV0FBVyxDekJ1Q1QsU0FBUyxDQWFHO0lyRGxEVixLQUFRLEVvQndJRSxTQUFnQztJcEJ4STFDLEtBQVEsRUlBZ0QsSUFBSTtJSkE1RCxZQUFRLEVxQnFGRSxRQUFZO0lyQnJGdEIsYUFBUSxFcUJxRkUsUUFBWTtJZ0NqQ3BCLEtBQUssRUFBRSxJQUFJO0lBQ1gsT0FBTyxFQUFFLEtBQUssR0FDZjs7QUFJTDs7Ozs7Ozs7R0FRRztBQUNILEFBQUEsYUFBYSxDQUFDO0VBRVosYUFBYSxFSHBFRSxJQUFJO0VHcUVuQixVQUFVLEVIckVLLElBQUk7RUdzRW5CLFlBQVksRUFBRSxJQUFJO0VBQ2xCLGFBQWEsRUFBRSxJQUFJLEdBNENwQjtFQWpERCxBQU9FLGFBUFcsQ0FPWCxTQUFTO0VBUFgsYUFBYSxDQVFYLFNBQVM7RUFSWCxhQUFhLENBU1gsU0FBUyxDQUFDO0lyRDVFUixLQUFRLEV3QlpjLElBQUk7SXhCWTFCLEtBQVEsRW9CeUhzRCxJQUFJO0lwQnpIbEUsS0FBUSxFSUFnRCxJQUFJO0lKQTVELFlBQVEsRXFCcUZFLFFBQVk7SXJCckZ0QixhQUFRLEVxQnFGRSxRQUFZO0lnQ1B0QixLQUFLLEVBQUUsSUFBSTtJQUNYLE1BQU0sRWhDTUksUUFBWSxDZ0NOTCxDQUFDLEdBQ25CO0V4Qm5DQyxNQUFNLEVBQUcsU0FBUyxFQUFFLEtBQUs7SXdCc0I3QixBQUFBLGFBQWEsQ0FBQztNQWtCVixZQUFZLEVBQUUsQ0FBQztNQUNmLGFBQWEsRUFBRSxDQUFDLEdBOEJuQjtNQWpERCxBQU9FLGFBUFcsQ0FPWCxTQUFTO01BUFgsYUFBYSxDQVFYLFNBQVM7TUFSWCxhQUFhLENBU1gsU0FBUyxDQWNHO1FBQ1IsS0FBSyxFQUFFLElBQUk7UUFDWCxNQUFNLEVBQUUsQ0FBQyxHQUNWO0V4QmhERCxNQUFNLEVBQUcsU0FBUyxFQUFFLEtBQUssT0FBTyxTQUFTLEVBQUUsS0FBSztJd0JzQnBELEFBOEJJLGFBOUJTLENBOEJULFNBQVM7SUE5QmIsYUFBYSxDQStCVCxTQUFTLENBQUM7TXJEbEdWLEtBQVEsRW9Cd0lFLEdBQWdDO01wQnhJMUMsS0FBUSxFSUFnRCxJQUFJO01KQTVELFlBQVEsRXFCcUZFLFFBQVk7TXJCckZ0QixhQUFRLEVxQnFGRSxRQUFZLEdnQ2VyQjtJQWpDTCxBQW1DSSxhQW5DUyxDQW1DVCxTQUFTLENBQUM7TUFDUixPQUFPLEVBQUUsSUFBSSxHQUNkO0V4QjNERCxNQUFNLEVBQUcsU0FBUyxFQUFFLEtBQUs7SXdCc0I3QixBQU9FLGFBUFcsQ0FPWCxTQUFTO0lBUFgsYUFBYSxDQVFYLFNBQVM7SUFSWCxhQUFhLENBU1gsU0FBUyxDQW9DRztNckRoSFYsS0FBUSxFb0J3SUUsU0FBZ0M7TXBCeEkxQyxLQUFRLEVJQWdELElBQUk7TUpBNUQsWUFBUSxFcUJxRkUsUUFBWTtNckJyRnRCLGFBQVEsRXFCcUZFLFFBQVksR2dDNkJyQjs7QUFJTDs7Ozs7Ozs7Ozs7R0FXRztBQUNILEFBSUUsZ0JBSmMsQ0FJZCxJQUFJLENBQUM7RXJEdElILEtBQVEsRW9CeUhzRCxJQUFJO0VwQnpIbEUsS0FBUSxFSUFnRCxJQUFJO0VKQTVELFlBQVEsRXFCcUZFLFFBQVk7RXJCckZ0QixhQUFRLEVxQnFGRSxRQUFZO0VnQ21EdEIsS0FBSyxFQUFFLElBQUk7RUFDWCxjQUFjLEVoQ3BESixRQUFZO0VnQ3FEdEIsV0FBVyxFaENyREQsUUFBWSxHZ0NzRHZCOztBeEI5RkMsTUFBTSxFQUFHLFNBQVMsRUFBRSxLQUFLO0V3QnFGN0IsQUFJRSxnQkFKYyxDQUlkLElBQUksQ0FRRztJckQ5SUwsS0FBUSxFb0J3SUUsR0FBZ0M7SXBCeEkxQyxLQUFRLEVJQWdELElBQUk7SUpBNUQsWUFBUSxFcUJxRkUsUUFBWTtJckJyRnRCLGFBQVEsRXFCcUZFLFFBQVksR2dDbUVyQjtJQXRCTCxBQWVNLGdCQWZVLENBWVosSUFBSSxBQUdELFVBQVcsQ0FBQSxJQUFJLEVBQUU7TUFDaEIsS0FBSyxFQUFFLElBQUksR0FDWjtJQWpCUCxBQW1CTSxnQkFuQlUsQ0FZWixJQUFJLEFBT0QsVUFBVyxDQUFBLElBQUksRUFBRTtNQUNoQixLQUFLLEVBQUUsSUFBSSxHQUNaOztBeEIxR0gsTUFBTSxFQUFHLFNBQVMsRUFBRSxLQUFLO0V3QnFGN0IsQUFJRSxnQkFKYyxDQUlkLElBQUksQ0FzQkc7SXJENUpMLEtBQVEsRW9Cd0lFLFNBQWdDO0lwQnhJMUMsS0FBUSxFSUFnRCxJQUFJO0lKQTVELFlBQVEsRXFCcUZFLFFBQVk7SXJCckZ0QixhQUFRLEVxQnFGRSxRQUFZLEdnQ2lGckI7SUFwQ0wsQUFlTSxnQkFmVSxDQVlaLElBQUksQUFHRCxVQUFXLENBQUEsSUFBSSxFQWNFO01BQ2hCLEtBQUssRUFBRSxJQUFJLEdBQ1o7SUEvQlAsQUFtQk0sZ0JBbkJVLENBWVosSUFBSSxBQU9ELFVBQVcsQ0FBQSxJQUFJLEVBY0U7TUFDaEIsS0FBSyxFQUFFLElBQUksR0FDWjs7QUFLUDs7R0FFRztBQUNILEFBQUEsZUFBZSxDQUFDO0VBRWQsTUFBTSxFSDlLUyxJQUFJLENHOEtLLENBQUMsQ0FBQyxDQUFDO0VBQzNCLE9BQU8sRUFBRSxNQUFNO0VBQ2YsUUFBUSxFQUFFLFFBQVEsR0EwR25CO0VBOUdELEFsRjdLRSxla0Y2S2EsQWxGN0taLE9BQU8sQ0FBQztJQUNQLEtBQUssRUFBRSxJQUFJO0lBQ1gsT0FBTyxFQUFFLEVBQUU7SUFDWCxPQUFPLEVBQUUsS0FBSyxHQUNmO0VrRnlLSCxBQU1FLGVBTmEsQUFNWixTQUFTLENBQUM7SUFDVCxPQUFPLEVBQUUsS0FBSyxHQUNmO0VBUkgsQUFVRSxlQVZhLENBVWIsZ0JBQWdCLENBQUM7SXJEdkxmLEtBQVEsRXdCWmMsSUFBSTtJeEJZMUIsS0FBUSxFb0J5SHNELElBQUk7SXBCekhsRSxLQUFRLEVJQWdELElBQUk7SUpBNUQsWUFBUSxFcUJxRkUsUUFBWTtJckJyRnRCLGFBQVEsRXFCcUZFLFFBQVk7SWdDcUd0QixLQUFLLEVBQUUsSUFBSSxHQUNaO0lBZEgsQWxGN0tFLGVrRjZLYSxDQVViLGdCQUFnQixBbEZ2TGYsT0FBTyxDQUFDO01BQ1AsS0FBSyxFQUFFLElBQUk7TUFDWCxPQUFPLEVBQUUsRUFBRTtNQUNYLE9BQU8sRUFBRSxLQUFLLEdBQ2Y7RWtGeUtILEFBZ0JFLGVBaEJhLENBZ0JiLHlCQUF5QixDQUFDO0lBRXhCLGdCQUFnQixFQUFFLElBQUk7SUFDdEIsUUFBUSxFQUFFLFFBQVEsR0FDbkI7SUFwQkgsQWxGN0tFLGVrRjZLYSxDQWdCYix5QkFBeUIsQWxGN0x4QixPQUFPLENBQUM7TUFDUCxLQUFLLEVBQUUsSUFBSTtNQUNYLE9BQU8sRUFBRSxFQUFFO01BQ1gsT0FBTyxFQUFFLEtBQUssR0FDZjtFa0Z5S0gsQUF3QkUsZUF4QmEsQ0F3QmIsV0FBVztFQXhCYixlQUFlLENBeUJiLGlCQUFpQixDQUFDO0lBQ2hCLE9BQU8sRUFBRSxJQUFtQixHQUM3QjtFQTNCSCxBQTZCRSxlQTdCYSxDQTZCYixpQkFBaUIsQ0FBQztJQUNoQixXQUFXLEVBQUUsQ0FBQyxHQUNmO0VBL0JILEFBbUNFLGVBbkNhLENBbUNiLHNCQUFzQixDQUFDO0lBRXJCLE9BQU8sRUFBRSxFQUFFO0lBQ1gsT0FBTyxFQUFFLEtBQUssR0ErQ2Y7SUFyRkgsQWxGN0tFLGVrRjZLYSxDQW1DYixzQkFBc0IsQWxGaE5yQixPQUFPLENBQUM7TUFDUCxLQUFLLEVBQUUsSUFBSTtNQUNYLE9BQU8sRUFBRSxFQUFFO01BQ1gsT0FBTyxFQUFFLEtBQUssR0FDZjtJa0Z5S0gsQUF3Q0ksZUF4Q1csQ0FtQ2Isc0JBQXNCLENBS3BCLFFBQVEsQ0FBQztNQUdQLFVBQVUsRUFBRSxnQkFBZ0IsQ0gzTUosS0FBSyxDQUZmLG9DQUF3QztNRzhNdEQsT0FBTyxFQUFFLEtBQUs7TUFDZCxnQkFBZ0IsRUgzTFQsT0FBTztNRzRMZCxLQUFLLEVBQUUsSUFBSTtNQUNYLFNBQVMsRUFBRSxPQUFPO01BQ2xCLFFBQVEsRUFBRSxRQUFRO01BQ2xCLFVBQVUsRUFBRSxNQUFNO01BQ2xCLGNBQWMsRUFBRSxTQUFTO01BQ3pCLGVBQWUsRUFBRSxJQUFJO01BQ3JCLE9BQU8sRUFBRSxTQUFTO01BQ2xCLEtBQUssRUFBRSxLQUFLO01BQ1osS0FBSyxFQUFFLElBQUksR0F3Qlo7TUE5RUwsQWxGN0tFLGVrRjZLYSxDQW1DYixzQkFBc0IsQ0FLcEIsUUFBUSxBbEZyTlQsT0FBTyxDQUFDO1FBQ1AsS0FBSyxFQUFFLElBQUk7UUFDWCxPQUFPLEVBQUUsRUFBRTtRQUNYLE9BQU8sRUFBRSxLQUFLLEdBQ2Y7TWtGeUtILEFBd0RNLGVBeERTLENBbUNiLHNCQUFzQixDQUtwQixRQUFRLENBZ0JOLEtBQUssRUF4RFgsZUFBZSxDQW1DYixzQkFBc0IsQ0FLcEIsUUFBUSxDSzVFWixjQUFjLENBVVosVUFBVSxFQVZaLGNBQWMsQ0xvQ2QsZUFBZSxDQW1DYixzQkFBc0IsQ0FLcEIsUUFBUSxDS2xFVixVQUFVLENMa0ZBO1FBQ0osZUFBZSxFQUFFLElBQUksR0FLdEI7UUE5RFAsQUEyRFEsZUEzRE8sQ0FtQ2Isc0JBQXNCLENBS3BCLFFBQVEsQ0FnQk4sS0FBSyxBQUdGLFVBQVUsRUEzRG5CLGVBQWUsQ0FtQ2Isc0JBQXNCLENBS3BCLFFBQVEsQ0s1RVosY0FBYyxDTCtGTCxVQUFVLEFLckZqQixVQUFVLEVBVlosY0FBYyxDTG9DZCxlQUFlLENBbUNiLHNCQUFzQixDQUtwQixRQUFRLENBbUJILFVBQVUsQUtyRmpCLFVBQVUsQ0xxRlE7VUFDVixlQUFlLEVBQUUsSUFBSSxHQUN0QjtNQTdEVCxBQWdFTSxlQWhFUyxDQW1DYixzQkFBc0IsQ0FLcEIsUUFBUSxBQXdCTCxPQUFPLENBQUM7UUFDUCxnQkFBZ0IsRUg3TVYsSUFBSSxHRzhNWDtNQWxFUCxBQW9FTSxlQXBFUyxDQW1DYixzQkFBc0IsQ0FLcEIsUUFBUSxDQTRCTixJQUFJLENBQUM7UUFDSCxRQUFRLEVBQUUsUUFBUTtRQUNsQixHQUFHLEVBQUUsR0FBRztRQUNSLFNBQVMsRUFBRSxnQkFBZ0I7UUFDM0IsS0FBSyxFQUFFLElBQUksR0FDWjtNQXpFUCxBQTJFTSxlQTNFUyxDQW1DYixzQkFBc0IsQ0FLcEIsUUFBUSxBQW1DTCxNQUFNLENBQUM7UUFDTixnQkFBZ0IsRUgvTmxCLE9BQU8sR0dnT047SUE3RVAsQUFpRk0sZUFqRlMsQ0FtQ2Isc0JBQXNCLEFBNkNuQixRQUFRLENBQ1AsUUFBUSxDQUFDO01BQ1AsS0FBSyxFQUFFLEdBQUcsR0FDWDtFeEJuTkgsTUFBTSxFQUFHLFNBQVMsRUFBRSxLQUFLO0l3QmdJN0IsQUFBQSxlQUFlLENBQUM7TUF3RlosT0FBTyxFQUFFLENBQUMsR0FzQmI7TUE5R0QsQUFtQ0UsZUFuQ2EsQ0FtQ2Isc0JBQXNCLENBdURHO1FBQ3JCLFFBQVEsRUFBRSxRQUFRO1FBQ2xCLEdBQUcsRUFBRSxNQUFNO1FBQ1gsS0FBSyxFaENyTEcsUUFBWSxHZ0M4THJCO1FBdEdMLEFBK0ZNLGVBL0ZTLENBMEZYLHNCQUFzQixDQUtwQixRQUFRO1FBL0ZkLGVBQWUsQ0EwRlgsc0JBQXNCLEFBTW5CLFFBQVEsQ0FBQyxRQUFRLENBQUM7VUFDakIsS0FBSyxFQUFFLEtBQUs7VUFDWixLQUFLLEVBQUUsSUFBSTtVQUNYLE9BQU8sRUFBRSxRQUFRO1VBQ2pCLFdBQVcsRUFBRSxHQUFHLEdBQ2pCO0V4QnJPSCxNQUFNLEVBQUcsU0FBUyxFQUFFLEtBQUs7SXdCZ0k3QixBQW1DRSxlQW5DYSxDQW1DYixzQkFBc0IsQ0F1RUc7TUFDckIsS0FBSyxFQUFFLENBQUMsR0FDVDs7QUFJTDs7Ozs7OztHQU9HO0FBQ0gsQUFBQSx3QkFBd0IsQ0FBQztFQUV2QixnQkFBZ0IsRUFBRSxJQUFJO0VBQ3RCLGNBQWMsRWhDbk5GLFFBQVk7RWdDb054QixXQUFXLEVoQ3BOQyxRQUFZLEdnQ29QekI7RUFwQ0QsQWxGclNFLHdCa0ZxU3NCLEFsRnJTckIsT0FBTyxDQUFDO0lBQ1AsS0FBSyxFQUFFLElBQUk7SUFDWCxPQUFPLEVBQUUsRUFBRTtJQUNYLE9BQU8sRUFBRSxLQUFLLEdBQ2Y7RWtGaVNILEFBTUUsd0JBTnNCLENBTXRCLFNBQVM7RUFOWCx3QkFBd0IsQ0FPdEIsU0FBUyxDQUFDO0lyRDVTUixLQUFRLEV3QlpjLElBQUk7SXhCWTFCLEtBQVEsRW9CeUhzRCxJQUFJO0lwQnpIbEUsS0FBUSxFSUFnRCxJQUFJO0lKQTVELFlBQVEsRXFCcUZFLFFBQVk7SXJCckZ0QixhQUFRLEVxQnFGRSxRQUFZLEdnQ3lOdkI7RUFUSCxBQVlJLHdCQVpvQixDQVd0QixPQUFPLENBQ0wsR0FBRyxDQUFDO0lBQ0YsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSSxHQUNaO0V4QnZRRCxNQUFNLEVBQUcsU0FBUyxFQUFFLEtBQUs7SXdCd1A3QixBQU1FLHdCQU5zQixDQU10QixTQUFTO0lBTlgsd0JBQXdCLENBT3RCLFNBQVMsQ0FhRztNckR6VFYsS0FBUSxFd0JKYyxJQUFJLEc2QitUekI7SUF0QkwsQUF3Qkksd0JBeEJvQixDQXdCcEIsU0FBUyxDQUFDO01yRDdUVixLQUFRLEVvQndJRSxTQUFnQztNcEJ4STFDLEtBQVEsRUlBZ0QsSUFBSTtNSkE1RCxZQUFRLEVxQnFGRSxRQUFZO01yQnJGdEIsYUFBUSxFcUJxRkUsUUFBWSxHZ0MwT3JCO0lBMUJMLEFBNEJJLHdCQTVCb0IsQ0E0QnBCLFNBQVMsQ0FBQztNckRqVVYsS0FBUSxFb0J3SUUsU0FBZ0M7TXBCeEkxQyxLQUFRLEVJQWdELElBQUk7TUpBNUQsWUFBUSxFcUJxRkUsUUFBWTtNckJyRnRCLGFBQVEsRXFCcUZFLFFBQVksR2dDOE9yQjtJQTlCTCxBQWdDSSx3QkFoQ29CLENBZ0NwQixPQUFPLENBQUM7TXJEclVSLFdBQVEsRXlCeUM4QyxTQUFlLEc0QjhScEU7O0FDMVZMOztHQUVHO0FDQUgsQUFBQSxjQUFjLENBQUM7RXZEaUJYLEtBQVEsRXdCWmMsSUFBSTtFeEJZMUIsS0FBUSxFb0J5SHNELElBQUk7RXBCekhsRSxLQUFRLEVJQWdELElBQUk7RUpBNUQsWUFBUSxFcUJxRkUsUUFBWTtFckJyRnRCLGFBQVEsRXFCcUZFLFFBQVk7RWtDcEd4QixLQUFLLEVBQUUsSUFBSTtFQUNYLE1BQU0sRUxlUyxJQUFJLENLZkssQ0FBQyxHQW1CMUI7RUF0QkQsQUFLRSxjQUxZLENBS1oscUJBQXFCLENBQUM7SUFFcEIsZ0JBQWdCLEVBQUUsSUFBSSxHQUN2QjtJQVJILEFwRmlCRSxjb0ZqQlksQ0FLWixxQkFBcUIsQXBGWXBCLE9BQU8sQ0FBQztNQUNQLEtBQUssRUFBRSxJQUFJO01BQ1gsT0FBTyxFQUFFLEVBQUU7TUFDWCxPQUFPLEVBQUUsS0FBSyxHQUNmO0VvRlhELEFBQUEsZ0JBQWdCLENBVmxCLGNBQWMsQ0FVTztJQUNqQixhQUFhLEVBQUUsR0FBc0IsR0FDdEM7RUFaSCxBQWNFLGNBZFksQ0FjWixXQUFXLENBQUM7SUFDVixLQUFLLEVBQUUsSUFBSSxHQUNaO0VBaEJILEFBa0JFLGNBbEJZLEFBa0JYLFNBQVMsQ0FBQztJQUNULFlBQVksRUFBRSxDQUFDO0lBQ2YsYUFBYSxFQUFFLENBQUMsR0FDakI7O0FBR0gsQUFBQSxXQUFXO0FBQ1gsY0FBYyxDQUFDO0VBQ2IsTUFBTSxFQUFFLENBQUM7RUFDVCxPQUFPLEVBQUUsSUFBSTtFQUNiLEtBQUssRUxlRCxPQUFPO0VLZFgsY0FBYyxFQUFFLFNBQVMsR0FDMUI7O0FBRUQsQUFBQSxXQUFXLENBQUM7RUFDVixTQUFTLEVBQUUsT0FBTztFQUNsQixLQUFLLEVMU0QsT0FBTyxHS1JaOztBQUlELEFBQUEsY0FBYyxDQUFDO0VBQ2IsU0FBUyxFQUFFLE1BQU07RUFDakIsS0FBSyxFTFdVLE9BQU8sR0tWdkI7O0FBRUQsQUFBQSxpQkFBaUIsQ0FBQztFdkQzQmQsS0FBUSxFd0JaYyxJQUFJO0V4QlkxQixLQUFRLEVvQnlIc0QsSUFBSTtFcEJ6SGxFLEtBQVEsRUlBZ0QsSUFBSTtFSkE1RCxZQUFRLEVxQnFGRSxRQUFZO0VyQnJGdEIsYUFBUSxFcUJxRkUsUUFBWTtFa0N4RHhCLEtBQUssRUFBRSxJQUFJO0VBQ1gsTUFBTSxFTDdCUyxJQUFJLENLNkJLLENBQUMsR0FvQjFCO0VBdkJELEFBS0UsaUJBTGUsQ0FLZix3QkFBd0IsQ0FBQztJQUN2QixnQkFBZ0IsRUxGUCxPQUFPLEdLY2pCO0lBbEJILEFBUUksaUJBUmEsQ0FLZix3QkFBd0IsQ0FHdEIsT0FBTyxDQUFDO01BQ04sS0FBSyxFTFZMLE9BQU8sR0tXUjtJQVZMLEFBWUksaUJBWmEsQ0FLZix3QkFBd0IsQ0FPdEIsWUFBWSxDQUFDO01BQ1gsU0FBUyxFQUFFLE9BQU87TUFDbEIsVUFBVSxFQUFFLE1BQU07TUFDbEIsY0FBYyxFQUFFLElBQUk7TUFDcEIsV0FBVyxFQUFFLElBQUksR0FDbEI7RUFHSCxBQUFBLGdCQUFnQixDQXBCbEIsaUJBQWlCLENBb0JJO0lBQ2pCLGFBQWEsRUFBRSxHQUFzQixHQUN0Qzs7QUFLSCxBQUFBLGNBQWMsQ0FBQztFQUNiLFNBQVMsRUFBRSxLQUFLO0VBQ2hCLFdBQVcsRUFBRSxLQUFLLEdBb0NuQjtFQXRDRCxBQUlFLGNBSlksQ0FJWixXQUFXLENBQUM7SUFDVixZQUFZLEVBQUUsQ0FBQyxHQUNoQjtFQU5ILEFBUUUsY0FSWSxDQVFaLENBQUMsQ0FBQztJQUNBLE1BQU0sRUFBRSxNQUFNLEdBQ2Y7RUFZRCxBQUFBLGVBQWUsQ0F0QmpCLGNBQWMsQ0FzQk0sQ0FBQyxBQUFBLE1BQU0sQ0FBQztJQUN4QixLQUFLLEVMbkRILE9BQU8sR0tvRFY7RUF4QkgsQUEwQkUsY0ExQlksQ0EwQlosTUFBTSxDQUFDO0lBQ0wsS0FBSyxFQUFFLGVBQWUsR0FDdkI7RUE1QkgsQUE4QkUsY0E5QlksQ0E4Qlosa0JBQWtCO0VBOUJwQixjQUFjLENBK0JaLGdCQUFnQixDQUFDO0lEM0ZqQixRQUFRLEVBQUUsUUFBUTtJQUNsQixXQUFXLEVBVFksQ0FBQztJQVV4QixjQUFjLEVBVFksTUFBTTtJQVVoQyxNQUFNLEVBQUUsQ0FBQztJQUNULGFBQWEsRUFWWSxJQUFJO0lBVzdCLFFBQVEsRUFBRSxNQUFNLEdDd0ZmO0lBakNILEFEckRFLGNDcURZLENBOEJaLGtCQUFrQixBRG5GakIsV0FBVztJQ3FEZCxjQUFjLENBK0JaLGdCQUFnQixBRHBGZixXQUFXLENBQUM7TUFBRSxjQUFjLEVBVlEsTUFBTSxHQVU2QjtJQ3FEMUUsQURwREUsY0NvRFksQ0E4Qlosa0JBQWtCLEFEbEZqQixNQUFNO0lDb0RULGNBQWMsQ0ErQlosZ0JBQWdCLEFEbkZmLE1BQU0sQ0FBQztNQUFFLFdBQVcsRUFBRSxDQUFDLEdBQUk7SUNvRDlCLEFEbERFLGNDa0RZLENBOEJaLGtCQUFrQixDRGhGbEIsTUFBTTtJQ2tEUixjQUFjLENBOEJaLGtCQUFrQixDRC9FbEIsTUFBTTtJQ2lEUixjQUFjLENBOEJaLGtCQUFrQixDRDlFbEIsS0FBSztJQ2dEUCxjQUFjLENBOEJaLGtCQUFrQixDRDdFbEIsS0FBSztJQytDUCxjQUFjLENBK0JaLGdCQUFnQixDRGpGaEIsTUFBTTtJQ2tEUixjQUFjLENBK0JaLGdCQUFnQixDRGhGaEIsTUFBTTtJQ2lEUixjQUFjLENBK0JaLGdCQUFnQixDRC9FaEIsS0FBSztJQ2dEUCxjQUFjLENBK0JaLGdCQUFnQixDRDlFaEIsS0FBSyxDQUFDO01BQ0osUUFBUSxFQUFFLFFBQVE7TUFDbEIsR0FBRyxFQUFFLENBQUM7TUFDTixJQUFJLEVBQUUsQ0FBQztNQUNQLEtBQUssRUFBRSxJQUFJO01BQ1gsTUFBTSxFQUFFLElBQUksR0FDYjtFekJnQ0MsTUFBTSxFQUFHLFNBQVMsRUFBRSxLQUFLO0kwQlM3QixBQUFBLGNBQWMsQ0FBQztNQW9DWCxTQUFTLEVBQUUsTUFBTSxHQUVwQjs7QUFJRCxBQUFBLGFBQWE7QUFDYixXQUFXLENBQUM7RXZEakdSLEtBQVEsRXdCWmMsSUFBSTtFeEJZMUIsS0FBUSxFb0J5SHNELElBQUk7RXBCekhsRSxLQUFRLEVJQWdELElBQUk7RUpBNUQsWUFBUSxFcUJxRkUsUUFBWTtFckJyRnRCLGFBQVEsRXFCcUZFLFFBQVk7RWtDY3hCLEtBQUssRUFBRSxJQUFJO0VBQ1gsU0FBUyxFQUFFLE1BQU07RUFDakIsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENMcEdJLElBQUksR0s2R3BCO0VBSEMsQUFBQSxjQUFjLEdBWGhCLGFBQWEsRUFXWCxjQUFjO0VBVmhCLFdBQVcsQ0FVVTtJQUNqQixVQUFVLEVMM0dHLElBQUksR0s0R2xCOztBQUdILEFBQ0UsV0FEUztBQUFYLFdBQVcsQ0FFVCxDQUFDLENBQUM7RUFDQSxLQUFLLEVMekZILE9BQU8sR0swRlY7O0FBS0gsQUFJRSxTQUpPLENBSVAsRUFBRSxDQUFDO0V2RDdIRCxLQUFRLEV3QlpjLElBQUk7RXhCWTFCLEtBQVEsRW9CeUhzRCxJQUFJO0VwQnpIbEUsS0FBUSxFSUFnRCxJQUFJO0VKQTVELFlBQVEsRXFCcUZFLFFBQVk7RXJCckZ0QixhQUFRLEVxQnFGRSxRQUFZO0VrQzBDdEIsS0FBSyxFQUFFLElBQUksR0FDWjs7QUFQSCxBQVNFLFNBVE8sQ0FTUCxFQUFFLENBQUM7RUFDRCxnQkFBZ0IsRUx6R2QsT0FBTztFSzBHVCxLQUFLLEVBQUUsSUFBSTtFQUNYLFNBQVMsRUFBRSxNQUFNO0VBQ2pCLE1BQU0sRUxySU8sSUFBSSxDS3FJTyxJQUFJO0VBQzVCLE9BQU8sRUFBRSxJQUFtQixHQUM3Qjs7QUN6SkgsQUFBQSxLQUFLLEVFMEpMLGNBQWMsQ0FVWixVQUFVLENGcEtOO0VBQ0osT0FBTyxFQUFFLFlBQVk7RUFDckIsUUFBUSxFQUFFLE1BQU07RUFDaEIsbUJBQW1CLEVBQUUsT0FBTztFQUM1QixpQkFBaUIsRUFBRSxTQUFTO0VsRmE1QixRQUFRLEVBQUUsTUFBTTtFQUNoQixXQUFXLEVBQUUsSUFBSTtFQUNqQixXQUFXLEVBQUUsTUFBTSxHa0ZxS3BCO0VBeExELEFBU0UsS0FURyxBQVNGLFNBQVMsRUVpSlosY0FBYyxDRmpKWCxTQUFTLEFFMkpWLFVBQVUsQ0YzSkM7SUFDVCxVQUFVLEVBQUUsb0NBQW9DLENBQUMsU0FBUztJQUMxRCxlQUFlLEVBQUUsU0FBUztJQUMxQixNQUFNLEVBQUUsSUFBSTtJQUNaLEtBQUssRUFBRSxJQUFJLEdBQ1o7RUFkSCxBQWlCRSxLQWpCRyxBQWlCRixNQUFNLEVFeUlULGNBQWMsQ0Z6SVgsTUFBTSxBRW1KUCxVQUFVLENGbkpGO0lBQ04sVUFBVSxFQUFFLDhDQUE4QyxDQUFDLFNBQVM7SUFDcEUsZUFBZSxFQUFFLFNBQVM7SUFDMUIsTUFBTSxFQUFFLElBQUk7SUFDWixLQUFLLEVBQUUsSUFBSSxHQUNaO0VBdEJILEFBd0JFLEtBeEJHLEFBd0JGLE1BQU0sRUVrSVQsY0FBYyxDRmxJWCxNQUFNLEFFNElQLFVBQVUsQ0Y1SUY7SUFDTixVQUFVLEVBQUUsOENBQThDLENBQUMsU0FBUztJQUNwRSxlQUFlLEVBQUUsU0FBUztJQUMxQixNQUFNLEVBQUUsSUFBSTtJQUNaLEtBQUssRUFBRSxJQUFJLEdBQ1o7RUE3QkgsQUFpQ0UsS0FqQ0csQUFpQ0YsTUFBTSxFRXlIVCxjQUFjLENGekhYLE1BQU0sQUVtSVAsVUFBVSxFRnBLWixLQUFLLEFBa0NGLE1BQU0sRUV3SFQsY0FBYyxDRnhIWCxNQUFNLEFFa0lQLFVBQVUsQ0ZsSUY7SUFDTixNQUFNLEVBQUUsSUFBSTtJQUNaLEtBQUssRUFBRSxJQUFJLEdBQ1o7RUFyQ0gsQUF1Q0UsS0F2Q0csQUFpQ0YsTUFBTSxFRXlIVCxjQUFjLENGekhYLE1BQU0sQUVtSVAsVUFBVSxDRjdIRjtJQUNOLGdCQUFnQixFQUFFLG1EQUFtRCxHQU10RTtJQUpDLEFBQUEsQ0FBQyxBQUFBLE1BQU0sQ0ExQ1gsS0FBSyxBQXVDRixNQUFNLEVBR0wsQ0FBQyxBQUFBLE1BQU0sQ0VnSFgsY0FBYyxDRnpIWCxNQUFNLEFFbUlQLFVBQVUsRUFWWixjQUFjLENGaEhWLENBQUMsQUFBQSxNQUFNLENBVFIsTUFBTSxBRW1JUCxVQUFVO0lGekhSLEdBQUcsQ0EzQ1AsS0FBSyxBQXVDRixNQUFNO0lBSUwsR0FBRyxDRStHUCxjQUFjLENGekhYLE1BQU0sQUVtSVAsVUFBVTtJQVZaLGNBQWMsQ0YvR1YsR0FBRyxDQVZKLE1BQU0sQUVtSVAsVUFBVSxDRnpIRjtNQUNKLGdCQUFnQixFQUFFLHFEQUFxRCxHQUN4RTtFQTdDTCxBQWdERSxLQWhERyxBQWtDRixNQUFNLEVFd0hULGNBQWMsQ0Z4SFgsTUFBTSxBRWtJUCxVQUFVLENGcEhGO0lBQ04sZ0JBQWdCLEVBQUUsbURBQW1ELEdBTXRFO0lBSkMsQUFBQSxDQUFDLEFBQUEsTUFBTSxDQW5EWCxLQUFLLEFBZ0RGLE1BQU0sRUFHTCxDQUFDLEFBQUEsTUFBTSxDRXVHWCxjQUFjLENGeEhYLE1BQU0sQUVrSVAsVUFBVSxFQVZaLGNBQWMsQ0Z2R1YsQ0FBQyxBQUFBLE1BQU0sQ0FqQlIsTUFBTSxBRWtJUCxVQUFVO0lGaEhSLEdBQUcsQ0FwRFAsS0FBSyxBQWdERixNQUFNO0lBSUwsR0FBRyxDRXNHUCxjQUFjLENGeEhYLE1BQU0sQUVrSVAsVUFBVTtJQVZaLGNBQWMsQ0Z0R1YsR0FBRyxDQWxCSixNQUFNLEFFa0lQLFVBQVUsQ0ZoSEY7TUFDSixnQkFBZ0IsRUFBRSxxREFBcUQsR0FDeEU7RUF0REwsQUEyREUsS0EzREcsQUEyREYsV0FBVyxFRStGZCxjQUFjLENGL0ZYLFdBQVcsQUV5R1osVUFBVSxFRnBLWixLQUFLLEFBNERGLFNBQVMsRUU4RlosY0FBYyxDRjlGWCxTQUFTLEFFd0dWLFVBQVUsQ0Z4R0M7SUFDVCxNQUFNLEVBQUUsR0FBRztJQUNYLEtBQUssRUFBRSxHQUFHLEdBQ1g7RUEvREgsQUFrRUksS0FsRUMsQUEyREYsV0FBVyxFRStGZCxjQUFjLENGL0ZYLFdBQVcsQUV5R1osVUFBVTtFRmpHUixDQUFDLEFBQUEsTUFBTSxDQW5FWCxLQUFLLEFBaUVGLFdBQVcsQUFFRCxPQUFPO0VBQWhCLENBQUMsQUFBQSxNQUFNLENFdUZYLGNBQWMsQ0Z6RlgsV0FBVyxBQUVELE9BQU8sQUVpR2xCLFVBQVU7RUFWWixjQUFjLENGdkZWLENBQUMsQUFBQSxNQUFNLENBRlIsV0FBVyxBQUVELE9BQU8sQUVpR2xCLFVBQVUsQ0ZqR1M7SUFDZixnQkFBZ0IsRUFBRSx5REFBeUQsR0FDNUU7RUFyRUwsQUF1RUksS0F2RUMsQUFpRUYsV0FBVyxBQU1ULE9BQU8sRUVtRlosY0FBYyxDRnpGWCxXQUFXLEFBRUQsT0FBTyxBRWlHbEIsVUFBVTtFRjVGUixDQUFDLEFBQUEsTUFBTSxDQXhFWCxLQUFLLEFBaUVGLFdBQVc7RUFPVixDQUFDLEFBQUEsTUFBTSxDRWtGWCxjQUFjLENGL0ZYLFdBQVcsQUV5R1osVUFBVTtFQVZaLGNBQWMsQ0ZsRlYsQ0FBQyxBQUFBLE1BQU0sQ0FiUixXQUFXLEFFeUdaLFVBQVUsQ0Y1RkU7SUFDUixnQkFBZ0IsRUFBRSx5REFBeUQsR0FDNUU7RUExRUwsQUE4RUksS0E5RUMsQUE0REYsU0FBUyxFRThGWixjQUFjLENGOUZYLFNBQVMsQUV3R1YsVUFBVTtFRnJGUixDQUFDLEFBQUEsTUFBTSxDQS9FWCxLQUFLLEFBNkVGLFNBQVMsQUFFQyxPQUFPO0VBQWhCLENBQUMsQUFBQSxNQUFNLENFMkVYLGNBQWMsQ0Y3RVgsU0FBUyxBQUVDLE9BQU8sQUVxRmxCLFVBQVU7RUFWWixjQUFjLENGM0VWLENBQUMsQUFBQSxNQUFNLENBRlIsU0FBUyxBQUVDLE9BQU8sQUVxRmxCLFVBQVUsQ0ZyRlM7SUFDZixnQkFBZ0IsRUFBRSx1REFBdUQsR0FDMUU7RUFqRkwsQUFtRkksS0FuRkMsQUE2RUYsU0FBUyxBQU1QLE9BQU8sRUV1RVosY0FBYyxDRjdFWCxTQUFTLEFBRUMsT0FBTyxBRXFGbEIsVUFBVTtFRmhGUixDQUFDLEFBQUEsTUFBTSxDQXBGWCxLQUFLLEFBNkVGLFNBQVM7RUFPUixDQUFDLEFBQUEsTUFBTSxDRXNFWCxjQUFjLENGOUZYLFNBQVMsQUV3R1YsVUFBVTtFQVZaLGNBQWMsQ0Z0RVYsQ0FBQyxBQUFBLE1BQU0sQ0F4QlIsU0FBUyxBRXdHVixVQUFVLENGaEZFO0lBQ1IsZ0JBQWdCLEVBQUUsdURBQXVELEdBQzFFO0VBdEZMLEFBMkZFLEtBM0ZHLEFBMkZGLFlBQVksRUUrRGYsY0FBYyxDRi9EWCxZQUFZLEFFeUViLFVBQVUsQ0Z6RUk7SUFDWixnQkFBZ0IsRUFBRSxvREFBb0Q7SUFDdEUsTUFBTSxFQUFFLElBQUk7SUFDWixLQUFLLEVBQUUsR0FBRyxHQVVYO0lBUkMsQUFBQSxDQUFDLEFBQUEsTUFBTSxDQWhHWCxLQUFLLEFBMkZGLFlBQVksRUFLWCxDQUFDLEFBQUEsTUFBTSxDRTBEWCxjQUFjLENGL0RYLFlBQVksQUV5RWIsVUFBVSxFQVZaLGNBQWMsQ0YxRFYsQ0FBQyxBQUFBLE1BQU0sQ0FMUixZQUFZLEFFeUViLFVBQVUsQ0ZwRUU7TUFDUixnQkFBZ0IsRUFBRSx3REFBd0QsR0FDM0U7SUFsR0wsQUFvR0ksS0FwR0MsQUEyRkYsWUFBWSxBQVNWLE9BQU8sRUVzRFosY0FBYyxDRi9EWCxZQUFZLEFBU1YsT0FBTyxBRWdFVixVQUFVO0lGL0RSLENBQUMsQUFBQSxNQUFNLENBckdYLEtBQUssQUEyRkYsWUFBWSxBQVVGLE9BQU87SUFBaEIsQ0FBQyxBQUFBLE1BQU0sQ0VxRFgsY0FBYyxDRi9EWCxZQUFZLEFBU1YsT0FBTyxBRWdFVixVQUFVO0lBVlosY0FBYyxDRnJEVixDQUFDLEFBQUEsTUFBTSxDQVZSLFlBQVksQUFTVixPQUFPLEFFZ0VWLFVBQVUsQ0YvRFM7TUFDZixnQkFBZ0IsRUFBRSwwREFBMEQsR0FDN0U7RUF2R0wsQUE0R0UsS0E1R0csQUE0R0YsYUFBYSxFRThDaEIsY0FBYyxDRjlDWCxhQUFhLEFFd0RkLFVBQVUsQ0Z4REs7SUFDYixnQkFBZ0IsRUFBRSxxREFBcUQ7SUFDdkUsTUFBTSxFQUFFLElBQUk7SUFDWixLQUFLLEVBQUUsR0FBRyxHQVVYO0lBUkMsQUFBQSxDQUFDLEFBQUEsTUFBTSxDQWpIWCxLQUFLLEFBNEdGLGFBQWEsRUFLWixDQUFDLEFBQUEsTUFBTSxDRXlDWCxjQUFjLENGOUNYLGFBQWEsQUV3RGQsVUFBVSxFQVZaLGNBQWMsQ0Z6Q1YsQ0FBQyxBQUFBLE1BQU0sQ0FMUixhQUFhLEFFd0RkLFVBQVUsQ0ZuREU7TUFDUixnQkFBZ0IsRUFBRSx5REFBeUQsR0FDNUU7SUFuSEwsQUFxSEksS0FySEMsQUE0R0YsYUFBYSxBQVNYLE9BQU8sRUVxQ1osY0FBYyxDRjlDWCxhQUFhLEFBU1gsT0FBTyxBRStDVixVQUFVO0lGOUNSLENBQUMsQUFBQSxNQUFNLENBdEhYLEtBQUssQUE0R0YsYUFBYSxBQVVILE9BQU87SUFBaEIsQ0FBQyxBQUFBLE1BQU0sQ0VvQ1gsY0FBYyxDRjlDWCxhQUFhLEFBU1gsT0FBTyxBRStDVixVQUFVO0lBVlosY0FBYyxDRnBDVixDQUFDLEFBQUEsTUFBTSxDQVZSLGFBQWEsQUFTWCxPQUFPLEFFK0NWLFVBQVUsQ0Y5Q1M7TUFDZixnQkFBZ0IsRUFBRSwyREFBMkQsR0FDOUU7RUF4SEwsQUE2SEUsS0E3SEcsQUE2SEYsUUFBUSxFRTZCWCxjQUFjLENGN0JYLFFBQVEsQUV1Q1QsVUFBVSxDRnZDQTtJQUNSLGdCQUFnQixFQUFFLGlEQUFpRDtJQUNuRSxlQUFlLEVBQUUsU0FBUztJQUMxQixNQUFNLEVBQUUsSUFBSTtJQUNaLEtBQUssRUFBRSxJQUFJLEdBU1o7SUExSUgsQUFtSUksS0FuSUMsQUE2SEYsUUFBUSxBQU1OLEtBQUssRUV1QlYsY0FBYyxDRjdCWCxRQUFRLEFBTU4sS0FBSyxBRWlDUixVQUFVLENGakNEO01BQ0wsZ0JBQWdCLEVBQUUsK0NBQStDLEdBQ2xFO0lBcklMLEFBdUlJLEtBdklDLEFBNkhGLFFBQVEsQUFVTixNQUFNLEVFbUJYLGNBQWMsQ0Y3QlgsUUFBUSxBQVVOLE1BQU0sQUU2QlQsVUFBVSxDRjdCQTtNQUNOLGdCQUFnQixFQUFFLGdEQUFnRCxHQUNuRTtFQXpJTCxBQThJRSxLQTlJRyxBQThJRixVQUFVLEVFWWIsY0FBYyxDTCtGTCxVQUFVLEFLckZqQixVQUFVLENGdEJFO0lBQ1YsZ0JBQWdCLEVBQUUsK0RBQStEO0lBQ2pGLGVBQWUsRUFBRSxTQUFTO0lBQzFCLE1BQU0sRUFBRSxJQUFJO0lBQ1osS0FBSyxFQUFFLElBQUksR0FDWjtFQW5KSCxBQXVKRSxLQXZKRyxBQXVKRixVQUFVLEFBQUEsTUFBTSxFRUduQixjQUFjLENGSFgsVUFBVSxBQUFBLE1BQU0sQUVhakIsVUFBVSxFRnBLWixLQUFLLEFBd0pGLFNBQVMsQUFBQSxNQUFNLEVFRWxCLGNBQWMsQ0ZGWCxTQUFTLEFBQUEsTUFBTSxBRVloQixVQUFVLEVGcEtaLEtBQUssQUF5SkYsV0FBVyxBQUFBLE1BQU0sRUVDcEIsY0FBYyxDRkRYLFdBQVcsQUFBQSxNQUFNLEFFV2xCLFVBQVUsRUZwS1osS0FBSyxBQTBKRixRQUFRLEFBQUEsTUFBTSxFRUFqQixjQUFjLENGQVgsUUFBUSxBQUFBLE1BQU0sQUVVZixVQUFVLENGVk07SUFDZCxlQUFlLEVBQUUsU0FBUztJQUMxQixNQUFNLEVBQUUsSUFBSTtJQUNaLEtBQUssRUFBRSxJQUFJLEdBQ1o7RUE5SkgsQUFnS0UsS0FoS0csQUFnS0YsVUFBVSxFRU5iLGNBQWMsQ0ZNWCxVQUFVLEFFSVgsVUFBVSxDRkpFO0lBQ1YsZUFBZSxFQUFFLFNBQVMsR0FJM0I7SUFyS0gsQUFrS0ksS0FsS0MsQUF1SkYsVUFBVSxBQUFBLE1BQU0sRUVHbkIsY0FBYyxDRkhYLFVBQVUsQUFBQSxNQUFNLEFFYWpCLFVBQVUsQ0ZGQTtNQUNOLGdCQUFnQixFQUFFLHVEQUF1RCxHQUMxRTtFQXBLTCxBQXdLSSxLQXhLQyxBQXdKRixTQUFTLEFBQUEsTUFBTSxFRUVsQixjQUFjLENGRlgsU0FBUyxBQUFBLE1BQU0sQUVZaEIsVUFBVSxDRklBO0lBQ04sZ0JBQWdCLEVBQUUsc0RBQXNELEdBQ3pFO0VBMUtMLEFBOEtJLEtBOUtDLEFBeUpGLFdBQVcsQUFBQSxNQUFNLEVFQ3BCLGNBQWMsQ0ZEWCxXQUFXLEFBQUEsTUFBTSxBRVdsQixVQUFVLENGVUE7SUFDTixnQkFBZ0IsRUFBRSx3REFBd0QsR0FDM0U7RUFoTEwsQUFvTEksS0FwTEMsQUEwSkYsUUFBUSxBQUFBLE1BQU0sRUVBakIsY0FBYyxDRkFYLFFBQVEsQUFBQSxNQUFNLEFFVWYsVUFBVSxDRmdCQTtJQUNOLGdCQUFnQixFQUFFLHFEQUFxRCxHQUN4RTs7QUN4TEwsQUFBQSxjQUFjLENBQUM7RUFFYixVQUFVLEVBQUUsR0FBRyxDQUFDLEtBQUssQ1ArQ0osT0FBTztFTzlDeEIsV0FBVyxFQUFFLElBQUk7RUFDakIsS0FBSyxFQUFFLElBQUksR0ErRVo7RUFuRkQsQXRGbUJFLGNzRm5CWSxBdEZtQlgsT0FBTyxDQUFDO0lBQ1AsS0FBSyxFQUFFLElBQUk7SUFDWCxPQUFPLEVBQUUsRUFBRTtJQUNYLE9BQU8sRUFBRSxLQUFLLEdBQ2Y7RXNGdkJILEFBTUUsY0FOWSxDQU1aLEtBQUs7RUFOUCxjQUFjLENBT1osUUFBUTtFQVBWLGNBQWMsQ0FRWixLQUFLLENBQUM7SUFDSixPQUFPLEVBQUUsS0FBSztJQUNkLFNBQVMsRUFBRSxPQUFPLEdBQ25CO0VBWEgsQUFhRSxjQWJZLENBYVosS0FBSztFQWJQLGNBQWMsQ0FjWixRQUFRLENBQUM7SUFFUCxhQUFhLEVBQUUsQ0FBQztJQUNoQixPQUFPLEVBQUUsY0FBYztJQUN2QixrQkFBa0IsRUFBRSxJQUFJLEdBQ3pCO0VBbkJILEFBcUJFLGNBckJZLENBcUJaLEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBSyxNQUFNLEFBQVg7RUFyQlIsY0FBYyxDQXNCWixLQUFLLENBQUEsQUFBQSxJQUFDLENBQUssT0FBTyxBQUFaO0VBdEJSLGNBQWMsQ0F1QlosS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFLLEtBQUssQUFBVjtFQXZCUixjQUFjLENBd0JaLFFBQVEsQ0FBQztJQUNQLFVBQVUsRUFBRSxVQUFVO0lBQ3RCLGdCQUFnQixFUHVCRCxPQUFPO0lPdEJ0QixNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQ1BzQkYsT0FBTztJT3JCdEIsV0FBVyxFQUFFLEtBQUs7SUFDbEIsS0FBSyxFQUFFLElBQUksR0FDWjtFQTlCSCxBQWdDRSxjQWhDWSxDQWdDWixNQUFNLENBQUM7SUFFTCxVQUFVLEVBQUUseURBQXlELENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxTQUFTO0lBQ3ZGLGVBQWUsRUFBRSxJQUFJO0lBQ3JCLFNBQVMsRUFBRSxPQUFPO0lBQ2xCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLE9BQU8sRUFBRSxPQUFPO0lBQ2hCLEtBQUssRUFBRSxJQUFJO0lBQ1gsa0JBQWtCLEVBQUUsSUFBSSxHQUN6QjtFQXpDSCxBQTRDSSxjQTVDVSxDQTJDWixPQUFPLENBQ0wsS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFLLE1BQU0sQUFBWDtFQTVDVixjQUFjLENBMkNaLE9BQU8sQ0FFTCxLQUFLLENBQUEsQUFBQSxJQUFDLENBQUssT0FBTyxBQUFaO0VBN0NWLGNBQWMsQ0EyQ1osT0FBTyxDQUdMLEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBSyxLQUFLLEFBQVY7RUE5Q1YsY0FBYyxDQTJDWixPQUFPLENBSUwsUUFBUSxDQUFDO0lBQ1AsWUFBWSxFUEhaLE9BQU8sR09JUjtFQWpETCxBQW9ERSxjQXBEWSxDQW9EWixLQUFLLENBQUM7SUFFSixjQUFjLEVBQUUsU0FBUztJQUN6QixhQUFhLEVBQUUsR0FBRyxHQUNuQjtFQXhESCxBQTBERSxjQTFEWSxDQTBEWixZQUFZLEdBQUcsWUFBWSxDQUFDO0lBQzFCLFVBQVUsRUFBRSxJQUFJLEdBQ2pCO0VBNURILEFBOERFLGNBOURZLENBOERaLFFBQVEsQ0FBQztJQUNQLFVBQVUsRUFBRSxLQUFLO0lBQ2pCLFNBQVMsRUFBRSxJQUFJLEdBQ2hCO0VBakVILEFBbUVFLGNBbkVZLENBbUVaLEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBSyxRQUFRLEFBQWIsRUFBZTtJQUVuQixNQUFNLEVBQUUsT0FBTztJQUNmLGNBQWMsRUFBRSxTQUFTO0lBQ3pCLEtBQUssRUFBRSxJQUFJO0lBQ1gsZ0JBQWdCLEVQMUJYLE9BQU87SU8yQlosS0FBSyxFQUFFLEtBQUs7SUFDWixNQUFNLEVBQUUsQ0FBQyxHQUNWO0VBM0VILEFBNkVFLGNBN0VZLENBNkVaLGNBQWMsQ0FBQztJQUNiLEtBQUssRVBqQ0gsT0FBTztJT2tDVCxTQUFTLEVBQUUsTUFBTTtJQUNqQixhQUFhLEVBQUUsTUFBTTtJQUNyQixjQUFjLEVBQUUsU0FBUyxHQUMxQjs7QUNyRUgsQUFBQSxVQUFVLENBQUM7RUFDVCxXQUFXLEVBTFUsSUFBNEMsR0FTbEU7RTdCOENHLE1BQU0sRUFBRyxTQUFTLEVBQUUsS0FBSztJNkJuRDdCLEFBQUEsVUFBVSxDQUFDO01BR1AsV0FBVyxFQVhTLElBQTZDLEdBYXBFOztBQUVELEFBQ0UsT0FESyxDQUNMLGdCQUFnQixDQUFDO0VBQ2YsVUFBVSxFQUFFLElBQUk7RUFDaEIsYUFBYSxFQXZCQyxHQUFHLENBdUJlLEtBQUssQ1JzQm5DLE9BQU87RVFyQlQsTUFBTSxFQWZhLElBQTRDO0VBZ0IvRCxRQUFRLEVBQUUsUUFBUTtFQUNsQixPQUFPLEVBQUUsR0FBRyxHQUtiO0U3QmlDQyxNQUFNLEVBQUcsU0FBUyxFQUFFLEtBQUs7STZCNUM3QixBQUNFLE9BREssQ0FDTCxnQkFBZ0IsQ0FBQztNQVFiLE1BQU0sRUF4QlksSUFBNkMsR0EwQmxFOztBQUVELEFBQUEsVUFBVSxDQWJaLE9BQU8sQ0FhUTtFQUNYLFFBQVEsRUFBRSxLQUFLO0VBQ2YsR0FBRyxFQUFFLENBQUM7RUFDTixJQUFJLEVBQUUsQ0FBQztFQUNQLEtBQUssRUFBRSxDQUFDO0VBQ1IsT0FBTyxFQUFFLEtBQUssR0FDZjs7QUFuQkgsQUF5QkUsT0F6QkssQ0F5QkwsTUFBTSxDQUFDO0UxRDFCTCxLQUFRLEVvQndJRSxHQUFnQztFcEJ4STFDLEtBQVEsRUlBZ0QsSUFBSTtFSkE1RCxZQUFRLEVxQnFGRSxRQUFZO0VyQnJGdEIsYUFBUSxFcUJxRkUsUUFBWTtFcUN6RHRCLE1BQU0sRUFBRSxDQUFDO0VBRVQsVUFBVSxFQUFFLE9BQXNELEdBd0JuRTtFN0JUQyxNQUFNLEVBQUcsU0FBUyxFQUFFLEtBQUs7STZCNUM3QixBQXlCRSxPQXpCSyxDQXlCTCxNQUFNLENBQUM7TUFPSCxVQUFVLEVBQUUsTUFBaUQsR0FxQmhFO0VBckRILEFBbUNJLE9BbkNHLENBeUJMLE1BQU0sQ0FVSixJQUFJLENBQUM7SXBGcENQLFFBQVEsRUFBRSxNQUFNO0lBQ2hCLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLFdBQVcsRUFBRSxNQUFNO0lvRm9DZixPQUFPLEVBQUUsS0FBSztJQUNkLGdCQUFnQixFQUFFLDRCQUE0QjtJQUM5QyxpQkFBaUIsRUFBRSxTQUFTO0lBQzVCLGVBQWUsRUFqREYsUUFBdUMsQ0FEdEMsT0FBZ0M7SUFtRDlDLG1CQUFtQixFQUFFLE9BQU87SUFDNUIsTUFBTSxFQXBEUSxPQUFnQztJQXFEOUMsZUFBZSxFQUFFLElBQUk7SUFDckIsV0FBVyxFQUFFLElBQUk7SUFDakIsS0FBSyxFQXREUSxRQUF1QyxHQTZEckQ7STdCUkQsTUFBTSxFQUFHLFNBQVMsRUFBRSxLQUFLO002QjVDN0IsQUFtQ0ksT0FuQ0csQ0F5QkwsTUFBTSxDQVVKLElBQUksQ0FBQztRQWFELEtBQUssRUE3REEsT0FBaUM7UUE4RHRDLE1BQU0sRUEvREEsTUFBaUM7UUFnRXZDLGVBQWUsRUEvRFYsT0FBaUMsQ0FEaEMsTUFBaUMsR0FrRTFDOztBQU1MLEFBQ0UsSUFERSxBQUNELFFBQVEsQ0FBQztFQUNSLGdCQUFnQixFUjFCSCxzQkFBTztFUTJCcEIsT0FBTyxFQUFFLElBQUk7RUFDYixRQUFRLEVBQUUsS0FBSztFQUNmLEdBQUcsRUExRWdCLElBQTRDO0VBMkUvRCxLQUFLLEVBQUUsSUFBSTtFQUNYLE9BQU8sRUFBRSxFQUFFLEdBeUJaO0VBdkJDLEFBQUEsU0FBUyxDQVRiLElBQUksQUFDRCxRQUFRLENBUUs7SUFDVixPQUFPLEVBQUUsS0FBSyxHQUNmO0VBWEwsQUFhSSxJQWJBLEFBQ0QsUUFBUSxDQVlQLENBQUMsQ0FBQztJQUNBLE9BQU8sRUFBRSxLQUFLO0lBQ2QsY0FBYyxFQUFFLFNBQVM7SUFDekIsS0FBSyxFQUFFLElBQUk7SUFDWCxhQUFhLEVBQUUsR0FBRyxDQUFDLEtBQUssQ1I5Q1gsT0FBTztJUStDcEIsT0FBTyxFQUFFLEtBQUs7SUFDZCxlQUFlLEVBQUUsSUFBSTtJQUNyQixVQUFVLEVBQUUsTUFBTTtJQUNsQixTQUFTLEVBQUUsT0FBTztJQUNsQixXQUFXLEVBQUUsTUFBTSxHQUtwQjtJQTNCTCxBQXdCTSxJQXhCRixBQUNELFFBQVEsQ0FZUCxDQUFDLEFBV0UsV0FBVyxDQUFDO01BQ1gsYUFBYSxFQUFFLENBQUMsR0FDakI7RTdCeENILE1BQU0sRUFBRyxTQUFTLEVBQUUsS0FBSztJNkJjN0IsQUFDRSxJQURFLEFBQ0QsUUFBUSxDQUFDO01BNkJOLE9BQU8sRUFBRSxJQUFJLEdBRWhCOztBQWhDSCxBQWtDRSxJQWxDRSxBQWtDRCxTQUFTLENBQUM7RTFEN0ZULEtBQVEsRW9Cd0lFLEdBQWdDO0VwQnhJMUMsS0FBUSxFSUFnRCxJQUFJO0VzRGdHNUQsT0FBTyxFQUFFLElBQUk7RUFDYixTQUFTLEVBQUUsTUFBTTtFQUNqQixjQUFjLEVBQUUsR0FBRztFQUNuQixVQUFVLEVBQUUsTUFBTTtFQUNsQixXQUFXLEVBQUUsTUFBTSxHQWdDcEI7RTdCdkZDLE1BQU0sRUFBRyxTQUFTLEVBQUUsS0FBSztJNkJjN0IsQUFrQ0UsSUFsQ0UsQUFrQ0QsU0FBUyxDQUFDO01BVVAsT0FBTyxFQUFFLEtBQUssR0E2QmpCO0VBekVILEFBK0NJLElBL0NBLEFBa0NELFNBQVMsQ0FhUixDQUFDLENBQUM7SUFDQSxVQUFVLEVBQUUsS0FBSyxDUjlGTyxLQUFLLENBRmYsb0NBQXdDO0lRaUd0RCxLQUFLLEVSekVNLE9BQU87SVEwRWxCLE9BQU8sRUFBRSxZQUFZO0lBQ3JCLE1BQU0sRUFoSWdCLElBQUk7SUFpSTFCLFdBQVcsRUFBRSxJQUFpQztJQUM5QyxXQUFXLEVBQUUsSUFBSTtJQUNqQixlQUFlLEVBQUUsSUFBSTtJQUNyQixjQUFjLEVBQUUsU0FBUyxHQWlCMUI7SUF4RUwsQUEyRE0sSUEzREYsQUFrQ0QsU0FBUyxDQWFSLENBQUMsQUFZRSxNQUFNLENBQUM7TUFDTixLQUFLLEVSN0ZQLE9BQU8sR1E4Rk47SUFJRCxBQUFBLGFBQWEsQ0FqRW5CLElBQUksQUFrQ0QsU0FBUyxDQWFSLENBQUMsQUFrQmdCLFNBQVM7SUFDeEIsY0FBYyxDQWxFcEIsSUFBSSxBQWtDRCxTQUFTLENBYVIsQ0FBQyxBQW1CaUIsVUFBVTtJQUMxQixXQUFXLENBbkVqQixJQUFJLEFBa0NELFNBQVMsQ0FhUixDQUFDLEFBb0JjLE9BQU87SUFDcEIsVUFBVSxDQXBFaEIsSUFBSSxBQWtDRCxTQUFTLENBYVIsQ0FBQyxBQXFCYSxNQUFNLENBQUM7TUFDakIsS0FBSyxFUnRHUCxPQUFPO01RdUdMLGVBQWUsRUFBRSxZQUFZLEdBQzlCOztBQU9QLEFBQUEsY0FBYyxDQUFDO0UxRHpJWCxLQUFRLEVvQndJRSxHQUFnQztFcEJ4STFDLEtBQVEsRUlBZ0QsSUFBSTtFSkE1RCxZQUFRLEVxQnFGRSxRQUFZO0VyQnJGdEIsYUFBUSxFcUJxRkUsUUFBWTtFcUN1RHhCLE1BQU0sRUF0SmUsSUFBNEM7RUF1SmpFLGFBQWEsRUFBRSxDQUFDLEdBc0JqQjtFQTFCRCxBdkZ6SUUsY3VGeUlZLEF2RnpJWCxPQUFPLENBQUM7SUFDUCxLQUFLLEVBQUUsSUFBSTtJQUNYLE9BQU8sRUFBRSxFQUFFO0lBQ1gsT0FBTyxFQUFFLEtBQUssR0FDZjtFMER5Q0MsTUFBTSxFQUFHLFNBQVMsRUFBRSxLQUFLO0k2QjRGN0IsQUFBQSxjQUFjLENBQUM7TUFPWCxPQUFPLEVBQUUsSUFBSSxHQW1CaEI7RUExQkQsQUFVRSxjQVZZLENBVVosVUFBVSxDQUFDO0lBRVQsZUFBZSxFQUFFLFNBQVM7SUFDMUIsZ0JBQWdCLEVBQUUsZ0RBQWdEO0lBQ2xFLFVBQVUsRUFBRSxXQUFXO0lBQ3ZCLE9BQU8sRUFBRSxLQUFLO0lBQ2QsS0FBSyxFQUFFLEtBQUs7SUFDWixNQUFNLEVBQUUsSUFBSTtJQUNaLE9BQU8sRUFBRSxJQUE0RDtJQUNyRSxLQUFLLEVBQUUsSUFBSSxHQU1aO0lBSEMsQUFBQSxTQUFTLENBdEJiLGNBQWMsQ0FVWixVQUFVLENBWUk7TUFDVixnQkFBZ0IsRUFBRSw0REFBNEQsR0FDL0U7O0FBTUwsQUFBQSxPQUFPLENBQUM7RUFDTixTQUFTLEVBQUUsYUFBYTtFQUN4QixPQUFPLEVBQUUsSUFBSTtFQUNiLFFBQVEsRUFBRSxLQUFLO0VBQ2YsR0FBRyxFQXpMbUIsSUFBNkM7RUEwTG5FLEtBQUssRUFBRSxJQUFJO0VBQ1gsT0FBTyxFQUFFLEVBQUUsR0FhWjtFN0I3SUcsTUFBTSxFQUFHLFNBQVMsRUFBRSxLQUFLO0k2QjBIN0IsQUFTSSxPQVRHLEFBU0YsU0FBUyxDQUFDO01BQ1QsT0FBTyxFQUFFLEtBQUssR0FDZjtFQVhMLEFBU0ksT0FURyxBQVNGLFNBQVMsQ0FPRDtJQUNULFVBQVUsRUFBRSxTQUFTLENBQUMsS0FBaUIsQ1I3S3ZCLG9DQUF3QyxHUThLekQ7O0FBR0gsQUFBQSxnQkFBZ0IsQ0FBQztFQUNmLFVBQVUsRVIzSkEsSUFBSTtFUTRKZCxjQUFjLEVBQUUsTUFBTTtFQUN0QixXQUFXLEVBQUUsS0FBSztFQUNsQixjQUFjLEVBQUUsU0FBUztFQUN6QixLQUFLLEVBQUUsSUFBSTtFQUNYLE9BQU8sRUFBRSxFQUFFLEdBOENaO0VBcERELEFBUUUsZ0JBUmMsQ0FRZCxVQUFVLEVBUlosZ0JBQWdCLENMM0poQixnQkFBZ0IsRUsySmhCLGdCQUFnQixDYS9NaEIsZUFBZSxFYitNZixnQkFBZ0IsQ29CL01oQixlQUFlLEVwQitNZixnQkFBZ0IsQ29COUxoQixXQUFXLEVwQjhMWCxnQkFBZ0IsQ0x6SGhCLGFBQWEsRUt5SGIsZ0JBQWdCLENMMURoQixnQkFBZ0IsRUswRGhCLGdCQUFnQixDSG5FaEIsU0FBUyxFR21FVCxnQkFBZ0IsQ0EzTGhCLE9BQU8sQ0FxQkwsZ0JBQWdCLEVBckJsQixPQUFPLENBMkxQLGdCQUFnQixDQXRLZCxnQkFBZ0IsRUFzS2xCLGdCQUFnQixDQzdNaEIsT0FBTyxDQTRCTCxnQkFBZ0IsRUE1QmxCLE9BQU8sQ0Q2TVAsZ0JBQWdCLENDakxkLGdCQUFnQixFRGlMbEIsZ0JBQWdCLENFdk1oQixPQUFPLENBR0wsZ0JBQWdCLEVBSGxCLE9BQU8sQ0Z1TVAsZ0JBQWdCLENFcE1kLGdCQUFnQixFRm9NbEIsZ0JBQWdCLENJdE1oQixPQUFPLENBNkhMLGdCQUFnQixFQTdIbEIsT0FBTyxDSnNNUCxnQkFBZ0IsQ0l6RWQsZ0JBQWdCLEVKeUVsQixnQkFBZ0IsQ2lCL01oQixxQkFBcUIsRWpCK01yQixnQkFBZ0IsQ21CL01oQixZQUFZLEVuQitNWixnQkFBZ0IsQ3FCL01oQixjQUFjLENyQnVORDtJQUNULFFBQVEsRUFBRSxRQUFRO0lBQ2xCLE9BQU8sRUFBRSxNQUFNLEdBQ2hCO0VBWEgsQUFhRSxnQkFiYyxDQWFkLE1BQU0sQ0FBQztJQUNMLFVBQVUsRUFBRSxVQUFVO0lBQ3RCLE1BQU0sRXJDdEhJLFFBQVksQ3FDc0hMLENBQUM7SUFDbEIsT0FBTyxFQUFFLENBQUMsQ3JDdkhBLFFBQVksQ3FDdUhGLENBQUMsQ0FBQyxDQUFDLEdBQ3hCO0VBakJILEFBbUJFLGdCQW5CYyxDQW1CZCxDQUFDLENBQUM7SUFDQSxVQUFVLEVBQUUsS0FBSyxDUm5NUyxLQUFLLENBRmYsb0NBQXdDO0lRc014RCxLQUFLLEVSbExJLE9BQU87SVFtTGhCLE9BQU8sRUFBRSxLQUFLO0lBQ2QsZUFBZSxFQUFFLElBQUksR0FXdEI7SUFsQ0gsQUF5QkksZ0JBekJZLENBbUJkLENBQUMsQUFNRSxXQUFXLENBQUM7TUFDWCxVQUFVLEVBQUUsR0FBRyxDQUFDLEtBQUssQ1J2TGQsT0FBTztNUXdMZCxVQUFVLEVyQ2xJRixRQUFZO01xQ21JcEIsV0FBVyxFckNuSUgsUUFBWSxHcUNvSXJCO0lBN0JMLEFBK0JJLGdCQS9CWSxDQW1CZCxDQUFDLEFBWUUsTUFBTSxDQUFDO01BQ04sS0FBSyxFQUFFLElBQUksR0FDWjtFQWpDTCxBQXNDRSxnQkF0Q2MsQ0FzQ2QsV0FBVyxDQUFDO0lBQ1YsS0FBSyxFQUFFLElBQUk7SUFDWCxTQUFTLEVBQUUsTUFBTTtJQUNqQixVQUFVLEVScE9HLElBQUk7SVFxT2pCLFVBQVUsRUFBRSxNQUFNLEdBQ25CO0VBSUQsQUFDRSxnQkFEYyxDQS9DbEIsZ0JBQWdCLENBZ0RaLEtBQUssQ0FBQztJMUQ1T04sS0FBUSxFb0J3SUUsR0FBZ0M7SXBCeEkxQyxLQUFRLEVJQWdELElBQUk7SUpBNUQsWUFBUSxFcUJxRkUsUUFBWTtJckJyRnRCLGFBQVEsRXFCcUZFLFFBQVksR3FDeUpyQjs7QUFRTCxBQUVJLE9BRkcsQUFBQSxRQUFRLENBQ2IsZ0JBQWdCLENBQ2QsS0FBSyxDQUFDO0UxRHhQTixLQUFRLEVvQndJRSxHQUFnQztFcEJ4STFDLEtBQVEsRUlBZ0QsSUFBSTtFSkE1RCxZQUFRLEVxQnFGRSxRQUFZO0VyQnJGdEIsYUFBUSxFcUJxRkUsUUFBWTtFcUNxS3BCLEtBQUssRUFBRSxLQUFLLEdBU2I7RUFiTCxBQU1NLE9BTkMsQUFBQSxRQUFRLENBQ2IsZ0JBQWdCLENBQ2QsS0FBSyxDQUlILFFBQVEsQ0FBQztJQUNQLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLGFBQWEsRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFNLHdCQUFJO0lBQ2xDLGNBQWMsRUFBRSxTQUFTO0lBQ3pCLGNBQWMsRUFBRSxHQUFHO0lBQ25CLEtBQUssRVJsT0EsT0FBTyxHUW1PYjs7QUFaUCxBQWVJLE9BZkcsQUFBQSxRQUFRLENBQ2IsZ0JBQWdCLENBY2QsTUFBTSxDQUFDO0VBQ0wsYUFBYSxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQU0sd0JBQUk7RUFDbEMsV0FBVyxFQUFFLEdBQUc7RUFDaEIsY0FBYyxFQUFFLEdBQUcsR0FDcEI7O0FBbkJMLEFBc0JFLE9BdEJLLEFBQUEsUUFBUSxDQXNCYixRQUFRLENBQUM7RUFDUCxnQkFBZ0IsRVJuUGQsT0FBTztFUW9QVCxLQUFLLEVBQUUsSUFBSTtFQUNYLE9BQU8sRUFBRSxLQUFLO0VBQ2QsS0FBSyxFQUFFLEtBQUs7RUFDWixVQUFVLEVBQUUsTUFBTTtFQUNsQixZQUFZLEVyQzdMRixRQUFZO0VxQzhMdEIsT0FBTyxFQUFFLFFBQVE7RUFDakIsVUFBVSxFQUFFLE1BQU07RUFDbEIsZUFBZSxFQUFFLFNBQVMsR0FDM0I7O0FBS0gsQUFBQSxPQUFPLENBQUM7RTFEM1JKLEtBQVEsRW9Cd0lFLEdBQWdDO0VwQnhJMUMsS0FBUSxFSUEwRCxLQUFLO0VKQXZFLFlBQVEsRXFCcUZFLFFBQVk7RXJCckZ0QixhQUFRLEVxQnFGRSxRQUFZO0VxQ3lNeEIsT0FBTyxFQUFFLElBQUk7RUFDYixNQUFNLEVBQUUsSUFBSTtFQUNaLFVBQVUsRUFBRSxJQUE2QyxHQXNEMUQ7RUEzREQsQXZGM1JFLE91RjJSSyxBdkYzUkosT0FBTyxDQUFDO0lBQ1AsS0FBSyxFQUFFLElBQUk7SUFDWCxPQUFPLEVBQUUsRUFBRTtJQUNYLE9BQU8sRUFBRSxLQUFLLEdBQ2Y7RTBEeUNDLE1BQU0sRUFBRyxTQUFTLEVBQUUsS0FBSztJNkI4TzdCLEFBQUEsT0FBTyxDQUFDO01BUUosT0FBTyxFQUFFLEtBQUssR0FtRGpCO0VBM0RELEFBV0UsT0FYSyxDQVdMLE9BQU87RUFYVCxPQUFPLENBWUwsS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFLLFFBQVEsQUFBYixFQUFlO0lBQ25CLEtBQUssRUFBRSxLQUFLLEdBQ2I7RUFkSCxBQWdCRSxPQWhCSyxDQWdCTCxPQUFPLENBQUM7SUFFTixVQUFVLEVBQUUsT0FBTyxDUmhTTyxLQUFLLENBRmYsb0NBQXdDO0lRbVN4RCxNQUFNLEVBQUUsSUFBSTtJQUNaLGFBQWEsRUFBRSxHQUFHLENBQUMsS0FBSyxDUnJSdEIsT0FBTztJUXNSVCxLQUFLLEVSdFJILE9BQU87SVF1UlQsU0FBUyxFQUFFLElBQUk7SUFDZixZQUFZLEVBQUUsSUFBSTtJQUNsQixLQUFLLEVBQUUsS0FBSztJQUNaLE9BQU8sRUFBRSxDQUFDO0lBQ1YsT0FBTyxFQUFFLElBQUk7SUFDYixjQUFjLEVBQUUsU0FBUyxHQU8xQjtJQWxDSCxBQTZCSSxPQTdCRyxDQWdCTCxPQUFPLEFBYUosUUFBUSxDQUFDO01BQ1IsVUFBVSxFQUFFLG9DQUFvQyxDQUFDLFNBQVM7TUFDMUQsZUFBZSxFQUFFLFNBQVM7TUFDMUIsbUJBQW1CLEVBQUUsUUFBUSxHQUM5QjtFQWpDTCxBQW9DRSxPQXBDSyxDQW9DTCxLQUFLLENBQUEsQUFBQSxJQUFDLENBQUssUUFBUSxBQUFiLEVBQWU7SUFDbkIsVUFBVSxFQUFFLFNBQVMsQ1JuVEssS0FBSyxDQUZmLG9DQUF3QztJUXNUeEQsVUFBVSxFQUFFLElBQUk7SUFDaEIsZ0JBQWdCLEVBQUUsZ0RBQWdEO0lBQ2xFLGlCQUFpQixFQUFFLFNBQVM7SUFDNUIsTUFBTSxFQUFFLElBQUk7SUFDWixNQUFNLEVBQUUsSUFBSTtJQUNaLFVBQVUsRUFBRSxHQUFHO0lBQ2YsS0FBSyxFQUFFLElBQUksR0FDWjtFQTdDSCxBQWtESSxPQWxERyxBQStDSixZQUFZLENBR1gsT0FBTyxFQWxEWCxPQUFPLEFBZ0RKLFFBQVEsQ0FFUCxPQUFPLEVBbERYLE9BQU8sQUFpREosTUFBTSxDQUNMLE9BQU8sQ0FBQztJQUNOLE9BQU8sRUFBRSxDQUFDLEdBQ1g7RUFwREwsQUFzREksT0F0REcsQUErQ0osWUFBWSxDQU9YLEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBSyxRQUFRLEFBQWIsR0F0RFYsT0FBTyxBQWdESixRQUFRLENBTVAsS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFLLFFBQVEsQUFBYixHQXREVixPQUFPLEFBaURKLE1BQU0sQ0FLTCxLQUFLLENBQUEsQUFBQSxJQUFDLENBQUssUUFBUSxBQUFiLEVBQWU7SUFDbkIsU0FBUyxFQUFFLGtCQUFrQjtJQUM3QixnQkFBZ0IsRUFBRSxvREFBb0QsR0FDdkU7O0FDcldMLEFBQUEsT0FBTyxDQUFDO0VBQ04sVUFBVSxFQUFFLElBQUk7RUFDaEIsVUFBVSxFQUFFLElBQTBCLEdBeUx2QztFQTNMRCxBQUlFLE9BSkssQ0FJTCxLQUFLLEVBSlAsT0FBTyxDRDBKUCxjQUFjLENBVVosVUFBVSxFQVZaLGNBQWMsQ0MxSmQsT0FBTyxDRG9LTCxVQUFVLENDaEtKO0lBQ0osS0FBSyxFQUFFLElBQUk7SUFDWCxNQUFNLEVBQUUsSUFBSTtJQUNaLGVBQWUsRUFBRSxTQUFTLEdBbUIzQjtJQTFCSCxBQVNJLE9BVEcsQ0FJTCxLQUFLLEFBS0YsUUFBUSxFQVRiLE9BQU8sQ0QwSlAsY0FBYyxDQ2pKVCxRQUFRLEFEMkpYLFVBQVUsRUFWWixjQUFjLENDMUpkLE9BQU8sQ0FTRixRQUFRLEFEMkpYLFVBQVUsQ0MzSkU7TUFDUixnQkFBZ0IsRUFBRSwyQ0FBMkMsR0FBRztJQVZ0RSxBQVdJLE9BWEcsQ0FJTCxLQUFLLEFBT0YsVUFBVSxFQVhmLE9BQU8sQ0QwSlAsY0FBYyxDRk1YLFVBQVUsQUVJWCxVQUFVLEVBVlosY0FBYyxDQzFKZCxPQUFPLENIZ0tKLFVBQVUsQUVJWCxVQUFVLENDekpJO01BQ1YsZ0JBQWdCLEVBQUUsNkNBQTZDLEdBQUc7SUFaeEUsQUFhSSxPQWJHLENBSUwsS0FBSyxBQVNGLFNBQVMsRUFiZCxPQUFPLENEMEpQLGNBQWMsQ0M3SVQsU0FBUyxBRHVKWixVQUFVLEVBVlosY0FBYyxDQzFKZCxPQUFPLENBYUYsU0FBUyxBRHVKWixVQUFVLENDdkpHO01BQ1QsZ0JBQWdCLEVBQUUsNENBQTRDLEdBQUc7SUFkdkUsQUFlSSxPQWZHLENBSUwsS0FBSyxBQVdGLFNBQVMsRUFmZCxPQUFPLENEMEpQLGNBQWMsQ0MzSVQsU0FBUyxBRHFKWixVQUFVLEVBVlosY0FBYyxDQzFKZCxPQUFPLENBZUYsU0FBUyxBRHFKWixVQUFVLENDckpHO01BQ1QsZ0JBQWdCLEVBQUUsNENBQTRDLEdBQUc7SUFoQnZFLEFBaUJJLE9BakJHLENBSUwsS0FBSyxBQWFGLFdBQVcsRUFqQmhCLE9BQU8sQ0QwSlAsY0FBYyxDQ3pJVCxXQUFXLEFEbUpkLFVBQVUsRUFWWixjQUFjLENDMUpkLE9BQU8sQ0FpQkYsV0FBVyxBRG1KZCxVQUFVLENDbkpLO01BQ1gsZ0JBQWdCLEVBQUUsOENBQThDLEdBQUc7SUFsQnpFLEFBbUJJLE9BbkJHLENBSUwsS0FBSyxBQWVGLFNBQVMsRUFuQmQsT0FBTyxDRDBKUCxjQUFjLENDdklULFNBQVMsQURpSlosVUFBVSxFQVZaLGNBQWMsQ0MxSmQsT0FBTyxDQW1CRixTQUFTLEFEaUpaLFVBQVUsQ0NqSkc7TUFBRSxnQkFBZ0IsRUFBRSw0Q0FBNEMsR0FBSTtJOUIyQy9FLE1BQU0sRUFBRyxTQUFTLEVBQUUsS0FBSztNOEI5RDdCLEFBSUUsT0FKSyxDQUlMLEtBQUssRUFKUCxPQUFPLENEMEpQLGNBQWMsQ0FVWixVQUFVLEVBVlosY0FBYyxDQzFKZCxPQUFPLENEb0tMLFVBQVUsQ0NoS0o7UUFrQkYsS0FBSyxFQUFFLElBQUk7UUFDWCxNQUFNLEVBQUUsSUFBSTtRQUNaLGVBQWUsRUFBRSxTQUFTLEdBRTdCO0VBMUJILEFBNEJFLE9BNUJLLENBNEJMLGdCQUFnQixDQUFDO0lBRWYsY0FBYyxFQUFFLElBQUk7SUFDcEIsV0FBVyxFQUFFLElBQUk7SUFDakIsUUFBUSxFQUFFLFFBQVEsR0FDbkI7RUFqQ0gsQUFtQ0UsT0FuQ0ssQ0FtQ0wsYUFBYSxDQUFDO0lBQ1osUUFBUSxFQUFFLFFBQVE7SUFDbEIsR0FBRyxFQUFFLEtBQTZCO0lBQ2xDLEtBQUssRXRDZ0VLLFFBQVk7SXNDOUR0QixLQUFLLEVBMUNpQixJQUFJO0lBMkMxQixNQUFNLEVBM0NnQixJQUFJO0lBNEMxQixlQUFlLEVBNUNPLElBQUksQ0FBSixJQUFJO0lBNkMxQixnQkFBZ0IsRUFBRSxxREFBcUQsR0FDeEU7RUE1Q0gsQUE4Q0UsT0E5Q0ssQ0E4Q0wsT0FBTyxDQUFDO0kzRDdCTixLQUFRLEV3QlpjLElBQUk7SXhCWTFCLEtBQVEsRW9CeUhzRCxJQUFJO0lwQnpIbEUsS0FBUSxFSUFnRCxJQUFJO0lKQTVELFlBQVEsRXFCcUZFLFFBQVk7SXJCckZ0QixhQUFRLEVxQnFGRSxRQUFZO0lzQ3JEdEIsU0FBUyxFQUFFLE9BQU87SUFDbEIsV0FBVyxFQUFFLEdBQUc7SUFDaEIsY0FBYyxFQUFFLEtBQUs7SUFDckIsV0FBVyxFQUFFLEtBQUs7SUFDbEIsVUFBVSxFQUFFLE1BQU0sR0E4Qm5CO0lBbkZILEF4RmlCRSxPd0ZqQkssQ0E4Q0wsT0FBTyxBeEY3Qk4sT0FBTyxDQUFDO01BQ1AsS0FBSyxFQUFFLElBQUk7TUFDWCxPQUFPLEVBQUUsRUFBRTtNQUNYLE9BQU8sRUFBRSxLQUFLLEdBQ2Y7SXdGckJILEFBdURJLE9BdkRHLENBOENMLE9BQU8sQ0FTTCxFQUFFLENBQUM7TUFDRCxPQUFPLEVBQUUsWUFBWSxHQUN0QjtJQXpETCxBQTJESSxPQTNERyxDQThDTCxPQUFPLENBYUwsQ0FBQyxDQUFDO01BQ0EsT0FBTyxFQUFFLGFBQWE7TUFDdEIsY0FBYyxFQUFFLFNBQVM7TUFDekIsZUFBZSxFQUFFLElBQUksR0FLdEI7TUFuRUwsQUFnRU0sT0FoRUMsQ0E4Q0wsT0FBTyxDQWFMLENBQUMsQUFLRSxNQUFNLENBQUM7UUFDTixLQUFLLEVUdEJQLE9BQU8sR1N1Qk47STlCSkgsTUFBTSxFQUFHLFNBQVMsRUFBRSxLQUFLO004QjlEN0IsQUE4Q0UsT0E5Q0ssQ0E4Q0wsT0FBTyxDQUFDO1FBd0JKLFNBQVMsRUFBRSxJQUFJO1FBQ2YsV0FBVyxFQUFFLEtBQUssR0FZckI7UUFuRkgsQUF5RU0sT0F6RUMsQ0E4Q0wsT0FBTyxDQTJCSCxFQUFFLEdBQUcsRUFBRSxDQUFDO1VBQ04sV0FBVyxFQUFFLEdBQUcsQ0FBQyxLQUFLLENUdEJiLE9BQU8sR1N1QmpCO0k5QmJILE1BQU0sRUFBRyxTQUFTLEVBQUUsS0FBSztNOEI5RDdCLEFBOENFLE9BOUNLLENBOENMLE9BQU8sQ0FBQztRQWlDSixLQUFLLEVBQUUsSUFBSTtRQUNYLE9BQU8sRUFBRSxLQUFLO1FBQ2QsVUFBVSxFQUFFLE1BQU0sR0FFckI7RUFuRkgsQUFxRkUsT0FyRkssQ0FxRkwsUUFBUSxDQUFDO0kzRHBFUCxLQUFRLEV3QlpjLElBQUk7SXhCWTFCLEtBQVEsRW9CeUhzRCxJQUFJO0lwQnpIbEUsS0FBUSxFSUFnRCxJQUFJO0lKQTVELFlBQVEsRXFCcUZFLFFBQVk7SXJCckZ0QixhQUFRLEVxQnFGRSxRQUFZO0lzQ2R0QixjQUFjLEVBQUUsS0FBSztJQUNyQixXQUFXLEVBQUUsS0FBSztJQUNsQixVQUFVLEVBQUUsTUFBTSxHQXFCbkI7SUEvR0gsQXhGaUJFLE93RmpCSyxDQXFGTCxRQUFRLEF4RnBFUCxPQUFPLENBQUM7TUFDUCxLQUFLLEVBQUUsSUFBSTtNQUNYLE9BQU8sRUFBRSxFQUFFO01BQ1gsT0FBTyxFQUFFLEtBQUssR0FDZjtJd0ZyQkgsQUE0RkksT0E1RkcsQ0FxRkwsUUFBUSxDQU9OLENBQUMsQ0FBQztNQUNBLE9BQU8sRUFBRSxZQUFZO01BQ3JCLE9BQU8sRUFBRSxLQUFLLEdBQ2Y7STlCakNELE1BQU0sRUFBRyxTQUFTLEVBQUUsS0FBSztNOEI5RDdCLEFBcUZFLE9BckZLLENBcUZMLFFBQVEsQ0FBQztRQWFMLGNBQWMsRUFBRSxDQUFDO1FBQ2pCLFdBQVcsRUFBRSxNQUFNO1FBQ25CLFFBQVEsRUFBRSxRQUFRO1FBQ2xCLEtBQUssRUFBRSxDQUFDO1FBQ1IsVUFBVSxFQUFFLEtBQUs7UUFDakIsR0FBRyxFQUFFLElBQUk7UUFDVCxLQUFLLEVBQUUsSUFBSSxHQU9kO1FBL0dILEFBNEZJLE9BNUZHLENBcUZMLFFBQVEsQ0FPTixDQUFDLENBY0c7VUFDQSxPQUFPLEVBQUUsWUFBWTtVQUNyQixXQUFXLEVBQUUsR0FBRyxHQUNqQjtFQTdHUCxBQWlIRSxPQWpISyxDQWlITCxjQUFjLENBQUM7STNEaEdiLEtBQVEsRXdCWmMsSUFBSTtJeEJZMUIsS0FBUSxFb0J5SHNELElBQUk7SXBCekhsRSxLQUFRLEVJQWdELElBQUk7SUpBNUQsWUFBUSxFcUJxRkUsUUFBWTtJckJyRnRCLGFBQVEsRXFCcUZFLFFBQVk7SXNDYXRCLFdBQVcsRUFBRSxNQUFNO0lBQ25CLFVBQVUsRUFBRSxNQUFNLEdBMkNuQjtJOUJqR0MsTUFBTSxFQUFHLFNBQVMsRUFBRSxLQUFLO004QjlEN0IsQUFpSEUsT0FqSEssQ0FpSEwsY0FBYyxDQUFDO1FBTVgsT0FBTyxFQUFFLEtBQUs7UUFDZCxJQUFJLEVBQUUsQ0FBQztRQUNQLFdBQVcsRUFBRSxDQUFDO1FBQ2QsUUFBUSxFQUFFLFFBQVE7UUFDbEIsVUFBVSxFQUFFLElBQUk7UUFDaEIsR0FBRyxFQUFFLElBQUk7UUFDVCxLQUFLLEVBQUUsSUFBSSxHQWtDZDtJQS9KSCxBQWdJSSxPQWhJRyxDQWlITCxjQUFjLENBZVosU0FBUztJQWhJYixPQUFPLENBaUhMLGNBQWMsQ0FnQlosS0FBSyxDQUFDO01BQ0osT0FBTyxFQUFFLE9BQU8sR0FDakI7SUFuSUwsQUFxSUksT0FySUcsQ0FpSEwsY0FBYyxDQW9CWixTQUFTLENBQUM7TUFDUixVQUFVLEVBQUUsT0FBTyxDVHhHSyxLQUFLLENBRmYsb0NBQXdDO01TMkd0RCxPQUFPLEVBQUUsQ0FBQyxHQUNYO0lBeElMLEFBMElJLE9BMUlHLENBaUhMLGNBQWMsQ0F5QlosS0FBSyxDQUFDO01BRUosTUFBTSxFQUFFLENBQUM7TUFDVCxhQUFhLEVBQUUsR0FBRyxDQUFDLEtBQUssQ1R6RmIsT0FBTztNUzBGbEIsU0FBUyxFQUFFLElBQUk7TUFDZixLQUFLLEVBQUUsS0FBSyxHQVNiO01BeEpMLEFBaUpNLE9BakpDLENBaUhMLGNBQWMsQ0F5QlosS0FBSyxBQU9GLE1BQU0sQ0FBQztRQUNOLE9BQU8sRUFBRSxDQUFDLEdBQ1g7TUFuSlAsQUFvSk0sT0FwSkMsQ0FpSEwsY0FBYyxDQXlCWixLQUFLLEFBVUYsMkJBQTJCLENBQUM7UUFBRSxLQUFLLEVUaEd6QixPQUFPLEdTZ0d1QztNQXBKL0QsQUFxSk0sT0FySkMsQ0FpSEwsY0FBYyxDQXlCWixLQUFLLEFBV0YsaUJBQWlCLENBQUM7UUFBRSxLQUFLLEVUakdmLE9BQU8sR1NpRzZCO01BckpyRCxBQXNKTSxPQXRKQyxDQWlITCxjQUFjLENBeUJaLEtBQUssQUFZRixrQkFBa0IsQ0FBQztRQUFFLEtBQUssRVRsR2hCLE9BQU8sR1NrRzhCO01BdEp0RCxBQXVKTSxPQXZKQyxDQWlITCxjQUFjLENBeUJaLEtBQUssQUFhRixzQkFBc0IsQ0FBQztRQUFFLEtBQUssRVRuR3BCLE9BQU8sR1NtR2tDO0lBdkoxRCxBQTJKTSxPQTNKQyxDQWlITCxjQUFjLEFBeUNYLE9BQU8sQ0FDTixTQUFTLENBQUM7TUFDUixLQUFLLEVUakhQLE9BQU8sR1NrSE47RUE3SlAsQUFpS0UsT0FqS0ssQ0FpS0wscUJBQXFCLENBQUM7SUFDcEIsVUFBVSxFQUFFLGdCQUFnQixDVHBJRixLQUFLLENBRmYsb0NBQXdDO0lTdUl4RCxnQkFBZ0IsRVRuSFAsT0FBTztJU29IaEIsS0FBSyxFQUFFLElBQUk7SUFDWCxPQUFPLEVBQUUsWUFBWTtJQUNyQixPQUFPLEVBQUUsT0FBTztJQUNoQixlQUFlLEVBQUUsSUFBSTtJQUNyQixjQUFjLEVBQUUsU0FBUyxHQUsxQjtJQTdLSCxBQTBLSSxPQTFLRyxDQWlLTCxxQkFBcUIsQUFTbEIsTUFBTSxDQUFDO01BQ04sZ0JBQWdCLEVUaEloQixPQUFPLEdTaUlSO0VBNUtMLEFBK0tFLE9BL0tLLENBK0tMLFdBQVcsQ0FBQztJQUNWLFVBQVUsRVQvSE0sT0FBTztJU2dJdkIsT0FBTyxFQUFFLElBQUksR0FTZDtJQTFMSCxBQW1MSSxPQW5MRyxDQStLTCxXQUFXLENBSVQsQ0FBQyxDQUFDO01BRUEsVUFBVSxFQUFFLE1BQU07TUFDbEIsS0FBSyxFQUFFLElBQUk7TUFDWCxTQUFTLEVBQUUsT0FBTztNQUNsQixNQUFNLEVBQUUsQ0FBQyxHQUNWOztBQzNMTDs7OztFQUlFO0FBSUYsQUFBQSxPQUFPLENBQUM7RUFDTixVQUFVLEVWcUNILE9BQU8sR1VnRGY7RUF0RkQsQXpGV0UsT3lGWEssQ0FPTCxPQUFPLENBRUwsRUFBRSxBekZFSCxPQUFPO0V5RlhWLE9BQU8sQ0FRTCxRQUFRLENBQ04sRUFBRSxBekZFSCxPQUFPLENBQUM7SUFDUCxLQUFLLEVBQUUsSUFBSTtJQUNYLE9BQU8sRUFBRSxFQUFFO0lBQ1gsT0FBTyxFQUFFLEtBQUssR0FDZjtFeUZmSCxBQVlNLE9BWkMsQ0FPTCxPQUFPLENBRUwsRUFBRSxDQUdBLEVBQUU7RUFaUixPQUFPLENBUUwsUUFBUSxDQUNOLEVBQUUsQ0FHQSxFQUFFLENBQUM7SUFDRCxLQUFLLEVBQUUsSUFBSSxHQUNaO0VBZFAsQUFrQkUsT0FsQkssQ0FrQkwsT0FBTyxDQUFDO0k1RFBOLEtBQVEsRXdCWmMsSUFBSTtJeEJZMUIsS0FBUSxFb0J5SHNELElBQUk7SXBCekhsRSxLQUFRLEVJQWdELElBQUk7SUpBNUQsWUFBUSxFcUJxRkUsUUFBWTtJckJyRnRCLGFBQVEsRXFCcUZFLFFBQVk7SXVDM0V0QixXQUFXLEVBdkJDLElBQUksR0EwQ2pCO0lBeENILEF6RldFLE95RlhLLENBa0JMLE9BQU8sQXpGUE4sT0FBTyxDQUFDO01BQ1AsS0FBSyxFQUFFLElBQUk7TUFDWCxPQUFPLEVBQUUsRUFBRTtNQUNYLE9BQU8sRUFBRSxLQUFLLEdBQ2Y7SXlGZkgsQUF1QkksT0F2QkcsQ0FrQkwsT0FBTyxDQUtMLEVBQUUsQ0FBQztNQUNELFdBQVcsRUFBRSxLQUFLLEdBQ25CO0lBekJMLEFBMkJJLE9BM0JHLENBa0JMLE9BQU8sQ0FTTCxDQUFDLENBQUM7TUFDQSxLQUFLLEVBQUUsSUFBSTtNQUNYLE9BQU8sRUFBRSxLQUFLO01BQ2QsT0FBTyxFQUFFLE1BQU07TUFDZixlQUFlLEVBQUUsSUFBSTtNQUNyQixjQUFjLEVBQUUsU0FBUyxHQU8xQjtNQXZDTCxBQWtDTSxPQWxDQyxDQWtCTCxPQUFPLENBU0wsQ0FBQyxBQU9FLE1BQU0sRUFsQ2IsT0FBTyxDQWtCTCxPQUFPLENBU0wsQ0FBQyxBQVFFLFFBQVEsQ0FBQztRQUNSLGVBQWUsRUFBRSxZQUFZO1FBQzdCLEtBQUssRUFBRSxJQUFJLEdBQ1o7RUF0Q1AsQUEwQ0UsT0ExQ0ssQ0EwQ0wsUUFBUSxDQUFDO0lBQ1AsT0FBTyxFQUFFLElBQUksR0FXZDtJQXRESCxBQTZDSSxPQTdDRyxDQTBDTCxRQUFRLENBR04sRUFBRSxDQUFDO01BQ0QsS0FBSyxFQUFFLEtBQUs7TUFDWixZQUFZLEVBQUUsSUFBSSxHQUNuQjtJQWhETCxBQWtESSxPQWxERyxDQTBDTCxRQUFRLENBUU4sQ0FBQztJQWxETCxPQUFPLENBMENMLFFBQVEsQ0FTTixDQUFDLENBQUMsSUFBSSxDQUFDO01BQ0wsT0FBTyxFQUFFLEtBQUssR0FDZjtFQXJETCxBQXdERSxPQXhESyxDQXdETCxLQUFLLEVBeERQLE9BQU8sQ0ZvSlAsY0FBYyxDQVVaLFVBQVUsRUFWWixjQUFjLENFcEpkLE9BQU8sQ0Y4SkwsVUFBVSxDRXRHSjtJQUNKLEtBQUssRUEzRE8sSUFBSTtJQTREaEIsTUFBTSxFQTVETSxJQUFJO0lBNkRoQixlQUFlLEVBQUUsU0FBUyxHQVEzQjtJQW5FSCxBQTZESSxPQTdERyxDQXdETCxLQUFLLEFBS0YsUUFBUSxFQTdEYixPQUFPLENGb0pQLGNBQWMsQ0NqSlQsUUFBUSxBRDJKWCxVQUFVLEVBVlosY0FBYyxDRXBKZCxPQUFPLENER0YsUUFBUSxBRDJKWCxVQUFVLENFakdFO01BQUUsZ0JBQWdCLEVBQUUsK0NBQStDLEdBQUk7SUE3RHJGLEFBOERJLE9BOURHLENBd0RMLEtBQUssQUFNRixVQUFVLEVBOURmLE9BQU8sQ0ZvSlAsY0FBYyxDRk1YLFVBQVUsQUVJWCxVQUFVLEVBVlosY0FBYyxDRXBKZCxPQUFPLENKMEpKLFVBQVUsQUVJWCxVQUFVLENFaEdJO01BQUUsZ0JBQWdCLEVBQUUsaURBQWlELEdBQUc7SUE5RHhGLEFBK0RJLE9BL0RHLENBd0RMLEtBQUssQUFPRixTQUFTLEVBL0RkLE9BQU8sQ0ZvSlAsY0FBYyxDQzdJVCxTQUFTLEFEdUpaLFVBQVUsRUFWWixjQUFjLENFcEpkLE9BQU8sQ0RPRixTQUFTLEFEdUpaLFVBQVUsQ0UvRkc7TUFBRSxnQkFBZ0IsRUFBRSxnREFBZ0QsR0FBSTtJQS9EdkYsQUFnRUksT0FoRUcsQ0F3REwsS0FBSyxBQVFGLFNBQVMsRUFoRWQsT0FBTyxDRm9KUCxjQUFjLENDM0lULFNBQVMsQURxSlosVUFBVSxFQVZaLGNBQWMsQ0VwSmQsT0FBTyxDRFNGLFNBQVMsQURxSlosVUFBVSxDRTlGRztNQUFFLGdCQUFnQixFQUFFLGdEQUFnRCxHQUFJO0lBaEV2RixBQWlFSSxPQWpFRyxDQXdETCxLQUFLLEFBU0YsV0FBVyxFQWpFaEIsT0FBTyxDRm9KUCxjQUFjLENDeklULFdBQVcsQURtSmQsVUFBVSxFQVZaLGNBQWMsQ0VwSmQsT0FBTyxDRFdGLFdBQVcsQURtSmQsVUFBVSxDRTdGSztNQUFFLGdCQUFnQixFQUFFLGtEQUFrRCxHQUFJO0lBakUzRixBQWtFSSxPQWxFRyxDQXdETCxLQUFLLEFBVUYsU0FBUyxFQWxFZCxPQUFPLENGb0pQLGNBQWMsQ0N2SVQsU0FBUyxBRGlKWixVQUFVLEVBVlosY0FBYyxDRXBKZCxPQUFPLENEYUYsU0FBUyxBRGlKWixVQUFVLENFNUZHO01BQUUsZ0JBQWdCLEVBQUUsZ0RBQWdELEdBQUk7RS9CVm5GLE1BQU0sRUFBRyxTQUFTLEVBQUUsS0FBSztJK0J4RDdCLEFBQUEsT0FBTyxDQUFDO01Bc0VKLFNBQVMsRUFBRSxPQUFPLEdBZ0JyQjtNQXRGRCxBQXdFSSxPQXhFRyxDQXdFSCxPQUFPO01BeEVYLE9BQU8sQ0F5RUgsUUFBUSxDQUFDO1E1RDlEVCxLQUFRLEV3QkpjLElBQUksR29Db0V6QjtNQTNFTCxBQWtCRSxPQWxCSyxDQWtCTCxPQUFPLENBMkRHO1E1RGxFUixLQUFRLEVvQndJRSxTQUFnQztRcEJ4STFDLEtBQVEsRUlBZ0QsSUFBSTtRSkE1RCxZQUFRLEVxQnFGRSxRQUFZO1FyQnJGdEIsYUFBUSxFcUJxRkUsUUFBWSxHdUNqQnJCO01BL0VMLEFBMENFLE9BMUNLLENBMENMLFFBQVEsQ0F1Q0c7UTVEdEVULEtBQVEsRW9Cd0lFLFNBQWdDO1FwQnhJMUMsS0FBUSxFSUFnRCxJQUFJO1FKQTVELFlBQVEsRXFCcUZFLFFBQVk7UXJCckZ0QixhQUFRLEVxQnFGRSxRQUFZO1F1Q2JwQixPQUFPLEVBQUUsS0FBSyxHQUNmOztBQ3RGTCxBQUVFLGNBRlksQ0FFWixPQUFPO0FBRlQsY0FBYyxDQUdaLGlCQUFpQjtBQUZuQixpQkFBaUIsQ0FDZixPQUFPO0FBRFQsaUJBQWlCLENBRWYsaUJBQWlCLENBQUM7RUFDaEIsT0FBTyxFQUFFLElBQUksR0FLZDtFaENpREMsTUFBTSxFQUFHLFNBQVMsRUFBRSxLQUFLO0lnQzFEN0IsQUFFRSxjQUZZLENBRVosT0FBTztJQUZULGNBQWMsQ0FHWixpQkFBaUI7SUFGbkIsaUJBQWlCLENBQ2YsT0FBTztJQURULGlCQUFpQixDQUVmLGlCQUFpQixDQUFDO01BSWQsT0FBTyxFQUFFLEtBQUssR0FFakI7O0FBVEgsQUFXRSxjQVhZLENBV1osT0FBTztBQVZULGlCQUFpQixDQVVmLE9BQU8sQ0FBQztFQUNOLEtBQUssRUFBRSxLQUFLLEdBQ2I7O0FBYkgsQUFlRSxjQWZZLENBZVosaUJBQWlCO0FBZG5CLGlCQUFpQixDQWNmLGlCQUFpQixDQUFDO0VBQ2hCLEtBQUssRUFBRSxJQUFJO0VBQ1gsV0FBVyxFQUFFLENBQUMsR0FPZjtFaENrQ0MsTUFBTSxFQUFHLFNBQVMsRUFBRSxLQUFLO0lnQzFEN0IsQUFlRSxjQWZZLENBZVosaUJBQWlCO0lBZG5CLGlCQUFpQixDQWNmLGlCQUFpQixDQUFDO01BS2QsS0FBSyxFQUFFLElBQUk7TUFDWCxLQUFLLEVBQUUsS0FBSztNQUNaLFdBQVcsRUFBRSxJQUFJLEdBRXBCOztBQUdILEFBQUEsTUFBTSxDQUFDO0VBQ0wsS0FBSyxFQUFFLElBQUk7RUFDWCxTQUFTLEVBQUUsT0FBTztFQUNsQixNQUFNLEVBQUUsQ0FBQztFQUNULE9BQU8sRUFBRSxDQUFDO0VBQ1YsY0FBYyxFQUFFLFNBQVMsR0FzUTFCO0VBM1FELEFBT0UsTUFQSSxDQU9KLEVBQUUsQ0FBQztJQUNELFVBQVUsRUFBRSxJQUFJO0lBQ2hCLE1BQU0sRUFBRSxDQUFDO0lBQ1QsT0FBTyxFQUFFLENBQUMsR0FDWDtFQVhILEFBYUUsTUFiSSxDQWFKLGFBQWEsQ0FBQztJQUNaLGVBQWUsRUFBRSxJQUFJLEdBQ3RCO0VBZkgsQUFtQkUsTUFuQkksQUFtQkgsTUFBTTtFQW5CVCxNQUFNLEFBb0JILE1BQU0sQ0FBQyxhQUFhLENBQUM7SUFDcEIsT0FBTyxFQUFFLFdBQVcsR0FLckI7SUFIQyxBQUFBLGlCQUFpQixDQXZCckIsTUFBTSxBQW1CSCxNQUFNLEVBSUwsaUJBQWlCO0lBdkJyQixNQUFNLEFBb0JILE1BQU0sQ0FBQyxhQUFhLENBR0M7TUFDbEIsT0FBTyxFQUFFLFdBQVcsR0FDckI7RUF6QkwsQUE0QkUsTUE1QkksQ0E0QkosY0FBYyxDQUFDO0lBQ2IsS0FBSyxFWGpCSCxPQUFPO0lXa0JULE9BQU8sRUFBRSxLQUFLO0lBQ2QsU0FBUyxFQUFFLElBQUk7SUFDZixPQUFPLEVBQUUsR0FBRztJQUNaLFVBQVUsRUFBRSxLQUFLLEdBaUJsQjtJQWxESCxBQW1DSSxNQW5DRSxDQTRCSixjQUFjLENBT1osWUFBWSxDQUFDO01BQ1gsZUFBZSxFQUFFLElBQUk7TUFDckIsTUFBTSxFQUFFLElBQUk7TUFDWixLQUFLLEVBQUUsSUFBSSxHQUNaO0lBdkNMLEFBNEJFLE1BNUJJLENBNEJKLGNBQWMsQ0FhVjtNQUNBLFVBQVUsRUFBRSxPQUFPLENYM0NLLEtBQUssQ0FGZixvQ0FBd0M7TVc4Q3RELE9BQU8sRUFBRSxJQUFJLEdBTWQ7TUFqREwsQUE2Q00sTUE3Q0EsQ0E0QkosY0FBYyxBQWlCVCxNQUFNLENBQUM7UUFDTixLQUFLLEVYbENQLE9BQU87UVdtQ0wsT0FBTyxFQUFFLENBQUMsR0FDWDtFQWhEUCxBQXNERSxNQXRESSxBQXNESCxNQUFNLENBQUM7SUFDTixRQUFRLEVBQUUsUUFBUSxHQThMbkI7SUFyUEgsQUF5REksTUF6REUsQUFzREgsTUFBTSxDQUdMLGFBQWEsQ0FBQztNQUNaLE9BQU8sRUFBRSxLQUFLLEdBS2Y7TUEvREwsQUE0RE0sTUE1REEsQUFzREgsTUFBTSxDQUdMLGFBQWEsQ0FHWCxLQUFLLEFBQUEsV0FBVyxFQTVEdEIsTUFBTSxBQXNESCxNQUFNLENBR0wsYUFBYSxDSGtFakIsY0FBYyxDRi9GWCxXQUFXLEFFeUdaLFVBQVUsRUFWWixjQUFjLENHM0hkLE1BQU0sQUFzREgsTUFBTSxDQUdMLGFBQWEsQ0w3QmQsV0FBVyxBRXlHWixVQUFVLENHekVXO1FBQ2YsV0FBVyxFQUFFLEdBQUcsR0FDakI7SUE5RFAsQUFpRUksTUFqRUUsQUFzREgsTUFBTSxDQVdMLGNBQWMsQ0FBQztNQUNiLGdCQUFnQixFWDlDVixJQUFJO01XK0NWLE9BQU8sRUFBRSxJQUFJO01BQ2IsUUFBUSxFQUFFLFFBQVE7TUFDbEIsS0FBSyxFQUFFLENBQUM7TUFDUixLQUFLLEVBQUUsS0FBSztNQUNaLE9BQU8sRUFBRSxFQUFFLEdBbURaO01BMUhMLEFBeUVNLE1BekVBLEFBc0RILE1BQU0sQ0FXTCxjQUFjLENBUVosQ0FBQyxDQUFDO1FBQ0EsZUFBZSxFQUFFLElBQUksR0FDdEI7TUEzRVAsQUE2RU0sTUE3RUEsQUFzREgsTUFBTSxDQVdMLGNBQWMsQ0FZWixRQUFRLENBQUM7UUFDUCxNQUFNLEVBQUUsV0FBVyxHQWFwQjtRQTNGUCxBQWdGUSxNQWhGRixBQXNESCxNQUFNLENBV0wsY0FBYyxDQVlaLFFBQVEsQ0FHTixLQUFLLENBQUM7VUFDSixnQkFBZ0IsRVg3RGQsSUFBSTtVVzhETixNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQ1hsRVIsT0FBTztVV21FaEIsVUFBVSxFQUFFLFVBQVU7VUFDdEIsS0FBSyxFWHBFSSxPQUFPO1VXcUVoQixPQUFPLEVBQUUsS0FBSztVQUNkLE9BQU8sRUFBRSxHQUFHO1VBQ1osVUFBVSxFQUFFLE1BQU07VUFDbEIsY0FBYyxFQUFFLFNBQVM7VUFDekIsS0FBSyxFQUFFLElBQUksR0FDWjtNQTFGVCxBQStGTSxNQS9GQSxBQXNESCxNQUFNLENBV0wsY0FBYyxDQThCWixFQUFFLENBQUM7UUFDRCxVQUFVLEVBQUUsU0FBUyxDQUFDLEtBQWlCLENYbkczQixvQ0FBd0MsR1dvR3JEO01BakdQLEFBbUdNLE1BbkdBLEFBc0RILE1BQU0sQ0FXTCxjQUFjLENBa0NaLGdCQUFnQjtNQW5HdEIsTUFBTSxBQXNESCxNQUFNLENBV0wsY0FBYyxDQW1DWixrQkFBa0IsQ0FBQztRQUNqQixVQUFVLEVBQUUsT0FBTyxDWHRHRyxLQUFLLENBRmYsb0NBQXdDO1FXeUdwRCxNQUFNLEVBQUUsT0FBTztRQUNmLE9BQU8sRUFBRSxLQUFLO1FBQ2QsT0FBTyxFQUFFLEdBQUc7UUFDWixPQUFPLEVBQUUsS0FBSztRQUNkLGNBQWMsRUFBRSxJQUFJLEdBZXJCO1FBekhQLEFBNEdRLE1BNUdGLEFBc0RILE1BQU0sQ0FXTCxjQUFjLENBa0NaLGdCQUFnQixBQVNiLFNBQVM7UUE1R2xCLE1BQU0sQUFzREgsTUFBTSxDQVdMLGNBQWMsQ0FtQ1osa0JBQWtCLEFBUWYsU0FBUyxDQUFDO1VBQ1QsTUFBTSxFQUFFLE9BQU87VUFDZixPQUFPLEVBQUUsQ0FBQztVQUNWLGNBQWMsRUFBRSxJQUFJLEdBU3JCO1VBeEhULEFBNEdRLE1BNUdGLEFBc0RILE1BQU0sQ0FXTCxjQUFjLENBa0NaLGdCQUFnQixBQVNiLFNBQVM7VUE1R2xCLE1BQU0sQUFzREgsTUFBTSxDQVdMLGNBQWMsQ0FtQ1osa0JBQWtCLEFBUWYsU0FBUyxDQUtOO1lBQ0EsbUJBQW1CLEVBQUUseUJBQXlCLEdBSy9DO1lBdkhYLEFBb0hZLE1BcEhOLEFBc0RILE1BQU0sQ0FXTCxjQUFjLENBa0NaLGdCQUFnQixBQVNiLFNBQVMsQUFRTCxNQUFNO1lBcEhuQixNQUFNLEFBc0RILE1BQU0sQ0FXTCxjQUFjLENBbUNaLGtCQUFrQixBQVFmLFNBQVMsQUFRTCxNQUFNLENBQUM7Y0FDTixnQkFBZ0IsRVh6R3hCLE9BQU8sR1cwR0E7SUF0SGIsQUE0SEksTUE1SEUsQUFzREgsTUFBTSxDQXNFTCxhQUFhLENBQUM7TUFDWixTQUFTLEVBQUUsT0FBTztNQUNsQixVQUFVLEVBQUUsS0FBSztNQUNqQixVQUFVLEVBQUUsTUFBTSxHQXVCbkI7TUF0SkwsQUFpSU0sTUFqSUEsQUFzREgsTUFBTSxDQXNFTCxhQUFhLEdBS1QsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUNSLFVBQVUsRUFBRSxHQUFHLENBQUMsS0FBSyxDWGpIaEIsT0FBTyxHV2tIYjtNQW5JUCxBQXFJTSxNQXJJQSxBQXNESCxNQUFNLENBc0VMLGFBQWEsQ0FTWCxDQUFDLENBQUM7UUFDQSxLQUFLLEVYckhBLE9BQU87UVdzSFosT0FBTyxFQUFFLEtBQUs7UUFDZCxPQUFPLEVBQUUsTUFBTSxHQVVoQjtRQWxKUCxBQXFJTSxNQXJJQSxBQXNESCxNQUFNLENBc0VMLGFBQWEsQ0FTWCxDQUFDLENBS0c7VUFDQSxVQUFVLEVBQUUsS0FBSyxDWDVJRyxLQUFLLENBRmYsb0NBQXdDLEdXK0luRDtRQTVJVCxBQThJUSxNQTlJRixBQXNESCxNQUFNLENBc0VMLGFBQWEsQ0FTWCxDQUFDLEFBU0UsTUFBTSxFQTlJZixNQUFNLEFBc0RILE1BQU0sQ0FzRUwsYUFBYSxDQVNYLENBQUMsQUFVRSxVQUFVLENBQUM7VUFDVixLQUFLLEVBQUUsSUFBSSxHQUNaO01BakpULEFBbUpNLE1BbkpBLEFBc0RILE1BQU0sQ0FzRUwsYUFBYSxDQXVCWCxPQUFPLENBQUM7UUFDTixLQUFLLEVBQUUsS0FBSyxHQUNiO0lBckpQLEFBMkpNLE1BM0pBLEFBc0RILE1BQU0sQUFvR0osWUFBWSxDQUNYLGNBQWMsQ0FBQztNQUNiLGdCQUFnQixFWGhKbEIsT0FBTztNV2lKTCxLQUFLLEVBQUUsSUFBSTtNQUNYLE1BQU0sRUFBRSxJQUFJO01BQ1osVUFBVSxFQUFFLE1BQU0sR0FPbkI7TUF0S1AsQUFpS1EsTUFqS0YsQUFzREgsTUFBTSxBQW9HSixZQUFZLENBQ1gsY0FBYyxDQU1aLEtBQUssQUFBQSxRQUFRLEVBaktyQixNQUFNLEFBc0RILE1BQU0sQUFvR0osWUFBWSxDQUNYLGNBQWMsQ0hoQ3BCLGNBQWMsQ0Y3QlgsUUFBUSxBRXVDVCxVQUFVLEVBVlosY0FBYyxDRzNIZCxNQUFNLEFBc0RILE1BQU0sQUFvR0osWUFBWSxDQUNYLGNBQWMsQ0w3RGpCLFFBQVEsQUV1Q1QsVUFBVSxDRzRCVTtRQUNaLGVBQWUsRUFBRSxJQUFJO1FBQ3JCLE1BQU0sRUFBRSxJQUFJO1FBQ1osS0FBSyxFQUFFLElBQUksR0FDWjtJQXJLVCxBQXdLTSxNQXhLQSxBQXNESCxNQUFNLEFBb0dKLFlBQVksQ0FjWCxhQUFhLENBQUU7TUFDYixVQUFVLEVBQUUsSUFBSSxHQUNqQjtJQTFLUCxBQWdMTSxNQWhMQSxBQXNESCxNQUFNLEFBeUhKLE1BQU0sQ0FDTCxhQUFhLENBQUM7TUFDWixnQkFBZ0IsRVg3SlosSUFBSTtNVzhKUixLQUFLLEVBQUUsSUFBSSxHQUtaO01BdkxQLEFBb0xRLE1BcExGLEFBc0RILE1BQU0sQUF5SEosTUFBTSxDQUNMLGFBQWEsQ0FJWCxLQUFLLEFBQUEsV0FBVyxFQXBMeEIsTUFBTSxBQXNESCxNQUFNLEFBeUhKLE1BQU0sQ0FDTCxhQUFhLENIckRuQixjQUFjLENGL0ZYLFdBQVcsQUV5R1osVUFBVSxFQVZaLGNBQWMsQ0czSGQsTUFBTSxBQXNESCxNQUFNLEFBeUhKLE1BQU0sQ0FDTCxhQUFhLENMcEpoQixXQUFXLEFFeUdaLFVBQVUsQ0crQ2E7UUFDZixnQkFBZ0IsRUFBRSx5REFBeUQsR0FDNUU7SUF0TFQsQUF5TE0sTUF6TEEsQUFzREgsTUFBTSxBQXlISixNQUFNLENBVUwsY0FBYyxDQUFDO01BQ2IsT0FBTyxFQUFFLEtBQUssR0FDZjtJQTNMUCxBQWlNTSxNQWpNQSxBQXNESCxNQUFNLEFBMElKLGFBQWEsQ0FDWixjQUFjLENBQUM7TUFDYixPQUFPLEVBQUUsV0FBVyxHQUNyQjtJQW5NUCxBQXFNTSxNQXJNQSxBQXNESCxNQUFNLEFBMElKLGFBQWEsQ0FLWixjQUFjLENBQUM7TUFDYixVQUFVLEVBQUUsTUFBTTtNQUNsQixLQUFLLEVBQUUsS0FBSyxHQUNiO0lBeE1QLEFBME1NLE1BMU1BLEFBc0RILE1BQU0sQUEwSUosYUFBYSxDQVVaLE1BQU0sQ0FBQztNQUNMLE9BQU8sRUFBRSxJQUFJLEdBWWQ7TUF2TlAsQUE2TVEsTUE3TUYsQUFzREgsTUFBTSxBQTBJSixhQUFhLENBVVosTUFBTSxHQUdBLE1BQU0sQ0FBQztRQUNULFVBQVUsRUFBRSxHQUFHLENBQUMsS0FBSyxDWDlMWixPQUFPLEdXK0xqQjtNQS9NVCxBQWlOUSxNQWpORixBQXNESCxNQUFNLEFBMElKLGFBQWEsQ0FVWixNQUFNLENBT0osTUFBTSxDQUFDO1FBQ0wsS0FBSyxFQUFFLElBQUk7UUFDWCxPQUFPLEVBQUUsS0FBSztRQUNkLFNBQVMsRUFBRSxNQUFNO1FBQ2pCLGFBQWEsRUFBRSxLQUFLLEdBQ3JCO0lBdE5ULEFBeU5NLE1Bek5BLEFBc0RILE1BQU0sQUEwSUosYUFBYSxDQXlCWixZQUFZLENBQUM7TUFFWCxjQUFjLEVBQUUsU0FBUyxHQXdCMUI7TUFuUFAsQTFGZEUsTTBGY0ksQUFzREgsTUFBTSxBQTBJSixhQUFhLENBeUJaLFlBQVksQTFGdk9mLE9BQU8sQ0FBQztRQUNQLEtBQUssRUFBRSxJQUFJO1FBQ1gsT0FBTyxFQUFFLEVBQUU7UUFDWCxPQUFPLEVBQUUsS0FBSyxHQUNmO00wRlVILEFBNk5RLE1BN05GLEFBc0RILE1BQU0sQUEwSUosYUFBYSxDQXlCWixZQUFZLENBSVYsT0FBTyxDQUFDO1E3RDNPWixLQUFRLEVvQndJRSxTQUFnQztRcEJ4STFDLEtBQVEsRUlBZ0QsSUFBSTtRSkE1RCxZQUFRLEVxQnFGRSxRQUFZO1FyQnJGdEIsYUFBUSxFcUJxRkUsUUFBWTtRd0N3SmhCLGdCQUFnQixFQUFFLElBQUk7UUFDdEIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxLQUFLLENYNU1mLElBQUk7UVc2TU4sS0FBSyxFWDdNSCxJQUFJO1FXOE1OLE9BQU8sRUFBRSxLQUFLO1FBQ2QsY0FBYyxFQUFFLEdBQUc7UUFDbkIsV0FBVyxFQUFFLEdBQUc7UUFDaEIsbUJBQW1CLEVBQUUsdUJBQXVCO1FBQzVDLG1CQUFtQixFWHZPQyxLQUFLO1FXd096QiwwQkFBMEIsRVgxT2hCLG9DQUF3QyxHV3FQbkQ7UUFsUFQsQUF5T1UsTUF6T0osQUFzREgsTUFBTSxBQTBJSixhQUFhLENBeUJaLFlBQVksQ0FJVixPQUFPLEFBWUosVUFBVSxDQUFDO1VBQ1YsZ0JBQWdCLEVBQUUsSUFBSSxHQUN2QjtRQTNPWCxBQTZPVSxNQTdPSixBQXNESCxNQUFNLEFBMElKLGFBQWEsQ0F5QlosWUFBWSxDQUlWLE9BQU8sQUFnQkosTUFBTSxBQUFBLElBQUssQ0FBQSxVQUFVLEdBN09oQyxNQUFNLEFBc0RILE1BQU0sQUEwSUosYUFBYSxDQXlCWixZQUFZLENBSVYsT0FBTyxBQWlCSixVQUFVLENBQUM7VUFDVixnQkFBZ0IsRUFBRSxJQUFJO1VBQ3RCLEtBQUssRVhwT1gsT0FBTyxHV3FPRjtFQWpQWCxBQTBQSSxNQTFQRSxBQXlQSCxNQUFNLENBQ0wsYUFBYTtFQTFQakIsTUFBTSxBQXlQSCxNQUFNLENBRUwsRUFBRSxDQUFDO0lBQ0QsS0FBSyxFQUFFLElBQUksR0FDWjtFQTdQTCxBQStQSSxNQS9QRSxBQXlQSCxNQUFNLENBTUwsYUFBYSxDQUFDO0lBQ1osTUFBTSxFQUFFLGFBQWEsR0FDdEI7RUFqUUwsQUFtUUksTUFuUUUsQUF5UEgsTUFBTSxDQVVMLEVBQUUsQ0FBQztJQUNELEtBQUssRUFBRSxJQUFJLEdBQ1o7RUFyUUwsQUF1UUksTUF2UUUsQUF5UEgsTUFBTSxDQWNMLENBQUMsQ0FBQztJQUNBLE9BQU8sRUFBRSxPQUFPLEdBQ2pCOztBQU1MLEFBQUEsaUJBQWlCLENBQUM7RUFFaEIsS0FBSyxFWGhRTSxPQUFPO0VXaVFsQixTQUFTLEVBQUUsT0FBTztFQUNsQixPQUFPLEVBQUUsSUFBSTtFQUNiLFFBQVEsRUFBRSxRQUFRLEdBbUNuQjtFQXhDRCxBMUY3UkUsaUIwRjZSZSxBMUY3UmQsT0FBTyxDQUFDO0lBQ1AsS0FBSyxFQUFFLElBQUk7SUFDWCxPQUFPLEVBQUUsRUFBRTtJQUNYLE9BQU8sRUFBRSxLQUFLLEdBQ2Y7RTBGeVJILEFBT0UsaUJBUGUsQ0FPZixFQUFFLENBQUM7SUFDRCxPQUFPLEVBQUUsS0FBSztJQUNkLEtBQUssRUFBRSxJQUFJLEdBUVo7SUFqQkgsQUFZTSxpQkFaVyxDQU9mLEVBQUUsQUFJQyxZQUFZLENBQ1gsSUFBSTtJQVpWLGlCQUFpQixDQU9mLEVBQUUsQUFJQyxZQUFZLENBRVgsQ0FBQyxDQUFDO01BQ0EsWUFBWSxFQUFFLENBQUMsR0FDaEI7RUFmUCxBQW1CRSxpQkFuQmUsQ0FtQmYsSUFBSTtFQW5CTixpQkFBaUIsQ0FvQmYsQ0FBQyxDQUFDO0lBQ0EsT0FBTyxFQUFFLEtBQUs7SUFDZCxPQUFPLEVBQUUsR0FBRyxHQUNiO0VBdkJILEFBeUJFLGlCQXpCZSxDQXlCZixDQUFDLENBQUM7SUFDQSxlQUFlLEVBQUUsSUFBSTtJQUNyQixLQUFLLEVYdlJLLElBQUksR1c0UmY7SUFoQ0gsQUE2QkksaUJBN0JhLENBeUJmLENBQUMsQUFJRSxNQUFNLENBQUM7TUFDTixLQUFLLEVYalNMLE9BQU8sR1drU1I7RWhDL1FELE1BQU0sRUFBRyxTQUFTLEVBQUUsS0FBSztJZ0NnUDdCLEFBbUJFLGlCQW5CZSxDQW1CZixJQUFJO0lBbkJOLGlCQUFpQixDQW9CZixDQUFDLENBZ0JHO01BQ0EsT0FBTyxFQUFFLEdBQUcsR0FDYjs7QUFNTCxBQUFBLE9BQU8sQUFBQSxTQUFTLENBQUM7RUFDZixLQUFLLEVBQUUsSUFBSTtFQUNYLEtBQUssRUFBRSxJQUFJLEdBOENaO0VBaERELEFBSUUsT0FKSyxBQUFBLFNBQVMsQ0FJZCxNQUFNLENBQUM7SUFDTCxPQUFPLEVBQUUsS0FBSztJQUNkLGFBQWEsRUFBRSxJQUFJO0lBQ25CLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLFNBQVMsRUFBRSxPQUFPO0lBQ2xCLFVBQVUsRUFBRSxNQUFNLEdBNEJuQjtJQXJDSCxBQVdJLE9BWEcsQUFBQSxTQUFTLENBSWQsTUFBTSxDQU9KLEVBQUUsQ0FBQztNQUNELE9BQU8sRUFBRSxZQUFZO01BQ3JCLE9BQU8sRUFBRSxRQUFRLEdBQ2xCO0lBZEwsQUFnQkksT0FoQkcsQUFBQSxTQUFTLENBSWQsTUFBTSxDQVlKLEVBQUUsQ0FBQztNQUNELEtBQUssRUFBRSxJQUFJLEdBQ1o7SUFsQkwsQUFvQkksT0FwQkcsQUFBQSxTQUFTLENBSWQsTUFBTSxDQWdCSixFQUFFLEdBQUcsRUFBRSxDQUFDO01BQ04sV0FBVyxFQUFFLEdBQUcsQ0FBQyxLQUFLLENYM1RYLE9BQU8sR1c0VG5CO0lBdEJMLEFBd0JJLE9BeEJHLEFBQUEsU0FBUyxDQUlkLE1BQU0sQ0FvQkosQ0FBQyxDQUFDO01BQ0EsY0FBYyxFQUFFLFNBQVM7TUFDekIsT0FBTyxFQUFFLFlBQVk7TUFDckIsZUFBZSxFQUFFLElBQUk7TUFDckIsS0FBSyxFWGxVTSxPQUFPO01XbVVsQixPQUFPLEVBQUUsT0FBTyxHQUNqQjtJQTlCTCxBQWdDSSxPQWhDRyxBQUFBLFNBQVMsQ0FJZCxNQUFNLENBNEJGLENBQUMsQUFBQSxNQUFNO0lBaENiLE9BQU8sQUFBQSxTQUFTLENBSWQsTUFBTSxDQTZCSixDQUFDLEFBQUEsVUFBVSxDQUFDO01BQ1YsS0FBSyxFWGpWTCxPQUFPO01Xa1ZQLGVBQWUsRUFBRSxZQUFZLEdBQzlCO0VoQ2hVRCxNQUFNLEVBQUcsU0FBUyxFQUFFLEtBQUs7SWdDNFI3QixBQUFBLE9BQU8sQUFBQSxTQUFTLENBQUM7TUF3Q2IsS0FBSyxFQUFFLElBQUk7TUFDWCxLQUFLLEVBQUUsS0FBSyxHQU9mO01BaERELEFBV0ksT0FYRyxBQUFBLFNBQVMsQ0FJZCxNQUFNLENBT0osRUFBRSxDQWdDUTtRQUNSLE9BQU8sRUFBRSxZQUFZO1FBQ3JCLE9BQU8sRUFBRSxRQUFRLEdBQ2xCOztBQ2pZTCxBQUFBLE9BQU8sQ0FBQztFQUNOLGdCQUFnQixFWm9DVCxPQUFPO0VZbkNkLFFBQVEsRUFBRSxRQUFRO0VBMEVsQixzQ0FBc0M7RUE4Q3RDOztLQUVHLEVBNkdKO0VBek9ELEFBSUUsT0FKSyxBQUlKLGVBQWUsQ0FBQztJQUNmLGNBQWMsRUFWTSxNQUFNLEdBVzNCO0VBTkgsQUFRRSxPQVJLLENBUUwsa0JBQWtCLENBQUM7SUFDakIsUUFBUSxFQUFFLFFBQVE7SUFDbEIsS0FBSyxFQUFFLElBQUksR0FDWjtFQVhILEFBYUUsT0FiSyxDQWFMLDBCQUEwQixDQUFDO0lBQ3pCLEtBQUssRUFBRSxJQUFJO0lBQ1gsTUFBTSxFQUFFLElBQUk7SUFDWixlQUFlLEVBQUUsU0FBUztJQUMxQixPQUFPLEVBQUUsQ0FBQztJQUNWLFVBQVUsRUFBRSxPQUFPLENBQUMsS0FBOEIsQ0FBQyxJQUFJLEdBbUJ4RDtJQXJDSCxBQW9CSSxPQXBCRyxDQWFMLDBCQUEwQixDQU94QixHQUFHLENBQUM7TUFDRixPQUFPLEVBQUUsSUFBSSxHQUNkO0lBdEJMLEFBd0JJLE9BeEJHLENBYUwsMEJBQTBCLEFBV3ZCLFNBQVMsQ0FBQztNQUNULE9BQU8sRUFBRSxDQUFDLEdBQ1g7SUExQkwsQUE0QkksT0E1QkcsQ0FhTCwwQkFBMEIsQUFldkIsU0FBUyxDQUFDO01BQ1QsSUFBSSxFQUFFLElBQUk7TUFDVixVQUFVLEVBQUUscUNBQXFDLEdBQ2xEO0lBL0JMLEFBaUNJLE9BakNHLENBYUwsMEJBQTBCLEFBb0J2QixLQUFLLENBQUM7TUFDTCxLQUFLLEVBQUUsSUFBSTtNQUNYLFVBQVUsRUFBRSxzQ0FBc0MsR0FDbkQ7RUFwQ0wsQUF1Q0UsT0F2Q0ssQ0F1Q0wsbUJBQW1CLENBQUM7SUFDbEIsTUFBTSxFQUFFLEtBQUssR0EwQmQ7SUFsRUgsQUEwQ0ksT0ExQ0csQ0F1Q0wsbUJBQW1CLENBR2pCLElBQUksQ0FBQztNQUNILE9BQU8sRUFBRSxDQUFDO01BQ1YsTUFBTSxFQUFFLEtBQUs7TUFDYixLQUFLLEVBQUUsSUFBSTtNQUNYLE1BQU0sRUFBRSxJQUFJO01BQ1osZ0JBQWdCLEVBQUUsT0FBTztNQUN6QixNQUFNLEVBQUUsaUJBQWlCO01BQ3pCLFVBQVUsRUFBRSxnRUFBZ0UsR0FnQjdFO01BakVMLEFBbURNLE9BbkRDLENBdUNMLG1CQUFtQixDQUdqQixJQUFJLEFBU0QsTUFBTSxDQUFDO1FBQ04sZ0JBQWdCLEVBQUUsT0FBTztRQUN6QixZQUFZLEVBQUUsT0FBTyxHQUN0QjtNQXREUCxBQXdETSxPQXhEQyxDQXVDTCxtQkFBbUIsQ0FHakIsSUFBSSxBQWNELFlBQVksQ0FBQztRQUNaLFlBQVksRUFBRSxPQUFPO1FBQ3JCLGdCQUFnQixFQUFFLE9BQU8sR0FNMUI7UUFoRVAsQUE0RFEsT0E1REQsQ0F1Q0wsbUJBQW1CLENBR2pCLElBQUksQUFjRCxZQUFZLEFBSVYsTUFBTSxDQUFDO1VBQ04sZ0JBQWdCLEVBQUUsT0FBTztVQUN6QixZQUFZLEVBQUUsT0FBTyxHQUN0QjtFQS9EVCxBQXFFSSxPQXJFRyxBQW9FSixtQkFBbUIsQ0FDbEIsMEJBQTBCO0VBckU5QixPQUFPLEFBb0VKLG1CQUFtQixDQUVsQixtQkFBbUIsQ0FBQztJQUNsQixPQUFPLEVBQUUsSUFBSSxHQUNkO0VBeEVMLEFBNkVFLE9BN0VLLENBNkVMLE9BQU8sQ0FBQztJQUNOLEtBQUssRUFBRSxJQUFJO0lBQ1gsTUFBTSxFQUFFLElBQUksR0FDYjtFQWhGSCxBQWtGRSxPQWxGSyxBQWtGSixXQUFXLENBQUM7SUFDWCxVQUFVLEVBQUUsTUFBTTtJQUNsQixjQUFjLEVBQUUsSUFBSTtJQUNwQixRQUFRLEVBQUUsS0FBSztJQUNmLEdBQUcsRUFBRSxDQUFDO0lBQ04sSUFBSSxFQUFFLENBQUM7SUFDUCxLQUFLLEVBQUUsQ0FBQztJQUNSLE1BQU0sRUFBRSxLQUFzRDtJQUM5RCxPQUFPLEVBQUUsS0FBSyxHQUtmO0lBSkMsQUFBQSxhQUFhLENBM0ZqQixPQUFPLEFBa0ZKLFdBQVcsQ0FTTTtNQUNkLFVBQVUsRUFBRSxPQUFPO01BQ25CLGNBQWMsRUFBRSxJQUFJLEdBQ3JCO0VBOUZMLEFBaUdFLE9BakdLLENBaUdMLE9BQU87RUFqR1QsT0FBTyxDQWtHTCxPQUFPLENBQUM7SUFDTixRQUFRLEVBQUUsUUFBUTtJQUNsQixJQUFJLEVBQUUsQ0FBQztJQUNQLEtBQUssRUFBRSxDQUFDO0lBQ1IsTUFBTSxFQUFFLENBQUMsR0FRVjtJQU5DLEFBQUEsbUJBQW1CLENBeEd2QixPQUFPLENBaUdMLE9BQU87SUFRTCwyQkFBMkIsQ0F6Ry9CLE9BQU8sQ0FpR0wsT0FBTztJQVNMLG9CQUFvQixDQTFHeEIsT0FBTyxDQWlHTCxPQUFPO0lBVUwsa0JBQWtCLENBM0d0QixPQUFPLENBaUdMLE9BQU8sRUFPTCxtQkFBbUI7SUF4R3ZCLE9BQU8sQ0FrR0wsT0FBTztJQU9MLDJCQUEyQjtJQXpHL0IsT0FBTyxDQWtHTCxPQUFPO0lBUUwsb0JBQW9CO0lBMUd4QixPQUFPLENBa0dMLE9BQU87SUFTTCxrQkFBa0I7SUEzR3RCLE9BQU8sQ0FrR0wsT0FBTyxDQVNnQjtNQUNuQixNQUFNLEVGL0dJLElBQUksR0VnSGY7RUE3R0wsQUFnSEUsT0FoSEssQ0FnSEwsT0FBTyxDQUFDO0lBQ04saUJBQWlCLEVBQUUsU0FBUztJQUM1QixtQkFBbUIsRUFBRSxPQUFPO0lBQzVCLGVBQWUsRUFBRSxLQUFLLEdBQ3ZCO0VBcEhILEFBc0hFLE9BdEhLLENBc0hMLE9BQU8sQ0FBQztJQUNOLEdBQUcsRUFBRSxDQUFDLEdBQ1A7RUF4SEgsQUE2SEUsT0E3SEssQ0E2SEwsZ0JBQWdCLENBQUM7SUFFZixRQUFRLEVBQUUsUUFBUTtJQUNsQixjQUFjLEVBcklNLE1BQU07SUFzSTFCLE9BQU8sRUFBRSxLQUFLO0lBQ2QsZUFBZSxFQUFFLElBQUksR0FDdEI7RUFuSUgsQUF1SU0sT0F2SUMsQ0FxSUwsT0FBTyxDQUNMLGdCQUFnQixDQUNkLE1BQU0sQ0FBQztJQUNMLFVBQVUsRUFBRSxTQUFTLENaakhDLEtBQUssQ1lpSHdCLElBQUksR0FDeEQ7RUF6SVAsQUE2SUUsT0E3SUssQUE2SUosUUFBUSxDQUFDO0lBQ1IsTUFBTSxFQXRKZSxLQUFLO0lBdUoxQixjQUFjLEVBQUUsQ0FBQztJQUNqQixRQUFRLEVBQUUsTUFBTSxHQWNqQjtJQTlKSCxBQWtKSSxPQWxKRyxBQTZJSixRQUFRLENBS1AsZ0JBQWdCLENBQUM7TUFDZixNQUFNLEVBM0phLEtBQUs7TUE0SnhCLGNBQWMsRUFBRSxDQUFDLEdBQ2xCO0lBckpMLEFBdUpJLE9BdkpHLEFBNklKLFFBQVEsQ0FVUCxPQUFPLENBQUM7TUFDTixPQUFPLEVBQUUsSUFBSSxHQUNkO0lBekpMLEFBMkpJLE9BM0pHLEFBNklKLFFBQVEsQ0FjUCxPQUFPLEFBQUEsVUFBVyxDQUFBLENBQUMsRUFBRTtNQUNuQixPQUFPLEVBQUUsS0FBSyxHQUNmO0VBN0pMLEFBZ0tFLE9BaEtLLENBZ0tMLFVBQVUsQ0FBQztJOUR0SlQsS0FBUSxFd0JaYyxJQUFJO0l4QlkxQixLQUFRLEVvQnlIc0QsSUFBSTtJcEJ6SGxFLEtBQVEsRUlBZ0QsSUFBSTtJSkE1RCxZQUFRLEVxQnFGRSxRQUFZO0lyQnJGdEIsYUFBUSxFcUJxRkUsUUFBWTtJeUNtRXRCLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLE1BQU0sRUFBRSxDQUFDO0lBQ1QsSUFBSSxFQUFFLENBQUMsR0FDUjtFQXJLSCxBQXVLRSxPQXZLSyxDQXVLTCxNQUFNLENBQUM7SUFFTCxNQUFNLEVBQUUsQ0FBQztJQUNULFdBQVcsRUE1S2lCLElBQUk7SUE2S2hDLEtBQUssRUFBRSxJQUFJO0lBQ1gsU0FBUyxFQUFFLElBQUk7SUFDZixjQUFjLEVBQUUsU0FBUztJQUN6QixXQUFXLEVBQUUsTUFBTTtJQUNuQixRQUFRLEVBQUUsTUFBTTtJQUNoQixhQUFhLEVBQUUsUUFBUSxHQVV4QjtJQTFMSCxBQWtMSSxPQWxMRyxDQXVLTCxNQUFNLENBV0osQ0FBQyxDQUFDO01BQ0EsS0FBSyxFQUFFLElBQUk7TUFDWCxlQUFlLEVBQUUsSUFBSSxHQUN0QjtJakM5SEQsTUFBTSxFQUFHLFNBQVMsRUFBRSxLQUFLO01pQ3ZEN0IsQUF1S0UsT0F2S0ssQ0F1S0wsTUFBTSxDQUFDO1FBaUJILFNBQVMsRUFBRSxJQUFJLEdBRWxCO0VBMUxILEFBNkxJLE9BN0xHLEFBNExKLFFBQVEsQ0FDUCxnQkFBZ0IsQ0FBQztJQUNmLFNBQVMsRUFBRSxJQUFJO0lBQ2YsS0FBSyxFQUFFLElBQUksR0FDWjtFQWhNTCxBQWtNSSxPQWxNRyxBQTRMSixRQUFRLENBTVAsVUFBVSxDQUFDO0lBQ1QsTUFBTSxFQTNNYSxLQUFLLEdBNE16QjtFQXBNTCxBQXNNSSxPQXRNRyxBQTRMSixRQUFRLENBVVAsTUFBTSxDQUFDO0lBRUwsTUFBTSxFQUFFLENBQUM7SUFDVCxTQUFTLEVBQUUsT0FBTztJQUNsQixJQUFJLEVBQUUsQ0FBQztJQUNQLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLE9BQU8sRUFBRSxVQUFVO0lBQ25CLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLEtBQUssRUFBRSxDQUFDO0lBQ1IsVUFBVSxFQUFFLE1BQU07SUFDbEIsV0FBVyxFQUFFLE1BQU0sR0FDcEI7RWpDMUpELE1BQU0sRUFBRyxTQUFTLEVBQUUsS0FBSztJaUN2RDdCLEFBc01JLE9BdE1HLEFBNExKLFFBQVEsQ0FVUCxNQUFNLENBY0c7TUFDTCxTQUFTLEVBQUUsTUFBTSxHQUNsQjtFQXROUCxBQTZOSSxPQTdORyxBQTROSixRQUFRLENBQ1AsVUFBVSxDQUFDO0lBQ1QsTUFBTSxFQWhPb0IsSUFBSSxHQWlPL0I7RUEvTkwsQUFpT0ksT0FqT0csQUE0TkosUUFBUSxBQUtOLFFBQVEsQ0FBQztJQUNSLE1BQU0sRUFBRSxLQUFzRCxHQUsvRDtJQXZPTCxBQW9PTSxPQXBPQyxBQTROSixRQUFRLEFBS04sUUFBUSxDQUdQLGdCQUFnQixDQUFDO01BQ2YsTUFBTSxFQXZPa0IsSUFBSSxHQXdPN0I7O0FDbk9QLEFBRUUsZ0JBRmMsQ0FFZCxJQUFJLEVRZE4sZUFBZSxDUmNiLElBQUksRWVkTixlQUFlLENmY2IsSUFBSSxFZUdOLFdBQVcsQ2ZIVCxJQUFJO0FBRE4sYUFBYSxDQUNYLElBQUksQ0FBQztFQUNILE1BQU0sRUFiSSxJQUFJLENBYU8sQ0FBQyxHQUN2Qjs7QWxDZ0RDLE1BQU0sRUFBRyxTQUFTLEVBQUUsS0FBSztFa0M3QzdCLEFBSU0sZ0JBSlUsQ0FDZCxTQUFTLENBR0wsSUFBSSxBQUFBLFlBQVksRVF2QnRCLGVBQWUsQ1JvQmIsU0FBUyxDQUdMLElBQUksQUFBQSxZQUFZLEVldkJ0QixlQUFlLENmb0JiLFNBQVMsQ0FHTCxJQUFJLEFBQUEsWUFBWSxFZU50QixXQUFXLENmR1QsU0FBUyxDQUdMLElBQUksQUFBQSxZQUFZO0VBSnRCLGdCQUFnQixDQUVkLFNBQVMsQ0FFTCxJQUFJLEFBQUEsWUFBWTtFUXZCdEIsZUFBZSxDUnFCYixTQUFTLENBRUwsSUFBSSxBQUFBLFlBQVk7RWV2QnRCLGVBQWUsQ2ZxQmIsU0FBUyxDQUVMLElBQUksQUFBQSxZQUFZO0VlTnRCLFdBQVcsQ2ZJVCxTQUFTLENBRUwsSUFBSSxBQUFBLFlBQVksQ0FBQztJQUNmLFVBQVUsRUFBRSxDQUFDLEdBQ2Q7O0FBS1AsQTVGWEUsTTRGV0ksQTVGWEgsT0FBTyxDQUFDO0VBQ1AsS0FBSyxFQUFFLElBQUk7RUFDWCxPQUFPLEVBQUUsRUFBRTtFQUNYLE9BQU8sRUFBRSxLQUFLLEdBQ2Y7O0E0RldILEFBQUEsSUFBSSxDQUFDO0VBd0xIOzs7O0lBSUUsRUEycEJIO0VBdjFCRCxBQUdFLElBSEUsQ0FHRixVQUFVLENBQUM7SUFDVCxVQUFVLEViY0EsSUFBSTtJYWJkLEtBQUssRUFBRSxJQUFJO0lBQ1gsV0FBVyxFQUFFLE1BQU07SUFDbkIsT0FBTyxFQUFFLElBQUk7SUFDYixRQUFRLEVBQUUsUUFBUTtJQUNsQixVQUFVLEVBQUUsTUFBTSxHQXVCbkI7SUFoQ0gsQUFXSSxJQVhBLENBR0YsVUFBVSxDQVFSLE1BQU0sQ0FBQztNQUNMLFNBQVMsRUFBRSxPQUFPO01BQ2xCLGNBQWMsRUFBRSxNQUFNO01BQ3RCLGNBQWMsRUFBRSxTQUFTLEdBQzFCO0lBZkwsQUFpQk0sSUFqQkYsQ0FHRixVQUFVLENBY04sYUFBYSxDQUFDO01BQ1osT0FBTyxFQUFFLEtBQUs7TUFDZCxLQUFLLEVBQUUsS0FBSztNQUNaLFVBQVUsRUFBRSxHQUFHO01BQ2YsTUFBTSxFQUFFLE9BQU8sR0FDaEI7SUF0QlAsQUF3QkksSUF4QkEsQ0FHRixVQUFVLENBcUJSLElBQUksQ0FBQztNQUNILEtBQUssRUFBRSxJQUFJLEdBQ1o7SUExQkwsQUE0QkksSUE1QkEsQ0FHRixVQUFVLENBeUJSLFFBQVEsQ0FBQztNQUNQLEtBQUssRUFBRSxLQUFLO01BQ1osZUFBZSxFQUFFLElBQUksR0FDdEI7RUEvQkwsQUFvQ0UsSUFwQ0UsQ0FvQ0YsT0FBTyxDQUFDO0lBQ04sUUFBUSxFQUFFLFFBQVEsR0FVbkI7SUEvQ0gsQUF1Q0ksSUF2Q0EsQ0FvQ0YsT0FBTyxDQUdMLENBQUM7SUF2Q0wsSUFBSSxDQW9DRixPQUFPLENBSUwsR0FBRyxDQUFDO01BQ0YsT0FBTyxFQUFFLEtBQUssR0FDZjtJQTFDTCxBQTRDSSxJQTVDQSxDQW9DRixPQUFPLENBUUwsR0FBRyxDQUFDO01BQ0YsS0FBSyxFQUFFLElBQUksR0FDWjtFQTlDTCxBQW1ERSxJQW5ERSxDQW1ERixNQUFNLENBQUM7SUFDTCxTQUFTLEVBQUUsc0JBQXNCO0lBRWpDLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLEdBQUcsRUFBRSxDQUFDO0lBQ04sSUFBSSxFQUFFLENBQUM7SUFDUCxPQUFPLEVBQUUsWUFBWTtJQUNyQixVQUFVLEViaERMLE9BQU87SWFpRFosS0FBSyxFQUFFLElBQUk7SUFDWCxPQUFPLEVBQUUsR0FBRztJQUNaLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLGNBQWMsRUFBRSxNQUFNO0lBQ3RCLGNBQWMsRUFBRSxTQUFTO0lBQ3pCLE9BQU8sRUFBRSxFQUFFLEdBYVo7SUE3RUgsQUFrRUksSUFsRUEsQ0FtREYsTUFBTSxBQWVILE1BQU0sQ0FBQztNQUNOLE9BQU8sRUFBRSxHQUFHO01BQ1osUUFBUSxFQUFFLFFBQVE7TUFDbEIsSUFBSSxFQUFFLENBQUM7TUFDUCxHQUFHLEVBQUUsSUFBSTtNQUNULEtBQUssRUFBRSxHQUFHO01BQ1YsTUFBTSxFQUFFLEdBQUc7TUFDWCxZQUFZLEVBQUUsS0FBSztNQUNuQixZQUFZLEVBQUUsYUFBYTtNQUMzQixZQUFZLEVBQUUsMkNBQTJDLEdBQzFEO0VBNUVMLEFBaUZFLElBakZFLENBaUZGLE9BQU87RUFqRlQsSUFBSSxDQWtGRixVQUFVLENBQUM7SVR2R1gsUUFBUSxFQUFFLFFBQVE7SUFDbEIsV0FBVyxFQVRZLENBQUM7SUFVeEIsY0FBYyxFQVRZLE1BQU07SUFVaEMsTUFBTSxFQUFFLENBQUM7SUFDVCxhQUFhLEVBVlksSUFBSTtJQVc3QixRQUFRLEVBQUUsTUFBTTtJU29HZCxhQUFhLEVBQUUsQ0FBQyxHQUNqQjtJQXJGSCxBVGRFLElTY0UsQ0FpRkYsT0FBTyxBVC9GTixXQUFXO0lTY2QsSUFBSSxDQWtGRixVQUFVLEFUaEdULFdBQVcsQ0FBQztNQUFFLGNBQWMsRUFWUSxNQUFNLEdBVTZCO0lTYzFFLEFUYkUsSVNhRSxDQWlGRixPQUFPLEFUOUZOLE1BQU07SVNhVCxJQUFJLENBa0ZGLFVBQVUsQVQvRlQsTUFBTSxDQUFDO01BQUUsV0FBVyxFQUFFLENBQUMsR0FBSTtJU2E5QixBVFhFLElTV0UsQ0FpRkYsT0FBTyxDVDVGUCxNQUFNO0lTV1IsSUFBSSxDQWlGRixPQUFPLENUM0ZQLE1BQU07SVNVUixJQUFJLENBaUZGLE9BQU8sQ1QxRlAsS0FBSztJU1NQLElBQUksQ0FpRkYsT0FBTyxDVHpGUCxLQUFLO0lTUVAsSUFBSSxDQWtGRixVQUFVLENUN0ZWLE1BQU07SVNXUixJQUFJLENBa0ZGLFVBQVUsQ1Q1RlYsTUFBTTtJU1VSLElBQUksQ0FrRkYsVUFBVSxDVDNGVixLQUFLO0lTU1AsSUFBSSxDQWtGRixVQUFVLENUMUZWLEtBQUssQ0FBQztNQUNKLFFBQVEsRUFBRSxRQUFRO01BQ2xCLEdBQUcsRUFBRSxDQUFDO01BQ04sSUFBSSxFQUFFLENBQUM7TUFDUCxLQUFLLEVBQUUsSUFBSTtNQUNYLE1BQU0sRUFBRSxJQUFJLEdBQ2I7RVNFSCxBQXlGRSxJQXpGRSxDQXlGRixTQUFTLENBQUM7SUFDUixVQUFVLEVBQUUsSUFBSTtJQUNoQixPQUFPLEVBM0hHLElBQUk7SUE0SGQsYUFBYSxFQUFFLGlCQUFpQjtJQUNoQyxRQUFRLEVBQUUsUUFBUTtJQUNsQixPQUFPLEVBQUUsS0FBSztJQUNkLGVBQWUsRUFBRSxJQUFJLEdBc0R0QjtJQXJKSCxBQWlHSSxJQWpHQSxDQXlGRixTQUFTO0lBekZYLElBQUksQ0F5RkYsU0FBUyxDQVNQLE1BQU07SUFsR1YsSUFBSSxDQXlGRixTQUFTLENBVVAsU0FBUyxDQUFDO01BQ1IsS0FBSyxFYmhGTSxPQUFPLEdhaUZuQjtJQXJHTCxBQXVHSSxJQXZHQSxDQXlGRixTQUFTLENBY1AsTUFBTTtJQXZHVixJQUFJLENBeUZGLFNBQVMsQ0FlUCxTQUFTLENBQUM7TUFDUixXQUFXLEVBQUUsS0FBSztNQUNsQixNQUFNLEVBQUUsQ0FBQztNQUNULGNBQWMsRUFBRSxTQUFTLEdBTTFCO01BakhMLEFBNkdNLElBN0dGLENBeUZGLFNBQVMsQ0FjUCxNQUFNLENBTUosQ0FBQztNQTdHUCxJQUFJLENBeUZGLFNBQVMsQ0FlUCxTQUFTLENBS1AsQ0FBQyxDQUFDO1FBQ0EsZUFBZSxFQUFFLElBQUk7UUFDckIsS0FBSyxFYjNGSSxPQUFPLEdhNEZqQjtJQWhIUCxBQW1ISSxJQW5IQSxDQXlGRixTQUFTLENBMEJQLE1BQU0sQ0FBQztNQUNMLFNBQVMsRUFBRSxPQUFPLEdBRW5CO0lBdEhMLEFBd0hJLElBeEhBLENBeUZGLFNBQVMsQ0ErQlAsU0FBUyxDQUFDO01BQ1IsU0FBUyxFQUFFLE1BQU0sR0FFbEI7SUEzSEwsQUE2SEksSUE3SEEsQ0F5RkYsU0FBUyxDQW9DUCxDQUFDLENBQUM7TUFDQSxNQUFNLEVBQUUsWUFBWTtNQUNwQixXQUFXLEVBQUUsR0FBRyxHQVVqQjtNQXpJTCxBQWlJTSxJQWpJRixDQXlGRixTQUFTLENBb0NQLENBQUMsQ0FJQyxDQUFDLENBQUM7UUFDQSxLQUFLLEViaEhDLHlCQUFJO1FhaUhWLGVBQWUsRUFBRSxJQUFJLEdBS3RCO1FBeElQLEFBcUlRLElBcklKLENBeUZGLFNBQVMsQ0FvQ1AsQ0FBQyxDQUlDLENBQUMsQUFJRSxNQUFNLENBQUM7VUFDTixLQUFLLEViM0hULE9BQU8sR2E0SEo7SUF2SVQsQUEySUksSUEzSUEsQ0F5RkYsU0FBUyxDQWtEUCxPQUFPLENBQUM7TUFDTixPQUFPLEVBQUUsUUFBWTtNQUNyQixVQUFVLEVBQUUsTUFBTSxHQU9uQjtNQXBKTCxBQStJTSxJQS9JRixDQXlGRixTQUFTLENBa0RQLE9BQU8sQ0FJTCxNQUFNLENBQUM7UUFFTCxTQUFTLEVBQUUsTUFBTTtRQUNqQixNQUFNLEVBQUUsV0FBVyxHQUNwQjtFQW5KUCxBQTJKSSxJQTNKQSxDQXlKRixTQUFTLENBRVAsVUFBVTtFQTNKZCxJQUFJLENBMEpGLFNBQVMsQ0FDUCxVQUFVLENBQUM7SUFFVCxTQUFTLEVBQUUsTUFBTTtJQUNqQixVQUFVLEVBQUUsTUFBTTtJQUNsQixLQUFLLEViM0lNLE9BQU8sR2FpS25CO0lBckxMLEFBaUtNLElBaktGLENBeUpGLFNBQVMsQ0FFUCxVQUFVO0lBM0pkLElBQUksQ0F5SkYsU0FBUyxDQUVQLFVBQVUsQ0FPUixDQUFDO0lBbEtQLElBQUksQ0EwSkYsU0FBUyxDQUNQLFVBQVU7SUEzSmQsSUFBSSxDQTBKRixTQUFTLENBQ1AsVUFBVSxDQU9SLENBQUMsQ0FBQztNQUNBLEtBQUssRWIvSUksT0FBTyxHYWdKakI7SUFwS1AsQUFzS00sSUF0S0YsQ0F5SkYsU0FBUyxDQUVQLFVBQVUsQ0FXUixDQUFDO0lBdEtQLElBQUksQ0EwSkYsU0FBUyxDQUNQLFVBQVUsQ0FXUixDQUFDLENBQUM7TUFDQSxlQUFlLEVBQUUsSUFBSTtNQUNyQixPQUFPLEVBQUUsS0FBSyxHQVlmO01BcExQLEFBMEtRLElBMUtKLENBeUpGLFNBQVMsQ0FFUCxVQUFVLENBV1IsQ0FBQyxBQUlFLE9BQU87TUExS2hCLElBQUksQ0EwSkYsU0FBUyxDQUNQLFVBQVUsQ0FXUixDQUFDLEFBSUUsT0FBTyxDQUFDO1FBQ1AsT0FBTyxFQUFFLElBQUksR0FDZDtNQTVLVCxBQTZLUSxJQTdLSixDQXlKRixTQUFTLENBRVAsVUFBVSxDQVdSLENBQUMsQUFPRSxNQUFNO01BN0tmLElBQUksQ0EwSkYsU0FBUyxDQUNQLFVBQVUsQ0FXUixDQUFDLEFBT0UsTUFBTSxDQUFDO1FBQ04sT0FBTyxFQUFFLElBQUksR0FDZDtNQS9LVCxBQWlMUSxJQWpMSixDQXlKRixTQUFTLENBRVAsVUFBVSxDQVdSLENBQUMsQUFXRSxNQUFNO01BakxmLElBQUksQ0EwSkYsU0FBUyxDQUNQLFVBQVUsQ0FXUixDQUFDLEFBV0UsTUFBTSxDQUFDO1FBQ04sS0FBSyxFYnZLVCxPQUFPLEdhd0tKO0VBbkxULEFBaU1JLElBak1BLEFBOExELFVBQVUsQ0FHVCxTQUFTLEVBak1iLElBQUksQUFnV0QsT0FBTyxDQS9KTixTQUFTLEVBak1iLElBQUksQUF1aEJELFFBQVEsQ0F0VlAsU0FBUyxFQWpNYixJQUFJLEFBdWtCRCxlQUFlLENBdFlkLFNBQVMsRUFqTWIsSUFBSSxBQXFuQkQsY0FBYyxDQXBiYixTQUFTLEVBak1iLElBQUksQUErTEQsU0FBUyxDQUVSLFNBQVMsRUFqTWIsSUFBSSxBQWdNRCxPQUFPLENBQ04sU0FBUyxDQUFDO0lBQ1IsVUFBVSxFQUFFLE1BQU0sR0FDbkI7RUFuTUwsQUF5TUksSUF6TUEsQUF3TUQsT0FBTyxDQUNOLFVBQVUsRUF6TWQsSUFBSSxBQXVrQkQsZUFBZSxDQTlYZCxVQUFVLEVBek1kLElBQUksQUFxbkJELGNBQWMsQ0E1YWIsVUFBVTtFQXpNZCxJQUFJLEFBd01ELE9BQU8sQ0FFTixTQUFTO0VBMU1iLElBQUksQUF1a0JELGVBQWUsQ0E3WGQsU0FBUztFQTFNYixJQUFJLEFBcW5CRCxjQUFjLENBM2FiLFNBQVMsQ0FBQztJQUNSLFVBQVUsRUFBRSxXQUFXLEdBQ3hCO0VBNU1MLEFBOE1JLElBOU1BLEFBd01ELE9BQU8sQ0FDTixVQUFVLEVBek1kLElBQUksQUF1a0JELGVBQWUsQ0E5WGQsVUFBVSxFQXpNZCxJQUFJLEFBcW5CRCxjQUFjLENBNWFiLFVBQVUsQ0FLQztJQUNULGFBQWEsRUFBRSxjQUFjLEdBQzlCOztFQWhOTCxBQWtOSSxJQWxOQSxBQXdNRCxPQUFPLENBRU4sU0FBUztFQTFNYixJQUFJLEFBdWtCRCxlQUFlLENBN1hkLFNBQVM7RUExTWIsSUFBSSxBQXFuQkQsY0FBYyxDQTNhYixTQUFTLENBUUM7SUFDUixhQUFhLEVBQUUsSUFBSTtJQUNuQixLQUFLLEVBQUUsSUFBSSxHQVFaO0lBNU5MLEFBc05NLElBdE5GLEFBd01ELE9BQU8sQ0FVTixTQUFTLENBSVAsTUFBTSxFQXROWixJQUFJLEFBdWtCRCxlQUFlLENBclhkLFNBQVMsQ0FJUCxNQUFNLEVBdE5aLElBQUksQUFxbkJELGNBQWMsQ0FuYWIsU0FBUyxDQUlQLE1BQU0sQ0FBQztNQUVMLFNBQVMsRUFBRSxNQUFNO01BQ2pCLFdBQVcsRUFBRSxJQUFJO01BQ2pCLEtBQUssRUFBRSxJQUFJLEdBQ1o7RUEzTlAsQUE4TkksSUE5TkEsQUF3TUQsT0FBTyxDQXNCTixVQUFVLEVBOU5kLElBQUksQUF1a0JELGVBQWUsQ0F6V2QsVUFBVSxFQTlOZCxJQUFJLEFBcW5CRCxjQUFjLENBdlpiLFVBQVUsQ0FBQztJQUNULEtBQUssRUFBRSxJQUFJLEdBTVo7SUFyT0wsQUFpT00sSUFqT0YsQUF3TUQsT0FBTyxDQXNCTixVQUFVLENBR1IsQ0FBQyxFQWpPUCxJQUFJLEFBdWtCRCxlQUFlLENBeldkLFVBQVUsQ0FHUixDQUFDLEVBak9QLElBQUksQUFxbkJELGNBQWMsQ0F2WmIsVUFBVSxDQUdSLENBQUM7SUFqT1AsSUFBSSxBQXdNRCxPQUFPLENBc0JOLFVBQVUsQ0FJTixDQUFDLEFBQUEsTUFBTTtJQWxPZixJQUFJLEFBdWtCRCxlQUFlLENBeldkLFVBQVUsQ0FJTixDQUFDLEFBQUEsTUFBTTtJQWxPZixJQUFJLEFBcW5CRCxjQUFjLENBdlpiLFVBQVUsQ0FJTixDQUFDLEFBQUEsTUFBTSxDQUFDO01BQ1IsS0FBSyxFQUFFLElBQUksR0FDWjtFQXBPUCxBQXVPSSxJQXZPQSxBQXdNRCxPQUFPLEFBK0JMLFFBQVEsRUF2T2IsSUFBSSxBQXVPQyxRQUFRLEFBZ1dWLGVBQWUsRUF2a0JsQixJQUFJLEFBcW5CRCxjQUFjLENBOVlIO0lBQ1IsZ0JBQWdCLEViNU5iLE9BQU8sR2F1T1g7SUFuUEwsQUEyT1EsSUEzT0osQUF3TUQsT0FBTyxBQStCTCxRQUFRLEFBR04sTUFBTSxDQUNMLFVBQVUsRUEzT2xCLElBQUksQUF1T0MsUUFBUSxBQWdXVixlQUFlLEFBN1ZYLE1BQU0sQ0FDTCxVQUFVLEVBM09sQixJQUFJLEFBdWtCRCxlQUFlLEFBOENmLGNBQWMsQUEzWVYsTUFBTSxDQUNMLFVBQVUsRUEzT2xCLElBQUksQUFxbkJELGNBQWMsQUEzWVYsTUFBTSxDQUNMLFVBQVUsQ0FBQztNQUNULFVBQVUsRWJoT1gsT0FBTyxHYWlPUDtJQTdPVCxBQStPUSxJQS9PSixBQXdNRCxPQUFPLEFBK0JMLFFBQVEsQUFHTixNQUFNLENBS0wsU0FBUyxFQS9PakIsSUFBSSxBQXVPQyxRQUFRLEFBZ1dWLGVBQWUsQUE3VlgsTUFBTSxDQUtMLFNBQVMsRUEvT2pCLElBQUksQUF1a0JELGVBQWUsQUE4Q2YsY0FBYyxBQTNZVixNQUFNLENBS0wsU0FBUyxFQS9PakIsSUFBSSxBQXFuQkQsY0FBYyxBQTNZVixNQUFNLENBS0wsU0FBUyxDQUFDO01BQ1IsbUJBQW1CLEVBQUUsT0FBTyxHQUM3QjtFQWpQVCxBQXlQSSxJQXpQQSxBQXdQRCxhQUFhLENBQ1osTUFBTTtFQXpQVixJQUFJLEFBd1BELGFBQWEsQ0FFWixTQUFTLENBQUM7SUFDUixPQUFPLEVBQUUsS0FBSztJQUNkLFFBQVEsRUFBRSxNQUFNO0lBQ2hCLGFBQWEsRUFBRSxRQUFRO0lBQ3ZCLFdBQVcsRUFBRSxNQUFNLEdBQ3BCO0VBL1BMLEFBcVFJLElBclFBLEFBb1FELFFBQVEsQ0FDUCxVQUFVLEVBclFkLElBQUksQUFrU0QsU0FBUyxDQTdCUixVQUFVLEVBclFkLElBQUksQUFtU0QsT0FBTyxDQTlCTixVQUFVLEVBclFkLElBQUksQUFnV0QsT0FBTyxDQTNGTixVQUFVLEVBclFkLElBQUksQUFxU0QsZ0JBQWdCLENBaENmLFVBQVUsRUFyUWQsSUFBSSxBQXNTRCxZQUFZLENBakNYLFVBQVUsRUFyUWQsSUFBSSxBQXVTRCxhQUFhLENBbENaLFVBQVUsRUFyUWQsSUFBSSxBQXNXRCxjQUFjLENBakdiLFVBQVUsRUFyUWQsSUFBSSxBQThsQkQsaUJBQWlCLENBelZoQixVQUFVLEVBclFkLElBQUksQUErbEJELHNCQUFzQixDQTFWckIsVUFBVSxFQXJRZCxJQUFJLEFBbW9CRCxPQUFPLENBOVhOLFVBQVUsQ0FBQztJQUNULFVBQVUsRUFBRSxnQkFBZ0IsQ2J4UUosS0FBSyxDQUZmLG9DQUF3QyxHYTJRdkQ7RUF2UUwsQUF5UUksSUF6UUEsQUFvUUQsUUFBUSxDQUtQLFNBQVMsRUF6UWIsSUFBSSxBQWtTRCxTQUFTLENBekJSLFNBQVMsRUF6UWIsSUFBSSxBQW1TRCxPQUFPLENBMUJOLFNBQVMsRUF6UWIsSUFBSSxBQWdXRCxPQUFPLENBdkZOLFNBQVMsRUF6UWIsSUFBSSxBQXFTRCxnQkFBZ0IsQ0E1QmYsU0FBUyxFQXpRYixJQUFJLEFBc1NELFlBQVksQ0E3QlgsU0FBUyxFQXpRYixJQUFJLEFBdVNELGFBQWEsQ0E5QlosU0FBUyxFQXpRYixJQUFJLEFBc1dELGNBQWMsQ0E3RmIsU0FBUyxFQXpRYixJQUFJLEFBOGxCRCxpQkFBaUIsQ0FyVmhCLFNBQVMsRUF6UWIsSUFBSSxBQStsQkQsc0JBQXNCLENBdFZyQixTQUFTLEVBelFiLElBQUksQUFtb0JELE9BQU8sQ0ExWE4sU0FBUyxDQUFDO0lBQ1IsVUFBVSxFQUFFLFlBQVksQ2I1UUEsS0FBSyxDQUZmLG9DQUF3QyxHYXVSdkQ7SUFuUkwsQUE0UU0sSUE1UUYsQUFvUUQsUUFBUSxDQUtQLFNBQVMsQ0FHUCxDQUFDLEVBNVFQLElBQUksQUFrU0QsU0FBUyxDQXpCUixTQUFTLENBR1AsQ0FBQyxFQTVRUCxJQUFJLEFBbVNELE9BQU8sQ0ExQk4sU0FBUyxDQUdQLENBQUMsRUE1UVAsSUFBSSxBQWdXRCxPQUFPLENBdkZOLFNBQVMsQ0FHUCxDQUFDLEVBNVFQLElBQUksQUFxU0QsZ0JBQWdCLENBNUJmLFNBQVMsQ0FHUCxDQUFDLEVBNVFQLElBQUksQUFzU0QsWUFBWSxDQTdCWCxTQUFTLENBR1AsQ0FBQyxFQTVRUCxJQUFJLEFBdVNELGFBQWEsQ0E5QlosU0FBUyxDQUdQLENBQUMsRUE1UVAsSUFBSSxBQXNXRCxjQUFjLENBN0ZiLFNBQVMsQ0FHUCxDQUFDLEVBNVFQLElBQUksQUE4bEJELGlCQUFpQixDQXJWaEIsU0FBUyxDQUdQLENBQUMsRUE1UVAsSUFBSSxBQStsQkQsc0JBQXNCLENBdFZyQixTQUFTLENBR1AsQ0FBQyxFQTVRUCxJQUFJLEFBbW9CRCxPQUFPLENBMVhOLFNBQVMsQ0FHUCxDQUFDLENBQUM7TUFDQSxVQUFVLEVBQUUsS0FBSyxDYi9RSyxLQUFLLENBRmYsb0NBQXdDLEdhc1JyRDtNQWxSUCxBQStRUSxJQS9RSixBQW9RRCxRQUFRLENBS1AsU0FBUyxDQUdQLENBQUMsQUFHRSxNQUFNLEVBL1FmLElBQUksQUFrU0QsU0FBUyxDQXpCUixTQUFTLENBR1AsQ0FBQyxBQUdFLE1BQU0sRUEvUWYsSUFBSSxBQW1TRCxPQUFPLENBMUJOLFNBQVMsQ0FHUCxDQUFDLEFBR0UsTUFBTSxFQS9RZixJQUFJLEFBZ1dELE9BQU8sQ0F2Rk4sU0FBUyxDQUdQLENBQUMsQUFHRSxNQUFNLEVBL1FmLElBQUksQUFxU0QsZ0JBQWdCLENBNUJmLFNBQVMsQ0FHUCxDQUFDLEFBR0UsTUFBTSxFQS9RZixJQUFJLEFBc1NELFlBQVksQ0E3QlgsU0FBUyxDQUdQLENBQUMsQUFHRSxNQUFNLEVBL1FmLElBQUksQUF1U0QsYUFBYSxDQTlCWixTQUFTLENBR1AsQ0FBQyxBQUdFLE1BQU0sRUEvUWYsSUFBSSxBQXNXRCxjQUFjLENBN0ZiLFNBQVMsQ0FHUCxDQUFDLEFBR0UsTUFBTSxFQS9RZixJQUFJLEFBOGxCRCxpQkFBaUIsQ0FyVmhCLFNBQVMsQ0FHUCxDQUFDLEFBR0UsTUFBTSxFQS9RZixJQUFJLEFBK2xCRCxzQkFBc0IsQ0F0VnJCLFNBQVMsQ0FHUCxDQUFDLEFBR0UsTUFBTSxFQS9RZixJQUFJLEFBbW9CRCxPQUFPLENBMVhOLFNBQVMsQ0FHUCxDQUFDLEFBR0UsTUFBTSxDQUFDO1FBQ04sS0FBSyxFYnJRVCxPQUFPLEdhc1FKO0VBalJULEFBc1JNLElBdFJGLEFBb1FELFFBQVEsQUFpQk4sTUFBTSxDQUNMLFVBQVUsRUF0UmhCLElBQUksQUFrU0QsU0FBUyxBQWJQLE1BQU0sQ0FDTCxVQUFVLEVBdFJoQixJQUFJLEFBbVNELE9BQU8sQUFkTCxNQUFNLENBQ0wsVUFBVSxFQXRSaEIsSUFBSSxBQW9TRCxPQUFPLEFBZkwsTUFBTSxDQUNMLFVBQVUsRUF0UmhCLElBQUksQUFxU0QsZ0JBQWdCLEFBaEJkLE1BQU0sQ0FDTCxVQUFVLEVBdFJoQixJQUFJLEFBc1NELFlBQVksQUFqQlYsTUFBTSxDQUNMLFVBQVUsRUF0UmhCLElBQUksQUF1U0QsYUFBYSxBQWxCWCxNQUFNLENBQ0wsVUFBVSxFQXRSaEIsSUFBSSxBQXNXRCxjQUFjLEFBakZaLE1BQU0sQ0FDTCxVQUFVLEVBdFJoQixJQUFJLEFBOGxCRCxpQkFBaUIsQUF6VWYsTUFBTSxDQUNMLFVBQVUsRUF0UmhCLElBQUksQUErbEJELHNCQUFzQixBQTFVcEIsTUFBTSxDQUNMLFVBQVUsRUF0UmhCLElBQUksQUFtb0JELE9BQU8sQUE5V0wsTUFBTSxDQUNMLFVBQVUsQ0FBQztJQUNULGdCQUFnQixFYjVRbEIsT0FBTyxHYTZRTjtFQXhSUCxBQTBSTSxJQTFSRixBQW9RRCxRQUFRLEFBaUJOLE1BQU0sQ0FLTCxTQUFTLEVBMVJmLElBQUksQUFrU0QsU0FBUyxBQWJQLE1BQU0sQ0FLTCxTQUFTLEVBMVJmLElBQUksQUFtU0QsT0FBTyxBQWRMLE1BQU0sQ0FLTCxTQUFTLEVBMVJmLElBQUksQUFvU0QsT0FBTyxBQWZMLE1BQU0sQ0FLTCxTQUFTLEVBMVJmLElBQUksQUFxU0QsZ0JBQWdCLEFBaEJkLE1BQU0sQ0FLTCxTQUFTLEVBMVJmLElBQUksQUFzU0QsWUFBWSxBQWpCVixNQUFNLENBS0wsU0FBUyxFQTFSZixJQUFJLEFBdVNELGFBQWEsQUFsQlgsTUFBTSxDQUtMLFNBQVMsRUExUmYsSUFBSSxBQXNXRCxjQUFjLEFBakZaLE1BQU0sQ0FLTCxTQUFTLEVBMVJmLElBQUksQUE4bEJELGlCQUFpQixBQXpVZixNQUFNLENBS0wsU0FBUyxFQTFSZixJQUFJLEFBK2xCRCxzQkFBc0IsQUExVXBCLE1BQU0sQ0FLTCxTQUFTLEVBMVJmLElBQUksQUFtb0JELE9BQU8sQUE5V0wsTUFBTSxDQUtMLFNBQVMsQ0FBQztJQUNSLG1CQUFtQixFYmhSckIsT0FBTyxHYWlSTjtFQTVSUCxBQThTSSxJQTlTQSxBQTZTRCxTQUFTLENBQ1IsT0FBTyxDQUFDO0lBQ04sZ0JBQWdCLEVBQUUsSUFBSTtJQUN0QixNQUFNLEVBQUUsQ0FBQztJQUNULGNBQWMsRUFBRSxJQUFJO0lBQ3BCLFFBQVEsRUFBRSxRQUFRLEdBeUNuQjtJQTNWTCxBQW9UTSxJQXBURixBQTZTRCxTQUFTLENBQ1IsT0FBTyxDQU1MLE9BQU8sQ0FBQztNQUNOLFVBQVUsRUFBRSxTQUFTLENidlRDLEtBQUssQ0FGZixvQ0FBd0M7TWEwVHBELFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVO01BQ3ZELFFBQVEsRUFBRSxRQUFRO01BQ2xCLEdBQUcsRUFBRSxHQUFHO01BQ1IsSUFBSSxFQUFFLEdBQUc7TUFDVCxjQUFjLEVBQUUsSUFBSTtNQUNwQixVQUFVLEVBQUUsTUFBTTtNQUNsQixLQUFLLEVBQUUsSUFBSSxHQVVaO01BdFVQLEFBOFRRLElBOVRKLEFBNlNELFNBQVMsQ0FDUixPQUFPLENBTUwsT0FBTyxDQVVMLENBQUMsQ0FBQztRQUNBLE9BQU8sRUFBRSxZQUFZO1FBQ3JCLE9BQU8sRUFBRSxRQUFRLEdBS2xCO1FBclVULEFBa1VVLElBbFVOLEFBNlNELFNBQVMsQ0FDUixPQUFPLENBTUwsT0FBTyxDQVVMLENBQUMsR0FJSyxDQUFDLENBQUM7VUFDSixXQUFXLEVBQUUsY0FBYyxHQUM1QjtJQXBVWCxBQXdVTSxJQXhVRixBQTZTRCxTQUFTLENBQ1IsT0FBTyxDQTBCTCxTQUFTLENBQUM7TUFDUixRQUFRLEVBQUUsUUFBUTtNQUNsQixHQUFHLEVBQUUsQ0FBQztNQUNOLEtBQUssRUFBRSxDQUFDO01BQ1IsTUFBTSxFQUFFLENBQUM7TUFDVCxJQUFJLEVBQUUsQ0FBQztNQUNQLFVBQVUsRUFBTyxrQkFBSztNQUN0QixPQUFPLEVBQUUsQ0FBQztNQUNWLFVBQVUsRUFBRSxPQUFPLENBQUMsS0FBaUIsQ2JwVnpCLG9DQUF3QyxHYThWckQ7TUExVlAsQUFrVlEsSUFsVkosQUE2U0QsU0FBUyxDQUNSLE9BQU8sQ0EwQkwsU0FBUyxBQVVOLFNBQVMsQ0FBQztRQUNULE9BQU8sRUFBRSxDQUFDLEdBTVg7UUF6VlQsQUFxVlUsSUFyVk4sQUE2U0QsU0FBUyxDQUNSLE9BQU8sQ0EwQkwsU0FBUyxBQVVOLFNBQVMsQ0FHUixPQUFPLENBQUM7VUFDTixjQUFjLEVBQUUsSUFBSTtVQUNwQixTQUFTLEVBQUUsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxHQUN0RDtFQXhWWCxBQXlXSSxJQXpXQSxBQXNXRCxjQUFjLENBR2IsU0FBUyxDQUFDO0lBQ1IsT0FBTyxFQUFFLENBQUMsR0F3RFg7SUFsYUwsQUE0V00sSUE1V0YsQUFzV0QsY0FBYyxDQUdiLFNBQVMsQ0FHUCxFQUFFLENBQUM7TUFHRCxPQUFPLEVBQUUsUUFBYyxDQUFDLFFBQWM7TUFDdEMsUUFBUSxFQUFFLFFBQVEsR0FLbkI7TUFyWFAsQTVGZkUsSTRGZUUsQUFzV0QsY0FBYyxDQUdiLFNBQVMsQ0FHUCxFQUFFLEE1RjNYTCxPQUFPLENBQUM7UUFDUCxLQUFLLEVBQUUsSUFBSTtRQUNYLE9BQU8sRUFBRSxFQUFFO1FBQ1gsT0FBTyxFQUFFLEtBQUssR0FDZjtNNEZXSCxBQWtYUSxJQWxYSixBQXNXRCxjQUFjLENBR2IsU0FBUyxDQUdQLEVBQUUsR0FNRSxDQUFDLENBQUM7UUFDRixPQUFPLEVBQUUsS0FBSyxHQUNmO0lBcFhULEFBdVhNLElBdlhGLEFBc1dELGNBQWMsQ0FHYixTQUFTLENBY1AsRUFBRSxHQUFHLEVBQUUsQ0FBQztNQUNOLFVBQVUsRUFBRSxpQkFBaUIsR0FDOUI7SUF6WFAsQUEyWE0sSUEzWEYsQUFzV0QsY0FBYyxDQUdiLFNBQVMsQ0FrQlAsT0FBTyxDQUFDO00vRDFZVixLQUFRLEVvQndJRSxHQUFnQztNcEJ4STFDLEtBQVEsRUlBZ0QsSUFBSTtNSkE1RCxZQUFRLEVxQnFGRSxRQUFZO01yQnJGdEIsYUFBUSxFcUJxRkUsUUFBWSxHMEN1VG5CO0lBN1hQLEFBK1hNLElBL1hGLEFBc1dELGNBQWMsQ0FHYixTQUFTLENBc0JQLE1BQU0sQ0FBQztNL0Q5WVQsS0FBUSxFb0J3SUUsR0FBZ0M7TXBCeEkxQyxLQUFRLEVJQWdELElBQUk7TUpBNUQsWUFBUSxFcUJxRkUsUUFBWTtNckJyRnRCLGFBQVEsRXFCcUZFLFFBQVk7TTBDMlRsQixXQUFXLEVBQUUsTUFBTTtNQUNuQixRQUFRLEVBQUUsUUFBUTtNQUNsQixHQUFHLEVBQUUsQ0FBQztNQUNOLEtBQUssRUFBRSxDQUFDO01BQ1IsTUFBTSxFQUFFLENBQUMsR0E0QlY7TUFqYVAsQUF1WVEsSUF2WUosQUFzV0QsY0FBYyxDQUdiLFNBQVMsQ0FzQlAsTUFBTSxDQVFKLFFBQVEsQ0FBQztRQUNQLFFBQVEsRUFBRSxRQUFRO1FBQ2xCLEdBQUcsRUFBRSxHQUFHO1FBQ1IsU0FBUyxFQUFFLGdCQUFnQixHQUM1QjtNQTNZVCxBQTZZUSxJQTdZSixBQXNXRCxjQUFjLENBR2IsU0FBUyxDQXNCUCxNQUFNLENBY0osZUFBZTtNQTdZdkIsSUFBSSxBQXNXRCxjQUFjLENBR2IsU0FBUyxDQXNCUCxNQUFNLENBZUosYUFBYSxDQUFDO1FBQ1osY0FBYyxFQUFFLFNBQVMsR0FDMUI7TUFoWlQsQUFrWlEsSUFsWkosQUFzV0QsY0FBYyxDQUdiLFNBQVMsQ0FzQlAsTUFBTSxDQW1CSixlQUFlLENBQUM7UUFFZCxTQUFTLEVBQUUsT0FBTyxHQUNuQjtNQXJaVCxBQXVaUSxJQXZaSixBQXNXRCxjQUFjLENBR2IsU0FBUyxDQXNCUCxNQUFNLENBd0JKLGFBQWEsQ0FBQztRQUVaLFNBQVMsRUFBRSxRQUFRLEdBQ3BCO01BMVpULEFBNFpRLElBNVpKLEFBc1dELGNBQWMsQ0FHYixTQUFTLENBc0JQLE1BQU0sQ0E2QkosY0FBYyxDQUFDO1FBRWIsS0FBSyxFYjdZSyxPQUFPO1FhOFlqQixTQUFTLEVBQUUsT0FBTyxHQUNuQjtFQWhhVCxBQXVhRSxJQXZhRSxBQXVhRCxRQUFRLENBQUM7SUFDUixPQUFPLEVBQUUsSUFBSSxHQTJHZDtJQW5oQkgsQUE4YUksSUE5YUEsQUF1YUQsUUFBUSxDQU9QLFNBQVMsQ0FBQztNQUNSLGFBQWEsRUFBRSxDQUFDO01BQ2hCLE9BQU8sRUFBRSxDQUFDLEdBYVg7TUE3YkwsQTVGZkUsSTRGZUUsQUF1YUQsUUFBUSxDQU9QLFNBQVMsQTVGN2JWLE9BQU8sQ0FBQztRQUNQLEtBQUssRUFBRSxJQUFJO1FBQ1gsT0FBTyxFQUFFLEVBQUU7UUFDWCxPQUFPLEVBQUUsS0FBSyxHQUNmO000RldILEFBbWJNLElBbmJGLEFBdWFELFFBQVEsQ0FPUCxTQUFTLENBS1AsQ0FBQyxDQUFDO1FBQ0EsVUFBVSxFQUFFLENBQUMsR0FJZDtRQXhiUCxBQXFiUSxJQXJiSixBQXVhRCxRQUFRLENBT1AsU0FBUyxDQUtQLENBQUMsQ0FFQyxDQUFDLENBQUM7VUFDQSxVQUFVLEVBQUUsTUFBTSxHQUNuQjtNQXZiVCxBQTBiTSxJQTFiRixBQXVhRCxRQUFRLENBT1AsU0FBUyxDQVlQLFVBQVUsQ0FBQztRQUNULFVBQVUsRUFBRSxLQUFLLEdBQ2xCO0lBNWJQLEFBK2JJLElBL2JBLEFBdWFELFFBQVEsQ0F3QlAsUUFBUSxDQUFDO00vRDljVCxLQUFRLEVvQndJRSxTQUFnQztNcEJ4STFDLEtBQVEsRUlBZ0QsSUFBSTtNSkE1RCxZQUFRLEVxQnFGRSxRQUFZO01yQnJGdEIsYUFBUSxFcUJxRkUsUUFBWTtNMEMyWHBCLFVBQVUsRUFBRSxnQkFBZ0IsQ2JuY0osS0FBSyxDQUZmLG9DQUF3QztNYXNjdEQsUUFBUSxFQUFFLFFBQVE7TUFDbEIsR0FBRyxFQUFFLENBQUM7TUFDTixNQUFNLEVBQUUsQ0FBQztNQUNULFVBQVUsRUFBRSxPQUFPLEdBUXBCO01BN2NMLEFBdWNNLElBdmNGLEFBdWFELFFBQVEsQ0F3QlAsUUFBUSxDQVFOLENBQUMsQ0FBQztRQUNBLFFBQVEsRUFBRSxRQUFRO1FBQ2xCLEdBQUcsRUFBRSxHQUFHO1FBQ1IsSUFBSSxFQUFFLEdBQUc7UUFDVCxTQUFTLEVBQUUscUJBQXFCLEdBQ2pDO0lBNWNQLEFBK2NJLElBL2NBLEFBdWFELFFBQVEsQUF3Q04sVUFBVSxBQUFBLE1BQU0sQ0FBQyxRQUFRLENBQUM7TUFDekIsZ0JBQWdCLEVieGJOLE9BQU8sR2F5YmxCO0lBamRMLEFBbWRJLElBbmRBLEFBdWFELFFBQVEsQUE0Q04sV0FBVyxBQUFBLE1BQU0sQ0FBQyxRQUFRLENBQUM7TUFDMUIsZ0JBQWdCLEViM2JMLE9BQU8sR2E0Ym5CO0lBcmRMLEFBdWRJLElBdmRBLEFBdWFELFFBQVEsQUFnRE4sUUFBUSxBQUFBLE1BQU0sQ0FBQyxRQUFRLENBQUM7TUFDdkIsZ0JBQWdCLEViOWJSLE9BQU8sR2ErYmhCO0lBemRMLEFBMmRJLElBM2RBLEFBdWFELFFBQVEsQUFvRE4sU0FBUyxBQUFBLE1BQU0sQ0FBQyxRQUFRLENBQUM7TUFDeEIsZ0JBQWdCLEViamNQLE9BQU8sR2FrY2pCO0lBN2RMLEFBK2RJLElBL2RBLEFBdWFELFFBQVEsQ0F3RFAsU0FBUyxDQUFDO00vRDllVixLQUFRLEVvQndJRSxTQUFnQztNcEJ4STFDLEtBQVEsRUlBZ0QsSUFBSTtNSkE1RCxZQUFRLEVxQnFGRSxRQUFZO01yQnJGdEIsYUFBUSxFcUJxRkUsUUFBWTtNckJyRnRCLFdBQVEsRW9Cd0lFLFNBQWdDO00yQ3lXeEMsVUFBVSxFQUFFLElBQUk7TUFDaEIsUUFBUSxFQUFFLE1BQU07TUFDaEIsT0FBTyxFQXBnQkMsSUFBSSxHQXFnQmI7SUFyZUwsQUF1ZUksSUF2ZUEsQUF1YUQsUUFBUSxDQWdFUCxLQUFLLEVBdmVULElBQUksQUF1YUQsUUFBUSxDTDdTWCxjQUFjLENBVVosVUFBVSxFQVZaLGNBQWMsQ0sxSGQsSUFBSSxBQXVhRCxRQUFRLENMblNULFVBQVUsQ0ttV0Y7TUFDSixLQUFLLEVBQUUsSUFBSTtNQUNYLE1BQU0sRUFBRSxJQUFJO01BQ1osZUFBZSxFQUFFLFNBQVMsR0FZM0I7TUF0ZkwsQUE0ZU0sSUE1ZUYsQUF1YUQsUUFBUSxDQWdFUCxLQUFLLEFBS0YsUUFBUSxFQTVlZixJQUFJLEFBdWFELFFBQVEsQ0w3U1gsY0FBYyxDQ2pKVCxRQUFRLEFEMkpYLFVBQVUsRUFWWixjQUFjLENLMUhkLElBQUksQUF1YUQsUUFBUSxDSjliTixRQUFRLEFEMkpYLFVBQVUsQ0t3V0k7UUFDUixnQkFBZ0IsRUFBRSwyQ0FBMkMsR0FBRztNQTdleEUsQUE4ZU0sSUE5ZUYsQUF1YUQsUUFBUSxDQWdFUCxLQUFLLEFBT0YsVUFBVSxFQTllakIsSUFBSSxBQXVhRCxRQUFRLENMN1NYLGNBQWMsQ0ZNWCxVQUFVLEFFSVgsVUFBVSxFQVZaLGNBQWMsQ0sxSGQsSUFBSSxBQXVhRCxRQUFRLENQdlNSLFVBQVUsQUVJWCxVQUFVLENLMFdNO1FBQ1YsZ0JBQWdCLEVBQUUsNkNBQTZDLEdBQUc7TUEvZTFFLEFBZ2ZNLElBaGZGLEFBdWFELFFBQVEsQ0FnRVAsS0FBSyxBQVNGLFNBQVMsRUFoZmhCLElBQUksQUF1YUQsUUFBUSxDTDdTWCxjQUFjLENDN0lULFNBQVMsQUR1SlosVUFBVSxFQVZaLGNBQWMsQ0sxSGQsSUFBSSxBQXVhRCxRQUFRLENKMWJOLFNBQVMsQUR1SlosVUFBVSxDSzRXSztRQUNULGdCQUFnQixFQUFFLDRDQUE0QyxHQUFHO01BamZ6RSxBQWtmTSxJQWxmRixBQXVhRCxRQUFRLENBZ0VQLEtBQUssQUFXRixTQUFTLEVBbGZoQixJQUFJLEFBdWFELFFBQVEsQ0w3U1gsY0FBYyxDQzNJVCxTQUFTLEFEcUpaLFVBQVUsRUFWWixjQUFjLENLMUhkLElBQUksQUF1YUQsUUFBUSxDSnhiTixTQUFTLEFEcUpaLFVBQVUsQ0s4V0s7UUFDVCxnQkFBZ0IsRUFBRSw0Q0FBNEMsR0FBRztNQW5mekUsQUFvZk0sSUFwZkYsQUF1YUQsUUFBUSxDQWdFUCxLQUFLLEFBYUYsV0FBVyxFQXBmbEIsSUFBSSxBQXVhRCxRQUFRLENMN1NYLGNBQWMsQ0N6SVQsV0FBVyxBRG1KZCxVQUFVLEVBVlosY0FBYyxDSzFIZCxJQUFJLEFBdWFELFFBQVEsQ0p0Yk4sV0FBVyxBRG1KZCxVQUFVLENLZ1hPO1FBQ1gsZ0JBQWdCLEVBQUUsOENBQThDLEdBQUc7SUFyZjNFLEFBeWZNLElBemZGLEFBdWFELFFBQVEsQUFpRk4sT0FBTyxDQUNOLFNBQVMsQ0FBQztNQUNSLE9BQU8sRUFBRSxDQUFDLEdBS1g7TUEvZlAsQUE0ZlEsSUE1ZkosQUF1YUQsUUFBUSxBQWlGTixPQUFPLENBQ04sU0FBUyxDQUdQLEdBQUcsQ0FBQztRQUNGLE9BQU8sRUFBRSxLQUFLLEdBQ2Y7SUE5ZlQsQUFxZ0JNLElBcmdCRixBQXVhRCxRQUFRLEFBNkZOLFFBQVEsQ0FDUCxTQUFTLENBQUM7TUFDUixPQUFPLEVBQUUsQ0FBQyxHQUNYO0lBdmdCUCxBQXlnQk0sSUF6Z0JGLEFBdWFELFFBQVEsQUE2Rk4sUUFBUSxDQUtQLE1BQU0sQ0FBQztNQUNMLE9BQU8sRUExaUJELElBQUksR0EyaUJYO0lsQzdlSCxNQUFNLEVBQUcsU0FBUyxFQUFFLEtBQUs7TWtDOUI3QixBQXVhRSxJQXZhRSxBQXVhRCxRQUFRLENBQUM7UUEwR04sT0FBTyxFQUFFLEtBQUssR0FFakI7RUFuaEJILEFBdWhCRSxJQXZoQkUsQUF1aEJELFFBQVEsQ0FBQztJQUVSLFVBQVUsRUFBRSxJQUFJLEdBMENqQjtJQW5rQkgsQUEyaEJJLElBM2hCQSxBQXVoQkQsUUFBUSxDQUlQLFVBQVU7SUEzaEJkLElBQUksQUF1aEJELFFBQVEsQ0FLUCxTQUFTLENBQUM7TUFDUixVQUFVLEViamhCUCxPQUFPLEdha2hCWDtJQTloQkwsQUFnaUJJLElBaGlCQSxBQXVoQkQsUUFBUSxDQVNQLFVBQVUsQ0FBQztNQUNULFdBQVcsRUFqa0JILElBQUksR0Fra0JiO0lBbGlCTCxBQW9pQkksSUFwaUJBLEFBdWhCRCxRQUFRLENBYVAsU0FBUyxDQUFDO01BQ1IsT0FBTyxFQUFFLElBQUk7TUFDYixhQUFhLEVBQUUsQ0FBQztNQUNoQixXQUFXLEVBQUUsQ0FBQyxHQUtmO01BNWlCTCxBQXlpQk0sSUF6aUJGLEFBdWhCRCxRQUFRLENBYVAsU0FBUyxDQUtQLENBQUMsQ0FBQztRQUNBLElBQUksRUFBRSxDQUFDLEdBQ1I7SUEzaUJQLEFBOGlCSSxJQTlpQkEsQUF1aEJELFFBQVEsQ0F1QlAsS0FBSyxFQTlpQlQsSUFBSSxBQXVoQkQsUUFBUSxDTDdaWCxjQUFjLENBVVosVUFBVSxFQVZaLGNBQWMsQ0sxSGQsSUFBSSxBQXVoQkQsUUFBUSxDTG5aVCxVQUFVLENLMGFGO01BQ0osS0FBSyxFQUFFLElBQUk7TUFDWCxNQUFNLEVBQUUsSUFBSTtNQUNaLGVBQWUsRUFBRSxTQUFTLEdBYTNCO01BOWpCTCxBQW1qQk0sSUFuakJGLEFBdWhCRCxRQUFRLENBdUJQLEtBQUssQUFLRixRQUFRLEVBbmpCZixJQUFJLEFBdWhCRCxRQUFRLENMN1pYLGNBQWMsQ0NqSlQsUUFBUSxBRDJKWCxVQUFVLEVBVlosY0FBYyxDSzFIZCxJQUFJLEFBdWhCRCxRQUFRLENKOWlCTixRQUFRLEFEMkpYLFVBQVUsQ0srYUk7UUFDUixnQkFBZ0IsRUFBRSwrQ0FBK0MsR0FBRztNQXBqQjVFLEFBcWpCTSxJQXJqQkYsQUF1aEJELFFBQVEsQ0F1QlAsS0FBSyxBQU9GLFVBQVUsRUFyakJqQixJQUFJLEFBdWhCRCxRQUFRLENMN1pYLGNBQWMsQ0ZNWCxVQUFVLEFFSVgsVUFBVSxFQVZaLGNBQWMsQ0sxSGQsSUFBSSxBQXVoQkQsUUFBUSxDUHZaUixVQUFVLEFFSVgsVUFBVSxDS2liTTtRQUNWLGdCQUFnQixFQUFFLGlEQUFpRCxHQUFHO01BdGpCOUUsQUF1akJNLElBdmpCRixBQXVoQkQsUUFBUSxDQXVCUCxLQUFLLEFBU0YsU0FBUyxFQXZqQmhCLElBQUksQUF1aEJELFFBQVEsQ0w3WlgsY0FBYyxDQzdJVCxTQUFTLEFEdUpaLFVBQVUsRUFWWixjQUFjLENLMUhkLElBQUksQUF1aEJELFFBQVEsQ0oxaUJOLFNBQVMsQUR1SlosVUFBVSxDS21iSztRQUNULGdCQUFnQixFQUFFLGdEQUFnRCxHQUFHO01BeGpCN0UsQUF5akJNLElBempCRixBQXVoQkQsUUFBUSxDQXVCUCxLQUFLLEFBV0YsU0FBUyxFQXpqQmhCLElBQUksQUF1aEJELFFBQVEsQ0w3WlgsY0FBYyxDQzNJVCxTQUFTLEFEcUpaLFVBQVUsRUFWWixjQUFjLENLMUhkLElBQUksQUF1aEJELFFBQVEsQ0p4aUJOLFNBQVMsQURxSlosVUFBVSxDS3FiSztRQUNULGdCQUFnQixFQUFFLGdEQUFnRCxHQUFHO01BMWpCN0UsQUEyakJNLElBM2pCRixBQXVoQkQsUUFBUSxDQXVCUCxLQUFLLEFBYUYsV0FBVyxFQTNqQmxCLElBQUksQUF1aEJELFFBQVEsQ0w3WlgsY0FBYyxDQ3pJVCxXQUFXLEFEbUpkLFVBQVUsRUFWWixjQUFjLENLMUhkLElBQUksQUF1aEJELFFBQVEsQ0p0aUJOLFdBQVcsQURtSmQsVUFBVSxDS3ViTztRQUNYLGdCQUFnQixFQUFFLGtEQUFrRCxHQUFHO01BNWpCL0UsQUE2akJNLElBN2pCRixBQXVoQkQsUUFBUSxDQXVCUCxLQUFLLEFBZUYsU0FBUyxFQTdqQmhCLElBQUksQUF1aEJELFFBQVEsQ0w3WlgsY0FBYyxDQ3ZJVCxTQUFTLEFEaUpaLFVBQVUsRUFWWixjQUFjLENLMUhkLElBQUksQUF1aEJELFFBQVEsQ0pwaUJOLFNBQVMsQURpSlosVUFBVSxDS3liSztRQUFFLGdCQUFnQixFQUFFLGdEQUFnRCxHQUFJO0lsQy9oQnJGLE1BQU0sRUFBRyxTQUFTLEVBQUUsS0FBSztNa0M5QjdCLEFBdWhCRSxJQXZoQkUsQUF1aEJELFFBQVEsQ0FBQztRQTBDTixVQUFVLEVBQUUsSUFBSSxHQUVuQjtFQW5rQkgsQUF1a0JFLElBdmtCRSxBQXVrQkQsZUFBZSxDQUFDO0lBSWYsZ0JBQWdCLEViamtCWCxPQUFPLEdhZ2xCYjtJQTFsQkgsQUE4a0JNLElBOWtCRixBQXVrQkQsZUFBZSxDQU1kLFNBQVMsQ0FDUCxNQUFNLENBQUM7TUFDTCxjQUFjLEVBQUUsSUFBSSxHQUNyQjtJQWhsQlAsQUF1a0JFLElBdmtCRSxBQXVrQkQsZUFBZSxDQVlaO01BQ0EsVUFBVSxFQUFFLGdCQUFnQixDYnRsQkosS0FBSyxDQUZmLG9DQUF3QyxHYTZsQnZEO01BemxCTCxBQXNsQk0sSUF0bEJGLEFBdWtCRCxlQUFlLEFBZVgsTUFBTSxDQUFDO1FBQ04sZ0JBQWdCLEViNWtCbEIsT0FBTyxHYTZrQk47RUF4bEJQLEFBa21CSSxJQWxtQkEsQUE4bEJELGlCQUFpQixDQUloQixPQUFPLEVBbG1CWCxJQUFJLEFBK2xCRCxzQkFBc0IsQ0FHckIsT0FBTyxDQUFDO0lBQ04sTUFBTSxFQUFFLENBQUM7SUFDVCxRQUFRLEVBQUUsTUFBTTtJQUNoQixjQUFjLEVBQUUsR0FBRyxHQUNwQjtFQXRtQkwsQUEybUJFLElBM21CRSxBQTJtQkQsc0JBQXNCLENBQUM7SUFDdEIsVUFBVSxFQUFFLE1BQU0sR0FLbkI7SUFqbkJILEFBOG1CSSxJQTltQkEsQUEybUJELHNCQUFzQixDQUdyQixPQUFPLENBQUM7TUFDTixnQkFBZ0IsRUFBRSxJQUFJLEdBQ3ZCO0VBaG5CTCxBQTBuQkksSUExbkJBLEFBcW5CRCxjQUFjLENBS2IsU0FBUyxDQUFDLE1BQU0sQ0FBQztJQUNmLFNBQVMsRUFBRSxPQUFPO0lBQ2xCLE1BQU0sRUFBRSxNQUFNO0lBQ2QsY0FBYyxFQUFFLElBQUksR0FDckI7RUE5bkJMLEFBc29CSSxJQXRvQkEsQUFtb0JELE9BQU8sQ0FHTixTQUFTLENBQUM7SUFDUixPQUFPLEVBQUUsQ0FBQyxHQUlYO0lBM29CTCxBQXdvQk0sSUF4b0JGLEFBbW9CRCxPQUFPLENBR04sU0FBUyxDQUVQLFVBQVUsQ0FBQyxDQUFDLENBQUM7TUFDWCxPQUFPLEVBQUUsTUFBTSxHQUNoQjtFQTFvQlAsQUE2b0JJLElBN29CQSxBQW1vQkQsT0FBTyxDQVVOLEVBQUUsQ0FBQztJL0Q1cEJILEtBQVEsRXdCWmMsSUFBSTtJdUMycUJ4QixnQkFBZ0IsRUFBRSxJQUFJO0lBQ3RCLGFBQWEsRUFBRSxHQUFHLENBQUMsS0FBSyxDYmxvQlgsT0FBTztJYW1vQnBCLE9BQU8sRUFBRSxJQUFJLEdBU2Q7SUEzcEJMLEE1RmZFLEk0RmVFLEFBbW9CRCxPQUFPLENBVU4sRUFBRSxBNUY1cEJILE9BQU8sQ0FBQztNQUNQLEtBQUssRUFBRSxJQUFJO01BQ1gsT0FBTyxFQUFFLEVBQUU7TUFDWCxPQUFPLEVBQUUsS0FBSyxHQUNmO0k0RldILEFBNm9CSSxJQTdvQkEsQUFtb0JELE9BQU8sQ0FVTixFQUFFLENBT0U7TUFDQSxVQUFVLEVBQUUsZ0JBQWdCLENidnBCTixLQUFLLENBRmYsb0NBQXdDLEdhOHBCckQ7TUExcEJQLEFBdXBCUSxJQXZwQkosQUFtb0JELE9BQU8sQ0FVTixFQUFFLEFBVUcsTUFBTSxDQUFDO1FBQ04sZ0JBQWdCLEViMW9CYixPQUFPLEdhMm9CWDtFQXpwQlQsQUFrcUJJLElBbHFCQSxBQW1vQkQsT0FBTyxDQStCTixNQUFNLENBQUM7SS9EanJCUCxLQUFRLEVvQndJRSxHQUFnQztJcEJ4STFDLEtBQVEsRUlBZ0QsSUFBSTtJSkE1RCxZQUFRLEVxQnFGRSxRQUFZO0lyQnJGdEIsYUFBUSxFcUJxRkUsUUFBWTtJMEM4bEJwQixXQUFXLEVBQUUsS0FBSyxHQUNuQjtFQXJxQkwsQUF1cUJJLElBdnFCQSxBQW1vQkQsT0FBTyxDQW9DTixVQUFVLENBQUM7SS9EdHJCWCxLQUFRLEVvQndJRSxHQUFnQztJcEJ4STFDLEtBQVEsRUlBZ0QsSUFBSTtJSkE1RCxZQUFRLEVxQnFGRSxRQUFZO0lyQnJGdEIsYUFBUSxFcUJxRkUsUUFBWTtJMENtbUJwQixVQUFVLEVBQUUsS0FBSztJQUNqQixjQUFjLEVBQUUsU0FBUztJQUN6QixXQUFXLEVBQUUsS0FBSyxHQUNuQjtFQTVxQkwsQUE4cUJJLElBOXFCQSxBQW1vQkQsT0FBTyxDQTJDTixRQUFRLENBQUM7SS9EN3JCVCxLQUFRLEV3QlpjLElBQUk7SXhCWTFCLEtBQVEsRW9CeUhzRCxJQUFJO0lwQnpIbEUsS0FBUSxFSUFnRCxJQUFJO0lKQTVELFlBQVEsRXFCcUZFLFFBQVk7SXJCckZ0QixhQUFRLEVxQnFGRSxRQUFZO0kwQzJtQnBCLGNBQWMsRUFBRSxTQUFTO0lBQ3pCLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLFdBQVcsRUFBRSxLQUFLLEdBTW5CO0lBenJCTCxBQXFyQk0sSUFyckJGLEFBbW9CRCxPQUFPLENBMkNOLFFBQVEsQ0FPTixDQUFDLENBQUM7TUFDQSxLQUFLLEViNXFCSixPQUFPO01hNnFCUixlQUFlLEVBQUUsSUFBSSxHQUN0QjtFQXhyQlAsQUEyckJJLElBM3JCQSxBQW1vQkQsT0FBTyxDQXdETixPQUFPLENBQUM7SS9EMXNCUixLQUFRLEV3QlpjLElBQUk7SXhCWTFCLEtBQVEsRW9CeUhzRCxJQUFJO0lwQnpIbEUsS0FBUSxFSUFnRCxJQUFJO0lKQTVELFlBQVEsRXFCcUZFLFFBQVk7SXJCckZ0QixhQUFRLEVxQnFGRSxRQUFZO0kwQ3VuQnBCLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFdBQVcsRUFBRSxLQUFLLEdBQ25CO0VBaHNCTCxBQWtzQkksSUFsc0JBLEFBbW9CRCxPQUFPLENBK0ROLE9BQU8sQ0FBQztJL0RqdEJSLEtBQVEsRXdCWmMsSUFBSTtJeEJZMUIsS0FBUSxFb0J5SHNELElBQUk7SXBCekhsRSxLQUFRLEVJQWdELElBQUk7SUpBNUQsWUFBUSxFcUJxRkUsUUFBWTtJckJyRnRCLGFBQVEsRXFCcUZFLFFBQVk7STBDK25CcEIsS0FBSyxFYm5yQkcseUJBQUk7SWFvckJaLFNBQVMsRUFBRSxPQUFPO0lBQ2xCLFdBQVcsRUFBRSxLQUFLO0lBQ2xCLGNBQWMsRUFBRSxTQUFTLEdBTTFCO0lBOXNCTCxBQTBzQk0sSUExc0JGLEFBbW9CRCxPQUFPLENBK0ROLE9BQU8sQ0FRTCxDQUFDLENBQUM7TUFDQSxLQUFLLEVienJCQyx5QkFBSTtNYTByQlYsZUFBZSxFQUFFLElBQUksR0FDdEI7RWxDL3FCSCxNQUFNLEVBQUcsU0FBUyxFQUFFLEtBQUs7SWtDOUI3QixBQThxQkksSUE5cUJBLEFBbW9CRCxPQUFPLENBMkNOLFFBQVEsQ0FtQ0c7TUFDUCxTQUFTLEVBQUUsT0FBTyxHQUNuQjtJQW50QlAsQUEyckJJLElBM3JCQSxBQW1vQkQsT0FBTyxDQXdETixPQUFPLENBMEJHO01BQ04sU0FBUyxFQUFFLElBQUksR0FDaEI7RUF2dEJQLEFBOHRCSSxJQTl0QkEsQUE2dEJELE1BQU0sQ0FDTCxTQUFTLENBQUM7SUFDUixPQUFPLEVBQUUsSUFBSSxHQXVCZDtJQXR2QkwsQUFpdUJNLElBanVCRixBQTZ0QkQsTUFBTSxDQUNMLFNBQVMsQ0FHUCxNQUFNLENBQUM7TUFDTCxLQUFLLEViaHRCQyxJQUFJO01haXRCVixPQUFPLEVBQUUsS0FBSztNQUNkLFNBQVMsRUFBRSxNQUFNO01BQ2pCLGFBQWEsRUFBRSxNQUFNO01BQ3JCLGNBQWMsRUFBRSxTQUFTLEdBQzFCO0lBdnVCUCxBQXl1Qk0sSUF6dUJGLEFBNnRCRCxNQUFNLENBQ0wsU0FBUyxDQVdQLE1BQU0sQ0FBQztNQUVMLFNBQVMsRUFBRSxPQUFPO01BQ2xCLGNBQWMsRUFBRSxTQUFTLEdBSzFCO01BanZCUCxBQTh1QlEsSUE5dUJKLEFBNnRCRCxNQUFNLENBQ0wsU0FBUyxDQVdQLE1BQU0sQ0FLRixDQUFDLEFBQUEsTUFBTSxDQUFDO1FBQ1IsS0FBSyxFYnB1QlQsT0FBTyxHYXF1Qko7SUFodkJULEFBbXZCTSxJQW52QkYsQUE2dEJELE1BQU0sQ0FDTCxTQUFTLENBcUJQLENBQUMsQ0FBQztNQUNBLE1BQU0sRUFBRSxPQUFPLEdBQ2hCO0VBcnZCUCxBQTZ2QkksSUE3dkJBLEFBMnZCRCxjQUFjLENBRWIsU0FBUyxFQTd2QmIsSUFBSSxBQTR2QkQsV0FBVyxDQUNWLFNBQVMsQ0FBQztJQUNSLGFBQWEsRUFBRSxJQUFJLEdBV3BCO0lBendCTCxBQWd3Qk0sSUFod0JGLEFBMnZCRCxjQUFjLENBRWIsU0FBUyxDQUdQLFNBQVMsRUFod0JmLElBQUksQUE0dkJELFdBQVcsQ0FDVixTQUFTLENBR1AsU0FBUyxDQUFDO01BRVIsU0FBUyxFQUFFLE1BQU07TUFDakIsY0FBYyxFQUFFLEtBQUssR0FDdEI7SUFwd0JQLEFBc3dCTSxJQXR3QkYsQUEydkJELGNBQWMsQ0FFYixTQUFTLENBU1AsQ0FBQyxFQXR3QlAsSUFBSSxBQTR2QkQsV0FBVyxDQUNWLFNBQVMsQ0FTUCxDQUFDLENBQUM7TUFDQSxNQUFNLEVBQUUsS0FBSyxHQUNkO0VBeHdCUCxBQTZ3Qk0sSUE3d0JGLEFBMnZCRCxjQUFjLENBZ0JiLHFCQUFxQixDQUVuQixFQUFFLEdBQUcsRUFBRTtFQTd3QmIsSUFBSSxBQTJ2QkQsY0FBYyxDQWlCYixlQUFlLENBQ2IsRUFBRSxHQUFHLEVBQUUsRUE3d0JiLElBQUksQUE0dkJELFdBQVcsQ0FlVixxQkFBcUIsQ0FFbkIsRUFBRSxHQUFHLEVBQUU7RUE3d0JiLElBQUksQUE0dkJELFdBQVcsQ0FnQlYsZUFBZSxDQUNiLEVBQUUsR0FBRyxFQUFFLENBQUM7SUFDTixVQUFVLEVBQUUsR0FBRyxDQUFDLEtBQUssQ2IvdkJWLE9BQU87SWFnd0JsQixVQUFVLEViN3hCRCxJQUFJO0lhOHhCYixXQUFXLEViOXhCRixJQUFJLEdhK3hCZDtFQWp4QlAsQUF3eEJJLElBeHhCQSxBQXV4QkQsV0FBVyxDQUNWLFNBQVMsQ0FBQztJQUNSLE9BQU8sRUFBRSxLQUFLO0lBQ2QsZUFBZSxFQUFFLElBQUk7SUFDckIsY0FBYyxFQUFFLElBQUk7SUFDcEIsT0FBTyxFQUFFLElBQUksR0FLZDtJQWp5QkwsQUE4eEJNLElBOXhCRixBQXV4QkQsV0FBVyxDQUNWLFNBQVMsQUFNTixNQUFNLENBQUM7TUFDTixLQUFLLEVicHhCUCxPQUFPLEdhcXhCTjtFQWh5QlAsQUFreUJJLElBbHlCQSxBQXV4QkQsV0FBVyxDQVdWLFNBQVMsQ0FBQztJQUNSLE9BQU8sRUFBRSxDQUFDLEdBQ1g7RUFweUJMLEFBdXlCTSxJQXZ5QkYsQUF1eEJELFdBQVcsQ0FlVixlQUFlLENBQ2IsRUFBRSxHQUFHLEVBQUUsQ0FBQztJQUNOLFVBQVUsRUFBRSxDQUFDO0lBQ2IsV0FBVyxFQUFFLENBQUMsR0FDZjtFQTF5QlAsQUFpekJJLElBanpCQSxBQWd6QkQsYUFBYSxDQUNaLFVBQVUsQ0FBQztJQUNULE1BQU0sRUFBRSxPQUFPLEdBQ2hCO0VBbnpCTCxBQXF6QkksSUFyekJBLEFBZ3pCRCxhQUFhLENBS1osU0FBUyxDQUFDO0lBQ1IsYUFBYSxFQUFFLElBQUk7SUFDbkIsT0FBTyxFQUFFLElBQUksR0FDZDtFQXh6QkwsQUEyekJNLElBM3pCRixBQWd6QkQsYUFBYSxBQVVYLE1BQU0sQ0FDTCxTQUFTLENBQUM7SUFDUixPQUFPLEVBQUUsS0FBSyxHQUNmO0VBN3pCUCxBQW0wQkUsSUFuMEJFLEFBbTBCRCxlQUFlLENBQUM7SUFDZixXQUFXLEVBQUUsTUFBTTtJQUNuQixnQkFBZ0IsRUFBRSxPQUFPO0lBQ3pCLE9BQU8sRUFBRSxJQUFJLEdBUWQ7SUE5MEJILEFBdzBCSSxJQXgwQkEsQUFtMEJELGVBQWUsQ0FLZCxRQUFRLENBQUM7TUFDUCxJQUFJLEVBQUUsQ0FBQztNQUNQLGNBQWMsRUFBRSxJQUFJO01BQ3BCLFdBQVcsRUFBRSxJQUFJO01BQ2pCLFVBQVUsRUFBRSxNQUFNLEdBQ25CO0VBNzBCTCxBQW0xQkksSUFuMUJBLEFBazFCRCxXQUFXLENBQ1YsU0FBUyxDQUFDO0lBQ1IsYUFBYSxFQUFFLElBQUksR0FDcEI7O0FDcjNCTCxBQUFBLFdBQVcsQ0FBQztFQUVWLFNBQVMsRUFBRSxPQUFPO0VBQ2xCLE1BQU0sRUFBRSxnQkFBZ0I7RUFDeEIsY0FBYyxFQUFFLFNBQVMsR0E2SDFCO0VBaklELEE3RmlCRSxXNkZqQlMsQTdGaUJSLE9BQU8sQ0FBQztJQUNQLEtBQUssRUFBRSxJQUFJO0lBQ1gsT0FBTyxFQUFFLEVBQUU7SUFDWCxPQUFPLEVBQUUsS0FBSyxHQUNmO0U2RnJCSCxBQU1FLFdBTlM7RUFBWCxXQUFXLENBT1QsQ0FBQyxDQUFDO0lBQ0EsS0FBSyxFZDBDSyxJQUFJLEdjekNmO0VBVEgsQUFXRSxXQVhTLENBV1QsQ0FBQyxDQUFDO0lBQ0EsT0FBTyxFQUFFLEtBQUs7SUFDZCxlQUFlLEVBQUUsSUFBSSxHQUN0QjtFQWRILEFBZ0JFLFdBaEJTLENBZ0JQLENBQUMsQUFBQSxNQUFNLENBQUM7SUFDUixLQUFLLEVkMEJILE9BQU8sR2N6QlY7RUFsQkgsQUFvQkUsV0FwQlMsQ0FvQlQsYUFBYTtFQXBCZixXQUFXLENBcUJULGFBQWEsQ0FBQztJaEVKWixLQUFRLEVvQndJRSxHQUFnQztJcEJ4STFDLEtBQVEsRUlBZ0QsSUFBSTtJSkE1RCxZQUFRLEVxQnFGRSxRQUFZO0lyQnJGdEIsYUFBUSxFcUJxRkUsUUFBWSxHMkMvRXZCO0VBdkJILEFBeUJFLFdBekJTLENBeUJULE9BQU8sQ0FBQztJQUNOLE9BQU8sRUFBRSxJQUFJO0lBQ2IsVUFBVSxFQUFFLE1BQU0sR0FVbkI7SUFyQ0gsQUE2QkksV0E3Qk8sQ0F5QlQsT0FBTyxDQUlMLEVBQUUsQ0FBQztNQUNELE9BQU8sRUFBRSxZQUFZLEdBQ3RCO0lBL0JMLEFBaUNJLFdBakNPLENBeUJULE9BQU8sQ0FRTCxZQUFZO0lBakNoQixXQUFXLENBeUJULE9BQU8sQ0FTTCxhQUFhLENBQUM7TUFDWixPQUFPLEVBQUUsSUFBSSxHQUNkO0VBcENMLEFBdUNFLFdBdkNTLENBdUNULGFBQWEsQ0FBQyxDQUFDO0VBdkNqQixXQUFXLENBd0NULGFBQWEsQ0FBQyxDQUFDO0VBeENqQixXQUFXLENBeUNULGVBQWU7RUF6Q2pCLFdBQVcsQ0EwQ1Qsa0JBQWtCO0VBMUNwQixXQUFXLENBMkNULGtCQUFrQixDQUFDO0lBQ2pCLE9BQU8sRUFBRSxNQUFNLEdBQ2hCO0VBN0NILEFBK0NFLFdBL0NTLENBK0NULFlBQVk7RUEvQ2QsV0FBVyxDQWdEVCxhQUFhLENBQUM7SUFDWixPQUFPLEVBQUUsS0FBSztJQUNkLFVBQVUsRUFBRSxHQUFHLEdBQ2hCO0VBbkRILEFBcURFLFdBckRTLENBcURULGFBQWEsQ0FBQztJQUNaLFVBQVUsRUFBRSxJQUFJLEdBVWpCO0lBaEVILEFBd0RJLFdBeERPLENBcURULGFBQWEsQ0FHWCxDQUFDLENBQUM7TUFDQSxZQUFZLEVBQUUsQ0FBQyxHQUNoQjtJQTFETCxBQTRESSxXQTVETyxDQXFEVCxhQUFhLENBT1gsWUFBWSxDQUFDO01BQ1gsT0FBTyxFQUFFLFlBQVk7TUFDckIsWUFBWSxFQUFFLEdBQUcsR0FDbEI7RUEvREwsQUFrRUUsV0FsRVMsQ0FrRVQsYUFBYSxDQUFDO0lBQ1osS0FBSyxFQUFFLEtBQUs7SUFDWixVQUFVLEVBQUUsS0FBSyxHQVVsQjtJQTlFSCxBQXNFSSxXQXRFTyxDQWtFVCxhQUFhLENBSVgsQ0FBQyxDQUFDO01BQ0EsYUFBYSxFQUFFLENBQUMsR0FDakI7SUF4RUwsQUEwRUksV0ExRU8sQ0FrRVQsYUFBYSxDQVFYLGFBQWEsQ0FBQztNQUNaLE9BQU8sRUFBRSxZQUFZO01BQ3JCLFdBQVcsRUFBRSxHQUFHLEdBQ2pCO0VBN0VMLEFBZ0ZFLFdBaEZTLENBZ0ZULFVBQVUsQ0FBQztJQUNULEtBQUssRWR0Q0gsT0FBTyxHY3VDVjtFbkNwQkMsTUFBTSxFQUFHLFNBQVMsRUFBRSxLQUFLO0ltQzlEN0IsQUFBQSxXQUFXLENBQUM7TUF1RlIsVUFBVSxFQUFFLElBQUksR0EwQ25CO01BaklELEFBb0JFLFdBcEJTLENBb0JULGFBQWE7TUFwQmYsV0FBVyxDQXFCVCxhQUFhLENBcUVHO1FoRXpFZCxLQUFRLEVvQndJRSxTQUFnQztRcEJ4STFDLEtBQVEsRUlBZ0QsSUFBSTtRSkE1RCxZQUFRLEVxQnFGRSxRQUFZO1FyQnJGdEIsYUFBUSxFcUJxRkUsUUFBWTtRMkNWcEIsYUFBYSxFQUFFLENBQUMsR0FDakI7TUE3RkwsQUFxREUsV0FyRFMsQ0FxRFQsYUFBYSxDQTBDRztRQUNaLFlBQVksRUFBRSxDQUFDLEdBQ2hCO01BakdMLEFBa0VFLFdBbEVTLENBa0VULGFBQWEsQ0FpQ0c7UUFDWixLQUFLLEVBQUUsS0FBSztRQUNaLGFBQWEsRUFBRSxDQUFDLEdBQ2pCO01BdEdMLEFBeUJFLFdBekJTLENBeUJULE9BQU8sQ0ErRUc7UWhFdkZSLEtBQVEsRW9Cd0lFLFNBQWdDO1FwQnhJMUMsS0FBUSxFSUFnRCxJQUFJO1FKQTVELFlBQVEsRXFCcUZFLFFBQVk7UXJCckZ0QixhQUFRLEVxQnFGRSxRQUFZO1EyQ0lwQixPQUFPLEVBQUUsS0FBSyxHQUNmO0VuQzdDRCxNQUFNLEVBQUcsU0FBUyxFQUFFLEtBQUs7SW1DOUQ3QixBQUFBLFdBQVcsQ0FBQztNQStHUixTQUFTLEVBQUUsSUFBSSxHQWtCbEI7TUFqSUQsQUF1Q0UsV0F2Q1MsQ0F1Q1QsYUFBYSxDQUFDLENBQUM7TUF2Q2pCLFdBQVcsQ0F3Q1QsYUFBYSxDQUFDLENBQUM7TUF4Q2pCLFdBQVcsQ0F5Q1QsZUFBZTtNQXpDakIsV0FBVyxDQTBDVCxrQkFBa0I7TUExQ3BCLFdBQVcsQ0EyQ1Qsa0JBQWtCLENBMEVHO1FBQ2pCLE9BQU8sRUFBRSxPQUFPLEdBQ2pCO01BdkhMLEFBaUNJLFdBakNPLENBeUJULE9BQU8sQ0FRTCxZQUFZO01BakNoQixXQUFXLENBeUJULE9BQU8sQ0FTTCxhQUFhLENBeUZHO1FBQ1osT0FBTyxFQUFFLEtBQUs7UUFDZCxVQUFVLEVBQUUsR0FBRyxHQUNoQjs7QUNoSVAsQUFBQSxjQUFjLENBQUM7RUFDWCxVQUFVLEVBQUUsT0FBTyxDQUFDLEtBQWlCLENmNkJyQixvQ0FBd0M7RWU1QnhELGdCQUFnQixFQUFFLG1CQUFtQjtFQUNyQyxPQUFPLEVBQUUsSUFBSTtFQUNiLE1BQU0sRUFBRSxJQUFJO0VBQ1osSUFBSSxFQUFFLENBQUM7RUFDUCxPQUFPLEVBQUUsQ0FBQztFQUNWLFFBQVEsRUFBRSxJQUFJO0VBQ2QsVUFBVSxFQUFFLE1BQU07RUFDbEIsUUFBUSxFQUFFLEtBQUs7RUFDZixHQUFHLEVBQUUsQ0FBQztFQUNOLEtBQUssRUFBRSxJQUFJO0VBQ1gsT0FBTyxFQUFFLElBQUksR0FNaEI7RUFKRyxBQUFBLGVBQWUsQ0FkbkIsY0FBYyxDQWNRO0lBQ2QsT0FBTyxFQUFFLEtBQUs7SUFDZCxPQUFPLEVBQUUsQ0FBQyxHQUNiOztBQUtMLEFBQUEsZUFBZSxDQUFDO0VBQ1osUUFBUSxFQUFFLE1BQU0sR0FDbkI7O0FBRUQsQUFBQSxPQUFPLENBQUM7RWpFUEosS0FBUSxFb0J3SUUsU0FBZ0M7RXBCeEkxQyxLQUFRLEVJQWdELElBQUk7RUpBNUQsWUFBUSxFcUJxRkUsUUFBWTtFckJyRnRCLGFBQVEsRXFCcUZFLFFBQVk7RTRDNUV0QixLQUFLLEVBQUUsSUFBSTtFQUNYLE1BQU0sRTdDOEhJLEdBQWdDLEM2QzlIMUIsSUFBSSxHQVd2QjtFcEN3QkcsTUFBTSxFQUFHLFNBQVMsRUFBRSxLQUFLO0lvQ3RDN0IsQUFBQSxPQUFPLENBQUM7TUFNQSxhQUFhLEU3QzJIUCxTQUFnQztNNkMxSHRDLFVBQVUsRTdDMEhKLFNBQWdDLEc2Q25IN0M7RXBDd0JHLE1BQU0sRUFBRyxTQUFTLEVBQUUsS0FBSztJb0N0QzdCLEFBQUEsT0FBTyxDQUFDO01BV0EsYUFBYSxFN0NzSFAsUUFBZ0M7TTZDckh0QyxVQUFVLEU3Q3FISixRQUFnQyxHNkNuSDdDOztBQ3RDRCxBQUFBLGNBQWMsQUFBQSxlQUFlLENBQUM7RUFDNUIsT0FBTyxFQUFFLEtBQUssR0F1Q2Y7RUF4Q0QsQUFHRSxjQUhZLEFBQUEsZUFBZSxDQUczQixPQUFPLENBQUM7SUFDTixVQUFVLEVBQUUsVUFBVTtJQUN0QixNQUFNLEVBQUUsSUFBSTtJQUNaLE1BQU0sRUFBRSxNQUFNO0lBQ2QsU0FBUyxFQUFFLE1BQWE7SUFDeEIsT0FBTyxFQUFFLElBQUk7SUFDYixRQUFRLEVBQUUsUUFBUTtJQUNsQixLQUFLLEVBQUUsSUFBSSxHQU9aO0lBakJILEFBWUksY0FaVSxBQUFBLGVBQWUsQ0FHM0IsT0FBTyxDQVNMLFFBQVEsQ0FBQztNQUNQLFFBQVEsRUFBRSxRQUFRO01BQ2xCLEtBQUssRUFBRSxJQUFJO01BQ1gsR0FBRyxFQUFFLElBQUksR0FDVjtFQWhCTCxBQW1CRSxjQW5CWSxBQUFBLGVBQWUsQ0FtQjNCLE1BQU0sQ0FBQztJQUNMLE1BQU0sRUFBRSxJQUFJO0lBQ1osS0FBSyxFQUFFLElBQUksR0FDWjtFckN3Q0MsTUFBTSxFQUFHLFNBQVMsRUFBRSxLQUFLO0lxQzlEN0IsQUFHRSxjQUhZLEFBQUEsZUFBZSxDQUczQixPQUFPLENBc0JHO01BQ04sVUFBVSxFQUFFLEtBQUssR0FDbEI7RXJDbUNELE1BQU0sRUFBRyxTQUFTLEVBQUUsS0FBSztJcUM5RDdCLEFBR0UsY0FIWSxBQUFBLGVBQWUsQ0FHM0IsT0FBTyxDQTRCRztNQUNOLFVBQVUsRUFBRSxLQUFLO01BQ2pCLFdBQVcsRUFBRSxJQUFJLEdBS2xCO01BdENMLEFBWUksY0FaVSxBQUFBLGVBQWUsQ0FHM0IsT0FBTyxDQVNMLFFBQVEsQ0F1Qkc7UUFDUCxHQUFHLEVBQUUsSUFBSSxHQUNWOztBQ3ZDUCxBQUFBLFVBQVUsQ0FBQztFbkVtQlAsS0FBUSxFd0JaYyxJQUFJO0V4QlkxQixLQUFRLEVvQnlIc0QsSUFBSTtFcEJ6SGxFLEtBQVEsRUlBZ0QsSUFBSTtFSkE1RCxZQUFRLEVxQnFGRSxRQUFZO0VyQnJGdEIsYUFBUSxFcUJxRkUsUUFBWTtFOENyR3hCLEtBQUssRUFBRSxJQUFJO0VBQ1gsUUFBUSxFQUFFLFFBQVEsR0FTbkI7RUFiRCxBaEdtQkUsVWdHbkJRLEFoR21CUCxPQUFPLENBQUM7SUFDUCxLQUFLLEVBQUUsSUFBSTtJQUNYLE9BQU8sRUFBRSxFQUFFO0lBQ1gsT0FBTyxFQUFFLEtBQUssR0FDZjtFZ0d2QkgsQUFNRSxVQU5RLENBTVIsSUFBSSxBQUFBLE1BQU0sQ0FBQztJQUNULGFBQWEsRTlDaUdILFFBQVksRzhDNUZ2QjtJdENvREMsTUFBTSxFQUFHLFNBQVMsRUFBRSxLQUFLO01zQ2hFN0IsQUFNRSxVQU5RLENBTVIsSUFBSSxBQUFBLE1BQU0sQ0FBQztRQUlQLGFBQWEsRUFBRSxJQUFtQixHQUVyQzs7QUFHSCxBQUFBLGFBQWEsQ0FBQztFQUNaLGdCQUFnQixFQUFFLElBQUksR0EwQnZCO0VBM0JELEFBR0UsYUFIVyxDQUdYLE9BQU8sQ0FBQztJQUNOLE9BQU8sRUFBRSxLQUFLO0lBQ2QsS0FBSyxFQUFFLElBQUksR0FDWjtFQU5ILEFBUUUsYUFSVyxDQVFYLFNBQVMsQ0FBQztJQUNSLE9BQU8sRWpCSk0sSUFBSSxHaUJLbEI7RUFWSCxBQVlFLGFBWlcsQ0FZWCxNQUFNO0VBWlIsYUFBYSxDQWFYLE9BQU8sQ0FBQztJQUNOLGNBQWMsRUFBRSxTQUFTLEdBQzFCO0VBZkgsQUFpQkUsYUFqQlcsQ0FpQlgsTUFBTSxDQUFDO0lBQ0wsT0FBTyxFQUFFLEtBQUs7SUFDZCxTQUFTLEVBQUUsTUFBTTtJQUNqQixhQUFhLEVBQUUsR0FBRyxHQUNuQjtFQXJCSCxBQXVCRSxhQXZCVyxDQXVCWCxPQUFPLENBQUM7SUFFTixTQUFTLEVBQUUsSUFBSSxHQUNoQjs7QUN6Q0g7Ozs7RUFJRTtBQUVGLEFBQUEsY0FBYyxDQUFDO0VBQ2IsU0FBUyxFQUFFLE9BQU87RUFDbEIsV0FBVyxFQUFFLEtBQUs7RUFDbEIsYUFBYSxFQUFFLElBQUksR0EySHBCO0VBOUhELEFBS0UsY0FMWSxDQUtaLEVBQUUsQ0FBQztJQUNELGFBQWEsRUFBRSxHQUFHLENBQUMsS0FBSyxDbEJxQ1QsT0FBTztJa0JwQ3RCLE9BQU8sRUFBRSxLQUFLLEdBQ2Y7RUFSSCxBQVVFLGNBVlksQ0FVWixjQUFjLENBQUM7SUFDYixLQUFLLEVsQmtDVyxPQUFPO0lrQmpDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxNQUFNLEVBQUUsSUFBSTtJQUNaLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLFlBQVksRUFBRSxJQUFJO0lBQ2xCLGFBQWEsRUFBRSxJQUFJO0lBQ25CLGVBQWUsRUFBRSxJQUFJO0lBQ3JCLEtBQUssRUFBRSxJQUFJLEdBQ1o7RUFuQkgsQUFxQkUsY0FyQlksQ0FxQlosYUFBYSxDQUFDO0lBQ1osS0FBSyxFQUFFLElBQUksR0FTWjtJQS9CSCxBQXdCSSxjQXhCVSxDQXFCWixhQUFhLENBR1gsQ0FBQyxDQUFDO01BQ0EsZUFBZSxFQUFFLElBQUksR0FLdEI7TUE5QkwsQUEyQk0sY0EzQlEsQ0FxQlosYUFBYSxDQUdYLENBQUMsQUFHRSxNQUFNLENBQUM7UUFDTixLQUFLLEVsQldQLE9BQU8sR2tCVk47RUE3QlAsQUFpQ0UsY0FqQ1ksQ0FpQ1osYUFBYSxDQUFDO0lBQ1osU0FBUyxFQUFFLE1BQU07SUFDakIsWUFBWSxFQUFFLElBQUksR0FXbkI7SUE5Q0gsQUFxQ0ksY0FyQ1UsQ0FpQ1osYUFBYSxDQUlYLENBQUMsQ0FBQztNQUNBLEtBQUssRWxCUUcsSUFBSTtNa0JQWixVQUFVLEVBQUUsTUFBTTtNQUNsQixlQUFlLEVBQUUsU0FBUyxHQUszQjtNQTdDTCxBQTBDTSxjQTFDUSxDQWlDWixhQUFhLENBSVgsQ0FBQyxBQUtFLE1BQU0sQ0FBQztRQUNOLEtBQUssRWxCSlAsT0FBTyxHa0JLTjtFQTVDUCxBQWdERSxjQWhEWSxDQWdEWixZQUFZLENBQUM7SUFDWCxZQUFZLEVBQUUsSUFBSTtJQUNsQixhQUFhLEVBQUUsSUFBSTtJQUNuQixLQUFLLEVsQk5XLE9BQU8sR2tCT3hCO0VBcERILEFBMkRJLGNBM0RVLENBd0RWLE9BQU8sQUFBQSxNQUFNO0VBeERqQixjQUFjLENBd0RWLE9BQU8sQUFBQSxNQUFNLENBSWIsYUFBYSxDQUFDLENBQUM7RUE1RG5CLGNBQWMsQ0F3RFYsT0FBTyxBQUFBLE1BQU0sQ0FLYixhQUFhLENBQUMsQ0FBQztFQTdEbkIsY0FBYyxDQXdEVixPQUFPLEFBQUEsTUFBTSxDQU1iLFlBQVk7RUE5RGhCLGNBQWMsQ0F5RFosT0FBTyxBQUFBLFlBQVk7RUF6RHJCLGNBQWMsQ0F5RFosT0FBTyxBQUFBLFlBQVksQ0FHakIsYUFBYSxDQUFDLENBQUM7RUE1RG5CLGNBQWMsQ0F5RFosT0FBTyxBQUFBLFlBQVksQ0FJakIsYUFBYSxDQUFDLENBQUM7RUE3RG5CLGNBQWMsQ0F5RFosT0FBTyxBQUFBLFlBQVksQ0FLakIsWUFBWTtFQTlEaEIsY0FBYyxDQTBEWixPQUFPLEFBQUEsV0FBVztFQTFEcEIsY0FBYyxDQTBEWixPQUFPLEFBQUEsV0FBVyxDQUVoQixhQUFhLENBQUMsQ0FBQztFQTVEbkIsY0FBYyxDQTBEWixPQUFPLEFBQUEsV0FBVyxDQUdoQixhQUFhLENBQUMsQ0FBQztFQTdEbkIsY0FBYyxDQTBEWixPQUFPLEFBQUEsV0FBVyxDQUloQixZQUFZLENBQUM7SUFDWCxLQUFLLEVsQnhCTCxPQUFPLEdrQnlCUjtFQWhFTCxBQXNFSSxjQXRFVSxDQW1FVixPQUFPLEFBQUEsV0FBVyxBQUFBLE1BQU0sQ0FHeEIsY0FBYztFQXRFbEIsY0FBYyxDQW9FWixPQUFPLEFBQUEsWUFBWSxDQUVqQixjQUFjO0VBdEVsQixjQUFjLENBcUVaLE9BQU8sQUFBQSxZQUFZLENBQ2pCLGNBQWMsQ0FBQztJOUZ6RGpCLFFBQVEsRUFBRSxNQUFNO0lBQ2hCLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLFdBQVcsRUFBRSxNQUFNO0k4RnlEZixtQkFBbUIsRUFBRSxPQUFPO0lBQzVCLGlCQUFpQixFQUFFLFNBQVM7SUFDNUIsZUFBZSxFQUFFLFNBQVMsR0FDM0I7RUEzRUwsQUFpRkksY0FqRlUsQ0FnRlYsT0FBTyxBQUFBLFdBQVcsQUFBQSxNQUFNLENBQ3hCLGNBQWMsQ0FBQztJQUNiLGdCQUFnQixFQUFFLG9EQUFvRCxHQUN2RTtFQW5GTCxBQTBGSSxjQTFGVSxDQXdGWixPQUFPLEFBQUEsWUFBWSxDQUVqQixjQUFjO0VBMUZsQixjQUFjLENBeUZWLE9BQU8sQUFBQSxZQUFZLEFBQUEsTUFBTSxDQUN6QixjQUFjLENBQUM7SUFDYixnQkFBZ0IsRUFBRSxvQ0FBb0MsR0FDdkQ7RUE1RkwsQUFtR0ksY0FuR1UsQ0FpR1osT0FBTyxBQUFBLFlBQVksQ0FFakIsY0FBYztFQW5HbEIsY0FBYyxDQWtHVixPQUFPLEFBQUEsWUFBWSxBQUFBLE1BQU0sQ0FDekIsY0FBYyxDQUFDO0lBQ2IsZ0JBQWdCLEVBQUUsK0NBQStDLEdBQ2xFO0VBckdMLEFBNEdJLGNBNUdVLENBMEdaLE9BQU8sQUFBQSxVQUFVO0VBMUduQixjQUFjLENBMEdaLE9BQU8sQUFBQSxVQUFVLENBR2YsY0FBYztFQTdHbEIsY0FBYyxDQTJHVixPQUFPLEFBQUEsVUFBVTtFQTNHckIsY0FBYyxDQTJHVixPQUFPLEFBQUEsVUFBVSxDQUVqQixjQUFjLENBQUM7SUFDYixjQUFjLEVBQUUsSUFBSSxHQUNyQjtFdkNyREQsTUFBTSxFQUFHLFNBQVMsRUFBRSxLQUFLO0l1QzFEN0IsQUFBQSxjQUFjLENBQUM7TUFtSFgsU0FBUyxFQUFFLElBQUksR0FXbEI7TUE5SEQsQUFLRSxjQUxZLENBS1osRUFBRSxDQWdIRztRQUNELE9BQU8sRUFBRSxRQUFRLEdBQ2xCO01BdkhMLEFBVUUsY0FWWSxDQVVaLGNBQWMsQ0ErR0c7UUFDYixXQUFXLEVBQUUsS0FBSztRQUNsQixZQUFZLEVBQUUsSUFBSSxHQUNuQjs7QUNsSUw7OztHQUdHO0FBRUgsQUFBQSxZQUFZLENBQUM7RUFDWCxTQUFTLEVBQUUsT0FBTyxHQTBDbkI7RUEzQ0QsQUFHRSxZQUhVLENBR1YsRUFBRSxDQUFDO0lBQ0QsV0FBVyxFQUFFLE1BQU0sR0FLcEI7SUFUSCxBQU1JLFlBTlEsQ0FHVixFQUFFLEdBR0ksRUFBRSxDQUFDO01BQ0wsVUFBVSxFQUFFLE1BQU0sR0FDbkI7RUFSTCxBQVdFLFlBWFUsQ0FXVixPQUFPO0VBWFQsWUFBWSxDQVlWLE9BQU8sQ0FBQztJQUNOLFdBQVcsRUFBRSxLQUFLLEdBQ25CO0VBZEgsQUFnQkUsWUFoQlUsQ0FnQlYsT0FBTyxDQUFDO0lBQ04sS0FBSyxFbkJzQkEsT0FBTztJbUJyQlosU0FBUyxFQUFFLE1BQU07SUFDakIsY0FBYyxFQUFFLFNBQVMsR0FDMUI7RUFwQkgsQUF1QkksWUF2QlEsQ0FzQlYsT0FBTyxDQUNMLENBQUMsQ0FBQztJQUNBLGVBQWUsRUFBRSxJQUFJLEdBS3RCO0lBN0JMLEFBMEJNLFlBMUJNLENBc0JWLE9BQU8sQ0FDTCxDQUFDLEFBR0UsTUFBTSxDQUFDO01BQ04sS0FBSyxFbkJhUCxPQUFPLEdtQlpOO0V4QytCSCxNQUFNLEVBQUcsU0FBUyxFQUFFLEtBQUs7SXdDM0Q3QixBQUFBLFlBQVksQ0FBQztNQWlDVCxTQUFTLEVBQUUsSUFBSSxHQVVsQjtNQTNDRCxBQWdCRSxZQWhCVSxDQWdCVixPQUFPLENBbUJHO1FBQ04sU0FBUyxFQUFFLE1BQU0sR0FDbEI7TUFyQ0wsQUFNSSxZQU5RLENBR1YsRUFBRSxHQUdJLEVBQUUsQ0FpQ0U7UUFDTixVQUFVLEVBQUUsT0FBTyxHQUNwQjs7QUM1Q0wsQUFBQSxlQUFlLENBQUM7RUFDZCxRQUFRLEVBQUUsUUFBUSxHQWFuQjtFQWRELEFBSUksZUFKVyxBQUdaLFlBQVksQ0FDWCxRQUFRLENBQUM7SUFDUCxPQUFPLEVBQUUsR0FBRyxHQUNiO0VBTkwsQUFTRSxlQVRhLENBU2IsS0FBSyxBQUFBLFNBQVMsRUFUaEIsZUFBZSxDWjBKZixjQUFjLENGakpYLFNBQVMsQUUySlYsVUFBVSxFQVZaLGNBQWMsQ1kxSmQsZUFBZSxDZFNaLFNBQVMsQUUySlYsVUFBVSxDWTNKSztJQUNiLElBQUksRUFBRSxJQUFJO0lBQ1YsUUFBUSxFQUFFLFFBQVE7SUFDbEIsR0FBRyxFQUFFLElBQUksR0FDVjs7QUNYSCxBQUFBLGFBQWEsQ0FBQztFQUVaLGdCQUFnQixFQUFFLElBQUk7RUFDdEIsU0FBUyxFQUFFLE1BQU07RUFDakIsT0FBTyxFQUFFLE1BQU07RUFDZixjQUFjLEVBQUUsU0FBUyxHQTJDMUI7RUFoREQsQUFPRSxhQVBXLENBT1gsZ0JBQWdCLENBQUM7SUFDZixPQUFPLEVBQUUsTUFBTSxHQUNoQjtFQVRILEFBV0UsYUFYVyxDQVdYLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDO0lBQ2xDLFVBQVUsRUFBRSxpQkFBaUIsR0FDOUI7RUFiSCxBQWVFLGFBZlcsQ0FlWCxFQUFFLENBQUM7SUFDRCxlQUFlLEVBQUUsSUFBSTtJQUNyQixNQUFNLEVBQUUsQ0FBQztJQUNULE9BQU8sRUFBRSxDQUFDLEdBQ1g7RUFuQkgsQUFxQkUsYUFyQlcsQ0FxQlgsQ0FBQyxDQUFDO0lBQ0EsT0FBTyxFQUFFLEtBQUs7SUFDZCxPQUFPLEVBQUUsTUFBTTtJQUNmLGVBQWUsRUFBRSxJQUFJLEdBU3RCO0lBakNILEFBcUJFLGFBckJXLENBcUJYLENBQUMsQ0FLRztNQUNBLFVBQVUsRUFBRSxLQUFLLENyQkNPLEtBQUssQ0FGZixvQ0FBd0MsR3FCTXZEO01BaENMLEFBNkJNLGFBN0JPLENBcUJYLENBQUMsQUFRSSxNQUFNLENBQUM7UUFDTixLQUFLLEVyQldQLE9BQU8sR3FCVk47RUEvQlAsQUFvQ0ksYUFwQ1MsQUFtQ1YsUUFBUSxDQUNQLENBQUMsQ0FBQztJQUNBLEtBQUssRXJCVVMsT0FBTyxHcUJUdEI7RTFDc0JELE1BQU0sRUFBRyxTQUFTLEVBQUUsS0FBSztJMEM1RDdCLEFBQUEsYUFBYSxDQUFDO01BMENWLFNBQVMsRUFBRSxPQUFPLEdBTXJCO01BaERELEFBcUJFLGFBckJXLENBcUJYLENBQUMsQ0F1Qkc7UUFDQSxPQUFPLEVBQUUsS0FBSyxHQUNmOztBQ2xETCxBQUdJLGVBSFcsQUFBQSxPQUFPLENBRXBCLGlCQUFpQixDQUNmLEdBQUc7QUFGUCxlQUFlLEFBQUEsTUFBTSxDQUNuQixpQkFBaUIsQ0FDZixHQUFHLENBQUM7RUFDRixPQUFPLEVBQUUsS0FBSztFQUNkLE1BQU0sRUFBRSxNQUFNO0VBQ2QsS0FBSyxFQUFFLElBQUksR0FLWjtFM0NxREQsTUFBTSxFQUFHLFNBQVMsRUFBRSxLQUFLO0kyQ2hFN0IsQUFHSSxlQUhXLEFBQUEsT0FBTyxDQUVwQixpQkFBaUIsQ0FDZixHQUFHO0lBRlAsZUFBZSxBQUFBLE1BQU0sQ0FDbkIsaUJBQWlCLENBQ2YsR0FBRyxDQUFDO01BTUEsS0FBSyxFQUFFLElBQUksR0FFZDs7QUFNTCxBQUlFLGVBSmEsQUFBQSxTQUFTLENBSXRCLFlBQVksQ0FBQztFQUVYLGNBQWMsRW5EaUZKLFFBQVksR21EN0N2QjtFQTFDSCxBckdFRSxlcUdGYSxBQUFBLFNBQVMsQ0FJdEIsWUFBWSxBckdGWCxPQUFPLENBQUM7SUFDUCxLQUFLLEVBQUUsSUFBSTtJQUNYLE9BQU8sRUFBRSxFQUFFO0lBQ1gsT0FBTyxFQUFFLEtBQUssR0FDZjtFMER5Q0MsTUFBTSxFQUFHLFNBQVMsRUFBRSxLQUFLO0kyQy9DN0IsQUFJRSxlQUphLEFBQUEsU0FBUyxDQUl0QixZQUFZLENBQUM7TUFLVCxXQUFXLEVBQUUsU0FBYTtNQUMxQixZQUFZLEVBQUUsU0FBYSxHQWdDOUI7TUExQ0gsQUFZTSxlQVpTLEFBQUEsU0FBUyxDQUl0QixZQUFZLENBUVIsRUFBRSxDQUFDO1F4RVZMLEtBQVEsRW9Cd0lFLEdBQWdDO1FwQnhJMUMsS0FBUSxFSUFnRCxJQUFJO1FKQTVELFlBQVEsRXFCcUZFLFFBQVk7UXJCckZ0QixhQUFRLEVxQnFGRSxRQUFZLEdtRC9EbkI7UUF4QlAsQUFpQlEsZUFqQk8sQUFBQSxTQUFTLENBSXRCLFlBQVksQ0FRUixFQUFFLEFBS0MsVUFBVyxDQUFBLElBQUksRUFBRTtVQUNoQixLQUFLLEVBQUUsSUFBSSxHQUNaO1FBbkJULEFBcUJRLGVBckJPLEFBQUEsU0FBUyxDQUl0QixZQUFZLENBUVIsRUFBRSxBQVNDLFVBQVcsQ0FBQSxJQUFJLEVBQUU7VUFDaEIsS0FBSyxFQUFFLElBQUksR0FDWjtFM0N3QkwsTUFBTSxFQUFHLFNBQVMsRUFBRSxLQUFLO0kyQy9DN0IsQUFZTSxlQVpTLEFBQUEsU0FBUyxDQUl0QixZQUFZLENBUVIsRUFBRSxDQWdCQztNeEUxQkwsS0FBUSxFb0J3SUUsU0FBZ0M7TXBCeEkxQyxLQUFRLEVJQWdELElBQUk7TUpBNUQsWUFBUSxFcUJxRkUsUUFBWTtNckJyRnRCLGFBQVEsRXFCcUZFLFFBQVksR21EL0NuQjtNQXhDUCxBQWlCUSxlQWpCTyxBQUFBLFNBQVMsQ0FJdEIsWUFBWSxDQVFSLEVBQUUsQUFLQyxVQUFXLENBQUEsSUFBSSxFQWdCRTtRQUNoQixLQUFLLEVBQUUsSUFBSSxHQUNaO01BbkNULEFBcUJRLGVBckJPLEFBQUEsU0FBUyxDQUl0QixZQUFZLENBUVIsRUFBRSxBQVNDLFVBQVcsQ0FBQSxJQUFJLEVBZ0JFO1FBQ2hCLEtBQUssRUFBRSxJQUFJLEdBQ1o7O0FDeERULEFBQ0Usb0JBRGtCLENBQ2xCLFVBQVUsQ0FBQztFQUNULFNBQVMsRUFBRSxNQUFNO0VBQ2pCLFdBQVcsRUFBRSxLQUFLO0VBQ2xCLE1BQU0sRUFBRSxZQUFZO0VBQ3BCLGNBQWMsRUFBRSxTQUFTLEdBQzFCOztBQU5ILEFBUUUsb0JBUmtCLENBUWxCLFNBQVMsQ0FBQztFQUNSLFlBQVksRUFBRSxDQUFDO0VBQ2YsYUFBYSxFQUFFLENBQUMsR0FDakI7O0FBWEgsQUFlRSxvQkFma0IsQ0FlbEIsZ0JBQWdCO0FBZmxCLG9CQUFvQixDQWdCbEIscUJBQXFCLENBQUM7RUFDcEIsWUFBWSxFcER1RkYsUUFBWTtFb0R0RnRCLGFBQWEsRXBEc0ZILFFBQVksR29EckZ2Qjs7QUFuQkgsQUFxQkUsb0JBckJrQixDQXFCbEIsTUFBTSxDQUFDO0VBQ0wsV0FBVyxFQUFFLE1BQU07RUFDbkIsT0FBTyxFcERpRkcsUUFBWSxDb0RqRkosQ0FBQyxHQUNwQjs7QUF4QkgsQUEwQkUsb0JBMUJrQixDQTBCbEIsV0FBVyxDQUFDO0VBQ1YsVUFBVSxFQUFFLGlCQUFpQjtFQUM3QixVQUFVLEVBQUUsSUFBSTtFQUNoQixXQUFXLEVBQUUsR0FBRyxHQUtqQjtFQWxDSCxBQStCSSxvQkEvQmdCLENBMEJsQixXQUFXLENBS1QsQ0FBQyxDQUFDO0lBQ0EsTUFBTSxFQUFFLEtBQUssR0FDZDs7QUFqQ0wsQUFzQ0Usb0JBdENrQixDQXNDbEIsZ0JBQWdCLENBQUM7RUFDZixhQUFhLEVBQUUsaUJBQWlCO0VBQ2hDLGNBQWMsRUFBRSxJQUFJO0VBQ3BCLGFBQWEsRUFBRSxJQUFJLEdBQ3BCOztBQTFDSCxBQTRDRSxvQkE1Q2tCLENBNENsQixlQUFlO0FBNUNqQixvQkFBb0IsQ0E2Q2xCLGFBQWEsQ0FBQztFQUNaLEtBQUssRXZCUVEsT0FBTztFdUJQcEIsY0FBYyxFQUFFLFNBQVMsR0FDMUI7O0FBaERILEFBa0RFLG9CQWxEa0IsQ0FrRGxCLGVBQWUsQ0FBQztFQUVkLFNBQVMsRUFBRSxPQUFPLEdBQ25COztBQXJESCxBQXVERSxvQkF2RGtCLENBdURsQixhQUFhLENBQUM7RUFFWixTQUFTLEVBQUUsTUFBTSxHQUNsQjs7QUExREgsQUE4REUsb0JBOURrQixDQThEbEIscUJBQXFCLENBQUM7RUFFcEIsYUFBYSxFcER3Q0gsUUFBWSxHb0R2Q3ZCO0VBakVILEF0R21CRSxvQnNHbkJrQixDQThEbEIscUJBQXFCLEF0RzNDcEIsT0FBTyxDQUFDO0lBQ1AsS0FBSyxFQUFFLElBQUk7SUFDWCxPQUFPLEVBQUUsRUFBRTtJQUNYLE9BQU8sRUFBRSxLQUFLLEdBQ2Y7O0FzR3ZCSCxBQW1FRSxvQkFuRWtCLENBbUVsQixhQUFhLENBQUM7RUFDWixLQUFLLEVBQUUsS0FBSztFQUNaLFlBQVksRUFBRSxJQUFJLEdBa0JuQjtFQXZGSCxBQXVFSSxvQkF2RWdCLENBbUVsQixhQUFhLENBSVgsRUFBRSxDQUFDO0lBQ0QsS0FBSyxFQUFFLElBQUksR0FDWjtFQXpFTCxBQTJFSSxvQkEzRWdCLENBbUVsQixhQUFhLENBUVgsQ0FBQyxDQUFDO0lBQ0EsT0FBTyxFQUFFLElBQUk7SUFDYixPQUFPLEVBQUUsR0FBRyxHQVNiO0lBdEZMLEFBMkVJLG9CQTNFZ0IsQ0FtRWxCLGFBQWEsQ0FRWCxDQUFDLENBSUc7TUFDQSxVQUFVLEVBQUUsT0FBTyxDdkJoREcsS0FBSyxDQUZmLG9DQUF3QyxHdUJ1RHJEO01BckZQLEFBa0ZRLG9CQWxGWSxDQW1FbEIsYUFBYSxDQVFYLENBQUMsQUFPSSxNQUFNLENBQUM7UUFDTixPQUFPLEVBQUUsQ0FBQyxHQUNYOztBNUNwQkwsTUFBTSxFQUFHLFNBQVMsRUFBRSxLQUFLO0U0Q2hFN0IsQUFRRSxvQkFSa0IsQ0FRbEIsU0FBUyxDQWtGRztJQUNSLFlBQVksRXBEYUosUUFBWSxHb0RackI7RUE1RkwsQUFlRSxvQkFma0IsQ0FlbEIsZ0JBQWdCO0VBZmxCLG9CQUFvQixDQWdCbEIscUJBQXFCLENBK0VHO0lBQ3BCLFlBQVksRUFBRSxDQUFDO0lBQ2YsYUFBYSxFdkI3RUYsSUFBSSxHdUI4RWhCO0VBbEdMLEFBcUJFLG9CQXJCa0IsQ0FxQmxCLE1BQU0sQ0ErRUc7SUFDTCxPQUFPLEVBQUUsUUFBUSxHQUNsQjs7QUFNTCxBQUFBLGVBQWUsQ0FBQztFQUVkLGdCQUFnQixFQUFFLElBQUksR0E0RXZCO0VBOUVELEF0R3pGRSxlc0d5RmEsQXRHekZaLE9BQU8sQ0FBQztJQUNQLEtBQUssRUFBRSxJQUFJO0lBQ1gsT0FBTyxFQUFFLEVBQUU7SUFDWCxPQUFPLEVBQUUsS0FBSyxHQUNmO0VzR3FGSCxBQUlFLGVBSmEsQ0FJYixNQUFNLENBQUM7SUFFTCxhQUFhLEVBQUUsaUJBQWlCO0lBQ2hDLE9BQU8sRUFBRSxHQUFHLENwRFhGLFFBQVk7SW9EWXRCLGNBQWMsRUFBRSxTQUFTLEdBQzFCO0VBVEgsQUFXRSxlQVhhLENBV2IsU0FBUyxDQUFDO0l6RXBHUixLQUFRLEVvQndJRSxHQUFnQztJcEJ4STFDLEtBQVEsRUlBZ0QsSUFBSTtJSkE1RCxZQUFRLEVxQnFGRSxRQUFZO0lyQnJGdEIsYUFBUSxFcUJxRkUsUUFBWTtJb0RpQnRCLFdBQVcsRUFBRSxLQUFLO0lBQ2xCLGNBQWMsRUFBRSxJQUFJO0lBQ3BCLGVBQWUsRUFBRSxJQUFJLEdBaUN0QjtJQWhESCxBQWlCSSxlQWpCVyxDQVdiLFNBQVMsQUFNTixVQUFXLENBQUEsSUFBSSxFQUFFO01BQ2hCLEtBQUssRUFBRSxJQUFJLEdBQ1o7STVDL0RELE1BQU0sRUFBRyxTQUFTLEVBQUUsS0FBSztNNEM0QzdCLEFBV0UsZUFYYSxDQVdiLFNBQVMsQ0FBQztRekVwR1IsS0FBUSxFb0J3SUUsR0FBZ0M7UXBCeEkxQyxLQUFRLEVJQWdELElBQUk7UUpBNUQsWUFBUSxFcUJxRkUsUUFBWTtRckJyRnRCLGFBQVEsRXFCcUZFLFFBQVksR29Eb0R2QjtRQWhESCxBQWlCSSxlQWpCVyxDQVdiLFNBQVMsQUFNTixVQUFXLENBQUEsSUFBSSxFQU9JO1VBQ2hCLEtBQUssRUFBRSxJQUFJLEdBQ1o7UUExQlAsQUE0Qk0sZUE1QlMsQ0FXYixTQUFTLEFBaUJKLFVBQVcsQ0FBQSxJQUFJLEVBQUU7VUFDaEIsS0FBSyxFQUFFLElBQUksR0FDWjtJNUMxRUgsTUFBTSxFQUFHLFNBQVMsRUFBRSxLQUFLO000QzRDN0IsQUFXRSxlQVhhLENBV2IsU0FBUyxDQUFDO1F6RXBHUixLQUFRLEVvQndJRSxTQUFnQztRcEJ4STFDLEtBQVEsRUlBZ0QsSUFBSTtRSkE1RCxZQUFRLEVxQnFGRSxRQUFZO1FyQnJGdEIsYUFBUSxFcUJxRkUsUUFBWSxHb0RvRHZCO1FBaERILEFBNEJNLGVBNUJTLENBV2IsU0FBUyxBQWlCSixVQUFXLENBQUEsSUFBSSxFQVFFO1VBQ2hCLEtBQUssRUFBRSxJQUFJLEdBQ1o7UUF0Q1AsQUF3Q00sZUF4Q1MsQ0FXYixTQUFTLEFBNkJKLFVBQVcsQ0FBQSxJQUFJLEVBQUU7VUFDaEIsS0FBSyxFQUFFLElBQUksR0FDWjtJQTFDUCxBQTZDSSxlQTdDVyxDQVdiLFNBQVMsQUFrQ04sTUFBTSxDQUFDLE9BQU8sQ0FBQztNQUNkLEtBQUssRXZCN0dMLE9BQU8sR3VCOEdSO0VBL0NMLEFBa0RFLGVBbERhLENBa0RiLE1BQU0sQ0FBQztJQUVMLE9BQU8sRXBEeERHLFFBQVksQ29Ed0RKLENBQUMsQ0FBQyxDQUFDLEdBQ3RCO0lBckRILEF0R3pGRSxlc0d5RmEsQ0FrRGIsTUFBTSxBdEczSUwsT0FBTyxDQUFDO01BQ1AsS0FBSyxFQUFFLElBQUk7TUFDWCxPQUFPLEVBQUUsRUFBRTtNQUNYLE9BQU8sRUFBRSxLQUFLLEdBQ2Y7RXNHcUZILEFBdURFLGVBdkRhLENBdURiLE9BQU8sQ0FBQztJQUNOLGFBQWEsRUFBRSxHQUFHLEdBTW5CO0lBOURILEFBMERJLGVBMURXLENBdURiLE9BQU8sQ0FHTCxHQUFHLENBQUM7TUFDRixPQUFPLEVBQUUsS0FBSztNQUNkLEtBQUssRUFBRSxJQUFJLEdBQ1o7RUE3REwsQUFnRUUsZUFoRWEsQ0FnRWIsT0FBTyxDQUFDO0lBRU4sS0FBSyxFdkJ4SFEsT0FBTztJdUJ5SHBCLGVBQWUsRUFBRSxJQUFJLEdBS3RCO0lBeEVILEFBZ0VFLGVBaEVhLENBZ0ViLE9BQU8sQ0FLSDtNQUNBLFVBQVUsRUFBRSxLQUFLLEN2QmxKTyxLQUFLLENBRmYsb0NBQXdDLEd1QnFKdkQ7RUF2RUwsQUEwRUUsZUExRWEsQ0EwRWIsY0FBYyxDQUFDO0lBQ2IsZUFBZSxFQUFFLElBQUk7SUFDckIsS0FBSyxFdkJySVcsT0FBTyxHdUJzSXhCOztBQ3pMSCxBQUNFLG9CQURrQixDQUNsQixVQUFVLENBQUM7RUFDVCxTQUFTLEVBQUUsTUFBTTtFQUNqQixXQUFXLEVBQUUsS0FBSztFQUNsQixNQUFNLEVBQUUsUUFBUTtFQUNoQixjQUFjLEVBQUUsU0FBUyxHQUMxQjs7QUFOSCxBQVFFLG9CQVJrQixDQVFsQixTQUFTLENBQUM7RUFDUixZQUFZLEVBQUUsQ0FBQyxHQUNoQjs7QUFWSCxBQWNFLG9CQWRrQixDQWNsQixjQUFjO0FBZGhCLG9CQUFvQixDQWVsQixjQUFjO0FBZmhCLG9CQUFvQixDQWdCbEIsUUFBUSxDQUFDO0VBQ1AsV0FBVyxFckR1RkQsUUFBWSxHcUR0RnZCOztBQWxCSCxBQW9CRSxvQkFwQmtCLENBb0JsQixNQUFNLENBQUM7RUFDTCxXQUFXLEVBQUUsTUFBTTtFQUNuQixPQUFPLEVyRGtGRyxRQUFZLENxRGxGSixDQUFDLEdBQ3BCOztBQXZCSCxBQXlCRSxvQkF6QmtCLENBeUJsQixjQUFjLENBQUM7RUFDYixVQUFVLEVBQUUsaUJBQWlCO0VBQzdCLFVBQVUsRUFBRSxJQUFJO0VBQ2hCLFdBQVcsRUFBRSxJQUFJLEdBSWxCO0VBaENILEFBNkJJLG9CQTdCZ0IsQ0F5QmxCLGNBQWMsQ0FJWixVQUFVLENBQUM7SUFDVCxhQUFhLEVBQUUsSUFBSSxHQUNwQjs7QUEvQkwsQUFvQ0Usb0JBcENrQixDQW9DbEIsY0FBYyxDQUFDO0VBQ2IsYUFBYSxFQUFFLGlCQUFpQixHQTZDakM7RUFsRkgsQUF1Q0ksb0JBdkNnQixDQW9DbEIsY0FBYyxDQUdaLGFBQWE7RUF2Q2pCLG9CQUFvQixDQW9DbEIsY0FBYyxDQUlaLHVCQUF1QixDQUFDO0lBQ3RCLEtBQUssRXhCYU0sT0FBTztJd0JabEIsY0FBYyxFQUFFLFNBQVMsR0FDMUI7RUEzQ0wsQUE2Q0ksb0JBN0NnQixDQW9DbEIsY0FBYyxDQVNaLGFBQWEsQ0FBQztJQUVaLFNBQVMsRUFBRSxPQUFPLEdBQ25CO0VBaERMLEFBa0RJLG9CQWxEZ0IsQ0FvQ2xCLGNBQWMsQ0FjWix1QkFBdUIsQ0FBQztJQUV0QixTQUFTLEVBQUUsTUFBTSxHQUNsQjtFQXJETCxBQXVESSxvQkF2RGdCLENBb0NsQixjQUFjLENBbUJaLEtBQUssQ0FBQztJQUVKLFVBQVUsRUFBRSxpQkFBaUI7SUFDN0IsT0FBTyxFQUFFLE1BQU07SUFDZixVQUFVLEVBQUUsSUFBSSxHQUNqQjtJQTVETCxBdkdtQkUsb0J1R25Ca0IsQ0FvQ2xCLGNBQWMsQ0FtQlosS0FBSyxBdkdwQ04sT0FBTyxDQUFDO01BQ1AsS0FBSyxFQUFFLElBQUk7TUFDWCxPQUFPLEVBQUUsRUFBRTtNQUNYLE9BQU8sRUFBRSxLQUFLLEdBQ2Y7RXVHdkJILEFBOERJLG9CQTlEZ0IsQ0FvQ2xCLGNBQWMsQ0EwQlosZUFBZTtFQTlEbkIsb0JBQW9CLENBb0NsQixjQUFjLENBMkJaLFlBQVksQ0FBQztJQUVYLEtBQUssRXhCYkcsSUFBSTtJd0JjWixPQUFPLEVBQUUsWUFBWTtJQUNyQixjQUFjLEVBQUUsU0FBUztJQUN6QixlQUFlLEVBQUUsSUFBSSxHQUt0QjtJQXpFTCxBQXNFTSxvQkF0RWMsQ0FvQ2xCLGNBQWMsQ0EwQlosZUFBZSxBQVFaLE1BQU07SUF0RWIsb0JBQW9CLENBb0NsQixjQUFjLENBMkJaLFlBQVksQUFPVCxNQUFNLENBQUM7TUFDTixLQUFLLEV4QjFCUCxPQUFPLEd3QjJCTjtFQXhFUCxBQTJFSSxvQkEzRWdCLENBb0NsQixjQUFjLENBdUNaLGVBQWUsQ0FBQztJQUNkLEtBQUssRUFBRSxJQUFJLEdBQ1o7RUE3RUwsQUErRUksb0JBL0VnQixDQW9DbEIsY0FBYyxDQTJDWixZQUFZLENBQUM7SUFDWCxLQUFLLEVBQUUsS0FBSyxHQUNiOztBQWpGTCxBQXNGRSxvQkF0RmtCLENBc0ZsQixjQUFjLENBQUM7RUFDYixhQUFhLEVBQUUsR0FBRyxDQUFDLEtBQUssQ3hCdENULE9BQU87RXdCdUN0QixjQUFjLEVBQUUsSUFBSSxHQXFCckI7RUE3R0gsQUEwRkksb0JBMUZnQixDQXNGbEIsY0FBYyxDQUlaLEtBQUssQ0FBQztJQUNKLFdBQVcsRUFBRSxLQUFLO0lBQ2xCLEtBQUssRUFBRSxJQUFJLEdBQ1o7RUE3RkwsQUErRkksb0JBL0ZnQixDQXNGbEIsY0FBYyxDQVNaLEVBQUUsQ0FBQztJQUNELE9BQU8sRUFBRSxLQUFLO0lBQ2QsY0FBYyxFQUFFLEdBQUcsR0FDcEI7RUFsR0wsQUFvR0ksb0JBcEdnQixDQXNGbEIsY0FBYyxDQWNaLGVBQWUsQ0FBQztJQUNkLEtBQUssRXhCbERTLE9BQU87SXdCbURyQixhQUFhLEVBQUUsSUFBSTtJQUNuQixLQUFLLEVBQUUsR0FBRyxHQUNYO0VBeEdMLEFBMEdJLG9CQTFHZ0IsQ0FzRmxCLGNBQWMsQ0FvQlosa0JBQWtCLENBQUM7SUFDakIsS0FBSyxFQUFFLEdBQUcsR0FDWDs7QUE1R0wsQUFpSEUsb0JBakhrQixDQWlIbEIsUUFBUSxDQUFDO0VBRVAsYUFBYSxFckRYSCxRQUFZO0VxRFl0QixXQUFXLEVBQUUsSUFBSSxHQUNsQjtFQXJISCxBdkdtQkUsb0J1R25Ca0IsQ0FpSGxCLFFBQVEsQXZHOUZQLE9BQU8sQ0FBQztJQUNQLEtBQUssRUFBRSxJQUFJO0lBQ1gsT0FBTyxFQUFFLEVBQUU7SUFDWCxPQUFPLEVBQUUsS0FBSyxHQUNmOztBMER5Q0MsTUFBTSxFQUFHLFNBQVMsRUFBRSxLQUFLO0U2Q2hFN0IsQUFRRSxvQkFSa0IsQ0FRbEIsU0FBUyxDQWdIRztJQUNSLFlBQVksRXJEakJKLFFBQVksR3FEa0JyQjtFQTFITCxBQWNFLG9CQWRrQixDQWNsQixjQUFjO0VBZGhCLG9CQUFvQixDQWVsQixjQUFjO0VBZmhCLG9CQUFvQixDQWdCbEIsUUFBUSxDQThHRztJQUNQLFlBQVksRUFBRSxDQUFDLEdBQ2hCO0VBaElMLEFBb0JFLG9CQXBCa0IsQ0FvQmxCLE1BQU0sQ0E4R0c7SUFDTCxPQUFPLEVBQUUsUUFBUSxHQUNsQjs7QUNoSUwsQUFBQSxjQUFjLENBQUM7RTNFZVgsS0FBUSxFd0JaYyxJQUFJO0V4QlkxQixLQUFRLEVvQnlIc0QsSUFBSTtFcEJ6SGxFLEtBQVEsRUlBZ0QsSUFBSTtFSkE1RCxZQUFRLEVxQnFGRSxRQUFZO0VyQnJGdEIsYUFBUSxFcUJxRkUsUUFBWSxHc0RjekI7RUFsSEQsQUFNSSxjQU5VLENBR1osRUFBRSxDQUdBLFNBQVMsQUFBQSxZQUFZLENBQUM7SUFDcEIsV0FBVyxFQUFFLENBQUMsR0FDZjtFQVJMLEFBVUksY0FWVSxDQUdaLEVBQUUsQ0FPQSxTQUFTLEFBQUEsV0FBVyxDQUFDO0lBQ25CLGNBQWMsRUFBRSxDQUFDLEdBQ2xCO0VBWkwsQUFlRSxjQWZZLENBZVosU0FBUyxDQUFDO0lBRVIsT0FBTyxFQUFFLE1BQU0sR0FDaEI7SUFsQkgsQXhHZUUsY3dHZlksQ0FlWixTQUFTLEF4R0FSLE9BQU8sQ0FBQztNQUNQLEtBQUssRUFBRSxJQUFJO01BQ1gsT0FBTyxFQUFFLEVBQUU7TUFDWCxPQUFPLEVBQUUsS0FBSyxHQUNmO0V3R25CSCxBQW9CRSxjQXBCWSxDQW9CWixTQUFTLEdBQUcsU0FBUyxDQUFDO0lBQ3BCLFVBQVUsRUFBRSxHQUFHLENBQUMsS0FBSyxDekJ3Qk4sT0FBTyxHeUJ2QnZCO0VBdEJILEFBd0JFLGNBeEJZLENBd0JaLE9BQU8sQ0FBQztJQUNOLFNBQVMsRUFBRSxJQUFJO0lBQ2YsYUFBYSxFQUFFLEdBQUc7SUFDbEIsVUFBVSxFQUFFLEdBQUcsR0FDaEI7RUE1QkgsQUE4QkUsY0E5QlksQ0E4QlosT0FBTztFQTlCVCxjQUFjLENBK0JaLFFBQVEsQ0FBQztJQUVQLGNBQWMsRUFBRSxTQUFTLEdBVzFCO0lBNUNILEFBbUNJLGNBbkNVLENBOEJaLE9BQU87SUE5QlQsY0FBYyxDQThCWixPQUFPLENBTUwsQ0FBQztJQXBDTCxjQUFjLENBK0JaLFFBQVE7SUEvQlYsY0FBYyxDQStCWixRQUFRLENBS04sQ0FBQyxDQUFDO01BQ0EsS0FBSyxFekJhTSxPQUFPO015QlpsQixlQUFlLEVBQUUsSUFBSSxHQUN0QjtJQXZDTCxBQXlDSSxjQXpDVSxDQThCWixPQUFPLENBV0wsQ0FBQyxBQUFBLE1BQU07SUF6Q1gsY0FBYyxDQStCWixRQUFRLENBVU4sQ0FBQyxBQUFBLE1BQU0sQ0FBQztNQUNOLEtBQUssRXpCREwsT0FBTyxHeUJFUjtFQTNDTCxBQThDRSxjQTlDWSxDQThDWixRQUFRO0VBOUNWLGNBQWMsQ0ErQ1osY0FBYyxDQUFDO0lBQ2IsYUFBYSxFQUFFLEdBQUc7SUFDbEIsVUFBVSxFQUFFLEdBQUcsR0FDaEI7RUFsREgsQUFvREUsY0FwRFksQ0FvRFosY0FBYyxDQUFDO0lBRWIsT0FBTyxFQUFFLEtBQUssR0FDZjtFQXZESCxBQXlERSxjQXpEWSxDQXlEWixVQUFVLENBQUM7SUFDVCxVQUFVLEVBQUUsSUFBSSxHQUNqQjtFQTNESCxBQTZERSxjQTdEWSxDQTZEWixpQkFBaUIsQ0FBQztJQUVoQixnQkFBZ0IsRXpCbEJELE9BQU87SXlCbUJ0QixLQUFLLEV6QmhCSyxJQUFJO0l5QmlCZCxPQUFPLEVBQUUsS0FBSztJQUNkLFNBQVMsRUFBRSxPQUFPO0lBQ2xCLE9BQU8sRUFBRSxHQUFHO0lBQ1osVUFBVSxFQUFFLE1BQU07SUFDbEIsZUFBZSxFQUFFLElBQUk7SUFDckIsY0FBYyxFQUFFLFNBQVM7SUFDekIsbUJBQW1CLEVBQUUsdUJBQXVCO0lBQzVDLG1CQUFtQixFekI1Q08sS0FBSztJeUI2Qy9CLDBCQUEwQixFekIvQ1Ysb0NBQXdDLEd5QmlFekQ7SUEzRkgsQUEyRUksY0EzRVUsQ0E2RFosaUJBQWlCLEFBY2QsTUFBTSxDQUFDO01BQ04sZ0JBQWdCLEV6QjFCTCxPQUFPO015QjJCbEIsS0FBSyxFQUFFLElBQUksR0FDWjtJQTlFTCxBQWtGSSxjQWxGVSxDQTZEWixpQkFBaUIsQUFxQmQsVUFBVSxDQUFDO01BQ1YsZ0JBQWdCLEV6QjNDYixPQUFPO015QjRDVixLQUFLLEVBQUUsSUFBSSxHQU1aO01BMUZMLEFBc0ZNLGNBdEZRLENBNkRaLGlCQUFpQixBQXFCZCxVQUFVLEFBSVIsTUFBTSxDQUFDO1FBQ04sZ0JBQWdCLEVBQUUsT0FBb0I7UUFDdEMsS0FBSyxFQUFFLElBQUksR0FDWjtFOUM3QkgsTUFBTSxFQUFHLFNBQVMsRUFBRSxLQUFLO0k4QzVEN0IsQUF3QkUsY0F4QlksQ0F3QlosT0FBTyxDQXNFRztNM0UvRVIsS0FBUSxFb0J3SUUsU0FBZ0M7TXBCeEkxQyxLQUFRLEVJQWdELElBQUk7TUpBNUQsWUFBUSxFcUJxRkUsUUFBWTtNckJyRnRCLGFBQVEsRXFCcUZFLFFBQVk7TXNESnBCLFNBQVMsRUFBRSxNQUFNO01BQ2pCLFlBQVksRUFBRSxDQUFDLEdBQ2hCO0lBbEdMLEFBb0dJLGNBcEdVLENBb0dWLFFBQVEsQ0FBQztNM0VyRlQsS0FBUSxFb0J3SUUsR0FBZ0M7TXBCeEkxQyxLQUFRLEVJQWdELElBQUk7TUpBNUQsWUFBUSxFcUJxRkUsUUFBWTtNckJyRnRCLGFBQVEsRXFCcUZFLFFBQVksR3NERXJCO0lBdEdMLEFBb0RFLGNBcERZLENBb0RaLGNBQWMsQ0FvREc7TTNFekZmLEtBQVEsRW9Cd0lFLFNBQWdDO01wQnhJMUMsS0FBUSxFSUFnRCxJQUFJO01KQTVELFlBQVEsRXFCcUZFLFFBQVk7TXJCckZ0QixhQUFRLEVxQnFGRSxRQUFZLEdzRE1yQjtJQTFHTCxBQXlERSxjQXpEWSxDQXlEWixVQUFVLENBbURHO00zRTdGWCxLQUFRLEVvQndJRSxTQUFnQztNcEJ4STFDLEtBQVEsRUlBZ0QsSUFBSTtNSkE1RCxZQUFRLEVxQnFGRSxRQUFZO01yQnJGdEIsYUFBUSxFcUJxRkUsUUFBWTtNc0RVcEIsVUFBVSxFQUFFLENBQUM7TUFDYixhQUFhLEVBQUUsQ0FBQyxHQUNqQjs7QUNoSEwsQUFBQSxhQUFhLENBQUMsV0FBVyxDQUFDO0VBQ3hCLFlBQVksRUFBRSxDQUFDLEdBQ2hCOztBQUVELEFBQUEsVUFBVSxDQUFDO0VBQ1QsZ0JBQWdCLEUxQnFDVCxPQUFPO0UwQnBDZCxhQUFhLEUxQlVFLElBQUk7RTBCVG5CLGNBQWMsRUFBRSxTQUFTLEdBbUgxQjtFQXRIRCxBQUtFLFVBTFE7RUFBVixVQUFVLENBTVIsQ0FBQyxDQUFDO0lBQ0EsS0FBSyxFQUFFLElBQUksR0FDWjtFQVJILEFBVUUsVUFWUSxDQVVSLGFBQWEsQ0FBQztJQUNaLE9BQU8sRUFqQkssR0FBRyxHQWtCaEI7RUFaSCxBQWNFLFVBZFEsQ0FjUixLQUFLLENBQUM7SUFDSixnQkFBZ0IsRUFBRSxJQUFJO0lBQ3RCLE1BQU0sRUFBRSxLQUFLO0lBQ2IsS0FBSyxFQUFFLElBQUksR0FDWjtFQWxCSCxBQW9CRSxVQXBCUSxDQW9CUixhQUFhLENBQUM7SUFFWixjQUFjLEVBNUJGLEdBQUcsR0E2QmhCO0lBdkJILEF6R1dFLFV5R1hRLENBb0JSLGFBQWEsQXpHVFosT0FBTyxDQUFDO01BQ1AsS0FBSyxFQUFFLElBQUk7TUFDWCxPQUFPLEVBQUUsRUFBRTtNQUNYLE9BQU8sRUFBRSxLQUFLLEdBQ2Y7RXlHZkgsQUEyQkUsVUEzQlEsQ0EyQlIsVUFBVTtFQTNCWixVQUFVLENBNEJSLFVBQVUsQ0FBQztJNUVqQlQsS0FBUSxFd0JaYyxJQUFJO0l4QlkxQixLQUFRLEVvQnlIc0QsSUFBSTtJcEJ6SGxFLEtBQVEsRUlBZ0QsSUFBSTtJSkE1RCxZQUFRLEVxQnFGRSxRQUFZO0lyQnJGdEIsYUFBUSxFcUJxRkUsUUFBWTtJdURsRXRCLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLFVBQVUsRUFBRSxNQUFNLEdBQ25CO0VBaENILEFBb0NFLFVBcENRLENBb0NSLFVBQVUsQ0FBQyxZQUFZO0VBcEN6QixVQUFVLENBcUNSLFVBQVUsQ0FBQyxDQUFDO0VBckNkLFVBQVUsQ0FzQ1IsVUFBVSxDQUFDLE1BQU07RUF0Q25CLFVBQVUsQ0F1Q1IsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUNYLE9BQU8sRUFBRSxJQUFJLEdBQ2Q7RUF6Q0gsQUEyQ0UsVUEzQ1EsQ0EyQ1IsVUFBVSxDQUFDO0lBQ1QsWUFBWSxFQUFFLEdBQUcsR0FPbEI7SUFuREgsQUE4Q0ksVUE5Q00sQ0EyQ1IsVUFBVSxDQUdSLGFBQWE7SUE5Q2pCLFVBQVUsQ0EyQ1IsVUFBVSxDQUlSLFlBQVk7SUEvQ2hCLFVBQVUsQ0EyQ1IsVUFBVSxDQUtSLGFBQWEsQ0FBQztNQUNaLE9BQU8sRUFBRSxZQUFZLEdBQ3RCO0VBbERMLEFBc0RJLFVBdERNLENBcURSLFVBQVUsQ0FDUixNQUFNO0VBdERWLFVBQVUsQ0FxRFIsVUFBVSxDQUVSLGNBQWM7RUF2RGxCLFVBQVUsQ0FxRFIsVUFBVSxDQUdSLEVBQUUsQ0FBQztJQUNELE9BQU8sRUFBRSxZQUFZLEdBQ3RCO0VBMURMLEFBNkRNLFVBN0RJLENBcURSLFVBQVUsQ0FPUixjQUFjLENBQ1osRUFBRSxDQUFDO0lBQ0QsV0FBVyxFQUFFLGNBQWMsR0FLNUI7SUFuRVAsQUFnRVEsVUFoRUUsQ0FxRFIsVUFBVSxDQU9SLGNBQWMsQ0FDWixFQUFFLEFBR0MsWUFBWSxDQUFDO01BQ1osV0FBVyxFQUFFLElBQUksR0FDbEI7RUFsRVQsQUFzRUksVUF0RU0sQ0FxRFIsVUFBVSxDQWlCUixNQUFNLENBQUM7SUFDTCxhQUFhLEVBQUUsQ0FBQyxHQUNqQjtFQXhFTCxBQTBFSSxVQTFFTSxDQXFEUixVQUFVLENBcUJSLENBQUMsQ0FBQztJQUNBLGVBQWUsRUFBRSxJQUFJLEdBQ3RCO0VBNUVMLEFBOEVJLFVBOUVNLENBcURSLFVBQVUsQ0F5QlIsVUFBVSxDQUFDLENBQUM7RUE5RWhCLFVBQVUsQ0FxRFIsVUFBVSxDQTBCTixDQUFDLEFBQUEsTUFBTSxDQUFDO0lBQ1IsZUFBZSxFQUFFLFlBQVksR0FDOUI7RS9DekJELE1BQU0sRUFBRyxTQUFTLEVBQUUsS0FBSztJK0N4RDdCLEFBMkJFLFVBM0JRLENBMkJSLFVBQVU7SUEzQlosVUFBVSxDQTRCUixVQUFVLENBNERHO001RTdFWCxLQUFRLEVvQndJRSxHQUFnQztNcEJ4STFDLEtBQVEsRUlBZ0QsSUFBSTtNSkE1RCxZQUFRLEVxQnFGRSxRQUFZO01yQnJGdEIsYUFBUSxFcUJxRkUsUUFBWTtNdUROcEIsS0FBSyxFQUFFLElBQUk7TUFDWCxTQUFTLEVBQUUsT0FBTyxHQUNuQjtJQTVGTCxBQW9DRSxVQXBDUSxDQW9DUixVQUFVLENBQUMsWUFBWTtJQXBDekIsVUFBVSxDQXFDUixVQUFVLENBQUMsQ0FBQztJQXJDZCxVQUFVLENBc0NSLFVBQVUsQ0FBQyxNQUFNO0lBdENuQixVQUFVLENBdUNSLFVBQVUsQ0FBQyxDQUFDLENBMERHO01BQ1gsT0FBTyxFQUFFLEdBQUcsR0FDYjtJQW5HTCxBQTJDRSxVQTNDUSxDQTJDUixVQUFVLENBMERHO01BQ1QsVUFBVSxFQUFFLElBQUksR0FDakI7SUF2R0wsQUF5R0ksVUF6R00sQ0F5R04sVUFBVSxDQUFDO01BQ1QsVUFBVSxFQUFFLEtBQUssR0FDbEI7RS9DbkRELE1BQU0sRUFBRyxTQUFTLEVBQUUsS0FBSztJK0N4RDdCLEFBMkJFLFVBM0JRLENBMkJSLFVBQVU7SUEzQlosVUFBVSxDQTRCUixVQUFVLENBc0ZHO01BQ1QsU0FBUyxFQUFFLElBQUksR0FDaEI7O0FBV0wsQUFBQSxrQkFBa0IsQ0FBQztFQUNqQixVQUFVLEVBQUUsT0FBTyxDQUFDLEtBQWlCLEMxQjFHbkIsb0NBQXdDO0UwQjJHMUQsV0FBVyxFQUFFLE9BQTBHO0VBQ3ZILFVBQVUsRUFBRSxJQUErQjtFQUMzQyxPQUFPLEVBQUUsQ0FBQztFQUNWLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLE9BQU8sRUFBRSxHQUFHLEdBNkRiO0VBbkVELEFBUUUsa0JBUmdCLEFBUWYsU0FBUyxDQUFDO0lBQ1QsT0FBTyxFQUFFLENBQUMsR0FDWDtFQVZILEFBWUUsa0JBWmdCLENBWWhCLGVBQWUsQ0FBQztJQUNkLGdCQUFnQixFQWpCSyxzQkFBcUM7SUFrQjFELEtBQUssRUFBRSxJQUFJO0lBQ1gsV0FBVyxFQUFFLE1BQU07SUFDbkIsT0FBTyxFQUFFLElBQW1CO0lBQzVCLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLEtBQUssRUF2QmEsS0FBSyxHQXdDeEI7SUFuQ0gsQUFzQkksa0JBdEJjLENBWWhCLGVBQWUsQUFVWixNQUFNLENBQUM7TUFDTixNQUFNLEVBQUUsSUFBSTtNQUNaLElBQUksRUFBRSxJQUErQjtNQUNyQyxNQUFNLEVBQUUsaUJBQWlCO01BQ3pCLE9BQU8sRUFBRSxHQUFHO01BQ1osTUFBTSxFQUFFLENBQUM7TUFDVCxLQUFLLEVBQUUsQ0FBQztNQUNSLFFBQVEsRUFBRSxRQUFRO01BQ2xCLGNBQWMsRUFBRSxJQUFJO01BQ3BCLFlBQVksRUFBRSxXQUFXO01BQ3pCLG1CQUFtQixFQXBDQSxzQkFBcUM7TUFxQ3hELFlBQVksRUFuQ1MsSUFBSSxHQW9DMUI7RUFsQ0wsQUFxQ0Usa0JBckNnQixDQXFDaEIsZUFBZSxDQUFDO0lBQ2QsU0FBUyxFQUFFLE1BQU07SUFDakIsYUFBYSxFQUFFLEdBQUc7SUFDbEIsY0FBYyxFQUFFLFNBQVMsR0FDMUI7RUF6Q0gsQUE0Q0ksa0JBNUNjLENBMkNoQixPQUFPLENBQ0wsRUFBRSxDQUFDO0lBRUQsT0FBTyxFQUFFLEtBQUssR0FDZjtJQS9DTCxBekdwSEUsa0J5R29IZ0IsQ0EyQ2hCLE9BQU8sQ0FDTCxFQUFFLEF6R2hLSCxPQUFPLENBQUM7TUFDUCxLQUFLLEVBQUUsSUFBSTtNQUNYLE9BQU8sRUFBRSxFQUFFO01BQ1gsT0FBTyxFQUFFLEtBQUssR0FDZjtFeUdnSEgsQUFpREksa0JBakRjLENBMkNoQixPQUFPLENBTUwsV0FBVyxDQUFDO0k1RXJLWixLQUFRLEVvQndJRSxTQUFnQztJcEJ4STFDLEtBQVEsRUlBZ0QsSUFBSTtJSkE1RCxZQUFRLEVxQnFGRSxRQUFZO0lyQnJGdEIsYUFBUSxFcUJxRkUsUUFBWTtJdURtRnBCLFlBQVksRUFBRSxDQUFDO0lBQ2YsY0FBYyxFQUFFLFNBQVMsR0FDMUI7RUF0REwsQUF3REksa0JBeERjLENBMkNoQixPQUFPLENBYUwsYUFBYSxDQUFDO0k1RTVLZCxLQUFRLEVvQndJRSxTQUFnQztJcEJ4STFDLEtBQVEsRUlBZ0QsSUFBSTtJSkE1RCxZQUFRLEVxQnFGRSxRQUFZO0lyQnJGdEIsYUFBUSxFcUJxRkUsUUFBWTtJdUR5RnBCLGNBQWMsRUFBRSxTQUFTLEdBQzFCO0VBM0RMLEFBNkRJLGtCQTdEYyxDQTJDaEIsT0FBTyxDQWtCTCxZQUFZLENBQUM7STVFakxiLEtBQVEsRW9Cd0lFLFNBQWdDO0lwQnhJMUMsS0FBUSxFSUFnRCxJQUFJO0lKQTVELFlBQVEsRXFCcUZFLFFBQVk7SXJCckZ0QixhQUFRLEVxQnFGRSxRQUFZO0l1RCtGcEIsYUFBYSxFQUFFLENBQUMsR0FDakI7O0FBTUwsQUFBQSxpQkFBaUIsQ0FBQztFQUNoQixLQUFLLEUxQjdKTSxPQUFPO0UwQjhKbEIsU0FBUyxFQUFFLE1BQU07RUFDakIsTUFBTSxFQUFFLFFBQWMsQ0FBQyxDQUFDO0VBQ3hCLGNBQWMsRUFBRSxTQUFTLEdBQzFCOztBQUVELEF6R2xNRSxXeUdrTVMsQ0FDVCxVQUFVLEF6R25NVCxPQUFPO0F5R2tNVixXQUFXLENBRVQsWUFBWSxBekdwTVgsT0FBTztBeUdrTVYsV0FBVyxDQUdULE1BQU0sQXpHck1MLE9BQU8sQ0FBQztFQUNQLEtBQUssRUFBRSxJQUFJO0VBQ1gsT0FBTyxFQUFFLEVBQUU7RUFDWCxPQUFPLEVBQUUsS0FBSyxHQUNmOztBeUc4TEgsQUFPRSxXQVBTLENBT1QsVUFBVSxDQUFDO0VBQ1QsZ0JBQWdCLEVBQUUsSUFBSTtFQUN0QixhQUFhLEVBQUUsR0FBRyxHQUNuQjs7QUFWSCxBQVlFLFdBWlMsQ0FZVCxnQkFBZ0IsQ0FBQztFNUU5TWYsS0FBUSxFd0JaYyxJQUFJO0V4QlkxQixLQUFRLEVvQnlIc0QsSUFBSTtFcEJ6SGxFLEtBQVEsRUlBZ0QsSUFBSTtFSkE1RCxZQUFRLEVxQnFGRSxRQUFZO0VyQnJGdEIsYUFBUSxFcUJxRkUsUUFBWTtFdUQ0SHRCLGFBQWEsRUFBRSxHQUFHLENBQUMsS0FBSyxDMUJuTFQsT0FBTztFMEJvTHRCLEtBQUssRTFCekxBLE9BQU87RTBCMExaLFNBQVMsRUFBRSxNQUFNO0VBQ2pCLFdBQVcsRUFBRSxLQUFLO0VBQ2xCLE9BQU8sRUFBRSxJQUFJO0VBQ2IsY0FBYyxFQUFFLFNBQVMsR0FLMUI7RUF6QkgsQUFzQkksV0F0Qk8sQ0FZVCxnQkFBZ0IsQ0FVZCxHQUFHLENBQUM7SUFDRixTQUFTLEVBQUUsS0FBSyxHQUNqQjs7QUF4QkwsQUEyQkUsV0EzQlMsQ0EyQlQsZ0JBQWdCLENBQUM7RUFDZixLQUFLLEVBQUUsSUFBSSxHQUNaOztBQTdCSCxBQStCRSxXQS9CUyxDQStCVCxNQUFNLENBQUM7RUFDTCxXQUFXLEVBQUUsTUFBTTtFQUNuQixPQUFPLEVBQUUsUUFBVyxDQUFDLElBQUksR0FLMUI7RUF0Q0gsQUFtQ0ksV0FuQ08sQ0ErQlQsTUFBTSxBQUlILFVBQVcsQ0FBQSxJQUFJLEVBQUU7SUFDaEIsZ0JBQWdCLEUxQnpNVCxPQUFPLEcwQjBNZjs7QUFyQ0wsQUF3Q0UsV0F4Q1MsQ0F3Q1QsYUFBYTtBQXhDZixXQUFXLENBeUNULFdBQVc7QUF6Q2IsV0FBVyxDQTBDVCxZQUFZO0FBMUNkLFdBQVcsQ0EyQ1QsV0FBVztBQTNDYixXQUFXLENBNENULFlBQVksQ0FBQyxDQUFDLENBQUM7RUFDYixjQUFjLEV2RDFKSixRQUFZO0V1RDJKdEIsV0FBVyxFdkQzSkQsUUFBWSxHdUQ0SnZCOztBQS9DSCxBQWlERSxXQWpEUyxDQWlEVCxhQUFhLENBQUM7RTVFblBaLEtBQVEsRXdCWmMsSUFBSTtFeEJZMUIsS0FBUSxFb0J5SHNELElBQUk7RXBCekhsRSxLQUFRLEVJQWdELElBQUk7RUpBNUQsWUFBUSxFcUJxRkUsUUFBWTtFckJyRnRCLGFBQVEsRXFCcUZFLFFBQVk7RXVEaUt0QixLQUFLLEVBQUUsSUFBSTtFQUNYLFNBQVMsRUFBRSxNQUFNO0VBQ2pCLGNBQWMsRUFBRSxTQUFTLEdBQzFCOztBQXZESCxBQStERSxXQS9EUyxDQStEVCxXQUFXO0FBL0RiLFdBQVcsQ0FnRVQsWUFBWTtBQWhFZCxXQUFXLENBaUVULFdBQVcsQ0FBQztFNUVuUVYsS0FBUSxFb0J3SUUsU0FBZ0M7RXBCeEkxQyxLQUFRLEVJQWdELElBQUk7RUpBNUQsWUFBUSxFcUJxRkUsUUFBWTtFckJyRnRCLGFBQVEsRXFCcUZFLFFBQVksR3VEZ0x2Qjs7QUFuRUgsQUFxRUUsV0FyRVMsQ0FxRVQsV0FBVyxDQUFDO0VBQ1YsY0FBYyxFQUFFLFNBQVMsR0FDMUI7O0FBdkVILEFBeUVFLFdBekVTLENBeUVULFlBQVksQ0FBQztFQUNYLEtBQUssRUFBRSxJQUFJO0VBQ1gsU0FBUyxFQUFFLE1BQU07RUFDakIsT0FBTyxFQUFFLEtBQUs7RUFDZCxPQUFPLEVBQUUsR0FBRyxDdkQxTEYsUUFBWSxDdUQwTEMsQ0FBQztFQUN4QixjQUFjLEVBQUUsU0FBUyxHQXdCMUI7RUF0R0gsQUFnRkksV0FoRk8sQ0F5RVQsWUFBWSxDQU9WLEVBQUUsQ0FBQztJQUNELE9BQU8sRUFBRSxNQUFNLEdBQ2hCO0VBbEZMLEFBb0ZJLFdBcEZPLENBeUVULFlBQVksQ0FXVixFQUFFLEFBQUEsWUFBWSxDQUFDO0lBQ2IsV0FBVyxFQUFFLEtBQUssR0FDbkI7RUF0RkwsQUF3RkksV0F4Rk8sQ0F5RVQsWUFBWSxDQWVWLEVBQUUsR0FBRyxFQUFFLENBQUM7SUFDTixXQUFXLEVBQUUsR0FBRyxDQUFDLEtBQUssQzFCN1BULE9BQU8sRzBCOFByQjtFQTFGTCxBQTRGSSxXQTVGTyxDQXlFVCxZQUFZLENBbUJWLENBQUMsQ0FBQztJQUNBLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFlBQVksRUFBRSxJQUFJO0lBQ2xCLGFBQWEsRUFBRSxJQUFJO0lBQ25CLGVBQWUsRUFBRSxJQUFJLEdBQ3RCO0VBakdMLEFBbUdJLFdBbkdPLENBeUVULFlBQVksQ0EwQlYsQ0FBQyxBQUFBLE1BQU0sQ0FBQztJQUNOLEtBQUssRTFCNVFMLE9BQU8sRzBCNlFSOztBL0MxUEQsTUFBTSxFQUFHLFNBQVMsRUFBRSxLQUFLO0UrQ3FKN0IsQUFZRSxXQVpTLENBWVQsZ0JBQWdCLENBNkZHO0lBQ2YsU0FBUyxFQUFFLE9BQU8sR0FDbkI7RUEzR0wsQUEyQkUsV0EzQlMsQ0EyQlQsZ0JBQWdCLENBa0ZHO0lBQ2YsS0FBSyxFQUFFLElBQUksR0FDWjtFQS9HTCxBQStCRSxXQS9CUyxDQStCVCxNQUFNLENBa0ZHO0lBQ0wsT0FBTyxFQUFFLENBQUMsR0FDWDtFQW5ITCxBQWlERSxXQWpEUyxDQWlEVCxhQUFhLENBc0VHO0k1RXpUZCxLQUFRLEVvQndJRSxHQUFnQztJcEJ4STFDLEtBQVEsRUlBZ0QsSUFBSTtJSkE1RCxZQUFRLEVxQnFGRSxRQUFZO0lyQnJGdEIsYUFBUSxFcUJxRkUsUUFBWTtJdURzT3BCLFNBQVMsRUFBRSxPQUFPLEdBQ25CO0VBMUhMLEFBNEhJLFdBNUhPLENBNEhQLFdBQVc7RUE1SGYsV0FBVyxDQTZIUCxZQUFZLENBQUM7STVFL1RiLEtBQVEsRW9Cd0lFLFNBQWdDO0lwQnhJMUMsS0FBUSxFSUFnRCxJQUFJO0lKQTVELFlBQVEsRXFCcUZFLFFBQVk7SXJCckZ0QixhQUFRLEVxQnFGRSxRQUFZLEd1RDRPckI7RUEvSEwsQUFxRUUsV0FyRVMsQ0FxRVQsV0FBVyxDQTRERztJNUVuVVosS0FBUSxFb0J3SUUsU0FBZ0M7SXBCeEkxQyxLQUFRLEVJQWdELElBQUk7SUpBNUQsWUFBUSxFcUJxRkUsUUFBWTtJckJyRnRCLGFBQVEsRXFCcUZFLFFBQVksR3VEZ1ByQjtFQW5JTCxBQXlFRSxXQXpFUyxDQXlFVCxZQUFZLENBNERHO0lBQ1gsS0FBSyxFQUFFLElBQUk7SUFDWCxPQUFPLEVBQUUsQ0FBQztJQUNWLFVBQVUsRUFBRSxLQUFLLEdBQ2xCO0VBeklMLEFBMklJLFdBM0lPLENBMklQLFdBQVcsQ0FBQztJNUU3VVosS0FBUSxFb0J3SUUsUUFBZ0M7SXBCeEkxQyxLQUFRLEVJQWdELElBQUk7SUpBNUQsWUFBUSxFcUJxRkUsUUFBWTtJckJyRnRCLGFBQVEsRXFCcUZFLFFBQVk7SXVEMFBwQixVQUFVLEVBQUUsTUFBTSxHQUNuQjtFQTlJTCxBQWdKSSxXQWhKTyxDQWdKUCxjQUFjLENBQUM7STVFbFZmLEtBQVEsRW9Cd0lFLFNBQWdDO0lwQnhJMUMsS0FBUSxFSUFnRCxJQUFJO0lKQTVELFlBQVEsRXFCcUZFLFFBQVk7SXJCckZ0QixhQUFRLEVxQnFGRSxRQUFZO0l1RCtQcEIsVUFBVSxFQUFFLEtBQUssR0FDbEI7O0FBTUwsQUFBQSxzQkFBc0IsQ0FBQztFQUNyQixnQkFBZ0IsRUFBRSxJQUFJO0VBQ3RCLGFBQWEsRTFCNVZFLElBQUk7RTBCNlZuQixPQUFPLEVBQUUsUUFBWTtFQUNyQixVQUFVLEVBQUUsTUFBTSxHQW1DbkI7RUF2Q0QsQUFNRSxzQkFOb0IsQ0FNcEIsTUFBTSxDQUFDO0lBRUwsU0FBUyxFQUFFLE1BQU07SUFDakIsYUFBYSxFQUFFLEtBQUs7SUFDcEIsY0FBYyxFQUFFLFNBQVMsR0FDMUI7RUFYSCxBQWFFLHNCQWJvQixDQWFwQixPQUFPLENBQUM7SUFFTixNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQzFCNVVGLE9BQU87STBCNlV0QixhQUFhLEVBQUUsQ0FBQztJQUNoQixLQUFLLEUxQjNVSyxJQUFJO0kwQjRVZCxTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLE9BQU8sRUFBRSxNQUFNO0lBQ2YsVUFBVSxFQUFFLE1BQU07SUFDbEIsY0FBYyxFQUFFLFNBQVM7SUFDekIsS0FBSyxFQUFFLElBQUk7SUFDWCxrQkFBa0IsRUFBRSxJQUFJLEdBQ3pCO0VBekJILEFBMkJFLHNCQTNCb0IsQ0EyQnBCLE9BQU8sQ0FBQztJQUNOLEtBQUssRTFCN1ZILE9BQU87STBCOFZULFdBQVcsRUFBRSxJQUFpQixHQUMvQjtFL0M1VUMsTUFBTSxFQUFHLFNBQVMsRUFBRSxLQUFLO0krQzhTN0IsQUFBQSxzQkFBc0IsQ0FBQztNQWlDbkIsT0FBTyxFQUFFLFFBQVksR0FNeEI7TUFKRyxBQUFBLFNBQVMsQ0FuQ2Isc0JBQXNCLENBbUNOO1FBQ1YsT0FBTyxFQUFFLElBQUksR0FDZDs7QUFNTCxBQUNFLElBREUsQUFBQSxnQkFBZ0IsQ0FDbEIsU0FBUyxDQUFDO0VBRVIsU0FBUyxFQUFFLE9BQU87RUFDbEIsT0FBTyxFQUFFLENBQUM7RUFDVixVQUFVLEVBQUUsTUFBTTtFQUNsQixjQUFjLEVBQUUsU0FBUyxHQW9CMUI7RUExQkgsQUFRSSxJQVJBLEFBQUEsZ0JBQWdCLENBQ2xCLFNBQVMsQ0FPUCxFQUFFLENBQUM7SUFDRCxVQUFVLEVBQUUsR0FBRyxDQUFDLEtBQUssQzFCalhSLE9BQU8sRzBCc1hyQjtJQWRMLEFBV00sSUFYRixBQUFBLGdCQUFnQixDQUNsQixTQUFTLENBT1AsRUFBRSxBQUdDLFlBQVksQ0FBQztNQUNaLFVBQVUsRUFBRSxJQUFJLEdBQ2pCO0VBYlAsQUFnQkksSUFoQkEsQUFBQSxnQkFBZ0IsQ0FDbEIsU0FBUyxDQWVQLENBQUMsQ0FBQztJQUNBLE9BQU8sRUFBRSxLQUFLO0lBQ2QsT0FBTyxFQUFFLEtBQUs7SUFDZCxlQUFlLEVBQUUsSUFBSSxHQUN0QjtFQXBCTCxBQXNCSSxJQXRCQSxBQUFBLGdCQUFnQixDQUNsQixTQUFTLENBcUJQLFVBQVUsQ0FBQyxDQUFDO0VBdEJoQixJQUFJLEFBQUEsZ0JBQWdCLENBQ2xCLFNBQVMsQ0FzQkwsQ0FBQyxBQUFBLE1BQU0sQ0FBQztJQUNSLEtBQUssRTFCcFlMLE9BQU8sRzBCcVlSOztBQXpCTCxBQStCSSxJQS9CQSxBQUFBLGdCQUFnQixDQThCbEIsT0FBTyxDQUNMLEtBQUssRUEvQlQsSUFBSSxBQUFBLGdCQUFnQixDQThCbEIsT0FBTyxDbEIzUlQsY0FBYyxDQVVaLFVBQVUsRUFWWixjQUFjLENrQjZQZCxJQUFJLEFBQUEsZ0JBQWdCLENBOEJsQixPQUFPLENsQmpSUCxVQUFVLENrQmtSRjtFQUNKLGVBQWUsRUFBRSxJQUFJLEdBQ3RCOztBQU1MLEFBQUEscUJBQXFCLENBQUM7RUFDcEIsZ0JBQWdCLEUxQjdZSixJQUFJO0UwQjhZaEIsS0FBSyxFQUFFLElBQUk7RUFDWCxPQUFPLEVBQUUsS0FBSztFQUNkLFNBQVMsRUFBRSxNQUFNO0VBQ2pCLGFBQWEsRTFCamJFLElBQUk7RTBCa2JuQixPQUFPLEVBQUUsSUFBaUI7RUFDMUIsVUFBVSxFQUFFLE1BQU07RUFDbEIsZUFBZSxFQUFFLElBQUk7RUFDckIsY0FBYyxFQUFFLFNBQVMsR0FLMUI7RS9DOVlHLE1BQU0sRUFBRyxTQUFTLEVBQUUsS0FBSztJK0NnWTdCLEFBQUEscUJBQXFCLENBQUM7TUFZbEIsT0FBTyxFQUFFLElBQUksR0FFaEI7O0FDM2NDLEFBQUEsR0FBRyxDQUhMLFlBQVksQ0FHSixJQUFJLEFBQUEsTUFBTSxDQUFDO0VBQ2YsVUFBVSxFQUFFLE9BQU8sQ0FBQyxLQUFpQixDM0IwQnJCLG9DQUF3QztFMkJ6QnhELE9BQU8sRUFBRSxDQUFDLEdBS1g7RUFQRCxBQUlFLEdBSkMsQ0FITCxZQUFZLENBR0osSUFBSSxBQUFBLE1BQU0sQUFJYixTQUFTLENBQUM7SUFDVCxPQUFPLEVBQUUsQ0FBQyxHQUNYOztBaER1REQsTUFBTSxFQUFHLFNBQVMsRUFBRSxLQUFLO0VnRGhFN0IsQUFhSSxZQWJRLENBYVIsSUFBSSxBQUFBLE1BQU0sQ0FBQztJN0VNWCxLQUFRLEVvQndJRSxHQUFnQztJcEJ4STFDLEtBQVEsRUlBZ0QsSUFBSTtJSkE1RCxZQUFRLEVxQnFGRSxRQUFZO0lyQnJGdEIsYUFBUSxFcUJxRkUsUUFBWTtJd0R2RnBCLGFBQWEsRTNCR0YsSUFBSSxHMkJGaEI7O0FoRDhDRCxNQUFNLEVBQUcsU0FBUyxFQUFFLEtBQUs7RWdEaEU3QixBQWFJLFlBYlEsQ0FhUixJQUFJLEFBQUEsTUFBTSxDQVNDO0k3RUhYLEtBQVEsRW9Cd0lFLFNBQWdDO0lwQnhJMUMsS0FBUSxFSUFnRCxJQUFJO0lKQTVELFlBQVEsRXFCcUZFLFFBQVk7SXJCckZ0QixhQUFRLEVxQnFGRSxRQUFZLEd3RGhGckI7O0FBS0gsQUFBQSxHQUFHLENBREwsWUFBWSxBQUFBLFFBQVEsQ0FDWixJQUFJLEFBQUEsTUFBTSxDQUFDO0VBQ2YsT0FBTyxFQUFFLENBQUMsR0FDWDs7QUFHSCxBQUFBLG9CQUFvQixDQUFDO0VBQ25CLFVBQVUsRTNCZkssSUFBSSxHMkJnQnBCOztBQ3BDRCxBQUdFLGVBSGEsQ0FHYixTQUFTLEVBY1gsV0FBVyxDQWRULFNBQVMsQ0FBQztFQUNSLEtBQUssRUFBRSxJQUFJO0VBQ1gsT0FBTyxFQUFFLEtBQUssR0FDZjs7QWpEMERDLE1BQU0sRUFBRyxTQUFTLEVBQUUsS0FBSztFaURoRTdCLEFBR0UsZUFIYSxDQUdiLFNBQVMsRUFjWCxXQUFXLENBZFQsU0FBUyxDQU1HO0lBQ1IsS0FBSyxFQUFFLElBQUksR0FDWjs7QUFNTCxBQUdFLFdBSFMsQ0FHVCxTQUFTLENBQUM7RUFDUixPQUFPLEVBQUUsSUFBSSxHQUNkOztBakQwQ0MsTUFBTSxFQUFHLFNBQVMsRUFBRSxLQUFLO0VpRC9DN0IsQUFHRSxXQUhTLENBR1QsU0FBUyxDQUtHO0lBQ1IsT0FBTyxFQUFFLEtBQUssR0FDZjs7QUFWTCxBQWFFLFdBYlMsQ0FhVCxZQUFZLENBQUMsU0FBUyxFQWJ4QixXQUFXLENIYlgsY0FBYyxDQUdaLEVBQUUsQ0d1QlcsU0FBUyxFSDFCeEIsY0FBYyxDR2FkLFdBQVcsQ0hWVCxFQUFFLENHdUJXLFNBQVMsRUFieEIsV0FBVyxDRU5YLGtCQUFrQixDRm1CSCxTQUFTLENBQUM7RUFDckIsYUFBYSxFQUFFLEdBQUcsQ0FBQyxLQUFLLEM1QmtCVCxPQUFPO0U0QmpCdEIsTUFBTSxFQUFFLFFBQVEsR0FDakI7O0FBR0gsQUFDRSxTQURPLENBQ1AsV0FBVyxDQUFDO0VBQ1YsYUFBYSxFQUFFLE1BQU0sR0FDdEI7O0FBSEgsQUFLRSxTQUxPLENBS1AsQ0FBQyxDQUFDO0VBQ0EsTUFBTSxFQUFFLFFBQVEsR0FDakI7O0FBUEgsQUFTRSxTQVRPLEdBU0wsRUFBRSxDQUFDO0VBQ0gsT0FBTyxFQUFFLE1BQU0sR0FhaEI7RUF2QkgsQUFZSSxTQVpLLEdBU0wsRUFBRSxBQUdELFlBQVksQ0FBQztJQUNaLFdBQVcsRUFBRSxDQUFDLEdBQ2Y7RUFkTCxBQWdCSSxTQWhCSyxHQVNMLEVBQUUsQUFPRCxXQUFXLENBQUM7SUFDWCxjQUFjLEVBQUUsQ0FBQyxHQUNsQjtFQWxCTCxBQW9CSSxTQXBCSyxHQVNMLEVBQUUsR0FXRSxFQUFFLENBQUM7SUFDTCxVQUFVLEVBQUUsR0FBRyxDQUFDLEtBQUssQzVCUlIsT0FBTyxHNEJTckI7O0FBTUwsQUFBQSxhQUFhLENBQUM7RUFDWixPQUFPLEVBQUUsS0FBSztFQUNkLEtBQUssRUFBRSxJQUFJLEdBQ1o7O0FDN0RELEFBT1EsWUFQSSxDQUNWLElBQUksQUFDRCxzQkFBc0IsQ0FHckIsTUFBTSxDQUVKLENBQUM7QUFQVCxZQUFZLENBQ1YsSUFBSSxBQUNELHNCQUFzQixDQUlyQixTQUFTLENBQ1AsQ0FBQyxFQVBULFlBQVksQ0FDVixJQUFJLEFBRUQsU0FBUyxDQUVSLE1BQU0sQ0FFSixDQUFDO0FBUFQsWUFBWSxDQUNWLElBQUksQUFFRCxTQUFTLENBR1IsU0FBUyxDQUNQLENBQUMsRUFQVCxZQUFZLENBQ1YsSUFBSSxBQUdELE9BQU8sQ0FDTixNQUFNLENBRUosQ0FBQztBQVBULFlBQVksQ0FDVixJQUFJLEFBR0QsT0FBTyxDQUVOLFNBQVMsQ0FDUCxDQUFDLENBQUM7RUFDQSxPQUFPLEVBQUUsS0FBSztFQUNkLFFBQVEsRUFBRSxNQUFNO0VBQ2hCLGFBQWEsRUFBRSxRQUFRO0VBQ3ZCLFdBQVcsRUFBRSxNQUFNLEdBQ3BCOztBQ2xCVCxBQUFBLHFCQUFxQixDQUFDO0VBQ3BCLFVBQVUsRUFBRSxNQUFNLENBQUMsS0FBaUIsQzlCNkJsQixvQ0FBd0M7RThCNUIxRCxLQUFLLEVBQUUsSUFBSTtFQUNYLE1BQU0sRUFBRSxDQUFDO0VBQ1QsUUFBUSxFQUFFLE1BQU0sR0FLakI7RUFURCxBQU1FLHFCQU5tQixBQU1sQixNQUFNLENBQUM7SUFDTixNQUFNLEVBQUUsSUFBSSxHQUNiOztBQUdILEFBQUEsa0JBQWtCLENBQUM7RUFFakIsTUFBTSxFQUFFLElBQUk7RUFDWixLQUFLLEVBQUUsSUFBSTtFQUNYLE9BQU8sRUFBRSxVQUFVLEdBcUdwQjtFQXpHRCxBQU1FLGtCQU5nQixDQU1oQixRQUFRLENBQUM7SUFDUCxNQUFNLEVBQUUsQ0FBQztJQUNULE9BQU8sRUFBRSxDQUFDLEMzRHFGQSxRQUFZLEcyRG5FdkI7SUExQkgsQUFVSSxrQkFWYyxDQU1oQixRQUFRLENBSU4sRUFBRSxDQUFDO01BQ0QsYUFBYSxFQUFFLEdBQUcsQ0FBQyxLQUFLLEM5QjJCWCxPQUFPO004QjFCcEIsY0FBYyxFQUFFLElBQUksR0FDckI7SUFiTCxBQWVJLGtCQWZjLENBTWhCLFFBQVEsQ0FTTixRQUFRLENBQUM7TUFDUCxLQUFLLEVBQUUsS0FBSztNQUNaLFVBQVUsRUFBRSxHQUFHO01BQ2YsT0FBTyxFQUFFLEdBQUcsR0FPYjtNQXpCTCxBQW9CTSxrQkFwQlksQ0FNaEIsUUFBUSxDQVNOLFFBQVEsQ0FLTixLQUFLLEVBcEJYLGtCQUFrQixDQU1oQixRQUFRLENBU04sUUFBUSxDdEJrSVosY0FBYyxDQVVaLFVBQVUsRUFWWixjQUFjLENzQmpKZCxrQkFBa0IsQ0FNaEIsUUFBUSxDQVNOLFFBQVEsQ3RCNElWLFVBQVUsQ3NCdklBO1FBQ0osZUFBZSxFQUFFLElBQUk7UUFDckIsTUFBTSxFQUFFLElBQUk7UUFDWixLQUFLLEVBQUUsSUFBSSxHQUNaO0VBeEJQLEFBNEJFLGtCQTVCZ0IsQ0E0QmhCLFNBQVMsQ0FBQztJQUNSLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLE1BQU0sRUFBRSxNQUFNLEMzRCtESixRQUFZO0kyRDlEdEIsY0FBYyxFQUFFLFNBQVMsR0FLMUI7SUFIQyxBQUFBLE9BQU8sQ0FqQ1gsa0JBQWtCLENBNEJoQixTQUFTLENBS0c7TUFDUixLQUFLLEU5QkFMLE9BQU8sRzhCQ1I7RUFuQ0wsQUFzQ0Usa0JBdENnQixDQXNDaEIsY0FBYyxDQUFDO0lBQ2IsTUFBTSxFQUFFLElBQUk7SUFDWixPQUFPLEU5Qi9CTSxJQUFJLEM3Qm9GUCxRQUFZLEcyRHBEdkI7RUF6Q0gsQUEyQ0Usa0JBM0NnQixDQTJDaEIsWUFBWSxDQUFDO0lBQ1gsTUFBTSxFQUFFLFVBQVUsR0FDbkI7RUE3Q0gsQUFnREksa0JBaERjLENBK0NoQixhQUFhLENBQ1gsS0FBSyxDQUFDO0lBRUosZ0JBQWdCLEU5QmZiLE9BQU87SThCZ0JWLE9BQU8sRUFBRSxLQUFLO0lBQ2QsS0FBSyxFQUFFLElBQUk7SUFDWCxNQUFNLEVBQUUsSUFBSTtJQUNaLFlBQVksRUFBRSxJQUFJO0lBQ2xCLGFBQWEsRUFBRSxJQUFJO0lBQ25CLEtBQUssRUFBRSxJQUFJLEdBQ1o7RUF6REwsQUEyREksa0JBM0RjLENBK0NoQixhQUFhLENBWVgsTUFBTSxDQUFDO0lBQ0wsT0FBTyxFQUFFLEtBQUs7SUFDZCxNQUFNLEVBQUUsS0FBSztJQUNiLFVBQVUsRUFBRSxNQUFNLEdBQ25CO0VBL0RMLEFBa0VFLGtCQWxFZ0IsQ0FrRWhCLFNBQVMsQ0FBQztJQUNSLE9BQU8sRUFBRSxHQUFHLEdBQ2I7RUFwRUgsQUFzRUUsa0JBdEVnQixDQXNFaEIsbUJBQW1CLENBQUM7SUFDbEIsVUFBVSxFQUFFLE9BQU8sQzlCbERPLEtBQUssQ0FGZixvQ0FBd0M7SThCcUR4RCxPQUFPLEVBQUUsQ0FBQyxHQUtYO0lBN0VILEFBMEVJLGtCQTFFYyxDQXNFaEIsbUJBQW1CLEFBSWhCLE1BQU0sQ0FBQztNQUNOLE9BQU8sRUFBRSxDQUFDLEdBQ1g7RW5EdkJELE1BQU0sRUFBRyxTQUFTLEVBQUUsS0FBSztJbURyRDdCLEFBc0NFLGtCQXRDZ0IsQ0FzQ2hCLGNBQWMsQ0EwQ0c7TUFDYixPQUFPLEU5QnhFSSxJQUFJLEM4QndFVSxDQUFDLEdBQzNCO0lBbEZMLEFBb0ZJLGtCQXBGYyxDQW9GZCxhQUFhLENBQUM7TWhGNUVkLEtBQVEsRW9Cd0lFLEdBQWdDO01wQnhJMUMsS0FBUSxFSUFnRCxJQUFJO01KQTVELFlBQVEsRXFCcUZFLFFBQVk7TXJCckZ0QixhQUFRLEVxQnFGRSxRQUFZLEcyRFByQjtJQXRGTCxBQXdGSSxrQkF4RmMsQ0F3RmQsYUFBYSxDQUFDO01BRVosV0FBVyxFQUFFLElBQUksR0FhbEI7TUF2R0wsQTdHUUUsa0I2R1JnQixDQXdGZCxhQUFhLEE3R2hGZCxPQUFPLENBQUM7UUFDUCxLQUFLLEVBQUUsSUFBSTtRQUNYLE9BQU8sRUFBRSxFQUFFO1FBQ1gsT0FBTyxFQUFFLEtBQUssR0FDZjtNNkdaSCxBQWdESSxrQkFoRGMsQ0ErQ2hCLGFBQWEsQ0FDWCxLQUFLLENBNENHO1FBQ0osS0FBSyxFQUFFLElBQUk7UUFDWCxLQUFLLEVBQUUsSUFBSSxHQUNaO01BL0ZQLEFBMkRJLGtCQTNEYyxDQStDaEIsYUFBYSxDQVlYLE1BQU0sQ0FzQ0c7UUFDTCxLQUFLLEVBQUUsS0FBSztRQUNaLFdBQVcsRUFBRSxJQUFJO1FBQ2pCLE1BQU0sRUFBRSxDQUFDO1FBQ1QsVUFBVSxFQUFFLEtBQUssR0FDbEIifQ== */