@charset "UTF-8";
/*! normalize.scss v0.1.0 | MIT License | based on git.io/normalize */
/**
 * 1. Set default font family to sans-serif.
 * 2. Prevent iOS text size adjust after orientation change, without disabling
 *    user zoom.
 */
html {
  font-family: sans-serif;
  /* 1 */
  -ms-text-size-adjust: 100%;
  /* 2 */
  -webkit-text-size-adjust: 100%;
  /* 2 */ }

/**
 * Remove default margin.
 */
body {
  margin: 0; }

/* HTML5 display definitions
   ========================================================================== */
/**
 * Correct `block` display not defined for any HTML5 element in IE 8/9.
 * Correct `block` display not defined for `details` or `summary` in IE 10/11
 * and Firefox.
 * Correct `block` display not defined for `main` in IE 11.
 */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
  display: block; }

/**
 * 1. Correct `inline-block` display not defined in IE 8/9.
 * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
 */
audio,
canvas,
progress,
video {
  display: inline-block;
  /* 1 */
  vertical-align: baseline;
  /* 2 */ }

/**
 * Prevent modern browsers from displaying `audio` without controls.
 * Remove excess height in iOS 5 devices.
 */
audio:not([controls]) {
  display: none;
  height: 0; }

/**
 * Address `[hidden]` styling not present in IE 8/9/10.
 * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.
 */
[hidden],
template {
  display: none; }

/* Links
   ========================================================================== */
/**
 * Remove the gray background color from active links in IE 10.
 */
a {
  background-color: transparent; }

/**
 * Improve readability when focused and also mouse hovered in all browsers.
 */
a:active,
a:hover {
  outline: 0; }

/* Text-level semantics
   ========================================================================== */
/**
 * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
 */
abbr[title] {
  border-bottom: 1px dotted; }

/**
 * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
 */
b,
strong {
  font-weight: bold; }

/**
 * Address styling not present in Safari and Chrome.
 */
dfn {
  font-style: italic; }

/**
 * Address variable `h1` font-size and margin within `section` and `article`
 * contexts in Firefox 4+, Safari, and Chrome.
 */
h1 {
  font-size: 2em;
  margin: 0.67em 0; }

/**
 * Address styling not present in IE 8/9.
 */
mark {
  background: #ff0;
  color: #000; }

/**
 * Address inconsistent and variable font size in all browsers.
 */
small {
  font-size: 80%; }

/**
 * Prevent `sub` and `sup` affecting `line-height` in all browsers.
 */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline; }

sup {
  top: -0.5em; }

sub {
  bottom: -0.25em; }

/* Embedded content
   ========================================================================== */
/**
 * Remove border when inside `a` element in IE 8/9/10.
 */
img {
  border: 0; }

/**
 * Correct overflow not hidden in IE 9/10/11.
 */
svg:not(:root) {
  overflow: hidden; }

/* Grouping content
   ========================================================================== */
/**
 * Address margin not present in IE 8/9 and Safari.
 */
figure {
  margin: 1em 40px; }

/**
 * Address differences between Firefox and other browsers.
 */
hr {
  box-sizing: content-box;
  height: 0; }

/**
 * Contain overflow in all browsers.
 */
pre {
  overflow: auto; }

/**
 * Address odd `em`-unit font size rendering in all browsers.
 */
code,
kbd,
pre,
samp {
  font-family: monospace, monospace;
  font-size: 1em; }

/* Forms
   ========================================================================== */
/**
 * Known limitation: by default, Chrome and Safari on OS X allow very limited
 * styling of `select`, unless a `border` property is set.
 */
/**
 * 1. Correct color not being inherited.
 *    Known issue: affects color of disabled elements.
 * 2. Correct font properties not being inherited.
 * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
 */
button,
input,
optgroup,
select,
textarea {
  color: inherit;
  /* 1 */
  font: inherit;
  /* 2 */
  margin: 0;
  /* 3 */ }

/**
 * Address `overflow` set to `hidden` in IE 8/9/10/11.
 */
button {
  overflow: visible; }

/**
 * Address inconsistent `text-transform` inheritance for `button` and `select`.
 * All other form control elements do not inherit `text-transform` values.
 * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
 * Correct `select` style inheritance in Firefox.
 */
button,
select {
  text-transform: none; }

/**
 * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
 *    and `video` controls.
 * 2. Correct inability to style clickable `input` types in iOS.
 * 3. Improve usability and consistency of cursor style between image-type
 *    `input` and others.
 */
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
  -webkit-appearance: button;
  /* 2 */
  cursor: pointer;
  /* 3 */ }

/**
 * Re-set default cursor for disabled elements.
 */
button[disabled],
html input[disabled] {
  cursor: default; }

/**
 * Remove inner padding and border in Firefox 4+.
 */
button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0; }

/**
 * Address Firefox 4+ setting `line-height` on `input` using `!important` in
 * the UA stylesheet.
 */
input {
  line-height: normal; }

/**
 * It's recommended that you don't attempt to style these elements.
 * Firefox's implementation doesn't respect box-sizing, padding, or width.
 *
 * 1. Address box sizing set to `content-box` in IE 8/9/10.
 * 2. Remove excess padding in IE 8/9/10.
 */
input[type="checkbox"],
input[type="radio"] {
  box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */ }

/**
 * Fix the cursor style for Chrome's increment/decrement buttons. For certain
 * `font-size` values of the `input`, it causes the cursor style of the
 * decrement button to change from `default` to `text`.
 */
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
  height: auto; }

/**
 * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
 * 2. Address `box-sizing` set to `border-box` in Safari and Chrome
 *    (include `-moz` to future-proof).
 */
input[type="search"] {
  -webkit-appearance: textfield;
  /* 1 */
  /* 2 */
  box-sizing: content-box; }

/**
 * Remove inner padding and search cancel button in Safari and Chrome on OS X.
 * Safari (but not Chrome) clips the cancel button when the search input has
 * padding (and `textfield` appearance).
 */
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none; }

/**
 * Define consistent border, margin, and padding.
 */
fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em; }

/**
 * 1. Correct `color` not being inherited in IE 8/9/10/11.
 * 2. Remove padding so people aren't caught out if they zero out fieldsets.
 */
legend {
  border: 0;
  /* 1 */
  padding: 0;
  /* 2 */ }

/**
 * Remove default vertical scrollbar in IE 8/9/10/11.
 */
textarea {
  overflow: auto; }

/**
 * Don't inherit the `font-weight` (applied by a rule above).
 * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
 */
optgroup {
  font-weight: bold; }

/* Tables
   ========================================================================== */
/**
 * Remove most spacing between table cells.
 */
table {
  border-collapse: collapse;
  border-spacing: 0; }

td,
th {
  padding: 0; }

.content {
  position: relative; }
  @media (min-width: 1366px) {
    .content {
      max-width: 1400px;
      margin-left: auto;
      margin-right: auto;
      padding: 27px 50px; }
      .content:after {
        content: " ";
        display: block;
        clear: both; } }
  @media (max-width: 1365px) {
    .content {
      max-width: 1300px;
      margin-left: auto;
      margin-right: auto;
      width: 100%;
      padding: 25px 33px; }
      .content:after {
        content: " ";
        display: block;
        clear: both; } }
  @media (max-width: 991px) {
    .content {
      max-width: 95%;
      margin-left: auto;
      margin-right: auto;
      padding: 18px 20px; }
      .content:after {
        content: " ";
        display: block;
        clear: both; } }
  @media (max-width: 767px) {
    .content {
      max-width: 100%;
      margin-left: auto;
      margin-right: auto;
      padding: 35px 10px; }
      .content:after {
        content: " ";
        display: block;
        clear: both; } }
  .content:after {
    content: '';
    display: block;
    clear: both; }

* {
  box-sizing: border-box; }

html {
  color: #3c4a55;
  font-family: "Open Sans", Arial, sans-serif;
  font-size: 18px; }
  @media (max-width: 991px) {
    html {
      font-size: 16.2px; } }

a {
  text-decoration: none;
  -webkit-transition: color .25s;
  transition: color .25s; }
  a:hover {
    text-decoration: none; }
  a:focus {
    outline: none; }

h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 1.5rem 0; }

::-moz-selection {
  background: #b3d4fc;
  text-shadow: none; }

::selection {
  background: #b3d4fc;
  text-shadow: none; }

hr {
  display: block;
  height: 1px;
  margin: 1em 0;
  padding: 0;
  border: 0;
  border-top: 1px solid #ccc; }

audio,
canvas,
iframe,
img,
svg,
video {
  vertical-align: middle; }

button:focus {
  outline: none; }

fieldset {
  margin: 0;
  padding: 0;
  border: 0; }

textarea {
  resize: vertical; }

header {
  position: fixed;
  top: 0;
  left: 50%;
  z-index: 100;
  width: 100%;
  height: 58px;
  background-color: #fff;
  -webkit-transform: translate(-50%, 0);
      -ms-transform: translate(-50%, 0);
          transform: translate(-50%, 0);
  box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.5); }

header .content {
  padding-top: 0;
  padding-bottom: 0; }

header .logo {
  width: 13.88889%;
  float: left;
  margin-left: 1.38889%;
  margin-right: 1.38889%;
  padding: 17.5px 0; }
  header .logo img {
    height: 21px; }
  @media (max-width: 991px) {
    header .logo {
      width: 47.22222%;
      float: left;
      margin-left: 1.38889%;
      margin-right: 1.38889%; } }

nav {
  width: 80.55556%;
  float: left;
  margin-left: 1.38889%;
  margin-right: 1.38889%;
  text-align: right; }
  @media (max-width: 991px) {
    nav {
      width: 47.22222%;
      float: right;
      margin-left: 1.38889%;
      margin-right: 1.38889%; } }
  nav .nav-menu {
    white-space: nowrap; }
  nav .top-menu {
    margin: 0;
    padding: 0; }

.nav-menu .menu-item,
.nav-menu .menu-btn {
  display: inline-block;
  position: relative; }

