/*! normalize.css v3.0.1 | MIT License | 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,
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: 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 {
  -moz-box-sizing: content-box;
  -webkit-box-sizing: content-box;
  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"] {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  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 */
  -moz-box-sizing: content-box;
  -webkit-box-sizing: content-box;
  /* 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-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;
}

/**
 * Swiper 3.3.1
 * Most modern mobile touch slider and framework with hardware accelerated transitions
 * 
 * http://www.idangero.us/swiper/
 * 
 * Copyright 2016, Vladimir Kharlampidi
 * The iDangero.us
 * http://www.idangero.us/
 * 
 * Licensed under MIT
 * 
 * Released on: February 7, 2016
 */
.swiper-container {
  margin: 0 auto;
  position: relative;
  overflow: hidden;
  /* Fix of Webkit flickering */
  z-index: 1;
}

.swiper-container-no-flexbox .swiper-slide {
  float: left;
}

.swiper-container-vertical > .swiper-wrapper {
  -webkit-box-orient: vertical;
  -ms-flex-direction: column;
  -webkit-flex-direction: column;
  flex-direction: column;
}

.swiper-wrapper {
  position: relative;
  width: 100%;
  height: 100%;
  z-index: 1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -webkit-transition-property: -webkit-transform;
  transition-property: transform;
  -webkit-box-sizing: content-box;
  -moz-box-sizing: content-box;
  box-sizing: content-box;
}

.swiper-container-android .swiper-slide,
.swiper-wrapper {
  -webkit-transform: translate3d(0px, 0, 0);
  -ms-transform: translate3d(0px, 0, 0);
  transform: translate3d(0px, 0, 0);
}

.swiper-container-multirow > .swiper-wrapper {
  -webkit-box-lines: multiple;
  -moz-box-lines: multiple;
  -ms-flex-wrap: wrap;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
}

.swiper-container-free-mode > .swiper-wrapper {
  -webkit-transition-timing-function: ease-out;
  transition-timing-function: ease-out;
  margin: 0 auto;
}

.swiper-slide {
  -webkit-flex-shrink: 0;
  -ms-flex: 0 0 auto;
  -webkit-flex-shrink: 0;
  -ms-flex-negative: 0;
  flex-shrink: 0;
  width: 100%;
  height: 100%;
  position: relative;
}

/* Auto Height */
.swiper-container-autoheight,
.swiper-container-autoheight .swiper-slide {
  height: auto;
}

.swiper-container-autoheight .swiper-wrapper {
  -webkit-box-align: start;
  -ms-flex-align: start;
  -webkit-align-items: flex-start;
  align-items: flex-start;
  -webkit-transition-property: -webkit-transform, height;
  transition-property: transform, height;
}

/* a11y */
.swiper-container .swiper-notification {
  position: absolute;
  left: 0;
  top: 0;
  pointer-events: none;
  opacity: 0;
  z-index: -1000;
}

/* IE10 Windows Phone 8 Fixes */
.swiper-wp8-horizontal {
  -ms-touch-action: pan-y;
  touch-action: pan-y;
}

.swiper-wp8-vertical {
  -ms-touch-action: pan-x;
  touch-action: pan-x;
}

/* Arrows */
.swiper-button-prev,
.swiper-button-next {
  position: absolute;
  top: 50%;
  width: 27px;
  height: 44px;
  margin-top: -22px;
  z-index: 10;
  cursor: pointer;
  -webkit-background-size: 27px 44px;
  background-size: 27px 44px;
  background-position: center;
  background-repeat: no-repeat;
}

.swiper-button-prev.swiper-button-disabled,
.swiper-button-next.swiper-button-disabled {
  opacity: 0.35;
  cursor: auto;
  pointer-events: none;
}

.swiper-button-prev,
.swiper-container-rtl .swiper-button-next {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23007aff'%2F%3E%3C%2Fsvg%3E");
  left: 10px;
  right: auto;
}

.swiper-button-prev.swiper-button-black,
.swiper-container-rtl .swiper-button-next.swiper-button-black {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23000000'%2F%3E%3C%2Fsvg%3E");
}

.swiper-button-prev.swiper-button-white,
.swiper-container-rtl .swiper-button-next.swiper-button-white {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E");
}

.swiper-button-next,
.swiper-container-rtl .swiper-button-prev {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23007aff'%2F%3E%3C%2Fsvg%3E");
  right: 10px;
  left: auto;
}

.swiper-button-next.swiper-button-black,
.swiper-container-rtl .swiper-button-prev.swiper-button-black {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23000000'%2F%3E%3C%2Fsvg%3E");
}

.swiper-button-next.swiper-button-white,
.swiper-container-rtl .swiper-button-prev.swiper-button-white {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E");
}

/* Pagination Styles */
.swiper-pagination {
  position: absolute;
  text-align: center;
  -webkit-transition: 300ms;
  transition: 300ms;
  -webkit-transform: translate3d(0, 0, 0);
  -ms-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
  z-index: 10;
}

.swiper-pagination.swiper-pagination-hidden {
  opacity: 0;
}

/* Common Styles */
.swiper-pagination-fraction,
.swiper-pagination-custom,
.swiper-container-horizontal > .swiper-pagination-bullets {
  bottom: 10px;
  left: 0;
  width: 100%;
}

/* Bullets */
.swiper-pagination-bullet {
  width: 8px;
  height: 8px;
  display: inline-block;
  border-radius: 100%;
  background: #000;
  opacity: 0.2;
}

button.swiper-pagination-bullet {
  border: none;
  margin: 0;
  padding: 0;
  -webkit-box-shadow: none;
  box-shadow: none;
  -moz-appearance: none;
  -ms-appearance: none;
  -webkit-appearance: none;
  appearance: none;
}

.swiper-pagination-clickable .swiper-pagination-bullet {
  cursor: pointer;
}

.swiper-pagination-white .swiper-pagination-bullet {
  background: #fff;
}

.swiper-pagination-bullet-active {
  opacity: 1;
  background: #007aff;
}

.swiper-pagination-white .swiper-pagination-bullet-active {
  background: #fff;
}

.swiper-pagination-black .swiper-pagination-bullet-active {
  background: #000;
}

.swiper-container-vertical > .swiper-pagination-bullets {
  right: 10px;
  top: 50%;
  -webkit-transform: translate3d(0px, -50%, 0);
  -ms-transform: translate3d(0px, -50%, 0);
  transform: translate3d(0px, -50%, 0);
}

.swiper-container-vertical > .swiper-pagination-bullets .swiper-pagination-bullet {
  margin: 5px 0;
  display: block;
}

.swiper-container-horizontal > .swiper-pagination-bullets .swiper-pagination-bullet {
  margin: 0 5px;
}

/* Progress */
.swiper-pagination-progress {
  background: rgba(0, 0, 0, 0.25);
  position: absolute;
}

.swiper-pagination-progress .swiper-pagination-progressbar {
  background: #007aff;
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  -webkit-transform: scale(0);
  -ms-transform: scale(0);
  transform: scale(0);
  -webkit-transform-origin: left top;
  -ms-transform-origin: left top;
  transform-origin: left top;
}

.swiper-container-rtl .swiper-pagination-progress .swiper-pagination-progressbar {
  -webkit-transform-origin: right top;
  -ms-transform-origin: right top;
  transform-origin: right top;
}

.swiper-container-horizontal > .swiper-pagination-progress {
  width: 100%;
  height: 4px;
  left: 0;
  top: 0;
}

.swiper-container-vertical > .swiper-pagination-progress {
  width: 4px;
  height: 100%;
  left: 0;
  top: 0;
}

.swiper-pagination-progress.swiper-pagination-white {
  background: rgba(255, 255, 255, 0.5);
}

.swiper-pagination-progress.swiper-pagination-white .swiper-pagination-progressbar {
  background: #fff;
}

.swiper-pagination-progress.swiper-pagination-black .swiper-pagination-progressbar {
  background: #000;
}

/* 3D Container */
.swiper-container-3d {
  -webkit-perspective: 1200px;
  -o-perspective: 1200px;
  perspective: 1200px;
}

.swiper-container-3d .swiper-wrapper,
.swiper-container-3d .swiper-slide,
.swiper-container-3d .swiper-slide-shadow-left,
.swiper-container-3d .swiper-slide-shadow-right,
.swiper-container-3d .swiper-slide-shadow-top,
.swiper-container-3d .swiper-slide-shadow-bottom,
.swiper-container-3d .swiper-cube-shadow {
  -webkit-transform-style: preserve-3d;
  -ms-transform-style: preserve-3d;
  transform-style: preserve-3d;
}

.swiper-container-3d .swiper-slide-shadow-left,
.swiper-container-3d .swiper-slide-shadow-right,
.swiper-container-3d .swiper-slide-shadow-top,
.swiper-container-3d .swiper-slide-shadow-bottom {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 10;
}

.swiper-container-3d .swiper-slide-shadow-left {
  background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.5)), to(transparent));
  /* Safari 4+, Chrome */
  background-image: -webkit-linear-gradient(right, rgba(0, 0, 0, 0.5), transparent);
  /* Chrome 10+, Safari 5.1+, iOS 5+ */
  /* Firefox 3.6-15 */
  /* Opera 11.10-12.00 */
  background-image: -webkit-gradient(linear, right top, left top, from(rgba(0, 0, 0, 0.5)), to(transparent));
  background-image: linear-gradient(to left, rgba(0, 0, 0, 0.5), transparent);
  /* Firefox 16+, IE10, Opera 12.50+ */
}

.swiper-container-3d .swiper-slide-shadow-right {
  background-image: -webkit-gradient(linear, right top, left top, from(rgba(0, 0, 0, 0.5)), to(transparent));
  /* Safari 4+, Chrome */
  background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5), transparent);
  /* Chrome 10+, Safari 5.1+, iOS 5+ */
  /* Firefox 3.6-15 */
  /* Opera 11.10-12.00 */
  background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.5)), to(transparent));
  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5), transparent);
  /* Firefox 16+, IE10, Opera 12.50+ */
}

.swiper-container-3d .swiper-slide-shadow-top {
  background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0.5)), to(transparent));
  /* Safari 4+, Chrome */
  background-image: -webkit-linear-gradient(bottom, rgba(0, 0, 0, 0.5), transparent);
  /* Chrome 10+, Safari 5.1+, iOS 5+ */
  /* Firefox 3.6-15 */
  /* Opera 11.10-12.00 */
  background-image: -webkit-gradient(linear, left bottom, left top, from(rgba(0, 0, 0, 0.5)), to(transparent));
  background-image: linear-gradient(to top, rgba(0, 0, 0, 0.5), transparent);
  /* Firefox 16+, IE10, Opera 12.50+ */
}

.swiper-container-3d .swiper-slide-shadow-bottom {
  background-image: -webkit-gradient(linear, left bottom, left top, from(rgba(0, 0, 0, 0.5)), to(transparent));
  /* Safari 4+, Chrome */
  background-image: -webkit-linear-gradient(top, rgba(0, 0, 0, 0.5), transparent);
  /* Chrome 10+, Safari 5.1+, iOS 5+ */
  /* Firefox 3.6-15 */
  /* Opera 11.10-12.00 */
  background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0.5)), to(transparent));
  background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), transparent);
  /* Firefox 16+, IE10, Opera 12.50+ */
}

/* Coverflow */
.swiper-container-coverflow .swiper-wrapper,
.swiper-container-flip .swiper-wrapper {
  /* Windows 8 IE 10 fix */
  -ms-perspective: 1200px;
}

/* Cube + Flip */
.swiper-container-cube,
.swiper-container-flip {
  overflow: visible;
}

.swiper-container-cube .swiper-slide,
.swiper-container-flip .swiper-slide {
  pointer-events: none;
  -webkit-backface-visibility: hidden;
  -ms-backface-visibility: hidden;
  backface-visibility: hidden;
  z-index: 1;
}

.swiper-container-cube .swiper-slide .swiper-slide,
.swiper-container-flip .swiper-slide .swiper-slide {
  pointer-events: none;
}

.swiper-container-cube .swiper-slide-active,
.swiper-container-flip .swiper-slide-active,
.swiper-container-cube .swiper-slide-active .swiper-slide-active,
.swiper-container-flip .swiper-slide-active .swiper-slide-active {
  pointer-events: auto;
}

.swiper-container-cube .swiper-slide-shadow-top,
.swiper-container-flip .swiper-slide-shadow-top,
.swiper-container-cube .swiper-slide-shadow-bottom,
.swiper-container-flip .swiper-slide-shadow-bottom,
.swiper-container-cube .swiper-slide-shadow-left,
.swiper-container-flip .swiper-slide-shadow-left,
.swiper-container-cube .swiper-slide-shadow-right,
.swiper-container-flip .swiper-slide-shadow-right {
  z-index: 0;
  -webkit-backface-visibility: hidden;
  -ms-backface-visibility: hidden;
  backface-visibility: hidden;
}

/* Cube */
.swiper-container-cube .swiper-slide {
  visibility: hidden;
  -webkit-transform-origin: 0 0;
  -ms-transform-origin: 0 0;
  transform-origin: 0 0;
  width: 100%;
  height: 100%;
}

.swiper-container-cube.swiper-container-rtl .swiper-slide {
  -webkit-transform-origin: 100% 0;
  -ms-transform-origin: 100% 0;
  transform-origin: 100% 0;
}

.swiper-container-cube .swiper-slide-active,
.swiper-container-cube .swiper-slide-next,
.swiper-container-cube .swiper-slide-prev,
.swiper-container-cube .swiper-slide-next + .swiper-slide {
  pointer-events: auto;
  visibility: visible;
}

.swiper-container-cube .swiper-cube-shadow {
  position: absolute;
  left: 0;
  bottom: 0px;
  width: 100%;
  height: 100%;
  background: #000;
  opacity: 0.6;
  -webkit-filter: blur(50px);
  filter: blur(50px);
  z-index: 0;
}

/* Fade */
.swiper-container-fade.swiper-container-free-mode .swiper-slide {
  -webkit-transition-timing-function: ease-out;
  transition-timing-function: ease-out;
}

.swiper-container-fade .swiper-slide {
  pointer-events: none;
  -webkit-transition-property: opacity;
  transition-property: opacity;
}

.swiper-container-fade .swiper-slide .swiper-slide {
  pointer-events: none;
}

.swiper-container-fade .swiper-slide-active,
.swiper-container-fade .swiper-slide-active .swiper-slide-active {
  pointer-events: auto;
}

/* Scrollbar */
.swiper-scrollbar {
  border-radius: 10px;
  position: relative;
  -ms-touch-action: none;
  background: rgba(0, 0, 0, 0.1);
}

.swiper-container-horizontal > .swiper-scrollbar {
  position: absolute;
  left: 1%;
  bottom: 3px;
  z-index: 50;
  height: 5px;
  width: 98%;
}

.swiper-container-vertical > .swiper-scrollbar {
  position: absolute;
  right: 3px;
  top: 1%;
  z-index: 50;
  width: 5px;
  height: 98%;
}

.swiper-scrollbar-drag {
  height: 100%;
  width: 100%;
  position: relative;
  background: rgba(0, 0, 0, 0.5);
  border-radius: 10px;
  left: 0;
  top: 0;
}

.swiper-scrollbar-cursor-drag {
  cursor: move;
}

/* Preloader */
.swiper-lazy-preloader {
  width: 42px;
  height: 42px;
  position: absolute;
  left: 50%;
  top: 50%;
  margin-left: -21px;
  margin-top: -21px;
  z-index: 10;
  -webkit-transform-origin: 50%;
  -ms-transform-origin: 50%;
  transform-origin: 50%;
  -webkit-animation: swiper-preloader-spin 1s steps(12, end) infinite;
  animation: swiper-preloader-spin 1s steps(12, end) infinite;
}

.swiper-lazy-preloader:after {
  display: block;
  content: "";
  width: 100%;
  height: 100%;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%236c6c6c'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
  background-position: 50%;
  -webkit-background-size: 100%;
  background-size: 100%;
  background-repeat: no-repeat;
}

.swiper-lazy-preloader-white:after {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%23fff'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
}

@-webkit-keyframes swiper-preloader-spin {
  100% {
    -webkit-transform: rotate(360deg);
  }
}

@keyframes swiper-preloader-spin {
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}

@-webkit-keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

@keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

body {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

html {
  visibility: hidden;
}

html.wf-active {
  visibility: visible;
}

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

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

.float-left {
  float: left;
}

.float-right {
  float: right;
}

.inner {
  position: relative;
}

@media (min-width: 768px) {
  .page-body {
    min-height: 100vh;
  }
}

@media (max-width: 767px) {
  .page-body {
    min-height: -webkit-calc(100vh - 53px);
    min-height: calc(100vh - 53px);
  }
}

@media (min-width: 768px) {
  .page-body {
    padding-top: 5.625rem;
  }
}

.swiper-lazy {
  opacity: 0;
}

.swiper-lazy-loaded {
  opacity: 1;
}

/* Typography
--------------*/
@media (max-width: 768px) {
  html {
    font-size: 75%;
  }
}

body {
  font: 1.875em/1 'cosmos', 'Helvetica', 'Arial', sans-serif;
  font-weight: 400;
  letter-spacing: 0.005em;
  color: #1F1F1F;
  background: #fff;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  -webkit-font-feature-settings: 'tnum';
  -moz-font-feature-settings: 'tnum';
  font-feature-settings: 'tnum';
}

a {
  text-decoration: none;
  color: inherit;
}

b, strong {
  font-weight: normal;
}

/* Headings
--------------*/
h1, h2, h3, h4, h5, h6 {
  font-weight: normal;
  font-size: 1em;
  margin: 0;
}

hr {
  border: 0;
  height: 1px;
  display: block;
  margin: 0;
  color: transparent;
}

.page-text--small {
  line-height: 1.25;
}

@media (min-width: 560px) {
  .page-text--small {
    font-size: 1.5rem;
  }
}

@media (max-width: 559px) {
  .page-text--small {
    font-size: 1.25rem;
  }
}

.site-header {
  width: 100%;
  text-align: center;
  background: #fff;
  pointer-events: none;
  overflow: hidden;
}

@media (min-width: 768px) {
  .site-header {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 500;
    padding: 1.75rem 2.625rem;
  }
}

.site-header.title-switch {
  pointer-events: all;
}

.home .site-header {
  background: none;
  -webkit-transition: background 500ms cubic-bezier(0.215, 0.61, 0.355, 1);
  transition: background 500ms cubic-bezier(0.215, 0.61, 0.355, 1);
}

.home .site-header.is-active {
  background: #fff;
}

@media (min-width: 768px) {
  .no-touchevents .title-switch:hover .title-switch__top {
    display: none;
  }
  .no-touchevents .title-switch:hover .title-switch__bottom {
    display: inline-block;
  }
}

.title-switch__bottom {
  display: none;
}

.top-nav {
  width: 100%;
  pointer-events: all;
}

.is-active .top-nav {
  -webkit-transform: translateY(0);
  -ms-transform: translateY(0);
  transform: translateY(0);
  opacity: 1;
}

.top-nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: 0;
}

@media (min-width: 768px) {
  .top-nav {
    position: absolute;
    top: 0;
    -webkit-transform: translateY(-3.5rem);
    -ms-transform: translateY(-3.5rem);
    transform: translateY(-3.5rem);
    opacity: 0;
  }
  .home .top-nav {
    position: relative;
  }
  .top-nav li {
    font-size: 1.875rem;
    display: inline-block;
  }
  .top-nav a {
    display: block;
    padding: 0 0.875rem;
  }
}

@media (max-width: 767px) {
  .top-nav {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 500;
    -webkit-transform: translateY(-100%);
    -ms-transform: translateY(-100%);
    transform: translateY(-100%);
    background: #fff;
    padding: 0.875rem 0;
  }
  .top-nav li {
    font-size: 1.875rem;
    display: block;
  }
  .top-nav a {
    display: block;
    padding: 0.5rem;
  }
}

.site-title {
  font-size: 2.125rem;
  pointer-events: all;
}

@media (min-width: 768px) {
  .site-title {
    -webkit-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
  }
  .is-active .site-title {
    -webkit-transform: translateY(3.5rem);
    -ms-transform: translateY(3.5rem);
    transform: translateY(3.5rem);
    opacity: 0;
  }
}

@media (min-width: 561px) and (max-width: 767px) {
  .site-title {
    padding: 1.75rem 2.625rem;
  }
}

.home .site-title {
  display: none;
}

@media (max-width: 560px) {
  .site-title {
    padding: 1.3125rem 4rem;
  }
}

@media (max-width: 767px) {
  .site-title {
    line-height: 1.25;
    margin-top: -.125em;
  }
}

.title-switch__top {
  font-size: 1.875rem;
  line-height: 2.125rem;
}

@media (min-width: 768px) {
  .title-part {
    margin: 0 0 0 1.5rem;
  }
}

@media (max-width: 767px) {
  .title-part {
    display: block;
  }
}

.no-touchevents .site-header a:hover {
  opacity: 0.5;
}

@media (min-width: 768px) {
  .top-nav,
  .site-title,
  .site-header a {
    -webkit-transition: all 250ms cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: all 250ms cubic-bezier(0.215, 0.61, 0.355, 1);
  }
}

@media (max-width: 767px) {
  .top-nav {
    -webkit-transition: all 500ms cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: all 500ms cubic-bezier(0.215, 0.61, 0.355, 1);
  }
}

.nav-icon {
  position: absolute;
  top: 0;
  right: 0;
  appearance: none;
  border: 0;
  background: none;
  padding: 0;
  width: 2rem;
  height: 2.125rem;
  background: url(../img/icon-nav-dots.svg) no-repeat 50% 50%;
  -webkit-background-size: 1.75rem;
  background-size: 1.75rem;
  cursor: pointer;
  pointer-events: all;
}

@media (max-width: 767px) {
  .nav-icon {
    position: fixed;
    top: 1.3125rem;
    right: 1.3125rem;
    z-index: 500;
  }
}

@media (max-width: 559px) {
  .nav-icon {
    width: 1.875rem;
  }
}

.is-active .nav-icon {
  background-image: url(../img/icon-close.svg);
  -webkit-background-size: 1.25rem 1.25rem;
  background-size: 1.25rem 1.25rem;
}

.nav-icon:focus {
  outline: 0;
}

.carousel-title {
  text-align: center;
  padding: 0.5rem 0 2.625rem;
}

@media (max-width: 560px) {
  .carousel-title {
    padding: 0.875rem 1.3125rem 1.3125rem;
  }
}

.is-active .carousel-title__default {
  visibility: hidden;
}

.carousel-caption {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  display: none;
}

.is-active .carousel-caption {
  display: block;
}

.carousel-single,
.carousel-img {
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

.carousel-img {
  -webkit-transition: opacity 250ms cubic-bezier(0.215, 0.61, 0.355, 1);
  transition: opacity 250ms cubic-bezier(0.215, 0.61, 0.355, 1);
}

a.carousel-single {
  cursor: inherit;
}

.no-touchevents .wrapped-carousel .carousel-single:hover img, .no-touchevents
.standard-carousel .carousel-single:hover img {
  opacity: 0.35;
}

.large-carousel:not(.lead-images-carousel):not(.matrix-inner) {
  padding: 1.3125rem 0;
}

.medium-carousel {
  padding: 1.3125rem 0;
}

.medium-carousel .carousel-single {
  display: block;
  max-height: 28.5vw;
  height: auto;
  width: auto;
  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;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
}

.medium-carousel .carousel-img {
  display: block;
  padding: 0 1.3125rem;
  width: auto;
  height: auto;
  max-width: 28.5vw;
  max-height: 28.5vw;
  object-fit: contain;
}

.wrapped-carousel .carousel-single {
  height: 28.5vw;
}

@media (min-width: 561px) and (max-width: 768px) {
  .medium-carousel .carousel-single {
    max-height: 42vw;
  }
  .medium-carousel .carousel-img {
    max-width: 42vw;
    max-height: 42vw;
  }
  .wrapped-carousel .carousel-single {
    height: 42vw;
  }
}

@media (max-width: 560px) {
  .medium-carousel {
    padding: 0.875rem 0;
  }
  .medium-carousel .carousel-single {
    max-height: 75vw;
  }
  .medium-carousel .carousel-img {
    max-width: 75vw;
    max-height: 75vw;
    padding: 0 0.875rem;
  }
  .wrapped-carousel .carousel-single {
    height: 75vw;
  }
  .large-carousel:not(.lead-images-carousel) {
    padding: 0.875rem 0;
  }
}

.small-carousel {
  padding: 1.3125rem 0;
}

.small-carousel .carousel-single {
  display: block;
  width: auto;
  -webkit-align-self: flex-end;
  -ms-flex-item-align: end;
  align-self: flex-end;
}

.small-carousel .carousel-img {
  display: block;
  padding: 0 1.3125rem;
  width: auto;
  height: auto;
  width: 13.875rem;
  max-width: 100%;
}

@media (max-width: 768px) {
  .small-carousel .carousel-img {
    width: 12.5rem;
  }
}

.single-carousel .carousel-single {
  height: auto;
  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;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
}

@media (min-width: 560px) {
  .single-carousel .carousel-single {
    padding: 0 1.3125rem;
    width: -webkit-calc(100vw - 5.25rem - 2.625rem);
    width: calc(100vw - 5.25rem - 2.625rem);
  }
}

@media (max-width: 559px) {
  .single-carousel .carousel-single {
    padding: 0 0.875rem;
    width: 75vw;
  }
}

.single-carousel .carousel-img {
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
  min-height: 200px;
  margin: 0 auto;
}

@media (orientation: portrait) {
  .single-carousel .carousel-img {
    max-height: 50vh;
  }
  .single-carousel .carousel-img.carousel-img--portrait {
    max-height: 65vh;
  }
}

@media (min-width: 1400px) and (orientation: landscape) {
  .single-carousel.lead-images-carousel .carousel-img {
    max-height: 67.5vh;
  }
  .single-carousel.lead-images-carousel .carousel-img.carousel-img--portrait {
    max-height: 80vh;
  }
}

.single-carousel .swiper-slide-next,
.single-carousel .swiper-slide-prev {
  cursor: pointer;
}

@media (orientation: landscape) {
  .single-carousel:not(.lead-images-carousel) .carousel-img {
    max-height: 60vh;
  }
  .single-carousel:not(.lead-images-carousel) .carousel-img.carousel-img--portrait {
    max-height: 70vh;
  }
}

@media (max-width: 767px) and (orientation: portrait) {
  .single-carousel:not(.lead-images-carousel) .carousel-img {
    max-height: 40vh;
  }
  .single-carousel:not(.lead-images-carousel) .carousel-img.carousel-img--portrait {
    max-height: 47.5vh;
  }
}

.lead-images {
  padding: 0 0 2.625rem;
}

@media (min-width: 768px) {
  .lead-images .single-carousel .carousel-single {
    height: -webkit-calc(100vh - 5.625rem - 2.625rem - 2.625rem);
    height: calc(100vh - 5.625rem - 2.625rem - 2.625rem);
    min-height: 300px;
  }
  .lead-images .single-carousel .carousel-img {
    height: 100%;
    object-fit: contain;
  }
}

.lead-images .parallax-img-wrapper {
  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;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
}

@media (max-width: 767px) and (orientation: portrait) {
  .lead-images .single-carousel .carousel-img {
    object-fit: contain;
  }
}

.homepage-category {
  width: 100%;
  overflow: hidden;
  -webkit-animation: fadeIn 750ms;
  animation: fadeIn 750ms;
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
}

.homepage-category:nth-child(1) {
  -webkit-animation-delay: 350ms;
  animation-delay: 350ms;
}

.homepage-category:nth-child(2) {
  -webkit-animation-delay: 850ms;
  animation-delay: 850ms;
}

.homepage-category:nth-child(3) {
  -webkit-animation-delay: 1350ms;
  animation-delay: 1350ms;
}

.homepage-category + .homepage-category {
  margin-top: 1.3125rem;
}

[data-carousel] {
  overflow: hidden;
}

.parallax-carousel {
  width: 110%;
  margin-left: -5%;
}

.parallax__inner {
  -webkit-transition: all 250ms cubic-bezier(0.215, 0.61, 0.355, 1);
  transition: all 250ms cubic-bezier(0.215, 0.61, 0.355, 1);
}

.parallax-img-wrapper {
  display: inline-block;
  height: 100%;
}

.matrix-block .parallax-img-wrapper {
  height: auto;
}

@media (min-width: 560px) {
  .page-section {
    padding: 2.625rem 0;
  }
}

@media (max-width: 559px) {
  .page-section {
    padding: 1.3125rem 0;
  }
}

.page-section--top + .page-section {
  padding-top: 0;
}

@media (min-width: 560px) {
  .page-text,
  .page-desc {
    padding-right: 2.625rem;
    padding-left: 2.625rem;
  }
}

@media (max-width: 559px) {
  .page-text,
  .page-desc {
    padding-right: -webkit-calc(12.5vw - 1.75rem);
    padding-right: calc(12.5vw - 1.75rem);
    padding-left: -webkit-calc(12.5vw - 1.75rem);
    padding-left: calc(12.5vw - 1.75rem);
  }
}

.page-text--center {
  text-align: center;
}

.page-desc p:first-child {
  margin-top: 0;
}

.page-desc p:last-child {
  margin-bottom: 0;
}

.page-desc a {
  -webkit-transition: all 250ms cubic-bezier(0.215, 0.61, 0.355, 1);
  transition: all 250ms cubic-bezier(0.215, 0.61, 0.355, 1);
}

.no-touchevents .page-desc a:hover {
  opacity: 0.5;
}

.page-desc--box {
  max-width: 61.25rem;
  margin: 0 auto;
  background: #fff;
}

@media (min-width: 560px) {
  .page-desc--box {
    padding: 2.625rem;
  }
}

@media (max-width: 559px) {
  .page-desc--box {
    padding: 1.3125rem;
  }
}

.page-desc__inner {
  max-width: 46.25rem;
  margin: 0 auto;
}

.work-desc {
  background: #fff4f3;
}

.embed-container {
  position: relative;
  height: 0;
  padding-bottom: 56.25%;
  width: 100%;
}

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

.page-video {
  padding-right: 2.625rem;
  padding-left: 2.625rem;
  width: 100%;
  max-width: 66.5rem;
  margin: 0 auto;
}

.page-template-about,
.page-template-about .site-header {
  background: #dbffe0;
}

.page-template-contact,
.page-template-contact .site-header {
  background: #ffdebb;
}

.contact-text .page-desc__box {
  background: transparent;
}

.page-template-contact .page-body {
  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;
}

.page-template-contact .page-text {
  max-width: 33em;
  margin: 0 auto;
}

.contact-text {
  -webkit-box-flex: 1;
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  line-height: 1.25;
  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;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
}

@media (max-width: 559px) {
  .contact-text {
    font-size: 1.25rem;
  }
}

.page-template-press,
.page-template-press .site-header {
  background: #ecfbfa;
}

.press-carousel {
  border-bottom: 2px solid #000;
  padding-bottom: 0;
}

.press-carousel .swiper-wrapper {
  -webkit-align-content: flex-end;
  -ms-flex-line-pack: end;
  align-content: flex-end;
}

.press-single {
  position: relative;
  cursor: pointer;
}

.press-single:before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 2;
  display: block;
  width: 2.625rem;
  height: 2.625rem;
  margin: -1.3125rem 0 0 -1.3125rem;
  border-radius: 50%;
  background: #fff url(../img/icon-arrow.svg) no-repeat 50% 50%;
  -webkit-background-size: 1.5rem 1.8125rem;
  background-size: 1.5rem 1.8125rem;
  opacity: 0;
  -webkit-transition: opacity 250ms cubic-bezier(0.215, 0.61, 0.355, 1);
  transition: opacity 250ms cubic-bezier(0.215, 0.61, 0.355, 1);
}

.no-touchevents .press-single:hover img {
  opacity: 0.35;
}

.no-touchevents .press-single:hover:before {
  opacity: 1;
}

.search,
.page-template-search,
.page-template-search .site-header,
.search .site-header {
  background: #f0ecfd;
}

.search .page-body,
.page-template-search .page-body {
  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;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
  -ms-flex-pack: justify;
  justify-content: space-between;
}

.search-wrap {
  width: 100%;
}

@media (min-width: 560px) {
  .search-wrap {
    padding: 0 2.625rem;
  }
}

@media (max-width: 559px) {
  .search-wrap {
    padding: 0 1.3125rem;
  }
}

.search-entry {
  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;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
}

@media (min-height: 568px) {
  .search-entry {
    -webkit-box-flex: 1;
    -webkit-flex: 1 1 auto;
    -ms-flex: 1 1 auto;
    flex: 1 1 auto;
  }
}

@media (min-width: 560px) {
  .search-entry {
    max-height: 22.5rem;
  }
}

@media (max-width: 559px) {
  .search-entry {
    max-height: 12.625rem;
  }
}

.search-form {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  width: 100%;
  max-width: 53.375rem;
  margin: 0 auto;
  border-bottom: 2px solid #000;
}

.search-form:after {
  content: '';
  display: table;
  clear: both;
}

.search-field {
  float: left;
  background: none;
  border: 0;
  padding: 1.25rem;
  -webkit-box-flex: 1;
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  appearance: searchfield;
}

.search-field::-webkit-input-placeholder {
  color: rgba(0, 0, 0, 0.5);
}

.search-field::-moz-placeholder {
  color: rgba(0, 0, 0, 0.5);
}

.search-field:-ms-input-placeholder {
  color: rgba(0, 0, 0, 0.5);
}

.search-field::placeholder {
  color: rgba(0, 0, 0, 0.5);
}

.search-field:focus {
  outline: 0;
}

.search-field::-webkit-search-cancel-button {
  position: relative;
  -webkit-appearance: none;
  width: 1.875rem;
  height: 1.875rem;
  background: url(../img/icon-close.svg) no-repeat 50% 50%;
  -webkit-background-size: 1.25rem 1.25rem;
  background-size: 1.25rem 1.25rem;
  cursor: pointer;
}

.search-submit {
  float: left;
  appearance: none;
  border: 0;
  background: none;
  padding: 0;
  display: none;
}

.page-template-press,
.page-template-press .site-header {
  background: #ecfbfa;
}

.press-carousel {
  border-bottom: 2px solid #000;
  padding-bottom: 0;
}

.press-carousel .swiper-wrapper {
  -webkit-align-content: flex-end;
  -ms-flex-line-pack: end;
  align-content: flex-end;
}

.press-single {
  position: relative;
  cursor: pointer;
}

.press-single:before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 2;
  display: block;
  width: 2.625rem;
  height: 2.625rem;
  margin: -1.3125rem 0 0 -1.3125rem;
  border-radius: 50%;
  background: #fff url(../img/icon-arrow.svg) no-repeat 50% 50%;
  -webkit-background-size: 1.5rem 1.8125rem;
  background-size: 1.5rem 1.8125rem;
  opacity: 0;
  -webkit-transition: opacity 250ms cubic-bezier(0.215, 0.61, 0.355, 1);
  transition: opacity 250ms cubic-bezier(0.215, 0.61, 0.355, 1);
}

.no-touchevents .press-single:hover img {
  opacity: 0.35;
}

.no-touchevents .press-single:hover:before {
  opacity: 1;
}

.matrix {
  height: 100vh;
  width: 100vw;
  -webkit-animation: fadeIn 500ms 2000ms linear;
  animation: fadeIn 500ms 2000ms linear;
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-play-state: paused;
  animation-play-state: paused;
}

.wf-active .matrix {
  -webkit-animation-play-state: running;
  animation-play-state: running;
}

.matrix-top-level {
  overflow: hidden;
  height: -webkit-calc(100vh - 2.625rem - 2.625rem);
  height: calc(100vh - 2.625rem - 2.625rem);
}

.matrix-inner .carousel-single {
  height: -webkit-calc(100vh - 2.625rem - 2.625rem);
  height: calc(100vh - 2.625rem - 2.625rem);
}

.matrix-inner .carousel-img {
  height: auto;
  min-height: 0 !important;
}

.matrix-corner {
  position: absolute;
  z-index: 200;
  width: 3.125rem;
  height: 3.125rem;
  background: #fff;
}

.corner-tl {
  top: 0;
  left: 0;
}

.corner-tr {
  top: 0;
  right: 0;
}

.corner-bl {
  bottom: 0;
  left: 0;
}

.corner-br {
  bottom: 0;
  right: 0;
}

.matrix-reverse {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  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;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
}

.landing-title {
  font-size: 3rem;
  -webkit-animation: fadeIn 500ms linear;
  animation: fadeIn 500ms linear;
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-play-state: paused;
  animation-play-state: paused;
}

.wf-active .landing-title {
  -webkit-animation-play-state: running;
  animation-play-state: running;
}

@media (max-width: 767px) {
  .landing-title {
    font-size: 1.875rem;
  }
}

.matrix-top-level.swiper-slide-prev img,
.matrix-top-level.swiper-slide-next img {
  cursor: pointer;
}