.nav-menu .menu-item:hover {
  border-bottom: 2px solid #d32d27;
  background-color: #f6f6f6; }

.nav-menu a {
  display: block;
  padding: 0 1em;
  color: #2b2b2b;
  line-height: 58px; }
  .nav-menu a:hover {
    color: #d32d27; }

.nav-menu .menu-btn {
  display: inline-block;
  padding: 0 .3em;
  border-radius: 4px; }
  .nav-menu .menu-btn .btn {
    display: inline-block;
    min-width: auto;
    padding: 0 15px;
    border-radius: 4px;
    font-weight: normal;
    line-height: 38px; }
  .nav-menu .menu-btn a {
    color: #fff; }
  .nav-menu .menu-btn:hover {
    border: 0;
    background: transparent; }
    .nav-menu .menu-btn:hover a {
      color: #fff; }

.mobile-menu {
  display: none;
  width: auto;
  height: 58px;
  background-image: url("../images/cdn/hamburger-menu2.png");
  background-position: right;
  background-repeat: no-repeat;
  cursor: pointer; }

.open {
  display: block;
  position: absolute;
  right: 0;
  left: 0;
  width: 100%;
  background: #fff;
  text-align: left;
  box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.5);
  overflow-y: auto; }

.show {
  display: block; }

.has-children {
  cursor: pointer; }
  .has-children > a {
    padding-right: 30px; }
    .has-children > a:after {
      content: '';
      position: absolute;
      top: 19px;
      right: 5px;
      width: 24px;
      height: 24px;
      background-image: url("../images/cdn/arrow_down.svg");
      background-repeat: no-repeat; }
    .has-children > a:hover:after {
      content: '';
      background-image: url("../images/cdn/arrow_down_red.svg"); }
  .has-children li a:after {
    content: '';
    background: none; }
  .has-children .sub-menu {
    display: none;
    position: absolute;
    top: 58px;
    left: 0;
    width: auto;
    min-width: 100%;
    background-color: #fafafa;
    text-align: left; }
    .has-children .sub-menu ul {
      padding: 0; }
    .has-children .sub-menu li {
      display: block;
      width: 100%;
      border-bottom: 0; }
      .has-children .sub-menu li:hover {
        background-color: #d32d27; }
    .has-children .sub-menu a {
      color: #fafafa;
      font-weight: 400; }
      .has-children .sub-menu a:hover {
        color: #fff; }
    .has-children .sub-menu .menu-item:hover {
      border-bottom: 0; }

.sub-menu.show li {
  display: block; }

.sub-menu.show a {
  padding: 0 1em;
  color: #2b2b2b;
  line-height: 58px; }

.mobile-nav {
  display: none; }
  .mobile-nav.open {
    display: block; }
  .mobile-nav .menu-btn,
  .mobile-nav .menu-item {
    display: block; }
  .mobile-nav .menu-btn {
    margin-bottom: 15px; }
  .mobile-nav .sub-menu {
    position: relative;
    top: 0;
    margin-top: 0;
    margin-bottom: 0; }
    .mobile-nav .sub-menu a {
      padding-left: 45px; }
  .mobile-nav .mobile-menu-item {
    padding-left: 20px;
    line-height: 38px; }
  .mobile-nav .top-menu {
    padding-bottom: 15px; }
  .mobile-nav a {
    margin-left: 25px;
    line-height: 45px; }

.price-card {
  width: 30.55556%;
  float: left;
  margin-left: 1.38889%;
  margin-right: 1.38889%;
  margin-top: 25px;
  padding: 2em 2.5em 2.5em;
  border-radius: 4px;
  background-color: #fff; }
  @media (max-width: 1197px) {
    .price-card {
      padding: 2em 1em; } }
  @media (max-width: 1025px) {
    .price-card {
      position: relative;
      padding: 2em 3em; } }
  .price-card .top,
  .price-card .bot {
    padding: 0;
    text-align: center; }
    .price-card .top .btn,
    .price-card .bot .btn {
      width: 100%;
      text-align: center; }
  .price-card .top h3 {
    font-weight: bold; }
  .price-card .bot {
    padding-top: .5em; }
    @media (max-width: 1025px) {
      .price-card .bot {
        position: absolute;
        right: 2.5em;
        bottom: 35px;
        left: 2.5em; } }
    @media (max-width: 991px) {
      .price-card .bot div {
        margin: 0 auto; } }
  @media (max-width: 991px) and (max-width: 767px) {
    .price-card .bot div {
      width: 100%; } }
  @media (max-width: 1025px) {
    .price-card .mid {
      padding-bottom: 40px; } }
  .price-card .mid p {
    font-size: 1.22222rem;
    margin-top: 12px;
    color: #d32d27;
    text-align: center; }
    .price-card .mid p span {
      font-weight: bold; }
  .price-card .mid p.inlcudes {
    padding: 0 30px;
    color: #656565;
    font-size: 16px;
    text-align: left; }
    .price-card .mid p.inlcudes .bold {
      color: #3c4a54; }
  .price-card .mid ul {
    padding-left: 25px;
    list-style-image: url("../images/cdn/img-icon-check.png"); }
    .price-card .mid ul li {
      padding: 8px 0;
      font-size: 16px;
      line-height: 1.2; }
  @media (max-width: 1025px) {
    .price-card {
      width: 47.22222%;
      float: left;
      margin-left: 1.38889%;
      margin-right: 1.38889%; } }
  @media (max-width: 991px) {
    .price-card .mid ul {
      padding: 5px 5px 5px 25px; } }
  @media (max-width: 767px) {
    .price-card {
      width: 97.22222%;
      float: left;
      margin-left: 1.38889%;
      margin-right: 1.38889%;
      margin: 15px 15%;
      padding: 15px; }
      .price-card .mid ul {
        padding: 0 0 10% 40px;
        -webkit-column-count: 1;
           -moz-column-count: 1;
                column-count: 1; } }
  @media (max-width: 767px) {
    .price-card {
      margin: 15px 10px; } }

.price-card:nth-child(2),
.price-card:nth-child(3),
.price-card:nth-child(4) {
  background-position: left top;
  background-repeat: no-repeat;
  background-size: 30%; }
  @media (max-width: 1025px) {
    .price-card:nth-child(2),
    .price-card:nth-child(3),
    .price-card:nth-child(4) {
      margin-right: 20%;
      margin-left: 20%; } }
  @media (max-width: 480px) {
    .price-card:nth-child(2),
    .price-card:nth-child(3),
    .price-card:nth-child(4) {
      min-width: 335px;
      margin: 15px 10px; } }

.price-card:nth-child(2),
.price-card:nth-child(3) {
  background-image: url("../images/cdn/img-hp-pricing-badge-personal-2x.png"); }

.price-card:nth-child(4) {
  background-image: url("../images/cdn/img-hp-pricing-badge-business-2x.png"); }

.social .content {
  padding: inherit; }

.social ul {
  padding: 0;
  text-align: center; }
  .social ul li {
    display: inline-block;
    padding: 15px;
    text-align: center;
    vertical-align: middle; }
    @media (max-width: 767px) {
      .social ul li {
        padding: 0; } }

.social .icon {
  display: inline-block;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background-color: #c0c0c0;
  box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.25); }
  .social .icon:hover {
    opacity: .5; }
    .social .icon:hover svg {
      fill: #000; }

.social svg {
  width: 25px;
  padding-top: 7px;
  fill: #fff; }

.social .facebook {
  background-color: #3b5998; }

.social .twitter {
  background-color: #0084b4; }

.social .googleplus {
  background-color: #dd4b39; }

.social .instagram {
  background-color: #4c68d7; }

.social .youtube {
  background-color: #e52d27; }

.social .linkedin {
  background-color: #0077b5; }

.social .spiceworks {
  background-color: #f58220; }
  .social .spiceworks svg {
    width: 45px;
    margin-top: -9px;
    margin-left: -2px; }

footer .content {
  padding: inherit; }

footer .top {
  background-color: #2b2b2b; }
  footer .top a {
    color: #fff;
    font-size: 12px; }

footer .bottom {
  padding: 5px 10px !important;
  background-color: #000;
  font-family: 'Open Sans';
  font-weight: 400;
  text-align: center; }
  footer .bottom a {
    color: #fff; }

.column {
  width: 13.88889%;
  float: left;
  margin-left: 1.38889%;
  margin-right: 1.38889%; }
  @media (max-width: 991px) {
    .column {
      width: 97.22222%;
      float: left;
      margin-left: 1.38889%;
      margin-right: 1.38889%;
      padding: 0 10px; }
      .column:last-child ul li {
        display: inline-block; }
        .column:last-child ul li span {
          margin: 5px 10px; } }

footer h5 {
  margin-top: 25px;
  margin-bottom: 15px;
  color: #fff;
  font-weight: 400; }

footer ul.menu {
  padding: 0; }
  footer ul.menu li {
    margin: 0; }
  @media (max-width: 991px) {
    footer ul.menu li {
      display: inline-block; }
      footer ul.menu li:before {
        content: '•'x;
        display: inline-block;
        padding-right: 5px; } }

footer ul.list-images {
  padding: 0; }
  footer ul.list-images li {
    margin: 10px 0; }

.list-images .icon-appstore {
  display: inline-block;
  width: 83px;
  height: 24px;
  background: url("../images/cdn/app_store.png"); }

.list-images .icon-googleplay {
  display: inline-block;
  width: 96px;
  height: 29px;
  background: url("../images/cdn/google_play.png"); }

.list-images .icon-windowsstore {
  display: inline-block;
  width: 83px;
  height: 28px;
  background: url("../images/cdn/windows_store.png"); }

.languages {
  width: 97.22222%;
  float: left;
  margin-left: 1.38889%;
  margin-right: 1.38889%;
  position: relative;
  margin: 0 0 25px; }
  .languages .language-holder {
    width: 100%;
    max-width: 175px;
    white-space: nowrap; }
    .languages .language-holder:hover {
      background-color: #232323; }
  .languages button {
    padding: 7px 12px;
    border: 0;
    background-color: transparent;
    color: #fff;
    font-size: 14px;
    font-weight: bold; }
  .languages #lang-btn > * {
    display: inline-block;
    vertical-align: middle; }
  .languages .icon-world {
    display: inline-block;
    width: 25px;
    height: 25px;
    background: url("../images/cdn/icon-world-2x.png") no-repeat;
    background-size: 25px; }
  .languages .lang-text {
    display: inline-block;
    padding-right: 8px;
    padding-left: 8px; }
  .languages .icon-caret-up {
    display: inline-block;
    width: 0;
    height: 0;
    margin-top: 3px;
    border-right: 5px solid transparent;
    border-bottom: 5px solid #fff;
    border-left: 5px solid transparent; }
  .languages .languages-drop {
    display: none;
    position: absolute;
    bottom: 21px;
    width: 137px;
    padding: 15px 0;
    background-color: #232323; }
    .languages .languages-drop li {
      padding: 4px 0 0 40px; }
      .languages .languages-drop li:hover {
        opacity: .6;
        text-decoration: underline; }

.btn a {
  display: inline-block;
  border-radius: 4px;
  font-size: 16px;
  font-weight: 600;
  text-align: center;
  box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.25); }

.hero .btn a {
  padding: 13px 35px;
  font-size: 20px; }

main .btn a {
  padding: 13px 32px;
  border-radius: 4px; }

.prices .btn a {
  display: block;
  padding: 10px 0;
  font-family: 'Open Sans';
  font-weight: 600; }

.btn.red a,
.btn.red {
  background: #d32d27;
  color: #fff; }
  .btn.red a:hover,
  .btn.red:hover {
    background: #bf2d28; }

.btn.grey,
.btn.grey a {
  background: #3c4a54;
  color: #fff; }
  .btn.grey:hover,
  .btn.grey a:hover {
    background: #29343d; }

.btn.white,
.btn.white a {
  background: #fff;
  color: #3c4a54; }
  .btn.white:hover,
  .btn.white a:hover {
    background: #29343d; }

.hero {
  margin-bottom: 2em;
  padding-top: 72px;
  /*change to 60px for sync hp */ }
  @media (max-width: 480px) {
    .hero {
      padding-top: 72px; } }

.hero .copy {
  width: 30.55556%;
  float: left;
  margin-left: 1.38889%;
  margin-right: 1.38889%;
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
          transform: translateY(-50%); }
  @media (max-width: 1155px) {
    .hero .copy {
      width: 38.88889%;
      float: left;
      margin-left: 1.38889%;
      margin-right: 1.38889%; } }
  .hero .copy p {
    font-size: 1.22222rem; }
  .hero .copy .cta {
    display: inline-block; }
    .hero .copy .cta a {
      font-size: 20px; }
    .hero .copy .cta .small-text {
      padding-top: 5px;
      color: #656565;
      font-size: 14px; }
  @media (max-width: 991px) {
    .hero .copy {
      width: 47.22222%;
      float: left;
      margin-left: 1.38889%;
      margin-right: 1.38889%; } }
  @media (max-width: 767px) {
    .hero .copy {
      width: 97.22222%;
      float: left;
      margin-left: 1.38889%;
      margin-right: 1.38889%;
      position: inherit;
      top: 0;
      text-align: center;
      -webkit-transform: none;
          -ms-transform: none;
              transform: none; } }

.hero .pic {
  width: 63.88889%;
  float: right;
  margin-left: 1.38889%;
  margin-right: 1.38889%;
  text-align: right; }
  @media (max-width: 1155px) {
    .hero .pic {
      width: 55.55556%;
      float: right;
      margin-left: 1.38889%;
      margin-right: 1.38889%; } }
  .hero .pic img {
    width: 100%; }
  @media (max-width: 991px) {
    .hero .pic {
      width: 47.22222%;
      float: right;
      margin-left: 1.38889%;
      margin-right: 1.38889%; } }
  @media (max-width: 767px) {
    .hero .pic {
      display: none; } }

.showbox {
  padding: 30px 35px 37px;
  border: 1px solid rgba(0, 0, 0, 0.25);
  border-radius: 4px;
  box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.25); }
  @media (max-width: 991px) {
    .showbox {
      margin: 15px 0;
      padding: 15px;
      border: 1px solid rgba(0, 0, 0, 0.25);
      background-image: none !important; }
      .showbox h2 {
        padding-top: 0; } }

.features .full h2 {
  text-align: center; }

.features .row {
  width: 97.22222%;
  float: left;
  margin-left: 1.38889%;
  margin-right: 1.38889%;
  position: relative;
  padding: 50px 0; }
  .features .row:nth-child(2) {
    content: '';
    padding-top: 35px; }
  .features .row p b {
    font-family: 'Open Sans';
    font-weight: 600; }
  @media (max-width: 991px) {
    .features .row {
      padding: 25px 0; } }

.features .forty {
  position: absolute;
  top: 50%;
  margin-left: 55.55556%;
  -webkit-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
          transform: translateY(-50%); }

.features .forty-first {
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
          transform: translateY(-50%); }

@media (max-width: 991px) {
  .features .forty,
  .features .forty-first {
    display: block;
    position: relative;
    top: 0;
    margin-left: 0;
    -webkit-transform: none;
        -ms-transform: none;
            transform: none; }
  .features img {
    width: 50%;
    margin-bottom: 15px; } }

@media (max-width: 767px) {
  .features .row {
    padding: 20px 0; }
  .features img {
    padding-bottom: 15px; } }

.prices {
  background-color: #3c4a54; }
  .prices h2 {
    color: #fff;
    text-align: center; }

.prices .content {
  padding-top: 55px;
  padding-bottom: 55px; }
  @media (max-width: 1025px) {
    .prices .content {
      display: -webkit-box;
      display: -webkit-flex;
      display: -ms-flexbox;
      display: flex;
      -webkit-flex-flow: row wrap;
          -ms-flex-flow: row wrap;
              flex-flow: row wrap;
      -webkit-justify-content: space-around;
          -ms-flex-pack: distribute;
              justify-content: space-around; }
      .prices .content h2 {
        -webkit-box-flex: 1;
        -webkit-flex: 1 100%;
            -ms-flex: 1 100%;
                flex: 1 100%; } }

.disclaimer {
  width: 97.22222%;
  float: left;
  margin-left: 1.38889%;
  margin-right: 1.38889%;
  margin-top: 25px;
  color: #fff;
  text-align: center; }

.banner {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  height: 425px;
  padding-top: 77px;
  background-repeat: no-repeat;
  background-size: cover;
  text-align: center; }
  .banner .content {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -webkit-align-items: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
        -ms-flex-pack: center;
            justify-content: center;
    padding: 0; }
  .banner .copy {
    margin: 0 auto; }
  .banner h1,
  .banner p {
    color: #fff; }
  @media (max-width: 991px) {
    .banner {
      background-position: center right; }
      .banner .content {
        padding-top: 25px; }
        .banner .content h1 {
          font-size: 2.44444rem; }
      .banner .copy {
        width: 100%; } }

.thirty h3 {
  text-align: center; }

.full {
  text-align: center; }

.pods .pod {
  padding: 0 35px; }

.pods .circle {
  width: 210px;
  height: 210px;
  margin: 20px auto; }
  @media (max-width: 991px) {
    .pods .circle {
      width: auto;
      height: auto; } }
  @media (max-width: 767px) {
    .pods .circle {
      width: 150px;
      height: 150px; } }
  .pods .circle img {
    width: 100%; }

.vault .row:last-child {
  position: relative;
  margin: 0;
  padding: 145px 0; }
  @media (max-width: 767px) {
    .vault .row:last-child {
      padding: 0; } }

.vault .vault-image {
  text-align: center; }
  .vault .vault-image img {
    width: 90%;
    max-width: 925px; }
  .vault .vault-image img:last-child {
    display: none; }
  @media (max-width: 767px) {
    .vault .vault-image img:first-child {
      display: none; }
    .vault .vault-image img:last-child {
      display: block;
      width: 100%; } }

.vault .top-list,
.vault .bottom-list {
  position: absolute;
  list-style: none; }
  .vault .top-list li,
  .vault .bottom-list li {
    display: inline-block;
    width: 30%;
    padding: 0 40px;
    vertical-align: top; }
  @media (max-width: 767px) {
    .vault .top-list,
    .vault .bottom-list {
      position: relative; }
      .vault .top-list li,
      .vault .bottom-list li {
        display: list-item;
        width: 100%;
        padding-bottom: 10px;
        padding-left: 40px; }
        .vault .top-list li p,
        .vault .bottom-list li p {
          margin-top: 0; }
        .vault .top-list li:before,
        .vault .bottom-list li:before {
          content: counter(item);
          display: inline-block;
          position: absolute;
          left: 15px;
          width: 23px;
          height: 23px;
          border: 10px solid #d32d27;
          border-radius: 50%;
          background: #d32d27;
          color: #fff;
          font-family: 'Open Sans';
          font-size: 32px;
          font-weight: 600;
          text-align: center;
          counter-increment: item; } }

.vault .top-list {
  top: 0; }
  @media (max-width: 767px) {
    .vault .top-list {
      top: auto;
      counter-reset: item; } }

@media (max-width: 767px) {
  .vault .bottom-list {
    counter-reset: li; } }

.vault h5 {
  font-family: 'Open Sans';
  font-weight: 700; }

.security .full p {
  width: 65%;
  margin: 0 auto; }

.security-block {
  width: 47.22222%;
  float: left;
  margin-left: 1.38889%;
  margin-right: 1.38889%;
  padding: 25px; }
  .security-block .circle {
    width: 30.55556%;
    float: left;
    margin-left: 1.38889%;
    margin-right: 1.38889%;
    width: 150px;
    height: 150px; }
    .security-block .circle img {
      width: 90%;
      margin: 0 auto; }
  .security-block .box-content {
    width: 63.88889%;
    float: left;
    margin-left: 1.38889%;
    margin-right: 1.38889%; }
  @media (max-width: 991px) {
    .security-block {
      width: 97.22222%;
      float: left;
      margin-left: 1.38889%;
      margin-right: 1.38889%; } }
  .security-block .circle,
  .security-block .box-content {
    width: 97.22222%;
    float: left;
    margin-left: 1.38889%;
    margin-right: 1.38889%;
    text-align: center; }
  .security-block .circle img {
    width: auto;
    height: 150px; }

.inner {
  padding-top: 100px; }
  .inner h2 {
    margin-top: 10px;
    margin-bottom: 15px; }
  .inner h4 {
    margin-bottom: 25px; }
  .inner .btn {
    display: inline-block;
    margin-bottom: 40px; }

.four-o-four {
  width: 100%;
  max-width: 480px; }

.banner {
  background-color: #c0c0c0; }

.options .content {
  padding-top: 0;
  padding-bottom: 0;
  border-bottom: .5px solid #c0c0c0; }
  .options .content .fifty {
    padding: 40px; }
  .options .content .fifty:first-child {
    border-right: .5px solid #c0c0c0; }

.left-image, .right-content {
  display: inline-block; }

.left-image {
  width: 30.55556%;
  float: left;
  margin-left: 1.38889%;
  margin-right: 1.38889%; }

.right-content {
  width: 63.88889%;
  float: left;
  margin-left: 1.38889%;
  margin-right: 1.38889%;
  text-align: left; }

.enterprisetrial {
  padding: 1em 0;
  background-position: 60% 50%;
  background-repeat: no-repeat;
  background-size: cover; }
  .enterprisetrial a {
    color: #81d6e3;
    font-size: 1rem; }
  .enterprisetrial h2,
  .enterprisetrial p {
    color: #fff; }
  .enterprisetrial .full {
    text-align: left; }
  .enterprisetrial .btn {
    display: block;
    margin-bottom: 1em; }
    .enterprisetrial .btn a {
      background-image: -webkit-linear-gradient(top, #fff, #eee);
      background-image: linear-gradient(to bottom, #fff, #eee);
      color: #3c4a55;
      font-family: 'open_sansemibold', 'Helvetica Neue', Helvetica, sans-serif;
      font-weight: 500;
      box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.25); }

.notes {
  padding: 2em 0;
  background-color: #f6f9fc; }
  .notes img {
    width: 100%; }
  .notes .ninety {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -webkit-align-items: center;
        -ms-flex-align: center;
            align-items: center;
    width: 89vw;
    max-width: 65em; }
  @media (max-width: 767px) {
    .notes .thirty {
      float: none;
      margin: 0 auto;
      text-align: center; }
      .notes .thirty img {
        width: 60%;
        margin-bottom: 1em; }
    .notes .ninety {
      display: initial;
      width: 90%; }
    .notes p {
      text-align: left; }
    .notes .content {
      padding: 0 10px; } }
  .notes .content {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
        -ms-flex-pack: center;
            justify-content: center; }

.hero {
  /*.content {
    @media (max-width: 1024px) {
      padding-top: 0;
    }*/
  /*.copy {
    width: 35.55556%;
    transform: inherit;
    position: inherit;
    @media (max-width: 1080px) {
      width: 50%;
    }
    @media (max-width: $screen-xs-max) {
      width: 100%;
    }
  }
  .pic {
    position: relative;
    float: none;
    width: 58.88889%;
    order: 2;
    @media (max-width: 1080px) {
      width: 50%;
    }
  }
  }*/ }
  @media (min-width: 1025px) {
    .hero {
      margin-bottom: 3em; } }
  @media (min-width: 1180px) {
    .hero {
      margin-top: 1em;
      margin-bottom: 1.5em; } }
  .hero .core {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -webkit-align-items: center;
        -ms-flex-align: center;
            align-items: center; }
    @media (max-width: 1024px) {
      .hero .core {
        margin-top: 3.5em; } }
    @media (max-width: 767px) {
      .hero .core {
        margin-top: 1.5em; } }
  .hero .freesync {
    z-index: 99; }
    .hero .freesync:before {
      content: '';
      display: inline-block;
      position: relative;
      top: .5em;
      width: 90px;
      height: 25px;
      background: url("../images/cdn/img-now-free-icon@2x.png") no-repeat;
      background-size: contain; }
      @media (max-width: 991px) {
        .hero .freesync:before {
          margin-right: .5em; } }
      @media (max-width: 1024px) {
        .hero .freesync:before {
          top: .35em;
          margin-right: .5em; } }
    @media (min-width: 768px) {
      .hero .freesync {
        top: .5em; } }
    @media (min-width: 1025px) {
      .hero .freesync {
        position: absolute;
        top: inherit;
        right: 5vw;
        bottom: -.6em; } }
    @media (min-width: 1180px) {
      .hero .freesync {
        right: -11.5em;
        bottom: 1.3em;
        width: 58.88889%; } }
    @media (max-width: 1024px) {
      .hero .freesync {
        display: -webkit-box;
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        position: relative;
        bottom: initial;
        left: initial;
        -webkit-box-align: baseline;
        -webkit-align-items: baseline;
            -ms-flex-align: baseline;
                align-items: baseline;
        -webkit-box-pack: center;
        -webkit-justify-content: center;
            -ms-flex-pack: center;
                justify-content: center; } }
    @media (max-width: 480px) {
      .hero .freesync {
        display: -webkit-box;
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
        -webkit-align-items: center;
            -ms-flex-align: center;
                align-items: center;
        -webkit-justify-content: space-around;
            -ms-flex-pack: distribute;
                justify-content: space-around;
        font-size: 3vw; } }

.owl-carousel,
.owl-carousel .owl-item {
  position: initial; }

.owl-carousel {
  display: none;
  z-index: 1;
  width: 100%; }
  .owl-carousel .owl-stage {
    position: relative;
    /*-ms-touch-action:pan-Y*/ }
    .owl-carousel .owl-stage:after {
      content: '.';
      display: block;
      visibility: hidden;
      clear: both;
      height: 0;
      line-height: 0; }
  .owl-carousel .owl-stage-outer {
    position: relative;
    overflow: hidden;
    -webkit-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0); }
  .owl-carousel .owl-item {
    float: left;
    min-height: 1px; }
    @media (max-width: 992px) {
      .owl-carousel .owl-item {
        cursor: pointer; } }
    .owl-carousel .owl-item img {
      width: 100%;
      margin-bottom: 1.5em; }
  .owl-carousel .owl-dots.disabled,
  .owl-carousel .owl-nav.disabled {
    display: none; }
  .owl-carousel .owl-dot,
  .owl-carousel .owl-nav .owl-next,
  .owl-carousel .owl-nav .owl-prev {
    cursor: pointer;
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none; }
  .owl-carousel .owl-loaded {
    display: block; }
  .owl-carousel .owl-loading {
    display: block;
    opacity: 0; }
  .owl-carousel .owl-hidden {
    opacity: 0; }
  .owl-carousel .owl-refresh .owl-item {
    display: none; }
  .owl-carousel .owl-drag .owl-item {
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none; }
  .owl-carousel .owl-item .owl-lazy {
    opacity: 0;
    -webkit-transition: opacity .4s ease;
    transition: opacity .4s ease; }
  .owl-carousel .owl-video-wrapper {
    position: relative;
    height: 100%;
    background: #000; }
  .owl-carousel.owl-rtl {
    direction: rtl; }
    .owl-carousel.owl-rtl .owl-item {
      float: right; }

.no-js .owl-carousel {
  display: block; }

.owl-height {
  -webkit-transition: height .5s ease-in-out;
  transition: height .5s ease-in-out; }

.owl-dots .owl-dot {
  display: inline-block;
  zoom: 1; }
  .owl-dots .owl-dot span {
    display: block;
    width: 14px;
    height: 14px;
    margin: 5px 7px;
    border-radius: 30px;
    background-color: #88959e;
    box-shadow: inset 0 1px 2px 0 rgba(0, 0, 0, 0.25); }
  .owl-dots .owl-dot.active span {
    background-image: -webkit-linear-gradient(top, #ff554f, #d32d27), -webkit-linear-gradient(#d32d27, #d32d27);
    background-image: linear-gradient(to bottom, #ff554f, #d32d27), linear-gradient(#d32d27, #d32d27);
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.25); }
  .owl-dots .owl-dot:hover span {
    background-image: -webkit-linear-gradient(top, #ff554f, #d32d27), -webkit-linear-gradient(#d32d27, #d32d27);
    background-image: linear-gradient(to bottom, #ff554f, #d32d27), linear-gradient(#d32d27, #d32d27);
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.25); }

.thumbs .active .item {
  padding: 2em;
  color: #3c4a55;
  box-shadow: 0 4px 6px 0 rgba(0, 0, 0, 0.25);
  cursor: pointer; }

.thumbs .item {
  color: #656565;
  font-size: 16px; }
  .thumbs .item h3 {
    margin-bottom: .4em;
    font-size: 22px; }
    @media (max-width: 1024px) {
      .thumbs .item h3 {
        color: #3c4a55; } }
  .thumbs .item .free h3:after {
    content: '';
    display: -webkit-inline-box;
    display: -webkit-inline-flex;
    display: -ms-inline-flexbox;
    display: inline-flex;
    position: relative;
    top: .2em;
    left: .4em;
    width: 8vw;
    height: 25px;
    background: url("../images/cdn/img-now-free-icon@2x.png") no-repeat;
    background-size: contain; }
  @media (max-width: 1025px) {
    .thumbs .item .free h3 {
      top: .3em;
      width: 11vw; } }
  @media (max-width: 768px) {
    .thumbs .item .free h3 {
      width: 100%; } }
  .thumbs .item p {
    position: relative;
    max-width: 450px;
    margin-top: 0;
    font-size: 1em; }
  @media (min-width: 1025px) {
    .thumbs .item {
      padding: 2em;
      color: #3c4a55;
      box-shadow: 0 4px 6px 0 rgba(0, 0, 0, 0.25); } }

.thumbs .on .item {
  color: #3c4a55; }
  .thumbs .on .item h3 {
    color: #d32d27; }
    @media (max-width: 1024px) {
      .thumbs .on .item h3 {
        color: #3c4a55; } }

.thumbs .pic img {
  display: block; }

.thumbs .owl-dots {
  text-align: center; }

.thumbs.owl-carousel .owl-item.active {
  padding-bottom: 0; }

@media (max-width: 1025px) {
  .thumbs.owl-carousel .owl-item.on p:after {
    display: none; } }

@media (max-width: 1024px) {
  .thumbs.owl-carousel .owl-item.on {
    padding: 2em; } }

@media (min-width: 1025px) {
  .thumbs.owl-carousel .owl-item {
    width: 100% !important;
    max-width: 500px !important;
    margin-bottom: 1em;
    padding-right: 6.5em;
    cursor: pointer;
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.25); }
    .thumbs.owl-carousel .owl-item.on {
      max-width: 520px !important;
      box-shadow: 0 4px 6px 0 rgba(0, 0, 0, 0.25); }
      .thumbs.owl-carousel .owl-item.on p:after {
        content: '';
        display: block;
        position: absolute;
        top: 10%;
        right: -3em;
        width: 30px;
        height: 25px;
        background: url("../images/cdn/img-control-arrow.png") no-repeat;
        background-size: contain; } }

@media (min-width: 1025px) {
  .thumbs .owl-stage {
    -webkit-transform: translate3d(0, 0, 0) !important;
            transform: translate3d(0, 0, 0) !important; } }

.thumbs .owl-stage .owl-item {
  padding: 0 1em 1em; }
  .thumbs .owl-stage .owl-item .item {
    padding: 2em;
    text-align: left;
    box-shadow: 0 4px 6px 0 rgba(0, 0, 0, 0.25); }
    @media (min-width: 1025px) {
      .thumbs .owl-stage .owl-item .item {
        width: 100% !important;
        max-width: 480px !important;
        padding: 0;
        padding-right: 1.5em;
        cursor: pointer;
        box-shadow: none; } }
    @media (min-width: 1025px) {
      .thumbs .owl-stage .owl-item .item img {
        display: none;
        position: absolute;
        top: 10%;
        right: 0;
        width: 55%;
        cursor: default;
        -webkit-transition: all .5s ease;
        transition: all .5s ease; } }
    @media (max-width: 1220px) {
      .thumbs .owl-stage .owl-item .item img {
        width: 47vw; } }
    @media (max-width: 1025px) {
      .thumbs .owl-stage .owl-item .item img {
        width: 100%; } }
  @media (min-width: 1025px) {
    .thumbs .owl-stage .owl-item.on img {
      display: block;
      z-index: -1; } }

.slide {
  margin: 2em 0; }
  .slide h3 {
    font-family: 'open_sansregular', 'Helvetica Neue', Helvetica, sans-serif; }
  .slide .full h2 {
    margin-bottom: 1.5em; }
  .slide .content {
    padding: 1em; }
  .slide .slider {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    font-size: .9em; }
  .slide .thumbs {
    text-align: left; }
    .slide .thumbs .owl-stage {
      display: -webkit-box;
      display: -webkit-flex;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
      -webkit-flex-direction: column;
          -ms-flex-direction: column;
              flex-direction: column; }
  .slide .big-images {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -webkit-align-items: center;
        -ms-flex-align: center;
            align-items: center;
    width: 57%;
    margin-left: 3%; }
  @media (max-width: 1025px) {
    .slide .slider {
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
      -webkit-flex-direction: column;
          -ms-flex-direction: column;
              flex-direction: column; }
    .slide .thumbs {
      -webkit-box-ordinal-group: 3;
      -webkit-order: 2;
          -ms-flex-order: 2;
              order: 2;
      width: 100%; }
      .slide .thumbs .owl-stage {
        display: block; }
    .slide .big-images {
      width: 100%; } }

@media (max-width: 1025px) {
  .owl-wrapper {
    margin: 0 auto; } }

.quotes p {
  width: 100%;
  max-width: 780px;
  margin: 1.5em auto;
  color: #404040;
  font-size: 20px;
  font-style: italic;
  line-height: 1.73; }

.quotes span {
  display: block;
  margin-bottom: 1em;
  color: #404040;
  font-size: 16px;
  font-weight: 600; }

body {
  font: 16px 'Open Sans', sans-serif;
  font-weight: 400;
  font-smoothing: antialiased; }

.light {
  font-weight: 300; }

.regular {
  font-weight: 400; }

.semi-bold {
  font-weight: 600; }

b,
strong,
.bold {
  font-weight: 700; }

.zebra {
  background-color: #f6f9fc; }

.content {
  position: relative; }

a {
  color: #d32d27;
  text-decoration: none; }
  a :hover {
    color: #3c4a54; }

p {
  font-size: 1rem;
  color: #3c4a55;
  line-height: 1.6; }

.small-text {
  font-size: 0.88889rem; }

.center {
  text-align: center; }

.show {
  display: block !important; }

.hide {
  display: none !important; }

ul {
  list-style: none; }

h1,
h2,
h3,
h4,
h5 {
  margin: 0;
  color: #3c4a55;
  font-weight: 400;
  line-height: 1.25; }

h1 {
  font-size: 2.55556rem; }

h2 {
  font-size: 1.77778rem; }

h3 {
  font-size: 1.55556rem; }

h4 {
  font-size: 1.22222rem; }

h5 {
  font-size: 1rem; }

.full {
  width: 97.22222%;
  float: left;
  margin-left: 1.38889%;
  margin-right: 1.38889%; }

.thirty {
  width: 30.55556%;
  float: left;
  margin-left: 1.38889%;
  margin-right: 1.38889%; }

.fifty {
  width: 47.22222%;
  float: left;
  margin-left: 1.38889%;
  margin-right: 1.38889%; }

.sixty {
  width: 52.22222%;
  float: left;
  margin-left: 1.38889%;
  margin-right: 1.38889%; }

.sixty-last {
  width: 52.22222%;
  float: right;
  margin-left: 1.38889%;
  margin-right: 1.38889%; }

.seventy {
  width: 55.55556%;
  float: left;
  margin-left: 1.38889%;
  margin-right: 1.38889%; }

.ninety {
  width: 72.22222%;
  float: left;
  margin-left: 1.38889%;
  margin-right: 1.38889%; }

.forty-first {
  width: 42.22222%;
  float: left;
  margin-left: 1.38889%;
  margin-right: 1.38889%; }

.forty {
  width: 42.22222%;
  float: left;
  margin-left: 1.38889%;
  margin-right: 1.38889%; }

.sixty img,
.sixty-last img {
  width: 100%; }

@media (max-width: 767px) {
  .thirty,
  .fifty,
  .sixty,
  .sixty-last,
  .seventy,
  .forty,
  .forty-first {
    width: 97.22222%;
    float: left;
    margin-left: 1.38889%;
    margin-right: 1.38889%;
    text-align: center; }
    .thirty img,
    .fifty img,
    .sixty img,
    .sixty-last img,
    .seventy img,
    .forty img,
    .forty-first img {
      width: 75%; } }

@media (max-width: 767px) {
  .thirty {
    width: 97.22222%;
    float: left;
    margin-left: 1.38889%;
    margin-right: 1.38889%; } }

.now-free {
  margin-left: 10px;
  padding: 3px 10px;
  border: 2.5px solid #2ecc71;
  border-radius: 25px;
  color: #2ecc71;
  font-family: 'Open Sans';
  font-size: 12px;
  font-weight: 600;
  white-space: nowrap; }

.thanks-frame {
  display: none;
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1000;
  padding-top: 15px;
  border: 0;
  background-color: rgba(255, 255, 255, 0.95);
  text-align: center; }
  .thanks-frame .progress {
    width: 350px !important;
    margin-top: 200px !important; }
  .thanks-frame h2 {
    padding-top: 30px !important; }

.launch-app {
  cursor: pointer; }

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1haW4uY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL25vcm1hbGl6ZS5zY3NzL25vcm1hbGl6ZS5zY3NzIiwicGFydGlhbHMvY29yZS9faGVscGVycy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N1c3kvc2Fzcy9zdXN5L291dHB1dC9zdXBwb3J0L19yZW0uc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9sYW5ndWFnZS9zdXN5L19jb250YWluZXIuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9vdXRwdXQvc3VwcG9ydC9fY2xlYXJmaXguc2NzcyIsInBhcnRpYWxzL2NvcmUvX2Jhc2Uuc2NzcyIsInBhcnRpYWxzL2NvcmUvX3ZhcnMuc2NzcyIsInBhcnRpYWxzL3JlZ2lvbnMvX2hlYWRlci5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N1c3kvc2Fzcy9zdXN5L2xhbmd1YWdlL3N1c3kvX3NwYW4uc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9vdXRwdXQvc2hhcmVkL19kaXJlY3Rpb24uc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9sYW5ndWFnZS9zdXN5L19ndXR0ZXJzLnNjc3MiLCJwYXJ0aWFscy9yZWdpb25zL19wcmljZS1jYXJkLnNjc3MiLCJwYXJ0aWFscy9jb3JlL19taXhpbnMuc2NzcyIsInBhcnRpYWxzL3JlZ2lvbnMvX3NvY2lhbC5zY3NzIiwicGFydGlhbHMvcmVnaW9ucy9fZm9vdGVyLnNjc3MiLCJwYXJ0aWFscy9jb21wb25lbnRzL19idXR0b25zLnNjc3MiLCJwYXJ0aWFscy9wYWdlcy9faG9tZXBhZ2Uuc2NzcyIsInBhcnRpYWxzL3BhZ2VzL19zdWJwYWdlLnNjc3MiLCJwYXJ0aWFscy9wYWdlcy9faW5uZXIuc2NzcyIsInBhcnRpYWxzL3BhZ2VzL19mb3JCaXouc2NzcyIsInBhcnRpYWxzL3BhZ2VzL19zeW5jLnNjc3MiLCJwYXJ0aWFscy9sYXlvdXRzL19nbG9iYWwuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQkFBaUI7QUNBakIsc0VBQXNFO0FBRXRFOzs7O0dBSUc7QUFFSDtFQUNFLHdCQUF3QjtFQUFFLE9BQU87RUFDakMsMkJBQTJCO0VBQUUsT0FBTztFQUNwQywrQkFBK0I7RUFBRSxPQUFPLEVBQ3pDOztBQUVEOztHQUVHO0FBRUg7RUFDRSxVQUFVLEVBQ1g7O0FBRUQ7Z0ZBQ2dGO0FBRWhGOzs7OztHQUtHO0FBRUg7Ozs7Ozs7Ozs7Ozs7RUFhRSxlQUFlLEVBQ2hCOztBQUVEOzs7R0FHRztBQUVIOzs7O0VBSUUsc0JBQXNCO0VBQUUsT0FBTztFQUMvQix5QkFBeUI7RUFBRSxPQUFPLEVBQ25DOztBQUVEOzs7R0FHRztBQUVIO0VBQ0UsY0FBYztFQUNkLFVBQVUsRUFDWDs7QUFFRDs7O0dBR0c7QURMSDs7RUNTRSxjQUFjLEVBQ2Y7O0FBRUQ7Z0ZBQ2dGO0FBRWhGOztHQUVHO0FBRUg7RUFDRSw4QkFBOEIsRUFDL0I7O0FBRUQ7O0dBRUc7QUFFSDs7RUFFRSxXQUFXLEVBQ1o7O0FBRUQ7Z0ZBQ2dGO0FBRWhGOztHQUVHO0FBRUg7RUFDRSwwQkFBMEIsRUFDM0I7O0FBRUQ7O0dBRUc7QUFFSDs7RUFFRSxrQkFBa0IsRUFDbkI7O0FBRUQ7O0dBRUc7QUFFSDtFQUNFLG1CQUFtQixFQUNwQjs7QUFFRDs7O0dBR0c7QUFFSDtFQUNFLGVBQWU7RUFDZixpQkFBaUIsRUFDbEI7O0FBRUQ7O0dBRUc7QUFFSDtFQUNFLGlCQUFpQjtFQUNqQixZQUFZLEVBQ2I7O0FBRUQ7O0dBRUc7QUFFSDtFQUNFLGVBQWUsRUFDaEI7O0FBRUQ7O0dBRUc7QUFFSDs7RUFFRSxlQUFlO0VBQ2YsZUFBZTtFQUNmLG1CQUFtQjtFQUNuQix5QkFBeUIsRUFDMUI7O0FBRUQ7RUFDRSxZQUFZLEVBQ2I7O0FBRUQ7RUFDRSxnQkFBZ0IsRUFDakI7O0FBRUQ7Z0ZBQ2dGO0FBRWhGOztHQUVHO0FBRUg7RUFDRSxVQUFVLEVBQ1g7O0FBRUQ7O0dBRUc7QUFFSDtFQUNFLGlCQUFpQixFQUNsQjs7QUFFRDtnRkFDZ0Y7QUFFaEY7O0dBRUc7QUFFSDtFQUNFLGlCQUFpQixFQUNsQjs7QUFFRDs7R0FFRztBQUVIO0VBRUUsd0JBQXdCO0VBQ3hCLFVBQVUsRUFDWDs7QUFFRDs7R0FFRztBQUVIO0VBQ0UsZUFBZSxFQUNoQjs7QUFFRDs7R0FFRztBQUVIOzs7O0VBSUUsa0NBQWtDO0VBQ2xDLGVBQWUsRUFDaEI7O0FBRUQ7Z0ZBQ2dGO0FBRWhGOzs7R0FHRztBQUVIOzs7OztHQUtHO0FBRUg7Ozs7O0VBS0UsZUFBZTtFQUFFLE9BQU87RUFDeEIsY0FBYztFQUFFLE9BQU87RUFDdkIsVUFBVTtFQUFFLE9BQU8sRUFDcEI7O0FBRUQ7O0dBRUc7QUFFSDtFQUNFLGtCQUFrQixFQUNuQjs7QUFFRDs7Ozs7R0FLRztBQUVIOztFQUVFLHFCQUFxQixFQUN0Qjs7QUFFRDs7Ozs7O0dBTUc7QUFFSDs7OztFQUlFLDJCQUEyQjtFQUFFLE9BQU87RUFDcEMsZ0JBQWdCO0VBQUUsT0FBTyxFQUMxQjs7QUFFRDs7R0FFRztBQUVIOztFQUVFLGdCQUFnQixFQUNqQjs7QUFFRDs7R0FFRztBQUVIOztFQUVFLFVBQVU7RUFDVixXQUFXLEVBQ1o7O0FBRUQ7OztHQUdHO0FBRUg7RUFDRSxvQkFBb0IsRUFDckI7O0FBRUQ7Ozs7OztHQU1HO0FBRUg7O0VBRUUsdUJBQXVCO0VBQUUsT0FBTztFQUNoQyxXQUFXO0VBQUUsT0FBTyxFQUNyQjs7QUFFRDs7OztHQUlHO0FBRUg7O0VBRUUsYUFBYSxFQUNkOztBQUVEOzs7O0dBSUc7QUFFSDtFQUNFLDhCQUE4QjtFQUFFLE9BQU87RUFFTCxPQUFPO0VBQ3pDLHdCQUF3QixFQUN6Qjs7QUFFRDs7OztHQUlHO0FBRUg7O0VBRUUseUJBQXlCLEVBQzFCOztBQUVEOztHQUVHO0FBRUg7RUFDRSwwQkFBMEI7RUFDMUIsY0FBYztFQUNkLCtCQUErQixFQUNoQzs7QUFFRDs7O0dBR0c7QUFFSDtFQUNFLFVBQVU7RUFBRSxPQUFPO0VBQ25CLFdBQVc7RUFBRSxPQUFPLEVBQ3JCOztBQUVEOztHQUVHO0FBRUg7RUFDRSxlQUFlLEVBQ2hCOztBQUVEOzs7R0FHRztBQUVIO0VBQ0Usa0JBQWtCLEVBQ25COztBQUVEO2dGQUNnRjtBQUVoRjs7R0FFRztBQUVIO0VBQ0UsMEJBQTBCO0VBQzFCLGtCQUFrQixFQUNuQjs7QUFFRDs7RUFFRSxXQUFXLEVBQ1o7O0FDeGFEO0VBQ0UsbUJBQW1CLEVBdUJwQjtFQXRCQztJQUZGO01DaUJJLGtCRGR5QjtNQ2N6QixrQkNxRG9DO01EckRwQyxtQkNxRG1FO01GbEVuRSxtQkFBbUIsRUFvQnRCO01BeEJEO1FHVU0sYUFBYTtRQUNiLGVBQWU7UUFDZixZQUFZLEVBQ2IsRUFBQTtFSFBIO0lBTkY7TUNpQkksa0JEVnlCO01DVXpCLGtCQ3FEb0M7TURyRHBDLG1CQ3FEbUU7TUY5RG5FLFlBQVk7TUFDWixtQkFBbUIsRUFldEI7TUF4QkQ7UUdVTSxhQUFhO1FBQ2IsZUFBZTtRQUNmLFlBQVksRUFDYixFQUFBO0VIRkg7SUFYRjtNQ2lCSSxlRExzQjtNQ0t0QixrQkNxRG9DO01EckRwQyxtQkNxRG1FO01GekRuRSxtQkFBbUIsRUFXdEI7TUF4QkQ7UUdVTSxhQUFhO1FBQ2IsZUFBZTtRQUNmLFlBQVksRUFDYixFQUFBO0VIRUg7SUFmRjtNQ2lCSSxnQkREdUI7TUNDdkIsa0JDcURvQztNRHJEcEMsbUJDcURtRTtNRnJEbkUsbUJBQW1CLEVBT3RCO01BeEJEO1FHVU0sYUFBYTtRQUNiLGVBQWU7UUFDZixZQUFZLEVBQ2IsRUFBQTtFSGJMO0lBb0JJLFlBQVk7SUFDWixlQUFlO0lBQ2YsWUFBWSxFQUNiOztBSXpCSDtFQUNFLHVCQUF1QixFQUN4Qjs7QUFNRDtFQUNFLGVDVVk7RURUWiw0Q0NHMkM7RURGM0MsZ0JDR3NCLEVEQ3ZCO0VBSEM7SUFKRjtNQUtJLGtCQUE2QixFQUVoQyxFQUFBOztBQUdEO0VBQ0Usc0JBQXNCO0VBQ3RCLCtCQUF1QjtFQUF2Qix1QkFBdUIsRUFPeEI7RUFURDtJQUlJLHNCQUFzQixFQUN2QjtFQUxIO0lBT0ksY0FBYyxFQUNmOztBQUdIOzs7Ozs7RUFNRSxpQkFBaUIsRUFDbEI7O0FBS0Q7RUFDRSxvQkFBb0I7RUFDcEIsa0JBQWtCLEVBQ25COztBQUhEO0VBQ0Usb0JBQW9CO0VBQ3BCLGtCQUFrQixFQUNuQjs7QUFFRDtFQUNFLGVBQWU7RUFDZixZQUFZO0VBQ1osY0FBYztFQUNkLFdBQVc7RUFDWCxVQUFVO0VBQ1YsMkJBQTJCLEVBQzVCOztBQU9EOzs7Ozs7RUFNRSx1QkFBdUIsRUFDeEI7O0FBRUQ7RUFFSSxjQUFjLEVBQ2Y7O0FBTUg7RUFDRSxVQUFVO0VBQ1YsV0FBVztFQUNYLFVBQVUsRUFDWDs7QUFFRDtFQUNFLGlCQUFpQixFQUNsQjs7QUV0RkQ7RUFDRSxnQkFBZ0I7RUFDaEIsT0FBTztFQUNQLFVBQVU7RUFDVixhQUFhO0VBQ2IsWUFBWTtFQUNaLGFBQWE7RUFDYix1QkFBdUI7RUFDdkIsc0NBQW9CO01BQXBCLGtDQUFvQjtVQUFwQiw4QkFBb0I7RUFDcEIsMkNBQTRCLEVBQzdCOztBQUVEO0VBQ0UsZUFBZTtFQUNmLGtCQUFrQixFQUNuQjs7QUFFRDtFTEVJLGlCTXdJb0I7RU54SXBCLFlPQTREO0VQQTVELHNCUXFGa0I7RVJyRmxCLHVCUXFGa0I7RUhyRnBCLGtCQUFrQixFQU9uQjtFQVREO0lBSUksYUFBYSxFQUNkO0VBQ0Q7SUFORjtNTEVJLGlCTXdJb0I7TU54SXBCLFlPQTREO01QQTVELHNCUXFGa0I7TVJyRmxCLHVCUXFGa0IsRUg5RXJCLEVBQUE7O0FBRUQ7RUxUSSxpQk13SW9CO0VOeElwQixZT0E0RDtFUEE1RCxzQlFxRmtCO0VSckZsQix1QlFxRmtCO0VIMUVwQixrQkFBa0IsRUFXbkI7RUFWQztJQUhGO01MVEksaUJNd0lvQjtNTnhJcEIsYU9BdUU7TVBBdkUsc0JRcUZrQjtNUnJGbEIsdUJRcUZrQixFSC9EckIsRUFBQTtFQWJEO0lBT0ksb0JBQW9CLEVBQ3JCO0VBUkg7SUFVSSxVQUFVO0lBQ1YsV0FBVyxFQUNaOztBQUdIOztFQUdJLHNCQUFzQjtFQUN0QixtQkFBbUIsRUFDcEI7O0FBTEg7RUFRTSxpQ0FBaUM7RUFDakMsMEJBQTBCLEVBQzNCOztBQVZMO0VBYUksZUFBZTtFQUNmLGVBQWU7RUFDZixlRC9CZTtFQ2dDZixrQkFBa0IsRUFJbkI7RUFwQkg7SUFrQk0sZUFBZSxFQUNoQjs7QUFuQkw7RUFzQkksc0JBQXNCO0VBQ3RCLGdCQUFnQjtFQUNoQixtQkFBbUIsRUFtQnBCO0VBM0NIO0lBMEJNLHNCQUFzQjtJQUN0QixnQkFBZ0I7SUFDaEIsZ0JBQWdCO0lBQ2hCLG1CQUFtQjtJQUNuQixvQkFBb0I7SUFDcEIsa0JBQWtCLEVBQ25CO0VBaENMO0lBa0NNLFlBQVksRUFDYjtFQW5DTDtJQXFDTSxVQUFVO0lBQ1Ysd0JBQXdCLEVBSXpCO0lBMUNMO01Bd0NRLFlBQVksRUFDYjs7QUFLUDtFQUNFLGNBQWM7RUFDZCxZQUFZO0VBQ1osYUFBYTtFQUNiLDJEQUFxQjtFQUNyQiwyQkFBMkI7RUFDM0IsNkJBQTZCO0VBQzdCLGdCQUFnQixFQUNqQjs7QUFFRDtFQUNFLGVBQWU7RUFDZixtQkFBbUI7RUFDbkIsU0FBUztFQUNULFFBQVE7RUFDUixZQUFZO0VBQ1osaUJBQWlCO0VBQ2pCLGlCQUFpQjtFQUNqQiwyQ0FBNEI7RUFDNUIsaUJBQWlCLEVBQ2xCOztBQUVEO0VBQ0UsZUFBZSxFQUNoQjs7QUFFRDtFQUNFLGdCQUFnQixFQXlEakI7RUExREQ7SUFHSSxvQkFBb0IsRUFpQnJCO0lBcEJIO01BS00sWUFBWTtNQUNaLG1CQUFtQjtNQUNuQixVQUFVO01BQ1YsV0FBVztNQUNYLFlBQVk7TUFDWixhQUFhO01BQ2Isc0RBQXFCO01BQ3JCLDZCQUE2QixFQUM5QjtJQWJMO01BZ0JRLFlBQVk7TUFDWiwwREFBcUIsRUFDdEI7RUFsQlA7SUFzQkksWUFBWTtJQUNaLGlCQUFpQixFQUNsQjtFQXhCSDtJQTBCSSxjQUFjO0lBQ2QsbUJBQW1CO0lBQ25CLFVBQVU7SUFDVixRQUFRO0lBQ1IsWUFBWTtJQUNaLGdCQUFnQjtJQUNoQiwwQkQxSFk7SUMySFosaUJBQWlCLEVBd0JsQjtJQXpESDtNQW1DTSxXQUFXLEVBQ1o7SUFwQ0w7TUFzQ00sZUFBZTtNQUNmLFlBQVk7TUFDWixpQkFBaUIsRUFJbEI7TUE1Q0w7UUEwQ1EsMEJEL0hTLEVDZ0lWO0lBM0NQO01BOENNLGVEeElVO01DeUlWLGlCQUFpQixFQUlsQjtNQW5ETDtRQWlEUSxZQUFZLEVBQ2I7SUFsRFA7TUFzRFEsaUJBQWlCLEVBQ2xCOztBQUtQO0VBR00sZUFBZSxFQUNoQjs7QUFKTDtFQU1NLGVBQWU7RUFDZixlQUFlO0VBQ2Ysa0JBQWtCLEVBQ25COztBQUlMO0VBQ0UsY0FBYyxFQStCZjtFQWhDRDtJQUdJLGVBQWUsRUFDaEI7RUFKSDs7SUFPSSxlQUFlLEVBQ2hCO0VBUkg7SUFVSSxvQkFBb0IsRUFDckI7RUFYSDtJQWFJLG1CQUFtQjtJQUNuQixPQUFPO0lBQ1AsY0FBYztJQUNkLGlCQUFpQixFQUlsQjtJQXBCSDtNQWtCTSxtQkFBbUIsRUFDcEI7RUFuQkw7SUFzQkksbUJBQW1CO0lBQ25CLGtCQUFrQixFQUNuQjtFQXhCSDtJQTBCSSxxQkFBcUIsRUFDdEI7RUEzQkg7SUE2Qkksa0JBQWtCO0lBQ2xCLGtCQUFrQixFQUNuQjs7QUkzTkg7RVRtQkksaUJNd0lvQjtFTnhJcEIsWU9BNEQ7RVBBNUQsc0JRcUZrQjtFUnJGbEIsdUJRcUZrQjtFQ3RHcEIsaUJBQWlCO0VBQ2pCLHlCQUF5QjtFQUl6QixtQkFBbUI7RUFDbkIsdUJBQXVCLEVBc0Z4QjtFQTFGQztJQUpGO01BS0ksaUJBQWlCLEVBeUZwQixFQUFBO0VBckZDO0lBVEY7TUFVSSxtQkFBbUI7TUFDbkIsaUJBQWlCLEVBbUZwQixFQUFBO0VBOUZEOztJQWVJLFdBQVc7SUFDWCxtQkFBbUIsRUFLcEI7SUFyQkg7O01Ba0JNLFlBQVk7TUFDWixtQkFBbUIsRUFDcEI7RUFwQkw7SUF1Qkksa0JBQWtCLEVBQ25CO0VBeEJIO0lBMEJJLGtCQUFrQixFQWVuQjtJQWRDO01BM0JKO1FBNEJNLG1CQUFtQjtRQUNuQixhQUFhO1FBQ2IsYUFBYTtRQUNiLFlBQVksRUFVZixFQUFBO0lBUkM7TUFqQ0o7UUFtQ1EsZUFBZSxFQUloQixFQUFBO0VBSEM7SUFwQ1I7TUFxQ1UsWUFBWSxFQUVmLEVBQUE7RUFHTDtJQTFDRjtNQTRDTSxxQkFBcUIsRUFDdEIsRUFBQTtFQTdDTDtJQ3NCRSxzQkFSdUI7SURtQ3JCLGlCQUFpQjtJQUNqQixlTHBCYTtJS3FCYixtQkFBbUIsRUFJcEI7SUF2REg7TUFxRE0sa0JBQWtCLEVBQ25CO0VBdERMO0lBeURJLGdCQUFnQjtJQUNoQixlQUFlO0lBQ2YsZ0JBQWdCO0lBQ2hCLGlCQUFpQixFQUlsQjtJQWhFSDtNQThETSxlTDlCWSxFSytCYjtFQS9ETDtJQWtFSSxtQkFBbUI7SUFDbkIsMERBQXFCLEVBTXRCO0lBekVIO01BcUVNLGVBQWU7TUFDZixnQkFBZ0I7TUFDaEIsaUJBQWlCLEVBQ2xCO0VBRUg7SUExRUY7TVRtQkksaUJNd0lvQjtNTnhJcEIsWU9BNEQ7TVBBNUQsc0JRcUZrQjtNUnJGbEIsdUJRcUZrQixFQ1ZyQixFQUFBO0VBakJDO0lBN0VGO01BK0VNLDBCQUEwQixFQUMzQixFQUFBO0VBRUg7SUFsRkY7TVRtQkksaUJNd0lvQjtNTnhJcEIsWU9BNEQ7TVBBNUQsc0JRcUZrQjtNUnJGbEIsdUJRcUZrQjtNQ3BCbEIsaUJBQWlCO01BQ2pCLGNBQWMsRUFTakI7TUE5RkQ7UUF1Rk0sc0JBQXNCO1FBQ3RCLHdCQUFnQjtXQUFoQixxQkFBZ0I7Z0JBQWhCLGdCQUFnQixFQUNqQixFQUFBO0VBRUg7SUEzRkY7TUE0Rkksa0JBQWtCLEVBRXJCLEVBQUE7O0FBRUQ7OztFQUdFLDhCQUE4QjtFQUM5Qiw2QkFBNkI7RUFDN0IscUJBQXFCLEVBU3RCO0VBUkM7SUFORjs7O01BT0ksa0JBQWtCO01BQ2xCLGlCQUFpQixFQU1wQixFQUFBO0VBSkM7SUFWRjs7O01BV0ksaUJBQWlCO01BQ2pCLGtCQUFrQixFQUVyQixFQUFBOztBQUVEOztFQUVFLDRFQUFxQixFQUN0Qjs7QUFFRDtFQUNFLDRFQUFxQixFQUN0Qjs7QUV2SEQ7RUFDRSxpQkFBaUIsRUFDbEI7O0FBRUQ7RUFDRSxXQUFXO0VBQ1gsbUJBQW1CLEVBVXBCO0VBWkQ7SUFJSSxzQkFBc0I7SUFDdEIsY0FBYztJQUNkLG1CQUFtQjtJQUNuQix1QkFBdUIsRUFJeEI7SUFIQztNQVJKO1FBU00sV0FBVyxFQUVkLEVBQUE7O0FBR0g7RUFDRSxzQkFBc0I7RUFDdEIsWUFBWTtFQUNaLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsMEJBQTBCO0VBQzFCLDRDQUE0QixFQU83QjtFQWJEO0lBUUksWUFBWSxFQUliO0lBWkg7TUFVTSxXQUFXLEVBQ1o7O0FBSUw7RUFFSSxZQUFZO0VBQ1osaUJBQWlCO0VBQ2pCLFdBQVcsRUFDWjs7QUFMSDtFQU9JLDBCQUEwQixFQUMzQjs7QUFSSDtFQVVJLDBCQUEwQixFQUMzQjs7QUFYSDtFQWFJLDBCQUEwQixFQUMzQjs7QUFkSDtFQWdCSSwwQkFBMEIsRUFDM0I7O0FBakJIO0VBbUJJLDBCQUEwQixFQUMzQjs7QUFwQkg7RUFzQkksMEJBQTBCLEVBQzNCOztBQXZCSDtFQXlCSSwwQkFBMEIsRUFNM0I7RUEvQkg7SUEyQk0sWUFBWTtJQUNaLGlCQUFpQjtJQUNqQixrQkFBa0IsRUFDbkI7O0FDL0RMO0VBRUksaUJBQWlCLEVBQ2xCOztBQUhIO0VBS0ksMEJSc0JlLEVRakJoQjtFQVZIO0lBT00sWUFBWTtJQUNaLGdCQUFnQixFQUNqQjs7QUFUTDtFQVlJLDZCQUE2QjtFQUM3Qix1QkFBdUI7RUFDdkIseUJBQXlCO0VBQ3pCLGlCQUFpQjtFQUNqQixtQkFBbUIsRUFJcEI7RUFwQkg7SUFrQk0sWUFBWSxFQUNiOztBQUlMO0VaSkksaUJNd0lvQjtFTnhJcEIsWU9BNEQ7RVBBNUQsc0JRcUZrQjtFUnJGbEIsdUJRcUZrQixFSW5FckI7RUFaQztJQUZGO01aSkksaUJNd0lvQjtNTnhJcEIsWU9BNEQ7TVBBNUQsc0JRcUZrQjtNUnJGbEIsdUJRcUZrQjtNSTdFbEIsZ0JBQWdCLEVBVW5CO01BZEQ7UUFPUSxzQkFBc0IsRUFJdkI7UUFYUDtVQVNVLGlCQUFpQixFQUNsQixFQUFBOztBQU1UO0VBQ0UsaUJBQWlCO0VBQ2pCLG9CQUFvQjtFQUNwQixZQUFZO0VBQ1osaUJBQWlCLEVBQ2xCOztBQUVEO0VBQ0UsV0FBVyxFQWNaO0VBZkQ7SUFHSSxVQUFVLEVBQ1g7RUFDRDtJQUxGO01BT00sc0JBQXNCLEVBTXZCO01BYkw7UUFTUSxjQUFTO1FBQ1Qsc0JBQXNCO1FBQ3RCLG1CQUFtQixFQUNwQixFQUFBOztBQUtQO0VBQ0UsV0FBVyxFQUlaO0VBTEQ7SUFHSSxlQUFlLEVBQ2hCOztBQUdIO0VBRUksc0JBQXNCO0VBQ3RCLFlBQVk7RUFDWixhQUFhO0VBQ2IsK0NBQWUsRUFDaEI7O0FBTkg7RUFRSSxzQkFBc0I7RUFDdEIsWUFBWTtFQUNaLGFBQWE7RUFDYixpREFBZSxFQUNoQjs7QUFaSDtFQWNJLHNCQUFzQjtFQUN0QixZQUFZO0VBQ1osYUFBYTtFQUNiLG1EQUFlLEVBQ2hCOztBQUdIO0VaeEVJLGlCTXdJb0I7RU54SXBCLFlPQTREO0VQQTVELHNCUXFGa0I7RVJyRmxCLHVCUXFGa0I7RUlYcEIsbUJBQW1CO0VBQ25CLGlCQUFpQixFQTBEbEI7RUE3REQ7SUFNSSxZQUFZO0lBQ1osaUJBQWlCO0lBQ2pCLG9CQUFvQixFQUlyQjtJQVpIO01BVU0sMEJBQTBCLEVBQzNCO0VBWEw7SUFjSSxrQkFBa0I7SUFDbEIsVUFBVTtJQUNWLDhCQUE4QjtJQUM5QixZQUFZO0lBQ1osZ0JBQWdCO0lBQ2hCLGtCQUFrQixFQUNuQjtFQXBCSDtJQXNCSSxzQkFBc0I7SUFDdEIsdUJBQXVCLEVBQ3hCO0VBeEJIO0lBMEJJLHNCQUFzQjtJQUN0QixZQUFZO0lBQ1osYUFBYTtJQUNiLDZEQUE0RDtJQUM1RCxzQkFBc0IsRUFDdkI7RUEvQkg7SUFpQ0ksc0JBQXNCO0lBQ3RCLG1CQUFtQjtJQUNuQixrQkFBa0IsRUFDbkI7RUFwQ0g7SUFzQ0ksc0JBQXNCO0lBQ3RCLFNBQVM7SUFDVCxVQUFVO0lBQ1YsZ0JBQWdCO0lBQ2hCLG9DQUFvQztJQUNwQyw4QkFBOEI7SUFDOUIsbUNBQW1DLEVBQ3BDO0VBN0NIO0lBK0NJLGNBQWM7SUFDZCxtQkFBbUI7SUFDbkIsYUFBYTtJQUNiLGFBQWE7SUFDYixnQkFBZ0I7SUFDaEIsMEJBQTBCLEVBUTNCO0lBNURIO01Bc0RNLHNCQUFzQixFQUt2QjtNQTNETDtRQXdEUSxZQUFZO1FBQ1osMkJBQTJCLEVBQzVCOztBQ3JKUDtFQUNFLHNCQUFzQjtFQUN0QixtQkFBbUI7RUFDbkIsZ0JBQWdCO0VBQ2hCLGlCQUFpQjtFQUNqQixtQkFBbUI7RUFFbkIsNENBQTRCLEVBQzdCOztBQUVEO0VBQ0UsbUJBQW1CO0VBQ25CLGdCQUFnQixFQUNqQjs7QUFFRDtFQUNFLG1CQUFtQjtFQUNuQixtQkFBbUIsRUFDcEI7O0FBRUQ7RUFDRSxlQUFlO0VBQ2YsZ0JBQWdCO0VBQ2hCLHlCQUF5QjtFQUN6QixpQkFBaUIsRUFDbEI7O0FBRUQ7O0VBRUUsb0JUQ2U7RVNBZixZQUFZLEVBSWI7RUFQRDs7SUFLSSxvQlREbUIsRVNFcEI7O0FBR0g7O0VBRUUsb0JUTmdCO0VTT2hCLFlBQVksRUFJYjtFQVBEOztJQUtJLG9CVFJvQixFU1NyQjs7QUFHSDs7RUFFRSxpQkFBaUI7RUFDakIsZVRoQmdCLEVTb0JqQjtFQVBEOztJQUtJLG9CVGpCb0IsRVNrQnJCOztBQ25ESDtFQUNFLG1CQUFtQjtFQUNuQixrQkFBa0I7RUFBQywrQkFBK0IsRUFJbkQ7RUFIQztJQUhGO01BSUksa0JBQ0QsRUFDRixFQUFBOztBQUVEO0VkV0ksaUJNd0lvQjtFTnhJcEIsWU9BNEQ7RVBBNUQsc0JRcUZrQjtFUnJGbEIsdUJRcUZrQjtFTTNGcEIsbUJBQW1CO0VBQ25CLFNBQVM7RUFDVCxvQ0FBcUI7TUFBckIsZ0NBQXFCO1VBQXJCLDRCQUFxQixFQXlCdEI7RUE5QkM7SUFGRjtNZFdJLGlCTXdJb0I7TU54SXBCLFlPQTREO01QQTVELHNCUXFGa0I7TVJyRmxCLHVCUXFGa0IsRU1oRXJCLEVBQUE7RUFoQ0Q7SUpjRSxzQkFSdUIsRUlJdEI7RUFWSDtJQVlJLHNCQUFzQixFQVN2QjtJQXJCSDtNQWNNLGdCQUFnQixFQUNqQjtJQWZMO01BaUJNLGlCQUFpQjtNQUNqQixlQUFlO01BQ2YsZ0JBQWdCLEVBQ2pCO0VBRUg7SUF0QkY7TWRXSSxpQk13SW9CO01OeElwQixZT0E0RDtNUEE1RCxzQlFxRmtCO01SckZsQix1QlFxRmtCLEVNaEVyQixFQUFBO0VBUEM7SUF6QkY7TWRXSSxpQk13SW9CO01OeElwQixZT0E0RDtNUEE1RCxzQlFxRmtCO01SckZsQix1QlFxRmtCO01NckVsQixrQkFBa0I7TUFDbEIsT0FBTztNQUNQLG1CQUFtQjtNQUNuQix3QkFBZ0I7VUFBaEIsb0JBQWdCO2NBQWhCLGdCQUFnQixFQUVuQixFQUFBOztBQUVEO0VkdkJJLGlCTXdJb0I7RU54SXBCLGFPQXVFO0VQQXZFLHNCUXFGa0I7RVJyRmxCLHVCUXFGa0I7RU14RHBCLGtCQUFrQixFQVVuQjtFQWRDO0lBRkY7TWR2QkksaUJNd0lvQjtNTnhJcEIsYU9BdUU7TVBBdkUsc0JRcUZrQjtNUnJGbEIsdUJRcUZrQixFTTlDckIsRUFBQTtFQWhCRDtJQVFJLFlBQVksRUFDYjtFQUNEO0lBVkY7TWR2QkksaUJNd0lvQjtNTnhJcEIsYU9BdUU7TVBBdkUsc0JRcUZrQjtNUnJGbEIsdUJRcUZrQixFTTlDckIsRUFBQTtFQUhDO0lBYkY7TUFjSSxjQUFjLEVBRWpCLEVBQUE7O0FBRUQ7RUFDRSx3QkFBd0I7RUFDeEIsc0NBQXNCO0VBQ3RCLG1CQUFtQjtFQUNuQiw0Q0FBNEIsRUFVN0I7RUFUQztJQUxGO01BTUksZUFBZTtNQUNmLGNBQWM7TUFDZCxzQ0FBc0I7TUFDdEIsa0NBQWtDLEVBS3JDO01BZEQ7UUFXTSxlQUFlLEVBQ2hCLEVBQUE7O0FBSUw7RUFFSSxtQkFBbUIsRUFDcEI7O0FBSEg7RWR6REksaUJNd0lvQjtFTnhJcEIsWU9BNEQ7RVBBNUQsc0JRcUZrQjtFUnJGbEIsdUJRcUZrQjtFTXRCbEIsbUJBQW1CO0VBQ25CLGdCQUFnQixFQWNqQjtFQXJCSDtJQVNNLFlBQVk7SUFDWixrQkFBa0IsRUFDbkI7RUFYTDtJQWNRLHlCQUF5QjtJQUN6QixpQkFBaUIsRUFDbEI7RUFFSDtJQWxCSjtNQW1CTSxnQkFBZ0IsRUFFbkIsRUFBQTs7QUFyQkg7RUF1QkksbUJBQW1CO0VBQ25CLFNBQVM7RUFDVCx1QlJzRG9CO0VRckRwQixvQ0FBcUI7TUFBckIsZ0NBQXFCO1VBQXJCLDRCQUFxQixFQUN0Qjs7QUEzQkg7RUE2QkksbUJBQW1CO0VBQ25CLFNBQVM7RUFDVCxvQ0FBcUI7TUFBckIsZ0NBQXFCO1VBQXJCLDRCQUFxQixFQUN0Qjs7QUFDRDtFQWpDRjs7SUFvQ00sZUFBZTtJQUNmLG1CQUFtQjtJQUNuQixPQUFPO0lBQ1AsZUFBZTtJQUNmLHdCQUFnQjtRQUFoQixvQkFBZ0I7WUFBaEIsZ0JBQWdCLEVBQ2pCO0VBekNMO0lBMkNNLFdBQVc7SUFDWCxvQkFBb0IsRUFDckIsRUFBQTs7QUFFSDtFQS9DRjtJQWlETSxnQkFBZ0IsRUFDakI7RUFsREw7SUFvRE0scUJBQXFCLEVBQ3RCLEVBQUE7O0FBSUw7RUFDRSwwQlY1R2tCLEVVaUhuQjtFQU5EO0lBR0ksWUFBWTtJQUNaLG1CQUFtQixFQUNwQjs7QUFHSDtFQUNFLGtCQUFrQjtFQUNsQixxQkFBcUIsRUFTdEI7RUFSQztJQUhGO01BSUkscUJBQWM7TUFBZCxzQkFBYztNQUFkLHFCQUFjO01BQWQsY0FBYztNQUNkLDRCQUFvQjtVQUFwQix3QkFBb0I7Y0FBcEIsb0JBQW9CO01BQ3BCLHNDQUE4QjtVQUE5QiwwQkFBOEI7Y0FBOUIsOEJBQThCLEVBS2pDO01BWEQ7UUFRTSxvQkFBYTtRQUFiLHFCQUFhO1lBQWIsaUJBQWE7Z0JBQWIsYUFBYSxFQUNkLEVBQUE7O0FBSUw7RWR2SUksaUJNd0lvQjtFTnhJcEIsWU9BNEQ7RVBBNUQsc0JRcUZrQjtFUnJGbEIsdUJRcUZrQjtFTW9EcEIsaUJBQWlCO0VBQ2pCLFlBQVk7RUFDWixtQkFBbUIsRUFDcEI7O0FDL0pEO0VBQ0UscUJBQWM7RUFBZCxzQkFBYztFQUFkLHFCQUFjO0VBQWQsY0FBYztFQUNkLGNBQWM7RUFDZCxrQkFBa0I7RUFDbEIsNkJBQTZCO0VBQzdCLHVCQUF1QjtFQUN2QixtQkFBbUIsRUEyQnBCO0VBakNEO0lBUUkscUJBQWM7SUFBZCxzQkFBYztJQUFkLHFCQUFjO0lBQWQsY0FBYztJQUNkLDBCQUFvQjtJQUFwQiw0QkFBb0I7UUFBcEIsdUJBQW9CO1lBQXBCLG9CQUFvQjtJQUNwQix5QkFBd0I7SUFBeEIsZ0NBQXdCO1FBQXhCLHNCQUF3QjtZQUF4Qix3QkFBd0I7SUFDeEIsV0FBVyxFQUNaO0VBWkg7SUFlSSxlQUFlLEVBQ2hCO0VBaEJIOztJQW1CSSxZQUFZLEVBQ2I7RUFDRDtJQXJCRjtNQXNCSSxrQ0FBa0MsRUFXckM7TUFqQ0Q7UUF3Qk0sa0JBQWtCLEVBSW5CO1FBNUJMO1VMc0JFLHNCQVJ1QixFS2FsQjtNQTNCUDtRQThCTSxZQUFZLEVBQ2IsRUFBQTs7QUFJTDtFQUVJLG1CQUFtQixFQUNwQjs7QUFHSDtFQUNFLG1CQUFtQixFQUNwQjs7QUFFRDtFQUVJLGdCQUFnQixFQUNqQjs7QUFISDtFQUtJLGFBQWE7RUFDYixjQUFjO0VBQ2Qsa0JBQWtCLEVBWW5CO0VBWEM7SUFSSjtNQVNNLFlBQVk7TUFDWixhQUFhLEVBU2hCLEVBQUE7RUFQQztJQVpKO01BYU0sYUFBYTtNQUNiLGNBQWMsRUFLakIsRUFBQTtFQW5CSDtJQWlCTSxZQUFZLEVBQ2I7O0FBSUw7RUFFSSxtQkFBbUI7RUFDbkIsVUFBVTtFQUNWLGlCQUFpQixFQUlsQjtFQUhDO0lBTEo7TUFNTSxXQUFXLEVBRWQsRUFBQTs7QUFSSDtFQVVJLG1CQUFtQixFQWlCcEI7RUEzQkg7SUFZTSxXQUFXO0lBQ1gsaUJBQWlCLEVBQ2xCO0VBZEw7SUFnQk0sY0FBYyxFQUNmO0VBQ0Q7SUFsQko7TUFvQlEsY0FBYyxFQUNmO0lBckJQO01BdUJRLGVBQWU7TUFDZixZQUFZLEVBQ2IsRUFBQTs7QUF6QlA7O0VBOEJJLG1CQUFtQjtFQUNuQixpQkFBaUIsRUFvQ2xCO0VBbkVIOztJQWlDTSxzQkFBc0I7SUFDdEIsV0FBVztJQUNYLGdCQUFnQjtJQUNoQixvQkFBb0IsRUFDckI7RUFDRDtJQXRDSjs7TUF1Q00sbUJBQW1CLEVBNEJ0QjtNQW5FSDs7UUF5Q1EsbUJBQW1CO1FBQ25CLFlBQVk7UUFDWixxQkFBcUI7UUFDckIsbUJBQW1CLEVBcUJwQjtRQWpFUDs7VUE4Q1UsY0FBYyxFQUNmO1FBL0NUOztVQWlEVSx1QkFBZ0I7VUFDaEIsc0JBQXNCO1VBQ3RCLG1CQUFtQjtVQUNuQixXQUFXO1VBQ1gsWUFBWTtVQUNaLGFBQWE7VUFDYiwyQkFBMkI7VUFDM0IsbUJBQW1CO1VBQ25CLG9CQUFvQjtVQUNwQixZQUFZO1VBQ1oseUJBQXlCO1VBQ3pCLGdCQUFnQjtVQUNoQixpQkFBaUI7VUFDakIsbUJBQW1CO1VBQ25CLHdCQUF3QixFQUN6QixFQUFBOztBQWhFVDtFQXFFSSxPQUFPLEVBS1I7RUFKQztJQXRFSjtNQXVFTSxVQUFVO01BQ1Ysb0JBQW9CLEVBRXZCLEVBQUE7O0FBRUM7RUE1RUo7SUE2RU0sa0JBQWtCLEVBRXJCLEVBQUE7O0FBL0VIO0VBaUZJLHlCQUF5QjtFQUN6QixpQkFBaUIsRUFDbEI7O0FBR0g7RUFFSSxXQUFXO0VBQ1gsZUFBZSxFQUNoQjs7QUFHSDtFZjdJSSxpQk13SW9CO0VOeElwQixZT0E0RDtFUEE1RCxzQlFxRmtCO0VSckZsQix1QlFxRmtCO0VPMERwQixjQUFjLEVBeUJmO0VBM0JEO0lmN0lJLGlCTXdJb0I7SU54SXBCLFlPQTREO0lQQTVELHNCUXFGa0I7SVJyRmxCLHVCUXFGa0I7SU82RGxCLGFBQWE7SUFDYixjQUFjLEVBS2Y7SUFYSDtNQVFNLFdBQVc7TUFDWCxlQUFlLEVBQ2hCO0VBVkw7SWY3SUksaUJNd0lvQjtJTnhJcEIsWU9BNEQ7SVBBNUQsc0JRcUZrQjtJUnJGbEIsdUJRcUZrQixFT3NFbkI7RUFDRDtJQWZGO01mN0lJLGlCTXdJb0I7TU54SXBCLFlPQTREO01QQTVELHNCUXFGa0I7TVJyRmxCLHVCUXFGa0IsRU9tRnJCLEVBQUE7RUEzQkQ7O0lmN0lJLGlCTXdJb0I7SU54SXBCLFlPQTREO0lQQTVELHNCUXFGa0I7SVJyRmxCLHVCUXFGa0I7SU82RWxCLG1CQUFtQixFQUNwQjtFQXRCSDtJQXdCSSxZQUFZO0lBQ1osY0FBYyxFQUNmOztBQzFMSDtFQUNFLG1CQUFtQixFQVlwQjtFQWJEO0lBR0ksaUJBQWlCO0lBQ2pCLG9CQUFvQixFQUNyQjtFQUxIO0lBT0ksb0JBQW9CLEVBQ3JCO0VBUkg7SUFVSSxzQkFBc0I7SUFDdEIsb0JBQW9CLEVBQ3JCOztBQUdIO0VBQ0UsWUFBWTtFQUNaLGlCQUFpQixFQUNsQjs7QUNsQkQ7RUFFRSwwQkFBMEIsRUFDM0I7O0FBRUQ7RUFFSSxlQUFlO0VBQ2Ysa0JBQWtCO0VBQ2xCLGtDQUFrQyxFQU9uQztFQVhIO0lBTU0sY0FBYyxFQUNmO0VBUEw7SUFTTSxpQ0FBaUMsRUFDbEM7O0FBTUw7RUFDRSxzQkFBc0IsRUFDdkI7O0FBRUQ7RWpCTkksaUJNd0lvQjtFTnhJcEIsWU9BNEQ7RVBBNUQsc0JRcUZrQjtFUnJGbEIsdUJRcUZrQixFUzdFckI7O0FBQ0Q7RWpCVEksaUJNd0lvQjtFTnhJcEIsWU9BNEQ7RVBBNUQsc0JRcUZrQjtFUnJGbEIsdUJRcUZrQjtFUzFFcEIsaUJBQWlCLEVBQ2xCOztBQy9CRDtFQUNFLGVBQWU7RUFDZiw2QkFBNkI7RUFDN0IsNkJBQTZCO0VBQzdCLHVCQUF1QixFQTZCeEI7RUFqQ0Q7SUFPSSxlQUFlO0lBQ2YsZ0JBQWdCLEVBRWpCO0VBVkg7O0lBY0ksWUFBWSxFQUNiO0VBZkg7SUFrQkksaUJBQWlCLEVBQ2xCO0VBbkJIO0lBc0JJLGVBQWU7SUFDZixtQkFBbUIsRUFTcEI7SUFoQ0g7TUEwQk0sMkRBQWlDO01BQWpDLHlEQUFpQztNQUNqQyxlQUFlO01BQ2YseUVBQXlFO01BQ3pFLGlCQUFpQjtNQUNqQiw0Q0FBNEIsRUFDN0I7O0FBSUw7RUFDRSxlQUFlO0VBQ2YsMEJBQTBCLEVBMEMzQjtFQTVDRDtJQUtJLFlBQVksRUFDYjtFQU5IO0lBU0kscUJBQWM7SUFBZCxzQkFBYztJQUFkLHFCQUFjO0lBQWQsY0FBYztJQUNkLDBCQUFvQjtJQUFwQiw0QkFBb0I7UUFBcEIsdUJBQW9CO1lBQXBCLG9CQUFvQjtJQUNwQixZQUFZO0lBQ1osZ0JBQWdCLEVBQ2pCO0VBRUQ7SUFmRjtNQWlCTSxZQUFZO01BQ1osZUFBZTtNQUNmLG1CQUFtQixFQUtwQjtNQXhCTDtRQXFCUSxXQUFXO1FBQ1gsbUJBQW1CLEVBQ3BCO0lBdkJQO01BMkJNLGlCQUFpQjtNQUNqQixXQUFXLEVBQ1o7SUE3Qkw7TUFnQ00saUJBQWlCLEVBQ2xCO0lBakNMO01Bb0NNLGdCQUFnQixFQUNqQixFQUFBO0VBckNMO0lBeUNJLHFCQUFjO0lBQWQsc0JBQWM7SUFBZCxxQkFBYztJQUFkLGNBQWM7SUFDZCx5QkFBd0I7SUFBeEIsZ0NBQXdCO1FBQXhCLHNCQUF3QjtZQUF4Qix3QkFBd0IsRUFDekI7O0FBR0g7RUFRRTs7O09BR0s7RUErREw7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBb0JHLEVBQ0o7RUE5RkM7SUFERjtNQUVJLG1CQUFtQixFQTZGdEIsRUFBQTtFQTNGQztJQUpGO01BS0ksZ0JBQWdCO01BQ2hCLHFCQUFxQixFQXlGeEIsRUFBQTtFQS9GRDtJQWFJLHFCQUFjO0lBQWQsc0JBQWM7SUFBZCxxQkFBYztJQUFkLGNBQWM7SUFDZCwwQkFBb0I7SUFBcEIsNEJBQW9CO1FBQXBCLHVCQUFvQjtZQUFwQixvQkFBb0IsRUFPckI7SUFOQztNQWZKO1FBZ0JNLGtCQUFrQixFQUtyQixFQUFBO0lBSEM7TUFsQko7UUFtQk0sa0JBQWtCLEVBRXJCLEVBQUE7RUFyQkg7SUF1QkksWUFBWSxFQWtEYjtJQXpFSDtNQTBCTSxZQUFZO01BQ1osc0JBQXNCO01BQ3RCLG1CQUFtQjtNQUNuQixVQUFVO01BQ1YsWUFBWTtNQUNaLGFBQWE7TUFDYixvRUFBbUU7TUFDbkUseUJBQXlCLEVBUTFCO01BUEM7UUFsQ047VUFtQ1EsbUJBQW1CLEVBTXRCLEVBQUE7TUFKQztRQXJDTjtVQXNDUSxXQUFXO1VBQ1gsbUJBQW1CLEVBRXRCLEVBQUE7SUFFRDtNQTNDSjtRQTRDTSxVQUFVLEVBNkJiLEVBQUE7SUExQkM7TUEvQ0o7UUFnRE0sbUJBQW1CO1FBQ25CLGFBQWE7UUFDYixXQUFXO1FBQ1gsY0FBYyxFQXNCakIsRUFBQTtJQXBCQztNQXJESjtRQXNETSxlQUFlO1FBQ2YsY0FBYztRQUNkLGlCQUFpQixFQWlCcEIsRUFBQTtJQWRDO01BM0RKO1FBNERNLHFCQUFjO1FBQWQsc0JBQWM7UUFBZCxxQkFBYztRQUFkLGNBQWM7UUFDZCxtQkFBbUI7UUFDbkIsZ0JBQWdCO1FBQ2hCLGNBQWM7UUFDZCw0QkFBc0I7UUFBdEIsOEJBQXNCO1lBQXRCLHlCQUFzQjtnQkFBdEIsc0JBQXNCO1FBQ3RCLHlCQUF3QjtRQUF4QixnQ0FBd0I7WUFBeEIsc0JBQXdCO2dCQUF4Qix3QkFBd0IsRUFRM0IsRUFBQTtJQU5DO01BbkVKO1FBb0VNLHFCQUFjO1FBQWQsc0JBQWM7UUFBZCxxQkFBYztRQUFkLGNBQWM7UUFDZCwwQkFBb0I7UUFBcEIsNEJBQW9CO1lBQXBCLHVCQUFvQjtnQkFBcEIsb0JBQW9CO1FBQ3BCLHNDQUE4QjtZQUE5QiwwQkFBOEI7Z0JBQTlCLDhCQUE4QjtRQUM5QixlQUFlLEVBRWxCLEVBQUE7O0FBeUJIOztFQUVFLGtCQUFrQixFQUNuQjs7QUFFRDtFQUNFLGNBQWM7RUFDZCxXQUFXO0VBQ1gsWUFBWSxFQXdGYjtFQTNGRDtJQU1JLG1CQUFtQjtJQUNuQiwwQkFBMEIsRUFVM0I7SUFqQkg7TUFVTSxhQUFhO01BQ2IsZUFBZTtNQUNmLG1CQUFtQjtNQUNuQixZQUFZO01BQ1osVUFBVTtNQUNWLGVBQWUsRUFDaEI7RUFoQkw7SUFvQkksbUJBQW1CO0lBQ25CLGlCQUFpQjtJQUNqQix3Q0FBc0I7WUFBdEIsZ0NBQXNCLEVBQ3ZCO0VBdkJIO0lBMEJJLFlBQVk7SUFDWixnQkFBZ0IsRUFTakI7SUFSQztNQTVCSjtRQTZCTSxnQkFBZ0IsRUFPbkIsRUFBQTtJQXBDSDtNQWlDTSxZQUFZO01BQ1oscUJBQXFCLEVBQ3RCO0VBbkNMOztJQXdDSSxjQUFjLEVBQ2Y7RUF6Q0g7OztJQThDSSxnQkFBZ0I7SUFDaEIsMEJBQWtCO09BQWxCLHVCQUFrQjtRQUFsQixzQkFBa0I7WUFBbEIsa0JBQWtCLEVBQ25CO0VBaERIO0lBbURJLGVBQWUsRUFDaEI7RUFwREg7SUF1REksZUFBZTtJQUNmLFdBQVcsRUFDWjtFQXpESDtJQTRESSxXQUFXLEVBQ1o7RUE3REg7SUFnRUksY0FBYyxFQUNmO0VBakVIO0lBb0VJLDBCQUFrQjtPQUFsQix1QkFBa0I7UUFBbEIsc0JBQWtCO1lBQWxCLGtCQUFrQixFQUNuQjtFQXJFSDtJQXlFTSxXQUFXO0lBQ1gscUNBQTZCO0lBQTdCLDZCQUE2QixFQUM5QjtFQTNFTDtJQStFSSxtQkFBbUI7SUFDbkIsYUFBYTtJQUNiLGlCQUFpQixFQUNsQjtFQWxGSDtJQXFGSSxlQUFlLEVBS2hCO0lBMUZIO01Bd0ZNLGFBQWEsRUFDZDs7QUFJTDtFQUNFLGVBQWUsRUFDaEI7O0FBRUQ7RUFDRSwyQ0FBbUM7RUFBbkMsbUNBQW1DLEVBQ3BDOztBQUdEO0VBRUksc0JBQXNCO0VBQ3RCLFFBQVEsRUF5QlQ7RUE1Qkg7SUFNTSxlQUFlO0lBQ2YsWUFBWTtJQUNaLGFBQWE7SUFDYixnQkFBZ0I7SUFDaEIsb0JBQW9CO0lBQ3BCLDBCQUEwQjtJQUMxQixrREFBa0MsRUFDbkM7RUFiTDtJQWlCUSw0R0FBK0U7SUFBL0Usa0dBQStFO0lBQy9FLDRDQUE0QixFQUM3QjtFQW5CUDtJQXdCUSw0R0FBK0U7SUFBL0Usa0dBQStFO0lBQy9FLDRDQUE0QixFQUM3Qjs7QUFNUDtFQUdNLGFBQWE7RUFDYixlQUFlO0VBQ2YsNENBQTRCO0VBQzVCLGdCQUFnQixFQUNqQjs7QUFQTDtFQVdJLGVBQWU7RUFDZixnQkFBZ0IsRUErQ2pCO0VBM0RIO0lBZU0sb0JBQW9CO0lBQ3BCLGdCQUFnQixFQUtqQjtJQUhDO01BbEJOO1FBbUJRLGVBQWUsRUFFbEIsRUFBQTtFQXJCTDtJQTBCVSxZQUFZO0lBQ1osNEJBQXFCO0lBQXJCLDZCQUFxQjtJQUFyQiw0QkFBcUI7SUFBckIscUJBQXFCO0lBQ3JCLG1CQUFtQjtJQUNuQixVQUFVO0lBQ1YsV0FBVztJQUNYLFdBQVc7SUFDWCxhQUFhO0lBQ2Isb0VBQW1FO0lBQ25FLHlCQUF5QixFQUMxQjtFQUVEO0lBckNSO01Bc0NVLFVBQVU7TUFDVixZQUFZLEVBS2YsRUFBQTtFQUhDO0lBekNSO01BMENVLFlBQVksRUFFZixFQUFBO0VBNUNQO0lBZ0RNLG1CQUFtQjtJQUNuQixpQkFBaUI7SUFDakIsY0FBYztJQUNkLGVBQWUsRUFDaEI7RUFFRDtJQXRESjtNQXVETSxhQUFhO01BQ2IsZUFBZTtNQUNmLDRDQUE0QixFQUUvQixFQUFBOztBQTNESDtFQStETSxlQUFlLEVBUWhCO0VBdkVMO0lBa0VRLGVBQWUsRUFJaEI7SUFIQztNQW5FUjtRQW9FVSxlQUFlLEVBRWxCLEVBQUE7O0FBdEVQO0VBNEVNLGVBQWUsRUFDaEI7O0FBN0VMO0VBaUZJLG1CQUFtQixFQUNwQjs7QUFsRkg7RUF1RlEsa0JBQWtCLEVBQ25COztBQUVEO0VBMUZOO0lBOEZjLGNBQWMsRUFDZixFQUFBOztBQUtQO0VBcEdOO0lBd0dVLGFBQWEsRUFDZCxFQUFBOztBQUdIO0VBNUdOO0lBNkdRLHVCQUF1QjtJQUN2Qiw0QkFBNEI7SUFDNUIsbUJBQW1CO0lBQ25CLHFCQUFxQjtJQUNyQixnQkFBZ0I7SUFDaEIsNENBQTRCLEVBcUIvQjtJQXZJTDtNQXFIVSw0QkFBNEI7TUFDNUIsNENBQTRCLEVBZTdCO01BcklUO1FBMEhjLFlBQVk7UUFDWixlQUFlO1FBQ2YsbUJBQW1CO1FBQ25CLFNBQVM7UUFDVCxZQUFZO1FBQ1osWUFBWTtRQUNaLGFBQWE7UUFDYixpRUFBZ0U7UUFDaEUseUJBQXlCLEVBQzFCLEVBQUE7O0FBUVQ7RUEzSUo7SUE0SU0sbURBQTBDO1lBQTFDLDJDQUEwQyxFQWdEN0MsRUFBQTs7QUE1TEg7RUFnSk0sbUJBQW1CLEVBMkNwQjtFQTNMTDtJQW1KUSxhQUFhO0lBQ2IsaUJBQWlCO0lBQ2pCLDRDQUE0QixFQTRCN0I7SUExQkM7TUF2SlI7UUF3SlUsdUJBQXVCO1FBQ3ZCLDRCQUE0QjtRQUM1QixXQUFXO1FBQ1gscUJBQXFCO1FBQ3JCLGdCQUFnQjtRQUNoQixpQkFBaUIsRUFvQnBCLEVBQUE7SUFoQkc7TUFqS1Y7UUFrS1ksY0FBYztRQUNkLG1CQUFtQjtRQUNuQixTQUFTO1FBQ1QsU0FBUztRQUNULFdBQVc7UUFDWCxnQkFBZ0I7UUFDaEIsaUNBQXlCO1FBQXpCLHlCQUF5QixFQVE1QixFQUFBO0lBTkM7TUExS1Y7UUEyS1ksWUFBWSxFQUtmLEVBQUE7SUFIQztNQTdLVjtRQThLWSxZQUFZLEVBRWYsRUFBQTtFQUlEO0lBcExSO01Bc0xZLGVBQWU7TUFDZixZQUFZLEVBQ2IsRUFBQTs7QUFRWDtFQUNFLGNBQWMsRUF1RGY7RUF4REQ7SUFJSSx5RUFBeUUsRUFDMUU7RUFMSDtJQVNNLHFCQUFxQixFQUN0QjtFQVZMO0lBY0ksYUFBYSxFQUNkO0VBZkg7SUFrQkkscUJBQWM7SUFBZCxzQkFBYztJQUFkLHFCQUFjO0lBQWQsY0FBYztJQUNkLGdCQUFnQixFQUNqQjtFQXBCSDtJQXVCSSxpQkFBaUIsRUFNbEI7SUE3Qkg7TUEwQk0scUJBQWM7TUFBZCxzQkFBYztNQUFkLHFCQUFjO01BQWQsY0FBYztNQUNkLDZCQUF1QjtNQUF2Qiw4QkFBdUI7TUFBdkIsK0JBQXVCO1VBQXZCLDJCQUF1QjtjQUF2Qix1QkFBdUIsRUFDeEI7RUE1Qkw7SUFnQ0kscUJBQWM7SUFBZCxzQkFBYztJQUFkLHFCQUFjO0lBQWQsY0FBYztJQUNkLDBCQUFvQjtJQUFwQiw0QkFBb0I7UUFBcEIsdUJBQW9CO1lBQXBCLG9CQUFvQjtJQUNwQixXQUFXO0lBQ1gsZ0JBQWdCLEVBQ2pCO0VBRUQ7SUF0Q0Y7TUF3Q00sNkJBQXVCO01BQXZCLDhCQUF1QjtNQUF2QiwrQkFBdUI7VUFBdkIsMkJBQXVCO2NBQXZCLHVCQUF1QixFQUN4QjtJQXpDTDtNQTRDTSw2QkFBUztNQUFULGlCQUFTO1VBQVQsa0JBQVM7Y0FBVCxTQUFTO01BQ1QsWUFBWSxFQUtiO01BbERMO1FBZ0RRLGVBQWUsRUFDaEI7SUFqRFA7TUFxRE0sWUFBWSxFQUNiLEVBQUE7O0FBS0g7RUFERjtJQUVJLGVBQWUsRUFFbEIsRUFBQTs7QUFFRDtFQUVJLFlBQVk7RUFDWixpQkFBaUI7RUFDakIsbUJBQW1CO0VBQ25CLGVBQWU7RUFDZixnQkFBZ0I7RUFDaEIsbUJBQW1CO0VBQ25CLGtCQUFrQixFQUNuQjs7QUFUSDtFQVlJLGVBQWU7RUFDZixtQkFBbUI7RUFDbkIsZUFBZTtFQUNmLGdCQUFnQjtFQUNoQixpQkFBaUIsRUFDbEI7O0FDL2tCSDtFQUNFLG1DQUFtQztFQUNuQyxpQkFBaUI7RUFDakIsNEJBQTRCLEVBQzdCOztBQUVEO0VBQ0UsaUJBQWlCLEVBQ2xCOztBQUVEO0VBQ0UsaUJBQWlCLEVBQ2xCOztBQUVEO0VBQ0UsaUJBQWlCLEVBQ2xCOztBQUVEOzs7RUFHRSxpQkFBaUIsRUFDbEI7O0FBRUQ7RUFDRSwwQmZHZ0IsRWVGakI7O0FBRUQ7RUFDRSxtQkFBbUIsRUFDcEI7O0FBRUQ7RUFDRSxlZlRZO0VlVVosc0JBQXNCLEVBSXZCO0VBTkQ7SUFJSSxlZlZnQixFZVdqQjs7QUFHSDtFVGxCRSxnQkFSdUI7RVM0QnZCLGVmdkJZO0Vld0JaLGlCQUFpQixFQUNsQjs7QUFFRDtFVHhCRSxzQkFSdUIsRVNrQ3hCOztBQUVEO0VBQ0UsbUJBQW1CLEVBQ3BCOztBQUVEO0VBQ0UsMEJBQTBCLEVBQzNCOztBQUVEO0VBQ0UseUJBQXlCLEVBQzFCOztBQUVEO0VBQ0UsaUJBQWlCLEVBQ2xCOztBQUVEOzs7OztFQUtFLFVBQVU7RUFDVixlQUFlO0VBQ2YsaUJBQWlCO0VBQ2pCLGtCQUFrQixFQUNuQjs7QUFFRDtFVHZERSxzQkFSdUIsRVNpRXhCOztBQUVEO0VUM0RFLHNCQVJ1QixFU3FFeEI7O0FBRUQ7RVQvREUsc0JBUnVCLEVTeUV4Qjs7QUFFRDtFVG5FRSxzQkFSdUIsRVM2RXhCOztBQUVEO0VUdkVFLGdCQVJ1QixFU2lGeEI7O0FBRUQ7RW5COUVJLGlCTXdJb0I7RU54SXBCLFlPQTREO0VQQTVELHNCUXFGa0I7RVJyRmxCLHVCUXFGa0IsRVdMckI7O0FBRUQ7RW5CbEZJLGlCTXdJb0I7RU54SXBCLFlPQTREO0VQQTVELHNCUXFGa0I7RVJyRmxCLHVCUXFGa0IsRVdEckI7O0FBRUQ7RW5CdEZJLGlCTXdJb0I7RU54SXBCLFlPQTREO0VQQTVELHNCUXFGa0I7RVJyRmxCLHVCUXFGa0IsRVdHckI7O0FBRUQ7RW5CMUZJLGlCTXdJb0I7RU54SXBCLFlPQTREO0VQQTVELHNCUXFGa0I7RVJyRmxCLHVCUXFGa0IsRVdPckI7O0FBRUQ7RW5COUZJLGlCTXdJb0I7RU54SXBCLGFPQXVFO0VQQXZFLHNCUXFGa0I7RVJyRmxCLHVCUXFGa0IsRVdXckI7O0FBRUQ7RW5CbEdJLGlCTXdJb0I7RU54SXBCLFlPQTREO0VQQTVELHNCUXFGa0I7RVJyRmxCLHVCUXFGa0IsRVdlckI7O0FBRUQ7RW5CdEdJLGlCTXdJb0I7RU54SXBCLFlPQTREO0VQQTVELHNCUXFGa0I7RVJyRmxCLHVCUXFGa0IsRVdtQnJCOztBQUVEO0VuQjFHSSxpQk13SW9CO0VOeElwQixZT0E0RDtFUEE1RCxzQlFxRmtCO0VSckZsQix1QlFxRmtCLEVXdUJyQjs7QUFFRDtFbkI5R0ksaUJNd0lvQjtFTnhJcEIsWU9BNEQ7RVBBNUQsc0JRcUZrQjtFUnJGbEIsdUJRcUZrQixFVzJCckI7O0FBRUQ7O0VBRUUsWUFBWSxFQUNiOztBQUVEO0VBQ0U7Ozs7Ozs7SW5CeEhFLGlCTXdJb0I7SU54SXBCLFlPQTREO0lQQTVELHNCUXFGa0I7SVJyRmxCLHVCUXFGa0I7SVc0Q2xCLG1CQUFtQixFQUlwQjtJQWJEOzs7Ozs7O01BV0ksV0FBVyxFQUNaLEVBQUE7O0FBSUw7RUFDRTtJbkJ6SUUsaUJNd0lvQjtJTnhJcEIsWU9BNEQ7SVBBNUQsc0JRcUZrQjtJUnJGbEIsdUJRcUZrQixFV3NEbkIsRUFBQTs7QUFHSDtFQUNFLGtCQUFrQjtFQUNsQixrQkFBa0I7RUFDbEIsNEJmL0lhO0VlZ0piLG9CQUFvQjtFQUNwQixlZmpKYTtFZWtKYix5QkFBeUI7RUFDekIsZ0JBQWdCO0VBQ2hCLGlCQUFpQjtFQUNqQixvQkFBb0IsRUFDckI7O0FBRUQ7RUFDRSxjQUFjO0VBQ2QsZ0JBQWdCO0VBQ2hCLE9BQU87RUFDUCxTQUFTO0VBQ1QsVUFBVTtFQUNWLFFBQVE7RUFDUixjQUFjO0VBQ2Qsa0JBQWtCO0VBQ2xCLFVBQVU7RUFDViw0Q0FBc0I7RUFDdEIsbUJBQW1CLEVBUXBCO0VBbkJEO0lBYUksd0JBQXdCO0lBQ3hCLDZCQUE2QixFQUM5QjtFQWZIO0lBaUJJLDZCQUEyQixFQUM1Qjs7QUFHSDtFQUNFLGdCQUFnQixFQUNqQiIsImZpbGUiOiJtYWluLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBjaGFyc2V0IFwiVVRGLThcIjtcbi8qISBub3JtYWxpemUuc2NzcyB2MC4xLjAgfCBNSVQgTGljZW5zZSB8IGJhc2VkIG9uIGdpdC5pby9ub3JtYWxpemUgKi9cbi8qKlxuICogMS4gU2V0IGRlZmF1bHQgZm9udCBmYW1pbHkgdG8gc2Fucy1zZXJpZi5cbiAqIDIuIFByZXZlbnQgaU9TIHRleHQgc2l6ZSBhZGp1c3QgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlLCB3aXRob3V0IGRpc2FibGluZ1xuICogICAgdXNlciB6b29tLlxuICovXG5odG1sIHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XG4gIC8qIDEgKi9cbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC8qIDIgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAvKiAyICovIH1cblxuLyoqXG4gKiBSZW1vdmUgZGVmYXVsdCBtYXJnaW4uXG4gKi9cbmJvZHkge1xuICBtYXJnaW46IDA7IH1cblxuLyogSFRNTDUgZGlzcGxheSBkZWZpbml0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGFueSBIVE1MNSBlbGVtZW50IGluIElFIDgvOS5cbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgZGV0YWlsc2Agb3IgYHN1bW1hcnlgIGluIElFIDEwLzExXG4gKiBhbmQgRmlyZWZveC5cbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgbWFpbmAgaW4gSUUgMTEuXG4gKi9cbmFydGljbGUsXG5hc2lkZSxcbmRldGFpbHMsXG5maWdjYXB0aW9uLFxuZmlndXJlLFxuZm9vdGVyLFxuaGVhZGVyLFxuaGdyb3VwLFxubWFpbixcbm1lbnUsXG5uYXYsXG5zZWN0aW9uLFxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi8qKlxuICogMS4gQ29ycmVjdCBgaW5saW5lLWJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGluIElFIDgvOS5cbiAqIDIuIE5vcm1hbGl6ZSB2ZXJ0aWNhbCBhbGlnbm1lbnQgb2YgYHByb2dyZXNzYCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAqL1xuYXVkaW8sXG5jYW52YXMsXG5wcm9ncmVzcyxcbnZpZGVvIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAvKiAxICovXG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICogUHJldmVudCBtb2Rlcm4gYnJvd3NlcnMgZnJvbSBkaXNwbGF5aW5nIGBhdWRpb2Agd2l0aG91dCBjb250cm9scy5cbiAqIFJlbW92ZSBleGNlc3MgaGVpZ2h0IGluIGlPUyA1IGRldmljZXMuXG4gKi9cbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogMDsgfVxuXG4vKipcbiAqIEFkZHJlc3MgYFtoaWRkZW5dYCBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC5cbiAqIEhpZGUgdGhlIGB0ZW1wbGF0ZWAgZWxlbWVudCBpbiBJRSA4LzkvMTEsIFNhZmFyaSwgYW5kIEZpcmVmb3ggPCAyMi5cbiAqL1xuW2hpZGRlbl0sXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLyogTGlua3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIGNvbG9yIGZyb20gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICovXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cblxuLyoqXG4gKiBJbXByb3ZlIHJlYWRhYmlsaXR5IHdoZW4gZm9jdXNlZCBhbmQgYWxzbyBtb3VzZSBob3ZlcmVkIGluIGFsbCBicm93c2Vycy5cbiAqL1xuYTphY3RpdmUsXG5hOmhvdmVyIHtcbiAgb3V0bGluZTogMDsgfVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC8xMSwgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQ7IH1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxlIHNldCB0byBgYm9sZGVyYCBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZDsgfVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAqL1xuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljOyB9XG5cbi8qKlxuICogQWRkcmVzcyB2YXJpYWJsZSBgaDFgIGZvbnQtc2l6ZSBhbmQgbWFyZ2luIHdpdGhpbiBgc2VjdGlvbmAgYW5kIGBhcnRpY2xlYFxuICogY29udGV4dHMgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwOyB9XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS5cbiAqL1xubWFyayB7XG4gIGJhY2tncm91bmQ6ICNmZjA7XG4gIGNvbG9yOiAjMDAwOyB9XG5cbi8qKlxuICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYW5kIHZhcmlhYmxlIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7IH1cblxuLyoqXG4gKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBhZmZlY3RpbmcgYGxpbmUtaGVpZ2h0YCBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IH1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07IH1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtOyB9XG5cbi8qIEVtYmVkZGVkIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFJlbW92ZSBib3JkZXIgd2hlbiBpbnNpZGUgYGFgIGVsZW1lbnQgaW4gSUUgOC85LzEwLlxuICovXG5pbWcge1xuICBib3JkZXI6IDA7IH1cblxuLyoqXG4gKiBDb3JyZWN0IG92ZXJmbG93IG5vdCBoaWRkZW4gaW4gSUUgOS8xMC8xMS5cbiAqL1xuc3ZnOm5vdCg6cm9vdCkge1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIEFkZHJlc3MgbWFyZ2luIG5vdCBwcmVzZW50IGluIElFIDgvOSBhbmQgU2FmYXJpLlxuICovXG5maWd1cmUge1xuICBtYXJnaW46IDFlbSA0MHB4OyB9XG5cbi8qKlxuICogQWRkcmVzcyBkaWZmZXJlbmNlcyBiZXR3ZWVuIEZpcmVmb3ggYW5kIG90aGVyIGJyb3dzZXJzLlxuICovXG5ociB7XG4gIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBoZWlnaHQ6IDA7IH1cblxuLyoqXG4gKiBDb250YWluIG92ZXJmbG93IGluIGFsbCBicm93c2Vycy5cbiAqL1xucHJlIHtcbiAgb3ZlcmZsb3c6IGF1dG87IH1cblxuLyoqXG4gKiBBZGRyZXNzIG9kZCBgZW1gLXVuaXQgZm9udCBzaXplIHJlbmRlcmluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbmNvZGUsXG5rYmQsXG5wcmUsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDFlbTsgfVxuXG4vKiBGb3Jtc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogS25vd24gbGltaXRhdGlvbjogYnkgZGVmYXVsdCwgQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWCBhbGxvdyB2ZXJ5IGxpbWl0ZWRcbiAqIHN0eWxpbmcgb2YgYHNlbGVjdGAsIHVubGVzcyBhIGBib3JkZXJgIHByb3BlcnR5IGlzIHNldC5cbiAqL1xuLyoqXG4gKiAxLiBDb3JyZWN0IGNvbG9yIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4gKiAgICBLbm93biBpc3N1ZTogYWZmZWN0cyBjb2xvciBvZiBkaXNhYmxlZCBlbGVtZW50cy5cbiAqIDIuIENvcnJlY3QgZm9udCBwcm9wZXJ0aWVzIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4gKiAzLiBBZGRyZXNzIG1hcmdpbnMgc2V0IGRpZmZlcmVudGx5IGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIC8qIDEgKi9cbiAgZm9udDogaW5oZXJpdDtcbiAgLyogMiAqL1xuICBtYXJnaW46IDA7XG4gIC8qIDMgKi8gfVxuXG4vKipcbiAqIEFkZHJlc3MgYG92ZXJmbG93YCBzZXQgdG8gYGhpZGRlbmAgaW4gSUUgOC85LzEwLzExLlxuICovXG5idXR0b24ge1xuICBvdmVyZmxvdzogdmlzaWJsZTsgfVxuXG4vKipcbiAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGB0ZXh0LXRyYW5zZm9ybWAgaW5oZXJpdGFuY2UgZm9yIGBidXR0b25gIGFuZCBgc2VsZWN0YC5cbiAqIEFsbCBvdGhlciBmb3JtIGNvbnRyb2wgZWxlbWVudHMgZG8gbm90IGluaGVyaXQgYHRleHQtdHJhbnNmb3JtYCB2YWx1ZXMuXG4gKiBDb3JyZWN0IGBidXR0b25gIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3gsIElFIDgvOS8xMC8xMSwgYW5kIE9wZXJhLlxuICogQ29ycmVjdCBgc2VsZWN0YCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LlxuICovXG5idXR0b24sXG5zZWxlY3Qge1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgfVxuXG4vKipcbiAqIDEuIEF2b2lkIHRoZSBXZWJLaXQgYnVnIGluIEFuZHJvaWQgNC4wLiogd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gXG4gKiAgICBhbmQgYHZpZGVvYCBjb250cm9scy5cbiAqIDIuIENvcnJlY3QgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSBgaW5wdXRgIHR5cGVzIGluIGlPUy5cbiAqIDMuIEltcHJvdmUgdXNhYmlsaXR5IGFuZCBjb25zaXN0ZW5jeSBvZiBjdXJzb3Igc3R5bGUgYmV0d2VlbiBpbWFnZS10eXBlXG4gKiAgICBgaW5wdXRgIGFuZCBvdGhlcnMuXG4gKi9cbmJ1dHRvbixcbmh0bWwgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSxcbmlucHV0W3R5cGU9XCJyZXNldFwiXSxcbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgLyogMiAqL1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIC8qIDMgKi8gfVxuXG4vKipcbiAqIFJlLXNldCBkZWZhdWx0IGN1cnNvciBmb3IgZGlzYWJsZWQgZWxlbWVudHMuXG4gKi9cbmJ1dHRvbltkaXNhYmxlZF0sXG5odG1sIGlucHV0W2Rpc2FibGVkXSB7XG4gIGN1cnNvcjogZGVmYXVsdDsgfVxuXG4vKipcbiAqIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBib3JkZXIgaW4gRmlyZWZveCA0Ky5cbiAqL1xuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7IH1cblxuLyoqXG4gKiBBZGRyZXNzIEZpcmVmb3ggNCsgc2V0dGluZyBgbGluZS1oZWlnaHRgIG9uIGBpbnB1dGAgdXNpbmcgYCFpbXBvcnRhbnRgIGluXG4gKiB0aGUgVUEgc3R5bGVzaGVldC5cbiAqL1xuaW5wdXQge1xuICBsaW5lLWhlaWdodDogbm9ybWFsOyB9XG5cbi8qKlxuICogSXQncyByZWNvbW1lbmRlZCB0aGF0IHlvdSBkb24ndCBhdHRlbXB0IHRvIHN0eWxlIHRoZXNlIGVsZW1lbnRzLlxuICogRmlyZWZveCdzIGltcGxlbWVudGF0aW9uIGRvZXNuJ3QgcmVzcGVjdCBib3gtc2l6aW5nLCBwYWRkaW5nLCBvciB3aWR0aC5cbiAqXG4gKiAxLiBBZGRyZXNzIGJveCBzaXppbmcgc2V0IHRvIGBjb250ZW50LWJveGAgaW4gSUUgOC85LzEwLlxuICogMi4gUmVtb3ZlIGV4Y2VzcyBwYWRkaW5nIGluIElFIDgvOS8xMC5cbiAqL1xuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLyogMSAqL1xuICBwYWRkaW5nOiAwO1xuICAvKiAyICovIH1cblxuLyoqXG4gKiBGaXggdGhlIGN1cnNvciBzdHlsZSBmb3IgQ2hyb21lJ3MgaW5jcmVtZW50L2RlY3JlbWVudCBidXR0b25zLiBGb3IgY2VydGFpblxuICogYGZvbnQtc2l6ZWAgdmFsdWVzIG9mIHRoZSBgaW5wdXRgLCBpdCBjYXVzZXMgdGhlIGN1cnNvciBzdHlsZSBvZiB0aGVcbiAqIGRlY3JlbWVudCBidXR0b24gdG8gY2hhbmdlIGZyb20gYGRlZmF1bHRgIHRvIGB0ZXh0YC5cbiAqL1xuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87IH1cblxuLyoqXG4gKiAxLiBBZGRyZXNzIGBhcHBlYXJhbmNlYCBzZXQgdG8gYHNlYXJjaGZpZWxkYCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAqIDIuIEFkZHJlc3MgYGJveC1zaXppbmdgIHNldCB0byBgYm9yZGVyLWJveGAgaW4gU2FmYXJpIGFuZCBDaHJvbWVcbiAqICAgIChpbmNsdWRlIGAtbW96YCB0byBmdXR1cmUtcHJvb2YpLlxuICovXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG4gIC8qIDEgKi9cbiAgLW1vei1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgLyogMiAqL1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgfVxuXG4vKipcbiAqIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBzZWFyY2ggY2FuY2VsIGJ1dHRvbiBpbiBTYWZhcmkgYW5kIENocm9tZSBvbiBPUyBYLlxuICogU2FmYXJpIChidXQgbm90IENocm9tZSkgY2xpcHMgdGhlIGNhbmNlbCBidXR0b24gd2hlbiB0aGUgc2VhcmNoIGlucHV0IGhhc1xuICogcGFkZGluZyAoYW5kIGB0ZXh0ZmllbGRgIGFwcGVhcmFuY2UpLlxuICovXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgfVxuXG4vKipcbiAqIERlZmluZSBjb25zaXN0ZW50IGJvcmRlciwgbWFyZ2luLCBhbmQgcGFkZGluZy5cbiAqL1xuZmllbGRzZXQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICBtYXJnaW46IDAgMnB4O1xuICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07IH1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGBjb2xvcmAgbm90IGJlaW5nIGluaGVyaXRlZCBpbiBJRSA4LzkvMTAvMTEuXG4gKiAyLiBSZW1vdmUgcGFkZGluZyBzbyBwZW9wbGUgYXJlbid0IGNhdWdodCBvdXQgaWYgdGhleSB6ZXJvIG91dCBmaWVsZHNldHMuXG4gKi9cbmxlZ2VuZCB7XG4gIGJvcmRlcjogMDtcbiAgLyogMSAqL1xuICBwYWRkaW5nOiAwO1xuICAvKiAyICovIH1cblxuLyoqXG4gKiBSZW1vdmUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgOC85LzEwLzExLlxuICovXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvOyB9XG5cbi8qKlxuICogRG9uJ3QgaW5oZXJpdCB0aGUgYGZvbnQtd2VpZ2h0YCAoYXBwbGllZCBieSBhIHJ1bGUgYWJvdmUpLlxuICogTk9URTogdGhlIGRlZmF1bHQgY2Fubm90IHNhZmVseSBiZSBjaGFuZ2VkIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFguXG4gKi9cbm9wdGdyb3VwIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuLyogVGFibGVzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBSZW1vdmUgbW9zdCBzcGFjaW5nIGJldHdlZW4gdGFibGUgY2VsbHMuXG4gKi9cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7IH1cblxudGQsXG50aCB7XG4gIHBhZGRpbmc6IDA7IH1cblxuLmNvbnRlbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDEzNjZweCkge1xuICAgIC5jb250ZW50IHtcbiAgICAgIG1heC13aWR0aDogMTQwMHB4O1xuICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICBwYWRkaW5nOiAyN3B4IDUwcHg7IH1cbiAgICAgIC5jb250ZW50OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCIgXCI7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBjbGVhcjogYm90aDsgfSB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiAxMzY1cHgpIHtcbiAgICAuY29udGVudCB7XG4gICAgICBtYXgtd2lkdGg6IDEzMDBweDtcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBwYWRkaW5nOiAyNXB4IDMzcHg7IH1cbiAgICAgIC5jb250ZW50OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCIgXCI7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBjbGVhcjogYm90aDsgfSB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA5OTFweCkge1xuICAgIC5jb250ZW50IHtcbiAgICAgIG1heC13aWR0aDogOTUlO1xuICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICBwYWRkaW5nOiAxOHB4IDIwcHg7IH1cbiAgICAgIC5jb250ZW50OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCIgXCI7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBjbGVhcjogYm90aDsgfSB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgIC5jb250ZW50IHtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgcGFkZGluZzogMzVweCAxMHB4OyB9XG4gICAgICAuY29udGVudDphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgY2xlYXI6IGJvdGg7IH0gfVxuICAuY29udGVudDphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY2xlYXI6IGJvdGg7IH1cblxuKiB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuaHRtbCB7XG4gIGNvbG9yOiAjM2M0YTU1O1xuICBmb250LWZhbWlseTogXCJPcGVuIFNhbnNcIiwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMThweDsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgICBodG1sIHtcbiAgICAgIGZvbnQtc2l6ZTogMTYuMnB4OyB9IH1cblxuYSB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdHJhbnNpdGlvbjogY29sb3IgLjI1czsgfVxuICBhOmhvdmVyIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgYTpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTsgfVxuXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYge1xuICBtYXJnaW46IDEuNXJlbSAwOyB9XG5cbjo6c2VsZWN0aW9uIHtcbiAgYmFja2dyb3VuZDogI2IzZDRmYztcbiAgdGV4dC1zaGFkb3c6IG5vbmU7IH1cblxuaHIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAxcHg7XG4gIG1hcmdpbjogMWVtIDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7IH1cblxuYXVkaW8sXG5jYW52YXMsXG5pZnJhbWUsXG5pbWcsXG5zdmcsXG52aWRlbyB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cblxuYnV0dG9uOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTsgfVxuXG5maWVsZHNldCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwOyB9XG5cbnRleHRhcmVhIHtcbiAgcmVzaXplOiB2ZXJ0aWNhbDsgfVxuXG5oZWFkZXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogNTAlO1xuICB6LWluZGV4OiAxMDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDU4cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIDApO1xuICBib3gtc2hhZG93OiAwIDFweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuNSk7IH1cblxuaGVhZGVyIC5jb250ZW50IHtcbiAgcGFkZGluZy10b3A6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwOyB9XG5cbmhlYWRlciAubG9nbyB7XG4gIHdpZHRoOiAxMy44ODg4OSU7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tbGVmdDogMS4zODg4OSU7XG4gIG1hcmdpbi1yaWdodDogMS4zODg4OSU7XG4gIHBhZGRpbmc6IDE3LjVweCAwOyB9XG4gIGhlYWRlciAubG9nbyBpbWcge1xuICAgIGhlaWdodDogMjFweDsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgICBoZWFkZXIgLmxvZ28ge1xuICAgICAgd2lkdGg6IDQ3LjIyMjIyJTtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgbWFyZ2luLWxlZnQ6IDEuMzg4ODklO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxLjM4ODg5JTsgfSB9XG5cbm5hdiB7XG4gIHdpZHRoOiA4MC41NTU1NiU7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tbGVmdDogMS4zODg4OSU7XG4gIG1hcmdpbi1yaWdodDogMS4zODg4OSU7XG4gIHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA5OTFweCkge1xuICAgIG5hdiB7XG4gICAgICB3aWR0aDogNDcuMjIyMjIlO1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgbWFyZ2luLWxlZnQ6IDEuMzg4ODklO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxLjM4ODg5JTsgfSB9XG4gIG5hdiAubmF2LW1lbnUge1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cbiAgbmF2IC50b3AtbWVudSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7IH1cblxuLm5hdi1tZW51IC5tZW51LWl0ZW0sXG4ubmF2LW1lbnUgLm1lbnUtYnRuIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuLm5hdi1tZW51IC5tZW51LWl0ZW06aG92ZXIge1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgI2QzMmQyNztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y2ZjZmNjsgfVxuXG4ubmF2LW1lbnUgYSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAwIDFlbTtcbiAgY29sb3I6ICMyYjJiMmI7XG4gIGxpbmUtaGVpZ2h0OiA1OHB4OyB9XG4gIC5uYXYtbWVudSBhOmhvdmVyIHtcbiAgICBjb2xvcjogI2QzMmQyNzsgfVxuXG4ubmF2LW1lbnUgLm1lbnUtYnRuIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAwIC4zZW07XG4gIGJvcmRlci1yYWRpdXM6IDRweDsgfVxuICAubmF2LW1lbnUgLm1lbnUtYnRuIC5idG4ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtaW4td2lkdGg6IGF1dG87XG4gICAgcGFkZGluZzogMCAxNXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGxpbmUtaGVpZ2h0OiAzOHB4OyB9XG4gIC5uYXYtbWVudSAubWVudS1idG4gYSB7XG4gICAgY29sb3I6ICNmZmY7IH1cbiAgLm5hdi1tZW51IC5tZW51LWJ0bjpob3ZlciB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG4gICAgLm5hdi1tZW51IC5tZW51LWJ0bjpob3ZlciBhIHtcbiAgICAgIGNvbG9yOiAjZmZmOyB9XG5cbi5tb2JpbGUtbWVudSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IDU4cHg7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9jZG4vaGFtYnVyZ2VyLW1lbnUyLnBuZ1wiKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQ7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuXG4ub3BlbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgYm94LXNoYWRvdzogMCAxcHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjUpO1xuICBvdmVyZmxvdy15OiBhdXRvOyB9XG5cbi5zaG93IHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLmhhcy1jaGlsZHJlbiB7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuICAuaGFzLWNoaWxkcmVuID4gYSB7XG4gICAgcGFkZGluZy1yaWdodDogMzBweDsgfVxuICAgIC5oYXMtY2hpbGRyZW4gPiBhOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAxOXB4O1xuICAgICAgcmlnaHQ6IDVweDtcbiAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2Nkbi9hcnJvd19kb3duLnN2Z1wiKTtcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7IH1cbiAgICAuaGFzLWNoaWxkcmVuID4gYTpob3ZlcjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9jZG4vYXJyb3dfZG93bl9yZWQuc3ZnXCIpOyB9XG4gIC5oYXMtY2hpbGRyZW4gbGkgYTphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgYmFja2dyb3VuZDogbm9uZTsgfVxuICAuaGFzLWNoaWxkcmVuIC5zdWItbWVudSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1OHB4O1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWluLXdpZHRoOiAxMDAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmYWZhZmE7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAgIC5oYXMtY2hpbGRyZW4gLnN1Yi1tZW51IHVsIHtcbiAgICAgIHBhZGRpbmc6IDA7IH1cbiAgICAuaGFzLWNoaWxkcmVuIC5zdWItbWVudSBsaSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMDsgfVxuICAgICAgLmhhcy1jaGlsZHJlbiAuc3ViLW1lbnUgbGk6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDMyZDI3OyB9XG4gICAgLmhhcy1jaGlsZHJlbiAuc3ViLW1lbnUgYSB7XG4gICAgICBjb2xvcjogI2ZhZmFmYTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7IH1cbiAgICAgIC5oYXMtY2hpbGRyZW4gLnN1Yi1tZW51IGE6aG92ZXIge1xuICAgICAgICBjb2xvcjogI2ZmZjsgfVxuICAgIC5oYXMtY2hpbGRyZW4gLnN1Yi1tZW51IC5tZW51LWl0ZW06aG92ZXIge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMDsgfVxuXG4uc3ViLW1lbnUuc2hvdyBsaSB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5zdWItbWVudS5zaG93IGEge1xuICBwYWRkaW5nOiAwIDFlbTtcbiAgY29sb3I6ICMyYjJiMmI7XG4gIGxpbmUtaGVpZ2h0OiA1OHB4OyB9XG5cbi5tb2JpbGUtbmF2IHtcbiAgZGlzcGxheTogbm9uZTsgfVxuICAubW9iaWxlLW5hdi5vcGVuIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAubW9iaWxlLW5hdiAubWVudS1idG4sXG4gIC5tb2JpbGUtbmF2IC5tZW51LWl0ZW0ge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5tb2JpbGUtbmF2IC5tZW51LWJ0biB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTVweDsgfVxuICAubW9iaWxlLW5hdiAuc3ViLW1lbnUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDA7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gICAgLm1vYmlsZS1uYXYgLnN1Yi1tZW51IGEge1xuICAgICAgcGFkZGluZy1sZWZ0OiA0NXB4OyB9XG4gIC5tb2JpbGUtbmF2IC5tb2JpbGUtbWVudS1pdGVtIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDM4cHg7IH1cbiAgLm1vYmlsZS1uYXYgLnRvcC1tZW51IHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTVweDsgfVxuICAubW9iaWxlLW5hdiBhIHtcbiAgICBtYXJnaW4tbGVmdDogMjVweDtcbiAgICBsaW5lLWhlaWdodDogNDVweDsgfVxuXG4ucHJpY2UtY2FyZCB7XG4gIHdpZHRoOiAzMC41NTU1NiU7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tbGVmdDogMS4zODg4OSU7XG4gIG1hcmdpbi1yaWdodDogMS4zODg4OSU7XG4gIG1hcmdpbi10b3A6IDI1cHg7XG4gIHBhZGRpbmc6IDJlbSAyLjVlbSAyLjVlbTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiAxMTk3cHgpIHtcbiAgICAucHJpY2UtY2FyZCB7XG4gICAgICBwYWRkaW5nOiAyZW0gMWVtOyB9IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEwMjVweCkge1xuICAgIC5wcmljZS1jYXJkIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHBhZGRpbmc6IDJlbSAzZW07IH0gfVxuICAucHJpY2UtY2FyZCAudG9wLFxuICAucHJpY2UtY2FyZCAuYm90IHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgIC5wcmljZS1jYXJkIC50b3AgLmJ0bixcbiAgICAucHJpY2UtY2FyZCAuYm90IC5idG4ge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLnByaWNlLWNhcmQgLnRvcCBoMyB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cbiAgLnByaWNlLWNhcmQgLmJvdCB7XG4gICAgcGFkZGluZy10b3A6IC41ZW07IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogMTAyNXB4KSB7XG4gICAgICAucHJpY2UtY2FyZCAuYm90IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMi41ZW07XG4gICAgICAgIGJvdHRvbTogMzVweDtcbiAgICAgICAgbGVmdDogMi41ZW07IH0gfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA5OTFweCkge1xuICAgICAgLnByaWNlLWNhcmQgLmJvdCBkaXYge1xuICAgICAgICBtYXJnaW46IDAgYXV0bzsgfSB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA5OTFweCkgYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgLnByaWNlLWNhcmQgLmJvdCBkaXYge1xuICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuICBAbWVkaWEgKG1heC13aWR0aDogMTAyNXB4KSB7XG4gICAgLnByaWNlLWNhcmQgLm1pZCB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogNDBweDsgfSB9XG4gIC5wcmljZS1jYXJkIC5taWQgcCB7XG4gICAgZm9udC1zaXplOiAxLjIyMjIycmVtO1xuICAgIG1hcmdpbi10b3A6IDEycHg7XG4gICAgY29sb3I6ICNkMzJkMjc7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgLnByaWNlLWNhcmQgLm1pZCBwIHNwYW4ge1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cbiAgLnByaWNlLWNhcmQgLm1pZCBwLmlubGN1ZGVzIHtcbiAgICBwYWRkaW5nOiAwIDMwcHg7XG4gICAgY29sb3I6ICM2NTY1NjU7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgICAucHJpY2UtY2FyZCAubWlkIHAuaW5sY3VkZXMgLmJvbGQge1xuICAgICAgY29sb3I6ICMzYzRhNTQ7IH1cbiAgLnByaWNlLWNhcmQgLm1pZCB1bCB7XG4gICAgcGFkZGluZy1sZWZ0OiAyNXB4O1xuICAgIGxpc3Qtc3R5bGUtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9jZG4vaW1nLWljb24tY2hlY2sucG5nXCIpOyB9XG4gICAgLnByaWNlLWNhcmQgLm1pZCB1bCBsaSB7XG4gICAgICBwYWRkaW5nOiA4cHggMDtcbiAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEwMjVweCkge1xuICAgIC5wcmljZS1jYXJkIHtcbiAgICAgIHdpZHRoOiA0Ny4yMjIyMiU7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxLjM4ODg5JTtcbiAgICAgIG1hcmdpbi1yaWdodDogMS4zODg4OSU7IH0gfVxuICBAbWVkaWEgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgICAucHJpY2UtY2FyZCAubWlkIHVsIHtcbiAgICAgIHBhZGRpbmc6IDVweCA1cHggNXB4IDI1cHg7IH0gfVxuICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAucHJpY2UtY2FyZCB7XG4gICAgICB3aWR0aDogOTcuMjIyMjIlO1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBtYXJnaW4tbGVmdDogMS4zODg4OSU7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDEuMzg4ODklO1xuICAgICAgbWFyZ2luOiAxNXB4IDE1JTtcbiAgICAgIHBhZGRpbmc6IDE1cHg7IH1cbiAgICAgIC5wcmljZS1jYXJkIC5taWQgdWwge1xuICAgICAgICBwYWRkaW5nOiAwIDAgMTAlIDQwcHg7XG4gICAgICAgIGNvbHVtbi1jb3VudDogMTsgfSB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgIC5wcmljZS1jYXJkIHtcbiAgICAgIG1hcmdpbjogMTVweCAxMHB4OyB9IH1cblxuLnByaWNlLWNhcmQ6bnRoLWNoaWxkKDIpLFxuLnByaWNlLWNhcmQ6bnRoLWNoaWxkKDMpLFxuLnByaWNlLWNhcmQ6bnRoLWNoaWxkKDQpIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdCB0b3A7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogMzAlOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiAxMDI1cHgpIHtcbiAgICAucHJpY2UtY2FyZDpudGgtY2hpbGQoMiksXG4gICAgLnByaWNlLWNhcmQ6bnRoLWNoaWxkKDMpLFxuICAgIC5wcmljZS1jYXJkOm50aC1jaGlsZCg0KSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDIwJTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyMCU7IH0gfVxuICBAbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgICAucHJpY2UtY2FyZDpudGgtY2hpbGQoMiksXG4gICAgLnByaWNlLWNhcmQ6bnRoLWNoaWxkKDMpLFxuICAgIC5wcmljZS1jYXJkOm50aC1jaGlsZCg0KSB7XG4gICAgICBtaW4td2lkdGg6IDMzNXB4O1xuICAgICAgbWFyZ2luOiAxNXB4IDEwcHg7IH0gfVxuXG4ucHJpY2UtY2FyZDpudGgtY2hpbGQoMiksXG4ucHJpY2UtY2FyZDpudGgtY2hpbGQoMykge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvY2RuL2ltZy1ocC1wcmljaW5nLWJhZGdlLXBlcnNvbmFsLTJ4LnBuZ1wiKTsgfVxuXG4ucHJpY2UtY2FyZDpudGgtY2hpbGQoNCkge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvY2RuL2ltZy1ocC1wcmljaW5nLWJhZGdlLWJ1c2luZXNzLTJ4LnBuZ1wiKTsgfVxuXG4uc29jaWFsIC5jb250ZW50IHtcbiAgcGFkZGluZzogaW5oZXJpdDsgfVxuXG4uc29jaWFsIHVsIHtcbiAgcGFkZGluZzogMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC5zb2NpYWwgdWwgbGkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwYWRkaW5nOiAxNXB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAuc29jaWFsIHVsIGxpIHtcbiAgICAgICAgcGFkZGluZzogMDsgfSB9XG5cbi5zb2NpYWwgLmljb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiA0MHB4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2MwYzBjMDtcbiAgYm94LXNoYWRvdzogMCAxcHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjI1KTsgfVxuICAuc29jaWFsIC5pY29uOmhvdmVyIHtcbiAgICBvcGFjaXR5OiAuNTsgfVxuICAgIC5zb2NpYWwgLmljb246aG92ZXIgc3ZnIHtcbiAgICAgIGZpbGw6ICMwMDA7IH1cblxuLnNvY2lhbCBzdmcge1xuICB3aWR0aDogMjVweDtcbiAgcGFkZGluZy10b3A6IDdweDtcbiAgZmlsbDogI2ZmZjsgfVxuXG4uc29jaWFsIC5mYWNlYm9vayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzYjU5OTg7IH1cblxuLnNvY2lhbCAudHdpdHRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDg0YjQ7IH1cblxuLnNvY2lhbCAuZ29vZ2xlcGx1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkZDRiMzk7IH1cblxuLnNvY2lhbCAuaW5zdGFncmFtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjNjhkNzsgfVxuXG4uc29jaWFsIC55b3V0dWJlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U1MmQyNzsgfVxuXG4uc29jaWFsIC5saW5rZWRpbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDc3YjU7IH1cblxuLnNvY2lhbCAuc3BpY2V3b3JrcyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNTgyMjA7IH1cbiAgLnNvY2lhbCAuc3BpY2V3b3JrcyBzdmcge1xuICAgIHdpZHRoOiA0NXB4O1xuICAgIG1hcmdpbi10b3A6IC05cHg7XG4gICAgbWFyZ2luLWxlZnQ6IC0ycHg7IH1cblxuZm9vdGVyIC5jb250ZW50IHtcbiAgcGFkZGluZzogaW5oZXJpdDsgfVxuXG5mb290ZXIgLnRvcCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyYjJiMmI7IH1cbiAgZm9vdGVyIC50b3AgYSB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC1zaXplOiAxMnB4OyB9XG5cbmZvb3RlciAuYm90dG9tIHtcbiAgcGFkZGluZzogNXB4IDEwcHggIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbiAgZm9udC1mYW1pbHk6ICdPcGVuIFNhbnMnO1xuICBmb250LXdlaWdodDogNDAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgZm9vdGVyIC5ib3R0b20gYSB7XG4gICAgY29sb3I6ICNmZmY7IH1cblxuLmNvbHVtbiB7XG4gIHdpZHRoOiAxMy44ODg4OSU7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tbGVmdDogMS4zODg4OSU7XG4gIG1hcmdpbi1yaWdodDogMS4zODg4OSU7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDk5MXB4KSB7XG4gICAgLmNvbHVtbiB7XG4gICAgICB3aWR0aDogOTcuMjIyMjIlO1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBtYXJnaW4tbGVmdDogMS4zODg4OSU7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDEuMzg4ODklO1xuICAgICAgcGFkZGluZzogMCAxMHB4OyB9XG4gICAgICAuY29sdW1uOmxhc3QtY2hpbGQgdWwgbGkge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgICAgICAgLmNvbHVtbjpsYXN0LWNoaWxkIHVsIGxpIHNwYW4ge1xuICAgICAgICAgIG1hcmdpbjogNXB4IDEwcHg7IH0gfVxuXG5mb290ZXIgaDUge1xuICBtYXJnaW4tdG9wOiAyNXB4O1xuICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC13ZWlnaHQ6IDQwMDsgfVxuXG5mb290ZXIgdWwubWVudSB7XG4gIHBhZGRpbmc6IDA7IH1cbiAgZm9vdGVyIHVsLm1lbnUgbGkge1xuICAgIG1hcmdpbjogMDsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgICBmb290ZXIgdWwubWVudSBsaSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgICAgIGZvb3RlciB1bC5tZW51IGxpOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICfigKIneDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiA1cHg7IH0gfVxuXG5mb290ZXIgdWwubGlzdC1pbWFnZXMge1xuICBwYWRkaW5nOiAwOyB9XG4gIGZvb3RlciB1bC5saXN0LWltYWdlcyBsaSB7XG4gICAgbWFyZ2luOiAxMHB4IDA7IH1cblxuLmxpc3QtaW1hZ2VzIC5pY29uLWFwcHN0b3JlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogODNweDtcbiAgaGVpZ2h0OiAyNHB4O1xuICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWFnZXMvY2RuL2FwcF9zdG9yZS5wbmdcIik7IH1cblxuLmxpc3QtaW1hZ2VzIC5pY29uLWdvb2dsZXBsYXkge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiA5NnB4O1xuICBoZWlnaHQ6IDI5cHg7XG4gIGJhY2tncm91bmQ6IHVybChcIi4uL2ltYWdlcy9jZG4vZ29vZ2xlX3BsYXkucG5nXCIpOyB9XG5cbi5saXN0LWltYWdlcyAuaWNvbi13aW5kb3dzc3RvcmUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiA4M3B4O1xuICBoZWlnaHQ6IDI4cHg7XG4gIGJhY2tncm91bmQ6IHVybChcIi4uL2ltYWdlcy9jZG4vd2luZG93c19zdG9yZS5wbmdcIik7IH1cblxuLmxhbmd1YWdlcyB7XG4gIHdpZHRoOiA5Ny4yMjIyMiU7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tbGVmdDogMS4zODg4OSU7XG4gIG1hcmdpbi1yaWdodDogMS4zODg4OSU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luOiAwIDAgMjVweDsgfVxuICAubGFuZ3VhZ2VzIC5sYW5ndWFnZS1ob2xkZXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogMTc1cHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuICAgIC5sYW5ndWFnZXMgLmxhbmd1YWdlLWhvbGRlcjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjMyMzIzOyB9XG4gIC5sYW5ndWFnZXMgYnV0dG9uIHtcbiAgICBwYWRkaW5nOiA3cHggMTJweDtcbiAgICBib3JkZXI6IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG4gIC5sYW5ndWFnZXMgI2xhbmctYnRuID4gKiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cbiAgLmxhbmd1YWdlcyAuaWNvbi13b3JsZCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAyNXB4O1xuICAgIGhlaWdodDogMjVweDtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWFnZXMvY2RuL2ljb24td29ybGQtMngucG5nXCIpIG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDI1cHg7IH1cbiAgLmxhbmd1YWdlcyAubGFuZy10ZXh0IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcGFkZGluZy1yaWdodDogOHB4O1xuICAgIHBhZGRpbmctbGVmdDogOHB4OyB9XG4gIC5sYW5ndWFnZXMgLmljb24tY2FyZXQtdXAge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgbWFyZ2luLXRvcDogM3B4O1xuICAgIGJvcmRlci1yaWdodDogNXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1ib3R0b206IDVweCBzb2xpZCAjZmZmO1xuICAgIGJvcmRlci1sZWZ0OiA1cHggc29saWQgdHJhbnNwYXJlbnQ7IH1cbiAgLmxhbmd1YWdlcyAubGFuZ3VhZ2VzLWRyb3Age1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMjFweDtcbiAgICB3aWR0aDogMTM3cHg7XG4gICAgcGFkZGluZzogMTVweCAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMyMzIzMjM7IH1cbiAgICAubGFuZ3VhZ2VzIC5sYW5ndWFnZXMtZHJvcCBsaSB7XG4gICAgICBwYWRkaW5nOiA0cHggMCAwIDQwcHg7IH1cbiAgICAgIC5sYW5ndWFnZXMgLmxhbmd1YWdlcy1kcm9wIGxpOmhvdmVyIHtcbiAgICAgICAgb3BhY2l0eTogLjY7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG5cbi5idG4gYSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm94LXNoYWRvdzogMCAxcHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjI1KTsgfVxuXG4uaGVybyAuYnRuIGEge1xuICBwYWRkaW5nOiAxM3B4IDM1cHg7XG4gIGZvbnQtc2l6ZTogMjBweDsgfVxuXG5tYWluIC5idG4gYSB7XG4gIHBhZGRpbmc6IDEzcHggMzJweDtcbiAgYm9yZGVyLXJhZGl1czogNHB4OyB9XG5cbi5wcmljZXMgLmJ0biBhIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDEwcHggMDtcbiAgZm9udC1mYW1pbHk6ICdPcGVuIFNhbnMnO1xuICBmb250LXdlaWdodDogNjAwOyB9XG5cbi5idG4ucmVkIGEsXG4uYnRuLnJlZCB7XG4gIGJhY2tncm91bmQ6ICNkMzJkMjc7XG4gIGNvbG9yOiAjZmZmOyB9XG4gIC5idG4ucmVkIGE6aG92ZXIsXG4gIC5idG4ucmVkOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjYmYyZDI4OyB9XG5cbi5idG4uZ3JleSxcbi5idG4uZ3JleSBhIHtcbiAgYmFja2dyb3VuZDogIzNjNGE1NDtcbiAgY29sb3I6ICNmZmY7IH1cbiAgLmJ0bi5ncmV5OmhvdmVyLFxuICAuYnRuLmdyZXkgYTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogIzI5MzQzZDsgfVxuXG4uYnRuLndoaXRlLFxuLmJ0bi53aGl0ZSBhIHtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgY29sb3I6ICMzYzRhNTQ7IH1cbiAgLmJ0bi53aGl0ZTpob3ZlcixcbiAgLmJ0bi53aGl0ZSBhOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjMjkzNDNkOyB9XG5cbi5oZXJvIHtcbiAgbWFyZ2luLWJvdHRvbTogMmVtO1xuICBwYWRkaW5nLXRvcDogNzJweDtcbiAgLypjaGFuZ2UgdG8gNjBweCBmb3Igc3luYyBocCAqLyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICAgIC5oZXJvIHtcbiAgICAgIHBhZGRpbmctdG9wOiA3MnB4OyB9IH1cblxuLmhlcm8gLmNvcHkge1xuICB3aWR0aDogMzAuNTU1NTYlO1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLWxlZnQ6IDEuMzg4ODklO1xuICBtYXJnaW4tcmlnaHQ6IDEuMzg4ODklO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDExNTVweCkge1xuICAgIC5oZXJvIC5jb3B5IHtcbiAgICAgIHdpZHRoOiAzOC44ODg4OSU7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxLjM4ODg5JTtcbiAgICAgIG1hcmdpbi1yaWdodDogMS4zODg4OSU7IH0gfVxuICAuaGVybyAuY29weSBwIHtcbiAgICBmb250LXNpemU6IDEuMjIyMjJyZW07IH1cbiAgLmhlcm8gLmNvcHkgLmN0YSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gICAgLmhlcm8gLmNvcHkgLmN0YSBhIHtcbiAgICAgIGZvbnQtc2l6ZTogMjBweDsgfVxuICAgIC5oZXJvIC5jb3B5IC5jdGEgLnNtYWxsLXRleHQge1xuICAgICAgcGFkZGluZy10b3A6IDVweDtcbiAgICAgIGNvbG9yOiAjNjU2NTY1O1xuICAgICAgZm9udC1zaXplOiAxNHB4OyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA5OTFweCkge1xuICAgIC5oZXJvIC5jb3B5IHtcbiAgICAgIHdpZHRoOiA0Ny4yMjIyMiU7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxLjM4ODg5JTtcbiAgICAgIG1hcmdpbi1yaWdodDogMS4zODg4OSU7IH0gfVxuICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAuaGVybyAuY29weSB7XG4gICAgICB3aWR0aDogOTcuMjIyMjIlO1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBtYXJnaW4tbGVmdDogMS4zODg4OSU7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDEuMzg4ODklO1xuICAgICAgcG9zaXRpb246IGluaGVyaXQ7XG4gICAgICB0b3A6IDA7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7IH0gfVxuXG4uaGVybyAucGljIHtcbiAgd2lkdGg6IDYzLjg4ODg5JTtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tbGVmdDogMS4zODg4OSU7XG4gIG1hcmdpbi1yaWdodDogMS4zODg4OSU7XG4gIHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiAxMTU1cHgpIHtcbiAgICAuaGVybyAucGljIHtcbiAgICAgIHdpZHRoOiA1NS41NTU1NiU7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICBtYXJnaW4tbGVmdDogMS4zODg4OSU7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDEuMzg4ODklOyB9IH1cbiAgLmhlcm8gLnBpYyBpbWcge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA5OTFweCkge1xuICAgIC5oZXJvIC5waWMge1xuICAgICAgd2lkdGg6IDQ3LjIyMjIyJTtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxLjM4ODg5JTtcbiAgICAgIG1hcmdpbi1yaWdodDogMS4zODg4OSU7IH0gfVxuICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAuaGVybyAucGljIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG4uc2hvd2JveCB7XG4gIHBhZGRpbmc6IDMwcHggMzVweCAzN3B4O1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMjUpO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4yNSk7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDk5MXB4KSB7XG4gICAgLnNob3dib3gge1xuICAgICAgbWFyZ2luOiAxNXB4IDA7XG4gICAgICBwYWRkaW5nOiAxNXB4O1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjI1KTtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmUgIWltcG9ydGFudDsgfVxuICAgICAgLnNob3dib3ggaDIge1xuICAgICAgICBwYWRkaW5nLXRvcDogMDsgfSB9XG5cbi5mZWF0dXJlcyAuZnVsbCBoMiB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4uZmVhdHVyZXMgLnJvdyB7XG4gIHdpZHRoOiA5Ny4yMjIyMiU7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tbGVmdDogMS4zODg4OSU7XG4gIG1hcmdpbi1yaWdodDogMS4zODg4OSU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogNTBweCAwOyB9XG4gIC5mZWF0dXJlcyAucm93Om50aC1jaGlsZCgyKSB7XG4gICAgY29udGVudDogJyc7XG4gICAgcGFkZGluZy10b3A6IDM1cHg7IH1cbiAgLmZlYXR1cmVzIC5yb3cgcCBiIHtcbiAgICBmb250LWZhbWlseTogJ09wZW4gU2Fucyc7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgICAuZmVhdHVyZXMgLnJvdyB7XG4gICAgICBwYWRkaW5nOiAyNXB4IDA7IH0gfVxuXG4uZmVhdHVyZXMgLmZvcnR5IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IDU1LjU1NTU2JTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOyB9XG5cbi5mZWF0dXJlcyAuZm9ydHktZmlyc3Qge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDk5MXB4KSB7XG4gIC5mZWF0dXJlcyAuZm9ydHksXG4gIC5mZWF0dXJlcyAuZm9ydHktZmlyc3Qge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgdHJhbnNmb3JtOiBub25lOyB9XG4gIC5mZWF0dXJlcyBpbWcge1xuICAgIHdpZHRoOiA1MCU7XG4gICAgbWFyZ2luLWJvdHRvbTogMTVweDsgfSB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuZmVhdHVyZXMgLnJvdyB7XG4gICAgcGFkZGluZzogMjBweCAwOyB9XG4gIC5mZWF0dXJlcyBpbWcge1xuICAgIHBhZGRpbmctYm90dG9tOiAxNXB4OyB9IH1cblxuLnByaWNlcyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzYzRhNTQ7IH1cbiAgLnByaWNlcyBoMiB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi5wcmljZXMgLmNvbnRlbnQge1xuICBwYWRkaW5nLXRvcDogNTVweDtcbiAgcGFkZGluZy1ib3R0b206IDU1cHg7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEwMjVweCkge1xuICAgIC5wcmljZXMgLmNvbnRlbnQge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDsgfVxuICAgICAgLnByaWNlcyAuY29udGVudCBoMiB7XG4gICAgICAgIGZsZXg6IDEgMTAwJTsgfSB9XG5cbi5kaXNjbGFpbWVyIHtcbiAgd2lkdGg6IDk3LjIyMjIyJTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi1sZWZ0OiAxLjM4ODg5JTtcbiAgbWFyZ2luLXJpZ2h0OiAxLjM4ODg5JTtcbiAgbWFyZ2luLXRvcDogMjVweDtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4uYmFubmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgaGVpZ2h0OiA0MjVweDtcbiAgcGFkZGluZy10b3A6IDc3cHg7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAuYmFubmVyIC5jb250ZW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgcGFkZGluZzogMDsgfVxuICAuYmFubmVyIC5jb3B5IHtcbiAgICBtYXJnaW46IDAgYXV0bzsgfVxuICAuYmFubmVyIGgxLFxuICAuYmFubmVyIHAge1xuICAgIGNvbG9yOiAjZmZmOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA5OTFweCkge1xuICAgIC5iYW5uZXIge1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIHJpZ2h0OyB9XG4gICAgICAuYmFubmVyIC5jb250ZW50IHtcbiAgICAgICAgcGFkZGluZy10b3A6IDI1cHg7IH1cbiAgICAgICAgLmJhbm5lciAuY29udGVudCBoMSB7XG4gICAgICAgICAgZm9udC1zaXplOiAyLjQ0NDQ0cmVtOyB9XG4gICAgICAuYmFubmVyIC5jb3B5IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuXG4udGhpcnR5IGgzIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi5mdWxsIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi5wb2RzIC5wb2Qge1xuICBwYWRkaW5nOiAwIDM1cHg7IH1cblxuLnBvZHMgLmNpcmNsZSB7XG4gIHdpZHRoOiAyMTBweDtcbiAgaGVpZ2h0OiAyMTBweDtcbiAgbWFyZ2luOiAyMHB4IGF1dG87IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDk5MXB4KSB7XG4gICAgLnBvZHMgLmNpcmNsZSB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICAgIGhlaWdodDogYXV0bzsgfSB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgIC5wb2RzIC5jaXJjbGUge1xuICAgICAgd2lkdGg6IDE1MHB4O1xuICAgICAgaGVpZ2h0OiAxNTBweDsgfSB9XG4gIC5wb2RzIC5jaXJjbGUgaW1nIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuXG4udmF1bHQgLnJvdzpsYXN0LWNoaWxkIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDE0NXB4IDA7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgLnZhdWx0IC5yb3c6bGFzdC1jaGlsZCB7XG4gICAgICBwYWRkaW5nOiAwOyB9IH1cblxuLnZhdWx0IC52YXVsdC1pbWFnZSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAudmF1bHQgLnZhdWx0LWltYWdlIGltZyB7XG4gICAgd2lkdGg6IDkwJTtcbiAgICBtYXgtd2lkdGg6IDkyNXB4OyB9XG4gIC52YXVsdCAudmF1bHQtaW1hZ2UgaW1nOmxhc3QtY2hpbGQge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgLnZhdWx0IC52YXVsdC1pbWFnZSBpbWc6Zmlyc3QtY2hpbGQge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC52YXVsdCAudmF1bHQtaW1hZ2UgaW1nOmxhc3QtY2hpbGQge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMTAwJTsgfSB9XG5cbi52YXVsdCAudG9wLWxpc3QsXG4udmF1bHQgLmJvdHRvbS1saXN0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsaXN0LXN0eWxlOiBub25lOyB9XG4gIC52YXVsdCAudG9wLWxpc3QgbGksXG4gIC52YXVsdCAuYm90dG9tLWxpc3QgbGkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogMzAlO1xuICAgIHBhZGRpbmc6IDAgNDBweDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgIC52YXVsdCAudG9wLWxpc3QsXG4gICAgLnZhdWx0IC5ib3R0b20tbGlzdCB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAgIC52YXVsdCAudG9wLWxpc3QgbGksXG4gICAgICAudmF1bHQgLmJvdHRvbS1saXN0IGxpIHtcbiAgICAgICAgZGlzcGxheTogbGlzdC1pdGVtO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4gICAgICAgIHBhZGRpbmctbGVmdDogNDBweDsgfVxuICAgICAgICAudmF1bHQgLnRvcC1saXN0IGxpIHAsXG4gICAgICAgIC52YXVsdCAuYm90dG9tLWxpc3QgbGkgcCB7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMDsgfVxuICAgICAgICAudmF1bHQgLnRvcC1saXN0IGxpOmJlZm9yZSxcbiAgICAgICAgLnZhdWx0IC5ib3R0b20tbGlzdCBsaTpiZWZvcmUge1xuICAgICAgICAgIGNvbnRlbnQ6IGNvdW50ZXIoaXRlbSk7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICBsZWZ0OiAxNXB4O1xuICAgICAgICAgIHdpZHRoOiAyM3B4O1xuICAgICAgICAgIGhlaWdodDogMjNweDtcbiAgICAgICAgICBib3JkZXI6IDEwcHggc29saWQgI2QzMmQyNztcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgYmFja2dyb3VuZDogI2QzMmQyNztcbiAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICBmb250LWZhbWlseTogJ09wZW4gU2Fucyc7XG4gICAgICAgICAgZm9udC1zaXplOiAzMnB4O1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgIGNvdW50ZXItaW5jcmVtZW50OiBpdGVtOyB9IH1cblxuLnZhdWx0IC50b3AtbGlzdCB7XG4gIHRvcDogMDsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAudmF1bHQgLnRvcC1saXN0IHtcbiAgICAgIHRvcDogYXV0bztcbiAgICAgIGNvdW50ZXItcmVzZXQ6IGl0ZW07IH0gfVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnZhdWx0IC5ib3R0b20tbGlzdCB7XG4gICAgY291bnRlci1yZXNldDogbGk7IH0gfVxuXG4udmF1bHQgaDUge1xuICBmb250LWZhbWlseTogJ09wZW4gU2Fucyc7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7IH1cblxuLnNlY3VyaXR5IC5mdWxsIHAge1xuICB3aWR0aDogNjUlO1xuICBtYXJnaW46IDAgYXV0bzsgfVxuXG4uc2VjdXJpdHktYmxvY2sge1xuICB3aWR0aDogNDcuMjIyMjIlO1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLWxlZnQ6IDEuMzg4ODklO1xuICBtYXJnaW4tcmlnaHQ6IDEuMzg4ODklO1xuICBwYWRkaW5nOiAyNXB4OyB9XG4gIC5zZWN1cml0eS1ibG9jayAuY2lyY2xlIHtcbiAgICB3aWR0aDogMzAuNTU1NTYlO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1sZWZ0OiAxLjM4ODg5JTtcbiAgICBtYXJnaW4tcmlnaHQ6IDEuMzg4ODklO1xuICAgIHdpZHRoOiAxNTBweDtcbiAgICBoZWlnaHQ6IDE1MHB4OyB9XG4gICAgLnNlY3VyaXR5LWJsb2NrIC5jaXJjbGUgaW1nIHtcbiAgICAgIHdpZHRoOiA5MCU7XG4gICAgICBtYXJnaW46IDAgYXV0bzsgfVxuICAuc2VjdXJpdHktYmxvY2sgLmJveC1jb250ZW50IHtcbiAgICB3aWR0aDogNjMuODg4ODklO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1sZWZ0OiAxLjM4ODg5JTtcbiAgICBtYXJnaW4tcmlnaHQ6IDEuMzg4ODklOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA5OTFweCkge1xuICAgIC5zZWN1cml0eS1ibG9jayB7XG4gICAgICB3aWR0aDogOTcuMjIyMjIlO1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBtYXJnaW4tbGVmdDogMS4zODg4OSU7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDEuMzg4ODklOyB9IH1cbiAgLnNlY3VyaXR5LWJsb2NrIC5jaXJjbGUsXG4gIC5zZWN1cml0eS1ibG9jayAuYm94LWNvbnRlbnQge1xuICAgIHdpZHRoOiA5Ny4yMjIyMiU7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLWxlZnQ6IDEuMzg4ODklO1xuICAgIG1hcmdpbi1yaWdodDogMS4zODg4OSU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC5zZWN1cml0eS1ibG9jayAuY2lyY2xlIGltZyB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgaGVpZ2h0OiAxNTBweDsgfVxuXG4uaW5uZXIge1xuICBwYWRkaW5nLXRvcDogMTAwcHg7IH1cbiAgLmlubmVyIGgyIHtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7IH1cbiAgLmlubmVyIGg0IHtcbiAgICBtYXJnaW4tYm90dG9tOiAyNXB4OyB9XG4gIC5pbm5lciAuYnRuIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogNDBweDsgfVxuXG4uZm91ci1vLWZvdXIge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiA0ODBweDsgfVxuXG4uYmFubmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2MwYzBjMDsgfVxuXG4ub3B0aW9ucyAuY29udGVudCB7XG4gIHBhZGRpbmctdG9wOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgYm9yZGVyLWJvdHRvbTogLjVweCBzb2xpZCAjYzBjMGMwOyB9XG4gIC5vcHRpb25zIC5jb250ZW50IC5maWZ0eSB7XG4gICAgcGFkZGluZzogNDBweDsgfVxuICAub3B0aW9ucyAuY29udGVudCAuZmlmdHk6Zmlyc3QtY2hpbGQge1xuICAgIGJvcmRlci1yaWdodDogLjVweCBzb2xpZCAjYzBjMGMwOyB9XG5cbi5sZWZ0LWltYWdlLCAucmlnaHQtY29udGVudCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuXG4ubGVmdC1pbWFnZSB7XG4gIHdpZHRoOiAzMC41NTU1NiU7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tbGVmdDogMS4zODg4OSU7XG4gIG1hcmdpbi1yaWdodDogMS4zODg4OSU7IH1cblxuLnJpZ2h0LWNvbnRlbnQge1xuICB3aWR0aDogNjMuODg4ODklO1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLWxlZnQ6IDEuMzg4ODklO1xuICBtYXJnaW4tcmlnaHQ6IDEuMzg4ODklO1xuICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG5cbi5lbnRlcnByaXNldHJpYWwge1xuICBwYWRkaW5nOiAxZW0gMDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogNjAlIDUwJTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjsgfVxuICAuZW50ZXJwcmlzZXRyaWFsIGEge1xuICAgIGNvbG9yOiAjODFkNmUzO1xuICAgIGZvbnQtc2l6ZTogMXJlbTsgfVxuICAuZW50ZXJwcmlzZXRyaWFsIGgyLFxuICAuZW50ZXJwcmlzZXRyaWFsIHAge1xuICAgIGNvbG9yOiAjZmZmOyB9XG4gIC5lbnRlcnByaXNldHJpYWwgLmZ1bGwge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgLmVudGVycHJpc2V0cmlhbCAuYnRuIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiAxZW07IH1cbiAgICAuZW50ZXJwcmlzZXRyaWFsIC5idG4gYSB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjZmZmLCAjZWVlKTtcbiAgICAgIGNvbG9yOiAjM2M0YTU1O1xuICAgICAgZm9udC1mYW1pbHk6ICdvcGVuX3NhbnNlbWlib2xkJywgJ0hlbHZldGljYSBOZXVlJywgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4yNSk7IH1cblxuLm5vdGVzIHtcbiAgcGFkZGluZzogMmVtIDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNmY5ZmM7IH1cbiAgLm5vdGVzIGltZyB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLm5vdGVzIC5uaW5ldHkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB3aWR0aDogODl2dztcbiAgICBtYXgtd2lkdGg6IDY1ZW07IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgLm5vdGVzIC50aGlydHkge1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgICAgLm5vdGVzIC50aGlydHkgaW1nIHtcbiAgICAgICAgd2lkdGg6IDYwJTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMWVtOyB9XG4gICAgLm5vdGVzIC5uaW5ldHkge1xuICAgICAgZGlzcGxheTogaW5pdGlhbDtcbiAgICAgIHdpZHRoOiA5MCU7IH1cbiAgICAubm90ZXMgcCB7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gICAgLm5vdGVzIC5jb250ZW50IHtcbiAgICAgIHBhZGRpbmc6IDAgMTBweDsgfSB9XG4gIC5ub3RlcyAuY29udGVudCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuXG4uaGVybyB7XG4gIC8qLmNvbnRlbnQge1xyXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDEwMjRweCkge1xyXG4gICAgICBwYWRkaW5nLXRvcDogMDtcclxuICAgIH0qL1xuICAvKi5jb3B5IHtcclxuICAgIHdpZHRoOiAzNS41NTU1NiU7XHJcbiAgICB0cmFuc2Zvcm06IGluaGVyaXQ7XHJcbiAgICBwb3NpdGlvbjogaW5oZXJpdDtcclxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAxMDgwcHgpIHtcclxuICAgICAgd2lkdGg6IDUwJTtcclxuICAgIH1cclxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkc2NyZWVuLXhzLW1heCkge1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgIH1cclxuICB9XHJcbiAgLnBpYyB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBmbG9hdDogbm9uZTtcclxuICAgIHdpZHRoOiA1OC44ODg4OSU7XHJcbiAgICBvcmRlcjogMjtcclxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAxMDgwcHgpIHtcclxuICAgICAgd2lkdGg6IDUwJTtcclxuICAgIH1cclxuICB9XHJcbiAgfSovIH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDEwMjVweCkge1xuICAgIC5oZXJvIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDNlbTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAxMTgwcHgpIHtcbiAgICAuaGVybyB7XG4gICAgICBtYXJnaW4tdG9wOiAxZW07XG4gICAgICBtYXJnaW4tYm90dG9tOiAxLjVlbTsgfSB9XG4gIC5oZXJvIC5jb3JlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gICAgICAuaGVybyAuY29yZSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDMuNWVtOyB9IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgIC5oZXJvIC5jb3JlIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMS41ZW07IH0gfVxuICAuaGVybyAuZnJlZXN5bmMge1xuICAgIHotaW5kZXg6IDk5OyB9XG4gICAgLmhlcm8gLmZyZWVzeW5jOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHRvcDogLjVlbTtcbiAgICAgIHdpZHRoOiA5MHB4O1xuICAgICAgaGVpZ2h0OiAyNXB4O1xuICAgICAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1hZ2VzL2Nkbi9pbWctbm93LWZyZWUtaWNvbkAyeC5wbmdcIikgbm8tcmVwZWF0O1xuICAgICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluOyB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgICAgICAgLmhlcm8gLmZyZWVzeW5jOmJlZm9yZSB7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAuNWVtOyB9IH1cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgICAgICAgLmhlcm8gLmZyZWVzeW5jOmJlZm9yZSB7XG4gICAgICAgICAgdG9wOiAuMzVlbTtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC41ZW07IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgICAgLmhlcm8gLmZyZWVzeW5jIHtcbiAgICAgICAgdG9wOiAuNWVtOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogMTAyNXB4KSB7XG4gICAgICAuaGVybyAuZnJlZXN5bmMge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogaW5oZXJpdDtcbiAgICAgICAgcmlnaHQ6IDV2dztcbiAgICAgICAgYm90dG9tOiAtLjZlbTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDExODBweCkge1xuICAgICAgLmhlcm8gLmZyZWVzeW5jIHtcbiAgICAgICAgcmlnaHQ6IC0xMS41ZW07XG4gICAgICAgIGJvdHRvbTogMS4zZW07XG4gICAgICAgIHdpZHRoOiA1OC44ODg4OSU7IH0gfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgICAgIC5oZXJvIC5mcmVlc3luYyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYm90dG9tOiBpbml0aWFsO1xuICAgICAgICBsZWZ0OiBpbml0aWFsO1xuICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgICAgIC5oZXJvIC5mcmVlc3luYyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuICAgICAgICBmb250LXNpemU6IDN2dzsgfSB9XG5cbi5vd2wtY2Fyb3VzZWwsXG4ub3dsLWNhcm91c2VsIC5vd2wtaXRlbSB7XG4gIHBvc2l0aW9uOiBpbml0aWFsOyB9XG5cbi5vd2wtY2Fyb3VzZWwge1xuICBkaXNwbGF5OiBub25lO1xuICB6LWluZGV4OiAxO1xuICB3aWR0aDogMTAwJTsgfVxuICAub3dsLWNhcm91c2VsIC5vd2wtc3RhZ2Uge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAvKi1tcy10b3VjaC1hY3Rpb246cGFuLVkqLyB9XG4gICAgLm93bC1jYXJvdXNlbCAub3dsLXN0YWdlOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcuJztcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgICBsaW5lLWhlaWdodDogMDsgfVxuICAub3dsLWNhcm91c2VsIC5vd2wtc3RhZ2Utb3V0ZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7IH1cbiAgLm93bC1jYXJvdXNlbCAub3dsLWl0ZW0ge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1pbi1oZWlnaHQ6IDFweDsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA5OTJweCkge1xuICAgICAgLm93bC1jYXJvdXNlbCAub3dsLWl0ZW0ge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7IH0gfVxuICAgIC5vd2wtY2Fyb3VzZWwgLm93bC1pdGVtIGltZyB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEuNWVtOyB9XG4gIC5vd2wtY2Fyb3VzZWwgLm93bC1kb3RzLmRpc2FibGVkLFxuICAub3dsLWNhcm91c2VsIC5vd2wtbmF2LmRpc2FibGVkIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5vd2wtY2Fyb3VzZWwgLm93bC1kb3QsXG4gIC5vd2wtY2Fyb3VzZWwgLm93bC1uYXYgLm93bC1uZXh0LFxuICAub3dsLWNhcm91c2VsIC5vd2wtbmF2IC5vd2wtcHJldiB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHVzZXItc2VsZWN0OiBub25lOyB9XG4gIC5vd2wtY2Fyb3VzZWwgLm93bC1sb2FkZWQge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5vd2wtY2Fyb3VzZWwgLm93bC1sb2FkaW5nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBvcGFjaXR5OiAwOyB9XG4gIC5vd2wtY2Fyb3VzZWwgLm93bC1oaWRkZW4ge1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgLm93bC1jYXJvdXNlbCAub3dsLXJlZnJlc2ggLm93bC1pdGVtIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5vd2wtY2Fyb3VzZWwgLm93bC1kcmFnIC5vd2wtaXRlbSB7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7IH1cbiAgLm93bC1jYXJvdXNlbCAub3dsLWl0ZW0gLm93bC1sYXp5IHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgLjRzIGVhc2U7IH1cbiAgLm93bC1jYXJvdXNlbCAub3dsLXZpZGVvLXdyYXBwZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZDogIzAwMDsgfVxuICAub3dsLWNhcm91c2VsLm93bC1ydGwge1xuICAgIGRpcmVjdGlvbjogcnRsOyB9XG4gICAgLm93bC1jYXJvdXNlbC5vd2wtcnRsIC5vd2wtaXRlbSB7XG4gICAgICBmbG9hdDogcmlnaHQ7IH1cblxuLm5vLWpzIC5vd2wtY2Fyb3VzZWwge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4ub3dsLWhlaWdodCB7XG4gIHRyYW5zaXRpb246IGhlaWdodCAuNXMgZWFzZS1pbi1vdXQ7IH1cblxuLm93bC1kb3RzIC5vd2wtZG90IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB6b29tOiAxOyB9XG4gIC5vd2wtZG90cyAub3dsLWRvdCBzcGFuIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTRweDtcbiAgICBoZWlnaHQ6IDE0cHg7XG4gICAgbWFyZ2luOiA1cHggN3B4O1xuICAgIGJvcmRlci1yYWRpdXM6IDMwcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzg4OTU5ZTtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMjUpOyB9XG4gIC5vd2wtZG90cyAub3dsLWRvdC5hY3RpdmUgc3BhbiB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgI2ZmNTU0ZiwgI2QzMmQyNyksIGxpbmVhci1ncmFkaWVudCgjZDMyZDI3LCAjZDMyZDI3KTtcbiAgICBib3gtc2hhZG93OiAwIDFweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMjUpOyB9XG4gIC5vd2wtZG90cyAub3dsLWRvdDpob3ZlciBzcGFuIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjZmY1NTRmLCAjZDMyZDI3KSwgbGluZWFyLWdyYWRpZW50KCNkMzJkMjcsICNkMzJkMjcpO1xuICAgIGJveC1zaGFkb3c6IDAgMXB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4yNSk7IH1cblxuLnRodW1icyAuYWN0aXZlIC5pdGVtIHtcbiAgcGFkZGluZzogMmVtO1xuICBjb2xvcjogIzNjNGE1NTtcbiAgYm94LXNoYWRvdzogMCA0cHggNnB4IDAgcmdiYSgwLCAwLCAwLCAwLjI1KTtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG5cbi50aHVtYnMgLml0ZW0ge1xuICBjb2xvcjogIzY1NjU2NTtcbiAgZm9udC1zaXplOiAxNnB4OyB9XG4gIC50aHVtYnMgLml0ZW0gaDMge1xuICAgIG1hcmdpbi1ib3R0b206IC40ZW07XG4gICAgZm9udC1zaXplOiAyMnB4OyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgICAgLnRodW1icyAuaXRlbSBoMyB7XG4gICAgICAgIGNvbG9yOiAjM2M0YTU1OyB9IH1cbiAgLnRodW1icyAuaXRlbSAuZnJlZSBoMzphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogLjJlbTtcbiAgICBsZWZ0OiAuNGVtO1xuICAgIHdpZHRoOiA4dnc7XG4gICAgaGVpZ2h0OiAyNXB4O1xuICAgIGJhY2tncm91bmQ6IHVybChcIi4uL2ltYWdlcy9jZG4vaW1nLW5vdy1mcmVlLWljb25AMngucG5nXCIpIG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEwMjVweCkge1xuICAgIC50aHVtYnMgLml0ZW0gLmZyZWUgaDMge1xuICAgICAgdG9wOiAuM2VtO1xuICAgICAgd2lkdGg6IDExdnc7IH0gfVxuICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAudGh1bWJzIC5pdGVtIC5mcmVlIGgzIHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9IH1cbiAgLnRodW1icyAuaXRlbSBwIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWF4LXdpZHRoOiA0NTBweDtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIGZvbnQtc2l6ZTogMWVtOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAxMDI1cHgpIHtcbiAgICAudGh1bWJzIC5pdGVtIHtcbiAgICAgIHBhZGRpbmc6IDJlbTtcbiAgICAgIGNvbG9yOiAjM2M0YTU1O1xuICAgICAgYm94LXNoYWRvdzogMCA0cHggNnB4IDAgcmdiYSgwLCAwLCAwLCAwLjI1KTsgfSB9XG5cbi50aHVtYnMgLm9uIC5pdGVtIHtcbiAgY29sb3I6ICMzYzRhNTU7IH1cbiAgLnRodW1icyAub24gLml0ZW0gaDMge1xuICAgIGNvbG9yOiAjZDMyZDI3OyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgICAgLnRodW1icyAub24gLml0ZW0gaDMge1xuICAgICAgICBjb2xvcjogIzNjNGE1NTsgfSB9XG5cbi50aHVtYnMgLnBpYyBpbWcge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4udGh1bWJzIC5vd2wtZG90cyB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4udGh1bWJzLm93bC1jYXJvdXNlbCAub3dsLWl0ZW0uYWN0aXZlIHtcbiAgcGFkZGluZy1ib3R0b206IDA7IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDEwMjVweCkge1xuICAudGh1bWJzLm93bC1jYXJvdXNlbCAub3dsLWl0ZW0ub24gcDphZnRlciB7XG4gICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgLnRodW1icy5vd2wtY2Fyb3VzZWwgLm93bC1pdGVtLm9uIHtcbiAgICBwYWRkaW5nOiAyZW07IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNXB4KSB7XG4gIC50aHVtYnMub3dsLWNhcm91c2VsIC5vd2wtaXRlbSB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IDUwMHB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMWVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDYuNWVtO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3gtc2hhZG93OiAwIDFweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMjUpOyB9XG4gICAgLnRodW1icy5vd2wtY2Fyb3VzZWwgLm93bC1pdGVtLm9uIHtcbiAgICAgIG1heC13aWR0aDogNTIwcHggIWltcG9ydGFudDtcbiAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDZweCAwIHJnYmEoMCwgMCwgMCwgMC4yNSk7IH1cbiAgICAgIC50aHVtYnMub3dsLWNhcm91c2VsIC5vd2wtaXRlbS5vbiBwOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMTAlO1xuICAgICAgICByaWdodDogLTNlbTtcbiAgICAgICAgd2lkdGg6IDMwcHg7XG4gICAgICAgIGhlaWdodDogMjVweDtcbiAgICAgICAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1hZ2VzL2Nkbi9pbWctY29udHJvbC1hcnJvdy5wbmdcIikgbm8tcmVwZWF0O1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNXB4KSB7XG4gIC50aHVtYnMgLm93bC1zdGFnZSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKSAhaW1wb3J0YW50OyB9IH1cblxuLnRodW1icyAub3dsLXN0YWdlIC5vd2wtaXRlbSB7XG4gIHBhZGRpbmc6IDAgMWVtIDFlbTsgfVxuICAudGh1bWJzIC5vd2wtc3RhZ2UgLm93bC1pdGVtIC5pdGVtIHtcbiAgICBwYWRkaW5nOiAyZW07XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBib3gtc2hhZG93OiAwIDRweCA2cHggMCByZ2JhKDAsIDAsIDAsIDAuMjUpOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDEwMjVweCkge1xuICAgICAgLnRodW1icyAub3dsLXN0YWdlIC5vd2wtaXRlbSAuaXRlbSB7XG4gICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgIG1heC13aWR0aDogNDgwcHggIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMS41ZW07XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDEwMjVweCkge1xuICAgICAgLnRodW1icyAub3dsLXN0YWdlIC5vd2wtaXRlbSAuaXRlbSBpbWcge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMTAlO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgd2lkdGg6IDU1JTtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgLjVzIGVhc2U7IH0gfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAxMjIwcHgpIHtcbiAgICAgIC50aHVtYnMgLm93bC1zdGFnZSAub3dsLWl0ZW0gLml0ZW0gaW1nIHtcbiAgICAgICAgd2lkdGg6IDQ3dnc7IH0gfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAxMDI1cHgpIHtcbiAgICAgIC50aHVtYnMgLm93bC1zdGFnZSAub3dsLWl0ZW0gLml0ZW0gaW1nIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogMTAyNXB4KSB7XG4gICAgLnRodW1icyAub3dsLXN0YWdlIC5vd2wtaXRlbS5vbiBpbWcge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB6LWluZGV4OiAtMTsgfSB9XG5cbi5zbGlkZSB7XG4gIG1hcmdpbjogMmVtIDA7IH1cbiAgLnNsaWRlIGgzIHtcbiAgICBmb250LWZhbWlseTogJ29wZW5fc2Fuc3JlZ3VsYXInLCAnSGVsdmV0aWNhIE5ldWUnLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7IH1cbiAgLnNsaWRlIC5mdWxsIGgyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjVlbTsgfVxuICAuc2xpZGUgLmNvbnRlbnQge1xuICAgIHBhZGRpbmc6IDFlbTsgfVxuICAuc2xpZGUgLnNsaWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmb250LXNpemU6IC45ZW07IH1cbiAgLnNsaWRlIC50aHVtYnMge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgICAuc2xpZGUgLnRodW1icyAub3dsLXN0YWdlIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4gIC5zbGlkZSAuYmlnLWltYWdlcyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHdpZHRoOiA1NyU7XG4gICAgbWFyZ2luLWxlZnQ6IDMlOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiAxMDI1cHgpIHtcbiAgICAuc2xpZGUgLnNsaWRlciB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4gICAgLnNsaWRlIC50aHVtYnMge1xuICAgICAgb3JkZXI6IDI7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAgICAgLnNsaWRlIC50aHVtYnMgLm93bC1zdGFnZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgLnNsaWRlIC5iaWctaW1hZ2VzIHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDEwMjVweCkge1xuICAub3dsLXdyYXBwZXIge1xuICAgIG1hcmdpbjogMCBhdXRvOyB9IH1cblxuLnF1b3RlcyBwIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogNzgwcHg7XG4gIG1hcmdpbjogMS41ZW0gYXV0bztcbiAgY29sb3I6ICM0MDQwNDA7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBsaW5lLWhlaWdodDogMS43MzsgfVxuXG4ucXVvdGVzIHNwYW4ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogMWVtO1xuICBjb2xvcjogIzQwNDA0MDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXdlaWdodDogNjAwOyB9XG5cbmJvZHkge1xuICBmb250OiAxNnB4ICdPcGVuIFNhbnMnLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7IH1cblxuLmxpZ2h0IHtcbiAgZm9udC13ZWlnaHQ6IDMwMDsgfVxuXG4ucmVndWxhciB7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7IH1cblxuLnNlbWktYm9sZCB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7IH1cblxuYixcbnN0cm9uZyxcbi5ib2xkIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDsgfVxuXG4uemVicmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjZmOWZjOyB9XG5cbi5jb250ZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbmEge1xuICBjb2xvcjogI2QzMmQyNztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gIGEgOmhvdmVyIHtcbiAgICBjb2xvcjogIzNjNGE1NDsgfVxuXG5wIHtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBjb2xvcjogIzNjNGE1NTtcbiAgbGluZS1oZWlnaHQ6IDEuNjsgfVxuXG4uc21hbGwtdGV4dCB7XG4gIGZvbnQtc2l6ZTogMC44ODg4OXJlbTsgfVxuXG4uY2VudGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi5zaG93IHtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuXG4uaGlkZSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG51bCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7IH1cblxuaDEsXG5oMixcbmgzLFxuaDQsXG5oNSB7XG4gIG1hcmdpbjogMDtcbiAgY29sb3I6ICMzYzRhNTU7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjI1OyB9XG5cbmgxIHtcbiAgZm9udC1zaXplOiAyLjU1NTU2cmVtOyB9XG5cbmgyIHtcbiAgZm9udC1zaXplOiAxLjc3Nzc4cmVtOyB9XG5cbmgzIHtcbiAgZm9udC1zaXplOiAxLjU1NTU2cmVtOyB9XG5cbmg0IHtcbiAgZm9udC1zaXplOiAxLjIyMjIycmVtOyB9XG5cbmg1IHtcbiAgZm9udC1zaXplOiAxcmVtOyB9XG5cbi5mdWxsIHtcbiAgd2lkdGg6IDk3LjIyMjIyJTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi1sZWZ0OiAxLjM4ODg5JTtcbiAgbWFyZ2luLXJpZ2h0OiAxLjM4ODg5JTsgfVxuXG4udGhpcnR5IHtcbiAgd2lkdGg6IDMwLjU1NTU2JTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi1sZWZ0OiAxLjM4ODg5JTtcbiAgbWFyZ2luLXJpZ2h0OiAxLjM4ODg5JTsgfVxuXG4uZmlmdHkge1xuICB3aWR0aDogNDcuMjIyMjIlO1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLWxlZnQ6IDEuMzg4ODklO1xuICBtYXJnaW4tcmlnaHQ6IDEuMzg4ODklOyB9XG5cbi5zaXh0eSB7XG4gIHdpZHRoOiA1Mi4yMjIyMiU7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tbGVmdDogMS4zODg4OSU7XG4gIG1hcmdpbi1yaWdodDogMS4zODg4OSU7IH1cblxuLnNpeHR5LWxhc3Qge1xuICB3aWR0aDogNTIuMjIyMjIlO1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbi1sZWZ0OiAxLjM4ODg5JTtcbiAgbWFyZ2luLXJpZ2h0OiAxLjM4ODg5JTsgfVxuXG4uc2V2ZW50eSB7XG4gIHdpZHRoOiA1NS41NTU1NiU7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tbGVmdDogMS4zODg4OSU7XG4gIG1hcmdpbi1yaWdodDogMS4zODg4OSU7IH1cblxuLm5pbmV0eSB7XG4gIHdpZHRoOiA3Mi4yMjIyMiU7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tbGVmdDogMS4zODg4OSU7XG4gIG1hcmdpbi1yaWdodDogMS4zODg4OSU7IH1cblxuLmZvcnR5LWZpcnN0IHtcbiAgd2lkdGg6IDQyLjIyMjIyJTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi1sZWZ0OiAxLjM4ODg5JTtcbiAgbWFyZ2luLXJpZ2h0OiAxLjM4ODg5JTsgfVxuXG4uZm9ydHkge1xuICB3aWR0aDogNDIuMjIyMjIlO1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLWxlZnQ6IDEuMzg4ODklO1xuICBtYXJnaW4tcmlnaHQ6IDEuMzg4ODklOyB9XG5cbi5zaXh0eSBpbWcsXG4uc2l4dHktbGFzdCBpbWcge1xuICB3aWR0aDogMTAwJTsgfVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnRoaXJ0eSxcbiAgLmZpZnR5LFxuICAuc2l4dHksXG4gIC5zaXh0eS1sYXN0LFxuICAuc2V2ZW50eSxcbiAgLmZvcnR5LFxuICAuZm9ydHktZmlyc3Qge1xuICAgIHdpZHRoOiA5Ny4yMjIyMiU7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLWxlZnQ6IDEuMzg4ODklO1xuICAgIG1hcmdpbi1yaWdodDogMS4zODg4OSU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgLnRoaXJ0eSBpbWcsXG4gICAgLmZpZnR5IGltZyxcbiAgICAuc2l4dHkgaW1nLFxuICAgIC5zaXh0eS1sYXN0IGltZyxcbiAgICAuc2V2ZW50eSBpbWcsXG4gICAgLmZvcnR5IGltZyxcbiAgICAuZm9ydHktZmlyc3QgaW1nIHtcbiAgICAgIHdpZHRoOiA3NSU7IH0gfVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnRoaXJ0eSB7XG4gICAgd2lkdGg6IDk3LjIyMjIyJTtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tbGVmdDogMS4zODg4OSU7XG4gICAgbWFyZ2luLXJpZ2h0OiAxLjM4ODg5JTsgfSB9XG5cbi5ub3ctZnJlZSB7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICBwYWRkaW5nOiAzcHggMTBweDtcbiAgYm9yZGVyOiAyLjVweCBzb2xpZCAjMmVjYzcxO1xuICBib3JkZXItcmFkaXVzOiAyNXB4O1xuICBjb2xvcjogIzJlY2M3MTtcbiAgZm9udC1mYW1pbHk6ICdPcGVuIFNhbnMnO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cblxuLnRoYW5rcy1mcmFtZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxMDAwO1xuICBwYWRkaW5nLXRvcDogMTVweDtcbiAgYm9yZGVyOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTUpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLnRoYW5rcy1mcmFtZSAucHJvZ3Jlc3Mge1xuICAgIHdpZHRoOiAzNTBweCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi10b3A6IDIwMHB4ICFpbXBvcnRhbnQ7IH1cbiAgLnRoYW5rcy1mcmFtZSBoMiB7XG4gICAgcGFkZGluZy10b3A6IDMwcHggIWltcG9ydGFudDsgfVxuXG4ubGF1bmNoLWFwcCB7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuIiwiLyohIG5vcm1hbGl6ZS5zY3NzIHYwLjEuMCB8IE1JVCBMaWNlbnNlIHwgYmFzZWQgb24gZ2l0LmlvL25vcm1hbGl6ZSAqL1xuXG4vKipcbiAqIDEuIFNldCBkZWZhdWx0IGZvbnQgZmFtaWx5IHRvIHNhbnMtc2VyaWYuXG4gKiAyLiBQcmV2ZW50IGlPUyB0ZXh0IHNpemUgYWRqdXN0IGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZSwgd2l0aG91dCBkaXNhYmxpbmdcbiAqICAgIHVzZXIgem9vbS5cbiAqL1xuXG5odG1sIHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7IC8qIDEgKi9cbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIGRlZmF1bHQgbWFyZ2luLlxuICovXG5cbmJvZHkge1xuICBtYXJnaW46IDA7XG59XG5cbi8qIEhUTUw1IGRpc3BsYXkgZGVmaW5pdGlvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGFueSBIVE1MNSBlbGVtZW50IGluIElFIDgvOS5cbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgZGV0YWlsc2Agb3IgYHN1bW1hcnlgIGluIElFIDEwLzExXG4gKiBhbmQgRmlyZWZveC5cbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgbWFpbmAgaW4gSUUgMTEuXG4gKi9cblxuYXJ0aWNsZSxcbmFzaWRlLFxuZGV0YWlscyxcbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5mb290ZXIsXG5oZWFkZXIsXG5oZ3JvdXAsXG5tYWluLFxubWVudSxcbm5hdixcbnNlY3Rpb24sXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCBgaW5saW5lLWJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGluIElFIDgvOS5cbiAqIDIuIE5vcm1hbGl6ZSB2ZXJ0aWNhbCBhbGlnbm1lbnQgb2YgYHByb2dyZXNzYCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAqL1xuXG5hdWRpbyxcbmNhbnZhcyxcbnByb2dyZXNzLFxudmlkZW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IC8qIDEgKi9cbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyAvKiAyICovXG59XG5cbi8qKlxuICogUHJldmVudCBtb2Rlcm4gYnJvd3NlcnMgZnJvbSBkaXNwbGF5aW5nIGBhdWRpb2Agd2l0aG91dCBjb250cm9scy5cbiAqIFJlbW92ZSBleGNlc3MgaGVpZ2h0IGluIGlPUyA1IGRldmljZXMuXG4gKi9cblxuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgYFtoaWRkZW5dYCBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC5cbiAqIEhpZGUgdGhlIGB0ZW1wbGF0ZWAgZWxlbWVudCBpbiBJRSA4LzkvMTEsIFNhZmFyaSwgYW5kIEZpcmVmb3ggPCAyMi5cbiAqL1xuXG5baGlkZGVuXSxcbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogTGlua3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgY29sb3IgZnJvbSBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gKi9cblxuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4vKipcbiAqIEltcHJvdmUgcmVhZGFiaWxpdHkgd2hlbiBmb2N1c2VkIGFuZCBhbHNvIG1vdXNlIGhvdmVyZWQgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmE6YWN0aXZlLFxuYTpob3ZlciB7XG4gIG91dGxpbmU6IDA7XG59XG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAvMTEsIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQ7XG59XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsZSBzZXQgdG8gYGJvbGRlcmAgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gKi9cblxuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgdmFyaWFibGUgYGgxYCBmb250LXNpemUgYW5kIG1hcmdpbiB3aXRoaW4gYHNlY3Rpb25gIGFuZCBgYXJ0aWNsZWBcbiAqIGNvbnRleHRzIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkuXG4gKi9cblxubWFyayB7XG4gIGJhY2tncm91bmQ6ICNmZjA7XG4gIGNvbG9yOiAjMDAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGFuZCB2YXJpYWJsZSBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5cbi8qKlxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgYWZmZWN0aW5nIGBsaW5lLWhlaWdodGAgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtO1xufVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07XG59XG5cbi8qIEVtYmVkZGVkIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIGJvcmRlciB3aGVuIGluc2lkZSBgYWAgZWxlbWVudCBpbiBJRSA4LzkvMTAuXG4gKi9cblxuaW1nIHtcbiAgYm9yZGVyOiAwO1xufVxuXG4vKipcbiAqIENvcnJlY3Qgb3ZlcmZsb3cgbm90IGhpZGRlbiBpbiBJRSA5LzEwLzExLlxuICovXG5cbnN2Zzpub3QoOnJvb3QpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLyogR3JvdXBpbmcgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGRyZXNzIG1hcmdpbiBub3QgcHJlc2VudCBpbiBJRSA4LzkgYW5kIFNhZmFyaS5cbiAqL1xuXG5maWd1cmUge1xuICBtYXJnaW46IDFlbSA0MHB4O1xufVxuXG4vKipcbiAqIEFkZHJlc3MgZGlmZmVyZW5jZXMgYmV0d2VlbiBGaXJlZm94IGFuZCBvdGhlciBicm93c2Vycy5cbiAqL1xuXG5ociB7XG4gIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBoZWlnaHQ6IDA7XG59XG5cbi8qKlxuICogQ29udGFpbiBvdmVyZmxvdyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxucHJlIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qKlxuICogQWRkcmVzcyBvZGQgYGVtYC11bml0IGZvbnQgc2l6ZSByZW5kZXJpbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmNvZGUsXG5rYmQsXG5wcmUsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDFlbTtcbn1cblxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogS25vd24gbGltaXRhdGlvbjogYnkgZGVmYXVsdCwgQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWCBhbGxvdyB2ZXJ5IGxpbWl0ZWRcbiAqIHN0eWxpbmcgb2YgYHNlbGVjdGAsIHVubGVzcyBhIGBib3JkZXJgIHByb3BlcnR5IGlzIHNldC5cbiAqL1xuXG4vKipcbiAqIDEuIENvcnJlY3QgY29sb3Igbm90IGJlaW5nIGluaGVyaXRlZC5cbiAqICAgIEtub3duIGlzc3VlOiBhZmZlY3RzIGNvbG9yIG9mIGRpc2FibGVkIGVsZW1lbnRzLlxuICogMi4gQ29ycmVjdCBmb250IHByb3BlcnRpZXMgbm90IGJlaW5nIGluaGVyaXRlZC5cbiAqIDMuIEFkZHJlc3MgbWFyZ2lucyBzZXQgZGlmZmVyZW50bHkgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGNvbG9yOiBpbmhlcml0OyAvKiAxICovXG4gIGZvbnQ6IGluaGVyaXQ7IC8qIDIgKi9cbiAgbWFyZ2luOiAwOyAvKiAzICovXG59XG5cbi8qKlxuICogQWRkcmVzcyBgb3ZlcmZsb3dgIHNldCB0byBgaGlkZGVuYCBpbiBJRSA4LzkvMTAvMTEuXG4gKi9cblxuYnV0dG9uIHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi8qKlxuICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYHRleHQtdHJhbnNmb3JtYCBpbmhlcml0YW5jZSBmb3IgYGJ1dHRvbmAgYW5kIGBzZWxlY3RgLlxuICogQWxsIG90aGVyIGZvcm0gY29udHJvbCBlbGVtZW50cyBkbyBub3QgaW5oZXJpdCBgdGV4dC10cmFuc2Zvcm1gIHZhbHVlcy5cbiAqIENvcnJlY3QgYGJ1dHRvbmAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveCwgSUUgOC85LzEwLzExLCBhbmQgT3BlcmEuXG4gKiBDb3JyZWN0IGBzZWxlY3RgIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3guXG4gKi9cblxuYnV0dG9uLFxuc2VsZWN0IHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8qKlxuICogMS4gQXZvaWQgdGhlIFdlYktpdCBidWcgaW4gQW5kcm9pZCA0LjAuKiB3aGVyZSAoMikgZGVzdHJveXMgbmF0aXZlIGBhdWRpb2BcbiAqICAgIGFuZCBgdmlkZW9gIGNvbnRyb2xzLlxuICogMi4gQ29ycmVjdCBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIGBpbnB1dGAgdHlwZXMgaW4gaU9TLlxuICogMy4gSW1wcm92ZSB1c2FiaWxpdHkgYW5kIGNvbnNpc3RlbmN5IG9mIGN1cnNvciBzdHlsZSBiZXR3ZWVuIGltYWdlLXR5cGVcbiAqICAgIGBpbnB1dGAgYW5kIG90aGVycy5cbiAqL1xuXG5idXR0b24sXG5odG1sIGlucHV0W3R5cGU9XCJidXR0b25cIl0sIC8qIDEgKi9cbmlucHV0W3R5cGU9XCJyZXNldFwiXSxcbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMiAqL1xuICBjdXJzb3I6IHBvaW50ZXI7IC8qIDMgKi9cbn1cblxuLyoqXG4gKiBSZS1zZXQgZGVmYXVsdCBjdXJzb3IgZm9yIGRpc2FibGVkIGVsZW1lbnRzLlxuICovXG5cbmJ1dHRvbltkaXNhYmxlZF0sXG5odG1sIGlucHV0W2Rpc2FibGVkXSB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLyoqXG4gKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgYm9yZGVyIGluIEZpcmVmb3ggNCsuXG4gKi9cblxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBGaXJlZm94IDQrIHNldHRpbmcgYGxpbmUtaGVpZ2h0YCBvbiBgaW5wdXRgIHVzaW5nIGAhaW1wb3J0YW50YCBpblxuICogdGhlIFVBIHN0eWxlc2hlZXQuXG4gKi9cblxuaW5wdXQge1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xufVxuXG4vKipcbiAqIEl0J3MgcmVjb21tZW5kZWQgdGhhdCB5b3UgZG9uJ3QgYXR0ZW1wdCB0byBzdHlsZSB0aGVzZSBlbGVtZW50cy5cbiAqIEZpcmVmb3gncyBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0IHJlc3BlY3QgYm94LXNpemluZywgcGFkZGluZywgb3Igd2lkdGguXG4gKlxuICogMS4gQWRkcmVzcyBib3ggc2l6aW5nIHNldCB0byBgY29udGVudC1ib3hgIGluIElFIDgvOS8xMC5cbiAqIDIuIFJlbW92ZSBleGNlc3MgcGFkZGluZyBpbiBJRSA4LzkvMTAuXG4gKi9cblxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogRml4IHRoZSBjdXJzb3Igc3R5bGUgZm9yIENocm9tZSdzIGluY3JlbWVudC9kZWNyZW1lbnQgYnV0dG9ucy4gRm9yIGNlcnRhaW5cbiAqIGBmb250LXNpemVgIHZhbHVlcyBvZiB0aGUgYGlucHV0YCwgaXQgY2F1c2VzIHRoZSBjdXJzb3Igc3R5bGUgb2YgdGhlXG4gKiBkZWNyZW1lbnQgYnV0dG9uIHRvIGNoYW5nZSBmcm9tIGBkZWZhdWx0YCB0byBgdGV4dGAuXG4gKi9cblxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi8qKlxuICogMS4gQWRkcmVzcyBgYXBwZWFyYW5jZWAgc2V0IHRvIGBzZWFyY2hmaWVsZGAgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gKiAyLiBBZGRyZXNzIGBib3gtc2l6aW5nYCBzZXQgdG8gYGJvcmRlci1ib3hgIGluIFNhZmFyaSBhbmQgQ2hyb21lXG4gKiAgICAoaW5jbHVkZSBgLW1vemAgdG8gZnV0dXJlLXByb29mKS5cbiAqL1xuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8qIDEgKi9cbiAgLW1vei1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogMiAqL1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbn1cblxuLyoqXG4gKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgc2VhcmNoIGNhbmNlbCBidXR0b24gaW4gU2FmYXJpIGFuZCBDaHJvbWUgb24gT1MgWC5cbiAqIFNhZmFyaSAoYnV0IG5vdCBDaHJvbWUpIGNsaXBzIHRoZSBjYW5jZWwgYnV0dG9uIHdoZW4gdGhlIHNlYXJjaCBpbnB1dCBoYXNcbiAqIHBhZGRpbmcgKGFuZCBgdGV4dGZpZWxkYCBhcHBlYXJhbmNlKS5cbiAqL1xuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLyoqXG4gKiBEZWZpbmUgY29uc2lzdGVudCBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcuXG4gKi9cblxuZmllbGRzZXQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICBtYXJnaW46IDAgMnB4O1xuICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCBgY29sb3JgIG5vdCBiZWluZyBpbmhlcml0ZWQgaW4gSUUgOC85LzEwLzExLlxuICogMi4gUmVtb3ZlIHBhZGRpbmcgc28gcGVvcGxlIGFyZW4ndCBjYXVnaHQgb3V0IGlmIHRoZXkgemVybyBvdXQgZmllbGRzZXRzLlxuICovXG5cbmxlZ2VuZCB7XG4gIGJvcmRlcjogMDsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDgvOS8xMC8xMS5cbiAqL1xuXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiAqIERvbid0IGluaGVyaXQgdGhlIGBmb250LXdlaWdodGAgKGFwcGxpZWQgYnkgYSBydWxlIGFib3ZlKS5cbiAqIE5PVEU6IHRoZSBkZWZhdWx0IGNhbm5vdCBzYWZlbHkgYmUgY2hhbmdlZCBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYLlxuICovXG5cbm9wdGdyb3VwIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8qIFRhYmxlc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgbW9zdCBzcGFjaW5nIGJldHdlZW4gdGFibGUgY2VsbHMuXG4gKi9cblxudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDtcbn1cblxudGQsXG50aCB7XG4gIHBhZGRpbmc6IDA7XG59XG4iLCIvLyBjbGFzcyBhbmQgc2V0dGluZ3MgZm9yICBcclxuLy8gYSByZXNwb25zaXZlIGZvdW5kYXRpb25hbCBjb250ZW50IGNvbnRhaW5lclxyXG4uY29udGVudCB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4tbGFyZ2UpIHtcclxuICAgIEBpbmNsdWRlIGNvbnRhaW5lcigxNDAwcHgpO1xyXG4gICAgcGFkZGluZzogMjdweCA1MHB4O1xyXG4gIH1cclxuICBAbWVkaWEobWF4LXdpZHRoOiAkc2NyZWVuLW1lZGl1bS1tYXgpIHtcclxuICAgIEBpbmNsdWRlIGNvbnRhaW5lcigxMzAwcHgpO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBwYWRkaW5nOiAyNXB4IDMzcHg7XHJcbiAgfVxyXG4gIEBtZWRpYShtYXgtd2lkdGg6ICRzY3JlZW4tc21hbGwtbWF4KSB7XHJcbiAgICBAaW5jbHVkZSBjb250YWluZXIoOTUlKTtcclxuICAgIHBhZGRpbmc6IDE4cHggMjBweDtcclxuICB9XHJcbiAgQG1lZGlhKG1heC13aWR0aDogJHNjcmVlbi14cy1tYXgpIHtcclxuICAgIEBpbmNsdWRlIGNvbnRhaW5lcigxMDAlKTtcclxuICAgIHBhZGRpbmc6IDM1cHggMTBweDtcclxuICB9XHJcbiAgJjphZnRlciB7XHJcbiAgICBjb250ZW50OiAnJztcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgY2xlYXI6IGJvdGg7XHJcbiAgfVxyXG59XHJcbiIsIi8vIHJlbSBTdXBwb3J0XG4vLyA9PT09PT09PT09PVxuXG4vLyByZW1cbi8vIC0tLVxuLy8gQ2hlY2sgZm9yIGFuIGV4aXN0aW5nIHN1cHBvcnQgbWl4aW4sIG9yIG91dHB1dCBkaXJlY3RseS5cbi8vIC0gJHByb3AgIDogPGNzcyBwcm9wZXJ0eT5cbi8vIC0gJHZhbCAgIDogPGNzcyB2YWx1ZT5cbkBtaXhpbiBzdXN5LXJlbShcbiAgJHByb3AsXG4gICR2YWxcbikge1xuICAkX3JlcXM6IChcbiAgICB2YXJpYWJsZTogcmh5dGhtLXVuaXQgcmVtLXdpdGgtcHgtZmFsbGJhY2ssXG4gICAgbWl4aW46IHJlbSxcbiAgKTtcbiAgQGlmIHN1c3ktc3VwcG9ydChyZW0sICRfcmVxcywgJHdhcm46IGZhbHNlKSBhbmQgJHJoeXRobS11bml0ID09IHJlbSB7XG4gICAgQGluY2x1ZGUgcmVtKCRwcm9wLCAkdmFsKTtcbiAgfSBAZWxzZSB7XG4gICAgI3skcHJvcH06ICR2YWw7XG4gIH1cbn1cbiIsIi8vIENvbnRhaW5lciBTeW50YXhcbi8vID09PT09PT09PT09PT09PT1cblxuLy8gQ29udGFpbmVyIFttaXhpbl1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tXG4vLyBTZXQgYSBjb250YWluZXIgZWxlbWVudFxuLy8gLSBbJGxheW91dF0gIDogPHNldHRpbmdzPlxuQG1peGluIGNvbnRhaW5lcihcbiAgJGxheW91dDogJHN1c3lcbikge1xuICAkaW5zcGVjdCAgICA6ICRsYXlvdXQ7XG4gICRsYXlvdXQgICAgIDogcGFyc2UtZ3JpZCgkbGF5b3V0KTtcblxuICAkX3dpZHRoICAgICA6IGdldC1jb250YWluZXItd2lkdGgoJGxheW91dCk7XG4gICRfanVzdGlmeSAgIDogcGFyc2UtY29udGFpbmVyLXBvc2l0aW9uKHN1c3ktZ2V0KGNvbnRhaW5lci1wb3NpdGlvbiwgJGxheW91dCkpO1xuICAkX3Byb3BlcnR5ICA6IGlmKHN1c3ktZ2V0KG1hdGgsICRsYXlvdXQpID09IHN0YXRpYywgd2lkdGgsIG1heC13aWR0aCk7XG5cbiAgJF9ib3ggICAgICAgOiBzdXN5LWdldChib3gtc2l6aW5nLCAkbGF5b3V0KTtcblxuICBAaWYgJF9ib3gge1xuICAgIEBpbmNsdWRlIG91dHB1dCgoYm94LXNpemluZzogJF9ib3gpKTtcbiAgfVxuXG4gIEBpbmNsdWRlIHN1c3ktaW5zcGVjdChjb250YWluZXIsICRpbnNwZWN0KTtcbiAgQGluY2x1ZGUgZmxvYXQtY29udGFpbmVyKCRfd2lkdGgsICRfanVzdGlmeSwgJF9wcm9wZXJ0eSk7XG4gIEBpbmNsdWRlIHNob3ctZ3JpZCgkbGF5b3V0KTtcbn1cblxuLy8gQ29udGFpbmVyIFtmdW5jdGlvbl1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBSZXR1cm4gY29udGFpbmVyIHdpZHRoXG4vLyAtIFskbGF5b3V0XSAgOiA8c2V0dGluZ3M+XG5AZnVuY3Rpb24gY29udGFpbmVyKFxuICAkbGF5b3V0OiAkc3VzeVxuKSB7XG4gICRsYXlvdXQ6IHBhcnNlLWdyaWQoJGxheW91dCk7XG4gIEByZXR1cm4gZ2V0LWNvbnRhaW5lci13aWR0aCgkbGF5b3V0KTtcbn1cblxuLy8gR2V0IENvbnRhaW5lciBXaWR0aFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQ2FsY3VsYXRlIHRoZSBjb250YWluZXIgd2lkdGhcbi8vIC0gWyRsYXlvdXRdOiA8c2V0dGluZ3M+XG5AZnVuY3Rpb24gZ2V0LWNvbnRhaW5lci13aWR0aChcbiAgJGxheW91dDogJHN1c3lcbikge1xuICAkbGF5b3V0ICAgICAgICAgOiBwYXJzZS1ncmlkKCRsYXlvdXQpO1xuICAkX3dpZHRoICAgICAgICAgOiBzdXN5LWdldChjb250YWluZXIsICRsYXlvdXQpO1xuICAkX2NvbHVtbi13aWR0aCAgOiBzdXN5LWdldChjb2x1bW4td2lkdGgsICRsYXlvdXQpO1xuICAkX21hdGggICAgICAgICAgOiBzdXN5LWdldChtYXRoLCAkbGF5b3V0KTtcblxuICBAaWYgbm90KCRfd2lkdGgpIG9yICRfd2lkdGggPT0gYXV0byB7XG4gICAgQGlmIHZhbGlkLWNvbHVtbi1tYXRoKCRfbWF0aCwgJF9jb2x1bW4td2lkdGgpIHtcbiAgICAgICRfY29sdW1ucyAgIDogc3VzeS1nZXQoY29sdW1ucywgJGxheW91dCk7XG4gICAgICAkX2d1dHRlcnMgICA6IHN1c3ktZ2V0KGd1dHRlcnMsICRsYXlvdXQpO1xuICAgICAgJF9zcHJlYWQgICAgOiBpZihpcy1zcGxpdCgkbGF5b3V0KSwgd2lkZSwgbmFycm93KTtcbiAgICAgICRfd2lkdGggICAgIDogc3VzeS1zdW0oJF9jb2x1bW5zLCAkX2d1dHRlcnMsICRfc3ByZWFkKSAqICRfY29sdW1uLXdpZHRoO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJF93aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRfd2lkdGg7XG59XG5cbi8vIFBhcnNlIENvbnRhaW5lciBQb3NpdGlvblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBQYXJzZSB0aGUgJGNvbnRhaW5lci1wb3NpdGlvbiBpbnRvIG1hcmdpbiB2YWx1ZXMuXG4vLyAtIFskanVzdGlmeV0gICA6IGxlZnQgfCBjZW50ZXIgfCByaWdodCB8IDxsZW5ndGg+IFs8bGVuZ3RoPl1cbkBmdW5jdGlvbiBwYXJzZS1jb250YWluZXItcG9zaXRpb24oXG4gICRqdXN0aWZ5OiBtYXAtZ2V0KCRzdXN5LWRlZmF1bHRzLCBjb250YWluZXItcG9zaXRpb24pXG4pIHtcbiAgJF9yZXR1cm46IGlmKCRqdXN0aWZ5ID09IGxlZnQsIDAsIGF1dG8pIGlmKCRqdXN0aWZ5ID09IHJpZ2h0LCAwLCBhdXRvKTtcblxuICBAaWYgbm90KGluZGV4KGxlZnQgcmlnaHQgY2VudGVyLCAkanVzdGlmeSkpIHtcbiAgICAkX3JldHVybjogbnRoKCRqdXN0aWZ5LCAxKTtcbiAgICAkX3JldHVybjogJF9yZXR1cm4gaWYobGVuZ3RoKCRqdXN0aWZ5KSA+IDEsIG50aCgkanVzdGlmeSwgMiksICRfcmV0dXJuKTtcbiAgfVxuXG4gIEByZXR1cm4gJF9yZXR1cm47XG59XG4iLCIvLyBTdXN5IEZhbGxiYWNrIENsZWFyZml4XG4vLyA9PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy8gQ2xlYXJmaXhcbi8vIC0tLS0tLS0tXG4vLyBDaGVjayBmb3IgYW4gZXhpc3Rpbmcgc3VwcG9ydCBtaXhpbiwgb3IgcHJvdmlkZSBhIHNpbXBsZSBmYWxsYmFjay5cbkBtaXhpbiBzdXN5LWNsZWFyZml4IHtcbiAgQGlmIHN1c3ktc3VwcG9ydChjbGVhcmZpeCwgKG1peGluOiBjbGVhcmZpeCkpIHtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgfSBAZWxzZSB7XG4gICAgJjphZnRlciB7XG4gICAgICBjb250ZW50OiBcIiBcIjtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgY2xlYXI6IGJvdGg7XG4gICAgfVxuICB9XG59XG4iLCIqIHtcclxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG59XHJcblxyXG4vL1xyXG4vLyBUWVBFXHJcbi8vXHJcbi8vZ2VuZXJhbCB0eXBlIHN0eWxlc1xyXG5odG1sIHtcclxuICBjb2xvcjogJG1haW47XHJcbiAgZm9udC1mYW1pbHk6ICRmb250LXByaW1hcnk7XHJcbiAgZm9udC1zaXplOiAkZGVmYXVsdC1mb250LXNpemU7XHJcbiAgQG1lZGlhKG1heC13aWR0aDogJHNjcmVlbi1zbWFsbC1tYXgpIHtcclxuICAgIGZvbnQtc2l6ZTogJGRlZmF1bHQtZm9udC1zaXplICogLjk7XHJcbiAgfVxyXG59XHJcblxyXG4vL2xpbmtzXHJcbmEge1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICB0cmFuc2l0aW9uOiBjb2xvciAuMjVzO1xyXG4gICY6aG92ZXIge1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gIH1cclxuICAmOmZvY3VzIHtcclxuICAgIG91dGxpbmU6IG5vbmU7XHJcbiAgfVxyXG59XHJcblxyXG5oMSxcclxuaDIsXHJcbmgzLFxyXG5oNCxcclxuaDUsXHJcbmg2IHtcclxuICBtYXJnaW46IDEuNXJlbSAwO1xyXG59XHJcblxyXG4vL1xyXG4vLyBCQVNJQ1xyXG4vL1xyXG46OnNlbGVjdGlvbiB7XHJcbiAgYmFja2dyb3VuZDogI2IzZDRmYztcclxuICB0ZXh0LXNoYWRvdzogbm9uZTtcclxufVxyXG5cclxuaHIge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIGhlaWdodDogMXB4O1xyXG4gIG1hcmdpbjogMWVtIDA7XHJcbiAgcGFkZGluZzogMDtcclxuICBib3JkZXI6IDA7XHJcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7XHJcbn1cclxuXHJcbi8vXHJcbi8vIFJlbW92ZSB0aGUgZ2FwIGJldHdlZW4gYXVkaW8sIGNhbnZhcywgaWZyYW1lcyxcclxuLy8gaW1hZ2VzLCB2aWRlb3MgYW5kIHRoZSBib3R0b20gb2YgdGhlaXIgY29udGFpbmVyczpcclxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2g1YnAvaHRtbDUtYm9pbGVycGxhdGUvaXNzdWVzLzQ0MFxyXG4vL1xyXG5hdWRpbyxcclxuY2FudmFzLFxyXG5pZnJhbWUsXHJcbmltZyxcclxuc3ZnLFxyXG52aWRlbyB7XHJcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxufVxyXG5cclxuYnV0dG9uIHtcclxuICAmOmZvY3VzIHtcclxuICAgIG91dGxpbmU6IG5vbmU7XHJcbiAgfVxyXG59XHJcblxyXG4vL1xyXG4vLyBSZW1vdmUgZGVmYXVsdCBmaWVsZHNldCBzdHlsZXMuXHJcbi8vXHJcbmZpZWxkc2V0IHtcclxuICBtYXJnaW46IDA7XHJcbiAgcGFkZGluZzogMDtcclxuICBib3JkZXI6IDA7XHJcbn1cclxuXHJcbnRleHRhcmVhIHtcclxuICByZXNpemU6IHZlcnRpY2FsO1xyXG59XHJcblxyXG4lYnRuIHtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxufVxyXG4iLCIvL2dyaWQgY29uZmlnXHJcbiRzdXN5OiAoXHJcbiAgY29sdW1uczogMTIsXHJcbiAgZ3V0dGVyczogMS8yLFxyXG4gIG1hdGg6IGZsdWlkLFxyXG4gIGd1dHRlci1wb3NpdGlvbjogc3BsaXQsXHJcbiAgZ2xvYmFsLWJveC1zaXppbmc6IGJvcmRlci1ib3gsXHJcbik7XHJcblxyXG4vLyBDRE5cclxuJGNkbjogdW5xdW90ZSgnaHR0cDovL2xtaXN0YXRpYy5ibG9iLmNvcmUud2luZG93cy5uZXQvJyk7XHJcblxyXG4vL2ZvbnRzXHJcbiRmb250LXByaW1hcnk6ICdPcGVuIFNhbnMnLCBBcmlhbCwgc2Fucy1zZXJpZjtcclxuJGRlZmF1bHQtZm9udC1zaXplOiAxOHB4O1xyXG4kZGVmYXVsdC1mb250LWNvbG9yOiAjNjU2NTY1O1xyXG4kc2Vjb25kYXJ5LWZvbnQtY29sb3I6ICMyYzJjMmM7XHJcblxyXG4vL2NvbG9yc1xyXG4kbWFpbjogIzNjNGE1NTtcclxuJG9yYW5nZTogI2ZmOGUwMDtcclxuJGdyZWVuOiAjMmVjYzcxO1xyXG4keWVsbG93OiAjZmZlYTAwO1xyXG4kYmx1ZTogIzBmZjtcclxuJGxpbms6ICNkMzJkMjc7XHJcbiRuYXYtYmc6ICNmYWZhZmE7XHJcbiRsaWdodC1ncmV5OiAjM2M0YTU0O1xyXG4kZGFyay1ncmV5OiAjMmIyYjJiO1xyXG4kY29sb3ItYmc6ICNmNmY5ZmM7XHJcblxyXG4kYnRuLXJlZDogI2QzMmQyNztcclxuJGJ0bi1yZWQtaG92ZXI6ICNiZjJkMjg7XHJcbiRidG4tZ3JleTogIzNjNGE1NDtcclxuJGJ0bi1ncmV5LWhvdmVyOiAjMjkzNDNkO1xyXG5cclxuLy9icmVhay1wb2ludHMgaWYgbmVjZXNzYXJ5XHJcbiRzY3JlZW4teHM6IDQ4MHB4O1xyXG4kc2NyZWVuLXNtYWxsOiA3NjhweDtcclxuJHNjcmVlbi1tZWRpdW06IDk5MnB4O1xyXG4kc2NyZWVuLWxhcmdlLW1pZDogMTAyNXB4O1xyXG4kc2NyZWVuLWxhcmdlOiAxMzY2cHg7XHJcblxyXG4kc2NyZWVuLXhzLW1heDogKCRzY3JlZW4tc21hbGwgLSAxKTtcclxuJHNjcmVlbi1zbWFsbC1tYXg6ICgkc2NyZWVuLW1lZGl1bSAtIDEpO1xyXG4kc2NyZWVuLW1lZGl1bS1tYXg6ICgkc2NyZWVuLWxhcmdlIC0gMSk7XHJcblxyXG4vL3otaW5kZXgsIHNvIHlvdSBkb250IGhhdmUgdG8gd29ycnlcclxuJHotaW5kZXgtMTogMTAwO1xyXG4kei1pbmRleC0yOiAyMDA7XHJcbiR6LWluZGV4LTM6IDMwMDtcclxuJHotaW5kZXgtNDogNDAwO1xyXG4kei1pbmRleC01OiA1MDA7XHJcbiR6LWluZGV4LTY6IDYwMDtcclxuJHotaW5kZXgtNzogNzAwO1xyXG4kei1pbmRleC04OiA4MDA7XHJcbiR6LWluZGV4LTk6IDkwMDtcclxuJHotaW5kZXgtMTA6IDEwMDA7XHJcbiIsImhlYWRlciB7XHJcbiAgcG9zaXRpb246IGZpeGVkO1xyXG4gIHRvcDogMDtcclxuICBsZWZ0OiA1MCU7XHJcbiAgei1pbmRleDogMTAwO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogNThweDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIDApO1xyXG4gIGJveC1zaGFkb3c6IDAgMXB4IDJweCAwIHJnYmEoMCwgMCwgMCwgLjUpO1xyXG59XHJcblxyXG5oZWFkZXIgLmNvbnRlbnQge1xyXG4gIHBhZGRpbmctdG9wOiAwO1xyXG4gIHBhZGRpbmctYm90dG9tOiAwO1xyXG59XHJcblxyXG5oZWFkZXIgLmxvZ28ge1xyXG4gIEBpbmNsdWRlIHNwYW4oMik7XHJcbiAgcGFkZGluZzogMTcuNXB4IDA7XHJcbiAgaW1nIHtcclxuICAgIGhlaWdodDogMjFweDtcclxuICB9XHJcbiAgQG1lZGlhKG1heC13aWR0aDogJHNjcmVlbi1zbWFsbC1tYXgpIHtcclxuICAgIEBpbmNsdWRlIHNwYW4oNik7XHJcbiAgfVxyXG59XHJcblxyXG5uYXYge1xyXG4gIEBpbmNsdWRlIHNwYW4oMTApO1xyXG4gIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gIEBtZWRpYShtYXgtd2lkdGg6ICRzY3JlZW4tc21hbGwtbWF4KSB7XHJcbiAgICBAaW5jbHVkZSBzcGFuKGxhc3QgNik7XHJcbiAgfVxyXG4gIC5uYXYtbWVudSB7XHJcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gIH1cclxuICAudG9wLW1lbnUge1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgcGFkZGluZzogMDtcclxuICB9XHJcbn1cclxuXHJcbi5uYXYtbWVudSB7XHJcbiAgLm1lbnUtaXRlbSxcclxuICAubWVudS1idG4ge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIH1cclxuICAubWVudS1pdGVtIHtcclxuICAgICY6aG92ZXIge1xyXG4gICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgI2QzMmQyNztcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y2ZjZmNjtcclxuICAgIH1cclxuICB9XHJcbiAgYSB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHBhZGRpbmc6IDAgMWVtO1xyXG4gICAgY29sb3I6ICRkYXJrLWdyZXk7XHJcbiAgICBsaW5lLWhlaWdodDogNThweDtcclxuICAgICY6aG92ZXIge1xyXG4gICAgICBjb2xvcjogI2QzMmQyNztcclxuICAgIH1cclxuICB9XHJcbiAgLm1lbnUtYnRuIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHBhZGRpbmc6IDAgLjNlbTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcclxuICAgIC5idG4ge1xyXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgIG1pbi13aWR0aDogYXV0bztcclxuICAgICAgcGFkZGluZzogMCAxNXB4O1xyXG4gICAgICBib3JkZXItcmFkaXVzOiA0cHg7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAzOHB4O1xyXG4gICAgfVxyXG4gICAgYSB7XHJcbiAgICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgfVxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIGJvcmRlcjogMDtcclxuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICAgIGEge1xyXG4gICAgICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4ubW9iaWxlLW1lbnUge1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbiAgd2lkdGg6IGF1dG87XHJcbiAgaGVpZ2h0OiA1OHB4O1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL2Nkbi9oYW1idXJnZXItbWVudTIucG5nJyk7XHJcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQ7XHJcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbn1cclxuXHJcbi5vcGVuIHtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgbGVmdDogMDtcclxuICB3aWR0aDogMTAwJTtcclxuICBiYWNrZ3JvdW5kOiAjZmZmO1xyXG4gIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgYm94LXNoYWRvdzogMCAxcHggMnB4IDAgcmdiYSgwLCAwLCAwLCAuNSk7XHJcbiAgb3ZlcmZsb3cteTogYXV0bztcclxufVxyXG5cclxuLnNob3cge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG59XHJcblxyXG4uaGFzLWNoaWxkcmVuIHtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgPiBhIHtcclxuICAgIHBhZGRpbmctcmlnaHQ6IDMwcHg7XHJcbiAgICAmOmFmdGVyIHtcclxuICAgICAgY29udGVudDogJyc7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgdG9wOiAxOXB4O1xyXG4gICAgICByaWdodDogNXB4O1xyXG4gICAgICB3aWR0aDogMjRweDtcclxuICAgICAgaGVpZ2h0OiAyNHB4O1xyXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9jZG4vYXJyb3dfZG93bi5zdmcnKTtcclxuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICAgIH1cclxuICAgICY6aG92ZXIge1xyXG4gICAgICAmOmFmdGVyIHtcclxuICAgICAgICBjb250ZW50OiAnJztcclxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9jZG4vYXJyb3dfZG93bl9yZWQuc3ZnJyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgbGkgYTphZnRlciB7XHJcbiAgICBjb250ZW50OiAnJztcclxuICAgIGJhY2tncm91bmQ6IG5vbmU7XHJcbiAgfVxyXG4gIC5zdWItbWVudSB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiA1OHB4O1xyXG4gICAgbGVmdDogMDtcclxuICAgIHdpZHRoOiBhdXRvOyBcclxuICAgIG1pbi13aWR0aDogMTAwJTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRuYXYtYmc7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgdWwge1xyXG4gICAgICBwYWRkaW5nOiAwO1xyXG4gICAgfVxyXG4gICAgbGkge1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIGJvcmRlci1ib3R0b206IDA7XHJcbiAgICAgICY6aG92ZXIge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRidG4tcmVkO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBhIHtcclxuICAgICAgY29sb3I6ICRuYXYtYmc7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgICAgICY6aG92ZXIge1xyXG4gICAgICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAubWVudS1pdGVtIHtcclxuICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLnN1Yi1tZW51IHtcclxuICAmLnNob3cge1xyXG4gICAgbGkge1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIH1cclxuICAgIGEge1xyXG4gICAgICBwYWRkaW5nOiAwIDFlbTtcclxuICAgICAgY29sb3I6ICMyYjJiMmI7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiA1OHB4O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLm1vYmlsZS1uYXYge1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbiAgJi5vcGVuIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gIH1cclxuICAubWVudS1idG4sXHJcbiAgLm1lbnUtaXRlbSB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICB9XHJcbiAgLm1lbnUtYnRuIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XHJcbiAgfVxyXG4gIC5zdWItbWVudSB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB0b3A6IDA7XHJcbiAgICBtYXJnaW4tdG9wOiAwO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgIGEge1xyXG4gICAgICBwYWRkaW5nLWxlZnQ6IDQ1cHg7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC5tb2JpbGUtbWVudS1pdGVtIHtcclxuICAgIHBhZGRpbmctbGVmdDogMjBweDtcclxuICAgIGxpbmUtaGVpZ2h0OiAzOHB4O1xyXG4gIH1cclxuICAudG9wLW1lbnUge1xyXG4gICAgcGFkZGluZy1ib3R0b206IDE1cHg7XHJcbiAgfVxyXG4gIGEge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDI1cHg7XHJcbiAgICBsaW5lLWhlaWdodDogNDVweDtcclxuICB9XHJcbn1cclxuIiwiLy8gU3BhbiBTeW50YXhcbi8vID09PT09PT09PT09XG5cbi8vIFNwYW4gW21peGluXVxuLy8gLS0tLS0tLS0tLS0tXG4vLyBTZXQgYSBzcGFubmluZyBlbGVtZW50IHVzaW5nIHNob3J0aGFuZCBzeW50YXguXG4vLyAtICRzcGFuICA6IDxzcGFuPlxuQG1peGluIHNwYW4oXG4gICRzcGFuXG4pIHtcbiAgJGluc3BlY3Q6ICRzcGFuO1xuICAkc3BhbjogcGFyc2Utc3Bhbigkc3Bhbik7XG4gICRvdXRwdXQ6IHNwYW4tbWF0aCgkc3Bhbik7XG4gICRuZXN0aW5nOiBzdXN5LWdldChzcGFuLCAkc3Bhbik7XG4gICRjbGVhcjogc3VzeS1nZXQoY2xlYXIsICRzcGFuKTtcblxuICAkYm94OiBzdXN5LWdldChib3gtc2l6aW5nLCAkc3Bhbik7XG4gICRjb250ZW50LWJveDogaWYoc3VzeS1nZXQoZ2xvYmFsLWJveC1zaXppbmcpICE9ICdib3JkZXItYm94JywgdHJ1ZSwgZmFsc2UpO1xuICAkYm94OiAkYm94IG9yIGlmKGlzLWluc2lkZSgkc3BhbikgYW5kICRjb250ZW50LWJveCwgYm9yZGVyLWJveCwgbnVsbCk7XG5cbiAgQGlmICRjbGVhciA9PSBicmVhayB7XG4gICAgQGluY2x1ZGUgYnJlYWs7XG4gIH0gQGVsc2UgaWYgJGNsZWFyID09IG5vYnJlYWsge1xuICAgIEBpbmNsdWRlIG5vYnJlYWs7XG4gIH1cblxuICBAaW5jbHVkZSBzdXN5LWluc3BlY3Qoc3BhbiwgJGluc3BlY3QpO1xuICBAaW5jbHVkZSBvdXRwdXQoKGJveC1zaXppbmc6ICRib3gpKTtcbiAgQGluY2x1ZGUgZmxvYXQtc3Bhbi1vdXRwdXQoJG91dHB1dC4uLik7XG5cbiAgQGlmIHZhbGlkLWNvbHVtbnMoJG5lc3RpbmcsIHNpbGVudCkge1xuICAgIEBpbmNsdWRlIG5lc3RlZCgkc3BhbikgeyBAY29udGVudDsgfVxuICB9IEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBTcGFuIFtmdW5jdGlvbl1cbi8vIC0tLS0tLS0tLS0tLS0tLVxuLy8gUmV0dXJuIHRoZSB3aWR0aCBvZiBhIHNwYW4uXG4vLyAtICRzcGFuICA6IDxzcGFuPlxuQGZ1bmN0aW9uIHNwYW4oXG4gICRzcGFuXG4pIHtcbiAgQHJldHVybiBnZXQtc3Bhbi13aWR0aCgkc3Bhbik7XG59XG5cbi8vIFNwYW4gTWF0aFxuLy8gLS0tLS0tLS0tXG4vLyBHZXQgYWxsIHRoZSBzcGFuIHJlc3VsdHMuXG4vLyAtICRzcGFuOiA8bWFwPlxuQGZ1bmN0aW9uIHNwYW4tbWF0aChcbiAgJHNwYW5cbikge1xuICAkbmVzdCAgICAgICAgICAgICA6IGlmKHN1c3ktZ2V0KHJvbGUsICRzcGFuKSA9PSBuZXN0LCB0cnVlLCBmYWxzZSk7XG4gICRzcGxpdC1uZXN0ICAgICAgIDogaWYoaXMtc3BsaXQoJHNwYW4pIGFuZCAkbmVzdCwgdHJ1ZSwgZmFsc2UpO1xuICAkZWRnZSAgICAgICAgICAgICA6IGdldC1lZGdlKCRzcGFuKTtcbiAgJGxvY2F0aW9uICAgICAgICAgOiBnZXQtbG9jYXRpb24oJHNwYW4pO1xuXG4gICRmbG9hdCAgICAgICAgICAgIDogZnJvbTtcbiAgJHBhZGRpbmctYmVmb3JlICAgOiBudWxsO1xuICAkcGFkZGluZy1hZnRlciAgICA6IG51bGw7XG4gICRtYXJnaW4tYmVmb3JlICAgIDogbnVsbDtcbiAgJG1hcmdpbi1hZnRlciAgICAgOiBudWxsO1xuXG4gIC8vIGNhbGN1bGF0ZSB3aWR0aHNcbiAgJHNwcmVhZDogaW5kZXgobWFwLXZhbHVlcygkc3BhbiksIHNwcmVhZCk7XG4gICRzcGFuOiBpZigkc3BsaXQtbmVzdCBhbmQgbm90KCRzcHJlYWQpLCBtYXAtbWVyZ2UoJHNwYW4sIChzcHJlYWQ6IHdpZGUpKSwgJHNwYW4pO1xuICAkd2lkdGg6IGdldC1zcGFuLXdpZHRoKCRzcGFuKTtcbiAgJGd1dHRlcnM6IGdldC1ndXR0ZXJzKCRzcGFuKTtcblxuICAvLyBhcHBseSBndXR0ZXJzXG4gIEBpZiBpcy1pbnNpZGUoJHNwYW4pIHtcbiAgICBAaWYgbm90KHN1c3ktZ2V0KHJvbGUsICRzcGFuKSkge1xuICAgICAgJHBhZGRpbmctYmVmb3JlOiBtYXAtZ2V0KCRndXR0ZXJzLCBiZWZvcmUpO1xuICAgICAgJHBhZGRpbmctYWZ0ZXI6IG1hcC1nZXQoJGd1dHRlcnMsIGFmdGVyKTtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBpZiBub3QoJHNwbGl0LW5lc3QpIHtcbiAgICAgICRtYXJnaW4tYmVmb3JlOiBtYXAtZ2V0KCRndXR0ZXJzLCBiZWZvcmUpO1xuICAgICAgJG1hcmdpbi1hZnRlcjogbWFwLWdldCgkZ3V0dGVycywgYWZ0ZXIpO1xuICAgIH1cbiAgfVxuXG4gIC8vIHNwZWNpYWwgbWFyZ2luIGhhbmRsaW5nXG4gIEBpZiBzdXN5LWdldChvdXRwdXQsICRzcGFuKSA9PSBpc29sYXRlIGFuZCAkbG9jYXRpb24ge1xuICAgICRtYXJnaW4tYmVmb3JlOiBnZXQtaXNvbGF0aW9uKCRzcGFuKTtcbiAgICAkbWFyZ2luLWFmdGVyOiAtMTAwJTtcbiAgfSBAZWxzZSBpZiAkZWRnZSB7XG4gICAgJGlzLXNwbGl0OiBpcy1zcGxpdCgkc3Bhbik7XG4gICAgJHBvczogc3VzeS1nZXQoZ3V0dGVyLXBvc2l0aW9uLCAkc3Bhbik7XG5cbiAgICBAaWYgJGVkZ2UgPT0gbGFzdCB7XG4gICAgICAkZmxvYXQ6IHN1c3ktZ2V0KGxhc3QtZmxvdywgJHNwYW4pO1xuICAgIH1cblxuICAgIEBpZiBub3QoJGlzLXNwbGl0KSB7XG4gICAgICBAaWYgJGVkZ2UgPT0gZnVsbCBvciAoJGVkZ2UgPT0gZmlyc3QgYW5kICRwb3MgPT0gYmVmb3JlKSB7XG4gICAgICAgICRtYXJnaW4tYmVmb3JlOiAwO1xuICAgICAgfVxuICAgICAgQGlmICRlZGdlID09IGZ1bGwgb3IgKCRlZGdlID09IGxhc3QgYW5kICRwb3MgPT0gYWZ0ZXIpIHtcbiAgICAgICAgJG1hcmdpbi1hZnRlcjogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxuXG4gIEByZXR1cm4gKFxuICAgIHdpZHRoICAgICAgICAgICA6ICR3aWR0aCxcbiAgICBmbG9hdCAgICAgICAgICAgOiAkZmxvYXQsXG4gICAgbWFyZ2luLWJlZm9yZSAgIDogJG1hcmdpbi1iZWZvcmUsXG4gICAgbWFyZ2luLWFmdGVyICAgIDogJG1hcmdpbi1hZnRlcixcbiAgICBwYWRkaW5nLWJlZm9yZSAgOiAkcGFkZGluZy1iZWZvcmUsXG4gICAgcGFkZGluZy1hZnRlciAgIDogJHBhZGRpbmctYWZ0ZXIsXG4gICAgZmxvdyAgICAgICAgICAgIDogc3VzeS1nZXQoZmxvdywgJHNwYW4pLFxuICApO1xufVxuXG4vLyBHZXQgU3BhbiBXaWR0aFxuLy8gLS0tLS0tLS0tLS0tLS1cbi8vIFJldHVybiBzcGFuIHdpZHRoLlxuLy8gLSAkc3BhbjogPG1hcD5cbkBmdW5jdGlvbiBnZXQtc3Bhbi13aWR0aChcbiAgJHNwYW5cbikge1xuICAkc3BhbiAgICAgOiBwYXJzZS1zcGFuKCRzcGFuKTtcblxuICAkbiAgICAgICAgOiBzdXN5LWdldChzcGFuLCAkc3Bhbik7XG4gICRsb2NhdGlvbiA6IGdldC1sb2NhdGlvbigkc3Bhbik7XG4gICRjb2x1bW5zICA6IHN1c3ktZ2V0KGNvbHVtbnMsICRzcGFuKTtcbiAgJGd1dHRlcnMgIDogc3VzeS1nZXQoZ3V0dGVycywgJHNwYW4pO1xuICAkc3ByZWFkICAgOiBzdXN5LWdldChzcHJlYWQsICRzcGFuKTtcblxuICAkY29udGV4dCAgOiBudWxsO1xuICAkc3Bhbi1zdW0gOiBudWxsO1xuICAkd2lkdGggICAgOiBudWxsO1xuXG4gIEBpZiAkbiA9PSAnZnVsbCcge1xuICAgICRwb3M6IHN1c3ktZ2V0KGd1dHRlci1wb3NpdGlvbiwgJHNwYW4pO1xuICAgICRyb2xlOiBzdXN5LWdldChyb2xlLCAkc3Bhbik7XG4gICAgJG46IGlmKCRwb3MgPT0gc3BsaXQgYW5kICRyb2xlICE9IG5lc3QsIHN1c3ktY291bnQoJGNvbHVtbnMpLCAxMDAlKTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRuKSAhPSBudW1iZXIge1xuICAgIEB3YXJuIFwiKCN7dHlwZS1vZigkbil9KSAjeyRufSBpcyBub3QgYSB2YWxpZCBzcGFuLlwiO1xuICB9IEBlbHNlIGlmIHVuaXRsZXNzKCRuKSB7XG4gICAgJGNvbnRleHQ6IHN1c3ktc3VtKCRjb2x1bW5zLCAkZ3V0dGVycywgaWYoaXMtc3BsaXQoJHNwYW4pLCB3aWRlLCBuYXJyb3cpKTtcbiAgICAkc3ByZWFkOiBpZihpcy1pbnNpZGUoJHNwYW4pLCAkc3ByZWFkIG9yIHdpZGUsICRzcHJlYWQpO1xuICAgICRzcGFuLXN1bTogc3VzeSgkbiwgJGxvY2F0aW9uLCAkY29sdW1ucywgJGd1dHRlcnMsICRzcHJlYWQpO1xuXG4gICAgJF9tYXRoOiBzdXN5LWdldChtYXRoLCAkc3Bhbik7XG4gICAgJF9jb2x1bW4td2lkdGg6IHN1c3ktZ2V0KGNvbHVtbi13aWR0aCwgJHNwYW4pO1xuICAgIEBpZiAkX21hdGggPT0gc3RhdGljIHtcbiAgICAgICR3aWR0aDogJHNwYW4tc3VtICogdmFsaWQtY29sdW1uLW1hdGgoJF9tYXRoLCAkX2NvbHVtbi13aWR0aCk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkd2lkdGg6IHBlcmNlbnRhZ2UoJHNwYW4tc3VtIC8gJGNvbnRleHQpO1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgJHdpZHRoOiAkbjtcbiAgfVxuXG4gIEByZXR1cm4gJHdpZHRoO1xufVxuIiwiLy8gRGlyZWN0aW9uIEhlbHBlcnNcbi8vID09PT09PT09PT09PT09PT09XG5cbi8vIFN1c3kgRmxvdyBEZWZhdWx0c1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAtIFBSSVZBVEVcbkBpbmNsdWRlIHN1c3ktZGVmYXVsdHMoKFxuICBmbG93OiBsdHIsXG4pKTtcblxuLy8gR2V0IERpcmVjdGlvblxuLy8gLS0tLS0tLS0tLS0tLVxuLy8gUmV0dXJuIHRoZSAnZnJvbScgb3IgJ3RvJyBkaXJlY3Rpb24gb2YgYSBsdHIgb3IgcnRsIGZsb3cuXG4vLyAtIFskZmxvd10gIDogbHRyIHwgcnRsXG4vLyAtIFska2V5XSAgIDogZnJvbSB8IHRvXG5AZnVuY3Rpb24gZ2V0LWRpcmVjdGlvbihcbiAgJGZsb3c6IG1hcC1nZXQoJHN1c3ktZGVmYXVsdHMsIGZsb3cpLFxuICAka2V5OiBmcm9tXG4pIHtcbiAgJHJldHVybjogaWYoJGZsb3cgPT0gcnRsLCAoZnJvbTogcmlnaHQsIHRvOiBsZWZ0KSwgKGZyb206IGxlZnQsIHRvOiByaWdodCkpO1xuICBAcmV0dXJuIG1hcC1nZXQoJHJldHVybiwgJGtleSk7XG59XG5cbi8vIFRvXG4vLyAtLVxuLy8gUmV0dXJuIHRoZSAndG8nIGRpcmVjdGlvbiBvZiBhIGZsb3dcbi8vIC0gWyRmbG93XSAgOiBsdHIgfCBydGxcbkBmdW5jdGlvbiB0byhcbiAgJGZsb3c6IG1hcC1nZXQoJHN1c3ktZGVmYXVsdHMsIGZsb3cpXG4pIHtcbiAgQHJldHVybiBnZXQtZGlyZWN0aW9uKCRmbG93LCB0byk7XG59XG5cbi8vIEZyb21cbi8vIC0tLS1cbi8vIFJldHVybiB0aGUgJ2Zyb20nIGRpcmVjdGlvbiBvZiBhIGZsb3dcbi8vIC0gWyRmbG93XSAgOiBsdHIgfCBydGxcbkBmdW5jdGlvbiBmcm9tKFxuICAkZmxvdzogbWFwLWdldCgkc3VzeS1kZWZhdWx0cywgZmxvdylcbikge1xuICBAcmV0dXJuIGdldC1kaXJlY3Rpb24oJGZsb3csIGZyb20pO1xufVxuIiwiLy8gR3V0dGVyIFN5bnRheFxuLy8gPT09PT09PT09PT09PVxuXG5cbi8vIEd1dHRlcnNcbi8vIC0tLS0tLS1cbi8vIFNldCBndXR0ZXJzIG9uIGFuIGVsZW1lbnQuXG4vLyAtIFskc3Bhbl0gICA6IDxzZXR0aW5ncz5cbkBtaXhpbiBndXR0ZXJzKFxuICAkc3BhbjogJHN1c3lcbikge1xuICAkaW5zcGVjdCAgOiAkc3BhbjtcbiAgJHNwYW4gICAgIDogcGFyc2UtZ3V0dGVycygkc3Bhbik7XG4gICRfZ3V0dGVycyA6IGdldC1ndXR0ZXJzKCRzcGFuKTtcblxuICAkX291dHB1dDogKFxuICAgIGJlZm9yZTogbWFwLWdldCgkX2d1dHRlcnMsIGJlZm9yZSksXG4gICAgYWZ0ZXI6IG1hcC1nZXQoJF9ndXR0ZXJzLCBhZnRlciksXG4gICAgZmxvdzogc3VzeS1nZXQoZmxvdywgJHNwYW4pLFxuICApO1xuXG4gIEBpbmNsdWRlIHN1c3ktaW5zcGVjdChndXR0ZXJzLCAkaW5zcGVjdCk7XG5cbiAgQGlmIGlzLWluc2lkZSgkc3Bhbikge1xuICAgIEBpbmNsdWRlIHBhZGRpbmctb3V0cHV0KCRfb3V0cHV0Li4uKTtcbiAgfSBAZWxzZSB7XG4gICAgQGluY2x1ZGUgbWFyZ2luLW91dHB1dCgkX291dHB1dC4uLik7XG4gIH1cbn1cblxuQG1peGluIGd1dHRlcihcbiAgJHNwYW46ICRzdXN5XG4pIHtcbiAgQGluY2x1ZGUgZ3V0dGVycygkc3Bhbik7XG59XG5cblxuLy8gR3V0dGVyXG4vLyAtLS0tLS1cbi8vIFJldHVybiB0aGUgd2lkdGggb2YgYSBndXR0ZXIuXG4vLyAtIFskc3Bhbl0gICA6IDxzZXR0aW5ncz5cbkBmdW5jdGlvbiBndXR0ZXIoXG4gICRzcGFuOiAkc3VzeVxuKSB7XG4gICRzcGFuOiBwYXJzZS1ndXR0ZXJzKCRzcGFuKTtcblxuICAkX2d1dHRlcnM6IGdldC1ndXR0ZXJzKCRzcGFuKTtcbiAgJF9ndXR0ZXJzOiBtYXAtZ2V0KCRfZ3V0dGVycywgYmVmb3JlKSBvciBtYXAtZ2V0KCRfZ3V0dGVycywgYWZ0ZXIpO1xuXG4gIEByZXR1cm4gJF9ndXR0ZXJzO1xufVxuXG5AZnVuY3Rpb24gZ3V0dGVycyhcbiAgJHNwYW46ICRzdXN5XG4pIHtcbiAgQHJldHVybiBndXR0ZXIoJHNwYW4pO1xufVxuXG5cbi8vIEdldCBHdXR0ZXIgV2lkdGhcbi8vIC0tLS0tLS0tLS0tLS0tLS1cbi8vIFJldHVybiBndXR0ZXIgd2lkdGguXG4vLyAtIFskY29udGV4dF06IDxjb250ZXh0PlxuQGZ1bmN0aW9uIGdldC1ndXR0ZXItd2lkdGgoXG4gICRjb250ZXh0OiAkc3VzeVxuKSB7XG4gICRjb250ZXh0ICA6IHBhcnNlLWd1dHRlcnMoJGNvbnRleHQpO1xuXG4gICRfZ3V0dGVycyA6IHN1c3ktZ2V0KGd1dHRlcnMsICRjb250ZXh0KTtcbiAgJF9ndXR0ZXIgIDogc3VzeS1nZXQoZ3V0dGVyLW92ZXJyaWRlLCAkY29udGV4dCk7XG5cbiAgQGlmICRfZ3V0dGVycyBhbmQgKCRfZ3V0dGVycyA+IDApIGFuZCBub3QoJF9ndXR0ZXIpIHtcbiAgICAkX2NvbHVtbi13aWR0aDogc3VzeS1nZXQoY29sdW1uLXdpZHRoLCAkY29udGV4dCk7XG4gICAgJF9tYXRoOiBndXR0ZXItbWF0aCgkY29udGV4dCk7XG4gICAgQGlmICRfbWF0aCA9PSBzdGF0aWMge1xuICAgICAgJF9ndXR0ZXI6ICRfZ3V0dGVycyAqIHZhbGlkLWNvbHVtbi1tYXRoKCRfbWF0aCwgJF9jb2x1bW4td2lkdGgpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJF9jb2x1bW5zIDogc3VzeS1nZXQoY29sdW1ucywgJGNvbnRleHQpO1xuICAgICAgJF9zcHJlYWQgIDogaWYoaXMtc3BsaXQoJGNvbnRleHQpLCB3aWRlLCBzdXN5LWdldChzcHJlYWQsICRjb250ZXh0KSk7XG4gICAgICAkX2d1dHRlciAgOiBwZXJjZW50YWdlKCRfZ3V0dGVycyAvIHN1c3ktc3VtKCRfY29sdW1ucywgJF9ndXR0ZXJzLCAkX3NwcmVhZCkpO1xuICAgIH1cbiAgfVxuXG4gICRfZ3V0dGVyOiBpZigkX2d1dHRlciA9PSAnbm8tZ3V0dGVycycgb3IgJF9ndXR0ZXIgPT0gJ25vLWd1dHRlcicsIG51bGwsICRfZ3V0dGVyKTtcblxuICBAcmV0dXJuICRfZ3V0dGVyO1xufVxuXG5cbi8vIEdldCBHdXR0ZXJzXG4vLyAtLS0tLS0tLS0tLVxuLy8gUmV0dXJuIGJlZm9yZSBhbmQgYWZ0ZXIgZ3V0dGVyIHZhbHVlcy5cbi8vIC0gWyRjb250ZXh0XTogPGNvbnRleHQ+XG5AZnVuY3Rpb24gZ2V0LWd1dHRlcnMoXG4gICRjb250ZXh0OiAkc3VzeVxuKSB7XG4gICRjb250ZXh0ICAgICAgICAgICAgOiBwYXJzZS1ndXR0ZXJzKCRjb250ZXh0KTtcblxuICAkX2d1dHRlci1wb3NpdGlvbiAgIDogc3VzeS1nZXQoZ3V0dGVyLXBvc2l0aW9uLCAkY29udGV4dCk7XG4gICRfZ3V0dGVyICAgICAgICAgICAgOiBnZXQtZ3V0dGVyLXdpZHRoKCRjb250ZXh0KTtcblxuICAkX3JldHVybiAgICAgICAgICAgIDogKGJlZm9yZTogbnVsbCwgYWZ0ZXI6IG51bGwpO1xuXG4gIEBpZiBpcy1zcGxpdCgkY29udGV4dCkgYW5kICRfZ3V0dGVyIHtcbiAgICAkX2d1dHRlcjogJF9ndXR0ZXIgLyAyO1xuICAgICRfcmV0dXJuOiBtYXAtbWVyZ2UoJF9yZXR1cm4sIChiZWZvcmU6ICRfZ3V0dGVyLCBhZnRlcjogJF9ndXR0ZXIpKTtcbiAgfSBAZWxzZSB7XG4gICAgJF9yZXR1cm46IG1hcC1tZXJnZSgkX3JldHVybiwgKCRfZ3V0dGVyLXBvc2l0aW9uOiAkX2d1dHRlcikpO1xuICB9XG5cbiAgQHJldHVybiAkX3JldHVybjtcbn1cblxuXG4vLyBJcyBJbnNpZGVcbi8vIC0tLS0tLS0tLVxuLy8gUmV0dXJucyB0cnVlIGlmIGd1dHRlcnMgYXJlIGluc2lkZS5cbi8vICRjb250ZXh0OiA8Y29udGV4dD5cbkBmdW5jdGlvbiBpcy1pbnNpZGUoXG4gICRjb250ZXh0XG4pIHtcbiAgJF9pbnNpZGU6IGluc2lkZSBpbnNpZGUtc3RhdGljO1xuICAkX2d1dHRlci1wb3NpdGlvbjogc3VzeS1nZXQoZ3V0dGVyLXBvc2l0aW9uLCAkY29udGV4dCk7XG5cbiAgQHJldHVybiBpZihpbmRleCgkX2luc2lkZSwgJF9ndXR0ZXItcG9zaXRpb24pLCB0cnVlLCBmYWxzZSk7XG59XG5cblxuLy8gSXMgU3BsaXRcbi8vIC0tLS0tLS0tXG4vLyBSZXR1cm5zIHRydWUgaWYgZ3V0dGVycyBhcmUgc3BsaXQuXG4vLyAkY29udGV4dDogPGNvbnRleHQ+XG5AZnVuY3Rpb24gaXMtc3BsaXQoXG4gICRjb250ZXh0XG4pIHtcbiAgJF9zcGxpdDogc3BsaXQgaW5zaWRlIGluc2lkZS1zdGF0aWM7XG4gICRfZ3V0dGVyLXBvc2l0aW9uOiBzdXN5LWdldChndXR0ZXItcG9zaXRpb24sICRjb250ZXh0KTtcblxuICBAcmV0dXJuIGlmKGluZGV4KCRfc3BsaXQsICRfZ3V0dGVyLXBvc2l0aW9uKSwgdHJ1ZSwgZmFsc2UpO1xufVxuXG5cbi8vIEd1dHRlciBNYXRoXG4vLyAtLS0tLS0tLS0tLVxuLy8gUmV0dXJuIHRoZSBtYXRoIHRvIHVzZSBmb3IgZ3V0dGVyIGNhbGN1bGF0aW9uc1xuLy8gJGNvbnRleHQ6IDxjb250ZXh0PlxuQGZ1bmN0aW9uIGd1dHRlci1tYXRoKFxuICAkY29udGV4dDogJHN1c3lcbikge1xuICAkX3JldHVybiAgOiBzdXN5LWdldChtYXRoLCAkY29udGV4dCk7XG4gICRfcmV0dXJuICA6IGlmKHN1c3ktZ2V0KGd1dHRlci1wb3NpdGlvbiwgJGNvbnRleHQpID09IGluc2lkZS1zdGF0aWMsIHN0YXRpYywgJF9yZXR1cm4pO1xuXG4gIEByZXR1cm4gJF9yZXR1cm47XG59XG4iLCIucHJpY2UtY2FyZCB7XHJcbiAgQGluY2x1ZGUgc3Bhbig0KTtcclxuICBtYXJnaW4tdG9wOiAyNXB4O1xyXG4gIHBhZGRpbmc6IDJlbSAyLjVlbSAyLjVlbTtcclxuICBAbWVkaWEobWF4LXdpZHRoOiAxMTk3cHgpIHtcclxuICAgIHBhZGRpbmc6IDJlbSAxZW07XHJcbiAgfVxyXG4gIGJvcmRlci1yYWRpdXM6IDRweDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xyXG4gIEBtZWRpYShtYXgtd2lkdGg6IDEwMjVweCkge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgcGFkZGluZzogMmVtIDNlbTtcclxuICB9XHJcbiAgLnRvcCxcclxuICAuYm90IHtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAuYnRuIHtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIH1cclxuICB9XHJcbiAgLnRvcCBoMyB7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICB9XHJcbiAgLmJvdCB7XHJcbiAgICBwYWRkaW5nLXRvcDogLjVlbTtcclxuICAgIEBtZWRpYShtYXgtd2lkdGg6IDEwMjVweCkge1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIHJpZ2h0OiAyLjVlbTtcclxuICAgICAgYm90dG9tOiAzNXB4O1xyXG4gICAgICBsZWZ0OiAyLjVlbTtcclxuICAgIH1cclxuICAgIEBtZWRpYShtYXgtd2lkdGg6ICRzY3JlZW4tc21hbGwtbWF4KSB7XHJcbiAgICAgIGRpdiB7XHJcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICAgICAgQG1lZGlhKG1heC13aWR0aDogJHNjcmVlbi14cy1tYXgpIHtcclxuICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBAbWVkaWEobWF4LXdpZHRoOiAxMDI1cHgpIHtcclxuICAgIC5taWQge1xyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogNDBweDtcclxuICAgIH1cclxuICB9XHJcbiAgLm1pZCBwIHtcclxuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgyMik7XHJcbiAgICBtYXJnaW4tdG9wOiAxMnB4O1xyXG4gICAgY29sb3I6ICRidG4tcmVkO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgc3BhbiB7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgfVxyXG4gIH1cclxuICAubWlkIHAuaW5sY3VkZXMge1xyXG4gICAgcGFkZGluZzogMCAzMHB4O1xyXG4gICAgY29sb3I6ICM2NTY1NjU7XHJcbiAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgLmJvbGQge1xyXG4gICAgICBjb2xvcjogJGJ0bi1ncmV5O1xyXG4gICAgfVxyXG4gIH1cclxuICAubWlkIHVsIHtcclxuICAgIHBhZGRpbmctbGVmdDogMjVweDtcclxuICAgIGxpc3Qtc3R5bGUtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL2Nkbi9pbWctaWNvbi1jaGVjay5wbmcnKTtcclxuICAgIGxpIHtcclxuICAgICAgcGFkZGluZzogOHB4IDA7XHJcbiAgICAgIGZvbnQtc2l6ZTogMTZweDtcclxuICAgICAgbGluZS1oZWlnaHQ6IDEuMjtcclxuICAgIH1cclxuICB9XHJcbiAgQG1lZGlhKG1heC13aWR0aDogMTAyNXB4KSB7XHJcbiAgICBAaW5jbHVkZSBzcGFuKDYpO1xyXG4gIH1cclxuICBAbWVkaWEobWF4LXdpZHRoOiAkc2NyZWVuLXNtYWxsLW1heCkge1xyXG4gICAgLm1pZCB1bCB7XHJcbiAgICAgIHBhZGRpbmc6IDVweCA1cHggNXB4IDI1cHg7XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBtZWRpYShtYXgtd2lkdGg6ICRzY3JlZW4teHMtbWF4KSB7XHJcbiAgICBAaW5jbHVkZSBzcGFuKDEyKTtcclxuICAgIG1hcmdpbjogMTVweCAxNSU7XHJcbiAgICBwYWRkaW5nOiAxNXB4O1xyXG4gICAgLm1pZCB1bCB7XHJcbiAgICAgIHBhZGRpbmc6IDAgMCAxMCUgNDBweDtcclxuICAgICAgY29sdW1uLWNvdW50OiAxO1xyXG4gICAgfVxyXG4gIH1cclxuICBAbWVkaWEobWF4LXdpZHRoOiAkc2NyZWVuLXhzLW1heCkge1xyXG4gICAgbWFyZ2luOiAxNXB4IDEwcHg7XHJcbiAgfVxyXG59XHJcblxyXG4ucHJpY2UtY2FyZDpudGgtY2hpbGQoMiksXHJcbi5wcmljZS1jYXJkOm50aC1jaGlsZCgzKSxcclxuLnByaWNlLWNhcmQ6bnRoLWNoaWxkKDQpIHtcclxuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0IHRvcDtcclxuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gIGJhY2tncm91bmQtc2l6ZTogMzAlO1xyXG4gIEBtZWRpYShtYXgtd2lkdGg6IDEwMjVweCkge1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAyMCU7XHJcbiAgICBtYXJnaW4tbGVmdDogMjAlO1xyXG4gIH1cclxuICBAbWVkaWEobWF4LXdpZHRoOiAkc2NyZWVuLXhzKSB7XHJcbiAgICBtaW4td2lkdGg6IDMzNXB4O1xyXG4gICAgbWFyZ2luOiAxNXB4IDEwcHg7XHJcbiAgfVxyXG59XHJcblxyXG4ucHJpY2UtY2FyZDpudGgtY2hpbGQoMiksXHJcbi5wcmljZS1jYXJkOm50aC1jaGlsZCgzKSB7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWFnZXMvY2RuL2ltZy1ocC1wcmljaW5nLWJhZGdlLXBlcnNvbmFsLTJ4LnBuZycpO1xyXG59XHJcblxyXG4ucHJpY2UtY2FyZDpudGgtY2hpbGQoNCkge1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL2Nkbi9pbWctaHAtcHJpY2luZy1iYWRnZS1idXNpbmVzcy0yeC5wbmcnKTtcclxufVxyXG4iLCIvL1xyXG4vLyBGVU5DVElPTlNcclxuLy9cclxuXHJcbi8vQ3JlYXRlIHVuaXRsZXNzIG51bWJlciBmb3Igb3RoZXIgZnVuY3Rpb25zXHJcbkBmdW5jdGlvbiBzdHJpcC11bml0KCRudW1iZXIpIHtcclxuICBAaWYgdHlwZS1vZigkbnVtYmVyKT09J251bWJlcicgYW5kIG5vdCB1bml0bGVzcygkbnVtYmVyKSB7XHJcbiAgICBAcmV0dXJuICRudW1iZXIgLyAoJG51bWJlciAqIDAgKyAxKTtcclxuICB9XHJcbiAgQHJldHVybiAkbnVtYmVyO1xyXG59XHJcbi8vUGhvdG9zaG9wIGZvbnQgc2l6ZXMgdG8gcmVsYXRpdmUgdW5pdHNcclxuQGZ1bmN0aW9uIGNhbGN1bGF0ZS1yZW0oJHNpemUpIHtcclxuICAkcmVtLXNpemU6ICRzaXplIC8gc3RyaXAtdW5pdCgkZGVmYXVsdC1mb250LXNpemUpO1xyXG4gIEByZXR1cm4gI3skcmVtLXNpemV9cmVtO1xyXG59XHJcblxyXG4vL1xyXG4vLyBNSVhJTlNcclxuLy9cclxuXHJcbkBtaXhpbiBmb250LXNpemUoJHNpemUpIHtcclxuICBmb250LXNpemU6IGNhbGN1bGF0ZS1yZW0oJHNpemUpO1xyXG59XHJcblxyXG4vL0p1c3QgaW4gY2FzZVxyXG5AbWl4aW4gbGluZS1oZWlnaHQoJGZvbnQtc2l6ZSwgJGxlYWRpbmcpIHtcclxuICBsaW5lLWhlaWdodDogJGxlYWRpbmcgLyAkZm9udC1zaXplO1xyXG59XHJcblxyXG5AbWl4aW4ga2VybmluZy1zaXplKCR2YWx1ZSkge1xyXG4gIGxldHRlci1zcGFjaW5nOiAkdmFsdWUvMTAwMCtlbTtcclxufVxyXG5cclxuXHJcbi8vTWVkaWEgUXVlcmllc1xyXG5cclxuQG1peGluIHBob25lIHtcclxuICBAbWVkaWEgKG1heC13aWR0aDogI3skc2NyZWVuLXhzLW1heH0pIHtcclxuICAgIEBjb250ZW50O1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIHRhYmxldCB7XHJcbiAgQG1lZGlhIChtaW4td2lkdGg6ICN7JHNjcmVlbi1zbWFsbH0pIGFuZCAobWF4LXdpZHRoOiAjeyRzY3JlZW4tbWVkaXVtfSkge1xyXG4gICAgQGNvbnRlbnQ7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gZGVza3RvcCB7XHJcbiAgQG1lZGlhIChtaW4td2lkdGg6ICN7JHNjcmVlbi1tZWRpdW19KSB7XHJcbiAgICBAY29udGVudDtcclxuICB9XHJcbn1cclxuXHJcbi8vQnV0dG9uIE1peGluXHJcbkBtaXhpbiBidXR0b24tYmFzZSgkYnRuLWNvbG9yKSB7XHJcbiAgLy8lYnRuIGRlZmF1bHQgc3R5bGUgaW4gYmFzZS5zY3NzXHJcbiAgQGV4dGVuZCAlYnRuO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRidG4tY29sb3I7XHJcblxyXG4gICY6aG92ZXIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRidG4tY29sb3IsIDUlKTtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICB9XHJcbn1cclxuIiwiLnNvY2lhbCAuY29udGVudCB7XHJcbiAgcGFkZGluZzogaW5oZXJpdDtcclxufVxyXG5cclxuLnNvY2lhbCB1bCB7XHJcbiAgcGFkZGluZzogMDtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgbGkge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgcGFkZGluZzogMTVweDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgICBAbWVkaWEobWF4LXdpZHRoOiAkc2NyZWVuLXhzLW1heCkge1xyXG4gICAgICBwYWRkaW5nOiAwO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLnNvY2lhbCAuaWNvbiB7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIHdpZHRoOiA0MHB4O1xyXG4gIGhlaWdodDogNDBweDtcclxuICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2MwYzBjMDtcclxuICBib3gtc2hhZG93OiAwIDFweCAycHggMCByZ2JhKDAsIDAsIDAsIC4yNSk7XHJcbiAgJjpob3ZlciB7XHJcbiAgICBvcGFjaXR5OiAuNTtcclxuICAgIHN2ZyB7XHJcbiAgICAgIGZpbGw6ICMwMDA7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uc29jaWFsIHtcclxuICBzdmcge1xyXG4gICAgd2lkdGg6IDI1cHg7XHJcbiAgICBwYWRkaW5nLXRvcDogN3B4O1xyXG4gICAgZmlsbDogI2ZmZjtcclxuICB9XHJcbiAgLmZhY2Vib29rIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICMzYjU5OTg7XHJcbiAgfVxyXG4gIC50d2l0dGVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDg0YjQ7XHJcbiAgfVxyXG4gIC5nb29nbGVwbHVzIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNkZDRiMzk7XHJcbiAgfVxyXG4gIC5pbnN0YWdyYW0ge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzRjNjhkNztcclxuICB9XHJcbiAgLnlvdXR1YmUge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2U1MmQyNztcclxuICB9XHJcbiAgLmxpbmtlZGluIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDc3YjU7XHJcbiAgfVxyXG4gIC5zcGljZXdvcmtzIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmNTgyMjA7XHJcbiAgICBzdmcge1xyXG4gICAgICB3aWR0aDogNDVweDtcclxuICAgICAgbWFyZ2luLXRvcDogLTlweDtcclxuICAgICAgbWFyZ2luLWxlZnQ6IC0ycHg7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsImZvb3RlciB7XHJcbiAgLmNvbnRlbnQge1xyXG4gICAgcGFkZGluZzogaW5oZXJpdDtcclxuICB9XHJcbiAgLnRvcCB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFyay1ncmV5O1xyXG4gICAgYSB7XHJcbiAgICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC5ib3R0b20ge1xyXG4gICAgcGFkZGluZzogNXB4IDEwcHggIWltcG9ydGFudDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XHJcbiAgICBmb250LWZhbWlseTogJ09wZW4gU2Fucyc7XHJcbiAgICBmb250LXdlaWdodDogNDAwO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgYSB7XHJcbiAgICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLmNvbHVtbiB7XHJcbiAgQGluY2x1ZGUgc3BhbigyKTtcclxuICBAbWVkaWEobWF4LXdpZHRoOiAkc2NyZWVuLXNtYWxsLW1heCkge1xyXG4gICAgQGluY2x1ZGUgc3BhbigxMik7XHJcbiAgICBwYWRkaW5nOiAwIDEwcHg7XHJcbiAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICB1bCBsaSB7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgIHNwYW4ge1xyXG4gICAgICAgICAgbWFyZ2luOiA1cHggMTBweDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmZvb3RlciBoNSB7XHJcbiAgbWFyZ2luLXRvcDogMjVweDtcclxuICBtYXJnaW4tYm90dG9tOiAxNXB4O1xyXG4gIGNvbG9yOiAjZmZmO1xyXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbn1cclxuXHJcbmZvb3RlciB1bC5tZW51IHtcclxuICBwYWRkaW5nOiAwO1xyXG4gIGxpIHtcclxuICAgIG1hcmdpbjogMDtcclxuICB9XHJcbiAgQG1lZGlhKG1heC13aWR0aDogJHNjcmVlbi1zbWFsbC1tYXgpIHtcclxuICAgIGxpIHtcclxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgY29udGVudDogJ+KAoid4O1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiA1cHg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmZvb3RlciB1bC5saXN0LWltYWdlcyB7XHJcbiAgcGFkZGluZzogMDtcclxuICBsaSB7XHJcbiAgICBtYXJnaW46IDEwcHggMDtcclxuICB9XHJcbn1cclxuXHJcbi5saXN0LWltYWdlcyB7XHJcbiAgLmljb24tYXBwc3RvcmUge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgd2lkdGg6IDgzcHg7XHJcbiAgICBoZWlnaHQ6IDI0cHg7XHJcbiAgICBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9jZG4vYXBwX3N0b3JlLnBuZycpO1xyXG4gIH1cclxuICAuaWNvbi1nb29nbGVwbGF5IHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHdpZHRoOiA5NnB4O1xyXG4gICAgaGVpZ2h0OiAyOXB4O1xyXG4gICAgYmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvY2RuL2dvb2dsZV9wbGF5LnBuZycpO1xyXG4gIH1cclxuICAuaWNvbi13aW5kb3dzc3RvcmUge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgd2lkdGg6IDgzcHg7XHJcbiAgICBoZWlnaHQ6IDI4cHg7XHJcbiAgICBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9jZG4vd2luZG93c19zdG9yZS5wbmcnKTtcclxuICB9XHJcbn1cclxuXHJcbi5sYW5ndWFnZXMge1xyXG4gIEBpbmNsdWRlIHNwYW4oMTIpO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBtYXJnaW46IDAgMCAyNXB4O1xyXG4gIC5sYW5ndWFnZS1ob2xkZXIge1xyXG4gICAgLy9AaW5jbHVkZSBzcGFuKDIpO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBtYXgtd2lkdGg6IDE3NXB4O1xyXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICAgICY6aG92ZXIge1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjMyMzIzO1xyXG4gICAgfVxyXG4gIH1cclxuICBidXR0b24ge1xyXG4gICAgcGFkZGluZzogN3B4IDEycHg7XHJcbiAgICBib3JkZXI6IDA7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgfVxyXG4gICNsYW5nLWJ0bj4qIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgfVxyXG4gIC5pY29uLXdvcmxkIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHdpZHRoOiAyNXB4O1xyXG4gICAgaGVpZ2h0OiAyNXB4O1xyXG4gICAgYmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvY2RuL2ljb24td29ybGQtMngucG5nJykgbm8tcmVwZWF0O1xyXG4gICAgYmFja2dyb3VuZC1zaXplOiAyNXB4O1xyXG4gIH1cclxuICAubGFuZy10ZXh0IHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHBhZGRpbmctcmlnaHQ6IDhweDtcclxuICAgIHBhZGRpbmctbGVmdDogOHB4O1xyXG4gIH1cclxuICAuaWNvbi1jYXJldC11cCB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICB3aWR0aDogMDtcclxuICAgIGhlaWdodDogMDtcclxuICAgIG1hcmdpbi10b3A6IDNweDtcclxuICAgIGJvcmRlci1yaWdodDogNXB4IHNvbGlkIHRyYW5zcGFyZW50O1xyXG4gICAgYm9yZGVyLWJvdHRvbTogNXB4IHNvbGlkICNmZmY7XHJcbiAgICBib3JkZXItbGVmdDogNXB4IHNvbGlkIHRyYW5zcGFyZW50O1xyXG4gIH1cclxuICAubGFuZ3VhZ2VzLWRyb3Age1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGJvdHRvbTogMjFweDtcclxuICAgIHdpZHRoOiAxMzdweDtcclxuICAgIHBhZGRpbmc6IDE1cHggMDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICMyMzIzMjM7XHJcbiAgICBsaSB7XHJcbiAgICAgIHBhZGRpbmc6IDRweCAwIDAgNDBweDtcclxuICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgb3BhY2l0eTogLjY7XHJcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLmJ0biBhIHtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xyXG4gIGZvbnQtc2l6ZTogMTZweDtcclxuICBmb250LXdlaWdodDogNjAwO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAvL3doaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgYm94LXNoYWRvdzogMCAxcHggMnB4IDAgcmdiYSgwLCAwLCAwLCAuMjUpO1xyXG59XHJcblxyXG4uaGVybyAuYnRuIGEge1xyXG4gIHBhZGRpbmc6IDEzcHggMzVweDtcclxuICBmb250LXNpemU6IDIwcHg7XHJcbn1cclxuXHJcbm1haW4gLmJ0biBhIHtcclxuICBwYWRkaW5nOiAxM3B4IDMycHg7XHJcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xyXG59XHJcblxyXG4ucHJpY2VzIC5idG4gYSB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgcGFkZGluZzogMTBweCAwO1xyXG4gIGZvbnQtZmFtaWx5OiAnT3BlbiBTYW5zJztcclxuICBmb250LXdlaWdodDogNjAwO1xyXG59XHJcblxyXG4uYnRuLnJlZCBhLFxyXG4uYnRuLnJlZCB7XHJcbiAgYmFja2dyb3VuZDogJGJ0bi1yZWQ7XHJcbiAgY29sb3I6ICNmZmY7XHJcbiAgJjpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kOiAkYnRuLXJlZC1ob3ZlcjtcclxuICB9XHJcbn1cclxuXHJcbi5idG4uZ3JleSxcclxuLmJ0bi5ncmV5IGEge1xyXG4gIGJhY2tncm91bmQ6ICRidG4tZ3JleTtcclxuICBjb2xvcjogI2ZmZjtcclxuICAmOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQ6ICRidG4tZ3JleS1ob3ZlcjtcclxuICB9XHJcbn1cclxuXHJcbi5idG4ud2hpdGUsXHJcbi5idG4ud2hpdGUgYSB7XHJcbiAgYmFja2dyb3VuZDogI2ZmZjtcclxuICBjb2xvcjogJGJ0bi1ncmV5O1xyXG4gICY6aG92ZXIge1xyXG4gICAgYmFja2dyb3VuZDogJGJ0bi1ncmV5LWhvdmVyO1xyXG4gIH1cclxufVxyXG4iLCIuaGVybyB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMmVtO1xyXG4gIHBhZGRpbmctdG9wOiA3MnB4Oy8qY2hhbmdlIHRvIDYwcHggZm9yIHN5bmMgaHAgKi9cclxuICBAbWVkaWEgKG1heC13aWR0aDogJHNjcmVlbi14cykge1xyXG4gICAgcGFkZGluZy10b3A6IDcycHhcclxuICB9XHJcbn1cclxuXHJcbi5oZXJvIC5jb3B5IHtcclxuICBAaW5jbHVkZSBzcGFuKGZpcnN0IDQpO1xyXG4gIEBtZWRpYShtYXgtd2lkdGg6IDExNTVweCkge1xyXG4gICAgQGluY2x1ZGUgc3BhbihmaXJzdCA1KTtcclxuICB9XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogNTAlO1xyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcclxuICBwIHtcclxuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgyMik7XHJcbiAgfVxyXG4gIC5jdGEge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgYSB7XHJcbiAgICAgIGZvbnQtc2l6ZTogMjBweDtcclxuICAgIH1cclxuICAgIC5zbWFsbC10ZXh0IHtcclxuICAgICAgcGFkZGluZy10b3A6IDVweDtcclxuICAgICAgY29sb3I6ICM2NTY1NjU7XHJcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgIH1cclxuICB9XHJcbiAgQG1lZGlhKG1heC13aWR0aDogJHNjcmVlbi1zbWFsbC1tYXgpIHtcclxuICAgIEBpbmNsdWRlIHNwYW4oZmlyc3QgNik7XHJcbiAgfVxyXG4gIEBtZWRpYSAobWF4LXdpZHRoOiAkc2NyZWVuLXhzLW1heCkge1xyXG4gICAgQGluY2x1ZGUgc3BhbigxMik7XHJcbiAgICBwb3NpdGlvbjogaW5oZXJpdDtcclxuICAgIHRvcDogMDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIHRyYW5zZm9ybTogbm9uZTtcclxuICB9XHJcbn1cclxuXHJcbi5oZXJvIC5waWMge1xyXG4gIEBpbmNsdWRlIHNwYW4obGFzdCA4KTtcclxuICBAbWVkaWEobWF4LXdpZHRoOiAxMTU1cHgpIHtcclxuICAgIEBpbmNsdWRlIHNwYW4obGFzdCA3KTtcclxuICB9XHJcbiAgLy9hbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xyXG4gIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gIGltZyB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcbiAgQG1lZGlhKG1heC13aWR0aDogJHNjcmVlbi1zbWFsbC1tYXgpIHtcclxuICAgIEBpbmNsdWRlIHNwYW4obGFzdCA2KTtcclxuICB9XHJcbiAgQG1lZGlhKG1heC13aWR0aDogJHNjcmVlbi14cy1tYXgpIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG59XHJcblxyXG4uc2hvd2JveCB7XHJcbiAgcGFkZGluZzogMzBweCAzNXB4IDM3cHg7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAuMjUpO1xyXG4gIGJvcmRlci1yYWRpdXM6IDRweDtcclxuICBib3gtc2hhZG93OiAwIDFweCAycHggMCByZ2JhKDAsIDAsIDAsIC4yNSk7XHJcbiAgQG1lZGlhIChtYXgtd2lkdGg6ICRzY3JlZW4tc21hbGwtbWF4KSB7XHJcbiAgICBtYXJnaW46IDE1cHggMDtcclxuICAgIHBhZGRpbmc6IDE1cHg7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIC4yNSk7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lICFpbXBvcnRhbnQ7XHJcbiAgICBoMiB7XHJcbiAgICAgIHBhZGRpbmctdG9wOiAwO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLmZlYXR1cmVzIHtcclxuICAuZnVsbCBoMiB7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgfVxyXG4gIC5yb3cge1xyXG4gICAgQGluY2x1ZGUgc3BhbigxMik7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBwYWRkaW5nOiA1MHB4IDA7XHJcbiAgICAmOm50aC1jaGlsZCgyKSB7XHJcbiAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICBwYWRkaW5nLXRvcDogMzVweDtcclxuICAgIH1cclxuICAgIHAge1xyXG4gICAgICBiIHtcclxuICAgICAgICBmb250LWZhbWlseTogJ09wZW4gU2Fucyc7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgQG1lZGlhKG1heC13aWR0aDogJHNjcmVlbi1zbWFsbC1tYXgpIHtcclxuICAgICAgcGFkZGluZzogMjVweCAwO1xyXG4gICAgfVxyXG4gIH1cclxuICAuZm9ydHkge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiA1MCU7XHJcbiAgICBtYXJnaW4tbGVmdDogc3Bhbig3KTtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcclxuICB9XHJcbiAgLmZvcnR5LWZpcnN0IHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogNTAlO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xyXG4gIH1cclxuICBAbWVkaWEobWF4LXdpZHRoOiAkc2NyZWVuLXNtYWxsLW1heCkge1xyXG4gICAgLmZvcnR5LFxyXG4gICAgLmZvcnR5LWZpcnN0IHtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgdG9wOiAwO1xyXG4gICAgICBtYXJnaW4tbGVmdDogMDtcclxuICAgICAgdHJhbnNmb3JtOiBub25lO1xyXG4gICAgfVxyXG4gICAgaW1nIHtcclxuICAgICAgd2lkdGg6IDUwJTtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMTVweDtcclxuICAgIH1cclxuICB9XHJcbiAgQG1lZGlhKG1heC13aWR0aDogJHNjcmVlbi14cy1tYXgpIHtcclxuICAgIC5yb3cge1xyXG4gICAgICBwYWRkaW5nOiAyMHB4IDA7XHJcbiAgICB9XHJcbiAgICBpbWcge1xyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogMTVweDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5wcmljZXMge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRsaWdodC1ncmV5O1xyXG4gIGgyIHtcclxuICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIH1cclxufVxyXG5cclxuLnByaWNlcyAuY29udGVudCB7XHJcbiAgcGFkZGluZy10b3A6IDU1cHg7XHJcbiAgcGFkZGluZy1ib3R0b206IDU1cHg7XHJcbiAgQG1lZGlhKG1heC13aWR0aDogMTAyNXB4KSB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1mbG93OiByb3cgd3JhcDtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xyXG4gICAgaDIge1xyXG4gICAgICBmbGV4OiAxIDEwMCU7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uZGlzY2xhaW1lciB7XHJcbiAgQGluY2x1ZGUgc3BhbigxMik7XHJcbiAgbWFyZ2luLXRvcDogMjVweDtcclxuICBjb2xvcjogI2ZmZjtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn1cclxuIiwiLmJhbm5lciB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBoZWlnaHQ6IDQyNXB4O1xyXG4gIHBhZGRpbmctdG9wOiA3N3B4O1xyXG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgLmNvbnRlbnQge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgfVxyXG4gIC5jb3B5IHtcclxuICAgLy8gd2lkdGg6IDUwJTtcclxuICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gIH1cclxuICBoMSxcclxuICBwIHtcclxuICAgIGNvbG9yOiAjZmZmO1xyXG4gIH1cclxuICBAbWVkaWEobWF4LXdpZHRoOiAkc2NyZWVuLXNtYWxsLW1heCkge1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIHJpZ2h0O1xyXG4gICAgLmNvbnRlbnQge1xyXG4gICAgICBwYWRkaW5nLXRvcDogMjVweDtcclxuICAgICAgaDEge1xyXG4gICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSg0NCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC5jb3B5IHtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4udGhpcnR5IHtcclxuICBoMyB7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgfVxyXG59XHJcblxyXG4uZnVsbCB7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcblxyXG4ucG9kcyB7XHJcbiAgLnBvZCB7XHJcbiAgICBwYWRkaW5nOiAwIDM1cHg7XHJcbiAgfVxyXG4gIC5jaXJjbGUge1xyXG4gICAgd2lkdGg6IDIxMHB4O1xyXG4gICAgaGVpZ2h0OiAyMTBweDtcclxuICAgIG1hcmdpbjogMjBweCBhdXRvO1xyXG4gICAgQG1lZGlhKG1heC13aWR0aDogJHNjcmVlbi1zbWFsbC1tYXgpIHtcclxuICAgICAgd2lkdGg6IGF1dG87XHJcbiAgICAgIGhlaWdodDogYXV0bztcclxuICAgIH1cclxuICAgIEBtZWRpYShtYXgtd2lkdGg6ICRzY3JlZW4teHMtbWF4KSB7XHJcbiAgICAgIHdpZHRoOiAxNTBweDtcclxuICAgICAgaGVpZ2h0OiAxNTBweDtcclxuICAgIH1cclxuICAgIGltZyB7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLnZhdWx0IHtcclxuICAucm93Omxhc3QtY2hpbGQge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgcGFkZGluZzogMTQ1cHggMDtcclxuICAgIEBtZWRpYShtYXgtd2lkdGg6ICRzY3JlZW4teHMtbWF4KSB7XHJcbiAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC52YXVsdC1pbWFnZSB7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBpbWcge1xyXG4gICAgICB3aWR0aDogOTAlO1xyXG4gICAgICBtYXgtd2lkdGg6IDkyNXB4O1xyXG4gICAgfVxyXG4gICAgaW1nOmxhc3QtY2hpbGQge1xyXG4gICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG4gICAgQG1lZGlhKG1heC13aWR0aDogJHNjcmVlbi14cy1tYXgpIHtcclxuICAgICAgaW1nOmZpcnN0LWNoaWxkIHtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICB9XHJcbiAgICAgIGltZzpsYXN0LWNoaWxkIHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICAudG9wLWxpc3QsXHJcbiAgLmJvdHRvbS1saXN0IHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgICBsaSB7XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgd2lkdGg6IDMwJTtcclxuICAgICAgcGFkZGluZzogMCA0MHB4O1xyXG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xyXG4gICAgfVxyXG4gICAgQG1lZGlhKG1heC13aWR0aDogJHNjcmVlbi14cy1tYXgpIHtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICBsaSB7XHJcbiAgICAgICAgZGlzcGxheTogbGlzdC1pdGVtO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDogNDBweDtcclxuICAgICAgICBwIHtcclxuICAgICAgICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgIGNvbnRlbnQ6IGNvdW50ZXIoaXRlbSk7XHJcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICBsZWZ0OiAxNXB4O1xyXG4gICAgICAgICAgd2lkdGg6IDIzcHg7XHJcbiAgICAgICAgICBoZWlnaHQ6IDIzcHg7XHJcbiAgICAgICAgICBib3JkZXI6IDEwcHggc29saWQgI2QzMmQyNztcclxuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgICAgICAgIGJhY2tncm91bmQ6ICNkMzJkMjc7XHJcbiAgICAgICAgICBjb2xvcjogI2ZmZjtcclxuICAgICAgICAgIGZvbnQtZmFtaWx5OiAnT3BlbiBTYW5zJztcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMzJweDtcclxuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgICBjb3VudGVyLWluY3JlbWVudDogaXRlbTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgLnRvcC1saXN0IHtcclxuICAgIHRvcDogMDtcclxuICAgIEBtZWRpYShtYXgtd2lkdGg6ICRzY3JlZW4teHMtbWF4KSB7XHJcbiAgICAgIHRvcDogYXV0bztcclxuICAgICAgY291bnRlci1yZXNldDogaXRlbTtcclxuICAgIH1cclxuICB9XHJcbiAgLmJvdHRvbS1saXN0IHtcclxuICAgIEBtZWRpYShtYXgtd2lkdGg6ICRzY3JlZW4teHMtbWF4KSB7XHJcbiAgICAgIGNvdW50ZXItcmVzZXQ6IGxpO1xyXG4gICAgfVxyXG4gIH1cclxuICBoNSB7XHJcbiAgICBmb250LWZhbWlseTogJ09wZW4gU2Fucyc7XHJcbiAgICBmb250LXdlaWdodDogNzAwO1xyXG4gIH1cclxufVxyXG5cclxuLnNlY3VyaXR5IC5mdWxsIHtcclxuICBwIHtcclxuICAgIHdpZHRoOiA2NSU7XHJcbiAgICBtYXJnaW46IDAgYXV0bztcclxuICB9XHJcbn1cclxuXHJcbi5zZWN1cml0eS1ibG9jayB7XHJcbiAgQGluY2x1ZGUgc3Bhbig2KTtcclxuICBwYWRkaW5nOiAyNXB4O1xyXG4gIC5jaXJjbGUge1xyXG4gICAgQGluY2x1ZGUgc3Bhbig0KTtcclxuICAgIHdpZHRoOiAxNTBweDtcclxuICAgIGhlaWdodDogMTUwcHg7XHJcbiAgICBpbWcge1xyXG4gICAgICB3aWR0aDogOTAlO1xyXG4gICAgICBtYXJnaW46IDAgYXV0bztcclxuICAgIH1cclxuICB9XHJcbiAgLmJveC1jb250ZW50IHtcclxuICAgIEBpbmNsdWRlIHNwYW4oOCk7XHJcbiAgfVxyXG4gIEBtZWRpYShtYXgtd2lkdGg6ICRzY3JlZW4tc21hbGwtbWF4KSB7XHJcbiAgICBAaW5jbHVkZSBzcGFuKDEyKTtcclxuICB9XHJcbiAgLmNpcmNsZSxcclxuICAuYm94LWNvbnRlbnQge1xyXG4gICAgQGluY2x1ZGUgc3BhbigxMik7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgfVxyXG4gIC5jaXJjbGUgaW1nIHtcclxuICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgaGVpZ2h0OiAxNTBweDtcclxuICB9XHJcbn1cclxuIiwiLmlubmVyIHtcclxuICBwYWRkaW5nLXRvcDogMTAwcHg7XHJcbiAgaDIge1xyXG4gICAgbWFyZ2luLXRvcDogMTBweDtcclxuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XHJcbiAgfVxyXG4gIGg0IHtcclxuICAgIG1hcmdpbi1ib3R0b206IDI1cHg7XHJcbiAgfVxyXG4gIC5idG4ge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNDBweDtcclxuICB9XHJcbn1cclxuXHJcbi5mb3VyLW8tZm91ciB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgbWF4LXdpZHRoOiA0ODBweDtcclxufVxyXG4iLCIuYmFubmVyIHtcclxuICAvL2hlaWdodDogNDAwcHg7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2MwYzBjMDtcclxufVxyXG5cclxuLm9wdGlvbnMge1xyXG4gIC5jb250ZW50IHtcclxuICAgIHBhZGRpbmctdG9wOiAwO1xyXG4gICAgcGFkZGluZy1ib3R0b206IDA7XHJcbiAgICBib3JkZXItYm90dG9tOiAuNXB4IHNvbGlkICNjMGMwYzA7XHJcbiAgICAuZmlmdHkge1xyXG4gICAgICBwYWRkaW5nOiA0MHB4O1xyXG4gICAgfVxyXG4gICAgLmZpZnR5OmZpcnN0LWNoaWxkIHtcclxuICAgICAgYm9yZGVyLXJpZ2h0OiAuNXB4IHNvbGlkICNjMGMwYzA7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vL3NlY3VyaXR5IFxyXG5cclxuLmxlZnQtaW1hZ2UsIC5yaWdodC1jb250ZW50IHtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbn1cclxuXHJcbi5sZWZ0LWltYWdlIHtcclxuICBAaW5jbHVkZSBzcGFuKDQpO1xyXG59XHJcbi5yaWdodC1jb250ZW50IHtcclxuICBAaW5jbHVkZSBzcGFuKDgpO1xyXG4gIHRleHQtYWxpZ246IGxlZnQ7XHJcbn1cclxuXHJcbiIsIi5lbnRlcnByaXNldHJpYWwge1xyXG4gIHBhZGRpbmc6IDFlbSAwO1xyXG4gIGJhY2tncm91bmQtcG9zaXRpb246IDYwJSA1MCU7XHJcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG5cclxuICBhIHtcclxuICAgIGNvbG9yOiAjODFkNmUzO1xyXG4gICAgZm9udC1zaXplOiAxcmVtO1xyXG5cclxuICB9XHJcblxyXG4gIGgyLFxyXG4gIHAge1xyXG4gICAgY29sb3I6ICNmZmY7XHJcbiAgfVxyXG5cclxuICAuZnVsbCB7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gIH1cclxuXHJcbiAgLmJ0biB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIG1hcmdpbi1ib3R0b206IDFlbTtcclxuXHJcbiAgICBhIHtcclxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgI2ZmZiwgI2VlZSk7XHJcbiAgICAgIGNvbG9yOiAjM2M0YTU1O1xyXG4gICAgICBmb250LWZhbWlseTogJ29wZW5fc2Fuc2VtaWJvbGQnLCAnSGVsdmV0aWNhIE5ldWUnLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDJweCAwIHJnYmEoMCwgMCwgMCwgLjI1KTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5ub3RlcyB7XHJcbiAgcGFkZGluZzogMmVtIDA7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y2ZjlmYztcclxuXHJcbiAgaW1nIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxuXHJcbiAgLm5pbmV0eSB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIHdpZHRoOiA4OXZ3O1xyXG4gICAgbWF4LXdpZHRoOiA2NWVtO1xyXG4gIH1cclxuXHJcbiAgQG1lZGlhIChtYXgtd2lkdGg6ICRzY3JlZW4teHMtbWF4KSB7XHJcbiAgICAudGhpcnR5IHtcclxuICAgICAgZmxvYXQ6IG5vbmU7XHJcbiAgICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgIGltZyB7XHJcbiAgICAgICAgd2lkdGg6IDYwJTtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAxZW07XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAubmluZXR5IHtcclxuICAgICAgZGlzcGxheTogaW5pdGlhbDtcclxuICAgICAgd2lkdGg6IDkwJTtcclxuICAgIH1cclxuXHJcbiAgICBwIHtcclxuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgIH1cclxuXHJcbiAgICAuY29udGVudCB7XHJcbiAgICAgIHBhZGRpbmc6IDAgMTBweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5jb250ZW50IHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICB9XHJcbn1cclxuXHJcbi5oZXJvIHtcclxuICBAbWVkaWEgKG1pbi13aWR0aDogJHNjcmVlbi1sYXJnZS1taWQpIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDNlbTtcclxuICB9XHJcbiAgQG1lZGlhIChtaW4td2lkdGg6IDExODBweCkge1xyXG4gICAgbWFyZ2luLXRvcDogMWVtO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMS41ZW07XHJcbiAgfVxyXG4gIC8qLmNvbnRlbnQge1xyXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDEwMjRweCkge1xyXG4gICAgICBwYWRkaW5nLXRvcDogMDtcclxuICAgIH0qL1xyXG4gIC5jb3JlIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDEwMjRweCkge1xyXG4gICAgICBtYXJnaW4tdG9wOiAzLjVlbTtcclxuICAgIH1cclxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkc2NyZWVuLXhzLW1heCkge1xyXG4gICAgICBtYXJnaW4tdG9wOiAxLjVlbTtcclxuICAgIH1cclxuICB9XHJcbiAgLmZyZWVzeW5jIHtcclxuICAgIHotaW5kZXg6IDk5O1xyXG5cclxuICAgICY6YmVmb3JlIHtcclxuICAgICAgY29udGVudDogJyc7XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICB0b3A6IC41ZW07XHJcbiAgICAgIHdpZHRoOiA5MHB4O1xyXG4gICAgICBoZWlnaHQ6IDI1cHg7XHJcbiAgICAgIGJhY2tncm91bmQ6IHVybCgnLi4vaW1hZ2VzL2Nkbi9pbWctbm93LWZyZWUtaWNvbkAyeC5wbmcnKSBuby1yZXBlYXQ7XHJcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcclxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6ICRzY3JlZW4tc21hbGwtbWF4KSB7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAuNWVtO1xyXG4gICAgICB9XHJcbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAxMDI0cHgpIHtcclxuICAgICAgICB0b3A6IC4zNWVtO1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogLjVlbTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLXNtYWxsKSB7XHJcbiAgICAgIHRvcDogLjVlbTtcclxuICAgIH1cclxuXHJcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJHNjcmVlbi1sYXJnZS1taWQpIHtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICB0b3A6IGluaGVyaXQ7XHJcbiAgICAgIHJpZ2h0OiA1dnc7XHJcbiAgICAgIGJvdHRvbTogLS42ZW07XHJcbiAgICB9XHJcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogMTE4MHB4KSB7XHJcbiAgICAgIHJpZ2h0OiAtMTEuNWVtO1xyXG4gICAgICBib3R0b206IDEuM2VtO1xyXG4gICAgICB3aWR0aDogNTguODg4ODklO1xyXG4gICAgfVxyXG5cclxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAxMDI0cHgpIHtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICBib3R0b206IGluaXRpYWw7XHJcbiAgICAgIGxlZnQ6IGluaXRpYWw7XHJcbiAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcclxuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICB9XHJcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJHNjcmVlbi14cykge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcclxuICAgICAgZm9udC1zaXplOiAzdnc7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8qLmNvcHkge1xyXG4gICAgd2lkdGg6IDM1LjU1NTU2JTtcclxuICAgIHRyYW5zZm9ybTogaW5oZXJpdDtcclxuICAgIHBvc2l0aW9uOiBpbmhlcml0O1xyXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDEwODBweCkge1xyXG4gICAgICB3aWR0aDogNTAlO1xyXG4gICAgfVxyXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRzY3JlZW4teHMtbWF4KSB7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgfVxyXG4gIH1cclxuICAucGljIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGZsb2F0OiBub25lO1xyXG4gICAgd2lkdGg6IDU4Ljg4ODg5JTtcclxuICAgIG9yZGVyOiAyO1xyXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDEwODBweCkge1xyXG4gICAgICB3aWR0aDogNTAlO1xyXG4gICAgfVxyXG4gIH1cclxuICB9Ki9cclxufVxyXG5cclxuLy9DQVJPVVNFTC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuLm93bC1jYXJvdXNlbCxcclxuLm93bC1jYXJvdXNlbCAub3dsLWl0ZW0ge1xyXG4gIHBvc2l0aW9uOiBpbml0aWFsO1xyXG59XHJcblxyXG4ub3dsLWNhcm91c2VsIHtcclxuICBkaXNwbGF5OiBub25lO1xyXG4gIHotaW5kZXg6IDE7XHJcbiAgd2lkdGg6IDEwMCU7XHJcblxyXG4gIC5vd2wtc3RhZ2Uge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgLyotbXMtdG91Y2gtYWN0aW9uOnBhbi1ZKi9cclxuXHJcbiAgICAmOmFmdGVyIHtcclxuICAgICAgY29udGVudDogJy4nO1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xyXG4gICAgICBjbGVhcjogYm90aDtcclxuICAgICAgaGVpZ2h0OiAwO1xyXG4gICAgICBsaW5lLWhlaWdodDogMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5vd2wtc3RhZ2Utb3V0ZXIge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XHJcbiAgfVxyXG5cclxuICAub3dsLWl0ZW0ge1xyXG4gICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICBtaW4taGVpZ2h0OiAxcHg7XHJcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJHNjcmVlbi1tZWRpdW0pIHtcclxuICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgfVxyXG5cclxuICAgIGltZyB7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAxLjVlbTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5vd2wtZG90cy5kaXNhYmxlZCxcclxuICAub3dsLW5hdi5kaXNhYmxlZCB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxuXHJcbiAgLm93bC1kb3QsXHJcbiAgLm93bC1uYXYgLm93bC1uZXh0LFxyXG4gIC5vd2wtbmF2IC5vd2wtcHJldiB7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcclxuICB9XHJcblxyXG4gIC5vd2wtbG9hZGVkIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gIH1cclxuXHJcbiAgLm93bC1sb2FkaW5nIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgb3BhY2l0eTogMDtcclxuICB9XHJcblxyXG4gIC5vd2wtaGlkZGVuIHtcclxuICAgIG9wYWNpdHk6IDA7XHJcbiAgfVxyXG5cclxuICAub3dsLXJlZnJlc2ggLm93bC1pdGVtIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG5cclxuICAub3dsLWRyYWcgLm93bC1pdGVtIHtcclxuICAgIHVzZXItc2VsZWN0OiBub25lO1xyXG4gIH1cclxuXHJcbiAgLm93bC1pdGVtIHtcclxuICAgIC5vd2wtbGF6eSB7XHJcbiAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgLjRzIGVhc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAub3dsLXZpZGVvLXdyYXBwZXIge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgYmFja2dyb3VuZDogIzAwMDtcclxuICB9XHJcblxyXG4gICYub3dsLXJ0bCB7XHJcbiAgICBkaXJlY3Rpb246IHJ0bDtcclxuXHJcbiAgICAub3dsLWl0ZW0ge1xyXG4gICAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4ubm8tanMgLm93bC1jYXJvdXNlbCB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbn1cclxuXHJcbi5vd2wtaGVpZ2h0IHtcclxuICB0cmFuc2l0aW9uOiBoZWlnaHQgLjVzIGVhc2UtaW4tb3V0O1xyXG59XHJcblxyXG4vL0RPVFMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbi5vd2wtZG90cyB7XHJcbiAgLm93bC1kb3Qge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgem9vbTogMTtcclxuXHJcbiAgICBzcGFuIHtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIHdpZHRoOiAxNHB4O1xyXG4gICAgICBoZWlnaHQ6IDE0cHg7XHJcbiAgICAgIG1hcmdpbjogNXB4IDdweDtcclxuICAgICAgYm9yZGVyLXJhZGl1czogMzBweDtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzg4OTU5ZTtcclxuICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMnB4IDAgcmdiYSgwLCAwLCAwLCAuMjUpO1xyXG4gICAgfVxyXG5cclxuICAgICYuYWN0aXZlIHtcclxuICAgICAgc3BhbiB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgI2ZmNTU0ZiwgI2QzMmQyNyksIGxpbmVhci1ncmFkaWVudCgjZDMyZDI3LCAjZDMyZDI3KTtcclxuICAgICAgICBib3gtc2hhZG93OiAwIDFweCAycHggMCByZ2JhKDAsIDAsIDAsIC4yNSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgc3BhbiB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgI2ZmNTU0ZiwgI2QzMmQyNyksIGxpbmVhci1ncmFkaWVudCgjZDMyZDI3LCAjZDMyZDI3KTtcclxuICAgICAgICBib3gtc2hhZG93OiAwIDFweCAycHggMCByZ2JhKDAsIDAsIDAsIC4yNSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vVEhVTUJOQUlMUy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuLnRodW1icyB7XHJcbiAgLmFjdGl2ZSB7XHJcbiAgICAuaXRlbSB7XHJcbiAgICAgIHBhZGRpbmc6IDJlbTtcclxuICAgICAgY29sb3I6ICMzYzRhNTU7XHJcbiAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDZweCAwIHJnYmEoMCwgMCwgMCwgLjI1KTtcclxuICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLml0ZW0ge1xyXG4gICAgY29sb3I6ICM2NTY1NjU7XHJcbiAgICBmb250LXNpemU6IDE2cHg7XHJcblxyXG4gICAgaDMge1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAuNGVtO1xyXG4gICAgICBmb250LXNpemU6IDIycHg7XHJcblxyXG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogMTAyNHB4KSB7XHJcbiAgICAgICAgY29sb3I6ICMzYzRhNTU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuZnJlZSB7XHJcbiAgICAgIGgzIHtcclxuICAgICAgICAmOmFmdGVyIHtcclxuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICB0b3A6IC4yZW07XHJcbiAgICAgICAgICBsZWZ0OiAuNGVtO1xyXG4gICAgICAgICAgd2lkdGg6IDh2dztcclxuICAgICAgICAgIGhlaWdodDogMjVweDtcclxuICAgICAgICAgIGJhY2tncm91bmQ6IHVybCgnLi4vaW1hZ2VzL2Nkbi9pbWctbm93LWZyZWUtaWNvbkAyeC5wbmcnKSBuby1yZXBlYXQ7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogJHNjcmVlbi1sYXJnZS1taWQpIHtcclxuICAgICAgICAgIHRvcDogLjNlbTtcclxuICAgICAgICAgIHdpZHRoOiAxMXZ3O1xyXG4gICAgICAgIH1cclxuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogJHNjcmVlbi1zbWFsbCkge1xyXG4gICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcCB7XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgbWF4LXdpZHRoOiA0NTBweDtcclxuICAgICAgbWFyZ2luLXRvcDogMDtcclxuICAgICAgZm9udC1zaXplOiAxZW07XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRzY3JlZW4tbGFyZ2UtbWlkKSB7XHJcbiAgICAgIHBhZGRpbmc6IDJlbTtcclxuICAgICAgY29sb3I6ICMzYzRhNTU7XHJcbiAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDZweCAwIHJnYmEoMCwgMCwgMCwgLjI1KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5vbiB7XHJcbiAgICAuaXRlbSB7XHJcbiAgICAgIGNvbG9yOiAjM2M0YTU1O1xyXG5cclxuICAgICAgaDMge1xyXG4gICAgICAgIGNvbG9yOiAjZDMyZDI3O1xyXG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAxMDI0cHgpIHtcclxuICAgICAgICAgIGNvbG9yOiAjM2M0YTU1O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLnBpYyB7XHJcbiAgICBpbWcge1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5vd2wtZG90cyB7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgfVxyXG5cclxuICAmLm93bC1jYXJvdXNlbCB7XHJcbiAgICAub3dsLWl0ZW0ge1xyXG4gICAgICAmLmFjdGl2ZSB7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkc2NyZWVuLWxhcmdlLW1pZCkge1xyXG4gICAgICAgICYub24ge1xyXG4gICAgICAgICAgcCB7XHJcbiAgICAgICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAxMDI0cHgpIHtcclxuXHJcblxyXG4gICAgICAgICYub24ge1xyXG4gICAgICAgICAgcGFkZGluZzogMmVtO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRzY3JlZW4tbGFyZ2UtbWlkKSB7XHJcbiAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcclxuICAgICAgICBtYXgtd2lkdGg6IDUwMHB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMWVtO1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDYuNWVtO1xyXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICBib3gtc2hhZG93OiAwIDFweCAycHggMCByZ2JhKDAsIDAsIDAsIC4yNSk7XHJcblxyXG4gICAgICAgICYub24ge1xyXG4gICAgICAgICAgbWF4LXdpZHRoOiA1MjBweCAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgYm94LXNoYWRvdzogMCA0cHggNnB4IDAgcmdiYSgwLCAwLCAwLCAuMjUpO1xyXG5cclxuICAgICAgICAgIHAge1xyXG4gICAgICAgICAgICAmOmFmdGVyIHtcclxuICAgICAgICAgICAgICBjb250ZW50OiAnJztcclxuICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgICAgdG9wOiAxMCU7XHJcbiAgICAgICAgICAgICAgcmlnaHQ6IC0zZW07XHJcbiAgICAgICAgICAgICAgd2lkdGg6IDMwcHg7XHJcbiAgICAgICAgICAgICAgaGVpZ2h0OiAyNXB4O1xyXG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6IHVybCgnLi4vaW1hZ2VzL2Nkbi9pbWctY29udHJvbC1hcnJvdy5wbmcnKSBuby1yZXBlYXQ7XHJcbiAgICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAub3dsLXN0YWdlIHtcclxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLWxhcmdlLW1pZCkge1xyXG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgLm93bC1pdGVtIHtcclxuICAgICAgcGFkZGluZzogMCAxZW0gMWVtO1xyXG5cclxuICAgICAgLml0ZW0ge1xyXG4gICAgICAgIHBhZGRpbmc6IDJlbTtcclxuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDZweCAwIHJnYmEoMCwgMCwgMCwgLjI1KTtcclxuXHJcbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRzY3JlZW4tbGFyZ2UtbWlkKSB7XHJcbiAgICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgbWF4LXdpZHRoOiA0ODBweCAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNWVtO1xyXG4gICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGltZyB7XHJcbiAgICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogJHNjcmVlbi1sYXJnZS1taWQpIHtcclxuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICB0b3A6IDEwJTtcclxuICAgICAgICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgICAgICAgIHdpZHRoOiA1NSU7XHJcbiAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcclxuICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIC41cyBlYXNlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMjBweCkge1xyXG4gICAgICAgICAgICB3aWR0aDogNDd2dztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkc2NyZWVuLWxhcmdlLW1pZCkge1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYub24ge1xyXG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLWxhcmdlLW1pZCkge1xyXG4gICAgICAgICAgaW1nIHtcclxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgIHotaW5kZXg6IC0xO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLy9TTElERUJMT0NLLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4uc2xpZGUge1xyXG4gIG1hcmdpbjogMmVtIDA7XHJcblxyXG4gIGgzIHtcclxuICAgIGZvbnQtZmFtaWx5OiAnb3Blbl9zYW5zcmVndWxhcicsICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcclxuICB9XHJcblxyXG4gIC5mdWxsIHtcclxuICAgIGgyIHtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMS41ZW07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuY29udGVudCB7XHJcbiAgICBwYWRkaW5nOiAxZW07XHJcbiAgfVxyXG5cclxuICAuc2xpZGVyIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmb250LXNpemU6IC45ZW07XHJcbiAgfVxyXG5cclxuICAudGh1bWJzIHtcclxuICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcblxyXG4gICAgLm93bC1zdGFnZSB7XHJcbiAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuYmlnLWltYWdlcyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIHdpZHRoOiA1NyU7XHJcbiAgICBtYXJnaW4tbGVmdDogMyU7XHJcbiAgfVxyXG5cclxuICBAbWVkaWEgKG1heC13aWR0aDogJHNjcmVlbi1sYXJnZS1taWQpIHtcclxuICAgIC5zbGlkZXIge1xyXG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgfVxyXG5cclxuICAgIC50aHVtYnMge1xyXG4gICAgICBvcmRlcjogMjtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcblxyXG4gICAgICAub3dsLXN0YWdlIHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5iaWctaW1hZ2VzIHtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4ub3dsLXdyYXBwZXIge1xyXG4gIEBtZWRpYSAobWF4LXdpZHRoOiAkc2NyZWVuLWxhcmdlLW1pZCkge1xyXG4gICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgfVxyXG59XHJcblxyXG4ucXVvdGVzIHtcclxuICBwIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgbWF4LXdpZHRoOiA3ODBweDtcclxuICAgIG1hcmdpbjogMS41ZW0gYXV0bztcclxuICAgIGNvbG9yOiAjNDA0MDQwO1xyXG4gICAgZm9udC1zaXplOiAyMHB4O1xyXG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuNzM7XHJcbiAgfVxyXG5cclxuICBzcGFuIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMWVtO1xyXG4gICAgY29sb3I6ICM0MDQwNDA7XHJcbiAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgICBmb250LXdlaWdodDogNjAwO1xyXG4gIH1cclxufVxyXG4iLCJib2R5IHtcclxuICBmb250OiAxNnB4ICdPcGVuIFNhbnMnLCBzYW5zLXNlcmlmO1xyXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xyXG59XHJcblxyXG4ubGlnaHQge1xyXG4gIGZvbnQtd2VpZ2h0OiAzMDA7XHJcbn1cclxuXHJcbi5yZWd1bGFyIHtcclxuICBmb250LXdlaWdodDogNDAwO1xyXG59XHJcblxyXG4uc2VtaS1ib2xkIHtcclxuICBmb250LXdlaWdodDogNjAwO1xyXG59XHJcblxyXG5iLFxyXG5zdHJvbmcsXHJcbi5ib2xkIHtcclxuICBmb250LXdlaWdodDogNzAwO1xyXG59XHJcblxyXG4uemVicmEge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1iZztcclxufVxyXG5cclxuLmNvbnRlbnQge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxufVxyXG5cclxuYSB7XHJcbiAgY29sb3I6ICRsaW5rO1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICA6aG92ZXIge1xyXG4gICAgY29sb3I6ICRsaWdodC1ncmV5O1xyXG4gIH1cclxufVxyXG5cclxucCB7XHJcbiAgQGluY2x1ZGUgZm9udC1zaXplKDE4KTtcclxuICBjb2xvcjogJG1haW47XHJcbiAgbGluZS1oZWlnaHQ6IDEuNjtcclxufVxyXG5cclxuLnNtYWxsLXRleHQge1xyXG4gIEBpbmNsdWRlIGZvbnQtc2l6ZSgxNik7XHJcbn1cclxuXHJcbi5jZW50ZXIge1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxufVxyXG5cclxuLnNob3cge1xyXG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5oaWRlIHtcclxuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbnVsIHtcclxuICBsaXN0LXN0eWxlOiBub25lO1xyXG59XHJcblxyXG5oMSxcclxuaDIsXHJcbmgzLFxyXG5oNCxcclxuaDUge1xyXG4gIG1hcmdpbjogMDtcclxuICBjb2xvcjogIzNjNGE1NTtcclxuICBmb250LXdlaWdodDogNDAwO1xyXG4gIGxpbmUtaGVpZ2h0OiAxLjI1O1xyXG59XHJcblxyXG5oMSB7XHJcbiAgQGluY2x1ZGUgZm9udC1zaXplKDQ2KTtcclxufVxyXG5cclxuaDIge1xyXG4gIEBpbmNsdWRlIGZvbnQtc2l6ZSgzMik7XHJcbn1cclxuXHJcbmgzIHtcclxuICBAaW5jbHVkZSBmb250LXNpemUoMjgpO1xyXG59XHJcblxyXG5oNCB7XHJcbiAgQGluY2x1ZGUgZm9udC1zaXplKDIyKTtcclxufVxyXG5cclxuaDUge1xyXG4gIEBpbmNsdWRlIGZvbnQtc2l6ZSgxOCk7XHJcbn1cclxuXHJcbi5mdWxsIHtcclxuICBAaW5jbHVkZSBzcGFuKDEyKTtcclxufVxyXG5cclxuLnRoaXJ0eSB7XHJcbiAgQGluY2x1ZGUgc3Bhbig0KTtcclxufVxyXG5cclxuLmZpZnR5IHtcclxuICBAaW5jbHVkZSBzcGFuKDYpO1xyXG59XHJcblxyXG4uc2l4dHkge1xyXG4gIEBpbmNsdWRlIHNwYW4oNi42KTtcclxufVxyXG5cclxuLnNpeHR5LWxhc3Qge1xyXG4gIEBpbmNsdWRlIHNwYW4obGFzdCA2LjYpO1xyXG59XHJcblxyXG4uc2V2ZW50eSB7XHJcbiAgQGluY2x1ZGUgc3Bhbig3KTtcclxufVxyXG5cclxuLm5pbmV0eSB7XHJcbiAgQGluY2x1ZGUgc3Bhbig5KTtcclxufVxyXG5cclxuLmZvcnR5LWZpcnN0IHtcclxuICBAaW5jbHVkZSBzcGFuKGZpcnN0IDUuNCk7XHJcbn1cclxuXHJcbi5mb3J0eSB7XHJcbiAgQGluY2x1ZGUgc3Bhbig1LjQpO1xyXG59XHJcblxyXG4uc2l4dHkgaW1nLFxyXG4uc2l4dHktbGFzdCBpbWcge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG5AbWVkaWEobWF4LXdpZHRoOiAkc2NyZWVuLXhzLW1heCkge1xyXG4gIC50aGlydHksXHJcbiAgLmZpZnR5LFxyXG4gIC5zaXh0eSxcclxuICAuc2l4dHktbGFzdCxcclxuICAuc2V2ZW50eSxcclxuICAuZm9ydHksXHJcbiAgLmZvcnR5LWZpcnN0IHtcclxuICAgIEBpbmNsdWRlIHNwYW4oMTIpO1xyXG4gICAgLy9wYWRkaW5nOiAwIDEuNmVtO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgaW1nIHtcclxuICAgICAgd2lkdGg6IDc1JTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBtZWRpYShtYXgtd2lkdGg6ICRzY3JlZW4teHMtbWF4KSB7XHJcbiAgLnRoaXJ0eSB7XHJcbiAgICBAaW5jbHVkZSBzcGFuKDEyKTtcclxuICB9XHJcbn1cclxuXHJcbi5ub3ctZnJlZSB7XHJcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XHJcbiAgcGFkZGluZzogM3B4IDEwcHg7XHJcbiAgYm9yZGVyOiAyLjVweCBzb2xpZCAkZ3JlZW47XHJcbiAgYm9yZGVyLXJhZGl1czogMjVweDtcclxuICBjb2xvcjogJGdyZWVuO1xyXG4gIGZvbnQtZmFtaWx5OiAnT3BlbiBTYW5zJztcclxuICBmb250LXNpemU6IDEycHg7XHJcbiAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG59XHJcblxyXG4udGhhbmtzLWZyYW1lIHtcclxuICBkaXNwbGF5OiBub25lO1xyXG4gIHBvc2l0aW9uOiBmaXhlZDtcclxuICB0b3A6IDA7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgYm90dG9tOiAwO1xyXG4gIGxlZnQ6IDA7XHJcbiAgei1pbmRleDogMTAwMDtcclxuICBwYWRkaW5nLXRvcDogMTVweDtcclxuICBib3JkZXI6IDA7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAuOTUpO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAucHJvZ3Jlc3Mge1xyXG4gICAgd2lkdGg6IDM1MHB4ICFpbXBvcnRhbnQ7XHJcbiAgICBtYXJnaW4tdG9wOiAyMDBweCAhaW1wb3J0YW50O1xyXG4gIH1cclxuICBoMiB7XHJcbiAgICBwYWRkaW5nLXRvcDogMzBweCFpbXBvcnRhbnQ7XHJcbiAgfVxyXG59XHJcblxyXG4ubGF1bmNoLWFwcCB7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ== */