.error404,
.error404 .site-header {
  background: #26a4a0;
}

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLm1pbi5jc3MiLCJzb3VyY2VzIjpbImFwcC5zY3NzIiwidmVuZG9yL19ub3JtYWxpemUuY3NzIiwidmVuZG9yL19pbmNsdWRlLW1lZGlhLnNjc3MiLCJ2ZW5kb3IvX3N3aXBlci5jc3MiLCJjb3JlL19zZXR0aW5ncy5zY3NzIiwiY29yZS9fYmFzZS5zY3NzIiwiYXBwbGljYXRpb24vYXBwbGljYXRpb24uc2NzcyIsImFwcGxpY2F0aW9uL2NvbXBvbmVudHMvX3R5cG9ncmFwaHkuc2NzcyIsImFwcGxpY2F0aW9uL2NvbXBvbmVudHMvX25hdi5zY3NzIiwiYXBwbGljYXRpb24vY29tcG9uZW50cy9fY2Fyb3VzZWwuc2NzcyIsImFwcGxpY2F0aW9uL3BhZ2VzL19wYWdlLnNjc3MiLCJhcHBsaWNhdGlvbi9wYWdlcy9fd29yay1zaW5nbGUuc2NzcyIsImFwcGxpY2F0aW9uL3BhZ2VzL19hYm91dC5zY3NzIiwiYXBwbGljYXRpb24vcGFnZXMvX2NvbnRhY3Quc2NzcyIsImFwcGxpY2F0aW9uL3BhZ2VzL19wcmVzcy5zY3NzIiwiYXBwbGljYXRpb24vcGFnZXMvX3NlYXJjaC5zY3NzIiwiYXBwbGljYXRpb24vcGFnZXMvX2xhbmRpbmcuc2NzcyIsImFwcGxpY2F0aW9uL3BhZ2VzL180MDQuc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBSZXNldCDigJMgTm9ybWFsaXplLmNzc1xuLy9cbkBpbXBvcnQgJ3ZlbmRvci9ub3JtYWxpemUnO1xuQGltcG9ydCAndmVuZG9yL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAndmVuZG9yL3N3aXBlcic7XG5cbi8vXG4vLyBDb3JlXG4vL1xuQGltcG9ydCAnY29yZS9zZXR0aW5ncyc7XG5AaW1wb3J0ICdjb3JlL2Jhc2UnO1xuXG4vL1xuLy8gQXBwbGljYXRpb25cbi8vXG5AaW1wb3J0ICdhcHBsaWNhdGlvbi9hcHBsaWNhdGlvbic7IiwiLyohIG5vcm1hbGl6ZS5jc3MgdjMuMC4xIHwgTUlUIExpY2Vuc2UgfCBnaXQuaW8vbm9ybWFsaXplICovXG5cbi8qKlxuICogMS4gU2V0IGRlZmF1bHQgZm9udCBmYW1pbHkgdG8gc2Fucy1zZXJpZi5cbiAqIDIuIFByZXZlbnQgaU9TIHRleHQgc2l6ZSBhZGp1c3QgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlLCB3aXRob3V0IGRpc2FibGluZ1xuICogICAgdXNlciB6b29tLlxuICovXG5cbmh0bWwge1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjsgLyogMSAqL1xuICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgZGVmYXVsdCBtYXJnaW4uXG4gKi9cblxuYm9keSB7XG4gIG1hcmdpbjogMDtcbn1cblxuLyogSFRNTDUgZGlzcGxheSBkZWZpbml0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYW55IEhUTUw1IGVsZW1lbnQgaW4gSUUgOC85LlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBkZXRhaWxzYCBvciBgc3VtbWFyeWAgaW4gSUUgMTAvMTEgYW5kIEZpcmVmb3guXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYG1haW5gIGluIElFIDExLlxuICovXG5cbmFydGljbGUsXG5hc2lkZSxcbmRldGFpbHMsXG5maWdjYXB0aW9uLFxuZmlndXJlLFxuZm9vdGVyLFxuaGVhZGVyLFxuaGdyb3VwLFxubWFpbixcbm5hdixcbnNlY3Rpb24sXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCBgaW5saW5lLWJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGluIElFIDgvOS5cbiAqIDIuIE5vcm1hbGl6ZSB2ZXJ0aWNhbCBhbGlnbm1lbnQgb2YgYHByb2dyZXNzYCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAqL1xuXG5hdWRpbyxcbmNhbnZhcyxcbnByb2dyZXNzLFxudmlkZW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IC8qIDEgKi9cbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyAvKiAyICovXG59XG5cbi8qKlxuICogUHJldmVudCBtb2Rlcm4gYnJvd3NlcnMgZnJvbSBkaXNwbGF5aW5nIGBhdWRpb2Agd2l0aG91dCBjb250cm9scy5cbiAqIFJlbW92ZSBleGNlc3MgaGVpZ2h0IGluIGlPUyA1IGRldmljZXMuXG4gKi9cblxuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgYFtoaWRkZW5dYCBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC5cbiAqIEhpZGUgdGhlIGB0ZW1wbGF0ZWAgZWxlbWVudCBpbiBJRSA4LzkvMTEsIFNhZmFyaSwgYW5kIEZpcmVmb3ggPCAyMi5cbiAqL1xuXG5baGlkZGVuXSxcbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogTGlua3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgY29sb3IgZnJvbSBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gKi9cblxuYSB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuXG4vKipcbiAqIEltcHJvdmUgcmVhZGFiaWxpdHkgd2hlbiBmb2N1c2VkIGFuZCBhbHNvIG1vdXNlIGhvdmVyZWQgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmE6YWN0aXZlLFxuYTpob3ZlciB7XG4gIG91dGxpbmU6IDA7XG59XG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAvMTEsIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQ7XG59XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsZSBzZXQgdG8gYGJvbGRlcmAgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gKi9cblxuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgdmFyaWFibGUgYGgxYCBmb250LXNpemUgYW5kIG1hcmdpbiB3aXRoaW4gYHNlY3Rpb25gIGFuZCBgYXJ0aWNsZWBcbiAqIGNvbnRleHRzIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkuXG4gKi9cblxubWFyayB7XG4gIGJhY2tncm91bmQ6ICNmZjA7XG4gIGNvbG9yOiAjMDAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGFuZCB2YXJpYWJsZSBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5cbi8qKlxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgYWZmZWN0aW5nIGBsaW5lLWhlaWdodGAgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtO1xufVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07XG59XG5cbi8qIEVtYmVkZGVkIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIGJvcmRlciB3aGVuIGluc2lkZSBgYWAgZWxlbWVudCBpbiBJRSA4LzkvMTAuXG4gKi9cblxuaW1nIHtcbiAgYm9yZGVyOiAwO1xufVxuXG4vKipcbiAqIENvcnJlY3Qgb3ZlcmZsb3cgbm90IGhpZGRlbiBpbiBJRSA5LzEwLzExLlxuICovXG5cbnN2Zzpub3QoOnJvb3QpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLyogR3JvdXBpbmcgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGRyZXNzIG1hcmdpbiBub3QgcHJlc2VudCBpbiBJRSA4LzkgYW5kIFNhZmFyaS5cbiAqL1xuXG5maWd1cmUge1xuICBtYXJnaW46IDFlbSA0MHB4O1xufVxuXG4vKipcbiAqIEFkZHJlc3MgZGlmZmVyZW5jZXMgYmV0d2VlbiBGaXJlZm94IGFuZCBvdGhlciBicm93c2Vycy5cbiAqL1xuXG5ociB7XG4gIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBoZWlnaHQ6IDA7XG59XG5cbi8qKlxuICogQ29udGFpbiBvdmVyZmxvdyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxucHJlIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qKlxuICogQWRkcmVzcyBvZGQgYGVtYC11bml0IGZvbnQgc2l6ZSByZW5kZXJpbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmNvZGUsXG5rYmQsXG5wcmUsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDFlbTtcbn1cblxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogS25vd24gbGltaXRhdGlvbjogYnkgZGVmYXVsdCwgQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWCBhbGxvdyB2ZXJ5IGxpbWl0ZWRcbiAqIHN0eWxpbmcgb2YgYHNlbGVjdGAsIHVubGVzcyBhIGBib3JkZXJgIHByb3BlcnR5IGlzIHNldC5cbiAqL1xuXG4vKipcbiAqIDEuIENvcnJlY3QgY29sb3Igbm90IGJlaW5nIGluaGVyaXRlZC5cbiAqICAgIEtub3duIGlzc3VlOiBhZmZlY3RzIGNvbG9yIG9mIGRpc2FibGVkIGVsZW1lbnRzLlxuICogMi4gQ29ycmVjdCBmb250IHByb3BlcnRpZXMgbm90IGJlaW5nIGluaGVyaXRlZC5cbiAqIDMuIEFkZHJlc3MgbWFyZ2lucyBzZXQgZGlmZmVyZW50bHkgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGNvbG9yOiBpbmhlcml0OyAvKiAxICovXG4gIGZvbnQ6IGluaGVyaXQ7IC8qIDIgKi9cbiAgbWFyZ2luOiAwOyAvKiAzICovXG59XG5cbi8qKlxuICogQWRkcmVzcyBgb3ZlcmZsb3dgIHNldCB0byBgaGlkZGVuYCBpbiBJRSA4LzkvMTAvMTEuXG4gKi9cblxuYnV0dG9uIHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi8qKlxuICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYHRleHQtdHJhbnNmb3JtYCBpbmhlcml0YW5jZSBmb3IgYGJ1dHRvbmAgYW5kIGBzZWxlY3RgLlxuICogQWxsIG90aGVyIGZvcm0gY29udHJvbCBlbGVtZW50cyBkbyBub3QgaW5oZXJpdCBgdGV4dC10cmFuc2Zvcm1gIHZhbHVlcy5cbiAqIENvcnJlY3QgYGJ1dHRvbmAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveCwgSUUgOC85LzEwLzExLCBhbmQgT3BlcmEuXG4gKiBDb3JyZWN0IGBzZWxlY3RgIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3guXG4gKi9cblxuYnV0dG9uLFxuc2VsZWN0IHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8qKlxuICogMS4gQXZvaWQgdGhlIFdlYktpdCBidWcgaW4gQW5kcm9pZCA0LjAuKiB3aGVyZSAoMikgZGVzdHJveXMgbmF0aXZlIGBhdWRpb2BcbiAqICAgIGFuZCBgdmlkZW9gIGNvbnRyb2xzLlxuICogMi4gQ29ycmVjdCBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIGBpbnB1dGAgdHlwZXMgaW4gaU9TLlxuICogMy4gSW1wcm92ZSB1c2FiaWxpdHkgYW5kIGNvbnNpc3RlbmN5IG9mIGN1cnNvciBzdHlsZSBiZXR3ZWVuIGltYWdlLXR5cGVcbiAqICAgIGBpbnB1dGAgYW5kIG90aGVycy5cbiAqL1xuXG5idXR0b24sXG5odG1sIGlucHV0W3R5cGU9XCJidXR0b25cIl0sIC8qIDEgKi9cbmlucHV0W3R5cGU9XCJyZXNldFwiXSxcbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMiAqL1xuICBjdXJzb3I6IHBvaW50ZXI7IC8qIDMgKi9cbn1cblxuLyoqXG4gKiBSZS1zZXQgZGVmYXVsdCBjdXJzb3IgZm9yIGRpc2FibGVkIGVsZW1lbnRzLlxuICovXG5cbmJ1dHRvbltkaXNhYmxlZF0sXG5odG1sIGlucHV0W2Rpc2FibGVkXSB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLyoqXG4gKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgYm9yZGVyIGluIEZpcmVmb3ggNCsuXG4gKi9cblxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBGaXJlZm94IDQrIHNldHRpbmcgYGxpbmUtaGVpZ2h0YCBvbiBgaW5wdXRgIHVzaW5nIGAhaW1wb3J0YW50YCBpblxuICogdGhlIFVBIHN0eWxlc2hlZXQuXG4gKi9cblxuaW5wdXQge1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xufVxuXG4vKipcbiAqIEl0J3MgcmVjb21tZW5kZWQgdGhhdCB5b3UgZG9uJ3QgYXR0ZW1wdCB0byBzdHlsZSB0aGVzZSBlbGVtZW50cy5cbiAqIEZpcmVmb3gncyBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0IHJlc3BlY3QgYm94LXNpemluZywgcGFkZGluZywgb3Igd2lkdGguXG4gKlxuICogMS4gQWRkcmVzcyBib3ggc2l6aW5nIHNldCB0byBgY29udGVudC1ib3hgIGluIElFIDgvOS8xMC5cbiAqIDIuIFJlbW92ZSBleGNlc3MgcGFkZGluZyBpbiBJRSA4LzkvMTAuXG4gKi9cblxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogRml4IHRoZSBjdXJzb3Igc3R5bGUgZm9yIENocm9tZSdzIGluY3JlbWVudC9kZWNyZW1lbnQgYnV0dG9ucy4gRm9yIGNlcnRhaW5cbiAqIGBmb250LXNpemVgIHZhbHVlcyBvZiB0aGUgYGlucHV0YCwgaXQgY2F1c2VzIHRoZSBjdXJzb3Igc3R5bGUgb2YgdGhlXG4gKiBkZWNyZW1lbnQgYnV0dG9uIHRvIGNoYW5nZSBmcm9tIGBkZWZhdWx0YCB0byBgdGV4dGAuXG4gKi9cblxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi8qKlxuICogMS4gQWRkcmVzcyBgYXBwZWFyYW5jZWAgc2V0IHRvIGBzZWFyY2hmaWVsZGAgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gKiAyLiBBZGRyZXNzIGBib3gtc2l6aW5nYCBzZXQgdG8gYGJvcmRlci1ib3hgIGluIFNhZmFyaSBhbmQgQ2hyb21lXG4gKiAgICAoaW5jbHVkZSBgLW1vemAgdG8gZnV0dXJlLXByb29mKS5cbiAqL1xuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8qIDEgKi9cbiAgLW1vei1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogMiAqL1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbn1cblxuLyoqXG4gKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgc2VhcmNoIGNhbmNlbCBidXR0b24gaW4gU2FmYXJpIGFuZCBDaHJvbWUgb24gT1MgWC5cbiAqIFNhZmFyaSAoYnV0IG5vdCBDaHJvbWUpIGNsaXBzIHRoZSBjYW5jZWwgYnV0dG9uIHdoZW4gdGhlIHNlYXJjaCBpbnB1dCBoYXNcbiAqIHBhZGRpbmcgKGFuZCBgdGV4dGZpZWxkYCBhcHBlYXJhbmNlKS5cbiAqL1xuXG4vLyBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLyoqXG4gKiBEZWZpbmUgY29uc2lzdGVudCBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcuXG4gKi9cblxuZmllbGRzZXQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICBtYXJnaW46IDAgMnB4O1xuICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCBgY29sb3JgIG5vdCBiZWluZyBpbmhlcml0ZWQgaW4gSUUgOC85LzEwLzExLlxuICogMi4gUmVtb3ZlIHBhZGRpbmcgc28gcGVvcGxlIGFyZW4ndCBjYXVnaHQgb3V0IGlmIHRoZXkgemVybyBvdXQgZmllbGRzZXRzLlxuICovXG5cbmxlZ2VuZCB7XG4gIGJvcmRlcjogMDsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDgvOS8xMC8xMS5cbiAqL1xuXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiAqIERvbid0IGluaGVyaXQgdGhlIGBmb250LXdlaWdodGAgKGFwcGxpZWQgYnkgYSBydWxlIGFib3ZlKS5cbiAqIE5PVEU6IHRoZSBkZWZhdWx0IGNhbm5vdCBzYWZlbHkgYmUgY2hhbmdlZCBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYLlxuICovXG5cbm9wdGdyb3VwIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8qIFRhYmxlc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgbW9zdCBzcGFjaW5nIGJldHdlZW4gdGFibGUgY2VsbHMuXG4gKi9cblxudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDtcbn1cblxudGQsXG50aCB7XG4gIHBhZGRpbmc6IDA7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vICAgICBfICAgICAgICAgICAgXyAgICAgICAgICAgXyAgICAgICAgICAgICAgICAgICAgICAgICAgIF8gX1xuLy8gICAgKF8pICAgICAgICAgIHwgfCAgICAgICAgIHwgfCAgICAgICAgICAgICAgICAgICAgICAgICB8IChfKVxuLy8gICAgIF8gXyBfXyAgIF9fX3wgfF8gICBfICBfX3wgfCBfX18gICBfIF9fIF9fXyAgIF9fXyAgX198IHxfICBfXyBfXG4vLyAgICB8IHwgJ18gXFwgLyBfX3wgfCB8IHwgfC8gX2AgfC8gXyBcXCB8ICdfIGAgXyBcXCAvIF8gXFwvIF9gIHwgfC8gX2AgfFxuLy8gICAgfCB8IHwgfCB8IChfX3wgfCB8X3wgfCAoX3wgfCAgX18vIHwgfCB8IHwgfCB8ICBfXy8gKF98IHwgfCAoX3wgfFxuLy8gICAgfF98X3wgfF98XFxfX198X3xcXF9fLF98XFxfXyxffFxcX19ffCB8X3wgfF98IHxffFxcX19ffFxcX18sX3xffFxcX18sX3xcbi8vXG4vLyAgICAgIFNpbXBsZSwgZWxlZ2FudCBhbmQgbWFpbnRhaW5hYmxlIG1lZGlhIHF1ZXJpZXMgaW4gU2Fzc1xuLy8gICAgICAgICAgICAgICAgICAgICAgICB2MS40Ljhcbi8vXG4vLyAgICAgICAgICAgICAgICBodHRwOi8vaW5jbHVkZS1tZWRpYS5jb21cbi8vXG4vLyAgICAgICAgIEF1dGhvcnM6IEVkdWFyZG8gQm91Y2FzIChAZWR1YXJkb2JvdWNhcylcbi8vICAgICAgICAgICAgICAgICAgSHVnbyBHaXJhdWRlbCAoQGh1Z29naXJhdWRlbClcbi8vXG4vLyAgICAgIFRoaXMgcHJvamVjdCBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBsaWNlbnNlXG5cblxuLy8vL1xuLy8vIGluY2x1ZGUtbWVkaWEgbGlicmFyeSBwdWJsaWMgY29uZmlndXJhdGlvblxuLy8vIEBhdXRob3IgRWR1YXJkbyBCb3VjYXNcbi8vLyBAYWNjZXNzIHB1YmxpY1xuLy8vL1xuXG5cbi8vL1xuLy8vIENyZWF0ZXMgYSBsaXN0IG9mIGdsb2JhbCBicmVha3BvaW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzaW5nbGUgYnJlYWtwb2ludCB3aXRoIHRoZSBsYWJlbCBgcGhvbmVgXG4vLy8gICRicmVha3BvaW50czogKCdwaG9uZSc6IDMyMHB4KTtcbi8vL1xuJGJyZWFrcG9pbnRzOiAoXG4gICdwaG9uZSc6IDMyMHB4LFxuICAndGFibGV0JzogNzY4cHgsXG4gICdkZXNrdG9wJzogMTAyNHB4XG4pICFkZWZhdWx0O1xuXG5cbi8vL1xuLy8vIENyZWF0ZXMgYSBsaXN0IG9mIHN0YXRpYyBleHByZXNzaW9ucyBvciBtZWRpYSB0eXBlc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzaW5nbGUgbWVkaWEgdHlwZSAoc2NyZWVuKVxuLy8vICAkbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJzogJ3NjcmVlbicpO1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzdGF0aWMgZXhwcmVzc2lvbiB3aXRoIGxvZ2ljYWwgZGlzanVuY3Rpb24gKE9SIG9wZXJhdG9yKVxuLy8vICAkbWVkaWEtZXhwcmVzc2lvbnM6IChcbi8vLyAgICAncmV0aW5hMngnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSdcbi8vLyAgKTtcbi8vL1xuJG1lZGlhLWV4cHJlc3Npb25zOiAoXG4gICdzY3JlZW4nOiAnc2NyZWVuJyxcbiAgJ3ByaW50JzogJ3ByaW50JyxcbiAgJ2hhbmRoZWxkJzogJ2hhbmRoZWxkJyxcbiAgJ2xhbmRzY2FwZSc6ICcob3JpZW50YXRpb246IGxhbmRzY2FwZSknLFxuICAncG9ydHJhaXQnOiAnKG9yaWVudGF0aW9uOiBwb3J0cmFpdCknLFxuICAncmV0aW5hMngnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSwgKG1pbi1yZXNvbHV0aW9uOiAyZHBweCknLFxuICAncmV0aW5hM3gnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMyksIChtaW4tcmVzb2x1dGlvbjogMzUwZHBpKSwgKG1pbi1yZXNvbHV0aW9uOiAzZHBweCknXG4pICFkZWZhdWx0O1xuXG5cbi8vL1xuLy8vIERlZmluZXMgYSBudW1iZXIgdG8gYmUgYWRkZWQgb3Igc3VidHJhY3RlZCBmcm9tIGVhY2ggdW5pdCB3aGVuIGRlY2xhcmluZyBicmVha3BvaW50cyB3aXRoIGV4Y2x1c2l2ZSBpbnRlcnZhbHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgcGl4ZWxzIGlzIGRlZmluZWQgYXMgYDFgIGJ5IGRlZmF1bHRcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4xMjhweCcpIHt9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMTI5cHgpIHt9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIGVtcyBpcyBkZWZpbmVkIGFzIGAwLjAxYCBieSBkZWZhdWx0XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+MjBlbScpIHt9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMjAuMDFlbSkge31cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgcmVtcyBpcyBkZWZpbmVkIGFzIGAwLjFgIGJ5IGRlZmF1bHQsIHRvIGJlIHVzZWQgd2l0aCBgZm9udC1zaXplOiA2Mi41JTtgXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+Mi4wcmVtJykge31cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAyLjFyZW0pIHt9XG4vLy9cbiR1bml0LWludGVydmFsczogKFxuICAncHgnOiAxLFxuICAnZW0nOiAwLjAxLFxuICAncmVtJzogMC4xLFxuICAnJzogMFxuKSAhZGVmYXVsdDtcblxuLy8vXG4vLy8gRGVmaW5lcyB3aGV0aGVyIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXMgaXMgYXZhaWxhYmxlLCB1c2VmdWwgZm9yIGNyZWF0aW5nIHNlcGFyYXRlIHN0eWxlc2hlZXRzXG4vLy8gZm9yIGJyb3dzZXJzIHRoYXQgZG9uJ3Qgc3VwcG9ydCBtZWRpYSBxdWVyaWVzLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIERpc2FibGVzIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXNcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgLmZvbyB7XG4vLy8gICAgY29sb3I6IHRvbWF0bztcbi8vLyAgfVxuLy8vXG4kaW0tbWVkaWEtc3VwcG9ydDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vXG4vLy8gU2VsZWN0cyB3aGljaCBicmVha3BvaW50IHRvIGVtdWxhdGUgd2hlbiBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzIGlzIGRpc2FibGVkLiBNZWRpYSBxdWVyaWVzIHRoYXQgc3RhcnQgYXQgb3Jcbi8vLyBpbnRlcmNlcHQgdGhlIGJyZWFrcG9pbnQgd2lsbCBiZSBkaXNwbGF5ZWQsIGFueSBvdGhlcnMgd2lsbCBiZSBpZ25vcmVkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnRcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgLmZvbyB7XG4vLy8gICAgY29sb3I6IHRvbWF0bztcbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBOT1Qgc2hvdyBiZWNhdXNlIGl0IGRvZXMgbm90IGludGVyY2VwdCB0aGUgZGVza3RvcCBicmVha3BvaW50XG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICd0YWJsZXQnO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj1kZXNrdG9wJykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBObyBvdXRwdXQgKi9cbi8vL1xuJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJyAhZGVmYXVsdDtcblxuLy8vXG4vLy8gU2VsZWN0cyB3aGljaCBtZWRpYSBleHByZXNzaW9ucyBhcmUgYWxsb3dlZCBpbiBhbiBleHByZXNzaW9uIGZvciBpdCB0byBiZSB1c2VkIHdoZW4gbWVkaWEgcXVlcmllc1xuLy8vIGFyZSBub3Qgc3VwcG9ydGVkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnQgYW5kIGNvbnRhaW5zIG9ubHkgYWNjZXB0ZWQgbWVkaWEgZXhwcmVzc2lvbnNcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xuLy8vICAkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJyk7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcsICdzY3JlZW4nKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gICAuZm9vIHtcbi8vLyAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgTk9UIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludCBidXQgY29udGFpbnMgYSBtZWRpYSBleHByZXNzaW9uIHRoYXQgaXMgbm90IGFjY2VwdGVkXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcbi8vLyAgJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicpO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAncmV0aW5hMngnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIE5vIG91dHB1dCAqL1xuLy8vXG4kaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJywgJ3BvcnRyYWl0JywgJ2xhbmRzY2FwZScpICFkZWZhdWx0O1xuXG4vLy8vXG4vLy8gQ3Jvc3MtZW5naW5lIGxvZ2dpbmcgZW5naW5lXG4vLy8gQGF1dGhvciBIdWdvIEdpcmF1ZGVsXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy8vXG5cblxuLy8vXG4vLy8gTG9nIGEgbWVzc2FnZSBlaXRoZXIgd2l0aCBgQGVycm9yYCBpZiBzdXBwb3J0ZWRcbi8vLyBlbHNlIHdpdGggYEB3YXJuYCwgdXNpbmcgYGZlYXR1cmUtZXhpc3RzKCdhdC1lcnJvcicpYFxuLy8vIHRvIGRldGVjdCBzdXBwb3J0LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtZXNzYWdlIC0gTWVzc2FnZSB0byBsb2dcbi8vL1xuQGZ1bmN0aW9uIGxvZygkbWVzc2FnZSkge1xuICBAaWYgZmVhdHVyZS1leGlzdHMoJ2F0LWVycm9yJykge1xuICAgIEBlcnJvciAkbWVzc2FnZTtcbiAgfSBAZWxzZSB7XG4gICAgQHdhcm4gJG1lc3NhZ2U7XG4gICAgJF86IG5vb3AoKTtcbiAgfVxuXG4gIEByZXR1cm4gJG1lc3NhZ2U7XG59XG5cblxuLy8vXG4vLy8gV3JhcHBlciBtaXhpbiBmb3IgdGhlIGxvZyBmdW5jdGlvbiBzbyBpdCBjYW4gYmUgdXNlZCB3aXRoIGEgbW9yZSBmcmllbmRseVxuLy8vIEFQSSB0aGFuIGBAaWYgbG9nKCcuLicpIHt9YCBvciBgJF86IGxvZygnLi4nKWAuIEJhc2ljYWxseSwgdXNlIHRoZSBmdW5jdGlvblxuLy8vIHdpdGhpbiBmdW5jdGlvbnMgYmVjYXVzZSBpdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluIGEgZnVuY3Rpb25cbi8vLyBhbmQgdXNlIHRoZSBtaXhpbiBldmVyeXdoZXJlIGVsc2UgYmVjYXVzZSBpdCdzIG11Y2ggbW9yZSBlbGVnYW50LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtZXNzYWdlIC0gTWVzc2FnZSB0byBsb2dcbi8vL1xuQG1peGluIGxvZygkbWVzc2FnZSkge1xuICBAaWYgbG9nKCRtZXNzYWdlKSB7fVxufVxuXG5cbi8vL1xuLy8vIEZ1bmN0aW9uIHdpdGggbm8gYEByZXR1cm5gIGNhbGxlZCBuZXh0IHRvIGBAd2FybmAgaW4gU2FzcyAzLjNcbi8vLyB0byB0cmlnZ2VyIGEgY29tcGlsaW5nIGVycm9yIGFuZCBzdG9wIHRoZSBwcm9jZXNzLlxuLy8vXG5AZnVuY3Rpb24gbm9vcCgpIHt9XG5cbi8vL1xuLy8vIERldGVybWluZXMgd2hldGhlciBhIGxpc3Qgb2YgY29uZGl0aW9ucyBpcyBpbnRlcmNlcHRlZCBieSB0aGUgc3RhdGljIGJyZWFrcG9pbnQuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICAgJGNvbmRpdGlvbnMgIC0gTWVkaWEgcXVlcnkgY29uZGl0aW9uc1xuLy8vXG4vLy8gQHJldHVybiB7Qm9vbGVhbn0gLSBSZXR1cm5zIHRydWUgaWYgdGhlIGNvbmRpdGlvbnMgYXJlIGludGVyY2VwdGVkIGJ5IHRoZSBzdGF0aWMgYnJlYWtwb2ludFxuLy8vXG5AZnVuY3Rpb24gaW0taW50ZXJjZXB0cy1zdGF0aWMtYnJlYWtwb2ludCgkY29uZGl0aW9ucy4uLikge1xuICAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICRpbS1uby1tZWRpYS1icmVha3BvaW50KTtcblxuICBAaWYgbm90ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlIHtcbiAgICBAaWYgbG9nKCdgI3skaW0tbm8tbWVkaWEtYnJlYWtwb2ludH1gIGlzIG5vdCBhIHZhbGlkIGJyZWFrcG9pbnQuJykge31cbiAgfVxuXG4gIEBlYWNoICRjb25kaXRpb24gaW4gJGNvbmRpdGlvbnMge1xuICAgIEBpZiBub3QgbWFwLWhhcy1rZXkoJG1lZGlhLWV4cHJlc3Npb25zLCAkY29uZGl0aW9uKSB7XG4gICAgICAkb3BlcmF0b3I6IGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRjb25kaXRpb24pO1xuICAgICAgJHByZWZpeDogZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcik7XG4gICAgICAkdmFsdWU6IGdldC1leHByZXNzaW9uLXZhbHVlKCRjb25kaXRpb24sICRvcGVyYXRvcik7XG5cbiAgICAgIC8vIHNjc3MtbGludDpkaXNhYmxlIFNwYWNlQXJvdW5kT3BlcmF0b3JcbiAgICAgIEBpZiAoJHByZWZpeCA9PSAnbWF4JyBhbmQgJHZhbHVlIDw9ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlKSBvclxuICAgICAgICAgICgkcHJlZml4ID09ICdtaW4nIGFuZCAkdmFsdWUgPiAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSkge1xuICAgICAgICBAcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgbm90IGluZGV4KCRpbS1uby1tZWRpYS1leHByZXNzaW9ucywgJGNvbmRpdGlvbikge1xuICAgICAgQHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIHRydWU7XG59XG5cbi8vLy9cbi8vLyBQYXJzaW5nIGVuZ2luZVxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vL1xuXG5cbi8vL1xuLy8vIEdldCBvcGVyYXRvciBvZiBhbiBleHByZXNzaW9uXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3Qgb3BlcmF0b3IgZnJvbVxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIEFueSBvZiBgPj1gLCBgPmAsIGA8PWAsIGA8YCwgYOKJpWAsIGDiiaRgXG4vLy9cbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkZXhwcmVzc2lvbikge1xuICBAZWFjaCAkb3BlcmF0b3IgaW4gKCc+PScsICc+JywgJzw9JywgJzwnLCAn4omlJywgJ+KJpCcpIHtcbiAgICBAaWYgc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcbiAgICAgIEByZXR1cm4gJG9wZXJhdG9yO1xuICAgIH1cbiAgfVxuXG4gIC8vIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW5zaWRlIGEgZnVuY3Rpb24sIHNvIHdlIGhhdmUgdG9cbiAgLy8gcmVseSBvbiB0aGUgYGxvZyguLilgIGZ1bmN0aW9uIHJhdGhlciB0aGFuIHRoZSBgbG9nKC4uKWAgbWl4aW4uIEJlY2F1c2VcbiAgLy8gZnVuY3Rpb25zIGNhbm5vdCBiZSBjYWxsZWQgYW55d2hlcmUgaW4gU2Fzcywgd2UgbmVlZCB0byBoYWNrIHRoZSBjYWxsIGluXG4gIC8vIGEgZHVtbXkgdmFyaWFibGUsIHN1Y2ggYXMgYCRfYC4gSWYgYW55Ym9keSBldmVyIHJhaXNlIGEgc2NvcGluZyBpc3N1ZSB3aXRoXG4gIC8vIFNhc3MgMy4zLCBjaGFuZ2UgdGhpcyBsaW5lIGluIGBAaWYgbG9nKC4uKSB7fWAgaW5zdGVhZC5cbiAgJF86IGxvZygnTm8gb3BlcmF0b3IgZm91bmQgaW4gYCN7JGV4cHJlc3Npb259YC4nKTtcbn1cblxuXG4vLy9cbi8vLyBHZXQgZGltZW5zaW9uIG9mIGFuIGV4cHJlc3Npb24sIGJhc2VkIG9uIGEgZm91bmQgb3BlcmF0b3Jcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCBkaW1lbnNpb24gZnJvbVxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvciBmcm9tIGAkZXhwcmVzc2lvbmBcbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBgd2lkdGhgIG9yIGBoZWlnaHRgIChvciBwb3RlbnRpYWxseSBhbnl0aGluZyBlbHNlKVxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tZGltZW5zaW9uKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcbiAgJG9wZXJhdG9yLWluZGV4OiBzdHItaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XG4gICRwYXJzZWQtZGltZW5zaW9uOiBzdHItc2xpY2UoJGV4cHJlc3Npb24sIDAsICRvcGVyYXRvci1pbmRleCAtIDEpO1xuICAkZGltZW5zaW9uOiAnd2lkdGgnO1xuXG4gIEBpZiBzdHItbGVuZ3RoKCRwYXJzZWQtZGltZW5zaW9uKSA+IDAge1xuICAgICRkaW1lbnNpb246ICRwYXJzZWQtZGltZW5zaW9uO1xuICB9XG5cbiAgQHJldHVybiAkZGltZW5zaW9uO1xufVxuXG5cbi8vL1xuLy8vIEdldCBkaW1lbnNpb24gcHJlZml4IGJhc2VkIG9uIGFuIG9wZXJhdG9yXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3Jcbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBgbWluYCBvciBgbWF4YFxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcikge1xuICBAcmV0dXJuIGlmKGluZGV4KCgnPCcsICc8PScsICfiiaQnKSwgJG9wZXJhdG9yKSwgJ21heCcsICdtaW4nKTtcbn1cblxuXG4vLy9cbi8vLyBHZXQgdmFsdWUgb2YgYW4gZXhwcmVzc2lvbiwgYmFzZWQgb24gYSBmb3VuZCBvcGVyYXRvclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IHZhbHVlIGZyb21cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3IgZnJvbSBgJGV4cHJlc3Npb25gXG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gQSBudW1lcmljIHZhbHVlXG4vLy9cbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XG4gICRvcGVyYXRvci1pbmRleDogc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuICAkdmFsdWU6IHN0ci1zbGljZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yLWluZGV4ICsgc3RyLWxlbmd0aCgkb3BlcmF0b3IpKTtcblxuICBAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkdmFsdWUpIHtcbiAgICAkdmFsdWU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkdmFsdWUpO1xuICB9IEBlbHNlIHtcbiAgICAkdmFsdWU6IHRvLW51bWJlcigkdmFsdWUpO1xuICB9XG5cbiAgJGludGVydmFsOiBtYXAtZ2V0KCR1bml0LWludGVydmFscywgdW5pdCgkdmFsdWUpKTtcblxuICBAaWYgbm90ICRpbnRlcnZhbCB7XG4gICAgLy8gSXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbnNpZGUgYSBmdW5jdGlvbiwgc28gd2UgaGF2ZSB0b1xuICAgIC8vIHJlbHkgb24gdGhlIGBsb2coLi4pYCBmdW5jdGlvbiByYXRoZXIgdGhhbiB0aGUgYGxvZyguLilgIG1peGluLiBCZWNhdXNlXG4gICAgLy8gZnVuY3Rpb25zIGNhbm5vdCBiZSBjYWxsZWQgYW55d2hlcmUgaW4gU2Fzcywgd2UgbmVlZCB0byBoYWNrIHRoZSBjYWxsIGluXG4gICAgLy8gYSBkdW1teSB2YXJpYWJsZSwgc3VjaCBhcyBgJF9gLiBJZiBhbnlib2R5IGV2ZXIgcmFpc2UgYSBzY29waW5nIGlzc3VlIHdpdGhcbiAgICAvLyBTYXNzIDMuMywgY2hhbmdlIHRoaXMgbGluZSBpbiBgQGlmIGxvZyguLikge31gIGluc3RlYWQuXG4gICAgJF86IGxvZygnVW5rbm93biB1bml0IGAje3VuaXQoJHZhbHVlKX1gLicpO1xuICB9XG5cbiAgQGlmICRvcGVyYXRvciA9PSAnPicge1xuICAgICR2YWx1ZTogJHZhbHVlICsgJGludGVydmFsO1xuICB9IEBlbHNlIGlmICRvcGVyYXRvciA9PSAnPCcge1xuICAgICR2YWx1ZTogJHZhbHVlIC0gJGludGVydmFsO1xuICB9XG5cbiAgQHJldHVybiAkdmFsdWU7XG59XG5cblxuLy8vXG4vLy8gUGFyc2UgYW4gZXhwcmVzc2lvbiB0byByZXR1cm4gYSB2YWxpZCBtZWRpYS1xdWVyeSBleHByZXNzaW9uXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIHBhcnNlXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gVmFsaWQgbWVkaWEgcXVlcnlcbi8vL1xuQGZ1bmN0aW9uIHBhcnNlLWV4cHJlc3Npb24oJGV4cHJlc3Npb24pIHtcbiAgLy8gSWYgaXQgaXMgcGFydCBvZiAkbWVkaWEtZXhwcmVzc2lvbnMsIGl0IGhhcyBubyBvcGVyYXRvclxuICAvLyB0aGVuIHRoZXJlIGlzIG5vIG5lZWQgdG8gZ28gYW55IGZ1cnRoZXIsIGp1c3QgcmV0dXJuIHRoZSB2YWx1ZVxuICBAaWYgbWFwLWhhcy1rZXkoJG1lZGlhLWV4cHJlc3Npb25zLCAkZXhwcmVzc2lvbikge1xuICAgIEByZXR1cm4gbWFwLWdldCgkbWVkaWEtZXhwcmVzc2lvbnMsICRleHByZXNzaW9uKTtcbiAgfVxuXG4gICRvcGVyYXRvcjogZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGV4cHJlc3Npb24pO1xuICAkZGltZW5zaW9uOiBnZXQtZXhwcmVzc2lvbi1kaW1lbnNpb24oJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XG4gICRwcmVmaXg6IGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpO1xuICAkdmFsdWU6IGdldC1leHByZXNzaW9uLXZhbHVlKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuXG4gIEByZXR1cm4gJygjeyRwcmVmaXh9LSN7JGRpbWVuc2lvbn06ICN7JHZhbHVlfSknO1xufVxuXG4vLy9cbi8vLyBTbGljZSBgJGxpc3RgIGJldHdlZW4gYCRzdGFydGAgYW5kIGAkZW5kYCBpbmRleGVzXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJGxpc3QgLSBMaXN0IHRvIHNsaWNlXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzdGFydCBbMV0gLSBTdGFydCBpbmRleFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZW5kIFtsZW5ndGgoJGxpc3QpXSAtIEVuZCBpbmRleFxuLy8vXG4vLy8gQHJldHVybiB7TGlzdH0gU2xpY2VkIGxpc3Rcbi8vL1xuQGZ1bmN0aW9uIHNsaWNlKCRsaXN0LCAkc3RhcnQ6IDEsICRlbmQ6IGxlbmd0aCgkbGlzdCkpIHtcbiAgQGlmIGxlbmd0aCgkbGlzdCkgPCAxIG9yICRzdGFydCA+ICRlbmQge1xuICAgIEByZXR1cm4gKCk7XG4gIH1cblxuICAkcmVzdWx0OiAoKTtcblxuICBAZm9yICRpIGZyb20gJHN0YXJ0IHRocm91Z2ggJGVuZCB7XG4gICAgJHJlc3VsdDogYXBwZW5kKCRyZXN1bHQsIG50aCgkbGlzdCwgJGkpKTtcbiAgfVxuXG4gIEByZXR1cm4gJHJlc3VsdDtcbn1cblxuLy8vL1xuLy8vIFN0cmluZyB0byBudW1iZXIgY29udmVydGVyXG4vLy8gQGF1dGhvciBIdWdvIEdpcmF1ZGVsXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy8vXG5cblxuLy8vXG4vLy8gQ2FzdHMgYSBzdHJpbmcgaW50byBhIG51bWJlclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmcgfCBOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGJlIHBhcnNlZFxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfVxuLy8vXG5AZnVuY3Rpb24gdG8tbnVtYmVyKCR2YWx1ZSkge1xuICBAaWYgdHlwZS1vZigkdmFsdWUpID09ICdudW1iZXInIHtcbiAgICBAcmV0dXJuICR2YWx1ZTtcbiAgfSBAZWxzZSBpZiB0eXBlLW9mKCR2YWx1ZSkgIT0gJ3N0cmluZycge1xuICAgICRfOiBsb2coJ1ZhbHVlIGZvciBgdG8tbnVtYmVyYCBzaG91bGQgYmUgYSBudW1iZXIgb3IgYSBzdHJpbmcuJyk7XG4gIH1cblxuICAkZmlyc3QtY2hhcmFjdGVyOiBzdHItc2xpY2UoJHZhbHVlLCAxLCAxKTtcbiAgJHJlc3VsdDogMDtcbiAgJGRpZ2l0czogMDtcbiAgJG1pbnVzOiAoJGZpcnN0LWNoYXJhY3RlciA9PSAnLScpO1xuICAkbnVtYmVyczogKCcwJzogMCwgJzEnOiAxLCAnMic6IDIsICczJzogMywgJzQnOiA0LCAnNSc6IDUsICc2JzogNiwgJzcnOiA3LCAnOCc6IDgsICc5JzogOSk7XG5cbiAgLy8gUmVtb3ZlICsvLSBzaWduIGlmIHByZXNlbnQgYXQgZmlyc3QgY2hhcmFjdGVyXG4gIEBpZiAoJGZpcnN0LWNoYXJhY3RlciA9PSAnKycgb3IgJGZpcnN0LWNoYXJhY3RlciA9PSAnLScpIHtcbiAgICAkdmFsdWU6IHN0ci1zbGljZSgkdmFsdWUsIDIpO1xuICB9XG5cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBzdHItbGVuZ3RoKCR2YWx1ZSkge1xuICAgICRjaGFyYWN0ZXI6IHN0ci1zbGljZSgkdmFsdWUsICRpLCAkaSk7XG5cbiAgICBAaWYgbm90IChpbmRleChtYXAta2V5cygkbnVtYmVycyksICRjaGFyYWN0ZXIpIG9yICRjaGFyYWN0ZXIgPT0gJy4nKSB7XG4gICAgICBAcmV0dXJuIHRvLWxlbmd0aChpZigkbWludXMsIC0kcmVzdWx0LCAkcmVzdWx0KSwgc3RyLXNsaWNlKCR2YWx1ZSwgJGkpKVxuICAgIH1cblxuICAgIEBpZiAkY2hhcmFjdGVyID09ICcuJyB7XG4gICAgICAkZGlnaXRzOiAxO1xuICAgIH0gQGVsc2UgaWYgJGRpZ2l0cyA9PSAwIHtcbiAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKiAxMCArIG1hcC1nZXQoJG51bWJlcnMsICRjaGFyYWN0ZXIpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJGRpZ2l0czogJGRpZ2l0cyAqIDEwO1xuICAgICAgJHJlc3VsdDogJHJlc3VsdCArIG1hcC1nZXQoJG51bWJlcnMsICRjaGFyYWN0ZXIpIC8gJGRpZ2l0cztcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIGlmKCRtaW51cywgLSRyZXN1bHQsICRyZXN1bHQpO1xufVxuXG5cbi8vL1xuLy8vIEFkZCBgJHVuaXRgIHRvIGAkdmFsdWVgXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gVmFsdWUgdG8gYWRkIHVuaXQgdG9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHVuaXQgLSBTdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHVuaXRcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn0gLSBgJHZhbHVlYCBleHByZXNzZWQgaW4gYCR1bml0YFxuLy8vXG5AZnVuY3Rpb24gdG8tbGVuZ3RoKCR2YWx1ZSwgJHVuaXQpIHtcbiAgJHVuaXRzOiAoJ3B4JzogMXB4LCAnY20nOiAxY20sICdtbSc6IDFtbSwgJyUnOiAxJSwgJ2NoJzogMWNoLCAncGMnOiAxcGMsICdpbic6IDFpbiwgJ2VtJzogMWVtLCAncmVtJzogMXJlbSwgJ3B0JzogMXB0LCAnZXgnOiAxZXgsICd2dyc6IDF2dywgJ3ZoJzogMXZoLCAndm1pbic6IDF2bWluLCAndm1heCc6IDF2bWF4KTtcblxuICBAaWYgbm90IGluZGV4KG1hcC1rZXlzKCR1bml0cyksICR1bml0KSB7XG4gICAgJF86IGxvZygnSW52YWxpZCB1bml0IGAjeyR1bml0fWAuJyk7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZSAqIG1hcC1nZXQoJHVuaXRzLCAkdW5pdCk7XG59XG5cbi8vL1xuLy8vIFRoaXMgbWl4aW4gYWltcyBhdCByZWRlZmluaW5nIHRoZSBjb25maWd1cmF0aW9uIGp1c3QgZm9yIHRoZSBzY29wZSBvZlxuLy8vIHRoZSBjYWxsLiBJdCBpcyBoZWxwZnVsIHdoZW4gaGF2aW5nIGEgY29tcG9uZW50IG5lZWRpbmcgYW4gZXh0ZW5kZWRcbi8vLyBjb25maWd1cmF0aW9uIHN1Y2ggYXMgY3VzdG9tIGJyZWFrcG9pbnRzIChyZWZlcnJlZCB0byBhcyB0d2Vha3BvaW50cylcbi8vLyBmb3IgaW5zdGFuY2UuXG4vLy9cbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkdHdlYWtwb2ludHMgWygpXSAtIE1hcCBvZiB0d2Vha3BvaW50cyB0byBiZSBtZXJnZWQgd2l0aCBgJGJyZWFrcG9pbnRzYFxuLy8vIEBwYXJhbSB7TWFwfSAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnMgWygpXSAtIE1hcCBvZiB0d2Vha2VkIG1lZGlhIGV4cHJlc3Npb25zIHRvIGJlIG1lcmdlZCB3aXRoIGAkbWVkaWEtZXhwcmVzc2lvbmBcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgdGhlIGdsb2JhbCBicmVha3BvaW50cyB3aXRoIGEgdHdlYWtwb2ludFxuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCgnY3VzdG9tJzogNjc4cHgpKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJywgJzw9Y3VzdG9tJykge1xuLy8vICAgICAgIC8vIC4uLlxuLy8vICAgICAgfVxuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCB0aGUgZ2xvYmFsIG1lZGlhIGV4cHJlc3Npb25zIHdpdGggYSBjdXN0b20gb25lXG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zOiAoJ2FsbCc6ICdhbGwnKSkge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJ2FsbCcsICc+cGhvbmUnKSB7XG4vLy8gICAgICAgLy8gLi4uXG4vLy8gICAgICB9XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIGJvdGggY29uZmlndXJhdGlvbiBtYXBzXG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoKCdjdXN0b20nOiA2NzhweCksICgnYWxsJzogJ2FsbCcpKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnYWxsJywgJz5waG9uZScsICc8PWN1c3RvbScpIHtcbi8vLyAgICAgICAvLyAuLi5cbi8vLyAgICAgIH1cbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuQG1peGluIG1lZGlhLWNvbnRleHQoJHR3ZWFrcG9pbnRzOiAoKSwgJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zOiAoKSkge1xuICAvLyBTYXZlIGdsb2JhbCBjb25maWd1cmF0aW9uXG4gICRnbG9iYWwtYnJlYWtwb2ludHM6ICRicmVha3BvaW50cztcbiAgJGdsb2JhbC1tZWRpYS1leHByZXNzaW9uczogJG1lZGlhLWV4cHJlc3Npb25zO1xuXG4gIC8vIFVwZGF0ZSBnbG9iYWwgY29uZmlndXJhdGlvblxuICAkYnJlYWtwb2ludHM6IG1hcC1tZXJnZSgkYnJlYWtwb2ludHMsICR0d2Vha3BvaW50cykgIWdsb2JhbDtcbiAgJG1lZGlhLWV4cHJlc3Npb25zOiBtYXAtbWVyZ2UoJG1lZGlhLWV4cHJlc3Npb25zLCAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnMpICFnbG9iYWw7XG5cbiAgQGNvbnRlbnQ7XG5cbiAgLy8gUmVzdG9yZSBnbG9iYWwgY29uZmlndXJhdGlvblxuICAkYnJlYWtwb2ludHM6ICRnbG9iYWwtYnJlYWtwb2ludHMgIWdsb2JhbDtcbiAgJG1lZGlhLWV4cHJlc3Npb25zOiAkZ2xvYmFsLW1lZGlhLWV4cHJlc3Npb25zICFnbG9iYWw7XG59XG5cbi8vLy9cbi8vLyBpbmNsdWRlLW1lZGlhIHB1YmxpYyBleHBvc2VkIEFQSVxuLy8vIEBhdXRob3IgRWR1YXJkbyBCb3VjYXNcbi8vLyBAYWNjZXNzIHB1YmxpY1xuLy8vL1xuXG5cbi8vL1xuLy8vIEdlbmVyYXRlcyBhIG1lZGlhIHF1ZXJ5IGJhc2VkIG9uIGEgbGlzdCBvZiBjb25kaXRpb25zXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICAgJGNvbmRpdGlvbnMgIC0gTWVkaWEgcXVlcnkgY29uZGl0aW9uc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggYSBzaW5nbGUgc2V0IGJyZWFrcG9pbnRcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggdHdvIHNldCBicmVha3BvaW50c1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJywgJzw9dGFibGV0JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBjdXN0b20gdmFsdWVzXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PTM1OHB4JywgJzw4NTBweCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggc2V0IGJyZWFrcG9pbnRzIHdpdGggY3VzdG9tIHZhbHVlc1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPmRlc2t0b3AnLCAnPD0xMzUwcHgnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGEgc3RhdGljIGV4cHJlc3Npb25cbi8vLyAgQGluY2x1ZGUgbWVkaWEoJ3JldGluYTJ4JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gTWl4aW5nIGV2ZXJ5dGhpbmdcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49MzUwcHgnLCAnPHRhYmxldCcsICdyZXRpbmEzeCcpIHsgfVxuLy8vXG5AbWl4aW4gbWVkaWEoJGNvbmRpdGlvbnMuLi4pIHtcbiAgLy8gc2Nzcy1saW50OmRpc2FibGUgU3BhY2VBcm91bmRPcGVyYXRvclxuICBAaWYgKCRpbS1tZWRpYS1zdXBwb3J0IGFuZCBsZW5ndGgoJGNvbmRpdGlvbnMpID09IDApIG9yXG4gICAgICAobm90ICRpbS1tZWRpYS1zdXBwb3J0IGFuZCBpbS1pbnRlcmNlcHRzLXN0YXRpYy1icmVha3BvaW50KCRjb25kaXRpb25zLi4uKSkge1xuICAgIEBjb250ZW50O1xuICB9IEBlbHNlIGlmICgkaW0tbWVkaWEtc3VwcG9ydCBhbmQgbGVuZ3RoKCRjb25kaXRpb25zKSA+IDApIHtcbiAgICBAbWVkaWEgI3t1bnF1b3RlKHBhcnNlLWV4cHJlc3Npb24obnRoKCRjb25kaXRpb25zLCAxKSkpfSB7XG4gICAgICAvLyBSZWN1cnNpdmUgY2FsbFxuICAgICAgQGluY2x1ZGUgbWVkaWEoc2xpY2UoJGNvbmRpdGlvbnMsIDIpLi4uKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4gKiBTd2lwZXIgMy4zLjFcbiAqIE1vc3QgbW9kZXJuIG1vYmlsZSB0b3VjaCBzbGlkZXIgYW5kIGZyYW1ld29yayB3aXRoIGhhcmR3YXJlIGFjY2VsZXJhdGVkIHRyYW5zaXRpb25zXG4gKiBcbiAqIGh0dHA6Ly93d3cuaWRhbmdlcm8udXMvc3dpcGVyL1xuICogXG4gKiBDb3B5cmlnaHQgMjAxNiwgVmxhZGltaXIgS2hhcmxhbXBpZGlcbiAqIFRoZSBpRGFuZ2Vyby51c1xuICogaHR0cDovL3d3dy5pZGFuZ2Vyby51cy9cbiAqIFxuICogTGljZW5zZWQgdW5kZXIgTUlUXG4gKiBcbiAqIFJlbGVhc2VkIG9uOiBGZWJydWFyeSA3LCAyMDE2XG4gKi9cbi5zd2lwZXItY29udGFpbmVyIHtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgLyogRml4IG9mIFdlYmtpdCBmbGlja2VyaW5nICovXG4gIHotaW5kZXg6IDE7XG59XG4uc3dpcGVyLWNvbnRhaW5lci1uby1mbGV4Ym94IC5zd2lwZXItc2xpZGUge1xuICBmbG9hdDogbGVmdDtcbn1cbi5zd2lwZXItY29udGFpbmVyLXZlcnRpY2FsID4gLnN3aXBlci13cmFwcGVyIHtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgLW1vei1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbi5zd2lwZXItd3JhcHBlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgei1pbmRleDogMTtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIGRpc3BsYXk6IC1tb3otYm94O1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICBkaXNwbGF5OiBmbGV4O1xuICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IC13ZWJraXQtdHJhbnNmb3JtO1xuICAtbW96LXRyYW5zaXRpb24tcHJvcGVydHk6IC1tb3otdHJhbnNmb3JtO1xuICAtby10cmFuc2l0aW9uLXByb3BlcnR5OiAtby10cmFuc2Zvcm07XG4gIC1tcy10cmFuc2l0aW9uLXByb3BlcnR5OiAtbXMtdHJhbnNmb3JtO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm07XG4gIC13ZWJraXQtYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xufVxuLnN3aXBlci1jb250YWluZXItYW5kcm9pZCAuc3dpcGVyLXNsaWRlLFxuLnN3aXBlci13cmFwcGVyIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDBweCwgMCwgMCk7XG4gIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwcHgsIDAsIDApO1xuICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwcHgsIDBweCk7XG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDBweCwgMCwgMCk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMHB4LCAwLCAwKTtcbn1cbi5zd2lwZXItY29udGFpbmVyLW11bHRpcm93ID4gLnN3aXBlci13cmFwcGVyIHtcbiAgLXdlYmtpdC1ib3gtbGluZXM6IG11bHRpcGxlO1xuICAtbW96LWJveC1saW5lczogbXVsdGlwbGU7XG4gIC1tcy1mbGV4LXdyYXA6IHdyYXA7XG4gIC13ZWJraXQtZmxleC13cmFwOiB3cmFwO1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG4uc3dpcGVyLWNvbnRhaW5lci1mcmVlLW1vZGUgPiAuc3dpcGVyLXdyYXBwZXIge1xuICAtd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbiAgLW1vei10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gIC1tcy10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gIC1vLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xuICBtYXJnaW46IDAgYXV0bztcbn1cbi5zd2lwZXItc2xpZGUge1xuICAtd2Via2l0LWZsZXgtc2hyaW5rOiAwO1xuICAtbXMtZmxleDogMCAwIGF1dG87XG4gIGZsZXgtc2hyaW5rOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4vKiBBdXRvIEhlaWdodCAqL1xuLnN3aXBlci1jb250YWluZXItYXV0b2hlaWdodCxcbi5zd2lwZXItY29udGFpbmVyLWF1dG9oZWlnaHQgLnN3aXBlci1zbGlkZSB7XG4gIGhlaWdodDogYXV0bztcbn1cbi5zd2lwZXItY29udGFpbmVyLWF1dG9oZWlnaHQgLnN3aXBlci13cmFwcGVyIHtcbiAgLXdlYmtpdC1ib3gtYWxpZ246IHN0YXJ0O1xuICAtbXMtZmxleC1hbGlnbjogc3RhcnQ7XG4gIC13ZWJraXQtYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IC13ZWJraXQtdHJhbnNmb3JtLCBoZWlnaHQ7XG4gIC1tb3otdHJhbnNpdGlvbi1wcm9wZXJ0eTogLW1vei10cmFuc2Zvcm07XG4gIC1vLXRyYW5zaXRpb24tcHJvcGVydHk6IC1vLXRyYW5zZm9ybTtcbiAgLW1zLXRyYW5zaXRpb24tcHJvcGVydHk6IC1tcy10cmFuc2Zvcm07XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgaGVpZ2h0O1xufVxuLyogYTExeSAqL1xuLnN3aXBlci1jb250YWluZXIgLnN3aXBlci1ub3RpZmljYXRpb24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIG9wYWNpdHk6IDA7XG4gIHotaW5kZXg6IC0xMDAwO1xufVxuLyogSUUxMCBXaW5kb3dzIFBob25lIDggRml4ZXMgKi9cbi5zd2lwZXItd3A4LWhvcml6b250YWwge1xuICAtbXMtdG91Y2gtYWN0aW9uOiBwYW4teTtcbiAgdG91Y2gtYWN0aW9uOiBwYW4teTtcbn1cbi5zd2lwZXItd3A4LXZlcnRpY2FsIHtcbiAgLW1zLXRvdWNoLWFjdGlvbjogcGFuLXg7XG4gIHRvdWNoLWFjdGlvbjogcGFuLXg7XG59XG4vKiBBcnJvd3MgKi9cbi5zd2lwZXItYnV0dG9uLXByZXYsXG4uc3dpcGVyLWJ1dHRvbi1uZXh0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgd2lkdGg6IDI3cHg7XG4gIGhlaWdodDogNDRweDtcbiAgbWFyZ2luLXRvcDogLTIycHg7XG4gIHotaW5kZXg6IDEwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIC1tb3otYmFja2dyb3VuZC1zaXplOiAyN3B4IDQ0cHg7XG4gIC13ZWJraXQtYmFja2dyb3VuZC1zaXplOiAyN3B4IDQ0cHg7XG4gIGJhY2tncm91bmQtc2l6ZTogMjdweCA0NHB4O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG59XG4uc3dpcGVyLWJ1dHRvbi1wcmV2LnN3aXBlci1idXR0b24tZGlzYWJsZWQsXG4uc3dpcGVyLWJ1dHRvbi1uZXh0LnN3aXBlci1idXR0b24tZGlzYWJsZWQge1xuICBvcGFjaXR5OiAwLjM1O1xuICBjdXJzb3I6IGF1dG87XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnN3aXBlci1idXR0b24tcHJldixcbi5zd2lwZXItY29udGFpbmVyLXJ0bCAuc3dpcGVyLWJ1dHRvbi1uZXh0IHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmLTgsJTNDc3ZnJTIweG1sbnMlM0QnaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJyUyMHZpZXdCb3glM0QnMCUyMDAlMjAyNyUyMDQ0JyUzRSUzQ3BhdGglMjBkJTNEJ00wJTJDMjJMMjIlMkMwbDIuMSUyQzIuMUw0LjIlMkMyMmwxOS45JTJDMTkuOUwyMiUyQzQ0TDAlMkMyMkwwJTJDMjJMMCUyQzIyeiclMjBmaWxsJTNEJyUyMzAwN2FmZiclMkYlM0UlM0MlMkZzdmclM0VcIik7XG4gIGxlZnQ6IDEwcHg7XG4gIHJpZ2h0OiBhdXRvO1xufVxuLnN3aXBlci1idXR0b24tcHJldi5zd2lwZXItYnV0dG9uLWJsYWNrLFxuLnN3aXBlci1jb250YWluZXItcnRsIC5zd2lwZXItYnV0dG9uLW5leHQuc3dpcGVyLWJ1dHRvbi1ibGFjayB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0Zi04LCUzQ3N2ZyUyMHhtbG5zJTNEJ2h0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyclMjB2aWV3Qm94JTNEJzAlMjAwJTIwMjclMjA0NCclM0UlM0NwYXRoJTIwZCUzRCdNMCUyQzIyTDIyJTJDMGwyLjElMkMyLjFMNC4yJTJDMjJsMTkuOSUyQzE5LjlMMjIlMkM0NEwwJTJDMjJMMCUyQzIyTDAlMkMyMnonJTIwZmlsbCUzRCclMjMwMDAwMDAnJTJGJTNFJTNDJTJGc3ZnJTNFXCIpO1xufVxuLnN3aXBlci1idXR0b24tcHJldi5zd2lwZXItYnV0dG9uLXdoaXRlLFxuLnN3aXBlci1jb250YWluZXItcnRsIC5zd2lwZXItYnV0dG9uLW5leHQuc3dpcGVyLWJ1dHRvbi13aGl0ZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0Zi04LCUzQ3N2ZyUyMHhtbG5zJTNEJ2h0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyclMjB2aWV3Qm94JTNEJzAlMjAwJTIwMjclMjA0NCclM0UlM0NwYXRoJTIwZCUzRCdNMCUyQzIyTDIyJTJDMGwyLjElMkMyLjFMNC4yJTJDMjJsMTkuOSUyQzE5LjlMMjIlMkM0NEwwJTJDMjJMMCUyQzIyTDAlMkMyMnonJTIwZmlsbCUzRCclMjNmZmZmZmYnJTJGJTNFJTNDJTJGc3ZnJTNFXCIpO1xufVxuLnN3aXBlci1idXR0b24tbmV4dCxcbi5zd2lwZXItY29udGFpbmVyLXJ0bCAuc3dpcGVyLWJ1dHRvbi1wcmV2IHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmLTgsJTNDc3ZnJTIweG1sbnMlM0QnaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJyUyMHZpZXdCb3glM0QnMCUyMDAlMjAyNyUyMDQ0JyUzRSUzQ3BhdGglMjBkJTNEJ00yNyUyQzIyTDI3JTJDMjJMNSUyQzQ0bC0yLjEtMi4xTDIyLjglMkMyMkwyLjklMkMyLjFMNSUyQzBMMjclMkMyMkwyNyUyQzIyeiclMjBmaWxsJTNEJyUyMzAwN2FmZiclMkYlM0UlM0MlMkZzdmclM0VcIik7XG4gIHJpZ2h0OiAxMHB4O1xuICBsZWZ0OiBhdXRvO1xufVxuLnN3aXBlci1idXR0b24tbmV4dC5zd2lwZXItYnV0dG9uLWJsYWNrLFxuLnN3aXBlci1jb250YWluZXItcnRsIC5zd2lwZXItYnV0dG9uLXByZXYuc3dpcGVyLWJ1dHRvbi1ibGFjayB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0Zi04LCUzQ3N2ZyUyMHhtbG5zJTNEJ2h0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyclMjB2aWV3Qm94JTNEJzAlMjAwJTIwMjclMjA0NCclM0UlM0NwYXRoJTIwZCUzRCdNMjclMkMyMkwyNyUyQzIyTDUlMkM0NGwtMi4xLTIuMUwyMi44JTJDMjJMMi45JTJDMi4xTDUlMkMwTDI3JTJDMjJMMjclMkMyMnonJTIwZmlsbCUzRCclMjMwMDAwMDAnJTJGJTNFJTNDJTJGc3ZnJTNFXCIpO1xufVxuLnN3aXBlci1idXR0b24tbmV4dC5zd2lwZXItYnV0dG9uLXdoaXRlLFxuLnN3aXBlci1jb250YWluZXItcnRsIC5zd2lwZXItYnV0dG9uLXByZXYuc3dpcGVyLWJ1dHRvbi13aGl0ZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0Zi04LCUzQ3N2ZyUyMHhtbG5zJTNEJ2h0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyclMjB2aWV3Qm94JTNEJzAlMjAwJTIwMjclMjA0NCclM0UlM0NwYXRoJTIwZCUzRCdNMjclMkMyMkwyNyUyQzIyTDUlMkM0NGwtMi4xLTIuMUwyMi44JTJDMjJMMi45JTJDMi4xTDUlMkMwTDI3JTJDMjJMMjclMkMyMnonJTIwZmlsbCUzRCclMjNmZmZmZmYnJTJGJTNFJTNDJTJGc3ZnJTNFXCIpO1xufVxuLyogUGFnaW5hdGlvbiBTdHlsZXMgKi9cbi5zd2lwZXItcGFnaW5hdGlvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAtd2Via2l0LXRyYW5zaXRpb246IDMwMG1zO1xuICAtbW96LXRyYW5zaXRpb246IDMwMG1zO1xuICAtby10cmFuc2l0aW9uOiAzMDBtcztcbiAgdHJhbnNpdGlvbjogMzAwbXM7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIHotaW5kZXg6IDEwO1xufVxuLnN3aXBlci1wYWdpbmF0aW9uLnN3aXBlci1wYWdpbmF0aW9uLWhpZGRlbiB7XG4gIG9wYWNpdHk6IDA7XG59XG4vKiBDb21tb24gU3R5bGVzICovXG4uc3dpcGVyLXBhZ2luYXRpb24tZnJhY3Rpb24sXG4uc3dpcGVyLXBhZ2luYXRpb24tY3VzdG9tLFxuLnN3aXBlci1jb250YWluZXItaG9yaXpvbnRhbCA+IC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzIHtcbiAgYm90dG9tOiAxMHB4O1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbn1cbi8qIEJ1bGxldHMgKi9cbi5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQge1xuICB3aWR0aDogOHB4O1xuICBoZWlnaHQ6IDhweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICBiYWNrZ3JvdW5kOiAjMDAwO1xuICBvcGFjaXR5OiAwLjI7XG59XG5idXR0b24uc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0IHtcbiAgYm9yZGVyOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgLW1zLWFwcGVhcmFuY2U6IG5vbmU7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbn1cbi5zd2lwZXItcGFnaW5hdGlvbi1jbGlja2FibGUgLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldCB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5zd2lwZXItcGFnaW5hdGlvbi13aGl0ZSAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0IHtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbn1cbi5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQtYWN0aXZlIHtcbiAgb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZDogIzAwN2FmZjtcbn1cbi5zd2lwZXItcGFnaW5hdGlvbi13aGl0ZSAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LWFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG59XG4uc3dpcGVyLXBhZ2luYXRpb24tYmxhY2sgLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldC1hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiAjMDAwO1xufVxuLnN3aXBlci1jb250YWluZXItdmVydGljYWwgPiAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cyB7XG4gIHJpZ2h0OiAxMHB4O1xuICB0b3A6IDUwJTtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDBweCwgLTUwJSwgMCk7XG4gIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwcHgsIC01MCUsIDApO1xuICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwcHgsIC01MCUpO1xuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwcHgsIC01MCUsIDApO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDBweCwgLTUwJSwgMCk7XG59XG4uc3dpcGVyLWNvbnRhaW5lci12ZXJ0aWNhbCA+IC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQge1xuICBtYXJnaW46IDVweCAwO1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5zd2lwZXItY29udGFpbmVyLWhvcml6b250YWwgPiAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cyAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0IHtcbiAgbWFyZ2luOiAwIDVweDtcbn1cbi8qIFByb2dyZXNzICovXG4uc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3Mge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMjUpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG4uc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3MgLnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzYmFyIHtcbiAgYmFja2dyb3VuZDogIzAwN2FmZjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgLW1zLXRyYW5zZm9ybTogc2NhbGUoMCk7XG4gIC1vLXRyYW5zZm9ybTogc2NhbGUoMCk7XG4gIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCB0b3A7XG4gIC1tb3otdHJhbnNmb3JtLW9yaWdpbjogbGVmdCB0b3A7XG4gIC1tcy10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IHRvcDtcbiAgLW8tdHJhbnNmb3JtLW9yaWdpbjogbGVmdCB0b3A7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgdG9wO1xufVxuLnN3aXBlci1jb250YWluZXItcnRsIC5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzcyAuc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3NiYXIge1xuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IHRvcDtcbiAgLW1vei10cmFuc2Zvcm0tb3JpZ2luOiByaWdodCB0b3A7XG4gIC1tcy10cmFuc2Zvcm0tb3JpZ2luOiByaWdodCB0b3A7XG4gIC1vLXRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IHRvcDtcbiAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgdG9wO1xufVxuLnN3aXBlci1jb250YWluZXItaG9yaXpvbnRhbCA+IC5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzcyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDRweDtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xufVxuLnN3aXBlci1jb250YWluZXItdmVydGljYWwgPiAuc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3Mge1xuICB3aWR0aDogNHB4O1xuICBoZWlnaHQ6IDEwMCU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbn1cbi5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzcy5zd2lwZXItcGFnaW5hdGlvbi13aGl0ZSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzcy5zd2lwZXItcGFnaW5hdGlvbi13aGl0ZSAuc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3NiYXIge1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xufVxuLnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzLnN3aXBlci1wYWdpbmF0aW9uLWJsYWNrIC5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2JhciB7XG4gIGJhY2tncm91bmQ6ICMwMDA7XG59XG4vKiAzRCBDb250YWluZXIgKi9cbi5zd2lwZXItY29udGFpbmVyLTNkIHtcbiAgLXdlYmtpdC1wZXJzcGVjdGl2ZTogMTIwMHB4O1xuICAtbW96LXBlcnNwZWN0aXZlOiAxMjAwcHg7XG4gIC1vLXBlcnNwZWN0aXZlOiAxMjAwcHg7XG4gIHBlcnNwZWN0aXZlOiAxMjAwcHg7XG59XG4uc3dpcGVyLWNvbnRhaW5lci0zZCAuc3dpcGVyLXdyYXBwZXIsXG4uc3dpcGVyLWNvbnRhaW5lci0zZCAuc3dpcGVyLXNsaWRlLFxuLnN3aXBlci1jb250YWluZXItM2QgLnN3aXBlci1zbGlkZS1zaGFkb3ctbGVmdCxcbi5zd2lwZXItY29udGFpbmVyLTNkIC5zd2lwZXItc2xpZGUtc2hhZG93LXJpZ2h0LFxuLnN3aXBlci1jb250YWluZXItM2QgLnN3aXBlci1zbGlkZS1zaGFkb3ctdG9wLFxuLnN3aXBlci1jb250YWluZXItM2QgLnN3aXBlci1zbGlkZS1zaGFkb3ctYm90dG9tLFxuLnN3aXBlci1jb250YWluZXItM2QgLnN3aXBlci1jdWJlLXNoYWRvdyB7XG4gIC13ZWJraXQtdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcbiAgLW1vei10cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkO1xuICAtbXMtdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcbiAgdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcbn1cbi5zd2lwZXItY29udGFpbmVyLTNkIC5zd2lwZXItc2xpZGUtc2hhZG93LWxlZnQsXG4uc3dpcGVyLWNvbnRhaW5lci0zZCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1yaWdodCxcbi5zd2lwZXItY29udGFpbmVyLTNkIC5zd2lwZXItc2xpZGUtc2hhZG93LXRvcCxcbi5zd2lwZXItY29udGFpbmVyLTNkIC5zd2lwZXItc2xpZGUtc2hhZG93LWJvdHRvbSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgei1pbmRleDogMTA7XG59XG4uc3dpcGVyLWNvbnRhaW5lci0zZCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1sZWZ0IHtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCByaWdodCB0b3AsIGZyb20ocmdiYSgwLCAwLCAwLCAwLjUpKSwgdG8ocmdiYSgwLCAwLCAwLCAwKSkpO1xuICAvKiBTYWZhcmkgNCssIENocm9tZSAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChyaWdodCwgcmdiYSgwLCAwLCAwLCAwLjUpLCByZ2JhKDAsIDAsIDAsIDApKTtcbiAgLyogQ2hyb21lIDEwKywgU2FmYXJpIDUuMSssIGlPUyA1KyAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtbW96LWxpbmVhci1ncmFkaWVudChyaWdodCwgcmdiYSgwLCAwLCAwLCAwLjUpLCByZ2JhKDAsIDAsIDAsIDApKTtcbiAgLyogRmlyZWZveCAzLjYtMTUgKi9cbiAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KHJpZ2h0LCByZ2JhKDAsIDAsIDAsIDAuNSksIHJnYmEoMCwgMCwgMCwgMCkpO1xuICAvKiBPcGVyYSAxMS4xMC0xMi4wMCAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gbGVmdCwgcmdiYSgwLCAwLCAwLCAwLjUpLCByZ2JhKDAsIDAsIDAsIDApKTtcbiAgLyogRmlyZWZveCAxNissIElFMTAsIE9wZXJhIDEyLjUwKyAqL1xufVxuLnN3aXBlci1jb250YWluZXItM2QgLnN3aXBlci1zbGlkZS1zaGFkb3ctcmlnaHQge1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgcmlnaHQgdG9wLCBsZWZ0IHRvcCwgZnJvbShyZ2JhKDAsIDAsIDAsIDAuNSkpLCB0byhyZ2JhKDAsIDAsIDAsIDApKSk7XG4gIC8qIFNhZmFyaSA0KywgQ2hyb21lICovXG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQsIHJnYmEoMCwgMCwgMCwgMC41KSwgcmdiYSgwLCAwLCAwLCAwKSk7XG4gIC8qIENocm9tZSAxMCssIFNhZmFyaSA1LjErLCBpT1MgNSsgKi9cbiAgYmFja2dyb3VuZC1pbWFnZTogLW1vei1saW5lYXItZ3JhZGllbnQobGVmdCwgcmdiYSgwLCAwLCAwLCAwLjUpLCByZ2JhKDAsIDAsIDAsIDApKTtcbiAgLyogRmlyZWZveCAzLjYtMTUgKi9cbiAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KGxlZnQsIHJnYmEoMCwgMCwgMCwgMC41KSwgcmdiYSgwLCAwLCAwLCAwKSk7XG4gIC8qIE9wZXJhIDExLjEwLTEyLjAwICovXG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgwLCAwLCAwLCAwLjUpLCByZ2JhKDAsIDAsIDAsIDApKTtcbiAgLyogRmlyZWZveCAxNissIElFMTAsIE9wZXJhIDEyLjUwKyAqL1xufVxuLnN3aXBlci1jb250YWluZXItM2QgLnN3aXBlci1zbGlkZS1zaGFkb3ctdG9wIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgZnJvbShyZ2JhKDAsIDAsIDAsIDAuNSkpLCB0byhyZ2JhKDAsIDAsIDAsIDApKSk7XG4gIC8qIFNhZmFyaSA0KywgQ2hyb21lICovXG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGJvdHRvbSwgcmdiYSgwLCAwLCAwLCAwLjUpLCByZ2JhKDAsIDAsIDAsIDApKTtcbiAgLyogQ2hyb21lIDEwKywgU2FmYXJpIDUuMSssIGlPUyA1KyAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtbW96LWxpbmVhci1ncmFkaWVudChib3R0b20sIHJnYmEoMCwgMCwgMCwgMC41KSwgcmdiYSgwLCAwLCAwLCAwKSk7XG4gIC8qIEZpcmVmb3ggMy42LTE1ICovXG4gIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudChib3R0b20sIHJnYmEoMCwgMCwgMCwgMC41KSwgcmdiYSgwLCAwLCAwLCAwKSk7XG4gIC8qIE9wZXJhIDExLjEwLTEyLjAwICovXG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byB0b3AsIHJnYmEoMCwgMCwgMCwgMC41KSwgcmdiYSgwLCAwLCAwLCAwKSk7XG4gIC8qIEZpcmVmb3ggMTYrLCBJRTEwLCBPcGVyYSAxMi41MCsgKi9cbn1cbi5zd2lwZXItY29udGFpbmVyLTNkIC5zd2lwZXItc2xpZGUtc2hhZG93LWJvdHRvbSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IGJvdHRvbSwgbGVmdCB0b3AsIGZyb20ocmdiYSgwLCAwLCAwLCAwLjUpKSwgdG8ocmdiYSgwLCAwLCAwLCAwKSkpO1xuICAvKiBTYWZhcmkgNCssIENocm9tZSAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsIHJnYmEoMCwgMCwgMCwgMC41KSwgcmdiYSgwLCAwLCAwLCAwKSk7XG4gIC8qIENocm9tZSAxMCssIFNhZmFyaSA1LjErLCBpT1MgNSsgKi9cbiAgYmFja2dyb3VuZC1pbWFnZTogLW1vei1saW5lYXItZ3JhZGllbnQodG9wLCByZ2JhKDAsIDAsIDAsIDAuNSksIHJnYmEoMCwgMCwgMCwgMCkpO1xuICAvKiBGaXJlZm94IDMuNi0xNSAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQodG9wLCByZ2JhKDAsIDAsIDAsIDAuNSksIHJnYmEoMCwgMCwgMCwgMCkpO1xuICAvKiBPcGVyYSAxMS4xMC0xMi4wMCAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDAsIDAsIDAsIDAuNSksIHJnYmEoMCwgMCwgMCwgMCkpO1xuICAvKiBGaXJlZm94IDE2KywgSUUxMCwgT3BlcmEgMTIuNTArICovXG59XG4vKiBDb3ZlcmZsb3cgKi9cbi5zd2lwZXItY29udGFpbmVyLWNvdmVyZmxvdyAuc3dpcGVyLXdyYXBwZXIsXG4uc3dpcGVyLWNvbnRhaW5lci1mbGlwIC5zd2lwZXItd3JhcHBlciB7XG4gIC8qIFdpbmRvd3MgOCBJRSAxMCBmaXggKi9cbiAgLW1zLXBlcnNwZWN0aXZlOiAxMjAwcHg7XG59XG4vKiBDdWJlICsgRmxpcCAqL1xuLnN3aXBlci1jb250YWluZXItY3ViZSxcbi5zd2lwZXItY29udGFpbmVyLWZsaXAge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cbi5zd2lwZXItY29udGFpbmVyLWN1YmUgLnN3aXBlci1zbGlkZSxcbi5zd2lwZXItY29udGFpbmVyLWZsaXAgLnN3aXBlci1zbGlkZSB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgLW1vei1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIC1tcy1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgei1pbmRleDogMTtcbn1cbi5zd2lwZXItY29udGFpbmVyLWN1YmUgLnN3aXBlci1zbGlkZSAuc3dpcGVyLXNsaWRlLFxuLnN3aXBlci1jb250YWluZXItZmxpcCAuc3dpcGVyLXNsaWRlIC5zd2lwZXItc2xpZGUge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5zd2lwZXItY29udGFpbmVyLWN1YmUgLnN3aXBlci1zbGlkZS1hY3RpdmUsXG4uc3dpcGVyLWNvbnRhaW5lci1mbGlwIC5zd2lwZXItc2xpZGUtYWN0aXZlLFxuLnN3aXBlci1jb250YWluZXItY3ViZSAuc3dpcGVyLXNsaWRlLWFjdGl2ZSAuc3dpcGVyLXNsaWRlLWFjdGl2ZSxcbi5zd2lwZXItY29udGFpbmVyLWZsaXAgLnN3aXBlci1zbGlkZS1hY3RpdmUgLnN3aXBlci1zbGlkZS1hY3RpdmUge1xuICBwb2ludGVyLWV2ZW50czogYXV0bztcbn1cbi5zd2lwZXItY29udGFpbmVyLWN1YmUgLnN3aXBlci1zbGlkZS1zaGFkb3ctdG9wLFxuLnN3aXBlci1jb250YWluZXItZmxpcCAuc3dpcGVyLXNsaWRlLXNoYWRvdy10b3AsXG4uc3dpcGVyLWNvbnRhaW5lci1jdWJlIC5zd2lwZXItc2xpZGUtc2hhZG93LWJvdHRvbSxcbi5zd2lwZXItY29udGFpbmVyLWZsaXAgLnN3aXBlci1zbGlkZS1zaGFkb3ctYm90dG9tLFxuLnN3aXBlci1jb250YWluZXItY3ViZSAuc3dpcGVyLXNsaWRlLXNoYWRvdy1sZWZ0LFxuLnN3aXBlci1jb250YWluZXItZmxpcCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1sZWZ0LFxuLnN3aXBlci1jb250YWluZXItY3ViZSAuc3dpcGVyLXNsaWRlLXNoYWRvdy1yaWdodCxcbi5zd2lwZXItY29udGFpbmVyLWZsaXAgLnN3aXBlci1zbGlkZS1zaGFkb3ctcmlnaHQge1xuICB6LWluZGV4OiAwO1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgLW1vei1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIC1tcy1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbi8qIEN1YmUgKi9cbi5zd2lwZXItY29udGFpbmVyLWN1YmUgLnN3aXBlci1zbGlkZSB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XG4gIC1tb3otdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xuICAtbXMtdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG4uc3dpcGVyLWNvbnRhaW5lci1jdWJlLnN3aXBlci1jb250YWluZXItcnRsIC5zd2lwZXItc2xpZGUge1xuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMDtcbiAgLW1vei10cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDA7XG4gIC1tcy10cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDA7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMDtcbn1cbi5zd2lwZXItY29udGFpbmVyLWN1YmUgLnN3aXBlci1zbGlkZS1hY3RpdmUsXG4uc3dpcGVyLWNvbnRhaW5lci1jdWJlIC5zd2lwZXItc2xpZGUtbmV4dCxcbi5zd2lwZXItY29udGFpbmVyLWN1YmUgLnN3aXBlci1zbGlkZS1wcmV2LFxuLnN3aXBlci1jb250YWluZXItY3ViZSAuc3dpcGVyLXNsaWRlLW5leHQgKyAuc3dpcGVyLXNsaWRlIHtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG59XG4uc3dpcGVyLWNvbnRhaW5lci1jdWJlIC5zd2lwZXItY3ViZS1zaGFkb3cge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIGJvdHRvbTogMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kOiAjMDAwO1xuICBvcGFjaXR5OiAwLjY7XG4gIC13ZWJraXQtZmlsdGVyOiBibHVyKDUwcHgpO1xuICBmaWx0ZXI6IGJsdXIoNTBweCk7XG4gIHotaW5kZXg6IDA7XG59XG4vKiBGYWRlICovXG4uc3dpcGVyLWNvbnRhaW5lci1mYWRlLnN3aXBlci1jb250YWluZXItZnJlZS1tb2RlIC5zd2lwZXItc2xpZGUge1xuICAtd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbiAgLW1vei10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gIC1tcy10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gIC1vLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xufVxuLnN3aXBlci1jb250YWluZXItZmFkZSAuc3dpcGVyLXNsaWRlIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eTtcbiAgLW1vei10cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5O1xuICAtby10cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5O1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5O1xufVxuLnN3aXBlci1jb250YWluZXItZmFkZSAuc3dpcGVyLXNsaWRlIC5zd2lwZXItc2xpZGUge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5zd2lwZXItY29udGFpbmVyLWZhZGUgLnN3aXBlci1zbGlkZS1hY3RpdmUsXG4uc3dpcGVyLWNvbnRhaW5lci1mYWRlIC5zd2lwZXItc2xpZGUtYWN0aXZlIC5zd2lwZXItc2xpZGUtYWN0aXZlIHtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG59XG4vKiBTY3JvbGxiYXIgKi9cbi5zd2lwZXItc2Nyb2xsYmFyIHtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAtbXMtdG91Y2gtYWN0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG4uc3dpcGVyLWNvbnRhaW5lci1ob3Jpem9udGFsID4gLnN3aXBlci1zY3JvbGxiYXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDElO1xuICBib3R0b206IDNweDtcbiAgei1pbmRleDogNTA7XG4gIGhlaWdodDogNXB4O1xuICB3aWR0aDogOTglO1xufVxuLnN3aXBlci1jb250YWluZXItdmVydGljYWwgPiAuc3dpcGVyLXNjcm9sbGJhciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDNweDtcbiAgdG9wOiAxJTtcbiAgei1pbmRleDogNTA7XG4gIHdpZHRoOiA1cHg7XG4gIGhlaWdodDogOTglO1xufVxuLnN3aXBlci1zY3JvbGxiYXItZHJhZyB7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjUpO1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG59XG4uc3dpcGVyLXNjcm9sbGJhci1jdXJzb3ItZHJhZyB7XG4gIGN1cnNvcjogbW92ZTtcbn1cbi8qIFByZWxvYWRlciAqL1xuLnN3aXBlci1sYXp5LXByZWxvYWRlciB7XG4gIHdpZHRoOiA0MnB4O1xuICBoZWlnaHQ6IDQycHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNTAlO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0yMXB4O1xuICBtYXJnaW4tdG9wOiAtMjFweDtcbiAgei1pbmRleDogMTA7XG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogNTAlO1xuICAtbW96LXRyYW5zZm9ybS1vcmlnaW46IDUwJTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogNTAlO1xuICAtd2Via2l0LWFuaW1hdGlvbjogc3dpcGVyLXByZWxvYWRlci1zcGluIDFzIHN0ZXBzKDEyLCBlbmQpIGluZmluaXRlO1xuICAtbW96LWFuaW1hdGlvbjogc3dpcGVyLXByZWxvYWRlci1zcGluIDFzIHN0ZXBzKDEyLCBlbmQpIGluZmluaXRlO1xuICBhbmltYXRpb246IHN3aXBlci1wcmVsb2FkZXItc3BpbiAxcyBzdGVwcygxMiwgZW5kKSBpbmZpbml0ZTtcbn1cbi5zd2lwZXItbGF6eS1wcmVsb2FkZXI6YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29udGVudDogXCJcIjtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmLTgsJTNDc3ZnJTIwdmlld0JveCUzRCcwJTIwMCUyMDEyMCUyMDEyMCclMjB4bWxucyUzRCdodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmcnJTIweG1sbnMlM0F4bGluayUzRCdodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjE5OTklMkZ4bGluayclM0UlM0NkZWZzJTNFJTNDbGluZSUyMGlkJTNEJ2wnJTIweDElM0QnNjAnJTIweDIlM0QnNjAnJTIweTElM0QnNyclMjB5MiUzRCcyNyclMjBzdHJva2UlM0QnJTIzNmM2YzZjJyUyMHN0cm9rZS13aWR0aCUzRCcxMSclMjBzdHJva2UtbGluZWNhcCUzRCdyb3VuZCclMkYlM0UlM0MlMkZkZWZzJTNFJTNDZyUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjI3JyUyRiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjI3JyUyMHRyYW5zZm9ybSUzRCdyb3RhdGUoMzAlMjA2MCUyQzYwKSclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy4yNyclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDYwJTIwNjAlMkM2MCknJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuMjcnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSg5MCUyMDYwJTJDNjApJyUyRiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjI3JyUyMHRyYW5zZm9ybSUzRCdyb3RhdGUoMTIwJTIwNjAlMkM2MCknJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuMjcnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSgxNTAlMjA2MCUyQzYwKSclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy4zNyclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDE4MCUyMDYwJTJDNjApJyUyRiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjQ2JyUyMHRyYW5zZm9ybSUzRCdyb3RhdGUoMjEwJTIwNjAlMkM2MCknJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuNTYnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSgyNDAlMjA2MCUyQzYwKSclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy42NiclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDI3MCUyMDYwJTJDNjApJyUyRiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjc1JyUyMHRyYW5zZm9ybSUzRCdyb3RhdGUoMzAwJTIwNjAlMkM2MCknJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuODUnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSgzMzAlMjA2MCUyQzYwKSclMkYlM0UlM0MlMkZnJTNFJTNDJTJGc3ZnJTNFXCIpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCU7XG4gIC13ZWJraXQtYmFja2dyb3VuZC1zaXplOiAxMDAlO1xuICBiYWNrZ3JvdW5kLXNpemU6IDEwMCU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG59XG4uc3dpcGVyLWxhenktcHJlbG9hZGVyLXdoaXRlOmFmdGVyIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmLTgsJTNDc3ZnJTIwdmlld0JveCUzRCcwJTIwMCUyMDEyMCUyMDEyMCclMjB4bWxucyUzRCdodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmcnJTIweG1sbnMlM0F4bGluayUzRCdodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjE5OTklMkZ4bGluayclM0UlM0NkZWZzJTNFJTNDbGluZSUyMGlkJTNEJ2wnJTIweDElM0QnNjAnJTIweDIlM0QnNjAnJTIweTElM0QnNyclMjB5MiUzRCcyNyclMjBzdHJva2UlM0QnJTIzZmZmJyUyMHN0cm9rZS13aWR0aCUzRCcxMSclMjBzdHJva2UtbGluZWNhcCUzRCdyb3VuZCclMkYlM0UlM0MlMkZkZWZzJTNFJTNDZyUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjI3JyUyRiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjI3JyUyMHRyYW5zZm9ybSUzRCdyb3RhdGUoMzAlMjA2MCUyQzYwKSclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy4yNyclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDYwJTIwNjAlMkM2MCknJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuMjcnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSg5MCUyMDYwJTJDNjApJyUyRiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjI3JyUyMHRyYW5zZm9ybSUzRCdyb3RhdGUoMTIwJTIwNjAlMkM2MCknJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuMjcnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSgxNTAlMjA2MCUyQzYwKSclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy4zNyclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDE4MCUyMDYwJTJDNjApJyUyRiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjQ2JyUyMHRyYW5zZm9ybSUzRCdyb3RhdGUoMjEwJTIwNjAlMkM2MCknJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuNTYnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSgyNDAlMjA2MCUyQzYwKSclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy42NiclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDI3MCUyMDYwJTJDNjApJyUyRiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjc1JyUyMHRyYW5zZm9ybSUzRCdyb3RhdGUoMzAwJTIwNjAlMkM2MCknJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuODUnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSgzMzAlMjA2MCUyQzYwKSclMkYlM0UlM0MlMkZnJTNFJTNDJTJGc3ZnJTNFXCIpO1xufVxuQC13ZWJraXQta2V5ZnJhbWVzIHN3aXBlci1wcmVsb2FkZXItc3BpbiB7XG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgfVxufVxuQGtleWZyYW1lcyBzd2lwZXItcHJlbG9hZGVyLXNwaW4ge1xuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICB9XG59IiwiJGJyZWFrcG9pbnRzOiAocGhvbmU6IDMyMHB4LCBsUGhvbmU6NTYwcHgsIHRhYmxldDogNzY4cHgsIGRlc2t0b3A6IDEwMjRweCwgbERlc2t0b3A6IDE0MDBweCk7XG5cbiRtYXJnaW4teHNtYWxsOiAuODc1cmVtO1xuJG1hcmdpbi1zbWFsbDogMS4zMTI1cmVtO1xuJG1hcmdpbi1tZWRpdW06IDIuNjI1cmVtO1xuJG1hcmdpbi1sYXJnZTogNS4yNXJlbTtcbiRtYXJnaW4teGxhcmdlOiAxMC41cmVtO1xuXG4kZWFzZS1vdXQtY3ViaWM6IGN1YmljLWJlemllcigwLjIxNSwgMC42MTAsIDAuMzU1LCAxLjAwMCk7IFxuXG5AbWl4aW4gc21vb3RoaW5ne1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzpncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6YW50aWFsaWFzZWQ7XG59XG5cbkBtaXhpbiBjbGVhcntcbiAgJjphZnRlcntcbiAgICBjb250ZW50OicnO1xuICAgIGRpc3BsYXk6dGFibGU7XG4gICAgY2xlYXI6Ym90aDtcbiAgfVxufVxuXG5AbWl4aW4gdHlwZS11cHBlcmNhc2V7XG4gIGZvbnQtZmFtaWx5OiAkZm9udC1saW5ldG87XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjNlbVxufVxuXG5AbWl4aW4gZmxleC1jZW50ZXJ7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG5AbWl4aW4gZmxleC1ib3R0b217XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1jb250ZW50OiBmbGV4LWVuZDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xufVxuXG5AbWl4aW4gZmxleC1jZW50ZXItbGVmdHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG5AbWl4aW4gZmxleC1jZW50ZXItcmlnaHR7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbkBtaXhpbiByZXNldC1saXN0e1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46MDtcbiAgcGFkZGluZzowO1xufVxuXG5AbWl4aW4gbGltaXQtZWRnZS1wYXJhc3tcbiAgcDpmaXJzdC1jaGlsZHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG4gIHA6bGFzdC1jaGlsZHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbkBtaXhpbiBob3ZlcntcbiAgLm5vLXRvdWNoZXZlbnRzICZ7XG4gICAgJjpob3ZlcntcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZhZGVJbntcbiAgMCV7XG4gICAgb3BhY2l0eTowO1xuICB9XG4gIDEwMCV7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufSIsImJvZHl7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbmh0bWx7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgJi53Zi1hY3RpdmV7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgfVxufVxuXG4qLCAqOmJlZm9yZSwgKjphZnRlcntcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLmNsZWFyOmFmdGVyIHtcbiAgY29udGVudDpcIlwiO1xuICBkaXNwbGF5OmJsb2NrO1xuICBjbGVhcjpib3RoO1xufVxuXG4uZmxvYXQtbGVmdHtcbiAgZmxvYXQ6bGVmdDtcbn1cblxuLmZsb2F0LXJpZ2h0e1xuICBmbG9hdDpyaWdodDtcbn1cblxuLmlubmVye1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5wYWdlLWJvZHl7XG4gIEBpbmNsdWRlIG1lZGlhKFwiPj10YWJsZXRcIikge1xuICAgIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICB9XG4gIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgbWluLWhlaWdodDogY2FsYygxMDB2aCAtIDUzcHgpO1xuICB9XG4gIEBpbmNsdWRlIG1lZGlhKFwiPj10YWJsZXRcIikge1xuICAgIHBhZGRpbmctdG9wOiA1LjYyNXJlbTtcbiAgfVxufVxuXG4uc3dpcGVyLWxhenl7XG4gIG9wYWNpdHk6IDA7XG59XG5cbi5zd2lwZXItbGF6eS1sb2FkZWR7XG4gIG9wYWNpdHk6IDE7XG59IiwiLy9cbi8vIEltcG9ydCBCYXNlIENvbXBvbmVudHNcbi8vXG5cbkBpbXBvcnQgJ2NvbXBvbmVudHMvdHlwb2dyYXBoeSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL25hdic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Nhcm91c2VsJztcblxuLy9cbi8vIEltcG9ydCBQYWdlc1xuLy9cblxuQGltcG9ydCAncGFnZXMvcGFnZSc7XG5AaW1wb3J0ICdwYWdlcy93b3JrLXNpbmdsZSc7XG5AaW1wb3J0ICdwYWdlcy9hYm91dCc7XG5AaW1wb3J0ICdwYWdlcy9jb250YWN0JztcbkBpbXBvcnQgJ3BhZ2VzL3ByZXNzJztcbkBpbXBvcnQgJ3BhZ2VzL3NlYXJjaCc7XG5AaW1wb3J0ICdwYWdlcy9wcmVzcyc7XG5AaW1wb3J0ICdwYWdlcy9sYW5kaW5nJztcbkBpbXBvcnQgJ3BhZ2VzLzQwNCc7IiwiLyogVHlwb2dyYXBoeVxuLS0tLS0tLS0tLS0tLS0qL1xuXG5odG1se1xuICBAaW5jbHVkZSBtZWRpYShcIjw9dGFibGV0XCIpIHtcbiAgICBmb250LXNpemU6IDc1JTsgXG4gIH1cbn1cblxuYm9keXtcbiAgZm9udDogMS44NzVlbS8xICdjb3Ntb3MnLCAnSGVsdmV0aWNhJywgJ0FyaWFsJywgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDA1ZW07XG4gIGNvbG9yOiAjMUYxRjFGO1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBAaW5jbHVkZSBzbW9vdGhpbmc7XG4gIGZvbnQtZmVhdHVyZS1zZXR0aW5nczogJ3RudW0nO1xufVxuXG5he1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOmluaGVyaXQ7XG59XG5cbmIsIHN0cm9uZ3tcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cblxuLyogSGVhZGluZ3Ncbi0tLS0tLS0tLS0tLS0tKi9cblxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNntcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zaXplOiAxZW07XG4gIG1hcmdpbjogMDtcbn1cblxuaHJ7XG4gIGJvcmRlcjogMDtcbiAgaGVpZ2h0OiAxcHg7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDA7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLnBhZ2UtdGV4dC0tc21hbGx7XG4gIGxpbmUtaGVpZ2h0OiAxLjI1O1xuICBAaW5jbHVkZSBtZWRpYShcIj49bFBob25lXCIpIHtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgfVxuICBAaW5jbHVkZSBtZWRpYShcIjxsUGhvbmVcIikge1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgfVxufSIsIi5zaXRlLWhlYWRlcntcbiAgQGluY2x1ZGUgbWVkaWEoXCI+PXRhYmxldFwiKSB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHotaW5kZXg6IDUwMDtcbiAgICBwYWRkaW5nOiAxLjc1cmVtICRtYXJnaW4tbWVkaXVtO1xuICB9XG4gIHdpZHRoOiAxMDAlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAmLnRpdGxlLXN3aXRjaHtcbiAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuICB9XG4gIC5ob21lICZ7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDUwMG1zICRlYXNlLW91dC1jdWJpYztcbiAgfVxuICAuaG9tZSAme1xuICAgICYuaXMtYWN0aXZle1xuICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICB9XG4gIH1cbn1cblxuQGluY2x1ZGUgbWVkaWEoXCI+PXRhYmxldFwiKSB7XG4gIC50aXRsZS1zd2l0Y2h7XG4gICAgQGluY2x1ZGUgaG92ZXJ7XG4gICAgICAudGl0bGUtc3dpdGNoX190b3B7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgICAudGl0bGUtc3dpdGNoX19ib3R0b217XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLnRpdGxlLXN3aXRjaF9fYm90dG9te1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4gIC50b3AtbmF2e1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG4gICAgLmlzLWFjdGl2ZSAme1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gICAgdWx7XG4gICAgICBAaW5jbHVkZSByZXNldC1saXN0O1xuICAgICAgZm9udC1zaXplOiAwO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPj10YWJsZXRcIikge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zLjVyZW0pO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICAgIC5ob21lICZ7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIH1cbiAgICAgIGxpe1xuICAgICAgICBmb250LXNpemU6IDEuODc1cmVtO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB9XG4gICAgICBhe1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcGFkZGluZzogMCAwLjg3NXJlbTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHotaW5kZXg6IDUwMDtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgcGFkZGluZzogMC44NzVyZW0gMDtcbiAgICAgIGxpe1xuICAgICAgICBmb250LXNpemU6IDEuODc1cmVtO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICAgIGF7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICB9XG4gICAgfVxuICBcbiAgfVxuXG4gIC5zaXRlLXRpdGxle1xuICAgIGZvbnQtc2l6ZTogMi4xMjVyZW07XG4gICAgcG9pbnRlci1ldmVudHM6IGFsbDtcbiAgICBAaW5jbHVkZSBtZWRpYShcIj49dGFibGV0XCIpIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICAgIC5pcy1hY3RpdmUgJntcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDMuNXJlbSk7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPmxQaG9uZVwiLCBcIjx0YWJsZXRcIikge1xuICAgICAgcGFkZGluZzoxLjc1cmVtICRtYXJnaW4tbWVkaXVtO1xuICAgICAgLy8gd29yZC1icmVhazogYnJlYWstYWxsO1xuICAgIH1cbiAgICAuaG9tZSAme1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gICAgQGluY2x1ZGUgbWVkaWEoXCI8PWxQaG9uZVwiKSB7XG4gICAgICBwYWRkaW5nOiAkbWFyZ2luLXNtYWxsIDRyZW07XG4gICAgfVxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICBsaW5lLWhlaWdodDogMS4yNTtcbiAgICAgIG1hcmdpbi10b3A6LS4xMjVlbTtcbiAgICB9XG4gIH1cblxuXG4gIC50aXRsZS1zd2l0Y2hfX3RvcHtcbiAgICBmb250LXNpemU6IDEuODc1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAyLjEyNXJlbTtcbiAgfVxuXG4gIC50aXRsZS1wYXJ0e1xuICAgIEBpbmNsdWRlIG1lZGlhKFwiPj10YWJsZXRcIikge1xuICAgICAgbWFyZ2luOiAwIDAgMCAxLjVyZW07XG4gICAgfVxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cblxuICAuc2l0ZS1oZWFkZXIgYXtcbiAgICBAaW5jbHVkZSBob3ZlcntcbiAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYShcIj49dGFibGV0XCIpIHtcbiAgICAudG9wLW5hdixcbiAgICAuc2l0ZS10aXRsZSxcbiAgICAuc2l0ZS1oZWFkZXIgYXtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAyNTBtcyAkZWFzZS1vdXQtY3ViaWM7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcbiAgICAudG9wLW5hdntcbiAgICAgIHRyYW5zaXRpb246IGFsbCA1MDBtcyAkZWFzZS1vdXQtY3ViaWM7XG4gICAgfVxuICB9XG5cbiAgLm5hdi1pY29ue1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcbiAgICAgIHBvc2l0aW9uOmZpeGVkO1xuICAgICAgdG9wOiAkbWFyZ2luLXNtYWxsO1xuICAgICAgcmlnaHQ6ICRtYXJnaW4tc21hbGw7XG4gICAgICB6LWluZGV4OiA1MDA7XG4gICAgfVxuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICB3aWR0aDogMnJlbTtcbiAgICBAaW5jbHVkZSBtZWRpYShcIjxsUGhvbmVcIikge1xuICAgICAgd2lkdGg6IDEuODc1cmVtO1xuICAgIH1cbiAgICBoZWlnaHQ6IDIuMTI1cmVtO1xuICAgIGJhY2tncm91bmQ6IHVybCguLi9pbWcvaWNvbi1uYXYtZG90cy5zdmcpIG5vLXJlcGVhdCA1MCUgNTAlO1xuICAgIGJhY2tncm91bmQtc2l6ZTogMS43NXJlbTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgcG9pbnRlci1ldmVudHM6IGFsbDtcbiAgICAuaXMtYWN0aXZlICZ7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1nL2ljb24tY2xvc2Uuc3ZnKTtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogMS4yNXJlbSAxLjI1cmVtO1xuICAgIH1cbiAgICAmOmZvY3Vze1xuICAgICAgb3V0bGluZTogMDtcbiAgICB9XG4gIH0iLCIuY2Fyb3VzZWx7XG5cbn1cblxuLmNhcm91c2VsLXRpdGxle1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmc6IC41cmVtIDAgJG1hcmdpbi1tZWRpdW07XG4gIEBpbmNsdWRlIG1lZGlhKFwiPD1sUGhvbmVcIikge1xuICAgIHBhZGRpbmc6ICRtYXJnaW4teHNtYWxsICRtYXJnaW4tc21hbGwgJG1hcmdpbi1zbWFsbDtcbiAgfVxufVxuXG4uY2Fyb3VzZWwtdGl0bGVfX2RlZmF1bHR7XG4gIC5pcy1hY3RpdmUgJntcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIH1cbn1cblxuLmNhcm91c2VsLWNhcHRpb257XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogbm9uZTtcbiAgLmlzLWFjdGl2ZSAme1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5cbi5jYXJvdXNlbC1zaW5nbGUsXG4uY2Fyb3VzZWwtaW1ne1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi5jYXJvdXNlbC1pbWd7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMjUwbXMgJGVhc2Utb3V0LWN1YmljO1xufVxuXG5hLmNhcm91c2VsLXNpbmdsZXtcbiAgY3Vyc29yOiBpbmhlcml0O1xufVxuXG4ud3JhcHBlZC1jYXJvdXNlbCxcbi5zdGFuZGFyZC1jYXJvdXNlbHtcbiAgLmNhcm91c2VsLXNpbmdsZXtcbiAgICBAaW5jbHVkZSBob3ZlcntcbiAgICAgIGltZ3tcbiAgICAgICAgb3BhY2l0eTogMC4zNTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLmxhcmdlLWNhcm91c2VsOm5vdCgubGVhZC1pbWFnZXMtY2Fyb3VzZWwpOm5vdCgubWF0cml4LWlubmVyKXtcbiAgcGFkZGluZzogJG1hcmdpbi1zbWFsbCAwOyBcbn1cblxuLm1lZGl1bS1jYXJvdXNlbHtcbiAgcGFkZGluZzogJG1hcmdpbi1zbWFsbCAwO1xuICAuY2Fyb3VzZWwtc2luZ2xle1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1heC1oZWlnaHQ6IDI4LjV2dztcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgd2lkdGg6IGF1dG87XG4gICAgQGluY2x1ZGUgZmxleC1jZW50ZXI7XG4gIH1cbiAgLmNhcm91c2VsLWltZ3tcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAwICRtYXJnaW4tc21hbGw7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1heC13aWR0aDogMjguNXZ3O1xuICAgIG1heC1oZWlnaHQ6IDI4LjV2dztcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xuICB9XG59XG5cbi53cmFwcGVkLWNhcm91c2Vse1xuICAuY2Fyb3VzZWwtc2luZ2xle1xuICAgIGhlaWdodDogMjguNXZ3O1xuICB9XG59XG5cbkBpbmNsdWRlIG1lZGlhKFwiPmxQaG9uZVwiICwgXCI8PXRhYmxldFwiKSB7XG4gIC5tZWRpdW0tY2Fyb3VzZWx7XG4gICAgLmNhcm91c2VsLXNpbmdsZXtcbiAgICAgIG1heC1oZWlnaHQ6IDQydnc7XG4gICAgfVxuICAgIC5jYXJvdXNlbC1pbWd7XG4gICAgICBtYXgtd2lkdGg6IDQydnc7XG4gICAgICBtYXgtaGVpZ2h0OiA0MnZ3O1xuICAgIH1cbiAgfVxuICAud3JhcHBlZC1jYXJvdXNlbHtcbiAgICAuY2Fyb3VzZWwtc2luZ2xle1xuICAgICAgaGVpZ2h0OiA0MnZ3O1xuICAgIH1cbiAgfVxufVxuXG5AaW5jbHVkZSBtZWRpYShcIjw9bFBob25lXCIpIHtcbiAgLm1lZGl1bS1jYXJvdXNlbHtcbiAgICBwYWRkaW5nOiAkbWFyZ2luLXhzbWFsbCAwO1xuICAgIC5jYXJvdXNlbC1zaW5nbGV7XG4gICAgICBtYXgtaGVpZ2h0OiA3NXZ3O1xuICAgIH1cbiAgICAuY2Fyb3VzZWwtaW1ne1xuICAgICAgbWF4LXdpZHRoOiA3NXZ3O1xuICAgICAgbWF4LWhlaWdodDogNzV2dztcbiAgICAgIHBhZGRpbmc6IDAgJG1hcmdpbi14c21hbGw7XG4gICAgfVxuICB9XG4gIC53cmFwcGVkLWNhcm91c2Vse1xuICAgIC5jYXJvdXNlbC1zaW5nbGV7XG4gICAgICBoZWlnaHQ6IDc1dnc7XG4gICAgfVxuICB9XG4gIC5sYXJnZS1jYXJvdXNlbDpub3QoLmxlYWQtaW1hZ2VzLWNhcm91c2VsKXtcbiAgICBwYWRkaW5nOiAkbWFyZ2luLXhzbWFsbCAwO1xuICB9XG59XG5cbi5zbWFsbC1jYXJvdXNlbHtcbiAgcGFkZGluZzogJG1hcmdpbi1zbWFsbCAwO1xuICAuY2Fyb3VzZWwtc2luZ2xle1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuICB9XG4gIC5jYXJvdXNlbC1pbWd7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogMCAkbWFyZ2luLXNtYWxsO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGhlaWdodDogYXV0bztcbiAgICB3aWR0aDogMTMuODc1cmVtO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxufVxuXG5AaW5jbHVkZSBtZWRpYShcIjw9dGFibGV0XCIpIHtcbiAgLnNtYWxsLWNhcm91c2Vse1xuICAgIC5jYXJvdXNlbC1pbWd7XG4gICAgICB3aWR0aDogMTIuNXJlbTtcbiAgICB9XG4gIH1cbn1cblxuLnNpbmdsZS1jYXJvdXNlbHtcbiAgLmNhcm91c2VsLXNpbmdsZXtcbiAgICBAaW5jbHVkZSBtZWRpYShcIj49bFBob25lXCIpIHtcbiAgICAgIHBhZGRpbmc6IDAgJG1hcmdpbi1zbWFsbDtcbiAgICAgIHdpZHRoOmNhbGMoMTAwdncgLSAjeyRtYXJnaW4tbGFyZ2V9IC0gI3skbWFyZ2luLW1lZGl1bX0pOyAvLyBXaWR0aCAtIERlc2lyZWQgR2FwIHggMiAtIFBhZGRpbmcgeCAyXG4gICAgfVxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPGxQaG9uZVwiKSB7XG4gICAgICBwYWRkaW5nOiAwICRtYXJnaW4teHNtYWxsO1xuICAgICAgd2lkdGg6IDc1dnc7XG4gICAgfVxuICAgIC8vIGhlaWdodDpjYWxjKDEwMHZoIC0gNS4zNzVyZW0gLSAjeyRtYXJnaW4tbWVkaXVtfSk7IC8vIEhlaWdodCAtIE5hdiBIZWlnaHQgLSBCb3R0b20gTWFyZ2luXG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIEBpbmNsdWRlIGZsZXgtY2VudGVyO1xuICB9XG4gIC5jYXJvdXNlbC1pbWd7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiAyMDBweDtcbiAgICBAaW5jbHVkZSBtZWRpYShcInBvcnRyYWl0XCIpIHtcbiAgICAgIG1heC1oZWlnaHQ6IDUwdmg7XG4gICAgICAmLmNhcm91c2VsLWltZy0tcG9ydHJhaXR7XG4gICAgICAgIG1heC1oZWlnaHQ6NjV2aFxuICAgICAgfVxuICAgIH1cbiAgICBtYXJnaW46IDAgYXV0bztcbiAgfVxuICAmLmxlYWQtaW1hZ2VzLWNhcm91c2Vse1xuICAgIC5jYXJvdXNlbC1pbWd7XG4gICAgICBAaW5jbHVkZSBtZWRpYShcIj49bERlc2t0b3BcIiwgXCJsYW5kc2NhcGVcIikge1xuICAgICAgICBtYXgtaGVpZ2h0OiA2Ny41dmg7XG4gICAgICAgICYuY2Fyb3VzZWwtaW1nLS1wb3J0cmFpdHtcbiAgICAgICAgICBtYXgtaGVpZ2h0OjgwdmhcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICAuc3dpcGVyLXNsaWRlLW5leHQsXG4gIC5zd2lwZXItc2xpZGUtcHJldntcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbn1cblxuLnNpbmdsZS1jYXJvdXNlbDpub3QoLmxlYWQtaW1hZ2VzLWNhcm91c2VsKSB7XG4gIC5jYXJvdXNlbC1pbWd7XG4gICAgQGluY2x1ZGUgbWVkaWEoXCJsYW5kc2NhcGVcIikge1xuICAgICAgbWF4LWhlaWdodDogNjB2aDtcbiAgICAgICYuY2Fyb3VzZWwtaW1nLS1wb3J0cmFpdHtcbiAgICAgICAgbWF4LWhlaWdodDo3MHZoXG4gICAgICB9XG4gICAgfVxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiLCBcInBvcnRyYWl0XCIpIHtcbiAgICAgIG1heC1oZWlnaHQ6IDQwdmg7XG4gICAgICAmLmNhcm91c2VsLWltZy0tcG9ydHJhaXR7XG4gICAgICAgIG1heC1oZWlnaHQ6IDQ3LjV2aDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLmxlYWQtaW1hZ2Vze1xuXG4gIHBhZGRpbmc6IDAgMCAkbWFyZ2luLW1lZGl1bTtcblxuICBAaW5jbHVkZSBtZWRpYShcIj49dGFibGV0XCIpIHtcblxuICAgIC5zaW5nbGUtY2Fyb3VzZWx7XG4gICAgICAuY2Fyb3VzZWwtc2luZ2xle1xuICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwdmggLSA1LjYyNXJlbSAtICN7JG1hcmdpbi1tZWRpdW19IC0gI3skbWFyZ2luLW1lZGl1bX0pOyAvLyBIZWlnaHQgLSBOYXYgSGVpZ2h0IC0gQm90dG9tIE1hcmdpbiAtIEFkZGl0aW9uYWwgdG9wL2JvdHRvbSBwYWRkaW5nXG4gICAgICAgIG1pbi1oZWlnaHQ6IDMwMHB4O1xuICAgICAgfVxuICAgICAgLmNhcm91c2VsLWltZ3tcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5wYXJhbGxheC1pbWctd3JhcHBlcntcbiAgICBAaW5jbHVkZSBmbGV4LWNlbnRlcjtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiLCBcInBvcnRyYWl0XCIpIHtcblxuICAgIC5zaW5nbGUtY2Fyb3VzZWx7XG4gICAgICAuY2Fyb3VzZWwtaW1ne1xuICAgICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uaG9tZXBhZ2UtY2F0ZWdvcnl7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBhbmltYXRpb246IGZhZGVJbiA3NTBtcztcbiAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcbiAgJjpudGgtY2hpbGQoMSl7XG4gICAgYW5pbWF0aW9uLWRlbGF5OiAzNTBtcztcbiAgfVxuICAmOm50aC1jaGlsZCgyKXtcbiAgICBhbmltYXRpb24tZGVsYXk6IDg1MG1zO1xuICB9XG4gICY6bnRoLWNoaWxkKDMpe1xuICAgIGFuaW1hdGlvbi1kZWxheTogMTM1MG1zO1xuICB9XG4gICYgKyAuaG9tZXBhZ2UtY2F0ZWdvcnl7XG4gICAgbWFyZ2luLXRvcDogJG1hcmdpbi1zbWFsbDtcbiAgfVxufVxuXG5bZGF0YS1jYXJvdXNlbF17XG4gIG92ZXJmbG93OmhpZGRlbjtcbn1cblxuLnBhcmFsbGF4LWNhcm91c2Vse1xuICB3aWR0aDoxMTAlO1xuICBtYXJnaW4tbGVmdDotNSU7XG59XG5cbi5wYXJhbGxheF9faW5uZXJ7XG4gIHRyYW5zaXRpb246IGFsbCAyNTBtcyAkZWFzZS1vdXQtY3ViaWM7XG59XG5cbi5wYXJhbGxheC1pbWctd3JhcHBlcntcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBoZWlnaHQ6IDEwMCU7XG4gIC5tYXRyaXgtYmxvY2sgJntcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cbn0iLCIucGFnZS1zZWN0aW9ue1xuICBAaW5jbHVkZSBtZWRpYShcIj49bFBob25lXCIpIHtcbiAgICBwYWRkaW5nOiAkbWFyZ2luLW1lZGl1bSAwO1xuICB9XG4gIEBpbmNsdWRlIG1lZGlhKFwiPGxQaG9uZVwiKSB7XG4gICAgcGFkZGluZzogJG1hcmdpbi1zbWFsbCAwO1xuICB9XG59XG5cbiAgLnBhZ2Utc2VjdGlvbi0tdG9wICsgLnBhZ2Utc2VjdGlvbntcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgfVxuICBcbi5wYWdlLXRleHQsXG4ucGFnZS1kZXNje1xuICBAaW5jbHVkZSBtZWRpYShcIj49bFBob25lXCIpIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAkbWFyZ2luLW1lZGl1bTtcbiAgICBwYWRkaW5nLWxlZnQ6ICRtYXJnaW4tbWVkaXVtO1xuICB9XG4gIEBpbmNsdWRlIG1lZGlhKFwiPGxQaG9uZVwiKSB7XG4gICAgcGFkZGluZy1yaWdodDogY2FsYygxMi41dncgLSAxLjc1cmVtKTtcbiAgICBwYWRkaW5nLWxlZnQ6IGNhbGMoMTIuNXZ3IC0gMS43NXJlbSk7XG4gIH1cbn1cblxuICAucGFnZS10ZXh0LS1jZW50ZXJ7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG5cbi5wYWdlLWRlc2N7XG4gIEBpbmNsdWRlIGxpbWl0LWVkZ2UtcGFyYXM7XG4gIGF7XG4gICAgdHJhbnNpdGlvbjogYWxsIDI1MG1zICRlYXNlLW91dC1jdWJpYztcbiAgICBAaW5jbHVkZSBob3ZlcntcbiAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICB9XG4gIH1cbn1cblxuLnBhZ2UtZGVzYy0tYm94e1xuICBtYXgtd2lkdGg6IDYxLjI1cmVtO1xuICBtYXJnaW46IDAgYXV0bztcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgQGluY2x1ZGUgbWVkaWEoXCI+PWxQaG9uZVwiKSB7XG4gICAgcGFkZGluZzogJG1hcmdpbi1tZWRpdW07XG4gIH1cbiAgQGluY2x1ZGUgbWVkaWEoXCI8bFBob25lXCIpIHtcbiAgICBwYWRkaW5nOiAkbWFyZ2luLXNtYWxsO1xuICB9XG59XG5cbiAgLnBhZ2UtZGVzY19faW5uZXJ7XG4gICAgbWF4LXdpZHRoOiA0Ni4yNXJlbTtcbiAgICBtYXJnaW46MCBhdXRvO1xuICB9IiwiLndvcmstZGVzY3tcbiAgYmFja2dyb3VuZDogI2ZmZjRmMztcbn1cblxuLy8gLndvcmstZGVzYy0tZ3JlZW57XG4vLyAgIGJhY2tncm91bmQ6ICNkYmZmZTA7XG4vLyB9XG5cbi8vIC53b3JrLWRlc2MtLWJsdWV7XG4vLyAgIGJhY2tncm91bmQ6ICNlY2ZiZmE7XG4vLyB9XG5cbi8vIC53b3JrLWRlc2MtLXBlYWNoe1xuLy8gICBiYWNrZ3JvdW5kOiAjZmZkZWJiO1xuLy8gfVxuXG4vLyAud29yay1kZXNjLS1wdXJwbGV7XG4vLyAgIGJhY2tncm91bmQ6ICNmMGVjZmQ7XG4vLyB9XG5cbi8vIC53b3JrLWRlc2MtLXllbGxvd3tcbi8vICAgYmFja2dyb3VuZDogI2ZmZmJhYjtcbi8vIH1cblxuLy8gLndvcmstZGVzYy0tZ3JleXtcbi8vICAgYmFja2dyb3VuZDogI2YyZjJmMjtcbi8vIH1cblxuLmVtYmVkLWNvbnRhaW5lcntcbiAgcG9zaXRpb246cmVsYXRpdmU7XG4gIGhlaWdodDowO1xuICBwYWRkaW5nLWJvdHRvbTo1Ni4yNSU7XG4gIHdpZHRoOjEwMCU7XG4gIGlmcmFtZXtcbiAgICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDowO1xuICAgIHdpZHRoOjEwMCU7XG4gICAgaGVpZ2h0OjEwMCU7XG4gIH1cbn1cblxuLnBhZ2UtdmlkZW97XG4gIHBhZGRpbmctcmlnaHQ6JG1hcmdpbi1tZWRpdW07XG4gIHBhZGRpbmctbGVmdDokbWFyZ2luLW1lZGl1bTtcbiAgd2lkdGg6MTAwJTtcbiAgbWF4LXdpZHRoOjY2LjVyZW07XG4gIG1hcmdpbjowIGF1dG87XG59IiwiLnBhZ2UtdGVtcGxhdGUtYWJvdXQsXG4ucGFnZS10ZW1wbGF0ZS1hYm91dCAuc2l0ZS1oZWFkZXJ7XG4gIGJhY2tncm91bmQ6ICNkYmZmZTA7XG59IiwiLnBhZ2UtdGVtcGxhdGUtY29udGFjdCxcbi5wYWdlLXRlbXBsYXRlLWNvbnRhY3QgLnNpdGUtaGVhZGVye1xuICBiYWNrZ3JvdW5kOiAjZmZkZWJiO1xufVxuXG4gIC5jb250YWN0LXRleHQgLnBhZ2UtZGVzY19fYm94e1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICB9XG5cbiAgLnBhZ2UtdGVtcGxhdGUtY29udGFjdHtcbiAgICAucGFnZS1ib2R5e1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgfVxuICAgIC5wYWdlLXRleHR7XG4gICAgICBtYXgtd2lkdGg6MzNlbTtcbiAgICAgIG1hcmdpbjowIGF1dG87XG4gICAgfVxuICB9XG5cbiAgLmNvbnRhY3QtdGV4dHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBsaW5lLWhlaWdodDogMS4yNTtcbiAgICBAaW5jbHVkZSBmbGV4LWNlbnRlcjtcbiAgICBAaW5jbHVkZSBtZWRpYShcIjxsUGhvbmVcIikge1xuICAgICAgZm9udC1zaXplOjEuMjVyZW07XG4gICAgfVxuICB9IiwiLnBhZ2UtdGVtcGxhdGUtcHJlc3MsXG4ucGFnZS10ZW1wbGF0ZS1wcmVzcyAuc2l0ZS1oZWFkZXJ7XG4gIGJhY2tncm91bmQ6ICNlY2ZiZmE7XG59XG5cbiAgLnByZXNzLWNhcm91c2Vse1xuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjMDAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIC5zd2lwZXItd3JhcHBlcntcbiAgICAgIGFsaWduLWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIH1cbiAgfVxuXG4gIC5wcmVzcy1zaW5nbGV7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAmOmJlZm9yZXtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICBsZWZ0OiA1MCU7XG4gICAgICB6LWluZGV4OjI7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiAkbWFyZ2luLW1lZGl1bTtcbiAgICAgIGhlaWdodDogJG1hcmdpbi1tZWRpdW07XG4gICAgICBtYXJnaW46ICN7LSRtYXJnaW4tc21hbGx9IDAgMCAjey0kbWFyZ2luLXNtYWxsfTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIGJhY2tncm91bmQ6ICNmZmYgdXJsKC4uL2ltZy9pY29uLWFycm93LnN2Zykgbm8tcmVwZWF0IDUwJSA1MCU7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IDEuNXJlbSAxLjgxMjVyZW07XG4gICAgICBvcGFjaXR5OjA7XG4gICAgICB0cmFuc2l0aW9uOm9wYWNpdHkgMjUwbXMgJGVhc2Utb3V0LWN1YmljO1xuICAgIH1cbiAgICBAaW5jbHVkZSBob3ZlcntcbiAgICAgIGltZ3tcbiAgICAgICAgb3BhY2l0eTowLjM1O1xuICAgICAgfVxuICAgICAgJjpiZWZvcmV7XG4gICAgICAgIG9wYWNpdHk6MTtcbiAgICAgIH1cbiAgICB9XG4gIH0iLCIuc2VhcmNoLFxuLnBhZ2UtdGVtcGxhdGUtc2VhcmNoLFxuLnBhZ2UtdGVtcGxhdGUtc2VhcmNoIC5zaXRlLWhlYWRlcixcbi5zZWFyY2ggLnNpdGUtaGVhZGVye1xuICBiYWNrZ3JvdW5kOiAjZjBlY2ZkO1xufVxuXG4uc2VhcmNoIC5wYWdlLWJvZHksXG4ucGFnZS10ZW1wbGF0ZS1zZWFyY2ggLnBhZ2UtYm9keXtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuXG4uc2VhcmNoLXdyYXB7XG4gIHdpZHRoOiAxMDAlO1xuICBAaW5jbHVkZSBtZWRpYShcIj49bFBob25lXCIpIHtcbiAgICBwYWRkaW5nOiAwICRtYXJnaW4tbWVkaXVtO1xuICB9XG4gIEBpbmNsdWRlIG1lZGlhKFwiPGxQaG9uZVwiKSB7XG4gICAgcGFkZGluZzogMCAkbWFyZ2luLXNtYWxsO1xuICB9XG59XG5cbiAgLnNlYXJjaC1lbnRyeXtcbiAgICBAaW5jbHVkZSBtZWRpYShcImhlaWdodD49NTY4cHhcIikge1xuICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgfVxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPj1sUGhvbmVcIikge1xuICAgICAgbWF4LWhlaWdodDogMjIuNXJlbTtcbiAgICB9XG4gICAgQGluY2x1ZGUgbWVkaWEoXCI8bFBob25lXCIpIHtcbiAgICAgIG1heC1oZWlnaHQ6IDEyLjYyNXJlbTtcbiAgICB9XG4gICAgQGluY2x1ZGUgZmxleC1jZW50ZXI7XG4gIH1cblxuICAuc2VhcmNoLWZvcm17XG4gICAgZGlzcGxheTogZmxleDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDUzLjM3NXJlbTtcbiAgICBtYXJnaW46MCBhdXRvO1xuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjMDAwO1xuICAgIEBpbmNsdWRlIGNsZWFyO1xuICB9XG5cbiAgICAuc2VhcmNoLWZpZWxke1xuICAgICAgZmxvYXQ6bGVmdDtcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBwYWRkaW5nOiAxLjI1cmVtO1xuICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgICBhcHBlYXJhbmNlOnNlYXJjaGZpZWxkO1xuICAgICAgJjo6cGxhY2Vob2xkZXJ7XG4gICAgICAgIGNvbG9yOiByZ2JhKCMwMDAsIDAuNSk7XG4gICAgICB9XG4gICAgICAmOmZvY3Vze1xuICAgICAgICBvdXRsaW5lOiAwO1xuICAgICAgfVxuICAgICAgJjo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbntcbiAgICAgICAgcG9zaXRpb246cmVsYXRpdmU7XG5cbiAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgICB3aWR0aDogMS44NzVyZW07XG4gICAgICAgIGhlaWdodDogMS44NzVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6IHVybCguLi9pbWcvaWNvbi1jbG9zZS5zdmcpIG5vLXJlcGVhdCA1MCUgNTAlO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDEuMjVyZW0gMS4yNXJlbTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5zZWFyY2gtc3VibWl0e1xuICAgICAgZmxvYXQ6bGVmdDtcbiAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIC8vIHdpZHRoOiA0Ljc1cmVtO1xuICAgICAgLy8gaGVpZ2h0OiA0Ljc1cmVtO1xuICAgICAgLy8gYmFja2dyb3VuZDogdXJsKC4uL2ltZy9pY29uLWFycm93LXJpZ2h0LnN2Zykgbm8tcmVwZWF0IDUwJSA1MCU7XG4gICAgICAvLyBiYWNrZ3JvdW5kLXNpemU6IDEuODEyNXJlbSAxLjVyZW07XG4gICAgICAvLyBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAvLyAmOmZvY3Vze1xuICAgICAgLy8gICBvdXRsaW5lOiAwO1xuICAgICAgLy8gfVxuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgLnNlYXJjaC1yZXN1bHRze1xuICAgIC8vIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuICB9IiwiLm1hdHJpeHtcbiAgaGVpZ2h0OiAxMDB2aDtcbiAgd2lkdGg6IDEwMHZ3O1xuICBhbmltYXRpb246IGZhZGVJbiA1MDBtcyAyMDAwbXMgbGluZWFyO1xuICBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoO1xuICBhbmltYXRpb24tcGxheS1zdGF0ZTogcGF1c2VkO1xuICAud2YtYWN0aXZlICZ7XG4gICAgYW5pbWF0aW9uLXBsYXktc3RhdGU6IHJ1bm5pbmc7XG4gIH1cbn1cblxuLm1hdHJpeC10b3AtbGV2ZWx7XG4gIG92ZXJmbG93OmhpZGRlbjtcbiAgaGVpZ2h0OmNhbGMoMTAwdmggLSAjeyRtYXJnaW4tbWVkaXVtfSAtICN7JG1hcmdpbi1tZWRpdW19KTsgLy8gSGVpZ2h0IC0gTmF2IEhlaWdodCAtIEJvdHRvbSBNYXJnaW4gLSBBZGRpdGlvbmFsIHRvcC9ib3R0b20gcGFkZGluZ1xufVxuXG4ubWF0cml4LWlubmVye1xuICAuY2Fyb3VzZWwtc2luZ2xle1xuICAgIGhlaWdodDpjYWxjKDEwMHZoIC0gI3skbWFyZ2luLW1lZGl1bX0gLSAjeyRtYXJnaW4tbWVkaXVtfSk7IC8vIEhlaWdodCAtIE5hdiBIZWlnaHQgLSBCb3R0b20gTWFyZ2luIC0gQWRkaXRpb25hbCB0b3AvYm90dG9tIHBhZGRpbmdcbiAgfVxuICAuY2Fyb3VzZWwtaW1ne1xuICAgIGhlaWdodDphdXRvO1xuICAgIG1pbi1oZWlnaHQ6MCAhaW1wb3J0YW50O1xuICB9XG59XG5cbi5tYXRyaXgtY29ybmVye1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6MjAwO1xuICB3aWR0aDogMy4xMjVyZW07XG4gIGhlaWdodDogMy4xMjVyZW07XG4gIGJhY2tncm91bmQ6ICNmZmY7XG59XG5cbiAgLmNvcm5lci10bHtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgfVxuXG4gIC5jb3JuZXItdHJ7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICB9XG5cbiAgLmNvcm5lci1ibHtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgfVxuXG4gIC5jb3JuZXItYnJ7XG4gICAgYm90dG9tOiAwO1xuICAgIHJpZ2h0OiAwO1xuICB9XG5cbi5tYXRyaXgtcmV2ZXJzZXtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDE7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIEBpbmNsdWRlIGZsZXgtY2VudGVyO1xufVxuXG4ubGFuZGluZy10aXRsZXtcbiAgZm9udC1zaXplOiAzcmVtO1xuICBhbmltYXRpb246IGZhZGVJbiA1MDBtcyBsaW5lYXI7XG4gIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XG4gIGFuaW1hdGlvbi1wbGF5LXN0YXRlOiBwYXVzZWQ7XG4gIC53Zi1hY3RpdmUgJntcbiAgICBhbmltYXRpb24tcGxheS1zdGF0ZTogcnVubmluZztcbiAgfVxuICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgIGZvbnQtc2l6ZToxLjg3NXJlbTtcbiAgfVxufVxuXG4ubWF0cml4LXRvcC1sZXZlbC5zd2lwZXItc2xpZGUtcHJldiBpbWcsXG4ubWF0cml4LXRvcC1sZXZlbC5zd2lwZXItc2xpZGUtbmV4dCBpbWd7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn0iLCIuZXJyb3I0MDQsXG4uZXJyb3I0MDQgLnNpdGUtaGVhZGVye1xuICBiYWNrZ3JvdW5kOiAjMjZhNGEwO1xufVxuIl0sIm1hcHBpbmdzIjoiQUNBQSw0REFBNEQ7QUFFNUQ7Ozs7R0FJRztBQUVILEFBQUEsSUFBSSxDQUFDO0VBQ0gsV0FBVyxFQUFFLFVBQVc7RUFBRSxPQUFPO0VBQ2pDLG9CQUFvQixFQUFFLElBQUs7RUFBRSxPQUFPO0VBQ3BDLHdCQUF3QixFQUFFLElBQUs7RUFBRSxPQUFPO0NBQ3pDOztBQUVEOztHQUVHO0FBRUgsQUFBQSxJQUFJLENBQUM7RUFDSCxNQUFNLEVBQUUsQ0FBRTtDQUNYOztBQUVEO2dGQUNnRjtBQUVoRjs7OztHQUlHO0FBRUgsQUFBQSxPQUFPO0FBQ1AsQUFBQSxLQUFLO0FBQ0wsQUFBQSxPQUFPO0FBQ1AsQUFBQSxVQUFVO0FBQ1YsQUFBQSxNQUFNO0FBQ04sQUFBQSxNQUFNO0FBQ04sQUFBQSxNQUFNO0FBQ04sQUFBQSxNQUFNO0FBQ04sQUFBQSxJQUFJO0FBQ0osQUFBQSxHQUFHO0FBQ0gsQUFBQSxPQUFPO0FBQ1AsQUFBQSxPQUFPLENBQUM7RUFDTixPQUFPLEVBQUUsS0FBTTtDQUNoQjs7QUFFRDs7O0dBR0c7QUFFSCxBQUFBLEtBQUs7QUFDTCxBQUFBLE1BQU07QUFDTixBQUFBLFFBQVE7QUFDUixBQUFBLEtBQUssQ0FBQztFQUNKLE9BQU8sRUFBRSxZQUFhO0VBQUUsT0FBTztFQUMvQixjQUFjLEVBQUUsUUFBUztFQUFFLE9BQU87Q0FDbkM7O0FBRUQ7OztHQUdHO0FBRUgsQUFBb0IsS0FBZixBQUFBLElBQUssRUFBQSxBQUFBLEFBQVMsUUFBUixBQUFBLEdBQVc7RUFDcEIsT0FBTyxFQUFFLElBQUs7RUFDZCxNQUFNLEVBQUUsQ0FBRTtDQUNYOztBQUVEOzs7R0FHRztDQUVILEFBQUEsQUFB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 */
